diff --git a/.github/ISSUE_TEMPLATE/ask-a-question-about-geos-chem.md b/.github/ISSUE_TEMPLATE/ask-a-question-about-geos-chem.md deleted file mode 100644 index e05c844d4..000000000 --- a/.github/ISSUE_TEMPLATE/ask-a-question-about-geos-chem.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Ask a question about GEOS-Chem -about: Use this template to ask for more information about GEOS-Chem. -title: "[QUESTION]" -labels: question -assignees: '' - ---- - -### Ask a question about GEOS-Chem: diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 000000000..b82973516 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,136 @@ +name: Bug or Issue Report +description: Report a bug or issue with GEOS-Chem +title: "Put a one-line description here" +labels: ["category: Bug"] +body: + - type: input + id: name + attributes: + label: Your name + validations: + required: true + - type: input + id: affiliation + attributes: + label: Your affiliation + validations: + required: true + - type: textarea + id: what-happened + attributes: + label: What happened? What did you expect to happen? + placeholder: Describe your issue + validations: + required: true + - type: textarea + id: steps-to-reproduce + attributes: + label: What are the steps to reproduce the bug? + placeholder: Explain what you did + validations: + required: true + - type: textarea + id: log-files + attributes: + label: Please attach any relevant configuration and log files. + description: Drag and drop files like the GEOS-Chem log file, geoschem_config.yml, HEMCO_Config.rc, HISTORY.rc, and build_info/summarize_build here. You may need to rename files to end in .txt first. + validations: + required: false + - type: input + id: version + attributes: + label: What GEOS-Chem version were you using? + placeholder: e.g. 14.4.0 + validations: + required: true + - type: dropdown + id: machine + attributes: + label: What environment were you running GEOS-Chem on? + multiple: true + options: + - Local cluster + - AWS + - Personal computer + - Other (please explain below) + validations: + required: true + - type: input + id: compiler-version + attributes: + label: What compiler and version were you using? + placeholder: e.g. gcc 10.2.0, ifort 19.0.5.281 + validations: + required: true + - type: dropdown + id: implemenation + attributes: + label: Will you be addressing this bug yourself? + description: If Yes, please also assign this issue to yourself (if possible) + multiple: false + options: + - "Yes" + - "Yes, but I will need some help" + - "No" + validations: + required: true + - type: dropdown + id: configuration + attributes: + label: In what configuration were you running GEOS-Chem? + description: If you are experiencing issues with GEOS-Chem in an external model, please contact that model's support. This repository is for tracking issues related to the GEOS-Chem science code base. + multiple: false + options: + - GCClassic + - GCHP + - Other (please explain in additional information section below) + validations: + required: true + - type: dropdown + id: simulation + attributes: + label: What simulation were you running? + description: If using full chemistry, specify extra options like benchmark, complexSOA, etc. in the additional information section below + multiple: false + options: + - Full chemistry + - Aerosol + - Carbon + - Hg + - POPs + - TagO3 + - TransportTracers + - Trace metals + - CH4 + - CO2 + - TagCO + validations: + required: true + - type: input + id: resolution + attributes: + label: As what resolution were you running GEOS-Chem? + description: If running a nested grid simulation, please also specify the region. + placeholder: "e.g. 4x5, 2x2.5, 0.25x0.3125 NA, c48, c180" + validations: + required: true + - type: dropdown + id: meteorology + attributes: + label: What meterology fields did you use? + multiple: false + options: + - GEOS-FP + - GEOS-IT + - MERRA-2 + - GCAP 2.0 + - Other (please explain in additional information section below) + validations: + required: true + - type: textarea + id: additional-info + attributes: + label: Additional information + description: Please provide any additional information here that you think might be relevant. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..7dfa146c7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: GEOS-Chem user manual + url: https://geos-chem.readthedocs.io/en/stable + about: Click this link to read the GEOS-Chem user manual. diff --git a/.github/ISSUE_TEMPLATE/new-feature.yml b/.github/ISSUE_TEMPLATE/new-feature.yml new file mode 100644 index 000000000..64f08b9e4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/new-feature.yml @@ -0,0 +1,50 @@ +name: Feature Request +description: Request a new GEOS-Chem feature +title: "Put a one-line description here" +labels: ["category: Feature Request"] +body: + - type: input + id: name + attributes: + label: Your name + validations: + required: true + - type: input + id: affiliation + attributes: + label: Your affiliation + validations: + required: true + - type: textarea + id: feature-description + attributes: + label: Provide a clear and concise overview of the new feature requested. + validations: + required: true + - type: textarea + id: reference + attributes: + label: Reference(s) + description: If this is a science update, please provide a literature citation. + placeholder: "e.g. Bey et al., Global modeling of tropospheric chemistry with assimilated meteorology: Model description and evaluation, J. Geophys. Res., 106, 23,073-23,096, 2001." + validations: + required: false + - type: dropdown + id: implemenation + attributes: + label: Will you be implementing this feature yourself? + description: If Yes, please also assign this issue to yourself (if possible) + multiple: false + options: + - "Yes" + - "Yes, but I will need some help" + - "No" + validations: + required: true + - type: textarea + id: additional-info + attributes: + label: Additional information + description: Please provide any additional information here that you think might be relevant. + validations: + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/question-discussion.yml b/.github/ISSUE_TEMPLATE/question-discussion.yml new file mode 100644 index 000000000..d94d155d1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question-discussion.yml @@ -0,0 +1,23 @@ +name: Question or Discussion +description: Ask a question about GEOS-Chem or start a discussion +title: "Put a one-line description here" +labels: ["category: Question"] +body: + - type: input + id: name + attributes: + label: Your name + validations: + required: true + - type: input + id: affiliation + attributes: + label: Your affiliation + validations: + required: true + - type: textarea + id: description + attributes: + label: Please provide a clear and concise description of your question or discussion topic. + validations: + required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/report-a-bug-or-technical-issue.md b/.github/ISSUE_TEMPLATE/report-a-bug-or-technical-issue.md deleted file mode 100644 index 483b41eb3..000000000 --- a/.github/ISSUE_TEMPLATE/report-a-bug-or-technical-issue.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: Report a bug or technical issue -about: Use this template to report bugs and technical issues encountered while using GEOS-Chem. -title: "[BUG/ISSUE]" -labels: bug -assignees: '' - ---- - -### What institution are you from? -Please tell us what institution you are from. - -### Description of the problem -Describe your problem here. Describe the steps to reproduce the problem here, if possible. - -### Description of troubleshooting performed -Describe any troubleshooting that you have already performed here. Also include any leads or suspicions here. - -### GEOS-Chem version -Enter your GEOS-Chem version here. - -### Description of modifications -Describe your modifications here. - -### Log files -- Build log (if applicable): -- Run logs (if applicable): -- Run script (if applicable): - -### Software versions -- CMake version: -- Compilers (Intel or GNU, and version): -- NetCDF version: diff --git a/.github/ISSUE_TEMPLATE/request-a-new-feature.md b/.github/ISSUE_TEMPLATE/request-a-new-feature.md deleted file mode 100644 index 70b611d8c..000000000 --- a/.github/ISSUE_TEMPLATE/request-a-new-feature.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Request a new GEOS-Chem feature -about: Use this template to request a new feature for GEOS-Chem. -title: "[FEATURE REQUEST]" -labels: feature, 'never stale' -assignees: '' - ---- - -### Request a new GEOS-Chem feature: diff --git a/.github/ISSUE_TEMPLATE/start-a-geos-chem-discussion.md b/.github/ISSUE_TEMPLATE/start-a-geos-chem-discussion.md deleted file mode 100644 index e4d2799f1..000000000 --- a/.github/ISSUE_TEMPLATE/start-a-geos-chem-discussion.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: Start an extended discussion about a GEOS-Chem-related topic -about: Use this template to start a discussion about an ongoing research matter or open-ended development project. -title: "[DISCUSSION]" -labels: discussion, 'never stale' -assignees: '' - ---- - -### Overview -Please provide a clear and concise overview of the topic for discussion. - -### Action items (if applicable) -If applicable, please provide a list of action items or tasks in the spaces marked by `__`. -1. __ -2. __ -3. __ diff --git a/.github/ISSUE_TEMPLATE/version-release-checklist.md b/.github/ISSUE_TEMPLATE/version-release-checklist.md deleted file mode 100644 index 0d35ab968..000000000 --- a/.github/ISSUE_TEMPLATE/version-release-checklist.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -name: GEOS-Chem version release checklist -about: Use this template to create a checklist for a new GEOS-Chem version release. -title: "[RELEASE-CHECKLIST]" -labels: 'checklist' -assignees: '' - ---- - -# Checklist for releasing GEOS-Chem X.Y.0 - -## Benchmarks - -The following benchmark simulations are needed to validate this version (edit as needed). For items marked at complete, benchmark simulations have finished, benchmark plots have been created and posted on the FTP site, and benchmark information has been posted on the GEOS-Chem wiki. - -- GEOS-Chem classic benchmarks: - - [ ] Integration tests - - [ ] 1-month full-chemistry benchmark - - [ ] 1-year full-chemistry benchmark - - [ ] Archive PCO and PCH4 fields for tagged CO simulations in `ExtData/HEMCO/TAGGED_CO/` - - [ ] Archive restart files in `ExtData/GEOSCHEM_RESTARTS/` - - [ ] 1-year transport tracer benchmark - - [ ] 10-year stratospheric benchmark - - Archive monthly mean species concentrations in `ExtData/CHEM_INPUTS/` - - Archive monthly P/L rates in `ExtData/HEMCO/UCX/` -- [ ] GCHP benchmarks: - - [ ] 1-month full-chemistry benchmark - - [ ] 1-year full-chemistry benchmark - - [ ] 1-year transport tracer benchmark - - [ ] Stratospheric benchmark -- [ ] Send benchmarks to developers and GCSC for approval - -## Github repositories -- [ ] Push tags for this version to all repositories: - - [ ] https://github.com/geoschem/geos-chem - - [ ] https://github.com/geoschem/gchp - - [ ] https://github.com/geoschem/geos-chem-unittest - - [ ] https://github.com/geoschem/hemco - - [ ] https://github.com/geoschem/gcpy -- [ ] Publish new release(s) on Github - -## Data -- [ ] Document updated data directories for current version on wiki -- [ ] Copy updated data files to Compute Canada - -## Wiki and website updates -- [ ] Update [Species in GEOS-Chem](http://wiki.seas.harvard.edu/geos-chem/index.php/Species_in_GEOS-Chem) -- [ ] Update version number on the following pages: - - [ ] [GEOS-Chem website](http://acmg.seas.harvard.edu/geos/) - - [ ] [GEOS-Chem wiki](http://wiki.seas.harvard.edu/geos-chem/index.php/Main_Page) - - [ ] [GEOS-Chem versions](http://wiki.seas.harvard.edu/geos-chem/index.php/GEOS-Chem_versions) - - [ ] [GEOS-Chem 12](http://wiki.seas.harvard.edu/geos-chem/index.php/GEOS-Chem_12#Version_history_summary) - -## YouTube tutorials -- [ ] TBD - -## Announcement -- [ ] Send email to user list announcing release \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..0875ee15a --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,20 @@ +### Name and Institution (Required) + +Name: +Institution: + +### Describe the update + +Please provide a clear and concise overview of the update. + +### Expected changes + +Please provide details on how this update will impact model output and include plots or tables as needed. + +### Reference(s) + +If this is a science update, please provide a literature citation. + +### Related Github Issue + +Please link to the corresponding Github issue(s) here. If fixing a bug, there should be an issue describing it with steps to reproduce. diff --git a/.github/PULL_REQUEST_TEMPLATE/create-a-geos-chem-pull-request.md b/.github/PULL_REQUEST_TEMPLATE/create-a-geos-chem-pull-request.md deleted file mode 100644 index 398114de3..000000000 --- a/.github/PULL_REQUEST_TEMPLATE/create-a-geos-chem-pull-request.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -name: Submit updates to GEOS-Chem with a pull request -about: This template instructs users to submit a GEOS-Chem pull request -title: "[PULL REQUEST]" -labels: 'never stale' -assignees: '' - ---- - -# GEOS-Chem Update Submission Form - - - -## Describe the update: - -### Related Github Issue(s): - - - - -### Motivation and Context: - - -### Type of update: - -* [ ] Bug fix -* [ ] Structural update -* [ ] Science update -* [ ] New feature -* [ ] Benchmarking update -* [ ] Interface to an external model (e.g. NASA/GEOS, CESM, WRF, etc.) -* [ ] Other (please specify) - -### This update impacts: - -* [ ] GEOS-Chem source code -* [ ] GEOS-Chem run directories -* [ ] Input data (e.g. met fields, emissions, etc.) -* [ ] Other (please specify) - -### Reference(s): - - - -### Update submitted as: - -* [ ] Github pull request (recommended) -* [ ] Git patch file -* [ ] Data files -* [ ] Other (please specify) - -## How has this update been tested? - - -### Types of tests that were performed: - -* [ ] GEOS-Chem Unit Test -* [ ] GEOS-Chem Difference Test -* [ ] 1-month benchmark simulation -* [ ] 1-year benchmark simulation -* [ ] Timing test (**optional but recommended**) -* [ ] Other (please specify) - -### Compiler used in testing: - -* [ ] Intel Fortran Compiler (aka ifort), version ___ -* [ ] GNU Fortran Compiler (aka gfortran), version ___ - -### Other information about testing: - - - -## This update was submitted by: - -### Developers and their affiliations: - - -### Lead developer's email address: - \ No newline at end of file diff --git a/.github/no-response.yml b/.github/no-response.yml deleted file mode 100644 index dd2b8cfed..000000000 --- a/.github/no-response.yml +++ /dev/null @@ -1,13 +0,0 @@ -# Configuration for probot-no-response - https://github.com/probot/no-response - -# Number of days of inactivity before an Issue is closed for lack of response -daysUntilClose: 14 -# Label requiring a response -responseRequiredLabel: more information needed -# Comment to post when closing an Issue for lack of response. Set to `false` to disable -closeComment: > - This issue has been automatically closed because there has been no response - to our request for more information from the original author. With only the - information that is currently in the issue, we don't have enough information - to take action. Please reach out if you have or find the answers we need so - that we can investigate further. diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 6698e8a53..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 30 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - never stale - - feature - - discussion - - future development -# Label to use when marking an issue as stale -staleLabel: stale -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. If there are no updates within 7 days it will be closed. - You can add the "never stale" tag to prevent the Stale bot from closing - this issue. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: Closing due to inactivity diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..c4ba4f38f --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,31 @@ +# This workflow warns and then closes issues that have had no activity for a specified amount of time. +# +# You can adjust the behavior by modifying this file. +# For more information, see: +# https://github.com/actions/stale +name: Mark stale issues + +on: + schedule: + - cron: '0 0 * * *' # Run every night at midnight + +jobs: + stale: + + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + + steps: + - uses: actions/stale@v5 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-label: 'stale' + exempt-issue-labels: 'category: Discussion','category: Feature Request','deferred','help needed: Open Research Problem','help needed: Request Input from Community','never stale','TODO: Documentation' + days-before-issue-stale: 30 + days-before-issue-close: 7 + stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. If there are no updates within 7 days it will be closed. You can add the "never stale" tag to prevent the issue from closing this issue.' + close-issue-message: 'Closing due to inactivity' + days-before-pr-stale: -1 + days-before-pr-close: -1 diff --git a/AUTHORS.txt b/AUTHORS.txt index 2c349d050..fa8ecb638 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,354 +1,370 @@ -List of Developers for GEOS-Chem, GCHP, HEMCO, and Related Software -(26 Oct 2022) +List of Developers for GEOS-Chem, HEMCO, and Related Software +(23 May 2024) =============================================================================== -Peter Adams -Becky Alexander -Matthew Alvarado -Helen Amos -Helene Angot -Stina Ausmeel -Marion Auvray -Sabour Baray -Michael Barkley -Steven Barret -Brice Barret -Kelvin Bates -Isabelle Bey -Liam Bindle -Folkert Boersma -Sreekanth Bojjagani -Eimy Bonilla -Benoit Bovy -Kevin Bowman -Brian Boys -Erika Brattich -Tom Breider -Jared Brewer -Ellie Browne -Benjamin Brown-Steiner -Beata Bukosa -Christopher Butenhoff -Karen Cady-Pereira -Philip Cameron-Smith -Patrick Campbell -Liangzhong Cao -Guofeng Cao -Yi Cao -Shannon Capps -Claire Carouge -Therese Carter -Maria Cazorla -Sreelekha Chaliyakunnel -Han Chen -Jing Chen -Long Chen -Qi Chen -Qianjie Chen -Xin Chen -Yang Chen -Yunsoo Choi -Kenneth Christian -Tom Clune -Matt Cooper -Bess Corbitt -Betty Croft -Xochitl Cruz -Gabriele Curci -Jordi Dachs -Yanko Davila -Feng Deng -Priyanka deSouza -Max Desservettaz -Nicholas Deutscher -Maurizio di Pierro -Aurelien Dommergue -Will Downs -Easan Drury -Bryan Duncan -Sebastian Eastham -Raluca Ellis -Joseph Enberg -Lucas Estrada -Mathew Evans -T. Duncan Fairlie -Sal Farina -Vivian Faye -Ari Feinberg -Brendan Field -Arlene Fiore -Emily Fischer -Jenny Fisher -Charley Fite -Eric Fleming -Judit Flo-Gaya -Bonne Ford -Timmy Francis -Lyssa Freese -Carey Friedman -Thibaud Fritz -Tzung-May Fu -Joshua Fu -Brett Gantt -Cui Ge -Jeffrey Geddes -Amanda Giang -Christos Giannakopoulos -Harriet Gounia -Edward Graef -Jesse Greenslade -Xiaoguang Gu -Melanie Hammer -Jessica Haskins -Cenlin He -Colette Heald -Barron Henderson -Daven Henze -Wai Ho-Lo -Myroslav Hordiichuk -Christopher Holmes -Hannah Horowitz -Zahra Hosseni -Lu Hu -Jianping Huang -Jiayue Huang -Kohei Ikeda -Daniel Jacob -Andy Jacobson -Marc Jacobson -Lyatt Jaegle -Ruud Jansen -Weiyuan Jiang -Zhe Jiang -Lixu Jin -Matthew Johnson -Dylan Jones -Jaegun Jung -Prasad Kasibhatla -Rynda Hudman Kay -Christoph Keller -Tetsuro Kikuchi -Hyeonmin Kim -Sungshik Kim -Nutthida Kitwiroon -Jack Kodros -Jamin Koo -Monika Kopacz -Shannon Koplitz -Jules Kouatchou -Stefanie Kremser -Forrest Lacey -Carmen Lamencusa -Lok Lamsal -Kateryna Lapina -Kelsey Larson -David Lary -Robyn Latimer -Philippe Le Sager -Chulkyu Lee -Colin Lee -Meemong Lee -Ralph Lehmann -Eric Leibensperger -Maud Leriche -Fok-Yan Leung -Bengang Li -Chi Li -Ke Li -Qinbin Li -Xianglan Li -Yanshun Li -K. J. Liao -Qing Liang -Hong Liao -Haipeng Lin -Jintai Lin -Shian-Jiann Lin -John Linford -Hongyu Liu -Jane Liu -Junhua Liu -Pengfei Liu -Tina Liu -Yang Liu -Ying Liu -Jennifer Logan -Mike Long -Xiao Lu -Lizzie Lundgren -Gan Luo -J.D. (Bram) Maasakkers -Helen Macintyre -Dave MacKenzie -Emmanuel Mahieu -Jingqiu Mao -Eloise Marais -Marguerite Marks -Arjen Markus -Randall Martin -Maggie Marvin -Erin McDuffie -Dana McGuffin -Chris McLinden -Hongjian Meng -Jun Meng -Nicholas Meskhidze -Natallia Miatselskaya -Loretta Mickley -Christopher Chan Miller -Dylan Millet -Kai Ming -Jonathan Moch -Neil Moore -Jessica Morena -Gabriel Morin -Eleanor Morris -Mingquan Mu -Killian Murphy -Lee Murray -Jun Nam -Ray Nassar -Brian Nathan -Athanasios Nenes -Cynthia Nevison -Eric Nielsen -Justus Notholt -Kate O'Dell -Sachiko Okamoto -Neil Page -Sidhant Pai -Paul Palmer -Nick Parazoo -Justin Parella -Rokjin Park -Mark Parrington -Fabien Paulot -Sajeev Philip -Christopher Pickett-Heaps -Jeff Pierce -Will Porter -Ryan Pound -Michael Prather -Anna Protonatariou -Bill Putman -Havala Pye -Asif Qureshi -Emily Ramnarine -James Randerson -Cynthia Randles -Francois Ravetta -Wes Reinhart -David Ridley -Umberto Rizza -Daniel Rothenberg -Sarah Safieddine -Adrian Sandu -Mauricio Santillana -Bastien Sauvage -Tia Scarpelli -Luke Schiferl -Johan Schmidt -Martin Schultz -Rebecca Schwantes -Paolo Sebastianelli -Noelle Selin -Michael Seymour -Viral Shah -Jingyuan Shao -Lu Shen -Tomas Sherwen -Joshua Shutter -Sam Silva -Nicole Smith-Downey -Anne Laerke Soerensen -Eric Sofen -Shaojie Song -Yu Song -Dominick Spracklen -Ilya Stanevich -Stephen Steenrod -Rebecca Stern -Robin Stevens -David Streets -Sarah Strode -Flora Su -Melissa Sulprizio -Minmin Sun -Elsie Sunderland -Parvada Suntharalingam -Luke Surl -Bethany Sutherland -Kimito Suto -Monika Szelag -Amos Tai -Hiroshi Tanimoto -John Tannahill -Shu Tao -Colin Thackray -Matt Thompson -Thibaud Thonat -Rong Tian -Maria Tombrou -Katherine Travis -Atanas Trayanov -Win Trivitayanurak -Corey Trujillo -Paolo Tuccella -Alexander Turner -Solene Turquety -Zitely Tzompa-Sosa -Nadine Unger -Maria Val-Martin -Aaron van Donkelaar -Kostas Varotsos -Geert Vinken -Kristina Wagstrom -Thomas Walker -James Wang -Jun Wang -Qiaoqiao Wang -Xuan Wang -Xiaoli Wang -Yuhang Wang -Yuting Wang -Yuxuan Wang -Zifa Wang -Kevin Wecht -Richard Weidner -Debra Weisenstein -Kelley Wells -Hongjian Weng -Dan Westervelt -Cynthia Whaley -Christine Wiedinmyer -Oliver Wild -Ingo Wohltmann -Shiliang Wu -Shiliang Wu -Yaping Xiao -Junwei Xu -Yingying Yan -Matt Yannetti -Bob Yantosca -Jack Yatteau -Keiya Yumimoto -Karen Yu -Fangqun Yu -Xu Yue -Xuyan Yue -Maria Zatko -Shixian Zhai -Shuting Zhai -Bo Zhang -Chi Zhang -Hongliang Zhang -Jiawei Zhang -Li Zhang -Lin Zhang -Qiang Zhang -Yanxu Zhang -Lei Zhu -Liye Zhu -Jiawei Zhuang -Quanlai Zhuang -Peter Zoogman +ADAMS, Peter +ALEXANDER, Becky +ALVARADO, Matthew +AMOS, Helen +ANGOT, Helene +AUSMEEL, Stina +AUVRAY, Marion +BALASUS, Nicholas +BARAY, Sabour +BARKLEY, Michael +BARRET, Steven +BARRET, Brice +BATES, Kelvin +BEY, Isabelle +BINDLE, Liam +BOERSMA, Folkert +BOJJAGANI, Sreekanth +BONILLA, Eimy +BOVY, Benoit +BOWMAN, Kevin +BOYS, Brian +BRANFORD, Simon +BRATTICH, Erika +BREIDER, Tom +BREWER, Jared +BROWNE, Ellie +BROWN-STEINER, Benjamin +BUKOSA, Beata +BUTENHOFF, Christopher +CADY-PEREIRA, Karen +CAMERON-SMITH, Philip +CAMPBELL, Patrick +CAO, Guofeng +CAO, Hansen +CAO, Liangzhong +CAO, Yi +CAPPS, Shannon +CAROUGE, Claire +CARTER, Therese (Tess) +CAZORLA, Maria +CHALIYAKUNNEL, Sreelekha +CHAN MILLER, Christopher +CHEN, Han +CHEN, Jing +CHEN, Long +CHEN, Qi +CHEN, Qianjie +CHEN, Xin +CHEN, Yang +CHOI, Yunsoo +CHRISTIAN, Kenneth +CLUNE, Tom +COOPER, Matt +CORBITT, Bess +CROFT, Betty +CRUZ, Xochitl +CURCI, Gabriele +DACHS, Jordi +DAVILA, Yanko +DELWICHE, Kyle +DENG, Feng +DESOUZA, Priyanka +DESSERVETTAZ, Max +DEUTSCHER, Nicholas +DI PIERRO, Maurizio +DLAMINI, Thandolwethu +DOMMERGUE, Aurelien +DOWNS, Will +DRURY, Easan +DUNCAN, Bryan +EASTHAM, Sebastian +ELLIS, Raluca +ENBERG, Joseph +ESTRADA, Lucas +EVANS, Mathew +FAIRLIE, T. Duncan +FARINA, Sal +FAYE, Vivian +FEINBERG, Ari +FIELD, Brendan +FIORE, Arlene +FISCHER, Emily +FISHER, Jenny +FITE, Charley +FLEMING, Eric +FLO GAYA, Judit +FORD, Bonne +FRANCIS, Timmy +FREESE, Lyssa +FRIEDMAN, Carey +FRITZ, Thibaud +FU, Tzung-May +FU, Joshua +GANTT, Brett +GE, Cui +GEDDES, Jeffrey +GIANG, Amanda +GIANNAKOPOULOS, Christos +GOUNIA, Harriet +GRAEF, Edward +GREENSLADE, Jesse +GU, Xiaoguang +HAMMER, Melanie +HASKINS, Jessica +HE, Cenlin +HE, Jourdan +HEALD, Colette +HENDERSON, Barron +HENZE, Daven +HO, Wai-Lo +HORDIICHUK, Myroslav +HOLMES, Christopher +HOROWITZ, Hannah +HOSSENI, Zahra +HU, Lu +HUANG, Jianping +HUANG, Jiayue +IKEDA, Kohei +JACOB, Daniel +JACOBSON, Andy +JACOBSON, Marc +JAEGLE, Lyatt +JANSEN, Ruud +JIANG, Weiyuan +JIANG, Zhe +JIN, Lixu +JISKRA, Martin +JOHNSON, Matthew +JONES, Dylan +JUNG, Jaegun +KASIBHATLA, Prasad +HUDMAN KAY, Rynda +KELLER, Christoph +KELP, Makoto +KIKUCHI, Tetsuro +KIM, Hyeonmin +KIM, Sungshik +KITWIROON, Nutthida +KODROS, Jack +KOO, Jamin +KOPACZ, Monika +KOPLITZ, Shannon +KOUATCHOU, Jules +KREMSER, Stefanie +LACEY, Forrest +LAMENCUSA, Carmen +LAMSAL, Lok +LAPINA, Kateryna +LARSON, Kelsey +LARY, David +LATIMER, Robyn +LE SAGER, Philippe +LEE, Chulkyu +LEE, Colin +LEE, Meemong +LEHMANN, Ralph +LEIBENSPERGER, Eric +LERICHE, Maud +LEUNG, Fok-Yan +LI, Bengang +LI, Chi +LI, Ke +LI, Qinbin +LI, Xianglan +LI, Yanshun +LIAO, K.J. +LIANG, Qing +LIAO, Hong +LIN, Haipeng +LIN, Jintai +LIN, Shian-Jiann +LINFORD, John +LIU, Hongyu +LIU, Jane +LIU, Junhua +LIU, Pengfei +LIU, Tina +LIU, Yang +LIU, Ying +LOGAN, Jennifer +LONG, Mike +LU, Xiao +LUNDGREN, Lizzie +LUO, Gan +MAASAKKERS, J. D. (Bram) +MACINTYRE, Helen +MACKENZIE, Dave +MAHIEU, Emmanuel +MAO, Jingqiu +MARAIS, Eloise +MARKS, Marguerite +MARKUS, Arjen +MARTIN, Randall +MARVIN, Maggie +MCDUFFIE, Erin +MCGUFFIN, Dana +MCLINDEN, Chris +MENG, Hongjian +MENG, Jun +MESKHIDZE, Nicholas +MIATSELSKAYA, Natallia +MICKLEY, Loretta +MILLET, Dylan +MING, Kai +MOCH, Jonathan +MOORE, Neil +MOORING, Todd +MORENA, Jessica +MORIN, Gabriel +MORRIS, Eleanor +MU, Mingquan +MURPHY, Killian +MURRAY, Lee +NAM, Jun +NASSAR, Ray +NATHAN, Brian +NENES, Athanasios +NEVISON, Cynthia +NIELSEN, Eric +NOTHOLT, Justus +O'DELL, Kate +OKAMOTO, Sachiko +PAGE, Neil +PAI, Sidhant +PALMER, Paul +PARAZOO, Nick +PARELLA, Justin +PARK, Rokjin +PARRINGTON, Mark +PAULOT, Fabien +PHILIP, Sajeev +PICKETT-HEAPS, Christopher +PIERCE, Jeff +PORTER, Will +POUND, Ryan +PRATHER, Michael +PROTONATARIOU, Anna +PUTMAN, Bill +PYE, Havala +QURESHI, Asif +RAMNARINE, Emily +RANDERSON, James +RANDLES, Cynthia +RAVETTA, Francois +REINHART, Wes +RIDLEY, David +RIZZA, Umberto +ROTHENBERG, Daniel +ROY, Eric +SAFIEDDINE, Sarah +SANDU, Adrian +SANTILLANA, Mauricio +SAUVAGE, Bastien +SCARPELLI, Tia +SCHIFERL, Luke +SCHMIDT, Johan +SCHULTZ, Martin +SCHWANTES, Rebecca +SEBASTIANELLI, Paolo +SELIN, Noelle +SEYMOUR, Michael +SHAH, Viral +SHAO, Jingyuan +SHEN, Lu +SHERWEN, Tomas +SHUTTER, Joshua +SILVA, Sam +SMITH-DOWNEY, Nicole +SOERENSEN, Anne Laerke +SOFEN, Eric +SONG, Shaojie +SONG, Yu +SPRACKLEN, Dominick +STANEVICH, Ilya +STEENROD, Stephen +STERN, Rebecca +STEVENS, Robin +STREETS, David +STRODE, Sarah +SU, Flora +SULPRIZIO, Melissa +SUN, Minmin +SUNDERLAND, Elsie +SUNTHARALINGAM, Parvada +SURL, Luke +SUTHERLAND, Bethany +SUTO, Kimito +SZELAG, Monika +TAI, Amos +TANG, Yidan +TANIMOTO, Hiroshi +TANNAHILL, John +TAO, Shu +THACKRAY, Colin +THOMPSON, Matt +THONAT, Thibaud +TIAN, Rong +TOMBROU, Maria +TRAVIS, Katherine +TRAYANOV, Atanas +TRIVITAYANURAK, Win +TRUJILLO, Corey +TUCCELLA, Paolo +TURNER, Alexander +TURQUETY, Solene +TZOMPA-SOSA, Zitely +UNGER, Nadine +VAL MARTIN, Maria +VAN DONKELAAR, Aaron +VAROTSOS, Kostas +VINKEN, Geert +VITT, Francis +VOHRA, Karn +WAGSTROM, Kristina +WALKER, Thomas +WANG, James +WANG, Jun +WANG, Qiaoqiao +WANG, Xuan +WANG, Xiaoli +WANG, Yuhang +WANG, Yuting +WANG, Yuxuan +WANG, Zifa +WECHT, Kevin +WEIDNER, Richard +WEISENSTEIN, Debra +WELLS, Kelley +WENG, Hongjian +WESTERVELT, Dan +WHALEY, Cynthia +WIEDINMYER, Christine +WILD, Oliver +WOHLTMANN, Ingo +WU, Shiliang +XIAO, Yaping +XU, Junwei +YAN, Yingying +YANNETTI, Matt +YANTOSCA, Bob +YATTEAU, Jack +YUMIMOTO, Keiya +YU, Karen +YU, Fangqun +YU, Xingpei +YUE, Xu +YUE, Xuyan +ZATKO, Maria +ZHAI, Shixian +ZHAI, Shuting +ZHANG, Bingqing +ZHANG, Bo +ZHANG, Chi +ZHANG, Dandan +ZHANG, Hongliang +ZHANG, Jiawei +ZHANG, Li +ZHANG, Lin +ZHANG, Qiang +ZHANG, Yanxu +ZHU, Haihui +ZHU, Lei +ZHU, Liye +ZHUANG, Jiawei +ZHUANG, Quanlai +ZOOGMAN, Peter diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b90e5f9b..0ac08eab0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,132 +6,539 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] - TBD ### Added -- Added four new species ALK4N1, ALK4N2, ALK4O2, and ALK4P to address issues in ALK4 and R4N2 chemistry following Brewer et al. (2023, JGR) -- Added ALK4N1 and ALK4N2 to Ox family in KPP +- Set `KPP_AbsTol` to 1e5 for dummy species in `species_database.yml` and `species_database_hg.yml` +- Vectors `State_Chm%KPP_AbsTol` and `State_Chm%KPP_RelTol` +- Four new species ALK4N1, ALK4N2, ALK4O2, and ALK4P to address issues in ALK4 and R4N2 chemistry following Brewer et al. (2023, JGR) +- ALK4N1 and ALK4N2 to Ox family in KPP + +### Changed +- Copy values from `State_Chm%KPP_AbsTol` to `ATOL` and `State_Chm%KPP_RelTol` to `RTOL` for fullchem and Hg simulations + +### Fixed +- In `Headers/roundoff_mod.F90`, first cast and then only round off if `places > 0` +- Typo in `setCommonRunSettings.sh` that made GCHP always choose mass fluxes for meteorology +- Simplified SOA representations and fixed related AOD and TotalOA/OC calculations in benchmark. + +## [14.4.1] - 2024-06-28 +### Added +- Added initialization of PHOTDELTA in `ucx_h2so4phot` to avoid run-time error in CESM + +### Changed +- Alphabetically sort Complex SOA species into `geoschem_config.yml` in run directory creation +- Use hard-coded years for met fields and BC files in `HEMCO_Config.rc` so they are not read hourly +- Updated `run/CESM` with alphabetical sorting of species in `geoschem_config.yml` +- Added clarifying comments in GCHP configuration files for several settings, particularly related to domain decomposition, mass fluxes, and stretched grid +- Added pre-run GCHP configuration checks to `setCommonRunSettings.sh` related to domain decomposition, mass fluxes, and stretched grid. +- Changed search criteria for GCHP auto-update of met-field refresh frequency to not rely on presence of `MetDir` symlink in `ExtData.rc` file path + +### Fixed +- Fixed formatting error in `.github/workflows/stale.yml` that caused the Mark Stale Issues action not to run +- Fixed typo `$GCAPVERTRESL` -> `$GCAPVERTRES` in `HEMCO_Config.rc.fullchem` template file +- Fixed GCHP `ExtData.rc` entry for lightning climatology files + +### Removed +- Removed `BudgetWetDep*` entries from simulations with no soluble species in `HISTORY.rc` templates +- Disabled `run/CESM` ParaNOx extension by default in `HEMCO_Config.rc` +- Removed MPI broadcasts in CESM-only UCX code; MPI broadcast done at coupler level +- Remove enabling O-server in GCHP for high core counts + +### Fixed +- In `Headers/roundoff_mod.F90`, first cast and then only round off if `places > 0` + +## [14.4.0] - 2024-05-30 +### Added +- Added `SpcConc%Units` for species-specific unit conversion +- Diel and day-of-week scale factors for CEDS global base emissions +- `Input_Opt%Satellite_CH4_Columns` logical flag; Set this to true if any of AIRS, GOSAT, TCCON observational operators are selected +- Add explicit handling of gravitational settling and hygroscopic growth in dry deposition +- Added CO2, CO, and OCS single-tracer carbon simulations to the integration tests +- Added missing entry in `HEMCO_Config.rc` for natural gas postmeter CH4 emissions in GHGIv2 Express Extension +- Added tagged species capability and PM25nit and PM25nh4 diagnostics for GEOS runs +- Added `real*4` diagnostics for State_Met logical masks IsWater, IsLand, IsIce, and IsSnow +- New parameterization for effective radius of SNA/OM aersols (see PR #2236) +- New `CHEM_INPUTS/FAST_JX/v2024-05` and `CHEM_INPUTS/FAST_JX/v2024-05-Hg` folders with updated `org.dat` and `so4.dat` files +- Added global continental chlorine (pCl and HCl) emissions +- Extended GFED4 emissions through the end of 2023 +- Added a parameterization for dry aerosol size (Rg) for SNA and OM aerosols. Updated AOD calculation reflecting varying aerosol size. + +### Changed +- Updated routines in `GeosUtil/unitconv_mod.F90` for species-specific unit conversion +- Halt timers during calls to `Convert_Spc_Units` so as to time unit conversions separately +- Streamline `IF` statements for CH4 observational operators in `Interfaces/GCClassic/main.F90` +- Disable parallel loop in `Do_Convection` when using TOMAS; it causes unit conversion issues. Revisit later. +- Add explicit handling of gravitational settling and hygroscopic growth in dry deposition +- Added CO2, CO, and OCS single-tracer carbon simulations to the integration tests +- GitHub Action config file `.github/workflows/stale.yml`, which replaces StaleBot +- Switch from fixed to monthly timezones, which account for daylight savings time more accurately when computing emissions +- Updated NOAA GMD surface CH4 boundary conditions through 2022 +- Rename `NITs_Jscale_JHNO3` to `NITs_Jscale` and `NIT_Jscale_JHNO2` to `NIT_Jscale` in `geoschem_config.yml` templates +- Updated volcano emissions from GMAO v202005 product to v202401 which extends to the end of 2024 +- Use local scale height and level thickness to determine the PBL to determine the PBL top level and PBL pressure thickness +- Update drydep mean diameters of aerosols to account for size distribution +- Corrected the formula for 1st order heterogeneous chemical loss on stratospheric aerosol for NO2, NO3, and VOC. +- Fixed incorrect time refresh entries and other errors in `run/GCHP/ExtData.rc.templates/ExtData.rc.carbon` +- Changed time range entries in HEMCO_Config.rc for met, restart, and BC files to use year, month, and day tokens instead of hardcoded range +- Renamed `State_Met%FRSNO` and `State_Met%FRLANDIC` to `State_Met%FRSNOW` and `State_Met%FRLANDICE` +- Renamed isorropiaII_mod.F90 to aerosol_thermodynamics_mod.F90 +- Changed aerosol thermodynamics scheme from ISORROPIA II to HETP for fullchem and APM +- Changed input data paths in `run/GEOS` directory to match location change on NASA discover cluster +- Use new mask files at 0.1 x 0.1 degree resoluiton for CH4/tagCH4/carbon simulations to avoid I/O bottlenecks +- Update config files for CH4/carbon simulations to avoid reading the same variable multiple times +- Converted Github issue templates to issue forms using YAML definition files + +### Fixed +- Corrected the formula for 1st order heterogeneous chemical loss on stratospheric aerosol for NO2, NO3, and VOC. +- Use rate-law function `GCARR_ac` for rxns that have Arrhenius `B` parameters that are zero +- Now use correct index `WEAEROSOL(I,J,L,2+NDUST)` in routine `Settle_Strat_Aer` of `GeosCore/ucx_mod.F90` +- Now get density of BCPI species from the species database in `ucx_mod.F90` +- Fix issues that prevented single-species carbon simulations from running in GCHP +- Update `HEMCO_Config.rc.carbon` and `ExtData.rc.carbon` templates for consistency +- Updated several emissions files for CO and CH4 for COARDS and MAPL compliance +- Fixed several issues in GCHP single-species carbon simulation setup scripts +- Corrected the formula for 1st order heterogeneous chemical loss on stratospheric aerosol for NO2, NO3, and VOC. +- Corrected the formula for 1st order heterogeneous chemical loss on stratospheric aerosol for NO2, NO3, and VOC. +- Change restart file time cycle flag from `EFYO` to `CYS` for TOMAS simulations to avoid missing species error. +- Now define `REEVAPSO2` in wetscav_mod when units are kg species; this avoids floating-point errors. +- Fixed `State_Met%FRSNO` to be fraction of grid box with snow rather than fraction of land with snow +- Fixed variable definitions in the `DryDep` collection of `run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem` + +### Removed +- Legacy binary punch diagnostic code contained within `#ifdef BPCH_DIAG` blocks +- `IU_BPCH` logical file unit (in `GeosUtil/file_mod.F90`) +- Removed tagged CH4 and CO species handling from `carbon_gases_mod.F90` +- GitHub config files `.github/stale.yml` and `.github/no-response.yml` +- Unused CO2 and carbon simulation options from `geoschem_config.yml` (and from related code in co2_mod.F90). +- Removed ISORROPIA +- Removed `Begin` array in do_fullchem (declared but not used) +- Removed tagCH4 simulation as option +- Removed `--request-payer requester` from `run/shared/download_data.py`; the `s3://gcgrid` data is open-source + +## [14.3.1] - 2024-04-02 +### Added +- Added operational run scripts for the Imperial College London (ICL) cluster +- Added new vertical region option to budget diagnostic for fixed bottom and top levels +- Added GEOS-IT processed lat-lon fields as a valid option when creating GCHP run directories +- Functions `charArr2str` and `str2CharArr` in `Headers/charpak_mod.F90` +- Field `State_Diag%Obspack_CharArray` as a 2-D character array +- Added util folder in run/CESM to include .cdl file used to generate CESM NetCDF input file for deposition +- Add GCClassic operational example environment files for Harvard Cannon +- Added new GCHP history collections for advection diagnostics +- Added slash in front of names of LUT files read into `photolysis_mod.F90` to avoid needing it in path + +### Changed +- Updated Harvard Cannon operational run scripts to use `huce_cascade` instead of `huce_intel`; also added `sapphire` +- Changed exponent 'e' to 'd' for one entry in KPP to prevent precision error in external models +- Changed GCHP sample run scripts to not print script execution commands to log +- Changed offline emissions grid resolution templates in config files to be more descriptive +- Read `obspack_id` from netCDF files into a character array, then convert to string +- Add `#SBATCH -c 1` to GCHP integration test scripts and sample run scripts for Harvard Cannon +- In GCC/GCHP integration tests, passing `-s none` will run compile-only tests. Query user to proceed or to exit. +- GCC/GCHP integration tests will exit immediately if `scheduler` is omitted. +- Now use `raw` instead of `native` in GCHP run directory scripts & templates +- Rename env var `RUNDIR_METLIGHTNING_DIR_NATIVE` to `RUNDIR_METLIGHTNING_DIR` +- Rename env var `RUNDIR_METLIGHTNING_NATIVE_RES` to `RUNDIR_METLIGHTNING_RES` +- Updated config files used in CESM from GEOS-Chem 14.1 to 14.3 +- Don't create run directories for integration/parallel tests if invoked with `-t compile` +- Refactor integration and parallel test scripts to reduce the number of input arguments +- Copy utility scripts that allow you to resubmit failed to integration and parallel test root directories +- Update GCHP operational example environment files for Harvard Cannon +- Do not run GCClassic integration test compile jobs in the background +- Updated integration tests to pass quick option to compile scripts +- Removed emissions handling from `global_ch4_mod.F90` and `carbon_gases_mod.F90` and instead apply scale factors to emissions directly in `HEMCO_Config.rc` +- Loop over advected species CH4 chemistry routines to allow for multiple CH4 tracers within analytical inversion framework +- Updated CH4 global anthropogenic emission inventory from EDGARv7 to EDGARv8 + +### Fixed +- Fixed unit conversions in GEOS-only code +- Fixed GEOS-IT native lat-lon filenames used for clusters other than discover +- Fixed offline emission paths set when using GEOS-IT meteorology +- Fixed format issue in input_mod RRTMG print statement caught by some compilers +- Fixed GEOS-IT SLP and TROPP scaling in pre-processed files used in GCHP +- Fixed reading of NEI emissions through HEMCO +- Fixed incorrect units metadata for `State_Met%PHIS` +- Fixed bug in transport tracer ST80 mask criteria which prevented mask from ever being zero + +### Removed +- Removed MPI broadcasts in CESM-only photolysis code; will read on all cores +- Removed State_Chm%CH4_EMIS + +## [14.3.0] - 2024-02-07 +### Added +- Added capability for TOMAS simulations in GCHP +- Added State_Chm%nTomasBins to replace hardcoded bins in TOMAS diagnostics +- Added interface to Cloud-J package for computing photolysis rates +- Added compile-time option FASTJX to use legacy Fast-JX photolysis instead of Cloud-J +- Added new diagnostics OD600 and TCOD600 for 600 nm optical depths (per-level and total column) used for computing J-values in either Fast-JX or Cloud-J +- Added GEOS-IT as meteorology option and labeled as beta during run directory creation until full inventory and offline emissions are available. +- Added support for running GEOS-Chem on the NASA discover cluster +- Added inclusion of c30 restart file in GCHP run directories since c24 and c48 not supported when using GEOS-IT meteorology +- Added automatic updating of GCHP lightning climatology in ExtData.rc based on settings in HEMCO_Config.rc +- Added two new diagnostics to track number of negative concentrations after first and last KPP integration +- Added capability of running GEOS-Chem transport tracer simulation within the GEOS model +- Added radiative forcing contributions due to trop-only ozone, CFCs, water vapor, N2O, CO2 and changes in stratosphere to RRTMG +- Added computation of radiative forcing at the tropopause to RRTMG +- Added option to compute stratospherically-adjusted radiative forcing at the tropopause using RK4 time marching integration with fixed dynamical heating approximation (FDH) +- Added experimental option to apply seasonally-evolving fixed dyanmical heating approximation in RRTMG + +### Changed +- Updated fullchem mechanism following JPL/IUPAC. See `KPP/fullchem/CHANGELOG_fullchem.md` for details. +- Reorganized GCHP run directory creation prompts for GEOS-FP native meteorology input +- Converted TOMAS bpch diagnostics to netCDF +- Now read the Hg restart file from `ExtData/GEOSCHEM_RESTARTS/v2023-12` +- Increse requested time limits in GCHP integration tests (compile 2h30m, run 5h) +- Changed CO2 concentration used in RRTMG to be modifiable in geoschem_config.yml +- Changed water vapor used in RRTMG to match to tracer field at all altitudes +- Updated restart file path for GCHP TOMAS simulations +- Look for fullchem restarts in the `GEOSCHEM_RESTARTS/GC_14.3.0` folder +- Look for fullchem/aerosol boundary conditions in the `HEMCO/SAMPLE_BCs/GC_14.3.0/fullchem` folder + +### Fixed +- Fixed bug in stratospheric aerosols optical depths passed to Fast-JX +- Restored consideration of both isSnow and isIce in dry deposition +- Fixed calculation of `FRLAND_NOSNO_NOICE` in `calc_met_mod.F90` +- Added missing units in comments of `KPP/fullchem/commonIncludeVars.H` +- Use run directory (not absolute path) to determine the executable file name in integration & parallel tests. +- Fixed memory leaks in `State_Chm%AerMass` and `State_Chm%Phot` containers +- Fixed incorrect time-avaging in RRTMG diagnostics wheres zeros included prior to first RRTMG call +- Added fix for runaway HMS chemistry. See `KPP/fullchem/CHANGELOG_fullchem.md` for details. + +### Removed +- Removed references to unused met-fields RADLWG and LWGNT +- Removed inclusion of c360 restart file in GCHP run directories +- Reduced timers saved out to essential list used for benchmarking model performance +- Removed `State_Chm%Spc_Units`; this is now superseded by `State_Chm%Species(:)%Units` + +## [14.2.3] - 2023-12-01 +### Added +- GEOS-Chem Classic rundir script `run/GCClassic/setupForRestarts.sh` + +### Changed +- Added the `-n` aka `--no-bootstrap` option to integration tests to disable bootstrapping missing species in restart files +- Use integer parameters for species units instead of strings (for computational efficiency) +- Update error message for missing surface CH4 emissions with instructions on how to resolve the problem +- Change GCHP grid resolution threshold for lowering timesteps from C180 inclusive to C180 exclusive +- Read GEOS-Chem Classic restart file paths from the relevant `download_data.yml` file +- Moved aerosol_mod module variables to new State_Chm container called AerMass + +### Fixed +- Prevent `POAEMISS` from being assigned a value if not allocated (in `carbon_mod.F90`) +- Changed incorrect comment about static H2O option in `GeosCore/input_mod.F90` +- Fixed typos (`GCClassic` -> `GCHP`) written to GCHP integration test log files +- Add fix to properly read GHGI v2 express extension emissions in CH4 and carbon simulations +- Move OH perturbation scale factor to outside EMISSIONS logical bracket in HEMCO_Config.rc files for CH4 and carbon simulations + +### Removed +- Remove definition of METDIR from primary `HEMCO_Config.rc` files to ensure use of the definition in the `HEMCO_Config.rc.*_metfields` files +- Removed `State_Chm%Spc_Units` + +## [14.2.2] - 2023-10-23 +### Changed +- Updated sample restart files for fullchem and TransportTracers simulations to files saved out from the 14.2.0 1-year benchmarks + +## [14.2.1] - 2023-10-10 +### Added +- Script `test/difference/diffTest.sh`, checks 2 different integration tests for differences +- Added GCHP environment file and export/unset env variables in run script for NASA Pleiades cluster +`SatDiagnEdge` collection to all GEOS-Chem Classic `HISTORY.rc` templates +- Added new GCHP config file ESMF.rc for configuring ESMF logging +- Added several new run directory files for use with GEOS-Chem in GEOS +- GCClassic integration tests now display proper commit info in `results.compile.log` +- Stopped OCEAN_CONC from needlessly being pushed through vertical regridding for Hg simulations +- Added warning in GCHP HISTORY.rc about outputting area-dependent variables on custom grids +- Added option to use a single advected species in the carbon simulation +- Added option to perturb CH4 boundary conditions in CH4 simulation +- Added option to perturb OH in CH4 simulation using scale factor in HEMCO_Config.rc + +### Changed +- Update `DiagnFreq` in GCClassic integration tests to ensure HEMCO diagnostic output +- Rename restart files in GCHP integration tests (as we do in non-test runs) +- Request 6 hours of execution time for GEOS-Chem Classic integration tests +- Invert directory structure where integration and parallel test scripts are stored +- Error check to stop run if any `MW_g` values are undefined +- Explicitly define tagCH4 simulations in `Input_Opt` rather than basing off of number of advected species +- The `fullchem` mechanism must now be built with KPP 3.0.0 or later +- Changed the AEIC 2019 monthly climatology specification format in ExtData.rc to match standard convention for climatology +- Changed default ESMF logging in GCHP to be ESMF_LOGKIND_NONE (no log) +- NetCDF utilities in `NcdfUtil` folder now use the netCDF-F90 API +- GEOS-only updates for running GEOS-Chem in GEOS +- Boundary conditions for nested-grid simulations are now imposed at every time step instead of 3-hourly +- Update `GeosCore/carbon_gases_mod.F90` for consistency with config file updates in PR #1916 +- Update MPI usage in CESM-only code to match new conventions in CAM +- Updated GEPA inventory to GHGI v2 for CH4 and carbon simulations +- Updated integration tests scripts to run on the WashU Compute1 cluster + +### Fixed +- Add missing mol wt for HgBrO in `run/shared/species_database_hg.yml` +- Moved the `EDGAR REF_TRF CH4` emissions to the Oil emissions category so it is superseded by GFEIv2 for carbon simulations. +- Prevent `State_Diag%SatDiagnCount` from not being allocated +- For satellite diagnostics, do not test for `id_OH` if OH is not a species +- Fixed parallelization in Luo wetdep simulations caused by uninitialized variable +- Fixed parallelization for Hg0 species in `GeosCore/drydep_mod.F90` +- Fixed incorrect time-slice when reading nested-grid boundary conditions +- Fixed initialization of advected species missing in GCHP restart file +- Fixed comments in `GeosUtil/unitconv_mod.F90` to reflect code implementation +- Fixed compilation issues for `KPP/custom`; updated equations in `custom.eqn` +- Prevent users from creating GCClassic rundirs at 0.25 x 0.3125 resolution for MERRA-2 met +- Added fix to set `RUNDIR_GRID_HALF_POLAR` option for global grids at 0.25x0.3125 or 0.5x0.625 resolutions +- Moved `OCEAN_MASK` out of `ExtData.rc.TransportTracers` and into the + meteorology template files +- Update `ExtData.rc.CO2` to get meteorology entries from template files +- Added fix for CH4 analytical inversions to convert the state vector value read from file to the nearest integer before comparing to the `Input_Opt%StateVectorElement` read from geoschem_config.yml + +### Removed +- Remove references to the obsolete tagged Hg simulation + +## [14.2.0] - 2023-10-05 +### Added +- Added a printout of GEOS-Chem species and indices +- Added `NcdfUtil/README.md` file directing users to look for netCDF utility scripts at https://github.com/geoschem/netcdf-scripts +- Restored sink reactions for HOI, IONO, IONO2 (fullchem, custom mechanisms) +- S(IV) + HOBr and S(IV) + HOCl reactions to `KPP/fullchem/fullchem.eqn` +- Added setting in GCHP setCommonRunSettings.sh to require species in restarts +- Added setting in GCHP HISTORY.rc to control whether output can be overwritten +- Activated nitrate photolysis +- Added `LightingClimatology` option to HEMCO_Config.rc +- Added run configuration files for WRF-GC +- Added new files `photolysis_mod.F90`, `phot_container_mod.F90`, and `fjx_interface_mod.F90` +- Added photolysis toggle in `geoschem_config.yml` and `Input_Opt` variable Do_Photolysis +- Added speed of light and Planck's constant to PhysConstants module +- Added `GFED4_CLIMATOLOGY` option to HEMCO_Config.rc +- Added CH4 emissions from hydroelectric reservoirs to CH4, Carbon, and tagCH4 simulations +- Added RxnConst diagnostic for archiving reaction rate constants +- Added GCHP run-time option in GCHP.rc to choose dry or total pressure in GCHP advection +- Added GCHP run-time option in GCHP.rc to correct native mass fluxes for humidity +- Added new tracer_mod.F90 containing subroutines for applying sources and sinks for the TransportTracer simulation +- Added new species to the TransportTracer simulation: aoa (replaces CLOCK), aoa_bl, aoa_nh, st80_25 +- Added GEOS-IT and GEOSIT as allowable meteorology source options in geoschem_config.yml + +### Changed +- Most printout has been converted to debug printout (toggled by `debug_printout: true` in `geoschem_config.yml` +- `HEMCO_Config.rc` template files now use `Verbose: true` to toggle debug printout +- Turn on sea salt debromination via switches in `HEMCO_config.rc` +- If KPP integration fails, reset to prior concentrations and set `RSTATE(3) = 0` before retrying +- Suppress integration errors after 20 errors have been printed to stdout +- Simplified and added comments for bimolecular reactions in clouds in function CloudHet2R +- `HEMCO_Config.rc` and `ExtData.rc` templates now point `HEMCO/GFED4/v2023-03` +- Updated GCHP carbon simulation Global Cl and P(CO) inputs to use 14.0.0 files +- Write GCHP restart files directory to Restarts subdirectory +- Rename GCHP mid-run checkpoint files to standard GEOS-Chem restart format +- Rules for species in restarts files are now the same in GCHP as in GC-Classic +- Moved parts of `CMN_FJX_Mod.F90` not used in original Fast-JX to new container State_Chm%Phot +- Restructured photolysis to create generic photolysis module, interface with Fast-JX, and module containing original Fast-JX analogous to Cloud-J +- Moved UVFlux diagnostics out of JValues collection and into new collection called UVFlux +- In the user registration process: + - Now ask for both first and last names of the user + - Now state that user registration is needed for GEOS-Chem support +- Updated `HEMCO_Config.rc` templates to read HEMCO restarts from the `Restarts` rundir folder +- In fullchem simulations, set CO2 to 421 ppm (avg global conc in 2022) everywhere +- Updated CH4 simulation to use CH4 loss frequencies from GCClassic 14.0.0 10-year benchmarks instead of GMI +- Updated CH4 global anthropogenic emission inventory from EDGARv6 to EDGARv7 +- Updated `AUTHORS.txt` for version 14.2.0 +- Updated links in `README.md` to point to `http://geos-chem.org` +- Changed GCHP default settings to use dry pressure rather than total pressure in advection and correct native mass fluxes for humidity +- Updated partitions requested in Harvard run script examples +- Change RTOL value from 0.5e-3 back to 0.5e-2 to address model slowdown +- Allow the use of OFFLINE_SEASALT for seasalt alkalinity, Cl, and Br in GEOS-Chem within CESM +- Renamed TransportTracer species for consistency with GMAO's TR_GridComp +- See `KPP/fullchem/CHANGELOG_fullchem.md` for fullchem-mechanism + changes +- Update template `HEMCO_Config.rc.carbon` files to allow running the carbon simulation with only a single species. + +### Fixed +- Fixed typo in `GCClassic/createRunDir.sh` preventing benchmark run script from being copied to the run directory +- Fixed divide by zero bug in sulfur chemistry introduced in 14.1.0 +- Updates for 0.5 x 0.625 degree GCClassic integration & parallel tests + - Use `CYS` in `HEMCO_Config.rc` so that missing species in `GC_BCs` will not stop simulations + - Tests now run for 20 model minutes instead of an hour +- Fixed divide by zero bug in sulfur chemistry introduced in 14.1.0 +- Fixed GCHP `HISTORY.rc` issue preventing running with over 3000 cores +- Fixed GCHP `ExtData.rc` error in tagged ozone simulation +- Fixed GCHP `HISTORY.rc` issue preventing diagnostic file overwrite +- Update GCHP interactive run script to fix error handling silent bugs +- Rewrote subroutine calls in `carbon_mod.F90` and `seasalt_mod.F90` to prevent array temporaries. +- Prevent repeated printing of KPP integrate errors to the stdout stream. +- Fixed selection of troposphere-stratosphere boundary in `global_ch4_mod.F90` +- Removed operator splitting in CH4 simulation that was biasing diagnostics +- Fixed GCHP start and elapsed times in time_mod.F90 to use cap_restart value +- Disabled SpeciesConcMND output for benchmark simulations +- Exit `Init_Photolysis` before calling `Calc_AOD` when doing dry-run simulations +- Make sure `State_Het%f_Alk_SSA` and `State_Het%f_Alk_SSC` are in the range 0..1 +- Restore seasalt alkalinity to heterogeneous acid-catalyzed reactions of halogens on seasalt aerosols + +### Removed +- `Warnings: 1` is now removed from `HEMCO_Config.rc.*` template files +- Removed the `NcdfUtil/perl` folder +- Removed `X-HRS` output from log file +- IONO2 recycling (fullchem, custom mechanisms) +- Deleted unused file set_prof_o3.F90 + +### Fixed +- Fixed entries for CH4 emissions in `HEMCO_Config.rc.carbon` + +## [14.1.2] - 2023-10-20 +### Added +- CESM-only update: Added option for correctConvUTLS for correcting buildup of soluble tracers in the UT/LS to match CAM-chem behavior + +### Changed +- CESM-only update: extend existing KppError, KppStop to CESM for model stability +- CESM-only update: Removed mpi_bcast in ucx_mod NOXCOEFF_INIT to be handled at coupler level to support spectral-element dynamical core + +## [14.1.1] - 2023-03-03 +### Added + - New integration test functions in `test/GCClassic/integration` and `test/GCHP/integration` + - New parallelization test functions in `test/GCClassic/parallel` + - Added `README.md` files for integration and parallelization tests in the `test` folder structure + - Added GCHP integration test for the tagO3 simulation + - Added GCHP and GCClassic integration tests for the carbon simulation + - Integration and parallelization test folders have been separated into subdirectories to minimize clutter. + - GEOS-only updates + - Add `about` to GitHub issue templates (ensures they will be displayed) + - Added `.github/ISSUE_TEMPLATE/config.yml` file w/ Github issue options + +### Changed + - GCClassic integration tests now use a single set of scripts + - GCHP integration tests now use a single set of scripts + - Integration test run directories are created with the default names assigned by `createRunDir.sh` + - Several bash functions in `test/shared/commonFunctionsForTests.sh` have been combined so that they will work for both GCClassic and GCHP integration tests + - `./cleanRunDir.sh` functions now take an argument for non-interactive execution (facilitates integration & parallelization tests) + - Moved several module variables from `GeosCore/ucx_mod.F90` to `Headers/state_chm_mod.F90`. This facilitates using GEOS-Chem in CESM. + - Time cycle flags EFYO are changed to CYS for all GCClassic integration/parallel tests, and for GCClassic fullchem_benchmarksimulations. +- Ask users for the name of their research institution at registration +- Ask users for the name of their PI at registration +- Do not compile GCHP for tagO3 integration tests; use the default build instead +- Moved GC-Classic sample run scripts to operational_examples/harvard_cannon +- The GitHub PR template is now named `./github/PULL_REQUEST_TEMPLATE.md` + +### Fixed +- Fixed bug in where writing species metadata yaml file write was always attempted +- Prevent a warning from being generated when compiling `gckpp_Jacobian.F90` +- Fixed a bug in routine GET_IJ where X and Y were swapped in an IF comparison. +- Fixed bug in GFAS pFe by applying work-around in config files + + +### Removed +- Removed `intTest*_slurm.sh`, `intTest_*lsf.sh`, and `intTest*_interactive.sh` integration test scripts +- Removed State_Met%LWI and input meteorology LWI from carbon simulation run config files +- Removed function `CLEANUP_UCX`; deallocations are now done in `state_chm_mod.F90` ## [14.1.0] - 2023-02-01 ### Added - - Added dry deposition updates to Hg0 from Feinberg22 ESPI publication + AMAP emissions - - Added MO2 + NO3 = NO2 + CH2O + HO2 reaction - - Added capability to write species metadata to YAML file - - Added satellite diagnostic (SatDiagn) collection, to archive several fields within a user-defined local-time interval. CAVEAT: For now, only one local-time interval is permitted. - - Added adaptive solver (`rosenbrock_autoreduce`) option for fullchem mechanism - - Added entries for BALD, BENZP, BZCO3H, NPHEN to JValues collection in HISTORY.rc for GCHP - - Added GCHP run script and environment files for MIT clusters Hex and Svante - - Added operational GCHP and GCClassic environment and run scripts for the University of York cluster, Viking - - Added tagO3 run directory for GCHP - - Added upwards mass flux diagnostic to GCHP History collection LevelEdgeDiags - - Added timestep menu to GCHP `geoschem_config.yml` template files - - Added HTAPv3 inventory as a global emissions option (off by default) - - Added carbon simulation and KPP mechanism for CO-CO2-CH4-OCS - - Added GCHP run script and environment file for UCI Australia cluster Gadi - -### Changed - - Moved in-module variables in global_ch4_mod.F90 to State_Chm - - Moved in-module variables in hco_interface_gc_mod.F90 to State_Met and State_Chm - - Modified SpeciesConc diagnostic to include option to output units in v/v or molec/cm3 - - Rebuilt fullchem and Hg mechanisms with KPP 3.0.0 - - Changed HEMCO timecycle flag for QFED and offline emissions from EF to EFY - - Updated the time refresh settings for `O3_PROD` and `O3_LOSS` in `ExtData.rc.tagO3` to read data on the first of each month. +- Added dry deposition updates to Hg0 from Feinberg22 ESPI publication + AMAP emissions +- Added MO2 + NO3 = NO2 + CH2O + HO2 reaction +- Added capability to write species metadata to YAML file +- Added satellite diagnostic (SatDiagn) collection, to archive several fields within a user-defined local-time interval. CAVEAT: For now, only one local-time interval is permitted. +- Added adaptive solver (`rosenbrock_autoreduce`) option for fullchem mechanism +- Added entries for BALD, BENZP, BZCO3H, NPHEN to JValues collection in HISTORY.rc for GCHP +- Added GCHP run script and environment files for MIT clusters Hex and Svante +- Added operational GCHP and GCClassic environment and run scripts for the University of York cluster, Viking +- Added tagO3 run directory for GCHP +- Added upwards mass flux diagnostic to GCHP History collection LevelEdgeDiags +- Added timestep menu to GCHP `geoschem_config.yml` template files +- Added HTAPv3 inventory as a global emissions option (off by default) +- Added carbon simulation and KPP mechanism for CO-CO2-CH4-OCS +- Added GCHP run script and environment file for UCI Australia cluster Gadi +- Added GFAS entries in GCHP config file ExtData.rc + +### Changed +- Moved in-module variables in global_ch4_mod.F90 to State_Chm +- Moved in-module variables in hco_interface_gc_mod.F90 to State_Met and State_Chm +- Modified SpeciesConc diagnostic to include option to output units in v/v or molec/cm3 +- Rebuilt fullchem and Hg mechanisms with KPP 3.0.0 +- Changed HEMCO timecycle flag for QFED and offline emissions from EF to EFY +- Updated the time refresh settings for `O3_PROD` and `O3_LOSS` in `ExtData.rc.tagO3` to read data on the first of each month. ### Fixed - - Fixed sign of Arrhenius "A" coefficient in reaction ETO = HO2 + 2CH2O - - Fixed products in HOBr + SO2 and HOCl + SO2 reactions - - Changed MW_g value of CH4 from 16.05 to 16.04 - - Added "WD_CoarseAer:true" for SO4s and NITs in species_database.yml - - Fixed bug in computing State_Met surface type logicals (IsLand, IsWater, etc) - - Fixed bug where State_Met%FRSNO (fraction snow) was all zeros in GCHP - - Fixed HCFC141b and HCFC142b names in GCHP HISTORY.rc - - Fixed list of complex SOA species checked in input_mod.F90 - - Now use a string array for reading the list of ObsPack diagnostic species (in `GeosCore/input_mod.F90`) - - Fixed bug in logic that caused restart files not to be linked to the Restarts/ folder of the GCHP tagO3 run directory - - Fixed timestamp for GCClassic History diagnostic so time-averaged collections match the reference time - - Fixed double-titration of seasalt alkalinity +- Fixed sign of Arrhenius "A" coefficient in reaction ETO = HO2 + 2CH2O +- Fixed products in HOBr + SO2 and HOCl + SO2 reactions +- Changed MW_g value of CH4 from 16.05 to 16.04 +- Added "WD_CoarseAer:true" for SO4s and NITs in species_database.yml +- Fixed bug in computing State_Met surface type logicals (IsLand, IsWater, etc) +- Fixed bug where State_Met%FRSNO (fraction snow) was all zeros in GCHP +- Fixed HCFC141b and HCFC142b names in GCHP HISTORY.rc +- Fixed list of complex SOA species checked in input_mod.F90 +- Now use a string array for reading the list of ObsPack diagnostic species (in `GeosCore/input_mod.F90`) +- Fixed bug in logic that caused restart files not to be linked to the Restarts/ folder of the GCHP tagO3 run directory +- Fixed timestamp for GCClassic History diagnostic so time-averaged collections match the reference time +- Fixed double-titration of seasalt alkalinity +- Fixed bug in GFAS pFe by applying work-around in config files ### Removed - - Removed LRED_JNO2 and AERO_HG2_PARTITON switches from HEMCO_Config.rc (and related code) +- Removed LRED_JNO2 and AERO_HG2_PARTITON switches from HEMCO_Config.rc (and related code) ## [14.0.2] - 2022-11-29 ### Fixed - - Added fix for writing dry-run header to log file - - Updated KPP diagnostics archive flags - - Rewrote code to avoid memory leaks (identified by the code sanitizer) - - Updated EDGAR v6 CH4 emission files to correct timestamp issue - - Updated CH4 Lakes emission files to correct time unit issue - - Added fix for CH4_RICE emissions from EDGAR v6 - - Fixed indentation error in the `legacy_bpch` section of - `geoschem_config.yml` template files - - Removed "dry air" from the metadata of fields `State_Met%AIRVOL` and - `State_Met%BXHEIGHT` - - Applied fixes for CESM runs: Turned off sea salt emissions; Modified time - cycle flag for YUAN_MODIS_LAI +- Added fix for writing dry-run header to log file +- Updated KPP diagnostics archive flags +- Rewrote code to avoid memory leaks (identified by the code sanitizer) +- Updated EDGAR v6 CH4 emission files to correct timestamp issue +- Updated CH4 Lakes emission files to correct time unit issue +- Added fix for CH4_RICE emissions from EDGAR v6 +- Fixed indentation error in the `legacy_bpch` section of `geoschem_config.yml` template files +- Removed "dry air" from the metadata of fields `State_Met%AIRVOL` and `State_Met%BXHEIGHT` +- Applied fixes for CESM runs: Turned off sea salt emissions; Modified time cycle flag for YUAN_MODIS_LAI ### Changed - - Updated CESM HISTORY.rc to work with new CESM-GC diagnostics interface - - Updated sample fullchem restart files copied to run directories to 14.0.0 - 10-year benchmark output +- Updated CESM HISTORY.rc to work with new CESM-GC diagnostics interface +- Updated sample fullchem restart files copied to run directories to 14.0.0 10-year benchmark output ### Changed - Use met-field surface type fractions instead of input land-water-ice (LWI) index -### Fixed - ### Removed - Removed State_Met%LWI and LWI as a met-field input ## [14.0.1] - 2022-10-31 ### Fixed - - Corrected units in metadata for State_Met%AirNumDen and State_Met%PHIS - - Fixed file path for AEIC2019_DAILY emissions for aerosol-only simulations - - Fixed GCHP bug to populate non-species data in mid-run restart files - - Fixed typo preventing ND51 satellite diagnostic from turning on +- Corrected units in metadata for State_Met%AirNumDen and State_Met%PHIS +- Fixed file path for AEIC2019_DAILY emissions for aerosol-only simulations +- Fixed GCHP bug to populate non-species data in mid-run restart files +- Fixed typo preventing ND51 satellite diagnostic from turning on ### Changed - - Documented and cleaned up GCHP run script operational examples - - Updated README.md and AUTHORS.txt - - Set species concentration arrays as pointers to internal state in GCHP - - Updated Restart collection in HISTORY.rc to save out BXHEIGHT and TROPLEV for all simulations +- Documented and cleaned up GCHP run script operational examples +- Updated README.md and AUTHORS.txt +- Set species concentration arrays as pointers to internal state in GCHP +- Updated Restart collection in HISTORY.rc to save out BXHEIGHT and TROPLEV for all simulations ## [14.0.0] - 2022-10-25 ### Added - - Added user registration with dynamodb database during run directory creation - - Added Hg simulation with KPP - - Added yaml-format config file geoschem_config.yml which replaces input.geos - - Added native GEOS-FP and mass fluxes options to GCHP run directory creation - - Added cap_restart file to GCHP run directories to set simulation start time - - Added updates for compatibility with CESM, GEOS, and WRF-GC +- Added user registration with dynamodb database during run directory creation +- Added Hg simulation with KPP +- Added yaml-format config file geoschem_config.yml which replaces input.geos +- Added native GEOS-FP and mass fluxes options to GCHP run directory creation +- Added cap_restart file to GCHP run directories to set simulation start time +- Added updates for compatibility with CESM, GEOS, and WRF-GC ### Fixed - - Fixed missing output boundary conditions on first timestep of run - - Added missing entries for POG1, POG2, and pFe to HEMCO_Config.rc - - Reverted GC-Classic pressure fixer to v13.3 to fix bug in v13.4 - - Fixed dry deposition of methanol over oceans - - Fixed issues in creating run directory for GCAP2 - - Removed duplicate species for SO4 in aciduptake.eqn - - Fixed CEDS_CO2_SHP emissions in HEMCO_Config.rc file for CO2 simulation - - Fixed Volcano_Table entry in HEMCO config template for GCHP - - Fixed transport tracers simulation in GCHP - - Applied fix to avoid divide-by-zero in routine MMR_Compute_FLux - - Fixed HEMCO diagnostic counter zero warnings in full chemistry simulation - - Fixed bug in totalOC diagnostic - - Fixed bugs causing differences when splitting up GC-Classic and GCHP simulations in time - - Fixed bug setting GEOS-FP meteorology in GCHP run directories - -### Changed - - Updated KPP to version 2.5.0 - - Updated GCHP run scripts to easily segment runs in time - - Changed GCHP restart filename convention to exclude seconds - - Updated offline biogenic VOC and soil NOx emissions - - Reduced root logging level for MAPL from INFO to WARNING - - Changed 4D State_Chm%Species array to vector of 3D concentration arrays - - Renamed GCHP config file runConfig.sh to setCommonRunSettings.sh - - Moved restart file location in run directory to Restarts subdirectory - - Updated sample restart files copied to run directories to 14.0.0 - 1-year benchmark output +- Fixed missing output boundary conditions on first timestep of run +- Added missing entries for POG1, POG2, and pFe to HEMCO_Config.rc +- Reverted GC-Classic pressure fixer to v13.3 to fix bug in v13.4 +- Fixed dry deposition of methanol over oceans +- Fixed issues in creating run directory for GCAP2 +- Removed duplicate species for SO4 in aciduptake.eqn +- Fixed CEDS_CO2_SHP emissions in HEMCO_Config.rc file for CO2 simulation +- Fixed Volcano_Table entry in HEMCO config template for GCHP +- Fixed transport tracers simulation in GCHP +- Applied fix to avoid divide-by-zero in routine MMR_Compute_FLux +- Fixed HEMCO diagnostic counter zero warnings in full chemistry simulation +- Fixed bug in totalOC diagnostic +- Fixed bugs causing differences when splitting up GC-Classic and GCHP simulations in time +- Fixed bug setting GEOS-FP meteorology in GCHP run directories + +### Changed +- Updated KPP to version 2.5.0 +- Updated GCHP run scripts to easily segment runs in time +- Changed GCHP restart filename convention to exclude seconds +- Updated offline biogenic VOC and soil NOx emissions +- Reduced root logging level for MAPL from INFO to WARNING +- Changed 4D State_Chm%Species array to vector of 3D concentration arrays +- Renamed GCHP config file runConfig.sh to setCommonRunSettings.sh +- Moved restart file location in run directory to Restarts subdirectory +- Updated sample restart files copied to run directories to 14.0.0 1-year benchmark output ### Removed - - Removed TMPU1, SPHU1, PS1_WET, and PS1_DRY from GC-Classic restart file - - Removed input.geos; replaced with geoschem_config.yml - - Removed HEMCO.log output file; HEMCO log info now sent to main GEOS-Chem log +- Removed TMPU1, SPHU1, PS1_WET, and PS1_DRY from GC-Classic restart file +- Removed input.geos; replaced with geoschem_config.yml +- Removed HEMCO.log output file; HEMCO log info now sent to main GEOS-Chem log diff --git a/CMakeLists.txt b/CMakeLists.txt index 82cd5f540..53b4bf597 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,6 @@ add_subdirectory(NcdfUtil) add_subdirectory(History) add_subdirectory(ObsPack) add_subdirectory(APM) -add_subdirectory(ISORROPIA) add_subdirectory(GeosRad) add_subdirectory(GTMM) add_subdirectory(GeosCore) diff --git a/GeosCore/CMakeLists.txt b/GeosCore/CMakeLists.txt index d87bb83fe..f01fbbd42 100755 --- a/GeosCore/CMakeLists.txt +++ b/GeosCore/CMakeLists.txt @@ -1,26 +1,5 @@ # GeosCore/CMakeLists.txt -#----------------------------------------------------------------------------- -# Define libTransport.a -#----------------------------------------------------------------------------- -add_library(Transport - STATIC EXCLUDE_FROM_ALL - diag_mod.F90 - calc_met_mod.F90 - diagnostics_mod.F90 - pjc_pfix_mod.F90 - tpcore_fvdas_mod.F90 - tpcore_window_mod.F90 - pjc_pfix_window_mod.F90 - transport_mod.F90 -) - -# Dependencies -target_link_libraries(Transport - PUBLIC - GeosUtil -) - # Add a compilation flag to force REAL to REAL*8 if necessary # only for file tpcore_window_mod.F90 if(${USE_REAL8}) @@ -41,21 +20,23 @@ add_library(GeosCore aero_drydep.F90 aerosol_mod.F90 airs_ch4_mod.F90 + calc_met_mod.F90 carbon_mod.F90 carbon_gases_mod.F90 chemistry_mod.F90 cldice_HBrHOBr_rxn.F90 + cldj_interface_mod.F90 cleanup.F90 co2_mod.F90 convection_mod.F90 depo_mercury_mod.F90 - diag3.F90 + diagnostics_mod.F90 drydep_mod.F90 dust_mod.F90 emissions_mod.F90 fast_jx_mod.F90 + fjx_interface_mod.F90 fullchem_mod.F90 - gamap_mod.F90 gc_environment_mod.F90 get_ndep_mod.F90 global_br_mod.F90 @@ -65,9 +46,8 @@ add_library(GeosCore hco_state_gc_mod.F90 hco_interface_gc_mod.F90 hco_utilities_gc_mod.F90 - initialize.F90 input_mod.F90 - isorropiaII_mod.F90 + aerosol_thermodynamics_mod.F90 land_mercury_mod.F90 linear_chem_mod.F90 linoz_mod.F90 @@ -75,24 +55,28 @@ add_library(GeosCore mercury_mod.F90 mixing_mod.F90 modis_lai_mod.F90 - ndxx_setup.F90 - oasave.F90 ocean_mercury_mod.F90 olson_landmap_mod.F90 pbl_mix_mod.F90 + photolysis_mod.F90 + pjc_pfix_mod.F90 + pjc_pfix_window_mod.F90 planeflight_mod.F90 pops_mod.F90 RnPbBe_mod.F90 rpmares_mod.F90 seasalt_mod.F90 set_global_ch4_mod.F90 - set_prof_o3.F90 sfcvmr_mod.F90 sulfate_mod.F90 tagged_co_mod.F90 tagged_o3_mod.F90 tccon_ch4_mod.F90 toms_mod.F90 + tpcore_fvdas_mod.F90 + tpcore_window_mod.F90 + tracer_mod.F90 + transport_mod.F90 ucx_mod.F90 uvalbedo_mod.F90 vdiff_mod.F90 @@ -100,7 +84,7 @@ add_library(GeosCore YuIMN_Code.F90 # Files only included for special cases - $<$:flexgrid_read_mod.F90 get_met_mod.F90> + $<$:flexgrid_read_mod.F90 get_met_mod.F90 set_boundary_conditions_mod.F90> $<$:rrtmg_rad_transfer_mod.F90> $<$:tomas_mod.F90> $<$:apm_driv_mod.F90> @@ -117,11 +101,10 @@ endif() # Define dependencies for libGeosCore.a target_link_libraries(GeosCore PUBLIC - Transport ObsPack - History - Isorropia + History KPP + HETP_core $ # link only to avoid gathering the rest of the TURs $<$:APM> # depends on APM iff APM is true $<$:GeosRad> # depends on GeosRad iff RRTMG is true diff --git a/GeosCore/RnPbBe_mod.F90 b/GeosCore/RnPbBe_mod.F90 index 72199845f..e263b9703 100644 --- a/GeosCore/RnPbBe_mod.F90 +++ b/GeosCore/RnPbBe_mod.F90 @@ -6,7 +6,7 @@ ! !MODULE: RnPbBe_mod.F90 ! ! !DESCRIPTION: Module RnPbBe\_MOD contains variables and routines used -! for the 222Rn-210Pb-7Be simulation. (hyl, swu, bmy, 6/14/01, 8/4/06) +! for the Rn222-Pb210-Be7 simulation. (hyl, swu, bmy, 6/14/01, 8/4/06) !\\ !\\ ! !INTERFACE: @@ -50,12 +50,12 @@ MODULE RnPbBe_MOD !BOC ! Species ID flags INTEGER :: id_Rn222 - INTEGER :: id_Pb210, id_Pb210Strat - INTEGER :: id_Be7, id_Be7Strat - INTEGER :: id_Be10, id_Be10Strat + INTEGER :: id_Pb210, id_Pb210s + INTEGER :: id_Be7, id_Be7s + INTEGER :: id_Be10, id_Be10s ! Exponential terms - REAL(fp) :: EXP_Rn, EXP_Pb, EXP_Be7, EXP_Be10 + REAL(fp) :: EXP_Rn, EXP_Pb210, EXP_Be7, EXP_Be10 CONTAINS !EOC @@ -66,8 +66,8 @@ MODULE RnPbBe_MOD ! ! !IROUTINE: chemRnPbBe ! -! !DESCRIPTION: Subroutine CHEMRnPbBe performs loss chemistry on 222Rn, -! 210Pb, 7Be, and 10Be. +! !DESCRIPTION: Subroutine CHEMRnPbBe performs loss chemistry on Rn222, +! Pb210, Be7, and Be10. !\\ !\\ ! !INTERFACE: @@ -113,12 +113,12 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & ! ! Scalars INTEGER :: I, J, L, S - REAL(fp) :: ADD_Pb + REAL(fp) :: ADD_Pb210 REAL(fp) :: Decay REAL(fp) :: DTCHEM - REAL(fp) :: Pb_LOST, PbStrat_LOST - REAL(fp) :: Be7_LOST, Be7Strat_LOST - REAL(fp) :: Be10_LOST, Be10Strat_LOST + REAL(fp) :: Pb210_LOST, Pb210s_LOST + REAL(fp) :: Be7_LOST, Be7s_LOST + REAL(fp) :: Be10_LOST, Be10s_LOST ! SAVEd scalars LOGICAL, SAVE :: FIRSTCHEM = .TRUE. @@ -135,7 +135,7 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & ! ! !DEFINED PARAMETERS ! - ! Ratio of molecular weights of 210Pb/222Rn + ! Ratio of molecular weights of Pb210/Rn222 REAL(fp), PARAMETER :: Pb_Rn_RATIO = 210e+0_fp / 222e+0_fp ! Ln 2 @@ -173,7 +173,7 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & ! Fraction of Pb210 left after radioactive decay !Decay = ln2 / ( PbTau * 24.E+00_fp * 3600.E+00_fp ) - EXP_Pb = EXP( -DTCHEM * 9.725E-10_fp ) + EXP_Pb210 = EXP( -DTCHEM * 9.725E-10_fp ) ! Fraction of Be7 left after radioactive decay !Decay = ln2 / ( Be7Tau * 24.E+00_fp * 3600.E+00_fp ) @@ -184,13 +184,13 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & EXP_Be10 = EXP( -DTCHEM * Decay ) ! Species ID flags - id_Rn222 = Ind_('Rn222' ) - id_Pb210 = Ind_('Pb210' ) - id_Pb210Strat = Ind_('Pb210Strat' ) - id_Be7 = Ind_('Be7' ) - id_Be7Strat = Ind_('Be7Strat' ) - id_Be10 = Ind_('Be10' ) - id_Be10Strat = Ind_('Be10Strat' ) + id_Rn222 = Ind_('Rn222' ) + id_Pb210 = Ind_('Pb210' ) + id_Pb210s = Ind_('Pb210s' ) + id_Be7 = Ind_('Be7' ) + id_Be7s = Ind_('Be7s' ) + id_Be10 = Ind_('Be10' ) + id_Be10s = Ind_('Be10s' ) ! Reset FIRSTCHEM flag FIRSTCHEM = .FALSE. @@ -219,7 +219,7 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - ! Rn_LOST = amount of 222Rn lost to decay [kg] + ! Rn_LOST = amount of Rn222 lost to decay [kg] Rn_LOST(I,J,L) = Spc(id_Rn222)%Conc(I,J,L) * ( 1.0_fp - EXP_Rn ) !----------------------------------------------------------- @@ -249,16 +249,16 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & !================================================================= ! Make sure Pb210 is a defined species - IF ( id_Pb210 > 0 .or. id_Pb210Strat > 0 ) THEN + IF ( id_Pb210 > 0 .or. id_Pb210s > 0 ) THEN !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, ADD_Pb, Pb_LOST, PbStrat_LOST, S ) + !$OMP PRIVATE( I, J, L, ADD_Pb210, Pb210_LOST, Pb210s_LOST, S ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - ! ADD_Pb = Amount of 210Pb gained by decay from 222Rn [kg] - ADD_Pb = Rn_LOST(I,J,L) * Pb_Rn_RATIO + ! ADD_Pb = Amount of Pb210 gained by decay from Rn222 [kg] + ADD_Pb210 = Rn_LOST(I,J,L) * Pb_Rn_RATIO !----------------------------------------------------------- ! HISTORY (aka netCDF diagnostics) @@ -268,22 +268,22 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & ! Units: [kg/s], but consider eventually changing to [kg/m2/s] IF ( State_Diag%Archive_PbFromRnDecay ) THEN - State_Diag%PbFromRnDecay(I,J,L) = ( ADD_Pb / DTCHEM ) + State_Diag%PbFromRnDecay(I,J,L) = ( ADD_Pb210 / DTCHEM ) ENDIF - ! Add 210Pb gained by decay from 222Rn into Spc [kg] - Spc(id_Pb210)%Conc(I,J,L) = Spc(id_Pb210)%Conc(I,J,L) + ADD_Pb + ! Add Pb210 gained by decay from Rn222 into Spc [kg] + Spc(id_Pb210)%Conc(I,J,L) = Spc(id_Pb210)%Conc(I,J,L) + ADD_Pb210 - ! Update stratospheric 210Pb [kg] - IF ( State_Met%InStratosphere(I,J,L) .and. id_Pb210Strat > 0 ) THEN - Spc(id_Pb210Strat)%Conc(I,J,L) = Spc(id_Pb210Strat)%Conc(I,J,L) + ADD_Pb + ! Update stratospheric Pb210 [kg] + IF ( State_Met%InStratosphere(I,J,L) .and. id_Pb210s > 0 ) THEN + Spc(id_Pb210s)%Conc(I,J,L) = Spc(id_Pb210s)%Conc(I,J,L) + ADD_Pb210 ENDIF - ! Amount of 210Pb lost to radioactive decay [kg] - ! NOTE: we've already added in the 210Pb gained from 222Rn - Pb_LOST = Spc(id_Pb210)%Conc(I,J,L) * ( 1.0_fp - EXP_Pb ) - IF ( id_Pb210Strat > 0 ) THEN - PbStrat_LOST = Spc(id_Pb210Strat)%Conc(I,J,L) * ( 1.0_fp - EXP_Pb) + ! Amount of Pb210 lost to radioactive decay [kg] + ! NOTE: we've already added in the Pb210 gained from Rn222 + Pb210_LOST = Spc(id_Pb210)%Conc(I,J,L) * ( 1.0_fp - EXP_Pb210 ) + IF ( id_Pb210s > 0 ) THEN + Pb210s_LOST = Spc(id_Pb210s)%Conc(I,J,L) * ( 1.0_fp - EXP_Pb210) ENDIF !----------------------------------------------------------- @@ -297,25 +297,25 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & IF ( id_Pb210 > 0 ) THEN S = State_Diag%Map_RadDecay%id2slot(id_Pb210) IF ( S > 0 ) THEN - State_Diag%RadDecay(I,J,L,S) = ( Pb_LOST / DTCHEM ) + State_Diag%RadDecay(I,J,L,S) = ( Pb210_LOST / DTCHEM ) ENDIF ENDIF ! Loss of Pb210 produced in stratosphere [kg/s] - IF ( id_Pb210Strat > 0 ) THEN - S = State_Diag%Map_RadDecay%id2slot(id_Pb210Strat) + IF ( id_Pb210s > 0 ) THEN + S = State_Diag%Map_RadDecay%id2slot(id_Pb210s) IF ( S > 0 ) THEN - State_Diag%RadDecay(I,J,L,S) = ( PbStrat_LOST / DTCHEM ) + State_Diag%RadDecay(I,J,L,S) = ( Pb210s_LOST / DTCHEM ) ENDIF ENDIF ENDIF - ! Subtract 210Pb lost to decay from Spc [kg] - Spc(id_Pb210)%Conc(I,J,L) = Spc(id_Pb210)%Conc(I,J,L) - Pb_LOST + ! Subtract Pb210 lost to decay from Spc [kg] + Spc(id_Pb210)%Conc(I,J,L) = Spc(id_Pb210)%Conc(I,J,L) - Pb210_LOST - ! Update stratospheric 210Pb [kg] - IF ( id_Pb210Strat > 0 ) THEN - Spc(id_Pb210Strat)%Conc(I,J,L) = Spc(id_Pb210Strat)%Conc(I,J,L) - PbStrat_LOST + ! Update stratospheric Pb210 [kg] + IF ( id_Pb210s > 0 ) THEN + Spc(id_Pb210s)%Conc(I,J,L) = Spc(id_Pb210s)%Conc(I,J,L) - Pb210s_LOST ENDIF ENDDO @@ -329,18 +329,18 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & !================================================================= ! Make sure Be7 is a defined species - IF ( id_Be7 > 0 .or. id_Be7Strat > 0 ) THEN + IF ( id_Be7 > 0 .or. id_Be7s > 0 ) THEN !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, Be7_LOST, Be7Strat_LOST, S ) + !$OMP PRIVATE( I, J, L, Be7_LOST, Be7s_LOST, S ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - ! Amount of 7Be lost to decay [kg] + ! Amount of Be7 lost to decay [kg] Be7_LOST = Spc(id_Be7)%Conc(I,J,L) * ( 1d0 - EXP_Be7 ) - IF ( id_Be7Strat > 0 ) THEN - Be7Strat_LOST = Spc(id_Be7Strat)%Conc(I,J,L) * ( 1d0 - EXP_Be7 ) + IF ( id_Be7s > 0 ) THEN + Be7s_LOST = Spc(id_Be7s)%Conc(I,J,L) * ( 1d0 - EXP_Be7 ) ENDIF !----------------------------------------------------------- @@ -359,20 +359,20 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & ENDIF ! Loss of Be7 produced in stratosphere [kg/s] - IF ( id_Be7Strat > 0 ) THEN - S = State_Diag%Map_RadDecay%id2slot(id_Be7Strat) + IF ( id_Be7s > 0 ) THEN + S = State_Diag%Map_RadDecay%id2slot(id_Be7s) IF ( S > 0 ) THEN - State_Diag%RadDecay(I,J,L,S) = ( Be7Strat_LOST / DTCHEM ) + State_Diag%RadDecay(I,J,L,S) = ( Be7s_LOST / DTCHEM ) ENDIF ENDIF ENDIF - ! Subtract amount of 7Be lost to decay from Spc [kg] + ! Subtract amount of Be7 lost to decay from Spc [kg] Spc(id_Be7)%Conc(I,J,L) = Spc(id_Be7)%Conc(I,J,L) - Be7_LOST - ! Update stratospheric 7Be [kg] - IF ( id_Be7Strat > 0 ) THEN - Spc(id_Be7Strat)%Conc(I,J,L) = Spc(id_Be7Strat)%Conc(I,J,L) - Be7Strat_LOST + ! Update stratospheric Be7 [kg] + IF ( id_Be7s > 0 ) THEN + Spc(id_Be7s)%Conc(I,J,L) = Spc(id_Be7s)%Conc(I,J,L) - Be7s_LOST ENDIF ENDDO @@ -386,18 +386,18 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & !================================================================= ! Make sure Be10 is a defined species - IF ( id_Be10 > 0 .or. id_Be10Strat > 0 ) THEN + IF ( id_Be10 > 0 .or. id_Be10s > 0 ) THEN !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, Be10_LOST, Be10Strat_LOST, S ) + !$OMP PRIVATE( I, J, L, Be10_LOST, Be10s_LOST, S ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - ! Amount of 10Be lost to decay [kg] + ! Amount of Be10 lost to decay [kg] Be10_LOST = Spc(id_Be10)%Conc(I,J,L) * ( 1d0 - EXP_Be10 ) - IF ( id_Be10Strat > 0 ) THEN - Be10Strat_LOST = Spc(id_Be10Strat)%Conc(I,J,L) * ( 1d0 - EXP_Be10 ) + IF ( id_Be10s > 0 ) THEN + Be10s_LOST = Spc(id_Be10s)%Conc(I,J,L) * ( 1d0 - EXP_Be10 ) ENDIF !----------------------------------------------------------- @@ -416,20 +416,20 @@ SUBROUTINE CHEMRnPbBe( Input_Opt, State_Chm, State_Diag, & ENDIF ! Loss of Be10 produced in stratosphere [kg/s] - IF ( id_Be10Strat > 0 ) THEN - S = State_Diag%Map_RadDecay%id2slot(id_Be10Strat) + IF ( id_Be10s > 0 ) THEN + S = State_Diag%Map_RadDecay%id2slot(id_Be10s) IF ( S > 0 ) THEN - State_Diag%RadDecay(I,J,L,S) = ( Be10Strat_LOST / DTCHEM) + State_Diag%RadDecay(I,J,L,S) = ( Be10s_LOST / DTCHEM) ENDIF ENDIF ENDIF - ! Subtract amount of 10Be lost to decay from Spc [kg] + ! Subtract amount of Be10 lost to decay from Spc [kg] Spc(id_Be10)%Conc(I,J,L) = Spc(id_Be10)%Conc(I,J,L) - Be10_LOST - ! Update stratospheric 10Be [kg] - IF ( id_Be10Strat > 0 ) THEN - Spc(id_Be10Strat)%Conc(I,J,L) = Spc(id_Be10Strat)%Conc(I,J,L) - Be10Strat_LOST + ! Update stratospheric Be10 [kg] + IF ( id_Be10s > 0 ) THEN + Spc(id_Be10s)%Conc(I,J,L) = Spc(id_Be10s)%Conc(I,J,L) - Be10s_LOST ENDIF ENDDO diff --git a/GeosCore/aero_drydep.F90 b/GeosCore/aero_drydep.F90 index 59dad7f17..b82222d01 100644 --- a/GeosCore/aero_drydep.F90 +++ b/GeosCore/aero_drydep.F90 @@ -8,7 +8,7 @@ ! ! !DESCRIPTION: Subroutine AERO\_DRYDEP removes size-resolved aerosol number ! and mass by dry deposition. The deposition velocities are calcualted from -! drydep_mod.f and only aerosol number NK1-NK30 are really treated as dry +! drydep_mod.f and only aerosol number NK01-NK30 are really treated as dry ! depositing species while each of the mass species are depositing accordingly ! with number. !\\ @@ -35,10 +35,7 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : GET_TS_CHEM USE TOMAS_MOD -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD - USE DIAG_MOD, ONLY : AD44 -#endif + USE UnitConv_Mod IMPLICIT NONE ! @@ -71,12 +68,11 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & LOGICAL, SAVE :: FIRST = .TRUE. INTEGER, SAVE :: H2SO4ID INTEGER, SAVE :: id_H2SO4 - INTEGER, SAVE :: id_NK1 + INTEGER, SAVE :: id_NK01 ! Scalars - LOGICAL :: prtDebug - INTEGER :: nDryDep - INTEGER :: I, J, L + INTEGER :: nDryDep, IBINS + INTEGER :: I, J, L, AS INTEGER :: N, JC, BIN, ID REAL(fp) :: DTCHEM, AREA_CM2, FLUX, X, Y REAL(fp) :: Y0, RKT, DEN, DP, PDP @@ -90,20 +86,20 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & REAL(fp) :: TC(State_Grid%NZ) REAL(fp) :: TC0(State_Grid%NZ) REAL(fp) :: VTS(State_Grid%NZ) ! Settling V [m/s] - REAL(fp) :: NU0(State_Grid%NX,State_Grid%NY,State_Grid%NZ,IBINS) - REAL(fp) :: DU0(State_Grid%NX,State_Grid%NY,State_Grid%NZ,IBINS) - REAL(fp) :: SIZ_DIA(State_Grid%NX,State_Grid%NY,IBINS) - REAL(fp) :: SIZ_DEN(State_Grid%NX,State_Grid%NY,IBINS) - REAL(fp) :: X0(IBINS,ICOMP-IDIAG+1 ) + REAL(fp) :: NU0(State_Grid%NX,State_Grid%NY,State_Grid%NZ,State_Chm%nTomasBins) + REAL(fp) :: DU0(State_Grid%NX,State_Grid%NY,State_Grid%NZ,State_Chm%nTomasBins) + REAL(fp) :: SIZ_DIA(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins) + REAL(fp) :: SIZ_DEN(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins) + REAL(fp) :: X0(State_Chm%nTomasBins,ICOMP-IDIAG+1 ) ! Pointers TYPE(SpcConc), POINTER :: Spc (: ) REAL(fp), POINTER :: BXHEIGHT(:,:,: ) REAL(fp), POINTER :: T (:,:,: ) - REAL(fp), POINTER :: DepFreq (:,:,: ) ! IM, JM, nDryDep + REAL(fp), POINTER :: DepFreq (:,:,: ) ! IM, JM, nDryDep ! SAVEd arrays - INTEGER, SAVE :: DRYD(IBINS) + INTEGER, SAVE, ALLOCATABLE :: DRYD(:) ! Debug !integer :: ii, jj , ix, jx, bb, ll @@ -119,19 +115,21 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & ! Number of dry-deposited species nDryDep = State_Chm%nDryDep + ! Number of bins + IBINS = State_Chm%nTomasBins + ! Check that species units are in [kg] (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units: ' // TRIM(State_Chm%Spc_Units) - LOC = 'Routine AERO_DRYDEP in aero_drydep.F' + IF ( .not. Check_Units( State_Chm, & + KG_SPECIES, & + mapping=State_Chm%Map_Advect ) ) THEN + MSG = 'Not all advected species have units of "kg"!' + LOC = 'Routine AERO_DRYDEP in GeosCore/aero_drydep.F90' CALL GC_Error( MSG, RC, LOC ) ENDIF ! DTCHEM is the chemistry timestep in seconds DTCHEM = GET_TS_CHEM() - ! Get logical values from Input_Opt - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Initialize pointers Spc => State_Chm%Species BXHEIGHT => State_Met%BXHEIGHT @@ -143,7 +141,7 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & ! Define species ID flags id_H2SO4 = Ind_('H2SO4') - id_NK1 = Ind_('NK1' ) + id_NK01 = Ind_('NK01' ) ! Make sure species are defined IF ( id_H2SO4 < 0 ) THEN @@ -151,18 +149,21 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & LOC = 'Routine AERO_DRYDEP in aero_drydep.F' CALL ERROR_STOP( MSG, LOC ) ENDIF - IF ( id_NK1 < 0 ) THEN - MSG = 'NK1 is not a defined species!' + IF ( id_NK01 < 0 ) THEN + MSG = 'NK01 is not a defined species!' LOC = 'Routine AERO_DRYDEP in aero_drydep.F' CALL ERROR_STOP( MSG, LOC ) ENDIF + ALLOCATE( DRYD( State_Chm%nTomasBins ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'DRYD (aero_drydep.F90)' ) + DRYD = 0 + ! First identify if the size-resolved aerosol species have their ! deposition velocity calculated. ! dryd is an array that keeps the drydep species ID. So if the ! aerosol component has dryd = 0, that means it was not included ! as a dry depositting species. - DRYD = 0 DO BIN = 1, IBINS DO N = 1, nDryDep !just want to match only once (win, 5/24/06) @@ -172,9 +173,9 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & ! Debug !print *, 'DRYDEP Species:',N ENDIF - IF ( State_Chm%Map_DryDep(N) == ( id_NK1-1+BIN ) )THEN + IF ( State_Chm%Map_DryDep(N) == ( id_NK01-1+BIN ) )THEN ! Debug - !print *,'Match species:',IDTNK1-1+bin,'Bin',bin + !print *,'Match species:',IDTNK01-1+bin,'Bin',bin DRYD( BIN ) = N GOTO 100 ENDIF @@ -216,7 +217,7 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & ! SIZ_DIA [=] m and SIZ_DEN [=] kg/m3 CALL AERO_DIADEN( 1, Input_Opt, State_Chm, State_Grid, State_Met, & - SIZ_DIA, SIZ_DEN, RC ) + State_Diag, SIZ_DIA, SIZ_DEN, RC ) IF ( RC /= GC_SUCCESS ) THEN CALL ERROR_STOP('CALL AERO_DIADEN', 'AERO_DRYDEP in aero_drydep.F') ENDIF @@ -289,7 +290,7 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & ENDDO ! L-loop DO JC = 1, ICOMP-IDIAG+1 - ID = id_NK1 - 1 + BIN + ( IBINS * (JC-1) ) + ID = id_NK01 - 1 + BIN + ( IBINS * (JC-1) ) ! Debug !IF (i==ix .and. j==jx .and. l==ll) THEN @@ -324,41 +325,6 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & ! print *, BIN, TC0(L), TC(L), VTS(L) ENDDO -#ifdef BPCH_DIAG - !======================================================== - ! ND44: Dry deposition diagnostic [#/cm2/s] - !======================================================== - IF ( ND44 > 0 ) THEN - - ! Surface area [cm2] - AREA_CM2 = State_Grid%Area_M2(I,J) * 1e+4_fp - - ! Initialize - TOT1 = 0d0 - TOT2 = 0d0 - - ! Compute column totals of TCO(:) and TC(:) - DO L = 1, State_Grid%NZ - TOT1 = TOT1 + TC0(L) - TOT2 = TOT2 + TC(L) - ENDDO - - ! Convert dust flux from [kg/s] to [#/cm2/s] - FLUX = ( TOT1 - TOT2 ) / DTCHEM - FLUX = FLUX * State_Chm%SpcData(ID)%Info%MW_g * & - 1.e-3_fp / AREA_CM2 - - ! Save in AD44 - IF( JC == 1 ) THEN - AD44(I,J,DRYD(BIN),1) = AD44(I,J,DRYD(BIN),1) + FLUX - ELSE - AD44(I,J,nDryDep+BIN+(JC-2)*IBINS,1) = & - AD44(I,J,nDryDep+BIN+(JC-2)*IBINS,1) + FLUX - ENDIF - - ENDIF -#endif - ENDDO ! JC-loop ENDDO ! I-loop @@ -411,7 +377,7 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & ! Save the initial 30-bin number and icomp-1 mass component DO JC = 1, ICOMP-IDIAG+1 DO BIN = 1, IBINS - ID = id_NK1 - 1 + BIN + ( IBINS * (JC-1) ) + ID = id_NK01 - 1 + BIN + ( IBINS * (JC-1) ) X0(BIN,JC) = Spc(ID)%Conc(I,J,L) ENDDO ENDDO @@ -428,7 +394,7 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & DO JC = 1, ICOMP-IDIAG+1 DO BIN = 1, IBINS X = 0d0 - ID = id_NK1 - 1 + BIN + (( JC-1 )* IBINS) + ID = id_NK01 - 1 + BIN + (( JC-1 )* IBINS) ! ******************************************************************* ! NOTE: I'm not sure if this is now covered by dry-deposition in @@ -447,41 +413,6 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & X = X0(BIN,JC) ENDIF -#ifdef BPCH_DIAG - !============================================================== - ! ND44 Diagnostic: Drydep flux of bin1,..,bin30 [molec/cm2/s] - !============================================================== - IF ( ND44 > 0 .AND. RKT > 0d0 ) THEN - - ! Surface area [cm2] - AREA_CM2 = State_Grid%Area_M2(I,J) * 1e+4_fp - - ! Convert from [kg/timestep] to [molec/cm2/s] - ! Store in AD44 - FLUX = X0(BIN,JC) - X - FLUX = FLUX / (State_Chm%SpcData(ID)%Info%MW_g * & - 1.e-3_fp) / AREA_CM2 / DTCHEM * AVO - - IF ( JC == 1 ) THEN - AD44(I,J,DRYD(BIN),1) = AD44(I,J,DRYD(BIN),1)+ FLUX - ELSE - AD44(I,J,nDryDep+BIN+(JC-2)*IBINS,1) = & - AD44(I,J,nDryDep+BIN+(JC-2)*IBINS,1) + FLUX - ENDIF - - ENDIF - ! Debug - !if(i==ii .and. j==jj .and. bin==bb .and. JC==1) & - ! print *,'>',L, Spc(ID)%Conc(I,J,L), X0(BIN,JC) - X, FLUX, & - ! AD44(I,J,DRYD(BIN),1) - !if(i==ii .and. j==jj .and. bin==bb .and. JC==2) & - ! print *,'>',L, Spc(ID)%Conc(I,J,L), X0(BIN,JC) - X, FLUX, & - ! AD44(I,J,nDryDep+BIN+(JC-2)*IBINS,1) - !if(i==ix .and. j==jx .and. bin==bb .and. JC==ICOMP) & - ! print *, L, Spc(ID)%Conc(I,J,L), X0(BIN,JC) - X, FLUX, - ! AD44(I,J,nDryDep+BIN+(JC-2)*IBINS,1) -#endif - ! Swap X back into Spc array Spc(ID)%Conc(I,J,L) = X @@ -497,26 +428,6 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & RKT = DepFreq(I,J,H2SO4ID) * State_Met%F_UNDER_PBLTOP(I,J,L) Y = Y0 * EXP(-RKT) -#ifdef BPCH_DIAG - !============================================================== - ! ND44 Diagnostic: Drydep flux of H2SO4 [molec/cm2/s] - !============================================================== - IF ( ND44 > 0 .AND. RKT > 0d0 ) THEN - - ! Surface area [cm2] - AREA_CM2 = State_Grid%Area_M2(I,J) * 1e+4_fp - - ! Convert from [kg/timestep] to [molec/cm2/s] - ! Store in AD44 - FLUX = Y0 - Y - FLUX = FLUX / (State_Chm%SpcData(id_H2SO4)%Info%MW_g * & - 1.e-3_fp) / AREA_CM2 / DTCHEM * AVO - - AD44(I,J,H2SO4ID,1) = AD44(I,J,H2SO4ID,1) + FLUX - - ENDIF -#endif - !Swap final H2SO4 back into Spc array Spc(id_H2SO4)%Conc(I,J,L) = Y @@ -525,7 +436,7 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & ENDDO !$OMP END PARALLEL DO - IF ( prtDebug ) PRINT *,'### Finish AERO_DRYDEP' + IF ( Input_Opt%Verbose ) PRINT *,'### Finish AERO_DRYDEP' ! Free pointers Spc => NULL() @@ -534,10 +445,11 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, & DepFreq => NULL() ! Check that species units are still in [kg] (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units at end of routine: ' & - // TRIM(State_Chm%Spc_Units) - LOC = 'Routine AERO_DRYDEP in aero_drydep.F' + IF ( .not. Check_Units( State_Chm, & + KG_SPECIES, & + mapping=State_Chm%Map_Advect ) ) THEN + MSG = 'Not all advected species have units "kg"!' + LOC = 'Routine AERO_DRYDEP in GeosCore/aero_drydep.F90' CALL GC_Error( MSG, RC, LOC ) ENDIF diff --git a/GeosCore/aerosol_mod.F90 b/GeosCore/aerosol_mod.F90 index 0e8a63741..e8a554a5d 100644 --- a/GeosCore/aerosol_mod.F90 +++ b/GeosCore/aerosol_mod.F90 @@ -24,72 +24,34 @@ MODULE AEROSOL_MOD ! ! !PUBLIC MEMBER FUNCTIONS: ! - PUBLIC :: AEROSOL_CONC - PUBLIC :: CLEANUP_AEROSOL PUBLIC :: INIT_AEROSOL + PUBLIC :: AEROSOL_CONC PUBLIC :: RDAER - PUBLIC :: Set_AerMass_Diagnostic ! ! !PUBLIC DATA MEMBERS: ! - !======================================================================== - ! BCPI : Hydrophilic black carbon aerosol [kg/m3] - ! BCPO : Hydrophobic black carbon aerosol [kg/m3] - ! OCPI : Hydrophilic organic carbon aerosol [kg/m3] - ! OCPO : Hydrophobic organic carbon aerosol [kg/m3] - ! OCPISOA : Hydrophilic OC + SOA aerosol [kg/m3] - ! SALA : Accumulation mode seasalt aerosol [kg/m3] - ! ACL : Accumulation mode Cl aerosol [kg/m3] - ! SALC : Coarse mode seasalt aerosol [kg/m3] - ! SO4_NH4_NIT : Lumped SO4-NH4-NIT aerosol [kg/m3] - ! SO4 : Sulfate aerosol [kg/m3] - ! HMS : Hydroxymethane sulfonate aerosol [kg/m3] ! (jmm, 06/29/18) - ! NH4 : Ammonium aerosol [kg/m3] - ! NIT : Inorganic nitrate aerosol [kg/m3] - ! SLA : Stratospheric liquid aerosol [kg/m3] - ! SPA : Stratospheric particulate aerosol [kg/m3] - ! TSOA : Terpene SOA [kg/m3] - ! ASOA : Aromatic + IVOC SOA [kg/m3] - ! OPOA : Aerosol product of SVOC oxidation [kg/m3] - ! SOAGX : SOA product of GLYX [kg/m3] - ! SOAIE : SOA product of IEPOX & HMML [kg/m3] - ! PM25 : Particulate matter < 2.5 um [kg/m3] - ! ISOAAQ : Isoprene SOA (aqueous formation) [kg/m3] - ! SOAS : Simple SOA [kg/m3] - ! OCFPOA : OM/OC for POA [unitless] - ! OCFOPOA : OM/OC for OPOA, OCPI, OCPO [unitless] - !======================================================================== - REAL(fp), ALLOCATABLE, PUBLIC :: BCPI(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: BCPO(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: OCPI(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: OCPO(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: OCPISOA(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: SALA(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: ACL(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: SALC(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: SO4_NH4_NIT(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: SO4(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: HMS(:,:,:) ! (jmm, 06/29/18) - REAL(fp), ALLOCATABLE, PUBLIC :: NH4(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: NIT(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: FRAC_SNA(:,:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: SLA(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: SPA(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: TSOA(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: ASOA(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: OPOA(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: SOAGX(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: PM25(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: PM10(:,:,:)!zhaisx - REAL(fp), ALLOCATABLE, PUBLIC :: ISOAAQ(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: SOAS(:,:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: OCFPOA(:,:) - REAL(fp), ALLOCATABLE, PUBLIC :: OCFOPOA(:,:) - ! Growth factors - REAL(fp), PUBLIC :: SIA_GROWTH - REAL(fp), PUBLIC :: ORG_GROWTH - REAL(fp), PUBLIC :: SSA_GROWTH + REAL(fp), PUBLIC :: SIA_GROWTH + REAL(fp), PUBLIC :: ORG_GROWTH + REAL(fp), PUBLIC :: SSA_GROWTH + + ! Logical flags + LOGICAL, PUBLIC :: IS_OCPI + LOGICAL, PUBLIC :: IS_OCPO + LOGICAL, PUBLIC :: IS_BC + LOGICAL, PUBLIC :: IS_SO4 + LOGICAL, PUBLIC :: IS_HMS + LOGICAL, PUBLIC :: IS_NH4 + LOGICAL, PUBLIC :: IS_NIT + LOGICAL, PUBLIC :: IS_DST + LOGICAL, PUBLIC :: IS_SAL + LOGICAL, PUBLIC :: IS_POA + LOGICAL, PUBLIC :: IS_OPOA + LOGICAL, PUBLIC :: IS_TSOA + LOGICAL, PUBLIC :: IS_ASOA + LOGICAL, PUBLIC :: IS_SOAGX + LOGICAL, PUBLIC :: IS_SimpleSOA + LOGICAL, PUBLIC :: IS_ComplexSOA ! ! !DEFINED PARAMETERS: ! @@ -117,12 +79,6 @@ MODULE AEROSOL_MOD ! ! !PRIVATE TYPES: ! - ! Mass of hydrophobic aerosol from Mian Chin - REAL(fp), ALLOCATABLE, SAVE :: DAERSL(:,:,:,:) - - ! Mass of hydrophilic aerosol from Mian Chin - REAL(fp), ALLOCATABLE, SAVE :: WAERSL(:,:,:,:) - ! Add tracer ID flags as module variables (bmy, 6/16/16) INTEGER :: id_BCPI, id_BCPO, id_DST1, id_DST2 INTEGER :: id_DST3, id_DST4, id_NH4, id_NIT @@ -131,7 +87,7 @@ MODULE AEROSOL_MOD INTEGER :: id_POA1, id_POA2, id_OPOA1, id_OPOA2 INTEGER :: id_TSOA1, id_TSOA2, id_TSOA3, id_TSOA0 INTEGER :: id_ASOAN, id_ASOA1, id_ASOA2, id_ASOA3 - INTEGER :: id_DUST1, id_SOAS, id_SALACL, id_HMS ! (jmm, 06/29/18) + INTEGER :: id_DUST01, id_SOAS, id_SALACL, id_HMS ! (jmm, 06/29/18) INTEGER :: id_SOAGX, id_SOAIE INTEGER :: id_INDIOL,id_LVOCOA @@ -141,16 +97,7 @@ MODULE AEROSOL_MOD ! (ewl, 1/23/17) INTEGER :: Map_NRHAER(5) - ! Diagnostic switches - LOGICAL :: Is_POA - LOGICAL :: Is_OPOA - - ! Conversionf factors to ugC/m3 for Total Organic Carbon diagnostic - REAL(fp) :: Fac_INDIOL - REAL(fp) :: Fac_LVOCOA - REAL(fp) :: Fac_SOAGX - REAL(fp) :: Fac_SOAIE - + CONTAINS !EOC !------------------------------------------------------------------------------ @@ -173,7 +120,6 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! ! !USES: ! - USE CMN_FJX_MOD, ONLY : REAA USE ErrCode_Mod USE ERROR_MOD #if !defined( MODEL_CESM ) @@ -186,12 +132,9 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState - USE UCX_MOD, ONLY : KG_STRAT_AER - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod USE TIME_MOD, ONLY : GET_MONTH -#ifdef TOMAS - USE TOMAS_MOD, ONLY : IBINS -#endif + USE Timers_Mod, ONLY : Timer_End, Timer_Start ! ! !INPUT PARAMETERS: ! @@ -221,7 +164,7 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & LOGICAL, SAVE :: FIRST = .TRUE. ! Non-SAVEd variables - INTEGER :: I, J, L, N, NA, ND, K + INTEGER :: I, J, L, N, NA, ND, K, IBINS INTEGER :: k_SO4 INTEGER :: k_ORG INTEGER :: k_SSA @@ -230,29 +173,23 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & REAL(fp) :: REFF ! Logical flags - LOGICAL :: prtDebug LOGICAL :: LCARB LOGICAL :: LDUST LOGICAL :: LSSALT LOGICAL :: LSULF - LOGICAL :: IS_OCPO, IS_OCPI, IS_BC - LOGICAL :: IS_SO4, IS_NH4, IS_NIT - LOGICAL :: IS_SAL, IS_DST, IS_HMS ! (jmm, 06/29/18) - LOGICAL :: IS_TSOA, IS_ASOA - LOGICAL :: IS_POA, IS_OPOA - LOGICAL :: IS_SOAGX - LOGICAL :: Is_SimpleSOA - LOGICAL :: Is_ComplexSOA ! Pointers TYPE(SpcConc), POINTER :: Spc(:) + REAL*8, POINTER :: REAA(:,:,:) REAL(fp), POINTER :: AIRVOL(:,:,:) REAL(fp), POINTER :: PMID(:,:,:) REAL(fp), POINTER :: T(:,:,:) REAL(fp), POINTER :: SOILDUST(:,:,:,:) + REAL(fp), POINTER :: KG_STRAT_AER(:,:,:,:) ! Other variables - CHARACTER(LEN=63) :: OrigUnit + INTEGER :: previous_units + ! For spatially and seasonally varying OM/OC CHARACTER(LEN=255) :: FIELDNAME @@ -278,34 +215,28 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & LSSALT = Input_Opt%LSSALT LSULF = Input_Opt%LSULF - ! Do we have to print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - - ! Define logical flags - IS_OCPI = ( id_OCPI > 0 ) - IS_OCPO = ( id_OCPO > 0 ) - IS_BC = ( id_BCPI > 0 .AND. id_BCPO > 0 ) - IS_SO4 = ( id_SO4 > 0 ) - IS_HMS = ( id_HMS > 0 ) !(jmm, 06/29/18) - IS_NH4 = ( id_NH4 > 0 ) - IS_NIT = ( id_NIT > 0 ) - IS_DST = ( id_DST1 > 0 .AND. id_DST2 > 0 ) - IS_SAL = ( id_SALA > 0 .AND. id_SALC > 0 ) - IS_TSOA = ( id_TSOA1 > 0 .AND. id_TSOA2 > 0 .AND. & - id_TSOA3 > 0 .AND. id_TSOA0 > 0 ) - IS_ASOA = ( id_ASOAN > 0 .AND. id_ASOA1 > 0 .AND. & - id_ASOA2 > 0 .AND. id_ASOA3 > 0 ) - IS_POA = ( id_POA1 > 0 .AND. id_POA2 > 0 ) - IS_OPOA = ( id_OPOA1 > 0 .AND. id_OPOA2 > 0 ) - IS_SOAGX = ( id_SOAGX > 0 ) +#ifdef TOMAS + ! Number of size bins for TOMAS microphysics + IBINS = State_Chm%nTomasBins +#endif + ! Set pointers + REAA => State_Chm%Phot%REAA - ! Logical flags for SOA scheme - Is_SimpleSOA = ( id_SOAS > 0 ) - Is_ComplexSOA = Input_Opt%LSOA + ! Stop aerosol chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Aerosol chem", RC ) + ENDIF ! Convert species to [kg] for this routine - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = KG_SPECIES, & + mapping = State_Chm%Map_Advect, & + previous_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -314,12 +245,18 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + ! Start aerosol chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Aerosol chem", RC ) + ENDIF + ! Initialize pointers Spc => State_Chm%Species AIRVOL => State_Met%AIRVOL PMID => State_Met%PMID T => State_Met%T SOILDUST => State_Chm%SoilDust + KG_STRAT_AER => State_Chm%KG_AER !================================================================= ! OM/OC ratio @@ -352,20 +289,20 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! Set OM/OC using spatially and seasonally varying data from ! Philip et al. (2014) - OCFPOA(:,:) = State_Chm%OMOC(:,:) ! OM/OC for POA - OCFOPOA(:,:) = State_Chm%OMOC(:,:) ! OM/OC for OPOA, OCPI, and OCPO + State_Chm%AerMass%OCFPOA(:,:) = State_Chm%OMOC(:,:) ! OM/OC for POA + State_chm%AerMass%OCFOPOA(:,:) = State_Chm%OMOC(:,:) ! OM/OC for OPOA, OCPI, and OCPO ELSE ! Use default global mean OM/OC recommended by the Aerosols WG - OCFPOA(:,:) = 1.4e+0_fp ! OM/OC for POA - OCFOPOA(:,:) = 2.1e+0_fp ! OM/OC for OPOA, OCPI, and OCPO + State_Chm%AerMass%OCFPOA(:,:) = 1.4e+0_fp ! OM/OC for POA + State_chm%AerMass%OCFOPOA(:,:) = 2.1e+0_fp ! OM/OC for OPOA, OCPI, and OCPO ENDIF ! Save OM/OC - State_Chm%OMOC_POA(:,:) = OCFPOA(:,:) - State_Chm%OMOC_OPOA(:,:) = OCFOPOA(:,:) + State_Chm%OMOC_POA(:,:) = State_Chm%AerMass%OCFPOA(:,:) + State_Chm%OMOC_OPOA(:,:) = State_chm%AerMass%OCFOPOA(:,:) !================================================================= ! Compute growth factors at 35% RH @@ -385,9 +322,9 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & Rho_wet = 1000e+0_fp ! Growth factor for SO4 + NIT + NH4 - Rad_dry = REAA(1,k_SO4) - Rad_wet = REAA(1,k_SO4) + 35e+0_fp * & - ( REAA(2,k_SO4) - REAA(1,k_SO4) ) / 50e+0_fp + Rad_dry = REAA(1,k_SO4,State_Chm%Phot%DRg) ! DRg = 6. choice of dry size doesn't affect volume growth ratio (hzhu) + Rad_wet = REAA(1,k_SO4,State_Chm%Phot%DRg) + 35e+0_fp * & + ( REAA(2,k_SO4,State_Chm%Phot%DRg) - REAA(1,k_SO4,State_Chm%Phot%DRg) ) / 50e+0_fp Rho_dry = State_Chm%SpcData(id_SO4)%Info%Density SIA_GROWTH = 1 + ( ( ( Rad_wet / Rad_dry ) ** 3 - 1 ) * & ( Rho_wet / Rho_dry ) ) @@ -396,9 +333,9 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & SIA_GROWTH = 1.1_fp ! Growth factor for OCPI + SOA - Rad_dry = REAA(1,k_ORG) - Rad_wet = REAA(1,k_ORG) + 35e+0_fp * & - ( REAA(2,k_ORG) - REAA(1,k_ORG) ) / 50e+0_fp + Rad_dry = REAA(1,k_ORG,State_Chm%Phot%DRg) + Rad_wet = REAA(1,k_ORG,State_Chm%Phot%DRg) + 35e+0_fp * & + ( REAA(2,k_ORG,State_Chm%Phot%DRg) - REAA(1,k_ORG,State_Chm%Phot%DRg) ) / 50e+0_fp IF ( IS_POA ) THEN Rho_dry = State_Chm%SpcData(id_POA1)%Info%Density ELSE IF ( IS_OCPI ) THEN @@ -408,15 +345,15 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ( Rho_wet / Rho_dry ) ) ! Growth factor for SALA - Rad_dry = REAA(1,k_SSA) - Rad_wet = REAA(1,k_SSA) + 35e+0_fp * & - ( REAA(2,k_SSA) - REAA(1,k_SSA) ) / 50e+0_fp + Rad_dry = REAA(1,k_SSA,State_Chm%Phot%DRg) + Rad_wet = REAA(1,k_SSA,State_Chm%Phot%DRg) + 35e+0_fp * & + ( REAA(2,k_SSA,State_Chm%Phot%DRg) - REAA(1,k_SSA,State_Chm%Phot%DRg) ) / 50e+0_fp Rho_dry = State_Chm%SpcData(id_SALA)%Info%Density SSA_GROWTH = 1 + ( ( ( Rad_wet / Rad_dry ) ** 3 - 1 ) * & ( Rho_wet / Rho_dry ) ) ! Print values to log file - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6,'(a)') 'Growth factors at 35% RH:' WRITE( 6, 100 ) SIA_GROWTH, ' for SO4, NIT, and NH4' WRITE( 6, 100 ) ORG_GROWTH, ' for OCPI and SOA' @@ -474,75 +411,75 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & IF ( IS_HMS ) THEN !%%%%% Fullchem simulations: add contribution from HMS - SO4_NH4_NIT(I,J,L) = ( Spc(id_SO4)%Conc(I,J,L) & + State_Chm%AerMass%SO4_NH4_NIT(I,J,L) = ( Spc(id_SO4)%Conc(I,J,L) & + Spc(id_HMS)%Conc(I,J,L) & + Spc(id_NH4)%Conc(I,J,L) & + Spc(id_NIT)%Conc(I,J,L) ) & / AIRVOL(I,J,L) - HMS(I,J,L) = Spc(id_HMS)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%HMS(I,J,L) = Spc(id_HMS)%Conc(I,J,L) / AIRVOL(I,J,L) ELSE !%%%%% Aerosol-only simulations: Skip contribution from HMS - SO4_NH4_NIT(I,J,L) = ( Spc(id_SO4)%Conc(I,J,L) & + State_Chm%AerMass%SO4_NH4_NIT(I,J,L) = ( Spc(id_SO4)%Conc(I,J,L) & + Spc(id_NH4)%Conc(I,J,L) & + Spc(id_NIT)%Conc(I,J,L) ) & / AIRVOL(I,J,L) - HMS(I,J,L) = 0.0_fp + State_Chm%AerMass%HMS(I,J,L) = 0.0_fp ENDIF - SO4(I,J,L) = Spc(id_SO4)%Conc(I,J,L) / AIRVOL(I,J,L) - NH4(I,J,L) = Spc(id_NH4)%Conc(I,J,L) / AIRVOL(I,J,L) - NIT(I,J,L) = Spc(id_NIT)%Conc(I,J,L) / AIRVOL(I,J,L) - SLA(I,J,L) = 0.0_fp - SPA(I,J,L) = 0.0_fp + State_Chm%AerMass%SO4(I,J,L) = Spc(id_SO4)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%NH4(I,J,L) = Spc(id_NH4)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%NIT(I,J,L) = Spc(id_NIT)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%SLA(I,J,L) = 0.0_fp + State_Chm%AerMass%SPA(I,J,L) = 0.0_fp ELSE ! Tropospheric sulfate is zero in stratosphere - SO4_NH4_NIT(I,J,L) = 0.0_fp - SO4(I,J,L) = 0.0_fp - HMS(I,J,L) = 0.0_fp ! (jmm, 06/30/18) - NH4(I,J,L) = 0.0_fp - NIT(I,J,L) = 0.0_fp - SLA(I,J,L) = KG_STRAT_AER(I,J,L,1) / AIRVOL(I,J,L) - SPA(I,J,L) = KG_STRAT_AER(I,J,L,2) / AIRVOL(I,J,L) + State_Chm%AerMass%SO4_NH4_NIT(I,J,L) = 0.0_fp + State_Chm%AerMass%SO4(I,J,L) = 0.0_fp + State_Chm%AerMass%HMS(I,J,L) = 0.0_fp ! (jmm, 06/30/18) + State_Chm%AerMass%NH4(I,J,L) = 0.0_fp + State_Chm%AerMass%NIT(I,J,L) = 0.0_fp + State_Chm%AerMass%SLA(I,J,L) = KG_STRAT_AER(I,J,L,1) / AIRVOL(I,J,L) + State_Chm%AerMass%SPA(I,J,L) = KG_STRAT_AER(I,J,L,2) / AIRVOL(I,J,L) ENDIF ! Add error check for safe division (bmy, 4/7/15) - IF ( SO4_NH4_NIT(I,J,L) > 0e+0_fp ) THEN + IF ( State_Chm%AerMass%SO4_NH4_NIT(I,J,L) > 0e+0_fp ) THEN ! Save these fractions for partitioning of optics ! until later when these may be treated independently ! Only use HMS if it is defined (for fullchem sims) IF ( IS_HMS ) THEN - FRAC_SNA(I,J,L,1) = ( ( Spc(id_SO4)%Conc(I,J,L) + & + State_Chm%AerMass%FRAC_SNA(I,J,L,1) = ( ( Spc(id_SO4)%Conc(I,J,L) + & Spc(id_HMS)%Conc(I,J,L) ) & / AIRVOL(I,J,L) ) & - / SO4_NH4_NIT(I,J,L) + / State_Chm%AerMass%SO4_NH4_NIT(I,J,L) ELSE - FRAC_SNA(I,J,L,1) = ( Spc(id_SO4)%Conc(I,J,L) / AIRVOL(I,J,L) )& - / SO4_NH4_NIT(I,J,L) + State_Chm%AerMass%FRAC_SNA(I,J,L,1) = ( Spc(id_SO4)%Conc(I,J,L) / AIRVOL(I,J,L) )& + / State_Chm%AerMass%SO4_NH4_NIT(I,J,L) ENDIF - FRAC_SNA(I,J,L,2) = ( Spc(id_NIT)%Conc(I,J,L) / AIRVOL(I,J,L) ) & - / SO4_NH4_NIT(I,J,L) + State_Chm%AerMass%FRAC_SNA(I,J,L,2) = ( Spc(id_NIT)%Conc(I,J,L) / AIRVOL(I,J,L) ) & + / State_Chm%AerMass%SO4_NH4_NIT(I,J,L) - FRAC_SNA(I,J,L,3) = ( Spc(id_NH4)%Conc(I,J,L) / AIRVOL(I,J,L) ) & - / SO4_NH4_NIT(I,J,L) + State_Chm%AerMass%FRAC_SNA(I,J,L,3) = ( Spc(id_NH4)%Conc(I,J,L) / AIRVOL(I,J,L) ) & + / State_Chm%AerMass%SO4_NH4_NIT(I,J,L) ELSE ! If SO4_NH4_NIT(I,J,L) is zero, then avoid a div-by-zero ! error. Set all of these to zero because the division ! cannot be done. - FRAC_SNA(I,J,L,1) = 0e+0_fp - FRAC_SNA(I,J,L,2) = 0e+0_fp - FRAC_SNA(I,J,L,3) = 0e+0_fp + State_Chm%AerMass%FRAC_SNA(I,J,L,1) = 0e+0_fp + State_Chm%AerMass%FRAC_SNA(I,J,L,2) = 0e+0_fp + State_Chm%AerMass%FRAC_SNA(I,J,L,3) = 0e+0_fp ENDIF @@ -557,33 +494,33 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & IF ( LCARB ) THEN ! Hydrophilic BC [kg/m3] - BCPI(I,J,L) = Spc(id_BCPI)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%BCPI(I,J,L) = Spc(id_BCPI)%Conc(I,J,L) / AIRVOL(I,J,L) ! Hydrophobic BC [kg/m3] - BCPO(I,J,L) = Spc(id_BCPO)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%BCPO(I,J,L) = Spc(id_BCPO)%Conc(I,J,L) / AIRVOL(I,J,L) ! Hydrophobic OC [kg/m3] ! SOAupdate: Treat either OCPO (x2.1) or POA (x1.4) IF ( IS_POA ) THEN - OCPO(I,J,L) = ( Spc(id_POA1)%Conc(I,J,L) & + State_Chm%AerMass%OCPO(I,J,L) = ( Spc(id_POA1)%Conc(I,J,L) & + Spc(id_POA2)%Conc(I,J,L) ) & - * OCFPOA(I,J) / AIRVOL(I,J,L) + * State_Chm%AerMass%OCFPOA(I,J) / AIRVOL(I,J,L) ELSE IF ( IS_OCPO ) THEN - OCPO(I,J,L) = Spc(id_OCPO)%Conc(I,J,L) & - * OCFOPOA(I,J) / AIRVOL(I,J,L) + State_Chm%AerMass%OCPO(I,J,L) = Spc(id_OCPO)%Conc(I,J,L) & + * State_chm%AerMass%OCFOPOA(I,J) / AIRVOL(I,J,L) ENDIF ! Hydrophilic OC [kg/m3] IF ( IS_OCPI ) THEN - OCPI(I,J,L) = Spc(id_OCPI)%Conc(I,J,L) & - * OCFOPOA(I,J) / AIRVOL(I,J,L) + State_Chm%AerMass%OCPI(I,J,L) = Spc(id_OCPI)%Conc(I,J,L) & + * State_chm%AerMass%OCFOPOA(I,J) / AIRVOL(I,J,L) ENDIF ! Now avoid division by zero (bmy, 4/20/04) - BCPI(I,J,L) = MAX( BCPI(I,J,L), 1e-35_fp ) - OCPI(I,J,L) = MAX( OCPI(I,J,L), 1e-35_fp ) - BCPO(I,J,L) = MAX( BCPO(I,J,L), 1e-35_fp ) - OCPO(I,J,L) = MAX( OCPO(I,J,L), 1e-35_fp ) + State_Chm%AerMass%BCPI(I,J,L) = MAX( State_Chm%AerMass%BCPI(I,J,L), 1e-35_fp ) + State_Chm%AerMass%OCPI(I,J,L) = MAX( State_Chm%AerMass%OCPI(I,J,L), 1e-35_fp ) + State_Chm%AerMass%BCPO(I,J,L) = MAX( State_Chm%AerMass%BCPO(I,J,L), 1e-35_fp ) + State_Chm%AerMass%OCPO(I,J,L) = MAX( State_Chm%AerMass%OCPO(I,J,L), 1e-35_fp ) ENDIF ! LCARB @@ -622,10 +559,10 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & SOILDUST(I,J,L,:) = 0.e0_fp ! Loop over the # of TOMAS dust bins - DO K = 1, IBINS + DO K = 1, State_Chm%nTomasBins ! Get the overall species index for species K - N = id_DUST1 + K - 1 + N = id_DUST01 + K - 1 ! Effective aerosol radius [m] REFF = State_Chm%SpcData(N)%Info%Radius @@ -705,19 +642,19 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & IF ( LSSALT ) THEN ! Accumulation mode seasalt aerosol [kg/m3] - SALA(I,J,L) = Spc(id_SALA)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%SALA(I,J,L) = Spc(id_SALA)%Conc(I,J,L) / AIRVOL(I,J,L) ! Coarse mode seasalt aerosol [kg/m3] - SALC(I,J,L) = Spc(id_SALC)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%SALC(I,J,L) = Spc(id_SALC)%Conc(I,J,L) / AIRVOL(I,J,L) ! Fine mode Cl-/sulfate interal mixed [kg/m3] - ACL(I,J,L) = ( Spc(id_SALACL)%Conc(I,J,L) + & + State_Chm%AerMass%ACL(I,J,L) = ( Spc(id_SALACL)%Conc(I,J,L) + & Spc(id_SALA)%Conc(I,J,L)*0.45e0_fp)/AIRVOL(I,J,L) ! Avoid division by zero - SALA(I,J,L) = MAX( SALA(I,J,L), 1e-35_fp ) - SALC(I,J,L) = MAX( SALC(I,J,L), 1e-35_fp ) - ACL(I,J,L) = MAX( ACL(I,J,L), 1e-35_fp ) + State_Chm%AerMass%SALA(I,J,L) = MAX( State_Chm%AerMass%SALA(I,J,L), 1e-35_fp ) + State_Chm%AerMass%SALC(I,J,L) = MAX( State_Chm%AerMass%SALC(I,J,L), 1e-35_fp ) + State_Chm%AerMass%ACL(I,J,L) = MAX( State_Chm%AerMass%ACL(I,J,L), 1e-35_fp ) ENDIF @@ -733,7 +670,7 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & IF ( Is_SimpleSOA ) THEN ! Simple SOA [kg/m3] - SOAS(I,J,L) = Spc(id_SOAS)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%SOAS(I,J,L) = Spc(id_SOAS)%Conc(I,J,L) / AIRVOL(I,J,L) ENDIF @@ -744,7 +681,7 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! TSOA (terpene SOA) [kg/m3] IF ( IS_TSOA ) THEN - TSOA(I,J,L) = ( Spc(id_TSOA1)%Conc(I,J,L) & + State_Chm%AerMass%TSOA(I,J,L) = ( Spc(id_TSOA1)%Conc(I,J,L) & + Spc(id_TSOA2)%Conc(I,J,L) & + Spc(id_TSOA3)%Conc(I,J,L) & + Spc(id_TSOA0)%Conc(I,J,L) ) & @@ -753,7 +690,7 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! ASOA (benz, tolu, xyle, + NAP/IVOC SOA) [kg/m3] IF ( IS_ASOA ) THEN - ASOA(I,J,L) = ( Spc(id_ASOAN)%Conc(I,J,L) & + State_Chm%AerMass%ASOA(I,J,L) = ( Spc(id_ASOAN)%Conc(I,J,L) & + Spc(id_ASOA1)%Conc(I,J,L) & + Spc(id_ASOA2)%Conc(I,J,L) & + Spc(id_ASOA3)%Conc(I,J,L) ) & @@ -762,9 +699,9 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! OPOA [kg/m3] IF ( IS_OPOA ) THEN - OPOA(I,J,L) = ( Spc(id_OPOA1)%Conc(I,J,L) & + State_Chm%AerMass%OPOA(I,J,L) = ( Spc(id_OPOA1)%Conc(I,J,L) & + Spc(id_OPOA2)%Conc(I,J,L) ) & - * OCFOPOA(I,J) / AIRVOL(I,J,L) + * State_chm%AerMass%OCFOPOA(I,J) / AIRVOL(I,J,L) ENDIF ENDIF @@ -774,12 +711,12 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! Glyoxal IF ( id_SOAGX > 0 ) THEN - ISOAAQ(I,J,L) = Spc(id_SOAGX)%Conc(I,J,L) / AIRVOL(I,J,L) + State_Chm%AerMass%ISOAAQ(I,J,L) = Spc(id_SOAGX)%Conc(I,J,L) / AIRVOL(I,J,L) ENDIF ! IEPOX IF ( id_SOAIE > 0 ) THEN - ISOAAQ(I,J,L) = ISOAAQ(I,J,L) & + State_Chm%AerMass%ISOAAQ(I,J,L) = State_Chm%AerMass%ISOAAQ(I,J,L) & + Spc(id_SOAIE)%Conc(I,J,L) / AIRVOL(I,J,L) ENDIF @@ -791,13 +728,13 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & !! SOA from alkyl nitrates (some contribution !! from non-isoprene sources) !IF ( id_INDIOL > 0 ) THEN - ! ISOAAQ(I,J,L) = ISOAAQ(I,J,L) + Spc(id_INDIOL)%Conc(I,J,L) / AIRVOL(I,J,L) + ! State_Chm%AerMass%ISOAAQ(I,J,L) = State_Chm%AerMass%ISOAAQ(I,J,L) + Spc(id_INDIOL)%Conc(I,J,L) / AIRVOL(I,J,L) !ENDIF !----------------------------------------------------------------------- ! SOA from ISOPOOH oxidation product IF ( id_LVOCOA > 0 ) THEN - ISOAAQ(I,J,L) = ISOAAQ(I,J,L) & + State_Chm%AerMass%ISOAAQ(I,J,L) = State_Chm%AerMass%ISOAAQ(I,J,L) & + Spc(id_LVOCOA)%Conc(I,J,L) / AIRVOL(I,J,L) ENDIF @@ -826,49 +763,41 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! Use simple SOA by default over complex SOA in calculations IF ( Is_SimpleSOA ) THEN - OCPISOA(I,J,L) = ( Spc(id_OCPI)%Conc(I,J,L) * OCFOPOA(I,J) + & - Spc(id_SOAS)%Conc(I,J,L) ) / AIRVOL(I,J,L) + State_Chm%AerMass%OCPISOA(I,J,L) = State_Chm%AerMass%OCPI(I,J,L) + & + State_Chm%AerMass%SOAS(I,J,L) ELSEIF ( Is_ComplexSOA ) THEN - OCPISOA(I,J,L) = ( Spc(id_TSOA1)%Conc(I,J,L) & - + Spc(id_TSOA2)%Conc(I,J,L) & - + Spc(id_TSOA3)%Conc(I,J,L) & - + Spc(id_TSOA0)%Conc(I,J,L) & - + Spc(id_ASOAN)%Conc(I,J,L) & - + Spc(id_ASOA1)%Conc(I,J,L) & - + Spc(id_ASOA2)%Conc(I,J,L) & - + Spc(id_ASOA3)%Conc(I,J,L) ) & - / AIRVOL(I,J,L) + State_Chm%AerMass%OCPISOA(I,J,L) = State_Chm%AerMass%TSOA(I,J,L) + & + State_Chm%AerMass%ASOA(I,J,L) - IF ( IS_OPOA ) THEN ! hotp 7/28/10 - OCPISOA(I,J,L) = OCPISOA(I,J,L) + & - ( Spc(id_OPOA1)%Conc(I,J,L) & - + Spc(id_OPOA2)%Conc(I,J,L) ) & - * OCFOPOA(I,J) / AIRVOL(I,J,L) + IF ( IS_OCPI ) THEN ! hotp 7/28/10 + State_Chm%AerMass%OCPISOA(I,J,L) = State_Chm%AerMass%OCPISOA(I,J,L) + & + State_Chm%AerMass%OCPI(I,J,L) ENDIF - IF ( IS_OCPI ) THEN ! hotp 7/28/10 - OCPISOA(I,J,L) = OCPISOA(I,J,L) + Spc(id_OCPI)%Conc(I,J,L) & - * OCFOPOA(I,J) / AIRVOL(I,J,L) + IF ( IS_OPOA ) THEN ! hotp 7/28/10 + State_Chm%AerMass%OCPISOA(I,J,L) = State_Chm%AerMass%OCPISOA(I,J,L) + & + State_Chm%AerMass%OPOA(I,J,L) ENDIF - ENDIF + ! Add mechanistic isoprene OA (eam, 08/2015) + ! Skip adding this for Simple SOA (jaf, clh, bmy, 5/17/18) + ! benchmark OCPISOA follows simpleSOA and + ! should exculde ISOAAQ to avoid double-counting + ! (yuanjianz, 8 Jun 2024) + State_Chm%AerMass%OCPISOA(I,J,L) = State_Chm%AerMass%OCPISOA(I,J,L) + State_Chm%AerMass%ISOAAQ(I,J,L) - ! Add mechanistic isoprene OA (eam, 08/2015) - ! Skip adding this for Simple SOA (jaf, clh, bmy, 5/17/18) - IF ( Is_ComplexSOA ) THEN - OCPISOA(I,J,L) = OCPISOA(I,J,L) + ISOAAQ(I,J,L) ENDIF ! Now avoid division by zero (bmy, 4/20/04) - OCPISOA(I,J,L) = MAX( OCPISOA(I,J,L), 1e-35_fp ) + State_Chm%AerMass%OCPISOA(I,J,L) = MAX( State_Chm%AerMass%OCPISOA(I,J,L), 1e-35_fp ) !=========================================================== ! SOAGX [kg/m3] !=========================================================== IF ( IS_SOAGX ) THEN - SOAGX(I,J,L) = Spc(id_SOAGX)%Conc(I,J,L) * OCFG / AIRVOL(I,J,L) + State_Chm%AerMass%SOAGX(I,J,L) = Spc(id_SOAGX)%Conc(I,J,L) * OCFG / AIRVOL(I,J,L) ENDIF !============================================================== @@ -881,27 +810,25 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & !============================================================== ! Particulate matter < 2.5um [kg/m3] - PM25(I,J,L) = NH4(I,J,L) * SIA_GROWTH + & - NIT(I,J,L) * SIA_GROWTH + & - SO4(I,J,L) * SIA_GROWTH + & - HMS(I,J,L) * SIA_GROWTH + & ! (jmm, 06/30/18) - BCPI(I,J,L) + & - BCPO(I,J,L) + & - OCPO(I,J,L) + & - OCPI(I,J,L) * ORG_GROWTH + & - SALA(I,J,L) * SSA_GROWTH + & + State_Chm%AerMass%PM25(I,J,L) = State_Chm%AerMass%NH4(I,J,L) * SIA_GROWTH + & + State_Chm%AerMass%NIT(I,J,L) * SIA_GROWTH + & + State_Chm%AerMass%SO4(I,J,L) * SIA_GROWTH + & + State_Chm%AerMass%HMS(I,J,L) * SIA_GROWTH + & ! (jmm, 06/30/18) + State_Chm%AerMass%BCPI(I,J,L) + & + State_Chm%AerMass%BCPO(I,J,L) + & + State_Chm%AerMass%OCPO(I,J,L) + & + State_Chm%AerMass%SALA(I,J,L) * SSA_GROWTH + & SOILDUST(I,J,L,1) + & SOILDUST(I,J,L,2) + & SOILDUST(I,J,L,3) + & SOILDUST(I,J,L,4) + & SOILDUST(I,J,L,5) * 0.3_fp ! + 30% of DST2 - - ! Particulate matter < 10um [kg/m3] - PM10(I,J,L) = PM25(I,J,L) + & ! PM2.5 - SOILDUST(I,J,L,5) * 0.7_fp + & ! + 70% of DST2 - SOILDUST(I,J,L,6) + & ! + 100% of DST3 - SOILDUST(I,J,L,7) * 0.9_fp + & ! + 90% of DST4 - SALC(I,J,L) * SSA_GROWTH + ! OCPI is not present in SVPOA simulation + ! OCPO represents all POA intead (factor*POA) + IF ( Is_OCPI ) THEN + State_Chm%AerMass%PM25(I,J,L) = State_Chm%AerMass%PM25(I,J,L) + & + State_Chm%AerMass%OCPI(I,J,L) * ORG_GROWTH + ENDIF ! Include either simple SOA (default) or Complex SOA in ! PM2.5 calculation. In simulations where both Simple SOA and @@ -909,39 +836,71 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! only the Simple SOA will be added to PM2.5 and PM10, in order ! to avoid double-counting. (bmy, 03 Nov 2021) IF ( Is_SimpleSOA ) THEN - PM25(I,J,L) = PM25(I,J,L) + ( SOAS(I,J,L) * ORG_GROWTH ) - PM10(I,J,L) = PM10(I,J,L) + ( SOAS(I,J,L) * ORG_GROWTH ) + State_Chm%AerMass%PM25(I,J,L) = State_Chm%AerMass%PM25(I,J,L) + ( State_Chm%AerMass%SOAS(I,J,L) * ORG_GROWTH ) ELSE IF ( Is_ComplexSOA ) THEN - PM25(I,J,L) = PM25(I,J,L) + & - TSOA(I,J,L) * ORG_GROWTH + & - ASOA(I,J,L) * ORG_GROWTH + & - ISOAAQ(I,J,L) * ORG_GROWTH ! Includes SOAGX - - PM10(I,J,L) = PM10(I,J,L) + & - TSOA(I,J,L) * ORG_GROWTH + & - ASOA(I,J,L) * ORG_GROWTH + & - ISOAAQ(I,J,L) * ORG_GROWTH ! Includes SOAGX + State_Chm%AerMass%PM25(I,J,L) = State_Chm%AerMass%PM25(I,J,L) + & + State_Chm%AerMass%TSOA(I,J,L) * ORG_GROWTH + & + State_Chm%AerMass%ASOA(I,J,L) * ORG_GROWTH + & + State_Chm%AerMass%ISOAAQ(I,J,L) * ORG_GROWTH ! Includes SOAGX ! Need to add OPOA to PM2.5 for complexSOA_SVPOA simulations ! -- Maggie Marvin (15 Jul 2020) IF ( Is_OPOA ) THEN - PM25(I,J,L) = PM25(I,J,L) + ( OPOA(I,J,L) * ORG_GROWTH ) - PM10(I,J,L) = PM10(I,J,L) + ( OPOA(I,J,L) * ORG_GROWTH ) + State_Chm%AerMass%PM25(I,J,L) = State_Chm%AerMass%PM25(I,J,L) + ( State_Chm%AerMass%OPOA(I,J,L) * ORG_GROWTH ) ENDIF ENDIF + ! Particulate matter < 10um [kg/m3] + State_Chm%AerMass%PM10(I,J,L) = State_Chm%AerMass%PM25(I,J,L) + & ! PM2.5 + SOILDUST(I,J,L,5) * 0.7_fp + & ! + 70% of DST2 + SOILDUST(I,J,L,6) + & ! + 100% of DST3 + SOILDUST(I,J,L,7) * 0.9_fp + & ! + 90% of DST4 + State_Chm%AerMass%SALC(I,J,L) * SSA_GROWTH + ! Apply STP correction factor based on ideal gas law - PM25(I,J,L) = PM25(I,J,L) * ( 1013.25_fp / PMID(I,J,L) ) * & + State_Chm%AerMass%PM25(I,J,L) = State_Chm%AerMass%PM25(I,J,L) * ( 1013.25_fp / PMID(I,J,L) ) * & ( T(I,J,L) / 298.0_fp ) - PM10(I,J,L) = PM10(I,J,L) * ( 1013.25_fp / PMID(I,J,L) ) * & + State_Chm%AerMass%PM10(I,J,L) = State_Chm%AerMass%PM10(I,J,L) * ( 1013.25_fp / PMID(I,J,L) ) * & ( T(I,J,L) / 298.0_fp ) + + !=========================================================== + ! PDER [um] ! (hzhu, 04/05/2024) + ! Parameterized dry effective radius for SNA and OM + !=========================================================== + IF ( State_Chm%AerMass%SO4_NH4_NIT(I,J,L) > 0e+0_fp ) THEN + ! dry SNA and OM mass, in unit of ug/m3 + State_Chm%AerMass%SNAOM(I,J,L) = ( State_Chm%AerMass%SO4_NH4_NIT(I,J,L) + & + State_Chm%AerMass%OCPO(I,J,L) + & + State_Chm%AerMass%OCPISOA(I,J,L) ) * 1.0e+9_fp + + ! ratio between OM and SNA, unitless + State_Chm%AerMass%R_OMSNA(I,J,L) = ( State_Chm%AerMass%OCPO(I,J,L) + & + State_Chm%AerMass%OCPISOA(I,J,L) ) / & + State_Chm%AerMass%SO4_NH4_NIT(I,J,L) + + ! Parameterized dry effective radius, in unit of um + State_Chm%AerMass%PDER(I,J,L) = (exp( 4.36_fp + 0.20_fp*log(State_Chm%AerMass%SNAOM(I,J,L)) + 0.065_fp*log(State_Chm%AerMass%R_OMSNA(I,J,L)) ) *0.001_fp )/0.9_fp ; + + IF (State_Chm%AerMass%PDER(I,J,L) == 0.0_fp) THEN + State_Chm%AerMass%PDER(I,J,L) = 0.005_fp ! give it a small value to avoid divided by 0 + ENDIF + + ELSE + State_Chm%AerMass%SNAOM(I,J,L) = 0.0_fp; + State_Chm%AerMass%R_OMSNA(I,J,L) = 0.0_fp; + State_Chm%AerMass%PDER(I,J,L) = 0.005_fp; + + ENDIF + !=========================================================== + + #ifdef MODEL_GEOS ! PM2.5 sulfates IF ( State_Diag%Archive_PM25su ) THEN - State_Diag%PM25su(I,J,L) = ( SO4(I,J,L) * SIA_GROWTH ) & + State_Diag%PM25su(I,J,L) = ( State_Chm%AerMass%SO4(I,J,L) * SIA_GROWTH ) & * ( 1013.25_fp / PMID(I,J,L) ) & * ( T(I,J,L) / 298.0_fp ) & * 1.0e+9_fp @@ -949,8 +908,8 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! PM2.5 nitrates IF ( State_Diag%Archive_PM25ni ) THEN - State_Diag%PM25ni(I,J,L) = ( NH4(I,J,L) * SIA_GROWTH & - + NIT(I,J,L) * SIA_GROWTH ) & + State_Diag%PM25ni(I,J,L) = ( State_Chm%AerMass%NH4(I,J,L) * SIA_GROWTH & + + State_Chm%AerMass%NIT(I,J,L) * SIA_GROWTH ) & * ( 1013.25_fp / PMID(I,J,L) ) & * ( T(I,J,L) / 298.0_fp ) & * 1.0e+9_fp @@ -958,7 +917,7 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! PM2.5 BC IF ( State_Diag%Archive_PM25bc ) THEN - State_Diag%PM25bc(I,J,L) = ( BCPI(I,J,L) + BCPO(I,J,L) ) & + State_Diag%PM25bc(I,J,L) = ( State_Chm%AerMass%BCPI(I,J,L) + State_Chm%AerMass%BCPO(I,J,L) ) & * ( 1013.25_fp / PMID(I,J,L) ) & * ( T(I,J,L) / 298.0_fp ) & * 1.0e+9_fp @@ -966,8 +925,8 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! PM2.5 OC IF ( State_Diag%Archive_PM25oc ) THEN - State_Diag%PM25oc(I,J,L) = ( OCPO(I,J,L) & - + OCPI(I,J,L) * ORG_GROWTH ) & + State_Diag%PM25oc(I,J,L) = ( State_Chm%AerMass%OCPO(I,J,L) & + + State_Chm%AerMass%OCPI(I,J,L) * ORG_GROWTH ) & * ( 1013.25_fp / PMID(I,J,L) ) & * ( T(I,J,L) / 298.0_fp ) & * 1.0e+9_fp @@ -987,7 +946,7 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! PM2.5 sea salt IF ( State_Diag%Archive_PM25ss ) THEN - State_Diag%PM25ss(I,J,L) = ( SALA(I,J,L) * SSA_GROWTH ) & + State_Diag%PM25ss(I,J,L) = ( State_Chm%AerMass%SALA(I,J,L) * SSA_GROWTH ) & * ( 1013.25_fp / PMID(I,J,L) ) & * ( T(I,J,L) / 298.0_fp ) & * 1.0e+9_fp @@ -995,14 +954,30 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ! PM2.5 SOA IF ( State_Diag%Archive_PM25soa ) THEN - State_Diag%PM25soa(I,J,L) = ( TSOA(I,J,L) * ORG_GROWTH & - + ASOA(I,J,L) * ORG_GROWTH & - + SOAS(I,J,L) * ORG_GROWTH & - + ISOAAQ(I,J,L) * ORG_GROWTH ) & + State_Diag%PM25soa(I,J,L) = ( State_Chm%AerMass%TSOA(I,J,L) * ORG_GROWTH & + + State_Chm%AerMass%ASOA(I,J,L) * ORG_GROWTH & + + State_Chm%AerMass%SOAS(I,J,L) * ORG_GROWTH & + + State_Chm%AerMass%ISOAAQ(I,J,L) * ORG_GROWTH ) & * ( 1013.25_fp / PMID(I,J,L) ) & * ( T(I,J,L) / 298.0_fp ) & * 1.0e+9_fp ENDIF + + ! PM2.5 nitrate + IF ( State_Diag%Archive_PM25nit ) THEN + State_Diag%PM25nit(I,J,L) = ( State_Chm%AerMass%NIT(I,J,L) * SIA_GROWTH ) & + * ( 1013.25_fp / PMID(I,J,L) ) & + * ( T(I,J,L) / 298.0_fp ) & + * 1.0e+9_fp + ENDIF + + ! PM2.5 ammonium + IF ( State_Diag%Archive_PM25nh4 ) THEN + State_Diag%PM25nh4(I,J,L) = ( State_Chm%AerMass%NH4(I,J,L) * SIA_GROWTH ) & + * ( 1013.25_fp / PMID(I,J,L) ) & + * ( T(I,J,L) / 298.0_fp ) & + * 1.0e+9_fp + ENDIF #endif ENDDO @@ -1010,17 +985,35 @@ SUBROUTINE AEROSOL_CONC( Input_Opt, State_Chm, State_Diag, & ENDDO !$OMP END PARALLEL DO + ! Stop aerosol chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Aerosol chem", RC ) + ENDIF + ! Convert species back to original unit - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'End of AEROSOL_CONC in aerosol_mod.F90') RETURN ENDIF + ! Start aerosol chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Aerosol chem", RC ) + ENDIF + ! Free pointers Spc => NULL() + REAA => NULL() AIRVOL => NULL() PMID => NULL() T => NULL() @@ -1049,8 +1042,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! ! !USES: ! - USE CMN_SIZE_Mod, ONLY : NRH, NRHAER, NSTRATAER - USE CMN_FJX_MOD + USE CMN_SIZE_Mod, ONLY : NAER, NRH, NDUST, NRHAER, NSTRATAER USE ErrCode_Mod USE ERROR_MOD, ONLY : ERROR_STOP, Safe_Div USE Input_Opt_Mod, ONLY : OptInput @@ -1062,7 +1054,6 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & USE TIME_MOD, ONLY : ITS_A_NEW_MONTH USE TIME_MOD, ONLY : SYSTEM_TIMESTAMP USE UCX_MOD, ONLY : GET_STRAT_OPT - USE UCX_MOD, ONLY : NDENS_AER USE Species_Mod, ONLY : Species IMPLICIT NONE @@ -1102,7 +1093,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & LOGICAL :: FIRST = .TRUE. LOGICAL :: LINTERP CHARACTER(LEN=16) :: STAMP - INTEGER :: I, J, L, N, R, IRH, W, IRHN, NA, SpcID + INTEGER :: I, J, L, N, R, IRH, W, IRHN, NA, SpcID, g INTEGER :: AA, IWV, IIWV, NWVS, IR, NRT, S REAL*4 :: TEMP( State_Grid%NX,State_Grid%NY,State_Grid%NZ) REAL(fp) :: TEMP2(State_Grid%NX,State_Grid%NY,State_Grid%NZ) @@ -1172,22 +1163,39 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & LOGICAL :: LCARB LOGICAL :: LSSALT LOGICAL :: LSULF - LOGICAL :: Is_ComplexSOA LOGICAL :: LSTRATOD LOGICAL :: LRAD LOGICAL :: LBCAE ! (xnw, 8/24/15) - LOGICAL :: IS_POA, IS_OCPI REAL(fp) :: GF_RH REAL(fp) :: BCAE_1, BCAE_2 - ! Pointers - REAL(fp), POINTER :: BXHEIGHT(:,:,:) - REAL(fp), POINTER :: ERADIUS(:,:,:,:) - REAL(fp), POINTER :: TAREA(:,:,:,:) - REAL(fp), POINTER :: WERADIUS(:,:,:,:) - REAL(fp), POINTER :: WTAREA(:,:,:,:) + ! Pointers to State_Chm%Phot + INTEGER, POINTER :: IWVREQUIRED(:) + INTEGER, POINTER :: IWVSELECT (:,:) + INTEGER, POINTER :: IRHARR (:,:,:) + REAL*8, POINTER :: ACOEF_WV (:) + REAL*8, POINTER :: BCOEF_WV (:) + REAL*8, POINTER :: REAA (:,:,:) + REAL*8, POINTER :: QQAA (:,:,:,:) + REAL*8, POINTER :: ALPHAA (:,:,:,:) + REAL*8, POINTER :: SSAA (:,:,:,:) + REAL*8, POINTER :: ASYMAA (:,:,:,:) + REAL*8, POINTER :: ISOPOD (:,:,:,:) + REAL*8, POINTER :: ODAER (:,:,:,:,:) +#ifdef RRTMG + REAL*8, POINTER :: RTODAER (:,:,:,:,:) + REAL*8, POINTER :: RTSSAER (:,:,:,:,:) + REAL*8, POINTER :: RTASYMAER(:,:,:,:,:) +#endif + + ! Other pointers + REAL(fp), POINTER :: BXHEIGHT (:,:,:) + REAL(fp), POINTER :: ERADIUS (:,:,:,:) + REAL(fp), POINTER :: TAREA (:,:,:,:) + REAL(fp), POINTER :: WERADIUS (:,:,:,:) + REAL(fp), POINTER :: WTAREA (:,:,:,:) REAL(fp), POINTER :: ACLRADIUS(:,:,:) - REAL(fp), POINTER :: ACLAREA(:,:,:) + REAL(fp), POINTER :: ACLAREA (:,:,:) ! For diagnostics LOGICAL :: IsWL1 @@ -1214,61 +1222,37 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & LCARB = Input_Opt%LCARB LSSALT = Input_Opt%LSSALT LSULF = Input_Opt%LSULF - Is_ComplexSOA = Input_Opt%LSOA LSTRATOD = Input_Opt%LSTRATOD LRAD = Input_Opt%LRAD LBCAE = Input_Opt%LBCAE !(xnw, 8/24/15) BCAE_1 = Input_Opt%BCAE_1 BCAE_2 = Input_Opt%BCAE_2 - ! Define logical flags - IS_OCPI = ( id_OCPI > 0 ) - IS_POA = ( id_POA1 > 0 .AND. id_POA2 > 0 ) - ! Initialize pointers - BXHEIGHT => State_Met%BXHEIGHT ! Grid box height [m] - ERADIUS => State_Chm%AeroRadi ! Aerosol Radius [cm] - TAREA => State_Chm%AeroArea ! Aerosol Area [cm2/cm3] - WERADIUS => State_Chm%WetAeroRadi ! Wet Aerosol Radius [cm] - WTAREA => State_Chm%WetAeroArea ! Wet Aerosol Area [cm2/cm3] - ACLRADIUS => State_Chm%AClRadi ! Fine Cl- Radius [cm] - ACLAREA => State_Chm%AClArea ! Fine Cl- Area [cm2/cm3] - - ! Initialize the mapping between hygroscopic species in the - ! species database and the species order in NRHAER - IF ( FIRST ) THEN - DO N = 1, NRHAER - - ! Get the species database index from the species database - ! mapping array for hygroscopic growth species - SpcID = State_Chm%Map_HygGrth(N) - - ! Point to the Species Database entry for species N - SpcInfo => State_Chm%SpcData(SpcID)%Info - - ! Set the mapping to the ordering of aerosol densities in RD_AOD - SELECT CASE ( TRIM(SpcInfo%Name) ) - CASE ( 'SO4' ) - Map_NRHAER(N) = 1 - CASE ( 'BCPI' ) - Map_NRHAER(N) = 2 - CASE ( 'OCPI', 'POA1' ) - Map_NRHAER(N) = 3 - CASE ( 'SALA' ) - Map_NRHAER(N) = 4 - CASE ( 'SALC' ) - Map_NRHAER(N) = 5 - CASE DEFAULT - ErrMsg = 'WARNING: aerosol diagnostics not defined' // & - ' for NRHAER greater than 5!' - CALL GC_ERROR( ErrMsg, RC, 'RDAER in aerosol_mod.F90' ) - END SELECT - - ! Free pointer - SpcInfo => NULL() - - ENDDO - ENDIF + IWVREQUIRED => State_Chm%Phot%IWVREQUIRED ! WL indexes for interpolation + IWVSELECT => State_Chm%Phot%IWVSELECT ! Indexes of requested WLs + IRHARR => State_Chm%Phot%IRHARR ! Relative humidity indexes + ACOEF_WV => State_Chm%Phot%ACOEF_WV ! Coeffs for WL interpolation + BCOEF_WV => State_Chm%Phot%BCOEF_WV ! Coeffs for WL interpolation + REAA => State_Chm%Phot%REAA + QQAA => State_Chm%Phot%QQAA + ALPHAA => State_Chm%Phot%ALPHAA + SSAA => State_Chm%Phot%SSAA + ASYMAA => State_Chm%Phot%ASYMAA + ISOPOD => State_Chm%Phot%ISOPOD ! Isoprene optical depth + ODAER => State_Chm%Phot%ODAER ! Aerosol optical depth +#ifdef RRTMG + RTODAER => State_Chm%Phot%RTODAER ! Optical dust + RTSSAER => State_Chm%Phot%RTSSAER + RTASYMAER => State_Chm%Phot%RTASYMAER +#endif + BXHEIGHT => State_Met%BXHEIGHT ! Grid box height [m] + ERADIUS => State_Chm%AeroRadi ! Aerosol Radius [cm] + TAREA => State_Chm%AeroArea ! Aerosol Area [cm2/cm3] + WERADIUS => State_Chm%WetAeroRadi ! Wet Aerosol Radius [cm] + WTAREA => State_Chm%WetAeroArea ! Wet Aerosol Area [cm2/cm3] + ACLRADIUS => State_Chm%AClRadi ! Fine Cl- Radius [cm] + ACLAREA => State_Chm%AClArea ! Fine Cl- Area [cm2/cm3] !================================================================= ! S U L F A T E A E R O S O L S @@ -1288,7 +1272,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! Use online aerosol concentrations !----------------------------------- IF ( FIRST ) THEN - IF ( Input_Opt%amIRoot ) WRITE( 6, 100 ) + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) WRITE( 6, 100 ) 100 FORMAT( ' - RDAER: Using online SO4 NH4 NIT!' ) ENDIF @@ -1298,7 +1282,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - WAERSL(I,J,L,1) = SO4_NH4_NIT(I,J,L) + State_Chm%AerMass%WAERSL(I,J,L,1) = State_Chm%AerMass%SO4_NH4_NIT(I,J,L) ENDDO ENDDO ENDDO @@ -1326,7 +1310,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! Use online aerosol concentrations !----------------------------------- IF ( FIRST ) THEN - IF ( Input_Opt%amIRoot ) WRITE( 6, 110 ) + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) WRITE( 6, 110 ) 110 FORMAT( ' - RDAER: Using online BCPI OCPI BCPO OCPO!' ) ENDIF @@ -1338,16 +1322,16 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & DO I = 1, State_Grid%NX ! Hydrophilic BC (a.k.a EC) [kg/m3] - WAERSL(I,J,L,2) = BCPI(I,J,L) + State_Chm%AerMass%WAERSL(I,J,L,2) = State_Chm%AerMass%BCPI(I,J,L) ! Hydrophilic OC [kg/m3] - WAERSL(I,J,L,3) = OCPISOA(I,J,L) + State_Chm%AerMass%WAERSL(I,J,L,3) = State_Chm%AerMass%OCPISOA(I,J,L) ! Hydrophobic BC (a.k.a EC) [kg/m3] - DAERSL(I,J,L,1) = BCPO(I,J,L) + State_Chm%AerMass%DAERSL(I,J,L,1) = State_Chm%AerMass%BCPO(I,J,L) ! Hydrophobic OC [kg/m3] - DAERSL(I,J,L,2) = OCPO(I,J,L) + State_Chm%AerMass%DAERSL(I,J,L,2) = State_Chm%AerMass%OCPO(I,J,L) ENDDO ENDDO @@ -1377,8 +1361,10 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! Use online aerosol concentrations !----------------------------------- IF ( FIRST ) THEN - IF ( Input_Opt%amIRoot ) WRITE( 6, 120 ) -120 FORMAT( ' - RDAER: Using online SALA SALC' ) + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN + WRITE( 6, 120 ) +120 FORMAT( ' - RDAER: Using online SALA SALC' ) + ENDIF ENDIF !$OMP PARALLEL DO & @@ -1389,10 +1375,10 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & DO I = 1, State_Grid%NX ! Accumulation mode seasalt aerosol [kg/m3] - WAERSL(I,J,L,4) = SALA(I,J,L) + State_Chm%AerMass%WAERSL(I,J,L,4) = State_Chm%AerMass%SALA(I,J,L) ! Coarse mode seasalt aerosol [kg/m3] - WAERSL(I,J,L,5) = SALC(I,J,L) + State_Chm%AerMass%WAERSL(I,J,L,5) = State_Chm%AerMass%SALC(I,J,L) ENDDO ENDDO @@ -1403,8 +1389,8 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! Transfer stratospheric aerosol data ! SDE 04/17/13 - WAERSL(:,:,:,NRHAER+1) = SLA - WAERSL(:,:,:,NRHAER+2) = SPA + State_Chm%AerMass%WAERSL(:,:,:,NRHAER+1) = State_Chm%AerMass%SLA + State_Chm%AerMass%WAERSL(:,:,:,NRHAER+2) = State_Chm%AerMass%SPA !================================================================= ! Calculate optical depth and surface area at each timestep @@ -1462,12 +1448,13 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & IF ( LRAD ) THEN !Loop over all RT wavelengths (30) ! plus any required for calculating the AOD - NWVS = NWVAA-NWVAA0+NWVREQUIRED + NWVS = State_Chm%Phot%NWVAA - State_Chm%Phot%NWVAA0 + & + State_Chm%Phot%NWVREQUIRED ELSE !Loop over wavelengths needed for !interpolation to those requested in geoschem_config.yml !(determined in RD_AOD) - NWVS = NWVREQUIRED + NWVS = State_Chm%Phot%NWVREQUIRED ENDIF ENDIF @@ -1476,16 +1463,16 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & IF (ODSWITCH .EQ. 0) THEN ! only doing for 1000nm (IWV1000 is set in RD_AOD) ! N.B. NWVS is fixed to 1 above - only one wavelength - IWV=IWV1000 + IWV=State_Chm%Phot%IWV1000 ELSE IF ( LRAD ) THEN ! RRTMG wavelengths begin after NWVAA0 standard wavelengths ! but add on any others required IF (IIWV.LE.30) THEN !index of RRTMG wavelengths starts after the standard NWVAA0 - !(currently NWVAA0=11, set in CMN_FJX_mod based on the - ! .dat LUT) - IWV = IIWV+NWVAA0 + !(currently NWVAA0=11, hard-coded in phot_container_mod based + ! on the .dat LUT) + IWV = IIWV + State_Chm%Phot%NWVAA0 ELSE !now we calculate at wvs for the requested AOD IWV = IWVREQUIRED(IIWV-30) @@ -1547,37 +1534,120 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! if RRTMG is on then IWV will be 30 wavelengths + AOD wavs, ! otherwise IWV will be at user input specified wavelengths - ! Loop over relative humidity bins - DO R = 1, NRH - - ! Wet radius in aerosol LUT files - RW(R) = REAA(R,N) - - ! Extinction efficiency for Q for each RH bin - QW(R) = QQAA(IWV,R,N) - AW(R) = ALPHAA(IWV,R,N) - SSW(R) = SSAA(IWV,R,N) - ASYW(R) = ASYMAA(IWV,R,N) - - ENDDO - ! Loop over grid boxes !$OMP PARALLEL DO & - !$OMP PRIVATE( I, J, L, IRH ) & + !$OMP PRIVATE( I, J, L, R, IRH ) & + !$OMP PRIVATE( RW, QW, AW, SSW, ASYW ) & !$OMP PRIVATE( AW0, QW0, SSW0, ASYW0, REFF ) & !$OMP PRIVATE( SCALEA, SCALEQ, SCALESSA, SCALEASY, FRAC ) & !$OMP PRIVATE( SCALER, SCALEOD, SCALEVOL, DRYAREA, TAERVOL ) & - !$OMP PRIVATE( TK, CONSEXP, VPRESH2O, RELHUM ) & + !$OMP PRIVATE( TK, CONSEXP, VPRESH2O, RELHUM, BCSCAT_AE ) & #ifdef RRTMG !$OMP PRIVATE( IR ) & #endif !$OMP PRIVATE( RHOSTRAT, RAER, SADSTRAT, XSASTRAT ) & - !$OMP PRIVATE( VDRY, VH2O, S ) & - !$OMP SCHEDULE( DYNAMIC ) + !$OMP PRIVATE( VDRY, VH2O, S, g ) & + !$OMP SCHEDULE( DYNAMIC, 8 ) & + !$OMP COLLAPSE( 3 ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Zero private loop variables + g = 0 + IRH = 0 + S = 0 + RW = 0.0_fp + QW = 0.0_fp + AW = 0.0_fp + SSW = 0.0_fp + ASYW = 0.0_fp + FRAC = 0.0_fp + AW0 = 0.0_fp + QW0 = 0.0_fp + SSW0 = 0.0_fp + ASYW0 = 0.0_fp + REFF = 0.0_fp + SCALEA = 0.0_fp + SCALEQ = 0.0_fp + SCALESSA = 0.0_fp + SCALEASY = 0.0_fp + FRAC = 0.0_fp + SCALER = 0.0_fp + SCALEOD = 0.0_fp + SCALEVOL = 0.0_fp + DRYAREA = 0.0_fp + TAERVOL = 0.0_fp + TK = 0.0_fp + CONSEXP = 0.0_fp + VPRESH2O = 0.0_fp + RELHUM = 0.0_fp + RHOSTRAT = 0.0_fp + RAER = 0.0_fp + SADSTRAT = 0.0_fp + XSASTRAT = 0.0_fp + VDRY = 0.0_fp + VH2O = 0.0_fp + BCSCAT_AE = 0.0_fp + + ! Loop over relative humidity bins + IF (N == 1 .or. N == 3) THEN ! (hzhu, 08/2023) + ! For SNA or Organics + g = 1 + DO WHILE ( State_Chm%AerMass%PDER(I,J,L) > REAA(1,N,g) .and. & + g < State_Chm%Phot%NDRg ) + ! REAA(1,N,g) is the upper limit of REFF + g = g + 1 + END DO + + IF (g == 1) THEN + DO R = 1, NRH + ! Wet radius in aerosol LUT files + RW(R) = REAA(R,N,g) + + ! Extinction efficiency for Q for each RH bin + QW(R) = QQAA(IWV,R,N,g) + AW(R) = ALPHAA(IWV,R,N,g) + SSW(R) = SSAA(IWV,R,N,g) + ASYW(R) = ASYMAA(IWV,R,N,g) + ENDDO + + ELSE + FRAC = (State_Chm%AerMass%PDER(I,J,L) - REAA(1,N,g-1))/ & + (REAA(1,N,g) - REAA(1,N,g-1)) + IF ( FRAC > 1.0d0 ) FRAC = 1.0d0 + DO R = 1, NRH + RW(R) = FRAC*REAA(R,N,g) + (1.d0-FRAC)*REAA(R,N,g-1) + + QW(R) = FRAC*QQAA(IWV,R,N,g) + & + (1.d0-FRAC)*QQAA(IWV,R,N,g-1) + + AW(R) = FRAC*ALPHAA(IWV,R,N,g)+ & + (1.d0-FRAC)*ALPHAA(IWV,R,N,g-1) + + SSW(R) = FRAC*SSAA(IWV,R,N,g) + & + (1.d0-FRAC)*SSAA(IWV,R,N,g-1) + + ASYW(R)= FRAC*ASYMAA(IWV,R,N,g)+ & + (1.d0-FRAC)*ASYMAA(IWV,R,N,g-1) + END DO + END IF + + ELSE + ! For other species + DO R = 1, NRH + ! Wet radius in aerosol LUT files + RW(R) = REAA(R,N,State_Chm%Phot%DRg) + + ! Extinction efficiency for Q for each RH bin + QW(R) = QQAA(IWV,R,N,State_Chm%Phot%DRg) + AW(R) = ALPHAA(IWV,R,N,State_Chm%Phot%DRg) + SSW(R) = SSAA(IWV,R,N,State_Chm%Phot%DRg) + ASYW(R) = ASYMAA(IWV,R,N,State_Chm%Phot%DRg) + ENDDO + + ENDIF + ! Skip non-chemistry boxes IF ( .not. State_Met%InChemGrid(I,J,L) ) CYCLE @@ -1658,6 +1728,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & SCALER = REFF / RW(1) SCALEOD = SCALEQ * SCALER * SCALER + IF ( N.LE.NRHAER ) THEN !-------------------------------------------------------- @@ -1667,35 +1738,35 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & !calculate optics for hyrdophillic aerosol here !However MDENS in LUT was in g/cm3 not kg/m3 so x1e3 ODAER(I,J,L,IWV,N) = SCALEOD * BXHEIGHT(I,J,L) * 0.75d0 * & - WAERSL(I,J,L,N) * QQAA(IWV,1,N) / & - ( MSDENS(N) * REAA(1,N) * 1.0D-6 ) + State_Chm%AerMass%WAERSL(I,J,L,N) * QW(1) / & + ( MSDENS(N) * RW(1) * 1.0D-6 ) !Include BC absorption enhancement (xnw, 8/24/15) IF (N.eq.2) THEN IF (LBCAE) THEN - BCSCAT_AE = ODAER(I,J,L,IWV,N)*SCALESSA*SSAA(IWV,1,N) + BCSCAT_AE = ODAER(I,J,L,IWV,N)*SCALESSA*SSAA(IWV,1,N,State_Chm%Phot%DRg) ODAER(I,J,L,IWV,N) = ODAER(I,J,L,IWV,N) * & - ( BCAE_1 + SCALESSA*SSAA(IWV,1,N) - & - SCALESSA*SSAA(IWV,1,N)*BCAE_1 ) + ( BCAE_1 + SCALESSA*SSAA(IWV,1,N,State_Chm%Phot%DRg) - & + SCALESSA*SSAA(IWV,1,N,State_Chm%Phot%DRg)*BCAE_1 ) !now combine with hydrophilic OD as before - BCSCAT_AE = BCSCAT_AE + SSAA(IWV,1,N) * & + BCSCAT_AE = BCSCAT_AE + SSAA(IWV,1,N,State_Chm%Phot%DRg) * & 0.75d0 * BXHEIGHT(I,J,L) * & - DAERSL(I,J,L,N-1) * QQAA(IWV,1,N) / & - ( MSDENS(N) * REAA(1,N) * 1.0D-6 ) + State_Chm%AerMass%DAERSL(I,J,L,N-1) * QW(1) / & + ( MSDENS(N) * REAA(1,N,State_Chm%Phot%DRg) * 1.0D-6 ) ODAER(I,J,L,IWV,N)= ODAER(I,J,L,IWV,N) + & - (BCAE_2+SSAA(IWV,1,N) - SSAA(IWV,1,N)*BCAE_2) * & + (BCAE_2+SSAA(IWV,1,N,State_Chm%Phot%DRg) - SSAA(IWV,1,N,State_Chm%Phot%DRg)*BCAE_2) * & 0.75d0 * BXHEIGHT(I,J,L) * & - DAERSL(I,J,L,N-1) * QQAA(IWV,1,N) / & - ( MSDENS(N) * REAA(1,N) * 1.0D-6 ) + State_Chm%AerMass%DAERSL(I,J,L,N-1) * QW(1) / & + ( MSDENS(N) * REAA(1,N,State_Chm%Phot%DRg) * 1.0D-6 ) ELSE !now combine with hydrophilic OD as before ODAER(I,J,L,IWV,N)= ODAER(I,J,L,IWV,N) + & 0.75d0 * BXHEIGHT(I,J,L) * & - DAERSL(I,J,L,N-1) * QQAA(IWV,1,N) / & - ( MSDENS(N) * REAA(1,N) * 1.0D-6 ) + State_Chm%AerMass%DAERSL(I,J,L,N-1) * QW(1) / & + ( MSDENS(N) * REAA(1,N,State_Chm%Phot%DRg) * 1.0D-6 ) ENDIF ENDIF @@ -1704,15 +1775,15 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & !now combine with hydrophilic OD as before ODAER(I,J,L,IWV,N)= ODAER(I,J,L,IWV,N) + & 0.75d0 * BXHEIGHT(I,J,L) * & - DAERSL(I,J,L,N-1) * QQAA(IWV,1,N) / & - ( MSDENS(N) * REAA(1,N) * 1.0D-6 ) + State_Chm%AerMass%DAERSL(I,J,L,N-1) * QW(1) / & + ( MSDENS(N) * State_Chm%AerMass%PDER(I,J,L) * 1.0D-6 ) ENDIF ! Get the AOD contribution from isoprene SOA only (eam, 2014) IF ( N == 3 .and. Is_ComplexSOA ) THEN ISOPOD(I,J,L,IWV) = SCALEOD*BXHEIGHT(I,J,L)*0.75d0 & - * ISOAAQ(I,J,L) * QQAA(IWV,1,N) / & - ( MSDENS(N) * REAA(1,N) * 1.0D-6 ) + * State_Chm%AerMass%ISOAAQ(I,J,L) * QW(1) / & + ( MSDENS(N) * State_Chm%AerMass%PDER(I,J,L) * 1.0D-6 ) ENDIF ELSE @@ -1722,7 +1793,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & !-------------------------------------------------------- ! Get aerosol effective radius - CALL GET_STRAT_OPT(I, J, L, ISTRAT, RAER, REFF, & + CALL GET_STRAT_OPT(State_Chm, I, J, L, ISTRAT, RAER, REFF, & SADSTRAT, XSASTRAT) ! SDE 2014-02-04 @@ -1735,7 +1806,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! radius and blowing up ! Aerosol optical depth - ODAER(I,J,L,IWV,N) = BXHEIGHT(I,J,L) * XSASTRAT * QQAA(IWV,1,N) + ODAER(I,J,L,IWV,N) = BXHEIGHT(I,J,L) * XSASTRAT * QW(1) ENDIF @@ -1745,22 +1816,22 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & IF (N.EQ.1) THEN DO IR=1,3 RTODAER(I,J,L,IWV,N+IR-1)= ODAER(I,J,L,IWV,N)* & - FRAC_SNA(I,J,L,IR) - RTSSAER(I,J,L,IWV,N+IR-1) = SCALESSA*SSAA(IWV,1,N) - RTASYMAER(I,J,L,IWV,N+IR-1) = SCALEASY*ASYMAA(IWV,1,N) + State_Chm%AerMass%FRAC_SNA(I,J,L,IR) + RTSSAER(I,J,L,IWV,N+IR-1) = SCALESSA*SSAA(IWV,1,N,State_Chm%Phot%DRg) + RTASYMAER(I,J,L,IWV,N+IR-1) = SCALEASY*ASYMAA(IWV,1,N,State_Chm%Phot%DRg) ENDDO ELSE !RT arrays now offset from NAER by 2 (NRT=N+2 for N>1) !This will automatically be added after the standard aerosol !(NRHAER+1,2) but before dust RTODAER(I,J,L,IWV,NRT) = ODAER(I,J,L,IWV,N) - RTSSAER(I,J,L,IWV,NRT) = SCALESSA*SSAA(IWV,1,N) + RTSSAER(I,J,L,IWV,NRT) = SCALESSA*SSAA(IWV,1,N,State_Chm%Phot%DRg) !for BC SSA with absorption enhancement (xnw 8/24/15) IF ((N .EQ. 2) .AND. (LBCAE)) THEN RTSSAER(I,J,L,IWV,NRT) = BCSCAT_AE / & ODAER(I,J,L,IWV,N) ENDIF - RTASYMAER(I,J,L,IWV,NRT) = SCALEASY*ASYMAA(IWV,1,N) + RTASYMAER(I,J,L,IWV,NRT) = SCALEASY*ASYMAA(IWV,1,N,State_Chm%Phot%DRg) ENDIF #endif @@ -1823,14 +1894,14 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! Store aerosol surface areas in TAREA, and be sure ! to list them following the dust surface areas - TAREA(I,J,L,N+NDUST) = 3.D0 * WAERSL(I,J,L,N) * SCALEVOL / & + TAREA(I,J,L,N+NDUST) = 3.D0 * State_Chm%AerMass%WAERSL(I,J,L,N) * SCALEVOL / & ( ERADIUS(I,J,L,N+NDUST) * MSDENS(N) ) WTAREA(I,J,L,N+NDUST) = TAREA(I,J,L,N+NDUST) WERADIUS(I,J,L,N+NDUST) = ERADIUS(I,J,L,N+NDUST) ! For SO4-NIT-NH4-fine sea salt aerosol, re-calculate the wet ! effective - ! radius using the water content from ISORROPIA. + ! radius using the water content from ISORROPIA/HETP. ! This new effective radius will be used for surface area ! used in heterogeneous chemistry. We don't use this ! effective radius in the optics above (OD, scattering, @@ -1844,7 +1915,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! AeroH2O has units g/m3 VH2O = State_Chm%AeroH2O(I,J,L,NDUST+1) / 1e6 ! Volume of dry aerosol, m3(aerosol)/m3(air) - VDry = WAERSL(I,J,L,1)/MSDENS(1) + WAERSL(I,J,L,4)/MSDENS(4) + VDry = State_Chm%AerMass%WAERSL(I,J,L,1)/MSDENS(1) + State_Chm%AerMass%WAERSL(I,J,L,4)/MSDENS(4) ! Notes on REFF derivation ! Volume of wet aerosol: VWet = VDry + VH2O [note: @@ -1870,10 +1941,10 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! Save aerosol water content. Assume that the increase in volume ! equals the volume of pure water added, m3(H2O)/m3(air), ! then convert to g/m3 - ! Don't update SNA, keep ISORROPIA values + ! Don't update SNA, keep ISORROPIA/HETP values IF (N.ne.1) THEN State_Chm%AeroH2O(I,J,L,N+NDUST) = 1e+6_fp * & - WAERSL(I,J,L,N) / MSDENS(N) * (ScaleVol - 1d0) + State_Chm%AerMass%WAERSL(I,J,L,N) / MSDENS(N) * (ScaleVol - 1d0) ENDIF !include hydrophobic BC and OC @@ -1883,7 +1954,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ! Dry surface area ! SDE 2015-10-27: RW is in um, but everything ! else is in terms of cm. Correct with 10^-4 factor - DRYAREA = 3.D0 * DAERSL(I,J,L,N-1) / ( RW(1) * & + DRYAREA = 3.D0 * State_Chm%AerMass%DAERSL(I,J,L,N-1) / ( RW(1) * & 1.0D-4 * MSDENS(N) ) ! Add surface area to TAREA array @@ -1950,7 +2021,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & DO I = 1, State_Grid%NX ! Get aerosol effective radius - CALL GET_STRAT_OPT(I,J,L,ISTRAT,RAER,REFF,SADSTRAT,XSASTRAT) + CALL GET_STRAT_OPT(State_Chm, I,J,L,ISTRAT,RAER,REFF,SADSTRAT,XSASTRAT) ! Moved this from a separate loop for clarity IF ( State_Met%InChemGrid(I,J,L) ) THEN @@ -1986,7 +2057,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & IF ( IsSLA ) THEN IF ( State_Diag%Archive_AerNumDenSLA ) THEN State_Diag%AerNumDenSLA(I,J,L) = & - NDENS_AER(I,J,L,ISTRAT)*1.d-6 + State_Chm%NDENS_AER(I,J,L,ISTRAT)*1.d-6 ENDIF IF ( State_Diag%Archive_AODSLAWL1 ) THEN State_Diag%AODSLAWL1(I,J,L) = & @@ -2003,7 +2074,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & ELSEIF ( IsPSC ) THEN IF ( State_Diag%Archive_AerNumDenPSC ) THEN State_Diag%AerNumDenPSC(I,J,L) = & - NDENS_AER(I,J,L,ISTRAT)*1.d-6 + State_Chm%NDENS_AER(I,J,L,ISTRAT)*1.d-6 ENDIF IF ( State_Diag%Archive_AODPSCWL1 ) THEN State_Diag%AODPSCWL1(I,J,L) = & @@ -2242,7 +2313,30 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, & !TAREA(:,NDUST+NRHAER+2) = 0.d0 !SPA ! Free pointers - NULLIFY( BXHEIGHT, ERADIUS, TAREA, WERADIUS, WTAREA, ACLRADIUS, ACLAREA ) + IWVREQUIRED => NULL() + IWVSELECT => NULL() + IRHARR => NULL() + ACOEF_WV => NULL() + BCOEF_WV => NULL() + REAA => NULL() + QQAA => NULL() + ALPHAA => NULL() + SSAA => NULL() + ASYMAA => NULL() + ISOPOD => NULL() + ODAER => NULL() +#ifdef RRTMG + RTODAER => NULL() + RTSSAER => NULL() + RTASYMAER => NULL() +#endif + BXHEIGHT => NULL() + ERADIUS => NULL() + TAREA => NULL() + WERADIUS => NULL() + WTAREA => NULL() + ACLRADIUS => NULL() + ACLAREA => NULL() ! Reset first-time flag FIRST = .FALSE. @@ -2256,7 +2350,7 @@ END SUBROUTINE RDAER ! ! !IROUTINE: init_aerosol ! -! !DESCRIPTION: Subroutine INIT\_AEROSOL allocates and zeroes module arrays +! !DESCRIPTION: Subroutine INIT\_AEROSOL initializes module variables !\\ !\\ ! !INTERFACE: @@ -2265,9 +2359,10 @@ SUBROUTINE Init_Aerosol( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) ! ! !USES: ! - USE CMN_SIZE_MOD, ONLY : NAER, NDUST + USE CMN_SIZE_MOD, ONLY : NAER, NDUST, NRHAER USE ErrCode_Mod USE Input_Opt_Mod, ONLY : OptInput + USE Species_Mod, ONLY : Species USE State_Chm_Mod, ONLY : Ind_ USE State_Chm_Mod, ONLY : ChmState USE State_Diag_Mod, ONLY : DgnState @@ -2296,9 +2391,11 @@ SUBROUTINE Init_Aerosol( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) ! ! !LOCAL VARIABLES: ! - INTEGER :: AS + INTEGER :: N, SpcID CHARACTER(LEN=255) :: ErrMsg, ThisLoc + TYPE(Species), POINTER :: SpcInfo + !================================================================= ! INIT_AEROSOL begins here! !================================================================= @@ -2318,7 +2415,7 @@ SUBROUTINE Init_Aerosol( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) id_DST2 = Ind_( 'DST2' ) id_DST3 = Ind_( 'DST3' ) id_DST4 = Ind_( 'DST4' ) - id_DUST1 = Ind_( 'DUST1' ) + id_DUST01 = Ind_( 'DUST01' ) id_NH4 = Ind_( 'NH4' ) id_NIT = Ind_( 'NIT' ) id_OCPO = Ind_( 'OCPO' ) @@ -2329,7 +2426,7 @@ SUBROUTINE Init_Aerosol( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) id_SALACL = Ind_( 'SALACL' ) id_SO4 = Ind_( 'SO4' ) id_SO4s = Ind_( 'SO4s' ) - id_HMS = Ind_( 'HMS' ) ! (jmm, 06/30/18) + id_HMS = Ind_( 'HMS' ) id_NITs = Ind_( 'NITs' ) id_POA1 = Ind_( 'POA1' ) id_POA2 = Ind_( 'POA2' ) @@ -2348,606 +2445,60 @@ SUBROUTINE Init_Aerosol( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) id_INDIOL = Ind_( 'INDIOL' ) id_LVOCOA = Ind_( 'LVOCOA' ) - !================================================================= - ! Allocate arrays - !================================================================= - ALLOCATE( BCPI( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - BCPI = 0.0_fp - - ALLOCATE( BCPO( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:BCPO', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - BCPO = 0.0_fp - - ALLOCATE( OCPI( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:OCPI', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - OCPI = 0.0_fp - - ALLOCATE( OCPO( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:OCPO', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - OCPO = 0.0_fp - - ALLOCATE( OCPISOA( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:OCPISOA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - OCPISOA = 0.0_fp - - ALLOCATE( SALA( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:SALA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SALA = 0.0_fp - - ALLOCATE( SALC( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:SALC', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SALC = 0.0_fp - - ALLOCATE( ACL( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F:ACL', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - ACL = 0.0_fp - - ALLOCATE( SO4_NH4_NIT(State_Grid%NX,State_Grid%NY,State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:SO4_NH4_NIT', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SO4_NH4_NIT = 0.0_fp - - ALLOCATE( SO4( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:SO4', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SO4 = 0.0_fp - - ! (jmm, 06/30/18) - ALLOCATE( HMS( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F:HMS', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - HMS = 0.0_fp - - ALLOCATE( NH4( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F:NH4', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - NH4 = 0.0_fp - - ALLOCATE( NIT( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:NIT', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - NIT = 0.0_fp - - ALLOCATE( FRAC_SNA( State_Grid%NX, State_Grid%NY, State_Grid%NZ, 3 ), & - STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:FRAC_SNA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - FRAC_SNA = 0.0_fp - - ALLOCATE( SLA( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:SLA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SLA = 0.0_fp - - ALLOCATE( SPA( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:SPA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SPA = 0.0_fp - - ALLOCATE( TSOA( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:TSOA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - TSOA = 0.0_fp - - ALLOCATE( ASOA( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:ASOA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - ASOA = 0.0_fp - - ALLOCATE( OPOA( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:OPOA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - OPOA = 0.0_fp - - ALLOCATE( PM25( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:PM25', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - PM25 = 0.0_fp - - !zhaisx - ALLOCATE( PM10( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:PM10', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - PM10 = 0.0_fp - - ALLOCATE( SOAGX( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:SOAGX', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SOAGX = 0.0_fp - - ! Mass of hydrophobic aerosol from Mian Chin - ALLOCATE( DAERSL(State_Grid%NX,State_Grid%NY,State_Grid%NZ,2), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:DAERSL', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - DAERSL = 0.0_fp - - ! Mass of hydrophilic aerosol from Mian Chin - ALLOCATE( WAERSL(State_Grid%NX,State_Grid%NY,State_Grid%NZ,NAER), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:WAERSL', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - WAERSL = 0.0_fp - - ! Mechanistic isoprene SOA (eam, 2014): - ALLOCATE( ISOAAQ(State_Grid%NX,State_Grid%NY,State_Grid%NZ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:ISOAAQ', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - ISOAAQ = 0.0_fp - - ! Simple SOA - ALLOCATE( SOAS(State_Grid%NX,State_Grid%NY,State_Grid%NZ), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:SOAS', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SOAS = 0.0_fp - - ! OM/OC for POA - ALLOCATE( OCFPOA(State_Grid%NX,State_Grid%NY), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:OCFPOA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - OCFPOA = 0.0_fp - - ! OM/OC for OPOA, OCPI, OCPO - ALLOCATE( OCFOPOA(State_Grid%NX,State_Grid%NY), STAT=RC ) - CALL GC_CheckVar( 'aerosol_mod.F90:OCFOPOA', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - OCFOPOA = 0.0_fp - - END SUBROUTINE INIT_AEROSOL -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: cleanup_aerosol -! -! !DESCRIPTION: Subroutine CLEANUP\_AEROSOL deallocates all module arrays -! (bmy, 7/20/04) -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE CLEANUP_AEROSOL -! -! !REVISION HISTORY: -! 20 Jul 2004 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! - IF ( ALLOCATED( BCPI ) ) DEALLOCATE( BCPI ) - IF ( ALLOCATED( BCPO ) ) DEALLOCATE( BCPO ) - IF ( ALLOCATED( OCPI ) ) DEALLOCATE( OCPI ) - IF ( ALLOCATED( OCPO ) ) DEALLOCATE( OCPO ) - IF ( ALLOCATED( OCPISOA ) ) DEALLOCATE( OCPISOA ) - IF ( ALLOCATED( SALA ) ) DEALLOCATE( SALA ) - IF ( ALLOCATED( SALC ) ) DEALLOCATE( SALC ) - IF ( ALLOCATED( ACL ) ) DEALLOCATE( ACL ) - IF ( ALLOCATED( SO4_NH4_NIT ) ) DEALLOCATE( SO4_NH4_NIT ) - IF ( ALLOCATED( SO4 ) ) DEALLOCATE( SO4 ) - IF ( ALLOCATED( HMS ) ) DEALLOCATE( HMS ) ! (jmm, 06/30/18) - IF ( ALLOCATED( NH4 ) ) DEALLOCATE( NH4 ) - IF ( ALLOCATED( NIT ) ) DEALLOCATE( NIT ) - IF ( ALLOCATED( FRAC_SNA ) ) DEALLOCATE( FRAC_SNA ) - IF ( ALLOCATED( SLA ) ) DEALLOCATE( SLA ) - IF ( ALLOCATED( SPA ) ) DEALLOCATE( SPA ) - IF ( ALLOCATED( TSOA ) ) DEALLOCATE( TSOA ) - IF ( ALLOCATED( ASOA ) ) DEALLOCATE( ASOA ) - IF ( ALLOCATED( OPOA ) ) DEALLOCATE( OPOA ) - IF ( ALLOCATED( SOAGX ) ) DEALLOCATE( SOAGX ) - IF ( ALLOCATED( PM25 ) ) DEALLOCATE( PM25 ) - IF ( ALLOCATED( PM10 ) ) DEALLOCATE( PM10 )!zhaisx - IF ( ALLOCATED( WAERSL ) ) DEALLOCATE( WAERSL ) - IF ( ALLOCATED( DAERSL ) ) DEALLOCATE( DAERSL ) - IF ( ALLOCATED( ISOAAQ ) ) DEALLOCATE( ISOAAQ ) - IF ( ALLOCATED( SOAS ) ) DEALLOCATE( SOAS ) - IF ( ALLOCATED( OCFPOA ) ) DEALLOCATE( OCFPOA ) - IF ( ALLOCATED( OCFOPOA ) ) DEALLOCATE( OCFOPOA ) - - END SUBROUTINE CLEANUP_AEROSOL -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: set_aermass_diagnostic -! -! !DESCRIPTION: Computes the aerosol mass diagnostic (formerly ND42 bpch -! diagnostic). -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Set_AerMass_Diagnostic( Input_Opt, State_Chm, State_Diag, & - State_Grid, State_Met, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE Species_Mod, ONLY : Species, SpcConc - USE State_Chm_Mod, ONLY : ChmState - USE State_Chm_Mod, ONLY : Ind_ - USE State_Diag_Mod, ONLY : DgnState - USE State_Grid_Mod, ONLY : GrdState - USE State_Met_Mod, ONLY : MetState - USE PhysConstants, ONLY : MwCarb - USE UnitConv_Mod, ONLY : Convert_Spc_Units -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostic State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REMARKS: -! NOTE: This diagnostic mimics the bpch diagnostic routine "DIAG42". -! -! !REVISION HISTORY: -! 05 Feb 2018 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! SAVEd scalars - LOGICAL :: First = .TRUE. - - ! Scalars - INTEGER :: I, J, L - - ! Strings - CHARACTER(LEN=63) :: OrigUnit - CHARACTER(LEN=255) :: ThisLoc - CHARACTER(LEN=512) :: ErrMsg - - ! Pointers - REAL(fp), POINTER :: AirDen(:,:,: ) - TYPE(SpcConc), POINTER :: Spc (: ) - TYPE(Species), POINTER :: SpcInfo -! -! !DEFINED PARAMETERS: -! - ! Convert [kg/m3] to [ug/m3] - REAL(fp), PARAMETER :: kgm3_to_ugm3 = 1.0e+9_fp - - ! Define number of carbon atoms in each irreversible isoprene - ! SOA tracer species. Named according to the parent HC (same - ! number of carbons): - REAL(fp), PARAMETER :: NCIMAE = 4e+0_fp - REAL(fp), PARAMETER :: NCIEPOX = 5e+0_fp - REAL(fp), PARAMETER :: NCINDIOL = NCIEPOX - REAL(fp), PARAMETER :: NCGLYX = 2e+0_fp - REAL(fp), PARAMETER :: NCGLYC = NCGLYX - REAL(fp), PARAMETER :: NCMGLY = 3e+0_fp - REAL(fp), PARAMETER :: NCLVOC = NCIEPOX - REAL(fp), PARAMETER :: NCISN1 = NCIEPOX - - !======================================================================= - ! Set_AerMass_Diagnostic begins here! - !======================================================================= - - ! Initialize - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at Set_AerMass_Diagnostic (in module GeosCore/aerosol_mod.F90)' - - ! Check that species units are kg/kg dry air - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - CALL GC_Error( 'Incorrect species units: ' // & - State_Chm%Spc_Units, RC, ThisLoc ) - RETURN - ENDIF - - ! Define species ID flags for the aerosol mass diagnostics - IF ( First ) THEN - - !-------------------------------------------------------------------- - ! Look up species indices in State_Chm%SPECIES - !-------------------------------------------------------------------- - id_INDIOL = Ind_( 'INDIOL' ) - id_LVOCOA = Ind_( 'LVOCOA' ) - id_POA1 = Ind_( 'POA1' ) - id_POA2 = Ind_( 'POA2' ) - id_OPOA1 = Ind_( 'OPOA1' ) - id_OPOA2 = Ind_( 'OPOA2' ) - id_SOAGX = Ind_( 'SOAGX' ) - id_SOAIE = Ind_( 'SOAIE' ) - Is_POA = ( id_POA1 > 0 .and. id_POA2 > 0 ) - Is_OPOA = ( id_OPOA1 > 0 .and. id_OPOA2 > 0 ) - - ! Initialize conversion factors for total OC diagnostic - Fac_INDIOL = 0.0_fp - Fac_LVOCOA = 0.0_fp - Fac_SOAGX = 0.0_fp - Fac_SOAIE = 0.0_fp - - !-------------------------------------------------------------------- - ! Set conversion factors for certain isoprene SOA species, - ! or, if they aren't present, disable their diagnostics - !-------------------------------------------------------------------- - IF ( id_INDIOL > 0 ) THEN - SpcInfo => State_Chm%SpcData(id_INDIOL)%Info - Fac_INDIOL = ( NCINDIOL * MwCarb / ( SpcInfo%Mw_g * 1e-3_fp ) ) - SpcInfo => NULL() - ELSE - IF ( State_Diag%Archive_AerMassINDIOL ) THEN - State_Diag%Archive_AerMassINDIOL = .FALSE. - ErrMsg = 'Disabling AerMassINDIOL diagnostic. ' // & - 'INDIOL is not a defined species for this simulation.' - CALL GC_Warning( ErrMsg, RC, ThisLoc ) - ENDIF - ENDIF - - IF ( id_LVOCOA > 0 ) THEN - SpcInfo => State_Chm%SpcData(id_LVOCOA)%Info - Fac_LVOCOA = ( NCLVOC * MwCarb / ( SpcInfo%Mw_G * 1e-3_fp ) ) - SpcInfo => NULL() - ELSE - IF ( State_Diag%Archive_AerMassLVOCOA ) THEN - State_Diag%Archive_AerMassLVOCOA = .FALSE. - ErrMsg = 'Disabling AerMassLVOCOA diagnostic. ' // & - 'LVOCOA is not a defined species for this simulation.' - CALL GC_Warning( ErrMsg, RC, ThisLoc ) - ENDIF - ENDIF - - IF ( id_SOAGX > 0 ) THEN - SpcInfo => State_Chm%SpcData(id_SOAGX)%Info - Fac_SOAGX = ( NCGLYX * MwCarb / ( SpcInfo%Mw_g * 1e-3_fp ) ) - SpcInfo => NULL() - ELSE - IF ( State_Diag%Archive_AerMassSOAGX ) THEN - State_Diag%Archive_AerMassSOAGX = .FALSE. - ErrMsg = 'Disabling AerMassSOAGX diagnostic.' // & - 'SOAGX is not a defined species for this simulation.' - CALL GC_Warning( ErrMsg, RC, ThisLoc ) - ENDIF - ENDIF - - IF ( id_SOAIE > 0 ) THEN - SpcInfo => State_Chm%SpcData(id_SOAIE)%Info - Fac_SOAIE = ( NCIEPOX * MwCarb / ( SpcInfo%Mw_g * 1e-3_fp ) ) - SpcInfo => NULL() - ELSE - IF ( State_Diag%Archive_AerMassSOAIE ) THEN - State_Diag%Archive_AerMassSOAIE = .FALSE. - ErrMsg = 'Disabling AerMassSOAIE diagnostic. ' // & - 'SOAIE is not a defined species for this simulation.' - CALL GC_Warning( ErrMsg, RC, ThisLoc ) - ENDIF - ENDIF - - ! Reset first-time flag - First = .FALSE. - ENDIF - - !======================================================================= - ! Compute Aerosol mass and PM2.5 diagnostics using concentrations - ! from the end of the chemistry timestep, which should be more - ! consistent with the legacy ND42 bpch diagnostics - !======================================================================= - - ! Point to fields of State_Chm and State_Met - Spc => State_Chm%Species - AirDen => State_Met%AIRDEN - - ! Zero out the totalOC diagnostic - IF ( State_Diag%Archive_TotalOC ) THEN - State_Diag%TotalOC = 0.0_fp - ENDIF - - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L ) - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - - !-------------------------------------- - ! AerMassASOA [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassASOA ) THEN - State_Diag%AerMassASOA(I,J,L) = ASOA(I,J,L) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! AerMassBC [ug C/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassBC ) THEN - State_Diag%AerMassBC(I,J,L) = ( BCPI(I,J,L) + BCPO(I,J,L) ) * & - kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! AerMassINDIOL [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassINDIOL ) THEN - State_Diag%AerMassINDIOL(I,J,L) = Spc(id_INDIOL)%Conc(I,J,L) * & - kgm3_to_ugm3 * AirDen(I,J,L) - ENDIF - - !-------------------------------------- - ! AerMassLVOCOA [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassLVOCOA ) THEN - State_Diag%AerMassLVOCOA(I,J,L) = Spc(id_LVOCOA)%Conc(I,J,L) * & - kgm3_to_ugm3 * AirDen(I,J,L) - ENDIF - - !-------------------------------------- - ! AerMassNH4 [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassNH4 ) THEN - State_Diag%AerMassNH4(I,J,L) = NH4(I,J,L) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! AerMassNIT [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassNIT ) THEN - State_Diag%AerMassNIT(I,J,L) = NIT(I,J,L) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! AerMassOPOA [ug/m3], OA:OC=2.1 - !-------------------------------------- - IF ( State_Diag%Archive_AerMassOPOA ) THEN - State_Diag%AerMassOPOA(I,J,L) = OPOA(I,J,L) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! AerMassPOA [ug/m3], OA:OC=2.1 - !-------------------------------------- - IF ( State_Diag%Archive_AerMassPOA ) THEN - IF ( Is_POA ) THEN - State_Diag%AerMassPOA(I,J,L) = OCPO(I,J,L) * kgm3_to_ugm3 - ELSE - State_Diag%AerMassPOA(I,J,L) = ( OCPI(I,J,L) + OCPO(I,J,L) ) * & - kgm3_to_ugm3 - ENDIF - ENDIF - - !-------------------------------------- - ! AerMassSAL [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassSAL ) THEN - State_Diag%AerMassSAL(I,J,L) = ( SALA(I,J,L) + SALC(I,J,L) ) * & - kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! AerMassSO4 [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassSO4 ) THEN - State_Diag%AerMassSO4(I,J,L) = SO4(I,J,L) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! AerMassHMS [ug/m3] - ! jmm 3/6/19 - !-------------------------------------- - IF ( State_Diag%Archive_AerMassHMS ) THEN - State_Diag%AerMassHMS(I,J,L) = HMS(I,J,L) * & - kgm3_to_ugm3 - ENDIF - - - !-------------------------------------- - ! AerMassSOAGX [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassSOAGX ) THEN - State_Diag%AerMassSOAGX(I,J,L) = SOAGX(I,J,L) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! AerMassSOAIE [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassSOAIE ) THEN - State_Diag%AerMassSOAIE(I,J,L) = Spc(id_SOAIE)%Conc(I,J,L) * & - kgm3_to_ugm3 * AirDen(I,J,L) - ENDIF - - !-------------------------------------- - ! AerMassTSOA [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_AerMassTSOA ) THEN - State_Diag%AerMassTSOA(I,J,L) = TSOA(I,J,L) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! PM25 [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_PM25 ) THEN - State_Diag%PM25(I,J,L) = PM25(I,J,L) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! PM10 [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_PM10 ) THEN - State_Diag%PM10(I,J,L) = PM10(I,J,L) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! Sum of all biogenic organic aerosol - !-------------------------------------- - IF ( State_Diag%Archive_TotalBiogenicOA ) THEN - State_Diag%TotalBiogenicOA(I,J,L) = ( TSOA(I,J,L) + ISOAAQ(I,J,L) ) & - * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! Sum of all organic aerosol [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_TotalOA ) THEN - State_Diag%TotalOA(I,J,L) = ( TSOA(I,J,L) + & - ASOA(I,J,L) + & - OCPO(I,J,L) + & - OCPI(I,J,L) + & - OPOA(I,J,L) + & - ISOAAQ(I,J,L) ) * kgm3_to_ugm3 - ENDIF - - !-------------------------------------- - ! Sum of all organic carbon [ug/m3] - !-------------------------------------- - IF ( State_Diag%Archive_TotalOC ) THEN - - IF ( Is_POA ) THEN - State_Diag%TotalOC(I,J,L) = & - ( ( TSOA(I,J,L) + ASOA(I,J,L) & - + OCPI(I,J,L) + OPOA(I,J,L) ) / OCFOPOA(I,J) & - + OCPO(I,J,L) / OCFPOA(I,J) ) * kgm3_to_ugm3 - - ELSE IF ( IS_OPOA ) THEN - State_Diag%TotalOC(I,J,L) = & - ( ( TSOA(I,J,L) + ASOA(I,J,L) & - + OCPO(I,J,L) + OCPI(I,J,L) + OPOA(I,J,L) ) & - / OCFOPOA(I,J) ) * kgm3_to_ugm3 - ENDIF + ! Define logical flags + IS_OCPI = ( id_OCPI > 0 ) + IS_OCPO = ( id_OCPO > 0 ) + IS_BC = ( id_BCPI > 0 .AND. id_BCPO > 0 ) + IS_SO4 = ( id_SO4 > 0 ) + IS_HMS = ( id_HMS > 0 ) + IS_NH4 = ( id_NH4 > 0 ) + IS_NIT = ( id_NIT > 0 ) + IS_DST = ( id_DST1 > 0 .AND. id_DST2 > 0 ) + IS_SAL = ( id_SALA > 0 .AND. id_SALC > 0 ) + IS_POA = ( id_POA1 > 0 .AND. id_POA2 > 0 ) + IS_OPOA = ( id_OPOA1 > 0 .AND. id_OPOA2 > 0 ) + IS_TSOA = ( id_TSOA1 > 0 .AND. id_TSOA2 > 0 .AND. & + id_TSOA3 > 0 .AND. id_TSOA0 > 0 ) + IS_ASOA = ( id_ASOAN > 0 .AND. id_ASOA1 > 0 .AND. & + id_ASOA2 > 0 .AND. id_ASOA3 > 0 ) + IS_SOAGX = ( id_SOAGX > 0 ) + Is_SimpleSOA = ( id_SOAS > 0 ) + Is_ComplexSOA = Input_Opt%LSOA - IF ( Input_Opt%LSOA ) THEN - State_Diag%TotalOC(I,J,L) = State_Diag%TotalOC(I,J,L) + & - ( ( Spc(id_SOAIE )%Conc(I,J,L) * Fac_SOAIE ) + & - ( Spc(id_INDIOL)%Conc(I,J,L) * Fac_INDIOL ) + & - ( Spc(id_SOAGX )%Conc(I,J,L) * Fac_SOAGX ) + & - ( Spc(id_LVOCOA)%Conc(I,J,L) * Fac_LVOCOA ) ) & - * AirDen(I,J,L) * kgm3_to_ugm3 - ENDIF + ! Initialize the mapping between hygroscopic species in the + ! species database and the species order in NRHAER + DO N = 1, NRHAER + + ! Get the species database index from the species database + ! mapping array for hygroscopic growth species + SpcID = State_Chm%Map_HygGrth(N) + + ! Point to the Species Database entry for species N + SpcInfo => State_Chm%SpcData(SpcID)%Info + + ! Set the mapping to the ordering of aerosol densities in RD_AOD + SELECT CASE ( TRIM(SpcInfo%Name) ) + CASE ( 'SO4' ) + Map_NRHAER(N) = 1 + CASE ( 'BCPI' ) + Map_NRHAER(N) = 2 + CASE ( 'OCPI', 'POA1' ) + Map_NRHAER(N) = 3 + CASE ( 'SALA' ) + Map_NRHAER(N) = 4 + CASE ( 'SALC' ) + Map_NRHAER(N) = 5 + CASE DEFAULT + ErrMsg = 'WARNING: aerosol diagnostics not defined' // & + ' for NRHAER greater than 5!' + CALL GC_ERROR( ErrMsg, RC, 'Init_Aerosol in aerosol_mod.F90' ) + END SELECT - ENDIF + ! Free pointer + SpcInfo => NULL() ENDDO - ENDDO - ENDDO - !$OMP END PARALLEL DO - ! Free pointers - Spc => NULL() - AirDen => NULL() - - END SUBROUTINE Set_AerMass_Diagnostic + END SUBROUTINE INIT_AEROSOL !EOC END MODULE AEROSOL_MOD diff --git a/GeosCore/isorropiaII_mod.F90 b/GeosCore/aerosol_thermodynamics_mod.F90 similarity index 88% rename from GeosCore/isorropiaII_mod.F90 rename to GeosCore/aerosol_thermodynamics_mod.F90 index 2b876dbdf..a5a1559e8 100644 --- a/GeosCore/isorropiaII_mod.F90 +++ b/GeosCore/aerosol_thermodynamics_mod.F90 @@ -3,19 +3,21 @@ !------------------------------------------------------------------------------ !BOP ! -! !MODULE: isorropiaii_mod.F90 +! !MODULE: aerosol_thermodynamics_mod.F90 ! -! !DESCRIPTION: Module ISORROPIAII\_MOD contains the routines that provide -! the interface between ISORROPIA II and GEOS-Chem. +! !DESCRIPTION: Module AEROSOL\_THERMODYNAMICS\_MOD contains the routines that provide +! the interface between HETP (formerly ISORROPIA II) and GEOS-Chem. !\\ !\\ -! The actual ISORROPIA II code which performs Na-SO4-NH3-NO3-Cl-(Ca-K-Mg) -! aerosol thermodynamic equilibrium is in \texttt{isorropiaIIcode.f}. +! The actual HETP code which performs Na-SO4-NH3-NO3-Cl-(Ca-K-Mg) aerosol +! thermodynamic equilibrium is in \textt{hetp_mod.F90}, which is located +! in the HETerogeneous-vectorized-or-Parallel code repository alongside GEOS-Chem. +! See https://github.com/geoschem/HETerogeneous-vectorized-or-Parallel. !\\ !\\ ! !INTERFACE: ! -MODULE ISORROPIAII_MOD +MODULE AEROSOL_THERMODYNAMICS_MOD ! ! !USES: ! @@ -26,16 +28,16 @@ MODULE ISORROPIAII_MOD ! ! !PUBLIC MEMBER FUNCTIONS: ! - PUBLIC :: CLEANUP_ISORROPIAII - PUBLIC :: DO_ISORROPIAII + PUBLIC :: CLEANUP_ATE + PUBLIC :: DO_ATE PUBLIC :: GET_GNO3 #if defined( MODEL_CESM ) - PUBLIC :: INIT_ISORROPIAII + PUBLIC :: INIT_ATE #else ! ! !PRIVATE MEMBER FUNCTIONS: ! - PRIVATE :: INIT_ISORROPIAII + PRIVATE :: INIT_ATE #endif PRIVATE :: SAFELOG10 PRIVATE :: SET_HNO3 @@ -53,12 +55,6 @@ MODULE ISORROPIAII_MOD ! For Ca,K,Mg = 0, ISORROPIA II performs exactly like ISORROPIAv1.7 ! Ca, K, Mg, Na from dust is not currently considered ! . -! To implement ISORROPIA II into GEOS-Chem: -! * cleanup_isorropiaII needs to be called from cleanup.f -! * DO_ISORROPIA needs to be replaced with DO_ISORROPIAII in chemistry_mod.f -! * Change ISORROPIA to ISORROPIAII in sulfate_mod.f -! * add isorropiaII_mod.f, isorropiaIIcode.f, and irspia.inc to Makefile -! . ! ISORROPIA II implementation notes by Havala O.T. Pye: ! (1) The original isorropia code from T.Nenes is left as unmodified as ! possible. Original isorropia code can be found in isorropiaIIcode.f @@ -69,6 +65,9 @@ MODULE ISORROPIAII_MOD ! (2) As of Nov 2007, routines using non-zero Ca, K, and Mg do not always ! conserve mass. Ca, K, and Mg are set to zero. ! . +! HETP is an adaptation of ISORROPIA II for modern Fortran. It replaces +! ISORROPIA II starting in April 2024. (Miller et al.) +! ! NOTE: ISORROPIA is Greek for "equilibrium", in case you were wondering. ! ! !REVISION HISTORY: @@ -84,10 +83,10 @@ MODULE ISORROPIAII_MOD REAL(fp), ALLOCATABLE :: GAS_HNO3(:,:,:) !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -!%%% Add a C-preprocessor switch to skip calling ISORROPIA if the pressure +!%%% Add a C-preprocessor switch to skip calling HETP if the pressure !%%% and/or temperature lie outside of the range that will produce a stable !%%% solution. This will eliminate the random noise observed in the -!%%% ISORROPIA output. +!%%% HETP output. !%%% !%%% Leaving this feature deactivated will replicate the prior behavior in !%%% v11-01 and earlier GEOS-Chem versions. This will become the default @@ -106,17 +105,16 @@ MODULE ISORROPIAII_MOD !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: do_isorropiaii +! !IROUTINE: do_ate ! -! !DESCRIPTION: Subroutine DO\_ISORROPIAII is the interface between the -! GEOS-Chem model and the aerosol thermodynamical equilibrium routine -! ISORROPIA II. +! !DESCRIPTION: Subroutine DO\_ATE is the interface between the GEOS-Chem +! model and the aerosol thermodynamical equilibrium routines in HETP. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & - State_Grid, State_Met, RC ) + SUBROUTINE DO_ATE( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) ! ! !USES: ! @@ -138,7 +136,7 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & USE TIME_MOD, ONLY : GET_MONTH USE TIME_MOD, ONLY : ITS_A_NEW_MONTH USE TIME_MOD, ONLY : GET_ELAPSED_SEC - USE IsorropiaII_Main_Mod, ONLY : Isorropia + USE HETP_mod, ONLY : mach_hetp_main_15cases ! ! !INPUT PARAMETERS: ! @@ -157,6 +155,7 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & ! ! !REMARKS: ! Original isorropia v1.3 implmentation: (rjp, bec, bmy, 12/17/01, 8/22/05) +! HETPv1.0 replaces ISORROPIA II starting in GEOS-Chem 14.4.0 ! ! !REVISION HISTORY: ! 24 Aug 2007 - H. O. T. Pye - Initial version @@ -199,18 +198,22 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & REAL(fp) :: TNIT, TNO3, TSO4, VOL REAL(fp) :: HNO3_UGM3 REAL(f8) :: AERLIQ(NIONSA+NGASAQA+2) - REAL(f8) :: AERSLD(NSLDSA) REAL(f8) :: GAS(NGASAQA) REAL(f8) :: OTHER(NOTHERA) REAL(f8) :: WI(NCOMPA) REAL(f8) :: WT(NCOMPA) - REAL(f8) :: CNTRL(NCTRLA) REAL(f8) :: AlkR !Alkalinity % depleted REAL(f8) :: Qk, PHCl, F_HCl, F_HNO3 REAL(f8) :: Hplus !H+ in SALC,mol/m3 REAL(f8) :: Dcs !SALC diameter, m REAL(f8) :: n_air !air density, molec/cm3 REAL(f8) :: n_ssc !SALC number concentration, molec/m3 + REAL(f8) :: HETP_SO4, HETP_HSO4, HETP_CaSO4, HETP_NH4 + REAL(f8) :: HETP_NH3, HETP_NO3, HETP_HNO3, HETP_Cl + REAL(f8) :: HETP_HCl, HETP_Na, HETP_Ca, HETP_K + REAL(f8) :: HETP_Mg, HETP_H, HETP_OH, HETP_LWC + REAL(f8) :: HETP_frNa, HETP_frCa, HETP_frK, HETP_frMg + REAL(f8) :: HETP_frSO4, HETP_num ! Strings CHARACTER(LEN=15) :: SCASI @@ -239,7 +242,6 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & LOGICAL :: IT_IS_A_FULLCHEM_SIM LOGICAL, SAVE :: USE_HNO3_FROM_HEMCO = .FALSE. LOGICAL, SAVE :: USE_HCl_FROM_HEMCO = .FALSE. - LOGICAL :: prtDebug ! Pointers TYPE(SpcConc), POINTER :: Spc(:) @@ -252,18 +254,17 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & REAL(fp) :: OFFLINE_HCl (State_Grid%NX,State_Grid%NY,State_Grid%NZ) !================================================================= - ! DO_ISORROPIAII begins here! + ! DO_ATE begins here! !================================================================= ! Initialize RC = GC_SUCCESS ErrMsg = '' - ThisLoc = ' -> at DO_ISORROPIAII (in module GeosCore/isorropiaII_mod.F90)' + ThisLoc = ' -> at DO_ATE (in module GeosCore/aerosol_thermodynamics_mod.F90)' ! Copy fields from INPUT_OPT to local variables for use below IT_IS_AN_AEROSOL_SIM = Input_Opt%ITS_AN_AEROSOL_SIM IT_IS_A_FULLCHEM_SIM = Input_Opt%ITS_A_FULLCHEM_SIM - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ! Zero State_Chm arrays to avoid leftover values from hanging ! around between calls -- especially up near the tropopause @@ -373,7 +374,7 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & #if !defined( MODEL_CESM ) ! Initialize arrays - CALL INIT_ISORROPIAII( State_Grid ) + CALL INIT_ATE( State_Grid ) #endif ! Check to see if we need to get HNO3 from HEMCO @@ -393,7 +394,7 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & ELSE - ! ISORROPIA is only valid for full-chem or aerosol-only sims + ! HETP is only valid for full-chem or aerosol-only sims ErrMsg = 'Invalid simulation type!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN @@ -418,7 +419,7 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & ELSE - ! ISORROPIA is only valid for full-chem or aerosol-only sims + ! HETP is only valid for full-chem or aerosol-only sims ErrMsg = 'Invalid simulation type!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN @@ -426,15 +427,15 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & ENDIF ENDIF - ! Print out - IF ( Input_Opt%amIRoot ) THEN + ! Print out only when debug output is on (bmy, 05 Dec 2022) + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 100 ) REPEAT( '=', 79 ) WRITE( 6, 110 ) WRITE( 6, 100 ) REPEAT( '=', 79 ) ENDIF 100 FORMAT( a ) -110 FORMAT( 'Successfully initialized ISORROPIA code II' ) +110 FORMAT( 'Successfully initialized aerosol thermo. ' ) ! Reset first-time flag FIRST = .FALSE. @@ -471,28 +472,34 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & Spc => State_Chm%Species !======================================================================== - ! Loop over grid boxes and call ISORROPIA (see comments in the - ! ISORROPIA routine ISORROPIAIICODE.f which describes - ! the input/output args) + ! Loop over grid boxes and call HETP (see comments in the + ! HETP routine hetp_mod.F90 which describes the input/output args) !======================================================================== !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & !$OMP PRIVATE( I, J, L, N, WI ) & !$OMP PRIVATE( WT, GAS, TEMPI, RHI, VOL ) & !$OMP PRIVATE( TSO4, TNH3, TNA, TCL, ANO3 ) & - !$OMP PRIVATE( GNO3, TCA, TMG, TK, CNTRL ) & - !$OMP PRIVATE( SCASI, P_Pa, TNO3, AERLIQ, AERSLD ) & + !$OMP PRIVATE( GNO3, TCA, TMG, TK ) & + !$OMP PRIVATE( SCASI, P_Pa, TNO3, AERLIQ ) & !$OMP PRIVATE( OTHER, TNH4, TNIT, HPLUSTEMP, NUM_SAV ) & !$OMP PRIVATE( GCL, ACL, AlkR, NM, PHCl ) & !$OMP PRIVATE( Qk, n_air, n_ssc, Hplus, Dcs ) & !$OMP PRIVATE( DEN_SAV, HNO3_DEN, OutOfBounds, F_HCL, F_HNO3 ) & !$OMP PRIVATE( SULFTEMP, BISULTEMP, NITRTEMP, HNO3_UGM3, CLTEMP ) & - !$OMP SCHEDULE( DYNAMIC, 1 ) + !$OMP PRIVATE( HETP_SO4, HETP_HSO4, HETP_CaSO4, HETP_NH4 ) & + !$OMP PRIVATE( HETP_NH3, HETP_NO3, HETP_HNO3, HETP_Cl ) & + !$OMP PRIVATE( HETP_HCl, HETP_Na, HETP_Ca, HETP_K ) & + !$OMP PRIVATE( HETP_Mg, HETP_H, HETP_OH, HETP_LWC ) & + !$OMP PRIVATE( HETP_frNa, HETP_frCa, HETP_frK, HETP_frMg ) & + !$OMP PRIVATE( HETP_frSO4, HETP_num ) & + !$OMP COLLAPSE( 3 ) & + !$OMP SCHEDULE( DYNAMIC, 8 ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - ! Only applying ISORROPIA II in troposphere + ! Only applying HETP in troposphere IF ( State_Met%InStratMeso(I,J,L) ) CYCLE ! Zero PRIVATE variables @@ -544,7 +551,6 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & ! This will prevent values from prior iterations hanging around. ACl = 0.0_fp AERLIQ = 0.0_f8 - AERSLD = 0.0_f8 AlkR = 0.0_fp ANO3 = 0.0_fp F_HNO3 = 0.0_fp @@ -574,14 +580,18 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & !----------------------------------------------- IF (N == 1) THEN - IF (Spc(id_SALAAL)%Conc(I,J,L) .GT. CONMIN) THEN +! IF (Spc(id_SALAAL)%Conc(I,J,L) .GT. CONMIN) THEN !bc 08/01/24 for floating point exception + IF (Spc(id_SALAAL)%Conc(I,J,L) .GT. CONMIN .and. & + Spc(id_SALA)%Conc(I,J,L) .GT. CONMIN) THEN AlkR = Spc(id_SALAAL)%Conc(I,J,L) / Spc(id_SALA)%Conc(I,J,L) AlkR = MAX( (1.0_fp-AlkR), CONMIN) ELSE AlkR = 1.0_fp ENDIF ELSE - IF (Spc(id_SALCAL)%Conc(I,J,L) .GT. CONMIN) THEN +! IF (Spc(id_SALCAL)%Conc(I,J,L) .GT. CONMIN) THEN !bc 08/01/24 for floating point exception + IF (Spc(id_SALCAL)%Conc(I,J,L) .GT. CONMIN .and. & + Spc(id_SALC)%Conc(I,J,L) .GT. CONMIN) THEN AlkR = Spc(id_SALCAL)%Conc(I,J,L) / Spc(id_SALC)%Conc(I,J,L) AlkR = MAX( (1.0_fp-AlkR), CONMIN) ELSE @@ -590,7 +600,7 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & ENDIF !-------------------------------- - ! Compute quantities for ISORROPIA + ! Compute quantities for HETP !--------------------------------- IF ( N == 1 ) THEN @@ -666,8 +676,9 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & !==================================================================== ! NOTE: As of 11/2007, ISORROPIAII does not conserve mass when Ca,K,Mg ! are non-zero. If you would like to consider Ca, K, Mg from seasalt - ! and dust, isorropiaIIcode.f ISRP4F routines must be debugged. + ! and dust, then ISORROPIA II ISRP4F routines must be debugged. ! (hotp, bmy, 2/1/10) + ! This still applies in HETP (ewl, 4/22/2024) ! ! ! Total Ca2+ (1.16% by weight of seasalt) [mole/m3] ! TCA = Spc(id_SALA)%Conc(I,J,L) * 0.0116e+0_fp * 1.d3 / @@ -731,19 +742,6 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & ENDIF - !--------------------------------- - ! Call ISORROPIA - !--------------------------------- - - ! set type of ISORROPIA call - ! Forward problem, do not change this value - ! 0e+0_fp represents forward problem - CNTRL(1) = 0.0_fp - - ! Metastable for now - ! 1e+0_fp represents metastable problem - CNTRL(2) = 1.0_fp - ! Insert concentrations [mole/m3] into WI & prevent underflow WI(1) = MAX( TNA, CONMIN ) WI(2) = MAX( TSO4, CONMIN ) @@ -760,7 +758,7 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & !%%% If the C-preprocessor switch is activated then check if !%%% pressure and temperature are in the range that will result !%%% in a stable solution. If not, then we will skip calling - !%%% ISORROPIA to avoid random noise in the output. + !%%% ISORROPIA/HETP to avoid random noise in the output. !%%% !%%% NOTE: Turning this feature on will result in differences !%%% with respect to prior GEOS-Chem versions. So we'll give @@ -777,14 +775,14 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & #else !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - !%%% Always call ISORROPIA, regardless of the values of pressure + !%%% Always call ISORROPIA/HETP, regardless of the values of pressure !%%% and temperature. This will match the prior behavior of !%%% when comparing to v11-01 and earlier versions. !%%% !%%% -- Seb Eastham and Bob Yantosca (1/25/17) !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - ! Never skip calling ISORROPIA + ! Never skip calling ISORROPIA/HETP OutOfBounds = .FALSE. #endif @@ -796,7 +794,6 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & ! and spoof the other outputs WT = WI AERLIQ = 0.0_f8 - AERSLD = 0.0_f8 GAS = 0.0_f8 OTHER = 0.0_f8 @@ -809,11 +806,32 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & ELSE ! %%% Perform aerosol thermodynamic equilibrium %%% - ! ISORROPIA can be found in ISORROPIAIICODE.F - ! inputs are WI, RHI, TEMPI, CNTRL - CALL ISORROPIA( WI, RHI, TEMPI, CNTRL, & - WT, GAS, AERLIQ, AERSLD, & - SCASI, OTHER ) + ! For safety + GAS = 0.0d0 + AERLIQ = 0.0d0 + Call MACH_HETP_Main_15Cases( WI(2), WI(3), WI(4), WI(1), WI(5), & + WI(6), WI(7), WI(8), TEMPI, RHI, & + HETP_SO4, HETP_HSO4, HETP_CaSO4, HETP_NH4, & + HETP_NH3, HETP_NO3, HETP_HNO3, HETP_Cl, & + HETP_HCl, HETP_Na, HETP_Ca, HETP_K, & + HETP_Mg, HETP_H, HETP_OH, HETP_LWC, & + HETP_frNa, HETP_frCa, HETP_frK, HETP_frMg, & + HETP_frSO4, HETP_num ) + ! Spoof ISORROPIA outputs which are still used + GAS(1) = HETP_NH3 + GAS(2) = HETP_HNO3 + GAS(3) = HETP_HCl + ! Mostly used for diagnostics + AERLIQ( 1) = HETP_H + AERLIQ( 2) = HETP_Na + AERLIQ( 3) = HETP_NH4 + AERLIQ( 4) = HETP_Cl + AERLIQ( 5) = HETP_SO4 + AERLIQ( 6) = HETP_HSO4 + AERLIQ( 7) = HETP_NO3 + AERLIQ( 8) = HETP_LWC + ! WT is used below but is identical to WI for a forward case + WT(:) = WI(:) ! Consider mass transfer and acid limitation for coarse ! mode calculation @@ -844,7 +862,7 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & !--------------------------------- ! Save back into tracer array !--------------------------------- - ! Convert ISORROPIA output from [mole/m3] to [kg] + ! Convert HETP output from [mole/m3] to [kg] IF ( N == 1 ) THEN TSO4 = MAX( 96.e-3_fp * VOL * TSO4, CONMIN ) TNH4 = MAX( 18.e-3_fp * VOL * TNH4, CONMIN ) @@ -992,9 +1010,11 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & Spc => NULL() !### Debug - IF ( prtDebug ) CALL DEBUG_MSG( '### ISORROPIAII: a DO_ISORROPIAII' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### AEROSOL_THERMODYNAMICS: a DO_ATE' ) + ENDIF - END SUBROUTINE DO_ISORROPIAII + END SUBROUTINE DO_ATE !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1141,7 +1161,7 @@ Subroutine GET_QK(GNO3, GCL, GNO3eq, GCLeq, Hplus, d, temp, & ! ! Gas concentration (mole m-3) before equilibrium REAL(fp), INTENT(IN) :: GNO3, GCL - ! Gas concentration (mole m-3) after ISORROPIA equilibrium + ! Gas concentration (mole m-3) after HETP equilibrium REAL(fp), INTENT(IN) :: GNO3eq, GCLeq ! Aerosol H+ concentration (mole m-3) REAL(fp), INTENT(IN) :: Hplus @@ -1242,14 +1262,15 @@ END SUBROUTINE GET_Qk !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: init_isorropiaII +! !IROUTINE: init_ate ! -! !DESCRIPTION: Subroutine INIT\_ISORROPIAII initializes all module arrays. +! !DESCRIPTION: Subroutine INIT\_ATE initializes all module arrays for the +! aerosols thermodynamics module. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE INIT_ISORROPIAII( State_Grid ) + SUBROUTINE INIT_ATE( State_Grid ) ! ! !USES: ! @@ -1272,7 +1293,7 @@ SUBROUTINE INIT_ISORROPIAII( State_Grid ) INTEGER :: AS !================================================================= - ! INIT_ISORROPIAII begins here! + ! INIT_ATE begins here! !================================================================= ALLOCATE( HNO3_sav( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), & @@ -1285,21 +1306,21 @@ SUBROUTINE INIT_ISORROPIAII( State_Grid ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'GAS_HNO3' ) GAS_HNO3 = 0e+0_fp - END SUBROUTINE INIT_ISORROPIAII + END SUBROUTINE INIT_ATE !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: cleanup_isorropiaII +! !IROUTINE: cleanup_ate ! -! !DESCRIPTION: Subroutine CLEANUP\_ISORROPIAII deallocates all module arrays. +! !DESCRIPTION: Subroutine CLEANUP\_ATE deallocates all module arrays. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE CLEANUP_ISORROPIAII + SUBROUTINE CLEANUP_ATE ! ! !REVISION HISTORY: ! 06 Jul 2007 - H. O. T. Pye - Initial version @@ -1311,6 +1332,6 @@ SUBROUTINE CLEANUP_ISORROPIAII IF ( ALLOCATED( HNO3_sav ) ) DEALLOCATE( HNO3_sav ) IF ( ALLOCATED( GAS_HNO3 ) ) DEALLOCATE( GAS_HNO3 ) - END SUBROUTINE CLEANUP_ISORROPIAII + END SUBROUTINE CLEANUP_ATE !EOC -END MODULE ISORROPIAII_MOD +END MODULE AEROSOL_THERMODYNAMICS_MOD diff --git a/GeosCore/airs_ch4_mod.F90 b/GeosCore/airs_ch4_mod.F90 index f966c65a2..3b2ad056d 100644 --- a/GeosCore/airs_ch4_mod.F90 +++ b/GeosCore/airs_ch4_mod.F90 @@ -149,7 +149,7 @@ SUBROUTINE READ_AIRS_CH4_OBS( YYYYMMDD, NAIRS ) ! READ_AIRS_CH4_OBS begins here! !================================================================= - caller = 'READ_AIRS_CH4_OBS in airs_ch4_mod.F90' + caller = 'READ_AIRS_CH4_OBS in GeosCore/airs_ch4_mod.F90' ! Get current year WRITE( CYEAR, '(i4)' ) GET_YEAR() @@ -370,7 +370,8 @@ SUBROUTINE CALC_AIRS_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & USE State_Chm_Mod, ONLY : ChmState, Ind_ USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -429,7 +430,7 @@ SUBROUTINE CALC_AIRS_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & INTEGER :: IOS INTEGER, SAVE :: TotalObs = 0 CHARACTER(LEN=255) :: FILENAME - CHARACTER(LEN=63) :: OrigUnit + INTEGER :: previous_units CHARACTER(LEN=255) :: ThisLoc CHARACTER(LEN=512) :: ErrMsg INTEGER :: RC @@ -444,7 +445,7 @@ SUBROUTINE CALC_AIRS_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & ! Initialize RC = GC_SUCCESS ErrMsg = '' - ThisLoc = ' -> at CALC_AIRS_CH4_FORCE (in gosat_ch4_mod.F)' + ThisLoc = ' -> at CALC_AIRS_CH4_FORCE (in GeosCore/airs_ch4_mod.F90)' ! Initialize species ID flag id_CH4 = Ind_('CH4' ) @@ -516,15 +517,33 @@ SUBROUTINE CALC_AIRS_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & print*, ' for hour range: ', GET_HOUR(), GET_HOUR()+1 print*, ' found # AIRS observations: ', NOBS + ! Halt diagnostics timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Diagnostics", RC ) + ENDIF + ! Convert species units to [v/v] (mps, 6/12/2020) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'v/v dry', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Unit conversion error (kg/kg dry -> v/v dry)' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF + ! Start diagnostics timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Diagnostics", RC ) + ENDIF + !! need to update this in order to do i/o with this loop parallel !! ! Now do a parallel loop for analyzing data !!$OMP PARALLEL DO @@ -686,15 +705,33 @@ SUBROUTINE CALC_AIRS_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & ENDDO ! NT !!$OMP END PARALLEL DO + ! Halt diagnostics timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Diagnostics", RC ) + ENDIF + ! Convert species units back to original unit (mps, 6/12/2020) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) + + ! Trap errors IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Unit conversion error' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF + ! Start diagnostics timer + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Diagnostics", RC ) + ENDIF + 283 FORMAT( I10,2x,I4,2x,I4,2x,F8.3,2x,F8.4,2x,I4,2x,I2,2x,I2,2x,I2, & 2x,I2,2x,I2,2x,F12.3,2x,E12.6,2x,E12.6,2x,E12.6, & 2x, E12.6,2x, E12.6,2x, F12.3, 2x,E12.6, 2x, E12.6, 2x, & diff --git a/GeosCore/apm_driv_mod.F90 b/GeosCore/apm_driv_mod.F90 index 419c1eb8a..1c110a6ee 100644 --- a/GeosCore/apm_driv_mod.F90 +++ b/GeosCore/apm_driv_mod.F90 @@ -359,7 +359,7 @@ SUBROUTINE APM_DRIV( Input_Opt, State_Chm, State_Diag, & use parkind, only : im => kind_im, rb => kind_rb - USE IsorropiaII_Main_Mod, ONLY : Isorropia + USE HETP_mod, ONLY : mach_hetp_main_15cases use module_mosaic_therm, only: mosaic ! ! !INPUT PARAMETERS: @@ -497,16 +497,21 @@ SUBROUTINE APM_DRIV( Input_Opt, State_Chm, State_Diag, & REAL(fp) :: TNA, TCL, TNH3, TNH4 REAL(fp) :: TNIT, TNO3, TSO4 REAL(f8) :: AERLIQ(NIONSA+NGASAQA+2) - REAL(f8) :: AERSLD(NSLDSA) REAL(f8) :: GAS1(NGASAQA) REAL(f8) :: OTHER(NOTHERA) REAL(f8) :: WI(NCOMPA) REAL(f8) :: WT(NCOMPA) - REAL(f8) :: CNTRL(NCTRLA) CHARACTER(LEN=255) :: X CHARACTER(LEN=15) :: SCASI REAL*8 :: TSO4COAT,DNH3MAX REAL*8 :: TH2O,TINORG !Yu+ 6/1/11 + REAL*8 :: HETP_SO4, HETP_HSO4, HETP_CaSO4, HETP_NH4 + REAL*8 :: HETP_NH3, HETP_NO3, HETP_HNO3, HETP_Cl + REAL*8 :: HETP_HCl, HETP_Na, HETP_Ca, HETP_K + REAL*8 :: HETP_Mg, HETP_H, HETP_OH, HETP_LWC + REAL*8 :: HETP_frNa, HETP_frCa, HETP_frK, HETP_frMg + REAL*8 :: HETP_frSO4, HETP_num + !-------------------------------------------------------------------------- ! These do not appear to be used anymore (bmy, 6/18/19) !REAL,SAVE :: SEABIRDEM(State_Grid%NX,State_Grid%NY,2) @@ -723,12 +728,19 @@ SUBROUTINE APM_DRIV( Input_Opt, State_Chm, State_Diag, & !$OMP DEFAULT( SHARED ) & !$OMP PRIVATE( I, J, L, N, WI, WT, GAS1, TEMPI )& !$OMP PRIVATE( RHI, VOL, TSO4, TNH3, TNA, TCL, ANO3, GNO3 ) & - !$OMP PRIVATE( TCA, TMG, TK, CNTRL, SCASI ) & - !$OMP PRIVATE( TNO3, AERLIQ, AERSLD, OTHER, TNH4, TNIT ) & + !$OMP PRIVATE( TCA, TMG, TK, SCASI ) & + !$OMP PRIVATE( TNO3, AERLIQ, OTHER, TNH4, TNIT ) & !$OMP PRIVATE( TSO4COAT ,DNH3MAX ) & !$OMP PRIVATE( TH2O, XM,VRATIO) & !$OMP PRIVATE( SO4_bin_sum, SEA_bin_sum) & - !$OMP SCHEDULE( DYNAMIC ) + !$OMP PRIVATE( HETP_SO4, HETP_HSO4, HETP_CaSO4, HETP_NH4 ) & + !$OMP PRIVATE( HETP_NH3, HETP_NO3, HETP_HNO3, HETP_Cl ) & + !$OMP PRIVATE( HETP_HCl, HETP_Na, HETP_Ca, HETP_K ) & + !$OMP PRIVATE( HETP_Mg, HETP_H, HETP_OH, HETP_LWC ) & + !$OMP PRIVATE( HETP_frNa, HETP_frCa, HETP_frK, HETP_frMg ) & + !$OMP PRIVATE( HETP_frSO4, HETP_num ) & + !$OMP COLLAPSE( 3 ) & + !$OMP SCHEDULE( DYNAMIC, 8 ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -830,15 +842,6 @@ SUBROUTINE APM_DRIV( Input_Opt, State_Chm, State_Diag, & ! Call ISORROPIA !--------------------------------- - ! set type of ISORROPIA call - ! Forward problem, do not change this value - ! 0e+0_fp represents forward problem - CNTRL(1) = 0.0e+0_fp - - ! Metastable for now - ! 1e+0_fp represents metastable problem - CNTRL(2) = 1.0e+0_fp - ! Insert concentrations [mole/m3] into WI & prevent underflow WI(1) = MAX( TNA, CONMIN ) WI(2) = MAX( TSO4, CONMIN ) @@ -850,11 +853,32 @@ SUBROUTINE APM_DRIV( Input_Opt, State_Chm, State_Diag, & WI(8) = MAX( TMG, CONMIN ) ! Perform aerosol thermodynamic equilibrium - ! ISORROPIA can be found in ISORROPIAIICODE.f - ! inputs are WI, RHI, TEMPI, CNTRL - CALL ISORROPIA( WI, RHI, TEMPI, CNTRL, & - WT, GAS1, AERLIQ, AERSLD, & - SCASI, OTHER) + ! For safety + GAS = 0.0d0 + AERLIQ = 0.0d0 + Call MACH_HETP_Main_15Cases( WI(2), WI(3), WI(4), WI(1), WI(5), & + WI(6), WI(7), WI(8), TEMPI, RHI, & + HETP_SO4, HETP_HSO4, HETP_CaSO4, HETP_NH4, & + HETP_NH3, HETP_NO3, HETP_HNO3, HETP_Cl, & + HETP_HCl, HETP_Na, HETP_Ca, HETP_K, & + HETP_Mg, HETP_H, HETP_OH, HETP_LWC, & + HETP_frNa, HETP_frCa, HETP_frK, HETP_frMg, & + HETP_frSO4, HETP_num ) + ! Spoof ISORROPIA outputs which are still used + GAS1(1) = HETP_NH3 + GAS1(2) = HETP_HNO3 + GAS1(3) = HETP_HCl + ! Mostly used for diagnostics + AERLIQ( 1) = HETP_H + AERLIQ( 2) = HETP_Na + AERLIQ( 3) = HETP_NH4 + AERLIQ( 4) = HETP_Cl + AERLIQ( 5) = HETP_SO4 + AERLIQ( 6) = HETP_HSO4 + AERLIQ( 7) = HETP_NO3 + AERLIQ( 8) = HETP_LWC + ! WT is used below but is identical to WI for a forward case + WT(:) = WI(:) IF(IFDOISRP==1.or.IFDOISRP==3.or.IFDOISRP==4)THEN TH2O = AERLIQ(8) ! aerosol water (mole/m3) @@ -1036,49 +1060,51 @@ SUBROUTINE APM_DRIV( Input_Opt, State_Chm, State_Diag, & !$OMP END PARALLEL DO ENDIF - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N ) & - !$OMP PRIVATE( SIZENUM, PRESS, TK, RHIN ) & - !$OMP PRIVATE( CACID,PACID ) & - !$OMP PRIVATE( MSO4,MSO4BULK,MNIT,MNH4,SOAT) & - !$OMP PRIVATE( MBCS, MOCS, MSULFT,MDSTS,MSALTS) & - !$OMP PRIVATE( MBC, MOC, MMSA) & - !$OMP PRIVATE( XMDST) & - !$OMP PRIVATE( MASS1, MASS2) & - !$OMP PRIVATE( CSO2,CNH3,XN0,CAMINE,CAMINEEMIT,YAMINEEMIT) & - !$OMP PRIVATE( CCO,CNO,CNO2,CNO3,CHNO3,CISOP,CMTPA) & - !$OMP PRIVATE( NH3EMIT) & - !$OMP PRIVATE( CSOG) & - !$OMP PRIVATE( CSOA) & - !$OMP PRIVATE( VOL) & - !$OMP PRIVATE( CLVSOG,MSULFLV,MBCLV,MOCLV,MDSTLV,MSALTLV) & - !$OMP PRIVATE( XM1D,XN1D,XNOLD,TEMPOUT1,ATOM4N,AEROCOMOUT1D) & - !$OMP PRIVATE( XQ,PLVSOG01,PLVSOG1,GFTOT1,GFTOT2,DENWET1,DENWET2) & - !$OMP PRIVATE( IACT10,IACT20,IACT30,FCLOUD1,AERAREA1,AERDRYR1,GAMMAPM1) & - !$OMP PRIVATE( RACT1,RACT2,RACT3) & - !$OMP PRIVATE( NCOAG1,NCOAG2) & - !$OMP PRIVATE( YSPGF,XBCLIFE,XOCLIFE,XCSNH3) &!Yu+ - !$OMP PRIVATE( XOH, XSINK,XAREA,XX0,XX1,DXX,ACS,XLAT, XLON,XAMINE) & - !$OMP PRIVATE( KYEAR,KMON,KDAY,KHOUR,KMIN,ISITE,JSITE,NSITE) & - !$OMP PRIVATE( XU,XV,TOP, TOPP) & - !$OMP PRIVATE( KKOUT) & - !$OMP PRIVATE( ZBEXT,ZW,ZG) &!OPT+ - !$OMP PRIVATE( ZBABS) &!OPT+ - !$OMP PRIVATE( YBEXT,XBEXT1k,YW,YG) &!OPT+ - !$OMP PRIVATE( IWL) &!OPT+ - !$OMP PRIVATE( ITYP) &!mxy+ - !$OMP PRIVATE( YCCN,YCDN,YCDNSP,YCLDF,YCLDLIQ,YCLDICE,YRCLDL,VZ) &!Yu+ 7/2012 - !$OMP PRIVATE( XCDN,XCDNSP ) & - !$OMP PRIVATE( YF,YC,SCOS,LOCALTIME ) & - !$OMP PRIVATE( PRESS0, YSIGMA ) & - !$OMP PRIVATE( wbar,relhum,yqc,yna,YB,YREI,YK) & - !$OMP PRIVATE( dumc, dumnc, pgam, lamc) & - !$OMP PRIVATE( CCLD,CLDLIQ,CLDICE ) & - !$OMP PRIVATE( REL,REI) & - !$OMP PRIVATE( taucloud, taucloudl, taucloudi, ssacloudl, ssacloudi ) & - !!$OMP PRIVATE( nuci, onihf, oniimm, onidep, onimey) & - !$OMP SCHEDULE( DYNAMIC ) +! Disable this parallel loop, which causes differences in output +! for the time being. -- Bob Yantosca (24 May 2023) +! !$OMP PARALLEL DO & +! !$OMP DEFAULT( SHARED ) & +! !$OMP PRIVATE( I, J, L, N ) & +! !$OMP PRIVATE( SIZENUM, PRESS, TK, RHIN ) & +! !$OMP PRIVATE( CACID,PACID ) & +! !$OMP PRIVATE( MSO4,MSO4BULK,MNIT,MNH4,SOAT) & +! !$OMP PRIVATE( MBCS, MOCS, MSULFT,MDSTS,MSALTS) & +! !$OMP PRIVATE( MBC, MOC, MMSA) & +! !$OMP PRIVATE( XMDST) & +! !$OMP PRIVATE( MASS1, MASS2) & +! !$OMP PRIVATE( CSO2,CNH3,XN0,CAMINE,CAMINEEMIT,YAMINEEMIT) & +! !$OMP PRIVATE( CCO,CNO,CNO2,CNO3,CHNO3,CISOP,CMTPA) & +! !$OMP PRIVATE( NH3EMIT) & +! !$OMP PRIVATE( CSOG) & +! !$OMP PRIVATE( CSOA) & +! !$OMP PRIVATE( VOL) & +! !$OMP PRIVATE( CLVSOG,MSULFLV,MBCLV,MOCLV,MDSTLV,MSALTLV) & +! !$OMP PRIVATE( XM1D,XN1D,XNOLD,TEMPOUT1,ATOM4N,AEROCOMOUT1D) & +! !$OMP PRIVATE( XQ,PLVSOG01,PLVSOG1,GFTOT1,GFTOT2,DENWET1,DENWET2) & +! !$OMP PRIVATE( IACT10,IACT20,IACT30,FCLOUD1,AERAREA1,AERDRYR1,GAMMAPM1) & +! !$OMP PRIVATE( RACT1,RACT2,RACT3) & +! !$OMP PRIVATE( NCOAG1,NCOAG2) & +! !$OMP PRIVATE( YSPGF,XBCLIFE,XOCLIFE,XCSNH3) &!Yu+ +! !$OMP PRIVATE( XOH, XSINK,XAREA,XX0,XX1,DXX,ACS,XLAT, XLON,XAMINE) & +! !$OMP PRIVATE( KYEAR,KMON,KDAY,KHOUR,KMIN,ISITE,JSITE,NSITE) & +! !$OMP PRIVATE( XU,XV,TOP, TOPP) & +! !$OMP PRIVATE( KKOUT) & +! !$OMP PRIVATE( ZBEXT,ZW,ZG) &!OPT+ +! !$OMP PRIVATE( ZBABS) &!OPT+ +! !$OMP PRIVATE( YBEXT,XBEXT1k,YW,YG) &!OPT+ +! !$OMP PRIVATE( IWL) &!OPT+ +! !$OMP PRIVATE( ITYP) &!mxy+ +! !$OMP PRIVATE( YCCN,YCDN,YCDNSP,YCLDF,YCLDLIQ,YCLDICE,YRCLDL,VZ) &!Yu+ 7/2012 +! !$OMP PRIVATE( XCDN,XCDNSP ) & +! !$OMP PRIVATE( YF,YC,SCOS,LOCALTIME ) & +! !$OMP PRIVATE( PRESS0, YSIGMA ) & +! !$OMP PRIVATE( wbar,relhum,yqc,yna,YB,YREI,YK) & +! !$OMP PRIVATE( dumc, dumnc, pgam, lamc) & +! !$OMP PRIVATE( CCLD,CLDLIQ,CLDICE ) & +! !$OMP PRIVATE( REL,REI) & +! !$OMP PRIVATE( taucloud, taucloudl, taucloudi, ssacloudl, ssacloudi ) & +! !!$OMP PRIVATE( nuci, onihf, oniimm, onidep, onimey) & +! !$OMP SCHEDULE( DYNAMIC ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -2139,7 +2165,9 @@ SUBROUTINE APM_DRIV( Input_Opt, State_Chm, State_Diag, & ENDDO ENDDO - !$OMP END PARALLEL DO +! Disable this parallel loop, which causes differences in output. +! -- Bob Yantosca (24 May 2023) +! !$OMP END PARALLEL DO write(*,*)'LuoSSA',sum(TCOD3D(:,:,:,1))/size(TCOD3D(:,:,:,1)), & sum(TCOD3D(:,:,:,5))/size(TCOD3D(:,:,:,5)) diff --git a/GeosCore/calc_met_mod.F90 b/GeosCore/calc_met_mod.F90 index 0a575d09c..813e459b8 100644 --- a/GeosCore/calc_met_mod.F90 +++ b/GeosCore/calc_met_mod.F90 @@ -158,6 +158,7 @@ SUBROUTINE AIRQNT( Input_Opt, State_Chm, State_Grid, State_Met, & USE Time_Mod, ONLY : Get_LocalTime USE Time_Mod, ONLY : Get_LocalTime_In_Sec USE Time_Mod, ONLY : Get_Ts_Dyn + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -217,15 +218,16 @@ SUBROUTINE AIRQNT( Input_Opt, State_Chm, State_Grid, State_Met, & ! !LOCAL VARIABLES: ! ! Scalars + LOGICAL :: t1, t2 INTEGER :: Dt_Sec INTEGER :: I, J, L - INTEGER :: L_CG, L_TP, N + INTEGER :: L_CG, L_TP, N, units REAL(fp) :: PEdge_Top, Esat REAL(fp) :: EsatA, EsatB, EsatC, EsatD REAL(fp) :: SPHU_kgkg, AVGW_moist, H, FRAC REAL(fp) :: Pb, Pt, XH2O, ADmoist LOGICAL :: UpdtMR - REAL(fp) :: FRLAND_NOSNO_NOICE, FRWATER, FRICE, FRSNO + REAL(fp) :: FRLAND_NOSNOW_NOICE, FRWATER, FRICE, FRSNOW ! Arrays LOGICAL :: IsLocNoon (State_Grid%NX,State_Grid%NY) @@ -276,7 +278,7 @@ SUBROUTINE AIRQNT( Input_Opt, State_Chm, State_Grid, State_Met, & ! Pre-compute local solar time = UTC + Lon/15 !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, FRLAND_NOSNO_NOICE, FRWATER, FRICE, FRSNO ) + !$OMP PRIVATE( I, J, FRLAND_NOSNOW_NOICE, FRWATER, FRICE, FRSNOW ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -292,23 +294,25 @@ SUBROUTINE AIRQNT( Input_Opt, State_Chm, State_Grid, State_Met, & IsLocNoon(I,J) = ( LocTimeSec(I,J) <= 43200 .and. & LocTimeSec(I,J) + Dt_Sec >= 43200 ) - ! Land without snow or ice - FRLAND_NOSNO_NOICE = State_Met%FRLAND(I,J) - State_Met%FRSNO(I,J) + ! Snow + FRSNOW = State_Met%FRSNOW(I,J) + + ! Land without snow or ice. Note that import FRLAND is defined as land + ! without ice. Land with ice is in import FRLANDIC. To get land without + ! snow or ice we thus only subtract time-varying FRSNOW. + FRLAND_NOSNOW_NOICE = State_Met%FRLAND(I,J) - State_Met%FRSNOW(I,J) ! Water without sea ice FRWATER = State_Met%FRLAKE(I,J) + State_Met%FROCEAN(I,J) - State_Met%FRSEAICE(I,J) ! Land ice and sea ice - FRICE = State_Met%FRLANDIC(I,J) + State_Met%FRSEAICE(I,J) - - ! Snow - FRSNO = State_Met%FRSNO(I,J) - + FRICE = State_Met%FRLANDICE(I,J) + State_Met%FRSEAICE(I,J) + ! Set IsLand, IsWater, IsIce, IsSnow based on max fractional area - State_Met%IsLand(I,J) = (FRLAND_NOSNO_NOICE > MAX(FRWATER, FRICE, FRSNO)) - State_Met%IsWater(I,J) = (FRWATER > MAX(FRLAND_NOSNO_NOICE, FRICE, FRSNO)) - State_Met%IsIce(I,J) = (FRICE > MAX(FRLAND_NOSNO_NOICE, FRWATER, FRSNO)) - State_Met%IsSnow(I,J) = (FRSNO > MAX(FRLAND_NOSNO_NOICE, FRWATER, FRICE)) + State_Met%IsLand(I,J) = (FRLAND_NOSNOW_NOICE > MAX(FRWATER, FRICE, FRSNOW)) + State_Met%IsWater(I,J) = (FRWATER > MAX(FRLAND_NOSNOW_NOICE, FRICE, FRSNOW)) + State_Met%IsIce(I,J) = (FRICE > MAX(FRLAND_NOSNOW_NOICE, FRWATER, FRSNOW)) + State_Met%IsSnow(I,J) = (FRSNOW > MAX(FRLAND_NOSNOW_NOICE, FRWATER, FRICE)) ENDDO ENDDO @@ -669,35 +673,35 @@ SUBROUTINE AIRQNT( Input_Opt, State_Chm, State_Grid, State_Met, & ! following air quantity change is during GEOS-Chem initialization and ! in transport after the pressure fixer is applied IF ( UpdtMR ) THEN - !IF ( .not. PRESENT( update_mixing_ratio ) .or. update_mixing_ratio ) THEN ! The concentration update formula works only for dry mixing ratios ! (kg/kg or v/v) so check if units are correct - IF ( State_Chm%Spc_units == 'kg/kg dry' .or. & - State_Chm%Spc_units == 'v/v dry' ) THEN + IF ( .not. allSpeciesInDryMixingRatio( State_Chm ) ) THEN + ErrMsg = 'All species must be in dry mixing ratio when ' // & + 'update_mixing_ratio=.TRUE.!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED ) & + !$OMP PRIVATE( I, J, L, N ) + DO N = 1, State_Chm%nSpecies + + units = State_Chm%Species(N)%Units - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N ) - DO N = 1, State_Chm%nSpecies DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(n)%Conc(I,J,L) * & - State_Met%DP_DRY_PREV(I,J,L) / & - State_Met%DELP_DRY(I,J,L) - ENDDO + State_Chm%Species(N)%Conc(I,J,L) = & + State_Chm%Species(n)%Conc(I,J,L) * & + State_Met%DP_DRY_PREV(I,J,L) / & + State_Met%DELP_DRY(I,J,L) ENDDO ENDDO ENDDO - !$OMP END PARALLEL DO - - ELSE - ErrMsg = 'Incorrect species units: ' // TRIM( State_Chm%Spc_Units ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF + ENDDO + !$OMP END PARALLEL DO ENDIF END SUBROUTINE AIRQNT @@ -1617,4 +1621,51 @@ SUBROUTINE Set_Clock_Tracer( State_Chm, State_Grid ) END SUBROUTINE Set_Clock_Tracer !EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: allSpeciesinDryMixingRatio +! +! !DESCRIPTION: Returns a logical value to indicate if all species are +! in dry +!\\ +!\\ +! !INTERFACE: +! + FUNCTION allSpeciesInDryMixingRatio( State_Chm ) RESULT( isDryMixRatio ) +! +! !USES: +! + USE State_Chm_Mod, ONLY : ChmState + USE UnitConv_Mod, ONLY : KG_SPECIES_PER_KG_DRY_AIR + USE UnitConv_Mod, ONLY : MOLES_SPECIES_PER_MOLES_DRY_AIR +! +! !INPUT PARAMETERS: +! + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry state object +! +! !RETURN VALUE: +! + LOGICAL :: isDryMixRatio ! All species are in dry MR +! +! !REVISION HISTORY: +! 21 Feb 2024 - R. Yantosca - Initial version +! See the subsequent Git history with the gitk browser! +!EOP +!------------------------------------------------------------------------------ +!BOC + + !================================================================= + ! allSpeciesInDryMixingRatio begins here! + !================================================================= + isDryMixRatio = ( & + ALL( State_Chm%Species(:)%Units == KG_SPECIES_PER_KG_DRY_AIR )& + .or. & + ALL( State_Chm%Species(:)%Units == MOLES_SPECIES_PER_MOLES_DRY_AIR )& + ) + + END FUNCTION allSpeciesInDryMixingRatio +!EOC END MODULE CALC_MET_MOD diff --git a/GeosCore/carbon_gases_mod.F90 b/GeosCore/carbon_gases_mod.F90 index 138b0ff3e..db655e1ba 100644 --- a/GeosCore/carbon_gases_mod.F90 +++ b/GeosCore/carbon_gases_mod.F90 @@ -32,10 +32,6 @@ MODULE Carbon_Gases_Mod PUBLIC :: Init_Carbon_Gases PUBLIC :: Cleanup_Carbon_Gases ! -! !PUBLIC DATA MEMBERS: -! - REAL(fp), ALLOCATABLE, PUBLIC :: CH4_EMIS_J(:,:,:) ! [kg/m2/s] -! ! !REVISION HISTORY: ! 04 Apr 2022 - M.S. Long - Initial version, based on work by B. Bukosa ! See https://github.com/geoschem/geos-chem for complete history @@ -45,18 +41,13 @@ MODULE Carbon_Gases_Mod ! ! !PRIVATE TYPES: ! -!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -!@@@ TAGGED SPECIES HANDLING -!@@@ Set a switch to activate tagged species -!@@@ NOTE: By default, this is not supported and needs further work! -!#define ACTIVATE_TAGGED_SPECIES -!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ! Scalars - LOGICAL :: useGlobOH, useGlobOHv5 - INTEGER :: id_CH4, id_CO, id_COch4, id_COnmvoc - INTEGER :: id_COisop, id_COch3oh, id_COmono, id_COacet - INTEGER :: id_CO2, id_CO2ch, id_OCS, id_OH + LOGICAL :: useGlobOHbmk10yr + LOGICAL :: useGlobOHv5 + INTEGER :: id_CH4, id_CH4_adv, id_CO, id_CO_adv + INTEGER :: id_CO2, id_CO2_adv, id_OCS, id_OCS_adv + INTEGER :: id_OH REAL(fp) :: xnumol_CH4, xnumol_CO, xnumol_CO2, xnumol_OH ! Arrays @@ -64,7 +55,7 @@ MODULE Carbon_Gases_Mod ! ! !DEFINED PARAMETERS: ! - INTEGER, PARAMETER :: N_CH4_DIAGS = 15 + INTEGER, PARAMETER :: N_CH4_DIAGS = 16 REAL(fp), PARAMETER :: CM2perM2 = 1.0e+4_fp REAL(fp), PARAMETER :: CM3perM3 = 1.0e+6_fp REAL(fp), PARAMETER :: toMolecCm3 = ( AVO / AIRMW ) * 1.0e-3_fp @@ -115,13 +106,6 @@ SUBROUTINE Emiss_Carbon_Gases( Input_Opt, State_Chm, State_Diag, & ! !OUTPUT PARAMETERS: ! INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REMARKS: -! WARNING: Soil absorption has to be the 15th field in CH4_EMIS -! Also: the ND58 diagnostics have now been removed. We still need to -! read the HEMCO manual diagnostics into CH4_EMIS for the analytical -! inversion. Therefore, we will keep EmissCh4 for the time-being -! but only remove the bpch diagnostic. !EOP !------------------------------------------------------------------------------ !BOC @@ -163,7 +147,6 @@ SUBROUTINE Emiss_Carbon_Gases( Input_Opt, State_Chm, State_Diag, & ! Initialize RC = GC_SUCCESS - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) Ptr2D => NULL() Spc => NULL() errMsg = '' @@ -180,104 +163,10 @@ SUBROUTINE Emiss_Carbon_Gases( Input_Opt, State_Chm, State_Diag, & ! Emission timestep dtSrce = HcoState%TS_EMIS - !======================================================================== - ! CH4 emissions - ! - ! --> All emission calculations are now done through HEMCO - ! HEMCO stores emissions of all species internally in the HEMCO - ! state object. Here, we pass these emissions into module array - ! CH4_EMIS in units kg/m2/s. These values are then either added to - ! the species array (full mixing scheme) or used later on in - ! vdiff_mod.F90 if the non-local PBL mixing scheme is used. - ! - ! The CH4_EMIS array is mostly used for backwards compatibility - ! (especially the diagnostics). It is also used to ensure that - ! in a multi-species simulation, species 1 (total CH4) is properly - ! defined. - ! (ckeller, 9/12/2013) - !======================================================================== - IF ( id_CH4 > 0 ) THEN - - ! Initialize - CH4_EMIS_J = 0.0_fp - CH4scale = 1.0_hp - CH4diag(1) = 'CH4' - CH4diag(2) = 'CH4_OIL' - CH4diag(3) = 'CH4_GAS' - CH4diag(4) = 'CH4_COAL' - CH4diag(5) = 'CH4_LIVESTOCK' - CH4diag(6) = 'CH4_LANDFILLS' - CH4diag(7) = 'CH4_WASTEWATER' - CH4diag(8) = 'CH4_RICE' - CH4diag(9) = 'CH4_ANTHROTHER' - CH4diag(10) = 'CH4_BIOMASS' - CH4diag(11) = 'CH4_WETLAND' - CH4diag(12) = 'CH4_SEEPS' - CH4diag(13) = 'CH4_LAKES' - CH4diag(14) = 'CH4_TERMITES' - CH4diag(15) = 'CH4_SOILABSORB' ! CH4 soilabsorb values are negative! - CH4scale(15) = -1.0_hp ! Need to convert to positive - - ! Loop over manual CH4 diagnostics - DO N = 2, N_CH4_DIAGS - - ! Get a pointer to the emissions - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, CH4diag(N), & - .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors - IF ( RC /= HCO_SUCCESS ) THEN - errMsg = 'Cannot get pointer to HEMCO field ' // TRIM(CH4diag(N)) - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - IF ( .not. ASSOCIATED( Ptr2D ) ) THEN - errMsg = 'Cannot get pointer to HEMCO field ' // TRIM(CH4diag(N)) - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - - ! Store emissions in CH4_EMIS_J [kg/m2/s] - ! CH4scale is either -1 (for soil absorption) or 1 (everything else) - CH4_EMIS_J(:,:,N) = Ptr2D * CH4scale(N) - - ! Free pointer for next iteration - Ptr2D => NULL() - ENDDO - - !--------------------------------------------------------------------- - ! Total emission: sum of all emissions - (2*soil absorption) - ! We have to substract soil absorption twice because it is added - ! to other emissions in the SUM function. (ccc, 7/23/09) - !--------------------------------------------------------------------- - CH4_EMIS_J(:,:,1) = SUM( CH4_EMIS_J, 3 ) & - - ( 2.0_fp * CH4_EMIS_J(:,:,15) ) - - IF ( prtDebug ) THEN - WRITE(*,*) 'CH4_EMIS (kg/m2/s):' - WRITE(*,*) 'Total : ', SUM( CH4_EMIS_J(:,:,1 ) ) - WRITE(*,*) 'Oil : ', SUM( CH4_EMIS_J(:,:,2 ) ) - WRITE(*,*) 'Gas : ', SUM( CH4_EMIS_J(:,:,3 ) ) - WRITE(*,*) 'Coal : ', SUM( CH4_EMIS_J(:,:,4 ) ) - WRITE(*,*) 'Livestock : ', SUM( CH4_EMIS_J(:,:,5 ) ) - WRITE(*,*) 'Landfills : ', SUM( CH4_EMIS_J(:,:,6 ) ) - WRITE(*,*) 'Wastewater : ', SUM( CH4_EMIS_J(:,:,7 ) ) - WRITE(*,*) 'Rice : ', SUM( CH4_EMIS_J(:,:,8 ) ) - WRITE(*,*) 'Other anth : ', SUM( CH4_EMIS_J(:,:,9 ) ) - WRITE(*,*) 'Biomass burn : ', SUM( CH4_EMIS_J(:,:,10) ) - WRITE(*,*) 'Wetlands : ', SUM( CH4_EMIS_J(:,:,11) ) - WRITE(*,*) 'Seeps : ', SUM( CH4_EMIS_J(:,:,12) ) - WRITE(*,*) 'Lakes : ', SUM( CH4_EMIS_J(:,:,13) ) - WRITE(*,*) 'Termites : ', SUM( CH4_EMIS_J(:,:,14) ) - WRITE(*,*) 'Soil absorb : ', SUM( CH4_EMIS_J(:,:,15) ) - ENDIF - - ENDIF - !======================================================================== ! CO2 production from CO oxidation !======================================================================== - IF ( Input_Opt%LCHEMCO2 .and. id_CO2 > 0 ) THEN + IF ( Input_Opt%LCHEMCO2 .and. id_CO2_adv > 0 ) THEN ! Point to chemical species array [kg/kg dry air] Spc => State_Chm%Species @@ -329,16 +218,6 @@ SUBROUTINE Emiss_Carbon_Gases( Input_Opt, State_Chm, State_Diag, & ! Total CO2 [kg/kg dry air] Spc(id_CO2)%Conc(I,J,L) = Spc(id_CO2)%Conc(I,J,L) + E_CO2 -#ifdef ACTIVATE_TAGGED_SPECIES - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - !@@@ TAGGED SPECIES HANDLING - !@@@ Add chemical source of CO into the COchem species - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - IF ( Input_Opt%LSPLIT .and. id_CO2ch > 0 ) THEN - Spc(id_CO2ch)%Conc(I,J,L) = Spc(id_CO2ch)%Conc(I,J,L) + E_CO2 - ENDIF -#endif - ENDDO ENDDO ENDDO @@ -367,14 +246,13 @@ END SUBROUTINE Emiss_Carbon_Gases ! !INTERFACE: ! SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & - State_Grid, State_Diag, RC ) + State_Grid, State_Diag, RC ) ! ! !USES: ! USE carbon_Funcs USE gckpp_Global USE gckpp_Integrator, ONLY : Integrate - !USE gckpp_Monitor, ONLY : Spc_Names USE gckpp_Parameters USE gckpp_Precision USE gckpp_Rates, ONLY : Update_Rconst @@ -385,11 +263,10 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & USE rateLawUtilFuncs, ONLY : SafeDiv USE Species_Mod, ONLY : SpcConc USE State_Grid_Mod, ONLY : GrdState - USE State_Chm_Mod, ONLY : ChmState, Ind_ + USE State_Chm_Mod, ONLY : ChmState USE State_Diag_Mod, ONLY : DgnState USE State_Met_Mod, ONLY : MetState USE Time_Mod, ONLY : Get_Ts_Chem - USE Timers_Mod ! ! !INPUT PARAMETERS: ! @@ -440,7 +317,7 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & INTEGER :: HcoID, I INTEGER :: J, L INTEGER :: NA, N - INTEGER :: IERR, threadNum + INTEGER :: IERR REAL(fp) :: dtChem, facDiurnal REAL(fp) :: tsPerDay @@ -466,21 +343,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & REAL(fp) :: PCO_in_Strat(State_Grid%NX, State_Grid%NY, State_Grid%NZ) REAL(fp) :: PCO_fr_CH4 (State_Grid%NX, State_Grid%NY, State_Grid%NZ) REAL(fp) :: PCO_fr_NMVOC(State_Grid%NX, State_Grid%NY, State_Grid%NZ) -#ifdef ACTIVATE_TAGGED_SPECIES - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - !@@@ TAGGED SPECIES HANDLING - !@@@ PrevCH4 stores CH4 before chemistry, for later distribution - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - REAL(fp) :: PREVCH4( State_Grid%NX, State_Grid%NY, State_Grid%NZ) -#endif - - -#ifdef MODEL_CLASSIC -#ifndef NO_OMP - ! For GEOS-Chem Classic timers - INTEGER, EXTERNAL :: OMP_GET_THREAD_NUM -#endif -#endif !======================================================================== ! Chem_Carbon_Gases begins here! @@ -592,17 +454,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & !$OMP END PARALLEL DO ENDIF -#ifdef ACTIVATE_TAGGED_SPECIES - !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - !%%% TAGGED SPECIES HANDLING - !%%% If there are multiple CH4 species, store the total CH4 conc - !%%% so that we can distribute the sink after the chemistry. - !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - IF ( Input_Opt%LSPLIT .and. id_CH4 > 0 ) THEN - PrevCH4 = Spc(id_CH4)%Conc - ENDIF -#endif - !======================================================================== ! Main chemistry loop -- call KPP to integrate the mechanism forward !======================================================================== @@ -620,11 +471,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED )& !$OMP PRIVATE( I, J, L, N )& -#ifdef MODEL_CLASSIC -#ifndef NO_OMP - !$OMP PRIVATE( threadNum )& -#endif -#endif !$OMP COLLAPSE( 3 )& !$OMP SCHEDULE( DYNAMIC, 24 ) DO L = 1, State_Grid%NZ @@ -643,22 +489,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & TEMP_OVER_K300 = TEMP / 300.0_dp ! T/300 term for equations K300_OVER_TEMP = 300.0_dp / TEMP ! 300/T term for equations SUNCOS = State_Met%SUNCOSmid(I,J) ! Cos(SZA) ) [1] -#ifdef MODEL_CLASSIC -#ifndef NO_OMP - threadNum = OMP_GET_THREAD_NUM() + 1 ! OpenMP thread number -#endif -#endif - - !===================================================================== - ! Start KPP main timer - !===================================================================== - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( & - timerName = " -> KPP", & - inLoop = .TRUE., & - threadNum = ThreadNum, & - RC = RC ) - ENDIF !===================================================================== ! Convert CO, CO2, CH4 to molec/cm3 for the KPP solver @@ -682,15 +512,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & ! Update reaction rates !=================================================================== - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( & - timerName = " RCONST", & - inLoop = .TRUE., & - threadNum = ThreadNum, & - RC = RC ) - ENDIF - ! Compute the rate constants that will be used CALL carbon_ComputeRateConstants( & I = I, & @@ -713,28 +534,10 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & ! Update the array of rate constants for the KPP solver CALL Update_RCONST() - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( & - timerName = " RCONST", & - inLoop = .TRUE., & - threadNum = threadNum, & - RC = RC ) - ENDIF - !===================================================================== ! Call the KPP integrator !===================================================================== - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( & - timerName = " Integrate 1", & - inLoop = .TRUE., & - threadNum = threadNum, & - RC = RC ) - ENDIF - ! Integrate the mechanism forward in time CALL Integrate( & TIN = 0.0_dp, & @@ -742,15 +545,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & ICNTRL_U = ICNTRL, & IERR_U = IERR ) - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( & - timerName = " Integrate 1", & - inLoop = .TRUE., & - threadNum = ThreadNum, & - RC = RC ) - ENDIF - ! Trap potential errors IF ( IERR /= 1 ) failed = .TRUE. @@ -807,8 +601,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & L = L, & id_CH4 = id_CH4, & id_CO = id_CO, & - id_COch4 = id_COch4, & - id_COnmvoc = id_COnmvoc, & id_CO2 = id_CO2, & xnumol_CO = xnumol_CO, & xnumol_CH4 = xnumol_CH4, & @@ -816,75 +608,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & State_Chm = State_Chm, & State_Met = State_Met ) - IF ( Input_Opt%useTimers ) THEN - - ! Stop main KPP timer - CALL Timer_End( & - timerName = " -> KPP", & - inLoop = .TRUE., & - threadNum = threadNum, & - RC = RC ) - - ! Start Prod/Loss timer - CALL Timer_Start( & - timerName = " -> Prod/loss diags", & - inLoop = .TRUE., & - threadNum = threadNum, & - RC = RC ) - - ENDIF - -#ifdef ACTIVATE_TAGGED_SPECIES - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - !@@@ TAGGED SPECIES HANDLING - !@@@ Handle trop loss by OH for regional CO species - !@@@ This is turned off by default -- needs further work - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - IF ( Input_Opt%LSPLIT .and. id_CO > 0 ) THEN - - !%%% NOTE: Un-hardwire the species IDs! - ! Loop over regional CO species - DO NA = 16, State_Chm%nAdvect-11 - - ! Advected species ID - N = State_Chm%Map_Advect(NA) - - !----------------------------------------------------- - ! NOTE: The proper order should be: - ! (1) Calculate CO loss rate - ! (2) Update AD65 array - ! (3) Update the SPC array using the loss rate - ! - ! Therefore, we have now moved the computation of the - ! ND65 diagnostic before we apply the loss to the - ! tagged CO concentrations stored in the SPC array. - ! - ! -- Jenny Fisher (27 Mar 2017) - !----------------------------------------------------- - - ! Update regional species - !<> - IF (NA .ne. 16) & - Spc(N)%Conc(I,J,L) = Spc(N)%Conc(I,J,L) * & - ( 1e+0_fp - K_TROP(2) * C(FixedOH) * DTCHEM ) - - !----------------------------------------------------- - ! HISTORY (aka netCDF diagnostics) - ! - ! Loss of CO by OH for "tagged" species - !----------------------------------------------------- - - ! Units: [kg/s] - IF ( State_Diag%Archive_Loss ) THEN - State_Diag%Loss(I,J,L,N) = Spc(N)%Conc(I,J,L) * k_Trop(2) & - * C(FixedOH) * DTCHEM - ! C(ind_CO2_OH) / DTCHEM & - ! * State_Met%AIRVOL(I,J,L) * 1e+6_fp / XNUMOL_CO - ENDIF - ENDDO - ENDIF -#endif - !===================================================================== ! HISTORY (aka netCDF diagnostics) ! @@ -915,25 +638,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & carbon_Get_COfromNMVOC_Flux( dtChem ) ENDIF -#ifdef ACTIVATE_TAGGED_SPECIES - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - !@@@ TAGGED SPECIES HANDLING - !@@@ Loss of CO by OH -- tagged species; Units: [kg/s] - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - IF ( State_Diag%Archive_Loss ) THEN - State_Diag%Loss(I,J,L,16) = ( COfrom_OH / STTCO / DTCHEM ) - ENDIF -#endif - - ! Stop Prod/Loss timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( & - timerName = " -> Prod/loss diags", & - inLoop = .TRUE., & - threadNum = threadNum, & - RC = RC ) - ENDIF - ENDDO ENDDO ENDDO @@ -945,20 +649,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, & RETURN ENDIF -#ifdef ACTIVATE_TAGGED_SPECIES - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - !@@@ TAGGED SPECIES HANDLING - !@@@ Allocate the CH4 chemistry sink to different tagged CH4 species - !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - IF ( Input_Opt%LSPLIT .and. id_CH4 > 0 ) THEN - CALL CH4_Distrib_Carbon( & - PrevCh4 = PrevCh4, & - Input_Opt = Input_Opt, & - State_Chm = State_Chm, & - State_Grid = State_Grid ) - ENDIF -#endif - ! Free pointers for safety's sake Spc => NULL() @@ -1087,7 +777,7 @@ SUBROUTINE ReadChemInputFields( Input_Opt, State_Grid, State_Met, & !------------------------------------------------------------------------ ! OH concentration: from GEOS-Chem v5 or GEOS-Chem 10yr benchmark !------------------------------------------------------------------------ - IF ( useGlobOH ) THEN + IF ( useGlobOHv5 .or. useGlobOHbmk10yr ) THEN ! NOTE: Container name is GLOBAL_OH for both data sets! DgnName = 'GLOBAL_OH' @@ -1098,21 +788,18 @@ SUBROUTINE ReadChemInputFields( Input_Opt, State_Grid, State_Met, & CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF + ENDIF - IF ( useGlobOHv5 ) THEN - - ! If we are using Global_OH from GEOS-Chem v5 (e.g. for the IMI or - ! methane simulations) then convert OH from [kg/m3] to [molec/cm3] - Global_OH = Global_OH * xnumol_OH / CM3perM3 - - ELSE - - ! If we are using OH from a 10-year benchmark ("SpeciesConc") - ! then convert OH [mol/mol dry air] to [molec/cm3] - Global_OH = ( Global_OH * State_Met%AirDen ) * toMolecCm3 - - ENDIF + ! If we are using OH from recent a 10-year benchmark ("SpeciesConc") + ! then convert OH [mol/mol dry air] to [molec/cm3]. + IF ( useGlobOHbmk10yr ) THEN + Global_OH = ( Global_OH * State_Met%AirDen ) * toMolecCm3 + ENDIF + ! If we are using Global_OH from GEOS-Chem v5 (e.g. for the IMI or + ! methane simulations) then convert OH from [kg/m3] to [molec/cm3]. + IF ( useGlobOHv5 ) THEN + Global_OH = Global_OH * xnumol_OH / CM3perM3 ENDIF !------------------------------------------------------------------------ @@ -1174,100 +861,6 @@ SUBROUTINE ReadChemInputFields( Input_Opt, State_Grid, State_Met, & END SUBROUTINE ReadChemInputFields !EOC -#ifdef ACTIVATE_TAGGED_SPECIES -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: ch4_distrib -! -! !DESCRIPTION: Allocates the chemistry sink to different emission species. -! (Only called if there are tagged CH4 species.) -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE CH4_Distrib( PrevCh4, Input_Opt, State_Chm, State_Grid ) -! -! !USES: -! - USE ERROR_MOD, ONLY : SAFE_DIV - USE Input_Opt_Mod, ONLY : OptInput - USE Species_Mod, ONLY : SpcConc - USE State_Chm_Mod, ONLY : ChmState - USE State_Grid_Mod, ONLY : GrdState - - IMPLICIT NONE -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - REAL(fp) :: PREVCH4( & - State_Grid%NX, & - State_Grid%NY, & - State_Grid%NZ) ! CH4 befire chemistry -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object -! -! -! !REMARKS: -! This routine is only used with tagged CH4 species. -! -! !REVISION HISTORY: -! See the Git version history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - INTEGER :: I, J, L, N, NA - - ! Pointers - TYPE(SpcConc), POINTER :: Spc(:) - - !======================================================================== - ! CH4_DISTRIB begins here - !======================================================================== - - ! Point to chemical species array [kg] - Spc => State_Chm%Species - - !%%% NOTE: Need to unhardwire the species ID's - ! Loop over the number of advected species - DO NA = 2, State_Chm%nAdvect-24 - - ! Advected species ID - N = State_Chm%Map_Advect(NA) - - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED )& - !$OMP PRIVATE( I, J, L )& - !$OMP COLLAPSE( 3 ) - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - Spc(N)%Conc(I,J,L) = & - SAFE_DIV( Spc(N)%Conc(I,J,L), PREVCH4(I,J,L), 0.0_fp) & - * Spc(id_CH4)%Conc(I,J,L) - ENDDO - ENDDO - ENDDO - !$OMP END PARALLEL DO - - ENDDO - - ! Free pointer - Spc => NULL() - - END SUBROUTINE CH4_DISTRIB -!EOC -#endif !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ @@ -1335,21 +928,18 @@ SUBROUTINE Init_Carbon_Gases( Input_Opt, State_Chm, State_Diag, & !======================================================================== ! Define GEOS-Chem species indices - ! NOTE: Some of these are for tagged species, which are deactivated - ! by default. Interested users can add tagged species if they wish. + ! + ! Also denote which species are advected to facilitate single-tracer runs !======================================================================== - id_CH4 = Ind_( 'CH4' ) - id_CO = Ind_( 'CO' ) - id_COacet = Ind_( 'COacet' ) - id_COch3oh = Ind_( 'COch3oh' ) - id_COch4 = Ind_( 'COch4' ) - id_COisop = Ind_( 'COisop' ) - id_COmono = Ind_( 'COmono' ) - id_COnmvoc = Ind_( 'COnmvoc' ) - id_CO2 = Ind_( 'CO2' ) - id_CO2ch = Ind_( 'CO2ch' ) - id_OCS = Ind_( 'OCS' ) - id_OH = Ind_( 'FixedOH' ) + id_CH4 = Ind_( 'CH4' ) + id_CH4_adv = Ind_( 'CH4', 'A' ) + id_CO = Ind_( 'CO' ) + id_CO_adv = Ind_( 'CO', 'A' ) + id_CO2 = Ind_( 'CO2' ) + id_CO2_adv = Ind_( 'CO2', 'A' ) + id_OCS = Ind_( 'OCS' ) + id_OCS_adv = Ind_( 'OCS', 'A' ) + id_OH = Ind_( 'FixedOH' ) !======================================================================== ! Save physical parameters from the species_database.yml file into KPP @@ -1381,27 +971,6 @@ SUBROUTINE Init_Carbon_Gases( Input_Opt, State_Chm, State_Diag, & IF ( RC /= GC_SUCCESS ) RETURN sumOfCosSza = 0.0_fp - !======================================================================== - ! Initialize variables for CH4 chemistry - !======================================================================== - IF ( id_CH4 > 0 ) THEN - ALLOCATE( CH4_EMIS_J( State_Grid%NX, State_Grid%NY, N_CH4_DIAGS ), & - STAT=RC ) - CALL GC_CheckVar( 'carbon_gases_mod.F90:CH4_EMIS', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - CH4_EMIS_J = 0.0_fp - ENDIF - - !======================================================================== - ! Initialize variables for CO2 chemistry - !======================================================================== - ! none yet - - !======================================================================== - ! Initialize variables for OCS chemistry - !======================================================================== - ! none yet - END SUBROUTINE Init_Carbon_Gases !EOC !------------------------------------------------------------------------------ @@ -1437,13 +1006,6 @@ SUBROUTINE Cleanup_Carbon_Gases( RC ) ! Initialize RC = GC_SUCCESS - ! Deallocate - IF ( ALLOCATED( CH4_EMIS_J ) ) THEN - DEALLOCATE( CH4_EMIS_J, STAT=RC ) - CALL GC_CheckVar( 'carbon_gases_mod.F90:CH4_EMIS', 2, RC ) - RETURN - ENDIF - IF ( ALLOCATED( sumOfCosSza ) ) THEN DEALLOCATE( sumOfCosSza, STAT=RC ) CALL GC_CheckVar( 'carbon_gases_mod.F90:sumOfCosSza', 2, RC ) @@ -1698,7 +1260,8 @@ SUBROUTINE InquireGlobalOHversion( Input_Opt, RC ) ' -> at InquireGlobalOHversion (in module GeosCore/carbon_gases_mod.F90)' ! Test if any Global OH option is on - optVal = HCO_GC_GetOption( "GLOBAL_OH", extNr=0 ) + ! NOTE: Update the option name with each major version!!! + optVal = HCO_GC_GetOption( "GLOBAL_OH_GC14", extNr=0 ) isOHon = ( To_UpperCase( TRIM( optVal ) ) == 'TRUE' ) ! Test for GEOS-Chem v5 OH @@ -1707,18 +1270,14 @@ SUBROUTINE InquireGlobalOHversion( Input_Opt, RC ) isOHv5On = ( To_UpperCase( TRIM( optVal ) ) == 'TRUE' ) ! Set a global variable to determine which OH to use - useGlobOH = isOHon - useGlobOHv5 = isOHv5on + useGlobOHbmk10yr = isOHon + useGlobOHv5 = isOHv5on IF ( Input_Opt%amIRoot ) THEN - IF ( useGlobOH ) THEN - IF ( useGlobOHv5 ) THEN - WRITE( 6, 100 ) 'GLOBAL_OH_GCv5' - ELSE - WRITE( 6, 100 ) 'GLOBAL_OH' - ENDIF - 100 FORMAT( 'Carbon_Gases: Using global OH oxidant field option: ', a ) - + IF ( useGlobOHv5 .or. useGlobOHbmk10yr ) THEN + IF ( useGlobOHbmk10yr ) WRITE( 6, 100 ) 'GLOBAL_OH_GC14' + IF ( useGlobOHv5 ) WRITE( 6, 100 ) 'GLOBAL_OH_GCv5' + 100 FORMAT( 'Carbon_Gases: Using global OH oxidant field option: ', a ) ELSE WRITE( 6, 110 ) 110 FORMAT( 'Carbon_Gases: Global OH is set to zero!' ) diff --git a/GeosCore/carbon_mod.F90 b/GeosCore/carbon_mod.F90 index cd3de0c23..d29c6d01d 100644 --- a/GeosCore/carbon_mod.F90 +++ b/GeosCore/carbon_mod.F90 @@ -16,7 +16,6 @@ MODULE CARBON_MOD ! ! !USES: ! - USE AEROSOL_MOD, ONLY : OCFPOA, OCFOPOA USE PhysConstants ! Physical constants USE PRECISION_MOD ! For GEOS-Chem Precisions @@ -261,11 +260,11 @@ MODULE CARBON_MOD ! Species ID flags INTEGER :: id_ASOG1, id_ASOG2, id_ASOG3, id_ASOA1, id_ASOA2 - INTEGER :: id_ASOA3, id_ASOAN, id_AW1, id_BCPI, id_BCPO - INTEGER :: id_BENZ, id_ECIL1, id_ECOB1, id_HO2 + INTEGER :: id_ASOA3, id_ASOAN, id_AW01, id_BCPI, id_BCPO + INTEGER :: id_BENZ, id_ECIL01, id_ECOB01, id_HO2 INTEGER :: id_ISOP, id_LIMO, id_MTPA - INTEGER :: id_MTPO, id_NAP, id_NK1, id_NH4, id_NO - INTEGER :: id_NO3, id_OCIL1, id_OCOB1, id_O3, id_OH + INTEGER :: id_MTPO, id_NAP, id_NK01, id_NH4, id_NO + INTEGER :: id_NO3, id_OCIL01, id_OCOB01, id_O3, id_OH INTEGER :: id_OCPO, id_OCPI, id_OPOA1, id_OPOG1, id_OPOA2 INTEGER :: id_OPOG2, id_POA1, id_POA2, id_POG1, id_POG2 INTEGER :: id_TOLU, id_TSOA0, id_TSOA1 @@ -322,12 +321,9 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & USE HCO_TYPES_MOD, ONLY : DiagnCont USE HCO_STATE_MOD, ONLY : HCO_GetHcoID #endif -#ifdef BPCH_DIAG - USE CMN_O3_MOD, ONLY : SAVEOA -#endif #ifdef TOMAS - USE TOMAS_MOD, ONLY : SOACOND, IBINS !(win, 1/25/10) - USE TOMAS_MOD, ONLY : CHECKMN !(sfarina) + USE TOMAS_MOD, ONLY : SOACOND + USE TOMAS_MOD, ONLY : CHECKMN USE PRESSURE_MOD, ONLY : GET_PCENTER #endif ! @@ -361,7 +357,6 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & LOGICAL, SAVE :: FIRSTCHEM = .TRUE. ! Scalars - LOGICAL :: prtDebug LOGICAL :: IT_IS_AN_AEROSOL_SIM LOGICAL :: LSOA LOGICAL :: LEMIS @@ -373,7 +368,7 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & #ifdef TOMAS INTEGER :: I, J - REAL*4 :: BOXVOL, TEMPTMS, PRES + REAL*4 :: BOXVOL, TEMPTMS, PRES, BOXMASS #endif ! Pointers @@ -406,9 +401,6 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & ! ( days )*(hrs/day)*(mins/hr)*(sec/min) SOAP_LIFETIME = 1.00_fp * 24.0_fp * 60.0_fp * 60.0_fp - ! Do we have to print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Point to chemical species vector containing concentrations Spc => State_Chm%Species @@ -456,7 +448,7 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & ENDIF ! Print to log for record - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN print*,'Number of SOA semivols (MAXSIMSV): ', MAXSIMSV print*,'This number should be 5 for semivol POA' ! hotp 5/20/10 ENDIF @@ -503,36 +495,52 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & ! Chemistry for hydrophobic BC IF ( id_BCPO > 0 ) THEN - CALL CHEM_BCPO( Input_Opt, State_Diag, State_Grid, & - Spc(id_BCPO)%Conc(:,:,:), RC ) - IF ( prtDebug ) THEN + CALL CHEM_BCPO( Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + spcId = id_BCPO, & + RC = RC ) + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMCARBON: a CHEM_BCPO' ) ENDIF ENDIF ! Chemistry for hydrophilic BC IF ( id_BCPI > 0 ) THEN - CALL CHEM_BCPI( Input_Opt, State_Diag, State_Grid, & - Spc(id_BCPI)%Conc(:,:,:), RC ) - IF ( prtDebug ) THEN + CALL CHEM_BCPI( Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + spcId = id_BCPI, & + RC = RC ) + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMCARBON: a CHEM_BCPI' ) ENDIF ENDIF ! Chemistry for hydrophobic OC (traditional POA only) IF ( id_OCPO > 0 ) THEN - CALL CHEM_OCPO( Input_Opt, State_Diag, State_Grid, & - Spc(id_OCPO)%Conc(:,:,:), RC ) - IF ( prtDebug ) THEN + CALL CHEM_OCPO( Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + spcId = id_OCPO, & + RC = RC ) + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMCARBON: a CHEM_OCPO' ) ENDIF ENDIF ! Chemistry for hydrophilic OC (traditional POA only) IF ( id_OCPI > 0 ) THEN - CALL CHEM_OCPI( Input_Opt, State_Diag, State_Grid, & - Spc(id_OCPI)%Conc(:,:,:), RC ) - IF ( prtDebug ) THEN + CALL CHEM_OCPI( Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + spcId = id_OCPI, & + RC = RC ) + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMCARBON: a CHEM_OCPI' ) ENDIF ENDIF @@ -788,17 +796,17 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & #ifdef TOMAS CALL CHECKMN( 0, 0, 0, Input_Opt, State_Chm, State_Grid, & - State_Met, 'CHECKMN from chemcarbon', RC) + State_Met, State_Diag,'CHECKMN from chemcarbon', RC) ! Chemistry (aging) for size-resolved EC and OC (win, 1/25/10) - IF ( id_ECIL1 > 0 .and. id_ECOB1 > 0 ) THEN - CALL AGING_CARB( id_ECIL1, id_ECOB1, State_Grid, State_Chm ) - IF ( prtDebug ) THEN + IF ( id_ECIL01 > 0 .and. id_ECOB01 > 0 ) THEN + CALL AGING_CARB( id_ECIL01, id_ECOB01, State_Grid, State_Chm ) + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMCARBO: AGING_CARB EC' ) ENDIF ENDIF - IF ( id_OCIL1 > 0 .and. id_OCOB1 > 0 ) THEN - CALL AGING_CARB( id_OCIL1, id_OCOB1, State_Grid, State_Chm ) - IF ( prtDebug ) THEN + IF ( id_OCIL01 > 0 .and. id_OCOB01 > 0 ) THEN + CALL AGING_CARB( id_OCIL01, id_OCOB01, State_Grid, State_Chm ) + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMCARBO: AGING_CARB OC' ) ENDIF ENDIF @@ -809,22 +817,23 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & #ifdef TOMAS CALL CHECKMN( 0, 0, 0, Input_Opt, State_Chm, State_Grid, & - State_Met, 'CHECKMN from chemcarbon', RC) + State_Met, State_Diag,'CHECKMN from chemcarbon', RC) !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, NEWSOA, BOXVOL, TEMPTMS, PRES ) + !$OMP PRIVATE( I, J, L, NEWSOA, BOXVOL, TEMPTMS, PRES, BOXMASS ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX NEWSOA = Spc(id_SOAP)%Conc(I,J,L) * (1.e+0_fp - DEXP(-DTCHEM/SOAP_LIFETIME)) BOXVOL = State_Met%AIRVOL(I,J,L) * 1.e6 !convert from m3 -> cm3 + BOXMASS = State_Met%AD(I,J,L) !kg TEMPTMS = State_Met%T(I,J,L) PRES = GET_PCENTER(I,j,L)*100.0 ! in Pa IF ( NEWSOA > 0.0e+0_fp ) THEN !sfarina16: SOAP -> size Resolved TOMAS SOA - CALL SOACOND( NEWSOA, I, J, L, BOXVOL, TEMPTMS, PRES, & - State_Chm, State_Grid, RC) + CALL SOACOND( NEWSOA, I, J, L, BOXVOL, TEMPTMS, PRES, BOXMASS, & + State_Chm, State_Grid, State_Diag, RC) ENDIF Spc(id_SOAS)%Conc(I,J,L) = Spc(id_SOAS)%Conc(I,J,L) + NEWSOA Spc(id_SOAP)%Conc(I,J,L) = Spc(id_SOAP)%Conc(I,J,L) - NEWSOA @@ -847,7 +856,7 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & !$OMP END PARALLEL DO #endif - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMCARBO: SIMPLIFIED SOA') ENDIF ENDIF @@ -869,7 +878,7 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & ! but only if it hasn't been done in EMISSCARBON IF ( LSOA .and. ( .not. LEMIS ) ) THEN CALL OHNO3TIME( State_Grid ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMCARB: a OHNO3TIME' ) ENDIF ENDIF @@ -882,15 +891,10 @@ SUBROUTINE CHEMCARBON( Input_Opt, State_Chm, State_Diag, & CALL SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & State_Grid, State_Met, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMCARBON: a SOA_CHEM' ) ENDIF -#ifdef BPCH_DIAG - ! NOTE: This is only needed for ND51, ND51b (bmy, 10/4/19) - ! Get total organic aerosol: - CALL OASAVE( SAVEOA, Input_Opt, State_Chm, State_Grid, State_Met, RC ) -#endif ENDIF END SUBROUTINE CHEMCARBON @@ -908,29 +912,33 @@ END SUBROUTINE CHEMCARBON !\\ ! !INTERFACE: ! - SUBROUTINE CHEM_BCPO( Input_Opt, State_Diag, State_Grid, TC, RC ) + SUBROUTINE CHEM_BCPO( Input_Opt, State_Chm, State_Diag, & + State_Grid, spcId, RC ) ! ! !USES: ! USE ErrCode_Mod USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState USE TIME_MOD, ONLY : GET_TS_CHEM ! ! !INPUT PARAMETERS: ! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + INTEGER, INTENT(IN) :: spcId ! BCPO species Id + ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diags State - REAL(fp), INTENT(INOUT) :: TC(State_Grid%NX,State_Grid%NY,State_Grid%NZ) ! H-phobic BC [kg] + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object ! ! !OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC ! Success? + INTEGER, INTENT(OUT) :: RC ! Success or failure? ! ! !REMARKS: ! Drydep is now applied in mixing_mod.F90. @@ -947,6 +955,9 @@ SUBROUTINE CHEM_BCPO( Input_Opt, State_Diag, State_Grid, TC, RC ) ! Scalars INTEGER :: I, J, L REAL(fp) :: DTCHEM, KBC, FREQ, TC0, CNEW, RKT + + ! Pointers + REAL(fp), POINTER :: TC(:,:,:) ! ! !DEFINED PARAMETERS: ! @@ -957,12 +968,13 @@ SUBROUTINE CHEM_BCPO( Input_Opt, State_Diag, State_Grid, TC, RC ) !================================================================= ! Assume success - RC = GC_SUCCESS + RC = GC_SUCCESS ! Initialize - KBC = 1.e+0_fp / ( 86400e+0_fp * BC_LIFE ) - DTCHEM = GET_TS_CHEM() - BCCONV = 0e+0_fp + KBC = 1.e+0_fp / ( 86400e+0_fp * BC_LIFE ) + DTCHEM = GET_TS_CHEM() + BCCONV = 0e+0_fp + TC => State_Chm%Species(spcId)%Conc !================================================================= ! For species with dry deposition, the loss rate of dry dep is @@ -1022,6 +1034,9 @@ SUBROUTINE CHEM_BCPO( Input_Opt, State_Diag, State_Grid, TC, RC ) ENDDO !$OMP END PARALLEL DO + ! Free pointer + TC => NULL() + END SUBROUTINE CHEM_BCPO !EOC !------------------------------------------------------------------------------ @@ -1037,27 +1052,33 @@ END SUBROUTINE CHEM_BCPO !\\ ! !INTERFACE: ! - SUBROUTINE CHEM_BCPI( Input_Opt, State_Diag, State_Grid, TC, RC ) + SUBROUTINE CHEM_BCPI( Input_Opt, State_Chm, State_Diag, & + State_Grid, spcId, RC ) ! ! !USES: ! USE ErrCode_Mod USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState + USE TIME_MOD, ONLY : GET_TS_CHEM ! ! !INPUT PARAMETERS: - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + INTEGER, INTENT(IN) :: spcId ! BCPI species Id + ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diags State - REAL(fp), INTENT(INOUT) :: TC(State_Grid%NX,State_Grid%NY,State_Grid%NZ) ! H-philic BC [kg] + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object ! ! !OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC ! Success? + INTEGER, INTENT(OUT) :: RC ! Success or failure? ! ! !REMARKS: ! Drydep is now applied in mixing_mod.F90. @@ -1075,12 +1096,16 @@ SUBROUTINE CHEM_BCPI( Input_Opt, State_Diag, State_Grid, TC, RC ) INTEGER :: I, J, L REAL(fp) :: L_FRAC, TC0, CNEW, CCV + ! Pointers + REAL(fp), POINTER :: TC(:,:,:) + !================================================================= ! CHEM_BCPI begins here! !================================================================= ! Assume success - RC = GC_SUCCESS + RC = GC_SUCCESS + TC => State_Chm%Species(spcId)%Conc !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & @@ -1115,6 +1140,8 @@ SUBROUTINE CHEM_BCPI( Input_Opt, State_Diag, State_Grid, TC, RC ) !================================================================= BCCONV = 0e+0_fp + TC => NULL() + END SUBROUTINE CHEM_BCPI !EOC !------------------------------------------------------------------------------ @@ -1130,31 +1157,33 @@ END SUBROUTINE CHEM_BCPI !\\ ! !INTERFACE: ! - SUBROUTINE CHEM_OCPO( Input_Opt, State_Diag, State_Grid, TC, RC ) + SUBROUTINE CHEM_OCPO( Input_Opt, State_Chm, State_Diag, & + State_Grid, spcId, RC ) ! ! !USES: ! USE ErrCode_Mod USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState USE TIME_MOD, ONLY : GET_TS_CHEM ! ! !INPUT PARAMETERS: ! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + INTEGER, INTENT(IN) :: spcId ! OCPO species Id + ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diags State - REAL(fp), INTENT(INOUT) :: TC(State_Grid%NX,State_Grid%NY,State_Grid%NZ) ! H-phobic OC [kg] + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object ! ! !OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC ! Success? -! -! !REMARKS: + INTEGER, INTENT(OUT) :: RC ! Success or failure? ! ! !REVISION HISTORY: ! 01 Apr 2004 - R. Park - Initial version @@ -1168,6 +1197,8 @@ SUBROUTINE CHEM_OCPO( Input_Opt, State_Diag, State_Grid, TC, RC ) ! Scalars INTEGER :: I, J, L REAL(fp) :: DTCHEM, KOC, TC0, CNEW, RKT, FREQ + + REAL(fp), POINTER :: TC(:,:,:) ! ! !DEFINED PARAMETERS: ! @@ -1178,12 +1209,13 @@ SUBROUTINE CHEM_OCPO( Input_Opt, State_Diag, State_Grid, TC, RC ) !================================================================= ! Assume success - RC = GC_SUCCESS + RC = GC_SUCCESS ! Initialize - KOC = 1.e+0_fp / ( 86400e+0_fp * OC_LIFE ) - DTCHEM = GET_TS_CHEM() - OCCONV = 0e+0_fp + KOC = 1.e+0_fp / ( 86400e+0_fp * OC_LIFE ) + DTCHEM = GET_TS_CHEM() + OCCONV = 0e+0_fp + TC => State_Chm%Species(spcId)%Conc !================================================================= ! For species with dry deposition, the loss rate of dry dep is @@ -1243,6 +1275,8 @@ SUBROUTINE CHEM_OCPO( Input_Opt, State_Diag, State_Grid, TC, RC ) ENDDO !$OMP END PARALLEL DO + TC => NULL() + END SUBROUTINE CHEM_OCPO !EOC !------------------------------------------------------------------------------ @@ -1258,30 +1292,33 @@ END SUBROUTINE CHEM_OCPO !\\ ! !INTERFACE: ! - SUBROUTINE CHEM_OCPI( Input_Opt, State_Diag, State_Grid, TC, RC ) + SUBROUTINE CHEM_OCPI( Input_Opt, State_Chm, State_Diag, & + State_Grid, spcId, RC ) ! ! !USES: ! USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE State_Diag_Mod, ONLY : DgnState - USE State_Grid_Mod, ONLY : GrdState + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState + USE State_Diag_Mod, ONLY : DgnState + USE State_Grid_Mod, ONLY : GrdState + USE TIME_MOD, ONLY : GET_TS_CHEM ! ! !INPUT PARAMETERS: ! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + INTEGER, INTENT(IN) :: spcId ! OCPO species Id + ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diags State - REAL(fp), INTENT(INOUT) :: TC(State_Grid%NX,State_Grid%NY,State_Grid%NZ) ! H-philic OC [kg] + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object ! ! !OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC ! Success? -! -! !REMARKS: + INTEGER, INTENT(OUT) :: RC ! Success or failure? ! ! !REVISION HISTORY: ! 01 Apr 2004 - R. Park - Initial version @@ -1295,13 +1332,17 @@ SUBROUTINE CHEM_OCPI( Input_Opt, State_Diag, State_Grid, TC, RC ) ! Scalars INTEGER :: I, J, L REAL(fp) :: TC0, CNEW, CCV + + ! Pointers + REAL(fp), POINTER :: TC(:,:,:) !================================================================= ! CHEM_OCPI begins here! !================================================================= ! Assume success - RC = GC_SUCCESS + RC = GC_SUCCESS + TC => State_Chm%Species(spcId)%Conc !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & @@ -1336,6 +1377,8 @@ SUBROUTINE CHEM_OCPI( Input_Opt, State_Diag, State_Grid, TC, RC ) !================================================================= OCCONV = 0e+0_fp + TC => NULL() + END SUBROUTINE CHEM_OCPI !EOC #ifdef TOMAS @@ -1361,7 +1404,6 @@ SUBROUTINE AGING_CARB( id_MIL, id_MOB, State_Grid, State_Chm ) USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE TIME_MOD, ONLY : GET_TS_CHEM ! [=] second - USE TOMAS_MOD, ONLY : IBINS ! ! !INPUT PARAMETERS: ! @@ -1395,7 +1437,7 @@ SUBROUTINE AGING_CARB( id_MIL, id_MOB, State_Grid, State_Chm ) DTCHEM = GET_TS_CHEM() / 3600e+0_fp / 24e+0_fp ![=] day - DO N = 1, IBINS + DO N = 1, State_Chm%nTomasBins Spc(id_MIL+N-1)%Conc(:,:,:) = Spc(id_MIL+N-1)%Conc(:,:,:) & + Spc(id_MOB+N-1)%Conc(:,:,:) & * (1.e+0_fp - DEXP(-DTCHEM/TAU_HYDRO)) @@ -1590,7 +1632,6 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & ! !LOCAL VARIABLES: ! LOGICAL, SAVE :: FIRST = .TRUE. - LOGICAL :: prtDebug INTEGER :: I, J, L, N ! no more NOx (hotp 5/22/10) INTEGER :: JHC, IPR!, NOX ! (dkh, 10/30/06) @@ -1645,16 +1686,13 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & ! Point to chemical species array [kg] Spc => State_Chm%Species - ! Do we have to print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Zero some diagnostics (hotp 5/17/10) GLOB_POGRXN = 0e+0_fp OAGINITSAVE = 0e+0_fp DELTASOGSAVE = 0e+0_fp ! Save initial OA+OG for diagnostic (hotp 5/17/10) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL SAVE_OAGINIT( State_Chm, State_Grid, State_Met ) ENDIF @@ -1666,7 +1704,7 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & CALL SOA_PARA_INIT( Input_Opt ) ! Diagnostic/debug info (hotp 5/22/10) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE(*,*) 'HC and SV IDs' print*, 'Monoterpenes and sesquiterpenes' print*, 'MTPA ', PARENTMTPA, IDSV(PARENTMTPA) @@ -1699,7 +1737,7 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & FIRST = .FALSE. ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN print*, ' MAX DARO2 = ', MAXLOC(GLOB_DARO2(:,:,:,1,1)), & MAXVAL(GLOB_DARO2(:,:,:,1,1)) ENDIF @@ -1709,7 +1747,7 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & GLOB_AM0_POA_0 = 0.e+0_fp ! added debug (hotp 8/24/09) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN IIDebug = Min(State_Grid%NX,20) JJDebug = Min(State_Grid%NY,33) print*, 'START SOA_CHEMISTRY' @@ -1753,20 +1791,35 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & ! add KRO2XXX to private (hotp 5/7/10) ! add JSV to private (hotp 5/13/10) ! remove NOX (hotp 5/22/10) - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, JHC, IPR, GM0, AM0 ) & + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& #ifdef APM - !$OMP PRIVATE( N, NTEMP) & + !$OMP PRIVATE( IFINORG, OCBIN_SUM, N, NTEMP )& #endif - !$OMP PRIVATE( VOL, FAC, RTEMP, KO3, KOH, KNO3, CAIR ) & - !$OMP PRIVATE( MPRODUCT, MSOA_OLD, VALUE, UPPER, LOWER, MNEW, TOL ) & - !$OMP PRIVATE( ORG_AER, ORG_GAS, KOM, MPOC ) & - !$OMP PRIVATE( KRO2NO, KRO2HO2, JSV ) + !$OMP PRIVATE( I, J, L, JHC, IPR, GM0, AM0 )& + !$OMP PRIVATE( VOL, FAC, RTEMP, KO3, KOH, KNO3, CAIR )& + !$OMP PRIVATE( VALUE, UPPER, LOWER, MNEW, TOL )& + !$OMP PRIVATE( ORG_AER, ORG_GAS, KOM, MPOC )& + !$OMP PRIVATE( KRO2NO, KRO2HO2, JSV ) DO L = 1, State_Grid%MaxChemLev DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Zero important variables at top of loop + AM0 = 0.0_fp + GM0 = 0.0_fp + KO3 = 0.0_fp + KOH = 0.0_fp + KNO3 = 0.0_fp + KRO2NO = 0.0_fp + KRO2HO2 = 0.0_fp + LOWER = 0.0_fp + MNEW = 0.0_fp + MPOC = 0.0_fp + TOL = 0.0_fp + UPPER = 0.0_fp + VALUE = 0.0_fp + ! Skip non-chemistry boxes IF ( .not. State_Met%InChemGrid(I,J,L) ) CYCLE @@ -1774,7 +1827,7 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & VOL = State_Met%AIRVOL(I,J,L) ! conversion factor from kg to ug/m3 - FAC = 1.e+9_fp / VOL + FAC = 1.0e+9_fp / VOL ! air conc. in kg/m3 CAIR = State_Met%AD(I,J,L) / VOL @@ -1785,7 +1838,7 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & ! Get SOA yield parameters ! ALPHA is a module variable now. (ccc, 2/2/10) ! add arguments for RO2+NO, RO2+HO2 rates (hotp 5/7/10) - CALL SOA_PARA( RTEMP, KO3, KOH, KNO3, KOM, & + CALL SOA_PARA( RTEMP, KO3, KOH, KNO3, KOM, & I, J, L, KRO2NO, KRO2HO2, State_Met ) ! Partition mass of gas & aerosol species @@ -1811,8 +1864,8 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & ! Initialize other arrays to be safe (dkh, 11/10/06) ! update dims (hotp 5/22/10) - ORG_AER(:,:) = 0e+0_fp - ORG_GAS(:,:) = 0e+0_fp + ORG_AER = 0.0_fp + ORG_GAS = 0.0_fp ! Individual SOA's: convert from [kg] to [ug/m3] or [kgC] to [ugC/m3] DO JSV = 1, MAXSIMSV @@ -1829,8 +1882,8 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & JHC = PARENTPOA JSV = IDSV(JHC) DO IPR = 1, NPROD(JSV) - ORG_GAS(IPR,JSV) = ORG_GAS(IPR,JSV) * OCFPOA(I,J) - ORG_AER(IPR,JSV) = ORG_AER(IPR,JSV) * OCFPOA(I,J) + ORG_GAS(IPR,JSV) = ORG_GAS(IPR,JSV) * State_Chm%AerMass%OCFPOA(I,J) + ORG_AER(IPR,JSV) = ORG_AER(IPR,JSV) * State_Chm%AerMass%OCFPOA(I,J) ENDDO ENDIF @@ -1841,8 +1894,8 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & JHC = PARENTOPOA JSV = IDSV(JHC) DO IPR = 1, NPROD(JSV) - ORG_GAS(IPR,JSV) = ORG_GAS(IPR,JSV) * OCFOPOA(I,J) - ORG_AER(IPR,JSV) = ORG_AER(IPR,JSV) * OCFOPOA(I,J) + ORG_GAS(IPR,JSV) = ORG_GAS(IPR,JSV) * State_Chm%AerMass%OCFOPOA(I,J) + ORG_AER(IPR,JSV) = ORG_AER(IPR,JSV) * State_Chm%AerMass%OCFOPOA(I,J) ENDDO ENDIF @@ -1866,90 +1919,100 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & ! (Colette Heald, 12/3/09) !----------------------------------------------------------- #ifdef APM - OCBIN_SUM = 0.e+0_fp + OCBIN_SUM = 0.0_fp DO N = 1, NBCOC - OCBIN_SUM = OCBIN_SUM + SUM(Spc(APMIDS%id_OCBIN1+N-1)%Conc(:,:,:)) + OCBIN_SUM = OCBIN_SUM + SUM( Spc(APMIDS%id_OCBIN1+N-1)%Conc ) ENDDO - MPOC = FAC * OCBIN_SUM + MPOC = FAC * OCBIN_SUM MPOC = MPOC * 2.1d0 IFINORG = 2 - IF(IFINORG.EQ.1) THEN !Yu+ consider inorg in the SOA partition - - IF ( APMIDS%id_SO4 > 0 .and. & - APMIDS%id_NH4 > 0 .and. & - APMIDS%id_NIT > 0 ) THEN - ! Then compute SOG condensation onto SO4, NH4, NIT aerosols - MPOC = MPOC + ( Spc(APMIDS%id_NH4)%Conc(I,J,L) + & - Spc(APMIDS%id_NIT)%Conc(I,J,L) ) * FAC - - IF(NSO4>=1)THEN - NTEMP=APMIDS%id_SO4BIN1-1 - DO N=(NTEMP+1),(NTEMP+NSO4) - MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC - ENDDO - ENDIF - - IF(NCTSO4>=1)THEN - NTEMP=APMIDS%id_CTSO4-1 - DO N=(NTEMP+1),(NTEMP+NCTSO4) - MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC - ENDDO - ENDIF - - IF(NCTBC>=1)THEN - NTEMP=APMIDS%id_CTBC-1 - DO N=(NTEMP+1),(NTEMP+NCTBC) - MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC - ENDDO - ENDIF - - IF(NCTOC>=1)THEN - NTEMP=APMIDS%id_CTOC-1 - DO N=(NTEMP+1),(NTEMP+NCTOC) - MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC - ENDDO - ENDIF - - IF(NCTSEA>=1)THEN - NTEMP=APMIDS%id_CTSEA-1 - DO N=(NTEMP+1),(NTEMP+NCTSEA) - MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC - ENDDO - ENDIF - - IF(NSEA>=1)THEN - NTEMP=APMIDS%id_SEABIN1-1 - DO N=(NTEMP+1),(NTEMP+16) ! SALTbin16 = 1 um - MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC - ENDDO - ENDIF - - !Add MSA - MPOC = MPOC + Spc(APMIDS%id_MSA)%Conc(I,J,L) * FAC - - ENDIF - - ELSEIF(IFINORG.EQ.2) THEN !Consider SV SOA partition on LV SOA - - MPOC = MPOC + FAC * (Spc(APMIDS%id_CTSO4)%Conc(I,J,L) + & !MSULFLV - Spc(APMIDS%id_CTBC+1)%Conc(I,J,L) + & !MBCLV - Spc(APMIDS%id_CTOC+1)%Conc(I,J,L) + & !MOCLV - Spc(APMIDS%id_CTDST+1)%Conc(I,J,L) + & !MDSTLV - Spc(APMIDS%id_CTSEA+1)%Conc(I,J,L)) !MSALTLV - - ELSE - - ! Compute SOG condensation onto OC aerosol - MPOC = ( Spc(id_OCPI)%Conc(I,J,L) + Spc(id_OCPO)%Conc(I,J,L) ) * FAC - MPOC = MPOC * 2.1d0 - - ENDIF +!############################################################################# +! NOTE: IFINORG is always 2 so the other IF branches never get done. +! Comment these out for now for better numerical efficiency +! -- Bob Yantosca (23 May 2023) +! IF(IFINORG.EQ.1) THEN !Yu+ consider inorg in the SOA partition +! +! IF ( APMIDS%id_SO4 > 0 .and. & +! APMIDS%id_NH4 > 0 .and. & +! APMIDS%id_NIT > 0 ) THEN +! ! Then compute SOG condensation onto SO4, NH4, NIT aerosols +! MPOC = MPOC + ( Spc(APMIDS%id_NH4)%Conc(I,J,L) + & +! Spc(APMIDS%id_NIT)%Conc(I,J,L) ) * FAC +! +! IF(NSO4>=1)THEN +! NTEMP=APMIDS%id_SO4BIN1-1 +! DO N=(NTEMP+1),(NTEMP+NSO4) +! MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC +! ENDDO +! ENDIF +! +! IF(NCTSO4>=1)THEN +! NTEMP=APMIDS%id_CTSO4-1 +! DO N=(NTEMP+1),(NTEMP+NCTSO4) +! MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC +! ENDDO +! ENDIF +! +! IF(NCTBC>=1)THEN +! NTEMP=APMIDS%id_CTBC-1 +! DO N=(NTEMP+1),(NTEMP+NCTBC) +! MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC +! ENDDO +! ENDIF +! +! IF(NCTOC>=1)THEN +! NTEMP=APMIDS%id_CTOC-1 +! DO N=(NTEMP+1),(NTEMP+NCTOC) +! MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC +! ENDDO +! ENDIF +! +! IF(NCTSEA>=1)THEN +! NTEMP=APMIDS%id_CTSEA-1 +! DO N=(NTEMP+1),(NTEMP+NCTSEA) +! MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC +! ENDDO +! ENDIF +! +! IF(NSEA>=1)THEN +! NTEMP=APMIDS%id_SEABIN1-1 +! DO N=(NTEMP+1),(NTEMP+16) ! SALTbin16 = 1 um +! MPOC = MPOC + Spc(N)%Conc(I,J,L) * FAC +! ENDDO +! ENDIF +! +! !Add MSA +! MPOC = MPOC + Spc(APMIDS%id_MSA)%Conc(I,J,L) * FAC +! +! ENDIF +! +! ELSEIF(IFINORG.EQ.2) THEN !Consider SV SOA partition on LV SOA +!############################################################################# + + MPOC = MPOC + FAC * (Spc(APMIDS%id_CTSO4 )%Conc(I,J,L) + & !MSULFLV + Spc(APMIDS%id_CTBC +1)%Conc(I,J,L) + & !MBCLV + Spc(APMIDS%id_CTOC +1)%Conc(I,J,L) + & !MOCLV + Spc(APMIDS%id_CTDST+1)%Conc(I,J,L) + & !MDSTLV + Spc(APMIDS%id_CTSEA+1)%Conc(I,J,L)) !MSALTLV + +!############################################################################# +! NOTE: IFINORG is always 2 so the other IF branches never get done. +! Comment these out for now for better numerical efficiency +! -- Bob Yantosca (23 May 2023) +! ELSE +! +! ! Compute SOG condensation onto OC aerosol +! MPOC = ( Spc(id_OCPI)%Conc(I,J,L) + Spc(id_OCPO)%Conc(I,J,L) ) * FAC +! MPOC = MPOC * 2.1d0 +! +! ENDIF +!############################################################################# #else ! Now treat either traditional POA or semivolatile POA (hotp 7/25/10) IF ( id_OCPI > 0 .and. id_OCPO > 0 ) THEN MPOC = ( Spc(id_OCPI)%Conc(I,J,L) + Spc(id_OCPO)%Conc(I,J,L) ) * FAC - MPOC = MPOC * OCFOPOA(I,J) + MPOC = MPOC * State_Chm%AerMass%OCFOPOA(I,J) ELSE ! semivolpoa2: MPOC is zero now (hotp 2/27/09) MPOC = 1e-30_fp @@ -2029,8 +2092,8 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & JHC = PARENTPOA JSV = IDSV(JHC) DO IPR = 1, NPROD(JSV) - ORG_GAS(IPR,JSV) = ORG_GAS(IPR,JSV) / OCFPOA(I,J) - ORG_AER(IPR,JSV) = ORG_AER(IPR,JSV) / OCFPOA(I,J) + ORG_GAS(IPR,JSV) = ORG_GAS(IPR,JSV) / State_Chm%AerMass%OCFPOA(I,J) + ORG_AER(IPR,JSV) = ORG_AER(IPR,JSV) / State_Chm%AerMass%OCFPOA(I,J) ENDDO ENDIF @@ -2040,8 +2103,8 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & JHC = PARENTOPOA JSV = IDSV(JHC) DO IPR = 1, NPROD(JSV) - ORG_GAS(IPR,JSV) = ORG_GAS(IPR,JSV) / OCFOPOA(I,J) - ORG_AER(IPR,JSV) = ORG_AER(IPR,JSV) / OCFOPOA(I,J) + ORG_GAS(IPR,JSV) = ORG_GAS(IPR,JSV) / State_Chm%AerMass%OCFOPOA(I,J) + ORG_AER(IPR,JSV) = ORG_AER(IPR,JSV) / State_Chm%AerMass%OCFOPOA(I,J) ENDDO ENDIF @@ -2093,7 +2156,7 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & ! Comment out for now. This produces a lot of excess debug output. ! (bmy, 5/5/20) !! Check equilibrium (hotp 5/18/10) - !IF ( prtDebug ) THEN + !IF ( Input_Opt%Verbose ) THEN ! ! IDSV for lumped arom/IVOC is hardwired (=3) (hotp 5/20/10) ! ! Low NOX (non-volatile) aromatic product is IPR=4 ! CALL CHECK_EQLB( I, J, L, KOM, FAC, MNEW, LOWER, TOL, & @@ -2108,13 +2171,13 @@ SUBROUTINE SOA_CHEMISTRY( Input_Opt, State_Chm, State_Diag, & !$OMP END PARALLEL DO ! Debug: check mass balance (hotp 5/18/10) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL CHECK_MB( Input_Opt,State_Chm, State_Grid, State_Met ) ENDIF !------------------------------------------------------------------------ !### Now only print when ND70 is turned on (bmy, 4/21/10) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN IF ( Input_Opt%LSVPOA ) THEN ! 10/12/09 debug @@ -3254,12 +3317,12 @@ SUBROUTINE SOA_PARA_INIT( Input_Opt ) KOM_REF(2,IDSV(PARENTOPOA)) = KOM_REF(2,IDSV(PARENTPOA)) * 100e+0_fp ! debug print checks (hotp 7/22/09) - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN print*, 'Semivolatile POA settings:---------------' print*, ' ALPHA: ', ALPHA(1,1,9), ALPHA(1,2,9) ! OCFPOA and OCFOPOA are now 2D arrays - !print*, ' POA OA/OC ratio: ', OCFPOA(I,J) - !print*, ' OPOA OA/OC ratio: ', OCFOPOA(I,J) + !print*, ' POA OA/OC ratio: ', State_Chm%AerMass%OCFPOA(I,J) + !print*, ' OPOA OA/OC ratio: ', State_Chm%AerMass%OCFOPOA(I,J) print*, ' LSVPOA is set to: ', Input_Opt%LSVPOA print*, 'CHECK MHC, NOX, PR', MHC, MNOX, MPROD @@ -4269,19 +4332,13 @@ SUBROUTINE EMITSGC( Input_Opt, State_Chm, State_Grid, State_Met, & ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD ! ND59 - USE DIAG_MOD, ONLY : AD59_ECIL, AD59_ECOB - USE DIAG_MOD, ONLY : AD59_OCIL, AD59_OCOB - USE DIAG_MOD, ONLY : AD59_NUMB -#endif USE ERROR_MOD, ONLY : IT_IS_NAN USE Input_Opt_Mod, ONLY : OptInput USE Species_Mod, ONLY : SpcConc USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState - USE TOMAS_MOD, ONLY : IBINS, AVGMASS, ICOMP, IDIAG + USE TOMAS_MOD, ONLY : AVGMASS, ICOMP, IDIAG USE TOMAS_MOD, ONLY : SRTECIL, SRTECOB, SRTOCIL USE TOMAS_MOD, ONLY : SRTOCOB, SRTSO4, SRTNH4 USE TOMAS_MOD, ONLY : SRTH2O, MNFIX @@ -4289,17 +4346,17 @@ SUBROUTINE EMITSGC( Input_Opt, State_Chm, State_Grid, State_Met, & USE TOMAS_MOD, ONLY : SGCTSCALE USE TOMAS_MOD, ONLY : NH4BULKTOBIN ! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: CTYPE ! 1 = EC and 2 = OC TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object - REAL(fp), INTENT(IN) :: EMISMASS(State_Grid%NX,State_Grid%NY,IBINS) -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + REAL(fp), INTENT(IN) :: EMISMASS(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins) ! ! !REVISION HISTORY: ! 06 Oct 2007 - W. Trivitayanurak - Initial version @@ -4310,23 +4367,23 @@ SUBROUTINE EMITSGC( Input_Opt, State_Chm, State_Grid, State_Met, & ! ! !LOCAL VARIABLES: ! - REAL(fp) :: NDISTINIT(IBINS) - REAL(fp) :: NDISTFINAL(IBINS) - REAL(fp) :: MADDFINAL(IBINS) - REAL(fp) :: NDIST(IBINS) - REAL(fp) :: MDIST(IBINS,ICOMP) - REAL(fp) :: NDIST2(IBINS) - REAL(fp) :: MDIST2(IBINS,ICOMP) - REAL*4 :: BOXVOL, TEMP, PRES - INTEGER :: I, J, L, K, C, N, PBL_MAX + REAL(fp) :: NDISTINIT(State_Chm%nTomasBins) + REAL(fp) :: NDISTFINAL(State_Chm%nTomasBins) + REAL(fp) :: MADDFINAL(State_Chm%nTomasBins) + REAL(fp) :: NDIST(State_Chm%nTomasBins) + REAL(fp) :: MDIST(State_Chm%nTomasBins,ICOMP) + REAL(fp) :: NDIST2(State_Chm%nTomasBins) + REAL(fp) :: MDIST2(State_Chm%nTomasBins,ICOMP) + REAL*4 :: BOXVOL, TEMP, PRES, BOXMASS + INTEGER :: I, J, L, K, C, N, PBL_MAX, IBINS REAL(fp) :: F_OF_PBL LOGICAL :: ERRORSWITCH, PDBUG - REAL*4 :: N0(State_Grid%NZ,IBINS) - REAL*4 :: N1(State_Grid%NZ,IBINS) - REAL*4 :: MIL0(State_Grid%NZ,IBINS) - REAL*4 :: MIL1(State_Grid%NZ,IBINS) - REAL*4 :: MOB0(State_Grid%NZ,IBINS) - REAL*4 :: MOB1(State_Grid%NZ,IBINS) + REAL*4 :: N0(State_Grid%NZ,State_Chm%nTomasBins) + REAL*4 :: N1(State_Grid%NZ,State_Chm%nTomasBins) + REAL*4 :: MIL0(State_Grid%NZ,State_Chm%nTomasBins) + REAL*4 :: MIL1(State_Grid%NZ,State_Chm%nTomasBins) + REAL*4 :: MOB0(State_Grid%NZ,State_Chm%nTomasBins) + REAL*4 :: MOB1(State_Grid%NZ,State_Chm%nTomasBins) INTEGER :: ii, jj, ll LOGICAL :: dbg = .false. DATA ii, jj, ll /53, 29, 8 / @@ -4350,18 +4407,21 @@ SUBROUTINE EMITSGC( Input_Opt, State_Chm, State_Grid, State_Met, & ! Maximum extent of PBL [model levels] PBL_MAX = State_Met%PBL_MAX_L + ! Number of bins + IBINS = State_Chm%nTomasBins + !temp debug if( sum(emismass(ii,jj,:)) > 0e+0_fp) dbg = .true. if( dbg) then print *,'===== Entering EMITSGC ===== at',ii,jj,ll print *,'Nk' do N = 1, ibins - print *,Spc(id_NK1+N-1)%conc(ii,jj,ll) + print *,Spc(id_NK01+N-1)%conc(ii,jj,ll) enddo print *,'Mk' do k=1,icomp-idiag print *,'comp',k do N = 1, IBINS - print *,Spc(id_NK1+k*IBINS+N-1)%Conc(ii,jj,ll) + print *,Spc(id_NK01+k*IBINS+N-1)%Conc(ii,jj,ll) enddo enddo print *,'EMISSION' @@ -4379,15 +4439,15 @@ SUBROUTINE EMITSGC( Input_Opt, State_Chm, State_Grid, State_Met, & DO K = 1, IBINS NDISTINIT(K) = EMISMASS(I,J,K) * F_OF_PBL / AVGMASS(K) - NDIST(K) = Spc(id_NK1+K-1)%Conc(I,J,L) + NDIST(K) = Spc(id_NK01+K-1)%Conc(I,J,L) DO C = 1, ICOMP-IDIAG - MDIST(K,C) = Spc(id_NK1+IBINS*C+K-1)%Conc(I,J,L) + MDIST(K,C) = Spc(id_NK01+IBINS*C+K-1)%Conc(I,J,L) IF( IT_IS_NAN( MDIST(K,C) ) ) THEN PRINT *,'+++++++ Found NaN in EMITSGC ++++++++' PRINT *,'Location (I,J,L):',I,J,L,'Bin',K,'comp',C ENDIF ENDDO - MDIST(K,SRTH2O) = Spc(id_AW1-1+K)%Conc(I,J,L) + MDIST(K,SRTH2O) = Spc(id_AW01-1+K)%Conc(I,J,L) NDISTFINAL(K) = 0e+0_fp MADDFINAL(K) = 0e+0_fp ENDDO @@ -4409,6 +4469,7 @@ SUBROUTINE EMITSGC( Input_Opt, State_Chm, State_Grid, State_Met, & ENDIF BOXVOL = State_Met%AIRVOL(I,J,L) * 1.e6 !convert from m3 -> cm3 + BOXMASS = State_Met%AD(I,J,L) !kg TEMP = State_Met%T(I,J,L) PRES = State_Met%PMID(i,j,l)*100.0 ! in Pa @@ -4425,12 +4486,12 @@ SUBROUTINE EMITSGC( Input_Opt, State_Chm, State_Grid, State_Met, & IF ( PDBUG ) THEN PRINT *,'Found error in SUBGRIDCOAG at', I,J,L do k=N,ibins - PRINT *,'Nk',Spc(id_NK1+N-1)%Conc(I,J,L) + PRINT *,'Nk',Spc(id_NK01+N-1)%Conc(I,J,L) enddo do k=1,8 print *,'Mk comp',k do N=1,IBINS - print *,Spc(id_NK1+N-1)%Conc(I,J,L) + print *,Spc(id_NK01+N-1)%Conc(I,J,L) enddo enddo ENDIF @@ -4485,11 +4546,11 @@ SUBROUTINE EMITSGC( Input_Opt, State_Chm, State_Grid, State_Met, & 'after SUBGRIDCOAG at ',I,J,L DO K = 1, IBINS - Spc(id_NK1-1+K)%Conc(I,J,L) = NDIST2(K) + Spc(id_NK01-1+K)%Conc(I,J,L) = NDIST2(K) DO C = 1, ICOMP-IDIAG - Spc(id_NK1+K-1+C*IBINS)%Conc(I,J,L) = MDIST2(K,C) + Spc(id_NK01+K-1+C*IBINS)%Conc(I,J,L) = MDIST2(K,C) ENDDO - Spc(id_AW1-1+K)%Conc(I,J,L) = MDIST2(K,SRTH2O) + Spc(id_AW01-1+K)%Conc(I,J,L) = MDIST2(K,SRTH2O) ENDDO ! Save final info for diagnostic @@ -4504,33 +4565,6 @@ SUBROUTINE EMITSGC( Input_Opt, State_Chm, State_Grid, State_Met, & ENDDO ! L loop - !======================================================================= - ! ND59 Diagnostic: Size-resolved primary emission in - ! [kg/box/timestep] and the corresponding - ! number emission [no./box/timestep] - !======================================================================= -#ifdef BPCH_DIAG - IF ( ND59 > 0 ) THEN - DO L = 1, PBL_MAX - DO K = 1, IBINS - SELECT CASE (CTYPE) - CASE (1) - AD59_ECIL(I,J,1,K) = AD59_ECIL(I,J,1,K) + & - ( MIL1(L,K) - MIL0(L,K) ) - AD59_ECOB(I,J,1,K) = AD59_ECOB(I,J,1,K) + & - ( MOB1(L,K) - MOB0(L,K) ) - CASE (2) - AD59_OCIL(I,J,1,K) = AD59_OCIL(I,J,1,K) + & - ( MIL1(L,K) - MIL0(L,K) ) - AD59_OCOB(I,J,1,K) = AD59_OCOB(I,J,1,K) + & - ( MOB1(L,K) - MOB0(L,K) ) - END SELECT - AD59_NUMB(I,J,1,K) = AD59_NUMB(I,J,1,K) + ( N1(L,K) - N0(L,K) ) - ENDDO - ENDDO - ENDIF -#endif - 100 CONTINUE ENDDO ! I loop @@ -4556,18 +4590,19 @@ END SUBROUTINE EMITSGC !\\ ! !INTERFACE: ! - FUNCTION SCALECARB( State_Grid, BULKEMIS, STYPE, CTYPE ) & + FUNCTION SCALECARB( State_Chm, State_Grid, BULKEMIS, STYPE, CTYPE ) & RESULT( tomasdist ) ! ! !USES: ! + USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState - USE TOMAS_MOD, ONLY : IBINS USE TOMAS_MOD, ONLY : OCSCALE30, ECSCALE30 USE TOMAS_MOD, ONLY : OCSCALE100, ECSCALE100 ! ! !INPUT PARAMETERS: ! + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object REAL(fp), INTENT(IN) :: BULKEMIS(State_Grid%NX,State_Grid%NY) INTEGER, INTENT(IN) :: STYPE @@ -4575,7 +4610,7 @@ FUNCTION SCALECARB( State_Grid, BULKEMIS, STYPE, CTYPE ) & ! ! !RETURN VALUE: ! - REAL(fp) :: tomasdist(State_Grid%NX, State_Grid%NY, IBINS) + REAL(fp) :: tomasdist(State_Grid%NX, State_Grid%NY, State_Chm%nTomasBins) ! ! !REMARKS: ! STYPE (source type): 1 = Fossil fuel @@ -4600,7 +4635,7 @@ FUNCTION SCALECARB( State_Grid, BULKEMIS, STYPE, CTYPE ) & ! !LOCAL VARIABLES: ! INTEGER :: I, J, K - REAL(fp) :: scalefactor(IBINS) + REAL(fp) :: scalefactor(State_Chm%nTomasBins) scalefactor = 0.0d0 @@ -4721,9 +4756,6 @@ SUBROUTINE EMISSCARBON( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Assume success RC = GC_SUCCESS - ! Initialize - POAEMISS = 0e+0_fp - ! Check if using complex SOA scheme IF ( Input_Opt%LSOA ) THEN @@ -4763,6 +4795,9 @@ SUBROUTINE EMISSCARBON( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Nothing to do if none of the species are defined IF ( SESQID <= 0 .AND. HCOPOG1 <= 0 .AND. HCOPOG2 <=0 ) RETURN + ! Initialize + POAEMISS = 0.0_fp + ! Maximum extent of PBL [model levels] PBL_MAX = State_Met%PBL_MAX_L @@ -4841,23 +4876,26 @@ END SUBROUTINE EMISSCARBON !\\ ! !INTERFACE: ! - SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) + SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, & + State_Diag, RC ) ! ! !USES: ! USE ErrCode_Mod USE ERROR_MOD USE HCO_Utilities_GC_Mod, ONLY : HCO_GC_EvalFld + USE HCO_Utilities_GC_Mod, ONLY : HCO_GC_GetDiagn USE HCO_State_GC_Mod, ONLY : HcoState, ExtState - USE HCO_Interface_Common, ONLY : GetHcoDiagn! TOMAS: HEMCO diags (not IMGrid ready) USE HCO_EMISLIST_MOD, ONLY : HCO_GetPtr !(ramnarine 12/27/2018) USE Input_Opt_Mod, ONLY : OptInput USE State_Chm_Mod, ONLY : ChmState + USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod USE PRESSURE_MOD, ONLY : GET_PCENTER - USE TOMAS_MOD, ONLY : IBINS, AVGMASS, SOACOND + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE TOMAS_MOD, ONLY : AVGMASS, SOACOND USE TOMAS_MOD, ONLY : ICOMP, IDIAG USE TOMAS_MOD, ONLY : CHECKMN ! @@ -4870,6 +4908,7 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! !INPUT/OUTPUT PARAMETERS: ! TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Chemistry State object ! ! !OUTPUT PARAMETERS: ! @@ -4890,26 +4929,26 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) REAL(fp) :: DTSRCE, AREA_M2 REAL(fp) :: CO_ANTH_TOTAL REAL*4 :: BOXVOL ! calculated from State_Met + REAL*4 :: BOXMASS ! calculated from State_Met REAL*4 :: TEMPTMS ! calculated from State_Met REAL*4 :: PRES ! calculated from State_Met REAL(fp) :: OC2OM = 1.8d0 - LOGICAL :: SGCOAG = .True. + LOGICAL :: SGCOAG = .FALSE. ! bc,jrp turn off subgrid coag 18/12/23 INTEGER :: L, K, EMTYPE INTEGER :: ii=53, jj=29 - CHARACTER(LEN=63) :: OrigUnit + INTEGER :: previous_units LOGICAL, SAVE :: FIRST = .TRUE. !(ramnarine 12/27/2018) LOGICAL, SAVE :: USE_FIRE_NUM = .FALSE. LOGICAL :: FND !(ramnarine 1/2/2019) - LOGICAL :: prtDebug ! Arrays REAL(fp) :: XTRA_ORG_A(State_Grid%NX,State_Grid%NY) - REAL(fp) :: BCSRC(State_Grid%NX,State_Grid%NY,IBINS,2) - REAL(fp) :: OCSRC(State_Grid%NX,State_Grid%NY,IBINS,2) - REAL(fp) :: NUMBSRC(State_Grid%NX,State_Grid%NY,IBINS) + REAL(fp) :: BCSRC(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2) + REAL(fp) :: OCSRC(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2) + REAL(fp) :: NUMBSRC(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins) REAL(fp) :: AREA(State_Grid%NX, State_Grid%NY) - REAL(fp) :: TMP_MASS(State_Grid%NX,State_Grid%NY,IBINS) - REAL(fp) :: SIZE_DIST(State_Grid%NX,State_Grid%NY,IBINS,4) !(ramnarine 12/27/2018) + REAL(fp) :: TMP_MASS(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins) + REAL(fp) :: SIZE_DIST(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,4) !(ramnarine 12/27/2018) REAL(fp) :: FIRE_NUM(State_Grid%NX,State_Grid%NY) ! Strings @@ -4929,9 +4968,6 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Assume success RC = GC_SUCCESS - ! Print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Get nested-grid offsets I0 = State_Grid%XMinOffset J0 = State_Grid%YMinOffset @@ -4946,9 +4982,9 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) CALL ERROR_STOP ( 'HcoState not defined!', LOC ) ENDIF - IF ( .NOT. (id_NK1 > 0 .AND. id_ECIL1 > 0 .AND. & - id_ECOB1 > 0 .AND. id_OCIL1 > 0 .AND. & - id_OCOB1 > 1 ) ) THEN + IF ( .NOT. (id_NK01 > 0 .AND. id_ECIL01 > 0 .AND. & + id_ECOB01 > 0 .AND. id_OCIL01 > 0 .AND. & + id_OCOB01 > 1 ) ) THEN CALL ERROR_STOP ( 'TOMAS Species not defined!', LOC ) ENDIF @@ -4958,17 +4994,34 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Grid box aarea AREA = HcoState%Grid%AREA_M2%Val(:,:) - ! Convert concentration units to [kg] for TOMAS. This will be - ! removed once TOMAS uses mixing ratio instead of mass - ! as species units (ewl, 9/11/15) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg', RC, OrigUnit=OrigUnit ) + ! Halt HEMCO timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "HEMCO", RC ) + ENDIF + + ! NOTE: For TOMAS, convert all species units, in order not to + ! break internal unit conversions (Bob Yantosca, 11 Apr 2024) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = KG_SPECIES, & + previous_units = previous_units, & + RC = RC ) + + ! Trap errors IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error( 'Unit conversion error', RC, & 'Start of EMISSCARBONTOMAS in carbon_mod.F90' ) RETURN ENDIF + ! Start HEMCO timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "HEMCO", RC ) + ENDIF + ! ---------FOSSIL FUEL EMISSIONS IN 3d--------------------------- DO EMTYPE = 1,4 SELECT CASE (EMTYPE) @@ -4986,8 +5039,8 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) emis2d => OCPO_ANTH_BULK END SELECT - CALL GetHcoDiagn( HcoState, ExtState, DgnName, .FALSE., & - ERR, Ptr3D=Ptr3D ) + CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, & + .FALSE., ERR, Ptr3D=Ptr3D ) IF ( .NOT. ASSOCIATED(Ptr3D) ) THEN CALL GC_WARNING( 'HEMCO diagnostic not found: '//TRIM(DgnName), & ERR, THISLOC=LOC ) @@ -5007,15 +5060,16 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ENDDO ! ---- SCALE INTO TOMAS BINS --------------------------- - BCFF(:,:,:,1) = SCALECARB( State_Grid, BCPI_ANTH_BULK(:,:), 1, 1 ) - BCFF(:,:,:,2) = SCALECARB( State_Grid, BCPO_ANTH_BULK(:,:), 1, 1 ) - OCFF(:,:,:,1) = SCALECARB( State_Grid, OCPI_ANTH_BULK(:,:), 1, 2 ) * OC2OM - OCFF(:,:,:,2) = SCALECARB( State_Grid, OCPO_ANTH_BULK(:,:), 1, 2 ) * OC2OM + BCFF(:,:,:,1) = SCALECARB( State_Chm, State_Grid, BCPI_ANTH_BULK(:,:), 1, 1 ) + BCFF(:,:,:,2) = SCALECARB( State_Chm, State_Grid, BCPO_ANTH_BULK(:,:), 1, 1 ) + OCFF(:,:,:,1) = SCALECARB( State_Chm, State_Grid, OCPI_ANTH_BULK(:,:), 1, 2 ) * OC2OM + OCFF(:,:,:,2) = SCALECARB( State_Chm, State_Grid, OCPO_ANTH_BULK(:,:), 1, 2 ) * OC2OM !end 3d emis DgnName = 'BCPI_BB' - CALL GetHcoDiagn( HcoState, ExtState, DgnName, .FALSE., ERR, Ptr2D=Ptr2D ) + CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, & + StopIfNotFound=.FALSE., RC=RC, Ptr2D=Ptr2D ) IF ( .NOT. ASSOCIATED(Ptr2D) ) THEN CALL GC_WARNING('HEMCO diagnostic not found: '//TRIM(DgnName), & ERR, THISLOC=LOC) @@ -5025,7 +5079,8 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) Ptr2D => NULL() DgnName = 'BCPO_BB' - CALL GetHcoDiagn( HcoState, ExtState, DgnName, .FALSE., ERR, Ptr2D=Ptr2D ) + CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, & + StopIfNotFound=.FALSE., RC=RC, Ptr2D=Ptr2D ) IF ( .NOT. ASSOCIATED(Ptr2D) ) THEN CALL GC_WARNING('HEMCO diagnostic not found: '//TRIM(DgnName), & ERR, THISLOC=LOC) @@ -5035,7 +5090,8 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) Ptr2D => NULL() DgnName = 'OCPI_BB' - CALL GetHcoDiagn( HcoState, ExtState, DgnName, .FALSE., ERR, Ptr2D=Ptr2D ) + CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, & + StopIfNotFound=.FALSE., RC=RC, Ptr2D=Ptr2D ) IF ( .NOT. ASSOCIATED(Ptr2D) ) THEN CALL GC_WARNING('HEMCO diagnostic not found: '//TRIM(DgnName), & ERR, THISLOC=LOC) @@ -5045,7 +5101,8 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) Ptr2D => NULL() DgnName = 'OCPO_BB' - CALL GetHcoDiagn( HcoState, ExtState, DgnName, .FALSE., ERR, Ptr2D=Ptr2D ) + CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, & + StopIfNotFound=.FALSE., RC=RC, Ptr2D=Ptr2D ) IF ( .NOT. ASSOCIATED(Ptr2D) ) THEN CALL GC_WARNING('HEMCO diagnostic not found: '//TRIM(DgnName), & ERR, THISLOC=LOC) @@ -5090,7 +5147,7 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! ---- Calling BB subgrid coag parameterization -------- ! (ramnarine 12/27/2018) - SIZE_DIST = SAKAMOTO_SIZE( State_Grid, State_Met, FIRE_NUM, & + SIZE_DIST = SAKAMOTO_SIZE( State_Chm, State_Grid, State_Met, FIRE_NUM, & OCPI_BIOB_BULK, BCPI_BIOB_BULK, & OCPO_BIOB_BULK, BCPO_BIOB_BULK, & AREA ) @@ -5104,17 +5161,17 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) !2d bioburn IF ( USE_FIRE_NUM ) THEN - DO K = 1, IBINS !ramnarine 12/27/2018 + DO K = 1, State_Chm%nTomasBins !ramnarine 12/27/2018 BCBB(:,:,K,1) = SIZE_DIST(:,:,K,1) * AREA(:, :) * DTSRCE BCBB(:,:,K,2) = SIZE_DIST(:,:,K,2) * AREA(:, :) * DTSRCE OCBB(:,:,K,1) = SIZE_DIST(:,:,K,3) * AREA(:, :) * DTSRCE * OC2OM OCBB(:,:,K,2) = SIZE_DIST(:,:,K,4) * AREA(:, :) * DTSRCE * OC2OM ENDDO ELSE - BCBB(:,:,:,1) = SCALECARB(State_Grid, BCPI_BIOB_BULK(:,:), 3,1) - BCBB(:,:,:,2) = SCALECARB(State_Grid, BCPO_BIOB_BULK(:,:), 3,1) - OCBB(:,:,:,1) = SCALECARB(State_Grid, OCPI_BIOB_BULK(:,:), 3,2) * OC2OM - OCBB(:,:,:,2) = SCALECARB(State_Grid, OCPO_BIOB_BULK(:,:), 3,2) * OC2OM + BCBB(:,:,:,1) = SCALECARB(State_Chm, State_Grid, BCPI_BIOB_BULK(:,:), 3,1) + BCBB(:,:,:,2) = SCALECARB(State_Chm, State_Grid, BCPO_BIOB_BULK(:,:), 3,1) + OCBB(:,:,:,1) = SCALECARB(State_Chm, State_Grid, OCPI_BIOB_BULK(:,:), 3,2) * OC2OM + OCBB(:,:,:,2) = SCALECARB(State_Chm, State_Grid, OCPO_BIOB_BULK(:,:), 3,2) * OC2OM ENDIF ! Add into BCSRC and OCSRC @@ -5137,7 +5194,7 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) !----------------------------------------- ! Convert the total mass emission to number emisison [No.] - DO K = 1, IBINS + DO K = 1, State_Chm%nTomasBins NUMBSRC(:,:,K) = ( BCSRC(:,:,K,1) + BCSRC(:,:,K,2) + & OCSRC(:,:,K,1) + OCSRC(:,:,K,2) )/ AVGMASS(K) ENDDO @@ -5150,12 +5207,13 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% !%%%% NOTE: BIOGENIC_SOAS is defined in hcoi_gc_diagn_mod.F90, %%%% - !%%%% which is only called if BPCH_DIAG=y.(bmy, 8/7/18) %%%% + !%%%% (bmy, 8/7/18) %%%% !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! READ IN directly emitted SOAS (sfarina / jkodros) Ptr2D => NULL() DgnName = 'BIOGENIC_SOAS' - CALL GetHcoDiagn( HcoState, ExtState, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) + CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, & + StopIfNotFound=.FALSE., RC=RC, Ptr2D=Ptr2D ) IF ( .NOT. ASSOCIATED(Ptr2D) ) THEN CALL GC_Error('Not found: '//TRIM(DgnName), RC, THISLOC=LOC) RETURN @@ -5166,33 +5224,52 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, BOXVOL, TEMPTMS, PRES ) + !$OMP PRIVATE( I, J, BOXVOL, TEMPTMS, PRES, BOXMASS ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX CALL CHECKMN( I, J, 1, Input_Opt, State_Chm, State_Grid, & - State_Met, 'CHECKMN from emisscarbontomas', RC) + State_Met, State_Diag,'CHECKMN from emisscarbontomas', RC) IF ( TERP_ORGC(I,J) > 0.d0 ) THEN BOXVOL = State_Met%AIRVOL(I,J,1) * 1.e6 !convert from m3 -> cm3 + BOXMASS = State_Met%AD(I,J,1) ! kg TEMPTMS = State_Met%T(I,J,1) PRES = GET_PCENTER(I,J,1)*100.0 ! in Pa - CALL SOACOND( TERP_ORGC(I,J), I, J, 1, BOXVOL, TEMPTMS, PRES, & - State_Chm, State_Grid, RC ) + CALL SOACOND( TERP_ORGC(I,J), I, J, 1, BOXVOL, TEMPTMS, PRES, BOXMASS,& + State_Chm, State_Grid, State_Diag, RC ) END IF END DO END DO !$OMP END PARALLEL DO - IF ( prtDebug ) CALL DEBUG_MSG( '### EMISCARB: after SOACOND (BIOG) ' ) + IF ( Input_Opt%Verbose ) CALL DEBUG_MSG( '### EMISCARB: after SOACOND (BIOG) ' ) - ! Convert concentrations back to original units (ewl, 9/11/15) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + ! Halt HEMCO timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "HEMCO", RC ) + ENDIF + + ! NOTE: For TOMAS, convert all species units, in order not to + ! break internal unit conversions (Bob Yantosca, 11 Apr 2024) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) + + ! Trap errors IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'End of EMISSCARBONTOMAS in carbon_mod.F90') RETURN ENDIF + ! Start HEMCO timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "HEMCO", RC ) + ENDIF + END SUBROUTINE EMISSCARBONTOMAS !EOC !------------------------------------------------------------------------------ @@ -5219,20 +5296,19 @@ SUBROUTINE EMITHIGH2( Input_Opt, State_Chm, State_Grid, State_Met, & USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState - USE TOMAS_MOD, ONLY : IBINS +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object ! ! !INPUT PARAMETERS: ! TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State - REAL(fp), INTENT(IN) :: BCSRC(State_Grid%NX,State_Grid%NY,IBINS,2) ! Total BC [kg] - REAL(fp), INTENT(IN) :: OCSRC(State_Grid%NX,State_Grid%NY,IBINS,2) ! Total OC [kg] - REAL(fp), INTENT(IN) :: NUMBSRC(State_Grid%NX,State_Grid%NY,IBINS) -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + REAL(fp), INTENT(IN) :: BCSRC(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2) ! Total BC [kg] + REAL(fp), INTENT(IN) :: OCSRC(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2) ! Total OC [kg] + REAL(fp), INTENT(IN) :: NUMBSRC(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins) ! ! !REVISION HISTORY: ! 04 Sep 2007 - W. Trivitayanurak - Initial version @@ -5274,29 +5350,29 @@ SUBROUTINE EMITHIGH2( Input_Opt, State_Chm, State_Grid, State_Met, & DO L = 1, PBL_MAX DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - DO K = 1, IBINS + DO K = 1, State_Chm%nTomasBins ! Fraction of PBL spanned by grid box (I,J,L) [unitless] F_OF_PBL = State_Met%F_OF_PBL(I,J,L) ! Hydrophilic ELEMENTAL CARBON - Spc(id_ECIL1-1+K)%Conc(I,J,L) = Spc(id_ECIL1-1+K)%Conc(I,J,L) + & + Spc(id_ECIL01-1+K)%Conc(I,J,L) = Spc(id_ECIL01-1+K)%Conc(I,J,L) + & ( F_OF_PBL * BCSRC(I,J,K,1) ) ! Hydrophobic ELEMENTAL CARBON - Spc(id_ECOB1-1+K)%Conc(I,J,L) = Spc(id_ECOB1-1+K)%Conc(I,J,L) + & + Spc(id_ECOB01-1+K)%Conc(I,J,L) = Spc(id_ECOB01-1+K)%Conc(I,J,L) + & ( F_OF_PBL * BCSRC(I,J,K,2) ) ! Hydrophilic ORGANIC CARBON - Spc(id_OCIL1-1+K)%Conc(I,J,L) = Spc(id_OCIL1-1+K)%Conc(I,J,L) + & + Spc(id_OCIL01-1+K)%Conc(I,J,L) = Spc(id_OCIL01-1+K)%Conc(I,J,L) + & ( F_OF_PBL * OCSRC(I,J,K,1) ) ! Hydrophobic ORGANIC CARBON - Spc(id_OCOB1-1+K)%Conc(I,J,L) = Spc(id_OCOB1-1+K)%Conc(I,J,L) + & + Spc(id_OCOB01-1+K)%Conc(I,J,L) = Spc(id_OCOB01-1+K)%Conc(I,J,L) + & ( F_OF_PBL * OCSRC(I,J,K,2) ) ! Number corresponding to EC + OC [No.] - Spc(id_NK1-1+K)%Conc(I,J,L) = Spc(id_NK1-1+K)%Conc(I,J,L) + & + Spc(id_NK01-1+K)%Conc(I,J,L) = Spc(id_NK01-1+K)%Conc(I,J,L) + & ( F_OF_PBL * NUMBSRC(I,J,K) ) ENDDO @@ -6193,10 +6269,10 @@ SUBROUTINE CHECK_EQLB( I, J, L, KOMIJL, CONVFAC, MSOACHEM, & ! Add primary material as appropriate IF ( id_POA1 > 0 ) THEN MOTEMP = MOTEMP + & - Spc(id_POA1 )%Conc(I,J,L) * OCFPOA(I,J) + & - Spc(id_POA2 )%Conc(I,J,L) * OCFPOA(I,J) + & - Spc(id_OPOA1)%Conc(I,J,L) * OCFOPOA(I,J) + & - Spc(id_OPOA2)%Conc(I,J,L) * OCFOPOA(I,J) + Spc(id_POA1 )%Conc(I,J,L) * State_Chm%AerMass%OCFPOA(I,J) + & + Spc(id_POA2 )%Conc(I,J,L) * State_Chm%AerMass%OCFPOA(I,J) + & + Spc(id_OPOA1)%Conc(I,J,L) * State_Chm%AerMass%OCFOPOA(I,J) + & + Spc(id_OPOA2)%Conc(I,J,L) * State_Chm%AerMass%OCFOPOA(I,J) ELSEIF ( id_OCPI > 0 ) THEN MOTEMP = MOTEMP + & ( Spc(id_OCPI)%Conc(I,J,L) + Spc(id_OCPO)%Conc(I,J,L) ) * 2.1e+0_fp @@ -6615,7 +6691,6 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) ! !LOCAL VARIABLES: ! ! Scalars - LOGICAL :: prtDebug INTEGER :: I, J, L, NOX, JHC, JSV, IPR REAL(fp) :: TEMPDELTA(MNOX,MPROD) REAL(fp) :: TEMPSOAG @@ -6631,9 +6706,6 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) ! Point to chemical species vector containing concentrations Spc => State_Chm%Species - ! Do we have to print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! run in serial now (hotp 6/5/10) ! Make parallel again (mpayer, 9/14/11) !$OMP PARALLEL DO & @@ -6669,7 +6741,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + SUM(TEMPDELTA(:,IPR)) MBDIFF = ABS( TEMPSOAG - ( Spc(id_TSOA1)%Conc(I,J,L) + Spc(id_TSOG1)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6682,7 +6754,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + SUM(TEMPDELTA(:,IPR)) MBDIFF = ABS( TEMPSOAG - ( Spc(id_TSOA2)%Conc(I,J,L) + Spc(id_TSOG2)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6695,7 +6767,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + SUM(TEMPDELTA(:,IPR)) MBDIFF = ABS( TEMPSOAG - ( Spc(id_TSOA3)%Conc(I,J,L) + Spc(id_TSOG3)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6708,7 +6780,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + SUM(TEMPDELTA(:,IPR)) MBDIFF = ABS( TEMPSOAG - ( Spc(id_TSOA0)%Conc(I,J,L) + Spc(id_TSOG0)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6737,7 +6809,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) !TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + SUM(TEMPDELTA(:,IPR)) !MBDIFF = ABS( TEMPSOAG - ( Spc(id_ISOA1)%Conc(I,J,L) + Spc(id_ISOG1)%Conc(I,J,L) )) !MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - !IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + !IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN ! WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & ! 'in box ', I, J, L ! print*,'CK_MB ',NOX,IPR,JSV, & @@ -6756,7 +6828,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) !TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + SUM(TEMPDELTA(:,IPR)) !MBDIFF = ABS( TEMPSOAG - ( Spc(id_ISOA2)%Conc(I,J,L) + Spc(id_ISOG2)%Conc(I,J,L) )) !MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - !IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + !IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN ! WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & ! 'in box ', I, J, L ! print*,'CK_MB ',NOX,IPR,JSV, & @@ -6776,7 +6848,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) !TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + SUM(TEMPDELTA(:,IPR)) !MBDIFF = ABS( TEMPSOAG - ( Spc(id_ISOA3)%Conc(I,J,L) + Spc(id_ISOG3)%Conc(I,J,L) )) !MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - !IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + !IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN ! WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & ! 'in box ', I, J, L ! print*,'CK_MB ',NOX,IPR,JSV, & @@ -6813,7 +6885,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + TEMPDELTA(NOX,IPR) MBDIFF = ABS( TEMPSOAG - Spc(id_ASOAN)%Conc(I,J,L) ) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6827,7 +6899,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) ENDIF ! Debug print to screen - !IF ( prtDebug ) THEN + !IF ( Input_Opt%Verbose ) THEN ! IF ( I == 37 .AND. J == 25 .AND. L == 4 ) THEN ! print*,'CK_MB ',NOX,IPR,JSV, & ! TEMPSOAG,MBDIFF,OAGINITSAVE(I,J,L,NOX,IPR,JSV) @@ -6841,7 +6913,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + TEMPDELTA(NOX,IPR) MBDIFF = ABS( TEMPSOAG - ( Spc(id_ASOA1)%Conc(I,J,L) + Spc(id_ASOG1)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6855,7 +6927,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + TEMPDELTA(NOX,IPR) MBDIFF = ABS( TEMPSOAG - ( Spc(id_ASOA2)%Conc(I,J,L) + Spc(id_ASOG2)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6869,7 +6941,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + TEMPDELTA(NOX,IPR) MBDIFF = ABS( TEMPSOAG - ( Spc(id_ASOA3)%Conc(I,J,L) + Spc(id_ASOG3)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, JSV, & 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6899,7 +6971,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + TEMPDELTA(NOX,IPR) MBDIFF = ABS( TEMPSOAG - ( Spc(id_POA1)%Conc(I,J,L) + Spc(id_POG1)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, & JSV, 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6912,7 +6984,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + TEMPDELTA(NOX,IPR) MBDIFF = ABS( TEMPSOAG - ( Spc(id_POA2)%Conc(I,J,L) + Spc(id_POG2)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, & JSV, 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6939,7 +7011,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + TEMPDELTA(NOX,IPR) MBDIFF = ABS( TEMPSOAG - ( Spc(id_OPOA1)%Conc(I,J,L) + Spc(id_OPOG1)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, & JSV, 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6952,7 +7024,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) TEMPSOAG = OAGINITSAVE(I,J,L,IPR,JSV) + TEMPDELTA(NOX,IPR) MBDIFF = ABS( TEMPSOAG - ( Spc(id_OPOA2)%Conc(I,J,L) + Spc(id_OPOG2)%Conc(I,J,L) )) MBDIFF = MBDIFF/TEMPSOAG ! convert to fractional error - IF ( prtDebug .and. MBDIFF > ACCEPTERROR ) THEN + IF ( Input_Opt%Verbose .and. MBDIFF > ACCEPTERROR ) THEN WRITE(*,*) 'MB Problem with NOX, IPR, JSV:', NOX, IPR, & JSV, 'in box ', I, J, L print*,'CK_MB ',NOX,IPR,JSV, & @@ -6975,7 +7047,7 @@ SUBROUTINE CHECK_MB( Input_Opt, State_Chm, State_Grid, State_Met ) ENDDO ! Print diagnostic information to screen - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN print*,'Global cumulative amount reacted in gas phase [Tg]' JHC = 1 print*,'MTPA High NOx Rxn : ', DELTAHCSAVE(1,JHC) @@ -7367,20 +7439,22 @@ END FUNCTION GET_ISOPNO3 !\\ ! !INTERFACE: ! - FUNCTION SAKAMOTO_SIZE( State_Grid, State_Met, FIRE_NUM, & + FUNCTION SAKAMOTO_SIZE( State_Chm, State_Grid, State_Met, FIRE_NUM, & OCPIBULKEMIS, BCPIBULKEMIS, & OCPOBULKEMIS, BCPOBULKEMIS, AREA) & RESULT ( VALUE ) ! ! !USES: ! - USE TOMAS_MOD, ONLY : IBINS, Xk + USE TOMAS_MOD, ONLY : Xk + USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE TOMAS_MOD, ONLY : AVGMASS ! ! !INPUT PARAMETERS: ! + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object REAL(fp), INTENT(IN) :: FIRE_NUM(State_Grid%NX,State_Grid%NY) @@ -7392,7 +7466,7 @@ FUNCTION SAKAMOTO_SIZE( State_Grid, State_Met, FIRE_NUM, & ! ! !RETURN VALUES: ! - REAL(fp) :: VALUE(State_Grid%NX,State_Grid%NY,IBINS,4) + REAL(fp) :: VALUE(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,4) ! ! !REVISION HISTORY: ! 01 Jan 2017 - E. Ramnarine - Initial version @@ -7409,9 +7483,9 @@ FUNCTION SAKAMOTO_SIZE( State_Grid, State_Met, FIRE_NUM, & REAL(fp) :: dM_dxdz REAL(fp) :: Dpm, sig REAL(fp) :: Dl, Dh, Dk - REAL(fp) :: NUM_FRAC(IBINS) - REAL(fp) :: MASS(IBINS) - REAL(fp) :: MASS_FRAC(IBINS) + REAL(fp) :: NUM_FRAC(State_Chm%nTomasBins) + REAL(fp) :: MASS(State_Chm%nTomasBins) + REAL(fp) :: MASS_FRAC(State_Chm%nTomasBins) REAL(fp), PARAMETER :: pi=3.14159 ! conditions @@ -7436,7 +7510,7 @@ FUNCTION SAKAMOTO_SIZE( State_Grid, State_Met, FIRE_NUM, & BCPIBULKEMIS(I,J) + BCPOBULKEMIS(I,J)) !total emissions [kgm-2s-1] IF ( EMIS == 0.0 ) THEN - DO K = 1, IBINS + DO K = 1, State_Chm%nTomasBins VALUE(I,J,K,1) = 0.0 VALUE(I,J,K,2) = 0.0 VALUE(I,J,K,3) = 0.0 @@ -7459,7 +7533,7 @@ FUNCTION SAKAMOTO_SIZE( State_Grid, State_Met, FIRE_NUM, & !Dpm = D_0 ! no coag case !sig = sig_0 !no coag case - DO K = 1, IBINS + DO K = 1, State_Chm%nTomasBins ! splitting into size bins (seinfeld and pandis eq 8.54) !Calculate diameter of this size bin Dl=1.0e+9*((6.0*Xk(K))/(1400.0*3.14))**0.3333 @@ -7474,7 +7548,7 @@ FUNCTION SAKAMOTO_SIZE( State_Grid, State_Met, FIRE_NUM, & MASS(K) = NUM_FRAC(K) * AVGMASS(K) ENDDO - DO K = 1, IBINS + DO K = 1, State_Chm%nTomasBins !Calculate mass fraction MASS_FRAC(K) = MASS(K) / SUM( MASS(:) ) @@ -7517,9 +7591,6 @@ SUBROUTINE INIT_CARBON( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) USE State_Chm_Mod, ONLY : ChmState USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState -#ifdef TOMAS - USE TOMAS_MOD, ONLY : IBINS -#endif ! ! !INPUT PARAMETERS: ! @@ -7565,24 +7636,24 @@ SUBROUTINE INIT_CARBON( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) id_ASOA2 = IND_('ASOA2' ) id_ASOA3 = IND_('ASOA3' ) id_ASOAN = IND_('ASOAN' ) - id_AW1 = IND_('AW1' ) + id_AW01 = IND_('AW01' ) id_BCPI = IND_('BCPI' ) id_BCPO = IND_('BCPO' ) id_BENZ = IND_('BENZ' ) - id_ECIL1 = IND_('ECIL1' ) - id_ECOB1 = IND_('ECOB1' ) + id_ECIL01 = IND_('ECIL01' ) + id_ECOB01 = IND_('ECOB01' ) id_HO2 = IND_('HO2' ) id_ISOP = IND_('ISOP' ) id_LIMO = IND_('LIMO' ) id_MTPA = IND_('MTPA' ) id_MTPO = IND_('MTPO' ) id_NAP = IND_('NAP' ) - id_NK1 = IND_('NK1' ) + id_NK01 = IND_('NK01' ) id_NH4 = IND_('NH4' ) id_NO = IND_('NO' ) id_NO3 = IND_('NO3' ) - id_OCIL1 = IND_('OCIL1' ) - id_OCOB1 = IND_('OCOB1' ) + id_OCIL01 = IND_('OCIL01' ) + id_OCOB01 = IND_('OCOB01' ) id_O3 = IND_('O3' ) id_OH = IND_('OH' ) id_OCPO = IND_('OCPO' ) @@ -7688,27 +7759,27 @@ SUBROUTINE INIT_CARBON( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) !SFARINA the next six are introduced with the idea that ! emisscarbontomas needs to be restructured and these ! data structures eliminated - ALLOCATE( BCFF(State_Grid%NX,State_Grid%NY,IBINS,2), STAT=AS) + ALLOCATE( BCFF(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2), STAT=AS) IF ( AS /= 0 ) CALL ALLOC_ERR( 'BCFF' ) BCFF = 0e+0_fp - ALLOCATE( OCFF(State_Grid%NX,State_Grid%NY,IBINS,2), STAT=AS) + ALLOCATE( OCFF(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2), STAT=AS) IF ( AS /= 0 ) CALL ALLOC_ERR( 'OCFF' ) OCFF = 0e+0_fp - ALLOCATE( BCBF(State_Grid%NX,State_Grid%NY,IBINS,2), STAT=AS) + ALLOCATE( BCBF(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2), STAT=AS) IF ( AS /= 0 ) CALL ALLOC_ERR( 'BCBF' ) BCBF = 0e+0_fp - ALLOCATE( OCBF(State_Grid%NX,State_Grid%NY,IBINS,2), STAT=AS) + ALLOCATE( OCBF(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2), STAT=AS) IF ( AS /= 0 ) CALL ALLOC_ERR( 'OCBF' ) OCBF = 0e+0_fp - ALLOCATE( BCBB(State_Grid%NX,State_Grid%NY,IBINS,2), STAT=AS) + ALLOCATE( BCBB(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2), STAT=AS) IF ( AS /= 0 ) CALL ALLOC_ERR( 'BCBB' ) BCBB = 0e+0_fp - ALLOCATE( OCBB(State_Grid%NX,State_Grid%NY,IBINS,2), STAT=AS) + ALLOCATE( OCBB(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins,2), STAT=AS) IF ( AS /= 0 ) CALL ALLOC_ERR( 'OCBB' ) OCBB = 0e+0_fp @@ -8318,7 +8389,7 @@ END SUBROUTINE CHEM_OCPINEW !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: dry_settlingbin +! !IROUTINE: bcdry_settlingbin ! ! !DESCRIPTION: Subroutine DRY\_SETTLINGBIN computes the dry settling of ! aerosol tracers. Modified for APM simulation. (G. Luo) @@ -8427,6 +8498,23 @@ SUBROUTINE BCDRY_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, & DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Zero private loop variables + CONST = 0.0_fp + DELZ = 0.0_fp + DELZ1 = 0.0_fp + DEN = 0.0_fp + DP = 0.0_fp + MASS = 0.0_fp + OLD = 0.0_fp + P = 0.0_fp + PDP = 0.0_fp + REFF = 0.0_fp + SLIP = 0.0_fp + TEMP = 0.0_fp + TC0 = 0.0_fp + VISC = 0.0_fp + VTS = 0.0_fp + DO L = 1, State_Grid%NZ DO N = APMIDS%id_BCBIN1, IDTEMP MASS(L) = Spc(N)%Conc(I,J,L) @@ -8569,7 +8657,7 @@ END SUBROUTINE BCDRY_SETTLINGBIN !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: dry_settlingbin +! !IROUTINE: ocdry_settlingbin ! ! !DESCRIPTION: Subroutine DRY\_SETTLINGBIN computes the dry settling of ! aerosol tracers. Modified for APM simulation. (G. Luo) @@ -8678,6 +8766,23 @@ SUBROUTINE OCDRY_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, & DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Zero private loop variables + CONST = 0.0_fp + DELZ = 0.0_fp + DELZ1 = 0.0_fp + DEN = 0.0_fp + DP = 0.0_fp + MASS = 0.0_fp + OLD = 0.0_fp + P = 0.0_fp + PDP = 0.0_fp + REFF = 0.0_fp + SLIP = 0.0_fp + TEMP = 0.0_fp + TC0 = 0.0_fp + VISC = 0.0_fp + VTS = 0.0_fp + DO L = 1, State_Grid%NZ DO N = APMIDS%id_OCBIN1, IDTEMP MASS(L) = MASS(L) + Spc(N)%Conc(I,J,L) @@ -8816,4 +8921,4 @@ SUBROUTINE OCDRY_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, & END SUBROUTINE OCDRY_SETTLINGBIN #endif !EOC - END MODULE CARBON_MOD +END MODULE CARBON_MOD diff --git a/GeosCore/chemistry_mod.F90 b/GeosCore/chemistry_mod.F90 index eab0604d9..f507b2612 100644 --- a/GeosCore/chemistry_mod.F90 +++ b/GeosCore/chemistry_mod.F90 @@ -23,14 +23,9 @@ MODULE Chemistry_Mod ! ! !PUBLIC MEMBER FUNCTIONS: ! - PUBLIC :: Init_Chemistry PUBLIC :: Do_Chemistry PUBLIC :: Recompute_OD ! -! !PRIVATE MEMBER FUNCTIONS: -! - PRIVATE :: Chem_Passive_Species -! ! !REVISION HISTORY: ! See https://github.com/geoschem/geos-chem for complete history !EOP @@ -39,9 +34,6 @@ MODULE Chemistry_Mod ! ! !PRIVATE TYPES: ! - - INTEGER :: id_DST1, id_NK1 ! Species ID flags - CONTAINS !EOC !------------------------------------------------------------------------------ @@ -74,7 +66,7 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & USE FullChem_Mod, ONLY : Do_FullChem USE GLOBAL_CH4_MOD, ONLY : CHEMCH4 USE Input_Opt_Mod, ONLY : OptInput - USE ISORROPIAII_MOD, ONLY : DO_ISORROPIAII + USE AEROSOL_THERMODYNAMICS_MOD, ONLY : DO_ATE USE LINEAR_CHEM_MOD, ONLY : DO_LINEAR_CHEM USE MERCURY_MOD, ONLY : CHEMMERCURY USE POPS_MOD, ONLY : CHEMPOPS @@ -89,10 +81,10 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & USE State_Met_Mod, ONLY : MetState USE TAGGED_CO_MOD, ONLY : CHEM_TAGGED_CO USE TAGGED_O3_MOD, ONLY : CHEM_TAGGED_O3 - USE TIME_MOD, ONLY : GET_ELAPSED_SEC USE TIME_MOD, ONLY : GET_TS_CHEM + USE Tracer_Mod, ONLY : Tracer_Sink_Phase USE UCX_MOD, ONLY : CALC_STRAT_AER - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod #ifdef APM USE APM_INIT_MOD, ONLY : APMIDS USE APM_DRIV_MOD, ONLY : PSO4GAS @@ -129,12 +121,14 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & ! ! !LOCAL VARIABLES: ! + ! SAVEd scalars + INTEGER, SAVE :: id_DST1, id_NK01, id_CO2 ! Species ID flags + ! Scalars INTEGER :: N_TROP, N INTEGER :: MONTH INTEGER :: YEAR INTEGER :: WAVELENGTH - LOGICAL :: prtDebug INTEGER :: TS_Chem REAL(f8) :: DT_Chem, sDTFC, fDTFC #ifdef APM @@ -146,7 +140,7 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & LOGICAL, SAVE :: FIRST = .TRUE. ! Strings - CHARACTER(LEN=63) :: OrigUnit + INTEGER :: previous_units CHARACTER(LEN=255) :: ErrMsg, ThisLoc !======================================================================= @@ -156,13 +150,13 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & ! Initialize RC = GC_SUCCESS ErrMsg = '' - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ThisLoc = ' -> at Do_Chemistry (in module GeosCore/chemistry_mod.F90)' ! Save species ID"s on first call IF ( FIRST ) THEN id_DST1 = Ind_('DST1') - id_NK1 = Ind_('NK1' ) + id_NK01 = Ind_('NK01') + id_CO2 = Ind_('CO2' ) ENDIF !======================================================================== @@ -174,6 +168,7 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetChemistryFull, & @@ -185,6 +180,9 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetChemistryPBL, & diagPBL = NULL(), & mapDataPBL = State_Diag%Map_BudgetChemistryPBL, & + isLevs = State_Diag%Archive_BudgetChemistryLevs, & + diagLevs = NULL(), & + mapDataLevs = State_Diag%Map_BudgetChemistryLevs, & colMass = State_Diag%BudgetColumnMass, & before_op = .TRUE., & RC = RC ) @@ -200,13 +198,29 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & !======================================================================== ! Convert species units to [kg] for chemistry (ewl, 8/12/15) !======================================================================== - CALL Convert_Spc_Units( Input_Opt = Input_Opt, & - State_Chm = State_Chm, & - State_Grid = State_Grid, & - State_Met = State_Met, & - OutUnit = 'kg', & - OrigUnit = OrigUnit, & - RC = RC ) + + ! Here, units are still in mol/mol dry. For fullchem-simulation only, + ! set CO2 to 421 ppm (or 421e-6 mol/mol dry) since this is the global + ! average value. This is necessary to reduce the error norm in KPP. + ! See https://github.com/geoschem/geos-chem/issues/1529. + IF ( Input_Opt%ITS_A_FULLCHEM_SIM ) THEN + State_Chm%Species(id_CO2)%Conc = 421.0e-6_fp + ENDIF + + ! Halt "All chemistry" timer (so that diags can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "All chemistry", RC ) + ENDIF + + ! Convert units from mol/mol dry to kg + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = KG_SPECIES, & + previous_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -215,6 +229,11 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + ! Start "All chemistry" timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "All chemistry", RC ) + ENDIF + !======================================================================== ! If Input_Opt%LCHEM=T then call the chemistry subroutines !======================================================================== @@ -334,24 +353,23 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - !--------------------------------------------------------------- ! Do aerosol thermodynamic equilibrium !--------------------------------------------------------------- IF ( Input_Opt%LSSALT ) THEN #ifndef APM - ! ISORROPIA takes Na+, Cl- into account - CALL Do_IsorropiaII( Input_Opt = Input_Opt, & - State_Chm = State_Chm, & - State_Diag = State_Diag, & - State_Grid = State_Grid, & - State_Met = State_Met, & - RC = RC ) + ! ISORROPIA/HETP take Na+, Cl- into account + CALL Do_ATE( Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + State_Met = State_Met, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Do_ISORROPIAII"!' + ErrMsg = 'Error encountered in "Do_ATE"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -404,7 +422,7 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & ! Call gas-phase chemistry !------------------------------------------------------------------ IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "=> FlexChem", RC ) + CALL Timer_Start( "=> Gas-phase chem", RC ) ENDIF ! Solve the KPP-generated mechanism @@ -415,22 +433,15 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & State_Met = State_Met, & RC = RC ) - ! Check units (ewl, 10/5/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - ErrMsg = 'Incorrect species units after Do_FullChem!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Do_FlexChem"!' + ErrMsg = 'Error encountered in "Do_FullChem"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "=> FlexChem", RC ) + CALL Timer_End( "=> Gas-phase chem", RC ) ENDIF !------------------------------------------------------------------ @@ -449,15 +460,16 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & State_Met = State_Met, & errCode = RC ) - ! Check units (ewl, 10/5/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - ErrMsg = 'Incorrect species units after DO_LINEARCHEM!' + ! Trap potential errors + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountred in "Do_LinearChem"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN ENDIF - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in ""!' + ! Make sure all units are still in kg + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + ErrMsg = 'Incorrect species after calling "Do_Linear_Chem"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -543,15 +555,16 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & FullRun = .TRUE., & RC = RC ) - ! Check units (ewl, 10/5/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - ErrMsg = 'Incorrect species units after CHEMSULFATE!' + ! Trap potential errors + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered after calling "ChemSulfate"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN ENDIF - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "ChemSulfate"!' + ! Make sure all units are still in kg + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + ErrMsg = 'Incorrect species after calling "ChemSulfate"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -619,7 +632,7 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & !------------------------------------------------------------------ ! Do TOMAS aerosol microphysics and dry dep !------------------------------------------------------------------ - IF ( id_NK1 > 0 ) THEN + IF ( id_NK01 > 0 ) THEN CALL Do_TOMAS( Input_Opt = Input_Opt, & State_Chm = State_Chm, & State_Diag = State_Diag, & @@ -627,19 +640,18 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & State_Met = State_Met, & RC = RC ) - - ! Check units (ewl, 10/5/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - ErrMsg = 'Incorrect species units after DO_TOMAS!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - ENDIF - ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Error encountered in "Do_TOMAS"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF + + ! Check units (ewl, 10/5/15) + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + ErrMsg = 'Not all species have units "kg"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + ENDIF ENDIF #endif @@ -667,12 +679,6 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & State_Met = State_Met, & RC = RC ) - ! Check units (ewl, 10/5/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - ErrMsg = 'Incorrect species units after AEROSOL_CONC' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - ENDIF - ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Error encountered in "Aerosol_Conc"!' @@ -710,18 +716,18 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & IF ( Input_Opt%LSSALT ) THEN #ifndef APM - ! ISORROPIA takes Na+, Cl- into account - CALL Do_IsorropiaII( Input_Opt = Input_Opt, & - State_Chm = State_Chm, & - State_Diag = State_Diag, & - State_Grid = State_Grid, & - State_Met = State_Met, & - RC = RC ) + ! ISORROPIA/HETP take Na+, Cl- into account + CALL Do_ATE( Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + State_Met = State_Met, & + RC = RC ) #endif ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Do_IsorropiaII"!' + ErrMsg = 'Error encountered in "Do_ATE"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -855,9 +861,9 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & ENDIF !===================================================================== - ! Rn-Pb-Be + ! Transport Tracers !===================================================================== - ELSE IF ( Input_Opt%ITS_A_RnPbBe_SIM ) THEN + ELSE IF ( Input_Opt%ITS_A_TRACER_SIM ) THEN ! Do Rn-Pb-Be chemistry CALL ChemRnPbBe( Input_Opt = Input_Opt, & @@ -874,6 +880,20 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + ! Apply sinks for transport tracers + CALL Tracer_Sink_Phase( Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + RC = RC ) + + ! Trap potential errors + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in "Tracer_Sink_Phase"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + !===================================================================== ! Tagged O3 !===================================================================== @@ -970,6 +990,10 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & !===================================================================== ELSE IF ( Input_Opt%ITS_A_CARBON_SIM ) THEN + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Gas-phase chem", RC ) + ENDIF + ! Do carbon chemistry CALL Chem_Carbon_Gases( Input_Opt = Input_Opt, & State_Met = State_Met, & @@ -985,11 +1009,19 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Gas-phase chem", RC ) + ENDIF + !==================================================================== ! Mercury (configure with -DMECH=Hg) !===================================================================== ELSE IF ( Input_Opt%ITS_A_MERCURY_SIM ) THEN + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Gas-phase chem", RC ) + ENDIF + ! Do Hg chemistry CALL ChemMercury( Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -1005,8 +1037,12 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Gas-phase chem", RC ) + ENDIF + !===================================================================== - ! POPs (only used when compiled with BPCH_DIAG=y) + ! POPs !===================================================================== ELSE IF ( Input_Opt%ITS_A_POPS_SIM ) THEN @@ -1027,41 +1063,9 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & ENDIF - !===================================================================== - ! PASSIVE SPECIES - ! - ! This performs a simple loss chemistry on passive species. Call - ! this routine for all simulation types since passive species can - ! be defined for various simulations (as additional species to the - ! default! ones). ckeller, 09/04/15 - ! - ! NOTE: To speed up execution, only call Chem_Passive_Species - ! if there is at least one passive species with a finite - ! atmospheric lifetime. There is no reason to apply a loss rate - ! of unity to those passive species whose lifetime is infinity. - ! This will speed up GEOS-Chem simulations. (bmy, 12/13/17) - !===================================================================== - IF ( Input_Opt%NPassive_Decay > 0 ) THEN - - ! Apply loss rate to passive species with finite lifetimes - CALL Chem_Passive_Species( Input_Opt = Input_Opt, & - State_Chm = State_Chm, & - State_Grid = State_Grid, & - State_Met = State_Met, & - RC = RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Chem_Passive_Species"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - !### Debug - IF ( prtDebug ) THEN - CALL Debug_Msg( '### MAIN: a CHEMISTRY' ) - ENDIF - + !### Debug + IF ( Input_Opt%Verbose ) THEN + CALL Debug_Msg( '### MAIN: a CHEMISTRY' ) ENDIF ENDIF @@ -1069,12 +1073,20 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & !======================================================================== ! Convert species units back to original unit (ewl, 8/12/15) !======================================================================== - CALL Convert_Spc_Units( Input_Opt = Input_Opt, & - State_Chm = State_Chm, & - State_Grid = State_Grid, & - State_Met = State_Met, & - OutUnit = OrigUnit, & - RC = RC ) + + ! Halt "All chemistry" timer (so unitconv+diags can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "All chemistry", RC ) + ENDIF + + ! Convert units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -1083,6 +1095,11 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + ! Start "All chemistry" timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "All chemistry", RC ) + ENDIF + !======================================================================== ! Chemistry budget diagnostics - Part 2 of 2 !======================================================================== @@ -1097,6 +1114,7 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetChemistryFull, & @@ -1108,6 +1126,9 @@ SUBROUTINE Do_Chemistry( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetChemistryPBL, & diagPBL = State_Diag%BudgetChemistryPBL, & mapDataPBL = State_Diag%Map_BudgetChemistryPBL, & + isLevs = State_Diag%Archive_BudgetChemistryLevs, & + diagLevs = State_Diag%BudgetChemistryLevs, & + mapDataLevs = State_Diag%Map_BudgetChemistryLevs, & colMass = State_Diag%BudgetColumnMass, & timeStep = DT_Chem, & RC = RC ) @@ -1182,7 +1203,6 @@ SUBROUTINE RECOMPUTE_OD( Input_Opt, State_Chm, State_Diag, & LOGICAL :: IT_IS_AN_AEROSOL_SIM LOGICAL :: LCARB, LCHEM, LDUST LOGICAL :: LSSALT, LSULF, LSOA - LOGICAL :: prtDebug INTEGER :: MONTH, YEAR, WAVELENGTH ! Strings @@ -1196,7 +1216,6 @@ SUBROUTINE RECOMPUTE_OD( Input_Opt, State_Chm, State_Diag, & RC = GC_SUCCESS MONTH = GET_MONTH() YEAR = GET_YEAR() - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ErrMsg = '' ThisLoc = ' -> at Recompute_OD (in module GeosCore/chemistry_mod.F90)' @@ -1241,7 +1260,7 @@ SUBROUTINE RECOMPUTE_OD( Input_Opt, State_Chm, State_Diag, & ENDIF !### Debug - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL Debug_Msg( '### RECOMPUTE_OD: after RDAER' ) ENDIF @@ -1270,7 +1289,7 @@ SUBROUTINE RECOMPUTE_OD( Input_Opt, State_Chm, State_Diag, & ENDIF !### Debug - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### RECOMPUTE_OD: after RDUST' ) ENDIF ENDIF @@ -1279,258 +1298,4 @@ SUBROUTINE RECOMPUTE_OD( Input_Opt, State_Chm, State_Diag, & END SUBROUTINE RECOMPUTE_OD !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: chem_passive_species -! -! !DESCRIPTION: Subroutine CHEM\_PASSIVE\_SPECIES performs loss chemistry -! on passive species with finite atmospheric lifetimes. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Chem_Passive_Species( Input_Opt, State_Chm, State_Grid, & - State_Met, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE State_Chm_Mod, ONLY : ChmState - USE State_Chm_Mod, ONLY : ind_ - USE State_Grid_Mod, ONLY : GrdState - USE State_Met_Mod, ONLY : MetState - USE Time_Mod, ONLY : Get_Ts_Chem -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN ) :: Input_Opt ! Input options object - TYPE(GrdState), INTENT(IN ) :: State_Grid ! Grid state object - TYPE(MetState), INTENT(IN ) :: State_Met ! Meteorology state object -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Failure or success -! -! !REMARKS: -! -! !REVISION HISTORY: -! 04 Sep 2015 - C. Keller - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - LOGICAL :: prtDebug - LOGICAL :: Is_HalfLife - INTEGER :: I, J, L - INTEGER :: N, GCId, Id - REAL(fp) :: DT, Decay, Rate - - ! SAVEd scalars - LOGICAL, SAVE :: First = .TRUE. - - ! Strings - CHARACTER(LEN=255) :: ErrMsg, ThisLoc -! -! !DEFINED PARAMETERS: -! - REAL(fp), PARAMETER :: ln2 = 0.693147181E+00_fp - - !======================================================================== - ! Chem_Passive_Species begins here! - !======================================================================== - - ! Initialize - RC = GC_SUCCESS - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ErrMsg = '' - ThisLoc = & - ' -> at Chem_Passive_Species (in module GeosCore/chemistry_mod.F90)' - - DT = GET_TS_CHEM() ! timestep in seconds - - ! For now, always compute decay using e-folding time - Is_HalfLife = .FALSE. - - !======================================================================== - ! Apply decay loss rate only to those passive species that have a - ! finite atmospheric lifetime (this speeds up execution) - !======================================================================== - - ! Loop over all decaying passive species - DO N = 1, Input_Opt%NPassive_Decay - - !--------------------------------------------------------------------- - ! Find the GEOS-Chem species Id - !--------------------------------------------------------------------- - - ! Get the Id of the species in the passive decay menu - Id = Input_Opt%Passive_DecayID(N) - - ! Convert this to a GEOS-Chem species Id number - GcId = Ind_( TRIM( Input_Opt%PASSIVE_NAME(Id) ) ) - - ! Make sure the model ID is valid - IF ( GcId < 0 ) THEN - ErrMsg = 'Could not find the GEOS-Chem species ID # ' // & - 'for passive species : ' // & - TRIM( Input_Opt%PASSIVE_NAME(Id) ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - !--------------------------------------------------------------------- - ! Compute the decay rate - !--------------------------------------------------------------------- - - ! Compute the decay rate for each passive species - IF ( Is_HalfLife ) THEN - Decay = ln2 / Input_Opt%PASSIVE_TAU(Id) - ELSE - Decay = 1.0 / Input_Opt%PASSIVE_TAU(Id) - ENDIF - Rate = EXP( - DT * Decay ) - - !### Debug output - IF ( First ) THEN - IF ( prtDebug ) THEN - WRITE( 6,100 ) ADJUSTL( Input_Opt%PASSIVE_NAME(Id) ), & - GcId, Rate - 100 FORMAT( ' - Pass. species name, Id, loss rate: ', & - a15, i5, 1x, es13.6 ) - ENDIF - ENDIF - - !--------------------------------------------------------------------- - ! Apply loss - !--------------------------------------------------------------------- - - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED )& - !$OMP PRIVATE( I, J, L )& - !$OMP COLLAPSE( 3 ) - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(GcId)%Conc(I,J,L) = & - State_Chm%Species(GcId)%Conc(I,J,L) * Rate - ENDDO - ENDDO - ENDDO - !$OMP END PARALLEL DO - - ENDDO - - ! Reset after the first time - IF ( First ) First = .FALSE. - - END SUBROUTINE Chem_Passive_Species -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: init_chemistry -! -! !DESCRIPTION: Subroutine INIT\_CHEMISTRY initializes chemistry -! variables. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Init_Chemistry( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE FAST_JX_MOD, ONLY : Init_FJX - USE FullChem_Mod, ONLY : Init_FullChem - USE Input_Opt_Mod, ONLY : OptInput - USE State_Chm_Mod, ONLY : ChmState - USE State_Chm_Mod, ONLY : Ind_ - USE State_Diag_Mod, ONLY : DgnState - USE State_Grid_Mod, ONLY : GrdState -! -! !INPUT PARAMETERS: -! - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object - TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object - INTEGER, INTENT(INOUT) :: RC ! Success or failure? -! -! !REMARKS: -! We initialize relevant fullchem and carbon KPP mechanism variables -! here in order to use values from the Species Database. When the other -! modules are initialized (most of which are done in GC_Init_Extra), at -! that point the Species Database has not been read from the YAML file, -! so we must call Init_FullChem and Init_Carbon_Gases here. -! -! !REVISION HISTORY: -! 19 May 2014 - C. Keller - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: - - ! SAVEd scalars - LOGICAL, SAVE :: FIRST = .TRUE. - - ! Strings - CHARACTER(LEN=255) :: ErrMsg, ThisLoc - - !======================================================================= - ! INIT_CHEMISTRY begins here! - !======================================================================= - - ! Initialize - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at Init_Chemistry (in module GeosCore/chemistry_mod.F90)' - - ! Skip if we have already done this - IF ( FIRST ) THEN - - ! Adjust first flag - FIRST = .FALSE. - - !-------------------------------------------------------------------- - ! Initialize Fast-JX photolysis - ! (except for carbon, which has no photolysis) - ! - ! NOTE: we need to call this for a dry-run so that we can get - ! a list of all of the lookup tables etc. that FAST-JX reads - !-------------------------------------------------------------------- - IF ( .not. Input_Opt%ITS_A_CARBON_SIM ) THEN - CALL Init_FJX( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) - ENDIF - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Init_FJX"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ENDIF - - END SUBROUTINE Init_Chemistry -!EOC END MODULE Chemistry_Mod diff --git a/GeosCore/cldj_interface_mod.F90 b/GeosCore/cldj_interface_mod.F90 new file mode 100644 index 000000000..faa735272 --- /dev/null +++ b/GeosCore/cldj_interface_mod.F90 @@ -0,0 +1,1358 @@ +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !MODULE: cldj_interface_mod.F90 +! +! !DESCRIPTION: Module CLDJ\_INTERFACE\_MOD contains routines and variables +! for interfacing with the Cloud-J scheme (Prather et al) that calculates +! photolysis rates. +!\\ +!\\ +! !INTERFACE: +! +MODULE CLDJ_INTERFACE_MOD +! +! !USES: +! + USE PRECISION_MOD + + IMPLICIT NONE + + PRIVATE +! +! !PUBLIC MEMBER FUNCTIONS: +! + PUBLIC :: Init_CloudJ + PUBLIC :: Run_CloudJ +! +! !PRIVATE MEMBER FUNCTIONS: +! + PRIVATE :: Set_Clim_Profiles + PRIVATE :: Get_RH_Index + PRIVATE :: CloudJ_DryRun_Check + PRIVATE :: Check_File_for_DryRun +! +! !REVISION HISTORY: +! 14 Dec 2022 - E. Lundgren - initial version, adapted from fast_jx_mod +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +CONTAINS +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: int_cloudj +! +! !DESCRIPTION: Subroutine INIT\_CLOUDJ initializes Cloud-J variables. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE INIT_CLOUDJ( Input_Opt, State_Grid, State_Diag, State_Chm, RC ) +! +! !USES: +! + +! ewl: Use, inputs/outputs, and local vars could be slimmed down + ! ewl: if these are in cloud-j, why do I need to pass them??? + USE Cldj_Cmn_Mod, ONLY : JVN_, NRatJ, W_ + USE Cldj_Init_Mod, ONLY : Init_CldJ + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState + USE State_Grid_Mod, ONLY : GrdState + USE State_Diag_Mod, ONLY : DgnState + +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(DgnState), INTENT(IN) :: State_Diag ! Diagnostics State object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REVISION HISTORY: +! 14 Dec 2022 - E. Lundgren - initial version, adapted from fast_jx_mod +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + ! Scalars + LOGICAL :: notDryRun + INTEGER :: NJXX + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + CHARACTER(LEN=6) :: TITLEJXX(JVN_) + + !================================================================= + ! INIT_CLOUDJ begins here! + !================================================================= + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at Init_CloudJ (in module GeosCore/cldj_interface_mod.F90)' + + ! If we are running a dry-run simulation, print out a list of + ! Cloud-J configuration files that are found or missing, then exit. + IF ( Input_Opt%DryRun ) THEN + CALL CloudJ_DryRun_Check( Input_Opt ) + RETURN + ENDIF + + ! Print info + IF ( Input_Opt%amIRoot ) THEN + write(6,*) ' Initializing Cloud-J' + + ! ewl: can this be put into the initialization??? + if (W_.ne.8 .and. W_.ne.12 .and. W_.ne.18) then + ErrMsg = ' INIT_CLOUDJ: invalid no. wavelengths' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + endif + ENDIF + + ! Initialize Cloud-J. Includes reading input data files + ! FJX_spec.dat (RD_XXX), FJX_scat-aer.dat (RD_MIE), and + ! FJX_j2j.dat (RD_JS_JX) + CALL Init_CldJ(Input_Opt%amIRoot, Input_Opt%CloudJ_Dir, & + State_Grid%NZ, TITLEJXX, JVN_, NJXX) + + ! Store # of photolysis reactions in State_Chm object + State_Chm%Phot%nPhotRxns = NRatJ + + END SUBROUTINE INIT_CLOUDJ +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !ROUTINE: run_cloudj +! +! !DESCRIPTION: Subroutine RUN\_CLOUDJ loops over horizontal grid boxes to call +! Cloud-J subroutine CLOUD\_JX for computation of J-Values for each column. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Run_CloudJ( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) +! +! !USES: +! + USE Cldj_Cmn_Mod, ONLY : L_, L1_, W_, S_, LWEPAR + USE Cldj_Cmn_Mod, ONLY : JVN_, AN_, NQD_, W_r + USE Cldj_Cmn_Mod, ONLY : JIND, JFACTA, FL, QAA, RAA, SAA + USE Cldj_Sub_Mod, ONLY : Cloud_JX + USE Cmn_Size_Mod, ONLY : NRHAER, NRH, NDUST + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE PhysConstants, ONLY : AVO, H2OMW, AIRMW, G0_100, PI, PI_180 + USE State_Chm_Mod, ONLY : ChmState, Ind_ + USE State_Diag_Mod, ONLY : DgnState + USE State_Grid_Mod, ONLY : GrdState + USE State_Met_Mod, ONLY : MetState + USE Time_Mod, ONLY : GET_MONTH, GET_DAY, GET_DAY_OF_YEAR +!ewl USE TOMS_MOD, ONLY : GET_OVERHEAD_O3 + + IMPLICIT NONE +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! !REVISION HISTORY: +! 14 Dec 2022 - E. Lundgren - initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + INTEGER :: A, I, J, L, K, N, S, MaxLev, RH_ind + INTEGER :: SO4_ind, BC_ind, OC_ind, SALA_ind, SALC_ind + INTEGER :: S_rh0, S_rhx, K_rh0, K_rhx, ind_1000 + REAL(8) :: MW_g, BoxHt, Delta_P, IWC, LWC + REAL(8) :: FRAC, RAA_eff, QAA_eff, SAA_eff + REAL(8) :: dry_to_wet_factor + REAL(8) :: R_interp_factor, Q_interp_factor + REAL(fp) :: RH_lut(NRH) + LOGICAL, SAVE :: FIRST = .true. + + !------------------------------------------------------------------------ + ! Solar_JX inputs + !------------------------------------------------------------------------ + INTEGER :: DAY_OF_YEAR ! simulation day of year + REAL(fp) :: U0 ! cosine of SZA + + !------------------------------------------------------------------------ + ! Set_Clim_Profiles inputs + !------------------------------------------------------------------------ + INTEGER :: MONTH, DAY ! simulation month and day + REAL(fp) :: T_CTM (State_Grid%NZ+1) ! temperature profile [K] + REAL(fp) :: P_CTM (State_Grid%NZ+2) ! pressure profile (edges) [hPa] + REAL(fp) :: O3_CTM (State_Grid%NZ+1) ! ozone profile [molec/cm3] + + !------------------------------------------------------------------------ + ! Cloud_JX inputs + !------------------------------------------------------------------------ + + ! Scalars + LOGICAL :: LPRTJ ! Debug prints + INTEGER :: IRAN + REAL(fp) :: SZA ! Computed in Solar_JX. Should this be real8? + REAL(fp) :: SOLF ! Computed in Solar_JX. Should this be real8? + REAL(8) :: CLDCOR + + ! 1D arrays + INTEGER :: CLDIW (L1_ ) + REAL(fp) :: T_CLIM (L1_ ) ! Computed in Set_Prof_CloudJ, should be real8? + REAL(fp) :: O3_CLIM (L1_ ) ! Computed in Set_Prof_CloudJ, should be real8? + REAL(fp) :: AIR_CLIM(L1_ ) ! Computed in Set_Prof_CloudJ, should be real8? + REAL(fp) :: Z_CLIM (L1_+1) ! Computed in Set_Prof_CloudJ, should be real8? + REAL(8) :: HHH (L1_ ) + REAL(8) :: RRR (L1_ ) + REAL(8) :: CCC (L1_ ) + REAL(8) :: LWP (L1_ ) + REAL(8) :: IWP (L1_ ) + REAL(8) :: REFFL (L1_ ) + REAL(8) :: REFFI (L1_ ) + REAL(8) :: CLDF (L1_ ) + + ! 2D arrays + INTEGER :: NDXAER (L1_, AN_ ) + REAL(8) :: AERSP (L1_, AN_ ) + REAL(8) :: RFL (5 , W_+W_r) + + !------------------------------------------------------------------------ + ! Cloud_JX outputs + !------------------------------------------------------------------------ + + ! Scalars + LOGICAL :: LDARK + INTEGER :: NICA + INTEGER :: JCOUNT + + ! 1D arrays + REAL(8) :: SWMSQ (6 ) + REAL(8) :: OD18 (L1_ ) + REAL(8) :: WTQCA (NQD_) + + ! 2D arrays + REAL(8) :: SKPERD(S_+2, L1_) + + ! Which of the below is correct??? + REAL(8) :: VALJXX(L_,JVN_) + + !------------------------------------------------------------------------ + ! For diagnostics + !------------------------------------------------------------------------ + + ! These are currently never set. Should they be output from Cloud-J? + REAL(fp) :: FJBOT(W_) + REAL(fp) :: FSBOT(W_) + REAL(fp) :: FLXD(L1_,W_) + REAL(fp) :: FJFLX(L_,W_) + + ! For UVFlux* diagnostics + REAL(fp) :: FDIRECT (L1_) + REAL(fp) :: FDIFFUSE(L1_) + REAL(fp) :: UVX_CONST + + ! Species ids + INTEGER, SAVE :: id_O3 + INTEGER, SAVE :: id_SO4 + + ! Index for Cloud-J prints if GEOS-Chem verbose is on + INTEGER :: I_PRT, J_PRT + + ! Debugging logicals to turn optical depth sources on/off + LOGICAL :: use_liqcld + LOGICAL :: use_icecld + LOGICAL :: use_dust + LOGICAL :: use_so4 + LOGICAL :: use_bc + LOGICAL :: use_oc + LOGICAL :: use_sala + LOGICAL :: use_salc + LOGICAL :: use_stratso4 + LOGICAL :: use_psc + + !================================================================= + ! Run_CloudJ begins here! + !================================================================= + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at Run_CloudJ (in module GeosCore/cldj_interface_mod.F90)' + + ! Set debugging logicals to turn optical depth sources on/off. If using, + ! uncomment where they are appear later in this file. They are commented out by + ! default to avoid unnecessary slow-down. + use_liqcld = .true. + use_icecld = .true. + use_dust = .true. + use_so4 = .true. + use_bc = .true. + use_oc = .true. + use_sala = .true. + use_salc = .true. + use_stratso4 = .true. + use_psc = .true. + + ! Aerosol indexes (must match mapping set in RD_AOD) + SO4_ind = 1 + BC_ind = 2 + OC_ind = 3 + SALA_ind = 4 + SALC_ind = 5 + + ! Relative humidities in FJX_spec-aer.dat + RH_lut(1) = 0.d0 + RH_lut(2) = 50.d0 + RH_lut(3) = 70.d0 + RH_lut(4) = 80.d0 + RH_lut(5) = 90.d0 + + ! Index for wavelength 1000 in optical property LUT + ind_1000 = 5 + + ! Diagnostic initialization + IF ( State_Diag%Archive_UVFluxDiffuse ) State_Diag%UVFluxDiffuse = 0.0_f4 + IF ( State_Diag%Archive_UVFluxDirect ) State_Diag%UVFluxDirect = 0.0_f4 + IF ( State_Diag%Archive_UVFluxNet ) State_Diag%UVFluxNet = 0.0_f4 + IF ( State_Diag%Archive_OD600 ) State_Diag%OD600 = 0.0_f4 + IF ( State_Diag%Archive_TCOD600 ) State_Diag%TCOD600 = 0.0_f4 +#if defined( MODEL_GEOS ) + ! TODO: implement these + IF ( State_Diag%Archive_EXTRALNLEVS ) State_Diag%EXTRALNLEVS = 0.0 + IF ( State_Diag%Archive_EXTRALNITER ) State_Diag%EXTRALNITER = 0.0 +#endif + + ! Set species ids for use in diagnostics + IF ( FIRST ) THEN + id_O3 = Ind_('O3') + id_SO4 = Ind_('SO4') + IF ( id_O3 < 0 ) THEN + ErrMsg = 'O3 is not a defined species!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + ENDIF + + ! Constant values across grid boxes + MONTH = GET_MONTH() + DAY = GET_DAY() + DAY_OF_YEAR = GET_DAY_OF_YEAR() + + + ! ewl: set NDXAER to MIEDX duplicated for all levels. If this works + ! will want to store this elsewhere. Don't want to do this computation + ! every timestep. + ! Why isn't this integer??? + ! Should change MIEDX to be NDXAER for cloud-j? + NDXAER(:,:) = 0.d0 + DO N = 1, AN_ + DO L = 1, L1_ + NDXAER(L,N) = State_Chm%Phot%MIEDX(N) + ENDDO + ENDDO + + !================================================================= + ! For each column compute Cloud-J inputs and call Cloud_JX to compute J-values + !================================================================= + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED ) & + !$OMP PRIVATE( A, I, J, L, K, N, S, MW_g, BoxHt, RH_ind ) & + !$OMP PRIVATE( S_rh0, S_rhx, K_rh0, K_rhx, FRAC, RAA_eff, QAA_eff, SAA_eff ) & + !$OMP PRIVATE( dry_to_wet_factor ) & + !$OMP PRIVATE( R_interp_factor, Q_interp_factor ) & + !$OMP PRIVATE( U0, SZA, SOLF, T_CTM, P_CTM, O3_CTM ) & + !$OMP PRIVATE( T_CLIM, O3_CLIM, AIR_CLIM, Z_CLIM ) & + !$OMP PRIVATE( CLDIW, CLDF, IWP, LWP, REFFI, REFFL, IWC, LWC, DELTA_P ) & + !$OMP PRIVATE( AERSP, RFL, RRR, LPRTJ, IRAN, CLDCOR, HHH, CCC ) & + !$OMP PRIVATE( LDARK, NICA, JCOUNT, SWMSQ, OD18, WTQCA, SKPERD, VALJXX ) & + !$OMP PRIVATE( FJBOT, FSBOT, FLXD, FJFLX, FDIRECT, FDIFFUSE, UVX_CONST ) & + !$OMP SCHEDULE( DYNAMIC ) + + ! Loop over all latitudes and all longitudes + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Debug prints in Cloud-J. Limit to one grid cell so not excessive. + ! Use this for debugging purposes only. + LPRTJ = .false. + I_PRT = 20 + J_PRT = 20 + IF ( I .eq. I_PRT .and. J .eq. J_PRT .and. Input_Opt%Verbose ) THEN + print *, "cldj_interface_mod.F90: Cloud-J prints on for lat, lon: ", & + State_Grid%GlobalYMid(I,J), State_Grid%GlobalXMid(I,J) + LPRTJ = .true. + ENDIF + + !----------------------------------------------------------------- + ! Solar zenith angle + !----------------------------------------------------------------- + + ! Cosine of solar zenith angle [unitless] + U0 = State_Met%SUNCOSmid(I,J) + + ! Solar zenith angle + SZA = ACOS( MIN( MAX( U0, -1._fp ), 1._fp ) ) / PI_180 + + ! Skip if dark conditions SZA > 98.0 deg => tan ht = 63 km + if (SZA .gt. 98.e+0_fp) cycle + + ! Offset used for GEOS-Chem with fast-jx is 186; 172 in Cloud-J + SOLF = 1.e+0_fp - ( 0.034e+0_fp & + * cos( dble( DAY_OF_YEAR - 172 ) * 2.e+0_fp * PI / 365.e+0_fp ) ) + + !----------------------------------------------------------------- + ! Vertical climatology profiles + !----------------------------------------------------------------- + ! Cloud-J requires climatology vertical profiles for: + ! Temperature [K] + ! Ozone [# O3 molec/cm2] + ! Edge altitude [cm] + ! Path density (air column) [# molec/cm2] + ! We compute these from CTM values per timestep + + ! Temperature profile [K] + T_CTM(1:State_Grid%NZ) = State_Met%T(I,J,1:State_Grid%NZ) + T_CTM(State_Grid%NZ+1) = T_CTM(State_Grid%NZ) + + ! Pressure profile [hPa] + P_CTM(1:State_Grid%NZ+1) = State_Met%PEDGE(I,J,1:State_Grid%NZ+1) + P_CTM(State_Grid%NZ+2) = State_Met%PEDGE(I,J,State_Grid%NZ+1) / 10.d0 + + ! Ozone profile [molec/cm3] + MaxLev = State_Met%ChemGridLev(I,J) + O3_CTM = 0e+0_fp + O3_CTM(1:MaxLev) = State_Chm%Species(id_O3)%Conc(I,J,1:MaxLev) + + ! Compute climatology. This subroutine is analogous to Cloud-J ACLIM_FJX. + CALL Set_Clim_Profiles (I, J, MONTH, DAY, & + T_CTM, P_CTM, O3_CTM, & + T_CLIM, O3_CLIM, Z_CLIM, AIR_CLIM, & + Input_Opt, State_Grid, State_Chm ) + + !----------------------------------------------------------------- + ! Clouds and humidity + !----------------------------------------------------------------- + + CLDIW(:) = 0 ! Cloud type flag [0=none, 1=water, 2=ice, 3=both] + CLDF(:) = 0.d0 ! Cloud fraction [unitless] + IWP(:) = 0.d0 ! Ice cloud mass [g/m2] + LWP(:) = 0.d0 ! Water cloud mass [g/m2] + REFFI(:) = 0.d0 ! Ice cloud effective radius [microns] + REFFL(:) = 0.d0 ! Water cloud effective radius [microns] + + ! Set cloud fraction from input meteorology field + CLDF(1:State_Grid%NZ) = State_Met%CLDF(I,J,1:State_Grid%NZ) + CLDF(State_Grid%NZ+1) = CLDF(State_Grid%NZ) + + ! Set relative humidity from input meteorology field and convert + ! from percent to fraction + RRR(1:State_Grid%NZ) = State_Met%RH(I,J,1:State_Grid%NZ) / 100.d0 + + ! Set top of atmosphere relative humidity to 10% of layer below + RRR(State_Grid%NZ+1) = RRR(State_Grid%NZ) * 1.d-1 + + ! Loop over # layers in cloud-j (layers with clouds) + DO L = 1, LWEPAR + + ! Get in-cloud liquid and ice water content from met-fields [kg/kg] + LWC = State_Met%QL(I,J,L) + IWC = State_Met%QI(I,J,L) + + ! Compute cloud type flag and reset cloud fraction if below threshold + IF ( CLDF(L) .GT. 0.005d0 ) THEN + IF ( LWC .GT. 1.d-11 ) CLDIW(L) = 1 + IF ( IWC .GT. 1.d-11 ) CLDIW(L) = CLDIW(L) + 2 + ELSE + CLDF(L) = 0.d0 + ENDIF + + ! NOTES ON EFFECTIVE RADIUS FROM M. PRATHER: + ! Compute effective radius [microns] of liquid water cloud and liquid ice cloud + ! based on met-fields for in-cloud water content and in-cloud optical depth. + ! + ! Note: The approach used here is consistent with the cloud optical depth + ! calculation within Cloud-J but makes an assumption of extinction efficiency + ! Q = 2.06. This works because all cloud Reffs are much bigger + ! (2*pi*Reff >> 500 nm) so that Q (extinction efficiency = optical cross + ! section / pi*r*r) is nearly constant at 2.06 (see the cloud scattering + ! tables in Cloud-J). + + ! Compute liquid water path [g/m2] and effective radius [microns] + DELTA_P = P_CTM(L) - P_CTM(L+1) + IF ( State_Met%TAUCLW(I,J,L) .GT. 0.d0 ) THEN + LWP(L) = 1000.d0 * LWC * DELTA_P * g0_100 + REFFL(L) = LWP(L) * 0.75d0 * 2.06d0 / ( State_Met%TAUCLW(I,J,L) * 1.d0 ) + ENDIF + + ! Compute ice water path [g/m2] and effective radius [microns] + IF ( State_Met%TAUCLI(I,J,L) .GT. 0.d0 ) THEN + IWP(L) = 1000.d0 * IWC * DELTA_P * g0_100 + REFFI(L) = IWP(L) * 0.75d0 * 2.06d0 / ( State_Met%TAUCLI(I,J,L) * 0.917d0 ) + ENDIF + + ENDDO + + !----------------------------------------------------------------- + ! Compute concentrations per aerosol [g/m2] + !----------------------------------------------------------------- + ! AERSP is column concentration in g/m2 for each aerosol. The array currently + ! includes entries for clouds but these are not used in Cloud-J and can be + ! left as zero. Clouds are handled separately using water path and effective + ! radius computed above. + ! + ! AERSP size is (L1_, AN_) where, + ! AN_ is # of separate aerosols per layer (=37 for GEOS-Chem) + ! L1_ is # of layer of edges (=73) + + ! Initialize conentration array to zero + AERSP(:,:) = 0.d0 + + ! Only populate aerosol concentration array if using fullchem or aerosol + ! simulation. Mercury simulation does not carry dust/aerosols as species. + + IF ( Input_Opt%ITS_A_FULLCHEM_SIM .OR. Input_Opt%ITS_AN_AEROSOL_SIM ) THEN + + ! Set values in loop over levels + DO L= 1, State_Grid%NZ + + ! Layer height [m] + BoxHt = State_Met%BXHEIGHT(I,J,L) + + !--------------------------------------- + ! Non-aerosols in array + !-------------------------------------- + ! Leave AERSP(L,1:3) as zero since non-aerosols (black carbon + ! absorber, water cloud, and irregular ice cloud) + + !--------------------------------------- + ! Mineral dust [kg/m3] -> [g/m2] + !-------------------------------------- + DO K = 4, 10 + AERSP(L,K) = State_Chm%SOILDUST(I,J,L,K-3) * BoxHt * 1.d3 + ENDDO + + !--------------------------------------- + ! Aerosols undergoing hydroscopic growth + !-------------------------------------- + IF ( State_Met%InChemGrid(I,J,L) ) THEN + + ! For aerosols undergoing hygroscopic growth we need to pass the + ! concentration that will be used in Cloud-J with humidity-dependent + ! parameters. This means we need to convert from dry to wet concentration + ! depending on this grid cell's humidity. We do this by computing an + ! effective radius by linearly interpolating between LUT radius values + ! for each aerosol given the current relative humidity and then applying + ! a wet to dry conversion factor of ( Reff / Rdry )^^3 to the dry + ! concentration. This is only done for the hydrophilic concentrations. + ! Hydrophobic black and organic carbon are not converted to wet. + ! + ! In addition to this we apply two conversion factors to take into account + ! that Cloud-J does not interpolate extinction and effective radius between + ! relative humidity entries in FJX_spec-aer.dat when computing optical + ! depth. A conversion factor based on linear interpolation of the parameters + ! is computed and applied to the concentration passed into Cloud-J. This + ! effectively scales the extinction and radius within the optical depth + ! calculation within Cloud-J. For consistency with Fast-JX previously + ! implemented in GEOS-Chem we use values at 1000 nm for extinction interpolation. + ! + ! We also separate the concentration array into 5 different arrays, + ! one for each relative humidity entry in FJX_spec-aer.dat. Values are + ! zero in each array except where current relative humidity falls within the + ! pre-defined relative humidity range for each entry. For example, + ! AERSP(L,11-15) are 5 values of sulfate for the same grid box. If RH is + ! between 0 and 50 then only AERSP(L,11) is non-zero. AERSP(L,12:15) are + ! all zero values. + + ! Humidity bin for aerosols (1:<=50, 2:<=70, 3:<=80; 4:<=90, else 5) + RH_ind = Get_RH_Index( State_Met%RH(I,J,L) ) + + !---------------------------------------------------- + ! Sulfate [dry molec/cm3] -> [wet g/m2] (troposphere only) + !---------------------------------------------------- + + IF ( Input_Opt%LSULF .AND. State_Met%InTroposphere(I,J,L) ) THEN + + ! Get indexes to optical property LUT + S_rh0 = 3 + NDUST + NRHAER*(SO4_ind-1) + 1 ! SO4 index for RH=0 in NDXAER + S_rhx = S_rh0 + RH_ind - 1 ! Sulfate index for this RH + K_rh0 = NDXAER(L,S_rh0) ! index for RH=0 in FJX_spec-aer.dat + K_rhx = NDXAER(L,S_rhx) ! index for this RH in FJX_spec-aer.dat + + ! Get interpolated effective radius and extinction for RH in this grid box + IF ( RH_ind == NRH ) THEN + RAA_eff = RAA(K_rhx) + QAA_eff = QAA(ind_1000,K_rhx) + ELSE + FRAC = ( State_Met%RH(I,J,L) - RH_lut(RH_ind) ) & + / ( RH_lut(RH_ind+1) - RH_lut(RH_ind) ) + RAA_eff = RAA(K_rhx) + FRAC * ( RAA(K_rhx+1) - RAA(K_rhx) ) + QAA_eff = QAA(ind_1000,K_rhx) & + + FRAC * ( QAA(ind_1000,K_rhx+1) - QAA(ind_1000,K_rhx) ) + ENDIF + dry_to_wet_factor = ( RAA_eff / RAA(K_rh0) )**3 + R_interp_factor = RAA_eff / RAA(K_rhx) + Q_interp_factor = QAA_eff / QAA(ind_1000,K_rhx) + + ! Set concentration, converting [dry kg/m3] -> [wet g/m2] + AERSP(L,S_rhx) = State_Chm%AerMass%SO4_NH4_NIT(I,J,L) * BoxHt * 1.d3 * dry_to_wet_factor & + * Q_interp_factor / R_interp_factor + + ENDIF + + !---------------------------------------------------- + ! Carbon + !---------------------------------------------------- + IF ( Input_Opt%LCARB ) THEN + + !---------------------------------------------------- + ! Black carbon + !---------------------------------------------------- + + ! Get indexes to optical property LUT + S_rh0 = 3 + NDUST + NRHAER*(BC_ind-1) + 1 ! BC index for RH=0 in NDXAER + S_rhx = S_rh0 + RH_ind - 1 ! BC index for this RH + K_rh0 = NDXAER(L,S_rh0) ! index for RH=0 in FJX_spec-aer.dat + K_rhx = NDXAER(L,S_rhx) ! index for this RH in FJX_spec-aer.dat + + ! Get interpolated effective radius and extinction for RH in this grid box + IF ( RH_ind == NRH ) THEN + RAA_eff = RAA(K_rhx) ! effective radius + QAA_eff = QAA(ind_1000,K_rhx) ! scattering phase function + SAA_eff = SAA(ind_1000,K_rhx) ! single scattering albedo + ELSE + FRAC = ( State_Met%RH(I,J,L) - RH_lut(RH_ind) ) & + / ( RH_lut(RH_ind+1) - RH_lut(RH_ind) ) + RAA_eff = RAA(K_rhx) + FRAC * ( RAA(K_rhx+1) - RAA(K_rhx) ) + QAA_eff = QAA(ind_1000,K_rhx) + FRAC * ( QAA(ind_1000,K_rhx+1) - QAA(ind_1000,K_rhx) ) + SAA_eff = SAA(ind_1000,K_rhx) + FRAC * ( SAA(ind_1000,K_rhx+1) - SAA(ind_1000,K_rhx) ) + ENDIF + dry_to_wet_factor = ( RAA_eff / RAA(K_rh0) )**3 + R_interp_factor = RAA_eff / RAA(K_rhx) + Q_interp_factor = QAA_eff / QAA(ind_1000,K_rhx) + + ! Set concentration + IF ( Input_Opt%LBCAE ) THEN + + ! Apply BC absorption enhancement (if using) first for hydrophilic BC + AERSP(L,S_rhx) = State_Chm%AerMass%BCPI(I,J,L) & + * ( Input_Opt%BCAE_1 + SAA_eff * (1.d0 - Input_Opt%BCAE_1) ) & + * dry_to_wet_factor * Q_interp_factor / R_interp_factor + + ! Now apply hydrophobic using single scattering albedo for zero humidity + AERSP(L,S_rhx) = AERSP(L,S_rhx) + State_Chm%AerMass%BCPO(I,J,L) & + * ( Input_Opt%BCAE_2 + SAA(ind_1000,K_rh0) * (1.d0 - Input_Opt%BCAE_2) ) + ELSE + + ! No BC absorption enhancement + AERSP(L,S_rhx) = State_Chm%AerMass%BCPO(I,J,L) & + + State_Chm%AerMass%BCPI(I,J,L) & + * dry_to_wet_factor * Q_interp_factor / R_interp_factor + + ENDIF + + ! Convert to [dry kg/m3] -> [wet g/m2] + AERSP(L,S_rhx) = AERSP(L,S_rhx) * 1.d3 * BoxHt + + !---------------------------------------------------- + ! Organic carbon + !---------------------------------------------------- + + ! Get indexes to optical property LUT + S_rh0 = 3 + NDUST + NRHAER*(OC_ind-1) + 1 ! OC index for RH=0 in NDXAER + S_rhx = S_rh0 + RH_ind - 1 ! OC index for this RH + K_rh0 = NDXAER(L,S_rh0) ! index for RH=0 in FJX_spec-aer.dat + K_rhx = NDXAER(L,S_rhx) ! index for this RH in FJX_spec-aer.dat + + ! Get interpolated effective radius and extinction for RH in this grid box + IF ( RH_ind == NRH ) THEN + RAA_eff = RAA(K_rhx) + QAA_eff = QAA(ind_1000,K_rhx) + ELSE + FRAC = ( State_Met%RH(I,J,L) - RH_lut(RH_ind) ) & + / ( RH_lut(RH_ind+1) - RH_lut(RH_ind) ) + RAA_eff = RAA(K_rhx) + FRAC * ( RAA(K_rhx+1) - RAA(K_rhx) ) + QAA_eff = QAA(ind_1000,K_rhx) + FRAC * ( QAA(ind_1000,K_rhx+1) - QAA(ind_1000,K_rhx) ) + ENDIF + dry_to_wet_factor = ( RAA_eff / RAA(K_rh0) )**3 + R_interp_factor = RAA_eff / RAA(K_rhx) + Q_interp_factor = QAA_eff / QAA(ind_1000,K_rhx) + + ! Set concentration, converting [dry kg/m3] -> [wet g/m2] + AERSP(L,S_rhx) = ( State_Chm%AerMass%OCPO(I,J,L) & + + ( State_Chm%AerMass%OCPISOA(I,J,L) & + * dry_to_wet_factor * Q_interp_factor / R_interp_factor ) ) & + * 1.d3 * BoxHt + + ENDIF + + !---------------------------------------------------- + ! Seasalt [dry molec/cm3] -> [wet g/m2] + !---------------------------------------------------- + + IF ( Input_Opt%LSSALT ) THEN + + !---------------------------------------------------- + ! Accumulation mode seasalt + !---------------------------------------------------- + + ! Get indexes to optical property LUT + S_rh0 = 3 + NDUST + NRHAER*(SALA_ind-1) + 1 ! SALA index for RH=0 in NDXAER + S_rhx = S_rh0 + RH_ind - 1 ! SALA index for this RH + K_rh0 = NDXAER(L,S_rh0) ! index for RH=0 in FJX_spec-aer.dat + K_rhx = NDXAER(L,S_rhx) ! index for this RH in FJX_spec-aer.dat + + ! Get interpolated effective radius and extinction for RH in this grid box + IF ( RH_ind == NRH ) THEN + RAA_eff = RAA(K_rhx) + QAA_eff = QAA(ind_1000,K_rhx) + ELSE + FRAC = ( State_Met%RH(I,J,L) - RH_lut(RH_ind) ) & + / ( RH_lut(RH_ind+1) - RH_lut(RH_ind) ) + RAA_eff = RAA(K_rhx) + FRAC * ( RAA(K_rhx+1) - RAA(K_rhx) ) + QAA_eff = QAA(ind_1000,K_rhx) + FRAC * ( QAA(ind_1000,K_rhx+1) - QAA(ind_1000,K_rhx) ) + ENDIF + dry_to_wet_factor = ( RAA_eff / RAA(K_rh0) )**3 + R_interp_factor = RAA_eff / RAA(K_rhx) + Q_interp_factor = QAA_eff / QAA(ind_1000,K_rhx) + + ! Set concentration, converting [dry kg/m3] -> [wet g/m2] + AERSP(L,S_rhx) = State_Chm%AerMass%SALA(I,J,L) * BoxHt * 1.d3 * dry_to_wet_factor & + * Q_interp_factor / R_interp_factor + + !---------------------------------------------------- + ! Coarse seasalt + !---------------------------------------------------- + + ! Get indexes to optical property LUT + S_rh0 = 3 + NDUST + NRHAER*(SALC_ind-1) + 1 ! SALC index for RH=0 in NDXAER + S_rhx = S_rh0 + RH_ind - 1 ! SALC index for this RH + K_rh0 = NDXAER(L,S_rh0) ! index for RH=0 in FJX_spec-aer.dat + K_rhx = NDXAER(L,S_rhx) ! index for this RH in FJX_spec-aer.dat + + ! Get interpolated effective radius and extinction for RH in this grid box + IF ( RH_ind == NRH ) THEN + RAA_eff = RAA(K_rhx) + QAA_eff = QAA(ind_1000,K_rhx) + ELSE + FRAC = ( State_Met%RH(I,J,L) - RH_lut(RH_ind) ) & + / ( RH_lut(RH_ind+1) - RH_lut(RH_ind) ) + RAA_eff = RAA(K_rhx) + FRAC * ( RAA(K_rhx+1) - RAA(K_rhx) ) + QAA_eff = QAA(ind_1000,K_rhx) + FRAC * ( QAA(ind_1000,K_rhx+1) - QAA(ind_1000,K_rhx) ) + ENDIF + dry_to_wet_factor = ( RAA_eff / RAA(K_rh0) )**3 + R_interp_factor = RAA_eff / RAA(K_rhx) + Q_interp_factor = QAA_eff / QAA(ind_1000,K_rhx) + + ! Set concentration, converting [dry molec/cm3] -> [wet g/m2] + AERSP(L,S_rhx) = State_Chm%AerMass%SALC(I,J,L) * BoxHt * 1.d3 * dry_to_wet_factor & + * Q_interp_factor / R_interp_factor + + ENDIF + + ENDIF + + !------------------------ + ! Stratospheric aerosols + !------------------------ + + MW_g = State_Chm%SpcData(id_SO4)%Info%MW_g + + ! Use sulfate concentration for stratospheric aerosols. Only set if the optical + ! depth computed in GEOS-Chem is non-zero. + + ! SSA/LBS/STS + IF ( State_Chm%Phot%ODAER(I,J,L,State_Chm%Phot%IWV1000,6) > 0._fp ) THEN + AERSP(L,36) = State_Chm%Species(id_SO4)%Conc(I,J,L) & + * MW_g / AVO * BoxHt * 1e+6_fp + ENDIF + + ! NAT/ice PSCs + IF ( State_Chm%Phot%ODAER(I,J,L,State_Chm%Phot%IWV1000,7) > 0._fp ) THEN + AERSP(L,37) = State_Chm%Species(id_SO4)%Conc(I,J,L) & + * MW_g / AVO * BoxHt * 1e+6_fp + ENDIF + + ENDDO ! levels + + ENDIF ! fullchem/aerosol simulation only + + ! Set TOA equal to concentration in top level + AERSP(State_Grid%NZ+1,:) = AERSP(State_Grid%NZ,:) + + ! Debugging option to set contributions from different sources to zero. + ! Uncomment if using. + !IF ( .NOT. use_liqcld ) LWP(:) = 0.d0 + !IF ( .NOT. use_icecld ) IWP(:) = 0.d0 + !IF ( .NOT. use_dust ) AERSP(:,4:10) = 0.d0 + !IF ( .NOT. use_so4 ) AERSP(:,11:15) = 0.d0 + !IF ( .NOT. use_bc ) AERSP(:,16:20) = 0.d0 + !IF ( .NOT. use_oc ) AERSP(:,21:25) = 0.d0 + !IF ( .NOT. use_sala ) AERSP(:,26:30) = 0.d0 + !IF ( .NOT. use_salc ) AERSP(:,31:35) = 0.d0 + !IF ( .NOT. use_stratso4 ) AERSP(:,36) = 0.d0 + !IF ( .NOT. use_psc ) AERSP(:,37) = 0.d0 + + !----------------------------------------------------------------- + ! Set remaining inputs needed for Cloud_JX + !----------------------------------------------------------------- + + ! UV surface albedo [unitless] + ! Use same value for all levels and wavelengths + RFL(1:5,:) = State_Met%UVALBEDO(I,J) + + ! Cloud correlation coefficient + CLDCOR = 0.33 + + ! Only used for CLDFLAG = 5 + IRAN = 1 + + ! Required variables that are not used + HHH = 0.d0 + CCC = 0.d0 + + !----------------------------------------------------------------- + ! Call Cloud_JX + !----------------------------------------------------------------- + + ! Cloud_JX output list for easy reference: + ! SKPERD, SWMSQ, OD18, NICA, JCOUNT, LDARK, WTQCA + + ! ewl debug + IF ( LPRTJ ) THEN + print *, "Calling Cloud_JX with the following inputs: " + print *, " -> U0 : ", U0 + print *, " -> SZA : ", SZA + print *, " -> RFL : ", RFL + print *, " -> SOLF : ", SOLF + print *, " -> P_CTM : ", P_CTM + print *, " -> Z_CLIM : ", Z_CLIM + print *, " -> T_CLIM : ", T_CLIM + print *, " -> HHH : ", HHH + print *, " -> AIR_CLIM : ", AIR_CLIM + print *, " -> RRR : ", RRR + print *, " -> O3_CLIM : ", O3_CLIM + print *, " -> CCC : ", CCC + print *, " -> LWP : ", LWP + print *, " -> IWP : ", IWP + print *, " -> REFFL : ", REFFL + print *, " -> REFFI : ", REFFI + print *, " -> CLDF : ", CLDF + print *, " -> CLDCOR : ", CLDCOR + print *, " -> CLDIW : ", CLDIW + print *, " -> AERSP : ", AERSP + print *, " -> IRAN : ", IRAN + ENDIF + + CALL Cloud_JX( U0, SZA, RFL, SOLF, LPRTJ, & + P_CTM, Z_CLIM, T_CLIM, HHH, AIR_CLIM, & + RRR, O3_CLIM, CCC, LWP, IWP, & + REFFL, REFFI, CLDF, CLDCOR, CLDIW, & + AERSP, NDXAER, L1_, AN_, JVN_, & + VALJXX, SKPERD, SWMSQ, OD18, IRAN, & + NICA, JCOUNT, LDARK, WTQCA ) + + !----------------------------------------------------------------- + ! Fill GEOS-Chem array ZPJ with J-values + !----------------------------------------------------------------- + DO L=1,State_Grid%MaxChemLev + DO K=1,State_Chm%Phot%nPhotRxns + IF (JIND(K).gt.0) THEN + State_Chm%Phot%ZPJ(L,K,I,J) = VALJXX(L,JIND(K))*JFACTA(K) + ELSE + State_Chm%Phot%ZPJ(L,K,I,J) = 0.e+0_fp + ENDIF + ENDDO + ENDDO + + ! Set J-rates outside the chemgrid to zero + IF (State_Grid%MaxChemLev.lt.L_) THEN + DO L=State_Grid%MaxChemLev+1,L_ + DO K=1,State_Chm%Phot%nPhotRxns + State_Chm%Phot%ZPJ(L,K,I,J) = 0.e+0_fp + ENDDO + ENDDO + ENDIF + + !----------------------------------------------------------------- + ! Diagnostics for 600 nm optical depth computed in Cloud-J + !----------------------------------------------------------------- + IF ( State_Diag%Archive_OD600 ) THEN + State_Diag%OD600(I,J,1:State_Grid%NZ) = OD18(1:State_Grid%NZ) + ENDIF + IF ( State_Diag%Archive_TCOD600 ) THEN + State_Diag%TCOD600(I,J) = SUM(OD18(:)) + ENDIF + + !----------------------------------------------------------------- + ! UV radiative flux diagnostics (direct, diffuse, net) [W/m2] + ! Convention: negative is downwards + !----------------------------------------------------------------- + IF ( State_Diag%Archive_UVFluxDiffuse .or. & + State_Diag%Archive_UVFluxDirect .or. & + State_Diag%Archive_UVFluxNet ) THEN + + ! Loop over wavelength bins + DO K = 1, W_ + + ! Initialize + FDIRECT = 0.0_fp + FDIFFUSE = 0.0_fp + + ! ewl: this is messed up. FSBOT and FJBOT aren't set. + + ! Direct & diffuse fluxes at each level + FDIRECT(1) = FSBOT(K) ! surface + FDIFFUSE(1) = FJBOT(K) ! surface + DO L = 2, State_Grid%NZ + FDIRECT(L) = FDIRECT(L-1) + FLXD(L-1,K) + FDIFFUSE(L) = FJFLX(L-1,K) + ENDDO + + ! Constant to multiply UV fluxes at each wavelength bin + UVX_CONST = SOLF * FL(K) * State_Chm%Phot%UVXFACTOR(K) + + ! Archive into diagnostic arrays + DO L = 1, State_Grid%NZ + + IF ( State_Diag%Archive_UVFluxNet ) THEN + S = State_Diag%Map_UvFluxNet%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%UVFluxNet(I,J,L,S) = & + State_Diag%UVFluxNet(I,J,L,S) + & + ( ( FDIRECT(L) + FDIFFUSE(L) ) * UVX_CONST ) + ENDIF + ENDIF + + IF ( State_Diag%Archive_UVFluxDirect ) THEN + S = State_Diag%Map_UvFluxDirect%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%UVFluxDirect(I,J,L,S) = & + State_Diag%UVFluxDirect(I,J,L,S) + & + ( FDIRECT(L) * UVX_CONST ) + ENDIF + ENDIF + + IF ( State_Diag%Archive_UVFluxDiffuse ) THEN + S = State_Diag%Map_UvFluxDiffuse%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%UVFluxDiffuse(I,J,L,S) = & + State_Diag%UVFluxDiffuse(I,J,L,S) + & + ( FDIFFUSE(L) * UVX_CONST ) + ENDIF + ENDIF + ENDDO + ENDDO + ENDIF + + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ! Reset first-time flag + FIRST=.FALSE. + + END SUBROUTINE Run_CloudJ +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: set_clim_profiles +! +! !DESCRIPTION: Subroutine SET\_CLIM_\PROFILES sets vertical climatology profiles +! for a given latitude and longitude. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Set_Clim_Profiles( ILON, ILAT, MONTH, DAY, & + T_CTM, P_CTM, O3_CTM, & + T_CLIM, O3_CLIM, Z_CLIM, AIR_CLIM, & + Input_Opt, State_Grid, State_Chm ) +! +! !USES: +! + USE Cldj_Cmn_Mod, ONLY : L_, L1_, ZZHT + USE Input_Opt_Mod, ONLY : OptInput + USE PhysConstants, ONLY : AIRMW, AVO, g0, BOLTZ + USE State_Grid_Mod, ONLY : GrdState + USE State_Chm_Mod, ONLY : ChmState +! +! !INPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: ILON ! Longitude index + INTEGER, INTENT(IN) :: ILAT ! Latitude index + INTEGER, INTENT(IN) :: MONTH ! Month + INTEGER, INTENT(IN) :: DAY ! Day *of month* + REAL(fp), INTENT(IN) :: T_CTM(L1_) ! CTM temperatures (K) + REAL(fp), INTENT(IN) :: P_CTM(L1_+1) ! CTM edge pressures (hPa) + REAL(fp), INTENT(IN) :: O3_CTM(L1_) ! CTM ozone (molec/cm3) + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object +! +! !OUTPUT VARIABLES: +! + REAL(fp), INTENT(OUT) :: T_CLIM(L1_) ! Clim. temperatures (K) + REAL(fp), INTENT(OUT) :: Z_CLIM(L1_+1) ! Edge altitudes (cm) + REAL(fp), INTENT(OUT) :: O3_CLIM(L1_) ! O3 column depth (#/cm2) + REAL(fp), INTENT(OUT) :: AIR_CLIM(L1_) ! O3 column depth (#/cm2) +! +! !REMARKS: +! +! !REVISION HISTORY: +! 14 Dec 2022 - E. Lundgren - Adapted from Set_Prof_FastJX for use with Cloud-J +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER :: J, K, L, M + REAL(fp) :: DLOGP,F0,T0,PB,PC,XC,MASFAC,SCALEH + REAL(fp) :: PSTD(52),OREF2(51),TREF2(51) + REAL(fp) :: PROFCOL + + !================================================================= + ! Set_Clim_Profiles begins here! + !================================================================= + + !================================================================= + ! Set up pressure levels for O3/T climatology - assume that value + ! given for each 2 km z* level applies from 1 km below to 1 km + ! above, so select pressures at these boundaries. Surface level + ! values at 1000 mb are assumed to extend down to the actual + ! surface pressure for this lat/lon. + !================================================================= + PSTD(1) = MAX(P_CTM(1),1000.e+0_fp) + PSTD(2) = 1000.e+0_fp * 10.e+0_fp ** (-1.e+0_fp/16.e+0_fp) + DLOGP = 10.e+0_fp**(-2.e+0_fp/16.e+0_fp) + DO K=3,51 + PSTD(K) = PSTD(K-1) * DLOGP + ENDDO + PSTD(52) = 0.e+0_fp + + ! Mass factor - delta-Pressure [hPa] to delta-Column [molec/cm2] + MASFAC = 100.e+0_fp * AVO / ( AIRMW * g0 * 10.e+0_fp ) + + ! Select appropriate monthly and latitudinal profiles + ! Now use State_Grid%YMid instead of Oliver's YDGRD(NSLAT) + M = MAX( 1, MIN( 12, MONTH ) ) + J = MAX( 1, MIN( 18, ( INT(State_Grid%YMid(ILON,ILAT)) + 99 ) / 10 ) ) + + ! Temporary arrays for climatology data + DO K = 1, 51 + OREF2(K) = State_Chm%Phot%OREF(K,J,M) + TREF2(K) = State_Chm%Phot%TREF(K,J,M) + ENDDO + + ! Apportion O3 and T on supplied climatology z* levels onto CTM levels + ! with mass (pressure) weighting, assuming constant mixing ratio and + ! temperature half a layer on either side of the point supplied. + DO L = 1, L1_ + F0 = 0.e+0_fp + T0 = 0.e+0_fp + DO K = 1, 51 + PC = MIN( P_CTM(L), PSTD(K) ) + PB = MAX( P_CTM(L+1), PSTD(K+1) ) + IF ( PC .GT. PB ) THEN + XC = ( PC - PB ) / ( P_CTM(L) - P_CTM(L+1) ) + F0 = F0 + OREF2(K)*XC + T0 = T0 + TREF2(K)*XC + ENDIF + ENDDO + T_CLIM(L) = T0 + O3_CLIM(L) = F0 * 1.e-6_fp + ENDDO + + !================================================================= + ! Calculate effective altitudes using scale height at each level + !================================================================= + Z_CLIM(1) = 0.e+0_fp + DO L = 1, L_ + SCALEH = BOLTZ * 1.e+4_fp * MASFAC * T_CLIM(L) + Z_CLIM(L+1) = Z_CLIM(L) - ( LOG( P_CTM(L+1) / P_CTM(L) ) * SCALEH ) + ENDDO + Z_CLIM(L1_+1)=Z_CLIM(L1_) + ZZHT + + !================================================================= + ! Calculate column quantities for Cloud-J + !================================================================= + PROFCOL = 0e+0_fp + + DO L = 1, L1_ + + ! Monthly mean air Column [molec/cm2] + AIR_CLIM(L) = ( P_CTM(L) - P_CTM(L+1) ) * MASFAC + + ! Monthly mean O3 column [molec/cm2] + O3_CLIM(L) = O3_CLIM(L) * AIR_CLIM(L) + + ! Monthly mean O3 column [DU] + PROFCOL = PROFCOL + ( O3_CLIM(L) / 2.69e+16_fp ) + ENDDO + +!ewl: is this needed? + !! Top values are special (do not exist in CTM data) + !AIR_CLIM(L1_) = P_CTM(L1_) * MASFAC + !O3_CLIM(L1_) = O3_CLIM(L1_) * AIR_CLIM(L1_) + + ! Scale monthly O3 profile to the daily O3 profile (if available) + DO L = 1, L1_ + + ! Use online O3 values in the chemistry grid if selected; otherwise use + ! O3 values from the met fields or TOMS/SBUV + IF ( ( Input_opt%Use_Online_O3 ) & + .AND. ( L <= State_Grid%MaxChemLev ) & + .AND. ( O3_CTM(L) > 0e+0_fp ) ) THEN + + ! Convert from molec/cm3 to molec/cm2 + O3_CLIM(L) = O3_CTM(L) * (Z_CLIM(L+1)-Z_CLIM(L)) + + ELSEIF (State_Chm%TO3_Daily(ILON,ILAT) > 0e+0_fp) THEN + + ! NOTE: replaced O3_TOMS with State_Chm%TO3_Daily since is the equivalent + O3_CLIM(L) = O3_CLIM(L) * ( State_Chm%TO3_Daily(ILON,ILAT) / PROFCOL ) + + ENDIF + + ENDDO + + END SUBROUTINE Set_Clim_Profiles +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Get_RH_Index +! +! !DESCRIPTION: Function GET\_RH_\Index gets index corresponding to relative +! humidity bin used in Cloud-J tables (1-5). +!\\ +!\\ +! !INTERFACE: +! + FUNCTION Get_RH_Index( RH ) RESULT( index ) +! +! !INPUT PARAMETERS: +! + REAL(fp), INTENT(IN) :: RH ! Relative humidity [%] +! +! !RETURN VALUE: +! + INTEGER :: index +! +! !REMARKS: +! +! !REVISION HISTORY: +! 29 Nov 2023 - R. Yantosca - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC + + IF ( RH <= 50 ) THEN + index = 1 + RETURN + ENDIF + + IF ( RH <= 70 ) THEN + index = 2 + RETURN + ENDIF + + IF ( RH <= 80 ) THEN + index = 3 + RETURN + ENDIF + + IF ( RH <= 90 ) THEN + index = 4 + RETURN + ENDIF + + index = 5 + + END FUNCTION Get_RH_Index +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: CldJ_Dryrun_Check +! +! !DESCRIPTION: Checks if the CLOUD-J configuration files are present +! on disk or if they need to be downloaded by dry-run. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE CloudJ_DryRun_Check( Input_Opt ) +! +! USES: +! + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object +! +! !REMARKS: +! +! !REVISION HISTORY: +! 19 Dec 2023 - R. Yantosca - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC + ! Scalars + LOGICAL :: amIRoot + + ! Strings + CHARACTER(LEN=255) :: filePath + + !======================================================================== + ! CloudJ_DryRun_Check begins here! + !======================================================================== + amIRoot = Input_Opt%amIRoot + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'CJ77_inp.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'FJX_spec.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'FJX_scat-aer.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'FJX_scat-cld.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'FJX_scat-ssa.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'FJX_scat-UMa.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'FJX_scat-geo.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'atmos_std.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'atmos_h2och4.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'atmos_geomip.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + filePath = TRIM( Input_Opt%CloudJ_Dir ) // 'FJX_j2j.dat' + CALL Check_File_For_DryRun( filePath, amIRoot ) + + END SUBROUTINE CloudJ_DryRun_Check +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Check_File_For_DryRun +! +! !DESCRIPTION: Checks the status of a single file in dry-run simulations. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Check_File_for_DryRun( filePath, amIRoot ) +! +! USES: +! + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput +! +! !INPUT PARAMETERS: +! + CHARACTER(LEN=*), INTENT(IN) :: filePath ! Abs path of file to check + LOGICAL, INTENT(IN) :: amIRoot ! Are we on the root core? +! +! !REVISION HISTORY: +! 19 Dec 2023 - R. Yantosca - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC + + ! Scalars + LOGICAL :: fileExists + + ! Strings + CHARACTER(LEN=512) :: fileMsg + + !======================================================================== + ! Check_File_for_DryRun begins here! + !======================================================================== + + ! Test if the file exists + INQUIRE( FILE=TRIM( filePath ), EXIST=fileExists ) + + ! Test if the file exists and define an output string + IF ( fileExists ) THEN + fileMsg = 'PHOTOLYSIS (dry-run): Opening' + ELSE + fileMsg = 'PHOTOLYSIS (dry-run): REQUIRED FILE NOT FOUND' + ENDIF + + ! Write to stdout for both regular and dry-run simulations + IF ( amIRoot ) THEN + WRITE( 6, 10 ) TRIM( fileMsg ), TRIM( filePath ) + 10 FORMAT( a, ' ', a ) + ENDIF + + END SUBROUTINE Check_File_For_DryRun +!EOC +END MODULE CLDJ_INTERFACE_MOD diff --git a/GeosCore/cleanup.F90 b/GeosCore/cleanup.F90 index db69c471c..29e80b632 100644 --- a/GeosCore/cleanup.F90 +++ b/GeosCore/cleanup.F90 @@ -15,11 +15,9 @@ SUBROUTINE CLEANUP( Input_Opt, State_Grid, ERROR, RC ) ! ! !USES: ! - USE AEROSOL_MOD, ONLY : CLEANUP_AEROSOL USE CARBON_MOD, ONLY : CLEANUP_CARBON USE Carbon_Gases_Mod, ONLY : Cleanup_Carbon_Gases USE CO2_MOD, ONLY : CLEANUP_CO2 - USE CMN_FJX_Mod, ONLY : Cleanup_CMN_FJX USE DEPO_MERCURY_MOD, ONLY : CLEANUP_DEPO_MERCURY USE DRYDEP_MOD, ONLY : CLEANUP_DRYDEP USE DUST_MOD, ONLY : CLEANUP_DUST @@ -30,7 +28,7 @@ SUBROUTINE CLEANUP( Input_Opt, State_Grid, ERROR, RC ) USE Grid_Registry_Mod, ONLY : Cleanup_Grid_Registry USE History_Mod, ONLY : History_Cleanup USE Input_Opt_Mod, ONLY : OptInput - USE ISORROPIAII_MOD, ONLY : CLEANUP_ISORROPIAII + USE AEROSOL_THERMODYNAMICS_MOD, ONLY : CLEANUP_ATE USE LAND_MERCURY_MOD, ONLY : CLEANUP_LAND_MERCURY USE LINEAR_CHEM_MOD, ONLY : CLEANUP_LINEAR_CHEM USE MERCURY_MOD, ONLY : CLEANUP_MERCURY @@ -44,14 +42,9 @@ SUBROUTINE CLEANUP( Input_Opt, State_Grid, ERROR, RC ) USE SULFATE_MOD, ONLY : CLEANUP_SULFATE USE State_Grid_Mod, ONLY : GrdState USE TAGGED_CO_MOD, ONLY : CLEANUP_TAGGED_CO - USE UCX_MOD, ONLY : CLEANUP_UCX USE EMISSIONS_MOD, ONLY : EMISSIONS_FINAL USE SFCVMR_MOD, ONLY : FixSfcVmr_Final USE VDiff_Mod, ONLY : Cleanup_Vdiff -#ifdef BPCH_DIAG - USE CMN_O3_Mod, ONLY : Cleanup_CMN_O3 - USE DIAG_MOD, ONLY : CLEANUP_DIAG -#endif #ifdef TOMAS USE TOMAS_MOD, ONLY : CLEANUP_TOMAS !sfarina, 1/16/13 #endif @@ -118,11 +111,6 @@ SUBROUTINE CLEANUP( Input_Opt, State_Grid, ERROR, RC ) RETURN ENDIF - ! UCX needs to be cleaned up before emissions, because the UCX - ! restart variables needs to be passed to the HEMCO diagnostics - ! first. - CALL CLEANUP_UCX() - !================================================================= ! Cleanup HEMCO !================================================================= @@ -134,12 +122,11 @@ SUBROUTINE CLEANUP( Input_Opt, State_Grid, ERROR, RC ) !================================================================= ! Call cleanup routines from individual F90 modules !================================================================= - CALL CLEANUP_AEROSOL() CALL CLEANUP_CARBON() CALL CLEANUP_CO2() CALL CLEANUP_DRYDEP() CALL CLEANUP_DUST() - CALL CLEANUP_ISORROPIAII() + CALL CLEANUP_ATE() CALL CLEANUP_PJC_PFIX() CALL CLEANUP_PRESSURE() CALL CLEANUP_SEASALT() @@ -183,13 +170,6 @@ SUBROUTINE CLEANUP( Input_Opt, State_Grid, ERROR, RC ) RETURN ENDIF - CALL Cleanup_CMN_FJX( RC ) - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Cleanup_CMN_FJX"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - CALL CLEANUP_MERCURY() CALL CLEANUP_OCEAN_MERCURY() CALL CLEANUP_DEPO_MERCURY() @@ -217,16 +197,6 @@ SUBROUTINE CLEANUP( Input_Opt, State_Grid, ERROR, RC ) RETURN ENDIF -#ifdef BPCH_DIAG - - CALL Cleanup_CMN_O3( RC ) - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Cleanup_CMN_O3"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF -#endif - #ifdef RRTMG CALL Cleanup_RRTMG_Rad_Transfer( RC ) IF ( RC /= GC_SUCCESS ) THEN diff --git a/GeosCore/co2_mod.F90 b/GeosCore/co2_mod.F90 index 229b9dd8b..f6006bfc1 100644 --- a/GeosCore/co2_mod.F90 +++ b/GeosCore/co2_mod.F90 @@ -959,16 +959,8 @@ SUBROUTINE INIT_CO2( Input_Opt, State_Grid, RC ) INTEGER :: AS ! For values from Input_Opt - LOGICAL :: LFOSSIL LOGICAL :: LCHEMCO2 - LOGICAL :: LBIODIURNAL - LOGICAL :: LBIONETCLIM - LOGICAL :: LOCEAN - LOGICAL :: LSHIP - LOGICAL :: LPLANE - LOGICAL :: LFFBKGRD - LOGICAL :: LBIOSPHTAG, LFOSSILTAG, LSHIPTAG - LOGICAL :: LPLANETAG + LOGICAL :: LBIOSPHTAG, LFOSSILTAG !================================================================= ! INIT_CO2 begins here! @@ -982,18 +974,9 @@ SUBROUTINE INIT_CO2( Input_Opt, State_Grid, RC ) IF ( IS_INIT .or. Input_Opt%DryRun ) RETURN ! Copy values from Input_Opt - LFOSSIL = Input_Opt%LFOSSIL LCHEMCO2 = Input_Opt%LCHEMCO2 - LBIODIURNAL = Input_Opt%LBIODIURNAL - LBIONETCLIM = Input_Opt%LBIONETCLIM - LOCEAN = Input_Opt%LOCEAN - LSHIP = Input_Opt%LSHIP - LPLANE = Input_Opt%LPLANE - LFFBKGRD = Input_Opt%LFFBKGRD LBIOSPHTAG = Input_Opt%LBIOSPHTAG LFOSSILTAG = Input_Opt%LFOSSILTAG - LSHIPTAG = Input_Opt%LSHIPTAG - LPLANETAG = Input_Opt%LPLANETAG ! Array for Fossil Fuel regions ALLOCATE( FOSSIL_REGION( State_Grid%NX, State_Grid%NY ), STAT=AS ) diff --git a/GeosCore/convection_mod.F90 b/GeosCore/convection_mod.F90 index fefe7868f..21c94414c 100644 --- a/GeosCore/convection_mod.F90 +++ b/GeosCore/convection_mod.F90 @@ -137,6 +137,7 @@ SUBROUTINE DO_CONVECTION( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetConvectionFull, & @@ -148,6 +149,9 @@ SUBROUTINE DO_CONVECTION( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetConvectionPBL, & diagPBL = NULL(), & mapDataPBL = State_Diag%Map_BudgetConvectionPBL, & + isLevs = State_Diag%Archive_BudgetConvectionLevs, & + diagLevs = NULL(), & + mapDataLevs = State_Diag%Map_BudgetConvectionLevs, & colMass = State_Diag%BudgetColumnMass, & before_op = .TRUE., & RC = RC ) @@ -230,11 +234,18 @@ SUBROUTINE DO_CONVECTION( Input_Opt, State_Chm, State_Diag, & ! to DO_CLOUD_CONVECTION, to gain computational efficiency !======================================================================= - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( J, I, AREA_M2, L, F, EC ) & - !$OMP PRIVATE( DIAG14, DIAG38, RC, N, NA, NW, S ) & - !$OMP SCHEDULE( DYNAMIC ) +#ifndef TOMAS + ! NOTE: For some reason, activating this parallel loop causes a + ! the ConvertBox_* routines in TOMAS washout to not convert units + ! properly. It seems to go away when we disable this parallel loop. + ! Return to look at this issue in the future, but disable it for now. + ! -- Bob Yantosca (28 Feb 2024) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( J, I, EC, AREA_M2, F, DIAG14, DIAG38, S, N, L, NW )& + !$OMP SCHEDULE( DYNAMIC, 8 )& + !$OMP COLLAPSE( 2 ) +#endif DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -327,7 +338,9 @@ SUBROUTINE DO_CONVECTION( Input_Opt, State_Chm, State_Diag, & ENDDO ENDDO +#ifndef TOMAS !$OMP END PARALLEL DO +#endif ! Return if COMPUTE_F returned an error IF ( RC /= GC_SUCCESS ) THEN @@ -350,6 +363,7 @@ SUBROUTINE DO_CONVECTION( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetConvectionFull, & @@ -361,6 +375,9 @@ SUBROUTINE DO_CONVECTION( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetConvectionPBL, & diagPBL = State_Diag%BudgetConvectionPBL, & mapDataPBL = State_Diag%Map_BudgetConvectionPBL, & + isLevs = State_Diag%Archive_BudgetConvectionLevs, & + diagLevs = State_Diag%BudgetConvectionLevs, & + mapDataLevs = State_Diag%Map_BudgetConvectionLevs, & colMass = State_Diag%BudgetColumnMass, & timeStep = DT_Conv, & RC = RC ) @@ -372,7 +389,7 @@ SUBROUTINE DO_CONVECTION( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF ENDIF - + END SUBROUTINE DO_CONVECTION !EOC !------------------------------------------------------------------------------ @@ -1111,15 +1128,38 @@ SUBROUTINE DO_CLOUD_CONVECTION( Input_Opt, & ! Call WASHOUT to compute the fraction of species lost ! to washout in grid box (I,J,K) - CALL WASHOUT( I, J, & - K, IC, BXHEIGHT(K), & - T(K), QDOWN, SDT, & - F_WASHOUT, H2O2s(K), SO2s(K), & + ! + ! For TOMAS, indicate that we are not calling WASHOUT + ! from wet deposition, so that the proper unit conversions + ! will be applied. -- Bob Yantosca (11 Apr 2024) + CALL WASHOUT( & + ! --- Input --- + I = I, & + J = J, & + L = K, & + N = IC, & + BXHEIGHT = BXHEIGHT(K), & + TK = T(K), & + PP = QDOWN, & + DT = SDT, & + F = F_WASHOUT, & + Input_Opt = Input_Opt, & + State_Grid = State_Grid, & + State_Met = State_Met, & #ifdef LUO_WETDEP - pHRain, & + pHRain = pHRain, & +#endif +#ifdef TOMAS + fromWetDep = .FALSE., & #endif - WASHFRAC, AER, Input_Opt, & - State_Chm, State_Grid, State_Met, RC ) + ! --- Input/Output --- + State_Chm = State_Chm, & + H2O2s = H2O2s(K), & + SO2s = SO2s(K), & + ! --- Output --- + WASHFRAC = WASHFRAC, & + KIN = AER, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN diff --git a/GeosCore/depo_mercury_mod.F90 b/GeosCore/depo_mercury_mod.F90 index 5f2ac2f97..bca9724fa 100644 --- a/GeosCore/depo_mercury_mod.F90 +++ b/GeosCore/depo_mercury_mod.F90 @@ -269,9 +269,9 @@ SUBROUTINE ADD_HG2_SNOWPACK( I, J, DEP_Hg2, State_Met, State_Chm, State_Diag ) DT = GET_TS_CHEM() ! Don't let fraction be greater than 1 - FRAC_SNOW_OR_ICE = MIN( State_Met%FRSNO(I,J) + & + FRAC_SNOW_OR_ICE = MIN( State_Met%FRSNOW(I,J) + & State_Met%FRSEAICE(I,J) + & - State_Met%FRLANDIC(I,J), 1e+0_fp) + State_Met%FRLANDICE(I,J), 1e+0_fp) IS_SNOW_OR_ICE = ( FRAC_SNOW_OR_ICE > 0e+0_fp ) ! Ocean fraction (vs land) diff --git a/GeosCore/diag3.F90 b/GeosCore/diag3.F90 deleted file mode 100644 index 007f40034..000000000 --- a/GeosCore/diag3.F90 +++ /dev/null @@ -1,1056 +0,0 @@ -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !MODULE: diag3.F90 -! -! !DESCRIPTION: Subroutine DIAG3 prints out diagnostics to the BINARY PUNCH -! format file. -!\\ -!\\ -! !INTERFACE: -! -SUBROUTINE DIAG3( Input_Opt, State_Chm, State_Grid, State_Met, RC ) -! -! !USES: -! - USE BPCH2_MOD ! For binary punch I/O routines - USE CMN_DIAG_MOD ! Diagnostic switches & arrays - USE CMN_FJX_MOD ! Fast-JX flux diagnostics - USE CMN_O3_MOD ! FMOL - USE CMN_SIZE_MOD, ONLY : NDSTBIN - USE DEPO_MERCURY_MOD ! For offline Hg simulation - USE DIAG_MOD ! For diagnostic arrays - USE DRYDEP_MOD ! For dry deposition - USE ErrCode_Mod - USE ERROR_MOD, ONLY : ERROR_STOP - USE FILE_MOD - USE HCO_TYPES_MOD, ONLY : DiagnCont - USE HCO_DIAGN_MOD - USE HCO_ERROR_MOD - USE HCO_State_GC_Mod, ONLY : HcoState - USE Input_Opt_Mod, ONLY : OptInput - USE TIME_MOD - USE PhysConstants, ONLY : AVO ! Avogadro's # - USE Precision_Mod ! For GEOS-Chem Precision (fp) - USE Species_Mod, ONLY : Species - USE State_Chm_Mod, ONLY : ChmState - USE State_Chm_Mod, ONLY : Ind_ - USE State_Grid_Mod, ONLY : GrdState - USE State_Met_Mod, ONLY : MetState - USE WETSCAV_MOD ! For wet deposition -#ifdef APM - ! Modules from GeosApm directory - USE APM_DRIV_MOD, ONLY : IFTEMPOUT - USE APM_DRIV_MOD, ONLY : TEMPOUT - USE APM_DRIV_MOD, ONLY : NTEMPOUT - USE APM_DRIV_MOD, ONLY : NPOUTSTEPS - USE APM_DRIV_MOD, ONLY : APM_RADFOUT - USE APM_INIT_MOD, ONLY : IFRADF -#endif -#ifdef TOMAS - USE TOMAS_MOD, ONLY : ICOMP, IDIAG, IBINS !(win, 1/25/10) -#endif - - IMPLICIT NONE -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: NA, nAdvect, nDryDep, NW, NFAM - INTEGER :: I, IREF, J, JREF, L, M, MM, MMB, Levs - INTEGER :: N, NN, NMAX, NTEST, N_TOT_TRC, T - INTEGER :: IE, IN, IS, IW, ITEMP(3) - INTEGER :: NSPECOUT - - INTEGER :: NN1 ! TOMAS tracers - INTEGER :: NBIN ! TOMAS bin counter (win, 1/25/10) - - REAL(fp) :: SCALE_TMP(State_Grid%NX,State_Grid%NY) - REAL(fp) :: SCALE_A3 - REAL(fp) :: SCALED, SCALEDYN - REAL(fp) :: SCALECONV, SCALESRCE, SCALECHEM - REAL(fp) :: SCALEDIAG, SCALE_ND66, SCALE_ND67 - REAL(fp) :: SCALERAD - REAL(fp) :: SCALEX, SECONDS, PMASS - REAL(fp) :: PRESSX, FDTT, AREA_M2 - REAL(fp) :: SCALE_I3 - REAL(f8) :: DIAGb, DIAGe - - ! For binary punch file, version 2.0 - CHARACTER (LEN=40) :: CATEGORY - REAL(f4) :: ARRAY(State_Grid%NX,State_Grid%NY,State_Grid%NZ+1) - REAL(f4) :: LONRES, LATRES - INTEGER :: IFIRST, JFIRST, LFIRST - INTEGER :: HALFPOLAR - INTEGER, PARAMETER :: CENTER180 = 1 - CHARACTER (LEN=20) :: MODELNAME - CHARACTER (LEN=40) :: UNIT - CHARACTER (LEN=40) :: RESERVED = '' - -#ifdef TOMAS - ! For ND06 diagnostics - CHARACTER(LEN=1) :: ISTR1 - CHARACTER(LEN=2) :: ISTR2 - - ! For ND60 TOMAS diagnostic, avoids an array temporary (bmy, 1/28/14) - REAL(f4) :: ARR2D(State_Grid%NY,State_Grid%NZ) -#endif - - ! Pointers - ! We need to define local arrays to hold corresponding values - ! from the Chemistry State (State_Chm) object. (mpayer, 12/6/12) - REAL(fp), POINTER :: Spc(:,:,:,:) - REAL(fp), POINTER :: AD(:,:,:) - - ! Interface w/ HEMCO diagnostics - INTEGER :: FLAG - INTEGER :: AFill - CHARACTER(LEN= 63) :: DiagnName, SrcName, SpcName, FullName - CHARACTER(LEN=255) :: MSG - TYPE(DiagnCont), POINTER :: DiagnCnt - REAL(fp) :: FACTOR, MW_G - REAL(fp), PARAMETER :: GPERKG = 1000e+0_fp - REAL(fp), PARAMETER :: MWC = 12e+0_fp ! hard-coded MW - REAL(fp), PARAMETER :: CM2PERM2 = 10000e+0_fp - REAL(fp), PARAMETER :: S_DMS = 32e+0_fp / 62e+0_fp - REAL(fp), PARAMETER :: S_SO2 = 32e+0_fp / 64e+0_fp - REAL(fp), PARAMETER :: S_SO4 = 32e+0_fp / 96e+0_fp - - CHARACTER(LEN=255), PARAMETER :: LOC = 'DIAG3 (diag3.F)' - - ! To point to the species database - CHARACTER(LEN=31) :: Name - TYPE(Species), POINTER :: SpcInfo - - ! Now define local tracer flags so that we can remove these from - ! tracerid_mod.F to facilitate FlexChem implementation (bmy, 5/2/16) - LOGICAL, SAVE :: FIRST = .TRUE. - INTEGER, SAVE :: id_Rn222 - INTEGER, SAVE :: id_Pb210, id_Pb210Strat - INTEGER, SAVE :: id_Be7, id_Be7Strat - INTEGER, SAVE :: id_Be10, id_Be10Strat - INTEGER, SAVE :: id_POPG - INTEGER, SAVE :: id_POPPOCPO, id_POPPOCPI - INTEGER, SAVE :: id_POPPBCPO, id_POPPBCPI - INTEGER, SAVE :: id_DST1, id_DST2, id_DST3, id_DST4 - INTEGER, SAVE :: id_DAL1, id_DAL2, id_DAL3, id_DAL4 - INTEGER, SAVE :: id_BCPI, id_OCPI, id_POA1, id_MTPA - INTEGER, SAVE :: id_LIMO, id_MTPO, id_TSOA1 - INTEGER, SAVE :: id_ASOA1, id_OPOA1, id_OPOG1 - INTEGER, SAVE :: id_SALA, id_SALC, id_MOPO - INTEGER, SAVE :: id_MOPI, id_DMS, id_SO2, id_SO4 - INTEGER, SAVE :: id_NH3, id_NO, id_CO, id_ALK4 - INTEGER, SAVE :: id_ACET, id_MEK, id_ALD2, id_PRPE - INTEGER, SAVE :: id_C3H8, id_CH2O, id_C2H6, id_CH4 - INTEGER, SAVE :: id_ISOP, id_C2H4, id_CHBR3, id_BR2 - INTEGER, SAVE :: id_DUST1, id_NK1, id_SF1, id_SS1 - INTEGER, SAVE :: id_ECIL1, id_ECOB1, id_OCIL1, id_OCOB1 - INTEGER, SAVE :: id_CH2BR2 - INTEGER, SAVE :: id_PAN, id_HNO3, id_EOH, id_MGLY - INTEGER, SAVE :: id_BENZ, id_TOLU, id_XYLE, id_MOH - INTEGER, SAVE :: id_NAP, id_POG1, id_POG2 -! -!****************************************************************************** -! DIAG3 begins here! -! -! Define scale factors for division. -! Add a small number (e.g. 1d-32) to prevent division by zero errors. -!****************************************************************************** -! - ! Assume success - RC = GC_SUCCESS - - ! Number of advected species - nAdvect = State_Chm%nAdvect - - ! Number of dry-deposited species - nDryDep = State_Chm%nDryDep - - ! Initialize - SpcInfo => NULL() - DiagnCnt => NULL() - - ! Now use counter variables from "time_mod.f" (bmy, 3/27/03) - DIAGb = GET_DIAGb() - DIAGe = GET_DIAGe() - SECONDS = ( DIAGe - DIAGb ) * 3600e+0_fp - SCALED = 1e+0_fp - SCALEDYN = DBLE( GET_CT_DYN() ) + 1e-32_fp - SCALECONV = DBLE( GET_CT_CONV() ) + 1e-32_fp - SCALESRCE = DBLE( GET_CT_EMIS() ) + 1e-32_fp - SCALECHEM = DBLE( GET_CT_CHEM() ) + 1e-32_fp - SCALERAD = DBLE( GET_CT_RAD() ) + 1e-32_fp - SCALE_A3 = DBLE( GET_CT_A3() ) + 1e-32_fp - SCALE_I3 = DBLE( GET_CT_I3() ) + 1e-32_fp - SCALEDIAG = DBLE( GET_CT_DIAG() ) + 1e-32_fp -! -!****************************************************************************** -! Now define local tracer flags for certain specialty simulations -! so that we can remove them from tracerid_mod.F (bmy, 5/2/16) -!****************************************************************************** -! - IF ( FIRST ) THEN - - ! Initialize - id_POPG = Ind_('POPG' ) - id_POPPOCPO = Ind_('POPPOCPO') - id_POPPOCPI = Ind_('POPPOCPI') - id_POPPBCPO = Ind_('POPPBCPO') - id_POPPBCPI = Ind_('POPPBCPI') - id_DST1 = Ind_('DST1' ) - id_DST2 = Ind_('DST2' ) - id_DST3 = Ind_('DST3' ) - id_DST4 = Ind_('DST4' ) - id_DAL1 = Ind_('DSTAL1' ) - id_DAL2 = Ind_('DSTAL2' ) - id_DAL3 = Ind_('DSTAL3' ) - id_DAL4 = Ind_('DSTAL4' ) - id_BCPI = Ind_('BCPI' ) - id_OCPI = Ind_('OCPI' ) - id_POA1 = Ind_('POA1' ) - id_MTPA = Ind_('MTPA' ) - id_LIMO = Ind_('LIMO' ) - id_MTPO = Ind_('MTPO' ) - id_TSOA1 = Ind_('TSOA1' ) - id_ASOA1 = Ind_('ASOA1' ) - id_OPOA1 = Ind_('OPOA1' ) - id_OPOG1 = Ind_('OPOG1' ) - id_SALA = Ind_('SALA' ) - id_SALC = Ind_('SALC' ) - id_MOPO = Ind_('MOPO' ) - id_MOPI = Ind_('MOPI' ) - id_DMS = Ind_('DMS' ) - id_SO2 = Ind_('SO2' ) - id_SO4 = Ind_('SO4' ) - id_NH3 = Ind_('NH3' ) - id_NO = Ind_('NO' ) - id_CO = Ind_('CO' ) - id_ALK4 = Ind_('ALK4' ) - id_ACET = Ind_('ACET' ) - id_MEK = Ind_('MEK' ) - id_ALD2 = Ind_('ALD2' ) - id_PRPE = Ind_('PRPE' ) - id_C3H8 = Ind_('C3H8' ) - id_CH2O = Ind_('CH2O' ) - id_C2H6 = Ind_('C2H6' ) - id_ISOP = Ind_('ISOP' ) - id_C2H4 = Ind_('C2H4' ) - id_CHBR3 = Ind_('CHBR3' ) - id_CH2BR2 = Ind_('CH2BR2' ) - id_BR2 = Ind_('BR2' ) - id_DUST1 = Ind_('DUST1' ) - id_NK1 = Ind_('NK1' ) - id_SF1 = Ind_('SF1' ) - id_SS1 = Ind_('SS1' ) - id_ECIL1 = Ind_('ECIL1' ) - id_ECOB1 = Ind_('ECOB1' ) - id_OCIL1 = Ind_('OCIL1' ) - id_OCOB1 = Ind_('OCOB1' ) - id_PAN = Ind_('PAN' ) - id_HNO3 = Ind_('HNO3' ) - id_MOH = Ind_('MOH' ) - id_EOH = Ind_('EOH' ) - id_MGLY = Ind_('MGLY' ) - id_BENZ = Ind_('BENZ' ) - id_TOLU = Ind_('TOLU' ) - id_XYLE = Ind_('XYLE' ) - id_NAP = Ind_('NAP' ) - id_POG1 = Ind_('POG1' ) - id_POG2 = Ind_('POG2' ) - - ! NOTE: CH4 can be an advected species (in CH4 or UCX-based sims), - ! or a non-advected species (tropchem, soa, soa-svpoa). We only - ! want to print out diagnostics if CH4 is an advected species, - ! so make sure to use the 'A' flag in the call to Ind_(). - ! (bmy, 6/23/16) - id_CH4 = Ind_('CH4', 'A') - - ! Reset first-time flag - FIRST = .FALSE. - ENDIF -! -!****************************************************************************** -! Setup for binary punch file: -! -! IFIRST, JFIRST, LFIRST = I, J, L indices of the starting grid box -! LONRES = State_Grid%DX, cast to REAL*4 -! LATRES = State_Grid%DY, cast to REAL*4 -!****************************************************************************** -! - IFIRST = State_Grid%XMinOffset + 1 - JFIRST = State_Grid%YMinOffset + 1 - LFIRST = 1 - LONRES = State_Grid%DX - LATRES = State_Grid%DY - - ! Get the proper model name and HALFPOLAR setting for the bpch file - MODELNAME = GET_MODELNAME( Input_Opt, State_Grid ) - HALFPOLAR = GET_HALFPOLAR() - - ! HEMCO interface: get pointer to HcoState object (of hcoi_gc_main_mod.F90) - IF ( .NOT. ASSOCIATED(HcoState) ) THEN - CALL ERROR_STOP ( 'HcoState not defined!', LOC ) - ENDIF - -#ifdef TOMAS - - !**************************************************************************** - ! ND44: Drydep flux (molec/cm2/s) and velocity (cm/s) diagnostics - ! - ! # : Field : Quantity : Units : Scale factor - ! ------------------------------------------------------------------------- - ! (1 ) : DRYD-FLX : drydep fluxes : molec/cm2/s or kg/s : SCALECHEM - ! (2 ) : DRYD-VEL : drydep velocities : cm/s : SCALECHEM - !**************************************************************************** - IF ( ND44 > 0 ) THEN - - !============================================================== - ! Drydep fluxes - !============================================================== - - ! Category name - CATEGORY = 'DRYD-FLX' - - ! # of drydep flux tracers - IF ( Input_Opt%ITS_A_TAGO3_SIM .or. & - Input_Opt%ITS_A_MERCURY_SIM ) THEN - M = nAdvect - ELSE - ! Extend dry dep tracers if TOMAS aerosol is turned on - IF ( id_NK1 > 0 ) THEN - M = nDryDep + ( ( ICOMP - IDIAG )* IBINS ) - ELSE - M = nDryDep - ENDIF - ENDIF - - ! Loop over drydep species - DO N = 1, M - - IF ( Input_Opt%ITS_A_RnPbBe_SIM ) THEN - - ! NOTE: ND44 is now archived in molec/cm2/s for all - ! simulations, including Rn-Pb-Be. (bmy, 6/16/15) - UNIT = 'molec/cm2/s' - NN = State_Chm%Map_DryDep(N) - - ELSE IF ( Input_Opt%ITS_A_TAGO3_SIM .or. & - Input_Opt%ITS_A_MERCURY_SIM ) THEN - - ! Tagged O3 or Tagged Hg - UNIT = 'molec/cm2/s' - NN = N - - ELSE - - ! Other simulations - UNIT = 'molec/cm2/s' - - ! For extended drydep tracers, assign tracer ID of the TOMAS - ! aerosol mass (win, 7/14/09) - IF ( N <= nDryDep ) THEN - NN = State_Chm%Map_DryDep(N) - NN1 = NN - ELSE - ! To calculate the id_xxx of the associated - ! tracer. (ccc, 3/11/10) - NN = MOD( N - nDryDep-1, IBINS ) + id_NK1 - - ! Tracer number for bpch file - NN1 = ( N - nDryDep ) + ( id_NK1 + IBINS - 1 ) - ENDIF - - ENDIF - - ! To output only the species asked in geoschem_config.yml - ! (ccc, 5/15/09) - MM = 1 - MMB = 0 - DO WHILE ( MMB /= NN .AND. MM <= TMAX(44) ) - MMB = TINDEX(44,MM) - MM = MM + 1 - ENDDO - - ! Save into ARRAY - ARRAY(:,:,1) = ( AD44(:,:,N,1) / SCALECHEM ) - - ! Write to file - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NN1, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 1, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1) ) - - ENDDO - - !============================================================== - ! Drydep velocities - !============================================================== - - ! Category and Unit - CATEGORY = 'DRYD-VEL' - UNIT = 'cm/s' - - ! # of drydep velocity tracers - IF ( Input_Opt%ITS_A_TAGO3_SIM ) THEN - M = 1 - ELSE IF ( Input_Opt%ITS_A_MERCURY_SIM ) THEN ! Ask Helen - M = 3 - ELSE - M = nDryDep - ENDIF - - ! Loop over drydep tracers - DO N = 1, M - - NN = State_Chm%Map_DryDep(N) - ! To output only the species asked in geoschem_config.yml - ! (ccc, 5/15/09) - MM = 1 - MMB = 0 - DO WHILE ( MMB /= NN .AND. MM <= TMAX(44) ) - MMB = TINDEX(44,MM) - MM = MM + 1 - ENDDO - - ! Tracer number plus GAMAP offset - ARRAY(:,:,1) = AD44(:,:,N,2) / SCALESRCE - - ! Write to file - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NN, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 1, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1) ) - - ENDDO - ENDIF - - !**************************************************************************** - ! ND06: Dust aerosol emissions - ! - ! # : Field : Description : Units : Scale factor - ! -------------------------------------------------------------------------- - ! (1) DUST : Soil dust (4 different classes) : kg : 1 - !**************************************************************************** - IF ( ND06 > 0 .and. Input_Opt%LDUST .and. Input_Opt%DoEmissions ) THEN - - ! Category & unit string - UNIT = 'kg' - CATEGORY = 'DUSTSRCE' - FACTOR = 1.0e+0_fp - - ! Loop over # of dust bins (obtained from CMN_SIZE_mod) - DO N = 1, NDSTBIN - - !---------------------------------------------------- - ! TOMAS simulations: many dust tracers - !---------------------------------------------------- - - ! Tracer number - NN = id_DUST1 + ( N - 1 ) - - ! Get TOMAS dust string - IF ( N < 10 ) THEN - WRITE( ISTR1,'(i1)' ) N - DiagnName = 'AD06_DUST' // ISTR1 - ELSE - WRITE( ISTR2,'(i2)' ) N - DiagnName = 'AD06_DUST' // ISTR2 - ENDIF - - ! Write HEMCO diagnostics to bpch file - CALL DIAG2BPCH( HcoState, DiagnName, CATEGORY, & - UNIT, NN, 1, -1, .FALSE., FACTOR, RC ) - - ENDDO !N - - ! Include Dust alkalinity sources tdf 6/18/2K8 - IF ( Input_Opt%LDSTUP ) THEN - DO N = 5, NDSTBIN*2 - - SELECT CASE ( N ) - CASE ( 5 ) - NN = id_DAL1 - DiagnName = 'AD06_DSTAL1' - CASE ( 6 ) - NN = id_DAL2 - DiagnName = 'AD06_DSTAL2' - CASE ( 7 ) - NN = id_DAL3 - DiagnName = 'AD06_DSTAL3' - CASE ( 8 ) - NN = id_DAL4 - DiagnName = 'AD06_DSTAL4' - END SELECT - - ! Write to HEMCO diagnostics to bpch file - CALL DIAG2BPCH( HcoState, DiagnName, CATEGORY, & - UNIT, NN, 1, -1, .FALSE., FACTOR, RC ) - ENDDO - ENDIF - - ENDIF - - !**************************************************************************** - ! ND59: Size-resolved primary aerosol emission (win, 8/22/07) - ! Unit is amount of aerosol per time of simulation e.g. sulfate[=] kg S - ! - ! # : Field : Description : Units : Scale Factor - ! --------------------------------------------------------------------------- - ! (1 ) NK-EMISS : Size-resolved number emission : No : 1 - ! (2 ) SF-EMISS : Size-resolved sulfate emission : kg S : 1 - ! (3 ) SS-EMISS : Size-resolved sea-salt emission : kg : 1 - ! (4 ) ECIL-SRC : Size-resolved H-phillic EC emission : kg : 1 - ! (5 ) ECOB-SRC : Size-resolved H-phobic EC emission : kg : 1 - ! (6 ) OCIL-SRC : Size-resolved H-phillic OC emission : kg : 1 - ! (7 ) OCOB-SRC : Size-resolved H-phobic OC emission : kg : 1 - ! (8 ) DUST-SRC : Size-resolved dust emission : kg : 1 - !**************************************************************************** - IF ( ND59 > 0 ) THEN - - !============================================================== - ! Size-resolved primary aerosol number emission - !============================================================== - UNIT = 'No.' - CATEGORY = 'NK-EMISS' - DO NBIN = 1,IBINS - N = id_NK1 + NBIN - 1 - DO L = 1, 2 - ARRAY(:,:,L) = AD59_NUMB(:,:,L,NBIN) - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, N, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 2, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:2) ) - ENDDO - - !============================================================== - ! Size-resolved primary aerosol sulfate mass emission - !============================================================== - UNIT = 'kg S' - CATEGORY = 'SF-EMISS' - DO NBIN = 1,IBINS - N = id_SF1 + NBIN - 1 - DO L = 1, 2 - ARRAY(:,:,L) = AD59_SULF(:,:,L,NBIN) - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, N, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 2, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:2) ) - ENDDO - - !============================================================== - ! Size-resolved primary aerosol sea-salt mass emission - !============================================================== - UNIT = 'kg' - CATEGORY = 'SS-EMISS' - DO NBIN = 1,IBINS - N = id_SS1 + NBIN - 1 - DO L = 1, 2 - ARRAY(:,:,L) = AD59_SALT(:,:,L,NBIN) - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, N, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 2, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:2) ) - ENDDO - - !============================================================== - ! Size-resolved primary Hydrophillic EC mass emission - !============================================================== - UNIT = 'kg' - CATEGORY = 'ECIL-SRC' - DO NBIN = 1,IBINS - N = id_ECIL1 - 1 + NBIN - DO L = 1, 2 - ARRAY(:,:,L) = AD59_ECIL(:,:,L,NBIN) - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, N, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 2, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:2) ) - ENDDO - - !============================================================== - ! Size-resolved primary Hydrophobic EC mass emission - !============================================================== - UNIT = 'kg' - CATEGORY = 'ECOB-SRC' - DO NBIN = 1,IBINS - N = id_ECOB1 - 1 + NBIN - DO L = 1, 2 - ARRAY(:,:,L) = AD59_ECOB(:,:,L,NBIN) - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, N, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 2, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:2) ) - ENDDO - - !============================================================== - ! Size-resolved primary Hydrophillic OC mass emission - !============================================================== - UNIT = 'kg' - CATEGORY = 'OCIL-SRC' - DO NBIN = 1,IBINS - N = id_OCIL1 - 1 + NBIN - DO L = 1, 2 - ARRAY(:,:,L) = AD59_OCIL(:,:,L,NBIN) - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, N, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 2, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:2) ) - ENDDO - - !============================================================== - ! Size-resolved primary Hydrophobic OC mass emission - !============================================================== - UNIT = 'kg' - CATEGORY = 'OCOB-SRC' - DO NBIN = 1,IBINS - N = id_OCOB1 - 1 + NBIN - DO L = 1, 2 - ARRAY(:,:,L) = AD59_OCOB(:,:,L,NBIN) - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, N, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 2, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:2) ) - ENDDO - - !============================================================== - ! Size-resolved dust mass emission - !============================================================== - UNIT = 'kg' - CATEGORY = 'DUST-SRC' - DO NBIN = 1,IBINS - N = id_DUST1 - 1 + NBIN - DO L = 1, 2 - ARRAY(:,:,L) = AD59_DUST(:,:,L,NBIN) - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, N, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, 2, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:2) ) - - ENDDO - - ENDIF - - !**************************************************************************** - ! ND60: TOMAS Aerosol microphysical rate (win, 7/9/07) - ! Unit is amount of aerosol per time of simulation e.g. sulfate[=] kg S - ! - ! # : Field : Description : Units : Scale Factor - ! --------------------------------------------------------------------------- - ! (1) TMS-COND : Condensation rate : no. or kg : NONE - ! (2) TMS-COAG : Coagulation rate : no. or kg : NONE - ! (3) TMS-NUCL : Nucleation rate : no. or kg : NONE - ! (4) TMS-AQOX : Aqueous oxidation rate : no. or kg : NONE - ! (5) AERO-FIX : Accumulated error fixed : no. or kg : NONE - ! (6) TMS-SOA : SOA condensation rate : no. or kg : NONE - !**************************************************************************** - IF ( ND60 > 0 ) THEN - - !============================================================== - ! Condensation rate - !============================================================== - - ! Category name - CATEGORY = 'TMS-COND' - DO M = 1,TMAX(60) - NN = TINDEX(60,M) - - SCALEX = 1.e+0_fp - - IF ( ( NN .ge. id_NK1 ) .and. & - ( NN .lt. id_NK1+IBINS ) ) THEN - UNIT = 'no.' - ELSE - UNIT = 'kg' - ENDIF - - DO L = 1, LD60 - ARR2D(:,L) = AD60_COND(1,:,L,M) / SCALEX - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NN, & - UNIT, DIAGb, DIAGe, RESERVED, & - 1, State_Grid%NY, LD60, IFIRST, & - JFIRST, LFIRST, ARR2D(:,1:LD60) ) - ENDDO - - !============================================================== - ! Coagulation rate - !============================================================== - - ! Category name - CATEGORY = 'TMS-COAG' - DO M = 1,TMAX(60) - NN = TINDEX(60,M) - - SCALEX = 1.e+0_fp - - IF ( ( NN .ge. id_NK1 ) .and. & - ( NN .lt. id_NK1+IBINS ) ) THEN - UNIT = 'no.' - ELSE - UNIT = 'kg' - ENDIF - - DO L = 1, LD60 - ARR2D(:,L) = AD60_COAG(1,:,L,M) / SCALEX - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NN, & - UNIT, DIAGb, DIAGe, RESERVED, & - 1, State_Grid%NY, LD60, IFIRST, & - JFIRST, LFIRST, ARR2D(:,1:LD60) ) - ENDDO - - !============================================================== - ! Nucleation rate - !============================================================== - - ! Category name - CATEGORY = 'TMS-NUCL' - DO M = 1,TMAX(60) - NN = TINDEX(60,M) - - SCALEX = 1.e+0_fp - - IF ( ( NN .ge. id_NK1 ) .and. & - ( NN .lt. id_NK1+IBINS ) ) THEN - UNIT = 'no.' - ELSE - UNIT = 'kg' - ENDIF - - DO L = 1, LD60 - ARR2D(:,L) = AD60_NUCL(1,:,L,M) / SCALEX - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NN, & - UNIT, DIAGb, DIAGe, RESERVED, & - 1, State_Grid%NY, LD60, IFIRST, & - JFIRST, LFIRST, ARR2D(:,1:LD60) ) - ENDDO - - !============================================================== - ! Aqueous oxidation rate - !============================================================== - - ! Category name - CATEGORY = 'TMS-AQOX' - DO M = 1,TMAX(60) - NN = TINDEX(60,M) - - SCALEX = 1.e+0_fp - - IF ( ( NN .ge. id_NK1 ) .and. & - ( NN .lt. id_NK1+IBINS ) ) THEN - UNIT = 'no.' - ELSE - UNIT = 'kg' - ENDIF - - DO L = 1, LD60 - ARR2D(:,L) = AD60_AQOX(1,:,L,M) / SCALEX - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NN, & - UNIT, DIAGb, DIAGe, RESERVED, & - 1, State_Grid%NY, LD60, IFIRST, & - JFIRST, LFIRST, ARR2D(:,1:LD60) ) - ENDDO - - !============================================================== - ! Error fudging during aerosol microphysics - !============================================================== - - ! Category name - CATEGORY = 'AERO-FIX' - DO M = 1,TMAX(60) - NN = TINDEX(60,M) - - SCALEX = 1.e+0_fp - - IF ( ( NN .ge. id_NK1 ) .and. & - ( NN .lt. id_NK1+IBINS ) ) THEN - UNIT = 'no.' - ELSE - UNIT = 'kg' - ENDIF - - DO L = 1, LD60 - ARR2D(:,L) = AD60_ERROR(1,:,L,M) / SCALEX - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NN, & - UNIT, DIAGb, DIAGe, RESERVED, & - 1, State_Grid%NY, LD60, IFIRST, & - JFIRST, LFIRST, ARR2D(:,1:LD60) ) - ENDDO - - !============================================================== - ! SOA Condensation rate (win, 9/25/07) - !============================================================== - - ! Category name - CATEGORY = 'TMS-SOA' - DO M = 1,TMAX(60) - NN = TINDEX(60,M) - - SCALEX = 1.e+0_fp - - IF ( ( NN .ge. id_NK1 ) .and. & - ( NN .lt. id_NK1+IBINS ) ) THEN - UNIT = 'no.' - ELSE - UNIT = 'kg' - ENDIF - - DO L = 1, LD60 - ARR2D(:,L) = AD60_SOA(1,:,L,M) / SCALEX - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NN, & - UNIT, DIAGb, DIAGe, RESERVED, & - 1, State_Grid%NY, LD60, IFIRST, & - JFIRST, LFIRST, ARR2D(:,1:LD60) ) - ENDDO - - ENDIF - - !**************************************************************************** - ! ND61: TOMAS microphysics process rate saved in 3-D (kg/s) - ! - ! Remark: for aerosol number, the unit 'kg' is used as a fake kg where - ! 1 fake kg = 1 aerosol number. - ! Molecular weight of aerosol number is 1g/mol and - ! - ! # : Field : Description : Units : Scale Factor - ! -------------------------------------------------------------------------- - ! (1) TOMAS-3D : 3-D microphysics rate : kg/s : SCALECHEM - !**************************************************************************** - IF ( ND61 > 0 ) THEN - CATEGORY = 'TOMAS-3D' - - DO M = 1, TMAX(61) - NN = TINDEX(61,M) - - SCALEX = SCALECHEM - - UNIT = 'cm-3s-1' - - DO L = 1, LD61 - ARRAY(:,:,L) = AD61(:,:,L,NN) / SCALEX - ENDDO - - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NN, & - UNIT, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, LD61, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:LD61) ) - ENDDO - ENDIF -#endif - -CONTAINS -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: diag2bpch -! -! !DESCRIPTION: Wrapper routine to get diagnostics from HEMCO and write -! them to bpch. This will look up diagnostics 'dName' and write the -! corresponding diagnostics array to the bpch output file. -!\\ -!\\ -! NOTE: This is a "bridge" routine intended to provide backwards compatibility -! with the existing GEOS-Chem diagnostics. Eventually we will write all -! GEOS-Chem diagnostics to netCDF format but we are not yet at that point. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE DIAG2BPCH( HcoState, dname, bcat, bUnit, bN, & - dAF, dZ, dOPTIONAL, dFACTOR, ERR, AreaScal ) -! -! !USES: -! - USE HCO_STATE_MOD, ONLY : HCO_State -! -! !INPUT PARAMETERS: -! - TYPE(HCO_State), POINTER :: HcoState ! HEMCO State object - CHARACTER(LEN=*), INTENT(IN) :: dname ! Diagnostics name - CHARACTER(LEN=*), INTENT(IN) :: bCat ! BPCH category - CHARACTER(LEN=*), INTENT(IN) :: bUnit ! BPCH units - INTEGER, INTENT(IN) :: bN ! BPCH ID - INTEGER, INTENT(IN) :: dAF ! AutoFill of diagnostic - INTEGER, INTENT(IN) :: dZ ! # of vertical levels - LOGICAL, INTENT(IN) :: dOPTIONAL ! Optional field? - REAL(fp), INTENT(IN) :: dFACTOR ! Scale factor - INTEGER, OPTIONAL :: AreaScal ! Area scaling -! -! !INPUT/OUTPUT PARAMETERS: -! - INTEGER, INTENT(INOUT) :: ERR ! Return code -! -! !REMARKS: -! (1) Data is multiplied by factor dFACTOR before writing to disk. -! (2) dAF determines the autofill flag used for the diagnostics lookup. -! (3) dZ are the number of vertical levels. Set to -1 for 2D arrays, -! otherwise a 3D array with exactly that many levels is written. -! (4) dOptional determines whether or not this is an optional diagnostics. -! For optional diagnostics, zeros are written out if no corresponding -! HEMCO diagnostics could be found (because it is undefined or because -! they have never been updated). For non-optional diagnostics, the -! routine stops with an error if no HEMCO diagnostics is found. -! (5) AScal can be used to multiply (1) or divide (-1) the data by the grid -! area. -! -! !REVISION HISTORY: -! 06 Aug 2014 - C. Keller - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !DEFINED PARAMETERS: -! - CHARACTER(LEN=255), PARAMETER :: LC = 'DIAG2BPCH (diag3.F)' -! -! !LOCAL VARIABLES: -! - ! Scalars - INTEGER :: II, FLG, LEVS, ASCL - CHARACTER(LEN=255) :: MG - - ! Pointers - TYPE(DiagnCont), POINTER :: DgnCont - - !================================================================= - ! DIAG2BPCH begins here! - !================================================================= - - ! Initialize - ARRAY = 0e0 - DgnCont => NULL() - - ! Set default for area scaling - ASCL = 0 - IF ( PRESENT(AreaScal) ) ASCL = AreaScal - - ! Get diagnostics - DgnCont => NULL() - CALL Diagn_Get( HcoState, .FALSE., DgnCont, & - FLG, ERR, cName=TRIM(dname), & - AutoFill=dAF, COL=HcoState%Diagn%HcoDiagnIDManual) - - ! If diagnostic not found, write error message - IF ( ERR /= HCO_SUCCESS ) THEN - MG = 'Cannot find diagnostics ' // TRIM(dname) - CALL ERROR_STOP ( MG, LC ) - ENDIF - - ! Vertical levels - levs = MAX(dz,1) - - ! Save into ARRAY. Apply scale factor if required - IF ( FLG == HCO_SUCCESS ) THEN - IF ( dz > 0 ) THEN - ARRAY(:,:,1:levs) = DgnCont%Arr3D%Val(:,:,1:levs) * dFACTOR - ELSE - ARRAY(:,:,1) = DgnCont%Arr2D%Val(:,:) * dFACTOR - ENDIF - ELSE - MG = 'No diagnostics returned: ' // TRIM(dname) - IF ( dOptional ) THEN - MG = TRIM(MG) // ' - will write zeros!' - CALL HCO_WARNING ( MG, ERR, THISLOC=LC ) - ARRAY(:,:,1:levs) = 0.0 - ELSE - CALL ERROR_STOP ( MG, LC ) - ENDIF - ENDIF - - ! Eventually scale by area - IF ( ASCL == 1 ) THEN - DO II=1,levs - ARRAY(:,:,II) = ARRAY(:,:,II) * HcoState%Grid%AREA_M2%Val(:,:) - ENDDO - ELSEIF ( ASCL == -1 ) THEN - DO II=1,levs - ARRAY(:,:,II) = ARRAY(:,:,II) / HcoState%Grid%AREA_M2%Val(:,:) - ENDDO - ENDIF - - ! Write to bpch file - CALL BPCH2( IU_BPCH, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, bCat, bN, & - bUnit, DIAGb, DIAGe, RESERVED, & - State_Grid%NX, State_Grid%NY, LEVS, IFIRST, & - JFIRST, LFIRST, ARRAY(:,:,1:levs) ) - - ! Return w/ success - ERR = HCO_SUCCESS - - ! Nullify pointer - DgnCont => NULL() - - END SUBROUTINE DIAG2BPCH -!EOC -END SUBROUTINE DIAG3 -#endif diff --git a/GeosCore/diag_mod.F90 b/GeosCore/diag_mod.F90 deleted file mode 100644 index 927f3c470..000000000 --- a/GeosCore/diag_mod.F90 +++ /dev/null @@ -1,111 +0,0 @@ -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !MODULE: diag_mod.F90 -! -! !DESCRIPTION: Module DIAG\_MOD contains declarations for allocatable arrays -! for use with GEOS-CHEM diagnostics. -!\\ -!\\ -! !INTERFACE: -! -MODULE DIAG_MOD -! -! !USES: -! - USE PRECISION_MOD ! For GEOS-Chem Precision (fp) - - IMPLICIT NONE - PUBLIC -! -! !PUBLIC MEMBER FUNCTIONS: -! - PUBLIC :: CLEANUP_DIAG -! -! !PUBLIC DATA MEMBERS: -! -#ifdef TOMAS - ! For ND44 -- Dry deposition fluxes & velocities - REAL*4, ALLOCATABLE :: AD44 (:,:,:,:) - REAL*4, ALLOCATABLE :: AD59_NUMB(:,:,:,:) - REAL*4, ALLOCATABLE :: AD59_SULF(:,:,:,:) - REAL*4, ALLOCATABLE :: AD59_SALT(:,:,:,:) - REAL*4, ALLOCATABLE :: AD59_ECIL(:,:,:,:) - REAL*4, ALLOCATABLE :: AD59_ECOB(:,:,:,:) - REAL*4, ALLOCATABLE :: AD59_OCIL(:,:,:,:) - REAL*4, ALLOCATABLE :: AD59_OCOB(:,:,:,:) - REAL*4, ALLOCATABLE :: AD59_DUST(:,:,:,:) - - ! For ND60 -- TOMAS condensation rate diagnostic - REAL*4, ALLOCATABLE :: AD60_COND (:,:,:,:) - REAL*4, ALLOCATABLE :: AD60_COAG (:,:,:,:) - REAL*4, ALLOCATABLE :: AD60_NUCL (:,:,:,:) - REAL*4, ALLOCATABLE :: AD60_AQOX (:,:,:,:) - REAL*4, ALLOCATABLE :: AD60_ERROR(:,:,:,:) - REAL*4, ALLOCATABLE :: AD60_SOA (:,:,:,:) - - ! For ND61 -- 3D TOMAS rate diagnostic - REAL*4, ALLOCATABLE :: AD61(:,:,:,:) - REAL*4, ALLOCATABLE :: AD61_inst(:,:,:,:) - - ! Prod/loss rates - REAL*4, ALLOCATABLE :: AD65(:,:,:,:) -#endif -! -! !REVISION HISTORY: -! 30 Nov 1999 - A. Fiore - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -CONTAINS -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: cleanup_diag -! -! !DESCRIPTION: Subroutine CLEANUP\_DIAG deallocates all module arrays. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE CLEANUP_DIAG() -! -! !REVISION HISTORY: -! 13 Dec 2002 - R. Yantosca - Initial version -!EOP -!------------------------------------------------------------------------------ -!BOC - !================================================================= - ! CLEANUP_DIAG begins here! - !================================================================= -#ifdef TOMAS - IF ( ALLOCATED( AD44 ) ) DEALLOCATE( AD44 ) - IF ( ALLOCATED( AD59_NUMB ) ) DEALLOCATE( AD59_NUMB ) - IF ( ALLOCATED( AD59_SULF ) ) DEALLOCATE( AD59_SULF ) - IF ( ALLOCATED( AD59_SALT ) ) DEALLOCATE( AD59_SALT ) - IF ( ALLOCATED( AD59_ECIL ) ) DEALLOCATE( AD59_ECIL ) - IF ( ALLOCATED( AD59_ECOB ) ) DEALLOCATE( AD59_ECOB ) - IF ( ALLOCATED( AD59_OCIL ) ) DEALLOCATE( AD59_OCIL ) - IF ( ALLOCATED( AD59_OCOB ) ) DEALLOCATE( AD59_OCOB ) - IF ( ALLOCATED( AD59_DUST ) ) DEALLOCATE( AD59_DUST ) - IF ( ALLOCATED( AD60_COND ) ) DEALLOCATE( AD60_COND ) - IF ( ALLOCATED( AD60_COAG ) ) DEALLOCATE( AD60_COAG ) - IF ( ALLOCATED( AD60_NUCL ) ) DEALLOCATE( AD60_NUCL ) - IF ( ALLOCATED( AD60_AQOX ) ) DEALLOCATE( AD60_AQOX ) - IF ( ALLOCATED( AD60_ERROR ) ) DEALLOCATE( AD60_ERROR ) - IF ( ALLOCATED( AD60_SOA ) ) DEALLOCATE( AD60_SOA ) - IF ( ALLOCATED( AD61 ) ) DEALLOCATE( AD61 ) - IF ( ALLOCATED( AD61_inst ) ) DEALLOCATE( AD61_inst ) - IF ( ALLOCATED( AD65 ) ) DEALLOCATE( AD65 ) -#endif - END SUBROUTINE CLEANUP_DIAG -!EOC -END MODULE DIAG_MOD -#endif diff --git a/GeosCore/diagnostics_mod.F90 b/GeosCore/diagnostics_mod.F90 index 821119501..40c1c9e12 100644 --- a/GeosCore/diagnostics_mod.F90 +++ b/GeosCore/diagnostics_mod.F90 @@ -24,6 +24,7 @@ MODULE Diagnostics_mod ! ! !PUBLIC MEMBER FUNCTIONS: ! + PUBLIC :: Set_AerMass_Diagnostic PUBLIC :: Set_Diagnostics_EndofTimestep PUBLIC :: Zero_Diagnostics_StartofTimestep PUBLIC :: Compute_Budget_Diagnostics @@ -284,6 +285,24 @@ SUBROUTINE Set_Diagnostics_EndofTimestep( Input_Opt, State_Chm, & RETURN ENDIF + IF ( State_Diag%Archive_SfcType ) THEN + State_Diag%IsWater = 0.0_fp + State_Diag%IsLand = 0.0_fp + State_Diag%IsIce = 0.0_fp + State_Diag%IsSnow = 0.0_fp + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED ) & + !$OMP PRIVATE( I, J ) + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + IF ( State_Met%IsWater(I,J) ) State_Diag%IsWater(I,J) = 1.0_fp + IF ( State_Met%IsLand(I,J) ) State_Diag%IsLand(I,J) = 1.0_fp + IF ( State_Met%IsIce(I,J) ) State_Diag%IsIce(I,J) = 1.0_fp + IF ( State_Met%IsSnow(I,J) ) State_Diag%IsSnow(I,J) = 1.0_fp + ENDDO + ENDDO + !$OMP END PARALLEL DO + ENDIF END SUBROUTINE Set_Diagnostics_EndofTimestep !EOC @@ -416,6 +435,7 @@ SUBROUTINE Set_SpcAdj_Diagnostic( Input_Opt, State_Chm, State_Diag, & USE State_Diag_Mod, ONLY : DgnMap USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState + USE UnitConv_Mod, ONLY : Check_Units, KG_SPECIES_PER_KG_DRY_AIR ! ! !INPUT PARAMETERS: ! @@ -463,9 +483,9 @@ SUBROUTINE Set_SpcAdj_Diagnostic( Input_Opt, State_Chm, State_Diag, & Found = .FALSE. ThisLoc = ' -> Set_SpcAdj_Diagnostic (in GeosCore/diagnostics_mod.F90)' - ! Verify that incoming State_Chm%Species units are kg/kg dry air. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - ErrMsg = 'Incorrect species units in Set_SpcAdj_Diags_VVDry!' // trim( State_Chm%Spc_Units) + ! Make sure all units are in kg/kg dry + IF ( .not. Check_Units( State_Chm, KG_SPECIES_PER_KG_DRY_AIR ) ) THEN + ErrMsg = 'Not all species are in "kg/kg dry" units!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -567,6 +587,7 @@ SUBROUTINE Set_SpcConc_Diags_VVDry( Input_Opt, State_Chm, State_Diag, & USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState USE Time_Mod, ONLY : Get_LocalTime + USE UnitConv_Mod, ONLY : Check_Units, KG_SPECIES_PER_KG_DRY_AIR ! ! !INPUT PARAMETERS: ! @@ -618,8 +639,8 @@ SUBROUTINE Set_SpcConc_Diags_VVDry( Input_Opt, State_Chm, State_Diag, & ' -> at Set_SpcConc_Diags_VVDry (in GeosCore/diagnostics_mod.F90)' ! Verify that incoming State_Chm%Species units are kg/kg dry air. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - ErrMsg = 'Incorrect species units in Set_SpcConc_Diags_VVDry!' + IF ( .not. Check_Units( State_Chm, KG_SPECIES_PER_KG_DRY_AIR ) ) THEN + ErrMsg = 'Not all species are in "kg/kg dry" units!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -826,6 +847,7 @@ SUBROUTINE Set_SpcConc_Diags_MND ( Input_Opt, State_Chm, State_Diag, & USE State_Diag_Mod, ONLY : DgnMap USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState + USE UnitConv_Mod, ONLY : Check_Units, KG_SPECIES_PER_KG_DRY_AIR ! ! !INPUT PARAMETERS: ! @@ -871,8 +893,8 @@ SUBROUTINE Set_SpcConc_Diags_MND ( Input_Opt, State_Chm, State_Diag, & ' -> at Set_SpcConc_Diags_MND (in GeosCore/diagnostics_mod.F90)' ! Verify that incoming State_Chm%Species units are kg/kg dry air. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - ErrMsg = 'Incorrect species units in Set_SpcConc_Diags_MND!' + IF ( .not. Check_Units( State_Chm, KG_SPECIES_PER_KG_DRY_AIR ) ) THEN + ErrMsg = 'Not all species are in "kg/kg dry" units!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -922,12 +944,14 @@ END SUBROUTINE Set_SpcConc_Diags_MND !\\ ! !INTERFACE: ! - SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & - State_Met, isFull, diagFull, & - mapDataFull, isTrop, diagTrop, & - mapDataTrop, isPBL, diagPBL, & - mapDataPBL, colMass, RC, & - timeStep, isWetDep, before_op ) + SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, & + isFull, diagFull, mapDataFull, & + isTrop, diagTrop, mapDataTrop, & + isPBL, diagPBL, mapDataPBL, & + isLevs, diagLevs, mapDataLevs, & + colMass, RC, timeStep, & + isWetDep, before_op ) ! ! !USES: ! @@ -937,10 +961,12 @@ SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & USE State_Diag_Mod, ONLY : DgnMap USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState + USE UnitConv_Mod, ONLY : Check_Units, KG_SPECIES_PER_KG_DRY_AIR ! ! !INPUT PARAMETERS: ! TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options object + TYPE(DgnState), INTENT(IN) :: State_Diag ! Diagnostic state object TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid state object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state obj LOGICAL, INTENT(IN) :: isFull ! T if full col diag on @@ -949,6 +975,8 @@ SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & TYPE(DgnMap), POINTER :: mapDataTrop ! Map to species indexes LOGICAL, INTENT(IN) :: isPBL ! T if PBL col diag on TYPE(DgnMap), POINTER :: mapDataPBL ! Map to species indexes + LOGICAL, INTENT(IN) :: isLevs ! T if fixed levels diag on + TYPE(DgnMap), POINTER :: mapDataLevs ! Map to species indexes LOGICAL, OPTIONAL :: isWetDep ! T = wetdep budgets LOGICAL, OPTIONAL :: before_op ! T = before operation REAL(f8), OPTIONAL :: timestep ! F = after operation @@ -959,6 +987,7 @@ SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & REAL(f8), POINTER :: diagFull(:,:,:) ! ptr to full col diag REAL(f8), POINTER :: diagTrop(:,:,:) ! ptr to trop col diag REAL(f8), POINTER :: diagPBL(:,:,:) ! ptr to pbl col diag + REAL(f8), POINTER :: diagLevs(:,:,:) ! ptr to levs col diag REAL(f8), POINTER :: colMass(:,:,:,:) ! Initial column mass ! (I,J,spc,col region) ! 1:full, 2:trop, 3:pbl @@ -978,8 +1007,8 @@ SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & ! ! Scalars LOGICAL :: after, before, wetDep - INTEGER :: I, J, L, N - INTEGER :: numSpc, region, topLev, S + INTEGER :: I, J, L, N, S + INTEGER :: numSpc, region, topLev, botLev REAL(f8) :: colSum, dt ! Arrays @@ -999,11 +1028,10 @@ SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & colSum = 0.0_f8 spcMass = 0.0_f8 - ! Exit if concentrations are not in [kg/kg dry] - IF ( State_Chm%Spc_Units /= 'kg/kg dry' ) THEN - errMsg = 'State_Chm%Species units must be kg/kg dry. ' // & - 'Incorrect units: '// TRIM( State_Chm%Spc_Units ) - CALL GC_Error( errMsg, RC, ThisLoc ) + ! Verify that incoming State_Chm%Species units are kg/kg dry air. + IF ( .not. Check_Units( State_Chm, KG_SPECIES_PER_KG_DRY_AIR ) ) THEN + ErrMsg = 'Not all species are in "kg/kg dry" units!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -1072,6 +1100,20 @@ SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & ENDIF ENDIF + ! Make sure mapDataLevs and diagLevs are not undefined + IF ( isLevs ) THEN + IF ( .not. ASSOCIATED( mapDataLevs ) ) THEN + errMsg = 'The mapDataLevs object is undefined!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + IF ( after .and. ( .not. ASSOCIATED( diagLevs ) ) ) THEN + errMsg = 'The diagLevs array is undefined!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ENDIF + ! Make sure the colMass array is not undefined IF ( .not. ASSOCIATED( colMass ) ) THEN errMsg = 'The colMass array is undefined!' @@ -1080,7 +1122,7 @@ SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & ENDIF !==================================================================== - ! Before operation: Compute column masses (full, trop, PBL) + ! Before operation: Compute column masses (full, trop, PBL, levs) ! ! After operation: Compute column differences (final-initial) ! and them update diagnostic arrays @@ -1093,9 +1135,10 @@ SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & ENDIF ! Loop over NX and NY dimensions - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, colSum, spcMass, topLev, S, N, L ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, S, N, L )& + !$OMP PRIVATE( colSum, spcMass, topLev, botLev ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -1245,6 +1288,55 @@ SUBROUTINE Compute_Budget_Diagnostics( Input_Opt, State_Chm, State_Grid, & ENDDO ENDIF + !--------------------------------------------------------------------- + ! Levs-only budget for each requested species + !--------------------------------------------------------------------- + IF ( isLevs ) THEN + + ! Top and bottom levels of column + topLev = State_Diag%BudgetTopLev_int + botLev = State_Diag%BudgetBotLev_int + + ! Loop over # of diagnostic slots + DO S = 1, mapDataLevs%nSlots + + ! Initialize column-specfic variables + colSum = 0.0_f8 + spcMass = 0.0_f8 + + ! For wetdep budgets, translate wetdep ID to modelId + ! Otherwise, get the modelId from the slotId + IF ( wetDep ) THEN + N = State_Chm%Map_WetDep(mapDataLevs%slot2Id(S)) + ELSE + N = mapDataLevs%slot2Id(S) + ENDIF + + ! Compute mass at each grid box in the column [kg] + DO L = botLev, topLev + spcMass(L) = State_Chm%Species(N)%Conc(I,J,L) * & + State_Met%AD(I,J,L) + ENDDO + + ! Compute column mass in Levs region [kg] + colSum = SUM( spcMass(botLev:topLev) ) + + ! Before operation: Compute initial Levs-column mass + ! After operation: Compute change in column mass (final-initial), + ! convert to [kg/s], and store in the diagLevs array. + IF ( before ) THEN + colMass(I,J,N,3) = colSum + ELSE +#ifdef MODEL_GEOS + diagLevs(I,J,S) = ( colSum - colMass(I,J,N,3) ) / timeStep & + / State_Grid%AREA_M2(I,J) +#else + diagLevs(I,J,S) = ( colSum - colMass(I,J,N,3) ) / timeStep +#endif + ENDIF + ENDDO + ENDIF + ENDDO ENDDO !$OMP END PARALLEL DO @@ -1329,11 +1421,14 @@ SUBROUTINE Do_Archive_SatDiagn( Input_Opt, State_Chm, State_Diag, & ! Get the species ID for OH if this is the first call IF ( first ) THEN - id_OH = Ind_('OH') - IF ( id_OH < 0 ) THEN - errMsg = 'OH is not a defined species in this simulation!!!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN + IF ( Input_Opt%ITS_A_CARBON_SIM .or. & + Input_Opt%ITS_A_FULLCHEM_SIM ) THEN + id_OH = Ind_('OH') + IF ( id_OH < 0 ) THEN + errMsg = 'OH is not a defined species in this simulation!!!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF ENDIF first= .FALSE. ENDIF @@ -1656,4 +1751,518 @@ SUBROUTINE Do_Archive_SatDiagn( Input_Opt, State_Chm, State_Diag, & END SUBROUTINE Do_Archive_SatDiagn !EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: set_aermass_diagnostic +! +! !DESCRIPTION: Computes the aerosol mass diagnostic. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Set_AerMass_Diagnostic( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) +! +! !USES: +! + USE Aerosol_Mod, ONLY : Is_POA, Is_OPOA, Is_OCPO, Is_OCPI + USE Aerosol_Mod, ONLY : Is_ComplexSOA, Is_SimpleSOA + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE Species_Mod, ONLY : Species, SpcConc + USE State_Chm_Mod, ONLY : ChmState + USE State_Chm_Mod, ONLY : Ind_ + USE State_Diag_Mod, ONLY : DgnState + USE State_Grid_Mod, ONLY : GrdState + USE State_Met_Mod, ONLY : MetState + USE PhysConstants, ONLY : MwCarb + USE UnitConv_Mod, ONLY : KG_SPECIES_PER_KG_DRY_AIR, UNIT_STR + USE UnitConv_Mod, ONLY : Check_Units +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostic State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REVISION HISTORY: +! 05 Feb 2018 - R. Yantosca - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + ! SAVEd scalars + LOGICAL :: First = .TRUE. + + ! Scalars + INTEGER :: I, J, L + + ! Strings + CHARACTER(LEN=255) :: ThisLoc + CHARACTER(LEN=512) :: ErrMsg + + ! Pointers + REAL(fp), POINTER :: AirDen(:,:,: ) + TYPE(SpcConc), POINTER :: Spc (: ) + TYPE(Species), POINTER :: SpcInfo + REAL(fp), POINTER :: OCFPOA (:,:) + REAL(fp), POINTER :: OCFOPOA (:,:) + REAL(fp), POINTER :: BCPI (:,:,:) + REAL(fp), POINTER :: BCPO (:,:,:) + REAL(fp), POINTER :: OCPI (:,:,:) + REAL(fp), POINTER :: OCPO (:,:,:) + REAL(fp), POINTER :: OCPISOA (:,:,:) + REAL(fp), POINTER :: SALA (:,:,:) + REAL(fp), POINTER :: ACL (:,:,:) + REAL(fp), POINTER :: SALC (:,:,:) + REAL(fp), POINTER :: SO4_NH4_NIT (:,:,:) + REAL(fp), POINTER :: SO4 (:,:,:) + REAL(fp), POINTER :: HMS (:,:,:) + REAL(fp), POINTER :: NH4 (:,:,:) + REAL(fp), POINTER :: NIT (:,:,:) + REAL(fp), POINTER :: SLA (:,:,:) + REAL(fp), POINTER :: SPA (:,:,:) + REAL(fp), POINTER :: TSOA (:,:,:) + REAL(fp), POINTER :: ASOA (:,:,:) + REAL(fp), POINTER :: OPOA (:,:,:) + REAL(fp), POINTER :: SOAGX (:,:,:) + REAL(fp), POINTER :: PM25 (:,:,:) + REAL(fp), POINTER :: PM10 (:,:,:) + REAL(fp), POINTER :: PDER (:,:,:) ! H. Zhu + REAL(fp), POINTER :: ISOAAQ (:,:,:) + REAL(fp), POINTER :: SOAS (:,:,:) + REAL(fp), POINTER :: FRAC_SNA (:,:,:,:) + REAL(fp), POINTER :: DAERSL (:,:,:,:) + REAL(fp), POINTER :: WAERSL (:,:,:,:) + + ! Conversionf factors to ugC/m3 for Total Organic Carbon diagnostic + REAL(fp), SAVE :: Fac_INDIOL + REAL(fp), SAVE :: Fac_LVOCOA + REAL(fp), SAVE :: Fac_SOAGX + REAL(fp), SAVE :: Fac_SOAIE + + ! Species ids + INTEGER, SAVE :: id_INDIOL + INTEGER, SAVE :: id_LVOCOA + INTEGER, SAVE :: id_SOAGX + INTEGER, SAVE :: id_SOAIE +! +! !DEFINED PARAMETERS: +! + ! Convert [kg/m3] to [ug/m3] + REAL(fp), PARAMETER :: kgm3_to_ugm3 = 1.0e+9_fp + + ! Define number of carbon atoms in each irreversible isoprene + ! SOA tracer species. Named according to the parent HC (same + ! number of carbons): + REAL(fp), PARAMETER :: NCIMAE = 4e+0_fp + REAL(fp), PARAMETER :: NCIEPOX = 5e+0_fp + REAL(fp), PARAMETER :: NCINDIOL = NCIEPOX + REAL(fp), PARAMETER :: NCGLYX = 2e+0_fp + REAL(fp), PARAMETER :: NCGLYC = NCGLYX + REAL(fp), PARAMETER :: NCMGLY = 3e+0_fp + REAL(fp), PARAMETER :: NCLVOC = NCIEPOX + REAL(fp), PARAMETER :: NCISN1 = NCIEPOX + + !======================================================================= + ! Set_AerMass_Diagnostic begins here! + !======================================================================= + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at Set_AerMass_Diagnostic (in module GeosCore/aerosol_mod.F90)' + + ! Set pointers + OCFPOA => State_Chm%AerMass%OCFPOA + OCFOPOA => State_Chm%AerMass%OCFOPOA + BCPI => State_Chm%AerMass%BCPI + BCPO => State_Chm%AerMass%BCPO + OCPI => State_Chm%AerMass%OCPI + OCPO => State_Chm%AerMass%OCPO + OCPISOA => State_Chm%AerMass%OCPISOA + SALA => State_Chm%AerMass%SALA + ACL => State_Chm%AerMass%ACL + SALC => State_Chm%AerMass%SALC + SO4_NH4_NIT => State_Chm%AerMass%SO4_NH4_NIT + SO4 => State_Chm%AerMass%SO4 + HMS => State_Chm%AerMass%HMS + NH4 => State_Chm%AerMass%NH4 + NIT => State_Chm%AerMass%NIT + SLA => State_Chm%AerMass%SLA + SPA => State_Chm%AerMass%SPA + TSOA => State_Chm%AerMass%TSOA + ASOA => State_Chm%AerMass%ASOA + OPOA => State_Chm%AerMass%OPOA + SOAGX => State_Chm%AerMass%SOAGX + PM25 => State_Chm%AerMass%PM25 + PM10 => State_Chm%AerMass%PM10 + PDER => State_Chm%AerMass%PDER + ISOAAQ => State_Chm%AerMass%ISOAAQ + SOAS => State_Chm%AerMass%SOAS + FRAC_SNA => State_Chm%AerMass%FRAC_SNA + DAERSL => State_Chm%AerMass%DAERSL + WAERSL => State_Chm%AerMass%WAERSL + + ! Verify that incoming State_Chm%Species units are kg/kg dry air. + IF ( .not. Check_Units( State_Chm, KG_SPECIES_PER_KG_DRY_AIR ) ) THEN + ErrMsg = 'Not all species are in "kg/kg dry" units!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + ! Define species ID flags for the aerosol mass diagnostics + IF ( First ) THEN + + ! Initialize conversion factors for total OC diagnostic + Fac_INDIOL = 0.0_fp + Fac_LVOCOA = 0.0_fp + Fac_SOAGX = 0.0_fp + Fac_SOAIE = 0.0_fp + + ! Initialize species ids + id_INDIOL = Ind_('INDIOL') + id_LVOCOA = Ind_('LVOCOA') + id_SOAGX = Ind_('SOAGX') + id_SOAIE = Ind_('SOAIE') + + !-------------------------------------------------------------------- + ! Set conversion factors for certain isoprene SOA species, + ! or, if they aren't present, disable their diagnostics + !-------------------------------------------------------------------- + IF ( id_INDIOL > 0 ) THEN + IF ( State_Diag%Archive_TotalOC ) THEN + SpcInfo => State_Chm%SpcData(id_INDIOL)%Info + Fac_INDIOL = ( NCINDIOL * MwCarb / ( SpcInfo%Mw_g * 1e-3_fp ) ) + SpcInfo => NULL() + ENDIF + ELSE + IF ( State_Diag%Archive_AerMassINDIOL ) THEN + State_Diag%Archive_AerMassINDIOL = .FALSE. + ErrMsg = 'Disabling AerMassINDIOL diagnostic. ' // & + 'INDIOL is not a defined species for this simulation.' + CALL GC_Warning( ErrMsg, RC, ThisLoc ) + ENDIF + ENDIF + + IF ( id_LVOCOA > 0 ) THEN + IF ( State_Diag%Archive_TotalOC ) THEN + SpcInfo => State_Chm%SpcData(id_LVOCOA)%Info + Fac_LVOCOA = ( NCLVOC * MwCarb / ( SpcInfo%Mw_G * 1e-3_fp ) ) + SpcInfo => NULL() + ENDIF + ELSE + IF ( State_Diag%Archive_AerMassLVOCOA ) THEN + State_Diag%Archive_AerMassLVOCOA = .FALSE. + ErrMsg = 'Disabling AerMassLVOCOA diagnostic. ' // & + 'LVOCOA is not a defined species for this simulation.' + CALL GC_Warning( ErrMsg, RC, ThisLoc ) + ENDIF + ENDIF + + IF ( id_SOAGX > 0 ) THEN + IF ( State_Diag%Archive_TotalOC ) THEN + SpcInfo => State_Chm%SpcData(id_SOAGX)%Info + Fac_SOAGX = ( NCGLYX * MwCarb / ( SpcInfo%Mw_g * 1e-3_fp ) ) + SpcInfo => NULL() + ENDIF + ELSE + IF ( State_Diag%Archive_AerMassSOAGX ) THEN + State_Diag%Archive_AerMassSOAGX = .FALSE. + ErrMsg = 'Disabling AerMassSOAGX diagnostic.' // & + 'SOAGX is not a defined species for this simulation.' + CALL GC_Warning( ErrMsg, RC, ThisLoc ) + ENDIF + ENDIF + + IF ( id_SOAIE > 0 ) THEN + IF ( State_Diag%Archive_TotalOC ) THEN + SpcInfo => State_Chm%SpcData(id_SOAIE)%Info + Fac_SOAIE = ( NCIEPOX * MwCarb / ( SpcInfo%Mw_g * 1e-3_fp ) ) + SpcInfo => NULL() + ENDIF + ELSE + IF ( State_Diag%Archive_AerMassSOAIE ) THEN + State_Diag%Archive_AerMassSOAIE = .FALSE. + ErrMsg = 'Disabling AerMassSOAIE diagnostic. ' // & + 'SOAIE is not a defined species for this simulation.' + CALL GC_Warning( ErrMsg, RC, ThisLoc ) + ENDIF + ENDIF + + ! Reset first-time flag + First = .FALSE. + ENDIF + + !======================================================================= + ! Compute Aerosol mass and PM2.5 diagnostics using concentrations + ! from the end of the chemistry timestep. + !======================================================================= + + ! Point to fields of State_Chm and State_Met + Spc => State_Chm%Species + AirDen => State_Met%AIRDEN + + ! Zero out the totalOC diagnostic + IF ( State_Diag%Archive_TotalOC ) THEN + State_Diag%TotalOC = 0.0_fp + ENDIF + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED ) & + !$OMP PRIVATE( I, J, L ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + !-------------------------------------- + ! AerMassASOA [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassASOA ) THEN + State_Diag%AerMassASOA(I,J,L) = ASOA(I,J,L) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! AerMassBC [ug C/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassBC ) THEN + State_Diag%AerMassBC(I,J,L) = ( BCPI(I,J,L) + BCPO(I,J,L) ) * & + kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! AerMassINDIOL [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassINDIOL ) THEN + State_Diag%AerMassINDIOL(I,J,L) = Spc(id_INDIOL)%Conc(I,J,L) * & + kgm3_to_ugm3 * AirDen(I,J,L) + ENDIF + + !-------------------------------------- + ! AerMassLVOCOA [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassLVOCOA ) THEN + State_Diag%AerMassLVOCOA(I,J,L) = Spc(id_LVOCOA)%Conc(I,J,L) * & + kgm3_to_ugm3 * AirDen(I,J,L) + ENDIF + + !-------------------------------------- + ! AerMassNH4 [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassNH4 ) THEN + State_Diag%AerMassNH4(I,J,L) = NH4(I,J,L) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! AerMassNIT [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassNIT ) THEN + State_Diag%AerMassNIT(I,J,L) = NIT(I,J,L) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! AerMassOPOA [ug/m3], OA:OC=2.1 + !-------------------------------------- + IF ( State_Diag%Archive_AerMassOPOA ) THEN + State_Diag%AerMassOPOA(I,J,L) = OPOA(I,J,L) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! AerMassPOA [ug/m3], OA:OC=2.1 + !-------------------------------------- + IF ( State_Diag%Archive_AerMassPOA ) THEN + IF ( Is_POA ) THEN + State_Diag%AerMassPOA(I,J,L) = OCPO(I,J,L) * kgm3_to_ugm3 + ELSEIF ( Is_OCPO ) THEN + State_Diag%AerMassPOA(I,J,L) = ( OCPI(I,J,L) + OCPO(I,J,L) ) * & + kgm3_to_ugm3 + ENDIF + ENDIF + + !-------------------------------------- + ! AerMassSAL [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassSAL ) THEN + State_Diag%AerMassSAL(I,J,L) = ( SALA(I,J,L) + SALC(I,J,L) ) * & + kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! AerMassSO4 [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassSO4 ) THEN + State_Diag%AerMassSO4(I,J,L) = SO4(I,J,L) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! AerMassHMS [ug/m3] + ! jmm 3/6/19 + !-------------------------------------- + IF ( State_Diag%Archive_AerMassHMS ) THEN + State_Diag%AerMassHMS(I,J,L) = HMS(I,J,L) * & + kgm3_to_ugm3 + ENDIF + + + !-------------------------------------- + ! AerMassSOAGX [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassSOAGX ) THEN + State_Diag%AerMassSOAGX(I,J,L) = SOAGX(I,J,L) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! AerMassSOAIE [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassSOAIE ) THEN + State_Diag%AerMassSOAIE(I,J,L) = Spc(id_SOAIE)%Conc(I,J,L) * & + kgm3_to_ugm3 * AirDen(I,J,L) + ENDIF + + !-------------------------------------- + ! AerMassTSOA [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_AerMassTSOA ) THEN + State_Diag%AerMassTSOA(I,J,L) = TSOA(I,J,L) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! PM25 [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_PM25 ) THEN + State_Diag%PM25(I,J,L) = PM25(I,J,L) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! PM10 [ug/m3] + !-------------------------------------- + IF ( State_Diag%Archive_PM10 ) THEN + State_Diag%PM10(I,J,L) = PM10(I,J,L) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! PDER [nm] + !-------------------------------------- + IF ( State_Diag%Archive_PDER ) THEN + State_Diag%PDER(I,J,L) = PDER(I,J,L) + ENDIF + + !-------------------------------------- + ! Sum of all biogenic organic aerosol + !-------------------------------------- + ! ComplexSOA only + IF ( State_Diag%Archive_TotalBiogenicOA ) THEN + State_Diag%TotalBiogenicOA(I,J,L) = ( TSOA(I,J,L) + ISOAAQ(I,J,L) ) & + * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! Sum of all organic aerosol [ug/m3] + !-------------------------------------- + ! Now TotalOA also works for simpleSOA + IF ( State_Diag%Archive_TotalOA ) THEN + State_Diag%TotalOA(I,J,L) = ( OCPO(I,J,L) + & + OCPISOA(I,J,L) ) * kgm3_to_ugm3 + ENDIF + + !-------------------------------------- + ! Sum of all organic carbon [ug/m3] + !-------------------------------------- + ! ComplexSOA only + ! since OM/OC ratio is not available for SOAS + ! consistent with aerosol_mod.F90 + IF ( State_Diag%Archive_TotalOC ) THEN + + ! Hydrophobic OC + IF ( Is_POA ) THEN + State_Diag%TotalOC(I,J,L) = & + ( ( TSOA(I,J,L) + ASOA(I,J,L) ) / OCFOPOA(I,J) & + + OCPO(I,J,L) / OCFPOA(I,J) ) * kgm3_to_ugm3 + ELSE IF ( Is_OCPO ) THEN + State_Diag%TotalOC(I,J,L) = & + ( ( TSOA(I,J,L) + ASOA(I,J,L) & + + OCPO(I,J,L) ) / OCFOPOA(I,J) ) * kgm3_to_ugm3 + ENDIF + + ! Hydrophilic OC + IF (Is_OCPI) THEN + State_Diag%TotalOC(I,J,L) = State_Diag%TotalOC(I,J,L) + & + ( OCPI(I,J,L) / OCFOPOA(I,J) * & + kgm3_to_ugm3 ) + ENDIF + + ! OPOA OC + IF (Is_OPOA) THEN + State_Diag%TotalOC(I,J,L) = State_Diag%TotalOC(I,J,L) + & + ( OPOA(I,J,L) / OCFOPOA(I,J) * & + kgm3_to_ugm3 ) + ENDIF + + ! Isoprene SOA OC + IF ( Is_ComplexSOA ) THEN + State_Diag%TotalOC(I,J,L) = State_Diag%TotalOC(I,J,L) + & + ( ( Spc(id_SOAIE )%Conc(I,J,L) * Fac_SOAIE ) + & + ( Spc(id_INDIOL)%Conc(I,J,L) * Fac_INDIOL ) + & + ( Spc(id_SOAGX )%Conc(I,J,L) * Fac_SOAGX ) + & + ( Spc(id_LVOCOA)%Conc(I,J,L) * Fac_LVOCOA ) ) & + * AirDen(I,J,L) * kgm3_to_ugm3 + ENDIF + + ENDIF + + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ! Free pointers + Spc => NULL() + AirDen => NULL() + OCFPOA => NULL() + OCFOPOA => NULL() + BCPI => NULL() + BCPO => NULL() + OCPI => NULL() + OCPO => NULL() + OCPISOA => NULL() + SALA => NULL() + ACL => NULL() + SALC => NULL() + SO4_NH4_NIT => NULL() + SO4 => NULL() + HMS => NULL() + NH4 => NULL() + NIT => NULL() + SLA => NULL() + SPA => NULL() + TSOA => NULL() + ASOA => NULL() + OPOA => NULL() + SOAGX => NULL() + PM25 => NULL() + PM10 => NULL() + PDER => NULL() + ISOAAQ => NULL() + SOAS => NULL() + FRAC_SNA => NULL() + DAERSL => NULL() + WAERSL => NULL() + + END SUBROUTINE Set_AerMass_Diagnostic +!EOC END MODULE Diagnostics_mod diff --git a/GeosCore/drydep_mod.F90 b/GeosCore/drydep_mod.F90 index efe9b3db7..d4c651654 100644 --- a/GeosCore/drydep_mod.F90 +++ b/GeosCore/drydep_mod.F90 @@ -156,13 +156,23 @@ MODULE DRYDEP_MOD !======================================================================== ! Scalars - INTEGER :: NUMDEP, NWATER - INTEGER :: DRYHg0, DRYHg2, DryHgP - INTEGER :: id_ACET, id_ALD2, id_O3 - INTEGER :: id_MENO3, id_ETNO3, id_MOH - INTEGER :: id_NK1, id_Hg0 - INTEGER :: id_HNO3, id_PAN, id_IHN1 - INTEGER :: id_H2O2, id_SO2, id_NH3 + INTEGER :: NUMDEP, NWATER + INTEGER :: DRYHg0, DRYHg2, DryHgP + INTEGER :: id_ACET, id_ALD2, id_O3 + INTEGER :: id_MENO3, id_ETNO3, id_MOH + INTEGER :: id_NK01, id_Hg0 + INTEGER :: id_HNO3, id_PAN, id_IHN1 + INTEGER :: id_H2O2, id_SO2, id_NH3 + INTEGER :: idd_BCPO, idd_BCPI, idd_BrSALC + INTEGER :: idd_BrSALA, idd_DST1, idd_DST2 + INTEGER :: idd_DST3, idd_DST4, idd_DSTAL1 + INTEGER :: idd_DSTAL2, idd_DSTAL3, idd_DSTAL4 + INTEGER :: idd_ISALA, idd_ISALC, idd_NH4 + INTEGER :: idd_NIT, idd_NITD1, idd_NITD2 + INTEGER :: idd_NITD3, idd_NITD4, idd_NITs + INTEGER :: idd_SALA, idd_SALC, idd_SO4 + INTEGER :: idd_SO4D1, idd_SO4D2, idd_SO4D3 + INTEGER :: idd_SO4D4, idd_SO4s ! Arrays for Baldocchi drydep polynomial coefficients REAL(fp), TARGET :: DRYCOEFF(NPOLY ) = 0.0_fp @@ -342,7 +352,7 @@ SUBROUTINE DO_DRYDEP( Input_Opt, State_Chm, State_Diag, & #endif !### Debug - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### DO_DRYDEP: after dry dep' ) ENDIF @@ -477,9 +487,9 @@ SUBROUTINE UPDATE_DRYDEPFREQ( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF !----------------------------------------------------------- - ! Special treatment for snow vs. ice + ! Special treatment for snow and ice !----------------------------------------------------------- - IF ( State_Met%isSnow(I,J) ) THEN + IF ( (State_Met%isSnow(I,J)) .OR. (State_Met%isIce(I,J))) THEN !------------------------------------- ! %%% SURFACE IS SNOW OR ICE %%% @@ -903,14 +913,15 @@ SUBROUTINE METERO( State_Grid, State_Met, CZ1, TC0, OBK, CFRAC, & REAL(f8) :: SP REAL(f8) :: SFCWINDSQR - !================================================================= + !======================================================================== ! METERO begins here! - !================================================================= + !======================================================================== ! Loop over surface grid boxes - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, THIK, SP, SFCWINDSQR ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, THIK, SP, SFCWINDSQR )& + !$OMP COLLAPSE( 2 ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -928,7 +939,7 @@ SUBROUTINE METERO( State_Grid, State_Met, CZ1, TC0, OBK, CFRAC, & PRESSU(I,J) = SP * 1.e+2_f8 !============================================================== - ! Return meterological quantities as 1-D arrays for DEPVEL + ! Return meterological quantities for DEPVEL !============================================================== ! Roughness height [m] @@ -957,7 +968,7 @@ SUBROUTINE METERO( State_Grid, State_Met, CZ1, TC0, OBK, CFRAC, & ! changed to 98% due to vapor pressure lowering above sea water ! (Lewis & Schwartz, 2004) ! jaegle (5/11/11) - RHB(I,J) = MIN( 0.98e+0_f8, State_Met%RH(I,J,1) * 1.e-2_f8 ) + RHB(I,J) = MIN( 0.98_f8, State_Met%RH(I,J,1) * 1.0e-2_f8 ) ! 10m windspeed [m/s] (jaegle 5/11/11) SFCWINDSQR = State_Met%U10M(I,J)**2 + State_Met%V10M(I,J)**2 @@ -1163,7 +1174,7 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & REAL(f8) :: RDC,RLUXX,RGSX,RCL,DTMP1,DTMP2,DTMP3,DTMP4 REAL(f8) :: CZH,CKUSTR,REYNO,CORR1,CORR2,Z0OBK REAL(f8) :: RA,RB,DUMMY1,DUMMY2,DUMMY3,DUMMY4 - REAL(f8) :: XMWH2O,DAIR,TEMPK,TEMPC + REAL(f8) :: XMWH2O,DAIR,TEMPK,TEMPC,F0_K INTEGER :: IOLSON,II,IW INTEGER :: K,LDT REAL(f8) :: RCLX,RIXX !,BIOFIT @@ -1178,8 +1189,8 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & #ifdef TOMAS ! For TOMAS aerosol (win, 7/15/09) INTEGER :: BIN - REAL(f8) :: SIZ_DIA(State_Grid%NX,State_Grid%NY,IBINS) - REAL(f8) :: SIZ_DEN(State_Grid%NX,State_Grid%NY,IBINS) + REAL(f8) :: SIZ_DIA(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins) + REAL(f8) :: SIZ_DEN(State_Grid%NX,State_Grid%NY,State_Chm%nTomasBins) #endif ! Loop indices (bmy, 3/29/12) @@ -1225,6 +1236,10 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Small number REAL(fp), PARAMETER :: SMALL = 1.0e-10_f8 + ! Gravitational Settling velocity (yli, 3/28/2024) + REAL(f8) :: VTSoutput ! Used in AERO_SFCRSII, ADUST_SFCRSII and DUST_SFCRSII for a specific aerosol species and a specific land type + REAL(f8) :: VTSoutput_ (NUMDEP,NTYPE) ! For all deposited aerosol species and all land types + !================================================================= ! DEPVEL begins here! !================================================================= @@ -1314,9 +1329,9 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & ! depending on the internally-mixed composition (win, 7/15/09) !================================================================= - IF ( id_NK1 > 0 ) THEN + IF ( id_NK01 > 0 ) THEN CALL AERO_DIADEN( 1, Input_Opt, State_Chm, State_Grid, State_Met, & - SIZ_DIA, SIZ_DEN, RC ) + State_Diag, SIZ_DIA, SIZ_DEN, RC ) IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Error encountered in call to "AERO_DIADEN"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) @@ -1325,48 +1340,92 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF #endif - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( CZ, TEMPK, TEMPC, K, VD ) & - !$OMP PRIVATE( LDT, RSURFC, C1, XNU, RT, IOLSON ) & - !$OMP PRIVATE( II, RI, RLU, RAC, RGSS, RGSO ) & - !$OMP PRIVATE( RCLS, RCLO, RAD0, RIX, GFACT, GFACI ) & - !$OMP PRIVATE( RDC, XMWH2O, RIXX, RLUXX, RGSX, RCLX ) & - !$OMP PRIVATE( DTMP1, DTMP2, DTMP3, DTMP4, VDS, CZH ) & - !$OMP PRIVATE( CKUSTR, REYNO, CORR1, CORR2, Z0OBK, RA ) & - !$OMP PRIVATE( Z0OBK_Alt, RA_Alt,DUMMY2_Alt, DUMMY4_Alt ) & - !$OMP PRIVATE( DUMMY1, DUMMY2, DUMMY3, DUMMY4, DAIR, RB ) & - !$OMP PRIVATE( C1X, VK, I, J, IW ) & - !$OMP PRIVATE( DIAM, DEN, XLAI_FP, SUNCOS_FP, CFRAC_FP ) & - !$OMP PRIVATE( N_SPC, alpha, DEPVw ) & + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( CZ, TEMPK, TEMPC, K, VD )& + !$OMP PRIVATE( LDT, RSURFC, C1, XNU, RT, IOLSON )& + !$OMP PRIVATE( II, RI, RLU, RAC, RGSS, RGSO )& + !$OMP PRIVATE( RCLS, RCLO, RAD0, RIX, GFACT, GFACI )& + !$OMP PRIVATE( RDC, XMWH2O, RIXX, RLUXX, RGSX, RCLX )& + !$OMP PRIVATE( DTMP1, DTMP2, DTMP3, DTMP4, VDS, CZH )& + !$OMP PRIVATE( CKUSTR, REYNO, CORR1, CORR2, Z0OBK, RA )& + !$OMP PRIVATE( Z0OBK_Alt, RA_Alt, DUMMY2_Alt, DUMMY4_Alt )& + !$OMP PRIVATE( DUMMY1, DUMMY2, DUMMY3, DUMMY4, DAIR, RB )& + !$OMP PRIVATE( C1X, VK, I, J, IW )& + !$OMP PRIVATE( DIAM, DEN, XLAI_FP, SUNCOS_FP, CFRAC_FP )& + !$OMP PRIVATE( N_SPC, alpha, DEPVw, VTSoutput, VTSoutput_ )& #ifdef TOMAS - !$OMP PRIVATE( BIN ) & + !$OMP PRIVATE( BIN )& #endif - !$OMP PRIVATE( SpcId, SpcInfo ) + !$OMP PRIVATE( SpcId, SpcInfo, F0_K )& + !$OMP COLLAPSE( 2 ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - ! Initialize + ! Zero variables that aren't zeroed below + VD = 0.0_f8 + RSURFC = 0.0_f8 + II = 0.0 + RI = 0.0_f8 + RLU = 0.0_f8 + RAC = 0.0_f8 + RGSS = 0.0_f8 + RGSO = 0.0_f8 + RCLS = 0.0_f8 + RCLO = 0.0_f8 + RAD0 = 0.0_f8 + RIX = 0.0_f8 + GFACT = 0.0_f8 + GFACI = 0.0_f8 + RDC = 0.0_f8 + XMWH2O = 0.0_f8 + RIXX = 0.0_f8 + RLUXX = 0.0_f8 + RGSX = 0.0_f8 + RCLX = 0.0_f8 + DTMP1 = 0.0_f8 + DTMP2 = 0.0_f8 + DTMP3 = 0.0_f8 + DTMP4 = 0.0_f8 + VDS = 0.0_f8 + CZH = 0.0_f8 + CKUSTR = 0.0_f8 + REYNO = 0.0_f8 + CORR1 = 0.0_f8 + CORR2 = 0.0_f8 + Z0OBK = 0.0_f8 + RA = 0.0_f8 Z0OBK_Alt = 0.0_f8 + RA_Alt = 0.0_f8 DUMMY2_Alt = 0.0_f8 DUMMY4_Alt = 0.0_f8 - RA_Alt = 0.0_f8 + DUMMY1 = 0.0_f8 + DUMMY2 = 0.0_f8 + DUMMY3 = 0.0_f8 + DUMMY4 = 0.0_f8 + DAIR = 0.0_f8 + RB = 0.0_f8 + C1X = 0.0_f8 + VK = 0.0_f8 + DIAM = 0.0_f8 + DEN = 0.0_f8 + XLAI_FP = 0.0_f8 + SUNCOS_FP = 0.0_f8 + CFRAC_FP = 0.0_f8 + N_SPC = 0 + alpha = 0.0_f8 + DEPVw = 0.0_f8 + F0_K = 0.0_f8 + VTSoutput = 0.0_fp + VTSoutput_ = 0.0_fp !** CZ is Altitude (m) at which deposition velocity is computed - CZ = CZ1(I,J) + CZ = CZ1(I,J) !** TEMPK and TEMPC are surface air temperatures in K and in C TEMPK = TEMP(I,J) TEMPC = TEMP(I,J)-273.15e+0_f8 - !* Initialize variables - DO K = 1,NUMDEP - VD(K) = 0.0e+0_f8 - DO LDT = 1,NTYPE - RSURFC(K,LDT) = 0.e+0_f8 - END DO - END DO - !** Calculate the kinematic viscosity XNU (m2 s-1) of air !** as a function of temperature. !** The kinematic viscosity is used to calculate the roughness heights @@ -1375,7 +1434,7 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & !** The expression for the temperature dependence of XNU !** is from the FORTRAN code in Appendix II of Wesely [1988]; !** I wasn't able to find an original reference but it seems benign enough. - C1 = TEMPK/273.15e+0_f8 + C1 = TEMPK/273.15e+0_f8 XNU = 0.151e+0_f8*(C1**1.77e+0_f8)*1.0e-04_f8 !* Compute bulk surface resistance for gases. @@ -1422,7 +1481,7 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & !** If the surface to be snow or ice; !** set II to 1 instead. ! - IF(State_Met%isSnow(I,J)) II=1 + IF((State_Met%isSnow(I,J)).OR.(State_Met%isIce(I,J))) II=1 !* Read the internal resistance RI (minimum stomatal resistance for !* water vapor,per unit area of leaf) from the IRI array; a '9999' @@ -1534,6 +1593,10 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & !* DO 160 K = 1,NUMDEP + ! Save F0(K) in a private variable to avoid diffs due + ! to parallelization -- Bob Yantosca (17 May 2023) + F0_K = F0(K) + !** exit for non-depositing species or aerosols. IF (.NOT. LDEP(K) .OR. AIROSOL(K)) GOTO 155 @@ -1563,23 +1626,32 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF - ! currently messy test for if surface is snow/ice to change O3 - ! surface resistance to an updated value - ELSE IF ((N_SPC .EQ. ID_O3) .AND. (State_Met%isSnow(I,J))) THEN + ! Test for if surface is snow/ice to change O3 + ! surface resistance to an observation derived value + ELSE IF ((N_SPC .EQ. ID_O3) .AND. (II .EQ. 1)) THEN RSURFC(K,LDT) = 10000.0_f8 ELSE - ! Check latitude and longitude, alter F0 only for Amazon rainforest for Hg0 - ! (see reference: Feinberg et al., ESPI, 2022: Evaluating atmospheric mercury (Hg) uptake by vegetation in a - ! chemistry-transport model) - IF (N_SPC .EQ. ID_Hg0) THEN ! Check for Hg0 - IF ( II .EQ. 6 .AND. & ! if rainforest land type - State_Grid%XMid(I,J) > -82 .AND. & ! bounding box of Amazon - State_Grid%XMid(I,J) < -33 .AND. & - State_Grid%YMid(I,J) > -34 .AND. & - State_Grid%YMid(I,J) < 14 ) THEN - F0(K) = 2.0e-01_f8 ! increase reactivity, as inferred from observations - ELSE - F0(K) = 3.0e-05_f8 ! elsewhere, lower reactivity + ! Check latitude and longitude, alter F0 only for Amazon + ! rainforest for Hg0 (see reference: Feinberg et al., ESPI, + ! 2022: Evaluating atmospheric mercury (Hg) uptake by + ! vegetation in a chemistry-transport model) + ! + ! Remove IF/ELSE block using never-nesting technique. + ! - Bob Yantosca (17 May 2023) + IF ( N_SPC == ID_Hg0 ) THEN + + ! Assume lower reactivity + F0_K = 3.0e-05_f8 + + ! But if this is the rainforest land type and we fall + ! within the bounding box of the Amazon rainforest, + ! then increase reactivity as inferred from observations. + IF ( II == 6 .AND. & + State_Grid%XMid(I,J) > -82.0_f8 .AND. & + State_Grid%XMid(I,J) < -33.0_f8 .AND. & + State_Grid%YMid(I,J) > -34.0_f8 .AND. & + State_Grid%YMid(I,J) < 14.0_f8 ) THEN + F0_K = 2.0e-01_f8 ENDIF ENDIF @@ -1588,25 +1660,25 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & #ifdef LUO_WETDEP RIXX = RIX*DIFFG(TEMPK,PRESSU(I,J),XMWH2O)/ & DIFFG(TEMPK,PRESSU(I,J),XMW(K)) & - + 1.e+0_f8/(HSTAR3D(I,J,K)/3000.e+0_f8+100.e+0_f8*F0(K)) + + 1.e+0_f8/(HSTAR3D(I,J,K)/3000.e+0_f8+100.e+0_f8*F0_K) #else RIXX = RIX*DIFFG(TEMPK,PRESSU(I,J),XMWH2O)/ & DIFFG(TEMPK,PRESSU(I,J),XMW(K)) & - + 1.e+0_f8/(HSTAR(K)/3000.e+0_f8+100.e+0_f8*F0(K)) + + 1.e+0_f8/(HSTAR(K)/3000.e+0_f8+100.e+0_f8*F0_K) #endif RLUXX = 1.e+12_f8 IF (RLU(LDT).LT.9999.e+0_f8) & #ifdef LUO_WETDEP - RLUXX = RLU(LDT)/(HSTAR3D(I,J,K)/1.0e+05_f8 + F0(K)) + RLUXX = RLU(LDT)/(HSTAR3D(I,J,K)/1.0e+05_f8 + F0_K) #else - RLUXX = RLU(LDT)/(HSTAR(K)/1.0e+05_f8 + F0(K)) + RLUXX = RLU(LDT)/(HSTAR(K)/1.0e+05_f8 + F0_K) #endif ! If POPs simulation, scale cuticular resistances with octanol- ! air partition coefficient (Koa) instead of HSTAR ! (clf, 1/3/2011) IF (IS_POPS) & - RLUXX = RLU(LDT)/(KOA(K)/1.0e+05_f8 + F0(K)) + RLUXX = RLU(LDT)/(KOA(K)/1.0e+05_f8 + F0_K) !* !* To prevent virtually zero resistance to species with huge @@ -1620,14 +1692,14 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & !* #ifdef LUO_WETDEP RGSX = 1.e+0_f8/(HSTAR3D(I,J,K)/1.0e+05_f8/RGSS(LDT) + & - F0(K)/RGSO(LDT)) + F0_K/RGSO(LDT)) RCLX = 1.e+0_f8/(HSTAR3D(I,J,K)/1.0e+05_f8/RCLS(LDT) + & - F0(K)/RCLO(LDT)) + F0_K/RCLO(LDT)) #else RGSX = 1.e+0_f8/(HSTAR(K)/1.0e+05_f8/RGSS(LDT) + & - F0(K)/RGSO(LDT)) + F0_K/RGSO(LDT)) RCLX = 1.e+0_f8/(HSTAR(K)/1.0e+05_f8/RCLS(LDT) + & - F0(K)/RCLO(LDT)) + F0_K/RCLO(LDT)) #endif !* !** Get the bulk surface resistance of the canopy, RSURFC, from @@ -1665,7 +1737,11 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & USTAR(I,J), & RHB(I,J), & W10(I,J), & - Input_Opt ) + VTSoutput, & + Input_Opt, & + State_Chm ) + + VTSoutput_(K,LDT) = VTSoutput ELSE IF ( SpcInfo%DD_DustDryDep ) THEN @@ -1696,7 +1772,7 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & ! evolves with time. We have to save these in the ! DIAM and DEN variables so that we can hold these ! PRIVATE for the parallel loop. - BIN = NTRAIND(K) - id_NK1 + 1 + BIN = NTRAIND(K) - id_NK01 + 1 DIAM = SIZ_DIA( I, J, BIN ) ! Diameter [m] DEN = SIZ_DEN( I, J, BIN ) ! Density [kg/m3] @@ -1709,6 +1785,26 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Particle diameter, convert [m] -> [um] DIAM = A_RADI(K) * 2.e+0_f8 + IF ( K == idd_DST1 .or. K == idd_DSTAL1 .or. & + K == idd_NITD1 .or. K == idd_SO4D1 ) THEN + DIAM = 0.66895E-6 + ENDIF + + IF ( K == idd_DST2 .or. K == idd_DSTAL2 .or. & + K == idd_NITD2 .or. K == idd_SO4D2 ) THEN + DIAM = 2.4907E-6 + ENDIF + + IF ( K == idd_DST3 .or. K == idd_DSTAL3 .or. & + K == idd_NITD3 .or. K == idd_SO4D3 ) THEN + DIAM = 4.164E-6 + ENDIF + + IF ( K == idd_DST4 .or. K == idd_DSTAL4 .or. & + K == idd_NITD4 .or. K == idd_SO4D4 ) THEN + DIAM = 6.677E-6 + ENDIF + ! Particle density [kg/m3] DEN = A_DEN(K) #endif @@ -1749,7 +1845,10 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & TEMPK, & USTAR(I,J), & DIAM, & - DEN ) + DEN, & + VTSoutput ) + + VTSoutput_(K,LDT) = VTSoutput ELSE @@ -1772,7 +1871,11 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & ! (-CZH)**0.6667D0 RSURFC(K, LDT) = ADUST_SFCRSII(K, II, PRESSU(I,J)*1e-3_f8, & - TEMPK, USTAR(I,J)) + TEMPK, USTAR(I,J), & + VTSoutput, RHB(I,J), & + State_Chm) + + VTSoutput_(K,LDT) = VTSoutput !* !* Set VDS to be less than VDSMAX (entry in input file @@ -2127,6 +2230,24 @@ SUBROUTINE DEPVEL( Input_Opt, State_Chm, State_Diag, State_Grid, & IF (.NOT.LDEP(K)) GOTO 400 VK(K) = VD(K) VD(K) = VK(K) +.001D0* DBLE( IUSE(I,J,LDT) )/C1X(K) + + IF (AIROSOL (K)) THEN + SpcId = NTRAIND(K) + SpcInfo => State_Chm%SpcData(SpcId)%Info + + IF ( SpcInfo%DD_AeroDryDep ) THEN + VD(K) = VK(K) +.001D0* DBLE( IUSE(I,J,LDT) ) & + /C1X(K) + .001D0* DBLE( IUSE(I,J,LDT) ) *VTSoutput_(K,LDT) + ELSE IF ( SpcInfo%DD_DustDryDep ) THEN + VD(K) = VK(K) +.001D0* DBLE( IUSE(I,J,LDT) ) & + /C1X(K) + .001D0* DBLE( IUSE(I,J,LDT) ) *VTSoutput_(K,LDT) + ELSE + VD(K) = VK(K) +.001D0* DBLE( IUSE(I,J,LDT) ) & + /C1X(K) + .001D0* DBLE( IUSE(I,J,LDT) ) *VTSoutput_(K,LDT) + ENDIF + ELSE + VD(K) = VK(K) +.001D0* DBLE( IUSE(I,J,LDT) )/C1X(K) + ENDIF 400 CONTINUE 500 CONTINUE @@ -2651,7 +2772,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) 130 FORMAT( '%% Successfully read ', a, ' [', a, ']' ) ENDIF @@ -2683,7 +2804,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2711,7 +2832,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2753,7 +2874,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2781,7 +2902,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2809,7 +2930,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2841,7 +2962,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & IRI(3) = 200 ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2869,7 +2990,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2897,7 +3018,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2925,7 +3046,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2953,7 +3074,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -2981,7 +3102,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -3009,7 +3130,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -3037,7 +3158,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) ENDIF @@ -3053,7 +3174,7 @@ SUBROUTINE READ_DRYDEP_INPUTS( Input_Opt, & #endif ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, '(a)' ) REPEAT( '%', 79 ) ENDIF @@ -3074,12 +3195,14 @@ END SUBROUTINE READ_DRYDEP_INPUTS !\\ ! !INTERFACE: ! - FUNCTION AERO_SFCRSII( K, II, PRESS, TEMP, USTAR, RHB, W10, Input_Opt ) & + FUNCTION AERO_SFCRSII( K, II, PRESS, TEMP, USTAR, RHB, W10, VTSout, Input_Opt, State_Chm ) & RESULT(RS) ! ! !USES: ! USE Input_Opt_Mod, ONLY : OptInput + USE Species_Mod, ONLY : Species + USE State_Chm_Mod, ONLY : ChmState ! ! !INPUT PARAMETERS: ! @@ -3091,6 +3214,13 @@ FUNCTION AERO_SFCRSII( K, II, PRESS, TEMP, USTAR, RHB, W10, Input_Opt ) & REAL(f8), INTENT(IN) :: RHB ! Relative humidity (fraction) REAL(f8), INTENT(IN) :: W10 ! 10 m windspeed [m/s] TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object + +! +! !OUTPUT PARAMETERS: +! + REAL(f8), INTENT(OUT) :: VTSout ! Settling velocity [m/s] + ! ! !RETURN VALUE: ! @@ -3173,6 +3303,7 @@ FUNCTION AERO_SFCRSII( K, II, PRESS, TEMP, USTAR, RHB, W10, Input_Opt ) & REAL(f8) :: DEDGE REAL(f8) :: DEN1, WTP INTEGER :: ID,NR + REAL(f8) :: drydepRadius !======================================================================= ! # LUC [Zhang et al., 2001] GEOS-CHEM LUC (Corr. #) @@ -3347,11 +3478,23 @@ FUNCTION AERO_SFCRSII( K, II, PRESS, TEMP, USTAR, RHB, W10, Input_Opt ) & NR = INT((( Input_Opt%SALC_REDGE_um(2) - Input_Opt%SALA_REDGE_um(1) ) & / DR ) + 0.5e+0_f8 ) + drydepRadius = A_RADI(K) + + ! Coarse seasalt + IF ( K == idd_NITS .or. K == idd_SALC .or. K == idd_SO4S .or. & + K == idd_BRSALC .or. K == idd_ISALC ) THEN + drydepRadius = 0.74025E-6 + ENDIF + + IF ( K == idd_SALA .OR. K == idd_BRSALA .or. K == idd_ISALA ) THEN + drydepRadius = 0.114945E-6 + ENDIF + ! Particle radius [cm] ! Bug fix: The Gerber [1985] growth should use the dry radius ! in micromenters and not cm. Replace RCM with RUM (jaegle 5/11/11) !RCM = A_RADI(K) * 1.d2 - RUM = A_RADI(K) * 1.e+6_f8 + RUM = drydepRadius * 1.e+6_f8 ! Exponential factors used for hygroscopic growth ! Replace RCM with RUM (jaegle 5/11/11) @@ -3377,7 +3520,7 @@ FUNCTION AERO_SFCRSII( K, II, PRESS, TEMP, USTAR, RHB, W10, Input_Opt ) & ! Use equation 5 in Lewis and Schwartz (2006) for sea salt growth [m] ! (jaegle 5/11/11) - RWET = A_RADI(K) * (4.e+0_f8 / 3.7e+0_f8) * & + RWET = drydepRadius * (4.e+0_f8 / 3.7e+0_f8) * & ( (2.e+0_f8 - RHBL)/(1.e+0_f8 - RHBL) )**(1.e+0_f8/3.e+0_f8) ! Ratio dry over wet radii at the cubic power @@ -3395,7 +3538,7 @@ FUNCTION AERO_SFCRSII( K, II, PRESS, TEMP, USTAR, RHB, W10, Input_Opt ) & ! wet aerosol (kg/m3) ! (bec, 6/17/10, jaegle 5/11/11) ! Redefine RATIO_R - RATIO_R = A_RADI(K) / RWET + RATIO_R = drydepRadius / RWET ! Assume an initial density of 1000 kg/m3 DEN = 1000.e+0_f8 @@ -3475,19 +3618,20 @@ FUNCTION AERO_SFCRSII( K, II, PRESS, TEMP, USTAR, RHB, W10, Input_Opt ) & ! Calculate mass of wet aerosol (Dw = wet diameter, D = dry diamter): ! Overall = dM/dDw = dV/dlnD * Rwet/Rdry * DEN /Rw IF (DMID(ID) .ge. D0 .and. DMID(ID) .le. D1 ) THEN - DMIDW = DMID(ID) * RWET/A_RADI(K) ! wet radius [um] - SALT_MASS = SALT_V(ID) * RWET/A_RADI(K) * DEN / & + DMIDW = DMID(ID) * RWET/drydepRadius ! wet radius [um] + SALT_MASS = SALT_V(ID) * RWET/drydepRadius * DEN / & (DMIDW*0.5e+0_f8) VTS_WEIGHT = VTS_WEIGHT + & SALT_MASS * VTS * (DMIDW/(RWET*1d6*2e+0_f8) )** & - 2e+0_f8 * (2e+0_f8 * DR * RWET/A_RADI(K)) + 2e+0_f8 * (2e+0_f8 * DR * RWET/drydepRadius) SALT_MASS_TOTAL = SALT_MASS_TOTAL+SALT_MASS * & - (2e+0_f8 * DR * RWET/A_RADI(K)) + (2e+0_f8 * DR * RWET/drydepRadius) ENDIF ENDDO ! Final mass weighted setting velocity: VTS = VTS_WEIGHT/SALT_MASS_TOTAL + VTSout = VTS ! Brownian diffusion constant for particle (m2/s) DIFF = BOLTZ * TEMP * SLIP / (3.e+0_f8 * PI * VISC * DIAM) @@ -3837,7 +3981,14 @@ END FUNCTION DUST_SFCRSI !\\ ! !INTERFACE: ! - FUNCTION ADUST_SFCRSII( K, II, PRESS, TEMP, USTAR ) RESULT( RS ) + FUNCTION ADUST_SFCRSII( K, II, PRESS, TEMP, USTAR, & + VTSout, RHB, State_Chm ) RESULT( RS ) +! +! !USES: +! + USE Species_Mod, ONLY : Species + USE State_Chm_Mod, ONLY : ChmState + ! ! !INPUT PARAMETERS: ! @@ -3846,6 +3997,14 @@ FUNCTION ADUST_SFCRSII( K, II, PRESS, TEMP, USTAR ) RESULT( RS ) REAL(f8), INTENT(IN) :: PRESS ! Pressure [kPa] (1 mb = 100 Pa = 0.1 kPa) REAL(f8), INTENT(IN) :: TEMP ! Temperature [K] REAL(f8), INTENT(IN) :: USTAR ! Friction velocity [m/s] + REAL(f8), INTENT(IN) :: RHB ! Relative humidity (fraction) + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object + +! +! !OUTPUT PARAMETERS: +! + REAL(f8), INTENT(OUT) :: VTSout ! Settling velocity [m/s] + ! ! !RETURN VALUE: ! @@ -3889,6 +4048,8 @@ FUNCTION ADUST_SFCRSII( K, II, PRESS, TEMP, USTAR ) RESULT( RS ) REAL(f8) :: EB, EIM, EIN, R1, AA, VTS + REAL(f8) :: RHBL ! Relative humidity local + !======================================================================= ! # LUC [Zhang et al., 2001] GEOS-CHEM LUC (Corr. #) !----------------------------------------------------------------------- @@ -4024,7 +4185,44 @@ FUNCTION ADUST_SFCRSII( K, II, PRESS, TEMP, USTAR ) RESULT( RS ) !================================================================= ! Particle diameter [m] hotp 10/26/07 - DIAM = 0.5e-6_f8 + DIAM = 0.17378e-6_f8 + + ! Hygroscopic growth following Latimer and Martin (2019) ACP (yanshun) + ! Added safety check for LOG (phs, 6/11/08) + RHBL = MAX( TINY(RHB), RHB ) + + ! Over oceans the RH in the viscous sublayer is set to 98%, + ! following + ! Lewis and Schwartz (2004), see discussion above (jaegle 5/11/11) + IF (LUC == 14) THEN + RHBL = 0.98 + ENDIF + + ! SIA + IF ( K == idd_NIT .or. K == idd_NH4 .or. K == idd_SO4 ) THEN + ! Efflorescence transtions + IF (RHBL .LT. 0.35) THEN + ! DIAM is not changed + ELSE IF ((RHBL .GE. 0.35) .AND. (RHBL .LE. 0.40)) THEN + ! Linear hygroscopic growth + DIAM = DIAM + (DIAM * ((1.0_fp + 0.61_fp * 0.40_fp / & + (1.0_fp - 0.40_fp)) ** (1.0_fp / 3.0_fp)) - DIAM) / & + (0.40_fp - 0.35_fp) * (RHBL - 0.35_fp) + ELSE + ! Kohler hygroscopic growth + DIAM = DIAM * ((1.0_fp + 0.61_fp * RHBL / (1.0_fp - RHBL)) & + ** (1.0_fp / 3.0_fp)) + ENDIF + + !BC + ELSE IF ( K == idd_BCPI .OR. K == idd_BCPO ) THEN + ! DIAM is not changed + + !OA + ELSE + DIAM = DIAM * ((1.0_fp + 0.1_fp * RHBL / (1.0_fp - RHBL)) & + ** (1.0_fp / 3.0_fp)) + ENDIF ! Particle density [kg/m3] hotp 10/26/07 DEN = 1500 @@ -4068,6 +4266,7 @@ FUNCTION ADUST_SFCRSII( K, II, PRESS, TEMP, USTAR ) RESULT( RS ) ! Settling velocity [m/s] VTS = CONST * SLIP / VISC + VTSout = VTS ! Brownian diffusion constant for particle (m2/s) DIFF = BOLTZ * TEMP * SLIP / (3.e+0_f8 * Pi * VISC * DIAM) @@ -4126,8 +4325,8 @@ END FUNCTION ADUST_SFCRSII ! !INTERFACE: ! - FUNCTION DUST_SFCRSII( K, II, PRESS, TEMP, USTAR, DIAM, DEN ) & - RESULT( RS ) + FUNCTION DUST_SFCRSII( K, II, PRESS, TEMP, USTAR, DIAM, & + DEN, VTSout) RESULT( RS ) ! ! !INPUT PARAMETERS: ! @@ -4138,6 +4337,12 @@ FUNCTION DUST_SFCRSII( K, II, PRESS, TEMP, USTAR, DIAM, DEN ) & REAL(f8), INTENT(IN) :: USTAR ! Friction velocity [m/s] REAL(f8), INTENT(IN) :: DIAM ! Particle diameter [m] REAL(f8), INTENT(IN) :: DEN ! Particle density [kg/m3] + +! +! !OUTPUT PARAMETERS: +! + REAL(f8), INTENT(OUT) :: VTSout ! Settling velocity [m/s] + ! ! !RETURN VALUE: ! @@ -4353,6 +4558,7 @@ FUNCTION DUST_SFCRSII( K, II, PRESS, TEMP, USTAR, DIAM, DEN ) & ! Settling velocity [m/s] VTS = CONST * SLIP / VISC + VTSout = VTS ! Brownian diffusion constant for particle (m2/s) DIFF = BOLTZ * TEMP * SLIP / (3.e+0_f8 * Pi * VISC * DIAM) @@ -4532,6 +4738,38 @@ SUBROUTINE INIT_DRYDEP( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) id_H2O2 = Ind_('H2O2' ) id_SO2 = Ind_('SO2' ) id_NH3 = Ind_('NH3' ) + id_NK01 = Ind_('NK01' ) + + ! Drydep ID flags + idd_BCPO = Ind_('BCPI', 'D') + idd_BCPO = Ind_('BCPO', 'D') + idd_BrSALC = Ind_('BrSALC', 'D') + idd_BrSALA = Ind_('BrSALA', 'D') + idd_DST1 = Ind_('DST1', 'D') + idd_DST2 = Ind_('DST2', 'D') + idd_DST3 = Ind_('DST3', 'D') + idd_DST4 = Ind_('DST4', 'D') + idd_DSTAL1 = Ind_('DSTAL1', 'D') + idd_DSTAL2 = Ind_('DSTAL2', 'D') + idd_DSTAL3 = Ind_('DSTAL3', 'D') + idd_DSTAL4 = Ind_('DSTAL4', 'D') + idd_ISALA = Ind_('ISALA', 'D') + idd_ISALC = Ind_('ISALC', 'D') + idd_NH4 = Ind_('NH4', 'D') + idd_NIT = Ind_('NIT', 'D') + idd_NITD1 = Ind_('NITD1', 'D') + idd_NITD2 = Ind_('NITD2', 'D') + idd_NITD3 = Ind_('NITD3', 'D') + idd_NITD4 = Ind_('NITD4', 'D') + idd_NITs = Ind_('NITs', 'D') + idd_SALA = Ind_('SALA', 'D') + idd_SALC = Ind_('SALC', 'D') + idd_SO4 = Ind_('SO4', 'D') + idd_SO4D1 = Ind_('SO4D1', 'D') + idd_SO4D2 = Ind_('SO4D2', 'D') + idd_SO4D3 = Ind_('SO4D3', 'D') + idd_SO4D4 = Ind_('SO4D4', 'D') + idd_SO4s = Ind_('SO4S', 'D') !=================================================================== ! Arrays that hold information about dry-depositing species @@ -4758,9 +4996,6 @@ SUBROUTINE INIT_DRYDEP( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) SpcInfo => NULL() ENDDO - ! For TOMAS - id_NK1 = Ind_('NK1' ) - !================================================================= ! Allocate arrays ! add allocation for SALT_V and DMID (jaegle 5/11/11) @@ -4778,7 +5013,7 @@ SUBROUTINE INIT_DRYDEP( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) !================================================================= ! Echo information to stdout !================================================================= - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN ! Line 1 MSG = 'INIT_DRYDEP: List of dry deposition species:' diff --git a/GeosCore/dust_mod.F90 b/GeosCore/dust_mod.F90 index efd118082..d4919ab05 100644 --- a/GeosCore/dust_mod.F90 +++ b/GeosCore/dust_mod.F90 @@ -49,9 +49,9 @@ MODULE DUST_MOD ! !PRIVATE TYPES: ! ! Species ID flags - INTEGER :: id_DST1, id_DST2, id_DST3, id_DST4 - INTEGER :: id_DAL1, id_DAL2, id_DAL3, id_DAL4 - INTEGER :: id_DUST1, id_NK1 + INTEGER :: id_DST1, id_DST2, id_DST3, id_DST4 + INTEGER :: id_DAL1, id_DAL2, id_DAL3, id_DAL4 + INTEGER :: id_DUST01, id_NK01 ! Arrays REAL(fp), ALLOCATABLE :: FRAC_S(:) @@ -129,7 +129,6 @@ SUBROUTINE CHEMDUST( Input_Opt, State_Chm, State_Diag, & LOGICAL :: LDRYD LOGICAL :: LDUST LOGICAL :: LDSTUP - LOGICAL :: prtDebug ! Strings CHARACTER(LEN=255) :: ErrMsg @@ -155,9 +154,6 @@ SUBROUTINE CHEMDUST( Input_Opt, State_Chm, State_Diag, & LDUST = Input_Opt%LDUST LDSTUP = Input_Opt%LDSTUP - ! Set a flag for debug output - prtDebug = ( Input_Opt%LPrt .and. Input_Opt%amIRoot ) - ! Execute on first call only IF ( FIRST ) THEN @@ -316,7 +312,7 @@ SUBROUTINE CHEMDUST( Input_Opt, State_Chm, State_Diag, & ENDIF ! Debug print - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMDUST: a DRY_SETTLING' ) ENDIF @@ -343,10 +339,6 @@ SUBROUTINE SETTLEDUST( Input_Opt, State_Chm, State_Diag, & ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD ! ND44 - USE DIAG_MOD, ONLY : AD44 -#endif USE ErrCode_Mod USE ERROR_MOD USE Input_Opt_Mod, ONLY : OptInput @@ -357,8 +349,9 @@ SUBROUTINE SETTLEDUST( Input_Opt, State_Chm, State_Diag, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : GET_TS_CHEM - USE TOMAS_MOD, ONLY : IBINS, Xk, SRTDUST + USE TOMAS_MOD, ONLY : Xk, SRTDUST USE Species_Mod, ONLY : Species + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -389,7 +382,8 @@ SUBROUTINE SETTLEDUST( Input_Opt, State_Chm, State_Diag, & ! Non-SAVEd scalars INTEGER :: N, BIN, I, J, L, NN, IDISP - REAL(fp) :: DU0(State_Grid%NX,State_Grid%NY,State_Grid%NZ,IBINS) + REAL(fp) :: DU0(State_Grid%NX,State_Grid%NY,State_Grid%NZ, & + State_Chm%nTomasBins) REAL(fp) :: DIF, FLUXN, FLUXD REAL(fp) :: DT_SETTL, AREA_CM2 @@ -410,9 +404,9 @@ SUBROUTINE SETTLEDUST( Input_Opt, State_Chm, State_Diag, & RC = GC_SUCCESS ! Check that species units are in [kg] (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units: ' // TRIM(State_Chm%Spc_Units) - LOC = 'Routine SETTLEDUST in dust_mod.F' + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + MSG = 'Not all species have units "kg"!' + LOC = 'Routine SETTLEDUST in GeosCore/dust_mod.F90' CALL GC_Error( MSG, RC, LOC ) ENDIF @@ -428,10 +422,10 @@ SUBROUTINE SETTLEDUST( Input_Opt, State_Chm, State_Diag, & DT_SETTL = GET_TS_CHEM() ! Save initial dust mass - DO BIN = 1, IBINS + DO BIN = 1, State_Chm%nTomasBins ! Species ID - N = id_DUST1 - 1 + BIN + N = id_DUST01 - 1 + BIN DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY @@ -443,21 +437,22 @@ SUBROUTINE SETTLEDUST( Input_Opt, State_Chm, State_Diag, & ENDDO ! Dust settling - CALL DRY_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & - State_Met, id_DUST1, id_DUST1-1+IBINS, RC ) + CALL DRY_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & + State_Met, id_DUST01, id_DUST01-1+State_Chm%nTomasBins,& + RC ) ! Calculate change in number to correspond with dust redistribution ! by gravitational settling - DO BIN = 1, IBINS + DO BIN = 1, State_Chm%nTomasBins ! Species ID - N = id_DUST1 - 1 + BIN + N = id_DUST01 - 1 + BIN ! Look up this species in the species database ThisSpc => State_Chm%SpcData(N)%Info ! Drydep index (??? -- replace w/ species DB info?) - NN = State_Chm%nDryDep + (SRTDUST-1)*IBINS + BIN + NN = State_Chm%nDryDep + (SRTDUST-1)*State_Chm%nTomasBins + BIN DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -470,9 +465,9 @@ SUBROUTINE SETTLEDUST( Input_Opt, State_Chm, State_Diag, & FLUXN = 0e+0_fp DO L = 1, State_Grid%NZ - DIF = DU0(I,J,L,BIN) - Spc(id_DUST1-1+BIN)%Conc(I,J,L) + DIF = DU0(I,J,L,BIN) - Spc(id_DUST01-1+BIN)%Conc(I,J,L) - Spc(id_NK1-1+BIN)%Conc(I,J,L) = Spc(id_NK1-1+BIN)%Conc(I,J,L) - & + Spc(id_NK01-1+BIN)%Conc(I,J,L) = Spc(id_NK01-1+BIN)%Conc(I,J,L) - & DIF/(SQRT( Xk(BIN)*Xk(BIN+1))) ! Convert flux from [kg/s] to [molec/cm2/s] @@ -484,27 +479,6 @@ SUBROUTINE SETTLEDUST( Input_Opt, State_Chm, State_Diag, & DT_SETTL * AVO / & ( 1.e-3_fp * ThisSpc%MW_g ) / AREA_CM2 ENDDO - -#ifdef BPCH_DIAG - !=========================================================== - ! Dry deposition diagnostic [#/cm2/s] (bpch) - !=========================================================== - IF ( ND44 > 0 ) THEN - - !-------------------------------------------------------- - ! ND44 DIAGNOSTIC (bpch) - ! Dry deposition flux loss [#/cm2/s] - ! - ! NOTE: Bpch diagnostics are being phased out. - !-------------------------------------------------------- - !%%% NOTE: Now use TOMAS_IDDEP, which replicates the - !%%% since-removed Input_Opt%IDDEP field (bmy, 3/17/17) - AD44(I,J,TOMAS_IDDEP(BIN),1) = AD44(I,J,TOMAS_IDDEP(BIN),1) + & - FLUXN - AD44(I,J,NN,1) = AD44(I,J,NN,1) + FLUXD - ENDIF -#endif - ENDDO ENDDO @@ -537,10 +511,6 @@ SUBROUTINE EMISSDUST( Input_Opt, State_Chm, State_Diag, & ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD ! ND59 - USE DIAG_MOD, ONLY : AD59_DUST, AD59_NUMB !(win, 7/17/09) -#endif USE ErrCode_Mod USE ERROR_MOD, ONLY : DEBUG_MSG USE Input_Opt_Mod, ONLY : OptInput @@ -549,7 +519,7 @@ SUBROUTINE EMISSDUST( Input_Opt, State_Chm, State_Diag, & USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState - USE TOMAS_MOD, ONLY : IBINS, XK !(win, 7/17/09) + USE TOMAS_MOD, ONLY : XK ! ! !INPUT PARAMETERS: ! @@ -581,11 +551,10 @@ SUBROUTINE EMISSDUST( Input_Opt, State_Chm, State_Diag, & ! Non-SAVEd scalars LOGICAL :: LDEAD LOGICAL :: LDUST - LOGICAL :: prtDebug LOGICAL :: LINTERP INTEGER :: I, J, K, N REAL(fp) :: MEMIS - REAL(fp) :: MINIT(State_Grid%NX,State_Grid%NY,1,IBINS) + REAL(fp) :: MINIT(State_Grid%NX,State_Grid%NY,1,State_Chm%nTomasBins) ! Pointers TYPE(SpcConc), POINTER :: Spc(:) @@ -606,13 +575,12 @@ SUBROUTINE EMISSDUST( Input_Opt, State_Chm, State_Diag, & ! Initialize LDEAD = Input_Opt%LDEAD LDUST = Input_Opt%LDUST - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ! Execute on first-call only IF ( FIRST ) THEN ! Return if dust ID flags are not defined - IF ( id_DUST1 == 0 ) THEN + IF ( id_DUST01 == 0 ) THEN IF ( LDUST ) THEN ErrMsg = 'LDUST=T but dust species are undefined!' CALL GC_Error( ErrMsg, RC, ThisLoc ) @@ -630,10 +598,10 @@ SUBROUTINE EMISSDUST( Input_Opt, State_Chm, State_Diag, & !================================================================= ! For TOMAS microphysics !================================================================= - IF ( id_NK1 > 0 .and. id_DUST1 > 0 ) THEN + IF ( id_NK01 > 0 .and. id_DUST01 > 0 ) THEN - DO N = 1, IBINS - MINIT(:,:,1,N) = Spc(id_DUST1+N-1)%Conc(:,:,1) + DO N = 1, State_Chm%nTomasBins + MINIT(:,:,1,N) = Spc(id_DUST01+N-1)%Conc(:,:,1) ENDDO IF ( LDEAD ) THEN @@ -644,29 +612,11 @@ SUBROUTINE EMISSDUST( Input_Opt, State_Chm, State_Diag, & STOP ELSE - IF ( prtDebug ) CALL DEBUG_MSG( '### EMISSDUST: a SRC_DUST_GINOUX') + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### EMISSDUST: a SRC_DUST_GINOUX') + ENDIF ENDIF -#ifdef BPCH_DIAG - IF ( ND59 > 0 ) THEN - DO K = 1, IBINS - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - MEMIS = Spc(id_DUST1-1+K)%Conc(I,J,1) - MINIT(I,J,1,K) - IF ( MEMIS == 0.e+0_fp ) GOTO 10 - - AD59_DUST(I,J,1,K) = AD59_DUST(I,J,1,K) + MEMIS ! kg ???? - Spc(id_NK1-1+K)%Conc(I,J,1) = Spc(id_NK1-1+K)%Conc(I,J,1) + & - MEMIS / (sqrt(Xk(K)*Xk(K+1))) - - AD59_NUMB(I,J,1,K) = AD59_NUMB(I,J,1,K) + & - MEMIS / (sqrt(Xk(K)*Xk(K+1))) -10 CONTINUE - ENDDO - ENDDO - ENDDO - ENDIF -#endif ENDIF ! Free pointers @@ -1050,6 +1000,23 @@ SUBROUTINE DRY_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, & DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Zero private loop variables + CONST = 0.0_fp + DELZ = 0.0_fp + DELZ1 = 0.0_fp + DEN = 0.0_fp + DP = 0.0_fp + MASS = 0.0_fp + OLD = 0.0_fp + P = 0.0_fp + PDP = 0.0_fp + REFF = 0.0_fp + SLIP = 0.0_fp + TEMP = 0.0_fp + TC0 = 0.0_fp + VISC = 0.0_fp + VTS = 0.0_fp + DO L = 1, State_Grid%NZ DO N = APMIDS%id_DSTBIN1, IDTEMP MASS(L) = MASS(L) + Spc(N)%Conc(I,J,L) @@ -1197,7 +1164,10 @@ SUBROUTINE RDUST_ONLINE( Input_Opt, State_Chm, State_Diag, State_Grid, & ! ! !USES: ! - USE CMN_FJX_MOD + USE CMN_Size_MOD, ONLY : NDUST +#ifdef RRTMG + USE CMN_Size_MOD, ONLY : NAER +#endif USE ErrCode_Mod USE Input_Opt_Mod, ONLY : OptInput USE State_Chm_Mod, ONLY : ChmState @@ -1245,7 +1215,23 @@ SUBROUTINE RDUST_ONLINE( Input_Opt, State_Chm, State_Diag, State_Grid, & REAL(fp) :: tempOD(State_Grid%NX,State_Grid%NY, & State_Grid%NZ,NDUST, 3) - ! Pointers + ! Pointers to State_Chm%Phot + INTEGER, POINTER :: IWVREQUIRED(:) + INTEGER, POINTER :: IWVSELECT (:,:) + REAL*8, POINTER :: ACOEF_WV (:) + REAL*8, POINTER :: BCOEF_WV (:) + REAL*8, POINTER :: RDAA (:,:,:) + REAL*8, POINTER :: QQAA (:,:,:,:) + REAL*8, POINTER :: SSAA (:,:,:,:) + REAL*8, POINTER :: ASYMAA (:,:,:,:) + REAL(fp), POINTER :: ODMDUST (:,:,:,:,:) +#ifdef RRTMG + REAL*8, POINTER :: RTODAER (:,:,:,:,:) + REAL*8, POINTER :: RTSSAER (:,:,:,:,:) + REAL*8, POINTER :: RTASYMAER(:,:,:,:,:) +#endif + + ! Other pointers REAL(fp), POINTER :: ERADIUS(:,:,:,:) REAL(fp), POINTER :: TAREA(:,:,:,:) REAL(fp), POINTER :: WERADIUS(:,:,:,:) @@ -1260,6 +1246,23 @@ SUBROUTINE RDUST_ONLINE( Input_Opt, State_Chm, State_Diag, State_Grid, & RC = GC_SUCCESS ! Initialize pointers + + IWVREQUIRED => State_Chm%Phot%IWVREQUIRED ! WL indexes for interpolation + IWVSELECT => State_Chm%Phot%IWVSELECT ! Indexes of requested WLs + ACOEF_WV => State_Chm%Phot%ACOEF_WV ! Coeffs for WL interpolation + BCOEF_WV => State_Chm%Phot%BCOEF_WV ! Coeffs for WL interpolation + RDAA => State_Chm%Phot%RDAA + QQAA => State_Chm%Phot%QQAA + SSAA => State_Chm%Phot%SSAA + ASYMAA => State_Chm%Phot%ASYMAA + ODMDUST => State_Chm%Phot%ODMDUST +#ifdef RRTMG + RTODAER => State_Chm%Phot%RTODAER ! Optical dust + RTSSAER => State_Chm%Phot%RTSSAER + RTASYMAER => State_Chm%Phot%RTASYMAER +#endif + + ERADIUS => State_Chm%AeroRadi ! Aerosol Radius [cm] TAREA => State_Chm%AeroArea ! Aerosol Area [cm2/cm3] WERADIUS => State_Chm%WetAeroRadi ! Wet Aerosol Radius [cm] @@ -1310,9 +1313,9 @@ SUBROUTINE RDUST_ONLINE( Input_Opt, State_Chm, State_Diag, State_Grid, & ELSE IF ( Input_Opt%LRAD ) THEN !Loop over all RT wavelengths (30) ! plus any required for calculating the AOD - NWVS = NWVAART+NWVREQUIRED + NWVS = State_Chm%Phot%NWVAART + State_Chm%Phot%NWVREQUIRED ELSE !Loop over wavelengths needed (from RD_AOD) - NWVS = NWVREQUIRED + NWVS = State_Chm%Phot%NWVREQUIRED ENDIF ENDIF @@ -1323,20 +1326,20 @@ SUBROUTINE RDUST_ONLINE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF (ODSWITCH .EQ. 0) THEN ! only doing for 1000nm i.e. IWV=10 in LUT ! N.B. NWVS is fixed to 1 above - only one wavelength - IWV=IWV1000 + IWV=State_Chm%Phot%IWV1000 ELSE IF ( Input_Opt%LRAD ) THEN ! RRTMG wavelengths begin after NWVAA0 standard wavelengths ! but add on any others required - IF (IIWV.LE.NWVAART) THEN + IF (IIWV.LE.State_Chm%Phot%NWVAART) THEN !index of RRTMG wavelengths starts after the standard NWVAA0 - !(currently NWVAA0=11, set in CMN_FJX_mod based on the .dat - !LUT) - IWV = IIWV+NWVAA0 + !(currently NWVAA0=11, hard-coded in phot_container_mod based + !on the .dat LUT) + IWV = IIWV + State_Chm%Phot%NWVAA0 ELSE !now we calculate at wvs for the requested AOD !offset index by NWVAART i.e. start from 1 - IWV = IWVREQUIRED(IIWV-NWVAART) + IWV = IWVREQUIRED(IIWV-State_Chm%Phot%NWVAART) ENDIF ELSE ! IWVREQUIRED lists the index of requires standard wavelengths @@ -1355,8 +1358,8 @@ SUBROUTINE RDUST_ONLINE( Input_Opt, State_Chm, State_Diag, State_Grid, & ! dust stored in the IDST species bin of LUT variables ODMDUST(I,J,L,IWV,N) = 0.75e+0_fp * & State_Met%BXHEIGHT(I,J,L) * & - DUST(I,J,L,N) * QQAA(IWV,N,IDST) / & - ( MSDENS(N) * RDAA(N,IDST) * 1.0e-6_fp) + DUST(I,J,L,N) * QQAA(IWV,N,IDST,State_Chm%Phot%DRg) / & + ( MSDENS(N) * RDAA(N,IDST,State_Chm%Phot%DRg) * 1.0e-6_fp) #ifdef RRTMG !add dust optics to the RT code arrays @@ -1364,8 +1367,8 @@ SUBROUTINE RDUST_ONLINE( Input_Opt, State_Chm, State_Diag, State_Grid, & !will keep this way for uniformity for now but !possibly could deal with SSA and ASYM in RT module RTODAER(I,J,L,IWV,NAER+2+N) = ODMDUST(I,J,L,IWV,N) - RTSSAER(I,J,L,IWV,NAER+2+N) = SSAA(IWV,N,IDST) - RTASYMAER(I,J,L,IWV,NAER+2+N) = ASYMAA(IWV,N,IDST) + RTSSAER(I,J,L,IWV,NAER+2+N) = SSAA(IWV,N,IDST,State_Chm%Phot%DRg) + RTASYMAER(I,J,L,IWV,NAER+2+N) = ASYMAA(IWV,N,IDST,State_Chm%Phot%DRg) #endif ENDDO @@ -1402,7 +1405,7 @@ SUBROUTINE RDUST_ONLINE( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Skip non-chemistry boxes IF ( .not. State_Met%InChemGrid(I,J,L) ) CYCLE - ERADIUS(I,J,L,N) = RDAA(N,IDST) * 1.0e-4_fp + ERADIUS(I,J,L,N) = RDAA(N,IDST,State_Chm%Phot%DRg) * 1.0e-4_fp TAREA(I,J,L,N) = 3.e+0_fp / ERADIUS(I,J,L,N) * & DUST(I,J,L,N) / MSDENS(N) @@ -1534,6 +1537,20 @@ SUBROUTINE RDUST_ONLINE( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF ! Free pointers + IWVREQUIRED => NULL() + IWVSELECT => NULL() + ACOEF_WV => NULL() + BCOEF_WV => NULL() + RDAA => NULL() + QQAA => NULL() + SSAA => NULL() + ASYMAA => NULL() + ODMDUST => NULL() +#ifdef RRTMG + RTODAER => NULL() + RTSSAER => NULL() + RTASYMAER => NULL() +#endif ERADIUS => NULL() TAREA => NULL() WERADIUS => NULL() @@ -2017,7 +2034,7 @@ SUBROUTINE INIT_DUST( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState #ifdef TOMAS - USE TOMAS_MOD, ONLY : IBINS, Xk + USE TOMAS_MOD, ONLY : Xk #endif ! ! !INPUT PARAMETERS: @@ -2106,8 +2123,8 @@ SUBROUTINE INIT_DUST( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) !================================================================= ! TOMAS species ID flags - id_DUST1 = Ind_('DUST1') - id_NK1 = Ind_('NK1' ) + id_DUST01 = Ind_('DUST01') + id_NK01 = Ind_('NK01' ) !---------------------------------- ! Set up FRAC_S (only for Ginoux) @@ -2125,9 +2142,9 @@ SUBROUTINE INIT_DUST( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) ! Initialize TOMAS_IDDEP = 0 - DO BIN = 1, IBINS + DO BIN = 1, State_Chm%nTomasBins DO N = 1, State_Chm%nDryDep - IF ( State_Chm%Map_DryDep(N) == ( id_NK1-1+BIN ) )THEN + IF ( State_Chm%Map_DryDep(N) == ( id_NK01-1+BIN ) )THEN TOMAS_IDDEP(BIN) = N GOTO 100 ENDIF diff --git a/GeosCore/emissions_mod.F90 b/GeosCore/emissions_mod.F90 index 74ac01d81..989020652 100644 --- a/GeosCore/emissions_mod.F90 +++ b/GeosCore/emissions_mod.F90 @@ -26,23 +26,12 @@ MODULE Emissions_Mod PUBLIC :: Emissions_Run PUBLIC :: Emissions_Final ! -! !PRIVATE MEMBER FUNCTIONS: -! - PRIVATE :: MMR_Compute_Flux -! ! !REVISION HISTORY: ! 27 Aug 2014 - C. Keller - Initial version. ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC -! -! !PRIVATE TYPES: -! - ! Species ID flags - INTEGER :: id_CH4 - LOGICAL :: doMaintainMixRatio - CONTAINS !EOC !------------------------------------------------------------------------------ @@ -103,15 +92,6 @@ SUBROUTINE Emissions_Init( Input_Opt, State_Chm, State_Grid, State_Met, & ErrMsg = '' ThisLoc = ' -> at Emissions_Init (in module GeosCore/emissions_mod.F90)' - ! Define species ID flags for use in routines below - id_CH4 = Ind_('CH4' ) - - ! Are we including a species for which the global mixing ratio should - ! remain constant? - doMaintainMixRatio = ( Ind_('GlobEmis90dayTracer') > 0 .OR. & - Ind_('GlobNH90dayTracer' ) > 0 .OR. & - Ind_('GlobSH90dayTracer' ) > 0 ) - ! Initialize the HEMCO environment for this GEOS-Chem run. CALL HCOI_GC_Init( Input_Opt, State_Chm, State_Grid, State_Met, & RC, HcoConfig=HcoConfig ) @@ -138,8 +118,8 @@ END SUBROUTINE Emissions_Init !\\ ! !INTERFACE: ! - SUBROUTINE Emissions_Run( Input_Opt, State_Chm, State_Diag, & - State_Grid, State_Met, EmisTime, Phase, RC ) + SUBROUTINE Emissions_Run( Input_Opt, State_Chm, State_Diag, State_Grid, & + State_Met, EmisTime, Phase, RC ) ! ! !USES: ! @@ -147,7 +127,6 @@ SUBROUTINE Emissions_Run( Input_Opt, State_Chm, State_Diag, & USE Carbon_Gases_Mod, ONLY : Emiss_Carbon_Gases USE CO2_MOD, ONLY : EmissCO2 USE ErrCode_Mod - USE GLOBAL_CH4_MOD, ONLY : EmissCH4 USE HCO_Interface_GC_Mod, ONLY : HCOI_GC_Run USE Input_Opt_Mod, ONLY : OptInput USE Mercury_Mod, ONLY : EmissMercury @@ -157,6 +136,7 @@ SUBROUTINE Emissions_Run( Input_Opt, State_Chm, State_Diag, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE Time_Mod, ONLY : Get_Ts_Emis + USE Tracer_Mod, ONLY : Tracer_Source_Phase Use SfcVmr_Mod, ONLY : FixSfcVmr_Run #ifdef TOMAS USE CARBON_MOD, ONLY : EmissCarbonTomas @@ -230,7 +210,8 @@ SUBROUTINE Emissions_Run( Input_Opt, State_Chm, State_Diag, & #ifdef TOMAS ! Call TOMAS emission routines (JKodros 6/2/15) - CALL EmissCarbonTomas( Input_Opt, State_Chm, State_Grid, State_Met, RC ) + CALL EmissCarbonTomas( Input_Opt, State_Chm, State_Grid, State_Met, & + State_Diag, RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -266,23 +247,14 @@ SUBROUTINE Emissions_Run( Input_Opt, State_Chm, State_Diag, & ENDIF ENDIF - ! For CH4 simulation - ! - ! This will get the individual CH4 emission terms (gas, coal, wetlands, - ! ...) and write them into the individual emissions arrays defined in - ! global_ch4_mod (CH4_EMIS). Emissions are all done in mixing_mod, the - ! call to EMISSCH4 is for backwards consistency. This is especially - ! needed to do the analytical inversions. - ! - ! To enable CH4 emissions in a full-chemistry simulation, add entries - ! in HEMCO_Config.rc as is done for other species. - ! (mps, 2/12/21) - IF ( Input_Opt%ITS_A_CH4_SIM ) THEN - CALL EmissCh4( Input_Opt, State_Chm, State_Grid, State_Met, RC ) + ! For transport tracer simulation + IF ( Input_Opt%ITS_A_TRACER_SIM ) THEN + CALL Tracer_Source_Phase( Input_Opt, State_Chm, State_Grid, & + State_Met, RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "EmissCH4"!' + ErrMsg = 'Error encountered in "Tracer_Source_Phase"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -290,8 +262,7 @@ SUBROUTINE Emissions_Run( Input_Opt, State_Chm, State_Diag, & ! Carbon simulation (e.g. CO2-CO-CH4-OCS via KPP) ! - ! This will get the individual CH4 emission terms in the same way - ! as done for the CH4 simulation above. + ! Computes CO2 production from CO oxidation IF ( Input_Opt%ITS_A_CARBON_SIM ) THEN CALL Emiss_Carbon_Gases( Input_Opt, State_Chm, State_Diag, & State_Grid, State_Met, RC ) @@ -330,14 +301,7 @@ SUBROUTINE Emissions_Run( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - endif - - ENDIF - - IF ( doMaintainMixRatio ) THEN - - ! Compute the surface flux needed to restore the total burden - CALL MMR_Compute_Flux( Input_Opt, State_Chm, State_Grid, State_Met, RC ) + ENDIF ENDIF @@ -401,221 +365,4 @@ SUBROUTINE Emissions_Final( Error, RC ) ENDIF END SUBROUTINE Emissions_Final !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: MMR_Compute_Flux -! -! !DESCRIPTION: Subroutine MMR\_Compute\_Flux computes the surface flux -! needed to maintain a given mixing ratio value. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE MMR_Compute_Flux( Input_Opt, State_Chm, & - State_Grid, State_Met, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE PhysConstants - USE Species_Mod, ONLY : Species, SpcConc - USE State_Chm_Mod, ONLY : ChmState - USE State_Grid_Mod, ONLY : GrdState - USE State_Met_Mod, ONLY : MetState - USE UnitConv_Mod, ONLY : Convert_Spc_Units -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object! -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 31 Jan 2019 - M. Sulprizio- Initial version, modified from MMR code in -! TR_GridCompMod.F90 from GEOS model -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - LOGICAL :: isGlobal - LOGICAL :: isNorthHem - LOGICAL :: isSouthHem - INTEGER :: I, J, L, N, nAdvect - REAL(fp) :: Total_Spc - REAL(fp) :: Total_Area - REAL(fp) :: YMID - - ! Arrays - REAL(fp) :: Flux(State_Grid%NX,State_Grid%NY) - REAL(fp) :: Mask(State_Grid%NX,State_Grid%NY) - - ! Strings - CHARACTER(LEN=63) :: OrigUnit - CHARACTER(LEN=255) :: ThisLoc - CHARACTER(LEN=512) :: ErrMsg - - ! Pointers - TYPE(SpcConc), POINTER :: Spc(:) - TYPE(Species), POINTER :: SpcInfo -! -! !DEFINED PARAMETERS: -! - ! Hardcode global burden to 100 ppbv for now - REAL(fp), PARAMETER :: GlobalBurden = 1.0e-7_fp ! [v/v] - - !================================================================= - ! MMR_Compute_Flux begins here! - !================================================================= - - ! Initialize - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = & - ' -> at MMR_Compute_Flux (in module GeosCore/emissions_mod.F90)' - - ! Point to chemical species array [kg/kg dry air] - Spc => State_Chm%Species - - ! Number of advected species - nAdvect = State_Chm%nAdvect - - !======================================================================= - ! Convert species units to v/v dry - !======================================================================= - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'v/v dry', RC, OrigUnit=OrigUnit ) - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Unit conversion error (kg/kg dry -> v/v dry)' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - !======================================================================== - ! Compute the surface flux needed to restore the total burden - !======================================================================== - - ! Loop over species - DO N = 1, nAdvect - - ! Point to the Species Database entry for species N - SpcInfo => State_Chm%SpcData(N)%Info - - ! Test for global, NH, or SH passive species - ! Save into logical variables to reduce the number of string tests - isGlobal = ( TRIM( SpcInfo%Name ) == 'GlobEmis90dayTracer' ) - isNorthHem = ( TRIM( SpcInfo%Name ) == 'NHEmis90dayTracer' ) - isSouthHem = ( TRIM( SpcInfo%Name ) == 'SHEmis90dayTracer' ) - - ! Only do calculation if this is an MMR tracer - IF ( isGlobal .or. isNorthHem .or. isSouthHem ) THEN - - ! Initialize - Total_Spc = 0.0_fp - Total_Area = 0.0_fp - Mask = 1.0_fp - Flux = 0.0_fp - - !------------------------------------------------------------------ - ! Compute total area [m2] of relevance for the species - ! (either entire globe, N. Hemisphere, or S. Hemisphere) - !------------------------------------------------------------------ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - - IF ( isNorthHem ) THEN - - ! Northern Hemisphere passive species: - ! Set mask to pick up only the N. Hemisphere boxes - IF ( State_Grid%YMid(I,J) < 0.0_fp ) Mask(I,J) = 0.0_fp - - ELSE IF ( isSouthHem ) THEN - - ! Southern Hemisphere passive species: - ! Set mask to pick up only the S. Hemisphere boxes - IF ( State_Grid%YMid(I,J) >= 0.0_fp ) Mask(I,J) = 0.0_fp - - ENDIF - - ! Accumulate the total area of relevance [m2] - Total_Area = Total_Area + ( State_Grid%Area_M2(I,J) * Mask(I,J) ) - ENDDO - ENDDO - - !------------------------------------------------------------------ - ! We only need to update concentrations when Total_Area > 0. - ! If Total_Area == 0, then we need to skip the computation of - ! Flux, or else we will incur a div-by-zero condition. - ! - ! NOTE: Recall that one cube-sphere face resides entirely within - ! the N. Hemisphere and another resides entirely within the S. - ! Hemisphere (assuming no stretching/rotation of the grid.) - ! Therefore, we could potentially have a case where MASK=0 and - ! Total_Area=0 for all of the grid boxes on a given computational - ! core, thus causing a div-by-zero condition. - ! - ! -- Bob Yantosca (12 Apr 2022) - !------------------------------------------------------------------ - IF ( Total_Area > 0.0_fp ) THEN - - ! Compute mol of Tracer needed to achieve the desired value - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - Total_Spc = Total_Spc & - + ( GlobalBurden - Spc(N)%Conc(I,J,L) ) & - * ( State_Met%AIRNUMDEN(I,J,L) / AVO ) & - * State_Met%AIRVOL(I,J,1) - ENDDO - ENDDO - ENDDO - - ! Compute flux [mol/m2] - Flux(:,:) = ( Total_Spc / Total_Area ) * Mask(:,:) - - ! Update species concentrations [mol/mol] - Spc(N)%Conc(:,:,1) = Spc(N)%Conc(:,:,1) & - + ( Flux(:,:) * AVO ) & - / ( State_Met%BXHEIGHT(:,:,1) & - * State_Met%AIRNUMDEN(:,:,1) ) - ENDIF - - ENDIF ! MMR tracer - - ! Free pointers - SpcInfo => NULL() - - ENDDO - - !======================================================================= - ! Convert species units back to original unit - !======================================================================= - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Unit conversion error' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ! Free pointer - Spc => NULL() - - END SUBROUTINE MMR_Compute_Flux -!EOC END MODULE Emissions_Mod diff --git a/GeosCore/exchange_mod.F90 b/GeosCore/exchange_mod.F90 index 844249d2d..5dd957e79 100644 --- a/GeosCore/exchange_mod.F90 +++ b/GeosCore/exchange_mod.F90 @@ -797,7 +797,6 @@ SUBROUTINE EX_DUMP_FOR_GLOBAL( Input_Opt, State_Chm, State_Grid, & ! TYPE(SpcConc, POINTER :: SPC(:) INTEGER :: L, I,IU_RST - LOGICAL :: prtDebug !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! NOTE: Species units are in kg/kg dry which may be incompatible with @@ -805,7 +804,6 @@ SUBROUTINE EX_DUMP_FOR_GLOBAL( Input_Opt, State_Chm, State_Grid, & ! developers (ewl, 8/15/16) !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SPC => State_Chm%Species - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) IU_RST=2 IF ( Input_Opt%amIRoot ) THEN WRITE (*,*) "@@@@@@@@@@@@@@@@@@ EX_DUMP_FOR_GLOBAL" @@ -839,7 +837,9 @@ SUBROUTINE EX_DUMP_FOR_GLOBAL( Input_Opt, State_Chm, State_Grid, & CLOSE( IU_RST ) SPC => NULL() - IF ( prtDebug ) CALL DEBUG_MSG( '### WRITE_EXCHANGE: wrote file' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### WRITE_EXCHANGE: wrote file' ) + ENDIF END SUBROUTINE EX_DUMP_FOR_GLOBAL !EOC @@ -900,7 +900,6 @@ SUBROUTINE EX_READ_AND_APPLY_FEEDBACK( Input_Opt, State_Chm, State_Grid, & REAL*4 :: ARRAYTEMPR(576,361,73) INTEGER :: L,IU_RST,IOS INTEGER :: NI,NJ,NK,I,J,K - LOGICAL :: prtDebug !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! NOTE: Species units are in kg/kg dry which may be incompatible with @@ -908,14 +907,13 @@ SUBROUTINE EX_READ_AND_APPLY_FEEDBACK( Input_Opt, State_Chm, State_Grid, & ! 3rd party developers (ewl, 8/15/16) !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SPC => State_Chm%Species - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) IU_RST=2 IOS=1 NI=IM_BC_CH NJ=JM_BC_CH NK=State_Grid%NZ - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE (*,*) "@@@@@@@@@@@@@@@@@@ EX_READ_AND_APPLY_FEEDBACK" WRITE(*,*) "!!!!!!!!!!FILLING THE SPECIES BOUNDARY" ENDIF @@ -1046,7 +1044,9 @@ SUBROUTINE EX_READ_AND_APPLY_FEEDBACK( Input_Opt, State_Chm, State_Grid, & !CLOSE( 2 ) ENDIF - IF ( prtDebug ) CALL DEBUG_MSG( '### read and apply fb: done' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### read and apply fb: done' ) + ENDIF END SUBROUTINE EX_READ_AND_APPLY_FEEDBACK !EOC diff --git a/GeosCore/fast_jx_mod.F90 b/GeosCore/fast_jx_mod.F90 index 16de208bf..2c1d077a7 100644 --- a/GeosCore/fast_jx_mod.F90 +++ b/GeosCore/fast_jx_mod.F90 @@ -1,27 +1,25 @@ +#ifdef FASTJX !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !MODULE: fast_jx_mod.F90 +! !MODULE: fjx_mod.F90 ! -! !DESCRIPTION: Module FAST\_JX\_MOD contains routines and variables for -! calculating photolysis rates using the Fast-JX scheme (Prather et al). -! Current implementation is version 7.0a. +! !DESCRIPTION: Module FJX\_MOD contains routines for the Fast-JX scheme +! (Prather et al). Current implementation is version 7.0a. Content in this +! file used to be in fast_jx_mod.F90 but was moved here for development of +! Cloud-J which will replace Fast-JX in GEOS-Chem. This module interfaces +! with fjx_interface_mod. !\\ !\\ ! !INTERFACE: ! -MODULE FAST_JX_MOD +MODULE FJX_MOD ! ! !USES: ! - USE CMN_FJX_MOD USE PRECISION_MOD ! For GEOS-Chem Precision (fp) -#if defined( MODEL_CESM ) && defined( SPMD ) - USE MPISHORTHAND - USE SPMD_UTILS -#endif IMPLICIT NONE @@ -29,67 +27,31 @@ MODULE FAST_JX_MOD ! ! !PUBLIC MEMBER FUNCTIONS: ! - PUBLIC :: EXITC - PUBLIC :: PHOTO_JX - PUBLIC :: INIT_FJX - PUBLIC :: FAST_JX - PUBLIC :: PHOTRATE_ADJ + PUBLIC :: PHOTO_JX ! Computes J-values + PUBLIC :: SOLAR_JX ! Computes solar zenith angle and solar function + PUBLIC :: RD_MIE ! Called in init_fjx + PUBLIC :: RD_XXX ! Called in init_fjx + PUBLIC :: RD_JS_JX ! Called in init_fjx ! ! !PRIVATE MEMBER FUNCTIONS: ! - PRIVATE :: SOLAR_JX - PRIVATE :: OPMIE - PRIVATE :: MIESCT - PRIVATE :: LEGND0 - PRIVATE :: BLKSLV - PRIVATE :: GEN_ID - PRIVATE :: JRATET - PRIVATE :: X_INTERP - PRIVATE :: SPHERE2 - PRIVATE :: EXTRAL - PRIVATE :: RD_PROF_NC - PRIVATE :: RD_AOD - PRIVATE :: RD_MIE - PRIVATE :: RD_XXX - PRIVATE :: RD_JS_JX - PRIVATE :: SET_AER + PRIVATE :: OPMIE ! Called in Photo_JX + PRIVATE :: SPHERE2 ! Called in Photo_JX + PRIVATE :: EXTRAL ! Called in Photo_JX + PRIVATE :: JRATET ! Called in Photo_JX + PRIVATE :: X_INTERP ! Called in both JRATET and PHOTO_JX + PRIVATE :: MIESCT ! Called in OPMIE + PRIVATE :: BLKSLV ! Called in MIESCT + PRIVATE :: GEN_ID ! Called in BLKSLV + PRIVATE :: LEGND0 ! Called in MIESCT + PRIVATE :: EXITC ! ! !REVISION HISTORY: +! 14 Dec 2022 - E. Lundgren - Adapted from fast_jx_mod ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC - ! Flags for certain photo-reactions that will be adjusted by - ! subroutine PHOTRATE_ADJ, which is called by FlexChem (bmy 3/29/16) - INTEGER, PUBLIC :: RXN_O2 = -1 ! O2 + jv --> O + O - INTEGER, PUBLIC :: RXN_O3_1 = -1 ! O3 + hv --> O2 + O - INTEGER, PUBLIC :: RXN_O3_2 = -1 ! O3 + hv --> O2 + O(1D) - INTEGER, PUBLIC :: RXN_H2SO4 = -1 ! SO4 + hv --> SO2 + 2OH - INTEGER, PUBLIC :: RXN_NO2 = -1 ! NO2 + hv --> NO + O - - INTEGER, PUBLIC :: RXN_JHNO3 = -1 ! HNO3 + hv --> OH + NO2 - INTEGER, PUBLIC :: RXN_JNITSa = -1 ! NITs + hv --> HNO2 - INTEGER, PUBLIC :: RXN_JNITSb = -1 ! NITs + hv --> NO2 - INTEGER, PUBLIC :: RXN_JNITa = -1 ! NIT + hv --> HNO2 - INTEGER, PUBLIC :: RXN_JNITb = -1 ! NIT + hv --> NO2 - - ! Needed for UCX_MOD - INTEGER, PUBLIC :: RXN_NO = -1 - INTEGER, PUBLIC :: RXN_NO3 = -1 - INTEGER, PUBLIC :: RXN_N2O = -1 - - ! For Hg chem - INTEGER, PUBLIC :: RXN_BrO = -1 - INTEGER, PUBLIC :: RXN_ClO = -1 - - ! Species ID flags - INTEGER :: id_CH2IBr, id_IBr, id_CH2ICl, id_ICl, id_I2 - INTEGER :: id_HOI, id_IO, id_OIO, id_INO, id_IONO - INTEGER :: id_IONO2, id_I2O2, id_CH3I, id_CH2I2, id_I2O4 - INTEGER :: id_I2O3 - - ! Needed for scaling JNIT/JNITs photolysis to JHNO3 - REAL(fp) :: JscaleNITs, JscaleNIT, JNITChanA, JNITChanB CONTAINS !EOC @@ -98,76 +60,72 @@ MODULE FAST_JX_MOD !------------------------------------------------------------------------------ !BOP ! -! !ROUTINE: fast_jx +! !IROUTINE: photo_jx ! -! !DESCRIPTION: Subroutine FAST\_JX loops over longitude and latitude, and -! calls PHOTO\_JX to compute J-Values for each column at every chemistry -! time-step. +! !DESCRIPTION: Subroutine PHOTO\_JX is the core subroutine of Fast-JX. +! calc J's for a single column atmosphere (aka Indep Colm Atmos or ICA) +! needs P, T, O3, clds, aersls; adds top-of-atmos layer from climatology +! needs day-fo-year for sun distance, SZA (not lat or long) !\\ !\\ ! !INTERFACE: ! - SUBROUTINE FAST_JX( WLAOD, Input_Opt, State_Chm, State_Diag, & - State_Grid, State_Met, RC ) + SUBROUTINE PHOTO_JX( amIRoot, dryrun, & + U0, REFLB, SZA, SOLF, & + P_COL, T_COL, AOD999, ILON, & + ILAT, AERX_COL, T_CLIM, OOJ, & + ZZJ, DDJ, maxChemLev, State_Chm, & + VALJXX, FSBOT, FJBOT, FLXD, & + FJFLX, Input_Opt, State_Diag ) ! ! !USES: ! - USE CMN_SIZE_MOD, ONLY : NDUST, NRH - USE ErrCode_Mod - USE ERROR_MOD, ONLY : ERROR_STOP, ALLOC_ERR - USE ERROR_MOD, ONLY : DEBUG_MSG - USE Input_Opt_Mod, ONLY : OptInput - USE State_Chm_Mod, ONLY : ChmState - USE State_Chm_Mod, ONLY : Ind_ - USE State_Diag_Mod, ONLY : DgnState - USE State_Grid_Mod, ONLY : GrdState - USE State_Met_Mod, ONLY : MetState - USE TIME_MOD, ONLY : GET_MONTH, GET_DAY, GET_DAY_OF_YEAR - USE TIME_MOD, ONLY : GET_TAU, GET_YEAR - USE TOMS_MOD, ONLY : GET_OVERHEAD_O3 + USE CMN_FJX_Mod, ONLY : L_, L1_, A_, N_, W_, X_, AN_ + USE CMN_FJX_Mod, ONLY : JXL_, JXL1_, JXL2_, JVN_ + USE CMN_FJX_Mod, ONLY : QO2, QO3, NJX, FL, WL, QRAYL + USE CMN_FJX_Mod, ONLY : LQQ, TQQ, QAA, PAA, SAA + USE CMN_SIZE_Mod, ONLY : NRH, NRHAER + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState ! For NSPAA, QQAA, SSAA, PHAA + USE State_Diag_Mod, ONLY : DgnState IMPLICIT NONE - -!============================================================================== -! Uncomment the appropriate #define statement to denote which of the -! available cloud overlap options that you wish to use. - -!! Linear overlap -!#define USE_LINEAR_OVERLAP 1 - -! Approximate random overlap (balance between accuracy & speed) -#define USE_APPROX_RANDOM_OVERLAP 1 - -!! Maximum random cloud overlap (most computationally intensive) -!#define USE_MAXIMUM_RANDOM_OVERLAP 1 -!============================================================================== ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: WLAOD ! AOD calculated how? - ! (1: 550 nm, 0: 999 nm) - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object + LOGICAL, INTENT(IN) :: amIRoot + LOGICAL, INTENT(IN) :: dryrun + REAL(fp), INTENT(IN) :: U0,REFLB + REAL(fp), INTENT(IN) :: SZA,SOLF + REAL(fp), INTENT(IN), DIMENSION(L1_+1 ) :: P_COL + REAL(fp), INTENT(IN), DIMENSION(L1_ ) :: T_COL + LOGICAL, INTENT(IN) :: AOD999 + INTEGER, INTENT(IN) :: ILON, ILAT + REAL(fp), INTENT(IN), DIMENSION(AN_,L1_) :: AERX_COL ! Aerosol column + REAL(fp), INTENT(IN), DIMENSION(L1_ ) :: T_CLIM ! Clim. temps (K) + REAL(fp), INTENT(IN), DIMENSION(L1_ ) :: OOJ ! O3 col depth (#/cm2) + REAL(fp), INTENT(IN), DIMENSION(L1_+1 ) :: ZZJ ! Edge alts (cm) + REAL(fp), INTENT(IN), DIMENSION(L1_ ) :: DDJ + INTEGER, INTENT(IN) :: maxChemLev + TYPE(ChmState), INTENT(IN) :: State_Chm + TYPE(OptInput), INTENT(IN) :: Input_Opt ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! -! !OUTPUT PARAMETERS: +! OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC ! Success or failure? + REAL(fp), INTENT(OUT), DIMENSION(L_,JVN_ ) :: VALJXX + REAL(fp), INTENT(OUT), DIMENSION(W_ ) :: FSBOT + REAL(fp), INTENT(OUT), DIMENSION(W_ ) :: FJBOT + REAL(fp), INTENT(OUT), DIMENSION(JXL1_,W_) :: FLXD + REAL(fp), INTENT(OUT), DIMENSION(JXL_,W_ ) :: FJFLX ! ! !REMARKS: ! -! Parameter to choose cloud overlap algorithm: -! ============================================================================ -! (1 ) OVERLAP (INTEGER) : 1 - Linear Approximation (used up to v7-04-12) -! 2 - Approximate Random Overlap (default) -! 3 - Maximum Random Overlap (computation intensive) -! ! !REVISION HISTORY: +! 08 Dec 2022 - E. Lundgren - Adapted from S.D.Eastham's adapted Fast-JX v7.0 ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ @@ -175,398 +133,415 @@ SUBROUTINE FAST_JX( WLAOD, Input_Opt, State_Chm, State_Diag, & ! ! !LOCAL VARIABLES: ! - INTEGER, SAVE :: LASTMONTH = -1 - INTEGER :: NLON, NLAT, DAY, MONTH, DAY_OF_YR, L, N - INTEGER :: IOPT, LCHEM - REAL(fp) :: CSZA, PRES, SFCA, YLAT, O3_TOMS - REAL(fp) :: O3_CTM(State_Grid%NZ+1) - REAL(fp) :: T_CTM(State_Grid%NZ+1), OPTD(State_Grid%NZ) - REAL(fp) :: OPTDUST(State_Grid%NZ,NDUST) - REAL(fp) :: OPTAER(State_Grid%NZ,A_) - - ! Local variables for cloud overlap (hyl, phs) - INTEGER :: NUMB, KK, I - INTEGER :: INDIC(State_Grid%NZ+1) - INTEGER :: INDGEN(State_Grid%NZ+1)! = (/ (i,i=1,State_Grid%NZ+1) /) - INTEGER :: KBOT(State_Grid%NZ) - INTEGER :: KTOP(State_Grid%NZ) - INTEGER :: INDICATOR(State_Grid%NZ+2) - REAL(fp) :: FMAX(State_Grid%NZ) ! maximum cloud fraction - ! in a block, size can be to - ! FIX(State_Grid%NZ)+1 - REAL(fp) :: CLDF1D(State_Grid%NZ) - REAL(fp) :: ODNEW(State_Grid%NZ) - REAL(fp) :: P_CTM(State_Grid%NZ+2) - - LOGICAL :: AOD999 - LOGICAL, SAVE :: FIRST = .true. - LOGICAL :: prtDebug - - ! Species ID flags - INTEGER, SAVE :: id_O3 + ! -------------------------------------------------------------------- + ! key LOCAL atmospheric data needed to solve plane-parallel J---- + ! --these are dimensioned JXL_, and must have JXL_ .ge. State_Grid%NZ + real(fp), dimension(JXL1_+1) :: PPJ + integer,dimension(JXL2_+1) :: JXTRA + real(fp), dimension(W_) :: FJTOP,FLXD0,RFL + real(fp), dimension(JXL_, W_) :: AVGF + real(fp), dimension(JXL1_,W_) :: DTAUX + real(fp), dimension(8,JXL1_,W_) :: POMEGAX - ! Strings - CHARACTER(LEN=255) :: ErrMsg, ThisLoc + ! flux/heating arrays (along with FJFLX,FLXD,FLXD0) + real(fp) :: ODABS,ODRAY + real(fp) :: RFLECT + real(fp) :: AMF2(2*JXL1_+1,2*JXL1_+1) - !================================================================= - ! FAST_JX begins here! - !================================================================= + ! Pointers + REAL*8, POINTER :: QQAA(:,:,:,:) + REAL*8, POINTER :: SSAA(:,:,:,:) + REAL*8, POINTER :: PHAA(:,:,:,:,:) - ! Initialize - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at Fast_JX (in module GeosCore/fast_jx_mod.F)' - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot) + ! ---------key SCATTERING arrays for clouds+aerosols------------------ + real(fp) :: OD(5,JXL1_),SSA(5,JXL1_),SLEG(8,5,JXL1_) + real(fp) :: OD600(JXL1_) - ! Get day of year (0-365 or 0-366) - DAY_OF_YR = GET_DAY_OF_YEAR() + ! ---------key arrays AFTER solving for J's--------------------------- + real(fp) :: FFF(W_,JXL_),VALJ(X_) + real(fp) :: VALJL(JXL_,X_) !2-D array of J_s returned by JRATET - ! Get current month - MONTH = GET_MONTH() + integer :: L2EDGE, I,J,K,L,M,KMIE,IDXAER,IM,LU + INTEGER :: KMIE2, IR + real(fp) :: XQO3,XQO2,WAVE, TTTX - ! Get day of month - DAY = GET_DAY() + ! -------------------------------------------------------------------- + ! For compatibility with GEOS-Chem (SDE 03/30/13) + REAL(fp) :: QSCALING,LOCALOD,LOCALSSA - ! Was AOD calculated at 999 nm or reference? - AOD999 = ( WLAOD == 0 ) + ! T_INPUT: Input temperature (K) with extra layer for compatibility + REAL(fp) :: T_INPUT(JXL1_+1) - ! Zero diagnostic archival arrays to make sure that we don't have any - ! leftover values from the last timestep near the top of the chemgrid - IF ( State_Diag%Archive_UVFluxDiffuse ) THEN - State_Diag%UVFluxDiffuse = 0.0_f4 - ENDIF - IF ( State_Diag%Archive_UVFluxDirect ) THEN - State_Diag%UVFluxDirect = 0.0_f4 - ENDIF - IF ( State_Diag%Archive_UVFluxNet ) THEN - State_Diag%UVFluxNet = 0.0_f4 - ENDIF + !Maps the new LUT optics wavelengths on to + !the 5 jv_spec_mie.dat wavelengths + ! N.B. currently 200nm and 300nm data is the same in + ! jv_spec_mie.dat, so we copy from new LUT 300nm for both + INTEGER :: LUTIDX(5) + LUTIDX = (/1,1,2,6,10/) - !----------------------------------------------------------------- - ! Special handling for first-time setup - !----------------------------------------------------------------- - IF ( FIRST ) THEN + !================================================================= + ! PHOTO_JX begins here! + !================================================================= - ! Get the species ID for O3 - id_O3 = Ind_('O3') - IF ( id_O3 < 0 ) THEN - ErrMsg = 'O3 is not a defined species!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF + ! Initialize + L2EDGE = L_ + L_ + 2 + FFF(:,:) = 0.e+0_fp -#ifdef USE_MAXIMUM_RANDOM_OVERLAP - ! Special setup only for max random overlap - DO i = 1,State_Grid%NZ+1 - INDGEN(i) = i !(/(i,i=1,State_Grid%NZ+1)/) - ENDDO -#endif + ! Set pointers + QQAA => State_Chm%Phot%QQAA + SSAA => State_Chm%Phot%SSAA + PHAA => State_Chm%Phot%PHAA - ! Reset first-time flag - FIRST = .FALSE. + ! Fill out PPJ and TTJ with CTM data to replace fixed climatology + DO L=1,L1_ + PPJ(L) = P_COL(L) + T_INPUT(L) = T_COL(L) + ENDDO - ENDIF + ! Ensure TOA pressure is zero + PPJ(L1_+1) = 0.e+0_fp + T_INPUT(L1_+1) = T_CLIM(L1_) - !================================================================= - ! For each (NLON,NLAT) location, call subroutine PHOTO_JX (in a - ! parallel loop to compute J-values for the entire column. - ! J-values will be stored in the common-block variable ZPJ, and - ! will be later accessed via function FJXFUNC. - !================================================================= - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( NLAT, NLON, YLAT, CSZA, L ) & - !$OMP PRIVATE( P_CTM , T_CTM, SFCA, O3_TOMS, O3_CTM ) & - !$OMP PRIVATE( LCHEM, OPTAER, N, IOPT ) & - !$OMP PRIVATE( OPTDUST, OPTD, CLDF1D ) & -#ifdef USE_MAXIMUM_RANDOM_OVERLAP - !$OMP PRIVATE( FMAX, KK, NUMB, KBOT ) & - !$OMP PRIVATE( KTOP ODNEW, INDICATOR, INDIC ) & -#endif - !$OMP SCHEDULE( DYNAMIC ) + ! calculate spherical weighting functions (AMF: Air Mass Factor) + RFLECT = REFLB - ! Loop over latitudes and longitudes - DO NLAT = 1, State_Grid%NY - DO NLON = 1, State_Grid%NX + ! -------------------------------------------------------------------- + call SPHERE2 (U0,ZZJ,AMF2,L1_,JXL1_) + ! -------------------------------------------------------------------- - ! Grid box latitude [degrees] - YLAT = State_Grid%YMid( NLON, NLAT ) + !----------------------------------------------------------------------- + ! Modification for GEOS-Chem: Optical depths are calculated at a single + ! wavelength for GEOS-Chem, so we perform scaling in this routine. + ! elsewhere. + ! (SDE 03/31/13) + !----------------------------------------------------------------------- + ! calculate the optical properties (opt-depth, single-scat-alb, + ! phase-fn(1:8)) at the 5 std wavelengths 200-300-400-600-999 nm + ! for cloud+aerosols + do L = 1,L1_ + OD600(L) = 0.e+0_fp + ! ODs stored with fine-grain (DTAUX) and coarse (OD) + do K=1,W_ + DTAUX(L,K) = 0.e+0_fp + enddo + do K=1,5 + OD(K,L) = 0.e+0_fp + SSA(K,L) = 0.e+0_fp + do I=1,8 + SLEG(I,K,L) = 0.e+0_fp + enddo + enddo + enddo - ! Cosine of solar zenith angle [unitless] at (NLON,NLAT) - CSZA = State_Met%SUNCOSmid(NLON,NLAT) + ! Clunky fix to accomodate RRTMG and UCX (DAR 01/2015) + ! Using a combination of old optics LUT format and + ! new optics format (greater spectral resolution and range + ! for RRTMG). Clouds, non-species aerosols and strat aerosols + ! are not incorporated into the new LUT so must still use the + ! old LUT for these. - ! Define the P array here - DO L = 1, State_Grid%NZ+1 - P_CTM(L) = State_Met%PEDGE( NLON, NLAT, L ) - ENDDO + ! Don't bother on extraneous level - leave as zero + do L = 1,L_ + DO KMIE=1,5 + ! Clouds and non-species aerosols + DO M=1,3 + IF (AERX_COL(M,L).gt.0e+0_fp) THEN + IDXAER=State_Chm%Phot%MIEDX(M) - ! Top edge of P_CTM is top of atmosphere (bmy, 2/13/07) - P_CTM(State_Grid%NZ+2) = 0e+0_fp + ! Cloud (600 nm scaling) + QSCALING = QAA(KMIE,IDXAER)/QAA(4,IDXAER) + LOCALOD = QSCALING*AERX_COL(M,L) + LOCALSSA = SAA(KMIE,IDXAER)*LOCALOD + OD(KMIE,L) = OD(KMIE,L) + LOCALOD + SSA(KMIE,L)= SSA(KMIE,L) + LOCALSSA + DO I=1,8 + SLEG(I,KMIE,L) = SLEG(I,KMIE,L) + & + (PAA(I,KMIE,IDXAER)*LOCALSSA) + ENDDO ! I (Phase function) + ENDIF + ENDDO ! M (Aerosol) + !transpose wavelength indices from the mie LUT + !to the new speciated LUT + KMIE2=LUTIDX(KMIE) - ! Temperature profile [K] at (NLON,NLAT) - T_CTM(1:State_Grid%NZ) = State_Met%T( NLON, NLAT, 1:State_Grid%NZ) + ! Stratospheric aerosols + IM=10+(NRHAER*NRH)+1 + DO M=IM,IM+1 + IDXAER=M-IM+6 !6=SSA/LBS/STS, 7-NAT/ice PSCs + IF (AERX_COL(M,L).gt.0d0) THEN + IF (AOD999) THEN + ! Aerosol/dust (999 nm scaling) + ! Fixed to dry radius + QSCALING = QQAA(KMIE2,1,IDXAER,State_Chm%Phot%DRg)/QQAA(10,1,IDXAER,State_Chm%Phot%DRg) + ELSE + ! Aerosol/dust (550 nm scaling) + QSCALING = QQAA(KMIE2,1,IDXAER,State_Chm%Phot%DRg)/QQAA(5,1,IDXAER,State_Chm%Phot%DRg) + ENDIF + LOCALOD = QSCALING*AERX_COL(M,L) + LOCALSSA = SSAA(KMIE2,1,IDXAER,State_Chm%Phot%DRg)*LOCALOD + OD(KMIE,L) = OD(KMIE,L) + LOCALOD + SSA(KMIE,L)= SSA(KMIE,L) + LOCALSSA + DO I=1,8 + SLEG(I,KMIE,L) = SLEG(I,KMIE,L) + & + (PAA(I,KMIE,IDXAER)*LOCALSSA) + ENDDO ! I (Phase function) + ENDIF - ! Top of atmosphere - T_CTM(State_Grid%NZ+1) = T_CTM(State_Grid%NZ) + ENDDO ! M (Aerosol) - ! Surface albedo [unitless] at (NLON,NLAT) - SFCA = State_Met%UVALBEDO(NLON,NLAT) + ! Mineral dust (from new optics LUT) + DO M=4,10 + IF (AERX_COL(M,L).gt.0d0) THEN + IDXAER=State_Chm%Phot%NSPAA !dust is last in LUT + IR=M-3 + IF (AOD999) THEN + QSCALING = QQAA(KMIE2,IR,IDXAER,State_Chm%Phot%DRg)/ & + QQAA(10,IR,IDXAER,State_Chm%Phot%DRg) !1000nm in new .dat + ELSE + ! Aerosol/dust (550 nm scaling) + QSCALING = QQAA(KMIE2,IR,IDXAER,State_Chm%Phot%DRg)/ & + QQAA(5,IR,IDXAER,State_Chm%Phot%DRg) !550nm in new .dat + ENDIF + LOCALOD = QSCALING*AERX_COL(M,L) + LOCALSSA = SSAA(KMIE2,IR,IDXAER,State_Chm%Phot%DRg)*LOCALOD + OD(KMIE,L) = OD(KMIE,L) + LOCALOD + SSA(KMIE,L)= SSA(KMIE,L) + LOCALSSA + DO I=1,8 + SLEG(I,KMIE,L) = SLEG(I,KMIE,L) + & + (PHAA(KMIE2,IR,IDXAER,I,State_Chm%Phot%DRg)*LOCALSSA) + ENDDO ! I (Phase function) + ENDIF + ENDDO ! M (Aerosol) - ! Overhead ozone column [DU] at (NLON, NLAT) - ! These values are either from the met fields or TOMS/SBUV, - ! depending on the settings in geoschem_config.yml - O3_TOMS = GET_OVERHEAD_O3( State_Chm, NLON, NLAT ) + ! Other aerosol (from new optics LUT) + DO M=1,5 - ! CTM ozone densities (molec/cm3) at (NLON, NLAT) - O3_CTM = 0e+0_fp - LCHEM = State_Met%ChemGridLev(NLON,NLAT) - DO L = 1, LCHEM - O3_CTM(L) = State_Chm%Species(id_O3)%Conc(NLON,NLAT,L) - ENDDO + DO IR=1,5 + IDXAER=10+(M-1)*NRH+IR + IF (AERX_COL(IDXAER,L).gt.0d0) THEN + IF (AOD999) THEN + QSCALING = QQAA(KMIE2,IR,M,State_Chm%Phot%DRg)/ & + QQAA(10,IR,M,State_Chm%Phot%DRg) !1000nm in new .dat + ELSE + ! Aerosol/dust (550 nm scaling) + QSCALING = QQAA(KMIE2,IR,M,State_Chm%Phot%DRg)/ & + QQAA(5,IR,M,State_Chm%Phot%DRg) !550nm in new .dat + ENDIF + LOCALOD = QSCALING*AERX_COL(IDXAER,L) + LOCALSSA = SSAA(KMIE2,IR,M,State_Chm%Phot%DRg)*LOCALOD + OD(KMIE,L) = OD(KMIE,L) + LOCALOD + SSA(KMIE,L)= SSA(KMIE,L) + LOCALSSA + DO I=1,8 + SLEG(I,KMIE,L) = SLEG(I,KMIE,L) + & + (PHAA(KMIE2,IR,M,I,State_Chm%Phot%DRg)*LOCALSSA) + ENDDO ! I (Phase function) + ENDIF + ENDDO ! IR (RH bins) + ENDDO ! M (Aerosol) + ENDDO ! KMIE (Mie scattering wavelength bin) - ! Aerosol OD profile [unitless] at (NLON,NLAT) - ! and at 1000nm, IWV1000 (DAR) - !OPTAER wants NAER*NRH values but ODAER is now NAER - !use IRHARR to map to correct OPTAER bin (DAR 08/13) - OPTAER = 0.0e+0_fp - DO N = 1, NAER - DO L = 1, State_Grid%NZ - IOPT = ( (N-1) * NRH ) + IRHARR(NLON,NLAT,L) - OPTAER(L,IOPT) = ODAER(NLON,NLAT,L,IWV1000,N) - ENDDO - ENDDO - DO N = 1, NDUST - DO L = 1, State_Grid%NZ - OPTDUST(L,N) = ODMDUST(NLON,NLAT,L,IWV1000,N) - ENDDO + ! Normalize + DO KMIE=1,5 + IF (OD(KMIE,L).gt.0.e+0_fp) THEN + SSA(KMIE,L) = SSA(KMIE,L)/OD(KMIE,L) + DO I=1,8 + SLEG(I,KMIE,L) = SLEG(I,KMIE,L)/OD(KMIE,L) + ENDDO + ENDIF ENDDO + ! Retrieve 600 nm OD to determine added layers + OD600(L) = OD(4,L) + ENDDO ! L (Layer) - ! Mineral dust OD profile [unitless] at (NLON,NLAT) - ! and at 1000nm, IWV1000 (DAR) - !OPTDUST = ODMDUST(NLON,NLAT,:,IWV1000,:) + ! when combining with Rayleigh and O2-O3 abs, remember the SSA and + ! phase fn SLEG are weighted by OD and OD*SSA, respectively. + ! Given the aerosol+cloud OD/layer in visible (600 nm) calculate how to add + ! additonal levels at top of clouds (now uses log spacing) + ! -------------------------------------------------------------------- + call EXTRAL(Input_Opt,State_Diag,OD600,L1_,L2EDGE,N_,JXTRA,ILON,ILAT) + ! -------------------------------------------------------------------- - ! Cloud OD profile [unitless] at (NLON,NLAT) - OPTD = State_Met%OPTD(NLON,NLAT,1:State_Grid%NZ) + ! set surface reflectance + RFL(:) = max(0.e+0_fp,min(1.e+0_fp,RFLECT)) - !----------------------------------------------------------- - !### If you want to exclude aerosol OD, mineral dust OD, - !### or cloud OD, then uncomment the following lines: - !OPTAER = 0d0 - !OPTDUST = 0d0 - !OPTD(:) = 0d0 - !----------------------------------------------------------- + ! -------------------------------------------------------------------- + ! Loop over all wavelength bins to calc mean actinic flux AVGF(L) + ! -------------------------------------------------------------------- + do K = 1,W_ -#if defined( USE_LINEAR_OVERLAP ) - !=========================================================== - ! %%%% CLOUD OVERLAP: LINEAR ASSUMPTION %%%% - ! - ! Directly use OPTDEPTH = TAUCLD * CLDTOT - !=========================================================== - - ! Column cloud fraction (not less than zero) - CLDF1D = State_Met%CLDF(NLON,NLAT,1:State_Grid%NZ) - WHERE ( CLDF1D < 0e+0_fp ) CLDF1D = 0e+0_fp - - ! NOTE: For GEOS-FP and MERRA-2 met fields, the optical - ! depth is the in-cloud optical depth. At this point it has - ! NOT been multiplied by cloud fraction yet. Therefore, we can - ! just apply the ! we can just apply the linear overlap formula - ! as written above (i.e. multiply by cloud fraction). - OPTD = OPTD * CLDF1D - - ! Call FAST-JX routines to compute J-values - CALL PHOTO_JX( CSZA, SFCA, P_CTM, T_CTM, & - O3_CTM, O3_TOMS, AOD999, OPTAER, & - OPTDUST, OPTD, NLON, NLAT, & - YLAT, DAY_OF_YR, MONTH, DAY, & - Input_Opt, State_Diag, State_Grid, State_Met ) - -#elif defined( USE_APPROX_RANDOM_OVERLAP ) - !=========================================================== - ! %%%% CLOUD OVERLAP: APPROX RANDOM OVERLAP ASSUMPTION %%%% - ! - ! Use OPTDEPTH = TAUCLD * CLDTOT**1.5 - !=========================================================== - - ! Column cloud fraction (not less than zero) - CLDF1D = State_Met%CLDF(NLON,NLAT,1:State_Grid%NZ) - WHERE ( CLDF1D < 0e+0_fp ) CLDF1D = 0e+0_fp - - ! NOTE: For GEOS-FP and MERRA-2 met fields, the optical - ! depth is the in-cloud optical depth. At this point it has - ! NOT been multiplied by cloud fraction yet. Therefore, we can - ! just apply the approximate random overlap formula as written - ! above (i.e. multiply by cloud fraction^1.5). - OPTD = OPTD * ( CLDF1D )**1.5e+0_fp - - ! Call FAST-JX routines to compute J-values - CALL PHOTO_JX( CSZA, SFCA, P_CTM, T_CTM, & - O3_CTM, O3_TOMS, AOD999, OPTAER, & - OPTDUST, OPTD, NLON, NLAT, & - YLAT, DAY_OF_YR, MONTH, DAY, & - Input_Opt, State_Diag, State_Grid, State_Met ) - -#elif defined( USE_MAXIMUM_RANDOM_OVERLAP ) - !=========================================================== - ! %%%% CLOUD OVERLAP: MAXIMUM RANDOM OVERLAP %%%% - ! - ! The Maximum-Random Overlap (MRAN) scheme assumes that - ! clouds in adjacent layers are maximally overlapped to - ! form a cloud block and that blocks of clouds separated by - ! clear layers are randomly overlapped. A vertical profile - ! of fractional cloudiness is converted into a series of - ! column configurations with corresponding fractions - ! (see Liu et al., JGR 2006; hyl,3/3/04). - ! - ! For more details about cloud overlap assumptions and - ! their effect on photolysis frequencies and key oxidants - ! in the troposphere, refer to the following articles: - ! - ! (1) Liu, H., et al., Radiative effect of clouds on - ! tropospheric chemistry in a global three-dimensional - ! chemical transport model, J. Geophys. Res., vol.111, - ! D20303, doi:10.1029/2005JD006403, 2006. - ! (2) Tie, X., et al., Effect of clouds on photolysis and - ! oxidants in the troposphere, J. Geophys. Res., - ! 108(D20), 4642, doi:10.1029/2003JD003659, 2003. - ! (3) Feng, Y., et al., Effects of cloud overlap in - ! photochemical models, J. Geophys. Res., 109, - ! D04310, doi:10.1029/2003JD004040, 2004. - ! (4) Stubenrauch, C.J., et al., Implementation of subgrid - ! cloud vertical structure inside a GCM and its effect - ! on the radiation budget, J. Clim., 10, 273-287, 1997. - !----------------------------------------------------------- - ! MMRAN needs IN-CLOUD optical depth (ODNEW) as input - ! Use cloud fraction, instead of OPTD, to form cloud blocks - ! (hyl,06/19/04) - !=========================================================== - - ! Sort this out later - CALL ERROR_STOP('MMRAN_16 not yet FJX compatible.', 'fast_jx_mod.F90') - - !! Initialize - !FMAX(:) = 0d0 ! max cloud fraction in each cloud block - !ODNEW(:) = 0d0 ! in-cloud optical depth - !CLDF1D = State_Met%CLDF(1:State_Grid%NZ,NLON,NLAT) - !INDICATOR = 0 - ! - !! set small negative CLDF or OPTD to zero. - !! Set indicator vector. - !WHERE ( CLDF1D <= 0d0 ) - ! CLDF1D = 0d0 - ! OPTD = 0D0 - !ELSEWHERE - ! INDICATOR(2:State_Grid%NZ+1) = 1 - !ENDWHERE - ! - !! Prevent negative opt depth - !WHERE ( OPTD < 0D0 ) OPTD = 0D0 - ! - !!-------------------------------------------------------- - !! Generate cloud blocks & get their Bottom and Top levels - !!-------------------------------------------------------- - !INDICATOR = CSHIFT(INDICATOR, 1) - INDICATOR - !INDIC = INDICATOR(1:State_Grid%NZ+1) - ! - !! Number of cloud block - !NUMB = COUNT( INDIC == 1 ) - ! - !! Bottom layer of each block - !KBOT(1:NUMB) = PACK(INDGEN, (INDIC == 1 ) ) - ! - !! Top layer of each block - !KTOP(1:NUMB) = PACK(INDGEN, (INDIC == -1) ) - 1 - ! - !!-------------------------------------------------------- - !! For each cloud block, get Max Cloud Fractions, and - !! in-cloud optical depth vertical distribution. - !!-------------------------------------------------------- - !DO KK = 1, NUMB - ! - ! ! Max cloud fraction - ! FMAX(KK) = MAXVAL( CLDF1D(KBOT(KK):KTOP(KK)) ) - ! - ! ! NOTE: for the GEOS-FP and MERRA-2 met fields (i.e. with - ! ! optical depth & cloud fractions regridded with RegridTau) - ! ! OPTD is the in-cloud optical depth. At this point it has - ! ! NOT been multiplied by cloud fraction yet. Therefore, - ! ! we can just set ODNEW = OPTD. (bmy, hyl, 10/24/08) - ! - ! ! ODNEW is adjusted in-cloud OD vertical distrib. - ! ODNEW(KBOT(KK):KTOP(KK)) = OPTD(KBOT(KK):KTOP(KK)) - ! - !ENDDO - ! - !!-------------------------------------------------------- - !! Apply Max RANdom if 1-6 clouds blocks, else use linear - !!-------------------------------------------------------- - !SELECT CASE( NUMB ) - ! - !CASE( 0,7: ) - ! CALL PHOTOJ( NLON, NLAT, YLAT, DAY_OF_YR, - ! MONTH, DAY, CSZA, TEMP, - ! SFCA, OPTD, OPTDUST, OPTAER, - ! O3COL ) - ! - !CASE( 1:6 ) - ! CALL MMRAN_16( NUMB, NLON, NLAT, YLAT, - ! DAY, MONTH, DAY_OF_YR, CSZA, - ! TEMP, SFCA, OPTDUST, OPTAER, - ! State_Grid%NZ, FMAX, ODNEW, KBOT, - ! KTOP, O3COL ) - ! - !END SELECT -#endif + WAVE = WL(K) + ! Pick nearest Mie wavelength to get scattering properites------------ + KMIE=1 ! use 200 nm prop for <255 nm + if( WAVE .gt. 255.e+0_fp ) KMIE=2 ! use 300 nm prop for 255-355 nm + if( WAVE .gt. 355.e+0_fp ) KMIE=3 ! use 400 nm prop for 355-500 nm + if( WAVE .gt. 500.e+0_fp ) KMIE=4 + if( WAVE .gt. 800.e+0_fp ) KMIE=5 - ENDDO - ENDDO - !$OMP END PARALLEL DO + ! Combine: Rayleigh scatters & O2 & O3 absorbers to get optical + ! properties values at L1_=L_+1 are a pseudo/climatol layer above + ! the top CTM layer (L_) + do L = 1,L1_ + TTTX = T_CLIM(L) ! Following GEOS-Chem v9-1-3 + call X_interp (TTTX,XQO2, TQQ(1,1),QO2(K,1), TQQ(2,1),QO2(K,2), & + TQQ(3,1),QO2(K,3), LQQ(1)) + call X_interp (TTTX,XQO3, TQQ(1,2),QO3(K,1), TQQ(2,2),QO3(K,2), & + TQQ(3,2),QO3(K,3), LQQ(2)) + ODABS = XQO3*OOJ(L) + XQO2*DDJ(L)*0.20948e+0_fp + ODRAY = DDJ(L)*QRAYL(K) - ! Reset first-time flag - FIRST=.FALSE. + DTAUX(L,K) = OD(KMIE,L) + ODABS + ODRAY - END SUBROUTINE FAST_JX -!EOC -!------------------------------------------------------------------------------ + ! Aerosols + clouds + O2 + O3 + do I=1,8 + POMEGAX(I,L,K) = SLEG(I,KMIE,L)*OD(KMIE,L) + enddo + ! Add Rayleigh scattering effects + ! Only non-zero for 1st and 3rd phase functions + POMEGAX(1,L,K) = POMEGAX(1,L,K) + 1.0e+0_fp*ODRAY + POMEGAX(3,L,K) = POMEGAX(3,L,K) + 0.5e+0_fp*ODRAY + ! Normalize + do I=1,8 + POMEGAX(I,L,K) = POMEGAX(I,L,K)/DTAUX(L,K) + enddo + enddo + enddo + ! -------------------------------------------------------------------- + + LU = L_ + call OPMIE(DTAUX,POMEGAX,U0,RFL,AMF2,JXTRA, & + AVGF,FJTOP,FJBOT,FSBOT,FJFLX,FLXD,FLXD0,LU) + + !! -------------------------------------------------------------------- + + do K = 1,W_ + do L = 1,L_ + FFF(K,L) = FFF(K,L) + SOLF*FL(K)*AVGF(L,K) + enddo + enddo + + ! Calculate photolysis rates + call JRATET(PPJ,T_INPUT,FFF, VALJXX,L_,maxChemLev,NJX) + + ! Set diagnostics for 600 nm optical depth + IF ( State_Diag%Archive_OD600 ) THEN + State_Diag%OD600(ILON,ILAT,1:L_) = OD600(1:L_) + ENDIF + IF ( State_Diag%Archive_TCOD600 ) THEN + State_Diag%TCOD600(ILON,ILAT) = SUM(OD600(1:L_)) + ENDIF + + ! Free pointers + QQAA => NULL() + SSAA => NULL() + PHAA => NULL() + + END SUBROUTINE PHOTO_JX +!EOC +!------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: blkslv +! !IROUTINE: solar_jx ! -! !DESCRIPTION: Subroutine BLKSLV solves the block tri-diagonal system +! !DESCRIPTION: Subroutine SOLAR\_JX handles solar zenith angles. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE BLKSLV(FJ,POMEGA,FZ,ZTAU,ZFLUX,RFL,PM,PM0,FJTOP,FJBOT,ND) + SUBROUTINE SOLAR_JX(NDAY,COSSZA,SZA,SOLFX) ! ! !USES: ! + USE PhysConstants, ONLY : PI ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: ND - REAL(fp), INTENT(IN) :: POMEGA(M2_,N_,W_) - REAL(fp), INTENT(IN) :: FZ(N_,W_) - REAL(fp), INTENT(IN) :: ZTAU(N_,W_) - REAL(fp), INTENT(IN) :: PM(M_,M2_) - REAL(fp), INTENT(IN) :: PM0(M2_) - REAL(fp), INTENT(IN) :: RFL(W_) - REAL(fp), INTENT(IN) :: ZFLUX(W_) + REAL(fp), INTENT(IN) :: COSSZA + INTEGER, INTENT(IN) :: NDAY +! +! !OUTPUT VARIABLES: +! + REAL(fp), INTENT(OUT) :: SZA,SOLFX +! +! !REMARKS: +! --------------------------------------------------------------------- +! NDAY = integer day of the year (used for solar lat and declin) +! SZA = solar zenith angle in degrees +! COSSZA = U0 = cos(SZA) +! SOLFX = Solar function +! --------------------------------------------------------------------- +! +! !REVISION HISTORY: +! 28 Mar 2013 - S. D. Eastham - Adapted from Fast-JX v7.0 +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + REAL(fp) PI180 + + !================================================================= + ! SOLAR_JX begins here! + !================================================================= + + PI180 = PI/180.e+0_fp + SZA = acos(MIN(MAX(COSSZA,-1._fp),1._fp))/PI180 + + ! Offset used for GEOS-Chem slightly different + !SOLFX = 1.e+0_fp-(0.034e+0_fp*cos(dble(NDAY-186)*2.e+0_fp*PI/365.e+0_fp)) + SOLFX = 1.e+0_fp-(0.034e+0_fp*cos(dble(NDAY-172) & + *2.e+0_fp*PI/365.e+0_fp)) + + END SUBROUTINE SOLAR_JX +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: rd_mie +! +! !DESCRIPTION: Subroutine RD\_MIE retrieves aerosol scattering data for FJX. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE RD_MIE( amIRoot, dryrun, LBRC, NUN, NAMFIL, RC ) +! +! !USES: +! + USE CMN_FJX_Mod, ONLY : TITLAA, NAA, PAA, QAA, RAA, SAA, WAA + USE ErrCode_Mod +! +! !INPUT PARAMETERS: +! + LOGICAL, INTENT(IN) :: amIRoot ! On root thread? + LOGICAL, INTENT(IN) :: dryrun ! Dry run to print inputs? + LOGICAL, INTENT(IN) :: LBRC ! Brown carbon? + INTEGER, INTENT(IN) :: NUN ! Logical unit # + CHARACTER(*), INTENT(IN) :: NAMFIL ! File name ! ! !OUTPUT PARAMETERS: ! - REAL(fp), INTENT(OUT) :: FJ(N_,W_) - REAL(fp), INTENT(OUT) :: FJTOP(W_) - REAL(fp), INTENT(OUT) :: FJBOT(W_) + INTEGER, INTENT(OUT) :: RC ! Success or failure? ! ! !REMARKS: -! The block tri-diagonal system: -! A(I)*X(I-1) + B(I)*X(I) + C(I)*X(I+1) = H(I) +! -------------------------------------------------------------------- +! NAMFIL Name of scattering data file (e.g., FJX_scat.dat) +! NUN Channel number for reading data file +! NAA Number of categories for scattering phase functions +! QAA Aerosol scattering phase functions +! WAA 5 Wavelengths for the supplied phase functions +! PAA Phase function: first 8 terms of expansion +! RAA Effective radius associated with aerosol type +! SAA Single scattering albedo +! -------------------------------------------------------------------- ! ! !REVISION HISTORY: -! 27 Mar 2013 - S. D. Eastham - Copied from GEOS-Chem v9-01-03 +! 28 Mar 2013 - S. D. Eastham - Adapted from GEOS-Chem v9-1-3 ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ @@ -574,290 +549,168 @@ SUBROUTINE BLKSLV(FJ,POMEGA,FZ,ZTAU,ZFLUX,RFL,PM,PM0,FJTOP,FJBOT,ND) ! ! !LOCAL VARIABLES: ! - REAL(fp), DIMENSION(M_,N_,W_) :: A,C,H, RR - REAL(fp), DIMENSION(M_,M_,N_,W_) :: B,AA,CC, DD - REAL(fp), DIMENSION(M_,M_) :: E - REAL(fp) SUMB,SUMBX,SUMT - INTEGER I, J, K, L + ! Scalars + LOGICAL :: FileExists + INTEGER :: I, J, K, NK + + ! Strings + CHARACTER(LEN=78 ) :: TITLE0 + CHARACTER(LEN=255) :: FileMsg, ErrMsg, ThisLoc !================================================================= - ! BLKSLV begins here! + ! In dry-run mode, print file path to dryrun log and exit. + ! Otherwise, print file path to stdout and continue. !================================================================= - do K = 1,W_ - call GEN_ID (POMEGA(1,1,K),FZ(1,K),ZTAU(1,K),ZFLUX(K),RFL(K), & - PM,PM0, B(1,1,1,K),CC(1,1,1,K),AA(1,1,1,K), & - A(1,1,K),H(1,1,K),C(1,1,K), ND) - enddo + ! Assume success + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at RD_MIE (in module GeosCore/fast_jx_mod.F90)' - do K = 1,W_ - ! UPPER BOUNDARY L=1 - L = 1 - do J = 1,M_ - do I = 1,M_ - E(I,J) = B(I,J,1,K) - enddo - enddo + ! Test if the file exists + INQUIRE( FILE=TRIM( NamFil ), EXIST=FileExists ) - ! setup L & U matrices - E(2,1) = E(2,1)/E(1,1) - E(2,2) = E(2,2)-E(2,1)*E(1,2) - E(2,3) = E(2,3)-E(2,1)*E(1,3) - E(2,4) = E(2,4)-E(2,1)*E(1,4) - E(3,1) = E(3,1)/E(1,1) - E(3,2) = (E(3,2)-E(3,1)*E(1,2))/E(2,2) - E(3,3) = E(3,3)-E(3,1)*E(1,3)-E(3,2)*E(2,3) - E(3,4) = E(3,4)-E(3,1)*E(1,4)-E(3,2)*E(2,4) - E(4,1) = E(4,1)/E(1,1) - E(4,2) = (E(4,2)-E(4,1)*E(1,2))/E(2,2) - E(4,3) = (E(4,3)-E(4,1)*E(1,3)-E(4,2)*E(2,3))/E(3,3) - E(4,4) = E(4,4)-E(4,1)*E(1,4)-E(4,2)*E(2,4)-E(4,3)*E(3,4) - ! invert L - E(4,3) = -E(4,3) - E(4,2) = -E(4,2)-E(4,3)*E(3,2) - E(4,1) = -E(4,1)-E(4,2)*E(2,1)-E(4,3)*E(3,1) - E(3,2) = -E(3,2) - E(3,1) = -E(3,1)-E(3,2)*E(2,1) - E(2,1) = -E(2,1) - ! invert U - E(4,4) = 1.e+0_fp/E(4,4) - E(3,4) = -E(3,4)*E(4,4)/E(3,3) - E(3,3) = 1.e+0_fp/E(3,3) - E(2,4) = -(E(2,3)*E(3,4)+E(2,4)*E(4,4))/E(2,2) - E(2,3) = -E(2,3)*E(3,3)/E(2,2) - E(2,2) = 1.e+0_fp/E(2,2) - E(1,4) = -(E(1,2)*E(2,4)+E(1,3)*E(3,4)+E(1,4)*E(4,4))/E(1,1) - E(1,3) = -(E(1,2)*E(2,3)+E(1,3)*E(3,3))/E(1,1) - E(1,2) = -E(1,2)*E(2,2)/E(1,1) - E(1,1) = 1.e+0_fp/E(1,1) - ! multiply U-invers * L-inverse - E(1,1) = E(1,1)+E(1,2)*E(2,1)+E(1,3)*E(3,1)+E(1,4)*E(4,1) - E(1,2) = E(1,2)+E(1,3)*E(3,2)+E(1,4)*E(4,2) - E(1,3) = E(1,3)+E(1,4)*E(4,3) - E(2,1) = E(2,2)*E(2,1)+E(2,3)*E(3,1)+E(2,4)*E(4,1) - E(2,2) = E(2,2)+E(2,3)*E(3,2)+E(2,4)*E(4,2) - E(2,3) = E(2,3)+E(2,4)*E(4,3) - E(3,1) = E(3,3)*E(3,1)+E(3,4)*E(4,1) - E(3,2) = E(3,3)*E(3,2)+E(3,4)*E(4,2) - E(3,3) = E(3,3)+E(3,4)*E(4,3) - E(4,1) = E(4,4)*E(4,1) - E(4,2) = E(4,4)*E(4,2) - E(4,3) = E(4,4)*E(4,3) + ! Test if the file exists and define an output string + IF ( FileExists ) THEN + FileMsg = 'FAST-JX (RD_MIE): Opening' + ELSE + FileMsg = 'FAST-JX (RD_MIE): REQUIRED FILE NOT FOUND' + ENDIF - do J = 1,M_ - do I = 1,M_ - DD(I,J,1,K) = -E(I,1)*CC(1,J,1,K)-E(I,2)*CC(2,J,1,K) & - -E(I,3)*CC(3,J,1,K)-E(I,4)*CC(4,J,1,K) - enddo - RR(J,1,K) = E(J,1)*H(1,1,K)+E(J,2)*H(2,1,K) & - + E(J,3)*H(3,1,K)+E(J,4)*H(4,1,K) - enddo + ! Write to stdout for both regular and dry-run simulations + IF ( amIRoot ) THEN + WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( NamFil ) +300 FORMAT( a, ' ', a ) + ENDIF - ! CONTINUE THROUGH ALL DEPTH POINTS ID=2 TO ID=ND-1 - do L = 2,ND-1 + ! For dry-run simulations, return to calling program + ! For regular simulations, throw an error if we can't find the file. + IF ( dryrun ) THEN + RETURN + ELSE + IF ( .not. FileExists ) THEN + WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( NamFil ) + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + ENDIF - do J = 1,M_ - do I = 1,M_ - B(I,J,L,K) = B(I,J,L,K) + A(I,L,K)*DD(I,J,L-1,K) - enddo - H(J,L,K) = H(J,L,K) - A(J,L,K)*RR(J,L-1,K) - enddo + !================================================================= + ! RD_MIE begins here -- read data from file + !================================================================= - do J = 1,M_ - do I = 1,M_ - E(I,J) = B(I,J,L,K) - enddo - enddo + ! Open file + open (NUN,FILE=NAMFIL,status='old',form='formatted') - ! setup L & U matrices - E(2,1) = E(2,1)/E(1,1) - E(2,2) = E(2,2)-E(2,1)*E(1,2) - E(2,3) = E(2,3)-E(2,1)*E(1,3) - E(2,4) = E(2,4)-E(2,1)*E(1,4) - E(3,1) = E(3,1)/E(1,1) - E(3,2) = (E(3,2)-E(3,1)*E(1,2))/E(2,2) - E(3,3) = E(3,3)-E(3,1)*E(1,3)-E(3,2)*E(2,3) - E(3,4) = E(3,4)-E(3,1)*E(1,4)-E(3,2)*E(2,4) - E(4,1) = E(4,1)/E(1,1) - E(4,2) = (E(4,2)-E(4,1)*E(1,2))/E(2,2) - E(4,3) = (E(4,3)-E(4,1)*E(1,3)-E(4,2)*E(2,3))/E(3,3) - E(4,4) = E(4,4)-E(4,1)*E(1,4)-E(4,2)*E(2,4)-E(4,3)*E(3,4) - ! invert L - E(4,3) = -E(4,3) - E(4,2) = -E(4,2)-E(4,3)*E(3,2) - E(4,1) = -E(4,1)-E(4,2)*E(2,1)-E(4,3)*E(3,1) - E(3,2) = -E(3,2) - E(3,1) = -E(3,1)-E(3,2)*E(2,1) - E(2,1) = -E(2,1) - ! invert U - E(4,4) = 1.e+0_fp/E(4,4) - E(3,4) = -E(3,4)*E(4,4)/E(3,3) - E(3,3) = 1.e+0_fp/E(3,3) - E(2,4) = -(E(2,3)*E(3,4)+E(2,4)*E(4,4))/E(2,2) - E(2,3) = -E(2,3)*E(3,3)/E(2,2) - E(2,2) = 1.e+0_fp/E(2,2) - E(1,4) = -(E(1,2)*E(2,4)+E(1,3)*E(3,4)+E(1,4)*E(4,4))/E(1,1) - E(1,3) = -(E(1,2)*E(2,3)+E(1,3)*E(3,3))/E(1,1) - E(1,2) = -E(1,2)*E(2,2)/E(1,1) - E(1,1) = 1.e+0_fp/E(1,1) - ! multiply U-invers * L-inverse - E(1,1) = E(1,1)+E(1,2)*E(2,1)+E(1,3)*E(3,1)+E(1,4)*E(4,1) - E(1,2) = E(1,2)+E(1,3)*E(3,2)+E(1,4)*E(4,2) - E(1,3) = E(1,3)+E(1,4)*E(4,3) - E(2,1) = E(2,2)*E(2,1)+E(2,3)*E(3,1)+E(2,4)*E(4,1) - E(2,2) = E(2,2)+E(2,3)*E(3,2)+E(2,4)*E(4,2) - E(2,3) = E(2,3)+E(2,4)*E(4,3) - E(3,1) = E(3,3)*E(3,1)+E(3,4)*E(4,1) - E(3,2) = E(3,3)*E(3,2)+E(3,4)*E(4,2) - E(3,3) = E(3,3)+E(3,4)*E(4,3) - E(4,1) = E(4,4)*E(4,1) - E(4,2) = E(4,4)*E(4,2) - E(4,3) = E(4,4)*E(4,3) + ! Read header lines + READ( NUN,'(A)' ) TITLE0 + IF ( amIRoot ) WRITE( 6, '(1X,A)' ) TITLE0 + READ( NUN,'(A)' ) TITLE0 - do J = 1,M_ - do I = 1,M_ - DD(I,J,L,K) = - E(I,J)*C(J,L,K) - enddo - RR(J,L,K) = E(J,1)*H(1,L,K)+E(J,2)*H(2,L,K) & - + E(J,3)*H(3,L,K)+E(J,4)*H(4,L,K) - enddo + !---Read aerosol phase functions: + read(NUN,'(A10,I5,/)') TITLE0,NAA + NK=5 + do j=1,NAA + read(NUN,110) TITLAA(j) + do k=1,NK + read(NUN,*) WAA(k,j),QAA(k,j),RAA(k,j),SAA(k,j), & + (PAA(i,k,j),i=1,8) enddo + enddo - ! FINAL DEPTH POINT: L=ND - L = ND - do J = 1,M_ - do I = 1,M_ - B(I,J,L,K) = B(I,J,L,K) & - + AA(I,1,L,K)*DD(1,J,L-1,K) + AA(I,2,L,K)*DD(2,J,L-1,K) & - + AA(I,3,L,K)*DD(3,J,L-1,K) + AA(I,4,L,K)*DD(4,J,L-1,K) - enddo - H(J,L,K) = H(J,L,K) & - - AA(J,1,L,K)*RR(1,L-1,K) - AA(J,2,L,K)*RR(2,L-1,K) & - - AA(J,3,L,K)*RR(3,L-1,K) - AA(J,4,L,K)*RR(4,L-1,K) - enddo + ! Brown carbon option + IF (LBRC) THEN - do J = 1,M_ - do I = 1,M_ - E(I,J) = B(I,J,L,K) + ! Overwrite OC entries (36-42 in jv_spec_mie.dat) + ! with BR entries at end of file (labeled 57-63) + do j= 36, 42 + read(NUN,110) TITLAA(j) + do k=1,NK + read(NUN,*) WAA(k,j),QAA(k,j),RAA(k,j),SAA(k,j), & + (PAA(i,k,j),i=1,8) enddo enddo - ! setup L & U matrices - E(2,1) = E(2,1)/E(1,1) - E(2,2) = E(2,2)-E(2,1)*E(1,2) - E(2,3) = E(2,3)-E(2,1)*E(1,3) - E(2,4) = E(2,4)-E(2,1)*E(1,4) - E(3,1) = E(3,1)/E(1,1) - E(3,2) = (E(3,2)-E(3,1)*E(1,2))/E(2,2) - E(3,3) = E(3,3)-E(3,1)*E(1,3)-E(3,2)*E(2,3) - E(3,4) = E(3,4)-E(3,1)*E(1,4)-E(3,2)*E(2,4) - E(4,1) = E(4,1)/E(1,1) - E(4,2) = (E(4,2)-E(4,1)*E(1,2))/E(2,2) - E(4,3) = (E(4,3)-E(4,1)*E(1,3)-E(4,2)*E(2,3))/E(3,3) - E(4,4) = E(4,4)-E(4,1)*E(1,4)-E(4,2)*E(2,4)-E(4,3)*E(3,4) - ! invert L - E(4,3) = -E(4,3) - E(4,2) = -E(4,2)-E(4,3)*E(3,2) - E(4,1) = -E(4,1)-E(4,2)*E(2,1)-E(4,3)*E(3,1) - E(3,2) = -E(3,2) - E(3,1) = -E(3,1)-E(3,2)*E(2,1) - E(2,1) = -E(2,1) - ! invert U - E(4,4) = 1.e+0_fp/E(4,4) - E(3,4) = -E(3,4)*E(4,4)/E(3,3) - E(3,3) = 1.e+0_fp/E(3,3) - E(2,4) = -(E(2,3)*E(3,4)+E(2,4)*E(4,4))/E(2,2) - E(2,3) = -E(2,3)*E(3,3)/E(2,2) - E(2,2) = 1.e+0_fp/E(2,2) - E(1,4) = -(E(1,2)*E(2,4)+E(1,3)*E(3,4)+E(1,4)*E(4,4))/E(1,1) - E(1,3) = -(E(1,2)*E(2,3)+E(1,3)*E(3,3))/E(1,1) - E(1,2) = -E(1,2)*E(2,2)/E(1,1) - E(1,1) = 1.e+0_fp/E(1,1) - ! multiply U-invers * L-inverse - E(1,1) = E(1,1)+E(1,2)*E(2,1)+E(1,3)*E(3,1)+E(1,4)*E(4,1) - E(1,2) = E(1,2)+E(1,3)*E(3,2)+E(1,4)*E(4,2) - E(1,3) = E(1,3)+E(1,4)*E(4,3) - E(2,1) = E(2,2)*E(2,1)+E(2,3)*E(3,1)+E(2,4)*E(4,1) - E(2,2) = E(2,2)+E(2,3)*E(3,2)+E(2,4)*E(4,2) - E(2,3) = E(2,3)+E(2,4)*E(4,3) - E(3,1) = E(3,3)*E(3,1)+E(3,4)*E(4,1) - E(3,2) = E(3,3)*E(3,2)+E(3,4)*E(4,2) - E(3,3) = E(3,3)+E(3,4)*E(4,3) - E(4,1) = E(4,4)*E(4,1) - E(4,2) = E(4,4)*E(4,2) - E(4,3) = E(4,4)*E(4,3) + ENDIF - do J = 1,M_ - RR(J,L,K) = E(J,1)*H(1,L,K)+E(J,2)*H(2,L,K) & - + E(J,3)*H(3,L,K)+E(J,4)*H(4,L,K) - enddo + close(NUN) - ! BACK SOLUTION - do L = ND-1,1,-1 - do J = 1,M_ - RR(J,L,K) = RR(J,L,K) & - + DD(J,1,L,K)*RR(1,L+1,K) + DD(J,2,L,K)*RR(2,L+1,K) & - + DD(J,3,L,K)*RR(3,L+1,K) + DD(J,4,L,K)*RR(4,L+1,K) - enddo - enddo - ! mean J & H - do L = 1,ND,2 - FJ(L,K) = RR(1,L,K)*WT(1) + RR(2,L,K)*WT(2) & - + RR(3,L,K)*WT(3) + RR(4,L,K)*WT(4) - enddo - do L = 2,ND,2 - FJ(L,K) = RR(1,L,K)*WT(1)*EMU(1) + RR(2,L,K)*WT(2)*EMU(2) & - + RR(3,L,K)*WT(3)*EMU(3) + RR(4,L,K)*WT(4)*EMU(4) + IF ( amIRoot ) THEN + write(6,'(a,9f8.1)') ' Aerosol optical: r-eff/rho/Q(@wavel):', & + (WAA(K,1),K=1,5) + do J=1,NAA + write(6,'(1x,A)') TRIM(TITLAA(J)) + write(6,'(3x,I2,A,9F8.1)') J,' wavel=',(WAA(K,J),K=1,NK) + write(6,'(3x,I2,A,9F8.4)') J,' Qext =',(QAA(K,J),K=1,NK) enddo + ENDIF - ! FJTOP = scaled diffuse flux out top-of-atmosphere (limit = mu0) - ! FJBOT = scaled diffuse flux onto surface: - ! ZFLUX = reflect/(1 + reflect) * mu0 * Fsolar(lower boundary) - ! SUMBX = flux from Lambert reflected I+ - SUMT = RR(1, 1,K)*WT(1)*EMU(1) + RR(2, 1,K)*WT(2)*EMU(2) & - + RR(3, 1,K)*WT(3)*EMU(3) + RR(4, 1,K)*WT(4)*EMU(4) - SUMB = RR(1,ND,K)*WT(1)*EMU(1) + RR(2,ND,K)*WT(2)*EMU(2) & - + RR(3,ND,K)*WT(3)*EMU(3) + RR(4,ND,K)*WT(4)*EMU(4) - SUMBX = 4.e+0_fp*SUMB*RFL(K)/(1.0e+0_fp + RFL(K)) + ZFLUX(K) - - FJTOP(K) = 4.e+0_fp*SUMT - FJBOT(K) = 4.e+0_fp*SUMB - SUMBX - - enddo +110 format(3x,a80) - END SUBROUTINE BLKSLV + END SUBROUTINE RD_MIE !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: gen_id +! !IROUTINE: rd_xxx ! -! !DESCRIPTION: Subroutine GEN generates coefficient matrices for the block -! tri-diagonal system described in BLKSLV. +! !DESCRIPTION: Subroutine RD\_XXX reads in wavelength bins, solar fluxes, +! Rayleigh and temperature-dependent cross-sections. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE GEN_ID(POMEGA,FZ,ZTAU,ZFLUX,RFL,PM,PM0,B,CC,AA,A,H,C,ND) + SUBROUTINE RD_XXX ( amIRoot, dryrun, NUN, NAMFIL, RC ) +! +! !USES: +! + USE CMN_FJX_Mod, ONLY : W_, WX_, X_, NJX, NW1, NW2 + USE CMN_FJX_Mod, ONLY : TITLEJX, WL, FL, QRAYL, QO2, QO3, Q1D + USE CMN_FJX_Mod, ONLY : LQQ, QQQ, SQQ, TQQ + USE ErrCode_Mod ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: ND - REAL(fp), INTENT(IN) :: POMEGA(M2_,N_) - REAL(fp), INTENT(IN) :: PM(M_,M2_) - REAL(fp), INTENT(IN) :: PM0(M2_) - REAL(fp), INTENT(IN) :: ZFLUX,RFL - REAL(fp), INTENT(IN), DIMENSION(N_) :: FZ,ZTAU + LOGICAL, INTENT(IN) :: amIRoot + LOGICAL, INTENT(IN) :: dryrun + INTEGER, INTENT(IN) :: NUN + CHARACTER(*), INTENT(IN) :: NAMFIL ! ! !OUTPUT PARAMETERS: ! - REAL(fp), INTENT(OUT),DIMENSION(M_,M_,N_) :: B,AA,CC - REAL(fp), INTENT(OUT),DIMENSION(M_,N_) :: A,C,H - + INTEGER, INTENT(OUT) :: RC +! +! !REMARKS: +! NEW v-6.8 now allow 1 to 3 sets of X-sects for T or P +! LQQ = 1, 2, or 3 to determine interpolation with T or P +! IF the temperatures TQQQ are <0, then use as pressure interp (hPa) +! NB - the temperatures and pressures must be increasing +! NEW v-6.4 changed to collapse wavelengths & x-sections to Trop-only: +! WX_ = 18 should match the JX_spec.dat wavelengths +! W_ = 12 (Trop-only) or 18 (std) is set in (CMN_FJX.F). +! if W_=12 then drop strat wavels, and drop x-sects (e.g. N2O, ...) +! W_ = 8, reverts to quick fix: fast-J (12-18) plus bin (5) scaled +! . +! -------------------------------------------------------------------- +! NAMFIL Name of spectral data file (FJX_spec.dat) >> j2 for fast-J2 +! NUN Channel number for reading data file +! +! NJX Number of species to calculate J-values for +! NWWW Number of wavelength bins, from 1:NWWW +! WBIN Boundaries of wavelength bins +! WL Centres of wavelength bins - 'effective wavelength' +! FL Solar flux incident on top of atmosphere (cm-2.s-1) +! QRAYL Rayleigh parameters (effective cross-section) (cm2) +! QO2 O2 cross-sections +! QO3 O3 cross-sections +! Q1D O3 => O(1D) quantum yield +! TQQ Temperature for supplied cross sections +! QQQ Supplied cross sections in each wavelength bin (cm2) +! -------------------------------------------------------------------- ! ! !REVISION HISTORY: ! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 @@ -868,366 +721,310 @@ SUBROUTINE GEN_ID(POMEGA,FZ,ZTAU,ZFLUX,RFL,PM,PM0,B,CC,AA,A,H,C,ND) ! ! !LOCAL VARIABLES: ! - INTEGER I, J, K, L1,L2,LL - REAL(fp) SUM0, SUM1, SUM2, SUM3 - REAL(fp) DELTAU, D1, D2, SURFAC + ! Scalars + LOGICAL :: FileExists + INTEGER :: I, J, JJ, K, IW, NQRD, NWWW, LQ + REAL(fp) :: TQQ2 - REAL(fp), DIMENSION(M_,M_) :: S,T,U,V,W + ! Arrays + REAL(fp) :: QQ2(199) + + ! Strings + CHARACTER(LEN=255) :: FileMsg, FileStatus + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + CHARACTER(LEN=78) :: TITLE0 + CHARACTER(LEN=6 ) :: TITLEJ2, TITLEJ3 + CHARACTER(LEN=1 ) :: TSTRAT !================================================================= - ! GEN_ID begins here! + ! In dry-run mode, print file path to dryrun log and exit. + ! Otherwise, print file path to stdout and continue. !================================================================= - ! upper boundary: 2nd-order terms - L1 = 1 - L2 = 2 - do I = 1,M_ - SUM0 = POMEGA(1,L1)*PM(I,1)*PM0(1) + POMEGA(3,L1)*PM(I,3)*PM0(3) & - + POMEGA(5,L1)*PM(I,5)*PM0(5) + POMEGA(7,L1)*PM(I,7)*PM0(7) - SUM2 = POMEGA(1,L2)*PM(I,1)*PM0(1) + POMEGA(3,L2)*PM(I,3)*PM0(3) & - + POMEGA(5,L2)*PM(I,5)*PM0(5) + POMEGA(7,L2)*PM(I,7)*PM0(7) - SUM1 = POMEGA(2,L1)*PM(I,2)*PM0(2) + POMEGA(4,L1)*PM(I,4)*PM0(4) & - + POMEGA(6,L1)*PM(I,6)*PM0(6) + POMEGA(8,L1)*PM(I,8)*PM0(8) - SUM3 = POMEGA(2,L2)*PM(I,2)*PM0(2) + POMEGA(4,L2)*PM(I,4)*PM0(4) & - + POMEGA(6,L2)*PM(I,6)*PM0(6) + POMEGA(8,L2)*PM(I,8)*PM0(8) - H(I,L1) = 0.5e+0_fp*(SUM0*FZ(L1) + SUM2*FZ(L2)) - A(I,L1) = 0.5e+0_fp*(SUM1*FZ(L1) + SUM3*FZ(L2)) - enddo + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = '-> at RD_XXX (in module GeosCore/fast_jx_mod.F)' - do I = 1,M_ - do J = 1,I - SUM0 = POMEGA(1,L1)*PM(I,1)*PM(J,1) + POMEGA(3,L1)*PM(I,3)*PM(J,3) & - + POMEGA(5,L1)*PM(I,5)*PM(J,5) + POMEGA(7,L1)*PM(I,7)*PM(J,7) - SUM2 = POMEGA(1,L2)*PM(I,1)*PM(J,1) + POMEGA(3,L2)*PM(I,3)*PM(J,3) & - + POMEGA(5,L2)*PM(I,5)*PM(J,5) + POMEGA(7,L2)*PM(I,7)*PM(J,7) - SUM1 = POMEGA(2,L1)*PM(I,2)*PM(J,2) + POMEGA(4,L1)*PM(I,4)*PM(J,4) & - + POMEGA(6,L1)*PM(I,6)*PM(J,6) + POMEGA(8,L1)*PM(I,8)*PM(J,8) - SUM3 = POMEGA(2,L2)*PM(I,2)*PM(J,2) + POMEGA(4,L2)*PM(I,4)*PM(J,4) & - + POMEGA(6,L2)*PM(I,6)*PM(J,6) + POMEGA(8,L2)*PM(I,8)*PM(J,8) - S(I,J) = - SUM2*WT(J) - S(J,I) = - SUM2*WT(I) - T(I,J) = - SUM1*WT(J) - T(J,I) = - SUM1*WT(I) - V(I,J) = - SUM3*WT(J) - V(J,I) = - SUM3*WT(I) - B(I,J,L1) = - 0.5e+0_fp*(SUM0 + SUM2)*WT(J) - B(J,I,L1) = - 0.5e+0_fp*(SUM0 + SUM2)*WT(I) - enddo - enddo + ! Test if the file exists + INQUIRE( FILE=TRIM( NamFil ), EXIST=FileExists ) - do I = 1,M_ - S(I,I) = S(I,I) + 1.0e+0_fp - T(I,I) = T(I,I) + 1.0e+0_fp - V(I,I) = V(I,I) + 1.0e+0_fp - B(I,I,L1)= B(I,I,L1) + 1.0e+0_fp + ! Test if the file exists and define an output string + IF ( FileExists ) THEN + FileMsg = 'FAST-JX (RD_XXX): Opening' + ELSE + FileMsg = 'FAST-JX (RD_XXX): REQUIRED FILE NOT FOUND' + ENDIF - C(I,L1)= S(I,1)*A(1,L1)/EMU(1) + S(I,2)*A(2,L1)/EMU(2) & - + S(I,3)*A(3,L1)/EMU(3) + S(I,4)*A(4,L1)/EMU(4) - enddo + ! Write to stdout for both regular and dry-run simulations + IF ( amIRoot ) THEN + WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( NamFil ) +300 FORMAT( a, ' ', a ) + ENDIF - do I = 1,M_ - do J = 1,M_ - W(J,I) = S(J,1)*T(1,I)/EMU(1) + S(J,2)*T(2,I)/EMU(2) & - + S(J,3)*T(3,I)/EMU(3) + S(J,4)*T(4,I)/EMU(4) - U(J,I) = S(J,1)*V(1,I)/EMU(1) + S(J,2)*V(2,I)/EMU(2) & - + S(J,3)*V(3,I)/EMU(3) + S(J,4)*V(4,I)/EMU(4) - enddo - enddo - ! upper boundary, 2nd-order, C-matrix is full (CC) - DELTAU = ZTAU(L2) - ZTAU(L1) - D2 = 0.25e+0_fp*DELTAU - do I = 1,M_ - do J = 1,M_ - B(I,J,L1) = B(I,J,L1) + D2*W(I,J) - CC(I,J,L1) = D2*U(I,J) - enddo - H(I,L1) = H(I,L1) + 2.0e+0_fp*D2*C(I,L1) - A(I,L1) = 0.0e+0_fp - enddo - do I = 1,M_ - D1 = EMU(I)/DELTAU - B(I,I,L1) = B(I,I,L1) + D1 - CC(I,I,L1) = CC(I,I,L1) - D1 - enddo + ! For dry-run simulations, return to calling program. + ! For regular simulations, throw an error if we can't find the file. + IF ( dryrun ) THEN + RETURN + ELSE + IF ( .not. FileExists ) THEN + WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( NamFil ) + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + ENDIF - ! intermediate points: can be even or odd, A & C diagonal - ! mid-layer h-points, Legendre terms 2,4,6,8 - do LL=2,ND-1,2 - DELTAU = ZTAU(LL+1) - ZTAU(LL-1) - do I = 1,M_ - A(I,LL) = EMU(I)/DELTAU - C(I,LL) = -A(I,LL) - H(I,LL) = FZ(LL)*( & - POMEGA(2,LL)*PM(I,2)*PM0(2) + POMEGA(4,LL)*PM(I,4)*PM0(4) & - + POMEGA(6,LL)*PM(I,6)*PM0(6) + POMEGA(8,LL)*PM(I,8)*PM0(8)) - enddo - do I = 1,M_ - do J=1,I - SUM0 = POMEGA(2,LL)*PM(I,2)*PM(J,2) + POMEGA(4,LL)*PM(I,4)*PM(J,4) & - + POMEGA(6,LL)*PM(I,6)*PM(J,6) + POMEGA(8,LL)*PM(I,8)*PM(J,8) - B(I,J,LL) = - SUM0*WT(J) - B(J,I,LL) = - SUM0*WT(I) - enddo - enddo - do I = 1,M_ - B(I,I,LL) = B(I,I,LL) + 1.0e+0_fp - enddo - enddo + !================================================================= + ! RD_XXX begins here! + !================================================================= - ! odd-layer j-points, Legendre terms 1,3,5,7 - do LL=3,ND-2,2 - DELTAU = ZTAU(LL+1) - ZTAU(LL-1) - do I = 1,M_ - A(I,LL) = EMU(I)/DELTAU - C(I,LL) = -A(I,LL) - H(I,LL) = FZ(LL)*( & - POMEGA(1,LL)*PM(I,1)*PM0(1) + POMEGA(3,LL)*PM(I,3)*PM0(3) & - + POMEGA(5,LL)*PM(I,5)*PM0(5) + POMEGA(7,LL)*PM(I,7)*PM0(7)) - enddo - do I = 1,M_ - do J=1,I - SUM0 = POMEGA(1,LL)*PM(I,1)*PM(J,1) + POMEGA(3,LL)*PM(I,3)*PM(J,3) & - + POMEGA(5,LL)*PM(I,5)*PM(J,5) + POMEGA(7,LL)*PM(I,7)*PM(J,7) - B(I,J,LL) = - SUM0*WT(J) - B(J,I,LL) = - SUM0*WT(I) - enddo - enddo - do I = 1,M_ - B(I,I,LL) = B(I,I,LL) + 1.0e+0_fp - enddo - enddo + ! Initialization + TQQ(:,:) = 0.e+0_fp - ! lower boundary: 2nd-order terms - L1 = ND - L2 = ND-1 - do I = 1,M_ - SUM0 = POMEGA(1,L1)*PM(I,1)*PM0(1) + POMEGA(3,L1)*PM(I,3)*PM0(3) & - + POMEGA(5,L1)*PM(I,5)*PM0(5) + POMEGA(7,L1)*PM(I,7)*PM0(7) - SUM2 = POMEGA(1,L2)*PM(I,1)*PM0(1) + POMEGA(3,L2)*PM(I,3)*PM0(3) & - + POMEGA(5,L2)*PM(I,5)*PM0(5) + POMEGA(7,L2)*PM(I,7)*PM0(7) - SUM1 = POMEGA(2,L1)*PM(I,2)*PM0(2) + POMEGA(4,L1)*PM(I,4)*PM0(4) & - + POMEGA(6,L1)*PM(I,6)*PM0(6) + POMEGA(8,L1)*PM(I,8)*PM0(8) - SUM3 = POMEGA(2,L2)*PM(I,2)*PM0(2) + POMEGA(4,L2)*PM(I,4)*PM0(4) & - + POMEGA(6,L2)*PM(I,6)*PM0(6) + POMEGA(8,L2)*PM(I,8)*PM0(8) - H(I,L1) = 0.5e+0_fp*(SUM0*FZ(L1) + SUM2*FZ(L2)) - A(I,L1) = 0.5e+0_fp*(SUM1*FZ(L1) + SUM3*FZ(L2)) - enddo + ! -------spectral data----set for new format data------------------ + ! note that X_ = max # Xsects read in + ! NJX = # fast-JX J-values derived from this (.le. X_) - do I = 1,M_ - do J = 1,I - SUM0 = POMEGA(1,L1)*PM(I,1)*PM(J,1) + POMEGA(3,L1)*PM(I,3)*PM(J,3) & - + POMEGA(5,L1)*PM(I,5)*PM(J,5) + POMEGA(7,L1)*PM(I,7)*PM(J,7) - SUM2 = POMEGA(1,L2)*PM(I,1)*PM(J,1) + POMEGA(3,L2)*PM(I,3)*PM(J,3) & - + POMEGA(5,L2)*PM(I,5)*PM(J,5) + POMEGA(7,L2)*PM(I,7)*PM(J,7) - SUM1 = POMEGA(2,L1)*PM(I,2)*PM(J,2) + POMEGA(4,L1)*PM(I,4)*PM(J,4) & - + POMEGA(6,L1)*PM(I,6)*PM(J,6) + POMEGA(8,L1)*PM(I,8)*PM(J,8) - SUM3 = POMEGA(2,L2)*PM(I,2)*PM(J,2) + POMEGA(4,L2)*PM(I,4)*PM(J,4) & - + POMEGA(6,L2)*PM(I,6)*PM(J,6) + POMEGA(8,L2)*PM(I,8)*PM(J,8) - S(I,J) = - SUM2*WT(J) - S(J,I) = - SUM2*WT(I) - T(I,J) = - SUM1*WT(J) - T(J,I) = - SUM1*WT(I) - V(I,J) = - SUM3*WT(J) - V(J,I) = - SUM3*WT(I) - B(I,J,L1) = - 0.5e+0_fp*(SUM0 + SUM2)*WT(J) - B(J,I,L1) = - 0.5e+0_fp*(SUM0 + SUM2)*WT(I) - enddo - enddo + ! >>>> W_ = 12 <<<< means trop-only, discard WL #1-4 and #9-10, some X-sects - do I = 1,M_ - S(I,I) = S(I,I) + 1.0e+0_fp - T(I,I) = T(I,I) + 1.0e+0_fp - V(I,I) = V(I,I) + 1.0e+0_fp - B(I,I,L1)= B(I,I,L1) + 1.0e+0_fp + ! Open file + open (NUN,FILE=NAMFIL,status='old',form='formatted') + read (NUN,100) TITLE0 - C(I,L1)= S(I,1)*A(1,L1)/EMU(1) + S(I,2)*A(2,L1)/EMU(2) & - + S(I,3)*A(3,L1)/EMU(3) + S(I,4)*A(4,L1)/EMU(4) - enddo + ! -note that NQRD is not used any more, a read until 'endofJ' is performed + read (NUN,101) NQRD,NWWW + NW1 = 1 + NW2 = NWWW + IF ( amIRoot ) THEN + write(6,'(1x,a)') TITLE0 + write(6,'(i8)') NWWW + ENDIF + ! -J-values: 1=O2, 2=O3P,3=O3D 4=readin Xsects + read (NUN,102) (WL(IW),IW=1,NWWW) + read (NUN,102) (FL(IW),IW=1,NWWW) + read (NUN,102) (QRAYL(IW),IW=1,NWWW) - do I = 1,M_ - do J = 1,M_ - W(J,I) = S(J,1)*T(1,I)/EMU(1) + S(J,2)*T(2,I)/EMU(2) & - + S(J,3)*T(3,I)/EMU(3) + S(J,4)*T(4,I)/EMU(4) - U(J,I) = S(J,1)*V(1,I)/EMU(1) + S(J,2)*V(2,I)/EMU(2) & - + S(J,3)*V(3,I)/EMU(3) + S(J,4)*V(4,I)/EMU(4) - enddo - enddo + ! Read O2 X-sects, O3 X-sects, O3=>O(1D) quant yields (each at 3 temps) + ! NB the O3 and q-O3-O1D are at different temperatures and cannot be combined + read (NUN,103) TITLEJX(1),TQQ(1,1), (QO2(IW,1),IW=1,NWWW) + read (NUN,103) TITLEJ2, TQQ(2,1), (QO2(IW,2),IW=1,NWWW) + read (NUN,103) TITLEJ3, TQQ(3,1), (QO2(IW,3),IW=1,NWWW) - ! lower boundary, 2nd-order, A-matrix is full (AA) - DELTAU = ZTAU(L1) - ZTAU(L2) - D2 = 0.25e+0_fp*DELTAU - SURFAC = 4.0e+0_fp*RFL/(1.0e+0_fp + RFL) - do I = 1,M_ - D1 = EMU(I)/DELTAU - SUM0 = D1 + D2*(W(I,1)+W(I,2)+W(I,3)+W(I,4)) - SUM1 = SURFAC*SUM0 - do J = 1,M_ - AA(I,J,L1) = - D2*U(I,J) - B(I,J,L1) = B(I,J,L1) + D2*W(I,J) - SUM1*EMU(J)*WT(J) - enddo - H(I,L1) = H(I,L1) - 2.0e+0_fp*D2*C(I,L1) + SUM0*ZFLUX - enddo + read (NUN,103) TITLEJX(2),TQQ(1,2), (QO3(IW,1),IW=1,NWWW) + read (NUN,103) TITLEJ2, TQQ(2,2), (QO3(IW,2),IW=1,NWWW) + read (NUN,103) TITLEJ3, TQQ(3,2), (QO3(IW,3),IW=1,NWWW) - do I = 1,M_ - D1 = EMU(I)/DELTAU - AA(I,I,L1) = AA(I,I,L1) + D1 - B(I,I,L1) = B(I,I,L1) + D1 - C(I,L1) = 0.0e+0_fp - enddo + read (NUN,103) TITLEJX(3),TQQ(1,3), (Q1D(IW,1),IW=1,NWWW) + read (NUN,103) TITLEJ2, TQQ(2,3), (Q1D(IW,2),IW=1,NWWW) + read (NUN,103) TITLEJ3, TQQ(3,3), (Q1D(IW,3),IW=1,NWWW) - END SUBROUTINE GEN_ID -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: jratet -! -! !DESCRIPTION: Subroutine JRATET calculates temperature-dependent J-rates. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE JRATET(PPJ,TTJ,FFF,VALJL,LCTM,LCHEM,NJXU) -! -! !USES: -! -! -! !INPUT PARAMETERS: -! - integer, intent(in) :: LCTM,LCHEM,NJXU - real(fp), intent(in) :: PPJ(JXL1_+1),TTJ(JXL1_+1) -! -! !INPUT/OUTPUT PARAMETERS: -! - real(fp), intent(inout) :: FFF(W_,LCTM) -! -! !OUTPUT VARIABLES: -! - real(fp), intent(out), dimension(LCTM,NJXU) :: VALJL -! -! !REMARKS: -! -! !REVISION HISTORY: -! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - real(fp) VALJ(X_) - real(fp) QO2TOT, QO3TOT, QO31DY, QO31D, QQQT, TFACT - real(fp) TT,PP,DD,TT200,TFACA,TFAC0,TFAC1,TFAC2 - real(fp) QQQA,QQ2,QQ1A,QQ1B - integer J,K,L, IV + SQQ(1) = ' ' + SQQ(2) = ' ' + SQQ(3) = ' ' - !================================================================= - ! JRATET begins here! - !================================================================= + LQQ(1) = 3 + LQQ(2) = 3 + LQQ(3) = 3 - if (NJXU .lt. NJX) then - call EXITC(' JRATET: CTM has not enough J-values dimensioned') - endif - do L = 1,LCTM - ! need temperature, pressure, and density at mid-layer - ! (for some quantum yields): - TT = TTJ(L) - if (L .eq. 1) then - PP = PPJ(1) - else - PP = (PPJ(L)+PPJ(L+1))*0.5e+0_fp - endif - DD = 7.24e18*PP/TT + ! Read remaining species: X-sections at 1-2-3 T_s + JJ = 3 + do I=1,9999 - ! if W_=18/12, must zero bin-11/5 below 100 hPa, since O2 e-fold is - ! too weak and does not represent the decay of 215.5-221.5 nm sunlight. - if (PP .gt. 100.e+0_fp) then - if (W_ .eq. 18) then - FFF(11,L) = 0.e+0_fp - elseif (W_ .eq. 12) then - FFF(5,L) = 0.e+0_fp - endif - endif + ! try to read in 3 X-sects per J-value (JJ) + read (NUN,104) TITLEJ2,TSTRAT,TQQ2,(QQ2(IW),IW=1,NWWW) + if (TITLEJ2 .eq. 'endofJ') goto 1 - do J = 1,NJXU - VALJ(J) = 0.e+0_fp - enddo + ! skip stratosphere only J's (denoted by 'x')if W_<18 => trop-only J's + if (W_.eq.18 .or. TSTRAT.ne.'x') then + if (TITLEJ2 .ne. TITLEJX(JJ)) then + JJ = JJ+1 - do K = 1,W_ - call X_interp (TT,QO2TOT, TQQ(1,1),QO2(K,1), & - TQQ(2,1),QO2(K,2), TQQ(3,1),QO2(K,3), LQQ(1)) - call X_interp (TT,QO3TOT, TQQ(1,2),QO3(K,1), & - TQQ(2,2),QO3(K,2), TQQ(3,2),QO3(K,3), LQQ(2)) - call X_interp (TT,QO31DY, TQQ(1,3),Q1D(K,1), & - TQQ(2,3),Q1D(K,2), TQQ(3,3),Q1D(K,3), LQQ(3)) - QO31D = QO31DY*QO3TOT - VALJ(1) = VALJ(1) + QO2TOT*FFF(K,L) - VALJ(2) = VALJ(2) + QO3TOT*FFF(K,L) - VALJ(3) = VALJ(3) + QO31D*FFF(K,L) - enddo + if (JJ .gt. X_) then + call EXITC(' RD_XXX: X_ not large enough for Xsects read in') + endif - do J = 4,NJXU - do K = 1,W_ - ! also need to allow for Pressure interpolation if SQQ(J) = 'p' - if (SQQ(J) .eq.'p') then - call X_interp (PP,QQQT, TQQ(1,J),QQQ(K,1,J), & - TQQ(2,J),QQQ(K,2,J), TQQ(3,J),QQQ(K,3,J), LQQ(J)) + TITLEJX(JJ) = TITLEJ2 + LQQ(JJ) = 1 + SQQ(JJ) = TSTRAT + LQ = LQQ(JJ) + TQQ(LQ,JJ) = TQQ2 + do IW = 1,NWWW + QQQ(IW,LQ,JJ) = QQ2(IW) + enddo else - call X_interp (TT,QQQT, TQQ(1,J),QQQ(K,1,J), & - TQQ(2,J),QQQ(K,2,J), TQQ(3,J),QQQ(K,3,J), LQQ(J)) + LQQ(JJ) = LQQ(JJ)+1 + if (LQQ(JJ) .le. 3) then + LQ = LQQ(JJ) + TQQ(LQ,JJ) = TQQ2 + do IW = 1,NWWW + QQQ(IW,LQ,JJ) = QQ2(IW) + enddo + endif endif - VALJ(J) = VALJ(J) + QQQT*FFF(K,L) - enddo - enddo - - do J=1,NJXU - VALJL(L,J) = VALJ(J) - enddo + endif + enddo +1 continue + NJX = JJ + do J = 1,NJX + if ( amIRoot ) then + write(6,200) J,TITLEJX(J),SQQ(J),LQQ(J),(TQQ(I,J),I=1,LQQ(J)) + endif + ! need to check that TQQ is monotonically increasing: + if (LQQ(J) .eq. 3) then + if (TQQ(2,J) .ge. TQQ(3,J)) then + call EXITC ('TQQ out of order') + endif + if (TQQ(1,J) .ge. TQQ(2,J)) then + call EXITC ('TQQ out of order') + endif + endif + if (LQQ(J) .eq. 2) then + if (TQQ(1,J) .ge. TQQ(2,J)) then + call EXITC ('TQQ out of order') + endif + endif enddo - ! Zero non-chemistry layers - if (LCHEM.lt.LCTM) then - do L=(LCTM+1),LCHEM - do J=1,NJXU - VALJL(L,J) = 0.e+0_fp - enddo - enddo + ! check on doingpressure interp + ! check on consolidating Qo2 and others into + ! wrte a newFJX_J2J.dat for mapping on fjx Xsects + + ! truncate number of wavelengths to do troposphere-only + if (W_ .ne. WX_) then + ! TROP-ONLY + if (W_ .eq. 12) then + if ( amIRoot ) then + write(6,'(a)') & + ' >>>TROP-ONLY reduce wavelengths to 12, drop strat X-sects' + endif + NW2 = 12 + do IW = 1,4 + WL(IW) = WL(IW+4) + FL(IW) = FL(IW+4) + QRAYL(IW) = QRAYL(IW+4) + do K = 1,3 + QO2(IW,K) = QO2(IW+4,K) + QO3(IW,K) = QO3(IW+4,K) + Q1D(IW,K) = Q1D(IW+4,K) + enddo + do J = 4,NJX + do LQ=1,LQQ(J) + QQQ(IW,LQ,J) = QQQ(IW+4,LQ,J) + enddo + enddo + enddo + do IW = 5,12 + WL(IW) = WL(IW+6) + FL(IW) = FL(IW+6) + QRAYL(IW) = QRAYL(IW+6) + do K = 1,3 + QO2(IW,K) = QO2(IW+6,K) + QO3(IW,K) = QO3(IW+6,K) + Q1D(IW,K) = Q1D(IW+6,K) + enddo + do J = 4,NJX + do LQ=1,LQQ(J) + QQQ(IW,LQ,J) = QQQ(IW+6,LQ,J) + enddo + enddo + enddo + ! TROP-QUICK (must scale solar flux for W=5) + elseif (W_ .eq. 8) then + if ( amIRoot ) then + write(6,'(a)') & + ' >>>TROP-QUICK reduce wavelengths to 8, drop strat X-sects' + endif + NW2 = 8 + do IW = 1,1 + WL(IW) = WL(IW+4) + FL(IW) = FL(IW+4) * 2.e+0_fp + QRAYL(IW) = QRAYL(IW+4) + do K = 1,3 + QO2(IW,K) = QO2(IW+4,K) + QO3(IW,K) = QO3(IW+4,K) + Q1D(IW,K) = Q1D(IW+4,K) + enddo + do J = 4,NJX + do LQ=1,LQQ(J) + QQQ(IW,LQ,J) = QQQ(IW+4,LQ,J) + enddo + enddo + enddo + do IW = 2,8 + WL(IW) = WL(IW+10) + FL(IW) = FL(IW+10) + QRAYL(IW) = QRAYL(IW+10) + do K = 1,3 + QO2(IW,K) = QO2(IW+10,K) + QO3(IW,K) = QO3(IW+10,K) + Q1D(IW,K) = Q1D(IW+10,K) + enddo + do J = 4,NJX + do LQ=1,LQQ(J) + QQQ(IW,LQ,J) = QQQ(IW+10,LQ,J) + enddo + enddo + enddo + + else + call EXITC(' no. wavelengths wrong: W_ .ne. 8,12,18') + endif endif - END SUBROUTINE JRATET + close(NUN) + +100 format(a) +101 format(10x,5i5) +102 format(10x, 6e10.3/(10x,6e10.3)/(10x,6e10.3)) +103 format(a6,1x,f3.0,6e10.3/(10x,6e10.3)/(10x,6e10.3)) +104 format(a6,a1,f3.0,6e10.3/(10x,6e10.3)/(10x,6e10.3)) +200 format(1x,' x-sect:',i3,a10,a4,i5,3(3x,f6.2)) +201 format(' Number of x-sections supplied to Fast-J2: ',i3,/, & + ' Maximum number allowed (X_) only set to: ',i3, & + ' - increase in cmn_FJX.f') + + END SUBROUTINE RD_XXX !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: x_interp +! !IROUTINE: rd_js_jx ! -! !DESCRIPTION: Subroutine X\_INTERP is an up-to-three-point linear interp. -! function for cross-sections. +! !DESCRIPTION: Subroutine RD\_JS\_JX reads in 'FJX\_j2j.dat', which defines +! the mapping of Fast-JX J's (TITLEJX(1:NJX)) onto the CTM reactions. +! Reaction number JJ, named T\_REACT, uses Fast-JX's T\_FJX (including scaling +! factor F\_FJX). !\\ !\\ ! !INTERFACE: ! - SUBROUTINE X_INTERP (TINT,XINT,T1,X1,T2,X2,T3,X3,L123) + SUBROUTINE RD_JS_JX( amIRoot, dryrun, NUNIT, NAMFIL, TITLEJX, NJXX, RC ) ! ! !USES: ! + USE CMN_FJX_Mod, ONLY : M2_, JVN_, JIND + USE CMN_FJX_Mod, ONLY : JLABEL, JFACTA, NRATJ, BRANCH, RNAMES + USE Charpak_Mod, ONLY : CStrip + USE ErrCode_Mod ! ! !INPUT PARAMETERS: ! - REAL(fp), INTENT(IN) :: TINT,T1,T2,T3, X1,X2,X3 - INTEGER, INTENT(IN) :: L123 + LOGICAL, INTENT(IN) :: amIRoot + LOGICAL, INTENT(IN) :: dryrun + INTEGER, INTENT(IN) :: NUNIT + INTEGER, INTENT(IN) :: NJXX + CHARACTER(LEN=*), INTENT(IN) :: NAMFIL + CHARACTER(LEN=6), INTENT(IN), DIMENSION(NJXX) :: TITLEJX ! -! !OUTPUT VARIABLES: +! !OUTPUT PARAMETERS: ! - REAL(fp), INTENT(OUT) :: XINT + INTEGER, INTENT(OUT) :: RC ! ! !REMARKS: +! Now flag special reactions that are to be adjusted for FlexChem later. ! ! !REVISION HISTORY: ! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 @@ -1238,82 +1035,189 @@ SUBROUTINE X_INTERP (TINT,XINT,T1,X1,T2,X2,T3,X3,L123) ! ! !LOCAL VARIABLES: ! - REAL(fp) TFACT + ! Scalars + LOGICAL :: FileExists + INTEGER :: J, JJ, K + REAL(fp) :: F_FJX - !================================================================= - ! X_INTERP begins here! - !================================================================= + ! Strings + CHARACTER(LEN=6 ) :: T_FJX + CHARACTER(LEN=50 ) :: T_REACT + CHARACTER(LEN=50 ) :: TEXT + CHARACTER(LEN=120) :: CLINE + CHARACTER(LEN=255) :: ErrMsg, ThisLoc, FileMsg - if (L123 .le. 1) then - XINT = X1 - elseif (L123 .eq. 2) then - TFACT = max(0.e+0_fp,min(1.e+0_fp,(TINT-T1)/(T2-T1) )) - XINT = X1 + TFACT*(X2 - X1) - else - if (TINT.le. T2) then - TFACT = max(0.e+0_fp,min(1.e+0_fp,(TINT-T1)/(T2-T1) )) - XINT = X1 + TFACT*(X2 - X1) - else - TFACT = max(0.e+0_fp,min(1.e+0_fp,(TINT-T2)/(T3-T2) )) - XINT = X2 + TFACT*(X3 - X2) + ! String arrays + CHARACTER(LEN=6) :: JMAP(JVN_) + + !======================================================================== + ! RD_JS_JX begins here! + !======================================================================== + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at Rd_Js_Jx (in module GeosCore/fast_jx_mod.F90)' + + !======================================================================== + ! In dry-run mode, print file path to dryrun log and exit. + ! Otherwise, print file path to stdout and continue. + !======================================================================== + + ! Test if the file exists + INQUIRE( FILE=TRIM( NamFil ), EXIST=FileExists ) + + ! Test if the file exists and define an output string + IF ( FileExists ) THEN + FileMsg = 'FAST-JX (RD_JS_JX): Opening' + ELSE + FileMsg = 'FAST-JX (RD_JS_JX): REQUIRED FILE NOT FOUND' + ENDIF + + ! Write to stdout for both regular and dry-run simulations + IF ( amIRoot ) THEN + WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( NamFil ) +300 FORMAT( a, ' ', a ) + ENDIF + + ! For dry-run simulations, return to calling program. + ! For regular simulations, throw an error if we can't find the file. + IF ( dryrun ) THEN + RETURN + ELSE + IF ( .not. FileExists ) THEN + WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( NamFil ) + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + ENDIF + + !======================================================================== + ! Read the FJX_j2j.dat file to map model specific J's onto fast-JX J's + ! The chemistry code title describes fully the reaction (a50) + ! Blank (unfilled) chemistry J's are unmapped + ! The number NRATJ is the last JJ readin that is .le. JVN + ! include fractional quantum yield for the fast-JX J's + !======================================================================== + + JLABEL(:) = '------' + JMAP(:) = '------' + JFACTA(:) = 0.e+0_fp + + ! Open file + open (NUNIT,file=NAMFIL,status='old',form='formatted') + + read (NUNIT,'(a)') CLINE + IF ( amIRoot ) THEN + write(6,'(a)') CLINE + ENDIF + do J = 1,JVN_ + read (NUNIT,'(i4,1x,a50,4x,f5.3,2x,a6)') JJ,T_REACT,F_FJX,T_FJX + IF (JJ.gt.JVN_) THEN + IF ( JJ .eq. 9999 ) THEN + close(NUNIT) + exit + ELSE + ErrMsg = 'Number of reactions in FJX_j2j.dat exceeds JVN_.' //& + 'Adjust JVN_ in CMN_FJX_mod.F90 to get past error.' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + ENDIF + + JLABEL(JJ) = T_REACT + JFACTA(JJ) = F_FJX + JMAP(JJ) = T_FJX + NRATJ = JJ + ! SDE 03/31/13: Check number of branches + ! Note that the order of the branches in + ! globchem.dat must match the order in + ! FJX_j2j.dat + READ (T_REACT(1:10),"(a10)") RNAMES(JJ) + RNAMES(JJ) = TRIM(RNAMES(JJ)) + BRANCH(JJ) = 1 + DO K=1,(JJ-1) + IF (RNAMES(JJ) == RNAMES(K)) THEN + BRANCH(JJ) = BRANCH(K) + 1 + ENDIF + ENDDO + enddo + +20 close(NUNIT) + + + ! Zero / Set index arrays that map Jvalue(j) onto rates + do K = 1,NRATJ + JIND(K) = 0 + do J = 1,NJXX + T_FJX = TITLEJX(J) + if (JMAP(K) .eq. TITLEJX(J)) then + JIND(K)=J + endif + enddo + enddo + + IF ( amIRoot ) THEN + write(6,'(a,i4,a)')'Photochemistry Scheme with',NRATJ,' J-values' + ENDIF + do K=1,NRATJ + if (JMAP(K) .ne. '------' ) then + J = JIND(K) + IF ( amIRoot ) THEN + if (J.eq.0) then + write(6,'(i5,1x,a50,f6.3,a,1x,a6)') K,JLABEL(K),JFACTA(K), & + ' no mapping onto fast-JX',JMAP(K) + else + write(6,'(i5,1x,a50,f6.3,a,i4,1x,a6)') K,JLABEL(K),JFACTA(K), & + ' mapped to FJX:',J,TITLEJX(J) + endif + ENDIF endif - endif + enddo - END SUBROUTINE X_INTERP + END SUBROUTINE RD_JS_JX !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: sphere2 +! !IROUTINE: blkslv ! -! !DESCRIPTION: Subroutine SPHERE2 is an AMF2. +! !DESCRIPTION: Subroutine BLKSLV solves the block tri-diagonal system !\\ !\\ ! !INTERFACE: ! - SUBROUTINE SPHERE2 (U0,ZHL,AMF2,L1U,LJX1U) + SUBROUTINE BLKSLV(FJ,POMEGA,FZ,ZTAU,ZFLUX,RFL,PM,PM0,FJTOP,FJBOT,ND) +! +! !USES: +! + USE CMN_FJX_Mod, ONLY : EMU, M_, M2_, N_, W_, WT ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: L1U, LJX1U - REAL(fp), INTENT(IN) :: U0,ZHL(L1U+1) + INTEGER, INTENT(IN) :: ND + REAL(fp), INTENT(IN) :: POMEGA(M2_,N_,W_) + REAL(fp), INTENT(IN) :: FZ(N_,W_) + REAL(fp), INTENT(IN) :: ZTAU(N_,W_) + REAL(fp), INTENT(IN) :: PM(M_,M2_) + REAL(fp), INTENT(IN) :: PM0(M2_) + REAL(fp), INTENT(IN) :: RFL(W_) + REAL(fp), INTENT(IN) :: ZFLUX(W_) ! -! !OUTPUT VARIABLES: +! !OUTPUT PARAMETERS: ! - REAL(fp), INTENT(OUT) :: AMF2(2*LJX1U+1,2*LJX1U+1) + REAL(fp), INTENT(OUT) :: FJ(N_,W_) + REAL(fp), INTENT(OUT) :: FJTOP(W_) + REAL(fp), INTENT(OUT) :: FJBOT(W_) ! ! !REMARKS: -! Quoting from the original: -! New v6.2: does AirMassFactors for mid-layer, needed for SZA ~ 90 -! This new AMF2 does each of the half-layers of the CTM separately, -! whereas the original, based on the pratmo code did the whole layers -! and thus calculated the ray-path to the CTM layre edges, NOT the middle. -! Since fast-JX is meant to calculate the intensity at the mid-layer, the -! solar beam at low sun (interpolated between layer edges) was incorrect. -! This new model does make some approximations of the geometry of the layers: -! the CTM layer is split evenly in mass (good) and in height (approx). -! . -! Calculation of spherical geometry; derive tangent heights, slant path -! lengths and air mass factor for each layer. Not called when -! SZA > 98 degrees. Beyond 90 degrees, include treatment of emergent -! beam (where tangent height is below altitude J-value desired at). -! . -! --------------------------------------------------------------------- -! Inputs: -! U0 cos(solar zenith angle) -! RAD radius of Earth mean sea level (cm) -! ZHL(L) height (cm) of the bottom edge of CTM level L -! ZZHT scale height (cm) used above top of CTM (ZHL(L_+1)) -! L1U dimension of CTM = levels +1 (L+1 = above-CTM level) -! Outputs: -! AMF2(I,J) = air mass factor for CTM level I for sunlight reaching J -! ( these are calculated for both layer middle and layer edge) -! --------------------------------------------------------------------- +! The block tri-diagonal system: +! A(I)*X(I-1) + B(I)*X(I) + C(I)*X(I+1) = H(I) ! ! !REVISION HISTORY: -! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 +! 27 Mar 2013 - S. D. Eastham - Copied from GEOS-Chem v9-01-03 ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ @@ -1321,148 +1225,294 @@ SUBROUTINE SPHERE2 (U0,ZHL,AMF2,L1U,LJX1U) ! ! !LOCAL VARIABLES: ! - INTEGER, PARAMETER :: LSPH_ = 200 - - ! RZ Distance from centre of Earth to each point (cm) - ! RQ Square of radius ratios - ! SHADHT Shadow height for the current SZA - ! XL Slant path between points - INTEGER I, J, K, II, L2 - REAL(fp) XMU1,XMU2,XL,DIFF,SHADHT,RZ(LSPH_+1) - REAL(fp) RZ2(2*LSPH_+1),RQ2(2*LSPH_+1) + REAL(fp), DIMENSION(M_,N_,W_) :: A,C,H, RR + REAL(fp), DIMENSION(M_,M_,N_,W_) :: B,AA,CC, DD + REAL(fp), DIMENSION(M_,M_) :: E + REAL(fp) SUMB,SUMBX,SUMT + INTEGER I, J, K, L !================================================================= - ! SPHERE2 begins here! + ! BLKSLV begins here! !================================================================= - ! must have top-of-atmos (NOT top-of-CTM) defined - ! ZHL(L1U+1) = ZHL(L1U) + ZZHT - - if (L1U .gt. LSPH_) then - call EXITC(' SPHERE2: temp arrays not large enough') - endif - - RZ(1) = RAD + ZHL(1) - do II = 2,L1U+1 - RZ(II) = RAD + ZHL(II) + do K = 1,W_ + call GEN_ID (POMEGA(1,1,K),FZ(1,K),ZTAU(1,K),ZFLUX(K),RFL(K), & + PM,PM0, B(1,1,1,K),CC(1,1,1,K),AA(1,1,1,K), & + A(1,1,K),H(1,1,K),C(1,1,K), ND) enddo - ! calculate heights for edges of split CTM-layers - L2 = 2*L1U - do II = 2,L2,2 - I = II/2 - RZ2(II-1) = RZ(I) - RZ2(II) = 0.5e+0_fp*(RZ(I)+RZ(I+1)) - enddo - RZ2(L2+1) = RZ(L1U+1) - do II = 1,L2 - RQ2(II) = (RZ2(II)/RZ2(II+1))**2 - enddo + do K = 1,W_ + ! UPPER BOUNDARY L=1 + L = 1 + do J = 1,M_ + do I = 1,M_ + E(I,J) = B(I,J,1,K) + enddo + enddo - ! shadow height for SZA > 90 - if (U0 .lt. 0.0e+0_fp) then - SHADHT = RZ2(1)/sqrt(1.0e+0_fp - U0**2) - else - SHADHT = 0.e+0_fp - endif + ! setup L & U matrices + E(2,1) = E(2,1)/E(1,1) + E(2,2) = E(2,2)-E(2,1)*E(1,2) + E(2,3) = E(2,3)-E(2,1)*E(1,3) + E(2,4) = E(2,4)-E(2,1)*E(1,4) + E(3,1) = E(3,1)/E(1,1) + E(3,2) = (E(3,2)-E(3,1)*E(1,2))/E(2,2) + E(3,3) = E(3,3)-E(3,1)*E(1,3)-E(3,2)*E(2,3) + E(3,4) = E(3,4)-E(3,1)*E(1,4)-E(3,2)*E(2,4) + E(4,1) = E(4,1)/E(1,1) + E(4,2) = (E(4,2)-E(4,1)*E(1,2))/E(2,2) + E(4,3) = (E(4,3)-E(4,1)*E(1,3)-E(4,2)*E(2,3))/E(3,3) + E(4,4) = E(4,4)-E(4,1)*E(1,4)-E(4,2)*E(2,4)-E(4,3)*E(3,4) + ! invert L + E(4,3) = -E(4,3) + E(4,2) = -E(4,2)-E(4,3)*E(3,2) + E(4,1) = -E(4,1)-E(4,2)*E(2,1)-E(4,3)*E(3,1) + E(3,2) = -E(3,2) + E(3,1) = -E(3,1)-E(3,2)*E(2,1) + E(2,1) = -E(2,1) + ! invert U + E(4,4) = 1.e+0_fp/E(4,4) + E(3,4) = -E(3,4)*E(4,4)/E(3,3) + E(3,3) = 1.e+0_fp/E(3,3) + E(2,4) = -(E(2,3)*E(3,4)+E(2,4)*E(4,4))/E(2,2) + E(2,3) = -E(2,3)*E(3,3)/E(2,2) + E(2,2) = 1.e+0_fp/E(2,2) + E(1,4) = -(E(1,2)*E(2,4)+E(1,3)*E(3,4)+E(1,4)*E(4,4))/E(1,1) + E(1,3) = -(E(1,2)*E(2,3)+E(1,3)*E(3,3))/E(1,1) + E(1,2) = -E(1,2)*E(2,2)/E(1,1) + E(1,1) = 1.e+0_fp/E(1,1) + ! multiply U-invers * L-inverse + E(1,1) = E(1,1)+E(1,2)*E(2,1)+E(1,3)*E(3,1)+E(1,4)*E(4,1) + E(1,2) = E(1,2)+E(1,3)*E(3,2)+E(1,4)*E(4,2) + E(1,3) = E(1,3)+E(1,4)*E(4,3) + E(2,1) = E(2,2)*E(2,1)+E(2,3)*E(3,1)+E(2,4)*E(4,1) + E(2,2) = E(2,2)+E(2,3)*E(3,2)+E(2,4)*E(4,2) + E(2,3) = E(2,3)+E(2,4)*E(4,3) + E(3,1) = E(3,3)*E(3,1)+E(3,4)*E(4,1) + E(3,2) = E(3,3)*E(3,2)+E(3,4)*E(4,2) + E(3,3) = E(3,3)+E(3,4)*E(4,3) + E(4,1) = E(4,4)*E(4,1) + E(4,2) = E(4,4)*E(4,2) + E(4,3) = E(4,4)*E(4,3) - ! up from the surface calculating the slant paths between each level - ! and the level above, and deriving the appropriate Air Mass Factor - AMF2(:,:) = 0.e+0_fp + do J = 1,M_ + do I = 1,M_ + DD(I,J,1,K) = -E(I,1)*CC(1,J,1,K)-E(I,2)*CC(2,J,1,K) & + -E(I,3)*CC(3,J,1,K)-E(I,4)*CC(4,J,1,K) + enddo + RR(J,1,K) = E(J,1)*H(1,1,K)+E(J,2)*H(2,1,K) & + + E(J,3)*H(3,1,K)+E(J,4)*H(4,1,K) + enddo - do 16 J = 1,2*L1U+1 + ! CONTINUE THROUGH ALL DEPTH POINTS ID=2 TO ID=ND-1 + do L = 2,ND-1 - ! Air Mass Factors all zero if below the tangent height - if (RZ2(J) .lt. SHADHT) goto 16 + do J = 1,M_ + do I = 1,M_ + B(I,J,L,K) = B(I,J,L,K) + A(I,L,K)*DD(I,J,L-1,K) + enddo + H(J,L,K) = H(J,L,K) - A(J,L,K)*RR(J,L-1,K) + enddo + + do J = 1,M_ + do I = 1,M_ + E(I,J) = B(I,J,L,K) + enddo + enddo + + ! setup L & U matrices + E(2,1) = E(2,1)/E(1,1) + E(2,2) = E(2,2)-E(2,1)*E(1,2) + E(2,3) = E(2,3)-E(2,1)*E(1,3) + E(2,4) = E(2,4)-E(2,1)*E(1,4) + E(3,1) = E(3,1)/E(1,1) + E(3,2) = (E(3,2)-E(3,1)*E(1,2))/E(2,2) + E(3,3) = E(3,3)-E(3,1)*E(1,3)-E(3,2)*E(2,3) + E(3,4) = E(3,4)-E(3,1)*E(1,4)-E(3,2)*E(2,4) + E(4,1) = E(4,1)/E(1,1) + E(4,2) = (E(4,2)-E(4,1)*E(1,2))/E(2,2) + E(4,3) = (E(4,3)-E(4,1)*E(1,3)-E(4,2)*E(2,3))/E(3,3) + E(4,4) = E(4,4)-E(4,1)*E(1,4)-E(4,2)*E(2,4)-E(4,3)*E(3,4) + ! invert L + E(4,3) = -E(4,3) + E(4,2) = -E(4,2)-E(4,3)*E(3,2) + E(4,1) = -E(4,1)-E(4,2)*E(2,1)-E(4,3)*E(3,1) + E(3,2) = -E(3,2) + E(3,1) = -E(3,1)-E(3,2)*E(2,1) + E(2,1) = -E(2,1) + ! invert U + E(4,4) = 1.e+0_fp/E(4,4) + E(3,4) = -E(3,4)*E(4,4)/E(3,3) + E(3,3) = 1.e+0_fp/E(3,3) + E(2,4) = -(E(2,3)*E(3,4)+E(2,4)*E(4,4))/E(2,2) + E(2,3) = -E(2,3)*E(3,3)/E(2,2) + E(2,2) = 1.e+0_fp/E(2,2) + E(1,4) = -(E(1,2)*E(2,4)+E(1,3)*E(3,4)+E(1,4)*E(4,4))/E(1,1) + E(1,3) = -(E(1,2)*E(2,3)+E(1,3)*E(3,3))/E(1,1) + E(1,2) = -E(1,2)*E(2,2)/E(1,1) + E(1,1) = 1.e+0_fp/E(1,1) + ! multiply U-invers * L-inverse + E(1,1) = E(1,1)+E(1,2)*E(2,1)+E(1,3)*E(3,1)+E(1,4)*E(4,1) + E(1,2) = E(1,2)+E(1,3)*E(3,2)+E(1,4)*E(4,2) + E(1,3) = E(1,3)+E(1,4)*E(4,3) + E(2,1) = E(2,2)*E(2,1)+E(2,3)*E(3,1)+E(2,4)*E(4,1) + E(2,2) = E(2,2)+E(2,3)*E(3,2)+E(2,4)*E(4,2) + E(2,3) = E(2,3)+E(2,4)*E(4,3) + E(3,1) = E(3,3)*E(3,1)+E(3,4)*E(4,1) + E(3,2) = E(3,3)*E(3,2)+E(3,4)*E(4,2) + E(3,3) = E(3,3)+E(3,4)*E(4,3) + E(4,1) = E(4,4)*E(4,1) + E(4,2) = E(4,4)*E(4,2) + E(4,3) = E(4,4)*E(4,3) + + do J = 1,M_ + do I = 1,M_ + DD(I,J,L,K) = - E(I,J)*C(J,L,K) + enddo + RR(J,L,K) = E(J,1)*H(1,L,K)+E(J,2)*H(2,L,K) & + + E(J,3)*H(3,L,K)+E(J,4)*H(4,L,K) + enddo - ! Ascend from layer J calculating AMF2s - XMU1 = abs(U0) - do I = J,2*L1U - XMU2 = sqrt(1.0e+0_fp - RQ2(I)*(1.0e+0_fp-XMU1**2)) - XL = RZ2(I+1)*XMU2 - RZ2(I)*XMU1 - AMF2(I,J) = XL / (RZ2(I+1)-RZ2(I)) - XMU1 = XMU2 enddo - ! fix above top-of-atmos (L=L1U+1), must set DTAU(L1U+1)=0 - AMF2(2*L1U+1,J) = 1.e+0_fp + ! FINAL DEPTH POINT: L=ND + L = ND + do J = 1,M_ + do I = 1,M_ + B(I,J,L,K) = B(I,J,L,K) & + + AA(I,1,L,K)*DD(1,J,L-1,K) + AA(I,2,L,K)*DD(2,J,L-1,K) & + + AA(I,3,L,K)*DD(3,J,L-1,K) + AA(I,4,L,K)*DD(4,J,L-1,K) + enddo + H(J,L,K) = H(J,L,K) & + - AA(J,1,L,K)*RR(1,L-1,K) - AA(J,2,L,K)*RR(2,L-1,K) & + - AA(J,3,L,K)*RR(3,L-1,K) - AA(J,4,L,K)*RR(4,L-1,K) + enddo - ! Twilight case - Emergent Beam, calc air mass factors below layer - if (U0 .ge. 0.0e+0_fp) goto 16 + do J = 1,M_ + do I = 1,M_ + E(I,J) = B(I,J,L,K) + enddo + enddo - ! Descend from layer J - XMU1 = abs(U0) - do II = J-1,1,-1 - DIFF = RZ2(II+1)*sqrt(1.0e+0_fp-XMU1**2)-RZ2(II) - if (II.eq.1) DIFF = max(DIFF,0.e+0_fp) ! filter + ! setup L & U matrices + E(2,1) = E(2,1)/E(1,1) + E(2,2) = E(2,2)-E(2,1)*E(1,2) + E(2,3) = E(2,3)-E(2,1)*E(1,3) + E(2,4) = E(2,4)-E(2,1)*E(1,4) + E(3,1) = E(3,1)/E(1,1) + E(3,2) = (E(3,2)-E(3,1)*E(1,2))/E(2,2) + E(3,3) = E(3,3)-E(3,1)*E(1,3)-E(3,2)*E(2,3) + E(3,4) = E(3,4)-E(3,1)*E(1,4)-E(3,2)*E(2,4) + E(4,1) = E(4,1)/E(1,1) + E(4,2) = (E(4,2)-E(4,1)*E(1,2))/E(2,2) + E(4,3) = (E(4,3)-E(4,1)*E(1,3)-E(4,2)*E(2,3))/E(3,3) + E(4,4) = E(4,4)-E(4,1)*E(1,4)-E(4,2)*E(2,4)-E(4,3)*E(3,4) + ! invert L + E(4,3) = -E(4,3) + E(4,2) = -E(4,2)-E(4,3)*E(3,2) + E(4,1) = -E(4,1)-E(4,2)*E(2,1)-E(4,3)*E(3,1) + E(3,2) = -E(3,2) + E(3,1) = -E(3,1)-E(3,2)*E(2,1) + E(2,1) = -E(2,1) + ! invert U + E(4,4) = 1.e+0_fp/E(4,4) + E(3,4) = -E(3,4)*E(4,4)/E(3,3) + E(3,3) = 1.e+0_fp/E(3,3) + E(2,4) = -(E(2,3)*E(3,4)+E(2,4)*E(4,4))/E(2,2) + E(2,3) = -E(2,3)*E(3,3)/E(2,2) + E(2,2) = 1.e+0_fp/E(2,2) + E(1,4) = -(E(1,2)*E(2,4)+E(1,3)*E(3,4)+E(1,4)*E(4,4))/E(1,1) + E(1,3) = -(E(1,2)*E(2,3)+E(1,3)*E(3,3))/E(1,1) + E(1,2) = -E(1,2)*E(2,2)/E(1,1) + E(1,1) = 1.e+0_fp/E(1,1) + ! multiply U-invers * L-inverse + E(1,1) = E(1,1)+E(1,2)*E(2,1)+E(1,3)*E(3,1)+E(1,4)*E(4,1) + E(1,2) = E(1,2)+E(1,3)*E(3,2)+E(1,4)*E(4,2) + E(1,3) = E(1,3)+E(1,4)*E(4,3) + E(2,1) = E(2,2)*E(2,1)+E(2,3)*E(3,1)+E(2,4)*E(4,1) + E(2,2) = E(2,2)+E(2,3)*E(3,2)+E(2,4)*E(4,2) + E(2,3) = E(2,3)+E(2,4)*E(4,3) + E(3,1) = E(3,3)*E(3,1)+E(3,4)*E(4,1) + E(3,2) = E(3,3)*E(3,2)+E(3,4)*E(4,2) + E(3,3) = E(3,3)+E(3,4)*E(4,3) + E(4,1) = E(4,4)*E(4,1) + E(4,2) = E(4,4)*E(4,2) + E(4,3) = E(4,4)*E(4,3) - ! Tangent height below current level - beam passes through twice - if (DIFF .lt. 0.0e+0_fp) then - XMU2 = sqrt(1.0e+0_fp - (1.0e+0_fp-XMU1**2)/RQ2(II)) - XL = abs(RZ2(II+1)*XMU1-RZ2(II)*XMU2) - AMF2(II,J) = 2.e+0_fp*XL/(RZ2(II+1)-RZ2(II)) - XMU1 = XMU2 + do J = 1,M_ + RR(J,L,K) = E(J,1)*H(1,L,K)+E(J,2)*H(2,L,K) & + + E(J,3)*H(3,L,K)+E(J,4)*H(4,L,K) + enddo - ! Lowest level intersected by emergent beam - else - XL = RZ2(II+1)*XMU1*2.0e+0_fp - AMF2(II,J) = XL/(RZ2(II+1)-RZ2(II)) - goto 16 - endif + ! BACK SOLUTION + do L = ND-1,1,-1 + do J = 1,M_ + RR(J,L,K) = RR(J,L,K) & + + DD(J,1,L,K)*RR(1,L+1,K) + DD(J,2,L,K)*RR(2,L+1,K) & + + DD(J,3,L,K)*RR(3,L+1,K) + DD(J,4,L,K)*RR(4,L+1,K) + enddo enddo -16 continue + ! mean J & H + do L = 1,ND,2 + FJ(L,K) = RR(1,L,K)*WT(1) + RR(2,L,K)*WT(2) & + + RR(3,L,K)*WT(3) + RR(4,L,K)*WT(4) + enddo + do L = 2,ND,2 + FJ(L,K) = RR(1,L,K)*WT(1)*EMU(1) + RR(2,L,K)*WT(2)*EMU(2) & + + RR(3,L,K)*WT(3)*EMU(3) + RR(4,L,K)*WT(4)*EMU(4) + enddo - END SUBROUTINE SPHERE2 + ! FJTOP = scaled diffuse flux out top-of-atmosphere (limit = mu0) + ! FJBOT = scaled diffuse flux onto surface: + ! ZFLUX = reflect/(1 + reflect) * mu0 * Fsolar(lower boundary) + ! SUMBX = flux from Lambert reflected I+ + SUMT = RR(1, 1,K)*WT(1)*EMU(1) + RR(2, 1,K)*WT(2)*EMU(2) & + + RR(3, 1,K)*WT(3)*EMU(3) + RR(4, 1,K)*WT(4)*EMU(4) + SUMB = RR(1,ND,K)*WT(1)*EMU(1) + RR(2,ND,K)*WT(2)*EMU(2) & + + RR(3,ND,K)*WT(3)*EMU(3) + RR(4,ND,K)*WT(4)*EMU(4) + SUMBX = 4.e+0_fp*SUMB*RFL(K)/(1.0e+0_fp + RFL(K)) + ZFLUX(K) + + FJTOP(K) = 4.e+0_fp*SUMT + FJBOT(K) = 4.e+0_fp*SUMB - SUMBX + + enddo + + END SUBROUTINE BLKSLV !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: extral +! !IROUTINE: gen_id ! -! !DESCRIPTION: Subroutine EXTRAL adds sub-layers to thick cloud/aerosol layers -! using log-spacing for sub-layers of increasing thickness ATAU. +! !DESCRIPTION: Subroutine GEN generates coefficient matrices for the block +! tri-diagonal system described in BLKSLV. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE EXTRAL (Input_Opt,State_Diag,DTAUX,L1X,L2X,NX,JXTRA,ILON,ILAT) + SUBROUTINE GEN_ID(POMEGA,FZ,ZTAU,ZFLUX,RFL,PM,PM0,B,CC,AA,A,H,C,ND) ! ! !USES: - USE Input_Opt_Mod, ONLY : OptInput - USE State_Diag_Mod, ONLY : DgnState -! +! + USE CMN_FJX_Mod, ONLY : W_, WT, EMU, M_, M2_, N_ ! ! !INPUT PARAMETERS: ! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options - INTEGER, INTENT(IN) :: L1X,L2X !index of cloud/aerosol - integer, intent(in) :: NX !Mie scattering array size - real(fp), intent(in) :: DTAUX(L1X) !cloud+3aerosol OD in each layer - integer, intent(in) :: ILON, ILAT !lon,lat index -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object -! -! !OUTPUT VARIABLES: + INTEGER, INTENT(IN) :: ND + REAL(fp), INTENT(IN) :: POMEGA(M2_,N_) + REAL(fp), INTENT(IN) :: PM(M_,M2_) + REAL(fp), INTENT(IN) :: PM0(M2_) + REAL(fp), INTENT(IN) :: ZFLUX,RFL + REAL(fp), INTENT(IN), DIMENSION(N_) :: FZ,ZTAU ! - integer, intent(out):: JXTRA(L2X+1)!number of sub-layers to be added +! !OUTPUT PARAMETERS: ! -! !REMARKS: -! DTAUX(L=1:L1X) = Optical Depth in layer L (generally 600 nm OD) -! This can be just cloud or cloud+aerosol, it is used only to set -! the number in levels to insert in each layer L -! Set for log-spacing of tau levels, increasing top-down. -! . -! N.B. the TTAU, etc calculated here are NOT used elsewhere -! . -! The log-spacing parameters have been tested for convergence and chosen -! to be within 0.5% for ranges OD=1-500, rflect=0-100%, mu0=0.1-1.0 -! use of ATAU = 1.18 and min = 0.01, gives at most +135 pts for OD=100 -! ATAU = 1.12 now recommended for more -accurate heating rates (not J's) + REAL(fp), INTENT(OUT),DIMENSION(M_,M_,N_) :: B,AA,CC + REAL(fp), INTENT(OUT),DIMENSION(M_,N_) :: A,C,H + ! ! !REVISION HISTORY: ! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 @@ -1473,3920 +1523,1353 @@ SUBROUTINE EXTRAL (Input_Opt,State_Diag,DTAUX,L1X,L2X,NX,JXTRA,ILON,ILAT) ! ! !LOCAL VARIABLES: ! - INTEGER JTOTL,I,L,L2 - REAL(fp) TTAU(L2X+1),DTAUJ, ATAU1,ATAULN,ATAUM,ATAUN1 + INTEGER I, J, K, L1,L2,LL + REAL(fp) SUM0, SUM1, SUM2, SUM3 + REAL(fp) DELTAU, D1, D2, SURFAC -#ifdef MODEL_GEOS - ! ckeller, 5/21/18 - LOGICAL :: failed - INTEGER :: N, NMAX - REAL(fp) :: ATAULOC -#endif + REAL(fp), DIMENSION(M_,M_) :: S,T,U,V,W !================================================================= - ! EXTRAL begins here! + ! GEN_ID begins here! !================================================================= -#ifdef MODEL_GEOS - ! This routine now repeats the extra layer computation with an - ! increased heating rate (ATAU) if there is an array overfloat. - ! This is repeated maximum 5 times. The diagnostics arrays - ! EXTRAL_NLEVS and EXTRAL_NITER archive the number of extra layers - ! and the number of iterations needed to converge to that solution. - ! Ideally, NITER is 1 and no adjustments to the heating rate are - ! needed (ckeller, 5/22/18). - NMAX = MAX(1,Input_Opt%FJX_EXTRAL_ITERMAX) - DO N=1,NMAX - ! local heating rate - ATAULOC = ATAU + (0.06*(N-1)) -#endif + ! upper boundary: 2nd-order terms + L1 = 1 + L2 = 2 + do I = 1,M_ + SUM0 = POMEGA(1,L1)*PM(I,1)*PM0(1) + POMEGA(3,L1)*PM(I,3)*PM0(3) & + + POMEGA(5,L1)*PM(I,5)*PM0(5) + POMEGA(7,L1)*PM(I,7)*PM0(7) + SUM2 = POMEGA(1,L2)*PM(I,1)*PM0(1) + POMEGA(3,L2)*PM(I,3)*PM0(3) & + + POMEGA(5,L2)*PM(I,5)*PM0(5) + POMEGA(7,L2)*PM(I,7)*PM0(7) + SUM1 = POMEGA(2,L1)*PM(I,2)*PM0(2) + POMEGA(4,L1)*PM(I,4)*PM0(4) & + + POMEGA(6,L1)*PM(I,6)*PM0(6) + POMEGA(8,L1)*PM(I,8)*PM0(8) + SUM3 = POMEGA(2,L2)*PM(I,2)*PM0(2) + POMEGA(4,L2)*PM(I,4)*PM0(4) & + + POMEGA(6,L2)*PM(I,6)*PM0(6) + POMEGA(8,L2)*PM(I,8)*PM0(8) + H(I,L1) = 0.5e+0_fp*(SUM0*FZ(L1) + SUM2*FZ(L2)) + A(I,L1) = 0.5e+0_fp*(SUM1*FZ(L1) + SUM3*FZ(L2)) + enddo - ! Reinitialize arrays - TTAU(:) = 0.e+0_fp - JXTRA(:) = 0 + do I = 1,M_ + do J = 1,I + SUM0 = POMEGA(1,L1)*PM(I,1)*PM(J,1) + POMEGA(3,L1)*PM(I,3)*PM(J,3) & + + POMEGA(5,L1)*PM(I,5)*PM(J,5) + POMEGA(7,L1)*PM(I,7)*PM(J,7) + SUM2 = POMEGA(1,L2)*PM(I,1)*PM(J,1) + POMEGA(3,L2)*PM(I,3)*PM(J,3) & + + POMEGA(5,L2)*PM(I,5)*PM(J,5) + POMEGA(7,L2)*PM(I,7)*PM(J,7) + SUM1 = POMEGA(2,L1)*PM(I,2)*PM(J,2) + POMEGA(4,L1)*PM(I,4)*PM(J,4) & + + POMEGA(6,L1)*PM(I,6)*PM(J,6) + POMEGA(8,L1)*PM(I,8)*PM(J,8) + SUM3 = POMEGA(2,L2)*PM(I,2)*PM(J,2) + POMEGA(4,L2)*PM(I,4)*PM(J,4) & + + POMEGA(6,L2)*PM(I,6)*PM(J,6) + POMEGA(8,L2)*PM(I,8)*PM(J,8) + S(I,J) = - SUM2*WT(J) + S(J,I) = - SUM2*WT(I) + T(I,J) = - SUM1*WT(J) + T(J,I) = - SUM1*WT(I) + V(I,J) = - SUM3*WT(J) + V(J,I) = - SUM3*WT(I) + B(I,J,L1) = - 0.5e+0_fp*(SUM0 + SUM2)*WT(J) + B(J,I,L1) = - 0.5e+0_fp*(SUM0 + SUM2)*WT(I) + enddo + enddo - ! combine these edge- and mid-layer points into grid of size: - ! L2X+1 = 2*L1X+1 = 2*L_+3 - ! calculate column optical depths above each level, TTAU(1:L2X+1) - ! note that TTAU(L2X+1)=0 and TTAU(1)=total OD - ! - ! Divide thick layers to achieve better accuracy in the scattering code - ! In the original fast-J, equal sub-layers were chosen, this is wasteful - ! and this new code (ver 5.3) uses log-scale: - ! Each succesive layer (down) increase thickness by ATAU > 1 - ! e.g., if ATAU = 2, a layer with OD = 15 could be divided into - ! 4 sub-layers with ODs = 1 - 2 - 4 - 8 - ! The key parameters are: - ! ATAU = factor increase from one layer to the next - ! ATAUMN = the smallest OD layer desired - ! JTAUMX = maximum number of divisions (i.e., may not get to ATAUMN) - ! These are set in CMN_FJX_MOD, and have been tested/optimized + do I = 1,M_ + S(I,I) = S(I,I) + 1.0e+0_fp + T(I,I) = T(I,I) + 1.0e+0_fp + V(I,I) = V(I,I) + 1.0e+0_fp + B(I,I,L1)= B(I,I,L1) + 1.0e+0_fp -#if defined( MODEL_GEOS ) - ATAU1 = ATAULOC - 1.e+0_fp - ATAULN = log(ATAULOC) -#else - ATAU1 = ATAU - 1.e+0_fp - ATAULN = log(ATAU) -#endif - TTAU(L2X+1) = 0.0e+0_fp + C(I,L1)= S(I,1)*A(1,L1)/EMU(1) + S(I,2)*A(2,L1)/EMU(2) & + + S(I,3)*A(3,L1)/EMU(3) + S(I,4)*A(4,L1)/EMU(4) + enddo - do L2 = L2X,1,-1 - L = (L2+1)/2 - DTAUJ = 0.5e+0_fp * DTAUX(L) - TTAU(L2) = TTAU(L2+1) + DTAUJ - ! Now compute the number of log-spaced sub-layers to be added in - ! the interval TTAU(L2) > TTAU(L2+1) - ! The objective is to have successive TAU-layers increasing by factor - ! ATAU >1 the number of sub-layers + 1 - if (TTAU(L2) .lt. ATAU0) then - JXTRA(L2) = 0 - else - ATAUM = max(ATAU0, TTAU(L2+1)) - ATAUN1 = log(TTAU(L2)/ATAUM) / ATAULN - JXTRA(L2) = min(JTAUMX, max(0, int(ATAUN1 - 0.5e+0_fp))) - endif + do I = 1,M_ + do J = 1,M_ + W(J,I) = S(J,1)*T(1,I)/EMU(1) + S(J,2)*T(2,I)/EMU(2) & + + S(J,3)*T(3,I)/EMU(3) + S(J,4)*T(4,I)/EMU(4) + U(J,I) = S(J,1)*V(1,I)/EMU(1) + S(J,2)*V(2,I)/EMU(2) & + + S(J,3)*V(3,I)/EMU(3) + S(J,4)*V(4,I)/EMU(4) + enddo + enddo + ! upper boundary, 2nd-order, C-matrix is full (CC) + DELTAU = ZTAU(L2) - ZTAU(L1) + D2 = 0.25e+0_fp*DELTAU + do I = 1,M_ + do J = 1,M_ + B(I,J,L1) = B(I,J,L1) + D2*W(I,J) + CC(I,J,L1) = D2*U(I,J) enddo + H(I,L1) = H(I,L1) + 2.0e+0_fp*D2*C(I,L1) + A(I,L1) = 0.0e+0_fp + enddo + do I = 1,M_ + D1 = EMU(I)/DELTAU + B(I,I,L1) = B(I,I,L1) + D1 + CC(I,I,L1) = CC(I,I,L1) - D1 + enddo - ! check on overflow of arrays, cut off JXTRA at lower L if too many - ! levels -#ifdef MODEL_GEOS - failed = .FALSE. - JTOTL = L2X + 2 - do L2 = L2X,1,-1 - JTOTL = JTOTL + JXTRA(L2) - if (JTOTL .gt. NX/2) then - failed = .TRUE. - exit - endif + ! intermediate points: can be even or odd, A & C diagonal + ! mid-layer h-points, Legendre terms 2,4,6,8 + do LL=2,ND-1,2 + DELTAU = ZTAU(LL+1) - ZTAU(LL-1) + do I = 1,M_ + A(I,LL) = EMU(I)/DELTAU + C(I,LL) = -A(I,LL) + H(I,LL) = FZ(LL)*( & + POMEGA(2,LL)*PM(I,2)*PM0(2) + POMEGA(4,LL)*PM(I,4)*PM0(4) & + + POMEGA(6,LL)*PM(I,6)*PM0(6) + POMEGA(8,LL)*PM(I,8)*PM0(8)) + enddo + do I = 1,M_ + do J=1,I + SUM0 = POMEGA(2,LL)*PM(I,2)*PM(J,2) + POMEGA(4,LL)*PM(I,4)*PM(J,4) & + + POMEGA(6,LL)*PM(I,6)*PM(J,6) + POMEGA(8,LL)*PM(I,8)*PM(J,8) + B(I,J,LL) = - SUM0*WT(J) + B(J,I,LL) = - SUM0*WT(I) + enddo + enddo + do I = 1,M_ + B(I,I,LL) = B(I,I,LL) + 1.0e+0_fp enddo - - ! exit loop if not failed - if ( .not. failed ) exit enddo - ! print error and cut off JXTRAL at lower L if too many levels - if ( failed ) then - IF ( Input_Opt%FJX_EXTRAL_ERR ) THEN - write(6,'(A,7I5)') 'N_/L2_/L2-cutoff JXTRA:',ILON,ILAT,NX,L2X,L2,JXTRA(L2),JTOTL - ENDIF - do L = L2,1,-1 - JXTRA(L) = 0 + ! odd-layer j-points, Legendre terms 1,3,5,7 + do LL=3,ND-2,2 + DELTAU = ZTAU(LL+1) - ZTAU(LL-1) + do I = 1,M_ + A(I,LL) = EMU(I)/DELTAU + C(I,LL) = -A(I,LL) + H(I,LL) = FZ(LL)*( & + POMEGA(1,LL)*PM(I,1)*PM0(1) + POMEGA(3,LL)*PM(I,3)*PM0(3) & + + POMEGA(5,LL)*PM(I,5)*PM0(5) + POMEGA(7,LL)*PM(I,7)*PM0(7)) enddo - !go to 10 - endif - !enddo - !10 continue + do I = 1,M_ + do J=1,I + SUM0 = POMEGA(1,LL)*PM(I,1)*PM(J,1) + POMEGA(3,LL)*PM(I,3)*PM(J,3) & + + POMEGA(5,LL)*PM(I,5)*PM(J,5) + POMEGA(7,LL)*PM(I,7)*PM(J,7) + B(I,J,LL) = - SUM0*WT(J) + B(J,I,LL) = - SUM0*WT(I) + enddo + enddo + do I = 1,M_ + B(I,I,LL) = B(I,I,LL) + 1.0e+0_fp + enddo + enddo - ! Fill diagnostics arrays - IF ( State_Diag%Archive_EXTRALNLEVS ) THEN - State_Diag%EXTRALNLEVS(ILON,ILAT) = SUM(JXTRA(:)) - ENDIF - IF ( State_Diag%Archive_EXTRALNITER ) THEN - State_Diag%EXTRALNITER(ILON,ILAT) = N - ENDIF -#else - JTOTL = L2X + 2 - do L2 = L2X,1,-1 - JTOTL = JTOTL + JXTRA(L2) - if (JTOTL .gt. NX/2) then - write(6,'(A,7I5)') 'N_/L2_/L2-cutoff JXTRA:',ILON,ILAT,NX,L2X,L2,JXTRA(L2),JTOTL - do L = L2,1,-1 - JXTRA(L) = 0 - enddo - go to 10 - endif - enddo -10 continue -#endif - - END SUBROUTINE EXTRAL -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: exitc -! -! !DESCRIPTION: Subroutine EXITC forces an error in GEOS-Chem and quits. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE EXITC (T_EXIT) -! -! !USES: -! - USE ERROR_MOD, ONLY : ERROR_STOP -! -! !INPUT PARAMETERS: -! - CHARACTER(LEN=*), INTENT(IN) :: T_EXIT -! -! !REVISION HISTORY: -! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - CALL ERROR_STOP( T_EXIT, 'fast_jx_mod.F90' ) - - END SUBROUTINE EXITC -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: int_fjx -! -! !DESCRIPTION: Subroutine INIT\_FJX initializes Fast-JX variables. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE INIT_FJX( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE inquireMod, ONLY : findFreeLUN - USE State_Chm_Mod, ONLY : ChmState - USE State_Chm_Mod, ONLY : Ind_ - USE State_Diag_Mod, ONLY : DgnState - USE State_Grid_Mod, ONLY : GrdState -#if defined( MODEL_CESM ) - USE UNITS, ONLY : freeUnit -#endif - -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object - TYPE(DgnState), INTENT(IN) :: State_Diag ! Diagnostics State object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - LOGICAL :: notDryRun - INTEGER :: JXUNIT, J, NJXX, PhotoId - REAL(fp) :: ND64MULT - - ! Strings - CHARACTER(LEN=6) :: TITLEJXX(JVN_) - CHARACTER(LEN=255) :: DATA_DIR - CHARACTER(LEN=255) :: FILENAME - CHARACTER(LEN=255) :: ErrMsg, ThisLoc - - !================================================================= - ! INIT_FJX begins here! - !================================================================= - - ! Initialize - RC = GC_SUCCESS - notDryRun = ( .not. Input_Opt%DryRun ) - ErrMsg = '' - ThisLoc = ' -> at Init_FJX (in module GeosCore/fast_jx_mod.F90)' - - ! Skip these opterations when running in dry-run mode - IF ( notDryRun ) THEN - - ! Define species IDs - id_CH2IBr = IND_('CH2IBr' ) - id_IBr = IND_('IBr' ) - id_CH2ICl = IND_('CH2ICl' ) - id_ICl = IND_('ICl' ) - id_I2 = IND_('I2' ) - id_HOI = IND_('HOI' ) - id_IO = IND_('IO' ) - id_OIO = IND_('OIO' ) - id_INO = IND_('INO' ) - id_IONO = IND_('IONO' ) - id_IONO2 = IND_('IONO2' ) - id_I2O2 = IND_('I2O2' ) - id_CH3I = IND_('CH3i' ) - id_CH2I2 = IND_('CH2I2' ) - id_I2O4 = IND_('I2O4' ) - id_I2O3 = IND_('I2O3' ) - - ! Print info - IF ( Input_Opt%amIRoot ) THEN - write(6,*) ' Initializing Fast-JX v7.0 standalone CTM code.' - - if (W_.ne.8 .and. W_.ne.12 .and. W_.ne.18) then - ErrMsg = ' INIT_FJX: invalid no. wavelengths' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - endif - ENDIF - -#if defined( MODEL_CESM ) - IF ( Input_Opt%amIRoot ) THEN - JXUNIT = findFreeLUN() - ELSE - JXUNIT = 0 - ENDIF -#else - ! Get a free LUN - JXUNIT = findFreeLUN() -#endif - - ENDIF - - ! Define data directory for FAST-JX input - DATA_DIR = TRIM( Input_Opt%FAST_JX_DIR ) - - !===================================================================== - ! Read in fast-J X-sections (spectral data) - !===================================================================== - FILENAME = TRIM( DATA_DIR ) // 'FJX_spec.dat' - - ! Read file, or just print filename if we are in dry-run mode - CALL RD_XXX( JXUNIT, TRIM( FILENAME ), Input_Opt, RC) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in FAST-JX routine "RD_XXX"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ! Compute factors for UV flux diagnostics - IF ( notDryRun ) THEN - IF ( State_Diag%Archive_UVFluxNet .or. & - State_Diag%Archive_UVFluxDirect .or. & - State_Diag%Archive_UVFluxDiffuse ) THEN - UVXFACTOR = 0e+0_fp - ND64MULT = UVXPLANCK*UVXCCONST*1.0e+13_fp - DO J = 1, W_ - UVXFACTOR(J) = ND64MULT/WL(J) - ENDDO - ENDIF - ENDIF - - !===================================================================== - ! Read in 5-wavelength scattering data - ! (or just print file name if in dry-run mode) - !===================================================================== - FILENAME = TRIM( DATA_DIR ) // 'jv_spec_mie.dat' - - ! Read data - CALL RD_MIE( JXUNIT, TRIM( FILENAME ), Input_Opt, RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in FAST-JX routine "RD_MIE"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - !===================================================================== - ! Read in AOD data - ! (or just print file name if in dry-run mode) - !===================================================================== - CALL RD_AOD( JXUNIT, Input_Opt, RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in FAST-JX routine "RD_AOD"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ! Set up MIEDX array to interpret between GC and FJX aerosol indexing - IF ( notDryRun ) THEN - CALL SET_AER( Input_Opt ) - ENDIF - - !===================================================================== - ! Read in T & O3 climatology used to fill e.g. upper layers - ! or if O3 not calc. - !===================================================================== - CALL RD_PROF_NC( Input_Opt, RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Rd_Prof_Nc"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ! Skip if not in dry-run mode - IF ( notDryRun ) THEN - NJXX = NJX - do J = 1,NJX - TITLEJXX(J) = TITLEJX(J) - enddo - ENDIF - - !===================================================================== - ! Read in photolysis rates used in chemistry code and mapping onto - ! FJX J's CTM call: read in J-values names and link to fast-JX names - !===================================================================== - FILENAME = TRIM( DATA_DIR ) // 'FJX_j2j.dat' - - ! Read mapping information - CALL RD_JS_JX( JXUNIT, TRIM( FILENAME ), TITLEJXX, NJXX, & - Input_Opt, RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Rd_Js_Jx"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ! Skip further processing if we are in dry-run mode - IF ( notDryRun ) THEN - - ! Get the GEOS-Chem photolysis index for each of the 1...JVN_ entries - ! in the FJX_j2j.dat file. We'll use this for the diagnostics. - DO J = 1, JVN_ - - IF ( J == Rxn_O3_2 ) THEN - - !------------------------------------------------------------ - ! O3 + hv = O + O(1D) - ! - ! Save this as JO3_O1D in the nPhotol+1 slot - !------------------------------------------------------------ - GC_Photo_Id(J) = State_Chm%nPhotol + 1 - - ELSE IF ( J == Rxn_O3_1 ) THEN - - !------------------------------------------------------------ - ! O3 + hv -> O + O - ! - ! Save this as JO3_O3P in the nPhotol+2 slot - !------------------------------------------------------------- - GC_Photo_Id(J) = State_Chm%nPhotol + 2 - - ELSE - - !------------------------------------------------------------ - ! Everything else - ! - ! Find the matching GEOS-Chem photolysis species number - !------------------------------------------------------------ - GC_Photo_Id(J) = Ind_( RNAMES(J), 'P' ) - - ENDIF - - ! Print the mapping - IF ( Input_Opt%amIRoot ) THEN - IF ( GC_Photo_Id(J) > 0 ) THEN - WRITE(6, 200) RNAMES(J), J, GC_Photo_Id(J), JFACTA(J) -200 FORMAT( a10, ':', i7, 2x, i7, 2x, f7.4 ) - ENDIF - ENDIF - ENDDO - -#if defined( MODEL_CESM ) - IF ( Input_Opt%amIRoot ) THEN - CALL freeUnit(JXUnit) - ENDIF -#endif - - ENDIF - - END SUBROUTINE INIT_FJX -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: rd_xxx -! -! !DESCRIPTION: Subroutine RD\_XXX reads in wavelength bins, solar fluxes, -! Rayleigh and temperature-dependent cross-sections. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE RD_XXX ( NUN, NAMFIL, Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: NUN - CHARACTER(*), INTENT(IN) :: NAMFIL - TYPE(OptInput), INTENT(IN) :: Input_Opt -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC -! -! !REMARKS: -! NEW v-6.8 now allow 1 to 3 sets of X-sects for T or P -! LQQ = 1, 2, or 3 to determine interpolation with T or P -! IF the temperatures TQQQ are <0, then use as pressure interp (hPa) -! NB - the temperatures and pressures must be increasing -! NEW v-6.4 changed to collapse wavelengths & x-sections to Trop-only: -! WX_ = 18 should match the JX_spec.dat wavelengths -! W_ = 12 (Trop-only) or 18 (std) is set in (CMN_FJX.F). -! if W_=12 then drop strat wavels, and drop x-sects (e.g. N2O, ...) -! W_ = 8, reverts to quick fix: fast-J (12-18) plus bin (5) scaled -! . -! -------------------------------------------------------------------- -! NAMFIL Name of spectral data file (FJX_spec.dat) >> j2 for fast-J2 -! NUN Channel number for reading data file -! -! NJX Number of species to calculate J-values for -! NWWW Number of wavelength bins, from 1:NWWW -! WBIN Boundaries of wavelength bins -! WL Centres of wavelength bins - 'effective wavelength' -! FL Solar flux incident on top of atmosphere (cm-2.s-1) -! QRAYL Rayleigh parameters (effective cross-section) (cm2) -! QO2 O2 cross-sections -! QO3 O3 cross-sections -! Q1D O3 => O(1D) quantum yield -! TQQ Temperature for supplied cross sections -! QQQ Supplied cross sections in each wavelength bin (cm2) -! -------------------------------------------------------------------- -! -! !REVISION HISTORY: -! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - LOGICAL :: FileExists - INTEGER :: I, J, JJ, K, IW, NQRD, NWWW, LQ - REAL(fp) :: TQQ2 - - ! Arrays - REAL(fp) :: QQ2(199) - - ! Strings - CHARACTER(LEN=255) :: FileMsg, FileStatus - CHARACTER(LEN=255) :: ErrMsg, ThisLoc - CHARACTER(LEN=78) :: TITLE0 - CHARACTER(LEN=6 ) :: TITLEJ2, TITLEJ3 - CHARACTER(LEN=1 ) :: TSTRAT - - !================================================================= - ! In dry-run mode, print file path to dryrun log and exit. - ! Otherwise, print file path to stdout and continue. - !================================================================= - - ! Initialize - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = '-> at RD_XXX (in module GeosCore/fast_jx_mod.F)' - - ! Test if the file exists - INQUIRE( FILE=TRIM( NamFil ), EXIST=FileExists ) - - ! Test if the file exists and define an output string - IF ( FileExists ) THEN - FileMsg = 'FAST-JX (RD_XXX): Opening' - ELSE - FileMsg = 'FAST-JX (RD_XXX): REQUIRED FILE NOT FOUND' - ENDIF - - ! Write to stdout for both regular and dry-run simulations - IF ( Input_Opt%AmIRoot ) THEN - WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( NamFil ) -300 FORMAT( a, ' ', a ) - ENDIF - - ! For dry-run simulations, return to calling program. - ! For regular simulations, throw an error if we can't find the file. - IF ( Input_Opt%DryRun ) THEN - RETURN - ELSE - IF ( .not. FileExists ) THEN - WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( NamFil ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - - !================================================================= - ! RD_XXX begins here! - !================================================================= - - ! Initialization - TQQ(:,:) = 0.e+0_fp - - ! -------spectral data----set for new format data------------------ - ! note that X_ = max # Xsects read in - ! NJX = # fast-JX J-values derived from this (.le. X_) - - ! >>>> W_ = 12 <<<< means trop-only, discard WL #1-4 and #9-10, some X-sects - -#if defined( MODEL_CESM ) - ! Only read file on root thread if using CESM - IF ( Input_Opt%amIRoot ) THEN -#endif - - ! Open file - open (NUN,FILE=NAMFIL,status='old',form='formatted') - read (NUN,100) TITLE0 - - ! -note that NQRD is not used any more, a read until 'endofJ' is performed - read (NUN,101) NQRD,NWWW - NW1 = 1 - NW2 = NWWW - IF ( Input_Opt%AmIRoot ) THEN - write(6,'(1x,a)') TITLE0 - write(6,'(i8)') NWWW - ENDIF - ! -J-values: 1=O2, 2=O3P,3=O3D 4=readin Xsects - read (NUN,102) (WL(IW),IW=1,NWWW) - read (NUN,102) (FL(IW),IW=1,NWWW) - read (NUN,102) (QRAYL(IW),IW=1,NWWW) - - ! Read O2 X-sects, O3 X-sects, O3=>O(1D) quant yields (each at 3 temps) - ! NB the O3 and q-O3-O1D are at different temperatures and cannot be combined - read (NUN,103) TITLEJX(1),TQQ(1,1), (QO2(IW,1),IW=1,NWWW) - read (NUN,103) TITLEJ2, TQQ(2,1), (QO2(IW,2),IW=1,NWWW) - read (NUN,103) TITLEJ3, TQQ(3,1), (QO2(IW,3),IW=1,NWWW) - - read (NUN,103) TITLEJX(2),TQQ(1,2), (QO3(IW,1),IW=1,NWWW) - read (NUN,103) TITLEJ2, TQQ(2,2), (QO3(IW,2),IW=1,NWWW) - read (NUN,103) TITLEJ3, TQQ(3,2), (QO3(IW,3),IW=1,NWWW) - - read (NUN,103) TITLEJX(3),TQQ(1,3), (Q1D(IW,1),IW=1,NWWW) - read (NUN,103) TITLEJ2, TQQ(2,3), (Q1D(IW,2),IW=1,NWWW) - read (NUN,103) TITLEJ3, TQQ(3,3), (Q1D(IW,3),IW=1,NWWW) - - SQQ(1) = ' ' - SQQ(2) = ' ' - SQQ(3) = ' ' - - LQQ(1) = 3 - LQQ(2) = 3 - LQQ(3) = 3 - - ! Read remaining species: X-sections at 1-2-3 T_s - JJ = 3 - do I=1,9999 - - ! try to read in 3 X-sects per J-value (JJ) - read (NUN,104) TITLEJ2,TSTRAT,TQQ2,(QQ2(IW),IW=1,NWWW) - if (TITLEJ2 .eq. 'endofJ') goto 1 - - ! skip stratosphere only J's (denoted by 'x')if W_<18 => trop-only J's - if (W_.eq.18 .or. TSTRAT.ne.'x') then - if (TITLEJ2 .ne. TITLEJX(JJ)) then - JJ = JJ+1 - - if (JJ .gt. X_) then - call EXITC(' RD_XXX: X_ not large enough for Xsects read in') - endif - - TITLEJX(JJ) = TITLEJ2 - LQQ(JJ) = 1 - SQQ(JJ) = TSTRAT - LQ = LQQ(JJ) - TQQ(LQ,JJ) = TQQ2 - do IW = 1,NWWW - QQQ(IW,LQ,JJ) = QQ2(IW) - enddo - else - LQQ(JJ) = LQQ(JJ)+1 - if (LQQ(JJ) .le. 3) then - LQ = LQQ(JJ) - TQQ(LQ,JJ) = TQQ2 - do IW = 1,NWWW - QQQ(IW,LQ,JJ) = QQ2(IW) - enddo - endif - endif - endif - enddo -1 continue - NJX = JJ - - do J = 1,NJX - if ( Input_Opt%AmIRoot ) then - write(6,200) J,TITLEJX(J),SQQ(J),LQQ(J),(TQQ(I,J),I=1,LQQ(J)) - endif - ! need to check that TQQ is monotonically increasing: - if (LQQ(J) .eq. 3) then - if (TQQ(2,J) .ge. TQQ(3,J)) then - call EXITC ('TQQ out of order') - endif - if (TQQ(1,J) .ge. TQQ(2,J)) then - call EXITC ('TQQ out of order') - endif - endif - if (LQQ(J) .eq. 2) then - if (TQQ(1,J) .ge. TQQ(2,J)) then - call EXITC ('TQQ out of order') - endif - endif - enddo - - ! check on doingpressure interp - ! check on consolidating Qo2 and others into - ! wrte a newFJX_J2J.dat for mapping on fjx Xsects - - ! truncate number of wavelengths to do troposphere-only - if (W_ .ne. WX_) then - ! TROP-ONLY - if (W_ .eq. 12) then - if ( Input_Opt%AmIRoot ) then - write(6,'(a)') & - ' >>>TROP-ONLY reduce wavelengths to 12, drop strat X-sects' - endif - NW2 = 12 - do IW = 1,4 - WL(IW) = WL(IW+4) - FL(IW) = FL(IW+4) - QRAYL(IW) = QRAYL(IW+4) - do K = 1,3 - QO2(IW,K) = QO2(IW+4,K) - QO3(IW,K) = QO3(IW+4,K) - Q1D(IW,K) = Q1D(IW+4,K) - enddo - do J = 4,NJX - do LQ=1,LQQ(J) - QQQ(IW,LQ,J) = QQQ(IW+4,LQ,J) - enddo - enddo - enddo - do IW = 5,12 - WL(IW) = WL(IW+6) - FL(IW) = FL(IW+6) - QRAYL(IW) = QRAYL(IW+6) - do K = 1,3 - QO2(IW,K) = QO2(IW+6,K) - QO3(IW,K) = QO3(IW+6,K) - Q1D(IW,K) = Q1D(IW+6,K) - enddo - do J = 4,NJX - do LQ=1,LQQ(J) - QQQ(IW,LQ,J) = QQQ(IW+6,LQ,J) - enddo - enddo - enddo - ! TROP-QUICK (must scale solar flux for W=5) - elseif (W_ .eq. 8) then - if ( Input_Opt%amIRoot ) then - write(6,'(a)') & - ' >>>TROP-QUICK reduce wavelengths to 8, drop strat X-sects' - endif - NW2 = 8 - do IW = 1,1 - WL(IW) = WL(IW+4) - FL(IW) = FL(IW+4) * 2.e+0_fp - QRAYL(IW) = QRAYL(IW+4) - do K = 1,3 - QO2(IW,K) = QO2(IW+4,K) - QO3(IW,K) = QO3(IW+4,K) - Q1D(IW,K) = Q1D(IW+4,K) - enddo - do J = 4,NJX - do LQ=1,LQQ(J) - QQQ(IW,LQ,J) = QQQ(IW+4,LQ,J) - enddo - enddo - enddo - do IW = 2,8 - WL(IW) = WL(IW+10) - FL(IW) = FL(IW+10) - QRAYL(IW) = QRAYL(IW+10) - do K = 1,3 - QO2(IW,K) = QO2(IW+10,K) - QO3(IW,K) = QO3(IW+10,K) - Q1D(IW,K) = Q1D(IW+10,K) - enddo - do J = 4,NJX - do LQ=1,LQQ(J) - QQQ(IW,LQ,J) = QQQ(IW+10,LQ,J) - enddo - enddo - enddo - - else - call EXITC(' no. wavelengths wrong: W_ .ne. 8,12,18') - endif - endif - - close(NUN) - -#if defined( MODEL_CESM ) - ENDIF - -#if defined( SPMD ) - CALL MPIBCAST( NJX, 1, MPIR8, 0, MPICOM ) - CALL MPIBCAST( NW1, 1, MPIR8, 0, MPICOM ) - CALL MPIBCAST( NW2, 1, MPIR8, 0, MPICOM ) - CALL MPIBCAST( WBIN, Size(WBIN), MPIR8, 0, MPICOM ) - CALL MPIBCAST( WL, Size(WL), MPIR8, 0, MPICOM ) - CALL MPIBCAST( FL, Size(FL), MPIR8, 0, MPICOM ) - CALL MPIBCAST( QO2, Size(QO2), MPIR8, 0, MPICOM ) - CALL MPIBCAST( QO3, Size(QO3), MPIR8, 0, MPICOM ) - CALL MPIBCAST( Q1D, Size(Q1D), MPIR8, 0, MPICOM ) - CALL MPIBCAST( QQQ, Size(QQQ), MPIR8, 0, MPICOM ) - CALL MPIBCAST( QRAYL, Size(QRAYL), MPIR8, 0, MPICOM ) - CALL MPIBCAST( TQQ, Size(TQQ), MPIR8, 0, MPICOM ) - CALL MPIBCAST( LQQ, Size(LQQ), MPIINT, 0, MPICOM ) - CALL MPIBCAST( TITLEJX, X_*6, MPICHAR, 0, MPICOM ) - CALL MPIBCAST( SQQ, X_*1, MPICHAR, 0, MPICOM ) -#endif -#endif - -100 format(a) -101 format(10x,5i5) -102 format(10x, 6e10.3/(10x,6e10.3)/(10x,6e10.3)) -103 format(a6,1x,f3.0,6e10.3/(10x,6e10.3)/(10x,6e10.3)) -104 format(a6,a1,f3.0,6e10.3/(10x,6e10.3)/(10x,6e10.3)) -200 format(1x,' x-sect:',i3,a10,a4,i5,3(3x,f6.2)) -201 format(' Number of x-sections supplied to Fast-J2: ',i3,/, & - ' Maximum number allowed (X_) only set to: ',i3, & - ' - increase in cmn_FJX.f') - - END SUBROUTINE RD_XXX -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: rd_mie -! -! !DESCRIPTION: Subroutine RD\_MIE retrieves aerosol scattering data for FJX. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE RD_MIE( NUN, NAMFIL, Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: NUN ! Logical unit # - CHARACTER(*), INTENT(IN) :: NAMFIL ! File name - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REMARKS: -! -------------------------------------------------------------------- -! NAMFIL Name of scattering data file (e.g., FJX_scat.dat) -! NUN Channel number for reading data file -! NAA Number of categories for scattering phase functions -! QAA Aerosol scattering phase functions -! WAA 5 Wavelengths for the supplied phase functions -! PAA Phase function: first 8 terms of expansion -! RAA Effective radius associated with aerosol type -! SAA Single scattering albedo -! -------------------------------------------------------------------- -! -! !REVISION HISTORY: -! 28 Mar 2013 - S. D. Eastham - Adapted from GEOS-Chem v9-1-3 -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - INTEGER :: I, J, K, NK - LOGICAL :: LBRC, FileExists - - ! Strings - CHARACTER(LEN=78 ) :: TITLE0 - CHARACTER(LEN=255) :: FileMsg, ErrMsg, ThisLoc - - !================================================================= - ! In dry-run mode, print file path to dryrun log and exit. - ! Otherwise, print file path to stdout and continue. - !================================================================= - - ! Assume success - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at RD_MIE (in module GeosCore/fast_jx_mod.F90)' - - ! Test if the file exists - INQUIRE( FILE=TRIM( NamFil ), EXIST=FileExists ) - - ! Test if the file exists and define an output string - IF ( FileExists ) THEN - FileMsg = 'FAST-JX (RD_MIE): Opening' - ELSE - FileMsg = 'FAST-JX (RD_MIE): REQUIRED FILE NOT FOUND' - ENDIF - - ! Write to stdout for both regular and dry-run simulations - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( NamFil ) -300 FORMAT( a, ' ', a ) - ENDIF - - ! For dry-run simulations, return to calling program - ! For regular simulations, throw an error if we can't find the file. - IF ( Input_Opt%DryRun ) THEN - RETURN - ELSE - IF ( .not. FileExists ) THEN - WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( NamFil ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - - !================================================================= - ! RD_MIE begins here -- read data from file - !================================================================= - - ! Copy fields from Input_Opt - LBRC = Input_Opt%LBRC - -#if defined( MODEL_CESM ) - ! Only read file on root thread if using CESM - IF ( Input_Opt%amIRoot ) THEN -#endif - - ! Open file - open (NUN,FILE=NAMFIL,status='old',form='formatted') - - ! Read header lines - READ( NUN,'(A)' ) TITLE0 - IF ( Input_Opt%AmIRoot ) WRITE( 6, '(1X,A)' ) TITLE0 - READ( NUN,'(A)' ) TITLE0 - - !---Read aerosol phase functions: - read(NUN,'(A10,I5,/)') TITLE0,NAA - - NK=5 - do j=1,NAA - read(NUN,110) TITLEAA(j) - do k=1,NK - read(NUN,*) WAA(k,j),QAA(k,j),RAA(k,j),SAA(k,j), & - (PAA(i,k,j),i=1,8) - enddo - enddo - - ! Brown carbon option - IF (LBRC) THEN - - ! Overwrite OC entries (36-42 in jv_spec_mie.dat) - ! with BR entries at end of file (labeled 57-63) - do j= 36, 42 - read(NUN,110) TITLEAA(j) - do k=1,NK - read(NUN,*) WAA(k,j),QAA(k,j),RAA(k,j),SAA(k,j), & - (PAA(i,k,j),i=1,8) - enddo - enddo - - ENDIF - - close(NUN) - -#if defined( MODEL_CESM ) - ENDIF - -#if defined( SPMD ) - CALL MPIBCAST( QAA, Size(QAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( WAA, Size(WAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( PAA, Size(PAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( RAA, Size(RAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( SAA, Size(SAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( NAA, 1, MPIINT, 0, MPICOM ) - CALL MPIBCAST( TITLEAA, 80*A_, MPICHAR, 0, MPICOM ) -#endif -#endif - - IF ( Input_Opt%amIRoot ) THEN - write(6,'(a,9f8.1)') ' Aerosol optical: r-eff/rho/Q(@wavel):', & - (WAA(K,1),K=1,5) - do J=1,NAA - write(6,'(1x,A)') TRIM(TITLEAA(J)) - write(6,'(3x,I2,A,9F8.1)') J,' wavel=',(WAA(K,J),K=1,NK) - write(6,'(3x,I2,A,9F8.4)') J,' Qext =',(QAA(K,J),K=1,NK) - enddo - ENDIF - -110 format(3x,a80) - - END SUBROUTINE RD_MIE -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: rd_aod -! -! !DESCRIPTION: Subroutine RD\_AOD reads aerosol phase functions that are -! used to scale diagnostic output to an arbitrary wavelengh. This -! facilitates comparing with satellite observations. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE RD_AOD( NJ1, Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: NJ1 ! Unit # of file to open - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REMARKS: -! The .dat files for each species contain the optical properties -! at multiple wavelengths to be used in the online calculation of the aerosol -! optical depth diagnostics. -! These properties have been calculated using the same size and optical -! properties as the FJX_spec.dat file used for the FAST-J photolysis -! calculations (which is now redundant for aerosols, the values in the .dat -! files here are now used). The file currently contains 11 wavelengths -! for Fast-J and other commonly used wavelengths for satellite and -! AERONET retrievals. 30 wavelengths follow that map onto RRTMG -! wavebands for radiaitive flux calculations (not used if RRTMG is off). -! A complete set of optical properties from 250-2000 nm for aerosols is -! available at: -! ftp://ftp.as.harvard.edu/geos-chem/data/aerosol_optics/hi_spectral_res -! . -! -- Colette L. Heald, 05/10/10) -! -- David A. Ridley, 05/10/13 (update for new optics files) -! -! !REVISION HISTORY: -! 10 May 2010 - C. Heald - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES -! - ! Scalars - INTEGER :: I, J, K, N - INTEGER :: IOS - LOGICAL :: LBRC, FileExists - - ! Strings - CHARACTER(LEN=78 ) :: TITLE0 - CHARACTER(LEN=255) :: DATA_DIR - CHARACTER(LEN=255) :: THISFILE - CHARACTER(LEN=255) :: FileMsg - CHARACTER(LEN=255) :: ErrMsg - CHARACTER(LEN=255) :: ThisLoc - - ! String arrays - CHARACTER(LEN=30) :: SPECFIL(8) - - !================================================================ - ! RD_AOD begins here! - !================================================================ - - ! Initialize - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at RD_AOD (in module GeosCore/fast_jx_mod.F90)' - LBRC = Input_Opt%LBRC - DATA_DIR = TRIM( Input_Opt%FAST_JX_DIR ) - - ! IMPORTANT: aerosol_mod.F and dust_mod.F expect aerosols in this order - ! - ! Treating strat sulfate with GADS data but modified to match - ! the old Fast-J values size (r=0.09um, sg=0.6) - I think there's - ! evidence that this is too smale and narrow e.g. Deshler et al. 2003 - ! NAT should really be associated with something like cirrus cloud - ! but for now we are just treating the NAT like the sulfate... limited - ! info but ref index is similar e.g. Scarchilli et al. (2005) - !(DAR 05/2015) - DATA SPECFIL /"so4.dat","soot.dat","org.dat", & - "ssa.dat","ssc.dat", & - "h2so4.dat","h2so4.dat", & - "dust.dat"/ - - ! Loop over the array of filenames - DO k = 1, NSPAA - - ! Choose different set of input files for standard (trop+strat chenm) - ! and tropchem (trop-only chem) simulations - THISFILE = TRIM( DATA_DIR ) // TRIM( SPECFIL(k) ) - - !-------------------------------------------------------------- - ! In dry-run mode, print file path to dryrun log and cycle. - ! Otherwise, print file path to stdout and continue. - !-------------------------------------------------------------- - - ! Test if the file exists - INQUIRE( FILE=TRIM( ThisFile ), EXIST=FileExists ) - - ! Test if the file exists and define an output string - IF ( FileExists ) THEN - FileMsg = 'FAST-JX (RD_AOD): Opening' - ELSE - FileMsg = 'FAST-JX (RD_AOD): REQUIRED FILE NOT FOUND' - ENDIF - - ! Write to stdout for both regular and dry-run simulations - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( ThisFile ) -300 FORMAT( a, ' ', a ) - ENDIF - - ! For dry-run simulations, cycle to next file. - ! For regular simulations, throw an error if we can't find the file. - IF ( Input_Opt%DryRun ) THEN - CYCLE - ELSE - IF ( .not. FileExists ) THEN - WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( ThisFile ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - - !-------------------------------------------------------------- - ! If not a dry-run, read data from each species file - !-------------------------------------------------------------- - -#if defined( MODEL_CESM ) - ! Only read file on root thread if using CESM - IF ( Input_Opt%amIRoot ) THEN -#endif - - ! Open file - OPEN( NJ1, FILE=TRIM( THISFILE ), STATUS='OLD', IOSTAT=RC ) - - ! Error check - IF ( RC /= 0 ) THEN - ErrMsg = 'Error opening file: ' // TRIM( ThisFile ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ! Read header lines - READ( NJ1, '(A)' ) TITLE0 - IF ( Input_Opt%amIRoot ) WRITE( 6, '(1X,A)' ) TITLE0 - - ! Second header line added for more info - READ( NJ1, '(A)' ) TITLE0 - IF ( Input_Opt%amIRoot ) WRITE( 6, '(1X,A)' ) TITLE0 - - READ( NJ1, '(A)' ) TITLE0 -110 FORMAT( 3x, a20 ) - - DO i = 1, NRAA - DO j = 1, NWVAA - - READ(NJ1,*) WVAA(j,k),RHAA(i,k),NRLAA(j,i,k),NCMAA(j,i,k), & - RDAA(i,k),RWAA(i,k),SGAA(i,k),QQAA(j,i,k), & - ALPHAA(j,i,k),REAA(i,k),SSAA(j,i,k), & - ASYMAA(j,i,k),(PHAA(j,i,k,n),n=1,8) - - ! make note of where 1000nm is for FAST-J calcs - IF (WVAA(j,k).EQ.1000.0) IWV1000=J - - ENDDO - ENDDO - - ! Close file - CLOSE( NJ1 ) - -#if defined( MODEL_CESM ) - ENDIF -#endif - - ENDDO - -#if defined( MODEL_CESM ) && defined( SPMD ) - CALL MPIBCAST( WVAA, Size(WVAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( RHAA, Size(RHAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( NRLAA, Size(NRLAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( NCMAA, Size(NCMAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( RDAA, Size(RDAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( RWAA, Size(RWAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( SGAA, Size(SGAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( QQAA, Size(QQAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( ALPHAA, Size(ALPHAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( REAA, Size(REAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( SSAA, Size(SSAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( ASYMAA, Size(ASYMAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( PHAA, Size(PHAA), MPIR8, 0, MPICOM ) - CALL MPIBCAST( IWV1000, 1, MPIINT, 0, MPICOM ) -#endif - - !================================================================= - ! Only do the following if we are not running in dry-run mode - !================================================================= - IF ( .not. Input_Opt%DryRun ) THEN - - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, * ) 'Optics read for all wavelengths successfully' - ENDIF - - ! Now calculate the required wavelengths in the LUT to calculate - ! the requested AOD - CALL CALC_AOD( Input_Opt ) - ENDIF - - END SUBROUTINE RD_AOD -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: calc_aod -! -! !DESCRIPTION: Subroutine CALC\_AOD works out the closest tie points -! in the optics LUT wavelengths and the coefficients required to -! calculate the angstrom exponent for interpolating optics to the requested -! wavelength. If the wavelength requested matches a standard wavelength -! in the LUT then we skip the interpolation (DAR 09/2013) -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE CALC_AOD( Input_Opt ) -! -! !USES: -! - USE CMN_FJX_MOD, ONLY : NWVAA, NWVAA0, WVAA - USE CMN_FJX_MOD, ONLY : IWVSELECT - USE CMN_FJX_MOD, ONLY : IRTWVSELECT - USE CMN_FJX_MOD, ONLY : ACOEF_WV, BCOEF_WV, CCOEF_WV - USE CMN_FJX_MOD, ONLY : ACOEF_RTWV, BCOEF_RTWV, CCOEF_RTWV - USE CMN_FJX_MOD, ONLY : NWVREQUIRED, IWVREQUIRED - USE CMN_FJX_MOD, ONLY : NRTWVREQUIRED, IRTWVREQUIRED - USE Input_Opt_Mod, ONLY : OptInput -#ifdef RRTMG - USE PARRRTM, ONLY : NBNDLW -#endif -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt -! -! !REMARKS: -! Now the user is able to select any 3 wavelengths for optics -! output in the geoschem_config.yml file we need to be able to interpolate -! to those wavelengths based on what is available in the optics -! look-up table. -! . -! The standard lookup table currently has values for -! 11 common wavelengths followed by 30 that are required by RRTMG. -! Only those required to interpolate to user requested -! wavelengths are selected from the standard wavelengths. RRTMG -! wavelengths are not used in the interpolation for AOD output -! (DAR 10/2013) -! . -! UPDATE: because the RT optics output doesnt have access to the -! standard wavelengths we now calculate two sets of values: one -! for the ND21 and diag3 outputs that use the standard wavelengths -! and one for RRTMG diagnostics that interpolate the optics from RRTMG -! wavelengths. Perhaps a switch needs adding to switch off the RT -! optics output (and interpolation) if this ends up costing too -! much and is not used, but it is ideal to have an optics output -! that matches exactly what RRTMG uses to calculate the fluxes -! -! !REVISION HISTORY: -! 18 Jun 2013 - D. Ridley - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES -! - INTEGER :: MINWV, MAXWV, N, N0, N1, W, NSTEP - REAL(fp) :: WVDIF - - !================================================================ - ! CALC_AOD begins here! - !================================================================ - - !cycle over standard wavelengths - N0=1 - N1=NWVAA0 - NSTEP=1 - NWVREQUIRED=0 - DO W=1,Input_Opt%NWVSELECT - MINWV = -999 - MAXWV = 999 - DO N=N0,N1,NSTEP - WVDIF = WVAA(N,1)-Input_Opt%WVSELECT(W) - IF ((WVDIF.LE.0).AND.(WVDIF.GT.MINWV)) THEN - MINWV = WVDIF - IWVSELECT(1,W)=N - ENDIF - IF ((WVDIF.GE.0).AND.(WVDIF.LT.MAXWV)) THEN - MAXWV = WVDIF - IWVSELECT(2,W)=N - ENDIF - ENDDO - IF (IWVSELECT(2,W).EQ.IWVSELECT(1,W)) THEN - !we have a match! - MINWV=0 - MAXWV=0 - !add this wavelength to those for output - NWVREQUIRED=NWVREQUIRED+1 - IWVREQUIRED(NWVREQUIRED)=IWVSELECT(1,W) - ELSE - !we are going to have to interpolate to the requested wavelength - NWVREQUIRED=NWVREQUIRED+1 - IWVREQUIRED(NWVREQUIRED)=IWVSELECT(1,W) - NWVREQUIRED=NWVREQUIRED+1 - IWVREQUIRED(NWVREQUIRED)=IWVSELECT(2,W) - ENDIF - - !Error check - ensure we have a match or requested wavelength - !falls within two LUT tie points - IF (MINWV.EQ.-999) THEN - ! requested wavelength is shorter than min wv in LUT - ! set to min - write(6,*) 'ERROR requested wavelength is too short!!' - write(6,*) 'Defaulting to LUT min: ',WVAA(1,1) - IWVSELECT(1,W)=1 - IWVSELECT(2,W)=1 !300nm - NWVREQUIRED=NWVREQUIRED-1 - IWVREQUIRED(NWVREQUIRED)=IWVSELECT(1,W) - ENDIF - IF (MAXWV.EQ.999) THEN - ! requested wavelength is longer than min wv in LUT - ! set to max - write(6,*) 'ERROR requested wavelength is too long!!' - write(6,*) 'Defaulting to LUT min: ',WVAA(NWVAA0,1) - IWVSELECT(1,W)=NWVAA0 - IWVSELECT(2,W)=NWVAA0 !1020nm - NWVREQUIRED=NWVREQUIRED-1 - IWVREQUIRED(NWVREQUIRED)=IWVSELECT(1,W) - ENDIF - - !now calcualte the angstrom exponent coefs for interpolation - - !this is done here to save time and repetition in aerosol_mod.F - IF (IWVSELECT(1,W).NE.IWVSELECT(2,W)) THEN - ACOEF_WV(W) = WVAA(IWVSELECT(2,W),1)/Input_Opt%WVSELECT(W) - BCOEF_WV(W) =1.0d0/(LOG(WVAA(IWVSELECT(2,W),1)/ & - WVAA(IWVSELECT(1,W),1))) - !relative location of selected wavelength between tie points - !for interpolating SSA and ASYM for output in aerosol_mod.F and - !dust_mod.F - CCOEF_WV(W) =(Input_Opt%WVSELECT(W)-WVAA(IWVSELECT(1,W),1))/ & - (WVAA(IWVSELECT(2,W),1)-WVAA(IWVSELECT(1,W),1)) - ENDIF - IF ( Input_Opt%amIRoot ) THEN - write(6,*) 'N WAVELENGTHS: ',Input_Opt%NWVSELECT - write(6,*) 'WAVELENGTH REQUESTED:',Input_Opt%WVSELECT(W) - write(6,*) 'WAVELENGTH REQUIRED:', NWVREQUIRED - !write(6,*) IWVSELECT(1,W),WVAA(IWVSELECT(1,W),1) - !write(6,*) IWVSELECT(2,W),WVAA(IWVSELECT(2,W),1) - !write(6,*) ACOEF_WV(W),BCOEF_WV(W),CCOEF_WV(W) - write(6,*) '*********************************' - ENDIF - ENDDO !Input_Opt%NWVSELECT -#ifdef RRTMG - !repeat for RRTMG wavelengths to get the closest wavelength - !indices and the interpolation coefficients - !Indices are relative to all wavelengths in the LUT i.e. the RRTMG - !wavelengths start at NWVAA0+1 - N0=NWVAA0+1 - N1=NWVAA - NSTEP=1 - NRTWVREQUIRED=0 - DO W=1,Input_Opt%NWVSELECT - MINWV = -999 - MAXWV = 999 - DO N=N0,N1,NSTEP - WVDIF = WVAA(N,1)-Input_Opt%WVSELECT(W) - IF ((WVDIF.LE.0).AND.(WVDIF.GT.MINWV)) THEN - MINWV = WVDIF - IRTWVSELECT(1,W)=N - ENDIF - IF ((WVDIF.GE.0).AND.(WVDIF.LT.MAXWV)) THEN - MAXWV = WVDIF - IRTWVSELECT(2,W)=N - ENDIF - ENDDO - IF (IRTWVSELECT(2,W).EQ.IRTWVSELECT(1,W)) THEN - !we have a match! - MINWV=0 - MAXWV=0 - !add this wavelength to those for output - NRTWVREQUIRED=NRTWVREQUIRED+1 - IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(1,W) - ELSE - !we are going to have to interpolate to the requested - !wavelength - NRTWVREQUIRED=NRTWVREQUIRED+1 - IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(1,W) - NRTWVREQUIRED=NRTWVREQUIRED+1 - IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(2,W) - ENDIF - - !Error check - ensure we have a match or requested wavelength - !falls within two LUT tie points - IF (MINWV.EQ.-999) THEN - ! requested wavelength is shorter than min wv in LUT - ! set to min - write(6,*) 'ERROR requested wavelength is too short!!' - write(6,*) 'Defaulting to LUT min: ',WVAA(NWVAA-1,1) - IRTWVSELECT(1,W)=NWVAA-1 - IRTWVSELECT(2,W)=NWVAA-1 - NRTWVREQUIRED=NRTWVREQUIRED-1 - IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(1,W) - ENDIF - IF (MAXWV.EQ.999) THEN - ! requested wavelength is longer than min wv in LUT - ! set to max - write(6,*) 'ERROR requested wavelength is too long!!' - write(6,*) 'Defaulting to LUT min: ',WVAA(NWVAA0+1,1) - IRTWVSELECT(1,W)=NWVAA0+1 - IRTWVSELECT(2,W)=NWVAA0+1 - NRTWVREQUIRED=NRTWVREQUIRED-1 - IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(1,W) - ENDIF - - !now calcualte the angstrom exponent coefs for interpolation - - !this is done here to save time and repetition in aerosol_mod.F - IF (IRTWVSELECT(1,W).NE.IRTWVSELECT(2,W)) THEN - ACOEF_RTWV(W) = WVAA(IRTWVSELECT(2,W),1)/Input_Opt%WVSELECT(W) - BCOEF_RTWV(W) =1.0d0/(LOG(WVAA(IRTWVSELECT(2,W),1)/ & - WVAA(IRTWVSELECT(1,W),1))) - !relative location of selected wavelength between tie points - !for interpolating SSA and ASYM for output in aerosol_mod.F and - !dust_mod.F - CCOEF_RTWV(W) =(Input_Opt%WVSELECT(W)-WVAA(IRTWVSELECT(1,W),1))/ & - (WVAA(IRTWVSELECT(2,W),1)-WVAA(IRTWVSELECT(1,W),1)) - ENDIF - !convert wavelength index to that required by rrtmg_rad_transfer - !i.e. without the standard and LW wavelengths - IRTWVSELECT(1,W) = IRTWVSELECT(1,W) - NWVAA0 - NBNDLW - IRTWVSELECT(2,W) = IRTWVSELECT(2,W) - NWVAA0 - NBNDLW - IF ( Input_Opt%amIRoot ) THEN - write(6,*) 'N RT WAVELENGTHS: ',Input_Opt%NWVSELECT - write(6,*) 'RT WAVELENGTH REQUESTED:',Input_Opt%WVSELECT(W) - write(6,*) 'RT WAVELENGTH REQUIRED:', NRTWVREQUIRED - write(6,*) IRTWVSELECT(1,W),WVAA(IRTWVSELECT(1,W)+NWVAA0+NBNDLW,1) - write(6,*) IRTWVSELECT(2,W),WVAA(IRTWVSELECT(2,W)+NWVAA0+NBNDLW,1) - write(6,*) ACOEF_WV(W),BCOEF_WV(W),CCOEF_WV(W) - write(6,*) '*********************************' - ENDIF - ENDDO !Input_Opt%NWVSELECT -#endif - END SUBROUTINE CALC_AOD -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: rd_js_jx -! -! !DESCRIPTION: Subroutine RD\_JS\_JX reads in 'FJX\_j2j.dat', which defines -! the mapping of Fast-JX J's (TITLEJX(1:NJX)) onto the CTM reactions. -! Reaction number JJ, named T\_REACT, uses Fast-JX's T\_FJX (including scaling -! factor F\_FJX). -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE RD_JS_JX( NUNIT, NAMFIL, TITLEJX, NJXX, Input_Opt, RC ) -! -! !USES: -! - USE Charpak_Mod, ONLY : CStrip - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: NUNIT - INTEGER, INTENT(IN) :: NJXX - CHARACTER(LEN=*), INTENT(IN) :: NAMFIL - CHARACTER(LEN=6), INTENT(IN), DIMENSION(NJXX) :: TITLEJX - TYPE(OptInput), INTENT(IN) :: Input_Opt -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC -! -! !REMARKS: -! Now flag special reactions that are to be adjusted for FlexChem later. -! -! !REVISION HISTORY: -! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - LOGICAL :: FileExists - INTEGER :: J, JJ, K - REAL(fp) :: F_FJX - - ! Strings - CHARACTER(LEN=6 ) :: T_FJX - CHARACTER(LEN=50 ) :: T_REACT - CHARACTER(LEN=50 ) :: TEXT - CHARACTER(LEN=120) :: CLINE - CHARACTER(LEN=255) :: ErrMsg, ThisLoc, FileMsg - - ! String arrays - CHARACTER(LEN=6) :: JMAP(JVN_) - - !======================================================================== - ! RD_JS_JX begins here! - !======================================================================== - - ! Initialize - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at Rd_Js_Jx (in module GeosCore/fast_jx_mod.F90)' - - !======================================================================== - ! In dry-run mode, print file path to dryrun log and exit. - ! Otherwise, print file path to stdout and continue. - !======================================================================== - - ! Test if the file exists - INQUIRE( FILE=TRIM( NamFil ), EXIST=FileExists ) - - ! Test if the file exists and define an output string - IF ( FileExists ) THEN - FileMsg = 'FAST-JX (RD_JS_JX): Opening' - ELSE - FileMsg = 'FAST-JX (RD_JS_JX): REQUIRED FILE NOT FOUND' - ENDIF - - ! Write to stdout for both regular and dry-run simulations - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( NamFil ) -300 FORMAT( a, ' ', a ) - ENDIF - - ! For dry-run simulations, return to calling program. - ! For regular simulations, throw an error if we can't find the file. - IF ( Input_Opt%DryRun ) THEN - RETURN - ELSE - IF ( .not. FileExists ) THEN - WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( NamFil ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - - !======================================================================== - ! Read the FJX_j2j.dat file to map model specific J's onto fast-JX J's - ! The chemistry code title describes fully the reaction (a50) - ! Blank (unfilled) chemistry J's are unmapped - ! The number NRATJ is the last JJ readin that is .le. JVN - ! include fractional quantum yield for the fast-JX J's - !======================================================================== - - JLABEL(:) = '------' - JMAP(:) = '------' - JFACTA(:) = 0.e+0_fp - -#if defined( MODEL_CESM ) - ! Only read file on root thread if using CESM - IF ( Input_Opt%amIRoot ) THEN -#endif - - ! Open file - open (NUNIT,file=NAMFIL,status='old',form='formatted') - - read (NUNIT,'(a)') CLINE - IF ( Input_Opt%amIRoot ) THEN - write(6,'(a)') CLINE - ENDIF - do J = 1,JVN_ - read (NUNIT,'(i4,1x,a50,4x,f5.3,2x,a6)') JJ,T_REACT,F_FJX,T_FJX - IF (JJ.gt.JVN_) THEN - IF ( JJ .eq. 9999 ) THEN - close(NUNIT) - exit - ELSE - ErrMsg = 'Number of reactions in FJX_j2j.dat exceeds JVN_.' //& - 'Adjust JVN_ in CMN_FJX_mod.F90 to get past this error.' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - - JLABEL(JJ) = T_REACT - JFACTA(JJ) = F_FJX - JMAP(JJ) = T_FJX - NRATJ = JJ - ! SDE 03/31/13: Check number of branches - ! Note that the order of the branches in - ! globchem.dat must match the order in - ! FJX_j2j.dat - READ (T_REACT(1:10),"(a10)") RNAMES(JJ) - RNAMES(JJ) = TRIM(RNAMES(JJ)) - BRANCH(JJ) = 1 - DO K=1,(JJ-1) - IF (RNAMES(JJ) == RNAMES(K)) THEN - BRANCH(JJ) = BRANCH(K) + 1 - ENDIF - ENDDO - enddo - -20 close(NUNIT) - -#if defined( MODEL_CESM ) - ENDIF -#if defined( SPMD ) - - CALL MPIBCAST( JLABEL, JVN_*50, MPICHAR, 0, MPICOM ) - CALL MPIBCAST( JFACTA, JVN_, MPIR8, 0, MPICOM ) - CALL MPIBCAST( JMAP, JVN_*6, MPICHAR, 0, MPICOM ) - CALL MPIBCAST( NRATJ, 1, MPIINT, 0, MPICOM ) - CALL MPIBCAST( RNAMES, JVN_*10, MPICHAR, 0, MPICOM ) - CALL MPIBCAST( BRANCH, JVN_, MPIINT, 0, MPICOM ) -#endif -#endif - - ! Zero / Set index arrays that map Jvalue(j) onto rates - do K = 1,NRATJ - JIND(K) = 0 - do J = 1,NJXX - T_FJX = TITLEJX(J) - if (JMAP(K) .eq. TITLEJX(J)) then - JIND(K)=J - endif - enddo - enddo - - IF ( Input_Opt%amIRoot ) THEN - write(6,'(a,i4,a)')'Photochemistry Scheme with',NRATJ,' J-values' - ENDIF - do K=1,NRATJ - if (JMAP(K) .ne. '------' ) then - J = JIND(K) - IF ( Input_Opt%amIRoot ) THEN - if (J.eq.0) then - write(6,'(i5,1x,a50,f6.3,a,1x,a6)') K,JLABEL(K),JFACTA(K), & - ' no mapping onto fast-JX',JMAP(K) - else - write(6,'(i5,1x,a50,f6.3,a,i4,1x,a6)') K,JLABEL(K),JFACTA(K), & - ' mapped to FJX:',J,TITLEJX(J) - endif - ENDIF - endif - enddo - - !======================================================================== - ! Flag special reactions that will be later adjusted by - ! routine PHOTRATE_ADJ (called from FlexChem) - !======================================================================== - - IF ( Input_Opt%ITS_A_FULLCHEM_SIM ) THEN - ! Loop over all photolysis reactions - DO K = 1, NRATJ - - ! Strip all blanks from the reactants and products list - TEXT = JLABEL(K) - CALL CSTRIP( TEXT ) - - !IF ( Input_Opt%amIRoot ) THEN - ! WRITE(*,*) K, TRIM( TEXT ) - !ENDIF - - ! Look for certain reactions - SELECT CASE( TRIM( TEXT ) ) - CASE( 'O2PHOTONOO' ) - RXN_O2 = K ! O2 + hv -> O + O - CASE( 'O3PHOTONO2O' ) - RXN_O3_1 = K ! O3 + hv -> O2 + O - CASE( 'O3PHOTONO2O(1D)' ) - RXN_O3_2 = K ! O3 + hv -> O2 + O(1D) - CASE( 'SO4PHOTONSO2OHOH' ) - RXN_H2SO4 = K ! SO4 + hv -> SO2 + OH + OH - CASE( 'NO2PHOTONNOO' ) - RXN_NO2 = K ! NO2 + hv -> NO + O - CASE( 'NOPHOTONNO' ) - RXN_NO = K ! NO + hv -> N + O - CASE( 'NO3PHOTONNO2O' ) - RXN_NO3 = K ! NO3 + hv -> NO2 + O - CASE( 'N2OPHOTONN2O' ) - RXN_N2O = K ! N2O + hv -> N2 + O - CASE( 'NITsPHOTONHNO2' ) - RXN_JNITSa = K ! NITs + hv -> HNO2 - CASE( 'NITsPHOTONNO2' ) - RXN_JNITSb = K ! NITs + hv -> NO2 - CASE( 'NITPHOTONHNO2' ) - RXN_JNITa = K ! NIT + hv -> HNO2 - CASE( 'NITPHOTONNO2' ) - RXN_JNITb = K ! NIT + hv -> NO2 - CASE( 'HNO3PHOTONNO2OH' ) - RXN_JHNO3 = K ! HNO3 + hv = OH + NO2 - CASE DEFAULT - ! Nothing - END SELECT - ENDDO - - !--------------------------------------------------------------------- - ! Error check the various rxn flags - !--------------------------------------------------------------------- - IF ( RXN_O2 < 0 ) THEN - ErrMsg = 'Could not find rxn O2 + hv -> O + O' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_O3_1 < 0 ) THEN - ErrMsg = 'Could not find rxn O3 + hv -> O2 + O' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_O3_2 < 0 ) THEN - ErrMsg = 'Could not find rxn O3 + hv -> O2 + O(1D)' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - ENDIF - - IF ( RXN_NO2 < 0 ) THEN - ErrMsg = 'Could not find rxn NO2 + hv -> NO + O' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_NO2 < 0 ) THEN - ErrMsg = 'Could not find rxn NO2 + hv -> NO + O' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_JNITSa < 0 ) THEN - ErrMsg = 'Could not find rxn NITS + hv -> HNO2' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_JNITSb < 0 ) THEN - ErrMsg = 'Could not find rxn NITS + hv -> NO2' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_JNITa < 0 ) THEN - ErrMsg = 'Could not find rxn NIT + hv -> HNO2' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_JNITb < 0 ) THEN - ErrMsg = 'Could not find rxn NIT + hv -> NO2' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_H2SO4 < 0 ) THEN - ErrMsg = 'Could not find rxn SO4 + hv -> SO2 + OH + OH!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_NO3 < 0 ) THEN - ErrMsg = 'Could not find rxn NO3 + hv -> NO2 + O' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_NO < 0 ) THEN - ErrMsg = 'Could not find rxn NO + hv -> O + N' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_N2O < 0 ) THEN - ErrMsg = 'Could not find rxn N2O + hv -> N2 + O(1D)' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - !--------------------------------------------------------------------- - ! Print out saved rxn flags for fullchem simulations - !--------------------------------------------------------------------- - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 100 ) REPEAT( '=', 79 ) - WRITE( 6, 110 ) - WRITE( 6, 120 ) RXN_O2 - WRITE( 6, 130 ) RXN_O3_1 - WRITE( 6, 140 ) RXN_O3_2 - WRITE( 6, 180 ) RXN_JNITSa - WRITE( 6, 190 ) RXN_JNITSb - WRITE( 6, 200 ) RXN_JNITa - WRITE( 6, 210 ) RXN_JNITb - WRITE( 6, 160 ) RXN_H2SO4 - WRITE( 6, 170 ) RXN_NO2 - WRITE( 6, 100 ) REPEAT( '=', 79 ) - ENDIF - ENDIF - - !======================================================================== - ! Flag reactions for diagnostics (only in Hg chem) - !======================================================================== - IF ( Input_Opt%ITS_A_MERCURY_SIM ) THEN - ! Loop over all photolysis reactions - DO K = 1, NRATJ - - ! Strip all blanks from the reactants and products list - TEXT = JLABEL(K) - CALL CSTRIP( TEXT ) - - ! Look for certain reactions - SELECT CASE( TRIM( TEXT ) ) - CASE( 'O3PHOTONO2O' ) - RXN_O3_1 = K ! O3 + hv -> O2 + O - CASE( 'O3PHOTONO2O(1D)' ) - RXN_O3_2 = K ! O3 + hv -> O2 + O(1D) - CASE( 'NO2PHOTONNOO' ) - RXN_NO2 = K ! NO2 + hv -> NO + O - CASE( 'BrOPHOTONBrO' ) - RXN_BrO = K ! BrO + hv -> Br + O - CASE( 'ClOPHOTONClO' ) - RXN_ClO = K ! ClO + hv -> Cl + O - CASE DEFAULT - ! Nothing - END SELECT - ENDDO - - !-------------------------------------------------------------------- - ! Error check the various rxn flags - !-------------------------------------------------------------------- - IF ( RXN_O3_1 < 0 ) THEN - ErrMsg = 'Could not find rxn O3 + hv -> O2 + O' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_O3_2 < 0 ) THEN - ErrMsg = 'Could not find rxn O3 + hv -> O2 + O(1D) #1' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_NO2 < 0 ) THEN - ErrMsg = 'Could not find rxn NO2 + hv -> NO + O' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_BrO < 0 ) THEN - ErrMsg = 'Could not find rxn BrO + hv -> Br + O' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - IF ( RXN_ClO < 0 ) THEN - ErrMsg = 'Could not find rxn ClO + hv -> Cl + O' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - !--------------------------------------------------------------------- - ! Print out saved rxn flags for Hg simulation - !--------------------------------------------------------------------- - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 100 ) REPEAT( '=', 79 ) - WRITE( 6, 110 ) - WRITE( 6, 130 ) RXN_O3_1 - WRITE( 6, 140 ) RXN_O3_2 - WRITE( 6, 170 ) RXN_NO2 - WRITE( 6, 220 ) RXN_BrO - WRITE( 6, 230 ) RXN_ClO - WRITE( 6, 100 ) REPEAT( '=', 79 ) - ENDIF - ENDIF - - ! FORMAT statements -100 FORMAT( a ) -110 FORMAT( 'Photo rxn flags saved for use in PHOTRATE_ADJ:', / ) -120 FORMAT( 'RXN_O2 [ O2 + hv -> O + O ] = ', i5 ) -130 FORMAT( 'RXN_O3_1 [ O3 + hv -> O2 + O ] = ', i5 ) -140 FORMAT( 'RXN_O3_2a [ O3 + hv -> O2 + O(1D) #1 ] = ', i5 ) -150 FORMAT( 'RXN_O3_2b [ O3 + hv -> O2 + O(1D) #2 ] = ', i5 ) -160 FORMAT( 'RXN_H2SO4 [ SO4 + hv -> SO2 + OH + OH ] = ', i5 ) -170 FORMAT( 'RXN_NO2 [ NO2 + hv -> NO + O ] = ', i5 ) -180 FORMAT( 'RXN_JNITSa [ NITS + hv -> HNO2 ] = ', i5 ) -190 FORMAT( 'RXN_JNITSb [ NITS + hv -> NO2 ] = ', i5 ) -200 FORMAT( 'RXN_JNITa [ NIT + hv -> HNO2 ] = ', i5 ) -210 FORMAT( 'RXN_JNITb [ NIT + hv -> NO2 ] = ', i5 ) -220 FORMAT( 'RXN_BrO [ BrO + hv -> Br + O ] = ', i5 ) -230 FORMAT( 'RXN_ClO [ ClO + hv -> Cl + O ] = ', i5 ) - - END SUBROUTINE RD_JS_JX -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: solar_jx -! -! !DESCRIPTION: Subroutine SOLAR\_JX handles solar zenith angles. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SOLAR_JX(NDAY,COSSZA,SZA,SOLFX) -! -! !USES: -! - USE PhysConstants,ONLY : PI -! -! !INPUT PARAMETERS: -! - REAL(fp), INTENT(IN) :: COSSZA - INTEGER, INTENT(IN) :: NDAY -! -! !OUTPUT VARIABLES: -! - REAL(fp), INTENT(OUT) :: SZA,SOLFX -! -! !REMARKS: -! --------------------------------------------------------------------- -! NDAY = integer day of the year (used for solar lat and declin) -! SZA = solar zenith angle in degrees -! COSSZA = U0 = cos(SZA) -! SOLFX = Solar function -! --------------------------------------------------------------------- -! -! !REVISION HISTORY: -! 28 Mar 2013 - S. D. Eastham - Adapted from Fast-JX v7.0 -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - REAL(fp) PI180 - - !================================================================= - ! SOLAR_JX begins here! - !================================================================= - - PI180 = PI/180.e+0_fp - SZA = acos(MIN(MAX(COSSZA,-1._fp),1._fp))/PI180 - - ! Offset used for GEOS-Chem slightly different - !SOLFX = 1.e+0_fp-(0.034e+0_fp*cos(dble(NDAY-186)*2.e+0_fp*PI/365.e+0_fp)) - SOLFX = 1.e+0_fp-(0.034e+0_fp*cos(dble(NDAY-172) & - *2.e+0_fp*PI/365.e+0_fp)) - - END SUBROUTINE SOLAR_JX -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: photo_jx -! -! !DESCRIPTION: Subroutine PHOTO\_JX is the core subroutine of Fast-JX. -! calc J's for a single column atmosphere (aka Indep Colm Atmos or ICA) -! needs P, T, O3, clds, aersls; adds top-of-atmos layer from climatology -! needs day-fo-year for sun distance, SZA (not lat or long) -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE PHOTO_JX( U0, REFLB, P_COL, & - T_COL, O3_COL, O3_TOMS, & - AOD999, ODAER_COL, ODMDUST_COL, & - ODCLOUD_COL_IN, ILON, ILAT, & - YLAT, DAY_OF_YR, MONTH, & - DAY, Input_Opt, State_Diag, & - State_Grid, State_Met ) -! -! !USES: -! - USE CMN_SIZE_Mod, ONLY : NRH, NRHAER - USE Input_Opt_Mod, ONLY : OptInput - USE State_Diag_Mod, ONLY : DgnState - USE State_Grid_Mod, ONLY : GrdState - USE State_Met_Mod, ONLY : MetState -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: ILON, ILAT - INTEGER, INTENT(IN) :: DAY_OF_YR - INTEGER, INTENT(IN) :: MONTH,DAY - REAL(fp), INTENT(IN) :: YLAT - REAL(fp), INTENT(IN) :: U0,REFLB - REAL(fp), INTENT(IN), DIMENSION(L1_+1 ) :: P_COL - REAL(fp), INTENT(IN), DIMENSION(L1_ ) :: T_COL - REAL(fp), INTENT(IN), DIMENSION(L1_ ) :: O3_COL - REAL(fp), INTENT(IN) :: O3_TOMS - REAL(fp), INTENT(IN), DIMENSION(L_,A_ ) :: ODAER_COL - REAL(fp), INTENT(IN), DIMENSION(L_,NDUST) :: ODMDUST_COL - REAL(fp), INTENT(IN), DIMENSION(L_ ) :: ODCLOUD_COL_IN - LOGICAL, INTENT(IN) :: AOD999 - TYPE(OptInput), INTENT(IN) :: Input_Opt - TYPE(GrdState), INTENT(IN) :: State_Grid - TYPE(MetState), INTENT(IN) :: State_Met -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(DgnState), INTENT(INOUT) :: State_Diag -! -! !REMARKS: -! -! !REVISION HISTORY: -! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! -------------------------------------------------------------------- - ! key LOCAL atmospheric data needed to solve plane-parallel J---- - ! --these are dimensioned JXL_, and must have JXL_ .ge. State_Grid%NZ - real(fp), dimension(JXL1_) :: DDJ,OOJ - real(fp), dimension(JXL1_+1) :: PPJ,ZZJ - integer,dimension(JXL2_+1) :: JXTRA - real(fp), dimension(W_) :: FJTOP,FJBOT,FSBOT,FLXD0,RFL - real(fp), dimension(JXL_, W_) :: AVGF, FJFLX - real(fp), dimension(JXL1_,W_) :: DTAUX, FLXD - real(fp), dimension(8,JXL1_,W_) :: POMEGAX - - ! flux/heating arrays (along with FJFLX,FLXD,FLXD0) - real(fp) :: ODABS,ODRAY - real(fp) :: RFLECT - real(fp) :: AMF2(2*JXL1_+1,2*JXL1_+1) - - ! ---------key SCATTERING arrays for clouds+aerosols------------------ - real(fp) :: OD(5,JXL1_),SSA(5,JXL1_),SLEG(8,5,JXL1_) - real(fp) :: OD600(JXL1_) - - ! ---------key arrays AFTER solving for J's--------------------------- - real(fp) :: FFF(W_,JXL_),VALJ(X_) - real(fp) :: VALJL(JXL_,X_) !2-D array of J_s returned by JRATET - - integer :: L2EDGE, I,J,K,L,M,KMIE,IDXAER,IM - INTEGER :: KMIE2, IR - real(fp) :: XQO3,XQO2,WAVE, TTTX - ! -------------------------------------------------------------------- - ! For compatibility with GEOS-Chem (SDE 03/30/13) - REAL(fp) :: QSCALING,LOCALOD,LOCALSSA,SZA,SOLF - REAL(fp) :: AERX_COL(A_,L1_) ! Accumulated aerosol array - REAL(fp) :: ODCLOUD_COL(L_) - REAL(fp) :: VALJXX(L_,JVN_) - - ! T_CLIM: Climatology data temperature (K) - REAL(fp) :: T_CLIM(JXL1_) - - ! T_INPUT: Input temperature (K) with extra layer for compatibility - REAL(fp) :: T_INPUT(JXL1_+1) - - ! UVFlux* diagnostics - REAL(fp) :: FDIRECT (JXL1_) - REAL(fp) :: FDIFFUSE(JXL1_) - REAL(fp) :: UVX_CONST - INTEGER :: S - - ! Logical flags - LOGICAL :: IS_HALOGENS - - !Maps the new LUT optics wavelengths on to - !the 5 jv_spec_mie.dat wavelengths - ! N.B. currently 200nm and 300nm data is the same in - ! jv_spec_mie.dat, so we copy from new LUT 300nm for both - INTEGER :: LUTIDX(5) - LUTIDX = (/1,1,2,6,10/) - - !================================================================= - ! PHOTO_JX begins here! - !================================================================= - -#if defined( MODEL_GEOS ) - ! Initialize diagnostics arrays - IF ( State_Diag%Archive_EXTRALNLEVS ) THEN - State_Diag%EXTRALNLEVS(ILON,ILAT) = 0.0 - ENDIF - IF ( State_Diag%Archive_EXTRALNITER ) THEN - State_Diag%EXTRALNITER(ILON,ILAT) = 0.0 - ENDIF -#endif - - if (State_Grid%NZ+1 .gt. JXL1_) then - call EXITC(' PHOTO_JX: not enough levels in JX') - endif - - ! Define logical flags for ND22 - IS_HALOGENS = ( id_CH2IBr > 0 .and. id_IBr > 0 .and. & - id_CH2ICl > 0 .and. id_ICl > 0 .and. & - id_I2 > 0 .and. id_HOI > 0 .and. & - id_IO > 0 .and. id_OIO > 0 .and. & - id_INO > 0 .and. id_IONO > 0 .and. & - id_IONO2 > 0 .and. id_I2O2 > 0 .and. & - id_CH3I > 0 .and. id_CH2I2 > 0 .and. & - id_I2O4 > 0 .and. id_I2O3 > 0 ) - - ! Copy cloud OD data to a variable array - DO L=1,L_ - ODCLOUD_COL(L) = ODCLOUD_COL_IN(L) - ENDDO - - ! Input conversion (SDE 03/29/13) - ! Calculate solar zenith angle (degrees) - CALL SOLAR_JX(DAY_OF_YR,U0,SZA,SOLF) - - L2EDGE = L_ + L_ + 2 - FFF(:,:) = 0.e+0_fp - - ! check for dark conditions SZA > 98.0 deg => tan ht = 63 km or - ! 99.0 80 km - if (SZA .gt. 98.e+0_fp) goto 99 - - ! Use GEOS-Chem methodology to set vertical profiles of: - ! Pressure (PPJ) [hPa] - ! Temperature (T_CLIm) [K] - ! Path density (DDJ) [# molec/cm2] - ! New methodology for: - ! Ozone density (OOJ) [# O3 molec/cm2] - CALL SET_PROF (YLAT, MONTH, DAY, & - T_COL, P_COL, ODCLOUD_COL, & - ODMDUST_COL, ODAER_COL, O3_COL, & - O3_TOMS, AERX_COL, T_CLIM, & - OOJ, ZZJ, DDJ, & - Input_Opt, State_Grid ) - - ! Fill out PPJ and TTJ with CTM data to replace fixed climatology - DO L=1,L1_ - PPJ(L) = P_COL(L) - T_INPUT(L) = T_COL(L) - ENDDO - - ! Ensure TOA pressure is zero - PPJ(L1_+1) = 0.e+0_fp - T_INPUT(L1_+1) = T_CLIM(L1_) - - ! calculate spherical weighting functions (AMF: Air Mass Factor) - RFLECT = REFLB - - ! -------------------------------------------------------------------- - call SPHERE2 (U0,ZZJ,AMF2,L1_,JXL1_) - ! -------------------------------------------------------------------- - - !----------------------------------------------------------------------- - ! Modification for GEOS-Chem: Optical depths are calculated at a single - ! wavelength for GEOS-Chem, so we perform scaling in this routine. - ! elsewhere. - ! (SDE 03/31/13) - !----------------------------------------------------------------------- - ! calculate the optical properties (opt-depth, single-scat-alb, - ! phase-fn(1:8)) at the 5 std wavelengths 200-300-400-600-999 nm - ! for cloud+aerosols - do L = 1,L1_ - OD600(L) = 0.e+0_fp - ! ODs stored with fine-grain (DTAUX) and coarse (OD) - do K=1,W_ - DTAUX(L,K) = 0.e+0_fp - enddo - do K=1,5 - OD(K,L) = 0.e+0_fp - SSA(K,L) = 0.e+0_fp - do I=1,8 - SLEG(I,K,L) = 0.e+0_fp - enddo - enddo + ! lower boundary: 2nd-order terms + L1 = ND + L2 = ND-1 + do I = 1,M_ + SUM0 = POMEGA(1,L1)*PM(I,1)*PM0(1) + POMEGA(3,L1)*PM(I,3)*PM0(3) & + + POMEGA(5,L1)*PM(I,5)*PM0(5) + POMEGA(7,L1)*PM(I,7)*PM0(7) + SUM2 = POMEGA(1,L2)*PM(I,1)*PM0(1) + POMEGA(3,L2)*PM(I,3)*PM0(3) & + + POMEGA(5,L2)*PM(I,5)*PM0(5) + POMEGA(7,L2)*PM(I,7)*PM0(7) + SUM1 = POMEGA(2,L1)*PM(I,2)*PM0(2) + POMEGA(4,L1)*PM(I,4)*PM0(4) & + + POMEGA(6,L1)*PM(I,6)*PM0(6) + POMEGA(8,L1)*PM(I,8)*PM0(8) + SUM3 = POMEGA(2,L2)*PM(I,2)*PM0(2) + POMEGA(4,L2)*PM(I,4)*PM0(4) & + + POMEGA(6,L2)*PM(I,6)*PM0(6) + POMEGA(8,L2)*PM(I,8)*PM0(8) + H(I,L1) = 0.5e+0_fp*(SUM0*FZ(L1) + SUM2*FZ(L2)) + A(I,L1) = 0.5e+0_fp*(SUM1*FZ(L1) + SUM3*FZ(L2)) enddo - ! Clunky fix to accomodate RRTMG and UCX (DAR 01/2015) - ! Using a combination of old optics LUT format and - ! new optics format (greater spectral resolution and range - ! for RRTMG). Clouds, non-species aerosols and strat aerosols - ! are not incorporated into the new LUT so must still use the - ! old LUT for these. - - ! Don't bother on extraneous level - leave as zero - do L = 1,L_ - DO KMIE=1,5 - ! Clouds and non-species aerosols - DO M=1,3 - IF (AERX_COL(M,L).gt.0e+0_fp) THEN - IDXAER=MIEDX(M) - ! Cloud (600 nm scaling) - QSCALING = QAA(KMIE,IDXAER)/QAA(4,IDXAER) - LOCALOD = QSCALING*AERX_COL(M,L) - LOCALSSA = SAA(KMIE,IDXAER)*LOCALOD - OD(KMIE,L) = OD(KMIE,L) + LOCALOD - SSA(KMIE,L)= SSA(KMIE,L) + LOCALSSA - DO I=1,8 - SLEG(I,KMIE,L) = SLEG(I,KMIE,L) + & - (PAA(I,KMIE,IDXAER)*LOCALSSA) - ENDDO ! I (Phase function) - ENDIF - ENDDO ! M (Aerosol) - !transpose wavelength indices from the mie LUT - !to the new speciated LUT - KMIE2=LUTIDX(KMIE) - - ! Stratospheric aerosols - IM=10+(NRHAER*NRH)+1 - DO M=IM,IM+1 - IDXAER=M-IM+6 !6-STS, 7-NAT - - IF (AERX_COL(M,L).gt.0d0) THEN - IF (AOD999) THEN - ! Aerosol/dust (999 nm scaling) - ! Fixed to dry radius - QSCALING = QQAA(KMIE2,1,IDXAER)/QQAA(10,1,IDXAER) - ELSE - ! Aerosol/dust (550 nm scaling) - QSCALING = QQAA(KMIE2,1,IDXAER)/QQAA(5,1,IDXAER) - ENDIF - LOCALOD = QSCALING*AERX_COL(M,L) - LOCALSSA = SSAA(KMIE2,1,IDXAER)*LOCALOD - OD(KMIE,L) = OD(KMIE,L) + LOCALOD - SSA(KMIE,L)= SSA(KMIE,L) + LOCALSSA - DO I=1,8 - SLEG(I,KMIE,L) = SLEG(I,KMIE,L) + & - (PAA(I,KMIE,IDXAER)*LOCALSSA) - ENDDO ! I (Phase function) - ENDIF - - ENDDO ! M (Aerosol) - - ! Mineral dust (from new optics LUT) - DO M=4,10 - IF (AERX_COL(M,L).gt.0d0) THEN - IDXAER=NSPAA !dust is last in LUT - IR=M-3 - IF (AOD999) THEN - QSCALING = QQAA(KMIE2,IR,IDXAER)/ & - QQAA(10,IR,IDXAER) !1000nm in new .dat - ELSE - ! Aerosol/dust (550 nm scaling) - QSCALING = QQAA(KMIE2,IR,IDXAER)/ & - QQAA(5,IR,IDXAER) !550nm in new .dat - ENDIF - LOCALOD = QSCALING*AERX_COL(M,L) - LOCALSSA = SSAA(KMIE2,IR,IDXAER)*LOCALOD - OD(KMIE,L) = OD(KMIE,L) + LOCALOD - SSA(KMIE,L)= SSA(KMIE,L) + LOCALSSA - DO I=1,8 - SLEG(I,KMIE,L) = SLEG(I,KMIE,L) + & - (PHAA(KMIE2,IR,IDXAER,I)*LOCALSSA) - ENDDO ! I (Phase function) - ENDIF - ENDDO ! M (Aerosol) - - ! Other aerosol (from new optics LUT) - DO M=1,5 - DO IR=1,5 - IDXAER=10+(M-1)*NRH+IR - IF (AERX_COL(IDXAER,L).gt.0d0) THEN - IF (AOD999) THEN - QSCALING = QQAA(KMIE2,IR,M)/ & - QQAA(10,IR,M) !1000nm in new .dat - ELSE - ! Aerosol/dust (550 nm scaling) - QSCALING = QQAA(KMIE2,IR,M)/ & - QQAA(5,IR,M) !550nm in new .dat - ENDIF - LOCALOD = QSCALING*AERX_COL(IDXAER,L) - LOCALSSA = SSAA(KMIE2,IR,M)*LOCALOD - OD(KMIE,L) = OD(KMIE,L) + LOCALOD - SSA(KMIE,L)= SSA(KMIE,L) + LOCALSSA - DO I=1,8 - SLEG(I,KMIE,L) = SLEG(I,KMIE,L) + & - (PHAA(KMIE2,IR,M,I)*LOCALSSA) - ENDDO ! I (Phase function) - ENDIF - ENDDO ! IR (RH bins) - ENDDO ! M (Aerosol) - ENDDO ! KMIE (Mie scattering wavelength bin) - - ! Normalize - DO KMIE=1,5 - IF (OD(KMIE,L).gt.0.e+0_fp) THEN - SSA(KMIE,L) = SSA(KMIE,L)/OD(KMIE,L) - DO I=1,8 - SLEG(I,KMIE,L) = SLEG(I,KMIE,L)/OD(KMIE,L) - ENDDO - ENDIF - ENDDO - ! Retrieve 600 nm OD to determine added layers - OD600(L) = OD(4,L) - ENDDO ! L (Layer) - - ! when combining with Rayleigh and O2-O3 abs, remember the SSA and - ! phase fn SLEG are weighted by OD and OD*SSA, respectively. - ! Given the aerosol+cloud OD/layer in visible (600 nm) calculate how to add - ! additonal levels at top of clouds (now uses log spacing) - ! -------------------------------------------------------------------- - call EXTRAL(Input_Opt,State_Diag,OD600,L1_,L2EDGE,N_,JXTRA,ILON,ILAT) - ! -------------------------------------------------------------------- - - ! set surface reflectance - RFL(:) = max(0.e+0_fp,min(1.e+0_fp,RFLECT)) - - ! -------------------------------------------------------------------- - ! Loop over all wavelength bins to calc mean actinic flux AVGF(L) - ! -------------------------------------------------------------------- - do K = 1,W_ - - WAVE = WL(K) - ! Pick nearest Mie wavelength to get scattering properites------------ - KMIE=1 ! use 200 nm prop for <255 nm - if( WAVE .gt. 255.e+0_fp ) KMIE=2 ! use 300 nm prop for 255-355 nm - if( WAVE .gt. 355.e+0_fp ) KMIE=3 ! use 400 nm prop for 355-500 nm - if( WAVE .gt. 500.e+0_fp ) KMIE=4 - if( WAVE .gt. 800.e+0_fp ) KMIE=5 - - ! Combine: Rayleigh scatters & O2 & O3 absorbers to get optical - ! properties values at L1_=L_+1 are a pseudo/climatol layer above - ! the top CTM layer (L_) - do L = 1,L1_ - TTTX = T_CLIM(L) ! Following GEOS-Chem v9-1-3 - call X_interp (TTTX,XQO2, TQQ(1,1),QO2(K,1), TQQ(2,1),QO2(K,2), & - TQQ(3,1),QO2(K,3), LQQ(1)) - call X_interp (TTTX,XQO3, TQQ(1,2),QO3(K,1), TQQ(2,2),QO3(K,2), & - TQQ(3,2),QO3(K,3), LQQ(2)) - ODABS = XQO3*OOJ(L) + XQO2*DDJ(L)*0.20948e+0_fp - ODRAY = DDJ(L)*QRAYL(K) - - DTAUX(L,K) = OD(KMIE,L) + ODABS + ODRAY - - ! Aerosols + clouds + O2 + O3 - do I=1,8 - POMEGAX(I,L,K) = SLEG(I,KMIE,L)*OD(KMIE,L) - enddo - ! Add Rayleigh scattering effects - ! Only non-zero for 1st and 3rd phase functions - POMEGAX(1,L,K) = POMEGAX(1,L,K) + 1.0e+0_fp*ODRAY - POMEGAX(3,L,K) = POMEGAX(3,L,K) + 0.5e+0_fp*ODRAY - ! Normalize - do I=1,8 - POMEGAX(I,L,K) = POMEGAX(I,L,K)/DTAUX(L,K) - enddo - enddo + do I = 1,M_ + do J = 1,I + SUM0 = POMEGA(1,L1)*PM(I,1)*PM(J,1) + POMEGA(3,L1)*PM(I,3)*PM(J,3) & + + POMEGA(5,L1)*PM(I,5)*PM(J,5) + POMEGA(7,L1)*PM(I,7)*PM(J,7) + SUM2 = POMEGA(1,L2)*PM(I,1)*PM(J,1) + POMEGA(3,L2)*PM(I,3)*PM(J,3) & + + POMEGA(5,L2)*PM(I,5)*PM(J,5) + POMEGA(7,L2)*PM(I,7)*PM(J,7) + SUM1 = POMEGA(2,L1)*PM(I,2)*PM(J,2) + POMEGA(4,L1)*PM(I,4)*PM(J,4) & + + POMEGA(6,L1)*PM(I,6)*PM(J,6) + POMEGA(8,L1)*PM(I,8)*PM(J,8) + SUM3 = POMEGA(2,L2)*PM(I,2)*PM(J,2) + POMEGA(4,L2)*PM(I,4)*PM(J,4) & + + POMEGA(6,L2)*PM(I,6)*PM(J,6) + POMEGA(8,L2)*PM(I,8)*PM(J,8) + S(I,J) = - SUM2*WT(J) + S(J,I) = - SUM2*WT(I) + T(I,J) = - SUM1*WT(J) + T(J,I) = - SUM1*WT(I) + V(I,J) = - SUM3*WT(J) + V(J,I) = - SUM3*WT(I) + B(I,J,L1) = - 0.5e+0_fp*(SUM0 + SUM2)*WT(J) + B(J,I,L1) = - 0.5e+0_fp*(SUM0 + SUM2)*WT(I) enddo - ! -------------------------------------------------------------------- - call OPMIE(DTAUX,POMEGAX,U0,RFL,AMF2,JXTRA, & - AVGF,FJTOP,FJBOT,FSBOT,FJFLX,FLXD,FLXD0,State_Grid%NZ) - - !! -------------------------------------------------------------------- - - do K = 1,W_ - - do L = 1,L_ - FFF(K,L) = FFF(K,L) + SOLF*FL(K)*AVGF(L,K) - enddo - enddo - ! Calculate photolysis rates - call JRATET(PPJ,T_INPUT,FFF, VALJXX,L_,State_Grid%MaxChemLev,NJX) - - ! Fill out common-block array of J-rates - DO L=1,State_Grid%MaxChemLev - DO J=1,NRATJ - IF (JIND(J).gt.0) THEN - ZPJ(L,J,ILON,ILAT) = VALJXX(L,JIND(J))*JFACTA(J) - ELSE - ZPJ(L,J,ILON,ILAT) = 0.e+0_fp - ENDIF - ENDDO - ENDDO - - ! Set J-rates outside the chemgrid to zero - IF (State_Grid%MaxChemLev.lt.L_) THEN - DO L=State_Grid%MaxChemLev+1,L_ - DO J=1,NRATJ - ZPJ(L,J,ILON,ILAT) = 0.e+0_fp - ENDDO - ENDDO - ENDIF + do I = 1,M_ + S(I,I) = S(I,I) + 1.0e+0_fp + T(I,I) = T(I,I) + 1.0e+0_fp + V(I,I) = V(I,I) + 1.0e+0_fp + B(I,I,L1)= B(I,I,L1) + 1.0e+0_fp - !================================================================= - ! UV radiative fluxes (direct, diffuse, net) [W/m2] - ! - ! Updated for netCDF from nd64 (JMM 2019-09-11) - ! Use it to calculate fluxes for output if necessary - ! - ! Get net direct and net diffuse fluxes separately - ! Order: - ! 1 - Net flux - ! 2 - Direct flux - ! 3 - Diffuse flux - ! Convention: negative is downwards - !================================================================= - IF ( State_Diag%Archive_UVFluxDiffuse .or. & - State_Diag%Archive_UVFluxDirect .or. & - State_Diag%Archive_UVFluxNet ) THEN - - ! Loop over wavelength bins - DO K = 1, W_ - - ! Initialize - FDIRECT = 0.0_fp - FDIFFUSE = 0.0_fp - - ! Direct & diffuse fluxes at each level - FDIRECT(1) = FSBOT(K) ! surface - FDIFFUSE(1) = FJBOT(K) ! surface - DO L = 2, State_Grid%NZ - FDIRECT(L) = FDIRECT(L-1) + FLXD(L-1,K) - FDIFFUSE(L) = FJFLX(L-1,K) - ENDDO - - ! Constant to multiply UV fluxes at each wavelength bin - UVX_CONST = SOLF * FL(K) * UVXFACTOR(K) - - ! Archive into diagnostic arrays - DO L = 1, State_Grid%NZ - - IF ( State_Diag%Archive_UVFluxNet ) THEN - S = State_Diag%Map_UvFluxNet%id2slot(K) - IF ( S > 0 ) THEN - State_Diag%UVFluxNet(ILON,ILAT,L,S) = & - State_Diag%UVFluxNet(ILON,ILAT,L,S) + & - ( ( FDIRECT(L) + FDIFFUSE(L) ) * UVX_CONST ) - ENDIF - ENDIF + C(I,L1)= S(I,1)*A(1,L1)/EMU(1) + S(I,2)*A(2,L1)/EMU(2) & + + S(I,3)*A(3,L1)/EMU(3) + S(I,4)*A(4,L1)/EMU(4) + enddo - IF ( State_Diag%Archive_UVFluxDirect ) THEN - S = State_Diag%Map_UvFluxDirect%id2slot(K) - IF ( S > 0 ) THEN - State_Diag%UVFluxDirect(ILON,ILAT,L,S) = & - State_Diag%UVFluxDirect(ILON,ILAT,L,S) + & - ( FDIRECT(L) * UVX_CONST ) - ENDIF - ENDIF + do I = 1,M_ + do J = 1,M_ + W(J,I) = S(J,1)*T(1,I)/EMU(1) + S(J,2)*T(2,I)/EMU(2) & + + S(J,3)*T(3,I)/EMU(3) + S(J,4)*T(4,I)/EMU(4) + U(J,I) = S(J,1)*V(1,I)/EMU(1) + S(J,2)*V(2,I)/EMU(2) & + + S(J,3)*V(3,I)/EMU(3) + S(J,4)*V(4,I)/EMU(4) + enddo + enddo - IF ( State_Diag%Archive_UVFluxDiffuse ) THEN - S = State_Diag%Map_UvFluxDiffuse%id2slot(K) - IF ( S > 0 ) THEN - State_Diag%UVFluxDiffuse(ILON,ILAT,L,S) = & - State_Diag%UVFluxDiffuse(ILON,ILAT,L,S) + & - ( FDIFFUSE(L) * UVX_CONST ) - ENDIF - ENDIF - ENDDO - ENDDO - ENDIF + ! lower boundary, 2nd-order, A-matrix is full (AA) + DELTAU = ZTAU(L1) - ZTAU(L2) + D2 = 0.25e+0_fp*DELTAU + SURFAC = 4.0e+0_fp*RFL/(1.0e+0_fp + RFL) + do I = 1,M_ + D1 = EMU(I)/DELTAU + SUM0 = D1 + D2*(W(I,1)+W(I,2)+W(I,3)+W(I,4)) + SUM1 = SURFAC*SUM0 + do J = 1,M_ + AA(I,J,L1) = - D2*U(I,J) + B(I,J,L1) = B(I,J,L1) + D2*W(I,J) - SUM1*EMU(J)*WT(J) + enddo + H(I,L1) = H(I,L1) - 2.0e+0_fp*D2*C(I,L1) + SUM0*ZFLUX + enddo -!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -!%%% COMMENT OUT FAST-J DIAGNOSTICS FOR NOW (bmy, 3/5/14) -!%%% LEAVE CODE HERE SO THAT IT CAN BE RESTORED -! !--------------------------------------------------------------- -! ! Majority of heating code ignored by GEOS-Chem -! ! Everything from here until statement number 99 is ignored -! ! (SDE 03/31/13) -! !--------------------------------------------------------------- -! IF (LFJXDIAG) THEN -! DO K=1,W_ -!! -direct(DIR) and diffuse(FLX) fluxes at top(UP) (solar = negative by convention) -!! - also at bottom (DN), does not include diffuse reflected flux. -! FLXUP(K) = FJTOP(K) -! DIRUP(K) = -FLXD0(K) -! FLXDN(K) = -FJBOT(K) -! DIRDN(K) = -FSBOT(K) -! -! FREFI = FREFI + SOLF*FL(K)*FLXD0(K)/WL(K) -! FREFL = FREFL + SOLF*FL(K)*FJTOP(K)/WL(K) -! FREFS = FREFS + SOLF*FL(K)/WL(K) -! -!! for each wavelength calculate the flux budget/heating rates: -!c FLXD(L) = direct flux deposited in layer L [approx = MU0*(F(L+1) -F(L))] -!c but for spherical atmosphere! -!c FJFLX(L) = diffuse flux across top of layer L -! -!! calculate divergence of diffuse flux in each CTM layer (& t-o-a) -!! need special fix at top and bottom: -!! FABOT = total abs at L.B. & FXBOT = net diffusive flux at L.B. -! FABOT = (1.e+0_fp-RFL(K))*(FJBOT(K)+FSBOT(K)) -! FXBOT = -FJBOT(K) + RFL(K)*(FJBOT(K)+FSBOT(K)) -! FLXJ(1) = FJFLX(1,K) - FXBOT -! do L=2,LU -! FLXJ(L) = FJFLX(L,K) - FJFLX(L-1,K) -! enddo -! FLXJ(LU+1) = FJTOP(K) - FJFLX(LU,K) -!! calculate net flux deposited in each CTM layer (direct & diffuse): -! FFX0 = 0.e+0_fp -! do L=1,L1U -! FFX(K,L) = FLXD(L,K) - FLXJ(L) -! FFX0 = FFX0 + FFX(K,L) -! enddo -! -!c NB: the radiation level ABOVE the top CTM level is included in these budgets -!c these are the flux budget/heating terms for the column: -!c FFXNET(K,1) = FLXD0 direct(solar) flux dep into atmos (spherical) -!c FFXNET(K,2) = FSBOT direct(solar) flux dep onto LB (surface) -!c FFXNET(K,3) = FLXD0+FSBOT TOTAL solar into atmopshere+surface -!c FFXNET(K,4) = FJTOP diffuse flux leaving top-of-atmos -!c FFXNET(K,5) = FFX0 diffuse flux absorbed in atmos -!c FFXNET(K,6) = FABOT total (dir+dif) absorbed at LB (surface) -!c these are surface fluxes to compare direct vs. diffuse: -!c FFXNET(K,7) = FSBOT direct flux dep onto LB (surface) - for srf diags -!c FFXNET(K,8) = FJBOT diffuse flux dep onto LB (surface) -! -! FFXNET(K,1) = FLXD0(K) -! FFXNET(K,2) = FSBOT(K) -! FFXNET(K,3) = FLXD0(K) + FSBOT(K) -! FFXNET(K,4) = FJTOP(K) -! FFXNET(K,5) = FFX0 -! FFXNET(K,6) = FABOT -! FFXNET(K,7) = FSBOT(K) -! FFXNET(K,8) = FJBOT(K) -! -!! -------------------------------------------------------------------- -! enddo ! end loop over wavelength K -!! -------------------------------------------------------------------- -! FREFL = FREFL/FREFS !calculate reflected flux (energy weighted) -! FREFI = FREFI/FREFS -! -!! NB UVB = 280-320 = bins 12:15, UVA = 320-400 = bins 16:17, VIS = bin 18 (++) -! -! -!! mapping J-values from fast-JX onto CTM chemistry is done in main -! -!! -------------------------------------------------------------------- -! if ((Input_Opt%amIRoot).and.(LPRTJ)) then -!! diagnostics below are NOT returned to the CTM code -! write(6,*)'fast-JX-(7.0)---PHOTO_JX internal print:', -! & ' Atmosphere---' -!! used last called values of DTAUX and POMEGAX, should be 600 nm -! do L=1,L1U -! DTAU600(L) = DTAUX(L,W_) -! do I=1,8 -! POMG600(I,L) = POMEGAX(I,L,W_) -! enddo -! enddo -! -! ! call JP_ATM(PPJ,TTJ,DDJ,OOJ,ZZJ,DTAU600,POMG600,JXTRA, LU) -! -!! PRINT SUMMARY of mean intensity, flux, heating rates: -! if (Input_Opt%amIRoot) then -! write(6,*) -! write(6,*)'fast-JX(7.0)---PHOTO_JX internal print:', -! & ' Mean Intens---' -! write(6,'(a,5f10.4)') -! & ' SUMMARY fast-JX: albedo/SZA/u0/F-incd/F-refl/', -! & RFLECT,SZA,U0,FREFI,FREFL -! -! write(6,'(a5,18i8)') ' bin:',(K, K=NW2,NW1,-1) -! write(6,'(a5,18f8.1)') ' wvl:',(WL(K), K=NW2,NW1,-1) -! write(6,'(a,a)') ' ---- 100000=Fsolar ', -! & 'MEAN INTENSITY per wvl bin' -! endif -! do L = LU,1,-1 -! do K=NW1,NW2 -! RATIO(K) = (1.d5*FFF(K,L)/FL(K)) -! enddo -! if (Input_Opt%amIRoot) then -! write(6,'(i3,2x,18i8)') L,(RATIO(K),K=NW2,NW1,-1) -! endif -! enddo -! -! if (Input_Opt%amIRoot) then -! write(6,*) -! write(6,*)'fast-JX(7.0)---PHOTO_JX internal print:', -! ' Net Fluxes---' -! write(6,'(a11,18i8)') ' bin:',(K, K=NW2,NW1,-1) -! write(6,'(a11,18f8.1)') ' wvl:',(WL(K), K=NW2,NW1,-1) -!c write(6,'(a11,18f8.4)') ' sol in atm',(FFXNET(K,1), -!c & K=NW2,NW1,-1) -!c write(6,'(a11,18f8.4)') ' sol at srf',(FFXNET(K,2), -!c & K=NW2,NW1,-1) -! write(6,*) ' ---NET FLUXES--- ' -! write(6,'(a11,18f8.4)') ' sol TOTAL ',(FFXNET(K,3), -! & K=NW2,NW1,-1) -! write(6,'(a11,18f8.4)') ' dif outtop',(FFXNET(K,4), -! & K=NW2,NW1,-1) -! write(6,'(a11,18f8.4)') ' abs in atm',(FFXNET(K,5), -! & K=NW2,NW1,-1) -! write(6,'(a11,18f8.4)') ' abs at srf',(FFXNET(K,6), -! & K=NW2,NW1,-1) -! write(6,*) ' ---SRF FLUXES--- ' -! write(6,'(a11,18f8.4)') ' srf direct',(FFXNET(K,7), -! & K=NW2,NW1,-1) -! write(6,'(a11,18f8.4)') ' srf diffus',(FFXNET(K,8), -! & K=NW2,NW1,-1) -! write(6,'(4a)') ' ---NET ABS per layer:', -! & ' 10000=Fsolar', -! & ' [NB: values <0 = numerical error w/clouds', -! & ' or SZA>90, colm OK]' -! endif -! do L = LU,1,-1 -! do K=NW1,NW2 -! RATIO(K) = 1.d5*FFX(K,L) -! enddo -! if (Input_Opt%amIRoot) then -! write(6,'(i9,2x,18i8)') L,(RATIO(K),K=NW2,NW1,-1) -! endif -! enddo -! if (Input_Opt%amIRoot) then -! write(6,'(a)') -! write(6,'(a)') ' fast-JX (7.0)----J-values----' -! write(6,'(1x,a,72(a6,3x))') 'L= ',(TITLEJX(K), K=1,NJX) -! do L = LU,1,-1 -! write(6,'(i3,1p, 72e9.2)') L,(VALJXX(L,K),K=1,NJX) -! enddo -! endif -! -! ENDIF -!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -99 continue + do I = 1,M_ + D1 = EMU(I)/DELTAU + AA(I,I,L1) = AA(I,I,L1) + D1 + B(I,I,L1) = B(I,I,L1) + D1 + C(I,L1) = 0.0e+0_fp + enddo - END SUBROUTINE PHOTO_JX + END SUBROUTINE GEN_ID !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: opmie +! !IROUTINE: jratet ! -! !DESCRIPTION: Subroutine OPMIE is a core Fast-JX scattering subroutine, -! specifically for Mie scattering. +! !DESCRIPTION: Subroutine JRATET calculates temperature-dependent J-rates. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE OPMIE(DTAUX,POMEGAX,U0,RFL,AMF2,JXTRA, & - FJACT,FJTOP,FJBOT,FSBOT,FJFLX,FLXD,FLXD0,LU) + SUBROUTINE JRATET(PPJ,TTJ,FFF,VALJL,LCTM,LCHEM,NJXU) ! ! !USES: ! + USE CMN_FJX_Mod, ONLY : JXL1_, W_, NJX, X_, LQQ, QQQ, SQQ, TQQ + USE CMN_FJX_Mod, ONLY : QO2, QO3, Q1D ! ! !INPUT PARAMETERS: ! - REAL(fp), INTENT(IN) :: DTAUX(JXL1_,W_),POMEGAX(8,JXL1_,W_) - REAL(fp), INTENT(IN) :: AMF2(2*JXL1_+1,2*JXL1_+1) - REAL(fp), INTENT(IN) :: U0,RFL(W_) - INTEGER, INTENT(IN) :: JXTRA(JXL2_+1), LU + integer, intent(in) :: LCTM,LCHEM,NJXU + real(fp), intent(in) :: PPJ(JXL1_+1),TTJ(JXL1_+1) +! +! !INPUT/OUTPUT PARAMETERS: +! + real(fp), intent(inout) :: FFF(W_,LCTM) ! ! !OUTPUT VARIABLES: ! - REAL(fp), INTENT(OUT) :: FJACT(JXL_,W_),FJTOP(W_) - REAL(fp), INTENT(OUT) :: FJBOT(W_),FSBOT(W_) - REAL(fp), INTENT(OUT) :: FJFLX(JXL_,W_),FLXD(JXL1_,W_),FLXD0(W_) + real(fp), intent(out), dimension(LCTM,NJXU) :: VALJL +! +! !REMARKS: ! ! !REVISION HISTORY: ! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: ! - INTEGER JNDLEV(JXL_),JNELEV(JXL1_) - INTEGER JADDLV(JXL2_+1),JADDTO(JXL2_+1),L2LEV(JXL2_+1) - INTEGER JTOTL,I,II,J,K,L,LL,IX,JK, L2,L2L,L22,LZ,LZZ,ND - INTEGER L1U,L2U, LZ0,LZ1,LZMID - REAL(fp) SUMT,SUMJ - - REAL(fp) DTAU(JXL1_+1,W_),POMEGAJ(M2_,JXL2_+1,W_) - REAL(fp) TTAU(JXL2_+1,W_) - REAL(fp) FTAU2(JXL2_+1,W_),POMEGAB(M2_,W_) - REAL(fp) ATAUA,ATAUZ,XLTAU,TAUDN,TAUUP,DTAUJ,FJFLX0 - REAL(fp), DIMENSION(W_) :: TAUBTM,TAUTOP,FBTM,FTOP,ZFLUX - - ! variables used in mie code----------------------------------------- - REAL(fp), DIMENSION(W_) :: FJT,FJB - REAL(fp), DIMENSION(N_,W_) :: FJ,FZ,ZTAU - REAL(fp), DIMENSION(M2_,N_,W_) :: POMEGA - REAL(fp), DIMENSION(2*JXL1_,W_) :: FLXD2 - - !================================================================= - ! OPMIE begins here! - !================================================================= - - ! there is a parallel correspondence: - ! dimension of JX arrays JXL_ .ge. dimension that CTM is using = L_ - ! but calculation is done for L_=LU, L1_=L1U, L2_=L2U lengths of CTM - ! - ! fast-J Mie code for J_s, only uses 8-term expansion, 4-Gauss pts - ! - ! in: - ! DTAUX(1:L1_,1:W_) = optical depth of each layer - ! POMEGAX(1:8,1:L1_,1:W_) = scattering phase fn (multiplied by s-s albedo) - ! U0 = cos (SZA) - ! RFL(1:W_) = Lambertian albedo of surface - ! AMF2(1:2*L1_+1,1:2*L1_+1) = air mass factor (I,L)=wt of layer-I to layer-L - ! AMF2 now does both edges and middle of CTM layers - ! JXTRA(1:L1_) = number 0:J = no. of additional levels to be inserted - ! out: - ! FJACT(1:L_,1:W_) = mean actinic flux(diff+direct) at std CTM levels(mid-lyr) - ! (new ver 5.7 diagnostics for fluxes, deposition) fluxes 'down' are <0 - ! FJTOP(1:W_) = diffuse flux out top-of-atmosphere (TAU=0 above top model lyr) - ! FJBOT(1:W_) = diffuse flux onto surface (<0 by definition) - ! FSBOT(1:W_) = direct/solar flux onto surface (<0 by definition) - ! FJFLX(1:L_,1:W_) = diffuse flux across top of model layer L - ! this connects with FJBOT = FJFLX(0) & FJTOP = FJFLX(L_+1) (not dim!!) - ! FLXD(1:L_+1,1:W_) = solar flux deposited in layer L (includes lyr above CTM) - ! this should take into account sphericity, and is not just = mu0 - ! FLXD0(1:W_) = sum of solar flux deposited in atmos - ! does NOT include flux on lower surface, does NOT mean absorbed! - ! -------------------------------------------------------------------- - ! - ! DTAU Local optical depth of each CTM level - ! TTAU Optical depth of air vertically above each point (to top of atm) - ! FTAU2 Attenuation of solar beam - ! POMEGAJ Scattering phase function - ! - ! new ver 5.3 code adds sub-layers (# = JXTRA(L2)) using ATAU as the - ! factor increase from sub-layer to sub-layer - ! - ! ------------------SET UP FOR MIE CODE------------------------------- - ! - ! --------------wavelength independent-------------------------------- - ! - ! Transpose the ascending TTAU grid to a descending ZTAU grid. - ! Double the resolution - TTAU points become the odd points on the - ! ZTAU grid, even points needed for asymm phase fn soln, contain 'h'. - ! Odd point added at top of grid for unattenuated beam (Z='inf') - ! - ! The following mapping holds for JADDLV=0 - ! Surface: TTAU(1) ==> ZTAU(2*L2_+1) - ! Top: TTAU(L2_) ==> ZTAU(3) - ! Infinity: 0.0 ==> ZTAU(1) - ! index: 2*(L2_+1-L2)+1 ==> LZ - ! - ! Mie scattering code only used from surface to level L2_ - ! --------------------------------------------------------------------- - ! - ! --------------------------------------------------------------------- - ! Insert new levels, working downwards from the top of the atmosphere - ! to the surface (down in 'LZ', up in 'L2'). This allows ztau and pomega - ! to be incremented linearly, and the flux fz to be attenuated top-down - ! (avoiding problems where lower level fluxes are zero). - ! --------------------------------------------------------------------- - ! - ! Ascend through atmosphere transposing grid and adding extra points - ! remember L2=1 is surface of CTM, but last layer (LZ) in scattering code. - ! there are twice the number of layers in the LZ arrays (2*L2_ + 2*JADDTO + 1) - ! because we need to insert the intermediate layers (even LZ) for the - ! asymmetric scattering code. - ! - ! Transfer the L2=1:L2_+1 values (TTAU,FTAU2,POMEGAJ) onto the reverse - ! order, expanded, doubled-level scatter grid. - ! Note that we need to deal with the expansion by JADD levels (L2L). - ! These JADDLV levels are skipped and need to be interpolated later. - ! Note that only odd LZ levels are filled, - ! - ! -------------------re-grid data--------------------------------------------- - ! Calculate cumulative total and define levels we want J-values at. - ! Sum upwards for levels, and then downwards for Mie code readjustments. - ! - ! JXTRA(L2) Number of new levels to add between (L2) and (L2+1) - ! ***JXTRA(1:L2_+1) is calculated based on the aerosol+cloud OD_s - ! JADDLV(L2) Number of new levels actually added at each wavelength - ! where JADDLV = 0 when there is effectively no FTAU2 - ! JADDTO(L2) Total number of new levels to add to and above level (L2) - ! JNDLEV(L) = L2 index that maps on CTM mid-layer L - ! - ! JADDLV(L2=1:L2_) = number of levels to add between TTAU2(L2) and TTAU(L2+1) - ! JADDLV is taken from JXTRA, which is based on visible OD. - ! JADDTO(L2=1:L2_+1) is the cumulative number of levels to be added - ! these should be fixed for all wavelengths to lock-in the array sizes - - if (LU .gt. JXL_) then - call EXITC (' OPMIE: JXL_ .lt. L_') - endif - - L1U = LU + 1 - L2U = 2*LU + 2 - - do L2 = 1,L2U,1 - JADDLV(L2) = JXTRA(L2) - enddo - JADDTO(L2U+1) = 0 - do L2 = L2U,1,-1 - JADDTO(L2) = JADDTO(L2+1) + JADDLV(L2) - enddo - - ! expanded grid now included CTM edge and mid layers plus expanded - ! grid to allow for finer delta-tau at tops of clouds. - ! DIM of new grid = L2U + JADDTO(1) + 1 - - ! L2LEV(L2) = L2-index for old level L2 in expanded J-grid (w/JADDLV) - ! in absence of JADDLV, L2LEV(L2) = L2 - L2LEV(1) = 1 - do L2 = 2,L2U+1 - L2LEV(L2) = L2LEV(L2-1) + 1 + JADDLV(L2-1) - enddo - - ! JNDLEV(L=1:L_) = L2-index in expanded grid for CTM mid-layer L - ! JNELEV(L=1:L_) = L2-index for top of layer L - do L = 1,LU - JNDLEV(L) = L2LEV(2*L) - JNELEV(L) = L2LEV(2*L+1) - enddo - JNELEV(LU+1) = 0 !need to set this to top-of-atmosphere - - ND = 2*L2U + 2*JADDTO(1) + 1 - - if(ND .gt. N_) then - call EXITC (' overflow of scatter arrays: ND > N_') - endif + real(fp) VALJ(X_) + real(fp) QO2TOT, QO3TOT, QO31DY, QO31D, QQQT, TFACT + real(fp) TT,PP,DD,TT200,TFACA,TFAC0,TFAC1,TFAC2 + real(fp) QQQA,QQ2,QQ1A,QQ1B + integer J,K,L, IV - ! -------------begin wavelength dependent set up--------------------------- + !================================================================= + ! JRATET begins here! + !================================================================= - ! Reinitialize arrays - ZTAU(:,:) = 0.e+0_fp - FZ(:,:) = 0.e+0_fp - POMEGA(:,:,:) = 0.e+0_fp + if (NJXU .lt. NJX) then + call EXITC(' JRATET: CTM has not enough J-values dimensioned') + endif + do L = 1,LCTM + ! need temperature, pressure, and density at mid-layer + ! (for some quantum yields): + TT = TTJ(L) + if (L .eq. 1) then + PP = PPJ(1) + else + PP = (PPJ(L)+PPJ(L+1))*0.5e+0_fp + endif + DD = 7.24e18*PP/TT - do K=1,W_ + ! if W_=18/12, must zero bin-11/5 below 100 hPa, since O2 e-fold is + ! too weak and does not represent the decay of 215.5-221.5 nm sunlight. + if (PP .gt. 100.e+0_fp) then + if (W_ .eq. 18) then + FFF(11,L) = 0.e+0_fp + elseif (W_ .eq. 12) then + FFF(5,L) = 0.e+0_fp + endif + endif - ! Set up optical depth DTAU(L) - do L = 1,L1U - DTAU(L,K) = DTAUX(L,K) + do J = 1,NJXU + VALJ(J) = 0.e+0_fp enddo - DTAU(L1U+1,K) = 0.e+0_fp - ! Define the total scattering phase fn for each CTM layer L=1:L_+1 - ! from a DTAU-wt_d mix of aerosols, cloud & Rayleigh - ! No. of quadrature pts fixed at 4(M_), expansion of phase fn @ 8 - do L = 1,L1U - do I = 1,M2_ - POMEGAJ(I,L,K) = POMEGAX(I,L,K) - enddo + do K = 1,W_ + call X_interp (TT,QO2TOT, TQQ(1,1),QO2(K,1), & + TQQ(2,1),QO2(K,2), TQQ(3,1),QO2(K,3), LQQ(1)) + call X_interp (TT,QO3TOT, TQQ(1,2),QO3(K,1), & + TQQ(2,2),QO3(K,2), TQQ(3,2),QO3(K,3), LQQ(2)) + call X_interp (TT,QO31DY, TQQ(1,3),Q1D(K,1), & + TQQ(2,3),Q1D(K,2), TQQ(3,3),Q1D(K,3), LQQ(3)) + QO31D = QO31DY*QO3TOT + VALJ(1) = VALJ(1) + QO2TOT*FFF(K,L) + VALJ(2) = VALJ(2) + QO3TOT*FFF(K,L) + VALJ(3) = VALJ(3) + QO31D*FFF(K,L) enddo - ! Calculate attenuated incident beam exp(-TTAU/U0 = DTAU * AirMassFactor) - ! at the middle & edges of the CTM layers L=1:2*L1_+1 - ! L1_ is top-edge of CTM (ie, L=38 = 2 hPa) which has TAU > 0 - ! note that DTAU(L1_) is optical depth in the FULL CTM layer just above - FTAU2(:,:) = 0.e+0_fp - FTAU2(L2U+1,:) = 1.0e+0_fp - do LL = 1,2*L1U+1 - L = (LL+1)/2 - if (AMF2(LL,LL) .gt. 0.0e+0_fp) then - XLTAU = 0.0e+0_fp - do II = 1,2*L1U+1 - I = (II+1)/2 - XLTAU = XLTAU + 0.5e+0_fp*DTAU(I,K)*AMF2(II,LL) - enddo - if (XLTAU .lt. 76.e+0_fp) then ! zero out flux at 1e-33 - FTAU2(LL,K) = exp(-XLTAU) - endif + do J = 4,NJXU + do K = 1,W_ + ! also need to allow for Pressure interpolation if SQQ(J) = 'p' + if (SQQ(J) .eq.'p') then + call X_interp (PP,QQQT, TQQ(1,J),QQQ(K,1,J), & + TQQ(2,J),QQQ(K,2,J), TQQ(3,J),QQQ(K,3,J), LQQ(J)) + else + call X_interp (TT,QQQT, TQQ(1,J),QQQ(K,1,J), & + TQQ(2,J),QQQ(K,2,J), TQQ(3,J),QQQ(K,3,J), LQQ(J)) endif + VALJ(J) = VALJ(J) + QQQT*FFF(K,L) + enddo enddo - ! calculate direct solar flux deposited in each CTM half-layer: L=1:L2_ - ! use FSBOT for surface flux, cannot do layer above CTM (L_+1) - FLXD2(:,:) = 0.e+0_fp - do LL = 1,2*L1U - if (AMF2(LL,LL) .gt. 0.e+0_fp) then - FLXD2(LL,K) = (FTAU2(LL+1,K) - FTAU2(LL,K))/AMF2(LL,LL) - endif + do J=1,NJXU + VALJL(L,J) = VALJ(J) enddo - if (AMF2(1,1) .gt. 0.e+0_fp) then - FSBOT(K) = FTAU2(1,K)/AMF2(1,1) - else - FSBOT(K) = 0.e+0_fp - endif - do LL = 2,2*L1U,2 - L=LL/2 - FLXD(L,K) = FLXD2(LL,K)+FLXD2(LL-1,K) + enddo + + ! Zero non-chemistry layers + if (LCHEM.lt.LCTM) then + do L=(LCTM+1),LCHEM + do J=1,NJXU + VALJL(L,J) = 0.e+0_fp enddo + enddo + endif - ! integrate solar flux depositied in CTM layers L=1:L_, cannot do top layer - ! note FLXD0 .ne. (1.e+0_fp - FTAU(L_+1))/AMF(L_+1,L_+1) with spherical atmos - FLXD0(K) = 0.e+0_fp - if (AMF2(2*L1U,2*L1U) .gt. 0.e+0_fp) then - do L=1,L1U - FLXD0(K) = FLXD0(K) + FLXD(L,K) - enddo + END SUBROUTINE JRATET +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: x_interp +! +! !DESCRIPTION: Subroutine X\_INTERP is an up-to-three-point linear interp. +! function for cross-sections. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE X_INTERP (TINT,XINT,T1,X1,T2,X2,T3,X3,L123) +! +! !USES: +! +! +! !INPUT PARAMETERS: +! + REAL(fp), INTENT(IN) :: TINT,T1,T2,T3, X1,X2,X3 + INTEGER, INTENT(IN) :: L123 +! +! !OUTPUT VARIABLES: +! + REAL(fp), INTENT(OUT) :: XINT +! +! !REMARKS: +! +! !REVISION HISTORY: +! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + REAL(fp) TFACT + + !================================================================= + ! X_INTERP begins here! + !================================================================= + + if (L123 .le. 1) then + XINT = X1 + elseif (L123 .eq. 2) then + TFACT = max(0.e+0_fp,min(1.e+0_fp,(TINT-T1)/(T2-T1) )) + XINT = X1 + TFACT*(X2 - X1) + else + if (TINT.le. T2) then + TFACT = max(0.e+0_fp,min(1.e+0_fp,(TINT-T1)/(T2-T1) )) + XINT = X1 + TFACT*(X2 - X1) + else + TFACT = max(0.e+0_fp,min(1.e+0_fp,(TINT-T2)/(T3-T2) )) + XINT = X2 + TFACT*(X3 - X2) endif + endif - ! --------------------------------------------------------------------- - ! Take optical properties on CTM layers and convert to a photolysis - ! level grid corresponding to layer centres and boundaries. This is - ! required so that J-values can be calculated for the centre of CTM - ! layers; the index of these layers is kept in the JNDLEV array. - ! --------------------------------------------------------------------- - ! Now combine the CTM layer edges (1:L_+2) with the CTM mid-layer - ! points (1:L_) plus 1 for the mid point of added top layer. - ! combine these edge- and mid-layer points into grid of size: - ! L2_+1 = 2*L1_+1 = 2*L_+3 - ! calculate column optical depths above each level, TTAU(1:L2_+1) - ! note that TTAU(L2_+1)=0 and TTAU(1)=total OD + END SUBROUTINE X_INTERP +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: sphere2 +! +! !DESCRIPTION: Subroutine SPHERE2 is an AMF2. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE SPHERE2 (U0,ZHL,AMF2,L1U,LJX1U) +! +! !USES: +! + USE CMN_FJX_Mod, ONLY: RAD +! +! !INPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: L1U, LJX1U + REAL(fp), INTENT(IN) :: U0,ZHL(L1U+1) +! +! !OUTPUT VARIABLES: +! + REAL(fp), INTENT(OUT) :: AMF2(2*LJX1U+1,2*LJX1U+1) +! +! !REMARKS: +! Quoting from the original: +! New v6.2: does AirMassFactors for mid-layer, needed for SZA ~ 90 +! This new AMF2 does each of the half-layers of the CTM separately, +! whereas the original, based on the pratmo code did the whole layers +! and thus calculated the ray-path to the CTM layre edges, NOT the middle. +! Since fast-JX is meant to calculate the intensity at the mid-layer, the +! solar beam at low sun (interpolated between layer edges) was incorrect. +! This new model does make some approximations of the geometry of the layers: +! the CTM layer is split evenly in mass (good) and in height (approx). +! . +! Calculation of spherical geometry; derive tangent heights, slant path +! lengths and air mass factor for each layer. Not called when +! SZA > 98 degrees. Beyond 90 degrees, include treatment of emergent +! beam (where tangent height is below altitude J-value desired at). +! . +! --------------------------------------------------------------------- +! Inputs: +! U0 cos(solar zenith angle) +! RAD radius of Earth mean sea level (cm) +! ZHL(L) height (cm) of the bottom edge of CTM level L +! ZZHT scale height (cm) used above top of CTM (ZHL(L_+1)) +! L1U dimension of CTM = levels +1 (L+1 = above-CTM level) +! Outputs: +! AMF2(I,J) = air mass factor for CTM level I for sunlight reaching J +! ( these are calculated for both layer middle and layer edge) +! --------------------------------------------------------------------- +! +! !REVISION HISTORY: +! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER, PARAMETER :: LSPH_ = 200 + + ! RZ Distance from centre of Earth to each point (cm) + ! RQ Square of radius ratios + ! SHADHT Shadow height for the current SZA + ! XL Slant path between points + INTEGER I, J, K, II, L2 + REAL(fp) XMU1,XMU2,XL,DIFF,SHADHT,RZ(LSPH_+1) + REAL(fp) RZ2(2*LSPH_+1),RQ2(2*LSPH_+1) - TTAU(L2U+1,K) = 0.0e+0_fp - do L2 = L2U,1,-1 - L = (L2+1)/2 - DTAUJ = 0.5e+0_fp * DTAU(L,K) - TTAU(L2,K) = TTAU(L2+1,K) + DTAUJ - enddo + !================================================================= + ! SPHERE2 begins here! + !================================================================= - ! -solar flux incident on lower boundary & Lambertian reflect factor: - if (FSBOT(K) .gt. 0.e+0_fp) then - ZFLUX(K) = FSBOT(K)*RFL(K)/(1.e+0_fp+RFL(K)) - else - ZFLUX(K) = 0.e+0_fp - endif + ! must have top-of-atmos (NOT top-of-CTM) defined + ! ZHL(L1U+1) = ZHL(L1U) + ZZHT - ! Calculate scattering properties, level centres then level boundaries - !>>>>>be careful of order, we are overwriting/shifting the 'POMEGAJ' - ! upward in index - do L2 = L2U,2,-2 - L = L2/2 - do I = 1,M2_ - POMEGAJ(I,L2,K) = POMEGAJ(I,L,K) - enddo - enddo - ! lower boundary value is set (POMEGAJ(I,1)), but set upper: - do I = 1,M2_ - POMEGAJ(I,L2U+1,K) = POMEGAJ(I,L2U,K) - enddo - ! now have POMEGAJ filled at even points from L2=3:L2_-1 - ! use inverse interpolation for correct tau-weighted values at edges - do L2 = 3,L2U-1,2 - TAUDN = TTAU(L2-1,K)-TTAU(L2,K) - TAUUP = TTAU(L2,K)-TTAU(L2+1,K) - do I = 1,M2_ - POMEGAJ(I,L2,K) = (POMEGAJ(I,L2-1,K)*TAUDN + & - POMEGAJ(I,L2+1,K)*TAUUP) / (TAUDN+TAUUP) - enddo - enddo + if (L1U .gt. LSPH_) then + call EXITC(' SPHERE2: temp arrays not large enough') + endif - ! at this point FTAU2(1:L2_+1) and POMEAGJ(1:8, 1:L2_+1) - ! where FTAU2(L2_+1) = 1.0 = top-of-atmos, FTAU2(1) = surface + RZ(1) = RAD + ZHL(1) + do II = 2,L1U+1 + RZ(II) = RAD + ZHL(II) + enddo - do L2 = 1,L2U+1 ! L2 = index of CTM edge- and mid-layers - L2L = L2LEV(L2) ! L2L = index for L2 in expanded scale(JADD) - LZ = ND + 2 - 2*L2L ! LZ = index for L2 in scatt arrays - ZTAU(LZ,K) = TTAU(L2,K) - FZ(LZ,K) = FTAU2(L2,K) - do I=1,M2_ - POMEGA(I,LZ,K) = POMEGAJ(I,L2,K) - enddo - enddo + ! calculate heights for edges of split CTM-layers + L2 = 2*L1U + do II = 2,L2,2 + I = II/2 + RZ2(II-1) = RZ(I) + RZ2(II) = 0.5e+0_fp*(RZ(I)+RZ(I+1)) + enddo + RZ2(L2+1) = RZ(L1U+1) + do II = 1,L2 + RQ2(II) = (RZ2(II)/RZ2(II+1))**2 + enddo - ! Now go thru the pairs of L2 levels to see if we need JADD levels - do L2 = 1,L2U ! L2 = index of CTM edge- and mid-layers - L2L = L2LEV(L2) ! L2L = index for L2 in expanded scale(JADD) - LZ = ND + 2 - 2*L2L ! LZ = index for L2 in scatt arrays - L22 = L2LEV(L2+1) - L2LEV(L2) - 1 ! L22 = 0 if no added levels + ! shadow height for SZA > 90 + if (U0 .lt. 0.0e+0_fp) then + SHADHT = RZ2(1)/sqrt(1.0e+0_fp - U0**2) + else + SHADHT = 0.e+0_fp + endif - if (L22 .gt. 0) then - TAUBTM(K) = TTAU(L2,K) - TAUTOP(K) = TTAU(L2+1,K) - FBTM(K) = FTAU2(L2,K) - FTOP(K) = FTAU2(L2+1,K) - do I = 1,M2_ - POMEGAB(I,K) = POMEGAJ(I,L2,K) - enddo + ! up from the surface calculating the slant paths between each level + ! and the level above, and deriving the appropriate Air Mass Factor + AMF2(:,:) = 0.e+0_fp - ! to fit L22 new layers between TAUBOT > TAUTOP, calculate new - ! 1/ATAU factor - ! such that TAU(just above TAU-btm) = ATUAZ * TAUBTM < TAUBTM - ATAUZ = exp(-log(TAUBTM(K)/max(TAUTOP(K),ATAU0))/float(L22+1)) - do L = 1,L22 ! add odd levels between L2LEV(L2) & L2LEV(L2+1) - LZZ = LZ - 2*L ! LZZ = index(odd) of added level in scatt arrays - ZTAU(LZZ,K) = TAUBTM(K) * ATAUZ + do 16 J = 1,2*L1U+1 - ! fraction from TAUBTM=>TAUTOP - ATAUA=(TAUBTM(K)-ZTAU(LZZ,K))/(TAUBTM(K)-TAUTOP(K)) - ! solar flux at interp-levels: use exp(TAU/U0) if U0>0.02 - ! (89 deg), else scale by TAU - if (U0 .gt. 0.02e+0_fp) then - FZ(LZZ,K) = FTOP(K) * exp((TAUTOP(K)-ZTAU(LZZ,K))/U0) - else - if (FBTM(K) .lt. 1.d-32) then - FZ(LZZ,K) = 0.e+0_fp - else - FZ(LZZ,K) = FBTM(K) * (FTOP(K)/FBTM(K))**ATAUA - endif - endif - do I = 1,M2_ - POMEGA(I,LZZ,K) = POMEGAB(I,K) + & - ATAUA*(POMEGAJ(I,L2+1,K)-POMEGAB(I,K)) - enddo - TAUBTM(K) = ZTAU(LZZ,K) - FBTM(K) = FZ(LZZ,K) - do I = 1,M2_ - POMEGAB(I,K) = POMEGA(I,LZZ,K) - enddo - enddo - endif - enddo + ! Air Mass Factors all zero if below the tangent height + if (RZ2(J) .lt. SHADHT) goto 16 - ! Now fill in the even points with simple interpolation in scatter arrays - do LZ = 2,ND-1,2 - ZTAU(LZ,K) = 0.5e+0_fp*(ZTAU(LZ-1,K)+ZTAU(LZ+1,K)) - FZ(LZ,K) = sqrt(FZ(LZ-1,K)*FZ(LZ+1,K)) - do I=1,M2_ - POMEGA(I,LZ,K) = 0.5e+0_fp*(POMEGA(I,LZ-1,K)+POMEGA(I,LZ+1,K)) - enddo + ! Ascend from layer J calculating AMF2s + XMU1 = abs(U0) + do I = J,2*L1U + XMU2 = sqrt(1.0e+0_fp - RQ2(I)*(1.0e+0_fp-XMU1**2)) + XL = RZ2(I+1)*XMU2 - RZ2(I)*XMU1 + AMF2(I,J) = XL / (RZ2(I+1)-RZ2(I)) + XMU1 = XMU2 enddo - enddo ! wavelength loop! - - ! -------------------------------------------------------------------- - call MIESCT(FJ,FJT,FJB,POMEGA,FZ,ZTAU,ZFLUX,RFL,U0,ND) - ! -------------------------------------------------------------------- + ! fix above top-of-atmos (L=L1U+1), must set DTAU(L1U+1)=0 + AMF2(2*L1U+1,J) = 1.e+0_fp - ! Move mean intensity from scatter array FJ(LZ=1:ND) - ! to CTM mid-level array FJACT(L=1:L_) + ! Twilight case - Emergent Beam, calc air mass factors below layer + if (U0 .ge. 0.0e+0_fp) goto 16 - do K=1,W_ + ! Descend from layer J + XMU1 = abs(U0) + do II = J-1,1,-1 + DIFF = RZ2(II+1)*sqrt(1.0e+0_fp-XMU1**2)-RZ2(II) + if (II.eq.1) DIFF = max(DIFF,0.e+0_fp) ! filter - ! mean intensity at mid-layer: 4* + solar - !do L = 1,LU - ! L2L = JNDLEV(L) - ! LZ = ND+2 - 2*L2L - ! FJACT(L,K) = 4.e+0_fp*FJ(LZ,K) + FZ(LZ,K) - !enddo + ! Tangent height below current level - beam passes through twice + if (DIFF .lt. 0.0e+0_fp) then + XMU2 = sqrt(1.0e+0_fp - (1.0e+0_fp-XMU1**2)/RQ2(II)) + XL = abs(RZ2(II+1)*XMU1-RZ2(II)*XMU2) + AMF2(II,J) = 2.e+0_fp*XL/(RZ2(II+1)-RZ2(II)) + XMU1 = XMU2 - ! mean intensity averaged throughout layer: - do L = 1,LU - LZ0 = ND+2 - 2*JNELEV(L) - if (L .gt. 1) then - LZ1 = ND+2 - 2*JNELEV(L-1) + ! Lowest level intersected by emergent beam else - LZ1 = ND + XL = RZ2(II+1)*XMU1*2.0e+0_fp + AMF2(II,J) = XL/(RZ2(II+1)-RZ2(II)) + goto 16 endif - SUMJ = (4.e+0_fp*FJ(LZ0,K)+FZ(LZ0,K))*(ZTAU(LZ0+2,K)-ZTAU(LZ0,K)) & - + (4.e+0_fp*FJ(LZ1,K)+FZ(LZ1,K))*(ZTAU(LZ1,K)-ZTAU(LZ1-2,K)) - SUMT = ZTAU(LZ0+2,K)-ZTAU(LZ0,K) + ZTAU(LZ1,K)-ZTAU(LZ1-2,K) - - do LZ = LZ0+2,LZ1-2,2 - SUMJ =SUMJ+(4.e+0_fp*FJ(LZ,K)+FZ(LZ,K))*(ZTAU(LZ+2,K)-ZTAU(LZ-2,K)) - SUMT =SUMT + ZTAU(LZ+2,K)-ZTAU(LZ-2,K) - enddo - FJACT(L,K) = SUMJ/SUMT - - enddo - - ! mean diffuse flux: 4 (not solar) at top of layer L - ! average (tau-wtd) the h's just above and below the L-edge - do L = 1,LU - L2L = JNELEV(L) - LZ = ND+2 - 2*L2L - FJFLX0 = (ZTAU(LZ+1,K)-ZTAU(LZ,K))/(ZTAU(LZ+1,K)-ZTAU(LZ-1,K)) - FJFLX(L,K)=4.e+0_fp*(FJ(LZ-1,K)*FJFLX0 +FJ(LZ+1,K)*(1.e+0_fp-FJFLX0)) enddo - ! diffuse fluxes reflected at top, incident at bottom - FJTOP(K) = FJT(K) - FJBOT(K) = FJB(K) - - enddo ! wavelength loop! +16 continue - END SUBROUTINE OPMIE + END SUBROUTINE SPHERE2 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: miesct +! !IROUTINE: extral ! -! !DESCRIPTION: Subroutine MIESCT is an adaptation of the Prather radiative -! transfer code (mjp, 10/95). +! !DESCRIPTION: Subroutine EXTRAL adds sub-layers to thick cloud/aerosol layers +! using log-spacing for sub-layers of increasing thickness ATAU. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE MIESCT(FJ,FJT,FJB, POMEGA,FZ,ZTAU,ZFLUX,RFL,U0,ND) + SUBROUTINE EXTRAL (Input_Opt,State_Diag,DTAUX,L1X,L2X,NX,JXTRA,ILON,ILAT) ! ! !USES: ! + USE CMN_FJX_Mod, ONLY : ATAU, ATAU0, JTAUMX + USE Input_Opt_Mod, ONLY : OptInput + USE State_Diag_Mod, ONLY : DgnState ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: ND - REAL(fp), INTENT(IN) :: POMEGA(M2_,N_,W_),FZ(N_,W_),ZTAU(N_,W_), & - RFL(W_),U0,ZFLUX(W_) + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options + INTEGER, INTENT(IN) :: L1X,L2X !index of cloud/aerosol + integer, intent(in) :: NX !Mie scattering array size + real(fp), intent(in) :: DTAUX(L1X) !cloud+3aerosol OD in each layer + integer, intent(in) :: ILON, ILAT !lon,lat index +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object ! ! !OUTPUT VARIABLES: ! - REAL(fp), INTENT(OUT) :: FJ(N_,W_),FJT(W_),FJB(W_) + integer, intent(out):: JXTRA(L2X+1)!number of sub-layers to be added ! ! !REMARKS: -! Prather, 1974, Astrophys. J. 192, 787-792. -! Solution of inhomogeneous Rayleigh scattering atmosphere. -! (original Rayleigh w/ polarization) -! Cochran and Trafton, 1978, Ap.J., 219, 756-762. -! Raman scattering in the atmospheres of the major planets. -! (first use of anisotropic code) -! Jacob, Gottlieb and Prather, 1989, J.Geophys.Res., 94, 12975-13002. -! Chemistry of a polluted cloudy boundary layer, -! (documentation of extension to anisotropic scattering) +! DTAUX(L=1:L1X) = Optical Depth in layer L (generally 600 nm OD) +! This can be just cloud or cloud+aerosol, it is used only to set +! the number in levels to insert in each layer L +! Set for log-spacing of tau levels, increasing top-down. ! . -! takes atmospheric structure and source terms from std J-code -! ALSO limited to 4 Gauss points, only calculates mean field! (M=1) +! N.B. the TTAU, etc calculated here are NOT used elsewhere +! . +! The log-spacing parameters have been tested for convergence and chosen +! to be within 0.5% for ranges OD=1-500, rflect=0-100%, mu0=0.1-1.0 +! use of ATAU = 1.18 and min = 0.01, gives at most +135 pts for OD=100 +! ATAU = 1.12 now recommended for more -accurate heating rates (not J's) ! ! !REVISION HISTORY: ! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: ! - REAL(fp) PM(M_,M2_),PM0(M2_) - INTEGER I, IM ,K + INTEGER JTOTL,I,L,L2 + REAL(fp) TTAU(L2X+1),DTAUJ, ATAU1,ATAULN,ATAUM,ATAUN1 + +#ifdef MODEL_GEOS + ! ckeller, 5/21/18 + LOGICAL :: failed + INTEGER :: N, NMAX + REAL(fp) :: ATAULOC +#endif !================================================================= - ! MIESCT begins here! + ! EXTRAL begins here! !================================================================= - do I = 1,M_ - call LEGND0 (EMU(I),PM0,M2_) - do IM = 1,M2_ - PM(I,IM) = PM0(IM) +#ifdef MODEL_GEOS + ! This routine now repeats the extra layer computation with an + ! increased heating rate (ATAU) if there is an array overfloat. + ! This is repeated maximum 5 times. The diagnostics arrays + ! EXTRAL_NLEVS and EXTRAL_NITER archive the number of extra layers + ! and the number of iterations needed to converge to that solution. + ! Ideally, NITER is 1 and no adjustments to the heating rate are + ! needed (ckeller, 5/22/18). + NMAX = MAX(1,Input_Opt%FJX_EXTRAL_ITERMAX) + DO N=1,NMAX + ! local heating rate + ATAULOC = ATAU + (0.06*(N-1)) +#endif + + ! Reinitialize arrays + TTAU(:) = 0.e+0_fp + JXTRA(:) = 0 + + ! combine these edge- and mid-layer points into grid of size: + ! L2X+1 = 2*L1X+1 = 2*L_+3 + ! calculate column optical depths above each level, TTAU(1:L2X+1) + ! note that TTAU(L2X+1)=0 and TTAU(1)=total OD + ! + ! Divide thick layers to achieve better accuracy in the scattering code + ! In the original fast-J, equal sub-layers were chosen, this is wasteful + ! and this new code (ver 5.3) uses log-scale: + ! Each succesive layer (down) increase thickness by ATAU > 1 + ! e.g., if ATAU = 2, a layer with OD = 15 could be divided into + ! 4 sub-layers with ODs = 1 - 2 - 4 - 8 + ! The key parameters are: + ! ATAU = factor increase from one layer to the next + ! ATAUMN = the smallest OD layer desired + ! JTAUMX = maximum number of divisions (i.e., may not get to ATAUMN) + ! These are set in CMN_FJX_MOD, and have been tested/optimized + +#if defined( MODEL_GEOS ) + ATAU1 = ATAULOC - 1.e+0_fp + ATAULN = log(ATAULOC) +#else + ATAU1 = ATAU - 1.e+0_fp + ATAULN = log(ATAU) +#endif + TTAU(L2X+1) = 0.0e+0_fp + + do L2 = L2X,1,-1 + L = (L2+1)/2 + DTAUJ = 0.5e+0_fp * DTAUX(L) + TTAU(L2) = TTAU(L2+1) + DTAUJ + ! Now compute the number of log-spaced sub-layers to be added in + ! the interval TTAU(L2) > TTAU(L2+1) + ! The objective is to have successive TAU-layers increasing by factor + ! ATAU >1 the number of sub-layers + 1 + if (TTAU(L2) .lt. ATAU0) then + JXTRA(L2) = 0 + else + ATAUM = max(ATAU0, TTAU(L2+1)) + ATAUN1 = log(TTAU(L2)/ATAUM) / ATAULN + JXTRA(L2) = min(JTAUMX, max(0, int(ATAUN1 - 0.5e+0_fp))) + endif enddo - enddo - call LEGND0 (-U0,PM0,M2_) - do IM=1,M2_ - PM0(IM) = 0.25e+0_fp*PM0(IM) + ! check on overflow of arrays, cut off JXTRA at lower L if too many + ! levels +#ifdef MODEL_GEOS + failed = .FALSE. + JTOTL = L2X + 2 + do L2 = L2X,1,-1 + JTOTL = JTOTL + JXTRA(L2) + if (JTOTL .gt. NX/2) then + failed = .TRUE. + exit + endif + enddo + + ! exit loop if not failed + if ( .not. failed ) exit enddo - ! BLKSLV now called with all the wavelength arrays (K=1:W_) - call BLKSLV(FJ,POMEGA,FZ,ZTAU,ZFLUX,RFL,PM,PM0,FJT,FJB, ND) + ! print error and cut off JXTRAL at lower L if too many levels + if ( failed ) then + IF ( Input_Opt%FJX_EXTRAL_ERR ) THEN + write(6,'(A,7I5)') 'N_/L2_/L2-cutoff JXTRA:',ILON,ILAT,NX,L2X,L2,JXTRA(L2),JTOTL + ENDIF + do L = L2,1,-1 + JXTRA(L) = 0 + enddo + !go to 10 + endif + !enddo + !10 continue - END SUBROUTINE MIESCT + ! Fill diagnostics arrays + IF ( State_Diag%Archive_EXTRALNLEVS ) THEN + State_Diag%EXTRALNLEVS(ILON,ILAT) = SUM(JXTRA(:)) + ENDIF + IF ( State_Diag%Archive_EXTRALNITER ) THEN + State_Diag%EXTRALNITER(ILON,ILAT) = N + ENDIF +#else + JTOTL = L2X + 2 + do L2 = L2X,1,-1 + JTOTL = JTOTL + JXTRA(L2) + if (JTOTL .gt. NX/2) then + write(6,'(A,7I5)') 'N_/L2_/L2-cutoff JXTRA:',ILON,ILAT,NX,L2X,L2,JXTRA(L2),JTOTL + do L = L2,1,-1 + JXTRA(L) = 0 + enddo + go to 10 + endif + enddo +10 continue +#endif + + END SUBROUTINE EXTRAL !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: legnd0 +! !IROUTINE: exitc ! -! !DESCRIPTION: Subroutine LEGND0 calculates ordinary Legendre functions -! of X (real) from $P[0] = PL(1) = 1, P[1] = X, \dots, P[N-1] = PL(N)$ +! !DESCRIPTION: Subroutine EXITC forces an error in GEOS-Chem and quits. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE LEGND0 (X,PL,N) + SUBROUTINE EXITC (T_EXIT) ! ! !USES: ! + USE ERROR_MOD, ONLY : ERROR_STOP ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: N - REAL(fp), INTENT(IN) :: X -! -! !OUTPUT VARIABLES: -! - REAL(fp), INTENT(OUT) :: PL(N) -! -! !REMARKS: + CHARACTER(LEN=*), INTENT(IN) :: T_EXIT ! ! !REVISION HISTORY: ! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: ! - INTEGER I - REAL(fp) DEN - - !================================================================= - ! LEGND0 begins here! - !================================================================= - - ! Always does PL(2) = P[1] - PL(1) = 1.e+0_fp - PL(2) = X - do I = 3,N - DEN = (I-1) - PL(I) = PL(I-1)*X*(2.e+0_fp-1.0/DEN) - PL(I-2)*(1.e+0_fp-1.e+0_fp/DEN) - enddo + CALL ERROR_STOP( T_EXIT, 'fast_jx_mod.F90' ) - END SUBROUTINE LEGND0 + END SUBROUTINE EXITC !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: set_prof +! !IROUTINE: opmie ! -! !DESCRIPTION: Subroutine SET\_PROF sets vertical profiles for a given -! latitude and longitude. +! !DESCRIPTION: Subroutine OPMIE is a core Fast-JX scattering subroutine, +! specifically for Mie scattering. !\\ !\\ ! !INTERFACE: ! - SUBROUTINE SET_PROF( YLAT, MONTH, DAY, T_CTM, P_CTM, & - CLDOD, DSTOD, AEROD, O3_CTM, O3_TOMS, & - AERCOL, T_CLIM, O3_CLIM, Z_CLIM, AIR_CLIM, & - Input_Opt, State_Grid ) + SUBROUTINE OPMIE(DTAUX,POMEGAX,U0,RFL,AMF2,JXTRA, & + FJACT,FJTOP,FJBOT,FSBOT,FJFLX,FLXD,FLXD0,LU) ! ! !USES: ! - USE CMN_SIZE_Mod, ONLY : NAER, NRH - USE Input_Opt_Mod, ONLY : OptInput - USE PhysConstants, ONLY : AIRMW, AVO, g0, BOLTZ - USE State_Grid_Mod, ONLY : GrdState + USE CMN_FJX_Mod, ONLY : ATAU0, JXL_, JXL1_, JXL2_, M2_, N_, W_ ! ! !INPUT PARAMETERS: ! - REAL(fp), INTENT(IN) :: YLAT ! Latitude (degrees) - INTEGER, INTENT(IN) :: MONTH ! Month - INTEGER, INTENT(IN) :: DAY ! Day *of month* - REAL(fp), INTENT(IN) :: T_CTM(L1_) ! CTM temperatures (K) - REAL(fp), INTENT(IN) :: O3_TOMS ! O3 column (DU) - REAL(fp), INTENT(IN) :: P_CTM(L1_+1) ! CTM edge pressures (hPa) - REAL(fp), INTENT(INOUT) :: CLDOD(L_) ! Cloud optical depth - REAL(fp), INTENT(IN) :: DSTOD(L_,NDUST) ! Mineral dust OD - REAL(fp), INTENT(IN) :: AEROD(L_,A_) ! Aerosol OD - REAL(fp), INTENT(IN) :: O3_CTM(L1_) ! CTM ozone (molec/cm3) - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + REAL(fp), INTENT(IN) :: DTAUX(JXL1_,W_),POMEGAX(8,JXL1_,W_) + REAL(fp), INTENT(IN) :: AMF2(2*JXL1_+1,2*JXL1_+1) + REAL(fp), INTENT(IN) :: U0,RFL(W_) + INTEGER, INTENT(IN) :: JXTRA(JXL2_+1), LU ! ! !OUTPUT VARIABLES: ! - REAL(fp), INTENT(OUT) :: AERCOL(A_,L1_) ! Aerosol column - REAL(fp), INTENT(OUT) :: T_CLIM(L1_) ! Clim. temperatures (K) - REAL(fp), INTENT(OUT) :: Z_CLIM(L1_+1) ! Edge altitudes (cm) - REAL(fp), INTENT(OUT) :: O3_CLIM(L1_) ! O3 column depth (#/cm2) - REAL(fp), INTENT(OUT) :: AIR_CLIM(L1_) ! O3 column depth (#/cm2) -! -! !REMARKS: + REAL(fp), INTENT(OUT) :: FJACT(JXL_,W_),FJTOP(W_) + REAL(fp), INTENT(OUT) :: FJBOT(W_),FSBOT(W_) + REAL(fp), INTENT(OUT) :: FJFLX(JXL_,W_),FLXD(JXL1_,W_),FLXD0(W_) ! ! !REVISION HISTORY: -! 30 Mar 2013 - S. D. Eastham - Adapted from J. Mao code -! See https://github.com/geoschem/geos-chem for complete history +! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: ! - INTEGER :: I, K, L, M, N, LCTM - REAL(fp) :: DLOGP,F0,T0,B0,PB,PC,XC,MASFAC,SCALEH - REAL(fp) :: PSTD(52),OREF2(51),TREF2(51) - REAL(fp) :: PROFCOL, ODSUM - REAL(fp), PARAMETER :: ODMAX = 200.0e+0_fp + INTEGER JNDLEV(JXL_),JNELEV(JXL1_) + INTEGER JADDLV(JXL2_+1),JADDTO(JXL2_+1),L2LEV(JXL2_+1) + INTEGER JTOTL,I,II,J,K,L,LL,IX,JK, L2,L2L,L22,LZ,LZZ,ND + INTEGER L1U,L2U, LZ0,LZ1,LZMID + REAL(fp) SUMT,SUMJ + + REAL(fp) DTAU(JXL1_+1,W_),POMEGAJ(M2_,JXL2_+1,W_) + REAL(fp) TTAU(JXL2_+1,W_) + REAL(fp) FTAU2(JXL2_+1,W_),POMEGAB(M2_,W_) + REAL(fp) ATAUA,ATAUZ,XLTAU,TAUDN,TAUUP,DTAUJ,FJFLX0 + REAL(fp), DIMENSION(W_) :: TAUBTM,TAUTOP,FBTM,FTOP,ZFLUX + + ! variables used in mie code----------------------------------------- + REAL(fp), DIMENSION(W_) :: FJT,FJB + REAL(fp), DIMENSION(N_,W_) :: FJ,FZ,ZTAU + REAL(fp), DIMENSION(M2_,N_,W_) :: POMEGA + REAL(fp), DIMENSION(2*JXL1_,W_) :: FLXD2 + + !================================================================= + ! OPMIE begins here! + !================================================================= - ! Local variables for quantities from Input_Opt - LOGICAL :: USE_ONLINE_O3 + ! there is a parallel correspondence: + ! dimension of JX arrays JXL_ .ge. dimension that CTM is using = L_ + ! but calculation is done for L_=LU, L1_=L1U, L2_=L2U lengths of CTM + ! + ! fast-J Mie code for J_s, only uses 8-term expansion, 4-Gauss pts + ! + ! in: + ! DTAUX(1:L1_,1:W_) = optical depth of each layer + ! POMEGAX(1:8,1:L1_,1:W_) = scattering phase fn (multiplied by s-s albedo) + ! U0 = cos (SZA) + ! RFL(1:W_) = Lambertian albedo of surface + ! AMF2(1:2*L1_+1,1:2*L1_+1) = air mass factor (I,L)=wt of layer-I to layer-L + ! AMF2 now does both edges and middle of CTM layers + ! JXTRA(1:L1_) = number 0:J = no. of additional levels to be inserted + ! out: + ! FJACT(1:L_,1:W_) = mean actinic flux(diff+direct) at std CTM levels(mid-lyr) + ! (new ver 5.7 diagnostics for fluxes, deposition) fluxes 'down' are <0 + ! FJTOP(1:W_) = diffuse flux out top-of-atmosphere (TAU=0 above top model lyr) + ! FJBOT(1:W_) = diffuse flux onto surface (<0 by definition) + ! FSBOT(1:W_) = direct/solar flux onto surface (<0 by definition) + ! FJFLX(1:L_,1:W_) = diffuse flux across top of model layer L + ! this connects with FJBOT = FJFLX(0) & FJTOP = FJFLX(L_+1) (not dim!!) + ! FLXD(1:L_+1,1:W_) = solar flux deposited in layer L (includes lyr above CTM) + ! this should take into account sphericity, and is not just = mu0 + ! FLXD0(1:W_) = sum of solar flux deposited in atmos + ! does NOT include flux on lower surface, does NOT mean absorbed! + ! -------------------------------------------------------------------- + ! + ! DTAU Local optical depth of each CTM level + ! TTAU Optical depth of air vertically above each point (to top of atm) + ! FTAU2 Attenuation of solar beam + ! POMEGAJ Scattering phase function + ! + ! new ver 5.3 code adds sub-layers (# = JXTRA(L2)) using ATAU as the + ! factor increase from sub-layer to sub-layer + ! + ! ------------------SET UP FOR MIE CODE------------------------------- + ! + ! --------------wavelength independent-------------------------------- + ! + ! Transpose the ascending TTAU grid to a descending ZTAU grid. + ! Double the resolution - TTAU points become the odd points on the + ! ZTAU grid, even points needed for asymm phase fn soln, contain 'h'. + ! Odd point added at top of grid for unattenuated beam (Z='inf') + ! + ! The following mapping holds for JADDLV=0 + ! Surface: TTAU(1) ==> ZTAU(2*L2_+1) + ! Top: TTAU(L2_) ==> ZTAU(3) + ! Infinity: 0.0 ==> ZTAU(1) + ! index: 2*(L2_+1-L2)+1 ==> LZ + ! + ! Mie scattering code only used from surface to level L2_ + ! --------------------------------------------------------------------- + ! + ! --------------------------------------------------------------------- + ! Insert new levels, working downwards from the top of the atmosphere + ! to the surface (down in 'LZ', up in 'L2'). This allows ztau and pomega + ! to be incremented linearly, and the flux fz to be attenuated top-down + ! (avoiding problems where lower level fluxes are zero). + ! --------------------------------------------------------------------- + ! + ! Ascend through atmosphere transposing grid and adding extra points + ! remember L2=1 is surface of CTM, but last layer (LZ) in scattering code. + ! there are twice the number of layers in the LZ arrays (2*L2_ + 2*JADDTO + 1) + ! because we need to insert the intermediate layers (even LZ) for the + ! asymmetric scattering code. + ! + ! Transfer the L2=1:L2_+1 values (TTAU,FTAU2,POMEGAJ) onto the reverse + ! order, expanded, doubled-level scatter grid. + ! Note that we need to deal with the expansion by JADD levels (L2L). + ! These JADDLV levels are skipped and need to be interpolated later. + ! Note that only odd LZ levels are filled, + ! + ! -------------------re-grid data--------------------------------------------- + ! Calculate cumulative total and define levels we want J-values at. + ! Sum upwards for levels, and then downwards for Mie code readjustments. + ! + ! JXTRA(L2) Number of new levels to add between (L2) and (L2+1) + ! ***JXTRA(1:L2_+1) is calculated based on the aerosol+cloud OD_s + ! JADDLV(L2) Number of new levels actually added at each wavelength + ! where JADDLV = 0 when there is effectively no FTAU2 + ! JADDTO(L2) Total number of new levels to add to and above level (L2) + ! JNDLEV(L) = L2 index that maps on CTM mid-layer L + ! + ! JADDLV(L2=1:L2_) = number of levels to add between TTAU2(L2) and TTAU(L2+1) + ! JADDLV is taken from JXTRA, which is based on visible OD. + ! JADDTO(L2=1:L2_+1) is the cumulative number of levels to be added + ! these should be fixed for all wavelengths to lock-in the array sizes - !================================================================= - ! SET_PROF begins here! - !================================================================= + if (LU .gt. JXL_) then + call EXITC (' OPMIE: JXL_ .lt. L_') + endif - ! Copy fields from INPUT_OPT - USE_ONLINE_O3 = Input_Opt%USE_ONLINE_O3 + L1U = LU + 1 + L2U = 2*LU + 2 - ! Zero aerosol column - DO K=1,A_ - DO I=1,L1_ - AERCOL(K,I) = 0.e+0_fp - ENDDO - ENDDO + do L2 = 1,L2U,1 + JADDLV(L2) = JXTRA(L2) + enddo + JADDTO(L2U+1) = 0 + do L2 = L2U,1,-1 + JADDTO(L2) = JADDTO(L2+1) + JADDLV(L2) + enddo - ! Scale optical depths to stay within limits - ODSUM = 0.e+0_fp - DO I=1,L_ - CLDOD(I) = DBLE(CLDOD(I)) - ODSUM = ODSUM + CLDOD(I) - ENDDO - IF (ODSUM.gt.ODMAX) THEN - ODSUM = ODMAX/ODSUM ! Temporary - DO I=1,L_ - CLDOD(I) = CLDOD(I)*ODSUM - ENDDO - ODSUM = ODMAX - ENDIF + ! expanded grid now included CTM edge and mid layers plus expanded + ! grid to allow for finer delta-tau at tops of clouds. + ! DIM of new grid = L2U + JADDTO(1) + 1 - !================================================================= - ! Set up pressure levels for O3/T climatology - assume that value - ! given for each 2 km z* level applies from 1 km below to 1 km - ! above, so select pressures at these boundaries. Surface level - ! values at 1000 mb are assumed to extend down to the actual - ! surface pressure for this lat/lon. - !================================================================= - PSTD(1) = MAX(P_CTM(1),1000.e+0_fp) - PSTD(2) = 1000.e+0_fp * 10.e+0_fp ** (-1.e+0_fp/16.e+0_fp) - DLOGP = 10.e+0_fp**(-2.e+0_fp/16.e+0_fp) - DO I=3,51 - PSTD(I) = PSTD(I-1) * DLOGP - ENDDO - PSTD(52) = 0.e+0_fp + ! L2LEV(L2) = L2-index for old level L2 in expanded J-grid (w/JADDLV) + ! in absence of JADDLV, L2LEV(L2) = L2 + L2LEV(1) = 1 + do L2 = 2,L2U+1 + L2LEV(L2) = L2LEV(L2-1) + 1 + JADDLV(L2-1) + enddo - ! Mass factor - delta-Pressure [hPa] to delta-Column [molec/cm2] - MASFAC = 100.e+0_fp * AVO / ( AIRMW * g0 * 10.e+0_fp ) + ! JNDLEV(L=1:L_) = L2-index in expanded grid for CTM mid-layer L + ! JNELEV(L=1:L_) = L2-index for top of layer L + do L = 1,LU + JNDLEV(L) = L2LEV(2*L) + JNELEV(L) = L2LEV(2*L+1) + enddo + JNELEV(LU+1) = 0 !need to set this to top-of-atmosphere - ! Select appropriate monthly and latitudinal profiles - ! Now use YLAT instead of Oliver's YDGRD(NSLAT) (bmy, 9/13/99) - M = MAX( 1, MIN( 12, MONTH ) ) - L = MAX( 1, MIN( 18, ( INT(YLAT) + 99 ) / 10 ) ) + ND = 2*L2U + 2*JADDTO(1) + 1 - ! Temporary arrays for climatology data - DO I = 1, 51 - OREF2(I) = OREF(I,L,M) - TREF2(I) = TREF(I,L,M) - ENDDO + if(ND .gt. N_) then + call EXITC (' overflow of scatter arrays: ND > N_') + endif - ! Apportion O3 and T on supplied climatology z* levels onto CTM levels - ! with mass (pressure) weighting, assuming constant mixing ratio and - ! temperature half a layer on either side of the point supplied. - DO I = 1, L1_ - F0 = 0.e+0_fp - T0 = 0.e+0_fp - DO K = 1, 51 - PC = MIN( P_CTM(I), PSTD(K) ) - PB = MAX( P_CTM(I+1), PSTD(K+1) ) - IF ( PC .GT. PB ) THEN - XC = ( PC - PB ) / ( P_CTM(I) - P_CTM(I+1) ) - F0 = F0 + OREF2(K)*XC - T0 = T0 + TREF2(K)*XC - ENDIF - ENDDO - T_CLIM(I) = T0 - O3_CLIM(I) = F0 * 1.e-6_fp - ENDDO + ! -------------begin wavelength dependent set up--------------------------- - !================================================================= - ! Calculate effective altitudes using scale height at each level - !================================================================= - Z_CLIM(1) = 0.e+0_fp - DO I = 1, L_ - SCALEH = BOLTZ * 1.e+4_fp * MASFAC * T_CLIM(I) + ! Reinitialize arrays + ZTAU(:,:) = 0.e+0_fp + FZ(:,:) = 0.e+0_fp + POMEGA(:,:,:) = 0.e+0_fp - Z_CLIM(I+1) = Z_CLIM(I) - ( LOG( P_CTM(I+1) / P_CTM(I) ) * SCALEH ) - ENDDO - Z_CLIM(L1_+1)=Z_CLIM(L1_) + ZZHT + do K=1,W_ - !================================================================= - ! Add Aerosol Column - include aerosol types here. Currently use - ! soot water and ice; assume black carbon x-section of 10 m2/g, - ! independent of wavelength; assume limiting temperature for - ! ice of -40 deg C. - !================================================================= - DO I = 1, L_ - ! Turn off uniform black carbon profile (rvm, bmy, 2/27/02) - AERCOL(1,I) = 0e+0_fp - - IF ( T_CTM(I) .GT. 233.e+0_fp ) THEN - AERCOL(2,I) = CLDOD(I) - AERCOL(3,I) = 0.e+0_fp - ELSE - AERCOL(2,I) = 0.e+0_fp - AERCOL(3,I) = CLDOD(I) - ENDIF + ! Set up optical depth DTAU(L) + do L = 1,L1U + DTAU(L,K) = DTAUX(L,K) + enddo + DTAU(L1U+1,K) = 0.e+0_fp - ! Also add in aerosol optical depth columns (rvm, bmy, 9/30/00) - DO N = 1, NDUST - AERCOL(3+N,I) = DSTOD(I,N) - ENDDO + ! Define the total scattering phase fn for each CTM layer L=1:L_+1 + ! from a DTAU-wt_d mix of aerosols, cloud & Rayleigh + ! No. of quadrature pts fixed at 4(M_), expansion of phase fn @ 8 + do L = 1,L1U + do I = 1,M2_ + POMEGAJ(I,L,K) = POMEGAX(I,L,K) + enddo + enddo - ! Also add in other aerosol optical depth columns (rvm, bmy, 2/27/02) - DO N = 1, NAER*NRH - AERCOL(3+N+NDUST,I) = AEROD(I,N) - ENDDO + ! Calculate attenuated incident beam exp(-TTAU/U0 = DTAU * AirMassFactor) + ! at the middle & edges of the CTM layers L=1:2*L1_+1 + ! L1_ is top-edge of CTM (ie, L=38 = 2 hPa) which has TAU > 0 + ! note that DTAU(L1_) is optical depth in the FULL CTM layer just above + FTAU2(:,:) = 0.e+0_fp + FTAU2(L2U+1,:) = 1.0e+0_fp + do LL = 1,2*L1U+1 + L = (LL+1)/2 + if (AMF2(LL,LL) .gt. 0.0e+0_fp) then + XLTAU = 0.0e+0_fp + do II = 1,2*L1U+1 + I = (II+1)/2 + XLTAU = XLTAU + 0.5e+0_fp*DTAU(I,K)*AMF2(II,LL) + enddo + if (XLTAU .lt. 76.e+0_fp) then ! zero out flux at 1e-33 + FTAU2(LL,K) = exp(-XLTAU) + endif + endif + enddo - ENDDO + ! calculate direct solar flux deposited in each CTM half-layer: L=1:L2_ + ! use FSBOT for surface flux, cannot do layer above CTM (L_+1) + FLXD2(:,:) = 0.e+0_fp + do LL = 1,2*L1U + if (AMF2(LL,LL) .gt. 0.e+0_fp) then + FLXD2(LL,K) = (FTAU2(LL+1,K) - FTAU2(LL,K))/AMF2(LL,LL) + endif + enddo + if (AMF2(1,1) .gt. 0.e+0_fp) then + FSBOT(K) = FTAU2(1,K)/AMF2(1,1) + else + FSBOT(K) = 0.e+0_fp + endif - DO K = 1,(3+NDUST+(NAER)) - AERCOL(K,L1_ ) = 0.e+0_fp - ENDDO + do LL = 2,2*L1U,2 + L=LL/2 + FLXD(L,K) = FLXD2(LL,K)+FLXD2(LL-1,K) + enddo - !================================================================= - ! Calculate column quantities for FAST-JX - !================================================================= - PROFCOL = 0e+0_fp + ! integrate solar flux depositied in CTM layers L=1:L_, cannot do top layer + ! note FLXD0 .ne. (1.e+0_fp - FTAU(L_+1))/AMF(L_+1,L_+1) with spherical atmos + FLXD0(K) = 0.e+0_fp + if (AMF2(2*L1U,2*L1U) .gt. 0.e+0_fp) then + do L=1,L1U + FLXD0(K) = FLXD0(K) + FLXD(L,K) + enddo + endif - DO I = 1, L1_ + ! --------------------------------------------------------------------- + ! Take optical properties on CTM layers and convert to a photolysis + ! level grid corresponding to layer centres and boundaries. This is + ! required so that J-values can be calculated for the centre of CTM + ! layers; the index of these layers is kept in the JNDLEV array. + ! --------------------------------------------------------------------- + ! Now combine the CTM layer edges (1:L_+2) with the CTM mid-layer + ! points (1:L_) plus 1 for the mid point of added top layer. + ! combine these edge- and mid-layer points into grid of size: + ! L2_+1 = 2*L1_+1 = 2*L_+3 + ! calculate column optical depths above each level, TTAU(1:L2_+1) + ! note that TTAU(L2_+1)=0 and TTAU(1)=total OD - ! Monthly mean air Column [molec/cm2] - AIR_CLIM(I) = ( P_CTM(I) - P_CTM(I+1) ) * MASFAC + TTAU(L2U+1,K) = 0.0e+0_fp + do L2 = L2U,1,-1 + L = (L2+1)/2 + DTAUJ = 0.5e+0_fp * DTAU(L,K) + TTAU(L2,K) = TTAU(L2+1,K) + DTAUJ + enddo - ! Monthly mean O3 column [molec/cm2] - O3_CLIM(I) = O3_CLIM(I) * AIR_CLIM(I) + ! -solar flux incident on lower boundary & Lambertian reflect factor: + if (FSBOT(K) .gt. 0.e+0_fp) then + ZFLUX(K) = FSBOT(K)*RFL(K)/(1.e+0_fp+RFL(K)) + else + ZFLUX(K) = 0.e+0_fp + endif - ! Monthly mean O3 column [DU] - PROFCOL = PROFCOL + ( O3_CLIM(I) / 2.69e+16_fp ) - ENDDO + ! Calculate scattering properties, level centres then level boundaries + !>>>>>be careful of order, we are overwriting/shifting the 'POMEGAJ' + ! upward in index + do L2 = L2U,2,-2 + L = L2/2 + do I = 1,M2_ + POMEGAJ(I,L2,K) = POMEGAJ(I,L,K) + enddo + enddo + ! lower boundary value is set (POMEGAJ(I,1)), but set upper: + do I = 1,M2_ + POMEGAJ(I,L2U+1,K) = POMEGAJ(I,L2U,K) + enddo + ! now have POMEGAJ filled at even points from L2=3:L2_-1 + ! use inverse interpolation for correct tau-weighted values at edges + do L2 = 3,L2U-1,2 + TAUDN = TTAU(L2-1,K)-TTAU(L2,K) + TAUUP = TTAU(L2,K)-TTAU(L2+1,K) + do I = 1,M2_ + POMEGAJ(I,L2,K) = (POMEGAJ(I,L2-1,K)*TAUDN + & + POMEGAJ(I,L2+1,K)*TAUUP) / (TAUDN+TAUUP) + enddo + enddo - !! Top values are special (do not exist in CTM data) - !AIR_CLIM(L1_) = P_CTM(L1_) * MASFAC - !O3_CLIM(L1_) = O3_CLIM(L1_) * AIR_CLIM(L1_) + ! at this point FTAU2(1:L2_+1) and POMEAGJ(1:8, 1:L2_+1) + ! where FTAU2(L2_+1) = 1.0 = top-of-atmos, FTAU2(1) = surface - !================================================================= - ! Now weight the O3 column by the observed monthly mean TOMS. - ! Missing data is denoted by the flag -999. (mje, bmy, 7/15/03) - ! - ! TOMS/SBUV MERGED TOTAL OZONE DATA, Version 8, Revision 3. - ! Resolution: 5 x 10 deg. - ! - ! Methodology (bmy, 2/12/07) - ! ---------------------------------------------------------------- - ! FAST-J comes with its own default O3 column climatology (from - ! McPeters 1992 & Nagatani 1991), which is stored in the input - ! file "jv_atms.dat". These "FAST-J default" O3 columns are used - ! in the computation of the actinic flux and other optical - ! quantities for the FAST-J photolysis. - ! - ! The TOMS/SBUV O3 columns and 1/2-monthly O3 trends (contained - ! in the TOMS_200701 directory) are read into GEOS-Chem by routine - ! READ_TOMS in "toms_mod.f". Missing values (i.e. locations where - ! there are no data) in the TOMS/SBUV O3 columns are defined by - ! the flag -999. - ! - ! After being read from disk in routine READ_TOMS, the TOMS/SBUV - ! O3 data are then passed to the FAST-J routine "set_prof.f". In - ! "set_prof.f", a test is done to make sure that the TOMS/SBUV O3 - ! columns and 1/2-monthly trends do not have any missing values - ! for (lat,lon) location for the given month. If so, then the - ! TOMS/SBUV O3 column data is interpolated to the current day and - ! is used to weight the "FAST-J default" O3 column. This - ! essentially "forces" the "FAST-J default" O3 column values to - ! better match the observations, as defined by TOMS/SBUV. - ! - ! If there are no TOMS/SBUV O3 columns (and 1/2-monthly trends) - ! at a (lat,lon) location for given month, then FAST-J will revert - ! to its own "default" climatology for that location and month. - ! Therefore, the TOMS O3 can be thought of as an "overlay" data - ! -- it is only used if it exists. - ! - ! Note that there are no TOMS/SBUV O3 columns at the higher - ! latitudes. At these latitudes, the code will revert to using - ! the "FAST-J default" O3 columns. - ! - ! As of February 2007, we have TOMS/SBUV data for 1979 thru 2005. - ! 2006 TOMS/SBUV data is incomplete as of this writing. For years - ! 2006 and onward, we use 2005 TOMS O3 columns. - ! - ! This methodology was originally adopted by Mat Evans. Symeon - ! Koumoutsaris was responsible for creating the downloading and - ! processing the TOMS O3 data files from 1979 thru 2005 in the - ! TOMS_200701 directory. - !================================================================= + do L2 = 1,L2U+1 ! L2 = index of CTM edge- and mid-layers + L2L = L2LEV(L2) ! L2L = index for L2 in expanded scale(JADD) + LZ = ND + 2 - 2*L2L ! LZ = index for L2 in scatt arrays + ZTAU(LZ,K) = TTAU(L2,K) + FZ(LZ,K) = FTAU2(L2,K) + do I=1,M2_ + POMEGA(I,LZ,K) = POMEGAJ(I,L2,K) + enddo + enddo - ! Since we now have stratospheric ozone calculated online, use - ! this instead of archived profiles for all chemistry-grid cells - ! The variable O3_CTM is obtained from State_Met%Species, and will be 0 - ! outside the chemgrid (in which case we use climatology) + ! Now go thru the pairs of L2 levels to see if we need JADD levels + do L2 = 1,L2U ! L2 = index of CTM edge- and mid-layers + L2L = L2LEV(L2) ! L2L = index for L2 in expanded scale(JADD) + LZ = ND + 2 - 2*L2L ! LZ = index for L2 in scatt arrays + L22 = L2LEV(L2+1) - L2LEV(L2) - 1 ! L22 = 0 if no added levels - ! Scale monthly O3 profile to the daily O3 profile (if available) - DO I = 1, L1_ + if (L22 .gt. 0) then + TAUBTM(K) = TTAU(L2,K) + TAUTOP(K) = TTAU(L2+1,K) + FBTM(K) = FTAU2(L2,K) + FTOP(K) = FTAU2(L2+1,K) + do I = 1,M2_ + POMEGAB(I,K) = POMEGAJ(I,L2,K) + enddo - ! Use online O3 values in the chemistry grid if selected - IF ( (USE_ONLINE_O3) .and. & - (I <= State_Grid%MaxChemLev) .and. & - (O3_CTM(I) > 0e+0_fp) ) THEN + ! to fit L22 new layers between TAUBOT > TAUTOP, calculate new + ! 1/ATAU factor + ! such that TAU(just above TAU-btm) = ATUAZ * TAUBTM < TAUBTM + ATAUZ = exp(-log(TAUBTM(K)/max(TAUTOP(K),ATAU0))/float(L22+1)) + do L = 1,L22 ! add odd levels between L2LEV(L2) & L2LEV(L2+1) + LZZ = LZ - 2*L ! LZZ = index(odd) of added level in scatt arrays + ZTAU(LZZ,K) = TAUBTM(K) * ATAUZ - ! Convert from molec/cm3 to molec/cm2 - O3_CLIM(I) = O3_CTM(I) * (Z_CLIM(I+1)-Z_CLIM(I)) + ! fraction from TAUBTM=>TAUTOP + ATAUA=(TAUBTM(K)-ZTAU(LZZ,K))/(TAUBTM(K)-TAUTOP(K)) + ! solar flux at interp-levels: use exp(TAU/U0) if U0>0.02 + ! (89 deg), else scale by TAU + if (U0 .gt. 0.02e+0_fp) then + FZ(LZZ,K) = FTOP(K) * exp((TAUTOP(K)-ZTAU(LZZ,K))/U0) + else + if (FBTM(K) .lt. 1.d-32) then + FZ(LZZ,K) = 0.e+0_fp + else + FZ(LZZ,K) = FBTM(K) * (FTOP(K)/FBTM(K))**ATAUA + endif + endif + do I = 1,M2_ + POMEGA(I,LZZ,K) = POMEGAB(I,K) + & + ATAUA*(POMEGAJ(I,L2+1,K)-POMEGAB(I,K)) + enddo + TAUBTM(K) = ZTAU(LZZ,K) + FBTM(K) = FZ(LZZ,K) + do I = 1,M2_ + POMEGAB(I,K) = POMEGA(I,LZZ,K) + enddo + enddo + endif + enddo - ! Otherwise, use O3 values from the met fields or TOMS/SBUV - ELSEIF (O3_TOMS > 0e+0_fp) THEN + ! Now fill in the even points with simple interpolation in scatter arrays + do LZ = 2,ND-1,2 + ZTAU(LZ,K) = 0.5e+0_fp*(ZTAU(LZ-1,K)+ZTAU(LZ+1,K)) + FZ(LZ,K) = sqrt(FZ(LZ-1,K)*FZ(LZ+1,K)) + do I=1,M2_ + POMEGA(I,LZ,K) = 0.5e+0_fp*(POMEGA(I,LZ-1,K)+POMEGA(I,LZ+1,K)) + enddo + enddo - O3_CLIM(I) = O3_CLIM(I) * ( O3_TOMS / PROFCOL ) + enddo ! wavelength loop! - ENDIF + ! -------------------------------------------------------------------- + call MIESCT(FJ,FJT,FJB,POMEGA,FZ,ZTAU,ZFLUX,RFL,U0,ND) + ! -------------------------------------------------------------------- - ENDDO + ! Move mean intensity from scatter array FJ(LZ=1:ND) + ! to CTM mid-level array FJACT(L=1:L_) - END SUBROUTINE SET_PROF -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: set_aer -! -! !DESCRIPTION: Subroutine SET\_AER fills out the array MIEDX. -! Each entry connects a GEOS-Chem aerosol to its Fast-JX counterpart: -! MIEDX(Fast-JX index) = (GC index) -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_AER( Input_Opt ) -! -! !USES: -! - USE CMN_SIZE_Mod, ONLY : NRHAER, NRH - USE Input_Opt_Mod, ONLY : OptInput -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options -! -! !REVISION HISTORY: -! 31 Mar 2013 - S. D. Eastham - Adapted from J. Mao FJX v6.2 implementation -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: I, J, K - INTEGER :: IND(NRHAER) + do K=1,W_ - !================================================================= - ! SER_AER begins here! - !================================================================= + ! mean intensity at mid-layer: 4* + solar + !do L = 1,LU + ! L2L = JNDLEV(L) + ! LZ = ND+2 - 2*L2L + ! FJACT(L,K) = 4.e+0_fp*FJ(LZ,K) + FZ(LZ,K) + !enddo - ! Taken from aerosol_mod.F - IND = (/22,29,36,43,50/) + ! mean intensity averaged throughout layer: + do L = 1,LU + LZ0 = ND+2 - 2*JNELEV(L) + if (L .gt. 1) then + LZ1 = ND+2 - 2*JNELEV(L-1) + else + LZ1 = ND + endif + SUMJ = (4.e+0_fp*FJ(LZ0,K)+FZ(LZ0,K))*(ZTAU(LZ0+2,K)-ZTAU(LZ0,K)) & + + (4.e+0_fp*FJ(LZ1,K)+FZ(LZ1,K))*(ZTAU(LZ1,K)-ZTAU(LZ1-2,K)) + SUMT = ZTAU(LZ0+2,K)-ZTAU(LZ0,K) + ZTAU(LZ1,K)-ZTAU(LZ1-2,K) - DO I=1,AN_ - MIEDX(I) = 0 - ENDDO + do LZ = LZ0+2,LZ1-2,2 + SUMJ =SUMJ+(4.e+0_fp*FJ(LZ,K)+FZ(LZ,K))*(ZTAU(LZ+2,K)-ZTAU(LZ-2,K)) + SUMT =SUMT + ZTAU(LZ+2,K)-ZTAU(LZ-2,K) + enddo + FJACT(L,K) = SUMJ/SUMT - ! Select Aerosol/Cloud types to be used - define types here - ! Each of these types must be listed in the order used by OPMIE.F - - ! Clouds - MIEDX(1) = 3 ! Black carbon absorber - MIEDX(2) = 10 ! Water Cloud (Deirmenjian 8 micron) - MIEDX(3) = 14 ! Irregular Ice Cloud (Mishchenko) - - ! Dust - MIEDX(4) = 15 ! Mineral Dust .15 micron (rvm, 9/30/00) - MIEDX(5) = 16 ! Mineral Dust .25 micron (rvm, 9/30/00) - MIEDX(6) = 17 ! Mineral Dust .4 micron (rvm, 9/30/00) - MIEDX(7) = 18 ! Mineral Dust .8 micron (rvm, 9/30/00) - MIEDX(8) = 19 ! Mineral Dust 1.5 micron (rvm, 9/30/00) - MIEDX(9) = 20 ! Mineral Dust 2.5 micron (rvm, 9/30/00) - MIEDX(10) = 21 ! Mineral Dust 4.0 micron (rvm, 9/30/00) - - ! Aerosols - DO I=1,NRHAER - DO J=1,NRH - MIEDX(10+((I-1)*NRH)+J)=IND(I)+J-1 - ENDDO - ENDDO + enddo - ! Stratospheric aerosols - SSA/STS and solid PSCs - MIEDX(10+(NRHAER*NRH)+1) = 4 ! SSA/LBS/STS - MIEDX(10+(NRHAER*NRH)+2) = 14 ! NAT/ice PSCs + ! mean diffuse flux: 4 (not solar) at top of layer L + ! average (tau-wtd) the h's just above and below the L-edge + do L = 1,LU + L2L = JNELEV(L) + LZ = ND+2 - 2*L2L + FJFLX0 = (ZTAU(LZ+1,K)-ZTAU(LZ,K))/(ZTAU(LZ+1,K)-ZTAU(LZ-1,K)) + FJFLX(L,K)=4.e+0_fp*(FJ(LZ-1,K)*FJFLX0 +FJ(LZ+1,K)*(1.e+0_fp-FJFLX0)) + enddo - ! Ensure all 'AN_' types are valid selections - do i=1,AN_ - IF (Input_Opt%amIRoot) write(6,1000) MIEDX(i),TITLEAA(MIEDX(i)) - if (MIEDX(i).gt.NAA.or.MIEDX(i).le.0) then - if (Input_Opt%amIRoot) then - write(6,1200) MIEDX(i),NAA - endif - CALL EXITC('Bad MIEDX value.') - endif - enddo + ! diffuse fluxes reflected at top, incident at bottom + FJTOP(K) = FJT(K) + FJBOT(K) = FJB(K) -1000 format('Using Aerosol type: ',i3,1x,a) -1200 format('Aerosol type ',i3,' unsuitable; supplied values must be ', & - 'between 1 and ',i3) + enddo ! wavelength loop! - END SUBROUTINE SET_AER + END SUBROUTINE OPMIE !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: rd_prof_nc +! !IROUTINE: miesct ! -! !DESCRIPTION: Subroutine RAD\_PROF\_NC reads in the reference climatology -! from a NetCDF file rather than an ASCII .dat. +! !DESCRIPTION: Subroutine MIESCT is an adaptation of the Prather radiative +! transfer code (mjp, 10/95). !\\ !\\ ! !INTERFACE: ! - SUBROUTINE RD_PROF_NC( Input_Opt, RC ) + SUBROUTINE MIESCT(FJ,FJT,FJB, POMEGA,FZ,ZTAU,ZFLUX,RFL,U0,ND) ! ! !USES: ! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - -#if defined( MODEL_CESM ) - USE CAM_PIO_UTILS, ONLY : CAM_PIO_OPENFILE - USE IOFILEMOD, ONLY : GETFIL - USE PIO, ONLY : PIO_CLOSEFILE - USE PIO, ONLY : PIO_INQ_DIMID - USE PIO, ONLY : PIO_INQ_DIMLEN - USE PIO, ONLY : PIO_INQ_VARID - USE PIO, ONLY : PIO_GET_VAR - USE PIO, ONLY : PIO_NOERR - USE PIO, ONLY : PIO_NOWRITE - USE PIO, ONLY : FILE_DESC_T -#else - USE m_netcdf_io_open - USE m_netcdf_io_read - USE m_netcdf_io_readattr - USE m_netcdf_io_close -#endif + USE CMN_FJX_Mod, ONLY : EMU, M_, M2_, N_, W_ +! ! ! !INPUT PARAMETERS: ! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + INTEGER, INTENT(IN) :: ND + REAL(fp), INTENT(IN) :: POMEGA(M2_,N_,W_),FZ(N_,W_),ZTAU(N_,W_), & + RFL(W_),U0,ZFLUX(W_) ! -! !OUTPUT PARAMETERS: +! !OUTPUT VARIABLES: ! - INTEGER, INTENT(OUT) :: RC ! Success or failure? + REAL(fp), INTENT(OUT) :: FJ(N_,W_),FJT(W_),FJB(W_) ! ! !REMARKS: -! This file was automatically generated by the Perl scripts in the -! NcdfUtilities package (which ships w/ GEOS-Chem) and was subsequently -! hand-edited. +! Prather, 1974, Astrophys. J. 192, 787-792. +! Solution of inhomogeneous Rayleigh scattering atmosphere. +! (original Rayleigh w/ polarization) +! Cochran and Trafton, 1978, Ap.J., 219, 756-762. +! Raman scattering in the atmospheres of the major planets. +! (first use of anisotropic code) +! Jacob, Gottlieb and Prather, 1989, J.Geophys.Res., 94, 12975-13002. +! Chemistry of a polluted cloudy boundary layer, +! (documentation of extension to anisotropic scattering) +! . +! takes atmospheric structure and source terms from std J-code +! ALSO limited to 4 Gauss points, only calculates mean field! (M=1) ! ! !REVISION HISTORY: -! 19 Apr 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history +! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: ! - ! Scalars - LOGICAL :: FileExists ! Does input file exist? - INTEGER :: fId ! netCDF file ID - - ! Strings - CHARACTER(LEN=255) :: nc_dir ! netCDF directory name - CHARACTER(LEN=255) :: nc_file ! netCDF file name - CHARACTER(LEN=255) :: nc_path ! netCDF path name - CHARACTER(LEN=255) :: v_name ! netCDF variable name - CHARACTER(LEN=255) :: a_name ! netCDF attribute name - CHARACTER(LEN=255) :: a_val ! netCDF attribute value - CHARACTER(LEN=255) :: FileMsg - CHARACTER(LEN=255) :: ErrMsg - CHARACTER(LEN=255) :: ThisLoc - - ! Arrays - INTEGER :: st3d(3), ct3d(3) ! For 3D arrays - -#if defined( MODEL_CESM ) - type(FILE_DESC_T) :: ncid - INTEGER :: vId, iret -#endif - - !================================================================= - ! RD_PROF_NC begins here! - !================================================================= - - ! Initialize - ! Assume success - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at RD_PROF_NC (in module GeosCore/fast_jx_mod.F90)' - - ! Directory and file names - nc_dir = TRIM( Input_Opt%CHEM_INPUTS_DIR ) // 'FastJ_201204/' - nc_file = 'fastj.jv_atms_dat.nc' - nc_path = TRIM( nc_dir ) // TRIM( nc_file ) - - !================================================================= - ! In dry-run mode, print file path to dryrun log and exit. - ! Otherwise, print file path to stdout and continue. - !================================================================= - - ! Test if the file exists - INQUIRE( FILE=TRIM( nc_path ), EXIST=FileExists ) - - ! Test if the file exists and define an output string - IF ( FileExists ) THEN - FileMsg = 'FAST-JX (RD_PROF_NC): Opening' - ELSE - FileMsg = 'FAST-JX (RD_PROF_NC): REQUIRED FILE NOT FOUND' - ENDIF - - ! Write to stdout for both regular and dry-run simulations - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( nc_path ) -300 FORMAT( a, ' ', a ) - ENDIF - - ! For dry-run simulations, return to calling program. - ! For regular simulations, throw an error if we can't find the file. - IF ( Input_Opt%DryRun ) THEN - RETURN - ELSE - IF ( .not. FileExists ) THEN - WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( nc_path ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - - !========================================================================= - ! Open and read data from the netCDF file - !========================================================================= - - ! Open netCDF file -#if defined( MODEL_CESM ) - CALL CAM_PIO_OPENFILE( ncid, TRIM(nc_path), PIO_NOWRITE ) -#else - CALL Ncop_Rd( fId, TRIM(nc_path) ) -#endif - - ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 100 ) REPEAT( '%', 79 ) - WRITE( 6, 110 ) TRIM(nc_file) - WRITE( 6, 120 ) TRIM(nc_dir) - ENDIF - - !---------------------------------------- - ! VARIABLE: T - !---------------------------------------- - - ! Variable name - v_name = "T" - - ! Read T from file - st3d = (/ 1, 1, 1 /) - ct3d = (/ 51, 18, 12 /) -#if defined( MODEL_CESM ) - iret = PIO_INQ_VARID( ncid, trim(v_name), vid ) - iret = PIO_GET_VAR( ncid, vid, TREF ) -#else - CALL NcRd( TREF, fId, TRIM(v_name), st3d, ct3d ) - - ! Read the T:units attribute - a_name = "units" - CALL NcGet_Var_Attributes( fId,TRIM(v_name),TRIM(a_name),a_val ) - - ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) - ENDIF -#endif - - !---------------------------------------- - ! VARIABLE: O3 - !---------------------------------------- - - ! Variable name - v_name = "O3" - - ! Read O3 from file - st3d = (/ 1, 1, 1 /) - ct3d = (/ 51, 18, 12 /) -#if defined( MODEL_CESM ) - iret = PIO_INQ_VARID( ncid, trim(v_name), vid ) - iret = PIO_GET_VAR( ncid, vid, OREF ) -#else - CALL NcRd( OREF, fId, TRIM(v_name), st3d, ct3d ) - - ! Read the O3:units attribute - a_name = "units" - CALL NcGet_Var_Attributes( fId,TRIM(v_name),TRIM(a_name),a_val ) - - ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) - ENDIF -#endif + REAL(fp) PM(M_,M2_),PM0(M2_) + INTEGER I, IM ,K !================================================================= - ! Cleanup and quit + ! MIESCT begins here! !================================================================= - ! Close netCDF file -#if defined( MODEL_CESM ) - CALL PIO_CLOSEFILE( ncid ) -#else - CALL NcCl( fId ) -#endif + do I = 1,M_ + call LEGND0 (EMU(I),PM0,M2_) + do IM = 1,M2_ + PM(I,IM) = PM0(IM) + enddo + enddo - ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 140 ) - WRITE( 6, 100 ) REPEAT( '%', 79 ) - ENDIF + call LEGND0 (-U0,PM0,M2_) + do IM=1,M2_ + PM0(IM) = 0.25e+0_fp*PM0(IM) + enddo - ! FORMAT statements -100 FORMAT( a ) -110 FORMAT( '%% Opening file : ', a ) -120 FORMAT( '%% in directory : ', a, / , '%%' ) -130 FORMAT( '%% Successfully read ', a, ' [', a, ']' ) -140 FORMAT( '%% Successfully closed file!' ) + ! BLKSLV now called with all the wavelength arrays (K=1:W_) + call BLKSLV(FJ,POMEGA,FZ,ZTAU,ZFLUX,RFL,PM,PM0,FJT,FJB, ND) - END SUBROUTINE RD_PROF_NC + END SUBROUTINE MIESCT !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: photrate_adj +! !IROUTINE: legnd0 ! -! !DESCRIPTION: Subroutine PHOTRATE\_ADJ adjusts certain photolysis rates -! for chemistry. +! !DESCRIPTION: Subroutine LEGND0 calculates ordinary Legendre functions +! of X (real) from $P[0] = PL(1) = 1, P[1] = X, \dots, P[N-1] = PL(N)$ !\\ !\\ ! !INTERFACE: ! - SUBROUTINE PHOTRATE_ADJ( Input_Opt, State_Diag, State_Met, & - I, J, L, & - FRAC, RC ) + SUBROUTINE LEGND0 (X,PL,N) ! ! !USES: ! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE State_Diag_Mod, ONLY : DgnState - USE State_Met_Mod, ONLY : MetState ! ! !INPUT PARAMETERS: ! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input_Options object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object - INTEGER, INTENT(IN) :: I, J, L ! Lon, lat, lev indices - REAL(fp), INTENT(IN) :: FRAC ! Result of SO4_PHOTFRAC, - ! called from DO_FLEXCHEM -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object + INTEGER, INTENT(IN) :: N + REAL(fp), INTENT(IN) :: X ! -! !OUTPUT PARAMETERS: +! !OUTPUT VARIABLES: ! - INTEGER, INTENT(OUT) :: RC ! Success or failure + REAL(fp), INTENT(OUT) :: PL(N) ! ! !REMARKS: -! NOTE: The netCDF diagnostics are attached in DO_FLEXCHEM so that we have -! access to the adjusted rates. Only the bpch diagnostics are updated -! here. -! -- Bob Yantosca, 19 Dec 2017 -! -! %%%% NOTE: WE SHOULD UPDATE THE COMMENTS TO MAKE SURE THAT WE DO %%%% -! %%%% NOT KEEP ANY CONFLICTING OR INCORRECT INFORMATION (bmy, 3/28/16) %%%% ! ! !REVISION HISTORY: -! See https://github.com/geoschem/geos-chem for complete history +! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: ! - REAL(fp) :: C_O2, C_N2, C_H2, ITEMPK, RO1DplH2O - REAL(fp) :: RO1DplH2, RO1D, NUMDEN, TEMP, C_H2O + INTEGER I + REAL(fp) DEN !================================================================= - ! PHOTRATE_ADJ begins here! + ! LEGND0 begins here! !================================================================= - ! Initialize - RC = GC_SUCCESS - TEMP = State_Met%T(I,J,L) ! K - NUMDEN = State_Met%AIRNUMDEN(I,J,L) ! molec/cm3 - C_H2O = State_Met%AVGW(I,J,L) * State_Met%AIRNUMDEN(I,J,L) ! molec/cm3 - - ! For all mechanisms. Set the photolysis rate of NITs and NIT to a - ! scaled value of JHNO3. NOTE: this is set in geoschem_config.yml - IF ( Input_Opt%hvAerNIT ) THEN - - ! Get the photolysis scalars read in from geoschem_config.yml - JscaleNITs = Input_Opt%hvAerNIT_JNITs - JscaleNIT = Input_Opt%hvAerNIT_JNIT - ! convert reaction channel % to a fraction - JNITChanA = Input_Opt%JNITChanA - JNITChanB = Input_Opt%JNITChanB - JNITChanA = JNITChanA / 100.0_fp - JNITChanB = JNITChanB / 100.0_fp - ! Set the photolysis rate of NITs - ZPJ(L,RXN_JNITSa,I,J) = ZPJ(L,RXN_JHNO3,I,J) * JscaleNITs - ZPJ(L,RXN_JNITSb,I,J) = ZPJ(L,RXN_JHNO3,I,J) * JscaleNITs - ! Set the photolysis rate of NIT - ZPJ(L,RXN_JNITa,I,J) = ZPJ(L,RXN_JHNO3,I,J) * JscaleNIT - ZPJ(L,RXN_JNITb,I,J) = ZPJ(L,RXN_JHNO3,I,J) * JscaleNIT - ! Adjust to scaling for channels set in geoschem_config.yml - ! NOTE: channel scaling is 1 in FJX_j2j.dat, then updated here - ZPJ(L,RXN_JNITSa,I,J) = ZPJ(L,RXN_JNITSa,I,J) * JNITChanA - ZPJ(L,RXN_JNITa,I,J) = ZPJ(L,RXN_JNITa,I,J) * JNITChanA - ZPJ(L,RXN_JNITSb,I,J) = ZPJ(L,RXN_JNITSb,I,J) * JNITChanB - ZPJ(L,RXN_JNITb,I,J) = ZPJ(L,RXN_JNITb,I,J) * JNITChanB - - ! Gotcha to set JNIT and JNITs to zero if hvAerNIT switch is off - ELSE - - ! Set the photolysis rate of NITs to zero - ZPJ(L,RXN_JNITSa,I,J) = 0.0_fp - ZPJ(L,RXN_JNITSb,I,J) = 0.0_fp - ! Set the photolysis rate of NIT to zero - ZPJ(L,RXN_JNITa,I,J) = 0.0_fp - ZPJ(L,RXN_JNITb,I,J) = 0.0_fp - - ENDIF - - !============================================================== - ! SPECIAL TREATMENT FOR H2SO4+hv -> SO2 + 2OH - ! - ! Only allow photolysis of H2SO4 when gaseous (SDE 04/11/13) - !============================================================== - - ! Calculate if H2SO4 expected to be gaseous or aqueous - ! Only allow photolysis above 6 hPa - ! RXN_H2SO4 specifies SO4 + hv -> SO2 + OH + OH - ZPJ(L,RXN_H2SO4,I,J) = ZPJ(L,RXN_H2SO4,I,J) * FRAC + ! Always does PL(2) = P[1] + PL(1) = 1.e+0_fp + PL(2) = X + do I = 3,N + DEN = (I-1) + PL(I) = PL(I-1)*X*(2.e+0_fp-1.0/DEN) - PL(I-2)*(1.e+0_fp-1.e+0_fp/DEN) + enddo - !============================================================== - ! SPECIAL TREATMENT FOR O3+hv -> O+O2 - ! - ! [O1D]ss=J[O3]/(k[H2O]+k[N2]+k[O2]) - ! SO, THE EFFECTIVE J-VALUE IS J*k[H2O]/(k[H2O]+k[N2]+k[O2]) - ! - ! We don't want to do this if strat-chem is in use, as all - ! the intermediate reactions are included - this would be - ! double-counting (SDE 04/01/13) - !============================================================== - - ! Need to subtract O3->O1D from rate - ! RXN_O3_1 specifies: O3 + hv -> O2 + O - ! RXN_O3_2 specifies: O3 + hv -> O2 + O(1D) - ZPJ(L,RXN_O3_1,I,J) = ZPJ(L,RXN_O3_1,I,J) & - - ZPJ(L,RXN_O3_2,I,J) - - END SUBROUTINE PHOTRATE_ADJ + END SUBROUTINE LEGND0 !EOC -END MODULE FAST_JX_MOD + +END MODULE FJX_MOD +#endif diff --git a/GeosCore/fjx_interface_mod.F90 b/GeosCore/fjx_interface_mod.F90 new file mode 100644 index 000000000..f23bae94f --- /dev/null +++ b/GeosCore/fjx_interface_mod.F90 @@ -0,0 +1,1048 @@ +#ifdef FASTJX +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !MODULE: fjx_interface_mod.F90 +! +! !DESCRIPTION: Module FJX\_INTERFACE\_MOD contains routines and variables +! for interfacing with the Fast-JX scheme (Prather et al) that calculates +! photolysis rates. Current implementation is version 7.0a. +!\\ +!\\ +! !INTERFACE: +! +MODULE FJX_INTERFACE_MOD +! +! !USES: +! + USE FJX_Mod + USE PRECISION_MOD ! For GEOS-Chem Precision (fp) + + IMPLICIT NONE + + PRIVATE +! +! !PUBLIC MEMBER FUNCTIONS: +! + PUBLIC :: Init_FastJX + PUBLIC :: Run_FASTJX +! +! !PRIVATE MEMBER FUNCTIONS: +! + PRIVATE :: SET_PROF_FJX ! could consolidate in photolysis_mod perhaps +! +! !REVISION HISTORY: +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC + +CONTAINS +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: init_fastjx +! +! !DESCRIPTION: Subroutine Init\_FastJX initializes Fast-JX variables. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Init_FastJX( Input_Opt, State_Diag, State_Chm, RC ) +! +! !USES: +! + USE CMN_FJX_Mod, ONLY : JVN_, NJX, NRATJ, W_, WL + USE CMN_FJX_Mod, ONLY : TITLEJX, JLABEL, RNAMES, JFACTA + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE inquireMod, ONLY : findFreeLUN + USE State_Chm_Mod, ONLY : ChmState + USE State_Chm_Mod, ONLY : Ind_ + USE State_Diag_Mod, ONLY : DgnState +#if defined( MODEL_CESM ) + USE UNITS, ONLY : freeUnit +#endif + +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(DgnState), INTENT(IN) :: State_Diag ! Diagnostics State object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REVISION HISTORY: +! 28 Mar 2013 - S. D. Eastham - Copied from Fast-JX v7.0 +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + ! Scalars + LOGICAL :: notDryRun + INTEGER :: JXUNIT, J, NJXX, K + + ! Strings + CHARACTER(LEN=6) :: TITLEJXX(JVN_) + CHARACTER(LEN=255) :: DATA_DIR + CHARACTER(LEN=255) :: FILENAME + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + + !================================================================= + ! Init_FastJX begins here! + !================================================================= + + ! Initialize + RC = GC_SUCCESS + notDryRun = ( .not. Input_Opt%DryRun ) + ErrMsg = '' + ThisLoc = ' -> at Init_FastJX (in module GeosCore/fjx_interface_mod.F90)' + + ! Skip these opterations when running in dry-run mode + IF ( notDryRun ) THEN + + ! Print info + IF ( Input_Opt%amIRoot ) THEN + write(6,*) ' Initializing Fast-JX v7.0 standalone CTM code.' + + if (W_.ne.8 .and. W_.ne.12 .and. W_.ne.18) then + ErrMsg = 'Invalid number of wavelengths (W_)' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + endif + ENDIF + +#if defined( MODEL_CESM ) + IF ( Input_Opt%amIRoot ) THEN + JXUNIT = findFreeLUN() + ELSE + JXUNIT = 0 + ENDIF +#else + ! Get a free LUN + JXUNIT = findFreeLUN() +#endif + + ENDIF + + ! Define data directory for FAST-JX input + DATA_DIR = TRIM( Input_Opt%FAST_JX_DIR ) + + !===================================================================== + ! Read in fast-J X-sections (spectral data) + !===================================================================== + FILENAME = TRIM( DATA_DIR ) // 'FJX_spec.dat' + + ! Read file, or just print filename if we are in dry-run mode + CALL RD_XXX( Input_Opt%amIRoot, Input_Opt%DryRun, JXUNIT, & + TRIM( FILENAME ), RC) + + ! Trap potential errors + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in FAST-JX routine "RD_XXX"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + ! Skip if in dry-run mode + IF ( notDryRun ) THEN + NJXX = NJX + do J = 1,NJX + TITLEJXX(J) = TITLEJX(J) + enddo + ENDIF + + !===================================================================== + ! Read in 5-wavelength scattering data + ! (or just print file name if in dry-run mode) + !===================================================================== + FILENAME = TRIM( DATA_DIR ) // 'jv_spec_mie.dat' + + ! Read data + CALL RD_MIE( Input_Opt%amIRoot, Input_Opt%DryRun, Input_Opt%LBRC, & + JXUNIT, TRIM( FILENAME ), RC ) + + ! Trap potential errors + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in FAST-JX routine "RD_MIE"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + !===================================================================== + ! Read in photolysis rates used in chemistry code and mapping onto + ! FJX J's CTM call: read in J-values names and link to fast-JX names + !===================================================================== + FILENAME = TRIM( DATA_DIR ) // 'FJX_j2j.dat' + + ! Read mapping information + CALL RD_JS_JX( Input_Opt%amIRoot, Input_Opt%DryRun, JXUNIT, & + TRIM( FILENAME ), TITLEJXX, NJXX, RC ) + + ! Store # of photolysis reactions in state_chm for easy reference + State_Chm%Phot%nPhotRxns = NRatJ + +#if defined( MODEL_CESM ) + IF ( notDryRun .AND. Input_Opt%amIRoot ) THEN + CALL freeUnit(JXUnit) + ENDIF +#endif + + END SUBROUTINE Init_FastJX +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !ROUTINE: run_fastjx +! +! !DESCRIPTION: Subroutine RUN|_FASTJX loops over longitude and latitude, and +! calls PHOTO\_JX to compute J-Values for each column at every chemistry +! time-step. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Run_FastJX( WLAOD, Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) +! +! !USES: +! + USE CMN_FJX_Mod, ONLY : AN_, L_, L1_, W_, JVN_, JXL_, JXL1_ + USE CMN_FJX_Mod, ONLY : NRATJ, JIND, JFACTA, FL + USE CMN_SIZE_MOD, ONLY : NDUST, NRH, NRHAER, NSTRATAER + USE ErrCode_Mod + USE ERROR_MOD, ONLY : ERROR_STOP, ALLOC_ERR + USE ERROR_MOD, ONLY : DEBUG_MSG + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState + USE State_Chm_Mod, ONLY : Ind_ + USE State_Diag_Mod, ONLY : DgnState + USE State_Grid_Mod, ONLY : GrdState + USE State_Met_Mod, ONLY : MetState + USE TIME_MOD, ONLY : GET_MONTH, GET_DAY, GET_DAY_OF_YEAR + USE TIME_MOD, ONLY : GET_TAU, GET_YEAR + USE TOMS_MOD, ONLY : GET_OVERHEAD_O3 + + IMPLICIT NONE + +!============================================================================== +! Uncomment the appropriate #define statement to denote which of the +! available cloud overlap options that you wish to use. + +!! Linear overlap +!#define USE_LINEAR_OVERLAP 1 + +! Approximate random overlap (balance between accuracy & speed) +#define USE_APPROX_RANDOM_OVERLAP 1 + +!! Maximum random cloud overlap (most computationally intensive) +!#define USE_MAXIMUM_RANDOM_OVERLAP 1 +!============================================================================== +! +! !INPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: WLAOD ! AOD calculated how? + ! (1: 550 nm, 0: 999 nm) + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! Parameter to choose cloud overlap algorithm: +! ============================================================================ +! (1 ) OVERLAP (INTEGER) : 1 - Linear Approximation (used up to v7-04-12) +! 2 - Approximate Random Overlap (default) +! 3 - Maximum Random Overlap (computation intensive) +! +! !REVISION HISTORY: +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER, SAVE :: LASTMONTH = -1 + INTEGER :: NLON, NLAT, DAY, MONTH, DAY_OF_YR, L, N, J + INTEGER :: IOPT, LCHEM + REAL(fp) :: U0, PRES, RFL, YLAT, O3_TOMS, SZA, SOLF + REAL(fp) :: O3_CTM(State_Grid%NZ+1) + REAL(fp) :: T_CTM(State_Grid%NZ+1), OPTD(State_Grid%NZ) + REAL(fp) :: OPTDUST(State_Grid%NZ,NDUST) + REAL(fp) :: OPTAER(State_Grid%NZ,NRHAER*NRH+NSTRATAER) + + ! Local variables for cloud overlap (hyl, phs) + INTEGER :: NUMB, KK, I + INTEGER :: INDIC(State_Grid%NZ+1) + INTEGER :: INDGEN(State_Grid%NZ+1)! = (/ (i,i=1,State_Grid%NZ+1) /) + INTEGER :: KBOT(State_Grid%NZ) + INTEGER :: KTOP(State_Grid%NZ) + INTEGER :: INDICATOR(State_Grid%NZ+2) + REAL(fp) :: FMAX(State_Grid%NZ) ! maximum cloud fraction + ! in a block, size can be to + ! FIX(State_Grid%NZ)+1 + REAL(fp) :: CLDF1D(State_Grid%NZ) + REAL(fp) :: ODNEW(State_Grid%NZ) + REAL(fp) :: P_CTM(State_Grid%NZ+2) + REAL(fp) :: AERX_COL(AN_,L1_) + REAL(fp) :: T_CLIM(L1_) + REAL(fp) :: O3_CLIM(L1_) + REAL(fp) :: Z_CLIM(L1_+1) + REAL(fp) :: AIR_CLIM(L1_) + REAL(fp) :: VALJXX(L_,JVN_) + + LOGICAL :: AOD999 + LOGICAL, SAVE :: FIRST = .true. + LOGICAL :: prtDebug + + ! Species ID flags + INTEGER, SAVE :: id_O3 + + ! Strings + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + + ! Input to set_prof + REAL(fp) :: ODCLOUD_COL(L_) + + ! Output from photo_jx for use in diagnostics + REAL(fp), DIMENSION(W_) :: FJBOT,FSBOT + REAL(fp), DIMENSION(JXL1_,W_) :: FLXD + REAL(fp), DIMENSION(JXL_, W_) :: FJFLX + + ! UVFlux* diagnostics + REAL(fp) :: FDIRECT (JXL1_) + REAL(fp) :: FDIFFUSE(JXL1_) + REAL(fp) :: UVX_CONST + INTEGER :: S, K + + ! Pointers + INTEGER, POINTER :: IRHARR (:,:,:) + REAL(fp), POINTER :: UVXFACTOR(:) + REAL(fp), POINTER :: ZPJ (:,:,:,:) + REAL(fp), POINTER :: ODAER (:,:,:,:,:) + REAL(fp), POINTER :: ODMDUST (:,:,:,:,:) + + !================================================================= + ! Run_FastJX begins here! + !================================================================= + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at Run_FastJX (in module GeosCore/fjx_interface_mod.F90)' + prtDebug = Input_Opt%Verbose + + ! Set pointers + ZPJ => State_Chm%Phot%ZPJ + IRHARR => State_Chm%Phot%IRHARR + UVXFACTOR => State_Chm%Phot%UVXFACTOR + ODAER => State_Chm%Phot%ODAER + ODMDUST => State_Chm%Phot%ODMDUST + + ! Get day of year (0-365 or 0-366) + DAY_OF_YR = GET_DAY_OF_YEAR() + + ! Get current month + MONTH = GET_MONTH() + + ! Get day of month + DAY = GET_DAY() + + ! Was AOD calculated at 999 nm or reference? + AOD999 = ( WLAOD == 0 ) + + ! Zero diagnostic archival arrays to make sure that we don't have any + ! leftover values from the last timestep near the top of the chemgrid + IF ( State_Diag%Archive_UVFluxDiffuse ) State_Diag%UVFluxDiffuse = 0.0_f4 + IF ( State_Diag%Archive_UVFluxDirect ) State_Diag%UVFluxDirect = 0.0_f4 + IF ( State_Diag%Archive_UVFluxNet ) State_Diag%UVFluxNet = 0.0_f4 + IF ( State_Diag%Archive_OD600 ) State_Diag%OD600 = 0.0_f4 + IF ( State_Diag%Archive_TCOD600 ) State_Diag%TCOD600 = 0.0_f4 + + !----------------------------------------------------------------- + ! Special handling for first-time setup + !----------------------------------------------------------------- + IF ( FIRST ) THEN + + ! Get the species ID for O3 + id_O3 = Ind_('O3') + IF ( id_O3 < 0 ) THEN + ErrMsg = 'O3 is not a defined species!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + +#ifdef USE_MAXIMUM_RANDOM_OVERLAP + ! Special setup only for max random overlap + DO i = 1,State_Grid%NZ+1 + INDGEN(i) = i !(/(i,i=1,State_Grid%NZ+1)/) + ENDDO +#endif + + ! Reset first-time flag + FIRST = .FALSE. + + ENDIF + + !================================================================= + ! For each (NLON,NLAT) location, call subroutine PHOTO_JX (in a + ! parallel loop to compute J-values for the entire column. + ! J-values will be stored in the common-block variable ZPJ, and + ! will be later accessed via function FJXFUNC. + !================================================================= + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED ) & + !$OMP PRIVATE( NLAT, NLON, YLAT, U0, L ) & + !$OMP PRIVATE( P_CTM , T_CTM, RFL, O3_TOMS, O3_CTM ) & + !$OMP PRIVATE( LCHEM, OPTAER, N, IOPT, J ) & + !$OMP PRIVATE( OPTDUST, OPTD, CLDF1D ) & +#ifdef USE_MAXIMUM_RANDOM_OVERLAP + !$OMP PRIVATE( FMAX, KK, NUMB, KBOT ) & + !$OMP PRIVATE( KTOP ODNEW, INDICATOR, INDIC ) & +#endif + !$OMP PRIVATE( SZA, SOLF, ODCLOUD_COL ) & + !$OMP PRIVATE( AERX_COL, T_CLIM, O3_CLIM, Z_CLIM, AIR_CLIM ) & + !$OMP PRIVATE( VALJXX, FSBOT, FJBOT, FLXD, FJFLX ) & + !$OMP PRIVATE( FDIRECT, FDIFFUSE, UVX_CONST, K, S ) & + !$OMP SCHEDULE( DYNAMIC ) + + ! Loop over latitudes and longitudes + DO NLAT = 1, State_Grid%NY + DO NLON = 1, State_Grid%NX + + ! Grid box latitude [degrees] + YLAT = State_Grid%YMid( NLON, NLAT ) + + ! Cosine of solar zenith angle [unitless] at (NLON,NLAT) + U0 = State_Met%SUNCOSmid(NLON,NLAT) + + ! Define the P array here + DO L = 1, State_Grid%NZ+1 + P_CTM(L) = State_Met%PEDGE( NLON, NLAT, L ) + ENDDO + + ! Top edge of P_CTM is top of atmosphere (bmy, 2/13/07) + P_CTM(State_Grid%NZ+2) = 0e+0_fp + + ! Temperature profile [K] at (NLON,NLAT) + T_CTM(1:State_Grid%NZ) = State_Met%T( NLON, NLAT, 1:State_Grid%NZ) + + ! Top of atmosphere + T_CTM(State_Grid%NZ+1) = T_CTM(State_Grid%NZ) + + ! Surface albedo [unitless] at (NLON,NLAT) + RFL = State_Met%UVALBEDO(NLON,NLAT) + + ! Overhead ozone column [DU] at (NLON, NLAT) + ! These values are either from the met fields or TOMS/SBUV, + ! depending on the settings in geoschem_config.yml + O3_TOMS = GET_OVERHEAD_O3( State_Chm, NLON, NLAT ) + + ! CTM ozone densities (molec/cm3) at (NLON, NLAT) + O3_CTM = 0e+0_fp + LCHEM = State_Met%ChemGridLev(NLON,NLAT) + DO L = 1, LCHEM + O3_CTM(L) = State_Chm%Species(id_O3)%Conc(NLON,NLAT,L) + ENDDO + + ! Aerosol OD profile [unitless] at (NLON,NLAT) + ! and at 1000nm, IWV1000 (DAR) + OPTAER = 0.0e+0_fp + + ! OD profiles for aerosols undergoing hygroscopic growth. The OD + ! profile array has 5 columns for each of these aerosols, one for each + ! humidity in the optical properties LUT used by Fast-JX. For each grid + ! cell and aerosol, assign OD based on humidity in the grid box; values for + ! that grid cell and aerosol will be zero for all other humidity bins, + ! e.g. if RH<50% at L=1 then OPTAER(1,1) will contain SO4 OD and OPTAER(1,2:5) + ! will be all zeros. + DO N = 1, NRHAER + DO L = 1, State_Grid%NZ + IOPT = ( (N-1) * NRH ) + IRHARR(NLON,NLAT,L) + OPTAER(L,IOPT) = ODAER(NLON,NLAT,L,State_Chm%Phot%IWV1000,N) + ENDDO + ENDDO + + ! OD profiles for stratospheric aerosols (N=1: ssa, N=2: psc) + DO N = 1, NSTRATAER + DO L = 1, State_Grid%NZ + IOPT = (NRHAER * NRH) + N + OPTAER(L,IOPT) = ODAER(NLON,NLAT,L,State_Chm%Phot%IWV1000,NRHAER+N) + ENDDO + ENDDO + + ! Mineral dust optical depth profiles + DO N = 1, NDUST + DO L = 1, State_Grid%NZ + OPTDUST(L,N) = ODMDUST(NLON,NLAT,L,State_Chm%Phot%IWV1000,N) + ENDDO + ENDDO + + ! Cloud OD profile [unitless] at (NLON,NLAT) + OPTD = State_Met%OPTD(NLON,NLAT,1:State_Grid%NZ) + +#if defined( MODEL_GEOS ) + ! Initialize diagnostics arrays + IF ( State_Diag%Archive_EXTRALNLEVS ) THEN + State_Diag%EXTRALNLEVS(NLON,NLAT) = 0.0 + ENDIF + IF ( State_Diag%Archive_EXTRALNITER ) THEN + State_Diag%EXTRALNITER(NLON,NLAT) = 0.0 + ENDIF +#endif + + if (State_Grid%NZ+1 .gt. JXL1_) then + ErrMsg = ' PHOTO_JX: not enough levels in JX' + call Error_Stop( ErrMsg, ThisLoc ) + endif + + ! Input conversion (SDE 03/29/13) + ! Calculate solar zenith angle (degrees) + CALL SOLAR_JX(DAY_OF_YR,U0,SZA,SOLF) + + ! check for dark conditions SZA > 98.0 deg => tan ht = 63 km or + ! 99.0 80 km + if (SZA .gt. 98.e+0_fp) cycle + +#if defined( USE_LINEAR_OVERLAP ) + !=========================================================== + ! %%%% CLOUD OVERLAP: LINEAR ASSUMPTION %%%% + ! + ! Directly use OPTDEPTH = TAUCLD * CLDTOT + !=========================================================== + + ! Column cloud fraction (not less than zero) + CLDF1D = State_Met%CLDF(NLON,NLAT,1:State_Grid%NZ) + WHERE ( CLDF1D < 0e+0_fp ) CLDF1D = 0e+0_fp + + ! NOTE: For GEOS-FP and MERRA-2 met fields, the optical + ! depth is the in-cloud optical depth. At this point it has + ! NOT been multiplied by cloud fraction yet. Therefore, we can + ! just apply the ! we can just apply the linear overlap formula + ! as written above (i.e. multiply by cloud fraction). + OPTD = OPTD * CLDF1D + +#elif defined( USE_APPROX_RANDOM_OVERLAP ) + !=========================================================== + ! %%%% CLOUD OVERLAP: APPROX RANDOM OVERLAP ASSUMPTION %%%% + ! + ! Use OPTDEPTH = TAUCLD * CLDTOT**1.5 + !=========================================================== + + ! Column cloud fraction (not less than zero) + CLDF1D = State_Met%CLDF(NLON,NLAT,1:State_Grid%NZ) + WHERE ( CLDF1D < 0e+0_fp ) CLDF1D = 0e+0_fp + + ! NOTE: For GEOS-FP and MERRA-2 met fields, the optical + ! depth is the in-cloud optical depth. At this point it has + ! NOT been multiplied by cloud fraction yet. Therefore, we can + ! just apply the approximate random overlap formula as written + ! above (i.e. multiply by cloud fraction^1.5). + OPTD = OPTD * ( CLDF1D )**1.5e+0_fp + +#elif defined( USE_MAXIMUM_RANDOM_OVERLAP ) + ! See commented out code in github history + CALL ERROR_STOP('MMRAN_16 not yet FJX compatible.', & + 'fjx_interface_mod.F90') + + +#endif + + ! Copy cloud OD data to a variable array + DO L=1,L_ + ODCLOUD_COL(L) = OPTD(L) + ENDDO + + ! Use GEOS-Chem methodology to set vertical profiles of: + ! Pressure (PPJ) [hPa] + ! Temperature (T_CLIm) [K] + ! Path density (DDJ) [# molec/cm2] + ! New methodology for: + ! Ozone density (OOJ) [# O3 molec/cm2] + CALL SET_PROF_FJX (YLAT, MONTH, DAY, & + T_CTM, P_CTM, OPTD, & + OPTDUST, OPTAER, O3_CTM, & + O3_TOMS, AERX_COL, T_CLIM, & + O3_CLIM, Z_CLIM, AIR_CLIM, & + Input_Opt, State_Grid, State_Chm ) + + ! Call FAST-JX routines to compute J-values + CALL PHOTO_JX( Input_Opt%amIRoot, Input_Opt%DryRun, & + U0, RFL, SZA, SOLF, & + P_CTM, T_CTM, AOD999, NLON, & + NLAT, AERX_COL, T_CLIM, O3_CLIM, & + Z_CLIM, AIR_CLIM, State_Grid%maxChemLev, & + State_Chm, VALJXX, FSBOT, FJBOT, & + FLXD, FJFLX, Input_Opt, State_Diag ) + + ! Fill out common-block array of J-rates using PHOTO_JX output + DO L=1,State_Grid%MaxChemLev + DO J=1,NRATJ + IF (JIND(J).gt.0) THEN + ZPJ(L,J,NLON,NLAT) = VALJXX(L,JIND(J))*JFACTA(J) + ELSE + ZPJ(L,J,NLON,NLAT) = 0.e+0_fp + ENDIF + ENDDO + ENDDO + + ! Set J-rates outside the chemgrid to zero + IF (State_Grid%MaxChemLev.lt.L_) THEN + DO L=State_Grid%MaxChemLev+1,L_ + DO J=1,NRATJ + ZPJ(L,J,NLON,NLAT) = 0.e+0_fp + ENDDO + ENDDO + ENDIF + + !================================================================= + ! UV radiative fluxes (direct, diffuse, net) [W/m2] + ! + ! Updated for netCDF from nd64 (JMM 2019-09-11) + ! Use it to calculate fluxes for output if necessary + ! + ! Get net direct and net diffuse fluxes separately + ! Order: + ! 1 - Net flux + ! 2 - Direct flux + ! 3 - Diffuse flux + ! Convention: negative is downwards + !================================================================= + + ! TODO TODO TODO - there seems to be a parallelization error here + + IF ( State_Diag%Archive_UVFluxDiffuse .or. & + State_Diag%Archive_UVFluxDirect .or. & + State_Diag%Archive_UVFluxNet ) THEN + + ! Loop over wavelength bins + DO K = 1, W_ + + ! Initialize + FDIRECT = 0.0_fp + FDIFFUSE = 0.0_fp + + ! Direct & diffuse fluxes at each level + FDIRECT(1) = FSBOT(K) ! surface + FDIFFUSE(1) = FJBOT(K) ! surface + DO L = 2, State_Grid%NZ + FDIRECT(L) = FDIRECT(L-1) + FLXD(L-1,K) + FDIFFUSE(L) = FJFLX(L-1,K) + ENDDO + + ! Constant to multiply UV fluxes at each wavelength bin + UVX_CONST = SOLF * FL(K) * UVXFACTOR(K) + + ! Archive into diagnostic arrays + DO L = 1, State_Grid%NZ + + IF ( State_Diag%Archive_UVFluxNet ) THEN + S = State_Diag%Map_UvFluxNet%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%UVFluxNet(NLON,NLAT,L,S) = & + State_Diag%UVFluxNet(NLON,NLAT,L,S) + & + ( ( FDIRECT(L) + FDIFFUSE(L) ) * UVX_CONST ) + ENDIF + ENDIF + + IF ( State_Diag%Archive_UVFluxDirect ) THEN + S = State_Diag%Map_UvFluxDirect%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%UVFluxDirect(NLON,NLAT,L,S) = & + State_Diag%UVFluxDirect(NLON,NLAT,L,S) + & + ( FDIRECT(L) * UVX_CONST ) + ENDIF + ENDIF + + IF ( State_Diag%Archive_UVFluxDiffuse ) THEN + S = State_Diag%Map_UvFluxDiffuse%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%UVFluxDiffuse(NLON,NLAT,L,S) = & + State_Diag%UVFluxDiffuse(NLON,NLAT,L,S) + & + ( FDIFFUSE(L) * UVX_CONST ) + ENDIF + ENDIF + ENDDO + ENDDO + ENDIF + + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ! Reset first-time flag + FIRST=.FALSE. + + ! Free pointers + ZPJ => NULL() + IRHARR => NULL() + UVXFACTOR => NULL() + ODAER => NULL() + ODMDUST => NULL() + + END SUBROUTINE Run_FastJX +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: set_prof_fjx +! +! !DESCRIPTION: Subroutine SET\_PROF\_FJX sets vertical profiles for a given +! latitude and longitude. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE SET_PROF_FJX( YLAT, MONTH, DAY, T_CTM, P_CTM, & + CLDOD, DSTOD, AEROD, O3_CTM, O3_TOMS, & + AERCOL, T_CLIM, O3_CLIM, Z_CLIM, AIR_CLIM, & + Input_Opt, State_Grid, State_Chm ) +! +! !USES: +! + USE CMN_FJX_Mod, ONLY : L_, L1_, AN_, ZZHT + USE CMN_SIZE_Mod, ONLY : NDUST, NRH, NRHAER, NSTRATAER + USE Input_Opt_Mod, ONLY : OptInput + USE PhysConstants, ONLY : AIRMW, AVO, g0, BOLTZ + USE State_Chm_Mod, ONLY : ChmState + USE State_Grid_Mod, ONLY : GrdState +! +! !INPUT PARAMETERS: +! + REAL(fp), INTENT(IN) :: YLAT ! Latitude (degrees) + INTEGER, INTENT(IN) :: MONTH ! Month + INTEGER, INTENT(IN) :: DAY ! Day *of month* + REAL(fp), INTENT(IN) :: T_CTM(L1_) ! CTM temperatures (K) + REAL(fp), INTENT(IN) :: O3_TOMS ! O3 column (DU) + REAL(fp), INTENT(IN) :: P_CTM(L1_+1) ! CTM edge pressures (hPa) + REAL(fp), INTENT(INOUT) :: CLDOD(L_) ! Cloud optical depth + REAL(fp), INTENT(IN) :: DSTOD(L_,NDUST) ! Mineral dust OD + REAL(fp), INTENT(IN) :: AEROD(L_,NRHAER*NRH+NSTRATAER) ! Aerosol OD + REAL(fp), INTENT(IN) :: O3_CTM(L1_) ! CTM ozone (molec/cm3) + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object +! +! !OUTPUT VARIABLES: +! + REAL(fp), INTENT(OUT) :: AERCOL(AN_,L1_) ! Aerosol column + REAL(fp), INTENT(OUT) :: T_CLIM(L1_) ! Clim. temperatures (K) + REAL(fp), INTENT(OUT) :: Z_CLIM(L1_+1) ! Edge altitudes (cm) + REAL(fp), INTENT(OUT) :: O3_CLIM(L1_) ! O3 column depth (#/cm2) + REAL(fp), INTENT(OUT) :: AIR_CLIM(L1_) ! O3 column depth (#/cm2) +! +! !REMARKS: +! +! !REVISION HISTORY: +! 30 Mar 2013 - S. D. Eastham - Adapted from J. Mao code +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER :: I, K, L, M, N, LCTM + REAL(fp) :: DLOGP,F0,T0,B0,PB,PC,XC,MASFAC,SCALEH + REAL(fp) :: PSTD(52),OREF2(51),TREF2(51) + REAL(fp) :: PROFCOL, ODSUM + REAL(fp), PARAMETER :: ODMAX = 200.0e+0_fp + + ! Local variables for quantities from Input_Opt + LOGICAL :: USE_ONLINE_O3 + + ! Debugging logicals to turn optical depth sources on/off + LOGICAL :: use_liqcld + LOGICAL :: use_icecld + LOGICAL :: use_dust + LOGICAL :: use_so4 + LOGICAL :: use_bc + LOGICAL :: use_oc + LOGICAL :: use_sala + LOGICAL :: use_salc + LOGICAL :: use_stratso4 + LOGICAL :: use_psc + + !================================================================= + ! SET_PROF begins here! + !================================================================= + + ! Debugging option to turn optical depth sources on/off. Uncomment where + ! used elsewhere in this file to use. They are commented out by default + ! to avoid unnecessary model slow-down. + use_liqcld = .true. + use_icecld = .true. + use_dust = .true. + use_so4 = .true. + use_bc = .true. + use_oc = .true. + use_sala = .true. + use_salc = .true. + use_stratso4 = .true. + use_psc = .true. + + ! Copy fields from INPUT_OPT + USE_ONLINE_O3 = Input_Opt%USE_ONLINE_O3 + + ! Zero aerosol column + DO K=1,AN_ + DO I=1,L1_ + AERCOL(K,I) = 0.e+0_fp + ENDDO + ENDDO + + ! Scale optical depths to stay within limits + ODSUM = 0.e+0_fp + DO I=1,L_ + CLDOD(I) = DBLE(CLDOD(I)) + ODSUM = ODSUM + CLDOD(I) + ENDDO + IF (ODSUM.gt.ODMAX) THEN + ODSUM = ODMAX/ODSUM ! Temporary + DO I=1,L_ + CLDOD(I) = CLDOD(I)*ODSUM + ENDDO + ODSUM = ODMAX + ENDIF + + !================================================================= + ! Set up pressure levels for O3/T climatology - assume that value + ! given for each 2 km z* level applies from 1 km below to 1 km + ! above, so select pressures at these boundaries. Surface level + ! values at 1000 mb are assumed to extend down to the actual + ! surface pressure for this lat/lon. + !================================================================= + PSTD(1) = MAX(P_CTM(1),1000.e+0_fp) + PSTD(2) = 1000.e+0_fp * 10.e+0_fp ** (-1.e+0_fp/16.e+0_fp) + DLOGP = 10.e+0_fp**(-2.e+0_fp/16.e+0_fp) + DO I=3,51 + PSTD(I) = PSTD(I-1) * DLOGP + ENDDO + PSTD(52) = 0.e+0_fp + + ! Mass factor - delta-Pressure [hPa] to delta-Column [molec/cm2] + MASFAC = 100.e+0_fp * AVO / ( AIRMW * g0 * 10.e+0_fp ) + + ! Select appropriate monthly and latitudinal profiles + ! Now use YLAT instead of Oliver's YDGRD(NSLAT) (bmy, 9/13/99) + M = MAX( 1, MIN( 12, MONTH ) ) + L = MAX( 1, MIN( 18, ( INT(YLAT) + 99 ) / 10 ) ) + + ! Temporary arrays for climatology data + DO I = 1, 51 + OREF2(I) = State_Chm%Phot%OREF(I,L,M) + TREF2(I) = State_Chm%Phot%TREF(I,L,M) + ENDDO + + ! Apportion O3 and T on supplied climatology z* levels onto CTM levels + ! with mass (pressure) weighting, assuming constant mixing ratio and + ! temperature half a layer on either side of the point supplied. + DO I = 1, L1_ + F0 = 0.e+0_fp + T0 = 0.e+0_fp + DO K = 1, 51 + PC = MIN( P_CTM(I), PSTD(K) ) + PB = MAX( P_CTM(I+1), PSTD(K+1) ) + IF ( PC .GT. PB ) THEN + XC = ( PC - PB ) / ( P_CTM(I) - P_CTM(I+1) ) + F0 = F0 + OREF2(K)*XC + T0 = T0 + TREF2(K)*XC + ENDIF + ENDDO + T_CLIM(I) = T0 + O3_CLIM(I) = F0 * 1.e-6_fp + ENDDO + + !================================================================= + ! Calculate effective altitudes using scale height at each level + !================================================================= + Z_CLIM(1) = 0.e+0_fp + DO I = 1, L_ + SCALEH = BOLTZ * 1.e+4_fp * MASFAC * T_CLIM(I) + + Z_CLIM(I+1) = Z_CLIM(I) - ( LOG( P_CTM(I+1) / P_CTM(I) ) * SCALEH ) + ENDDO + Z_CLIM(L1_+1)=Z_CLIM(L1_) + ZZHT + + !================================================================= + ! Add Aerosol Column - include aerosol types here. Currently use + ! soot water and ice; assume black carbon x-section of 10 m2/g, + ! independent of wavelength; assume limiting temperature for + ! ice of -40 deg C. + !================================================================= + DO I = 1, L_ + ! Turn off uniform black carbon profile (rvm, bmy, 2/27/02) + AERCOL(1,I) = 0e+0_fp + + IF ( T_CTM(I) .GT. 233.e+0_fp ) THEN + AERCOL(2,I) = CLDOD(I) + AERCOL(3,I) = 0.e+0_fp + ELSE + AERCOL(2,I) = 0.e+0_fp + AERCOL(3,I) = CLDOD(I) + ENDIF + + ! Mineral dust optical depth columns + DO N = 1, NDUST + AERCOL(3+N,I) = DSTOD(I,N) + ENDDO + + ! Aerosol optical depth columns for aerosols undergroing + ! hygroscopic growth + DO N = 1, NRHAER*NRH + AERCOL(3+NDUST+N,I) = AEROD(I,N) + ENDDO + + ! Stratospheric aerosol optical depth columns + DO N = 1, NSTRATAER + AERCOL(3+NDUST+NRHAER*NRH+N,I) = AEROD(I,NRHAER*NRH+N) + ENDDO + + ENDDO + + DO K = 1,AN_ + AERCOL(K,L1_ ) = 0.e+0_fp + ENDDO + + ! Debugging option to turn off contributions for different sources. + ! Uncomment if using. + !IF ( .NOT. use_liqcld ) AERCOL(2,:) = 0.0_fp + !IF ( .NOT. use_icecld ) AERCOL(3,:) = 0.0_fp + !IF ( .NOT. use_dust ) AERCOL(4:10,:) = 0.0_fp + !IF ( .NOT. use_so4 ) AERCOL(11:15,:) = 0.0_fp + !IF ( .NOT. use_bc ) AERCOL(16:20,:) = 0.0_fp + !IF ( .NOT. use_oc ) AERCOL(21:25,:) = 0.0_fp + !IF ( .NOT. use_sala ) AERCOL(26:30,:) = 0.0_fp + !IF ( .NOT. use_salc ) AERCOL(31:35,:) = 0.0_fp + !IF ( .NOT. use_stratso4 ) AERCOL(36,:) = 0.0_fp + !IF ( .NOT. use_psc ) AERCOL(37,:) = 0.0_fp + + !================================================================= + ! Calculate column quantities for FAST-JX + !================================================================= + PROFCOL = 0e+0_fp + + DO I = 1, L1_ + + ! Monthly mean air Column [molec/cm2] + AIR_CLIM(I) = ( P_CTM(I) - P_CTM(I+1) ) * MASFAC + + ! Monthly mean O3 column [molec/cm2] + O3_CLIM(I) = O3_CLIM(I) * AIR_CLIM(I) + + ! Monthly mean O3 column [DU] + PROFCOL = PROFCOL + ( O3_CLIM(I) / 2.69e+16_fp ) + ENDDO + + !! Top values are special (do not exist in CTM data) + !AIR_CLIM(L1_) = P_CTM(L1_) * MASFAC + !O3_CLIM(L1_) = O3_CLIM(L1_) * AIR_CLIM(L1_) + + !================================================================= + ! Now weight the O3 column by the observed monthly mean TOMS. + ! Missing data is denoted by the flag -999. (mje, bmy, 7/15/03) + ! + ! TOMS/SBUV MERGED TOTAL OZONE DATA, Version 8, Revision 3. + ! Resolution: 5 x 10 deg. + ! + ! Methodology (bmy, 2/12/07) + ! ---------------------------------------------------------------- + ! FAST-J comes with its own default O3 column climatology (from + ! McPeters 1992 & Nagatani 1991), which is stored in the input + ! file "jv_atms.dat". These "FAST-J default" O3 columns are used + ! in the computation of the actinic flux and other optical + ! quantities for the FAST-J photolysis. + ! + ! The TOMS/SBUV O3 columns and 1/2-monthly O3 trends (contained + ! in the TOMS_200701 directory) are read into GEOS-Chem by routine + ! READ_TOMS in "toms_mod.f". Missing values (i.e. locations where + ! there are no data) in the TOMS/SBUV O3 columns are defined by + ! the flag -999. + ! + ! After being read from disk in routine READ_TOMS, the TOMS/SBUV + ! O3 data are then passed to the FAST-J routine "set_prof.f". In + ! "set_prof.f", a test is done to make sure that the TOMS/SBUV O3 + ! columns and 1/2-monthly trends do not have any missing values + ! for (lat,lon) location for the given month. If so, then the + ! TOMS/SBUV O3 column data is interpolated to the current day and + ! is used to weight the "FAST-J default" O3 column. This + ! essentially "forces" the "FAST-J default" O3 column values to + ! better match the observations, as defined by TOMS/SBUV. + ! + ! If there are no TOMS/SBUV O3 columns (and 1/2-monthly trends) + ! at a (lat,lon) location for given month, then FAST-J will revert + ! to its own "default" climatology for that location and month. + ! Therefore, the TOMS O3 can be thought of as an "overlay" data + ! -- it is only used if it exists. + ! + ! Note that there are no TOMS/SBUV O3 columns at the higher + ! latitudes. At these latitudes, the code will revert to using + ! the "FAST-J default" O3 columns. + ! + ! As of February 2007, we have TOMS/SBUV data for 1979 thru 2005. + ! 2006 TOMS/SBUV data is incomplete as of this writing. For years + ! 2006 and onward, we use 2005 TOMS O3 columns. + ! + ! This methodology was originally adopted by Mat Evans. Symeon + ! Koumoutsaris was responsible for creating the downloading and + ! processing the TOMS O3 data files from 1979 thru 2005 in the + ! TOMS_200701 directory. + !================================================================= + + ! Since we now have stratospheric ozone calculated online, use + ! this instead of archived profiles for all chemistry-grid cells + ! The variable O3_CTM is obtained from State_Met%Species, and will be 0 + ! outside the chemgrid (in which case we use climatology) + + ! Scale monthly O3 profile to the daily O3 profile (if available) + DO I = 1, L1_ + + ! Use online O3 values in the chemistry grid if selected + IF ( (USE_ONLINE_O3) .and. & + (I <= State_Grid%MaxChemLev) .and. & + (O3_CTM(I) > 0e+0_fp) ) THEN + + ! Convert from molec/cm3 to molec/cm2 + O3_CLIM(I) = O3_CTM(I) * (Z_CLIM(I+1)-Z_CLIM(I)) + + ! Otherwise, use O3 values from the met fields or TOMS/SBUV + ELSEIF (O3_TOMS > 0e+0_fp) THEN + + O3_CLIM(I) = O3_CLIM(I) * ( O3_TOMS / PROFCOL ) + + ENDIF + + ENDDO + + END SUBROUTINE SET_PROF_FJX +!EOC +END MODULE FJX_INTERFACE_MOD +#endif diff --git a/GeosCore/flexgrid_read_mod.F90 b/GeosCore/flexgrid_read_mod.F90 index 2662c7676..43624359c 100644 --- a/GeosCore/flexgrid_read_mod.F90 +++ b/GeosCore/flexgrid_read_mod.F90 @@ -112,7 +112,7 @@ SUBROUTINE FlexGrid_Read_CN( Input_Opt, State_Grid, State_Met ) CALL Get_Met_2D( Input_Opt, State_Grid, Q, TRIM(v_name) ) State_Met%FRLAKE = Q - ! Read FRLAND + ! Read FRLAND (land without lake or ice) v_name = "FRLAND" CALL Get_Met_2D( Input_Opt, State_Grid, Q, TRIM(v_name) ) State_Met%FRLAND = Q @@ -120,7 +120,7 @@ SUBROUTINE FlexGrid_Read_CN( Input_Opt, State_Grid, State_Met ) ! Read FRLANDIC v_name = "FRLANDIC" CALL Get_Met_2D( Input_Opt, State_Grid, Q, TRIM(v_name) ) - State_Met%FRLANDIC = Q + State_Met%FRLANDICE = Q ! Read FROCEAN v_name = "FROCEAN" @@ -217,6 +217,7 @@ SUBROUTINE FlexGrid_Read_A1( YYYYMMDD, HHMMSS, Input_Opt, State_Grid, & ! ! Scalars INTEGER :: t_index ! Time index + INTEGER :: I, J CHARACTER(LEN=16) :: stamp ! Time and date stamp CHARACTER(LEN=255) :: v_name ! netCDF variable name CHARACTER(LEN=255) :: errMsg ! Error message @@ -292,7 +293,18 @@ SUBROUTINE FlexGrid_Read_A1( YYYYMMDD, HHMMSS, Input_Opt, State_Grid, & ! Read FRSNO v_name = "FRSNO" CALL Get_Met_2D( Input_Opt, State_Grid, Q, TRIM(v_name), t_index=t_index ) - State_Met%FRSNO = Q + + ! The import FRSNO is fraction of land with snow cover. Convert to + ! fraction of grid box with snow cover for storage in State_Met. + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J ) + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + State_Met%FRSNOW(I,J) = Q(I,J) * State_Met%FRLAND(I,J) + ENDDO + ENDDO + !$OMP END PARALLEL DO !-------------------------------------------------------------------------- ! For now, skip reading GRN. It's not used in GEOS-Chem. (mps, 9/14/17) @@ -322,14 +334,6 @@ SUBROUTINE FlexGrid_Read_A1( YYYYMMDD, HHMMSS, Input_Opt, State_Grid, & CALL Get_Met_2D( Input_Opt, State_Grid, Q, TRIM(v_name), t_index=t_index ) State_Met%LAI = Q - !-------------------------------------------------------------------------- - ! For now, skip reading RADLWG. It's not used in GEOS-Chem. (mps, 9/14/17) - !! Read LWGNT - !v_name = "LWGNT" - !CALL Get_Met_2D( Input_Opt, State_Grid, Q, TRIM(v_name), t_index=t_index ) - !State_Met%RADLWG = Q - !-------------------------------------------------------------------------- - !----------------------------------------------------------------------- ! Comment this out for now, this field isn't needed (bmy, 2/2/12) !! Read LWTUP @@ -551,9 +555,6 @@ SUBROUTINE FlexGrid_Read_A3( YYYYMMDD, HHMMSS, Input_Opt, State_Grid, & USE Input_Opt_Mod, ONLY : OptInput USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState -#ifdef BPCH_DIAG - USE Time_Mod, ONLY : Set_Ct_A3 -#endif ! ! !INPUT PARAMETERS: ! @@ -613,11 +614,6 @@ SUBROUTINE FlexGrid_Read_A3( YYYYMMDD, HHMMSS, Input_Opt, State_Grid, & ! Cleanup and quit !====================================================================== -#ifdef BPCH_DIAG - ! Increment the # of times that A3 fields have been read - CALL Set_Ct_A3( INCREMENT=.TRUE. ) -#endif - ! Save date & time for next iteration lastDate = YYYYMMDD lastTime = HHMMSS @@ -1173,9 +1169,6 @@ SUBROUTINE FlexGrid_Read_I3_1( YYYYMMDD, HHMMSS, Input_Opt, State_Grid, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE Get_Met_Mod -#ifdef BPCH_DIAG - USE Time_Mod, ONLY : Set_Ct_I3 -#endif ! ! !INPUT PARAMETERS: ! @@ -1303,15 +1296,6 @@ SUBROUTINE FlexGrid_Read_I3_1( YYYYMMDD, HHMMSS, Input_Opt, State_Grid, & State_Met%T = State_Met%TMPU1 State_Met%SPHU = State_Met%SPHU1 - !====================================================================== - ! Diagnostics, cleanup, and quit - !====================================================================== - -#ifdef BPCH_DIAG - ! Increment the # of times I3 fields have been read - CALL Set_Ct_I3( INCREMENT=.TRUE. ) -#endif - END SUBROUTINE FlexGrid_Read_I3_1 !EOC !------------------------------------------------------------------------------ @@ -1336,9 +1320,6 @@ SUBROUTINE FlexGrid_Read_I3_2( YYYYMMDD, HHMMSS, Input_Opt, State_Grid, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE Get_Met_Mod -#ifdef BPCH_DIAG - USE Time_Mod, ONLY : Set_Ct_I3 -#endif ! ! !INPUT PARAMETERS: ! @@ -1474,15 +1455,6 @@ SUBROUTINE FlexGrid_Read_I3_2( YYYYMMDD, HHMMSS, Input_Opt, State_Grid, & State_Met%PS2_WET = State_Met%PS2_WET * 1e-2_fp ENDIF - !====================================================================== - ! Diagnostics, cleanup, and quit - !====================================================================== - -#ifdef BPCH_DIAG - ! Increment the # of times I3 fields have been read - CALL Set_Ct_I3( INCREMENT=.TRUE. ) -#endif - END SUBROUTINE FlexGrid_Read_I3_2 !EOC !------------------------------------------------------------------------------ diff --git a/GeosCore/fullchem_mod.F90 b/GeosCore/fullchem_mod.F90 index 67a0f226a..ecdda088d 100644 --- a/GeosCore/fullchem_mod.F90 +++ b/GeosCore/fullchem_mod.F90 @@ -37,7 +37,12 @@ MODULE FullChem_Mod ! ! Species ID flags (and logicals to denote if species are present) INTEGER :: id_OH, id_HO2, id_O3P, id_O1D, id_CH4 - INTEGER :: id_PCO, id_LCH4, id_NH3 + INTEGER :: id_PCO, id_LCH4, id_NH3, id_SO4 + INTEGER :: id_SALAAL, id_SALCAL, id_SALC, id_SALA + INTEGER :: id_PSO4 +#ifdef TOMAS + INTEGER :: id_NK05, id_NK08, id_NK10, id_NK20 +#endif #ifdef MODEL_GEOS INTEGER :: id_O3 INTEGER :: id_A3O2, id_ATO2, id_B3O2, id_BRO2 @@ -50,7 +55,13 @@ MODULE FullChem_Mod INTEGER :: id_IDHNBOO, id_IDHNDOO1, id_IDHNDOO2 INTEGER :: id_IHPNBOO, id_IHPNDOO, id_ICNOO, id_IDNOO #endif - INTEGER :: id_SALAAL, id_SALCAL, id_SO4, id_SALC ! MSL +#ifdef MODEL_CESM + INTEGER :: id_TSOA0, id_TSOA1, id_TSOA2, id_TSOA3 + INTEGER :: id_ASOA1, id_ASOA2, id_ASOA3, id_ASOAN + INTEGER :: id_TSOG0, id_TSOG1, id_TSOG2, id_TSOG3 + INTEGER :: id_ASOG1, id_ASOG2, id_ASOG3 + INTEGER :: id_NIT, id_SO4s, id_NITs, id_HNO3 +#endif LOGICAL :: ok_OH, ok_HO2, ok_O1D, ok_O3P LOGICAL :: Failed2x @@ -91,11 +102,8 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! ! !USES: ! - USE CMN_FJX_MOD USE ErrCode_Mod USE ERROR_MOD - USE FAST_JX_MOD, ONLY : PHOTRATE_ADJ, FAST_JX - USE FAST_JX_MOD, ONLY : RXN_O3_1, RXN_NO2 USE fullchem_AutoReduceFuncs, ONLY : fullchem_AR_KeepHalogensActive USE fullchem_AutoReduceFuncs, ONLY : fullchem_AR_SetKeepActive USE fullchem_AutoReduceFuncs, ONLY : fullchem_AR_UpdateKppDiags @@ -112,6 +120,7 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & USE GcKpp_Rates, ONLY : UPDATE_RCONST, RCONST USE GcKpp_Util, ONLY : Get_OHreactivity USE Input_Opt_Mod, ONLY : OptInput + USE Photolysis_Mod, ONLY : Do_Photolysis, PhotRate_Adj USE PhysConstants, ONLY : AVO, AIRMW USE PRESSURE_MOD USE Species_Mod, ONLY : Species @@ -126,15 +135,14 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & USE TIME_MOD, ONLY : Get_Month USE TIME_MOD, ONLY : Get_Year USE Timers_Mod - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod USE UCX_MOD, ONLY : CALC_STRAT_AER USE UCX_MOD, ONLY : SO4_PHOTFRAC USE UCX_MOD, ONLY : UCX_NOX USE UCX_MOD, ONLY : UCX_H2SO4PHOT #ifdef TOMAS -#ifdef BPCH_DIAG USE TOMAS_MOD, ONLY : H2SO4_RATE -#endif + USE TOMAS_MOD, ONLY : PSO4AQ_RATE #endif ! ! !INPUT PARAMETERS: @@ -162,23 +170,23 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! !LOCAL VARIABLES: ! ! Scalars - LOGICAL :: prtDebug, IsLocNoon, Size_Res, Failed2x + LOGICAL :: IsLocNoon, Size_Res, Failed2x, doSuppress INTEGER :: I, J, L, N INTEGER :: NA, F, SpcID, KppID INTEGER :: P, MONTH, YEAR, Day - INTEGER :: WAVELENGTH, IERR, S, Thread + INTEGER :: IERR, S, Thread + INTEGER :: errorCount, previous_units REAL(fp) :: SO4_FRAC, T, TIN REAL(fp) :: TOUT, SR, LWC ! Strings - CHARACTER(LEN=63) :: OrigUnit - CHARACTER(LEN=255) :: ErrMsg, ThisLoc + CHARACTER(LEN=255) :: errMsg, thisLoc ! SAVEd scalars LOGICAL, SAVE :: FIRSTCHEM = .TRUE. INTEGER, SAVE :: CH4_YEAR = -1 - ! For + ! Forq #ifdef MODEL_CLASSIC #ifndef NO_OMP @@ -191,8 +199,7 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & INTEGER :: ISTATUS(20) REAL(dp) :: RCNTRL (20) REAL(dp) :: RSTATE (20) - REAL(fp) :: Before(State_Grid%NX, State_Grid%NY, & - State_Grid%NZ, State_Chm%nAdvect ) + REAL(dp) :: C_before_integrate(NSPEC) ! For tagged CO saving REAL(fp) :: LCH4, PCO_TOT, PCO_CH4, PCO_NMVOC @@ -200,9 +207,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! Objects TYPE(Species), POINTER :: SpcInfo - ! For testing purposes - LOGICAL :: DO_PHOTCHEM - ! OH reactivity and KPP reaction rate diagnostics REAL(fp) :: OHreact REAL(dp) :: Vloc(NVAR), Aout(NREACT) @@ -211,17 +215,18 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & REAL(f4) :: TROP_NOx_Tau REAL(f4) :: TROPv_NOx_tau(State_Grid%NX,State_Grid%NY) REAL(f4) :: TROPv_NOx_mass(State_Grid%NX,State_Grid%NY) - REAL(dp) :: localC(NSPEC) #endif -#ifdef MODEL_WRF - REAL(dp) :: localC(NSPEC) + +#if defined( MODEL_CESM ) + ! Sink rate for artificial UT/LS sink + REAL(dp) :: ScaleCESMLossRate #endif ! Grid box integration time diagnostic REAL(fp) :: TimeStart, TimeEnd ! Objects - TYPE(DgnMap), POINTER :: mapData => NULL() + TYPE(DgnMap), POINTER :: mapData => NULL() ! ! !DEFINED PARAMETERS ! @@ -229,7 +234,10 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! This should be the same as the value of Nhnew in gckpp_Integrator.F90 ! (assuming Rosenbrock solver). Define this locally in order to break ! a compile-time dependency. -- Bob Yantosca (05 May 2022) - INTEGER, PARAMETER :: Nhnew = 3 + INTEGER, PARAMETER :: Nhnew = 3 + + ! Suppress printing out KPP error messages after this many errors occur + INTEGER, PARAMETER :: INTEGRATE_FAIL_TOGGLE = 20 !======================================================================== ! Do_FullChem begins here! @@ -237,23 +245,20 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & !======================================================================== ! Initialize - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at Do_FullChem (in module GeosCore/FullChem_mod.F90)' - SpcInfo => NULL() - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - Day = Get_Day() ! Current day - Month = Get_Month() ! Current month - Year = Get_Year() ! Current year - Thread = 1 - Failed2x = .FALSE. - - ! Set a switch that allows you to toggle off photolysis for testing - ! (default value : TRUE) - DO_PHOTCHEM = .TRUE. + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at Do_FullChem (in module GeosCore/FullChem_mod.F90)' + SpcInfo => NULL() + Day = Get_Day() ! Current day + Month = Get_Month() ! Current month + Year = Get_Year() ! Current year + Thread = 1 + errorCount = 0 + Failed2x = .FALSE. + doSuppress = .FALSE. ! Print information the first time that DO_FULLCHEM is called - CALL PrintFirstTimeInfo( Input_Opt, State_Chm, FirstChem, Do_PhotChem ) + CALL PrintFirstTimeInfo( Input_Opt, State_Chm, FirstChem ) ! Zero diagnostic archival arrays to make sure that we don't have any ! leftover values from the last timestep near the top of the chemgrid @@ -267,6 +272,7 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & IF (State_Diag%Archive_ProdCOfromNMVOC) State_Diag%ProdCOfromNMVOC= 0.0_f4 IF (State_Diag%Archive_OHreactivity ) State_Diag%OHreactivity = 0.0_f4 IF (State_Diag%Archive_RxnRate ) State_Diag%RxnRate = 0.0_f4 + IF (State_Diag%Archive_RxnConst ) State_Diag%RxnConst = 0.0_f4 IF (State_Diag%Archive_SatDiagnRxnRate) State_Diag%SatDiagnRxnRate= 0.0_f4 IF (State_Diag%Archive_KppDiags) THEN IF (State_Diag%Archive_KppIntCounts) State_Diag%KppIntCounts = 0.0_f4 @@ -280,8 +286,10 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & IF (State_Diag%Archive_KppAutoReducerNVAR) & State_Diag%KppAutoReducerNVAR = 0.0_f4 IF (State_Diag%Archive_KppcNONZERO) State_Diag%KppcNONZERO = 0.0_f4 + IF (State_Diag%Archive_KppNegatives) State_Diag%KppNegatives = 0.0_f4 + IF (State_Diag%Archive_KppNegatives0) State_Diag%KppNegatives0 = 0.0_f4 ENDIF - + ! Also zero satellite diagnostic archival arrays IF ( State_Diag%Archive_SatDiagnLoss ) State_Diag%SatDiagnLoss = 0.0_f4 IF ( State_Diag%Archive_SatDiagnProd ) State_Diag%SatDiagnProd = 0.0_f4 @@ -316,12 +324,7 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & #endif !======================================================================== - ! Zero out certain species: - ! - isoprene oxidation counter species (dkh, bmy, 6/1/06) - ! - isoprene-NO3 oxidation counter species (hotp, 6/1/10) - ! - if SOA or SOA_SVPOA, aromatic oxidation counter species - ! (dkh, 10/06/06) - ! - if SOA_SVPOA, LNRO2H and LNRO2N for NAP (hotp 6/25/09 + ! Zero out certain species !======================================================================== DO N = 1, State_Chm%nSpecies @@ -343,10 +346,9 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & END SELECT ENDIF - ! Temporary fix for CO2 - ! CO2 is a dead species and needs to be set to zero to - ! match the old SMVGEAR code (mps, 6/14/16) - IF ( TRIM( SpcInfo%Name ) == 'CO2' ) THEN + ! Sulfate gas/cloud prod diagnostic species + IF ( TRIM( SpcInfo%Name ) == 'PH2SO4' .or. & + TRIM( SpcInfo%Name ) == 'PSO4AQ' ) THEN State_Chm%Species(N)%Conc(:,:,:) = 0.0_fp ENDIF @@ -358,9 +360,22 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & !======================================================================== ! Convert species to [molec/cm3] (ewl, 8/16/16) !======================================================================== - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, & - State_Met, 'molec/cm3', RC, & - OrigUnit=OrigUnit ) + + ! Halt gas-phase chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Gas-phase chem", RC ) + ENDIF + + ! Convert units of all species to molec/cm3 for KPP + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = MOLECULES_SPECIES_PER_CM3, & + previous_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Unit conversion error!' CALL GC_Error( ErrMsg, RC, 'fullchem_mod.F90') @@ -371,33 +386,32 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! Call photolysis routine to compute J-Values !======================================================================== IF ( Input_Opt%useTimers ) THEN - CALL Timer_End ( "=> FlexChem", RC ) - CALL Timer_Start( "=> FAST-JX photolysis", RC ) + CALL Timer_Start( "=> Photolysis", RC ) ENDIF - ! Do Photolysis - WAVELENGTH = 0 - CALL FAST_JX( WAVELENGTH, Input_Opt, State_Chm, & - State_Diag, State_Grid, State_Met, RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "FAST_JX"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN + ! Compute J-values + IF ( Input_Opt%Do_Photolysis ) THEN + CALL Do_Photolysis( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in "Do_Photolysis"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF ENDIF !### Debug - IF ( prtDebug ) THEN - CALL DEBUG_MSG( '### Do_FullChem: after FAST_JX' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### Do_FullChem: after computing J-values' ) ENDIF + ! Start gas-phase chem and photolysis timers again IF ( Input_Opt%useTimers ) THEN - CALL Timer_End ( "=> FAST-JX photolysis", RC ) - CALL Timer_Start( "=> FlexChem", RC ) ! ended in Do_Chemistry + CALL Timer_End ( "=> Photolysis", RC ) + CALL Timer_Start( "=> Gas-phase chem", RC ) ENDIF -#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) +#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) || defined( MODEL_CESM ) ! Init diagnostics IF ( ASSOCIATED(State_Diag%KppError) ) THEN State_Diag%KppError(:,:,:) = 0.0 @@ -454,10 +468,10 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & !%%%%% CONVERGENCE CRITERIA %%%%% ! Absolute tolerance - ATOL = 1e-2_dp + ATOL = State_Chm%KPP_AbsTol ! Relative tolerance - RTOL = 0.5e-2_dp + RTOL = State_Chm%KPP_RelTol !======================================================================= ! %%%%% SOLVE CHEMISTRY -- This is the main KPP solver loop %%%%% @@ -477,10 +491,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & 'Hexit, last accepted step before exit: ', f11.4, /, & 'Hnew, last predicted step (not yet taken):', f11.4 ) - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( " -> FlexChem loop", RC ) - ENDIF - !------------------------------------------------------------------------ ! Always consider halogens as "fast" species for auto-reduce !------------------------------------------------------------------------ @@ -503,25 +513,25 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED )& !$OMP PRIVATE( I, J, L, N )& - !$OMP PRIVATE( ICNTRL )& + !$OMP PRIVATE( ICNTRL, C_before_integrate )& !$OMP PRIVATE( SO4_FRAC, IERR, RCNTRL, ISTATUS, RSTATE )& !$OMP PRIVATE( SpcID, KppID, F, P, Vloc )& !$OMP PRIVATE( Aout, Thread, RC, S, LCH4 )& !$OMP PRIVATE( OHreact, PCO_TOT, PCO_CH4, PCO_NMVOC, SR )& !$OMP PRIVATE( SIZE_RES, LWC )& #ifdef MODEL_GEOS - !$OMP PRIVATE( NOxTau, NOxConc, localC )& - !$OMP PRIVATE( NOx_weight, NOx_tau_weighted )& -#endif -#ifdef MODEL_WRF - !$OMP PRIVATE( localC )& + !$OMP PRIVATE( NOxTau, NOxConc, NOx_weight, NOx_tau_weighted )& #endif !$OMP COLLAPSE( 3 )& - !$OMP SCHEDULE( DYNAMIC, 24 ) + !$OMP SCHEDULE( DYNAMIC, 24 )& + !$OMP REDUCTION( +:errorCount ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Skip to the end of the loop if we have failed integration twice + IF ( Failed2x ) CYCLE + !===================================================================== ! Initialize private loop variables for each (I,J,L) ! Other private variables will be assigned in Set_Kpp_GridBox_Values @@ -546,18 +556,17 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & K_CLD = 0.0_dp ! Sulfur in-cloud rxn het rates K_MT = 0.0_dp ! Sulfur sea salt rxn het rates CFACTOR = 1.0_dp ! KPP conversion factor + SRO3 = 0.0_dp ! Enhanced sulfate production of + SRHOBr = 0.0_dp ! O3, HOBr, HCl in size-resolved + SRHOCl = 0.0_dp ! cloud droplets #ifdef MODEL_CLASSIC #ifndef NO_OMP Thread = OMP_GET_THREAD_NUM() + 1 ! OpenMP thread number #endif -#endif -#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) - localC = 0.0_dp ! Local backup array for C #endif - ! Per discussions for Lin et al., force keepActive throughout the atmosphere - ! if keepActive option is enabled. (hplin, 2/9/22) - !keepActive = .true. + ! Per discussions for Lin et al., force keepActive throughout the + ! atmosphere if keepActive option is enabled. (hplin, 2/9/22) CALL fullchem_AR_SetKeepActive( option=.TRUE. ) ! Start measuring KPP-related routine timing for this grid box @@ -588,145 +597,176 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & !===================================================================== IF ( State_Met%SUNCOSmid(I,J) > -0.1391731e+0_fp ) THEN - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " -> Photolysis rates", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF + ! Only proceed if doing photolysis + IF ( Input_Opt%Do_Photolysis ) THEN - ! Get the fraction of H2SO4 that is available for photolysis - ! (this is only valid for UCX-enabled mechanisms) - SO4_FRAC = SO4_PHOTFRAC( I, J, L ) + ! Get the fraction of H2SO4 that is available for photolysis + ! (this is only valid for UCX-enabled mechanisms) + SO4_FRAC = SO4_PHOTFRAC( I, J, L, State_Chm ) - ! Adjust certain photolysis rates: - ! (1) H2SO4 + hv -> SO2 + OH + OH (UCX-based mechanisms) - ! (2) O3 + hv -> O2 + O (UCX-based mechanisms) - ! (2) O3 + hv -> OH + OH (trop-only mechanisms) - CALL PHOTRATE_ADJ( Input_Opt, State_Diag, State_Met, I, & - J, L, SO4_FRAC, IERR ) + ! Adjust certain photolysis rates: + ! (1) H2SO4 + hv -> SO2 + OH + OH (UCX-based mechanisms) + ! (2) O3 + hv -> O2 + O (UCX-based mechanisms) + ! (2) O3 + hv -> OH + OH (trop-only mechanisms) + CALL PHOTRATE_ADJ( Input_Opt, State_Chm, State_Diag, State_Met,& + I, J, L, SO4_FRAC, & + IERR ) - ! Loop over the FAST-JX photolysis species - DO N = 1, JVN_ - - IF ( DO_PHOTCHEM ) THEN + ! Loop over the FAST-JX photolysis species + DO N = 1, State_Chm%Phot%nMaxPhotRxns ! Copy photolysis rate from FAST_JX into KPP PHOTOL array - PHOTOL(N) = ZPJ(L,N,I,J) - - ENDIF - - !=============================================================== - ! HISTORY (aka netCDF diagnostics) - ! - ! Instantaneous photolysis rates [s-1] (aka J-values) - ! and noontime photolysis rates [s-1] - ! - ! NOTE: Attach diagnostics here instead of in module - ! fast_jx_mod.F90 so that we can get the adjusted photolysis - ! rates (output from routne PHOTRATE_ADJ above). - ! - ! The mapping between the GEOS-Chem photolysis species and - ! the FAST-JX photolysis species is contained in the lookup - ! table in input file FJX_j2j.dat. - - ! Some GEOS-Chem photolysis species may have multiple - ! branches for photolysis reactions. These will be - ! represented by multiple entries in the FJX_j2j.dat - ! lookup table. - ! - ! NOTE: For convenience, we have stored the GEOS-Chem - ! photolysis species index (range: 1..State_Chm%nPhotol) - ! for each of the FAST-JX photolysis species (range; - ! 1..JVN_) in the GC_PHOTO_ID array (located in module - ! CMN_FJX_MOD.F90). - !=============================================================== - - ! GC photolysis species index - P = GC_Photo_Id(N) - - ! If this FAST_JX photolysis species maps to a valid - ! GEOS-Chem photolysis species (for this simulation)... - IF ( P > 0 .and. P <= State_Chm%nPhotol ) THEN - - ! Archive the instantaneous photolysis rate - ! (summing over all reaction branches) - IF ( State_Diag%Archive_Jval ) THEN - S = State_Diag%Map_Jval%id2slot(P) - IF ( S > 0 ) THEN - State_Diag%Jval(I,J,L,S) = & - State_Diag%Jval(I,J,L,S) + PHOTOL(N) - ENDIF - ENDIF - - ! Satellite diagnostics - ! Archive the instantaneous photolysis rate - ! (summing over all reaction branches) - IF ( State_Diag%Archive_SatDiagnJval ) THEN - S = State_Diag%Map_SatDiagnJval%id2slot(P) - IF ( S > 0 ) THEN - State_Diag%SatDiagnJval(I,J,L,S) = & - State_Diag%SatDiagnJval(I,J,L,S) + PHOTOL(N) + PHOTOL(N) = State_Chm%Phot%ZPJ(L,N,I,J) + + !============================================================ + ! HISTORY (aka netCDF diagnostics) + ! + ! Instantaneous photolysis rates [s-1] (aka J-values) + ! and noontime photolysis rates [s-1] + ! + ! NOTE: Attach diagnostics here instead of in module + ! fast_jx_mod.F90 so that we can get the adjusted photolysis + ! rates (output from routne PHOTRATE_ADJ above). + ! + ! The mapping between the GEOS-Chem photolysis species and + ! the FAST-JX photolysis species is contained in the lookup + ! table in input file FJX_j2j.dat. + + ! Some GEOS-Chem photolysis species may have multiple + ! branches for photolysis reactions. These will be + ! represented by multiple entries in the FJX_j2j.dat + ! lookup table. + ! + ! NOTE: For convenience, we have stored the GEOS-Chem + ! photolysis species index (range: 1..State_Chm%nPhotol) + ! for each of the FAST-JX photolysis species (range; + ! 1..State_Chm%Phot%nMaxPhotRxns) in the GC_PHOTO_ID array + !============================================================ + + ! GC photolysis species index + P = State_Chm%Phot%GC_Photo_Id(N) + + ! If this FAST_JX photolysis species maps to a valid + ! GEOS-Chem photolysis species (for this simulation)... + IF ( P > 0 .and. P <= State_Chm%nPhotol ) THEN + + ! Archive the instantaneous photolysis rate + ! (summing over all reaction branches) + IF ( State_Diag%Archive_Jval ) THEN + S = State_Diag%Map_Jval%id2slot(P) + IF ( S > 0 ) THEN + State_Diag%Jval(I,J,L,S) = & + State_Diag%Jval(I,J,L,S) + PHOTOL(N) + ENDIF ENDIF - ENDIF - ! Archive the noontime photolysis rate - ! (summing over all reaction branches) - IF ( State_Met%IsLocalNoon(I,J) ) THEN - IF ( State_Diag%Archive_JNoon ) THEN - S = State_Diag%Map_JNoon%id2slot(P) + ! Satellite diagnostics + ! Archive the instantaneous photolysis rate + ! (summing over all reaction branches) + IF ( State_Diag%Archive_SatDiagnJval ) THEN + S = State_Diag%Map_SatDiagnJval%id2slot(P) IF ( S > 0 ) THEN - State_Diag%JNoon(I,J,L,S) = & - State_Diag%JNoon(I,J,L,S) + PHOTOL(N) + State_Diag%SatDiagnJval(I,J,L,S) = & + State_Diag%SatDiagnJval(I,J,L,S) + PHOTOL(N) ENDIF ENDIF - ENDIF - ELSE IF ( P == State_Chm%nPhotol+1 ) THEN + ! Archive the noontime photolysis rate + ! (summing over all reaction branches) + IF ( State_Met%IsLocalNoon(I,J) ) THEN + IF ( State_Diag%Archive_JNoon ) THEN + S = State_Diag%Map_JNoon%id2slot(P) + IF ( S > 0 ) THEN + State_Diag%JNoon(I,J,L,S) = & + State_Diag%JNoon(I,J,L,S) + PHOTOL(N) + ENDIF + ENDIF + ENDIF - ! J(O3_O1D). This used to be stored as the nPhotol+1st - ! diagnostic in Jval, but needed to be broken off - ! to facilitate cleaner diagnostic indexing (bmy, 6/3/20) - IF ( State_Diag%Archive_JvalO3O1D ) THEN - State_Diag%JvalO3O1D(I,J,L) = & - State_Diag%JvalO3O1D(I,J,L) + PHOTOL(N) - ENDIF + ELSE IF ( P == State_Chm%nPhotol+1 ) THEN - ! J(O3_O1D) for satellite diagnostics - IF ( State_Diag%Archive_SatDiagnJvalO3O1D ) THEN - State_Diag%SatDiagnJvalO3O1D(I,J,L) = & - State_Diag%SatDiagnJvalO3O1D(I,J,L) + PHOTOL(N) - ENDIF + ! J(O3_O1D). This used to be stored as the nPhotol+1st + ! diagnostic in Jval, but needed to be broken off + ! to facilitate cleaner diagnostic indexing (bmy, 6/3/20) + IF ( State_Diag%Archive_JvalO3O1D ) THEN + State_Diag%JvalO3O1D(I,J,L) = & + State_Diag%JvalO3O1D(I,J,L) + PHOTOL(N) + ENDIF - ELSE IF ( P == State_Chm%nPhotol+2 ) THEN + ! J(O3_O1D) for satellite diagnostics + IF ( State_Diag%Archive_SatDiagnJvalO3O1D ) THEN + State_Diag%SatDiagnJvalO3O1D(I,J,L) = & + State_Diag%SatDiagnJvalO3O1D(I,J,L) + PHOTOL(N) + ENDIF - ! J(O3_O3P). This used to be stored as the nPhotol+2nd - ! diagnostic in Jval, but needed to be broken off - ! to facilitate cleaner diagnostic indexing (bmy, 6/3/20) - IF ( State_Diag%Archive_JvalO3O3P ) THEN - State_Diag%JvalO3O3P(I,J,L) = & - State_Diag%JvalO3O3P(I,J,L) + PHOTOL(N) - ENDIF + ELSE IF ( P == State_Chm%nPhotol+2 ) THEN - ! J(O3_O3P) for satellite diagnostics - IF ( State_Diag%Archive_SatDiagnJvalO3O3P ) THEN - State_Diag%SatDiagnJvalO3O3P(I,J,L) = & - State_Diag%SatDiagnJvalO3O3P(I,J,L) + PHOTOL(N) - ENDIF + ! J(O3_O3P). This used to be stored as the nPhotol+2nd + ! diagnostic in Jval, but needed to be broken off + ! to facilitate cleaner diagnostic indexing (bmy, 6/3/20) + IF ( State_Diag%Archive_JvalO3O3P ) THEN + State_Diag%JvalO3O3P(I,J,L) = & + State_Diag%JvalO3O3P(I,J,L) + PHOTOL(N) + ENDIF - ENDIF - ENDDO + ! J(O3_O3P) for satellite diagnostics + IF ( State_Diag%Archive_SatDiagnJvalO3O3P ) THEN + State_Diag%SatDiagnJvalO3O3P(I,J,L) = & + State_Diag%SatDiagnJvalO3O3P(I,J,L) + PHOTOL(N) + ENDIF - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " -> Photolysis rates", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) + ENDIF + ENDDO ENDIF + ENDIF +#if defined( MODEL_CESM ) + !===================================================================== + ! Unphysical fix: Photolyze soluble aerosol tracers + ! This removes unphysical values of soluble tracers in the UT/LS due + ! to decoupling of convection and wet scavenging in CESM dynamics. + ! + ! This process has to be done before InChemGrid as it is supposed to + ! be active everywhere, especially the stratosphere. + ! (hplin, 5/30/23) + !===================================================================== + + IF ( Input_Opt%correctConvUTLS .and. L .ge. State_Met%PBL_TOP_L(I,J) ) THEN + + ! We operate directly on [molec/cm3] species concentrations in State_Chm, + ! because they have not been copied to C() in KPP yet. But, we can use + ! PHOTOL(11) which is J-NO2, and scale to create the artificial sink. + ! This is a consistent handling based off the MOZART-TS1 mechanism + ! in Emmons et al., 2020 JAMES. + ScaleCESMLossRate = MAX(0.0_dp, 1 - PHOTOL(11) * .0004_dp * DT) + + State_Chm%Species(id_TSOA0)%Conc(I,J,L) = State_Chm%Species(id_TSOA0)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_TSOA1)%Conc(I,J,L) = State_Chm%Species(id_TSOA1)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_TSOA2)%Conc(I,J,L) = State_Chm%Species(id_TSOA2)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_TSOA3)%Conc(I,J,L) = State_Chm%Species(id_TSOA3)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_ASOA1)%Conc(I,J,L) = State_Chm%Species(id_ASOA1)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_ASOA2)%Conc(I,J,L) = State_Chm%Species(id_ASOA2)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_ASOA3)%Conc(I,J,L) = State_Chm%Species(id_ASOA3)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_ASOAN)%Conc(I,J,L) = State_Chm%Species(id_ASOAN)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_TSOG0)%Conc(I,J,L) = State_Chm%Species(id_TSOG0)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_TSOG1)%Conc(I,J,L) = State_Chm%Species(id_TSOG1)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_TSOG2)%Conc(I,J,L) = State_Chm%Species(id_TSOG2)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_TSOG3)%Conc(I,J,L) = State_Chm%Species(id_TSOG3)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_ASOG1)%Conc(I,J,L) = State_Chm%Species(id_ASOG1)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_ASOG2)%Conc(I,J,L) = State_Chm%Species(id_ASOG2)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_ASOG3)%Conc(I,J,L) = State_Chm%Species(id_ASOG3)%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_NIT )%Conc(I,J,L) = State_Chm%Species(id_NIT )%Conc(I,J,L) * ScaleCESMLossRate + State_Chm%Species(id_NITs )%Conc(I,J,L) = State_Chm%Species(id_NITs )%Conc(I,J,L) * ScaleCESMLossRate + + ! Don't apply this to sulfate as it is not applied in CAM-chem either and will affect the SO4 budget. + !State_Chm%Species(id_SO4 )%Conc(I,J,L) = State_Chm%Species(id_SO4 )%Conc(I,J,L) * ScaleCESMLossRate + !State_Chm%Species(id_SO4s )%Conc(I,J,L) = State_Chm%Species(id_SO4s )%Conc(I,J,L) * ScaleCESMLossRate + + ENDIF + +#endif + !===================================================================== ! Test if we need to do the chemistry for box (I,J,L), ! otherwise move onto the next box. @@ -752,16 +792,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & IF ( SpcId > 0 ) C(N) = State_Chm%Species(SpcID)%Conc(I,J,L) ENDDO - !===================================================================== - ! Start KPP main timer - !===================================================================== - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " -> KPP", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - !===================================================================== ! CHEMISTRY MECHANISM INITIALIZATION (#1) ! @@ -775,14 +805,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! -- Bob Yantosca (08 Mar 2022) !===================================================================== - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " -> Init KPP", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - ! Copy values into the various KPP global variables CALL Set_Kpp_GridBox_Values( I = I, & J = J, & @@ -793,14 +815,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & State_Met = State_Met, & RC = RC ) - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " -> Init KPP", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - !===================================================================== ! CHEMISTRY MECHANISM INITIALIZATION (#2) ! @@ -814,14 +828,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! -- Bob Yantosca (08 Mar 2022) !===================================================================== - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " RCONST", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - ! Compute sulfur chemistry reaction rates [1/s] ! If size_res = T, we'll call fullchem_HetDropChem below. CALL Set_Sulfur_Chem_Rates( I = I, & @@ -835,14 +841,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & size_res = size_res, & RC = RC ) - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " RCONST", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - !===================================================================== ! CHEMISTRY MECHANISM INITIALIZATION (#3) ! @@ -855,32 +853,20 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! -- Bob Yantosca (08 Mar 2022) !===================================================================== - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " -> Init KPP", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - ! Populate fields of the State_Het object CALL fullchem_SetStateHet( I = I, & J = J, & L = L, & + id_SALA = id_SALA, & + id_SALAAL = id_SALAAL, & + id_SALC = id_SALC, & + id_SALCAL = id_SALCAL, & Input_Opt = Input_Opt, & State_Chm = State_Chm, & State_Met = State_Met, & H = State_Het, & RC = RC ) - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " -> Init KPP", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - !===================================================================== ! CHEMISTRY MECHANISM INITIALIZATION (#5) ! @@ -899,14 +885,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & !===================================================================== IF ( State_Met%CLDF(I,J,L) > 1.0e-4_fp ) THEN - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " RCONST", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - ! Liquid water content (same formula from the old sulfate_mod.F90) LWC = ( State_Met%QL(I,J,L) * State_Met%AIRDEN(I,J,L) & * 1.0e-3_fp / State_Met%CLDF(I,J,L) ) @@ -922,27 +900,15 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & CALL fullchem_HetDropChem( I = I, & J = J, & L = L, & - SR = SR, & Input_Opt = Input_Opt, & State_Met = State_Met, & State_Chm = State_Chm ) - - ! Add result as an enhancement to O2 metal catalysis rate - ! as a 1st order reaction - K_CLD(3) = K_CLD(3) + SR ENDIF - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " RCONST", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF ENDIF !===================================================================== - ! Start KPP main timer and prepare arrays + ! Prepare arrays !===================================================================== ! Zero out dummy species index in KPP @@ -955,29 +921,13 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! Update reaction rates !===================================================================== - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " RCONST", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - ! Update the array of rate constants CALL Update_RCONST( ) - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " RCONST", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - !===================================================================== ! HISTORY (aka netCDF diagnostics) ! - ! Archive KPP reaction rates [s-1] + ! Archive KPP reaction rates [molec cm-3 s-1] ! See gckpp_Monitor.F90 for a list of chemical reactions ! ! NOTE: In KPP 2.5.0+, VAR and FIX are now private to the integrator @@ -1011,6 +961,18 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ENDIF ENDIF + ! Archive KPP reaction rate constants (RCONST). The units vary. + ! They are already updated in Update_RCONST, and do not require + ! a call of Fun(). (hplin, 3/28/23) + IF ( State_Diag%Archive_RxnConst ) THEN + + DO S = 1, State_Diag%Map_RxnConst%nSlots + N = State_Diag%Map_RxnConst%slot2Id(S) + State_Diag%RxnConst(I,J,L,S) = RCONST(N) + ENDDO + + ENDIF + !===================================================================== ! Set options for the KPP integrator in vectors ICNTRL and RCNTRL ! This now needs to be done within the parallel loop @@ -1024,46 +986,66 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! Integrate the box forwards !===================================================================== - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " Integrate 1", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF + ! Store concentrations before the call to "Integrate". This will + ! let us reset concentrations before calling "Integrate" a 2nd time. + C_before_integrate = C - ! Call the KPP integrator + ! Call the Rosenbrock integrator + ! (with optional auto-reduce functionality) CALL Integrate( TIN, TOUT, ICNTRL, & RCNTRL, ISTATUS, RSTATE, IERR ) - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " Integrate 1", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - ! Print grid box indices to screen if integrate failed IF ( IERR < 0 ) THEN - WRITE(6,*) '### INTEGRATE RETURNED ERROR AT: ', I, J, L - ENDIF -#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) - ! Print grid box indices to screen if integrate failed - IF ( IERR < 0 ) THEN - WRITE(6,*) '### INTEGRATE RETURNED ERROR AT: ', I, J, L - IF ( ASSOCIATED(State_Diag%KppError) ) THEN + ! Turn off error output after a certain limit is reached + IF ( .not. doSuppress ) THEN + WRITE( 6, * ) '### INTEGRATE RETURNED ERROR AT: ', I, J, L + errorCount = errorCount + 1 + IF ( errorCount > INTEGRATE_FAIL_TOGGLE ) THEN + WRITE( 6, '(a)' ) & + '### Further error output has been switched off' + doSuppress = .TRUE. + ENDIF + ENDIF + +#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) || defined( MODEL_CESM ) + ! Keep track of number of error boxes + IF ( State_Diag%Archive_KppError ) THEN State_Diag%KppError(I,J,L) = State_Diag%KppError(I,J,L) + 1.0 ENDIF +#endif + ENDIF + +#if defined( MODEL_GEOS ) + ! Mark integration as erroneous if negative concentrations so that it will be + ! repeated below (cakelle2, 2023/10/26) + IF ( IERR >= 0 .AND. Input_Opt%KppCheckNegatives >= 0 ) THEN + IF ( ( Input_Opt%KppCheckNegatives==0 .AND. State_Met%InStratMeso(I,J,L) ) .OR. & + ( L > ( State_Grid%NZ - Input_Opt%KppCheckNegatives) ) ) THEN + IF ( ANY(C < 0.0_dp) ) THEN + IERR = -999 + ! Include negative concentration boxes within error box diagnostic + IF ( State_Diag%Archive_KppError ) THEN + State_Diag%KppError(I,J,L) = State_Diag%KppError(I,J,L) + 1.0 + ENDIF + ENDIF + ENDIF ENDIF #endif !===================================================================== ! HISTORY: Archive KPP solver diagnostics + ! + ! !TODO: Abstract this into a separate routine !===================================================================== IF ( State_Diag%Archive_KppDiags ) THEN + ! Check for negative concentrations after first integration + IF ( State_Diag%Archive_KppNegatives0 ) THEN + State_Diag%KppNegatives0(I,J,L) = REAL( COUNT( C < 0.0_dp ), KIND=4 ) + ENDIF + ! # of integrator calls IF ( State_Diag%Archive_KppIntCounts ) THEN State_Diag%KppIntCounts(I,J,L) = ISTATUS(1) @@ -1116,15 +1098,16 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & !===================================================================== IF ( IERR < 0 ) THEN -#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) - ! Save a copy of the C vector (GEOS and WRF only) - localC = C -#endif - - ! Reset first time step and start concentrations - ! Retry the integration with non-optimized settings + ! Zero the first time step (Hstart, used by Rosenbrock). Also reset + ! C with concentrations prior to the 1st call to "Integrate". RCNTRL(3) = 0.0_dp - C = 0.0_dp + C = C_before_integrate + +#if defined( MODEL_GEOS ) + ! In GEOS also inflate the error tolerances (cakelle2, 2023/10/26) + ATOL = 1.0e-2_dp * Input_Opt%KppTolScale + RTOL = 1.0e-2_dp * Input_Opt%KppTolScale +#endif ! Disable auto-reduce solver for the second iteration for safety IF ( Input_Opt%Use_AutoReduce ) THEN @@ -1134,29 +1117,15 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! Update rates again CALL Update_RCONST( ) - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " Integrate 2", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - - ! Integrate again + ! Call the Rosenbrock integrator (w/ auto-reduction disabled) CALL Integrate( TIN, TOUT, ICNTRL, & RCNTRL, ISTATUS, RSTATE, IERR ) - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " Integrate 2", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - !================================================================== ! HISTORY: Archive KPP solver diagnostics ! This time, add to the existing value + ! + ! !TODO: Abstract this into a separate routine !================================================================== IF ( State_Diag%Archive_KppDiags ) THEN @@ -1213,42 +1182,55 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! Exit upon the second failure !================================================================== IF ( IERR < 0 ) THEN + + ! Print error message WRITE(6, '(a )' ) '## INTEGRATE FAILED TWICE !!! ' WRITE(ERRMSG,'(a,i3)' ) 'Integrator error code :', IERR -#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) + +#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) || defined( MODEL_CESM ) IF ( Input_Opt%KppStop ) THEN CALL ERROR_STOP(ERRMSG, 'INTEGRATE_KPP') - ! Revert to start values ELSE - C = localC + ! Revert to concentrations prior to 1st call to "Integrate" + C = C_before_integrate ENDIF - IF ( ASSOCIATED(State_Diag%KppError) ) THEN + + ! Keep track of error boxes + IF ( State_Diag%Archive_KppError ) THEN State_Diag%KppError(I,J,L) = State_Diag%KppError(I,J,L) + 1.0 ENDIF #else + !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ! Make sure only one thread at a time executes this block + !$OMP CRITICAL + ! ! Set a flag to break out of loop gracefully ! NOTE: You can set a GDB breakpoint here to examine the error - !$OMP CRITICAL Failed2x = .TRUE. - ! Print concentrations at trouble box KPP error - PRINT*, REPEAT( '###', 79 ) + ! Print concentrations at failure grid box + PRINT*, REPEAT( '#', 79 ) PRINT*, '### KPP DEBUG OUTPUT!' PRINT*, '### Species concentrations at problem box ', I, J, L - PRINT*, REPEAT( '###', 79 ) + PRINT*, REPEAT( '#', 79 ) DO N = 1, NSPEC - PRINT*, '### ', C(N), TRIM( ADJUSTL( SPC_NAMES(N) ) ) + PRINT*, C(N), TRIM( ADJUSTL( SPC_NAMES(N) ) ) ENDDO - ! Print rate constants at trouble box KPP error - PRINT*, REPEAT( '###', 79 ) + ! Print rate constants at failure grid box + PRINT*, REPEAT( '#', 79 ) PRINT*, '### KPP DEBUG OUTPUT!' PRINT*, '### Reaction rates at problem box ', I, J, L - PRINT*, REPEAT( '###', 79 ) + PRINT*, REPEAT( '#', 79 ) DO N = 1, NREACT PRINT*, RCONST(N), TRIM( ADJUSTL( EQN_NAMES(N) ) ) ENDDO + ! !$OMP END CRITICAL + !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + ! Start skipping to end of loop upon 2 failures in a row + CYCLE #endif ENDIF @@ -1271,8 +1253,8 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! file at startup (see above). State_Chm%KPPHvalue(I,J,L) = RSTATE(Nhnew) - ! Save cpu time spent for bulk of KPP-related routines for History archival - ! (hplin, 11/8/21) + ! Save cpu time spent for bulk of KPP-related routines for + ! History archival (hplin, 11/8/21) IF ( State_Diag%Archive_KppTime ) THEN call cpu_time(TimeEnd) State_Diag%KppTime(I,J,L) = TimeEnd - TimeStart @@ -1292,6 +1274,13 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ! Skip if this is not a GEOS-Chem species IF ( SpcID <= 0 ) CYCLE + ! Scan for negatives + IF ( State_Diag%Archive_KppNegatives ) THEN + IF ( C(N) < 0.0_dp ) THEN + State_Diag%KppNegatives(I,J,L) = State_Diag%KppNegatives(I,J,L) + 1.0_f4 + ENDIF + ENDIF + ! Set negative concentrations to zero C(N) = MAX( C(N), 0.0_dp ) @@ -1300,54 +1289,53 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ENDDO - IF ( Input_Opt%useTimers ) THEN +#ifdef TOMAS + !----------------------------------------------------------------- + ! FOR TOMAS MICROPHYSICS: + ! + ! Obtain P/L with a unit [kg S] for tracing + ! gas-phase sulfur species production (SO2, SO4, MSA) + ! (win, 8/4/09) + !----------------------------------------------------------------- - ! Stop main KPP timer - CALL Timer_End( TimerName = " -> KPP", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) + ! Calculate H2SO4 production rate [kg s-1] in each + ! time step (win, 8/4/09) + H2SO4_RATE(I,J,L) = C(ind_PH2SO4) / AVO * 98.e-3_fp * & + State_Met%AIRVOL(I,J,L) * & + 1.0e+6_fp / DT ! kg s-1 box-1 - ! Start Prod/Loss timer - CALL Timer_Start( TimerName = " -> Prod/loss diags", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) + IF ( H2SO4_RATE(I,J,L) < 0.0d0) THEN + write(*,*) "H2SO4_RATE negative in fullchem_mod.F90!!", & + I, J, L, "was:", H2SO4_RATE(I,J,L), " setting to 0.0d0" + H2SO4_RATE(I,J,L) = 0.0d0 ENDIF -#ifdef BPCH_DIAG -#ifdef TOMAS - !always calculate rate for TOMAS - DO F = 1, NFAM + PSO4AQ_RATE(I,J,L) = C(ind_PSO4AQ) / AVO * 98.e-3_fp * & + State_Met%AIRVOL(I,J,L) * & + 1.0e+6_fp ! kg per timestep box-1 - ! Determine dummy species index in KPP - KppID = PL_Kpp_Id(F) + IF ( PSO4AQ_RATE(I,J,L) < 0.0d0) THEN + write(*,*) "PSO4AQ_RATE negative in fullchem_mod.F90", & + I, J, L, "was:", PSO4AQ_RATE(I,J,L), " setting to 0.0d0" + PSO4AQ_RATE(I,J,L) = 0.0d0 + ENDIF +#endif - !----------------------------------------------------------------- - ! FOR TOMAS MICROPHYSICS: - ! - ! Obtain P/L with a unit [kg S] for tracing - ! gas-phase sulfur species production (SO2, SO4, MSA) - ! (win, 8/4/09) - !----------------------------------------------------------------- - - ! Calculate H2SO4 production rate [kg s-1] in each - ! time step (win, 8/4/09) - IF ( TRIM(FAM_NAMES(F)) == 'PSO4' ) THEN - ! Hard-coded MW - H2SO4_RATE(I,J,L) = C(KppID) / AVO * 98.e-3_fp * & - State_Met%AIRVOL(I,J,L) * & - 1.0e+6_fp / DT - - IF ( H2SO4_RATE(I,J,L) < 0.0d0) THEN - write(*,*) "H2SO4_RATE negative in fullchem_mod.F90!!", & - I, J, L, "was:", H2SO4_RATE(I,J,L), " setting to 0.0d0" - H2SO4_RATE(I,J,L) = 0.0d0 - ENDIF - ENDIF - ENDDO +#ifdef MODEL_CESM + !--------------------------------------------------------------------- + ! Calculate H2SO4 production rate for coupling to CESM + ! (interface to MAM4 nucleation) + !--------------------------------------------------------------------- -#endif + ! mol/mol = molec cm-3 * g * mol(Air)-1 * kg g-1 * m-3 cm3 / (molec mol-1 * kg m-3) = mol/molAir + State_Chm%H2SO4_PRDR(I,J,L) = C(id_PSO4) * AIRMW * 1e-3_fp * 1.0e+6_fp /& + (AVO * State_Met%AIRDEN(I,J,L)) + + IF ( State_Chm%H2SO4_PRDR(I,J,L) < 0.0d0) THEN + write(*,*) "H2SO4_PRDR negative in fullchem_mod.F90!!", & + I, J, L, "was:", State_Chm%H2SO4_PRDR(I,J,L), " setting to 0.0d0" + State_Chm%H2SO4_PRDR(I,J,L) = 0.0d0 + ENDIF #endif #ifdef MODEL_GEOS @@ -1469,14 +1457,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ENDIF - ! Stop Prod/Loss timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " -> Prod/loss diags", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - !==================================================================== ! HISTORY (aka netCDF diagnostics) ! @@ -1487,14 +1467,6 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & IF ( State_Diag%Archive_OHreactivity .or. & State_Diag%Archive_SatDiagnOHreactivity ) THEN - ! Start timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( TimerName = " -> OH reactivity diag", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF - ! Archive OH reactivity diagnostic CALL Get_OHreactivity ( C, RCONST, OHreact ) IF ( State_Diag%Archive_OHreactivity ) THEN @@ -1504,37 +1476,12 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & State_Diag%SatDiagnOHreactivity(I,J,L) = OHreact ENDIF - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( TimerName = " -> OH reactivity diag", & - InLoop = .TRUE., & - ThreadNum = Thread, & - RC = RC ) - ENDIF ENDIF ENDDO ENDDO ENDDO !$OMP END PARALLEL DO - ! Stop timer - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( " -> FlexChem loop", RC ) - ENDIF - - ! Compute sum of in-loop timers - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Sum_Loop( " -> Init KPP", RC ) - CALL Timer_Sum_Loop( " -> Het chem rates", RC ) - CALL Timer_Sum_Loop( " -> Photolysis rates", RC ) - CALL Timer_Sum_Loop( " -> KPP", RC ) - CALL Timer_Sum_Loop( " RCONST", RC ) - CALL Timer_Sum_Loop( " Integrate 1", RC ) - CALL Timer_Sum_Loop( " Integrate 2", RC ) - CALL Timer_Sum_Loop( " -> Prod/loss diags", RC ) - CALL Timer_Sum_Loop( " -> OH reactivity diag", RC ) - ENDIF - !======================================================================= ! Return gracefully if integration failed 2x anywhere ! (as we cannot break out of a parallel DO loop!) @@ -1553,6 +1500,23 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & ENDIF #endif + +#ifdef TOMAS + !----------------------------------------------------------------- + ! For TOMAS microphysics: + ! + ! SO4 from aqueous chemistry of SO2 (in-cloud oxidation) + ! + ! SO4 produced via aqueous chemistry is distributed onto 30-bin + ! aerosol by TOMAS subroutine AQOXID. + !----------------------------------------------------------------- + CALL TOMAS_SO4_AQ( Input_Opt, State_Chm, State_Grid, & + State_Met, State_Diag, RC ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### CHEMSULFATE: a TOMAS_SO4_AQ' ) + ENDIF +#endif + !======================================================================= ! Archive OH, HO2, O1D, O3P concentrations after solver !======================================================================= @@ -1571,7 +1535,7 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### Do_FullChem: after OHSAVE' ) ENDIF ENDIF @@ -1589,7 +1553,7 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### Do_FullChem: after Diag_Metrics' ) ENDIF @@ -1616,36 +1580,53 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & !======================================================================= ! Convert species back to original units (ewl, 8/16/16) !======================================================================= - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + ! Halt gas-phase chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Gas-phase chem", RC ) + ENDIF + + ! Convert units of all species back to kg + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Unit conversion error!' CALL GC_Error( ErrMsg, RC, 'fullchem_mod.F90' ) RETURN ENDIF + ! Start gas-phase chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Gas-phase chem", RC ) + ENDIF + !======================================================================= ! Apply high-altitude active nitrogen partitioning and H2SO4 ! photolysis approximations outside the chemistry grid !======================================================================= CALL UCX_NOX( Input_Opt, State_Chm, State_Grid, State_Met ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMDR: after UCX_NOX' ) ENDIF CALL UCX_H2SO4PHOT( Input_Opt, State_Chm, State_Grid, State_Met ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMDR: after UCX_H2SO4PHOT' ) ENDIF ! Set State_Chm arrays for surface J-values used in HEMCO and ! saved to restart file - IF ( RXN_O3_1 >= 0 ) THEN - State_Chm%JOH(:,:) = ZPJ(1,RXN_O3_1,:,:) + IF ( State_Chm%Phot%RXN_O3_1 >= 0 ) THEN + State_Chm%JOH(:,:) = State_Chm%Phot%ZPJ(1,State_Chm%Phot%RXN_O3_1,:,:) ENDIF - IF ( RXN_NO2 >= 0 ) THEN - State_Chm%JNO2(:,:) = ZPJ(1,RXN_NO2,:,:) + IF ( State_Chm%Phot%RXN_NO2 >= 0 ) THEN + State_Chm%JNO2(:,:) = State_Chm%Phot%ZPJ(1,State_Chm%Phot%RXN_NO2,:,:) ENDIF ! Set FIRSTCHEM = .FALSE. -- we have gone thru one chem step @@ -1653,6 +1634,174 @@ SUBROUTINE Do_FullChem( Input_Opt, State_Chm, State_Diag, & END SUBROUTINE Do_FullChem !EOC +#ifdef TOMAS +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: tomas_so4_aq +! +! !DESCRIPTION: Subroutine CHEM\_SO4\_AQ takes the SO4 produced via aqueous +! chemistry of SO2 and distribute onto the size-resolved aerosol number and +! sulfate mass as a part of the TOMAS aerosol microphysics module +! (win, 1/25/10) +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE TOMAS_SO4_AQ( Input_Opt, State_Chm, State_Grid, & + State_Met, State_Diag, RC ) +! +! !USES: +! + USE ErrCode_Mod + USE ERROR_MOD + USE Input_Opt_Mod, ONLY : OptINput + USE State_Chm_Mod, ONLY : ChmState + USE State_Grid_Mod, ONLY : GrdState + USE State_Met_Mod, ONLY : MetState + USE State_Diag_Mod, ONLY : DgnState + USE TOMAS_MOD, ONLY : AQOXID, GETACTBIN,PSO4AQ_RATE + USE UnitConv_Mod +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object + +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diag State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REMARKS: +! NOTE: This subroutine is ignored unless we compile for TOMAS microphysics. +! +! !REVISION HISTORY: +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER :: I, J, L + INTEGER :: k, binact1, binact2 + INTEGER :: KMIN + INTEGER :: previous_units + REAL(fp) :: SO4OXID + + !================================================================= + ! TOMAS_SO4_AQ begins here! + !================================================================= + + ! Assume success + RC = GC_SUCCESS + + ! Convert species to [kg] + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = KG_SPECIES, & + previous_units = previous_units, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + CALL GC_Error('Unit conversion error', RC, & + 'Start of TOMAS_SO4_AQ in sulfate_mod.F90') + RETURN + ENDIF + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED ) & + !$OMP PRIVATE( I, J, L ) & + !$OMP PRIVATE( KMIN, SO4OXID, BINACT1, BINACT2 ) & + !$OMP SCHEDULE( DYNAMIC ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Skip non-chemistry boxes + IF ( .not. State_Met%InChemGrid(I,J,L) ) CYCLE + + SO4OXID = PSO4AQ_RATE(I,J,L) + +! print*, 'Here is SO4OXID ',SO4OXID, I,J,L + +! SO4OXID = PSO4_SO2AQ(I,J,L) * State_Met%AD(I,J,L) & +! / ( AIRMW / State_Chm%SpcData(id_SO4)%Info%MW_g ) ! convert v/v to kg/box + + IF ( SO4OXID > 0e+0_fp ) THEN + ! JKodros (6/2/15 - Set activating bin based on which TOMAS bin + !length being used) +#if defined( TOMAS12 ) + CALL GETACTBIN( I, J, L, id_NK05, .TRUE. , BINACT1, State_Chm, RC ) + + CALL GETACTBIN( I, J, L, id_NK05, .FALSE., BINACT2, State_Chm, RC ) +#elif defined( TOMAS15 ) + CALL GETACTBIN( I, J, L, id_NK08, .TRUE. , BINACT1, State_Chm, RC ) + + CALL GETACTBIN( I, J, L, id_NK08, .FALSE., BINACT2, State_Chm, RC ) +#elif defined( TOMAS30 ) + CALL GETACTBIN( I, J, L, id_NK10, .TRUE. , BINACT1, State_Chm, RC ) + + CALL GETACTBIN( I, J, L, id_NK10, .FALSE., BINACT2, State_Chm, RC ) +#else + CALL GETACTBIN( I, J, L, id_NK20, .TRUE. , BINACT1, State_Chm, RC ) + + CALL GETACTBIN( I, J, L, id_NK20, .FALSE., BINACT2, State_Chm, RC ) +#endif + + KMIN = ( BINACT1 + BINACT2 )/ 2. + + ! Indicate that we are NOT calling AqOxid from wetdep, which + ! will avoid doing any further internal unit conversion (as + ! units are already in kg here). -- Bob Yantosca (11 Apr 2024) + CALL AqOxid( & + I = I, & + J = J, & + L = L, & + MOXID = SO4OXID, & + KMIN = KMIN, & + fromWetDep = .FALSE., & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + State_Diag = State_Diag, & + RC = RC ) + ENDIF + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ! Convert species back to original units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + CALL GC_Error('Unit conversion error', RC, & + 'End of TOMAS_SO4_AQ in sulfate_mod.F90') + RETURN + ENDIF + + END SUBROUTINE TOMAS_SO4_AQ +!EOC +#endif !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ @@ -1665,7 +1814,7 @@ END SUBROUTINE Do_FullChem !\\ ! !INTERFACE: ! - SUBROUTINE PrintFirstTimeInfo( Input_Opt, State_Chm, FirstChem, Do_PhotChem ) + SUBROUTINE PrintFirstTimeInfo( Input_Opt, State_Chm, FirstChem ) ! ! !USES: ! @@ -1677,7 +1826,6 @@ SUBROUTINE PrintFirstTimeInfo( Input_Opt, State_Chm, FirstChem, Do_PhotChem ) TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object LOGICAL, INTENT(IN) :: FirstChem ! Is this the first call? - LOGICAL, INTENT(IN) :: Do_PhotChem ! Is photolysis turned on? !EOP !------------------------------------------------------------------------------ !BOC @@ -1685,8 +1833,8 @@ SUBROUTINE PrintFirstTimeInfo( Input_Opt, State_Chm, FirstChem, Do_PhotChem ) ! Exit if we are not on the first chemistry timestep IF ( .not. FirstChem ) RETURN - ! Print on the root CPU only - IF ( Input_Opt%AmIRoot ) THEN + ! Print on the root CPU only (only if debug printout is on) + IF ( Input_Opt%AmIRoot .and. Input_Opt%Verbose ) THEN ! Write header WRITE( 6, '(a)' ) REPEAT( '=', 79 ) @@ -1712,13 +1860,17 @@ SUBROUTINE PrintFirstTimeInfo( Input_Opt, State_Chm, FirstChem, Do_PhotChem ) 140 FORMAT( '* Sulfur in-cloud chemistry is computed in KPP' ) ENDIF - ! Print the status of photolysis: on or off - IF ( Do_Photchem ) THEN + ! Print the status of photolysis: on or off + IF ( Input_Opt%Do_Photolysis ) THEN WRITE( 6, 150 ) +#ifdef FASTJX 150 FORMAT( '* Photolysis is activated -- rates computed by FAST-JX' ) +#else + 150 FORMAT( '* Photolysis is activated -- rates computed by Cloud-J' ) +#endif ELSE WRITE( 6, 160 ) - 160 FORMAT( '* Photolysis has been deactivated for testing purposes' ) + 160 FORMAT( '* Photolysis is off for testing -- using zero J-values' ) ENDIF ! Write footer @@ -2537,7 +2689,6 @@ SUBROUTINE Init_FullChem( Input_Opt, State_Chm, State_Diag, RC ) ! ! Scalars INTEGER :: KppId, N - LOGICAL :: prtDebug ! Strings CHARACTER(LEN=255) :: ErrMsg, ThisLoc @@ -2559,10 +2710,9 @@ SUBROUTINE Init_FullChem( Input_Opt, State_Chm, State_Diag, RC ) !======================================================================= ErrMsg = '' ThisLoc = ' -> at Init_FullChem (in module GeosCore/FullChem_mod.F90)' - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ! Debug output - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 100 ) 100 FORMAT( ' - INIT_FULLCHEM: Allocating arrays' ) @@ -2579,10 +2729,17 @@ SUBROUTINE Init_FullChem( Input_Opt, State_Chm, State_Diag, RC ) id_O3P = Ind_( 'O' ) id_O1D = Ind_( 'O1D' ) id_OH = Ind_( 'OH' ) - id_SALAAL = Ind_( 'SALAAL' ) - id_SALCAL = Ind_( 'SALCAL' ) id_SO4 = Ind_( 'SO4' ) + id_SALA = Ind_( 'SALA' ) + id_SALAAL = Ind_( 'SALAAL' ) id_SALC = Ind_( 'SALC' ) + id_SALCAL = Ind_( 'SALCAL' ) +#ifdef TOMAS + id_NK05 = Ind_( 'NK5' ) + id_NK08 = Ind_( 'NK8' ) + id_NK10 = Ind_( 'NK10' ) + id_NK20 = Ind_( 'NK20' ) +#endif #ifdef MODEL_GEOS ! ckeller @@ -2625,6 +2782,29 @@ SUBROUTINE Init_FullChem( Input_Opt, State_Chm, State_Diag, RC ) id_IDNOO = Ind_( 'IDNOO' ) #endif +#ifdef MODEL_CESM + ! hplin + id_TSOA0 = Ind_('TSOA0') + id_TSOA1 = Ind_('TSOA1') + id_TSOA2 = Ind_('TSOA2') + id_TSOA3 = Ind_('TSOA3') + id_ASOA1 = Ind_('ASOA1') + id_ASOA2 = Ind_('ASOA2') + id_ASOA3 = Ind_('ASOA3') + id_ASOAN = Ind_('ASOAN') + id_TSOG0 = Ind_('TSOG0') + id_TSOG1 = Ind_('TSOG1') + id_TSOG2 = Ind_('TSOG2') + id_TSOG3 = Ind_('TSOG3') + id_ASOG1 = Ind_('ASOG1') + id_ASOG2 = Ind_('ASOG2') + id_ASOG3 = Ind_('ASOG3') + id_NIT = Ind_('NIT') + id_SO4s = Ind_('SO4s') + id_NITs = Ind_('NITs') + id_HNO3 = Ind_('HNO3') +#endif + ! Set flags to denote if each species is defined ok_HO2 = ( id_HO2 > 0 ) ok_O1D = ( id_O1D > 0 ) @@ -2642,6 +2822,19 @@ SUBROUTINE Init_FullChem( Input_Opt, State_Chm, State_Diag, RC ) State_Diag%Archive_O1DconcAfterChem .or. & State_Diag%Archive_O3PconcAfterChem ) + + !======================================================================= + ! Assign default values for KPP absolute and relative tolerances + ! for species where these have not been explicitly defined. + !======================================================================= + WHERE( State_Chm%KPP_AbsTol == MISSING_DBLE ) + State_Chm%KPP_AbsTol = 1.0e-2_f8 + ENDWHERE + + WHERE( State_Chm%KPP_RelTol == MISSING_DBLE ) + State_Chm%KPP_RelTol = 0.5e-2_f8 + ENDWHERE + !======================================================================= ! Save physical parameters from the species database into KPP arrays ! in gckpp_Global.F90. These are for the hetchem routines. @@ -2655,21 +2848,22 @@ SUBROUTINE Init_FullChem( Input_Opt, State_Chm, State_Diag, RC ) HENRY_CR(KppId) = State_Chm%SpcData(N)%Info%Henry_CR ENDIF ENDDO - !======================================================================= ! Allocate arrays !======================================================================= ! Initialize - id_PCO = -1 + id_PSO4 = -1 + id_PCO = -1 id_LCH4 = -1 !-------------------------------------------------------------------- ! Pre-store the KPP indices for each KPP prod/loss species or family !-------------------------------------------------------------------- + IF ( nFam > 0 ) THEN - ! Allocate mapping array for KPP Ids for ND65 bpch diagnostic + ! Allocate mapping array for KPP Ids for prod/loss diagnostic ALLOCATE( PL_Kpp_Id( nFam ), STAT=RC ) CALL GC_CheckVar( 'fullchem_mod.F90:PL_Kpp_Id', 0, RC ) IF ( RC /= GC_SUCCESS ) RETURN @@ -2687,6 +2881,10 @@ SUBROUTINE Init_FullChem( Input_Opt, State_Chm, State_Diag, RC ) IF ( TRIM( Fam_Names(N) ) == 'PCO' ) id_PCO = KppId IF ( TRIM( Fam_Names(N) ) == 'LCH4' ) id_LCH4 = KppId + ! Find the KPP Id corresponding to PSO4 + ! so that we can save output for TOMAS simulations + IF ( TRIM( Fam_Names(N) ) == 'PSO4' ) id_PSO4 = KppId + ! Exit if an invalid ID is encountered IF ( KppId <= 0 ) THEN ErrMsg = 'Invalid KPP ID for prod/loss species: ' // & @@ -2701,6 +2899,20 @@ SUBROUTINE Init_FullChem( Input_Opt, State_Chm, State_Diag, RC ) ENDIF +#ifdef MODEL_CESM + !-------------------------------------------------------------------- + ! If we are finding H2SO4_RATE from a fullchem + ! simulation for the CESM, throw an error if we cannot find + ! the PSO4 prod family in this KPP mechanism. + !-------------------------------------------------------------------- + IF ( id_PSO4 < 1 ) THEN + ErrMsg = 'Could not find PSO4 in list of KPP families! This ' // & + 'is needed for State_Chm%H2SO4_PRDR and coupling to CESM!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF +#endif + !-------------------------------------------------------------------- ! If we are archiving the P(CO) from CH4 and from NMVOC from a fullchem ! simulation for the tagCO simulation, throw an error if we cannot find diff --git a/GeosCore/gamap_mod.F90 b/GeosCore/gamap_mod.F90 deleted file mode 100644 index ee772d40e..000000000 --- a/GeosCore/gamap_mod.F90 +++ /dev/null @@ -1,2178 +0,0 @@ -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !MODULE: gamap_mod.F90 -! -! !DESCRIPTION: Module GAMAP\_MOD contains routines to create GAMAP -! "tracerinfo.dat" and "diaginfo.dat" files which are customized to each -! particular GEOS-Chem simulation. -!\\ -!\\ -! !INTERFACE: -! -MODULE GAMAP_MOD -! -! !USES: -! - USE CMN_DIAG_MOD ! Diagnostic parameters - USE inquireMod, ONLY : findFreeLUN - USE PRECISION_MOD ! For GEOS-Chem Precision (fp) - - IMPLICIT NONE - PRIVATE -! -! !PUBLIC MEMBER FUNCTIONS: -! - PUBLIC :: DO_GAMAP -! -! !PRIVATE MEMBER FUNCTIONS: -! - PRIVATE :: CREATE_DINFO - PRIVATE :: CREATE_TINFO - PRIVATE :: WRITE_TINFO - PRIVATE :: WRITE_SEPARATOR - PRIVATE :: INIT_DIAGINFO - PRIVATE :: INIT_TRACERINFO - PRIVATE :: INIT_GAMAP - PRIVATE :: CLEANUP_GAMAP -! -! !REMARKS: -! For more information, please see the GAMAP Online Users' Manual: -! http://acmg.seas.harvard.edu/gamap/doc/index.html -! -! !REVISION HISTORY: -! 03 May 2005 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !PRIVATE TYPES: -! - ! For "diaginfo.dat" - INTEGER, PARAMETER :: MAXCAT = 160 - INTEGER, PARAMETER :: SPACING = 1000 - INTEGER :: NCATS - INTEGER, ALLOCATABLE :: OFFSET(:) - CHARACTER(LEN=40), ALLOCATABLE :: CATEGORY(:) - CHARACTER(LEN=40), ALLOCATABLE :: DESCRIPT(:) - CHARACTER(LEN=255) :: DFILE - - ! For "tracerinfo.dat" - INTEGER, PARAMETER :: MAXDIAG = MAX_DIAG - INTEGER, PARAMETER :: MAXTRACER = 2 * MAX_TRACER - INTEGER, ALLOCATABLE :: NTRAC(:) - INTEGER, ALLOCATABLE :: INDEX(:,:) - REAL*4, ALLOCATABLE :: MWT(:,:) - REAL*4, ALLOCATABLE :: SCALE(:,:) - CHARACTER(LEN=40), ALLOCATABLE :: NAME(:,:) - CHARACTER(LEN=40), ALLOCATABLE :: FNAME(:,:) - CHARACTER(LEN=40), ALLOCATABLE :: UNIT(:,:) - CHARACTER(LEN=255) :: TFILE - - ! Other variables - CHARACTER(LEN=16) :: STAMP - CHARACTER(LEN=40) :: SIM_NAME - - ! Species ID flags - INTEGER :: id_NK1 - -CONTAINS -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: do_gamap -! -! !DESCRIPTION: Subroutine DO\_GAMAP is the driver program for creating -! the customized GAMAP files "diaginfo.dat" and "tracerinfo.dat". -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE DO_GAMAP( Input_Opt, State_Chm, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE State_Chm_Mod, ONLY : ChmState - USE TIME_MOD, ONLY : SYSTEM_TIMESTAMP -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 03 May 2005 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - - ! Assume success - RC = GC_SUCCESS - - ! Exit if this is a dry-run - IF ( Input_Opt%DryRun ) RETURN - - ! Allocate and initialize variables - CALL INIT_GAMAP( Input_Opt, State_Chm, RC ) - - ! Create a timestamp with the system date & time - STAMP = SYSTEM_TIMESTAMP() - - ! Get simulation name - SIM_NAME = Input_Opt%SimulationName - - ! Write "diaginfo.dat" file - CALL CREATE_DINFO() - - ! Write "tracerinfo.dat" file - CALL CREATE_TINFO( Input_Opt, State_Chm, RC ) - - ! Deallocate variables - CALL CLEANUP_GAMAP - - END SUBROUTINE DO_GAMAP -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: create_dinfo -! -! !DESCRIPTION: Subroutine CREATE\_DINFO writes information about diagnostic -! categories to a customized "diaginfo.dat" file. (bmy, 5/3/05) -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE CREATE_DINFO() -! -! !USES: -! - USE FILE_MOD, ONLY : IOERROR -! -! !REVISION HISTORY: -! 03 May 2005 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: IOS, N - INTEGER :: IU_FILE - - !================================================================= - ! CREATE_DINFO begins here! - !================================================================= - - ! Find a free file LUN - IU_FILE = findFreeLUN() - - ! Open "diaginfo.dat" file for output - OPEN( IU_FILE, FILE=TRIM( DFILE ), STATUS='UNKNOWN', IOSTAT=IOS ) - IF ( IOS /= 0 ) CALL IOERROR( IOS, IU_FILE, 'create_dinfo:1' ) - - ! Write file header - WRITE( IU_FILE, '(a)' ) '#' // REPEAT( '=', 78 ) - WRITE( IU_FILE, 100 ) STAMP - WRITE( IU_FILE, 105 ) TRIM( SIM_NAME ) - WRITE( IU_FILE, 110 ) - WRITE( IU_FILE, 115 ) - WRITE( IU_FILE, '(a)' ) '# File Format:' - WRITE( IU_FILE, '(a)' ) '# ' // REPEAT( '-', 77 ) - WRITE( IU_FILE, 120 ) - WRITE( IU_FILE, 125 ) - WRITE( IU_FILE, 130 ) - WRITE( IU_FILE, 135 ) - WRITE( IU_FILE, 125 ) - WRITE( IU_FILE, '(a)' ) '#' - WRITE( IU_FILE, 140 ) SPACING - WRITE( IU_FILE, '(a)' ) '#' // REPEAT( '=', 78 ) - - ! Loop over categories - DO N = 1, NCATS - - ! Write one line to "diaginfo.dat" file - WRITE( IU_FILE, 145, IOSTAT=IOS ) & - OFFSET(N), ADJUSTL( CATEGORY(N) ), ADJUSTL( DESCRIPT(N) ) - - ! Error check - IF ( IOS /= 0 ) CALL IOERROR( IOS, IU_FILE, 'create_dinfo:1' ) - ENDDO - - ! FORMAT strings -100 FORMAT( '# diaginfo.dat: Created by GEOS-CHEM at ', a, /,'#' ) -105 FORMAT( '# ****** CUSTOMIZED FOR ', a, ' SIMULATION *****',/,'#' ) -110 FORMAT( '# This file contains category names and the offsets', & - ' which they are stored' ) -115 FORMAT( '# in file "tracerinfo.dat". This file is read into', & - ' GAMAP by routine', /, '# "ctm_diaginfo.pro".', /,'#' ) -120 FORMAT( '# OFFSET (I8 ) Constant to add to tracer numbers', & - ' in order to distinguish', /, '#', 18x, 'for the given',& - ' diagnostic category, as stored in file', /, '#', 18x, & - '"tracerinfo.dat". OFFSET may be up to 8 digits long.' ) -125 FORMAT( '# -- (1X ) 1-character spacer' ) -130 FORMAT( '# CATEGORY (A40) Category name for CTM diagnostics.', & - ' NOTE: The category name', /, '#', 18x, & - 'can be up to 40 chars long, but historically the', & - ' GEOS-CHEM', /,'#', 18x, 'and GISS models have used an',& - ' 8-character category name.' ) -135 FORMAT( '# COMMENT (A ) Descriptive comment string', /,'#' ) -140 FORMAT('##### SPACING BETWEEN DIAGNOSTIC CATEGORY OFFSETS = ',i8 ) -145 FORMAT( i8, 1x, a40, 1x, a ) - - ! Close file - CLOSE( IU_FILE ) - - END SUBROUTINE CREATE_DINFO -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: create_tinfo -! -! !DESCRIPTION: Subroutine CREATE\_TINFO writes information about tracers to -! a customized tracerinfo.dat" file. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE CREATE_TINFO( Input_Opt, State_Chm, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE FILE_MOD, ONLY : IOERROR - USE Input_Opt_Mod, ONLY : OptInput - USE State_Chm_Mod, ONLY : ChmState -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 21 Apr 2005 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: D, IOS, N, T - INTEGER :: IU_FILE - REAL*4 :: SCALE_NEW - CHARACTER(LEN=2) :: C - CHARACTER(LEN=40) :: UNIT_NEW, NAME_NEW, FNAME_NEW - - !================================================================= - ! CREATE_TINFO begins here! - !================================================================= - - ! Assume success - RC = GC_SUCCESS - - ! Find a free file LUN - IU_FILE = findFreeLUN() - - ! Open "tracerinfo.dat" file for output - OPEN( IU_FILE, FILE=TRIM( TFILE ), STATUS='UNKNOWN', IOSTAT=IOS ) - IF ( IOS /= 0 ) CALL IOERROR( IOS, IU_FILE, 'create_tinfo:1' ) - - ! Write file header - WRITE( IU_FILE, '(a)' ) '#' // REPEAT( '=', 78 ) - WRITE( IU_FILE, 100 ) STAMP - WRITE( IU_FILE, 105 ) TRIM( SIM_NAME ) - WRITE( IU_FILE, 110 ) - WRITE( IU_FILE, 115 ) - WRITE( IU_FILE, '(a)' ) '# File Format:' - WRITE( IU_FILE, '(a)' ) '# ' // REPEAT( '-', 77 ) - WRITE( IU_FILE, 120 ) - WRITE( IU_FILE, 125 ) - WRITE( IU_FILE, 130 ) - WRITE( IU_FILE, 135 ) - WRITE( IU_FILE, 145 ) - WRITE( IU_FILE, 150 ) - WRITE( IU_FILE, 125 ) - WRITE( IU_FILE, 155 ) - - ! FORMAT strings -100 FORMAT( '# tracerinfo.dat: Created by GEOS-CHEM at ', a, /,'#' ) -105 FORMAT( '# ****** CUSTOMIZED FOR ', a, ' SIMULATION *****',/,'#' ) -110 FORMAT( '# This file contains name weight and index', & - ' information about GEOS-CHEM' ) -115 FORMAT( '# tracers. It is read by routine ', & - '"ctm_tracerinfo.pro" of the GAMAP package.', /,'#' ) -120 FORMAT( '# NAME (A8 ) Tracer name (up to 8 chars)' ) -125 FORMAT( '# -- (1X ) 1-character spacer' ) -130 FORMAT( '# FULLNAME (A30 ) Full tracer name (up to 30 chars)' ) -135 FORMAT( '# MOLWT (E10.0) Molecular weight (kg/mole)' ) -145 FORMAT( '# TRACER (I9 ) Tracer number (up to 9 digits)' ) -150 FORMAT( '# SCALE (E10.3) Standard scale factor to convert', & - ' to unit given below' ) -155 FORMAT( '# UNIT (A40 ) Unit string', /,'#' ) - - !------------------------------------- - ! 0: Tracers [ppbv] - !------------------------------------- - - ! Write separator line - CALL WRITE_SEPARATOR( IU_FILE, 0 ) - - ! Loop over tracers - DO T = 1, NTRAC(45) - - ! GAMAP tracer number - N = ( SPACING * 0 ) + T - - ! Write tracers [ppbv] to "tracerinfo.dat" file - CALL WRITE_TINFO( IU_FILE, NAME(T,45), FNAME(T,45), MWT(T,45), & - SCALE(T,45), UNIT(T,45), N ) - ENDDO - - !------------------------------------- - ! SPACING*1: Tracers [molec/cm2/s] - !------------------------------------- - - ! Write separator line - CALL WRITE_SEPARATOR( IU_FILE, 100 ) - - ! Loop over tracers - DO T = 1, NTRAC(45) - - ! GAMAP tracer number - N = ( SPACING * 1 ) + T - - ! New scale - SCALE_NEW = 1.0e0 - - ! New unit - IF ( TRIM( UNIT(T,45) ) == 'ppbC' ) THEN - UNIT_NEW = 'atoms C/cm2/s' - ELSE - UNIT_NEW = 'molec/cm2/s' - ENDIF - - ! Write tracers [molec/cm2/s] to "tracerinfo.dat" - CALL WRITE_TINFO( IU_FILE, NAME(T,45), FNAME(T,45), MWT(T,45), & - SCALE_NEW, UNIT_NEW, N ) - ENDDO - - !------------------------------------- - ! SPACING*2: Tracers [molec/cm2] - !------------------------------------- - - ! Write separator line - CALL WRITE_SEPARATOR( IU_FILE, 200 ) - - ! Loop over tracers - DO T = 1, NTRAC(45) - - ! GAMAP tracer number - N = ( SPACING * 2 ) + T - - ! New scale - SCALE_NEW = 1.0e0 - - ! New unit - IF ( TRIM( UNIT(T,45) ) == 'ppbC' ) THEN - UNIT_NEW = 'atoms C/cm2' - ELSE - UNIT_NEW = 'molec/cm2' - ENDIF - - ! Write tracers [molec/cm2] to "tracerinfo.dat" - CALL WRITE_TINFO( IU_FILE, NAME(T,45), FNAME(T,45), MWT(T,45), & - SCALE_NEW, UNIT_NEW, N ) - ENDDO - - !------------------------------------- - ! SPACING*3: Tracers [kg/s] - !------------------------------------- - - ! Write separator line - CALL WRITE_SEPARATOR( IU_FILE, 300 ) - - ! Loop over tracers - DO T = 1, NTRAC(45) - - ! GAMAP tracer number - N = ( SPACING * 3 ) + T - - ! New scale - SCALE_NEW = 1.0e0 - - ! New unit - IF ( TRIM( UNIT(T,45) ) == 'ppbC' ) THEN - UNIT_NEW = 'kg C/s' - ELSE - UNIT_NEW = 'kg/s' - ENDIF - - ! Write tracers [kg/s] to "tracerinfo.dat" - CALL WRITE_TINFO( IU_FILE, NAME(T,45), FNAME(T,45), MWT(T,45), & - SCALE_NEW, UNIT_NEW, N ) - ENDDO - - !------------------------------------- - ! SPACING*4: Tracers [kg] - !------------------------------------- - - ! Write separator line - CALL WRITE_SEPARATOR( IU_FILE, 400 ) - - ! Loop over tracers - DO T = 1, NTRAC(45) - - ! GAMAP tracer number - N = ( SPACING * 4 ) + T - - ! New scale - SCALE_NEW = 1.0e0 - - ! New unit - IF ( TRIM( UNIT(T,45) ) == 'ppbC' ) THEN - UNIT_NEW = 'kg C' - ELSE - UNIT_NEW = 'kg' - ENDIF - - ! Write tracers [kg] to "tracerinfo.dat" - CALL WRITE_TINFO( IU_FILE, NAME(T,45), FNAME(T,45), MWT(T,45), & - SCALE_NEW, UNIT_NEW, N ) - ENDDO - - !------------------------------------- - ! All other diagnostics - !------------------------------------- - DO D = 1, MAXDIAG - - ! If tracers are defined then... - IF ( NTRAC(D) > 0 ) THEN - - ! Skip ND45, we already wrote tracers above - IF ( D == 45 ) CYCLE - - ! Write separator - CALL WRITE_SEPARATOR( IU_FILE, D ) - - ! Write tracers to file - DO T = 1, NTRAC(D) - CALL WRITE_TINFO( IU_FILE, NAME(T,D), FNAME(T,D), MWT(T,D), & - SCALE(T,D), UNIT(T,D), INDEX(T,D) ) - ENDDO - ENDIF - ENDDO - - END SUBROUTINE CREATE_TINFO -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: write_tinfo -! -! !DESCRIPTION: Subroutine WRITE\_TINFO writes one line to the customized -! "tracerinfo.dat" file. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE WRITE_TINFO( IU_FILE, NAME, FNAME, MWT, SCALE, UNIT, N ) -! -! !USES: -! - USE FILE_MOD, ONLY : IOERROR -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: IU_FILE ! Logical unit number - CHARACTER(LEN=*), INTENT(IN) :: NAME ! GAMAP short tracer name - CHARACTER(LEN=*), INTENT(IN) :: FNAME ! GAMAP long tracer name - REAL*4, INTENT(IN) :: MWT ! Molecular weight [kg/mole] - INTEGER, INTENT(IN) :: N ! Tracer number - REAL*4, INTENT(IN) :: SCALE ! GAMAP scale factor - CHARACTER(LEN=*), INTENT(IN) :: UNIT ! Unit string -! -! !REVISION HISTORY: -! 03 May 2005 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: IOS - - !================================================================= - ! WRITE_TINFO begins here! - !================================================================= - - ! Write one line to "tracerinfo.dat" file - WRITE( IU_FILE, 100, IOSTAT=IOS ) & - ADJUSTL( NAME ), ADJUSTL( FNAME ), MWT, 1, N, SCALE, TRIM( UNIT ) - - ! Error check - IF ( IOS /= 0 ) CALL IOERROR( IOS, IU_FILE, 'write_tinfo:1' ) - - ! FORMAT string -100 FORMAT( a8, 1x, a30, es10.3, i3, i9, es10.3, 1x, a ) - - END SUBROUTINE WRITE_TINFO -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: write_separator - -! -! !DESCRIPTION: Subroutine WRITE\_SEPARATOR writes a separator block to the -! customized "tracerinfo.dat" file. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE WRITE_SEPARATOR( IU_FILE, DIAG ) -! -! !USES: -! - USE FILE_MOD, ONLY : IOERROR -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: IU_FILE - INTEGER, INTENT(IN) :: DIAG ! GEOS-Chem diagnostic number -! -! !REVISION HISTORY: -! 03 May 2005 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: IOS - CHARACTER(LEN=79) :: SEPARATOR - - !================================================================= - ! WRITE_SEPARATOR begins here! - !================================================================= - - ! Create separator string - SEPARATOR = '#' // REPEAT( '=', 78 ) - - ! Write separator string - WRITE( IU_FILE, '(a)', IOSTAT=IOS ) SEPARATOR - IF ( IOS /= 0 ) CALL IOERROR( IOS, IU_FILE, 'write_separator:1' ) - - ! Write the appropriate message - SELECT CASE( DIAG ) - CASE( 0 ) - WRITE( IU_FILE, 100, IOSTAT=IOS ) - CASE( 100 ) - WRITE( IU_FILE, 110, IOSTAT=IOS ) - CASE( 200 ) - WRITE( IU_FILE, 120, IOSTAT=IOS ) - CASE( 300 ) - WRITE( IU_FILE, 130, IOSTAT=IOS ) - CASE( 400 ) - WRITE( IU_FILE, 140, IOSTAT=IOS ) - CASE( 500 ) - WRITE( IU_FILE, 150, IOSTAT=IOS ) - CASE( 600 ) - WRITE( IU_FILE, 160, IOSTAT=IOS ) - CASE( 700 ) !(win, 7/9/09) - WRITE( IU_FILE, 190, IOSTAT=IOS ) !sfarina - this can stay - CASE( 999 ) - WRITE( IU_FILE, 170, IOSTAT=IOS ) - CASE DEFAULT - WRITE( IU_FILE, 180, IOSTAT=IOS ) DIAG - END SELECT - - ! Error check - IF ( IOS /= 0 ) CALL IOERROR( IOS, IU_FILE, 'write_separator:2' ) - - ! Write separator string - WRITE( IU_FILE, '(a)', IOSTAT=IOS ) SEPARATOR - IF ( IOS /= 0 ) CALL IOERROR( IOS, IU_FILE, 'write_separator:3' ) - - ! FORMAT strings -100 FORMAT( '# GEOS-CHEM tracers [ppbv]' ) -110 FORMAT( '# GEOS-CHEM tracers [molec/cm2/s]' ) -120 FORMAT( '# GEOS-CHEM tracers [molec/cm2]' ) -130 FORMAT( '# GEOS-CHEM tracers [kg/s]' ) -140 FORMAT( '# GEOS-CHEM tracers [kg]' ) -150 FORMAT( '# GEOS-CHEM tracers [ug/m3]' ) -160 FORMAT( '# SOA GPROD & APROD [kg/kg]' ) -170 FORMAT( '# Quantities for Soil NOx restart file' ) -180 FORMAT( '# ND', i2.2, ' diagnostic quantities' ) -190 FORMAT( '# TOMAS aerosol rate [cm-3 s-1]' ) !(win, 7/9/09) - - END SUBROUTINE WRITE_SEPARATOR -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: init_diaginfo -! -! !DESCRIPTION: Subroutine INIT\_DIAGINFO initializes the CATEGORY, DESCRIPT, -! and OFFSET variables, which are used to define the "diaginfo.dat" file -! for GAMAP. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE INIT_DIAGINFO() -! -! !REVISION HISTORY: -! 17 Oct 1996 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: N - - !================================================================= - ! INIT_DIAGINFO begins here! - !================================================================= - - N = 1 - CATEGORY(N) = 'IJ-AVG-$' - DESCRIPT(N) = 'Tracer concentration' - OFFSET(N) = SPACING * 0 - - N = N + 1 - CATEGORY(N) = 'IJ-24H-$' - DESCRIPT(N) = '24-hr avg tracer conc.' - OFFSET(N) = SPACING * 0 - - N = N + 1 - CATEGORY(N) = 'INST-MAP' - DESCRIPT(N) = 'Instantaneous tracer' - OFFSET(N) = SPACING * 0 - - N = N + 1 - CATEGORY(N) = 'DUSTSRCE' - DESCRIPT(N) = 'Dust emission' - OFFSET(N) = SPACING * 4 - -#ifdef TOMAS - N = N + 1 !(win, 7/9/09) - CATEGORY(N) = 'NK-EMISS' - DESCRIPT(N) = 'Size-res aerosol number emissions' - OFFSET(N) = SPACING * 4 - - N = N + 1 !(win, 7/9/09) - CATEGORY(N) = 'SF-EMISS' - DESCRIPT(N) = 'Size-res sulfate mass emissions' - OFFSET(N) = SPACING * 4 - - N = N + 1 !(win, 7/9/09) - CATEGORY(N) = 'SS-EMISS' - DESCRIPT(N) = 'Size-res sea-salt mass emissions' - OFFSET(N) = SPACING * 4 - - N = N + 1 !(win, 7/9/09) - CATEGORY(N) = 'ECIL-SRC' - DESCRIPT(N) = 'Size-res H-phillic EC mass emissions' - OFFSET(N) = SPACING * 4 - - N = N + 1 !(win, 7/9/09) - CATEGORY(N) = 'ECOB-SRC' - DESCRIPT(N) = 'Size-res H-phobic EC mass emissions' - OFFSET(N) = SPACING * 4 - - N = N + 1 !(win, 7/9/09) - CATEGORY(N) = 'OCIL-SRC' - DESCRIPT(N) = 'Size-res H-phillic OC mass emissions' - OFFSET(N) = SPACING * 4 - - N = N + 1 !(win, 7/9/09) - CATEGORY(N) = 'OCOB-SRC' - DESCRIPT(N) = 'Size-res H-phobic OC mass emissions' - OFFSET(N) = SPACING * 4 - - N = N + 1 !(win, 7/9/09) - CATEGORY(N) = 'DUST-SRC' - DESCRIPT(N) = 'Size-res dust mass emissions' - OFFSET(N) = SPACING * 4 - - N = N + 1 - CATEGORY(N) = 'TMS-COND' - DESCRIPT(N) = 'Condensation rate' - OFFSET(N) = SPACING * 6 - - N = N + 1 - CATEGORY(N) = 'TMS-COAG' - DESCRIPT(N) = 'Condensation rate' - OFFSET(N) = SPACING * 6 - - N = N + 1 - CATEGORY(N) = 'TMS-NUCL' - DESCRIPT(N) = 'Condensation rate' - OFFSET(N) = SPACING * 6 - - N = N + 1 - CATEGORY(N) = 'TMS-AQOX' - DESCRIPT(N) = 'Condensation rate' - OFFSET(N) = SPACING * 6 - - N = N + 1 - CATEGORY(N) = 'AERO-FIX' - DESCRIPT(N) = 'Condensation rate' - OFFSET(N) = SPACING * 6 - - N = N + 1 - CATEGORY(N) = 'TMS-SOA' - DESCRIPT(N) = 'Condensation rate' - OFFSET(N) = SPACING * 6 - - N = N + 1 !(win, 7/9/09) - CATEGORY(N) = 'TOMAS-3D' - DESCRIPT(N) = '3-D aerosol rate of a selected microphysics' - OFFSET(N) = SPACING * 7 -#endif - - N = N + 1 - CATEGORY(N) = 'PEDGE-$' - DESCRIPT(N) = 'Pressure at level edges' - OFFSET(N) = SPACING * 10 - - N = N + 1 - CATEGORY(N) = 'DAO-FLDS' - DESCRIPT(N) = 'GMAO 2-D met fields' - OFFSET(N) = SPACING * 11 - - N = N + 1 - CATEGORY(N) = 'DAO-3D-$' - DESCRIPT(N) = 'GMAO 3-D met fields' - OFFSET(N) = SPACING * 12 - - N = N + 1 - CATEGORY(N) = 'OD-MAP-$' - DESCRIPT(N) = 'Optical Depths' - OFFSET(N) = SPACING * 14 - - N = N + 1 - CATEGORY(N) = 'CHEM-L=$' - DESCRIPT(N) = 'Chemical Prod/Loss' - OFFSET(N) = SPACING * 16 - - N = N + 1 - CATEGORY(N) = 'TIME-SER' - DESCRIPT(N) = 'Timeseries quantities' - OFFSET(N) = SPACING * 19 - - N = N + 1 - CATEGORY(N) = 'BXHGHT-$' - DESCRIPT(N) = 'Boxheight, airmass, etc' - OFFSET(N) = SPACING * 24 - - N = N + 1 - CATEGORY(N) = 'PBLDEPTH' - DESCRIPT(N) = 'Afternoon PBL height' - OFFSET(N) = SPACING * 27 - - N = N + 1 - CATEGORY(N) = 'HG-SRCE' - DESCRIPT(N) = 'Hg emissions' - OFFSET(N) = SPACING * 34 - - N = N + 1 - CATEGORY(N) = 'HG0-ANTH' - DESCRIPT(N) = 'Hg(0) Anthro Emissions' - OFFSET(N) = SPACING * 61 - - N = N + 1 - CATEGORY(N) = 'HG0-AQUA' - DESCRIPT(N) = 'Hg(0) Ocean Mass' - OFFSET(N) = SPACING * 62 - - N = N + 1 - CATEGORY(N) = 'HG0-RECY' - DESCRIPT(N) = 'Hg(0) Land Prompt Recycling' - OFFSET(N) = SPACING * 63 - - N = N + 1 - CATEGORY(N) = 'HGNET-OC' - DESCRIPT(N) = 'Hg(0) Net Ocean Emissions' - OFFSET(N) = SPACING * 64 - - N = N + 1 - CATEGORY(N) = 'HG0-GEOG' - DESCRIPT(N) = 'Hg(0) Geogenic Emissions' - OFFSET(N) = SPACING * 65 - - N = N + 1 - CATEGORY(N) = 'HG2-ANTH' - DESCRIPT(N) = 'Hg(II) Anthro Emissions' - OFFSET(N) = SPACING * 66 - - N = N + 1 - CATEGORY(N) = 'HG2-AQUA' - DESCRIPT(N) = 'Hg(II) Ocean Mass' - OFFSET(N) = SPACING * 67 - - N = N + 1 - CATEGORY(N) = 'HG2-SINK' - DESCRIPT(N) = 'Hg(II) Sinking' - OFFSET(N) = SPACING * 68 - - N = N + 1 - CATEGORY(N) = 'HGP-ANTH' - DESCRIPT(N) = 'Hg(P) Anthro Emissions' - OFFSET(N) = SPACING * 69 - - N = N + 1 - CATEGORY(N) = 'HGT-AQUA' - DESCRIPT(N) = 'Hg Total Ocean Mass' - OFFSET(N) = SPACING * 70 - - N = N + 1 - CATEGORY(N) = 'HGP-AQUA' - DESCRIPT(N) = 'Hg(P) Ocean Mass' - OFFSET(N) = SPACING * 71 - - N = N + 1 - CATEGORY(N) = 'HGP-CONV' - DESCRIPT(N) = 'Hg(II) Aqeous Conversion to Particle' - OFFSET(N) = SPACING * 72 - - N = N + 1 - CATEGORY(N) = 'HG0-BURN' - DESCRIPT(N) = 'Hg(0) Biomass Burning Emissions' - OFFSET(N) = SPACING * 73 - - N = N + 1 - CATEGORY(N) = 'HG0-VEGT' - DESCRIPT(N) = 'Hg(0) Veg Transp. Emissions' - OFFSET(N) = SPACING * 74 - - N = N + 1 - CATEGORY(N) = 'HG0-SOIL' - DESCRIPT(N) = 'Hg(0) Soil Emissions' - OFFSET(N) = SPACING * 75 - - N = N + 1 - CATEGORY(N) = 'HG0-FXUP' - DESCRIPT(N) = 'Hg(0) Gross Ocean Up Flux' - OFFSET(N) = SPACING * 76 - - N = N + 1 - CATEGORY(N) = 'HG0-FXDN' - DESCRIPT(N) = 'Hg(0) Gross Ocean Down Flux' - OFFSET(N) = SPACING * 77 - - N = N + 1 - CATEGORY(N) = 'HG0-SNOW' - DESCRIPT(N) = 'Hg(0) Snow Emissions' - OFFSET(N) = SPACING * 78 - - N = N + 1 - CATEGORY(N) = 'HG-NETOX' - DESCRIPT(N) = 'Hg(0) to Hg(II) Net Oxidation' - OFFSET(N) = SPACING * 79 - - N = N + 1 - CATEGORY(N) = 'HG2-OXOH' - DESCRIPT(N) = 'Hg(0) Oxidation to Hg(II) by OH' - OFFSET(N) = SPACING * 80 - - N = N + 1 - CATEGORY(N) = 'HG2-OXO3' - DESCRIPT(N) = 'Hg(0) Oxidation to Hg(II) by O3' - OFFSET(N) = SPACING * 81 - - N = N + 1 - CATEGORY(N) = 'HG2-SALT' - DESCRIPT(N) = 'Hg(II) Loss by Sea Salt' - OFFSET(N) = SPACING * 82 - - N = N + 1 - CATEGORY(N) = 'HG2-SSRX' - DESCRIPT(N) = 'Hg(0) Sea Salt Reaction Rate' - OFFSET(N) = SPACING * 83 - - N = N + 1 - CATEGORY(N) = 'HG2-OXBR' - DESCRIPT(N) = 'Hg(0) Oxidation to Hg(II) by Br' - OFFSET(N) = SPACING * 84 - - N = N + 1 - CATEGORY(N) = 'PL-HG2-$' - DESCRIPT(N) = 'Prod / loss of Hg2' - OFFSET(N) = SPACING * 35 - - N = N + 1 - CATEGORY(N) = 'DRYD-FLX' - DESCRIPT(N) = 'Drydep fluxes' - OFFSET(N) = SPACING * 36 - - N = N + 1 - CATEGORY(N) = 'DRYD-VEL' - DESCRIPT(N) = 'Drydep velocities' - OFFSET(N) = SPACING * 37 - - N = N + 1 - CATEGORY(N) = 'CO2-SRCE' - DESCRIPT(N) = 'CO2 fluxes' - OFFSET(N) = SPACING * 40 - - N = N + 1 - CATEGORY(N) = 'OCEAN-HG' - DESCRIPT(N) = 'Oceanic Hg emissions' - OFFSET(N) = SPACING * 41 - - N = N + 1 - CATEGORY(N) = 'LFLASH-$' - DESCRIPT(N) = 'Lightning flash rates' - OFFSET(N) = SPACING * 42 - - N = N + 1 - CATEGORY(N) = 'IJ-SOA-$' - DESCRIPT(N) = 'SOA concentrations' - OFFSET(N) = SPACING * 43 - - ! For mercury simulation only so we can use same spacing. (ccc, 5/21/10) - N = N + 1 - CATEGORY(N) = 'SNOW-HG' - DESCRIPT(N) = 'Reducible Hg mass in ocean snow and ice' - OFFSET(N) = SPACING * 49 - - ! Non-reducible snow Hg reservoir - N = N + 1 - CATEGORY(N) = 'SNOW-HGN' - DESCRIPT(N) = 'Non-reducible Hg mass in ocean snow and ice' - OFFSET(N) = SPACING * 50 - - N = N + 1 - CATEGORY(N) = 'SNHG-LN' - DESCRIPT(N) = 'Reducible Hg mass in land snow and ice' - OFFSET(N) = SPACING * 51 - - N = N + 1 - CATEGORY(N) = 'SNHGN-LN' - DESCRIPT(N) = 'Non-reducible Hg mass in snow and ice' - OFFSET(N) = SPACING * 52 - - !(FP 06/19/2009) - N = N + 1 - CATEGORY(N) = 'THETA-$' - DESCRIPT(N) = 'Potential temperature' - OFFSET(N) = SPACING * 57 - - N = N + 1 - CATEGORY(N) = 'SHIP-$$$' - DESCRIPT(N) = 'Ship diagnostics' - OFFSET(N) = SPACING * 59 - - N = N + 1 - CATEGORY(N) = 'RST-SOIL' - DESCRIPT(N) = 'Soil NOx restart file' - OFFSET(N) = SPACING * 60 - - ! Added for POPs (clf, 3/2/2011) - N = N + 1 - CATEGORY(N) = 'PG-SRCE' - DESCRIPT(N) = 'POPs Emissions' - OFFSET(N) = SPACING * 52 - - N = N + 1 - CATEGORY(N) = 'PG-PP-$' - DESCRIPT(N) = 'POP partitioning/oxidation' - OFFSET(N) = SPACING * 53 - - N = N + 1 - CATEGORY(N) = 'RADMAP-$' - DESCRIPT(N) = 'Radiative diagnostics' - OFFSET(N) = SPACING * 72 - - ! Number of categories - NCATS = N - - END SUBROUTINE INIT_DIAGINFO -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: init_tracerinfo -! -! !DESCRIPTION: Subroutine INIT\_TRACERINFO initializes the NAME, FNAME, -! MWT, INDEX, UNIT arrays which are used to define the -! "tracerinfo.dat" file. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE INIT_TRACERINFO( Input_Opt, State_Chm, RC ) -! -! !USES: -! - USE CMN_FJX_MOD, ONLY : W_ - USE CMN_SIZE_MOD, ONLY : NRHAER, NDUST, NSTRATAER - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE Species_Mod, ONLY : Species - USE State_Chm_Mod, ONLY : ChmState - USE State_Chm_Mod, ONLY : Ind_ -#ifdef TOMAS - USE TOMAS_MOD, ONLY : IBINS, ICOMP, IDIAG !(win, 7/14/09) -#endif -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 17 Oct 1996 - R. Yantosca & P. Le Sager - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: N, NN, NYMDb, NHMSb, T, T0, T1 - INTEGER :: nAdvect, nDryDep, nSpecies - LOGICAL :: DO_TIMESERIES - CHARACTER(LEN=40) :: NAME5, NAME6 - REAL(fp), SAVE :: POP_XMW - REAL(fp) :: DUM - INTEGER :: N_Hg_CATS - INTEGER :: SPC_INDEX - - ! Objects - TYPE(Species), POINTER :: SpcInfo - - !================================================================= - ! INIT_TRACERINFO begins here! - !================================================================= - - ! Initialize - RC = GC_SUCCESS - SpcInfo => NULL() - - ! Initialization - DUM = 1.0 - - ! Set a flag if any timeseries diagnostics are turned on - DO_TIMESERIES = ( Input_Opt%DO_ND51 .or. Input_Opt%DO_ND51b ) - - ! Number of total species - nSpecies = State_Chm%nSpecies - - ! Number of advected species - nAdvect = State_Chm%nAdvect - - ! Number of drydep species - nDryDep = State_Chm%nDryDep - - !---------------------------------- - ! General tracer information - !---------------------------------- - - ! NOTE: Write metadata for all GEOS-Chem species to tracerinfo.dat - ! so that GAMAP will be able to read the new netCDF restart file. - ! (bmy, 1/23/17) - DO T = 1, nSpecies - - ! Set pointer to this species information - ! NOTE: requires 1:1 tracer index to species index mapping - SpcInfo => State_Chm%SpcData(T)%Info - - ! Store quantities for each tracer - NAME (T,45) = SpcInfo%Name - FNAME(T,45) = TRIM( NAME(T,45) ) // ' tracer' - SCALE(T,45) = 1.0e+9 - INDEX(T,45) = T !changed from N (phs, 3/19/03) - MWT (T,45) = SpcInfo%MW_g * 1.e-3_fp - UNIT(T,45) = 'ppbv' - - ! Special handling for Rn-Pb-Be simulation (bmy, 5/11/05) - IF ( Input_Opt%ITS_A_RnPbBe_SIM ) THEN - SELECT CASE( T ) - CASE( 1 ) - UNIT (T,45) = 'mBq/SCM' - SCALE(T,45) = 5.6397E+22 - CASE( 2, 3 ) - UNIT (T,45) = 'mBq/SCM' - SCALE(T,45) = 2.6141E+19 - CASE( 4, 5, 6, 7 ) - UNIT (T,45) = 'mBq/SCM' - SCALE(T,45) = 4.0513E+21 - CASE DEFAULT - ! Nothing - END SELECT - ENDIF - - ! For mercury, print as pptv (bmy, 1/24/06) - IF ( Input_Opt%ITS_A_MERCURY_SIM ) THEN - UNIT(T,45) = 'pptv' - SCALE(T,45) = 1.0e+12 - ENDIF - - ENDDO - - ! Number of ND45 tracers, now all species (bmy, 1/23/17) - NTRAC(45) = nSpecies - - - IF ( DO_TIMESERIES ) THEN - - !------------------------------------- - ! Optical depths - !------------------------------------- - - ! Number of tracers - NTRAC(21) = 8 + (NRHAER+NDUST)*3 + (NRHAER*2) + (NSTRATAER*3) - - ! Loop over tracers - DO T = 1, NTRAC(21) - - ! Define quantities - UNIT (T,21) = 'unitless' - INDEX(T,21) = T + ( SPACING * 14 ) - MWT (T,21) = 0e0 - SCALE(T,21) = 1e0 - - ! Get name long-name (and sometimes, unit) - SELECT CASE( T ) - CASE( 1 ) - NAME (T,21) = 'OPTD' - FNAME(T,21) = 'Cloud optical depth' - CASE( 2 ) - ! GEOS-3, GEOS-4: CLDTOT - NAME (T,21) = 'CLDTOT' - FNAME(T,21) = '3-D cloud frc' - CASE( 3 ) - NAME (T,21) = 'OBSOLETE1' - FNAME(T,21) = 'This diagnostic is obsolete' - CASE( 4 ) - NAME (T,21) = 'OPD' - FNAME(T,21) = 'Mineral dust opt depth' - CASE( 5 ) - NAME (T,21) = 'SD' - FNAME(T,21) = 'Mineral dust surface area' - UNIT (T,21) = 'cm2/cm3' - CASE( 6 ) - NAME (T,21) = 'OPSO4'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Sulfate opt depth (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 7 ) - NAME (T,21) = 'HGSO4' - FNAME(T,21) = 'Hygr growth of SO4' - CASE( 8 ) - NAME (T,21) = 'SSO4' - FNAME(T,21) = 'Sulfate surface area' - UNIT (T,21) = 'cm2/cm3' - CASE( 9 ) - NAME (T,21) = 'OPBC'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Black carbon opt depth (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 10 ) - NAME (T,21) = 'HGBC' - FNAME(T,21) = 'Hygr growth of BC' - CASE( 11 ) - NAME (T,21) = 'SBC' - FNAME(T,21) = 'BC surface area' - UNIT (T,21) = 'cm2/cm3' - CASE( 12 ) - NAME (T,21) = 'OPOC'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Org carbon opt depth (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 13 ) - NAME (T,21) = 'HGOC' - FNAME(T,21) = 'Hygr growth of OC' - CASE( 14 ) - NAME (T,21) = 'SOC' - FNAME(T,21) = 'OC surface area' - UNIT (T,21) = 'cm2/cm3' - CASE( 15 ) - NAME (T,21) = 'OPSSa'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Seasalt (accum) opt depth (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 16 ) - NAME (T,21) = 'HGSSa' - FNAME(T,21) = 'Hygr growth of seasalt (accum)' - CASE( 17 ) - NAME (T,21) = 'SSSa' - FNAME(T,21) = 'Seasalt (accum) surface area' - UNIT (T,21) = 'cm2/cm3' - CASE( 18 ) - NAME (T,21) = 'OPSSc'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Seasalt (coarse) opt depth (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 19 ) - NAME (T,21) = 'HGSSc' - FNAME(T,21) = 'Hygr growth of seasalt (coarse)' - CASE( 20 ) - NAME (T,21) = 'SSSc' - FNAME(T,21) = 'Seasalt (coarse) surface area' - UNIT (T,21) = 'cm2/cm3' - CASE( 21 ) - NAME (T,21) = 'OPD1'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Dust bin 1 AOD (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 22 ) - NAME (T,21) = 'OPD2'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Dust bin 2 AOD (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 23 ) - NAME (T,21) = 'OPD3'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Dust bin 3 AOD (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 24 ) - NAME (T,21) = 'OPD4'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Dust bin 4 AOD (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 25 ) - NAME (T,21) = 'OPD5'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Dust bin 5 AOD (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 26 ) - NAME (T,21) = 'OPD6'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Dust bin 6 AOD (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 27 ) - NAME (T,21) = 'OPD7'//Input_Opt%STRWVSELECT(1) - FNAME(T,21) = 'Dust bin 7 AOD (' & - // Input_Opt%STRWVSELECT(1) //'nm)' - CASE( 28 ) - NAME (T,21) = 'OPSO4'//Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'Seasalt (accum) opt depth (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 29 ) - NAME (T,21) = 'OPBC' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'BC opt depth (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 30 ) - NAME (T,21) = 'OPOC' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'OC opt depth (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 31 ) - NAME (T,21) = 'OPSSa' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'Seasalt (accum) opt depth (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 32 ) - NAME (T,21) = 'OPSSc' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'seasalt (coarse) opt depth (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 33 ) - NAME (T,21) = 'OPD1' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'Dust bin 1 AOD (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 34 ) - NAME (T,21) = 'OPD2' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'Dust bin 2 AOD (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 35 ) - NAME (T,21) = 'OPD3' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'Dust bin 3 AOD (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 36 ) - NAME (T,21) = 'OPD4' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'Dust bin 4 AOD (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 37 ) - NAME (T,21) = 'OPD5' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'Dust bin 5 AOD (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 38 ) - NAME (T,21) = 'OPD6' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'Dust bin 6 AOD (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 39 ) - NAME (T,21) = 'OPD7' // Input_Opt%STRWVSELECT(2) - FNAME(T,21) = 'Dust bin 7 AOD (' & - // Input_Opt%STRWVSELECT(2) // 'nm)' - CASE( 40 ) - NAME (T,21) = 'OPSO4' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'Seasalt (accum) opt depth (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 41 ) - NAME (T,21) = 'OPBC' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'BC opt depth (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 42 ) - NAME (T,21) = 'OPOC' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'OC opt depth (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 43 ) - NAME (T,21) = 'OPSSa' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'Seasalt (accum) opt depth (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 44 ) - NAME (T,21) = 'OPSSc' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'seasalt (coarse) opt depth (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 45 ) - NAME (T,21) = 'OPD1' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'Dust bin 1 AOD (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 46 ) - NAME (T,21) = 'OPD2' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'Dust bin 2 AOD (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 47 ) - NAME (T,21) = 'OPD3' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'Dust bin 3 AOD (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 48 ) - NAME (T,21) = 'OPD4' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'Dust bin 4 AOD (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 49 ) - NAME (T,21) = 'OPD5' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'Dust bin 5 AOD (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 50 ) - NAME (T,21) = 'OPD6' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'Dust bin 6 AOD (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - CASE( 51 ) - NAME (T,21) = 'OPD7' // Input_Opt%STRWVSELECT(3) - FNAME(T,21) = 'Dust bin 7 AOD (' & - // Input_Opt%STRWVSELECT(3) // 'nm)' - - ! For the UCX simualtion - CASE( 52 ) - NAME (T,21) = 'ODSLA' - FNAME(T,21) = 'SLA AOD (600 nm)' - CASE( 53 ) - NAME (T,21) = 'SASLA' - FNAME(T,21) = 'SLA surface area' - UNIT (T,21) = 'cm2/cm3' - CASE( 54 ) - NAME (T,21) = 'NDSLA' - FNAME(T,21) = 'SLA number density' - UNIT (T,21) = 'num/cm3' - CASE( 55 ) - NAME (T,21) = 'ODSPA' - FNAME(T,21) = 'PSC type 1a/2 AOD (600 nm)' - CASE( 56 ) - NAME (T,21) = 'SASPA' - FNAME(T,21) = 'PSC type 1a/2 surface area' - UNIT (T,21) = 'cm2/cm3' - CASE( 57 ) - NAME (T,21) = 'NDSPA' - FNAME(T,21) = 'SPA number density' - UNIT (T,21) = 'num/cm3' - CASE( 58 ) - NAME (T,21) = 'ISOPAOD' - FNAME(T,21) = 'Isoprene AOD (550 nm)' - CASE( 59 ) - NAME (T,21) = 'AQAVOL' - FNAME(T,21) = 'Aq. aerosol vol (cm3/cm3)' - CASE( 60 ) - NAME (T,21) = 'OBSOLETE2' - FNAME(T,21) = 'This diagnostic is obsolete' - CASE DEFAULT - ! Nothing - END SELECT - - ENDDO - - !------------------------------------- - ! Surface pressure (ND31) - !------------------------------------- - T = 1 - NTRAC(31) = T - NAME (T,31) = 'PSURF' - FNAME(T,31) = 'Surface pressure' - UNIT (T,31) = 'hPa' - INDEX(T,31) = T + ( SPACING * 10 ) - MWT (T,31) = 0e0 - SCALE(T,31) = 1e0 - - !------------------------------------- - ! Afternoon-average boundary - ! layer heights (ND41) + timeseries - !------------------------------------- - - ! Number of tracers - NTRAC(41) = 2 - - ! Loop over tracers - DO T = 1, NTRAC(41) - - ! Get name and unit for each met field - SELECT CASE( T ) - CASE( 1 ) - NAME(T,41) = 'PBL-M' - UNIT(T,41) = 'm' - CASE( 2 ) - NAME(T,41) = 'PBL-L' - UNIT(T,41) = 'levels' - CASE DEFAULT - ! Nothing - END SELECT - - ! Define the rest of the quantities - FNAME(T,41) = 'PBL depth' - INDEX(T,41) = T + ( SPACING * 27 ) - MWT (T,41) = 0e0 - SCALE(T,41) = 1e0 - - ENDDO - - !------------------------------------- - ! Chemically-produced OH, etc (ND43) - !------------------------------------- - - ! Number of tracers - NTRAC(43) = 4 - - ! Loop over tracers - DO T = 1, NTRAC(43) - - ! Get name and unit for each met field - SELECT CASE( T ) - CASE( 1 ) - NAME (T,43) = 'OH' - UNIT (T,43) = 'molec/cm3' - MWT (T,43) = 17e-3 - INDEX(T,43) = 1 + ( SPACING * 16 ) - CASE( 2 ) - NAME(T,43) = 'HO2' - UNIT(T,43) = 'v/v' - MWT (T,43) = 33e-3 - INDEX(T,43) = 3 + ( SPACING * 16 ) - CASE( 3 ) - NAME(T,43) = 'O1D' - UNIT(T,43) = 'molec/cm3' - MWT (T,43) = 16e-3 - INDEX(T,43) = 4 + ( SPACING * 16 ) - CASE( 4 ) - NAME(T,43) = 'O' - UNIT(T,43) = 'molec/cm3' - MWT (T,43) = 16e-3 - INDEX(T,43) = 5 + ( SPACING * 16 ) - CASE DEFAULT - ! Nothing - END SELECT - - ! Define the rest of the quantities - FNAME(T,43) = 'Chemically produced ' // TRIM( NAME(T,43) ) - SCALE(T,43) = 1e0 - ENDDO - - ENDIF ! DO_TIMESERIES - -#ifdef TOMAS - !------------------------------------- - ! Dry deposition fluxes (ND44) - ! Dry deposition velocities (ND44) - !------------------------------------- - IF ( ND44 > 0 ) THEN - - ! Loop over # of dry depositing species - DO N = 1, nDryDep + (ICOMP-IDIAG)* IBINS - - IF ( N <= nDryDep ) THEN - - !----------------------------------------------- - ! Drydep flux - !----------------------------------------------- - T = State_Chm%Map_DryDep(N) - SpcInfo => State_Chm%SpcData(T)%Info - NAME (N,44) = TRIM( SpcInfo%Name ) // 'df' - FNAME(N,44) = TRIM( SpcInfo%Name ) // ' drydep flux' - MWT (N,44) = SpcInfo%MW_g * 1.e-3_fp - SCALE(N,44) = 1.0e0 - INDEX(N,44) = T + ( SPACING * 36 ) - NTRAC(44) = NTRAC(44) + 1 - - ! For the Rn simulation, unit is kg/s (bmy, 2/22/08) - IF ( Input_Opt%ITS_A_RnPbBe_SIM ) THEN - UNIT(N,44) = 'kg/s' - ELSE - UNIT(N,44) = 'molec/cm2/s' - ENDIF - - !----------------------------------------------- - ! Drydep velocity - !----------------------------------------------- - NN = N + nDryDep +(ICOMP-IDIAG)*IBINS - NAME (NN,44) = TRIM( SpcInfo%Name ) // 'dv' - FNAME(NN,44) = TRIM( SpcInfo%Name ) // ' drydep velocity' - MWT (NN,44) = SpcInfo%MW_g * 1.e-3_fp - UNIT (NN,44) = 'cm/s' - SCALE(NN,44) = 1.0e0 - INDEX(NN,44) = T + ( SPACING * 37 ) - NTRAC(44) = NTRAC(44) + 1 - - ELSE - - !----------------------------------------------- - ! Drydep flux: TOMAS aerosol tracers - !----------------------------------------------- - T = id_NK1 + IBINS - 1 + ( N - nDryDep ) - SpcInfo => State_Chm%SpcData(T)%Info - - ! Drydep flux (extended deposited species) - NAME (N,44) = TRIM( SpcInfo%Name ) // 'df' - FNAME(N,44) = TRIM( SpcInfo%Name ) // ' drydep flux' - UNIT (N,44) = 'molec/cm2/s' - MWT (N,44) = SpcInfo%MW_g * 1.e-3_fp - SCALE(N,44) = 1.0e0 - INDEX(N,44) = T + ( SPACING * 36 ) - NTRAC(44) = NTRAC(44) + 1 - - !----------------------------------------------- - ! Drydep velocity all other G-C tracers - !----------------------------------------------- - NN = N + nDryDep + (ICOMP-IDIAG)* IBINS - NAME (NN,44) = TRIM( SpcInfo%Name ) // 'dv' - FNAME(NN,44) = TRIM( SpcInfo%Name ) // ' drydep velocity' - MWT (NN,44) = SpcInfo%MW_g * 1.e-3_fp - UNIT (NN,44) = 'cm/s' - SCALE(NN,44) = 1.0e0 - INDEX(NN,44) = T + ( SPACING * 37 ) - NTRAC(44) = NTRAC(44) + 1 - - ENDIF - - ENDDO - - ENDIF -#endif - - !------------------------------------- - ! Timeseries diagnostics - !------------------------------------- - IF ( DO_TIMESERIES ) THEN - - ! Number of tracers - ! Increased from 26 to 32 (mpb,2009) - NTRAC(48) = 17 - - ! Loop over tracers - DO T = 1, NTRAC(48) - - ! Define quantities - INDEX(T,48) = T + ( SPACING * 19 ) - MWT (T,48) = 0e0 - SCALE(T,48) = 1e0 - - ! Get name, long-name (and others where necessary) - SELECT CASE( T ) - CASE( 1 ) - NAME (T,48) = 'OH' - FNAME(T,48) = 'OH time series' - UNIT (T,48) = 'molec/cm3' - CASE( 2 ) - NAME (T,48) = 'NOy' - FNAME(T,48) = 'NOy time series' - UNIT (T,48) = 'ppbv' - SCALE(T,48) = 1.0e+9 - CASE( 3 ) - NAME (T,48) = 'RH' - FNAME(T,48) = 'Relative humidity' - UNIT (T,48) = '%' - CASE( 4 ) - NAME (T,48) = 'CF' - FNAME(T,48) = 'Cloud fraction' - UNIT (T,48) = 'unitless' - CASE( 5 ) - NAME (T,48) = 'ODCOL' - FNAME(T,48) = 'Cloud optical depth' - UNIT (T,48) = 'unitless' - CASE( 6 ) - NAME (T,48) = 'CThgt' - FNAME(T,48) = 'Cloud top height' - UNIT (T,48) = 'hPa' - CASE( 7 ) - NAME (T,48) = 'AIRDEN' - FNAME(T,48) = 'Air density' - UNIT (T,48) = 'molec/cm3' - CASE( 8 ) - NAME (T,48) = 'TOTSALT' - FNAME(T,48) = 'Total seasalt tracer' - UNIT (T,48) = 'ppbv' - MWT (T,48) = 36e-3 - SCALE(T,48) = 1.0e+9 - CASE( 9 ) - NAME (T,48) = 'D_LAI' - FNAME(T,48) = 'Daily LAI' - UNIT (T,48) = 'm2/m2' - CASE( 10 ) - NAME (T,48) = 'NO_SOIL' - FNAME(T,48) = 'Soil NO' - UNIT (T,48) = 'molec/cm2/s' - CASE( 11 ) - NAME (T,48) = 'NO_FERT' - FNAME(T,48) = 'Fertilizer NO' - UNIT (T,48) = 'molec/cm2/s' - CASE( 12 ) - NAME (T,48) = 'P_DRY' - FNAME(T,48) = 'Dry period' - UNIT (T,48) = 'hours' - CASE( 13 ) - NAME (T,48) = 'PFACTOR' - FNAME(T,48) = 'Pulsing factor' - UNIT (T,48) = 'unitless' - CASE( 14 ) - NAME (T,48) = 'GWET_PRV' - FNAME(T,48) = 'Soil moisture' - UNIT (T,48) = 'unitless' - CASE( 15 ) - NAME (T,48) = 'SZA' - FNAME(T,48) = 'Cosine Solar Zenith Angle' - UNIT (T,48) = 'unitless' - CASE( 16 ) - NAME (T,48) = 'GLYX' - FNAME(T,48) = 'Glyoxal time series' - UNIT (T,48) = 'molec/cm3' - CASE( 17 ) - NAME (T,48) = 'AERMASS' - FNAME(T,48) = 'Aerosol mass time series' - UNIT (T,48) = 'ug/m3' - CASE DEFAULT - ! Nothing - END SELECT - - ENDDO - ENDIF - -#ifdef TOMAS - !------------------------------------- - ! TOMAS 3-D rate (ND60) - !------------------------------------- - IF ( ND60 > 0 ) THEN - - ! # of tracers - NTRAC(60) = TMAX(60) - - ! Loop over tracers - DO T = 1, NTRAC(60) - - ! Set pointer to this species information - ! NOTE: requires 1:1 tracer index to species index mapping - SpcInfo => State_Chm%SpcData(T)%Info - - IF ( ( T .ge. id_NK1 ) .and. & - ( T .lt. id_NK1+IBINS ) ) THEN - UNIT(T,60) = 'no.' - ELSE - UNIT(T,60) = 'kg' - ENDIF - - ! Define the rest of the quantities - NAME (T,60) = SpcInfo%Name - FNAME(T,60) = 'Rates from ND60 TOMAS diagnostic' - INDEX(T,60) = T + ( SPACING * 6 ) - MWT (T,60) = 1e0 - SCALE(T,60) = 1e0 - ENDDO - - ENDIF - - !------------------------------------- - ! TOMAS 3-D rate (ND61) !(win, 7/9/09) - !------------------------------------- - IF ( ND61 > 0 ) THEN - NTRAC(61) = 2 - - ! Loop over tracers - DO T = 1, NTRAC(61) - - ! Get name and long name for each tracer - SELECT CASE( T ) - CASE( 1 ) - NAME (T,61) = 'NUC10NM' - FNAME(T,61) = 'Particle Dp>10nm formation rate' - CASE( 2 ) - NAME (T,61) = 'NUC_1NM' - FNAME(T,61) = 'Nucleation rate (cluster size)' - CASE DEFAULT - !Nothing - END SELECT - - ! Define the rest of the quantities - UNIT (T,61) = 'cm-3s-1' - INDEX(T,61) = T + ( SPACING * 7 ) - MWT (T,61) = 1e0 - SCALE(T,61) = 1e0 - ENDDO - ENDIF - - !------------------------------------- - ! Family prod & loss (ND65) - !------------------------------------- - IF ( Input_Opt%DO_SAVE_PL ) THEN - - ! Number of P/L families - NTRAC(65) = Input_Opt%NFAM - - ! Loop over each P/L family - DO T = 1, NTRAC(65) - NAME (T,65) = Input_Opt%FAM_NAME( T ) - FNAME(T,65) = TRIM( NAME(T,65) ) // ' P/L family' - INDEX(T,65) = T + ( SPACING * 17 ) - MWT (T,65) = 0e0 - SCALE(T,65) = 1e0 - - ! Unit for Tag O3 is kg/s, otherwise molec/cm3/s - IF ( Input_Opt%ITS_A_TAGO3_SIM ) THEN - UNIT(T,65) = 'kg/s' - ELSE - UNIT(T,65) = 'molec/cm3/s' - ENDIF - - ! For sulfur tracking species, use 'kg S' unit and - ! give a descriptive FNAME. (win, 8/9/09) - IF ( NAME(T,65) == 'PSO21' ) THEN - FNAME(T,65) = 'P(SO2) from DMS+OH (Online)' - UNIT(T,65) = 'kg S' - MWT(T,65) = 64e-3 - ELSE IF ( NAME(T,65) == 'PSO22' ) THEN - FNAME(T,65) = 'P(SO2) from DMS+NO3 (Online)' - UNIT(T,65) = 'kg S' - MWT(T,65) = 64e-3 - ELSE IF ( NAME(T,65) == 'PSO4' ) THEN - FNAME(T,65) = 'P(H2SO4) from SO2+OH (Online)' - UNIT(T,65) = 'kg S' - ELSE IF ( NAME(T,65) == 'PMSA' ) THEN - FNAME(T,65) = 'P(MSA) from DMS (Online)' - UNIT(T,65) = 'kg S' - ENDIF - - ENDDO - - ENDIF -#endif - - IF ( DO_TIMESERIES ) THEN - - !------------------------------------- - ! 3-D GMAO met fields (ND66) - ! also for timeseries diagnostics - !------------------------------------- - - ! Number of tracers - NTRAC(66) = 7 - - ! Loop over tracers - DO T = 1, NTRAC(66) - - ! Get name and unit for each met field - SELECT CASE( T ) - CASE( 1 ) - NAME(T,66) = 'UWND' - UNIT(T,66) = 'm/s' - CASE( 2 ) - NAME(T,66) = 'VWND' - UNIT(T,66) = 'm/s' - CASE( 3 ) - NAME(T,66) = 'TMPU' - UNIT(T,66) = 'K' - CASE( 4 ) - NAME(T,66) = 'SPHU' - UNIT(T,66) = 'g/kg' - CASE( 5 ) - NAME(T,66) = 'CMFMC' - UNIT(T,66) = 'kg/m2/s' - CASE( 6 ) - NAME(T,66) = 'DTRAIN' - UNIT(T,66) = 'kg/m2/s' - CASE( 7 ) - NAME(T,66) = 'OMEGA' - UNIT(T,66) = 'Pa/s' - CASE DEFAULT - ! Nothing - END SELECT - - ! Define the rest of the quantities - FNAME(T,66) = 'GMAO ' // TRIM( NAME(T,66) ) // ' field' - INDEX(T,66) = T + ( SPACING * 12 ) - MWT (T,66) = 0e0 - SCALE(T,66) = 1e0 - ENDDO - - !------------------------------------- - ! 2-D GMAO met fields (ND67) - !------------------------------------- - - ! Number of tracers - NTRAC(67) = 23 ! (Lin, 03/31/09) - - ! Loop over tracers - DO T = 1, NTRAC(67) - - ! Get name and unit for each met field - SELECT CASE( T ) - CASE( 1 ) - NAME(T,67) = 'HFLUX' - UNIT(T,67) = 'W/m2' - CASE( 2 ) - NAME(T,67) = 'RADSWG' - UNIT(T,67) = 'W/m2' - CASE( 3 ) - NAME(T,67) = 'PREACC' - UNIT(T,67) = 'mm/day' - CASE( 4 ) - NAME(T,67) = 'PRECON' - UNIT(T,67) = 'mm/day' - CASE( 5 ) - NAME(T,67) = 'TS' - UNIT(T,67) = 'K' - CASE( 6 ) - NAME(T,67) = 'RADSWT' - UNIT(T,67) = 'W/m2' - CASE( 7 ) - NAME(T,67) = 'USTAR' - UNIT(T,67) = 'm/s' - CASE( 8 ) - NAME(T,67) = 'Z0' - UNIT(T,67) = 'm' - CASE( 9 ) - NAME(T,67) = 'PBL' - UNIT(T,67) = 'm' - CASE( 10 ) - NAME(T,67) = 'CLDFRC' - UNIT(T,67) = 'unitless' - CASE( 11 ) - NAME(T,67) = 'U10M' - UNIT(T,67) = 'm/s' - CASE( 12 ) - NAME(T,67) = 'V10M' - UNIT(T,67) = 'm/s' - CASE( 13 ) - NAME(T,67) = 'PS_PBL' - UNIT(T,67) = 'hPa' - CASE( 14 ) - NAME(T,67) = 'ALBD' - UNIT(T,67) = 'unitless' - CASE( 15 ) - NAME(T,67) = 'PHIS' - UNIT(T,67) = 'm' - CASE( 16 ) - NAME(T,67) = 'CLDTOP' - UNIT(T,67) = 'level' - CASE( 17 ) - NAME(T,67) = 'TROPPRAW' - UNIT(T,67) = 'hPa' - CASE( 18 ) - NAME(T,67) = 'SLP' - UNIT(T,67) = 'hPa' - CASE( 19 ) - NAME(T,67) = 'TSKIN' - UNIT(T,67) = 'K' - CASE( 20 ) - NAME(T,67) = 'PARDF' - UNIT(T,67) = 'W/m2' - CASE( 21 ) - NAME(T,67) = 'PARDR' - UNIT(T,67) = 'W/m2' - CASE( 22 ) - NAME(T,67) = 'GWET' - UNIT(T,67) = 'unitless' - CASE( 23 ) - ! Add EFLUX (Lin, 05/16/08) - NAME(T,67) = 'EFLUX' - UNIT(T,67) = 'W/m2' - CASE DEFAULT - ! Nothing - END SELECT - - ! Define the rest of the quantities - FNAME(T,67) = 'GMAO ' // TRIM( NAME(T,67) ) // ' field' - INDEX(T,67) = T + ( SPACING * 11 ) - MWT (T,67) = 0e0 - SCALE(T,67) = 1e0 - ENDDO - - !------------------------------------- - ! Grid box heights and related - ! quantities (ND68) + timeseries - !------------------------------------- - - ! Number of tracers - NTRAC(68) = 8 - - ! Loop over tracers - DO T = 1, NTRAC(68) - - ! Get name and unit for each met field - SELECT CASE( T ) - CASE( 1 ) - NAME (T,68) = 'BXHEIGHT' - FNAME(T,68) = 'Grid box height' - UNIT (T,68) = 'm' - CASE( 2 ) - NAME (T,68) = 'AD' - FNAME(T,68) = 'Air mass in grid box' - UNIT (T,68) = 'kg' - CASE( 3 ) - NAME (T,68) = 'AVGW' - FNAME(T,68) = 'Mixing ratio of H2O vapor' - UNIT (T,68) = 'v/v' - CASE( 4 ) - NAME (T,68) = 'AIRNUMDEN' - FNAME(T,68) = 'Dry air number density' - UNIT (T,68) = 'molec air/cm3' - CASE( 5 ) - NAME (T,68) = 'T' - FNAME(T,68) = 'Temperature' - UNIT (T,68) = 'K' - CASE( 6 ) - NAME (T,68) = 'PMID' - FNAME(T,68) = 'Pressure at average pressure level' - UNIT (T,68) = 'hPa' - CASE( 7 ) - NAME (T,68) = 'PEDGE' - FNAME(T,68) = 'Pressure at grid box lower edge' - UNIT (T,68) = 'hPa' - CASE( 8 ) - NAME (T,68) = 'RH' - FNAME(T,68) = 'Relative humidity' - UNIT (T,68) = '%' - CASE DEFAULT - ! Nothing - END SELECT - - ! Define the rest of the quantities - INDEX(T,68) = T + ( SPACING * 24 ) - MWT (T,68) = 0e0 - SCALE(T,68) = 1e0 - ENDDO - - ENDIF ! DO_TIMERSERIES - - ! Nullify pointer - SpcInfo => NULL() - - END SUBROUTINE INIT_TRACERINFO -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: init_gamap -! -! !DESCRIPTION: Subroutine INIT\_GAMAP allocates and initializes all -! module variables. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE INIT_GAMAP( Input_Opt, State_Chm, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE ERROR_MOD, ONLY : ALLOC_ERR - USE Input_Opt_Mod, ONLY : OptInput - USE State_Chm_Mod, ONLY : ChmState - USE State_Chm_Mod, ONLY : Ind_ - USE TIME_MOD, ONLY : EXPAND_DATE, GET_NHMSb, GET_NYMDb -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 22 Apr 2005 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: AS, NYMDb, NHMSb - INTEGER :: MAXTRACER_HG, N - - !================================================================= - ! INIT_GAMAP begins here! - !================================================================= - - ! Assume success - RC = GC_SUCCESS - - ! Save from arguments to module variables - DFILE = Input_Opt%GAMAP_DIAGINFO - TFILE = Input_Opt%GAMAP_TRACERINFO - - ! Get starting date & time - NYMDb = GET_NYMDb() - NHMSb = GET_NHMSb() - - ! Replace any date/time tokens in the file names - CALL EXPAND_DATE( DFILE, NYMDb, NHMSb ) - CALL EXPAND_DATE( TFILE, NYMDb, NHMSb ) - - !================================================================= - ! Define species ID flags - !================================================================= - id_NK1 = Ind_('NK1' ) - - !================================================================= - ! Allocate module arrays - !================================================================= - - ALLOCATE( OFFSET( MAXCAT ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'OFFSET' ) - OFFSET = 0 - - ALLOCATE( CATEGORY( MAXCAT ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'CATEGORY' ) - CATEGORY = '' - - ALLOCATE( DESCRIPT( MAXCAT ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'DESCRIPT' ) - DESCRIPT = '' - - ALLOCATE( NTRAC( MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'NTRAC' ) - NTRAC = 0 - - IF ( Input_Opt%ITS_A_MERCURY_SIM .and. Input_Opt%LSPLIT) THEN - - MAXTRACER_HG = 480 - - ALLOCATE( INDEX( MAXTRACER_HG, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'INDEX' ) - INDEX = 0 - - ALLOCATE( MWT( MAXTRACER_HG, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'MWT' ) - MWT = 0.0 - - ALLOCATE( SCALE( MAXTRACER_HG, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'SCALE' ) - SCALE = 0.0 - - ALLOCATE( NAME( MAXTRACER_HG, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'NAME' ) - NAME = '' - - ALLOCATE( FNAME( MAXTRACER_HG, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'FNAME' ) - FNAME = '' - - ALLOCATE( UNIT( MAXTRACER_HG, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'UNIT' ) - UNIT = '' - - ELSE - - ALLOCATE( INDEX( MAXTRACER, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'INDEX' ) - INDEX = 0 - - ALLOCATE( MWT( MAXTRACER, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'MWT' ) - MWT = 0.0 - - ALLOCATE( SCALE( MAXTRACER, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'SCALE' ) - SCALE = 0.0 - - ALLOCATE( NAME( MAXTRACER, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'NAME' ) - NAME = '' - - ALLOCATE( FNAME( MAXTRACER, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'FNAME' ) - FNAME = '' - - ALLOCATE( UNIT( MAXTRACER, MAXDIAG ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'UNIT' ) - UNIT = '' - - ENDIF - - !================================================================= - ! Initialize arrays for "diaginfo.dat" & "tracerinfo.dat" files - !================================================================= - - ! Initialize arrays for "diaginfo.dat" - CALL INIT_DIAGINFO() - - ! Initialize arrays for "tracerinfo.dat" - CALL INIT_TRACERINFO( Input_Opt, State_Chm, RC ) - - END SUBROUTINE INIT_GAMAP -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: cleanup_gamap -! -! !DESCRIPTION: Subroutine CLEANUP\_GAMAP deallocates all module arrays. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE CLEANUP_GAMAP -! -! !REVISION HISTORY: -! 25 Apr 2005 - R. Yantosca - Initial version -! 03 Aug 2010 - R. Yantosca - Added ProTeX headers -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( ALLOCATED( CATEGORY ) ) DEALLOCATE( CATEGORY ) - IF ( ALLOCATED( DESCRIPT ) ) DEALLOCATE( DESCRIPT ) - IF ( ALLOCATED( FNAME ) ) DEALLOCATE( FNAME ) - IF ( ALLOCATED( INDEX ) ) DEALLOCATE( INDEX ) - IF ( ALLOCATED( MWT ) ) DEALLOCATE( MWT ) - IF ( ALLOCATED( NAME ) ) DEALLOCATE( NAME ) - IF ( ALLOCATED( NTRAC ) ) DEALLOCATE( NTRAC ) - IF ( ALLOCATED( OFFSET ) ) DEALLOCATE( OFFSET ) - IF ( ALLOCATED( SCALE ) ) DEALLOCATE( SCALE ) - IF ( ALLOCATED( UNIT ) ) DEALLOCATE( UNIT ) - - END SUBROUTINE CLEANUP_GAMAP -!EOC -END MODULE GAMAP_MOD -#endif diff --git a/GeosCore/gc_environment_mod.F90 b/GeosCore/gc_environment_mod.F90 index 131df24b1..de0b97ea1 100644 --- a/GeosCore/gc_environment_mod.F90 +++ b/GeosCore/gc_environment_mod.F90 @@ -79,14 +79,12 @@ SUBROUTINE GC_Allocate_All( Input_Opt, & ! ! !USES: ! - USE CMN_FJX_MOD, ONLY : Init_CMN_FJX +#ifdef FASTJX + USE CMN_FJX_Mod, ONLY : Init_CMN_FJX +#endif USE ErrCode_Mod USE Input_Opt_Mod - USE State_Grid_Mod, ONLY : GrdState -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD, ONLY : Init_CMN_DIAG - USE CMN_O3_Mod, ONLY : Init_CMN_O3 -#endif + USE State_Grid_Mod, ONLY : GrdState IMPLICIT NONE ! @@ -143,8 +141,9 @@ SUBROUTINE GC_Allocate_All( Input_Opt, & ThisLoc = & ' -> at GC_Allocate_All (in module GeosCore/gc_environment_mod.F90)' +#ifdef FASTJX ! Initialize CMN_FJX_mod.F90 - CALL Init_CMN_FJX( Input_Opt, State_Grid, RC ) + CALL Init_CMN_FJX( Input_Opt,State_Grid, RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -152,31 +151,6 @@ SUBROUTINE GC_Allocate_All( Input_Opt, & CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF - -#ifdef BPCH_DIAG - !======================================================================= - ! THESE ROUTINES ARE ONLY USED WHEN COMPILING GEOS-CHEM w/ BPCH_DIAG=y - !======================================================================= - - ! Set dimensions in CMN_DEP_mod.F90 and allocate arrays - CALL Init_CMN_DIAG( Input_Opt, State_Grid, RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered within call to "Init_CMN_DIAG"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ! Initialize CMN_O3_mod.F90 - CALL Init_CMN_O3( Input_Opt, State_Grid, RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered within call to "Init_CMN_O3"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF #endif END SUBROUTINE GC_Allocate_All @@ -439,13 +413,6 @@ SUBROUTINE GC_Init_Extra( Diag_List, Input_Opt, State_Chm, & USE Tagged_O3_Mod, ONLY : Init_Tagged_O3 USE Vdiff_Mod, ONLY : Init_Vdiff USE WetScav_Mod, ONLY : Init_WetScav -#ifdef MODEL_CLASSIC -#ifdef BPCH_DIAG - ! NOTE: Restore this call until we can remove TOMAS BPCH diagnostics - ! -- Bob Yantosca (03 Nov 2022) - USE Gamap_Mod, ONLY : Do_Gamap -#endif -#endif ! ! !INPUT PARAMETERS: ! @@ -481,7 +448,6 @@ SUBROUTINE GC_Init_Extra( Diag_List, Input_Opt, State_Chm, & ! ! !LOCAL VARIABLES: ! - LOGICAL :: prtDebug CHARACTER(LEN=255) :: ErrMsg, ThisLoc !======================================================================= @@ -490,7 +456,6 @@ SUBROUTINE GC_Init_Extra( Diag_List, Input_Opt, State_Chm, & ! Initialize RC = GC_SUCCESS - prtDebug = ( Input_Opt%amIRoot .and. Input_Opt%LPRT ) ErrMsg = '' ThisLoc = & ' -> at GC_Init_Extra (in module GeosCore/gc_environment_mod.F90)' @@ -681,7 +646,7 @@ SUBROUTINE GC_Init_Extra( Diag_List, Input_Opt, State_Chm, & IF ( Input_Opt%ITS_A_MERCURY_SIM ) THEN ! Main mercury module - CALL Init_Mercury( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) + CALL Init_Mercury( Input_Opt, State_Grid, State_Chm, State_Diag, RC ) IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Error encountered in "Init_Mercury"!' CALL GC_Error( ErrMsg, RC, ThisLoc ) @@ -783,34 +748,7 @@ SUBROUTINE GC_Init_Extra( Diag_List, Input_Opt, State_Chm, & ENDIF ENDIF -#ifdef MODEL_CLASSIC -#ifdef BPCH_DIAG - !================================================================= - ! These routines are only needed when compiling GEOS-Chem - ! with BPCH_DIAG=y. (bmy, 10/4/19) - !================================================================= - - !----------------------------------------------------------------- - ! Diagnostics - !----------------------------------------------------------------- - - ! Allocate and initialize variables - CALL Ndxx_Setup( Input_Opt, State_Chm, State_Grid, RC ) - - !-------------------------------------------------------------------- - ! Write out diaginfo.dat, tracerinfo.dat files for this simulation - ! - ! NOTE: Do not do this for GCHP, because this will cause a file to - ! be written out to disk for each core. - ! - ! ALSO NOTE: Eventually we will remove the ESMF_ C-preprocessor - ! but we have to keep it for the time being (bmy, 4/11/18) - !-------------------------------------------------------------------- - CALL Do_Gamap( Input_Opt, State_Chm, RC ) -#endif -#endif - - IF ( prtDebug ) CALL DEBUG_MSG( '### a GC_INIT_EXTRA' ) + IF ( Input_Opt%Verbose ) CALL DEBUG_MSG( '### a GC_INIT_EXTRA' ) END SUBROUTINE GC_Init_Extra !EOC @@ -905,14 +843,14 @@ SUBROUTINE INIT_TOMAS_MICROPHYSICS( Input_Opt, State_Chm, State_Grid, RC ) ENDIF ! Halt with error if none of the TOMAS aerosol species are defined - I = MAX( Ind_('NK1' ,'A'), 0 ) & - + MAX( Ind_('SF1' ,'A'), 0 ) & - + MAX( Ind_('SS1' ,'A'), 0 ) & - + MAX( Ind_('ECOB1','A'), 0 ) & - + MAX( Ind_('ECIL1','A'), 0 ) & - + MAX( Ind_('OCOB1','A'), 0 ) & - + MAX( Ind_('OCIL1','A'), 0 ) & - + MAX( Ind_('DUST1','A'), 0 ) + I = MAX( Ind_('NK01' ,'A'), 0 ) & + + MAX( Ind_('SF01' ,'A'), 0 ) & + + MAX( Ind_('SS01' ,'A'), 0 ) & + + MAX( Ind_('ECOB01','A'), 0 ) & + + MAX( Ind_('ECIL01','A'), 0 ) & + + MAX( Ind_('OCOB01','A'), 0 ) & + + MAX( Ind_('OCIL01','A'), 0 ) & + + MAX( Ind_('DUST01','A'), 0 ) IF ( I == 0 ) THEN ErrMsg = 'None of the TOMAS aerosols are defined!' @@ -921,17 +859,17 @@ SUBROUTINE INIT_TOMAS_MICROPHYSICS( Input_Opt, State_Chm, State_Grid, RC ) ENDIF ! Halt with error if sulfate aerosols are not defined - IF( Ind_('SF1') > 0 .and. ( .not. Input_Opt%LSULF ) ) THEN + IF( Ind_('SF01') > 0 .and. ( .not. Input_Opt%LSULF ) ) THEN ErrMsg = 'Need LSULF on for TOMAS-Sulfate to work (for now)' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF ! Halt with error if carbonaceous aerosols are not defined - I = MAX( Ind_('ECOB1','A'), 0 ) & - + MAX( Ind_('ECIL1','A'), 0 ) & - + MAX( Ind_('OCOB1','A'), 0 ) & - + MAX( Ind_('OCIL1','A'), 0 ) + I = MAX( Ind_('ECOB01','A'), 0 ) & + + MAX( Ind_('ECIL01','A'), 0 ) & + + MAX( Ind_('OCOB01','A'), 0 ) & + + MAX( Ind_('OCIL01','A'), 0 ) IF ( I > 0 .and. (.not. Input_Opt%LCARB ) ) THEN ErrMsg = 'Need LCARB on for TOMAS-carb to work (for now)' @@ -939,13 +877,6 @@ SUBROUTINE INIT_TOMAS_MICROPHYSICS( Input_Opt, State_Chm, State_Grid, RC ) RETURN ENDIF - ! Halt with error if dust aerosols are turned on. - ! TOMAS defines its own dust aerosol species. -! IF ( Ind_('DUST1') > 0 .AND. Input_Opt%LDUST ) THEN -! MSG = 'Need to turn off LDUST for TOMAS Dust to work' -! CALL ERROR_STOP( MSG, LOCATION ) -! ENDIF - !================================================================= ! All error checks are satisfied, so initialize TOMAS !================================================================= diff --git a/GeosCore/global_ch4_mod.F90 b/GeosCore/global_ch4_mod.F90 index 2867b87e7..64dc749ee 100644 --- a/GeosCore/global_ch4_mod.F90 +++ b/GeosCore/global_ch4_mod.F90 @@ -23,7 +23,6 @@ MODULE GLOBAL_CH4_MOD ! ! !PUBLIC MEMBER FUNCTIONS: ! - PUBLIC :: EMISSCH4 PUBLIC :: CHEMCH4 PUBLIC :: INIT_GLOBAL_CH4 ! @@ -61,500 +60,6 @@ MODULE GLOBAL_CH4_MOD !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: emissch4 -! -! !DESCRIPTION: Subroutine EMISSCH4 places emissions of CH4 [kg] into the -! chemical species array. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE EMISSCH4( Input_Opt, State_Chm, State_Grid, State_Met, RC ) -! -! !USES: -! - USE HCO_Utilities_GC_Mod, ONLY : HCO_GC_EvalFld - USE HCO_Utilities_GC_Mod, ONLY : HCO_GC_GetDiagn - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE State_Chm_Mod, ONLY : ChmState - USE State_Met_Mod, ONLY : MetState - USE State_Grid_Mod, ONLY : GrdState -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REMARKS: -! WARNING: Soil absorption has to be the 15th field in CH4_EMIS -! Also: the ND58 diagnostics have now been removed. We still need to -! read the HEMCO manual diagnostics into CH4_EMIS for the analytical -! inversion. Therefore, we will keep EmissCh4 for the time-being -! but only remove the bpch diagnostic. -! -! !REVISION HISTORY: -! (1 ) Created by Bryan Duncan (1/99). Adapted for CH4 chemistry by -! James Wang (7/00). Inserted into module "global_ch4_mod.f" -! by Bob Yantosca. (bmy, 1/16/01) -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - INTEGER :: I, J, N - - ! Strings - CHARACTER(LEN= 63) :: DgnName - CHARACTER(LEN=255) :: ErrMsg - CHARACTER(LEN=255) :: ThisLoc - - ! For fields from Input_Opt - LOGICAL :: ITS_A_CH4_SIM - LOGICAL :: prtDebug - LOGICAL, SAVE :: FIRST = .TRUE. - - ! Arrays of state vector elements for applying emissions perturbations - REAL(fp) :: STATE_VECTOR(State_Grid%NX,State_Grid%NY) - - ! Array of scale factors for emissions (from HEMCO) - REAL(fp) :: EMIS_SF(State_Grid%NX,State_Grid%NY) - - ! Pointers - REAL(f4), POINTER :: Ptr2D(:,:) - - !================================================================= - ! EMISSCH4 begins here! - !================================================================= - - ! Nullify pointers - Ptr2D => NULL() - - ! Assume success - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at EMISSCH4 (in GeosCore/global_ch4_mod.F90)' - - ! Copy values from Input_Opt - ITS_A_CH4_SIM = Input_Opt%ITS_A_CH4_SIM - - ! Do we have to print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - - IF ( ITS_A_CH4_SIM .and. prtDebug ) THEN - print*,'BEGIN SUBROUTINE: EMISSCH4' - ENDIF - - ! ================================================================= - ! Get fields for CH4 analytical inversions if needed - ! ================================================================= - IF ( Input_Opt%AnalyticalInv ) THEN - - ! Evaluate the state vector field from HEMCO - CALL HCO_GC_EvalFld( Input_Opt, State_Grid, 'CH4_STATE_VECTOR', & - STATE_VECTOR, RC) - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'CH4_STATE_VECTOR not found in HEMCO data list!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ENDIF - - IF ( Input_Opt%UseEmisSF ) THEN - - ! Evaluate CH4 emissions scale factors from HEMCO - CALL HCO_GC_EvalFld( Input_Opt, State_Grid, 'EMIS_SF', EMIS_SF, RC) - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'EMIS_SF not found in HEMCO data list!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ENDIF - - ! ================================================================= - ! --> All emission calculations are now done through HEMCO - ! HEMCO stores emissions of all species internally in the HEMCO - ! state object. Here, we pass these emissions into module array - ! CH4_EMIS in units kg/m2/s. These values are then either added to - ! the species array (full mixing scheme) or used later on in - ! vdiff_mod.F90 if the non-local PBL mixing scheme is used. - ! - ! The CH4_EMIS array is mostly used for backwards compatibility - ! (especially the diagnostics). It is also used to ensure that - ! in a multi-species simulation, species 1 (total CH4) is properly - ! defined. - ! - ! (ckeller, 9/12/2013) - ! ================================================================= - State_Chm%CH4_EMIS(:,:,:) = 0e+0_fp - - !------------------- - ! Oil - !------------------- - DgnName = 'CH4_OIL' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,2) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Gas - !------------------- - DgnName = 'CH4_GAS' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,3) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Coal - !------------------- - DgnName = 'CH4_COAL' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,4) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Livestock - !------------------- - DgnName = 'CH4_LIVESTOCK' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,5) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Landfills - !------------------- - DgnName = 'CH4_LANDFILLS' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,6) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Wastewater - !------------------- - DgnName = 'CH4_WASTEWATER' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,7) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Rice - !------------------- - DgnName = 'CH4_RICE' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,8) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Other anthropogenic - !------------------- - DgnName = 'CH4_ANTHROTHER' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc = ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,9) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Biomass burning - !------------------- - DgnName = 'CH4_BIOMASS' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,10) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Wetland - !------------------- - DgnName = 'CH4_WETLAND' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,11) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Global seeps - !------------------- - DgnName = 'CH4_SEEPS' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,12) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Lakes - !------------------- - DgnName = 'CH4_LAKES' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,13) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Termites - !------------------- - DgnName = 'CH4_TERMITES' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,14) = Ptr2D(:,:) - ENDIF - Ptr2D => NULL() - - !------------------- - ! Soil absorption (those are negative!) - !------------------- - DgnName = 'CH4_SOILABSORB' - CALL HCO_GC_GetDiagn( Input_Opt, State_Grid, DgnName, .FALSE., RC, Ptr2D=Ptr2D ) - - ! Trap potential errors and assign HEMCO pointer to array - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Cannot get pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ELSEIF ( .NOT. ASSOCIATED(Ptr2D) ) THEN - ErrMsg = 'Unassociated pointer to HEMCO field ' // TRIM(DgnName) - CALL GC_Warning( ErrMsg, RC, ThisLoc=ThisLoc ) - ELSE - State_Chm%CH4_EMIS(:,:,15) = Ptr2D(:,:) * -1.0_fp - ENDIF - Ptr2D => NULL() - - ! ================================================================= - ! Total emission: sum of all emissions - (2*soil absorption) - ! We have to substract soil absorption twice because it is added - ! to other emissions in the SUM function. (ccc, 7/23/09) - ! ================================================================= - State_Chm%CH4_EMIS(:,:,1) = SUM(State_Chm%CH4_EMIS, 3) - (2 * State_Chm%CH4_EMIS(:,:,15)) - - IF ( prtDebug ) THEN - WRITE(*,*) 'CH4_EMIS (kg/m2/s):' - WRITE(*,*) 'Total : ', SUM(State_Chm%CH4_EMIS(:,:,1)) - WRITE(*,*) 'Oil : ', SUM(State_Chm%CH4_EMIS(:,:,2)) - WRITE(*,*) 'Gas : ', SUM(State_Chm%CH4_EMIS(:,:,3)) - WRITE(*,*) 'Coal : ', SUM(State_Chm%CH4_EMIS(:,:,4)) - WRITE(*,*) 'Livestock : ', SUM(State_Chm%CH4_EMIS(:,:,5)) - WRITE(*,*) 'Landfills : ', SUM(State_Chm%CH4_EMIS(:,:,6)) - WRITE(*,*) 'Wastewater : ', SUM(State_Chm%CH4_EMIS(:,:,7)) - WRITE(*,*) 'Rice : ', SUM(State_Chm%CH4_EMIS(:,:,8)) - WRITE(*,*) 'Other anth : ', SUM(State_Chm%CH4_EMIS(:,:,9)) - WRITE(*,*) 'Biomass burn : ', SUM(State_Chm%CH4_EMIS(:,:,10)) - WRITE(*,*) 'Wetlands : ', SUM(State_Chm%CH4_EMIS(:,:,11)) - WRITE(*,*) 'Seeps : ', SUM(State_Chm%CH4_EMIS(:,:,12)) - WRITE(*,*) 'Lakes : ', SUM(State_Chm%CH4_EMIS(:,:,13)) - WRITE(*,*) 'Termites : ', SUM(State_Chm%CH4_EMIS(:,:,14)) - WRITE(*,*) 'Soil absorb : ', SUM(State_Chm%CH4_EMIS(:,:,15)) - ENDIF - - ! ================================================================= - ! Do scaling for analytical inversion - ! ================================================================= - IF ( Input_Opt%AnalyticalInv .or. & - Input_Opt%UseEmisSF .or. & - Input_Opt%UseOHSF ) THEN - - ! Don't optimize for soil absorption so remove from the total - ! emissions array - State_Chm%CH4_EMIS(:,:,1) = State_Chm%CH4_EMIS(:,:,1) + State_Chm%CH4_EMIS(:,:,15) - - ! Rescale emissions - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J) - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - - !------------------------------------------------------------ - ! For applying scale factors from analytical inversion - !------------------------------------------------------------ - IF ( Input_Opt%UseEmisSF ) THEN - ! Scale total emissions - State_Chm%CH4_EMIS(I,J,1) = State_Chm%CH4_EMIS(I,J,1) * EMIS_SF(I,J) - ENDIF - - !------------------------------------------------------------ - ! Perturb emissions for analytical inversion - !------------------------------------------------------------ - IF ( Input_Opt%AnalyticalInv ) THEN - - ! Only apply emission perturbation to current state vector - ! element number - IF ( Input_Opt%StateVectorElement .GT. 0 ) THEN - IF ( STATE_VECTOR(I,J) == Input_Opt%StateVectorElement ) THEN - State_Chm%CH4_EMIS(I,J,1) = State_Chm%CH4_EMIS(I,J,1) * Input_Opt%PerturbEmis - !Print*, 'Analytical Inversion: Scaled state vector element ', & - ! Input_Opt%StateVectorElement, ' by ', & - ! Input_Opt%PerturbEmis - ENDIF - ENDIF - ENDIF - - ENDDO - ENDDO - !$OMP END PARALLEL DO - - ! Now that we've done the emission factor scaling, add soil absorption - ! back to the total emissions array - State_Chm%CH4_EMIS(:,:,1) = State_Chm%CH4_EMIS(:,:,1) - State_Chm%CH4_EMIS(:,:, 15) - - ENDIF - - IF ( ITS_A_CH4_SIM .and. prtDebug ) THEN - print*,'END SUBROUTINE: EMISSCH4' - ENDIF - - END SUBROUTINE EMISSCH4 -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! ! !IROUTINE: chemch4 ! ! !DESCRIPTION: Subroutine CHEMCH4 computes the chemical loss of CH4 @@ -630,10 +135,6 @@ SUBROUTINE CHEMCH4( Input_Opt, State_Chm, State_Diag, & INTEGER :: NODAYS(12) = (/ 31, 28, 31, 30, 31, 30, & 31, 31, 30, 31, 30, 31 /) - ! For fields from Input_Opt - LOGICAL :: LSPLIT - LOGICAL :: prtDebug - ! Pointers TYPE(SpcConc), POINTER :: Spc(:) @@ -650,14 +151,10 @@ SUBROUTINE CHEMCH4( Input_Opt, State_Chm, State_Diag, & ErrMsg = '' ThisLoc = ' -> at CHEMCH4 (in module GeosCore/global_ch4_mod.F90)' - ! Copy values from Input_Opt - LSPLIT = Input_Opt%LSPLIT - prtDebug= ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Point to the chemical species Spc => State_Chm%Species - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, '(a)' ) '% --- ENTERING CHEMCH4! ---' ENDIF @@ -718,26 +215,6 @@ SUBROUTINE CHEMCH4( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - !================================================================= - ! If multi-CH4 species, we store the CH4 total conc. to - ! distribute the sink after the chemistry. (ccc, 2/10/09) - !================================================================= - IF ( LSPLIT ) THEN - - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L ) - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - PREVCH4(I,J,L) = Spc(1)%Conc(I,J,L) - ENDDO - ENDDO - ENDDO - !$OMP END PARALLEL DO - - ENDIF - !================================================================= ! Calculate rate of decay of CH4 by OH oxidation. !================================================================= @@ -750,14 +227,6 @@ SUBROUTINE CHEMCH4( Input_Opt, State_Chm, State_Diag, & CALL CH4_STRAT( Input_Opt, State_Chm, State_Diag, & State_Grid, State_Met, RC ) - !================================================================= - ! Distribute the chemistry sink from total CH4 to other CH4 - ! species. (ccc, 2/10/09) - !================================================================= - IF ( LSPLIT ) THEN - CALL CH4_DISTRIB( Input_Opt, State_Chm, State_Grid, PREVCH4 ) - ENDIF - ! Free pointer Spc => NULL() @@ -828,7 +297,7 @@ SUBROUTINE CH4_DECAY( Input_Opt, State_Chm, State_Diag, & ! !LOCAL VARIABLES: ! ! Scalars - INTEGER :: I, J, L + INTEGER :: I, J, L, N, NA REAL(fp) :: DT, GCH4, Spc2GCH4 REAL(fp) :: KRATE, C_OH REAL(fp) :: KRATE_Cl, C_Cl @@ -837,9 +306,6 @@ SUBROUTINE CH4_DECAY( Input_Opt, State_Chm, State_Diag, & ! Pointers TYPE(SpcConc), POINTER :: Spc(:) - ! Array of scale factors for OH (from HEMCO) - REAL(fp) :: OH_SF(State_Grid%NX,State_Grid%NY) - !================================================================= ! CH4_DECAY begins here! !================================================================= @@ -853,21 +319,6 @@ SUBROUTINE CH4_DECAY( Input_Opt, State_Chm, State_Diag, & ! Point to the chemical species array Spc => State_Chm%Species - ! ================================================================= - ! Get fields for CH4 analytical inversions if needed - ! ================================================================= - IF ( Input_Opt%UseOHSF ) THEN - - ! Evaluate OH scale factors from HEMCO - CALL HCO_GC_EvalFld( Input_Opt, State_Grid, 'OH_SF', OH_SF, RC) - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'OH_SF not found in HEMCO data list!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ENDIF - !================================================================= ! %%%%% HISTORY (aka netCDF diagnostics) %%%%% ! @@ -898,80 +349,83 @@ SUBROUTINE CH4_DECAY( Input_Opt, State_Chm, State_Diag, & ! ! This is from Kirschke et al., Nat. Geosci., 2013. !================================================================= + DO NA = 1, State_Chm%nAdvect - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( L, J, I, KRATE, Spc2GCH4, GCH4, C_OH ) & - !$OMP PRIVATE( C_Cl, KRATE_Cl ) & - !$OMP REDUCTION( +:TROPOCH4 ) - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX + ! Advected species ID + N = State_Chm%Map_Advect(NA) - ! Only consider tropospheric boxes - IF ( State_Met%InChemGrid(I,J,L) ) THEN + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED ) & + !$OMP PRIVATE( I, J, L, KRATE, Spc2GCH4, GCH4, C_OH ) & + !$OMP PRIVATE( C_Cl, KRATE_Cl ) & + !$OMP REDUCTION( +:TROPOCH4 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX - ! Calculate rate coefficients - KRATE = 2.45e-12_fp * EXP( -1775e+0_fp / State_Met%T(I,J,L)) - KRATE_Cl = 9.60e-12_fp * EXP( -1360e+0_fp / State_Met%T(I,J,L)) + ! Only consider tropospheric boxes + IF ( State_Met%InTroposphere(I,J,L) ) THEN - ! Conversion from [kg/box] --> [molec/cm3] - ! [kg CH4/box] * [box/cm3] * XNUMOL_CH4 [molec CH4/kg CH4] - Spc2GCH4 = 1e+0_fp / State_Met%AIRVOL(I,J,L) / 1e+6_fp * XNUMOL_CH4 + ! Calculate rate coefficients + KRATE = 2.45e-12_fp * EXP( -1775e+0_fp / State_Met%T(I,J,L)) + KRATE_Cl = 9.60e-12_fp * EXP( -1360e+0_fp / State_Met%T(I,J,L)) - ! CH4 in [molec/cm3] - GCH4 = Spc(1)%Conc(I,J,L) * Spc2GCH4 + ! Conversion from [kg/box] --> [molec/cm3] + ! [kg CH4/box] * [box/cm3] * XNUMOL_CH4 [molec CH4/kg CH4] + Spc2GCH4 = 1e+0_fp / State_Met%AIRVOL(I,J,L) / 1e+6_fp * XNUMOL_CH4 - ! OH in [molec/cm3] - ! BOH from HEMCO in units of kg/m3, convert to molec/cm3 - C_OH = State_Chm%BOH(I,J,L) * XNUMOL_OH / CM3PERM3 + ! CH4 in [molec/cm3] + GCH4 = Spc(N)%Conc(I,J,L) * Spc2GCH4 - ! Apply scale factors from analytical inversion - IF ( Input_Opt%UseOHSF ) THEN - C_OH = C_OH * OH_SF(I,J) - !Print*, 'Applying scale factor to OH: ', OH_SF(I,J) - ENDIF + ! OH in [molec/cm3] + ! BOH from HEMCO in units of kg/m3, convert to molec/cm3 + C_OH = State_Chm%BOH(I,J,L) * XNUMOL_OH / CM3PERM3 - ! Cl in [molec/cm3] - ! BCl from HEMCO in units of mol/mol, convert to molec/cm3 - C_Cl = State_Chm%BCl(I,J,L) * State_Met%AIRNUMDEN(I,J,L) + ! Cl in [molec/cm3] + ! BCl from HEMCO in units of mol/mol, convert to molec/cm3 + C_Cl = State_Chm%BCl(I,J,L) * State_Met%AIRNUMDEN(I,J,L) - TROPOCH4 = TROPOCH4 + GCH4 * KRATE * C_OH * DT / Spc2GCH4 & - + GCH4 * KRATE_Cl * C_Cl * DT / Spc2GCH4 + TROPOCH4 = TROPOCH4 + GCH4 * KRATE * C_OH * DT / Spc2GCH4 & + + GCH4 * KRATE_Cl * C_Cl * DT / Spc2GCH4 - !----------------------------------------------------------- - ! %%%%% HISTORY (aka netCDF diagnostics) %%%%% - ! - ! Archive Loss of CH4 (kg/s) reactions with OH and Cl - !----------------------------------------------------------- + !----------------------------------------------------------- + ! %%%%% HISTORY (aka netCDF diagnostics) %%%%% + ! + ! Archive Loss of CH4 (kg/s) reactions with OH and Cl + !----------------------------------------------------------- + IF ( NA == 1 ) THEN + ! Loss CH4 by reaction with Cl [kg/s] + IF ( State_Diag%Archive_LossCH4byClinTrop ) THEN + State_Diag%LossCH4byClinTrop(I,J,L) = & + ( GCH4 * KRATE_Cl * C_Cl ) / Spc2GCH4 + ENDIF - ! Loss CH4 by reaction with Cl [kg/s] - IF ( State_Diag%Archive_LossCH4byClinTrop ) THEN - State_Diag%LossCH4byClinTrop(I,J,L) = & - ( GCH4 * KRATE_Cl * C_Cl ) / Spc2GCH4 - ENDIF + IF ( State_Diag%Archive_LossCH4byOHinTrop ) THEN + State_Diag%LossCH4byOHinTrop(I,J,L) = & + ( GCH4 * KRATE * C_OH ) / Spc2GCH4 + ENDIF + ENDIF - IF ( State_Diag%Archive_LossCH4byOHinTrop ) THEN - State_Diag%LossCH4byOHinTrop(I,J,L) = & - ( GCH4 * KRATE * C_OH ) / Spc2GCH4 - ENDIF + ! Calculate new CH4 value: [CH4]=[CH4](1-k[OH]*delt) + GCH4 = GCH4 * & + ( 1.0_fp - ( KRATE * C_OH * DT ) - ( KRATE_Cl * C_Cl * DT ) ) - ! Calculate new CH4 value: [CH4]=[CH4](1-k[OH]*delt) - GCH4 = GCH4 * ( 1e+0_fp - KRATE * C_OH * DT ) - GCH4 = GCH4 * ( 1e+0_fp - KRATE_Cl * C_Cl * DT ) + ! Convert back from [molec/cm3] --> [kg/box] + Spc(N)%Conc(I,J,L) = GCH4 / Spc2GCH4 - ! Convert back from [molec/cm3] --> [kg/box] - Spc(1)%Conc(I,J,L) = GCH4 / Spc2GCH4 + ENDIF + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + IF ( Input_Opt%Verbose ) THEN + print*,'% --- CHEMCH4: CH4_DECAY: TROP DECAY (Tg): ',TROPOCH4/1e9 + print*,'Trop decay should be over 1Tg per day globally' + print*,' ~ 500Tg/365d ~ 1.37/d' ENDIF - ENDDO - ENDDO - ENDDO - !$OMP END PARALLEL DO - !print*,'% --- CHEMCH4: CH4_DECAY: TROP DECAY (Tg): ',TROPOCH4/1e9 - !print*,'Trop decay should be over 1Tg per day globally' - !print*,' ~ 500Tg/365d ~ 1.37/d' + ENDDO ! Free pointers Spc => NULL() @@ -1197,16 +651,6 @@ SUBROUTINE CH4_Metrics( Input_Opt, State_Chm, State_Diag, & Ktrop = 1.64e-12_f8 * EXP( -1520.0_f8 / State_Met%T(I,J,L) ) LossOHbyMCF = LossOHbyMCF + ( Ktrop * OHconc_MCM3 * airMass_m ) - !--------------------------------------------------------------- - ! HISTORY (aka netCDF diagnostics) - ! - ! Keep track of CH4 emisisons [kg/s] for computing - ! the various lifetime metrics in post-processing - !--------------------------------------------------------------- - IF ( L == 1 .and. State_Diag%Archive_CH4emission ) THEN - State_Diag%CH4emission(I,J) = State_Chm%CH4_EMIS(I,J,id_CH4) & - * State_Grid%Area_M2(I,J) - ENDIF ENDIF ENDDO @@ -1326,7 +770,7 @@ SUBROUTINE CH4_STRAT( Input_Opt, State_Chm, State_Diag, & ! !LOCAL VARIABLES: ! ! Scalars - INTEGER :: I, J, L + INTEGER :: I, J, L, N, NA REAL(fp) :: DT, GCH4, Spc2GCH4, LRATE ! Strings @@ -1377,46 +821,53 @@ SUBROUTINE CH4_STRAT( Input_Opt, State_Chm, State_Diag, & !================================================================= ! Loop over stratospheric boxes only !================================================================= - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, Spc2GCH4, GCH4, LRATE ) - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX + DO NA = 1, State_Chm%nAdvect - ! Only proceed if we are outside of the chemistry grid - IF ( .not. State_Met%InChemGrid(I,J,L) ) THEN + ! Advected species ID + N = State_Chm%Map_Advect(NA) - ! Conversion factor [kg/box] --> [molec/cm3] - ! [kg/box] / [AIRVOL * 1e6 cm3] * [XNUMOL_CH4 molec/mole] - Spc2GCH4 = 1e+0_fp / State_Met%AIRVOL(I,J,L) / 1e+6_fp * XNUMOL_CH4 + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED ) & + !$OMP PRIVATE( I, J, L, Spc2GCH4, GCH4, LRATE ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Only proceed if we are outside of the chemistry grid + IF ( .not. State_Met%InTroposphere(I,J,L) ) THEN + + ! Conversion factor [kg/box] --> [molec/cm3] + ! [kg/box] / [AIRVOL * 1e6 cm3] * [XNUMOL_CH4 molec/mole] + Spc2GCH4 = 1e+0_fp / State_Met%AIRVOL(I,J,L) / 1e+6_fp * XNUMOL_CH4 - ! CH4 in [molec/cm3] - GCH4 = Spc(1)%Conc(I,J,L) * Spc2GCH4 + ! CH4 in [molec/cm3] + GCH4 = Spc(N)%Conc(I,J,L) * Spc2GCH4 - ! Loss rate [molec/cm3/s] - LRATE = GCH4 * CH4LOSS( I,J,L ) + ! Loss rate [molec/cm3/s] + LRATE = GCH4 * CH4LOSS( I,J,L ) - ! Update Methane concentration in this grid box [molec/cm3] - GCH4 = GCH4 - ( LRATE * DT ) + ! Update Methane concentration in this grid box [molec/cm3] + GCH4 = GCH4 - ( LRATE * DT ) - ! Convert back from [molec CH4/cm3] --> [kg/box] - Spc(1)%Conc(I,J,L) = GCH4 / Spc2GCH4 + ! Convert back from [molec CH4/cm3] --> [kg/box] + Spc(N)%Conc(I,J,L) = GCH4 / Spc2GCH4 + + !------------------------------------------------------------ + ! %%%%%% HISTORY (aka netCDF diagnostics) %%%%% + ! + ! Loss of CH4 by OH above tropopause [kg/s] + !------------------------------------------------------------ + IF ( State_Diag%Archive_LossCH4inStrat ) THEN + State_Diag%LossCH4inStrat(I,J,L) = LRATE / Spc2GCH4 + ENDIF - !------------------------------------------------------------ - ! %%%%%% HISTORY (aka netCDF diagnostics) %%%%% - ! - ! Loss of CH4 by OH above tropopause [kg/s] - !------------------------------------------------------------ - IF ( State_Diag%Archive_LossCH4inStrat ) THEN - State_Diag%LossCH4inStrat(I,J,L) = LRATE / Spc2GCH4 ENDIF + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO - ENDIF ENDDO - ENDDO - ENDDO - !$OMP END PARALLEL DO ! Free pointer Spc => NULL() @@ -1431,7 +882,7 @@ END SUBROUTINE CH4_STRAT ! !IROUTINE: ch4_distrib ! ! !DESCRIPTION: Subroutine CH4\_DISTRIB allocates the chemistry sink to -! different emission species. (ccc, 10/2/09) +! different CH4 species. (ccc, 10/2/09) !\\ !\\ ! !INTERFACE: @@ -1469,7 +920,7 @@ SUBROUTINE CH4_DISTRIB( Input_Opt, State_Chm, State_Grid, PREVCH4 ) ! !LOCAL VARIABLES: ! ! Scalars - INTEGER :: I, J, L, N, NA, nAdvect + INTEGER :: I, J, L, N, NA ! Pointers TYPE(SpcConc), POINTER :: Spc(:) @@ -1481,11 +932,8 @@ SUBROUTINE CH4_DISTRIB( Input_Opt, State_Chm, State_Grid, PREVCH4 ) ! Point to chemical species array [kg] Spc => State_Chm%Species - ! fix nAdvect (Xueying Yu, 12/10/2017) - nAdvect = State_Chm%nAdvect - ! Loop over the number of advected species - DO NA = 2, nAdvect + DO NA = 2, State_Chm%nAdvect ! Advected species ID N = State_Chm%Map_Advect(NA) diff --git a/GeosCore/gosat_ch4_mod.F90 b/GeosCore/gosat_ch4_mod.F90 index 1675bcddd..2d8737c09 100644 --- a/GeosCore/gosat_ch4_mod.F90 +++ b/GeosCore/gosat_ch4_mod.F90 @@ -366,7 +366,8 @@ SUBROUTINE CALC_GOSAT_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & USE State_Chm_Mod, ONLY : ChmState, Ind_ USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -399,6 +400,7 @@ SUBROUTINE CALC_GOSAT_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & INTEGER :: IIJJ(2), I, J, N INTEGER :: L, LL, LGOS INTEGER :: JLOOP, NOBS, IND + INTEGER :: previous_units INTEGER :: INDS(MAXGOS) REAL(fp) :: REF_DATE, TIME REAL(fp) :: GC_PRES(State_Grid%NZ) @@ -455,7 +457,6 @@ SUBROUTINE CALC_GOSAT_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & INTEGER :: IOS INTEGER, SAVE :: TotalObs = 0 CHARACTER(LEN=255) :: FILENAME - CHARACTER(LEN=63) :: OrigUnit CHARACTER(LEN=255) :: ThisLoc CHARACTER(LEN=512) :: ErrMsg INTEGER :: RC @@ -582,15 +583,33 @@ SUBROUTINE CALC_GOSAT_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & print*, ' for hour range: ', GET_HOUR(), GET_HOUR()+1 print*, ' found # GOSAT observations: ', NOBS - ! Convert species units to [v/v] (mps, 6/12/2020) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'v/v dry', RC, OrigUnit=OrigUnit ) + ! Halt diagnostics timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Diagnostics", RC ) + ENDIF + + ! Convert species units to [v/v dry] aka [mol/mol dry] + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Unit conversion error (kg/kg dry -> v/v dry)' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF + ! Start diagnostics timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Diagnostics", RC ) + ENDIF + !! need to update this in order to do i/o with this loop parallel !! ! Now do a parallel loop for analyzing data !!!$OMP PARALLEL DO & @@ -932,15 +951,32 @@ SUBROUTINE CALC_GOSAT_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & ! Update cost function COST_FUNC = COST_FUNC + SUM(NEW_COST(:)) + ! Halt diagnostics timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Diagnostics", RC ) + ENDIF + ! Convert species units back to original unit (mps, 6/12/2020) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Unit conversion error' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF + ! Start diagnostics timer + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Diagnostics", RC ) + ENDIF + 283 FORMAT( I10,2x,I4,2x,I4,2x,F8.3,2x,F8.4,2x,I4,2x, & I2,2x,I2,2x,I2,2x,I2,2x,I2,2x, & F12.3,2x,E12.6,2x,E12.6,2x,E12.6,2x, & diff --git a/GeosCore/hco_interface_gc_mod.F90 b/GeosCore/hco_interface_gc_mod.F90 index ddbe330b8..0b09a27cc 100644 --- a/GeosCore/hco_interface_gc_mod.F90 +++ b/GeosCore/hco_interface_gc_mod.F90 @@ -12,8 +12,8 @@ ! to run HEMCO within GEOS-Chem. !\\ !\\ -! The HEMCO driver is now present in this file as HEMCO is restructured to provide -! a unified point-of-entry for coupling with other models. +! The HEMCO driver is now present in this file as HEMCO is restructured to +! provide a unified point-of-entry for coupling with other models. !\\ !\\ ! Notes: @@ -205,7 +205,6 @@ SUBROUTINE HCOI_GC_Init( Input_Opt, State_Chm, State_Grid, & USE TIME_MOD, ONLY : GET_TS_EMIS, GET_TS_DYN USE TIME_MOD, ONLY : GET_TS_CHEM #ifdef TOMAS - USE TOMAS_MOD, ONLY : IBINS USE TOMAS_MOD, ONLY : Xk #endif @@ -630,7 +629,7 @@ SUBROUTINE HCOI_GC_Init( Input_Opt, State_Chm, State_Grid, & #ifdef TOMAS ! Save # of TOMAS size bins in HcoState - HcoState%MicroPhys%nBins = IBINS + HcoState%MicroPhys%nBins = State_Chm%nTomasBins ! Point to TOMAS bin boundaries array (Xk) in HcoState HcoState%MicroPhys%BinBound => Xk @@ -1035,6 +1034,11 @@ SUBROUTINE HCOI_GC_Run( Input_Opt, State_Chm, State_Grid, & !======================================================================= ! Get boundary conditions from HEMCO (GEOS-Chem "Classic" only) + ! This only retrieves boundary conditions from HEMCO and puts them into + ! State_Chm%BoundaryCond. It no longer applies the boundary conditions + ! to the species array, which is handled by Set_Boundary_Conditions(). + ! This is so that boundary conditions can be updated at a higher frequency + ! than the emissions timestep. (hplin, 7/28/23) !======================================================================= ! Assume BCs are 3-hourly and only get from HEMCO when needed @@ -2544,7 +2548,7 @@ SUBROUTINE ExtState_SetFields( Input_Opt, State_Chm, State_Grid, State_Met, HcoS HMRC, FIRST=FIRST ) #else CALL ExtDat_Set( HcoState, ExtState%FRLANDIC, 'FRLANDIC_FOR_EMIS', & - HMRC, FIRST, State_Met%FRLANDIC ) + HMRC, FIRST, State_Met%FRLANDICE ) #endif ! Trap potential errors @@ -2836,9 +2840,7 @@ SUBROUTINE ExtState_UpdateFields( Input_Opt, State_Chm, & ! ! !USES: ! - USE CMN_FJX_MOD, ONLY : ZPJ USE ErrCode_Mod - USE FAST_JX_MOD, ONLY : RXN_NO2, RXN_O3_1 USE HCO_GeoTools_Mod, ONLY : HCO_GetSUNCOS USE Input_Opt_Mod, ONLY : OptInput USE State_Chm_Mod, ONLY : ChmState @@ -3600,19 +3602,18 @@ SUBROUTINE SetHcoSpecies( Input_Opt, State_Chm, HcoState, nSpec, Phase, RC ) ! For most simulations (e.g. full-chem simulation, most of the ! specialty sims), just use the GEOS-Chem species definitions. !----------------------------------------------------------------- - IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. & - Input_Opt%ITS_AN_AEROSOL_SIM .or. & - Input_Opt%ITS_A_CO2_SIM .or. & - Input_Opt%ITS_A_CH4_SIM .or. & - Input_Opt%ITS_A_MERCURY_SIM .or. & - Input_Opt%ITS_A_POPS_SIM .or. & - Input_Opt%ITS_A_RnPbBe_SIM .or. & - Input_Opt%ITS_A_TAGO3_SIM .or. & - Input_Opt%ITS_A_TAGCO_SIM .or. & - Input_Opt%ITS_A_CARBON_SIM .or. & + IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. & + Input_Opt%ITS_AN_AEROSOL_SIM .or. & + Input_Opt%ITS_A_CARBON_SIM .or. & + Input_Opt%ITS_A_CO2_SIM .or. & + Input_Opt%ITS_A_CH4_SIM .or. & + Input_Opt%ITS_A_MERCURY_SIM .or. & + Input_Opt%ITS_A_POPS_SIM .or. & + Input_Opt%ITS_A_TAGCO_SIM .or. & + Input_Opt%ITS_A_TAGO3_SIM .or. & + Input_Opt%ITS_A_TRACER_SIM .or. & Input_Opt%ITS_A_TRACEMETAL_SIM ) THEN - ! Get number of model species nSpc = State_Chm%nAdvect @@ -3635,8 +3636,8 @@ SUBROUTINE SetHcoSpecies( Input_Opt, State_Chm, HcoState, nSpec, Phase, RC ) ! Assign species variables IF ( PHASE == 2 ) THEN - ! Verbose - IF ( Input_Opt%amIRoot ) THEN + ! Verbose (only written if debug printout is requested) + IF ( Input_Opt%Verbose ) THEN Msg = 'Registering HEMCO species:' CALL HCO_MSG( HcoState%Config%Err, Msg, SEP1='-' ) ENDIF @@ -3665,8 +3666,10 @@ SUBROUTINE SetHcoSpecies( Input_Opt, State_Chm, HcoState, nSpec, Phase, RC ) HcoState%Spc(N)%HenryCR = SpcInfo%Henry_CR ! [K ] HcoState%Spc(N)%HenryPKA = SpcInfo%Henry_pKa ! [1 ] - ! Write to logfile - IF ( Input_Opt%amIRoot ) CALL HCO_SPEC2LOG( HcoState, N ) + ! Logfile output (only written if debug printout is requested) + IF ( Input_Opt%Verbose ) THEN + CALL HCO_SPEC2LOG( HcoState, N ) + ENDIF ! Free pointer memory SpcInfo => NULL() @@ -3686,8 +3689,10 @@ SUBROUTINE SetHcoSpecies( Input_Opt, State_Chm, HcoState, nSpec, Phase, RC ) HcoState%Spc(N)%HenryCR = 0.0_hp HcoState%Spc(N)%HenryPKa = 0.0_hp - ! Write to logfile - IF ( Input_Opt%amIRoot ) CALL HCO_SPEC2LOG( HcoState, N ) + ! Logfile output (only written if debug output is requested) + IF ( Input_Opt%Verbose ) THEN + CALL HCO_SPEC2LOG( HcoState, N ) + ENDIF ENDIF !------------------------------------------------------------------ @@ -3726,13 +3731,17 @@ SUBROUTINE SetHcoSpecies( Input_Opt, State_Chm, HcoState, nSpec, Phase, RC ) HcoState%Spc(M)%HenryCR = 0.0_hp HcoState%Spc(M)%HenryPKa = 0.0_hp - ! Write to log file - IF ( Input_Opt%amIRoot ) CALL HCO_SPEC2LOG( HcoState, M ) + ! Logfile output (only written if debug printout is requested) + IF ( Input_Opt%Verbose ) THEN + CALL HCO_SPEC2LOG( HcoState, M ) + ENDIF ENDDO ENDIF ! Add line to log-file - IF ( Input_Opt%amIRoot ) CALL HCO_MSG( HcoState%Config%Err, SEP1='-' ) + IF ( Input_Opt%Verbose ) THEN + CALL HCO_MSG( HcoState%Config%Err, SEP1='-' ) + ENDIF ENDIF ! Phase = 2 !----------------------------------------------------------------- @@ -4152,85 +4161,6 @@ SUBROUTINE CheckSettings( HcoConfig, Input_Opt, State_Met, State_Chm, RC ) ENDIF - !----------------------------------------------------------------------- - ! Input data for CH4 simulations only - ! - ! If we have turned on CH4 options in geoschem_config.yml, then we - ! also need to toggle switches so that HEMCO reads the appropriate data. - !----------------------------------------------------------------------- - IF ( Input_Opt%ITS_A_CH4_SIM ) THEN - - IF ( Input_Opt%AnalyticalInv ) THEN - CALL GetExtOpt( HcoConfig, -999, 'AnalyticalInv', & - OptValBool=LTMP, FOUND=FOUND, RC=HMRC ) - - IF ( HMRC /= HCO_SUCCESS ) THEN - RC = HMRC - ErrMsg = 'Error encountered in "GetExtOpt( AnalyticalInv )"!' - CALL GC_Error( ErrMsg, RC, ThisLoc, Instr ) - RETURN - ENDIF - IF ( .not. FOUND ) THEN - ErrMsg = 'AnalyticalInv not found in HEMCO_Config.rc file!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - IF ( .not. LTMP ) THEN - ErrMsg = 'AnalyticalInv is set to false in HEMCO_Config.rc ' // & - 'but should be set to true for this simulation.' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - - IF ( Input_Opt%UseEmisSF ) THEN - CALL GetExtOpt( HcoConfig, -999, 'Emis_ScaleFactor', & - OptValBool=LTMP, FOUND=FOUND, RC=HMRC ) - - IF ( HMRC /= HCO_SUCCESS ) THEN - RC = HMRC - ErrMsg = 'Error encountered in "GetExtOpt( Emis_ScaleFactor )"!' - CALL GC_Error( ErrMsg, RC, ThisLoc, Instr ) - RETURN - ENDIF - IF ( .not. FOUND ) THEN - ErrMsg = 'Emis_ScaleFactor not found in HEMCO_Config.rc file!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - IF ( .not. LTMP ) THEN - ErrMsg = 'Emis_ScaleFactor is set to false in HEMCO_Config.rc '// & - 'but should be set to true for this simulation.' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - - IF ( Input_Opt%UseOHSF ) THEN - CALL GetExtOpt( HcoConfig, -999, 'OH_ScaleFactor', & - OptValBool=LTMP, FOUND=FOUND, RC=HMRC ) - - IF ( HMRC /= HCO_SUCCESS ) THEN - RC = HMRC - ErrMsg = 'Error encountered in "GetExtOpt( OH_ScaleFactor )"!' - CALL GC_Error( ErrMsg, RC, ThisLoc, Instr ) - RETURN - ENDIF - IF ( .not. FOUND ) THEN - ErrMsg = 'OH_ScaleFactor not found in HEMCO_Config.rc file!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - IF ( .not. LTMP ) THEN - ErrMsg = 'OH_ScaleFactor is set to false in HEMCO_Config.rc ' // & - 'but should be set to true for this simulation.' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - - ENDIF - !----------------------------------------------------------------------- ! RRTMG input data ! @@ -4263,8 +4193,8 @@ SUBROUTINE CheckSettings( HcoConfig, Input_Opt, State_Met, State_Chm, RC ) ENDIF - ! Print value of shadow fields - IF ( Input_Opt%amIRoot ) THEN + ! Print value of shadow fields (only if debug output is requested) + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN Print*, '' Print*, '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' Print*, 'Switches read from HEMCO_Config.rc:' @@ -4551,7 +4481,8 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & USE State_Met_Mod, ONLY : MetState USE Time_Mod, ONLY : Get_Ts_Conv USE Time_Mod, ONLY : Get_Ts_Emis - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -4594,7 +4525,7 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & INTEGER :: L, NA INTEGER :: ND, N INTEGER :: Hg_Cat, topMix - INTEGER :: S + INTEGER :: S, previous_units REAL(fp) :: dep, emis REAL(fp) :: MW_kg, fracNoHg0Dep REAL(fp) :: tmpFlx @@ -4602,7 +4533,6 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & LOGICAL :: EmisSpec, DepSpec ! Strings - CHARACTER(LEN=63) :: origUnit CHARACTER(LEN=255) :: errMsg, thisLoc ! Arrays @@ -4648,10 +4578,24 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & ENDIF !======================================================================= - ! Convert units to v/v dry + ! Convert units to [v/v dry] aka [mol/mol dry] !======================================================================= - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'v/v dry', RC, OrigUnit=OrigUnit ) + + ! Halt mixing timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Boundary layer mixing", RC ) + ENDIF + + ! Convert units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) ! Trap potential error IF ( RC /= GC_SUCCESS ) THEN @@ -4660,6 +4604,11 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + ! Start mixing timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Boundary layer mixing", RC ) + ENDIF + !======================================================================= ! Get pointers to the PARANOX loss fluxes. ! These are stored in diagnostics 'PARANOX_O3_DEPOSITION_FLUX' and @@ -4765,20 +4714,7 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & ! Add total emissions in the PBL to the EFLX array ! which tracks emission fluxes. Units are [kg/m2/s]. !------------------------------------------------------------------ - IF ( Input_Opt%ITS_A_CH4_SIM ) THEN - - ! CH4 emissions become stored in state_chm_mod.F90. - ! We use CH4_EMIS here instead of the HEMCO internal emissions - ! only to make sure that total CH4 emissions are properly defined - ! in a multi-tracer CH4 simulation. For a single-tracer simulation - ! and/or all other source types, we could use the HEMCO internal - ! values set above and would not need the code below. - ! Units are already in kg/m2/s. (ckeller, 10/21/2014) - ! - !%%% NOTE: MAYBE THIS CAN BE REMOVED SOON (bmy, 5/18/19)%%% - eflx(I,J,NA) = State_Chm%CH4_EMIS(I,J,NA) - - ELSE IF ( EmisSpec ) THEN ! Are there emissions for these species? + IF ( EmisSpec ) THEN ! Are there emissions for these species? ! Compute emissions for all other simulation tmpFlx = 0.0_fp @@ -4893,8 +4829,8 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & ! included emission from these surfaces and most field studies ! suggest Hg(0) emissions exceed deposition during sunlit hours. fracNoHg0Dep = MIN( State_Met%FROCEAN(I,J) + & - State_Met%FRSNO(I,J) + & - State_Met%FRLANDIC(I,J), 1e+0_fp) + State_Met%FRSNOW(I,J) + & + State_Met%FRLANDICE(I,J), 1e+0_fp) zeroHg0Dep = ( fracNoHg0Dep > 0e+0_fp ) IF ( zeroHg0Dep ) THEN @@ -5051,20 +4987,6 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & ! NOTE: we don't need to multiply by the ratio of TS_CONV / ! TS_CHEM, as the updating frequency for HISTORY is determined ! by the "frequency" setting in the "HISTORY.rc"input file. - ! The old bpch diagnostics archived the drydep due to chemistry - ! every chemistry timestep = 2X the dynamic timestep. So in - ! order to avoid double-counting the drydep flux from mixing, - ! you had to multiply by TS_CONV / TS_CHEM. - ! - ! ALSO NOTE: When comparing History output to bpch output, - ! you must use an updating frequency equal to the dynamic - ! timestep so that the drydep fluxes due to mixing will - ! be equivalent w/ the bpch output. It is also recommended to - ! turn off chemistry so as to be able to compare the drydep - ! fluxes due to mixing in bpch vs. History as an "apples-to- - ! apples" comparison. - ! - ! -- Bob Yantosca (yantosca@seas.harvard.edu) !----------------------------------------------------------------- IF ( State_Diag%Archive_DryDepMix .or. & State_Diag%Archive_DryDep ) THEN @@ -5104,8 +5026,21 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & !======================================================================= ! Unit conversion #2: Convert back to the original units !======================================================================= - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, & - State_Met, OrigUnit, RC ) + + ! Halt mixing timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Boundary layer mixing", RC ) + ENDIF + + ! Convert units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -5114,6 +5049,11 @@ SUBROUTINE Compute_Sflx_for_Vdiff( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + ! Start mixing timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Boundary layer mixing", RC ) + ENDIF + ! Cleanup IF ( ASSOCIATED( PNOxLoss_O3 ) ) DEALLOCATE( PNOxLoss_O3 ) IF ( ASSOCIATED( PNOxLoss_HNO3 ) ) DEALLOCATE( PNOxLoss_HNO3 ) diff --git a/GeosCore/hco_utilities_gc_mod.F90 b/GeosCore/hco_utilities_gc_mod.F90 index 3b6c301ab..3b3853099 100644 --- a/GeosCore/hco_utilities_gc_mod.F90 +++ b/GeosCore/hco_utilities_gc_mod.F90 @@ -238,7 +238,10 @@ SUBROUTINE LoadHcoValEmis ( Input_Opt, State_Grid, TrcID, AltBuffer ) Emis=TMP_Value ) ENDIF - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# LoadHcoValEmis/ImGrid: Loading", TrcID, PRESENT( AltBuffer ) + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# LoadHcoValEmis/ImGrid: Loading", & + TrcID, PRESENT( AltBuffer ) + ENDIF !$OMP END CRITICAL ! End of LIMGRID OMP Critical section @@ -302,7 +305,9 @@ SUBROUTINE LoadHcoValDep ( Input_Opt, State_Grid, TrcID ) !$OMP END CRITICAL ! End of LIMGRID OMP Critical section - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# LoadHcoValDep/ImGrid: Loading", TrcID + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# LoadHcoValDep/ImGrid: Loading", TrcID + ENDIF ENDIF #endif END SUBROUTINE LoadHcoValDep @@ -400,7 +405,11 @@ SUBROUTINE GetHcoValEmis ( Input_Opt, State_Grid, TrcID, I, J, L, Found, Emis, A ! Do not use GetHcoVal: load the entire chunk into memory ! Note: TrcID matches HcoID here. If not, remap the tracer ID to HEMCO ID below. - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# GetHcoValEmis/ImGrid: Attempting to load", TMP_TrcIDFldName, "was", LAST_TMP_REGRID_H2M, LAST_TMP_REGRID_H2Mb + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# GetHcoValEmis/ImGrid: Attempting to load", & + TMP_TrcIDFldName, "was", LAST_TMP_REGRID_H2M, & + LAST_TMP_REGRID_H2Mb + ENDIF IF ( TrcID > 0 ) THEN IF ( ASSOCIATED(HcoState%Spc(TrcID)%Emis%Val) ) THEN ! Present! Read in the data @@ -416,7 +425,9 @@ SUBROUTINE GetHcoValEmis ( Input_Opt, State_Grid, TrcID, I, J, L, Found, Emis, A TMP_HCO = 0.0_fp ! Clear the output first TMP_HCO(:,:,1:ZBND) = HcoState%Spc(TrcID)%Emis%Val(:,:,1:ZBND) - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# GetHcoValEmis/ImGrid: Read from HEMCO" + ! IF ( Input_Opt%Verbose ) THEN + ! WRITE(6,*) "# GetHcoValEmis/ImGrid: Read from HEMCO" + ! ENDIF ! Now perform the on-demand regrid CALL Regrid_HCO2MDL( Input_Opt, State_Grid, State_Grid_HCO, TMP_HCO, TMP_MDL_target, ZBND ) @@ -432,7 +443,10 @@ SUBROUTINE GetHcoValEmis ( Input_Opt, State_Grid, TrcID, I, J, L, Found, Emis, A LAST_TMP_REGRID_H2Mb = TMP_TrcIDFldName ENDIF - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# GetHcoValEmis/ImGrid: Regrid OK return", TMP_TrcIDFldName, PRESENT( AltBuffer ) + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# GetHcoValEmis/ImGrid: Regrid OK return", & + TMP_TrcIDFldName, PRESENT( AltBuffer ) + ENDIF ENDIF ! Associated ENDIF ! TrcID > 0 ELSE ! Already in buffer! Just read the pointer data @@ -531,7 +545,7 @@ SUBROUTINE GetHcoValDep ( Input_Opt, State_Grid, TrcID, I, J, L, Found, Dep ) IF( TMP_TrcIDFldName /= LAST_TMP_REGRID_H2Mb ) THEN ! Not already in buffer ! Do not use GetHcoVal: load the entire chunk into memory - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# GetHcoValDep/ImGrid: Attempting to load", TMP_TrcIDFldName, "was", LAST_TMP_REGRID_H2Mb + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# GetHcoValDep/ImGrid: Attempting to load", TMP_TrcIDFldName, "was", LAST_TMP_REGRID_H2Mb ! Note: TrcID matches HcoID here. If not, remap the tracer ID to HEMCO ID below. IF ( TrcID > 0 ) THEN IF ( ASSOCIATED(HcoState%Spc(TrcID)%Depv%Val) ) THEN ! Present! Read in the data @@ -543,7 +557,7 @@ SUBROUTINE GetHcoValDep ( Input_Opt, State_Grid, TrcID, I, J, L, Found, Dep ) TMP_HCO = 0.0_fp ! Clear the output first TMP_HCO(:,:,1) = HcoState%Spc(TrcID)%Depv%Val(:,:) - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# GetHcoValDep/ImGrid: Read from HEMCO" + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# GetHcoValDep/ImGrid: Read from HEMCO" ! Now perform the on-demand regrid ! Note deposition is surface layer, so L is always 1. Read ZBND = 1 @@ -555,7 +569,10 @@ SUBROUTINE GetHcoValDep ( Input_Opt, State_Grid, TrcID, I, J, L, Found, Dep ) Dep = TMP_MDLb(I,J,1) LAST_TMP_REGRID_H2Mb = TMP_TrcIDFldName - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# GetHcoValDep/ImGrid: Regrid OK return", TMP_TrcIDFldName + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# GetHcoValDep/ImGrid: Regrid OK return", & + TMP_TrcIDFldName + ENDIF ENDIF ENDIF ELSE ! Already in buffer! Just read the pointer data @@ -659,7 +676,7 @@ SUBROUTINE HCO_GC_EvalFld_3D ( Input_Opt, State_Grid, cName, Arr3D, RC, FOUND ) ! Check if cName is existing in the regrid buffer. !If not, regrid on-the-fly IF ( cName /= LAST_TMP_REGRID_H2M ) THEN - !IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_EvalFld_3D: Last regrid not equal, looking up field ", cName + !IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_EvalFld_3D: Last regrid not equal, looking up field ", cName ! Now retrieve data into the HEMCO temporary! ! The bdy is a slice to ensure safety @@ -669,7 +686,7 @@ SUBROUTINE HCO_GC_EvalFld_3D ( Input_Opt, State_Grid, cName, Arr3D, RC, FOUND ) ! be able to propagate the error above. IF ( RC /= GC_SUCCESS ) RETURN - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_EvalFld_3D: Lookup complete", cName, FND + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_EvalFld_3D: Lookup complete", cName, FND IF ( FND ) THEN @@ -682,7 +699,10 @@ SUBROUTINE HCO_GC_EvalFld_3D ( Input_Opt, State_Grid, cName, Arr3D, RC, FOUND ) ! ( Input_Opt, State_Grid, State_Grid_HCO, PtrIn, PtrOut, ZBND ) CALL Regrid_HCO2MDL( Input_Opt, State_Grid, State_Grid_HCO, TMP_HCO, Arr3D, ZBND ) - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_EvalFld_3D: Regrid complete, ", cName, " z-boundary", ZBND + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# HCO_GC_EvalFld_3D: Regrid complete, ", & + cName, " z-boundary", ZBND + ENDIF ! The output should be in Arr3D and ready to go. LAST_TMP_REGRID_H2M = cName @@ -694,7 +714,7 @@ SUBROUTINE HCO_GC_EvalFld_3D ( Input_Opt, State_Grid, cName, Arr3D, RC, FOUND ) Arr3D(:,:,1:ZBND) = TMP_MDL(:,:,1:ZBND) FND = .true. - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_EvalFld_3D: Last regrid equal, reading from buffer" + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_EvalFld_3D: Last regrid equal, reading from buffer" ENDIF ELSE !===================================================================== @@ -791,7 +811,7 @@ SUBROUTINE HCO_GC_EvalFld_2D ( Input_Opt, State_Grid, cName, Arr2D, RC, FOUND ) ! Check if cName is existing in the regrid buffer. If not, regrid on-the-fly IF ( cName /= LAST_TMP_REGRID_H2M ) THEN - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_EvalFld_2D: Last regrid not equal, looking up field ", cName + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_EvalFld_2D: Last regrid not equal, looking up field ", cName ! Now retrieve data into the HEMCO temporary! ! The bdy is a slice to ensure safety @@ -801,7 +821,7 @@ SUBROUTINE HCO_GC_EvalFld_2D ( Input_Opt, State_Grid, cName, Arr2D, RC, FOUND ) ! be able to propagate the error above. IF ( RC /= GC_SUCCESS ) RETURN - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_EvalFld_2D: Lookup complete", cName, FND + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_EvalFld_2D: Lookup complete", cName, FND ! If not found, return IF ( FND ) THEN @@ -814,7 +834,9 @@ SUBROUTINE HCO_GC_EvalFld_2D ( Input_Opt, State_Grid, cName, Arr2D, RC, FOUND ) ! Z-boundary is 1 because 2-D field. CALL Regrid_HCO2MDL( Input_Opt, State_Grid, State_Grid_HCO, TMP_HCO, TMP_MDL, 1 ) - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_EvalFld_2D: Regrid", cName, " complete" + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# HCO_GC_EvalFld_2D: Regrid", cName, " complete" + ENDIF ! Note that we cannot pass Arr2D to call above directly because it accepts a ! 3-D argument. So we regrid to the target dummy and copy @@ -829,7 +851,7 @@ SUBROUTINE HCO_GC_EvalFld_2D ( Input_Opt, State_Grid, cName, Arr2D, RC, FOUND ) Arr2D(:,:) = TMP_MDL(:,:,1) FND = .true. - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_EvalFld_2D: Last regrid equal, reading from buffer" + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_EvalFld_2D: Last regrid equal, reading from buffer" ENDIF ELSE !===================================================================== @@ -945,7 +967,7 @@ SUBROUTINE HCO_GC_GetPtr_2D ( Input_Opt, State_Grid, DctName, Ptr2D, RC, & ! Check if is existing in the regrid buffer. If not, regrid on-the-fly IF ( TMP_GetPtrFldName /= LAST_TMP_REGRID_H2M ) THEN - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Last regrid not equal, looking up field ", TMP_GetPtrFldName + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Last regrid not equal, looking up field ", TMP_GetPtrFldName ! For safety, overwrite the temporary LAST_TMP_REGRID_H2M = "_HCO_Ptr2D_TBD" @@ -960,9 +982,9 @@ SUBROUTINE HCO_GC_GetPtr_2D ( Input_Opt, State_Grid, DctName, Ptr2D, RC, & ! If not found, return IF ( iFOUND .and. iFILLED ) THEN - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Lookup complete", TMP_GetPtrFldName, iFOUND + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Lookup complete", TMP_GetPtrFldName, iFOUND - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Dim Debug", SIZE(TMP_HCO, 1), SIZE(TMP_HCO, 2), SIZE(TMP_Ptr2D, 1), SIZE(TMP_Ptr2D, 2) + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Dim Debug", SIZE(TMP_HCO, 1), SIZE(TMP_HCO, 2), SIZE(TMP_Ptr2D, 1), SIZE(TMP_Ptr2D, 2) ! Copy data to the temporary TMP_HCO(:,:,1) = TMP_Ptr2D(:,:) @@ -972,7 +994,10 @@ SUBROUTINE HCO_GC_GetPtr_2D ( Input_Opt, State_Grid, DctName, Ptr2D, RC, & ! Z-boundary is 1 because 2-D field. CALL Regrid_HCO2MDL( Input_Opt, State_Grid, State_Grid_HCO, TMP_HCO, TMP_MDL, 1 ) - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Regrid", TMP_GetPtrFldName, "complete" + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# HCO_GC_GetPtr_2D: Regrid", TMP_GetPtrFldName, & + "complete" + ENDIF ! Free the pointer TMP_Ptr2D => NULL() @@ -994,7 +1019,7 @@ SUBROUTINE HCO_GC_GetPtr_2D ( Input_Opt, State_Grid, DctName, Ptr2D, RC, & iFOUND = .true. iFILLED = .true. - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Last regrid equal, pointing to buffer" + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Last regrid equal, pointing to buffer" ENDIF ELSE ! Not within the intermediate grid code path @@ -1110,7 +1135,7 @@ SUBROUTINE HCO_GC_GetPtr_3D ( Input_Opt, State_Grid, DctName, Ptr3D, RC, & ! Check if is existing in the regrid buffer. If not, regrid on-the-fly IF ( TMP_GetPtrFldName /= LAST_TMP_REGRID_H2M ) THEN - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetPtr_3D: Last regrid not equal, looking up field ", TMP_GetPtrFldName + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetPtr_3D: Last regrid not equal, looking up field ", TMP_GetPtrFldName ! For safety, overwrite the temporary LAST_TMP_REGRID_H2M = "_HCO_Ptr3D_TBD" @@ -1128,7 +1153,7 @@ SUBROUTINE HCO_GC_GetPtr_3D ( Input_Opt, State_Grid, DctName, Ptr3D, RC, & ! Get z-boundary ZBND = MAX(1, SIZE(TMP_Ptr3D, 3)) - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetPtr_3D: Lookup complete", TMP_GetPtrFldName, iFOUND, ZBND + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetPtr_3D: Lookup complete", TMP_GetPtrFldName, iFOUND, ZBND ! Copy data to the temporary TMP_HCO(:,:,1:ZBND) = TMP_Ptr3D(:,:,1:ZBND) @@ -1138,7 +1163,10 @@ SUBROUTINE HCO_GC_GetPtr_3D ( Input_Opt, State_Grid, DctName, Ptr3D, RC, & ! Z-boundary is 1 because 2-D field. CALL Regrid_HCO2MDL( Input_Opt, State_Grid, State_Grid_HCO, TMP_HCO, TMP_MDL, ZBND ) - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetPtr_3D: Regrid", TMP_GetPtrFldName, "complete" + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# HCO_GC_GetPtr_3D: Regrid", & + TMP_GetPtrFldName, "complete" + ENDIF ! Free the pointer TMP_Ptr3D => NULL() @@ -1161,7 +1189,7 @@ SUBROUTINE HCO_GC_GetPtr_3D ( Input_Opt, State_Grid, DctName, Ptr3D, RC, & iFOUND = .true. iFILLED = .true. - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Last regrid equal, pointing to buffer" + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetPtr_2D: Last regrid equal, pointing to buffer" ENDIF ELSE ! Not within the intermediate grid code path @@ -1291,7 +1319,7 @@ SUBROUTINE HCO_GC_GetDiagn_3D ( Input_Opt, State_Grid, DiagnName, & IF( .not. ( (.not. PRESENT( AltBuffer ) .and. TMP_DiagnFldName == LAST_TMP_REGRID_H2M) .or. & ( PRESENT( AltBuffer ) .and. TMP_DiagnFldName == LAST_TMP_REGRID_H2Mb) ) ) THEN ! Not already in buffer - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetDiagn_3D: Last regrid not equal, looking up field ", TMP_DiagnFldName + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetDiagn_3D: Last regrid not equal, looking up field ", TMP_DiagnFldName ! Now retrieve data into the HEMCO temporary! ! Note that the data is in sp and has to be promoted for regridding, @@ -1308,14 +1336,17 @@ SUBROUTINE HCO_GC_GetDiagn_3D ( Input_Opt, State_Grid, DiagnName, & ! Get z-boundary ZBND = MAX(1, SIZE(TMP_Ptr3D, 3)) - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetDiagn_3D: Lookup complete", TMP_DiagnFldName, ZBND + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetDiagn_3D: Lookup complete", TMP_DiagnFldName, ZBND ! Copy data to the temporary TMP_HCO(:,:,1:ZBND) = TMP_Ptr3D(:,:,1:ZBND) CALL Regrid_HCO2MDL( Input_Opt, State_Grid, State_Grid_HCO, TMP_HCO, TMP_MDL, ZBND ) - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetDiagn_3D: Regrid", TMP_DiagnFldName, "complete", PRESENT(AltBuffer) + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# HCO_GC_GetDiagn_3D: Regrid", & + TMP_DiagnFldName, "complete", PRESENT(AltBuffer) + ENDIF ! Free the pointer TMP_Ptr3D => NULL() @@ -1456,7 +1487,7 @@ SUBROUTINE HCO_GC_GetDiagn_2D ( Input_Opt, State_Grid, DiagnName, & IF( .not. ( (.not. PRESENT( AltBuffer ) .and. TMP_DiagnFldName == LAST_TMP_REGRID_H2M) .or. & ( PRESENT( AltBuffer ) .and. TMP_DiagnFldName == LAST_TMP_REGRID_H2Mb) ) ) THEN ! Not already in buffer - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetDiagn_2D: Last regrid not equal, looking up field ", TMP_DiagnFldName + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetDiagn_2D: Last regrid not equal, looking up field ", TMP_DiagnFldName ! Now retrieve data into the HEMCO temporary! ! Note that the data is in sp and has to be promoted for regridding, @@ -1470,14 +1501,17 @@ SUBROUTINE HCO_GC_GetDiagn_2D ( Input_Opt, State_Grid, DiagnName, & ! For safety, overwrite the temporary LAST_TMP_REGRID_H2M = "_HCO_Dgn2D_TBD" - ! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetDiagn_2D: Lookup complete", TMP_DiagnFldName + ! IF ( Input_Opt%Verbose ) WRITE(6,*) "# HCO_GC_GetDiagn_2D: Lookup complete", TMP_DiagnFldName ! Copy data to the temporary TMP_HCO(:,:,1) = TMP_Ptr2D(:,:) CALL Regrid_HCO2MDL( Input_Opt, State_Grid, State_Grid_HCO, TMP_HCO, TMP_MDL, 1 ) - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) WRITE(6,*) "# HCO_GC_GetDiagn_2D: Regrid", TMP_DiagnFldName, "complete" + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*) "# HCO_GC_GetDiagn_2D: Regrid", & + TMP_DiagnFldName, "complete" + ENDIF ! Free the pointer TMP_Ptr2D => NULL() @@ -1549,7 +1583,8 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE Time_Mod, ONLY : Expand_Date - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod #ifdef APM USE APM_Init_Mod, ONLY : APMIDS #endif @@ -1579,6 +1614,7 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & ! !LOCAL VARIABLES: ! INTEGER :: I, J, L, M, N ! lon, lat, lev, indexes + INTEGER :: previous_units LOGICAL :: FOUND ! Found in restart file? CHARACTER(LEN=60) :: Prefix ! utility string CHARACTER(LEN=255) :: LOC ! routine location @@ -1586,7 +1622,6 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & CHARACTER(LEN=255) :: v_name ! variable name REAL(fp) :: MW_g ! species molecular weight REAL(fp) :: SMALL_NUM ! small number threshold - CHARACTER(LEN=63) :: OrigUnit ! Temporary arrays and pointers REAL*4, TARGET :: Temp2D(State_Grid%NX,State_Grid%NY) @@ -1596,10 +1631,7 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & REAL*4, POINTER :: Ptr3D(:,:,:) ! For Hg simulation - INTEGER :: Num_Hg_Categories - INTEGER :: Total_Hg_Id CHARACTER(LEN=60) :: HgSpc - CHARACTER(LEN=4), POINTER :: Hg_Cat_Name(:) ! Default background concentration REAL(fp) :: Background_VV @@ -1619,7 +1651,6 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & Ptr2D => NULL() Ptr3D => NULL() SpcInfo => NULL() - Hg_Cat_Name => NULL() ! Name of this routine LOC = ' -> at Get_GC_Restart (in GeosCore/hco_utilities_gc_mod.F90)' @@ -1865,22 +1896,35 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & #endif ENDIF + ! Set the initial unit flags + State_Chm%Species(N)%Units = KG_SPECIES_PER_KG_DRY_AIR + ! Free pointer SpcInfo => NULL() ENDDO - ! Set species units - State_Chm%Spc_Units = 'kg/kg dry' - ! If in debug mode, print out species min and max in [molec/cm3] - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN ! Convert units PRINT *, " " PRINT *, "Species min and max in molec/cm3" - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'molec/cm3', RC, OrigUnit=OrigUnit ) + + ! Halt HEMCO timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "HEMCO", RC ) + ENDIF + + ! Convert units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = MOLECULES_SPECIES_PER_CM3, & + previous_units = previous_units, & + RC = RC ) ! Trap error IF ( RC /= GC_SUCCESS ) THEN @@ -1889,6 +1933,11 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Start HEMCO timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "HEMCO", RC ) + ENDIF + ! Print values DO N = 1, State_Chm%nSpecies SpcInfo => State_Chm%SpcData(N)%Info @@ -1900,9 +1949,19 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & SpcInfo => NULL() ENDDO + ! Halt HEMCO timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "HEMCO", RC ) + ENDIF + ! Convert units back - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) ! Trap error IF ( RC /= GC_SUCCESS ) THEN @@ -1911,6 +1970,10 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Start HEMCO timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "HEMCO", RC ) + ENDIF ENDIF !========================================================================= @@ -2349,17 +2412,6 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & 230 FORMAT( a24, ' not found in restart file, set to zero') 240 FORMAT( a24, ': ', es15.9, 1x, a4) - ! Print note that variables are initialized to zero if not - ! found (currently only happens in tagged Hg simulation) - IF ( Input_Opt%LSPLIT ) THEN - WRITE( 6, 250 ) -250 FORMAT( /, 'NOTE: all variables not found in restart ', & - 'are initialized to zero') - ENDIF - - ! Free pointers for Hg indexing - Hg_Cat_Name => NULL() - ENDIF !================================================================= @@ -2370,7 +2422,7 @@ SUBROUTINE Get_GC_Restart( Input_Opt, State_Chm, State_Grid, & Spc => NULL() ! Mark end of section in log - IF ( Input_Opt%LPRT .AND. Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose .AND. Input_Opt%amIRoot ) THEN CALL DEBUG_MSG('### DONE GET_GC_RESTART') ENDIF WRITE( 6, '(a)' ) REPEAT( '=', 79 ) @@ -2399,7 +2451,7 @@ SUBROUTINE Get_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, & USE HCO_State_GC_Mod, ONLY : HcoState USE Input_Opt_Mod, ONLY : OptInput USE PhysConstants, ONLY : AIRMW - USE Species_Mod, ONLY : Species, SpcConc + USE Species_Mod, ONLY : Species USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState @@ -2443,7 +2495,6 @@ SUBROUTINE Get_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, & ! Temporary arrays and pointers REAL*4, TARGET :: Temp3D(State_Grid%NX,State_Grid%NY,State_Grid%NZ) REAL*4, POINTER :: Ptr3D(:,:,:) - TYPE(SpcConc), POINTER :: Spc(:) ! Objects TYPE(Species), POINTER :: SpcInfo @@ -2463,9 +2514,6 @@ SUBROUTINE Get_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, & Ptr3D => NULL() SpcInfo => NULL() - ! Point to species array [kg/kg] - Spc => State_Chm%Species - ! Name of this routine LOC = ' -> at Get_Boundary_Conditions (in GeosCore/hco_utilities_gc_mod.F90)' @@ -2486,7 +2534,7 @@ SUBROUTINE Get_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, & !================================================================= ! Print header for min/max concentration to log - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .AND. (FIRST .or. Input_Opt%Verbose) ) THEN WRITE( 6, 110 ) 110 FORMAT( 'Min and Max of each species in BC file [mol/mol]:' ) ENDIF @@ -2521,7 +2569,7 @@ SUBROUTINE Get_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, & ! Print the min & max of each species as it is read from ! the BC file in mol/mol if debug is turned on in geoschem_config.yml IF ( Input_Opt%amIRoot ) THEN - IF ( FIRST .or. Input_Opt%LPRT ) THEN + IF ( FIRST .or. Input_Opt%Verbose ) THEN WRITE( 6, 120 ) N, TRIM( SpcInfo%Name ), & MINVAL( Ptr3D ), MAXVAL( Ptr3D ) 120 FORMAT( 'Species ', i3, ', ', a8, ': Min = ', es15.9, & @@ -2543,7 +2591,7 @@ SUBROUTINE Get_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, & ! Print to log if debug is turned on in geoschem_config.yml IF ( Input_Opt%amIRoot ) THEN - IF ( FIRST .or. Input_Opt%LPRT ) THEN + IF ( FIRST .or. Input_Opt%Verbose ) THEN WRITE( 6, 130 ) N, TRIM( SpcInfo%Name ), SpcInfo%BackgroundVV 130 FORMAT('Species ', i3, ', ', a9, ': Use background = ', es15.9) ENDIF @@ -2555,52 +2603,17 @@ SUBROUTINE Get_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, & ENDIF - - ! Loop over grid boxes and apply BCs to the specified buffer zone - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L ) - DO L = 1, State_Grid%NZ - - ! First loop over all latitudes of the nested domain - DO J = 1, State_Grid%NY - - ! West BC - DO I = 1, State_Grid%WestBuffer - Spc(N)%Conc(I,J,L) = State_Chm%BoundaryCond(I,J,L,N) - ENDDO - - ! East BC - DO I = (State_Grid%NX-State_Grid%EastBuffer)+1, State_Grid%NX - Spc(N)%Conc(I,J,L) = State_Chm%BoundaryCond(I,J,L,N) - ENDDO - - ENDDO - - ! Then loop over the longitudes of the nested domain - DO I = 1+State_Grid%WestBuffer,(State_Grid%NX-State_Grid%EastBuffer) - - ! South BC - DO J = 1, State_Grid%SouthBuffer - Spc(N)%Conc(I,J,L) = State_Chm%BoundaryCond(I,J,L,N) - ENDDO - - ! North BC - DO J = (State_Grid%NY-State_Grid%NorthBuffer)+1, State_Grid%NY - Spc(N)%Conc(I,J,L) = State_Chm%BoundaryCond(I,J,L,N) - ENDDO - ENDDO - - ENDDO - !OMP END PARALLEL DO - ! Free pointer SpcInfo => NULL() - ENDDO + ! Each time the boundary conditions are read, they have no longer been perturbed + ! This value is sometimes set to True in set_boundary_conditions_mod.F90 + IF ( ( Input_Opt%ITS_A_CH4_SIM .OR. Input_Opt%ITS_A_CARBON_SIM ) .AND. & + Input_Opt%DoPerturbCH4BoundaryConditions ) THEN + State_Chm%IsCH4BCPerturbed = .FALSE. + ENDIF - ! Free pointer - Spc => NULL() + ENDDO ! Reset FIRST flag FIRST = .FALSE. @@ -2608,8 +2621,7 @@ SUBROUTINE Get_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, & ! Echo output IF ( Input_Opt%amIRoot ) THEN STAMP = TIMESTAMP_STRING() - WRITE( 6, 140 ) STAMP -140 FORMAT( 'GET_BOUNDARY_CONDITIONS: Done applying BCs at ', a ) + WRITE( 6, * ) 'GET_BOUNDARY_CONDITIONS: Done reading BCs at ', STAMP, ' using ', HHMMSS, t_index ENDIF END SUBROUTINE Get_Boundary_Conditions diff --git a/GeosCore/hcoi_gc_diagn_mod.F90 b/GeosCore/hcoi_gc_diagn_mod.F90 index 9c774398c..848fbab36 100644 --- a/GeosCore/hcoi_gc_diagn_mod.F90 +++ b/GeosCore/hcoi_gc_diagn_mod.F90 @@ -33,10 +33,6 @@ MODULE HCOI_GC_Diagn_Mod ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_Mod - USE DIAG_Mod -#endif USE HCO_Diagn_Mod USE HCO_Error_Mod @@ -134,718 +130,16 @@ SUBROUTINE HCOI_GC_Diagn_Init( Input_Opt, HcoState, ExtState, RC ) ThisLoc = & ' -> at HCOI_GC_Diagn_Init (in module GeosCore/hcoi_gc_diagn_mod.F90)' - !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - !%%%% NOTE: Emissions for CH4 specialty simulations are passed to %%%% - !%%%% global_ch4_mod.F90 via HEMCO diagnostics, and not directly %%%% - !%%%% from the HEMCO state pointer. Therefore, we need to make %%%% - !%%%% sure that routine DIAGN_CH4 is outside the BPCH_DIAG #if %%%% - !%%%% block. -- Bob Yantosca (25 Jan 2018) %%%% - !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - CALL Diagn_CH4( Input_Opt, HcoState, ExtState, RC ) - - ! Trap potential errors - IF ( RC /= HCO_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Diagn_CH4"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - -#ifdef BPCH_DIAG - !======================================================================= - ! Define manual diagnostics - !======================================================================= - CALL Diagn_Dust ( Input_Opt, HcoState, ExtState, RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - #ifdef TOMAS - CALL Diagn_TOMAS ( Input_Opt, HcoState, ExtState, RC ) + CALL Diagn_TOMAS( Input_Opt, HcoState, ExtState, RC ) IF ( RC /= HCO_SUCCESS ) RETURN #endif -#endif + ! Return RC = HCO_SUCCESS END SUBROUTINE HCOI_GC_Diagn_Init !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Diagn_CH4 -! -! !DESCRIPTION: Subroutine Diagn\_CH4 initializes diagnostics for the -! CH4 simulation (ND58). -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Diagn_CH4( Input_Opt, HcoState, ExtState, RC ) -! -! !USES: -! - USE HCO_ExtList_Mod, ONLY : GetExtNr - USE HCO_State_Mod, ONLY : HCO_State - USE HCO_State_Mod, ONLY : HCO_GetHcoID - USE HCOX_State_Mod, ONLY : Ext_State - USE Input_Opt_Mod, ONLY : OptInput - USE State_Chm_Mod, ONLY : Ind_ -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input opts - TYPE(HCO_State), POINTER :: HcoState ! HEMCO state object - TYPE(EXT_State), POINTER :: ExtState ! Extensions state object - INTEGER, INTENT(INOUT) :: RC ! Failure or success -! -! !REMARKS: -! Split off code from HCOI_GC_Diagn_Init into smaller routines in order to -! make the code more manageable. -! -! Biomass diagnostics are defined in routine Diagn_Biomass. -!\\ -!\\ -! CH4 diagnostics need to be defined even if ND58 is turned off because -! the diagnostics are also being used to write CH4 emissions from the -! individual sources (gas, coal, etc.) into STT (in global\_ch4\_mod.F90). -! The categories defined here need to match the ones specified in the -! HEMCO configuration file. -! -! !REVISION HISTORY: -! 13 Sep 2014 - C. Keller - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: ExtNr, id_CH4, Cat, HcoID, N - CHARACTER(LEN=31) :: DiagnName - CHARACTER(LEN=255) :: MSG - CHARACTER(LEN=255) :: LOC = 'DIAGN_CH4 (hcoi_gc_diagn_mod.F90)' - - !======================================================================= - ! Define ND58 diagnostics (CH4 emissions) - !======================================================================= - - ! Assume success - RC = HCO_SUCCESS - - ! Exit if the CH4 simulation is not selected - IF ( ( .not. Input_Opt%ITS_A_CH4_SIM ) .and. & - ( .not. Input_Opt%ITS_A_CARBON_SIM ) ) RETURN - - ! Get default HEMCO species ID for CH4 - id_CH4 = HCO_GetHcoID( 'CH4', HcoState ) - - ! Extension number is zero (HEMCO core) until defined otherwise - ExtNr = 0 - - !----------------------------------------------------------------- - ! %%%%% CH4 from oil (Category 1 or species CH4_OIL) %%%%% - !----------------------------------------------------------------- - - ! Check if tagged CH4 simulation - ! Otherwise, use CH4 category 1 emissions - Cat = 1 - HcoID = HCO_GetHcoID( 'CH4_OIL', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_OIL' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !----------------------------------------------------------------- - ! %%%%% CH4 from natural gas (Category 2 or species CH4_GAS) %%%%% - !----------------------------------------------------------------- - - ! Check if tagged CH4 simulation - ! Otherwise, use CH4 category 1 emissions - Cat = 2 - HcoID = HCO_GetHcoID( 'CH4_GAS', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_GAS' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !---------------------------------------------------------- - ! %%%%% CH4 from coal (Category 3 or species CH4_COL) %%%%% - !---------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 3 - HcoID = HCO_GetHcoID( 'CH4_COL', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_COAL' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !--------------------------------------------------------------- - ! %%%%% CH4 from livestock (Category 4 or species CH4_LIV) %%%%% - !--------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 4 - HcoID = HCO_GetHcoID( 'CH4_LIV', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_LIVESTOCK' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !--------------------------------------------------------------- - ! %%%%% CH4 from landfills (Category 5 or species CH4_LDF) %%%%% - !--------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 5 - HcoID = HCO_GetHcoID( 'CH4_LDF', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_LANDFILLS' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !--------------------------------------------------------------- - ! %%%%% CH4 from wastewater (Category 6 or species CH4_WST) %%%%% - !--------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 6 - HcoID = HCO_GetHcoID( 'CH4_WST', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_WASTEWATER' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !--------------------------------------------------------------- - ! %%%%% CH4 from rice (Category 7 or species CH4_RIC) %%%%% - !--------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 7 - HcoID = HCO_GetHcoID( 'CH4_RIC', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_RICE' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !------------------------------------------------------------------------- - ! %%%%% CH4 from other anth. sources (Category 8 or species CH4_OTA) %%%%% - !------------------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 8 - HcoID = HCO_GetHcoID( 'CH4_OTA', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_ANTHROTHER' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !------------------------------------------------------------------------- - ! %%%%% CH4 from biomass burning (Category 9 or species CH4_BBN) %%%%% - !------------------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 9 - HcoID = HCO_GetHcoID( 'CH4_BBN', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_BIOMASS' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !------------------------------------------------------------------------- - ! %%%%% CH4 from wetlands (Category 10 or species CH4_WTL) %%%%% - !------------------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 10 - HcoID = HCO_GetHcoID( 'CH4_WTL', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_WETLAND' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !------------------------------------------------------------------------- - ! %%%%% CH4 from seeps (Category 11 or species CH4_SEE) %%%%% - !------------------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 11 - HcoID = HCO_GetHcoID( 'CH4_SEE', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_SEEPS' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !------------------------------------------------------------------------- - ! %%%%% CH4 from lakes (Category 12 or species CH4_LAK) %%%%% - !------------------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 12 - HcoID = HCO_GetHcoID( 'CH4_LAK', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_LAKES' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !------------------------------------------------------------------------- - ! %%%%% CH4 from termites (Category 13 or species CH4_TER) %%%%% - !------------------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 13 - HcoID = HCO_GetHcoID( 'CH4_TER', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_TERMITES' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - !------------------------------------------------------------------------- - ! %%%%% CH4 from soil absorption (Category 14 or species CH4_SAB) %%%%% - !------------------------------------------------------------------------- - - ! Check if tagged CH4 simulation - Cat = 14 - HcoID = HCO_GetHcoID( 'CH4_SAB', HcoState ) - IF ( HcoID <= 0 ) THEN - HcoID = id_CH4 - ENDIF - - IF ( HcoID > 0 ) THEN - - ! Create diagnostic container - DiagnName = 'CH4_SOILABSORB' - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg/m2/s', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDIF - - END SUBROUTINE Diagn_CH4 -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Diagn_Dust -! -! !DESCRIPTION: Subroutine Diagn\_Dust initializes diagnostics for the -! mineral dust aerosols (ND06). -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Diagn_Dust( Input_Opt, HcoState, ExtState, RC ) -! -! !USES: -! - USE CMN_SIZE_Mod, ONLY : NDSTBIN - USE HCO_ExtList_Mod, ONLY : GetExtNr - USE HCO_State_Mod, ONLY : HCO_State - USE HCOX_State_Mod, ONLY : Ext_State - USE Input_Opt_Mod, ONLY : OptInput -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input opts - TYPE(HCO_State), POINTER :: HcoState ! HEMCO state object - TYPE(EXT_State), POINTER :: ExtState ! Extensions state object - INTEGER, INTENT(INOUT) :: RC ! Failure or success -! -! !REMARKS: -! Split off code from HCOI_GC_Diagn_Init into smaller routines in order to -! make the code more manageable. -! -! !REVISION HISTORY: -! 20 Aug 2014 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - LOGICAL :: Is_DustDead - LOGICAL :: Is_DustGinoux - INTEGER :: ExtNr, Cat, HcoID, I, N - CHARACTER(LEN=1) :: ISTR1 - CHARACTER(LEN=2) :: ISTR2 - CHARACTER(LEN=15) :: SpcName - CHARACTER(LEN=31) :: DiagnName - CHARACTER(LEN=255) :: MSG - CHARACTER(LEN=255) :: LOC = 'DIAGN_DUST (hcoi_gc_diagn_mod.F90)' - - !======================================================================= - ! DIAGN_DUST begins here! - !======================================================================= - - ! Assume success - RC = HCO_SUCCESS - -#ifdef BPCH_DIAG - - ! Exit if we are doing a specialty simulation w/o dust - IF ( ( .not. Input_Opt%ITS_A_FULLCHEM_SIM ) .and. & - ( .not. Input_Opt%ITS_AN_AEROSOL_SIM ) ) THEN - RETURN - ENDIF - - ! Now use local LOGICAL variables to save ExtState%DustDead and - ! ExtState%DustGinoux. This will make sure these variables are - ! cast to LOGICAL, so that we can compare them in the same IF - ! statement. Otherwise GNU Fortran will choke. (bmy, 10/25/16) - Is_DustDead = ( ExtState%DustDead > 0 ) - Is_DustGinoux = ( ExtState%DustGinoux > 0 ) - - ! Define diagnostics if dust is used - IF ( Input_Opt%ND06 > 0 ) THEN - - ! Get Ext. Nr - IF ( Is_DustDead ) THEN - ExtNr = GetExtNr( HcoState%Config%ExtList, 'DustDead' ) - Cat = -1 - ELSEIF ( Is_DustGinoux ) THEN - ExtNr = GetExtNr( HcoState%Config%ExtList, 'DustGinoux' ) - Cat = -1 - ELSE - ! Use offline dust emissions - ExtNr = 0 - Cat = CATEGORY_NATURAL - ENDIF - - ! Do for each dust bin - DO I = 1, NDSTBIN - -#ifdef TOMAS - - ! Get species name (i.e. DUST1 .. DUST40) for TOMAS simulatiosn - IF ( I < 10 ) THEN - WRITE( ISTR1,'(i1)' ) I - SpcName = 'DUST' // ISTR1 - ELSE - WRITE( ISTR2,'(i2)' ) I - SpcName = 'DUST' // ISTR2 - ENDIF -#else - - ! Get species name (i.e. DST1 .. DST4) for non TOMAS simualtions - WRITE( ISTR1,'(i1)' ) I - SpcName = 'DST' // ISTR1 - -#endif - - DiagnName = 'AD06_' // TRIM( SpcName ) - - ! HEMCO species ID - HcoID = GetHemcoId( TRIM( SpcName ), HcoState, LOC, RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - - ! Create diagnostic container - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = Cat, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - - ENDDO - - ! Add diagnostics for dust alkalinity - IF ( Input_Opt%LDSTUP ) THEN - - ! Get Ext. Nr of used extension - ExtNr = GetExtNr( HcoState%Config%ExtList, 'DustAlk' ) - IF ( ExtNr <= 0 ) THEN - CALL HCO_Error( 'Cannot find dust alk extension', RC, & - THISLOC=LOC ) - RETURN - ENDIF - - ! Do for each dust bin - DO I = 1, NDSTBIN - - ! Get species name (i.e. DSTAL1 .. DSTAL4) - WRITE( ISTR1,'(i1)' ) I - SpcName = 'DSTAL' // ISTR1 - DiagnName = 'AD06_' // TRIM( SpcName ) - - ! HEMCO species ID - HcoID = GetHemcoId( TRIM( SpcName ), HcoState, LOC, RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - - ! Create diagnostic container - CALL Diagn_Create( HcoState = HcoState, & - cName = TRIM( DiagnName ), & - ExtNr = ExtNr, & - Cat = -1, & - Hier = -1, & - HcoID = HcoID, & - SpaceDim = 2, & - LevIDx = -1, & - OutUnit = 'kg', & - COL = HcoState%Diagn%HcoDiagnIDManual, & - AutoFill = 1, & - RC = RC ) - IF ( RC /= HCO_SUCCESS ) RETURN - ENDDO - ENDIF - - ENDIF -#endif - - END SUBROUTINE Diagn_Dust -!EOC #ifdef TOMAS !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -901,8 +195,6 @@ SUBROUTINE Diagn_TOMAS( Input_Opt, HcoState, ExtState, RC ) ! Assume success RC = HCO_SUCCESS -#ifdef BPCH_DIAG - ! Get default HEMCO species ID's id_BCPI = HCO_GetHcoID( 'BCPI', HcoState ) id_BCPO = HCO_GetHcoID( 'BCPO', HcoState ) @@ -1215,7 +507,6 @@ SUBROUTINE Diagn_TOMAS( Input_Opt, HcoState, ExtState, RC ) CALL GC_Error( Msg, RC, Loc ) RETURN ENDIF -#endif END SUBROUTINE Diagn_TOMAS !EOC diff --git a/GeosCore/initialize.F90 b/GeosCore/initialize.F90 deleted file mode 100644 index 8fd15b9c4..000000000 --- a/GeosCore/initialize.F90 +++ /dev/null @@ -1,138 +0,0 @@ -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !ROUTINE: initialize.F90 -! -! !DESCRIPTION: Subroutine INITIALIZE does the following: -! -! \begin{enumerate} -! \item Zeroes globally defined GEOS-CHEM variables. -! \item Zeroes accumulating diagnostic arrays. -! \item Resets certain year/month/day and counter variables used -! in GEOS-Chem diagnostic subroutines. -! \end{enumerate} -! -! !INTERFACE: -! -SUBROUTINE INITIALIZE( Input_Opt, State_Grid, IFLAG, RC ) -! -! !USES: -! - USE CMN_DIAG_MOD - USE DIAG_MOD - USE ErrCode_Mod - USE ERROR_MOD - USE Input_Opt_Mod, ONLY : OptInput - USE Precision_Mod - USE State_Grid_Mod, ONLY : GrdState - USE TIME_MOD - - IMPLICIT NONE -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - - ! If IFLAG=1, zero global CTM arrays - ! If IFLAG=2, zero accumulating diagnostic arrays - ! If IFLAG=3, zero accumulating diagnostic counters - INTEGER, INTENT(IN) :: IFLAG -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REMARKS: -! Eventually we will fold this into "diag_mod.f" in a cleaner, -! more consistent fashion. Think about this later (bmy, 11/14/02) -! -! !REVISION HISTORY: -! 15 Jun 1998 - M. Prather - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - !================================================================= - ! INITIALIZE begins here! - !================================================================= - - ! Assume success - RC = GC_SUCCESS - - ! Error condition if IFLAG does not equal 2, or 3! - IF ( IFLAG < 2 .or. IFLAG > 3 ) THEN - CALL ERROR_STOP( 'Invalid IFLAG!', 'initialize.f' ) - ENDIF - - !================================================================= - ! If IFLAG=2 then zero the accumulating arrays - !================================================================= - IF ( IFLAG == 2 ) THEN - - ! Allocatable arrays are zeroed only if their - ! respective diagnostics are turned on (bmy, 2/17/00) - -#ifdef TOMAS - !------------------------------ - ! TOMAS-specific diagnostics - !------------------------------ - IF ( ND44 > 0 ) AD44 = 0e0 ! netcdf DRYDEP diag group - - IF ( ND59 > 0 ) THEN - AD59_NUMB = 0e0 - AD59_SULF = 0e0 - AD59_SALT = 0e0 - AD59_ECIL = 0e0 - AD59_ECOB = 0e0 - AD59_OCIL = 0e0 - AD59_OCOB = 0e0 - AD59_DUST = 0e0 - ENDIF - - IF ( ND60 > 0 ) THEN - AD60_COND = 0e0 - AD60_COAG = 0e0 - AD60_NUCL = 0e0 - AD60_AQOX = 0e0 - AD60_ERROR = 0e0 - AD60_SOA = 0e0 - ENDIF - - IF ( ND61 > 0 ) AD61 = 0e0 -#endif - - ! Echo output - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, '(a)' ) ' - INITIALIZE: Diag arrays zeroed!' - ENDIF - ENDIF - - !================================================================= - ! If IFLAG=3 then zero the counter variables & arrays - !================================================================= - IF ( IFLAG == 3 ) THEN - - ! Now reset timesteps here for now - CALL SET_CT_CHEM( RESET=.TRUE. ) - CALL SET_CT_RAD ( RESET=.TRUE. ) - CALL SET_CT_CONV( RESET=.TRUE. ) - CALL SET_CT_DYN( RESET=.TRUE. ) - CALL SET_CT_EMIS( RESET=.TRUE. ) - CALL SET_CT_DIAG( RESET=.TRUE. ) - - ! Echo output - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, '(a)' ) ' - INITIALIZE: Diag counters zeroed!' - ENDIF - ENDIF - -END SUBROUTINE INITIALIZE -!EOC -#endif diff --git a/GeosCore/input_mod.F90 b/GeosCore/input_mod.F90 index 9b8f58f8f..15d0a6e48 100644 --- a/GeosCore/input_mod.F90 +++ b/GeosCore/input_mod.F90 @@ -170,16 +170,6 @@ SUBROUTINE Read_Input_File( Input_Opt, State_Grid, RC ) RETURN ENDIF - ! Passive Species settigns (if any) - CALL Config_PassiveSpecies( Config, Input_Opt, RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error in "Config_PassiveSpecies"!' - CALL GC_Error( errMsg, RC, thisLoc ) - CALL QFYAML_CleanUp( Config ) - CALL QFYAML_CleanUp( ConfigAnchored ) - RETURN - ENDIF - ! Convection and PBL mixing settings CALL Config_Convection_Mixing( Config, Input_Opt, RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -266,7 +256,6 @@ SUBROUTINE Read_Input_File( Input_Opt, State_Grid, RC ) ENDIF ENDIF - ! CO2/carbon simulation settings IF ( Input_Opt%Its_A_CO2_Sim .or. Input_Opt%Its_A_Carbon_Sim ) THEN CALL Config_CO2( Config, Input_Opt, RC ) @@ -330,65 +319,6 @@ SUBROUTINE Read_Input_File( Input_Opt, State_Grid, RC ) RETURN ENDIF -#ifdef BPCH_DIAG - ! GAMAP metadata files - ! (Skip if we are connecting to an external model) - CALL Config_Gamap( Config, Input_Opt, RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error in "Config_Gamap"!' - CALL GC_Error( errMsg, RC, thisLoc ) - CALL QFYAML_CleanUp( Config ) - CALL QFYAML_CleanUp( ConfigAnchored ) - RETURN - ENDIF - - ! ND51 timeseries - ! (Skip if we are connecting to an external model) - CALL Config_ND51( Config, Input_Opt, RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error in "Config_ND51"!' - CALL GC_Error( errMsg, RC, thisLoc ) - CALL QFYAML_CleanUp( Config ) - CALL QFYAML_CleanUp( ConfigAnchored ) - RETURN - ENDIF - - ! ND51b timeseries - ! (Skip if we are connecting to an external model) - CALL Config_ND51b( Config, Input_Opt, RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error in "Config_ND51b"!' - CALL GC_Error( errMsg, RC, thisLoc ) - CALL QFYAML_CleanUp( Config ) - CALL QFYAML_CleanUp( ConfigAnchored ) - RETURN - ENDIF - - ! Bpch diagnostic output - ! (Skip if we are connecting to an external model) - CALL Config_Bpch_Output( Config, Input_Opt, RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error in "Config_Bpch_Output"!' - CALL GC_Error( errMsg, RC, thisLoc ) - CALL QFYAML_CleanUp( Config ) - CALL QFYAML_CleanUp( ConfigAnchored ) - RETURN - ENDIF - -#ifdef TOMAS - ! Bpch prod & loss -- only needed for TOMAS - ! (Skip if we are connecting to an external model) - CALL Config_Bpch_ProdLoss( Config, Input_Opt, RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error in "Config_Bpch_ProdLoss"!' - CALL GC_Error( errMsg, RC, thisLoc ) - CALL QFYAML_CleanUp( Config ) - CALL QFYAML_CleanUp( ConfigAnchored ) - RETURN - ENDIF -#endif -#endif - !======================================================================== ! Check GEOS-CHEM timesteps ! NOTE: Skip for GCHP/GEOS, as this is called from GCHP_Chunk_Run @@ -461,6 +391,7 @@ SUBROUTINE Config_Simulation( Config, Input_Opt, RC ) CHARACTER(LEN=6) :: timeStr CHARACTER(LEN=8) :: dateStr CHARACTER(LEN=12) :: met + CHARACTER(LEN=15) :: verboseMsg CHARACTER(LEN=24) :: sim CHARACTER(LEN=255) :: thisLoc CHARACTER(LEN=512) :: errMsg @@ -492,35 +423,38 @@ SUBROUTINE Config_Simulation( Config, Input_Opt, RC ) ! Error check simulation name Sim = To_UpperCase( TRIM( Input_Opt%SimulationName ) ) - IF ( TRIM(Sim) /= 'AEROSOL' .and. TRIM(Sim) /= 'CH4' .and. & - TRIM(Sim) /= 'CO2' .and. TRIM(Sim) /= 'FULLCHEM' .and. & - TRIM(Sim) /= 'HG' .and. TRIM(Sim) /= 'METALS' .and. & - TRIM(Sim) /= 'POPS' .and. TRIM(Sim) /= 'TRANSPORTTRACERS' .and. & - TRIM(Sim) /= 'TAGCO' .and. TRIM(Sim) /= 'TAGCH4' .and. & - TRIM(Sim) /= 'TAGHG' .and. TRIM(Sim) /= 'TAGO3' .and. & - TRIM(Sim) /= 'CARBON' ) THEN + IF ( TRIM(Sim) /= 'AEROSOL' .and. & + TRIM(Sim) /= 'CARBON' .and. & + TRIM(Sim) /= 'CH4' .and. & + TRIM(Sim) /= 'CO2' .and. & + TRIM(Sim) /= 'FULLCHEM' .and. & + TRIM(Sim) /= 'HG' .and. & + TRIM(Sim) /= 'METALS' .and. & + TRIM(Sim) /= 'POPS' .and. & + TRIM(Sim) /= 'TAGCO' .and. & + TRIM(Sim) /= 'TAGO3' .and. & + TRIM(Sim) /= 'TRANSPORTTRACERS' ) THEN errMsg = Trim( Input_Opt%SimulationName) // ' is not a' // & ' valid simulation. Supported simulations are:' // & - ' aerosol, carbon, CH4, CO2, fullchem, Hg, POPs,' // & - ' TransportTracers, TagCO, TagCH4, or TagO3.' + ' aerosol, carbon, CH4, CO2, fullchem, Hg, Metals, POPs,' // & + ' TransportTracers, TagCO, or TagO3.' CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF ! Set simulation type flags in Input_Opt - Input_Opt%ITS_A_CH4_SIM = ( TRIM(Sim) == 'CH4' .or. & - TRIM(Sim) == 'TAGCH4' ) + Input_Opt%ITS_AN_AEROSOL_SIM = ( TRIM(Sim) == 'AEROSOL' ) + Input_Opt%ITS_A_CARBON_SIM = ( TRIM(Sim) == 'CARBON' ) + Input_Opt%ITS_A_CH4_SIM = ( TRIM(Sim) == 'CH4' ) Input_Opt%ITS_A_CO2_SIM = ( TRIM(Sim) == 'CO2' ) Input_Opt%ITS_A_FULLCHEM_SIM = ( TRIM(Sim) == 'FULLCHEM' ) Input_Opt%ITS_A_MERCURY_SIM = ( TRIM(Sim) == 'HG' ) + Input_Opt%ITS_A_TRACEMETAL_SIM = ( TRIM(Sim) == 'METALS' ) Input_Opt%ITS_A_POPS_SIM = ( TRIM(Sim) == 'POPS' ) - Input_Opt%ITS_A_RnPbBe_SIM = ( TRIM(Sim) == 'TRANSPORTTRACERS' ) - Input_Opt%ITS_A_TAGO3_SIM = ( TRIM(Sim) == 'TAGO3' ) Input_Opt%ITS_A_TAGCO_SIM = ( TRIM(Sim) == 'TAGCO' ) - Input_Opt%ITS_AN_AEROSOL_SIM = ( TRIM(Sim) == 'AEROSOL' ) - Input_Opt%ITS_A_TRACEMETAL_SIM = ( TRIM(SIM) == 'METALS' ) - Input_Opt%ITS_A_CARBON_SIM = ( TRIM(Sim) == 'CARBON' ) + Input_Opt%ITS_A_TAGO3_SIM = ( TRIM(Sim) == 'TAGO3' ) + Input_Opt%ITS_A_TRACER_SIM = ( TRIM(Sim) == 'TRANSPORTTRACERS' ) !------------------------------------------------------------------------ ! Species database file @@ -551,7 +485,7 @@ SUBROUTINE Config_Simulation( Config, Input_Opt, RC ) !------------------------------------------------------------------------ ! Turn on debug output !------------------------------------------------------------------------ - key = "simulation%debug_printout" + key = "simulation%verbose%activate" v_bool = MISSING_BOOL CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -559,7 +493,36 @@ SUBROUTINE Config_Simulation( Config, Input_Opt, RC ) CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - Input_Opt%LPRT = v_bool + Input_Opt%VerboseRequested = v_bool + + !------------------------------------------------------------------------ + ! Which cores for verbose output: root or all? + !------------------------------------------------------------------------ + key = "simulation%verbose%on_cores" + v_str = MISSING_STR + CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Input_Opt%VerboseOnCores = To_UpperCase( v_str ) + + ! Should verbose output be printed only on root or on all cores? + SELECT CASE ( TRIM( Input_Opt%VerboseOnCores ) ) + CASE( 'ROOT' ) + verboseMsg = 'root core only' + Input_Opt%Verbose = & + ( Input_Opt%VerboseRequested .and. Input_Opt%amIRoot ) + CASE( 'ALL' ) + verboseMsg = 'all cores' + Input_Opt%Verbose = Input_Opt%VerboseRequested + CASE DEFAULT + errMsg = 'Invalid selection!' // NEW_LINE( 'a' ) // & + 'simulation:verbose:on_cores must be either "root" or "all"' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + END SELECT #if defined( MODEL_GCHP ) || defined( MODEL_GEOS ) !======================================================================== @@ -772,6 +735,8 @@ SUBROUTINE Config_Simulation( Config, Input_Opt, RC ) Input_Opt%MetField = 'GEOSFP' CASE( 'MERRA-2', 'MERRA2' ) Input_Opt%MetField = 'MERRA2' + CASE( 'GEOS-IT', 'GEOSIT' ) + Input_Opt%MetField = 'GEOSIT' CASE( 'MODELE2.1' ) Input_Opt%MetField = 'MODELE2.1' CASE( 'MODELE2.2' ) @@ -799,38 +764,6 @@ SUBROUTINE Config_Simulation( Config, Input_Opt, RC ) ENDIF Input_Opt%UseTimers = v_bool - ! Error check simulation name - Sim = To_UpperCase( TRIM( Input_Opt%SimulationName ) ) - IF ( TRIM(Sim) /= 'AEROSOL' .and. TRIM(Sim) /= 'CH4' .and. & - TRIM(Sim) /= 'CO2' .and. TRIM(Sim) /= 'FULLCHEM' .and. & - TRIM(Sim) /= 'HG' .and. TRIM(Sim) /= 'METALS' .and. & - TRIM(Sim) /= 'POPS' .and. TRIM(Sim) /= 'TRANSPORTTRACERS' .and. & - TRIM(Sim) /= 'TAGCO' .and. TRIM(Sim) /= 'TAGCH4' .and. & - TRIM(Sim) /= 'CARBON' .and. & - TRIM(Sim) /= 'TAGHG' .and. TRIM(Sim) /= 'TAGO3' ) THEN - ErrMsg = Trim( Input_Opt%SimulationName) // ' is not a' // & - ' valid simulation. Supported simulations are:' // & - ' aerosol, CH4, CO2, fullchem, Hg, POPs,' // & - ' TransportTracers, TagCO, TagCH4, TagHg, or TagO3.' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ! Set simulation type flags in Input_Opt - Input_Opt%ITS_A_CH4_SIM = ( TRIM(Sim) == 'CH4' .or. & - TRIM(Sim) == 'TAGCH4' ) - Input_Opt%ITS_A_CO2_SIM = ( TRIM(Sim) == 'CO2' ) - Input_Opt%ITS_A_FULLCHEM_SIM = ( TRIM(Sim) == 'FULLCHEM' ) - Input_Opt%ITS_A_MERCURY_SIM = ( TRIM(Sim) == 'HG' .or. & - TRIM(Sim) == 'TAGHG' ) - Input_Opt%ITS_A_POPS_SIM = ( TRIM(Sim) == 'POPS' ) - Input_Opt%ITS_A_RnPbBe_SIM = ( TRIM(Sim) == 'TRANSPORTTRACERS' ) - Input_Opt%ITS_A_TAGO3_SIM = ( TRIM(Sim) == 'TAGO3' ) - Input_Opt%ITS_A_TAGCO_SIM = ( TRIM(Sim) == 'TAGCO' ) - Input_Opt%ITS_AN_AEROSOL_SIM = ( TRIM(Sim) == 'AEROSOL' ) - Input_Opt%ITS_A_TRACEMETAL_SIM = ( TRIM(SIM) == 'METALS' ) - Input_Opt%ITS_A_CARBON_SIM = ( TRIM(SIM) == 'CARBON' ) - !------------------------------------------------------------------------ ! Set start time of run in "time_mod.F90" !------------------------------------------------------------------------ @@ -854,14 +787,6 @@ SUBROUTINE Config_Simulation( Config, Input_Opt, RC ) ! Set the current time CALL Set_Current_Time() -#ifdef BPCH_DIAG - !------------------------------------------------------------------------ - ! Set the start of the 1st diagnostic interval - ! Only applies when GEOS-Chem is configured with -DBPCH_DIAG=y - !------------------------------------------------------------------------ - CALL Set_DiagB( GET_TAU() ) -#endif - #endif !======================================================================== @@ -887,8 +812,10 @@ SUBROUTINE Config_Simulation( Config, Input_Opt, RC ) TRIM( Input_Opt%CHEM_INPUTS_DIR ) WRITE( 6, 110 ) 'Species database file : ', & TRIM( Input_Opt%SpcDatabaseFile ) - WRITE( 6, 120 ) 'Turn on debug output : ', & - Input_Opt%LPRT + WRITE( 6, 120 ) 'Turn on verbose output : ', & + Input_Opt%Verbose + WRITE( 6, 110 ) 'Verbose output printed on : ', & + TRIM( verboseMsg ) #ifdef MODEL_CLASSIC WRITE( 6, 100 ) 'Start time of run : ', & Input_Opt%NYMDb, Input_Opt%NHMSb @@ -1344,7 +1271,8 @@ SUBROUTINE Config_Timesteps( Config, Input_Opt, State_Grid, RC ) IF ( TRIM( Input_Opt%MetField ) == 'MERRA2' .and. & TRIM( State_Grid%GridRes ) == '0.5x0.625' ) THEN - IF ( Input_Opt%ITS_A_CH4_SIM .or. Input_Opt%ITS_A_CO2_SIM ) THEN + IF ( Input_Opt%ITS_A_CH4_SIM .or. & + Input_Opt%ITS_A_CO2_SIM ) THEN IF ( Input_Opt%TS_DYN > 300 .or. Input_Opt%TS_CHEM > 600 ) THEN IF ( Input_Opt%amIRoot ) THEN WRITE( 6,'(a)' ) '' @@ -1411,7 +1339,7 @@ SUBROUTINE Config_Transport( Config, Input_Opt, RC ) ! !USES: ! USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput, Set_Input_Opt_Advect + USE Input_Opt_Mod, ONLY : OptInput ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1586,18 +1514,15 @@ SUBROUTINE Config_Transport( Config, Input_Opt, RC ) ! Call setup routines from other F90 modules !================================================================= - ! Split into tagged species (turn off for full-chemistry) - IF ( Input_Opt%ITS_A_FULLCHEM_SIM ) THEN - Input_Opt%LSPLIT = .FALSE. ! No tagged species + ! Split into tagged species + IF ( Input_Opt%ITS_A_TAGCO_SIM .or. Input_Opt%ITS_A_TAGO3_SIM ) THEN + Input_Opt%LSPLIT = ( Input_Opt%N_ADVECT > 1 ) ! Tags if > 1 species ELSE IF ( Input_Opt%ITS_A_CARBON_SIM ) THEN Input_Opt%LSPLIT = ( Input_Opt%N_ADVECT > 4 ) ! Tags if > 4 species ELSE - Input_Opt%LSPLIT = ( Input_Opt%N_ADVECT > 1 ) ! Tags if > 1 species + Input_Opt%LSPLIT = .FALSE. ENDIF - ! Initialize arrays in Input_Opt that depend on N_ADVECT - CALL Set_Input_Opt_Advect( Input_Opt, RC ) - END SUBROUTINE Config_Transport !EOC !------------------------------------------------------------------------------ @@ -2171,84 +2096,6 @@ SUBROUTINE Config_CO2( Config, Input_Opt, RC ) errMsg = '' thisLoc = ' -> at Config_CO2 (in module GeosCore/input_mod.F90)' - !------------------------------------------------------------------------ - ! Use Fossil Fuel emissions? - !------------------------------------------------------------------------ - key = "CO2_simulation_options%sources%fossil_fuel_emissions" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%LFOSSIL = v_bool - - !------------------------------------------------------------------------ - ! Use Ocean Exchange? - !------------------------------------------------------------------------ - key = "CO2_simulation_options%sources%ocean_exchange" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%LOCEAN = v_bool - - !------------------------------------------------------------------------ - ! Turn on (balanced) biosphere with diurnal cycle? - !------------------------------------------------------------------------ - key = "CO2_simulation_options%sources%balanced_biosphere_exchange" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%LBIODIURNAL = v_bool - - !------------------------------------------------------------------------ - ! Use Net Terrestrial Exchange Climatology? - !------------------------------------------------------------------------ - key = "CO2_simulation_options%sources%net_terrestrial_exchange" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%LBIONETCLIM = v_bool - - !------------------------------------------------------------------------ - ! Turn on Ship emissions? - !------------------------------------------------------------------------ - key = "CO2_simulation_options%sources%ship_emissions" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%LSHIP = v_bool - - !------------------------------------------------------------------------ - ! Turn on Aviation emissions? - !------------------------------------------------------------------------ - key = "CO2_simulation_options%sources%aviation_emissions" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%LPLANE = v_bool - !------------------------------------------------------------------------ ! Turn on CO2 3D chemical source and surface correction? !------------------------------------------------------------------------ @@ -2262,19 +2109,6 @@ SUBROUTINE Config_CO2( Config, Input_Opt, RC ) ENDIF Input_Opt%LCHEMCO2 = v_bool - !------------------------------------------------------------------------ - ! Background CO2 (no emissions or exchange) for Tagged-CO2 runs - !------------------------------------------------------------------------ - key = "CO2_simulation_options%tagged_species%save_fossil_fuel_in_background" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%LFFBKGRD = v_bool - !------------------------------------------------------------------------ ! Turn on biosphere and ocean exchange region tagged species? !------------------------------------------------------------------------ @@ -2301,32 +2135,6 @@ SUBROUTINE Config_CO2( Config, Input_Opt, RC ) ENDIF Input_Opt%LFOSSILTAG = v_bool - !------------------------------------------------------------------------ - ! Turn on global ship emissions tagged species? - !------------------------------------------------------------------------ - key = "CO2_simulation_options%tagged_species%tag_global_ship_CO2" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%LSHIPTAG = v_bool - - !------------------------------------------------------------------------ - ! Turn on global aircraft emissions tagged species? - !------------------------------------------------------------------------ - key = "CO2_simulation_options%tagged_species%tag_global_aircraft_CO2" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%LPLANETAG = v_bool - !================================================================= ! Print to screen !================================================================= @@ -2334,19 +2142,10 @@ SUBROUTINE Config_CO2( Config, Input_Opt, RC ) WRITE( 6,90 ) 'CO2 SIMULATION SETTINGS' WRITE( 6,95 ) '(overwrites any other settings related to CO2)' WRITE( 6,95 ) '----------------------------------------------' - WRITE( 6,100 ) 'National Fossil Fuel Emission :', Input_Opt%LFOSSIL - WRITE( 6,100 ) 'Ocean CO2 Uptake/Emission :', Input_Opt%LOCEAN - WRITE( 6,100 ) 'Biosphere seas/diurnal cycle :', Input_Opt%LBIODIURNAL - WRITE( 6,100 ) 'Net Terr Exch - Climatology :', Input_Opt%LBIONETCLIM - WRITE( 6,100 ) 'Intl/Domestic Ship emissions :', Input_Opt%LSHIP - WRITE( 6,100 ) 'Intl/Domestic Aviation emiss :', Input_Opt%LPLANE WRITE( 6,100 ) 'CO2 from oxidation (CO,CH4,..):', Input_Opt%LCHEMCO2 WRITE( 6, 95 ) 'Tagged CO2 settings' - WRITE( 6,100 ) ' Save Fossil CO2 in Bckgrnd :', Input_Opt%LFFBKGRD WRITE( 6,100 ) ' Tag Biosphere/Ocean CO2 :', Input_Opt%LBIOSPHTAG WRITE( 6,100 ) ' Tag Fossil Fuel CO2 :', Input_Opt%LFOSSILTAG - WRITE( 6,100 ) ' Tag Global Ship CO2 :', Input_Opt%LSHIPTAG - WRITE( 6,100 ) ' Tag Global Aviation CO2 :', Input_Opt%LPLANETAG ENDIF ! FORMAT statements @@ -2464,7 +2263,7 @@ SUBROUTINE Config_Chemistry( Config, Input_Opt, RC ) Input_Opt%LACTIVEH2O = v_bool !------------------------------------------------------------------------ - ! Turn on online stratospheric H2O? + ! Use a more conservative boundary condition for strat. H2O? !------------------------------------------------------------------------ key = "operations%chemistry%active_strat_H2O%use_static_bnd_cond" v_bool = MISSING_BOOL @@ -2679,6 +2478,7 @@ SUBROUTINE Config_RRTMG( Config, Input_Opt, RC ) CHARACTER(LEN=512) :: errMsg CHARACTER(LEN=QFYAML_NamLen) :: key CHARACTER(LEN=QFYAML_NamLen) :: a_str(3) + CHARACTER(LEN=QFYAML_StrLen) :: v_str !======================================================================== ! Config_RRTMG begins here! @@ -2777,6 +2577,71 @@ SUBROUTINE Config_RRTMG( Config, Input_Opt, RC ) ENDIF Input_Opt%LSKYRAD(2) = v_bool + !------------------------------------------------------------------------ + ! Value to use (in ppmv) for CO2? + !------------------------------------------------------------------------ + key = "operations%rrtmg_rad_transfer_model%co2_ppmv" + v_str = MISSING_STR + CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Input_Opt%RRTMG_CO2_ppmv = Cast_and_Roundoff( v_str, places=2 ) + + !------------------------------------------------------------------------ + ! Use the fixed dynamical heating assumption? + !------------------------------------------------------------------------ + key = "operations%rrtmg_rad_transfer_model%fixed_dyn_heating" + v_bool = MISSING_BOOL + CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Input_Opt%RRTMG_FDH = v_bool + + !------------------------------------------------------------------------ + ! Allow seasonal adjustment? + !------------------------------------------------------------------------ + key = "operations%rrtmg_rad_transfer_model%seasonal_fdh" + v_bool = MISSING_BOOL + CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Input_Opt%RRTMG_SEFDH = v_bool + + !------------------------------------------------------------------------ + ! Extend dynamical heating adjustment to TOA? + !------------------------------------------------------------------------ + key = "operations%rrtmg_rad_transfer_model%fdh_to_toa" + v_bool = MISSING_BOOL + CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Input_Opt%RRTMG_SA_TOA = v_bool + + !------------------------------------------------------------------------ + ! Read in dynamical heating data? + !------------------------------------------------------------------------ + key = "operations%rrtmg_rad_transfer_model%read_dyn_heating" + v_bool = MISSING_BOOL + CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Input_Opt%Read_Dyn_Heating = v_bool + !======================================================================== ! Error check settings !======================================================================== @@ -2816,6 +2681,18 @@ SUBROUTINE Config_RRTMG( Config, Input_Opt, RC ) ENDIF ENDIF +#ifndef MODEL_GCHPCTM + If (Input_Opt%RRTMG_FDH) Then + errMsg = 'Fixed dynamical heating in RRTMG is currently only available in GCHP' + CALL GC_Error( errMsg, RC, thisLoc ) + End If +#endif + + If (Input_Opt%RRTMG_SEFDH.and.(.not.Input_Opt%RRTMG_FDH)) Then + errMsg = 'Cannot have seasonally evolving FDH without enabling FDH!' + CALL GC_Error( errMsg, RC, thisLoc ) + End If + !======================================================================== ! Print to screen !======================================================================== @@ -2831,6 +2708,11 @@ SUBROUTINE Config_RRTMG( Config, Input_Opt, RC ) WRITE( 6, 100 ) 'Consider shortwave? : ', Input_Opt%LSWRAD WRITE( 6, 100 ) 'Clear-sky flux? : ', Input_Opt%LSKYRAD(1) WRITE( 6, 100 ) 'All-sky flux? : ', Input_Opt%LSKYRAD(2) + WRITE( 6, 115 ) 'CO2 VMR in ppmv : ', Input_Opt%RRTMG_CO2_ppmv + WRITE( 6, 100 ) 'Fixed dyn. heat. assumption?: ', Input_Opt%RRTMG_FDH + WRITE( 6, 100 ) ' --> Seasonal evolution? : ', Input_Opt%RRTMG_SEFDH + WRITE( 6, 100 ) ' --> Extend to TOA? : ', Input_Opt%RRTMG_SA_TOA + WRITE( 6, 100 ) ' --> Read in dyn. heating? : ', Input_Opt%Read_Dyn_Heating ENDIF ! FORMAT statements @@ -2898,24 +2780,49 @@ SUBROUTINE Config_Photolysis( Config, Input_Opt, RC ) thisLoc = ' -> at Config_Photolysis (in module GeosCore/input_mod.F90)' !------------------------------------------------------------------------ - ! Directory with photolysis input files + ! Turn on photolysis !------------------------------------------------------------------------ - key = "operations%photolysis%input_dir" - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) + + key = "operations%photolysis%activate" + v_bool = MISSING_BOOL + CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) IF ( RC /= GC_SUCCESS ) THEN errMsg = 'Error parsing ' // TRIM( key ) // '!' CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - Input_Opt%FAST_JX_DIR = TRIM( v_str ) + Input_Opt%Do_Photolysis = v_bool !------------------------------------------------------------------------ - ! Use online ozone in extinction calculations for FAST-JX? + ! Directories with photolysis input files !------------------------------------------------------------------------ - key = "operations%photolysis%overhead_O3%use_online_O3_from_model" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) + + key = "operations%photolysis%input_directories%fastjx_input_dir" + v_str = MISSING_STR + CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Input_Opt%FAST_JX_DIR = TRIM( v_str ) + + key = "operations%photolysis%input_directories%cloudj_input_dir" + v_str = MISSING_STR + CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Input_Opt%CloudJ_DIR = TRIM( v_str ) + + !------------------------------------------------------------------------ + ! Use online ozone in extinction calculations for FAST-JX? + !------------------------------------------------------------------------ + key = "operations%photolysis%overhead_O3%use_online_O3_from_model" + v_bool = MISSING_BOOL + CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) IF ( RC /= GC_SUCCESS ) THEN errMsg = 'Error parsing ' // TRIM( key ) // '!' CALL GC_Error( errMsg, RC, thisLoc ) @@ -2966,7 +2873,7 @@ SUBROUTINE Config_Photolysis( Config, Input_Opt, RC ) ! Scalar for JHNO3 for photoylsing NITs aerosol !------------------------------------------------------------------------ key = & - "operations%photolysis%photolyze_nitrate_aerosol%NITs_Jscale_JHNO3" + "operations%photolysis%photolyze_nitrate_aerosol%NITs_Jscale" v_str = MISSING_STR CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -2980,7 +2887,7 @@ SUBROUTINE Config_Photolysis( Config, Input_Opt, RC ) ! scalar for JHNO3 for photoylsing NIT aerosol (TMS, 23/08/18) !------------------------------------------------------------------------ key = & - "operations%photolysis%photolyze_nitrate_aerosol%NIT_Jscale_JHNO2" + "operations%photolysis%photolyze_nitrate_aerosol%NIT_Jscale" v_str = MISSING_STR CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -3092,12 +2999,15 @@ SUBROUTINE Config_Photolysis( Config, Input_Opt, RC ) IF ( Input_Opt%amIRoot ) THEN WRITE( 6,90 ) 'PHOTOLYSIS SETTINGS' WRITE( 6,95 ) '-------------------' + WRITE( 6,100 ) 'Turn on photolysis? : ', Input_Opt%Do_Photolysis WRITE( 6,120 ) 'FAST-JX input directory : ', & TRIM( Input_Opt%FAST_JX_DIR ) - WRITE( 6,100 ) 'Online ozone for FAST-JX? : ', Input_Opt%USE_ONLINE_O3 - WRITE( 6,100 ) 'Ozone from met for FAST-JX? : ', & + WRITE( 6,120 ) 'Cloud-J input directory : ', & + TRIM( Input_Opt%CloudJ_Dir ) + WRITE( 6,100 ) 'Use online ozone? : ', Input_Opt%USE_ONLINE_O3 + WRITE( 6,100 ) 'Use ozone from met? : ', & Input_Opt%USE_O3_FROM_MET - WRITE( 6,100 ) 'TOMS/SBUV ozone for FAST-JX?: ', Input_Opt%USE_TOMS_O3 + WRITE( 6,100 ) 'Use TOMS/SBUV ozone? : ', Input_Opt%USE_TOMS_O3 WRITE( 6,100 ) 'Photolyse nitrate aerosol? : ', Input_Opt%hvAerNIT WRITE( 6,105 ) 'JNITs scaling of JHNO3 : ', Input_Opt%hvAerNIT_JNITs WRITE( 6,105 ) 'JNIT scaling of JHNO3 : ', Input_Opt%hvAerNIT_JNIT @@ -3387,9 +3297,9 @@ SUBROUTINE Config_DryDep_WetDep( Config, Input_Opt, RC ) IF ( Input_Opt%ITS_A_TAGCO_SIM ) Input_Opt%LDRYD = .FALSE. ! Turn off wetdep for simulations that don't need it - IF ( Input_Opt%ITS_A_TAGO3_SIM ) Input_Opt%LWETD = .FALSE. - IF ( Input_Opt%ITS_A_TAGCO_SIM ) Input_Opt%LWETD = .FALSE. IF ( Input_Opt%ITS_A_CH4_SIM ) Input_Opt%LWETD = .FALSE. + IF ( Input_Opt%ITS_A_TAGCO_SIM ) Input_Opt%LWETD = .FALSE. + IF ( Input_Opt%ITS_A_TAGO3_SIM ) Input_Opt%LWETD = .FALSE. ! If CO2 effect on RS in turned on, calculate the scaling factor ! on Rs based on Franks et al. (2013) (ayhwong, 6/25/2019) @@ -3429,240 +3339,6 @@ SUBROUTINE Config_DryDep_WetDep( Config, Input_Opt, RC ) END SUBROUTINE Config_DryDep_WetDep !!EOC #if !(defined( EXTERNAL_GRID ) || defined( EXTERNAL_FORCING )) -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: config_gamap -! -! !DESCRIPTION: Copies GAMAP information from the Config object -! to Input_Opt, and does necessary checks. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Config_Gamap( Config, Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(QFYAML_t), INTENT(INOUT) :: Config ! YAML Config object - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input Options object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure -! -! !REVISION HISTORY: -! 25 Apr 2005 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Strings - CHARACTER(LEN=255) :: thisLoc - CHARACTER(LEN=512) :: errMsg - CHARACTER(LEN=QFYAML_NamLen) :: key - CHARACTER(LEN=QFYAML_StrLen) :: v_str - - !======================================================================== - ! Config_Gamap begins here! - !======================================================================== - - ! Initialize - RC = GC_SUCCESS - errMsg = '' - thisLoc = ' -> at Config_Gamap (in module GeosCore/input_mod.F90)' - - !------------------------------------------------------------------------ - ! diaginfo.dat - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%gamap%diaginfo_dat_file" - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%GAMAP_DIAGINFO = TRIM( ADJUSTL( v_str ) ) - - !------------------------------------------------------------------------ - ! tracerinfo.dat - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%gamap%tracerinfo_dat_file" - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%GAMAP_TRACERINFO = TRIM( ADJUSTL( v_str ) ) - - !======================================================================== - ! Print to screen - !======================================================================== - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, '(/,a)' ) 'GAMAP SETTINGS (when -DBPCH_DIAG=y)' - WRITE( 6, '( a)' ) '-----------------------------------' - WRITE( 6, '(a,a)' ) 'GAMAP "diaginfo.dat" file : ', & - TRIM( Input_Opt%GAMAP_DIAGINFO ) - WRITE( 6, '(a,a)' ) 'GAMAP "tracerinfo.dat" file : ', & - TRIM( Input_Opt%GAMAP_TRACERINFO ) - ENDIF - - END SUBROUTINE Config_Gamap -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: config_bpch_output - -! !DESCRIPTION: Copies bpch output information from the Config object -! to Input_Opt, and does necessary checks. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Config_Bpch_Output( Config, Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE QFYAML_Mod, ONLY : QFYAML_t -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(QFYAML_t), INTENT(INOUT) :: Config ! YAML Config object - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input options -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure -! -! !REVISION HISTORY: -! 20 Jul 2004 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - INTEGER :: N - INTEGER :: v_int - - ! Strings - CHARACTER(LEN=255) :: thisLoc - CHARACTER(LEN=512) :: errMsg - CHARACTER(LEN=QFYAML_NamLen) :: key - CHARACTER(LEN=QFYAML_StrLen) :: v_str - - ! String arrays - CHARACTER(LEN=3) :: mon(12)= (/'JAN', 'FEB', 'MAR', 'APR', & - 'MAY', 'JUN', 'JUL', 'AUG', & - 'SEP', 'OCT', 'NOV', 'DEC'/) - - !======================================================================== - ! Config_Bpch_Output begins here! - !======================================================================== - - ! Initialize - RC = GC_SUCCESS - errMsg = '' - thisLoc = ' -> at Config_Bpch_Output (in module GeosCore/input_mod.F90)' - - !======================================================================== - ! Read data into the Input_Opt%NJDAY array - !======================================================================== - DO N = 1, 12 - - key = "extra_diagnostics%legacy_bpch%output_menu%" // & - "schedule_output_for_" // mon(N) - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - - ! Parse string into NJDAY array by month - SELECT CASE( N ) - CASE( 1 ) - READ( v_str, '(31i1)' ) Input_Opt%NJDAY(1:31) - CASE( 2 ) - READ( v_str, '(29i1)' ) Input_Opt%NJDAY(32:60) - CASE( 3 ) - READ( v_str, '(31i1)' ) Input_Opt%NJDAY(61:91) - CASE( 4 ) - READ( v_str, '(30i1)' ) Input_Opt%NJDAY(92:121) - CASE( 5 ) - READ( v_str, '(31i1)' ) Input_Opt%NJDAY(122:152) - CASE( 6 ) - READ( v_str, '(30i1)' ) Input_Opt%NJDAY(153:182) - CASE( 7 ) - READ( v_str, '(31i1)' ) Input_Opt%NJDAY(183:213) - CASE( 8 ) - READ( v_str, '(31i1)' ) Input_Opt%NJDAY(214:244) - CASE( 9 ) - READ( v_str, '(30i1)' ) Input_Opt%NJDAY(245:274) - CASE( 10 ) - READ( v_str, '(31i1)' ) Input_Opt%NJDAY(275:305) - CASE( 11 ) - READ( v_str, '(30i1)' ) Input_Opt%NJDAY(306:335) - CASE( 12 ) - READ( v_str, '(31i1)' ) Input_Opt%NJDAY(336:366) - END SELECT - ENDDO - - !================================================================= - ! Print to screen - !================================================================= - IF( Input_Opt%amIRoot ) THEN - WRITE( 6, '(/,a)' ) 'BPCH OUTPUT SETTINGS' - WRITE( 6, '( a)' ) '--------------------' - WRITE( 6, 110 ) - WRITE( 6, 120 ) - WRITE( 6, 130 ) - WRITE( 6, 140 ) Input_Opt%NJDAY - ENDIF - - ! FORMAT statements -110 FORMAT( ' 1111111111222222222233' ) -120 FORMAT( ' 1234567890123456789012345678901' ) -130 FORMAT( ' -------------------------------' ) -140 FORMAT( 'JAN--', 31i1, /, 'FEB--', 29i1, /, 'MAR--', 31i1, /, & - 'APR--', 30i1, /, 'MAY--', 31i1, /, 'JUN--', 30i1, /, & - 'JUL--', 31i1, /, 'AUG--', 31i1, /, 'SEP--', 30i1, /, & - 'OCT--', 31i1, /, 'NOV--', 30i1, /, 'DEC--', 31i1 ) - - ! Make sure we have output at end of run - CALL IS_LAST_DAY_GOOD( Input_Opt, RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - - END SUBROUTINE Config_Bpch_Output -!EOC -#endif !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ @@ -3902,703 +3578,62 @@ SUBROUTINE Config_ObsPack( Config, Input_Opt, RC ) !------------------------------------------------------------------------ key = "extra_diagnostics%obspack%output_species" a_str = MISSING_STR - CALL QFYAML_Add_Get( Config, TRIM( key ), a_str, & - "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - - !------------------------------------------------------------------------ - ! Copy species names into Input_Opt - !------------------------------------------------------------------------ - Input_Opt%ObsPack_nSpc = 0 - DO N = 1, SIZE( a_str ) - - ! Stop iterationg when we find a missing value - IF ( TRIM( a_str(N) ) == MISSING_STR ) EXIT - - ! If wildcard for all species is requested then update the - ! list of species to track to be the list of advected species - ! and exit from further - IF ( N==1 .AND. INDEX( a_str(1) , '?ALL' ) > 0) THEN - Input_Opt%ObsPack_SpcName = Input_Opt%AdvectSpc_Name - Input_Opt%ObsPack_nSpc = Input_Opt%N_Advect - EXIT - ENDIF - - ! Otherwise, increment the count and copy the Obspack species - ! name into the Input_Opt object - Input_Opt%ObsPack_nSpc = Input_Opt%ObsPack_nSpc + 1 - Input_Opt%ObsPack_SpcName(Input_Opt%ObsPack_nSpc) = TRIM( a_str(N) ) - ENDDO - - !======================================================================== - ! Print to screen - !======================================================================== - IF( Input_Opt%amIRoot ) THEN - WRITE( 6, 90 ) 'OBSPACK SETTINGS' - WRITE( 6, 95 ) '----------------' - WRITE( 6, 100 ) 'Turn on ObsPack diagnostic? : ', & - Input_Opt%Do_ObsPack - WRITE( 6, 100 ) 'Suppress logfile output? : ', & - Input_Opt%ObsPack_Quiet - WRITE( 6, 110 ) 'ObsPack input file : ', & - TRIM( Input_Opt%ObsPack_InputFile ) - WRITE( 6, 110 ) 'ObsPack output file : ', & - TRIM( Input_Opt%ObsPack_OutputFile ) - ENDIF - - ! FORMAT statements -90 FORMAT( /, A ) -95 FORMAT( A ) -100 FORMAT( A, L5 ) -110 FORMAT( A, A ) - - END SUBROUTINE Config_ObsPack -!EOC -#if !(defined( EXTERNAL_GRID ) || defined( EXTERNAL_FORCING )) -#ifdef BPCH_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: config_nd51 -! -! !DESCRIPTION: Copies ND51 satellite diagnostic information from the Config -! object to Input_Opt, and does necessary checks. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Config_ND51( Config, Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE RoundOff_Mod, ONLY : Cast_and_RoundOff -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(QFYAML_t), INTENT(INOUT) :: Config ! YAML Config object - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input Options object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - LOGICAL :: v_bool - INTEGER :: N - - ! Arrays - INTEGER :: a_int(QFYAML_MaxArr) - - ! Strings - CHARACTER(LEN=255) :: thisLoc - CHARACTER(LEN=255) :: errMsg - CHARACTER(LEN=QFYAML_NamLen) :: key - CHARACTER(LEN=QFYAML_StrLen) :: v_str - - ! String arrays - CHARACTER(LEN=QFYAML_StrLen) :: a_str(QFYAML_MaxArr) - - - !======================================================================== - ! Config_ND51 begins here! - !======================================================================== - - ! Initialize - RC = GC_SUCCESS - errMsg = '' - thisLoc = ' -> at Config_ND51 (in module GeosCore/input_mod.F90)' - - !------------------------------------------------------------------------ - ! Turn on ND51 diagnostic - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51_satellite%activate" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%DO_ND51 = v_bool - - !------------------------------------------------------------------------ - ! Instantaneous 3-D timeseries file - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51_satellite%output_file" - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, key, v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51_FILE = TRIM( v_str ) - - !------------------------------------------------------------------------ - ! Tracers to include - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51_satellite%tracers" - a_int = MISSING_INT - CALL QFYAML_Add_Get( Config, key, a_int, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - DO N = 1, SIZE( a_int ) - IF ( a_int(N) == MISSING_INT ) EXIT - Input_Opt%ND51_TRACERS(N) = a_int(N) - ENDDO - Input_Opt%N_ND51 = N - 1 - - !------------------------------------------------------------------------ - ! NHMS_WRITE - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51_satellite%UTC_hour_for_write" - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, key, v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51_HR_WRITE = Cast_and_RoundOff( v_str, places=2 ) - - ! Make sure ND51_HR_WRITE is in the range 0-23.999 hrs - Input_Opt%ND51_HR_WRITE = MOD( Input_Opt%ND51_HR_WRITE, 24.0_fp ) - - !------------------------------------------------------------------------ - ! HR1, HR2 - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51_satellite%averaging_period_in_LT" - a_str = MISSING_STR - CALL QFYAML_Add_Get( Config, key, a_str, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51_HR1 = Cast_and_RoundOff( a_str(1), places=2 ) - Input_Opt%ND51_HR2 = Cast_and_RoundOff( a_str(2), places=2 ) - - !------------------------------------------------------------------------ - ! IMIN, IMAX - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51_satellite%IMIN_and_IMAX_of_region" - a_int = MISSING_INT - CALL QFYAML_Add_Get( Config, key, a_int, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51_IMIN = a_int(1) - Input_Opt%ND51_IMAX = a_int(2) - - !------------------------------------------------------------------------ - ! JMIN, JMAX - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51_satellite%JMIN_and_JMAX_of_region" - a_int = MISSING_INT - CALL QFYAML_Add_Get( Config, key, a_int, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51_JMIN = a_int(1) - Input_Opt%ND51_JMAX = a_int(2) - - !------------------------------------------------------------------------ - ! LMIN, LMAX - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51_satellite%LMIN_and_LMAX_of_region" - a_int = MISSING_INT - CALL QFYAML_Add_Get( Config, key, a_int, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51_LMIN = a_int(1) - Input_Opt%ND51_LMAX = a_int(2) - - !======================================================================== - ! Print to screen - !======================================================================== - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6,90 ) 'ND51 TIMESERIES SETTINGS (when -DBPCH_DIAG=y)' - WRITE( 6,95 ) '---------------------------------------------' - WRITE( 6,100 ) 'Turn on ND51 timeseries? : ', Input_Opt%DO_ND51 - WRITE( 6,110 ) 'ND51 timeseries file name : ', & - TRIM( Input_Opt%ND51_FILE ) - WRITE( 6,120 ) 'ND51 timeseries tracers : ', & - ( Input_Opt%ND51_TRACERS(N), N=1, Input_Opt%N_ND51 ) - WRITE( 6,140 ) 'ND51 hour to write to disk : ', Input_Opt%ND51_HR_WRITE - WRITE( 6,140 ) 'ND51 averaging period [GMT] : ', Input_Opt%ND51_HR1, & - Input_Opt%ND51_HR2 - WRITE( 6,130 ) 'ND51 longitude limits : ', Input_Opt%ND51_IMIN, & - Input_Opt%ND51_IMAX - WRITE( 6,130 ) 'ND51 latitude limits : ', Input_Opt%ND51_JMIN, & - Input_Opt%ND51_JMAX - WRITE( 6,130 ) 'ND51 altitude limits : ', Input_Opt%ND51_LMIN, & - Input_Opt%ND51_LMAX - ENDIF - - ! FORMAT statements -90 FORMAT( /, A ) -95 FORMAT( A ) -100 FORMAT( A, L5 ) -110 FORMAT( A, A ) -120 FORMAT( A, 100I4 ) -130 FORMAT( A, 2I5 ) -140 FORMAT( A, 2F5.1 ) - - END SUBROUTINE Config_Nd51 -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: config_nd51b -! -! !DESCRIPTION: Copies ND51b satellite diagnostic information from the Config -! object to Input_Opt, and does necessary checks. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Config_ND51b( Config, Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE RoundOff_Mod, ONLY : Cast_and_RoundOff -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(QFYAML_t), INTENT(INOUT) :: Config ! YAML Config object - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input Options object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - LOGICAL :: v_bool - INTEGER :: N - - ! Arrays - INTEGER :: a_int(QFYAML_MaxArr) - - ! Strings - CHARACTER(LEN=255) :: thisLoc - CHARACTER(LEN=255) :: errMsg - CHARACTER(LEN=QFYAML_NamLen) :: key - CHARACTER(LEN=QFYAML_StrLen) :: v_str - - ! String arrays - CHARACTER(LEN=QFYAML_StrLen) :: a_str(QFYAML_MaxArr) - - !======================================================================== - ! Config_ND51b begins here! - !======================================================================== - - ! Initialize - RC = GC_SUCCESS - errMsg = '' - thisLoc = ' -> at Config_ND51b (in module GeosCore/input_mod.F90)' - - !------------------------------------------------------------------------ - ! Turn on ND51b diagnostic - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51b_satellite%activate" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%DO_ND51b = v_bool - - !------------------------------------------------------------------------ - ! Instantaneous 3-D timeseries file - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51b_satellite%output_file" - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, key, v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51b_FILE = TRIM( v_str ) - - !------------------------------------------------------------------------ - ! Tracers to include - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51b_satellite%tracers" - a_int = MISSING_INT - CALL QFYAML_Add_Get( Config, key, a_int, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - DO N = 1, SIZE( a_int ) - IF ( a_int(N) == MISSING_INT ) EXIT - Input_Opt%ND51b_TRACERS(N) = a_int(N) - ENDDO - Input_Opt%N_ND51b = N - 1 - - !------------------------------------------------------------------------ - ! NHMS_WRITE - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51b_satellite%UTC_hour_for_write" - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, key, v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51b_HR_WRITE = Cast_and_RoundOff( v_str, places=2 ) - - ! Make sure ND51b_HR_WRITE is in the range 0-23.999 hrs - Input_Opt%ND51b_HR_WRITE = MOD( Input_Opt%ND51b_HR_WRITE, 24.0_fp ) - - !------------------------------------------------------------------------ - ! HR1, HR2 - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51b_satellite%averaging_period_in_LT" - a_str = MISSING_STR - CALL QFYAML_Add_Get( Config, key, a_str, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51b_HR1 = Cast_and_RoundOff( a_str(1), places=2 ) - Input_Opt%ND51b_HR2 = Cast_and_RoundOff( a_str(2), places=2 ) - - !------------------------------------------------------------------------ - ! IMIN, IMAX - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51b_satellite%IMIN_and_IMAX_of_region" - a_int = MISSING_INT - CALL QFYAML_Add_Get( Config, key, a_int, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51b_IMIN = a_int(1) - Input_Opt%ND51b_IMAX = a_int(2) - - !------------------------------------------------------------------------ - ! JMIN, JMAX - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51b_satellite%JMIN_and_JMAX_of_region" - a_int = MISSING_INT - CALL QFYAML_Add_Get( Config, key, a_int, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51b_JMIN = a_int(1) - Input_Opt%ND51b_JMAX = a_int(2) - - !------------------------------------------------------------------------ - ! LMIN, LMAX - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%ND51b_satellite%LMIN_and_LMAX_of_region" - a_int = MISSING_INT - CALL QFYAML_Add_Get( Config, key, a_int, "", RC, dynamic_size=.TRUE. ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND51b_LMIN = a_int(1) - Input_Opt%ND51b_LMAX = a_int(2) - - !======================================================================== - ! Print to screen - !======================================================================== - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6,90 ) 'ND51b TIMESERIES SETTINGS (when -DBPCH_DIAG=y)' - WRITE( 6,95 ) '----------------------------------------------' - WRITE( 6,100 ) 'Turn on ND51b timeseries? : ', Input_Opt%DO_ND51b - WRITE( 6,110 ) 'ND51b timeseries file name : ', & - TRIM( Input_Opt%ND51b_FILE ) - WRITE( 6,120 ) 'ND51b timeseries tracers : ', & - ( Input_Opt%ND51b_TRACERS(N), N=1, Input_Opt%N_ND51b ) - WRITE( 6,140 ) 'ND51b hour to write to disk : ', Input_Opt%ND51b_HR_WRITE - WRITE( 6,140 ) 'ND51b averaging period [GMT]: ', Input_Opt%ND51b_HR1, & - Input_Opt%ND51b_HR2 - WRITE( 6,130 ) 'ND51b longitude limits : ', Input_Opt%ND51b_IMIN,& - Input_Opt%ND51b_IMAX - WRITE( 6,130 ) 'ND51b latitude limits : ', Input_Opt%ND51b_JMIN,& - Input_Opt%ND51b_JMAX - WRITE( 6,130 ) 'ND51b altitude limits : ', Input_Opt%ND51b_LMIN,& - Input_Opt%ND51b_LMAX - ENDIF - - ! FORMAT statements -90 FORMAT( /, A ) -95 FORMAT( A ) -100 FORMAT( A, L5 ) -110 FORMAT( A, A ) -120 FORMAT( A, 100I4 ) -130 FORMAT( A, 2I5 ) -140 FORMAT( A, 2F5.1 ) - - END SUBROUTINE Config_Nd51b -#ifdef TOMAS -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: config_bpch_prodloss - -! !DESCRIPTION: Copies bpch prodloss information from the Config object -! to Input_Opt, and does necessary checks. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Config_Bpch_ProdLoss( Config, Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE CMN_DIAG_MOD, ONLY : ND65 - USE gckpp_Monitor, ONLY : Fam_Names - USE gckpp_Parameters, ONLY : nFam - USE Input_Opt_Mod, ONLY : OptInput - USE QFYAML_Mod, ONLY : QFYAML_t -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(QFYAML_t), INTENT(INOUT) :: Config ! YAML Config object - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input options -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure -! -! !REVISION HISTORY: -! 20 Jul 2004 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - LOGICAL :: v_bool - INTEGER :: v_int, F, N, n_Advect - - ! Strings - CHARACTER(LEN=255) :: thisLoc - CHARACTER(LEN=512) :: errMsg - CHARACTER(LEN=QFYAML_NamLen) :: key - CHARACTER(LEN=QFYAML_StrLen) :: v_str - - ! Arrays -! CHARACTER(LEN=255) :: SUBSTRS(MAXDIM) - - !========================================================================= - ! Config_Bpch_ProdLoss begins here! - !========================================================================= - - ! Initialize - RC = GC_SUCCESS - errMsg = 'Error reading the "geoschem_config.yml" file!' - thisLoc = ' -> at Config_Bpch_ProdLoss (in module GeosCore/input_mod.F90)' - - !------------------------------------------------------------------------ - ! Activate bpch ND65 diagnostic? - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%bpch_diagnostics%" // & - "ND65_prodloss%activate" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, key, v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%DO_SAVE_PL = v_bool - - !------------------------------------------------------------------------ - ! Number of levels for ND65 bpch diagnostic - !------------------------------------------------------------------------ - key = "extra_diagnostics%legacy_bpch%bpch_diagnostics%" // & - "ND65_prodloss%number_of_levels" - v_int = MISSING_INT - CALL QFYAML_Add_Get( Config, key, v_int, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%ND65 = v_int - - ! Copy field to variable in CMN_DIAG - ND65 = Input_Opt%ND65 - - !================================================================= - ! Error check families for certain types of simulations - !================================================================= - - ! Offline aerosol -- turn off DO_SAVE_PL - IF ( Input_Opt%ITS_AN_AEROSOL_SIM ) THEN - Input_Opt%DO_SAVE_PL = .FALSE. - Input_Opt%ND65 = 0 - ENDIF - - !================================================================= - ! Set fields of Input Options object - !================================================================= - - ! Number of advected species - N_ADVECT = Input_Opt%N_ADVECT - - IF ( Input_Opt%DO_SAVE_PL ) THEN - IF ( Input_Opt%ITS_A_FULLCHEM_SIM ) THEN - ! Fullchem - Obtain NFAM from KPP - Input_Opt%NFAM = NFAM - ELSEIF ( Input_Opt%ITS_A_TAGO3_SIM ) THEN - ! Tagged O3 - Input_Opt%NFAM = 2*N_ADVECT - ELSEIF ( Input_Opt%ITS_A_TAGCO_SIM ) THEN - ! Tagged CO - IF ( Input_Opt%LPCO_NMVOC ) THEN - Input_Opt%NFAM = N_ADVECT+2 - ELSE - Input_Opt%NFAM = N_ADVECT+6 - ENDIF - ENDIF - ENDIF - - ! Return if there are no prod/loss families - ! or if we have turned off this diagnostic - IF ( .not. ( Input_Opt%DO_SAVE_PL .and. Input_Opt%NFAM > 0 )) THEN - Input_Opt%DO_SAVE_PL = .FALSE. - Input_Opt%ND65 = 0 + CALL QFYAML_Add_Get( Config, TRIM( key ), a_str, & + "", RC, dynamic_size=.TRUE. ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN ENDIF - ! Loop over families - DO F = 1, Input_Opt%NFAM - - IF ( Input_Opt%ITS_A_FULLCHEM_SIM ) THEN - - ! Fullchem - Obtain FAM_NAME from KPP - Input_Opt%FAM_NAME(F) = FAM_NAMES(F) - - ELSEIF ( Input_Opt%ITS_A_TAGO3_SIM ) THEN - - ! Tagged O3 - IF ( F <= N_ADVECT ) THEN - Input_Opt%FAM_NAME(F) = & - 'P' // TRIM(Input_Opt%AdvectSpc_Name(F)) - ELSE - Input_Opt%FAM_NAME(F) = & - 'L' // TRIM(Input_Opt%AdvectSpc_Name(F-N_ADVECT)) - ENDIF - - ELSEIF ( Input_Opt%ITS_A_TAGCO_SIM ) THEN - - ! Tagged CO - IF ( F <= N_ADVECT ) THEN - Input_Opt%FAM_NAME(F) = 'L'//Input_Opt%AdvectSpc_Name(F) - ELSEIF ( F == N_ADVECT+1 ) THEN - Input_Opt%FAM_NAME(F) = 'PCO_CH4' - ELSEIF ( F == N_ADVECT+2 ) THEN - Input_Opt%FAM_NAME(F) = 'PCO_NMVOC' - ELSEIF ( F == N_ADVECT+3 ) THEN - Input_Opt%FAM_NAME(F) = 'PCO_ISOP' - ELSEIF ( F == N_ADVECT+4 ) THEN - Input_Opt%FAM_NAME(F) = 'PCO_CH3OH' - ELSEIF ( F == N_ADVECT+5 ) THEN - Input_Opt%FAM_NAME(F) = 'PCO_MONO' - ELSEIF ( F == N_ADVECT+6 ) THEN - Input_Opt%FAM_NAME(F) = 'PCO_ACET' - ENDIF + !------------------------------------------------------------------------ + ! Copy species names into Input_Opt + !------------------------------------------------------------------------ + Input_Opt%ObsPack_nSpc = 0 + DO N = 1, SIZE( a_str ) - ENDIF + ! Stop iterationg when we find a missing value + IF ( TRIM( a_str(N) ) == MISSING_STR ) EXIT - ! Get family type as prod or loss - IF ( Input_Opt%FAM_NAME(F)(1:1) == 'P' .or. & - Input_Opt%FAM_NAME(F)(1:1) == 'p' ) THEN - Input_Opt%FAM_TYPE(F) = 'prod' - ELSE - Input_Opt%FAM_TYPE(F) = 'loss' + ! If wildcard for all species is requested then update the + ! list of species to track to be the list of advected species + ! and exit from further + IF ( N==1 .AND. INDEX( a_str(1) , '?ALL' ) > 0) THEN + Input_Opt%ObsPack_SpcName = Input_Opt%AdvectSpc_Name + Input_Opt%ObsPack_nSpc = Input_Opt%N_Advect + EXIT ENDIF + ! Otherwise, increment the count and copy the Obspack species + ! name into the Input_Opt object + Input_Opt%ObsPack_nSpc = Input_Opt%ObsPack_nSpc + 1 + Input_Opt%ObsPack_SpcName(Input_Opt%ObsPack_nSpc) = TRIM( a_str(N) ) ENDDO - !================================================================= + !======================================================================== ! Print to screen - !================================================================= - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, '(/,a)' ) 'PROD & LOSS DIAGNOSTIC SETTINGS' - WRITE( 6, '( a)' ) '-------------------------------' - WRITE( 6, 100 ) 'Turn on prod & loss diag? : ', & - Input_Opt%DO_SAVE_PL - WRITE( 6, 110 ) '# of levels for P/L diag : ', & - Input_Opt%ND65 - - ! Loop over families - DO F = 1, Input_Opt%NFAM - - ! Write family name and type - WRITE( 6, 120 ) TRIM(Input_Opt%FAM_NAME(F)), & - TRIM(Input_Opt%FAM_TYPE(F)) - - ENDDO - + !======================================================================== + IF( Input_Opt%amIRoot ) THEN + WRITE( 6, 90 ) 'OBSPACK SETTINGS' + WRITE( 6, 95 ) '----------------' + WRITE( 6, 100 ) 'Turn on ObsPack diagnostic? : ', & + Input_Opt%Do_ObsPack + WRITE( 6, 100 ) 'Suppress logfile output? : ', & + Input_Opt%ObsPack_Quiet + WRITE( 6, 110 ) 'ObsPack input file : ', & + TRIM( Input_Opt%ObsPack_InputFile ) + WRITE( 6, 110 ) 'ObsPack output file : ', & + TRIM( Input_Opt%ObsPack_OutputFile ) ENDIF ! FORMAT statements -90 FORMAT( /, A ) -95 FORMAT( A ) -100 FORMAT( A, L5 ) -110 FORMAT( A, I5 ) -120 FORMAT( /, 'Family=', A10, ' Type=', A4 ) +90 FORMAT( /, A ) +95 FORMAT( A ) +100 FORMAT( A, L5 ) +110 FORMAT( A, A ) - END SUBROUTINE Config_Bpch_ProdLoss + END SUBROUTINE Config_ObsPack !EOC -#endif -#endif -#endif !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ @@ -4818,6 +3853,9 @@ SUBROUTINE Config_CH4( Config, Input_Opt, RC ) CHARACTER(LEN=QFYAML_NamLen) :: key CHARACTER(LEN=QFYAML_StrLen) :: v_str + ! String arrays + CHARACTER(LEN=QFYAML_NamLen) :: a_str(4) + !======================================================================== ! Config_CH4 begins here! !======================================================================== @@ -4867,71 +3905,33 @@ SUBROUTINE Config_CH4( Config, Input_Opt, RC ) Input_Opt%TCCON_CH4_OBS = v_bool !------------------------------------------------------------------------ - ! Do an analytical inversion? + ! Perturb CH4 boundary conditions? !------------------------------------------------------------------------ - key = "CH4_simulation_options%analytical_inversion%activate" + key = "CH4_simulation_options%analytical_inversion%perturb_CH4_boundary_conditions" v_bool = MISSING_BOOL CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%AnalyticalInv = v_bool - - !------------------------------------------------------------------------ - ! Emission perturbation - !------------------------------------------------------------------------ - key = "CH4_simulation_options%analytical_inversion%emission_perturbation" - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%PerturbEmis = Cast_and_RoundOff( v_str, places=4 ) - - !------------------------------------------------------------------------ - ! Current state vector element number - !------------------------------------------------------------------------ - key = & - "CH4_simulation_options%analytical_inversion%state_vector_element_number" - v_int = MISSING_INT - CALL QFYAML_Add_Get( Config, TRIM( key ), v_int, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%StateVectorElement = v_int - - !------------------------------------------------------------------------ - ! Use emission scale factor? - !------------------------------------------------------------------------ - key = & - "CH4_simulation_options%analytical_inversion%use_emission_scale_factor" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' + errMsg = 'Error parsing ' // TRIM ( key ) // '!' CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - Input_Opt%UseEmisSF = v_bool + Input_Opt%DoPerturbCH4BoundaryConditions = v_bool !------------------------------------------------------------------------ - ! Use OH scale factors? + ! How much to perturb CH4 boundary conditions by? !------------------------------------------------------------------------ - key = "CH4_simulation_options%analytical_inversion%use_OH_scale_factors" - v_bool = MISSING_BOOL - CALL QFYAML_Add_Get( Config, TRIM( key ), v_bool, "", RC ) + key = "CH4_simulation_options%analytical_inversion%CH4_boundary_condition_ppb_increase_NSEW" + a_str = MISSING_STR + CALL QFYAML_Add_Get( Config, TRIM( key ), a_str, "", RC ) IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' + errMsg = 'Error parsing ' // TRIM ( key ) // '!' CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - Input_Opt%UseOHSF = v_bool + Input_Opt%CH4BoundaryConditionIncreaseNorth = Cast_and_RoundOff( a_str(1), places=4 ) + Input_Opt%CH4BoundaryConditionIncreaseSouth = Cast_and_RoundOff( a_str(2), places=4 ) + Input_Opt%CH4BoundaryConditionIncreaseEast = Cast_and_RoundOff( a_str(3), places=4 ) + Input_Opt%CH4BoundaryConditionIncreaseWest = Cast_and_RoundOff( a_str(4), places=4 ) !======================================================================== ! Print to screen @@ -4939,22 +3939,26 @@ SUBROUTINE Config_CH4( Config, Input_Opt, RC ) IF ( Input_Opt%amIRoot ) THEN WRITE(6,90 ) 'CH4 SIMULATION SETTINGS' WRITE(6,95 ) '-----------------------' - WRITE(6,100) 'Use AIRS obs operator : ', Input_Opt%AIRS_CH4_OBS - WRITE(6,100) 'Use GOSAT obs operator : ', Input_Opt%GOSAT_CH4_OBS - WRITE(6,100) 'Use TCCON obs operator : ', Input_Opt%TCCON_CH4_OBS - WRITE(6,100) 'Do analytical inversion : ', Input_Opt%AnalyticalInv - WRITE(6,110) 'Emission perturbation : ', Input_Opt%PerturbEmis - WRITE(6,120) 'Current state vector elem: ', Input_Opt%StateVectorElement - WRITE(6,100) 'Use emis scale factors : ', Input_Opt%UseEmisSF - WRITE(6,100) 'Use OH scale factors : ', Input_Opt%UseOHSF + WRITE(6,100) 'Use AIRS obs operator? : ', Input_Opt%AIRS_CH4_OBS + WRITE(6,100) 'Use GOSAT obs operator? : ', Input_Opt%GOSAT_CH4_OBS + WRITE(6,100) 'Use TCCON obs operator? : ', Input_Opt%TCCON_CH4_OBS + WRITE(6,100) 'Perturb CH4 BCs? : ', Input_Opt%DoPerturbCH4BoundaryConditions + WRITE(6,130) 'CH4 BC ppb increase NSEW : ', Input_Opt%CH4BoundaryConditionIncreaseNorth,& + Input_Opt%CH4BoundaryConditionIncreaseSouth,& + Input_Opt%CH4BoundaryConditionIncreaseEast,& + Input_Opt%CH4BoundaryConditionIncreaseWest ENDIF + ! Flag to denote if any AIRS, GOSAT, TCCON columns will be used + Input_Opt%Satellite_CH4_Columns = ( Input_Opt%AIRS_CH4_OBS .or. & + Input_Opt%GOSAT_CH4_OBS .or. & + Input_Opt%TCCON_CH4_OBS ) + ! FORMAT statements 90 FORMAT( /, A ) 95 FORMAT( A ) 100 FORMAT( A, L5 ) -110 FORMAT( A, f6.2 ) -120 FORMAT( A, I5 ) +130 FORMAT( A, F10.4, 1X, F10.4, 1X, F10.4, 1X, F10.4) END SUBROUTINE Config_CH4 !EOC @@ -5192,200 +4196,6 @@ END SUBROUTINE Config_POPs !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: config_passivespecies -! -! !DESCRIPTION: Copies passive species information from the Config -! object to Input_Opt, and does necessary checks. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Config_PassiveSpecies( Config, Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE RoundOff_Mod, ONLY : Cast_and_RoundOff -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(QFYAML_t), INTENT(INOUT) :: Config ! YAML Config object - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input Options object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 04 Sep 2015 - C. Keller - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - INTEGER :: C - INTEGER :: P - REAL(yp) :: v_real - - ! Strings - CHARACTER(LEN=255) :: thisLoc - CHARACTER(LEN=512) :: errMsg - CHARACTER(LEN=QFYAML_NamLen) :: key - CHARACTER(LEN=QFYAML_StrLen) :: v_str - - ! String arrays - CHARACTER(LEN=QFYAML_NamLen) :: passSpcName(Input_Opt%Max_PassiveSpc) - - !======================================================================== - ! Config_PassiveSpecies - !======================================================================== - - ! Initialize - RC = GC_SUCCESS - errMsg = '' - thisLoc = & - ' -> at Config_PassiveSpecies (in module GeosCore/input_mod.F90)' - - !======================================================================== - ! Check for passive species - !======================================================================== - key = "operations%transport%passive_species%" - CALL QFYAML_FindNextHigher( Config, TRIM( key ), & - Input_Opt%nPassive, passSpcName ) - - ! Return if there are no passive species - IF ( Input_Opt%nPassive == 0 ) RETURN - - ! Throw an error if there are more than the max # of passive species - IF ( Input_Opt%nPassive > Input_Opt%Max_PassiveSpc ) THEN - errMsg = 'Number of passive species exceeds maximum. ' // & - 'This value can be modified in input_opt_mod.F90.' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - - !======================================================================== - ! Copy the passive species names & metadata into Input_Opt - !======================================================================== - - ! Write header - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, '(/,a)' ) 'PASSIVE SPECIES SETTINGS' - WRITE( 6, '( a)' ) '------------------------' - ENDIF - - ! Loop over passive species - DO P = 1, Input_Opt%nPassive - - !--------------------------------------------------------------------- - ! Passive species index and name - !--------------------------------------------------------------------- - - ! Index - Input_Opt%Passive_Id(P) = P - - ! NOTE: passSpcName is the full YAML variable name - ! (e.g. operations%trasnport%passive_species%...", - ! but we'll extract the last part of that for saving into - ! Input_Opt%Passive_Name. - C = INDEX( passSpcName(P), '%', back=.TRUE. ) - Input_Opt%Passive_Name(P) = TRIM( passSpcName(P)(C+1:) ) - - !--------------------------------------------------------------------- - ! Passive species long name (if found) - !--------------------------------------------------------------------- - key = TRIM( passSpcName(P) ) // '%long_name' - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%Passive_LongName(P) = TRIM( v_str ) - - !--------------------------------------------------------------------- - ! Passive species molecular weight (g) - !--------------------------------------------------------------------- - key = TRIM( passSpcName(P) ) // '%mol_wt_in_g' - v_str = MISSING_STR - CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%Passive_MW(P) = Cast_and_RoundOff( v_str, places=2 ) - - !--------------------------------------------------------------------- - ! Passive species lifetime (s); -1 means it never decays - !--------------------------------------------------------------------- - key = TRIM( passSpcName(P) ) // '%lifetime_in_s' - CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%Passive_Tau(P) = Cast_and_RoundOff( v_str, places=-1 ) - - ! Determine if the passive species decays (i.e. if it has - ! an atmospheric lifetime that is not -1). This will allow - ! us to skip those passive species that do not decay in - ! routine CHEM_PASSIVE_SPECIES, to speed up execution. - IF ( Input_Opt%Passive_Tau(P) > 0.0_fp ) THEN - Input_Opt%nPassive_Decay = Input_Opt%nPassive_Decay + 1 - Input_Opt%Passive_DecayId(Input_Opt%nPassive_Decay) = P - ENDIF - - !--------------------------------------------------------------------- - ! Default background concentration (v/v) - !--------------------------------------------------------------------- - key = TRIM( passSpcName(P) ) // '%default_bkg_conc_in_vv' - CALL QFYAML_Add_Get( Config, TRIM( key ), v_str, "", RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error parsing ' // TRIM( key ) // '!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - Input_Opt%Passive_Initconc(P) = Cast_and_RoundOff( v_str, places=-1 ) - - !--------------------------------------------------------------------- - ! Logfile output - !--------------------------------------------------------------------- - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 95 ) 'Added passive species: ' - WRITE( 6, 110 ) ' - Species name : ', & - TRIM( Input_Opt%Passive_Name(P) ) - WRITE( 6, 120 ) ' - Molec. weight [g/mol] : ', & - Input_Opt%Passive_MW(P) - WRITE( 6, 130 ) ' - Lifetime [s] : ', & - Input_Opt%Passive_TAU(P) - WRITE( 6, 130 ) ' - Initial concentration [v/v] : ', & - Input_Opt%Passive_InitConc(P) - WRITE( 6, 110 ) ' - Species long name : ', & - TRIM( Input_Opt%Passive_LongName(P) ) - ENDIF - ENDDO - - ! Format statememnts -90 FORMAT( /, A ) -95 FORMAT( A ) -110 FORMAT( A, A ) -120 FORMAT( A, F10.2 ) -130 FORMAT( A, ES10.2 ) - - END SUBROUTINE Config_PassiveSpecies -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! ! !IROUTINE: validate_directories ! ! !DESCRIPTION: Makes sure that each of the directories that we have read from @@ -5747,88 +4557,6 @@ SUBROUTINE Check_Time_Steps( Input_Opt, State_Grid, RC ) END SUBROUTINE Check_Time_Steps !EOC -#if !(defined( EXTERNAL_GRID ) || defined( EXTERNAL_FORCING )) -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: is_last_day_good -! -! !DESCRIPTION: Tests to see if there is output scheduled on the last day of -! the run. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE IS_LAST_DAY_GOOD( Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE JULDAY_MOD, ONLY : JULDAY - USE TIME_MOD, ONLY : GET_NYMDe, ITS_A_LEAPYEAR, YMD_EXTRACT -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input options - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 20 Jul 2004 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Scalars - LOGICAL :: IS_LEAPYEAR - INTEGER :: NYMDe, Y, M, D, LASTDAY - REAL(fp) :: JD, JD0 - - ! Strings - CHARACTER(LEN=255) :: errMsg, thisLoc - - !================================================================= - ! Is_Last_Day_Good begins here! - !================================================================= - - ! Initialize - RC = GC_SUCCESS - errMsg = '' - thisLoc = ' -> at Is_Last_Day_Good (in module GeosCore/input_mod.F90)' - - ! Astronomical Julian Day corresponding to NYMDe - NYMDe = GET_NYMDe() - CALL YMD_EXTRACT( NYMDe, Y, M, D ) - JD = JULDAY( Y, M, DBLE( D ) ) - - ! Astronomical Julian Day corresponding to the 1st of the year - JD0 = JULDAY( Y, 1, 0d0 ) - - ! LASTDAY is the day of year corresponding to NYMDe - LASTDAY = JD - JD0 - - ! Skip past the element of NJDAY for Feb 29, if necessary - IF ( .not. ITS_A_LEAPYEAR( Y, .TRUE. ) .and. LASTDAY > 59 ) THEN - LASTDAY = LASTDAY + 1 - ENDIF - - ! Exit w/ error if THIS_NJDAY = 0 - IF ( Input_Opt%NJDAY(LASTDAY) == 0 ) THEN - errMsg = 'No output scheduled on last day of run!' - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - - END SUBROUTINE IS_LAST_DAY_GOOD -!EOC -#endif -#endif !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ @@ -6092,8 +4820,8 @@ SUBROUTINE Do_Error_Checks( Input_Opt, RC ) !================================================================= #ifdef TOMAS - ! For TOMAS only: If DUST1 is present, the other dust species are too - I = MAX( Ind_('DUST1','A'), 0 ) + ! For TOMAS only: If DUST01 is present, the other dust species are too + I = MAX( Ind_('DUST01','A'), 0 ) #else ! Non-TOMAS simulations: Need all DST1-DST4 species I = MAX( Ind_('DST1','A'), 0 ) + & diff --git a/GeosCore/land_mercury_mod.F90 b/GeosCore/land_mercury_mod.F90 index 57e7aed9b..a315f6c6c 100644 --- a/GeosCore/land_mercury_mod.F90 +++ b/GeosCore/land_mercury_mod.F90 @@ -113,11 +113,11 @@ SUBROUTINE LAND_MERCURY_FLUX( LFLUX, LHGSNOW, State_Grid, State_Met ) DO I = 1, State_Grid%NX ! Distinguish between ice/snow and snow-free land - FRAC_SNOW_OR_ICE = MIN( State_Met%FRSNO(I,J) + & + FRAC_SNOW_OR_ICE = MIN( State_Met%FRSNOW(I,J) + & State_Met%FRSEAICE(I,J) + & - State_Met%FRLANDIC(I,J), 1e+0_fp) + State_Met%FRLANDICE(I,J), 1e+0_fp) FRAC_SNOWFREE_LAND = MAX( State_Met%FRLAND(I,J) - & - State_Met%FRSNO(I,J), 0e+0_fp) + State_Met%FRSNOW(I,J), 0e+0_fp) IS_LAND_OR_ICE = (( FRAC_SNOWFREE_LAND > 0e+0_fp ) .OR. & ( FRAC_SNOW_OR_ICE > 0e+0_fp )) @@ -485,7 +485,7 @@ SUBROUTINE SOILEMIS( EHg0_dist, EHg0_so, State_Grid, State_Met ) DO I=1, State_Grid%NX FRAC_SNOWFREE_LAND = MAX( State_Met%FRLAND(I,J) - & - State_Met%FRSNO(I,J), 0e+0_fp ) + State_Met%FRSNOW(I,J), 0e+0_fp ) IS_SNOWFREE_LAND = ( FRAC_SNOWFREE_LAND > 0e+0_fp ) ! First, assume no soil emissions (e.g. for snow/water/ice) diff --git a/GeosCore/linear_chem_mod.F90 b/GeosCore/linear_chem_mod.F90 index e338e47ec..2627e4aa4 100644 --- a/GeosCore/linear_chem_mod.F90 +++ b/GeosCore/linear_chem_mod.F90 @@ -166,7 +166,8 @@ SUBROUTINE DO_LINEAR_CHEM( Input_Opt, State_Chm, State_Grid, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : TIMESTAMP_STRING - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod IMPLICIT NONE ! @@ -202,9 +203,8 @@ SUBROUTINE DO_LINEAR_CHEM( Input_Opt, State_Chm, State_Grid, & LOGICAL :: IT_IS_A_TAGO3_SIM ! Scalars - LOGICAL :: prtDebug - INTEGER :: I, J, L, N - INTEGER :: NN + INTEGER :: previous_units + INTEGER :: I, J, L, N, NN REAL(fp) :: dt, P, k, M0, RC REAL(fp) :: TK, RDLOSS, T1L, mOH, BryTmp REAL(fp) :: BOXVL, Num, Den, M @@ -219,7 +219,6 @@ SUBROUTINE DO_LINEAR_CHEM( Input_Opt, State_Chm, State_Grid, & ! Strings CHARACTER(LEN=16) :: STAMP - CHARACTER(LEN=63) :: OrigUnit CHARACTER(LEN=255) :: ThisLoc CHARACTER(LEN=512) :: ErrMsg @@ -242,7 +241,6 @@ SUBROUTINE DO_LINEAR_CHEM( Input_Opt, State_Chm, State_Grid, & LSYNOZ = Input_Opt%LSYNOZ IT_IS_A_FULLCHEM_SIM = Input_Opt%ITS_A_FULLCHEM_SIM IT_IS_A_TAGO3_SIM = Input_Opt%ITS_A_TAGO3_SIM - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) Spc => NULL() AD => NULL() T => NULL() @@ -306,7 +304,7 @@ SUBROUTINE DO_LINEAR_CHEM( Input_Opt, State_Chm, State_Grid, & ENDIF #endif - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### LINEAR_CHEM: at DO_LINEAR_CHEM' ) ENDIF @@ -602,9 +600,22 @@ SUBROUTINE DO_LINEAR_CHEM( Input_Opt, State_Chm, State_Grid, & !====================================================================== IF ( LLINOZ .OR. LSYNOZ ) THEN - ! Convert units to [v/v dry air] for Linoz and Synoz (ewl, 10/05/15) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'v/v dry', errCode, OrigUnit=OrigUnit ) + ! Halt linear chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Linearized chem", errCode ) + ENDIF + + ! Convert units to [v/v dry air] aka [mol/mol dry] + ! for Linoz and Synoz (ewl, 10/05/15) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = errCode ) ! Trap potential errors IF ( errCode /= GC_SUCCESS ) THEN @@ -613,6 +624,11 @@ SUBROUTINE DO_LINEAR_CHEM( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Start linear chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Linearized chem", errCode ) + ENDIF + ! Do LINOZ or SYNOZ IF ( LLINOZ ) THEN CALL Do_Linoz( Input_Opt, State_Chm, State_Grid, & @@ -622,9 +638,20 @@ SUBROUTINE DO_LINEAR_CHEM( Input_Opt, State_Chm, State_Grid, & State_Met, errCode ) ENDIF - ! Convert species units back to original unit - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, errCode ) + ! Halt linear chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Linearized chem", errCode ) + ENDIF + + ! Convert species units back to original unit + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = errCode ) ! Trap potential errors IF ( errCode /= GC_SUCCESS ) THEN @@ -633,6 +660,11 @@ SUBROUTINE DO_LINEAR_CHEM( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Start linear chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Linearized chem", errCode ) + ENDIF + ENDIF ELSE @@ -1148,15 +1180,15 @@ SUBROUTINE INIT_LINEAR_CHEM( Input_Opt, State_Chm, State_Met, & IF ( TRIM( SpcInfo%Name ) .eq. TRIM(sname) ) THEN IF ( LLINOZ .and. TRIM( SpcInfo%Name ) .eq. 'O3' ) THEN - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, '(a)' ) TRIM( SpcInfo%Name ) // ' (via Linoz)' ENDIF ELSE IF ( Input_Opt%LSYNOZ .AND. TRIM( SpcInfo%Name ) .eq. 'O3' ) THEN - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, '(a)' ) TRIM( SpcInfo%Name ) // ' (via Synoz)' ENDIF ELSE - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, '(a)' ) TRIM( SpcInfo%Name )//' (via GMI rates)' ENDIF ENDIF @@ -1173,7 +1205,7 @@ SUBROUTINE INIT_LINEAR_CHEM( Input_Opt, State_Chm, State_Met, & ! These are the reactions with which we will use OH fields ! to determine loss. - IF( Input_Opt%amIRoot ) THEN + IF( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN IF ( id_CHBr3 .gt. 0 ) WRITE(6,*) 'CHBr3 (from GMI OH)' IF ( id_CH2Br2 .gt. 0 ) WRITE(6,*) 'CH2Br2 (from GMI OH)' IF ( id_CH3Br .gt. 0 ) WRITE(6,*) 'CH3Br (from GMI OH)' @@ -1184,11 +1216,11 @@ SUBROUTINE INIT_LINEAR_CHEM( Input_Opt, State_Chm, State_Met, & !===========! ELSE IF ( IT_IS_A_TAGO3_SIM ) THEN IF ( LLINOZ ) THEN - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE(6,*) 'Linoz ozone performed on: ' ENDIF ELSE - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE(6,*) 'Synoz ozone performed on: ' ENDIF ENDIF diff --git a/GeosCore/linoz_mod.F90 b/GeosCore/linoz_mod.F90 index 55450bc48..9b158fb99 100644 --- a/GeosCore/linoz_mod.F90 +++ b/GeosCore/linoz_mod.F90 @@ -241,9 +241,6 @@ SUBROUTINE LINOZ_CHEM3( DTCHEM, Input_Opt, State_Chm, State_Grid, & ! from the State_Chm object. (hplin, 1/22/19) REAL(fp), POINTER :: TLSTT (:,:,:,:) ! IM, JM, LM, Input_Opt%LINOZ_NFIELDS - ! Print debug output? - LOGICAL :: prtDebug - ! SAVED scalars LOGICAL, SAVE :: FIRST = .TRUE. INTEGER, SAVE :: id_O3 @@ -252,9 +249,6 @@ SUBROUTINE LINOZ_CHEM3( DTCHEM, Input_Opt, State_Chm, State_Grid, & ! LINOZ_CHEM3 begins here! !================================================================= - ! Print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Assume success RC = GC_SUCCESS @@ -344,7 +338,7 @@ SUBROUTINE LINOZ_CHEM3( DTCHEM, Input_Opt, State_Chm, State_Grid, & DO J = 1, JM DO I = 1, IM - !IF ( prtDebug ) THEN + !IF ( Input_Opt%Verbose ) THEN ! PRINT*, '### I: ', I, 'J: ', J ! CALL FLUSH(6) !END IF @@ -356,7 +350,7 @@ SUBROUTINE LINOZ_CHEM3( DTCHEM, Input_Opt, State_Chm, State_Grid, & ENDDO LPOS = LPOS-1 - !IF ( prtDebug ) CALL DEBUG_MSG('DONE GET_PEDGE') + !IF ( Input_Opt%Verbose ) CALL DEBUG_MSG('DONE GET_PEDGE') #if defined( ESMF_ ) || defined( EXTERNAL_GRID ) || defined( EXTERNAL_FORCING ) !----------------------------------------------------------- @@ -380,13 +374,13 @@ SUBROUTINE LINOZ_CHEM3( DTCHEM, Input_Opt, State_Chm, State_Grid, & Spc(1)%Conc(I,J,(L_OVERWRLD+1):State_Grid%NZ) ENDIF #endif - !IF ( prtDebug ) CALL DEBUG_MSG( '### LINOZ_CHEM3: at LM, LBOT') - !IF ( prtDebug ) CALL DEBUG_MSG('DONE TAGO3') + !IF ( Input_Opt%Verbose ) CALL DEBUG_MSG( '### LINOZ_CHEM3: at LM, LBOT') + !IF ( Input_Opt%Verbose ) CALL DEBUG_MSG('DONE TAGO3') ! Loop over levels DO L = LM, LBOT, -1 - !IF ( prtDebug ) THEN + !IF ( Input_Opt%Verbose ) THEN ! PRINT*, '### Spc: ', Spc(NTRACER)%Conc(I,J,L) ! CALL FLUSH(6) !ENDIF @@ -468,7 +462,7 @@ SUBROUTINE LINOZ_CHEM3( DTCHEM, Input_Opt, State_Chm, State_Grid, & !write(6,*) 'max of columns= ',maxval(out_data) ENDDO - IF ( prtDebug ) CALL DEBUG_MSG('DONE LINOZ_CHEM3') + IF ( Input_Opt%Verbose ) CALL DEBUG_MSG('DONE LINOZ_CHEM3') ! Free pointer Spc => NULL() @@ -580,7 +574,7 @@ SUBROUTINE LINOZ_STRATL( Input_Opt, State_Chm, State_Grid, RC ) TLSTT => State_Chm%TLSTT ! Echo info to stdout - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, '(a)' ) REPEAT( '#', 79 ) WRITE( 6, 50 ) CMONTH(MONTH) WRITE( 6, '(a)' ) REPEAT( '#', 79 ) @@ -1143,7 +1137,7 @@ SUBROUTINE LINOZ_READ( Input_Opt, RC ) ! Read header READ ( IU_FILE, '(a)' ) HEADING - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE(6,*) TRIM( HEADING ) ENDIF @@ -1185,13 +1179,15 @@ SUBROUTINE LINOZ_READ( Input_Opt, RC ) enddo ! Write overall min & max - IF ( Input_Opt%amIRoot ) write (6,912) TITL1,TMIN,TMAX + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN + write (6,912) TITL1,TMIN,TMAX + ENDIF 912 FORMAT(' Linoz Data: ',a80,1p,2e10.3) enddo ! Echo info - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, '(a)' ) '$$ Finished Reading Linoz Data $$' WRITE( 6, '(a)' ) ENDIF diff --git a/GeosCore/mercury_mod.F90 b/GeosCore/mercury_mod.F90 index ef4e5f3db..68aa04a32 100644 --- a/GeosCore/mercury_mod.F90 +++ b/GeosCore/mercury_mod.F90 @@ -104,8 +104,8 @@ MODULE Mercury_Mod !-------------------------------------------------------------------------- ! Scalars !-------------------------------------------------------------------------- - LOGICAL :: Failed2x - INTEGER :: N_Hg_CATS + LOGICAL :: doSuppress, Failed2x + INTEGER :: errorCount, N_Hg_CATS INTEGER :: id_Hg0, id_Hg2, id_HgP INTEGER :: id_phot_NO2, id_phot_BrO, id_phot_ClO INTEGER :: id_phot_Hg2Org, id_O3, id_OH @@ -165,7 +165,7 @@ MODULE Mercury_Mod REAL(f4), POINTER :: ClO(:,:,:) => NULL() REAL(f4), POINTER :: Cl(:,:,:) => NULL() REAL(f4), POINTER :: OA(:,:,:) => NULL() - REAL(f4), POINTER :: OCEAN_CONC(:,:,:) => NULL() + REAL(f4), POINTER :: OCEAN_CONC(:,:) => NULL() REAL(f4), POINTER :: GLOB_PM25(:,:,:) => NULL() REAL(f4), POINTER :: GLOB_fOA (:,:,:) => NULL() REAL(f4), POINTER :: GLOB_RH(:,:,:) => NULL() @@ -226,7 +226,8 @@ SUBROUTINE EmissMercury( Input_Opt, State_Chm, State_Diag, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE Time_Mod, ONLY : GET_MONTH, ITS_A_NEW_MONTH - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod ! Added for GTMM (ccc, 11/19/09) !USE LAND_MERCURY_MOD, ONLY : GTMM_DR @@ -259,30 +260,39 @@ SUBROUTINE EmissMercury( Input_Opt, State_Chm, State_Diag, & ! !LOCAL VARIABLES: ! LOGICAL, SAVE :: FIRST = .TRUE. - INTEGER :: THISMONTH, I, J - LOGICAL :: prtDebug + INTEGER :: THISMONTH, I, J, previous_units ! Pointers REAL(f4), POINTER :: Ptr2D(:,:) ! Strings - CHARACTER(LEN=63) :: OrigUnit CHARACTER(LEN=255) :: ErrMsg CHARACTER(LEN=255) :: ThisLoc - !================================================================= + !======================================================================== ! EMISSMERCURY begins here! - !================================================================= + !======================================================================== ! Assume success RC = GC_SUCCESS - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ErrMsg = '' ThisLoc = ' -> at EMISSMERCURY (in module GeosCore/mercury_mod.F90)' + ! Halt HEMCO timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "HEMCO", RC ) + ENDIF + ! Convert species units to [kg] for EMISSMERCURY (ewl, 8/12/15) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = KG_SPECIES, & + previous_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -291,9 +301,14 @@ SUBROUTINE EmissMercury( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - !================================================================= + ! Start HEMCO timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "HEMCO", RC ) + ENDIF + + !======================================================================== ! Get data pointers from HEMCO on the first call - !================================================================= + !======================================================================== IF ( FIRST ) THEN ! Soil distribution @@ -324,14 +339,18 @@ SUBROUTINE EmissMercury( Input_Opt, State_Chm, State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & LFLUX = EHg0_ln ) - IF ( prtDebug ) CALL DEBUG_MSG( '### EMISSMERCURY: a LAND_FLUX' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### EMISSMERCURY: a LAND_FLUX' ) + ENDIF ! Get soil mercury flux of Hg0 CALL SOILEMIS( EHg0_dist = EHg0_dist, & State_Grid = State_Grid, & State_Met = State_Met, & EHg0_so = EHg0_so ) - IF ( prtDebug ) CALL DEBUG_MSG( '### EMISSMERCURY: a SOILEMIS' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### EMISSMERCURY: a SOILEMIS' ) + ENDIF ! Get snow mercury flux of Hg0 CALL SNOWPACK_MERCURY_FLUX( LHgSNOW = LHgSNOW, & @@ -339,7 +358,9 @@ SUBROUTINE EmissMercury( Input_Opt, State_Chm, State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & FLUX = EHg0_snow ) - IF ( prtDebug ) CALL DEBUG_MSG( '### EMISSMERCURY: a SNOW_FLUX' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### EMISSMERCURY: a SNOW_FLUX' ) + ENDIF ! If we are using the non-local PBL mixing, ! we need to initialize the EMIS_SAVE array (cdh, 08/27/09) @@ -348,22 +369,42 @@ SUBROUTINE EmissMercury( Input_Opt, State_Chm, State_Diag, & ! Zero arrays for Hg deposition CALL RESET_HG_DEP_ARRAYS() - IF ( prtDebug ) CALL DEBUG_MSG( '### EMISSMERCURY: ' // & - 'a RESET_HG_DEP_ARRAYS' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### EMISSMERCURY: a RESET_HG_DEP_ARRAYS' ) + ENDIF ! Add Hg(0) source into State_Chm%Species [kg] CALL SRCHg0( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, RC ) - IF ( prtDebug ) CALL DEBUG_MSG( '### EMISSMERCURY: a SRCHg0' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### EMISSMERCURY: a SRCHg0' ) + ENDIF + + ! Halt HEMCO timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "HEMCO", RC ) + ENDIF ! Convert species units back to original unit - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'Routine EMISSMERCURY in mercury_mod.F90') RETURN ENDIF + ! Start HEMCO timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "HEMCO", RC ) + ENDIF + END SUBROUTINE EMISSMERCURY !EOC !------------------------------------------------------------------------------ @@ -609,8 +650,6 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & ! USE Depo_Mercury_Mod, ONLY : ADD_Hg2_DD USE Depo_Mercury_Mod, ONLY : ADD_HgP_DD - USE FAST_JX_MOD, ONLY : FAST_JX - USE CMN_FJX_MOD USE GcKpp_Monitor, ONLY : SPC_NAMES, FAM_NAMES USE GcKpp_Parameters USE GcKpp_Integrator, ONLY : Integrate @@ -618,7 +657,7 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & USE GcKpp_Model USE Gckpp_Global USE GcKpp_Rates, ONLY : UPDATE_RCONST, RCONST - USE Timers_Mod + USE Photolysis_Mod, ONLY : Do_Photolysis USE PhysConstants, ONLY : AVO USE State_Chm_Mod, ONLY : Ind_ USE PRESSURE_MOD @@ -629,7 +668,7 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & USE Time_Mod, ONLY : Get_Year USE Time_Mod, ONLY : ITS_A_NEW_MONTH, ITS_A_NEW_DAY USE Time_Mod, ONLY : ITS_TIME_FOR_A3 - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod USE ErrCode_Mod USE ERROR_MOD, ONLY : ERROR_STOP, DEBUG_MSG, SAFE_DIV USE HCO_STATE_GC_MOD, ONLY : HcoState @@ -640,6 +679,8 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState + USE Timers_Mod, ONLY : Timer_End, Timer_Start + ! ! !INPUT PARAMETERS: ! @@ -665,20 +706,20 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & LOGICAL, SAVE :: FIRST = .TRUE. ! Scalars - LOGICAL :: prtDebug - INTEGER :: I, J, L, K - INTEGER :: N, NN, CN, Hg_Cat - INTEGER :: NA, F, SpcID, KppID - INTEGER :: P, MONTH, YEAR, IRH - INTEGER :: TotSteps, TotFuncs, TotJacob, TotAccep - INTEGER :: TotRejec, TotNumLU, HCRC, IERR - INTEGER :: Day, S - REAL(fp) :: REL_HUM, Start, Finish, rtim - REAL(fp) :: itim, TOUT, T, TIN + LOGICAL :: doSuppress + INTEGER :: previous_units + INTEGER :: I, J, L, K + INTEGER :: N, NN, CN, Hg_Cat + INTEGER :: NA, F, SpcID, KppID + INTEGER :: P, MONTH, YEAR, IRH + INTEGER :: TotSteps, TotFuncs, TotJacob, TotAccep + INTEGER :: TotRejec, TotNumLU, HCRC, IERR + INTEGER :: Day, S, errorCount + REAL(fp) :: REL_HUM, rtim, itim, TOUT + REAL(fp) :: T, TIN ! Strings CHARACTER(LEN=16) :: thisName - CHARACTER(LEN=63) :: origUnit CHARACTER(LEN=255) :: errMsg CHARACTER(LEN=255) :: thisLoc @@ -689,22 +730,23 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & REAL(dp) :: RSTATE(20) REAL(dp) :: Vloc(NVAR) REAL(dp) :: Aout(NREACT) -#ifdef MODEL_GEOS - REAL(dp) :: localC(NSPEC) -#endif + REAL(dp) :: C_before_integrate(NSPEC) ! Pointers - TYPE(SpcConc), POINTER :: Spc(:) - REAL(fp), POINTER :: TK(:,:,: ) - - ! Objects TYPE(Species), POINTER :: SpcInfo + TYPE(SpcConc), POINTER :: Spc (:) + INTEGER, POINTER :: IRHARR (:,:,:) + REAL(fp), POINTER :: TK (:,:,:) + REAL(fp), POINTER :: ODAER (:,:,:,:,:) + REAL(fp), POINTER :: ODMDUST(:,:,:,:,:) ! ! !DEFINED PARAMETERS: ! - ! Toggle hetchem or photolysis on/off for testing (default=on) + ! Toggle hetchem for testing (default=on) LOGICAL, PARAMETER :: DO_HETCHEM = .TRUE. - LOGICAL, PARAMETER :: DO_PHOTCHEM = .TRUE. + + ! Suppress KPP integrator output after this many errors occur + INTEGER, PARAMETER :: INTEGRATE_FAIL_TOGGLE = 20 ! Relative Humidities (to be passed to FAST_JX) REAL(fp), PARAMETER :: RH(5) = (/0.0_fp, 0.5_fp, 0.7_fp, 0.8_fp, 0.9_fp/) @@ -714,25 +756,31 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & !======================================================================== ! Initialize - RC = GC_SUCCESS - errMsg = '' - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - thisLoc = ' -> at ChemMercury (in GeosCore/mercury_mod.F90)' - itim = 0.0_fp ! For KPP timing - rtim = 0.0_fp ! For KPP timing - totsteps = 0 ! Total # of KPP timesteps - totfuncs = 0 ! Total # of integrator function calls - totjacob = 0 ! Total # of jacobian calls - totaccep = 0 ! Total # of KPP calls that finished OK - totrejec = 0 ! Total # of KPP calls that didn't converge - totnumLU = 0 ! Total # of LU decomposition calls - Day = Get_Day() ! Current day - Month = Get_Month() ! Current month - Year = Get_Year() ! Current year - Spc => State_Chm%Species ! Chemical species array [kg] - TK => State_Met%T ! Temperature [K] - SpcInfo => NULL() ! Pointer to GEOS-Chem species database - Failed2x = .FALSE. ! Flag for graceful exit of simulation + RC = GC_SUCCESS + errMsg = '' + thisLoc = ' -> at ChemMercury (in GeosCore/mercury_mod.F90)' + itim = 0.0_fp ! For KPP timing + rtim = 0.0_fp ! For KPP timing + totsteps = 0 ! Total # of KPP timesteps + totfuncs = 0 ! Total # of integrator function calls + totjacob = 0 ! Total # of jacobian calls + totaccep = 0 ! Total # of KPP calls that finished OK + totrejec = 0 ! Total # of KPP calls that didn't converge + totnumLU = 0 ! Total # of LU decomposition calls + errorCount = 0 ! Count of KPP integration errors + Day = Get_Day() ! Current day + Month = Get_Month() ! Current month + Year = Get_Year() ! Current year + Failed2x = .FALSE. ! Flag for graceful exit of simulation + doSuppress = .FALSE. ! Suppress further KPP integration errmsgs? + + ! Initialize pointers + SpcInfo => NULL() ! Pointer to GEOS-Chem species database + Spc => State_Chm%Species ! Chemical species array [kg] + TK => State_Met%T ! Temperature [K] + IRHARR => State_Chm%Phot%IRHARR ! Relative humidity indexes + ODAER => State_Chm%Phot%ODAER ! Aerosol optical depth + ODMDUST => State_Chm%Phot%ODMDUST ! Dust optical depth !======================================================================== ! Set chemistry options and pointers to chemical inputs from HEMCO @@ -744,7 +792,7 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & ' is turned off for testing purposes.' WRITE( 6, '(a)' ) REPEAT( '#', 32 ) ENDIF - IF ( .not. DO_PHOTCHEM ) THEN + IF ( .not. Input_Opt%Do_Photolysis ) THEN WRITE( 6, '(a)' ) REPEAT( '#', 32 ) WRITE( 6, '(a)' ) ' # Do_FlexChem: Photolysis chemistry' // & ' is turned off for testing purposes.' @@ -822,6 +870,7 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & IF (State_Diag%Archive_JNoon ) State_Diag%JNoon = 0.0_f4 IF (State_Diag%Archive_OHreactivity ) State_Diag%OHreactivity = 0.0_f4 IF (State_Diag%Archive_RxnRate ) State_Diag%RxnRate = 0.0_f4 + IF (State_Diag%Archive_RxnConst ) State_Diag%RxnConst = 0.0_f4 IF (State_Diag%Archive_HgBrAfterChem ) State_Diag%HgBrAfterChem = 0.0_f4 IF (State_Diag%Archive_HgClAfterChem ) State_Diag%HgClAfterChem = 0.0_f4 IF (State_Diag%Archive_HgOHAfterChem ) State_Diag%HgOHAfterChem = 0.0_f4 @@ -842,32 +891,49 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & !====================================================================== ! Convert species to [molec/cm3] (ewl, 8/16/16) !====================================================================== - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'molec/cm3', RC, OrigUnit=OrigUnit ) + + ! Halt gas-phase chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Gas-phase chem", RC ) + ENDIF + + ! Convert units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = MOLECULES_SPECIES_PER_CM3, & + previous_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN errMsg = 'Unit conversion error!' CALL GC_Error( errMsg, RC, 'mercury_mod.F90') RETURN ENDIF + ! Start gas-phase chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Gas-phase chem", RC ) + ENDIF + !======================================================================== ! Call photolysis routine to compute J-Values !======================================================================== - IF ( DO_PHOTCHEM ) THEN + IF ( Input_Opt%Do_Photolysis ) THEN !Compute J values - CALL Fast_JX( 0, Input_Opt, State_Chm, & - State_Diag, State_Grid, State_Met, RC ) - - ! Trap potential errors + CALL Do_Photolysis( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error encountered in "FAST_JX"!' + errMsg = 'Error encountered in "Do_Photolysis"!' CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF !### Debug - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### ChemMercury: after FAST_JX' ) ENDIF ENDIF @@ -885,7 +951,7 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & ENDIF !### Debug - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### ChemMercury: after Set_HgOxidConc' ) ENDIF @@ -903,10 +969,10 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & !%%%%% CONVERGENCE CRITERIA %%%%% ! Absolute tolerance - ATOL = 1e-2_dp + ATOL = State_Chm%KPP_AbsTol ! Relative tolerance - RTOL = 1e-2_dp + RTOL = State_Chm%KPP_RelTol !%%%%% SOLVER OPTIONS %%%%% @@ -950,24 +1016,20 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED )& - !$OMP PRIVATE( I, J, L, N )& - !$OMP PRIVATE( IERR, RCNTRL, START, FINISH, ISTATUS )& - !$OMP PRIVATE( RSTATE, SpcID, KppID, F, P )& - !$OMP PRIVATE( Vloc, Aout, NN )& - !$OMP REDUCTION( +:ITIM )& - !$OMP REDUCTION( +:RTIM )& - !$OMP REDUCTION( +:TOTSTEPS )& - !$OMP REDUCTION( +:TOTFUNCS )& - !$OMP REDUCTION( +:TOTJACOB )& - !$OMP REDUCTION( +:TOTACCEP )& - !$OMP REDUCTION( +:TOTREJEC )& - !$OMP REDUCTION( +:TOTNUMLU )& + !$OMP PRIVATE( I, J, L, N )& + !$OMP PRIVATE( IERR, RCNTRL, ISTATUS, RSTATE )& + !$OMP PRIVATE( SpcID, KppID, F, P )& + !$OMP PRIVATE( Vloc, Aout, NN, C_before_integrate )& !$OMP COLLAPSE( 3 )& - !$OMP SCHEDULE ( DYNAMIC, 24 ) + !$OMP SCHEDULE ( DYNAMIC, 24 )& + !$OMP REDUCTION( +:errorCount ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Skip to the end of the loop if we have failed integration twice + IF ( Failed2x ) CYCLE + !==================================================================== ! For safety sake, initialize certain variables for each grid ! box (I,J,L), whether or not chemistry will be done there. @@ -1005,11 +1067,11 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & IF ( State_Met%SUNCOSmid(I,J) > -0.1391731e+0_fp ) THEN ! Loop over the FAST-JX photolysis species - DO N = 1, nRatJ + DO N = 1, State_Chm%Phot%nPhotRxns ! Copy photolysis rate from FAST_JX into KPP PHOTOL array - IF ( DO_PHOTCHEM ) THEN - PHOTOL(N) = ZPJ(L,N,I,J) + IF ( Input_Opt%Do_Photolysis ) THEN + PHOTOL(N) = State_Chm%Phot%ZPJ(L,N,I,J) ENDIF !--------------------------------------------------------------- @@ -1021,7 +1083,7 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & IF ( State_Diag%Archive_JVal ) THEN ! GC photolysis species index - P = GC_Photo_Id(N) + P = State_Chm%Phot%GC_Photo_Id(N) ! Archive the instantaneous photolysis rate ! (summing over all reaction branches) @@ -1033,7 +1095,7 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & IF ( State_Diag%Archive_SatDiagnJVal ) THEN ! GC photolysis species index - P = GC_Photo_Id(N) + P = State_Chm%Phot%GC_Photo_Id(N) ! Archive the instantaneous photolysis rate ! (summing over all reaction branches) @@ -1083,25 +1145,12 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & !--------------------------------------------------------------------- IF ( State_Diag%Archive_RxnRate ) THEN -#ifdef MODEL_GEOS - !------------------------------------------ - ! GEOS-Chem in GEOS: Get Aout and Vdotout - !------------------------------------------ - CALL Fun ( V = C(1:NVAR), & - F = C(NVAR+1:NSPEC), & - RCT = RCONST, & - Vdot = Vloc, & - Aout = Aout ) -#else - !------------------------------------------ - ! All other contexts: Get Aout only - !------------------------------------------ + ! Get the reaction rates as Aout CALL Fun ( V = C(1:NVAR), & F = C(NVAR+1:NSPEC), & RCT = RCONST, & Vdot = Vloc, & Aout = Aout ) -#endif ! Only save requested equation rates DO S = 1, State_Diag%Map_RxnRate%nSlots @@ -1111,6 +1160,18 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & ENDIF + ! Archive KPP reaction rate constants (RCONST). The units vary. + ! They are already updated in Update_RCONST, and do not require + ! a call of Fun(). (hplin, 3/28/23) + IF ( State_Diag%Archive_RxnConst ) THEN + + DO S = 1, State_Diag%Map_RxnConst%nSlots + N = State_Diag%Map_RxnConst%slot2Id(S) + State_Diag%RxnConst(I,J,L,S) = RCONST(N) + ENDDO + + ENDIF + !===================================================================== ! Set options for the KPP Integrator (M. J. Evans) !===================================================================== @@ -1126,12 +1187,26 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & !===================================================================== ! Integrate the box forwards !===================================================================== + + ! Store concentrations before the call to "Integrate". This will + ! let us reset concentrations before calling "Integrate" a 2nd time. + C_before_integrate = C + + ! Call the Rosenbrock integrator CALL Integrate( TIN, TOUT, ICNTRL, & RCNTRL, ISTATUS, RSTATE, IERR ) ! Print grid box indices to screen if integrate failed IF ( IERR < 0 ) THEN - WRITE(6,*) '### INTEGRATE RETURNED ERROR AT: ', I, J, L + IF ( .not. doSuppress ) THEN + WRITE( 6, * ) '### INTEGRATE RETURNED ERROR AT: ', I, J, L + errorCount = errorCount + 1 + IF ( errorCount > INTEGRATE_FAIL_TOGGLE ) THEN + WRITE( 6, * ) & + '### Further KPP integration error messages will be suppressed' + doSuppress = .TRUE. + ENDIF + ENDIF ENDIF !-------------------------------------------------------------------- @@ -1139,21 +1214,15 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & !-------------------------------------------------------------------- IF ( IERR < 0 ) THEN -#ifdef MODEL_GEOS - ! Save a backup copy of C (for GEOS-Chem in GEOS only) - localC = C -#endif - - ! Reset first time step and start concentrations - ! Retry the integration with non-optimized - ! settings - RCNTRL(3) = 0e+0_fp - C = 0.0_dp + ! Zero the first time step (Hstart, used by Rosenbrock). Also reset + ! C with concentrations prior to the 1st call to "Integrate". + RCNTRL(3) = 0.0_dp + C = C_before_integrate ! Update rate constants again CALL Update_RCONST( ) - ! Integrate again + ! Call the Rosenbrock integrator again CALL Integrate( TIN, TOUT, ICNTRL, & RCNTRL, ISTATUS, RSTATE, IERR ) @@ -1161,42 +1230,53 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & ! Exit upon the second failure !------------------------------------------------------------------ IF ( IERR < 0 ) THEN + + ! Print error message WRITE(6, '(a )' ) '## INTEGRATE FAILED TWICE !!! ' WRITE(ERRMSG,'(a,i3)' ) 'Integrator error code :', IERR + #ifdef MODEL_GEOS IF ( Input_Opt%KppStop ) THEN CALL ERROR_STOP(ERRMSG, 'INTEGRATE_KPP') - ! Revert to start values ELSE - C = localC + ! Revert to concentrations prior to 1st call to "Integrate" + C = C_before_integrate ENDIF IF ( ASSOCIATED(State_Diag%KppError) ) THEN State_Diag%KppError(I,J,L) = State_Diag%KppError(I,J,L) + 1.0 ENDIF #else + !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ! Make sure only one thread at a time executes this block + !$OMP CRITICAL + ! Set a flag to break out of loop gracefully ! NOTE: You can set a GDB breakpoint here to examine the error - !$OMP CRITICAL Failed2x = .TRUE. ! Print concentrations at trouble box KPP error - PRINT*, REPEAT( '###', 79 ) + PRINT*, REPEAT( '#', 79 ) PRINT*, '### KPP DEBUG OUTPUT!' PRINT*, '### Species concentrations at problem box ', I, J, L - PRINT*, REPEAT( '###', 79 ) + PRINT*, REPEAT( '#', 79 ) DO N = 1, NSPEC - PRINT*, '### ', C(N), TRIM( ADJUSTL( SPC_NAMES(N) ) ) + PRINT*, C(N), TRIM( ADJUSTL( SPC_NAMES(N) ) ) ENDDO - + ! Print rate constants at trouble box KPP error - PRINT*, REPEAT( '###', 79 ) + PRINT*, REPEAT( '#', 79 ) PRINT*, '### KPP DEBUG OUTPUT!' PRINT*, '### Reaction rates at problem box ', I, J, L - PRINT*, REPEAT( '###', 79 ) + PRINT*, REPEAT( '#', 79 ) DO N = 1, NREACT PRINT*, RCONST(N), TRIM( ADJUSTL( EQN_NAMES(N) ) ) ENDDO + ! !$OMP END CRITICAL + !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + ! Start skipping to end of loop upon 2 failures in a row + CYCLE #endif ENDIF ENDIF @@ -1340,8 +1420,20 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & !======================================================================== ! Convert species back to original units (ewl, 8/16/16) !======================================================================== - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, & - State_Met, OrigUnit, RC ) + + ! Halt gas-phase chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Gas-phase chem", RC ) + ENDIF + + ! Convert units back + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -1350,6 +1442,11 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + ! Start gas-phase chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Gas-phase chem", RC ) + ENDIF + !### Debug output (uncomment if needed) !IF ( ITS_A_NEW_DAY() ) THEN ! WRITE(*,*) 'Total Hg0 mass [Mg]: ', & @@ -1365,9 +1462,13 @@ SUBROUTINE ChemMercury( Input_Opt, State_Chm, State_Diag, & ! WRITE(*,*) 'Total Hg2 mass [Mg]: ', Hg2Sum !ENDIF - ! Free pointer memory - TK => NULL() + ! Free pointers SpcInfo => NULL() + Spc => NULL() + IRHARR => NULL() + TK => NULL() + ODAER => NULL() + ODMDUST => NULL() END SUBROUTINE ChemMercury !EOC @@ -1629,7 +1730,6 @@ SUBROUTINE Set_HgOxidConc( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! ! Scalars - LOGICAL :: prtDebug INTEGER :: I, J, L, N ! lon, lat, lev, indexes INTEGER :: SpcID CHARACTER(LEN=60) :: Prefix ! utility string @@ -1651,9 +1751,6 @@ SUBROUTINE Set_HgOxidConc( Input_Opt, State_Chm, State_Grid, State_Met, RC ) errMsg = '' thisLoc = ' -> at Get_HgOxConc (in GeosCore/mercury_mod.F90)' - ! Copy values from Input_Opt - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - !================================================================= ! Set instantaneous species concentrations !================================================================= @@ -1794,7 +1891,6 @@ SUBROUTINE PolarBrOx( State_Chm, State_Grid, State_Met ) USE State_Met_Mod, ONLY : MetState USE State_Chm_Mod, ONLY : ChmState USE Time_Mod, ONLY : Get_Month - USE Cmn_FJX_Mod, ONLY : ZPJ ! ! !INPUT PARAMETERS: ! @@ -1913,7 +2009,7 @@ SUBROUTINE PolarBrOx( State_Chm, State_Grid, State_Met ) Br_CONC = State_Chm%Species(id_Br )%Conc(I,J,L) ! Get JBrO - JBrO = ZPJ(L,id_phot_BrO,I,J) + JBrO = State_Chm%Phot%ZPJ(L,id_phot_BrO,I,J) ! [BrO] is a linear function of temperature derived based on ! results from Pohler et al. (2010), Prados-Roman et al. (2011) @@ -1986,7 +2082,6 @@ SUBROUTINE PartXOx( State_Chm, State_Grid, State_Met ) USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE State_Chm_Mod, ONLY : ChmState - USE Cmn_FJX_Mod, ONLY : ZPJ ! ! !INPUT PARAMETERS: ! @@ -2098,8 +2193,8 @@ SUBROUTINE PartXOx( State_Chm, State_Grid, State_Met ) k_Cl_O3 = A_Cl_O3 * EXP( -EdivR_Cl_O3 / State_Met%T(I,J,L) ) ! Instantaneous J-values [1/s] - J_BrO = ZPJ(L,id_phot_BrO,I,J) - J_ClO = ZPJ(L,id_phot_ClO,I,J) + J_BrO = State_Chm%Phot%ZPJ(L,id_phot_BrO,I,J) + J_ClO = State_Chm%Phot%ZPJ(L,id_phot_ClO,I,J) ! Fraction of [X]/[XO] F_Br_BrO = Safe_Div( J_BrO+(k_BrO_NO*C_NO), k_Br_O3*C_O3, 0.0_fp ) @@ -2150,7 +2245,6 @@ SUBROUTINE PartNOx( State_Chm, State_Grid, State_Met ) USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE State_Chm_Mod, ONLY : ChmState - USE Cmn_Fjx_Mod, ONLY : ZPJ ! ! !INPUT PARAMETERS: ! @@ -2230,7 +2324,7 @@ SUBROUTINE PartNOx( State_Chm, State_Grid, State_Met ) k3 = A * EXP( -EdivR / State_Met%T(I,J,L) ) ! Instantaneous JNO2 - J_NO2 = ZPJ(L,id_phot_NO2,I,J) + J_NO2 = State_Chm%Phot%ZPJ(L,id_phot_NO2,I,J) ! Fraction of NO2/NOx F_NO2 = SAFE_DIV( k3*C_O3, J_NO2+k3*C_O3, 0.0_fp ) @@ -2555,16 +2649,12 @@ SUBROUTINE SeaSaltUptake( Input_Opt, State_Chm, State_Diag, & ! Strings CHARACTER(LEN=255) :: errMsg, thisLoc - ! Boolean - LOGICAL :: prtDebug - !======================================================================== ! SeaSaltUptake begins here! !======================================================================== ! Assume success RC = GC_SUCCESS ! Success? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ! Debug prints? DT = Get_Ts_Chem() ! Chem timestep [s] errMsg = '' thisLoc = ' -> at SeaSaltUptake (in GeosCore/mercury_mod.F90)' @@ -3273,8 +3363,8 @@ SUBROUTINE OfflineOcean_ReadMo( State_Chm, State_Diag, State_Grid, & ENDIF - ! Only doing Hg0 overall, should add trap for LSPLIT (cpt - 2017) - Hg0aq = OCEAN_CONC(:,:,1) + ! Only doing Hg0 overall + Hg0aq = OCEAN_CONC(:,:) ! Emission timestep [s] DTSRCE = GET_TS_EMIS() @@ -3464,31 +3554,30 @@ END SUBROUTINE OfflineOcean_ReadMo !\\ ! !INTERFACE: ! - SUBROUTINE Init_Mercury( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) + SUBROUTINE Init_Mercury( Input_Opt, State_Grid, State_Chm, State_Diag, RC ) ! ! !USES: ! - USE Cmn_FJX_Mod - USE Cmn_Size_Mod, ONLY : nAer, nDust + USE Cmn_Size_Mod, ONLY : nAer, nDust USE ErrCode_Mod - USE Fast_JX_Mod, ONLY : Init_FJX - USE GcKpp_Monitor, ONLY : Eqn_Names, Fam_Names - USE GcKpp_Parameters, ONLY : nFam, nReact - USE Input_Opt_Mod, ONLY : OptInput - USE Species_Mod, ONLY : Species - USE State_Chm_Mod, ONLY : Ind_ - USE State_Chm_Mod, ONLY : ChmState - USE State_Diag_Mod, ONLY : DgnState - USE State_Grid_Mod, ONLY : GrdState + USE GcKpp_Monitor, ONLY : Eqn_Names, Fam_Names + USE GcKpp_Parameters, ONLY : nFam, nReact + USE Input_Opt_Mod, ONLY : OptInput + USE Photolysis_Mod, ONLY : Init_Photolysis + USE Species_Mod, ONLY : Species + USE State_Chm_Mod, ONLY : Ind_ + USE State_Chm_Mod, ONLY : ChmState + USE State_Diag_Mod, ONLY : DgnState + USE State_Grid_Mod, ONLY : GrdState ! ! !INPUT PARAMETERS: ! TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object ! ! !INPUT/OUTPUT PARAMETERS: ! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostic State object ! ! !OUTPUT PARAMETERS: @@ -3510,6 +3599,7 @@ SUBROUTINE Init_Mercury( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) ! Scalars INTEGER :: I, KppId, N, P INTEGER :: p_BrO, p_ClO, p_Hg2ORGP, p_NO2 + INTEGER :: nPhotRxns ! Strings CHARACTER(LEN=255) :: thisLoc @@ -3544,7 +3634,7 @@ SUBROUTINE Init_Mercury( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) !======================================================================== IF ( nFam > 0 ) THEN - ! Allocate mapping array for KPP Ids for ND65 bpch diagnostic + ! Allocate mapping array for KPP Ids for prod/loss diagnostic ALLOCATE( PL_Kpp_Id( nFam ), STAT=RC ) CALL GC_CheckVar( 'mercury_mod.F90:PL_Kpp_Id', 0, RC ) IF ( RC /= GC_SUCCESS ) RETURN @@ -3796,6 +3886,18 @@ SUBROUTINE Init_Mercury( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) ENDIF ENDDO + !======================================================================= + ! Assign default values for KPP absolute and relative tolerances + ! for species where these have not been explicitly defined. + !======================================================================= + WHERE( State_Chm%KPP_AbsTol == MISSING_DBLE ) + State_Chm%KPP_AbsTol = 1.0e-2_f8 + ENDWHERE + + WHERE( State_Chm%KPP_RelTol == MISSING_DBLE ) + State_Chm%KPP_RelTol = 1.0e-2_f8 + ENDWHERE + !======================================================================== ! Various Settings (not sure how many of these still work) !======================================================================== @@ -3851,13 +3953,11 @@ SUBROUTINE Init_Mercury( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) LnoUSAemis = .FALSE. !======================================================================== - ! Initialize FAST-JX photolysis + ! Initialize photolysis !======================================================================== - CALL Init_FJX( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) - - ! Trap potential errors + CALL Init_Photolysis( Input_Opt, State_Grid, State_Chm, State_Diag, RC ) IF ( RC /= GC_SUCCESS ) THEN - errMsg = 'Error encountered in "Init_FJX"!' + errMsg = 'Error encountered in "Init_Photolysis"!' CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF @@ -3872,17 +3972,18 @@ SUBROUTINE Init_Mercury( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) p_Hg2ORGP = Ind_( 'Hg2ORGP', 'P' ) p_NO2 = Ind_( 'NO2', 'P' ) - ! Initialize variables for slots of ZPJ + ! Initialize variables for # reactions and slots of ZPJ + nPhotRxns = State_Chm%Phot%nPhotRxns id_phot_BrO = 0 id_phot_ClO = 0 id_phot_Hg2Org = 0 id_phot_NO2 = 0 ! Loop over all photolysis reactions - DO N = 1, nRatJ + DO N = 1, nPhotRxns ! GC photolysis species index (skip if not present) - P = GC_Photo_Id(N) + P = State_Chm%Phot%GC_Photo_Id(N) IF ( P <= 0 ) CYCLE ! Define the slots in the ZPJ array for several species. @@ -3894,22 +3995,22 @@ SUBROUTINE Init_Mercury( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) ENDDO ! Error checks - IF ( id_phot_BrO <= 0 .or. id_phot_BrO > nRatJ ) THEN + IF ( id_phot_BrO <= 0 .or. id_phot_BrO > nPhotRxns ) THEN errMsg = 'Invalid photolysis index for BrO!' CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - IF ( id_phot_ClO <= 0 .or. id_phot_ClO > nRatJ ) THEN + IF ( id_phot_ClO <= 0 .or. id_phot_ClO > nPhotRxns ) THEN errMsg = 'Invalid photolysis index for ClO!' CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - IF ( id_phot_Hg2Org <= 0 .or. id_phot_Hg2Org > nRatJ ) THEN + IF ( id_phot_Hg2Org <= 0 .or. id_phot_Hg2Org > nPhotRxns ) THEN errMsg = 'Invalid photolysis index for HG2ORGP!' CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - IF ( id_phot_NO2 <= 0 .or. id_phot_NO2 > nRatJ ) THEN + IF ( id_phot_NO2 <= 0 .or. id_phot_NO2 > nPhotRxns ) THEN errMsg = 'Invalid photolysis index for NO2!' CALL GC_Error( errMsg, RC, thisLoc ) RETURN diff --git a/GeosCore/mixing_mod.F90 b/GeosCore/mixing_mod.F90 index 44e852157..399acebec 100644 --- a/GeosCore/mixing_mod.F90 +++ b/GeosCore/mixing_mod.F90 @@ -217,9 +217,8 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : GET_TS_DYN, GET_TS_CONV, GET_TS_CHEM - USE UnitConv_Mod, ONLY : Convert_Spc_Units - - use timers_mod + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod #ifdef MODEL_CLASSIC use hco_utilities_gc_mod, only: TMP_MDL ! danger #endif @@ -249,7 +248,7 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & ! ! Scalars INTEGER :: I, J, L, L1, L2, N, D, NN, NA, nAdvect, S - INTEGER :: DRYDEPID + INTEGER :: DRYDEPID, previous_units INTEGER :: PBL_TOP, DRYD_TOP, EMIS_TOP REAL(fp) :: TS, TMP, FRQ, RKT, FRAC, FLUX, AREA_M2 REAL(fp) :: MWkg, DENOM @@ -258,7 +257,6 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & LOGICAL :: LEMIS, LDRYD LOGICAL :: DryDepSpec, EmisSpec REAL(f8) :: DT_Tend - CHARACTER(LEN=63) :: OrigUnit ! PARANOX loss fluxes (kg/m2/s). These are obtained from the ! HEMCO PARANOX extension via the diagnostics module. @@ -273,20 +271,14 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & INTEGER, SAVE :: id_ALK4, id_C2H6, id_C3H8, id_CH2O INTEGER, SAVE :: id_PRPE, id_O3, id_HNO3, id_BrO INTEGER, SAVE :: id_Br2, id_Br, id_HOBr, id_HBr - INTEGER, SAVE :: id_BrNO3, id_CH4_SAB, id_CO2 + INTEGER, SAVE :: id_BrNO3, id_CO2 ! Pointers and objects TYPE(Species), POINTER :: SpcInfo REAL(fp), POINTER :: DepFreq(:,:,: ) ! IM, JM, nDryDep - ! Temporary save for total ch4 (Xueying Yu, 12/08/2017) - LOGICAL :: ITS_A_CH4_SIM - REAL(fp) :: total_ch4_pre_soil_absorp(State_Grid%NX, & - State_Grid%NY, & - State_Grid%NZ) - ! Strings - CHARACTER(LEN=255) :: ErrMsg, ErrorMsg, ThisLoc + CHARACTER(LEN=255) :: ErrMsg, ErrorMsg, ThisLoc #ifdef ADJOINT LOGICAL :: IS_ADJ @@ -310,7 +302,6 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & LEMIS = Input_Opt%DoEmissions LDRYD = Input_Opt%LDRYD PBL_DRYDEP = Input_Opt%PBL_DRYDEP - ITS_A_CH4_SIM = Input_Opt%ITS_A_CH4_SIM nAdvect = State_Chm%nAdvect ! Initialize pointer @@ -329,6 +320,7 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetEmisDryDepFull, & @@ -340,6 +332,9 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & isPBL = State_Diag%Archive_BudgetEmisDryDepPBL, & diagPBL = NULL(), & mapDataPBL = State_Diag%Map_BudgetEmisDryDepPBL, & + isLevs = State_Diag%Archive_BudgetEmisDryDepLevs, & + diagLevs = NULL(), & + mapDataLevs = State_Diag%Map_BudgetEmisDryDepLevs, & colMass = State_Diag%BudgetColumnMass, & before_op = .TRUE., & RC = RC ) @@ -360,13 +355,37 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Chm%Species(Input_Opt%NFD)%Conc(Input_Opt%IFD, Input_Opt%JFD, Input_Opt%LFD) ENDIF #endif + + ! Halt mixing timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Boundary layer mixing", RC ) + ENDIF + ! DO_TEND previously operated in units of kg. The species arrays are in ! v/v for mixing, hence needed to convert before and after. ! Now use units kg/m2 as State_Chm%SPECIES units in DO_TEND to ! remove area-dependency (ewl, 9/30/15) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg/m2', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = KG_SPECIES_PER_M2, & + previous_units = previous_units, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Unit conversion error!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + ! Start mixing timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Boundary layer mixing", RC ) + ENDIF + #if defined( ADJOINT ) && defined ( DEBUG ) IF (Input_Opt%is_adjoint .and. Input_Opt%IS_FD_SPOT_THIS_PET) THEN WRITE(*,*) ' SpcAdj(IFD,JFD) after unit converstion: ', & @@ -418,7 +437,6 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & id_HOBr = Ind_('HOBr' ) id_HBr = Ind_('HBr' ) id_BrNO3= Ind_('BrNO3') - id_CH4_SAB = Ind_('CH4_SAB') FIRST = .FALSE. ENDIF @@ -453,14 +471,6 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & Ptr2D => NULL() ENDIF - !----------------------------------------------------------------------- - ! For tagged CH4 simulations - ! Save the total CH4 concentration before apply soil absorption - !----------------------------------------------------------------------- - IF ( ITS_A_CH4_SIM .and. Input_Opt%LSPLIT ) THEN - total_ch4_pre_soil_absorp = State_Chm%Species(1)%Conc(:,:,:) - ENDIF - !======================================================================= ! Do for every advected species and grid box !======================================================================= @@ -713,21 +723,7 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & ! NOTE: we don't need to multiply by the ratio of ! TS_CONV / TS_CHEM, as the updating frequency for ! HISTORY is determined by the "frequency" setting in - ! the "HISTORY.rc"input file. The old bpch diagnostics - ! archived the drydep due to chemistry every chemistry - ! timestep = 2X the dynamic timestep. So in order to - ! avoid double-counting the drydep flux from mixing, - ! you had to multiply by TS_CONV / TS_CHEM. - ! - ! ALSO NOTE: When comparing History output to bpch - ! output, you must use an updating frequency equal to - ! the dynamic timestep so that the drydep fluxes due to - ! mixing will be equivalent w/ the bpch output. It is - ! also recommended to turn off chemistry so as to be - ! able to compare the drydep fluxes due to mixing in - ! bpch vs. History as an "apples-to-apples" comparison. - ! - ! -- Bob Yantosca (yantosca@seas.harvard.edu) + ! the "HISTORY.rc" input file. !-------------------------------------------------------- IF ( ( State_Diag%Archive_DryDepMix .or. & State_Diag%Archive_DryDep ) .and. & @@ -785,41 +781,6 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF ENDIF - !-------------------------------------------------------------- - ! Special handling for tagged CH4 simulations - ! - ! Tagged CH4 species are split off into a separate loop to - ! ensure we remove soil absorption from NA=1 (total CH4) first - !-------------------------------------------------------------- - IF ( ITS_A_CH4_SIM .and. Input_Opt%LSPLIT ) THEN - - ! If we are in the chemistry grid - IF ( L <= EMIS_TOP ) THEN - - ! Total CH4 species - IF ( NA == 1 ) THEN - - ! Get soil absorption from HEMCO. Units are [kg/m2/s]. - ! CH4_SAB is species #15 - CALL GetHcoValEmis ( Input_Opt, State_Grid, 15, I, J, L, FND, TMP ) - - ! Remove soil absorption from total CH4 emissions - IF ( FND ) THEN - - ! Flux: [kg/m2] = [kg m-2 s-1 ] x [s] - FLUX = TMP * TS - - ! Apply soil absorption as loss - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) - FLUX - ENDIF - - ENDIF - - ENDIF - - ENDIF - ! Check for negative concentrations IF ( State_Chm%Species(N)%Conc(I,J,L) < 0.0_fp ) THEN #ifdef TOMAS @@ -831,19 +792,14 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Chm%Species(N)%Conc(I,J,L) = 1e-26_fp #else - IF ( ( N /= id_CH4_SAB ) .and. ( N /= id_CO2 ) ) THEN - - ! KLUDGE: skip the warning message for CH4_SAB, which can be - ! negative (it's a soil absorption flux). The TagCH4 - ! simulation is not used regularly as of Feb 2021 -- fix this - ! later if need by. (bmy, 2/25/21) - Print*, 'WARNING: Negative concentration for species ', & - TRIM( SpcInfo%Name), ' at (I,J,L) = ', I, J, L - ErrorMsg = 'Negative species concentations encountered.' // & - ' This may be fixed by increasing the' // & - ' background concentration or by shortening' // & + IF ( N /= id_CO2 ) THEN + Print*, 'WARNING: Negative concentration for species ', & + TRIM( SpcInfo%Name), ' at (I,J,L) = ', I, J, L + ErrorMsg = 'Negative species concentations encountered.'// & + ' This may be fixed by increasing the' // & + ' background concentration or by shortening' // & ' the transport time step.' - RC = GC_FAILURE + RC = GC_FAILURE ENDIF #endif ENDIF @@ -863,68 +819,6 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & SpcInfo => NULL() ENDDO !N - !-------------------------------------------------------------- - ! Special handling for tagged CH4 simulations - !-------------------------------------------------------------- - IF ( ITS_A_CH4_SIM .and. Input_Opt%LSPLIT ) THEN - - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, NA, ErrorMsg ) - DO NA = 1, nAdvect - - ! Get the species ID from the advected species ID - N = State_Chm%Map_Advect(NA) - - ! Loop over all grid boxes - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - - ! Tagged CH4 tracers - IF ( NA >= 2 .and. NA <= nAdvect-1 ) THEN - - ! Apply soil absorption to each tagged CH4 species - ! (Xueying Yu, 12/08/2017) - State_Chm%Species(N)%Conc(I,J,L) = & - SAFE_DIV(State_Chm%Species(N)%Conc(I,J,L), & - total_ch4_pre_soil_absorp(I,J,L), & - 0.e+0_fp) * & - State_Chm%Species(1)%Conc(I,J,L) - - ENDIF - - ! Check for negative concentrations - ! KLUDGE: skip the warning message for CH4_SAB, which can be - ! negative (it's a soil absorption flux). The TagCH4 simulation - ! is not used regularly as of Feb 2021 -- fix this later if - ! need by. (bmy, 2/25/21) - IF ( State_Chm%Species(N)%Conc(I,J,L) < 0.0_fp ) THEN - IF ( N /= id_CH4_SAB ) THEN - Print*, 'WARNING: Negative concentration for species ', & - TRIM( State_Chm%SpcData(N)%Info%Name), & - ' at (I,J,L) = ', I, J, L - ErrorMsg = 'Negative species concentations encountered.' // & - ' This may be fixed by increasing the' // & - ' background concentration or by shortening' // & - ' the transport time step.' - RC = GC_FAILURE - ENDIF - ENDIF - - ENDDO - ENDDO - ENDDO - ENDDO - !$OMP END PARALLEL DO - - ! Exit with error condition - IF ( RC /= GC_SUCCESS ) THEN - CALL GC_Error( ErrorMsg, RC, ThisLoc ) - RETURN - ENDIF - - ENDIF #if defined( ADJOINT ) && defined ( DEBUG ) IF (Input_Opt%is_adjoint .and. Input_Opt%IS_FD_SPOT_THIS_PET) THEN @@ -936,14 +830,33 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF #endif + + ! Halt mixing timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Boundary layer mixing", RC ) + ENDIF + ! Convert State_Chm%Species back to original units - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Unit conversion error!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF + + ! Start mixing timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Boundary layer mixing", RC ) + ENDIF + #if defined( ADJOINT ) && defined ( DEBUG ) IF (Input_Opt%is_adjoint .and. Input_Opt%IS_FD_SPOT_THIS_PET) THEN WRITE(*,*) ' SpcAdj(IFD,JFD) after unit converstion: ', & @@ -968,6 +881,7 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetEmisDryDepFull, & @@ -979,6 +893,9 @@ SUBROUTINE DO_TEND( Input_Opt, State_Chm, State_Diag, State_Grid, & isPBL = State_Diag%Archive_BudgetEmisDryDepPBL, & diagPBL = State_Diag%BudgetEmisDryDepPBL, & mapDataPBL = State_Diag%Map_BudgetEmisDryDepPBL, & + isLevs = State_Diag%Archive_BudgetEmisDryDepLevs, & + diagLevs = State_Diag%BudgetEmisDryDepLevs, & + mapDataLevs = State_Diag%Map_BudgetEmisDryDepLevs, & colMass = State_Diag%BudgetColumnMass, & timeStep = DT_Tend, & RC = RC ) diff --git a/GeosCore/ndxx_setup.F90 b/GeosCore/ndxx_setup.F90 deleted file mode 100644 index b1b3b19c1..000000000 --- a/GeosCore/ndxx_setup.F90 +++ /dev/null @@ -1,200 +0,0 @@ -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !ROUTINE: ndxx_setup.F90 -! -! !DESCRIPTION: Subroutine NDXX\_SETUP dynamically allocates memory for -! certain diagnostic arrays that are declared allocatable in "diag\_mod.F90". -!\\ -!\\ -! This allows us to reduce the amount of memory that needs to be declared -! globally. We only allocate memory for arrays if the corresponding -! diagnostic is turned on. -!\\ -!\\ -! !INTERFACE: -! -SUBROUTINE NDXX_SETUP( Input_Opt, State_Chm, State_Grid, RC ) -! -! !USES: -! - USE CMN_DIAG_MOD - USE DIAG_MOD - USE ErrCode_Mod - USE ERROR_MOD - USE Input_Opt_Mod, ONLY : OptInput - USE State_Chm_Mod, ONLY : ChmState - USE State_Chm_Mod, ONLY : Ind_ - USE State_Grid_Mod, ONLY : GrdState - USE State_Met_Mod, ONLY : MetState -#ifdef TOMAS - USE TOMAS_MOD, ONLY : IBINS, ICOMP, IDIAG !(win, 7/9/09) -#endif - - IMPLICIT NONE -! -! !INPUT PARAMETERS: -! - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input Options object - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 16 Jun 1998 - I. Bey, R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: NMAX, AS - - !================================================================= - ! NDXX_SETUP begins here! - !================================================================= - - ! Assume success - RC = GC_SUCCESS - - ! Exit if this is a dry-run - IF ( Input_Opt%DryRun ) RETURN - -#ifdef TOMAS - !================================================================= - ! ND44: Drydep fluxes [s-1] and drydep velocities [cm/s] - ! --> uses AD44 arrays (allocatable) - !================================================================= - IF ( .not. Input_Opt%LDRYD ) ND44 = 0 - - IF ( ND44 > 0 ) THEN - ! add space in diag array for TOMAS aerosol mass (win, 7/14/09) - ! Now use State_Chm%nDryDep for # dry depositing species - ! (ewl, 10/14/15) - IF ( Ind_('NK1') > 1 ) THEN - NMAX = State_Chm%nDryDep + ( ICOMP - IDIAG )* IBINS - ELSE - NMAX = State_Chm%nDryDep - ENDIF - ! Allocate AD44 array - ALLOCATE( AD44( State_Grid%NX, State_Grid%NY, NMAX, 2 ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD44' ) - ENDIF - - !================================================================= - ! ND59: Size-resolved primary aerosol emissions !(win, 7/9/09) - ! Emissions to number, sulfate, sea-salt, carb, dust - ! ----> save 3-D (I,J,1) or up to (I,J,2) - !================================================================= - IF ( ND59 > 0 ) THEN - LD59 = MIN( ND59, State_Grid%NZ ) - - ! Number emission - ALLOCATE( AD59_NUMB( State_Grid%NX, State_Grid%NY, 2, IBINS ), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD59_NUMB' ) - - ALLOCATE( AD59_SULF( State_Grid%NX, State_Grid%NY, 2, IBINS ), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD59_SULF' ) - - ALLOCATE( AD59_SALT( State_Grid%NX, State_Grid%NY, 2, IBINS ), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD59_SALT' ) - - ALLOCATE( AD59_ECIL( State_Grid%NX, State_Grid%NY, 2, IBINS ), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD59_ECIL' ) - - ALLOCATE( AD59_ECOB( State_Grid%NX, State_Grid%NY, 2, IBINS ), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD59_ECOB' ) - - ALLOCATE( AD59_OCIL( State_Grid%NX, State_Grid%NY, 2, IBINS ), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD59_OCIL' ) - - ALLOCATE( AD59_OCOB( State_Grid%NX, State_Grid%NY, 2, IBINS ), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD59_OCOB' ) - - ALLOCATE( AD59_DUST( State_Grid%NX, State_Grid%NY, 2, IBINS ), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD59_DUST' ) - ENDIF - - !================================================================= - ! ND60: TOMAS microphysical process rates (condensation, - ! coagulation, nucleation, aqueous oxidation, - ! error-fudging) - ! ---> save 2-D (J,L) for 30-bin of each aerosol species - !================================================================= - IF ( ND60 > 0 ) THEN - LD60 = MIN( ND60, State_Grid%NZ ) - - ! Now the array dimension is IBINS*(ICOMP-IDIAG+1) because - ! we need it for all prognostic mass species + 1 for number - ! IDIAG = # of diagnostic species. (win, 9/27/08) - !Condensation rate - ALLOCATE( AD60_COND(1,State_Grid%NY,LD60,IBINS*(ICOMP-IDIAG+1)), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD60_COND' ) - - !Coagulation rate - ALLOCATE( AD60_COAG(1,State_Grid%NY,LD60,IBINS*(ICOMP-IDIAG+1)), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD60_COAG' ) - - !Nucleation rate - ALLOCATE( AD60_NUCL(1,State_Grid%NY,LD60,IBINS*(ICOMP-IDIAG+1)), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD60_NUCL' ) - - !Aqueous oxidation rate - ALLOCATE( AD60_AQOX(1,State_Grid%NY,LD60,IBINS*(ICOMP-IDIAG+1)), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD60_AQOX' ) - - !Accumulated error-fudging - ALLOCATE( AD60_ERROR(1,State_Grid%NY,LD60,IBINS*(ICOMP-IDIAG+1)), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD60_ERROR' ) - - !SOA Condensation rate - ALLOCATE( AD60_SOA(1,State_Grid%NY,LD60,IBINS*(ICOMP-IDIAG+1)), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD60_SOA' ) - ENDIF - - !================================================================= - ! ND61: 3-D TOMAS process rate diagnostic - ! --> Uses AD61 array (allocatable) - ! NOTE: ND61 is used for 10-nm particle formation - ! rate and cluster-size nucleation rate. So the array - ! is declared for (NX,NY,LD61,2) (win, 10/6/08) - !================================================================= - IF ( ND61 > 0 ) THEN - LD61 = MIN( ND61, State_Grid%NZ ) - - ALLOCATE( AD61( State_Grid%NX, State_Grid%NY, LD61, PD61 ), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD61' ) - ALLOCATE( AD61_INST( State_Grid%NX, State_Grid%NY, LD61, PD61), & - STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AD61_INST' ) - ENDIF -#endif - -END SUBROUTINE NDXX_SETUP -!EOC -#endif diff --git a/GeosCore/oasave.F90 b/GeosCore/oasave.F90 deleted file mode 100644 index 82d77d999..000000000 --- a/GeosCore/oasave.F90 +++ /dev/null @@ -1,71 +0,0 @@ -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !ROUTINE: oasave.F90 -! -! !DESCRIPTION: Subroutine OASAVE stores the concentrations of organic aerosols -! for the ND42 diagnostic and for the timeseries and satellite diagnostics -!\\ -!\\ -! !INTERFACE: -! -SUBROUTINE OASAVE( State_Grid ) -! -! !USES: -! - USE State_Grid_Mod, ONLY : GrdState - USE AEROSOL_MOD, ONLY : OCPI, OCPO - USE AEROSOL_MOD, ONLY : TSOA, ASOA, OPOA, ISOAAQ - USE PRECISION_MOD ! For GEOS-Chem Precision (fp) - USE CMN_O3_MOD, ONLY : SAVEOA - - IMPLICIT NONE -! -! !INPUT PARAMETERS: -! - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object -! -! !REVISION HISTORY: -! 10 Jul 2014 - E. A. Marais- Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: I, J, L - REAL(fp) :: FACTOR - - !================================================================= - ! OASAVE begins here! - ! - ! Save organic aerosol concentrations - !================================================================= - - ! Conversion factor from kg/m3 --> ug/m3 - FACTOR = 1e+9_fp - - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L ) - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - - ! Sum of all organic aerosol [ug/m3] - SAVEOA(I,J,L) = SAVEOA(I,J,L) + ( TSOA(I,J,L) + ASOA(I,J,L) + & - OCPO(I,J,L) + OCPI(I,J,L) + & - OPOA(I,J,L) + ISOAAQ(I,J,L) ) * FACTOR - - ENDDO - ENDDO - ENDDO - !$OMP END PARALLEL DO -END SUBROUTINE OASAVE -!EOC -#endif - diff --git a/GeosCore/ocean_mercury_mod.F90 b/GeosCore/ocean_mercury_mod.F90 index 60e479c08..208a21d2e 100644 --- a/GeosCore/ocean_mercury_mod.F90 +++ b/GeosCore/ocean_mercury_mod.F90 @@ -223,10 +223,6 @@ SUBROUTINE READ_HG2_PARTITIONING( Input_Opt, State_Grid, State_Met, & ! !USES: ! USE ErrCode_Mod -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD - USE TIME_MOD, ONLY : SET_Hg2_DIAG -#endif USE ERROR_MOD, ONLY : GEOS_CHEM_STOP, ERROR_STOP USE HCO_State_GC_Mod, ONLY : HcoState USE HCO_EmisList_Mod, ONLY : HCO_GetPtr @@ -467,9 +463,10 @@ SUBROUTINE READ_HG2_PARTITIONING( Input_Opt, State_Grid, State_Met, & ! convert REAL*4 to REAL(fpp) DST_CONC(:,:,1:State_Grid%MaxChemLev) = ARRAYdst1(:,:,1:State_Grid%MaxChemLev) - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -603,7 +600,7 @@ SUBROUTINE DELIVER_SNOW_HG( SNOW_Hg2aq, I, J, State_Met, & IS_OPEN_OCEAN = ( ( State_Met%FROCEAN(I,J) - & State_Met%FRSEAICE(I,J) ) > 0e+0_fpp ) IS_OPEN_LAND = ( ( State_Met%FRLAND(I,J) - & - State_Met%FRSNO(I,J) ) > 0e+0_fpp ) + State_Met%FRSNOW(I,J) ) > 0e+0_fpp ) IS_MELT = ( State_Met%TS(I,J) >= 276e+0_fpp ) @@ -912,7 +909,6 @@ SUBROUTINE OCEAN_MERCURY_FLUX( Input_Opt, State_Chm, State_Diag, State_Grid, & REAL(fpp), PARAMETER :: CHLMINNUM = 1e-1_fpp ! For values from Input_Opt - LOGICAL :: LSPLIT LOGICAL :: LArcticRiv, LKRedUV ! Pointers @@ -945,7 +941,6 @@ SUBROUTINE OCEAN_MERCURY_FLUX( Input_Opt, State_Chm, State_Diag, State_Grid, & TOMS_LT => NULL() ! Copy values from Input_Opt - LSPLIT = Input_Opt%LSPLIT LArcticRiv = Input_Opt%LArcticRiv LKRedUV = Input_Opt%LKRedUV @@ -1077,62 +1072,72 @@ SUBROUTINE OCEAN_MERCURY_FLUX( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF ! Loop over surface boxes - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, vi, A_M2, Hg2_RED ) & - !$OMP PRIVATE( J, k_ox, OC_tot, Hg2_CONV ) & - !$OMP PRIVATE( N, TK, CHg0, k_red_bio ) & - !$OMP PRIVATE( C, TC, RADz, Hg0_OX, k_red_rad ) & - !$OMP PRIVATE( D, EC, k_red, OLDMLD, TOTDEPall ) & - !$OMP PRIVATE( Y, Ze, ScCO2, FRAC_O, Frac_Hg2, Hg2aq_tot ) & - !$OMP PRIVATE( H, Kw, MLDCM, TOTDEP, OC_tot_kg ) & - !$OMP PRIVATE( X, SPM, CHg0aq, Hg2_GONE ) & - !$OMP PRIVATE( Sc, Usq, C_tot, JorgC_kg ) & - !$OMP PRIVATE( IS_OCEAN_BOX ) & - !$OMP PRIVATE( FRAC_OPEN_OCEAN, FRAC_OCEAN_OR_ICE, Snow_Hg2aq ) & - !$OMP PRIVATE( FRAC_REDUCIBLE, UVI_RATIO ) & - !$OMP PRIVATE( Kd_part ) & - !$OMP SCHEDULE( DYNAMIC ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, A_M2 )& + !$OMP PRIVATE( C, CHg0, CHg0aq )& + !$OMP PRIVATE( C_tot, D, EC )& + !$OMP PRIVATE( Frac_Hg2, Frac_O, FRAC_OCEAN_OR_ICE )& + !$OMP PRIVATE( FRAC_OPEN_OCEAN, FRAC_REDUCIBLE, H )& + !$OMP PRIVATE( Hg0_OX, Hg2aq_tot, Hg2_Conv )& + !$OMP PRIVATE( Hg2_GONE, Hg2_RED, IS_OCEAN_BOX )& + !$OMP PRIVATE( JorgC_kg, k_ox, k_red )& + !$OMP PRIVATE( k_red_bio, k_red_rad, kd_part )& + !$OMP PRIVATE( Kw, MLDcm, N )& + !$OMP PRIVATE( OLDMLD, OC_tot, OC_tot_kg )& + !$OMP PRIVATE( RADz, Sc, ScCO2 )& + !$OMP PRIVATE( SNOW_Hg2aq, SPM, TC )& + !$OMP PRIVATE( TK, TOTDEP, TOTDEPall )& + !$OMP PRIVATE( Usq, UVI_RATIO, vi )& + !$OMP PRIVATE( Ze )& + !$OMP COLLAPSE( 2 )& + !$OMP SCHEDULE( DYNAMIC, 24 ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - ! Grid box surface area [m2] - A_M2 = State_Grid%Area_M2(I,J) - - ! Grid-box latitude [degrees] - Y = State_Grid%YMid(I,J) - - ! Initialize values - Kw = 0e+0_fpp - Hg2_CONV = 0e+0_fpp - TK = 0e+0_fpp - TC = 0e+0_fpp - JorgC_kg = 0e+0_fpp - EC = 0e+0_fpp - RADz = 0e+0_fpp - k_red = 0e+0_fpp - k_red_rad = 0e+0_fpp - k_red_bio = 0e+0_fpp - SPM = 0e+0_fpp - Frac_Hg2 = 0e+0_fpp - Hg2aq_tot = 0e+0_fpp - Hg2_RED = 0e+0_fpp - C_tot = 0e+0_fpp - Ze = 0e+0_fpp - OC_tot = 0e+0_fpp - OC_tot_kg = 0e+0_fpp - Hg0_OX = 0e+0_fpp - D = 0e+0_fpp - TOTDEP = 0e+0_fpp - TOTDEPall = 0e+0_fpp - k_ox = 0e+0_fpp - SNOW_Hg2aq = 0e+0_fpp - UVI_RATIO = 0e+0_fpp - FRAC_REDUCIBLE = 0e+0_fpp - - OLDMLD = MLDav(I,J) - MLDav(I,J) = MLDav(I,J) + dMLD(I,J) * DTSRCE - MLDcm = MLDav(I,J) + ! Initialize variables (now alphabetized) + A_M2 = State_Grid%Area_M2(I,J) ! Grid box area [m2] + CHg0 = 0.0_fpp + CHg0aq = 0.0_fpp + C_tot = 0.0_fpp + D = 0.0_fpp + EC = 0.0_fpp + Frac_Hg2 = 0.0_fpp + Frac_O = 0.0_fpp + FRAC_REDUCIBLE = 0.0_fpp + H = 0.0_fpp + Hg0_OX = 0.0_fpp + Hg2aq_tot = 0.0_fpp + Hg2_CONV = 0.0_fpp + Hg2_GONE = 0.0_fpp + Hg2_RED = 0.0_fpp + JorgC_kg = 0.0_fpp + k_ox = 0.0_fpp + k_red = 0.0_fpp + k_red_bio = 0.0_fpp + k_red_rad = 0.0_fpp + kd_part = 0.0_fpp + Kw = 0.0_fpp + OLDMLD = MLDav(I,J) + MLDav(I,J) = MLDav(I,J) + dMLD(I,J) * DTSRCE + MLDcm = MLDav(I,J) + OC_tot = 0.0_fpp + OC_tot_kg = 0.0_fpp + RADz = 0.0_fpp + Sc = 0.0_fpp + ScCO2 = 0.0_fpp + SNOW_Hg2aq = 0.0_fpp + SPM = 0.0_fpp + TC = 0.0_fpp + TK = 0.0_fpp + TOTDEP = 0.0_fpp + TOTDEPall = 0.0_fpp + Usq = 0.0_fpp + UVI_RATIO = 0.0_fpp + vi = 0.0_fpp + X = State_Grid%XMid(I,J) ! Longitude [deg] + Y = State_Grid%YMid(I,J) ! Laittude [deg] + Ze = 0.0_fpp ! Add error trap to prevent new MLD from being negative ! (jaf, 7/6/11) @@ -1386,9 +1391,6 @@ SUBROUTINE OCEAN_MERCURY_FLUX( Input_Opt, State_Chm, State_Diag, State_Grid, & !%%% and also removed NN as the 3rd array index !%%% -- Bob Yantosca (23 Jun 2022) - ! Grid box longitude [degrees] - X = State_Grid%XMid(I,J) - !-------------------------------------------------------- ! Atlantic !-------------------------------------------------------- @@ -2124,9 +2126,11 @@ SUBROUTINE OCEAN_MERCURY_READ( Input_Opt, State_Grid, & ! Overwrite fields with Arctic specific parameters !----------------------------------------------------------------- - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, X, Y ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, X, Y )& + !$OMP COLLAPSE( 2 )& + !$OMP SCHEDULE( DYNAMIC, 24 ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -2262,9 +2266,6 @@ SUBROUTINE MLD_ADJUSTMENT( I, J, MLDold, MLDnew, Input_Opt, & REAL(fpp) :: A_M2, DELTAH, FRAC_O, MHg REAL(fpp) :: X, Y !(added anls 01/05/09) - ! For fields from Input_Opt - LOGICAL :: LSPLIT - ! Pointers REAL(fpp), POINTER :: Hg0aq(:,:) REAL(fpp), POINTER :: Hg2aq(:,:) @@ -2274,9 +2275,6 @@ SUBROUTINE MLD_ADJUSTMENT( I, J, MLDold, MLDnew, Input_Opt, & ! MLD_ADJUSTMENT begins here! !================================================================= - ! Copy values from Input_Opt - LSPLIT = Input_Opt%LSPLIT - ! Point to fields in State_Chm Hg0aq => State_Chm%OceanHg0 Hg2aq => State_Chm%OceanHg2 diff --git a/GeosCore/pbl_mix_mod.F90 b/GeosCore/pbl_mix_mod.F90 index 9676fc824..923b07dda 100644 --- a/GeosCore/pbl_mix_mod.F90 +++ b/GeosCore/pbl_mix_mod.F90 @@ -67,7 +67,8 @@ SUBROUTINE Do_Full_Pbl_Mixing( Input_Opt, State_Chm, State_Diag, & USE State_Met_Mod, ONLY : MetState USE Time_Mod, ONLY : Get_Ts_Conv USE Time_Mod, ONLY : Get_Ts_Dyn - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -94,10 +95,10 @@ SUBROUTINE Do_Full_Pbl_Mixing( Input_Opt, State_Chm, State_Diag, & INTEGER :: N INTEGER :: NA INTEGER :: TS_Dyn + INTEGER :: previous_units REAL(f8) :: DT_Dyn ! Strings - CHARACTER(LEN=63) :: OrigUnit CHARACTER(LEN=255) :: ErrMsg CHARACTER(LEN=255) :: ThisLoc @@ -119,6 +120,7 @@ SUBROUTINE Do_Full_Pbl_Mixing( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetMixingFull, & @@ -130,6 +132,9 @@ SUBROUTINE Do_Full_Pbl_Mixing( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetMixingPBL, & diagPBL = NULL(), & mapDataPBL = State_Diag%Map_BudgetMixingPBL, & + isLevs = State_Diag%Archive_BudgetMixingLevs, & + diagLevs = NULL(), & + mapDataLevs = State_Diag%Map_BudgetMixingLevs, & colMass = State_Diag%BudgetColumnMass, & before_op = .TRUE., & RC = RC ) @@ -150,18 +155,34 @@ SUBROUTINE Do_Full_Pbl_Mixing( Input_Opt, State_Chm, State_Diag, & ! Unit conversion #1 !===================================================================== - ! Convert species to v/v dry - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, & - State_Met, 'v/v dry', RC, & - OrigUnit=OrigUnit ) + ! Halt mixing timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Boundary layer mixing", RC ) + ENDIF + + ! Convert species to [v/v dry] aka [mol/mol dry] + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountred in "Convert_Spc_Units" (to v/v dry)!' + ErrMsg = 'Error encountred in "Convert_Spc_Units" (to mol/mol dry)!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF + ! Start mixing timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Boundary layer mixing", RC ) + ENDIF + !===================================================================== ! Do full PBL mixing !===================================================================== @@ -177,20 +198,36 @@ SUBROUTINE Do_Full_Pbl_Mixing( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - !======================================================================== + !===================================================================== ! Unit conversion #2 - !======================================================================== + !===================================================================== + + ! Halt mixing timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Boundary layer mixing", RC ) + ENDIF ! Convert species back to original units - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, & - State_Met, OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountred in "Convert_Spc_Units" (from v/v dry)!' + ErrMsg = 'Error encountred in "Convert_Spc_Units" (from mol/mol dry)!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF + + ! Start mixing timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Boundary layer mixing", RC ) + ENDIF ENDIF !======================================================================== @@ -207,6 +244,7 @@ SUBROUTINE Do_Full_Pbl_Mixing( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetMixingFull, & @@ -218,6 +256,9 @@ SUBROUTINE Do_Full_Pbl_Mixing( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetMixingPBL, & diagPBL = State_Diag%BudgetMixingPBL, & mapDataPBL = State_Diag%Map_BudgetMixingPBL, & + isLevs = State_Diag%Archive_BudgetMixingLevs, & + diagLevs = State_Diag%BudgetMixingLevs, & + mapDataLevs = State_Diag%Map_BudgetMixingLevs, & colMass = State_Diag%BudgetColumnMass, & timeStep = DT_Dyn, & RC = RC ) @@ -250,6 +291,7 @@ SUBROUTINE Compute_Pbl_Height( Input_Opt, State_Grid, State_Met, RC ) ! !USES: ! USE ErrCode_Mod + USE PhysConstants ! Rd, g0 USE Input_Opt_Mod, ONLY : OptInput USE PhysConstants, ONLY : Scale_Height USE State_Grid_Mod, ONLY : GrdState @@ -280,7 +322,7 @@ SUBROUTINE Compute_Pbl_Height( Input_Opt, State_Grid, State_Met, RC ) ! Scalars LOGICAL :: Bad_Sum INTEGER :: I, J, L, LTOP - REAL(fp) :: BLTOP, BLTHIK, DELP + REAL(fp) :: Lower_Edge_Height ! Arrays REAL(fp) :: P(0:State_Grid%NZ) @@ -290,170 +332,105 @@ SUBROUTINE Compute_Pbl_Height( Input_Opt, State_Grid, State_Met, RC ) !================================================================= ! Initialize - RC = GC_SUCCESS - Bad_Sum = .FALSE. - State_Met%InPbl = .FALSE. - - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, P, BLTOP, BLTHIK, LTOP, DELP ) + RC = GC_SUCCESS + Bad_Sum = .FALSE. + State_Met%InPbl = .FALSE. + State_Met%F_of_PBL = 0.0_fp + State_Met%F_Under_PBLTop = 0.0_fp + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L, LTOP, Lower_Edge_Height )& + !$OMP COLLAPSE( 2 )& + !$OMP SCHEDULE( DYNAMIC, 8 ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - !---------------------------------------------- - ! Define pressure edges: - ! P(L-1) = P at bottom edge of box (I,J,L) - ! P(L ) = P at top edge of box (I,J,L) - !---------------------------------------------- - - ! Pressure at level edges [hPa] - DO L = 0, State_Grid%NZ - P(L) = State_Met%PEDGE(I,J,L+1) - ENDDO - - !---------------------------------------------- - ! Find PBL top and thickness [hPa] - !---------------------------------------------- - - ! BLTOP = pressure at PBL top [hPa] - ! Use barometric law since PBL is in [m] - BLTOP = P(0) * EXP( -State_Met%PBLH(I,J) / SCALE_HEIGHT ) - - ! BLTHIK is PBL thickness [hPa] - BLTHIK = P(0) - BLTOP - - !---------------------------------------------- - ! Find model level where BLTOP occurs - !---------------------------------------------- - - ! Initialize - LTOP = 0 + ! Initialize variables + State_Met%PBL_Top_m(I,J) = State_Met%PBLH(I,J) ! Pbl ht [m] above sfc + LTOP = 0 ! Level w/ PBL top + Lower_Edge_Height = 0.0_fp ! Lower edge height + ! above sfc [m] - ! Loop over levels + ! Find PBL top level (L) and pressure (hPa) DO L = 1, State_Grid%NZ - ! Exit when we get to the PBL top level - IF ( BLTOP > P(L) ) THEN - LTOP = L - EXIT - ELSE - State_Met%InPbl(I,J,L) = .TRUE. - ENDIF + !------------------------------------------------------------------- + ! The PBL top occurs in this level if the condition is true + !------------------------------------------------------------------- + IF ( Lower_Edge_Height + State_Met%BXHEIGHT(I,J,L) >= & + State_Met%PBLH(I,J) ) THEN + + ! PBL top is in this level + LTOP = L + + ! Pressure at the PBL top altitude, hPa + ! Use pressure lapse equation: + ! p(PBLH) = p(z1) * exp( -(PBLH-z1) / Scale_Height ) + ! + ! p(z1) = State_Met%PEDGE(I,J,L) = Pressure @ lower level edge + ! + ! PBLH - z1 = (State_Met%PBLH(I,J,L) - Lower_Edge_Height) = + ! Height above the lower level edge + ! + ! Scale_Height = Rd * Tv / g0 + State_Met%PBL_Top_hPa(I,J) = State_Met%PEdge(I,J,L) * & + EXP( -( State_Met%PBLH(I,J) - Lower_Edge_Height ) * & + g0 / ( Rd * State_Met%TV(I,J,L) ) ) + + ! Fraction of PBL mass in layer L, will be normalized below + State_Met%F_of_PBL(I,J,L) = State_Met%PEdge(I,J,L) & + - State_Met%PBL_Top_hPa(I,J) + + ! Fraction of the grid cell mass under PBL top + State_Met%F_Under_PBLTop(I,J,L) = State_Met%F_of_PBL(I,J,L) / & + ( State_Met%PEdge(I,J,L) - State_Met%PEdge(I,J,L+1) ) + + ! Model level of PBL top (integer+fraction). + ! The top is within level CEILING(PBL_Top_L) + State_Met%PBL_Top_L(I,J) = ( LTOP - 1 ) & + + State_Met%F_Under_PBLTop(I,J,L) + + ! PBL Thickness from surface to top, hPa + State_Met%PBL_Thick(I,J) = State_Met%PEdge(I,J,1) & + - State_Met%PBL_Top_hPa(I,J) + + ! Exit Do loop after we found PBL top level + EXIT + ENDIF + + !------------------------------------------------------------------- + ! The PBL top does not occur in this level. + ! Update variables and go to next level. + !------------------------------------------------------------------- + + ! Grid cell fully within PBL + State_Met%inPBL(I,J,L) = .True. + + ! Fraction of the grid cell mass under PBL top + State_Met%F_Under_PBLTop(I,J,L) = 1.0_fp + + ! Fraction of PBL mass in layer L, will be normalized below + State_Met%F_of_PBL(I,J,L) = State_Met%PEdge(I,J,L) & + - State_Met%PEdge(I,J,L+1) + + ! Update lower edge height, m + Lower_Edge_Height = Lower_Edge_Height + State_Met%BXHeight(I,J,L) ENDDO - !---------------------------------------------- - ! Define various related quantities - !---------------------------------------------- - - ! IMIX(I,J) is the level where the PBL top occurs at (I,J) - ! IMIX(I,J)-1 is the number of whole levels below the PBL top - State_Met%IMIX(I,J) = LTOP - - ! Fraction of the IMIXth level underneath the PBL top - State_Met%FPBL(I,J) = 1.0_fp & - - ( BLTOP - P(LTOP) ) / ( P(LTOP-1) - P(LTOP) ) - - ! PBL top [model layers] - State_Met%PBL_TOP_L(I,J) = FLOAT( State_Met%IMIX(I,J) - 1 ) & - + State_Met%FPBL(I,J) - - ! PBL top [hPa] - State_Met%PBL_TOP_hPa(I,J) = BLTOP - - ! Zero PBL top [m] -- compute below - State_Met%PBL_TOP_m(I,J) = 0.0_fp - - ! PBL thickness [hPa] - State_Met%PBL_THICK(I,J) = BLTHIK - - !============================================================== - ! Loop up to edge of chemically-active grid - !============================================================== - DO L = 1, State_Grid%MaxChemLev - - ! Thickness of grid box (I,J,L) [hPa] - DELP = P(L-1) - P(L) - - IF ( L < State_Met%IMIX(I,J) ) THEN - - !-------------------------------------------- - ! (I,J,L) lies completely below the PBL top - !-------------------------------------------- - - ! Fraction of grid box (I,J,L) w/in the PBL - State_Met%F_OF_PBL(I,J,L) = DELP / BLTHIK - - ! Fraction of grid box (I,J,L) underneath PBL top - State_Met%F_UNDER_PBLTOP(I,J,L) = 1.0_fp - - ! PBL height [m] - State_Met%PBL_TOP_m(I,J) = State_Met%PBL_TOP_m(I,J) + & - State_Met%BXHEIGHT(I,J,L) - - ELSE IF ( L == State_Met%IMIX(I,J) ) THEN - - !-------------------------------------------- - ! (I,J,L) straddles the PBL top - !-------------------------------------------- - - ! Fraction of grid box (I,J,L) w/in the PBL - State_Met%F_OF_PBL(I,J,L) = ( P(L-1) - BLTOP ) / BLTHIK - - ! Fraction of grid box (I,J,L) underneath PBL top - State_Met%F_UNDER_PBLTOP(I,J,L) = State_Met%FPBL(I,J) - - ! PBL height [m] - State_Met%PBL_TOP_m(I,J) = State_Met%PBL_TOP_m(I,J) & - + ( State_Met%BXHEIGHT(I,J,L) & - * State_Met%FPBL(I,J) ) - - ELSE - - !-------------------------------------------- - ! (I,J,L) lies completely above the PBL top - !-------------------------------------------- - - ! Fraction of grid box (I,J,L) w/in the PBL - State_Met%F_OF_PBL(I,J,L) = 0.0_fp - - ! Fraction of grid box (I,J,L) underneath PBL top - State_Met%F_UNDER_PBLTOP(I,J,L) = 0.0_fp - - ENDIF - - !### Debug - !IF ( I==23 .and. J==34 .and. L < 6 ) THEN - ! PRINT*, '###--------------------------------------' - ! PRINT*, '### COMPUTE_PBL_HEIGHT' - ! PRINT*, '### I, J, L : ', I, J, L - ! PRINT*, '### P(L-1) : ', P(L-1) - ! PRINT*, '### P(L) : ', P(L) - ! PRINT*, '### F_OF_PBL : ', State_Met%F_OF_PBL(I,J,L) - ! PRINT*, '### F_UNDER_TOP : ', & - ! State_Met%F_UNDER_PBLTOP(I,J,L) - ! PRINT*, '### IMIX : ', State_Met%IMIX(I,J) - ! PRINT*, '### FPBL : ', State_Met%FPBL(I,J) - ! PRINT*, '### PBL_TOP_hPa : ', State_Met%PBL_TOP_hPa(I,J) - ! PRINT*, '### PBL_TOP_L : ', State_Met%PBL_TOP_L(I,J) - ! PRINT*, '### DELP : ', DELP - ! PRINT*, '### BLTHIK : ', BLTHIK - ! PRINT*, '### BLTOP : ', BLTOP - ! PRINT*, '### BXHEIGHT : ', State_Met%BXHEIGHT(I,J,L) - ! PRINT*, '### PBL_TOP_m : ', State_Met%PBL_TOP_m(I,J) - ! PRINT*, '### other way m : ', & - ! P(0) * EXP( -State_Met%PBL_TOP_hPa(I,J) / SCALE_HEIGHT ) - !ENDIF - - ENDDO + ! Fraction of PBL mass in layer L, now normalize to sum of 1 + State_Met%F_of_PBL(I,J,:) = State_Met%F_of_PBL(I,J,:) & + / State_Met%PBL_Thick(I,J) ! Error check IF ( ABS( SUM( State_Met%F_OF_PBL(I,J,:) ) - 1.0_fp) > 1.0e-3_fp) THEN !$OMP CRITICAL - PRINT*, 'bad sum at: ', I, J + PRINT*, 'bad sum at: ', I, J, SUM( State_Met%F_OF_PBL(I,J,:) ) Bad_Sum = .TRUE. !$OMP END CRITICAL ENDIF + ENDDO ENDDO !$OMP END PARALLEL DO @@ -466,7 +443,7 @@ SUBROUTINE Compute_Pbl_Height( Input_Opt, State_Grid, State_Met, RC ) ENDIF ! Model level where PBL top occurs - State_Met%PBL_MAX_L = MAXVAL( State_Met%IMIX ) + State_Met%PBL_MAX_L = MAXVAL( CEILING( State_Met%PBL_Top_L ) ) END SUBROUTINE Compute_Pbl_Height !EOC @@ -535,15 +512,15 @@ SUBROUTINE TurbDay( Input_Opt, State_Chm, State_Diag, & REAL(fp) :: AA, CC, CC_AA, DTCONV ! Arrays - REAL(fp) :: A(State_Grid%NX,State_Grid%NY) REAL(fp) :: DTC + REAL(fp) :: A(State_Grid%NX,State_Grid%NY) + REAL(fp) :: FPBL(State_Grid%NX,State_Grid%NY) + INTEGER :: IMIX(State_Grid%NX,State_Grid%NY) ! Strings CHARACTER(LEN=255) :: ErrMsg, ThisLoc ! Pointers - INTEGER, POINTER :: IMIX(:,: ) - REAL(fp), POINTER :: FPBL(:,: ) REAL(fp), POINTER :: AD (:,:,: ) TYPE(SpcConc), POINTER :: TC (: ) @@ -574,9 +551,9 @@ SUBROUTINE TurbDay( Input_Opt, State_Chm, State_Diag, & ! Initalize AD => State_Met%AD ! Dry air mass - IMIX => State_Met%IMIX ! Integer level where PBL top occurs - FPBL => State_Met%FPBL ! Fractional level above IMIX to PBL top - TC => State_Chm%Species ! Chemical species [v/v] + TC => State_Chm%Species ! Chemical species [v/v] + IMIX = ceiling( State_Met%PBL_Top_L ) ! Integer level where PBL top occurs + FPBL = State_Met%PBL_Top_L - (IMIX-1) ! Fractional level above IMIX to PBL top ! Convection timestep [s] DTCONV = GET_TS_CONV() @@ -663,8 +640,6 @@ SUBROUTINE TurbDay( Input_Opt, State_Chm, State_Diag, & ! Free pointers AD => NULL() - IMIX => NULL() - FPBL => NULL() TC => NULL() END SUBROUTINE TurbDay diff --git a/GeosCore/photolysis_mod.F90 b/GeosCore/photolysis_mod.F90 new file mode 100644 index 000000000..0eaf45bad --- /dev/null +++ b/GeosCore/photolysis_mod.F90 @@ -0,0 +1,1735 @@ +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !MODULE: photolysis_mod.F90 +! +! !DESCRIPTION: Module PHOTOLYSIS\_MOD contains routines and variables +! for GEOS-Chem photolysis. +!\\ +!\\ +! !INTERFACE: +! +MODULE PHOTOLYSIS_MOD +! +! !USES: +! + USE PRECISION_MOD + + IMPLICIT NONE + + PRIVATE +! +! !PUBLIC MEMBER FUNCTIONS: +! + PUBLIC :: Init_Photolysis + PUBLIC :: Do_Photolysis + PUBLIC :: PHOTRATE_ADJ +! +! !PRIVATE MEMBER FUNCTIONS: +! + PRIVATE :: RD_AOD + PRIVATE :: CALC_AOD + PRIVATE :: SET_AER + PRIVATE :: RD_PROF_NC +! +! !REVISION HISTORY: +! 20 Mar 2023 - E. Lundgren - initial version, adapted from fast_jx_mod.F90 +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC + ! Species ID flags + INTEGER :: id_NIT, id_NITs, id_SALA, id_SALC + +CONTAINS +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: init_photolysis +! +! !DESCRIPTION: Subroutine INIT\_PHOTOLYSIS initializes GEOS-Chem photolysis. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE INIT_PHOTOLYSIS( Input_Opt, State_Grid, State_Chm, State_Diag, RC ) +! +! !USES: +! + USE Charpak_Mod, ONLY : CSTRIP +#ifdef FASTJX + USE CMN_FJX_Mod, ONLY : JVN_, W_, JLABEL, RNAMES, WL, JFACTA +#else + USE Cldj_Cmn_Mod, ONLY : JVN_, W_, JLABEL, RNAMES, WL, JFACTA +#endif + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE PhysConstants, ONLY : Planck, CConst + USE State_Chm_Mod, ONLY : ChmState, Ind_ + USE State_Diag_Mod, ONLY : DgnState + USE State_Grid_Mod, ONLY : GrdState +#ifdef FASTJX + USE Fjx_Interface_Mod, ONLY : Init_FastJX +#else + USE Cldj_Interface_Mod, ONLY : Init_CloudJ +#endif +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(DgnState), INTENT(IN) :: State_Diag ! Diagnostics State object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REVISION HISTORY: +! 20 Mar 2023 - E. Lundgren - initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + ! Strings + CHARACTER(LEN=50 ) :: TEXT + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + + ! Scalars + LOGICAL :: notDryRun + INTEGER :: J, K + REAL(fp) :: ND64MULT + + ! Pointers + INTEGER, POINTER :: GC_Photo_ID(:) + + !======================================================================= + ! INIT_PHOTOLYSIS begins here! + !======================================================================= + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = & + ' -> at Init_Photolysis (in module GeosCore/photolysis_mod.F90)' + + ! Set pointers + GC_Photo_ID => State_Chm%Phot%GC_Photo_ID + + !-------------------------------------------------------------------- + ! Initialize Fast-JX if photolysis enabled + ! + ! NOTE: we need to call this for a dry-run so that we can get + ! a list of all of the lookup tables etc read by Fast-JX + !-------------------------------------------------------------------- + IF ( Input_Opt%Do_Photolysis ) THEN +#ifdef FASTJX + IF ( TRIM(Input_Opt%Fast_JX_Dir) == MISSING_STR ) THEN + ErrMsg = 'Init_Photolysis: Fast-JX directory missing in ' // & + 'in geoschem_config.yml!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + CALL Init_FastJX( Input_Opt, State_Diag, State_Chm, RC ) + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in "Init_FastJX"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF +#else + IF ( TRIM(Input_Opt%CloudJ_Dir) == MISSING_STR ) THEN + ErrMsg = 'Init_Photolysis: Cloud-J directory missing in ' // & + 'geoschem_config.yml!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + CALL Init_CloudJ( Input_Opt, State_Grid, State_Diag, State_Chm, RC ) + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in "Init_CloudJ"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF +#endif + ENDIF + + !------------------------------------------------------------------------ + ! Read in AOD data even if photolysis disabled + ! (or just print file name if in dry-run mode) + !------------------------------------------------------------------------ + CALL RD_AOD( Input_Opt, State_Chm, RC ) + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in routine "RD_AOD"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Read in T & O3 climatology to fill e.g. upper layers or if O3 not calc. + !-------------------------------------------------------------------- + ! NOTE: Cloud-J reads in an ascii file with this data during initialization + ! and uses it prior to calling Cloud_JX within the Cloud-J standalone. In + ! GEOS-Chem we read a netcdf file instead and use the data within + ! subroutine Set_Prof_Fjx if using Fast-JX and Set_Prof_CloudJ if using + ! Cloud-J. The data is stored in State_Chm%Phot%TREF/%OREF. Cloud-J + ! globals variables TREF and OREF are only used for Cloud-J standalone. + CALL RD_PROF_NC( Input_Opt, State_Chm, RC ) + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in routine "Rd_Prof_Nc"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------------ + ! Exit without doing any computations if we are doing a dry-run + !------------------------------------------------------------------------ + IF ( Input_Opt%DryRun ) RETURN + + !------------------------------------------------------------------------ + ! Compute the required wavelengths in the LUT to calculate requested AOD + !------------------------------------------------------------------------ + IF (Input_Opt%amIRoot) WRITE(6,*) 'Wavelength optics read successfully' + CALL CALC_AOD( Input_Opt, State_Chm, RC ) + + !------------------------------------------------------------------------ + ! Exit if photolysis disabled (zero J-values) + !------------------------------------------------------------------------ + IF ( .NOT. Input_Opt%Do_Photolysis ) RETURN + + !-------------------------------------------------------------------- + ! Set up MIEDX array to interpret between GC and FJX aerosol indexing + !------------------------------------------------------------------------ + CALL SET_AER( Input_Opt, State_Chm, RC ) + + !======================================================================== + ! Flag special reactions that will be later adjusted by + ! routine PHOTRATE_ADJ (called from FlexChem) + !======================================================================== + IF ( Input_Opt%ITS_A_FULLCHEM_SIM ) THEN + + ! Loop over all photolysis reactions + DO K = 1, State_Chm%Phot%nPhotRxns + + ! Strip all blanks from the reactants and products list + TEXT = JLABEL(K) + CALL CSTRIP( TEXT ) + + !IF ( Input_Opt%amIRoot ) THEN + ! WRITE(*,*) K, TRIM( TEXT ) + !ENDIF + + ! Look for certain reactions + SELECT CASE( TRIM( TEXT ) ) + CASE( 'O2PHOTONOO' ) + State_Chm%Phot%RXN_O2 = K ! O2 + hv -> O + O + CASE( 'O3PHOTONO2O' ) + State_Chm%Phot%RXN_O3_1 = K ! O3 + hv -> O2 + O + CASE( 'O3PHOTONO2O(1D)' ) + State_Chm%Phot%RXN_O3_2 = K ! O3 + hv -> O2 + O(1D) + CASE( 'SO4PHOTONSO2OHOH' ) + State_Chm%Phot%RXN_H2SO4 = K ! SO4 + hv -> SO2 + OH + OH + CASE( 'NO2PHOTONNOO' ) + State_Chm%Phot%RXN_NO2 = K ! NO2 + hv -> NO + O + CASE( 'NOPHOTONNO' ) + State_Chm%Phot%RXN_NO = K ! NO + hv -> N + O + CASE( 'NO3PHOTONNO2O' ) + State_Chm%Phot%RXN_NO3 = K ! NO3 + hv -> NO2 + O + CASE( 'N2OPHOTONN2O' ) + State_Chm%Phot%RXN_N2O = K ! N2O + hv -> N2 + O + CASE( 'NITsPHOTONHNO2' ) + State_Chm%Phot%RXN_JNITSa = K ! NITs + hv -> HNO2 + CASE( 'NITsPHOTONNO2' ) + State_Chm%Phot%RXN_JNITSb = K ! NITs + hv -> NO2 + CASE( 'NITPHOTONHNO2' ) + State_Chm%Phot%RXN_JNITa = K ! NIT + hv -> HNO2 + CASE( 'NITPHOTONNO2' ) + State_Chm%Phot%RXN_JNITb = K ! NIT + hv -> NO2 + CASE( 'HNO3PHOTONNO2OH' ) + State_Chm%Phot%RXN_JHNO3 = K ! HNO3 + hv = OH + NO2 + CASE DEFAULT + ! Nothing + END SELECT + ENDDO + + !--------------------------------------------------------------------- + ! Error check the various rxn flags + !--------------------------------------------------------------------- + IF ( State_Chm%Phot%RXN_O2 < 0 ) THEN + ErrMsg = 'Could not find rxn O2 + hv -> O + O' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_O3_1 < 0 ) THEN + ErrMsg = 'Could not find rxn O3 + hv -> O2 + O' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_O3_2 < 0 ) THEN + ErrMsg = 'Could not find rxn O3 + hv -> O2 + O(1D)' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + ENDIF + + IF ( State_Chm%Phot%RXN_NO2 < 0 ) THEN + ErrMsg = 'Could not find rxn NO2 + hv -> NO + O' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_NO2 < 0 ) THEN + ErrMsg = 'Could not find rxn NO2 + hv -> NO + O' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_JNITSa < 0 ) THEN + ErrMsg = 'Could not find rxn NITS + hv -> HNO2' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_JNITSb < 0 ) THEN + ErrMsg = 'Could not find rxn NITS + hv -> NO2' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_JNITa < 0 ) THEN + ErrMsg = 'Could not find rxn NIT + hv -> HNO2' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_JNITb < 0 ) THEN + ErrMsg = 'Could not find rxn NIT + hv -> NO2' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_H2SO4 < 0 ) THEN + ErrMsg = 'Could not find rxn SO4 + hv -> SO2 + OH + OH!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_NO3 < 0 ) THEN + ErrMsg = 'Could not find rxn NO3 + hv -> NO2 + O' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_NO < 0 ) THEN + ErrMsg = 'Could not find rxn NO + hv -> O + N' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_N2O < 0 ) THEN + ErrMsg = 'Could not find rxn N2O + hv -> N2 + O(1D)' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + !--------------------------------------------------------------------- + ! Print out saved rxn flags for fullchem simulations + !--------------------------------------------------------------------- + IF ( Input_Opt%amIRoot ) THEN + WRITE( 6, 100 ) REPEAT( '=', 79 ) + WRITE( 6, 110 ) + WRITE( 6, 120 ) State_Chm%Phot%RXN_O2 + WRITE( 6, 130 ) State_Chm%Phot%RXN_O3_1 + WRITE( 6, 140 ) State_Chm%Phot%RXN_O3_2 + WRITE( 6, 180 ) State_Chm%Phot%RXN_JNITSa + WRITE( 6, 190 ) State_Chm%Phot%RXN_JNITSb + WRITE( 6, 200 ) State_Chm%Phot%RXN_JNITa + WRITE( 6, 210 ) State_Chm%Phot%RXN_JNITb + WRITE( 6, 160 ) State_Chm%Phot%RXN_H2SO4 + WRITE( 6, 170 ) State_Chm%Phot%RXN_NO2 + WRITE( 6, 100 ) REPEAT( '=', 79 ) + ENDIF + ENDIF + + !======================================================================== + ! Flag reactions for diagnostics (only in Hg chem) + !======================================================================== + IF ( Input_Opt%ITS_A_MERCURY_SIM ) THEN + ! Loop over all photolysis reactions + DO K = 1, State_Chm%Phot%nPhotRxns + + ! Strip all blanks from the reactants and products list + TEXT = JLABEL(K) + CALL CSTRIP( TEXT ) + + ! Look for certain reactions + SELECT CASE( TRIM( TEXT ) ) + CASE( 'O3PHOTONO2O' ) + State_Chm%Phot%RXN_O3_1 = K ! O3 + hv -> O2 + O + CASE( 'O3PHOTONO2O(1D)' ) + State_Chm%Phot%RXN_O3_2 = K ! O3 + hv -> O2 + O(1D) + CASE( 'NO2PHOTONNOO' ) + State_Chm%Phot%RXN_NO2 = K ! NO2 + hv -> NO + O + CASE( 'BrOPHOTONBrO' ) + State_Chm%Phot%RXN_BrO = K ! BrO + hv -> Br + O + CASE( 'ClOPHOTONClO' ) + State_Chm%Phot%RXN_ClO = K ! ClO + hv -> Cl + O + CASE DEFAULT + ! Nothing + END SELECT + ENDDO + + !-------------------------------------------------------------------- + ! Error check the various rxn flags + !-------------------------------------------------------------------- + IF ( State_Chm%Phot%RXN_O3_1 < 0 ) THEN + ErrMsg = 'Could not find rxn O3 + hv -> O2 + O' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_O3_2 < 0 ) THEN + ErrMsg = 'Could not find rxn O3 + hv -> O2 + O(1D) #1' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_NO2 < 0 ) THEN + ErrMsg = 'Could not find rxn NO2 + hv -> NO + O' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_BrO < 0 ) THEN + ErrMsg = 'Could not find rxn BrO + hv -> Br + O' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + IF ( State_Chm%Phot%RXN_ClO < 0 ) THEN + ErrMsg = 'Could not find rxn ClO + hv -> Cl + O' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + !--------------------------------------------------------------------- + ! Print out saved rxn flags for Hg simulation + !--------------------------------------------------------------------- + IF ( Input_Opt%amIRoot ) THEN + WRITE( 6, 100 ) REPEAT( '=', 79 ) + WRITE( 6, 110 ) + WRITE( 6, 130 ) State_Chm%Phot%RXN_O3_1 + WRITE( 6, 140 ) State_Chm%Phot%RXN_O3_2 + WRITE( 6, 170 ) State_Chm%Phot%RXN_NO2 + WRITE( 6, 220 ) State_Chm%Phot%RXN_BrO + WRITE( 6, 230 ) State_Chm%Phot%RXN_ClO + WRITE( 6, 100 ) REPEAT( '=', 79 ) + ENDIF + ENDIF + + ! Skip further processing if we are in dry-run mode + IF ( .not. Input_Opt%DryRun ) THEN + + ! Define species IDs + id_NIT = IND_('NIT') + id_NITs = IND_('NITs') + id_SALA = IND_('SALA') + id_SALC = IND_('SALC') + + ! Get the GEOS-Chem photolysis index for each of the 1...JVN_ entries + ! in the FJX_j2j.dat file. We'll use this for the diagnostics. + DO J = 1, State_Chm%Phot%nMaxPhotRxns + + IF ( J == State_Chm%Phot%Rxn_O3_2 ) THEN + + !------------------------------------------------------------ + ! O3 + hv = O + O(1D) + ! + ! Save this as JO3_O1D in the nPhotol+1 slot + !------------------------------------------------------------ + GC_Photo_Id(J) = State_Chm%nPhotol + 1 + + ELSE IF ( J == State_Chm%Phot%Rxn_O3_1 ) THEN + + !------------------------------------------------------------ + ! O3 + hv -> O + O + ! + ! Save this as JO3_O3P in the nPhotol+2 slot + !------------------------------------------------------------- + GC_Photo_Id(J) = State_Chm%nPhotol + 2 + + ELSE + + !------------------------------------------------------------ + ! Everything else + ! + ! Find the matching GEOS-Chem photolysis species number + !------------------------------------------------------------ + GC_Photo_Id(J) = Ind_( RNAMES(J), 'P' ) + + ENDIF + + ! Print the mapping + IF ( Input_Opt%amIRoot ) THEN + IF ( GC_Photo_Id(J) > 0 ) THEN + WRITE(6, 240) RNAMES(J), J, GC_Photo_Id(J), JFACTA(J) +240 FORMAT( a10, ':', i7, 2x, i7, 2x, f7.4 ) + ENDIF + ENDIF + ENDDO + + !===================================================================== + ! Compute factors for UV flux diagnostics if turned on + !===================================================================== + IF ( State_Diag%Archive_UVFluxNet .or. & + State_Diag%Archive_UVFluxDirect .or. & + State_Diag%Archive_UVFluxDiffuse ) THEN + ND64MULT = PLANCK * CCONST * 1.0e+13_fp + State_Chm%Phot%UVXFACTOR = 0e+0_fp + DO J = 1, W_ + State_Chm%Phot%UVXFACTOR(J) = ND64MULT/WL(J) + ENDDO + ENDIF + ENDIF + + ! Free pointers + GC_Photo_ID => NULL() + + ! FORMAT statements +100 FORMAT( a ) +110 FORMAT( 'Photo rxn flags saved for use in PHOTRATE_ADJ:', / ) +120 FORMAT( 'RXN_O2 [ O2 + hv -> O + O ] = ', i5 ) +130 FORMAT( 'RXN_O3_1 [ O3 + hv -> O2 + O ] = ', i5 ) +140 FORMAT( 'RXN_O3_2a [ O3 + hv -> O2 + O(1D) #1 ] = ', i5 ) +150 FORMAT( 'RXN_O3_2b [ O3 + hv -> O2 + O(1D) #2 ] = ', i5 ) +160 FORMAT( 'RXN_H2SO4 [ SO4 + hv -> SO2 + OH + OH ] = ', i5 ) +170 FORMAT( 'RXN_NO2 [ NO2 + hv -> NO + O ] = ', i5 ) +180 FORMAT( 'RXN_JNITSa [ NITS + hv -> HNO2 ] = ', i5 ) +190 FORMAT( 'RXN_JNITSb [ NITS + hv -> NO2 ] = ', i5 ) +200 FORMAT( 'RXN_JNITa [ NIT + hv -> HNO2 ] = ', i5 ) +210 FORMAT( 'RXN_JNITb [ NIT + hv -> NO2 ] = ', i5 ) +220 FORMAT( 'RXN_BrO [ BrO + hv -> Br + O ] = ', i5 ) +230 FORMAT( 'RXN_ClO [ ClO + hv -> Cl + O ] = ', i5 ) + + END SUBROUTINE Init_Photolysis +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !ROUTINE: do_photolysis +! +! !DESCRIPTION: Subroutine DO\_PHOTOLYSIS loops over longitude and latitude, +! and computes J-Values for each column at every chemistry time-step. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Do_Photolysis( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) +! +! !USES: +! + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState + USE State_Diag_Mod, ONLY : DgnState + USE State_Grid_Mod, ONLY : GrdState + USE State_Met_Mod, ONLY : MetState +#ifdef FASTJX + USE Fjx_Interface_Mod, ONLY : Run_FastJX +#else + USE Cldj_Interface_Mod, ONLY : Run_CloudJ +#endif + + IMPLICIT NONE +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! +! !REVISION HISTORY: +! 20 Mar 2023 - E. Lundgren - initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER :: Wavelength + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + + !================================================================= + ! DO_PHOTOLYSIS begins here! + !================================================================= + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at DO_PHOTOLYSIS (in module GeosCore/photolysis_mod.F90)' + WAVELENGTH = 0 + +#ifdef FASTJX + CALL Run_FastJX( Wavelength, Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) +#else + CALL Run_CloudJ( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, RC ) +#endif + + IF ( RC /= GC_SUCCESS ) THEN +#ifdef FASTJX + ErrMsg = 'Error encountered in subroutine Run_FastJX!' +#else + ErrMsg = 'Error encountered in subroutine Run_CloudJ!' +#endif + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + END SUBROUTINE Do_Photolysis +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: photrate_adj +! +! !DESCRIPTION: Subroutine PHOTRATE\_ADJ adjusts certain photolysis rates +! for chemistry. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE PHOTRATE_ADJ( Input_Opt, State_Chm, State_Diag, State_Met, & + I, J, L, FRAC, RC ) +! +! !USES: +! + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState + USE State_Diag_Mod, ONLY : DgnState + USE State_Met_Mod, ONLY : MetState + USE Error_Mod, ONLY : SAFE_DIV +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input_Options object + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object + INTEGER, INTENT(IN) :: I, J, L ! Lon, lat, lev indices + REAL(fp), INTENT(IN) :: FRAC ! Result of SO4_PHOTFRAC, + ! called from DO_FLEXCHEM +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure +! +! !REMARKS: +! NOTE: The netCDF diagnostics are attached in DO_FLEXCHEM so that we have +! access to the adjusted rates. +! -- Bob Yantosca, 19 Dec 2017 +! +! %%%% NOTE: WE SHOULD UPDATE THE COMMENTS TO MAKE SURE THAT WE DO %%%% +! %%%% NOT KEEP ANY CONFLICTING OR INCORRECT INFORMATION (bmy, 3/28/16) %%%% +! +! !REVISION HISTORY: +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER :: RXN_JNITSa, RXN_JNITSb, RXN_JNITa, RXN_JNITb + INTEGER :: RXN_JHNO3, RXN_H2SO4, RXN_O3_1, RXN_O3_2 + REAL(fp) :: JscaleNITs, JscaleNIT, JNITChanA, JNITChanB + REAL(fp) :: C_O2, C_N2, C_H2, ITEMPK, RO1DplH2O + REAL(fp) :: RO1DplH2, RO1D, NUMDEN, TEMP, C_H2O + REAL(fp) :: C_NIT, C_NITs, C_SALA, C_SALC, FAC + + ! Pointers + REAL*8, POINTER :: ZPJ(:,:,:,:) + + !================================================================= + ! PHOTRATE_ADJ begins here! + !================================================================= + + ! Initialize + RC = GC_SUCCESS + TEMP = State_Met%T(I,J,L) ! K + NUMDEN = State_Met%AIRNUMDEN(I,J,L) ! molec/cm3 + C_H2O = State_Met%AVGW(I,J,L) * State_Met%AIRNUMDEN(I,J,L) ! molec/cm3 + + ! Reaction flags + RXN_JNITSa = State_Chm%Phot%RXN_JNITSa + RXN_JNITSb = State_Chm%Phot%RXN_JNITSb + RXN_JNITa = State_Chm%Phot%RXN_JNITa + RXN_JNITb = State_Chm%Phot%RXN_JNITb + RXN_JHNO3 = State_Chm%Phot%RXN_JHNO3 + RXN_H2SO4 = State_Chm%Phot%RXN_H2SO4 + RXN_O3_1 = State_Chm%Phot%RXN_O3_1 + RXN_O3_2 = State_Chm%Phot%RXN_O3_2 + + ! Pointers + ZPJ => State_Chm%Phot%ZPJ + + ! For all mechanisms. Set the photolysis rate of NITs and NIT to a + ! scaled value of JHNO3. NOTE: this is set in geoschem_config.yml + ! Allow particulate nitrate photolysis in the troposphere only + IF ( Input_Opt%hvAerNIT .and. & + State_Met%InTroposphere(I,J,L) ) THEN + + ! Get NIT and NITs concentrations [molec cm-3] + C_NIT = State_Chm%Species(id_NIT)%Conc(I,J,L) + C_NITs = State_Chm%Species(id_NITs)%Conc(I,J,L) + + + ! Get sea-salt concentrations [molec cm-3] + C_SALA = State_Chm%Species(id_SALA)%Conc(I,J,L) + C_SALC = State_Chm%Species(id_SALC)%Conc(I,J,L) + + ! Scaling factor for J(NIT) + FAC = SAFE_DIV( C_SALA, C_SALA + C_NIT, 1e+0_fp ) + + ! Set FRAC_NIT to a minimum of 0.1 + FAC = MAX( 0.1e+0_fp, FAC ) + + JscaleNITs = Input_Opt%hvAerNIT_JNITs + JscaleNIT = Input_Opt%hvAerNIT_JNIT + + ! convert reaction channel % to a fraction + JNITChanA = Input_Opt%JNITChanA + JNITChanB = Input_Opt%JNITChanB + JNITChanA = JNITChanA / 100.0_fp + JNITChanB = JNITChanB / 100.0_fp + + ! Set the photolysis rate of NITs + ZPJ(L,RXN_JNITSa,I,J) = ZPJ(L,RXN_JHNO3,I,J) * JscaleNITs + ZPJ(L,RXN_JNITSb,I,J) = ZPJ(L,RXN_JHNO3,I,J) * JscaleNITs + + ! Set the photolysis rate of NIT + ZPJ(L,RXN_JNITa,I,J) = ZPJ(L,RXN_JHNO3,I,J) * JscaleNIT * FAC + ZPJ(L,RXN_JNITb,I,J) = ZPJ(L,RXN_JHNO3,I,J) * JscaleNIT * FAC + + ! NOTE: channel scaling is 1 in FJX_j2j.dat, then updated here + ZPJ(L,RXN_JNITSa,I,J) = ZPJ(L,RXN_JNITSa,I,J) * JNITChanA + ZPJ(L,RXN_JNITa,I,J) = ZPJ(L,RXN_JNITa,I,J) * JNITChanA + ZPJ(L,RXN_JNITSb,I,J) = ZPJ(L,RXN_JNITSb,I,J) * JNITChanB + ZPJ(L,RXN_JNITb,I,J) = ZPJ(L,RXN_JNITb,I,J) * JNITChanB + + ! Gotcha to set JNIT and JNITs to zero if hvAerNIT switch is off + ELSE + + ! Set the photolysis rate of NITs to zero + ZPJ(L,RXN_JNITSa,I,J) = 0.0_fp + ZPJ(L,RXN_JNITSb,I,J) = 0.0_fp + ! Set the photolysis rate of NIT to zero + ZPJ(L,RXN_JNITa,I,J) = 0.0_fp + ZPJ(L,RXN_JNITb,I,J) = 0.0_fp + + ENDIF + + !============================================================== + ! SPECIAL TREATMENT FOR H2SO4+hv -> SO2 + 2OH + ! + ! Only allow photolysis of H2SO4 when gaseous (SDE 04/11/13) + !============================================================== + + ! Calculate if H2SO4 expected to be gaseous or aqueous + ! Only allow photolysis above 6 hPa + ! RXN_H2SO4 specifies SO4 + hv -> SO2 + OH + OH + ZPJ(L,RXN_H2SO4,I,J) = ZPJ(L,RXN_H2SO4,I,J) * FRAC + + !============================================================== + ! SPECIAL TREATMENT FOR O3+hv -> O+O2 + ! + ! [O1D]ss=J[O3]/(k[H2O]+k[N2]+k[O2]) + ! SO, THE EFFECTIVE J-VALUE IS J*k[H2O]/(k[H2O]+k[N2]+k[O2]) + ! + ! We don't want to do this if strat-chem is in use, as all + ! the intermediate reactions are included - this would be + ! double-counting (SDE 04/01/13) + !============================================================== + + ! Need to subtract O3->O1D from rate + ! RXN_O3_1 specifies: O3 + hv -> O2 + O + ! RXN_O3_2 specifies: O3 + hv -> O2 + O(1D) + ZPJ(L,RXN_O3_1,I,J) = ZPJ(L,RXN_O3_1,I,J) & + - ZPJ(L,RXN_O3_2,I,J) + + ! Free pointers + ZPJ => NULL() + + END SUBROUTINE PHOTRATE_ADJ +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: rd_aod +! +! !DESCRIPTION: Subroutine RD\_AOD reads aerosol phase functions that are +! used to scale diagnostic output to an arbitrary wavelengh. This +! facilitates comparing with satellite observations. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE RD_AOD( Input_Opt, State_Chm, RC ) +! +! !USES: +! + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE InquireMod, ONLY : FindFreeLUN + USE State_Chm_Mod, ONLY : ChmState +#if defined( MODEL_CESM ) + USE UNITS, ONLY : freeUnit +#endif +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REMARKS: +! The .dat files for each species contain the optical properties +! at multiple wavelengths to be used in the online calculation of the aerosol +! optical depth diagnostics. +! These properties have been calculated using the same size and optical +! properties as the FJX_spec.dat file used for the FAST-J photolysis +! calculations (which is now redundant for aerosols, the values in the .dat +! files here are now used). The file currently contains 11 wavelengths +! for Fast-J and other commonly used wavelengths for satellite and +! AERONET retrievals. 30 wavelengths follow that map onto RRTMG +! wavebands for radiaitive flux calculations (not used if RRTMG is off). +! A complete set of optical properties from 250-2000 nm for aerosols is +! available at: +! ftp://ftp.as.harvard.edu/geos-chem/data/aerosol_optics/hi_spectral_res +! . +! -- Colette L. Heald, 05/10/10) +! -- David A. Ridley, 05/10/13 (update for new optics files) +! +! !REVISION HISTORY: +! 10 May 2010 - C. Heald - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES +! + ! Scalars + INTEGER :: I, J, K, N, g + INTEGER :: IOS, NJ1 + LOGICAL :: LBRC, FileExists + + ! Strings + CHARACTER(LEN=78 ) :: TITLE0 + CHARACTER(LEN=255) :: DATA_DIR + CHARACTER(LEN=255) :: THISFILE + CHARACTER(LEN=255) :: FileMsg + CHARACTER(LEN=255) :: ErrMsg + CHARACTER(LEN=255) :: ThisLoc + + ! String arrays + CHARACTER(LEN=30) :: SPECFIL(8) + + ! Pointers + REAL*8, POINTER :: WVAA (:,:) + REAL*8, POINTER :: RHAA (:,:) + REAL*8, POINTER :: RDAA (:,:,:) + REAL*8, POINTER :: RWAA (:,:,:) + REAL*8, POINTER :: SGAA (:,:) + REAL*8, POINTER :: REAA (:,:,:) + REAL*8, POINTER :: NCMAA (:,:,:) + REAL*8, POINTER :: NRLAA (:,:,:) + REAL*8, POINTER :: QQAA (:,:,:,:) + REAL*8, POINTER :: ALPHAA(:,:,:,:) + REAL*8, POINTER :: SSAA (:,:,:,:) + REAL*8, POINTER :: ASYMAA(:,:,:,:) + REAL*8, POINTER :: PHAA (:,:,:,:,:) + + !================================================================ + ! RD_AOD begins here! + !================================================================ + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at RD_AOD (in module GeosCore/photolysis_mod.F90)' + LBRC = Input_Opt%LBRC + DATA_DIR = TRIM( Input_Opt%FAST_JX_DIR ) + + ! Set Pointers + WVAA => State_Chm%Phot%WVAA + RHAA => State_Chm%Phot%RHAA + RDAA => State_Chm%Phot%RDAA + RWAA => State_Chm%Phot%RWAA + SGAA => State_Chm%Phot%SGAA + REAA => State_Chm%Phot%REAA + NRLAA => State_Chm%Phot%NRLAA + NCMAA => State_Chm%Phot%NCMAA + QQAA => State_Chm%Phot%QQAA + ALPHAA => State_Chm%Phot%ALPHAA + SSAA => State_Chm%Phot%SSAA + ASYMAA => State_Chm%Phot%ASYMAA + PHAA => State_Chm%Phot%PHAA + + ! Get a free LUN + NJ1 = findFreeLUN() + + ! IMPORTANT: aerosol_mod.F and dust_mod.F expect aerosols in this order + ! + ! Treating strat sulfate with GADS data but modified to match + ! the old Fast-J values size (r=0.09um, sg=0.6) - I think there's + ! evidence that this is too smale and narrow e.g. Deshler et al. 2003 + ! NAT should really be associated with something like cirrus cloud + ! but for now we are just treating the NAT like the sulfate... limited + ! info but ref index is similar e.g. Scarchilli et al. (2005) + !(DAR 05/2015) + DATA SPECFIL /"so4.dat","soot.dat","org.dat", & + "ssa.dat","ssc.dat", & + "h2so4.dat","h2so4.dat", & + "dust.dat"/ + + ! Loop over the array of filenames + DO k = 1, State_Chm%Phot%NSPAA + + ! Choose different set of input files for standard (trop+strat chenm) + ! and tropchem (trop-only chem) simulations + THISFILE = TRIM( DATA_DIR ) // '/' // TRIM( SPECFIL(k) ) + + !-------------------------------------------------------------- + ! In dry-run mode, print file path to dryrun log and cycle. + ! Otherwise, print file path to stdout and continue. + !-------------------------------------------------------------- + + ! Test if the file exists + INQUIRE( FILE=TRIM( ThisFile ), EXIST=FileExists ) + + ! Test if the file exists and define an output string + IF ( FileExists ) THEN + FileMsg = 'PHOTOLYSIS (RD_AOD): Opening' + ELSE + FileMsg = 'PHOTOLYSIS (RD_AOD): REQUIRED FILE NOT FOUND' + ENDIF + + ! Write to stdout for both regular and dry-run simulations + IF ( Input_Opt%amIRoot ) THEN + WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( ThisFile ) +300 FORMAT( a, ' ', a ) + ENDIF + + ! For dry-run simulations, cycle to next file. + ! For regular simulations, throw an error if we can't find the file. + IF ( Input_Opt%DryRun ) THEN + CYCLE + ELSE + IF ( .not. FileExists ) THEN + WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( ThisFile ) + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + ENDIF + + !-------------------------------------------------------------- + ! If not a dry-run, read data from each species file + !-------------------------------------------------------------- + + ! Open file + OPEN( NJ1, FILE=TRIM( THISFILE ), STATUS='OLD', IOSTAT=RC ) + + ! Error check + IF ( RC /= 0 ) THEN + ErrMsg = 'Error opening file: ' // TRIM( ThisFile ) + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + ! Read header lines + READ( NJ1, '(A)' ) TITLE0 + IF ( Input_Opt%amIRoot ) WRITE( 6, '(1X,A)' ) TITLE0 + + ! Second header line added for more info + READ( NJ1, '(A)' ) TITLE0 + IF ( Input_Opt%amIRoot ) WRITE( 6, '(1X,A)' ) TITLE0 + + READ( NJ1, '(A)' ) TITLE0 +110 FORMAT( 3x, a20 ) + + IF (k == 1 .OR. k == 3) THEN + ! for SO4 and ORGANICS, dry aerosol size varies, therefore all + ! opt properties vary. + DO g = 1, State_Chm%Phot%NDRg + DO i = 1, State_Chm%Phot%NRAA + DO j = 1, State_Chm%Phot%NWVAA + + READ(NJ1,*) WVAA(j,k),RHAA(i,k),NRLAA(j,i,k),NCMAA(j,i,k), & + RDAA(i,k,g),RWAA(i,k,g),SGAA(i,k),QQAA(j,i,k,g), & + ALPHAA(j,i,k,g),REAA(i,k,g),SSAA(j,i,k,g), & + ASYMAA(j,i,k,g),(PHAA(j,i,k,n,g),n=1,8) + + ! make note of where 1000nm is for FAST-J calcs + IF (WVAA(j,k).EQ.1000.0) State_Chm%Phot%IWV1000=J + + ENDDO + ENDDO + ENDDO + + ELSE + ! For other species, keep g = default Rg (DRg) + g = State_Chm%Phot%DRg + DO i = 1, State_Chm%Phot%NRAA + DO j = 1, State_Chm%Phot%NWVAA + + READ(NJ1,*) WVAA(j,k),RHAA(i,k),NRLAA(j,i,k),NCMAA(j,i,k), & + RDAA(i,k,g),RWAA(i,k,g),SGAA(i,k),QQAA(j,i,k,g), & + ALPHAA(j,i,k,g),REAA(i,k,g),SSAA(j,i,k,g), & + ASYMAA(j,i,k,g),(PHAA(j,i,k,n,g),n=1,8) + + ! make note of where 1000nm is for FAST-J calcs + IF (WVAA(j,k).EQ.1000.0) State_Chm%Phot%IWV1000=J + + ENDDO + ENDDO + + ENDIF + + ! Close file + CLOSE( NJ1 ) + + ENDDO + +#if defined( MODEL_CESM ) + CALL freeUnit(NJ1) +#endif + + ! Free pointers + WVAA => NULL() + RHAA => NULL() + RDAA => NULL() + RWAA => NULL() + SGAA => NULL() + REAA => NULL() + NCMAA => NULL() + NRLAA => NULL() + QQAA => NULL() + ALPHAA => NULL() + SSAA => NULL() + ASYMAA => NULL() + PHAA => NULL() + + END SUBROUTINE RD_AOD +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: calc_aod +! +! !DESCRIPTION: Subroutine CALC\_AOD works out the closest tie points +! in the optics LUT wavelengths and the coefficients required to +! calculate the angstrom exponent for interpolating optics to the requested +! wavelength. If the wavelength requested matches a standard wavelength +! in the LUT then we skip the interpolation (DAR 09/2013) +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE CALC_AOD( Input_Opt, State_Chm, RC ) +! +! !USES: +! + USE Input_Opt_Mod, ONLY : OptInput +#ifdef RRTMG + USE PARRRTM, ONLY : NBNDLW +#endif + USE State_Chm_Mod, ONLY : ChmState +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: RC +! +! !REMARKS: +! Now the user is able to select any 3 wavelengths for optics +! output in the geoschem_config.yml file we need to be able to interpolate +! to those wavelengths based on what is available in the optics +! look-up table. +! . +! The standard lookup table currently has values for +! 11 common wavelengths followed by 30 that are required by RRTMG. +! Only those required to interpolate to user requested +! wavelengths are selected from the standard wavelengths. RRTMG +! wavelengths are not used in the interpolation for AOD output +! (DAR 10/2013) +! . +! UPDATE: because the RT optics output doesnt have access to the +! standard wavelengths we now calculate two sets of values: one +! for the ND21 and diag3 outputs that use the standard wavelengths +! and one for RRTMG diagnostics that interpolate the optics from RRTMG +! wavelengths. Perhaps a switch needs adding to switch off the RT +! optics output (and interpolation) if this ends up costing too +! much and is not used, but it is ideal to have an optics output +! that matches exactly what RRTMG uses to calculate the fluxes +! +! !REVISION HISTORY: +! 18 Jun 2013 - D. Ridley - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES +! + INTEGER :: MINWV, MAXWV, N, N0, N1, W, NSTEP + INTEGER :: NWVAA, NWVAA0, NWVREQUIRED, NRTWVREQUIRED + REAL(fp) :: WVDIF + + ! Pointers + INTEGER, POINTER :: IWVREQUIRED (:) + INTEGER, POINTER :: IRTWVREQUIRED(:) + INTEGER, POINTER :: IWVSELECT (:,:) + INTEGER, POINTER :: IRTWVSELECT (:,:) + REAL*8, POINTER :: ACOEF_WV (:) + REAL*8, POINTER :: BCOEF_WV (:) + REAL*8, POINTER :: CCOEF_WV (:) + REAL*8, POINTER :: ACOEF_RTWV (:) + REAL*8, POINTER :: BCOEF_RTWV (:) + REAL*8, POINTER :: CCOEF_RTWV (:) + REAL*8, POINTER :: WVAA (:,:) + + !================================================================ + ! CALC_AOD begins here! + !================================================================ + + ! Constants State_Chm%Phot + NWVAA = State_Chm%Phot%NWVAA + NWVAA0 = State_Chm%Phot%NWVAA0 + + ! Scalars in State_Chm%Phot that will be set in this subroutine + NWVREQUIRED = State_Chm%Phot%NWVREQUIRED + NRTWVREQUIRED = State_Chm%Phot%NRTWVREQUIRED + + ! Set pointers + IWVREQUIRED => State_Chm%Phot%IWVREQUIRED + IRTWVREQUIRED => State_Chm%Phot%IRTWVREQUIRED + IWVSELECT => State_Chm%Phot%IWVSELECT + IRTWVSELECT => State_Chm%Phot%IRTWVSELECT + ACOEF_WV => State_Chm%Phot%ACOEF_WV + BCOEF_WV => State_Chm%Phot%BCOEF_WV + CCOEF_WV => State_Chm%Phot%CCOEF_WV + ACOEF_RTWV => State_Chm%Phot%ACOEF_RTWV + BCOEF_RTWV => State_Chm%Phot%BCOEF_RTWV + CCOEF_RTWV => State_Chm%Phot%CCOEF_RTWV + WVAA => State_Chm%Phot%WVAA + + !cycle over standard wavelengths + N0=1 + N1=NWVAA0 + NSTEP=1 + NWVREQUIRED=0 + DO W=1,Input_Opt%NWVSELECT + MINWV = -999 + MAXWV = 999 + DO N=N0,N1,NSTEP ! 1 to 11 + WVDIF = WVAA(N,1)-Input_Opt%WVSELECT(W) + IF ((WVDIF.LE.0).AND.(WVDIF.GT.MINWV)) THEN + MINWV = WVDIF + IWVSELECT(1,W)=N + ENDIF + IF ((WVDIF.GE.0).AND.(WVDIF.LT.MAXWV)) THEN + MAXWV = WVDIF + IWVSELECT(2,W)=N + ENDIF + ENDDO + IF (IWVSELECT(2,W).EQ.IWVSELECT(1,W)) THEN + !we have a match! + MINWV=0 + MAXWV=0 + !add this wavelength to those for output + NWVREQUIRED=NWVREQUIRED+1 + IWVREQUIRED(NWVREQUIRED)=IWVSELECT(1,W) + ELSE + !we are going to have to interpolate to the requested wavelength + NWVREQUIRED=NWVREQUIRED+1 + IWVREQUIRED(NWVREQUIRED)=IWVSELECT(1,W) + NWVREQUIRED=NWVREQUIRED+1 + IWVREQUIRED(NWVREQUIRED)=IWVSELECT(2,W) + ENDIF + + !Error check - ensure we have a match or requested wavelength + !falls within two LUT tie points + IF (MINWV.EQ.-999) THEN + ! requested wavelength is shorter than min wv in LUT + ! set to min + write(6,*) 'ERROR requested wavelength is too short!!' + write(6,*) 'Defaulting to LUT min: ',WVAA(1,1) + IWVSELECT(1,W)=1 + IWVSELECT(2,W)=1 !300nm + NWVREQUIRED=NWVREQUIRED-1 + IWVREQUIRED(NWVREQUIRED)=IWVSELECT(1,W) + ENDIF + IF (MAXWV.EQ.999) THEN + ! requested wavelength is longer than min wv in LUT + ! set to max + write(6,*) 'ERROR requested wavelength is too long!!' + write(6,*) 'Defaulting to LUT min: ',WVAA(NWVAA0,1) + IWVSELECT(1,W)=NWVAA0 + IWVSELECT(2,W)=NWVAA0 !1020nm + NWVREQUIRED=NWVREQUIRED-1 + IWVREQUIRED(NWVREQUIRED)=IWVSELECT(1,W) + ENDIF + + !now calcualte the angstrom exponent coefs for interpolation - + !this is done here to save time and repetition in aerosol_mod.F + IF (IWVSELECT(1,W).NE.IWVSELECT(2,W)) THEN + ACOEF_WV(W) = WVAA(IWVSELECT(2,W),1)/Input_Opt%WVSELECT(W) + BCOEF_WV(W) =1.0d0/(LOG(WVAA(IWVSELECT(2,W),1)/ & + WVAA(IWVSELECT(1,W),1))) + !relative location of selected wavelength between tie points + !for interpolating SSA and ASYM for output in aerosol_mod.F and + !dust_mod.F + CCOEF_WV(W) =(Input_Opt%WVSELECT(W)-WVAA(IWVSELECT(1,W),1))/ & + (WVAA(IWVSELECT(2,W),1)-WVAA(IWVSELECT(1,W),1)) + ENDIF + IF ( Input_Opt%amIRoot ) THEN + write(6,*) 'N WAVELENGTHS: ',Input_Opt%NWVSELECT + write(6,*) 'WAVELENGTH REQUESTED:',Input_Opt%WVSELECT(W) + write(6,*) 'WAVELENGTH REQUIRED:', NWVREQUIRED + !write(6,*) IWVSELECT(1,W),WVAA(IWVSELECT(1,W),1) + !write(6,*) IWVSELECT(2,W),WVAA(IWVSELECT(2,W),1) + !write(6,*) ACOEF_WV(W),BCOEF_WV(W),CCOEF_WV(W) + write(6,*) '*********************************' + ENDIF + ENDDO !Input_Opt%NWVSELECT +#ifdef RRTMG + !repeat for RRTMG wavelengths to get the closest wavelength + !indices and the interpolation coefficients + !Indices are relative to all wavelengths in the LUT i.e. the RRTMG + !wavelengths start at NWVAA0+1 + N0=NWVAA0+1 + N1=NWVAA + NSTEP=1 + NRTWVREQUIRED=0 + DO W=1,Input_Opt%NWVSELECT + MINWV = -999 + MAXWV = 999 + DO N=N0,N1,NSTEP + WVDIF = WVAA(N,1)-Input_Opt%WVSELECT(W) + IF ((WVDIF.LE.0).AND.(WVDIF.GT.MINWV)) THEN + MINWV = WVDIF + IRTWVSELECT(1,W)=N + ENDIF + IF ((WVDIF.GE.0).AND.(WVDIF.LT.MAXWV)) THEN + MAXWV = WVDIF + IRTWVSELECT(2,W)=N + ENDIF + ENDDO + IF (IRTWVSELECT(2,W).EQ.IRTWVSELECT(1,W)) THEN + !we have a match! + MINWV=0 + MAXWV=0 + !add this wavelength to those for output + NRTWVREQUIRED=NRTWVREQUIRED+1 + IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(1,W) + ELSE + !we are going to have to interpolate to the requested + !wavelength + NRTWVREQUIRED=NRTWVREQUIRED+1 + IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(1,W) + NRTWVREQUIRED=NRTWVREQUIRED+1 + IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(2,W) + ENDIF + + !Error check - ensure we have a match or requested wavelength + !falls within two LUT tie points + IF (MINWV.EQ.-999) THEN + ! requested wavelength is shorter than min wv in LUT + ! set to min + write(6,*) 'ERROR requested wavelength is too short!!' + write(6,*) 'Defaulting to LUT min: ',WVAA(NWVAA-1,1) + IRTWVSELECT(1,W)=NWVAA-1 + IRTWVSELECT(2,W)=NWVAA-1 + NRTWVREQUIRED=NRTWVREQUIRED-1 + IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(1,W) + ENDIF + IF (MAXWV.EQ.999) THEN + ! requested wavelength is longer than min wv in LUT + ! set to max + write(6,*) 'ERROR requested wavelength is too long!!' + write(6,*) 'Defaulting to LUT min: ',WVAA(NWVAA0+1,1) + IRTWVSELECT(1,W)=NWVAA0+1 + IRTWVSELECT(2,W)=NWVAA0+1 + NRTWVREQUIRED=NRTWVREQUIRED-1 + IRTWVREQUIRED(NRTWVREQUIRED)=IRTWVSELECT(1,W) + ENDIF + + !now calcualte the angstrom exponent coefs for interpolation - + !this is done here to save time and repetition in aerosol_mod.F + IF (IRTWVSELECT(1,W).NE.IRTWVSELECT(2,W)) THEN + ACOEF_RTWV(W) = WVAA(IRTWVSELECT(2,W),1)/Input_Opt%WVSELECT(W) + BCOEF_RTWV(W) =1.0d0/(LOG(WVAA(IRTWVSELECT(2,W),1)/ & + WVAA(IRTWVSELECT(1,W),1))) + !relative location of selected wavelength between tie points + !for interpolating SSA and ASYM for output in aerosol_mod.F and + !dust_mod.F + CCOEF_RTWV(W) =(Input_Opt%WVSELECT(W)-WVAA(IRTWVSELECT(1,W),1))/ & + (WVAA(IRTWVSELECT(2,W),1)-WVAA(IRTWVSELECT(1,W),1)) + ENDIF + !convert wavelength index to that required by rrtmg_rad_transfer + !i.e. without the standard and LW wavelengths + IRTWVSELECT(1,W) = IRTWVSELECT(1,W) - NWVAA0 - NBNDLW + IRTWVSELECT(2,W) = IRTWVSELECT(2,W) - NWVAA0 - NBNDLW + IF ( Input_Opt%amIRoot ) THEN + write(6,*) 'N RT WAVELENGTHS: ',Input_Opt%NWVSELECT + write(6,*) 'RT WAVELENGTH REQUESTED:',Input_Opt%WVSELECT(W) + write(6,*) 'RT WAVELENGTH REQUIRED:', NRTWVREQUIRED + write(6,*) IRTWVSELECT(1,W),WVAA(IRTWVSELECT(1,W)+NWVAA0+NBNDLW,1) + write(6,*) IRTWVSELECT(2,W),WVAA(IRTWVSELECT(2,W)+NWVAA0+NBNDLW,1) + write(6,*) ACOEF_WV(W),BCOEF_WV(W),CCOEF_WV(W) + write(6,*) '*********************************' + ENDIF + ENDDO !Input_Opt%NWVSELECT +#endif + + ! Copy values back into State_Chm + State_Chm%Phot%NWVREQUIRED = NWVREQUIRED + State_Chm%Phot%NRTWVREQUIRED = NRTWVREQUIRED + + ! Free pointers + IWVREQUIRED => NULL() + IRTWVREQUIRED => NULL() + IWVSELECT => NULL() + IRTWVSELECT => NULL() + ACOEF_WV => NULL() + BCOEF_WV => NULL() + CCOEF_WV => NULL() + ACOEF_RTWV => NULL() + BCOEF_RTWV => NULL() + CCOEF_RTWV => NULL() + WVAA => NULL() + + END SUBROUTINE CALC_AOD +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: set_aer +! +! !DESCRIPTION: Subroutine SET\_AER fills out the array MIEDX. +! Each entry connects a GEOS-Chem aerosol to its Fast-JX counterpart: +! MIEDX(Fast-JX index) = (GC index) +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE SET_AER( Input_Opt, State_Chm, RC ) +! +! !USES: +! +#ifdef FASTJX + USE CMN_FJX_Mod, ONLY : AN_, NAA, TITLAA +#else + USE Cldj_Cmn_Mod, ONLY : AN_, NAA, TITLAA +#endif + USE CMN_SIZE_Mod, ONLY : NRHAER, NRH + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options +! +! !INPUT/OUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REVISION HISTORY: +! 31 Mar 2013 - S. D. Eastham - Adapted from J. Mao FJX v6.2 implementation +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + INTEGER :: I, J, K + INTEGER :: IND(NRHAER) + INTEGER, POINTER :: MIEDX(:) + + !================================================================= + ! SER_AER begins here! + !================================================================= + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at Set_Aer (in module GeosCore/photolysis_mod.F90)' + + + ! Set pointer + MIEDX => State_Chm%Phot%MIEDX + + ! Taken from aerosol_mod.F + IND = (/22,29,36,43,50/) + + DO I=1,AN_ + MIEDX(I) = 0 + ENDDO + + ! Select Aerosol/Cloud types to be used - define types here + ! Each of these types must be listed in the order used by OPMIE.F + + ! Clouds + MIEDX(1) = 3 ! Black carbon absorber + MIEDX(2) = 10 ! Water Cloud (Deirmenjian 8 micron) + MIEDX(3) = 14 ! Irregular Ice Cloud (Mishchenko) + + ! Dust + MIEDX(4) = 15 ! Mineral Dust .15 micron (rvm, 9/30/00) + MIEDX(5) = 16 ! Mineral Dust .25 micron (rvm, 9/30/00) + MIEDX(6) = 17 ! Mineral Dust .4 micron (rvm, 9/30/00) + MIEDX(7) = 18 ! Mineral Dust .8 micron (rvm, 9/30/00) + MIEDX(8) = 19 ! Mineral Dust 1.5 micron (rvm, 9/30/00) + MIEDX(9) = 20 ! Mineral Dust 2.5 micron (rvm, 9/30/00) + MIEDX(10) = 21 ! Mineral Dust 4.0 micron (rvm, 9/30/00) + + ! Aerosols + DO I=1,NRHAER + DO J=1,NRH + MIEDX(10+((I-1)*NRH)+J)=IND(I)+J-1 + ENDDO + ENDDO + + ! Stratospheric aerosols - SSA/STS and solid PSCs +#ifdef FASTJX + MIEDX(10+(NRHAER*NRH)+1) = 4 ! SSA/LBS/STS +#else + MIEDX(10+(NRHAER*NRH)+1) = 1 ! SSA/LBS/STS +#endif + MIEDX(10+(NRHAER*NRH)+2) = 14 ! NAT/ice PSCs + + ! Ensure all 'AN_' types are valid selections + do i=1,AN_ + IF (Input_Opt%amIRoot) write(6,1000) MIEDX(i),TITLAA(MIEDX(i)) + if (MIEDX(i).gt.NAA.or.MIEDX(i).le.0) then + if (Input_Opt%amIRoot) then + write(6,1200) MIEDX(i),NAA + endif + ErrMsg = 'Bad MIEDX value in "Set_AER"!' + call GC_Error( ErrMsg, RC, ThisLoc ) + return + endif + enddo + + ! Free pointer + MIEDX => NULL() + +1000 format('Using Aerosol type: ',i3,1x,a) +1200 format('Aerosol type ',i3,' unsuitable; supplied values must be ', & + 'between 1 and ',i3) + + END SUBROUTINE SET_AER +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: rd_prof_nc +! +! !DESCRIPTION: Subroutine RD\_PROF\_NC reads in the reference climatology +! from a NetCDF file rather than an ASCII .dat. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE RD_PROF_NC( Input_Opt, State_Chm, RC ) +! +! !USES: +! + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState + +#if defined( MODEL_CESM ) + USE CAM_PIO_UTILS, ONLY : CAM_PIO_OPENFILE + USE IOFILEMOD, ONLY : GETFIL + USE PIO, ONLY : PIO_CLOSEFILE + USE PIO, ONLY : PIO_INQ_DIMID + USE PIO, ONLY : PIO_INQ_DIMLEN + USE PIO, ONLY : PIO_INQ_VARID + USE PIO, ONLY : PIO_GET_VAR + USE PIO, ONLY : PIO_NOERR + USE PIO, ONLY : PIO_NOWRITE + USE PIO, ONLY : FILE_DESC_T +#else + USE m_netcdf_io_open + USE m_netcdf_io_read + USE m_netcdf_io_readattr + USE m_netcdf_io_close +#endif +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REMARKS: +! This file was automatically generated by the Perl scripts in the +! NcdfUtilities package (which ships w/ GEOS-Chem) and was subsequently +! hand-edited. +! +! !REVISION HISTORY: +! 19 Apr 2012 - R. Yantosca - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + ! Scalars + LOGICAL :: FileExists ! Does input file exist? + INTEGER :: fId ! netCDF file ID + + ! Strings + CHARACTER(LEN=255) :: nc_dir ! netCDF directory name + CHARACTER(LEN=255) :: nc_file ! netCDF file name + CHARACTER(LEN=255) :: nc_path ! netCDF path name + CHARACTER(LEN=255) :: v_name ! netCDF variable name + CHARACTER(LEN=255) :: a_name ! netCDF attribute name + CHARACTER(LEN=255) :: a_val ! netCDF attribute value + CHARACTER(LEN=255) :: FileMsg + CHARACTER(LEN=255) :: ErrMsg + CHARACTER(LEN=255) :: ThisLoc + + ! Arrays + INTEGER :: st3d(3), ct3d(3) ! For 3D arrays + +#if defined( MODEL_CESM ) + type(FILE_DESC_T) :: ncid + INTEGER :: vId, iret +#endif + + ! Pointers + REAL(fp), POINTER :: OREF(:,:,:) + REAL(fp), POINTER :: TREF(:,:,:) + + !================================================================= + ! RD_PROF_NC begins here! + !================================================================= + + ! Initialize + ! Assume success + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at RD_PROF_NC (in module GeosCore/photolysis_mod.F90)' + + ! Set pointers + OREF => State_Chm%Phot%OREF + TREF => State_Chm%Phot%TREF + + ! Directory and file names + nc_dir = TRIM( Input_Opt%CHEM_INPUTS_DIR ) // '/' // 'FastJ_201204' // '/' + nc_file = 'fastj.jv_atms_dat.nc' + nc_path = TRIM( nc_dir ) // TRIM( nc_file ) + + !================================================================= + ! In dry-run mode, print file path to dryrun log and exit. + ! Otherwise, print file path to stdout and continue. + !================================================================= + + ! Test if the file exists + INQUIRE( FILE=TRIM( nc_path ), EXIST=FileExists ) + + ! Test if the file exists and define an output string + IF ( FileExists ) THEN + FileMsg = 'PHOTOLYSIS (RD_PROF_NC): Opening' + ELSE + FileMsg = 'PHOTOLYSIS (RD_PROF_NC): REQUIRED FILE NOT FOUND' + ENDIF + + ! Write to stdout for both regular and dry-run simulations + IF ( Input_Opt%amIRoot ) THEN + WRITE( 6, 300 ) TRIM( FileMsg ), TRIM( nc_path ) +300 FORMAT( a, ' ', a ) + ENDIF + + ! For dry-run simulations, return to calling program. + ! For regular simulations, throw an error if we can't find the file. + IF ( Input_Opt%DryRun ) THEN + RETURN + ELSE + IF ( .not. FileExists ) THEN + WRITE( ErrMsg, 300 ) TRIM( FileMsg ), TRIM( nc_path ) + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + ENDIF + + !========================================================================= + ! Open and read data from the netCDF file + !========================================================================= + + ! Open netCDF file +#if defined( MODEL_CESM ) + CALL CAM_PIO_OPENFILE( ncid, TRIM(nc_path), PIO_NOWRITE ) +#else + CALL Ncop_Rd( fId, TRIM(nc_path) ) +#endif + + ! Echo info to stdout + IF ( Input_Opt%amIRoot ) THEN + WRITE( 6, 100 ) REPEAT( '%', 79 ) + WRITE( 6, 110 ) TRIM(nc_file) + WRITE( 6, 120 ) TRIM(nc_dir) + ENDIF + + !---------------------------------------- + ! VARIABLE: T + !---------------------------------------- + + ! Variable name + v_name = "T" + + ! Read T from file + st3d = (/ 1, 1, 1 /) + ct3d = (/ 51, 18, 12 /) +#if defined( MODEL_CESM ) + iret = PIO_INQ_VARID( ncid, trim(v_name), vid ) + iret = PIO_GET_VAR( ncid, vid, TREF ) +#else + CALL NcRd( TREF, fId, TRIM(v_name), st3d, ct3d ) + + ! Read the T:units attribute + a_name = "units" + CALL NcGet_Var_Attributes( fId,TRIM(v_name),TRIM(a_name),a_val ) + + ! Echo info to stdout + IF ( Input_Opt%amIRoot ) THEN + WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) + ENDIF +#endif + + !---------------------------------------- + ! VARIABLE: O3 + !---------------------------------------- + + ! Variable name + v_name = "O3" + + ! Read O3 from file + st3d = (/ 1, 1, 1 /) + ct3d = (/ 51, 18, 12 /) +#if defined( MODEL_CESM ) + iret = PIO_INQ_VARID( ncid, trim(v_name), vid ) + iret = PIO_GET_VAR( ncid, vid, OREF ) +#else + CALL NcRd( OREF, fId, TRIM(v_name), st3d, ct3d ) + + ! Read the O3:units attribute + a_name = "units" + CALL NcGet_Var_Attributes( fId,TRIM(v_name),TRIM(a_name),a_val ) + + ! Echo info to stdout + IF ( Input_Opt%amIRoot ) THEN + WRITE( 6, 130 ) TRIM(v_name), TRIM(a_val) + ENDIF +#endif + + !================================================================= + ! Cleanup and quit + !================================================================= + + ! Close netCDF file +#if defined( MODEL_CESM ) + CALL PIO_CLOSEFILE( ncid ) +#else + CALL NcCl( fId ) +#endif + + ! Echo info to stdout + IF ( Input_Opt%amIRoot ) THEN + WRITE( 6, 140 ) + WRITE( 6, 100 ) REPEAT( '%', 79 ) + ENDIF + + ! Free pointers + OREF => NULL() + TREF => NULL() + + ! FORMAT statements +100 FORMAT( a ) +110 FORMAT( '%% Opening file : ', a ) +120 FORMAT( '%% in directory : ', a, / , '%%' ) +130 FORMAT( '%% Successfully read ', a, ' [', a, ']' ) +140 FORMAT( '%% Successfully closed file!' ) + + END SUBROUTINE RD_PROF_NC +!EOC + +END MODULE PHOTOLYSIS_MOD diff --git a/GeosCore/planeflight_mod.F90 b/GeosCore/planeflight_mod.F90 index 8211d3e72..06d0f535a 100644 --- a/GeosCore/planeflight_mod.F90 +++ b/GeosCore/planeflight_mod.F90 @@ -370,7 +370,6 @@ SUBROUTINE READ_VARIABLES( Input_Opt, State_Chm, IU_FILE, RC ) USE ErrCode_Mod USE ERROR_MOD, ONLY : GEOS_CHEM_STOP USE FILE_MOD, ONLY : IOERROR - USE CMN_FJX_MOD USE Input_Opt_Mod, ONLY : OptInput USE Species_Mod, ONLY : Species USE State_Chm_Mod, ONLY : ChmState @@ -581,7 +580,7 @@ SUBROUTINE READ_VARIABLES( Input_Opt, State_Chm, IU_FILE, RC ) IF ( LINE == 'HG2_FRACP' ) PVAR(N) = 4002 !=========================================================== - ! ISORROPIA H+, pH, water, and bisulfate (eam, 06/2015) + ! ISORROPIA/HETP H+, pH, water, and bisulfate (eam, 06/2015) !=========================================================== CASE( 'ISOR' ) @@ -784,10 +783,10 @@ SUBROUTINE READ_VARIABLES( Input_Opt, State_Chm, IU_FILE, RC ) P = -999 ! GEOS-Chem photolyis species ID ! Loop the reaciton branches and find the correct "P" index - DO IK = 1, JVN_ + DO IK = 1, State_Chm%Phot%nMaxPhotRxns ! GC photolysis species index - P = GC_Photo_Id(NUM) + P = State_Chm%Phot%GC_Photo_Id(NUM) ! If this FAST_JX photolysis species maps to a valid ! GEOS-Chem photolysis species (for this simulation)... @@ -1503,8 +1502,6 @@ SUBROUTINE PLANEFLIGHT( Input_Opt, State_Chm, State_Diag, & ! ! !USES: ! - USE CMN_FJX_MOD, ONLY : ODAER, QAA, QAA_AOD, ODMDUST - USE CMN_FJX_MOD, ONLY : IWVSELECT, ACOEF_WV, BCOEF_WV USE CMN_SIZE_MOD, ONLY : NDUST, NAER USE ErrCode_Mod USE ERROR_MOD, ONLY : GEOS_CHEM_STOP @@ -1520,11 +1517,6 @@ SUBROUTINE PLANEFLIGHT( Input_Opt, State_Chm, State_Diag, & USE State_Met_Mod, ONLY : MetState USE TIME_MOD USE UnitConv_Mod, ONLY : Convert_Spc_Units -#ifdef TOMAS -#ifdef BPCH_DIAG - USE DIAG_MOD, ONLY : AD61_INST ! (win, 7/28/09) -#endif -#endif ! ! !INPUT PARAMETERS: ! @@ -1582,7 +1574,13 @@ SUBROUTINE PLANEFLIGHT( Input_Opt, State_Chm, State_Diag, & INTEGER :: YEAR, MONTH, DAY, HOUR, MINUTE ! Pointers - TYPE(SpcConc), POINTER :: Spc(:) + TYPE(SpcConc), POINTER :: Spc (:) + INTEGER, POINTER :: IWVSELECT(:,:) + REAL*8, POINTER :: ACOEF_WV (:) + REAL*8, POINTER :: BCOEF_WV (:) + REAL(fp), POINTER :: ODAER (:,:,:,:,:) + REAL(fp), POINTER :: ODMDUST (:,:,:,:,:) + ! ! !DEFINED PARAMETERS: ! @@ -1607,6 +1605,13 @@ SUBROUTINE PLANEFLIGHT( Input_Opt, State_Chm, State_Diag, & ! Return if there is no flighttrack data for today IF ( .not. DO_PF ) RETURN + ! Initialize pointers + IWVSELECT => State_Chm%Phot%IWVSELECT ! Indexes of requested WLs + ACOEF_WV => State_Chm%Phot%ACOEF_WV ! Coeffs for WL interpolation + BCOEF_WV => State_Chm%Phot%BCOEF_WV ! Coeffs for WL interpolation + ODAER => State_Chm%Phot%ODAER ! Aerosol optical depth + ODMDUST => State_Chm%Phot%ODMDUST ! Dust optical depth + ! Update from kyu (03/2015): CHEMSTEP = ( MOD(GET_ELAPSED_SEC(), GET_TS_DIAG() ) == ( GET_TS_DIAG() / 2)) @@ -2160,7 +2165,7 @@ SUBROUTINE PLANEFLIGHT( Input_Opt, State_Chm, State_Diag, & VARI(V) = OMMFP(I,J,LL) !L+1 sample 4/24/12 !--------------------------------------------------------------- - ! ISORROPIA H+ and pH (eam, 06/2015) + ! ISORROPIA/HETP H+ and pH (eam, 06/2015) !--------------------------------------------------------------- CASE( 5001 ) VARI(V) = State_Chm%IsorropHplus(I,J,L,1) @@ -2276,26 +2281,6 @@ SUBROUTINE PLANEFLIGHT( Input_Opt, State_Chm, State_Diag, & IF ( VARI(V) < TINY ) VARI(V) = 0.0_fp -#ifdef TOMAS -#ifdef BPCH_DIAG - !--------------------------------------------------------------- - ! TOMAS microphysics rate [kg/s] or [no./cm3/s] - !--------------------------------------------------------------- - CASE( 200000:299999 ) - - ! Remove offset from PVAR - N = PVAR(V) - 200000 - - ! Archive the microphysics rate - VARI(V) = AD61_INST(I,J,L,N) - - IF ( Input_Opt%amIRoot ) THEN - write (6,*) 'ARCHIVE TO PLANEFLIGHT DIAG', & - 'AD61_INST at',I,J,L,N,'=',AD61_INST(I,J,L,N) - ENDIF -#endif -#endif - !--------------------------------------------------------------- ! Otherwise it's an error! !--------------------------------------------------------------- @@ -2324,6 +2309,13 @@ SUBROUTINE PLANEFLIGHT( Input_Opt, State_Chm, State_Diag, & ENDIF ENDDO + ! Free pointers + IWVSELECT => NULL() + ACOEF_WV => NULL() + BCOEF_WV => NULL() + ODAER => NULL() + ODMDUST => NULL() + END SUBROUTINE PLANEFLIGHT !EOC !------------------------------------------------------------------------------ diff --git a/GeosCore/pops_mod.F90 b/GeosCore/pops_mod.F90 index fc0825bdd..10bd0d3d9 100644 --- a/GeosCore/pops_mod.F90 +++ b/GeosCore/pops_mod.F90 @@ -140,9 +140,6 @@ SUBROUTINE CHEMPOPS( Input_Opt, State_Chm, State_Diag, & ! ! !LOCAL VARIABLES: ! - ! Scalars - LOGICAL :: prtDebug - ! SAVEd scalars LOGICAL, SAVE :: FIRST = .TRUE. @@ -159,7 +156,6 @@ SUBROUTINE CHEMPOPS( Input_Opt, State_Chm, State_Diag, & ! Initialize RC = GC_SUCCESS - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ErrMsg = '' ThisLoc = ' -> at ChemPops (in module GeosCore/pops_mod.F90)' @@ -230,12 +226,12 @@ SUBROUTINE CHEMPOPS( Input_Opt, State_Chm, State_Diag, & ! Compute diurnal scaling for OH CALL OHNO3TIME( State_Grid ) - IF ( prtDebug ) CALL DEBUG_MSG( 'CHEMPOPS: a OHNO3TIME' ) + IF ( Input_Opt%Verbose ) CALL DEBUG_MSG( 'CHEMPOPS: a OHNO3TIME' ) !------------------------- ! GAS AND PARTICLE PHASE chemistry !------------------------- - IF ( prtDebug ) CALL DEBUG_MSG( 'CHEMPOPS: b CHEM_GASPART' ) + IF ( Input_Opt%Verbose ) CALL DEBUG_MSG( 'CHEMPOPS: b CHEM_GASPART' ) ! Add option for non-local PBL (cdh, 08/27/09) IF ( Input_Opt%LNLPBL ) THEN @@ -398,8 +394,10 @@ SUBROUTINE CHEMPOPS( Input_Opt, State_Chm, State_Diag, & ENDIF - IF ( prtDebug ) CALL DEBUG_MSG( 'CHEMPOPS: a CHEM_GASPART' ) - + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( 'CHEMPOPS: a CHEM_GASPART' ) + ENDIF + ! Nullify pointers NULLIFY( DepFreq ) diff --git a/GeosCore/rrtmg_rad_transfer_mod.F90 b/GeosCore/rrtmg_rad_transfer_mod.F90 index 73a633ebd..c419cf2bf 100644 --- a/GeosCore/rrtmg_rad_transfer_mod.F90 +++ b/GeosCore/rrtmg_rad_transfer_mod.F90 @@ -16,7 +16,6 @@ MODULE RRTMG_RAD_TRANSFER_MOD ! ! !USES: ! - USE CMN_FJX_MOD, ONLY : RTODAER, RTSSAER, RTASYMAER, WVAA, SPECMASK USE CMN_SIZE_MOD, ONLY : NDUST, NAER #if defined( MODEL_CLASSIC ) USE OMP_LIB @@ -126,7 +125,8 @@ MODULE RRTMG_RAD_TRANSFER_MOD SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & iSpecMenu, iNcDiag, iSeed, & Input_Opt, State_Chm, State_Diag, & - State_Grid, State_Met, RC ) + State_Grid, State_Met, DT_3D, & + HR_3D, RC ) ! ! !USES: ! @@ -145,17 +145,11 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & !----------------------------------------------------------------- ! GEOS-Chem modules !----------------------------------------------------------------- - USE CMN_FJX_MOD, ONLY : NSPECRAD ! NUMBER OF SPECIES FOR RT - USE CMN_FJX_MOD, ONLY : NASPECRAD ! NUMBER OF AEROSOL SPECIES - USE CMN_FJX_MOD, ONLY : SPECMASK, IRTWVSELECT - USE CMN_FJX_MOD, ONLY : ACOEF_RTWV, BCOEF_RTWV, CCOEF_RTWV - USE CMN_FJX_MOD, ONLY : WVAA, NWVAA - USE CMN_FJX_MOD, ONLY : NWVAA0 USE ErrCode_Mod USE ERROR_MOD USE Input_Opt_Mod, ONLY : OptInput USE PhysConstants, ONLY : AIRMW, PI, AVO - USE PRESSURE_MOD, ONLY : GET_PCENTER, GET_PEDGE + USE PRESSURE_MOD, ONLY : GET_PCENTER, GET_PEDGE USE Species_Mod, ONLY : SpcConc USE State_Chm_Mod, ONLY : ChmState USE State_Chm_Mod, ONLY : Ind_ @@ -163,8 +157,9 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : GET_DAY_OF_YEAR, GET_HOUR + USE Timers_Mod, ONLY : Timer_End, Timer_Start USE TOMS_MOD, ONLY : GET_OVERHEAD_O3 - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -184,6 +179,9 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object INTEGER, INTENT(INOUT) :: iCld ! CLOUD FLAG FOR RRTMG ! 0-NOCLOUD, 1-GREY CLOUD + ! Used only for fixed dynamical heating work + REAL(RB), ALLOCATABLE, INTENT(INOUT) :: DT_3D(:,:,:) ! Layer temperature adjustment (K) + REAL(RB), ALLOCATABLE, INTENT(INOUT) :: HR_3D(:,:,:) ! Heating rate (K/day) ! ! !OUTPUT PARAMETERS: ! @@ -211,13 +209,13 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & LOGICAL :: LOUTPUTAERO ! OUTPUT AEROSOL DIAGNOSTICS? INTEGER :: ITIMEVALS(8) INTEGER :: IDIAGOUT ! INDEX OF SPC OPTICS FOR OUTPUT + INTEGER :: previous_units REAL*8 :: OLDSECS, NEWSECS - CHARACTER(LEN=63) :: OrigUnit ! SAVEd scalars LOGICAL, SAVE :: FIRST = .TRUE. INTEGER, SAVE :: id_O3, id_CH4, id_N2O, id_CFC11 - INTEGER, SAVE :: id_CFC12, id_CCL4, id_HCFC22 + INTEGER, SAVE :: id_CFC12, id_CCL4, id_HCFC22, id_H2O !----------------------------------------------------------------- ! TEMPORARY AEROSOL VARIABLES @@ -232,7 +230,7 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & INTEGER :: OUTIDX,IOUTWV INTEGER :: IB,IBX,IB_SW,IS,NBNDS,NSPEC INTEGER :: IS_ON,NASPECRAD_ON - INTEGER :: IASPECRAD_ON(NASPECRAD) + INTEGER :: IASPECRAD_ON(State_Chm%Phot%NASPECRAD) INTEGER :: BaseIndex REAL*8 :: RHOICE=0.9167, RHOLIQ=1. ! G/CM3 @@ -292,6 +290,7 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & REAL(KIND=RB) :: H2OVMR (State_Grid%NX,State_Grid%NY,State_Grid%NZ) REAL(KIND=RB) :: TLAY (State_Grid%NX,State_Grid%NY,State_Grid%NZ) + REAL(KIND=RB) :: TLAY_SW (State_Grid%NX,State_Grid%NY,State_Grid%NZ) REAL(KIND=RB) :: PLAY (State_Grid%NX,State_Grid%NY,State_Grid%NZ) REAL(KIND=RB) :: SUNCOS (State_Grid%NX,State_Grid%NY,State_Grid%NZ) REAL(KIND=RB) :: TSFC (State_Grid%NX,State_Grid%NY) @@ -330,6 +329,7 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & !----------------------------------------------------------------- REAL (KIND=RB) :: PLEV(State_Grid%NX,State_Grid%NY,State_Grid%NZ+1) REAL (KIND=RB) :: TLEV(State_Grid%NX,State_Grid%NY,State_Grid%NZ+1) + REAL (KIND=RB) :: TLEV_SW(State_Grid%NX,State_Grid%NY,State_Grid%NZ+1) REAL (KIND=RB) :: CO2VMR(State_Grid%NX,State_Grid%NY,State_Grid%NZ) REAL (KIND=RB) :: O2VMR(State_Grid%NX,State_Grid%NY,State_Grid%NZ) REAL (KIND=RB) :: T_CTM(State_Grid%NZ+1) @@ -451,7 +451,9 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ! For RRTMG_LW and RRTMG_SW REAL(KIND=RB) :: p_PLEV ( State_Grid%NZ+1) REAL(KIND=RB) :: p_TLAY ( State_Grid%NZ ) + REAL(KIND=RB) :: p_TLAY_SW ( State_Grid%NZ ) REAL(KIND=RB) :: p_TLEV ( State_Grid%NZ+1) + REAL(KIND=RB) :: p_TLEV_SW ( State_Grid%NZ+1) REAL(KIND=RB) :: p_H2OVMR ( State_Grid%NZ ) REAL(KIND=RB) :: p_O3VMR ( State_Grid%NZ ) REAL(KIND=RB) :: p_CO2VMR ( State_Grid%NZ ) @@ -482,11 +484,65 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & REAL(KIND=RB) :: p_SSAAER ( State_Grid%NZ, NBNDSW ) REAL(KIND=RB) :: p_ASMAER ( State_Grid%NZ, NBNDSW ) + ! Stratospheric adjustment + REAL(KIND=RB) :: DT_Col(State_Grid%NZ) ! Temperature difference, column (K) + REAL(KIND=RB) :: HRStrat(State_Grid%NZ)! Strat. dyn. heating rate, column (K/day) + REAL(KIND=RB) :: HRDyn(State_Grid%NZ) ! Dynamical heating rate, column (K/day) + LOGICAL :: Do_Adjust(State_Grid%NZ)! Do we perform adjustment here? + LOGICAL :: StratImbal ! Is the net heating rate >> 0? + LOGICAL :: Calc_DeltaT ! Are we calculating the T difference? + LOGICAL :: Store_DHR ! Are we estimating the dynamical heating rate? + REAL(KIND=RB), PARAMETER :: HRMax = 1.0d-3 ! Maximum residual heating rate (K/day) + REAL(KIND=RB), PARAMETER :: TSadj_max = 0.5d0 ! Outer time step used in strat adjustment (days) + REAL(KIND=RB), PARAMETER :: TSadj_min = 0.5d-1 ! Minimum time step that we can adjust to (days) + REAL(KIND=RB) :: TSadj ! + REAL(KIND=RB) :: TSadj_adapt ! + REAL(KIND=RB) :: last_max, curr_max ! Track the current maximum heating rate imbalance + REAL(KIND=RB) :: last_max_stored ! For debug only + Integer :: i_max ! + REAL(KIND=RB), PARAMETER :: dtadj_max = 150d0 ! Time allowable to reach equilbrium (days) + REAL(KIND=RB) :: dtadj ! Total time to reach equilibrium (days) + Integer :: i_iter ! Iteration number + Integer :: N_Failed ! Number of columns failing to converge + Integer :: N_Column ! Total number of columns (NX * NY) + + ! For SEFDH calculations + Real(kind=RB) :: Relax_Factor + Real(kind=RB) :: DT_Days + Real(kind=RB), Parameter :: Relax_Time = 1.0d0 ! E-folding time in days + + ! For RK4 integrations + INTEGER, PARAMETER :: N_PC = 4 + INTEGER :: I_PC + REAL(KIND=RB) :: p_TLAY_0(State_Grid%NZ) + ! Data from predictor step(s) + REAL(KIND=RB) :: HR_P(4,State_Grid%NZ) + REAL(KIND=RB) :: p_TLAY_P(State_Grid%NZ) + REAL(KIND=RB) :: UFLX_P(1,State_Grid%NZ+1) + REAL(KIND=RB) :: DFLX_P(1,State_Grid%NZ+1) + REAL(KIND=RB) :: UFLXC_P(1,State_Grid%NZ+1) + REAL(KIND=RB) :: DFLXC_P(1,State_Grid%NZ+1) + + ! For RF at tropopause + Integer :: iTrop + + ! To simplify ozone RF calculation + Logical :: in_Trop + ! Strings CHARACTER(LEN=255) :: ErrMsg, ThisLoc ! Pointers - TYPE(SpcConc), POINTER :: Spc(:) + TYPE(SpcConc), POINTER :: Spc (:) + INTEGER, POINTER :: SPECMASK (:) + INTEGER, POINTER :: IRTWVSELECT(:,:) + REAL*8, POINTER :: ACOEF_RTWV (:) + REAL*8, POINTER :: BCOEF_RTWV (:) + REAL*8, POINTER :: CCOEF_RTWV (:) + REAL*8, POINTER :: WVAA (:,:) + REAL*8, POINTER :: RTODAER (:,:,:,:,:) + REAL*8, POINTER :: RTSSAER (:,:,:,:,:) + REAL*8, POINTER :: RTASYMAER (:,:,:,:,:) !================================================================= ! DO_RRTMG_RAD_TRANSFER begins here! @@ -497,9 +553,33 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ErrMsg = '' ThisLoc = ' -> at DO_RRTMG_RAD_TRANSFER (in rrtmg_rad_transfer_mod.F90)' - ! Convert species units to kg/kg dry for RRTMG - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg/kg dry', RC, OrigUnit=OrigUnit ) + ! Set pointers + Spc => State_Chm%Species + SPECMASK => State_Chm%Phot%SPECMASK + IRTWVSELECT => State_Chm%Phot%IRTWVSELECT + ACOEF_RTWV => State_Chm%Phot%ACOEF_RTWV + BCOEF_RTWV => State_Chm%Phot%BCOEF_RTWV + CCOEF_RTWV => State_Chm%Phot%CCOEF_RTWV + WVAA => State_Chm%Phot%WVAA + RTODAER => State_Chm%Phot%RTODAER + RTSSAER => State_Chm%Phot%RTSSAER + RTASYMAER => State_Chm%Phot%RTASYMAER + + ! Halt RRTMG timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "RRTMG", RC ) + ENDIF + + ! Convert species units to [kg/kg dry] for RRTMG + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = KG_SPECIES_PER_KG_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -508,6 +588,11 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & RETURN ENDIF + ! Start RRTMG timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "RRTMG", RC ) + ENDIF + ! Also make sure that the ncDiag arguement is valid, ! as this is the index for the netCDF diagnostic arrays. IF ( iNcDiag <= 0 ) THEN @@ -532,6 +617,21 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & FLG_FIRST_STRAT(:,:) = 0 !FLAG TO DETERMINE IF THE FIRST STRATOSPHERIC ! LEVEL HAS BEEN REACHED + ! Are we calculating delta-T? + Calc_DeltaT = (Input_Opt%Read_Dyn_Heating .and. (ISPECMENU.eq.0) .and. Input_Opt%RRTMG_FDH) + ! Are we storing the dynamical heating rate? + Store_DHR = ((.not. Input_Opt%Read_Dyn_Heating) .and. (ISPECMENU.eq.0) .and. Input_Opt%RRTMG_FDH) + + ! Factor to relax non-stratospheric temperatures by + If (Input_Opt%RRTMG_SEFDH) Then + ! Time step length in days + DT_Days = (Input_Opt%ts_rad * 1.0e+0_RB) / (3600.0e+0_RB * 24.0e+0_RB) + ! One day e-folding time + Relax_Factor = exp(-1.0 * DT_Days / relax_time) + Else + Relax_Factor = 0.0 + End If + !DETERMINE IF WE ARE RUNNING WITH AEROSOL !CREATE INDEX FOR AEROSOLS REQUIRED LOUTPUTAERO = .TRUE. !SET AEROSOL DIAG OUTPUT TO TRUE INITIALLY @@ -539,7 +639,7 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & NASPECRAD_ON = 0 IASPECRAD_ON(:) = 0 - DO N=1,NASPECRAD + DO N=1,State_Chm%Phot%NASPECRAD IF (SPECMASK(N).GT.0) THEN DOAERAD = .TRUE. NASPECRAD_ON = NASPECRAD_ON +1 @@ -580,6 +680,13 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & SWHRC(:,:) = 0.0 O3VMR(:,:,:) = 0.0 CH4VMR(:,:,:) = 0.0 + H2OVMR(:,:,:) = 0.0 + CO2VMR(:,:,:) = 0.0 + N2OVMR(:,:,:) = 0.0 + CFC11VMR(:,:,:) = 0.0 + CFC12VMR(:,:,:) = 0.0 + CCL4VMR(:,:,:) = 0.0 + CFC22VMR(:,:,:) = 0.0 NBNDS = NBNDLW+NBNDSW !================================================================= @@ -590,6 +697,7 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ! Define species ID flags id_O3 = Ind_('O3') id_CH4 = Ind_('CH4') + id_H2O = Ind_('H2O') id_N2O = Ind_('N2O') id_CFC11 = Ind_('CFC11') id_CFC12 = Ind_('CFC12') @@ -612,9 +720,6 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ENDIF - ! Set pointer to species vector containing concentrations - Spc => State_Chm%Species - !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & !$OMP PRIVATE( I, J, IB ) & @@ -670,13 +775,14 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ENDDO !$OMP END PARALLEL DO - !GET PCENTER, PEDGE AND DETERMINE IF IN TROP !%%% NOTE: LOOPS ARE GOING IN WRONG ORDER (bmy, 1/8/18) DO I = 1, State_Grid%NX DO J = 1, State_Grid%NY DO L = 1, State_Grid%NZ PCENTER(I,J,L) = GET_PCENTER( I, J, L ) PEDGE (I,J,L) = GET_PEDGE ( I, J, L ) + ! H2O will be overwritten later except above the + ! chemistry grid H2OVMR (I,J,L) = State_Met%AVGW(I,J,L) TLAY (I,J,L) = State_Met%T(I,J,L) SUNCOS (I,J,L) = State_Met%SUNCOS(I,J) @@ -685,9 +791,30 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ENDDO ENDDO + ! Incorporate temperature adjustment if not the baseline + ! call and we are using fixed dynamical heating + ! In either case, shortwave calculation is unaffected + If (.not. Input_Opt%RRTMG_SEFDH) Then + TLAY_SW(:,:,:) = TLAY(:,:,:) + End If + ! If pure FDH, DT_3D will be zero on the baseline call + ! and non-zero for the single-species calls. If this is + ! SEFDH, DT_3D will evolve consistently and be either + ! modified by this routine (baseline call) or unchanged + ! (single-species call); however, for single-species + ! calls, the DT_3D will match that which was PROVIDED to + ! the baseline call. + If (Input_Opt%RRTMG_FDH) Then + TLAY(:,:,:) = TLAY(:,:,:) + DT_3D(:,:,:) + End If + ! If using SEFDH, adjust temperatures for all (why not) + If (Input_Opt%RRTMG_SEFDH) Then + TLAY_SW(:,:,:) = TLAY(:,:,:) + End If + !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L ) & + !$OMP PRIVATE( I, J, L, IN_TROP ) & !$OMP PRIVATE( AIR_TMP, YLAT, O3COL, O3_CTM, T_CTM ) & !$OMP PRIVATE( P_CTM, T_CLIM, Z_CLIM, O3_CLIM, AIR_CLIM ) & !$OMP SCHEDULE( DYNAMIC ) @@ -751,74 +878,53 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & CLDFR(I,J,L) = State_Met%CLDF(I,J,L) ENDIF !CLOUDS - IF ( State_Met%InTroposphere(I,J,L) ) THEN - !----------------------------- - ! WE ARE IN THE TROPOSPHERE - !----------------------------- - - ! SET O3, CH4, N2O AND CFC PROFILES - ! G-C CHEMISTRY IS ONLY DONE IN THE TROP - ! THEREFORE State_Chm%Species WILL ONLY BE DEFINED IN THE TROP + ! SET O3, CH4, N2O AND CFC PROFILES - !IF O3 REQUESTED THEN SPECMASK WILL BE SET TO ZERO - !SO THAT O3 WILL BE REMOVED RELATIVE TO THE BASELINE CASE - !(WHEN SPECMASK DEFAULTS TO 1) - !I.E. WE WANT TO RUN WITHOUT THE GAS IF IT HAS BEEN - !REQUESTED SO THAT WE CAN DIFFERENCE WITH THE BASELINE RUN + !IF O3 REQUESTED THEN SPECMASK WILL BE SET TO ZERO + !SO THAT O3 WILL BE REMOVED RELATIVE TO THE BASELINE CASE + !(WHEN SPECMASK DEFAULTS TO 1) + !I.E. WE WANT TO RUN WITHOUT THE GAS IF IT HAS BEEN + !REQUESTED SO THAT WE CAN DIFFERENCE WITH THE BASELINE RUN - IF (SPECMASK(NASPECRAD+1).EQ.1) THEN - O3VMR(I,J,L) = Spc(id_O3)%Conc(I,J,L) * AIRMW / & - State_Chm%SpcData(id_O3)%Info%MW_g + ! Treat tropospheric and stratospheric ozone seprately + In_Trop = State_Met%InTroposphere(I,J,L) + IF ( ((.not. In_Trop) .and. (SPECMASK(State_Chm%Phot%NASPECRAD+1).EQ.1) ) .or. & + ( In_Trop .and. (SPECMASK(State_Chm%Phot%NASPECRAD+2).EQ.1) ) ) Then + O3VMR(I,J,L) = Spc(id_O3)%Conc(I,J,L) * AIRMW / & + State_Chm%SpcData(id_O3)%Info%MW_g + ENDIF - ENDIF + IF (SPECMASK(State_Chm%Phot%NASPECRAD+3).EQ.1) THEN + CH4VMR(I,J,L) = Spc(id_CH4)%Conc(I,J,L) * AIRMW /& + State_Chm%SpcData(id_CH4)%Info%MW_g - IF (SPECMASK(NASPECRAD+2).EQ.1) THEN - CH4VMR(I,J,L) = Spc(id_CH4)%Conc(I,J,L) * AIRMW /& - State_Chm%SpcData(id_CH4)%Info%MW_g + ENDIF - ENDIF + IF (SPECMASK(State_Chm%Phot%NASPECRAD+4).EQ.1) THEN + H2OVMR(I,J,L) = Spc(id_H2O)%Conc(I,J,L) * AIRMW / & + State_Chm%SpcData(id_H2O)%Info%MW_g + ELSE + ! Set to zero to override the default (AVGW) + H2OVMR(I,J,L) = 0.0 + ENDIF - N2OVMR(I,J,L) = Spc(id_N2O)%Conc(I,J,L) * AIRMW / & - State_Chm%SpcData(id_N2O)%Info%MW_g + IF (SPECMASK(State_Chm%Phot%NASPECRAD+7).EQ.1) THEN + N2OVMR(I,J,L) = Spc(id_N2O)%Conc(I,J,L) * AIRMW / & + State_Chm%SpcData(id_N2O)%Info%MW_g + ENDIF - CFC11VMR(I,J,L) = Spc(id_CFC11)%Conc(I,J,L) * AIRMW/& + IF (SPECMASK(State_Chm%Phot%NASPECRAD+6).EQ.1) THEN + CFC11VMR(I,J,L) =Spc(id_CFC11)%Conc(I,J,L) * AIRMW /& State_Chm%SpcData(id_CFC11)%Info%MW_g - CFC12VMR(I,J,L) = Spc(id_CFC12)%Conc(I,J,L) * AIRMW/& + CFC12VMR(I,J,L) =Spc(id_CFC12)%Conc(I,J,L) * AIRMW / & State_Chm%SpcData(id_CFC12)%Info%MW_g - CCL4VMR(I,J,L) = Spc(id_CCL4)%Conc(I,J,L) * AIRMW /& + CCL4VMR(I,J,L) =Spc(id_CCL4)%Conc(I,J,L) * AIRMW / & State_Chm%SpcData(id_CCL4)%Info%MW_g - CFC22VMR(I,J,L) = Spc(id_HCFC22)%Conc(I,J,L) *AIRMW/& + CFC22VMR(I,J,L) =Spc(id_HCFC22)%Conc(I,J,L) * AIRMW/ & State_Chm%SpcData(id_HCFC22)%Info%MW_g - - ELSE - !----------------------------- - ! WE ARE IN THE STRATOSPHERE - !----------------------------- - - O3VMR(I,J,L) = Spc(id_O3)%Conc(I,J,L) * AIRMW / & - State_Chm%SpcData(id_O3)%Info%MW_g - - CH4VMR(I,J,L) = Spc(id_CH4)%Conc(I,J,L) * AIRMW / & - State_Chm%SpcData(id_CH4)%Info%MW_g - - N2OVMR(I,J,L) = Spc(id_N2O)%Conc(I,J,L) * AIRMW / & - State_Chm%SpcData(id_N2O)%Info%MW_g - - CFC11VMR(I,J,L) =Spc(id_CFC11)%Conc(I,J,L) * AIRMW /& - State_Chm%SpcData(id_CFC11)%Info%MW_g - - CFC12VMR(I,J,L) =Spc(id_CFC12)%Conc(I,J,L) * AIRMW / & - State_Chm%SpcData(id_CFC12)%Info%MW_g - - CCL4VMR(I,J,L) =Spc(id_CCL4)%Conc(I,J,L) * AIRMW / & - State_Chm%SpcData(id_CCL4)%Info%MW_g - - CFC22VMR(I,J,L) =Spc(id_HCFC22)%Conc(I,J,L) * AIRMW/ & - State_Chm%SpcData(id_HCFC22)%Info%MW_g - ENDIF ENDDO ENDDO @@ -829,9 +935,9 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & DO IB = 1,NBNDS !RRTMG WAVEBANDS START AFTER WVAA0 STANDARD WAVELNGTHS IN GC ARRAYS !BASED ON LUT ORDER. JUST APPLY OFFSET - IBX=IB+NWVAA0 + IBX=IB+State_Chm%Phot%NWVAA0 IB_SW = IB-NBNDLW - DO IS = 1,NASPECRAD + DO IS = 1,State_Chm%Phot%NASPECRAD !THE AEROSOL SPECIES WE ARE CURRENTLY CALCULATING FOR WILL BE !SET TO THE LSPECRADMENU VALUE FOR THAT SPECIES. !THIS MEANS THAT RRTMG REQUIRES *ALL OTHER* SPECIES SO THAT THE @@ -853,46 +959,40 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - ! We need to go above the tropopause to get - ! the strat AOD, but only for IS=8 and IS=9 - IF ( State_Met%InTroposphere(I,J,L) .OR. & - ( (IS.EQ.8) .OR. (IS.EQ.9) ) ) THEN - - !MAKE SURE WE HAVE SENSIBLE DATA - !DONT WASTE TIME IF VIRTUALLY NO AEROSOL - IF (RTODAER(I,J,L,IBX,IS).GT.1e-10) THEN - IF (IB.LE.16) THEN !LW - IF (SPECMASK(IS).EQ.1) THEN - TAUAER_LW(I,J,L,IB) = TAUAER_LW(I,J,L,IB) + & - RTODAER(I,J,L,IBX,IS) - ENDIF - ELSE !SW - !IF SPECMASK(IS)=1 THEN WE AGGREGATE THAT SPECIES FOR RRTMG - !IF SPECMASK(IS)>1 THEN WE SAVE THAT SPECIES FOR DIAG OUTPUT - IF (SPECMASK(IS).EQ.1) THEN - TAUAER_SW(I,J,L,IB_SW)=TAUAER_SW(I,J,L,IB_SW)+ & - RTODAER(I,J,L,IBX,IS) - SSAAER(I,J,L,IB_SW) = SSAAER(I,J,L,IB_SW) + & - RTSSAER(I,J,L,IBX,IS)*RTODAER(I,J,L,IBX,IS) - ASMAER(I,J,L,IB_SW) = ASMAER(I,J,L,IB_SW) + & - RTASYMAER(I,J,L,IBX,IS) * & - RTODAER(I,J,L,IBX,IS)*RTSSAER(I,J,L,IBX,IS) - ENDIF - IF (SPECMASK(IS).GT.1) THEN - TAUAERDIAG(I,J,L,IB_SW)=TAUAERDIAG(I,J,L,IB_SW)+ & - RTODAER(I,J,L,IBX,IS) - SSAAERDIAG(I,J,L,IB_SW) = SSAAERDIAG(I,J,L,IB_SW) +& - RTSSAER(I,J,L,IBX,IS)*RTODAER(I,J,L,IBX,IS) - ASMAERDIAG(I,J,L,IB_SW) = ASMAERDIAG(I,J,L,IB_SW) +& - RTASYMAER(I,J,L,IBX,IS) * & - RTODAER(I,J,L,IBX,IS)*RTSSAER(I,J,L,IBX,IS) - !IF ((IS.EQ.9).AND.(L.GT.30).AND.(IB_SW.EQ.10).AND. - ! (RTODAER(I,J,L,IBX,IS).GT.0.0d0)) THEN - ! write(6,*) 'STS',I,J,L,IBX,IS,RTODAER(I,J,L,IBX,IS), & - ! RTSSAER(I,J,L,IBX,IS) - !ENDIF - - ENDIF + !MAKE SURE WE HAVE SENSIBLE DATA + !DONT WASTE TIME IF VIRTUALLY NO AEROSOL + IF (RTODAER(I,J,L,IBX,IS).GT.1e-10) THEN + IF (IB.LE.16) THEN !LW + IF (SPECMASK(IS).EQ.1) THEN + TAUAER_LW(I,J,L,IB) = TAUAER_LW(I,J,L,IB) + & + RTODAER(I,J,L,IBX,IS) + ENDIF + ELSE !SW + !IF SPECMASK(IS)=1 THEN WE AGGREGATE THAT SPECIES FOR RRTMG + !IF SPECMASK(IS)>1 THEN WE SAVE THAT SPECIES FOR DIAG OUTPUT + IF (SPECMASK(IS).EQ.1) THEN + TAUAER_SW(I,J,L,IB_SW)=TAUAER_SW(I,J,L,IB_SW)+ & + RTODAER(I,J,L,IBX,IS) + SSAAER(I,J,L,IB_SW) = SSAAER(I,J,L,IB_SW) + & + RTSSAER(I,J,L,IBX,IS)*RTODAER(I,J,L,IBX,IS) + ASMAER(I,J,L,IB_SW) = ASMAER(I,J,L,IB_SW) + & + RTASYMAER(I,J,L,IBX,IS) * & + RTODAER(I,J,L,IBX,IS)*RTSSAER(I,J,L,IBX,IS) + ENDIF + IF (SPECMASK(IS).GT.1) THEN + TAUAERDIAG(I,J,L,IB_SW)=TAUAERDIAG(I,J,L,IB_SW)+ & + RTODAER(I,J,L,IBX,IS) + SSAAERDIAG(I,J,L,IB_SW) = SSAAERDIAG(I,J,L,IB_SW) +& + RTSSAER(I,J,L,IBX,IS)*RTODAER(I,J,L,IBX,IS) + ASMAERDIAG(I,J,L,IB_SW) = ASMAERDIAG(I,J,L,IB_SW) +& + RTASYMAER(I,J,L,IBX,IS) * & + RTODAER(I,J,L,IBX,IS)*RTSSAER(I,J,L,IBX,IS) + !IF ((IS.EQ.9).AND.(L.GT.30).AND.(IB_SW.EQ.10).AND. + ! (RTODAER(I,J,L,IBX,IS).GT.0.0d0)) THEN + ! write(6,*) 'STS',I,J,L,IBX,IS,RTODAER(I,J,L,IBX,IS), & + ! RTSSAER(I,J,L,IBX,IS) + !ENDIF + ENDIF ENDIF ENDIF @@ -1026,20 +1126,30 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & DO I=1,State_Grid%NX PLEV(I,J,1) = PEDGE(I,J,1) ! SET LOWEST LEVEL TO SURFACE PRESSURE TLEV(I,J,1) = TLAY(I,J,1) ! SET LOWEST LEVEL TO LAYER TEMPERATURE (KLUDGE) + TLEV_SW(I,J,1) = TLAY_SW(I,J,1) ! SET LOWEST LEVEL TO LAYER TEMPERATURE (KLUDGE) PLEV(I,J,State_Grid%NZ+1) = PCENTER(I,J,State_Grid%NZ) TLEV(I,J,State_Grid%NZ+1) = TLAY(I,J,State_Grid%NZ) + TLEV_SW(I,J,State_Grid%NZ+1) = TLAY_SW(I,J,State_Grid%NZ) DO L=2,State_Grid%NZ RHOA = PCENTER(I,J,L-1)/(GCAIR*TLAY(I,J,L-1)) RHOB = PCENTER(I,J,L)/(GCAIR*TLAY(I,J,L)) RHOSUM = RHOA+RHOB PLEV(I,J,L) = (RHOA*PCENTER(I,J,L-1)+RHOB*PCENTER(I,J,L))/RHOSUM TLEV(I,J,L) = (RHOA*TLAY(I,J,L-1)+RHOB*TLAY(I,J,L))/RHOSUM + ! Repeat for SW + RHOA = PCENTER(I,J,L-1)/(GCAIR*TLAY_SW(I,J,L-1)) + RHOB = PCENTER(I,J,L)/(GCAIR*TLAY_SW(I,J,L)) + RHOSUM = RHOA+RHOB + TLEV_SW(I,J,L) = (RHOA*TLAY_SW(I,J,L-1)+RHOB*TLAY_SW(I,J,L))/RHOSUM END DO END DO END DO ! FILL CO2, N2O AND O2 ARRAYS WITH REASONABLE ATMOSPHERIC VALUES - CO2VMR(:,:,:) = 3.90E-4 + IF (SPECMASK(State_Chm%Phot%NASPECRAD+5).EQ.1) THEN + ! Was 3.90e-4 (i.e. 390 ppmv), but now set from Input_Opt + CO2VMR(:,:,:) = Input_Opt%RRTMG_CO2_ppmv * 1.0d-6 + END IF O2VMR(:,:,:) = 0.209 SELECT CASE (ICLD) @@ -1214,6 +1324,9 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ENDIF !DO MCICA CLOUDS + ! Number of columns which fail to converge - initialize to zero + N_Failed = 0 + !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & !$OMP PRIVATE( I, J, UFLX, DFLX, HR ) & @@ -1228,7 +1341,13 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & !$OMP PRIVATE( p_CLWPMCL_LW, p_TAUAER_LW, p_CLDFMCL_SW, p_TAUCMCL_SW ) & !$OMP PRIVATE( p_SSACMCL, p_ASMCMCL, p_FSFCMCL, p_CIWPMCL_SW ) & !$OMP PRIVATE( p_CLWPMCL_SW, p_TAUAER_SW, p_SSAAER, p_ASMAER ) & - !$OMP PRIVATE( p_SUNCOS ) & + !$OMP PRIVATE( p_SUNCOS, dtadj, HRdyn, HRstrat ) & + !$OMP PRIVATE( RHOA, RHOB, RHOSUM, StratImbal ) & + !$OMP PRIVATE( HR_P, p_TLAY_P, I_PC, p_TLAY_0 ) & + !$OMP PRIVATE( UFLXC_P, DFLXC_P, UFLX_P, DFLX_P ) & + !$OMP PRIVATE( TSadj_adapt, TSadj, i_Iter, L ) & + !$OMP PRIVATE( p_TLAY_SW, p_TLEV_SW, Do_Adjust ) & + !$OMP PRIVATE( last_max, curr_max, i_max, last_max_stored ) & !$OMP SCHEDULE( DYNAMIC ) DO J=1, State_Grid%NY DO I=1, State_Grid%NX @@ -1253,6 +1372,11 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & p_REICMCL = REICMCL (I,J,:) p_RELQMCL = RELQMCL (I,J,:) + ! For shortwave calculations we need to neglect the strat. + ! adjustment (otherwise inconsistent with baseline) + p_TLAY_SW = TLAY_SW(I,J,:) + p_TLEV_SW = TLEV_SW(I,J,:) + !-------------------------------------------------------------- ! RRTMG - Longwave radiation !-------------------------------------------------------------- @@ -1351,8 +1475,8 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ICLDMCL, & p_PCENTER, & p_PLEV, & - p_TLAY, & - p_TLEV, & + p_TLAY_SW, & + p_TLEV_SW, & TSFC(I,J), & p_H2OVMR, & p_O3VMR, & @@ -1400,10 +1524,244 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & SW_DFLUXC(I,J,:) = SWDFLXC(1,:) ENDIF !SW + + ! If we are including stratospheric adjustment, we need + ! to repeat calculations using the approach outlined in + ! Maycock et al. (2011) + If (Store_DHR .or. Calc_DeltaT) Then + If (Store_DHR) Then + ! Assume that dT/dt is ~ 0; therefore the dynamical + ! heating rate is approximately -1x the net radiative + ! heating rate + Do L=1,State_Grid%NZ + HRdyn(L) = -1.0e+0_RB * (HR(1,L) + SWHR(1,L)) + End Do + ! Store in the output array + HR_3D(I,J,:) = HRdyn(:) + Else If (Calc_DeltaT.and.Input_Opt%RRTMG_SEFDH) Then + ! Only performed on the baseline call + ! Read the heating rate from the archived data + HRdyn(:) = HR_3D(I,J,:) + ! Update delta-T using simple forward Euler + Do L=1,State_Grid%NZ + If (State_Met%InStratosphere(I,J,L)) Then + ! March forward to end of the coming time step + DT_3D(I,J,L) = DT_3D(I,J,L) + (DT_days * (HR(1,L) + SWHR(1,L) + HRdyn(L))) + Else + ! Relax temperature adjustment to zero + ! outside the stratosphere + DT_3D(I,J,L) = DT_3D(I,J,L) * Relax_Factor + End If + End Do + Else If (Calc_DeltaT.and.Input_Opt%RRTMG_FDH) Then + ! Read the heating rate from the archived data + HRdyn(:) = HR_3D(I,J,:) + ! Assume we start in an imbalanced state + StratImbal = .True. + ! Cumulative integration time so far in days + dtadj = 0.0d0 + ! Iteration counter + i_iter = 0 + ! Initial time step (days) + tsadj_adapt = tsadj_max + last_max = 0.0d0 + last_max_stored = 0.0d0 ! Debug + ! Define which region we perform adjustment in + Do_Adjust(:) = State_Met%InStratosphere(I,J,:) + If (Input_Opt%RRTMG_SA_TOA) Then + Do L = 1, State_Grid%NZ + Do_Adjust(L) = (.not. State_Met%InTroposphere(I,J,L)) + End Do + End If + Do While (StratImbal) + i_iter = i_iter + 1 + ! Reset net stratospheric heating rate + HRstrat(:) = 0.0e+0_RB + StratImbal = .False. + + ! Store temperatures at the start of the step + Do L=1,State_Grid%NZ + p_TLAY_0(L) = p_TLAY(L) + End Do + + ! Perform RK4 integration forward in time + ! Estimate heating rate at each of the 4 points + Do I_PC = 1, N_PC + ! Estimate heating rate using "current" conditions + ! Can be skipped if i_iter == 1 because we just ran + ! the longwave calculation + If ((I_PC.gt.1).or.(i_iter.gt.1)) Then + ! Reinterpolate temperatures + p_TLEV(1) = p_TLAY(1) + p_TLEV(State_Grid%NZ+1) = p_TLAY(State_Grid%NZ) + Do L=2,State_Grid%NZ + RHOA = p_PCENTER(L-1)/(GCAIR*p_TLAY(L-1)) + RHOB = p_PCENTER(L )/(GCAIR*p_TLAY(L )) + RHOSUM = RHOA+RHOB + p_TLEV(L) = (RHOA*p_TLAY(L-1)+ & + RHOB*p_TLAY(L ))/RHOSUM + End Do + + ! Recalculate LW RT and heating + CALL RRTMG_LW( & + !------------------------------------- + ! Inputs + ONECOL, & + State_Grid%NZ, & + ICLDMCL, & + IDRV, & + p_PCENTER, & + p_PLEV, & + p_TLAY, & + p_TLEV, & + TSFC(I,J), & + p_H2OVMR, & + p_O3VMR, & + p_CO2VMR, & + p_CH4VMR, & + p_N2OVMR, & + p_O2VMR, & + p_CFC11VMR, & + p_CFC12VMR, & + p_CFC22VMR, & + p_CCL4VMR, & + p_RTEMISS, & + INFLGLW, & + ICEFLGLW, & + LIQFLGLW, & + p_CLDFMCL_LW, & + p_TAUCMCL_LW, & + p_CIWPMCL_LW, & + p_CLWPMCL_LW, & + p_REICMCL, & + p_RELQMCL, & + p_TAUAER_LW, & + !------------------------------------- + ! Outputs + UFLX, & + DFLX, & + HR, & + UFLXC, & + DFLXC, & + HRC, & + DUFLX_DT, & + DUFLXC_DT ) + End If ! I_PC > 1 or i_iter > 1 + + ! Store the gradient (heating rate) from each calculation + HR_P(I_PC,:) = HR(1,:) + + ! If this is the last calculation, store the output + ! All non-baseline calculations will use these temperatures + ! if convergence has been reached + If (I_PC == N_PC) Then + p_TLAY_P(:) = p_TLAY(:) + ! Also store the fluxes for transfer to the 3-D arrays + UFLX_P(1,:) = UFLX(1,:) + DFLX_P(1,:) = DFLX(1,:) + UFLXC_P(1,:) = UFLXC(1,:) + DFLXC_P(1,:) = DFLXC(1,:) + End If + + ! Update the heating rate and layer temperatures + ! Recall that for RK4, we will perform 4 estimates + ! Estimate 1: heating rate at t = T + 0 + ! Estimate 2: heating rate at t = T + dt/2, projected 1st order from t = T using estimate 1 + ! Estimate 3: heating rate at t = T + dt/2, projected 1st order from t = T using estimate 2 + ! Estimate 4: heating rate at t = T + dt, projected 1st order from t = T using estimate 3 + ! Choose how far to project forward for the NEXT RK4 step + If ((I_PC == 1).or.(I_PC == 2)) Then + ! 2nd and 3rd evaluation to take place at t = T + dt/2 + tsadj = tsadj_adapt / 2.0 + Else + ! 4th evaluation to take place at t = T + dt + tsadj = tsadj_adapt + End If + + ! If this is the last calculation, use the RK4 estimate of the heating rate + If (I_PC == N_PC) Then + HR(1,:) = (1.0/6.0) * & + ( HR_P(1,:) + & + (HR_P(2,:)*2.0) + & + (HR_P(3,:)*2.0) + & + HR_P(4,:) ) + End If + + ! Reset + HRstrat(:) = 0.0e+0_RB + Do L=1,State_Grid%NZ + If (Do_Adjust(L)) Then + ! This should be approaching zero over time + HRstrat(L) = HR(1,L) + SWHR(1,L) + HRdyn(L) + ! Update layer temperature by projecting forward + ! from the temperature at the start of the calculation + ! loop (p_TLAY_0) + p_TLAY(L) = (TSadj_adapt * HRstrat(L)) + p_TLAY_0(L) + End If + End Do ! L = 1, State-Grid%NZ + End Do ! I_PC = 1, N_PC + + ! RK4 calculations now complete - move forward one timestep + dtadj = dtadj + tsadj_adapt + + ! Check how close we are to equilibrium + i_max = MaxLoc(Abs(HRstrat),1) + curr_max = HRstrat(i_max) + StratImbal = (Abs(curr_max) > HRmax) + + ! Is the net heating rate ~0? + If (.not.StratImbal) Exit + ! Are we oscillating? If so - reduce time step + If ((i_iter.gt.1) .and. (((curr_max.gt.0) .and. (last_max.lt.0)) .or. & + (((curr_max.lt.0) .and. (last_max.gt.0))))) Then + tsadj_adapt = max(tsadj_adapt/2.0,tsadj_min) + End If + last_max_stored = last_max + last_max = curr_max + ! Are we taking too long to reach equilibrium? + If (dtadj > dtadj_max) Exit + End Do ! While StratImbal + + ! If convergence failed, record that + If (StratImbal) Then + !$OMP ATOMIC UPDATE + N_Failed = N_Failed + 1 + !$OMP END ATOMIC + End If + + ! Store the flux arrays and delta-T from the final + ! RK4 sub-calculation. This ensures that the fluxes + ! and layer temperatures are all consistent. The + ! alternative would be to run a final calculation + ! using the "final" layer temperatures, but this would + ! require yet another LW flux calculation. + LW_UFLUX (I,J,:) = UFLX_P(1,:) + LW_DFLUX (I,J,:) = DFLX_P(1,:) + LW_UFLUXC(I,J,:) = UFLXC_P(1,:) + LW_DFLUXC(I,J,:) = DFLXC_P(1,:) + DT_3D(I,J,:) = p_TLAY_P(:) - TLAY(I,J,:) + End If ! Calc_DeltaT + End If ENDDO !State_Grid%NX ENDDO !State_Grid%NY !$OMP END PARALLEL DO + If (Calc_DeltaT) Then + ! Warn the user if there were failed columns + If (N_Failed > 0) Then + N_Column = State_Grid%NX*State_Grid%NY + Write(ErrMsg,'(a,I6,a,I6,a,I6)') 'RRTMG FDH routine failed to converge for ',N_Failed, & + ' of ',N_Column,' columns on CPU ', Input_Opt%thisCPU + If (N_Failed .gt. (N_Column/10)) Then + Call Log_Msg(Trim(ErrMsg),'WARNING','Do_RRTMG_Rad_Transfer') + Else + Call Log_Msg(Trim(ErrMsg),'INFO','Do_RRTMG_Rad_Transfer') + End If + Else + Call Log_Msg('FDH calculation succeeded in every column','DEBUG','Do_RRTMG_Rad_Transfer') + End If + End If + ! OUTPUT RADIATION VARIABLES TO DIAGNOSTIC ! IF CALC WITH AEROSOLS AND GASES COMPLETED ! USE ISPECMENU (REFERENCES THE INPUT.GEOS.RAD LIST) @@ -1425,6 +1783,7 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & !$OMP PRIVATE( I, J, LL, W ) & !$OMP PRIVATE( AODTMP, SSATMP, ASYMTMP) & !$OMP PRIVATE( AODOUT, SSAOUT, ASYMOUT) & + !$OMP PRIVATE( iTrop ) & !$OMP SCHEDULE( DYNAMIC ) DO J=1,State_Grid%NY DO I=1,State_Grid%NX @@ -1433,6 +1792,9 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ! %%%%% HISTORY (aka netCDF diagnostics) %%%%% !================================================================ + ! Get the tropopause level + iTrop = State_Met%TropLev(I,J) + !================================================================ ! Save clear-sky and all-sky fluxes from RRTMG [W/m2] !================================================================ @@ -1449,6 +1811,12 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & -SW_UFLUX(I,J,State_Grid%NZ+1) ENDIF + ! All-sky SW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadAllSkySWTrop ) THEN + State_Diag%RadAllSkySWTrop(I,J,iNcDiag) = & + SW_DFLUX(I,J,iTrop)-SW_UFLUX(I,J,iTrop) + ENDIF + ! All-sky SW flux @ surface [W/m2] IF ( State_Diag%Archive_RadAllSkySWSurf ) THEN State_Diag%RadAllSkySWSurf(I,J,iNcDiag) = & @@ -1461,6 +1829,12 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & -LW_UFLUX(I,J,State_Grid%NZ+1) ENDIF + ! All-sky LW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadAllSkyLWTrop ) THEN + State_Diag%RadAllSkyLWTrop(I,J,iNcDiag) = & + LW_DFLUX(I,J,iTrop)-LW_UFLUX(I,J,iTrop) + ENDIF + ! All-sky LW flux @ surface [W/m2] IF ( State_Diag%Archive_RadAllSkyLWSurf ) THEN State_Diag%RadAllSkyLWSurf(I,J,iNcDiag) = & @@ -1473,6 +1847,12 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & -SW_UFLUXC(I,J,State_Grid%NZ+1) ENDIF + ! Clear-sky SW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadClrSkySWTrop ) THEN + State_Diag%RadClrSkySWTrop(I,J,iNcDiag) = & + SW_DFLUXC(I,J,iTrop)-SW_UFLUXC(I,J,iTrop) + ENDIF + ! Clear-sky SW flux @ surface [W/m2] IF ( State_Diag%Archive_RadClrSkySWSurf ) THEN State_Diag%RadClrSkySWSurf(I,J,iNcDiag) = & @@ -1485,6 +1865,12 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & -LW_UFLUXC(I,J,State_Grid%NZ+1) ENDIF + ! Clear-sky LW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadClrSkyLWTrop ) THEN + State_Diag%RadClrSkyLWTrop(I,J,iNcDiag) = & + LW_DFLUXC(I,J,iTrop)-LW_UFLUXC(I,J,iTrop) + ENDIF + ! Clear-sky LW flux @ surface [W/m2] IF ( State_Diag%Archive_RadClrSkyLWSurf ) THEN State_Diag%RadClrSkyLWSurf(I,J,iNcDiag) = & @@ -1503,6 +1889,12 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & -SW_UFLUXC(I,J,State_Grid%NZ+1) ENDIF + ! Clear-sky SW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadClrSkySWTrop ) THEN + State_Diag%RadClrSkySWTrop(I,J,iNcDiag) = & + SW_DFLUXC(I,J,iTrop)-SW_UFLUXC(I,J,iTrop) + ENDIF + ! Clear-sky SW flux @ surface [W/m2] IF ( State_Diag%Archive_RadClrSkySWSurf ) THEN State_Diag%RadClrSkySWSurf(I,J,iNcDiag) = & @@ -1515,6 +1907,12 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & -LW_UFLUXC(I,J,State_Grid%NZ+1) ENDIF + ! Clear-sky LW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadClrSkyLWTrop ) THEN + State_Diag%RadClrSkyLWTrop(I,J,iNcDiag) = & + LW_DFLUXC(I,J,iTrop)-LW_UFLUXC(I,J,iTrop) + ENDIF + ! Clear-sky LW flux @ surface [W/m2] IF ( State_Diag%Archive_RadClrSkyLWSurf ) THEN State_Diag%RadClrSkyLWSurf(I,J,iNcDiag) = & @@ -1542,6 +1940,13 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & State_Diag%RadAllSkySWTOA(I,J,iNcDiag) ENDIF + ! All-sky SW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadAllSkySWTrop ) THEN + State_Diag%RadAllSkySWTrop(I,J,iNcDiag) = & + State_Diag%RadAllSkySWTrop(I,J,baseIndex) - & + State_Diag%RadAllSkySWTrop(I,J,iNcDiag) + ENDIF + ! All-sky SW flux @ surface [W/m2] IF ( State_Diag%Archive_RadAllSkySWSurf ) THEN State_Diag%RadAllSkySWSurf(I,J,iNcDiag) = & @@ -1556,6 +1961,13 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & State_Diag%RadAllSkyLWTOA(I,J,iNcDiag) ENDIF + ! All-sky LW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadAllSkyLWTrop ) THEN + State_Diag%RadAllSkyLWTrop(I,J,iNcDiag) = & + State_Diag%RadAllSkyLWTrop(I,J,baseIndex) - & + State_Diag%RadAllSkyLWTrop(I,J,iNcDiag) + ENDIF + ! All-sky LW flux @ surface [W/m2] IF ( State_Diag%Archive_RadAllSkyLWSurf ) THEN State_Diag%RadAllSkyLWSurf(I,J,iNcDiag) = & @@ -1570,6 +1982,13 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & State_Diag%RadClrSkySWTOA(I,J,iNcDiag) ENDIF + ! Clear-sky SW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadClrSkySWTrop ) THEN + State_Diag%RadClrSkySWTrop(I,J,iNcDiag) = & + State_Diag%RadClrSkySWTrop(I,J,baseIndex) - & + State_Diag%RadClrSkySWTrop(I,J,iNcDiag) + ENDIF + ! Clear-sky SW flux @ surface [W/m2] IF ( State_Diag%Archive_RadClrSkySWSurf ) THEN State_Diag%RadClrSkySWSurf(I,J,iNcDiag) = & @@ -1584,6 +2003,13 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & State_Diag%RadClrSkyLWTOA(I,J,iNcDiag) ENDIF + ! Clear-sky LW flux @ tropopause [W/m2] + IF ( State_Diag%Archive_RadClrSkyLWTrop ) THEN + State_Diag%RadClrSkyLWTrop(I,J,iNcDiag) = & + State_Diag%RadClrSkyLWTrop(I,J,baseIndex) - & + State_Diag%RadClrSkyLWTrop(I,J,iNcDiag) + ENDIF + ! Clear-sky LW flux @ surface [W/m2] IF ( State_Diag%Archive_RadClrSkyLWSurf ) THEN State_Diag%RadClrSkyLWSurf(I,J,iNcDiag) = & @@ -1595,15 +2021,17 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & !------------------------------------------------------- ! Optics diagnostics (AOD, single scattering albedo, asymmetry param) - ! There is one diagnostic per RRTMG output, excluding BASE, ozone, and - ! methane (hence OUTIDX > 4)T=, and there is one diagnostic per - ! RRTMG wavelength (up to Input_Opt%NWVSELECT). + ! There is one diagnostic per RRTMG output, excluding BASE, ozone, CH4, + ! H2O, CO2, CFC, and N2O (hence OUTIDX > 7), and there is one + ! diagnostic per RRTMG wavelength (up to Input_Opt%NWVSELECT). + ! 2022-01-10: Added water vapor, CO2, CFC, and N2O (SDE) !------------------------------------------------------- !OUTPUT OPTICS FOR EACH AEROSOL... !CHECK THAT WE HAVE SOME AEROSOL TO OUTPUT - !SKIP OUTIDX=1,2,3 (BASELINE, OZONE AND CH4) - IF ((OUTIDX.GE.4).AND.(LOUTPUTAERO)) THEN + !SKIP OUTIDX=1,2,3,4,5,6,7 + !(BASELINE, OZONE, CH4, H2O,CO2,CFC,N2O) + IF ((OUTIDX.GE.8).AND.(LOUTPUTAERO)) THEN !INTERPOLATE TO THE REQUESTED WAVELENGTH DO W=1,Input_Opt%NWVSELECT AODTMP = 0.0D0 @@ -1649,33 +2077,33 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & IF ( State_Diag%Archive_RadOptics ) THEN IF ( W == 1 ) THEN IF ( State_Diag%Archive_RADAODWL1 ) THEN - State_Diag%RADAODWL1(I,J,OUTIDX) = AODOUT + State_Diag%RADAODWL1(I,J,iNcDiag) = AODOUT ENDIF IF ( State_Diag%Archive_RADSSAWL1 ) THEN - State_Diag%RADSSAWL1(I,J,OUTIDX) = SSAOUT + State_Diag%RADSSAWL1(I,J,iNcDiag) = SSAOUT ENDIF IF ( State_Diag%Archive_RADAsymWL1 ) THEN - State_Diag%RADAsymWL1(I,J,OUTIDX) = ASYMOUT + State_Diag%RADAsymWL1(I,J,iNcDiag) = ASYMOUT ENDIF ELSEIF ( W == 2 ) THEN IF ( State_Diag%Archive_RADAODWL2 ) THEN - State_Diag%RADAODWL2(I,J,OUTIDX) = AODOUT + State_Diag%RADAODWL2(I,J,iNcDiag) = AODOUT ENDIF IF ( State_Diag%Archive_RADSSAWL2 ) THEN - State_Diag%RADSSAWL2(I,J,OUTIDX) = SSAOUT + State_Diag%RADSSAWL2(I,J,iNcDiag) = SSAOUT ENDIF IF ( State_Diag%Archive_RADAsymWL2 ) THEN - State_Diag%RADAsymWL2(I,J,OUTIDX) = ASYMOUT + State_Diag%RADAsymWL2(I,J,iNcDiag) = ASYMOUT ENDIF ELSEIF ( W == 3 ) THEN IF ( State_Diag%Archive_RADAODWL3 ) THEN - State_Diag%RADAODWL3(I,J,OUTIDX) = AODOUT + State_Diag%RADAODWL3(I,J,iNcDiag) = AODOUT ENDIF IF ( State_Diag%Archive_RADSSAWL3 ) THEN - State_Diag%RADSSAWL3(I,J,OUTIDX) = SSAOUT + State_Diag%RADSSAWL3(I,J,iNcDiag) = SSAOUT ENDIF IF ( State_Diag%Archive_RADASYMWL3 ) THEN - State_Diag%RADAsymWL3(I,J,OUTIDX) = ASYMOUT + State_Diag%RADAsymWL3(I,J,iNcDiag) = ASYMOUT ENDIF ENDIF ENDIF @@ -1686,16 +2114,43 @@ SUBROUTINE DO_RRTMG_RAD_TRANSFER( ThisDay, ThisMonth, iCld, & ENDDO !$OMP END PARALLEL DO + ! Halt RRTMG timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "RRTMG", RC ) + ENDIF + ! Convert species units back to original unit - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, 'DO_RRTMG_RAD_TRANSFER') RETURN ENDIF + ! Start RRTMG timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "RRTMG", RC ) + ENDIF + ! Nullify pointers - Spc => NULL() + Spc => NULL() + SPECMASK => NULL() + IRTWVSELECT => NULL() + ACOEF_RTWV => NULL() + BCOEF_RTWV => NULL() + CCOEF_RTWV => NULL() + WVAA => NULL() + RTODAER => NULL() + RTSSAER => NULL() + RTASYMAER => NULL() + END SUBROUTINE DO_RRTMG_RAD_TRANSFER !EOC @@ -1718,15 +2173,19 @@ END SUBROUTINE DO_RRTMG_RAD_TRANSFER !\\ ! !INTERFACE: ! - SUBROUTINE Set_SpecMask( iSpecRadMenu ) + SUBROUTINE Set_SpecMask( iSpecRadMenu, State_Chm ) ! ! !USES: ! - USE CMN_FJX_MOD, ONLY : SPECMASK, NSPECRAD, NASPECRAD + USE State_Chm_Mod, ONLY : ChmState ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: iSpecRadMenu ! Index of RRTMG flux output + INTEGER, INTENT(IN) :: iSpecRadMenu ! Index of RRTMG flux output +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object ! ! !REVISION HISTORY: ! 18 Jun 2013 - D.A. Ridley - Initial version @@ -1737,7 +2196,10 @@ SUBROUTINE Set_SpecMask( iSpecRadMenu ) ! ! !LOCAL VARIABLES: ! - INTEGER :: N0,N,I,II,NXTRA + INTEGER :: N0,N,I,II,NXTRA,NASPECRAD + + ! Pointers + INTEGER, POINTER :: SPECMASK(:) !================================================================= ! SET_SPECMASK begins here! @@ -1754,7 +2216,11 @@ SUBROUTINE Set_SpecMask( iSpecRadMenu ) !WHERE NXTRA=NUMBER OF NEW SPECIES ADDED ABOVE THE STANDARD CODE !E.G. FOR UCX NSPECRAD=18 AND STS AND NAT ARE INCLUDED !IN RTODAER INDEX 8 AND 9, BEFORE DUST - NXTRA=NSPECRAD-16 + NXTRA = State_Chm%Phot%NSPECRAD - 16 + NASPECRAD = State_Chm%Phot%NASPECRAD + + ! Set pointer + SPECMASK => State_Chm%Phot%SpecMask !CONVERT THE CURRENT SPECIES SELECTION FROM THE INPUT MENU INTO !THE REQUIRED SPECIES TO BE INCLUDED IN THE RRTMG CALCULATION @@ -1767,66 +2233,87 @@ SUBROUTINE Set_SpecMask( iSpecRadMenu ) ! O3 = Ozone CASE( 1 ) - SPECMASK(15+NXTRA)=0 + SPECMASK(NASPECRAD+1)=0 ! Stratospheric + SPECMASK(NASPECRAD+2)=0 ! Tropospheric - ! ME = Methane + ! O3T = Tropospheric ozone only CASE( 2 ) - SPECMASK(16+NXTRA)=0 + SPECMASK(NASPECRAD+2)=0 ! Tropospheric - ! SU = Sulfate + ! ME = Methane CASE( 3 ) - SPECMASK(1)=3 + SPECMASK(NASPECRAD+3)=0 - ! NI = Nitrate + ! H2O = Water vapor CASE( 4 ) - SPECMASK(2)=4 + SPECMASK(NASPECRAD+4)=0 - ! AM = Ammonium + ! CO2 = Carbon dioxide CASE( 5 ) - SPECMASK(3)=5 + SPECMASK(NASPECRAD+5)=0 - ! BC = Black carbon (Hydrophilic+phobic) + ! CFC = Chlorofluorocarbons CASE( 6 ) - SPECMASK(4)=6 + SPECMASK(NASPECRAD+6)=0 - ! OA = Organic aerosol (!Hydrophilic+phobic) + ! N2O = Nitrous oxide CASE( 7 ) - SPECMASK(5)=7 + SPECMASK(NASPECRAD+7)=0 - ! SS = Sea salt + ! SU = Sulfate CASE( 8 ) - SPECMASK(6)=8 - SPECMASK(7)=8 + SPECMASK(1)=8 - ! DU = Mineral dust + ! NI = Nitrate CASE( 9 ) - SPECMASK(8+NXTRA)=9 - SPECMASK(9+NXTRA)=9 - SPECMASK(10+NXTRA)=9 - SPECMASK(11+NXTRA)=9 - SPECMASK(12+NXTRA)=9 - SPECMASK(13+NXTRA)=9 - SPECMASK(14+NXTRA)=9 + SPECMASK(2)=9 + + ! AM = Ammonium + CASE( 10 ) + SPECMASK(3)=10 + + ! BC = Black carbon (Hydrophilic+phobic) + CASE( 11 ) + SPECMASK(4)=11 + + ! OA = Organic aerosol (!Hydrophilic+phobic) + CASE( 12 ) + SPECMASK(5)=12 + + ! SS = Sea salt + CASE( 13 ) + SPECMASK(6)=13 + SPECMASK(7)=13 + + ! DU = Mineral dust + CASE( 14 ) + ! 7 dust bins for RT + Do II=10,16 + SPECMASK(II)=14 + End Do ! PM = All particulate matter ! add all aerosols but not gases here - CASE( 10 ) - DO II = 1, NASPECRAD - SPECMASK(II)=10 + CASE( 15 ) + DO II = 1, State_Chm%Phot%NASPECRAD + SPECMASK(II)=15 ENDDO ! ST = STRAT AEROSOL - CASE( 11 ) + CASE( 16 ) !LSA - SPECMASK(8) = 11 + SPECMASK(8) = 16 !NAT - SPECMASK(9) = 11 + SPECMASK(9) = 16 END SELECT ENDIF + ! Nullify pointer + SPECMASK => NULL() + END SUBROUTINE Set_SpecMask !EOC !------------------------------------------------------------------------------ @@ -1902,13 +2389,11 @@ SUBROUTINE Init_RRTMG_Rad_Transfer( Input_Opt, State_Diag, State_Grid, RC ) ! which is type 0). ! ! Optional outputs (requested via HISTORY.rc) - ! 1=O3 2=ME 3=SU 4=NI 5=AM 6=BC - ! 7=OA 8=SS 9=DU 10=PM 11=ST + ! 1=O3 2=O3T 3=ME 4=H2O 5=CO2 6=CFC 7=N2O + ! 8=SU 9=NI 10=AM 11=BC 12=OA 13=SS 14=DU + ! 15=PM 16=ST ! - ! NOTE: We can get rid of Input_Opt%LSPECRADMENU once all of - ! the bpch code is removed from GEOS-Chem. This array is still - ! used in diag3.F90, so we need to keep it for the time being. - ! (bmy, 11/9/18) + ! NB: "O3" is all ozone; "O3T" is tropospheric ozone only. !================================================================= ! Loop over all of the flux outputs requested in HISTORY.rc @@ -1917,26 +2402,36 @@ SUBROUTINE Init_RRTMG_Rad_Transfer( Input_Opt, State_Diag, State_Grid, RC ) SELECT CASE( State_Diag%RadOutName(N) ) CASE( 'O3' ) Input_Opt%LSpecRadMenu(1) = 1 - CASE( 'ME' ) + CASE( 'O3T' ) Input_Opt%LSpecRadMenu(2) = 1 - CASE( 'SU' ) + CASE( 'ME' ) Input_Opt%LSpecRadMenu(3) = 1 + CASE( 'H2O' ) + Input_Opt%LSpecRadMenu(4) = 1 + CASE( 'CO2' ) + Input_Opt%LSpecRadMenu(5) = 1 + CASE( 'CFC' ) + Input_Opt%LSpecRadMenu(6) = 1 + CASE( 'N2O' ) + Input_Opt%LSpecRadMenu(7) = 1 + CASE( 'SU' ) + Input_Opt%LSpecRadMenu(8) = 1 CASE( 'NI' ) - Input_Opt%LSpecRadMenu(4) = 1 + Input_Opt%LSpecRadMenu(9) = 1 CASE( 'AM' ) - Input_Opt%LSpecRadMenu(5) = 1 + Input_Opt%LSpecRadMenu(10) = 1 CASE( 'BC' ) - Input_Opt%LSpecRadMenu(6) = 1 + Input_Opt%LSpecRadMenu(11) = 1 CASE( 'OA' ) - Input_Opt%LSpecRadMenu(7) = 1 + Input_Opt%LSpecRadMenu(12) = 1 CASE( 'SS' ) - Input_Opt%LSpecRadMenu(8) = 1 + Input_Opt%LSpecRadMenu(13) = 1 CASE( 'DU' ) - Input_Opt%LSpecRadMenu(9) = 1 + Input_Opt%LSpecRadMenu(14) = 1 CASE( 'PM' ) - Input_Opt%LSpecRadMenu(10) = 1 + Input_Opt%LSpecRadMenu(15) = 1 CASE( 'ST' ) - Input_Opt%LSpecRadMenu(11) = 1 + Input_Opt%LSpecRadMenu(16) = 1 CASE DEFAULT ! Nothing END SELECT @@ -1967,7 +2462,6 @@ SUBROUTINE Init_Surface_Rad( State_Grid ) ! ! !USES: ! - USE CMN_FJX_MOD USE ERROR_MOD, ONLY : ALLOC_ERR USE State_Grid_Mod, ONLY : GrdState ! @@ -2384,7 +2878,6 @@ SUBROUTINE INIT_MCICA_CLOUDS( State_Grid ) ! ! !USES: ! - USE CMN_FJX_MOD USE ERROR_MOD, ONLY : ALLOC_ERR USE PARRRTM, ONLY : NGPTLW USE PARRRSW, ONLY : NGPTSW diff --git a/GeosCore/seasalt_mod.F90 b/GeosCore/seasalt_mod.F90 index 1f1a53c6b..bd5888801 100644 --- a/GeosCore/seasalt_mod.F90 +++ b/GeosCore/seasalt_mod.F90 @@ -126,8 +126,7 @@ MODULE SeaSalt_Mod ! Scalars INTEGER :: NR INTEGER :: id_MOPO, id_MOPI - INTEGER :: id_NK1, id_SALA - INTEGER :: id_SALC, id_SS1 + INTEGER :: id_SALA, id_SALC INTEGER :: id_SALACL, id_SALCCL INTEGER :: id_SALAAL, id_SALCAL REAL(fp) :: REFF_accum, REFF_coarse @@ -199,9 +198,6 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & ! ! !LOCAL VARIABLES: ! - ! Scalars - LOGICAL :: prtDebug - ! Strings CHARACTER(LEN=255) :: thisLoc CHARACTER(LEN=512) :: errMsg @@ -216,7 +212,6 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & ! Initialize RC = GC_SUCCESS - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) !======================================================================== ! Accumulation mode (SALA) wet settling @@ -228,7 +223,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & - TC = State_Chm%Species(id_SALA)%Conc, & + spcId = id_SALA, & N = 1, & RC = RC ) @@ -238,7 +233,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSEASALT: WET_SET, Accum' ) ENDIF ENDIF @@ -253,7 +248,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & - TC = State_Chm%Species(id_SALC)%Conc, & + spcId = id_SALC, & N = 2, & RC = RC ) @@ -263,7 +258,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSEASALT: WET_SET, Coarse' ) ENDIF ENDIF @@ -278,7 +273,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & - TC = State_Chm%Species(id_SALACL)%Conc, & + spcId = id_SALACL, & N = 3, & RC = RC ) @@ -288,7 +283,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSEASALT: WET_SET, Accum Cl' ) ENDIF ENDIF @@ -303,7 +298,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & - TC = State_Chm%Species(id_SALCCL)%Conc, & + spcId = id_SALCCL, & N = 4, & RC = RC ) @@ -313,7 +308,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSEASALT: WET_SET, Coarse Cl' ) ENDIF ENDIF @@ -328,7 +323,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & - TC = State_Chm%Species(id_SALAAL)%Conc, & + spcId = id_SALAAL, & N = 5, & RC = RC ) @@ -338,7 +333,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSEASALT: WET_SET, Accum Al' ) ENDIF ENDIF @@ -353,7 +348,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & - TC = State_Chm%Species(id_SALCAL)%Conc, & + spcId = id_SALCAL, & N = 6, & RC = RC ) @@ -363,7 +358,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSEASALT: WET_SET, Coarse Al' ) ENDIF ENDIF @@ -388,7 +383,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSEASALT: a CHEM_MOPO' ) ENDIF ENDIF @@ -408,7 +403,7 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSEASALT: a CHEM_MOPI' ) ENDIF ENDIF @@ -425,7 +420,9 @@ SUBROUTINE ChemSeaSalt( Input_Opt, State_Chm, State_Diag, & ENDDO CALL SRCSALTBIN( Seasalt_Ids, State_Grid, State_Met, State_Chm ) - IF ( prtDebug ) CALL DEBUG_MSG( '### EMISSEASALT: Bin' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### EMISSEASALT: Bin' ) + ENDIF !---------------------------------------- ! APM microphysics @@ -454,7 +451,7 @@ END SUBROUTINE ChemSeaSalt ! !INTERFACE: ! SUBROUTINE Wet_Settling( Input_Opt, State_Chm, State_Diag, State_Grid, & - State_Met, TC, N, RC ) + State_Met, spcId, N, RC ) ! ! !USES: ! @@ -462,6 +459,7 @@ SUBROUTINE Wet_Settling( Input_Opt, State_Chm, State_Diag, State_Grid, & USE Error_Mod, ONLY : Debug_Msg USE Input_Opt_Mod, ONLY : OptInput USE PhysConstants + USE Species_Mod, ONLY : SpcConc USE State_Chm_Mod, ONLY : ChmState USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState @@ -474,14 +472,12 @@ SUBROUTINE Wet_Settling( Input_Opt, State_Chm, State_Diag, State_Grid, & TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object + INTEGER, INTENT(IN) :: spcId ! Sea salt species Id INTEGER, INTENT(IN) :: N ! odd=accum; even=coarse ! ! !INPUT/OUTPUT PARAMETERS: ! TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object - REAL(fp), INTENT(INOUT) :: TC(State_Grid%NX, &! Sea salt [kg] - State_Grid%NY, & - State_Grid%NZ) ! ! !OUTPUT PARAMETERS: ! @@ -500,7 +496,6 @@ SUBROUTINE Wet_Settling( Input_Opt, State_Chm, State_Diag, State_Grid, & ! !LOCAL VARIABLES: ! ! Scalars - LOGICAL :: PrtDebug INTEGER :: I, J, L INTEGER :: S, ID REAL(fp) :: DELZ, DELZ1, REFF @@ -519,6 +514,9 @@ SUBROUTINE Wet_Settling( Input_Opt, State_Chm, State_Diag, State_Grid, & REAL(fp) :: VTS(State_Grid%NZ) REAL(fp) :: TC0(State_Grid%NZ) + ! Pointers + REAL(fp), POINTER :: TC(:,:,:) + ! Strings CHARACTER(LEN=255) :: ErrMsg CHARACTER(LEN=255) :: ThisLoc @@ -534,7 +532,6 @@ SUBROUTINE Wet_Settling( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Initialize RC = GC_SUCCESS - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) DTCHEM = GET_TS_CHEM() ! Chemistry timestep [s] DEN = SS_DEN( N ) ! Sea salt density [kg/m3] ErrMsg = '' @@ -558,8 +555,13 @@ SUBROUTINE Wet_Settling( Input_Opt, State_Chm, State_Diag, State_Grid, & REFF = REFF_accum ! Eff radius of accum mode [m] ENDIF - IF ( prtDebug ) CALL DEBUG_MSG('SEASALT: STARTING WET_SETTLING') + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG('SEASALT: STARTING WET_SETTLING') + ENDIF + ! Point to the species concentration array in State_Chm%Species + TC => State_Chm%Species(spcId)%Conc + !%%% Comment out unused code (not sure who disabled this) !%%% ! Sea salt radius [cm] !%%% !RCM = REFF * 100e+0_fp @@ -823,7 +825,12 @@ SUBROUTINE Wet_Settling( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDDO ! J !$OMP END PARALLEL DO - IF ( prtDebug ) CALL DEBUG_MSG('SEASALT: ENDING WET_SETTLING') + ! Free pointer + TC => NULL() + + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG('SEASALT: ENDING WET_SETTLING') + ENDIF END SUBROUTINE Wet_Settling !EOC @@ -1132,8 +1139,6 @@ SUBROUTINE Init_SeaSalt( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) id_MOPO = Ind_('MOPO' ) id_SALA = Ind_('SALA' ) id_SALC = Ind_('SALC' ) - id_NK1 = Ind_('NK1' ) - id_SS1 = Ind_('SS1' ) id_SALACL = Ind_('SALACL') id_SALCCL = Ind_('SALCCL') id_SALAAL = Ind_('SALAAL') @@ -1298,227 +1303,7 @@ SUBROUTINE Cleanup_SeaSalt END SUBROUTINE CleanUp_SeaSalt !EOC -#ifdef TOMAS -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: srcsalt30 -! -! !DESCRIPTION: Subroutine SRCSALT30 emits sea-salt into the 30-bin sea-salt -! mass and aerosol number arrays. Sea-salt emission parameterization of -! Clarke et al. [2006] (win, 7/17/09) -!\\ -!\\ -! !INTERFACE: - - SUBROUTINE SRCSALT30( State_Grid, State_Met, TC1, TC2 ) -! -! !USES: -! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD, ONLY : ND59 - USE DIAG_MOD, ONLY : AD59_NUMB, AD59_SALT -#endif - USE ERROR_MOD, ONLY : ERROR_STOP - USE ERROR_MOD, ONLY : IT_IS_NAN - USE State_Grid_Mod, ONLY : GrdState - USE State_Met_Mod, ONLY : MetState - USE TIME_MOD, ONLY : GET_TS_EMIS - USE TOMAS_MOD, ONLY : IBINS, Xk -! -! !INPUT PARAMETERS: -! - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object -! -! !INPUT/OUTPUT PARAMETERS: -! - ! TC1 : Aerosol number tracer array [no.] - ! TC2 (REAL(fp) ) : Sea salt tracer array [kg] - REAL(fp), INTENT(INOUT) :: TC1(State_Grid%NX,State_Grid%NY,State_Grid%NZ,& - IBINS) - REAL(fp), INTENT(INOUT) :: TC2(State_Grid%NX,State_Grid%NY,State_Grid%NZ,& - IBINS) -! -! !AUTHOR: -! Contact: Win Trivitayanurak (win@cmu.edu) -! -! Arguments as Input/Output: -! ============================================================================ -! -! !REMARKS: -! References: -! ============================================================================ -! (1 ) Clarke, A.D., Owens, S., Zhou, J. " An ultrafine sea-salt flux from -! breaking waves: Implications for CCN in the remote marine atmosphere" -! JGR, 2006 -! -! !REVISION HISTORY: -! (1 ) Originally from emisnaN3clarke.f in GISS GCM-II' (win, 7/18/07) -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: I, J, L, K - INTEGER :: NTOP - REAL*4 :: FOCEAN, W10M, DTEMIS - REAL(fp) :: F100, W, NUM - REAL(fp) :: DBIN(IBINS), A(IBINS) - REAL(fp) :: A_M2, FEMIS - REAL(fp) :: SFCWINDSQR - - ! Coefficient to adjust emission in 1x1 grid (win, 4/27/08) - REAL(fp) :: COEF - -#if defined( TOMAS12 ) || defined( TOMAS15 ) - - data Dbin / & -#ifdef TOMAS15 - 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & -#endif - 9.68859E-09, 1.53797E-08, 2.44137E-08, 3.87544E-08, & - 6.15187E-08, 9.76549E-08, 1.55017E-07, 2.46075E-07, & - 3.90620E-07, 6.20070E-07, 9.84300E-07, 3.12500E-06/ - - data A / & -#ifdef TOMAS15 - 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & -#endif - 4607513.229, 9309031.200, 12961629.010, 13602132.943, & - 11441451.509, 9387934.311, 8559624.313, 7165322.549, & - 4648135.263, 2447035.933, 3885009.997, 1006980.679/ - ! make same Nk as 30 bins. - -#else - !else we are using 30 or 40 bin model - DATA Dbin / & -#ifdef TOMAS40 - 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & - 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & -#endif - 9.68859E-09, 1.22069E-08, 1.53797E-08, 1.93772E-08, 2.44137E-08, & - 3.07594E-08, 3.87544E-08, 4.88274E-08, 6.15187E-08, 7.75087E-08, & - 9.76549E-08, 1.23037E-07, 1.55017E-07, 1.95310E-07, 2.46075E-07, & - 3.10035E-07, 3.90620E-07, 4.92150E-07, 6.20070E-07, 7.81239E-07, & - 9.84300E-07, 1.24014E-06, 1.56248E-06, 1.96860E-06, 2.48028E-06, & - 3.12496E-06, 3.93720E-06, 4.96056E-06, 6.24991E-06, 7.87440E-06/ - - DATA A / & -#ifdef TOMAS40 - 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & - 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & -#endif - 1719793.975, 2887719.254, 4086059.079, 5222972.121, 6172287.155, & - 6789341.855, 6954290.435, 6647842.508, 6030292.470, 5411159.039, & - 4920485.633, 4467448.678, 4379031.834, 4180592.479, 3836983.331, & - 3328339.218, 2675909.440, 1972225.823, 1384692.112, 1062343.821, & - 913194.1118, 859176.8257, 812688.4300, 719215.3301, 580735.2991, & - 418247.5535, 273217.6572, 183340.5653, 132174.9032, 0.0000/ - -#endif - - !================================================================= - ! SRCSALT30 begins here! - !================================================================= - - ! Depending on the grid resolution - IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN - COEF = 1.e+0_fp - ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN - COEF = 1.e+0_fp - ELSE - CALL ERROR_STOP('Adjust seasalt emiss coeff for grid res.?', & - 'SRCSALT30: seasalt_mod.F90') - ENDIF - - ! Emission timestep [s] - DTEMIS = GET_TS_EMIS() - - ! Loop over grid cells - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - - ! Grid box surface area [m2] - A_M2 = State_Grid%Area_M2(I,J) - - ! Check if over ocean assuming only gridcells that are - ! at least 50% water are oceans (J. Pierce, 3/10/14) - IF ( State_Met%IsWater(I,J) ) THEN - FOCEAN = 1e+0_fp - State_Met%FRCLND(I,J) - ELSE - FOCEAN = 0.e+0_fp - ENDIF - - IF (FOCEAN > 0.5e+0_fp) THEN - - ! Wind speed at 10 m altitude [m/s] - SFCWINDSQR = State_Met%U10M(I,J)**2 + State_Met%V10M(I,J)**2 - W10M = SQRT( SFCWINDSQR ) - - ! in ocean area - calc wind speed/eqm conc - ! calculate the fraction of whitecap coverage - W = 3.84E-6 * W10M ** (3.41) - - ! Loop over bins - DO K = 1, IBINS - - F100 = A(K) - - !=============================================================== - ! Calculate sea-salt emission - !=============================================================== - NUM = F100 * W * A_M2 * FOCEAN * DTEMIS * COEF - - !=============================================================== - ! Partition sea-salt emissions through boundary layer - !=============================================================== - - ! Layer in which the PBL top occurs - NTOP = CEILING( State_Met%PBL_TOP_L(I,J)) - - ! Loop thru the boundary layer - DO L = 1, NTOP - - ! Fraction of the PBL spanned by box (I,J,L) [unitless] - FEMIS = State_Met%F_OF_PBL(I,J,L) - - !============================================================ - ! Add sea-salt number to the tracer array - !============================================================ - - TC1(I,J,L,K) = TC1(I,J,L,K) + ( NUM * FEMIS ) - TC2(I,J,L,K) = TC2(I,J,L,K) + & - NUM * SQRT( Xk(K) * Xk(K+1)) * FEMIS - - ENDDO - - !============================================================== - ! ND59 Diagnostic: Sea salt emission in [kg/box/timestep] - !============================================================== -#ifdef BPCH_DIAG - IF ( ND59 > 0) THEN - AD59_NUMB(I,J,1,k) = AD59_NUMB(I,J,1,k) + NUM - AD59_SALT(I,J,1,k) = AD59_SALT(I,J,1,k) + & - NUM*sqrt(xk(k)*xk(k+1)) - ENDIF -#endif - - ENDDO - - ENDIF - ENDDO - ENDDO - - END SUBROUTINE SRCSALT30 -!EOC -#endif #ifdef APM -!EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ @@ -1796,7 +1581,23 @@ SUBROUTINE WET_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, & DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - MASS = 0.d0 + ! Zero private loop variables + CONST = 0.0_fp + DELZ = 0.0_fp + DELZ1 = 0.0_fp + DEN = 0.0_fp + DP = 0.0_fp + MASS = 0.0_fp + OLD = 0.0_fp + P = 0.0_fp + PDP = 0.0_fp + REFF = 0.0_fp + SLIP = 0.0_fp + TEMP = 0.0_fp + TC0 = 0.0_fp + VISC = 0.0_fp + VTS = 0.0_fp + DO L = 1, State_Grid%NZ DO N = IDTEMP1, IDTEMP2 MASS(L) = MASS(L) + Spc(N)%Conc(I,J,L) diff --git a/GeosCore/set_boundary_conditions_mod.F90 b/GeosCore/set_boundary_conditions_mod.F90 new file mode 100644 index 000000000..e9692ea2c --- /dev/null +++ b/GeosCore/set_boundary_conditions_mod.F90 @@ -0,0 +1,220 @@ +#ifdef MODEL_CLASSIC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: set_boundary_condition_mod.F90 +! +! !DESCRIPTION: Module SET\_BOUNDARY\_CONDITION\_MOD sets boundary conditions +! for the GEOS-Chem "Classic" nested-grid model. +!\\ +!\\ +! !INTERFACE: + +MODULE Set_Boundary_Conditions_Mod +! +! !USES: +! + USE Precision_Mod ! For GEOS-Chem Precision (fp) + + IMPLICIT NONE + PRIVATE +! +! !PUBLIC MEMBER FUNCTIONS: +! + PUBLIC :: Set_Boundary_Conditions +! +! !REMARKS: +! This module was split for two purposes: +! (1) Avoid subroutine creep in HCO_Utilities_GC_Mod as this is +! purely GC code. +! (2) Allow for future extension if handling of boundary conditions +! will change (for example introducing rate-of-change) +! +! !REVISION HISTORY: +! 28 Jul 2023 - H.P. Lin - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +CONTAINS +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: set_boundary_conditions +! +! !DESCRIPTION: Subroutine SET\_BOUNDARY\_CONDITIONS sets the boundary +! conditions using the boundary conditions read from HEMCO for nested-grid +! simulations. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Set_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, RC ) +! +! !USES: +! + USE ErrCode_Mod, ONLY : GC_SUCCESS, GC_Error + USE Input_Opt_Mod, ONLY : OptInput + USE Species_Mod, ONLY : Species, SpcConc + USE State_Chm_Mod, ONLY : ChmState + USE State_Grid_Mod, ONLY : GrdState + USE Time_Mod, ONLY : TIMESTAMP_STRING + USE PhysConstants, ONLY : AIRMW + USE UnitConv_Mod +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Failure or success +! +! !REMARKS: +! Split off from HEMCO code (Get\_Boundary\_Conditions) in order to be called +! more frequently throughout timesteps. +! +! !REVISION HISTORY: +! 28 Jul 2023 - H.P. Lin - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + ! Scalars + INTEGER :: I, J, L, N, NA ! lon, lat, lev, spc indexes + LOGICAL :: Perturb_CH4_BC + REAL(fp) :: MW_g_CH4 ! CH4 molecular weight + + ! Strings + CHARACTER(LEN=16) :: STAMP + CHARACTER(LEN=255) :: errMsg, thisLoc + + !================================================================= + ! SET_BOUNDARY_CONDITIONS begins here! + !================================================================= + + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at Set_Boundary_Conditions (in GeosCore/set_boundary_conditions_mod.F90)' + + + ! We only need to get boundary conditions if this is a nested-grid + ! simulation. Otherwise the BoundaryCond field won't be allocated. + IF ( .not. State_Grid%NestedGrid ) RETURN + + ! Verify that incoming State_Chm%Species units are kg/kg dry air. + IF ( .not. Check_Units( State_Chm, KG_SPECIES_PER_KG_DRY_AIR ) ) THEN + IF ( Input_Opt%amIRoot ) THEN + WRITE(6, '(a)') 'Unit check failure: Current units are ' // & + UNIT_STR(State_Chm%Species(1)%Units) // & + ', expected kg/kg dry' + ENDIF + errMsg = 'Unit check failure: Cannot apply nested-grid boundary ' // & + 'conditions if units are not kg/kg dry. Your run may ' // & + ' have failed previous to this error.' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + !========================================================================= + ! Loop over grid boxes and apply BCs to the specified buffer zone + !========================================================================= + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L, N )& + !$OMP COLLAPSE( 2 ) + DO NA = 1, State_Chm%nAdvect + DO L = 1, State_Grid%NZ + + ! Get the species ID from the advected species ID + N = State_Chm%Map_Advect(NA) + + ! Optionally perturb the CH4 boundary conditions + ! Use ppb values specified in geoschem_config.yml + ! Convert to [kg/kg dry] (nbalasus, 8/31/2023) + Perturb_CH4_BC = ( State_Chm%SpcData(N)%Info%Name == "CH4" .AND. & + ( Input_Opt%ITS_A_CH4_SIM .OR. Input_Opt%ITS_A_CARBON_SIM ) .AND. & + Input_Opt%DoPerturbCH4BoundaryConditions .AND. & + ( .NOT. State_Chm%IsCH4BCPerturbed ) ) + MW_g_CH4 = State_Chm%SpcData(N)%Info%MW_g + + ! First loop over all latitudes of the nested domain + DO J = 1, State_Grid%NY + + ! West BC + DO I = 1, State_Grid%WestBuffer + IF ( Perturb_CH4_BC ) THEN + State_Chm%BoundaryCond(I,J,L,N) = State_Chm%BoundaryCond(I,J,L,N) + & + Input_Opt%CH4BoundaryConditionIncreaseWest * 1.0e-9_fp * MW_g_CH4 / AIRMW + ENDIF + State_Chm%Species(N)%Conc(I,J,L) = State_Chm%BoundaryCond(I,J,L,N) + ENDDO + + ! East BC + DO I = (State_Grid%NX-State_Grid%EastBuffer)+1, State_Grid%NX + IF ( Perturb_CH4_BC ) THEN + State_Chm%BoundaryCond(I,J,L,N) = State_Chm%BoundaryCond(I,J,L,N) + & + Input_Opt%CH4BoundaryConditionIncreaseEast * 1.0e-9_fp * MW_g_CH4 / AIRMW + ENDIF + State_Chm%Species(N)%Conc(I,J,L) = State_Chm%BoundaryCond(I,J,L,N) + ENDDO + + ENDDO + + ! Then loop over the longitudes of the nested domain + DO I = 1+State_Grid%WestBuffer,(State_Grid%NX-State_Grid%EastBuffer) + + ! South BC + DO J = 1, State_Grid%SouthBuffer + IF ( Perturb_CH4_BC ) THEN + State_Chm%BoundaryCond(I,J,L,N) = State_Chm%BoundaryCond(I,J,L,N) + & + Input_Opt%CH4BoundaryConditionIncreaseSouth * 1.0e-9_fp * MW_g_CH4 / AIRMW + ENDIF + State_Chm%Species(N)%Conc(I,J,L) = State_Chm%BoundaryCond(I,J,L,N) + ENDDO + + ! North BC + DO J = (State_Grid%NY-State_Grid%NorthBuffer)+1, State_Grid%NY + IF ( Perturb_CH4_BC ) THEN + State_Chm%BoundaryCond(I,J,L,N) = State_Chm%BoundaryCond(I,J,L,N) + & + Input_Opt%CH4BoundaryConditionIncreaseNorth * 1.0e-9_fp * MW_g_CH4 / AIRMW + ENDIF + State_Chm%Species(N)%Conc(I,J,L) = State_Chm%BoundaryCond(I,J,L,N) + ENDDO + ENDDO + + ENDDO + ENDDO + !OMP END PARALLEL DO + + ! If the boundary conditions have already been perturbed, don't do it again + IF ( Perturb_CH4_BC ) THEN + State_Chm%IsCH4BCPerturbed = .TRUE. + ENDIF + + ! Echo output. This will be at every time step, + ! so comment this out when unnecessary. + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN + STAMP = TIMESTAMP_STRING() + WRITE( 6, * ) 'SET_BOUNDARY_CONDITIONS: Done applying BCs at ', STAMP + ENDIF + + END SUBROUTINE Set_Boundary_Conditions +!EOC +END MODULE Set_Boundary_Conditions_Mod +#endif diff --git a/GeosCore/set_global_ch4_mod.F90 b/GeosCore/set_global_ch4_mod.F90 index 04f46d2d4..ff533cc2f 100644 --- a/GeosCore/set_global_ch4_mod.F90 +++ b/GeosCore/set_global_ch4_mod.F90 @@ -61,7 +61,7 @@ SUBROUTINE Set_CH4( Input_Opt, State_Chm, State_Diag, State_Grid, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : GET_TS_DYN - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -98,14 +98,28 @@ SUBROUTINE Set_CH4( Input_Opt, State_Chm, State_Diag, State_Grid, & ! ! Scalars INTEGER :: I, J, L, PBL_TOP, id_CH4, DT - CHARACTER(LEN=63) :: OrigUnit + INTEGER :: previous_units REAL(fp) :: CH4, dCH4 LOGICAL :: FOUND + ! Arrays + INTEGER, TARGET :: mapping(1) + + ! Pointers + INTEGER, POINTER :: theMapping(:) + ! Strings CHARACTER(LEN=255) :: ErrMsg CHARACTER(LEN=255) :: ThisLoc +#if defined( MODEL_GEOS ) + REAL(hp), ALLOCATABLE :: GEOS_CH4(:,:,:) + REAL(hp), ALLOCATABLE :: CH4_OFFSET(:,:) + LOGICAL :: USE_GEOS_CH4 +#endif + LOGICAL, SAVE :: FIRST = .TRUE. + CHARACTER(LEN=255) :: SRCNAME + !================================================================= ! SET_CH4 begins here! !================================================================= @@ -121,39 +135,79 @@ SUBROUTINE Set_CH4( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF ! Get species ID - id_CH4 = Ind_( 'CH4' ) + id_CH4 = Ind_( 'CH4' ) + mapping(1) = id_CH4 + theMapping => mapping ! Get dynamic timestep DT = GET_TS_DYN() + FOUND = .FALSE. + SRCNAME = '' +#if defined( MODEL_GEOS ) + ! Check for CH4 offset first + ALLOCATE(CH4_OFFSET(State_Grid%NX,State_Grid%NY)) + CH4_OFFSET(:,:) = 0.0 + CALL HCO_GC_EvalFld( Input_Opt, State_Grid, 'CH4_OFFSET', & + CH4_OFFSET, RC, FOUND=FOUND ) + IF ( .NOT. FOUND ) CH4_OFFSET = 0.0 + ! Now get CH4 concentrations + ALLOCATE(GEOS_CH4(State_Grid%NX,State_Grid%NY,State_Grid%NZ)) + GEOS_CH4(:,:,:) = 0.0 + CALL HCO_GC_EvalFld( Input_Opt, State_Grid, 'GEOS_CH4', & + GEOS_CH4, RC, FOUND=FOUND ) + USE_GEOS_CH4 = FOUND + IF ( FOUND ) SRCNAME = 'GEOS_CH4' +#endif + ! Use the NOAA spatially resolved data where available - CALL HCO_GC_EvalFld( Input_Opt, State_Grid, 'NOAA_GMD_CH4', & - State_Chm%SFC_CH4, RC, FOUND=FOUND ) + IF (.NOT. FOUND ) THEN + CALL HCO_GC_EvalFld( Input_Opt, State_Grid, 'NOAA_GMD_CH4', & + State_Chm%SFC_CH4, RC, FOUND=FOUND ) + IF ( FOUND ) SRCNAME = 'NOAA_GMD_CH4' + ENDIF IF (.NOT. FOUND ) THEN FOUND = .TRUE. ! Use the CMIP6 data from Meinshausen et al. 2017, GMD ! https://doi.org/10.5194/gmd-10-2057-2017a CALL HCO_GC_EvalFld( Input_Opt, State_Grid, 'CMIP6_Sfc_CH4', & State_Chm%SFC_CH4, RC, FOUND=FOUND ) + IF ( FOUND ) SRCNAME = 'CMIPS_Sfc_CH4' ENDIF IF (.NOT. FOUND ) THEN FOUND = .TRUE. ! Use the CMIP6 data boundary conditions processed for GCAP 2.0 CALL HCO_GC_EvalFld( Input_Opt, State_Grid, 'SfcVMR_CH4', & State_Chm%SFC_CH4, RC, FOUND=FOUND ) + IF ( FOUND ) SRCNAME = 'SfcVMR_CH4' ENDIF IF (.NOT. FOUND ) THEN ErrMsg = 'Cannot retrieve data for NOAA_GMD_CH4, CMIP6_Sfc_CH4, or ' // & 'SfcVMR_CH4 from HEMCO! Make sure the data source ' // & 'corresponds to your emissions year in HEMCO_Config.rc ' // & - '(NOAA GMD for 1978 and later; else CMIP6).' + '(NOAA GMD for 1978 and later; else CMIP6). To use the last year ' // & + 'available you can change the time cycle flag in HEMCO_Config.rc for ' // & + 'the inventory from RY to CY.' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF - ! Convert species to [v/v dry] for this routine - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'v/v dry', RC, OrigUnit=OrigUnit ) + ! Convert species to [v/v dry] aka [mol/mol dry] for this routine + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = theMapping, & + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) + + ! Add info to logfile + IF ( FOUND .AND. Input_Opt%amIRoot .AND. FIRST ) THEN + WRITE(*,*) 'Getting CH4 boundary conditions in GEOS-Chem from :'//TRIM(SRCNAME) + FIRST = .FALSE. + ENDIF ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -183,6 +237,11 @@ SUBROUTINE Set_CH4( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Prescribe methane concentrations throughout PBL DO L=1,PBL_TOP + ! In GEOS, we may be getting CH4 from a 3D field +#if defined( MODEL_GEOS ) + IF ( USE_GEOS_CH4 ) CH4 = GEOS_CH4(I,J,L) + CH4_OFFSET(I,J) +#endif + ! Compute implied CH4 flux if diagnostic is on IF ( State_Diag%Archive_CH4pseudoFlux ) THEN ! v/v dry @@ -204,8 +263,23 @@ SUBROUTINE Set_CH4( Input_Opt, State_Chm, State_Diag, State_Grid, & !$OMP END PARALLEL DO ! Convert species back to original unit - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = theMapping, & + new_units = previous_units, & + RC = RC ) + + ! Free pointer + theMapping => NULL() + +#if defined( MODEL_GEOS ) + ! Cleanup + IF(ALLOCATED(GEOS_CH4)) DEALLOCATE(GEOS_CH4) + IF(ALLOCATED(CH4_OFFSET)) DEALLOCATE(CH4_OFFSET) +#endif ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN diff --git a/GeosCore/set_prof_o3.F90 b/GeosCore/set_prof_o3.F90 deleted file mode 100644 index 2773884da..000000000 --- a/GeosCore/set_prof_o3.F90 +++ /dev/null @@ -1,242 +0,0 @@ -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: set_prof_o3 -! -! !DESCRIPTION: Subroutine SET\_PROF\_O3 sets up atmospheric profiles required -! by RRTMG in the stratosphere using a doubled version of the level scheme -! used in the CTM. First pressure and z* altitude are defined, then O3 and T -! are taken from the supplied climatology and integrated to the CTM levels -! (may be overwritten with values directly from the CTM, if desired). -! This is a stripped down version of SET\_PROF; it does O3 only. -!\\ -!\\ -! !INTERFACE: -! -SUBROUTINE SET_PROF_O3( YLAT, MONTH, DAY, T_CTM, & - P_CTM, O3_CTM, O3_TOMS, T_CLIM, & - O3_CLIM, Z_CLIM, AIR_CLIM, Input_Opt, & - State_Grid ) - -! -! !USES: -! - USE CMN_FJX_MOD - USE Input_Opt_Mod, ONLY : OptInput - USE PhysConstants ! Physical constants - USE PRECISION_MOD ! For GEOS-Chem Precision (fp) - USE State_Grid_Mod, ONLY : GrdState - - IMPLICIT NONE -! -! !INPUT PARAMETERS: -! - REAL(fp), INTENT(IN) :: YLAT ! Latitude (degrees) - INTEGER, INTENT(IN) :: MONTH ! Month - INTEGER, INTENT(IN) :: DAY ! Day *of month* - REAL(fp), INTENT(IN) :: T_CTM(L1_) ! CTM temperatures (K) - REAL(fp), INTENT(IN) :: O3_TOMS ! O3 column (DU) - REAL(fp), INTENT(IN) :: P_CTM(L1_+1) ! CTM edge pressures (hPa) - REAL(fp), INTENT(IN) :: O3_CTM(L1_) ! CTM ozone (molec/cm3) - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object -! -! !OUTPUT VARIABLES: -! - REAL(fp), INTENT(OUT) :: T_CLIM(L1_) ! Clim. temperatures (K) - REAL(fp), INTENT(OUT) :: Z_CLIM(L1_+1) ! Edge altitudes (cm) - REAL(fp), INTENT(OUT) :: O3_CLIM(L1_) ! O3 column depth (#/cm2) - REAL(fp), INTENT(OUT) :: AIR_CLIM(L1_) ! O3 column depth (#/cm2) -! -! !AUTHOR: -! Oliver Wild & Michael Prather -! -! !REMARKS: -! -! !REVISION HISTORY: -! 01 Jun 1996 - M. Prather & O. Wild - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: I, K, L, M, N, LCTM - REAL(fp) :: DLOGP,F0,T0,B0,PB,PC,XC,MASFAC,SCALEH - REAL(fp) :: PSTD(52),OREF2(51),TREF2(51) - REAL(fp) :: PROFCOL - REAL(fp), PARAMETER :: ODMAX = 200.0e+0_fp - - ! Local variables for quantities from Input_Opt - LOGICAL :: USE_ONLINE_O3 - - !================================================================= - ! SET_PROF_O3 begins here! - !================================================================= - - ! Copy fields from INPUT_OPT - USE_ONLINE_O3 = Input_Opt%USE_ONLINE_O3 - - !================================================================= - ! Set up pressure levels for O3/T climatology - assume that value - ! given for each 2 km z* level applies from 1 km below to 1 km - ! above, so select pressures at these boundaries. Surface level - ! values at 1000 mb are assumed to extend down to the actual - ! surface pressure for this lat/lon. - !================================================================= - PSTD(1) = MAX(P_CTM(1),1000.e+0_fp) - PSTD(2) = 1000.e+0_fp * 10.e+0_fp ** (-1.e+0_fp/16.e+0_fp) - DLOGP = 10.e+0_fp**(-2.e+0_fp/16.e+0_fp) - DO I=3,51 - PSTD(I) = PSTD(I-1) * DLOGP - ENDDO - PSTD(52) = 0.e+0_fp - - ! Mass factor - delta-Pressure [hPa] to delta-Column [molec/cm2] - MASFAC = 100.e+0_fp * AVO / ( AIRMW * g0 * 10.e+0_fp ) - - ! Select appropriate monthly and latitudinal profiles - ! Now use YLAT instead of Oliver's YDGRD(NSLAT) (bmy, 9/13/99) - M = MAX( 1, MIN( 12, MONTH ) ) - L = MAX( 1, MIN( 18, ( INT(YLAT) + 99 ) / 10 ) ) - - ! Temporary arrays for climatology data - DO I = 1, 51 - OREF2(I) = OREF(I,L,M) - TREF2(I) = TREF(I,L,M) - ENDDO - - ! Apportion O3 and T on supplied climatology z* levels onto CTM levels - ! with mass (pressure) weighting, assuming constant mixing ratio and - ! temperature half a layer on either side of the point supplied. - - DO I = 1, L1_ - F0 = 0.e+0_fp - T0 = 0.e+0_fp - DO K = 1, 51 - PC = MIN( P_CTM(I), PSTD(K) ) - PB = MAX( P_CTM(I+1), PSTD(K+1) ) - IF ( PC .GT. PB ) THEN - XC = ( PC - PB ) / ( P_CTM(I) - P_CTM(I+1) ) - F0 = F0 + OREF2(K)*XC - T0 = T0 + TREF2(K)*XC - ENDIF - ENDDO - T_CLIM(I) = T0 - O3_CLIM(I) = F0 * 1.e-6_fp - ENDDO - - !================================================================= - ! Calculate effective altitudes using scale height at each level - !================================================================= - Z_CLIM(1) = 0.e+0_fp - DO I = 1, L_ - SCALEH = BOLTZ * 1e+4_fp * MASFAC * T_CLIM(I) - Z_CLIM(I+1) = Z_CLIM(I) - ( LOG( P_CTM(I+1) / P_CTM(I) ) * SCALEH ) - ENDDO - Z_CLIM(L1_+1)=Z_CLIM(L1_) + ZZHT - - !================================================================= - ! Calculate column quantities for for RRTMG (which will only use - ! tropospheric values) - !================================================================= - PROFCOL = 0e+0_fp - - DO I = 1, L1_ - - ! Monthly mean air Column [molec/cm2] - AIR_CLIM(I) = ( P_CTM(I) - P_CTM(I+1) ) * MASFAC - - ! Monthly mean O3 column [molec/cm2] - O3_CLIM(I) = O3_CLIM(I) * AIR_CLIM(I) - - ! Monthly mean O3 column [DU] - PROFCOL = PROFCOL + ( O3_CLIM(I) / 2.69e+16_fp ) - ENDDO - - !! Top values are special (do not exist in CTM data) - !AIR_CLIM(L1_) = P_CTM(L1_) * MASFAC - !O3_CLIM(L1_) = O3_CLIM(L1_) * AIR_CLIM(L1_) - - !================================================================= - ! Now weight the O3 column by the observed monthly mean TOMS. - ! Missing data is denoted by the flag -999. (mje, bmy, 7/15/03) - ! - ! TOMS/SBUV MERGED TOTAL OZONE DATA, Version 8, Revision 3. - ! Resolution: 5 x 10 deg. - ! - ! Methodology (bmy, 2/12/07) - ! ---------------------------------------------------------------- - ! FAST-J comes with its own default O3 column climatology (from - ! McPeters 1992 & Nagatani 1991), which is stored in the input - ! file "jv_atms.dat". These "FAST-J default" O3 columns are used - ! in the computation of the actinic flux and other optical - ! quantities for the FAST-J photolysis. - ! - ! The TOMS/SBUV O3 columns and 1/2-monthly O3 trends (contained - ! in the TOMS_200701 directory) are read into GEOS-Chem by routine - ! READ_TOMS in "toms_mod.f". Missing values (i.e. locations where - ! there are no data) in the TOMS/SBUV O3 columns are defined by - ! the flag -999. - ! - ! After being read from disk in routine READ_TOMS, the TOMS/SBUV - ! O3 data are then passed to the FAST-J routine "set_prof.f". In - ! "set_prof.f", a test is done to make sure that the TOMS/SBUV O3 - ! columns and 1/2-monthly trends do not have any missing values - ! for (lat,lon) location for the given month. If so, then the - ! TOMS/SBUV O3 column data is interpolated to the current day and - ! is used to weight the "FAST-J default" O3 column. This - ! essentially "forces" the "FAST-J default" O3 column values to - ! better match the observations, as defined by TOMS/SBUV. - ! - ! If there are no TOMS/SBUV O3 columns (and 1/2-monthly trends) - ! at a (lat,lon) location for given month, then FAST-J will revert - ! to its own "default" climatology for that location and month. - ! Therefore, the TOMS O3 can be thought of as an "overlay" data - ! -- it is only used if it exists. - ! - ! Note that there are no TOMS/SBUV O3 columns at the higher - ! latitudes. At these latitudes, the code will revert to using - ! the "FAST-J default" O3 columns. - ! - ! As of February 2007, we have TOMS/SBUV data for 1979 thru 2005. - ! 2006 TOMS/SBUV data is incomplete as of this writing. For years - ! 2006 and onward, we use 2005 TOMS O3 columns. - ! - ! This methodology was originally adopted by Mat Evans. Symeon - ! Koumoutsaris was responsible for creating the downloading and - ! processing the TOMS O3 data files from 1979 thru 2005 in the - ! TOMS_200701 directory. - !================================================================= - - ! Updated with UCX - ! Since we now have stratospheric ozone calculated online, use - ! this instead of archived profiles for all chemistry-grid cells - ! The variable O3_CTM is obtained from State_Met%Species, and will be 0 - ! outside the chemgrid (in which case we use climatology) - - ! Scale monthly O3 profile to the daily O3 profile (if available) - DO I = 1, L1_ - - ! Use online O3 values in the chemistry grid if selected - IF ( (USE_ONLINE_O3) .and. & - (I <= State_Grid%MaxChemLev) .and. & - (O3_CTM(I) > 0e+0_fp) ) THEN - - ! Convert from molec/cm3 to molec/cm2 - O3_CLIM(I) = O3_CTM(I) * (Z_CLIM(I+1)-Z_CLIM(I)) - - ! Otherwise, use O3 values from the met fields or TOMS/SBUV - ELSEIF (O3_TOMS > 0e+0_fp) THEN - - O3_CLIM(I) = O3_CLIM(I) * ( O3_TOMS / PROFCOL ) - - ENDIF - - ENDDO - -END SUBROUTINE SET_PROF_O3 -!EOC diff --git a/GeosCore/sfcvmr_mod.F90 b/GeosCore/sfcvmr_mod.F90 index bc8bd96c1..4c8e2809f 100644 --- a/GeosCore/sfcvmr_mod.F90 +++ b/GeosCore/sfcvmr_mod.F90 @@ -145,8 +145,8 @@ SUBROUTINE FixSfcVmr_Init( Input_Opt, State_Chm, State_Grid, State_Met, RC ) iSfcMrObj => NULL() SpcInfo => NULL() - ! Verbose - IF ( Input_Opt%amIRoot ) THEN + ! Verbose output -- only when debug printout is on (bmy, 05 Dec 2022) + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 100 ) 100 FORMAT('--- Initialize surface boundary conditions from input file ---') ENDIF @@ -188,7 +188,9 @@ SUBROUTINE FixSfcVmr_Init( Input_Opt, State_Chm, State_Grid, State_Met, RC ) iSfcMrObj%FldName = TRIM(Prefix)//TRIM(SpcInfo%Name) iSfcMrObj%Next => SfcMrHead SfcMrHead => iSfcMrObj - IF ( Input_Opt%amIRoot ) THEN + + ! Only write messages if debug printout is on (bmy, 05 Dec 2022) + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose) THEN WRITE( 6, 110 ) TRIM( SpcInfo%Name ), TRIM( iSfcMrObj%FldName ) 110 FORMAT( '--> ', a, ' will use prescribed surface boundary ', & 'conditions from field ', a ) @@ -202,8 +204,9 @@ SUBROUTINE FixSfcVmr_Init( Input_Opt, State_Chm, State_Grid, State_Met, RC ) RC = GC_SUCCESS ENDDO - ! If successful, print message - IF ( Input_Opt%amIRoot .AND. RC == GC_SUCCESS) THEN + ! If successful, print message + ! Now only print when debug printout is on (bmy, 05 Dec 2022) + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose .AND. RC == GC_SUCCESS) THEN WRITE( 6, 120 ) 120 FORMAT( '--- Finished initializing surface boundary conditions ---' ) ENDIF diff --git a/GeosCore/sulfate_mod.F90 b/GeosCore/sulfate_mod.F90 index 4d70837fb..12931ac31 100644 --- a/GeosCore/sulfate_mod.F90 +++ b/GeosCore/sulfate_mod.F90 @@ -120,9 +120,6 @@ MODULE SULFATE_MOD ! LVOLC : Number of volcanic levels (20) [unitless] !======================================================================== - ! Time variable - INTEGER :: ELAPSED_SEC - ! Allocatable arrays REAL(fp), ALLOCATABLE :: DMSo(:,:) REAL(fp), ALLOCATABLE :: PMSA_DMS(:,:,:) @@ -171,7 +168,7 @@ MODULE SULFATE_MOD REAL(fp) :: TS_EMIS ! Species ID flags - INTEGER :: id_AS, id_AHS, id_AW1 + INTEGER :: id_AS, id_AHS, id_AW01 INTEGER :: id_DAL1, id_DAL2, id_DAL3 INTEGER :: id_DAL4, id_DMS, id_DST1 INTEGER :: id_DST2, id_DST3, id_DST4 @@ -179,10 +176,10 @@ MODULE SULFATE_MOD INTEGER :: id_MSA, id_NH3, id_NH4 INTEGER :: id_NH4aq, id_NIT, id_NITd1 INTEGER :: id_NITd2, id_NITd3, id_NITd4 - INTEGER :: id_NITs, id_NK1, id_NK5 - INTEGER :: id_NK8, id_NK10, id_NK20 + INTEGER :: id_NITs, id_NK01, id_NK05 + INTEGER :: id_NK08, id_NK10, id_NK20 INTEGER :: id_NO3, id_O3, id_OH - INTEGER :: id_SALA, id_SALC, id_SF1 + INTEGER :: id_SALA, id_SALC, id_SF01 INTEGER :: id_SO2, id_SO4, id_SO4aq INTEGER :: id_SO4d1, id_SO4d2, id_SO4d3 INTEGER :: id_SO4d4, id_SO4s, id_pFe @@ -235,10 +232,10 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : GET_MONTH USE TIME_MOD, ONLY : GET_TS_CHEM - USE TIME_MOD, ONLY : GET_ELAPSED_SEC USE TIME_MOD, ONLY : ITS_A_NEW_MONTH + USE Timers_Mod, ONLY : Timer_End, Timer_Start USE UCX_MOD, ONLY : SETTLE_STRAT_AER - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod #ifdef APM USE HCO_STATE_MOD, ONLY : HCO_GetHcoID USE APM_DRIV_MOD, ONLY : EMITNH3,EMITSO2 @@ -275,10 +272,9 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Scalars LOGICAL :: LGRAVSTRAT LOGICAL :: LDSTUP - LOGICAL :: prtDebug INTEGER :: I, J, L, N, MONTH REAL(fp) :: DTCHEM - CHARACTER(LEN=63) :: OrigUnit + INTEGER :: previous_units ! Strings CHARACTER(LEN=255) :: ErrMsg, ThisLoc @@ -306,9 +302,6 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Initialize pointers Spc => State_Chm%Species ! Chemistry species [kg] - ! Should we print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Get current month MONTH = GET_MONTH() @@ -344,9 +337,6 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF - ! Store NTIME in a shadow variable - ELAPSED_SEC = GET_ELAPSED_SEC() - ! DTCHEM is the chemistry timestep in seconds DTCHEM = GET_TS_CHEM() @@ -369,10 +359,9 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & #ifdef APM IDNH3 = HCO_GetHcoID( 'NH3', HcoState ) - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( L, J, I, A_M2 ) & - !$OMP SCHEDULE( DYNAMIC ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( L, J, I, A_M2 ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -389,10 +378,9 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & !$OMP END PARALLEL DO IDSO2 = HCO_GetHcoID( 'SO2', HcoState ) - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( L, J, I, A_M2 ) & - !$OMP SCHEDULE( DYNAMIC ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( L, J, I, A_M2 ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -424,8 +412,8 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & PACL = 0e+0_fp PCCL = 0e+0_fp #ifdef APM - PSO4_SO2APM = 0d0 - PSO4_SO2SEA = 0d0 + PSO4_SO2APM = 0e+0_fp + PSO4_SO2SEA = 0e+0_fp #endif #ifdef TOMAS PSO4_SO2AQ = 0e+0_fp ! For TOMAS microphysics @@ -446,7 +434,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_SO4s > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_SO4s, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, SO4S' ) ENDIF ENDIF @@ -455,7 +443,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_NITs > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_NITs, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, NITS' ) ENDIF ENDIF @@ -469,7 +457,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_SO4d1 > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_SO4d1, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, SO4d1') ENDIF ENDIF @@ -478,7 +466,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_SO4d2 > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_SO4d2, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, SO4d2') ENDIF ENDIF @@ -487,7 +475,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_SO4d3 > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_SO4d3, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, SO4d3') ENDIF ENDIF @@ -496,7 +484,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_SO4d4 > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_SO4d4, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, SO4d4') ENDIF ENDIF @@ -505,7 +493,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_NITd1 > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_NITd1, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, NITd1') ENDIF ENDIF @@ -514,7 +502,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_NITd2 > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_NITd2, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, NITd2') ENDIF ENDIF @@ -523,7 +511,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_NITd3 > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_NITd3, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, NITd3') ENDIF ENDIF @@ -532,7 +520,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( id_NITd4 > 0 ) THEN CALL GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Met, id_NITd4, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, NITd4') ENDIF ENDIF @@ -542,20 +530,43 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & IF ( LGRAVSTRAT ) THEN CALL SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, & State_Met, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: GRAV_SET, STRAT' ) ENDIF ENDIF - ! Convert species to [v/v dry] - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'v/v dry', RC, OrigUnit=OrigUnit ) + ! Halt aerosol chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Aerosol chem", RC ) + ENDIF + + ! Convert species to [v/v dry] aka [mol/mol dry] + ! NOTE: For TOMAS, convert all species units, in order not to + ! break internal unit conversions (Bob Yantosca, 11 Apr 2024) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & +#ifndef TOMAS + mapping = State_Chm%Map_Advect, & +#endif + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'Start of CHEM_SULFATE in sulfate_mod.F90') RETURN ENDIF - IF ( prtDebug ) THEN + + ! Start aerosol chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Aerosol chem", RC ) + ENDIF + + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CONVERT UNITS' ) ENDIF @@ -576,7 +587,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF ! Debug info - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_DMS' ) ENDIF @@ -593,7 +604,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_H2O2' ) ENDIF @@ -613,7 +624,7 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & ENDIF ! Debug info - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_SO2' ) ENDIF @@ -630,12 +641,12 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_SO4' ) ENDIF #ifdef TOMAS - !----------------------------------------------------------------- + !--------------------------------------------------------------------- ! For TOMAS microphysics: ! ! SO4 from aqueous chemistry of SO2 (in-cloud oxidation) @@ -644,14 +655,25 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & ! aerosol by TOMAS subroutine AQOXID. NOTE: This may be moved ! to tomas_mod.F90 in the future, but for now it still needs to get ! the PSO4_SO2AQ value while CHEMSULFATE is called - !----------------------------------------------------------------- - CALL CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, State_Met, RC ) - IF ( prtDebug ) CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_SO4_AQ' ) + !--------------------------------------------------------------------- + CALL CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, & + State_Met, State_Diag, RC ) + + ! Trap potential errors + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error encountered in "CHEM_SO4_AQ"!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_SO4_AQ' ) + ENDIF #endif ! MSA CALL CHEM_MSA( Input_Opt, State_Chm, State_Grid, State_Met, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_MSA' ) ENDIF @@ -659,13 +681,13 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & ! CHEM_NIT includes a source term from sea salt aerosols, so keep ! here. CALL CHEM_NIT( Input_Opt, State_Chm, State_Grid, State_Met, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_NIT' ) ENDIF ! Calculate the HCl uptake by alkalinity, xnw CALL CHEM_CL( Input_Opt, State_Met, State_Chm, State_Grid, RC ) - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_CL' ) ENDIF @@ -675,15 +697,38 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & ! FullRun = F: Just set up Cloud pH & related parameters, and exit !--------------------------------------------------------------------- - ! Convert species to [v/v dry] - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'v/v dry', RC, OrigUnit=OrigUnit ) + ! Halt aerosol chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Aerosol chem", RC ) + ENDIF + + ! Convert species to [v/v dry] aka [mol/mol dry] + ! NOTE: For TOMAS, convert all species units, in order not to + ! break internal unit conversions (Bob Yantosca, 11 Apr 2024) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & +#ifndef TOMAS + mapping = State_Chm%Map_Advect, & +#endif + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'Start of CHEM_SULFATE in sulfate_mod.F90') RETURN ENDIF - IF ( prtDebug ) THEN + + ! Start aerosol chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Aerosol chem", RC ) + ENDIF + + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CONVERT UNITS' ) ENDIF @@ -698,21 +743,42 @@ SUBROUTINE CHEMSULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, & RETURN ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### CHEMSULFATE: a CHEM_SO2 false' ) ENDIF ENDIF ! FullRun + ! Halt aerosol chem timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "=> Aerosol chem", RC ) + ENDIF + ! Convert species units back to original unit - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + ! NOTE: For TOMAS, convert all species units, in order not to + ! break internal unit conversions (Bob Yantosca, 11 Apr 2024) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & +#ifndef TOMAS + mapping = State_Chm%Map_Advect, & +#endif + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'End of CHEM_SULFATE in sulfate_mod.F90') RETURN ENDIF + ! Start aerosol chem timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "=> Aerosol chem", RC ) + ENDIF + ! Free pointer Spc => NULL() @@ -748,10 +814,11 @@ SUBROUTINE EMISSSULFATETOMAS( Input_Opt, State_Chm, State_Grid, & USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState - USE TOMAS_MOD, ONLY : IBINS, ICOMP, IDIAG + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE TOMAS_MOD, ONLY : ICOMP, IDIAG USE TOMAS_MOD, ONLY : NH4BULKTOBIN USE TOMAS_MOD, ONLY : SRTNH4 - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -777,41 +844,63 @@ SUBROUTINE EMISSSULFATETOMAS( Input_Opt, State_Chm, State_Grid, & ! ! Fields for TOMAS simulation REAL*8 :: BINMASS(State_Grid%NX,State_Grid%NY,State_Grid%NZ, & - IBINS*ICOMP) + State_Chm%nTomasBins*ICOMP) + INTEGER :: IBINS INTEGER :: TID, I, J, L, M INTEGER :: ii=53, jj=29, ll=1 REAL(fp) :: NH4_CONC - CHARACTER(LEN=63):: OrigUnit + INTEGER :: previous_units ! Pointers TYPE(SpcConc), POINTER :: Spc(:) ! Arrays - REAL(fp) :: tempnh4(ibins) - REAL(fp) :: MK_TEMP2(IBINS) + REAL(fp) :: tempnh4(State_Chm%nTomasBins) + REAL(fp) :: MK_TEMP2(State_Chm%nTomasBins) !================================================================= ! EMISSSULFATETOMAS begins here! !================================================================= + ! Halt HEMCO timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "HEMCO", RC ) + ENDIF + ! Convert species to [kg] for TOMAS. This will be removed once ! TOMAS uses mixing ratio instead of mass as tracer units (ewl, 9/11/15) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = KG_SPECIES, & + previous_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'Start of EMISSSULFATETOMAS in sulfate_mod.F90') RETURN ENDIF + ! Start HEMCO timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "HEMCO", RC ) + ENDIF + ! Point to chemical species array [kg] Spc => State_Chm%Species - IF (id_SF1 > 0 .and. id_NK1 > 0 ) THEN + ! Number of bins + IBINS = State_Chm%nTomasBins + + IF (id_SF01 > 0 .and. id_NK01 > 0 ) THEN ! Get NH4 and aerosol water into the same array DO M = 1, IBINS*(ICOMP-IDIAG) - BINMASS(:,:,:,M) = Spc(id_SF1+M-1)%Conc(:,:,:) + BINMASS(:,:,:,M) = Spc(id_SF01+M-1)%Conc(:,:,:) ENDDO IF ( SRTNH4 > 0 ) THEN @@ -828,7 +917,7 @@ SUBROUTINE EMISSSULFATETOMAS( Input_Opt, State_Chm, State_Grid, & ! Change pointer to a variable to avoid array temporary ! (bmy, 7/7/17) DO M = 1, IBINS - MK_TEMP2(M) = Spc(id_SF1+M-1)%Conc(I,J,L) + MK_TEMP2(M) = Spc(id_SF01+M-1)%Conc(I,J,L) ENDDO NH4_CONC = Spc(id_NH4)%Conc(I,J,L) CALL NH4BULKTOBIN( MK_TEMP2, NH4_CONC, TEMPNH4 ) @@ -844,32 +933,49 @@ SUBROUTINE EMISSSULFATETOMAS( Input_Opt, State_Chm, State_Grid, & TID = IBINS*(ICOMP-1) +1 DO M = 1, IBINS - BINMASS(:,:,:,TID+M-1) = Spc(id_AW1+M-1)%Conc(:,:,:) + BINMASS(:,:,:,TID+M-1) = Spc(id_AW01+M-1)%Conc(:,:,:) ENDDO - !IF ( id_SF1 > 0 ) THEN + !IF ( id_SF01 > 0 ) THEN CALL SRCSF30( Input_Opt, State_Grid, State_Met, & State_Chm, BINMASS(:,:,:,:), RC ) ! Return the aerosol mass after emission subroutine to Spc ! excluding the NH4 aerosol and aerosol water (win, 9/27/08) DO M = 1, IBINS*(ICOMP-IDIAG) - Spc(id_SF1+M-1)%Conc(:,:,:) = BINMASS(:,:,:,M) + Spc(id_SF01+M-1)%Conc(:,:,:) = BINMASS(:,:,:,M) ENDDO ENDIF ! Free pointer NULLIFY( Spc ) + ! Halt HEMCO timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "HEMCO", RC ) + ENDIF + ! Convert species back to original units (ewl, 9/11/15) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'End of EMISSSULFATETOMAS in sulfate_mod.F90') RETURN ENDIF + ! Start HEMCO timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "HEMCO", RC ) + ENDIF + END SUBROUTINE EMISSSULFATETOMAS !EOC #endif @@ -890,17 +996,13 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD ! ND13 (for now) - USE DIAG_MOD, ONLY : AD59_SULF, AD59_NUMB -#endif USE ERROR_MOD, ONLY : ERROR_STOP, IT_IS_NAN USE Input_Opt_Mod, ONLY : OptInput USE Species_Mod, ONLY : SpcConc USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE State_Chm_Mod, ONLY : ChmState - USE TOMAS_MOD, ONLY : IBINS, AVGMASS, ICOMP + USE TOMAS_MOD, ONLY : AVGMASS, ICOMP USE TOMAS_MOD, ONLY : Xk USE TOMAS_MOD, ONLY : SUBGRIDCOAG, MNFIX USE TOMAS_MOD, ONLY : SRTSO4, SRTNH4, DEBUGPRINT @@ -916,9 +1018,11 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object - REAL(fp), INTENT(INOUT) :: TC2(State_Grid%NX,State_Grid%NY,State_Grid%NZ, & - IBINS*ICOMP) + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object + REAL(fp), INTENT(INOUT) :: TC2(State_Grid%NX, & + State_Grid%NY, & + State_Grid%NZ, & + State_Chm%nTomasBins*ICOMP) ! ! !OUTPUT PARAMETERS: ! @@ -941,45 +1045,25 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) REAL*8 :: SO4an(State_Grid%NX,State_Grid%NY,State_Grid%NZ) REAL*8 :: SO4bf(State_Grid%NX,State_Grid%NY) REAL*8 :: SO4anbf(State_Grid%NX,State_Grid%NY,2) - REAL*8 BFRAC(IBINS) ! Mass fraction emitted to each bin - -#if defined( TOMAS12) || defined( TOMAS15) - DATA BFRAC/ & -# if defined( TOMAS15) - 0.0d0 , 0.0d0 , 0.0d0, & -# endif - 4.3760E-02, 6.2140E-02, 3.6990E-02, 1.8270E-02, & - 4.2720E-02, 1.1251E-01, 1.9552E-01, 2.2060E-01, & - 1.6158E-01, 7.6810E-02, 2.8884E-02, 2.0027E-04/ - -#else - - DATA BFRAC/ & -# if defined( TOMAS40) - 0.000d00 , 0.000d00 , 0.000d00 , 0.000d00 , 0.000d00 , & - 0.000d00 , 0.000d00 , 0.000d00 , 0.000d00 , 0.000d00 , & -# endif - 1.728d-02, 2.648d-02, 3.190d-02, 3.024d-02, 2.277d-02, & - 1.422d-02, 9.029d-03, 9.241d-03, 1.531d-02, 2.741d-02, & - 4.529d-02, 6.722d-02, 8.932d-02, 1.062d-01, 1.130d-01, & - 1.076d-01, 9.168d-02, 6.990d-02, 4.769d-02, 2.912d-02, & - 1.591d-02, 7.776d-03, 3.401d-03, 1.331d-03, 4.664d-04, & - 1.462d-04, 4.100d-05, 1.029d-05, 2.311d-06, 4.645d-07/ -#endif - - REAL(fp) :: NDISTINIT(IBINS) - REAL(fp) :: NDISTFINAL(IBINS) - REAL(fp) :: MADDFINAL(IBINS) - REAL(fp) :: NDIST(IBINS), MDIST(IBINS,ICOMP) - REAL(fp) :: NDIST2(IBINS), MDIST2(IBINS,ICOMP) + REAL*8 :: BFRAC(State_Chm%nTomasBins) + + REAL(fp) :: NDISTINIT(State_Chm%nTomasBins) + REAL(fp) :: NDISTFINAL(State_Chm%nTomasBins) + REAL(fp) :: MADDFINAL(State_Chm%nTomasBins) + REAL(fp) :: NDIST(State_Chm%nTomasBins) + Real(fp) :: MDIST(State_Chm%nTomasBins,ICOMP) + REAL(fp) :: NDIST2(State_Chm%nTomasBins) + REAL(fp) :: MDIST2(State_Chm%nTomasBins,ICOMP) REAL*4 :: TSCALE, BOXVOL, TEMP, PRES - !REAL(fp) :: N0(State_Grid%NZ,IBINS) - !REAL(fp) :: M0(State_Grid%NZ,IBINS) - REAL(fp) :: Ndiag(IBINS), Mdiag(IBINS) + !REAL(fp) :: N0(State_Grid%NZ,State_Chm%nTomasBins) + !REAL(fp) :: M0(State_Grid%NZ,State_Chm%nTomasBins) + REAL(fp) :: Ndiag(State_Chm%nTomasBins) + REAL(fp) :: Mdiag(State_Chm%nTomasBins) REAL(fp) :: MADDTOTAL !optimization variable for diag - !REAL(fp) :: Avginit(IBINS), Avgfinal(IBINS) - !REAL(fp) :: Avginner(IBINS) + !REAL(fp) :: Avginit(State_Chm%nTomasBins) + !REAL(fp) :: Avgfinal(State_Chm%nTomasBins) + !REAL(fp) :: Avginner(State_Chm%nTomasBins) REAL(fp) :: AREA(State_Grid%NX, State_Grid%NY) !REAL(fp) :: AREA3D(State_Grid%NX, State_Grid%NY,2) @@ -990,8 +1074,8 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) TYPE(SpcConc), POINTER :: TC1(:) INTEGER :: N_TRACERS - - LOGICAL :: ERRORSWITCH, SGCOAG = .TRUE. + INTEGER :: IBINS + LOGICAL :: ERRORSWITCH, SGCOAG = .FALSE. ! bc,jrp - turn off subgridcoag 18/12/23 INTEGER :: FLAG, ERR logical :: pdbug !(temporary) win, 10/24/07 !integer :: ii, jj, ll @@ -1005,7 +1089,7 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) real*8 dummy ! For fields from Input_Opt - LOGICAL :: prtDebug, LNLPBL + LOGICAL :: LNLPBL LOGICAL :: jkdbg=.true. ! Strings @@ -1022,7 +1106,6 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) Ptr3D => NULL() ! COpy values from Input_Opt - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) LNLPBL = Input_Opt%LNLPBL ! Import emissions from HEMCO (through HEMCO state) @@ -1037,21 +1120,49 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) AREA = HcoState%Grid%AREA_M2%Val(:,:) !AREA3D(:,:,1) = AREA(:,:) !AREA3D(:,:,2) = AREA(:,:) - + + ! comment out if shut off subgridcoag bc,14/12/23 ! Define subgrid coagulation timescale (win, 10/28/08) - IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN - TSCALE = 10.*3600. ! 10 hours - ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN - TSCALE = 5.*3600. - ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN - TSCALE = 1.*3600. - ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN - TSCALE = 0.5*3600. - ENDIF + !IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN + ! TSCALE = 10.0_fp*3600.0_fp ! 10 hours + !ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN + TSCALE = 5.0_fp*3600.0_fp + !!ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN + ! TSCALE = 1.0_fp*3600.0_fp + !ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN + ! TSCALE = 0.5_fp*3600.0_fp + !ENDIF ! Point to species array TC1 => State_Chm%Species + ! Number of bins + IBINS = State_Chm%nTomasBins + + ! Mass fraction emitted to each bin +#if defined( TOMAS12) || defined( TOMAS15) + BFRAC = [ & +# if defined( TOMAS15) + 0.0e+0, 0.0e+0, 0.0e+0, & +# endif + 4.3760e-02, 6.2140e-02, 3.6990e-02, 1.8270e-02, & + 4.2720e-02, 1.1251e-01, 1.9552e-01, 2.2060e-01, & + 1.6158e-01, 7.6810e-02, 2.8884e-02, 2.0027e-04 ] + +#else( + BFRAC = [ & +# if defined( TOMAS40) + 0.0e+0, 0.0e+0, 0.0e+0, 0.0e+0, 0.0e+0, & + 0.0e+0, 0.0e+0, 0.0e+0, 0.0e+0, 0.0e+0, & +# endif + 1.728e-02, 2.648e-02, 3.190e-02, 3.024e-02, 2.277e-02, & + 1.422e-02, 9.029e-03, 9.241e-03, 1.531e-02, 2.741e-02, & + 4.529e-02, 6.722e-02, 8.932e-02, 1.062e-01, 1.130e-01, & + 1.076e-01, 9.168e-02, 6.990e-02, 4.769e-02, 2.912e-02, & + 1.591e-02, 7.776e-03, 3.401e-03, 1.331e-03, 4.664e-04, & + 1.462e-04, 4.100e-05, 1.029e-05, 2.311e-06, 4.645e-07 ] +#endif + !================================================================ ! READ IN HEMCO EMISSIONS !================================================================ @@ -1170,11 +1281,11 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) !============================================================= IF ( SGCOAG ) THEN -! ewl: TC1 = Spc(:,:,:,id_NK1:id_NK1+IBINS-1) +! ewl: TC1 = Spc(:,:,:,id_NK01:id_NK01+IBINS-1) !save number and mass before emission !DO M = 1, IBINS - ! N0(:,M) = TC1(id_NK1+M-1)%Conc(I,J,:) + ! N0(:,M) = TC1(id_NK01+M-1)%Conc(I,J,:) !ENDDO !M0(:,:) = TC2(I,J,:,1:IBINS) @@ -1190,7 +1301,7 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) !sfarina - sqrt is expensive. !NDISTINIT(K) = SO4(L) * BFRAC(K) / ( SQRT( XK(K)*XK(K+1) ) ) !set existing number of particles - NDIST(K) = TC1(id_NK1+K-1)%Conc(I,J,L) + NDIST(K) = TC1(id_NK01+K-1)%Conc(I,J,L) !sfarina - what are the chances aerosol water and ammonium ! are properly equilibrated? DO C = 1, ICOMP @@ -1287,7 +1398,7 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) 'after SUBGRIDCOAG at ',I,J,L DO K = 1, IBINS - TC1(id_NK1+K-1)%Conc(I,J,L) = NDIST2(K) + TC1(id_NK01+K-1)%Conc(I,J,L) = NDIST2(K) DO C=1,ICOMP TC2(I,J,L,K+(C-1)*IBINS) = MDIST2(K,C) ENDDO @@ -1300,7 +1411,7 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) ! !DO K = 1, IBINS !!sfarina debug - !if(TC1(id_NK1+K-1)%Conc(I,J,L)-N0(L,K) < 0d0) then + !if(TC1(id_NK01+K-1)%Conc(I,J,L)-N0(L,K) < 0d0) then ! write(*,*) '"Negative NK emis" details:' ! write(*,*) 'NTOP ', NTOP ! write(*,*) 'S_SO4: ', S_SO4 @@ -1308,7 +1419,7 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) ! write(*,*) 'EFRAC(L): ', EFRAC(L) ! DO Bi=1,IBINS ! write(*,*) 'Bin ',Bi - ! write(*,*) 'n0, TC1 ', N0(l,bi), TC1(id_NK1+Bi-1)%Conc(I,J,L) + ! write(*,*) 'n0, TC1 ', N0(l,bi), TC1(id_NK01+Bi-1)%Conc(I,J,L) ! write(*,*) 'ndist1,2 ', NDIST(Bi), NDIST2(Bi) ! write(*,*) 'ndistfinal ', NDISTFINAL(Bi) ! write(*,*) 'MADDFINAL ', MADDFINAL(Bi) @@ -1334,40 +1445,6 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) ! [kg S/box/timestep] and the corresponding ! number emission [no./box/timestep] !============================================================== -#ifdef BPCH_DIAG - IF ( ND59 > 0 ) THEN - !print*, 'JACK IN ND59 SULFATE' - DO K = 1, IBINS - !if(TC2(I,J,L,K)-M0(L,K) < 0d0) - ! print *,'Negative SF emis ',TC2(I,J,L,K)-M0(L,K), & - ! 'at',I,J,L,K - !if(TC1(id_NK1+K-1)%Conc(I,J,L)-N0(L,K) < 0d0) then - ! print *,'Negative NK emis ',TC1(id_NK1+K-1)%Conc(I,J,L)-N0(L,K), & - ! 'at',I,J,L,K - ! print *,'tc1, N0 ',TC1(id_NK1+K-1)%Conc(I,J,L),N0(L,K) - !end if - - !sfarina - I have studied this extensively and determined that - !negative NK emis as defined here is not an accurate statement. - !The particle number in a given bin IS reduced by this - !subroutine, but it is not reduced by emission. Particle - !number is reduced by mnfix. - !if the bin is just about to boil over, that added sulfate mass - !will trigger a big particle shift in mnfix and it will look - !like a 'negative number emission' event as defined by this - !inequality - - !sfarina - changing the definition of this diagnostic to ignore - ! changes to the distribution by mnfix - !AD59_SULF(I,J,1,K) = AD59_SULF(I,J,1,K) + & - ! (TC2(I,J,L,K)-M0(L,K))*S_SO4 - !AD59_NUMB(I,J,1,K) = AD59_NUMB(I,J,1,K) + - ! TC1(id_NK1+K-1)%Conc(I,J,L)-N0(L,K) & - AD59_SULF(I,J,1,K) = AD59_SULF(I,J,1,K) + Mdiag(K) - AD59_NUMB(I,J,1,K) = AD59_NUMB(I,J,1,K) + Ndiag(K) - ENDDO - ENDIF -#endif ELSE ! Distributing primary emission without sub-grid coagulation @@ -1379,35 +1456,13 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) DO L = 1, State_Grid%NZ SO4(L) = TSO4 * EFRAC(L) DO K = 1, IBINS - TC1(id_NK1+K-1)%Conc(I,J,L) = TC1(id_NK1+K-1)%Conc(I,J,L) + & + TC1(id_NK01+K-1)%Conc(I,J,L) = TC1(id_NK01+K-1)%Conc(I,J,L) + & ( SO4(L) * DTSRCE * BFRAC(K) / AVGMASS(K) ) TC2(I,J,L,K) = TC2(I,J,L,K) + & ( SO4(L) * DTSRCE * BFRAC(K) ) ENDDO ENDDO -#ifdef BPCH_DIAG - !============================================================== - ! ND59 Diagnostic: Size-resolved primary sulfate emission in - ! [kg S/box/timestep] and the corresponding - ! number emission [no./box/timestep] - !============================================================== - IF ( ND59 > 0 ) THEN - SO4anbf(:,:,1) = SO4an(:,:,1) + SO4bf(:,:) - SO4anbf(:,:,2) = SO4an(:,:,2) - - DO L = 1, 2 - DO K = 1, IBINS - AD59_SULF(I,J,L,K) = AD59_SULF(I,J,L,K) + & - ( SO4anbf(I,J,L) * BFRAC(K) * S_SO4 * DTSRCE ) - AD59_NUMB(I,J,L,K) = AD59_NUMB(I,J,L,K) + & - ( SO4anbf(I,J,L) * BFRAC(K) / AVGMASS(K) * DTSRCE ) - ENDDO - ENDDO - - ENDIF -#endif - ENDIF !SGCOAG ENDDO @@ -1416,7 +1471,7 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) NULLIFY(TC1) - IF ( prtDebug ) print *,' ### Finish SRCSF30' + IF ( Input_Opt%Verbose ) print *,' ### Finish SRCSF30' END SUBROUTINE SRCSF30 #endif @@ -1447,14 +1502,7 @@ SUBROUTINE GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE Species_Mod, ONLY : Species - USE TIME_MOD, ONLY : GET_ELAPSED_SEC USE TIME_MOD, ONLY : GET_TS_CHEM -#ifdef TOMAS -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD - USE DIAG_MOD, ONLY : AD44 -#endif -#endif ! ! !INPUT PARAMETERS: ! @@ -1746,44 +1794,6 @@ SUBROUTINE GRAV_SETTLING( Input_Opt, State_Chm, State_Diag, State_Grid, & * TC(I,J,L+1) ) ENDDO - !============================================================== - ! DIAGNOSTIC: Drydep flux [molec/cm2/s] - ! (specifically sea salt loss diagnostics) - !============================================================== -#ifdef TOMAS -#ifdef BPCH_DIAG - !----------------------------------------------------------- - ! ND44 DIAGNOSTIC (bpch) - ! Dry deposition flux loss [molec/cm2/s] - ! - ! NOTE: Bpch diagnostics are being phased out. - !----------------------------------------------------------- - IF ( ND44 > 0 ) THEN - - ! Initialize - TOT1 = 0e+0_fp - TOT2 = 0e+0_fp - - ! Compute column totals of TCO(:) and TC(I,J,:,N) - DO L = 1, State_Grid%NZ - TOT1 = TOT1 + TC0(L) - TOT2 = TOT2 + TC(I,J,L) - ENDDO - - ! Surface area [cm2] - AREA_CM2 = State_Grid%Area_M2(I,J) * 1e+4_fp - - ! Convert sea salt/dust flux from [kg/s] to [molec/cm2/s] - FLUX = ( TOT1 - TOT2 ) / DTCHEM - FLUX = FLUX * AVO / ( MW_g * 1.e-3_fp ) / AREA_CM2 - - ! Store in global AD44 array for bpch diagnostic output - AD44(I,J,DryDep_Id,1) = AD44(I,J,DryDep_Id,1) + FLUX - - ENDIF -#endif -#endif - !----------------------------------------------------------- ! HISTORY (aka netCDF diagnostics) ! Dry deposition flux loss [molec/cm2/s] @@ -2657,16 +2667,18 @@ SUBROUTINE CHEM_SO2( Input_Opt, State_Chm, State_Diag, State_Grid, & !$OMP PRIVATE( HCHO0, HMSc, HMS0, OH0, KaqHCHO )& !$OMP PRIVATE( KaqHMS, KaqHMS2, L7, L7S, L7_b )& !$OMP PRIVATE( L7S_b, L8, L8S, LSTOT_HMS )& - !$OMP SCHEDULE( DYNAMIC, 1 ) + !$OMP COLLAPSE( 3 )& + !$OMP SCHEDULE( DYNAMIC, 24 ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX ! Initialize for safety's sake - Ld = 0.0_fp - LSTOT0 = 0.0_fp - LSTOT = 0.0_fp - LSTOT_HMS = 0.0_fp + Ld = 0.0_fp + LSTOT0 = 0.0_fp + LSTOT = 0.0_fp + LSTOT_HMS = 0.0_fp + one_m_KRATE = 0.0_fp ! Skip non-chemistry boxes IF ( .not. State_Met%InChemGrid(I,J,L) ) CYCLE @@ -4320,7 +4332,6 @@ SUBROUTINE SEASALT_CHEM( I, J, L, & USE State_Diag_Mod, ONLY : DgnState USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : GET_TS_CHEM - USE TIME_MOD, ONLY : GET_ELAPSED_SEC USE TIME_MOD, ONLY : GET_MONTH USE TIME_MOD, ONLY : ITS_A_NEW_MONTH ! @@ -4792,8 +4803,8 @@ SUBROUTINE DUST_CHEM( I, J, L, & USE Species_Mod, ONLY : SpcConc USE State_Chm_Mod, ONLY : ChmState USE State_Met_Mod, ONLY : MetState - USE TIME_MOD, ONLY : GET_TS_CHEM, GET_ELAPSED_SEC - USE TIME_MOD, ONLY : GET_ELAPSED_SEC, GET_MONTH + USE TIME_MOD, ONLY : GET_TS_CHEM + USE TIME_MOD, ONLY : GET_MONTH USE TIME_MOD, ONLY : ITS_A_NEW_MONTH ! ! !INPUT PARAMETERS: @@ -7523,8 +7534,8 @@ END SUBROUTINE HET_DROP_CHEM !\\ ! !INTERFACE: ! - SUBROUTINE CHEM_SO4( Input_Opt, State_Chm, State_Diag, State_Grid, & - State_Met, RC ) + SUBROUTINE CHEM_SO4( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) ! ! !USES: ! @@ -7589,13 +7600,9 @@ SUBROUTINE CHEM_SO4( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Pointers TYPE(SpcConc), POINTER :: Spc(:) -#ifdef APM - REAL(fp), POINTER :: PSO4_SO2APM2(:,:,:) -#endif #ifdef APM - REAL*8 :: MASS0, MASS, PMASS - REAL*8 :: RKTs, E_RKTs, DTCHEM + REAL(fp), PARAMETER :: AIRMW_96 = AIRMW / 96.0d0 #endif !================================================================= @@ -7615,38 +7622,32 @@ SUBROUTINE CHEM_SO4( Input_Opt, State_Chm, State_Diag, State_Grid, & !------------------------------------------ ! Call APM size-resolved drydep algorithm !------------------------------------------ - CALL WET_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, State_Grid, & - State_Met, RC ) - - ! Point to PSO4_SO2APM2 now moved to State_Met - PSO4_SO2APM2 => State_Met%PSO4_SO2APM2 + CALL WET_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) #endif ! Point to chemical species array [kg] Spc => State_Chm%Species ! Loop over chemistry grid boxes - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, SO4, SO4s, SO40, SO40s ) & - !$OMP PRIVATE( SO4d, SO40d, SO40_dust ) & - !$OMP PRIVATE( IBIN, PSO4d, IDTRC ) & -#ifdef APM - !$OMP PRIVATE( N, MASS0, MASS, PMASS, RKTs, E_RKTs ) & -#endif - !$OMP SCHEDULE( DYNAMIC ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L, N, SO4, SO4s, SO40 )& + !$OMP PRIVATE( SO40s, SO4d, SO40d, SO40_dust, IBIN, PSO4d, IDTRC )& + !$OMP SCHEDULE( DYNAMIC ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Zero loop variables + SO4 = 0.0_fp + SO4s = 0.0_fp + SO40 = 0.0_fp + SO40s = 0.0_fp + ! Skip non-chemistry boxes IF ( .not. State_Met%InChemGrid(I,J,L) ) CYCLE - ! Initialize for safety's sake - SO4 = 0e+0_fp - SO4s = 0e+0_fp - SO4d = 0e+0_fp ! tdf 04/07/08 - !============================================================== ! Initial concentrations before chemistry !============================================================== @@ -7679,13 +7680,10 @@ SUBROUTINE CHEM_SO4( Input_Opt, State_Chm, State_Diag, State_Grid, & ! SO4 production from SO2 [v/v/timestep] SO4s = SO40s + PSO4_ss(I,J,L) - !tdf + !============================================================== + ! SO4d (SO4 w/in dust aerosol) chemistry: tdf 04/07/08 + !============================================================== IF ( LDSTUP ) THEN - - !============================================================== - ! SO4d (SO4 w/in dust aerosol) chemistry: tdf 04/07/08 - !============================================================== - IDTRC(1) = id_SO4d1 IDTRC(2) = id_SO4d2 IDTRC(3) = id_SO4d3 @@ -7720,55 +7718,57 @@ SUBROUTINE CHEM_SO4( Input_Opt, State_Chm, State_Diag, State_Grid, & !APM_GanLuo+ #ifdef APM - IF(NSO4>=1)THEN - DO N=1,NSO4 + IF ( NSO4 >= 1 ) THEN + DO N = 1, NSO4 ! Updated SO4 (gas phase) [v/v] - Spc(APMIDS%id_SO4BIN1+N-1)%Conc(I,J,L) = & - Spc(APMIDS%id_SO4BIN1+N-1)%Conc(I,J,L) + & - (PSO4_SO2APM(I,J,L)+PSO4_SO2APM2(I,J,L)*(AIRMW/96.D0)/ & - (g0_100*State_Met%DELP_DRY(I,J,L)))* & + Spc(APMIDS%id_SO4BIN1+N-1)%Conc(I,J,L) = & + Spc(APMIDS%id_SO4BIN1+N-1)%Conc(I,J,L) + & + ( PSO4_SO2APM(I,J,L) + & + State_Chm%PSO4_SO2APM2(I,J,L) * AIRMW_96 / & + ( g0_100 * State_Met%DELP_DRY(I,J,L) ) ) * & FCLOUD(I,J,L,N) ENDDO ENDIF - IF(NCTBC>=1)THEN - DO N=1,1 - Spc(APMIDS%id_CTBC+N-1)%Conc(I,J,L) = & - Spc(APMIDS%id_CTBC+N-1)%Conc(I,J,L) + & - (PSO4_SO2APM(I,J,L)+PSO4_SO2APM2(I,J,L)*(AIRMW/96.D0)/ & - (g0_100*State_Met%DELP_DRY(I,J,L)))* & - FCLOUD(I,J,L,(NSO4+N)) - ENDDO + IF ( NCTBC >=1 ) THEN + N = 1 + Spc(APMIDS%id_CTBC)%Conc(I,J,L) = & + Spc(APMIDS%id_CTBC)%Conc(I,J,L) + & + ( PSO4_SO2APM(I,J,L) + & + State_Chm%PSO4_SO2APM2(I,J,L) * AIRMW_96 / & + ( g0_100 * State_Met%DELP_DRY(I,J,L) ) ) * & + FCLOUD(I,J,L,(NSO4+N)) ENDIF - IF(NCTOC>=1)THEN - DO N=1,1 - Spc(APMIDS%id_CTOC+N-1)%Conc(I,J,L) = & - Spc(APMIDS%id_CTOC+N-1)%Conc(I,J,L) + & - (PSO4_SO2APM(I,J,L)+PSO4_SO2APM2(I,J,L)*(AIRMW/96.D0)/ & - (g0_100*State_Met%DELP_DRY(I,J,L)))* & - FCLOUD(I,J,L,(NSO4+N)) - ENDDO + IF ( NCTOC >= 1 ) THEN + N = 1 + Spc(APMIDS%id_CTOC)%Conc(I,J,L) = & + Spc(APMIDS%id_CTOC)%Conc(I,J,L) + & + ( PSO4_SO2APM(I,J,L) + & + State_Chm%PSO4_SO2APM2(I,J,L) * AIRMW_96 / & + ( g0_100 *State_Met%DELP_DRY(I,J,L) ) ) * & + FCLOUD(I,J,L,(NSO4+N)) ENDIF - IF(NCTDST>=1)THEN - DO N=1,1 - Spc(APMIDS%id_CTDST+N-1)%Conc(I,J,L) = & - Spc(APMIDS%id_CTDST+N-1)%Conc(I,J,L) + & - (PSO4_SO2APM(I,J,L)+PSO4_SO2APM2(I,J,L)*(AIRMW/96.D0)/ & - (g0_100*State_Met%DELP_DRY(I,J,L)))* & - FCLOUD(I,J,L,(NSO4+3)) - ENDDO + IF ( NCTDST >= 1 ) THEN + N = 1 + Spc(APMIDS%id_CTDST)%Conc(I,J,L) = & + Spc(APMIDS%id_CTDST)%Conc(I,J,L) + & + ( PSO4_SO2APM(I,J,L) + & + State_Chm%PSO4_SO2APM2(I,J,L) * AIRMW_96 / & + ( g0_100 * State_Met%DELP_DRY(I,J,L) ) ) * & + FCLOUD(I,J,L,(NSO4+3)) ENDIF - IF(NCTSEA>=1)THEN - DO N=1,1 - Spc(APMIDS%id_CTSEA+N-1)%Conc(I,J,L) = & - Spc(APMIDS%id_CTSEA+N-1)%Conc(I,J,L) + & - (PSO4_SO2APM(I,J,L)+PSO4_SO2APM2(I,J,L)*(AIRMW/96.D0)/ & - (g0_100*State_Met%DELP_DRY(I,J,L)))* & - FCLOUD(I,J,L,(NSO4+4)) + PSO4_SO2SEA(I,J,L) - ENDDO + IF ( NCTSEA >= 1 ) THEN + N = 1 + Spc(APMIDS%id_CTSEA)%Conc(I,J,L) = & + Spc(APMIDS%id_CTSEA)%Conc(I,J,L) + & + ( PSO4_SO2APM(I,J,L) + & + State_Chm%PSO4_SO2APM2(I,J,L) * AIRMW_96 / & + ( g0_100 * State_Met%DELP_DRY(I,J,L) ) ) * & + FCLOUD(I,J,L,(NSO4+4)) + & + PSO4_SO2SEA(I,J,L) ENDIF #endif @@ -7787,7 +7787,8 @@ SUBROUTINE CHEM_SO4( Input_Opt, State_Chm, State_Diag, State_Grid, & !$OMP END PARALLEL DO #ifdef APM - PSO4_SO2APM2 = 0.D0 + ! Reset the PSO4_SO2APM2 which tracks SO4 from wetdep + State_Chm%PSO4_SO2APM2 = 0.0d0 #endif ! Free pointers @@ -7811,7 +7812,8 @@ END SUBROUTINE CHEM_SO4 !\\ ! !INTERFACE: ! - SUBROUTINE CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, State_Met, RC ) + SUBROUTINE CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, State_Met, & + State_Diag, RC ) ! ! !USES: ! @@ -7821,8 +7823,9 @@ SUBROUTINE CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, State_Met, RC ) USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState + USE State_Diag_Mod, ONLY : DgnState USE TOMAS_MOD, ONLY : AQOXID, GETACTBIN - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -7833,6 +7836,7 @@ SUBROUTINE CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! !INPUT/OUTPUT PARAMETERS: ! TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diag State object ! ! !OUTPUT PARAMETERS: ! @@ -7849,11 +7853,10 @@ SUBROUTINE CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L - INTEGER :: k, binact1, binact2 - INTEGER :: KMIN + INTEGER :: I, J, L + INTEGER :: k, binact1, binact2 + INTEGER :: KMIN, previous_units REAL(fp) :: SO4OXID - CHARACTER(LEN=63) :: OrigUnit !================================================================= ! CHEM_SO4_AQ begins here! @@ -7863,40 +7866,52 @@ SUBROUTINE CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, State_Met, RC ) RC = GC_SUCCESS ! Convert species from to [kg] - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg', RC, OrigUnit=OrigUnit ) + ! NOTE: For TOMAS, convert all species units, in order not to + ! break internal unit conversions (Bob Yantosca, 11 Apr 2024) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = KG_SPECIES, & + previous_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'Start of CHEM_SO4_AQ in sulfate_mod.F90') RETURN ENDIF - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L ) & - !$OMP PRIVATE( KMIN, SO4OXID, BINACT1, BINACT2 ) & - !$OMP SCHEDULE( DYNAMIC ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L, KMIN, SO4OXID, BINACT1, BINACT2 ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Zero private loop variables + BINACT1 = 0.0_fp + BINACT2 = 0.0_fp + KMIN = 0.0_fp + SO4OXID = 0.0_fp + ! Skip non-chemistry boxes IF ( .not. State_Met%InChemGrid(I,J,L) ) CYCLE SO4OXID = PSO4_SO2AQ(I,J,L) * State_Met%AD(I,J,L) & / ( AIRMW / State_Chm%SpcData(id_SO4)%Info%MW_g ) - IF ( SO4OXID > 0e+0_fp ) THEN ! JKodros (6/2/15 - Set activating bin based on which TOMAS bin !length being used) #if defined( TOMAS12 ) - CALL GETACTBIN( I, J, L, id_NK5, .TRUE. , BINACT1, State_Chm, RC ) + CALL GETACTBIN( I, J, L, id_NK05, .TRUE. , BINACT1, State_Chm, RC ) - CALL GETACTBIN( I, J, L, id_NK5, .FALSE., BINACT2, State_Chm, RC ) + CALL GETACTBIN( I, J, L, id_NK05, .FALSE., BINACT2, State_Chm, RC ) #elif defined( TOMAS15 ) - CALL GETACTBIN( I, J, L, id_NK8, .TRUE. , BINACT1, State_Chm, RC ) + CALL GETACTBIN( I, J, L, id_NK08, .TRUE. , BINACT1, State_Chm, RC ) - CALL GETACTBIN( I, J, L, id_NK8, .FALSE., BINACT2, State_Chm, RC ) + CALL GETACTBIN( I, J, L, id_NK08, .FALSE., BINACT2, State_Chm, RC ) #elif defined( TOMAS30 ) CALL GETACTBIN( I, J, L, id_NK10, .TRUE. , BINACT1, State_Chm, RC ) @@ -7909,8 +7924,23 @@ SUBROUTINE CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, State_Met, RC ) KMIN = ( BINACT1 + BINACT2 )/ 2. - CALL AQOXID( SO4OXID, KMIN, I, J, L, Input_Opt, & - State_Chm, State_Grid, State_Met, RC ) + ! Indicate that we are NOT calling AqOxid from wetdep, which + ! will avoid doing any further internal unit conversion (as + ! units are already in kg here). -- Bob Yantosca (11 Apr 2024) + CALL AqOxid( & + I = I, & + J = J, & + L = L, & + MOXID = SO4OXID, & + KMIN = KMIN, & + fromWetDep = .FALSE., & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + State_Diag = State_Diag, & + RC = RC ) + ENDIF ENDDO ENDDO @@ -7918,8 +7948,16 @@ SUBROUTINE CHEM_SO4_AQ( Input_Opt, State_Chm, State_Grid, State_Met, RC ) !$OMP END PARALLEL DO ! Convert species back to original units - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + ! NOTE: For TOMAS, convert all species units, in order not to + ! break internal unit conversions (Bob Yantosca, 11 Apr 2024) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'End of CHEM_SO4_AQ in sulfate_mod.F90') @@ -8201,15 +8239,10 @@ END SUBROUTINE CHEM_NIT !\\ ! !INTERFACE: - SUBROUTINE CHEM_CL( Input_Opt, & - State_Met, State_Chm, State_Grid, RC ) - + SUBROUTINE CHEM_CL( Input_Opt, State_Met, State_Chm, State_Grid, RC ) +! ! !USES: - -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD -#endif - +! USE CMN_SIZE_MOD USE ErrCode_Mod USE Input_Opt_Mod, ONLY : OptInput @@ -8217,15 +8250,15 @@ SUBROUTINE CHEM_CL( Input_Opt, & USE State_Chm_Mod, ONLY : ChmState USE State_Met_Mod, ONLY : MetState USE State_Grid_Mod, ONLY : GrdState +! ! !INPUT PARAMETERS: - - !LOGICAL, INTENT(IN) :: am_I_Root ! Are we on the root CPU? +! TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object TYPE(GrdState), INTENT(IN) :: State_Grid - +! ! !INPUT/OUTPUT PARAMETERS: - +! TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object ! ! !OUTPUT PARAMETERS: @@ -9090,7 +9123,7 @@ SUBROUTINE INIT_SULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) ! Define flags for species ID's id_AS = Ind_('AS' ) id_AHS = Ind_('AHS' ) - id_AW1 = Ind_('AW1' ) + id_AW01 = Ind_('AW01' ) id_DAL1 = Ind_('DSTAL1' ) id_DAL2 = Ind_('DSTAL2' ) id_DAL3 = Ind_('DSTAL3' ) @@ -9115,9 +9148,9 @@ SUBROUTINE INIT_SULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) id_NITd3 = Ind_('NITD3' ) id_NITd4 = Ind_('NITD4' ) id_NITs = Ind_('NITs' ) - id_NK1 = Ind_('NK1' ) - id_NK5 = Ind_('NK5' ) - id_NK8 = Ind_('NK8' ) + id_NK01 = Ind_('NK01' ) + id_NK05 = Ind_('NK05' ) + id_NK08 = Ind_('NK08' ) id_NK10 = Ind_('NK10' ) id_NK20 = Ind_('NK20' ) id_NO3 = Ind_('NO3' ) @@ -9127,7 +9160,7 @@ SUBROUTINE INIT_SULFATE( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) id_PSO4 = Ind_('PSO4' ) id_SALA = Ind_('SALA' ) id_SALC = Ind_('SALC' ) - id_SF1 = Ind_('SF1' ) + id_SF01 = Ind_('SF01' ) id_SO2 = Ind_('SO2' ) id_SO4 = Ind_('SO4' ) id_SO4aq = Ind_('SO4aq' ) @@ -9245,7 +9278,7 @@ END SUBROUTINE CLEANUP_SULFATE !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: dry_settlingbin +! !IROUTINE: wet_settlingbin ! ! !DESCRIPTION: Subroutine WET\_SETTLINGBIN computes the dry settling of ! aerosol tracers. Modified for APM simulation. (G. Luo) @@ -9253,8 +9286,8 @@ END SUBROUTINE CLEANUP_SULFATE !\\ ! !INTERFACE: ! - SUBROUTINE WET_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, State_Grid, & - State_Met, RC ) + SUBROUTINE WET_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, & + State_Grid, State_Met, RC ) ! ! !USES: ! @@ -9347,17 +9380,34 @@ SUBROUTINE WET_SETTLINGBIN( Input_Opt, State_Chm, State_Diag, State_Grid, & IDTEMP1 = APMIDS%id_SO4BIN1 IDTEMP2 = APMIDS%id_SO4BIN1+NSO4-1 - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, K, DEN, REFF, DP ) & - !$OMP PRIVATE( CONST, VTS, TEMP, P, PDP, SLIP ) & - !$OMP PRIVATE( MASS, OLD, VISC, TC0, DELZ, DELZ1 ) & - !$OMP SCHEDULE( DYNAMIC ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L, N, K, DEN, REFF )& + !$OMP PRIVATE( DP, CONST, VTS, TEMP, P, PDP, SLIP )& + !$OMP PRIVATE( MASS, OLD, VISC, TC0, DELZ, DELZ1 )& + !$OMP SCHEDULE( DYNAMIC, 1 ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX + ! Zero private loop variables + CONST = 0.0_fp + DELZ = 0.0_fp + DELZ1 = 0.0_fp + DEN = 0.0_fp + DP = 0.0_fp + MASS = 0.0_fp + OLD = 0.0_fp + P = 0.0_fp + PDP = 0.0_fp + REFF = 0.0_fp + SLIP = 0.0_fp + TEMP = 0.0_fp + TC0 = 0.0_fp + VISC = 0.0_fp + VTS = 0.0_fp + DO L = 1, State_Grid%NZ - MASS(L) = 0.d8 + !MASS(L) = 0.0d0 DO N = IDTEMP1, IDTEMP2 MASS(L) = MASS(L) + Spc(N)%Conc(I,J,L) ENDDO diff --git a/GeosCore/tomas_mod.F90 b/GeosCore/tomas_mod.F90 index 36f6cc73f..85c1c8d37 100644 --- a/GeosCore/tomas_mod.F90 +++ b/GeosCore/tomas_mod.F90 @@ -74,7 +74,6 @@ MODULE TOMAS_MOD !BOC !======================================================================== ! Module Variables: - ! IBINS : Number of size bins ! ICOMP : Number of aerosol mass species + 1 for number ! Nk : Aerosol number internal array ! Mk : Aerosol mass internal array @@ -105,18 +104,6 @@ MODULE TOMAS_MOD ! ! !DEFINED PARAMETERS: ! - ! Note that there is a parameter declared in CMN_SIZE called TOMASBIN --> - ! which defines how many size bins (win, 7/7/09) -#if defined(TOMAS12) - INTEGER, PARAMETER :: IBINS = 12 -#elif defined(TOMAS15) - INTEGER, PARAMETER :: IBINS = 15 -#elif defined(TOMAS40) - INTEGER, PARAMETER :: IBINS = 40 -#else - INTEGER, PARAMETER :: IBINS = 30 -#endif - INTEGER, PARAMETER :: SRTSO4 = 1 INTEGER, PARAMETER :: SRTNACL = 2 INTEGER, PARAMETER :: SRTECIL = 3 @@ -135,27 +122,27 @@ MODULE TOMAS_MOD INTEGER :: ICOMP, IDIAG ! Arrays - REAL(fp), TARGET, SAVE :: Xk(IBINS+1) - REAL*4, save, ALLOCATABLE :: MOLWT(:) - INTEGER, SAVE :: BINACT1(101,101,101) - REAL(fp), SAVE :: FRACTION1(101,101,101) - INTEGER, SAVE :: BINACT2(101,101,101) - REAL(fp), SAVE :: FRACTION2(101,101,101) - - REAL(fp) :: AVGMASS(IBINS) ! Average mass per particle - ! mid-range of size bin - ! [kg/no.] + REAL(fp), SAVE, ALLOCATABLE, TARGET :: Xk(:) + REAL*4, SAVE, ALLOCATABLE :: MOLWT(:) + INTEGER, SAVE :: BINACT1(101,101,101) + REAL(fp), SAVE :: FRACTION1(101,101,101) + INTEGER, SAVE :: BINACT2(101,101,101) + REAL(fp), SAVE :: FRACTION2(101,101,101) + + REAL(fp), ALLOCATABLE :: AVGMASS(:) ! Average mass per particle + ! mid-range of size bin + ! [kg/no.] REAL(fp) :: cosmic_ions(72,46,9) !careful, this is not GCHP safe! ! [ion pairs kg^-1 s^-1] - REAL(fp), SAVE :: OCSCALE30(IBINS) - REAL(fp), SAVE :: OCSCALE100(IBINS) - REAL(fp), SAVE :: ECSCALE30(IBINS) - REAL(fp), SAVE :: ECSCALE100(IBINS) + REAL(fp), SAVE, ALLOCATABLE :: OCSCALE30(:) + REAL(fp), SAVE, ALLOCATABLE :: OCSCALE100(:) + REAL(fp), SAVE, ALLOCATABLE :: ECSCALE30(:) + REAL(fp), SAVE, ALLOCATABLE :: ECSCALE100(:) INTEGER :: bin_nuc = 1, tern_nuc = 1 ! Switches for nucleation type. INTEGER :: act_nuc = 0 ! in BL - INTEGER :: ion_nuc = 0 ! 1 for modgil, 2 for Yu + INTEGER :: ion_nuc = 0 ! 1 for modgil, 2 for Yu ! (Yu currently broken, JRP 202101) INTEGER :: absall = 1 ! 1 for soa absorb to all specnapari ! nucleation tuned by factor of 1.0D-5 @@ -171,111 +158,30 @@ MODULE TOMAS_MOD INTEGER :: lowRH = 1 !This is to match AW more with AERONET (JKODROS 6/15) REAL(fp), ALLOCATABLE :: H2SO4_RATE(:,:,:) ! H2SO4 prod rate [kg s-1] - -#if defined( TOMAS12 ) || defined( TOMAS15 ) - !tomas12 or tomas15 - data OCSCALE30/ & -#ifdef TOMAS15 - 0.0e+0_fp , 0.0e+0_fp , 0.0e+0_fp , & -#endif - 1.1291E-03, 4.9302E-03, 1.2714E-02, 3.6431E-02, & - 1.0846E-01, 2.1994E-01, 2.7402E-01, 2.0750E-01, & - 9.5304E-02, 2.6504E-02, 1.2925E-02, 1.6069E-05/! use for fossil fuel (bimodal) - - data OCSCALE100/ & -#ifdef TOMAS15 - 0.0e+0_fp , 0.0e+0_fp , 0.0e+0_fp , & -#endif - 1.9827E-06, 3.9249E-05, 5.0202E-04, 4.1538E-03, & - 2.2253E-02, 7.7269E-02, 1.7402E-01, 2.5432E-01, & - 2.4126E-01, 1.4856E-01, 7.6641E-02, 9.8120E-04/! use for biomass burning - - data ECSCALE30/ & -#ifdef TOMAS15 - 0.0e+0_fp , 0.0e+0_fp , 0.0e+0_fp , & -#endif - 1.1291E-03, 4.9302E-03, 1.2714E-02, 3.6431E-02, & - 1.0846E-01, 2.1994E-01, 2.7402E-01, 2.0750E-01, & - 9.5304E-02, 2.6504E-02, 1.2925E-02, 1.6069E-05/! use for fossil fuel (bimodal) - - data ECSCALE100/ & -#ifdef TOMAS15 - 0.0e+0_fp , 0.0e+0_fp , 0.0e+0_fp , & -#endif - 1.9827E-06, 3.9249E-05, 5.0202E-04, 4.1538E-03, & - 2.2253E-02, 7.7269E-02, 1.7402E-01, 2.5432E-01, & - 2.4126E-01, 1.4856E-01, 7.6641E-02, 9.8120E-04/ ! use for biomass burning - -#else - !tomas30 or tomas40 - DATA OCSCALE30/ & ! use for fossil fuel -#ifdef TOMAS40 - 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , & - 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , & -#endif - 1.04E-03, 2.77E-03, 6.60E-03, 1.41E-02, 2.69E-02, & - 4.60E-02, 7.06E-02, 9.69E-02, 1.19E-01, 1.31E-01, & - 1.30E-01, 1.15E-01, 9.07E-02, 6.44E-02, 4.09E-02, & - 2.33E-02, 1.19E-02, 5.42E-03, 2.22E-03, 8.12E-04, & - 2.66E-04, 7.83E-05, 2.06E-05, 4.86E-06, 1.03E-06, & - 1.94E-07, 3.29E-08, 4.99E-09, 6.79E-10, 8.26E-11/ - - DATA OCSCALE100/ & ! use for biomass burning -#ifdef TOMAS40 - 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , & - 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , & -#endif - 3.2224e-07 , 1.6605e-06 , 7.6565e-06 , 3.1592e-05 , 0.00011664, & - 0.00038538 , 0.0011394 , 0.0030144 , 0.0071362 , 0.015117 , & - 0.028657 , 0.048612 , 0.073789 , 0.10023 , 0.12182 , & - 0.1325 , 0.12895 , 0.11231 , 0.087525 , 0.061037 , & - 0.038089 , 0.02127 , 0.010628 , 0.0047523 , 0.0019015 , & - 0.00068081 , 0.00021813 , 6.2536e-05 , 1.6044e-05 , 3.6831e-06/ - - DATA ECSCALE30/ & ! use for fossil fuel -#ifdef TOMAS40 - 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , & - 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , & -#endif - 1.04E-03, 2.77E-03, 6.60E-03, 1.41E-02, 2.69E-02, & - 4.60E-02, 7.06E-02, 9.69E-02, 1.19E-01, 1.31E-01, & - 1.30E-01, 1.15E-01, 9.07E-02, 6.44E-02, 4.09E-02, & - 2.33E-02, 1.19E-02, 5.42E-03, 2.22E-03, 8.12E-04, & - 2.66E-04, 7.83E-05, 2.06E-05, 4.86E-06, 1.03E-06, & - 1.94E-07, 3.29E-08, 4.99E-09, 6.79E-10, 8.26E-11/ - - DATA ECSCALE100/ & ! use for biomass burning -#ifdef TOMAS40 - 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , & - 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , & -#endif - 3.2224e-07 , 1.6605e-06 , 7.6565e-06 , 3.1592e-05 , 0.00011664, & - 0.00038538 , 0.0011394 , 0.0030144 , 0.0071362 , 0.015117 , & - 0.028657 , 0.048612 , 0.073789 , 0.10023 , 0.12182 , & - 0.1325 , 0.12895 , 0.11231 , 0.087525 , 0.061037 , & - 0.038089 , 0.02127 , 0.010628 , 0.0047523 , 0.0019015 , & - 0.00068081 , 0.00021813 , 6.2536e-05 , 1.6044e-05 , 3.6831e-06/ -#endif + REAL(fp), ALLOCATABLE :: PSO4AQ_RATE(:,:,:) ! Cld chem sulfate prod rate [kg s-1] ! Subgrid coagulation timescale (win, 10/28/08) REAL*4 :: SGCTSCALE ! ! !PRIVATE TYPES: ! + ! Number of bins (copied from State_Chm%nTomasBins) + INTEGER, PRIVATE, SAVE :: IBINS + ! Species ID flags - INTEGER, PRIVATE :: id_AW1 - INTEGER, PRIVATE :: id_DUST1 - INTEGER, PRIVATE :: id_ECIL1 - INTEGER, PRIVATE :: id_ECOB1 + INTEGER, PRIVATE :: id_AW01 + INTEGER, PRIVATE :: id_DUST01 + INTEGER, PRIVATE :: id_ECIL01 + INTEGER, PRIVATE :: id_ECOB01 INTEGER, PRIVATE :: id_H2SO4 INTEGER, PRIVATE :: id_NH3 INTEGER, PRIVATE :: id_NH4 - INTEGER, PRIVATE :: id_NK1 - INTEGER, PRIVATE :: id_OCIL1 - INTEGER, PRIVATE :: id_OCOB1 - INTEGER, PRIVATE :: id_SF1 + INTEGER, PRIVATE :: id_NK01 + INTEGER, PRIVATE :: id_OCIL01 + INTEGER, PRIVATE :: id_OCOB01 + INTEGER, PRIVATE :: id_SF01 INTEGER, PRIVATE :: id_SO4 - INTEGER, PRIVATE :: id_SS1 + INTEGER, PRIVATE :: id_SS01 CONTAINS !EOC @@ -305,6 +211,7 @@ SUBROUTINE DO_TOMAS( Input_Opt, State_Chm, State_Diag, State_Grid, & USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -342,19 +249,20 @@ SUBROUTINE DO_TOMAS( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Assume success RC = GC_SUCCESS - ! Check that species units are in [kg] (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units: ' // TRIM(State_Chm%Spc_Units) + ! Check that species units are in [kg] + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + MSG = 'Not all species are in kg!' LOC = 'Routine DO_TOMAS in tomas_mod.F90' CALL GC_Error( MSG, RC, LOC ) ENDIF ! Do TOMAS aerosol microphysics - CALL AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) + CALL AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, & + State_Diag, RC ) !print *, 'call checkmn in tomas_mod:222' CALL CHECKMN( 0, 0, 0, Input_Opt, State_Chm, State_Grid, & - State_Met,'Before Aerodrydep', RC) + State_Met, State_Diag, 'Before Aerodrydep', RC) ! in kg @@ -368,7 +276,7 @@ SUBROUTINE DO_TOMAS( Input_Opt, State_Chm, State_Diag, State_Grid, & !print *, 'call checkmn in tomas_mod:229' CALL CHECKMN( 0, 0, 0, Input_Opt, State_Chm, State_Grid, & - State_Met, 'Before exiting DO_TOMAS', RC ) + State_Met, State_Diag, 'Before exiting DO_TOMAS', RC ) END SUBROUTINE DO_TOMAS !EOC @@ -385,14 +293,11 @@ END SUBROUTINE DO_TOMAS !\\ ! !INTERFACE: ! - SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) + SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, & + State_Diag, RC ) ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD - USE DIAG_MOD, ONLY : AD61, AD61_INST -#endif USE ErrCode_Mod USE ERROR_MOD USE Input_Opt_Mod, ONLY : OptInput @@ -400,7 +305,9 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState + USE State_Diag_Mod, ONLY : DgnState USE TIME_MOD, ONLY : GET_TS_CHEM + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -411,6 +318,7 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! !INPUT/OUTPUT PARAMETERS: ! TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object ! ! !OUTPUT PARAMETERS: ! @@ -501,9 +409,6 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) double precision soil_ions(9) ! ion pairs cm-3 s-1 from radioactive elements in soil data soil_ions / 5.,3.3,1.8,0.7,0.,0.,0.,0.,0./ - ! For fields from Input_Opt - LOGICAL :: prtDebug - ! Pointers TYPE(SpcConc), POINTER :: Spc(:) @@ -518,8 +423,8 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! are now generally [kg/kg] in GEOS-Chem, they are converted to ! kg for TOMAS elsewhere in tomas_mod prior to calling this subroutine ! (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units: ' // TRIM(State_Chm%Spc_Units) + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + MSG = 'Not all species are in kg!' LOC = 'Routine AEROPHYS in tomas_mod.F90' CALL GC_Error( MSG, RC, LOC ) ENDIF @@ -527,9 +432,6 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Point to chemical species array [kg] Spc => State_Chm%Species - ! Get logical values from Input_Opt - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Initialize debugging and error-signal switches printneg = .FALSE. errorswitch = .FALSE. @@ -555,19 +457,6 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! with the family name PSO4 and SO4 as its one member. (win, 9/30/08) !==================================================================== - DO N = 1, Input_Opt%NFAM - ! If family name 'PSO4' is found, then skip error-stop - IF ( Input_Opt%FAM_NAME(N) == 'PSO4') GOTO 1 - ENDDO - ! Family name 'PSO4' not found... exit with error message - write(*,*)'-----------------------------------------------' - write(*,*)' Need to setup ND65 family PSO4 with SO4 as ' - write(*,*)' a member to have H2SO4RATE array ' - write(*,*)' ... need H2SO4RATE for nucl & cond in TOMAS' - write(*,*)'-----------------------------------------------' - CALL ERROR_STOP('AEROPHYS','Enter microphys') -1 CONTINUE - write(*,*) 'AEROPHYS: This run uses coupled condensation-', & 'nucleation scheme with pseudo-steady state H2SO4' if(tern_nuc == 1) then @@ -605,14 +494,6 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) DO J = 1, State_Grid%NY DO L = 1, State_Grid%NZ -#ifdef BPCH_DIAG - ! Reset the AD61_INST array used for tracking instantaneous - ! certain rates. As of now, tracking nucleation (win, 10/7/08) - IF ( Input_Opt%ND61 > 0 ) THEN - AD61_INST(I,J,L,:) = 0e0 - ENDIF -#endif - ! Skip non-chemgrid boxes IF ( .not. State_Met%InChemGrid(I,J,L) ) CYCLE @@ -631,41 +512,41 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) printneg = .FALSE. ! determine ion rate - !ionrate = 10. ! set as constant now !!jrp - - IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN - - if( (pres / 100.) .lt. cplevels(9) ) then - ionrate = cosmic_ions(i,j,9) * boxmass / boxvol - if(State_Met%FRCLND(I,J) .gt. 0.2) then - ionrate = ionrate + soil_ions(9) - endif - elseif((pres/100.) .gt. cplevels(1)) then - ionrate = cosmic_ions(i,j,1) * boxmass / boxvol - if( State_Met%FRCLND(I,J) .gt. 0.2 ) then - ionrate = ionrate + soil_ions(1) - endif - else - lev=2 - do while (pres / 100. .lt. cplevels(lev)) - lev=lev+1 - enddo - weight=( cplevels( lev - 1 ) - pres / 100. ) / & - ( cplevels( lev - 1 ) - cplevels(lev) ) - ionrate=( cosmic_ions(i,j,lev ) * weight + & - cosmic_ions(i,j,lev-1) * (1.e+0_fp - weight) ) & - * boxmass / boxvol - if( State_Met%FRCLND(I,J) .gt. 0.2) then - ionrate=ionrate + ( soil_ions( lev ) * weight + & - soil_ions( lev-1 ) * (1.e+0_fp-weight) ) - endif - endif - - ELSE - ionrate = 0.e+0_fp - ENDIF - - if(ionrate .le. 1.501) ionrate = 1.501 + ionrate = 10.0_fp ! set as constant now !!jrp, bc 18/12/23 and comment out below + +! IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN +! +! if( (pres / 100.) .lt. cplevels(9) ) then +! ionrate = cosmic_ions(i,j,9) * boxmass / boxvol +! if(State_Met%FRCLND(I,J) .gt. 0.2) then +! ionrate = ionrate + soil_ions(9) +! endif +! elseif((pres/100.) .gt. cplevels(1)) then +! ionrate = cosmic_ions(i,j,1) * boxmass / boxvol +! if( State_Met%FRCLND(I,J) .gt. 0.2 ) then +! ionrate = ionrate + soil_ions(1) +! endif +! else +! lev=2 +! do while (pres / 100. .lt. cplevels(lev)) +! lev=lev+1 +! enddo +! weight=( cplevels( lev - 1 ) - pres / 100. ) / & +! ( cplevels( lev - 1 ) - cplevels(lev) ) +! ionrate=( cosmic_ions(i,j,lev ) * weight + & +! cosmic_ions(i,j,lev-1) * (1.e+0_fp - weight) ) & +! * boxmass / boxvol +! if( State_Met%FRCLND(I,J) .gt. 0.2) then +! ionrate=ionrate + ( soil_ions( lev ) * weight + & +! soil_ions( lev-1 ) * (1.e+0_fp-weight) ) +! endif +! endif +! +! ELSE +! ionrate = 0.e+0_fp +! ENDIF +! +! if(ionrate .le. 1.501) ionrate = 1.501 !print*,'i',i,'j',j,'l',l,'ionrate',ionrate @@ -678,9 +559,9 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Swap Spc into Nk, Mk, Gc arrays DO N = 1, IBINS - NK(N) = Spc(id_NK1-1+N)%Conc(I,J,L) + NK(N) = Spc(id_NK01-1+N)%Conc(I,J,L) DO JC = 1, ICOMP-IDIAG - MK(N,JC) = Spc(id_NK1-1+N+JC*IBINS)%Conc(I,J,L) + MK(N,JC) = Spc(id_NK01-1+N+JC*IBINS)%Conc(I,J,L) IF( IT_IS_NAN( MK(N,JC) ) ) THEN @@ -689,7 +570,7 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ENDIF ENDDO - MK(N,SRTH2O) = Spc(id_AW1-1+N)%Conc(I,J,L) + MK(N,SRTH2O) = Spc(id_AW01-1+N)%Conc(I,J,L) ENDDO @@ -703,8 +584,7 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Give it the pseudo-steady state value instead later (win,9/30/08) !GC(SRTSO4) = Spc(id_H2SO4)%Conc(I,J,L) - - + H2SO4rate_o = H2SO4_RATE(I,J,L) ! [kg s-1] ! Pengfei Liu add 2018/04/18, debug IF ( H2SO4rate_o .lt. 0.e0 ) THEN @@ -755,12 +635,12 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) CALL ERROR_STOP('AEROPHYS-MNFIX (1)','Enter microphys') ENDIF - MPNUM = 5 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) THEN - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, State_Grid ) + MPNUM = 11 + IF ( State_Diag%Archive_TomasMNFIXezwat1mass .or. & + State_Diag%Archive_TomasMNFIXezwat1number ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) ENDIF -#endif !IF ( printdebug.and.i==iob .and. j==job .and. l==lob ) THEN ! CALL DEBUGPRINT( Nk, Mk, I, J, L, 'After mnfix before cond/nucl' ) @@ -787,7 +667,7 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) !------------------------------------- ! Condensation and nucleation (coupled) !------------------------------------- - IF ( COND .AND. NUCL ) THEN + IF ( COND .AND. NUCL .AND. H2SO4rate_o > 0.e0_fp) THEN !if(printdebug .and. i==iob.and.j==job.and.l==lob) ERRORSWITCH =.TRUE. @@ -839,8 +719,16 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ERR_IND(2) = J ERR_IND(3) = L ERR_IND(4) = 0 +! IF (SPINUP(14.0) .and. Gcout(jc) /= Gcout(jc) ) THEN + IF( SPINUP(14.0) .AND. IT_IS_NAN( Gcout(jc) ) ) THEN + Gcout(jc) = 0.0e+0_fp ! reset Nan to zero during spinup, bc 18/12/23 + print*,'Reset Gcout NaN to zero at ',I,J,L + ELSEIF ( SPINUP(14.0) .AND. .not. IT_IS_FINITE( Gcout(jc) ) ) THEN + Gcout(jc) = 0.0e+0_fp ! reset Inf to zero during spinup, bc 18/12/23 + print*,'Reset Gcout Inf to zero at ',I,J,L + ELSE call check_value( Gcout(jc), ERR_IND, ERR_VAR, ERR_MSG ) - + ENDIF !if( IT_IS_FINITE(Gcout(jc))) then ! print *,'xxxxxxxxx Found Inf in Gcout xxxxxxxxxxxxxx' ! print *,'Location ',I,J,L, 'comp',jc @@ -858,20 +746,17 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ENDDO MPNUM = 3 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) THEN - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, & - State_Grid ) + IF ( State_Diag%Archive_TomasNUCLmass .or. & + State_Diag%Archive_TomasNUCLnumber ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) ENDIF -#endif MPNUM = 7 -#ifdef BPCH_DIAG - IF ( ND61 > 0 ) THEN - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, & - State_Grid ) + IF ( State_Diag%Archive_TomasNUCRATEnumber) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) ENDIF -#endif IF ( printdebug.and.i==iob .and. j==job .and. l==lob ) THEN CALL DEBUGPRINT( Nk, Mk, I, J, L,'After nucleation' ) @@ -889,12 +774,11 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) Gc(srtso4)=Gcout(srtso4) MPNUM = 1 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) THEN - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, & - State_Grid ) + IF ( State_Diag%Archive_TomasNUCLmass .or. & + State_Diag%Archive_TomasNUCLnumber ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) ENDIF -#endif IF ( printdebug.and.i==iob .and. j==job .and. l==lob ) THEN CALL DEBUGPRINT( Nk, Mk, I, J, L,'After condensation' ) @@ -903,15 +787,10 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) nucrate(j,l)=nucrate(j,l)+fn nucrate1(j,l)=nucrate1(j,l)+fn1 - ! Write nucleation rate to diagnostric ND61 (win, 10/6/08) -#ifdef BPCH_DIAG - IF ( ND61 > 0 ) THEN - IF ( L <= LD61 ) AD61(I,J,L,2) = AD61(I,J,L,2) + fn - - ! Tracks nucleation rates instantaneously for planeflight - AD61_INST(I,J,L,2) = fn + ! replaces old ND61 diagnostic! + IF ( State_Diag%Archive_TomasNUCRATEFN ) THEN + State_Diag%TomasNUCRATEFN(I,J,L) = fn ENDIF -#endif DO N = 1, IBINS NK(N) = NKout(N) @@ -920,7 +799,7 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ENDDO ENDDO - ENDIF + ENDIF ! end of cond and nuc ! ! nitrogen and sulfur mass checks ! get the total mass of N @@ -948,13 +827,12 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ENDIF ENDIF - MPNUM = 5 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) THEN - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, & - State_Grid ) + MPNUM = 14 + IF ( State_Diag%Archive_TomasMNFIXh2so4mass .or. & + State_Diag%Archive_TomasMNFIXh2so4number ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) ENDIF -#endif !----------------------------- ! Coagulation @@ -974,12 +852,11 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! CALL DEBUGPRINT( Nk, Mk, I, J, L,'After coagulation' ) MPNUM = 2 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) THEN - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, & - State_Grid ) + IF ( State_Diag%Archive_TomasCOAGmass .or. & + State_Diag%Archive_TomasCOAGnumber ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) ENDIF -#endif !Fix any inconsistency after coagulation (win, 4/18/06) CALL STORENM(Nk, Nkd, Mk, Mkd, Gc, Gcd) @@ -998,13 +875,13 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ENDIF ENDIF - MPNUM = 5 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) THEN - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, & - State_Grid ) + MPNUM = 15 + IF ( State_Diag%Archive_TomasMNFIXcoagmass .or. & + State_Diag%Archive_TomasMNFIXcoagnumber ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) ENDIF -#endif + ENDIF ! Coagulation ! Do water eqm at appropriate times @@ -1036,23 +913,22 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ENDIF ! Accumulate changes by mnfix to diagnostic (win, 9/8/05) - MPNUM = 5 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) THEN - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, & - State_Grid ) + MPNUM = 12 + IF ( State_Diag%Archive_TomasMNFIXezwat2mass .or. & + State_Diag%Archive_TomasMNFIXezwat2number ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) ENDIF -#endif ! Swap Nk, Mk, and Gc arrays back to Spc DO N = 1, IBINS - TRACNUM = id_NK1 - 1 + N + TRACNUM = id_NK01 - 1 + N Spc(TRACNUM)%Conc(I,J,L) = NK(N) DO JC = 1, ICOMP-IDIAG - TRACNUM = id_NK1 - 1 + N + IBINS * JC + TRACNUM = id_NK01 - 1 + N + IBINS * JC Spc(TRACNUM)%Conc(I,J,L) = MK(N,JC) ENDDO - Spc(id_AW1-1+N)%Conc(I,J,L) = MK(N,SRTH2O) + Spc(id_AW01-1+N)%Conc(I,J,L) = MK(N,SRTH2O) ENDDO Spc(id_H2SO4)%Conc(I,J,L) = GC(SRTSO4) @@ -1083,9 +959,15 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, RC ) !WRITE(777,*) '---------------------------' 77 FORMAT(3I4, ' Spc(id_NH3)%Conc(I,J,L),'E13.5,' Used', E13.5 ) - IF ( COND .and. prtDebug ) PRINT *,'### AEROPHYS: SO4 CONDENSATION' - IF ( COAG .and. prtDebug ) PRINT *,'### AEROPHYS: COAGULATION' - IF ( NUCL .and. prtDebug ) PRINT *,'### AEROPHYS: NUCLEATION' + IF ( COND .and. Input_Opt%Verbose ) THEN + PRINT *,'### AEROPHYS: SO4 CONDENSATION' + ENDIF + IF ( COAG .and. Input_Opt%Verbose ) THEN + PRINT *,'### AEROPHYS: COAGULATION' + ENDIF + IF ( NUCL .and. Input_Opt%Verbose ) THEN + PRINT *,'### AEROPHYS: NUCLEATION' + ENDIF ! Free pointer memory Spc => NULL() @@ -1745,7 +1627,7 @@ SUBROUTINE getCondSink(Nko, Mko, spec, CS, sinkfrac, surf_area, & Kn = 2.0 * l_ab / Dpk(k) !S&Pv2 chapter 12 - Kn for Dahneke correction factor beta(k) = ( 1.+Kn ) / ( 1.+2.*Kn*(1.+Kn)/alpha(spec) ) !S&P eqn 11.35 enddo - + ! get condensation sink CS = 0.e+0_fp surf_area = 0.e+0_fp @@ -1753,11 +1635,18 @@ SUBROUTINE getCondSink(Nko, Mko, spec, CS, sinkfrac, surf_area, & CS = CS + Dpk(k)*Nko(k)*beta(k) surf_area = surf_area+Nko(k)*pi*(Dpk(k)*1.0e+6_fp)**2 enddo + !bc 21/01/2022 - check if divide by zero below -added 2 if do k=1,ibins - sinkfrac(k) = Dpk(k)*Nko(k)*beta(k)/CS + sinkfrac(k) = 0.e-0_fp + if (CS > 0.e-0_fp) then + sinkfrac(k) = Dpk(k)*Nko(k)*beta(k)/CS + endif enddo - CS = 2.e+0_fp*pi*dble(Di)*CS/(dble(boxvol)*1e-6_fp) - surf_area = surf_area/(dble(boxvol)) + CS = 2.e+0_fp*pi*dble(Di)*CS/(dble(boxvol)*1.e-6_fp) + surf_area = 0.e-0_fp + if (CS > 0.e-0_fp) then + surf_area = surf_area/(dble(boxvol)) + endif return @@ -1980,7 +1869,7 @@ SUBROUTINE getH2SO4conc(Nk, Mk, H2SO4rate, CS, NH3conc, gasConc, & !print*,'H2SO4rate',H2SO4rate !print*,'massnuc',massnuc,'CS*gasConc',CS*gasConc - else + else ! nucleation didn't occur endif @@ -1997,7 +1886,7 @@ end SUBROUTINE GETH2SO4CONC ! ! !DESCRIPTION: This subroutine calls the Vehkamaki 2002 and Napari 2002 ! nucleation parameterizations and gets the binary and ternary nucleation -! rates. +! rates. ! WRITTEN BY Jeff Pierce, April 2007 for GISS GCM-II ! Put in GEOS-Chem by win T. 9/30/08 !\\ @@ -2571,7 +2460,7 @@ SUBROUTINE napa_nucl(tempi,rhi,cnai,nh3ppti,fn,rnuc) fn=1.0e+6_fp fnl=log(fn) endif - + rnuc=0.141027-0.00122625*fnl-7.82211e-6_fp*fnl**2. & -0.00156727*temp-0.00003076*temp*fnl & +0.0000108375*temp**2. @@ -3101,7 +2990,7 @@ SUBROUTINE NUCLEATION(Nki,Mki,Gci,Nkf,Mkf,Gcf,fn,fn1,totsulf, & if (errorswitch) print*,'NUCLEATION: Error after mnfix' ! there is a chance that Gcf will go less than zero because we are - ! artificially growing particles into the first size bin. + ! artificially growing particles into the first size bin. ! don't let it go less than zero. else @@ -3570,14 +3459,12 @@ end SUBROUTINE EZCOND !\\ ! !INTERFACE: ! - SUBROUTINE AQOXID( MOXID, KMIN, I, J, L, Input_Opt, & - State_Chm, State_Grid, State_Met, RC ) + SUBROUTINE AQOXID( MOXID, KMIN, I, J, & + L, Input_Opt, State_Chm, State_Grid, & + State_Met, State_Diag, fromWetdep, RC ) ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD ! ND60 -#endif USE ErrCode_Mod USE ERROR_MOD USE Input_Opt_Mod, ONLY : OptInput @@ -3585,6 +3472,7 @@ SUBROUTINE AQOXID( MOXID, KMIN, I, J, L, Input_Opt, & USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState + USE State_Diag_Mod, ONLY : DgnState USE UnitConv_Mod ! ! !INPUT PARAMETERS: @@ -3594,15 +3482,21 @@ SUBROUTINE AQOXID( MOXID, KMIN, I, J, L, Input_Opt, & TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object + LOGICAL, INTENT(IN) :: fromWetDep ! Called from wetdep? [T/F] ! ! !INPUT/OUTPUT PARAMETERS: ! TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diag State object ! ! !OUTPUT PARAMETERS: ! INTEGER, INTENT(OUT) :: RC ! Success or failure? ! +! +! !REMARKS: +! Species units are converted to kg outside of AQOXID. +! ! !REVISION HISTORY: ! See https://github.com/geoschem/geos-chem for complete history !EOP @@ -3627,9 +3521,11 @@ SUBROUTINE AQOXID( MOXID, KMIN, I, J, L, Input_Opt, & REAL(fp) :: Gc(ICOMP - 1) REAL(fp) :: Gcd(ICOMP - 1) REAL*4 :: BOXVOL + REAL*4 :: BOXMASS REAL*4 :: thresh CHARACTER(LEN=255) :: MSG, LOC ! (ewl) - LOGICAL :: UNITCHANGE_KGM2 + + LOGICAL, SAVE :: doPrintErr = .TRUE. ! Pointers TYPE(SpcConc), POINTER :: Spc(:) @@ -3641,30 +3537,26 @@ SUBROUTINE AQOXID( MOXID, KMIN, I, J, L, Input_Opt, & ! Assume success RC = GC_SUCCESS - ! Check that species units are in [kg] (ewl, 8/13/15) - ! Convert species concentration units to [kg] if not necessary. - ! Units are [kg/m2] if AQOXID is called from wet deposition - ! and are [kg] if called from sulfate_mod since chemistry is - ! still in [kg]. Since AQOXID is called within an (I,J,L) loop, - ! only convert units for a single grid box. Otherwise, run will - ! take too long (ewl, 9/30/15) - UNITCHANGE_KGM2 = .FALSE. - IF ( TRIM( State_Chm%Spc_Units ) .eq. 'kg/m2' ) THEN - UNITCHANGE_KGM2 = .TRUE. - CALL ConvertBox_Kgm2_to_Kg( I, J, L, State_Chm, State_Grid, .FALSE., RC ) - ELSE IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect initial species units: ' // TRIM(State_Chm%Spc_Units) - LOC = 'Routine AQOXID in tomas_mod.F90' - CALL ERROR_STOP( MSG, LOC ) + !--------------------------------------------------------------------- + ! If called from wetdep, convert species units to kg + !--------------------------------------------------------------------- + IF ( fromWetDep ) THEN + CALL ConvertBox_Kgm2_to_Kg( & + I = I, & + J = J, & + L = L, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + isAdjoint = .FALSE. ) ENDIF - ! Point to the chemical species array Spc => State_Chm%Species PDBG = .FALSE. !For print debugging !debug IF ( I == 46 .AND. J == 59 .AND. L == 9) PDBG = .TRUE. BOXVOL = State_Met%AIRVOL(I,J,L) * 1.e6 !convert from m3 -> cm3 + BOXMASS = State_Met%AD(I,J,L) ! in kg ! Update aerosol water from the current RH DO K = 1, IBINS CALL EZWATEREQM2( I, J, L, K, State_Met, State_Chm, RC ) @@ -3679,12 +3571,12 @@ SUBROUTINE AQOXID( MOXID, KMIN, I, J, L, Input_Opt, & ! Swap GEOSCHEM variables into aerosol algorithm variables DO K = 1, IBINS - NKID = id_NK1 - 1 + K + NKID = id_NK01 - 1 + K NK(K) = Spc(NKID)%Conc(I,J,L) DO JC = 1, ICOMP-IDIAG MK(K,JC) = Spc(NKID+JC*IBINS)%Conc(I,J,L) ENDDO - MK(K,SRTH2O) = Spc(id_AW1-1+K)%Conc(I,J,L) + MK(K,SRTH2O) = Spc(id_AW01-1+K)%Conc(I,J,L) ENDDO !sfarina - initialize Gc to ensure storenm doesn't go NaN on us. DO JC=1, ICOMP-1 @@ -3707,11 +3599,14 @@ SUBROUTINE AQOXID( MOXID, KMIN, I, J, L, Input_Opt, & CALL ERROR_STOP('Found bad error in MNFIX', & 'Beginning AQOXID after MNFIX' ) ENDIF - MPNUM = 5 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) & - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, State_Grid ) -#endif + + MPNUM = 13 + IF ( State_Diag%Archive_TomasMNFIXezwat3mass .or. & + State_Diag%Archive_TomasMNFIXezwat3number ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) + ENDIF + CALL STORENM(Nk, Nkd, Mk, Mkd, Gc, Gcd) !debug IF ( I == 46 .AND. J == 59 .AND. L == 9) & @@ -3840,10 +3735,11 @@ SUBROUTINE AQOXID( MOXID, KMIN, I, J, L, Input_Opt, & ! Save changes to diagnostic MPNUM = 4 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) & - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, State_Grid ) -#endif + IF ( State_Diag%Archive_TomasAQOXmass .or. & + State_Diag%Archive_TomasAQOXnumber ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) + ENDIF ! Fix any inconsistencies in M/N distribution CALL STORENM(Nk, Nkd, Mk, Mkd, Gc, Gcd) @@ -3854,37 +3750,39 @@ SUBROUTINE AQOXID( MOXID, KMIN, I, J, L, Input_Opt, & CALL ERROR_STOP('Found bad error in MNFIX', & 'End of AQOXID after MNFIX' ) ENDIF - MPNUM = 5 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) & - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, State_Grid ) -#endif + + MPNUM = 16 + IF ( State_Diag%Archive_TomasMNFIXaqoxmass .or. & + State_Diag%Archive_TomasMNFIXaqoxnumber ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) + ENDIF ! Swap Nk and Mk arrays back to Spc DO K = 1, IBINS - TRACNUM = id_NK1 - 1 + K + TRACNUM = id_NK01 - 1 + K Spc(TRACNUM)%Conc(I,J,L) = Nk(K) DO JC = 1, ICOMP-IDIAG - TRACNUM = id_NK1 - 1 + K + IBINS*JC + TRACNUM = id_NK01 - 1 + K + IBINS*JC Spc(TRACNUM)%Conc(I,J,L) = Mk(K,JC) ENDDO - Spc(id_AW1-1+K)%Conc(I,J,L) = Mk(K,SRTH2O) + Spc(id_AW01-1+K)%Conc(I,J,L) = Mk(K,SRTH2O) ENDDO ! Free pointer memory Spc => NULL() - ! Convert State_Chm%Species units back to original units - ! if conversion occurred at start of AQOXID (ewl, 9/30/15) - IF ( UNITCHANGE_KGM2 ) THEN - CALL ConvertBox_Kg_to_Kgm2( I, J, L, State_Chm, State_Grid, .FALSE., RC ) - ENDIF - - ! Check that species units are as expected (ewl, 9/29/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' .AND. & - TRIM( State_Chm%Spc_Units ) /= 'kg/m2' ) THEN - CALL ERROR_STOP('Incorrect final species units:' // State_Chm%Spc_Units,& - 'Routine AQOXID in tomas_mod.F90') + !------------------------------------------------------------------------ + ! If called from wetdep, convert species units back to kg/m2. + !------------------------------------------------------------------------ + IF ( fromWetDep ) THEN + CALL ConvertBox_Kg_to_Kgm2( & + I = I, & + J = J, & + L = L, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + isAdjoint = .FALSE. ) ENDIF END SUBROUTINE AQOXID @@ -3906,30 +3804,30 @@ END SUBROUTINE AQOXID !\\ ! !INTERFACE: ! - SUBROUTINE SOACOND( MSOA, I, J, L, BOXVOL, TEMPTMS, PRES, & - State_Chm, State_Grid, RC ) + SUBROUTINE SOACOND( MSOA, I, J, L, BOXVOL, TEMPTMS, PRES, BOXMASS,& + State_Chm, State_Grid, State_Diag, RC ) ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD -#endif USE ErrCode_Mod USE ERROR_MOD USE Species_Mod, ONLY : SpcConc USE State_Chm_Mod, ONLY : ChmState + USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! REAL(fp) :: MSOA INTEGER, INTENT(IN) :: I, J, L - REAL*4, INTENT(IN) :: BOXVOL, TEMPTMS, PRES + REAL*4, INTENT(IN) :: BOXVOL, TEMPTMS, PRES, BOXMASS TYPE(GrdState), INTENT(IN) :: State_Grid ! ! !INPUT/OUTPUT PARAMETERS: ! TYPE(ChmState), INTENT(INOUT) :: State_Chm + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object ! ! !OUTPUT PARAMETERS: ! @@ -3973,7 +3871,7 @@ SUBROUTINE SOACOND( MSOA, I, J, L, BOXVOL, TEMPTMS, PRES, & ! For SOACOND warnings INTEGER, SAVE :: SOACOND_WARNING_CT = -1 - INTEGER, PARAMETER :: SOACOND_WARNING_MAX = 20 + INTEGER, PARAMETER :: SOACOND_WARNING_MAX = 2 !bc 02/01/24 shut off too many warnings !================================================================= ! SOACOND begins here @@ -3983,9 +3881,9 @@ SUBROUTINE SOACOND( MSOA, I, J, L, BOXVOL, TEMPTMS, PRES, & RC = GC_SUCCESS SOACOND_WARNING_CT = 0 - ! Check that species units are in [kg] (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units: ' // TRIM(State_Chm%Spc_Units) + ! Check that species units are in [kg] + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + MSG = 'Not all species are in kg!' LOC = 'Routine SOACOND in tomas_mod.F90' CALL ERROR_STOP( MSG, LOC ) ENDIF @@ -4003,17 +3901,17 @@ SUBROUTINE SOACOND( MSOA, I, J, L, BOXVOL, TEMPTMS, PRES, & ! Swap GEOSCHEM variables into TOMAS variables DO K = 1, IBINS - TRACNUM = id_NK1 - 1 + K + TRACNUM = id_NK01 - 1 + K NK(K) = Spc(TRACNUM)%Conc(I,J,L) DO JC = 1, ICOMP-IDIAG ! do I need aerosol water here? - TRACNUM = id_NK1 - 1 + K + IBINS*JC + TRACNUM = id_NK01 - 1 + K + IBINS*JC MK(K,JC) = Spc(TRACNUM)%Conc(I,J,L) IF( IT_IS_NAN( MK(K,JC) ) ) THEN PRINT *,'+++++++ Found NaN in SOACOND ++++++++' PRINT *,'Location (I,J,L):',I,J,L,'Bin',K,'comp',JC ENDIF ENDDO - MK(K,SRTH2O) = Spc(id_AW1-1+K)%Conc(I,J,L) + MK(K,SRTH2O) = Spc(id_AW01-1+K)%Conc(I,J,L) ENDDO ! Take the bulk NH4 and allocate to size-resolved NH4 @@ -4027,7 +3925,6 @@ SUBROUTINE SOACOND( MSOA, I, J, L, BOXVOL, TEMPTMS, PRES, & ! Establish an 30-bin array and accculate the total ! of the absorbing media. The choices can be: ! organic mass, surface area, organic+inorganic. (win, 3/5/08) - MEDTOT = 0.e+0_fp MED = 0.e+0_fp mtot = 0.e+0_fp @@ -4051,130 +3948,160 @@ SUBROUTINE SOACOND( MSOA, I, J, L, BOXVOL, TEMPTMS, PRES, & ENDDO ! Fraction to each bin for mass partitioning - do k = 1,IBINS - partfrac(k) = MED(K) / MEDTOT ! MSOA (kg SOA) become (kg SOA per - ! total absorbing media) - enddo + ! Skip this if no absorbing media - bc, 20/01/2022 + if (MEDTOT > 0.e+0_fp) then - ! Fraction to each bin for surface condensation - call getCondSink(Nk,Mk,srtocil,CS,sinkfrac,surf_area, & - BOXVOL,TEMPTMS, PRES) + do k = 1,IBINS + partfrac(k) = MED(K) / MEDTOT ! MSOA (kg SOA) become (kg SOA per + ! total absorbing media) + enddo - do k = 1,IBINS - avgfrac(k)=soaareafrac*sinkfrac(k)+(1.e+0_fp-soaareafrac)*partfrac(k) - enddo + ! Fraction to each bin for surface condensation + call getCondSink(Nk,Mk,srtocil,CS,sinkfrac,surf_area, & + BOXVOL,TEMPTMS, PRES) - !temporary - ntot = 0.e+0_fp - do k = 1, ibins - ntot = ntot + Nk(k) - enddo + do k = 1,IBINS + avgfrac(k)=soaareafrac*sinkfrac(k)+(1.e+0_fp-soaareafrac)*partfrac(k) + enddo - IF ( ( Mtot + MSOA ) / Ntot > XK(IBINS+1) / thresh ) THEN - IF ( .not. SPINUP(14.0) ) THEN - WRITE(*,*) 'Location: ',I,J,L - WRITE(*,*) 'Mtot_&_Ntot: ',Mtot, Ntot - IF ( MSOA > 5e+0_fp ) THEN - CALL ERROR_STOP('Too few no. for SOAcond','SOACOND:1') - ENDIF - ELSE - ! Put a limit on the amount of screen warnings that we get - ! to keep logfile sizes low (bmy, 9/30/19) - SOACOND_WARNING_CT = SOACOND_WARNING_CT + 1 - IF ( SOACOND_WARNING_CT < SOACOND_WARNING_MAX ) THEN - WRITE(*,*) 'SOACOND WARNING: SOA mass is being discarded' + !temporary + ntot = 0.e+0_fp + do k = 1, ibins + ntot = ntot + Nk(k) + enddo + + !bc 21/01/2021 - prevent divide by zero as a test + if (Ntot .LE. 0.e+0_fp) then ! set to some small negative + print *, 'negative Ntot found', Ntot + Ntot = 1.e-35_fp + print *, 'new Ntot ', Ntot + endif + + IF ( ( Mtot + MSOA ) / Ntot > XK(IBINS+1) / thresh ) THEN + IF ( .not. SPINUP(14.0) ) THEN + WRITE(*,*) 'Location: ',I,J,L + WRITE(*,*) 'Mtot_&_Ntot: ',Mtot, Ntot + IF ( MSOA > 5e+0_fp ) THEN + CALL ERROR_STOP('Too few no. for SOAcond','SOACOND:1') + ENDIF + ELSE + ! Put a limit on the amount of screen warnings that we get + ! to keep logfile sizes low (bmy, 9/30/19) + SOACOND_WARNING_CT = SOACOND_WARNING_CT + 1 + IF ( SOACOND_WARNING_CT < SOACOND_WARNING_MAX ) THEN + WRITE(*,*) 'SOACOND WARNING: SOA mass is being discarded' + ENDIF + GOTO 30 ENDIF - GOTO 30 ENDIF - ENDIF - DO K = 1, IBINS - MPO = 0.e+0_fp - DO JC = 1, ICOMP-IDIAG - MPO = MPO + MK(K,JC) ! Accumulate dry mass - ENDDO - MABS(K) = MSOA * avgfrac(K) + DO K = 1, IBINS + MPO = 0.e+0_fp + DO JC = 1, ICOMP-IDIAG + MPO = MPO + MK(K,JC) ! Accumulate dry mass + ENDDO + MABS(K) = MSOA * avgfrac(K) - IF ( Nk(K) > 0.e+0_fp ) THEN - MPO = MPO / Nk(K) - OCTAU(K) = 1.5e+0_fp * ( ( ( MPO + MABS(K)/Nk(K) ) ** TDT ) - & - ( MPO ** TDT ) ) + IF ( Nk(K) > 0.e+0_fp ) THEN + MPO = MPO / Nk(K) + OCTAU(K) = 1.5e+0_fp * ( ( ( MPO + MABS(K)/Nk(K) ) ** TDT ) - & + ( MPO ** TDT ) ) - ! Error checking for negative Tau - IF ( OCTAU(K) < 0.e+0_fp ) THEN - IF ( ABS(OCTAU(K)) < 1.e+0_fp ) THEN - OCTAU(K)=1.e-50_fp !0.e+0_fp !try change to tiny number instead of 0e+0_fp (win, 5/28/06) - ELSE - PRINT *,' ######### Subroutine SOACOND: NEGATIVE TAU' - PRINT *,'Error at',i,j,l,'bin',k - PRINT *,'octau(k)',octau(k) - CALL ERROR_STOP( 'Negative Tau','SOACOND:2' ) + ! Error checking for negative Tau + IF ( OCTAU(K) < 0.e+0_fp ) THEN + IF ( ABS(OCTAU(K)) < 1.e+0_fp ) THEN + ! change to tiny number instead of 0e+0_fp (win, 5/28/06) + OCTAU(K)=1.e-50_fp + ELSE + PRINT *,' ######### Subroutine SOACOND: NEGATIVE TAU' + PRINT *,'Error at',i,j,l,'bin',k + PRINT *,'octau(k)',octau(k) + CALL ERROR_STOP( 'Negative Tau','SOACOND:2' ) + ENDIF ENDIF + + ELSE + OCTAU(K) = 0.e+0_fp ENDIF + ENDDO + + ! Call condensation algorithm + ! Swap into Nko, Mko + Mko(:,:) = 0.e+0_fp + DO K = 1, IBINS + Nko(K) = Nk(K) + DO JC = 1, ICOMP-IDIAG ! Now do SOA condensation "dry" + Mko(K,JC) = Mk(K,JC) ! dry mass excl. nh4 + ENDDO + ENDDO + + !debug if(i==24.and.j==13) pdbg = .true. + CALL TMCOND( OCTAU, XK, Mko, Nko, Mkf, Nkf, SRTOCIL, PDBG, MABS ) + + ! ----------- JRP ADD MNFIX...This is for xSOA (JKodros 6/2/15) -------- + if (pdbg) negvalue=.true. !signal received to printdebug (win, 4/8/06) + call mnfix(Nkf,Mkf,negvalue) ! bug fix call argument + !(win, 4/15/06) ! Add call argument to carry tell where mnfix + !found + if(negvalue) STOP 'MNFIX terminate' !(win, 9/12/05) + ! the negative value (win, 9/12/05) + !----------------------------------------------------------------------- + IF( PDBG ) THEN + !print 12, I,J,L +12 FORMAT( 'Error in SOAcond at ', 3I4 ) + if( .not. SPINUP(60.) )write(116,*) 'Error in SOACOND at',i,j,l ELSE - OCTAU(K) = 0.e+0_fp + PDBG = .false. ENDIF - ENDDO - ! Call condensation algorithm - ! Swap into Nko, Mko - Mko(:,:) = 0.e+0_fp - DO K = 1, IBINS - Nko(K) = Nk(K) - DO JC = 1, ICOMP-IDIAG ! Now do SOA condensation "dry" - Mko(K,JC) = Mk(K,JC) ! dry mass excl. nh4 + ! Swap out of Nkf, Mkf + DO K = 1, IBINS + Nk(k)=Nkf(k) + DO JC = 1, ICOMP-IDIAG + Mk(K,JC) = Mkf(K,JC) + ENDDO ENDDO - ENDDO - !debug if(i==24.and.j==13) pdbg = .true. - CALL TMCOND( OCTAU, XK, Mko, Nko, Mkf, Nkf, SRTOCIL, PDBG, MABS ) - - ! ----------- JRP ADD MNFIX...This is for xSOA (JKodros 6/2/15) ----------- - if (pdbg) negvalue=.true. !signal received to printdebug (win, 4/8/06) - call mnfix(Nkf,Mkf,negvalue) ! bug fix call argument - !(win, 4/15/06) ! Add call argument to carry tell where mnfix - !found - if(negvalue) STOP 'MNFIX terminate' !(win, 9/12/05) - ! the negative value (win, 9/12/05) - !--------------------------------------------------------------------------- - IF( PDBG ) THEN - !print 12, I,J,L -12 FORMAT( 'Error in SOAcond at ', 3I4 ) - if( .not. SPINUP(60.) )write(116,*) 'Error in SOACOND at',i,j,l - ELSE - PDBG = .false. - ENDIF + elseif ( .not. SPINUP(60.0) ) THEN - ! Swap out of Nkf, Mkf - DO K = 1, IBINS - Nk(k)=Nkf(k) - DO JC = 1, ICOMP-IDIAG - Mk(K,JC) = Mkf(K,JC) - ENDDO - ENDDO + IF ( MSOA > 5e+0_fp ) THEN + CALL ERROR_STOP('Too few no. for SOAcond','SOACOND:10') + ENDIF + + else + + ! Put a limit on the amount of screen warnings that we get + ! to keep logfile sizes low (bmy, 9/30/19) + SOACOND_WARNING_CT = SOACOND_WARNING_CT + 1 + IF ( SOACOND_WARNING_CT < SOACOND_WARNING_MAX ) THEN + WRITE(*,*) 'SOACOND WARNING: SOA mass is being discarded' + ENDIF + + endif ! bc, 13/01/22 medtot can be low on spinup 30 CONTINUE ! Save changes to diagnostic MPNUM = 6 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) & - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, State_Grid ) -#endif + IF ( State_Diag%Archive_TomasSOAmass .or. & + State_Diag%Archive_TomasSOAnumber ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) + ENDIF ! Fix any inconsistencies in M/N distribution !this never happened? ! Swap Nk and Mk arrays back to Spc array DO K = 1, IBINS - TRACNUM = id_NK1 - 1 + K + TRACNUM = id_NK01 - 1 + K Spc(TRACNUM)%Conc(I,J,L) = Nk(K) DO JC = 1, ICOMP-IDIAG - TRACNUM = id_NK1 - 1 + K + IBINS*JC + TRACNUM = id_NK01 - 1 + K + IBINS*JC Spc(TRACNUM)%Conc(I,J,L) = Mk(K,JC) ENDDO - Spc(id_AW1-1+K)%Conc(I,J,L) = Mk(K,SRTH2O) + Spc(id_AW01-1+K)%Conc(I,J,L) = Mk(K,SRTH2O) ENDDO ! Free pointer memory @@ -4189,7 +4116,7 @@ END SUBROUTINE SOACOND ! ! !IROUTINE: multicoag ! -! !DESCRIPTION: +! !DESCRIPTION: !\\ !\\ ! !INTERFACE: @@ -5046,7 +4973,7 @@ SUBROUTINE SO4COND(Nki,Mki,Gci,Nkf,Mkf,Gcf,dt, & write(*,*)'+++ cdt',cdt ! endif !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - + atauc(k,srtso4)=tj(srtso4)*tk(k)*dp(k,srtso4)*cdt if (sK .gt. 0.e+0_fp) then @@ -5216,7 +5143,7 @@ SUBROUTINE SO4COND(Nki,Mki,Gci,Nkf,Mkf,Gcf,dt, & Mkf(k,jj)=Mko(k,jj) enddo enddo - + !Update water concentrations call ezwatereqm(Mkf, RHTOMAS) @@ -5827,7 +5754,7 @@ SUBROUTINE TMCOND(TAU,X,AMKD,ANKD,AMK,ANK,CSPECIES,pdbug,moxd) print *,'Number_that_remain_in_low_bin',DN endif !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - + ! For fixing mass conserv problem (win, 7/24/06) macc=0e+0_fp @@ -6018,18 +5945,14 @@ END SUBROUTINE TMCOND !\\ ! !INTERFACE: ! - SUBROUTINE AERODIAG( PTYPE, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, State_Grid ) + SUBROUTINE AERODIAG( PTYPE, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD - USE DIAG_MOD, ONLY : AD60_COND, AD60_COAG, AD60_NUCL - USE DIAG_MOD, ONLY : AD60_AQOX, AD60_ERROR, AD60_SOA - USE DIAG_MOD, ONLY : AD61, AD61_INST -#endif USE ERROR_MOD, ONLY : IT_IS_NAN USE State_Grid_Mod, ONLY : GrdState + USE State_Diag_Mod, ONLY : DgnState USE TIME_MOD, ONLY : GET_TS_CHEM ! ! !INPUT PARAMETERS: @@ -6040,9 +5963,12 @@ SUBROUTINE AERODIAG( PTYPE, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, State_Grid ) REAL(fp), INTENT(IN) :: Nkd(IBINS) REAL(fp), INTENT(IN) :: Mk(IBINS, ICOMP) REAL(fp), INTENT(IN) :: Mkd(IBINS,ICOMP) - REAL*4, INTENT(IN) :: BOXVOL + REAL*4, INTENT(IN) :: BOXMASS TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object ! +! !INPUT/OUTPUT PARAMETERS: + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics State object +! ! !REVISION HISTORY: ! See https://github.com/geoschem/geos-chem for complete history !EOP @@ -6051,140 +5977,415 @@ SUBROUTINE AERODIAG( PTYPE, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, State_Grid ) ! ! !LOCAL VARIABLES: ! - INTEGER :: K, JS - REAL*4 :: ADXX(IBINS*(ICOMP-IDIAG+1)) - REAL*4, SAVE :: ACCUN, ACCUM(2) - LOGICAL, SAVE :: FIRST = .TRUE. - real*4 :: tempsum + INTEGER :: K, JS, S REAL*4 :: DTCHEM !================================================================= ! AERODIAG begins here! !================================================================= -#ifdef BPCH_DIAG - - ! PTYPE = 7 is for ND61 --- NOW use for Nucleation at species NK1 - ! Note: This is created to look at 3-D rate for a selected process - ! Right now (5/21/08) I created this to watch NUCLEATION rate - ! We can't afford to save all 30-bin and all mass component - ! in all (I,J,L), thus this is created. (win, 5/21/08) - IF ( PTYPE == 7 ) THEN - IF ( L <= LD61 ) THEN - DTCHEM = GET_TS_CHEM() ! chemistry time step in sec - AD61(I,J,L,1) = AD61(I,J,L,1) + ( NK(1) - NKD(1) )/ DTCHEM / BOXVOL ! no./cm3/sec - AD61_INST(I,J,L,1) = ( NK(1) - NKD(1) ) /DTCHEM / BOXVOL ! no./cm3/sec - - !IF(i==39 .and. j==29 ) then - !if ( AD61_INST(I,J,L) .gt. 1e18) write(6,*) '*********', & - ! 'AD61_INST(',I,J,L,')', AD61_INST(I,J,L) - !endif - ENDIF - ELSE ! PTYPE = 1-6 is for ND60 - - ADXX(:) = 0e+0_fp - IF ( FIRST ) THEN - ACCUN = 0e0 - ACCUM(:) = 0e0 - FIRST = .FALSE. - ENDIF - - ! Debug: check error fixed accumulated at each step - !IF ( I == 1 .and. J == 1 .and. L == 1 .and. PTYPE == 2) then - ! print *, 'Accumulated diagnostic for ND60 #',PTYPE,' at',i,j,l - ! print *, ' Number :',ACCUN - ! print *, ' Sulf :',ACCUM(1) - ! print *, ' NaCl :',ACCUM(2) - !ENDIF - - IF ( L <= LD60 ) THEN - - SELECT CASE ( PTYPE ) - CASE ( 1 ) ! Condensation diagnostic - ADXX(:) = AD60_COND(1,J,L,:) - - CASE ( 2 ) ! Coagulation diagnostic - ADXX(:) = AD60_COAG(1,J,L,:) - CASE ( 3 ) ! Nucleation diagnostic - ADXX(:) = AD60_NUCL(1,J,L,:) + State_Diag%TomasH2SO4 = 1.e+0_fp + State_Diag%TomasCOAG = 2.e+0_fp + State_Diag%TomasNUCL = 3.e+0_fp + State_Diag%TomasAQOX = 4.e+0_fp + State_Diag%TomasMNFIX = 5.e+0_fp + State_Diag%TomasSOA = 6.e+0_fp - CASE ( 4 ) ! Aqueous oxidation diagnostic - ADXX(:) = AD60_AQOX(1,J,L,:) + DTCHEM = GET_TS_CHEM() ! chemistry time step in sec - CASE ( 5 ) ! Error fudging diagnostic - ADXX(:) = AD60_ERROR(1,J,L,:) - - CASE ( 6 ) ! SOA condensation diagnostic - ADXX(:) = AD60_SOA(1,J,L,:) - END SELECT - - ! Change of aerosol number - DO K = 1, IBINS - ADXX(K) = ADXX(K) + NK(K) - NKD(K) - !IF ( PTYPE == 2 ) ACCUN = ACCUN + NK(K) - NKD(K) + IF ( PTYPE == 1 ) THEN + DO K=1,IBINS + State_Diag%TomasH2SO4mass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasH2SO4number(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasH2SO4mass ) THEN + S = State_Diag%Map_TomasH2SO4mass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasH2SO4mass(I,J,L,K) = & + State_Diag%TomasH2SO4mass(I,J,L,K) + & + (MK(K,JS) - MKD(K,JS)) / DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF ENDDO - IF ( IT_IS_NAN(ACCUN)) print *,'AERODIAG: Nan',I,J,L + IF ( State_Diag%Archive_TomasH2SO4number ) THEN + S = State_Diag%Map_TomasH2SO4number%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasH2SO4number(I,J,L,K) = & + State_Diag%TomasH2SO4number(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF - ! Change of aerosol mass + IF ( PTYPE == 2 ) THEN + DO K=1,IBINS + State_Diag%TomasCOAGmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasCOAGnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasCOAGmass ) THEN + S = State_Diag%Map_TomasCOAGmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasCOAGmass(I,J,L,K) = & + State_Diag%TomasCOAGmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasCOAGnumber ) THEN + S = State_Diag%Map_TomasCOAGnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasCOAGnumber(I,J,L,K) = & + State_Diag%TomasCOAGnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 3 ) THEN + DO K=1,IBINS + State_Diag%TomasNUCLmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasNUCLnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasNUCLmass ) THEN + S = State_Diag%Map_TomasNUCLmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasNUCLmass(I,J,L,K) = & + State_Diag%TomasNUCLmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + + IF ( State_Diag%Archive_TomasNUCLnumber ) THEN + S = State_Diag%Map_TomasNUCLnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasNUCLnumber(I,J,L,K) = & + State_Diag%TomasNUCLnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 4 ) THEN + DO K=1,IBINS + State_Diag%TomasAQOXmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasAQOXnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasAQOXmass ) THEN + S = State_Diag%Map_TomasAQOXmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasAQOXmass(I,J,L,K) = & + State_Diag%TomasAQOXmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasAQOXnumber ) THEN + S = State_Diag%Map_TomasAQOXnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasAQOXnumber(I,J,L,K) = & + State_Diag%TomasAQOXnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec \ + + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 5 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXmass ) THEN + S = State_Diag%Map_TomasMNFIXmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXmass(I,J,L,K) = & + State_Diag%TomasMNFIXmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXnumber ) THEN + S = State_Diag%Map_TomasMNFIXnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXnumber(I,J,L,K) = & + State_Diag%TomasMNFIXnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 6 ) THEN + DO K=1,IBINS + State_Diag%TomasSOAmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasSOAnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasSOAmass ) THEN + S = State_Diag%Map_TomasSOAmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasSOAmass(I,J,L,K) = & + State_Diag%TomasSOAmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasSOAnumber ) THEN + S = State_Diag%Map_TomasSOAnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasSOAnumber(I,J,L,K) = & + State_Diag%TomasSOAnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 7 ) THEN + DO K=1,IBINS + State_Diag%TomasNUCRATEnumber(I,J,L,K) = 0.e+0_fp + IF ( State_Diag%Archive_TomasNUCRATEnumber ) THEN + S = State_Diag%Map_TomasNUCRATEnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasNUCRATEnumber(I,J,L,K) = & + State_Diag%TomasNUCRATEnumber(I,J,L,K) + (NK(K) - NKD(K)) / & + DTCHEM / BOXMASS ! no./kg air/sec + ! print*,'Values for nuc',BOXMASS,DTCHEM,NK(K),NKD(K),K, & + ! (NK(K) - NKD(K)), (NK(K) - NKD(K)) / & + ! DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 11 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXezwat1mass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXezwat1number(I,J,L,K) = 0.e+0_fp DO JS = 1, ICOMP-IDIAG - tempsum = 0e0 - DO K = 1, IBINS - ADXX(JS*IBINS+K) = ADXX(JS*IBINS+K) + MK(K,JS) - MKD(K,JS) - !tempsum = tempsum + MK(K,JS) - MKD(K,JS) - !IF (PTYPE == 2 ) ACCUM(JS) = ACCUM(JS) + MK(K,JS) - MKD(K,JS) - ENDDO + IF ( State_Diag%Archive_TomasMNFIXezwat1mass ) THEN + S = State_Diag%Map_TomasMNFIXezwat1mass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXezwat1mass(I,J,L,K) = & + State_Diag%TomasMNFIXezwat1mass(I,J,L,K) + & + (MK(K,JS) - MKD(K,JS))/ DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF ENDDO - !IF ( IT_IS_NAN(ACCUM(1))) print *,'ADIAG: Nan',I,J,L - - ! Put the updated values back into the diagnostic arrays - SELECT CASE ( PTYPE ) - CASE ( 1 ) ! Condensation diagnostic - AD60_COND(1,J,L,:) = ADXX(:) - - CASE ( 2 ) ! Coagulation diagnostic - AD60_COAG(1,J,L,:) = ADXX(:) + IF ( State_Diag%Archive_TomasMNFIXezwat1number ) THEN + S = State_Diag%Map_TomasMNFIXezwat1number%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXezwat1number(I,J,L,K) = & + State_Diag%TomasMNFIXezwat1number(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF - CASE ( 3 ) ! Nucleation diagnostic - AD60_NUCL(1,J,L,:) = ADXX(:) + IF ( PTYPE == 12 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXezwat2mass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXezwat2number(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXezwat2mass ) THEN + S = State_Diag%Map_TomasMNFIXezwat2mass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXezwat2mass(I,J,L,K) = & + State_Diag%TomasMNFIXezwat2mass(I,J,L,K) + & + (MK(K,JS) - MKD(K,JS))/ DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXezwat2number ) THEN + S = State_Diag%Map_TomasMNFIXezwat2number%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXezwat2number(I,J,L,K) = & + State_Diag%TomasMNFIXezwat2number(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF - CASE ( 4 ) ! Aqueous oxidation diagnostic - AD60_AQOX(1,J,L,:) = ADXX(:) + IF ( PTYPE == 13 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXezwat3mass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXezwat3number(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXezwat3mass ) THEN + S = State_Diag%Map_TomasMNFIXezwat3mass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXezwat3mass(I,J,L,K) = & + State_Diag%TomasMNFIXezwat3mass(I,J,L,K) + & + (MK(K,JS) - MKD(K,JS))/ DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXezwat3number ) THEN + S = State_Diag%Map_TomasMNFIXezwat3number%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXezwat3number(I,J,L,K) = & + State_Diag%TomasMNFIXezwat3number(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF - CASE ( 5 ) ! Error fudging diagnostic - AD60_ERROR(1,J,L,:) = ADXX(:) + IF ( PTYPE == 14 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXh2so4mass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXh2so4number(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXh2so4mass ) THEN + S = State_Diag%Map_TomasMNFIXh2so4mass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXh2so4mass(I,J,L,K) = & + State_Diag%TomasMNFIXh2so4mass(I,J,L,K) + & + (MK(K,JS) - MKD(K,JS))/ DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXh2so4number ) THEN + S = State_Diag%Map_TomasMNFIXh2so4number%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXh2so4number(I,J,L,K) = & + State_Diag%TomasMNFIXh2so4number(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF - CASE ( 6 ) ! SOA condensation diagnostic - AD60_SOA(1,J,L,:) = ADXX(:) - END SELECT + IF ( PTYPE == 15 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXcoagmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXcoagnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXcoagmass ) THEN + S = State_Diag%Map_TomasMNFIXcoagmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXcoagmass(I,J,L,K) = & + State_Diag%TomasMNFIXcoagmass(I,J,L,K) + & + (MK(K,JS) - MKD(K,JS))/ DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXcoagnumber ) THEN + S = State_Diag%Map_TomasMNFIXcoagnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXcoagnumber(I,J,L,K) = & + State_Diag%TomasMNFIXcoagnumber(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF - ENDIF - ! Debug: check error fixed accumulated at each step - !IF ( I == 3 .and. J == 41 .and. L == 30 .and. PTYPE == 5) then - ! print *, 'Accumulated diagnostic for ND60 #',PTYPE,' at',i,j,l - ! print *, ' Number :',ACCUN - ! print *, ' Sulf :',ACCUM(1) - ! print *, ' NaCl :',ACCUM(2) - ! print *, ' Nk',Nk(:) - ! print *, ' Nkd',Nkd(:) - ! print *, ' Mk',Mk(:,1) - ! print *, ' Mkd',Mkd(:,1) - ! print *, ' Mk',Mk(:,2) - ! print *, ' Mkd',Mkd(:,2) - !ENDIF + IF ( PTYPE == 16 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXaqoxmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXaqoxnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXaqoxmass ) THEN + S = State_Diag%Map_TomasMNFIXaqoxmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXaqoxmass(I,J,L,K) = & + State_Diag%TomasMNFIXaqoxmass(I,J,L,K) + & + (MK(K,JS) - MKD(K,JS))/ DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXaqoxnumber ) THEN + S = State_Diag%Map_TomasMNFIXaqoxnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXaqoxnumber(I,J,L,K) = & + State_Diag%TomasMNFIXaqoxnumber(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF - ! Debug: check error fixed accumulated at each step - IF ( I == State_Grid%NX .and. J == State_Grid%NY .and. & - L == State_Grid%NZ .and. PTYPE == 2 ) then - !print *, 'Accumulated diagnostic for ND60 #',PTYPE,' at',i,j,l - print *, ' Accumulated Coagulation' - print *, ' Number :',ACCUN - print *, ' Sulf :',ACCUM(1) - print *, ' NaCl :',ACCUM(2) - ENDIF + IF ( PTYPE == 17 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXcheck1mass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXcheck1number(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXcheck1mass ) THEN + S = State_Diag%Map_TomasMNFIXcheck1mass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXcheck1mass(I,J,L,K) = & + State_Diag%TomasMNFIXcheck1mass(I,J,L,K) + & + (MK(K,JS) - MKD(K,JS))/ DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXcheck1number ) THEN + S = State_Diag%Map_TomasMNFIXcheck1number%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXcheck1number(I,J,L,K) = & + State_Diag%TomasMNFIXcheck1number(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF - ENDIF ! If (PTYPE == 7) + IF ( PTYPE == 18 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXcheck2mass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXcheck2number(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXcheck2mass ) THEN + S = State_Diag%Map_TomasMNFIXcheck2mass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXcheck2mass(I,J,L,K) = & + State_Diag%TomasMNFIXcheck2mass(I,J,L,K) + & + (MK(K,JS) - MKD(K,JS))/ DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXcheck2number ) THEN + S = State_Diag%Map_TomasMNFIXcheck2number%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXcheck2number(I,J,L,K) = & + State_Diag%TomasMNFIXcheck2number(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF -#endif + IF ( PTYPE == 19 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXcheck3mass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXcheck3number(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXcheck3mass ) THEN + S = State_Diag%Map_TomasMNFIXcheck3mass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXcheck3mass(I,J,L,K) = & + State_Diag%TomasMNFIXcheck3mass(I,J,L,K) + & + ( MK(K,JS) - MKD(K,JS))/ DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXcheck3number ) THEN + S = State_Diag%Map_TomasMNFIXcheck3number%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXcheck3number(I,J,L,K) = & + State_Diag%TomasMNFIXcheck3number(I,J,L,K) + & + (NK(K) - NKD(K))/ DTCHEM / BOXMASS ! no/kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF END SUBROUTINE AERODIAG !EOC @@ -6250,35 +6451,39 @@ SUBROUTINE INIT_TOMAS( Input_Opt, State_Chm, State_Grid, RC ) ! Define species indices here, these are now saved as ! module variables (bmy, 6/20/16) - id_NK1 = Ind_('NK1' ) - id_H2SO4 = Ind_('H2SO4') - id_AW1 = Ind_('AW1' ) - id_SF1 = Ind_('SF1' ) - id_SO4 = Ind_('SO4' ) - id_NH3 = Ind_('NH3' ) - id_NH4 = Ind_('NH4' ) - id_SF1 = Ind_('SF1' ) - id_SS1 = Ind_('SS1' ) - id_ECIL1 = Ind_('ECIL1') - id_ECOB1 = Ind_('ECOB1') - id_OCIL1 = Ind_('OCIL1') - id_OCOB1 = Ind_('OCOB1') - id_DUST1 = Ind_('DUST1') + id_NK01 = Ind_('NK01' ) + id_H2SO4 = Ind_('H2SO4') + id_AW01 = Ind_('AW01' ) + id_SF01 = Ind_('SF01' ) + id_SO4 = Ind_('SO4' ) + id_NH3 = Ind_('NH3' ) + id_NH4 = Ind_('NH4' ) + id_SF01 = Ind_('SF01' ) + id_SS01 = Ind_('SS01' ) + id_ECIL01 = Ind_('ECIL01') + id_ECOB01 = Ind_('ECOB01') + id_OCIL01 = Ind_('OCIL01') + id_OCOB01 = Ind_('OCOB01') + id_DUST01 = Ind_('DUST01') + + ! Number of size bins + IBINS = State_Chm%nTomasBins ! Now read large TOMAS input files from a common disk directory ! (bmy, 1/30/14) DATA_DIR = TRIM( Input_Opt%CHEM_INPUTS_DIR ) // 'TOMAS_201402/' + ! comment out if shut off subgridcoag 14/12/23, bc ! Define subgrid coagulation timescale (win, 10/28/08) - IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN - SGCTSCALE = 10.*3600. ! 10 hours - ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN - SGCTSCALE = 5.*3600. - ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN - SGCTSCALE = 1.*3600. - ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN - SGCTSCALE = 0.5*3600. - ENDIF + !IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN + ! SGCTSCALE = 10.0_fp*3600.0_fp ! 10 hours + !ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN + ! SGCTSCALE = 5.0_fp*3600.0_fp + !ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN + ! SGCTSCALE = 1.0_fp*3600.0_fp + !ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN + ! SGCTSCALE = 0.50_fp*3600.0_fp + !ENDIF #if defined(TOMAS40) Mo = 1.0e-21_fp*2.e+0_fp**(-10) @@ -6291,43 +6496,30 @@ SUBROUTINE INIT_TOMAS( Input_Opt, State_Chm, State_Grid, RC ) ICOMP = 0 IDIAG = 0 K = 0 - !IF( LSULF30 ) THEN - IF (id_SF1 > 0) THEN + IF (id_SF01 > 0) THEN ICOMP = ICOMP + 1 - !SRTSO4 = ICOMP ENDIF - !IF( LSALT30 ) THEN - IF ( id_SS1 > 0 ) THEN + IF ( id_SS01 > 0 ) THEN ICOMP = ICOMP + 1 - !SRTNACL = ICOMP ENDIF - !IF( LCARB30 ) THEN - IF ( id_ECIL1 > 0 .AND. id_ECOB1 > 0 .AND. & - id_OCIL1 > 0 .AND. id_OCOB1 > 0 ) THEN + IF ( id_ECIL01 > 0 .AND. id_ECOB01 > 0 .AND. & + id_OCIL01 > 0 .AND. id_OCOB01 > 0 ) THEN ICOMP = ICOMP + 1 - !SRTECIL = ICOMP ICOMP = ICOMP + 1 - !SRTECOB = ICOMP ICOMP = ICOMP + 1 - !SRTOCIL = ICOMP ICOMP = ICOMP + 1 - !SRTOCOB = ICOMP ENDIF - !IF( LDUST30 ) THEN - IF ( id_DUST1 > 0 ) THEN + IF ( id_DUST01 > 0 ) THEN ICOMP = ICOMP + 1 - !SRTDUST = ICOMP ENDIF ! Have to add one more for aerosol water IF( ICOMP > 1 ) THEN ICOMP = ICOMP + 1 IDIAG = IDIAG + 1 - !SRTNH4 = ICOMP ICOMP = ICOMP + 1 IDIAG = IDIAG + 1 - !SRTH2O = ICOMP ENDIF print *, 'In init_TOMAS, ICOMP = ', ICOMP print *, 'In init_TOMAS, IBINS = ', IBINS @@ -6336,14 +6528,136 @@ SUBROUTINE INIT_TOMAS( Input_Opt, State_Chm, State_Grid, RC ) ! Allocate arrays !================================================================= + ALLOCATE( Xk( State_Chm%nTomasBins+1 ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'Xk [TOMAS]' ) + Xk(:) = 0e+0_fp + + ALLOCATE( AVGMASS( State_Chm%nTomasBins ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'AVGMASS [TOMAS]' ) + AVGMASS(:) = 0e+0_fp + + ALLOCATE( OCSCALE30( State_Chm%nTomasBins ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'OCSCALE30 [TOMAS]' ) + OCSCALE30(:) = 0e+0_fp + + ALLOCATE( OCSCALE100( State_Chm%nTomasBins ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'OCSCALE100 [TOMAS]' ) + OCSCALE100(:) = 0e+0_fp + + ALLOCATE( ECSCALE30( State_Chm%nTomasBins ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'ECSCALE30 [TOMAS]' ) + ECSCALE30(:) = 0e+0_fp + + ALLOCATE( ECSCALE100( State_Chm%nTomasBins ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'ECSCALE100 [TOMAS]' ) + ECSCALE100(:) = 0e+0_fp + ALLOCATE( MOLWT( ICOMP ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'MOLWT [TOMAS]' ) MOLWT(:) = 0e+0_fp - + ALLOCATE( H2SO4_RATE(State_Grid%NX,State_Grid%NY,State_Grid%NZ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'H2SO4_RATE' ) H2SO4_RATE = 0.0e+0_fp + ALLOCATE( PSO4AQ_RATE(State_Grid%NX,State_Grid%NY,State_Grid%NZ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'PSO4AQ_RATE' ) + PSO4AQ_RATE = 0.0e+0_fp + + +#if defined( TOMAS12 ) || defined( TOMAS15 ) + !tomas12 or tomas15 + ! use for fossil fuel (bimodal) + OCSCALE30 = [ & +#ifdef TOMAS15 + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & +#endif + 1.1291e-03_fp, 4.9302e-03_fp, 1.2714e-02_fp, 3.6431e-02_fp, & + 1.0846e-01_fp, 2.1994e-01_fp, 2.7402e-01_fp, 2.0750e-01_fp, & + 9.5304e-02_fp, 2.6504e-02_fp, 1.2925e-02_fp, 1.6069e-05_fp ] + + ! use for biomass burning + OCSCALE100 = [ & +#ifdef TOMAS15 + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & +#endif + 1.9827e-06_fp, 3.9249e-05_fp, 5.0202e-04_fp, 4.1538e-03_fp, & + 2.2253e-02_fp, 7.7269e-02_fp, 1.7402e-01_fp, 2.5432e-01_fp, & + 2.4126e-01_fp, 1.4856e-01_fp, 7.6641e-02_fp, 9.8120e-04_fp ] + + ! use for fossil fuel (bimodal) + ECSCALE30 = [ & +#ifdef TOMAS15 + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & +#endif + 1.1291e-03_fp, 4.9302e-03_fp, 1.2714e-02_fp, 3.6431e-02_fp, & + 1.0846e-01_fp, 2.1994e-01_fp, 2.7402e-01_fp, 2.0750e-01_fp, & + 9.5304e-02_fp, 2.6504e-02_fp, 1.2925e-02_fp, 1.6069e-05_fp ] + + ! use for biomass burning + ECSCALE100 = [ & +#ifdef TOMAS15 + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & +#endif + 1.9827e-06_fp, 3.9249e-05_fp, 5.0202e-04_fp, 4.1538e-03_fp, & + 2.2253e-02_fp, 7.7269e-02_fp, 1.7402e-01_fp, 2.5432e-01_fp, & + 2.4126e-01_fp, 1.4856e-01_fp, 7.6641e-02_fp, 9.8120e-04_fp ] + +#else + !tomas30 or tomas40 + ! use for fossil fuel + OCSCALE30 = [ & +#ifdef TOMAS40 + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & +#endif + 1.04e-03_fp, 2.77e-03_fp, 6.60e-03_fp, 1.41e-02_fp, 2.69e-02_fp, & + 4.60e-02_fp, 7.06e-02_fp, 9.69e-02_fp, 1.19e-01_fp, 1.31e-01_fp, & + 1.30e-01_fp, 1.15e-01_fp, 9.07e-02_fp, 6.44e-02_fp, 4.09e-02_fp, & + 2.33e-02_fp, 1.19e-02_fp, 5.42e-03_fp, 2.22e-03_fp, 8.12e-04_fp, & + 2.66e-04_fp, 7.83e-05_fp, 2.06e-05_fp, 4.86e-06_fp, 1.03e-06_fp, & + 1.94e-07_fp, 3.29e-08_fp, 4.99e-09_fp, 6.79e-10_fp, 8.26e-11_fp ] + + ! use for biomass burning + OCSCALE100 = [ & +#ifdef TOMAS40 + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & +#endif + 3.2224e-07_fp, 1.6605e-06_fp, 7.6565e-06_fp, 3.1592e-05_fp, 0.00011664_fp, & + 0.00038538_fp, 0.0011394_fp, 0.0030144_fp, 0.0071362_fp, 0.015117_fp, & + 0.028657_fp, 0.048612_fp, 0.073789_fp, 0.10023_fp, 0.12182_fp, & + 0.1325_fp, 0.12895_fp, 0.11231_fp, 0.087525_fp, 0.061037_fp, & + 0.038089_fp, 0.02127_fp, 0.010628_fp, 0.0047523_fp, 0.0019015_fp, & + 0.00068081_fp, 0.00021813_fp, 6.2536e-05_fp, 1.6044e-05_fp, 3.6831e-06_fp ] + + ! use for fossil fuel + ECSCALE30 = [ & +#ifdef TOMAS40 + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & +#endif + 1.04e-03_fp, 2.77e-03_fp, 6.60e-03_fp, 1.41e-02_fp, 2.69e-02_fp, & + 4.60e-02_fp, 7.06e-02_fp, 9.69e-02_fp, 1.19e-01_fp, 1.31e-01_fp, & + 1.30e-01_fp, 1.15e-01_fp, 9.07e-02_fp, 6.44e-02_fp, 4.09e-02_fp, & + 2.33e-02_fp, 1.19e-02_fp, 5.42e-03_fp, 2.22e-03_fp, 8.12e-04_fp, & + 2.66e-04_fp, 7.83e-05_fp, 2.06e-05_fp, 4.86e-06_fp, 1.03e-06_fp, & + 1.94e-07_fp, 3.29e-08_fp, 4.99e-09_fp, 6.79e-10_fp, 8.26e-11_fp ] + + ! use for biomass burning + ECSCALE100 = [ & +#ifdef TOMAS40 + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & + 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, 0.0e+0_fp, & +#endif + 3.2224e-07_fp, 1.6605e-06_fp, 7.6565e-06_fp, 3.1592e-05_fp, 0.00011664_fp, & + 0.00038538_fp, 0.0011394_fp, 0.0030144_fp, 0.0071362_fp, 0.015117_fp, & + 0.028657_fp, 0.048612_fp, 0.073789_fp, 0.10023_fp, 0.12182_fp, & + 0.1325_fp, 0.12895_fp, 0.11231_fp, 0.087525_fp, 0.061037_fp, & + 0.038089_fp, 0.02127_fp, 0.010628_fp, 0.0047523_fp, 0.0019015_fp, & + 0.00068081_fp, 0.00021813_fp, 6.2536e-05_fp, 1.6044e-05_fp, 3.6831e-06_fp ] +#endif + !================================================================= ! Calculate aerosol size bin boundaries (dry mass / particle) !================================================================= @@ -6447,7 +6761,7 @@ END SUBROUTINE INIT_TOMAS ! ! !IROUTINE: readbinact ! -! !DESCRIPTION: +! !DESCRIPTION: !\\ !\\ ! !INTERFACE: @@ -6502,7 +6816,7 @@ END SUBROUTINE READBINACT ! ! !IROUTINE: readfraction ! -! !DESCRIPTION: +! !DESCRIPTION: !\\ !\\ ! !INTERFACE: @@ -6564,8 +6878,9 @@ END SUBROUTINE READFRACTION !\\ ! !INTERFACE: ! - SUBROUTINE GETFRACTION( I, J, L, N, LS, State_Chm, State_Grid, & - State_Met, FRACTION, SOLFRAC ) + SUBROUTINE GETFRACTION( I, J, L, N, & + LS, State_Chm, State_Grid, State_Met, & + FRACTION, SOLFRAC, UnitFactor ) ! ! !USES: ! @@ -6575,6 +6890,7 @@ SUBROUTINE GETFRACTION( I, J, L, N, LS, State_Chm, State_Grid, & USE State_Chm_Mod, ONLY : Ind_ USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -6584,6 +6900,7 @@ SUBROUTINE GETFRACTION( I, J, L, N, LS, State_Chm, State_Grid, & ! False= convective precip TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Met State object + REAL(fp), INTENT(IN) :: UnitFactor ! Unit conversion factor ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -6591,10 +6908,11 @@ SUBROUTINE GETFRACTION( I, J, L, N, LS, State_Chm, State_Grid, & ! ! !OUTPUT PARAMETERS: ! - !FRACTION : Scavenging fraction of the given grid box - !SOLFRAC : Soluble mass fraction of the aerosol popultion of the - ! given grid box - REAL(fp), INTENT(OUT) :: FRACTION, SOLFRAC + REAL(fp), INTENT(OUT) :: FRACTION ! Scavenging fraction + ! in grid box + REAL(fp), INTENT(OUT) :: SOLFRAC ! Soluble mass fraction +! ! of aerosol population +! ! in grid box ! ! !REMARKS: ! This routine is called from the convection routines (via wetscav_mod.F90 @@ -6617,7 +6935,6 @@ SUBROUTINE GETFRACTION( I, J, L, N, LS, State_Chm, State_Grid, & INTEGER :: BIN INTEGER :: OFFSET CHARACTER(LEN=255) :: MSG, LOC - REAL(fp) :: UNITFACTOR ! Pointers TYPE(SpcConc), POINTER :: Spc(:) @@ -6626,26 +6943,12 @@ SUBROUTINE GETFRACTION( I, J, L, N, LS, State_Chm, State_Grid, & ! GETFRACTION begins here !================================================================= - ! Determine factor used to convert Spc to units of [kg] locally - ! (ewl, 9/29/15) - IF ( TRIM( State_Chm%Spc_Units ) == 'kg/m2' ) THEN - UNITFACTOR = State_Grid%AREA_M2(I,J) - - ELSE IF ( TRIM( State_Chm%Spc_Units ) == 'kg/kg dry' ) THEN - UNITFACTOR = State_Met%AD(I,J,L) - - ELSE - MSG = 'Unexpected species units: ' // TRIM(State_Chm%Spc_Units) - LOC = 'Routine GETFRACTION in tomas_mod.F90' - CALL ERROR_STOP( MSG, LOC ) - ENDIF - ! Point to chemical species array ! Units are now [kg/m2] in wet deposition and [kg/kg total air] in ! convection (ewl, 9/29/15) Spc => State_Chm%Species - BIN = N - id_NK1 + 1 + BIN = N - id_NK01 + 1 IF ( BIN > IBINS ) THEN BIN = MOD( BIN, IBINS ) IF ( BIN == 0 ) BIN = IBINS @@ -6658,15 +6961,15 @@ SUBROUTINE GETFRACTION( I, J, L, N, LS, State_Chm, State_Grid, & MNACL = 0.E0 MDUST = 0.E0 - IF ( id_ECIL1 > 0 .AND.id_OCIL1 > 0 .AND. id_OCOB1 > 0 ) THEN - MECIL = Spc(id_ECIL1-1+BIN)%Conc(I,J,L) * UNITFACTOR - MOCIL = Spc(id_OCIL1-1+BIN)%Conc(I,J,L) * UNITFACTOR - MOCOB = Spc(id_OCOB1-1+BIN)%Conc(I,J,L) * UNITFACTOR + IF ( id_ECIL01 > 0 .AND.id_OCIL01 > 0 .AND. id_OCOB01 > 0 ) THEN + MECIL = Spc(id_ECIL01-1+BIN)%Conc(I,J,L) * UNITFACTOR + MOCIL = Spc(id_OCIL01-1+BIN)%Conc(I,J,L) * UNITFACTOR + MOCOB = Spc(id_OCOB01-1+BIN)%Conc(I,J,L) * UNITFACTOR ENDIF - IF ( id_DUST1 > 0 ) MDUST = Spc(id_DUST1-1+BIN)%Conc(I,J,L) * UNITFACTOR + IF ( id_DUST01 > 0 ) MDUST = Spc(id_DUST01-1+BIN)%Conc(I,J,L) * UNITFACTOR !account for ammonium sulfate - IF ( id_SF1 > 0 ) MSO4 = Spc(id_SF1-1+BIN)%Conc(I,J,L) * 1.2 * UNITFACTOR - IF ( id_SS1 > 0 ) MNACL = Spc(id_SS1-1+BIN)%Conc(I,J,L) * UNITFACTOR + IF ( id_SF01 > 0 ) MSO4 = Spc(id_SF01-1+BIN)%Conc(I,J,L) * 1.2 * UNITFACTOR + IF ( id_SS01 > 0 ) MNACL = Spc(id_SS01-1+BIN)%Conc(I,J,L) * UNITFACTOR MTOT = MECIL + MOCIL + MOCOB + MSO4 + MNACL + MDUST + 1.e-20 XOCIL = MOCIL / MTOT XSO4 = MSO4 / MTOT @@ -6714,7 +7017,7 @@ SUBROUTINE GETFRACTION( I, J, L, N, LS, State_Chm, State_Grid, & ! Calculate the soluble fraction of mass MECOB = 0.E0 - IF ( id_ECOB1 > 0 ) MECOB = Spc(id_ECOB1-1+BIN)%Conc(I,J,L) * UNITFACTOR + IF ( id_ECOB01 > 0 ) MECOB = Spc(id_ECOB01-1+BIN)%Conc(I,J,L) * UNITFACTOR SOLFRAC = MTOT / ( MTOT + MECOB ) ! Free pointer @@ -6729,7 +7032,7 @@ END SUBROUTINE GETFRACTION ! ! !IROUTINE: getactbin ! -! !DESCRIPTION: +! !DESCRIPTION: !\\ !\\ ! !INTERFACE: @@ -6742,6 +7045,7 @@ SUBROUTINE GETACTBIN ( I, J, L, N, LS, BINACT, State_Chm, RC ) USE ERROR_MOD USE Species_Mod, ONLY : SpcConc USE State_Chm_Mod, ONLY : ChmState + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -6785,9 +7089,9 @@ SUBROUTINE GETACTBIN ( I, J, L, N, LS, BINACT, State_Chm, RC ) ! Assume success RC = GC_SUCCESS - ! Check that species units are in [kg] (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units: ' // TRIM(State_Chm%Spc_Units) + ! Check that species units are in [kg] + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + MSG = 'Not all species are in kg!' LOC = 'Routine GETACTBIN in tomas_mod.F90' CALL ERROR_STOP( MSG, LOC ) ENDIF @@ -6795,7 +7099,7 @@ SUBROUTINE GETACTBIN ( I, J, L, N, LS, BINACT, State_Chm, RC ) ! Point to chemical species array Spc => State_Chm%Species - BIN = N - id_NK1 + 1 + BIN = N - id_NK01 + 1 IF ( BIN > IBINS ) THEN BIN = MOD( BIN, IBINS ) IF ( BIN == 0 ) BIN = IBINS @@ -6807,16 +7111,14 @@ SUBROUTINE GETACTBIN ( I, J, L, N, LS, BINACT, State_Chm, RC ) MSO4 = 0.E0 MNACL = 0.E0 - IF ( id_ECIL1 > 0 .AND.id_OCIL1 > 0 .AND. id_OCOB1 > 0 ) THEN - !IF (LCARB30) THEN - MECIL = Spc(id_ECIL1-1+BIN)%Conc(I,J,L) - MOCIL = Spc(id_OCIL1-1+BIN)%Conc(I,J,L) - MOCOB = Spc(id_OCOB1-1+BIN)%Conc(I,J,L) + IF ( id_ECIL01 > 0 .AND.id_OCIL01 > 0 .AND. id_OCOB01 > 0 ) THEN + MECIL = Spc(id_ECIL01-1+BIN)%Conc(I,J,L) + MOCIL = Spc(id_OCIL01-1+BIN)%Conc(I,J,L) + MOCOB = Spc(id_OCOB01-1+BIN)%Conc(I,J,L) ENDIF - IF ( id_DUST1 > 0 ) MDUST = Spc(id_DUST1-1+BIN)%Conc(I,J,L) - !IF (LDUST30) MDUST = Spc(id_DUST1-1+BIN)%Conc(I,J,L) - MSO4 = Spc(id_SF1-1+BIN)%Conc(I,J,L) * 1.2 !account for ammonium sulfate - MNACL = Spc(id_SS1-1+BIN)%Conc(I,J,L) + IF ( id_DUST01 > 0 ) MDUST = Spc(id_DUST01-1+BIN)%Conc(I,J,L) + MSO4 = Spc(id_SF01-1+BIN)%Conc(I,J,L) * 1.2 !account for ammonium sulfate + MNACL = Spc(id_SS01-1+BIN)%Conc(I,J,L) MTOT = MECIL + MOCIL + MOCOB + MSO4 + MNACL + MDUST + 1.e-20 XOCIL = MOCIL / MTOT @@ -6879,7 +7181,7 @@ END SUBROUTINE GETACTBIN ! wr is the ratio of wet mass to dry mass of a particle. Instead ! of calling a thermodynamic equilibrium code, this routine uses a ! simple curve fits to estimate wr based on the current humidity. -! The curve fit is based on ISORROPIA results for ammonium bisulfate +! The curve fit is based on ISORROPIA/HETP results for ammonium bisulfate ! at 273 K and sea salt at 273 K. !\\ !\\ @@ -7022,27 +7324,27 @@ SUBROUTINE EZWATEREQM2( I, J, L, BIN, State_Met, State_Chm, RC ) if (rhe .gt. 99.) rhe=99. if (rhe .lt. 1.) rhe=1. - so4mass=Spc(id_SF1-1+bin)%Conc(I,J,L)*1.2 !1.2 converts kg so4 to kg nh4hso4 + so4mass=Spc(id_SF01-1+bin)%Conc(I,J,L)*1.2 !1.2 converts kg so4 to kg nh4hso4 wrso4=waterso4(rhe) !use external function ! Add condition for srtnacl in case of running so4 only. (win, 5/8/06) - if (id_SS1.gt.0) then - naclmass=Spc(id_SS1-1+bin)%Conc(I,J,L) !already as kg nacl - no conv necessary + if (id_SS01.gt.0) then + naclmass=Spc(id_SS01-1+bin)%Conc(I,J,L) !already as kg nacl - no conv necessary wrnacl=waternacl(rhe) !use external function else naclmass = 0.e+0_fp wrnacl = 1.e+0_fp endif - if (id_OCIL1 > 0) then - ocilmass=Spc(id_OCIL1-1+bin)%Conc(I,J,L) !already as kg ocil - no conv necessary + if (id_OCIL01 > 0) then + ocilmass=Spc(id_OCIL01-1+bin)%Conc(I,J,L) !already as kg ocil - no conv necessary wrocil=waterocil(rhe) else ocilmass = 0.e+0_fp wrocil = 1.e+0_fp endif - Spc(id_AW1-1+bin)%Conc(I,J,L)= so4mass*(wrso4-1.e+0_fp) + & + Spc(id_AW01-1+bin)%Conc(I,J,L)= so4mass*(wrso4-1.e+0_fp) + & naclmass*(wrnacl-1.e+0_fp) & + ocilmass*(wrocil-1.e+0_fp) @@ -7152,7 +7454,7 @@ END SUBROUTINE EZNH3EQM ! !INTERFACE: ! SUBROUTINE AERO_DIADEN( LEV, Input_Opt, State_Chm, State_Grid, State_Met, & - DIA, DENSITY, RC ) + State_Diag, DIA, DENSITY, RC ) ! ! !USES: ! @@ -7161,9 +7463,10 @@ SUBROUTINE AERO_DIADEN( LEV, Input_Opt, State_Chm, State_Grid, State_Met, & USE Input_Opt_Mod, ONLY : OptInput USE Species_Mod, ONLY : SpcConc USE State_Chm_Mod, ONLY : ChmState - USE State_Met_Mod, ONLY : MetState + USE State_Diag_Mod, ONLY : DgnState USE State_Grid_Mod, ONLY : GrdState - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE State_Met_Mod, ONLY : MetState + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -7175,6 +7478,7 @@ SUBROUTINE AERO_DIADEN( LEV, Input_Opt, State_Chm, State_Grid, State_Met, & ! !INPUT/OUTPUT PARAMETERS: ! TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diag State object ! ! !OUTPUT PARAMETERS: ! @@ -7192,11 +7496,10 @@ SUBROUTINE AERO_DIADEN( LEV, Input_Opt, State_Chm, State_Grid, State_Met, & ! ! Scalars INTEGER :: I,J, BIN, JC, TRACID, WID - INTEGER :: N, NA, nAdvect + INTEGER :: N, NA, nAdvect, previous_units REAL(fp) :: MSO4, MNACL, MH2O REAL(fp) :: MECIL, MECOB, MOCIL, MOCOB, MDUST CHARACTER(LEN=255) :: MSG, LOC - CHARACTER(LEN=63) :: OrigUnit ! Arrays REAL(fp) :: AMASS(ICOMP) @@ -7214,17 +7517,24 @@ SUBROUTINE AERO_DIADEN( LEV, Input_Opt, State_Chm, State_Grid, State_Met, & ! Convert species units to [kg] for this routine. ! NOTE: For complete area-independence, species units will need to be ! mixing ratio or mass per unit area in TOMAS - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = KG_SPECIES, & + previous_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'Routine AERO_DIADEN in tomas_mod.F90') RETURN ENDIF - ! Check that species units are in [kg] (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units: ' // TRIM(State_Chm%Spc_Units) + ! Check that species units are in [kg] + IF ( State_Chm%Species(id_NK01)%Units /= KG_SPECIES ) THEN + MSG = 'Not all species have units "kg"!' LOC = 'Routine AERO_DIADEN in tomas_mod.F90' CALL GC_Error( MSG, RC, LOC ) ENDIF @@ -7242,8 +7552,8 @@ SUBROUTINE AERO_DIADEN( LEV, Input_Opt, State_Chm, State_Grid, State_Met, & MOCOB = 0e+0_fp MDUST = 0e+0_fp - CALL CHECKMN( 0, 0, 0, Input_Opt, State_Chm, State_Grid, & - State_Met, 'AERO_DIADEN called from DEPVEL', RC ) + CALL CHECKMN( 0, 0, 0, Input_Opt, State_Chm, State_Grid, State_Met, & + State_Diag, 'AERO_DIADEN called from DEPVEL', RC ) !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & @@ -7254,9 +7564,9 @@ SUBROUTINE AERO_DIADEN( LEV, Input_Opt, State_Chm, State_Grid, State_Met, & DO I = 1, State_Grid%NX DO BIN = 1, IBINS - TRACID = id_NK1 + BIN - 1 - !print *,"TRACID=",TRACID,"id_NK1=",id_NK1, "BIN=", BIN - WID = id_NK1 + (ICOMP - 1)*IBINS - 1 + BIN !(fixed WID to 281-310. dmw 10/3/09) + TRACID = id_NK01 + BIN - 1 + !print *,"TRACID=",TRACID,"id_NK01=",id_NK01, "BIN=", BIN + WID = id_NK01 + (ICOMP - 1)*IBINS - 1 + BIN !(fixed WID to 281-310. dmw 10/3/09) !print *, "wid=", WID, "ICOMP=", ICOMP, "IBINS=", IBINS ! Get the diameter from an external function @@ -7265,20 +7575,16 @@ SUBROUTINE AERO_DIADEN( LEV, Input_Opt, State_Chm, State_Grid, State_Met, & ! Prepare the mass mixing ratio to call external function ! for density MH2O = Spc(WID)%Conc(I,J,1) - !IF ( LSULF30 ) MSO4 = Spc(id_SF1-1+BIN)%Conc(I,J,LEV) - IF ( id_SF1 > 0 ) MSO4 = Spc(id_SF1-1+BIN)%Conc(I,J,LEV) - !IF ( LSALT30 ) MNACL = Spc(id_SS1-1+BIN)%Conc(I,J,LEV) - IF ( id_SS1 > 0 ) MNACL = Spc(id_SS1-1+BIN)%Conc(I,J,LEV) - IF ( id_ECIL1 > 0 .AND.id_ECOB1 > 0 .AND. & - id_OCIL1 > 0 .AND. id_OCOB1 > 0 ) THEN - !IF ( LCARB30 ) THEN - MECIL = Spc(id_ECIL1-1+BIN)%Conc(I,J,LEV) - MECOB = Spc(id_ECOB1-1+BIN)%Conc(I,J,LEV) - MOCIL = Spc(id_OCIL1-1+BIN)%Conc(I,J,LEV) - MOCOB = Spc(id_OCOB1-1+BIN)%Conc(I,J,LEV) + IF ( id_SF01 > 0 ) MSO4 = Spc(id_SF01-1+BIN)%Conc(I,J,LEV) + IF ( id_SS01 > 0 ) MNACL = Spc(id_SS01-1+BIN)%Conc(I,J,LEV) + IF ( id_ECIL01 > 0 .AND. id_ECOB01 > 0 .AND. & + id_OCIL01 > 0 .AND. id_OCOB01 > 0 ) THEN + MECIL = Spc(id_ECIL01-1+BIN)%Conc(I,J,LEV) + MECOB = Spc(id_ECOB01-1+BIN)%Conc(I,J,LEV) + MOCIL = Spc(id_OCIL01-1+BIN)%Conc(I,J,LEV) + MOCOB = Spc(id_OCOB01-1+BIN)%Conc(I,J,LEV) ENDIF - !IF ( LDUST30 ) MDUST = Spc(id_DUST1-1+BIN)%Conc(I,J,LEV) - IF ( id_DUST1 > 0 ) MDUST = Spc(id_DUST1-1+BIN)%Conc(I,J,LEV) + IF ( id_DUST01 > 0 ) MDUST = Spc(id_DUST01-1+BIN)%Conc(I,J,LEV) ! Get density from external function DENSITY(I,J,BIN) = AERODENS(MSO4,0.e+0_fp,1.875e-1_fp*MSO4, & @@ -7290,17 +7596,22 @@ SUBROUTINE AERO_DIADEN( LEV, Input_Opt, State_Chm, State_Grid, State_Met, & ENDDO !$OMP END PARALLEL DO - ! Check that species units are in [kg] (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units at end of AERO_DIADEN: ' & - // TRIM(State_Chm%Spc_Units) + ! Check that species units are in [kg] + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + MSG = 'Not all species are in kg!' LOC = 'Routine AERO_DIADEN in tomas_mod.F90' CALL GC_Error( MSG, RC, LOC ) ENDIF ! Convert species units back to original unit - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN CALL GC_Error('Unit conversion error', RC, & 'Routine AERO_DIADEN in tomas_mod.F90') @@ -7329,13 +7640,11 @@ END SUBROUTINE AERO_DIADEN ! SUBROUTINE CHECKMN( II, JJ, LL, Input_Opt, State_Chm, & - State_Grid, State_Met, LOCATION, RC ) + State_Grid, State_Met, State_Diag, & + LOCATION, RC ) ! ! !USES: ! -#ifdef BPCH_DIAG - USE CMN_DIAG_MOD ! ND60 -#endif USE ErrCode_Mod USE ERROR_MOD USE Input_Opt_Mod, ONLY : OptInput @@ -7343,6 +7652,7 @@ SUBROUTINE CHECKMN( II, JJ, LL, Input_Opt, State_Chm, & USE State_Chm_Mod, ONLY : ChmState USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState + USE State_Diag_Mod, ONLY : DgnState USE UnitConv_Mod ! ! !INPUT PARAMETERS: @@ -7356,6 +7666,7 @@ SUBROUTINE CHECKMN( II, JJ, LL, Input_Opt, State_Chm, & ! !INPUT/OUTPUT PARAMETERS: ! TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diag State object ! ! !OUTPUT PARAMETERS: ! @@ -7384,11 +7695,9 @@ SUBROUTINE CHECKMN( II, JJ, LL, Input_Opt, State_Chm, & REAL(fp) :: Gc(ICOMP - 1) REAL(fp) :: Gcd(ICOMP - 1) REAL*4 :: BOXVOL + REAL*4 :: BOXMASS REAL(fp) :: XFER(IBINS) - ! For values from Input_Opt - LOGICAL :: prtDebug - ! Pointers TYPE(SpcConc), POINTER :: Spc(:) @@ -7399,18 +7708,15 @@ SUBROUTINE CHECKMN( II, JJ, LL, Input_Opt, State_Chm, & ! Assume success RC = GC_SUCCESS - ! Copy values from Input_Opt - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Point to chemical species array [kg] Spc => State_Chm%Species ERRORSWITCH = .FALSE. - ! Check that species units are in [kg] (ewl, 8/13/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect species units: ' // TRIM(State_Chm%Spc_Units) - LOC = 'Routine CHECKMN in tomas_mod.F90' + ! Check that species units are in [kg] + IF ( .not. Check_Units( State_Chm, KG_SPECIES ) ) THEN + MSG = 'Not all species are in kg!' + LOC = 'Routine CHECKMN in tomas_mod.F90: ' // TRIM( LOCATION ) CALL ERROR_STOP( MSG, LOC ) ENDIF @@ -7434,7 +7740,7 @@ SUBROUTINE CHECKMN( II, JJ, LL, Input_Opt, State_Chm, & !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & !$OMP PRIVATE( I, J, L ) & - !$OMP PRIVATE( Nk, Nkd, Mk, Mkd, K, TRACNUM, JC, MPNUM, BOXVOL ) & + !$OMP PRIVATE( Nk, Nkd, Mk, Mkd, K, TRACNUM, JC, MPNUM, BOXVOL, BOXMASS ) & !$OMP PRIVATE( GC, GCd, ERRORSWITCH ) & !$OMP SCHEDULE( DYNAMIC ) DO I = I1, I2 @@ -7442,21 +7748,22 @@ SUBROUTINE CHECKMN( II, JJ, LL, Input_Opt, State_Chm, & DO L = L1, L2 BOXVOL = State_Met%AIRVOL(I,J,L) * 1.e6 !convert from m3 -> cm3 + BOXMASS = State_Met%AD(I,J,L) !kg ! Swap GEOSCHEM variables into aerosol algorithm variables DO K = 1, IBINS - TRACNUM = id_NK1 - 1 + K + TRACNUM = id_NK01 - 1 + K ! Check for nan IF ( IT_IS_NAN( Spc(TRACNUM)%Conc(I,J,L) ) ) & print *, 'Found NaN at',I, J, L,'Species',TRACNUM NK(K) = Spc(TRACNUM)%Conc(I,J,L) DO JC = 1, ICOMP-IDIAG - TRACNUM = id_NK1 - 1 + K + IBINS*JC + TRACNUM = id_NK01 - 1 + K + IBINS*JC IF ( IT_IS_NAN( Spc(TRACNUM)%Conc(I,J,L) ) ) & print *, 'Found NaN at',I, J, L,'Species',TRACNUM MK(K,JC) = Spc(TRACNUM)%Conc(I,J,L) ENDDO - MK(K,SRTH2O) = Spc(id_AW1-1+K)%Conc(I,J,L) + MK(K,SRTH2O) = Spc(id_AW01-1+K)%Conc(I,J,L) ENDDO DO JC = 1, ICOMP - 1 @@ -7489,21 +7796,38 @@ SUBROUTINE CHECKMN( II, JJ, LL, Input_Opt, State_Chm, & ENDIF ! Save the error fixing to diagnostic AERO-FIX - MPNUM = 5 -#ifdef BPCH_DIAG - IF ( ND60 > 0 ) & - CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXVOL, State_Grid ) -#endif + IF ( LOCATION .eq. 'Before Aerodrydep') THEN + MPNUM = 17 + IF ( State_Diag%Archive_TomasMNFIXcheck1mass .or. & + State_Diag%Archive_TomasMNFIXcheck1number ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) + ENDIF + ELSEIF ( LOCATION .eq. 'Before exiting DO_TOMAS') THEN + MPNUM = 18 + IF ( State_Diag%Archive_TomasMNFIXcheck2mass .or. & + State_Diag%Archive_TomasMNFIXcheck2number ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) + ENDIF + ELSEIF ( LOCATION .eq. 'AERO_DIADEN called from DEPVEL' ) THEN + MPNUM = 19 + IF ( State_Diag%Archive_TomasMNFIXcheck3mass .or. & + State_Diag%Archive_TomasMNFIXcheck3number ) THEN + CALL AERODIAG( MPNUM, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & + State_Grid, State_Diag ) + ENDIF + ENDIF ! Swap Nk and Mk arrays back to Spc DO K = 1, IBINS - TRACNUM = id_NK1 - 1 + K + TRACNUM = id_NK01 - 1 + K Spc(TRACNUM)%Conc(I,J,L) = Nk(K) DO JC = 1, ICOMP-IDIAG - TRACNUM = id_NK1 - 1 + K + IBINS*JC + TRACNUM = id_NK01 - 1 + K + IBINS*JC Spc(TRACNUM)%Conc(I,J,L) = Mk(K,JC) ENDDO - Spc(id_AW1-1+K)%Conc(I,J,L) = MK(K,SRTH2O) + Spc(id_AW01-1+K)%Conc(I,J,L) = MK(K,SRTH2O) ENDDO ENDDO @@ -7511,7 +7835,9 @@ SUBROUTINE CHECKMN( II, JJ, LL, Input_Opt, State_Chm, & ENDDO !$OMP END PARALLEL DO - IF ( prtDebug ) WRITE(6,*)' #### CHECKMN: finish at ',LOCATION + IF ( Input_Opt%Verbose ) THEN + WRITE(6,*)' #### CHECKMN: finish at ',LOCATION + ENDIF ! Free pointer Spc => NULL() @@ -7992,14 +8318,14 @@ SUBROUTINE MNFIX ( NK, MK, ERRORSWITCH ) MK(K,J) = XOLD * NK(K) * FJ MK(KK,J) = MK(KK,J) + MSHIFT * FJ ENDDO - + ELSE ERRORSWITCH = .TRUE. PRINT *, 'MNFIX(4): AVG < Xk(',k,')' GOTO 300 ENDIF 222 ENDIF - + !if (PRT) then ! ! print *,'After_Check5---------------------' ! totmas = sum(MK(k,1:icomp-1)) @@ -8225,7 +8551,7 @@ SUBROUTINE SUBGRIDCOAG( NDISTINIT, NDIST, MDIST, BOXVOLUME,TEMP, & REAL(fp) kcoag(ibins) ! the coagulation rate for the particles in each bin (s^-1) !REAL*4 aerodens !external aerodens - + REAL*4 mu !viscosity of air (kg/m s) REAL*4 mfp !mean free path of air molecule (m) REAL*4 Kn !Knudsen number of particle @@ -8334,7 +8660,7 @@ SUBROUTINE SUBGRIDCOAG( NDISTINIT, NDIST, MDIST, BOXVOLUME,TEMP, & if (kcoag(k).gt.0.e+0_fp)then fracdiaml(k,kk)=kij(k,kk)*ndist(kk)/kcoag(k) else - fracdiaml(k,kk)=0 + fracdiaml(k,kk)=0.e+0_fp endif !debug if(pdbug) print *, kk, fracdiaml(k,kk) @@ -8343,7 +8669,9 @@ SUBROUTINE SUBGRIDCOAG( NDISTINIT, NDIST, MDIST, BOXVOLUME,TEMP, & ! determine the number of new particles left after coagulation do k=1,ibins - ndistfinal(k)=ndistinit(k)*exp(-kcoag(k)*tscale) + !ndistfinal(k)=ndistinit(k)*exp(-kcoag(k)*tscale) + !print*, 'Betty is here tscale ',tscale,k,kcoag(k) + ndistfinal(k)=ndistinit(k)*exp(-1.e+0_fp*kcoag(k)*tscale) enddo ! determine the mass added to each bin coagulation @@ -9066,9 +9394,9 @@ FUNCTION GETDP( I, J, L, N, State_Met, State_Chm, RC ) & !------------------------------------------------------------- ! Calculate bin that we're working with !------------------------------------------------------------- - NUMBIN = MOD(N-id_NK1+1,IBINS) + NUMBIN = MOD(N-id_NK01+1,IBINS) IF (NUMBIN==0) NUMBIN = IBINS - ID = id_NK1-1+NUMBIN !ID = Species ID of number at current bin + ID = id_NK01-1+NUMBIN !ID = Species ID of number at current bin !------------------------------------------------------------- ! Calculate aerosol water in case it has not been initialized elsewhere @@ -9137,7 +9465,7 @@ FUNCTION GETDP( I, J, L, N, State_Met, State_Chm, RC ) & IF( JC == SRTOCOB ) MOCOB = Spc(ID+JC*IBINS)%Conc(I,J,L) IF( JC == SRTDUST ) MDUST = Spc(ID+JC*IBINS)%Conc(I,J,L) ENDDO - MH2O = Spc(id_AW1-1+NUMBIN)%Conc(I,J,L) + MH2O = Spc(id_AW01-1+NUMBIN)%Conc(I,J,L) !dbg print *,'mh2o',mh2o,'at',i,j,l @@ -9528,7 +9856,7 @@ FUNCTION WATERSO4( RHE ) RESULT( VALUE ) endif endif endif - + !check for error if (value .gt. 30.) then write(*,*) 'ERROR in waterso4' @@ -10457,8 +10785,16 @@ SUBROUTINE CLEANUP_TOMAS !================================================================= ! CLEANUP_TOMAS begins here! !================================================================= - IF ( ALLOCATED( MOLWT ) ) DEALLOCATE( MOLWT ) - IF ( ALLOCATED( H2SO4_RATE ) ) DEALLOCATE( H2SO4_RATE ) + IF ( ALLOCATED( Xk ) ) DEALLOCATE( Xk ) + IF ( ALLOCATED( AVGMASS ) ) DEALLOCATE( AVGMASS ) + IF ( ALLOCATED( OCSCALE30 ) ) DEALLOCATE( OCSCALE30 ) + IF ( ALLOCATED( OCSCALE100 ) ) DEALLOCATE( OCSCALE100 ) + IF ( ALLOCATED( ECSCALE30 ) ) DEALLOCATE( ECSCALE30 ) + IF ( ALLOCATED( ECSCALE100 ) ) DEALLOCATE( ECSCALE100 ) + IF ( ALLOCATED( MOLWT ) ) DEALLOCATE( MOLWT ) + IF ( ALLOCATED( MOLWT ) ) DEALLOCATE( MOLWT ) + IF ( ALLOCATED( H2SO4_RATE ) ) DEALLOCATE( H2SO4_RATE ) + IF ( ALLOCATED( PSO4AQ_RATE ) ) DEALLOCATE( PSO4AQ_RATE ) END SUBROUTINE CLEANUP_TOMAS !EOC diff --git a/GeosCore/toms_mod.F90 b/GeosCore/toms_mod.F90 index 653e2c945..dd669a09e 100644 --- a/GeosCore/toms_mod.F90 +++ b/GeosCore/toms_mod.F90 @@ -211,8 +211,9 @@ SUBROUTINE COMPUTE_OVERHEAD_O3( Input_Opt, State_Grid, State_Chm, & !--------------------------------------------------------------- ! Here we are using the overhead O3 from the meteorology; ! we won't overwrite this with TOMS/SBUV O3 columns + ! NOTE: Only print if debug output is on (bmy, 05 Dec 2022) !--------------------------------------------------------------- - IF ( FIRST .and. Input_Opt%amIRoot ) THEN + IF ( FIRST .and. Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, '(a)' ) REPEAT( '%', 45 ) WRITE( 6, 100 ) 100 FORMAT( '%%% USING O3 COLUMNS FROM THE MET FIELDS! %%% ' ) diff --git a/GeosCore/tpcore_fvdas_mod.F90 b/GeosCore/tpcore_fvdas_mod.F90 index 8aa8293cf..a05edab20 100644 --- a/GeosCore/tpcore_fvdas_mod.F90 +++ b/GeosCore/tpcore_fvdas_mod.F90 @@ -209,9 +209,8 @@ MODULE Tpcore_FvDas_Mod !\\ ! !INTERFACE: ! - SUBROUTINE Init_Tpcore( IM, JM, KM, JFIRST, & - JLAST, NG, MG, dt, & - ae, clat, RC ) + SUBROUTINE Init_Tpcore( IM, JM, KM, JFIRST, JLAST, NG, & + MG, dt, ae, clat, verbose, RC ) ! ! !USES: ! @@ -228,6 +227,7 @@ SUBROUTINE Init_Tpcore( IM, JM, KM, JFIRST, & REAL(fp), INTENT(IN) :: dt ! Time step in seconds REAL(fp), INTENT(IN) :: ae ! Earth's radius (m) REAL(fp), INTENT(IN) :: clat(JM) ! latitude in radian + LOGICAL, INTENT(IN) :: verbose ! Print verbose output? ! ! !OUTPUT PARAMETERS: ! @@ -344,11 +344,13 @@ SUBROUTINE Init_Tpcore( IM, JM, KM, JFIRST, & dtdy5(j) = 0.5e+0_fp * dt / (ae*dlat(j)) enddo - ! Echo info to stdout - WRITE( 6, '(a)' ) REPEAT( '=', 79 ) - WRITE( 6, '(a)' ) & + ! Write a message only when debug printout is on (bmy, 05 Dec 2022) + IF ( verbose ) THEN + WRITE( 6, '(a)' ) REPEAT( '=', 79 ) + WRITE( 6, '(a)' ) & 'TPCORE_FVDAS (based on GMI) Tracer Transport Module successfully initialized' - WRITE( 6, '(a)' ) REPEAT( '=', 79 ) + WRITE( 6, '(a)' ) REPEAT( '=', 79 ) + ENDIF END SUBROUTINE Init_Tpcore !EOC diff --git a/GeosCore/tracer_mod.F90 b/GeosCore/tracer_mod.F90 new file mode 100644 index 000000000..52987a0b8 --- /dev/null +++ b/GeosCore/tracer_mod.F90 @@ -0,0 +1,736 @@ +#if defined( MODEL_GEOS ) || defined( MODEL_GCHP ) +#include "MAPL_Generic.h" +#endif +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !MODULE: tracer_mod.F90 +! +! !DESCRIPTION: Module TRACER\_MOD is used to implement passive tracers, +! typically used in the TransportTracers simulation. +!\\ +!\\ +! !INTERFACE: +! +MODULE Tracer_Mod +! +! !USES: +! + USE Precision_Mod ! For GEOS-Chem Precision (fp) + + IMPLICIT NONE + PRIVATE +! +! !PUBLIC MEMBER FUNCTIONS: +! + PUBLIC :: Tracer_Source_Phase + PUBLIC :: Tracer_Sink_Phase +! +! !PRIVATE MEMBER FUNCTIONS: +! + +! +! !REVISION HISTORY: +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +CONTAINS +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: tracer_source_phase +! +! !DESCRIPTION: Subroutine TRACER\_SOURCE\_PHASE +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Tracer_Source_Phase( Input_Opt, State_Chm, State_Grid, & + State_Met, RC ) +! +! !USES: +! + USE ErrCode_Mod + USE HCO_State_GC_Mod, ONLY : HcoState + USE HCO_EmisList_Mod, ONLY : HCO_GetPtr + USE Input_Opt_Mod, ONLY : OptInput + USE PhysConstants, ONLY : AVO + USE Species_Mod, ONLY : Species + USE State_Chm_Mod, ONLY : ChmState + USE State_Grid_Mod, ONLY : GrdState + USE State_Met_Mod, ONLY : MetState + USE Time_Mod, ONLY : Get_Ts_Chem + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod + +#if defined( MODEL_GEOS ) || defined( MODEL_GCHP ) + USE ESMF + USE MAPL +#endif +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN ) :: Input_Opt ! Input options object + TYPE(GrdState), INTENT(IN ) :: State_Grid ! Grid state object + TYPE(MetState), INTENT(IN ) :: State_Met ! Meteorology state object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Failure or success +! +! !REMARKS: +! +! !REVISION HISTORY: +! 02 Mar 2023 - M. Sulprizio- Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + ! Scalars + INTEGER :: I, J, L, N, DT + INTEGER :: previous_units + REAL(fp) :: Local_Tally + REAL(fp) :: Total_Area + REAL(fp) :: Total_Spc + REAL(fp) :: Flux + + ! SAVEd scalars + LOGICAL, SAVE :: First = .TRUE. + + ! Strings + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + + ! Arrays + REAL(fp) :: Mask(State_Grid%NX,State_Grid%NY,State_Grid%NZ) + + ! Objects + TYPE(Species), POINTER :: SpcInfo + +#if defined( MODEL_GEOS ) || defined( MODEL_GCHP ) + INTEGER :: status + TYPE(ESMF_VM) :: vm +#endif + + !======================================================================== + ! Tracer_Source_Phase begins here! + !======================================================================== + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = & + ' -> at Tracer_Source_Phase (in module GeosCore/tracer_mod.F90)' + DT = GET_TS_CHEM() + Local_Tally = 0.0_fp + Total_Area = 0.0_fp + Total_Spc = 0.0_fp + Flux = 0.0_fp + +#if defined( MODEL_GEOS ) || defined( MODEL_GCHP ) + call ESMF_VmGetCurrent(vm, rc=status) + _VERIFY(status) +#endif + + !======================================================================= + ! Convert species units to v/v dry + !======================================================================= + + ! Halt "All chem" timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "All chemistry", RC ) + ENDIF + + ! Convert units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Unit conversion error (kg -> v/v dry)' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + ! Start "All chem" timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "All chemistry", RC ) + ENDIF + + !======================================================================== + ! Apply tracer source + !======================================================================== + + ! Loop over species + DO N = 1, State_Chm%nAdvect + + ! Point to the Species Database entry for species N + SpcInfo => State_Chm%SpcData(N)%Info + + ! Skip Rn-Pb-Be tracers for now + IF ( SpcInfo%Is_RadioNuclide ) CYCLE + + ! Initialize mask for each species + Mask = 1.0_fp + + ! Skip if this species does not have a source or if the + ! source is handled by HEMCO + IF ( TRIM(SpcInfo%Src_Mode) == 'none' .or. & + TRIM(SpcInfo%Src_Mode) == 'HEMCO' ) CYCLE + + IF ( First ) THEN + + !------------------------------------------------------------------ + ! Convert Src_Value to v/v + !------------------------------------------------------------------ + IF(TRIM(SpcInfo%Src_Units) == 'ppmv' ) THEN + + SpcInfo%Src_Value = SpcInfo%Src_Value * 1.0E-06 + + ELSE IF(TRIM(SpcInfo%Src_Units) == 'ppbv' ) THEN + + SpcInfo%Src_Value = SpcInfo%Src_Value * 1.0E-09 + + ELSE IF(TRIM(SpcInfo%Src_Units) == 'pptv' ) THEN + + SpcInfo%Src_Value = SpcInfo%Src_Value * 1.0E-12 + + !------------------------------------------------------------------ + ! Convert timesteps (s) to expected units (e.g. days) + !------------------------------------------------------------------ + ELSE IF ( TRIM(SpcInfo%Src_Units) == 'timestep' ) THEN + + IF ( TRIM(SpcInfo%Units) == 'hours' ) THEN + + SpcInfo%Src_Value = SpcInfo%Src_Value * DT / ( 3600_fp ) + + ELSE IF(TRIM(SpcInfo%Units) == 'days' ) THEN + + SpcInfo%Src_Value = SpcInfo%Src_Value * DT / & + ( 3600_fp * 24.0_fp ) + + ELSE IF(TRIM(SpcInfo%Units) == 'years' ) THEN + + SpcInfo%Src_Value = SpcInfo%Src_Value * DT / & + ( 3600_fp * 24.0_fp * 365.25_fp ) + + ELSE + ErrMsg = TRIM( SpcInfo%Name ) // ': Src_Units: timestep' // & + ' requires species Units hours, days or years.' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + ENDIF + + ENDIF + + !--------------------------------------------------------------------- + ! Determine mask + !--------------------------------------------------------------------- + IF ( TRIM(SpcInfo%Src_Horiz) == 'lat_zone' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J )& + !$OMP COLLAPSE( 2 ) + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Set mask to zero outside of latitude zone + IF ( State_Grid%YMid(I,J) < SpcInfo%Src_LatMin .and. & + State_Grid%YMid(I,J) > SpcInfo%Src_LatMax ) THEN + Mask(I,J,:) = 0.0_fp + ENDIF + + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ENDIF + + IF ( TRIM(SpcInfo%Src_Vert) == 'surface' ) THEN + + ! Set mask to zero above the surface + MASK(:,:,2:State_Grid%NZ) = 0.0_fp + + ELSE IF ( TRIM(SpcInfo%Src_Vert) == 'pressures' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Set mask to zero outside of pressure levels + IF ( .not. ( State_Met%PMID(I,J,L) >= SpcInfo%Src_PresMin .and. & + State_Met%PMID(I,J,L) <= SpcInfo%Src_PresMax ) ) THEN + Mask(I,J,L) = 0.0_fp + ENDIF + + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ELSE IF ( TRIM(SpcInfo%Src_Vert) == 'troposphere' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Set mask to zero outside of troposphere + IF ( .not. State_Met%InTroposphere(I,J,L) ) & + Mask(I,J,L) = 0.0_fp + + ENDDO + ENDDO + ENDDO + + ELSE IF ( TRIM(SpcInfo%Src_Vert) == 'stratosphere' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Set mask to zero outside of stratosphere + IF ( .not. State_Met%InStratosphere(I,J,L) ) & + Mask(I,J,L) = 0.0_fp + + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ENDIF + + !-------------------------------------------------------------------- + ! Apply source + !-------------------------------------------------------------------- + IF ( TRIM(SpcInfo%Src_Mode) == 'constant' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + IF ( Mask(I,J,L) > 0 ) THEN + + IF ( SpcInfo%Src_Add ) THEN + ! Add source + State_Chm%Species(N)%Conc(I,J,L) = & + State_Chm%Species(N)%Conc(I,J,L) + SpcInfo%Src_Value + ELSE + ! Replace value + State_Chm%Species(N)%Conc(I,J,L) = SpcInfo%Src_Value + ENDIF + + ENDIF + + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ELSE IF ( TRIM(SpcInfo%Src_Mode) == 'maintain_mixing_ratio' ) THEN + + ! To distrubute tracer uniformly on the surface, compute the + ! total area [m2] + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + IF ( Mask(I,J,1) > 0 ) THEN + Local_Tally = Local_Tally + State_Grid%Area_M2(I,J) + ENDIF + ENDDO + ENDDO + +#if defined( MODEL_GCHP ) || defined( MODEL_GEOS ) + ! Sum across all nodes + call MAPL_CommsAllReduceSum(vm, sendbuf=Local_Tally, recvbuf=Total_Area, cnt=1, RC=status) +#else + Total_Area = Local_Tally +#endif + + ! Reinitialize + Local_Tally = 0.0_fp + + ! Compute mol of tracer needed to achieve the desired value + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + IF ( Mask(I,J,L) > 0 ) THEN + Local_Tally = Local_Tally & + + ( SpcInfo%Src_Value - State_Chm%Species(N)%Conc(I,J,L) ) & + * ( State_Met%AIRNUMDEN(I,J,L) / AVO ) & + * State_Met%AIRVOL(I,J,L) + ENDIF + ENDDO + ENDDO + ENDDO + +#if defined( MODEL_GCHP ) || defined( MODEL_GEOS ) + ! Sum across all nodes + call MAPL_CommsAllReduceSum(vm, sendbuf=Local_Tally, recvbuf=Total_Spc, cnt=1, __RC__) +#else + Total_Spc = Local_Tally +#endif + + ! Compute flux [mol/m2] + Flux = Total_Spc / Total_Area + + ! Update species concentrations at surface [mol/mol] + State_Chm%Species(N)%Conc(:,:,1) = State_Chm%Species(N)%Conc(:,:,1) & + + ( ( Flux * AVO ) & + / ( State_Met%BXHEIGHT(:,:,1) & + * State_Met%AIRNUMDEN(:,:,1) ) ) * Mask(:,:,1) + + ELSE + ErrMsg = TRIM( SpcInfo%Name ) // ': Src_Mode ' // & + TRIM( SpcInfo%Src_Mode ) // ' not currently supported. ' // & + 'Please modify species_database.yml or add this ' // & + 'capability in tracer_mod.F90.' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + ! Free pointers + SpcInfo => NULL() + + ENDDO + + !======================================================================= + ! Convert species units back to original unit + !======================================================================= + + ! Halt "all chem" timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "All chemistry", RC ) + ENDIF + + ! Convert units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Unit conversion error' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + + ! Start "all chem" timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "All chemistry", RC ) + ENDIF + + ! Reset after the first time + IF ( First ) First = .FALSE. + + END SUBROUTINE Tracer_Source_Phase +!EOC + +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: tracer_sink_phase +! +! !DESCRIPTION: Subroutine TRACER\_SINK\_PHASE performs loss chemistry +! on passive species with finite atmospheric lifetimes. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Tracer_Sink_Phase( Input_Opt, State_Chm, State_Grid, & + State_Met, RC ) +! +! !USES: +! + USE ErrCode_Mod + USE HCO_State_GC_Mod, ONLY : HcoState + USE HCO_EmisList_Mod, ONLY : HCO_GetPtr + USE Input_Opt_Mod, ONLY : OptInput + USE PhysConstants, ONLY : AVO + USE Species_Mod, ONLY : Species + USE State_Chm_Mod, ONLY : ChmState + USE State_Grid_Mod, ONLY : GrdState + USE State_Met_Mod, ONLY : MetState + USE Time_Mod, ONLY : Get_Ts_Chem +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN ) :: Input_Opt ! Input options object + TYPE(GrdState), INTENT(IN ) :: State_Grid ! Grid state object + TYPE(MetState), INTENT(IN ) :: State_Met ! Meteorology state object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Failure or success +! +! !REMARKS: +! +! !REVISION HISTORY: +! 04 Sep 2015 - C. Keller - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + ! Scalars + INTEGER :: I, J, L, N + REAL(fp) :: DT + REAL(fp) :: DecayConstant + REAL(fp) :: DecayRate + + ! Strings + CHARACTER(LEN=255) :: ErrMsg, ThisLoc + + ! Arrays + REAL(fp) :: Mask(State_Grid%NX,State_Grid%NY,State_Grid%NZ) + + ! Parameters + REAL(fp), PARAMETER :: ln2 = 0.693147181E+00_fp + REAL(fp), PARAMETER :: Day2Sec = 86400_fp + + ! Objects + TYPE(Species), POINTER :: SpcInfo + + !======================================================================== + ! Tracer_Sink_Phase begins here! + !======================================================================== + + ! Initialize + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = & + ' -> at Tracer_Sink_Phase (in module GeosCore/tracer_mod.F90)' + DT = GET_TS_CHEM() + + !======================================================================== + ! Apply tracer sink + !======================================================================== + + ! Loop over species + DO N = 1, State_Chm%nAdvect + + ! Initialize mask for each species + Mask = 1.0_fp + + ! Point to the Species Database entry for species N + SpcInfo => State_Chm%SpcData(N)%Info + + ! Skip Rn-Pb-Be tracers for now + IF ( SpcInfo%Is_RadioNuclide ) CYCLE + + ! Skip if no sink + IF ( TRIM(SpcInfo%Snk_Mode) == 'none' ) CYCLE + + !--------------------------------------------------------------------- + ! Compute the decay rate (if needed) + !--------------------------------------------------------------------- + IF ( TRIM(SpcInfo%Snk_Mode) == 'efolding' .or. & + TRIM(SpcInfo%Snk_Mode) == 'halflife' ) THEN + + IF ( TRIM(SpcInfo%Snk_Mode) == 'efolding' ) THEN + + ! Compute the decay constant (s-1) from the e-folding time + ! ln(N/No) = ln(1/e) = (-1) = -decayConstant * e-folding time + DecayConstant = 1.0 / ( SpcInfo%Snk_Period * Day2Sec ) + + ELSE IF ( TRIM(SpcInfo%Snk_Mode) == 'halflife' ) THEN + + ! Compute the decay constant (s-1) from the half-life: + ! ln(N/No) = ln(1/2) = -decayConstant * halfLife + DecayConstant = ln2 / ( SpcInfo%Snk_Period * Day2Sec ) + + ENDIF + + DecayRate = EXP( - DecayConstant * DT ) + + !### Debug output + IF ( Input_Opt%Verbose ) THEN + WRITE( 6,100 ) ADJUSTL( SpcInfo%Name ), DecayRate + 100 FORMAT( ' - Species name, decay rate: ', a15, es13.6 ) + ENDIF + + ENDIF + + !--------------------------------------------------------------------- + ! Determine mask + !--------------------------------------------------------------------- + IF ( TRIM(SpcInfo%Snk_Horiz) == 'lat_zone' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J )& + !$OMP COLLAPSE( 2 ) + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Set mask to zero outside of latitude zone + IF ( State_Grid%YMid(I,J) < SpcInfo%Snk_LatMin .or. & + State_Grid%YMid(I,J) > SpcInfo%Snk_LatMax ) THEN + Mask(I,J,:) = 0.0_fp + ENDIF + + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ENDIF + + IF ( TRIM(SpcInfo%Snk_Vert) == 'surface' ) THEN + + ! Set mask to zero above the surface + MASK(:,:,2:State_Grid%NZ) = 0.0_fp + + ELSE IF ( TRIM(SpcInfo%Snk_Vert) == 'boundary_layer' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Set mask to zero outside the boundary layer + IF ( L > State_Met%PBL_TOP_L(I,J) ) THEN + Mask(I,J,L) = 0.0_fp + ENDIF + + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ELSE IF ( TRIM(SpcInfo%Snk_Vert) == 'troposphere' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Set mask to zero outside of troposphere + IF ( .not. State_Met%InTroposphere(I,J,L) ) & + Mask(I,J,L) = 0.0_fp + + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ELSE IF ( TRIM(SpcInfo%Snk_Vert) == 'stratosphere' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Set mask to zero outside of stratosphere + IF ( .not. State_Met%InStratosphere(I,J,L) ) & + Mask(I,J,L) = 0.0_fp + + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ENDIF + + !--------------------------------------------------------------------- + ! Apply loss + !--------------------------------------------------------------------- + + IF ( TRIM(SpcInfo%Snk_Mode) == 'efolding' .or. & + TRIM(SpcInfo%Snk_Mode) == 'halflife' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + IF ( Mask(I,J,L) > 0 ) THEN + State_Chm%Species(N)%Conc(I,J,L) = & + State_Chm%Species(N)%Conc(I,J,L) * DecayRate + ENDIF + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ELSE IF ( TRIM(SpcInfo%Snk_Mode) == 'constant' ) THEN + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L )& + !$OMP COLLAPSE( 3 ) + DO L = 1, State_Grid%NZ + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + IF ( Mask(I,J,L) > 0 ) THEN + State_Chm%Species(N)%Conc(I,J,L) = SpcInfo%Snk_Value + ENDIF + ENDDO + ENDDO + ENDDO + !$OMP END PARALLEL DO + + ENDIF + + ENDDO + + END SUBROUTINE Tracer_Sink_Phase +!EOC +END MODULE Tracer_Mod diff --git a/GeosCore/transport_mod.F90 b/GeosCore/transport_mod.F90 index 32b65efe1..fa6d88340 100644 --- a/GeosCore/transport_mod.F90 +++ b/GeosCore/transport_mod.F90 @@ -137,6 +137,7 @@ SUBROUTINE DO_TRANSPORT( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetTransportFull, & @@ -148,6 +149,9 @@ SUBROUTINE DO_TRANSPORT( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetTransportPBL, & diagPBL = NULL(), & mapDataPBL = State_Diag%Map_BudgetTransportPBL, & + isLevs = State_Diag%Archive_BudgetTransportLevs, & + diagLevs = NULL(), & + mapDataLevs = State_Diag%Map_BudgetTransportLevs, & colMass = State_Diag%BudgetColumnMass, & before_op = .TRUE., & RC = RC ) @@ -254,6 +258,7 @@ SUBROUTINE DO_TRANSPORT( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetTransportFull, & @@ -265,6 +270,9 @@ SUBROUTINE DO_TRANSPORT( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetTransportPBL, & diagPBL = State_Diag%BudgetTransportPBL, & mapDataPBL = State_Diag%Map_BudgetTransportPBL, & + isLevs = State_Diag%Archive_BudgetTransportLevs, & + diagLevs = State_Diag%BudgetTransportLevs, & + mapDataLevs = State_Diag%Map_BudgetTransportLevs, & colMass = State_Diag%BudgetColumnMass, & timeStep = DT_Dyn, & RC = RC ) @@ -346,7 +354,6 @@ SUBROUTINE DO_GLOBAL_ADV( Input_Opt, State_Chm, State_Diag, & ! ! Scalars LOGICAL :: LFILL - LOGICAL :: prtDebug INTEGER :: IORD, JORD, KORD INTEGER :: I, J, L, L2, N, N_DYN, NA, nAdvect REAL(fp) :: D_DYN @@ -373,7 +380,6 @@ SUBROUTINE DO_GLOBAL_ADV( Input_Opt, State_Chm, State_Diag, & ! Initialize LFILL = Input_Opt%LFILL - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) IORD = Input_Opt%TPCORE_IORD JORD = Input_Opt%TPCORE_JORD KORD = Input_Opt%TPCORE_KORD @@ -396,7 +402,7 @@ SUBROUTINE DO_GLOBAL_ADV( Input_Opt, State_Chm, State_Diag, & !================================================================= !!### DEBUG: Print a few global species sums - !IF ( prtDebug ) THEN + !IF ( Input_Opt%Verbose ) THEN ! CALL Print_Global_Species_Kg( 20, 20, 1, 'O3', & ! Input_Opt, State_Chm, & ! State_Grid, State_Met, & @@ -478,7 +484,7 @@ SUBROUTINE DO_GLOBAL_ADV( Input_Opt, State_Chm, State_Diag, & RC, update_mixing_ratio=.FALSE. ) !!### DEBUG: Print a few global species sums - !IF ( prtDebug ) THEN + !IF ( Input_Opt%Verbose ) THEN ! CALL Print_Global_Species_Kg( 20, 20, 1, 'O3', & ! Input_Opt, State_Chm, & ! State_Grid, State_Met, & @@ -562,7 +568,6 @@ SUBROUTINE DO_WINDOW_TRANSPORT( I0, IM, J0, JM, & ! ! Scalars LOGICAL :: LFILL - LOGICAL :: prtDebug INTEGER :: IORD, JORD, KORD INTEGER :: IA, IB, JA, JB INTEGER :: NA, nAdvect, N_DYN @@ -601,7 +606,6 @@ SUBROUTINE DO_WINDOW_TRANSPORT( I0, IM, J0, JM, & JORD = Input_Opt%TPCORE_JORD KORD = Input_Opt%TPCORE_KORD nAdvect = State_Chm%nAdvect - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ! Initialize pointers p_A_M2 => NULL() @@ -641,7 +645,7 @@ SUBROUTINE DO_WINDOW_TRANSPORT( I0, IM, J0, JM, & ! and Ap(L), Bp(L) define the vertical grid (see pressure_mod.f) !================================================================= - !IF ( prtDebug ) THEN + !IF ( Input_Opt%Verbose ) THEN ! CALL Print_Global_Species_Kg( 20, 20, 1, 'SPC_O3', & ! Input_Opt, State_Chm, & ! State_Grid, State_Met, & @@ -678,7 +682,9 @@ SUBROUTINE DO_WINDOW_TRANSPORT( I0, IM, J0, JM, & State_Met%U, State_Met%V, & XMASS, YMASS ) - IF ( prtDebug ) CALL DEBUG_MSG( '### FVDAS_WINDOW: a PJC_PFIX_WINDOW') + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### FVDAS_WINDOW: a PJC_PFIX_WINDOW') + ENDIF ! Flip array indices in the vertical using pointer storage ! Exclude the buffer zone (lzh, 4/1/2015) @@ -733,7 +739,7 @@ SUBROUTINE DO_WINDOW_TRANSPORT( I0, IM, J0, JM, & Update_Mixing_Ratio=.FALSE. ) !!### Debug - !IF ( prtDebug ) THEN + !IF ( Input_Opt%Verbose ) THEN ! CALL Print_Global_Species_Kg( 20, 20, 1, 'SPC_O3', & ! Input_Opt, State_Chm, & ! State_Grid, State_Met, & @@ -799,9 +805,9 @@ SUBROUTINE INIT_TRANSPORT( Input_Opt, State_Grid, RC ) !================================================================= ! Initialize !================================================================= - RC = GC_SUCCESS - ErrMsg = '' - ThisLoc = ' -> at Init_Transport (in module GeosCore/transport_mod.F90)' + RC = GC_SUCCESS + ErrMsg = '' + ThisLoc = ' -> at Init_Transport (in module GeosCore/transport_mod.F90)' !================================================================= ! Allocate arrays for TPCORE vertical coordinates @@ -862,9 +868,11 @@ SUBROUTINE INIT_TRANSPORT( Input_Opt, State_Grid, RC ) REAL_N_DYN = N_DYN ! Call INIT routine from "tpcore_fvdas_mod.f" - CALL INIT_TPCORE( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & - JFIRST, JLAST, NG, MG, REAL_N_DYN, & - Re, YMID_R, RC ) + CALL INIT_TPCORE( & + State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + JFIRST, JLAST, NG, & + MG, REAL_N_DYN, Re, & + YMID_R, Input_Opt%Verbose, RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN diff --git a/GeosCore/ucx_mod.F90 b/GeosCore/ucx_mod.F90 index beeb58f9d..185a6548a 100644 --- a/GeosCore/ucx_mod.F90 +++ b/GeosCore/ucx_mod.F90 @@ -50,7 +50,6 @@ MODULE UCX_MOD ! !PUBLIC DATA MEMBERS: ! PUBLIC :: T_STS ! Max temperature of STS formation (K) - PUBLIC :: NDENS_AER ! See below ! ! !PUBLIC MEMBER FUNCTIONS: ! @@ -61,10 +60,7 @@ MODULE UCX_MOD PUBLIC :: UCX_H2SO4PHOT PUBLIC :: CALC_STRAT_AER PUBLIC :: GET_STRAT_OPT - PUBLIC :: KG_STRAT_AER - PUBLIC :: RHO_STRAT_AER PUBLIC :: INIT_UCX - PUBLIC :: CLEANUP_UCX ! ! PRIVATE MEMBER FUNCTIONS: ! @@ -125,20 +121,20 @@ MODULE UCX_MOD ! ISR_HOCl : HOCl MW (inverse sqrt) (kg/kmol)^-0.5 ! ISR_HOBr : HOBr MW (inverse sqrt) (kg/kmol)^-0.5 ! - ! Arrays + ! Arrays (now moved to State_Chm object) ! - ! UCX_PLEVS : Pressure levels of 2D data (hPa) - ! UCX_LATS : Latitude edges of 2D data (deg) - ! RAD_AER : Strat. aerosol radius (cm) - ! KG_AER : Aerosol mass (kg/box) - ! SAD_AER : Aerosol surface area density (cm2/cm3) - ! NDENS_AER : Aerosol number density (#/m3) - ! RHO_AER : Aerosol mass density (kg/m3 aerosol) - ! AERFRAC : Mass fraction of species in liquid aerosols - ! AERFRACIND : Indices of liquid aerosol species - ! NOX_O : Monthly mean noontime O3P/O1D for NOx calcs - ! NOX_J : Monthly mean noontime J-rates for NOx calcs - ! SO4_TOPPHOT : Photolysis rate at the top of the chemgrid (1/s) + ! State_Chm%UCX_PLEVS : Pressure levels of 2D data (hPa) + ! State_Chm%UCX_LATS : Latitude edges of 2D data (deg) + ! State_Chm%RAD_AER : Strat. aerosol radius (cm) + ! State_Chm%KG_AER : Aerosol mass (kg/box) + ! State_Chm%SAD_AER : Aerosol surface area density (cm2/cm3) + ! State_Chm%NDENS_AER : Aerosol number density (#/m3) + ! State_Chm%RHO_AER : Aerosol mass density (kg/m3 aerosol) + ! State_Chm%AERFRAC : Mass fraction of species in liquid aerosols + ! State_Chm%AERFRACIND : Indices of liquid aerosol species + ! State_Chm%NOX_O : Monthly mean noontime O3P/O1D for NOx calcs + ! State_Chm%NOX_J : Monthly mean noontime J-rates for NOx calcs + ! State_Chm%SO4_TOPPHOT : Photolysis rate at the top of the chemgrid (1/s) ! !================================================================= @@ -156,36 +152,6 @@ MODULE UCX_MOD REAL(fp), PARAMETER :: ISR_HOCl =1.e+0_fp/sqrt(52.46e+0_fp) REAL(fp), PARAMETER :: ISR_HOBr =1.e+0_fp/sqrt(96.91e+0_fp) - ! Arrays - REAL(fp),DIMENSION(:,:),ALLOCATABLE :: UCX_REGRID - REAL(fp),DIMENSION(:),ALLOCATABLE :: UCX_PLEVS - REAL(fp),DIMENSION(:),ALLOCATABLE :: UCX_LATS - REAL(fp),DIMENSION(:,:,:,:),ALLOCATABLE :: RAD_AER - REAL(fp),DIMENSION(:,:,:,:),ALLOCATABLE :: KG_AER - REAL(fp),DIMENSION(:,:,:,:),ALLOCATABLE :: SAD_AER - REAL(fp),DIMENSION(:,:,:,:),ALLOCATABLE :: NDENS_AER - REAL(fp),DIMENSION(:,:,:,:),ALLOCATABLE :: RHO_AER - REAL(fp),DIMENSION(:,:,:,:),ALLOCATABLE :: AERFRAC - INTEGER,DIMENSION(:),ALLOCATABLE :: AERFRACIND - REAL(fp),DIMENSION(:,:,:,:),ALLOCATABLE :: NOX_O - REAL(fp),DIMENSION(:,:,:,:),ALLOCATABLE :: NOX_J - REAL(fp),DIMENSION(:,:),ALLOCATABLE :: SO4_TOPPHOT - - !================================================================= - ! Variables to use NOx coefficients in ESMF / grid-independent - ! envionment. The NOx coefficients are climatological 2D - ! (lat/lev/12 months) data that are currently available for - ! horizontal (latitude) resolutions of 2 and 4 degrees. For other - ! resolutions, the horizontal data becomes mapped onto the - ! simulation grid (see GET_JJNOX). - ! Similar to the surface mixing ratio boundary conditions, we now - ! read all the NOx coefficients during initialization to avoid - ! additional I/O calls during run time (ckeller, 05/12/2014). - !================================================================= - REAL(fp), ALLOCATABLE, TARGET :: NOXCOEFF(:,:,:,:) - REAL(fp), ALLOCATABLE :: NOXLAT(:) - INTEGER :: JJNOXCOEFF - !================================================================= ! Species ID flags ! These are now defined in INIT_UCX and used where needed. @@ -237,8 +203,6 @@ SUBROUTINE UCX_NOX( Input_Opt, State_Chm, State_Grid, State_Met ) USE TIME_MOD, ONLY : GET_HOUR USE TIME_MOD, ONLY : GET_LOCALTIME USE TIME_MOD, ONLY : GET_MINUTE - USE CMN_FJX_MOD, ONLY : ZPJ - USE FAST_JX_MOD, ONLY : RXN_NO, RXN_NO2, RXN_NO3, RXN_N2O ! ! !INPUT PARAMETERS: ! @@ -313,11 +277,9 @@ SUBROUTINE UCX_NOX( Input_Opt, State_Chm, State_Grid, State_Met ) LOGICAL :: CYCLEBOX CHARACTER(LEN=255) :: DBGMSG - ! Local variables for quantities from Input_Opt - LOGICAL :: prtDebug - ! Pointers TYPE(SpcConc), POINTER :: Spc(:) + REAL(fp), POINTER :: ZPJ(:,:,:,:) ! Required for updated chemistry Integer :: LMinPhot @@ -326,16 +288,14 @@ SUBROUTINE UCX_NOX( Input_Opt, State_Chm, State_Grid, State_Met ) ! UCX_NOX begins here! !================================================================= - ! Copy fields from INPUT_OPT - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - - ! Point to GEOS-Chem species array + ! Point to GEOS-Chem species array and J-values Spc => State_Chm%Species + ZPJ => State_Chm%Phot%ZPJ ! Retrieve monthly mean data if necessary IF (LASTMONTH.ne.GET_MONTH()) THEN LASTMONTH = GET_MONTH() - CALL GET_NOXCOEFF( LASTMONTH, Input_Opt, State_Grid, State_Met) + CALL GET_NOXCOEFF( LASTMONTH, Input_Opt, State_Grid, State_Chm, State_Met ) ENDIF ! Get chemistry step length in seconds @@ -476,14 +436,20 @@ SUBROUTINE UCX_NOX( Input_Opt, State_Chm, State_Grid, State_Met ) ! 1: NO2 + O -> NO + O2 RRATE(1) = 5.1e-12_fp*exp(210.e+0_fp*TINV) ! 4: NO2 + hv -> NO + O1D - !RRATE(k_JNO2) = NOX_J(I,J,L,JNO2IDX)*DAYFRAC - RRATE(k_JNO2) = ZPJ(LMINPHOT,RXN_NO2,I,J) + !RRATE(k_JNO2) = State_Chm%NOX_J(I,J,L,JNO2IDX)*DAYFRAC + IF ( State_Chm%Phot%RXN_NO2 > 0 ) THEN + RRATE(k_JNO2) = ZPJ(LMINPHOT,State_Chm%Phot%RXN_NO2,I,J) + ENDIF ! 5: NO3 + hv -> NO2 + O - !RRATE(k_JNO3) = NOX_J(I,J,L,JNO3IDX)*DAYFRAC - RRATE(k_JNO3) = ZPJ(LMINPHOT,RXN_NO3,I,J) + !RRATE(k_JNO3) = State_Chm%NOX_J(I,J,L,JNO3IDX)*DAYFRAC + IF ( State_Chm%Phot%RXN_NO3 > 0 ) THEN + RRATE(k_JNO3) = ZPJ(LMINPHOT,State_Chm%Phot%RXN_NO3,I,J) + ENDIF ! 6: NO + hv -> N + O - !RRATE(k_JNO ) = NOX_J(I,J,L,JNOIDX)*DAYFRAC - RRATE(k_JNO) = ZPJ(LMINPHOT,RXN_NO,I,J) + !RRATE(k_JNO ) = State_Chm%NOX_J(I,J,L,JNOIDX)*DAYFRAC + IF ( State_Chm%Phot%RXN_NO > 0 ) THEN + RRATE(k_JNO) = ZPJ(LMINPHOT,State_Chm%Phot%RXN_NO,I,J) + ENDIF ! 7: N + NO2 -> N2O + O RRATE(7) = 5.8e-12_fp*exp(220.e+0_fp*TINV) ! 8: N + NO -> N2 + O @@ -495,16 +461,18 @@ SUBROUTINE UCX_NOX( Input_Opt, State_Chm, State_Grid, State_Met ) ! 11: N2O + O1D -> 2NO RRATE(11) = 7.25e-11_fp*exp(20.e+0_fp*TINV) ! 12: N2O + hv -> N2 + O1D - !RRATE(k_JN2O) = NOX_J(I,J,L,JN2OIDX)*DAYFRAC - RRATE(k_JN2O) = ZPJ(LMINPHOT,RXN_N2O,I,J) + !RRATE(k_JN2O) = State_Chm%NOX_J(I,J,L,JN2OIDX)*DAYFRAC + IF ( State_Chm%Phot%RXN_N2O > 0 ) THEN + RRATE(k_JN2O) = ZPJ(LMINPHOT,State_Chm%Phot%RXN_N2O,I,J) + ENDIF ! Sanity check Where(RRate.lt.0.0e+0_fp) RRate = 0.0e+0_fp ! Retrieve local O3P/O1D mixing ratios and relevant ! j-rates from interpolated 2D arrays - LOCALO3P = NOX_O(I,J,L,1)*NDAIR*DAYFRAC - LOCALO1D = NOX_O(I,J,L,2)*NDAIR*DAYFRAC + LOCALO3P = State_Chm%NOX_O(I,J,L,1)*NDAIR*DAYFRAC + LOCALO1D = State_Chm%NOX_O(I,J,L,2)*NDAIR*DAYFRAC ! Partition NOx into N, NO, NO2 and NO3 based on PSSA ! Two cases: Daytime/nighttime @@ -517,7 +485,11 @@ SUBROUTINE UCX_NOX( Input_Opt, State_Chm, State_Grid, State_Met ) NO_BETA = 0.0_fp ENDIF - NO_GAMMA = (RRATE(3)*LOCALO3) / RRATE(k_JNO3) + IF ( RRATE(k_JNO3) > 0.0_fp ) THEN + NO_GAMMA = (RRATE(3)*LOCALO3) / RRATE(k_JNO3) + ELSE + NO_GAMMA = 0.0_fp + ENDIF ! Calculate the partition fractions FRACNO2 = 1.e+0_fp/(1.e+0_fp+NO_GAMMA+(NO_BETA* & @@ -587,7 +559,7 @@ SUBROUTINE UCX_NOX( Input_Opt, State_Chm, State_Grid, State_Met ) ENDDO ! L !$OMP END PARALLEL DO - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN ! Print mean NOx tendency in mesosphere DBGMSG = ' ### UCX_NOX: Mesospheric NOx processed' CALL DEBUG_MSG(TRIM(DBGMSG)) @@ -602,8 +574,9 @@ SUBROUTINE UCX_NOX( Input_Opt, State_Chm, State_Grid, State_Met ) CALL DEBUG_MSG(TRIM(DBGMSG)) ENDIF - ! Free pointer + ! Free pointers NULLIFY( Spc ) + NULLIFY( ZPJ ) END SUBROUTINE UCX_NOX !EOC @@ -621,7 +594,7 @@ END SUBROUTINE UCX_NOX !\\ ! !INTERFACE: ! - SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Met ) + SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Chm, State_Met ) ! ! !USES: ! @@ -630,6 +603,7 @@ SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Met ) USE FILE_MOD, ONLY : IOERROR USE Input_Opt_Mod, ONLY : OptInput USE State_Grid_Mod, ONLY : GrdState + USE State_Chm_Mod, ONLY : ChmState USE State_Met_Mod, ONLY : MetState ! ! !INPUT PARAMETERS: @@ -639,6 +613,10 @@ SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Met ) TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object ! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object +! ! !REMARKS: ! At some later point we should attempt to rewrite the parallel DO loop so ! that the loop order is L-J-I. Not sure how easy that is. (bmy, 2/14/14) @@ -676,24 +654,18 @@ SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Met ) TYPE(FILE_DESC_T) :: ncid #endif - ! Local variables for quantities from Input_Opt - LOGICAL :: prtDebug - !================================================================= ! GET_NOXCOEFF begins here! !================================================================= - ! Copy fields from INPUT_OPT - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Clear interpolated arrays - NOX_O = 0e+0_fp - NOX_J = 0e+0_fp + State_Chm%NOX_O = 0e+0_fp + State_Chm%NOX_J = 0e+0_fp - ! All the coefficients are now stored in NOXCOEFF. + ! All the coefficients are now stored in State_Chm%NOXCOEFF. ! NOXDATA2D points to the desired month slice. ! (ckeller, 05/12/14) - NOXDATA2D => NOXCOEFF(:,:,:,TARG_MONTH) + NOXDATA2D => State_Chm%NOXCOEFF(:,:,:,TARG_MONTH) ! Scan through target array, element by element !$OMP PARALLEL DO & @@ -706,7 +678,7 @@ SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Met ) ! Get corresponding J value in NOXDATA2D. This can be different ! from J if the simulation grid is not 2x25 or 4x5. - JJNOX = GET_JJNOX( I, J, State_Grid ) + JJNOX = GET_JJNOX( I, J, State_Grid, State_Chm ) ! Vertcount is the layer count for the input, where layer 1 ! is at the *top* of the atmosphere @@ -719,7 +691,7 @@ SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Met ) ! Pressure at center of cell PCENTER = State_Met%PMID(I,J,L) - FOUNDLEV = (PCENTER.gt.UCX_PLEVS(VERTCOUNT)) + FOUNDLEV = (PCENTER.gt.State_Chm%UCX_PLEVS(VERTCOUNT)) DO WHILE (.not. FOUNDLEV) IF (VERTCOUNT.eq.1) THEN ! At top layer; use it anyway @@ -727,7 +699,7 @@ SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Met ) EXTRAP = .TRUE. ELSE VERTCOUNT = VERTCOUNT - 1 - FOUNDLEV = (PCENTER.gt.UCX_PLEVS(VERTCOUNT)) + FOUNDLEV = (PCENTER.gt.State_Chm%UCX_PLEVS(VERTCOUNT)) EXTRAP = .FALSE. ENDIF ENDDO @@ -740,8 +712,8 @@ SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Met ) CURRVAL = NOXDATA2D(JJNOX,VERTCOUNT,ITRAC) ELSE ! Interpolate by pressure - CURRVAL = (UCX_PLEVS(VERTCOUNT+1)-PCENTER) - CURRVAL = CURRVAL/(UCX_PLEVS(VERTCOUNT+1)-UCX_PLEVS(VERTCOUNT)) + CURRVAL = (State_Chm%UCX_PLEVS(VERTCOUNT+1)-PCENTER) + CURRVAL = CURRVAL/(State_Chm%UCX_PLEVS(VERTCOUNT+1)-State_Chm%UCX_PLEVS(VERTCOUNT)) CURRVAL = CURRVAL * & (NOXDATA2D(JJNOX,VERTCOUNT+1,ITRAC)- & NOXDATA2D(JJNOX,VERTCOUNT,ITRAC)) @@ -749,10 +721,10 @@ SUBROUTINE GET_NOXCOEFF( TARG_MONTH, Input_Opt, State_Grid, State_Met ) ENDIF IF (.not.ISRATE) THEN ! Reading in mixing ratios (v/v) - NOX_O(I,J,L,ITRAC) = CURRVAL + State_Chm%NOX_O(I,J,L,ITRAC) = CURRVAL ELSE ! J-rate (no conversion necessary) - NOX_J(I,J,L,ITRAC-2) = CURRVAL + State_Chm%NOX_J(I,J,L,ITRAC-2) = CURRVAL ENDIF ENDDO ! ITRAC ENDDO ! L @@ -784,15 +756,20 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! ! !USES: ! - USE CMN_FJX_MOD, ONLY : RAA, IND999 +#ifdef FASTJX + USE CMN_FJX_Mod, ONLY : RAA +#else + USE Cldj_Cmn_Mod, ONLY : RAA +#endif + USE CMN_SIZE_Mod, ONLY : NDUST USE ErrCode_Mod - USE ERROR_MOD, ONLY : IT_IS_NAN,ERROR_STOP - USE Input_Opt_Mod, ONLY : OptInput - USE Species_Mod, ONLY : SpcConc - USE State_Chm_Mod, ONLY : ChmState - USE State_Grid_Mod, ONLY : GrdState - USE State_Met_Mod, ONLY : MetState - USE TIME_MOD, ONLY : GET_ELAPSED_SEC, GET_TS_CHEM + USE ERROR_MOD, ONLY : IT_IS_NAN,ERROR_STOP + USE Input_Opt_Mod, ONLY : OptInput + USE Species_Mod, ONLY : SpcConc + USE State_Chm_Mod, ONLY : ChmState + USE State_Grid_Mod, ONLY : GrdState + USE State_Met_Mod, ONLY : MetState + USE TIME_MOD, ONLY : GET_ELAPSED_SEC, GET_TS_CHEM ! ! !INPUT PARAMETERS: ! @@ -833,9 +810,6 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Used for old Seinfeld & Pandis slip factor calc REAL(fp) :: sp_Lambda, sp_Num - ! Parameters - REAL(fp), PARAMETER :: BCDEN = 1000.e+0_fp ! density (kg/m3) - ! Indexing INTEGER, PARAMETER :: IBC = 1 INTEGER, PARAMETER :: ILIQ = 2 @@ -948,21 +922,24 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) IF (RUNCALC) THEN ! Need to translate for BC radii IF ( State_Met%InChemGrid(I,J,L) ) THEN - RWET(IBC) = WERADIUS(I,J,L,2)*1.e-2_fp + RWET(IBC) = WERADIUS(I,J,L,2+NDUST)*1.e-2_fp ELSE ! Use defaults, assume dry (!) - RWET(IBC) = RAA(IND999,29) * 1.0e-6_fp +#ifdef FASTJX + RWET(IBC) = RAA(State_Chm%Phot%IND999,29) * 1.0e-6_fp +#else + RWET(IBC) = RAA(29) * 1.0e-6_fp +#endif ENDIF - ! Taken from aerosol_mod (MSDENS(2)) - RHO(IBC) = BCDEN + RHO(IBC) = State_Chm%SpcData(id_BCPI)%Info%Density ! Get aerosol properties - RWET(ILIQ) = RAD_AER(I,J,L,I_SLA)*1.e-2_fp - RHO(ILIQ) = RHO_AER(I,J,L,I_SLA) + RWET(ILIQ) = State_Chm%RAD_AER(I,J,L,I_SLA)*1.e-2_fp + RHO(ILIQ) = State_Chm%RHO_AER(I,J,L,I_SLA) ! Do we need to sediment NAT? - IF (NDENS_AER(I,J,L,I_SPA).gt.TINY(0e+0_fp)) THEN + IF (State_Chm%NDENS_AER(I,J,L,I_SPA).gt.TINY(0e+0_fp)) THEN NATCOL = .TRUE. BXMIN = MIN(BXMIN, State_Met%BXHEIGHT(I,J,L)) MINALT = MIN(L,MINALT) @@ -1032,8 +1009,8 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Now solid PSC particles IF (NATCOL) THEN ! sp_Num: Air molecule#/m3 - VNAT(L) = CALC_FALLVEL(RHO_AER(I,J,L,I_SPA), & - RAD_AER(I,J,L,I_SPA),TEMP,P) + VNAT(L) = CALC_FALLVEL(State_Chm%RHO_AER(I,J,L,I_SPA), & + State_Chm%RAD_AER(I,J,L,I_SPA),TEMP,P) IF (VNAT(L).gt.VFALLMAX) VFALLMAX = VNAT(L) ELSE VNAT(L) = 0.e+0_fp @@ -1057,13 +1034,13 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! in the aerosol DO K = 1,7 ! Only process transported species - IDTCURRENT = AERFRACIND(K) + IDTCURRENT = State_Chm%AERFRACIND(K) IF (IDTCURRENT.ne.0) THEN ! Calculate local phase partitioning ! Total upper gridbox mass PHASEMASS(3,2) = Spc(IDTCURRENT)%Conc(I,J,L) ! Aerosol-phase upper gridbox mass - PHASEMASS(2,2) = AERFRAC(I,J,L,K)*PHASEMASS(3,2) + PHASEMASS(2,2) = State_Chm%AERFRAC(I,J,L,K)*PHASEMASS(3,2) ! Gas-phase upper gridbox mass PHASEMASS(1,2) = PHASEMASS(3,2) - PHASEMASS(2,2) @@ -1076,9 +1053,9 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Recalculate phase fractions IF (PHASEMASS(3,2).gt.TINY(1e+0_fp)) THEN - AERFRAC(I,J,L,K) = PHASEMASS(2,2)/PHASEMASS(3,2) + State_Chm%AERFRAC(I,J,L,K) = PHASEMASS(2,2)/PHASEMASS(3,2) ELSE - AERFRAC(I,J,L,K) = 0e+0_fp + State_Chm%AERFRAC(I,J,L,K) = 0e+0_fp ENDIF ! Store result @@ -1093,19 +1070,19 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) DELZ1 = State_Met%BXHEIGHT(I,J,L+1) DO K=1,7 - IDTCURRENT = AERFRACIND(K) + IDTCURRENT = State_Chm%AERFRACIND(K) IF (IDTCURRENT.ne.0) THEN ! Total upper gridbox mass PHASEMASS(3,2) = Spc(IDTCURRENT)%Conc(I,J,L+1) ! Aerosol-phase upper gridbox mass - PHASEMASS(2,2) = AERFRAC(I,J,L+1,K)*PHASEMASS(3,2) + PHASEMASS(2,2) = State_Chm%AERFRAC(I,J,L+1,K)*PHASEMASS(3,2) ! Gas-phase upper gridbox mass PHASEMASS(1,2) = PHASEMASS(3,2) - PHASEMASS(2,2) ! Total lower gridbox mass PHASEMASS(3,1) = Spc(IDTCURRENT)%Conc(I,J,L) ! Aerosol-phase lower gridbox mass - PHASEMASS(2,1) = AERFRAC(I,J,L,K)*PHASEMASS(3,1) + PHASEMASS(2,1) = State_Chm%AERFRAC(I,J,L,K)*PHASEMASS(3,1) ! Gas-phase lower gridbox mass PHASEMASS(1,1) = PHASEMASS(3,1) - PHASEMASS(2,1) @@ -1120,9 +1097,9 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Recalculate phase fraction IF (PHASEMASS(3,1).gt.TINY(1e+0_fp)) THEN - AERFRAC(I,J,L,K) = PHASEMASS(2,1)/PHASEMASS(3,1) + State_Chm%AERFRAC(I,J,L,K) = PHASEMASS(2,1)/PHASEMASS(3,1) ELSE - AERFRAC(I,J,L,K) = 0e+0_fp + State_Chm%AERFRAC(I,J,L,K) = 0e+0_fp ENDIF ! Store result @@ -1167,7 +1144,7 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) XNO3_0 = Spc(id_NIT)%Conc(I,J,L) * AIRMW / & ( NIT_MW_G * State_Met%AD(I,J,L) ) XNAT_0 = XNO3_0! * 4.e+0_fp - XICE_0 = (KG_AER(I,J,L,I_SPA)- & + XICE_0 = (State_Chm%KG_AER(I,J,L,I_SPA)- & ( ( NATMW / NIT_MW_G ) * & Spc(id_NIT)%Conc(I,J,L)))*AIRMW/(ICEMW* & State_Met%AD(I,J,L)) @@ -1186,9 +1163,9 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) * INVAIR_ABOVE / NIT_MW_G ! NAT = HNO3.3H2O = 4 molecules XNAT_ABOVE = XNO3_ABOVE! * 4.e+0_fp - ! XICE_ABOVE = (KG_AER(I,J,L+1,I_SPA)-Spc(id_NIT)%Conc(I,J,L+1)) & + ! XICE_ABOVE = (State_Chm%KG_AER(I,J,L+1,I_SPA)-Spc(id_NIT)%Conc(I,J,L+1)) & ! *INVAIR_ABOVE/ICEMW - XICE_ABOVE = (KG_AER(I,J,L+1,I_SPA)- & + XICE_ABOVE = (State_Chm%KG_AER(I,J,L+1,I_SPA)- & ( ( NATMW / NIT_MW_G ) * & Spc(id_NIT)%Conc(I,J,L+1)))*INVAIR_ABOVE/ICEMW ENDIF @@ -1237,7 +1214,7 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) IF (STATE_PSC(I,J,L+2) >= 2.0e+0_f4 ) THEN XNO3_ABOVE = Spc(id_NIT)%Conc(I,J,L+2)*INVAIR_ABOVE/NIT_MW_G XNAT_ABOVE = XNO3_ABOVE! * 4.e+0_fp - XICE_ABOVE = (KG_AER(I,J,L+2,I_SPA)- & + XICE_ABOVE = (State_Chm%KG_AER(I,J,L+2,I_SPA)- & ( ( NATMW / NIT_MW_G )* & Spc(id_NIT)%Conc(I,J,L+2)))*INVAIR_ABOVE/ICEMW ELSE @@ -1361,9 +1338,9 @@ SUBROUTINE SETTLE_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Now correct aerosol totals SEDNAT = SEDNO3 * NATMW / NIT_MW_G SEDPSC = SEDNAT + SEDICE - SEDPSC = MIN(SEDPSC,KG_AER(I,J,L+1,I_SPA)) - KG_AER(I,J,L,I_SPA) = KG_AER(I,J,L,I_SPA) + SEDPSC - KG_AER(I,J,L+1,I_SPA)=KG_AER(I,J,L+1,I_SPA)-SEDPSC + SEDPSC = MIN(SEDPSC,State_Chm%KG_AER(I,J,L+1,I_SPA)) + State_Chm%KG_AER(I,J,L,I_SPA) = State_Chm%KG_AER(I,J,L,I_SPA) + SEDPSC + State_Chm%KG_AER(I,J,L+1,I_SPA)=State_Chm%KG_AER(I,J,L+1,I_SPA)-SEDPSC ENDDO SED_LLOOP ENDDO SEDSTEPLOOP @@ -1438,9 +1415,6 @@ SUBROUTINE CALC_H2SO4_GAS( Input_Opt, State_Chm, State_Grid, State_Met ) REAL(fp) :: INVAIR REAL(fp) :: SO4_MW_G - ! Local variables for quantities from Input_Opt - LOGICAL :: prtDebug - ! Pointers TYPE(SpcConc), POINTER :: Spc(:) @@ -1448,9 +1422,6 @@ SUBROUTINE CALC_H2SO4_GAS( Input_Opt, State_Chm, State_Grid, State_Met ) ! CALC_H2SO4_GAS begins here! !================================================================= - ! Copy fields from INPUT_OPT - prtDebug = Input_Opt%LPRT .and. Input_Opt%amIRoot - ! Copy fields from species database SO4_MW_G = State_Chm%SpcData(id_SO4)%Info%MW_g ! g/mol @@ -1488,10 +1459,10 @@ SUBROUTINE CALC_H2SO4_GAS( Input_Opt, State_Chm, State_Grid, State_Met ) INVAIR = AIRMW / State_Met%AD(I,J,L) IF (PCENTER.ge.1.e+2_fp) THEN - AERFRAC(I,J,L,1) = 1e+0_fp + State_Chm%AERFRAC(I,J,L,1) = 1e+0_fp ELSEIF ( State_Met%InTroposphere(I,J,L) ) THEN ! Don't want to interfere with tropospheric aerosols - AERFRAC(I,J,L,1) = 1e+0_fp + State_Chm%AERFRAC(I,J,L,1) = 1e+0_fp ELSE H2SO4SUM = Spc(id_SO4)%Conc(I,J,L) * INVAIR / SO4_MW_G ! Use approximation from Kumala (1990) @@ -1505,11 +1476,11 @@ SUBROUTINE CALC_H2SO4_GAS( Input_Opt, State_Chm, State_Grid, State_Met ) GF_PVAP = 1.e-2_fp * EXP(GF_LOGPSULFATE) GF_DIFF = (GF_PVAP+GF_THRESHOLD) - GF_PP IF (GF_DIFF .lt. 0) THEN - AERFRAC(I,J,L,1) = 1.e+0_fp + State_Chm%AERFRAC(I,J,L,1) = 1.e+0_fp ELSEIF (GF_DIFF .lt. GF_RANGE) THEN - AERFRAC(I,J,L,1) = 1.e+0_fp-(GF_DIFF/GF_RANGE) + State_Chm%AERFRAC(I,J,L,1) = 1.e+0_fp-(GF_DIFF/GF_RANGE) ELSE - AERFRAC(I,J,L,1) = 0e+0_fp + State_Chm%AERFRAC(I,J,L,1) = 0e+0_fp ENDIF ENDIF ENDDO @@ -1520,7 +1491,9 @@ SUBROUTINE CALC_H2SO4_GAS( Input_Opt, State_Chm, State_Grid, State_Met ) ! Free pointer NULLIFY( Spc ) - IF ( prtDebug ) CALL DEBUG_MSG( '### UCX: H2SO4 partitioned' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### UCX: H2SO4 partitioned' ) + ENDIF END SUBROUTINE CALC_H2SO4_GAS !EOC @@ -1537,12 +1510,21 @@ END SUBROUTINE CALC_H2SO4_GAS !\\ ! !INTERFACE: ! - REAL(fp) FUNCTION SO4_PHOTFRAC(I,J,L) + REAL(fp) FUNCTION SO4_PHOTFRAC(I,J,L,State_Chm) +! +! !USES: +! + USE State_Chm_Mod, ONLY : ChmState ! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: I,J,L ! Location indices ! +! !INPUT/OUTPUT PARAMETERS: +! + + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object +! ! !OUTPUT VARIABLES: ! ! REAL(fp), INTENT(OUT) :: PHOTFRAC ! Gaseous fraction of H2SO4 @@ -1558,7 +1540,7 @@ REAL(fp) FUNCTION SO4_PHOTFRAC(I,J,L) ! SO4_PHOTFRAC begins here! !================================================================= - SO4_PHOTFRAC = 1.e+0_fp - AERFRAC(I,J,L,1) + SO4_PHOTFRAC = 1.e+0_fp - State_Chm%AERFRAC(I,J,L,1) END FUNCTION SO4_PHOTFRAC !EOC @@ -1694,7 +1676,6 @@ SUBROUTINE CALC_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) INTEGER :: I, J, L, K ! Local variables for quantities from Input_Opt - LOGICAL :: prtDebug LOGICAL :: LHOMNUCNAT LOGICAL :: LSOLIDPSC LOGICAL :: LACTIVEH2O @@ -1719,9 +1700,6 @@ SUBROUTINE CALC_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) LSOLIDPSC = Input_Opt%LSOLIDPSC LACTIVEH2O = Input_Opt%LACTIVEH2O - ! Do we have to print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Copy fields from species database NIT_MW_G = State_Chm%SpcData(id_NIT)%Info%MW_g ! g/mol HNO3_MW_G = State_Chm%SpcData(id_HNO3)%Info%MW_g ! g/mol @@ -1736,7 +1714,7 @@ SUBROUTINE CALC_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Initialize gridbox PSC type (see Kirner et al. 2011, GMD) STATE_PSC => State_Chm%STATE_PSC - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### UCX: start CALC_STRAT_AER' ) ENDIF @@ -2041,11 +2019,11 @@ SUBROUTINE CALC_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ENDIF ! Store in outer arrays - RAD_AER(I,J,L,I_SPA) = RAD_AER_BOX*1.e+2_fp ! cm - RHO_AER(I,J,L,I_SPA) = RHO_AER_BOX ! kg/m3 - KG_AER(I,J,L,I_SPA) = KG_AER_BOX ! kg - NDENS_AER(I,J,L,I_SPA) = NDENS_AER_BOX !#/m3 - SAD_AER(I,J,L,I_SPA) = SAD_AER_BOX ! cm2/cm3 + State_Chm%RAD_AER(I,J,L,I_SPA) = RAD_AER_BOX*1.e+2_fp ! cm + State_Chm%RHO_AER(I,J,L,I_SPA) = RHO_AER_BOX ! kg/m3 + State_Chm%KG_AER(I,J,L,I_SPA) = KG_AER_BOX ! kg + State_Chm%NDENS_AER(I,J,L,I_SPA) = NDENS_AER_BOX !#/m3 + State_Chm%SAD_AER(I,J,L,I_SPA) = SAD_AER_BOX ! cm2/cm3 ! Repartition NIT and HNO3 in strat/meso IF (LSOLIDPSC.and.IS_STRAT) THEN @@ -2084,7 +2062,7 @@ SUBROUTINE CALC_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! H2SO4 gas fraction calculated earlier throughout grid ! Consider gaseoues H2SO4 to be unavailable for SLA - H2SO4_BOX_L = H2SO4SUM * AERFRAC(I,J,L,1) + H2SO4_BOX_L = H2SO4SUM * State_Chm%AERFRAC(I,J,L,1) H2SO4_BOX_G = H2SO4SUM - H2SO4_BOX_L ! Zero local properties @@ -2190,35 +2168,35 @@ SUBROUTINE CALC_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) H2O_BOX_G = MAX(0e+0_fp,H2O_BOX_G-(H2O_BOX_L+H2O_BOX_S)) ! If very low number density, ignore settling - AERFRAC(I,J,L,2) = 0e+0_fp - AERFRAC(I,J,L,3) = 0e+0_fp - AERFRAC(I,J,L,4) = 0e+0_fp - AERFRAC(I,J,L,5) = 0e+0_fp - AERFRAC(I,J,L,6) = 0e+0_fp - AERFRAC(I,J,L,7) = 0e+0_fp + State_Chm%AERFRAC(I,J,L,2) = 0e+0_fp + State_Chm%AERFRAC(I,J,L,3) = 0e+0_fp + State_Chm%AERFRAC(I,J,L,4) = 0e+0_fp + State_Chm%AERFRAC(I,J,L,5) = 0e+0_fp + State_Chm%AERFRAC(I,J,L,6) = 0e+0_fp + State_Chm%AERFRAC(I,J,L,7) = 0e+0_fp IF ((HNO3SUM.gt.1e+0_fp).and.(IS_SAFE_DIV(HNO3_BOX_L,HNO3SUM))) THEN - AERFRAC(I,J,L,2) = HNO3_BOX_L/HNO3SUM + State_Chm%AERFRAC(I,J,L,2) = HNO3_BOX_L/HNO3SUM ENDIF IF ((HClSUM.gt.1e+0_fp).and.(IS_SAFE_DIV(HCl_BOX_L,HClSUM))) THEN - AERFRAC(I,J,L,3) = HCl_BOX_L/HClSUM + State_Chm%AERFRAC(I,J,L,3) = HCl_BOX_L/HClSUM ENDIF IF ((HOClSUM.gt.1e+0_fp).and. (IS_SAFE_DIV(HOCl_BOX_L,HOClSUM))) THEN - AERFRAC(I,J,L,4) = HOCl_BOX_L/HOClSUM + State_Chm%AERFRAC(I,J,L,4) = HOCl_BOX_L/HOClSUM ENDIF IF ((HBrSUM.gt.1e+0_fp).and.(IS_SAFE_DIV(HBr_BOX_L,HBrSUM))) THEN - AERFRAC(I,J,L,5) = HBr_BOX_L/HBrSUM + State_Chm%AERFRAC(I,J,L,5) = HBr_BOX_L/HBrSUM ENDIF IF ((HOBrSUM.gt.1e+0_fp).and.(IS_SAFE_DIV(HOBr_BOX_L,HOBrSUM))) THEN - AERFRAC(I,J,L,6) = HOBr_BOX_L/HOBrSUM + State_Chm%AERFRAC(I,J,L,6) = HOBr_BOX_L/HOBrSUM ENDIF IF ((H2OSUM.gt.1e+0_fp).and.(IS_SAFE_DIV(H2O_BOX_L,H2OSUM))) THEN - AERFRAC(I,J,L,7) = H2O_BOX_L/H2OSUM + State_Chm%AERFRAC(I,J,L,7) = H2O_BOX_L/H2OSUM ENDIF ! Send properties to larger array @@ -2252,11 +2230,11 @@ SUBROUTINE CALC_STRAT_AER( Input_Opt, State_Chm, State_Grid, State_Met, RC ) KHETI_SLA(I,J,L,10) = GAMMA_BOX(10)*KHET_SPECIFIC KHETI_SLA(I,J,L,11) = GAMMA_BOX(11)*KHET_SPECIFIC - RAD_AER(I,J,L,I_SLA) = RAD_AER_BOX*1.e+2_fp ! cm - RHO_AER(I,J,L,I_SLA) = RHO_AER_BOX ! kg/m3 - KG_AER(I,J,L,I_SLA) = KG_AER_BOX ! kg - NDENS_AER(I,J,L,I_SLA)= NDENS_AER_BOX ! #/m3 - SAD_AER(I,J,L,I_SLA) = SAD_AER_BOX ! cm2/cm3 + State_Chm%RAD_AER(I,J,L,I_SLA) = RAD_AER_BOX*1.e+2_fp ! cm + State_Chm%RHO_AER(I,J,L,I_SLA) = RHO_AER_BOX ! kg/m3 + State_Chm%KG_AER(I,J,L,I_SLA) = KG_AER_BOX ! kg + State_Chm%NDENS_AER(I,J,L,I_SLA)= NDENS_AER_BOX ! #/m3 + State_Chm%SAD_AER(I,J,L,I_SLA) = SAD_AER_BOX ! cm2/cm3 ENDDO ENDDO @@ -2273,82 +2251,6 @@ END SUBROUTINE CALC_STRAT_AER !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: kg_strat_aer -! -! !DESCRIPTION: Function KG\_STRAT\_AER returns the calculated mass of a -! stratospheric aerosol. The routine is essentially just an -! interface to allow external routines to "see" the arrays. -!\\ -!\\ -! !INTERFACE: -! - REAL(fp) FUNCTION KG_STRAT_AER (I,J,L,IAER) -! -! !INPUT PARAMETERS: -! - INTEGER,INTENT(IN) :: I,J,L ! Grid indices - INTEGER,INTENT(IN) :: IAER ! Aerosol index - ! 1 = SSA (pure H2SO4) - ! 2 = STS - ! 3 = Solid PSC -! -! !REVISION HISTORY: -! 18 Apr 2013 - S. D. Eastham - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - - !================================================================= - ! KG_STRAT_AER begins here! - !================================================================= - - KG_STRAT_AER = KG_AER(I,J,L,IAER) - - END FUNCTION KG_STRAT_AER -!EOC -!------------------------------------------------------------------------------ -! MIT Laboratory for Aviation and the Environment ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: rho_strat_aer -! -! !DESCRIPTION: Function RHO\_STRAT\_AER returns the calculated -! stratospheric aerosol mass density. -!\\ -!\\ -! !INTERFACE: -! - REAL(fp) FUNCTION RHO_STRAT_AER (I,J,L,IAER) -! -! !INPUT PARAMETERS: -! - INTEGER,INTENT(IN) :: I,J,L ! Grid indices - INTEGER,INTENT(IN) :: IAER ! Aerosol index: - ! 1 = Liquid aerosol - ! 2 = Solid aerosol -! -! !REVISION HISTORY: -! 18 Apr 2013 - S. D. Eastham - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - - !================================================================= - ! RHO_STRAT_AER begins here! - !================================================================= - - RHO_STRAT_AER = RHO_AER(I,J,L,IAER) - - END FUNCTION RHO_STRAT_AER -!EOC -!------------------------------------------------------------------------------ -! MIT Laboratory for Aviation and the Environment ! -!------------------------------------------------------------------------------ -!BOP -! ! !IROUTINE: get_strat_opt ! ! !DESCRIPTION: Subroutine GET\_STRAT\_OPT returns local optical properties @@ -2360,10 +2262,15 @@ END FUNCTION RHO_STRAT_AER !\\ ! !INTERFACE: ! - SUBROUTINE GET_STRAT_OPT (I,J,L,IAER,RAER,REFF,SAD,XSA) + SUBROUTINE GET_STRAT_OPT (State_Chm,I,J,L,IAER,RAER,REFF,SAD,XSA) +! +! !USES: +! + USE State_Chm_Mod, ONLY : ChmState ! ! !INPUT PARAMETERS: ! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object INTEGER, INTENT(IN) :: I, J, L ! Grid indices INTEGER, INTENT(IN) :: IAER ! Aerosol index ! 1 = Liquid aerosols @@ -2394,7 +2301,7 @@ SUBROUTINE GET_STRAT_OPT (I,J,L,IAER,RAER,REFF,SAD,XSA) !================================================================= ! Surface area density [cm2/cm3] - SAD = SAD_AER(I,J,L,IAER) + SAD = State_Chm%SAD_AER(I,J,L,IAER) ! Add error check: threshold is 1e-14 cm2/cm3 (bmy, 4/7/15) IF ( SAD < 1e-14_fp ) THEN @@ -2415,7 +2322,7 @@ SUBROUTINE GET_STRAT_OPT (I,J,L,IAER,RAER,REFF,SAD,XSA) !-------------------------------------------------------------- ! For SLA, convert liquid radius to effective optical radius - RAER = RAD_AER(I,J,L,IAER) + RAER = State_Chm%RAD_AER(I,J,L,IAER) IF (IAER.eq.I_SLA) THEN REFF = RAER/SLA_RR ELSE @@ -3737,13 +3644,6 @@ SUBROUTINE SET_H2O_TRAC( SETSTRAT, Input_Opt, State_Chm, State_Grid, & ! Copy fields from INPUT_OPT LACTIVEH2O = Input_Opt%LACTIVEH2O - ! Check that species concentration units are as expected - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - MSG = 'Incorrect species units: ' // TRIM(State_Chm%Spc_Units) - LOC = 'UCX_MOD: SET_H2O_TRAC' - CALL GC_Error( TRIM(MSG), RC, TRIM(LOC) ) - ENDIF - ! Point to GEOS-Chem species array Spc => State_Chm%Species @@ -3755,6 +3655,16 @@ SUBROUTINE SET_H2O_TRAC( SETSTRAT, Input_Opt, State_Chm, State_Grid, & id_H2O = Ind_('H2O') ENDIF + ! Check that species concentration units are as expected + IF ( Spc(id_H2O)%Units /= KG_SPECIES_PER_KG_DRY_AIR ) THEN + MSG = 'Incorrect species units: ' // & + TRIM( UNIT_STR(Spc(id_H2O)%Units) ) + LOC = 'UCX_MOD: SET_H2O_TRAC' + CALL GC_Error( TRIM(MSG), RC, TRIM(LOC) ) + Spc => NULL() + RETURN + ENDIF + !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & !$OMP PRIVATE( I, J, L, TPLEV, READ_SPHU, LEVCPT) & @@ -3873,8 +3783,6 @@ SUBROUTINE UCX_H2SO4PHOT( Input_Opt, State_Chm, State_Grid, State_Met ) ! ! !USES: ! - USE CMN_FJX_MOD, ONLY : ZPJ - USE FAST_JX_MOD, ONLY : RXN_H2SO4 USE Input_Opt_Mod, ONLY : OptInput USE Species_Mod, ONLY : SpcConc USE State_Chm_Mod, ONLY : ChmState @@ -3917,6 +3825,9 @@ SUBROUTINE UCX_H2SO4PHOT( Input_Opt, State_Chm, State_Grid, State_Met ) ! UCX_H2SO4PHOT begins here! !================================================================= + ! Initialize + PHOTDELTA = 0.0_fp + ! Copy fields from species database SO2_MW_G = State_Chm%SpcData(id_SO2)%Info%MW_g ! g/mol SO4_MW_G = State_Chm%SpcData(id_SO4)%Info%MW_g ! g/mol @@ -3942,13 +3853,16 @@ SUBROUTINE UCX_H2SO4PHOT( Input_Opt, State_Chm, State_Grid, State_Met ) LMINPHOT = State_Met%ChemGridLev(I,J) ! Retrieve photolysis rate as a fraction of gaseous SO4 - PHOTDELTA = ZPJ(LMINPHOT,RXN_H2SO4,I,J) * DTCHEM + IF ( State_Chm%Phot%RXN_H2SO4 > 0 ) THEN + PHOTDELTA = State_Chm%Phot%ZPJ(LMINPHOT,State_Chm%Phot%RXN_H2SO4,I,J)& + * DTCHEM + ENDIF PHOTDELTA = MIN(1.e+0_fp,PHOTDELTA) DO L=LMINPHOT+1,State_Grid%NZ ! Apply photolysis to SO4 ! First retrieve gaseous fraction - SO4_IN = Spc(id_SO4)%Conc(I,J,L)*SO4_PHOTFRAC(I,J,L) + SO4_IN = Spc(id_SO4)%Conc(I,J,L)*SO4_PHOTFRAC(I,J,L,State_Chm) SO4_DELTA = PHOTDELTA*SO4_IN ! Remove from SO4 Spc(id_SO4)%Conc(I,J,L) = Spc(id_SO4)%Conc(I,J,L) - SO4_DELTA @@ -3980,7 +3894,7 @@ END SUBROUTINE UCX_H2SO4PHOT !\\ ! !INTERFACE: ! - SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid ) + SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid, State_Chm ) ! ! !USES: ! @@ -3989,11 +3903,9 @@ SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid ) USE FILE_MOD, ONLY : IoError USE Input_Opt_Mod, ONLY : OptInput USE State_Grid_Mod, ONLY : GrdState + USE State_Chm_Mod, ONLY : ChmState #if defined( MODEL_CESM ) USE UNITS, ONLY : freeUnit -#if defined( SPMD ) - USE MPISHORTHAND -#endif #endif ! ! !INPUT PARAMETERS: @@ -4001,6 +3913,10 @@ SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid ) TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object ! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState),INTENT(INOUT) :: State_Chm ! Chemistry State object +! ! !REVISION HISTORY: ! 05 Dec 2014 - C. Keller - Initial version ! See https://github.com/geoschem/geos-chem for complete history @@ -4011,13 +3927,10 @@ SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid ) ! !LOCAL VARIABLES: ! ! Scalars - LOGICAL :: prtDebug, FileExists + LOGICAL :: FileExists INTEGER :: I, AS, IOS INTEGER :: IMON, ITRAC, ILEV INTEGER :: IU_FILE -#if defined( MODEL_CESM ) && defined( SPMD ) - INTEGER :: nSize ! Number of elements in NOXCOEFF -#endif ! Strings CHARACTER(LEN=255) :: NOX_FILE @@ -4026,14 +3939,14 @@ SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid ) CHARACTER(LEN=255) :: FileMsg CHARACTER(LEN=255) :: GridSpec CHARACTER(LEN=255) :: NOON_FILE_ROOT +#if defined( MODEL_CESM ) + CHARACTER(LEN=*), PARAMETER :: subname = 'NOXCOEFF_INIT' +#endif !================================================================= ! NOXCOEFF_INIT begins here! !================================================================= - ! Copy fields from INPUT_OPT - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! -------------------------------------------------------------- ! Input data sources ! -------------------------------------------------------------- @@ -4110,38 +4023,37 @@ SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid ) ! If this is a regular simulation, then read data from files !================================================================= - ! Number of latitude levels of NOXCOEFF array. Data is only + ! Number of latitude levels of State_Chm%NOXCOEFF array. Data is only ! available for 2x25 and 4x5. Use 2x25 for any different grid ! and map NOx coeffs onto simulation grid when calling ! GET_NOXCOEFF. IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' .or. & TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN - JJNOXCOEFF = State_Grid%NY + State_Chm%JJNOXCOEFF = State_Grid%NY ELSE - JJNOXCOEFF = 91 + State_Chm%JJNOXCOEFF = 91 ENDIF ! Fill NOx latitudes - ALLOCATE(NOXLAT(JJNOXCOEFF+1), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'NOXLAT' ) + ALLOCATE(State_Chm%NOXLAT(State_Chm%JJNOXCOEFF+1), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%NOXLAT' ) ! Fill manually - NOXLAT(2) = -89.0e+0_fp - DO I = 3,JJNOXCOEFF - NOXLAT(I) = NOXLAT(I-1) + 2e+0_fp + State_Chm%NOXLAT(2) = -89.0e+0_fp + DO I = 3,State_Chm%JJNOXCOEFF + State_Chm%NOXLAT(I) = State_Chm%NOXLAT(I-1) + 2e+0_fp ENDDO - ! Overshoot to make sure that a latitude of 90.0 will be properl - ! matched onto JJNOXCOEFF. - NOXLAT(JJNOXCOEFF+1) = 90.5e+0_fp + ! Overshoot to make sure that a latitude of 90.0 will be properly + ! matched onto State_Chm%JJNOXCOEFF. + State_Chm%NOXLAT(State_Chm%JJNOXCOEFF+1) = 90.5e+0_fp - ! Initialize the NOXCOEFF array. This array holds monthly NOx + ! Initialize the State_Chm%NOXCOEFF array. This array holds monthly NOx ! coefficients on 51 levels and for 6 species. - ALLOCATE(NOXCOEFF(JJNOXCOEFF,UCX_NLEVS,6,12), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'NOXCOEFF' ) - NOXCOEFF = 0.0e+0_fp + ALLOCATE(State_Chm%NOXCOEFF(State_Chm%JJNOXCOEFF,UCX_NLEVS,6,12), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%NOXCOEFF' ) + State_Chm%NOXCOEFF = 0.0e+0_fp #if defined( MODEL_CESM ) - nSize = JJNOXCOEFF * UCX_NLEVS * 6 * 12 IF ( Input_Opt%amIRoot ) THEN #endif ! Fill array @@ -4190,7 +4102,7 @@ SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid ) CALL IOERROR( IOS, IU_FILE,'UCX_MOD:NOXCOEFF_INIT') ENDIF - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE(DBGMSG,'(a,a)') ' ### UCX: Reading ', TRIM( NOX_FILE ) CALL DEBUG_MSG( TRIM(DBGMSG) ) ENDIF @@ -4199,11 +4111,11 @@ SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid ) DO ILEV = 1,UCX_NLEVS IF ( TRIM(State_Grid%GridRes) =='4.0x5.0' ) THEN - READ(IU_FILE, 110, IOSTAT=IOS ) NOXCOEFF(:,ILEV,ITRAC,IMON) + READ(IU_FILE, 110, IOSTAT=IOS ) State_Chm%NOXCOEFF(:,ILEV,ITRAC,IMON) 110 FORMAT(46E10.3) ELSE ! Use 2x25 as default - READ(IU_FILE, 120, IOSTAT=IOS ) NOXCOEFF(:,ILEV,ITRAC,IMON) + READ(IU_FILE, 120, IOSTAT=IOS ) State_Chm%NOXCOEFF(:,ILEV,ITRAC,IMON) 120 FORMAT(91E10.3) ENDIF IF ( IOS /= 0 ) THEN @@ -4222,9 +4134,6 @@ SUBROUTINE NOXCOEFF_INIT( Input_Opt, State_Grid ) ENDDO !IMON #if defined( MODEL_CESM ) ENDIF -#if defined( SPMD ) - CALL MPIBCAST( NOXCOEFF, nSize, MPIR8, 0, MPICOM ) -#endif #endif END SUBROUTINE NOXCOEFF_INIT @@ -4237,7 +4146,7 @@ END SUBROUTINE NOXCOEFF_INIT ! !IROUTINE: get_jjnox ! ! !DESCRIPTION: Subroutine GET\_JJNOX maps grid box at location IISIM, JJSIM of -! the simulation grid onto the latitude grid of the NOXCOEFF array. +! the simulation grid onto the latitude grid of the State_Chm%NOXCOEFF array. !\\ !\\ ! This routine simply returns the index of the NOx latitude vector that covers @@ -4246,21 +4155,23 @@ END SUBROUTINE NOXCOEFF_INIT !\\ ! !INTERFACE: ! - FUNCTION GET_JJNOX( IISIM, JJSIM, State_Grid ) RESULT ( JJNOX ) + FUNCTION GET_JJNOX( IISIM, JJSIM, State_Grid, State_Chm ) RESULT ( JJNOX ) ! ! !USES: ! USE State_Grid_Mod, ONLY : GrdState + USE State_Chm_Mod, ONLY : ChmState ! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: IISIM ! Latitude index on simulation grid INTEGER, INTENT(IN) :: JJSIM ! Latitude index on simulation grid TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object ! ! !OUTPUT VARIABLES: ! - INTEGER :: JJNOX ! Latitude index on NOXCOEFF grid + INTEGER :: JJNOX ! Latitude index on State_Chm%NOXCOEFF grid ! ! !REVISION HISTORY: ! 05 Dec 2014 - C. Keller - Initial version @@ -4286,8 +4197,8 @@ FUNCTION GET_JJNOX( IISIM, JJSIM, State_Grid ) RESULT ( JJNOX ) ! Loop over all latitudes of the NOx grid until we reach the grid ! box where the simulation latitude sits in. - DO I = 1,JJNOXCOEFF - IF ( LAT < NOXLAT(I+1) ) THEN + DO I = 1,State_Chm%JJNOXCOEFF + IF ( LAT < State_Chm%NOXLAT(I+1) ) THEN JJNOX = I EXIT ENDIF @@ -4326,10 +4237,13 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) ! !INPUT PARAMETERS: ! TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options - TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object TYPE(DgnState), INTENT(IN) :: State_Diag ! Diagnostics State object TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object ! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object +! ! !REVISION HISTORY: ! 04 Apr 2013 - S. D. Eastham - Initial version ! See https://github.com/geoschem/geos-chem for complete history @@ -4349,9 +4263,6 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) REAL(fp) :: JRATIO REAL(fp) :: DEG_SUM - ! Local variables for quantities from Input_Opt - LOGICAL :: prtDebug - ! Strings CHARACTER(LEN=255) :: DBGMSG, GRIDSPEC, FileMsg, FileName @@ -4366,9 +4277,6 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) IF ( .not. Input_Opt%ITS_A_FULLCHEM_SIM .and. & .not. Input_Opt%ITS_AN_AEROSOL_SIM ) RETURN - ! Copy fields from INPUT_OPT - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - ! Initialize species ID flags id_BCPI = Ind_('BCPI' ) id_BrNO3 = Ind_('BrNO3' ) @@ -4390,7 +4298,7 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) id_SO4 = Ind_('SO4' ) ! Print info - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6,'(a)') REPEAT( '=', 79 ) WRITE( 6,'(a)') 'U N I F I E D C H E M I S T R Y' WRITE( 6,'(a)') 'Routines written by SEBASTIAN D. EASTHAM' @@ -4403,7 +4311,7 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) IF ( Input_Opt%DryRun ) THEN ! Get dry-run output from NOXCOEFF_INIT as well - CALL NOXCOEFF_INIT( Input_Opt, State_Grid ) + CALL NOXCOEFF_INIT( Input_Opt, State_Grid, State_Chm ) ! Exit without doing any computation (dry-run only) RETURN @@ -4414,14 +4322,14 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) !================================================================= ! Allocate arrays of input pressure levels and lat edges - ALLOCATE( UCX_PLEVS( UCX_NLEVS ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'UCX_PLEVS' ) + ALLOCATE( State_Chm%UCX_PLEVS( UCX_NLEVS ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%UCX_PLEVS' ) - ALLOCATE( UCX_LATS( UCX_NLAT+1 ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'UCX_LATS' ) + ALLOCATE( State_Chm%UCX_LATS( UCX_NLAT+1 ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%UCX_LATS' ) ! Set input pressure levels (hPa) - UCX_PLEVS = (/ 0.2200e+00_fp, 0.2600e+00_fp, & + State_Chm%UCX_PLEVS = (/ 0.2200e+00_fp, 0.2600e+00_fp, & 0.3100e+00_fp, 0.3600e+00_fp, & 0.4300e+00_fp, 0.5100e+00_fp, & 0.6000e+00_fp, 0.7100e+00_fp, & @@ -4449,11 +4357,11 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) 9.2004e+02_fp /) ! Set input latitude edges (degrees) - UCX_LATS(1) = -90.0e+0_fp - UCX_LATS(2) = (-90.0e+0_fp) + (9.5e+0_fp/2.0e+0_fp) - UCX_LATS(20) = 90.0e+0_fp + State_Chm%UCX_LATS(1) = -90.0e+0_fp + State_Chm%UCX_LATS(2) = (-90.0e+0_fp) + (9.5e+0_fp/2.0e+0_fp) + State_Chm%UCX_LATS(20) = 90.0e+0_fp DO N=2,18 - UCX_LATS(N+1) = UCX_LATS(N) + 9.5e+0_fp + State_Chm%UCX_LATS(N+1) = State_Chm%UCX_LATS(N) + 9.5e+0_fp ENDDO ! Calculate conversion factors for SLA @@ -4470,41 +4378,41 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) SLA_VR = (0.357e-6_fp)*(10.e+0_fp**(12.e+0_fp*0.249)) ! Initialize NOx coefficient arrays - ALLOCATE( NOX_O( State_Grid%NX, State_Grid%NY, State_Grid%NZ, 2 ), & + ALLOCATE( State_Chm%NOX_O( State_Grid%NX, State_Grid%NY, State_Grid%NZ, 2 ), & STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'NOX_O' ) - NOX_O = 0e+0_fp + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%NOX_O' ) + State_Chm%NOX_O = 0e+0_fp - ALLOCATE( NOX_J( State_Grid%NX, State_Grid%NY, State_Grid%NZ, 4 ), & + ALLOCATE( State_Chm%NOX_J( State_Grid%NX, State_Grid%NY, State_Grid%NZ, 4 ), & STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'NOX_J' ) - NOX_J = 0e+0_fp + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%NOX_J' ) + State_Chm%NOX_J = 0e+0_fp ! Initialize PSC variables - ALLOCATE( RAD_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + ALLOCATE( State_Chm%RAD_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & NSTRATAER ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'RAD_AER' ) - RAD_AER = 0e+0_fp + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%RAD_AER' ) + State_Chm%RAD_AER = 0e+0_fp - ALLOCATE( KG_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + ALLOCATE( State_Chm%KG_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & NSTRATAER ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'KG_AER' ) - KG_AER = 0e+0_fp + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%KG_AER' ) + State_Chm%KG_AER = 0e+0_fp - ALLOCATE( SAD_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + ALLOCATE( State_Chm%SAD_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & NSTRATAER ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'SAD_AER' ) - SAD_AER = 0e+0_fp + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%SAD_AER' ) + State_Chm%SAD_AER = 0e+0_fp - ALLOCATE( NDENS_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + ALLOCATE( State_Chm%NDENS_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & NSTRATAER ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'NDENS_AER' ) - NDENS_AER = 0e+0_fp + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%NDENS_AER' ) + State_Chm%NDENS_AER = 0e+0_fp - ALLOCATE( RHO_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + ALLOCATE( State_Chm%RHO_AER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & NSTRATAER ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'RHO_AER' ) - RHO_AER = 0e+0_fp + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%RHO_AER' ) + State_Chm%RHO_AER = 0e+0_fp ! Mass fraction of species contained in liquid aerosol ! Indices: 1 - SO4 @@ -4514,29 +4422,29 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) ! 5 - HBr ! 6 - HOBr ! 7 - H2O - ALLOCATE( AERFRAC( State_Grid%NX, State_Grid%NY, State_Grid%NZ,7), & + ALLOCATE( State_Chm%AERFRAC( State_Grid%NX, State_Grid%NY, State_Grid%NZ,7), & STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AERFRAC' ) - AERFRAC = 0e+0_fp - - ALLOCATE( AERFRACIND( 7 ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'AERFRACIND' ) - AERFRACIND(1) = id_SO4 - AERFRACIND(2) = id_HNO3 - AERFRACIND(3) = id_HCl - AERFRACIND(4) = id_HOCl - AERFRACIND(5) = id_HBr - AERFRACIND(6) = id_HOBr - AERFRACIND(7) = id_H2O + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%AERFRAC' ) + State_Chm%AERFRAC = 0e+0_fp + + ALLOCATE( State_Chm%AERFRACIND( 7 ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%AERFRACIND' ) + State_Chm%AERFRACIND(1) = id_SO4 + State_Chm%AERFRACIND(2) = id_HNO3 + State_Chm%AERFRACIND(3) = id_HCl + State_Chm%AERFRACIND(4) = id_HOCl + State_Chm%AERFRACIND(5) = id_HBr + State_Chm%AERFRACIND(6) = id_HOBr + State_Chm%AERFRACIND(7) = id_H2O ! H2SO4 photolysis rate at the top of the chemgrid - ALLOCATE( SO4_TOPPHOT( State_Grid%NX,State_Grid%NY ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'SO4_TOPPHOT' ) - SO4_TOPPHOT = 0.e+0_fp + ALLOCATE( State_Chm%SO4_TOPPHOT( State_Grid%NX,State_Grid%NY ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%SO4_TOPPHOT' ) + State_Chm%SO4_TOPPHOT = 0.e+0_fp - ALLOCATE( UCX_REGRID( State_Grid%NY, UCX_NLAT ), STAT=AS ) - IF ( AS /= 0 ) CALL ALLOC_ERR( 'UCX_REGRID' ) - UCX_REGRID = 0e+0_fp + ALLOCATE( State_Chm%UCX_REGRID( State_Grid%NY, UCX_NLAT ), STAT=AS ) + IF ( AS /= 0 ) CALL ALLOC_ERR( 'State_Chm%UCX_REGRID' ) + State_Chm%UCX_REGRID = 0e+0_fp ! Calculate the scaling matrix ! Note cosine (area-weighted) @@ -4548,8 +4456,8 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) - SIN( JMIN_OUT * PI_180 ) DEG_SUM = 0e+0_fp DO JIN=1,UCX_NLAT - JMIN_IN = UCX_LATS(JIN) - JMAX_IN = UCX_LATS(JIN+1) + JMIN_IN = State_Chm%UCX_LATS(JIN) + JMAX_IN = State_Chm%UCX_LATS(JIN+1) IF ((JMAX_OUT.ge.JMIN_IN).and.(JMIN_OUT.le.JMAX_IN)) THEN JMAX_TMP = MIN(JMAX_IN,JMAX_OUT) JMIN_TMP = MAX(JMIN_IN,JMIN_OUT) @@ -4557,7 +4465,7 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) - SIN( JMIN_TMP * PI_180 ) IF (IS_SAFE_DIV(JDIF_TMP,JDIF_OUT)) THEN JRATIO = JDIF_TMP/JDIF_OUT - UCX_REGRID(JOUT,JIN) = JRATIO + State_Chm%UCX_REGRID(JOUT,JIN) = JRATIO DEG_SUM = DEG_SUM + JRATIO ENDIF ENDIF @@ -4565,14 +4473,14 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) ! Normalize IF (DEG_SUM.gt.0e+0_fp) THEN DO JIN=1,UCX_NLAT - UCX_REGRID(JOUT,JIN) = UCX_REGRID(JOUT,JIN)/DEG_SUM + State_Chm%UCX_REGRID(JOUT,JIN) = State_Chm%UCX_REGRID(JOUT,JIN)/DEG_SUM ENDDO ELSE - UCX_REGRID(JOUT,:) = 0e+0_fp + State_Chm%UCX_REGRID(JOUT,:) = 0e+0_fp ENDIF !! Debug - !IF ( prtDebug ) THEN + !IF ( Input_Opt%Verbose ) THEN ! WRITE(DBGMSG,'(a,I03,a,3(F6.2,x))') '### UCX: Exgrid: J-', & ! JOUT, '->',JMIN_OUT,JMAX_OUT,JDIF_OUT ! CALL DEBUG_MSG( TRIM(DBGMSG) ) @@ -4582,55 +4490,9 @@ SUBROUTINE INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) !ENDIF ENDDO - ! Initialize NOXCOEFF arrays - CALL NOXCOEFF_INIT( Input_Opt, State_Grid ) + ! Initialize State_Chm%NOXCOEFF arrays + CALL NOXCOEFF_INIT( Input_Opt, State_Grid, State_Chm ) END SUBROUTINE INIT_UCX !EOC -!------------------------------------------------------------------------------ -! MIT Laboratory for Aviation and the Environment ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: cleanup_ucx -! -! !DESCRIPTION: Subroutine CLEANUP\_UCX deallocates module variables. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE CLEANUP_UCX ( ) -! -! !REVISION HISTORY: -! 04 Apr 2013 - S. D. Eastham - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - INTEGER :: N - - !================================================================= - ! CLEANUP_UCX begins here! - !================================================================= - - IF ( ALLOCATED( RAD_AER ) ) DEALLOCATE( RAD_AER ) - IF ( ALLOCATED( SAD_AER ) ) DEALLOCATE( SAD_AER ) - IF ( ALLOCATED( KG_AER ) ) DEALLOCATE( KG_AER ) - IF ( ALLOCATED( RHO_AER ) ) DEALLOCATE( RHO_AER ) - IF ( ALLOCATED( NDENS_AER ) ) DEALLOCATE( NDENS_AER ) - IF ( ALLOCATED( AERFRAC ) ) DEALLOCATE( AERFRAC ) - IF ( ALLOCATED( AERFRACIND ) ) DEALLOCATE( AERFRACIND ) - IF ( ALLOCATED( UCX_REGRID ) ) DEALLOCATE( UCX_REGRID ) - IF ( ALLOCATED( UCX_PLEVS ) ) DEALLOCATE( UCX_PLEVS ) - IF ( ALLOCATED( UCX_LATS ) ) DEALLOCATE( UCX_LATS ) - IF ( ALLOCATED( NOX_O ) ) DEALLOCATE( NOX_O ) - IF ( ALLOCATED( NOX_J ) ) DEALLOCATE( NOX_J ) - IF ( ALLOCATED( SO4_TOPPHOT) ) DEALLOCATE( SO4_TOPPHOT) - - ! Cleanup the NOx coeff arrays - IF ( ALLOCATED( NOXCOEFF ) ) DEALLOCATE( NOXCOEFF ) - IF ( ALLOCATED( NOXLAT ) ) DEALLOCATE( NOXLAT ) - - END SUBROUTINE CLEANUP_UCX -!EOC END MODULE UCX_MOD diff --git a/GeosCore/vdiff_mod.F90 b/GeosCore/vdiff_mod.F90 index 92e02c178..237702aab 100644 --- a/GeosCore/vdiff_mod.F90 +++ b/GeosCore/vdiff_mod.F90 @@ -79,7 +79,6 @@ MODULE Vdiff_Mod ! ! !PRIVATE DATA MEMBERS: ! - LOGICAL :: prtDebug ! Should we print debug info? INTEGER :: nspcmix ! # of species for mixing INTEGER :: plev ! # of levels INTEGER :: plevp ! # of level edges @@ -341,7 +340,7 @@ subroutine vdiff( lat, ip, uwnd, vwnd, & pblh = pblh_arg(:,lat) !### Debug - IF ( prtDebug .and. ip < 5 .and. lat < 5 ) & + IF ( Input_Opt%Verbose .and. ip < 5 .and. lat < 5 ) & CALL DEBUG_MSG( '### VDIFF: vdiff begins' ) IF (PRESENT(taux_arg )) taux = taux_arg(:,lat) @@ -385,7 +384,7 @@ subroutine vdiff( lat, ip, uwnd, vwnd, & end do ! !### Debug - IF ( prtDebug .and. ip < 5 .and. lat < 5 ) & + IF ( Input_Opt%Verbose .and. ip < 5 .and. lat < 5 ) & CALL DEBUG_MSG( '### VDIFF: diffusion begins' ) !----------------------------------------------------------------------- @@ -407,7 +406,7 @@ subroutine vdiff( lat, ip, uwnd, vwnd, & end do ! !### Debug - IF ( prtDebug .and. ip < 5 .and. lat < 5 ) & + IF ( Input_Opt%Verbose .and. ip < 5 .and. lat < 5 ) & CALL DEBUG_MSG( '### VDIFF: compute free atmos. diffusion' ) !----------------------------------------------------------------------- @@ -456,7 +455,7 @@ subroutine vdiff( lat, ip, uwnd, vwnd, & end do !### Debug - IF ( prtDebug .and. ip < 5 .and. lat < 5 ) & + IF ( Input_Opt%Verbose .and. ip < 5 .and. lat < 5 ) & CALL DEBUG_MSG( '### VDIFF: pbldif begins' ) !----------------------------------------------------------------------- @@ -485,7 +484,7 @@ subroutine vdiff( lat, ip, uwnd, vwnd, & endif !### Debug - IF ( prtDebug .and. ip < 5 .and. lat < 5 ) & + IF ( Input_Opt%Verbose .and. ip < 5 .and. lat < 5 ) & CALL DEBUG_MSG( '### VDIFF: after pbldif' ) !----------------------------------------------------------------------- @@ -652,7 +651,7 @@ subroutine vdiff( lat, ip, uwnd, vwnd, & end do !### Debug - IF ( prtDebug .and. ip < 5 .and. lat < 5 ) & + IF ( Input_Opt%Verbose .and. ip < 5 .and. lat < 5 ) & CALL DEBUG_MSG( '### VDIFF: starting diffusion' ) !----------------------------------------------------------------------- @@ -1878,8 +1877,9 @@ SUBROUTINE Max_PblHt_For_Vdiff( Input_Opt, State_Grid, State_Met, RC ) ENDDO ! Compute the number of PBL levels + ! Write out the message as debug output (bmy, 05 Dec 2022) npbl = MAX( 1, plev - k ) - IF ( Input_Opt%AmIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE(6,*) 'Init_Vdiff: pbl height will be limited to bottom ',npbl, & ' model levels.' WRITE(6,*) 'Top is ',ref_pmid(plevp-npbl),' hpa' @@ -2020,7 +2020,9 @@ SUBROUTINE VDIFFDR( Input_Opt, State_Chm, State_Diag, & !================================================================= !### Debug info - IF ( prtDebug ) CALL DEBUG_MSG( '### VDIFFDR: VDIFFDR begins' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### VDIFFDR: VDIFFDR begins' ) + ENDIF ! Initialize RC = GC_SUCCESS @@ -2085,7 +2087,9 @@ SUBROUTINE VDIFFDR( Input_Opt, State_Chm, State_Diag, & !$OMP END PARALLEL DO !### Debug - IF ( prtDebug ) CALL DEBUG_MSG( '### VDIFFDR: after emis. and depdrp' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### VDIFFDR: after emis. and depdrp' ) + ENDIF !-------------------------------------------------------------------- ! Now use pointers to flip arrays in the vertical (bmy, 6/22/15) @@ -2118,7 +2122,9 @@ SUBROUTINE VDIFFDR( Input_Opt, State_Chm, State_Diag, & p_shp = p_shp * 1.e-3_fp !### Debug - IF ( prtDebug ) CALL DEBUG_MSG( '### VDIFFDR: before vdiff' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### VDIFFDR: before vdiff' ) + ENDIF !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & @@ -2136,7 +2142,9 @@ SUBROUTINE VDIFFDR( Input_Opt, State_Chm, State_Diag, & !$OMP END PARALLEL DO !### Debug - IF ( prtDebug ) CALL DEBUG_MSG( '### VDIFFDR: after vdiff' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### VDIFFDR: after vdiff' ) + ENDIF ! Convert kg/kg -> v/v DO NA = 1, nAdvect @@ -2166,7 +2174,9 @@ SUBROUTINE VDIFFDR( Input_Opt, State_Chm, State_Diag, & p_cgs => NULL() !### Debug - IF ( prtDebug ) CALL DEBUG_MSG( '### VDIFFDR: VDIFFDR finished' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### VDIFFDR: VDIFFDR finished' ) + ENDIF END SUBROUTINE VDIFFDR !EOC @@ -2200,7 +2210,8 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : ITS_TIME_FOR_EMIS USE Time_Mod, ONLY : Get_Ts_Dyn - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod IMPLICIT NONE ! @@ -2229,12 +2240,11 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & ! !LOCAL VARIABLES: ! ! Scalars - LOGICAL :: prtDebug INTEGER :: TS_Dyn + INTEGER :: previous_units REAL(fp) :: DT_Dyn ! Strings - CHARACTER(LEN=63) :: OrigUnit CHARACTER(LEN=255) :: errMsg CHARACTER(LEN=255) :: thisLoc @@ -2244,7 +2254,6 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & ! Initialize RC = GC_SUCCESS ! Assume success - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ! Print debug output? ErrMsg = '' ThisLoc = ' -> at DO_PBL_MIX_2 (in module GeosCore/vdiff_mod.F90)' @@ -2265,6 +2274,7 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetMixingFull, & @@ -2276,6 +2286,9 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetMixingPBL, & diagPBL = NULL(), & mapDataPBL = State_Diag%Map_BudgetMixingPBL, & + isLevs = State_Diag%Archive_BudgetMixingLevs, & + diagLevs = NULL(), & + mapDataLevs = State_Diag%Map_BudgetMixingLevs, & colMass = State_Diag%BudgetColumnMass, & before_op = .TRUE., & RC = RC ) @@ -2292,18 +2305,37 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & ! Unit conversion #1 !======================================================================= - ! Convert species concentration to v/v dry - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, & - State_Met, 'v/v dry', RC, & - OrigUnit=OrigUnit ) + ! Halt mixing timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Boundary layer mixing", RC ) + ENDIF + + ! Convert species concentration to [v/v dry] aka [mol/mol dry] + ! NOTE: Convert units for all all species because we will later + ! update mixing ratios after recomputing air quantities with AIRQNT. + ! This is needed in order to ensure mass conservation. + ! -- Bob Yantosca, Lizzie Lundgren (15 Feb 2024) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountred in "Convert_Spc_Units" (to v/v dry)!' + ErrMsg = 'Error encountred in "Convert_Spc_Units" (to mol.mol dry)!' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF + ! Start mixng timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Boundary layer mixing", RC ) + ENDIF + !======================================================================= ! PBL mixing !======================================================================= @@ -2320,7 +2352,7 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & ENDIF ! Debug print - IF( prtDebug ) THEN + IF( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### DO_PBL_MIX_2: after VDIFFDR' ) ENDIF @@ -2330,10 +2362,6 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & ! Update air quantities and species concentrations with updated ! specific humidity (ewl, 10/28/15) - ! - ! NOTE: Prior to October 2015, air quantities were not updated - ! with specific humidity modified in VDIFFDR at this point in - ! the model CALL AirQnt( Input_Opt, State_Chm, State_Grid, & State_Met, RC, Update_Mixing_Ratio=.TRUE. ) @@ -2345,7 +2373,7 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & ENDIF ! Debug print - IF( prtDebug ) THEN + IF( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### DO_PBL_MIX_2: after AIRQNT' ) ENDIF @@ -2353,9 +2381,19 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & ! Unit conversion #2 !======================================================================= + ! Halt mixing timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Boundary layer mixing", RC ) + ENDIF + ! Convert species back to the original units - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, & - State_Met, OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -2364,6 +2402,11 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & RETURN ENDIF + ! Start mixng timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Boundary layer mixing", RC ) + ENDIF + !======================================================================= ! Non-local PBL mixing budget diagnostics - Part 2 of 2 !======================================================================= @@ -2378,6 +2421,7 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetMixingFull, & @@ -2389,6 +2433,9 @@ SUBROUTINE Do_Vdiff( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetMixingPBL, & diagPBL = State_Diag%BudgetMixingPBL, & mapDataPBL = State_Diag%Map_BudgetMixingPBL, & + isLevs = State_Diag%Archive_BudgetMixingLevs, & + diagLevs = State_Diag%BudgetMixingLevs, & + mapDataLevs = State_Diag%Map_BudgetMixingLevs, & colMass = State_Diag%BudgetColumnMass, & timeStep = DT_Dyn, & RC = RC ) diff --git a/GeosCore/wetscav_mod.F90 b/GeosCore/wetscav_mod.F90 index a6d614a19..021117017 100644 --- a/GeosCore/wetscav_mod.F90 +++ b/GeosCore/wetscav_mod.F90 @@ -96,11 +96,11 @@ MODULE WETSCAV_MOD LOGICAL :: ITS_A_POPS_SIM ! Species ID flags - INTEGER :: id_DUST1 + INTEGER :: id_DUST01 INTEGER :: id_H2O2 - INTEGER :: id_NK1 + INTEGER :: id_NK01 INTEGER :: id_NH3 - INTEGER :: id_SF1 + INTEGER :: id_SF01 INTEGER :: id_SO2 INTEGER :: id_SO4 @@ -161,7 +161,6 @@ SUBROUTINE DO_WETDEP( Input_Opt, State_Chm, State_Diag, & ! !LOCAL VARIABLES: ! ! Scalars - LOGICAL :: prtDebug INTEGER :: TS_Dyn REAL(f8) :: DT_Dyn @@ -185,9 +184,6 @@ SUBROUTINE DO_WETDEP( Input_Opt, State_Chm, State_Diag, & ITS_A_MERCURY_SIM = Input_Opt%ITS_A_MERCURY_SIM ITS_A_POPS_SIM = Input_Opt%ITS_A_POPS_SIM - ! Only print output on the root CPU - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - !------------------------------------------------------------------------ ! WetDep budget diagnostics - Part 1 of 2 !------------------------------------------------------------------------ @@ -197,6 +193,7 @@ SUBROUTINE DO_WETDEP( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetWetDepFull, & @@ -208,6 +205,9 @@ SUBROUTINE DO_WETDEP( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetWetDepPBL, & diagPBL = NULL(), & mapDataPBL = State_Diag%Map_BudgetWetDepPBL, & + isLevs = State_Diag%Archive_BudgetWetDepLevs, & + diagLevs = NULL(), & + mapDataLevs = State_Diag%Map_BudgetWetDepLevs, & colMass = State_Diag%BudgetColumnMass, & before_op = .TRUE., & isWetDep = .TRUE., & @@ -260,7 +260,9 @@ SUBROUTINE DO_WETDEP( Input_Opt, State_Chm, State_Diag, & ENDIF ! Debug print - IF ( prtDebug ) CALL DEBUG_MSG( '### DO_WETDEP: before LS wetdep' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### DO_WETDEP: before LS wetdep' ) + ENDIF !----------------------------------------- ! Do wet deposition @@ -282,7 +284,9 @@ SUBROUTINE DO_WETDEP( Input_Opt, State_Chm, State_Diag, & ENDIF ! Debug print - IF ( prtDebug ) CALL DEBUG_MSG( '### DO_WETDEP: after LS wetdep' ) + IF ( Input_Opt%Verbose ) THEN + CALL DEBUG_MSG( '### DO_WETDEP: after LS wetdep' ) + ENDIF !------------------------------------------------------------------------ ! Wet deposition budget diagnostics - Part 2 of 2 @@ -298,6 +302,7 @@ SUBROUTINE DO_WETDEP( Input_Opt, State_Chm, State_Diag, & CALL Compute_Budget_Diagnostics( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & + State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & isFull = State_Diag%Archive_BudgetWetDepFull, & @@ -309,6 +314,9 @@ SUBROUTINE DO_WETDEP( Input_Opt, State_Chm, State_Diag, & isPBL = State_Diag%Archive_BudgetWetDepPBL, & diagPBL = State_Diag%BudgetWetDepPBL, & mapDataPBL = State_Diag%Map_BudgetWetDepPBL, & + isLevs = State_Diag%Archive_BudgetWetDepLevs, & + diagLevs = State_Diag%BudgetWetDepLevs, & + mapDataLevs = State_Diag%Map_BudgetWetDepLevs, & colMass = State_Diag%BudgetColumnMass, & timeStep = DT_Dyn, & isWetDep = .TRUE., & @@ -417,9 +425,10 @@ SUBROUTINE MAKE_QQ( State_Chm, State_Grid, State_Met, LS, RC ) ! Initialize RC = GC_SUCCESS - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED ) & + !$OMP PRIVATE( I, J, L ) & + !$OMP COLLAPSE( 3 ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -611,6 +620,7 @@ SUBROUTINE COMPUTE_F( N, F, ISOL, Input_Opt, State_Chm, State_Grid, & #ifdef TOMAS USE Tomas_Mod, ONLY : GetFraction #endif + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -864,12 +874,15 @@ SUBROUTINE COMPUTE_F( N, F, ISOL, Input_Opt, State_Chm, State_Grid, & CALL F_AEROSOL( KC, KcScale, Input_Opt, State_Grid, State_Met, F ) ! Adjust F for size-resolved aerosol (multiply by XFRAC) + ! NOTE: Here species units are in kg/kg dry, so State_Met%AD(I,J,L) + ! is the unit conversion factor (Bob Yantosca, 10 Apr 2024) DO L = 2, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - CALL GETFRACTION( I, J, L, N, .FALSE., & - State_Chm, State_Grid, State_Met, & - XFRAC, SOLFRAC ) + CALL GETFRACTION( I, J, L, & + N, .FALSE., State_Chm, & + State_Grid, State_Met, XFRAC, & + SOLFRAC, State_Met%AD(I,J,L) ) F(I,J,L) = XFRAC * F(I,J,L) ENDDO ENDDO @@ -890,12 +903,15 @@ SUBROUTINE COMPUTE_F( N, F, ISOL, Input_Opt, State_Chm, State_Grid, & ! Adjust F for size-resolved aerosol number ! (multiply by XFRAC * SOLFRAC) + ! NOTE: Here species units are in kg/kg dry, so State_Met%AD(I,J,L) + ! is the unit conversion factor (Bob Yantosca, 10 Apr 2024) DO L = 2, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX - CALL GETFRACTION( I, J, L, N, .FALSE., & - State_Chm, State_Grid, State_Met, & - XFRAC, SOLFRAC ) + CALL GETFRACTION( I, J, L, & + N, .FALSE., State_Chm, & + State_Grid, State_Met, XFRAC, & + SOLFRAC, State_Met%AD(I,J,L) ) F(I,J,L) = XFRAC * SOLFRAC * F(I,J,L) ENDDO ENDDO @@ -1353,6 +1369,9 @@ SUBROUTINE RAINOUT( I, J, L, N, & ENDIF ENDIF + + ! Free pointer + p_pHCloud => NULL() #else !================================================================= ! %%% SPECIAL CASE %%% @@ -1568,14 +1587,18 @@ END FUNCTION GET_RAINFRAC !\\ ! !INTERFACE: ! - SUBROUTINE WASHOUT( I, J, L, & - N, BXHEIGHT, TK, PP, & - DT, F, H2O2s, SO2s, & + SUBROUTINE WASHOUT( I, J, L, N, & + BXHEIGHT, TK, PP, DT, & + F, H2O2s, SO2s, WASHFRAC, & + KIN, Input_Opt, State_Chm, State_Grid, & + State_Met, & #ifdef LUO_WETDEP - pHRain, & + pHRain, & +#endif +#ifdef TOMAS + fromWetDep, & #endif - WASHFRAC, KIN, Input_Opt, State_Chm, & - State_Grid, State_Met, RC ) + RC ) ! ! !USES: ! @@ -1592,7 +1615,6 @@ SUBROUTINE WASHOUT( I, J, L, & #endif #ifdef TOMAS USE ERROR_MOD - USE TOMAS_MOD, ONLY : IBINS, ICOMP USE UnitConv_Mod #endif ! @@ -1601,7 +1623,7 @@ SUBROUTINE WASHOUT( I, J, L, & INTEGER, INTENT(IN) :: I ! Longitude index INTEGER, INTENT(IN) :: J ! Latitude index INTEGER, INTENT(IN) :: L ! Level index - INTEGER, INTENT(IN) :: N ! Species number + INTEGER, INTENT(IN) :: N ! Species number (modelId) REAL(fp), INTENT(IN) :: BXHEIGHT ! Grid box height [m] REAL(fp), INTENT(IN) :: TK ! Temperature [K] REAL(fp), INTENT(IN) :: PP ! Precip rate thru bottom @@ -1613,6 +1635,12 @@ SUBROUTINE WASHOUT( I, J, L, & TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State +#ifdef LUO_WETDEP + REAL(fp), INTENT(IN) :: pHRain +#endif +#ifdef TOMAS + LOGICAL, INTENT(IN) :: fromWetDep ! Called from wetdep (T/F)? +#endif ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1623,9 +1651,6 @@ SUBROUTINE WASHOUT( I, J, L, & ! computed in the sulfate ! chemistry module and ! passed here as arguments. -#ifdef LUO_WETDEP - REAL(fp), INTENT(IN) :: pHRain -#endif ! ! !OUTPUT PARAMETERS: ! @@ -1647,15 +1672,11 @@ SUBROUTINE WASHOUT( I, J, L, & ! !LOCAL VARIABLES: ! ! Scalars + REAL(fp) :: L2G, DZ, SO2LOSS + REAL(f8) :: K0, CR, pKa #ifdef APM REAL(fp) :: RIN #endif -#ifdef TOMAS - LOGICAL :: UNITCHANGE_KGKG ! flag for STT units kg/kg - LOGICAL :: UNITCHANGE_KGM2 ! flag for STT units kg/m2 -#endif - REAL(fp) :: L2G, DZ, SO2LOSS - REAL(f8) :: K0, CR, pKa #ifdef LUO_WETDEP REAL(f8) :: Hplus, HCSO2, HCNH3, Ks1, Ks2, T_Term #endif @@ -1679,65 +1700,41 @@ SUBROUTINE WASHOUT( I, J, L, & ErrMsg = '' ThisLoc = ' -> at Washout (in module GeosCore/wetscav_mod.F90)' -#ifdef TOMAS - !----------------------------------------------------------------- - ! TOMAS MICROPHYSICS ONLY - ! - ! Convert species concentration units to [kg] if not already - ! since TOMAS functions and routines expect [kg]. Units are - ! kg/kg total air if WASHOUT is called from convection and are - ! kg/m2 is called from DO_WASHOUT_ONLY. Since WASHOUT is called - ! within an (I,J,L) loop, only convert units for a single grid - ! box. Otherwise, run will take too long (ewl, 9/22/15) - !----------------------------------------------------------------- - UNITCHANGE_KGKG = .FALSE. - UNITCHANGE_KGM2 = .FALSE. - - IF ( TRIM( State_Chm%Spc_Units ) .eq. 'kg/kg dry' ) THEN - UNITCHANGE_KGKG = .TRUE. - CALL ConvertBox_KgKgDry_to_Kg( I, J, L, State_Met, State_Chm, .FALSE., RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "ConvertBox_KgKgDry_to_Kg"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ELSE IF ( TRIM( State_Chm%Spc_Units ) .eq. 'kg/m2' ) THEN - UNITCHANGE_KGM2 = .TRUE. - CALL ConvertBox_Kgm2_to_Kg( I, J, L, State_Chm, State_Grid, .FALSE., RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "ConvertBox_KgM2_to_Kg"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ELSE - - ! Exit if units are not as expected - ErrMsg = 'Incorrect initial species units:' // & - TRIM( State_Chm%Spc_Units ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - - ENDIF -#endif - ! DZ is the height of the grid box in cm DZ = BXHEIGHT * 1e+2_fp ! Get info about Nth species from the species database SpcInfo => State_Chm%SpcData(N)%Info +#ifdef TOMAS + !------------------------------------------------------------------------ + ! TOMAS MICROPHYSICS ONLY: + ! If called from wetdep, convert kg/m2 -> kg + ! If called fron convection, convert kg/kg dry -> kg + !------------------------------------------------------------------------ + IF ( fromWetDep ) THEN + CALL ConvertBox_Kgm2_to_Kg( I, J, L, State_Chm, State_Grid, .FALSE. ) + ELSE + CALL ConvertBox_KgKgDry_to_Kg( I, J, L, State_Met, State_Chm, .FALSE. ) + ENDIF +#endif + +#ifdef LUO_WETDEP !================================================================= - ! %%% SPECIAL CASE %%% + ! %%% LUO WETDEP ONLY %%% + ! %%% SPECIAL CASE %%% ! HNO3 scavenges like an aerosol although it is considered ! to be a gas-phase species elsewhere (e.g. dry deposition) !================================================================= -#ifdef LUO_WETDEP + + ! Initialize + Hplus = 0.0_f8 + HCSO2 = 0.0_f8 + HCNH3 = 0.0_f8 + Ks1 = 0.0_f8 + Ks2 = 0.0_f8 + T_Term = 0.0_f8 + IF ( SpcInfo%WD_Is_HNO3 ) THEN ! Washout is a kinetic process @@ -1745,8 +1742,10 @@ SUBROUTINE WASHOUT( I, J, L, & ! Get washout fraction WASHFRAC = WASHFRAC_HNO3LUO( DT, F, PP, TK ) + !================================================================= - ! %%% SPECIAL CASE %%% + ! %%% LUO WETDEP ONLY %%% + ! %%% SPECIAL CASE %%% ! SO2 scavenges like an aerosol although it is considered ! to be a gas-phase species elsewhere (e.g. dry deposition) !================================================================= @@ -1775,6 +1774,13 @@ SUBROUTINE WASHOUT( I, J, L, & CALL WASHFRAC_LIQ_GAS( K0, CR, pKa, PP, pHRain, DT, & F, DZ, TK, WASHFRAC, KIN ) #else + !================================================================= + ! %%% DEFAULT WETDEP SCHEME %%% + ! %%% SPECIAL CASE %%% + ! HNO3 scavenges like an aerosol although it is considered + ! to be a gas-phase species elsewhere (e.g. dry deposition) + !================================================================= + IF ( SpcInfo%WD_Is_HNO3 ) THEN ! Washout is a kinetic process @@ -1784,7 +1790,8 @@ SUBROUTINE WASHOUT( I, J, L, & WASHFRAC = WASHFRAC_HNO3( DT, F, PP, TK ) !================================================================= - ! %%% SPECIAL CASE %%% + ! %%% DEFAULT WETDEP SCHEME %%% + ! %%% SPECIAL CASE %%% ! SO2 scavenges like an aerosol although it is considered ! to be a gas-phase species elsewhere (e.g. dry deposition) !================================================================= @@ -1869,7 +1876,8 @@ SUBROUTINE WASHOUT( I, J, L, & ELSE IF ( SpcInfo%MP_SizeResAer .or. SpcInfo%MP_SizeResNum ) THEN #ifdef APM ! Washout is a kinetic process - KIN = .TRUE. + KIN = .TRUE. + RIN = 0.0_fp IF(SpcInfo%Name(1:8)=='APMSPBIN')THEN RIN = RDRY(N-APMIDS%id_SO4BIN1+1) * GFTOT3D(I,J,L,1) @@ -1952,40 +1960,15 @@ SUBROUTINE WASHOUT( I, J, L, & #endif #ifdef TOMAS - !----------------------------------------------------------------- - ! TOMAS MICROPHYSICS ONLY - ! Convert State_Chm%Species%Conc units back to original units - ! if conversion occurred at start of WASHOUT (ewl, 5/12/15) - !----------------------------------------------------------------- - IF ( UNITCHANGE_KGKG ) THEN - CALL ConvertBox_Kg_to_KgKgDry( I, J, L, State_Met, State_Chm, .FALSE., RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "ConvertBox_Kg_to_KgKgDry"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ELSE IF ( UNITCHANGE_KGM2 ) THEN - CALL ConvertBox_Kg_to_Kgm2( I, J, L, State_Chm, State_Grid, .FALSE., RC ) - - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "ConvertBox_Kg_to_KgM2"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - - ENDIF - - ! Check that species units are as expected (ewl, 9/29/15) - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' .AND. & - TRIM( State_Chm%Spc_Units ) /= 'kg/m2' ) THEN - ErrMsg = 'Incorrect final species units:' // & - TRIM( State_Chm%Spc_Units ) - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN + !------------------------------------------------------------------------ + ! TOMAS MICROPHYSICS ONLY: + ! If called from wetdep, convert kg -> kg/m2 + ! If called fron convection, convert kg -> kg/kg dry + !------------------------------------------------------------------------ + IF ( fromWetDep ) THEN + CALL ConvertBox_Kg_to_Kgm2( I, J, L, State_Chm, State_Grid, .FALSE. ) + ELSE + CALL ConvertBox_Kg_to_KgKgDry( I, J, L, State_Met, State_Chm, .FALSE. ) ENDIF #endif @@ -2509,7 +2492,7 @@ SUBROUTINE WASHFRAC_SIZE_AEROSOL( DT, F, PP, TK, N, I, J, L, & USE ERROR_MOD USE State_Chm_Mod, ONLY : ChmState USE State_Met_Mod, ONLY : MetState - USE TOMAS_MOD, ONLY : IBINS, GETDP, STRATSCAV + USE TOMAS_MOD, ONLY : GETDP, STRATSCAV ! ! !INPUT PARAMETERS: ! @@ -2545,10 +2528,8 @@ SUBROUTINE WASHFRAC_SIZE_AEROSOL( DT, F, PP, TK, N, I, J, L, & ! ! !LOCAL VARIABLES: ! - REAL(fp) :: DPAERO ! Average diameter of particle - REAL(fp) :: SCAVR !Below-cloud scavenging coefficient (per cm rain) - REAL(fp), SAVE :: SCAVRSAVE(IBINS) - INTEGER :: BIN + REAL(fp) :: DPAERO ! Average diameter of particle + REAL(fp) :: SCAVR !Below-cloud scavenging coefficient (per cm rain) !================================================================= ! WASHFRAC_SIZE_AEROSOL begins here! @@ -2560,25 +2541,6 @@ SUBROUTINE WASHFRAC_SIZE_AEROSOL( DT, F, PP, TK, N, I, J, L, & ! T >= 268K !------------- - !-------------------------------------------------------------- - !!sfarina - This contruct assumes species are dealt with sequentially, - !! but wetdep parallelizes over species - !! It could be possible to calculated the lookup table and save - !! in an I,J,L,BIN array but for now we will calculate redundantly. - !! For aerosol number, get Dp and calculate scavr - !IF ( N < id_NK1 + IBINS ) THEN - ! DPAERO = GETDP( I, J, L, N, State_Met, State_Chm ) - ! ! External function stratscav returns the scavenging rate (mm^-1) - ! ! Let scavr has a unit of cm^-1 - ! SCAVR = 10.e+0_fp* STRATSCAV( DPAERO ) - ! SCAVRSAVE(N-id_NK1+1) = scavr - !ELSE - ! BIN = MOD( N - id_NK1 + 1, IBINS ) - ! IF( BIN == 0 ) BIN = IBINS - ! SCAVR = SCAVRSAVE(BIN) - !ENDIF - !--------------------------------------------------------------- - DPAERO = GETDP( I, J, L, N, State_Met, State_Chm, RC ) ! External function stratscav returns the scavenging rate (mm^-1) ! Let scavr has a unit of cm^-1 @@ -3026,8 +2988,9 @@ SUBROUTINE WETDEP( Input_Opt, State_Chm, State_Diag, State_Grid, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE TIME_MOD, ONLY : GET_TS_DYN + USE Timers_Mod USE Species_Mod, ONLY : Species - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -3170,6 +3133,7 @@ SUBROUTINE WETDEP( Input_Opt, State_Chm, State_Diag, State_Grid, & LOGICAL :: IS_RAINOUT, IS_WASHOUT, IS_BOTH INTEGER :: I, IDX, J, L INTEGER :: N, NW, Hg_Cat, EC + INTEGER :: previous_units REAL(fp) :: Q, QDOWN, DT, DT_OVER_TAU REAL(fp) :: K, K_MIN, K_RAIN, RAINFRAC REAL(fp) :: F, FTOP, F_PRIME, WASHFRAC @@ -3187,7 +3151,6 @@ SUBROUTINE WETDEP( Input_Opt, State_Chm, State_Diag, State_Grid, & State_Grid%NZ,State_Grid%NX,State_Grid%NY) ! Strings - CHARACTER(LEN=63) :: OrigUnit CHARACTER(LEN=255) :: ErrMsg, ErrorMsg, ThisLoc ! Pointers @@ -3209,10 +3172,24 @@ SUBROUTINE WETDEP( Input_Opt, State_Chm, State_Diag, State_Grid, & ! Initialize pointers SpcInfo => NULL() + ! Halt wetdep timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Wet deposition", RC ) + ENDIF + ! Convert species concentration to mass per unit area (kg/m2) for ! wet deposition since computation is done per column (ewl, 9/8/15) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg/m2', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & +#ifndef TOMAS + mapping = State_Chm%Map_WetDep, & +#endif + new_units = KG_SPECIES_PER_M2, & + previous_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -3221,6 +3198,11 @@ SUBROUTINE WETDEP( Input_Opt, State_Chm, State_Diag, State_Grid, & RETURN ENDIF + ! Start wetdep timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Wet deposition", RC ) + ENDIF + ! Dynamic timestep [s] DT = GET_TS_DYN() @@ -3268,7 +3250,8 @@ SUBROUTINE WETDEP( Input_Opt, State_Chm, State_Diag, State_Grid, & !$OMP PRIVATE( QDOWN, IS_RAINOUT, IS_WASHOUT, N ) & !$OMP PRIVATE( DEP_HG, SpcInfo, Hg_Cat, EC ) & !$OMP PRIVATE( COND_WATER_CONTENT ) & - !$OMP SCHEDULE( DYNAMIC ) + !$OMP COLLAPSE( 2 ) & + !$OMP SCHEDULE( DYNAMIC, 24 ) DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX @@ -3787,9 +3770,22 @@ SUBROUTINE WETDEP( Input_Opt, State_Chm, State_Diag, State_Grid, & RETURN ENDIF + ! Halt wetdep timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Wet deposition", RC ) + ENDIF + ! Convert species concentration back to original unit (ewl, 9/8/15) - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & +#ifndef TOMAS + mapping = State_Chm%Map_WetDep, & +#endif + new_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -3798,6 +3794,11 @@ SUBROUTINE WETDEP( Input_Opt, State_Chm, State_Diag, State_Grid, & RETURN ENDIF + ! Start wetdep timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Wet deposition", RC ) + ENDIF + END SUBROUTINE WETDEP !EOC !------------------------------------------------------------------------------ @@ -3980,7 +3981,6 @@ SUBROUTINE DO_RAINOUT_ONLY( LS, I, J, L, IDX, & USE State_Grid_Mod, ONLY : GrdState ! Grid State object USE State_Met_Mod, ONLY : MetState ! Met State object #ifdef TOMAS - USE TOMAS_MOD, ONLY : IBINS, ICOMP, AQOXID USE TOMAS_MOD, ONLY : GETFRACTION #endif ! @@ -4042,7 +4042,7 @@ SUBROUTINE DO_RAINOUT_ONLY( LS, I, J, L, IDX, & #ifdef TOMAS ! Scavenging fraction of 30-bin aerosols (win, 7/16/09) - REAL(fp) :: TOM_SC_FRACTION(IBINS) + REAL(fp) :: TOM_SC_FRACTION(State_Chm%nTomasBins) REAL(fp) :: SOLFRAC, XFRAC #endif @@ -4103,20 +4103,30 @@ SUBROUTINE DO_RAINOUT_ONLY( LS, I, J, L, IDX, & ENDIF #ifdef TOMAS - IF ( id_NK1 > 0 ) THEN - IF ( N >= id_NK1 .and. N < id_NK1 + IBINS ) THEN + ! NOTE: Here the units are kg/m2, so State_Grid%Area_M2(I,J) is + ! the proper unit conversion factor. (Bob Yantosca, 10 Apr 2024) + IF ( id_NK01 > 0 ) THEN - CALL GETFRACTION( I, J, L, N, LS, & - State_Chm, State_Grid, State_Met, & - XFRAC, SOLFRAC ) + IF ( N >= id_NK01 .and. N < id_NK01 + State_Chm%nTomasBins ) THEN + + CALL GETFRACTION( I, J, & + L, N, & + LS, State_Chm, & + State_Grid, State_Met, & + XFRAC, SOLFRAC, & + State_Grid%Area_M2(I,J) ) RAINFRAC = RAINFRAC * XFRAC * SOLFRAC - ELSE IF ( N >= id_SF1 .and. & - N < id_DUST1 + IBINS ) THEN - CALL GETFRACTION( I, J, L, N, LS, & - State_Chm, State_Grid, State_Met, & - XFRAC, SOLFRAC ) + ELSE IF ( N >= id_SF01 .and. & + N < id_DUST01 + State_Chm%nTomasBins ) THEN + + CALL GETFRACTION( I, J, & + L, N, & + LS, State_Chm, & + State_Grid, State_Met, & + XFRAC, SOLFRAC, & + State_Grid%Area_M2(I,J) ) RAINFRAC = RAINFRAC * XFRAC ENDIF @@ -4271,8 +4281,9 @@ SUBROUTINE DO_WASHOUT_ONLY( LS, I, J, L, & USE State_Grid_Mod, ONLY : GrdState ! Grid State object USE State_Met_Mod, ONLY : MetState ! Met State object #ifdef TOMAS - USE TOMAS_MOD, ONLY : IBINS, ICOMP, AQOXID + USE TOMAS_MOD, ONLY : AQOXID #endif + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -4451,27 +4462,41 @@ SUBROUTINE DO_WASHOUT_ONLY( LS, I, J, L, & WETLOSS = 0e+0_fp GAINED = 0e+0_fp LOST = 0e+0_fp +#ifdef TOMAS + REEVAPSO2 = 0.0_fp + KMIN = 0 +#endif ! Call WASHOUT to compute the fraction of ! species lost to washout in grid box (I,J,L) - CALL WASHOUT( I, J, L, N, & - State_Met%BXHEIGHT(I,J,L), & - TK, & - QDOWN, & - DT, & - TF, & - State_Chm%H2O2AfterChem(I,J,L), & - State_Chm%SO2AfterChem(I,J,L), & + CALL WASHOUT( & + ! --- Input --- + I = I, & + J = J, & + L = L, & + N = N, & + BXHEIGHT = State_Met%BXHEIGHT(I,J,L), & + TK = TK, & + PP = QDOWN, & + DT = DT, & + F = TF, & + Input_Opt = Input_Opt, & + State_Grid = State_Grid, & + State_Met = State_Met, & #ifdef LUO_WETDEP - State_Chm%pHRain(I,J,L), & + pHRain = State_Chm%pHRain(I,J,L), & #endif - WASHFRAC, & - KIN, & - Input_Opt, & - State_Chm, & - State_Grid, & - State_Met, & - RC ) +#ifdef TOMAS + fromWetDep = .TRUE., & +#endif + ! --- Input/Output --- + State_Chm = State_Chm, & + H2O2s = State_Chm%H2O2AfterChem(I,J,L), & + SO2s = State_Chm%SO2AfterChem(I,J,L), & + ! --- Output --- + WASHFRAC = WASHFRAC, & + KIN = KIN, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -4552,8 +4577,8 @@ SUBROUTINE DO_WASHOUT_ONLY( LS, I, J, L, & + GAINED * 96e+0_fp / 64e+0_fp #ifdef APM - State_Met%PSO4_SO2APM2(I,J,L) = State_Met%PSO4_SO2APM2(I,J,L) & - + GAINED * 96e+0_fp / 64e+0_fp + State_Chm%PSO4_SO2APM2(I,J,L) = & + State_Chm%PSO4_SO2APM2(I,J,L) + GAINED * 96e+0_fp / 64e+0_fp #endif Spc(N)%Conc(I,J,L) = Spc(N)%Conc(I,J,L) * ( 1e+0_fp - WASHFRAC ) @@ -4594,20 +4619,25 @@ SUBROUTINE DO_WASHOUT_ONLY( LS, I, J, L, & ! therefore converted to [kg] locally within AQOXID. ! GAINED is now [kg/m2] ans so is multiplied ! by area prior to passing REEVAPSO2 to AQOXID (ewl, 9/30/15) - IF ( TRIM( State_Chm%Spc_Units ) .eq. 'kg/m2' ) THEN - REEVAPSO2 = GAINED * 96e+0_fp / 64e+0_fp & - * State_Grid%Area_M2(I,J) - ELSE - IF ( errPrint ) THEN - ErrorMsg= 'Unexpected species units: ' // & - TRIM( State_Chm%Spc_Units ) - CALL GC_Error( ErrorMsg, RC, ThisLoc ) - ENDIF - RETURN + REEVAPSO2 = GAINED * 96e+0_fp / 64e+0_fp + IF ( Spc(id_SO2)%Units == KG_SPECIES_PER_M2 ) THEN + REEVAPSO2 = REEVAPSO2 * State_Grid%Area_M2(I,J) ENDIF - CALL AQOXID( REEVAPSO2, KMIN, I, J, L, & - Input_Opt, State_Chm, State_Grid, & - State_Met, RC ) + + ! NOTE: Species units are kg here + CALL AqOxid( & + I = I, & + J = J, & + L = L, & + fromWetDep = .TRUE., & + MOXID = REEVAPSO2, & + KMIN = KMIN, & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + State_Diag = State_Diag, & + RC = RC ) ENDIF !end -added for TOMAS (win, 7/16/09) #endif @@ -4810,8 +4840,9 @@ SUBROUTINE DO_COMPLETE_REEVAP( LS, I, J, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState #ifdef TOMAS - USE TOMAS_MOD, ONLY : IBINS, ICOMP, AQOXID + USE TOMAS_MOD, ONLY : AQOXID #endif + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -4891,8 +4922,8 @@ SUBROUTINE DO_COMPLETE_REEVAP( LS, I, J, & ( WETLOSS * 96e+0_fp / 64e+0_fp ) #ifdef APM - State_Met%PSO4_SO2APM2(I,J,L) = State_Met%PSO4_SO2APM2(I,J,L) - & - ( WETLOSS * 96e+0_fp / 64e+0_fp ) + State_Chm%PSO4_SO2APM2(I,J,L) = & + State_Chm%PSO4_SO2APM2(I,J,L) - ( WETLOSS * 96e+0_fp / 64e+0_fp ) #endif #ifdef TOMAS @@ -4939,22 +4970,26 @@ SUBROUTINE DO_COMPLETE_REEVAP( LS, I, J, & ! ***NOTE*** Species concentration units are currently in ! [kg/m2] which is incompatible with TOMAS. Units are ! therefore converted to [kg] locally within AQOXID. - ! WETLOSS is now [kg/m2] and so is multiplied + ! GAINED is now [kg/m2] ans so is multiplied ! by area prior to passing REEVAPSO2 to AQOXID (ewl, 9/30/15) - IF ( TRIM( State_Chm%Spc_Units ) .eq. 'kg/m2' ) THEN - REEVAPSO2 = - ( WETLOSS * 96e+0_fp / 64e+0_fp ) & - * State_Grid%Area_M2(I,J) - ELSE - IF ( errPrint ) THEN - ErrorMsg = 'Unexpected species units: ' & - // TRIM(State_Chm%Spc_Units) - CALL GC_Error( ErrorMsg, RC, ThisLoc ) - ENDIF - Spc => NULL() - RETURN + REEVAPSO2 = - ( WETLOSS * 96e+0_fp / 64e+0_fp ) + IF ( Spc(id_SO2)%Units == KG_SPECIES_PER_M2 ) THEN + REEVAPSO2 = REEVAPSO2 * State_Grid%Area_M2(I,J) ENDIF - CALL AQOXID( REEVAPSO2, KMIN, I, J, L, & - Input_Opt, State_Chm, State_Grid, State_Met, RC ) + + CALL AqOxid( & + I = I, & + J = J, & + L = L, & + MOXID = REEVAPSO2, & + KMIN = KMIN, & + fromWetDep = .TRUE., & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + State_Diag = State_Diag, & + RC = RC ) ENDIF !end- added for TOMAS (win, 7/16/09) #endif @@ -5027,7 +5062,7 @@ SUBROUTINE DO_COMPLETE_REEVAP( LS, I, J, & State_Grid = State_Grid, & DSpc = DSpc(NW,:,I,J), & Spc = Spc(N)%Conc(I,J,:), & - RC = RC ) + RC = RC ) ENDIF ! Trap potential errors @@ -5177,24 +5212,34 @@ SUBROUTINE DO_WASHOUT_AT_SFC( LS, I, J, & ! Call WASHOUT to compute the fraction of species ! in grid box (I,J,L) that is lost to washout. - CALL WASHOUT( I, J, L, N, & - State_Met%BXHEIGHT(I,J,L), & - TK, & - QDOWN, & - DT, & - F, & - State_Chm%H2O2AfterChem(I,J,L), & - State_Chm%SO2AfterChem(I,J,L), & + CALL WASHOUT( & + ! --- Input --- + I = I, & + J = J, & + L = L, & + N = N, & + BXHEIGHT = State_Met%BXHEIGHT(I,J,L), & + TK = TK, & + PP = QDOWN, & + DT = DT, & + F = F, & + Input_Opt = Input_Opt, & + State_Grid = State_Grid, & + State_Met = State_Met, & #ifdef LUO_WETDEP - State_Chm%pHRain(I,J,L), & + pHRain = State_Chm%pHRain(I,J,L), & +#endif +#ifdef TOMAS + fromWetDep = .TRUE., & #endif - WASHFRAC, & - KIN, & - Input_Opt, & - State_Chm, & - State_Grid, & - State_Met, & - RC ) + ! --- Input/Output --- + State_Chm = State_Chm, & + H2O2s = State_Chm%H2O2AfterChem(I,J,L), & + SO2s = State_Chm%SO2AfterChem(I,J,L), & + ! --- Output --- + WASHFRAC = WASHFRAC, & + KIN = KIN, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -5677,18 +5722,19 @@ SUBROUTINE INIT_WETSCAV( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) SpcInfo => NULL() ! Define species ID flags - id_NK1 = Ind_('NK1' ) - id_NH3 = Ind_('NH3' ) - id_SF1 = Ind_('SF1' ) - id_DUST1 = Ind_('DUST1') - id_SO2 = Ind_('SO2' ) - id_SO4 = Ind_('SO4' ) - id_H2O2 = Ind_('H2O2' ) + id_NK01 = Ind_('NK01' ) + id_NH3 = Ind_('NH3' ) + id_SF01 = Ind_('SF01' ) + id_DUST01 = Ind_('DUST01') + id_SO2 = Ind_('SO2' ) + id_SO4 = Ind_('SO4' ) + id_H2O2 = Ind_('H2O2' ) !================================================================= ! Print information about wet-depositing species !================================================================= - IF ( Input_Opt%amIRoot .and. State_Chm%nWetDep > 0 ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose & + .and. State_Chm%nWetDep > 0 ) THEN ! Title LINE = 'INIT_WETSCAV: List of soluble species: ' @@ -5825,10 +5871,11 @@ SUBROUTINE SETUP_WETSCAV( Input_Opt, State_Chm, State_Grid, State_Met, RC ) ! Only do computation if wetdep or convection is turned on IF ( Input_Opt%LWETD .or. Input_Opt%LCONV ) THEN - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, TK, PL ) & - !$OMP SCHEDULE( DYNAMIC ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( I, J, L, TK, PL )& + !$OMP COLLAPSE( 3 )& + !$OMP SCHEDULE( DYNAMIC, 24 ) DO L = 1, State_Grid%NZ DO J = 1, State_Grid%NY DO I = 1, State_Grid%NX diff --git a/GeosUtil/CMakeLists.txt b/GeosUtil/CMakeLists.txt index d271130fe..e2ac006c1 100755 --- a/GeosUtil/CMakeLists.txt +++ b/GeosUtil/CMakeLists.txt @@ -6,7 +6,6 @@ target_link_libraries(JulDay ) add_library(GeosUtil STATIC EXCLUDE_FROM_ALL - bpch2_mod.F90 error_mod.F90 file_mod.F90 gc_grid_mod.F90 diff --git a/GeosUtil/bpch2_mod.F90 b/GeosUtil/bpch2_mod.F90 deleted file mode 100644 index 4e2574837..000000000 --- a/GeosUtil/bpch2_mod.F90 +++ /dev/null @@ -1,452 +0,0 @@ -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !MODULE: bpch2_mod.F90 -! -! !DESCRIPTION: Module BPCH2\_MOD contains the routines used to read data -! from and write data to binary punch (BPCH) file format (v2.0). -!\\ -!\\ -! !INTERFACE: -! -MODULE BPCH2_MOD -! -! !USES: -! - USE inquireMod, ONLY : findFreeLUN - USE inquireMod, ONLY : I_Am_UnOPENed - - USE PRECISION_MOD ! For GEOS-Chem Precision (fp) - - IMPLICIT NONE - PRIVATE -! -! !PUBLIC MEMBER FUNCTIONS: -! - PUBLIC :: OPEN_BPCH2_FOR_READ - PUBLIC :: OPEN_BPCH2_FOR_WRITE - PUBLIC :: BPCH2 - PUBLIC :: BPCH2_HDR - PUBLIC :: GET_MODELNAME - PUBLIC :: GET_HALFPOLAR -! -! !REMARKS: -! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -! %%% NOTE: THIS MODULE WILL BE A STUB UNLESS GEOS-Chem IS COMPILED %%% -! %%% WITH THE BPCH_DIAG=y OPTION. (bmy, 10/4/19) %%% -! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -! -! !REVISION HISTORY: -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -CONTAINS -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Open_Bpch2_For_Read -! -! !DESCRIPTION: Subroutine OPEN\_BPCH2\_FOR\_READ opens a binary punch file -! (version 2.0 format) for reading only. Also reads FTI and TITLE strings. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE OPEN_BPCH2_FOR_READ( IUNIT, FILENAME, TITLE ) -! -! !USES: -! - USE ERROR_MOD, ONLY : ERROR_STOP - USE FILE_MOD, ONLY : IOERROR -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: IUNIT ! LUN for file I/O - CHARACTER(LEN=*), INTENT(IN) :: FILENAME ! File to open -! -! !OUTPUT PARAMETERS: -! - CHARACTER(LEN=80), INTENT(OUT), OPTIONAL :: TITLE ! File title string -! -! !REMARKS: -! ########################################################################### -! ##### BINARY PUNCH INPUT IS BEING PHASED OUT. MOST INPUT IS NOW READ ##### -! ##### FROM COARDS-COMPLIANT netCDF FILES VIA HEMCO (bmy, 4/1/15) ##### -! ########################################################################### -! -! !REVISION HISTORY: -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: IOS - CHARACTER(LEN=40) :: FTI - CHARACTER(LEN=80) :: TMP_TITLE - - !================================================================= - ! OPEN_BPCH2_FOR_READ begins here! - !================================================================= - - ! Open file for input -- readonly - OPEN( IUNIT, FILE=TRIM( FILENAME ), STATUS='OLD', & - IOSTAT=IOS, FORM='UNFORMATTED', ACCESS='SEQUENTIAL' ) - - ! Error check - IF ( IOS /= 0 ) THEN - WRITE(6,*)'Error opening filename=',trim(filename) - CALL FLUSH(6) - CALL IOERROR( IOS, IUNIT, 'open_bpch2_for_read:1') - ENDIF - - ! Read file type identifier - READ( IUNIT, IOSTAT=IOS ) FTI - - ! Error check - IF ( IOS /= 0 ) THEN - WRITE(6,*)'Error reading FTI for filename=',trim(filename) - CALL FLUSH(6) - CALL IOERROR( IOS, IUNIT, 'open_bpch2_for_read:2' ) - ENDIF - - ! Stop if this is not a binary punch file - IF ( TRIM( FTI ) /= 'CTM bin 02' ) THEN - WRITE(6,*)'Error filename=',trim(filename) - CALL FLUSH(6) - CALL ERROR_STOP( 'Invalid file format!', & - 'OPEN_BPCH2_FOR_READ (bpch2_mod.F90)') - ENDIF - - ! Read top title - READ( IUNIT, IOSTAT=IOS ) TMP_TITLE - - ! Error check - IF ( IOS /= 0 ) THEN - WRITE(6,*)'Error reading filename=',trim(filename) - CALL FLUSH(6) - CALL IOERROR( IOS, IUNIT, 'open_bpch2_for_read:3' ) - ENDIF - - ! Copy value of TMP_TITLE to TITLE for return - IF ( PRESENT( TITLE ) ) TITLE = TMP_TITLE - - END SUBROUTINE OPEN_BPCH2_FOR_READ -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Open_Bpch2_For_Write -! -! !DESCRIPTION: Subroutine OPEN\_BPCH2\_FOR\_WRITE opens a binary punch file -! (version 2.0) for writing. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE OPEN_BPCH2_FOR_WRITE( IUNIT, FILENAME, TITLE ) -! -! !USES: -! - USE FILE_MOD, ONLY : IOERROR -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: IUNIT ! LUN for file I/O - CHARACTER(LEN=*), INTENT(IN) :: FILENAME ! Name of file -! -! !OUTPUT PARAMETERS: -! - CHARACTER(LEN=80), INTENT(OUT), OPTIONAL :: TITLE ! File title string -! -! !REMARKS: -! ########################################################################### -! ##### BINARY PUNCH INPUT IS BEING PHASED OUT. MOST INPUT IS NOW READ ##### -! ##### FROM COARDS-COMPLIANT netCDF FILES VIA HEMCO (bmy, 4/1/15) ##### -! ########################################################################### -! -! !REVISION HISTORY: -! 30 Jul 2002 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: IOS - CHARACTER(LEN=80) :: TMP_TITLE - - !================================================================= - ! OPEN_BPCH2_FOR_WRITE begins here! - !================================================================= - - ! If TITLE is not passed, create a default title string - IF ( PRESENT( TITLE ) ) THEN - TMP_TITLE = TITLE - ELSE - TMP_TITLE = 'GEOS-CHEM binary punch file v. 2.0' - ENDIF - - ! Open file for output - OPEN( IUNIT, FILE=TRIM( FILENAME ), STATUS='UNKNOWN', & - IOSTAT=IOS, FORM='UNFORMATTED', ACCESS='SEQUENTIAL' ) - - ! Error check - IF ( IOS /= 0 ) THEN - WRITE(6,*) ' ' - WRITE(6,*) "CANNOT WRITE : " // FILENAME - CALL IOERROR( IOS, IUNIT,'open_bpch2_for_write:1') - ENDIF - - ! Write the top-of-file title to disk - CALL BPCH2_HDR( IUNIT, TMP_TITLE ) - - END SUBROUTINE OPEN_BPCH2_FOR_WRITE -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Bpch2_hdr -! -! !DESCRIPTION: Subroutine BPCH2\_HDR writes a header at the top of the binary -! punch file, version 2.0. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE BPCH2_HDR ( IUNIT, TITLE ) -! -! !USES: -! - USE FILE_MOD, ONLY : IOERROR -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: IUNIT ! LUN for file I/O - CHARACTER(LEN=80), INTENT(IN) :: TITLE ! Top-of-file title string -! -! !REMARKS: -! ########################################################################### -! ##### BINARY PUNCH INPUT IS BEING PHASED OUT. MOST INPUT IS NOW READ ##### -! ##### FROM COARDS-COMPLIANT netCDF FILES VIA HEMCO (bmy, 4/1/15) ##### -! ########################################################################### -! -! !REVISION HISTORY: -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: IOS - CHARACTER(LEN=40) :: FTI = 'CTM bin 02' - - !================================================================= - ! BPCH2_HDR begins here! - ! - ! Write header information to binary punch file - ! Also be sure to trap I/O Error conditions - !================================================================= - - WRITE ( IUNIT, IOSTAT=IOS ) FTI - IF ( IOS /= 0 ) CALL IOERROR( IOS, IUNIT, 'bpch2_hdr:1' ) - - WRITE ( IUNIT, IOSTAT=IOS ) TITLE - IF ( IOS /= 0 ) CALL IOERROR( IOS, IUNIT, 'bpch2_hdr:2' ) - - END SUBROUTINE BPCH2_HDR -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Bpch2 -! -! !DESCRIPTION: Subroutine BPCH2 writes binary punch file (version 2.0) to -! disk. Information about the model grid is also stored with each data block. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE BPCH2( IUNIT, MODELNAME, LONRES, LATRES, & - HALFPOLAR, CENTER180, CATEGORY, NTRACER, & - UNIT, TAU0, TAU1, RESERVED, & - NI, NJ, NL, IFIRST, & - JFIRST, LFIRST, ARRAY ) -! -! !USES: -! - USE FILE_MOD, ONLY : IOERROR -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: IUNIT ! LUN for file I/O - CHARACTER(LEN=20), INTENT(IN) :: MODELNAME ! Met field type - REAL*4, INTENT(IN) :: LONRES ! Lon resolution [deg] - REAL*4, INTENT(IN) :: LATRES ! Lat resolution [deg] - INTEGER, INTENT(IN) :: HALFPOLAR ! 1/2-size polar boxes? - INTEGER, INTENT(IN) :: CENTER180 ! 1st box center -180? - CHARACTER(LEN=40), INTENT(IN) :: CATEGORY ! Diag. category name - INTEGER, INTENT(IN) :: NTRACER ! Tracer index # - CHARACTER(LEN=40), INTENT(IN) :: UNIT ! Unit string - REAL(f8), INTENT(IN) :: TAU0 ! TAU values @ start & - REAL(f8), INTENT(IN) :: TAU1 ! end of diag interval - CHARACTER(LEN=40), INTENT(IN) :: RESERVED ! Extra string - INTEGER, INTENT(IN) :: NI, NJ, NL ! Dimensions of ARRAY - INTEGER, INTENT(IN) :: IFIRST ! (I,J,L) indices of - INTEGER, INTENT(IN) :: JFIRST ! the first grid box - INTEGER, INTENT(IN) :: LFIRST ! in Fortran notation - REAL*4, INTENT(IN) :: ARRAY(NI,NJ,NL) ! Data array -! -! !REMARKS: -! ############################################################################ -! ##### BINARY PUNCH OUTPUT IS BEING PHASED OUT. (bmy, 4/1/15) ##### -! ############################################################################ -! -! !REVISION HISTORY: -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: I, J, L, NSKIP, IOS -! -! !DEFINED PARAMETERS: -! - INTEGER, PARAMETER :: BYTES_PER_NUMBER = 4 - INTEGER, PARAMETER :: END_OF_RECORD = 8 - - !================================================================= - ! BPCH2 begins here!! - ! - ! Compute the number of bytes to skip between the end of one - ! data block and the beginning of the next data header line - !================================================================= - NSKIP = ( BYTES_PER_NUMBER * ( NI * NJ * NL ) ) + END_OF_RECORD - - !================================================================= - ! Write data block to binary punch file - ! Check for I/O errors - !================================================================= - WRITE( IUNIT, IOSTAT=IOS ) & - MODELNAME, LONRES, LATRES, HALFPOLAR, CENTER180 - - IF ( IOS /= 0 ) CALL IOERROR( IOS, IUNIT, 'bpch2:1' ) - - WRITE( IUNIT, IOSTAT = IOS ) & - CATEGORY, NTRACER, UNIT, TAU0, TAU1, RESERVED, & - NI, NJ, NL, IFIRST, JFIRST, LFIRST, NSKIP - - IF ( IOS /= 0 ) CALL IOERROR( IOS, IUNIT, 'bpch2:2' ) - - WRITE( IUNIT, IOSTAT=IOS ) & - ( ( ( ARRAY(I,J,L), I=1,NI ), J=1,NJ ), L=1,NL ) - - IF ( IOS /= 0 ) CALL IOERROR( IOS, IUNIT, 'bpch2:3' ) - - END SUBROUTINE BPCH2 -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_Modelname -! -! !DESCRIPTION: Function GET\_MODELNAME returns the proper value of MODELNAME -! for current met field type. MODELNAME is written to the binary punch file -! and is also used by the GAMAP package. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_MODELNAME( Input_Opt, State_Grid ) & - RESULT( MODELNAME ) -! -! !USES: -! - USE Input_Opt_Mod, ONLY : OptInput - USE State_Grid_Mod, ONLY : GrdState -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State -! -! !RETURN VALUE: -! - CHARACTER(LEN=20) :: MODELNAME ! Model name for the current met field -! -! !REMARKS: -! We now read many data files via HEMCO, so we don't have much of a need -! of constructing file names w/in the code. This routine is now pretty -! much obsolete and is slated for eventual removal. -! -! !REVISION HISTORY: -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - -#if defined( EXTERNAL_FORCING ) || defined ( EXTERNAL_GRID ) - MODELNAME = 'EXTERNAL' -#else - IF ( State_Grid%NZ == 47 ) THEN - MODELNAME = TRIM(Input_Opt%MetField) // '_47L' - ELSE - MODELNAME = TRIM(Input_Opt%MetField) - ENDIF -#endif - - END FUNCTION GET_MODELNAME -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_Halfpolar -! -! !DESCRIPTION: Function GET\_HALFPOLAR returns 1 if the current grid has -! half-sized polar boxes (e.g. GEOS) or zero otherwise (e.g. GCAP). -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_HALFPOLAR() RESULT( HALFPOLAR ) -! -! !RETURN VALUE: -! - INTEGER :: HALFPOLAR ! =1 if we have half-sized polar boxes, =0 if not -! -! !REVISION HISTORY: -! 28 Jun 2005 - S. Wu & R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - - ! All GEOS grids have half-sized polar boxes - HALFPOLAR = 1 - - END FUNCTION GET_HALFPOLAR -!EOC -END MODULE BPCH2_MOD -#endif diff --git a/GeosUtil/error_mod.F90 b/GeosUtil/error_mod.F90 index dbc40fa3c..c3ddd6b25 100644 --- a/GeosUtil/error_mod.F90 +++ b/GeosUtil/error_mod.F90 @@ -17,6 +17,9 @@ MODULE ERROR_MOD USE ErrCode_Mod USE Input_Opt_Mod, ONLY : OptInput USE PRECISION_MOD ! For GEOS-Chem Precision (fp) +#if defined( ESMF_ ) + USE pFlogger +#endif IMPLICIT NONE PRIVATE @@ -26,6 +29,7 @@ MODULE ERROR_MOD PUBLIC :: ALLOC_ERR PUBLIC :: CHECK_VALUE PUBLIC :: DEBUG_MSG + PUBLIC :: LOG_MSG PUBLIC :: ERROR_STOP PUBLIC :: GEOS_CHEM_STOP PUBLIC :: IS_SAFE_DIV @@ -71,6 +75,7 @@ MODULE ERROR_MOD PRIVATE :: NAN_FLOAT PRIVATE :: IS_SAFE_DIV_R4 PRIVATE :: IS_SAFE_DIV_R8 + ! ! !REVISION HISTORY: ! 08 Mar 2001 - R. Yantosca - Initial version @@ -83,6 +88,10 @@ MODULE ERROR_MOD LOGICAL :: SHADOW_am_I_Root ! Shadow for am_I_Root TYPE(OptInput), POINTER :: SHADOW_Input_Opt ! Shadow for Input_Opt +#if defined( ESMF_ ) + class(Logger), pointer :: lgr + Character(Len=255) :: compname +#endif CONTAINS !EOC @@ -499,6 +508,9 @@ SUBROUTINE GEOS_CHEM_STOP() CALL Timer_PrintAll( SHADOW_Input_Opt, RC ) ENDIF + ! Use MAPL macro + _FAIL('Failure in GEOS-Chem!') + #elif defined( MODEL_CESM ) CALL ENDRUN('GEOS-Chem failure!') @@ -645,6 +657,71 @@ END SUBROUTINE DEBUG_MSG !------------------------------------------------------------------------------ !BOP ! +! !IROUTINE: Log_Msg +! +! !DESCRIPTION: Subroutine LOG\_MSG prints a message to whatever logging +! mechanism is used by the various host models. This is the safest way +! to ensure that a message is passed to the user. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE LOG_MSG( MESSAGE, LEVEL, SRC ) +! +! !USES: +! + USE CharPak_Mod, ONLY : To_Uppercase +! +! !INPUT PARAMETERS: +! + CHARACTER(LEN=*), INTENT(IN) :: MESSAGE ! Message to print + CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: LEVEL ! Level (warning, debug, or info) + CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: SRC ! Calling location +! +! !REVISION HISTORY: +! 07 Jan 2002 - R. Yantosca - Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + CHARACTER(LEN=10) :: LEVEL_SAFE + CHARACTER(LEN=255) :: Iam + + If (PRESENT(LEVEL)) Then + LEVEL_SAFE = To_Uppercase(LEVEL) + Else + LEVEL_SAFE = 'DEBUG' + End If + If (PRESENT(SRC)) Then + Iam = Trim(src) + Else + Iam = 'unknown' + End If + +#if defined( ESMF_ ) + ! Preceded by the component name already + If (Level_Safe == 'INFO') Then + call lgr%info( '%a~: %a', Trim(Iam), Trim(Message)) + Else if (Level_Safe == 'DEBUG') Then + call lgr%debug( '%a~: %a', Trim(Iam), Trim(Message)) + Else + call lgr%warning('%a~: %a', Trim(Iam), Trim(Message)) + End If +#else + ! Print message + WRITE( 6, '(a15,x,a5,2a)' ) Trim(Iam), Trim(LEVEL_SAFE), ': ',Trim(MESSAGE) +#endif + + END SUBROUTINE LOG_MSG +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! ! !IROUTINE: Safe_Div ! ! !DESCRIPTION: Function SAFE\_DIV performs "safe division", that is to @@ -1076,6 +1153,11 @@ SUBROUTINE INIT_ERROR( Input_Opt, RC ) ! Store a shadow copy of Input_Opt (point to it instead of copying) SHADOW_Input_Opt => Input_Opt +#if defined( ESMF_ ) + lgr => Input_Opt%lgr + compname = Input_Opt%CompName +#endif + END SUBROUTINE INIT_ERROR !EOC !------------------------------------------------------------------------------ @@ -1100,6 +1182,9 @@ SUBROUTINE CLEANUP_ERROR() !BOC ! Free the pointer to Input_Opt NULLIFY( SHADOW_Input_Opt ) +#if defined( ESMF_ ) + NULLIFY( lgr ) +#endif END SUBROUTINE CLEANUP_ERROR !EOC diff --git a/GeosUtil/file_mod.F90 b/GeosUtil/file_mod.F90 index 107780a55..783e5680c 100644 --- a/GeosUtil/file_mod.F90 +++ b/GeosUtil/file_mod.F90 @@ -22,15 +22,13 @@ MODULE FILE_MOD ! !DEFINED PARAMETERS: ! !---------------------------------------------------------------- - ! In the GEOS-5 GCM, the unit numbers cannot be PARAMETERs. + ! In the GEOS ESM, the unit numbers cannot be PARAMETERs. ! Instead, use INQUIREs to find open LUNs at the point of ! request. References to most IU_* variables have now been - ! made local. IU_BPCH is the only LUN that needs to be seen - ! across several variables. + ! made local. !---------------------------------------------------------------- ! Logical file unit numbers for ... - INTEGER, PUBLIC :: IU_BPCH ! "ctm.bpch" INTEGER, PUBLIC :: IU_FILE ! ! !PUBLIC MEMBER FUNCTIONS: @@ -237,7 +235,6 @@ SUBROUTINE CLOSE_FILES !EOP !------------------------------------------------------------------------------ !BOC - CLOSE( IU_BPCH ) CLOSE( IU_FILE ) END SUBROUTINE CLOSE_FILES diff --git a/GeosUtil/gc_grid_mod.F90 b/GeosUtil/gc_grid_mod.F90 index 9074215c3..07b806d93 100644 --- a/GeosUtil/gc_grid_mod.F90 +++ b/GeosUtil/gc_grid_mod.F90 @@ -980,7 +980,7 @@ FUNCTION GET_IJ( LON, LAT, State_Grid ) RESULT ( IIJJ ) IF ( State_Grid%NestedGrid ) THEN TLON = TLON - I0 TLAT = TLAT - J0 - IF ( TLAT < 1 .or. TLAT > State_Grid%NX ) THEN + IF ( TLAT < 1 .or. TLAT > State_Grid%NY ) THEN CALL ERROR_STOP('Beyond the nested window', 'GET_IJ') ENDIF ELSE @@ -988,7 +988,7 @@ FUNCTION GET_IJ( LON, LAT, State_Grid ) RESULT ( IIJJ ) ! Check for impossible values IF ( TLON > State_Grid%NX .or. TLAT > State_Grid%NY .or. & - TLON < 1 .or. TLAT < 1 ) THEN + TLON < 1 .or. TLAT < 1 ) THEN CALL ERROR_STOP('Error finding grid box', 'GET_IJ') ENDIF ENDIF diff --git a/GeosUtil/grid_registry_mod.F90 b/GeosUtil/grid_registry_mod.F90 index 97f6f862f..d2ff8a466 100644 --- a/GeosUtil/grid_registry_mod.F90 +++ b/GeosUtil/grid_registry_mod.F90 @@ -827,23 +827,26 @@ SUBROUTINE Print_Grid( Input_Opt, RC, ShortFormat ) !======================================================================= ! Print info about registered variables !======================================================================= - - ! Header line - WRITE( 6, 10 ) - 10 FORMAT( /, 'Registered variables contained within grid_registry_mod.F90:' ) - WRITE( 6, '(a)' ) REPEAT( '=', 79 ) - - ! Print registry info in truncated format - CALL Registry_Print( Input_Opt = Input_Opt, & - Registry = Registry, & - ShortFormat = ShortFormat, & - RC = RC ) - - ! Trap error - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in routine "Registry_Print"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN + + ! Header line + WRITE( 6, 10 ) + 10 FORMAT( /, & + 'Registered variables contained within grid_registry_mod.F90:' ) + WRITE( 6, '(a)' ) REPEAT( '=', 79 ) + + ! Print registry info in truncated format + CALL Registry_Print( Input_Opt = Input_Opt, & + Registry = Registry, & + ShortFormat = ShortFormat, & + RC = RC ) + + ! Trap error + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in routine "Registry_Print"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF ENDIF END SUBROUTINE Print_Grid diff --git a/GeosUtil/time_mod.F90 b/GeosUtil/time_mod.F90 index f2138e25f..8e3ca7a0e 100644 --- a/GeosUtil/time_mod.F90 +++ b/GeosUtil/time_mod.F90 @@ -102,37 +102,6 @@ MODULE TIME_MOD !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PUBLIC :: Accept_External_Date_Time #endif -#ifdef BPCH_DIAG - !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - !%%% NOTE: THESE ROUTINES WILL BE OMITTED UNLESS GEOS-Chem %%% - !%%% IS COMPILED WITH BPCH_DIAG=y (bmy, 10/4/19) %%% - !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - PUBLIC :: GET_DIAGb - PUBLIC :: GET_DIAGe - PUBLIC :: GET_CT_CHEM - PUBLIC :: GET_CT_CONV - PUBLIC :: GET_CT_DYN - PUBLIC :: GET_CT_EMIS - PUBLIC :: GET_CT_RAD - PUBLIC :: GET_CT_A3 - PUBLIC :: GET_CT_I3 - PUBLIC :: GET_CT_DIAG - PUBLIC :: GET_NYMD_DIAG - PUBLIC :: SET_CT_CHEM - PUBLIC :: SET_CT_CONV - PUBLIC :: SET_CT_DYN - PUBLIC :: SET_CT_EMIS - PUBLIC :: SET_CT_DIAG - PUBLIC :: SET_CT_RAD - PUBLIC :: SET_CT_A3 - PUBLIC :: SET_CT_I3 - PUBLIC :: SET_DIAGb - PUBLIC :: SET_DIAGe - PUBLIC :: SET_Hg2_DIAG - PUBLIC :: ITS_TIME_FOR_BPCH - PUBLIC :: ITS_TIME_FOR_DIAG - PUBLIC :: GET_Hg2_DIAG -#endif ! ! !REMARKS: ! References: @@ -540,37 +509,6 @@ SUBROUTINE SET_DIAGb( THISDIAGb ) DIAGb = THISDIAGb END SUBROUTINE SET_DIAGb -#ifdef BPCH_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_diage -! -! !DESCRIPTION: Subroutine SET\_DIAGe initializes DIAGe, the TAU value at the -! end of the diagnostic averaging interval. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_DIAGe( THISDIAGe ) -! -! !INPUT PARAMETERS: -! - REAL(f8), INTENT(IN) :: THISDIAGe ! Initial DIAGe value [hrs from 1/1/85] -! -! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - DIAGe = THISDIAGe - - END SUBROUTINE SET_DIAGe -#endif !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -619,19 +557,6 @@ SUBROUTINE SET_TIMESTEPS( Input_Opt, CHEMISTRY, CONVECTION, DYNAMICS, & TS_DIAG = DIAGNOS TS_RAD = RADIATION - ! Zero timestep counters -#ifdef BPCH_DIAG - CT_CHEM = 0 - CT_CONV = 0 - CT_DYN = 0 - CT_EMIS = 0 - CT_RAD = 0 - CT_A3 = 0 - CT_I3 = 0 - CT_DIAG = 0 - Hg2_DIAG = 0 -#endif - ! Echo to stdout IF ( Input_Opt%amIRoot ) THEN WRITE( 6, '(/,a)' ) 'TIMESTEPS SETTINGS' @@ -646,314 +571,6 @@ SUBROUTINE SET_TIMESTEPS( Input_Opt, CHEMISTRY, CONVECTION, DYNAMICS, & ENDIF END SUBROUTINE SET_TIMESTEPS -#ifdef BPCH_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_ct_chem -! -! !DESCRIPTION: Subroutine SET\_CT\_CHEM increments CT\_CHEM, the counter -! of chemistry timesteps executed thus far. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_CT_CHEM( INCREMENT, RESET ) -! -! !INPUT PARAMETERS: -! - LOGICAL, INTENT(IN), OPTIONAL :: INCREMENT ! Increment counter? - LOGICAL, INTENT(IN), OPTIONAL :: RESET ! Reset counter? -! -! !REVISION HISTORY: -! 21 Mar 2009 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( PRESENT( INCREMENT ) ) THEN - CT_CHEM = CT_CHEM + 1 - ELSE IF ( PRESENT( RESET ) ) THEN - CT_CHEM = 0 - ENDIF - - END SUBROUTINE SET_CT_CHEM -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_ct_rad -! -! !DESCRIPTION: Subroutine SET\_CT\_RAD increments CT\_RAD, the -! counter of radiation timesteps executed thus far. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_CT_RAD( INCREMENT, RESET ) -! -! !INPUT PARAMETERS: -! - LOGICAL, INTENT(IN), OPTIONAL :: INCREMENT ! Increment counter? - LOGICAL, INTENT(IN), OPTIONAL :: RESET ! Reset counter? -! -! !REVISION HISTORY: -! 06 Oct 2012 - D. Ridley - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( PRESENT( INCREMENT ) ) THEN - CT_RAD = CT_RAD + 1 - ELSE IF ( PRESENT( RESET ) ) THEN - CT_RAD = 0 - ENDIF - - END SUBROUTINE SET_CT_RAD -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_hg2_diag -! -! !DESCRIPTION: Subroutine SET\_Hg2\_DIAG increments Hg2\_DIAG, the counter for -! the number of times AAD03\_Fg and AD03\_Fp are recorded. (hma 20100218) -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_Hg2_DIAG( INCREMENT, RESET ) -! -! !INPUT PARAMETERS: -! - LOGICAL, INTENT(IN), OPTIONAL :: INCREMENT ! Increment counter? - LOGICAL, INTENT(IN), OPTIONAL :: RESET ! Reset counter? -! -! !REVISION HISTORY: -! 18 Feb 2012 - H. Amos - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( PRESENT( INCREMENT ) ) THEN - Hg2_DIAG = Hg2_DIAG + 1 - ELSE IF ( PRESENT( RESET ) ) THEN - Hg2_DIAG = 0 - ENDIF - - END SUBROUTINE SET_Hg2_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_ct_conv -! -! !DESCRIPTION: Subroutine SET\_CT\_CONV increments CT\_CONV, the counter -! of convection timesteps executed thus far. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_CT_CONV( INCREMENT, RESET ) -! -! !INPUT PARAMETERS: -! - LOGICAL, INTENT(IN), OPTIONAL :: INCREMENT ! Increment counter? - LOGICAL, INTENT(IN), OPTIONAL :: RESET ! Reset counter? -! -! !REVISION HISTORY: -! 21 Mar 2009 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( PRESENT( INCREMENT ) ) THEN - CT_CONV = CT_CONV + 1 - ELSE IF ( PRESENT( RESET ) ) THEN - CT_CONV = 0 - ENDIF - - END SUBROUTINE SET_CT_CONV -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_ct_dyn -! -! !DESCRIPTION: Subroutine SET\_CT\_DYN increments CT\_DYN, the counter -! of dynamical timesteps executed thus far. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_CT_DYN( INCREMENT, RESET ) -! -! !INPUT PARAMETERS: -! - LOGICAL, INTENT(IN), OPTIONAL :: INCREMENT ! Increment counter? - LOGICAL, INTENT(IN), OPTIONAL :: RESET ! Reset counter? -! -! !REVISION HISTORY: -! 21 Mar 2009 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( PRESENT( INCREMENT ) ) THEN - CT_DYN = CT_DYN + 1 - ELSE IF ( PRESENT( RESET ) ) THEN - CT_DYN = 0 - ENDIF - - END SUBROUTINE SET_CT_DYN -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_ct_emis -! -! !DESCRIPTION: Subroutine SET\_CT\_EMIS increments CT\_EMIS, the counter -! of emission timesteps executed thus far. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_CT_EMIS( INCREMENT, RESET ) -! -! !INPUT PARAMETERS: -! - LOGICAL, INTENT(IN), OPTIONAL :: INCREMENT ! Increment counter? - LOGICAL, INTENT(IN), OPTIONAL :: RESET ! Reset counter? -! -! !REVISION HISTORY: -! 21 Mar 2009 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( PRESENT( INCREMENT ) ) THEN - CT_EMIS = CT_EMIS + 1 - ELSE IF ( PRESENT( RESET ) ) THEN - CT_EMIS = 0 - ENDIF - - END SUBROUTINE SET_CT_EMIS -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_ct_diag -! -! !DESCRIPTION: Subroutine SET\_CT\_DIAG increments CT\_DIAG, the counter -! of largest timesteps executed thus far. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_CT_DIAG( INCREMENT, RESET ) -! -! !INPUT PARAMETERS: -! - LOGICAL, INTENT(IN), OPTIONAL :: INCREMENT ! Increment counter? - LOGICAL, INTENT(IN), OPTIONAL :: RESET ! Reset counter? -! -! !REVISION HISTORY: -! 13 May 2009 - C. Carouge - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( PRESENT( INCREMENT ) ) THEN - CT_DIAG = CT_DIAG + 1 - ELSE IF ( PRESENT( RESET ) ) THEN - CT_DIAG = 0 - ENDIF - - END SUBROUTINE SET_CT_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_ct_a3 -! -! !DESCRIPTION: Subroutine SET\_CT\_A3 increments CT\_A3, the counter of the -! number of times we have read in A-3 fields. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_CT_A3( INCREMENT, RESET ) -! -! !INPUT PARAMETERS: -! - LOGICAL, INTENT(IN), OPTIONAL :: INCREMENT ! Increment counter? - LOGICAL, INTENT(IN), OPTIONAL :: RESET ! Reset counter? -! -! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( PRESENT( INCREMENT ) ) THEN - CT_A3 = CT_A3 + 1 - ELSE IF ( PRESENT( RESET ) ) THEN - CT_A3 = 0 - ENDIF - - END SUBROUTINE SET_CT_A3 -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_ct_i3 -! -! !DESCRIPTION: Subroutine SET\_CT\_I3 increments CT\_I3, the counter of the -! number of times we have read in I-3 fields. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE SET_CT_I3( INCREMENT, RESET ) -! -! !INPUT PARAMETERS: -! - LOGICAL, INTENT(IN), OPTIONAL :: INCREMENT ! Increment counter? - LOGICAL, INTENT(IN), OPTIONAL :: RESET ! Reset counter? -! -! !REVISION HISTORY: -! 03 Feb 2012 - R. Yantosca - Initial version, for GEOS-5.7.2 -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( PRESENT( INCREMENT ) ) THEN - CT_I3 = CT_I3 + 1 - ELSE IF ( PRESENT( RESET ) ) THEN - CT_I3 = 0 - ENDIF - - END SUBROUTINE SET_CT_I3 -#endif !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1624,483 +1241,161 @@ FUNCTION GET_TAUe() RESULT( THISTAUe ) THISTAUe = TAUe END FUNCTION GET_TAUe -#ifdef BPCH_DIAG !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Get_diagb +! !IROUTINE: Get_localtime ! -! !DESCRIPTION: Function GET\_DIAGb returns DIAGb (hours since 1 Jan 1985 -! at the start of a diagnostic interval) to the calling program. +! !DESCRIPTION: Function GET\_LOCALTIME returns the local time of a grid +! box to the calling program. (bmy, 2/5/03) !\\ !\\ ! !INTERFACE: ! - FUNCTION GET_DIAGb() RESULT( THISDIAGb ) -! -! !RETURN VALUE: -! - REAL(f8) :: THISDIAGb ! DIAGb [hrs sincd 1/1/1985] -! -! !REVISION HISTORY: -! 05 Feb 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - THISDIAGb = DIAGb - - END FUNCTION GET_DIAGb -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_diage + FUNCTION GET_LOCALTIME( I, J, L, State_Grid, GMT ) & + RESULT( THISLOCALTIME ) ! -! !DESCRIPTION: Function GET\_DIAGe returns DIAGe (hours since 1 Jan 1985 -! at the end of a diagnostic interval) to the calling program. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_DIAGe() RESULT( THISDIAGe ) -! -! !RETURN VALUE: -! - REAL(f8) :: THISDIAGe ! DIAGe [hrs sincd 1/1/1985] -! -! !REVISION HISTORY: -! 05 Feb 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - THISDIAGe = DIAGe - - END FUNCTION GET_DIAGe -#endif -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_localtime -! -! !DESCRIPTION: Function GET\_LOCALTIME returns the local time of a grid -! box to the calling program. (bmy, 2/5/03) -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_LOCALTIME( I, J, L, State_Grid, GMT ) & - RESULT( THISLOCALTIME ) -! -! !USES: -! - USE State_Grid_Mod, ONLY : GrdState -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: I ! Longitude index - INTEGER, INTENT(IN) :: J ! Latitude index - INTEGER, INTENT(IN) :: L ! Level index - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - REAL(f8), INTENT(IN), OPTIONAL :: GMT ! GMT time of day [hrs] -! -! !RETURN VALUE: -! - REAL(f8) :: THISLOCALTIME ! Local time [hrs] -! -! !REMARKS: -! Local Time = GMT + ( longitude / 15 ) since each hour of time -! corresponds to 15 degrees of longitude on the globe -! -! !REVISION HISTORY: -! 05 Feb 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - REAL(f8) :: GMT_HRS - - ! Save the value of the argument GMT in a local variable - ! If not passed, then use the current GMT time from time_mod.F90 - IF ( PRESENT( GMT ) ) THEN - GMT_HRS = GMT - ELSE - GMT_HRS = GET_GMT() - ENDIF - - ! Local time = GMT time [hrs] + longitude / 15 - THISLOCALTIME = GMT_HRS + ( State_Grid%XMid(I,J) / 15.0_f8 ) - - ! Make sure that THISLOCALTIME is in the range 0-24 hours - IF ( THISLOCALTIME > 24.0_f8 ) THEN - THISLOCALTIME = THISLOCALTIME - 24.0_f8 - ENDIF - - IF ( THISLOCALTIME < 0.0_f8 ) THEN - THISLOCALTIME = THISLOCALTIME + 24.0_f8 - ENDIF - - END FUNCTION GET_LOCALTIME -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_LocalTime_In_Sec -! -! !DESCRIPTION: Function GET\_LOCALTIME returns the local time of a grid -! box to the calling program. (bmy, 2/5/03) -!\\ -!\\ -! !INTERFACE: -! - FUNCTION Get_LocalTime_In_Sec( I, J, L, State_Grid ) & - RESULT( Lt_In_Sec ) -! -! !USES: -! - USE State_Grid_Mod, ONLY : GrdState -! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN) :: I ! Longitude index - INTEGER, INTENT(IN) :: J ! Latitude index - INTEGER, INTENT(IN) :: L ! Level index - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object -! -! !RETURN VALUE: -! - INTEGER :: Lt_In_Sec ! Local time [s] -! -! !REMARKS: -! Local Time = GMT + ( longitude / 15 ) since each hour of time -! corresponds to 15 degrees of longitude on the globe -! -! !REVISION HISTORY: -! 18 Apr 2019 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: Offset_Sec, UTC_In_Sec - - ! Compute UTC value in seconds - UTC_In_Sec = ( Hour * 3600 ) + ( Minute * 60 ) + Second - - ! 15 degrees of longitude on Earth is 1 hour or 3600 sec of time - ! Use NINT to avoid roundoff issues - Offset_Sec = NINT(( State_Grid%XMid(I,J) / 15.0_f8 ) * 3600.0_f8 ) - - ! Add offset to UTC to get local time - Lt_In_Sec = UTC_In_Sec + Offset_Sec - - ! Make sure that local time is in the range 0-86400 - IF ( Lt_In_Sec > 86400 ) THEN - Lt_In_Sec = Lt_In_Sec - 86400 - ENDIF - - IF ( Lt_In_Sec < 0 ) THEN - Lt_In_Sec = Lt_In_Sec + 86400 - ENDIF - - END FUNCTION Get_LocalTime_In_Sec -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_ts_chem -! -! !DESCRIPTION: Function GET\_TS\_CHEM returns the chemistry timestep in -! seconds. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_TS_CHEM() RESULT( THIS_TS_CHEM ) -! -! !RETURN VALUE: -! - INTEGER :: THIS_TS_CHEM ! ! Chemistry timestep [sec] -! -! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - THIS_TS_CHEM = TS_CHEM - - END FUNCTION GET_TS_CHEM -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_ts_rad -! -! !DESCRIPTION: Function GET\_TS\_RAD returns the radiation timestep in -! seconds. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_TS_RAD() RESULT( THIS_TS_RAD ) -! -! !RETURN VALUE: -! - INTEGER :: THIS_TS_RAD ! ! Radiation timestep [sec] -! -! !REVISION HISTORY: -! 06 Oct 2012 - D. Ridley - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - THIS_TS_RAD = TS_RAD - - END FUNCTION GET_TS_RAD -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_ts_conv -! -! !DESCRIPTION: Function GET\_TS\_CONV returns the convection timestep in -! seconds. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_TS_CONV() RESULT( THIS_TS_CONV ) -! -! !RETURN VALUE: -! - INTEGER :: THIS_TS_CONV ! Convective timestep [sec] -! -! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - THIS_TS_CONV = TS_CONV - - END FUNCTION GET_TS_CONV -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_ts_diag -! -! !DESCRIPTION: Function GET\_TS\_DIAG returns the diagnostic timestep in -! seconds. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_TS_DIAG() RESULT( THIS_TS_DIAG ) -! -! !RETURN VALUE: -! - INTEGER :: THIS_TS_DIAG ! Diagnostic timestep [sec] -! -! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - THIS_TS_DIAG = TS_DIAG - - END FUNCTION GET_TS_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_ts_dyn -! -! !DESCRIPTION: Function GET\_TS\_DIAG returns the diagnostic timestep in -! seconds. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_TS_DYN() RESULT( THIS_TS_DYN ) -! -! !RETURN VALUE: -! - INTEGER :: THIS_TS_DYN ! Dynamic timestep [sec] -! -! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - THIS_TS_DYN = TS_DYN - - END FUNCTION GET_TS_DYN -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_ts_emis -! -! !DESCRIPTION: Function GET\_TS\_EMIS returns the emission timestep in -! seconds. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_TS_EMIS() RESULT( THIS_TS_EMIS ) -! -! !RETURN VALUE: -! - INTEGER :: THIS_TS_EMIS ! Emissions timestep [sec] -! -! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - THIS_TS_EMIS = TS_EMIS - - END FUNCTION GET_TS_EMIS -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_ts_unit -! -! !DESCRIPTION: Function GET\_TS\_UNIT returns the unit-conversion timestep -! in seconds. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_TS_UNIT() RESULT( THIS_TS_UNIT ) -! -! !RETURN VALUE: -! - INTEGER :: THIS_TS_UNIT ! Unit conversion timestep [sec] -! -! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - THIS_TS_UNIT = TS_UNIT - - END FUNCTION GET_TS_UNIT -#ifdef BPCH_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP +! !USES: ! -! !IROUTINE: Get_ct_chem + USE State_Grid_Mod, ONLY : GrdState ! -! !DESCRIPTION: Function GET\_CT\_CHEM returns the chemistry timestep counter -! to the calling program. -!\\ -!\\ -! !INTERFACE: +! !INPUT PARAMETERS: ! - FUNCTION GET_CT_CHEM() RESULT( THIS_CT_CHEM ) + INTEGER, INTENT(IN) :: I ! Longitude index + INTEGER, INTENT(IN) :: J ! Latitude index + INTEGER, INTENT(IN) :: L ! Level index + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + REAL(f8), INTENT(IN), OPTIONAL :: GMT ! GMT time of day [hrs] ! ! !RETURN VALUE: ! - INTEGER :: THIS_CT_CHEM + REAL(f8) :: THISLOCALTIME ! Local time [hrs] +! +! !REMARKS: +! Local Time = GMT + ( longitude / 15 ) since each hour of time +! corresponds to 15 degrees of longitude on the globe ! ! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version +! 05 Feb 2003 - R. Yantosca - Initial Version ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC - THIS_CT_CHEM = CT_CHEM +! +! !LOCAL VARIABLES: +! + REAL(f8) :: GMT_HRS + + ! Save the value of the argument GMT in a local variable + ! If not passed, then use the current GMT time from time_mod.F90 + IF ( PRESENT( GMT ) ) THEN + GMT_HRS = GMT + ELSE + GMT_HRS = GET_GMT() + ENDIF + + ! Local time = GMT time [hrs] + longitude / 15 + THISLOCALTIME = GMT_HRS + ( State_Grid%XMid(I,J) / 15.0_f8 ) + + ! Make sure that THISLOCALTIME is in the range 0-24 hours + IF ( THISLOCALTIME > 24.0_f8 ) THEN + THISLOCALTIME = THISLOCALTIME - 24.0_f8 + ENDIF + + IF ( THISLOCALTIME < 0.0_f8 ) THEN + THISLOCALTIME = THISLOCALTIME + 24.0_f8 + ENDIF - END FUNCTION GET_CT_CHEM + END FUNCTION GET_LOCALTIME !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Get_ct_rad +! !IROUTINE: Get_LocalTime_In_Sec ! -! !DESCRIPTION: Function GET\_CT\_RAD returns the radiation timestep counter -! to the calling program. +! !DESCRIPTION: Function GET\_LOCALTIME returns the local time of a grid +! box to the calling program. (bmy, 2/5/03) !\\ !\\ ! !INTERFACE: ! - FUNCTION GET_CT_RAD() RESULT( THIS_CT_RAD ) + FUNCTION Get_LocalTime_In_Sec( I, J, L, State_Grid ) & + RESULT( Lt_In_Sec ) +! +! !USES: +! + USE State_Grid_Mod, ONLY : GrdState +! +! !INPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: I ! Longitude index + INTEGER, INTENT(IN) :: J ! Latitude index + INTEGER, INTENT(IN) :: L ! Level index + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object ! ! !RETURN VALUE: ! - INTEGER :: THIS_CT_RAD + INTEGER :: Lt_In_Sec ! Local time [s] +! +! !REMARKS: +! Local Time = GMT + ( longitude / 15 ) since each hour of time +! corresponds to 15 degrees of longitude on the globe ! ! !REVISION HISTORY: -! 06 Oct 2012 - D. Ridley - Initial version +! 18 Apr 2019 - R. Yantosca - Initial Version ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC - THIS_CT_RAD = CT_RAD +! +! !LOCAL VARIABLES: +! + INTEGER :: Offset_Sec, UTC_In_Sec + + ! Compute UTC value in seconds + UTC_In_Sec = ( Hour * 3600 ) + ( Minute * 60 ) + Second + + ! 15 degrees of longitude on Earth is 1 hour or 3600 sec of time + ! Use NINT to avoid roundoff issues + Offset_Sec = NINT(( State_Grid%XMid(I,J) / 15.0_f8 ) * 3600.0_f8 ) + + ! Add offset to UTC to get local time + Lt_In_Sec = UTC_In_Sec + Offset_Sec + + ! Make sure that local time is in the range 0-86400 + IF ( Lt_In_Sec > 86400 ) THEN + Lt_In_Sec = Lt_In_Sec - 86400 + ENDIF + + IF ( Lt_In_Sec < 0 ) THEN + Lt_In_Sec = Lt_In_Sec + 86400 + ENDIF - END FUNCTION GET_CT_RAD + END FUNCTION Get_LocalTime_In_Sec !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Get_ct_conv +! !IROUTINE: Get_ts_chem ! -! !DESCRIPTION: Function GET\_CT\_CONV returns the convection timestep -! counter to the calling program. +! !DESCRIPTION: Function GET\_TS\_CHEM returns the chemistry timestep in +! seconds. !\\ !\\ ! !INTERFACE: ! - FUNCTION GET_CT_CONV() RESULT( THIS_CT_CONV ) + FUNCTION GET_TS_CHEM() RESULT( THIS_TS_CHEM ) ! ! !RETURN VALUE: ! - INTEGER :: THIS_CT_CONV ! # of convection timesteps + INTEGER :: THIS_TS_CHEM ! ! Chemistry timestep [sec] ! ! !REVISION HISTORY: ! 21 Mar 2003 - R. Yantosca - Initial Version @@ -2108,58 +1403,57 @@ FUNCTION GET_CT_CONV() RESULT( THIS_CT_CONV ) !EOP !------------------------------------------------------------------------------ !BOC - THIS_CT_CONV = CT_CONV + THIS_TS_CHEM = TS_CHEM - END FUNCTION GET_CT_CONV + END FUNCTION GET_TS_CHEM !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Get_ct_dyn +! !IROUTINE: Get_ts_rad ! -! !DESCRIPTION: Function GET\_CT\_CHEM returns the dynamic timestep counter -! to the calling program. +! !DESCRIPTION: Function GET\_TS\_RAD returns the radiation timestep in +! seconds. !\\ !\\ ! !INTERFACE: ! - FUNCTION GET_CT_DYN() RESULT( THIS_CT_DYN ) + FUNCTION GET_TS_RAD() RESULT( THIS_TS_RAD ) ! ! !RETURN VALUE: ! - INTEGER :: THIS_CT_DYN ! # of dynamics timesteps + INTEGER :: THIS_TS_RAD ! ! Radiation timestep [sec] ! ! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version +! 06 Oct 2012 - D. Ridley - Initial version ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC - THIS_CT_DYN = CT_DYN + THIS_TS_RAD = TS_RAD - END FUNCTION GET_CT_DYN + END FUNCTION GET_TS_RAD !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Get_ct_emis +! !IROUTINE: Get_ts_conv ! -! !DESCRIPTION: Function GET\_CT\_CHEM returns the emissions timestep counter -! to the calling program. +! !DESCRIPTION: Function GET\_TS\_CONV returns the convection timestep in +! seconds. !\\ !\\ ! !INTERFACE: ! - FUNCTION GET_CT_EMIS() RESULT( THIS_CT_EMIS ) + FUNCTION GET_TS_CONV() RESULT( THIS_TS_CONV ) ! ! !RETURN VALUE: ! - INTEGER :: THIS_CT_EMIS ! # of emissions timesteps -! + INTEGER :: THIS_TS_CONV ! Convective timestep [sec] ! ! !REVISION HISTORY: ! 21 Mar 2003 - R. Yantosca - Initial Version @@ -2167,28 +1461,28 @@ FUNCTION GET_CT_EMIS() RESULT( THIS_CT_EMIS ) !EOP !------------------------------------------------------------------------------ !BOC - THIS_CT_EMIS = CT_EMIS + THIS_TS_CONV = TS_CONV - END FUNCTION GET_CT_EMIS + END FUNCTION GET_TS_CONV !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Get_ct_a3 +! !IROUTINE: Get_ts_diag ! -! !DESCRIPTION: Function GET\_CT\_A3 returns the A-3 fields timestep -! counter to the calling program. +! !DESCRIPTION: Function GET\_TS\_DIAG returns the diagnostic timestep in +! seconds. !\\ !\\ ! !INTERFACE: ! - FUNCTION GET_CT_A3() RESULT( THIS_CT_A3 ) + FUNCTION GET_TS_DIAG() RESULT( THIS_TS_DIAG ) ! ! !RETURN VALUE: ! - INTEGER :: THIS_CT_A3 ! # of A-3 timesteps + INTEGER :: THIS_TS_DIAG ! Diagnostic timestep [sec] ! ! !REVISION HISTORY: ! 21 Mar 2003 - R. Yantosca - Initial Version @@ -2196,97 +1490,96 @@ FUNCTION GET_CT_A3() RESULT( THIS_CT_A3 ) !EOP !------------------------------------------------------------------------------ !BOC - THIS_CT_A3 = CT_A3 + THIS_TS_DIAG = TS_DIAG - END FUNCTION GET_CT_A3 + END FUNCTION GET_TS_DIAG !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Get_ct_i3 +! !IROUTINE: Get_ts_dyn ! -! !DESCRIPTION: Function GET\_CT\_I3 returns the I-3 fields timestep counter -! to the calling program +! !DESCRIPTION: Function GET\_TS\_DIAG returns the diagnostic timestep in +! seconds. !\\ !\\ ! !INTERFACE: ! - FUNCTION GET_CT_I3() RESULT( THIS_CT_I3 ) + FUNCTION GET_TS_DYN() RESULT( THIS_TS_DYN ) ! ! !RETURN VALUE: ! - INTEGER :: THIS_CT_I3 ! # of I-6 timesteps + INTEGER :: THIS_TS_DYN ! Dynamic timestep [sec] ! ! !REVISION HISTORY: -! 03 Feb 2012 - R. Yantosca - Initial version, for GEOS-5.7.2 +! 21 Mar 2003 - R. Yantosca - Initial Version ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC - THIS_CT_I3 = CT_I3 + THIS_TS_DYN = TS_DYN - END FUNCTION GET_CT_I3 + END FUNCTION GET_TS_DYN !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Get_ct_diag +! !IROUTINE: Get_ts_emis ! -! !DESCRIPTION: Function GET\_CT\_DIAG returns the DIAG timestep counter to the -! calling program. +! !DESCRIPTION: Function GET\_TS\_EMIS returns the emission timestep in +! seconds. !\\ !\\ ! !INTERFACE: ! - FUNCTION GET_CT_DIAG() RESULT( THIS_CT_DIAG ) + FUNCTION GET_TS_EMIS() RESULT( THIS_TS_EMIS ) ! ! !RETURN VALUE: ! - INTEGER :: THIS_CT_DIAG ! # of diagnostic timesteps + INTEGER :: THIS_TS_EMIS ! Emissions timestep [sec] ! ! !REVISION HISTORY: -! 21 May 2009 - C. Carouge - Initial Version +! 21 Mar 2003 - R. Yantosca - Initial Version ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC - THIS_CT_DIAG = CT_DIAG + THIS_TS_EMIS = TS_EMIS - END FUNCTION GET_CT_DIAG + END FUNCTION GET_TS_EMIS !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Get_hg2_diag +! !IROUTINE: Get_ts_unit ! -! !DESCRIPTION: Function GET\_Hg2\_DIAG returns the DIAG timestep counter to -! the calling program. (hma 20100218) +! !DESCRIPTION: Function GET\_TS\_UNIT returns the unit-conversion timestep +! in seconds. !\\ !\\ ! !INTERFACE: ! - FUNCTION GET_Hg2_DIAG() RESULT( THIS_Hg2_DIAG ) + FUNCTION GET_TS_UNIT() RESULT( THIS_TS_UNIT ) ! ! !RETURN VALUE: ! - INTEGER :: THIS_Hg2_DIAG ! # of diagnostic timesteps + INTEGER :: THIS_TS_UNIT ! Unit conversion timestep [sec] ! ! !REVISION HISTORY: -! 18 Feb 2012 - H. Amos - Initial version +! 21 Mar 2003 - R. Yantosca - Initial Version ! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC - THIS_Hg2_DIAG = Hg2_DIAG + THIS_TS_UNIT = TS_UNIT - END FUNCTION GET_Hg2_DIAG -#endif + END FUNCTION GET_TS_UNIT !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -2481,12 +1774,19 @@ FUNCTION GET_BC_TIME() RESULT( DATE ) ELSE !-------------------------------------------------------------- - ! Other than the 1st time: Search 180 mins ahead + ! Other than the 1st time: Use current time !-------------------------------------------------------------- - ! We need to read in the I-3 fields 3h (180 mins, or 10800 secs) - ! ahead of time - DATE = GET_TIME_AHEAD( 10800 ) + ! Boundary condition time slices are set to fixed 3-hourly intervals + ! starting from 00z, in units of minutes from start. i.e., + ! time = 0, 180, 360, 540, 720, 900, 1080, 1260 ; + ! time:units = "minutes since 2019-01-01T00:00:00+00:00" ; + ! + ! The GET_BC_TIME is used to retrieve HHMMSS time slices for use in + ! Get_Boundary_Conditions, which performs the calculation + ! t_index = ( HHMMSS / 030000 ) + 1 + ! Thus, HHMMSS must not be offset from the current time. (hplin, 7/27/23) + DATE = GET_TIME_AHEAD( 0 ) ENDIF @@ -2968,38 +2268,6 @@ FUNCTION ITS_TIME_FOR_UNIT() RESULT( FLAG ) FLAG = ( MOD( ELAPSED_SEC, TS_DYN ) == 0 ) END FUNCTION ITS_TIME_FOR_UNIT -#ifdef BPCH_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Its_Time_For_diag -! -! !DESCRIPTION: Function ITS\_TIME\_FOR\_DIAG returns TRUE if it is time to -! archive certain diagnostics, or FALSE otherwise. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION ITS_TIME_FOR_DIAG() RESULT( FLAG ) -! -! !RETURN VALUE: -! - LOGICAL :: FLAG -! -! !REVISION HISTORY: -! 21 Mar 2003 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - ! Is it time for diagnostics? - FLAG = ( MOD( ELAPSED_SEC, TS_DIAG ) == 0 ) - - END FUNCTION ITS_TIME_FOR_DIAG -#endif !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -3165,80 +2433,6 @@ FUNCTION ITS_TIME_FOR_EXIT() RESULT( FLAG ) FLAG = ( TAU >= TAUe ) END FUNCTION ITS_TIME_FOR_EXIT -#ifdef BPCH_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Its_Time_For_bpch -! -! !DESCRIPTION: Function ITS\_TIME\_FOR\_BPCH returns TRUE if it's time to -! write output to the bpch file, or FALSE otherwise. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION ITS_TIME_FOR_BPCH( Input_Opt ) RESULT( DO_BPCH ) -! -! !USES: -! - USE Input_Opt_Mod, ONLY : OptInput -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input options -! -! !RETURN VALUE: -! - LOGICAL :: DO_BPCH -! -! !REMARKS: -! NJDAY is now located in CMN_SIZE_mod.F90, so that we can eventually -! retire the obsolete CMN_DIAG_mod.F90. (bmy, 1/16/18) -! -! !REVISION HISTORY: -! 02 Feb 2007 - R. Yantosca - Initial Version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - INTEGER :: DOY, THIS_NJDAY - - !================================================================= - ! ITS_TIME_FOR_BPCH begins here! - !================================================================= - - ! Return FALSE if it's the first timestep - IF ( TAU == TAUb ) THEN - DO_BPCH = .FALSE. - RETURN - ENDIF - - ! Day of year (0..365 or 0..366 leapyears) - DOY = DAY_OF_YEAR - - ! Look up appropriate value of NJDAY array. We may need to add a - ! day to skip past the Feb 29 element of NJDAY for non-leap-years. - IF ( .not. ITS_A_LEAPYEAR( FORCE=.TRUE. ) .and. DOY > 59 ) THEN - THIS_NJDAY = Input_Opt%NJDAY( DOY + 1 ) - ELSE - THIS_NJDAY = Input_Opt%NJDAY( DOY ) - ENDIF - - ! Test if this is the day & time to write to the BPCH file! - IF ( ( THIS_NJDAY > 0 ) .and. NHMS == NHMSe ) THEN - DO_BPCH = .TRUE. - ELSE - DO_BPCH = .FALSE. - ENDIF - - END FUNCTION ITS_TIME_FOR_BPCH -#endif !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -3816,8 +3010,8 @@ END FUNCTION ITS_A_NEW_HOUR ! ! !IROUTINE: Print_Current_Time ! -! !DESCRIPTION: Subroutine PRINT\_CURRENT\_TIME prints the date, GMT time, and -! elapsed hours of a GEOS-Chem simulation. +! !DESCRIPTION: Subroutine PRINT\_CURRENT\_TIME prints the date, and UTC time +! of a GEOS-Chem simulation. !\\ !\\ ! !INTERFACE: @@ -3831,19 +3025,12 @@ SUBROUTINE PRINT_CURRENT_TIME !------------------------------------------------------------------------------ !BOC ! -! !LOCAL VARIABLES: -! - REAL(f4) :: E_HOURS - - ! Hours since start of run - E_HOURS = REAL( ELAPSED_SEC ) / 3600e+0_f4 - ! Write quantities - WRITE( 6, 100 ) YEAR, MONTH, DAY, HOUR, MINUTE, E_HOURS + WRITE( 6, 100 ) YEAR, MONTH, DAY, HOUR, MINUTE ! Format string 100 FORMAT( '---> DATE: ', i4.4, '/', i2.2, '/', i2.2, & - ' UTC: ', i2.2, ':', i2.2, ' X-HRS: ', f13.6 ) + ' UTC: ', i2.2, ':', i2.2 ) END SUBROUTINE PRINT_CURRENT_TIME !EOC @@ -4304,38 +3491,6 @@ SUBROUTINE TIMESTAMP_DIAG NYMD_DIAG = GET_NYMD() END SUBROUTINE TIMESTAMP_DIAG -#ifdef BPCH_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Get_nymd_diag -! -! !DESCRIPTION: Function GET\_NYMD\_DIAG returns the previous NYMD value -! (YYYYMMDD) to the calling program. Used for diagnostic filenames. -!\\ -!\\ -! !INTERFACE: -! - FUNCTION GET_NYMD_DIAG() RESULT( THISNYMD ) -! -! !RETURN VALUE: -! - INTEGER :: THISNYMD -! -! !REVISION HISTORY: -! 12 Aug 2009 - C. Carouge - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - - THISNYMD = NYMD_DIAG - - END FUNCTION GET_NYMD_DIAG -#endif !EOC #if defined( ESMF_ ) || defined( MODEL_ ) !------------------------------------------------------------------------------ diff --git a/GeosUtil/unitconv_mod.F90 b/GeosUtil/unitconv_mod.F90 index 5b4754cca..3def42eea 100644 --- a/GeosUtil/unitconv_mod.F90 +++ b/GeosUtil/unitconv_mod.F90 @@ -33,20 +33,41 @@ MODULE UnitConv_Mod IMPLICIT NONE PRIVATE ! +! !DEFINED PARAMETERS: +! + ! Unit flags (use integers; faster comparisons than strings) + ! NOTE: mol/mol are equivalent units to v/v + INTEGER, PARAMETER, PUBLIC :: KG_SPECIES = 1 + INTEGER, PARAMETER, PUBLIC :: KG_SPECIES_PER_KG_DRY_AIR = 2 + INTEGER, PARAMETER, PUBLIC :: KG_SPECIES_PER_KG_TOTAL_AIR = 3 + INTEGER, PARAMETER, PUBLIC :: KG_SPECIES_PER_M2 = 4 + INTEGER, PARAMETER, PUBLIC :: MOLECULES_SPECIES_PER_CM3 = 5 + INTEGER, PARAMETER, PUBLIC :: MOLES_SPECIES_PER_MOLES_DRY_AIR = 6 + INTEGER, PARAMETER, PUBLIC :: MOLES_SPECIES_PER_MOLES_TOTAL_AIR = 7 + + ! Labels corresponding to each integer unit flag defined above. + ! This array is private to this module, whereas the flags are public. + CHARACTER(LEN=13), PARAMETER, PUBLIC :: UNIT_STR(7) = (/ & + 'kg ', 'kg/kg dry ', 'kg/kg total ', 'kg/m2 ', & + 'molec/cm3 ', 'mol/mol dry ', 'mol/mol total' & + /) +! ! !PUBLIC MEMBER FUNCTIONS: ! + PUBLIC :: Check_Units PUBLIC :: Convert_Spc_Units PUBLIC :: Print_Global_Species_Kg + PUBLIC :: Print_Species_Units ! kg/kg dry air <-> kg/grid box (single box only) ! Used for TOMAS compatibility in WASHOUT - PUBLIC :: ConvertBox_KgKgDry_to_Kg - PUBLIC :: ConvertBox_Kg_to_KgKgDry + PUBLIC :: ConvertBox_KgKgDry_to_Kg + PUBLIC :: ConvertBox_Kg_to_KgKgDry ! kg <-> kg/m2 (single box only) ! Used for TOMAS compatibility in WASHOUT within wetscav_mod - PUBLIC :: ConvertBox_Kgm2_to_Kg - PUBLIC :: ConvertBox_Kg_to_Kgm2 + PUBLIC :: ConvertBox_Kgm2_to_Kg + PUBLIC :: ConvertBox_Kg_to_Kgm2 ! ! !PRIVATE MEMBER FUNCTIONS: ! @@ -55,16 +76,16 @@ MODULE UnitConv_Mod !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! kg/kg dry air <-> v/v dry air ! Used in DO_TEND in mixing - PRIVATE :: ConvertSpc_KgKgDry_to_VVDry - PRIVATE :: ConvertSpc_VVDry_to_KgKgDry + PRIVATE :: ConvertSpc_KgKgDry_to_VVDry + PRIVATE :: ConvertSpc_VVDry_to_KgKgDry !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! KG/KG DRY <-> KG/KG TOTAL !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! kg/kg dry air <-> kg/kg total air ! Used in DO_TEND in mixing - PRIVATE :: ConvertSpc_KgKgDry_to_KgKgTotal - PRIVATE :: ConvertSpc_KgKgTotal_to_KgKgDry + PRIVATE :: ConvertSpc_KgKgDry_to_KgKgTotal + PRIVATE :: ConvertSpc_KgKgTotal_to_KgKgDry !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! KG/KG DRY <-> KG/M2 @@ -72,14 +93,14 @@ MODULE UnitConv_Mod ! kg/kg dry air <-> kg/m2 ! Used for wet deposition, DO_TEND in mixing, ! and around AIRQNT and SET_H2O_TRAC in main - PRIVATE :: ConvertSpc_KgKgDry_to_Kgm2 - PRIVATE :: ConvertSpc_kgm2_to_KgKgDry + PRIVATE :: ConvertSpc_KgKgDry_to_Kgm2 + PRIVATE :: ConvertSpc_kgm2_to_KgKgDry !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! KG/KG DRY <-> MOLEC/CM3 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - PRIVATE :: ConvertSpc_KgKgDry_to_MND - PRIVATE :: ConvertSpc_MND_to_KgKgDry + PRIVATE :: ConvertSpc_KgKgDry_to_MND + PRIVATE :: ConvertSpc_MND_to_KgKgDry !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! AREA-DEPENDENT (temporary routines) @@ -88,8 +109,8 @@ MODULE UnitConv_Mod ! v/v dry air <-> kg/grid box ! Temporarily replaces legacy CONVERT_UNITS ! Used in strat_chem_mod and sulfate_mod - PRIVATE :: ConvertSpc_VVDry_to_Kg - PRIVATE :: ConvertSpc_Kg_to_VVDry + PRIVATE :: ConvertSpc_VVDry_to_Kg + PRIVATE :: ConvertSpc_Kg_to_VVDry ! kg/kg dry air <-> kg/grid box ! Used in aerosol_mod, tomas_mod, emissions_mod, @@ -97,12 +118,12 @@ MODULE UnitConv_Mod ! chemistry_mod, sulfate_mod, and carbon_mod ! This is since RRTMG, TOMAS, exchange_mod, chemistry, ! and EMISSMERCURY are still in [kg] - PRIVATE :: ConvertSpc_KgKgDry_to_Kg - PRIVATE :: ConvertSpc_Kg_to_KgKgDry + PRIVATE :: ConvertSpc_KgKgDry_to_Kg + PRIVATE :: ConvertSpc_Kg_to_KgKgDry ! molec/cm3 dry air <-> kg/gridbox - PRIVATE :: ConvertSpc_MND_to_Kg - PRIVATE :: ConvertSpc_Kg_to_MND + PRIVATE :: ConvertSpc_MND_to_Kg + PRIVATE :: ConvertSpc_Kg_to_MND ! ! !REMARKS: ! The routines in this module are used to convert the units of @@ -115,7 +136,7 @@ MODULE UnitConv_Mod !------------------------------------------------------------------------------ !BOC CONTAINS - +!EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ @@ -129,8 +150,9 @@ MODULE UnitConv_Mod !\\ ! !INTERFACE: ! - SUBROUTINE Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & - OutUnit, RC, OrigUnit ) + SUBROUTINE Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, & + State_Met, new_units, RC, & + mapping, previous_units ) ! ! !USES: ! @@ -138,30 +160,45 @@ SUBROUTINE Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & ! ! !INPUT PARAMETERS: ! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid state object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - CHARACTER(LEN=*), INTENT(IN) :: OutUnit ! Desired output unit + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid state object + TYPE(MetState), INTENT(IN) :: State_Met ! Met State object + INTEGER, INTENT(IN) :: new_units ! Units to convert to + INTEGER, OPTIONAL, POINTER :: mapping(:) ! Spc ID -> modelId ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chem State object ! ! !OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC ! Success or failure? - CHARACTER(LEN=*), INTENT(OUT), OPTIONAL :: OrigUnit ! Units of input data -! -! !REMARKS: -! The purpose of optional output argument OrigUnit is to enable conversion -! back to the original units in a second call to Convert_Spc_Units. -! For example: -! -! CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & -! 'kg/kg dry', RC, OrigUnit=OrigUnit ) -! ...computation... -! CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & -! OrigUnit, RC ) + INTEGER, INTENT(OUT) :: RC ! Success or failure? + INTEGER, OPTIONAL :: previous_units ! Previous units +! +! !CALLING SEQUENCE: +! +! ! Convert units from mol/mol dry to kg +! CALL Convert_Spc_Units( & +! Input_Opt = Input_Opt, & +! State_Chm = State_Chm, & +! State_Grid = State_Grid, & +! State_Met = State_Met, & +! mapping = State_Chm%Map_XXXXX, & ! Uses Map_All if omitted +! new_units = KG_SPECIES, & +! previous_units = previous_units, & +! RC = RC ) +! +! ...computation... +! +! ! Convert back to original units +! CALL Convert_Spc_Units( & +! Input_Opt = Input_Opt, & +! State_Chm = State_Chm, & +! State_Grid = State_Grid, & +! State_Met = State_Met, & +! mapping = State_Chm%Map_XXXXX, & ! Uses Map_All if omitted +! new_units = previous_units, & +! RC = RC ) ! ! !REVISION HISTORY: ! 14 Apr 2016 - C. Keller - Initial version @@ -172,198 +209,292 @@ SUBROUTINE Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & ! ! !LOCAL VARIABLES: ! - CHARACTER(LEN=255) :: ErrMsg_noIn, ErrMsg_noOut, ErrMsg_RC, LOC, InUnit - LOGICAL :: IS_ADJOINT ! Is this the reverse integration + ! Scalars + LOGICAL :: isAdjoint + INTEGER :: current_units + + ! Pointers + INTEGER, POINTER :: theMapping(:) + + ! Strings + CHARACTER(LEN=255) :: errNoIn, errNoOut, errMsg, errUnits, thisLoc !==================================================================== ! Convert_Spc_Units begins here! !==================================================================== - IF ( Input_Opt%useTimers ) THEN CALL Timer_Start( "Unit conversions", RC ) ENDIF - ! Assume success - RC = GC_SUCCESS + ! Convert units for all species unless mapping is passed + ! NOTE: Avoid an ELSE statement here, which can be a bottleneck. + theMapping => State_Chm%Map_All + IF ( PRESENT( mapping ) ) theMapping => mapping - ! Store units of input data locally - InUnit = State_Chm%Spc_Units - - ! Define error handling messages - LOC = ' -> at Convert_Spc_Units (in GeosUtil/unitconv_mod.F90)' - ErrMsg_NoOut = 'Conversion to '//TRIM(OutUnit)//' not defined' - ErrMsg_NoIn = 'Conversion from '//TRIM(InUnit)//' to '//TRIM(OutUnit)//& - ' not defined' - ErrMsg_RC = 'Error in conversion from '//TRIM(InUnit)//' to '//TRIM(OutUnit) + ! Error check the mapping argument + IF ( SIZE(theMapping) < 1 ) THEN + errMsg = 'The "mapping" argument has zero elements!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF - ! Archive units of input data for output if passed as argument - IF ( PRESENT(OrigUnit) ) OrigUnit = State_Chm%Spc_Units + ! Initialize + RC = GC_SUCCESS + current_units = State_Chm%Species(theMapping(1))%Units + isAdjoint = .FALSE. + thisLoc = ' -> at Convert_Spc_Units (in GeosUtil/unitconv_mod.F90)' + + ! Error messages + errNoOut = 'Conversion to ' // TRIM( UNIT_STR( new_units ) ) // & + ' is not defined!' + errNoIn = 'Conversion from ' // TRIM( UNIT_STR( current_units ) ) // & + ' is not defined!' + errMsg = 'Error in conversion from ' // & + TRIM( UNIT_STR( current_units ) ) // ' to ' // & + TRIM( UNIT_STR( new_units ) ) // '!' + errUnits = '' ! Debugging print - IF ( Input_Opt%LPRT .AND. Input_Opt%amIRoot ) THEN - WRITE(6,'(a)') ' ### Species Unit Conversion: ' // & - TRIM(InUnit) // ' -> ' // TRIM(OutUnit) // ' ###' + IF ( Input_Opt%Verbose ) THEN + WRITE( 6, 100 ) TRIM( UNIT_STR( current_units ) ), & + TRIM( UNIT_STR( new_units ) ) + 100 FORMAT( ' ### Species Unit Conversion: ', a, ' -> ', a ) ENDIF ! Exit if in and out units are the same - IF ( TRIM(OutUnit) == TRIM(InUnit) ) THEN + IF ( new_units == current_units ) THEN + IF ( PRESENT( previous_units ) ) previous_units = new_units IF ( Input_Opt%useTimers ) THEN CALL Timer_End( "Unit conversions", RC ) ENDIF RETURN -ENDIF + ENDIF + + ! Make sure all species have consistent starting units + IF ( .not. Check_Units( State_Chm, current_units, theMapping ) ) THEN + errMsg = 'All species do not have consistent starting units!' + theMapping => NULL() + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF #ifdef ADJOINT -! check if this is the adjoint run - IS_ADJOINT = Input_Opt%Is_Adjoint -#else -! if ADJOINT is not defined, this can never be the adjoint run - IS_ADJOINT = .FALSE. + ! Set a flag if we have compiled for the adjoint + isAdjoint = Input_Opt%is_Adjoint #endif ! Convert based on input and output units - SELECT CASE ( TRIM(InUnit) ) + SELECT CASE ( current_units ) !================================================================ ! Convert from kg/kg dry !================================================================ - CASE ( 'kg/kg dry' ) - SELECT CASE ( TRIM(OutUnit) ) - CASE ( 'v/v dry' ) - CALL ConvertSpc_KgKgDry_to_VVDry( State_Chm, State_Grid, & - IS_ADJOINT, RC ) - CASE ( 'kg/kg total' ) - CALL ConvertSpc_KgKgDry_to_KgKgTotal( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CASE ( 'kg' ) - CALL ConvertSpc_KgKgDry_to_Kg( State_Chm, State_Grid, & - State_Met, IS_ADJOINT, & - RC ) - CASE ( 'kg/m2' ) - CALL ConvertSpc_KgKgDry_to_Kgm2( State_Chm, State_Grid, & - State_Met, IS_ADJOINT, & - RC ) - CASE ( 'molec/cm3' ) - CALL ConvertSpc_KgKgDry_to_MND( State_Chm, State_Grid, & - State_Met, IS_ADJOINT, & - RC ) + CASE ( KG_SPECIES_PER_KG_DRY_AIR ) + + SELECT CASE ( new_units ) + + CASE ( MOLES_SPECIES_PER_MOLES_DRY_AIR ) + CALL ConvertSpc_KgKgDry_to_VVDry( & + State_Chm, State_Grid, theMapping, & + isAdjoint, RC ) + + CASE ( KG_SPECIES_PER_KG_TOTAL_AIR ) + CALL ConvertSpc_KgKgDry_to_KgKgTotal( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( KG_SPECIES ) + CALL ConvertSpc_KgKgDry_to_Kg( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( KG_SPECIES_PER_M2 ) + CALL ConvertSpc_KgKgDry_to_Kgm2( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( MOLECULES_SPECIES_PER_CM3 ) + CALL ConvertSpc_KgKgDry_to_MND( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CASE DEFAULT - CALL GC_Error( ErrMsg_noOut, RC, LOC ) + CALL GC_Error( errNoOut, RC, thisLoc ) + END SELECT !================================================================ ! Convert from kg/kg total !================================================================ - CASE ( 'kg/kg total' ) - SELECT CASE ( TRIM(OutUnit) ) - CASE ( 'kg/kg dry' ) - CALL ConvertSpc_KgKgTotal_to_KgKgDry( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CASE ( 'kg' ) - CALL ConvertSpc_KgKgTotal_to_KgKgDry( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CALL ConvertSpc_KgKgDry_to_Kg( State_Chm, State_Grid, & - State_Met, IS_ADJOINT, RC ) + CASE ( KG_SPECIES_PER_KG_TOTAL_AIR ) + + SELECT CASE ( new_units ) + + CASE ( KG_SPECIES_PER_KG_DRY_AIR ) + CALL ConvertSpc_KgKgTotal_to_KgKgDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( KG_SPECIES ) + CALL ConvertSpc_KgKgTotal_to_KgKgDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CALL ConvertSpc_KgKgDry_to_Kg( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( MOLECULES_SPECIES_PER_CM3 ) + CALL ConvertSpc_KgKgTotal_to_KgKgDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CALL ConvertSpc_KgKgDry_to_MND( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CASE DEFAULT - CALL GC_Error( ErrMsg_noOut, RC, LOC ) + CALL GC_Error( errNoOut, RC, thisLoc ) END SELECT !==================================================================== ! Convert from v/v dry !==================================================================== - CASE ( 'v/v dry' ) - SELECT CASE ( TRIM(OutUnit) ) - CASE ( 'kg/kg dry' ) - CALL ConvertSpc_VVDry_to_KgKgDry( State_Chm, State_Grid, & - IS_ADJOINT, RC ) - CASE ( 'kg' ) - CALL ConvertSpc_VVDry_to_Kg( State_Chm, State_Grid, & - State_Met, IS_ADJOINT, RC ) - CASE ( 'kg/m2' ) - CALL ConvertSpc_VVDry_to_KgKgDry( State_Chm, State_Grid, & - IS_ADJOINT, RC ) - CALL ConvertSpc_KgKgDry_to_Kgm2 ( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) + CASE ( MOLES_SPECIES_PER_MOLES_DRY_AIR ) + + SELECT CASE ( new_units ) + + CASE ( KG_SPECIES_PER_KG_DRY_AIR ) + CALL ConvertSpc_VVDry_to_KgKgDry( & + State_Chm, State_Grid, & + theMapping, isAdjoint, RC ) + + CASE ( KG_SPECIES ) + CALL ConvertSpc_VVDry_to_Kg( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( KG_SPECIES_PER_M2 ) + CALL ConvertSpc_VVDry_to_KgKgDry( & + State_Chm, State_Grid, & + theMapping, isAdjoint, RC ) + CALL ConvertSpc_KgKgDry_to_Kgm2( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CASE DEFAULT - CALL GC_Error( ErrMsg_noOut, RC, LOC ) + CALL GC_Error( errNoOut, RC, thisLoc ) + END SELECT !==================================================================== ! Convert from kg !==================================================================== - CASE ( 'kg' ) - SELECT CASE ( TRIM(OutUnit) ) - CASE ( 'kg/kg dry' ) - CALL ConvertSpc_Kg_to_KgKgDry( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CASE ( 'kg/kg total' ) - CALL ConvertSpc_Kg_to_KgKgDry( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CALL ConvertSpc_KgKgDry_to_KgKgTotal( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CASE ( 'v/v dry' ) - CALL ConvertSpc_Kg_to_VVDry( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CASE ( 'molec/cm3' ) - CALL ConvertSpc_Kg_to_MND( State_Chm, State_Grid, & - State_Met, IS_ADJOINT, RC ) + CASE ( KG_SPECIES ) + + SELECT CASE ( new_units ) + + CASE ( KG_SPECIES_PER_KG_DRY_AIR ) + CALL ConvertSpc_Kg_to_KgKgDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( KG_SPECIES_PER_KG_TOTAL_AIR ) + CALL ConvertSpc_Kg_to_KgKgDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CALL ConvertSpc_KgKgDry_to_KgKgTotal( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( MOLES_SPECIES_PER_MOLES_DRY_AIR ) + CALL ConvertSpc_Kg_to_VVDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( MOLECULES_SPECIES_PER_CM3 ) + CALL ConvertSpc_Kg_to_MND( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CASE DEFAULT - CALL GC_Error( ErrMsg_noOut, RC, LOC ) + CALL GC_Error( errNoOut, RC, thisLoc ) + END SELECT !==================================================================== ! Convert from kg/m2 !==================================================================== - CASE ( 'kg/m2' ) - SELECT CASE ( TRIM(OutUnit) ) - CASE( 'kg/kg dry' ) - CALL ConvertSpc_Kgm2_to_KgKgDry( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CASE ( 'v/v dry' ) - CALL ConvertSpc_Kgm2_to_KgKgDry( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CALL ConvertSpc_KgKgDry_to_VVDry( State_Chm, State_Grid, & - IS_ADJOINT, RC ) + CASE ( KG_SPECIES_PER_M2 ) + + SELECT CASE ( new_units ) + + CASE( KG_SPECIES_PER_KG_DRY_AIR ) + CALL ConvertSpc_Kgm2_to_KgKgDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( MOLES_SPECIES_PER_MOLES_DRY_AIR ) + CALL ConvertSpc_Kgm2_to_KgKgDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CALL ConvertSpc_KgKgDry_to_VVDry( & + State_Chm, State_Grid, & + theMapping, isAdjoint, RC ) + CASE DEFAULT - CALL GC_Error( ErrMsg_noOut, RC, LOC ) + CALL GC_Error( errNoOut, RC, thisLoc ) + END SELECT !==================================================================== ! Convert from molecular number density (MND) !==================================================================== - CASE ( 'molec/cm3' ) - SELECT CASE ( TRIM(OutUnit) ) - CASE ( 'kg' ) - CALL ConvertSpc_MND_to_Kg( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) - CASE ( 'kg/kg dry' ) - CALL ConvertSpc_MND_to_KgKgDry( State_Chm, State_Grid, & - State_Met, & - IS_ADJOINT, RC ) + CASE ( MOLECULES_SPECIES_PER_CM3 ) + + SELECT CASE ( new_units ) + + CASE ( KG_SPECIES ) + CALL ConvertSpc_MND_to_Kg( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( KG_SPECIES_PER_KG_DRY_AIR ) + CALL ConvertSpc_MND_to_KgKgDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + + CASE ( KG_SPECIES_PER_KG_TOTAL_AIR ) + CALL ConvertSpc_MND_to_KgKgDry( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CALL ConvertSpc_KgKgDry_to_KgKgTotal( & + State_Chm, State_Grid, State_Met, & + theMapping, isAdjoint, RC ) + CASE DEFAULT - CALL GC_Error( ErrMsg_noOut, RC, LOC ) + CALL GC_Error( errNoOut, RC, thisLoc ) + END SELECT ! Error if input units not found CASE DEFAULT - CALL GC_Error( ErrMsg_noIn, RC, LOC ) + CALL GC_Error( errNoIn, RC, thisLoc ) END SELECT + !======================================================================== + ! Cleanup and quit + !======================================================================== + + ! Return the previous units (if necessary) + IF ( PRESENT( previous_units ) ) previous_units = current_units + + ! Free pointer + theMapping => NULL() + ! Error if problem within called conversion routine IF ( RC /= GC_SUCCESS ) THEN - CALL GC_Error( ErrMsg_RC, RC, LOC ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN ENDIF IF ( Input_Opt%useTimers ) THEN @@ -387,29 +518,29 @@ END SUBROUTINE Convert_Spc_Units !\\ ! !INTERFACE: ! - SUBROUTINE Print_Global_Species_Kg( I, J, L, Spc, & - Input_Opt, State_Chm, & - State_Grid, State_Met, & - LOC, RC ) + SUBROUTINE Print_Global_Species_Kg( I, J, L, & + Spc, Input_Opt, State_Chm, & + State_Grid, State_Met, thisLoc, & + RC ) ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: I ! Grid cell lat index - INTEGER, INTENT(IN) :: J ! Grid cell lon index - INTEGER, INTENT(IN) :: L ! Grid cell lev index - CHARACTER(LEN=*), INTENT(IN) :: Spc ! Species abbrev string - CHARACTER(LEN=*), INTENT(IN) :: LOC ! Call location string - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(GrdState), INTENT(IN) :: State_Grid! Grid State object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object + INTEGER, INTENT(IN) :: I ! Grid cell lat index + INTEGER, INTENT(IN) :: J ! Grid cell lon index + INTEGER, INTENT(IN) :: L ! Grid cell lev index + CHARACTER(LEN=*), INTENT(IN) :: Spc ! Species abbrev string + CHARACTER(LEN=*), INTENT(IN) :: thisLoc ! Call location string + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object ! ! !OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC ! Success or failure? + INTEGER, INTENT(OUT) :: RC ! Success or failure? ! ! !REMARKS: ! This routine is for debugging purposes to helptrace where species @@ -424,43 +555,61 @@ SUBROUTINE Print_Global_Species_Kg( I, J, L, Spc, & ! ! !LOCAL VARIABLES: ! + ! Scalars INTEGER :: N + INTEGER :: previous_units REAL(fp) :: SpcTotal + + ! Arrays + INTEGER, TARGET :: mapping(1) + + ! Pointers + INTEGER, POINTER :: theMapping(:) + + ! Strings CHARACTER(LEN=12) :: SpcName - CHARACTER(LEN=63) :: OrigUnit - CHARACTER(LEN=255) :: ErrorMsg, ThisLoc + CHARACTER(LEN=255) :: errMsg, errLoc - !================================================================ + !======================================================================== ! Print_Global_Species_Kg begins here! - !================================================================ + !======================================================================== + + RC = GC_SUCCESS + errMsg = '' + errLoc = & + ' -> at Print_Global_Species_Kg (in GeosUtil/unitconv_mod.F90)' - RC = GC_SUCCESS - ErrorMsg = '' - ThisLoc = ' -> at Print_Global_Species_Kg (in module ' // & - 'GeosUtil/unitconv_mod.F90)' + ! Get species index + N = Ind_(spc) - !PRINT *, TRIM(LOC), ', 1,', State_Chm%Species(N)%Conc(I,J,L) + ! Create a pointer for the mapping indices + mapping(1) = N + theMapping => mapping ! Convert species conc units to kg - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = theMapping, & + new_units = KG_SPECIES, & + previous_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN - ErrorMsg = 'Unit conversion error!' - CALL GC_Error( ErrorMsg, RC, ThisLoc ) + errMsg = 'Unit conversion error!' + CALL GC_Error( errMsg, RC, errLoc ) RETURN ENDIF ! Echo info IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 100 ) TRIM( LOC ) + WRITE( 6, 100 ) TRIM( thisLoc ) ENDIF 100 FORMAT( /, '%%%%% PRINT_GLOBAL_SPECIES_KG at ', a ) - ! Get species index - N = Ind_(spc) - ! Compute global sum SpcTotal = SUM( State_Chm%Species(N)%Conc(:,:,:) ) @@ -480,16 +629,23 @@ SUBROUTINE Print_Global_Species_Kg( I, J, L, Spc, & 115 FORMAT( 'Grid cell [kg] for ', a8, ' = ', es24.16, ', I,J,L= ',3I4 ) 120 FORMAT( / ) - ! Convert species concentration back to original unit - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + ! Convert back to original units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = theMapping, & + new_units = previous_units, & + RC = RC ) - !PRINT *, TRIM(LOC), ', 2,', State_Chm%Species(N)%Conc(I,J,L) + ! Free pointer + theMapping => NULL() ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN - ErrorMsg = 'Unit conversion error!' - CALL GC_Error( ErrorMsg, RC, ThisLoc ) + errMsg = 'Unit conversion error!' + CALL GC_Error( errMsg, RC, errLoc ) RETURN ENDIF @@ -509,12 +665,14 @@ END SUBROUTINE Print_Global_Species_Kg !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_KgKgDry_to_VVDry( State_Chm, State_Grid, Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_KgKgDry_to_VVDry( State_Chm, State_Grid, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -534,30 +692,24 @@ SUBROUTINE ConvertSpc_KgKgDry_to_VVDry( State_Chm, State_Grid, Is_Adjoint, RC ) ! !LOCAL VARIABLES: ! ! Scalars - INTEGER :: I, J, L, N - REAL(fp) :: MW_g, MwRatio + INTEGER :: N, S + REAL(fp) :: const ! Strings - CHARACTER(LEN=255) :: MSG, LOC + CHARACTER(LEN=255) :: errMsg, thisLoc - !==================================================================== + !======================================================================== ! ConvertSpc_KgKgDry_to_VVDry begins here! - !==================================================================== + !======================================================================== - ! Assume success - RC = GC_SUCCESS + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_KgKgDry_to_VVDry (in GeosUtil/unitconv_mod.F90)' - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_KgKgDry_to_VVDry in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -580,39 +732,37 @@ SUBROUTINE ConvertSpc_KgKgDry_to_VVDry( State_Chm, State_Grid, Is_Adjoint, RC ) ! ! = Species(I,J,L,N) [kg/kg] * ( AIRMW / MW_G(N) ) ! - !==================================================================== + !======================================================================== - ! Loop over all species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, MW_g, MwRatio ) - DO N = 1, State_Chm%nSpecies + ! Loop over species + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N, const ) + DO S = 1, SIZE( mapping ) - ! Molecular weight for the species [g] - MW_g = State_Chm%SpcData(N)%Info%MW_g + ! Get the modelId from the mapping array + N = mapping(S) - ! Compute the ratio (MW air / MW species) outside of the IJL loop - MwRatio = ( AIRMW / MW_g ) + ! Compute this constant term only once + const = AIRMW / State_Chm%SpcData(N)%Info%MW_g + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * const - ! Loop over grid boxes and do unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) * MwRatio #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) * MwRatio + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) * const + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = MOLES_SPECIES_PER_MOLES_DRY_AIR + ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'v/v dry' - END SUBROUTINE ConvertSpc_KgKgDry_to_VVDry !EOC !------------------------------------------------------------------------------ @@ -629,12 +779,14 @@ END SUBROUTINE ConvertSpc_KgKgDry_to_VVDry !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_VVDry_to_KgKgDry( State_Chm, State_Grid, Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_VVDry_to_KgKgDry( State_Chm, State_Grid, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -653,28 +805,24 @@ SUBROUTINE ConvertSpc_VVDry_to_KgKgDry( State_Chm, State_Grid, Is_Adjoint, RC ) ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - REAL(fp) :: MW_g - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S + REAL(fp) :: const - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc + + !======================================================================== ! ConvertSpc_VVDry_to_KgKgDry begins here! - !================================================================= - - ! Assume success - RC = GC_SUCCESS - - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'v/v dry' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_VVDry_to_KgKgDry in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + !======================================================================== - !============================================================== + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_VVDry_to_KgKgDry (in GeosUtil/unitconv_mod.F90)' + + !======================================================================== ! ! The conversion is as follows: ! @@ -697,38 +845,37 @@ SUBROUTINE ConvertSpc_VVDry_to_KgKgDry( State_Chm, State_Grid, Is_Adjoint, RC ) ! ! = Species(I,J,L,N) [kg/kg] / ( AIRMW / MW_G(N) ) ! - !============================================================== + !======================================================================== ! Loop over all species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, MW_g ) - DO N = 1, State_Chm%nSpecies + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N, const ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) + + ! Compute this constant only once + const = AIRMW / State_Chm%SpcData(N)%Info%MW_g + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc / const - ! Molecular weight for the species [g] - MW_g = State_Chm%SpcData(N)%Info%MW_g - - ! Loop over grid boxes and do the unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) / ( AIRMW / MW_G ) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - / ( AIRMW / MW_G ) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) / const + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES_PER_KG_DRY_AIR ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'kg/kg dry' - END SUBROUTINE ConvertSpc_VVDry_to_KgKgDry !EOC !------------------------------------------------------------------------------ @@ -745,14 +892,16 @@ END SUBROUTINE ConvertSpc_VVDry_to_KgKgDry !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_KgKgDry_to_KgKgTotal( State_Chm, State_Grid, & - State_Met, Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_KgKgDry_to_KgKgTotal( State_Chm, State_Grid, & + State_Met, mapping, & + isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -771,59 +920,55 @@ SUBROUTINE ConvertSpc_KgKgDry_to_KgKgTotal( State_Chm, State_Grid, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S - !==================================================================== - ! ConvertSpc_KgKgDry_to_KgKgTotal begins here! - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc - ! Assume success - RC = GC_SUCCESS + !======================================================================== + ! ConvertSpc_KgKgDry_to_KgKgTotal begins here! + !======================================================================== - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_KgKgDry_to_KgKgTotal in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_KgKgDry_to_KgKgTotal (in GeosUtil/unitconv_mod.F90)' - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! - !==================================================================== + !======================================================================== ! Loop over all species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N ) - DO N = 1, State_Chm%nSpecies + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * & + ( 1.0_fp - ( State_Met%SPHU * 1e-3_fp ) ) - ! Loop over grid boxes and do unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * ( 1e0_fp - ( State_Met%SPHU(I,J,L) * 1e-3_fp ) ) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * ( 1e0_fp - ( State_Met%SPHU(I,J,L) * 1e-3_fp ) ) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) * & + ( 1.0_fp - ( State_Met%SPHU * 1e-3_fp ) ) + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES_PER_KG_TOTAL_AIR ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'kg/kg total' - END SUBROUTINE ConvertSpc_KgKgDry_to_KgKgTotal !EOC !------------------------------------------------------------------------------ @@ -840,14 +985,16 @@ END SUBROUTINE ConvertSpc_KgKgDry_to_KgKgTotal !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_KgKgTotal_to_KgKgDry( State_Chm, State_Grid, & - State_Met, Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_KgKgTotal_to_KgKgDry( State_Chm, State_Grid, & + State_Met, mapping, & + isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -866,61 +1013,56 @@ SUBROUTINE ConvertSpc_KgKgTotal_to_KgKgDry( State_Chm, State_Grid, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc + + !======================================================================== ! ConvertSpc_KgKgTotal_to_KgKgDry begins here! - !================================================================= - - ! Assume success - RC = GC_SUCCESS - - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg total' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_KgKgTotal_to_KgKgDry in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + !======================================================================== + + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_KgKgTotal_to_KgKgDry (in GeosUtil/unitconv_mod.F90)' - !============================================================== + !======================================================================== ! ! The conversion is as follows: ! - ! - !============================================================== + !======================================================================== ! Loop over all species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N ) - DO N = 1, State_Chm%nSpecies + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc / & + ( 1e0_fp - ( State_Met%SPHU * 1e-3_fp ) ) - ! Loop over grid boxes and do the unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - / ( 1e0_fp - ( State_Met%SPHU(I,J,L) * 1e-3_fp ) ) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - / ( 1e0_fp - ( State_Met%SPHU(I,J,L) * 1e-3_fp ) ) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) / & + ( 1e0_fp - ( State_Met%SPHU * 1e-3_fp ) ) + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES_PER_KG_DRY_AIR ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'kg/kg dry' - END SUBROUTINE ConvertSpc_KgKgTotal_to_KgKgDry !EOC !------------------------------------------------------------------------------ @@ -937,14 +1079,15 @@ END SUBROUTINE ConvertSpc_KgKgTotal_to_KgKgDry !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_KgKgDry_to_Kgm2( State_Chm, State_Grid, & - State_Met, Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_KgKgDry_to_Kgm2( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -952,7 +1095,7 @@ SUBROUTINE ConvertSpc_KgKgDry_to_Kgm2( State_Chm, State_Grid, & ! ! !OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC ! Success or failure? + INTEGER, INTENT(OUT) :: RC ! Success or failure? ! ! !REVISION HISTORY: ! 21 Jul 2016 - E. Lundgren - Initial version @@ -963,27 +1106,23 @@ SUBROUTINE ConvertSpc_KgKgDry_to_Kgm2( State_Chm, State_Grid, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S - !==================================================================== - ! ConvertSpc_KgKgDry_to_Kgm2 begins here! - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc - ! Assume success - RC = GC_SUCCESS + !======================================================================== + ! ConvertSpc_KgKgDry_to_Kgm2 begins here! + !======================================================================== - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_KgKgDry_to_Kgm2 in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_KgKgDry_to_Kgm2 (in GeosUtil/unitconv_mod.F90)' - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -1000,32 +1139,32 @@ SUBROUTINE ConvertSpc_KgKgDry_to_Kgm2( State_Chm, State_Grid, & ! g = acceleration due to gravity ! kg dry air / kg total air = 1 - specific humidity ! - !==================================================================== - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N ) - DO N = 1, State_Chm%nSpecies - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * ( g0_100 * State_Met%DELP_DRY(I,J,L) ) + !======================================================================== + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * ( g0_100 * State_Met%DELP_DRY ) + #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * ( g0_100 & - * State_Met%DELP_DRY(I,J,L) ) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) * ( g0_100 * State_Met%DELP_DRY ) + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES_PER_M2 + ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'kg/m2' - END SUBROUTINE ConvertSpc_KgKgDry_to_Kgm2 !EOC !------------------------------------------------------------------------------ @@ -1042,14 +1181,15 @@ END SUBROUTINE ConvertSpc_KgKgDry_to_Kgm2 !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_Kgm2_to_KgKgDry( State_Chm, State_Grid, & - State_Met, Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_Kgm2_to_KgKgDry( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1068,27 +1208,23 @@ SUBROUTINE ConvertSpc_Kgm2_to_KgKgDry( State_Chm, State_Grid, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S - !==================================================================== - ! ConvertSpc_Kgm2_to_KgKgDry begins here! - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc - ! Assume success - RC = GC_SUCCESS + !======================================================================== + ! ConvertSpc_Kgm2_to_KgKgDry begins here! + !======================================================================== - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/m2' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_Kgm2_to_KgKgDry in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_Kgm2_to_KgKgDry (in GeosUtil/unitconv_mod.F90)' - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -1105,35 +1241,33 @@ SUBROUTINE ConvertSpc_Kgm2_to_KgKgDry( State_Chm, State_Grid, & ! g = acceleration due to gravity ! kg dry air / kg total air = 1 - specific humidity ! - !==================================================================== + !======================================================================== + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc / ( g0_100 * State_Met%DELP_DRY ) - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N ) - DO N = 1, State_Chm%nSpecies - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * ( 1.0e+0_fp / ( g0_100 & - * State_Met%DELP_DRY(I,J,L) ) ) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * ( 1.0e+0_fp & - / ( g0_100 & - * State_Met%DELP_DRY(I,J,L) ) ) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) / ( g0_100 * State_Met%DELP_DRY ) + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES_PER_KG_DRY_AIR + ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'kg/kg dry' - END SUBROUTINE ConvertSpc_Kgm2_to_KgKgDry !EOC !------------------------------------------------------------------------------ @@ -1150,14 +1284,15 @@ END SUBROUTINE ConvertSpc_Kgm2_to_KgKgDry !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_KgKgDry_to_MND( State_Chm, State_Grid, State_Met, & - Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_KgKgDry_to_MND( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1176,28 +1311,24 @@ SUBROUTINE ConvertSpc_KgKgDry_to_MND( State_Chm, State_Grid, State_Met, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - REAL(fp) :: MW_kg - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S + REAL(fp) :: const, MW_kg - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc + + !======================================================================== ! ConvertSpc_KgKgDry_to_MND begins here! - !==================================================================== + !======================================================================== - ! Assume success - RC = GC_SUCCESS + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_KgKgDry_to_MND (in GeosUtil/unitconv_mod.F90)' - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_KgKgDry_to_MND in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF - - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -1223,42 +1354,40 @@ SUBROUTINE ConvertSpc_KgKgDry_to_MND( State_Chm, State_Grid, State_Met, & ! ! NOTES: ! (1) Use AD/AIRVOL instead of AIRDEN to preserve legacy method - !==================================================================== + !======================================================================== ! Loop over all species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, MW_kg ) - DO N = 1, State_Chm%nSpecies + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N, MW_kg, const ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) ! Molecular weight for the species [kg] MW_kg = State_Chm%SpcData(N)%Info%MW_g * 1.e-3_fp - ! Loop over grid boxes and do the unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * State_Met%AIRDEN(I,J,L) & - * ( AVO / MW_kg ) / 1e+6_fp + ! Compute this constant term once + const = ( AVO / MW_kg ) / 1.0e+6_fp + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * State_Met%AIRDEN * const + #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * State_Met%AIRDEN(I,J,L) & - * ( AVO / MW_kg ) & - / 1e+6_fp + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) * State_Met%AIRDEN * const + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = MOLECULES_SPECIES_PER_CM3 ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'molec/cm3' - END SUBROUTINE ConvertSpc_KgKgDry_to_MND !EOC !------------------------------------------------------------------------------ @@ -1275,14 +1404,15 @@ END SUBROUTINE ConvertSpc_KgKgDry_to_MND !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_MND_to_KgKgDry( State_Chm, State_Grid, State_Met, & - Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_MND_to_KgKgDry( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1301,26 +1431,22 @@ SUBROUTINE ConvertSpc_MND_to_KgKgDry( State_Chm, State_Grid, State_Met, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - REAL(fp) :: MW_kg - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S + REAL(fp) :: const, MW_kg - !==================================================================== - ! ConvertSpc_MND_to_KgKgDry begins here! - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc - ! Assume success - RC = GC_SUCCESS + !======================================================================== + ! ConvertSpc_MND_to_KgKgDry begins here! + !======================================================================== - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'molec/cm3' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_MND_to_KgKgDry in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_MND_to_KgKgDry (in GeosUtil/unitconv_mod.F90)' !==================================================================== ! @@ -1352,41 +1478,40 @@ SUBROUTINE ConvertSpc_MND_to_KgKgDry( State_Chm, State_Grid, State_Met, & ! avoid numerical noise differences ! (2) Use AD/AIRVOL instead of AIRDEN to preserve legacy method ! - !==================================================================== + !======================================================================== ! Loop over species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, MW_kg ) - DO N = 1, State_Chm%nSpecies + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N, MW_kg, const ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) ! Molecular weight for the species [kg] MW_kg = State_Chm%SpcData(N)%Info%MW_g * 1.e-3_fp - ! Loop over grid boxes and do the unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * 1e+6_fp / ( AVO / MW_kg ) & - / State_Met%AIRDEN(I,J,L) + ! Compute this constant term once + const = 1.0e+6_fp / ( AVO / MW_kg ) + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * const / State_Met%AIRDEN + #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * 1e+6_fp / ( AVO / MW_kg ) & - / State_Met%AIRDEN(I,J,L) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) * const / State_Met%AIRDEN + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES_PER_KG_DRY_AIR ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'kg/kg dry' - END SUBROUTINE ConvertSpc_MND_to_KgKgDry !EOC !------------------------------------------------------------------------------ @@ -1403,14 +1528,15 @@ END SUBROUTINE ConvertSpc_MND_to_KgKgDry !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_VVDry_to_Kg( State_Chm, State_Grid, State_Met, & - Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_VVDry_to_Kg( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1434,28 +1560,24 @@ SUBROUTINE ConvertSpc_VVDry_to_Kg( State_Chm, State_Grid, State_Met, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - REAL(fp) :: MW_g - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S + REAL(fp) :: const - !==================================================================== - ! ConvertSpc_VVDry_to_Kg begins here! - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc - ! Assume success - RC = GC_SUCCESS + !======================================================================== + ! ConvertSpc_VVDry_to_Kg begins here! + !======================================================================== - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'v/v dry' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_VVDry_to_Kg in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_VVDry_to_Kg (in GeosUtil/unitconv_mod.F90)' - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -1479,41 +1601,37 @@ SUBROUTINE ConvertSpc_VVDry_to_Kg( State_Chm, State_Grid, State_Met, & ! ! = SPECIES(I,J,L,N) [v/v] * AD(I,J,L) / ( AIRMW / MW_G(N) ) ! - !==================================================================== + !======================================================================== ! Loop over all species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, MW_g ) - DO N = 1, State_Chm%nSpecies + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N, const ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) + + ! Compute this constant term only once + const = AIRMW / State_Chm%SpcData(N)%Info%MW_g + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * State_Met%AD / const - ! Molecular weight for the species [g] - MW_g = State_Chm%SpcData(N)%Info%MW_g - - ! Loop over grid boxes and do the unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * State_Met%AD(I,J,L) & - / ( AIRMW / MW_g ) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * State_Met%AD(I,J,L) & - / ( AIRMW / MW_g ) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) * State_Met%AD / const + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'kg' - END SUBROUTINE ConvertSpc_VVDry_to_Kg !EOC !------------------------------------------------------------------------------ @@ -1530,14 +1648,15 @@ END SUBROUTINE ConvertSpc_VVDry_to_Kg !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_Kg_to_VVDry( State_Chm, State_Grid, State_Met, & - Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_Kg_to_VVDry( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1560,28 +1679,24 @@ SUBROUTINE ConvertSpc_Kg_to_VVDry( State_Chm, State_Grid, State_Met, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - REAL(fp) :: MW_g - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S + REAL(fp) :: const - !==================================================================== - ! ConvertSpc_Kg_to_VVDry begins here! - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc - ! Assume success - RC = GC_SUCCESS + !======================================================================== + ! ConvertSpc_Kg_to_VVDry begins here! + !======================================================================== - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_Kg_to_VVDry in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_Kg_to_VVDry (in GeosUtil/unitconv_mod.F90)' - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -1605,41 +1720,37 @@ SUBROUTINE ConvertSpc_Kg_to_VVDry( State_Chm, State_Grid, State_Met, & ! ! = Species(I,J,L,N) [kg] * ( AIRMW / MW_G(N) ) / AD(I,J,L) ! - !==================================================================== + !======================================================================== ! Loop over all species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, MW_g ) - DO N = 1, State_Chm%nSpecies + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N, const ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) + + ! Compute this constant only once + const = AIRMW / State_Chm%SpcData(N)%Info%MW_g + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * const / State_Met%AD - ! Molecular weight for the species [g] - MW_g = State_Chm%SpcData(N)%Info%MW_g - - ! Loop over grid boxes and do the unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * ( AIRMW / MW_g ) & - / State_Met%AD(I,J,L) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * ( AIRMW / MW_g ) & - / State_Met%AD(I,J,L) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) * const / State_Met%AD + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = MOLES_SPECIES_PER_MOLES_DRY_AIR ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'v/v dry' - END SUBROUTINE ConvertSpc_Kg_to_VVDry !EOC !------------------------------------------------------------------------------ @@ -1656,18 +1767,18 @@ END SUBROUTINE ConvertSpc_Kg_to_VVDry !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_KgKgDry_to_Kg( State_Chm, State_Grid, State_Met, & - Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_KgKgDry_to_Kg( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! - ! Object containing species concentration TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object ! ! !OUTPUT PARAMETERS: @@ -1683,27 +1794,23 @@ SUBROUTINE ConvertSpc_KgKgDry_to_Kg( State_Chm, State_Grid, State_Met, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S - !==================================================================== - ! ConvertSpc_KgKgDry_to_Kg begins here! - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc - ! Assume success - RC = GC_SUCCESS + !======================================================================== + ! ConvertSpc_KgKgDry_to_Kg begins here! + !======================================================================== - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg/kg dry' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_KgKgDry_to_Kg in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_KgKgDry_to_Kg (in GeosUtil/unitconv_mod.F90)' - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -1725,32 +1832,33 @@ SUBROUTINE ConvertSpc_KgKgDry_to_Kg( State_Chm, State_Grid, State_Met, & ! ! = Species(I,J,L,N) [kg/kg] * AD(I,J,L) ! - !==================================================================== + !======================================================================== + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * State_Met%AD - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N ) - DO N = 1, State_Chm%nSpecies - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * State_Met%AD(I,J,L) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * State_Met%AD(I,J,L) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) * State_Met%AD + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES + ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'kg' - END SUBROUTINE ConvertSpc_KgKgDry_to_Kg !EOC !------------------------------------------------------------------------------ @@ -1767,14 +1875,15 @@ END SUBROUTINE ConvertSpc_KgKgDry_to_Kg !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_Kg_to_KgKgDry( State_Chm, State_Grid, State_Met, & - Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_Kg_to_KgKgDry( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1793,27 +1902,23 @@ SUBROUTINE ConvertSpc_Kg_to_KgKgDry( State_Chm, State_Grid, State_Met, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, N - CHARACTER(LEN=255) :: MSG, LOC + ! Scalars + INTEGER :: N, S - !==================================================================== - ! ConvertSpc_Kg_to_KgKgDry begins here! - !==================================================================== + ! Strings + CHARACTER(LEN=255) :: errMsg, thisLoc - ! Assume success - RC = GC_SUCCESS + !======================================================================== + ! ConvertSpc_Kg_to_KgKgDry begins here! + !======================================================================== - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_Kg_to_KgKgDry in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_Kg_to_KgKgDry (in GeosUtil/unitconv_mod.F90)' - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -1835,32 +1940,33 @@ SUBROUTINE ConvertSpc_Kg_to_KgKgDry( State_Chm, State_Grid, State_Met, & ! ! = Species(I,J,L,N) [kg] / AD(I,J,L) ! - !==================================================================== + !======================================================================== + + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc / State_Met%AD - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N ) - DO N = 1, State_Chm%nSpecies - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - / State_Met%AD(I,J,L) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - / State_Met%AD(I,J,L) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) / State_Met%AD + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES_PER_KG_DRY_AIR + ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_units = 'kg/kg dry' - END SUBROUTINE ConvertSpc_Kg_to_KgKgDry !EOC !------------------------------------------------------------------------------ @@ -1877,14 +1983,15 @@ END SUBROUTINE ConvertSpc_Kg_to_KgKgDry !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_MND_to_Kg( State_Chm, State_Grid, State_Met, & - Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_MND_to_Kg( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1904,30 +2011,23 @@ SUBROUTINE ConvertSpc_MND_to_Kg( State_Chm, State_Grid, State_Met, & ! !LOCAL VARIABLES: ! ! Scalars - INTEGER :: I, J, L, N - REAL(fp) :: MW_kg + INTEGER :: N, S + REAL(fp) :: const, MW_kg ! Strings - CHARACTER(LEN=255) :: MSG, LOC + CHARACTER(LEN=255) :: errMsg, thisLoc - !==================================================================== + !======================================================================== ! ConvertSpc_MND_to_Kg begins here! - !==================================================================== + !======================================================================== - ! Assume success - RC = GC_SUCCESS + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_MND_to_Kg (in GeosUtil/unitconv_mod.F90)' - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'molec/cm3' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_MND_to_KgKgDry in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF - - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -1950,48 +2050,47 @@ SUBROUTINE ConvertSpc_MND_to_Kg( State_Chm, State_Grid, State_Met, & ! ! Species(I,J,L,N) [kg] ! - ! = Species(I,J,L,N) [molecules/cm3] * AIRVOL(I,J,L) * AVO / MW_KG / 1e6 + ! = Species(I,J,L,N) [molec/cm3] * AIRVOL(I,J,L) / AVO * MW_KG * 1e6 + ! = Species(I,J,L,N) [molec/cm3] * [1e6 / (AVO / MW_KG)] * AIRVOL(I,J,L) ! ! NOTES: ! (1) Use exact reverse of the species mass -> # density conversion to ! avoid numerical noise differences ! - !==================================================================== + !======================================================================== ! Loop over all species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, MW_kg ) - DO N = 1, State_Chm%nSpecies + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N, MW_kg, const ) + DO S = 1, SIZE( mapping ) + + ! Get the modelId from the mapping array + N = mapping(S) ! Molecular weight for the species [g] MW_kg = State_Chm%SpcData(N)%Info%MW_g * 1.e-3_fp - ! Loop over grid boxes and do the unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - / ( AVO / MW_kg ) & - * ( State_Met%AIRVOL(I,J,L) * 1e+6_fp ) + ! Define this constant term only once + const = 1.0e6_fp / ( AVO / MW_kg ) + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * const * State_Met%AIRVOL + #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - / ( AVO / MW_kg ) & - * ( State_Met%AIRVOL(I,J,L) & - * 1e+6_fp ) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) const * State_Met%AIRVOL + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'kg' - END SUBROUTINE ConvertSpc_MND_to_Kg !EOC !------------------------------------------------------------------------------ @@ -2008,14 +2107,15 @@ END SUBROUTINE ConvertSpc_MND_to_Kg !\\ ! !INTERFACE: ! - SUBROUTINE ConvertSpc_Kg_to_MND( State_Chm, State_Grid, State_Met, & - Is_Adjoint, RC ) + SUBROUTINE ConvertSpc_Kg_to_MND( State_Chm, State_Grid, State_Met, & + mapping, isAdjoint, RC ) ! ! !INPUT PARAMETERS: ! TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: mapping(:) ! Species map to modelId + LOGICAL, INTENT(IN) :: isAdjoint ! Is this reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -2035,30 +2135,23 @@ SUBROUTINE ConvertSpc_Kg_to_MND( State_Chm, State_Grid, State_Met, & ! !LOCAL VARIABLES: ! ! Scalars - INTEGER :: I, J, L, N - REAL(fp) :: MW_kg + INTEGER :: N, S + REAL(fp) :: const, MW_kg ! Strings - CHARACTER(LEN=255) :: MSG, LOC + CHARACTER(LEN=255) :: errMsg, thisLoc - !==================================================================== + !======================================================================== ! ConvertSpc_Kg_to_MND begins here! - !==================================================================== + !======================================================================== - ! Assume success - RC = GC_SUCCESS + ! Initialize + RC = GC_SUCCESS + errMsg = '' + thisLoc = & + ' -> at ConvertSpc_Kg_to_MND (in GeosUtil/unitconv_mod.F90)' - ! Verify correct initial units. If current units are unexpected, - ! write error message and location to log, then pass failed RC - ! to calling routine. - IF ( TRIM( State_Chm%Spc_Units ) /= 'kg' ) THEN - MSG = 'Incorrect initial units: ' // TRIM( State_Chm%Spc_Units ) - LOC = 'Routine ConvertSpc_KgKgDry_to_MND in unitconv_mod.F90' - CALL GC_Error( MSG, RC, LOC ) - RETURN - ENDIF - - !==================================================================== + !======================================================================== ! ! The conversion is as follows: ! @@ -2081,43 +2174,39 @@ SUBROUTINE ConvertSpc_Kg_to_MND( State_Chm, State_Grid, State_Met, & ! Spcies(I,J,L,N) [molecules/cm3] ! ! = Species(I,J,L,N) [kg] / AIRVOL(I,J,L) * AVO / MW_KG / 1e6 + ! = Species(I,J,L,N) [kg] * [ AVO / MW_KG / 1e6 ] / AIRVOL(I,J,L) ! - !==================================================================== + !======================================================================== ! Loop over all species - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( I, J, L, N, MW_kg ) + !$OMP PARALLEL DO & + !$OMP DEFAULT( SHARED )& + !$OMP PRIVATE( S, N, MW_kg, const ) DO N = 1, State_Chm%nSpecies ! Molecular weight for the species [kg] MW_kg = State_Chm%SpcData(N)%Info%MW_g * 1.e-3_fp - ! Loop over grid boxes and do the unit conversion - DO L = 1, State_Grid%NZ - DO J = 1, State_Grid%NY - DO I = 1, State_Grid%NX - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * ( AVO / MW_kg ) & - / ( State_Met%AIRVOL(I,J,L) * 1e+6_fp ) + ! Compute this constant term only once + const = ( AVO / MW_kg ) / 1.0e6_fp + + ! Convert species concentration units + State_Chm%Species(N)%Conc = & + State_Chm%Species(N)%Conc * const / State_Met%AIRVOL + #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * ( AVO / MW_kg ) & - / ( State_Met%AIRVOL(I,J,L) & - * 1e+6_fp ) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(:,:,:,N) = & + State_Chm%SpeciesAdj(:,:,:,N) * const / State_Met%AIRVOL + ENDIF #endif - ENDDO - ENDDO - ENDDO + + ! Update units metadata + State_Chm%Species(N)%Units = MOLECULES_SPECIES_PER_CM3 ENDDO !$OMP END PARALLEL DO - ! Update species units - State_Chm%Spc_Units = 'molec/cm3' - END SUBROUTINE ConvertSpc_Kg_to_MND !EOC !------------------------------------------------------------------------------ @@ -2135,22 +2224,18 @@ END SUBROUTINE ConvertSpc_Kg_to_MND !\\ ! !INTERFACE: ! - SUBROUTINE ConvertBox_KgKgDry_to_Kg( I, J, L, State_Met, State_Chm, Is_Adjoint, RC ) + SUBROUTINE ConvertBox_KgKgDry_to_Kg( I, J, L, & + State_Met, State_Chm, isAdjoint ) ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: I, J, L ! Grid box indexes - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: I, J, L ! Grid box indices + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object + LOGICAL, INTENT(IN) :: isAdjoint ! Reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! - ! Object containing species concentration - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object ! ! !REMARKS: ! This routine is temporary and is only used for local conversion of species @@ -2168,32 +2253,29 @@ SUBROUTINE ConvertBox_KgKgDry_to_Kg( I, J, L, State_Met, State_Chm, Is_Adjoint, !------------------------------------------------------------------------------ !BOC ! -! !LOCAL VARIABLES: +! LOCAL VARIABLES: ! - INTEGER :: N - CHARACTER(LEN=255) :: MSG, LOC + INTEGER :: N - !==================================================================== + !======================================================================== ! ConvertBox_KgKgDry_to_Kg begins here! - !==================================================================== + !======================================================================== + DO N = 1, State_Chm%nSpecies - ! Assume success - RC = GC_SUCCESS + ! Convert species concentration units + State_Chm%Species(N)%Conc(I,J,L) = & + State_Chm%Species(N)%Conc(I,J,L) * State_Met%AD(I,J,L) - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( N ) - DO N = 1, State_Chm%nSpecies - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * State_Met%AD(I,J,L) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * State_Met%AD(I,J,L) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(I,J,L,N) = & + State_Chm%SpeciesAdj(I,J,L,N) * State_Met%AD(I,J,L) + ENDIF #endif + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES ENDDO - !$OMP END PARALLEL DO END SUBROUTINE ConvertBox_KgKgDry_to_Kg !EOC @@ -2213,21 +2295,18 @@ END SUBROUTINE ConvertBox_KgKgDry_to_Kg !\\ ! !INTERFACE: ! - SUBROUTINE ConvertBox_Kg_to_KgKgDry( I, J, L, State_Met, State_Chm, Is_Adjoint, RC ) + SUBROUTINE ConvertBox_Kg_to_KgKgDry( I, J, L, & + State_Met, State_Chm, isAdjoint ) ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: I, J, L ! Grid box indexes - TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: I, J, L ! Grid box indices + TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology state object + LOGICAL, INTENT(IN) :: isAdjoint ! Reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object ! ! !REMARKS: ! This routine is temporary and is only used for local conversion of species @@ -2245,32 +2324,29 @@ SUBROUTINE ConvertBox_Kg_to_KgKgDry( I, J, L, State_Met, State_Chm, Is_Adjoint, !------------------------------------------------------------------------------ !BOC ! -! !LOCAL VARIABLES: +! LOCAL VARIABLES: ! INTEGER :: N - CHARACTER(LEN=255) :: MSG, LOC - !==================================================================== - ! ConvertSpc_Kg_to_KgKgDry begins here! - !==================================================================== + !======================================================================== + ! ConvertBox_Kg_to_KgKgDry begins here! + !======================================================================== + DO N = 1, State_Chm%nSpecies - ! Assume success - RC = GC_SUCCESS + ! Convert species concentration units + State_Chm%Species(N)%Conc(I,J,L) = & + State_Chm%Species(N)%Conc(I,J,L) / State_Met%AD(I,J,L) - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( N ) - DO N = 1, State_Chm%nSpecies - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - / State_Met%AD(I,J,L) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - / State_Met%AD(I,J,L) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(I,J,L,N) = & + State_Chm%SpeciesAdj(I,J,L,N) / State_Met%AD(I,J,L) + ENDIF #endif + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES_PER_KG_DRY_AIR ENDDO - !$OMP END PARALLEL DO END SUBROUTINE ConvertBox_Kg_to_KgKgDry !EOC @@ -2288,21 +2364,18 @@ END SUBROUTINE ConvertBox_Kg_to_KgKgDry !\\ ! !INTERFACE: ! - SUBROUTINE ConvertBox_Kgm2_to_Kg( I, J, L, State_Chm, State_Grid, Is_Adjoint, RC ) + SUBROUTINE ConvertBox_Kgm2_to_Kg( I, J, L, & + State_Chm, State_Grid, isAdjoint ) ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: I, J, L ! Grid box indexes - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: I, J, L ! Grid box indices + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + LOGICAL, INTENT(IN) :: isAdjoint ! Reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object ! ! !REMARKS: ! This routine is temporary and is only used for local conversion of species @@ -2321,30 +2394,27 @@ SUBROUTINE ConvertBox_Kgm2_to_Kg( I, J, L, State_Chm, State_Grid, Is_Adjoint, RC ! ! !LOCAL VARIABLES: ! - INTEGER :: N - CHARACTER(LEN=255) :: MSG, LOC + INTEGER :: N - !==================================================================== + !======================================================================== ! ConvertBox_Kgm2_to_Kg begins here! - !==================================================================== + !======================================================================== + DO N = 1, State_Chm%nSpecies - ! Assume success - RC = GC_SUCCESS + ! Convert species concentration units + State_Chm%Species(N)%Conc(I,J,L) = & + State_Chm%Species(N)%Conc(I,J,L) * State_Grid%Area_M2(I,J) - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( N ) - DO N = 1, State_Chm%nSpecies - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - * State_Grid%Area_M2(I,J) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - * State_Grid%Area_M2(I,J) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(I,J,L,N) = & + State_Chm%SpeciesAdj(I,J,L,N) * State_Grid%Area_M2(I,J) + ENDIF #endif + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES ENDDO - !$OMP END PARALLEL DO END SUBROUTINE ConvertBox_Kgm2_to_Kg !EOC @@ -2362,21 +2432,18 @@ END SUBROUTINE ConvertBox_Kgm2_to_Kg !\\ ! !INTERFACE: ! - SUBROUTINE ConvertBox_Kg_to_Kgm2( I, J, L, State_Chm, State_Grid, Is_Adjoint, RC ) + SUBROUTINE ConvertBox_Kg_to_Kgm2( I, J, L, & + State_Chm, State_Grid, isAdjoint ) ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: I, J, L ! Grid box indexes - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object - LOGICAL, INTENT(IN) :: Is_Adjoint ! Is this the reverse integration? + INTEGER, INTENT(IN) :: I, J, L ! Grid box indexes + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object + LOGICAL, INTENT(IN) :: isAdjoint ! Reverse integration? ! ! !INPUT/OUTPUT PARAMETERS: ! - TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry state object ! ! !REMARKS: ! This routine is temporary and is only used for local conversion of species @@ -2392,34 +2459,149 @@ SUBROUTINE ConvertBox_Kg_to_Kgm2( I, J, L, State_Chm, State_Grid, Is_Adjoint, RC !EOP !------------------------------------------------------------------------------ !BOC +!BOC ! ! !LOCAL VARIABLES: ! - INTEGER :: N - CHARACTER(LEN=255) :: MSG, LOC + INTEGER :: N - !==================================================================== + !======================================================================== ! ConvertBox_Kg_to_Kgm2 begins here! - !==================================================================== + !======================================================================== + DO N = 1, State_Chm%nSpecies - ! Assume success - RC = GC_SUCCESS + ! Convert species concentration units + State_Chm%Species(N)%Conc(I,J,L) = & + State_Chm%Species(N)%Conc(I,J,L) / State_Grid%Area_M2(I,J) - !$OMP PARALLEL DO & - !$OMP DEFAULT( SHARED ) & - !$OMP PRIVATE( N ) - DO N = 1, State_Chm%nSpecies - State_Chm%Species(N)%Conc(I,J,L) = & - State_Chm%Species(N)%Conc(I,J,L) & - / State_Grid%Area_M2(I,J) #ifdef ADJOINT - if (Is_Adjoint) & - State_Chm%SpeciesAdj(I,J,L,N) = State_Chm%SpeciesAdj(I,J,L,N) & - / State_Grid%Area_M2(I,J) + IF ( isAdjoint ) THEN + State_Chm%SpeciesAdj(I,J,L,N) = & + State_Chm%SpeciesAdj(I,J,L,N) / State_Grid%Area_M2(I,J) + ENDIF #endif + + ! Update units metadata + State_Chm%Species(N)%Units = KG_SPECIES_PER_M2 ENDDO - !$OMP END PARALLEL DO END SUBROUTINE ConvertBox_Kg_to_Kgm2 !EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Check_Units +! +! !DESCRIPTION: Returns .TRUE. if all species have the same units, or +! .FALSE. if not. +!\\ +! !INTERFACE: +! + FUNCTION Check_Units( State_Chm, units, mapping ) RESULT( same ) +! +! !INPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: units ! Input units flag + INTEGER, OPTIONAL, POINTER :: mapping(:) ! Species ID -> modelId + +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object +! +! !RETURN VALUE: +! + LOGICAL :: same ! All species in same units? +! +! !REVISION HISTORY: +! 30 Nov 2023 - R. Yantosca - Initial version +! See the subsequent Git history with the gitk browser! +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER, POINTER :: theMapping(:) + + !======================================================================== + ! Check_Units begins here! + !======================================================================== + + ! Point to the mapping array (or use all species if not passed) + theMapping => State_Chm%Map_All + IF ( PRESENT( mapping ) ) theMapping => mapping + + ! Are all species in the same units? + same = ALL( State_Chm%Species(theMapping)%Units == units ) + + ! Free pointer + theMapping => NULL() + + END FUNCTION Check_Units +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Print_Species_Units +! +! !DESCRIPTION: Prints each species name and its units. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Print_Species_Units( State_Chm, mapping ) +! +! !USES: +! + USE State_Chm_Mod, ONLY : ChmState +! +! !INPUT PARAMETERS: +! + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry state object + INTEGER, OPTIONAL, POINTER :: mapping(:) ! Species Id -> modelId +! +! !REVISION HISTORY: +! 23 Feb 2024 - R. Yantosca - Initial version +! See the subsequent Git history with the gitk browser! +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + ! Scalars + INTEGER :: N, S + + ! Pointers + INTEGER, POINTER :: theMapping(:) + + !======================================================================== + ! Print_Species_Units begins here! + !======================================================================== + + ! Assume all species will be printed if mapping is not passed + theMapping => State_Chm%Map_All + IF ( PRESENT( mapping ) ) theMapping => mapping + + ! Loop over species + DO S = 1, SIZE( theMapping ) + + ! Get the modelId for each species + N = theMapping(S) + + WRITE( 6, 100 ) N, ADJUSTL( State_Chm%SpcData(N)%Info%Name ), & + UNIT_STR( State_Chm%Species(N)%Units ) + 100 FORMAT( i5, 1x, a20, 1x, a ) + ENDDO + + ! Free pointer + theMapping => NULL() + + END SUBROUTINE Print_Species_Units +!EOC END MODULE UnitConv_Mod diff --git a/Headers/CMN_DIAG_mod.F90 b/Headers/CMN_DIAG_mod.F90 deleted file mode 100644 index 87bd689a5..000000000 --- a/Headers/CMN_DIAG_mod.F90 +++ /dev/null @@ -1,135 +0,0 @@ -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !MODULE: CMN_DIAG_mod.F90 -! -! !DESCRIPTION: Module CMN\_DIAG\_mod contains size parameters and global -! variables for the GEOS-Chem diagnostic arrays. This is mostly historical -! baggage. -!\\ -!\\ -! !INTERFACE: -! -MODULE CMN_DIAG_MOD -! -! !USES: -! - IMPLICIT NONE - PUBLIC -! -! !DEFINED PARAMETERS: -! - INTEGER, PARAMETER :: MAX_TRACER = 600 ! Large placeholder value - -#if defined(TOMAS) - !================================================================= - ! Settings for TOMAS aerosol microphysics (win, bmy, 1/22/10) - !================================================================= - - INTEGER, PARAMETER :: TOMASSPEC = 8 - -#if defined(TOMAS40) - INTEGER, PARAMETER :: TOMASBIN = 40 -#elif defined(TOMAS15) - INTEGER, PARAMETER :: TOMASBIN = 15 -#elif defined(TOMAS12) - INTEGER, PARAMETER :: TOMASBIN = 12 -#else - INTEGER, PARAMETER :: TOMASBIN = 30 ! Number of TOMAS bins -#endif - - INTEGER, PARAMETER :: PD59=TOMASBIN*TOMASSPEC - INTEGER, PARAMETER :: PD60=TOMASBIN*TOMASSPEC - INTEGER, PARAMETER :: PD61=2 - INTEGER :: PD65 - INTEGER, PARAMETER :: MAX_DIAG = 80 - INTEGER, PARAMETER :: MAXFAM = 40 - -#else - !================================================================= - ! For non-TOMAS and non-RRTMG with BPCH_DIAG=y - !================================================================= - INTEGER, PARAMETER :: MAX_DIAG = 80 - -#endif -! -! !PUBLIC DATA MEMBERS: -! - !================================================================= - ! NDxx diagnostic flags - !================================================================= -#ifdef TOMAS - INTEGER :: LD06, LD44, LD65, LD59, LD60, LD61 - INTEGER :: ND06, ND44, ND65, ND59, ND60, ND61 -#endif - - !================================================================= - ! Variables for printing out selected tracers in diagnostic output - !================================================================= - INTEGER :: TINDEX(MAX_DIAG,MAX_TRACER) - INTEGER :: TCOUNT(MAX_DIAG) - INTEGER :: TMAX(MAX_DIAG) -! -! !REMARKS: -! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -! %%% NOTE: THIS MODULE WILL BE A STUB UNLESS GEOS-Chem IS COMPILED %%% -! %%% WITH THE BPCH_DIAG=y OPTION. (bmy, 10/4/19) %%% -! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -! -! !REVISION HISTORY: -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -CONTAINS -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Init_Cmn_Diag -! -! !DESCRIPTION: Subroutine INIT\_CMN\_DIAG initializes quantities based on -! the grid-independent size parameters. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Init_CMN_DIAG( Input_Opt, State_Grid, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE State_Grid_Mod, ONLY : GrdState -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 19 Nov 2012 - R. Yantosca - Added ProTeX headers -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - ! Assume success - RC = GC_SUCCESS - -#ifdef TOMAS - PD65 = State_Grid%NZ * MAXFAM -#endif - - END SUBROUTINE Init_CMN_DIAG -!EOC -END MODULE CMN_DIAG_MOD -#endif diff --git a/Headers/CMN_FJX_MOD.F90 b/Headers/CMN_FJX_MOD.F90 index 19c4f2c1a..f5bcffe6c 100644 --- a/Headers/CMN_FJX_MOD.F90 +++ b/Headers/CMN_FJX_MOD.F90 @@ -7,8 +7,10 @@ ! ! !DESCRIPTION: Module CMN\_FJX\_MOD contains parameters and global variables ! used to interface between Harvard chemistry and UC-Irvine photolysis -! programs (Fast-J/Fast-JX), along with all Fast-J(X) global variables -! and some physical constants for the GEOS-Chem chemistry code. +! programs (Fast-J/Fast-JX). Contents of this module previously were in +! Headers/CMN_FJX_MOD.F90. That module was split into this file and +! Headers/CMN_Phot_mod.F90 for the development of Cloud-J to replace +! Fast-JX. This module will be used only in Fast-JX and not in Cloud-J. !\\ !\\ ! !INTERFACE: @@ -17,7 +19,6 @@ MODULE CMN_FJX_MOD ! ! !USES: ! - USE CMN_SIZE_MOD, ONLY : NDUST, NAER USE PRECISION_MOD ! For GEOS-Chem Precision (fp) IMPLICIT NONE @@ -25,97 +26,32 @@ MODULE CMN_FJX_MOD ! ! !DEFINED PARAMETERS: ! - ! New (SDE 03/28/13) - ! Index in RAA & QAA of 999 nm wavelength - INTEGER, PARAMETER :: IND999 = 5 - - ! Required size of aerosol arrays - INTEGER :: L_ ! Number of CTM layers - - INTEGER :: L1_ ! Number of CTM layer edges - - INTEGER :: L2_ ! Number of levels in FJX grid that - ! inc. both edges and mid-points - - INTEGER :: JVL_ ! Vertical levels for J-values - - INTEGER, PARAMETER :: JVN_ = 166 ! Max number of J-values - - INTEGER :: AN_ ! # of separate aerosols per layer - ! Now set in Init_CMN_FJX below - - ! Variables used to interface GEOS-Chem and Fast-JX at runtime - ! Branches for photolysis species - INTEGER :: BRANCH(JVN_) - - ! Names of photolysis species - CHARACTER (LEN=10) :: RNAMES(JVN_) - - ! Mapping array from Harvard species names to UCI species names - INTEGER :: RINDEX(JVN_) - - ! GEOS-Chem "ModelId" corresponding to each photolysis species - INTEGER :: GC_Photo_Id(JVN_) - - ! Output J values - REAL(fp), ALLOCATABLE :: ZPJ(:,:,:,:) !----------------------------------------------------------------------- - ! variables used to map fast-JX J's onto CTM J's + ! Parameters !----------------------------------------------------------------------- - ! Multiplication factor for fast-JX calculated J - REAL(fp) :: JFACTA(JVN_) - - ! Index arrays that map Jvalue(j) onto rates - INTEGER :: JIND(JVN_) - - ! Mumber of Photolysis reactions in CTM chemistry, derived here NRATJ - ! must be .le. JVN_ - INTEGER :: NRATJ - - ! Label of J-value used in the main chem model - CHARACTER*50 :: JLABEL(JVN_) - - ! JXL_: vertical(levels) dim for J-values computed within fast-JX - INTEGER :: JXL_ - INTEGER :: JXL1_ - - ! JXL2_: 2*JXL_ + 2 = mx no. levels in the basic Fast-JX grid (mid-level) - INTEGER :: JXL2_ - - ! WX_ = dim = no. of wavelengths in input file - INTEGER, PARAMETER :: WX_ = 18 + INTEGER, PARAMETER :: JVN_ = 166 ! Max number of J-values - ! X_ = dim = max no. of X-section data sets (input data) - ! SDE 2016-11-04: Increased from 75 to 123 for new halogen - ! chemistry (iodine cross-sections) - INTEGER, PARAMETER :: X_ = 123 + INTEGER, PARAMETER :: WX_ = 18 ! # wavelengths in file FJX_spec.dat - ! A_ = dim = no. of Aerosol/cloud Mie sets (input data) - INTEGER, PARAMETER :: A_ = 56 + INTEGER, PARAMETER :: X_ = 123 ! Max # X-section data in FJX_spec.dat - ! W_ = dim = no. of Wavelength bins: =18 std, =12 trop only - ! Now set below in Init_CMN_FJX (mps, 1/3/18) - INTEGER :: W_ + INTEGER, PARAMETER :: A_ = 56 ! # aerosol/cloud Mie sets - ! N_ = no. of levels in Mie scattering arrays - ! = 2*NC+1 = 4*(L_+1) + 1 + 2*sum(JADDLV) #ifdef MODEL_GEOS -!!!INTEGER, PARAMETER :: N_ = 601 -!!!INTEGER, PARAMETER :: N_ = 1201 +!!!INTEGER, PARAMETER :: N_ = 601 +!!!INTEGER, PARAMETER :: N_ = 1201 INTEGER :: N_ #else - INTEGER, PARAMETER :: N_ = 601 + INTEGER, PARAMETER :: N_ = 601 ! # levels in Mie scattering arrays + ! = 2*NC+1 = 4*(L_+1) + 1 + 2*sum(JADDLV) #endif - ! M_ = no. of Gauss points used, must = 4 in fast_JX (no option) - INTEGER, PARAMETER :: M_ = 4 + INTEGER, PARAMETER :: M_ = 4 ! # Gauss points used (must be 4 in FJX) - ! M2_ = 2*M_ = 8, replaces MFIT - INTEGER, PARAMETER :: M2_ = 2*M_ + INTEGER, PARAMETER :: M2_ = 2*M_ ! M2_ = 2*M_ = 8, replaces MFIT - !----------------------------------------------------------------------- ! 4 Gauss pts = 8-stream REAL(fp), DIMENSION(M_), PARAMETER :: & EMU = [.06943184420297e+0_fp, .33000947820757e+0_fp, & @@ -123,39 +59,51 @@ MODULE CMN_FJX_MOD REAL(fp), DIMENSION(M_), PARAMETER :: & WT = [.17392742256873e+0_fp, .32607257743127e+0_fp, & .32607257743127e+0_fp, .17392742256873e+0_fp] - !----------------------------------------------------------------------- - ! ZZHT: scale height (cm) - REAL(fp), PARAMETER :: ZZHT = 5.e+5_fp + ! Physical constants + REAL(fp), PARAMETER :: ZZHT = 5.e+5_fp ! ZZHT: scale height (cm) - ! RAD: Radius of Earth (cm) - REAL(fp), PARAMETER :: RAD = 6375.e+5_fp + REAL(fp), PARAMETER :: RAD = 6375.e+5_fp ! RAD: Radius of Earth (cm) - ! ATAU: heating rate (factor increase from one layer to the next) - REAL(fp), PARAMETER :: ATAU = 1.120e+0_fp + REAL(fp), PARAMETER :: ATAU = 1.120e+0_fp ! ATAU: heating rate (factor + ! increase layer to layer #ifdef MODEL_GEOS !REAL(fp), PARAMETER :: ATAU = 1.180e+0_fp #endif - ! ATAU0: minimum heating rate - REAL(fp), PARAMETER :: ATAU0 = 0.010e+0_fp + REAL(fp), PARAMETER :: ATAU0 = 0.010e+0_fp ! ATAU0: minimum heating rate + + !----------------------------------------------------------------------- + ! Array dimension sizes set in Init_CMN_FJX at run-time + !----------------------------------------------------------------------- + + INTEGER :: L_ ! Number of CTM layers - ! JTAUMX = maximum number of divisions (i.e., may not get to ATAUMN) - INTEGER :: JTAUMX + INTEGER :: L1_ ! Number of CTM layer edges - ! Physical constants - REAL(fp), PARAMETER :: UVXPLANCK = 6.62606957e-34 - REAL(fp), PARAMETER :: UVXCCONST = 2.99792458e8 + INTEGER :: L2_ ! Number of levels in FJX grid that + ! inc. both edges and mid-points + + INTEGER :: JVL_ ! Vertical levels for J-values - ! Conversion factors from photons/cm2s to W/m2 - REAL(fp), DIMENSION(WX_) :: UVXFACTOR + INTEGER :: AN_ ! # of separate aerosols per layer + + INTEGER :: JXL_ ! Vertical level for Jvals (mid) + + INTEGER :: JXL1_ ! Vertical level for Jvals (edge) + + INTEGER :: JXL2_ ! Max # levels in Fast-JX grid (mid) + + INTEGER :: W_ ! # wavelength bins + + INTEGER :: JTAUMX ! Max # divisions, i.e. < ATAUMN !----------------------------------------------------------------------- - ! Variables in file 'FJX_spec.dat' (RD_XXX) + ! RD_XXX variables (file 'FJX_spec.dat') !----------------------------------------------------------------------- - ! WBIN: Boundaries of wavelength bins - REAL(fp) :: WBIN(WX_+1) + INTEGER :: NW1 + INTEGER :: NW2 ! WL: Centres of wavelength bins - 'effective wavelength' REAL(fp) :: WL(WX_) @@ -163,148 +111,82 @@ MODULE CMN_FJX_MOD ! FL: Solar flux incident on top of atmosphere (cm-2.s-1) REAL(fp) :: FL(WX_) - REAL(fp) :: QO2(WX_,3) ! QO2: O2 cross-sections - REAL(fp) :: QO3(WX_,3) ! QO3: O3 cross-sections - REAL(fp) :: Q1D(WX_,3) ! Q1D: O3 => O(1D) quantum yield - - ! QQQ: Supplied cross sections in each wavelength bin (cm2) - REAL(fp) :: QQQ(WX_,3,X_) - ! QRAYL: Rayleigh parameters (effective cross-section) (cm2) REAL(fp) :: QRAYL(WX_+1) - ! TQQ: Temperature for supplied cross sections - REAL(fp) :: TQQ(3,X_) - - ! LQQ = 1, 2, or 3 to determine interpolation with T or P - INTEGER :: LQQ(X_) - ! TITLEJX: Title for supplied cross sections, from 'FJX_spec.dat' CHARACTER*6 :: TITLEJX(X_) + ! LQQQ = 1, 2, or 3 to determine interpolation with T or P + INTEGER :: LQQ(X_) + ! SQQ: Flag for supplied cross sections, from 'FJX_spec.dat' CHARACTER*1 :: SQQ(X_) - !----------------------------------------------------------------------- - ! Variables in file 'jv_spec_mie.dat' (RD_MIE) - !----------------------------------------------------------------------- + ! TQQ: Temperature for supplied cross sections + REAL(fp) :: TQQ(3,X_) - ! QAA: Aerosol scattering phase functions - REAL(fp) :: QAA(5,A_) + ! QQQ: Supplied cross sections in each wavelength bin (cm2) + REAL(fp) :: QQQ(WX_,3,X_) - ! WAA: 5 Wavelengths for the supplied phase functions - REAL(fp) :: WAA(5,A_) + ! NJX: Number of species to calculate J-values for + INTEGER :: NJX - ! PAA: Phase function: first 8 terms of expansion - REAL(fp) :: PAA(8,5,A_) + ! O2 and O3 cross-sections, and O3 => O(1D) quantum yield + REAL(fp) :: QO2(WX_,3) + REAL(fp) :: QO3(WX_,3) + REAL(fp) :: Q1D(WX_,3) - ! RAA: Effective radius associated with aerosol type - REAL(fp) :: RAA(5,A_) + ! WBIN: Boundaries of wavelength bins + REAL(fp) :: WBIN(WX_+1) - ! SAA: Single scattering albedo - REAL(fp) :: SAA(5,A_) + !----------------------------------------------------------------------- + ! RD_MIE variables (file 'jv_spec_mie.dat') + !----------------------------------------------------------------------- ! NAA: Number of categories for scattering phase functions INTEGER :: NAA - !----------------------------------------------------------------------- - ! Variables in file 'jv_spec_aod.dat' (RD_AOD) - !----------------------------------------------------------------------- + ! TITLAA: Title per scattering data set, e.g. "01 RAYLE = Rayleigh phase" + CHARACTER*80, DIMENSION(A_) :: TITLAA - ! QAA_AOD: Aerosol scattering phase functions - REAL(fp) :: QAA_AOD(A_) + ! WAA: 5 Wavelengths for the supplied phase functions. 1st col in file. + REAL(fp) :: WAA(5,A_) - ! WAA: 5 Wavelengths for the supplied phase functions - REAL(fp) :: WAA_AOD(A_) + ! QAA: Aerosol scattering phase functions. 2nd col in file. + REAL(fp) :: QAA(5,A_) - ! PAA: Phase function: first 8 terms of expansion - REAL(fp) :: PAA_AOD(8,A_) + ! RAA: Effective radius associated with aerosol type. 3rd col in file. + REAL(fp) :: RAA(5,A_) - ! RAA: Effective radius associated with aerosol type - REAL(fp) :: RAA_AOD(A_) + ! SAA: Single scattering albedo. 4th col in file. + REAL(fp) :: SAA(5,A_) - ! SAA: Single scattering albedo - REAL(fp) :: SAA_AOD(A_) + ! PAA: Phase function: first 8 terms of expansion. Cols 5:12 in file. + REAL(fp) :: PAA(8,5,A_) !----------------------------------------------------------------------- - ! Variables in file 'atmos_std.dat' (RD_PROF) + ! RD_JS_JX variables (file 'FJX_j2j.dat') !----------------------------------------------------------------------- - ! T and O3 reference profiles - REAL(fp), DIMENSION(51,18,12) :: TREF, OREF - - ! Interfacing indices for GC and FJX aerosols - INTEGER, ALLOCATABLE :: MIEDX(:) + ! Label of J-value used in the main chem model + CHARACTER*50 :: JLABEL(JVN_) - ! TITLEAA: Title for scattering data - CHARACTER*80, DIMENSION(A_) :: TITLEAA + ! Multiplication factor for fast-JX calculated J + REAL(fp) :: JFACTA(JVN_) - ! Dust and aerosol optical depths - REAL(fp), ALLOCATABLE :: ODMDUST(:,:,:,:,:) - REAL(fp), ALLOCATABLE :: ODAER(:,:,:,:,:) - REAL(fp), ALLOCATABLE :: ISOPOD(:,:,:,:) ! eam, 2014 + ! Mumber of Photolysis reactions in CTM chemistry, derived here NRATJ + ! must be .le. JVN_ + INTEGER :: NRATJ - INTEGER NJX,NW1,NW2 + ! Names of photolysis species + CHARACTER (LEN=10) :: RNAMES(JVN_) - !----------------------------------------------------------------------- - ! Variables added for RRTMG (dar, mps, 12/5/14) - !----------------------------------------------------------------------- + ! Branches for photolysis species + INTEGER :: BRANCH(JVN_) - INTEGER, PARAMETER :: NWVAA = 41 !number of wavelengths in LUT - INTEGER, PARAMETER :: NWVAA0 = 11 !number of non-RRTMG wavelengths - INTEGER, PARAMETER :: NWVAART = NWVAA-NWVAA0 !number of RRTMG wvs - INTEGER, PARAMETER :: NRAA = 7 !number of aer sizes in LUT - INTEGER, PARAMETER :: NALBD = 2 - INTEGER, PARAMETER :: NEMISS = 16 - - ! Now set the following in Init_CMN_FJX below (mps, 1/3/18) - INTEGER :: NSPAA !number of species in LUT - INTEGER :: NASPECRAD !aerosol species in RT - INTEGER :: NSPECRAD !aerosol+gas species in RT - - ! New optical arrays - REAL*8, ALLOCATABLE :: WVAA(:,:) - REAL*8, ALLOCATABLE :: RHAA(:,:) - REAL*8, ALLOCATABLE :: NRLAA(:,:,:) - REAL*8, ALLOCATABLE :: NCMAA(:,:,:) - REAL*8, ALLOCATABLE :: RDAA(:,:) - REAL*8, ALLOCATABLE :: RWAA(:,:) - REAL*8, ALLOCATABLE :: SGAA(:,:) - REAL*8, ALLOCATABLE :: QQAA(:,:,:) - REAL*8, ALLOCATABLE :: ALPHAA(:,:,:) - REAL*8, ALLOCATABLE :: REAA(:,:) - REAL*8, ALLOCATABLE :: SSAA(:,:,:) - REAL*8, ALLOCATABLE :: ASYMAA(:,:,:) - REAL*8, ALLOCATABLE :: PHAA(:,:,:,:) - INTEGER :: IWVSELECT(2,3) !index of requested wavelengths - INTEGER :: IRTWVSELECT(2,3) !index of requested RT wavelengths - - ! max of 3 but need 2 per wavelength if interpolating - INTEGER :: NWVREQUIRED !number of wvs required for interpolation - INTEGER :: IWVREQUIRED(6) !index of wavelengths for interpo. - INTEGER :: NRTWVREQUIRED !number of wvs required for RT interpolation - INTEGER :: IRTWVREQUIRED(6) !index of wavelengths for RT interpo. - ! list of required wavelengths, up to max of 3 x 2 - - INTEGER :: IWV1000 !Store the wavelength index for 1000nm for Fast-J - - !coefficients for interpolation of wavelength (and for RT too) - REAL*8 :: ACOEF_WV(3),BCOEF_WV(3),CCOEF_WV(3) - REAL*8 :: ACOEF_RTWV(3),BCOEF_RTWV(3),CCOEF_RTWV(3) - INTEGER, ALLOCATABLE :: SPECMASK(:) !list of binary switches for different - !species flux output - - ! RH indices - INTEGER, ALLOCATABLE :: IRHARR(:,:,:) - -#ifdef RRTMG - !to pass to RT code - !one for each hydrophilic/hydrophobic aerosol and optical dust bin - !and also sulfate, nitrate and ammonia are separate too - REAL*8, ALLOCATABLE :: RTODAER(:,:,:,:,:) - REAL*8, ALLOCATABLE :: RTSSAER(:,:,:,:,:) - REAL*8, ALLOCATABLE :: RTASYMAER(:,:,:,:,:) -#endif + ! Index arrays that map Jvalue(j) onto rates + INTEGER :: JIND(JVN_) CONTAINS !EOC @@ -313,7 +195,7 @@ MODULE CMN_FJX_MOD !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Init_Cmn_Fjx +! !IROUTINE: Init_Cmn_FJX ! ! !DESCRIPTION: Routine INIT\_CMN\_FJX initializes quantities based on ! the grid-independent size parameters. @@ -373,124 +255,6 @@ SUBROUTINE Init_CMN_FJX( Input_Opt, State_Grid, RC ) AN_ = 37 ! # of separate aerosols per layer; Including PSCs W_ = 18 ! # of wavelength bins - ! For RRTMG: - NSPAA = 8 ! number of species in LUT - NASPECRAD = 16 ! aerosol species in RT - NSPECRAD = 18 ! aerosol+gas species in RT - - IF ( .not. Input_Opt%DryRun ) THEN - !----------------------------------------------------------------------- - ! Allocate arrays - !----------------------------------------------------------------------- - - ALLOCATE( ZPJ( State_Grid%NZ, JVN_, State_Grid%NX, State_Grid%NY), & - STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - ZPJ = 0e+0_fp - - ALLOCATE( ODMDUST( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & - NWVAA, NDUST), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - ODMDUST = 0e+0_fp - - ALLOCATE( ODAER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, NWVAA, NAER),& - STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - ODAER = 0e+0_fp - - ALLOCATE( MIEDX(AN_), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - MIEDX = 0 - - ! Allocate array for isoprene SOA AOD (eam, 2014): - ALLOCATE( ISOPOD( State_Grid%NX, State_Grid%NY, State_Grid%NZ, NWVAA), & - STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - ISOPOD = 0e+0_fp - - !----------------------------------------------------------------------- - ! Variables added for RRTMG (dar, mps, 12/5/14) - !----------------------------------------------------------------------- - - ALLOCATE( IRHARR( State_Grid%NX, State_Grid%NY, State_Grid%NZ ), & - STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - IRHARR = 0d0 - - ALLOCATE( WVAA(NWVAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - WVAA = 0d0 - - ALLOCATE( RHAA(NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - RHAA = 0d0 - - ALLOCATE( NRLAA(NWVAA,NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - NRLAA = 0d0 - - ALLOCATE( NCMAA(NWVAA,NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - NCMAA = 0d0 - - ALLOCATE( RDAA(NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - RDAA = 0d0 - - ALLOCATE( RWAA(NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - RWAA = 0d0 - - ALLOCATE( SGAA(NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SGAA = 0d0 - - ALLOCATE( QQAA(NWVAA,NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - QQAA = 0d0 - - ALLOCATE( ALPHAA(NWVAA,NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - ALPHAA = 0d0 - - ALLOCATE( REAA(NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - REAA = 0d0 - - ALLOCATE( SSAA(NWVAA,NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SSAA = 0d0 - - ALLOCATE( ASYMAA(NWVAA,NRAA,NSPAA), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - ASYMAA = 0d0 - - ALLOCATE( PHAA(NWVAA,NRAA,NSPAA,8), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - PHAA = 0d0 - - ALLOCATE( SPECMASK(NSPECRAD), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - SPECMASK = 0 - -#ifdef RRTMG - ! +2 to split SNA into SU, NI and AM - ALLOCATE( RTODAER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & - NWVAA,NAER+2+NDUST), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - RTODAER = 0d0 - - ALLOCATE( RTSSAER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & - NWVAA, NAER+2+NDUST ), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - RTSSAER = 0d0 - - ALLOCATE( RTASYMAER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & - NWVAA, NAER+2+NDUST ), STAT=RC ) - IF ( RC /= GC_SUCCESS ) RETURN - RTASYMAER = 0d0 -#endif - ENDIF ! Initialize RNAMES to empty string (ckeller,12/29/17) RNAMES(:) = "" @@ -499,63 +263,5 @@ SUBROUTINE Init_CMN_FJX( Input_Opt, State_Grid, RC ) END SUBROUTINE Init_CMN_FJX !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Cleanup_Cmn_Fjx -! -! !DESCRIPTION: Subroutine CLEANUP\_CMN\_FJX deallocates all module arrays. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Cleanup_CMN_FJX( RC ) -! -! !USES: -! - USE ErrCode_Mod -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 21 Feb 2014 - M. Sulprizio- Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - IF ( ALLOCATED( ZPJ ) ) DEALLOCATE( ZPJ ) - IF ( ALLOCATED( ODMDUST ) ) DEALLOCATE( ODMDUST ) - IF ( ALLOCATED( ODAER ) ) DEALLOCATE( ODAER ) - IF ( ALLOCATED( MIEDX ) ) DEALLOCATE( MIEDX ) - IF ( ALLOCATED( ISOPOD ) ) DEALLOCATE( ISOPOD ) - IF ( ALLOCATED( IRHARR ) ) DEALLOCATE( IRHARR ) - IF ( ALLOCATED( WVAA ) ) DEALLOCATE( WVAA ) - IF ( ALLOCATED( RHAA ) ) DEALLOCATE( RHAA ) - IF ( ALLOCATED( NRLAA ) ) DEALLOCATE( NRLAA ) - IF ( ALLOCATED( NCMAA ) ) DEALLOCATE( NCMAA ) - IF ( ALLOCATED( RDAA ) ) DEALLOCATE( RDAA ) - IF ( ALLOCATED( RWAA ) ) DEALLOCATE( RWAA ) - IF ( ALLOCATED( SGAA ) ) DEALLOCATE( SGAA ) - IF ( ALLOCATED( QQAA ) ) DEALLOCATE( QQAA ) - IF ( ALLOCATED( ALPHAA ) ) DEALLOCATE( ALPHAA ) - IF ( ALLOCATED( REAA ) ) DEALLOCATE( REAA ) - IF ( ALLOCATED( SSAA ) ) DEALLOCATE( SSAA ) - IF ( ALLOCATED( ASYMAA ) ) DEALLOCATE( ASYMAA ) - IF ( ALLOCATED( PHAA ) ) DEALLOCATE( PHAA ) - IF ( ALLOCATED( SPECMASK ) ) DEALLOCATE( SPECMASK ) -#ifdef RRTMG - IF ( ALLOCATED( RTODAER ) ) DEALLOCATE( RTODAER ) - IF ( ALLOCATED( RTSSAER ) ) DEALLOCATE( RTSSAER ) - IF ( ALLOCATED( RTASYMAER ) ) DEALLOCATE( RTASYMAER ) -#endif - ! Return successfully - RC = GC_SUCCESS - - END SUBROUTINE Cleanup_CMN_FJX -!EOC END MODULE CMN_FJX_MOD diff --git a/Headers/CMN_O3_mod.F90 b/Headers/CMN_O3_mod.F90 deleted file mode 100644 index 3076e3bbe..000000000 --- a/Headers/CMN_O3_mod.F90 +++ /dev/null @@ -1,136 +0,0 @@ -#ifdef BPCH_DIAG -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !MODULE: CMN_O3_mod.F90 -! -! !DESCRIPTION: Common blocks for anthro emissions (via SMVGEAR!) -!\\ -!\\ -! !INTERFACE: -! -MODULE CMN_O3_MOD -! -! !USES: -! - USE PRECISION_MOD - - IMPLICIT NONE - PUBLIC -! -! !PUBLIC DATA MEMBERS: -! - ! SAVEEOH = array to save EOH fields (evf, 5/21/13) - ! SAVEGLYX= array to save GLYX fields (eam, 8/25/14 ) - ! SAVEOA = array for total organic aerosol (trc 6 of ND42, eam,7/10/14) - REAL(fp), ALLOCATABLE :: SAVEEOH(:,:,:) - REAL(fp), ALLOCATABLE :: SAVEGLYX(:,:,:) - REAL(fp), ALLOCATABLE :: SAVEOA(:,:,:) -! -! !REMARKS: -! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -! %%% NOTE: THIS MODULE WILL BE A STUB UNLESS GEOS-Chem IS COMPILED %%% -! %%% WITH THE BPCH_DIAG=y OPTION. (bmy, 10/4/19) %%% -! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -! -! !REVISION HISTORY: -! 23 Aug 2011 - M. Long - Converted to Module from Header file -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -CONTAINS -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Init_Cmn_O3 -! -! !DESCRIPTION: Subroutine INIT\_CMN\_O3 allocates all module arrays. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Init_CMN_O3( Input_Opt, State_Grid, RC ) -! -! !USES: -! - USE ErrCode_Mod - USE Input_Opt_Mod, ONLY : OptInput - USE State_Grid_Mod, ONLY : GrdState -! -! !INPUT PARAMETERS: -! - TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object - TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid State object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 19 Nov 2012 - R. Yantosca - Added ProTeX headers -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - ! Assume success - RC = GC_SUCCESS - - ! Allocate arrays - ALLOCATE( SAVEEOH (State_Grid%NX,State_Grid%NY,State_Grid%NZ), STAT=RC ) - ALLOCATE( SAVEGLYX(State_Grid%NX,State_Grid%NY,State_Grid%NZ), STAT=RC ) - ALLOCATE( SAVEOA (State_Grid%NX,State_Grid%NY,State_Grid%NZ), STAT=RC ) - - ! Zero arrays - SAVEEOH = 0e+0_fp - SAVEGLYX = 0e+0_fp - SAVEOA = 0e+0_fp - - END SUBROUTINE Init_CMN_O3 -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Cleanup_Cmn_O3 -! -! !DESCRIPTION: Subroutine CLEANUP\_CMN\_O3 allocates all module arrays. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Cleanup_CMN_O3( RC ) -! -! !USES: -! - USE ErrCode_Mod -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REVISION HISTORY: -! 19 Nov 2012 - R. Yantosca - Added ProTeX headers -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - ! Assume success - RC = GC_SUCCESS - - ! Deallocate arrays - IF ( ALLOCATED( SAVEEOH ) ) DEALLOCATE( SAVEEOH ) - IF ( ALLOCATED( SAVEGLYX ) ) DEALLOCATE( SAVEGLYX ) - IF ( ALLOCATED( SAVEOA ) ) DEALLOCATE( SAVEOA ) - - END SUBROUTINE Cleanup_CMN_O3 -!EOC -END MODULE CMN_O3_MOD -#endif - diff --git a/Headers/CMakeLists.txt b/Headers/CMakeLists.txt index 8d139a75b..8103fbcda 100755 --- a/Headers/CMakeLists.txt +++ b/Headers/CMakeLists.txt @@ -5,10 +5,9 @@ #---------------------------------------------------------------------------- add_library(Headers STATIC EXCLUDE_FROM_ALL + aermass_container_mod.F90 charpak_mod.F90 - CMN_DIAG_mod.F90 CMN_FJX_MOD.F90 - CMN_O3_mod.F90 CMN_SIZE_mod.F90 diaglist_mod.F90 dictionary_m.F90 @@ -16,6 +15,7 @@ add_library(Headers errcode_mod.F90 input_opt_mod.F90 inquireMod.F90 + phot_container_mod.F90 physconstants.F90 precision_mod.F90 qfyaml_mod.F90 @@ -31,5 +31,7 @@ add_library(Headers ) # Define dependencies for libHeaders.a -target_link_libraries(Headers PUBLIC KPP_FirstPass) - +target_link_libraries(Headers PUBLIC + KPP_FirstPass + CloudJ_Core +) diff --git a/Headers/aermass_container_mod.F90 b/Headers/aermass_container_mod.F90 new file mode 100644 index 000000000..59049827b --- /dev/null +++ b/Headers/aermass_container_mod.F90 @@ -0,0 +1,726 @@ +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !MODULE: aermass_container_mod.F90 +! +! !DESCRIPTION: Module AERMASS\_CONTAINER\_MOD contains the derived type used +! to store aerosol data used for computing optical depths and diagnostics. +!\\ +!\\ +! !INTERFACE: +! +MODULE AerMass_Container_Mod +! +! USES: +! + USE ErrCode_Mod + USE Precision_Mod + + IMPLICIT NONE + PRIVATE +! +! !PUBLIC MEMBER FUNCTIONS: +! + PUBLIC :: Init_AerMass_Container + PUBLIC :: Cleanup_AerMass_Container +! +! !PUBLIC DATA MEMBERS: +! + !========================================================================= + ! Derived type for aerosol data container + !========================================================================= + TYPE, PUBLIC :: AerMassContainer + + ! Arrays + !======================================================================== + ! OCFPOA : OM/OC for POA [unitless] - used in carbon_mod + ! OCFOPOA : OM/OC for OPOA, OCPI, OCPO [unitless] - used in carbon_mod + ! BCPI : Hydrophilic black carbon aerosol [kg/m3] + ! BCPO : Hydrophobic black carbon aerosol [kg/m3] + ! OCPI : Hydrophilic organic carbon aerosol [kg/m3] + ! OCPO : Hydrophobic organic carbon aerosol [kg/m3] + ! OCPISOA : Hydrophilic OC + SOA aerosol [kg/m3] + ! SALA : Accumulation mode seasalt aerosol [kg/m3] + ! ACL : Accumulation mode Cl aerosol [kg/m3] + ! SALC : Coarse mode seasalt aerosol [kg/m3] + ! SO4_NH4_NIT : Lumped SO4-NH4-NIT aerosol [kg/m3] + ! SO4 : Sulfate aerosol [kg/m3] + ! HMS : Hydroxymethane sulfonate aerosol [kg/m3] + ! NH4 : Ammonium aerosol [kg/m3] + ! NIT : Inorganic nitrate aerosol [kg/m3] + ! SLA : Stratospheric liquid aerosol [kg/m3] + ! SPA : Stratospheric particulate aerosol [kg/m3] + ! TSOA : Terpene SOA [kg/m3] + ! ASOA : Aromatic + IVOC SOA [kg/m3] + ! OPOA : Aerosol product of SVOC oxidation [kg/m3] + ! SOAGX : SOA product of GLYX [kg/m3] + ! SOAIE : SOA product of IEPOX & HMML [kg/m3] + ! PM25 : Particulate matter < 2.5 um [kg/m3] + ! PM10 : Particulate matter < 10 um [kg/m3] + ! PDER : Parameterized effective Radius for SNA and OM [nm] - used for AOD calcualtion (H. Zhu) + ! ISOAAQ : Isoprene SOA (aqueous formation) [kg/m3] + ! SOAS : Simple SOA [kg/m3] + ! FRAC_SNA : + ! DAERSL : Mass of hydrophobic aerosol (Mian Chin) + ! WAERSL : Mass of hydrophilic aerosol (Mian Chin) + !======================================================================== + REAL(fp), POINTER :: OCFPOA (:,:) + REAL(fp), POINTER :: OCFOPOA (:,:) + REAL(fp), POINTER :: BCPI (:,:,:) + REAL(fp), POINTER :: BCPO (:,:,:) + REAL(fp), POINTER :: OCPI (:,:,:) + REAL(fp), POINTER :: OCPO (:,:,:) + REAL(fp), POINTER :: OCPISOA (:,:,:) + REAL(fp), POINTER :: SALA (:,:,:) + REAL(fp), POINTER :: ACL (:,:,:) + REAL(fp), POINTER :: SALC (:,:,:) + REAL(fp), POINTER :: SO4_NH4_NIT(:,:,:) + REAL(fp), POINTER :: SO4 (:,:,:) + REAL(fp), POINTER :: HMS (:,:,:) + REAL(fp), POINTER :: NH4 (:,:,:) + REAL(fp), POINTER :: NIT (:,:,:) + REAL(fp), POINTER :: SLA (:,:,:) + REAL(fp), POINTER :: SPA (:,:,:) + REAL(fp), POINTER :: TSOA (:,:,:) + REAL(fp), POINTER :: ASOA (:,:,:) + REAL(fp), POINTER :: OPOA (:,:,:) + REAL(fp), POINTER :: SOAGX (:,:,:) + REAL(fp), POINTER :: PM25 (:,:,:) + REAL(fp), POINTER :: PM10 (:,:,:) + REAL(fp), POINTER :: PDER (:,:,:) !H. Zhu + REAL(fp), POINTER :: SNAOM (:,:,:) !H. Zhu + REAL(fp), POINTER :: R_OMSNA (:,:,:) !H. Zhu + REAL(fp), POINTER :: ISOAAQ (:,:,:) + REAL(fp), POINTER :: SOAS (:,:,:) + REAL(fp), POINTER :: FRAC_SNA (:,:,:,:) + REAL(fp), POINTER :: DAERSL (:,:,:,:) + REAL(fp), POINTER :: WAERSL (:,:,:,:) + + END TYPE AerMassContainer +! +! !REMARKS: +! +! !REVISION HISTORY: +! 28 Mar 2023 - E. Lundgren- Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +CONTAINS +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Init_AerMass_Container +! +! !DESCRIPTION: Subroutine INIT\_AER\_Container allocates and initializes +! the Aer container object. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Init_AerMass_Container( Input_Opt, State_Grid, Aer, RC ) +! +! !USES: +! + USE CMN_Size_Mod, ONLY : NAER + USE Input_Opt_Mod, ONLY : OptInput + USE State_Grid_Mod, ONLY : GrdState +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(AerMassContainer), POINTER :: Aer ! Aerosol data container +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REVISION HISTORY: +! 28 Mar 2023 - E. Lundgren- Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + CHARACTER(LEN=255) :: errMsg, thisLoc + INTEGER :: NX, NY, NZ + + !====================================================================== + ! Init_AerMass_Container starts here + !====================================================================== + + ! Initialize local variables + RC = GC_SUCCESS + thisLoc = ' -> at Init_AerMass_Container (in module Headers/aermass_container_mod.F90)' + NX = State_Grid%NX + NY = State_Grid%NY + NZ = State_Grid%NZ + + ! Exit immediately if this is a dry-run + IF ( Input_Opt%DryRun ) RETURN + + !====================================================================== + ! Initialize arrays + !====================================================================== + + ! OM/OC for POA + ALLOCATE( Aer%OCFPOA( NX, NY ), STAT=RC ) + CALL GC_CheckVar( 'OCFPOA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array OCFPOA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%OCFPOA = 0.0_fp + + ! OM/OC for OPOA, OCPI, OCPO + ALLOCATE( Aer%OCFOPOA( NX, NY ), STAT=RC ) + CALL GC_CheckVar( 'OCFOPOA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array OCFOPOA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%OCFOPOA = 0.0_fp + + ALLOCATE( Aer%BCPI( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'BCPI', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array BCPI!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%BCPI = 0.0_fp + + ALLOCATE( Aer%BCPO( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'BCPO', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array BCPO!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%BCPO = 0.0_fp + + ALLOCATE( Aer%OCPI( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'OCPI', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array OCPI!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%OCPI = 0.0_fp + + ALLOCATE( Aer%OCPO( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'OCPO', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array OCPO!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%OCPO = 0.0_fp + + ALLOCATE( Aer%OCPISOA( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'OCPISOA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array OCPISOA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%OCPISOA = 0.0_fp + + ALLOCATE( Aer%SALA( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'SALA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SALA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%SALA = 0.0_fp + + ALLOCATE( Aer%SALC( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'SALC', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SALC!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%SALC = 0.0_fp + + ALLOCATE( Aer%ACL( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'ACL', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ACL!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%ACL = 0.0_fp + + ALLOCATE( Aer%SO4_NH4_NIT( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'SO4_NH4_NIT', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SO4_NH4_NIT!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%SO4_NH4_NIT = 0.0_fp + + ALLOCATE( Aer%SO4( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'SO4', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SO4!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%SO4 = 0.0_fp + + ! (jmm, 06/30/18) + ALLOCATE( Aer%HMS( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'HMS', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array HMS!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%HMS = 0.0_fp + + ALLOCATE( Aer%NH4( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'NH4', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array NH4!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%NH4 = 0.0_fp + + ALLOCATE( Aer%NIT( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'NIT', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array NIT!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%NIT = 0.0_fp + + ALLOCATE( Aer%SLA( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'SLA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SLA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%SLA = 0.0_fp + + ALLOCATE( Aer%SPA( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'SPA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SPA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%SPA = 0.0_fp + + ALLOCATE( Aer%TSOA( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'TSOA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array TSOA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%TSOA = 0.0_fp + + ALLOCATE( Aer%ASOA( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'ASOA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ASOA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%ASOA = 0.0_fp + + ALLOCATE( Aer%OPOA( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'OPOA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array OPOA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%OPOA = 0.0_fp + + ALLOCATE( Aer%PM25( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'PM25', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array PM25!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%PM25 = 0.0_fp + + !zhaisx + ALLOCATE( Aer%PM10( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'PM10', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array PM10!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%PM10 = 0.0_fp + ! H. Zhu + ALLOCATE( Aer%PDER( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'PDER', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array PDER!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%PDER = 0.0_fp + ! H. Zhu + ALLOCATE( Aer%SNAOM( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'SNAOM', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SNAOM!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%SNAOM = 0.0_fp + ! H. Zhu + ALLOCATE( Aer%R_OMSNA( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'R_OMSNA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array R_OMSNA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%R_OMSNA = 0.0_fp + + + ALLOCATE( Aer%SOAGX( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'SOAGX', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SOAGX!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%SOAGX = 0.0_fp + + ! Mechanistic isoprene SOA (eam, 2014): + ALLOCATE( Aer%ISOAAQ( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'ISOAAQ', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ISOAAQ!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%ISOAAQ = 0.0_fp + + ! Simple SOA + ALLOCATE( Aer%SOAS( NX, NY, NZ ), STAT=RC ) + CALL GC_CheckVar( 'SOAS', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SOAS!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%SOAS = 0.0_fp + + ALLOCATE( Aer%FRAC_SNA( NX, NY, NZ, 3 ), STAT=RC ) + CALL GC_CheckVar( 'FRAC_SNA', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array FRAC_SNA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%FRAC_SNA = 0.0_fp + + ! Mass of hydrophobic aerosol from Mian Chin + ALLOCATE( Aer%DAERSL( NX, NY, NZ, 2 ), STAT=RC ) + CALL GC_CheckVar( 'DAERSL', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array DAERSL!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%DAERSL = 0.0_fp + + ! Mass of hydrophilic aerosol from Mian Chin + ALLOCATE( Aer%WAERSL( NX, NY, NZ, NAER ), STAT=RC ) + CALL GC_CheckVar( 'WAERSL', 0, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array WAERSL!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Aer%WAERSL = 0.0_fp + + END SUBROUTINE Init_AerMass_Container +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Cleanup_AerMass_Container +! +! !DESCRIPTION: Subroutine CLEANUP\_AER\_CONTAINER deallocates all fields +! of the aer container object. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Cleanup_AerMass_Container( Aer, RC ) +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(AerMassContainer), POINTER :: Aer ! Aer data container +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Return code +! +! !REVISION HISTORY: +! 28 Mar 2023 - E. Lundgren- Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC + + !====================================================================== + ! Cleanup_AerMass_Container starts here + !====================================================================== + + ! Assume success + RC = GC_SUCCESS + + ! Deallocate arrays and nullify pointer + IF ( ASSOCIATED( Aer%OCFPOA ) ) THEN + DEALLOCATE( Aer%OCFPOA, STAT=RC ) + CALL GC_CheckVar( 'Aer%OCFPOA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%OCFPOA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%OCFOPOA ) ) THEN + DEALLOCATE( Aer%OCFOPOA, STAT=RC ) + CALL GC_CheckVar( 'Aer%OCFOPOA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%OCFOPOA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%BCPI ) ) THEN + DEALLOCATE( Aer%BCPI, STAT=RC ) + CALL GC_CheckVar( 'Aer%BCPI', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%BCPI => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%BCPO ) ) THEN + DEALLOCATE( Aer%BCPO, STAT=RC ) + CALL GC_CheckVar( 'Aer%BCPO', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%BCPO => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%OCPI ) ) THEN + DEALLOCATE( Aer%OCPI, STAT=RC ) + CALL GC_CheckVar( 'Aer%OCPI', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%OCPI => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%OCPO ) ) THEN + DEALLOCATE( Aer%OCPO, STAT=RC ) + CALL GC_CheckVar( 'Aer%OCPO', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%OCPO => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%OCPISOA ) ) THEN + DEALLOCATE( Aer%OCPISOA, STAT=RC ) + CALL GC_CheckVar( 'Aer%OCPISOA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%OCPISOA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%SALA ) ) THEN + DEALLOCATE( Aer%SALA, STAT=RC ) + CALL GC_CheckVar( 'Aer%SALA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%SALA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%ACL ) ) THEN + DEALLOCATE( Aer%ACL, STAT=RC ) + CALL GC_CheckVar( 'Aer%ACL', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%ACL => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%SALC ) ) THEN + DEALLOCATE( Aer%SALC, STAT=RC ) + CALL GC_CheckVar( 'Aer%SALC', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%SALC => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%SO4_NH4_NIT ) ) THEN + DEALLOCATE( Aer%SO4_NH4_NIT, STAT=RC ) + CALL GC_CheckVar( 'Aer%SO4_NH4_NIT', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%SO4_NH4_NIT => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%SO4 ) ) THEN + DEALLOCATE( Aer%SO4, STAT=RC ) + CALL GC_CheckVar( 'Aer%SO4', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%SO4 => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%HMS ) ) THEN + DEALLOCATE( Aer%HMS, STAT=RC ) + CALL GC_CheckVar( 'Aer%HMS', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%HMS => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%NH4 ) ) THEN + DEALLOCATE( Aer%NH4, STAT=RC ) + CALL GC_CheckVar( 'Aer%NH4', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%NH4 => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%NIT ) ) THEN + DEALLOCATE( Aer%NIT, STAT=RC ) + CALL GC_CheckVar( 'Aer%NIT', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%NIT => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%SLA ) ) THEN + DEALLOCATE( Aer%SLA, STAT=RC ) + CALL GC_CheckVar( 'Aer%SLA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%SLA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%SPA ) ) THEN + DEALLOCATE( Aer%SPA, STAT=RC ) + CALL GC_CheckVar( 'Aer%SPA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%SPA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%TSOA ) ) THEN + DEALLOCATE( Aer%TSOA, STAT=RC ) + CALL GC_CheckVar( 'Aer%TSOA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%TSOA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%ASOA ) ) THEN + DEALLOCATE( Aer%ASOA, STAT=RC ) + CALL GC_CheckVar( 'Aer%ASOA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%ASOA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%OPOA ) ) THEN + DEALLOCATE( Aer%OPOA, STAT=RC ) + CALL GC_CheckVar( 'Aer%OPOA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%OPOA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%SOAGX ) ) THEN + DEALLOCATE( Aer%SOAGX, STAT=RC ) + CALL GC_CheckVar( 'Aer%SOAGX', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%SOAGX => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%PM25 ) ) THEN + DEALLOCATE( Aer%PM25, STAT=RC ) + CALL GC_CheckVar( 'Aer%PM25', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%PM25 => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%PM10 ) ) THEN + DEALLOCATE( Aer%PM10, STAT=RC ) + CALL GC_CheckVar( 'Aer%PM10', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%PM10 => NULL() + ENDIF + ! H. Zhu + IF ( ASSOCIATED( Aer%PDER ) ) THEN + DEALLOCATE( Aer%PDER, STAT=RC ) + CALL GC_CheckVar( 'Aer%PDER', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%PDER => NULL() + ENDIF + ! H. Zhu + IF ( ASSOCIATED( Aer%SNAOM ) ) THEN + DEALLOCATE( Aer%SNAOM, STAT=RC ) + CALL GC_CheckVar( 'Aer%SNAOM', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%SNAOM => NULL() + ENDIF + ! H. Zhu + IF ( ASSOCIATED( Aer%R_OMSNA ) ) THEN + DEALLOCATE( Aer%R_OMSNA, STAT=RC ) + CALL GC_CheckVar( 'Aer%R_OMSNA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%R_OMSNA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%ISOAAQ ) ) THEN + DEALLOCATE( Aer%ISOAAQ, STAT=RC ) + CALL GC_CheckVar( 'Aer%ISOAAQ', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%ISOAAQ => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%SOAS ) ) THEN + DEALLOCATE( Aer%SOAS, STAT=RC ) + CALL GC_CheckVar( 'Aer%SOAS', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%SOAS => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%FRAC_SNA ) ) THEN + DEALLOCATE( Aer%FRAC_SNA, STAT=RC ) + CALL GC_CheckVar( 'Aer%FRAC_SNA', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%FRAC_SNA => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%DAERSL ) ) THEN + DEALLOCATE( Aer%DAERSL, STAT=RC ) + CALL GC_CheckVar( 'Aer%DAERSL', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%DAERSL => NULL() + ENDIF + + IF ( ASSOCIATED( Aer%WAERSL ) ) THEN + DEALLOCATE( Aer%WAERSL, STAT=RC ) + CALL GC_CheckVar( 'Aer%WAERSL', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + Aer%WAERSL => NULL() + ENDIF + + END SUBROUTINE Cleanup_AerMass_Container +!EOC + +END MODULE AerMass_Container_Mod diff --git a/Headers/charpak_mod.F90 b/Headers/charpak_mod.F90 index d6763a8f7..66bd07163 100644 --- a/Headers/charpak_mod.F90 +++ b/Headers/charpak_mod.F90 @@ -35,9 +35,8 @@ MODULE Charpak_Mod PUBLIC :: Txtext PUBLIC :: WordWrapPrint PUBLIC :: Unique -! -! !PRIVATE MEMBER FUNCTIONS -! + PUBLIC :: charArr2Str + PUBLIC :: str2CharArr ! ! !REMARKS: ! CHARPAK routines by Robert D. Stewart, 1992. Subsequent modifications @@ -1022,6 +1021,10 @@ SUBROUTINE Unique( vec, vec_unique ) mask = .false. + !======================================================================= + ! Unique begins here! + !======================================================================= + ! Loop over all elements do i = 1, SIZE( vec ) @@ -1053,5 +1056,108 @@ SUBROUTINE Unique( vec, vec_unique ) !call ISORT (vec_unique, [0], size(vec_unique), 1) END SUBROUTINE Unique +! +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: charArr2Str +! +! !DESCRIPTION: Converts a character array of dimension N to a string of +! length N. Useful for writing character strings to netCDF files. +!\\ +!\\ +! !INTERFACE: +! + FUNCTION charArr2Str( charArray, N ) RESULT( string ) +! +! !INPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: N ! Dimension of charArray + CHARACTER(LEN=1), INTENT(IN) :: charArray(N) ! Character array +! +! !RETURN VALUE: +! + CHARACTER(LEN=N) :: string ! Output string +! +! !REVISION HISTORY: +! 05 Mar 2024 - R. Yantosca - Initial version +! See the subsequent Git history with the gitk browser! +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER :: C + + !======================================================================= + ! charArray2str begins here! + !======================================================================= + + ! Initialize the string + string = "" + + + ! Copy as much of the charArray to the string, until we hit the + ! null byte (ASCII character 0), which denotes the end of characters + DO C = 1, N + IF ( chararray(C) == ACHAR(0) ) EXIT + string(C:C) = chararray(C) + ENDDO + + END FUNCTION charArr2Str +!EOC +! +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: str2CharArr +! +! !DESCRIPTION: Converts a string of length N to a character array of +! dimension N. Useful for writing character strings to netCDF files. + +! !DESCRIPTION: +!\\ +!\\ +! !INTERFACE: +! + FUNCTION str2CharArr( string, N ) RESULT( charArray ) +! +! !INPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: N ! Length of string + CHARACTER(LEN=N), INTENT(IN) :: string ! Input string +! +! !RETURN VALUE: +! + CHARACTER(LEN=1) :: charArray(N) ! Output character array +! +! !REVISION HISTORY: +! 05 Mar 2024 - R. Yantosca - Initial version +! See the subsequent Git history with the gitk browser! +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + INTEGER :: C, L + + ! Length of the string without trailing whitespace + L = LEN_TRIM( string ) + + ! Copy the non-whitespace characters to chararray + DO C = 1, L + chararray(C) = string(C:C) + ENDDO + + ! Pad the remaining elements with the null byte + charArray(L+1:) = ACHAR(0) + + END FUNCTION str2CharArr !EOC END MODULE CharPak_Mod diff --git a/Headers/diaglist_mod.F90 b/Headers/diaglist_mod.F90 index bbb10ae54..2eaf6c9fa 100644 --- a/Headers/diaglist_mod.F90 +++ b/Headers/diaglist_mod.F90 @@ -81,13 +81,15 @@ MODULE DiagList_Mod !========================================================================= ! Configurable Settings Used for Diagnostic Names at Run-time !========================================================================= - CHARACTER(LEN=5), PUBLIC :: RadWL(3) ! Wavelengths in radiation menu - CHARACTER(LEN=4), PUBLIC :: RadOut(12) ! Names of RRTMG outputs (tags) - INTEGER, PUBLIC :: nRadOut ! # of selected RRTMG outputs - LOGICAL, PUBLIC :: IsFullChem ! Is it a fullchem simulation? - LOGICAL, PUBLIC :: IsHg ! Is it a Hg simulation? - LOGICAL, PUBLIC :: IsCarbon ! Is it a carbon sim? - CHARACTER(LEN=10), PUBLIC :: AltAboveSfc ! Alt for O3, HNO3 diagnostics + CHARACTER(LEN=3), PUBLIC :: budgetBotLev_str ! Budget diag level range bottom + CHARACTER(LEN=3), PUBLIC :: budgetTopLev_str ! Budget diag level range top + CHARACTER(LEN=5), PUBLIC :: RadWL(3) ! Wavelengths in radiation menu + CHARACTER(LEN=4), PUBLIC :: RadOut(17) ! Names of RRTMG outputs (tags) + INTEGER, PUBLIC :: nRadOut ! # of selected RRTMG outputs + LOGICAL, PUBLIC :: IsFullChem ! Is it a fullchem simulation? + LOGICAL, PUBLIC :: IsHg ! Is it a Hg simulation? + LOGICAL, PUBLIC :: IsCarbon ! Is it a carbon sim? + CHARACTER(LEN=10), PUBLIC :: AltAboveSfc ! Alt for O3, HNO3 diagnostics !========================================================================= ! Derived type for Collections List @@ -181,13 +183,14 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) ! !LOCAL VARIABLES: ! ! Scalars + LOGICAL :: doPrintCollList LOGICAL :: EOF, found, isWildcard, isTagged LOGICAL :: InDefSection, InFieldsSection INTEGER :: QMatch, CMatch INTEGER :: LineNum, LineLen, LineInd, LineInd2 INTEGER :: fId, IOS, N, N1, N2, N3, I, J INTEGER :: WLIndMax, WLIndMaxLoc(1), WLInd(3) - INTEGER :: strIndMax, strInd(5) + INTEGER :: strIndMax, strIndMin, strInd(5) INTEGER :: numSpcWords, numIDWords INTEGER :: NFIELDS @@ -200,6 +203,7 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) CHARACTER(LEN=255) :: collname, AttName, AttValue CHARACTER(LEN=255) :: AttComp, FieldName CHARACTER(LEN=2) :: rrtmgOutputs(10) + CHARACTER(LEN=3) :: topLev, botLev CHARACTER(LEN=255) :: names(100) CHARACTER(LEN=QFYAML_NamLen) :: key CHARACTER(LEN=QFYAML_StrLen) :: v_str, a_str(3) @@ -224,6 +228,10 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) EOF = .FALSE. found = .FALSE. NewDiagItem => NULL() + topLev = '' + botLev = '' + budgetBotLev_str= '' + budgetTopLev_str= '' RadWL = '' RadOut = '' nRadOut = 0 @@ -232,6 +240,7 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) IsCarbon = .FALSE. InDefSection = .FALSE. InFieldsSection = .FALSE. + doPrintCollList = .FALSE. Name = '' LastCollName = '' @@ -304,6 +313,17 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) RadWL(I) = ADJUSTL( RadWL(I) ) ENDDO + ! Read the simulation name + key = "simulation%debug_printout" + CALL QFYAML_Add_Get( Config, key, doPrintCollList, "", RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error parsing ' // TRIM( key ) // '!' + CALL GC_Error( errMsg, RC, thisLoc ) + CALL QFYAML_CleanUp( Config ) + CALL QFYAML_CleanUp( ConfigAnchored ) + RETURN + ENDIF + ! Clean up YAML config objects CALL QFYAML_CleanUp( Config ) CALL QFYAML_CleanUp( ConfigAnchored ) @@ -385,7 +405,9 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) collname = CleanText( Line ) ENDDO - CALL Print_ColList( am_I_Root, CollList, RC ) + IF ( doPrintCollList ) THEN + CALL Print_ColList( am_I_Root, CollList, RC ) + ENDIF CYCLE ENDIF @@ -698,19 +720,7 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) CALL StrSplit( name, '?', SubStrs, N ) wildcard = SubStrs(N-1) ENDIF - ! Get tag, if any - isTagged = .FALSE. - tag = '' - IF ( .NOT. isWildcard ) THEN - CALL StrSplit( name, '_', SubStrs, N ) - IF ( TRIM(state) == 'DIAG' .AND. N == 2 ) THEN - isTagged = .TRUE. - tag = SubStrs(2) - ELSE IF ( TRIM(state) == 'CHEM' .AND. N == 3 ) THEN - isTagged = .TRUE. - tag = SubStrs(3) - ENDIF - ENDIF + ! Get registryID - start with the full name in HISTORY.rc registryID = TRIM(nameAllCaps) ! Then strip off the state prefix, if any @@ -731,13 +741,16 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) registryID = registryID(1:LineInd-1) ENDIF - ! Get metadataID - start with the registry ID - metadataID = registryID - - ! Then strip off the tag suffix, if any - IF ( isTagged ) THEN - LineInd = INDEX( TRIM(metadataID), '_' ) - metadataID = metadataID(1:LineInd-1) + ! Get metadataID and strip off the tag suffix, if any + isTagged = .FALSE. + tag = '' + LineInd= INDEX( TRIM(registryID), '_' ) + IF ( LineInd > 0 ) THEN + isTagged = .TRUE. + tag = TRIM(registryID(LineInd+1:)) + metadataID = registryID(1:LineInd-1) + ELSE + metadataID = registryID ENDIF ! For registryID and metdataID, handle special case of AOD wavelength @@ -777,7 +790,7 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) strInd(4) = INDEX( TRIM(metadataID), 'RADSSA' ) strInd(5) = INDEX( TRIM(metadataID), 'RADASYM' ) strIndMax = MAX(strInd(1),strInd(2),strInd(3),strInd(4),strInd(5)) - IF ( strIndMax == 1 .AND. nRadOut < 12 ) THEN + IF ( strIndMax == 1 .AND. nRadOut < 17 ) THEN ! If RRTMG diagnostics present, always calculate BASE, and store ! first, since used to calculate other outputs. @@ -799,6 +812,8 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) ! outputs, except the stratosphere (ST) and BASE (already added). ! ST must be explicit in HISTORY.rc and is not included in the ! RRTMG wildcard since it may not be relevant to the simulation. + ! CO2, CFCs, H2O, and N2O also excluded since they are somewhat + ! niche (same for trop-only O3). RRTMGOutputs = (/'O3','ME','SU','NI','AM','BC','OA','SS','DU','PM'/) DO N = 1, SIZE(rrtmgOutputs,1) IF ( .not. ANY( RadOut == TRIM(rrtmgOutputs(N)) ) ) THEN @@ -826,6 +841,34 @@ SUBROUTINE Init_DiagList ( am_I_Root, historyConfigFile, DiagList, RC ) metadataID = metadataID(1:strInd(2)-1) // TRIM( AltAboveSfc ) ENDIF + ! Special handling for the budget fixed level range diagnostic + strInd(1) = INDEX( TRIM(metadataID), 'BUDGET' ) + strInd(2) = INDEX( TRIM(metadataID), 'LEVS' ) + strInd(3) = INDEX( TRIM(metadataID), 'TO' ) + strIndMin = MIN( strInd(1), strInd(2), strInd(3) ) + ! Set budget diagnostic level range top and bottom from entry in HISTORY.rc + ! All budget level diagnostics must have the same range + IF ( strIndMin > 0 ) THEN + botLev = TRIM( metadataID( strInd(2)+4:strInd(3)-1 ) ) + topLev = TRIM( metadataID( strInd(3)+2:LEN(TRIM(metadataID)) ) ) + IF ( budgetBotLev_str == '' .AND. budgetTopLev_str == '' ) THEN + budgetBotLev_str = botLev + budgetTopLev_str = topLev + ELSE IF ( ( budgetBotLev_str == '' ) .OR. & + ( budgetTopLev_str == '' ) ) THEN + ErrMsg = 'Missing level in budget diagnostic name: ' // TRIM(name) + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ELSE IF ( ( budgetBotLev_str /= botLev ) .OR. & + ( budgetTopLev_str /= topLev ) ) THEN + ErrMsg = 'Budget diagnostic level ranges do not match: ' // & + TRIM(budgetBotLev_str) // ' and ' // TRIM(budgetTopLev_str) & + // ' versus ' // TRIM(botLev) // ' and ' // TRIM(TopLev) // & + '. Check budget diagnostic entries in HISTORY.rc' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF + ENDIF !==================================================================== ! Create a new DiagItem object !==================================================================== diff --git a/Headers/input_opt_mod.F90 b/Headers/input_opt_mod.F90 index 8e4cc9e7f..ba8a14e51 100644 --- a/Headers/input_opt_mod.F90 +++ b/Headers/input_opt_mod.F90 @@ -16,6 +16,9 @@ MODULE Input_Opt_Mod ! !USES: ! USE PRECISION_MOD ! For GEOS-Chem Precision (fp) +#if defined( ESMF_ ) + USE pFlogger +#endif IMPLICIT NONE PRIVATE @@ -23,7 +26,6 @@ MODULE Input_Opt_Mod ! !PUBLIC MEMBER FUNCTIONS: ! PUBLIC :: Set_Input_Opt - PUBLIC :: Set_Input_Opt_Advect PUBLIC :: Cleanup_Input_Opt ! ! !PUBLIC DATA MEMBERS: @@ -50,10 +52,8 @@ MODULE Input_Opt_Mod !---------------------------------------- ! SIZE PARAMETER fields !---------------------------------------- - INTEGER :: Max_BPCH_Diag INTEGER :: Max_Families INTEGER :: Max_AdvectSpc - INTEGER :: Max_PassiveSpc !---------------------------------------- ! SIMULATION MENU fields @@ -70,33 +70,22 @@ MODULE Input_Opt_Mod CHARACTER(LEN=255) :: SimulationName CHARACTER(LEN=255) :: SpcDatabaseFile CHARACTER(LEN=255) :: SpcMetaDataOutFile + LOGICAL :: ITS_AN_AEROSOL_SIM + LOGICAL :: ITS_A_CARBON_SIM LOGICAL :: ITS_A_CH4_SIM LOGICAL :: ITS_A_CO2_SIM LOGICAL :: ITS_A_FULLCHEM_SIM LOGICAL :: ITS_A_MERCURY_SIM LOGICAL :: ITS_A_POPS_SIM - LOGICAL :: ITS_A_RnPbBe_SIM - LOGICAL :: ITS_A_TAGO3_SIM LOGICAL :: ITS_A_TAGCO_SIM - LOGICAL :: ITS_AN_AEROSOL_SIM + LOGICAL :: ITS_A_TAGO3_SIM LOGICAL :: ITS_A_TRACEMETAL_SIM - LOGICAL :: ITS_A_CARBON_SIM - LOGICAL :: LPRT + LOGICAL :: ITS_A_TRACER_SIM + LOGICAL :: VerboseRequested + CHARACTER(LEN=10) :: VerboseOnCores + LOGICAL :: Verbose LOGICAL :: useTimers - !---------------------------------------- - ! PASSIVE SPECIES MENU fields - !---------------------------------------- - INTEGER :: NPASSIVE - INTEGER :: NPASSIVE_DECAY - CHARACTER(LEN=63), POINTER :: PASSIVE_NAME (:) - CHARACTER(LEN=255), POINTER :: PASSIVE_LONGNAME(:) - INTEGER, POINTER :: PASSIVE_ID (:) - REAL(fp), POINTER :: PASSIVE_MW (:) - REAL(fp), POINTER :: PASSIVE_TAU (:) - REAL(fp), POINTER :: PASSIVE_INITCONC(:) - INTEGER, POINTER :: PASSIVE_DECAYID (:) - !---------------------------------------- ! ADVECTED SPECIES MENU fields !---------------------------------------- @@ -167,18 +156,9 @@ MODULE Input_Opt_Mod !---------------------------------------- ! CO2 MENU fields !---------------------------------------- - LOGICAL :: LFOSSIL LOGICAL :: LCHEMCO2 - LOGICAL :: LBIODIURNAL - LOGICAL :: LBIONETCLIM - LOGICAL :: LOCEAN - LOGICAL :: LSHIP - LOGICAL :: LPLANE - LOGICAL :: LFFBKGRD LOGICAL :: LBIOSPHTAG LOGICAL :: LFOSSILTAG - LOGICAL :: LSHIPTAG - LOGICAL :: LPLANETAG !---------------------------------------- ! CHEMISTRY MENU fields @@ -209,7 +189,9 @@ MODULE Input_Opt_Mod !---------------------------------------- ! PHOTOLYSIS MENU fields !---------------------------------------- + LOGICAL :: Do_Photolysis CHARACTER(LEN=255) :: FAST_JX_DIR + CHARACTER(LEN=255) :: CloudJ_Dir !---------------------------------------- ! RADIATION MENU fields @@ -224,6 +206,11 @@ MODULE Input_Opt_Mod CHARACTER(LEN=5), POINTER :: STRWVSELECT(:) INTEGER :: NSPECRADMENU INTEGER, POINTER :: LSPECRADMENU(:) + REAL(8) :: RRTMG_CO2_ppmv + LOGICAL :: RRTMG_FDH + LOGICAL :: RRTMG_SEFDH + LOGICAL :: RRTMG_SA_TOA + LOGICAL :: Read_Dyn_Heating !---------------------------------------- ! TRANSPORT MENU fields @@ -271,21 +258,6 @@ MODULE Input_Opt_Mod ! DIAGNOSTIC MENU fields !---------------------------------------- CHARACTER(LEN=255) :: HistoryInputFile - INTEGER :: ND03 ! Hg - INTEGER :: ND06 ! TOMAS - INTEGER :: ND44 ! TOMAS - INTEGER :: ND53 ! POPs - INTEGER :: ND59 ! TOMAS - INTEGER :: ND60 ! TOMAS - INTEGER :: ND61 ! TOMAS - - INTEGER :: TS_DIAG - INTEGER, POINTER :: TINDEX(:,:) - INTEGER, POINTER :: TCOUNT(:) - INTEGER, POINTER :: TMAX(:) - LOGICAL :: DO_DIAG_WRITE - - ! Collection ids INTEGER :: DIAG_COLLECTION INTEGER :: GC_RST_COLLECTION ! Used only for NetCDF @@ -372,12 +344,18 @@ MODULE Input_Opt_Mod !---------------------------------------- ! CH4 MENU fields !---------------------------------------- + LOGICAL :: Satellite_CH4_Columns LOGICAL :: GOSAT_CH4_OBS LOGICAL :: AIRS_CH4_OBS LOGICAL :: TCCON_CH4_OBS - LOGICAL :: AnalyticalInv - REAL(fp) :: PerturbEmis + LOGICAL :: DoAnalyticalInv INTEGER :: StateVectorElement + REAL(fp) :: EmisPerturbFactor + LOGICAL :: DoPerturbCH4BoundaryConditions + REAL(fp) :: CH4BoundaryConditionIncreaseNorth + REAL(fp) :: CH4BoundaryConditionIncreaseSouth + REAL(fp) :: CH4BoundaryConditionIncreaseEast + REAL(fp) :: CH4BoundaryConditionIncreaseWest LOGICAL :: UseEmisSF LOGICAL :: UseOHSF @@ -416,21 +394,27 @@ MODULE Input_Opt_Mod LOGICAL :: FJX_EXTRAL_ERR = .TRUE. ! Toggle for het rates. If true, turns off three Cl producing het reactions ! in the stratosphere. In MODEL_GEOS, this flag is set in GEOSCHEMchem_GridComp.rc - LOGICAL :: TurnOffHetRates = .FALSE. + LOGICAL :: TurnOffHetRates = .TRUE. + INTEGER :: KppCheckNegatives = -1 ! Check for negatives after KPP integration + REAL(fp) :: KppTolScale = 1.0_fp ! Tolerance scale factor for 2nd KPP integration + LOGICAL :: applyQtend = .FALSE. ! Apply water vapor tendency + LOGICAL :: GC_VMBarrier_Run2 = .FALSE. ! Flag for a parallelization barrier after Chem #else LOGICAL :: AlwaysSetH2O LOGICAL :: TurnOffHetRates #endif -#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) +#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) || defined( MODEL_CESM ) LOGICAL :: KppStop = .TRUE. ! Stop KPP if integration fails twice #endif #if defined( MODEL_CESM ) - LOGICAL :: onlineAlbedo = .TRUE. ! Use albedo from land model - LOGICAL :: onlineLandTypes = .TRUE. ! Use land types from land model - LOGICAL :: ddVel_CLM = .TRUE. ! Use dry deposition velocities as computed by the Community Land Model - LOGICAL :: applyQtend = .TRUE. ! Apply water vapor tendency to specific humidity + ! Use albedo from land model + LOGICAL :: onlineAlbedo = .TRUE. + ! Apply water vapor tendency to specific humidity + LOGICAL :: applyQtend = .TRUE. + ! Apply photolytic correction for convective scavenging of soluble tracers? + LOGICAL :: correctConvUTLS = .TRUE. #endif #ifdef ADJOINT @@ -456,6 +440,12 @@ MODULE Input_Opt_Mod INTEGER :: LINOZ_NFIELDS REAL(fp), POINTER :: LINOZ_TPARM(:,:,:,:) +#if defined( ESMF_ ) + ! ESMF logger + class(Logger), pointer :: lgr + Character(Len=255) :: compname +#endif + END TYPE OptInput ! ! !REMARKS: @@ -517,25 +507,11 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) ! Set pointers to NULL for safety's sake !---------------------------------------- RC = GC_SUCCESS - Input_Opt%PASSIVE_NAME => NULL() - Input_Opt%PASSIVE_ID => NULL() - Input_Opt%PASSIVE_MW => NULL() - Input_Opt%PASSIVE_TAU => NULL() - Input_Opt%PASSIVE_INITCONC => NULL() - Input_Opt%PASSIVE_DECAYID => NULL() Input_Opt%AdvectSpc_Name => NULL() Input_Opt%SALA_REDGE_um => NULL() Input_Opt%SALC_REDGE_um => NULL() Input_Opt%LSKYRAD => NULL() Input_Opt%LSPECRADMENU => NULL() - Input_Opt%NJDAY => NULL() - Input_Opt%TINDEX => NULL() - Input_Opt%TCOUNT => NULL() - Input_Opt%TMAX => NULL() - Input_Opt%ND51_TRACERS => NULL() - Input_Opt%ND51b_TRACERS => NULL() - Input_Opt%FAM_NAME => NULL() - Input_Opt%FAM_TYPE => NULL() Input_Opt%LINOZ_TPARM => NULL() !---------------------------------------- @@ -557,14 +533,8 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) ! ! Set to large placeholder values !---------------------------------------- -#ifdef RRTMG - Input_Opt%Max_BPCH_Diag = 187 ! Mirror MAX_DIAG in CMN_DIAG_mod.F90 -#else - Input_Opt%Max_BPCH_Diag = 80 ! Mirror MAX_DIAG in CMN_DIAG_mod.F90 -#endif Input_Opt%Max_Families = 250 Input_Opt%Max_AdvectSpc = 600 - Input_Opt%Max_PassiveSpc = 50 !---------------------------------------- ! SIMULATION MENU fields @@ -581,18 +551,20 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) Input_Opt%SimulationName = '' Input_Opt%SpcDatabaseFile = '' Input_Opt%SpcMetaDataOutFile = '' + Input_Opt%ITS_AN_AEROSOL_SIM = .FALSE. Input_Opt%ITS_A_CARBON_SIM = .FALSE. Input_Opt%ITS_A_CH4_SIM = .FALSE. Input_Opt%ITS_A_CO2_SIM = .FALSE. Input_Opt%ITS_A_FULLCHEM_SIM = .FALSE. Input_Opt%ITS_A_MERCURY_SIM = .FALSE. Input_Opt%ITS_A_POPS_SIM = .FALSE. - Input_Opt%ITS_A_RnPbBe_SIM = .FALSE. - Input_Opt%ITS_A_TAGO3_SIM = .FALSE. Input_Opt%ITS_A_TAGCO_SIM = .FALSE. - Input_Opt%ITS_AN_AEROSOL_SIM = .FALSE. + Input_Opt%ITS_A_TAGO3_SIM = .FALSE. Input_Opt%ITS_A_TRACEMETAL_SIM = .FALSE. - Input_Opt%LPRT = .FALSE. + Input_Opt%ITS_A_TRACER_SIM = .FALSE. + Input_Opt%VerboseRequested = .FALSE. + Input_Opt%VerboseOnCores = '' + Input_Opt%Verbose = .FALSE. Input_Opt%useTimers = .FALSE. !---------------------------------------- @@ -607,28 +579,6 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) Input_Opt%AdvectSpc_Name = '' Input_Opt%LSPLIT = .FALSE. - !---------------------------------------- - ! PASSIVE SPECIES MENU fields - !---------------------------------------- - - ALLOCATE( Input_Opt%PASSIVE_NAME ( Input_Opt%Max_PassiveSpc ), STAT=RC ) - ALLOCATE( Input_Opt%PASSIVE_LONGNAME( Input_Opt%Max_PassiveSpc ), STAT=RC ) - ALLOCATE( Input_Opt%PASSIVE_ID ( Input_Opt%Max_PassiveSpc ), STAT=RC ) - ALLOCATE( Input_Opt%PASSIVE_MW ( Input_Opt%Max_PassiveSpc ), STAT=RC ) - ALLOCATE( Input_Opt%PASSIVE_TAU ( Input_Opt%Max_PassiveSpc ), STAT=RC ) - ALLOCATE( Input_Opt%PASSIVE_INITCONC( Input_Opt%Max_PassiveSpc ), STAT=RC ) - ALLOCATE( Input_Opt%PASSIVE_DECAYID ( Input_Opt%Max_PassiveSpc ), STAT=RC ) - - Input_Opt%NPASSIVE = 0 - Input_Opt%NPASSIVE_DECAY = 0 - Input_Opt%PASSIVE_NAME = '' - Input_Opt%PASSIVE_LONGNAME = '' - Input_Opt%PASSIVE_ID = 0 - Input_Opt%PASSIVE_MW = 0.0_fp - Input_Opt%PASSIVE_TAU = 0.0_fp - Input_Opt%PASSIVE_INITCONC = 0.0_fp - Input_Opt%PASSIVE_DECAYID = 0 - !---------------------------------------- ! AEROSOL MENU fields !---------------------------------------- @@ -693,19 +643,9 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) !---------------------------------------- ! CO2 MENU fields !---------------------------------------- - Input_Opt%LFOSSIL = .FALSE. Input_Opt%LCHEMCO2 = .FALSE. - Input_Opt%LBIOFUEL = .FALSE. - Input_Opt%LBIODIURNAL = .FALSE. - Input_Opt%LBIONETCLIM = .FALSE. - Input_Opt%LOCEAN = .FALSE. - Input_Opt%LSHIP = .FALSE. - Input_Opt%LPLANE = .FALSE. - Input_Opt%LFFBKGRD = .FALSE. Input_Opt%LBIOSPHTAG = .FALSE. Input_Opt%LFOSSILTAG = .FALSE. - Input_Opt%LSHIPTAG = .FALSE. - Input_Opt%LPLANETAG = .FALSE. !---------------------------------------- ! CHEMISTRY MENU fields @@ -736,7 +676,9 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) !---------------------------------------- ! PHOTOLYSIS MENU fields !---------------------------------------- - Input_Opt%FAST_JX_DIR = './' + Input_Opt%Do_Photolysis = .FALSE. + Input_Opt%FAST_JX_DIR = '' + Input_Opt%CloudJ_Dir = '' !---------------------------------------- ! RADIATION MENU fields (for RRTMG only) @@ -757,7 +699,7 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) IF ( RC /= GC_SUCCESS ) RETURN ! Number of RRTMG outputs (change as necessary) - Input_Opt%NSpecRadMenu = 11 + Input_Opt%NSpecRadMenu = 17 arrayId = 'Input_Opt%LSPECRADMENU' ALLOCATE( Input_Opt%LSPECRADMENU( Input_Opt%NSpecRadMenu ), STAT=RC ) @@ -773,6 +715,11 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) Input_Opt%NWVSELECT = 0 Input_Opt%WVSELECT = 0.0_fp Input_Opt%STRWVSELECT = '' + Input_Opt%RRTMG_CO2_ppmv = 3.90e-4_fp + Input_Opt%RRTMG_FDH = .FALSE. + Input_Opt%RRTMG_SEFDH = .FALSE. + Input_Opt%RRTMG_SA_TOA = .FALSE. + Input_Opt%Read_Dyn_Heating = .FALSE. !---------------------------------------- ! TRANSPORT MENU fields @@ -805,13 +752,6 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) Input_Opt%RS_SCALE = 1.0_fp Input_Opt%RA_Alt_Above_Sfc = 10 ! default height - - !---------------------------------------- - ! GAMAP_MENU fields - !---------------------------------------- - Input_Opt%GAMAP_DIAGINFO = '' - Input_Opt%GAMAP_TRACERINFO = '' - !---------------------------------------- ! OUTPUT MENU fields !---------------------------------------- @@ -827,28 +767,6 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) !---------------------------------------- Input_Opt%HistoryInputFile = '' Input_Opt%DIAG_COLLECTION = -999 - Input_Opt%TS_DIAG = 0 - ALLOCATE( Input_Opt%TCOUNT( Input_Opt%Max_BPCH_Diag ), STAT=RC ) - ALLOCATE( Input_Opt%TMAX ( Input_Opt%Max_BPCH_Diag ), STAT=RC ) - - Input_Opt%ND03 = 0 - Input_Opt%ND06 = 0 - Input_Opt%ND44 = 0 - Input_Opt%ND53 = 0 - Input_Opt%ND59 = 0 - Input_Opt%ND60 = 0 - Input_Opt%ND61 = 0 - Input_Opt%ND65 = 0 - Input_Opt%TCOUNT(:) = 0 - Input_Opt%TMAX(:) = 0 -#if defined( ESMF_ ) || defined( EXTERNAL_GRID ) || defined( EXTERNAL_FORCING ) - ! Need to shut off G-C diagnostics when - ! connecting to an external GCM (bmy, 3/29/13) - Input_Opt%DO_DIAG_WRITE = .FALSE. -#else - ! For traditional G-C runs, always write diags (bmy, 3/29/13) - Input_Opt%DO_DIAG_WRITE = .TRUE. -#endif !---------------------------------------- ! PLANEFLIGHT MENU fields @@ -933,14 +851,20 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) !---------------------------------------- ! CH4 MENU fields !---------------------------------------- - Input_Opt%GOSAT_CH4_OBS = .FALSE. - Input_Opt%AIRS_CH4_OBS = .FALSE. - Input_Opt%TCCON_CH4_OBS = .FALSE. - Input_Opt%AnalyticalInv = .FALSE. - Input_Opt%PerturbEmis = 1.0 - Input_Opt%StateVectorElement = 0 - Input_Opt%UseEmisSF = .FALSE. - Input_Opt%UseOHSF = .FALSE. + Input_Opt%Satellite_CH4_Columns = .FALSE. + Input_Opt%GOSAT_CH4_OBS = .FALSE. + Input_Opt%AIRS_CH4_OBS = .FALSE. + Input_Opt%TCCON_CH4_OBS = .FALSE. + Input_Opt%DoAnalyticalInv = .FALSE. + Input_Opt%StateVectorElement = 0 + Input_Opt%EmisPerturbFactor = 1.0 + Input_Opt%DoPerturbCH4BoundaryConditions = .FALSE. + Input_Opt%CH4BoundaryConditionIncreaseNorth = 0.0_fp + Input_Opt%CH4BoundaryConditionIncreaseSouth = 0.0_fp + Input_Opt%CH4BoundaryConditionIncreaseEast = 0.0_fp + Input_Opt%CH4BoundaryConditionIncreaseWest = 0.0_fp + Input_Opt%UseEmisSF = .FALSE. + Input_Opt%UseOHSF = .FALSE. !---------------------------------------- ! POPS MENU fields @@ -1009,75 +933,14 @@ SUBROUTINE Set_Input_Opt( am_I_Root, Input_Opt, RC ) Input_Opt%LINOZ_TPARM = 0.0_fp - END SUBROUTINE Set_Input_Opt -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Set_Input_Opt_Advect -! -! !DESCRIPTION: Subroutine SET\_INPUT\_OPT\_ADVECT intializes all GEOS-Chem -! options carried in Input Options derived type object that depend on -! the number of advected species (Input\_Opt%N_ADVECT). -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE Set_Input_Opt_Advect( Input_Opt, RC ) -! -! !USES: -! - USE ErrCode_Mod -! -! !INPUT/OUTPUT PARAMETERS: -! - TYPE(OptInput), INTENT(INOUT) :: Input_Opt ! Input Options object -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT(OUT) :: RC ! Success or failure? -! -! !REMARKS: -! NOTE: These arrays are all for bpch diagnostics, and will eventually -! be removed from GEOS-Chem. - -! !REVISION HISTORY: -! 26 Jan 2018 - M. Sulprizio- Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC -! -! !LOCAL VARIABLES: -! - ! Initialize - RC = GC_SUCCESS - - !======================================================================= - ! Allocate arrays - !======================================================================= - - ALLOCATE( Input_Opt%TINDEX(Input_Opt%Max_BPCH_Diag,Input_Opt%N_ADVECT), & - STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%TINDEX', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%TINDEX = 0 - - ALLOCATE( Input_Opt%ND51_TRACERS (Input_Opt%N_ADVECT+Input_Opt%Max_BPCH_Diag),& - STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%ND51_TRACERS', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%ND51_TRACERS = 0 - - ALLOCATE( Input_Opt%ND51b_TRACERS(Input_Opt%N_ADVECT+Input_Opt%Max_BPCH_Diag),& - STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%ND51b_TRACERS', 0, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%ND51b_TRACERS = 0 +#if defined( ESMF_ ) + ! Logger handle is set up by Chem_GridCompMod + Input_Opt%lgr => NULL() + ! Component name is acquired externally - this is a placeholder + Input_Opt%compname = 'GC' +#endif - END SUBROUTINE Set_Input_Opt_Advect + END SUBROUTINE Set_Input_Opt !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1119,49 +982,6 @@ SUBROUTINE Cleanup_Input_Opt( Input_Opt, RC ) !====================================================================== ! Deallocate fields of the Input Options object !====================================================================== - IF ( ASSOCIATED( Input_Opt%PASSIVE_NAME ) ) THEN - DEALLOCATE( Input_Opt%PASSIVE_NAME, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%PASSIVE_NAME', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%PASSIVE_NAME => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%PASSIVE_LONGNAME ) ) THEN - DEALLOCATE( Input_Opt%PASSIVE_LONGNAME ) - ENDIF - - IF ( ASSOCIATED( Input_Opt%PASSIVE_ID ) ) THEN - DEALLOCATE( Input_Opt%PASSIVE_ID, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%PASSIVE_ID', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%PASSIVE_ID => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%PASSIVE_MW ) ) THEN - DEALLOCATE( Input_Opt%PASSIVE_MW, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%PASSIVE_MW', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%PASSIVE_MW => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%PASSIVE_TAU ) ) THEN - DEALLOCATE( Input_Opt%PASSIVE_TAU, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%PASSIVE_TAU', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%PASSIVE_TAU => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%PASSIVE_INITCONC ) ) THEN - DEALLOCATE( Input_Opt%PASSIVE_INITCONC, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%PASSIVE_INITCONC', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%PASSIVE_INITCONC => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%PASSIVE_DECAYID ) ) THEN - DEALLOCATE( Input_Opt%PASSIVE_DECAYID ) - ENDIF - IF ( ASSOCIATED( Input_Opt%AdvectSpc_Name ) ) THEN DEALLOCATE( Input_Opt%AdvectSpc_Name, STAT=RC ) CALL GC_CheckVar( 'Input_Opt%AdvectSpcName', 2, RC ) @@ -1183,62 +1003,6 @@ SUBROUTINE Cleanup_Input_Opt( Input_Opt, RC ) Input_Opt%SALC_REDGE_um => NULL() ENDIF - IF ( ASSOCIATED( Input_Opt%NJDAY ) ) THEN - DEALLOCATE( Input_Opt%NJDAY, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%NJDAY', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%NJDAY => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%TINDEX ) ) THEN - DEALLOCATE( Input_Opt%TINDEX, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%TINDEX', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%TINDEX => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%TCOUNT ) ) THEN - DEALLOCATE( Input_Opt%TCOUNT, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%TCOUNT', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%TCOUNT => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%TMAX ) ) THEN - DEALLOCATE( Input_Opt%TMAX, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%TMAX', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%TMAX => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%ND51_TRACERS ) ) THEN - DEALLOCATE( Input_Opt%ND51_TRACERS, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%ND51_TRACERS', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%ND51_TRACERS => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%ND51b_TRACERS ) ) THEN - DEALLOCATE( Input_Opt%ND51b_TRACERS, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%ND51b_TRACERS', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%ND51b_TRACERS => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%FAM_NAME ) ) THEN - DEALLOCATE( Input_Opt%FAM_NAME, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%FAM_NAME', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%FAM_NAME => NULL() - ENDIF - - IF ( ASSOCIATED( Input_Opt%FAM_TYPE ) ) THEN - DEALLOCATE( Input_Opt%FAM_TYPE, STAT=RC ) - CALL GC_CheckVar( 'Input_Opt%FAM_TYPE', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - Input_Opt%FAM_TYPE => NULL() - ENDIF - IF ( ASSOCIATED( Input_Opt%LINOZ_TPARM ) ) THEN DEALLOCATE( Input_Opt%LINOZ_TPARM, STAT=RC ) CALL GC_CheckVar( 'Input_Opt%LINOZ_TPARM', 2, RC ) @@ -1308,6 +1072,10 @@ SUBROUTINE Cleanup_Input_Opt( Input_Opt, RC ) ENDIF #endif +#if defined( ESMF_ ) + If (Associated(Input_Opt%lgr)) Input_Opt%lgr => NULL() +#endif + END SUBROUTINE Cleanup_Input_Opt !EOC END MODULE Input_Opt_Mod diff --git a/Headers/phot_container_mod.F90 b/Headers/phot_container_mod.F90 new file mode 100644 index 000000000..e180dedef --- /dev/null +++ b/Headers/phot_container_mod.F90 @@ -0,0 +1,772 @@ +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !MODULE: phot_container_mod.F90 +! +! !DESCRIPTION: Module PHOT\_CONTAINER\_MOD contains the derived type used +! to store photolysis and optics data in GEOS-Chem. +!\\ +!\\ +! !INTERFACE: +! +MODULE Phot_Container_Mod +! +! USES: +! + USE ErrCode_Mod + USE Precision_Mod + + IMPLICIT NONE + PRIVATE +! +! !PUBLIC MEMBER FUNCTIONS: +! + PUBLIC :: Init_Phot_Container + PUBLIC :: Cleanup_Phot_Container +! +! !PUBLIC DATA MEMBERS: +! + ! Parameters used for allocation + + !========================================================================= + ! Derived type for photolysis and optics data container + !========================================================================= + TYPE, PUBLIC :: PhotContainer + + ! Scalars set during object initialization + INTEGER :: IND999 ! Index in RAA & QAA of 999 nm + INTEGER :: NWVAA ! # LUT wavelengths (RRTMG) + INTEGER :: NSPAA ! # LUT species (RRTMG) + INTEGER :: NRAA ! # LUT aerosol sizes (RRTMG) + INTEGER :: NWVAA0 ! # non-RRTMG wavelengths + INTEGER :: NALBD ! ?? + INTEGER :: NEMISS ! ?? + INTEGER :: NASPECRAD ! # RRTMG aerosol species + INTEGER :: NSPECRAD ! # RRTMG aerosol+gas species + INTEGER :: NDRg ! # LUT SNA and OM dry aerosol size bin + INTEGER :: DRg ! # identifier of the default dry aerosol size + + ! Scalars + INTEGER :: JTAUMX ! max # divisions + + ! For RRTMG? + INTEGER :: NWVAART ! # RRTMG wavelengths + INTEGER :: NWVREQUIRED ! # WLs needed for interpolation + INTEGER :: NRTWVREQUIRED! # WLs needed for RT interpolation + INTEGER :: IWV1000 ! WL index for 1000 nm + + ! Renamed from Fast-JX module variables for clarity + INTEGER :: nWLbins ! # WL bins (W_) + INTEGER :: nPhotRxns ! # photolysis reactions in CTM chemistry (NRATJ) + INTEGER :: nMaxPhotRxns ! Maximum # of photolysis reactions (JVN_?) + + ! Photo-reaction flags for reactions adjusted in PhotRate_Adj + INTEGER :: RXN_O2 ! O2 + jv --> O + O + INTEGER :: RXN_O3_1 ! O3 + hv --> O2 + O + INTEGER :: RXN_O3_2 ! O3 + hv --> O2 + O(1D) + INTEGER :: RXN_H2SO4 ! SO4 + hv --> SO2 + 2OH + INTEGER :: RXN_NO2 ! NO2 + hv --> NO + O + INTEGER :: RXN_JHNO3 ! HNO3 + hv --> OH + NO2 + INTEGER :: RXN_JNITSa ! NITs + hv --> HNO2 + INTEGER :: RXN_JNITSb ! NITs + hv --> NO2 + INTEGER :: RXN_JNITa ! NIT + hv --> HNO2 + INTEGER :: RXN_JNITb ! NIT + hv --> NO2 + INTEGER :: RXN_NO ! For ucx_mod + INTEGER :: RXN_NO3 ! For ucx_mod + INTEGER :: RXN_N2O ! For ucx_mod + INTEGER :: RXN_BrO ! For Hg chem + INTEGER :: RXN_ClO ! For Hg chem + + ! Arrays + INTEGER, ALLOCATABLE :: RINDEX (:) ! GC to UCI spc name index mapping + INTEGER, ALLOCATABLE :: GC_Photo_Id(:) ! GC id per photolysis species + INTEGER, ALLOCATABLE :: MIEDX (:) ! Interface indices for GC/FJX spc + + REAL(fp), ALLOCATABLE :: UVXFACTOR(:) ! Photons/cm2s -> W/m2 conv factors + REAL(fp), ALLOCATABLE :: QAA_AOD (:) ! Single scattering albedo + REAL(fp), ALLOCATABLE :: WAA_AOD (:) ! Aerosol scattering phase fnctns + REAL(fp), ALLOCATABLE :: PAA_AOD (:) ! WLs for supplied phase functions + REAL(fp), ALLOCATABLE :: RAA_AOD (:) ! Phase fnctn (first 8 terms) + REAL(fp), ALLOCATABLE :: SAA_AOD (:) ! Aerosol type effective radius + + REAL(fp), ALLOCATABLE :: TREF (:,:,:) ! Temp reference profile + REAL(fp), ALLOCATABLE :: OREF (:,:,:) ! Ozone reference profile + REAL(fp), ALLOCATABLE :: ZPJ (:,:,:,:) ! J-values + + ! RRTMG allocatable arrays + INTEGER, ALLOCATABLE :: SPECMASK (:) ! binary switches for spc flux + INTEGER, ALLOCATABLE :: IWVREQUIRED (:) ! WL indexes for interpolation + INTEGER, ALLOCATABLE :: IRTWVREQUIRED(:) ! WL indexes for RT interp + INTEGER, ALLOCATABLE :: IWVSELECT (:,:) ! Indexes of requested WLs + INTEGER, ALLOCATABLE :: IRTWVSELECT (:,:) ! Indexes of requested RT WLs + INTEGER, ALLOCATABLE :: IRHARR (:,:,:) ! Relative humidity indices + + REAL*8, ALLOCATABLE :: ACOEF_WV (:) ! Coeffs for WL interpolation + REAL*8, ALLOCATABLE :: BCOEF_WV (:) ! Coeffs for WL interpolation + REAL*8, ALLOCATABLE :: CCOEF_WV (:) ! Coeffs for WL interpolation + REAL*8, ALLOCATABLE :: ACOEF_RTWV(:) ! Coeffs for RT WL interpolation + REAL*8, ALLOCATABLE :: BCOEF_RTWV(:) ! Coeffs for RT WL interpolation + REAL*8, ALLOCATABLE :: CCOEF_RTWV(:) ! Coeffs for RT WL interpolation + REAL*8, ALLOCATABLE :: WVAA (:,:) ! Wavelength read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: RHAA (:,:) ! RH read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: RDAA (:,:,:) ! Dry aerosol Rg read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: RWAA (:,:,:) ! Wet aerosol Rg read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: SGAA (:,:) ! Aerosol size geometric std. read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: REAA (:,:,:) ! Effective Radius read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: NRLAA (:,:,:) ! RI real part read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: NCMAA (:,:,:) ! RI imaginary part read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: QQAA (:,:,:,:) ! Extinction Effciency read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: ALPHAA (:,:,:,:) ! Alpha read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: SSAA (:,:,:,:) ! ss-alb read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: ASYMAA (:,:,:,:) ! g-sym read from LUTs (so4.dat etc.) + REAL*8, ALLOCATABLE :: PHAA (:,:,:,:,:) ! phase function read from LUTs (so4.dat etc.) + + ! For optical depth diagnostics + REAL(fp), ALLOCATABLE :: ISOPOD (:,:,:,:) ! Isoprene optical depth + REAL(fp), ALLOCATABLE :: ODMDUST (:,:,:,:,:) ! Dust optical depth + REAL(fp), ALLOCATABLE :: ODAER (:,:,:,:,:) ! Aerosol optical depth + +#ifdef RRTMG + REAL*8, ALLOCATABLE :: RTODAER (:,:,:,:,:) ! Optical dust + REAL*8, ALLOCATABLE :: RTSSAER (:,:,:,:,:) ! ?? + REAL*8, ALLOCATABLE :: RTASYMAER (:,:,:,:,:) ! ?? +#endif + + END TYPE PhotContainer +! +! !REMARKS: +! +! !REVISION HISTORY: +! 28 Nov 2022 - E. Lundgren- Initial version, based on state_grid_mod.F90 +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +CONTAINS +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Init_Phot_Container +! +! !DESCRIPTION: Subroutine INIT\_PHOT\_Container allocates and initializes +! the Phot container object. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Init_Phot_Container( Input_Opt, State_Grid, Phot, RC ) +! +! !USES: +! +#ifdef FASTJX + USE CMN_FJX_Mod, ONLY : A_, AN_, W_, WX_, JVN_, N_, L_ +#else + USE Cldj_Cmn_Mod, ONLY : A_, AN_, W_, WX_, JVN_, N_, L_ +#endif + USE CMN_Size_Mod, ONLY : NDUST, NAER + USE ErrCode_Mod + USE Input_Opt_Mod, ONLY : OptInput + USE State_Grid_Mod, ONLY : GrdState +! +! !INPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(GrdState), INTENT(IN) :: State_Grid ! Grid object +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(PhotContainer), POINTER :: Phot ! Phot data container +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REVISION HISTORY: +! 28 Nov 2022 - E. Lundgren- Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + CHARACTER(LEN=255) :: errMsg, thisLoc + + !====================================================================== + ! Allocate and initialize module variables + !====================================================================== + + ! Assume success + RC = GC_SUCCESS + thisLoc = ' -> at Init_Phot_Container (in module Headers/phot_container_mod.F90)' + + ! Constants + Phot%IND999 = 5 ! Index in RAA & QAA of 999 nm + Phot%NWVAA = 41 ! # LUT wavelengths (RRTMG) + Phot%NSPAA = 8 ! # LUT species (RRTMG) + Phot%NRAA = 7 ! # LUT aerosol sizes (RRTMG) + Phot%NWVAA0 = 11 ! # non-RRTMG wavelengths + Phot%NALBD = 2 ! ?? + Phot%NEMISS = 16 ! ?? + Phot%NASPECRAD = 16 ! # RRTMG aerosol species + Phot%NSPECRAD = 23 ! # RRTMG aerosol+gas species + Phot%NDRg = 40 ! # LUT dry SNA and OM aerosol sizes + Phot%DRg = 6 ! # identifier of the default aerosol size + + ! Store certain values from Fast-JX with more intuitive name + Phot%nWLbins = W_ + Phot%nPhotRxns = 0 ! Set during photolysis initialization + Phot%nMaxPhotRxns = JVN_! Maximum # of photolysis reactions (JVN_?) + + ! Integer scalars + Phot%JTAUMX = (N_-4*L_)/2 + + Phot%RXN_O2 = -1 + Phot%RXN_O3_1 = -1 + Phot%RXN_O3_2 = -1 + Phot%RXN_H2SO4 = -1 + Phot%RXN_NO2 = -1 + Phot%RXN_JHNO3 = -1 + Phot%RXN_JNITSa = -1 + Phot%RXN_JNITSb = -1 + Phot%RXN_JNITa = -1 + Phot%RXN_JNITb = -1 + Phot%RXN_NO = -1 + Phot%RXN_NO3 = -1 + Phot%RXN_N2O = -1 + Phot%RXN_BrO = -1 + Phot%RXN_ClO = -1 + + ! Allocate arrays + IF ( .not. Input_Opt%DryRun ) THEN + + ! Integer arrays + + ! Phot%RINDEX (:) + ALLOCATE( Phot%RINDEX( Phot%nMaxPhotRxns ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array RINDEX!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%RINDEX = 0 + + ! Phot%GC_Photo_Id (:) + ALLOCATE( Phot%GC_Photo_Id( Phot%nMaxPhotRxns ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array GC_Photo_Id!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%GC_Photo_Id = 0 + + ! Phot%MIEDX (:) + ALLOCATE( Phot%MIEDX( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array MIEDX!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%MIEDX = 0 + + ! Real(fp) arrays + + ! Phot%UVXFACTOR(:) + ALLOCATE( Phot%UVXFACTOR( WX_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array UVXFACTOR!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%UVXFACTOR = 0e+0_fp + + ! Phot%QAA_AOD (:) + ALLOCATE( Phot%QAA_AOD( A_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array QAA_AOD!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%QAA_AOD = 0e+0_fp + + ! Phot%WAA_AOD (:) + ALLOCATE( Phot%WAA_AOD( A_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array WAA_AOD!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%WAA_AOD = 0e+0_fp + + ! Phot%PAA_AOD (:) + ALLOCATE( Phot%PAA_AOD( A_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array PAA_AOD!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%PAA_AOD = 0e+0_fp + + ! Phot%RAA_AOD (:) + ALLOCATE( Phot%RAA_AOD( A_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array RAA_AOD!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%RAA_AOD = 0e+0_fp + + ! Phot%SAA_AOD (:) + ALLOCATE( Phot%SAA_AOD( A_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SAA_AOD!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%SAA_AOD = 0e+0_fp + + ! Phot%TREF (:,:,:) + ALLOCATE( Phot%TREF( 51, 18, 12 ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array TREF!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%TREF = 0e+0_fp + + ! Phot%OREF (:,:,:) + ALLOCATE( Phot%OREF( 51, 18, 12 ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array OREF!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%OREF = 0e+0_fp + + ! Phot%ZPJ (:,:,:,:) + ALLOCATE( Phot%ZPJ( State_Grid%NZ, Phot%nMaxPhotRxns, State_Grid%NX, & + State_Grid%NY ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ZPJ!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%ZPJ = 0e+0_fp + + ENDIF + + !-------------------------------------------------- + ! Fields for RRTMG and optical depth diagnostics + !-------------------------------------------------- + + ! Other scalars + Phot%NWVAART = Phot%NWVAA-Phot%NWVAA0 ! # RRTMG wavelengths + + ! Scalars set in subroutine CALC_AOD + Phot%NWVREQUIRED = 0 + Phot%NRTWVREQUIRED = 0 + + ! Scalars set in subroutine RD_AOD + Phot%IWV1000 = 0 + + ! Allocate arrays + IF ( .not. Input_Opt%DryRun ) THEN + + ! RRTMG integer arrays + + ! Phot%SPECMASK (:) + ALLOCATE( Phot%SPECMASK( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SPECMASK!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%SPECMASK = 0 + + ! Phot%IWVREQUIRED (:) + ALLOCATE( Phot%IWVREQUIRED( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array IWVREQUIRED!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%IWVREQUIRED = 0 + + ! Phot%IRTWVREQUIRED(:) + ALLOCATE( Phot%IRTWVREQUIRED( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array IRTWVREQUIRED!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%IRTWVREQUIRED = 0 + + ! Phot%IWVSELECT (:,:) + ALLOCATE( Phot%IWVSELECT( 2, 3 ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array IWVSELECT!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%IWVSELECT = 0 + + ! Phot%IRTWVSELECT (:,:) + ALLOCATE( Phot%IRTWVSELECT( 2, 3 ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array IRTWVSELECT!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%IRTWVSELECT = 0 + + ! Phot%IRHARR (:,:,:) + ALLOCATE( Phot%IRHARR( State_Grid%NX, State_Grid%NY, & + State_Grid%NZ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array IRHARR!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%IRHARR = 0d0 + + ! RRTMG real*8 arrays + + ! Phot%ACOEF_WV (:) + ALLOCATE( Phot%ACOEF_WV( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ACOEF_WV!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%ACOEF_WV = 0d0 + + ! Phot%BCOEF_WV (:) + ALLOCATE( Phot%BCOEF_WV( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array BCOEF_WV!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%BCOEF_WV = 0d0 + + ! Phot%CCOEF_WV (:) + ALLOCATE( Phot%CCOEF_WV( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array CCOEF_WV!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%CCOEF_WV = 0d0 + + ! Phot%ACOEF_RTWV(:) + ALLOCATE( Phot%ACOEF_RTWV( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ACOEF_RTWV!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%ACOEF_RTWV = 0d0 + + ! Phot%BCOEF_RTWV(:) + ALLOCATE( Phot%BCOEF_RTWV( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array BCOEF_RTWV!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%BCOEF_RTWV = 0d0 + + ! Phot%CCOEF_RTWV(:) + ALLOCATE( Phot%CCOEF_RTWV( AN_ ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array CCOEF_RTWV!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%CCOEF_RTWV = 0d0 + + ! Phot%WVAA (:,:) + ALLOCATE( Phot%WVAA( Phot%NWVAA, Phot%NSPAA ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array WVAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%WVAA = 0d0 + + ! Phot%RHAA (:,:) + ALLOCATE( Phot%RHAA( Phot%NRAA, Phot%NSPAA ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array RHAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%RHAA = 0d0 + + ! Phot%RDAA (:,:,:) ! H. Zhu + ALLOCATE( Phot%RDAA( Phot%NRAA, Phot%NSPAA, Phot%NDRg), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array RDAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%RDAA = 0d0 + + ! Phot%RWAA (:,:,:) ! H. Zhu + ALLOCATE( Phot%RWAA( Phot%NRAA, Phot%NSPAA, Phot%NDRg ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array RWAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%RWAA = 0d0 + + ! Phot%SGAA (:,:) + ALLOCATE( Phot%SGAA( Phot%NRAA, Phot%NSPAA ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SGAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%SGAA = 0d0 + + ! Phot%REAA (:,:,:) + ALLOCATE( Phot%REAA( Phot%NRAA, Phot%NSPAA, Phot%NDRg ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array REAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%REAA = 0d0 + + ! Phot%NRLAA (:,:,:) + ALLOCATE( Phot%NRLAA( Phot%NWVAA, Phot%NRAA, Phot%NSPAA ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array NRLAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%NRLAA = 0d0 + + ! Phot%NCMAA (:,:,:) + ALLOCATE( Phot%NCMAA( Phot%NWVAA, Phot%NRAA, Phot%NSPAA ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array NCMAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%NCMAA = 0d0 + + ! Phot%QQAA (:,:,:,:) + ALLOCATE( Phot%QQAA( Phot%NWVAA, Phot%NRAA, Phot%NSPAA, Phot%NDRg ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array QQAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%QQAA = 0d0 + + ! Phot%ALPHAA (:,:,:,:) + ALLOCATE( Phot%ALPHAA( Phot%NWVAA, Phot%NRAA, Phot%NSPAA, Phot%NDRg ), & + STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ALPHAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%ALPHAA = 0d0 + + ! Phot%SSAA (:,:,:,:) + ALLOCATE( Phot%SSAA( Phot%NWVAA, Phot%NRAA, Phot%NSPAA, Phot%NDRg ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array SSAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%SSAA = 0d0 + + ! Phot%ASYMAA (:,:,:,:) + ALLOCATE( Phot%ASYMAA( Phot%NWVAA, Phot%NRAA, Phot%NSPAA, Phot%NDRg ), & + STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ASYMAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%ASYMAA = 0d0 + + ! Phot%PHAA (:,:,:,:) + ALLOCATE( Phot%PHAA( Phot%NWVAA, Phot%NRAA, Phot%NSPAA, 8, Phot%NDRg ), & + STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array PHAA!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%PHAA = 0d0 + + ! Phot%ISOPOD (:,:,:,:) + ALLOCATE( Phot%ISOPOD( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + Phot%NWVAA ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ISOPOD!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%ISOPOD = 0e+0_fp + + ! Phot%ODMDUST (:,:,:,:,:) + ALLOCATE( Phot%ODMDUST( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + Phot%NWVAA, NDUST ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ODMDUST!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%ODMDUST = 0e+0_fp + + ! Phot%ODAER (:,:,:,:,:) + ALLOCATE( Phot%ODAER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + Phot%NWVAA, NAER ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array ODAER!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%ODAER = 0e+0_fp + +#ifdef RRTMG + ! Phot%RTODAER (:,:,:,:,:) + ! +2 to split SNA into SU, NI and AM + ALLOCATE( Phot%RTODAER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + Phot%NWVAA, NAER+2+NDUST ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array RTODAER!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%RTODAER = 0d0 + + ! Phot%RTSSAER (:,:,:,:,:) + ALLOCATE( Phot%RTSSAER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + Phot%NWVAA, NAER+2+NDUST ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array RTSSAER!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%RTSSAER = 0d0 + + ! Phot%RTASYMAER (:,:,:,:,:) + ALLOCATE( Phot%RTASYMAER( State_Grid%NX, State_Grid%NY, State_Grid%NZ, & + Phot%NWVAA, NAER+2+NDUST ), STAT=RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error allocating array RTASYMAER!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + Phot%RTASYMAER = 0d0 +#endif + + ENDIF + + END SUBROUTINE Init_Phot_Container +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Cleanup_Phot_Container +! +! !DESCRIPTION: Subroutine CLEANUP\_PHOT\_CONTAINER deallocates all fields +! of the phot container object. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Cleanup_Phot_Container( Phot, RC ) +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(PhotContainer), POINTER :: Phot ! Phot data container +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Return code +! +! !REVISION HISTORY: +! 28 Nov 2022 - E. Lundgren- Initial version +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC + + ! Assume success + RC = GC_SUCCESS + + !======================================================================= + ! Deallocate arrays + !======================================================================= + ! Will need to change this to just do arrays etc + IF ( ASSOCIATED( Phot ) ) THEN + IF (ALLOCATED(Phot%RINDEX )) DEALLOCATE(Phot%RINDEX ) + IF (ALLOCATED(Phot%GC_Photo_Id )) DEALLOCATE(Phot%GC_Photo_Id ) + IF (ALLOCATED(Phot%MIEDX )) DEALLOCATE(Phot%MIEDX ) + IF (ALLOCATED(Phot%UVXFACTOR )) DEALLOCATE(Phot%UVXFACTOR ) + IF (ALLOCATED(Phot%QAA_AOD )) DEALLOCATE(Phot%QAA_AOD ) + IF (ALLOCATED(Phot%WAA_AOD )) DEALLOCATE(Phot%WAA_AOD ) + IF (ALLOCATED(Phot%PAA_AOD )) DEALLOCATE(Phot%PAA_AOD ) + IF (ALLOCATED(Phot%RAA_AOD )) DEALLOCATE(Phot%RAA_AOD ) + IF (ALLOCATED(Phot%SAA_AOD )) DEALLOCATE(Phot%SAA_AOD ) + IF (ALLOCATED(Phot%TREF )) DEALLOCATE(Phot%TREF ) + IF (ALLOCATED(Phot%OREF )) DEALLOCATE(Phot%OREF ) + IF (ALLOCATED(Phot%ISOPOD )) DEALLOCATE(Phot%ISOPOD ) + IF (ALLOCATED(Phot%ZPJ )) DEALLOCATE(Phot%ZPJ ) + IF (ALLOCATED(Phot%ODMDUST )) DEALLOCATE(Phot%ODMDUST ) + IF (ALLOCATED(Phot%ODAER )) DEALLOCATE(Phot%ODAER ) + IF (ALLOCATED(Phot%SPECMASK )) DEALLOCATE(Phot%SPECMASK ) + IF (ALLOCATED(Phot%IWVREQUIRED )) DEALLOCATE(Phot%IWVREQUIRED ) + IF (ALLOCATED(Phot%IRTWVREQUIRED )) DEALLOCATE(Phot%IRTWVREQUIRED ) + IF (ALLOCATED(Phot%IWVSELECT )) DEALLOCATE(Phot%IWVSELECT ) + IF (ALLOCATED(Phot%IRTWVSELECT )) DEALLOCATE(Phot%IRTWVSELECT ) + IF (ALLOCATED(Phot%IRHARR )) DEALLOCATE(Phot%IRHARR ) + IF (ALLOCATED(Phot%ACOEF_WV )) DEALLOCATE(Phot%ACOEF_WV ) + IF (ALLOCATED(Phot%BCOEF_WV )) DEALLOCATE(Phot%BCOEF_WV ) + IF (ALLOCATED(Phot%CCOEF_WV )) DEALLOCATE(Phot%CCOEF_WV ) + IF (ALLOCATED(Phot%ACOEF_RTWV )) DEALLOCATE(Phot%ACOEF_RTWV ) + IF (ALLOCATED(Phot%BCOEF_RTWV )) DEALLOCATE(Phot%BCOEF_RTWV ) + IF (ALLOCATED(Phot%CCOEF_RTWV )) DEALLOCATE(Phot%CCOEF_RTWV ) + IF (ALLOCATED(Phot%WVAA )) DEALLOCATE(Phot%WVAA ) + IF (ALLOCATED(Phot%RHAA )) DEALLOCATE(Phot%RHAA ) + IF (ALLOCATED(Phot%RDAA )) DEALLOCATE(Phot%RDAA ) + IF (ALLOCATED(Phot%RWAA )) DEALLOCATE(Phot%RWAA ) + IF (ALLOCATED(Phot%SGAA )) DEALLOCATE(Phot%SGAA ) + IF (ALLOCATED(Phot%REAA )) DEALLOCATE(Phot%REAA ) + IF (ALLOCATED(Phot%NRLAA )) DEALLOCATE(Phot%NRLAA ) + IF (ALLOCATED(Phot%NCMAA )) DEALLOCATE(Phot%NCMAA ) + IF (ALLOCATED(Phot%QQAA )) DEALLOCATE(Phot%QQAA ) + IF (ALLOCATED(Phot%ALPHAA )) DEALLOCATE(Phot%ALPHAA ) + IF (ALLOCATED(Phot%SSAA )) DEALLOCATE(Phot%SSAA ) + IF (ALLOCATED(Phot%ASYMAA )) DEALLOCATE(Phot%ASYMAA ) + IF (ALLOCATED(Phot%PHAA )) DEALLOCATE(Phot%PHAA ) +#ifdef RRTMG + IF (ALLOCATED(Phot%RTODAER )) DEALLOCATE(Phot%RTODAER ) + IF (ALLOCATED(Phot%RTSSAER )) DEALLOCATE(Phot%RTSSAER ) + IF (ALLOCATED(Phot%RTASYMAER )) DEALLOCATE(Phot%RTASYMAER ) +#endif + + DEALLOCATE( Phot ) + Phot => NULL() + ENDIF + + END SUBROUTINE Cleanup_Phot_Container +!EOC + +END MODULE Phot_Container_Mod diff --git a/Headers/physconstants.F90 b/Headers/physconstants.F90 index e42bd11ef..375002a83 100644 --- a/Headers/physconstants.F90 +++ b/Headers/physconstants.F90 @@ -69,6 +69,12 @@ MODULE PHYSCONSTANTS ! ATM : Standard atmosphere [Pa] (Source: NIST, 2014) REAL(fp), PARAMETER :: ATM = 1.01325e+5_fp + ! PLANK : Plank's constant + REAL(fp), PARAMETER :: PLANCK = 6.62606957e-34_fp + + ! CCONST : Speed of light [m/s] + REAL(fp), PARAMETER :: CCONST = 2.99792458e+8_fp + ! Condensation vapor pressure ! ** NEED SOURCE ** ! We think 6.1078 hPa is the saturation vapor pressure at 273.16 K, the diff --git a/Headers/registry_mod.F90 b/Headers/registry_mod.F90 index cd03beffd..aecd52eb2 100644 --- a/Headers/registry_mod.F90 +++ b/Headers/registry_mod.F90 @@ -854,8 +854,9 @@ SUBROUTINE Registry_Print( Input_Opt, Registry, RC, ShortFormat ) ! Initialize !======================================================================= - ! Only print information on the root CPU - IF ( .not. Input_Opt%amIRoot ) RETURN + ! Only print information if (1) we are on the root CPU; + ! and (2) if debug printout has been selected. + IF ( .not. ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) ) RETURN ! Initialize fields RC = GC_SUCCESS diff --git a/Headers/roundoff_mod.F90 b/Headers/roundoff_mod.F90 index c1730e7f3..d1d7172fa 100644 --- a/Headers/roundoff_mod.F90 +++ b/Headers/roundoff_mod.F90 @@ -167,7 +167,10 @@ FUNCTION Cast_and_RoundOff_Real2Dble( v_real, places ) RESULT( v_dble ) ENDIF ! Cast to real*8 and roundoff (if the number isn't too large) - v_dble = RoundOff( DBLE( v_real ), places ) + v_dble = DBLE( v_real ) + IF ( places > 0 ) THEN + v_dble = RoundOff( v_dble, places ) + ENDIF END FUNCTION Cast_And_RoundOff_Real2Dble !EOC diff --git a/Headers/species_database_mod.F90 b/Headers/species_database_mod.F90 index eefd63fce..36357df61 100644 --- a/Headers/species_database_mod.F90 +++ b/Headers/species_database_mod.F90 @@ -128,7 +128,6 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) LOGICAL :: found_wd_rainouteff_luo LOGICAL :: found_wd_retfactor_luo LOGICAL :: no_luo - LOGICAL :: prtDebug LOGICAL :: v_bool LOGICAL :: wd_liqandgas_luo INTEGER :: v_int @@ -158,7 +157,8 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) REAL(f4) :: wd_rainouteff_luo(3) ! String arrays - CHARACTER(LEN=17) :: tags(48) + CHARACTER(LEN=17) :: tags(66) + CHARACTER(LEN=QFYAML_StrLen):: a_str(2) ! Objects TYPE(QFYAML_t) :: yml @@ -170,7 +170,6 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) ! Initialize RC = GC_SUCCESS - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) errMsg = "" thisLoc = & " -> at Init_Species_Database (in module Headers/species_database_mod.F90" @@ -189,6 +188,7 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) SpcCount%nPhotol = 0 SpcCount%nRadNucl = 0 SpcCount%nRealSpc = 0 + SpcCount%nTracer = 0 SpcCount%nWetDep = 0 SpcCount%nHg0 = 0 SpcCount%nHg2 = 0 @@ -208,6 +208,11 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) "Density ", & "Formula ", & "FullName ", & + "Henry_CR ", & + "Henry_CR_Luo ", & + "Henry_K0 ", & + "Henry_K0_Luo ", & + "Henry_pKa ", & "Is_Aerosol ", & "Is_DryAlt ", & "Is_DryDep ", & @@ -219,15 +224,28 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) "Is_Photolysis ", & "Is_RadioNuclide ", & "Is_WetDep ", & - "Henry_CR ", & - "Henry_CR_Luo ", & - "Henry_K0 ", & - "Henry_K0_Luo ", & - "Henry_pKa ", & + "Is_Tracer ", & + "KPP_AbsTol ", & + "KPP_RelTol ", & "MP_SizeResAer ", & "MP_SizeResNum ", & "MW_g ", & "Radius ", & + "Snk_Horiz ", & + "Snk_Lats ", & + "Snk_Mode ", & + "Snk_Period ", & + "Snk_Value ", & + "Snk_Vert ", & + "Src_Add ", & + "Src_Horiz ", & + "Src_Lats ", & + "Src_Mode ", & + "Src_Pressures ", & + "Src_Units ", & + "Src_Value ", & + "Src_Vert ", & + "Units ", & "WD_AerScavEff ", & "WD_CoarseAer ", & "WD_ConvFacI2G ", & @@ -577,6 +595,15 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) ThisSpc%Is_RadioNuclide = v_bool ENDIF + ELSE IF ( INDEX( key, "%Is_Tracer" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_bool, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + IF ( v_bool ) THEN + SpcCount%nTracer = SpcCount%nTracer + 1 + ThisSpc%TracerId = SpcCount%nTracer + ThisSpc%Is_Tracer = v_bool + ENDIF + ELSE IF ( INDEX( key, "%Is_WetDep" ) > 0 ) THEN CALL QFYAML_Add_Get( yml, key, v_bool, "", RC ) IF ( RC /= GC_SUCCESS ) GOTO 999 @@ -586,6 +613,16 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) ThisSpc%Is_WetDep = v_bool ENDIF + ELSE IF ( INDEX( key, "%KPP_AbsTol" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%KPP_AbsTol = Cast_and_RoundOff( v_str, -1 ) + + ELSE IF ( INDEX( key, "%KPP_RelTol" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_real, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%KPP_RelTol = Cast_and_RoundOff( v_str, -1 ) + ELSE IF ( INDEX( key, "%MP_SizeResAer" ) > 0 ) THEN CALL QFYAML_Add_Get( yml, key, v_bool, "", RC ) IF ( RC /= GC_SUCCESS ) GOTO 999 @@ -606,6 +643,87 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) IF ( RC /= GC_SUCCESS ) GOTO 999 ThisSpc%Radius = DBLE( v_real ) ! Don't round off + ELSE IF ( INDEX( key, "%Snk_Horiz" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Snk_Horiz = TRIM( v_str ) + + ELSE IF ( INDEX( key, "%Snk_Lats" ) > 0 ) THEN + a_str = MISSING_STR + CALL QFYAML_Add_Get( yml, TRIM( key ), a_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Snk_LatMin = Cast_and_RoundOff( a_str(1), 4 ) + ThisSpc%Snk_LatMax = Cast_and_RoundOff( a_str(2), 4 ) + + ELSE IF ( INDEX( key, "%Snk_Mode" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Snk_Mode = TRIM( v_str ) + + ELSE IF ( INDEX( key, "%Snk_Period" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_real, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Snk_Period = DBLE( v_real ) + + ELSE IF ( INDEX( key, "%Snk_Value" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_real, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Snk_Value = DBLE( v_real ) + + ELSE IF ( INDEX( key, "%Snk_Vert" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Snk_Vert = TRIM( v_str ) + + ELSE IF ( INDEX( key, "%Src_Add" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_bool, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Src_Add = v_bool + + ELSE IF ( INDEX( key, "%Src_Horiz" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Src_Horiz = TRIM( v_str ) + + ELSE IF ( INDEX( key, "%Src_Lats" ) > 0 ) THEN + a_str = MISSING_STR + CALL QFYAML_Add_Get( yml, TRIM( key ), a_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Src_LatMin = Cast_and_RoundOff( a_str(1), 4 ) + ThisSpc%Src_LatMax = Cast_and_RoundOff( a_str(2), 4 ) + + ELSE IF ( INDEX( key, "%Src_Mode" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Src_Mode = TRIM( v_str ) + + ELSE IF ( INDEX( key, "%Src_Pressures" ) > 0 ) THEN + a_str = MISSING_STR + CALL QFYAML_Add_Get( yml, TRIM( key ), a_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Src_PresMin = Cast_and_RoundOff( a_str(1), 4 ) + ThisSpc%Src_PresMax = Cast_and_RoundOff( a_str(2), 4 ) + + ELSE IF ( INDEX( key, "%Src_Units" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Src_Units = TRIM( v_str ) + + ELSE IF ( INDEX( key, "%Src_Value" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_real, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Src_Value = DBLE( v_real ) + + ELSE IF ( INDEX( key, "%Src_Vert" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Src_Vert = TRIM( v_str ) + + ELSE IF ( INDEX( key, "%Units" ) > 0 ) THEN + CALL QFYAML_Add_Get( yml, key, v_str, "", RC ) + IF ( RC /= GC_SUCCESS ) GOTO 999 + ThisSpc%Units = TRIM( v_str ) + ELSE IF ( INDEX( key, "%WD_AerScavEff" ) > 0 ) THEN CALL QFYAML_Add_Get( yml, key, v_real, "", RC ) IF ( RC /= GC_SUCCESS ) GOTO 999 @@ -733,12 +851,20 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) ThisSpc%Is_Gas = .TRUE. ELSE errMsg = "Is_Gas and Is_Aerosol are both FALSE for species " // & - TRIM( spc ) // "!" + TRIM( spc ) // "!This species may not be included " // & + "in species_database.yml. Please check that file." CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF ENDIF + ! Make sure the molecular weight is not a missing value + IF ( ThisSpc%MW_g == MISSING_REAL ) THEN + errMsg = 'MW_g for species ' // TRIM( spc ) // ' is undefined!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ! If the species is a gas, set all aerosol fields to missing values IF ( ThisSpc%Is_Gas ) THEN @@ -773,6 +899,7 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) ThisSpc%WD_LiqAndGas = MISSING_BOOL ENDIF + #ifdef LUO_WETDEP !-------------------------------------------------------------------- ! For Luo et al 2020 wetdep @@ -820,6 +947,11 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) ENDIF #endif + ! Debug printout + IF ( Input_Opt%Verbose ) THEN + CALL Spc_Print( Input_Opt, ThisSpc, RC ) + ENDIF + ! Free pointer ThisSpc => NULL() ENDDO @@ -835,22 +967,19 @@ SUBROUTINE Init_Species_Database( Input_Opt, SpcData, SpcCount, RC ) !======================================================================= ! Print metadata for only the species that are defined in this ! simulation (but not the entire species database) to a YAML file. - ! - ! Also note: Input_Opt%amIRoot is always set to False in MODEL_CESM - ! so we will need to block out the test for it for CESM only. + ! This file may be used for pre-processing files in other models + ! when updating GEOS-Chem versions, such as in WRF and CESM. It + ! should not be generated when running those models. Output file is + ! set in simulation%species_metadata_output_file in geoschem_config.yml. !======================================================================= - IF ( TRIM( Input_Opt%SpcMetaDataOutFile ) /= "none" ) THEN -#ifndef MODEL_CESM + IF ( LEN(TRIM( Input_Opt%SpcMetaDataOutFile )) > 0 ) THEN IF ( Input_Opt%amIRoot ) THEN -#endif CALL QFYAML_Print( yml = yml, & fileName = Input_Opt%SpcMetaDataOutFile, & searchKeys = species_names, & RC = RC ) -#ifndef MODEL_CESM ENDIF -#endif ENDIF !======================================================================= @@ -1242,8 +1371,8 @@ SUBROUTINE Unique_Species_Names( Input_Opt, nSpecies, RC ) ENDDO !======================================================================= - ! For specialty simulations, we do not have KPP species. Thus, the - ! of species is just the list of advected species from geoschem_config.yml + ! For speciality simulations that do not use KPP-built mechanisms, + ! we can just use the advected species list from geoschem_config.yml !======================================================================= ELSE diff --git a/Headers/species_mod.F90 b/Headers/species_mod.F90 index e1d8c0d7b..46a6ba7c1 100644 --- a/Headers/species_mod.F90 +++ b/Headers/species_mod.F90 @@ -47,6 +47,7 @@ MODULE Species_Mod INTEGER :: nPhotol ! # of photolysis species INTEGER :: nOmitted ! # of omitted species INTEGER :: nRadNucl ! # of radionuclide species + INTEGER :: nTracer ! # of transport tracers INTEGER :: nRealSpc ! # of total species (w/ omitted species removed) INTEGER :: nWetDep ! # of wet-deposited species INTEGER :: nHg0 ! # of Hg0 tracers @@ -66,10 +67,12 @@ MODULE Species_Mod !========================================================================= TYPE, PUBLIC :: SpcConc #if defined( MODEL_GCHPCTM ) - REAL(ESMF_KIND_R8), POINTER :: Conc(:,:,:) + REAL(ESMF_KIND_R8), POINTER :: Conc(:,:,:) ! Concentration array #else - REAL(fp), POINTER :: Conc(:,:,:) + REAL(fp), POINTER :: Conc(:,:,:) ! Concentration array #endif + INTEGER :: Units ! Species units + INTEGER :: Previous_Units ! Previous species units END TYPE SpcConc !========================================================================= @@ -92,6 +95,7 @@ MODULE Species_Mod INTEGER :: OmittedId ! Omitted species index INTEGER :: PhotolId ! Photolysis index INTEGER :: RadNuclId ! Radionuclide index + INTEGER :: TracerId ! Transport tracer index INTEGER :: WetDepId ! Wet deposition index ! Names @@ -113,6 +117,7 @@ MODULE Species_Mod LOGICAL :: Is_Omitted ! Is it omitted from the database? LOGICAL :: Is_Photolysis ! Is it an photolysis species? LOGICAL :: Is_RadioNuclide ! Is it a radionuclide species? + LOGICAL :: Is_Tracer ! Is it a transport tracer? LOGICAL :: Is_WetDep ! Is it wet-deposited? LOGICAL :: Is_InRestart ! Is it in the restart file? @@ -122,6 +127,9 @@ MODULE Species_Mod ! Default background concentration REAL(fp) :: BackgroundVV ! Background conc [v/v] + ! Species units + CHARACTER(LEN=80) :: Units ! Species units (e.g. v/v, days) + ! Density and radius REAL(fp) :: Density ! Density [kg/m3] REAL(fp) :: Radius ! Radius [m] @@ -158,6 +166,25 @@ MODULE Species_Mod REAL(fp) :: WD_RainoutEff(3) ! Temperature-dependent scale ! factors for rainout efficiency + ! TransportTracers parameters + CHARACTER(LEN=80) :: Snk_Horiz ! Where to apply sink horizontally? + REAL(fp) :: Snk_LatMin ! Minimum latitude for applying sink + REAL(fp) :: Snk_LatMax ! Maximum latitude for applying sink + CHARACTER(LEN=80) :: Snk_Mode ! Sink mode of tracer + REAL(fp) :: Snk_Period ! Sink period in days + REAL(fp) :: Snk_Value ! Sink value + CHARACTER(LEN=80) :: Snk_Vert ! Where to apply sink vertically? + LOGICAL :: Src_Add ! T- add values; F- replace values + CHARACTER(LEN=80) :: Src_Horiz ! Where to apply source horizontally + REAL(fp) :: Src_LatMin ! Minimum latitude for applying src + REAL(fp) :: Src_LatMax ! Maximum latitude for applying src + CHARACTER(LEN=80) :: Src_Mode ! Source mode of tracer + REAL(fp) :: Src_PresMin ! Minimum pressure for applying src + REAL(fp) :: Src_PresMax ! Maximum pressure for applying src + CHARACTER(LEN=80) :: Src_Units ! Source units + REAL(fp) :: Src_Value ! Source value in Src_Units + CHARACTER(LEN=80) :: Src_Vert ! Where to apply source vertically? + ! Microphysics parameters LOGICAL :: MP_SizeResAer ! T=size-resolved aerosol (TOMAS) LOGICAL :: MP_SizeResNum ! T=size-resolved aerosol number @@ -167,6 +194,10 @@ MODULE Species_Mod LOGICAL :: Is_Hg2 ! Is a Hg2 species? LOGICAL :: Is_HgP ! Is a HgP species? + ! KPP solver parameters + REAL(f8) :: KPP_AbsTol ! Absolute tolerance + REAL(f8) :: KPP_RelTol ! Relative tolerance + END TYPE Species ! ! !DEFINED PARAMETERS: @@ -370,7 +401,9 @@ SUBROUTINE Spc_Zero( Spc ) Spc%Is_Omitted = MISSING_BOOL Spc%Is_Photolysis = MISSING_BOOL Spc%Is_RadioNuclide = MISSING_BOOL + Spc%Is_Tracer = MISSING_BOOL Spc%Is_WetDep = MISSING_BOOL + Spc%Src_Add = MISSING_BOOL Spc%MP_SizeResAer = MISSING_BOOL Spc%MP_SizeResNum = MISSING_BOOL Spc%WD_CoarseAer = MISSING_BOOL @@ -393,6 +426,7 @@ SUBROUTINE Spc_Zero( Spc ) Spc%OmittedId = MISSING_INT Spc%PhotolId = MISSING_INT Spc%RadNuclId = MISSING_INT + Spc%TracerId = MISSING_INT Spc%WetDepId = MISSING_INT ! Reals (floating precision) @@ -405,6 +439,15 @@ SUBROUTINE Spc_Zero( Spc ) Spc%Density = MISSING Spc%MW_g = MISSING Spc%Radius = MISSING + Spc%Snk_LatMin = MISSING + Spc%Snk_LatMax = MISSING + Spc%Snk_Period = MISSING + Spc%Snk_Value = MISSING + Spc%Src_LatMin = MISSING + Spc%Src_LatMax = MISSING + Spc%Src_PresMin = MISSING + Spc%Src_PresMax = MISSING + Spc%Src_Value = MISSING Spc%WD_AerScavEff = MISSING Spc%WD_ConvFacI2G = MISSING Spc%WD_KcScaleFac = MISSING @@ -415,11 +458,21 @@ SUBROUTINE Spc_Zero( Spc ) Spc%Henry_CR = MISSING_DBLE Spc%Henry_K0 = MISSING_DBLE Spc%Henry_PKA = MISSING_DBLE + Spc%KPP_AbsTol = MISSING_DBLE + Spc%KPP_RelTol = MISSING_DBLE ! Strings Spc%Formula = MISSING_STR Spc%FullName = MISSING_STR Spc%Name = MISSING_STR + Spc%Units = MISSING_STR + Spc%Snk_Horiz = MISSING_STR + Spc%Snk_Mode = MISSING_STR + Spc%Snk_Vert = MISSING_STR + Spc%Src_Horiz = MISSING_STR + Spc%Src_Mode = MISSING_STR + Spc%Src_Units = MISSING_STR + Spc%Src_Vert = MISSING_STR END SUBROUTINE Spc_Zero !BOC @@ -483,6 +536,9 @@ SUBROUTINE Spc_Print( Input_Opt, ThisSpc, RC ) IF ( ThisSpc%Is_RadioNuclide ) THEN WRITE( 6, "(a)" ) "Radionuclide? : YES" ENDIF + IF ( ThisSpc%Is_Tracer ) THEN + WRITE( 6, "(a)" ) "Transport tracer: YES" + ENDIF !-------------------------------------------------------------------- ! Print Henry"s Law info (only applicable to gas-phase species) @@ -547,6 +603,9 @@ SUBROUTINE Spc_Print( Input_Opt, ThisSpc, RC ) WRITE( 6, 130 ) "Is_FixedChem ", ThisSpc%Is_FixedChem WRITE( 6, 100 ) "KppFixId ", ThisSpc%KppFixId ENDIF + + WRITE( 6, 120 ) "KPP_AbsTol ", ThisSpc%KPP_AbsTol + WRITE( 6, 120 ) "KPP_RelTol ", ThisSpc%KPP_RelTol ENDIF !-------------------------------------------------------------------- @@ -642,6 +701,37 @@ SUBROUTINE Spc_Print( Input_Opt, ThisSpc, RC ) ENDIF ENDIF + !-------------------------------------------------------------------- + ! Is the species a TransportTracer species? + !-------------------------------------------------------------------- + IF ( ThisSpc%Is_Tracer ) THEN + + WRITE( 6, 130 ) "Src_Add ", ThisSpc%Src_Add + WRITE( 6, 110 ) "Src_Horiz ", TRIM(ThisSpc%Src_Horiz) + IF ( TRIM(ThisSpc%Src_Horiz) == 'lat_zone' ) THEN + WRITE( 6, 121 ) "Src_LatMin ", ThisSpc%Src_LatMin + WRITE( 6, 121 ) "Src_LatMax ", ThisSpc%Src_LatMax + ENDIF + WRITE( 6, 110 ) "Src_Mode ", TRIM(ThisSpc%Src_Mode) + WRITE( 6, 110 ) "Src_Vert ", TRIM(ThisSpc%Src_Vert) + IF ( TRIM(ThisSpc%Src_Vert) == 'pressures' ) THEN + WRITE( 6, 121 ) "Src_PresMin ", ThisSpc%Src_PresMin + WRITE( 6, 121 ) "Src_PresMax ", ThisSpc%Src_PresMax + ENDIF + WRITE( 6, 110 ) "Src_Units ", TRIM(ThisSpc%Src_Units) + WRITE( 6, 121 ) "Src_Value ", ThisSpc%Src_Value + WRITE( 6, 110 ) "Snk_Horiz ", TRIM(ThisSpc%Snk_Horiz) + IF ( TRIM(ThisSpc%Snk_Horiz) == 'lat_zone' ) THEN + WRITE( 6, 121 ) "Snk_LatMin ", ThisSpc%Snk_LatMin + WRITE( 6, 121 ) "Snk_LatMax ", ThisSpc%Snk_LatMax + ENDIF + WRITE( 6, 110 ) "Snk_Mode ", TRIM(ThisSpc%Snk_Mode) + WRITE( 6, 121 ) "Snk_Period ", ThisSpc%Snk_Period + WRITE( 6, 121 ) "Snk_Value ", ThisSpc%Snk_Value + WRITE( 6, 110 ) "Snk_Vert ", TRIM(ThisSpc%Snk_Vert) + + ENDIF + !-------------------------------------------------------------------- ! Is the species a mercury species? !-------------------------------------------------------------------- diff --git a/Headers/state_chm_mod.F90 b/Headers/state_chm_mod.F90 index 5a4ada10a..206b71eb8 100644 --- a/Headers/state_chm_mod.F90 +++ b/Headers/state_chm_mod.F90 @@ -21,8 +21,10 @@ MODULE State_Chm_Mod ! ! USES: ! + USE AerMass_Container_Mod ! Aerosol mass object USE Dictionary_M, ONLY : dictionary_t ! Fortran hash table type USE ErrCode_Mod ! Error handling + USE Phot_Container_Mod ! For photolysis state object USE PhysConstants ! Physical constants USE Precision_Mod ! GEOS-Chem precision types USE Registry_Mod ! Registry module @@ -82,13 +84,18 @@ MODULE State_Chm_Mod INTEGER :: nPhotol ! # photolysis species INTEGER :: nProd ! # of prod species INTEGER :: nRadNucl ! # of radionuclides + INTEGER :: nTomasBins ! # of bins for TOMAS + INTEGER :: nTracer ! # of transport tracers INTEGER :: nWetDep ! # wetdep species !----------------------------------------------------------------------- ! Mapping vectors to subset types of species !----------------------------------------------------------------------- + REAL(f8), POINTER :: KPP_AbsTol (: ) ! KPP absolute tolerance + REAL(f8), POINTER :: KPP_RelTol (: ) ! KPP relative tolerance INTEGER, POINTER :: Map_Advect (: ) ! Advected species IDs INTEGER, POINTER :: Map_Aero (: ) ! Aerosol species IDs + INTEGER, POINTER :: Map_All (: ) ! All species IDs INTEGER, POINTER :: Map_DryAlt (: ) ! Dryalt species IDs INTEGER, POINTER :: Map_DryDep (: ) ! Drydep species IDs INTEGER, POINTER :: Map_GasSpc (: ) ! Gas species IDs @@ -102,6 +109,7 @@ MODULE State_Chm_Mod INTEGER, POINTER :: Map_Prod (: ) ! Prod diag species CHARACTER(LEN=36), POINTER :: Name_Prod (: ) ! ID and names INTEGER, POINTER :: Map_RadNucl(: ) ! Radionuclide IDs + INTEGER, POINTER :: Map_Tracer (: ) ! Transport tracer IDs INTEGER, POINTER :: Map_WetDep (: ) ! Wetdep species IDs INTEGER, POINTER :: Map_WL (: ) ! Wavelength bins in fjx @@ -117,8 +125,6 @@ MODULE State_Chm_Mod TYPE(SpcConc), POINTER :: Species (: ) ! Vector for species ! concentrations ! [kg/kg dry air] - CHARACTER(LEN=20) :: Spc_Units ! Species units - #ifdef ADJOINT REAL(fp), POINTER :: SpeciesAdj (:,:,:,:) ! Species adjoint variables REAL(fp), POINTER :: CostFuncMask(:,:,:) ! cost function volume mask @@ -139,23 +145,24 @@ MODULE State_Chm_Mod !----------------------------------------------------------------------- ! Aerosol quantities !----------------------------------------------------------------------- - REAL(fp), POINTER :: AeroArea (:,:,:,:) ! Aerosol Area [cm2/cm3] - REAL(fp), POINTER :: AeroRadi (:,:,:,:) ! Aerosol Radius [cm] - REAL(fp), POINTER :: WetAeroArea(:,:,:,:) ! Aerosol Area [cm2/cm3] - REAL(fp), POINTER :: WetAeroRadi(:,:,:,:) ! Aerosol Radius [cm] - REAL(fp), POINTER :: AeroH2O (:,:,:,:) ! Aerosol water [cm3/cm3] - REAL(fp), POINTER :: GammaN2O5 (:,:,:,:) ! N2O5 aerosol uptake [unitless] - REAL(fp), POINTER :: SSAlk (:,:,:,:) ! Sea-salt alkalinity[-] - REAL(fp), POINTER :: H2O2AfterChem(:,:,:) ! H2O2, SO2 [v/v] - REAL(fp), POINTER :: SO2AfterChem (:,:,:) ! after sulfate chem - REAL(fp), POINTER :: OMOC (:,:) ! OM:OC Ratio [unitless] - REAL(fp), POINTER :: OMOC_POA (:,:) ! OM:OC Ratio (OCFPOA) [unitless] - REAL(fp), POINTER :: OMOC_OPOA (:,:) ! OM:OC Ratio (OCFOPOA) [unitless] - REAL(fp), POINTER :: ACLArea (:,:,:) ! Fine Cl- Area [cm2/cm3] - REAL(fp), POINTER :: ACLRadi (:,:,:) ! Fine Cl- Radius [cm] - REAL(fp), POINTER :: QLxpHCloud (:,:,:) ! - REAL(fp), POINTER :: SoilDust (:,:,:,:) ! Soil dust [kg/m3] - REAL(fp), POINTER :: ORVCsesq (:,:,:) ! Sesquiterpenes mass [kg/box] + TYPE(AerMassContainer), POINTER :: AerMass ! Aerosol mass data object + REAL(fp), POINTER :: AeroArea (:,:,:,:) ! Aerosol Area [cm2/cm3] + REAL(fp), POINTER :: AeroRadi (:,:,:,:) ! Aerosol Radius [cm] + REAL(fp), POINTER :: WetAeroArea(:,:,:,:) ! Aerosol Area [cm2/cm3] + REAL(fp), POINTER :: WetAeroRadi(:,:,:,:) ! Aerosol Radius [cm] + REAL(fp), POINTER :: AeroH2O (:,:,:,:) ! Aerosol water [cm3/cm3] + REAL(fp), POINTER :: GammaN2O5 (:,:,:,:) ! N2O5 aerosol uptake [unitless] + REAL(fp), POINTER :: SSAlk (:,:,:,:) ! Sea-salt alkalinity[-] + REAL(fp), POINTER :: H2O2AfterChem(:,:,:) ! H2O2, SO2 [v/v] + REAL(fp), POINTER :: SO2AfterChem (:,:,:) ! after sulfate chem + REAL(fp), POINTER :: OMOC (:,:) ! OM:OC Ratio [unitless] + REAL(fp), POINTER :: OMOC_POA (:,:) ! OM:OC Ratio (OCFPOA) [unitless] + REAL(fp), POINTER :: OMOC_OPOA (:,:) ! OM:OC Ratio (OCFOPOA) [unitless] + REAL(fp), POINTER :: ACLArea (:,:,:) ! Fine Cl- Area [cm2/cm3] + REAL(fp), POINTER :: ACLRadi (:,:,:) ! Fine Cl- Radius [cm] + REAL(fp), POINTER :: QLxpHCloud (:,:,:) ! + REAL(fp), POINTER :: SoilDust (:,:,:,:) ! Soil dust [kg/m3] + REAL(fp), POINTER :: ORVCsesq (:,:,:) ! Sesquiterpenes mass [kg/box] !----------------------------------------------------------------------- ! Fields for nitrogen deposition @@ -183,7 +190,7 @@ MODULE State_Chm_Mod ! reaction cofactors !----------------------------------------------------------------------- - ! For isoprene SOA via ISORROPIA + ! For isoprene SOA via ISORROPIA/HETP !----------------------------------------------------------------------- REAL(fp), POINTER :: IsorropAeropH (:,:,:,:) ! ISORROPIA aero pH REAL(fp), POINTER :: IsorropHplus (:,:,:,:) ! H+ conc [M] @@ -219,6 +226,12 @@ MODULE State_Chm_Mod REAL(fp), POINTER :: fupdateHOCl(:,:,: ) ! Correction factor for ! HOCl removal by SO2 ! [unitless] + + !----------------------------------------------------------------------- + ! Fields for photolysis + !----------------------------------------------------------------------- + TYPE(PhotContainer), POINTER :: phot ! Photolysis/optics container + !----------------------------------------------------------------------- ! Fields for dry deposition !----------------------------------------------------------------------- @@ -265,6 +278,42 @@ MODULE State_Chm_Mod REAL(fp), POINTER :: TOMS1 (:,: ) REAL(fp), POINTER :: TOMS2 (:,: ) + !----------------------------------------------------------------------- + ! Fields for UCX (moved from module) + ! Many of these fields are not sized NX x NY, and thus cannot be allocated + ! by Init_and_Register. They will be handled by Init_UCX as appropriate, + ! and only stored in State_Chm so they can be separated per chemistry state. + ! (hplin, 1/5/23) + !----------------------------------------------------------------------- + REAL(fp), POINTER :: UCX_REGRID (:,: ) + REAL(fp), POINTER :: UCX_PLEVS (: ) ! Pressure levels of 2D data (hPa) + REAL(fp), POINTER :: UCX_LATS (: ) ! Latitude edges of 2D data (deg) + REAL(fp), POINTER :: RAD_AER (:,:,:,:) ! Strat. aerosol radius (cm) + REAL(fp), POINTER :: KG_AER (:,:,:,:) ! Aerosol mass (kg/box) + REAL(fp), POINTER :: SAD_AER (:,:,:,:) ! Aerosol surface area density (cm2/cm3) + REAL(fp), POINTER :: NDENS_AER (:,:,:,:) ! Aerosol number density (#/m3) + REAL(fp), POINTER :: RHO_AER (:,:,:,:) ! Aerosol mass density (kg/m3 aerosol) + REAL(fp), POINTER :: AERFRAC (:,:,:,:) ! Mass fraction of species in liquid aerosols + INTEGER, POINTER :: AERFRACIND (: ) ! Indices of liquid aerosol species + REAL(fp), POINTER :: NOX_O (:,:,:,:) ! Monthly mean noontime O3P/O1D for NOx calcs + REAL(fp), POINTER :: NOX_J (:,:,:,:) ! Monthly mean noontime J-rates for NOx calcs + REAL(fp), POINTER :: SO4_TOPPHOT(:,: ) ! Photolysis rate at the top of the chemgrid (1/s) + + !================================================================= + ! Variables to use NOx coefficients in ESMF / grid-independent + ! envionment. The NOx coefficients are climatological 2D + ! (lat/lev/12 months) data that are currently available for + ! horizontal (latitude) resolutions of 2 and 4 degrees. For other + ! resolutions, the horizontal data becomes mapped onto the + ! simulation grid (see GET_JJNOX). + ! Similar to the surface mixing ratio boundary conditions, we now + ! read all the NOx coefficients during initialization to avoid + ! additional I/O calls during run time (ckeller, 05/12/2014). + !================================================================= + REAL(fp), POINTER :: NOXCOEFF (:,:,:,:) + REAL(fp), POINTER :: NOXLAT (: ) + INTEGER :: JJNOXCOEFF + !----------------------------------------------------------------------- ! Switches to enable SO2 cloud chemistry and seasalt chemistry in ! sulfate_mod (TRUE) or in the KPP mechanism (FALSE). @@ -272,13 +321,31 @@ MODULE State_Chm_Mod LOGICAL :: Do_SulfateMod_Cld LOGICAL :: Do_SulfateMod_SeaSalt +#if defined(MODEL_CESM) + !----------------------------------------------------------------------- + ! Fields for CESM interface to GEOS-Chem + !----------------------------------------------------------------------- + REAL(fp), POINTER :: H2SO4_PRDR (:,:,: ) ! H2SO4 prod rate [mol/mol] +#endif + !----------------------------------------------------------------------- ! Fields for CH4 specialty simulation !----------------------------------------------------------------------- REAL(fp), POINTER :: BOH (:,:,: ) ! OH values [molec/cm3] REAL(fp), POINTER :: BCl (:,:,: ) ! Cl values [v/v] - REAL(fp), POINTER :: CH4_EMIS (:,:,: ) ! CH4 emissions [kg/m2/s]. - ! third dim is cat, total 15 + LOGICAL :: IsCH4BCPerturbed ! Is CH4 BC perturbed? + +#ifdef APM + !----------------------------------------------------------------------- + ! Fields for APM aerosol microphysics + !----------------------------------------------------------------------- + REAL(fp), POINTER :: PSO4_SO2APM2(:,:,: ) +#endif + + !----------------------------------------------------------------------- + ! Fields for RRTMG + !----------------------------------------------------------------------- + REAL(fp), POINTER :: TStrat_Adj (:,:,: ) ! Accumulated strat adjustment !----------------------------------------------------------------------- ! Registry of variables contained within State_Chm @@ -287,6 +354,33 @@ MODULE State_Chm_Mod TYPE(MetaRegItem), POINTER :: Registry => NULL() ! Registry object TYPE(dictionary_t) :: RegDict ! Registry lookup table + !----------------------------------------------------------------------- + ! GEOS specific fields + !----------------------------------------------------------------------- +#if defined( MODEL_GEOS ) + ! CO mesosphere boundary + INTEGER :: COmesosphere + CHARACTER(LEN=255) :: impCOmeso + ! CO2 photolysis + INTEGER :: CO2fromGOCART + CHARACTER(LEN=255) :: impCO2name + INTEGER :: numphoto + INTEGER :: nxdo + INTEGER :: nlam + INTEGER :: nsza + INTEGER :: numo3 + INTEGER :: nts + INTEGER :: aqsize + + REAL, POINTER :: sdat(:,:,:,:) + REAL, POINTER :: o2jdat(:,:,:) + REAL, POINTER :: sza_tab(:) + REAL, POINTER :: o3_tab(:,:) + REAL, POINTER :: xtab(:,:,:) + REAL, POINTER :: CH2O_aq(:) + REAL, POINTER :: rlam(:) +#endif + END TYPE ChmState ! ! !REMARKS: @@ -381,6 +475,7 @@ SUBROUTINE Zero_State_Chm( State_Chm, RC ) ! Mapping vectors State_Chm%Map_Advect => NULL() State_Chm%Map_Aero => NULL() + State_Chm%Map_All => NULL() State_Chm%Map_DryAlt => NULL() State_Chm%Map_DryDep => NULL() State_Chm%Map_GasSpc => NULL() @@ -394,13 +489,13 @@ SUBROUTINE Zero_State_Chm( State_Chm, RC ) State_Chm%Map_Prod => NULL() State_Chm%Name_Prod => NULL() State_Chm%Map_RadNucl => NULL() + State_Chm%Map_Tracer => NULL() State_Chm%Map_WetDep => NULL() State_Chm%Map_WL => NULL() ! Species-based quantities State_Chm%SpcData => NULL() State_Chm%Species => NULL() - State_Chm%Spc_Units = '' State_Chm%BoundaryCond => NULL() #ifdef ADJOINT @@ -409,11 +504,15 @@ SUBROUTINE Zero_State_Chm( State_Chm, RC ) State_Chm%CostFuncMask => NULL() #endif + ! Photolysis state + State_Chm%Phot => NULL() + ! RRTMG state State_Chm%RRTMG_iSeed = 0 State_Chm%RRTMG_iCld = 0 ! Aerosol and chemistry quantities + State_Chm%AerMass => NULL() State_Chm%AeroArea => NULL() State_Chm%AeroRadi => NULL() State_Chm%WetAeroArea => NULL() @@ -446,9 +545,23 @@ SUBROUTINE Zero_State_Chm( State_Chm, RC ) State_Chm%TOMS2 => NULL() State_Chm%BOH => NULL() State_Chm%BCl => NULL() - State_Chm%CH4_EMIS => NULL() State_Chm%SFC_CH4 => NULL() + State_Chm%UCX_REGRID => NULL() + State_Chm%UCX_PLEVS => NULL() + State_Chm%UCX_LATS => NULL() + State_Chm%RAD_AER => NULL() + State_Chm%KG_AER => NULL() + State_Chm%SAD_AER => NULL() + State_Chm%NDENS_AER => NULL() + State_Chm%RHO_AER => NULL() + State_Chm%AERFRAC => NULL() + State_Chm%AERFRACIND => NULL() + State_Chm%NOX_O => NULL() + State_Chm%NOX_J => NULL() + State_Chm%NOXCOEFF => NULL() + State_Chm%NOXLAT => NULL() + ! Emissions and drydep quantities State_Chm%Iodide => NULL() State_Chm%Salinity => NULL() @@ -492,12 +605,51 @@ SUBROUTINE Zero_State_Chm( State_Chm, RC ) State_Chm%SnowHgOceanStored => NULL() State_Chm%SnowHgLandStored => NULL() + ! RRTMG quantities + State_Chm%TStrat_Adj => NULL() + ! Flags to toggle sulfate-mod computations or KPP computations ! TRUE = use sulfate_mod ! FALSE = use KPP computations State_Chm%Do_SulfateMod_Cld = .FALSE. State_Chm%Do_SulfateMod_SeaSalt = .FALSE. + ! Flag if CH4 BC has been perturbed or not + State_Chm%IsCH4BCPerturbed = .FALSE. + +#if defined( MODEL_GEOS ) + State_Chm%COmesosphere = .FALSE. + State_Chm%impCOmeso = "unknown" + State_Chm%CO2fromGOCART = .FALSE. + State_Chm%impCO2name = "unknown" + State_Chm%numphoto = 0 + State_Chm%nxdo = 0 + State_Chm%nlam = 0 + State_Chm%nsza = 0 + State_Chm%numo3 = 0 + State_Chm%nts = 0 + State_Chm%aqsize = 0 + State_Chm%sdat => NULL() + State_Chm%o2jdat => NULL() + State_Chm%sza_tab => NULL() + State_Chm%o3_tab => NULL() + State_Chm%xtab => NULL() + State_Chm%CH2O_aq => NULL() + State_Chm%rlam => NULL() +#endif +#ifdef MODEL_CESM + ! Add quantities for coupling to CESM + State_Chm%H2SO4_PRDR => NULL() +#endif +#ifdef APM + ! Add fields for APM microphysics + State_Chm%PSO4_SO2APM2 => NULL() +#endif + + ! KPP integrator quantities + State_Chm%KPP_AbsTol => NULL() + State_Chm%KPP_RelTol => NULL() + END SUBROUTINE Zero_State_Chm !EOC !------------------------------------------------------------------------------ @@ -655,6 +807,17 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) ENDIF ENDDO + !======================================================================== + ! Allocate and initialize the photolysis object + !======================================================================== + ALLOCATE( State_Chm%Phot, STAT=RC ) + CALL Init_Phot_Container( Input_Opt, State_Grid, State_Chm%Phot, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error encountered in "Init_Phot_Container" routine!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !======================================================================== ! Determine the number of advected, drydep, wetdep, and total species !======================================================================== @@ -674,8 +837,19 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) State_Chm%nOmitted = SpcCount%nOmitted State_Chm%nPhotol = SpcCount%nPhotol State_Chm%nRadNucl = SpcCount%nRadNucl + State_Chm%nTracer = SpcCount%nTracer State_Chm%nWetDep = SpcCount%nWetDep +#if defined (TOMAS12) + State_Chm%nTomasBins = 12 +#elif defined(TOMAS15) + State_Chm%nTomasBins = 15 +#elif defined(TOMAS40) + State_Chm%nTomasBins = 40 +#else + State_Chm%nTomasBins = 30 +#endif + ! Also get the number of the prod/loss species. For fullchem simulations, ! the prod/loss species are listed in FAM_NAMES in gckpp_Monitor.F90, ! but for certain other simulations (tagO3, tagCO), advected species @@ -770,15 +944,15 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) RETURN ENDIF - !======================================================================== ! Allocate and initialize chemical species fields !======================================================================== ALLOCATE( State_Chm%Species( State_Chm%nSpecies ), STAT=RC ) DO N = 1, State_Chm%nSpecies #if defined ( MODEL_GCHPCTM ) - ! Species concentration array pointers will be set to point to MAPL internal state - ! every timestep when intstate level values are flipped to match GEOS-Chem standard + ! Species concentration array pointers will be set to point + ! to MAPL internal state every timestep when internal state level + ! values are flipped to match GEOS-Chem standard State_Chm%Species(N)%Conc => NULL() #else ALLOCATE( State_Chm%Species(N)%Conc( State_Grid%NX, & @@ -786,6 +960,7 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) State_Grid%NZ ), STAT=RC ) State_Chm%Species(N)%Conc = 0.0_f8 #endif + State_Chm%Species(N)%Units = 0 ENDDO #ifdef ADJOINT @@ -857,6 +1032,18 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) ! Save nAerosol to State_Chm State_Chm%nAeroType = nAerosol + !--------------------------------------------------------------------- + ! Aerosol object + ! NOTE: content is currently not registered + !--------------------------------------------------------------------- + ALLOCATE( State_Chm%AerMass, STAT=RC ) + CALL Init_AerMass_Container( Input_Opt, State_Grid, State_Chm%AerMass, RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = 'Error encountered in "Init_AerMass_Container" routine!' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !--------------------------------------------------------------------- ! AeroArea !--------------------------------------------------------------------- @@ -2055,6 +2242,28 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) RETURN ENDIF +#if defined(MODEL_CESM) + IF ( Input_Opt%ITS_A_FULLCHEM_SIM ) THEN + !--------------------------------------------------------------------- + ! H2SO4_PRDR: H2SO4 production rate [mol/mol] for MAM4 interface + !--------------------------------------------------------------------- + chmId = 'H2SO4_PRDR' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + chmId = chmId, & + Ptr2Data = State_Chm%H2SO4_PRDR, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( chmId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ENDIF +#endif + !======================================================================= ! Initialize State_Chm quantities pertinent to Hg simulations !======================================================================= @@ -2072,15 +2281,14 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) ! Initialize State_Chm quantities pertinent to CH4 simulations !======================================================================= IF ( Input_Opt%ITS_A_CH4_SIM ) THEN - ! CH4_EMIS - chmId = 'CH4_EMIS' - CALL Init_and_Register( & + ! Global OH and Cl from HEMCO input + chmId = 'BOH' + CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & State_Grid = State_Grid, & chmId = chmId, & - Ptr2Data = State_Chm%CH4_EMIS, & - nSlots = 15, & + Ptr2Data = State_Chm%BOH, & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -2089,14 +2297,13 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) RETURN ENDIF - ! Global OH and Cl from HEMCO input - chmId = 'BOH' + chmId = 'BCl' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & State_Grid = State_Grid, & chmId = chmId, & - Ptr2Data = State_Chm%BOH, & + Ptr2Data = State_Chm%BCl, & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -2104,14 +2311,20 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF + ENDIF - chmId = 'BCl' + !======================================================================= + ! Initialize State_Chm quantities pertinent to RRTMG simulations + !======================================================================= + If (Input_Opt%LRAD) Then + ! %%% TStrat_Adj %%% + chmId = 'TStrat_Adj' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & State_Grid = State_Grid, & chmId = chmId, & - Ptr2Data = State_Chm%BCl, & + Ptr2Data = State_Chm%TStrat_Adj, & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -2121,6 +2334,27 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) ENDIF ENDIF +#ifdef APM + !======================================================================= + ! Initialize State_Chm quantities for APM microphysics simulations + !======================================================================= + chmId = 'PSO4SO2APM2' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + chmId = chmId, & + Ptr2Data = State_Chm%PSO4_SO2APM2, & + noRegister = .TRUE., & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( chmId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF +#endif + !======================================================================== ! Once we are done registering all fields, we need to define the ! registry lookup table. This algorithm will avoid hash collisions. @@ -2139,23 +2373,23 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) !======================================================================== ! Print out the list of registered fields !======================================================================== - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 10 ) 10 FORMAT( /, 'Registered variables contained within the State_Chm object:') WRITE( 6, '(a)' ) REPEAT( '=', 79 ) - ENDIF - - ! Print registered fields - CALL Registry_Print( Input_Opt = Input_Opt, & - Registry = State_Chm%Registry, & - ShortFormat = .TRUE., & - RC = RC ) + + ! Print registered fields + CALL Registry_Print( Input_Opt = Input_Opt, & + Registry = State_Chm%Registry, & + ShortFormat = .TRUE., & + RC = RC ) - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in routine "Registry Print"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN + ! Trap potential errors + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in routine "Registry Print"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF ENDIF !======================================================================= @@ -2165,11 +2399,6 @@ SUBROUTINE Init_State_Chm( Input_Opt, State_Chm, State_Grid, RC ) ! Free pointer for safety's sake ThisSpc => NULL() - ! Echo output - IF ( Input_Opt%amIRoot ) THEN - print*, REPEAT( '#', 79 ) - ENDIF - ! Format statement 100 FORMAT( I3, 2x, A31 ) 110 FORMAT( 5x, '===> ', f4.1, 1x, A6 ) @@ -2196,7 +2425,6 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) ! USE GCKPP_Parameters, ONLY : NSPEC USE Input_Opt_Mod, ONLY : OptInput - USE Cmn_Fjx_Mod, ONLY : W_ ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -2217,10 +2445,11 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) ! !LOCAL VARIABLES: ! ! Scalars - INTEGER :: C, N + INTEGER :: C, N ! Strings - CHARACTER(LEN=255) :: errMsg, thisLoc + CHARACTER(LEN=10 ) :: inds(6) + CHARACTER(LEN=255) :: errMsg, thisLoc ! Objects TYPE(Species), POINTER :: ThisSpc @@ -2257,6 +2486,13 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) State_Chm%Map_Aero = 0 ENDIF + IF ( State_Chm%nSpecies > 0 ) THEN + ALLOCATE( State_Chm%Map_All( State_Chm%nSpecies ), STAT=RC ) + CALL GC_CheckVar( 'State_Chm%Map_All', 0, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%Map_All = 0 + ENDIF + IF ( State_Chm%nDryAlt > 0 ) THEN ALLOCATE( State_Chm%Map_DryAlt( State_Chm%nDryAlt ), STAT=RC ) CALL GC_CheckVar( 'State_Chm%Map_DryAlt', 0, RC ) @@ -2295,6 +2531,17 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) CALL GC_CheckVar( 'State_Chm%Map_KppVar', 0, RC ) IF ( RC /= GC_SUCCESS ) RETURN State_Chm%Map_KppVar = 0 + + ! + ALLOCATE( State_Chm%KPP_AbsTol( N ), STAT=RC ) + CALL GC_CheckVar( 'State_Chm%KppAbsTol', 0, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%KPP_AbsTol = 0.0_f8 + + ALLOCATE( State_Chm%KPP_RelTol( N ), STAT=RC ) + CALL GC_CheckVar( 'State_Chm%KppRelTol', 0, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%KPP_RelTol = 0.0_f8 ENDIF N = State_Chm%nKppFix + State_Chm%nOmitted @@ -2352,6 +2599,13 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) State_Chm%Map_RadNucl = 0 ENDIF + IF ( State_Chm%nTracer > 0 ) THEN + ALLOCATE( State_Chm%Map_Tracer( State_Chm%nTracer ), STAT=RC ) + CALL GC_CheckVar( 'State_Chm%Map_Tracer', 0, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%Map_Tracer = 0 + ENDIF + IF ( State_Chm%nWetDep > 0 ) THEN ALLOCATE( State_Chm%Map_WetDep( State_Chm%nWetDep ), STAT=RC ) CALL GC_CheckVar( 'State_Chm%Map_WetDep', 0, RC ) @@ -2359,8 +2613,8 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) State_Chm%Map_WetDep = 0 ENDIF - IF ( W_ > 0 ) THEN - ALLOCATE( State_Chm%Map_WL( W_ ), STAT=RC ) + IF ( State_Chm%Phot%nWLbins > 0 ) THEN + ALLOCATE( State_Chm%Map_WL( State_Chm%Phot%nWLbins ), STAT=RC ) CALL GC_CheckVar( 'State_Chm%Map_WL', 0, RC ) IF ( RC /= GC_SUCCESS ) RETURN State_Chm%Map_WL = 0 @@ -2370,9 +2624,11 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) ! Set up the species mapping vectors !======================================================================== IF ( Input_Opt%amIRoot ) THEN - WRITE( 6,'(/,a)' ) 'ADVECTED SPECIES MENU' - WRITE( 6,'( a)' ) REPEAT( '-', 48 ) - WRITE( 6,'( a)' ) ' # Species Name' + WRITE( 6,'( a)' ) REPEAT( '=', 79 ) + WRITE( 6,'(a,/)' ) 'SPECIES NAMES AND INDICES' + WRITE( 6,'( a)' ) & + 'Name ModelId DryDepId WetDepId PhotolId HygGrthId KppSpcId' + WRITE( 6,'( a)' ) REPEAT( '-', 79 ) ENDIF ! Loop over all species @@ -2381,21 +2637,17 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) ! GEOS-Chem Species Database entry for species # N ThisSpc => State_Chm%SpcData(N)%Info + !--------------------------------------------------------------------- + ! Set up the mapping for ALL SPECIES + !--------------------------------------------------------------------- + State_Chm%Map_All(N) = ThisSpc%ModelID + !--------------------------------------------------------------------- ! Set up the mapping for ADVECTED SPECIES !--------------------------------------------------------------------- IF ( ThisSpc%Is_Advected ) THEN - - ! Update the mapping vector of advected species C = ThisSpc%AdvectId State_Chm%Map_Advect(C) = ThisSpc%ModelId - - ! Print to screen - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 100 ) ThisSpc%ModelId, ThisSpc%Name - 100 FORMAT( I3, 2x, A31 ) - ENDIF - ENDIF !--------------------------------------------------------------------- @@ -2448,6 +2700,8 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) IF ( ThisSpc%Is_ActiveChem ) THEN C = ThisSpc%KppVarId State_Chm%Map_KppVar(C) = ThisSpc%ModelId + State_Chm%KPP_AbsTol(C) = ThisSpc%KPP_AbsTol + State_Chm%KPP_RelTol(C) = ThisSpc%KPP_RelTol ENDIF !--------------------------------------------------------------------- @@ -2475,13 +2729,21 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) ENDIF !--------------------------------------------------------------------- - ! Set up the mapping for WETDEP SPECIES + ! Set up the mapping for RADIONUCLIDE SPECIES !--------------------------------------------------------------------- IF ( ThisSpc%Is_RadioNuclide ) THEN C = ThisSpc%RadNuclId State_Chm%Map_RadNucl(C) = ThisSpc%ModelId ENDIF + !--------------------------------------------------------------------- + ! Set up the mapping for TRANSPORT TRACER SPECIES + !--------------------------------------------------------------------- + IF ( ThisSpc%Is_Tracer ) THEN + C = ThisSpc%TracerId + State_Chm%Map_Tracer(C) = ThisSpc%ModelId + ENDIF + !--------------------------------------------------------------------- ! Set up the mapping for WETDEP SPECIES !--------------------------------------------------------------------- @@ -2490,19 +2752,38 @@ SUBROUTINE Init_Mapping_Vectors( Input_Opt, State_Chm, RC ) State_Chm%Map_WetDep(C) = ThisSpc%ModelId ENDIF + !--------------------------------------------------------------------- + ! Write out species names and IDs + !--------------------------------------------------------------------- + IF ( Input_Opt%amIRoot ) THEN + inds = ' -' + IF ( ThisSpc%ModelId > 0 ) WRITE( inds(1), 100 ) ThisSpc%ModelId + IF ( ThisSpc%DryDepId > 0 ) WRITE( inds(2), 100 ) ThisSpc%DryDepId + IF ( ThisSpc%WetDepId > 0 ) WRITE( inds(3), 100 ) ThisSpc%WetDepId + IF ( ThisSpc%PhotolId > 0 ) WRITE( inds(4), 100 ) ThisSpc%PhotolId + IF ( ThisSpc%HygGrthId > 0 ) WRITE( inds(5), 100 ) ThisSpc%HygGrthId + IF ( ThisSpc%KppSpcId > 0 ) WRITE( inds(6), 100 ) ThisSpc%KppSpcId + WRITE( 6, 110 ) ThisSpc%Name(1:14), ( inds(C), C=1,6 ) + 100 FORMAT( i10 ) + 110 FORMAT( a14, 2x, 6a10 ) + ENDIF + ! Free pointer ThisSpc => NULL() ENDDO + ! Write closing line + IF ( Input_Opt%amIRoot ) WRITE( 6,'( a)' ) REPEAT( '=', 79) + !------------------------------------------------------------------------ ! Set up the mapping for UVFlux Diagnostics ! placeholder for now since couldn't figure out how to read in WL from file !------------------------------------------------------------------------ - IF ( W_ > 0 ) THEN + IF ( State_Chm%Phot%nWLbins > 0 ) THEN ! Define identifying string - DO N = 1, W_ + DO N = 1, State_Chm%Phot%nWLbins State_Chm%Map_WL(N) = 0 ENDDO ENDIF @@ -2821,6 +3102,25 @@ SUBROUTINE Cleanup_State_Chm( State_Chm, RC ) !======================================================================= ! Deallocate and nullify pointer fields of State_Chm !======================================================================= + IF ( ASSOCIATED( State_Chm%Phot ) ) THEN + CALL Cleanup_Phot_Container( State_Chm%Phot, RC ) + State_Chm%Phot => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%KPP_AbsTol ) ) THEN + DEALLOCATE( State_Chm%KPP_AbsTol, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%KPP_AbsTol', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%KPP_AbsTol => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%KPP_RelTol ) ) THEN + DEALLOCATE( State_Chm%KPP_RelTol, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%KPP_RelTol', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%KPP_RelTol => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%Map_Advect ) ) THEN DEALLOCATE( State_Chm%Map_Advect, STAT=RC ) CALL GC_CheckVar( 'State_Chm%Map_Advect', 2, RC ) @@ -2835,6 +3135,13 @@ SUBROUTINE Cleanup_State_Chm( State_Chm, RC ) State_Chm%Map_Aero => NULL() ENDIF + IF ( ASSOCIATED( State_Chm%Map_All ) ) THEN + DEALLOCATE( State_Chm%Map_All, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%Map_All', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%Map_All => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%Map_DryDep ) ) THEN DEALLOCATE( State_Chm%Map_DryDep, STAT=RC ) CALL GC_CheckVar( 'State_Chm%Map_Drydep', 2, RC ) @@ -2914,11 +3221,18 @@ SUBROUTINE Cleanup_State_Chm( State_Chm, RC ) IF ( ASSOCIATED( State_Chm%Map_RadNucl ) ) THEN DEALLOCATE( State_Chm%Map_RadNucl, STAT=RC ) - CALL GC_CheckVar( 'State_Chm%Map_WetDep', 2, RC ) + CALL GC_CheckVar( 'State_Chm%Map_RadNucl', 2, RC ) IF ( RC /= GC_SUCCESS ) RETURN State_Chm%Map_RadNucl => NULL() ENDIF + IF ( ASSOCIATED( State_Chm%Map_Tracer ) ) THEN + DEALLOCATE( State_Chm%Map_Tracer, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%Map_Tracer', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%Map_Tracer => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%Map_WetDep ) ) THEN DEALLOCATE( State_Chm%Map_WetDep, STAT=RC ) CALL GC_CheckVar( 'State_Chm%Map_WetDep', 2, RC ) @@ -2956,6 +3270,12 @@ SUBROUTINE Cleanup_State_Chm( State_Chm, RC ) State_Chm%BoundaryCond => NULL() ENDIF + IF ( ASSOCIATED( State_Chm%AerMass ) ) THEN + CALL Cleanup_AerMass_Container(State_Chm%AerMass, RC ) + DEALLOCATE( State_Chm%AerMass ) + State_Chm%AerMass => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%AeroArea ) ) THEN DEALLOCATE( State_Chm%AeroArea, STAT=RC ) CALL GC_CheckVar( 'State_Chm%AeroArea', 2, RC ) @@ -3271,17 +3591,61 @@ SUBROUTINE Cleanup_State_Chm( State_Chm, RC ) #ifdef MODEL_GEOS IF ( ASSOCIATED( State_Chm%DryDepRa2m ) ) THEN DEALLOCATE( State_Chm%DryDepRa2m, STAT=RC ) - CALL GC_CheckVar( 'State_Chm%DryDepRa2m', 3, RC ) + CALL GC_CheckVar( 'State_Chm%DryDepRa2m', 2, RC ) IF ( RC /= GC_SUCCESS ) RETURN State_Chm%DryDepRa2m => NULL() ENDIF IF ( ASSOCIATED( State_Chm%DryDepRa10m ) ) THEN DEALLOCATE( State_Chm%DryDepRa10m, STAT=RC ) - CALL GC_CheckVar( 'State_Chm%DryDepRa10m', 3, RC ) + CALL GC_CheckVar( 'State_Chm%DryDepRa10m', 2, RC ) IF ( RC /= GC_SUCCESS ) RETURN State_Chm%DryDepRa10m => NULL() ENDIF + + ! CO2 photolysis stuff + IF ( ASSOCIATED( State_Chm%sdat ) ) THEN + DEALLOCATE( State_Chm%sdat, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%sdat', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%sdat => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%o2jdat ) ) THEN + DEALLOCATE( State_Chm%o2jdat, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%o2jdat', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%o2jdat => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%sza_tab ) ) THEN + DEALLOCATE( State_Chm%sza_tab, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%sza_tab', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%sza_tab => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%o3_tab ) ) THEN + DEALLOCATE( State_Chm%o3_tab, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%o3_tab', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%o3_tab => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%xtab ) ) THEN + DEALLOCATE( State_Chm%xtab, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%xtab', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%xtab => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%CH2O_aq ) ) THEN + DEALLOCATE( State_Chm%CH2O_aq, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%CH2O_aq', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%CH2O_aq => NULL() + ENDIF + IF ( ASSOCIATED( State_Chm%rlam ) ) THEN + DEALLOCATE( State_Chm%rlam, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%rlam', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%rlam => NULL() + ENDIF #endif IF ( ASSOCIATED( State_Chm%JOH ) ) THEN @@ -3326,13 +3690,6 @@ SUBROUTINE Cleanup_State_Chm( State_Chm, RC ) State_Chm%BCl => NULL() ENDIF - IF ( ASSOCIATED( State_Chm%CH4_EMIS ) ) THEN - DEALLOCATE( State_Chm%CH4_EMIS, STAT=RC ) - CALL GC_CheckVar( 'State_Chm%CH4_EMIS', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - State_Chm%CH4_EMIS => NULL() - ENDIF - #ifdef LUO_WETDEP IF ( ASSOCIATED( State_Chm%QQ3D ) ) THEN DEALLOCATE( State_Chm%QQ3D, STAT=RC ) @@ -3398,6 +3755,136 @@ SUBROUTINE Cleanup_State_Chm( State_Chm, RC ) State_Chm%TOMS2 => NULL() ENDIF +#if defined(MODEL_CESM) + IF ( ASSOCIATED( State_Chm%H2SO4_PRDR ) ) THEN + DEALLOCATE( State_Chm%H2SO4_PRDR, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%H2SO4_PRDR', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%H2SO4_PRDR => NULL() + ENDIF +#endif + + IF ( ASSOCIATED( State_Chm%RAD_AER ) ) THEN + DEALLOCATE( State_Chm%RAD_AER, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%RAD_AER', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%RAD_AER => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%SAD_AER ) ) THEN + DEALLOCATE( State_Chm%SAD_AER, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%SAD_AER', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%SAD_AER => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%KG_AER ) ) THEN + DEALLOCATE( State_Chm%KG_AER, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%KG_AER', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%KG_AER => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%RHO_AER ) ) THEN + DEALLOCATE( State_Chm%RHO_AER, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%RHO_AER', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%RHO_AER => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%NDENS_AER ) ) THEN + DEALLOCATE( State_Chm%NDENS_AER, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%NDENS_AER', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%NDENS_AER => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%AERFRAC ) ) THEN + DEALLOCATE( State_Chm%AERFRAC, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%AERFRAC', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%AERFRAC => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%AERFRACIND ) ) THEN + DEALLOCATE( State_Chm%AERFRACIND, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%AERFRACIND', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%AERFRACIND => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%UCX_REGRID ) ) THEN + DEALLOCATE( State_Chm%UCX_REGRID, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%UCX_REGRID', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%UCX_REGRID => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%UCX_PLEVS ) ) THEN + DEALLOCATE( State_Chm%UCX_PLEVS, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%UCX_PLEVS', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%UCX_PLEVS => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%UCX_LATS ) ) THEN + DEALLOCATE( State_Chm%UCX_LATS, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%UCX_LATS', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%UCX_LATS => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%NOX_O ) ) THEN + DEALLOCATE( State_Chm%NOX_O, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%NOX_O', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%NOX_O => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%NOX_J ) ) THEN + DEALLOCATE( State_Chm%NOX_J, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%NOX_J', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%NOX_J => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%SO4_TOPPHOT ) ) THEN + DEALLOCATE( State_Chm%SO4_TOPPHOT, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%SO4_TOPPHOT', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%SO4_TOPPHOT => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%NOXCOEFF ) ) THEN + DEALLOCATE( State_Chm%NOXCOEFF, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%NOXCOEFF', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%NOXCOEFF => NULL() + ENDIF + + IF ( ASSOCIATED( State_Chm%NOXLAT ) ) THEN + DEALLOCATE( State_Chm%NOXLAT, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%NOXLAT', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%NOXLAT => NULL() + ENDIF + +#ifdef APM + IF ( ASSOCIATED( State_Chm%PSO4_SO2APM2 ) ) THEN + DEALLOCATE( State_Chm%PSO4_SO2APM2, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%PSO4_SO2APM2', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%PSO4_SO2APM2 => NULL() + ENDIF +#endif + + IF ( ASSOCIATED( State_Chm%TStrat_Adj ) ) THEN + DEALLOCATE( State_Chm%TStrat_Adj, STAT=RC ) + CALL GC_CheckVar( 'State_Chm%TStrat_Adj', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Chm%KRATE => NULL() + ENDIF + !----------------------------------------------------------------------- ! Template for deallocating more arrays, replace xxx with field name !----------------------------------------------------------------------- @@ -3555,7 +4042,7 @@ SUBROUTINE Get_Metadata_State_Chm( am_I_Root, metadataID, Found, & CASE( 'BOUNDARYCOND' ) IF ( isDesc ) Desc = 'Transport boundary conditions for species' - IF ( isUnits ) Units = 'v/v' + IF ( isUnits ) Units = 'kg kg-1 dry' IF ( isRank ) Rank = 3 IF ( isSpc ) PerSpc = 'ADV' @@ -4321,11 +4808,6 @@ SUBROUTINE Get_Metadata_State_Chm( am_I_Root, metadataID, Found, & IF ( isUnits ) Units = '' IF ( isRank ) Rank = 4 - CASE( 'CH4_EMIS' ) - IF ( isDesc ) Desc = 'CH4 emissions by sector, CH4 specialty simulation only' - IF ( isUnits ) Units = 'kg/m2/s' - IF ( isRank ) Rank = 3 - CASE( 'BOH' ) IF ( isDesc ) Desc = 'OH values, CH4 specialty simulation only' IF ( isUnits ) Units = 'molec/cm3' @@ -4361,6 +4843,18 @@ SUBROUTINE Get_Metadata_State_Chm( am_I_Root, metadataID, Found, & IF ( isUnits ) Units = '1' IF ( isRank ) Rank = 3 +#if defined(MODEL_CESM) + CASE( 'H2SO4_PRDR' ) + IF ( isDesc ) Desc = 'H2SO4 production rate in timestep' + IF ( isUnits ) Units = 'mol mol-1' + IF ( isRank ) Rank = 3 +#endif + + CASE( 'TSTRAT_ADJ' ) + IF ( isDesc ) Desc = 'Strat T adjustment' + IF ( isUnits ) Units = 'K' + IF ( isRank ) Rank = 3 + CASE DEFAULT Found = .False. ErrMsg = 'Metadata not found for State_Chm field ' // & @@ -6290,6 +6784,7 @@ FUNCTION Ind_( name, flag ) RESULT( Indx ) ! 'N' or 'n' : Returns radionuclide species index ! 'P' or 'p' : Returns photolysis species index ! 'S' or 's' : Returns main species index (aka "ModelId") +! 'T' or 't' : Returns transport tracer index ! 'V' or 'v' : Returns KPP variable species index ! 'W' or 'w' : Returns wet-deposition species index ! @@ -6366,6 +6861,11 @@ FUNCTION Ind_( name, flag ) RESULT( Indx ) Indx = SpcDataLocal(N)%Info%ModelID RETURN + ! Transport tracer ID + CASE( 'T', 't' ) + Indx = SpcDataLocal(N)%Info%TracerId + RETURN + ! KPP variable species ID CASE( 'V', 'v' ) Indx = SpcDataLocal(N)%Info%KppVarId diff --git a/Headers/state_diag_mod.F90 b/Headers/state_diag_mod.F90 index 390792e86..5ed1fc66e 100644 --- a/Headers/state_diag_mod.F90 +++ b/Headers/state_diag_mod.F90 @@ -21,7 +21,6 @@ MODULE State_Diag_Mod ! ! USES: ! - USE CMN_FJX_MOD, ONLY : W_ USE CMN_Size_Mod, ONLY : NDUST USE DiagList_Mod USE Dictionary_M, ONLY : dictionary_t @@ -152,6 +151,10 @@ MODULE State_Diag_Mod TYPE(DgnMap), POINTER :: Map_BudgetEmisDryDepPBL LOGICAL :: Archive_BudgetEmisDryDepPBL + REAL(f8), POINTER :: BudgetEmisDryDepLevs(:,:,:) + TYPE(DgnMap), POINTER :: Map_BudgetEmisDryDepLevs + LOGICAL :: Archive_BudgetEmisDryDepLevs + REAL(f8), POINTER :: BudgetTransportFull(:,:,:) TYPE(DgnMap), POINTER :: Map_BudgetTransportFull LOGICAL :: Archive_BudgetTransportFull @@ -164,6 +167,10 @@ MODULE State_Diag_Mod TYPE(DgnMap), POINTER :: Map_BudgetTransportPBL LOGICAL :: Archive_BudgetTransportPBL + REAL(f8), POINTER :: BudgetTransportLevs(:,:,:) + TYPE(DgnMap), POINTER :: Map_BudgetTransportLevs + LOGICAL :: Archive_BudgetTransportLevs + REAL(f8), POINTER :: BudgetMixingFull(:,:,:) TYPE(DgnMap), POINTER :: Map_BudgetMixingFull LOGICAL :: Archive_BudgetMixingFull @@ -176,6 +183,10 @@ MODULE State_Diag_Mod TYPE(DgnMap), POINTER :: Map_BudgetMixingPBL LOGICAL :: Archive_BudgetMixingPBL + REAL(f8), POINTER :: BudgetMixingLevs(:,:,:) + TYPE(DgnMap), POINTER :: Map_BudgetMixingLevs + LOGICAL :: Archive_BudgetMixingLevs + REAL(f8), POINTER :: BudgetConvectionFull(:,:,:) TYPE(DgnMap), POINTER :: Map_BudgetConvectionFull LOGICAL :: Archive_BudgetConvectionFull @@ -188,6 +199,10 @@ MODULE State_Diag_Mod TYPE(DgnMap), POINTER :: Map_BudgetConvectionPBL LOGICAL :: Archive_BudgetConvectionPBL + REAL(f8), POINTER :: BudgetConvectionLevs(:,:,:) + TYPE(DgnMap), POINTER :: Map_BudgetConvectionLevs + LOGICAL :: Archive_BudgetConvectionLevs + REAL(f8), POINTER :: BudgetChemistryFull(:,:,:) TYPE(DgnMap), POINTER :: Map_BudgetChemistryFull LOGICAL :: Archive_BudgetChemistryFull @@ -200,6 +215,10 @@ MODULE State_Diag_Mod TYPE(DgnMap), POINTER :: Map_BudgetChemistryPBL LOGICAL :: Archive_BudgetChemistryPBL + REAL(f8), POINTER :: BudgetChemistryLevs(:,:,:) + TYPE(DgnMap), POINTER :: Map_BudgetChemistryLevs + LOGICAL :: Archive_BudgetChemistryLevs + REAL(f8), POINTER :: BudgetWetDepFull(:,:,:) TYPE(DgnMap), POINTER :: Map_BudgetWetDepFull LOGICAL :: Archive_BudgetWetDepFull @@ -212,7 +231,13 @@ MODULE State_Diag_Mod TYPE(DgnMap), POINTER :: Map_BudgetWetDepPBL LOGICAL :: Archive_BudgetWetDepPBL + REAL(f8), POINTER :: BudgetWetDepLevs(:,:,:) + TYPE(DgnMap), POINTER :: Map_BudgetWetDepLevs + LOGICAL :: Archive_BudgetWetDepLevs + REAL(f8), POINTER :: BudgetColumnMass(:,:,:,:) + INTEGER :: BudgetBotLev_int + INTEGER :: BudgetTopLev_int LOGICAL :: Archive_BudgetEmisDryDep LOGICAL :: Archive_BudgetTransport LOGICAL :: Archive_BudgetMixing @@ -289,6 +314,12 @@ MODULE State_Diag_Mod TYPE(DgnMap), POINTER :: Map_UvFluxNet LOGICAL :: Archive_UVFluxNet + REAL(f4), POINTER :: OD600(:,:,:) + LOGICAL :: Archive_OD600 + + REAL(f4), POINTER :: TCOD600(:,:) + LOGICAL :: Archive_TCOD600 + !%%%%% Chemistry %%%%% REAL(f4), POINTER :: RxnRate(:,:,:,:) @@ -299,6 +330,10 @@ MODULE State_Diag_Mod TYPE(DgnMap), POINTER :: Map_SatDiagnRxnRate LOGICAL :: Archive_SatDiagnRxnRate + REAL(f4), POINTER :: RxnConst(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_RxnConst + LOGICAL :: Archive_RxnConst + REAL(f4), POINTER :: OHreactivity(:,:,:) LOGICAL :: Archive_OHreactivity @@ -372,6 +407,156 @@ MODULE State_Diag_Mod REAL(f4), POINTER :: AerNumDenPSC(:,:,:) LOGICAL :: Archive_AerNumDenPSC +#ifdef TOMAS + !%%%%% TOMAS microphysics rates %%%%% + + REAL(f4), POINTER :: TomasH2SO4(:,:,:) + LOGICAL :: Archive_TomasH2SO4 + LOGICAL :: Archive_Tomas + + REAL(f4), POINTER :: TomasH2SO4mass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasH2SO4mass + LOGICAL :: Archive_TomasH2SO4mass + + REAL(f4), POINTER :: TomasH2SO4number(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasH2SO4number + LOGICAL :: Archive_TomasH2SO4number + + REAL(f4), POINTER :: TomasCOAG(:,:,:) + LOGICAL :: Archive_TomasCOAG + + REAL(f4), POINTER :: TomasCOAGmass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasCOAGmass + LOGICAL :: Archive_TomasCOAGmass + + REAL(f4), POINTER :: TomasCOAGnumber(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasCOAGnumber + LOGICAL :: Archive_TomasCOAGnumber + + REAL(f4), POINTER :: TomasNUCL(:,:,:) + LOGICAL :: Archive_TomasNUCL + + REAL(f4), POINTER :: TomasNUCRATEFN(:,:,:) + LOGICAL :: Archive_TomasNUCRATEFN + + REAL(f4), POINTER :: TomasNUCLmass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasNUCLmass + LOGICAL :: Archive_TomasNUCLmass + + REAL(f4), POINTER :: TomasNUCLnumber(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasNUCLnumber + LOGICAL :: Archive_TomasNUCLnumber + + REAL(f4), POINTER :: TomasNUCRATEnumber(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasNUCRATEnumber + LOGICAL :: Archive_TomasNUCRATEnumber + + REAL(f4), POINTER :: TomasAQOX(:,:,:) + LOGICAL :: Archive_TomasAQOX + + REAL(f4), POINTER :: TomasAQOXmass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasAQOXmass + LOGICAL :: Archive_TomasAQOXmass + + REAL(f4), POINTER :: TomasAQOXnumber(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasAQOXnumber + LOGICAL :: Archive_TomasAQOXnumber + + REAL(f4), POINTER :: TomasMNFIX(:,:,:) + LOGICAL :: Archive_TomasMNFIX + + REAL(f4), POINTER :: TomasMNFIXmass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXmass + LOGICAL :: Archive_TomasMNFIXmass + + REAL(f4), POINTER :: TomasMNFIXnumber(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXnumber + LOGICAL :: Archive_TomasMNFIXnumber + + REAL(f4), POINTER :: TomasMNFIXh2so4mass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXh2so4mass + LOGICAL :: Archive_TomasMNFIXh2so4mass + + REAL(f4), POINTER :: TomasMNFIXh2so4number(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXh2so4number + LOGICAL :: Archive_TomasMNFIXh2so4number + + REAL(f4), POINTER :: TomasMNFIXcoagmass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXcoagmass + LOGICAL :: Archive_TomasMNFIXcoagmass + + REAL(f4), POINTER :: TomasMNFIXcoagnumber(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXcoagnumber + LOGICAL :: Archive_TomasMNFIXcoagnumber + + REAL(f4), POINTER :: TomasMNFIXaqoxmass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXaqoxmass + LOGICAL :: Archive_TomasMNFIXaqoxmass + + REAL(f4), POINTER :: TomasMNFIXaqoxnumber(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXaqoxnumber + LOGICAL :: Archive_TomasMNFIXaqoxnumber + + REAL(f4), POINTER :: TomasMNFIXezwat1mass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXezwat1mass + LOGICAL :: Archive_TomasMNFIXezwat1mass + + REAL(f4), POINTER :: TomasMNFIXezwat1number(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXezwat1number + LOGICAL :: Archive_TomasMNFIXezwat1number + + REAL(f4), POINTER :: TomasMNFIXezwat2mass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXezwat2mass + LOGICAL :: Archive_TomasMNFIXezwat2mass + + REAL(f4), POINTER :: TomasMNFIXezwat2number(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXezwat2number + LOGICAL :: Archive_TomasMNFIXezwat2number + + REAL(f4), POINTER :: TomasMNFIXezwat3mass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXezwat3mass + LOGICAL :: Archive_TomasMNFIXezwat3mass + + REAL(f4), POINTER :: TomasMNFIXezwat3number(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXezwat3number + LOGICAL :: Archive_TomasMNFIXezwat3number + + REAL(f4), POINTER :: TomasMNFIXcheck1mass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXcheck1mass + LOGICAL :: Archive_TomasMNFIXcheck1mass + + REAL(f4), POINTER :: TomasMNFIXcheck1number(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXcheck1number + LOGICAL :: Archive_TomasMNFIXcheck1number + + REAL(f4), POINTER :: TomasMNFIXcheck2mass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXcheck2mass + LOGICAL :: Archive_TomasMNFIXcheck2mass + + REAL(f4), POINTER :: TomasMNFIXcheck2number(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXcheck2number + LOGICAL :: Archive_TomasMNFIXcheck2number + + REAL(f4), POINTER :: TomasMNFIXcheck3mass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXcheck3mass + LOGICAL :: Archive_TomasMNFIXcheck3mass + + REAL(f4), POINTER :: TomasMNFIXcheck3number(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasMNFIXcheck3number + LOGICAL :: Archive_TomasMNFIXcheck3number + + REAL(f4), POINTER :: TomasSOA(:,:,:) + LOGICAL :: Archive_TomasSOA + + REAL(f4), POINTER :: TomasSOAmass(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasSOAmass + LOGICAL :: Archive_TomasSOAmass + + REAL(f4), POINTER :: TomasSOAnumber(:,:,:,:) + TYPE(DgnMap), POINTER :: Map_TomasSOAnumber + LOGICAL :: Archive_TomasSOAnumber +#endif + !%%%%% Aerosol optical depths %%%%% REAL(f4), POINTER :: AODDust(:,:,:) @@ -488,6 +673,10 @@ MODULE State_Diag_Mod REAL(f4), POINTER :: PM10(:,:,:) LOGICAL :: Archive_PM10 + ! H. Zhu + REAL(f4), POINTER :: PDER(:,:,:) + LOGICAL :: Archive_PDER + REAL(f4), POINTER :: TotalOA(:,:,:) LOGICAL :: Archive_TotalOA @@ -666,6 +855,12 @@ MODULE State_Diag_Mod REAL(f4), POINTER :: KppSmDecomps(:,:,:) LOGICAL :: Archive_KppSmDecomps + REAL(f4), POINTER :: KppNegatives(:,:,:) + LOGICAL :: Archive_KppNegatives + + REAL(f4), POINTER :: KppNegatives0(:,:,:) + LOGICAL :: Archive_KppNegatives0 + !%%%%% KPP auto-reduce solver diagnostics %%%%% REAL(f4), POINTER :: KppAutoReducerNVAR(:,:,:) LOGICAL :: Archive_KppAutoReducerNVAR @@ -1057,6 +1252,18 @@ MODULE State_Diag_Mod REAL(f4), POINTER :: RadClrSkySWTOA(:,:,:) LOGICAL :: Archive_RadClrSkySWTOA + REAL(f4), POINTER :: RadAllSkyLWTrop(:,:,:) + LOGICAL :: Archive_RadAllSkyLWTrop + + REAL(f4), POINTER :: RadAllSkySWTrop(:,:,:) + LOGICAL :: Archive_RadAllSkySWTrop + + REAL(f4), POINTER :: RadClrSkyLWTrop(:,:,:) + LOGICAL :: Archive_RadClrSkyLWTrop + + REAL(f4), POINTER :: RadClrSkySWTrop(:,:,:) + LOGICAL :: Archive_RadClrSkySWTrop + REAL(f4), POINTER :: RadAODWL1(:,:,:) LOGICAL :: Archive_RadAODWL1 @@ -1086,6 +1293,18 @@ MODULE State_Diag_Mod LOGICAL :: Archive_RadOptics + REAL(f8), POINTER :: DynHeating(:,:,:) + LOGICAL :: Archive_DynHeating + + REAL(f4), POINTER :: DTRad(:,:,:) + LOGICAL :: Archive_DTRad + + REAL(f4), POINTER :: IsWater(:,:) + REAL(f4), POINTER :: IsLand(:,:) + REAL(f4), POINTER :: IsIce(:,:) + REAL(f4), POINTER :: IsSnow(:,:) + LOGICAL :: Archive_sfcType + !---------------------------------------------------------------------- ! Variables for the ObsPack diagnostic ! NOTE: ObsPack archives point data, so don't register these @@ -1100,6 +1319,7 @@ MODULE State_Diag_Mod ! ObsPack Inputs INTEGER :: ObsPack_nObs + CHARACTER(LEN=1), POINTER :: ObsPack_CharArray (:,:) CHARACTER(LEN=200), POINTER :: ObsPack_Id (: ) INTEGER, POINTER :: ObsPack_nSamples (: ) INTEGER, POINTER :: ObsPack_Strategy (: ) @@ -1181,9 +1401,6 @@ MODULE State_Diag_Mod !%%%%% Chemistry diagnostics %%%%% - REAL(f4), POINTER :: KppError(:,:,:) - LOGICAL :: Archive_KppError - REAL(f4), POINTER :: O3concAfterChem(:,:,:) LOGICAL :: Archive_O3concAfterChem @@ -1192,9 +1409,15 @@ MODULE State_Diag_Mod !%%%%% PM2.5 diagnostics %%%%% - REAL(f4), POINTER :: PM25ni(:,:,:) ! PM25 nitrates + REAL(f4), POINTER :: PM25ni(:,:,:) ! PM25 nitrate+ammonium LOGICAL :: Archive_PM25ni + REAL(f4), POINTER :: PM25nit(:,:,:) ! PM25 nitrates + LOGICAL :: Archive_PM25nit + + REAL(f4), POINTER :: PM25nh4(:,:,:) ! PM25 ammonium + LOGICAL :: Archive_PM25nh4 + REAL(f4), POINTER :: PM25su(:,:,:) ! PM25 sulfates LOGICAL :: Archive_PM25su @@ -1214,6 +1437,10 @@ MODULE State_Diag_Mod LOGICAL :: Archive_PM25soa !%%%%% Species diagnostics %%%%% + REAL(f4), POINTER :: PblCol(:,:,:) + TYPE(DgnMap), POINTER :: Map_PblCol + LOGICAL :: Archive_PblCol + REAL(f4), POINTER :: TropCol(:,:,:) TYPE(DgnMap), POINTER :: Map_TropCol LOGICAL :: Archive_TropCol @@ -1221,12 +1448,19 @@ MODULE State_Diag_Mod REAL(f4), POINTER :: TotCol(:,:,:) TYPE(DgnMap), POINTER :: Map_TotCol LOGICAL :: Archive_TotCol + + ! Carbon stuff + REAL(f4), POINTER :: COincCO2phot(:,:,:) + LOGICAL :: Archive_COincCO2phot + + REAL(f4), POINTER :: CO2photrate(:,:,:) + LOGICAL :: Archive_CO2photrate #endif -#ifdef MODEL_WRF +#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) || defined( MODEL_CESM ) !---------------------------------------------------------------------- ! The following diagnostics are only used when - ! GEOS-Chem is interfaced into WRF (as WRF-GC) + ! GEOS-Chem is interfaced into WRF (as WRF-GC) or CESM !---------------------------------------------------------------------- REAL(f4), POINTER :: KppError(:,:,:) LOGICAL :: Archive_KppError @@ -1376,6 +1610,10 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%Map_BudgetEmisDryDepPBL => NULL() State_Diag%Archive_BudgetEmisDryDepPBL = .FALSE. + State_Diag%BudgetEmisDryDepLevs => NULL() + State_Diag%Map_BudgetEmisDryDepLevs => NULL() + State_Diag%Archive_BudgetEmisDryDepLevs = .FALSE. + State_Diag%BudgetTransportFull => NULL() State_Diag%Map_BudgetTransportFull => NULL() State_Diag%Archive_BudgetTransportFull = .FALSE. @@ -1389,6 +1627,10 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%Map_BudgetTransportPBL => NULL() State_Diag%Archive_BudgetTransportPBL = .FALSE. + State_Diag%BudgetTransportLevs => NULL() + State_Diag%Map_BudgetTransportLevs => NULL() + State_Diag%Archive_BudgetTransportLevs = .FALSE. + State_Diag%BudgetMixingFull => NULL() State_Diag%Map_BudgetMixingFull => NULL() State_Diag%Archive_BudgetMixingFull = .FALSE. @@ -1402,6 +1644,10 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%Map_BudgetMixingPBL => NULL() State_Diag%Archive_BudgetMixingPBL = .FALSE. + State_Diag%BudgetMixingLevs => NULL() + State_Diag%Map_BudgetMixingLevs => NULL() + State_Diag%Archive_BudgetMixingLevs = .FALSE. + State_Diag%BudgetConvectionFull => NULL() State_Diag%Map_BudgetConvectionFull => NULL() State_Diag%Archive_BudgetConvectionFull = .FALSE. @@ -1415,6 +1661,10 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%Map_BudgetConvectionPBL => NULL() State_Diag%Archive_BudgetConvectionPBL = .FALSE. + State_Diag%BudgetConvectionLevs => NULL() + State_Diag%Map_BudgetConvectionLevs => NULL() + State_Diag%Archive_BudgetConvectionLevs = .FALSE. + State_Diag%BudgetChemistryFull => NULL() State_Diag%Map_BudgetChemistryFull => NULL() State_Diag%Archive_BudgetChemistryFull = .FALSE. @@ -1428,6 +1678,10 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%Map_BudgetChemistryPBL => NULL() State_Diag%Archive_BudgetChemistryPBL = .FALSE. + State_Diag%BudgetChemistryLevs => NULL() + State_Diag%Map_BudgetChemistryLevs => NULL() + State_Diag%Archive_BudgetChemistryLevs = .FALSE. + State_Diag%BudgetWetDepFull => NULL() State_Diag%Map_BudgetWetDepFull => NULL() State_Diag%Archive_BudgetWetDepFull = .FALSE. @@ -1441,9 +1695,16 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%Map_BudgetWetDepPBL => NULL() State_Diag%Archive_BudgetWetDepPBL = .FALSE. + State_Diag%BudgetWetDepLevs => NULL() + State_Diag%Map_BudgetWetDepLevs => NULL() + State_Diag%Archive_BudgetWetDepLevs = .FALSE. + State_Diag%BudgetColumnMass => NULL() State_Diag%Archive_Budget = .FALSE. + State_Diag%BudgetTopLev_int = -999 + State_Diag%BudgetBotLev_int = -999 + !%%%%% Drydep diagnostics %%%%% State_Diag%DryDepChm => NULL() @@ -1508,6 +1769,10 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%Map_SatDiagnRxnRate => NULL() State_Diag%Archive_SatDiagnRxnRate = .FALSE. + State_Diag%RxnConst => NULL() + State_Diag%Map_RxnConst => NULL() + State_Diag%Archive_RxnConst = .FALSE. + State_Diag%OHreactivity => NULL() State_Diag%Archive_OHreactivity = .FALSE. @@ -1526,6 +1791,12 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%Map_UvFluxNet => NULL() State_Diag%Archive_UVFluxNet = .FALSE. + State_Diag%OD600 => NULL() + State_Diag%Archive_OD600 = .FALSE. + + State_Diag%TCOD600 => NULL() + State_Diag%Archive_TCOD600 = .FALSE. + State_Diag%OHconcAfterChem => NULL() State_Diag%Archive_OHconcAfterChem = .FALSE. @@ -1593,6 +1864,157 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%AerNumDenPSC => NULL() State_Diag%Archive_AerNumDenPSC = .FALSE. +#ifdef TOMAS + !%%%%% Tomas microphysical rate diagnostics %%%%% + + State_Diag%TomasH2SO4 => NULL() + State_Diag%Archive_TomasH2SO4 = .FALSE. + State_Diag%Archive_Tomas = .FALSE. + + State_Diag%TomasH2SO4mass => NULL() + State_Diag%Map_TomasH2SO4mass => NULL() + State_Diag%Archive_TomasH2SO4mass = .FALSE. + State_Diag%Archive_Tomas = .FALSE. + + State_Diag%TomasH2SO4number => NULL() + State_Diag%Map_TomasH2SO4number => NULL() + State_Diag%Archive_TomasH2SO4number = .FALSE. + + State_Diag%TomasCOAG => NULL() + State_Diag%Archive_TomasCOAG = .FALSE. + + State_Diag%TomasCOAGmass => NULL() + State_Diag%Map_TomasCOAGmass => NULL() + State_Diag%Archive_TomasCOAGmass = .FALSE. + + State_Diag%TomasCOAGnumber => NULL() + State_Diag%Map_TomasCOAGnumber => NULL() + State_Diag%Archive_TomasCOAGnumber = .FALSE. + + State_Diag%TomasNUCL => NULL() + State_Diag%Archive_TomasNUCL = .FALSE. + + State_Diag%TomasNUCRATEFN => NULL() + State_Diag%Archive_TomasNUCRATEFN = .FALSE. + + State_Diag%TomasNUCLmass => NULL() + State_Diag%Map_TomasNUCLmass => NULL() + State_Diag%Archive_TomasNUCLmass = .FALSE. + + State_Diag%TomasNUCLnumber => NULL() + State_Diag%Map_TomasNUCLnumber => NULL() + State_Diag%Archive_TomasNUCLnumber = .FALSE. + + State_Diag%TomasNUCRATEnumber => NULL() + State_Diag%Map_TomasNUCRATEnumber => NULL() + State_Diag%Archive_TomasNUCRATEnumber = .FALSE. + + State_Diag%TomasAQOX => NULL() + State_Diag%Archive_TomasAQOX = .FALSE. + + State_Diag%TomasAQOXmass => NULL() + State_Diag%Map_TomasAQOXmass => NULL() + State_Diag%Archive_TomasAQOXmass = .FALSE. + + State_Diag%TomasAQOXnumber => NULL() + State_Diag%Map_TomasAQOXnumber => NULL() + State_Diag%Archive_TomasAQOXnumber = .FALSE. + + State_Diag%TomasMNFIX => NULL() + State_Diag%Archive_TomasMNFIX = .FALSE. + + State_Diag%TomasMNFIXmass => NULL() + State_Diag%Map_TomasMNFIXmass => NULL() + State_Diag%Archive_TomasMNFIXmass = .FALSE. + + State_Diag%TomasMNFIXnumber => NULL() + State_Diag%Map_TomasMNFIXnumber => NULL() + State_Diag%Archive_TomasMNFIXnumber = .FALSE. + + State_Diag%TomasMNFIXh2so4mass => NULL() + State_Diag%Map_TomasMNFIXh2so4mass => NULL() + State_Diag%Archive_TomasMNFIXh2so4mass = .FALSE. + + State_Diag%TomasMNFIXh2so4number => NULL() + State_Diag%Map_TomasMNFIXh2so4number => NULL() + State_Diag%Archive_TomasMNFIXh2so4number = .FALSE. + + State_Diag%TomasMNFIXcoagmass => NULL() + State_Diag%Map_TomasMNFIXcoagmass => NULL() + State_Diag%Archive_TomasMNFIXcoagmass = .FALSE. + + State_Diag%TomasMNFIXcoagnumber => NULL() + State_Diag%Map_TomasMNFIXcoagnumber => NULL() + State_Diag%Archive_TomasMNFIXcoagnumber = .FALSE. + + State_Diag%TomasMNFIXaqoxmass => NULL() + State_Diag%Map_TomasMNFIXaqoxmass => NULL() + State_Diag%Archive_TomasMNFIXaqoxmass = .FALSE. + + State_Diag%TomasMNFIXaqoxnumber => NULL() + State_Diag%Map_TomasMNFIXaqoxnumber => NULL() + State_Diag%Archive_TomasMNFIXaqoxnumber = .FALSE. + + State_Diag%TomasMNFIXezwat1mass => NULL() + State_Diag%Map_TomasMNFIXezwat1mass => NULL() + State_Diag%Archive_TomasMNFIXezwat1mass = .FALSE. + + State_Diag%TomasMNFIXezwat1number => NULL() + State_Diag%Map_TomasMNFIXezwat1number => NULL() + State_Diag%Archive_TomasMNFIXezwat1number = .FALSE. + + State_Diag%TomasMNFIXezwat2mass => NULL() + State_Diag%Map_TomasMNFIXezwat2mass => NULL() + State_Diag%Archive_TomasMNFIXezwat2mass = .FALSE. + + State_Diag%TomasMNFIXezwat2number => NULL() + State_Diag%Map_TomasMNFIXezwat2number => NULL() + State_Diag%Archive_TomasMNFIXezwat2number = .FALSE. + + State_Diag%TomasMNFIXezwat3mass => NULL() + State_Diag%Map_TomasMNFIXezwat3mass => NULL() + State_Diag%Archive_TomasMNFIXezwat3mass = .FALSE. + + State_Diag%TomasMNFIXezwat3number => NULL() + State_Diag%Map_TomasMNFIXezwat3number => NULL() + State_Diag%Archive_TomasMNFIXezwat3number = .FALSE. + + State_Diag%TomasMNFIXcheck1mass => NULL() + State_Diag%Map_TomasMNFIXcheck1mass => NULL() + State_Diag%Archive_TomasMNFIXcheck1mass = .FALSE. + + State_Diag%TomasMNFIXcheck1number => NULL() + State_Diag%Map_TomasMNFIXcheck1number => NULL() + State_Diag%Archive_TomasMNFIXcheck1number = .FALSE. + + State_Diag%TomasMNFIXcheck2mass => NULL() + State_Diag%Map_TomasMNFIXcheck2mass => NULL() + State_Diag%Archive_TomasMNFIXcheck2mass = .FALSE. + + State_Diag%TomasMNFIXcheck2number => NULL() + State_Diag%Map_TomasMNFIXcheck2number => NULL() + State_Diag%Archive_TomasMNFIXcheck2number = .FALSE. + + State_Diag%TomasMNFIXcheck3mass => NULL() + State_Diag%Map_TomasMNFIXcheck3mass => NULL() + State_Diag%Archive_TomasMNFIXcheck3mass = .FALSE. + + State_Diag%TomasMNFIXcheck3number => NULL() + State_Diag%Map_TomasMNFIXcheck3number => NULL() + State_Diag%Archive_TomasMNFIXcheck3number = .FALSE. + + State_Diag%TomasSOA => NULL() + State_Diag%Archive_TomasSOA = .FALSE. + + State_Diag%TomasSOAmass => NULL() + State_Diag%Map_TomasSOAmass => NULL() + State_Diag%Archive_TomasSOAmass = .FALSE. + + State_Diag%TomasSOAnumber => NULL() + State_Diag%Map_TomasSOAnumber => NULL() + State_Diag%Archive_TomasSOAnumber = .FALSE. +#endif + !%%%%% Aerosol optical depth diagnostics %%%%% State_Diag%AODDust => NULL() State_Diag%Archive_AODDust = .FALSE. @@ -1708,6 +2130,10 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%PM10 => NULL() State_Diag%Archive_PM10 = .FALSE. + ! Paremeterized Dry Effective radius (H. Zhu, April 05 2024) + State_Diag%PDER => NULL() + State_Diag%Archive_PDER = .FALSE. + State_Diag%TotalOA => NULL() State_Diag%Archive_TotalOA = .FALSE. @@ -1880,6 +2306,12 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%KppSmDecomps => NULL() State_Diag%Archive_KppSmDecomps = .FALSE. + State_Diag%KppNegatives => NULL() + State_Diag%Archive_KppNegatives = .FALSE. + + State_Diag%KppNegatives0 => NULL() + State_Diag%Archive_KppNegatives0 = .FALSE. + State_Diag%KppAutoReducerNVAR => NULL() State_Diag%Archive_KppAutoReducerNVAR = .FALSE. @@ -2047,6 +2479,18 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%RadClrSkySWTOA => NULL() State_Diag%Archive_RadClrSkySWTOA = .FALSE. + State_Diag%RadAllSkyLWTrop => NULL() + State_Diag%Archive_RadAllSkyLWTrop = .FALSE. + + State_Diag%RadAllSkySWTrop => NULL() + State_Diag%Archive_RadAllSkySWTrop = .FALSE. + + State_Diag%RadClrSkyLWTrop => NULL() + State_Diag%Archive_RadClrSkyLWTrop = .FALSE. + + State_Diag%RadClrSkySWTrop => NULL() + State_Diag%Archive_RadClrSkySWTrop = .FALSE. + State_Diag%RadAODWL1 => NULL() State_Diag%Archive_RadAODWL1 = .FALSE. @@ -2074,6 +2518,18 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%RadAsymWL3 => NULL() State_Diag%Archive_RadAsymWL3 = .FALSE. + State_Diag%DynHeating => NULL() + State_Diag%Archive_DynHeating = .FALSE. + + State_Diag%DTRad => NULL() + State_Diag%Archive_DTRad = .FALSE. + + State_Diag%IsWater => NULL() + State_Diag%IsLand => NULL() + State_Diag%IsIce => NULL() + State_Diag%IsSnow => NULL() + State_Diag%Archive_SfcType = .FALSE. + State_Diag%Archive_RadOptics = .FALSE. !%%%%% POPs simulation diagnostics %%%%% @@ -2337,6 +2793,12 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%PM25ni => NULL() State_Diag%Archive_PM25ni = .FALSE. + State_Diag%PM25nit => NULL() + State_Diag%Archive_PM25nit = .FALSE. + + State_Diag%PM25nh4 => NULL() + State_Diag%Archive_PM25nh4 = .FALSE. + State_Diag%PM25su => NULL() State_Diag%Archive_PM25su = .FALSE. @@ -2355,6 +2817,10 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%PM25soa => NULL() State_Diag%Archive_PM25soa = .FALSE. + State_Diag%PblCol => NULL() + State_Diag%Map_PblCol => NULL() + State_Diag%Archive_PblCol = .FALSE. + State_Diag%TropCol => NULL() State_Diag%Map_TropCol => NULL() State_Diag%Archive_TropCol = .FALSE. @@ -2362,12 +2828,18 @@ SUBROUTINE Zero_State_Diag( State_Diag, RC ) State_Diag%TotCol => NULL() State_Diag%Map_TotCol => NULL() State_Diag%Archive_TotCol = .FALSE. + + State_Diag%COincCO2phot => NULL() + State_Diag%Archive_COincCO2phot = .FALSE. + + State_Diag%CO2photrate => NULL() + State_Diag%Archive_CO2photrate = .FALSE. #endif -#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) +#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) || defined( MODEL_CESM ) !======================================================================= ! These diagnostics are only activated when running GC - ! either in NASA/GEOS or in WRF + ! either in NASA/GEOS, WRF, or CESM !======================================================================= State_Diag%KppError => NULL() State_Diag%Archive_KppError = .FALSE. @@ -2465,10 +2937,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & !------------------------------------------------------------------------ ! Write header !------------------------------------------------------------------------ - IF ( Input_Opt%amIRoot ) THEN - WRITE( 6, 10 ) - 10 FORMAT( /, 'Allocating the following fields of the State_Diag object:' ) - WRITE( 6, '(a)' ) REPEAT( '=', 79 ) + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN + WRITE( 6, 10 ) + 10 FORMAT(/, 'Allocating the following fields of the State_Diag object:') + WRITE( 6, '(a)' ) REPEAT( '=', 79 ) ENDIF !------------------------------------------------------------------------ @@ -2646,7 +3118,7 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & TaggedDiagList = TaggedDiag_List, & Ptr2Data = State_Diag%ScaleICsAdj, & archiveData = State_Diag%Archive_ScaleICsAdj, & - mapData = State_Diag%Map_ScaleICsAdj, & + mapData = State_Diag%Map_ScaleICsAdj, & diagId = diagId, & diagFlag = 'S', & RC = RC ) @@ -2681,7 +3153,6 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !----------------------------------------------------------------------- ! Budget for emissions (average kg/m2/s across single timestep) !----------------------------------------------------------------------- @@ -2750,10 +3221,34 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Fixed level range emissions + diagID = 'BudgetEmisDryDepLevs' // & + TRIM( budgetBotLev_str ) // 'to' // TRIM( budgetTopLev_str ) + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%BudgetEmisDryDepLevs, & + archiveData = State_Diag%Archive_BudgetEmisDryDepLevs, & + mapData = State_Diag%Map_BudgetEmisDryDepLevs, & + diagId = diagId, & + diagFlag = 'A', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ! High-level logical for emissions budget IF ( State_Diag%Archive_BudgetEmisDryDepFull .OR. & State_Diag%Archive_BudgetEmisDryDepTrop .OR. & - State_Diag%Archive_BudgetEmisDryDepPBL ) THEN + State_Diag%Archive_BudgetEmisDryDepLevs .OR. & + State_Diag%Archive_BudgetEmisDryDepLevs ) THEN State_Diag%Archive_BudgetEmisDryDep = .TRUE. ENDIF @@ -2825,10 +3320,34 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Fixed level range transport + diagID = 'BudgetTransportLevs' // & + TRIM( budgetBotLev_str ) // 'to' // TRIM( budgetTopLev_str ) + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%BudgetTransportLevs, & + archiveData = State_Diag%Archive_BudgetTransportLevs, & + mapData = State_Diag%Map_BudgetTransportLevs, & + diagId = diagId, & + diagFlag = 'A', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ! High-level logical for transport budget IF ( State_Diag%Archive_BudgetTransportFull .OR. & State_Diag%Archive_BudgetTransportTrop .OR. & - State_Diag%Archive_BudgetTransportPBL ) THEN + State_Diag%Archive_BudgetTransportPBL .OR. & + State_Diag%Archive_BudgetTransportLevs ) THEN State_Diag%Archive_BudgetTransport = .TRUE. ENDIF @@ -2900,10 +3419,34 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Fixed level range mixing + diagID = 'BudgetMixingLevs' // & + TRIM( budgetBotLev_str ) // 'to' // TRIM( budgetTopLev_str ) + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%BudgetMixingLevs, & + archiveData = State_Diag%Archive_BudgetMixingLevs, & + mapData = State_Diag%Map_BudgetMixingLevs, & + diagId = diagId, & + diagFlag = 'A', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ! High-level logical for mixing budget IF ( State_Diag%Archive_BudgetMixingFull .OR. & State_Diag%Archive_BudgetMixingTrop .OR. & - State_Diag%Archive_BudgetMixingPBL ) THEN + State_Diag%Archive_BudgetMixingPBL .OR. & + State_Diag%Archive_BudgetMixingLevs ) THEN State_Diag%Archive_BudgetMixing = .TRUE. ENDIF @@ -2975,10 +3518,34 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Fixed level range convection + diagID = 'BudgetConvectionLevs' // & + TRIM( budgetBotLev_str ) // 'to' // TRIM( budgetTopLev_str ) + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%BudgetConvectionLevs, & + archiveData = State_Diag%Archive_BudgetConvectionLevs, & + mapData = State_Diag%Map_BudgetConvectionLevs, & + diagId = diagId, & + diagFlag = 'A', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ! High-level logical for convection budget IF ( State_Diag%Archive_BudgetConvectionFull .OR. & State_Diag%Archive_BudgetConvectionTrop .OR. & - State_Diag%Archive_BudgetConvectionPBL ) THEN + State_Diag%Archive_BudgetConvectionPBL .OR. & + State_Diag%Archive_BudgetConvectionLevs ) THEN State_Diag%Archive_BudgetConvection = .TRUE. ENDIF @@ -3050,10 +3617,34 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Fixed level range chemistry + diagID = 'BudgetChemistryLevs' // & + TRIM( budgetBotLev_str ) // 'to' // TRIM( budgetTopLev_str ) + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%BudgetChemistryLevs, & + archiveData = State_Diag%Archive_BudgetChemistryLevs, & + mapData = State_Diag%Map_BudgetChemistryLevs, & + diagId = diagId, & + diagFlag = 'A', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ! Set high-level logical for archiving chemistry budget IF ( State_Diag%Archive_BudgetChemistryFull .OR. & State_Diag%Archive_BudgetChemistryTrop .OR. & - State_Diag%Archive_BudgetChemistryPBL ) THEN + State_Diag%Archive_BudgetChemistryPBL .OR. & + State_Diag%Archive_BudgetChemistryLevs ) THEN State_Diag%Archive_BudgetChemistry = .TRUE. ENDIF @@ -3125,13 +3716,59 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + ! Fixed level range wet deposition + diagID = 'BudgetWetDepLevs' // & + TRIM( budgetBotLev_str ) // 'to' // TRIM( budgetTopLev_str ) + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%BudgetWetDepLevs, & + archiveData = State_Diag%Archive_BudgetWetDepLevs, & + mapData = State_Diag%Map_BudgetWetDepLevs, & + diagId = diagId, & + diagFlag = 'W', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ! High-level logical for wet deposition budget IF ( State_Diag%Archive_BudgetWetDepFull .OR. & State_Diag%Archive_BudgetWetDepTrop .OR. & - State_Diag%Archive_BudgetWetDepPBL ) THEN + State_Diag%Archive_BudgetWetDepPBL .OR. & + State_Diag%Archive_BudgetWetDepLevs ) THEN State_Diag%Archive_BudgetWetDep = .TRUE. ENDIF + !------------------------------------------------------------------------ + ! Top and bottom levels for budget level range diagnostics + !------------------------------------------------------------------------ + IF (State_Diag%Archive_BudgetEmisDryDepLevs .or. & + State_Diag%Archive_BudgetTransportLevs .or. & + State_Diag%Archive_BudgetMixingLevs .or. & + State_Diag%Archive_BudgetConvectionLevs .or. & + State_Diag%Archive_BudgetChemistryLevs .or. & + State_Diag%Archive_BudgetWetDepLevs ) THEN + READ( BudgetTopLev_str, '(i3)') State_Diag%BudgetTopLev_int + READ( BudgetBotLev_str, '(i3)') State_Diag%BudgetBotLev_int + IF ( ( State_Diag%BudgetBotLev_int <= 0 ) .OR. & + ( State_Diag%BudgetBotLev_int > State_Diag%BudgetTopLev_int ) .OR. & + ( State_Diag%BudgetTopLev_int > State_Grid%NZ ) ) THEN + errMsg = 'Budget diagnostic level range is not valid: ' // & + TRIM(BudgetBotLev_str) // ' to ' // & + TRIM(BudgetTopLev_str) // '. Check HISTORY.rc.' + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ENDIF + !------------------------------------------------------------------------ ! Total dry deposition flux !------------------------------------------------------------------------ @@ -3323,12 +3960,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - -#ifdef MODEL_GEOS !----------------------------------------------------------------------- - ! Monin-Obukhov length + ! Surface types !----------------------------------------------------------------------- - diagID = 'MoninObukhov' + diagID = 'IsWater' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -3336,8 +3971,8 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%MoninObukhov, & - archiveData = State_Diag%Archive_MoninObukhov, & + Ptr2Data = State_Diag%IsWater, & + archiveData = State_Diag%Archive_SfcType, & diagId = diagId, & RC = RC ) @@ -3347,10 +3982,7 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !----------------------------------------------------------------------- - ! Bry - !----------------------------------------------------------------------- - diagID = 'Bry' + diagID = 'IsLand' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -3358,8 +3990,91 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%Bry, & - archiveData = State_Diag%Archive_Bry, & + Ptr2Data = State_Diag%IsLand, & + archiveData = State_Diag%Archive_SfcType, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + diagID = 'IsIce' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%IsIce, & + archiveData = State_Diag%Archive_SfcType, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + diagID = 'IsSnow' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%IsSnow, & + archiveData = State_Diag%Archive_SfcType, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + +#ifdef MODEL_GEOS + !----------------------------------------------------------------------- + ! Monin-Obukhov length + !----------------------------------------------------------------------- + diagID = 'MoninObukhov' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%MoninObukhov, & + archiveData = State_Diag%Archive_MoninObukhov, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !----------------------------------------------------------------------- + ! Bry + !----------------------------------------------------------------------- + diagID = 'Bry' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%Bry, & + archiveData = State_Diag%Archive_Bry, & diagId = diagId, & RC = RC ) @@ -3888,9 +4603,9 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & !======================================================================= ! The following diagnostic quantities are only relevant for: ! - ! THE Rn-Pb-Be-Passive SPECIALTY SIMULATION + ! THE TransportTracers SPECIALTY SIMULATION !======================================================================= - IF ( Input_Opt%ITS_A_RnPbBe_SIM ) THEN + IF ( Input_Opt%ITS_A_TRACER_SIM ) THEN !-------------------------------------------------------------------- ! Emission of Pb210 from Rn222 decay @@ -3942,7 +4657,7 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & !------------------------------------------------------------------- ! Halt with an error message if any of the following quantities ! have been requested as diagnostics in simulations other than - ! the Rn-Pb-Be-Passive simulation. + ! the TransportTracers simulation. ! ! This will prevent potential errors caused by the quantities ! being requested as diagnostic output when the corresponding @@ -3962,7 +4677,7 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & CALL Check_DiagList( am_I_Root, Diag_List, diagID, Found, RC ) IF ( Found ) THEN ErrMsg = TRIM( diagId ) // ' is a requested diagnostic, ' // & - 'but this is only appropriate for Rn-Pb-Be-Passive '// & + 'but this is only appropriate for TransportTracers '// & 'simulations.' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN @@ -4466,37 +5181,42 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & !------------------------------------------------------------------------ ! Set a single logical for SatDiagn output + ! For ease of comparison, place fields in alphabetical order !------------------------------------------------------------------------ State_Diag%Archive_SatDiagn = ( & - State_Diag%Archive_SatDiagnColEmis .or. & - State_Diag%Archive_SatDiagnSurfFlux .or. & - State_Diag%Archive_SatDiagnOH .or. & - State_Diag%Archive_SatDiagnRH .or. & State_Diag%Archive_SatDiagnAirDen .or. & State_Diag%Archive_SatDiagnBoxHeight .or. & - State_Diag%Archive_SatDiagnPEdge .or. & - State_Diag%Archive_SatDiagnTROPP .or. & - State_Diag%Archive_SatDiagnPBLHeight .or. & - State_Diag%Archive_SatDiagnPBLTop .or. & - State_Diag%Archive_SatDiagnTAir .or. & + State_Diag%Archive_SatDiagnColEmis .or. & + State_Diag%Archive_SatDiagnConc .or. & + State_Diag%Archive_SatDiagnDryDep .or. & + State_Diag%Archive_SatDiagnDryDepVel .or. & State_Diag%Archive_SatDiagnGWETROOT .or. & State_Diag%Archive_SatDiagnGWETTOP .or. & - State_Diag%Archive_SatDiagnPARDR .or. & + State_Diag%Archive_SatDiagnJval .or. & + State_Diag%Archive_SatDiagnJvalO3O1D .or. & + State_Diag%Archive_SatDiagnJvalO3O3P .or. & + State_Diag%Archive_SatDiagnLoss .or. & + State_Diag%Archive_SatDiagnMODISLAI .or. & + State_Diag%Archive_SatDiagnOH .or. & + State_Diag%Archive_SatDiagnOHreactivity .or. & State_Diag%Archive_SatDiagnPARDF .or. & + State_Diag%Archive_SatDiagnPARDR .or. & + State_Diag%Archive_SatDiagnPBLHeight .or. & + State_Diag%Archive_SatDiagnPBLTop .or. & + State_Diag%Archive_SatDiagnPBLTopL .or. & + State_Diag%Archive_SatDiagnPEdge .or. & State_Diag%Archive_SatDiagnPRECTOT .or. & + State_Diag%Archive_SatDiagnProd .or. & + State_Diag%Archive_SatDiagnRH .or. & + State_Diag%Archive_SatDiagnRxnRate .or. & State_Diag%Archive_SatDiagnSLP .or. & State_Diag%Archive_SatDiagnSPHU .or. & + State_Diag%Archive_SatDiagnSurfFlux .or. & + State_Diag%Archive_SatDiagnTAir .or. & + State_Diag%Archive_SatDiagnTROPP .or. & State_Diag%Archive_SatDiagnTS .or. & - State_Diag%Archive_SatDiagnPBLTOPL .or. & - State_Diag%Archive_SatDiagnMODISLAI .or. & State_Diag%Archive_SatDiagnWetLossLS .or. & - State_Diag%Archive_SatDiagnWetLossConv .or. & - State_Diag%Archive_SatDiagnJval .or. & - State_Diag%Archive_SatDiagnJvalO3O1D .or. & - State_Diag%Archive_SatDiagnJvalO3O3P .or. & - State_Diag%Archive_SatDiagnDryDep .or. & - State_Diag%Archive_SatDiagnDryDepVel .or. & - State_Diag%Archive_SatDiagnOHreactivity ) + State_Diag%Archive_SatDiagnWetLossConv ) !------------------------------------------------------------------------ ! Satellite diagnostic: Counter @@ -4594,6 +5314,29 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + !-------------------------------------------------------------------- + ! RRTMG: All-sky LW rad @ tropopause + !-------------------------------------------------------------------- + diagID = 'RadAllSkyLWTrop' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%RadAllSkyLWTrop, & + archiveData = State_Diag%Archive_RadAllSkyLWTrop, & + diagId = diagId, & + diagFlag = 'Z', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !-------------------------------------------------------------------- ! RRTMG: All-sky SW rad @ surface !-------------------------------------------------------------------- @@ -4640,6 +5383,29 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + !-------------------------------------------------------------------- + ! RRTMG: All-sky SW rad @ tropopause + !-------------------------------------------------------------------- + diagID = 'RadAllSkySWTrop' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%RadAllSkySWTrop, & + archiveData = State_Diag%Archive_RadAllSkySWTrop, & + diagId = diagId, & + diagFlag = 'Z', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !-------------------------------------------------------------------- ! RRTMG: Clear-sky SW rad @ surface !-------------------------------------------------------------------- @@ -4686,6 +5452,29 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + !-------------------------------------------------------------------- + ! RRTMG: Clear-sky LW rad @ tropopause + !-------------------------------------------------------------------- + diagID = 'RadClrSkyLWTrop' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%RadClrSkyLWTrop, & + archiveData = State_Diag%Archive_RadClrSkyLWTrop, & + diagId = diagId, & + diagFlag = 'Z', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !-------------------------------------------------------------------- ! RRTMG: Clear-sky SW rad @ surface !-------------------------------------------------------------------- @@ -4732,6 +5521,29 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + !-------------------------------------------------------------------- + ! RRTMG: Clear-sky SW rad @ tropopause + !-------------------------------------------------------------------- + diagID = 'RadClrSkySWTrop' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%RadClrSkySWTrop, & + archiveData = State_Diag%Archive_RadClrSkySWTrop, & + diagId = diagId, & + diagFlag = 'Z', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !-------------------------------------------------------------------- ! RRTMG: Aerosol optical depth per wavelength !-------------------------------------------------------------------- @@ -4921,6 +5733,42 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + diagID = 'DynHeating' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%DynHeating, & + archiveData = State_Diag%Archive_DynHeating, & + diagId = diagId, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + diagID = 'DTRad' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%DTRad, & + archiveData = State_Diag%Archive_DTRad, & + diagId = diagId, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + ELSE !------------------------------------------------------------------- @@ -4932,7 +5780,7 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & ! being requested as diagnostic output when the corresponding ! array has not been allocated. !------------------------------------------------------------------- - DO N = 1, 17 + DO N = 1, 23 ! Select the diagnostic ID SELECT CASE( N ) @@ -4941,44 +5789,56 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & CASE( 2 ) diagID = 'RadAllSkyLWTOA' CASE( 3 ) - diagID = 'RadAllSkySWSurf' + diagID = 'RadAllSkyLWTrop' CASE( 4 ) - diagID = 'RadAllSkySWTOA' + diagID = 'RadAllSkySWSurf' CASE( 5 ) - diagID = 'RadClrSkyLWSurf' + diagID = 'RadAllSkySWTOA' CASE( 6 ) - diagID = 'RadClrSkyLWTOA' + diagID = 'RadAllSkySWTrop' CASE( 7 ) - diagID = 'RadClrSkySWSurf' + diagID = 'RadClrSkyLWSurf' CASE( 8 ) - diagID = 'RadClrSkySWTOA' + diagID = 'RadClrSkyLWTOA' CASE( 9 ) + diagID = 'RadClrSkyLWTrop' + CASE( 10 ) + diagID = 'RadClrSkySWSurf' + CASE( 11 ) + diagID = 'RadClrSkySWTOA' + CASE( 12 ) + diagID = 'RadClrSkySWTrop' + CASE( 13 ) TmpWL = RadWL(1) diagID = 'RadAOD' // TRIM( TmpWL ) // 'nm' - CASE( 10 ) + CASE( 14 ) TmpWL = RadWL(2) diagID = 'RadAOD' // TRIM( TmpWL ) // 'nm' - CASE( 11 ) + CASE( 15 ) TmpWL = RadWL(3) diagID = 'RadAOD' // TRIM( TmpWL ) // 'nm' - CASE( 12 ) + CASE( 16 ) TmpWL = RadWL(1) diagID = 'RadSSA' // TRIM( TmpWL ) // 'nm' - CASE( 13 ) + CASE( 17 ) TmpWL = RadWL(2) diagID = 'RadSSA' // TRIM( TmpWL ) // 'nm' - CASE( 14 ) + CASE( 18 ) TmpWL = RadWL(3) diagID = 'RadSSA' // TRIM( TmpWL ) // 'nm' - CASE( 15 ) + CASE( 19 ) TmpWL = RadWL(1) diagID = 'RadAsym' // TRIM( TmpWL ) // 'nm' - CASE( 16 ) + CASE( 20 ) TmpWL = RadWL(2) diagID = 'RadAsym' // TRIM( TmpWL ) // 'nm' - CASE( 17 ) + CASE( 21 ) TmpWL = RadWL(3) diagID = 'RadAsym' // TRIM( TmpWL ) // 'nm' + CASE( 22 ) + diagID = 'DynHeating' + CASE( 23 ) + diagID = 'DTRad' END SELECT ! Exit if any of the above are in the diagnostic list @@ -5051,9 +5911,9 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & ENDIF !-------------------------------------------------------------------- - ! OH reactivity + ! KPP Reaction Rate Constants !-------------------------------------------------------------------- - diagID = 'OHreactivity' + diagID = 'RxnConst' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -5061,9 +5921,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%OHreactivity, & - archiveData = State_Diag%Archive_OHreactivity, & + Ptr2Data = State_Diag%RxnConst, & + archiveData = State_Diag%Archive_RxnConst, & + mapData = State_Diag%Map_RxnConst, & diagId = diagId, & + diagFlag = 'R', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -5072,9 +5934,31 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF -#ifdef MODEL_GEOS !-------------------------------------------------------------------- - ! NOx lifetime + ! OH reactivity + !-------------------------------------------------------------------- + diagID = 'OHreactivity' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%OHreactivity, & + archiveData = State_Diag%Archive_OHreactivity, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + +#ifdef MODEL_GEOS + !-------------------------------------------------------------------- + ! NOx lifetime !-------------------------------------------------------------------- diagID = 'NOxTau' CALL Init_and_Register( & @@ -5392,6 +6276,50 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + !-------------------------------------------------------------------- + ! Optical depth (3D) used to compute photolysis rates (600 nm) + !-------------------------------------------------------------------- + diagID = 'OD600' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%OD600, & + archiveData = State_Diag%Archive_OD600, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Total column optical depth used to compute photolysis rates (600 nm) + !-------------------------------------------------------------------- + diagID = 'TCOD600' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TCOD600, & + archiveData = State_Diag%Archive_TCOD600, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !-------------------------------------------------------------------- ! HO2 concentration upon exiting the FlexChem solver !-------------------------------------------------------------------- @@ -5942,6 +6870,50 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + !------------------------------------------------------------------- + ! Number of negative concentrations after KPP integration + !------------------------------------------------------------------- + diagID = 'KppNegatives' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%KppNegatives, & + archiveData = State_Diag%Archive_KppNegatives, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Number of negative concentrations after first KPP integration try + !------------------------------------------------------------------- + diagID = 'KppNegatives0' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%KppNegatives0, & + archiveData = State_Diag%Archive_KppNegatives0, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !------------------------------------------------------------------- ! AR only -- Number of species in reduced mechanism (NVAR - NRMV) !------------------------------------------------------------------- @@ -6030,7 +7002,7 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF -#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) +#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) || defined( MODEL_CESM ) !-------------------------------------------------------------------- ! KPP error flag !-------------------------------------------------------------------- @@ -6065,7 +7037,7 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & ! being requested as diagnostic output when the corresponding ! array has not been allocated. !------------------------------------------------------------------- - DO N = 1, 34 + DO N = 1, 41 ! Select the diagnostic ID SELECT CASE( N ) CASE( 1 ) @@ -6144,6 +7116,12 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & diagID = 'KppcNONZERO' CASE( 38 ) diagID = 'KppAutoReduceThres' + CASE( 39 ) + diagID = 'RxnConst' + CASE( 40 ) + diagID = 'KppNegatives' + CASE( 41 ) + diagID = 'KppNegatives0' END SELECT ! Exit if any of the above are in the diagnostic list @@ -6286,8 +7264,8 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & ! and THE CH4 SPECIALTY SIMULATION !======================================================================= IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. & - Input_Opt%ITS_A_CH4_SIM .or. & - Input_Opt%ITS_A_CARBON_SIM ) THEN + Input_Opt%ITS_A_CARBON_SIM .or. & + Input_Opt%ITS_A_CH4_SIM ) THEN !-------------------------------------------------------------------- ! OH concentration upon exiting the FlexChem solver (fullchem @@ -6588,9 +7566,9 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF ENDDO - + ENDIF - + !======================================================================= ! The following diagnostic quantities are only relevant for: ! @@ -6601,10 +7579,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & !======================================================================= IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. Input_Opt%ITS_AN_AEROSOL_SIM ) THEN +#ifdef TOMAS !-------------------------------------------------------------------- - ! Dust Optical Depth + ! Tomas Microphysics Rate - Condensation !-------------------------------------------------------------------- - diagID = 'AODDust' + diagID = 'TomasH2SO4' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6612,8 +7591,8 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODDust, & - archiveData = State_Diag%Archive_AODDust, & + Ptr2Data = State_Diag%TomasH2SO4, & + archiveData = State_Diag%Archive_TomasH2SO4, & diagId = diagId, & RC = RC ) @@ -6624,10 +7603,9 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & ENDIF !-------------------------------------------------------------------- - ! Dust Optical Depth per bin at 1st wavelength + ! Tomas Microphysics Rate - Condensation rate per bin !-------------------------------------------------------------------- - TmpWL = RadWL(1) ! Workaround for ifort 17 - diagID = 'AODDust' // TRIM( TmpWL ) // 'nm' ! to avoid seg faults + diagID = 'TomasH2SO4mass' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6635,11 +7613,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODDustWL1, & - archiveData = State_Diag%Archive_AODDustWL1, & - mapData = State_Diag%Map_AODDustWL1, & + Ptr2Data = State_Diag%TomasH2SO4mass, & + archiveData = State_Diag%Archive_TomasH2SO4mass, & + mapData = State_Diag%Map_TomasH2SO4mass, & diagId = diagId, & - diagFlag = 'B', & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6649,10 +7627,9 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & ENDIF !-------------------------------------------------------------------- - ! Dust Optical Depth per bin at 2nd wavelength + ! Tomas Microphysics Rate - Condensation rate per bin !-------------------------------------------------------------------- - TmpWL = RadWL(2) - diagID = 'AODDust' // TRIM( TmpWL ) // 'nm' + diagID = 'TomasH2SO4number' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6660,11 +7637,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODDustWL2, & - archiveData = State_Diag%Archive_AODDustWL2, & - mapData = State_Diag%Map_AODDustWL2, & + Ptr2Data = State_Diag%TomasH2SO4number, & + archiveData = State_Diag%Archive_TomasH2SO4number, & + mapData = State_Diag%Map_TomasH2SO4number, & diagId = diagId, & - diagFlag = 'B', & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6674,10 +7651,9 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & ENDIF !-------------------------------------------------------------------- - ! Dust Optical Depth per bin at 3rd wavelength + ! Tomas Microphysics Rate - Coagulation !-------------------------------------------------------------------- - TmpWL = RadWL(3) - diagID = 'AODDust' // TRIM( TmpWL ) // 'nm' + diagID = 'TomasCOAG' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6685,11 +7661,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODDustWL3, & - archiveData = State_Diag%Archive_AODDustWL3, & - mapData = State_Diag%Map_AODDustWL3, & + Ptr2Data = State_Diag%TomasCOAG, & + archiveData = State_Diag%Archive_TomasCOAG, & + !mapData = State_Diag%Map_TomasCOAG, & diagId = diagId, & - diagFlag = 'B', & + !diagFlag = 'B', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6698,11 +7674,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Optical Depth per Hygroscopic Aerosol Species at 1st Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(1) - diagID = 'AODHyg' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Coagulation rate per bin + !-------------------------------------------------------------------- + diagID = 'TomasCOAGmass' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6710,11 +7685,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODHygWL1, & - archiveData = State_Diag%Archive_AODHygWL1, & - mapData = State_Diag%Map_AODHygWL1, & + Ptr2Data = State_Diag%TomasCOAGmass, & + archiveData = State_Diag%Archive_TomasCOAGmass, & + mapData = State_Diag%Map_TomasCOAGmass, & diagId = diagId, & - diagFlag = 'H', & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6723,11 +7698,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Optical Depth per Hygroscopic Aerosol Species at 2nd Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(2) - diagID = 'AODHyg' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Coagulation rate per bin + !-------------------------------------------------------------------- + diagID = 'TomasCOAGnumber' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6735,11 +7709,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODHygWL2, & - archiveData = State_Diag%Archive_AODHygWL2, & - mapData = State_Diag%Map_AODHygWL2, & + Ptr2Data = State_Diag%TomasCOAGnumber, & + archiveData = State_Diag%Archive_TomasCOAGnumber, & + mapData = State_Diag%Map_TomasCOAGnumber, & diagId = diagId, & - diagFlag = 'H', & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6748,11 +7722,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Optical Depth per Hygroscopic Aerosol Species at 3rd Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(3) - diagID = 'AODHyg' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Nucleation + !-------------------------------------------------------------------- + diagID = 'TomasNUCL' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6760,11 +7733,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODHygWL3, & - archiveData = State_Diag%Archive_AODHygWL3, & - mapData = State_Diag%Map_AODHygWL3, & + Ptr2Data = State_Diag%TomasNUCL, & + archiveData = State_Diag%Archive_TomasNUCL, & + !mapData = State_Diag%Map_TomasNUCL, & diagId = diagId, & - diagFlag = 'H', & + !diagFlag = 'B', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6773,11 +7746,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Isoprene SOA Optical Depth at 1st Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(1) - diagID = 'AODSOAfromAqIsoprene' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Nucleation + !-------------------------------------------------------------------- + diagID = 'TomasNUCRATEFN' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6785,9 +7757,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODSOAfromAqIsopWL1, & - archiveData = State_Diag%Archive_AODSOAfromAqIsopWL1, & + Ptr2Data = State_Diag%TomasNUCRATEFN, & + archiveData = State_Diag%Archive_TomasNUCRATEFN, & + !mapData = State_Diag%Map_TomasNUCRATEfn, & diagId = diagId, & + !diagFlag = 'B', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6796,11 +7770,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Isoprene SOA Optical Depth at 2nd Wavelength - !------------------------------------------------------------------- - TmpWl = RadWL(2) - diagID = 'AODSOAfromAqIsoprene' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Nucleation rate per bin + !-------------------------------------------------------------------- + diagID = 'TomasNUCLmass' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6808,9 +7781,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODSOAfromAqIsopWL2, & - archiveData = State_Diag%Archive_AODSOAfromAqIsopWL2, & + Ptr2Data = State_Diag%TomasNUCLmass, & + archiveData = State_Diag%Archive_TomasNUCLmass, & + mapData = State_Diag%Map_TomasNUCLmass, & diagId = diagId, & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6819,11 +7794,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Isoprene SOA Optical Depth at 3rd Wavelength - !------------------------------------------------------------------- - TmpWl = RadWL(3) - diagID = 'AODSOAfromAqIsoprene' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Nucleation rate per bin + !-------------------------------------------------------------------- + diagID = 'TomasNUCLnumber' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6831,9 +7805,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODSOAfromAqIsopWL3, & - archiveData = State_Diag%Archive_AODSOAfromAqIsopWL3, & + Ptr2Data = State_Diag%TomasNUCLnumber, & + archiveData = State_Diag%Archive_TomasNUCLnumber, & + mapData = State_Diag%Map_TomasNUCLnumber, & diagId = diagId, & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6842,11 +7818,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Stratospheric Liquid Aerosol Optical Depth at 1st Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(1) - diagID = 'AODStratLiquidAer' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Nucleation rate per bin + !-------------------------------------------------------------------- + diagID = 'TomasNUCRATEnumber' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6854,9 +7829,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODSLAWL1, & - archiveData = State_Diag%Archive_AODSLAWL1, & + Ptr2Data = State_Diag%TomasNUCRATEnumber, & + archiveData = State_Diag%Archive_TomasNUCRATEnumber, & + mapData = State_Diag%Map_TomasNUCRATEnumber, & diagId = diagId, & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6865,11 +7842,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Stratospheric Liquid Aerosol Optical Depth at 2nd Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(2) - diagID = 'AODStratLiquidAer' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Aqueous Oxidation + !-------------------------------------------------------------------- + diagID = 'TomasAQOX' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6877,9 +7853,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODSLAWL2, & - archiveData = State_Diag%Archive_AODSLAWL2, & + Ptr2Data = State_Diag%TomasAQOX, & + archiveData = State_Diag%Archive_TomasAQOX, & + !mapData = State_Diag%Map_TomasAQOX, & diagId = diagId, & + !diagFlag = 'B', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6888,11 +7866,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Stratospheric Liquid Aerosol Optical Depth at 3rd Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(3) - diagID = 'AODStratLiquidAer' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Aqueous oxidation rate per bin + !-------------------------------------------------------------------- + diagID = 'TomasAQOXmass' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6900,9 +7877,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODSLAWL3, & - archiveData = State_Diag%Archive_AODSLAWL3, & + Ptr2Data = State_Diag%TomasAQOXmass, & + archiveData = State_Diag%Archive_TomasAQOXmass, & + mapData = State_Diag%Map_TomasAQOXmass, & diagId = diagId, & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6911,11 +7890,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Polar Stratospheric Cloud Type 1a/2 Optical Depth at 1st Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(1) - diagID = 'AODPolarStratCloud' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Aqueous oxidation rate per bin + !-------------------------------------------------------------------- + diagID = 'TomasAQOXnumber' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6923,9 +7901,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODPSCWL1, & - archiveData = State_Diag%Archive_AODPSCWL1, & + Ptr2Data = State_Diag%TomasAQOXnumber, & + archiveData = State_Diag%Archive_TomasAQOXnumber, & + mapData = State_Diag%Map_TomasAQOXnumber, & diagId = diagId, & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6934,11 +7914,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Polar Stratospheric Cloud Type 1a/2 Optical Depth at 1st Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(2) - diagID = 'AODPolarStratCloud' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - Error + !-------------------------------------------------------------------- + diagID = 'TomasMNFIX' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6946,9 +7925,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODPSCWL2, & - archiveData = State_Diag%Archive_AODPSCWL2, & + Ptr2Data = State_Diag%TomasMNFIX, & + archiveData = State_Diag%Archive_TomasMNFIX, & + !mapData = State_Diag%Map_TomasMNFIX, & diagId = diagId, & + !diagFlag = 'B', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6957,11 +7938,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Polar Stratospheric Cloud Type 1a/2 Optical Depth at 1st Wavelength - !------------------------------------------------------------------- - TmpWL = RadWL(3) - diagID = 'AODPolarStratCloud' // TRIM( TmpWL ) // 'nm' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXmass' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6969,9 +7949,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AODPSCWL3, & - archiveData = State_Diag%Archive_AODPSCWL3, & + Ptr2Data = State_Diag%TomasMNFIXmass, & + archiveData = State_Diag%Archive_TomasMNFIXmass, & + mapData = State_Diag%Map_TomasMNFIXmass, & diagId = diagId, & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -6980,10 +7962,10 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- - ! Hygroscopic Growth per Aerosol Species - !------------------------------------------------------------------- - diagID = 'AerHygroscopicGrowth' + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXnumber' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -6991,11 +7973,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%AerHygGrowth, & - archiveData = State_Diag%Archive_AerHygGrowth, & - mapData = State_Diag%Map_AerHygGrowth, & + Ptr2Data = State_Diag%TomasMNFIXnumber, & + archiveData = State_Diag%Archive_TomasMNFIXnumber, & + mapData = State_Diag%Map_TomasMNFIXnumber, & diagId = diagId, & - diagFlag = 'H', & + diagFlag = 'T', & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -7004,7 +7986,915 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF - !------------------------------------------------------------------- + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXh2so4mass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXh2so4mass, & + archiveData = State_Diag%Archive_TomasMNFIXh2so4mass, & + mapData = State_Diag%Map_TomasMNFIXh2so4mass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXh2so4number' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXh2so4number, & + archiveData = State_Diag%Archive_TomasMNFIXh2so4number, & + mapData = State_Diag%Map_TomasMNFIXh2so4number, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXcoagmass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXcoagmass, & + archiveData = State_Diag%Archive_TomasMNFIXcoagmass, & + mapData = State_Diag%Map_TomasMNFIXcoagmass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXcoagnumber' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXcoagnumber, & + archiveData = State_Diag%Archive_TomasMNFIXcoagnumber, & + mapData = State_Diag%Map_TomasMNFIXcoagnumber, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXaqoxmass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXaqoxmass, & + archiveData = State_Diag%Archive_TomasMNFIXaqoxmass, & + mapData = State_Diag%Map_TomasMNFIXaqoxmass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXaqoxnumber' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXaqoxnumber, & + archiveData = State_Diag%Archive_TomasMNFIXaqoxnumber, & + mapData = State_Diag%Map_TomasMNFIXaqoxnumber, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXezwat1mass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXezwat1mass, & + archiveData = State_Diag%Archive_TomasMNFIXezwat1mass, & + mapData = State_Diag%Map_TomasMNFIXezwat1mass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXezwat1number' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXezwat1number, & + archiveData = State_Diag%Archive_TomasMNFIXezwat1number, & + mapData = State_Diag%Map_TomasMNFIXezwat1number, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXezwat2mass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXezwat2mass, & + archiveData = State_Diag%Archive_TomasMNFIXezwat2mass, & + mapData = State_Diag%Map_TomasMNFIXezwat2mass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXezwat2number' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXezwat2number, & + archiveData = State_Diag%Archive_TomasMNFIXezwat2number, & + mapData = State_Diag%Map_TomasMNFIXezwat2number, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXezwat3mass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXezwat3mass, & + archiveData = State_Diag%Archive_TomasMNFIXezwat3mass, & + mapData = State_Diag%Map_TomasMNFIXezwat3mass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXezwat3number' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXezwat3number, & + archiveData = State_Diag%Archive_TomasMNFIXezwat3number, & + mapData = State_Diag%Map_TomasMNFIXezwat3number, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXcheck1mass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXcheck1mass, & + archiveData = State_Diag%Archive_TomasMNFIXcheck1mass, & + mapData = State_Diag%Map_TomasMNFIXcheck1mass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXcheck1number' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXcheck1number, & + archiveData = State_Diag%Archive_TomasMNFIXcheck1number, & + mapData = State_Diag%Map_TomasMNFIXcheck1number, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXcheck2mass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXcheck2mass, & + archiveData = State_Diag%Archive_TomasMNFIXcheck2mass, & + mapData = State_Diag%Map_TomasMNFIXcheck2mass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXcheck2number' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXcheck2number, & + archiveData = State_Diag%Archive_TomasMNFIXcheck2number, & + mapData = State_Diag%Map_TomasMNFIXcheck2number, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXcheck3mass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXcheck3mass, & + archiveData = State_Diag%Archive_TomasMNFIXcheck3mass, & + mapData = State_Diag%Map_TomasMNFIXcheck3mass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - ERROR per bin + !-------------------------------------------------------------------- + diagID = 'TomasMNFIXcheck3number' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasMNFIXcheck3number, & + archiveData = State_Diag%Archive_TomasMNFIXcheck3number, & + mapData = State_Diag%Map_TomasMNFIXcheck3number, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - SOA + !-------------------------------------------------------------------- + diagID = 'TomasSOA' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasSOA, & + archiveData = State_Diag%Archive_TomasSOA, & + !mapData = State_Diag%Map_TomasSOA, & + diagId = diagId, & + !diagFlag = 'B', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN! + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - SOA Cond per bin + !-------------------------------------------------------------------- + diagID = 'TomasSOAmass' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasSOAmass, & + archiveData = State_Diag%Archive_TomasSOAmass, & + mapData = State_Diag%Map_TomasSOAmass, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Tomas Microphysics Rate - SOA Cond per bin + !-------------------------------------------------------------------- + diagID = 'TomasSOAnumber' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TomasSOAnumber, & + archiveData = State_Diag%Archive_TomasSOAnumber, & + mapData = State_Diag%Map_TomasSOAnumber, & + diagId = diagId, & + diagFlag = 'T', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF +#endif + + !-------------------------------------------------------------------- + ! Dust Optical Depth + !-------------------------------------------------------------------- + diagID = 'AODDust' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODDust, & + archiveData = State_Diag%Archive_AODDust, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Dust Optical Depth per bin at 1st wavelength + !-------------------------------------------------------------------- + TmpWL = RadWL(1) ! Workaround for ifort 17 + diagID = 'AODDust' // TRIM( TmpWL ) // 'nm' ! to avoid seg faults + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODDustWL1, & + archiveData = State_Diag%Archive_AODDustWL1, & + mapData = State_Diag%Map_AODDustWL1, & + diagId = diagId, & + diagFlag = 'B', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Dust Optical Depth per bin at 2nd wavelength + !-------------------------------------------------------------------- + TmpWL = RadWL(2) + diagID = 'AODDust' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODDustWL2, & + archiveData = State_Diag%Archive_AODDustWL2, & + mapData = State_Diag%Map_AODDustWL2, & + diagId = diagId, & + diagFlag = 'B', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! Dust Optical Depth per bin at 3rd wavelength + !-------------------------------------------------------------------- + TmpWL = RadWL(3) + diagID = 'AODDust' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODDustWL3, & + archiveData = State_Diag%Archive_AODDustWL3, & + mapData = State_Diag%Map_AODDustWL3, & + diagId = diagId, & + diagFlag = 'B', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Optical Depth per Hygroscopic Aerosol Species at 1st Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(1) + diagID = 'AODHyg' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODHygWL1, & + archiveData = State_Diag%Archive_AODHygWL1, & + mapData = State_Diag%Map_AODHygWL1, & + diagId = diagId, & + diagFlag = 'H', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Optical Depth per Hygroscopic Aerosol Species at 2nd Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(2) + diagID = 'AODHyg' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODHygWL2, & + archiveData = State_Diag%Archive_AODHygWL2, & + mapData = State_Diag%Map_AODHygWL2, & + diagId = diagId, & + diagFlag = 'H', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Optical Depth per Hygroscopic Aerosol Species at 3rd Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(3) + diagID = 'AODHyg' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODHygWL3, & + archiveData = State_Diag%Archive_AODHygWL3, & + mapData = State_Diag%Map_AODHygWL3, & + diagId = diagId, & + diagFlag = 'H', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Isoprene SOA Optical Depth at 1st Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(1) + diagID = 'AODSOAfromAqIsoprene' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODSOAfromAqIsopWL1, & + archiveData = State_Diag%Archive_AODSOAfromAqIsopWL1, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Isoprene SOA Optical Depth at 2nd Wavelength + !------------------------------------------------------------------- + TmpWl = RadWL(2) + diagID = 'AODSOAfromAqIsoprene' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODSOAfromAqIsopWL2, & + archiveData = State_Diag%Archive_AODSOAfromAqIsopWL2, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Isoprene SOA Optical Depth at 3rd Wavelength + !------------------------------------------------------------------- + TmpWl = RadWL(3) + diagID = 'AODSOAfromAqIsoprene' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODSOAfromAqIsopWL3, & + archiveData = State_Diag%Archive_AODSOAfromAqIsopWL3, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Stratospheric Liquid Aerosol Optical Depth at 1st Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(1) + diagID = 'AODStratLiquidAer' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODSLAWL1, & + archiveData = State_Diag%Archive_AODSLAWL1, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Stratospheric Liquid Aerosol Optical Depth at 2nd Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(2) + diagID = 'AODStratLiquidAer' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODSLAWL2, & + archiveData = State_Diag%Archive_AODSLAWL2, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Stratospheric Liquid Aerosol Optical Depth at 3rd Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(3) + diagID = 'AODStratLiquidAer' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODSLAWL3, & + archiveData = State_Diag%Archive_AODSLAWL3, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Polar Stratospheric Cloud Type 1a/2 Optical Depth at 1st Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(1) + diagID = 'AODPolarStratCloud' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODPSCWL1, & + archiveData = State_Diag%Archive_AODPSCWL1, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Polar Stratospheric Cloud Type 1a/2 Optical Depth at 1st Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(2) + diagID = 'AODPolarStratCloud' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODPSCWL2, & + archiveData = State_Diag%Archive_AODPSCWL2, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Polar Stratospheric Cloud Type 1a/2 Optical Depth at 1st Wavelength + !------------------------------------------------------------------- + TmpWL = RadWL(3) + diagID = 'AODPolarStratCloud' // TRIM( TmpWL ) // 'nm' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AODPSCWL3, & + archiveData = State_Diag%Archive_AODPSCWL3, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- + ! Hygroscopic Growth per Aerosol Species + !------------------------------------------------------------------- + diagID = 'AerHygroscopicGrowth' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%AerHygGrowth, & + archiveData = State_Diag%Archive_AerHygGrowth, & + mapData = State_Diag%Map_AerHygGrowth, & + diagId = diagId, & + diagFlag = 'H', & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !------------------------------------------------------------------- ! Surface Area of Mineral Dust !------------------------------------------------------------------- diagID = 'AerSurfAreaDust' @@ -7607,9 +9497,32 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + !------------------------------------------------------------------- + ! PDER, aka parameterized dry effective radius for SNA and OM [nm] + ! H. Zhu, April 05, 2024 + !------------------------------------------------------------------- + diagID = 'PDER' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%PDER, & + archiveData = State_Diag%Archive_PDER, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + #ifdef MODEL_GEOS !-------------------------------------------------------------------- - ! PM25 nitrates + ! PM25 nitrates+ammonium !-------------------------------------------------------------------- diagID = 'PM25ni' CALL Init_and_Register( & @@ -7630,6 +9543,50 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & RETURN ENDIF + !-------------------------------------------------------------------- + ! PM25 nitrates + !-------------------------------------------------------------------- + diagID = 'PM25nit' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%PM25nit, & + archiveData = State_Diag%Archive_PM25nit, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! PM25 ammonium + !-------------------------------------------------------------------- + diagID = 'PM25nh4' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%PM25nh4, & + archiveData = State_Diag%Archive_PM25nh4, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !-------------------------------------------------------------------- ! PM25 sulfates !-------------------------------------------------------------------- @@ -7711,17 +9668,78 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & archiveData = State_Diag%Archive_PM25du, & diagId = diagId, & RC = RC ) - + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! PM25 sea salt + !-------------------------------------------------------------------- + diagID = 'PM25ss' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%PM25ss, & + archiveData = State_Diag%Archive_PM25ss, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + !-------------------------------------------------------------------- + ! PM25 SOA + !-------------------------------------------------------------------- + diagID = 'PM25soa' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%PM25soa, & + archiveData = State_Diag%Archive_PM25soa, & + diagId = diagId, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + + diagID = 'TotCol' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Diag = State_Diag, & + State_Grid = State_Grid, & + DiagList = Diag_List, & + TaggedDiagList = TaggedDiag_List, & + Ptr2Data = State_Diag%TotCol, & + archiveData = State_Diag%Archive_TotCol, & + mapData = State_Diag%Map_TotCol, & + diagId = diagId, & + diagFlag = 'S', & + RC = RC ) IF ( RC /= GC_SUCCESS ) THEN errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - !-------------------------------------------------------------------- - ! PM25 sea salt - !-------------------------------------------------------------------- - diagID = 'PM25ss' + diagID = 'PblCol' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -7729,21 +9747,19 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%PM25ss, & - archiveData = State_Diag%Archive_PM25ss, & + Ptr2Data = State_Diag%PblCol, & + archiveData = State_Diag%Archive_PblCol, & + mapData = State_Diag%Map_PblCol, & diagId = diagId, & + diagFlag = 'S', & RC = RC ) - IF ( RC /= GC_SUCCESS ) THEN errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - !-------------------------------------------------------------------- - ! PM25 SOA - !-------------------------------------------------------------------- - diagID = 'PM25soa' + diagID = 'TropCol' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -7751,18 +9767,22 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%PM25soa, & - archiveData = State_Diag%Archive_PM25soa, & + Ptr2Data = State_Diag%TropCol, & + archiveData = State_Diag%Archive_TropCol, & + mapData = State_Diag%Map_TropCol, & diagId = diagId, & + diagFlag = 'S', & RC = RC ) - IF ( RC /= GC_SUCCESS ) THEN errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - diagID = 'TotCol' + !-------------------------------------------------------------------- + ! CO2 photolysis rate + !-------------------------------------------------------------------- + diagID = 'CO2photrate' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -7770,19 +9790,21 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%TotCol, & - archiveData = State_Diag%Archive_TotCol, & - mapData = State_Diag%Map_TotCol, & + Ptr2Data = State_Diag%CO2photrate, & + archiveData = State_Diag%Archive_CO2photrate, & diagId = diagId, & - diagFlag = 'S', & RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) CALL GC_Error( errMsg, RC, thisLoc ) RETURN ENDIF - diagID = 'TropCol' + !-------------------------------------------------------------------- + ! CO relative increase due to CO2 photolysis + !-------------------------------------------------------------------- + diagID = 'COincCO2phot' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Chm = State_Chm, & @@ -7790,12 +9812,11 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Grid = State_Grid, & DiagList = Diag_List, & TaggedDiagList = TaggedDiag_List, & - Ptr2Data = State_Diag%TropCol, & - archiveData = State_Diag%Archive_TropCol, & - mapData = State_Diag%Map_TropCol, & + Ptr2Data = State_Diag%COincCO2phot, & + archiveData = State_Diag%Archive_COincCO2phot, & diagId = diagId, & - diagFlag = 'S', & RC = RC ) + IF ( RC /= GC_SUCCESS ) THEN errMsg = TRIM( errMsg_ir ) // TRIM( diagId ) CALL GC_Error( errMsg, RC, thisLoc ) @@ -8743,7 +10764,8 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & ! ! THE CH4 SPECIALTY SIMULATION !======================================================================= - IF ( Input_Opt%ITS_A_CH4_SIM .or. Input_Opt%ITS_A_CARBON_SIM ) THEN + IF ( Input_Opt%ITS_A_CH4_SIM .or. & + Input_Opt%ITS_A_CARBON_SIM ) THEN !-------------------------------------------------------------------- ! Loss of CH4 by Cl in troposphere @@ -8837,7 +10859,7 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & IF ( Found ) THEN ErrMsg = TRIM( diagId ) // ' is a requested diagnostic, ' // & 'but this is only appropriate for the CH4 ' // & - 'and tagged CH4 specialty simulations.' + 'and carbon specialty simulations.' CALL GC_Error( ErrMsg, RC, ThisLoc ) RETURN ENDIF @@ -10239,16 +12261,25 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & !======================================================================== ! Print information about the registered fields (short format) !======================================================================== - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 30 ) 30 FORMAT( /, & 'Registered variables contained within the State_Diag object:' ) WRITE( 6, '(a)' ) REPEAT( '=', 79 ) + + ! Print registered fields + CALL Registry_Print( Input_Opt = Input_Opt, & + Registry = State_Diag%Registry, & + ShortFormat = .TRUE., & + RC = RC ) + + ! Trap potential errors + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in "Registry_Print"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF ENDIF - CALL Registry_Print( Input_Opt = Input_Opt, & - Registry = State_Diag%Registry, & - ShortFormat = .TRUE., & - RC = RC ) !======================================================================== ! Set high-level logicals for diagnostics @@ -10257,21 +12288,27 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & ( State_Diag%Archive_BudgetEmisDryDepFull .or. & State_Diag%Archive_BudgetEmisDryDepTrop .or. & State_Diag%Archive_BudgetEmisDryDepPBL .or. & + State_Diag%Archive_BudgetEmisDryDepLevs .or. & State_Diag%Archive_BudgetTransportFull .or. & State_Diag%Archive_BudgetTransportTrop .or. & State_Diag%Archive_BudgetTransportPBL .or. & + State_Diag%Archive_BudgetTransportLevs .or. & State_Diag%Archive_BudgetMixingFull .or. & State_Diag%Archive_BudgetMixingTrop .or. & State_Diag%Archive_BudgetMixingPBL .or. & + State_Diag%Archive_BudgetMixingLevs .or. & State_Diag%Archive_BudgetConvectionFull .or. & State_Diag%Archive_BudgetConvectionTrop .or. & State_Diag%Archive_BudgetConvectionPBL .or. & + State_Diag%Archive_BudgetConvectionLevs .or. & State_Diag%Archive_BudgetChemistryFull .or. & State_Diag%Archive_BudgetChemistryTrop .or. & State_Diag%Archive_BudgetChemistryPBL .or. & + State_Diag%Archive_BudgetChemistryLevs .or. & State_Diag%Archive_BudgetWetDepFull .or. & State_Diag%Archive_BudgetWetDepTrop .or. & - State_Diag%Archive_BudgetWetDepPBL ) + State_Diag%Archive_BudgetWetDepPBL .or. & + State_Diag%Archive_BudgetWetDepLevs ) State_Diag%Archive_AerMass = ( State_Diag%Archive_AerMassASOA .or. & State_Diag%Archive_AerMassBC .or. & @@ -10295,9 +12332,51 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Diag%Archive_TotalOC .or. & State_Diag%Archive_TotalBiogenicOA ) +#ifdef TOMAS + State_Diag%Archive_Tomas = ( State_Diag%Archive_TomasH2SO4 .or. & + State_Diag%Archive_TomasH2SO4mass .or. & + State_Diag%Archive_TomasH2SO4number .or. & + State_Diag%Archive_TomasCOAG .or. & + State_Diag%Archive_TomasCOAGmass .or. & + State_Diag%Archive_TomasCOAGnumber .or. & + State_Diag%Archive_TomasNUCRATEFN .or. & + State_Diag%Archive_TomasNUCL .or. & + State_Diag%Archive_TomasNUCLmass .or. & + State_Diag%Archive_TomasNUCLnumber .or. & + State_Diag%Archive_TomasNUCRATEnumber .or. & + State_Diag%Archive_TomasAQOX .or. & + State_Diag%Archive_TomasAQOXmass .or. & + State_Diag%Archive_TomasAQOXnumber .or. & + State_Diag%Archive_TomasMNFIX .or. & + State_Diag%Archive_TomasMNFIXmass .or. & + State_Diag%Archive_TomasMNFIXnumber .or. & + State_Diag%Archive_TomasMNFIXh2so4mass .or. & + State_Diag%Archive_TomasMNFIXh2so4number .or. & + State_Diag%Archive_TomasMNFIXcoagmass .or. & + State_Diag%Archive_TomasMNFIXcoagnumber .or. & + State_Diag%Archive_TomasMNFIXaqoxmass .or. & + State_Diag%Archive_TomasMNFIXaqoxnumber .or. & + State_Diag%Archive_TomasMNFIXezwat1mass .or. & + State_Diag%Archive_TomasMNFIXezwat1number .or. & + State_Diag%Archive_TomasMNFIXezwat2mass .or. & + State_Diag%Archive_TomasMNFIXezwat2number .or. & + State_Diag%Archive_TomasMNFIXezwat3mass .or. & + State_Diag%Archive_TomasMNFIXezwat3number .or. & + State_Diag%Archive_TomasMNFIXcheck1mass .or. & + State_Diag%Archive_TomasMNFIXcheck1number .or. & + State_Diag%Archive_TomasMNFIXcheck2mass .or. & + State_Diag%Archive_TomasMNFIXcheck2number .or. & + State_Diag%Archive_TomasMNFIXcheck3mass .or. & + State_Diag%Archive_TomasMNFIXcheck3number .or. & + State_Diag%Archive_TomasSOA .or. & + State_Diag%Archive_TomasSOAmass .or. & + State_Diag%Archive_TomasSOAnumber ) +#endif + State_Diag%Archive_AOD = ( State_Diag%Archive_AODHygWL1 .or. & State_Diag%Archive_AODHygWL2 .or. & State_Diag%Archive_AODHygWL3 .or. & + State_Diag%Archive_PDER .or. & ! H. Zhu, April 05, 2024 State_Diag%Archive_AODSOAfromAqIsopWL1 .or. & State_Diag%Archive_AODSOAfromAqIsopWL2 .or. & State_Diag%Archive_AODSOAfromAqIsopWL3 .or. & @@ -10328,6 +12407,8 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & State_Diag%Archive_KppLuDecomps .or. & State_Diag%Archive_KppSubsts .or. & State_Diag%Archive_KppSmDecomps .or. & + State_Diag%Archive_KppNegatives .or. & + State_Diag%Archive_KppNegatives0 .or. & State_Diag%Archive_KppAutoReducerNVAR .or. & State_Diag%Archive_KppAutoReduceThres .or. & State_Diag%Archive_KppcNONZERO .or. & @@ -10368,13 +12449,6 @@ SUBROUTINE Init_State_Diag( Input_Opt, State_Chm, State_Grid, & IF ( RC /= GC_SUCCESS ) RETURN ENDIF - ! Trap potential errors - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Registry_Print"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - END SUBROUTINE Init_State_Diag !EOC !------------------------------------------------------------------------------ @@ -10499,6 +12573,12 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetEmisDryDepLevs', & + Ptr2Data = State_Diag%BudgetEmisDryDepLevs, & + mapData = State_Diag%Map_BudgetEmisDryDepLevs, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetTransportFull', & Ptr2Data = State_Diag%BudgetTransportFull, & mapData = State_Diag%Map_BudgetTransportFull, & @@ -10517,6 +12597,12 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetTransportLevs', & + Ptr2Data = State_Diag%BudgetTransportLevs, & + mapData = State_Diag%Map_BudgetTransportLevs, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetMixingFull', & Ptr2Data = State_Diag%BudgetMixingFull, & mapData = State_Diag%Map_BudgetMixingFull, & @@ -10535,6 +12621,12 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetMixingLevs', & + Ptr2Data = State_Diag%BudgetMixingLevs, & + mapData = State_Diag%Map_BudgetMixingLevs, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetConvectionFull', & Ptr2Data = State_Diag%BudgetConvectionFull, & mapData = State_Diag%Map_BudgetConvectionFull, & @@ -10553,6 +12645,12 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetConvectionLevs', & + Ptr2Data = State_Diag%BudgetConvectionLevs, & + mapData = State_Diag%Map_BudgetConvectionLevs, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetChemistryFull', & Ptr2Data = State_Diag%BudgetChemistryFull, & mapData = State_Diag%Map_BudgetChemistryFull, & @@ -10571,6 +12669,12 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetChemistryLevs', & + Ptr2Data = State_Diag%BudgetChemistryLevs, & + mapData = State_Diag%Map_BudgetChemistryLevs, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetWetDepFull', & Ptr2Data = State_Diag%BudgetWetDepFull, & mapData = State_Diag%Map_BudgetWetDepFull, & @@ -10589,6 +12693,12 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'BudgetWetDepLevs', & + Ptr2Data = State_Diag%BudgetWetDepLevs, & + mapData = State_Diag%Map_BudgetWetDepLevs, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'DryDepChm', & Ptr2Data = State_Diag%DryDepChm, & mapData = State_Diag%Map_DryDepChm, & @@ -10613,6 +12723,26 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'IsWater', & + Ptr2Data = State_Diag%IsWater, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'IsLand', & + Ptr2Data = State_Diag%IsLand, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'IsIce', & + Ptr2Data = State_Diag%IsIce, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'IsSnow', & + Ptr2Data = State_Diag%IsSnow, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'SatDiagnDryDep', & Ptr2Data = State_Diag%SatDiagnDryDep, & mapData = State_Diag%Map_SatDiagnDryDep, & @@ -10680,6 +12810,12 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'RxnConst', & + Ptr2Data = State_Diag%RxnConst, & + mapData = State_Diag%Map_RxnConst, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'OHreactivity', & Ptr2Data = State_Diag%OHreactivity, & RC = RC ) @@ -10720,6 +12856,16 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'OD600', & + Ptr2Data = State_Diag%OD600, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TCOD600', & + Ptr2Data = State_Diag%TCOD600, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'AdvFluxZonal', & Ptr2Data = State_Diag%AdvFluxZonal, & mapData = State_Diag%Map_AdvFluxZonal, & @@ -10954,95 +13100,340 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadClrSkyLWTOA', & - Ptr2Data = State_Diag%RadClrSkyLWTOA, & + CALL Finalize( diagId = 'RadClrSkyLWTOA', & + Ptr2Data = State_Diag%RadClrSkyLWTOA, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAllSkySWSurf', & + Ptr2Data = State_Diag%RadAllSkySWSurf, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAllSkySWTOA', & + Ptr2Data = State_Diag%RadAllSkySWTOA, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAllSkyLWTrop', & + Ptr2Data = State_Diag%RadAllSkyLWTrop, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAllSkySWTrop', & + Ptr2Data = State_Diag%RadAllSkySWTrop, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadClrSkyLWTrop', & + Ptr2Data = State_Diag%RadClrSkyLWTrop, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAllSkySWTrop', & + Ptr2Data = State_Diag%RadAllSkySWTrop, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAODWL1', & + Ptr2Data = State_Diag%RadAODWL1, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAODWL2', & + Ptr2Data = State_Diag%RadAODWL2, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAODWL3', & + Ptr2Data = State_Diag%RadAODWL3, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadSSAWL1', & + Ptr2Data = State_Diag%RadSSAWL1, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadSSAWL2', & + Ptr2Data = State_Diag%RadSSAWL2, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadSSAWL3', & + Ptr2Data = State_Diag%RadSSAWL3, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAsymWL1', & + Ptr2Data = State_Diag%RadAsymWL1, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAsymWL2', & + Ptr2Data = State_Diag%RadAsymWL2, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'RadAsymWL3', & + Ptr2Data = State_Diag%RadAsymWL3, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'ProdBCPIfromBCPO', & + Ptr2Data = State_Diag%ProdBCPIfromBCPO, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'ProdOCPIfromOCPO', & + Ptr2Data = State_Diag%ProdBCPIfromBCPO, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'OHconcAfterChem', & + Ptr2Data = State_Diag%OHconcAfterChem, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'O1DconcAfterChem', & + Ptr2Data = State_Diag%O1DconcAfterChem, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'O3PconcAfterChem', & + Ptr2Data = State_Diag%O3PconcAfterChem, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'CH4pseudoFlux', & + Ptr2Data = State_Diag%CH4pseudoFlux, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + +#ifdef TOMAS + CALL Finalize( diagId = 'TomasH2SO4', & + Ptr2Data = State_Diag%TomasH2SO4, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasH2SO4mass', & + Ptr2Data = State_Diag%TomasH2SO4mass, & + mapData = State_Diag%Map_TomasH2SO4mass, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasH2SO4number', & + Ptr2Data = State_Diag%TomasH2SO4number, & + mapData = State_Diag%Map_TomasH2SO4number, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + + CALL Finalize( diagId = 'TomasCOAG', & + Ptr2Data = State_Diag%TomasCOAG, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasCOAGmass', & + Ptr2Data = State_Diag%TomasCOAGmass, & + mapData = State_Diag%Map_TomasCOAGmass, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasCOAGnumber', & + Ptr2Data = State_Diag%TomasCOAGnumber, & + mapData = State_Diag%Map_TomasCOAGnumber, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasNUCL', & + Ptr2Data = State_Diag%TomasNUCL, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasNUCRATEfn', & + Ptr2Data = State_Diag%TomasNUCRATEfn, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasNUCLmass', & + Ptr2Data = State_Diag%TomasNUCLmass, & + mapData = State_Diag%Map_TomasNUCLmass, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasNUCLnumber', & + Ptr2Data = State_Diag%TomasNUCLnumber, & + mapData = State_Diag%Map_TomasNUCLnumber, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasNUCRATEnumber', & + Ptr2Data = State_Diag%TomasNUCRATEnumber, & + mapData = State_Diag%Map_TomasNUCRATEnumber, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasAQOX', & + Ptr2Data = State_Diag%TomasAQOX, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasAQOXmass', & + Ptr2Data = State_Diag%TomasAQOXmass, & + mapData = State_Diag%Map_TomasAQOXmass, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasAQOXnumber', & + Ptr2Data = State_Diag%TomasAQOXnumber, & + mapData = State_Diag%Map_TomasAQOXnumber, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasMNFIX', & + Ptr2Data = State_Diag%TomasMNFIX, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + + CALL Finalize( diagId = 'TomasMNFIXmass', & + Ptr2Data = State_Diag%TomasMNFIXmass, & + mapData = State_Diag%Map_TomasMNFIXmass, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasMNFIXnumber', & + Ptr2Data = State_Diag%TomasMNFIXnumber, & + mapData = State_Diag%Map_TomasMNFIXnumber, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasMNFIXh2so4mass', & + Ptr2Data = State_Diag%TomasMNFIXh2so4mass, & + mapData = State_Diag%Map_TomasMNFIXh2so4mass, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasMNFIXh2so4number', & + Ptr2Data = State_Diag%TomasMNFIXh2so4number, & + mapData = State_Diag%Map_TomasMNFIXh2so4number, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasMNFIXcoagmass', & + Ptr2Data = State_Diag%TomasMNFIXcoagmass, & + mapData = State_Diag%Map_TomasMNFIXcoagmass, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'TomasMNFIXcoagnumber', & + Ptr2Data = State_Diag%TomasMNFIXcoagnumber, & + mapData = State_Diag%Map_TomasMNFIXcoagnumber, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadAllSkySWSurf', & - Ptr2Data = State_Diag%RadAllSkySWSurf, & + CALL Finalize( diagId = 'TomasMNFIXaqoxmass', & + Ptr2Data = State_Diag%TomasMNFIXaqoxmass, & + mapData = State_Diag%Map_TomasMNFIXaqoxmass, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadAllSkySWTOA', & - Ptr2Data = State_Diag%RadAllSkySWTOA, & + CALL Finalize( diagId = 'TomasMNFIXaqoxnumber', & + Ptr2Data = State_Diag%TomasMNFIXaqoxnumber, & + mapData = State_Diag%Map_TomasMNFIXaqoxnumber, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadAODWL1', & - Ptr2Data = State_Diag%RadAODWL1, & + CALL Finalize( diagId = 'TomasMNFIXezwat1mass', & + Ptr2Data = State_Diag%TomasMNFIXezwat1mass, & + mapData = State_Diag%Map_TomasMNFIXezwat1mass, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadAODWL2', & - Ptr2Data = State_Diag%RadAODWL2, & + CALL Finalize( diagId = 'TomasMNFIXezwat1number', & + Ptr2Data = State_Diag%TomasMNFIXezwat1number, & + mapData = State_Diag%Map_TomasMNFIXezwat1number, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadAODWL3', & - Ptr2Data = State_Diag%RadAODWL3, & + CALL Finalize( diagId = 'TomasMNFIXezwat2mass', & + Ptr2Data = State_Diag%TomasMNFIXezwat2mass, & + mapData = State_Diag%Map_TomasMNFIXezwat2mass, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadSSAWL1', & - Ptr2Data = State_Diag%RadSSAWL1, & + CALL Finalize( diagId = 'TomasMNFIXezwat2number', & + Ptr2Data = State_Diag%TomasMNFIXezwat2number, & + mapData = State_Diag%Map_TomasMNFIXezwat2number, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadSSAWL2', & - Ptr2Data = State_Diag%RadSSAWL2, & + CALL Finalize( diagId = 'TomasMNFIXezwat3mass', & + Ptr2Data = State_Diag%TomasMNFIXezwat3mass, & + mapData = State_Diag%Map_TomasMNFIXezwat3mass, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadSSAWL3', & - Ptr2Data = State_Diag%RadSSAWL3, & + CALL Finalize( diagId = 'TomasMNFIXezwat3number', & + Ptr2Data = State_Diag%TomasMNFIXezwat3number, & + mapData = State_Diag%Map_TomasMNFIXezwat3number, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadAsymWL1', & - Ptr2Data = State_Diag%RadAsymWL1, & + CALL Finalize( diagId = 'TomasMNFIXcheck1mass', & + Ptr2Data = State_Diag%TomasMNFIXcheck1mass, & + mapData = State_Diag%Map_TomasMNFIXcheck1mass, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadAsymWL2', & - Ptr2Data = State_Diag%RadAsymWL2, & + CALL Finalize( diagId = 'TomasMNFIXcheck1number', & + Ptr2Data = State_Diag%TomasMNFIXcheck1number, & + mapData = State_Diag%Map_TomasMNFIXcheck1number, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'RadAsymWL3', & - Ptr2Data = State_Diag%RadAsymWL3, & + CALL Finalize( diagId = 'TomasMNFIXcheck2mass', & + Ptr2Data = State_Diag%TomasMNFIXcheck2mass, & + mapData = State_Diag%Map_TomasMNFIXcheck2mass, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'ProdBCPIfromBCPO', & - Ptr2Data = State_Diag%ProdBCPIfromBCPO, & + CALL Finalize( diagId = 'TomasMNFIXcheck2number', & + Ptr2Data = State_Diag%TomasMNFIXcheck2number, & + mapData = State_Diag%Map_TomasMNFIXcheck2number, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'ProdOCPIfromOCPO', & - Ptr2Data = State_Diag%ProdBCPIfromBCPO, & + CALL Finalize( diagId = 'TomasMNFIXcheck3mass', & + Ptr2Data = State_Diag%TomasMNFIXcheck3mass, & + mapData = State_Diag%Map_TomasMNFIXcheck3mass, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'OHconcAfterChem', & - Ptr2Data = State_Diag%OHconcAfterChem, & + CALL Finalize( diagId = 'TomasMNFIXcheck3number', & + Ptr2Data = State_Diag%TomasMNFIXcheck3number, & + mapData = State_Diag%Map_TomasMNFIXcheck3number, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'O1DconcAfterChem', & - Ptr2Data = State_Diag%O1DconcAfterChem, & + CALL Finalize( diagId = 'TomasSOA', & + Ptr2Data = State_Diag%TomasSOA, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'O3PconcAfterChem', & - Ptr2Data = State_Diag%O3PconcAfterChem, & + CALL Finalize( diagId = 'TomasSOAmass', & + Ptr2Data = State_Diag%TomasSOAmass, & + mapData = State_Diag%Map_TomasSOAmass, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN - CALL Finalize( diagId = 'CH4pseudoFlux', & - Ptr2Data = State_Diag%CH4pseudoFlux, & + CALL Finalize( diagId = 'TomasSOAnumber', & + Ptr2Data = State_Diag%TomasSOAnumber, & + mapData = State_Diag%Map_TomasSOAnumber, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN +#endif CALL Finalize( diagId = 'AODdust', & Ptr2Data = State_Diag%AODdust, & @@ -11387,6 +13778,12 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN +! H. Zhu + CALL Finalize( diagId = 'PDER', & + Ptr2Data = State_Diag%PDER, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'TotalOA', & Ptr2Data = State_Diag%TotalOA, & RC = RC ) @@ -11762,6 +14159,16 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'KppNegatives', & + Ptr2Data = State_Diag%KppNegatives, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'KppNegatives0', & + Ptr2Data = State_Diag%KppNegatives0, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) RETURN CALL Finalize( diagId = 'AirMassColumnFull', & Ptr2Data = State_Diag%AirMassColumnFull, & RC = RC ) @@ -11897,6 +14304,16 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'PM25nit', & + Ptr2Data = State_Diag%PM25nit, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'PM25nh4', & + Ptr2Data = State_Diag%PM25nh4, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + CALL Finalize( diagId = 'PM25su', & Ptr2Data = State_Diag%PM25su, & RC = RC ) @@ -11938,12 +14355,28 @@ SUBROUTINE Cleanup_State_Diag( State_Diag, RC ) mapData = State_Diag%Map_TropCol, & RC = RC ) IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'PblCol', & + Ptr2Data = State_Diag%PblCol, & + mapData = State_Diag%Map_PblCol, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'CO2photrate', & + Ptr2Data = State_Diag%CO2photrate, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN + + CALL Finalize( diagId = 'COincCO2phot', & + Ptr2Data = State_Diag%COincCO2phot, & + RC = RC ) + IF ( RC /= GC_SUCCESS ) RETURN #endif -#if defined(MODEL_GEOS) || defined(MODEL_WRF) +#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) || defined( MODEL_CESM ) !======================================================================= ! These fields are only used when GEOS-Chem - ! is interfaced to NASA/GEOS or to WRF (as WRF-GC) + ! is interfaced to NASA/GEOS, WRF (as WRF-GC), or CESM !======================================================================= CALL Finalize( diagId = 'KppError', & Ptr2Data = State_Diag%KppError, & @@ -11998,6 +14431,7 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & ! USE Charpak_Mod, ONLY : StrSplit, To_UpperCase USE DiagList_Mod, ONLY : IsFullChem, IsCarbon, IsHg + USE DiagList_Mod, ONLY : budgetTopLev_str, budgetBotLev_str USE Registry_Params_Mod ! ! !INPUT PARAMETERS: @@ -12165,6 +14599,14 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isDesc ) Desc = 'PBL-only total mass rate of change ' // & 'in column for emissions and dry ' // & 'deposition' + + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETEMISDRYDEPLEVS' & + // TRIM(budgetBotLev_str) // 'TO' & + // TRIM(budgetTopLev_str) ) THEN + IF ( isDesc ) Desc = 'Total mass rate of change in column levels ' & + // TRIM(budgetBotLev_str) // ' to ' & + // TRIM(budgetTopLev_str) & + // ' for emissions and dry deposition' ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETTRANSPORTFULL' ) THEN IF ( isDesc ) Desc = 'Total mass rate of change in column ' // & @@ -12178,6 +14620,13 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isDesc ) Desc = 'PBL-only total mass rate of change ' // & ' in column for transport' + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETTRANSPORTLEVS' & + // TRIM(budgetBotLev_str) // 'TO' & + // TRIM(budgetTopLev_str) ) THEN + IF ( isDesc ) Desc = 'Total mass rate of change in column levels ' & + // TRIM(budgetBotLev_str) // ' to ' & + // TRIM(budgetTopLev_str) // ' for transport' + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETDRYDEPFULL' ) THEN IF ( isDesc ) Desc = 'Total mass rate of change in column ' // & 'for dry deposition' @@ -12190,6 +14639,13 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isDesc ) Desc = 'PBL-only total mass rate of change ' // & ' in column for dry deposition' + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETDRYDEPLEVS' & + // TRIM(budgetBotLev_str) // 'TO' & + // TRIM(budgetTopLev_str) ) THEN + IF ( isDesc ) Desc = 'Total mass rate of change in column levels ' & + // TRIM(budgetBotLev_str) // ' to ' & + // TRIM(budgetTopLev_str) // ' for dry deposition' + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETMIXINGFULL' ) THEN IF ( isDesc ) Desc = 'Total mass rate of change in column ' // & 'for mixing' @@ -12201,7 +14657,14 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETMIXINGPBL' ) THEN IF ( isDesc ) Desc = 'PBL-only total mass rate of change ' // & ' in column for mixing' - + + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETMIXINGLEVS' & + // TRIM(budgetBotLev_str) // 'TO' & + // TRIM(budgetTopLev_str) ) THEN + IF ( isDesc ) Desc = 'Total mass rate of change in column levels ' & + // TRIM(budgetBotLev_str) // ' to ' & + // TRIM(budgetTopLev_str) // ' for mixing' + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETCONVECTIONFULL' ) THEN IF ( isDesc ) Desc = 'Total mass rate of change in column ' // & 'for convection' @@ -12213,7 +14676,14 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETCONVECTIONPBL' ) THEN IF ( isDesc ) Desc = 'PBL-only total mass rate of change ' // & ' in column for convection' - + + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETCONVECTIONLEVS' & + // TRIM(budgetBotLev_str) // 'TO' & + // TRIM(budgetTopLev_str) ) THEN + IF ( isDesc ) Desc = 'Total mass rate of change in column levels ' & + // TRIM(budgetBotLev_str) // ' to ' & + // TRIM(budgetTopLev_str) // ' for convection' + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETCHEMISTRYFULL' ) THEN IF ( isDesc ) Desc = 'Total mass rate of change in column ' // & ' for chemistry' @@ -12225,7 +14695,14 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETCHEMISTRYPBL' ) THEN IF ( isDesc ) Desc = 'PBL-only total mass rate of change ' // & ' in column for chemistry' - + + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETCHEMISTRYLEVS' & + // TRIM(budgetBotLev_str) // 'TO' & + // TRIM(budgetTopLev_str) ) THEN + IF ( isDesc ) Desc = 'Total mass rate of change in column levels ' & + // TRIM(budgetBotLev_str) // ' to ' & + // TRIM(budgetTopLev_str) // ' for chemistry' + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETWETDEPFULL' ) THEN IF ( isDesc ) Desc = 'Total mass rate of change in column ' // & 'for wet deposition' @@ -12237,6 +14714,14 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETWETDEPPBL' ) THEN IF ( isDesc ) Desc = 'PBL-only total mass rate of change ' // & ' in column for wet deposition ' + + ELSE IF ( TRIM( Name_AllCaps ) == 'BUDGETWETDEPLEVS' & + // TRIM(budgetBotLev_str) // 'TO' & + // TRIM(budgetTopLev_str) ) THEN + IF ( isDesc ) Desc = 'Total mass rate of change in column levels ' & + // TRIM(budgetBotLev_str) // ' to ' & + // TRIM(budgetTopLev_str) // ' for wet deposition' + ENDIF ELSE IF ( TRIM( Name_AllCaps ) == 'DRYDEPCHM' ) THEN @@ -12263,6 +14748,26 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isRank ) Rank = 2 IF ( isTagged ) TagId = 'DRY' + ELSE IF ( TRIM( Name_AllCaps ) == 'ISWATER' ) THEN + IF ( isDesc ) Desc = 'Water mask including lakes and oceans' + IF ( isUnits ) Units = '.' + IF ( isRank ) Rank = 2 + + ELSE IF ( TRIM( Name_AllCaps ) == 'ISLAND' ) THEN + IF ( isDesc ) Desc = 'Land mask excluding ice and snow' + IF ( isUnits ) Units = '.' + IF ( isRank ) Rank = 2 + + ELSE IF ( TRIM( Name_AllCaps ) == 'ISICE' ) THEN + IF ( isDesc ) Desc = 'Ice mask including over land and ocean' + IF ( isUnits ) Units = '.' + IF ( isRank ) Rank = 2 + + ELSE IF ( TRIM( Name_AllCaps ) == 'ISSNOW' ) THEN + IF ( isDesc ) Desc = 'Snow mask over land only' + IF ( isUnits ) Units = '.' + IF ( isRank ) Rank = 2 + ELSE IF ( TRIM( Name_AllCaps ) == 'SATDIAGNDRYDEP' ) THEN IF ( isDesc ) Desc = 'Dry deposition flux of species' IF ( isUnits ) Units = 'molec cm-2 s-1' @@ -12403,7 +14908,13 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & ELSE IF ( TRIM( Name_AllCaps ) == 'SATDIAGNRXNRATE' ) THEN IF ( isDesc ) Desc = 'KPP equation reaction rates' - IF ( isUnits ) Units = 's-1' + IF ( isUnits ) Units = 'molec cm-3 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'RXN' + + ELSE IF ( TRIM( Name_AllCaps ) == 'RXNCONST' ) THEN + IF ( isDesc ) Desc = 'KPP equation reaction rate constants' + IF ( isUnits ) Units = '(cm3 molec-1)**(nreactants - 1) s-1' IF ( isRank ) Rank = 3 IF ( isTagged ) TagId = 'RXN' @@ -12447,6 +14958,16 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isRank ) Rank = 3 IF ( isTagged ) TagId = 'UVFLX' + ELSEIF ( TRIM( Name_AllCaps ) == 'OD600' ) THEN + IF ( isDesc ) Desc = 'Optical depth at 600 nm used for photolysis rates' + IF ( isUnits ) Units = '1' + IF ( isRank ) Rank = 3 + + ELSEIF ( TRIM( Name_AllCaps ) == 'TCOD600' ) THEN + IF ( isDesc ) Desc = 'Total column optical depth at 600 nm used for photolysis rates' + IF ( isUnits ) Units = '1' + IF ( isRank ) Rank = 2 + ELSE IF ( TRIM( Name_AllCaps ) == 'ADVFLUXZONAL' ) THEN IF ( isDesc ) Desc = 'Advection of species in zonal direction' IF ( isUnits ) Units = 'kg s-1' @@ -12742,6 +15263,34 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isRank ) Rank = 2 IF ( isTagged ) TagId = 'RRTMG' + ELSE IF ( TRIM( Name_AllCaps ) == 'RADALLSKYLWTROP' ) THEN + IF ( isDesc ) Desc = 'All-sky long-wave radiation at the ' // & + 'tropopause' + IF ( isUnits ) Units = 'W m-2' + IF ( isRank ) Rank = 2 + IF ( isTagged ) TagId = 'RRTMG' + + ELSE IF ( TRIM( Name_AllCaps ) == 'RADALLSKYSWTROP' ) THEN + IF ( isDesc ) Desc = 'All-sky short-wave radiation at the ' // & + 'tropopause' + IF ( isUnits ) Units = 'W m-2' + IF ( isRank ) Rank = 2 + IF ( isTagged ) TagId = 'RRTMG' + + ELSE IF ( TRIM( Name_AllCaps ) == 'RADCLRSKYLWTROP' ) THEN + IF ( isDesc ) Desc = 'Clear-sky long-wave radiation at the ' // & + 'tropopause' + IF ( isUnits ) Units = 'W m-2' + IF ( isRank ) Rank = 2 + IF ( isTagged ) TagId = 'RRTMG' + + ELSE IF ( TRIM( Name_AllCaps ) == 'RADCLRSKYSWTROP' ) THEN + IF ( isDesc ) Desc = 'Clear-sky short-wave radiation at the ' // & + 'tropopause' + IF ( isUnits ) Units = 'W m-2' + IF ( isRank ) Rank = 2 + IF ( isTagged ) TagId = 'RRTMG' + ELSE IF ( TRIM( Name_AllCaps ) == 'RADAOD' // TRIM(RadWL(1)) // 'NM' ) THEN IF ( isDesc ) Desc = 'Aerosol optical depth at ' // & TRIM(RadWL(1)) // ' nm' @@ -12805,6 +15354,18 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isRank ) Rank = 2 IF ( isTagged ) TagId = 'RRTMG' + ELSE IF ( TRIM( Name_AllCaps ) == 'DYNHEATING' ) THEN + IF ( isDesc ) Desc = 'Dynamical heating rate ' // & + 'in baseline simulation' + IF ( isUnits ) Units = 'K day-1' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM( Name_AllCaps ) == 'DTRAD' ) THEN + IF ( isDesc ) Desc = 'Temperature change due ' // & + 'to radiative heating' + IF ( isUnits ) Units = 'K' + IF ( isRank ) Rank = 3 + ELSE IF ( TRIM( Name_AllCaps ) == 'PRODBCPIFROMBCPO' ) THEN IF ( isDesc ) Desc = 'Production of hydrophilic black carbon ' // & 'from hydrophobic black carbon' @@ -12854,13 +15415,236 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isUnits ) Units = 'kg m-2 s-1' IF ( isRank ) Rank = 2 -#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) +#if defined( MODEL_GEOS ) || defined( MODEL_WRF ) || defined( MODEL_CESM ) ELSE IF ( TRIM( Name_AllCaps ) == 'KPPERROR' ) THEN IF ( isDesc ) Desc = 'KppError' IF ( isUnits ) Units = '1' IF ( isRank ) Rank = 3 #endif +#ifdef TOMAS + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASH2SO4' ) THEN + IF ( isDesc ) Desc = 'TOMAS Condensation Rate' + IF ( isUnits ) Units = '1' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASH2SO4MASS' ) THEN + IF ( isDesc ) Desc = 'TOMASH2SO4 Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASH2SO4NUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASH2SO4 Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASCOAG' ) THEN + IF ( isDesc ) Desc = 'TOMAS Coagulation Rate' + IF ( isUnits ) Units = '1' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASCOAGMASS' ) THEN + IF ( isDesc ) Desc = 'TOMASCOAG Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASCOAGNUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASCOAG Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASNUCL' ) THEN + IF ( isDesc ) Desc = 'TOMAS Nucleation Rate' + IF ( isUnits ) Units = '1' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASNUCRATEFN' ) THEN + IF ( isDesc ) Desc = 'TOMAS Nucleation Rate' + IF ( isUnits ) Units = 'number cm-3 s-1' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASNUCLMASS' ) THEN + IF ( isDesc ) Desc = 'TOMASNUCL Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASNUCLNUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASNUCL Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASNUCRATENUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASNUCL Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASAQOX' ) THEN + IF ( isDesc ) Desc = 'TOMAS Aqueous Oxid Rate' + IF ( isUnits ) Units = '1' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASAQOXMASS' ) THEN + IF ( isDesc ) Desc = 'TOMASAQOX Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASAQOXNUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASAQOX Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIX' ) THEN + IF ( isDesc ) Desc = 'TOMAS Error Rate' + IF ( isUnits ) Units = '1' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXMASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIX Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXNUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIX Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXH2SO4MASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXH2SO4 Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXH2SO4NUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXH2SO4 Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXCOAGMASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXCOAG Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXCOAGNUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXAQOX Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXAQOXMASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXAQOX Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXAQOXNUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXCOND Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXEZWAT1MASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXEZWAT1 Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXEZWAT1NUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXEZWAT1 Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXEZWAT2MASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXEZWAT2 Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXEZWAT2NUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXEZWAT2 Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXEZWAT3MASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXEZWAT3 Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXEZWAT3NUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXEZWAT3 Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXCHECK1MASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXCHECK1 Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXCHECK1NUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXCHECK1 Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXCHECK2MASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXCHECK2 Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXCHECK2NUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXCHECK2 Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXCHECK3MASS' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXCHECK3 Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASMNFIXCHECK3NUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASMNFIXCHECK3 Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASSOA' ) THEN + IF ( isDesc ) Desc = 'TOMASSOA Rate' + IF ( isUnits ) Units = '1' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASSOAMASS' ) THEN + IF ( isDesc ) Desc = 'TOMASSOA Rate' + IF ( isUnits ) Units = 'kg kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' + + ELSE IF ( TRIM(Name_AllCaps) == 'TOMASSOANUMBER' ) THEN + IF ( isDesc ) Desc = 'TOMASSOA Rate' + IF ( isUnits ) Units = 'number kg-1 s-1' + IF ( isRank ) Rank = 3 + IF ( isTagged ) TagId = 'TOMASBIN' +#endif + ELSE IF ( TRIM(Name_AllCaps) == 'AODDUST' ) THEN IF ( isDesc ) Desc = 'Optical depth for mineral dust' IF ( isUnits ) Units = '1' @@ -13026,10 +15810,28 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isUnits ) Units = 'ug m-3' IF ( isRank ) Rank = 3 +! H. Zhu + ELSE IF ( TRIM( Name_AllCaps ) == 'PDER' ) THEN + IF ( isDesc ) Desc = 'Paremeterized Effective Radius for SNA and OM' + IF ( isUnits ) Units = 'um' + IF ( isRank ) Rank = 3 + #ifdef MODEL_GEOS ELSE IF ( TRIM( Name_AllCaps ) == 'PM25NI' ) THEN IF ( isDesc ) Desc = & - 'Particulate matter with radii < 2.5 um, nitrates' + 'Particulate matter with radii < 2.5 um, nitrates and ammonium' + IF ( isUnits ) Units = 'ug m-3' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM( Name_AllCaps ) == 'PM25NIT' ) THEN + IF ( isDesc ) Desc = & + 'Particulate matter with radii < 2.5 um, nitrate' + IF ( isUnits ) Units = 'ug m-3' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM( Name_AllCaps ) == 'PM25NH4' ) THEN + IF ( isDesc ) Desc = & + 'Particulate matter with radii < 2.5 um, ammonium' IF ( isUnits ) Units = 'ug m-3' IF ( isRank ) Rank = 3 @@ -13080,6 +15882,22 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isUnits ) Units = '1.0e15 molec cm-2' IF ( isRank ) Rank = 2 IF ( isTagged ) TagId = 'ALL' + + ELSE IF ( TRIM( Name_AllCaps ) == 'PBLCOL' ) THEN + IF ( isDesc ) Desc = 'boundary layer column density of species' + IF ( isUnits ) Units = '1.0e15 molec cm-2' + IF ( isRank ) Rank = 2 + IF ( isTagged ) TagId = 'ALL' + + ELSE IF ( TRIM( Name_AllCaps ) == 'COINCCO2PHOT' ) THEN + IF ( isDesc ) Desc = 'Relative change of CO due to CO2 photolysis' + IF ( isUnits ) Units = '1' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM( Name_AllCaps ) == 'CO2PHOTRATE' ) THEN + IF ( isDesc ) Desc = 'CO2 photolysis rate' + IF ( isUnits ) Units = 's-1' + IF ( isRank ) Rank = 3 #endif ELSE IF ( TRIM( Name_AllCaps ) == 'TERPENESOA' ) THEN @@ -13393,6 +16211,16 @@ SUBROUTINE Get_Metadata_State_Diag( am_I_Root, metadataID, Found, & IF ( isUnits ) Units = 'count' IF ( isRank ) Rank = 3 + ELSE IF ( TRIM( Name_AllCaps ) == 'KPPNEGATIVES' ) THEN + IF ( isDesc ) Desc = 'Number of negative concentrations after KPP integration' + IF ( isUnits ) Units = 'count' + IF ( isRank ) Rank = 3 + + ELSE IF ( TRIM( Name_AllCaps ) == 'KPPNEGATIVES0' ) THEN + IF ( isDesc ) Desc = 'Number of negative concentrations after first KPP integration attempt' + IF ( isUnits ) Units = 'count' + IF ( isRank ) Rank = 3 + ELSE IF ( TRIM( Name_AllCaps ) == 'KPPAUTOREDUCERNVAR' ) THEN IF ( isDesc ) Desc = 'Number of species in auto-reduced mechanism' IF ( isUnits ) Units = 'count' @@ -14025,6 +16853,8 @@ SUBROUTINE Get_NumTags( tagId, State_Chm, numTags, RC ) numTags = State_Chm%nDryDep CASE( 'DRYALT' ) numTags = State_Chm%nDryAlt + CASE( 'TOMASBIN', 'T' ) + numTags = State_Chm%nTomasBins CASE( 'DUSTBIN', 'B' ) numTags = NDUST CASE( 'FIX', 'F' ) @@ -14053,7 +16883,7 @@ SUBROUTINE Get_NumTags( tagId, State_Chm, numTags, RC ) CASE( 'PHO', 'P' ) numTags = State_Chm%nPhotol CASE( 'UVFLX', 'U' ) - numTags = W_ + numTags = State_Chm%Phot%nWLbins CASE( 'PRD', 'Y' ) numTags = State_Chm%nProd CASE( 'RRTMG', 'Z' ) @@ -14180,7 +17010,7 @@ SUBROUTINE Get_TagInfo( Input_Opt, tagID, State_Chm, Found, & ! Get mapping index !======================================================================= SELECT CASE( TRIM( tagID ) ) - CASE( 'ALL','ADV', 'DUSTBIN', 'PRD', 'LOS', 'RRTMG', 'UVFLX', 'RXN' ) + CASE( 'ALL','ADV', 'DUSTBIN', 'TOMASBIN', 'PRD', 'LOS', 'RRTMG', 'UVFLX', 'RXN' ) D = N CASE( 'AER' ) D = State_Chm%Map_Aero(N) @@ -14233,6 +17063,11 @@ SUBROUTINE Get_TagInfo( Input_Opt, tagID, State_Chm, Found, & ! Special handling for certain tagID's SELECT CASE( TRIM( tagID ) ) + ! TOMAS bins + CASE( 'TOMASBIN' ) + WRITE ( Nstr, "(I2.2)" ) D + tagName = 'bin' // TRIM(Nstr) + ! Dust bins CASE( 'DUSTBIN' ) WRITE ( Nstr, "(I1)" ) D @@ -15913,8 +18748,10 @@ SUBROUTINE Init_RRTMG_Indices( Input_Opt, State_Diag, RC ) ! RRTMG outputs are requested in HISTORY.rc. The expected ! index corresponding to each flux output type is: ! - ! 0=BASE 1=O3 2=ME 3=SU 4=NI 5=AM - ! 6=BC 7=OA 8=SS 9=DU 10=PM 11=ST + ! 0=BASE and then... + ! 1=O3 2=O3T 3=ME 4=H2O 5=CO2 6=CFC 7=N2O + ! 8=SU 9=NI 10=AM 11=BC 12=OA 13=SS 14=DU + ! 15=PM 16=ST ! ! See wiki.geos-chem.org/Coupling_GEOS-Chem_with_RRTMG. ! @@ -15937,26 +18774,36 @@ SUBROUTINE Init_RRTMG_Indices( Input_Opt, State_Diag, RC ) State_Diag%RadOutInd(N) = 0 CASE( 'O3' ) State_Diag%RadOutInd(N) = 1 - CASE( 'ME' ) + CASE( 'O3T' ) State_Diag%RadOutInd(N) = 2 - CASE( 'SU' ) + CASE( 'ME' ) State_Diag%RadOutInd(N) = 3 - CASE( 'NI' ) + CASE( 'H2O' ) State_Diag%RadOutInd(N) = 4 - CASE( 'AM' ) + CASE( 'CO2' ) State_Diag%RadOutInd(N) = 5 - CASE( 'BC' ) + CASE( 'CFC' ) State_Diag%RadOutInd(N) = 6 - CASE( 'OA' ) + CASE( 'N2O' ) State_Diag%RadOutInd(N) = 7 - CASE( 'SS' ) + CASE( 'SU' ) State_Diag%RadOutInd(N) = 8 - CASE( 'DU' ) + CASE( 'NI' ) State_Diag%RadOutInd(N) = 9 - CASE( 'PM' ) + CASE( 'AM' ) State_Diag%RadOutInd(N) = 10 - CASE( 'ST' ) + CASE( 'BC' ) State_Diag%RadOutInd(N) = 11 + CASE( 'OA' ) + State_Diag%RadOutInd(N) = 12 + CASE( 'SS' ) + State_Diag%RadOutInd(N) = 13 + CASE( 'DU' ) + State_Diag%RadOutInd(N) = 14 + CASE( 'PM' ) + State_Diag%RadOutInd(N) = 15 + CASE( 'ST' ) + State_Diag%RadOutInd(N) = 16 CASE DEFAULT ! Nothing END SELECT @@ -16035,6 +18882,7 @@ SUBROUTINE Get_Mapping( Input_Opt, State_Chm, TaggedDiagList, & ! Scalars LOGICAL :: found LOGICAL :: isDustBin + LOGICAL :: isTomasBin LOGICAL :: isLoss LOGICAL :: isProd LOGICAL :: isRxnRate @@ -16070,12 +18918,13 @@ SUBROUTINE Get_Mapping( Input_Opt, State_Chm, TaggedDiagList, & RC = GC_SUCCESS mapName = 'Map_ ' // TRIM( metadataId ) mapName2 = TRIM( mapName ) // '%id' + isTomasBin = ( indFlag == 'T' ) isDustBin = ( indFlag == 'B' ) isRxnRate = ( indFlag == 'R' ) isUvFlx = ( indFlag == 'U' ) isLoss = ( indFlag == 'X' ) isProd = ( indFlag == 'Y' ) - skipInd = ( isRxnRate .or. isUvFlx .or. isDustBin ) + skipInd = ( isRxnRate .or. isUvFlx .or. isDustBin .or. isTomasBin ) spcName = '' wcName = '' errMsg = '' @@ -16211,6 +19060,14 @@ SUBROUTINE Get_Mapping( Input_Opt, State_Chm, TaggedDiagList, & READ( TagItem%Name(S:S), '(I1)' ) index mapData%slot2id(TagItem%index) = index + ELSEIF ( isTomasBin ) THEN + + ! TomasSbin: Tag names are "bin01" .. "bin15", so the + ! bin number is the last 2 characters of the tag name + S = LEN_TRIM( TagItem%Name ) + READ( TagItem%Name(S-1:S), '(I2.2)' ) index + mapData%slot2id(TagItem%index) = index + ELSE IF ( isLoss ) THEN ! Loss: get the index from State_Chm%Map_Loss @@ -16614,7 +19471,7 @@ SUBROUTINE Init_and_Register_R4_2D( Input_Opt, State_Chm, & ENDIF ! Print info about diagnostic - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 100 ) ADJUSTL( arrayID ), TRIM( diagID ) 100 FORMAT( 1x, a32, ' is registered as: ', a ) ENDIF @@ -16799,7 +19656,7 @@ SUBROUTINE Init_and_Register_R4_3D( Input_Opt, State_Chm, & ENDIF ! Print info about diagnostic - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 100 ) ADJUSTL( arrayID ), TRIM( diagID ) 100 FORMAT( 1x, a32, ' is registered as: ', a ) ENDIF @@ -16980,7 +19837,7 @@ SUBROUTINE Init_and_Register_R4_4D( Input_Opt, State_Chm, & ENDIF ! Print info about diagnostic - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 100 ) ADJUSTL( arrayID ), TRIM( diagID ) 100 FORMAT( 1x, a32, ' is registered as: ', a ) ENDIF @@ -17171,7 +20028,7 @@ SUBROUTINE Init_and_Register_R8_2D( Input_Opt, State_Chm, & ENDIF ! Print info about diagnostic - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 100 ) ADJUSTL( arrayID ), TRIM( diagID ) 100 FORMAT( 1x, a32, ' is registered as: ', a ) ENDIF @@ -17356,7 +20213,7 @@ SUBROUTINE Init_and_Register_R8_3D( Input_Opt, State_Chm, & ENDIF ! Print info about diagnostic - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 100 ) ADJUSTL( arrayID ), TRIM( diagID ) 100 FORMAT( 1x, a32, ' is registered as: ', a ) ENDIF @@ -17534,7 +20391,7 @@ SUBROUTINE Init_and_Register_R8_4D( Input_Opt, State_Chm, & ENDIF ! Print info about diagnostic - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 100 ) ADJUSTL( arrayID ), TRIM( diagID ) 100 FORMAT( 1x, a32, ' is registered as: ', a ) ENDIF diff --git a/Headers/state_grid_mod.F90 b/Headers/state_grid_mod.F90 index 852fa415a..f381179f2 100644 --- a/Headers/state_grid_mod.F90 +++ b/Headers/state_grid_mod.F90 @@ -86,6 +86,11 @@ MODULE State_Grid_Mod REAL(fp), POINTER :: YSIN (:,:) ! SIN( lat edges ) REAL(fp), POINTER :: Area_M2 (:,:) ! Grid box area [m2] +#if defined( MODEL_GEOS ) + ! Are we in the predictor step? + LOGICAL :: PredictorIsActive +#endif + END TYPE GrdState ! ! !REMARKS: @@ -196,6 +201,10 @@ SUBROUTINE Init_State_Grid( Input_Opt, State_Grid, RC ) State_Grid%YSIN => NULL() State_Grid%Area_M2 => NULL() +#if defined( MODEL_GEOS ) + State_Grid%PredictorIsActive = .FALSE. +#endif + END SUBROUTINE Init_State_Grid !EOC !------------------------------------------------------------------------------ diff --git a/Headers/state_met_mod.F90 b/Headers/state_met_mod.F90 index ac51dd630..0e611f723 100644 --- a/Headers/state_met_mod.F90 +++ b/Headers/state_met_mod.F90 @@ -62,19 +62,26 @@ MODULE State_Met_Mod REAL(fp), POINTER :: EFLUX (:,: ) ! Latent heat flux [W/m2] REAL(fp), POINTER :: FLASH_DENS (:,: ) ! Lightning flash density [#/km2/s] REAL(fp), POINTER :: FRCLND (:,: ) ! Olson land fraction [1] - REAL(fp), POINTER :: FRLAKE (:,: ) ! Fraction of lake [1] - REAL(fp), POINTER :: FRLAND (:,: ) ! Fraction of land [1] - REAL(fp), POINTER :: FRLANDIC (:,: ) ! Fraction of land ice [1] - REAL(fp), POINTER :: FROCEAN (:,: ) ! Fraction of ocean [1] - REAL(fp), POINTER :: FRSEAICE (:,: ) ! Sfc sea ice fraction - REAL(fp), POINTER :: FRSNO (:,: ) ! Sfc snow fraction + REAL(fp), POINTER :: FRLAKE (:,: ) ! Fraction of lake in grid box [1] + REAL(fp), POINTER :: FRLAND (:,: ) ! Fraction of land without lake or + ! ice in grid box [1] + REAL(fp), POINTER :: FRLANDICE (:,: ) ! Fraction of land ice in grid box [1] + REAL(fp), POINTER :: FROCEAN (:,: ) ! Fraction of ocean in grid box [1] + REAL(fp), POINTER :: FRSEAICE (:,: ) ! Fraction of ocean covered by sea + ! ice [1] + REAL(fp), POINTER :: FRSNOW (:,: ) ! Fraction of snow over land in + ! grid box [1] REAL(fp), POINTER :: GWETROOT (:,: ) ! Root soil wetness [1] REAL(fp), POINTER :: GWETTOP (:,: ) ! Top soil moisture [1] REAL(fp), POINTER :: HFLUX (:,: ) ! Sensible heat flux [W/m2] - LOGICAL, POINTER :: IsLand (:,: ) ! Is this a land grid box? - LOGICAL, POINTER :: IsWater (:,: ) ! Is this a water grid box? - LOGICAL, POINTER :: IsIce (:,: ) ! Is this a ice grid box? - LOGICAL, POINTER :: IsSnow (:,: ) ! Is this a snow grid box? + LOGICAL, POINTER :: IsLand (:,: ) ! True if majority surface type is land, + ! without snow or ice + LOGICAL, POINTER :: IsWater (:,: ) ! True if majority surface type is water, + ! including lake or ocean + LOGICAL, POINTER :: IsIce (:,: ) ! True if majority surface type is ice, + ! including over land or ocean + LOGICAL, POINTER :: IsSnow (:,: ) ! True if majority surface type is snow, + ! over land only REAL(fp), POINTER :: LAI (:,: ) ! Leaf area index [m2/m2] ! (online) REAL(fp), POINTER :: PARDR (:,: ) ! Direct photsynthetically @@ -170,9 +177,9 @@ MODULE State_Met_Mod ! [kg/m2/s] REAL(fp), POINTER :: PFLLSAN (:,:,:) ! Dwn flux ice prec:LS+anv ! [kg/m2/s] - REAL(fp), POINTER :: QI (:,:,:) ! Ice mixing ratio + REAL(fp), POINTER :: QI (:,:,:) ! Mass fraction of cloud ice water ! [kg/kg dry air] - REAL(fp), POINTER :: QL (:,:,:) ! Water mixing ratio + REAL(fp), POINTER :: QL (:,:,:) ! Mass fraction of cloud liquid water ! [kg/kg dry air] REAL(fp), POINTER :: REEVAPCN (:,:,:) ! Evap of precip conv [kg/kg/s] ! (assume per dry air) @@ -226,6 +233,11 @@ MODULE State_Met_Mod REAL(fp), POINTER :: DP_DRY_PREV (:,:,:) ! Previous State_Met%DELP_DRY REAL(fp), POINTER :: SPHU_PREV (:,:,:) ! Previous State_Met%SPHU + !---------------------------------------------------------------------- + ! Fields read in from a previous GC run + !---------------------------------------------------------------------- + REAL(fp), POINTER :: DynHeating (:,:,:) ! Dynamical heating (K/day) + !---------------------------------------------------------------------- ! Offline land type, leaf area index, and chlorophyll fields !---------------------------------------------------------------------- @@ -262,19 +274,20 @@ MODULE State_Met_Mod ! Fields for wet scavenging module !---------------------------------------------------------------------- REAL(fp), POINTER :: C_H2O (:,:,:) ! Mix ratio of H2O [v/v] - REAL(fp), POINTER :: CLDICE (:,:,:) ! Cloud ice mixing ratio [cm3 ice/cm3 air] - REAL(fp), POINTER :: CLDLIQ (:,:,:) ! Cloud liquid water mixing ratio [cm3 H2O/cm3 air] - REAL(fp), POINTER :: PDOWN (:,:,:) ! Precipitation thru the bottom of the grid box + REAL(fp), POINTER :: CLDICE (:,:,:) ! Precipitable cloud ice mixing + ! ratio [cm3 ice/cm3 air] + REAL(fp), POINTER :: CLDLIQ (:,:,:) ! Precipitable cloud liquid H2O + ! mixing ratio [cm3 H2O/cm3 air] + REAL(fp), POINTER :: PDOWN (:,:,:) ! Precipitation thru the bottom + ! of the grid box ! [cm3 H2O/cm2 area/s] - REAL(fp), POINTER :: QQ (:,:,:) ! Rate of new precip formation [cm3 H2O/cm3 air/s] + REAL(fp), POINTER :: QQ (:,:,:) ! Rate of new precip formation + ! [cm3 H2O/cm3 air/s] REAL(fp), POINTER :: REEVAP (:,:,:) ! Rate of precip reevaporation - REAL(fp), POINTER :: PSO4_SO2APM2 (:,:,:) !---------------------------------------------------------------------- ! Fields for boundary layer mixing !---------------------------------------------------------------------- - INTEGER, POINTER :: IMIX (:,: ) ! Integer and fractional level - REAL(fp), POINTER :: FPBL (:,: ) ! where PBL top occurs INTEGER :: PBL_MAX_L ! Max level where PBL top occurs !---------------------------------------------------------------------- @@ -367,10 +380,10 @@ SUBROUTINE Zero_State_Met( State_Met, RC ) State_Met%FRCLND => NULL() State_Met%FRLAKE => NULL() State_Met%FRLAND => NULL() - State_Met%FRLANDIC => NULL() + State_Met%FRLANDICE => NULL() State_Met%FROCEAN => NULL() State_Met%FRSEAICE => NULL() - State_Met%FRSNO => NULL() + State_Met%FRSNOW => NULL() State_Met%GWETROOT => NULL() State_Met%GWETTOP => NULL() State_Met%HFLUX => NULL() @@ -474,6 +487,7 @@ SUBROUTINE Zero_State_Met( State_Met, RC ) State_Met%AIRVOL => NULL() State_Met%DP_DRY_PREV => NULL() State_Met%SPHU_PREV => NULL() + State_Met%DynHeating => NULL() State_Met%IREG => NULL() State_Met%ILAND => NULL() State_Met%IUSE => NULL() @@ -495,10 +509,7 @@ SUBROUTINE Zero_State_Met( State_Met, RC ) State_Met%PDOWN => NULL() State_Met%QQ => NULL() State_Met%REEVAP => NULL() - State_Met%IMIX => NULL() - State_Met%FPBL => NULL() State_Met%REEVAP => NULL() - State_Met%PSO4_SO2APM2 => NULL() State_Met%PBL_MAX_L = 0 END SUBROUTINE Zero_State_Met @@ -742,25 +753,6 @@ SUBROUTINE Init_State_Met( Input_Opt, State_Grid, State_Met, RC ) RETURN ENDIF - !------------------------------------------------------------------------ - ! FPBL [1] : Local variable for PBL mixing -- do not register this - !------------------------------------------------------------------------ - metId = 'FPBL' - CALL Init_and_Register( & - Input_Opt = Input_Opt, & - State_Met = State_Met, & - State_Grid = State_Grid, & - metId = metId, & - Ptr2Data = State_Met%FPBL, & - noRegister = .TRUE., & - RC = RC ) - - IF ( RC /= GC_SUCCESS ) THEN - errMsg = TRIM( errMsg_ir ) // TRIM( metId ) - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - !------------------------------------------------------------------------ ! FRCLND [1] !------------------------------------------------------------------------ @@ -816,15 +808,15 @@ SUBROUTINE Init_State_Met( Input_Opt, State_Grid, State_Met, RC ) ENDIF !------------------------------------------------------------------------ - ! FRLANDIC [1] + ! FRLANDICE [1] !------------------------------------------------------------------------ - metId = 'FRLANDIC' + metId = 'FRLANDICE' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Met = State_Met, & State_Grid = State_Grid, & metId = metId, & - Ptr2Data = State_Met%FRLANDIC, & + Ptr2Data = State_Met%FRLANDICE, & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -870,15 +862,15 @@ SUBROUTINE Init_State_Met( Input_Opt, State_Grid, State_Met, RC ) ENDIF !------------------------------------------------------------------------ - ! FRSNO [1] + ! FRSNOW [1] !------------------------------------------------------------------------ - metId = 'FRSNO' + metId = 'FRSNOW' CALL Init_and_Register( & Input_Opt = Input_Opt, & State_Met = State_Met, & State_Grid = State_Grid, & metId = metId, & - Ptr2Data = State_Met%FRSNO, & + Ptr2Data = State_Met%FRSNOW, & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN @@ -941,25 +933,6 @@ SUBROUTINE Init_State_Met( Input_Opt, State_Grid, State_Met, RC ) RETURN ENDIF - !------------------------------------------------------------------------ - ! IMIX [1]: Local variable for PBL mixing -- Do not register this - !------------------------------------------------------------------------ - metId = 'IMIX' - CALL Init_and_Register( & - Input_Opt = Input_Opt, & - State_Met = State_Met, & - State_Grid = State_Grid, & - metId = metId, & - Ptr2Data = State_Met%IMIX, & - noRegister = .TRUE., & - RC = RC ) - - IF ( RC /= GC_SUCCESS ) THEN - errMsg = TRIM( errMsg_ir ) // TRIM( metId ) - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF - !------------------------------------------------------------------------ ! IREG [1] !------------------------------------------------------------------------ @@ -2670,6 +2643,24 @@ SUBROUTINE Init_State_Met( Input_Opt, State_Grid, State_Met, RC ) RETURN ENDIF + !------------------------------------------------------------------------ + ! DYNHEATING [K/day] + !------------------------------------------------------------------------ + metId = 'DynHeating' + CALL Init_and_Register( & + Input_Opt = Input_Opt, & + State_Met = State_Met, & + State_Grid = State_Grid, & + metId = metId, & + Ptr2Data = State_Met%DynHeating, & + RC = RC ) + + IF ( RC /= GC_SUCCESS ) THEN + errMsg = TRIM( errMsg_ir ) // TRIM( metId ) + CALL GC_Error( errMsg, RC, thisLoc ) + RETURN + ENDIF + !------------------------------------------------------------------------ ! T [K] !------------------------------------------------------------------------ @@ -3035,26 +3026,7 @@ SUBROUTINE Init_State_Met( Input_Opt, State_Grid, State_Met, RC ) RETURN ENDIF -#ifdef APM - !--------------------------------------------------------------------- - ! PSO4_SO2APM2 - !--------------------------------------------------------------------- - metId = 'PSO4SO2APM2' - CALL Init_and_Register( & - Input_Opt = Input_Opt, & - State_Met = State_Met, & - State_Grid = State_Grid, & - metId = metId, & - Ptr2Data = State_Met%PSO4_SO2APM2, & - noRegister = .TRUE., & - RC = RC ) - IF ( RC /= GC_SUCCESS ) THEN - errMsg = TRIM( errMsg_ir ) // TRIM( metId ) - CALL GC_Error( errMsg, RC, thisLoc ) - RETURN - ENDIF -#endif ENDIF @@ -3215,22 +3187,25 @@ SUBROUTINE Init_State_Met( Input_Opt, State_Grid, State_Met, RC ) !======================================================================== ! Print information about the registered fields (short format) + ! Only written if debug printout is requested !======================================================================== - IF ( Input_Opt%amIRoot ) THEN + IF ( Input_Opt%amIRoot .and. Input_Opt%Verbose ) THEN WRITE( 6, 10 ) 10 FORMAT(/, 'Registered variables contained within the State_Met object:') WRITE( 6, '(a)' ) REPEAT( '=', 79 ) - ENDIF - CALL Registry_Print( Input_Opt = Input_Opt, & - Registry = State_Met%Registry, & - ShortFormat = .TRUE., & - RC = RC ) - ! Trap error - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN + ! Print registered fields + CALL Registry_Print( Input_Opt = Input_Opt, & + Registry = State_Met%Registry, & + ShortFormat = .TRUE., & + RC = RC ) + + ! Trap error + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in "Registry_Print"!' + CALL GC_Error( ErrMsg, RC, ThisLoc ) + RETURN + ENDIF ENDIF END SUBROUTINE Init_State_Met @@ -3361,11 +3336,11 @@ SUBROUTINE Cleanup_State_Met( State_Met, RC ) State_Met%FRLAND => NULL() ENDIF - IF ( ASSOCIATED( State_Met%FRLANDIC ) ) THEN - DEALLOCATE( State_Met%FRLANDIC, STAT=RC ) - CALL GC_CheckVar( 'State_Met%FRLANDIC', 2, RC ) + IF ( ASSOCIATED( State_Met%FRLANDICE ) ) THEN + DEALLOCATE( State_Met%FRLANDICE, STAT=RC ) + CALL GC_CheckVar( 'State_Met%FRLANDICE', 2, RC ) IF ( RC /= GC_SUCCESS ) RETURN - State_Met%FRLANDIC => NULL() + State_Met%FRLANDICE => NULL() ENDIF IF ( ASSOCIATED( State_Met%FROCEAN ) ) THEN @@ -3382,11 +3357,11 @@ SUBROUTINE Cleanup_State_Met( State_Met, RC ) State_Met%FRSEAICE => NULL() ENDIF - IF ( ASSOCIATED( State_Met%FRSNO ) ) THEN - DEALLOCATE( State_Met%FRSNO, STAT=RC ) - CALL GC_CheckVar( 'State_Met%FRSNO', 2, RC ) + IF ( ASSOCIATED( State_Met%FRSNOW ) ) THEN + DEALLOCATE( State_Met%FRSNOW, STAT=RC ) + CALL GC_CheckVar( 'State_Met%FRSNOW', 2, RC ) IF ( RC /= GC_SUCCESS ) RETURN - State_Met%FRSNO => NULL() + State_Met%FRSNOW => NULL() ENDIF IF ( ASSOCIATED( State_Met%GWETROOT ) ) THEN @@ -3788,20 +3763,6 @@ SUBROUTINE Cleanup_State_Met( State_Met, RC ) State_Met%IREG => NULL() ENDIF - IF ( ASSOCIATED( State_Met%IMIX) ) THEN - DEALLOCATE( State_Met%IMIX, STAT=RC ) - CALL GC_CheckVar( 'State_Met%IMIX', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - State_Met%IMIX => NULL() - ENDIF - - IF ( ASSOCIATED( State_Met%FPBL ) ) THEN - DEALLOCATE( State_Met%FPBL, STAT=RC ) - CALL GC_CheckVar( 'State_Met%FPBL', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - State_Met%FPBL => NULL() - ENDIF - !======================================================================== ! Deallocate 3-D fields ! @@ -4445,18 +4406,9 @@ SUBROUTINE Cleanup_State_Met( State_Met, RC ) State_Met%REEVAP => NULL() ENDIF -#ifdef APM - IF ( ASSOCIATED( State_Met%PSO4_SO2APM2 ) ) THEN - DEALLOCATE( State_Met%PSO4_SO2APM2, STAT=RC ) - CALL GC_CheckVar( 'State_Met%PSO4_SO2APM2', 2, RC ) - IF ( RC /= GC_SUCCESS ) RETURN - State_Met%PSO4_SO2APM2 => NULL() - ENDIF -#endif - - !------------------------------------------------------------------------- + !------------------------------------------------------------------------- ! Template for deallocating more arrays, replace xxx with field name - !------------------------------------------------------------------------- + !------------------------------------------------------------------------- !IF ( ASSOCIATED( State_Met%xxx ) ) THEN ! DEALLOCATE( State_Met%xxx, STAT=RC ) ! CALL GC_CheckVar( 'State_Met%xxx', 2, RC ) @@ -4621,32 +4573,32 @@ SUBROUTINE Get_Metadata_State_Met( am_I_Root, metadataID, Found, RC, & IF ( isRank ) Rank = 2 CASE ( 'FRLAKE' ) - IF ( isDesc ) Desc = 'Fraction of lake' + IF ( isDesc ) Desc = 'Fraction of lake in grid box' IF ( isUnits ) Units = '1' IF ( isRank ) Rank = 2 CASE ( 'FRLAND' ) - IF ( isDesc ) Desc = 'Fraction of land' + IF ( isDesc ) Desc = 'Fraction of land in grid box, excluding lake and ice' IF ( isUnits ) Units = '1' IF ( isRank ) Rank = 2 - CASE ( 'FRLANDIC' ) - IF ( isDesc ) Desc = 'Fraction of land ice' + CASE ( 'FRLANDICE' ) + IF ( isDesc ) Desc = 'Fraction of land ice in grid box' IF ( isUnits ) Units = '1' IF ( isRank ) Rank = 2 CASE ( 'FROCEAN' ) IF ( isUnits ) Units = '1' - IF ( isDesc ) Desc = 'Fraction of ocean' + IF ( isDesc ) Desc = 'Fraction of ocean in grid box' IF ( isRank ) Rank = 2 CASE ( 'FRSEAICE' ) - IF ( isDesc ) Desc = 'Fraction of sea ice' + IF ( isDesc ) Desc = 'Fraction of sea ice in grid box' IF ( isUnits ) Units = '1' IF ( isRank ) Rank = 2 - CASE ( 'FRSNO' ) - IF ( isDesc ) Desc = 'Fraction of snow on surface' + CASE ( 'FRSNOW' ) + IF ( isDesc ) Desc = 'Fraction of snow in grid box, excluding snow on ice' IF ( isUnits ) Units = '1' IF ( isRank ) Rank = 2 @@ -4708,7 +4660,7 @@ SUBROUTINE Get_Metadata_State_Met( am_I_Root, metadataID, Found, RC, & CASE ( 'PHIS' ) IF ( isDesc ) Desc = 'Surface geopotential height' - IF ( isUnits ) Units = 'm2 s-1' + IF ( isUnits ) Units = 'm' IF ( isRank ) Rank = 2 CASE ( 'PRECANV' ) @@ -5003,6 +4955,12 @@ SUBROUTINE Get_Metadata_State_Met( am_I_Root, metadataID, Found, RC, & IF ( isRank ) Rank = 3 IF ( isVLoc ) VLoc = VLocationCenter + CASE ( 'DYNHEATING' ) + IF ( isDesc ) Desc = 'Dynamical heating rate' + IF ( isUnits ) Units = 'K day-1' + IF ( isRank ) Rank = 3 + IF ( isVLoc ) VLoc = VLocationCenter + CASE ( 'DQRCU' ) IF ( isDesc ) Desc = 'Production rate of convective ' // & 'precipitation (per dry air)' diff --git a/History/history_mod.F90 b/History/history_mod.F90 index 653141077..ee7f46934 100644 --- a/History/history_mod.F90 +++ b/History/history_mod.F90 @@ -56,7 +56,6 @@ MODULE History_Mod CHARACTER(LEN=255), ALLOCATABLE :: CollectionName (: ) CHARACTER(LEN=255), ALLOCATABLE :: CollectionFileName (: ) CHARACTER(LEN=255), ALLOCATABLE :: CollectionTemplate (: ) - CHARACTER(LEN=255), ALLOCATABLE :: CollectionFormat (: ) CHARACTER(LEN=255), ALLOCATABLE :: CollectionFrequency (: ) CHARACTER(LEN=255), ALLOCATABLE :: CollectionAccInterval(: ) CHARACTER(LEN=255), ALLOCATABLE :: CollectionDuration (: ) @@ -349,17 +348,6 @@ SUBROUTINE History_ReadCollectionNames( Input_Opt, State_Chm, & CollectionTemplate = UNDEFINED_STR ENDIF - ! Allocate CollectionFormat - IF ( .not. ALLOCATED( CollectionFormat ) ) THEN - ALLOCATE( CollectionFormat( CollectionCount ), STAT=RC ) - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Could not allocate "CollectionFormat"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - CollectionFormat = UNDEFINED_STR - ENDIF - ! Allocate CollectionFrequency IF ( .not. ALLOCATED( CollectionFrequency ) ) THEN ALLOCATE( CollectionFrequency( CollectionCount ), STAT=RC ) @@ -882,13 +870,6 @@ SUBROUTINE History_ReadCollectionData( Input_Opt, State_Chm, State_Diag, & IF ( C > 0 ) CollectionTemplate(C) = Metadata ENDIF - ! "format": Specifies the file output format (e.g. netCDF-4, CFIO) - Pattern = 'format' - IF ( INDEX( TRIM( Line ), TRIM( Pattern ) ) > 0 ) THEN - CALL GetCollectionMetaData( Input_Opt, Line, Pattern, MetaData, C ) - IF ( C > 0 ) CollectionFormat(C) = Metadata - ENDIF - ! "frequency": Specifies how often diagnostics are updated, ! Must be either in "YYYYMMDD hhmmss" or "hhmmss" format. Pattern = 'frequency' @@ -1504,7 +1485,7 @@ SUBROUTINE History_ReadCollectionData( Input_Opt, State_Chm, State_Diag, & Conventions = 'COARDS', & FileName = CollectionFileName(C), & FileTemplate = CollectionTemplate(C), & - NcFormat = CollectionFormat(C), & + NcFormat = 'NetCDF-4', & Reference = Reference, & Title = Title, & Contact = Contact, & @@ -1838,7 +1819,6 @@ SUBROUTINE History_ReadCollectionData( Input_Opt, State_Chm, State_Diag, & DO C = 1, CollectionCount print*, 'Collection ', TRIM( CollectionName (C) ) print*, ' -> FileName ', TRIM( CollectionFileName (C) ) - print*, ' -> Format ', TRIM( CollectionFormat (C) ) print*, ' -> Frequency ', TRIM( CollectionFrequency (C) ) IF ( CollectionAccInterval(C) /= UNDEFINED_STR ) THEN print*, ' -> Acc_Interval ', TRIM( CollectionAccInterval(C) ) @@ -1877,7 +1857,7 @@ SUBROUTINE History_ReadCollectionData( Input_Opt, State_Chm, State_Diag, & ENDDO ENDIF - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN ! Print information about each diagnostic collection CALL MetaHistContainer_Print( Input_Opt, CollectionList, RC ) ENDIF @@ -2623,7 +2603,7 @@ SUBROUTINE History_Update( Input_Opt, State_Diag, RC ) ENDIF ! Debug output - IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 100 ) Container%Name 100 FORMAT( ' - Updating collection: ', a20 ) ENDIF @@ -2790,7 +2770,7 @@ SUBROUTINE History_Update( Input_Opt, State_Diag, RC ) ! Uncomment more detailed debug output if you need it! ! ! Debug output -! IF ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) THEN +! IF ( Input_Opt%Verbose ) THEN ! WRITE( 6, 110 ) TRIM(Container%Name), & ! TRIM(Item%Name), Item%nUpdates ! 110 FORMAT( a20, 1x, a20, 1x, f7.1 ) @@ -2870,6 +2850,7 @@ SUBROUTINE History_Write( Input_Opt, State_Chm, State_Diag, RC ) USE Registry_Params_Mod USE State_Chm_Mod, ONLY : ChmState USE State_Diag_Mod, ONLY : DgnMap, DgnState + USE UnitConv_Mod, ONLY : UNIT_STR ! ! !INPUT PARAMETERS: ! @@ -2901,9 +2882,8 @@ SUBROUTINE History_Write( Input_Opt, State_Chm, State_Diag, RC ) LOGICAL :: isRestart INTEGER :: S, N - ! Strings - CHARACTER(LEN=20) :: TmpUnits + CHARACTER(LEN=20 ) :: TmpUnits CHARACTER(LEN=255) :: ErrMsg CHARACTER(LEN=255) :: ThisLoc CHARACTER(LEN=255) :: cName @@ -3002,7 +2982,7 @@ SUBROUTINE History_Write( Input_Opt, State_Chm, State_Diag, RC ) ! Save the units of State_Chm%Species(:)%Conc in the container, ! so that we can redefine the unit string from "TBD". ! Copy into a temp variable so that Gfortran won't choke. - TmpUnits = State_Chm%Spc_Units + TmpUnits = UNIT_STR(State_Chm%Species(1)%Units) Container%Spc_Units = TmpUnits !----------------------------------------------------------------- @@ -3413,15 +3393,6 @@ SUBROUTINE History_Cleanup( RC ) ENDIF ENDIF - IF ( ALLOCATED( CollectionFormat ) ) THEN - DEALLOCATE( CollectionFormat, STAT=RC ) - IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Could not deallocate "CollectionFormat"!' - CALL GC_Error( ErrMsg, RC, ThisLoc ) - RETURN - ENDIF - ENDIF - IF ( ALLOCATED( CollectionFrequency ) ) THEN DEALLOCATE( CollectionFrequency, STAT=RC ) IF ( RC /= GC_SUCCESS ) THEN diff --git a/History/history_netcdf_mod.F90 b/History/history_netcdf_mod.F90 index 276497d4b..8aa770047 100644 --- a/History/history_netcdf_mod.F90 +++ b/History/history_netcdf_mod.F90 @@ -21,8 +21,6 @@ MODULE History_Netcdf_Mod IMPLICIT NONE PRIVATE - -# include "netcdf.inc" ! ! !PUBLIC MEMBER FUNCTIONS ! @@ -181,6 +179,7 @@ SUBROUTINE History_Netcdf_Define( Input_Opt, Container, RC ) USE JulDay_Mod, ONLY : CalDate USE MetaHistItem_Mod, ONLY : MetaHistItem USE Ncdf_Mod + USE netCDF, ONLY : NF90_UNLIMITED USE Registry_Params_Mod, ONLY : KINDVAL_F4 ! ! !INPUT PARAMETERS: @@ -380,7 +379,7 @@ SUBROUTINE History_Netcdf_Define( Input_Opt, Container, RC ) nLat = Container%nY, & nLev = nLev, & nIlev = nILev, & - nTime = NF_UNLIMITED, & + nTime = NF90_UNLIMITED, & nBounds = 2, & NcFormat = Container%NcFormat, & Conventions = Container%Conventions, & @@ -727,13 +726,13 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) INTEGER :: St2d(2), Ct2d(2) INTEGER :: St3d(3), Ct3d(3) INTEGER :: St4d(4), Ct4d(4) - REAL(f4), ALLOCATABLE :: NcData_1d4(: ) - REAL(f4), ALLOCATABLE :: NcData_2d4(:,: ) - REAL(f4), ALLOCATABLE :: NcData_3d4(:,:,:) - REAL(f8), ALLOCATABLE :: NcData_1d8(: ) - REAL(f8), ALLOCATABLE :: NcData_2d8(:,: ) - REAL(f8), ALLOCATABLE :: NcData_3d8(:,:,:) - REAL(f8) :: NcTimeVal (1 ) + REAL(f4), ALLOCATABLE :: NcData_2d4(:,: ) + REAL(f4), ALLOCATABLE :: NcData_3d4(:,:,: ) + REAL(f4), ALLOCATABLE :: NcData_4d4(:,:,:,:) + REAL(f8), ALLOCATABLE :: NcData_2d8(:,: ) + REAL(f8), ALLOCATABLE :: NcData_3d8(:,:,: ) + REAL(f8), ALLOCATABLE :: NcData_4d8(:,:,:,:) + REAL(f8) :: NcTimeVal (1 ) ! Objects TYPE(MetaHistItem), POINTER :: Current @@ -793,7 +792,7 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) Container%TimeStamp = Container%TimeStamp / SECONDS_PER_MINUTE ! Debug output - IF ( Input_Opt%LPRT .and. Input_opt%amIRoot ) THEN + IF ( Input_Opt%Verbose ) THEN WRITE( 6, 110 ) TRIM( Container%name ), Container%TimeStamp 110 FORMAT( ' - Writing data to ', a, '; timestamp = ', f13.4 ) ENDIF @@ -860,10 +859,11 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) ENDIF ! Allocate the 4-byte or 8-byte output array + ! Need a singleton 4th dimension for netCDF-F90 IF ( output4bytes ) THEN - ALLOCATE( NcData_3d4( Dim1, Dim2, Dim3 ), STAT=RC ) + ALLOCATE( NcData_4d4( Dim1, Dim2, Dim3, 1 ), STAT=RC ) ELSE - ALLOCATE( NcData_3d8( Dim1, Dim2, Dim3 ), STAT=RC ) + ALLOCATE( NcData_4d8( Dim1, Dim2, Dim3, 1 ), STAT=RC ) ENDIF ! Copy or average the data and store in a 4-byte or 8-byte array @@ -871,9 +871,9 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) !%%% Instantaneous output %%% IF ( output4Bytes ) THEN - NcData_3d4 = Item%Data_3d + NcData_4d4(:,:,:,1) = Item%Data_3d ELSE - NcData_3d8 = Item%Data_3d + NcData_4d8(:,:,:,1) = Item%Data_3d ENDIF Item%Data_3d = 0.0_f8 Item%nUpdates = 0.0_f8 @@ -883,9 +883,9 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) !%%% Time-averaged output %%% Item%Data_3d = Item%Data_3d / Item%nUpdates IF ( output4Bytes ) THEN - NcData_3d4 = Item%Data_3d + NcData_4d4(:,:,:,1) = Item%Data_3d ELSE - NcData_3d8 = Item%Data_3d + NcData_4d8(:,:,:,1) = Item%Data_3d ENDIF Item%Data_3d = 0.0_f8 Item%nUpdates = 0.0_f8 @@ -898,11 +898,11 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) ! Write data to disk and deallocate output array IF ( output4bytes ) THEN - CALL NcWr( NcData_3d4, NcFileId, Item%Name, St4d, Ct4d ) - DEALLOCATE( NcData_3d4, STAT=RC ) + CALL NcWr( NcData_4d4, NcFileId, Item%Name, St4d, Ct4d ) + DEALLOCATE( NcData_4d4, STAT=RC ) ELSE - CALL NcWr( NcData_3d8, NcFileId, Item%Name, St4d, Ct4d ) - DEALLOCATE( NcData_3d8, STAT=RC ) + CALL NcWr( NcData_4d8, NcFileId, Item%Name, St4d, Ct4d ) + DEALLOCATE( NcData_4d8, STAT=RC ) ENDIF !------------------------------------------------------------------ @@ -921,10 +921,11 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) ENDIF ! Allocate the 4-byte or 8-byte output array + ! Need a singleton 3rd dimension for netCDF-F90 IF ( output4bytes ) THEN - ALLOCATE( NcData_2d4( Dim1, Dim2 ), STAT=RC ) + ALLOCATE( NcData_3d4( Dim1, Dim2, 1 ), STAT=RC ) ELSE - ALLOCATE( NcData_2d8( Dim1, Dim2 ), STAT=RC ) + ALLOCATE( NcData_3d8( Dim1, Dim2, 1 ), STAT=RC ) ENDIF ! Copy or average the data and store in a 4-byte or 8-byte array @@ -932,9 +933,9 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) !%%% Instantaneous output %%% IF ( output4bytes ) THEN - NcData_2d4 = Item%Data_2d + NcData_3d4(:,:,1) = Item%Data_2d ELSE - NcData_2d8 = Item%Data_2d + NcData_3d8(:,:,1) = Item%Data_2d ENDIF Item%Data_2d = 0.0_f8 Item%nUpdates = 0.0_f8 @@ -944,9 +945,9 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) !%%% Time-averaged output %%% Item%Data_2d = Item%Data_2d / Item%nUpdates IF ( output4bytes ) THEN - NcData_2d4 = Item%Data_2d + NcData_3d4(:,:,1) = Item%Data_2d ELSE - NcData_2d8 = Item%Data_2d + NcData_3d8(:,:,1) = Item%Data_2d ENDIF Item%Data_2d = 0.0_f8 Item%nUpdates = 0.0_f8 @@ -959,11 +960,11 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) ! Write data to disk IF ( output4bytes ) THEN - CALL NcWr( NcData_2d4, NcFileId, Item%Name, St3d, Ct3d ) - DEALLOCATE( NcData_2d4, STAT=RC ) + CALL NcWr( NcData_3d4, NcFileId, Item%Name, St3d, Ct3d ) + DEALLOCATE( NcData_3d4, STAT=RC ) ELSE - CALL NcWr( NcData_2d8, NcFileId, Item%Name, St3d, Ct3d ) - DEALLOCATE( NcData_2d8, STAT=RC ) + CALL NcWr( NcData_3d8, NcFileId, Item%Name, St3d, Ct3d ) + DEALLOCATE( NcData_3d8, STAT=RC ) ENDIF !------------------------------------------------------------------ @@ -975,10 +976,11 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) Dim1 = SIZE( Item%Data_1d, 1 ) ! Allocate the 4-byte or 8-byte output array + ! Need a singleton 2nd dimension for netCDF-F90 IF ( output4bytes ) THEN - ALLOCATE( NcData_1d4( Dim1 ), STAT=RC ) + ALLOCATE( NcData_2d4( Dim1, 1 ), STAT=RC ) ELSE - ALLOCATE( NcData_1d8( Dim1 ), STAT=RC ) + ALLOCATE( NcData_2d8( Dim1, 1 ), STAT=RC ) ENDIF ! Copy or average the data and store in a 4-byte or 8-byte array @@ -986,9 +988,9 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) !%%% Instantaneous output %%% IF ( output4bytes ) THEN - NcData_1d4 = Item%Data_1d + NcData_2d4(:,1) = Item%Data_1d ELSE - NcData_1d8 = Item%Data_1d + NcData_2d8(:,1) = Item%Data_1d ENDIF Item%Data_1d = 0.0_f8 Item%nUpdates = 0.0_f8 @@ -998,9 +1000,9 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) ! %%% Time-averaged output %%% Item%Data_1d = Item%Data_1d / Item%nUpdates IF ( output4bytes ) THEN - NcData_1d4 = Item%Data_1d + NcData_2d4(:,1) = Item%Data_1d ELSE - NcData_1d8 = Item%Data_1d + NcData_2d8(:,1) = Item%Data_1d ENDIF Item%Data_1d = 0.0_f8 Item%nUpdates = 0.0_f8 @@ -1013,11 +1015,11 @@ SUBROUTINE History_Netcdf_Write( Input_Opt, State_Diag, Container, RC ) ! Write data to disk IF ( output4bytes ) THEN - CALL NcWr( NcData_1d4, NcFileId, Item%Name, St2d, Ct2d ) - DEALLOCATE( NcData_1d4, STAT=RC ) + CALL NcWr( NcData_2d4, NcFileId, Item%Name, St2d, Ct2d ) + DEALLOCATE( NcData_2d4, STAT=RC ) ELSE - CALL NcWr( NcData_1d8, NcFileId, Item%Name, St2d, Ct2d ) - DEALLOCATE( NcData_1d8, STAT=RC ) + CALL NcWr( NcData_2d8, NcFileId, Item%Name, St2d, Ct2d ) + DEALLOCATE( NcData_2d8, STAT=RC ) ENDIF END SELECT diff --git a/ISORROPIA/.gitignore b/ISORROPIA/.gitignore deleted file mode 100644 index 865e37b19..000000000 --- a/ISORROPIA/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*.[oax] -*.mod -*.MOD -*~* -geos -geostomas -geosapm -*.pp.* -*.pdb -*.inst.* -*.continue.* -*.ppk -core.* diff --git a/ISORROPIA/CMakeLists.txt b/ISORROPIA/CMakeLists.txt deleted file mode 100755 index 34d1af383..000000000 --- a/ISORROPIA/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -add_library(Isorropia EXCLUDE_FROM_ALL isorropiaII_main_mod.F) - -target_link_libraries(Isorropia PUBLIC GEOSChemBuildProperties) - -target_compile_options(Isorropia PRIVATE - "" - # NOTE: ISORROPIA probably needs to be compiled - # with REAL*8 or else it'll crash - $<$:-r8> - $<$:-fdefault-real-8 -fdefault-double-8> -) - diff --git a/ISORROPIA/isorropiaII_main_mod.F b/ISORROPIA/isorropiaII_main_mod.F deleted file mode 100644 index a23d4119f..000000000 --- a/ISORROPIA/isorropiaII_main_mod.F +++ /dev/null @@ -1,38093 +0,0 @@ -!#if defined( ISORROPIA_V22 ) -!#undef ISORROPIA_V22 -!#endif -#define ISORROPIA_V22 -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !MODULE: isorropiaII_main_mod -! -! !DESCRIPTION: Module ISORROPIAII\_MAIN\_MOD containes routines and -! variables for calculating aerosol thermodynamic equilibrium. -!\\ -!\\ -! !INTERFACE: -! - MODULE ISORROPIAII_MAIN_MOD -! -! !USES: -! - Implicit None - - Private -! -! !PUBLIC MEMBER FUNCTIONS: -! - Public :: Isorropia -! -! !PRIVATE MEMBER FUNCTIONS: -! - Private :: INIT1 - Private :: INIT2 - Private :: ISOINIT3 - Private :: INIT4 - Private :: ADJUST - Private :: CALCHA - Private :: CALCHAP - Private :: CALCNA - Private :: CALCNAP - Private :: CALCNH3 - Private :: CALCNH3P - Private :: CALCNHA - Private :: CALCNHP - Private :: CALCAMAQ - Private :: CALCAMAQ2 - Private :: CALCCLAQ - Private :: CALCCLAQ2 - Private :: CALCNIAQ - Private :: CALCNIAQ2 - Private :: CALCMR - Private :: CALCMDRH - Private :: CALCMDRH2 - Private :: CALCMDRP - Private :: CALCMDRPII - Private :: CALCHS4 - Private :: CALCPH - Private :: CALCACT - Private :: CALCACT4 - Private :: CALCACT3 - Private :: CALCACT2 - Private :: CALCACT1 - Private :: RSTGAM - Private :: RSTGAMP - Private :: KMFUL4 - Private :: KMFUL3 - Private :: KMFUL2 - Private :: KMFUL1 - Private :: MKBI - Private :: KMTAB - Private :: KM198 - Private :: KM223 - Private :: KM248 - Private :: KM273 - Private :: KM298 - Private :: KM323 - Private :: CHRBLN - Private :: SHFTRGHT - Private :: RPLSTR - Private :: INPTD - Private :: Pushend - Private :: Appendext - Private :: POLY3 - Private :: POLY3B - Private :: PUSHERR - Private :: ISERRINF - Private :: ERRSTAT - Private :: ISORINF - Private :: ISRP1F - Private :: ISRP2F - Private :: ISRP3F - Private :: ISRP4F - Private :: CALCA2 - Private :: CALCA1 - Private :: CALCB4 - Private :: CALCB3 - Private :: CALCB3A - Private :: CALCB3B - Private :: CALCB2 - Private :: CALCB2A - Private :: CALCB2A2 - Private :: CALCB2B - Private :: CALCB1 - Private :: CALCB1A - Private :: CALCB1B - Private :: CALCC2 - Private :: CALCC1 - Private :: CALCD3 - Private :: CALCD2 - Private :: CALCD1 - Private :: CALCD1A - Private :: CALCG5 - Private :: CALCG4 - Private :: CALCG3 - Private :: CALCG3A - Private :: CALCG2 - Private :: CALCG2A - Private :: CALCG1 - Private :: CALCG1A - Private :: CALCH6 - Private :: CALCH5 - Private :: CALCH4 - Private :: CALCH3 - Private :: CALCH2 - Private :: CALCH2A - Private :: CALCH1 - Private :: CALCH1A - Private :: CALCI6 - Private :: CALCI5 - Private :: CALCI4 - Private :: CALCI3 - Private :: CALCI3A - Private :: CALCI2 - Private :: CALCI2A - Private :: CALCI1 - Private :: CALCI1A - Private :: CALCJ3 - Private :: CALCJ2 - Private :: CALCJ1 - Private :: CALCO7 - Private :: CALCO6 - Private :: CALCO5 - Private :: CALCO4 - Private :: CALCO3 - Private :: CALCO3A - Private :: CALCO2 - Private :: CALCO2A - Private :: CALCO1 - Private :: CALCO1A - Private :: CALCM8 - Private :: CALCM7 - Private :: CALCM6 - Private :: CALCM5 - Private :: CALCM4 - Private :: CALCM3 - Private :: CALCM2 - Private :: CALCM2A - Private :: CALCM1 - Private :: CALCM1A - Private :: CALCP13 - Private :: CALCP12 - Private :: CALCP11 - Private :: CALCP10 - Private :: CALCP9 - Private :: CALCP8 - Private :: CALCP7 - Private :: CALCP6 - Private :: CALCP5 - Private :: CALCP5A - Private :: CALCP4 - Private :: CALCP4A - Private :: CALCP3 - Private :: CALCP3A - Private :: CALCP2 - Private :: CALCP2A - Private :: CALCP1 - Private :: CALCP1A - Private :: CALCL9 - Private :: CALCL8 - Private :: CALCL7 - Private :: CALCL6 - Private :: CALCL5 - Private :: CALCL4 - Private :: CALCL3 - Private :: CALCL3A - Private :: CALCL2 - Private :: CALCL2A - Private :: CALCL1 - Private :: CALCL1A - Private :: CALCK4 - Private :: CALCK3 - Private :: CALCK2 - Private :: CALCK1 - Private :: GETASR - Private :: EX10 - Private :: FUNCA2 - Private :: FUNCB3A - Private :: FUNCB2B - Private :: FUNCC1 - Private :: FUNCD3 - Private :: FUNCD2 - Private :: FUNCG5A - Private :: FUNCG4A - Private :: FUNCG3A - Private :: FUNCG2A - Private :: FUNCH6A - Private :: FUNCH5A - Private :: FUNCH4A - Private :: FUNCH3A - Private :: FUNCH2A - Private :: FUNCI5A - Private :: FUNCI4A - Private :: FUNCI3A - Private :: FUNCI3B - Private :: FUNCI2A - Private :: FUNCJ2 - Private :: FUNCJ1 - Private :: FUNCO7 - Private :: FUNCO6 - Private :: FUNCO5 - Private :: FUNCO4 - Private :: FUNCO3A - Private :: FUNCO2A - Private :: FUNCM8 - Private :: FUNCM7 - Private :: FUNCM6 - Private :: FUNCM5 - Private :: FUNCM4 - Private :: FUNCM3 - Private :: FUNCM2A - Private :: FUNCP13 - Private :: FUNCP12 - Private :: FUNCP11 - Private :: FUNCP10 - Private :: FUNCP9 - Private :: FUNCP8 - Private :: FUNCP7 - Private :: FUNCP6 - Private :: FUNCP5 - Private :: FUNCP4 - Private :: FUNCP3 - Private :: FUNCP2A - Private :: FUNCL8 - Private :: FUNCL7 - Private :: FUNCL6 - Private :: FUNCL5 - Private :: FUNCL4 - Private :: FUNCL3A - Private :: FUNCL3B - Private :: FUNCL2A - Private :: FUNCL2B - Private :: FUNCK3 - Private :: FUNCK2 - Private :: FUNCK1 - Private :: Init_IsoData - -! Original Documentation: -! *** ISORROPIA CODE II -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! *** UPDATE|ADJOINT BY SHANNON CAPPS -! -!****************************************************************************** -! - ! leave this implicit statement for isorropiaIIcode.f variables - ! ideally all variables would be declared - !IMPLICIT DOUBLE PRECISION (A-H,O-Z) - !IMPLICIT NONE - - !================================================================= - ! Constants - !================================================================= - - ! Kinds - Integer, Parameter :: sp = Selected_Real_Kind(6, 37 ) - Integer, Parameter :: dp = Selected_Real_Kind(15, 307 ) - Integer, Parameter :: qp = Selected_Real_Kind(33, 4931) - Integer, Parameter :: fp = dp - - !---------------------------------------------------------------------- - ! Prior to 6/28/10: - ! IONIC should be Real(kind=fp) for consistency with -r8 flag during - ! compiling of isorropiaIIcode routines (hotp 6/23/10) -#if defined( ESMF_ ) - Integer, Parameter :: IonicKind=sp -#else - Integer, Parameter :: IonicKind=fp -#endif - Real(Kind=IonicKind) :: IONIC_MAIN - !---------------------------------------------------------------------- -!$OMP THREADPRIVATE( IONIC_MAIN ) - -! INPUT: -! 1. [WFTYPI] -! INTEGER variable. -! Defines the type of weighting algorithm for the solution in Mutual -! Deliquescence Regions (MDR's): -! 0 - MDR's are assumed dry. This is equivalent to the approach -! used by SEQUILIB. -! 1 - The solution is assumed "half" dry and "half" wet throughout -! the MDR. -! 2 - The solution is a relative-humidity weighted mean of the -! dry and wet solutions (as defined in Nenes et al., 1998) -! -! 2. [IACALCI] -! INTEGER variable. -! Method of activity coefficient calculation: -! 0 - Calculate coefficients during runtime -! 1 - Use precalculated tables -! -! 3. [EPSI] -! DOUBLE PRECITION variable. -! Defines the convergence criterion for all iterative processes -! in ISORROPIA, except those for activity coefficient calculations -! (EPSACTI controls that). -! -! 4. [MAXITI] -! INTEGER variable. -! Defines the maximum number of iterations for all iterative -! processes in ISORROPIA, except for activity coefficient calculations -! (NSWEEPI controls that). -! -! 5. [NSWEEPI] -! INTEGER variable. -! Defines the maximum number of iterations for activity coefficient -! calculations. -! -! 6. [EPSACTI] -! Real(kind=fp) :: variable. -! Defines the convergence criterion for activity coefficient -! calculations. -! -! 7. [NDIV] -! INTEGER variable. -! Defines the number of subdivisions needed for the initial root -! tracking for the bisection method. Usually this parameter should -! not be altered, but is included for completeness. -! -! 8. [NADJ] -! INTEGER variable. -! Forces the solution obtained to satisfy total mass balance -! to machine precision -! 0 - No adjustment done (default) -! 1 - Do adjustment - ! Parameters - integers - - Integer, Parameter :: WFTYP = 2 - Integer, Parameter :: IACALC = 1 - Real(kind=fp), Parameter :: EPS = 1.0D-6 - Integer, Parameter :: MAXIT = 100 - Integer, Parameter :: NSWEEP = 4 - Real(kind=fp), Parameter :: EPSACT = 5.0D-2 - Integer, Parameter :: NDIV = 5 - Integer, Parameter :: NADJ = 1 - - ! Sizing parameters - Integer, Parameter :: NCOMP = 8 - Integer, Parameter :: NIONS = 10 - Integer, Parameter :: NGASAQ = 3 - Integer, Parameter :: NSLDS = 19 - Integer, Parameter :: NPAIR = 23 - Integer, Parameter :: NZSR = 100 - Integer, Parameter :: NERRMX = 25 - Integer, Parameter :: NCtrl = 2 - Integer, Parameter :: NOther = 9 - - ! Parameters - reals -#if defined( ISORROPIA_V22 ) - Real(kind=fp), Parameter :: Pi = 3.1415926535897932d0 -#else - Real(kind=fp), Parameter :: Pi = 3.14159265358932d0 -#endif - Real(kind=fp), Parameter :: R = 82.0567D-6 - Real(kind=fp), Parameter :: TINY = 1.0D-20 - Real(kind=fp), Parameter :: TINY2 = 1.0D-11 - Real(kind=fp), Parameter :: GREAT = 1.0D10 - Real(kind=fp), Parameter :: ZERO = 0.0D0 - Real(kind=fp), Parameter :: ONE = 1.0D0 - - ! Parameter arrays - reals - Real(kind=fp), Parameter :: IMW(NIONS) = - & (/ 1.0,23.0,18.0,35.5,96.0,97.0,62.0,40.1,39.1,24.3/) - Real(kind=fp), Parameter :: WMW(NComp) = - & (/23.0,98.0,17.0,63.0,36.5,40.1,39.1,24.3/) - Real(kind=fp), Parameter :: SMW(NPair) = - & (/58.5,142.,85.0,132.,80.0,53.5,98.0,98.0,115.,63.0, - & 36.5,120.,247.,136.1,164.,111.,174.2,136.1,101.1,74.5, - & 120.3,148.3,95.2/) - - ! Parameter arrays - integers - Integer, Parameter :: ZZ(NPAIR) = - & (/1,2,1,2,1,1,2,1,1,1,1,1,2,4,2,2,2,1,1,1,4,2,2/) - Integer, Parameter :: Z(NIONS) = (/1,1,1,1,2,1,1,2,1,2/) - - - !================================================================= - ! Input variables - !================================================================= - - INTEGER :: IPROB, METSTBL -!$OMP THREADPRIVATE( IPROB, METSTBL ) - - Real(kind=fp) :: W(NCOMP), WAER(NCOMP), TEMP, RH -!$OMP THREADPRIVATE( W, WAER, TEMP, RH ) - - !================================================================= - ! Water activities of pure salt solutions - !================================================================= - - ! /ZSR/ is read-only and doesn't have to be declared THREADPRIVATE - ! block does not need to be split up to speed compilation - Real(kind=fp) :: AWAS(NZSR), AWSS(NZSR), AWAC(NZSR), AWSC(NZSR) - Real(kind=fp) :: AWAN(NZSR), AWSN(NZSR), AWSB(NZSR), AWAB(NZSR) - Real(kind=fp) :: AWSA(NZSR), AWLC(NZSR), AWCS(NZSR), AWCN(NZSR) - Real(kind=fp) :: AWCC(NZSR), AWPS(NZSR), AWPB(NZSR), AWPN(NZSR) - Real(kind=fp) :: AWPC(NZSR), AWMS(NZSR), AWMN(NZSR), AWMC(NZSR) -!$OMP THREADPRIVATE( AWAS, AWSS, AWAC, AWSC ) -!$OMP THREADPRIVATE( AWAN, AWSN, AWSB, AWAB ) -!$OMP THREADPRIVATE( AWSA, AWLC, AWCS, AWCN ) -!$OMP THREADPRIVATE( AWCC, AWPS, AWPB, AWPN ) -!$OMP THREADPRIVATE( AWPC, AWMS, AWMN, AWMC ) - ! ZSR is read-only - - !================================================================= - ! Deliquescence relative humidities - !================================================================= - - Real(kind=fp) :: DRH2SO4, DRNH42S4,DRNAHSO4,DRNACL, DRNANO3 - Real(kind=fp) :: DRNA2SO4,DRNH4HS4,DRLC, DRNH4NO3,DRNH4CL - Real(kind=fp) :: DRCASO4, DRCANO32,DRCACL2, DRK2SO4, DRKHSO4 - Real(kind=fp) :: DRKNO3, DRKCL, DRMGSO4, DRMGNO32,DRMGCL2 -!$OMP THREADPRIVATE( DRH2SO4, DRNH42S4, DRNAHSO4, DRNACL, DRNANO3 ) -!$OMP THREADPRIVATE( DRNA2SO4, DRNH4HS4, DRLC, DRNH4NO3, DRNH4CL ) -!$OMP THREADPRIVATE( DRCASO4, DRCANO32, DRCACL2, DRK2SO4, DRKHSO4 ) -!$OMP THREADPRIVATE( DRKNO3, DRKCL, DRMGSO4, DRMGNO32, DRMGCL2 ) - - Real(kind=fp) :: DRMLCAB, DRMLCAS, DRMASAN, DRMG1, DRMG2 - Real(kind=fp) :: DRMG3, DRMH1, DRMH2, DRMI1, DRMI2 - Real(kind=fp) :: DRMI3, DRMQ1, DRMR1, DRMR2, DRMR3 - Real(kind=fp) :: DRMR4, DRMR5, DRMR6, DRMR7, DRMR8 - Real(kind=fp) :: DRMR9, DRMR10, DRMR11, DRMR12, DRMR13 -!$OMP THREADPRIVATE( DRMLCAB, DRMLCAS, DRMASAN, DRMG1, DRMG2 ) -!$OMP THREADPRIVATE( DRMG3, DRMH1, DRMH2, DRMI1, DRMI2 ) -!$OMP THREADPRIVATE( DRMI3, DRMQ1, DRMR1, DRMR2, DRMR3 ) -!$OMP THREADPRIVATE( DRMR4, DRMR5, DRMR6, DRMR7, DRMR8 ) -!$OMP THREADPRIVATE( DRMR9, DRMR10, DRMR11, DRMR12, DRMR13 ) - - Real(kind=fp) :: DRMO1, DRMO2, DRMO3, DRML1, DRML2 - Real(kind=fp) :: DRML3, DRMM1, DRMM2, DRMP1, DRMP2 - Real(kind=fp) :: DRMP3, DRMP4, DRMP5, DRMV1 -!$OMP THREADPRIVATE( DRMO1, DRMO2, DRMO3, DRML1, DRML2 ) -!$OMP THREADPRIVATE( DRML3, DRMM1, DRMM2, DRMP1, DRMP2 ) -!$OMP THREADPRIVATE( DRMP3, DRMP4, DRMP5, DRMV1 ) - - !================================================================= - ! Variables for liquid aerosol phase - !================================================================= - - ! /IONS/ size does not seem to slow compilation - Real(kind=fp) :: MOLAL(NIONS), MOLALR(NPAIR), M0(NPAIR) - Real(kind=fp) :: GAMA(NPAIR) - Real(kind=fp) :: GAMOU(NPAIR), GAMIN(NPAIR), GASAQ(NGASAQ) - Real(kind=fp) :: COH, CHNO3, CHCL - Real(kind=fp) :: WATER -!$OMP THREADPRIVATE( MOLAL, MOLALR, M0 ) -!$OMP THREADPRIVATE( GAMA ) -!$OMP THREADPRIVATE( GAMOU, GAMIN, GASAQ ) -!$OMP THREADPRIVATE( COH, CHNO3, CHCL ) -!$OMP THREADPRIVATE( WATER ) - - ! DRYF removed since it is not used (hotp) - LOGICAL :: CALAOU, CALAIN, FRST -!$OMP THREADPRIVATE( CALAOU, CALAIN, FRST ) - - !================================================================= - ! Variables for solid aerosol phase - !================================================================= - - Real(kind=fp) :: CH2SO4, CNH42S4,CNH4HS4,CNACL, CNA2SO4 - Real(kind=fp) :: CNANO3, CNH4NO3,CNH4CL, CNAHSO4,CLC, CCASO4 - Real(kind=fp) :: CCANO32,CCACL2, CK2SO4, CKHSO4, CKNO3, CKCL - Real(kind=fp) :: CMGSO4, CMGNO32,CMGCL2 -!$OMP THREADPRIVATE( CH2SO4, CNH42S4, CNH4HS4, CNACL, CNA2SO4 ) -!$OMP THREADPRIVATE( CNANO3, CNH4NO3, CNH4CL, CNAHSO4, CLC, CCASO4 ) -!$OMP THREADPRIVATE( CCANO32, CCACL2, CK2SO4, CKHSO4, CKNO3, CKCL ) -!$OMP THREADPRIVATE( CMGSO4, CMGNO32, CMGCL2 ) - - !================================================================= - ! Variables for gas phase - !================================================================= - - Real(kind=fp) :: GNH3, GHNO3, GHCL -!$OMP THREADPRIVATE( GNH3, GHNO3, GHCL ) - - !================================================================= - ! Equilibrium constants - !================================================================= - - Real(kind=fp) :: XK1, XK2, XK3, XK4, XK5, XK6, XK7, XK8, XK9 - Real(kind=fp) :: XK11,XK12,XK13,XK14,XKW, XK21,XK22,XK31,XK32 - Real(kind=fp) :: XK42,XK15,XK16,XK17,XK18,XK19,XK20,XK23 - Real(kind=fp) :: XK24,XK25,XK10,XK41 -!$OMP THREADPRIVATE( XK1, XK2, XK3, XK4, XK5, XK6, XK7, XK8, XK9, XK10 ) -!$OMP THREADPRIVATE( XK11,XK12,XK13,XK14,XKW, XK21,XK22,XK31,XK32,XK41 ) -!$OMP THREADPRIVATE( XK42,XK15,XK16,XK17,XK18,XK19,XK20,XK23 ) -!$OMP THREADPRIVATE( XK24,XK25 ) - !C & , XK26, XK27 - - !================================================================= - ! Solution/info variables - !================================================================= - - CHARACTER(LEN=15) :: SCASE -!$OMP THREADPRIVATE( SCASE ) - - Real(kind=fp) :: SULRATW, SULRAT, SODRAT, - & SO4RAT, CRNARAT, CRRAT -!$OMP THREADPRIVATE( SULRATW, SULRAT, SODRAT, SO4RAT, CRNARAT, CRRAT ) - - Integer :: ICLACT -!$OMP THREADPRIVATE( ICLACT ) - - !================================================================= - ! Error system - !================================================================= - - CHARACTER(LEN=40) :: ERRMSG(NERRMX) -!$OMP THREADPRIVATE( ERRMSG ) - - INTEGER :: ERRSTK(NERRMX), NOFER -!$OMP THREADPRIVATE( ERRSTK, NOFER ) - - LOGICAL :: STKOFL -!$OMP THREADPRIVATE( STKOFL ) - - !================================================================= - ! Generic Variables - !================================================================= - - CHARACTER(LEN=15) :: VERSION - - !================================================================= - ! coordinates for debugging - !================================================================= - INTEGER :: ICOOR, JCOOR, LCOOR -!$OMP THREADPRIVATE( ICOOR, JCOOR, LCOOR ) - - !================================================================= - ! Former common blocks - !================================================================= - - ! Formerly SOLUT - ! NOTE: CASEG was the subset as follows: - ! CHI1-CHI6 - ! PSI1-PSI7 - ! NOTE Previously LAMDA and A1-A17 were also declared here, but - ! that seemed to be unnecessary - Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 - Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 - Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5 - Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, PSI10, PSI11, PSI12 - Real(kind=fp) :: PSI13, PSI14, PSI15, PSI16, PSI17 -!$OMP THREADPRIVATE( CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 ) -!$OMP THREADPRIVATE( CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 ) -!$OMP THREADPRIVATE( CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 ) -!$OMP THREADPRIVATE( PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 ) -!$OMP THREADPRIVATE( PSI14, PSI15, PSI16, PSI17 ) - - - ! Formerly DRVINP - but only some are used. METSTBLI, IPROBI, - ! IACALCI, and NADJI aren't used, so they're not included here - ! SDE: Strongly suspect these should never be used like this -!=========! Real(kind=fp) :: WI(NCOMP), RHI, TEMPI -!=========!!$OMP THREADPRIVATE( WI, RHI, TEMPI ) - - !=========================DATA BLOCKS============================= - - ! Formerly BLOCK DATA AERSR - Integer, Parameter :: NSO4S = 14 - Integer, Parameter :: NRHS = 20 - Integer, Parameter :: NASRD=NSO4S*NRHS - - Real(kind=fp), Parameter, Dimension(NSO4S) :: ASSO4 = - & (/1.0E-9, 2.5E-9, 5.0E-9, 7.5E-9, 1.0E-8, - & 2.5E-8, 5.0E-8, 7.5E-8, 1.0E-7, 2.5E-7, - & 5.0E-7, 7.5E-7, 1.0E-6, 5.0E-6/) -! - Real(kind=fp), Parameter, Dimension(NASRD) :: ASRAT = (/ - & 1.020464, 0.9998130, 0.9960167, 0.9984423, 1.004004, - & 1.010885, 1.018356, 1.026726, 1.034268, 1.043846, - & 1.052933, 1.062230, 1.062213, 1.080050, 1.088350, - & 1.096603, 1.104289, 1.111745, 1.094662, 1.121594, - & 1.268909, 1.242444, 1.233815, 1.232088, 1.234020, - & 1.238068, 1.243455, 1.250636, 1.258734, 1.267543, - & 1.276948, 1.286642, 1.293337, 1.305592, 1.314726, - & 1.323463, 1.333258, 1.343604, 1.344793, 1.355571, - & 1.431463, 1.405204, 1.395791, 1.393190, 1.394403, - & 1.398107, 1.403811, 1.411744, 1.420560, 1.429990, - & 1.439742, 1.449507, 1.458986, 1.468403, 1.477394, - & 1.487373, 1.495385, 1.503854, 1.512281, 1.520394, - & 1.514464, 1.489699, 1.480686, 1.478187, 1.479446, - & 1.483310, 1.489316, 1.497517, 1.506501, 1.515816, - & 1.524724, 1.533950, 1.542758, 1.551730, 1.559587, - & 1.568343, 1.575610, 1.583140, 1.590440, 1.596481, - & 1.567743, 1.544426, 1.535928, 1.533645, 1.535016, - & 1.539003, 1.545124, 1.553283, 1.561886, 1.570530, - & 1.579234, 1.587813, 1.595956, 1.603901, 1.611349, - & 1.618833, 1.625819, 1.632543, 1.639032, 1.645276, - & 1.707390, 1.689553, 1.683198, 1.681810, 1.683490, - & 1.687477, 1.693148, 1.700084, 1.706917, 1.713507, - & 1.719952, 1.726190, 1.731985, 1.737544, 1.742673, - & 1.747756, 1.752431, 1.756890, 1.761141, 1.765190, - & 1.785657, 1.771851, 1.767063, 1.766229, 1.767901, - & 1.771455, 1.776223, 1.781769, 1.787065, 1.792081, - & 1.796922, 1.801561, 1.805832, 1.809896, 1.813622, - & 1.817292, 1.820651, 1.823841, 1.826871, 1.829745, - & 1.822215, 1.810497, 1.806496, 1.805898, 1.807480, - & 1.810684, 1.814860, 1.819613, 1.824093, 1.828306, - & 1.832352, 1.836209, 1.839748, 1.843105, 1.846175, - & 1.849192, 1.851948, 1.854574, 1.857038, 1.859387, - & 1.844588, 1.834208, 1.830701, 1.830233, 1.831727, - & 1.834665, 1.838429, 1.842658, 1.846615, 1.850321, - & 1.853869, 1.857243, 1.860332, 1.863257, 1.865928, - & 1.868550, 1.870942, 1.873208, 1.875355, 1.877389, - & 1.899556, 1.892637, 1.890367, 1.890165, 1.891317, - & 1.893436, 1.896036, 1.898872, 1.901485, 1.903908, - & 1.906212, 1.908391, 1.910375, 1.912248, 1.913952, - & 1.915621, 1.917140, 1.918576, 1.919934, 1.921220, - & 1.928264, 1.923245, 1.921625, 1.921523, 1.922421, - & 1.924016, 1.925931, 1.927991, 1.929875, 1.931614, - & 1.933262, 1.934816, 1.936229, 1.937560, 1.938769, - & 1.939951, 1.941026, 1.942042, 1.943003, 1.943911, - & 1.941205, 1.937060, 1.935734, 1.935666, 1.936430, - & 1.937769, 1.939359, 1.941061, 1.942612, 1.944041, - & 1.945393, 1.946666, 1.947823, 1.948911, 1.949900, - & 1.950866, 1.951744, 1.952574, 1.953358, 1.954099, - & 1.948985, 1.945372, 1.944221, 1.944171, 1.944850, - & 1.946027, 1.947419, 1.948902, 1.950251, 1.951494, - & 1.952668, 1.953773, 1.954776, 1.955719, 1.956576, - & 1.957413, 1.958174, 1.958892, 1.959571, 1.960213, - & 1.977193, 1.975540, 1.975023, 1.975015, 1.975346, - & 1.975903, 1.976547, 1.977225, 1.977838, 1.978401, - & 1.978930, 1.979428, 1.979879, 1.980302, 1.980686, - & 1.981060, 1.981401, 1.981722, 1.982025, 1.982312/) - - ! Formerly BLOCK DATA EXPON -! -! *** Integer part -! - Real(kind=fp), Parameter, Dimension(20) :: AINT10 = (/ - & 0.1000E-08, 0.1000E-07, 0.1000E-06, 0.1000E-05, 0.1000E-04, - & 0.1000E-03, 0.1000E-02, 0.1000E-01, 0.1000E+00, 0.1000E+01, - & 0.1000E+02, 0.1000E+03, 0.1000E+04, 0.1000E+05, 0.1000E+06, - & 0.1000E+07, 0.1000E+08, 0.1000E+09, 0.1000E+10, 0.1000E+11 - & /) -! -! *** decimal part -! - Real(kind=fp), Parameter, Dimension(200) :: ADEC10 = (/ - & 0.1023E+00, 0.1047E+00, 0.1072E+00, 0.1096E+00, 0.1122E+00, - & 0.1148E+00, 0.1175E+00, 0.1202E+00, 0.1230E+00, 0.1259E+00, - & 0.1288E+00, 0.1318E+00, 0.1349E+00, 0.1380E+00, 0.1413E+00, - & 0.1445E+00, 0.1479E+00, 0.1514E+00, 0.1549E+00, 0.1585E+00, - & 0.1622E+00, 0.1660E+00, 0.1698E+00, 0.1738E+00, 0.1778E+00, - & 0.1820E+00, 0.1862E+00, 0.1905E+00, 0.1950E+00, 0.1995E+00, - & 0.2042E+00, 0.2089E+00, 0.2138E+00, 0.2188E+00, 0.2239E+00, - & 0.2291E+00, 0.2344E+00, 0.2399E+00, 0.2455E+00, 0.2512E+00, - & 0.2570E+00, 0.2630E+00, 0.2692E+00, 0.2754E+00, 0.2818E+00, - & 0.2884E+00, 0.2951E+00, 0.3020E+00, 0.3090E+00, 0.3162E+00, - & 0.3236E+00, 0.3311E+00, 0.3388E+00, 0.3467E+00, 0.3548E+00, - & 0.3631E+00, 0.3715E+00, 0.3802E+00, 0.3890E+00, 0.3981E+00, - & 0.4074E+00, 0.4169E+00, 0.4266E+00, 0.4365E+00, 0.4467E+00, - & 0.4571E+00, 0.4677E+00, 0.4786E+00, 0.4898E+00, 0.5012E+00, - & 0.5129E+00, 0.5248E+00, 0.5370E+00, 0.5495E+00, 0.5623E+00, - & 0.5754E+00, 0.5888E+00, 0.6026E+00, 0.6166E+00, 0.6310E+00, - & 0.6457E+00, 0.6607E+00, 0.6761E+00, 0.6918E+00, 0.7079E+00, - & 0.7244E+00, 0.7413E+00, 0.7586E+00, 0.7762E+00, 0.7943E+00, - & 0.8128E+00, 0.8318E+00, 0.8511E+00, 0.8710E+00, 0.8913E+00, - & 0.9120E+00, 0.9333E+00, 0.9550E+00, 0.9772E+00, 0.1000E+01, - & 0.1023E+01, 0.1047E+01, 0.1072E+01, 0.1096E+01, 0.1122E+01, - & 0.1148E+01, 0.1175E+01, 0.1202E+01, 0.1230E+01, 0.1259E+01, - & 0.1288E+01, 0.1318E+01, 0.1349E+01, 0.1380E+01, 0.1413E+01, - & 0.1445E+01, 0.1479E+01, 0.1514E+01, 0.1549E+01, 0.1585E+01, - & 0.1622E+01, 0.1660E+01, 0.1698E+01, 0.1738E+01, 0.1778E+01, - & 0.1820E+01, 0.1862E+01, 0.1905E+01, 0.1950E+01, 0.1995E+01, - & 0.2042E+01, 0.2089E+01, 0.2138E+01, 0.2188E+01, 0.2239E+01, - & 0.2291E+01, 0.2344E+01, 0.2399E+01, 0.2455E+01, 0.2512E+01, - & 0.2570E+01, 0.2630E+01, 0.2692E+01, 0.2754E+01, 0.2818E+01, - & 0.2884E+01, 0.2951E+01, 0.3020E+01, 0.3090E+01, 0.3162E+01, - & 0.3236E+01, 0.3311E+01, 0.3388E+01, 0.3467E+01, 0.3548E+01, - & 0.3631E+01, 0.3715E+01, 0.3802E+01, 0.3890E+01, 0.3981E+01, - & 0.4074E+01, 0.4169E+01, 0.4266E+01, 0.4365E+01, 0.4467E+01, - & 0.4571E+01, 0.4677E+01, 0.4786E+01, 0.4898E+01, 0.5012E+01, - & 0.5129E+01, 0.5248E+01, 0.5370E+01, 0.5495E+01, 0.5623E+01, - & 0.5754E+01, 0.5888E+01, 0.6026E+01, 0.6166E+01, 0.6310E+01, - & 0.6457E+01, 0.6607E+01, 0.6761E+01, 0.6918E+01, 0.7079E+01, - & 0.7244E+01, 0.7413E+01, 0.7586E+01, 0.7762E+01, 0.7943E+01, - & 0.8128E+01, 0.8318E+01, 0.8511E+01, 0.8710E+01, 0.8913E+01, - & 0.9120E+01, 0.9333E+01, 0.9550E+01, 0.9772E+01, 0.1000E+02 - & /) - - ! Formerly BLOCK DATA KMCF198 -! -! *** NaCl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC01M_198 = (/ - &-0.050,-0.103,-0.127,-0.142,-0.154,-0.162,-0.169,-0.174,-0.178, - &-0.181,-0.184,-0.186,-0.188,-0.189,-0.190,-0.191,-0.191,-0.192, - &-0.192,-0.191,-0.191,-0.191,-0.190,-0.189,-0.188,-0.188,-0.187, - &-0.185,-0.184,-0.183,-0.182,-0.181,-0.179,-0.178,-0.176,-0.175, - &-0.173,-0.172,-0.170,-0.169,-0.167,-0.166,-0.164,-0.162,-0.161, - &-0.159,-0.157,-0.156,-0.154,-0.152,-0.151,-0.149,-0.147,-0.146, - &-0.144,-0.142,-0.140,-0.139,-0.137,-0.135,-0.134,-0.132,-0.130, - &-0.128,-0.127,-0.125,-0.123,-0.121,-0.120,-0.118,-0.116,-0.114, - &-0.112,-0.111,-0.109,-0.107,-0.105,-0.103,-0.101,-0.099,-0.098, - &-0.096,-0.094,-0.092,-0.090,-0.088,-0.086,-0.084,-0.082,-0.080, - &-0.078,-0.075,-0.073,-0.071,-0.069,-0.067,-0.065,-0.063,-0.060, - &-0.058,-0.056,-0.054,-0.051,-0.049,-0.047,-0.045,-0.042,-0.040, - &-0.038,-0.035,-0.033,-0.031,-0.028,-0.026,-0.024,-0.021,-0.019, - &-0.016,-0.014,-0.012,-0.009,-0.007,-0.004,-0.002, 0.000, 0.003, - & 0.005, 0.008, 0.010, 0.012, 0.015, 0.017, 0.020, 0.022, 0.024, - & 0.027, 0.029, 0.032, 0.034, 0.036, 0.039, 0.041, 0.044, 0.046, - & 0.048, 0.051, 0.053, 0.055, 0.058, 0.060, 0.063, 0.065, 0.067, - & 0.070, 0.072, 0.074, 0.077, 0.079, 0.081, 0.084, 0.086, 0.088, - & 0.091, 0.093, 0.095, 0.098, 0.100, 0.102, 0.105, 0.107, 0.109, - & 0.112, 0.114, 0.116, 0.118, 0.121, 0.123, 0.125, 0.127, 0.130, - & 0.132, 0.134, 0.137, 0.139, 0.141, 0.143, 0.146, 0.148, 0.150, - & 0.152, 0.154, 0.157, 0.159, 0.161, 0.163, 0.166, 0.168, 0.170, - & 0.172, 0.174, 0.176, 0.179, 0.181, 0.183, 0.185, 0.187, 0.190, - & 0.192, 0.194, 0.196, 0.198, 0.200, 0.202, 0.205, 0.207, 0.209, - & 0.211, 0.213, 0.215, 0.217, 0.219, 0.222, 0.224, 0.226, 0.228, - & 0.230, 0.232, 0.234, 0.236, 0.238, 0.240, 0.242, 0.244, 0.246, - & 0.249, 0.251, 0.253, 0.255, 0.257, 0.259, 0.261, 0.263, 0.265, - & 0.267, 0.269, 0.271, 0.273, 0.275, 0.277, 0.279, 0.281, 0.283, - & 0.285, 0.287, 0.289, 0.291, 0.293, 0.295, 0.297, 0.299, 0.301, - & 0.303, 0.304, 0.306, 0.308, 0.310, 0.312, 0.314, 0.316, 0.318, - & 0.320, 0.322, 0.324, 0.326, 0.328, 0.329, 0.331, 0.333, 0.335, - & 0.337, 0.339, 0.341, 0.343, 0.344, 0.346, 0.348, 0.350, 0.352, - & 0.354, 0.356, 0.357, 0.359, 0.361, 0.363, 0.365, 0.367, 0.368, - & 0.370, 0.372, 0.374, 0.376, 0.377, 0.379, 0.381, 0.383, 0.385, - & 0.386, 0.388, 0.390, 0.392, 0.393, 0.395, 0.397, 0.399, 0.401, - & 0.402, 0.404, 0.406, 0.408, 0.409, 0.411, 0.413, 0.414, 0.416, - & 0.418, 0.420, 0.421, 0.423, 0.425, 0.426, 0.428, 0.430, 0.432, - & 0.433, 0.435, 0.437, 0.438, 0.440, 0.442, 0.443, 0.445, 0.447, - & 0.448, 0.450, 0.452, 0.453, 0.455, 0.457, 0.458, 0.460, 0.461, - & 0.463, 0.465, 0.466, 0.468, 0.470, 0.471, 0.473, 0.474, 0.476, - & 0.478, 0.479, 0.481, 0.482, 0.484, 0.486, 0.487, 0.489, 0.490, - & 0.492, 0.493, 0.495, 0.497, 0.498, 0.500, 0.501, 0.503, 0.504, - & 0.506, 0.508, 0.509, 0.511, 0.512, 0.514, 0.515, 0.517, 0.518, - & 0.520, 0.521, 0.523, 0.524, 0.526, 0.527, 0.529, 0.530, 0.532, - & 0.533, 0.535, 0.536, 0.538, 0.554, 0.568, 0.582, 0.596, 0.610, - & 0.623, 0.636, 0.649, 0.661, 0.674, 0.686, 0.698, 0.709, 0.721, - & 0.732, 0.743, 0.754, 0.765, 0.775, 0.786, 0.796, 0.806, 0.815, - & 0.825, 0.834, 0.844, 0.853, 0.862, 0.870, 0.879, 0.887, 0.896, - & 0.904, 0.912, 0.920, 0.928, 0.935, 0.943, 0.950, 0.957, 0.964, - & 0.971, 0.978, 0.985, 0.992, 0.998, 1.005, 1.011, 1.017, 1.023, - & 1.029, 1.035, 1.041, 1.047, 1.052, 1.058, 1.063, 1.068, 1.074, - & 1.079, 1.084, 1.089, 1.094, 1.099, 1.103, 1.108, 1.112, 1.117, - & 1.121, 1.126, 1.130, 1.134, 1.138, 1.142, 1.146, 1.150, 1.154, - & 1.158, 1.161, 1.165, 1.169, 1.172, 1.175, 1.179, 1.182, 1.185, - & 1.189, 1.192, 1.195, 1.198, 1.201, 1.204, 1.206, 1.209, 1.212, - & 1.215, 1.217, 1.220, 1.222, 1.225, 1.227, 1.230, 1.232, 1.234, - & 1.236, 1.239, 1.241, 1.243, 1.245, 1.247, 1.249, 1.251, 1.253, - & 1.254, 1.256, 1.258, 1.260, 1.261, 1.263, 1.264, 1.266, 1.267, - & 1.269, 1.270, 1.272, 1.273, 1.274, 1.276, 1.277, 1.278, 1.279, - & 1.280, 1.281, 1.283, 1.284, 1.285, 1.286, 1.286, 1.287, 1.288, - & 1.289, 1.290, 1.291, 1.291, 1.292, 1.293, 1.293, 1.294, 1.295, - & 1.295, 1.296, 1.296, 1.297, 1.297, 1.297, 1.298, 1.298, 1.298, - & 1.299, 1.299, 1.299 - & /) -! -! *** Na2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC02M_198 = (/ - &-0.103,-0.225,-0.288,-0.332,-0.367,-0.397,-0.422,-0.445,-0.465, - &-0.484,-0.501,-0.516,-0.531,-0.545,-0.558,-0.570,-0.582,-0.593, - &-0.604,-0.614,-0.624,-0.633,-0.643,-0.651,-0.660,-0.668,-0.676, - &-0.684,-0.692,-0.699,-0.707,-0.714,-0.721,-0.727,-0.734,-0.741, - &-0.747,-0.753,-0.759,-0.765,-0.771,-0.777,-0.783,-0.788,-0.794, - &-0.799,-0.804,-0.810,-0.815,-0.820,-0.825,-0.830,-0.835,-0.840, - &-0.845,-0.849,-0.854,-0.859,-0.863,-0.868,-0.872,-0.877,-0.881, - &-0.885,-0.889,-0.894,-0.898,-0.902,-0.906,-0.910,-0.914,-0.918, - &-0.922,-0.926,-0.930,-0.934,-0.938,-0.942,-0.946,-0.949,-0.953, - &-0.957,-0.961,-0.964,-0.968,-0.971,-0.975,-0.979,-0.982,-0.986, - &-0.989,-0.993,-0.996,-1.000,-1.003,-1.007,-1.010,-1.014,-1.017, - &-1.020,-1.024,-1.027,-1.030,-1.034,-1.037,-1.040,-1.044,-1.047, - &-1.050,-1.053,-1.057,-1.060,-1.063,-1.066,-1.069,-1.072,-1.076, - &-1.079,-1.082,-1.085,-1.088,-1.091,-1.094,-1.097,-1.100,-1.103, - &-1.106,-1.109,-1.112,-1.115,-1.118,-1.121,-1.124,-1.127,-1.130, - &-1.133,-1.136,-1.139,-1.142,-1.145,-1.147,-1.150,-1.153,-1.156, - &-1.159,-1.162,-1.165,-1.167,-1.170,-1.173,-1.176,-1.179,-1.181, - &-1.184,-1.187,-1.190,-1.192,-1.195,-1.198,-1.200,-1.203,-1.206, - &-1.209,-1.211,-1.214,-1.217,-1.219,-1.222,-1.225,-1.227,-1.230, - &-1.232,-1.235,-1.238,-1.240,-1.243,-1.246,-1.248,-1.251,-1.253, - &-1.256,-1.258,-1.261,-1.264,-1.266,-1.269,-1.271,-1.274,-1.276, - &-1.279,-1.281,-1.284,-1.286,-1.289,-1.291,-1.294,-1.296,-1.299, - &-1.301,-1.304,-1.306,-1.309,-1.311,-1.313,-1.316,-1.318,-1.321, - &-1.323,-1.326,-1.328,-1.330,-1.333,-1.335,-1.338,-1.340,-1.342, - &-1.345,-1.347,-1.350,-1.352,-1.354,-1.357,-1.359,-1.361,-1.364, - &-1.366,-1.368,-1.371,-1.373,-1.375,-1.378,-1.380,-1.382,-1.385, - &-1.387,-1.389,-1.392,-1.394,-1.396,-1.399,-1.401,-1.403,-1.405, - &-1.408,-1.410,-1.412,-1.415,-1.417,-1.419,-1.421,-1.424,-1.426, - &-1.428,-1.430,-1.433,-1.435,-1.437,-1.439,-1.442,-1.444,-1.446, - &-1.448,-1.450,-1.453,-1.455,-1.457,-1.459,-1.461,-1.464,-1.466, - &-1.468,-1.470,-1.472,-1.475,-1.477,-1.479,-1.481,-1.483,-1.485, - &-1.488,-1.490,-1.492,-1.494,-1.496,-1.498,-1.501,-1.503,-1.505, - &-1.507,-1.509,-1.511,-1.513,-1.516,-1.518,-1.520,-1.522,-1.524, - &-1.526,-1.528,-1.530,-1.533,-1.535,-1.537,-1.539,-1.541,-1.543, - &-1.545,-1.547,-1.549,-1.551,-1.554,-1.556,-1.558,-1.560,-1.562, - &-1.564,-1.566,-1.568,-1.570,-1.572,-1.574,-1.576,-1.578,-1.580, - &-1.583,-1.585,-1.587,-1.589,-1.591,-1.593,-1.595,-1.597,-1.599, - &-1.601,-1.603,-1.605,-1.607,-1.609,-1.611,-1.613,-1.615,-1.617, - &-1.619,-1.621,-1.623,-1.625,-1.627,-1.629,-1.631,-1.633,-1.635, - &-1.637,-1.639,-1.641,-1.643,-1.645,-1.647,-1.649,-1.651,-1.653, - &-1.655,-1.657,-1.659,-1.661,-1.663,-1.665,-1.667,-1.669,-1.671, - &-1.673,-1.675,-1.677,-1.679,-1.681,-1.683,-1.685,-1.687,-1.689, - &-1.691,-1.693,-1.695,-1.696,-1.698,-1.700,-1.702,-1.704,-1.706, - &-1.708,-1.710,-1.712,-1.714,-1.716,-1.718,-1.720,-1.722,-1.724, - &-1.726,-1.727,-1.729,-1.731,-1.752,-1.771,-1.790,-1.808,-1.827, - &-1.845,-1.864,-1.882,-1.900,-1.918,-1.936,-1.954,-1.972,-1.989, - &-2.007,-2.024,-2.042,-2.059,-2.076,-2.093,-2.110,-2.127,-2.144, - &-2.161,-2.178,-2.194,-2.211,-2.228,-2.244,-2.261,-2.277,-2.293, - &-2.310,-2.326,-2.342,-2.358,-2.374,-2.390,-2.406,-2.422,-2.438, - &-2.454,-2.470,-2.486,-2.501,-2.517,-2.533,-2.548,-2.564,-2.579, - &-2.595,-2.610,-2.626,-2.641,-2.657,-2.672,-2.687,-2.702,-2.718, - &-2.733,-2.748,-2.763,-2.778,-2.793,-2.808,-2.823,-2.838,-2.853, - &-2.868,-2.883,-2.898,-2.913,-2.927,-2.942,-2.957,-2.972,-2.986, - &-3.001,-3.016,-3.030,-3.045,-3.059,-3.074,-3.089,-3.103,-3.118, - &-3.132,-3.147,-3.161,-3.175,-3.190,-3.204,-3.219,-3.233,-3.247, - &-3.261,-3.276,-3.290,-3.304,-3.318,-3.333,-3.347,-3.361,-3.375, - &-3.389,-3.403,-3.417,-3.432,-3.446,-3.460,-3.474,-3.488,-3.502, - &-3.516,-3.530,-3.544,-3.558,-3.571,-3.585,-3.599,-3.613,-3.627, - &-3.641,-3.655,-3.669,-3.682,-3.696,-3.710,-3.724,-3.737,-3.751, - &-3.765,-3.779,-3.792,-3.806,-3.820,-3.833,-3.847,-3.861,-3.874, - &-3.888,-3.901,-3.915,-3.929,-3.942,-3.956,-3.969,-3.983,-3.996, - &-4.010,-4.023,-4.037,-4.050,-4.064,-4.077,-4.091,-4.104,-4.118, - &-4.131,-4.144,-4.158 - & /) -! -! *** NaNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC03M_198 = (/ - &-0.052,-0.114,-0.145,-0.168,-0.187,-0.202,-0.215,-0.227,-0.238, - &-0.248,-0.257,-0.265,-0.273,-0.281,-0.288,-0.294,-0.301,-0.307, - &-0.313,-0.318,-0.324,-0.329,-0.334,-0.339,-0.344,-0.349,-0.353, - &-0.357,-0.362,-0.366,-0.370,-0.374,-0.378,-0.382,-0.386,-0.389, - &-0.393,-0.396,-0.400,-0.403,-0.407,-0.410,-0.413,-0.416,-0.419, - &-0.423,-0.426,-0.429,-0.432,-0.435,-0.437,-0.440,-0.443,-0.446, - &-0.449,-0.451,-0.454,-0.457,-0.459,-0.462,-0.464,-0.467,-0.469, - &-0.472,-0.474,-0.477,-0.479,-0.482,-0.484,-0.486,-0.489,-0.491, - &-0.493,-0.496,-0.498,-0.500,-0.502,-0.505,-0.507,-0.509,-0.511, - &-0.513,-0.516,-0.518,-0.520,-0.522,-0.524,-0.526,-0.528,-0.530, - &-0.532,-0.534,-0.537,-0.539,-0.541,-0.543,-0.545,-0.547,-0.549, - &-0.551,-0.553,-0.555,-0.557,-0.559,-0.561,-0.562,-0.564,-0.566, - &-0.568,-0.570,-0.572,-0.574,-0.576,-0.578,-0.580,-0.582,-0.583, - &-0.585,-0.587,-0.589,-0.591,-0.593,-0.594,-0.596,-0.598,-0.600, - &-0.602,-0.604,-0.605,-0.607,-0.609,-0.611,-0.612,-0.614,-0.616, - &-0.618,-0.619,-0.621,-0.623,-0.625,-0.626,-0.628,-0.630,-0.631, - &-0.633,-0.635,-0.637,-0.638,-0.640,-0.642,-0.643,-0.645,-0.647, - &-0.648,-0.650,-0.651,-0.653,-0.655,-0.656,-0.658,-0.660,-0.661, - &-0.663,-0.664,-0.666,-0.668,-0.669,-0.671,-0.672,-0.674,-0.676, - &-0.677,-0.679,-0.680,-0.682,-0.683,-0.685,-0.686,-0.688,-0.689, - &-0.691,-0.693,-0.694,-0.696,-0.697,-0.699,-0.700,-0.702,-0.703, - &-0.705,-0.706,-0.708,-0.709,-0.711,-0.712,-0.714,-0.715,-0.717, - &-0.718,-0.719,-0.721,-0.722,-0.724,-0.725,-0.727,-0.728,-0.730, - &-0.731,-0.733,-0.734,-0.735,-0.737,-0.738,-0.740,-0.741,-0.743, - &-0.744,-0.745,-0.747,-0.748,-0.750,-0.751,-0.752,-0.754,-0.755, - &-0.757,-0.758,-0.759,-0.761,-0.762,-0.763,-0.765,-0.766,-0.768, - &-0.769,-0.770,-0.772,-0.773,-0.774,-0.776,-0.777,-0.778,-0.780, - &-0.781,-0.782,-0.784,-0.785,-0.787,-0.788,-0.789,-0.791,-0.792, - &-0.793,-0.794,-0.796,-0.797,-0.798,-0.800,-0.801,-0.802,-0.804, - &-0.805,-0.806,-0.808,-0.809,-0.810,-0.812,-0.813,-0.814,-0.815, - &-0.817,-0.818,-0.819,-0.821,-0.822,-0.823,-0.824,-0.826,-0.827, - &-0.828,-0.829,-0.831,-0.832,-0.833,-0.835,-0.836,-0.837,-0.838, - &-0.840,-0.841,-0.842,-0.843,-0.845,-0.846,-0.847,-0.848,-0.850, - &-0.851,-0.852,-0.853,-0.854,-0.856,-0.857,-0.858,-0.859,-0.861, - &-0.862,-0.863,-0.864,-0.866,-0.867,-0.868,-0.869,-0.870,-0.872, - &-0.873,-0.874,-0.875,-0.876,-0.878,-0.879,-0.880,-0.881,-0.882, - &-0.884,-0.885,-0.886,-0.887,-0.888,-0.890,-0.891,-0.892,-0.893, - &-0.894,-0.896,-0.897,-0.898,-0.899,-0.900,-0.901,-0.903,-0.904, - &-0.905,-0.906,-0.907,-0.908,-0.910,-0.911,-0.912,-0.913,-0.914, - &-0.915,-0.917,-0.918,-0.919,-0.920,-0.921,-0.922,-0.924,-0.925, - &-0.926,-0.927,-0.928,-0.929,-0.930,-0.932,-0.933,-0.934,-0.935, - &-0.936,-0.937,-0.938,-0.940,-0.941,-0.942,-0.943,-0.944,-0.945, - &-0.946,-0.947,-0.949,-0.950,-0.951,-0.952,-0.953,-0.954,-0.955, - &-0.956,-0.958,-0.959,-0.960,-0.961,-0.962,-0.963,-0.964,-0.965, - &-0.966,-0.968,-0.969,-0.970,-0.982,-0.992,-1.003,-1.014,-1.025, - &-1.035,-1.046,-1.056,-1.066,-1.076,-1.087,-1.097,-1.107,-1.117, - &-1.126,-1.136,-1.146,-1.156,-1.165,-1.175,-1.185,-1.194,-1.203, - &-1.213,-1.222,-1.231,-1.241,-1.250,-1.259,-1.268,-1.277,-1.286, - &-1.295,-1.304,-1.313,-1.322,-1.331,-1.340,-1.349,-1.357,-1.366, - &-1.375,-1.383,-1.392,-1.401,-1.409,-1.418,-1.426,-1.435,-1.443, - &-1.452,-1.460,-1.468,-1.477,-1.485,-1.493,-1.502,-1.510,-1.518, - &-1.526,-1.535,-1.543,-1.551,-1.559,-1.567,-1.575,-1.583,-1.591, - &-1.599,-1.607,-1.615,-1.623,-1.631,-1.639,-1.647,-1.655,-1.663, - &-1.671,-1.679,-1.686,-1.694,-1.702,-1.710,-1.718,-1.725,-1.733, - &-1.741,-1.749,-1.756,-1.764,-1.772,-1.779,-1.787,-1.794,-1.802, - &-1.810,-1.817,-1.825,-1.832,-1.840,-1.847,-1.855,-1.862,-1.870, - &-1.877,-1.885,-1.892,-1.900,-1.907,-1.915,-1.922,-1.929,-1.937, - &-1.944,-1.952,-1.959,-1.966,-1.974,-1.981,-1.988,-1.996,-2.003, - &-2.010,-2.018,-2.025,-2.032,-2.039,-2.047,-2.054,-2.061,-2.068, - &-2.075,-2.083,-2.090,-2.097,-2.104,-2.111,-2.118,-2.126,-2.133, - &-2.140,-2.147,-2.154,-2.161,-2.168,-2.175,-2.183,-2.190,-2.197, - &-2.204,-2.211,-2.218,-2.225,-2.232,-2.239,-2.246,-2.253,-2.260, - &-2.267,-2.274,-2.281 - & /) -! -! *** (NH4)2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC04M_198 = (/ - &-0.103,-0.226,-0.289,-0.334,-0.369,-0.399,-0.425,-0.448,-0.468, - &-0.487,-0.505,-0.521,-0.536,-0.550,-0.563,-0.576,-0.588,-0.599, - &-0.610,-0.621,-0.631,-0.641,-0.650,-0.659,-0.668,-0.677,-0.685, - &-0.693,-0.701,-0.709,-0.717,-0.724,-0.731,-0.738,-0.745,-0.752, - &-0.758,-0.765,-0.771,-0.777,-0.784,-0.790,-0.796,-0.801,-0.807, - &-0.813,-0.818,-0.824,-0.829,-0.835,-0.840,-0.845,-0.850,-0.855, - &-0.860,-0.865,-0.870,-0.875,-0.880,-0.884,-0.889,-0.894,-0.898, - &-0.903,-0.907,-0.912,-0.916,-0.920,-0.925,-0.929,-0.933,-0.937, - &-0.942,-0.946,-0.950,-0.954,-0.958,-0.962,-0.966,-0.970,-0.974, - &-0.978,-0.982,-0.985,-0.989,-0.993,-0.997,-1.001,-1.004,-1.008, - &-1.012,-1.016,-1.019,-1.023,-1.027,-1.030,-1.034,-1.037,-1.041, - &-1.045,-1.048,-1.052,-1.055,-1.059,-1.062,-1.066,-1.069,-1.072, - &-1.076,-1.079,-1.083,-1.086,-1.089,-1.093,-1.096,-1.099,-1.103, - &-1.106,-1.109,-1.113,-1.116,-1.119,-1.122,-1.126,-1.129,-1.132, - &-1.135,-1.138,-1.142,-1.145,-1.148,-1.151,-1.154,-1.157,-1.160, - &-1.164,-1.167,-1.170,-1.173,-1.176,-1.179,-1.182,-1.185,-1.188, - &-1.191,-1.194,-1.197,-1.200,-1.203,-1.206,-1.209,-1.212,-1.215, - &-1.218,-1.221,-1.223,-1.226,-1.229,-1.232,-1.235,-1.238,-1.241, - &-1.244,-1.246,-1.249,-1.252,-1.255,-1.258,-1.261,-1.263,-1.266, - &-1.269,-1.272,-1.274,-1.277,-1.280,-1.283,-1.285,-1.288,-1.291, - &-1.294,-1.296,-1.299,-1.302,-1.304,-1.307,-1.310,-1.313,-1.315, - &-1.318,-1.321,-1.323,-1.326,-1.328,-1.331,-1.334,-1.336,-1.339, - &-1.342,-1.344,-1.347,-1.349,-1.352,-1.355,-1.357,-1.360,-1.362, - &-1.365,-1.367,-1.370,-1.373,-1.375,-1.378,-1.380,-1.383,-1.385, - &-1.388,-1.390,-1.393,-1.395,-1.398,-1.400,-1.403,-1.405,-1.408, - &-1.410,-1.413,-1.415,-1.418,-1.420,-1.423,-1.425,-1.427,-1.430, - &-1.432,-1.435,-1.437,-1.440,-1.442,-1.445,-1.447,-1.449,-1.452, - &-1.454,-1.457,-1.459,-1.461,-1.464,-1.466,-1.469,-1.471,-1.473, - &-1.476,-1.478,-1.480,-1.483,-1.485,-1.487,-1.490,-1.492,-1.495, - &-1.497,-1.499,-1.502,-1.504,-1.506,-1.509,-1.511,-1.513,-1.515, - &-1.518,-1.520,-1.522,-1.525,-1.527,-1.529,-1.532,-1.534,-1.536, - &-1.538,-1.541,-1.543,-1.545,-1.548,-1.550,-1.552,-1.554,-1.557, - &-1.559,-1.561,-1.563,-1.566,-1.568,-1.570,-1.572,-1.575,-1.577, - &-1.579,-1.581,-1.583,-1.586,-1.588,-1.590,-1.592,-1.595,-1.597, - &-1.599,-1.601,-1.603,-1.606,-1.608,-1.610,-1.612,-1.614,-1.616, - &-1.619,-1.621,-1.623,-1.625,-1.627,-1.630,-1.632,-1.634,-1.636, - &-1.638,-1.640,-1.642,-1.645,-1.647,-1.649,-1.651,-1.653,-1.655, - &-1.658,-1.660,-1.662,-1.664,-1.666,-1.668,-1.670,-1.672,-1.675, - &-1.677,-1.679,-1.681,-1.683,-1.685,-1.687,-1.689,-1.691,-1.694, - &-1.696,-1.698,-1.700,-1.702,-1.704,-1.706,-1.708,-1.710,-1.712, - &-1.714,-1.717,-1.719,-1.721,-1.723,-1.725,-1.727,-1.729,-1.731, - &-1.733,-1.735,-1.737,-1.739,-1.741,-1.743,-1.745,-1.748,-1.750, - &-1.752,-1.754,-1.756,-1.758,-1.760,-1.762,-1.764,-1.766,-1.768, - &-1.770,-1.772,-1.774,-1.776,-1.778,-1.780,-1.782,-1.784,-1.786, - &-1.788,-1.790,-1.792,-1.794,-1.816,-1.836,-1.855,-1.875,-1.894, - &-1.914,-1.933,-1.952,-1.971,-1.989,-2.008,-2.027,-2.045,-2.063, - &-2.082,-2.100,-2.118,-2.136,-2.154,-2.171,-2.189,-2.207,-2.224, - &-2.242,-2.259,-2.276,-2.293,-2.311,-2.328,-2.345,-2.362,-2.379, - &-2.395,-2.412,-2.429,-2.446,-2.462,-2.479,-2.495,-2.512,-2.528, - &-2.544,-2.561,-2.577,-2.593,-2.609,-2.625,-2.642,-2.658,-2.674, - &-2.689,-2.705,-2.721,-2.737,-2.753,-2.768,-2.784,-2.800,-2.815, - &-2.831,-2.847,-2.862,-2.878,-2.893,-2.908,-2.924,-2.939,-2.954, - &-2.970,-2.985,-3.000,-3.015,-3.031,-3.046,-3.061,-3.076,-3.091, - &-3.106,-3.121,-3.136,-3.151,-3.166,-3.181,-3.196,-3.210,-3.225, - &-3.240,-3.255,-3.270,-3.284,-3.299,-3.314,-3.328,-3.343,-3.358, - &-3.372,-3.387,-3.401,-3.416,-3.430,-3.445,-3.459,-3.474,-3.488, - &-3.503,-3.517,-3.531,-3.546,-3.560,-3.574,-3.589,-3.603,-3.617, - &-3.631,-3.646,-3.660,-3.674,-3.688,-3.702,-3.717,-3.731,-3.745, - &-3.759,-3.773,-3.787,-3.801,-3.815,-3.829,-3.843,-3.857,-3.871, - &-3.885,-3.899,-3.913,-3.927,-3.941,-3.955,-3.969,-3.982,-3.996, - &-4.010,-4.024,-4.038,-4.051,-4.065,-4.079,-4.093,-4.107,-4.120, - &-4.134,-4.148,-4.161,-4.175,-4.189,-4.202,-4.216,-4.230,-4.243, - &-4.257,-4.271,-4.284 - & /) -! -! *** NH4NO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC05M_198 = (/ - &-0.052,-0.117,-0.152,-0.178,-0.199,-0.217,-0.232,-0.247,-0.260, - &-0.272,-0.283,-0.294,-0.304,-0.314,-0.323,-0.332,-0.341,-0.349, - &-0.357,-0.365,-0.372,-0.379,-0.386,-0.393,-0.400,-0.407,-0.413, - &-0.419,-0.426,-0.432,-0.437,-0.443,-0.449,-0.455,-0.460,-0.466, - &-0.471,-0.476,-0.481,-0.486,-0.491,-0.496,-0.501,-0.506,-0.511, - &-0.515,-0.520,-0.524,-0.529,-0.533,-0.537,-0.542,-0.546,-0.550, - &-0.554,-0.558,-0.563,-0.567,-0.570,-0.574,-0.578,-0.582,-0.586, - &-0.590,-0.593,-0.597,-0.601,-0.604,-0.608,-0.612,-0.615,-0.619, - &-0.622,-0.626,-0.629,-0.633,-0.636,-0.640,-0.643,-0.646,-0.650, - &-0.653,-0.656,-0.660,-0.663,-0.666,-0.670,-0.673,-0.676,-0.679, - &-0.683,-0.686,-0.689,-0.692,-0.696,-0.699,-0.702,-0.705,-0.708, - &-0.711,-0.715,-0.718,-0.721,-0.724,-0.727,-0.730,-0.733,-0.736, - &-0.739,-0.742,-0.746,-0.749,-0.752,-0.755,-0.758,-0.761,-0.764, - &-0.767,-0.770,-0.773,-0.776,-0.778,-0.781,-0.784,-0.787,-0.790, - &-0.793,-0.796,-0.799,-0.802,-0.805,-0.807,-0.810,-0.813,-0.816, - &-0.819,-0.821,-0.824,-0.827,-0.830,-0.833,-0.835,-0.838,-0.841, - &-0.843,-0.846,-0.849,-0.852,-0.854,-0.857,-0.860,-0.862,-0.865, - &-0.867,-0.870,-0.873,-0.875,-0.878,-0.880,-0.883,-0.886,-0.888, - &-0.891,-0.893,-0.896,-0.898,-0.901,-0.903,-0.906,-0.908,-0.911, - &-0.913,-0.916,-0.918,-0.921,-0.923,-0.926,-0.928,-0.930,-0.933, - &-0.935,-0.938,-0.940,-0.942,-0.945,-0.947,-0.950,-0.952,-0.954, - &-0.957,-0.959,-0.961,-0.964,-0.966,-0.968,-0.971,-0.973,-0.975, - &-0.977,-0.980,-0.982,-0.984,-0.987,-0.989,-0.991,-0.993,-0.996, - &-0.998,-1.000,-1.002,-1.004,-1.007,-1.009,-1.011,-1.013,-1.015, - &-1.018,-1.020,-1.022,-1.024,-1.026,-1.028,-1.031,-1.033,-1.035, - &-1.037,-1.039,-1.041,-1.043,-1.046,-1.048,-1.050,-1.052,-1.054, - &-1.056,-1.058,-1.060,-1.062,-1.064,-1.066,-1.068,-1.070,-1.072, - &-1.075,-1.077,-1.079,-1.081,-1.083,-1.085,-1.087,-1.089,-1.091, - &-1.093,-1.095,-1.097,-1.099,-1.101,-1.103,-1.105,-1.107,-1.109, - &-1.110,-1.112,-1.114,-1.116,-1.118,-1.120,-1.122,-1.124,-1.126, - &-1.128,-1.130,-1.132,-1.134,-1.136,-1.137,-1.139,-1.141,-1.143, - &-1.145,-1.147,-1.149,-1.151,-1.153,-1.154,-1.156,-1.158,-1.160, - &-1.162,-1.164,-1.166,-1.167,-1.169,-1.171,-1.173,-1.175,-1.176, - &-1.178,-1.180,-1.182,-1.184,-1.186,-1.187,-1.189,-1.191,-1.193, - &-1.195,-1.196,-1.198,-1.200,-1.202,-1.203,-1.205,-1.207,-1.209, - &-1.210,-1.212,-1.214,-1.216,-1.217,-1.219,-1.221,-1.223,-1.224, - &-1.226,-1.228,-1.230,-1.231,-1.233,-1.235,-1.236,-1.238,-1.240, - &-1.241,-1.243,-1.245,-1.247,-1.248,-1.250,-1.252,-1.253,-1.255, - &-1.257,-1.258,-1.260,-1.262,-1.263,-1.265,-1.267,-1.268,-1.270, - &-1.272,-1.273,-1.275,-1.276,-1.278,-1.280,-1.281,-1.283,-1.285, - &-1.286,-1.288,-1.289,-1.291,-1.293,-1.294,-1.296,-1.298,-1.299, - &-1.301,-1.302,-1.304,-1.306,-1.307,-1.309,-1.310,-1.312,-1.313, - &-1.315,-1.317,-1.318,-1.320,-1.321,-1.323,-1.324,-1.326,-1.328, - &-1.329,-1.331,-1.332,-1.334,-1.335,-1.337,-1.338,-1.340,-1.341, - &-1.343,-1.345,-1.346,-1.348,-1.364,-1.379,-1.394,-1.408,-1.422, - &-1.436,-1.450,-1.464,-1.478,-1.491,-1.504,-1.518,-1.531,-1.543, - &-1.556,-1.569,-1.581,-1.593,-1.606,-1.618,-1.630,-1.641,-1.653, - &-1.665,-1.676,-1.688,-1.699,-1.710,-1.722,-1.733,-1.744,-1.755, - &-1.765,-1.776,-1.787,-1.797,-1.808,-1.818,-1.829,-1.839,-1.849, - &-1.859,-1.870,-1.880,-1.890,-1.900,-1.909,-1.919,-1.929,-1.939, - &-1.948,-1.958,-1.968,-1.977,-1.986,-1.996,-2.005,-2.015,-2.024, - &-2.033,-2.042,-2.051,-2.060,-2.070,-2.079,-2.088,-2.096,-2.105, - &-2.114,-2.123,-2.132,-2.141,-2.149,-2.158,-2.167,-2.175,-2.184, - &-2.193,-2.201,-2.210,-2.218,-2.226,-2.235,-2.243,-2.252,-2.260, - &-2.268,-2.277,-2.285,-2.293,-2.301,-2.309,-2.318,-2.326,-2.334, - &-2.342,-2.350,-2.358,-2.366,-2.374,-2.382,-2.390,-2.398,-2.406, - &-2.414,-2.422,-2.429,-2.437,-2.445,-2.453,-2.461,-2.468,-2.476, - &-2.484,-2.492,-2.499,-2.507,-2.515,-2.522,-2.530,-2.537,-2.545, - &-2.553,-2.560,-2.568,-2.575,-2.583,-2.590,-2.598,-2.605,-2.613, - &-2.620,-2.628,-2.635,-2.642,-2.650,-2.657,-2.664,-2.672,-2.679, - &-2.686,-2.694,-2.701,-2.708,-2.716,-2.723,-2.730,-2.737,-2.745, - &-2.752,-2.759,-2.766,-2.773,-2.781,-2.788,-2.795,-2.802,-2.809, - &-2.816,-2.823,-2.831 - & /) -! -! *** NH4Cl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC06M_198 = (/ - &-0.051,-0.108,-0.136,-0.155,-0.170,-0.182,-0.192,-0.200,-0.207, - &-0.214,-0.220,-0.225,-0.230,-0.234,-0.238,-0.242,-0.245,-0.248, - &-0.251,-0.254,-0.256,-0.259,-0.261,-0.263,-0.265,-0.267,-0.269, - &-0.270,-0.272,-0.274,-0.275,-0.276,-0.278,-0.279,-0.280,-0.281, - &-0.283,-0.284,-0.285,-0.286,-0.287,-0.288,-0.289,-0.289,-0.290, - &-0.291,-0.292,-0.293,-0.293,-0.294,-0.295,-0.296,-0.296,-0.297, - &-0.298,-0.298,-0.299,-0.300,-0.300,-0.301,-0.301,-0.302,-0.302, - &-0.303,-0.303,-0.304,-0.304,-0.305,-0.305,-0.306,-0.306,-0.307, - &-0.307,-0.308,-0.308,-0.308,-0.309,-0.309,-0.309,-0.310,-0.310, - &-0.310,-0.311,-0.311,-0.311,-0.312,-0.312,-0.312,-0.312,-0.313, - &-0.313,-0.313,-0.313,-0.313,-0.314,-0.314,-0.314,-0.314,-0.314, - &-0.314,-0.314,-0.314,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315, - &-0.315,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315, - &-0.315,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315, - &-0.315,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315,-0.315, - &-0.315,-0.314,-0.314,-0.314,-0.314,-0.314,-0.314,-0.314,-0.314, - &-0.314,-0.314,-0.314,-0.314,-0.314,-0.314,-0.314,-0.314,-0.313, - &-0.313,-0.313,-0.313,-0.313,-0.313,-0.313,-0.313,-0.313,-0.313, - &-0.313,-0.313,-0.313,-0.313,-0.312,-0.312,-0.312,-0.312,-0.312, - &-0.312,-0.312,-0.312,-0.312,-0.312,-0.312,-0.312,-0.312,-0.312, - &-0.311,-0.311,-0.311,-0.311,-0.311,-0.311,-0.311,-0.311,-0.311, - &-0.311,-0.311,-0.311,-0.311,-0.311,-0.310,-0.310,-0.310,-0.310, - &-0.310,-0.310,-0.310,-0.310,-0.310,-0.310,-0.310,-0.310,-0.310, - &-0.310,-0.309,-0.309,-0.309,-0.309,-0.309,-0.309,-0.309,-0.309, - &-0.309,-0.309,-0.309,-0.309,-0.309,-0.309,-0.309,-0.309,-0.308, - &-0.308,-0.308,-0.308,-0.308,-0.308,-0.308,-0.308,-0.308,-0.308, - &-0.308,-0.308,-0.308,-0.308,-0.308,-0.308,-0.308,-0.308,-0.307, - &-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307, - &-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307, - &-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306, - &-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.306,-0.307, - &-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307, - &-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307,-0.307, - &-0.307,-0.307,-0.307,-0.307,-0.307,-0.308,-0.308,-0.308,-0.308, - &-0.308,-0.308,-0.308,-0.308,-0.308,-0.309,-0.310,-0.311,-0.311, - &-0.312,-0.313,-0.314,-0.315,-0.316,-0.317,-0.319,-0.320,-0.321, - &-0.322,-0.324,-0.325,-0.327,-0.328,-0.330,-0.331,-0.333,-0.335, - &-0.336,-0.338,-0.340,-0.342,-0.344,-0.346,-0.348,-0.350,-0.352, - &-0.354,-0.356,-0.358,-0.360,-0.362,-0.365,-0.367,-0.369,-0.371, - &-0.374,-0.376,-0.379,-0.381,-0.383,-0.386,-0.389,-0.391,-0.394, - &-0.396,-0.399,-0.401,-0.404,-0.407,-0.410,-0.412,-0.415,-0.418, - &-0.421,-0.423,-0.426,-0.429,-0.432,-0.435,-0.438,-0.441,-0.444, - &-0.447,-0.450,-0.453,-0.456,-0.459,-0.462,-0.465,-0.468,-0.471, - &-0.475,-0.478,-0.481,-0.484,-0.487,-0.491,-0.494,-0.497,-0.500, - &-0.504,-0.507,-0.510,-0.514,-0.517,-0.520,-0.524,-0.527,-0.531, - &-0.534,-0.537,-0.541,-0.544,-0.548,-0.551,-0.555,-0.558,-0.562, - &-0.565,-0.569,-0.573,-0.576,-0.580,-0.583,-0.587,-0.591,-0.594, - &-0.598,-0.601,-0.605,-0.609,-0.612,-0.616,-0.620,-0.624,-0.627, - &-0.631,-0.635,-0.639,-0.642,-0.646,-0.650,-0.654,-0.657,-0.661, - &-0.665,-0.669,-0.673,-0.677,-0.680,-0.684,-0.688,-0.692,-0.696, - &-0.700,-0.704,-0.708,-0.711,-0.715,-0.719,-0.723,-0.727,-0.731, - &-0.735,-0.739,-0.743,-0.747,-0.751,-0.755,-0.759,-0.763,-0.767, - &-0.771,-0.775,-0.779 - & /) -! -! *** (2H,SO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC07M_198 = (/ - &-0.103,-0.225,-0.286,-0.330,-0.365,-0.394,-0.419,-0.441,-0.460, - &-0.478,-0.495,-0.510,-0.524,-0.538,-0.550,-0.562,-0.573,-0.584, - &-0.594,-0.604,-0.613,-0.622,-0.631,-0.640,-0.648,-0.656,-0.663, - &-0.671,-0.678,-0.685,-0.692,-0.699,-0.705,-0.711,-0.718,-0.724, - &-0.730,-0.736,-0.741,-0.747,-0.753,-0.758,-0.763,-0.769,-0.774, - &-0.779,-0.784,-0.789,-0.794,-0.798,-0.803,-0.808,-0.812,-0.817, - &-0.821,-0.826,-0.830,-0.834,-0.839,-0.843,-0.847,-0.851,-0.855, - &-0.859,-0.863,-0.867,-0.871,-0.875,-0.879,-0.883,-0.886,-0.890, - &-0.894,-0.897,-0.901,-0.905,-0.908,-0.912,-0.915,-0.919,-0.922, - &-0.926,-0.929,-0.933,-0.936,-0.939,-0.943,-0.946,-0.949,-0.953, - &-0.956,-0.959,-0.962,-0.965,-0.969,-0.972,-0.975,-0.978,-0.981, - &-0.984,-0.987,-0.990,-0.994,-0.997,-1.000,-1.003,-1.006,-1.009, - &-1.012,-1.015,-1.017,-1.020,-1.023,-1.026,-1.029,-1.032,-1.035, - &-1.038,-1.041,-1.043,-1.046,-1.049,-1.052,-1.055,-1.057,-1.060, - &-1.063,-1.066,-1.068,-1.071,-1.074,-1.077,-1.079,-1.082,-1.085, - &-1.087,-1.090,-1.093,-1.095,-1.098,-1.100,-1.103,-1.106,-1.108, - &-1.111,-1.113,-1.116,-1.119,-1.121,-1.124,-1.126,-1.129,-1.131, - &-1.134,-1.136,-1.139,-1.141,-1.144,-1.146,-1.149,-1.151,-1.154, - &-1.156,-1.159,-1.161,-1.163,-1.166,-1.168,-1.171,-1.173,-1.176, - &-1.178,-1.180,-1.183,-1.185,-1.187,-1.190,-1.192,-1.195,-1.197, - &-1.199,-1.202,-1.204,-1.206,-1.209,-1.211,-1.213,-1.216,-1.218, - &-1.220,-1.222,-1.225,-1.227,-1.229,-1.232,-1.234,-1.236,-1.238, - &-1.241,-1.243,-1.245,-1.247,-1.250,-1.252,-1.254,-1.256,-1.258, - &-1.261,-1.263,-1.265,-1.267,-1.270,-1.272,-1.274,-1.276,-1.278, - &-1.280,-1.283,-1.285,-1.287,-1.289,-1.291,-1.293,-1.296,-1.298, - &-1.300,-1.302,-1.304,-1.306,-1.308,-1.311,-1.313,-1.315,-1.317, - &-1.319,-1.321,-1.323,-1.325,-1.328,-1.330,-1.332,-1.334,-1.336, - &-1.338,-1.340,-1.342,-1.344,-1.346,-1.348,-1.350,-1.353,-1.355, - &-1.357,-1.359,-1.361,-1.363,-1.365,-1.367,-1.369,-1.371,-1.373, - &-1.375,-1.377,-1.379,-1.381,-1.383,-1.385,-1.387,-1.389,-1.391, - &-1.393,-1.395,-1.397,-1.399,-1.401,-1.403,-1.405,-1.407,-1.409, - &-1.411,-1.413,-1.415,-1.417,-1.419,-1.421,-1.423,-1.425,-1.427, - &-1.429,-1.431,-1.433,-1.435,-1.437,-1.439,-1.441,-1.443,-1.445, - &-1.447,-1.449,-1.451,-1.453,-1.455,-1.456,-1.458,-1.460,-1.462, - &-1.464,-1.466,-1.468,-1.470,-1.472,-1.474,-1.476,-1.478,-1.480, - &-1.481,-1.483,-1.485,-1.487,-1.489,-1.491,-1.493,-1.495,-1.497, - &-1.499,-1.500,-1.502,-1.504,-1.506,-1.508,-1.510,-1.512,-1.514, - &-1.516,-1.517,-1.519,-1.521,-1.523,-1.525,-1.527,-1.529,-1.531, - &-1.532,-1.534,-1.536,-1.538,-1.540,-1.542,-1.544,-1.545,-1.547, - &-1.549,-1.551,-1.553,-1.555,-1.557,-1.558,-1.560,-1.562,-1.564, - &-1.566,-1.568,-1.569,-1.571,-1.573,-1.575,-1.577,-1.579,-1.580, - &-1.582,-1.584,-1.586,-1.588,-1.589,-1.591,-1.593,-1.595,-1.597, - &-1.598,-1.600,-1.602,-1.604,-1.606,-1.608,-1.609,-1.611,-1.613, - &-1.615,-1.617,-1.618,-1.620,-1.622,-1.624,-1.625,-1.627,-1.629, - &-1.631,-1.633,-1.634,-1.636,-1.655,-1.673,-1.691,-1.708,-1.725, - &-1.742,-1.760,-1.777,-1.793,-1.810,-1.827,-1.844,-1.860,-1.877, - &-1.893,-1.910,-1.926,-1.942,-1.958,-1.974,-1.990,-2.006,-2.022, - &-2.038,-2.054,-2.070,-2.086,-2.101,-2.117,-2.132,-2.148,-2.163, - &-2.179,-2.194,-2.210,-2.225,-2.240,-2.255,-2.271,-2.286,-2.301, - &-2.316,-2.331,-2.346,-2.361,-2.376,-2.391,-2.406,-2.420,-2.435, - &-2.450,-2.465,-2.479,-2.494,-2.509,-2.523,-2.538,-2.553,-2.567, - &-2.582,-2.596,-2.611,-2.625,-2.640,-2.654,-2.668,-2.683,-2.697, - &-2.711,-2.726,-2.740,-2.754,-2.768,-2.783,-2.797,-2.811,-2.825, - &-2.839,-2.853,-2.867,-2.881,-2.895,-2.909,-2.923,-2.937,-2.951, - &-2.965,-2.979,-2.993,-3.007,-3.021,-3.035,-3.049,-3.063,-3.076, - &-3.090,-3.104,-3.118,-3.132,-3.145,-3.159,-3.173,-3.186,-3.200, - &-3.214,-3.227,-3.241,-3.255,-3.268,-3.282,-3.295,-3.309,-3.323, - &-3.336,-3.350,-3.363,-3.377,-3.390,-3.404,-3.417,-3.431,-3.444, - &-3.458,-3.471,-3.484,-3.498,-3.511,-3.525,-3.538,-3.551,-3.565, - &-3.578,-3.591,-3.605,-3.618,-3.631,-3.645,-3.658,-3.671,-3.684, - &-3.698,-3.711,-3.724,-3.737,-3.750,-3.764,-3.777,-3.790,-3.803, - &-3.816,-3.829,-3.843,-3.856,-3.869,-3.882,-3.895,-3.908,-3.921, - &-3.934,-3.947,-3.960 - & /) -! -! *** (H,HSO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC08M_198 = (/ - &-0.047,-0.093,-0.110,-0.119,-0.125,-0.128,-0.130,-0.130,-0.129, - &-0.128,-0.126,-0.123,-0.119,-0.116,-0.111,-0.107,-0.102,-0.096, - &-0.091,-0.085,-0.079,-0.073,-0.066,-0.059,-0.052,-0.045,-0.037, - &-0.030,-0.022,-0.014,-0.006, 0.003, 0.011, 0.020, 0.028, 0.037, - & 0.046, 0.055, 0.065, 0.074, 0.083, 0.093, 0.103, 0.113, 0.122, - & 0.132, 0.142, 0.152, 0.163, 0.173, 0.183, 0.194, 0.204, 0.215, - & 0.225, 0.236, 0.247, 0.258, 0.268, 0.279, 0.290, 0.301, 0.312, - & 0.323, 0.334, 0.346, 0.357, 0.368, 0.380, 0.391, 0.402, 0.414, - & 0.425, 0.437, 0.449, 0.461, 0.472, 0.484, 0.496, 0.508, 0.520, - & 0.532, 0.544, 0.557, 0.569, 0.581, 0.594, 0.606, 0.619, 0.631, - & 0.644, 0.657, 0.669, 0.682, 0.695, 0.708, 0.721, 0.734, 0.747, - & 0.761, 0.774, 0.787, 0.800, 0.814, 0.827, 0.841, 0.854, 0.868, - & 0.881, 0.895, 0.908, 0.922, 0.936, 0.949, 0.963, 0.977, 0.990, - & 1.004, 1.018, 1.031, 1.045, 1.059, 1.072, 1.086, 1.100, 1.114, - & 1.127, 1.141, 1.155, 1.168, 1.182, 1.195, 1.209, 1.223, 1.236, - & 1.250, 1.263, 1.277, 1.290, 1.304, 1.317, 1.331, 1.344, 1.358, - & 1.371, 1.384, 1.398, 1.411, 1.424, 1.437, 1.451, 1.464, 1.477, - & 1.490, 1.503, 1.516, 1.529, 1.542, 1.555, 1.568, 1.581, 1.594, - & 1.607, 1.620, 1.633, 1.646, 1.659, 1.671, 1.684, 1.697, 1.709, - & 1.722, 1.735, 1.747, 1.760, 1.772, 1.785, 1.798, 1.810, 1.822, - & 1.835, 1.847, 1.860, 1.872, 1.884, 1.896, 1.909, 1.921, 1.933, - & 1.945, 1.957, 1.970, 1.982, 1.994, 2.006, 2.018, 2.030, 2.042, - & 2.054, 2.065, 2.077, 2.089, 2.101, 2.113, 2.125, 2.136, 2.148, - & 2.160, 2.171, 2.183, 2.195, 2.206, 2.218, 2.229, 2.241, 2.252, - & 2.264, 2.275, 2.286, 2.298, 2.309, 2.320, 2.332, 2.343, 2.354, - & 2.365, 2.377, 2.388, 2.399, 2.410, 2.421, 2.432, 2.443, 2.454, - & 2.465, 2.476, 2.487, 2.498, 2.509, 2.520, 2.531, 2.541, 2.552, - & 2.563, 2.574, 2.584, 2.595, 2.606, 2.616, 2.627, 2.638, 2.648, - & 2.659, 2.669, 2.680, 2.690, 2.701, 2.711, 2.722, 2.732, 2.742, - & 2.753, 2.763, 2.773, 2.784, 2.794, 2.804, 2.814, 2.825, 2.835, - & 2.845, 2.855, 2.865, 2.875, 2.885, 2.895, 2.905, 2.915, 2.925, - & 2.935, 2.945, 2.955, 2.965, 2.975, 2.985, 2.995, 3.005, 3.014, - & 3.024, 3.034, 3.044, 3.053, 3.063, 3.073, 3.082, 3.092, 3.102, - & 3.111, 3.121, 3.130, 3.140, 3.149, 3.159, 3.168, 3.178, 3.187, - & 3.197, 3.206, 3.215, 3.225, 3.234, 3.243, 3.253, 3.262, 3.271, - & 3.280, 3.290, 3.299, 3.308, 3.317, 3.326, 3.336, 3.345, 3.354, - & 3.363, 3.372, 3.381, 3.390, 3.399, 3.408, 3.417, 3.426, 3.435, - & 3.444, 3.453, 3.462, 3.470, 3.479, 3.488, 3.497, 3.506, 3.514, - & 3.523, 3.532, 3.541, 3.549, 3.558, 3.567, 3.575, 3.584, 3.593, - & 3.601, 3.610, 3.619, 3.627, 3.636, 3.644, 3.653, 3.661, 3.670, - & 3.678, 3.687, 3.695, 3.704, 3.712, 3.720, 3.729, 3.737, 3.745, - & 3.754, 3.762, 3.770, 3.779, 3.787, 3.795, 3.803, 3.812, 3.820, - & 3.828, 3.836, 3.844, 3.852, 3.861, 3.869, 3.877, 3.885, 3.893, - & 3.901, 3.909, 3.917, 3.925, 3.933, 3.941, 3.949, 3.957, 3.965, - & 3.973, 3.981, 3.989, 3.997, 4.081, 4.158, 4.233, 4.307, 4.380, - & 4.452, 4.522, 4.592, 4.660, 4.727, 4.793, 4.859, 4.923, 4.986, - & 5.048, 5.110, 5.171, 5.230, 5.289, 5.347, 5.405, 5.461, 5.517, - & 5.572, 5.626, 5.680, 5.733, 5.785, 5.837, 5.888, 5.938, 5.988, - & 6.037, 6.085, 6.133, 6.181, 6.228, 6.274, 6.320, 6.365, 6.410, - & 6.454, 6.498, 6.541, 6.584, 6.626, 6.668, 6.710, 6.751, 6.792, - & 6.832, 6.872, 6.911, 6.950, 6.989, 7.027, 7.065, 7.102, 7.139, - & 7.176, 7.212, 7.248, 7.284, 7.319, 7.354, 7.389, 7.424, 7.458, - & 7.491, 7.525, 7.558, 7.591, 7.623, 7.656, 7.688, 7.719, 7.751, - & 7.782, 7.813, 7.844, 7.874, 7.904, 7.934, 7.964, 7.993, 8.022, - & 8.051, 8.080, 8.108, 8.137, 8.165, 8.192, 8.220, 8.247, 8.274, - & 8.301, 8.328, 8.354, 8.381, 8.407, 8.433, 8.458, 8.484, 8.509, - & 8.534, 8.559, 8.584, 8.609, 8.633, 8.657, 8.681, 8.705, 8.729, - & 8.752, 8.776, 8.799, 8.822, 8.845, 8.868, 8.890, 8.913, 8.935, - & 8.957, 8.979, 9.001, 9.022, 9.044, 9.065, 9.086, 9.107, 9.128, - & 9.149, 9.170, 9.190, 9.211, 9.231, 9.251, 9.271, 9.291, 9.311, - & 9.330, 9.350, 9.369, 9.388, 9.407, 9.426, 9.445, 9.464, 9.483, - & 9.501, 9.520, 9.538, 9.556, 9.574, 9.592, 9.610, 9.628, 9.645, - & 9.663, 9.680, 9.698 - & /) -! -! *** NH4HSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC09M_198 = (/ - &-0.050,-0.107,-0.134,-0.153,-0.167,-0.179,-0.189,-0.197,-0.204, - &-0.211,-0.216,-0.221,-0.226,-0.230,-0.234,-0.237,-0.240,-0.243, - &-0.245,-0.247,-0.249,-0.251,-0.252,-0.254,-0.255,-0.256,-0.256, - &-0.257,-0.257,-0.258,-0.258,-0.258,-0.258,-0.258,-0.257,-0.257, - &-0.256,-0.255,-0.255,-0.254,-0.253,-0.252,-0.250,-0.249,-0.248, - &-0.246,-0.245,-0.243,-0.242,-0.240,-0.238,-0.236,-0.234,-0.232, - &-0.230,-0.228,-0.226,-0.224,-0.221,-0.219,-0.217,-0.214,-0.212, - &-0.209,-0.207,-0.204,-0.201,-0.199,-0.196,-0.193,-0.190,-0.188, - &-0.185,-0.182,-0.179,-0.176,-0.173,-0.170,-0.167,-0.163,-0.160, - &-0.157,-0.154,-0.150,-0.147,-0.144,-0.140,-0.137,-0.133,-0.130, - &-0.126,-0.123,-0.119,-0.116,-0.112,-0.108,-0.104,-0.101,-0.097, - &-0.093,-0.089,-0.086,-0.082,-0.078,-0.074,-0.070,-0.066,-0.062, - &-0.058,-0.054,-0.050,-0.046,-0.042,-0.038,-0.034,-0.030,-0.026, - &-0.022,-0.018,-0.014,-0.010,-0.006,-0.002, 0.002, 0.006, 0.010, - & 0.014, 0.018, 0.022, 0.026, 0.030, 0.034, 0.038, 0.042, 0.046, - & 0.050, 0.054, 0.058, 0.062, 0.066, 0.070, 0.074, 0.078, 0.082, - & 0.086, 0.090, 0.094, 0.098, 0.102, 0.106, 0.110, 0.114, 0.117, - & 0.121, 0.125, 0.129, 0.133, 0.137, 0.140, 0.144, 0.148, 0.152, - & 0.156, 0.159, 0.163, 0.167, 0.171, 0.174, 0.178, 0.182, 0.186, - & 0.189, 0.193, 0.197, 0.200, 0.204, 0.208, 0.211, 0.215, 0.219, - & 0.222, 0.226, 0.229, 0.233, 0.237, 0.240, 0.244, 0.247, 0.251, - & 0.254, 0.258, 0.261, 0.265, 0.268, 0.272, 0.275, 0.279, 0.282, - & 0.286, 0.289, 0.293, 0.296, 0.299, 0.303, 0.306, 0.309, 0.313, - & 0.316, 0.320, 0.323, 0.326, 0.330, 0.333, 0.336, 0.339, 0.343, - & 0.346, 0.349, 0.353, 0.356, 0.359, 0.362, 0.366, 0.369, 0.372, - & 0.375, 0.378, 0.382, 0.385, 0.388, 0.391, 0.394, 0.397, 0.401, - & 0.404, 0.407, 0.410, 0.413, 0.416, 0.419, 0.422, 0.425, 0.428, - & 0.431, 0.434, 0.438, 0.441, 0.444, 0.447, 0.450, 0.453, 0.456, - & 0.459, 0.462, 0.465, 0.467, 0.470, 0.473, 0.476, 0.479, 0.482, - & 0.485, 0.488, 0.491, 0.494, 0.497, 0.500, 0.502, 0.505, 0.508, - & 0.511, 0.514, 0.517, 0.520, 0.522, 0.525, 0.528, 0.531, 0.534, - & 0.536, 0.539, 0.542, 0.545, 0.547, 0.550, 0.553, 0.556, 0.558, - & 0.561, 0.564, 0.567, 0.569, 0.572, 0.575, 0.577, 0.580, 0.583, - & 0.585, 0.588, 0.591, 0.593, 0.596, 0.599, 0.601, 0.604, 0.607, - & 0.609, 0.612, 0.614, 0.617, 0.620, 0.622, 0.625, 0.627, 0.630, - & 0.633, 0.635, 0.638, 0.640, 0.643, 0.645, 0.648, 0.650, 0.653, - & 0.655, 0.658, 0.660, 0.663, 0.665, 0.668, 0.670, 0.673, 0.675, - & 0.678, 0.680, 0.683, 0.685, 0.687, 0.690, 0.692, 0.695, 0.697, - & 0.700, 0.702, 0.704, 0.707, 0.709, 0.711, 0.714, 0.716, 0.719, - & 0.721, 0.723, 0.726, 0.728, 0.730, 0.733, 0.735, 0.737, 0.740, - & 0.742, 0.744, 0.747, 0.749, 0.751, 0.754, 0.756, 0.758, 0.760, - & 0.763, 0.765, 0.767, 0.769, 0.772, 0.774, 0.776, 0.778, 0.781, - & 0.783, 0.785, 0.787, 0.790, 0.792, 0.794, 0.796, 0.798, 0.801, - & 0.803, 0.805, 0.807, 0.809, 0.811, 0.814, 0.816, 0.818, 0.820, - & 0.822, 0.824, 0.827, 0.829, 0.851, 0.872, 0.892, 0.912, 0.932, - & 0.951, 0.969, 0.988, 1.006, 1.024, 1.041, 1.058, 1.075, 1.091, - & 1.107, 1.123, 1.139, 1.154, 1.169, 1.184, 1.199, 1.213, 1.227, - & 1.241, 1.255, 1.268, 1.282, 1.295, 1.307, 1.320, 1.332, 1.345, - & 1.357, 1.368, 1.380, 1.392, 1.403, 1.414, 1.425, 1.436, 1.446, - & 1.457, 1.467, 1.478, 1.488, 1.497, 1.507, 1.517, 1.526, 1.536, - & 1.545, 1.554, 1.563, 1.572, 1.580, 1.589, 1.597, 1.606, 1.614, - & 1.622, 1.630, 1.638, 1.646, 1.653, 1.661, 1.668, 1.676, 1.683, - & 1.690, 1.697, 1.704, 1.711, 1.718, 1.724, 1.731, 1.737, 1.744, - & 1.750, 1.756, 1.762, 1.769, 1.775, 1.780, 1.786, 1.792, 1.798, - & 1.803, 1.809, 1.814, 1.820, 1.825, 1.830, 1.835, 1.840, 1.845, - & 1.850, 1.855, 1.860, 1.865, 1.870, 1.874, 1.879, 1.883, 1.888, - & 1.892, 1.896, 1.901, 1.905, 1.909, 1.913, 1.917, 1.921, 1.925, - & 1.929, 1.933, 1.936, 1.940, 1.944, 1.947, 1.951, 1.955, 1.958, - & 1.961, 1.965, 1.968, 1.971, 1.975, 1.978, 1.981, 1.984, 1.987, - & 1.990, 1.993, 1.996, 1.999, 2.001, 2.004, 2.007, 2.010, 2.012, - & 2.015, 2.017, 2.020, 2.022, 2.025, 2.027, 2.030, 2.032, 2.034, - & 2.037, 2.039, 2.041, 2.043, 2.045, 2.047, 2.049, 2.051, 2.053, - & 2.055, 2.057, 2.059 - & /) -! -! *** (H,NO3) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC10M_198 = (/ - &-0.049,-0.102,-0.125,-0.140,-0.150,-0.158,-0.163,-0.168,-0.171, - &-0.174,-0.176,-0.178,-0.179,-0.179,-0.179,-0.179,-0.179,-0.179, - &-0.178,-0.177,-0.176,-0.175,-0.174,-0.172,-0.171,-0.169,-0.168, - &-0.166,-0.164,-0.162,-0.160,-0.158,-0.156,-0.154,-0.152,-0.150, - &-0.148,-0.146,-0.144,-0.141,-0.139,-0.137,-0.135,-0.132,-0.130, - &-0.128,-0.126,-0.123,-0.121,-0.119,-0.116,-0.114,-0.112,-0.109, - &-0.107,-0.105,-0.102,-0.100,-0.098,-0.095,-0.093,-0.091,-0.088, - &-0.086,-0.084,-0.081,-0.079,-0.077,-0.074,-0.072,-0.070,-0.067, - &-0.065,-0.062,-0.060,-0.057,-0.055,-0.052,-0.050,-0.048,-0.045, - &-0.042,-0.040,-0.037,-0.035,-0.032,-0.030,-0.027,-0.024,-0.022, - &-0.019,-0.016,-0.013,-0.011,-0.008,-0.005,-0.002, 0.001, 0.003, - & 0.006, 0.009, 0.012, 0.015, 0.018, 0.021, 0.024, 0.027, 0.030, - & 0.033, 0.036, 0.039, 0.042, 0.045, 0.048, 0.051, 0.054, 0.057, - & 0.060, 0.063, 0.066, 0.069, 0.072, 0.075, 0.078, 0.081, 0.084, - & 0.087, 0.091, 0.094, 0.097, 0.100, 0.103, 0.106, 0.109, 0.112, - & 0.115, 0.118, 0.121, 0.124, 0.127, 0.130, 0.133, 0.136, 0.139, - & 0.142, 0.146, 0.149, 0.152, 0.155, 0.158, 0.161, 0.164, 0.167, - & 0.170, 0.173, 0.176, 0.179, 0.182, 0.185, 0.188, 0.191, 0.193, - & 0.196, 0.199, 0.202, 0.205, 0.208, 0.211, 0.214, 0.217, 0.220, - & 0.223, 0.226, 0.229, 0.232, 0.235, 0.237, 0.240, 0.243, 0.246, - & 0.249, 0.252, 0.255, 0.258, 0.260, 0.263, 0.266, 0.269, 0.272, - & 0.275, 0.278, 0.280, 0.283, 0.286, 0.289, 0.292, 0.294, 0.297, - & 0.300, 0.303, 0.306, 0.308, 0.311, 0.314, 0.317, 0.319, 0.322, - & 0.325, 0.328, 0.330, 0.333, 0.336, 0.339, 0.341, 0.344, 0.347, - & 0.349, 0.352, 0.355, 0.358, 0.360, 0.363, 0.366, 0.368, 0.371, - & 0.374, 0.376, 0.379, 0.382, 0.384, 0.387, 0.389, 0.392, 0.395, - & 0.397, 0.400, 0.403, 0.405, 0.408, 0.410, 0.413, 0.415, 0.418, - & 0.421, 0.423, 0.426, 0.428, 0.431, 0.433, 0.436, 0.438, 0.441, - & 0.444, 0.446, 0.449, 0.451, 0.454, 0.456, 0.459, 0.461, 0.464, - & 0.466, 0.469, 0.471, 0.473, 0.476, 0.478, 0.481, 0.483, 0.486, - & 0.488, 0.491, 0.493, 0.495, 0.498, 0.500, 0.503, 0.505, 0.508, - & 0.510, 0.512, 0.515, 0.517, 0.519, 0.522, 0.524, 0.527, 0.529, - & 0.531, 0.534, 0.536, 0.538, 0.541, 0.543, 0.545, 0.548, 0.550, - & 0.552, 0.555, 0.557, 0.559, 0.562, 0.564, 0.566, 0.568, 0.571, - & 0.573, 0.575, 0.578, 0.580, 0.582, 0.584, 0.587, 0.589, 0.591, - & 0.593, 0.595, 0.598, 0.600, 0.602, 0.604, 0.607, 0.609, 0.611, - & 0.613, 0.615, 0.618, 0.620, 0.622, 0.624, 0.626, 0.628, 0.631, - & 0.633, 0.635, 0.637, 0.639, 0.641, 0.644, 0.646, 0.648, 0.650, - & 0.652, 0.654, 0.656, 0.658, 0.660, 0.663, 0.665, 0.667, 0.669, - & 0.671, 0.673, 0.675, 0.677, 0.679, 0.681, 0.683, 0.685, 0.688, - & 0.690, 0.692, 0.694, 0.696, 0.698, 0.700, 0.702, 0.704, 0.706, - & 0.708, 0.710, 0.712, 0.714, 0.716, 0.718, 0.720, 0.722, 0.724, - & 0.726, 0.728, 0.730, 0.732, 0.734, 0.736, 0.738, 0.740, 0.742, - & 0.743, 0.745, 0.747, 0.749, 0.751, 0.753, 0.755, 0.757, 0.759, - & 0.761, 0.763, 0.765, 0.767, 0.787, 0.805, 0.824, 0.841, 0.859, - & 0.876, 0.893, 0.909, 0.926, 0.942, 0.957, 0.973, 0.988, 1.003, - & 1.017, 1.032, 1.046, 1.060, 1.073, 1.087, 1.100, 1.113, 1.126, - & 1.138, 1.151, 1.163, 1.175, 1.187, 1.198, 1.210, 1.221, 1.232, - & 1.243, 1.253, 1.264, 1.274, 1.285, 1.295, 1.305, 1.314, 1.324, - & 1.333, 1.343, 1.352, 1.361, 1.370, 1.378, 1.387, 1.395, 1.404, - & 1.412, 1.420, 1.428, 1.436, 1.444, 1.451, 1.459, 1.466, 1.474, - & 1.481, 1.488, 1.495, 1.502, 1.509, 1.515, 1.522, 1.529, 1.535, - & 1.541, 1.548, 1.554, 1.560, 1.566, 1.572, 1.577, 1.583, 1.589, - & 1.594, 1.600, 1.605, 1.610, 1.616, 1.621, 1.626, 1.631, 1.636, - & 1.641, 1.645, 1.650, 1.655, 1.659, 1.664, 1.668, 1.673, 1.677, - & 1.681, 1.685, 1.690, 1.694, 1.698, 1.702, 1.705, 1.709, 1.713, - & 1.717, 1.720, 1.724, 1.728, 1.731, 1.734, 1.738, 1.741, 1.744, - & 1.748, 1.751, 1.754, 1.757, 1.760, 1.763, 1.766, 1.769, 1.772, - & 1.775, 1.777, 1.780, 1.783, 1.785, 1.788, 1.790, 1.793, 1.795, - & 1.798, 1.800, 1.802, 1.805, 1.807, 1.809, 1.811, 1.813, 1.815, - & 1.817, 1.819, 1.821, 1.823, 1.825, 1.827, 1.829, 1.831, 1.832, - & 1.834, 1.836, 1.838, 1.839, 1.841, 1.842, 1.844, 1.845, 1.847, - & 1.848, 1.849, 1.851 - & /) -! -! *** (H,Cl) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC11M_198 = (/ - &-0.048,-0.094,-0.112,-0.122,-0.128,-0.131,-0.133,-0.133,-0.133, - &-0.131,-0.129,-0.126,-0.123,-0.119,-0.116,-0.111,-0.107,-0.102, - &-0.097,-0.092,-0.086,-0.080,-0.075,-0.069,-0.062,-0.056,-0.050, - &-0.043,-0.037,-0.030,-0.023,-0.016,-0.009,-0.002, 0.005, 0.012, - & 0.020, 0.027, 0.035, 0.042, 0.050, 0.057, 0.065, 0.072, 0.080, - & 0.088, 0.095, 0.103, 0.111, 0.119, 0.126, 0.134, 0.142, 0.150, - & 0.158, 0.166, 0.174, 0.182, 0.190, 0.198, 0.206, 0.214, 0.222, - & 0.230, 0.238, 0.246, 0.254, 0.262, 0.270, 0.278, 0.287, 0.295, - & 0.303, 0.311, 0.320, 0.328, 0.336, 0.345, 0.353, 0.362, 0.370, - & 0.379, 0.387, 0.396, 0.405, 0.413, 0.422, 0.431, 0.440, 0.449, - & 0.457, 0.466, 0.475, 0.484, 0.494, 0.503, 0.512, 0.521, 0.530, - & 0.540, 0.549, 0.558, 0.568, 0.577, 0.587, 0.596, 0.606, 0.615, - & 0.625, 0.634, 0.644, 0.653, 0.663, 0.673, 0.682, 0.692, 0.702, - & 0.711, 0.721, 0.731, 0.740, 0.750, 0.760, 0.769, 0.779, 0.789, - & 0.798, 0.808, 0.818, 0.827, 0.837, 0.847, 0.856, 0.866, 0.875, - & 0.885, 0.895, 0.904, 0.914, 0.923, 0.933, 0.942, 0.952, 0.961, - & 0.971, 0.980, 0.990, 0.999, 1.009, 1.018, 1.027, 1.037, 1.046, - & 1.055, 1.065, 1.074, 1.083, 1.093, 1.102, 1.111, 1.120, 1.130, - & 1.139, 1.148, 1.157, 1.166, 1.175, 1.184, 1.194, 1.203, 1.212, - & 1.221, 1.230, 1.239, 1.248, 1.257, 1.266, 1.275, 1.283, 1.292, - & 1.301, 1.310, 1.319, 1.328, 1.336, 1.345, 1.354, 1.363, 1.372, - & 1.380, 1.389, 1.398, 1.406, 1.415, 1.423, 1.432, 1.441, 1.449, - & 1.458, 1.466, 1.475, 1.483, 1.492, 1.500, 1.509, 1.517, 1.526, - & 1.534, 1.542, 1.551, 1.559, 1.567, 1.576, 1.584, 1.592, 1.600, - & 1.609, 1.617, 1.625, 1.633, 1.641, 1.649, 1.658, 1.666, 1.674, - & 1.682, 1.690, 1.698, 1.706, 1.714, 1.722, 1.730, 1.738, 1.746, - & 1.754, 1.762, 1.769, 1.777, 1.785, 1.793, 1.801, 1.809, 1.816, - & 1.824, 1.832, 1.840, 1.847, 1.855, 1.863, 1.870, 1.878, 1.886, - & 1.893, 1.901, 1.908, 1.916, 1.924, 1.931, 1.939, 1.946, 1.954, - & 1.961, 1.969, 1.976, 1.983, 1.991, 1.998, 2.006, 2.013, 2.020, - & 2.028, 2.035, 2.042, 2.049, 2.057, 2.064, 2.071, 2.078, 2.086, - & 2.093, 2.100, 2.107, 2.114, 2.122, 2.129, 2.136, 2.143, 2.150, - & 2.157, 2.164, 2.171, 2.178, 2.185, 2.192, 2.199, 2.206, 2.213, - & 2.220, 2.227, 2.234, 2.241, 2.247, 2.254, 2.261, 2.268, 2.275, - & 2.282, 2.288, 2.295, 2.302, 2.309, 2.315, 2.322, 2.329, 2.336, - & 2.342, 2.349, 2.356, 2.362, 2.369, 2.376, 2.382, 2.389, 2.395, - & 2.402, 2.408, 2.415, 2.421, 2.428, 2.434, 2.441, 2.447, 2.454, - & 2.460, 2.467, 2.473, 2.480, 2.486, 2.492, 2.499, 2.505, 2.512, - & 2.518, 2.524, 2.531, 2.537, 2.543, 2.549, 2.556, 2.562, 2.568, - & 2.574, 2.581, 2.587, 2.593, 2.599, 2.605, 2.612, 2.618, 2.624, - & 2.630, 2.636, 2.642, 2.648, 2.654, 2.660, 2.666, 2.672, 2.679, - & 2.685, 2.691, 2.697, 2.703, 2.709, 2.714, 2.720, 2.726, 2.732, - & 2.738, 2.744, 2.750, 2.756, 2.762, 2.768, 2.774, 2.779, 2.785, - & 2.791, 2.797, 2.803, 2.808, 2.814, 2.820, 2.826, 2.832, 2.837, - & 2.843, 2.849, 2.854, 2.860, 2.921, 2.976, 3.031, 3.084, 3.137, - & 3.189, 3.240, 3.290, 3.339, 3.387, 3.435, 3.482, 3.528, 3.574, - & 3.619, 3.663, 3.706, 3.749, 3.792, 3.833, 3.874, 3.915, 3.955, - & 3.994, 4.033, 4.072, 4.109, 4.147, 4.184, 4.220, 4.256, 4.291, - & 4.327, 4.361, 4.395, 4.429, 4.462, 4.495, 4.528, 4.560, 4.592, - & 4.623, 4.654, 4.685, 4.716, 4.746, 4.775, 4.805, 4.834, 4.862, - & 4.891, 4.919, 4.947, 4.974, 5.001, 5.028, 5.055, 5.081, 5.107, - & 5.133, 5.159, 5.184, 5.209, 5.234, 5.259, 5.283, 5.307, 5.331, - & 5.355, 5.378, 5.401, 5.424, 5.447, 5.469, 5.492, 5.514, 5.536, - & 5.557, 5.579, 5.600, 5.621, 5.642, 5.663, 5.684, 5.704, 5.724, - & 5.744, 5.764, 5.784, 5.803, 5.823, 5.842, 5.861, 5.880, 5.898, - & 5.917, 5.935, 5.953, 5.972, 5.989, 6.007, 6.025, 6.042, 6.060, - & 6.077, 6.094, 6.111, 6.128, 6.144, 6.161, 6.177, 6.194, 6.210, - & 6.226, 6.242, 6.257, 6.273, 6.289, 6.304, 6.319, 6.334, 6.350, - & 6.365, 6.379, 6.394, 6.409, 6.423, 6.438, 6.452, 6.466, 6.480, - & 6.494, 6.508, 6.522, 6.536, 6.549, 6.563, 6.576, 6.589, 6.602, - & 6.616, 6.629, 6.641, 6.654, 6.667, 6.680, 6.692, 6.705, 6.717, - & 6.729, 6.742, 6.754, 6.766, 6.778, 6.790, 6.801, 6.813, 6.825, - & 6.836, 6.848, 6.859 - & /) -! -! *** NaHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC12M_198 = (/ - &-0.049,-0.101,-0.125,-0.140,-0.151,-0.159,-0.166,-0.171,-0.175, - &-0.178,-0.181,-0.183,-0.184,-0.185,-0.186,-0.186,-0.186,-0.186, - &-0.186,-0.185,-0.184,-0.183,-0.181,-0.180,-0.178,-0.176,-0.174, - &-0.172,-0.170,-0.167,-0.165,-0.162,-0.159,-0.156,-0.153,-0.150, - &-0.147,-0.144,-0.140,-0.137,-0.133,-0.130,-0.126,-0.122,-0.118, - &-0.114,-0.110,-0.106,-0.102,-0.098,-0.094,-0.090,-0.085,-0.081, - &-0.076,-0.072,-0.068,-0.063,-0.058,-0.054,-0.049,-0.044,-0.040, - &-0.035,-0.030,-0.025,-0.020,-0.015,-0.010,-0.005, 0.000, 0.005, - & 0.010, 0.015, 0.020, 0.026, 0.031, 0.036, 0.042, 0.047, 0.052, - & 0.058, 0.063, 0.069, 0.075, 0.080, 0.086, 0.092, 0.097, 0.103, - & 0.109, 0.115, 0.121, 0.127, 0.133, 0.139, 0.145, 0.151, 0.157, - & 0.163, 0.169, 0.175, 0.181, 0.188, 0.194, 0.200, 0.206, 0.213, - & 0.219, 0.225, 0.232, 0.238, 0.244, 0.251, 0.257, 0.264, 0.270, - & 0.276, 0.283, 0.289, 0.296, 0.302, 0.308, 0.315, 0.321, 0.328, - & 0.334, 0.341, 0.347, 0.353, 0.360, 0.366, 0.373, 0.379, 0.385, - & 0.392, 0.398, 0.404, 0.411, 0.417, 0.423, 0.430, 0.436, 0.442, - & 0.448, 0.455, 0.461, 0.467, 0.473, 0.480, 0.486, 0.492, 0.498, - & 0.504, 0.510, 0.517, 0.523, 0.529, 0.535, 0.541, 0.547, 0.553, - & 0.559, 0.565, 0.571, 0.577, 0.583, 0.589, 0.595, 0.601, 0.607, - & 0.613, 0.619, 0.625, 0.631, 0.637, 0.642, 0.648, 0.654, 0.660, - & 0.666, 0.671, 0.677, 0.683, 0.689, 0.694, 0.700, 0.706, 0.712, - & 0.717, 0.723, 0.729, 0.734, 0.740, 0.746, 0.751, 0.757, 0.762, - & 0.768, 0.773, 0.779, 0.785, 0.790, 0.796, 0.801, 0.807, 0.812, - & 0.817, 0.823, 0.828, 0.834, 0.839, 0.845, 0.850, 0.855, 0.861, - & 0.866, 0.871, 0.877, 0.882, 0.887, 0.893, 0.898, 0.903, 0.908, - & 0.914, 0.919, 0.924, 0.929, 0.934, 0.939, 0.945, 0.950, 0.955, - & 0.960, 0.965, 0.970, 0.975, 0.980, 0.986, 0.991, 0.996, 1.001, - & 1.006, 1.011, 1.016, 1.021, 1.026, 1.031, 1.036, 1.041, 1.046, - & 1.050, 1.055, 1.060, 1.065, 1.070, 1.075, 1.080, 1.085, 1.089, - & 1.094, 1.099, 1.104, 1.109, 1.114, 1.118, 1.123, 1.128, 1.133, - & 1.137, 1.142, 1.147, 1.151, 1.156, 1.161, 1.165, 1.170, 1.175, - & 1.179, 1.184, 1.189, 1.193, 1.198, 1.203, 1.207, 1.212, 1.216, - & 1.221, 1.225, 1.230, 1.234, 1.239, 1.243, 1.248, 1.252, 1.257, - & 1.261, 1.266, 1.270, 1.275, 1.279, 1.284, 1.288, 1.293, 1.297, - & 1.301, 1.306, 1.310, 1.314, 1.319, 1.323, 1.327, 1.332, 1.336, - & 1.340, 1.345, 1.349, 1.353, 1.358, 1.362, 1.366, 1.370, 1.375, - & 1.379, 1.383, 1.387, 1.391, 1.396, 1.400, 1.404, 1.408, 1.412, - & 1.417, 1.421, 1.425, 1.429, 1.433, 1.437, 1.441, 1.445, 1.450, - & 1.454, 1.458, 1.462, 1.466, 1.470, 1.474, 1.478, 1.482, 1.486, - & 1.490, 1.494, 1.498, 1.502, 1.506, 1.510, 1.514, 1.518, 1.522, - & 1.526, 1.530, 1.534, 1.538, 1.542, 1.546, 1.549, 1.553, 1.557, - & 1.561, 1.565, 1.569, 1.573, 1.577, 1.580, 1.584, 1.588, 1.592, - & 1.596, 1.600, 1.603, 1.607, 1.611, 1.615, 1.618, 1.622, 1.626, - & 1.630, 1.633, 1.637, 1.641, 1.645, 1.648, 1.652, 1.656, 1.660, - & 1.663, 1.667, 1.671, 1.674, 1.714, 1.749, 1.784, 1.819, 1.853, - & 1.886, 1.919, 1.951, 1.982, 2.014, 2.044, 2.074, 2.104, 2.133, - & 2.162, 2.190, 2.218, 2.246, 2.273, 2.300, 2.326, 2.352, 2.377, - & 2.403, 2.427, 2.452, 2.476, 2.500, 2.523, 2.547, 2.569, 2.592, - & 2.614, 2.636, 2.658, 2.679, 2.700, 2.721, 2.742, 2.762, 2.782, - & 2.802, 2.822, 2.841, 2.860, 2.879, 2.898, 2.916, 2.934, 2.952, - & 2.970, 2.988, 3.005, 3.022, 3.039, 3.056, 3.073, 3.089, 3.105, - & 3.121, 3.137, 3.153, 3.168, 3.184, 3.199, 3.214, 3.229, 3.244, - & 3.258, 3.273, 3.287, 3.301, 3.315, 3.329, 3.342, 3.356, 3.369, - & 3.382, 3.395, 3.408, 3.421, 3.434, 3.446, 3.459, 3.471, 3.483, - & 3.496, 3.507, 3.519, 3.531, 3.543, 3.554, 3.566, 3.577, 3.588, - & 3.599, 3.610, 3.621, 3.632, 3.642, 3.653, 3.663, 3.674, 3.684, - & 3.694, 3.704, 3.714, 3.724, 3.734, 3.743, 3.753, 3.762, 3.772, - & 3.781, 3.790, 3.800, 3.809, 3.818, 3.826, 3.835, 3.844, 3.853, - & 3.861, 3.870, 3.878, 3.887, 3.895, 3.903, 3.911, 3.919, 3.927, - & 3.935, 3.943, 3.951, 3.959, 3.966, 3.974, 3.981, 3.989, 3.996, - & 4.004, 4.011, 4.018, 4.025, 4.032, 4.039, 4.046, 4.053, 4.060, - & 4.067, 4.073, 4.080, 4.087, 4.093, 4.100, 4.106, 4.113, 4.119, - & 4.125, 4.131, 4.138 - & /) -! -! *** (NH4)3H(SO4)2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC13M_198 = (/ - &-0.082,-0.178,-0.227,-0.261,-0.288,-0.311,-0.330,-0.347,-0.363, - &-0.377,-0.389,-0.401,-0.412,-0.422,-0.431,-0.440,-0.449,-0.457, - &-0.464,-0.471,-0.478,-0.485,-0.491,-0.497,-0.503,-0.508,-0.514, - &-0.519,-0.524,-0.529,-0.533,-0.538,-0.542,-0.546,-0.550,-0.554, - &-0.557,-0.561,-0.565,-0.568,-0.571,-0.574,-0.578,-0.581,-0.583, - &-0.586,-0.589,-0.592,-0.594,-0.597,-0.599,-0.602,-0.604,-0.606, - &-0.608,-0.610,-0.612,-0.614,-0.616,-0.618,-0.620,-0.622,-0.624, - &-0.625,-0.627,-0.629,-0.630,-0.632,-0.633,-0.635,-0.636,-0.637, - &-0.639,-0.640,-0.641,-0.643,-0.644,-0.645,-0.646,-0.647,-0.648, - &-0.649,-0.650,-0.651,-0.652,-0.653,-0.654,-0.655,-0.656,-0.657, - &-0.658,-0.658,-0.659,-0.660,-0.661,-0.661,-0.662,-0.663,-0.663, - &-0.664,-0.665,-0.665,-0.666,-0.666,-0.667,-0.667,-0.668,-0.668, - &-0.669,-0.669,-0.670,-0.670,-0.671,-0.671,-0.671,-0.672,-0.672, - &-0.673,-0.673,-0.673,-0.674,-0.674,-0.674,-0.675,-0.675,-0.675, - &-0.676,-0.676,-0.676,-0.676,-0.677,-0.677,-0.677,-0.677,-0.678, - &-0.678,-0.678,-0.679,-0.679,-0.679,-0.679,-0.679,-0.680,-0.680, - &-0.680,-0.680,-0.681,-0.681,-0.681,-0.681,-0.681,-0.682,-0.682, - &-0.682,-0.682,-0.682,-0.683,-0.683,-0.683,-0.683,-0.683,-0.684, - &-0.684,-0.684,-0.684,-0.684,-0.685,-0.685,-0.685,-0.685,-0.685, - &-0.686,-0.686,-0.686,-0.686,-0.686,-0.687,-0.687,-0.687,-0.687, - &-0.687,-0.687,-0.688,-0.688,-0.688,-0.688,-0.688,-0.689,-0.689, - &-0.689,-0.689,-0.689,-0.690,-0.690,-0.690,-0.690,-0.690,-0.691, - &-0.691,-0.691,-0.691,-0.691,-0.691,-0.692,-0.692,-0.692,-0.692, - &-0.692,-0.693,-0.693,-0.693,-0.693,-0.693,-0.694,-0.694,-0.694, - &-0.694,-0.694,-0.695,-0.695,-0.695,-0.695,-0.695,-0.696,-0.696, - &-0.696,-0.696,-0.696,-0.697,-0.697,-0.697,-0.697,-0.698,-0.698, - &-0.698,-0.698,-0.698,-0.699,-0.699,-0.699,-0.699,-0.699,-0.700, - &-0.700,-0.700,-0.700,-0.701,-0.701,-0.701,-0.701,-0.702,-0.702, - &-0.702,-0.702,-0.702,-0.703,-0.703,-0.703,-0.703,-0.704,-0.704, - &-0.704,-0.704,-0.705,-0.705,-0.705,-0.705,-0.706,-0.706,-0.706, - &-0.706,-0.706,-0.707,-0.707,-0.707,-0.707,-0.708,-0.708,-0.708, - &-0.708,-0.709,-0.709,-0.709,-0.710,-0.710,-0.710,-0.710,-0.711, - &-0.711,-0.711,-0.711,-0.712,-0.712,-0.712,-0.712,-0.713,-0.713, - &-0.713,-0.713,-0.714,-0.714,-0.714,-0.715,-0.715,-0.715,-0.715, - &-0.716,-0.716,-0.716,-0.716,-0.717,-0.717,-0.717,-0.718,-0.718, - &-0.718,-0.718,-0.719,-0.719,-0.719,-0.720,-0.720,-0.720,-0.720, - &-0.721,-0.721,-0.721,-0.722,-0.722,-0.722,-0.723,-0.723,-0.723, - &-0.723,-0.724,-0.724,-0.724,-0.725,-0.725,-0.725,-0.726,-0.726, - &-0.726,-0.727,-0.727,-0.727,-0.727,-0.728,-0.728,-0.728,-0.729, - &-0.729,-0.729,-0.730,-0.730,-0.730,-0.731,-0.731,-0.731,-0.732, - &-0.732,-0.732,-0.733,-0.733,-0.733,-0.733,-0.734,-0.734,-0.734, - &-0.735,-0.735,-0.735,-0.736,-0.736,-0.736,-0.737,-0.737,-0.737, - &-0.738,-0.738,-0.738,-0.739,-0.739,-0.740,-0.740,-0.740,-0.741, - &-0.741,-0.741,-0.742,-0.742,-0.742,-0.743,-0.743,-0.743,-0.744, - &-0.744,-0.744,-0.745,-0.745,-0.749,-0.753,-0.756,-0.760,-0.764, - &-0.768,-0.772,-0.776,-0.780,-0.784,-0.788,-0.793,-0.797,-0.801, - &-0.806,-0.810,-0.815,-0.820,-0.824,-0.829,-0.834,-0.839,-0.844, - &-0.848,-0.853,-0.858,-0.863,-0.869,-0.874,-0.879,-0.884,-0.889, - &-0.895,-0.900,-0.905,-0.911,-0.916,-0.922,-0.927,-0.933,-0.938, - &-0.944,-0.950,-0.955,-0.961,-0.967,-0.972,-0.978,-0.984,-0.990, - &-0.996,-1.002,-1.008,-1.014,-1.020,-1.026,-1.032,-1.038,-1.044, - &-1.050,-1.056,-1.062,-1.068,-1.075,-1.081,-1.087,-1.093,-1.100, - &-1.106,-1.112,-1.119,-1.125,-1.131,-1.138,-1.144,-1.151,-1.157, - &-1.164,-1.170,-1.177,-1.183,-1.190,-1.196,-1.203,-1.209,-1.216, - &-1.223,-1.229,-1.236,-1.243,-1.249,-1.256,-1.263,-1.270,-1.276, - &-1.283,-1.290,-1.297,-1.304,-1.310,-1.317,-1.324,-1.331,-1.338, - &-1.345,-1.352,-1.359,-1.365,-1.372,-1.379,-1.386,-1.393,-1.400, - &-1.407,-1.414,-1.421,-1.428,-1.435,-1.442,-1.450,-1.457,-1.464, - &-1.471,-1.478,-1.485,-1.492,-1.499,-1.506,-1.514,-1.521,-1.528, - &-1.535,-1.542,-1.549,-1.557,-1.564,-1.571,-1.578,-1.586,-1.593, - &-1.600,-1.607,-1.615,-1.622,-1.629,-1.636,-1.644,-1.651,-1.658, - &-1.666,-1.673,-1.680,-1.688,-1.695,-1.702,-1.710,-1.717,-1.725, - &-1.732,-1.739,-1.747 - & /) -! -! *** CASO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC14M_198 = (/ - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000 - & /) -! -! *** CANO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC15M_198 = (/ - &-0.101,-0.216,-0.271,-0.308,-0.337,-0.360,-0.379,-0.396,-0.410, - &-0.422,-0.433,-0.443,-0.452,-0.460,-0.468,-0.475,-0.481,-0.487, - &-0.492,-0.497,-0.502,-0.506,-0.510,-0.514,-0.517,-0.520,-0.524, - &-0.526,-0.529,-0.532,-0.534,-0.537,-0.539,-0.541,-0.543,-0.545, - &-0.547,-0.549,-0.550,-0.552,-0.553,-0.555,-0.556,-0.558,-0.559, - &-0.560,-0.561,-0.563,-0.564,-0.565,-0.566,-0.567,-0.568,-0.569, - &-0.570,-0.571,-0.572,-0.572,-0.573,-0.574,-0.575,-0.576,-0.576, - &-0.577,-0.578,-0.578,-0.579,-0.580,-0.580,-0.581,-0.581,-0.582, - &-0.582,-0.583,-0.583,-0.584,-0.584,-0.585,-0.585,-0.585,-0.586, - &-0.586,-0.586,-0.586,-0.587,-0.587,-0.587,-0.587,-0.587,-0.587, - &-0.587,-0.588,-0.588,-0.588,-0.588,-0.588,-0.587,-0.587,-0.587, - &-0.587,-0.587,-0.587,-0.587,-0.587,-0.586,-0.586,-0.586,-0.586, - &-0.585,-0.585,-0.585,-0.585,-0.584,-0.584,-0.584,-0.583,-0.583, - &-0.583,-0.582,-0.582,-0.581,-0.581,-0.581,-0.580,-0.580,-0.579, - &-0.579,-0.579,-0.578,-0.578,-0.577,-0.577,-0.576,-0.576,-0.576, - &-0.575,-0.575,-0.574,-0.574,-0.573,-0.573,-0.572,-0.572,-0.571, - &-0.571,-0.570,-0.570,-0.570,-0.569,-0.569,-0.568,-0.568,-0.567, - &-0.567,-0.566,-0.566,-0.565,-0.565,-0.564,-0.564,-0.563,-0.563, - &-0.562,-0.562,-0.562,-0.561,-0.561,-0.560,-0.560,-0.559,-0.559, - &-0.558,-0.558,-0.557,-0.557,-0.556,-0.556,-0.555,-0.555,-0.554, - &-0.554,-0.554,-0.553,-0.553,-0.552,-0.552,-0.551,-0.551,-0.550, - &-0.550,-0.549,-0.549,-0.548,-0.548,-0.548,-0.547,-0.547,-0.546, - &-0.546,-0.545,-0.545,-0.544,-0.544,-0.544,-0.543,-0.543,-0.542, - &-0.542,-0.541,-0.541,-0.540,-0.540,-0.540,-0.539,-0.539,-0.538, - &-0.538,-0.537,-0.537,-0.537,-0.536,-0.536,-0.535,-0.535,-0.535, - &-0.534,-0.534,-0.533,-0.533,-0.533,-0.532,-0.532,-0.531,-0.531, - &-0.531,-0.530,-0.530,-0.529,-0.529,-0.529,-0.528,-0.528,-0.527, - &-0.527,-0.527,-0.526,-0.526,-0.525,-0.525,-0.525,-0.524,-0.524, - &-0.524,-0.523,-0.523,-0.523,-0.522,-0.522,-0.521,-0.521,-0.521, - &-0.520,-0.520,-0.520,-0.519,-0.519,-0.519,-0.518,-0.518,-0.518, - &-0.517,-0.517,-0.517,-0.516,-0.516,-0.516,-0.515,-0.515,-0.515, - &-0.514,-0.514,-0.514,-0.513,-0.513,-0.513,-0.512,-0.512,-0.512, - &-0.512,-0.511,-0.511,-0.511,-0.510,-0.510,-0.510,-0.509,-0.509, - &-0.509,-0.509,-0.508,-0.508,-0.508,-0.507,-0.507,-0.507,-0.507, - &-0.506,-0.506,-0.506,-0.506,-0.505,-0.505,-0.505,-0.504,-0.504, - &-0.504,-0.504,-0.503,-0.503,-0.503,-0.503,-0.502,-0.502,-0.502, - &-0.502,-0.501,-0.501,-0.501,-0.501,-0.501,-0.500,-0.500,-0.500, - &-0.500,-0.499,-0.499,-0.499,-0.499,-0.499,-0.498,-0.498,-0.498, - &-0.498,-0.497,-0.497,-0.497,-0.497,-0.497,-0.496,-0.496,-0.496, - &-0.496,-0.496,-0.495,-0.495,-0.495,-0.495,-0.495,-0.495,-0.494, - &-0.494,-0.494,-0.494,-0.494,-0.493,-0.493,-0.493,-0.493,-0.493, - &-0.493,-0.492,-0.492,-0.492,-0.492,-0.492,-0.492,-0.491,-0.491, - &-0.491,-0.491,-0.491,-0.491,-0.491,-0.490,-0.490,-0.490,-0.490, - &-0.490,-0.490,-0.490,-0.489,-0.489,-0.489,-0.489,-0.489,-0.489, - &-0.489,-0.489,-0.488,-0.488,-0.487,-0.486,-0.485,-0.485,-0.484, - &-0.484,-0.484,-0.484,-0.484,-0.484,-0.484,-0.485,-0.485,-0.486, - &-0.487,-0.488,-0.489,-0.490,-0.491,-0.492,-0.494,-0.495,-0.497, - &-0.499,-0.501,-0.503,-0.505,-0.507,-0.509,-0.511,-0.514,-0.516, - &-0.519,-0.522,-0.524,-0.527,-0.530,-0.533,-0.536,-0.539,-0.543, - &-0.546,-0.549,-0.553,-0.556,-0.560,-0.563,-0.567,-0.571,-0.575, - &-0.578,-0.582,-0.586,-0.590,-0.595,-0.599,-0.603,-0.607,-0.612, - &-0.616,-0.620,-0.625,-0.629,-0.634,-0.639,-0.643,-0.648,-0.653, - &-0.658,-0.663,-0.668,-0.673,-0.678,-0.683,-0.688,-0.693,-0.698, - &-0.703,-0.709,-0.714,-0.719,-0.725,-0.730,-0.736,-0.741,-0.747, - &-0.752,-0.758,-0.764,-0.769,-0.775,-0.781,-0.787,-0.792,-0.798, - &-0.804,-0.810,-0.816,-0.822,-0.828,-0.834,-0.840,-0.846,-0.853, - &-0.859,-0.865,-0.871,-0.877,-0.884,-0.890,-0.896,-0.903,-0.909, - &-0.916,-0.922,-0.929,-0.935,-0.942,-0.948,-0.955,-0.961,-0.968, - &-0.975,-0.981,-0.988,-0.995,-1.001,-1.008,-1.015,-1.022,-1.029, - &-1.036,-1.042,-1.049,-1.056,-1.063,-1.070,-1.077,-1.084,-1.091, - &-1.098,-1.105,-1.112,-1.119,-1.127,-1.134,-1.141,-1.148,-1.155, - &-1.162,-1.170,-1.177,-1.184,-1.191,-1.199,-1.206,-1.213,-1.221, - &-1.228,-1.235,-1.243 - & /) -! -! *** CACL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC16M_198 = (/ - &-0.099,-0.205,-0.252,-0.282,-0.304,-0.320,-0.332,-0.342,-0.350, - &-0.356,-0.361,-0.364,-0.367,-0.369,-0.370,-0.371,-0.371,-0.371, - &-0.370,-0.370,-0.368,-0.367,-0.365,-0.363,-0.361,-0.358,-0.356, - &-0.353,-0.350,-0.347,-0.344,-0.341,-0.337,-0.334,-0.330,-0.327, - &-0.323,-0.320,-0.316,-0.312,-0.308,-0.305,-0.301,-0.297,-0.293, - &-0.289,-0.285,-0.281,-0.277,-0.273,-0.269,-0.265,-0.262,-0.258, - &-0.254,-0.250,-0.246,-0.242,-0.238,-0.234,-0.230,-0.226,-0.222, - &-0.218,-0.213,-0.209,-0.205,-0.201,-0.197,-0.193,-0.189,-0.185, - &-0.181,-0.176,-0.172,-0.168,-0.164,-0.160,-0.155,-0.151,-0.146, - &-0.142,-0.138,-0.133,-0.129,-0.124,-0.120,-0.115,-0.110,-0.106, - &-0.101,-0.096,-0.091,-0.086,-0.082,-0.077,-0.072,-0.067,-0.062, - &-0.057,-0.052,-0.047,-0.042,-0.036,-0.031,-0.026,-0.021,-0.016, - &-0.010,-0.005, 0.000, 0.005, 0.011, 0.016, 0.021, 0.027, 0.032, - & 0.037, 0.043, 0.048, 0.054, 0.059, 0.064, 0.070, 0.075, 0.081, - & 0.086, 0.092, 0.097, 0.102, 0.108, 0.113, 0.119, 0.124, 0.129, - & 0.135, 0.140, 0.146, 0.151, 0.156, 0.162, 0.167, 0.173, 0.178, - & 0.183, 0.189, 0.194, 0.199, 0.205, 0.210, 0.215, 0.221, 0.226, - & 0.231, 0.237, 0.242, 0.247, 0.252, 0.258, 0.263, 0.268, 0.273, - & 0.279, 0.284, 0.289, 0.294, 0.299, 0.305, 0.310, 0.315, 0.320, - & 0.325, 0.331, 0.336, 0.341, 0.346, 0.351, 0.356, 0.361, 0.366, - & 0.371, 0.377, 0.382, 0.387, 0.392, 0.397, 0.402, 0.407, 0.412, - & 0.417, 0.422, 0.427, 0.432, 0.437, 0.442, 0.447, 0.452, 0.457, - & 0.462, 0.467, 0.472, 0.476, 0.481, 0.486, 0.491, 0.496, 0.501, - & 0.506, 0.511, 0.515, 0.520, 0.525, 0.530, 0.535, 0.539, 0.544, - & 0.549, 0.554, 0.559, 0.563, 0.568, 0.573, 0.578, 0.582, 0.587, - & 0.592, 0.596, 0.601, 0.606, 0.610, 0.615, 0.620, 0.624, 0.629, - & 0.634, 0.638, 0.643, 0.647, 0.652, 0.657, 0.661, 0.666, 0.670, - & 0.675, 0.679, 0.684, 0.688, 0.693, 0.697, 0.702, 0.706, 0.711, - & 0.715, 0.720, 0.724, 0.729, 0.733, 0.737, 0.742, 0.746, 0.751, - & 0.755, 0.759, 0.764, 0.768, 0.773, 0.777, 0.781, 0.786, 0.790, - & 0.794, 0.798, 0.803, 0.807, 0.811, 0.816, 0.820, 0.824, 0.828, - & 0.833, 0.837, 0.841, 0.845, 0.849, 0.854, 0.858, 0.862, 0.866, - & 0.870, 0.874, 0.879, 0.883, 0.887, 0.891, 0.895, 0.899, 0.903, - & 0.907, 0.912, 0.916, 0.920, 0.924, 0.928, 0.932, 0.936, 0.940, - & 0.944, 0.948, 0.952, 0.956, 0.960, 0.964, 0.968, 0.972, 0.976, - & 0.980, 0.984, 0.988, 0.992, 0.995, 0.999, 1.003, 1.007, 1.011, - & 1.015, 1.019, 1.023, 1.026, 1.030, 1.034, 1.038, 1.042, 1.046, - & 1.049, 1.053, 1.057, 1.061, 1.065, 1.068, 1.072, 1.076, 1.080, - & 1.083, 1.087, 1.091, 1.095, 1.098, 1.102, 1.106, 1.109, 1.113, - & 1.117, 1.120, 1.124, 1.128, 1.131, 1.135, 1.139, 1.142, 1.146, - & 1.150, 1.153, 1.157, 1.160, 1.164, 1.168, 1.171, 1.175, 1.178, - & 1.182, 1.185, 1.189, 1.192, 1.196, 1.200, 1.203, 1.207, 1.210, - & 1.214, 1.217, 1.221, 1.224, 1.227, 1.231, 1.234, 1.238, 1.241, - & 1.245, 1.248, 1.252, 1.255, 1.258, 1.262, 1.265, 1.269, 1.272, - & 1.275, 1.279, 1.282, 1.285, 1.321, 1.354, 1.386, 1.417, 1.448, - & 1.478, 1.508, 1.537, 1.565, 1.593, 1.621, 1.648, 1.674, 1.700, - & 1.726, 1.751, 1.776, 1.800, 1.824, 1.848, 1.871, 1.893, 1.916, - & 1.938, 1.959, 1.980, 2.001, 2.022, 2.042, 2.061, 2.081, 2.100, - & 2.119, 2.137, 2.156, 2.173, 2.191, 2.208, 2.225, 2.242, 2.259, - & 2.275, 2.291, 2.307, 2.322, 2.337, 2.352, 2.367, 2.382, 2.396, - & 2.410, 2.424, 2.438, 2.451, 2.464, 2.477, 2.490, 2.502, 2.515, - & 2.527, 2.539, 2.551, 2.562, 2.574, 2.585, 2.596, 2.607, 2.618, - & 2.628, 2.639, 2.649, 2.659, 2.669, 2.679, 2.688, 2.698, 2.707, - & 2.716, 2.725, 2.734, 2.743, 2.751, 2.760, 2.768, 2.776, 2.784, - & 2.792, 2.800, 2.808, 2.815, 2.823, 2.830, 2.837, 2.844, 2.851, - & 2.858, 2.865, 2.871, 2.878, 2.884, 2.890, 2.896, 2.902, 2.908, - & 2.914, 2.920, 2.925, 2.931, 2.936, 2.942, 2.947, 2.952, 2.957, - & 2.962, 2.967, 2.972, 2.976, 2.981, 2.985, 2.990, 2.994, 2.998, - & 3.003, 3.007, 3.011, 3.014, 3.018, 3.022, 3.026, 3.029, 3.033, - & 3.036, 3.040, 3.043, 3.046, 3.049, 3.052, 3.055, 3.058, 3.061, - & 3.064, 3.066, 3.069, 3.072, 3.074, 3.077, 3.079, 3.081, 3.083, - & 3.086, 3.088, 3.090, 3.092, 3.094, 3.096, 3.097, 3.099, 3.101, - & 3.102, 3.104, 3.105 - & /) -! -! *** K2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC17M_198 = (/ - &-0.103,-0.226,-0.289,-0.334,-0.369,-0.399,-0.425,-0.448,-0.468, - &-0.487,-0.505,-0.521,-0.536,-0.550,-0.563,-0.576,-0.588,-0.599, - &-0.610,-0.621,-0.631,-0.641,-0.650,-0.659,-0.668,-0.677,-0.685, - &-0.693,-0.701,-0.709,-0.717,-0.724,-0.731,-0.738,-0.745,-0.752, - &-0.758,-0.765,-0.771,-0.777,-0.784,-0.790,-0.796,-0.801,-0.807, - &-0.813,-0.818,-0.824,-0.829,-0.835,-0.840,-0.845,-0.850,-0.855, - &-0.860,-0.865,-0.870,-0.875,-0.880,-0.884,-0.889,-0.894,-0.898, - &-0.903,-0.907,-0.912,-0.916,-0.920,-0.925,-0.929,-0.933,-0.937, - &-0.942,-0.946,-0.950,-0.954,-0.958,-0.962,-0.966,-0.970,-0.974, - &-0.978,-0.982,-0.985,-0.989,-0.993,-0.997,-1.001,-1.004,-1.008, - &-1.012,-1.016,-1.019,-1.023,-1.027,-1.030,-1.034,-1.037,-1.041, - &-1.045,-1.048,-1.052,-1.055,-1.059,-1.062,-1.066,-1.069,-1.072, - &-1.076,-1.079,-1.083,-1.086,-1.089,-1.093,-1.096,-1.099,-1.103, - &-1.106,-1.109,-1.113,-1.116,-1.119,-1.122,-1.126,-1.129,-1.132, - &-1.135,-1.138,-1.142,-1.145,-1.148,-1.151,-1.154,-1.157,-1.160, - &-1.164,-1.167,-1.170,-1.173,-1.176,-1.179,-1.182,-1.185,-1.188, - &-1.191,-1.194,-1.197,-1.200,-1.203,-1.206,-1.209,-1.212,-1.215, - &-1.218,-1.221,-1.223,-1.226,-1.229,-1.232,-1.235,-1.238,-1.241, - &-1.244,-1.246,-1.249,-1.252,-1.255,-1.258,-1.261,-1.263,-1.266, - &-1.269,-1.272,-1.274,-1.277,-1.280,-1.283,-1.285,-1.288,-1.291, - &-1.294,-1.296,-1.299,-1.302,-1.304,-1.307,-1.310,-1.313,-1.315, - &-1.318,-1.321,-1.323,-1.326,-1.328,-1.331,-1.334,-1.336,-1.339, - &-1.342,-1.344,-1.347,-1.349,-1.352,-1.355,-1.357,-1.360,-1.362, - &-1.365,-1.367,-1.370,-1.373,-1.375,-1.378,-1.380,-1.383,-1.385, - &-1.388,-1.390,-1.393,-1.395,-1.398,-1.400,-1.403,-1.405,-1.408, - &-1.410,-1.413,-1.415,-1.418,-1.420,-1.423,-1.425,-1.427,-1.430, - &-1.432,-1.435,-1.437,-1.440,-1.442,-1.445,-1.447,-1.449,-1.452, - &-1.454,-1.457,-1.459,-1.461,-1.464,-1.466,-1.469,-1.471,-1.473, - &-1.476,-1.478,-1.480,-1.483,-1.485,-1.487,-1.490,-1.492,-1.495, - &-1.497,-1.499,-1.502,-1.504,-1.506,-1.509,-1.511,-1.513,-1.515, - &-1.518,-1.520,-1.522,-1.525,-1.527,-1.529,-1.532,-1.534,-1.536, - &-1.538,-1.541,-1.543,-1.545,-1.548,-1.550,-1.552,-1.554,-1.557, - &-1.559,-1.561,-1.563,-1.566,-1.568,-1.570,-1.572,-1.575,-1.577, - &-1.579,-1.581,-1.583,-1.586,-1.588,-1.590,-1.592,-1.595,-1.597, - &-1.599,-1.601,-1.603,-1.606,-1.608,-1.610,-1.612,-1.614,-1.616, - &-1.619,-1.621,-1.623,-1.625,-1.627,-1.630,-1.632,-1.634,-1.636, - &-1.638,-1.640,-1.642,-1.645,-1.647,-1.649,-1.651,-1.653,-1.655, - &-1.658,-1.660,-1.662,-1.664,-1.666,-1.668,-1.670,-1.672,-1.675, - &-1.677,-1.679,-1.681,-1.683,-1.685,-1.687,-1.689,-1.691,-1.694, - &-1.696,-1.698,-1.700,-1.702,-1.704,-1.706,-1.708,-1.710,-1.712, - &-1.714,-1.717,-1.719,-1.721,-1.723,-1.725,-1.727,-1.729,-1.731, - &-1.733,-1.735,-1.737,-1.739,-1.741,-1.743,-1.745,-1.748,-1.750, - &-1.752,-1.754,-1.756,-1.758,-1.760,-1.762,-1.764,-1.766,-1.768, - &-1.770,-1.772,-1.774,-1.776,-1.778,-1.780,-1.782,-1.784,-1.786, - &-1.788,-1.790,-1.792,-1.794,-1.816,-1.836,-1.855,-1.875,-1.894, - &-1.914,-1.933,-1.952,-1.971,-1.989,-2.008,-2.027,-2.045,-2.063, - &-2.082,-2.100,-2.118,-2.136,-2.154,-2.171,-2.189,-2.207,-2.224, - &-2.242,-2.259,-2.276,-2.293,-2.311,-2.328,-2.345,-2.362,-2.379, - &-2.395,-2.412,-2.429,-2.446,-2.462,-2.479,-2.495,-2.512,-2.528, - &-2.544,-2.561,-2.577,-2.593,-2.609,-2.625,-2.642,-2.658,-2.674, - &-2.689,-2.705,-2.721,-2.737,-2.753,-2.768,-2.784,-2.800,-2.815, - &-2.831,-2.847,-2.862,-2.878,-2.893,-2.908,-2.924,-2.939,-2.954, - &-2.970,-2.985,-3.000,-3.015,-3.031,-3.046,-3.061,-3.076,-3.091, - &-3.106,-3.121,-3.136,-3.151,-3.166,-3.181,-3.196,-3.210,-3.225, - &-3.240,-3.255,-3.270,-3.284,-3.299,-3.314,-3.328,-3.343,-3.358, - &-3.372,-3.387,-3.401,-3.416,-3.430,-3.445,-3.459,-3.474,-3.488, - &-3.503,-3.517,-3.531,-3.546,-3.560,-3.574,-3.589,-3.603,-3.617, - &-3.631,-3.646,-3.660,-3.674,-3.688,-3.702,-3.717,-3.731,-3.745, - &-3.759,-3.773,-3.787,-3.801,-3.815,-3.829,-3.843,-3.857,-3.871, - &-3.885,-3.899,-3.913,-3.927,-3.941,-3.955,-3.969,-3.982,-3.996, - &-4.010,-4.024,-4.038,-4.051,-4.065,-4.079,-4.093,-4.107,-4.120, - &-4.134,-4.148,-4.161,-4.175,-4.189,-4.202,-4.216,-4.230,-4.243, - &-4.257,-4.271,-4.284 - & /) -! -! *** KHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC18M_198 = (/ - &-0.050,-0.106,-0.133,-0.152,-0.166,-0.177,-0.187,-0.195,-0.202, - &-0.208,-0.214,-0.218,-0.223,-0.227,-0.230,-0.233,-0.236,-0.238, - &-0.240,-0.242,-0.244,-0.246,-0.247,-0.248,-0.249,-0.250,-0.250, - &-0.250,-0.251,-0.251,-0.251,-0.251,-0.250,-0.250,-0.249,-0.249, - &-0.248,-0.247,-0.246,-0.245,-0.244,-0.242,-0.241,-0.240,-0.238, - &-0.236,-0.235,-0.233,-0.231,-0.229,-0.227,-0.225,-0.223,-0.221, - &-0.219,-0.216,-0.214,-0.212,-0.209,-0.207,-0.204,-0.202,-0.199, - &-0.196,-0.193,-0.191,-0.188,-0.185,-0.182,-0.179,-0.176,-0.173, - &-0.170,-0.167,-0.164,-0.161,-0.158,-0.154,-0.151,-0.148,-0.144, - &-0.141,-0.138,-0.134,-0.131,-0.127,-0.124,-0.120,-0.116,-0.113, - &-0.109,-0.105,-0.102,-0.098,-0.094,-0.090,-0.086,-0.082,-0.078, - &-0.074,-0.071,-0.067,-0.063,-0.059,-0.054,-0.050,-0.046,-0.042, - &-0.038,-0.034,-0.030,-0.026,-0.022,-0.017,-0.013,-0.009,-0.005, - &-0.001, 0.004, 0.008, 0.012, 0.016, 0.020, 0.025, 0.029, 0.033, - & 0.037, 0.041, 0.046, 0.050, 0.054, 0.058, 0.062, 0.067, 0.071, - & 0.075, 0.079, 0.083, 0.087, 0.091, 0.096, 0.100, 0.104, 0.108, - & 0.112, 0.116, 0.120, 0.124, 0.128, 0.132, 0.136, 0.141, 0.145, - & 0.149, 0.153, 0.157, 0.161, 0.165, 0.169, 0.173, 0.176, 0.180, - & 0.184, 0.188, 0.192, 0.196, 0.200, 0.204, 0.208, 0.212, 0.215, - & 0.219, 0.223, 0.227, 0.231, 0.235, 0.238, 0.242, 0.246, 0.250, - & 0.254, 0.257, 0.261, 0.265, 0.268, 0.272, 0.276, 0.280, 0.283, - & 0.287, 0.291, 0.294, 0.298, 0.302, 0.305, 0.309, 0.312, 0.316, - & 0.320, 0.323, 0.327, 0.330, 0.334, 0.337, 0.341, 0.344, 0.348, - & 0.351, 0.355, 0.358, 0.362, 0.365, 0.369, 0.372, 0.376, 0.379, - & 0.382, 0.386, 0.389, 0.393, 0.396, 0.399, 0.403, 0.406, 0.409, - & 0.413, 0.416, 0.419, 0.423, 0.426, 0.429, 0.433, 0.436, 0.439, - & 0.442, 0.446, 0.449, 0.452, 0.455, 0.459, 0.462, 0.465, 0.468, - & 0.471, 0.475, 0.478, 0.481, 0.484, 0.487, 0.490, 0.493, 0.497, - & 0.500, 0.503, 0.506, 0.509, 0.512, 0.515, 0.518, 0.521, 0.524, - & 0.527, 0.530, 0.533, 0.536, 0.539, 0.542, 0.545, 0.548, 0.551, - & 0.554, 0.557, 0.560, 0.563, 0.566, 0.569, 0.572, 0.575, 0.578, - & 0.581, 0.584, 0.587, 0.590, 0.592, 0.595, 0.598, 0.601, 0.604, - & 0.607, 0.610, 0.612, 0.615, 0.618, 0.621, 0.624, 0.627, 0.629, - & 0.632, 0.635, 0.638, 0.640, 0.643, 0.646, 0.649, 0.651, 0.654, - & 0.657, 0.660, 0.662, 0.665, 0.668, 0.671, 0.673, 0.676, 0.679, - & 0.681, 0.684, 0.687, 0.689, 0.692, 0.695, 0.697, 0.700, 0.702, - & 0.705, 0.708, 0.710, 0.713, 0.716, 0.718, 0.721, 0.723, 0.726, - & 0.728, 0.731, 0.734, 0.736, 0.739, 0.741, 0.744, 0.746, 0.749, - & 0.751, 0.754, 0.756, 0.759, 0.761, 0.764, 0.766, 0.769, 0.771, - & 0.774, 0.776, 0.779, 0.781, 0.784, 0.786, 0.788, 0.791, 0.793, - & 0.796, 0.798, 0.801, 0.803, 0.805, 0.808, 0.810, 0.813, 0.815, - & 0.817, 0.820, 0.822, 0.824, 0.827, 0.829, 0.832, 0.834, 0.836, - & 0.839, 0.841, 0.843, 0.846, 0.848, 0.850, 0.852, 0.855, 0.857, - & 0.859, 0.862, 0.864, 0.866, 0.868, 0.871, 0.873, 0.875, 0.878, - & 0.880, 0.882, 0.884, 0.887, 0.910, 0.932, 0.953, 0.974, 0.995, - & 1.015, 1.034, 1.054, 1.072, 1.091, 1.109, 1.127, 1.145, 1.162, - & 1.179, 1.196, 1.213, 1.229, 1.245, 1.260, 1.276, 1.291, 1.306, - & 1.320, 1.335, 1.349, 1.363, 1.377, 1.390, 1.404, 1.417, 1.430, - & 1.442, 1.455, 1.467, 1.479, 1.491, 1.503, 1.515, 1.526, 1.538, - & 1.549, 1.560, 1.570, 1.581, 1.592, 1.602, 1.612, 1.622, 1.632, - & 1.642, 1.652, 1.661, 1.671, 1.680, 1.689, 1.698, 1.707, 1.716, - & 1.724, 1.733, 1.741, 1.750, 1.758, 1.766, 1.774, 1.782, 1.789, - & 1.797, 1.805, 1.812, 1.820, 1.827, 1.834, 1.841, 1.848, 1.855, - & 1.862, 1.868, 1.875, 1.882, 1.888, 1.894, 1.901, 1.907, 1.913, - & 1.919, 1.925, 1.931, 1.937, 1.943, 1.948, 1.954, 1.959, 1.965, - & 1.970, 1.976, 1.981, 1.986, 1.991, 1.996, 2.001, 2.006, 2.011, - & 2.016, 2.020, 2.025, 2.030, 2.034, 2.039, 2.043, 2.048, 2.052, - & 2.056, 2.060, 2.064, 2.069, 2.073, 2.077, 2.080, 2.084, 2.088, - & 2.092, 2.096, 2.099, 2.103, 2.107, 2.110, 2.114, 2.117, 2.120, - & 2.124, 2.127, 2.130, 2.133, 2.137, 2.140, 2.143, 2.146, 2.149, - & 2.152, 2.155, 2.158, 2.160, 2.163, 2.166, 2.169, 2.171, 2.174, - & 2.176, 2.179, 2.181, 2.184, 2.186, 2.189, 2.191, 2.193, 2.196, - & 2.198, 2.200, 2.202 - & /) -! -! *** KNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC19M_198 = (/ - &-0.053,-0.124,-0.164,-0.194,-0.219,-0.242,-0.262,-0.281,-0.298, - &-0.314,-0.330,-0.345,-0.359,-0.372,-0.385,-0.398,-0.411,-0.423, - &-0.434,-0.446,-0.457,-0.468,-0.478,-0.489,-0.499,-0.509,-0.519, - &-0.528,-0.538,-0.547,-0.556,-0.565,-0.574,-0.583,-0.592,-0.600, - &-0.608,-0.617,-0.625,-0.633,-0.641,-0.648,-0.656,-0.664,-0.671, - &-0.678,-0.686,-0.693,-0.700,-0.707,-0.714,-0.721,-0.727,-0.734, - &-0.741,-0.747,-0.754,-0.760,-0.766,-0.773,-0.779,-0.785,-0.791, - &-0.797,-0.803,-0.809,-0.815,-0.821,-0.827,-0.832,-0.838,-0.844, - &-0.849,-0.855,-0.861,-0.866,-0.872,-0.877,-0.883,-0.888,-0.894, - &-0.899,-0.904,-0.910,-0.915,-0.920,-0.926,-0.931,-0.936,-0.942, - &-0.947,-0.952,-0.957,-0.963,-0.968,-0.973,-0.978,-0.983,-0.988, - &-0.994,-0.999,-1.004,-1.009,-1.014,-1.019,-1.024,-1.029,-1.034, - &-1.039,-1.044,-1.049,-1.054,-1.059,-1.064,-1.069,-1.074,-1.079, - &-1.083,-1.088,-1.093,-1.098,-1.103,-1.107,-1.112,-1.117,-1.122, - &-1.126,-1.131,-1.136,-1.140,-1.145,-1.149,-1.154,-1.158,-1.163, - &-1.168,-1.172,-1.176,-1.181,-1.185,-1.190,-1.194,-1.199,-1.203, - &-1.207,-1.212,-1.216,-1.220,-1.224,-1.229,-1.233,-1.237,-1.241, - &-1.245,-1.250,-1.254,-1.258,-1.262,-1.266,-1.270,-1.274,-1.278, - &-1.282,-1.286,-1.290,-1.294,-1.298,-1.302,-1.306,-1.310,-1.314, - &-1.318,-1.321,-1.325,-1.329,-1.333,-1.337,-1.341,-1.344,-1.348, - &-1.352,-1.355,-1.359,-1.363,-1.367,-1.370,-1.374,-1.378,-1.381, - &-1.385,-1.388,-1.392,-1.395,-1.399,-1.403,-1.406,-1.410,-1.413, - &-1.417,-1.420,-1.423,-1.427,-1.430,-1.434,-1.437,-1.441,-1.444, - &-1.447,-1.451,-1.454,-1.457,-1.461,-1.464,-1.467,-1.470,-1.474, - &-1.477,-1.480,-1.483,-1.487,-1.490,-1.493,-1.496,-1.499,-1.503, - &-1.506,-1.509,-1.512,-1.515,-1.518,-1.521,-1.524,-1.528,-1.531, - &-1.534,-1.537,-1.540,-1.543,-1.546,-1.549,-1.552,-1.555,-1.558, - &-1.561,-1.564,-1.566,-1.569,-1.572,-1.575,-1.578,-1.581,-1.584, - &-1.587,-1.590,-1.592,-1.595,-1.598,-1.601,-1.604,-1.607,-1.609, - &-1.612,-1.615,-1.618,-1.620,-1.623,-1.626,-1.629,-1.631,-1.634, - &-1.637,-1.639,-1.642,-1.645,-1.647,-1.650,-1.653,-1.655,-1.658, - &-1.661,-1.663,-1.666,-1.668,-1.671,-1.674,-1.676,-1.679,-1.681, - &-1.684,-1.686,-1.689,-1.691,-1.694,-1.696,-1.699,-1.701,-1.704, - &-1.706,-1.709,-1.711,-1.714,-1.716,-1.719,-1.721,-1.724,-1.726, - &-1.728,-1.731,-1.733,-1.736,-1.738,-1.740,-1.743,-1.745,-1.747, - &-1.750,-1.752,-1.754,-1.757,-1.759,-1.761,-1.764,-1.766,-1.768, - &-1.771,-1.773,-1.775,-1.777,-1.780,-1.782,-1.784,-1.786,-1.789, - &-1.791,-1.793,-1.795,-1.797,-1.800,-1.802,-1.804,-1.806,-1.808, - &-1.811,-1.813,-1.815,-1.817,-1.819,-1.821,-1.823,-1.826,-1.828, - &-1.830,-1.832,-1.834,-1.836,-1.838,-1.840,-1.842,-1.844,-1.847, - &-1.849,-1.851,-1.853,-1.855,-1.857,-1.859,-1.861,-1.863,-1.865, - &-1.867,-1.869,-1.871,-1.873,-1.875,-1.877,-1.879,-1.881,-1.883, - &-1.885,-1.887,-1.889,-1.891,-1.893,-1.895,-1.897,-1.898,-1.900, - &-1.902,-1.904,-1.906,-1.908,-1.910,-1.912,-1.914,-1.916,-1.917, - &-1.919,-1.921,-1.923,-1.925,-1.945,-1.963,-1.980,-1.997,-2.014, - &-2.030,-2.046,-2.062,-2.077,-2.092,-2.107,-2.122,-2.136,-2.150, - &-2.163,-2.177,-2.190,-2.203,-2.216,-2.228,-2.241,-2.253,-2.265, - &-2.277,-2.289,-2.300,-2.311,-2.323,-2.334,-2.345,-2.356,-2.366, - &-2.377,-2.387,-2.398,-2.408,-2.418,-2.428,-2.438,-2.448,-2.457, - &-2.467,-2.477,-2.486,-2.496,-2.505,-2.514,-2.523,-2.532,-2.541, - &-2.550,-2.559,-2.568,-2.577,-2.586,-2.594,-2.603,-2.611,-2.620, - &-2.628,-2.637,-2.645,-2.653,-2.662,-2.670,-2.678,-2.686,-2.694, - &-2.702,-2.710,-2.718,-2.726,-2.734,-2.742,-2.750,-2.758,-2.765, - &-2.773,-2.781,-2.789,-2.796,-2.804,-2.811,-2.819,-2.827,-2.834, - &-2.842,-2.849,-2.857,-2.864,-2.871,-2.879,-2.886,-2.893,-2.901, - &-2.908,-2.915,-2.923,-2.930,-2.937,-2.944,-2.951,-2.959,-2.966, - &-2.973,-2.980,-2.987,-2.994,-3.001,-3.008,-3.015,-3.022,-3.029, - &-3.036,-3.043,-3.050,-3.057,-3.064,-3.071,-3.078,-3.085,-3.092, - &-3.099,-3.106,-3.113,-3.119,-3.126,-3.133,-3.140,-3.147,-3.154, - &-3.160,-3.167,-3.174,-3.181,-3.187,-3.194,-3.201,-3.208,-3.214, - &-3.221,-3.228,-3.234,-3.241,-3.248,-3.254,-3.261,-3.268,-3.274, - &-3.281,-3.287,-3.294,-3.301,-3.307,-3.314,-3.320,-3.327,-3.334, - &-3.340,-3.347,-3.353 - & /) -! -! *** KCL -! - Real(kind=fp), Parameter, Dimension(561) :: BNC20M_198 = (/ - &-0.051,-0.108,-0.135,-0.154,-0.169,-0.180,-0.190,-0.198,-0.205, - &-0.211,-0.217,-0.222,-0.226,-0.231,-0.234,-0.238,-0.241,-0.244, - &-0.246,-0.249,-0.251,-0.253,-0.255,-0.257,-0.259,-0.261,-0.262, - &-0.264,-0.265,-0.267,-0.268,-0.269,-0.270,-0.271,-0.272,-0.273, - &-0.274,-0.275,-0.276,-0.277,-0.278,-0.278,-0.279,-0.280,-0.280, - &-0.281,-0.282,-0.282,-0.283,-0.283,-0.284,-0.285,-0.285,-0.286, - &-0.286,-0.287,-0.287,-0.287,-0.288,-0.288,-0.289,-0.289,-0.289, - &-0.290,-0.290,-0.291,-0.291,-0.291,-0.292,-0.292,-0.292,-0.292, - &-0.293,-0.293,-0.293,-0.293,-0.294,-0.294,-0.294,-0.294,-0.294, - &-0.295,-0.295,-0.295,-0.295,-0.295,-0.295,-0.295,-0.295,-0.295, - &-0.295,-0.296,-0.296,-0.296,-0.296,-0.296,-0.296,-0.296,-0.296, - &-0.295,-0.295,-0.295,-0.295,-0.295,-0.295,-0.295,-0.295,-0.295, - &-0.295,-0.295,-0.294,-0.294,-0.294,-0.294,-0.294,-0.294,-0.294, - &-0.293,-0.293,-0.293,-0.293,-0.293,-0.293,-0.292,-0.292,-0.292, - &-0.292,-0.292,-0.291,-0.291,-0.291,-0.291,-0.291,-0.290,-0.290, - &-0.290,-0.290,-0.290,-0.289,-0.289,-0.289,-0.289,-0.289,-0.288, - &-0.288,-0.288,-0.288,-0.287,-0.287,-0.287,-0.287,-0.287,-0.286, - &-0.286,-0.286,-0.286,-0.285,-0.285,-0.285,-0.285,-0.285,-0.284, - &-0.284,-0.284,-0.284,-0.283,-0.283,-0.283,-0.283,-0.283,-0.282, - &-0.282,-0.282,-0.282,-0.281,-0.281,-0.281,-0.281,-0.281,-0.280, - &-0.280,-0.280,-0.280,-0.279,-0.279,-0.279,-0.279,-0.279,-0.278, - &-0.278,-0.278,-0.278,-0.278,-0.277,-0.277,-0.277,-0.277,-0.276, - &-0.276,-0.276,-0.276,-0.276,-0.275,-0.275,-0.275,-0.275,-0.275, - &-0.274,-0.274,-0.274,-0.274,-0.274,-0.273,-0.273,-0.273,-0.273, - &-0.273,-0.272,-0.272,-0.272,-0.272,-0.272,-0.271,-0.271,-0.271, - &-0.271,-0.271,-0.270,-0.270,-0.270,-0.270,-0.270,-0.270,-0.269, - &-0.269,-0.269,-0.269,-0.269,-0.268,-0.268,-0.268,-0.268,-0.268, - &-0.268,-0.267,-0.267,-0.267,-0.267,-0.267,-0.266,-0.266,-0.266, - &-0.266,-0.266,-0.266,-0.265,-0.265,-0.265,-0.265,-0.265,-0.265, - &-0.264,-0.264,-0.264,-0.264,-0.264,-0.264,-0.263,-0.263,-0.263, - &-0.263,-0.263,-0.263,-0.263,-0.262,-0.262,-0.262,-0.262,-0.262, - &-0.262,-0.261,-0.261,-0.261,-0.261,-0.261,-0.261,-0.261,-0.260, - &-0.260,-0.260,-0.260,-0.260,-0.260,-0.260,-0.260,-0.259,-0.259, - &-0.259,-0.259,-0.259,-0.259,-0.259,-0.258,-0.258,-0.258,-0.258, - &-0.258,-0.258,-0.258,-0.258,-0.257,-0.257,-0.257,-0.257,-0.257, - &-0.257,-0.257,-0.257,-0.257,-0.256,-0.256,-0.256,-0.256,-0.256, - &-0.256,-0.256,-0.256,-0.256,-0.255,-0.255,-0.255,-0.255,-0.255, - &-0.255,-0.255,-0.255,-0.255,-0.255,-0.254,-0.254,-0.254,-0.254, - &-0.254,-0.254,-0.254,-0.254,-0.254,-0.254,-0.253,-0.253,-0.253, - &-0.253,-0.253,-0.253,-0.253,-0.253,-0.253,-0.253,-0.253,-0.253, - &-0.252,-0.252,-0.252,-0.252,-0.252,-0.252,-0.252,-0.252,-0.252, - &-0.252,-0.252,-0.252,-0.252,-0.252,-0.251,-0.251,-0.251,-0.251, - &-0.251,-0.251,-0.251,-0.251,-0.251,-0.251,-0.251,-0.251,-0.251, - &-0.251,-0.251,-0.251,-0.250,-0.250,-0.250,-0.250,-0.250,-0.250, - &-0.250,-0.250,-0.250,-0.250,-0.250,-0.249,-0.249,-0.249,-0.248, - &-0.248,-0.248,-0.248,-0.249,-0.249,-0.249,-0.249,-0.250,-0.250, - &-0.251,-0.251,-0.252,-0.252,-0.253,-0.254,-0.255,-0.255,-0.256, - &-0.257,-0.258,-0.259,-0.261,-0.262,-0.263,-0.264,-0.265,-0.267, - &-0.268,-0.269,-0.271,-0.272,-0.274,-0.276,-0.277,-0.279,-0.280, - &-0.282,-0.284,-0.286,-0.287,-0.289,-0.291,-0.293,-0.295,-0.297, - &-0.299,-0.301,-0.303,-0.305,-0.307,-0.309,-0.312,-0.314,-0.316, - &-0.318,-0.321,-0.323,-0.325,-0.328,-0.330,-0.332,-0.335,-0.337, - &-0.340,-0.342,-0.345,-0.347,-0.350,-0.352,-0.355,-0.358,-0.360, - &-0.363,-0.366,-0.368,-0.371,-0.374,-0.377,-0.379,-0.382,-0.385, - &-0.388,-0.391,-0.394,-0.396,-0.399,-0.402,-0.405,-0.408,-0.411, - &-0.414,-0.417,-0.420,-0.423,-0.426,-0.429,-0.432,-0.436,-0.439, - &-0.442,-0.445,-0.448,-0.451,-0.454,-0.458,-0.461,-0.464,-0.467, - &-0.471,-0.474,-0.477,-0.480,-0.484,-0.487,-0.490,-0.494,-0.497, - &-0.500,-0.504,-0.507,-0.511,-0.514,-0.517,-0.521,-0.524,-0.528, - &-0.531,-0.535,-0.538,-0.542,-0.545,-0.549,-0.552,-0.556,-0.559, - &-0.563,-0.566,-0.570,-0.574,-0.577,-0.581,-0.584,-0.588,-0.592, - &-0.595,-0.599,-0.603,-0.606,-0.610,-0.614,-0.617,-0.621,-0.625, - &-0.628,-0.632,-0.636 - & /) -! -! *** MGSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC21M_198 = (/ - &-0.205,-0.445,-0.564,-0.649,-0.715,-0.770,-0.817,-0.858,-0.895, - &-0.928,-0.958,-0.986,-1.012,-1.036,-1.058,-1.079,-1.099,-1.118, - &-1.136,-1.153,-1.170,-1.185,-1.200,-1.215,-1.229,-1.242,-1.255, - &-1.268,-1.280,-1.292,-1.303,-1.315,-1.325,-1.336,-1.346,-1.357, - &-1.366,-1.376,-1.386,-1.395,-1.404,-1.413,-1.421,-1.430,-1.438, - &-1.447,-1.455,-1.463,-1.471,-1.478,-1.486,-1.494,-1.501,-1.508, - &-1.515,-1.523,-1.530,-1.536,-1.543,-1.550,-1.557,-1.563,-1.570, - &-1.576,-1.583,-1.589,-1.595,-1.601,-1.607,-1.613,-1.619,-1.625, - &-1.631,-1.637,-1.643,-1.648,-1.654,-1.659,-1.665,-1.670,-1.676, - &-1.681,-1.687,-1.692,-1.697,-1.702,-1.707,-1.713,-1.718,-1.723, - &-1.728,-1.733,-1.738,-1.742,-1.747,-1.752,-1.757,-1.762,-1.766, - &-1.771,-1.776,-1.780,-1.785,-1.789,-1.794,-1.798,-1.803,-1.807, - &-1.812,-1.816,-1.820,-1.825,-1.829,-1.833,-1.838,-1.842,-1.846, - &-1.850,-1.854,-1.858,-1.863,-1.867,-1.871,-1.875,-1.879,-1.883, - &-1.887,-1.891,-1.895,-1.899,-1.903,-1.907,-1.911,-1.915,-1.919, - &-1.922,-1.926,-1.930,-1.934,-1.938,-1.942,-1.945,-1.949,-1.953, - &-1.957,-1.960,-1.964,-1.968,-1.972,-1.975,-1.979,-1.983,-1.986, - &-1.990,-1.994,-1.997,-2.001,-2.004,-2.008,-2.012,-2.015,-2.019, - &-2.022,-2.026,-2.029,-2.033,-2.036,-2.040,-2.043,-2.047,-2.050, - &-2.054,-2.057,-2.061,-2.064,-2.068,-2.071,-2.074,-2.078,-2.081, - &-2.085,-2.088,-2.091,-2.095,-2.098,-2.102,-2.105,-2.108,-2.112, - &-2.115,-2.118,-2.122,-2.125,-2.128,-2.132,-2.135,-2.138,-2.141, - &-2.145,-2.148,-2.151,-2.154,-2.158,-2.161,-2.164,-2.167,-2.171, - &-2.174,-2.177,-2.180,-2.184,-2.187,-2.190,-2.193,-2.196,-2.200, - &-2.203,-2.206,-2.209,-2.212,-2.215,-2.219,-2.222,-2.225,-2.228, - &-2.231,-2.234,-2.237,-2.241,-2.244,-2.247,-2.250,-2.253,-2.256, - &-2.259,-2.262,-2.265,-2.269,-2.272,-2.275,-2.278,-2.281,-2.284, - &-2.287,-2.290,-2.293,-2.296,-2.299,-2.302,-2.305,-2.308,-2.311, - &-2.314,-2.317,-2.320,-2.324,-2.327,-2.330,-2.333,-2.336,-2.339, - &-2.342,-2.345,-2.348,-2.351,-2.354,-2.357,-2.360,-2.363,-2.366, - &-2.369,-2.371,-2.374,-2.377,-2.380,-2.383,-2.386,-2.389,-2.392, - &-2.395,-2.398,-2.401,-2.404,-2.407,-2.410,-2.413,-2.416,-2.419, - &-2.422,-2.425,-2.427,-2.430,-2.433,-2.436,-2.439,-2.442,-2.445, - &-2.448,-2.451,-2.454,-2.457,-2.460,-2.462,-2.465,-2.468,-2.471, - &-2.474,-2.477,-2.480,-2.483,-2.485,-2.488,-2.491,-2.494,-2.497, - &-2.500,-2.503,-2.506,-2.508,-2.511,-2.514,-2.517,-2.520,-2.523, - &-2.526,-2.528,-2.531,-2.534,-2.537,-2.540,-2.543,-2.546,-2.548, - &-2.551,-2.554,-2.557,-2.560,-2.563,-2.565,-2.568,-2.571,-2.574, - &-2.577,-2.579,-2.582,-2.585,-2.588,-2.591,-2.594,-2.596,-2.599, - &-2.602,-2.605,-2.608,-2.610,-2.613,-2.616,-2.619,-2.622,-2.624, - &-2.627,-2.630,-2.633,-2.635,-2.638,-2.641,-2.644,-2.647,-2.649, - &-2.652,-2.655,-2.658,-2.661,-2.663,-2.666,-2.669,-2.672,-2.674, - &-2.677,-2.680,-2.683,-2.685,-2.688,-2.691,-2.694,-2.696,-2.699, - &-2.702,-2.705,-2.707,-2.710,-2.713,-2.716,-2.718,-2.721,-2.724, - &-2.727,-2.729,-2.732,-2.735,-2.765,-2.792,-2.819,-2.846,-2.873, - &-2.900,-2.927,-2.953,-2.980,-3.006,-3.033,-3.059,-3.086,-3.112, - &-3.138,-3.164,-3.191,-3.217,-3.243,-3.269,-3.295,-3.321,-3.346, - &-3.372,-3.398,-3.424,-3.449,-3.475,-3.501,-3.526,-3.552,-3.578, - &-3.603,-3.629,-3.654,-3.679,-3.705,-3.730,-3.755,-3.781,-3.806, - &-3.831,-3.857,-3.882,-3.907,-3.932,-3.957,-3.982,-4.008,-4.033, - &-4.058,-4.083,-4.108,-4.133,-4.158,-4.183,-4.208,-4.233,-4.258, - &-4.282,-4.307,-4.332,-4.357,-4.382,-4.407,-4.431,-4.456,-4.481, - &-4.506,-4.530,-4.555,-4.580,-4.605,-4.629,-4.654,-4.679,-4.703, - &-4.728,-4.752,-4.777,-4.802,-4.826,-4.851,-4.875,-4.900,-4.924, - &-4.949,-4.973,-4.998,-5.022,-5.047,-5.071,-5.096,-5.120,-5.145, - &-5.169,-5.193,-5.218,-5.242,-5.267,-5.291,-5.315,-5.340,-5.364, - &-5.388,-5.413,-5.437,-5.461,-5.485,-5.510,-5.534,-5.558,-5.582, - &-5.607,-5.631,-5.655,-5.679,-5.703,-5.728,-5.752,-5.776,-5.800, - &-5.824,-5.848,-5.873,-5.897,-5.921,-5.945,-5.969,-5.993,-6.017, - &-6.041,-6.065,-6.089,-6.113,-6.137,-6.161,-6.186,-6.210,-6.234, - &-6.258,-6.282,-6.306,-6.329,-6.353,-6.377,-6.401,-6.425,-6.449, - &-6.473,-6.497,-6.521,-6.545,-6.569,-6.593,-6.617,-6.641,-6.664, - &-6.688,-6.712,-6.736 - & /) -! -! *** MGNO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC22M_198 = (/ - &-0.099,-0.205,-0.253,-0.283,-0.305,-0.322,-0.335,-0.345,-0.353, - &-0.359,-0.364,-0.368,-0.371,-0.374,-0.375,-0.376,-0.377,-0.377, - &-0.376,-0.376,-0.375,-0.373,-0.372,-0.370,-0.368,-0.366,-0.364, - &-0.361,-0.359,-0.356,-0.353,-0.350,-0.347,-0.344,-0.341,-0.338, - &-0.334,-0.331,-0.328,-0.324,-0.321,-0.317,-0.314,-0.310,-0.306, - &-0.303,-0.299,-0.295,-0.292,-0.288,-0.284,-0.281,-0.277,-0.273, - &-0.270,-0.266,-0.262,-0.258,-0.255,-0.251,-0.247,-0.243,-0.240, - &-0.236,-0.232,-0.228,-0.225,-0.221,-0.217,-0.213,-0.209,-0.205, - &-0.201,-0.197,-0.194,-0.190,-0.186,-0.182,-0.177,-0.173,-0.169, - &-0.165,-0.161,-0.157,-0.153,-0.148,-0.144,-0.140,-0.135,-0.131, - &-0.126,-0.122,-0.117,-0.113,-0.108,-0.104,-0.099,-0.094,-0.090, - &-0.085,-0.080,-0.075,-0.070,-0.066,-0.061,-0.056,-0.051,-0.046, - &-0.041,-0.036,-0.031,-0.026,-0.021,-0.016,-0.011,-0.006,-0.001, - & 0.004, 0.010, 0.015, 0.020, 0.025, 0.030, 0.035, 0.040, 0.045, - & 0.050, 0.056, 0.061, 0.066, 0.071, 0.076, 0.081, 0.086, 0.092, - & 0.097, 0.102, 0.107, 0.112, 0.117, 0.122, 0.127, 0.132, 0.137, - & 0.143, 0.148, 0.153, 0.158, 0.163, 0.168, 0.173, 0.178, 0.183, - & 0.188, 0.193, 0.198, 0.203, 0.208, 0.213, 0.218, 0.223, 0.228, - & 0.233, 0.238, 0.243, 0.248, 0.253, 0.258, 0.262, 0.267, 0.272, - & 0.277, 0.282, 0.287, 0.292, 0.297, 0.302, 0.306, 0.311, 0.316, - & 0.321, 0.326, 0.331, 0.335, 0.340, 0.345, 0.350, 0.354, 0.359, - & 0.364, 0.369, 0.373, 0.378, 0.383, 0.388, 0.392, 0.397, 0.402, - & 0.406, 0.411, 0.416, 0.420, 0.425, 0.430, 0.434, 0.439, 0.444, - & 0.448, 0.453, 0.457, 0.462, 0.466, 0.471, 0.476, 0.480, 0.485, - & 0.489, 0.494, 0.498, 0.503, 0.507, 0.512, 0.516, 0.521, 0.525, - & 0.530, 0.534, 0.538, 0.543, 0.547, 0.552, 0.556, 0.561, 0.565, - & 0.569, 0.574, 0.578, 0.582, 0.587, 0.591, 0.595, 0.600, 0.604, - & 0.608, 0.613, 0.617, 0.621, 0.625, 0.630, 0.634, 0.638, 0.642, - & 0.647, 0.651, 0.655, 0.659, 0.664, 0.668, 0.672, 0.676, 0.680, - & 0.684, 0.689, 0.693, 0.697, 0.701, 0.705, 0.709, 0.713, 0.717, - & 0.721, 0.726, 0.730, 0.734, 0.738, 0.742, 0.746, 0.750, 0.754, - & 0.758, 0.762, 0.766, 0.770, 0.774, 0.778, 0.782, 0.786, 0.790, - & 0.794, 0.798, 0.801, 0.805, 0.809, 0.813, 0.817, 0.821, 0.825, - & 0.829, 0.833, 0.836, 0.840, 0.844, 0.848, 0.852, 0.856, 0.859, - & 0.863, 0.867, 0.871, 0.875, 0.878, 0.882, 0.886, 0.890, 0.893, - & 0.897, 0.901, 0.905, 0.908, 0.912, 0.916, 0.919, 0.923, 0.927, - & 0.931, 0.934, 0.938, 0.941, 0.945, 0.949, 0.952, 0.956, 0.960, - & 0.963, 0.967, 0.970, 0.974, 0.978, 0.981, 0.985, 0.988, 0.992, - & 0.995, 0.999, 1.002, 1.006, 1.010, 1.013, 1.017, 1.020, 1.024, - & 1.027, 1.031, 1.034, 1.037, 1.041, 1.044, 1.048, 1.051, 1.055, - & 1.058, 1.061, 1.065, 1.068, 1.072, 1.075, 1.078, 1.082, 1.085, - & 1.089, 1.092, 1.095, 1.099, 1.102, 1.105, 1.109, 1.112, 1.115, - & 1.119, 1.122, 1.125, 1.128, 1.132, 1.135, 1.138, 1.142, 1.145, - & 1.148, 1.151, 1.155, 1.158, 1.161, 1.164, 1.167, 1.171, 1.174, - & 1.177, 1.180, 1.183, 1.187, 1.220, 1.251, 1.281, 1.311, 1.340, - & 1.369, 1.397, 1.424, 1.451, 1.477, 1.503, 1.529, 1.554, 1.579, - & 1.603, 1.627, 1.650, 1.673, 1.695, 1.717, 1.739, 1.760, 1.781, - & 1.802, 1.822, 1.842, 1.862, 1.881, 1.900, 1.918, 1.937, 1.955, - & 1.972, 1.990, 2.007, 2.024, 2.040, 2.056, 2.072, 2.088, 2.103, - & 2.119, 2.134, 2.148, 2.163, 2.177, 2.191, 2.205, 2.218, 2.231, - & 2.245, 2.257, 2.270, 2.283, 2.295, 2.307, 2.319, 2.330, 2.342, - & 2.353, 2.364, 2.375, 2.386, 2.397, 2.407, 2.417, 2.427, 2.437, - & 2.447, 2.456, 2.466, 2.475, 2.484, 2.493, 2.502, 2.511, 2.519, - & 2.528, 2.536, 2.544, 2.552, 2.560, 2.567, 2.575, 2.582, 2.590, - & 2.597, 2.604, 2.611, 2.618, 2.624, 2.631, 2.637, 2.644, 2.650, - & 2.656, 2.662, 2.668, 2.674, 2.680, 2.685, 2.691, 2.696, 2.701, - & 2.706, 2.712, 2.717, 2.721, 2.726, 2.731, 2.735, 2.740, 2.744, - & 2.749, 2.753, 2.757, 2.761, 2.765, 2.769, 2.773, 2.777, 2.780, - & 2.784, 2.787, 2.791, 2.794, 2.797, 2.801, 2.804, 2.807, 2.810, - & 2.812, 2.815, 2.818, 2.821, 2.823, 2.826, 2.828, 2.831, 2.833, - & 2.835, 2.837, 2.839, 2.841, 2.843, 2.845, 2.847, 2.849, 2.851, - & 2.852, 2.854, 2.856, 2.857, 2.859, 2.860, 2.861, 2.862, 2.864, - & 2.865, 2.866, 2.867 - & /) -! -! *** MGCL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC23M_198 = (/ - &-0.098,-0.202,-0.247,-0.275,-0.294,-0.308,-0.319,-0.327,-0.333, - &-0.337,-0.340,-0.342,-0.343,-0.343,-0.343,-0.341,-0.340,-0.338, - &-0.336,-0.333,-0.330,-0.326,-0.323,-0.319,-0.315,-0.311,-0.306, - &-0.302,-0.297,-0.293,-0.288,-0.283,-0.278,-0.273,-0.267,-0.262, - &-0.257,-0.251,-0.246,-0.241,-0.235,-0.230,-0.224,-0.218,-0.213, - &-0.207,-0.202,-0.196,-0.190,-0.185,-0.179,-0.174,-0.168,-0.162, - &-0.157,-0.151,-0.145,-0.140,-0.134,-0.128,-0.123,-0.117,-0.111, - &-0.106,-0.100,-0.094,-0.089,-0.083,-0.077,-0.071,-0.066,-0.060, - &-0.054,-0.048,-0.042,-0.037,-0.031,-0.025,-0.019,-0.013,-0.007, - &-0.001, 0.006, 0.012, 0.018, 0.024, 0.030, 0.037, 0.043, 0.049, - & 0.056, 0.062, 0.069, 0.075, 0.082, 0.089, 0.095, 0.102, 0.109, - & 0.116, 0.122, 0.129, 0.136, 0.143, 0.150, 0.157, 0.164, 0.171, - & 0.178, 0.185, 0.192, 0.199, 0.207, 0.214, 0.221, 0.228, 0.235, - & 0.242, 0.250, 0.257, 0.264, 0.271, 0.278, 0.286, 0.293, 0.300, - & 0.307, 0.315, 0.322, 0.329, 0.336, 0.344, 0.351, 0.358, 0.365, - & 0.372, 0.380, 0.387, 0.394, 0.401, 0.408, 0.416, 0.423, 0.430, - & 0.437, 0.444, 0.451, 0.458, 0.466, 0.473, 0.480, 0.487, 0.494, - & 0.501, 0.508, 0.515, 0.522, 0.529, 0.536, 0.543, 0.550, 0.557, - & 0.564, 0.571, 0.578, 0.585, 0.592, 0.599, 0.606, 0.613, 0.620, - & 0.626, 0.633, 0.640, 0.647, 0.654, 0.661, 0.667, 0.674, 0.681, - & 0.688, 0.695, 0.701, 0.708, 0.715, 0.722, 0.728, 0.735, 0.742, - & 0.748, 0.755, 0.762, 0.768, 0.775, 0.782, 0.788, 0.795, 0.801, - & 0.808, 0.815, 0.821, 0.828, 0.834, 0.841, 0.847, 0.854, 0.860, - & 0.867, 0.873, 0.879, 0.886, 0.892, 0.899, 0.905, 0.912, 0.918, - & 0.924, 0.931, 0.937, 0.943, 0.950, 0.956, 0.962, 0.968, 0.975, - & 0.981, 0.987, 0.993, 1.000, 1.006, 1.012, 1.018, 1.024, 1.031, - & 1.037, 1.043, 1.049, 1.055, 1.061, 1.067, 1.073, 1.080, 1.086, - & 1.092, 1.098, 1.104, 1.110, 1.116, 1.122, 1.128, 1.134, 1.140, - & 1.146, 1.151, 1.157, 1.163, 1.169, 1.175, 1.181, 1.187, 1.193, - & 1.199, 1.204, 1.210, 1.216, 1.222, 1.228, 1.233, 1.239, 1.245, - & 1.251, 1.256, 1.262, 1.268, 1.273, 1.279, 1.285, 1.291, 1.296, - & 1.302, 1.307, 1.313, 1.319, 1.324, 1.330, 1.335, 1.341, 1.347, - & 1.352, 1.358, 1.363, 1.369, 1.374, 1.380, 1.385, 1.391, 1.396, - & 1.402, 1.407, 1.412, 1.418, 1.423, 1.429, 1.434, 1.439, 1.445, - & 1.450, 1.455, 1.461, 1.466, 1.471, 1.477, 1.482, 1.487, 1.493, - & 1.498, 1.503, 1.508, 1.514, 1.519, 1.524, 1.529, 1.534, 1.540, - & 1.545, 1.550, 1.555, 1.560, 1.565, 1.570, 1.576, 1.581, 1.586, - & 1.591, 1.596, 1.601, 1.606, 1.611, 1.616, 1.621, 1.626, 1.631, - & 1.636, 1.641, 1.646, 1.651, 1.656, 1.661, 1.666, 1.671, 1.676, - & 1.681, 1.686, 1.691, 1.695, 1.700, 1.705, 1.710, 1.715, 1.720, - & 1.725, 1.729, 1.734, 1.739, 1.744, 1.749, 1.753, 1.758, 1.763, - & 1.768, 1.772, 1.777, 1.782, 1.786, 1.791, 1.796, 1.801, 1.805, - & 1.810, 1.815, 1.819, 1.824, 1.829, 1.833, 1.838, 1.842, 1.847, - & 1.852, 1.856, 1.861, 1.865, 1.870, 1.874, 1.879, 1.883, 1.888, - & 1.892, 1.897, 1.902, 1.906, 1.954, 1.998, 2.040, 2.082, 2.124, - & 2.164, 2.204, 2.243, 2.282, 2.319, 2.356, 2.393, 2.429, 2.464, - & 2.499, 2.533, 2.567, 2.600, 2.632, 2.664, 2.695, 2.726, 2.757, - & 2.787, 2.816, 2.845, 2.874, 2.902, 2.930, 2.957, 2.984, 3.010, - & 3.036, 3.062, 3.087, 3.112, 3.137, 3.161, 3.185, 3.208, 3.232, - & 3.254, 3.277, 3.299, 3.321, 3.342, 3.364, 3.385, 3.405, 3.426, - & 3.446, 3.466, 3.485, 3.504, 3.523, 3.542, 3.561, 3.579, 3.597, - & 3.615, 3.632, 3.649, 3.666, 3.683, 3.700, 3.716, 3.732, 3.748, - & 3.764, 3.779, 3.795, 3.810, 3.825, 3.839, 3.854, 3.868, 3.882, - & 3.896, 3.910, 3.924, 3.937, 3.950, 3.964, 3.976, 3.989, 4.002, - & 4.014, 4.026, 4.039, 4.050, 4.062, 4.074, 4.085, 4.097, 4.108, - & 4.119, 4.130, 4.141, 4.151, 4.162, 4.172, 4.182, 4.192, 4.202, - & 4.212, 4.222, 4.231, 4.241, 4.250, 4.259, 4.268, 4.277, 4.286, - & 4.295, 4.304, 4.312, 4.321, 4.329, 4.337, 4.345, 4.353, 4.361, - & 4.369, 4.376, 4.384, 4.391, 4.399, 4.406, 4.413, 4.420, 4.427, - & 4.434, 4.441, 4.447, 4.454, 4.460, 4.467, 4.473, 4.479, 4.485, - & 4.491, 4.497, 4.503, 4.509, 4.515, 4.520, 4.526, 4.531, 4.537, - & 4.542, 4.547, 4.552, 4.557, 4.562, 4.567, 4.572, 4.577, 4.582, - & 4.586, 4.591, 4.595 - & /) - - ! Formerly BLOCK DATA KMCF223 -! -! *** NaCl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC01M_223 = (/ - &-0.049,-0.101,-0.124,-0.140,-0.151,-0.159,-0.166,-0.171,-0.175, - &-0.178,-0.181,-0.183,-0.185,-0.187,-0.188,-0.188,-0.189,-0.189, - &-0.189,-0.189,-0.189,-0.189,-0.188,-0.187,-0.187,-0.186,-0.185, - &-0.184,-0.183,-0.182,-0.181,-0.180,-0.178,-0.177,-0.176,-0.174, - &-0.173,-0.172,-0.170,-0.169,-0.167,-0.166,-0.164,-0.163,-0.161, - &-0.159,-0.158,-0.156,-0.155,-0.153,-0.151,-0.150,-0.148,-0.147, - &-0.145,-0.143,-0.142,-0.140,-0.138,-0.137,-0.135,-0.134,-0.132, - &-0.130,-0.128,-0.127,-0.125,-0.123,-0.122,-0.120,-0.118,-0.117, - &-0.115,-0.113,-0.111,-0.110,-0.108,-0.106,-0.104,-0.102,-0.101, - &-0.099,-0.097,-0.095,-0.093,-0.091,-0.089,-0.087,-0.085,-0.083, - &-0.081,-0.079,-0.077,-0.075,-0.073,-0.071,-0.069,-0.067,-0.065, - &-0.063,-0.061,-0.058,-0.056,-0.054,-0.052,-0.050,-0.048,-0.045, - &-0.043,-0.041,-0.039,-0.036,-0.034,-0.032,-0.030,-0.027,-0.025, - &-0.023,-0.020,-0.018,-0.016,-0.014,-0.011,-0.009,-0.007,-0.004, - &-0.002, 0.000, 0.003, 0.005, 0.007, 0.010, 0.012, 0.014, 0.016, - & 0.019, 0.021, 0.023, 0.026, 0.028, 0.030, 0.033, 0.035, 0.037, - & 0.039, 0.042, 0.044, 0.046, 0.049, 0.051, 0.053, 0.055, 0.058, - & 0.060, 0.062, 0.064, 0.067, 0.069, 0.071, 0.073, 0.076, 0.078, - & 0.080, 0.082, 0.085, 0.087, 0.089, 0.091, 0.094, 0.096, 0.098, - & 0.100, 0.102, 0.105, 0.107, 0.109, 0.111, 0.113, 0.116, 0.118, - & 0.120, 0.122, 0.124, 0.126, 0.129, 0.131, 0.133, 0.135, 0.137, - & 0.139, 0.142, 0.144, 0.146, 0.148, 0.150, 0.152, 0.154, 0.157, - & 0.159, 0.161, 0.163, 0.165, 0.167, 0.169, 0.171, 0.173, 0.175, - & 0.178, 0.180, 0.182, 0.184, 0.186, 0.188, 0.190, 0.192, 0.194, - & 0.196, 0.198, 0.200, 0.202, 0.204, 0.206, 0.208, 0.211, 0.213, - & 0.215, 0.217, 0.219, 0.221, 0.223, 0.225, 0.227, 0.229, 0.231, - & 0.233, 0.235, 0.237, 0.239, 0.241, 0.243, 0.245, 0.246, 0.248, - & 0.250, 0.252, 0.254, 0.256, 0.258, 0.260, 0.262, 0.264, 0.266, - & 0.268, 0.270, 0.272, 0.274, 0.276, 0.277, 0.279, 0.281, 0.283, - & 0.285, 0.287, 0.289, 0.291, 0.293, 0.295, 0.296, 0.298, 0.300, - & 0.302, 0.304, 0.306, 0.308, 0.309, 0.311, 0.313, 0.315, 0.317, - & 0.319, 0.320, 0.322, 0.324, 0.326, 0.328, 0.330, 0.331, 0.333, - & 0.335, 0.337, 0.339, 0.340, 0.342, 0.344, 0.346, 0.348, 0.349, - & 0.351, 0.353, 0.355, 0.356, 0.358, 0.360, 0.362, 0.363, 0.365, - & 0.367, 0.369, 0.370, 0.372, 0.374, 0.376, 0.377, 0.379, 0.381, - & 0.383, 0.384, 0.386, 0.388, 0.389, 0.391, 0.393, 0.394, 0.396, - & 0.398, 0.400, 0.401, 0.403, 0.405, 0.406, 0.408, 0.410, 0.411, - & 0.413, 0.415, 0.416, 0.418, 0.420, 0.421, 0.423, 0.424, 0.426, - & 0.428, 0.429, 0.431, 0.433, 0.434, 0.436, 0.437, 0.439, 0.441, - & 0.442, 0.444, 0.446, 0.447, 0.449, 0.450, 0.452, 0.453, 0.455, - & 0.457, 0.458, 0.460, 0.461, 0.463, 0.464, 0.466, 0.468, 0.469, - & 0.471, 0.472, 0.474, 0.475, 0.477, 0.478, 0.480, 0.482, 0.483, - & 0.485, 0.486, 0.488, 0.489, 0.491, 0.492, 0.494, 0.495, 0.497, - & 0.498, 0.500, 0.501, 0.503, 0.504, 0.506, 0.507, 0.509, 0.510, - & 0.512, 0.513, 0.515, 0.516, 0.532, 0.546, 0.560, 0.574, 0.588, - & 0.601, 0.614, 0.627, 0.639, 0.652, 0.664, 0.676, 0.688, 0.700, - & 0.711, 0.722, 0.733, 0.744, 0.755, 0.765, 0.776, 0.786, 0.796, - & 0.806, 0.816, 0.825, 0.835, 0.844, 0.853, 0.862, 0.871, 0.880, - & 0.888, 0.897, 0.905, 0.913, 0.921, 0.929, 0.937, 0.945, 0.952, - & 0.960, 0.967, 0.975, 0.982, 0.989, 0.996, 1.003, 1.009, 1.016, - & 1.023, 1.029, 1.036, 1.042, 1.048, 1.054, 1.060, 1.066, 1.072, - & 1.078, 1.084, 1.089, 1.095, 1.100, 1.106, 1.111, 1.116, 1.121, - & 1.126, 1.131, 1.136, 1.141, 1.146, 1.151, 1.156, 1.160, 1.165, - & 1.169, 1.174, 1.178, 1.182, 1.187, 1.191, 1.195, 1.199, 1.203, - & 1.207, 1.211, 1.215, 1.219, 1.223, 1.226, 1.230, 1.234, 1.237, - & 1.241, 1.244, 1.247, 1.251, 1.254, 1.257, 1.261, 1.264, 1.267, - & 1.270, 1.273, 1.276, 1.279, 1.282, 1.285, 1.288, 1.291, 1.293, - & 1.296, 1.299, 1.301, 1.304, 1.306, 1.309, 1.311, 1.314, 1.316, - & 1.319, 1.321, 1.323, 1.326, 1.328, 1.330, 1.332, 1.334, 1.336, - & 1.339, 1.341, 1.343, 1.345, 1.347, 1.348, 1.350, 1.352, 1.354, - & 1.356, 1.358, 1.359, 1.361, 1.363, 1.364, 1.366, 1.368, 1.369, - & 1.371, 1.372, 1.374, 1.375, 1.377, 1.378, 1.379, 1.381, 1.382, - & 1.383, 1.385, 1.386 - & /) -! -! *** Na2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC02M_223 = (/ - &-0.100,-0.220,-0.280,-0.323,-0.357,-0.385,-0.409,-0.431,-0.450, - &-0.468,-0.484,-0.499,-0.513,-0.526,-0.538,-0.549,-0.560,-0.571, - &-0.581,-0.590,-0.600,-0.608,-0.617,-0.625,-0.633,-0.641,-0.648, - &-0.655,-0.662,-0.669,-0.676,-0.682,-0.689,-0.695,-0.701,-0.707, - &-0.713,-0.718,-0.724,-0.729,-0.735,-0.740,-0.745,-0.750,-0.755, - &-0.760,-0.765,-0.769,-0.774,-0.779,-0.783,-0.788,-0.792,-0.796, - &-0.800,-0.805,-0.809,-0.813,-0.817,-0.821,-0.825,-0.829,-0.833, - &-0.836,-0.840,-0.844,-0.848,-0.851,-0.855,-0.858,-0.862,-0.866, - &-0.869,-0.873,-0.876,-0.879,-0.883,-0.886,-0.889,-0.893,-0.896, - &-0.899,-0.902,-0.906,-0.909,-0.912,-0.915,-0.918,-0.921,-0.924, - &-0.927,-0.930,-0.933,-0.936,-0.939,-0.942,-0.945,-0.948,-0.951, - &-0.954,-0.957,-0.960,-0.963,-0.966,-0.968,-0.971,-0.974,-0.977, - &-0.980,-0.982,-0.985,-0.988,-0.991,-0.993,-0.996,-0.999,-1.001, - &-1.004,-1.007,-1.009,-1.012,-1.015,-1.017,-1.020,-1.022,-1.025, - &-1.028,-1.030,-1.033,-1.035,-1.038,-1.040,-1.043,-1.045,-1.048, - &-1.050,-1.053,-1.055,-1.058,-1.060,-1.062,-1.065,-1.067,-1.070, - &-1.072,-1.074,-1.077,-1.079,-1.082,-1.084,-1.086,-1.089,-1.091, - &-1.093,-1.096,-1.098,-1.100,-1.102,-1.105,-1.107,-1.109,-1.112, - &-1.114,-1.116,-1.118,-1.121,-1.123,-1.125,-1.127,-1.129,-1.132, - &-1.134,-1.136,-1.138,-1.140,-1.143,-1.145,-1.147,-1.149,-1.151, - &-1.153,-1.155,-1.158,-1.160,-1.162,-1.164,-1.166,-1.168,-1.170, - &-1.172,-1.174,-1.177,-1.179,-1.181,-1.183,-1.185,-1.187,-1.189, - &-1.191,-1.193,-1.195,-1.197,-1.199,-1.201,-1.203,-1.205,-1.207, - &-1.209,-1.211,-1.213,-1.215,-1.217,-1.219,-1.221,-1.223,-1.225, - &-1.227,-1.229,-1.231,-1.233,-1.235,-1.237,-1.239,-1.241,-1.243, - &-1.245,-1.247,-1.248,-1.250,-1.252,-1.254,-1.256,-1.258,-1.260, - &-1.262,-1.264,-1.266,-1.268,-1.269,-1.271,-1.273,-1.275,-1.277, - &-1.279,-1.281,-1.283,-1.284,-1.286,-1.288,-1.290,-1.292,-1.294, - &-1.296,-1.297,-1.299,-1.301,-1.303,-1.305,-1.306,-1.308,-1.310, - &-1.312,-1.314,-1.316,-1.317,-1.319,-1.321,-1.323,-1.325,-1.326, - &-1.328,-1.330,-1.332,-1.333,-1.335,-1.337,-1.339,-1.341,-1.342, - &-1.344,-1.346,-1.348,-1.349,-1.351,-1.353,-1.355,-1.356,-1.358, - &-1.360,-1.362,-1.363,-1.365,-1.367,-1.369,-1.370,-1.372,-1.374, - &-1.375,-1.377,-1.379,-1.381,-1.382,-1.384,-1.386,-1.387,-1.389, - &-1.391,-1.393,-1.394,-1.396,-1.398,-1.399,-1.401,-1.403,-1.404, - &-1.406,-1.408,-1.409,-1.411,-1.413,-1.414,-1.416,-1.418,-1.419, - &-1.421,-1.423,-1.424,-1.426,-1.428,-1.429,-1.431,-1.433,-1.434, - &-1.436,-1.438,-1.439,-1.441,-1.442,-1.444,-1.446,-1.447,-1.449, - &-1.451,-1.452,-1.454,-1.456,-1.457,-1.459,-1.460,-1.462,-1.464, - &-1.465,-1.467,-1.468,-1.470,-1.472,-1.473,-1.475,-1.476,-1.478, - &-1.480,-1.481,-1.483,-1.484,-1.486,-1.488,-1.489,-1.491,-1.492, - &-1.494,-1.496,-1.497,-1.499,-1.500,-1.502,-1.503,-1.505,-1.507, - &-1.508,-1.510,-1.511,-1.513,-1.514,-1.516,-1.518,-1.519,-1.521, - &-1.522,-1.524,-1.525,-1.527,-1.528,-1.530,-1.531,-1.533,-1.535, - &-1.536,-1.538,-1.539,-1.541,-1.557,-1.572,-1.587,-1.602,-1.617, - &-1.632,-1.647,-1.661,-1.675,-1.690,-1.704,-1.718,-1.732,-1.746, - &-1.760,-1.774,-1.787,-1.801,-1.815,-1.828,-1.841,-1.855,-1.868, - &-1.881,-1.895,-1.908,-1.921,-1.934,-1.947,-1.960,-1.972,-1.985, - &-1.998,-2.011,-2.023,-2.036,-2.048,-2.061,-2.074,-2.086,-2.098, - &-2.111,-2.123,-2.135,-2.148,-2.160,-2.172,-2.184,-2.196,-2.208, - &-2.220,-2.232,-2.244,-2.256,-2.268,-2.280,-2.292,-2.304,-2.315, - &-2.327,-2.339,-2.351,-2.362,-2.374,-2.386,-2.397,-2.409,-2.420, - &-2.432,-2.443,-2.455,-2.466,-2.478,-2.489,-2.501,-2.512,-2.523, - &-2.535,-2.546,-2.557,-2.568,-2.580,-2.591,-2.602,-2.613,-2.625, - &-2.636,-2.647,-2.658,-2.669,-2.680,-2.691,-2.702,-2.713,-2.724, - &-2.735,-2.746,-2.757,-2.768,-2.779,-2.790,-2.801,-2.812,-2.823, - &-2.833,-2.844,-2.855,-2.866,-2.877,-2.888,-2.898,-2.909,-2.920, - &-2.930,-2.941,-2.952,-2.963,-2.973,-2.984,-2.995,-3.005,-3.016, - &-3.026,-3.037,-3.048,-3.058,-3.069,-3.079,-3.090,-3.100,-3.111, - &-3.121,-3.132,-3.142,-3.153,-3.163,-3.174,-3.184,-3.195,-3.205, - &-3.215,-3.226,-3.236,-3.247,-3.257,-3.267,-3.278,-3.288,-3.298, - &-3.309,-3.319,-3.329,-3.340,-3.350,-3.360,-3.370,-3.381,-3.391, - &-3.401,-3.411,-3.422 - & /) -! -! *** NaNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC03M_223 = (/ - &-0.050,-0.111,-0.141,-0.164,-0.181,-0.196,-0.209,-0.220,-0.230, - &-0.239,-0.248,-0.256,-0.263,-0.270,-0.277,-0.283,-0.289,-0.295, - &-0.300,-0.306,-0.311,-0.316,-0.320,-0.325,-0.329,-0.334,-0.338, - &-0.342,-0.346,-0.350,-0.353,-0.357,-0.360,-0.364,-0.367,-0.371, - &-0.374,-0.377,-0.380,-0.384,-0.387,-0.390,-0.392,-0.395,-0.398, - &-0.401,-0.404,-0.406,-0.409,-0.412,-0.414,-0.417,-0.419,-0.422, - &-0.424,-0.427,-0.429,-0.432,-0.434,-0.436,-0.438,-0.441,-0.443, - &-0.445,-0.447,-0.449,-0.452,-0.454,-0.456,-0.458,-0.460,-0.462, - &-0.464,-0.466,-0.468,-0.470,-0.472,-0.474,-0.476,-0.478,-0.480, - &-0.482,-0.484,-0.485,-0.487,-0.489,-0.491,-0.493,-0.495,-0.496, - &-0.498,-0.500,-0.502,-0.504,-0.505,-0.507,-0.509,-0.511,-0.512, - &-0.514,-0.516,-0.518,-0.519,-0.521,-0.523,-0.524,-0.526,-0.528, - &-0.529,-0.531,-0.533,-0.534,-0.536,-0.538,-0.539,-0.541,-0.543, - &-0.544,-0.546,-0.547,-0.549,-0.551,-0.552,-0.554,-0.555,-0.557, - &-0.558,-0.560,-0.561,-0.563,-0.564,-0.566,-0.568,-0.569,-0.571, - &-0.572,-0.574,-0.575,-0.576,-0.578,-0.579,-0.581,-0.582,-0.584, - &-0.585,-0.587,-0.588,-0.590,-0.591,-0.592,-0.594,-0.595,-0.597, - &-0.598,-0.600,-0.601,-0.602,-0.604,-0.605,-0.606,-0.608,-0.609, - &-0.611,-0.612,-0.613,-0.615,-0.616,-0.617,-0.619,-0.620,-0.621, - &-0.623,-0.624,-0.625,-0.627,-0.628,-0.629,-0.631,-0.632,-0.633, - &-0.635,-0.636,-0.637,-0.638,-0.640,-0.641,-0.642,-0.643,-0.645, - &-0.646,-0.647,-0.649,-0.650,-0.651,-0.652,-0.654,-0.655,-0.656, - &-0.657,-0.659,-0.660,-0.661,-0.662,-0.663,-0.665,-0.666,-0.667, - &-0.668,-0.670,-0.671,-0.672,-0.673,-0.674,-0.676,-0.677,-0.678, - &-0.679,-0.680,-0.681,-0.683,-0.684,-0.685,-0.686,-0.687,-0.689, - &-0.690,-0.691,-0.692,-0.693,-0.694,-0.695,-0.697,-0.698,-0.699, - &-0.700,-0.701,-0.702,-0.703,-0.705,-0.706,-0.707,-0.708,-0.709, - &-0.710,-0.711,-0.712,-0.714,-0.715,-0.716,-0.717,-0.718,-0.719, - &-0.720,-0.721,-0.722,-0.724,-0.725,-0.726,-0.727,-0.728,-0.729, - &-0.730,-0.731,-0.732,-0.733,-0.734,-0.736,-0.737,-0.738,-0.739, - &-0.740,-0.741,-0.742,-0.743,-0.744,-0.745,-0.746,-0.747,-0.748, - &-0.749,-0.750,-0.751,-0.753,-0.754,-0.755,-0.756,-0.757,-0.758, - &-0.759,-0.760,-0.761,-0.762,-0.763,-0.764,-0.765,-0.766,-0.767, - &-0.768,-0.769,-0.770,-0.771,-0.772,-0.773,-0.774,-0.775,-0.776, - &-0.777,-0.778,-0.779,-0.780,-0.781,-0.782,-0.783,-0.784,-0.785, - &-0.786,-0.787,-0.788,-0.789,-0.790,-0.791,-0.792,-0.793,-0.794, - &-0.795,-0.796,-0.797,-0.798,-0.799,-0.800,-0.801,-0.802,-0.803, - &-0.804,-0.805,-0.806,-0.807,-0.808,-0.809,-0.810,-0.811,-0.812, - &-0.813,-0.814,-0.815,-0.816,-0.817,-0.818,-0.818,-0.819,-0.820, - &-0.821,-0.822,-0.823,-0.824,-0.825,-0.826,-0.827,-0.828,-0.829, - &-0.830,-0.831,-0.832,-0.833,-0.834,-0.835,-0.835,-0.836,-0.837, - &-0.838,-0.839,-0.840,-0.841,-0.842,-0.843,-0.844,-0.845,-0.846, - &-0.847,-0.848,-0.848,-0.849,-0.850,-0.851,-0.852,-0.853,-0.854, - &-0.855,-0.856,-0.857,-0.858,-0.859,-0.859,-0.860,-0.861,-0.862, - &-0.863,-0.864,-0.865,-0.866,-0.875,-0.884,-0.893,-0.902,-0.910, - &-0.919,-0.927,-0.936,-0.944,-0.952,-0.961,-0.969,-0.977,-0.985, - &-0.993,-1.001,-1.008,-1.016,-1.024,-1.032,-1.039,-1.047,-1.054, - &-1.062,-1.069,-1.077,-1.084,-1.092,-1.099,-1.106,-1.113,-1.121, - &-1.128,-1.135,-1.142,-1.149,-1.156,-1.163,-1.170,-1.177,-1.184, - &-1.191,-1.198,-1.204,-1.211,-1.218,-1.225,-1.231,-1.238,-1.245, - &-1.251,-1.258,-1.265,-1.271,-1.278,-1.284,-1.291,-1.297,-1.304, - &-1.310,-1.317,-1.323,-1.330,-1.336,-1.342,-1.349,-1.355,-1.361, - &-1.368,-1.374,-1.380,-1.386,-1.393,-1.399,-1.405,-1.411,-1.417, - &-1.423,-1.430,-1.436,-1.442,-1.448,-1.454,-1.460,-1.466,-1.472, - &-1.478,-1.484,-1.490,-1.496,-1.502,-1.508,-1.514,-1.520,-1.526, - &-1.532,-1.538,-1.543,-1.549,-1.555,-1.561,-1.567,-1.573,-1.578, - &-1.584,-1.590,-1.596,-1.602,-1.607,-1.613,-1.619,-1.625,-1.630, - &-1.636,-1.642,-1.648,-1.653,-1.659,-1.665,-1.670,-1.676,-1.682, - &-1.687,-1.693,-1.698,-1.704,-1.710,-1.715,-1.721,-1.726,-1.732, - &-1.738,-1.743,-1.749,-1.754,-1.760,-1.765,-1.771,-1.776,-1.782, - &-1.787,-1.793,-1.798,-1.804,-1.809,-1.815,-1.820,-1.826,-1.831, - &-1.837,-1.842,-1.847,-1.853,-1.858,-1.864,-1.869,-1.875,-1.880, - &-1.885,-1.891,-1.896 - & /) -! -! *** (NH4)2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC04M_223 = (/ - &-0.101,-0.220,-0.281,-0.324,-0.358,-0.387,-0.412,-0.434,-0.453, - &-0.471,-0.487,-0.503,-0.517,-0.530,-0.543,-0.555,-0.566,-0.577, - &-0.587,-0.597,-0.606,-0.615,-0.624,-0.632,-0.641,-0.649,-0.656, - &-0.664,-0.671,-0.678,-0.685,-0.692,-0.698,-0.705,-0.711,-0.717, - &-0.723,-0.729,-0.735,-0.740,-0.746,-0.752,-0.757,-0.762,-0.767, - &-0.772,-0.777,-0.782,-0.787,-0.792,-0.797,-0.801,-0.806,-0.810, - &-0.815,-0.819,-0.824,-0.828,-0.832,-0.836,-0.840,-0.844,-0.848, - &-0.852,-0.856,-0.860,-0.864,-0.868,-0.872,-0.876,-0.879,-0.883, - &-0.887,-0.890,-0.894,-0.897,-0.901,-0.904,-0.908,-0.911,-0.915, - &-0.918,-0.922,-0.925,-0.928,-0.932,-0.935,-0.938,-0.942,-0.945, - &-0.948,-0.951,-0.954,-0.958,-0.961,-0.964,-0.967,-0.970,-0.973, - &-0.976,-0.979,-0.982,-0.985,-0.988,-0.991,-0.994,-0.997,-1.000, - &-1.003,-1.006,-1.009,-1.012,-1.015,-1.018,-1.021,-1.024,-1.026, - &-1.029,-1.032,-1.035,-1.038,-1.040,-1.043,-1.046,-1.049,-1.051, - &-1.054,-1.057,-1.060,-1.062,-1.065,-1.068,-1.070,-1.073,-1.076, - &-1.078,-1.081,-1.083,-1.086,-1.089,-1.091,-1.094,-1.096,-1.099, - &-1.102,-1.104,-1.107,-1.109,-1.112,-1.114,-1.117,-1.119,-1.122, - &-1.124,-1.127,-1.129,-1.131,-1.134,-1.136,-1.139,-1.141,-1.144, - &-1.146,-1.148,-1.151,-1.153,-1.155,-1.158,-1.160,-1.163,-1.165, - &-1.167,-1.170,-1.172,-1.174,-1.177,-1.179,-1.181,-1.183,-1.186, - &-1.188,-1.190,-1.193,-1.195,-1.197,-1.199,-1.202,-1.204,-1.206, - &-1.208,-1.210,-1.213,-1.215,-1.217,-1.219,-1.221,-1.224,-1.226, - &-1.228,-1.230,-1.232,-1.235,-1.237,-1.239,-1.241,-1.243,-1.245, - &-1.247,-1.250,-1.252,-1.254,-1.256,-1.258,-1.260,-1.262,-1.264, - &-1.266,-1.269,-1.271,-1.273,-1.275,-1.277,-1.279,-1.281,-1.283, - &-1.285,-1.287,-1.289,-1.291,-1.293,-1.295,-1.297,-1.299,-1.301, - &-1.303,-1.305,-1.307,-1.309,-1.311,-1.313,-1.315,-1.317,-1.319, - &-1.321,-1.323,-1.325,-1.327,-1.329,-1.331,-1.333,-1.335,-1.337, - &-1.339,-1.341,-1.343,-1.345,-1.347,-1.349,-1.351,-1.353,-1.355, - &-1.357,-1.358,-1.360,-1.362,-1.364,-1.366,-1.368,-1.370,-1.372, - &-1.374,-1.376,-1.377,-1.379,-1.381,-1.383,-1.385,-1.387,-1.389, - &-1.391,-1.392,-1.394,-1.396,-1.398,-1.400,-1.402,-1.404,-1.405, - &-1.407,-1.409,-1.411,-1.413,-1.415,-1.417,-1.418,-1.420,-1.422, - &-1.424,-1.426,-1.427,-1.429,-1.431,-1.433,-1.435,-1.437,-1.438, - &-1.440,-1.442,-1.444,-1.445,-1.447,-1.449,-1.451,-1.453,-1.454, - &-1.456,-1.458,-1.460,-1.462,-1.463,-1.465,-1.467,-1.469,-1.470, - &-1.472,-1.474,-1.476,-1.477,-1.479,-1.481,-1.483,-1.484,-1.486, - &-1.488,-1.490,-1.491,-1.493,-1.495,-1.496,-1.498,-1.500,-1.502, - &-1.503,-1.505,-1.507,-1.509,-1.510,-1.512,-1.514,-1.515,-1.517, - &-1.519,-1.520,-1.522,-1.524,-1.526,-1.527,-1.529,-1.531,-1.532, - &-1.534,-1.536,-1.537,-1.539,-1.541,-1.542,-1.544,-1.546,-1.547, - &-1.549,-1.551,-1.552,-1.554,-1.556,-1.557,-1.559,-1.561,-1.562, - &-1.564,-1.566,-1.567,-1.569,-1.571,-1.572,-1.574,-1.576,-1.577, - &-1.579,-1.580,-1.582,-1.584,-1.585,-1.587,-1.589,-1.590,-1.592, - &-1.594,-1.595,-1.597,-1.598,-1.616,-1.632,-1.648,-1.663,-1.679, - &-1.694,-1.710,-1.725,-1.740,-1.755,-1.770,-1.785,-1.799,-1.814, - &-1.828,-1.843,-1.857,-1.871,-1.885,-1.900,-1.914,-1.928,-1.941, - &-1.955,-1.969,-1.983,-1.996,-2.010,-2.023,-2.037,-2.050,-2.063, - &-2.077,-2.090,-2.103,-2.116,-2.129,-2.142,-2.155,-2.168,-2.181, - &-2.194,-2.206,-2.219,-2.232,-2.244,-2.257,-2.269,-2.282,-2.294, - &-2.307,-2.319,-2.332,-2.344,-2.356,-2.369,-2.381,-2.393,-2.405, - &-2.417,-2.429,-2.441,-2.454,-2.466,-2.478,-2.489,-2.501,-2.513, - &-2.525,-2.537,-2.549,-2.561,-2.572,-2.584,-2.596,-2.608,-2.619, - &-2.631,-2.642,-2.654,-2.666,-2.677,-2.689,-2.700,-2.712,-2.723, - &-2.735,-2.746,-2.757,-2.769,-2.780,-2.792,-2.803,-2.814,-2.825, - &-2.837,-2.848,-2.859,-2.870,-2.882,-2.893,-2.904,-2.915,-2.926, - &-2.937,-2.948,-2.959,-2.971,-2.982,-2.993,-3.004,-3.015,-3.026, - &-3.037,-3.048,-3.058,-3.069,-3.080,-3.091,-3.102,-3.113,-3.124, - &-3.135,-3.145,-3.156,-3.167,-3.178,-3.189,-3.199,-3.210,-3.221, - &-3.232,-3.242,-3.253,-3.264,-3.274,-3.285,-3.296,-3.306,-3.317, - &-3.327,-3.338,-3.349,-3.359,-3.370,-3.380,-3.391,-3.401,-3.412, - &-3.422,-3.433,-3.443,-3.454,-3.464,-3.475,-3.485,-3.496,-3.506, - &-3.517,-3.527,-3.537 - & /) -! -! *** NH4NO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC05M_223 = (/ - &-0.051,-0.114,-0.148,-0.172,-0.192,-0.209,-0.224,-0.238,-0.250, - &-0.262,-0.272,-0.282,-0.292,-0.301,-0.310,-0.318,-0.326,-0.333, - &-0.341,-0.348,-0.355,-0.362,-0.368,-0.375,-0.381,-0.387,-0.393, - &-0.398,-0.404,-0.410,-0.415,-0.420,-0.426,-0.431,-0.436,-0.441, - &-0.446,-0.450,-0.455,-0.460,-0.464,-0.469,-0.473,-0.477,-0.482, - &-0.486,-0.490,-0.494,-0.498,-0.502,-0.506,-0.510,-0.514,-0.518, - &-0.521,-0.525,-0.529,-0.532,-0.536,-0.539,-0.543,-0.546,-0.550, - &-0.553,-0.556,-0.560,-0.563,-0.566,-0.570,-0.573,-0.576,-0.579, - &-0.582,-0.585,-0.588,-0.592,-0.595,-0.598,-0.601,-0.604,-0.607, - &-0.610,-0.613,-0.616,-0.619,-0.622,-0.624,-0.627,-0.630,-0.633, - &-0.636,-0.639,-0.642,-0.645,-0.647,-0.650,-0.653,-0.656,-0.659, - &-0.662,-0.664,-0.667,-0.670,-0.673,-0.675,-0.678,-0.681,-0.684, - &-0.686,-0.689,-0.692,-0.694,-0.697,-0.700,-0.702,-0.705,-0.708, - &-0.710,-0.713,-0.716,-0.718,-0.721,-0.723,-0.726,-0.729,-0.731, - &-0.734,-0.736,-0.739,-0.741,-0.744,-0.746,-0.749,-0.751,-0.754, - &-0.756,-0.759,-0.761,-0.764,-0.766,-0.768,-0.771,-0.773,-0.776, - &-0.778,-0.780,-0.783,-0.785,-0.787,-0.790,-0.792,-0.794,-0.797, - &-0.799,-0.801,-0.804,-0.806,-0.808,-0.810,-0.813,-0.815,-0.817, - &-0.819,-0.822,-0.824,-0.826,-0.828,-0.831,-0.833,-0.835,-0.837, - &-0.839,-0.841,-0.844,-0.846,-0.848,-0.850,-0.852,-0.854,-0.856, - &-0.858,-0.860,-0.863,-0.865,-0.867,-0.869,-0.871,-0.873,-0.875, - &-0.877,-0.879,-0.881,-0.883,-0.885,-0.887,-0.889,-0.891,-0.893, - &-0.895,-0.897,-0.899,-0.901,-0.903,-0.905,-0.907,-0.909,-0.911, - &-0.913,-0.915,-0.917,-0.919,-0.920,-0.922,-0.924,-0.926,-0.928, - &-0.930,-0.932,-0.934,-0.936,-0.938,-0.939,-0.941,-0.943,-0.945, - &-0.947,-0.949,-0.950,-0.952,-0.954,-0.956,-0.958,-0.960,-0.961, - &-0.963,-0.965,-0.967,-0.969,-0.970,-0.972,-0.974,-0.976,-0.977, - &-0.979,-0.981,-0.983,-0.984,-0.986,-0.988,-0.990,-0.991,-0.993, - &-0.995,-0.997,-0.998,-1.000,-1.002,-1.003,-1.005,-1.007,-1.008, - &-1.010,-1.012,-1.013,-1.015,-1.017,-1.019,-1.020,-1.022,-1.023, - &-1.025,-1.027,-1.028,-1.030,-1.032,-1.033,-1.035,-1.037,-1.038, - &-1.040,-1.041,-1.043,-1.045,-1.046,-1.048,-1.049,-1.051,-1.053, - &-1.054,-1.056,-1.057,-1.059,-1.061,-1.062,-1.064,-1.065,-1.067, - &-1.068,-1.070,-1.071,-1.073,-1.075,-1.076,-1.078,-1.079,-1.081, - &-1.082,-1.084,-1.085,-1.087,-1.088,-1.090,-1.091,-1.093,-1.094, - &-1.096,-1.097,-1.099,-1.100,-1.102,-1.103,-1.105,-1.106,-1.108, - &-1.109,-1.111,-1.112,-1.114,-1.115,-1.116,-1.118,-1.119,-1.121, - &-1.122,-1.124,-1.125,-1.127,-1.128,-1.129,-1.131,-1.132,-1.134, - &-1.135,-1.137,-1.138,-1.139,-1.141,-1.142,-1.144,-1.145,-1.146, - &-1.148,-1.149,-1.151,-1.152,-1.153,-1.155,-1.156,-1.158,-1.159, - &-1.160,-1.162,-1.163,-1.164,-1.166,-1.167,-1.168,-1.170,-1.171, - &-1.173,-1.174,-1.175,-1.177,-1.178,-1.179,-1.181,-1.182,-1.183, - &-1.185,-1.186,-1.187,-1.189,-1.190,-1.191,-1.193,-1.194,-1.195, - &-1.197,-1.198,-1.199,-1.200,-1.202,-1.203,-1.204,-1.206,-1.207, - &-1.208,-1.210,-1.211,-1.212,-1.226,-1.238,-1.251,-1.263,-1.275, - &-1.287,-1.298,-1.310,-1.321,-1.333,-1.344,-1.355,-1.365,-1.376, - &-1.387,-1.397,-1.407,-1.417,-1.427,-1.437,-1.447,-1.457,-1.467, - &-1.476,-1.486,-1.495,-1.505,-1.514,-1.523,-1.532,-1.541,-1.550, - &-1.559,-1.567,-1.576,-1.585,-1.593,-1.602,-1.610,-1.619,-1.627, - &-1.635,-1.643,-1.651,-1.659,-1.667,-1.675,-1.683,-1.691,-1.699, - &-1.707,-1.715,-1.722,-1.730,-1.737,-1.745,-1.752,-1.760,-1.767, - &-1.775,-1.782,-1.789,-1.797,-1.804,-1.811,-1.818,-1.825,-1.832, - &-1.840,-1.847,-1.854,-1.861,-1.867,-1.874,-1.881,-1.888,-1.895, - &-1.902,-1.908,-1.915,-1.922,-1.929,-1.935,-1.942,-1.948,-1.955, - &-1.962,-1.968,-1.975,-1.981,-1.988,-1.994,-2.000,-2.007,-2.013, - &-2.020,-2.026,-2.032,-2.039,-2.045,-2.051,-2.057,-2.064,-2.070, - &-2.076,-2.082,-2.088,-2.094,-2.100,-2.107,-2.113,-2.119,-2.125, - &-2.131,-2.137,-2.143,-2.149,-2.155,-2.161,-2.167,-2.173,-2.179, - &-2.184,-2.190,-2.196,-2.202,-2.208,-2.214,-2.220,-2.225,-2.231, - &-2.237,-2.243,-2.248,-2.254,-2.260,-2.266,-2.271,-2.277,-2.283, - &-2.288,-2.294,-2.300,-2.305,-2.311,-2.317,-2.322,-2.328,-2.333, - &-2.339,-2.345,-2.350,-2.356,-2.361,-2.367,-2.372,-2.378,-2.383, - &-2.389,-2.394,-2.400 - & /) -! -! *** NH4Cl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC06M_223 = (/ - &-0.049,-0.106,-0.133,-0.151,-0.166,-0.177,-0.187,-0.195,-0.202, - &-0.208,-0.214,-0.219,-0.224,-0.228,-0.231,-0.235,-0.238,-0.241, - &-0.244,-0.246,-0.249,-0.251,-0.253,-0.255,-0.257,-0.259,-0.260, - &-0.262,-0.264,-0.265,-0.266,-0.268,-0.269,-0.270,-0.271,-0.272, - &-0.273,-0.274,-0.275,-0.276,-0.277,-0.278,-0.278,-0.279,-0.280, - &-0.281,-0.281,-0.282,-0.283,-0.283,-0.284,-0.284,-0.285,-0.285, - &-0.286,-0.287,-0.287,-0.288,-0.288,-0.288,-0.289,-0.289,-0.290, - &-0.290,-0.291,-0.291,-0.291,-0.292,-0.292,-0.292,-0.293,-0.293, - &-0.293,-0.294,-0.294,-0.294,-0.294,-0.295,-0.295,-0.295,-0.295, - &-0.296,-0.296,-0.296,-0.296,-0.296,-0.296,-0.297,-0.297,-0.297, - &-0.297,-0.297,-0.297,-0.297,-0.297,-0.297,-0.297,-0.297,-0.297, - &-0.297,-0.297,-0.297,-0.297,-0.297,-0.297,-0.297,-0.297,-0.297, - &-0.297,-0.297,-0.297,-0.297,-0.297,-0.297,-0.297,-0.297,-0.297, - &-0.296,-0.296,-0.296,-0.296,-0.296,-0.296,-0.296,-0.296,-0.296, - &-0.295,-0.295,-0.295,-0.295,-0.295,-0.295,-0.295,-0.294,-0.294, - &-0.294,-0.294,-0.294,-0.294,-0.294,-0.293,-0.293,-0.293,-0.293, - &-0.293,-0.293,-0.292,-0.292,-0.292,-0.292,-0.292,-0.292,-0.291, - &-0.291,-0.291,-0.291,-0.291,-0.291,-0.290,-0.290,-0.290,-0.290, - &-0.290,-0.290,-0.289,-0.289,-0.289,-0.289,-0.289,-0.288,-0.288, - &-0.288,-0.288,-0.288,-0.288,-0.287,-0.287,-0.287,-0.287,-0.287, - &-0.287,-0.286,-0.286,-0.286,-0.286,-0.286,-0.286,-0.285,-0.285, - &-0.285,-0.285,-0.285,-0.284,-0.284,-0.284,-0.284,-0.284,-0.284, - &-0.283,-0.283,-0.283,-0.283,-0.283,-0.283,-0.282,-0.282,-0.282, - &-0.282,-0.282,-0.282,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281, - &-0.280,-0.280,-0.280,-0.280,-0.280,-0.280,-0.279,-0.279,-0.279, - &-0.279,-0.279,-0.279,-0.278,-0.278,-0.278,-0.278,-0.278,-0.278, - &-0.277,-0.277,-0.277,-0.277,-0.277,-0.277,-0.276,-0.276,-0.276, - &-0.276,-0.276,-0.276,-0.276,-0.275,-0.275,-0.275,-0.275,-0.275, - &-0.275,-0.275,-0.274,-0.274,-0.274,-0.274,-0.274,-0.274,-0.273, - &-0.273,-0.273,-0.273,-0.273,-0.273,-0.273,-0.272,-0.272,-0.272, - &-0.272,-0.272,-0.272,-0.272,-0.271,-0.271,-0.271,-0.271,-0.271, - &-0.271,-0.271,-0.271,-0.270,-0.270,-0.270,-0.270,-0.270,-0.270, - &-0.270,-0.270,-0.269,-0.269,-0.269,-0.269,-0.269,-0.269,-0.269, - &-0.268,-0.268,-0.268,-0.268,-0.268,-0.268,-0.268,-0.268,-0.268, - &-0.267,-0.267,-0.267,-0.267,-0.267,-0.267,-0.267,-0.267,-0.266, - &-0.266,-0.266,-0.266,-0.266,-0.266,-0.266,-0.266,-0.266,-0.265, - &-0.265,-0.265,-0.265,-0.265,-0.265,-0.265,-0.265,-0.265,-0.265, - &-0.264,-0.264,-0.264,-0.264,-0.264,-0.264,-0.264,-0.264,-0.264, - &-0.264,-0.263,-0.263,-0.263,-0.263,-0.263,-0.263,-0.263,-0.263, - &-0.263,-0.263,-0.263,-0.262,-0.262,-0.262,-0.262,-0.262,-0.262, - &-0.262,-0.262,-0.262,-0.262,-0.262,-0.262,-0.261,-0.261,-0.261, - &-0.261,-0.261,-0.261,-0.261,-0.261,-0.261,-0.261,-0.261,-0.261, - &-0.261,-0.260,-0.260,-0.260,-0.260,-0.260,-0.260,-0.260,-0.260, - &-0.260,-0.260,-0.260,-0.260,-0.260,-0.260,-0.259,-0.259,-0.259, - &-0.259,-0.259,-0.259,-0.259,-0.258,-0.258,-0.257,-0.257,-0.257, - &-0.256,-0.256,-0.256,-0.256,-0.256,-0.255,-0.255,-0.256,-0.256, - &-0.256,-0.256,-0.256,-0.256,-0.257,-0.257,-0.257,-0.258,-0.258, - &-0.259,-0.259,-0.260,-0.260,-0.261,-0.262,-0.262,-0.263,-0.264, - &-0.265,-0.265,-0.266,-0.267,-0.268,-0.269,-0.270,-0.271,-0.272, - &-0.273,-0.274,-0.275,-0.277,-0.278,-0.279,-0.280,-0.281,-0.283, - &-0.284,-0.285,-0.287,-0.288,-0.289,-0.291,-0.292,-0.294,-0.295, - &-0.297,-0.298,-0.300,-0.301,-0.303,-0.304,-0.306,-0.308,-0.309, - &-0.311,-0.313,-0.314,-0.316,-0.318,-0.320,-0.321,-0.323,-0.325, - &-0.327,-0.329,-0.331,-0.332,-0.334,-0.336,-0.338,-0.340,-0.342, - &-0.344,-0.346,-0.348,-0.350,-0.352,-0.354,-0.356,-0.358,-0.360, - &-0.362,-0.364,-0.367,-0.369,-0.371,-0.373,-0.375,-0.377,-0.379, - &-0.382,-0.384,-0.386,-0.388,-0.391,-0.393,-0.395,-0.397,-0.400, - &-0.402,-0.404,-0.406,-0.409,-0.411,-0.413,-0.416,-0.418,-0.421, - &-0.423,-0.425,-0.428,-0.430,-0.433,-0.435,-0.437,-0.440,-0.442, - &-0.445,-0.447,-0.450,-0.452,-0.455,-0.457,-0.460,-0.462,-0.465, - &-0.467,-0.470,-0.472,-0.475,-0.477,-0.480,-0.483,-0.485,-0.488, - &-0.490,-0.493,-0.496,-0.498,-0.501,-0.503,-0.506,-0.509,-0.511, - &-0.514,-0.517,-0.519 - & /) -! -! *** (2H,SO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC07M_223 = (/ - &-0.100,-0.219,-0.279,-0.321,-0.354,-0.382,-0.406,-0.427,-0.446, - &-0.463,-0.479,-0.493,-0.506,-0.519,-0.531,-0.542,-0.552,-0.562, - &-0.572,-0.581,-0.590,-0.598,-0.606,-0.614,-0.622,-0.629,-0.636, - &-0.643,-0.650,-0.656,-0.662,-0.668,-0.674,-0.680,-0.686,-0.692, - &-0.697,-0.702,-0.707,-0.713,-0.718,-0.722,-0.727,-0.732,-0.737, - &-0.741,-0.746,-0.750,-0.754,-0.759,-0.763,-0.767,-0.771,-0.775, - &-0.779,-0.783,-0.787,-0.791,-0.794,-0.798,-0.802,-0.805,-0.809, - &-0.813,-0.816,-0.820,-0.823,-0.826,-0.830,-0.833,-0.836,-0.840, - &-0.843,-0.846,-0.849,-0.852,-0.855,-0.859,-0.862,-0.865,-0.868, - &-0.871,-0.874,-0.877,-0.879,-0.882,-0.885,-0.888,-0.891,-0.894, - &-0.897,-0.899,-0.902,-0.905,-0.908,-0.910,-0.913,-0.916,-0.918, - &-0.921,-0.924,-0.926,-0.929,-0.932,-0.934,-0.937,-0.939,-0.942, - &-0.944,-0.947,-0.949,-0.952,-0.954,-0.957,-0.959,-0.962,-0.964, - &-0.967,-0.969,-0.971,-0.974,-0.976,-0.978,-0.981,-0.983,-0.985, - &-0.988,-0.990,-0.992,-0.995,-0.997,-0.999,-1.002,-1.004,-1.006, - &-1.008,-1.011,-1.013,-1.015,-1.017,-1.019,-1.022,-1.024,-1.026, - &-1.028,-1.030,-1.032,-1.034,-1.037,-1.039,-1.041,-1.043,-1.045, - &-1.047,-1.049,-1.051,-1.053,-1.056,-1.058,-1.060,-1.062,-1.064, - &-1.066,-1.068,-1.070,-1.072,-1.074,-1.076,-1.078,-1.080,-1.082, - &-1.084,-1.086,-1.088,-1.090,-1.092,-1.094,-1.096,-1.098,-1.099, - &-1.101,-1.103,-1.105,-1.107,-1.109,-1.111,-1.113,-1.115,-1.117, - &-1.119,-1.121,-1.122,-1.124,-1.126,-1.128,-1.130,-1.132,-1.134, - &-1.135,-1.137,-1.139,-1.141,-1.143,-1.145,-1.146,-1.148,-1.150, - &-1.152,-1.154,-1.156,-1.157,-1.159,-1.161,-1.163,-1.165,-1.166, - &-1.168,-1.170,-1.172,-1.173,-1.175,-1.177,-1.179,-1.180,-1.182, - &-1.184,-1.186,-1.187,-1.189,-1.191,-1.193,-1.194,-1.196,-1.198, - &-1.200,-1.201,-1.203,-1.205,-1.206,-1.208,-1.210,-1.212,-1.213, - &-1.215,-1.217,-1.218,-1.220,-1.222,-1.223,-1.225,-1.227,-1.228, - &-1.230,-1.232,-1.233,-1.235,-1.237,-1.238,-1.240,-1.242,-1.243, - &-1.245,-1.247,-1.248,-1.250,-1.251,-1.253,-1.255,-1.256,-1.258, - &-1.260,-1.261,-1.263,-1.264,-1.266,-1.268,-1.269,-1.271,-1.273, - &-1.274,-1.276,-1.277,-1.279,-1.280,-1.282,-1.284,-1.285,-1.287, - &-1.288,-1.290,-1.292,-1.293,-1.295,-1.296,-1.298,-1.299,-1.301, - &-1.303,-1.304,-1.306,-1.307,-1.309,-1.310,-1.312,-1.313,-1.315, - &-1.317,-1.318,-1.320,-1.321,-1.323,-1.324,-1.326,-1.327,-1.329, - &-1.330,-1.332,-1.333,-1.335,-1.337,-1.338,-1.340,-1.341,-1.343, - &-1.344,-1.346,-1.347,-1.349,-1.350,-1.352,-1.353,-1.355,-1.356, - &-1.358,-1.359,-1.361,-1.362,-1.364,-1.365,-1.367,-1.368,-1.370, - &-1.371,-1.373,-1.374,-1.376,-1.377,-1.379,-1.380,-1.381,-1.383, - &-1.384,-1.386,-1.387,-1.389,-1.390,-1.392,-1.393,-1.395,-1.396, - &-1.398,-1.399,-1.401,-1.402,-1.403,-1.405,-1.406,-1.408,-1.409, - &-1.411,-1.412,-1.414,-1.415,-1.416,-1.418,-1.419,-1.421,-1.422, - &-1.424,-1.425,-1.427,-1.428,-1.429,-1.431,-1.432,-1.434,-1.435, - &-1.437,-1.438,-1.439,-1.441,-1.442,-1.444,-1.445,-1.447,-1.448, - &-1.449,-1.451,-1.452,-1.454,-1.469,-1.483,-1.497,-1.510,-1.524, - &-1.537,-1.551,-1.564,-1.578,-1.591,-1.604,-1.617,-1.630,-1.643, - &-1.656,-1.669,-1.681,-1.694,-1.707,-1.719,-1.732,-1.744,-1.756, - &-1.769,-1.781,-1.793,-1.806,-1.818,-1.830,-1.842,-1.854,-1.866, - &-1.878,-1.890,-1.902,-1.914,-1.925,-1.937,-1.949,-1.961,-1.972, - &-1.984,-1.996,-2.007,-2.019,-2.030,-2.042,-2.053,-2.065,-2.076, - &-2.087,-2.099,-2.110,-2.121,-2.133,-2.144,-2.155,-2.166,-2.178, - &-2.189,-2.200,-2.211,-2.222,-2.233,-2.244,-2.255,-2.266,-2.277, - &-2.288,-2.299,-2.310,-2.321,-2.332,-2.343,-2.354,-2.365,-2.375, - &-2.386,-2.397,-2.408,-2.419,-2.429,-2.440,-2.451,-2.461,-2.472, - &-2.483,-2.494,-2.504,-2.515,-2.525,-2.536,-2.547,-2.557,-2.568, - &-2.578,-2.589,-2.599,-2.610,-2.620,-2.631,-2.641,-2.652,-2.662, - &-2.673,-2.683,-2.693,-2.704,-2.714,-2.725,-2.735,-2.745,-2.756, - &-2.766,-2.776,-2.787,-2.797,-2.807,-2.817,-2.828,-2.838,-2.848, - &-2.858,-2.869,-2.879,-2.889,-2.899,-2.909,-2.920,-2.930,-2.940, - &-2.950,-2.960,-2.970,-2.980,-2.991,-3.001,-3.011,-3.021,-3.031, - &-3.041,-3.051,-3.061,-3.071,-3.081,-3.091,-3.101,-3.111,-3.121, - &-3.131,-3.141,-3.151,-3.161,-3.171,-3.181,-3.191,-3.201,-3.211, - &-3.221,-3.231,-3.241 - & /) -! -! *** (H,HSO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC08M_223 = (/ - &-0.047,-0.091,-0.109,-0.119,-0.125,-0.128,-0.130,-0.131,-0.130, - &-0.129,-0.128,-0.125,-0.122,-0.119,-0.115,-0.111,-0.107,-0.102, - &-0.097,-0.092,-0.086,-0.080,-0.074,-0.068,-0.062,-0.055,-0.048, - &-0.041,-0.034,-0.027,-0.019,-0.012,-0.004, 0.004, 0.012, 0.020, - & 0.028, 0.037, 0.045, 0.054, 0.063, 0.071, 0.080, 0.089, 0.098, - & 0.108, 0.117, 0.126, 0.136, 0.145, 0.155, 0.164, 0.174, 0.184, - & 0.193, 0.203, 0.213, 0.223, 0.233, 0.243, 0.253, 0.263, 0.274, - & 0.284, 0.294, 0.304, 0.315, 0.325, 0.336, 0.346, 0.357, 0.368, - & 0.378, 0.389, 0.400, 0.411, 0.421, 0.432, 0.443, 0.455, 0.466, - & 0.477, 0.488, 0.499, 0.511, 0.522, 0.534, 0.545, 0.557, 0.568, - & 0.580, 0.592, 0.604, 0.615, 0.627, 0.639, 0.651, 0.664, 0.676, - & 0.688, 0.700, 0.712, 0.725, 0.737, 0.749, 0.762, 0.774, 0.787, - & 0.799, 0.812, 0.824, 0.837, 0.849, 0.862, 0.875, 0.887, 0.900, - & 0.913, 0.925, 0.938, 0.951, 0.963, 0.976, 0.989, 1.001, 1.014, - & 1.027, 1.039, 1.052, 1.064, 1.077, 1.090, 1.102, 1.115, 1.127, - & 1.140, 1.152, 1.165, 1.177, 1.190, 1.202, 1.215, 1.227, 1.239, - & 1.252, 1.264, 1.276, 1.289, 1.301, 1.313, 1.325, 1.338, 1.350, - & 1.362, 1.374, 1.386, 1.398, 1.410, 1.422, 1.434, 1.446, 1.458, - & 1.470, 1.482, 1.494, 1.506, 1.518, 1.530, 1.541, 1.553, 1.565, - & 1.577, 1.588, 1.600, 1.612, 1.623, 1.635, 1.646, 1.658, 1.669, - & 1.681, 1.692, 1.704, 1.715, 1.727, 1.738, 1.749, 1.761, 1.772, - & 1.783, 1.794, 1.806, 1.817, 1.828, 1.839, 1.850, 1.861, 1.872, - & 1.883, 1.894, 1.905, 1.916, 1.927, 1.938, 1.949, 1.960, 1.971, - & 1.982, 1.992, 2.003, 2.014, 2.025, 2.035, 2.046, 2.057, 2.067, - & 2.078, 2.088, 2.099, 2.109, 2.120, 2.130, 2.141, 2.151, 2.162, - & 2.172, 2.182, 2.193, 2.203, 2.213, 2.224, 2.234, 2.244, 2.254, - & 2.265, 2.275, 2.285, 2.295, 2.305, 2.315, 2.325, 2.335, 2.345, - & 2.355, 2.365, 2.375, 2.385, 2.395, 2.405, 2.415, 2.424, 2.434, - & 2.444, 2.454, 2.464, 2.473, 2.483, 2.493, 2.502, 2.512, 2.522, - & 2.531, 2.541, 2.550, 2.560, 2.569, 2.579, 2.588, 2.598, 2.607, - & 2.617, 2.626, 2.635, 2.645, 2.654, 2.663, 2.673, 2.682, 2.691, - & 2.701, 2.710, 2.719, 2.728, 2.737, 2.746, 2.756, 2.765, 2.774, - & 2.783, 2.792, 2.801, 2.810, 2.819, 2.828, 2.837, 2.846, 2.855, - & 2.864, 2.873, 2.881, 2.890, 2.899, 2.908, 2.917, 2.925, 2.934, - & 2.943, 2.952, 2.960, 2.969, 2.978, 2.986, 2.995, 3.004, 3.012, - & 3.021, 3.029, 3.038, 3.047, 3.055, 3.064, 3.072, 3.080, 3.089, - & 3.097, 3.106, 3.114, 3.123, 3.131, 3.139, 3.148, 3.156, 3.164, - & 3.173, 3.181, 3.189, 3.197, 3.206, 3.214, 3.222, 3.230, 3.238, - & 3.246, 3.255, 3.263, 3.271, 3.279, 3.287, 3.295, 3.303, 3.311, - & 3.319, 3.327, 3.335, 3.343, 3.351, 3.359, 3.367, 3.375, 3.383, - & 3.390, 3.398, 3.406, 3.414, 3.422, 3.430, 3.437, 3.445, 3.453, - & 3.461, 3.468, 3.476, 3.484, 3.492, 3.499, 3.507, 3.515, 3.522, - & 3.530, 3.537, 3.545, 3.553, 3.560, 3.568, 3.575, 3.583, 3.590, - & 3.598, 3.605, 3.613, 3.620, 3.628, 3.635, 3.642, 3.650, 3.657, - & 3.665, 3.672, 3.679, 3.687, 3.765, 3.837, 3.907, 3.976, 4.044, - & 4.111, 4.176, 4.241, 4.305, 4.368, 4.429, 4.490, 4.550, 4.609, - & 4.668, 4.725, 4.782, 4.838, 4.893, 4.947, 5.001, 5.054, 5.106, - & 5.157, 5.208, 5.259, 5.308, 5.357, 5.406, 5.453, 5.501, 5.547, - & 5.593, 5.639, 5.684, 5.729, 5.773, 5.816, 5.859, 5.902, 5.944, - & 5.986, 6.027, 6.068, 6.108, 6.148, 6.188, 6.227, 6.265, 6.304, - & 6.342, 6.379, 6.416, 6.453, 6.490, 6.526, 6.562, 6.597, 6.632, - & 6.667, 6.701, 6.735, 6.769, 6.803, 6.836, 6.869, 6.901, 6.934, - & 6.966, 6.997, 7.029, 7.060, 7.091, 7.122, 7.152, 7.182, 7.212, - & 7.242, 7.271, 7.300, 7.329, 7.358, 7.386, 7.415, 7.443, 7.470, - & 7.498, 7.525, 7.552, 7.579, 7.606, 7.633, 7.659, 7.685, 7.711, - & 7.737, 7.762, 7.788, 7.813, 7.838, 7.862, 7.887, 7.912, 7.936, - & 7.960, 7.984, 8.008, 8.031, 8.055, 8.078, 8.101, 8.124, 8.147, - & 8.169, 8.192, 8.214, 8.236, 8.258, 8.280, 8.302, 8.323, 8.345, - & 8.366, 8.387, 8.408, 8.429, 8.450, 8.470, 8.491, 8.511, 8.531, - & 8.552, 8.572, 8.591, 8.611, 8.631, 8.650, 8.670, 8.689, 8.708, - & 8.727, 8.746, 8.765, 8.783, 8.802, 8.820, 8.839, 8.857, 8.875, - & 8.893, 8.911, 8.929, 8.946, 8.964, 8.981, 8.999, 9.016, 9.033, - & 9.050, 9.067, 9.084 - & /) -! -! *** NH4HSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC09M_223 = (/ - &-0.049,-0.104,-0.131,-0.149,-0.163,-0.174,-0.184,-0.192,-0.199, - &-0.205,-0.211,-0.216,-0.220,-0.224,-0.228,-0.231,-0.234,-0.236, - &-0.238,-0.240,-0.242,-0.244,-0.245,-0.247,-0.248,-0.248,-0.249, - &-0.250,-0.250,-0.250,-0.251,-0.251,-0.250,-0.250,-0.250,-0.249, - &-0.249,-0.248,-0.247,-0.247,-0.246,-0.245,-0.243,-0.242,-0.241, - &-0.240,-0.238,-0.237,-0.235,-0.233,-0.232,-0.230,-0.228,-0.226, - &-0.224,-0.222,-0.220,-0.218,-0.216,-0.214,-0.211,-0.209,-0.207, - &-0.204,-0.202,-0.199,-0.197,-0.194,-0.192,-0.189,-0.187,-0.184, - &-0.181,-0.178,-0.176,-0.173,-0.170,-0.167,-0.164,-0.161,-0.158, - &-0.155,-0.152,-0.149,-0.146,-0.142,-0.139,-0.136,-0.133,-0.129, - &-0.126,-0.123,-0.119,-0.116,-0.112,-0.109,-0.105,-0.102,-0.098, - &-0.095,-0.091,-0.088,-0.084,-0.080,-0.077,-0.073,-0.069,-0.066, - &-0.062,-0.058,-0.055,-0.051,-0.047,-0.043,-0.039,-0.036,-0.032, - &-0.028,-0.024,-0.020,-0.017,-0.013,-0.009,-0.005,-0.001, 0.002, - & 0.006, 0.010, 0.014, 0.018, 0.021, 0.025, 0.029, 0.033, 0.037, - & 0.040, 0.044, 0.048, 0.052, 0.055, 0.059, 0.063, 0.067, 0.070, - & 0.074, 0.078, 0.081, 0.085, 0.089, 0.093, 0.096, 0.100, 0.104, - & 0.107, 0.111, 0.114, 0.118, 0.122, 0.125, 0.129, 0.133, 0.136, - & 0.140, 0.143, 0.147, 0.150, 0.154, 0.157, 0.161, 0.165, 0.168, - & 0.172, 0.175, 0.178, 0.182, 0.185, 0.189, 0.192, 0.196, 0.199, - & 0.203, 0.206, 0.209, 0.213, 0.216, 0.220, 0.223, 0.226, 0.230, - & 0.233, 0.236, 0.240, 0.243, 0.246, 0.250, 0.253, 0.256, 0.259, - & 0.263, 0.266, 0.269, 0.272, 0.276, 0.279, 0.282, 0.285, 0.289, - & 0.292, 0.295, 0.298, 0.301, 0.304, 0.308, 0.311, 0.314, 0.317, - & 0.320, 0.323, 0.326, 0.329, 0.332, 0.336, 0.339, 0.342, 0.345, - & 0.348, 0.351, 0.354, 0.357, 0.360, 0.363, 0.366, 0.369, 0.372, - & 0.375, 0.378, 0.381, 0.384, 0.387, 0.390, 0.393, 0.395, 0.398, - & 0.401, 0.404, 0.407, 0.410, 0.413, 0.416, 0.419, 0.421, 0.424, - & 0.427, 0.430, 0.433, 0.436, 0.438, 0.441, 0.444, 0.447, 0.450, - & 0.452, 0.455, 0.458, 0.461, 0.464, 0.466, 0.469, 0.472, 0.475, - & 0.477, 0.480, 0.483, 0.485, 0.488, 0.491, 0.493, 0.496, 0.499, - & 0.501, 0.504, 0.507, 0.509, 0.512, 0.515, 0.517, 0.520, 0.523, - & 0.525, 0.528, 0.530, 0.533, 0.536, 0.538, 0.541, 0.543, 0.546, - & 0.548, 0.551, 0.554, 0.556, 0.559, 0.561, 0.564, 0.566, 0.569, - & 0.571, 0.574, 0.576, 0.579, 0.581, 0.584, 0.586, 0.589, 0.591, - & 0.594, 0.596, 0.598, 0.601, 0.603, 0.606, 0.608, 0.611, 0.613, - & 0.615, 0.618, 0.620, 0.623, 0.625, 0.627, 0.630, 0.632, 0.635, - & 0.637, 0.639, 0.642, 0.644, 0.646, 0.649, 0.651, 0.653, 0.656, - & 0.658, 0.660, 0.663, 0.665, 0.667, 0.670, 0.672, 0.674, 0.676, - & 0.679, 0.681, 0.683, 0.685, 0.688, 0.690, 0.692, 0.694, 0.697, - & 0.699, 0.701, 0.703, 0.706, 0.708, 0.710, 0.712, 0.714, 0.717, - & 0.719, 0.721, 0.723, 0.725, 0.728, 0.730, 0.732, 0.734, 0.736, - & 0.738, 0.741, 0.743, 0.745, 0.747, 0.749, 0.751, 0.753, 0.756, - & 0.758, 0.760, 0.762, 0.764, 0.766, 0.768, 0.770, 0.772, 0.774, - & 0.777, 0.779, 0.781, 0.783, 0.805, 0.825, 0.845, 0.864, 0.883, - & 0.901, 0.920, 0.938, 0.955, 0.973, 0.990, 1.006, 1.023, 1.039, - & 1.055, 1.071, 1.086, 1.101, 1.116, 1.131, 1.145, 1.160, 1.174, - & 1.188, 1.201, 1.215, 1.228, 1.241, 1.254, 1.266, 1.279, 1.291, - & 1.303, 1.315, 1.327, 1.339, 1.350, 1.361, 1.372, 1.383, 1.394, - & 1.405, 1.416, 1.426, 1.436, 1.446, 1.456, 1.466, 1.476, 1.486, - & 1.495, 1.505, 1.514, 1.523, 1.532, 1.541, 1.550, 1.559, 1.567, - & 1.576, 1.584, 1.592, 1.601, 1.609, 1.617, 1.625, 1.632, 1.640, - & 1.648, 1.655, 1.663, 1.670, 1.677, 1.684, 1.692, 1.699, 1.706, - & 1.712, 1.719, 1.726, 1.732, 1.739, 1.746, 1.752, 1.758, 1.765, - & 1.771, 1.777, 1.783, 1.789, 1.795, 1.801, 1.806, 1.812, 1.818, - & 1.823, 1.829, 1.834, 1.840, 1.845, 1.850, 1.856, 1.861, 1.866, - & 1.871, 1.876, 1.881, 1.886, 1.891, 1.896, 1.900, 1.905, 1.910, - & 1.914, 1.919, 1.923, 1.928, 1.932, 1.937, 1.941, 1.945, 1.949, - & 1.953, 1.958, 1.962, 1.966, 1.970, 1.974, 1.978, 1.981, 1.985, - & 1.989, 1.993, 1.996, 2.000, 2.004, 2.007, 2.011, 2.014, 2.018, - & 2.021, 2.025, 2.028, 2.031, 2.035, 2.038, 2.041, 2.044, 2.047, - & 2.050, 2.053, 2.056, 2.059, 2.062, 2.065, 2.068, 2.071, 2.074, - & 2.077, 2.080, 2.082 - & /) -! -! *** (H,NO3) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC10M_223 = (/ - &-0.048,-0.100,-0.123,-0.137,-0.147,-0.155,-0.161,-0.165,-0.169, - &-0.172,-0.174,-0.175,-0.177,-0.177,-0.178,-0.178,-0.178,-0.177, - &-0.177,-0.176,-0.175,-0.174,-0.173,-0.172,-0.171,-0.169,-0.168, - &-0.166,-0.165,-0.163,-0.161,-0.159,-0.157,-0.156,-0.154,-0.152, - &-0.150,-0.148,-0.146,-0.144,-0.141,-0.139,-0.137,-0.135,-0.133, - &-0.131,-0.129,-0.127,-0.124,-0.122,-0.120,-0.118,-0.116,-0.113, - &-0.111,-0.109,-0.107,-0.105,-0.102,-0.100,-0.098,-0.096,-0.094, - &-0.091,-0.089,-0.087,-0.085,-0.082,-0.080,-0.078,-0.076,-0.073, - &-0.071,-0.069,-0.067,-0.064,-0.062,-0.060,-0.057,-0.055,-0.052, - &-0.050,-0.048,-0.045,-0.043,-0.040,-0.038,-0.035,-0.033,-0.030, - &-0.027,-0.025,-0.022,-0.020,-0.017,-0.014,-0.012,-0.009,-0.006, - &-0.004,-0.001, 0.002, 0.005, 0.007, 0.010, 0.013, 0.016, 0.019, - & 0.021, 0.024, 0.027, 0.030, 0.033, 0.036, 0.039, 0.041, 0.044, - & 0.047, 0.050, 0.053, 0.056, 0.059, 0.062, 0.065, 0.068, 0.071, - & 0.073, 0.076, 0.079, 0.082, 0.085, 0.088, 0.091, 0.094, 0.097, - & 0.100, 0.103, 0.105, 0.108, 0.111, 0.114, 0.117, 0.120, 0.123, - & 0.126, 0.129, 0.131, 0.134, 0.137, 0.140, 0.143, 0.146, 0.149, - & 0.152, 0.154, 0.157, 0.160, 0.163, 0.166, 0.169, 0.171, 0.174, - & 0.177, 0.180, 0.183, 0.186, 0.188, 0.191, 0.194, 0.197, 0.200, - & 0.202, 0.205, 0.208, 0.211, 0.213, 0.216, 0.219, 0.222, 0.224, - & 0.227, 0.230, 0.233, 0.235, 0.238, 0.241, 0.244, 0.246, 0.249, - & 0.252, 0.254, 0.257, 0.260, 0.263, 0.265, 0.268, 0.271, 0.273, - & 0.276, 0.279, 0.281, 0.284, 0.287, 0.289, 0.292, 0.294, 0.297, - & 0.300, 0.302, 0.305, 0.308, 0.310, 0.313, 0.315, 0.318, 0.321, - & 0.323, 0.326, 0.328, 0.331, 0.333, 0.336, 0.339, 0.341, 0.344, - & 0.346, 0.349, 0.351, 0.354, 0.356, 0.359, 0.361, 0.364, 0.366, - & 0.369, 0.372, 0.374, 0.376, 0.379, 0.381, 0.384, 0.386, 0.389, - & 0.391, 0.394, 0.396, 0.399, 0.401, 0.404, 0.406, 0.409, 0.411, - & 0.413, 0.416, 0.418, 0.421, 0.423, 0.425, 0.428, 0.430, 0.433, - & 0.435, 0.437, 0.440, 0.442, 0.445, 0.447, 0.449, 0.452, 0.454, - & 0.456, 0.459, 0.461, 0.463, 0.466, 0.468, 0.470, 0.473, 0.475, - & 0.477, 0.480, 0.482, 0.484, 0.486, 0.489, 0.491, 0.493, 0.496, - & 0.498, 0.500, 0.502, 0.505, 0.507, 0.509, 0.511, 0.514, 0.516, - & 0.518, 0.520, 0.523, 0.525, 0.527, 0.529, 0.531, 0.534, 0.536, - & 0.538, 0.540, 0.542, 0.545, 0.547, 0.549, 0.551, 0.553, 0.555, - & 0.558, 0.560, 0.562, 0.564, 0.566, 0.568, 0.570, 0.573, 0.575, - & 0.577, 0.579, 0.581, 0.583, 0.585, 0.587, 0.590, 0.592, 0.594, - & 0.596, 0.598, 0.600, 0.602, 0.604, 0.606, 0.608, 0.610, 0.612, - & 0.614, 0.617, 0.619, 0.621, 0.623, 0.625, 0.627, 0.629, 0.631, - & 0.633, 0.635, 0.637, 0.639, 0.641, 0.643, 0.645, 0.647, 0.649, - & 0.651, 0.653, 0.655, 0.657, 0.659, 0.661, 0.663, 0.665, 0.667, - & 0.669, 0.671, 0.673, 0.674, 0.676, 0.678, 0.680, 0.682, 0.684, - & 0.686, 0.688, 0.690, 0.692, 0.694, 0.696, 0.698, 0.700, 0.701, - & 0.703, 0.705, 0.707, 0.709, 0.711, 0.713, 0.715, 0.716, 0.718, - & 0.720, 0.722, 0.724, 0.726, 0.746, 0.764, 0.781, 0.799, 0.816, - & 0.833, 0.849, 0.866, 0.882, 0.897, 0.913, 0.928, 0.943, 0.958, - & 0.972, 0.987, 1.001, 1.015, 1.028, 1.042, 1.055, 1.068, 1.081, - & 1.093, 1.106, 1.118, 1.130, 1.142, 1.154, 1.165, 1.177, 1.188, - & 1.199, 1.210, 1.221, 1.231, 1.242, 1.252, 1.262, 1.272, 1.282, - & 1.292, 1.301, 1.311, 1.320, 1.329, 1.338, 1.347, 1.356, 1.365, - & 1.374, 1.382, 1.391, 1.399, 1.407, 1.415, 1.423, 1.431, 1.439, - & 1.446, 1.454, 1.462, 1.469, 1.476, 1.483, 1.491, 1.498, 1.505, - & 1.511, 1.518, 1.525, 1.531, 1.538, 1.544, 1.551, 1.557, 1.563, - & 1.569, 1.576, 1.582, 1.587, 1.593, 1.599, 1.605, 1.610, 1.616, - & 1.622, 1.627, 1.632, 1.638, 1.643, 1.648, 1.653, 1.658, 1.663, - & 1.668, 1.673, 1.678, 1.683, 1.688, 1.692, 1.697, 1.701, 1.706, - & 1.710, 1.715, 1.719, 1.723, 1.728, 1.732, 1.736, 1.740, 1.744, - & 1.748, 1.752, 1.756, 1.760, 1.764, 1.768, 1.771, 1.775, 1.779, - & 1.782, 1.786, 1.789, 1.793, 1.796, 1.800, 1.803, 1.806, 1.810, - & 1.813, 1.816, 1.819, 1.822, 1.825, 1.828, 1.831, 1.834, 1.837, - & 1.840, 1.843, 1.846, 1.849, 1.852, 1.854, 1.857, 1.860, 1.862, - & 1.865, 1.867, 1.870, 1.872, 1.875, 1.877, 1.880, 1.882, 1.885, - & 1.887, 1.889, 1.891 - & /) -! -! *** (H,Cl) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC11M_223 = (/ - &-0.047,-0.093,-0.111,-0.121,-0.127,-0.131,-0.133,-0.134,-0.133, - &-0.132,-0.131,-0.128,-0.126,-0.123,-0.119,-0.115,-0.111,-0.107, - &-0.102,-0.098,-0.093,-0.088,-0.082,-0.077,-0.071,-0.065,-0.060, - &-0.054,-0.048,-0.041,-0.035,-0.029,-0.022,-0.016,-0.009,-0.003, - & 0.004, 0.011, 0.018, 0.025, 0.032, 0.038, 0.045, 0.053, 0.060, - & 0.067, 0.074, 0.081, 0.088, 0.095, 0.103, 0.110, 0.117, 0.124, - & 0.132, 0.139, 0.146, 0.154, 0.161, 0.168, 0.176, 0.183, 0.191, - & 0.198, 0.206, 0.213, 0.221, 0.228, 0.236, 0.243, 0.251, 0.258, - & 0.266, 0.274, 0.281, 0.289, 0.297, 0.305, 0.312, 0.320, 0.328, - & 0.336, 0.344, 0.352, 0.360, 0.368, 0.376, 0.384, 0.393, 0.401, - & 0.409, 0.417, 0.426, 0.434, 0.443, 0.451, 0.460, 0.468, 0.477, - & 0.485, 0.494, 0.503, 0.511, 0.520, 0.529, 0.538, 0.546, 0.555, - & 0.564, 0.573, 0.582, 0.591, 0.600, 0.608, 0.617, 0.626, 0.635, - & 0.644, 0.653, 0.662, 0.671, 0.680, 0.689, 0.698, 0.707, 0.716, - & 0.725, 0.734, 0.743, 0.752, 0.761, 0.770, 0.779, 0.788, 0.796, - & 0.805, 0.814, 0.823, 0.832, 0.841, 0.850, 0.859, 0.867, 0.876, - & 0.885, 0.894, 0.903, 0.911, 0.920, 0.929, 0.937, 0.946, 0.955, - & 0.964, 0.972, 0.981, 0.989, 0.998, 1.007, 1.015, 1.024, 1.032, - & 1.041, 1.049, 1.058, 1.066, 1.075, 1.083, 1.092, 1.100, 1.109, - & 1.117, 1.125, 1.134, 1.142, 1.150, 1.159, 1.167, 1.175, 1.183, - & 1.192, 1.200, 1.208, 1.216, 1.224, 1.233, 1.241, 1.249, 1.257, - & 1.265, 1.273, 1.281, 1.289, 1.297, 1.305, 1.313, 1.321, 1.329, - & 1.337, 1.345, 1.353, 1.361, 1.369, 1.377, 1.384, 1.392, 1.400, - & 1.408, 1.416, 1.423, 1.431, 1.439, 1.447, 1.454, 1.462, 1.470, - & 1.477, 1.485, 1.493, 1.500, 1.508, 1.515, 1.523, 1.530, 1.538, - & 1.545, 1.553, 1.560, 1.568, 1.575, 1.583, 1.590, 1.598, 1.605, - & 1.612, 1.620, 1.627, 1.634, 1.642, 1.649, 1.656, 1.663, 1.671, - & 1.678, 1.685, 1.692, 1.699, 1.707, 1.714, 1.721, 1.728, 1.735, - & 1.742, 1.749, 1.756, 1.763, 1.770, 1.778, 1.785, 1.791, 1.798, - & 1.805, 1.812, 1.819, 1.826, 1.833, 1.840, 1.847, 1.854, 1.861, - & 1.867, 1.874, 1.881, 1.888, 1.895, 1.901, 1.908, 1.915, 1.922, - & 1.928, 1.935, 1.942, 1.948, 1.955, 1.962, 1.968, 1.975, 1.981, - & 1.988, 1.995, 2.001, 2.008, 2.014, 2.021, 2.027, 2.034, 2.040, - & 2.047, 2.053, 2.060, 2.066, 2.072, 2.079, 2.085, 2.092, 2.098, - & 2.104, 2.111, 2.117, 2.123, 2.130, 2.136, 2.142, 2.148, 2.155, - & 2.161, 2.167, 2.173, 2.180, 2.186, 2.192, 2.198, 2.204, 2.210, - & 2.216, 2.223, 2.229, 2.235, 2.241, 2.247, 2.253, 2.259, 2.265, - & 2.271, 2.277, 2.283, 2.289, 2.295, 2.301, 2.307, 2.313, 2.319, - & 2.325, 2.331, 2.337, 2.343, 2.348, 2.354, 2.360, 2.366, 2.372, - & 2.378, 2.383, 2.389, 2.395, 2.401, 2.407, 2.412, 2.418, 2.424, - & 2.430, 2.435, 2.441, 2.447, 2.452, 2.458, 2.464, 2.469, 2.475, - & 2.481, 2.486, 2.492, 2.497, 2.503, 2.509, 2.514, 2.520, 2.525, - & 2.531, 2.536, 2.542, 2.547, 2.553, 2.558, 2.564, 2.569, 2.575, - & 2.580, 2.586, 2.591, 2.597, 2.602, 2.607, 2.613, 2.618, 2.624, - & 2.629, 2.634, 2.640, 2.645, 2.702, 2.754, 2.805, 2.855, 2.904, - & 2.953, 3.001, 3.048, 3.094, 3.139, 3.184, 3.228, 3.272, 3.315, - & 3.357, 3.399, 3.440, 3.480, 3.520, 3.559, 3.598, 3.636, 3.674, - & 3.711, 3.748, 3.784, 3.820, 3.855, 3.890, 3.925, 3.959, 3.992, - & 4.026, 4.058, 4.091, 4.123, 4.155, 4.186, 4.217, 4.247, 4.278, - & 4.308, 4.337, 4.366, 4.395, 4.424, 4.452, 4.480, 4.508, 4.535, - & 4.562, 4.589, 4.616, 4.642, 4.668, 4.694, 4.719, 4.745, 4.770, - & 4.794, 4.819, 4.843, 4.867, 4.891, 4.915, 4.938, 4.961, 4.984, - & 5.007, 5.029, 5.052, 5.074, 5.096, 5.117, 5.139, 5.160, 5.181, - & 5.202, 5.223, 5.244, 5.264, 5.285, 5.305, 5.324, 5.344, 5.364, - & 5.383, 5.402, 5.422, 5.441, 5.459, 5.478, 5.496, 5.515, 5.533, - & 5.551, 5.569, 5.587, 5.604, 5.622, 5.639, 5.656, 5.673, 5.690, - & 5.707, 5.724, 5.740, 5.757, 5.773, 5.789, 5.806, 5.821, 5.837, - & 5.853, 5.869, 5.884, 5.900, 5.915, 5.930, 5.945, 5.960, 5.975, - & 5.990, 6.004, 6.019, 6.033, 6.048, 6.062, 6.076, 6.090, 6.104, - & 6.118, 6.132, 6.145, 6.159, 6.172, 6.186, 6.199, 6.212, 6.225, - & 6.238, 6.251, 6.264, 6.277, 6.290, 6.302, 6.315, 6.327, 6.340, - & 6.352, 6.364, 6.377, 6.389, 6.401, 6.413, 6.424, 6.436, 6.448, - & 6.459, 6.471, 6.482 - & /) -! -! *** NaHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC12M_223 = (/ - &-0.048,-0.099,-0.122,-0.137,-0.148,-0.156,-0.163,-0.168,-0.172, - &-0.175,-0.178,-0.180,-0.182,-0.183,-0.184,-0.184,-0.184,-0.184, - &-0.184,-0.183,-0.182,-0.181,-0.180,-0.179,-0.177,-0.176,-0.174, - &-0.172,-0.170,-0.167,-0.165,-0.163,-0.160,-0.157,-0.155,-0.152, - &-0.149,-0.146,-0.143,-0.139,-0.136,-0.133,-0.129,-0.126,-0.122, - &-0.118,-0.115,-0.111,-0.107,-0.103,-0.099,-0.095,-0.091,-0.087, - &-0.083,-0.079,-0.075,-0.071,-0.066,-0.062,-0.058,-0.053,-0.049, - &-0.044,-0.040,-0.035,-0.031,-0.026,-0.022,-0.017,-0.012,-0.007, - &-0.003, 0.002, 0.007, 0.012, 0.017, 0.022, 0.027, 0.032, 0.037, - & 0.042, 0.047, 0.052, 0.058, 0.063, 0.068, 0.073, 0.079, 0.084, - & 0.090, 0.095, 0.101, 0.106, 0.112, 0.117, 0.123, 0.128, 0.134, - & 0.140, 0.146, 0.151, 0.157, 0.163, 0.169, 0.175, 0.180, 0.186, - & 0.192, 0.198, 0.204, 0.210, 0.216, 0.222, 0.228, 0.234, 0.240, - & 0.246, 0.252, 0.258, 0.264, 0.270, 0.276, 0.282, 0.288, 0.294, - & 0.300, 0.306, 0.312, 0.318, 0.323, 0.329, 0.335, 0.341, 0.347, - & 0.353, 0.359, 0.365, 0.371, 0.377, 0.383, 0.389, 0.394, 0.400, - & 0.406, 0.412, 0.418, 0.424, 0.429, 0.435, 0.441, 0.447, 0.453, - & 0.458, 0.464, 0.470, 0.476, 0.481, 0.487, 0.493, 0.498, 0.504, - & 0.510, 0.515, 0.521, 0.526, 0.532, 0.538, 0.543, 0.549, 0.554, - & 0.560, 0.565, 0.571, 0.576, 0.582, 0.587, 0.593, 0.598, 0.604, - & 0.609, 0.615, 0.620, 0.625, 0.631, 0.636, 0.641, 0.647, 0.652, - & 0.657, 0.663, 0.668, 0.673, 0.679, 0.684, 0.689, 0.694, 0.700, - & 0.705, 0.710, 0.715, 0.720, 0.726, 0.731, 0.736, 0.741, 0.746, - & 0.751, 0.756, 0.761, 0.766, 0.772, 0.777, 0.782, 0.787, 0.792, - & 0.797, 0.802, 0.807, 0.812, 0.817, 0.822, 0.826, 0.831, 0.836, - & 0.841, 0.846, 0.851, 0.856, 0.861, 0.866, 0.870, 0.875, 0.880, - & 0.885, 0.890, 0.894, 0.899, 0.904, 0.909, 0.914, 0.918, 0.923, - & 0.928, 0.932, 0.937, 0.942, 0.946, 0.951, 0.956, 0.960, 0.965, - & 0.970, 0.974, 0.979, 0.984, 0.988, 0.993, 0.997, 1.002, 1.006, - & 1.011, 1.015, 1.020, 1.024, 1.029, 1.033, 1.038, 1.042, 1.047, - & 1.051, 1.056, 1.060, 1.065, 1.069, 1.073, 1.078, 1.082, 1.087, - & 1.091, 1.095, 1.100, 1.104, 1.108, 1.113, 1.117, 1.121, 1.126, - & 1.130, 1.134, 1.138, 1.143, 1.147, 1.151, 1.155, 1.160, 1.164, - & 1.168, 1.172, 1.177, 1.181, 1.185, 1.189, 1.193, 1.197, 1.202, - & 1.206, 1.210, 1.214, 1.218, 1.222, 1.226, 1.230, 1.234, 1.238, - & 1.243, 1.247, 1.251, 1.255, 1.259, 1.263, 1.267, 1.271, 1.275, - & 1.279, 1.283, 1.287, 1.291, 1.295, 1.299, 1.303, 1.306, 1.310, - & 1.314, 1.318, 1.322, 1.326, 1.330, 1.334, 1.338, 1.342, 1.345, - & 1.349, 1.353, 1.357, 1.361, 1.365, 1.368, 1.372, 1.376, 1.380, - & 1.384, 1.387, 1.391, 1.395, 1.399, 1.403, 1.406, 1.410, 1.414, - & 1.418, 1.421, 1.425, 1.429, 1.432, 1.436, 1.440, 1.443, 1.447, - & 1.451, 1.454, 1.458, 1.462, 1.465, 1.469, 1.473, 1.476, 1.480, - & 1.484, 1.487, 1.491, 1.494, 1.498, 1.501, 1.505, 1.509, 1.512, - & 1.516, 1.519, 1.523, 1.526, 1.530, 1.533, 1.537, 1.540, 1.544, - & 1.547, 1.551, 1.554, 1.558, 1.595, 1.629, 1.662, 1.695, 1.727, - & 1.759, 1.790, 1.820, 1.850, 1.880, 1.909, 1.938, 1.966, 1.994, - & 2.022, 2.049, 2.076, 2.102, 2.128, 2.153, 2.179, 2.203, 2.228, - & 2.252, 2.276, 2.300, 2.323, 2.346, 2.368, 2.391, 2.413, 2.435, - & 2.456, 2.477, 2.498, 2.519, 2.539, 2.560, 2.580, 2.599, 2.619, - & 2.638, 2.657, 2.676, 2.695, 2.713, 2.731, 2.749, 2.767, 2.785, - & 2.802, 2.819, 2.836, 2.853, 2.870, 2.886, 2.902, 2.918, 2.934, - & 2.950, 2.966, 2.981, 2.997, 3.012, 3.027, 3.042, 3.056, 3.071, - & 3.085, 3.099, 3.114, 3.128, 3.141, 3.155, 3.169, 3.182, 3.195, - & 3.209, 3.222, 3.235, 3.247, 3.260, 3.273, 3.285, 3.298, 3.310, - & 3.322, 3.334, 3.346, 3.358, 3.369, 3.381, 3.392, 3.404, 3.415, - & 3.426, 3.437, 3.448, 3.459, 3.470, 3.481, 3.491, 3.502, 3.512, - & 3.523, 3.533, 3.543, 3.553, 3.563, 3.573, 3.583, 3.593, 3.603, - & 3.612, 3.622, 3.631, 3.640, 3.650, 3.659, 3.668, 3.677, 3.686, - & 3.695, 3.704, 3.713, 3.721, 3.730, 3.739, 3.747, 3.756, 3.764, - & 3.772, 3.781, 3.789, 3.797, 3.805, 3.813, 3.821, 3.829, 3.836, - & 3.844, 3.852, 3.860, 3.867, 3.875, 3.882, 3.889, 3.897, 3.904, - & 3.911, 3.919, 3.926, 3.933, 3.940, 3.947, 3.954, 3.961, 3.967, - & 3.974, 3.981, 3.988 - & /) -! -! *** (NH4)3H(SO4)2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC13M_223 = (/ - &-0.080,-0.174,-0.221,-0.254,-0.280,-0.302,-0.321,-0.337,-0.352, - &-0.365,-0.377,-0.388,-0.398,-0.408,-0.417,-0.425,-0.433,-0.440, - &-0.447,-0.454,-0.461,-0.467,-0.472,-0.478,-0.483,-0.488,-0.493, - &-0.498,-0.503,-0.507,-0.511,-0.515,-0.519,-0.523,-0.527,-0.530, - &-0.533,-0.537,-0.540,-0.543,-0.546,-0.549,-0.551,-0.554,-0.557, - &-0.559,-0.562,-0.564,-0.566,-0.569,-0.571,-0.573,-0.575,-0.577, - &-0.579,-0.580,-0.582,-0.584,-0.586,-0.587,-0.589,-0.590,-0.592, - &-0.593,-0.595,-0.596,-0.597,-0.599,-0.600,-0.601,-0.602,-0.603, - &-0.604,-0.605,-0.607,-0.608,-0.609,-0.609,-0.610,-0.611,-0.612, - &-0.613,-0.614,-0.614,-0.615,-0.616,-0.617,-0.617,-0.618,-0.619, - &-0.619,-0.620,-0.620,-0.621,-0.621,-0.622,-0.622,-0.623,-0.623, - &-0.624,-0.624,-0.624,-0.625,-0.625,-0.626,-0.626,-0.626,-0.626, - &-0.627,-0.627,-0.627,-0.628,-0.628,-0.628,-0.628,-0.628,-0.629, - &-0.629,-0.629,-0.629,-0.629,-0.629,-0.630,-0.630,-0.630,-0.630, - &-0.630,-0.630,-0.630,-0.630,-0.630,-0.631,-0.631,-0.631,-0.631, - &-0.631,-0.631,-0.631,-0.631,-0.631,-0.631,-0.631,-0.631,-0.631, - &-0.631,-0.631,-0.631,-0.631,-0.631,-0.631,-0.631,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632, - &-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.632,-0.633,-0.633, - &-0.633,-0.633,-0.633,-0.633,-0.633,-0.633,-0.633,-0.633,-0.633, - &-0.633,-0.633,-0.633,-0.633,-0.633,-0.633,-0.633,-0.633,-0.633, - &-0.633,-0.633,-0.633,-0.633,-0.634,-0.634,-0.634,-0.634,-0.634, - &-0.634,-0.634,-0.634,-0.634,-0.634,-0.634,-0.634,-0.634,-0.634, - &-0.634,-0.634,-0.634,-0.634,-0.635,-0.635,-0.635,-0.635,-0.635, - &-0.635,-0.635,-0.635,-0.635,-0.635,-0.635,-0.635,-0.635,-0.635, - &-0.636,-0.636,-0.636,-0.636,-0.636,-0.636,-0.636,-0.636,-0.636, - &-0.636,-0.636,-0.636,-0.637,-0.637,-0.637,-0.637,-0.637,-0.637, - &-0.637,-0.637,-0.637,-0.637,-0.637,-0.638,-0.638,-0.638,-0.638, - &-0.638,-0.638,-0.638,-0.638,-0.638,-0.638,-0.639,-0.639,-0.639, - &-0.639,-0.639,-0.639,-0.639,-0.639,-0.639,-0.639,-0.640,-0.640, - &-0.640,-0.640,-0.640,-0.640,-0.640,-0.640,-0.640,-0.641,-0.641, - &-0.641,-0.641,-0.641,-0.641,-0.641,-0.641,-0.642,-0.642,-0.642, - &-0.642,-0.642,-0.642,-0.642,-0.642,-0.643,-0.643,-0.643,-0.643, - &-0.643,-0.643,-0.643,-0.643,-0.644,-0.644,-0.644,-0.644,-0.644, - &-0.644,-0.644,-0.645,-0.645,-0.645,-0.645,-0.645,-0.645,-0.645, - &-0.646,-0.646,-0.646,-0.646,-0.648,-0.649,-0.651,-0.652,-0.654, - &-0.656,-0.658,-0.660,-0.662,-0.664,-0.666,-0.668,-0.670,-0.673, - &-0.675,-0.677,-0.680,-0.682,-0.685,-0.687,-0.690,-0.693,-0.695, - &-0.698,-0.701,-0.704,-0.707,-0.709,-0.712,-0.715,-0.718,-0.722, - &-0.725,-0.728,-0.731,-0.734,-0.737,-0.741,-0.744,-0.747,-0.751, - &-0.754,-0.758,-0.761,-0.764,-0.768,-0.772,-0.775,-0.779,-0.782, - &-0.786,-0.790,-0.793,-0.797,-0.801,-0.805,-0.809,-0.812,-0.816, - &-0.820,-0.824,-0.828,-0.832,-0.836,-0.840,-0.844,-0.848,-0.852, - &-0.856,-0.860,-0.864,-0.868,-0.873,-0.877,-0.881,-0.885,-0.889, - &-0.894,-0.898,-0.902,-0.906,-0.911,-0.915,-0.919,-0.924,-0.928, - &-0.932,-0.937,-0.941,-0.946,-0.950,-0.955,-0.959,-0.964,-0.968, - &-0.973,-0.977,-0.982,-0.986,-0.991,-0.995,-1.000,-1.005,-1.009, - &-1.014,-1.019,-1.023,-1.028,-1.033,-1.037,-1.042,-1.047,-1.051, - &-1.056,-1.061,-1.066,-1.071,-1.075,-1.080,-1.085,-1.090,-1.095, - &-1.099,-1.104,-1.109,-1.114,-1.119,-1.124,-1.129,-1.134,-1.138, - &-1.143,-1.148,-1.153,-1.158,-1.163,-1.168,-1.173,-1.178,-1.183, - &-1.188,-1.193,-1.198,-1.203,-1.208,-1.213,-1.218,-1.223,-1.228, - &-1.233,-1.238,-1.244,-1.249,-1.254,-1.259,-1.264,-1.269,-1.274, - &-1.279,-1.284,-1.290 - & /) -! -! *** CASO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC14M_223 = (/ - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000 - & /) -! -! *** CANO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC15M_223 = (/ - &-0.099,-0.211,-0.264,-0.301,-0.329,-0.351,-0.370,-0.386,-0.399, - &-0.411,-0.422,-0.432,-0.440,-0.448,-0.455,-0.462,-0.468,-0.473, - &-0.478,-0.483,-0.487,-0.491,-0.495,-0.499,-0.502,-0.505,-0.508, - &-0.511,-0.513,-0.516,-0.518,-0.520,-0.522,-0.524,-0.526,-0.528, - &-0.529,-0.531,-0.532,-0.534,-0.535,-0.536,-0.537,-0.539,-0.540, - &-0.541,-0.542,-0.543,-0.544,-0.545,-0.545,-0.546,-0.547,-0.548, - &-0.549,-0.549,-0.550,-0.551,-0.551,-0.552,-0.552,-0.553,-0.553, - &-0.554,-0.554,-0.555,-0.555,-0.556,-0.556,-0.556,-0.557,-0.557, - &-0.557,-0.558,-0.558,-0.558,-0.558,-0.559,-0.559,-0.559,-0.559, - &-0.559,-0.559,-0.559,-0.559,-0.559,-0.559,-0.559,-0.559,-0.559, - &-0.559,-0.559,-0.559,-0.559,-0.558,-0.558,-0.558,-0.558,-0.557, - &-0.557,-0.557,-0.556,-0.556,-0.556,-0.555,-0.555,-0.555,-0.554, - &-0.554,-0.553,-0.553,-0.552,-0.552,-0.551,-0.551,-0.550,-0.550, - &-0.549,-0.549,-0.548,-0.548,-0.547,-0.547,-0.546,-0.545,-0.545, - &-0.544,-0.544,-0.543,-0.542,-0.542,-0.541,-0.541,-0.540,-0.539, - &-0.539,-0.538,-0.538,-0.537,-0.536,-0.536,-0.535,-0.534,-0.534, - &-0.533,-0.533,-0.532,-0.531,-0.531,-0.530,-0.529,-0.529,-0.528, - &-0.527,-0.527,-0.526,-0.525,-0.525,-0.524,-0.524,-0.523,-0.522, - &-0.522,-0.521,-0.520,-0.520,-0.519,-0.518,-0.518,-0.517,-0.516, - &-0.516,-0.515,-0.514,-0.514,-0.513,-0.513,-0.512,-0.511,-0.511, - &-0.510,-0.509,-0.509,-0.508,-0.507,-0.507,-0.506,-0.505,-0.505, - &-0.504,-0.504,-0.503,-0.502,-0.502,-0.501,-0.500,-0.500,-0.499, - &-0.499,-0.498,-0.497,-0.497,-0.496,-0.495,-0.495,-0.494,-0.494, - &-0.493,-0.492,-0.492,-0.491,-0.490,-0.490,-0.489,-0.489,-0.488, - &-0.487,-0.487,-0.486,-0.486,-0.485,-0.484,-0.484,-0.483,-0.483, - &-0.482,-0.481,-0.481,-0.480,-0.480,-0.479,-0.478,-0.478,-0.477, - &-0.477,-0.476,-0.475,-0.475,-0.474,-0.474,-0.473,-0.473,-0.472, - &-0.471,-0.471,-0.470,-0.470,-0.469,-0.469,-0.468,-0.468,-0.467, - &-0.466,-0.466,-0.465,-0.465,-0.464,-0.464,-0.463,-0.463,-0.462, - &-0.461,-0.461,-0.460,-0.460,-0.459,-0.459,-0.458,-0.458,-0.457, - &-0.457,-0.456,-0.456,-0.455,-0.455,-0.454,-0.453,-0.453,-0.452, - &-0.452,-0.451,-0.451,-0.450,-0.450,-0.449,-0.449,-0.448,-0.448, - &-0.447,-0.447,-0.446,-0.446,-0.445,-0.445,-0.444,-0.444,-0.443, - &-0.443,-0.442,-0.442,-0.441,-0.441,-0.440,-0.440,-0.440,-0.439, - &-0.439,-0.438,-0.438,-0.437,-0.437,-0.436,-0.436,-0.435,-0.435, - &-0.434,-0.434,-0.433,-0.433,-0.433,-0.432,-0.432,-0.431,-0.431, - &-0.430,-0.430,-0.429,-0.429,-0.429,-0.428,-0.428,-0.427,-0.427, - &-0.426,-0.426,-0.426,-0.425,-0.425,-0.424,-0.424,-0.423,-0.423, - &-0.423,-0.422,-0.422,-0.421,-0.421,-0.421,-0.420,-0.420,-0.419, - &-0.419,-0.419,-0.418,-0.418,-0.417,-0.417,-0.417,-0.416,-0.416, - &-0.415,-0.415,-0.415,-0.414,-0.414,-0.413,-0.413,-0.413,-0.412, - &-0.412,-0.412,-0.411,-0.411,-0.410,-0.410,-0.410,-0.409,-0.409, - &-0.409,-0.408,-0.408,-0.408,-0.407,-0.407,-0.407,-0.406,-0.406, - &-0.405,-0.405,-0.405,-0.404,-0.404,-0.404,-0.403,-0.403,-0.403, - &-0.402,-0.402,-0.402,-0.401,-0.398,-0.395,-0.392,-0.389,-0.386, - &-0.384,-0.381,-0.379,-0.377,-0.375,-0.373,-0.371,-0.369,-0.368, - &-0.366,-0.365,-0.364,-0.363,-0.362,-0.361,-0.360,-0.359,-0.358, - &-0.358,-0.357,-0.357,-0.357,-0.356,-0.356,-0.356,-0.356,-0.356, - &-0.356,-0.357,-0.357,-0.357,-0.358,-0.358,-0.359,-0.360,-0.361, - &-0.361,-0.362,-0.363,-0.364,-0.365,-0.367,-0.368,-0.369,-0.370, - &-0.372,-0.373,-0.375,-0.376,-0.378,-0.380,-0.381,-0.383,-0.385, - &-0.387,-0.389,-0.391,-0.393,-0.395,-0.397,-0.399,-0.401,-0.404, - &-0.406,-0.408,-0.411,-0.413,-0.416,-0.418,-0.421,-0.423,-0.426, - &-0.429,-0.431,-0.434,-0.437,-0.440,-0.442,-0.445,-0.448,-0.451, - &-0.454,-0.457,-0.460,-0.463,-0.467,-0.470,-0.473,-0.476,-0.480, - &-0.483,-0.486,-0.490,-0.493,-0.496,-0.500,-0.503,-0.507,-0.510, - &-0.514,-0.517,-0.521,-0.525,-0.528,-0.532,-0.536,-0.540,-0.543, - &-0.547,-0.551,-0.555,-0.559,-0.563,-0.566,-0.570,-0.574,-0.578, - &-0.582,-0.586,-0.590,-0.595,-0.599,-0.603,-0.607,-0.611,-0.615, - &-0.619,-0.624,-0.628,-0.632,-0.637,-0.641,-0.645,-0.650,-0.654, - &-0.658,-0.663,-0.667,-0.672,-0.676,-0.680,-0.685,-0.689,-0.694, - &-0.699,-0.703,-0.708,-0.712,-0.717,-0.722,-0.726,-0.731,-0.736, - &-0.740,-0.745,-0.750 - & /) -! -! *** CACL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC16M_223 = (/ - &-0.097,-0.201,-0.247,-0.277,-0.298,-0.314,-0.327,-0.337,-0.345, - &-0.351,-0.356,-0.359,-0.362,-0.365,-0.366,-0.367,-0.367,-0.367, - &-0.367,-0.366,-0.365,-0.364,-0.362,-0.361,-0.359,-0.356,-0.354, - &-0.352,-0.349,-0.346,-0.343,-0.340,-0.337,-0.334,-0.331,-0.328, - &-0.324,-0.321,-0.317,-0.314,-0.310,-0.307,-0.303,-0.300,-0.296, - &-0.292,-0.289,-0.285,-0.281,-0.277,-0.274,-0.270,-0.266,-0.262, - &-0.259,-0.255,-0.251,-0.247,-0.244,-0.240,-0.236,-0.232,-0.228, - &-0.224,-0.221,-0.217,-0.213,-0.209,-0.205,-0.201,-0.197,-0.193, - &-0.189,-0.185,-0.181,-0.177,-0.173,-0.169,-0.165,-0.161,-0.157, - &-0.152,-0.148,-0.144,-0.139,-0.135,-0.131,-0.126,-0.122,-0.117, - &-0.113,-0.108,-0.104,-0.099,-0.095,-0.090,-0.085,-0.080,-0.076, - &-0.071,-0.066,-0.061,-0.056,-0.051,-0.047,-0.042,-0.037,-0.032, - &-0.027,-0.022,-0.017,-0.012,-0.006,-0.001, 0.004, 0.009, 0.014, - & 0.019, 0.024, 0.029, 0.034, 0.040, 0.045, 0.050, 0.055, 0.060, - & 0.065, 0.071, 0.076, 0.081, 0.086, 0.091, 0.096, 0.102, 0.107, - & 0.112, 0.117, 0.122, 0.127, 0.133, 0.138, 0.143, 0.148, 0.153, - & 0.158, 0.163, 0.168, 0.174, 0.179, 0.184, 0.189, 0.194, 0.199, - & 0.204, 0.209, 0.214, 0.219, 0.224, 0.229, 0.234, 0.239, 0.244, - & 0.249, 0.254, 0.259, 0.264, 0.269, 0.274, 0.279, 0.284, 0.289, - & 0.294, 0.299, 0.304, 0.309, 0.314, 0.319, 0.324, 0.329, 0.334, - & 0.338, 0.343, 0.348, 0.353, 0.358, 0.363, 0.368, 0.372, 0.377, - & 0.382, 0.387, 0.392, 0.396, 0.401, 0.406, 0.411, 0.415, 0.420, - & 0.425, 0.430, 0.434, 0.439, 0.444, 0.449, 0.453, 0.458, 0.463, - & 0.467, 0.472, 0.477, 0.481, 0.486, 0.491, 0.495, 0.500, 0.504, - & 0.509, 0.514, 0.518, 0.523, 0.527, 0.532, 0.536, 0.541, 0.545, - & 0.550, 0.555, 0.559, 0.564, 0.568, 0.573, 0.577, 0.581, 0.586, - & 0.590, 0.595, 0.599, 0.604, 0.608, 0.613, 0.617, 0.621, 0.626, - & 0.630, 0.635, 0.639, 0.643, 0.648, 0.652, 0.656, 0.661, 0.665, - & 0.669, 0.674, 0.678, 0.682, 0.686, 0.691, 0.695, 0.699, 0.703, - & 0.708, 0.712, 0.716, 0.720, 0.725, 0.729, 0.733, 0.737, 0.741, - & 0.746, 0.750, 0.754, 0.758, 0.762, 0.766, 0.770, 0.775, 0.779, - & 0.783, 0.787, 0.791, 0.795, 0.799, 0.803, 0.807, 0.811, 0.815, - & 0.819, 0.823, 0.827, 0.831, 0.835, 0.839, 0.843, 0.847, 0.851, - & 0.855, 0.859, 0.863, 0.867, 0.871, 0.875, 0.879, 0.883, 0.887, - & 0.891, 0.895, 0.899, 0.902, 0.906, 0.910, 0.914, 0.918, 0.922, - & 0.926, 0.929, 0.933, 0.937, 0.941, 0.945, 0.949, 0.952, 0.956, - & 0.960, 0.964, 0.967, 0.971, 0.975, 0.979, 0.982, 0.986, 0.990, - & 0.994, 0.997, 1.001, 1.005, 1.008, 1.012, 1.016, 1.019, 1.023, - & 1.027, 1.030, 1.034, 1.038, 1.041, 1.045, 1.049, 1.052, 1.056, - & 1.059, 1.063, 1.067, 1.070, 1.074, 1.077, 1.081, 1.084, 1.088, - & 1.091, 1.095, 1.098, 1.102, 1.106, 1.109, 1.113, 1.116, 1.119, - & 1.123, 1.126, 1.130, 1.133, 1.137, 1.140, 1.144, 1.147, 1.151, - & 1.154, 1.157, 1.161, 1.164, 1.168, 1.171, 1.174, 1.178, 1.181, - & 1.185, 1.188, 1.191, 1.195, 1.198, 1.201, 1.205, 1.208, 1.211, - & 1.215, 1.218, 1.221, 1.225, 1.260, 1.292, 1.323, 1.354, 1.385, - & 1.415, 1.444, 1.473, 1.501, 1.529, 1.557, 1.584, 1.610, 1.636, - & 1.662, 1.687, 1.712, 1.737, 1.761, 1.784, 1.808, 1.831, 1.853, - & 1.876, 1.898, 1.919, 1.940, 1.961, 1.982, 2.002, 2.022, 2.042, - & 2.062, 2.081, 2.100, 2.118, 2.137, 2.155, 2.172, 2.190, 2.207, - & 2.224, 2.241, 2.258, 2.274, 2.290, 2.306, 2.322, 2.337, 2.353, - & 2.368, 2.382, 2.397, 2.412, 2.426, 2.440, 2.454, 2.467, 2.481, - & 2.494, 2.507, 2.520, 2.533, 2.546, 2.558, 2.571, 2.583, 2.595, - & 2.606, 2.618, 2.630, 2.641, 2.652, 2.663, 2.674, 2.685, 2.696, - & 2.706, 2.717, 2.727, 2.737, 2.747, 2.757, 2.767, 2.776, 2.786, - & 2.795, 2.804, 2.813, 2.822, 2.831, 2.840, 2.849, 2.857, 2.866, - & 2.874, 2.882, 2.891, 2.899, 2.907, 2.914, 2.922, 2.930, 2.937, - & 2.945, 2.952, 2.959, 2.966, 2.973, 2.980, 2.987, 2.994, 3.001, - & 3.007, 3.014, 3.020, 3.027, 3.033, 3.039, 3.045, 3.051, 3.057, - & 3.063, 3.069, 3.075, 3.081, 3.086, 3.092, 3.097, 3.102, 3.108, - & 3.113, 3.118, 3.123, 3.128, 3.133, 3.138, 3.143, 3.147, 3.152, - & 3.157, 3.161, 3.166, 3.170, 3.175, 3.179, 3.183, 3.187, 3.191, - & 3.195, 3.199, 3.203, 3.207, 3.211, 3.215, 3.219, 3.222, 3.226, - & 3.229, 3.233, 3.236 - & /) -! -! *** K2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC17M_223 = (/ - &-0.101,-0.220,-0.281,-0.324,-0.358,-0.387,-0.412,-0.434,-0.453, - &-0.471,-0.487,-0.503,-0.517,-0.530,-0.543,-0.555,-0.566,-0.577, - &-0.587,-0.597,-0.606,-0.615,-0.624,-0.632,-0.641,-0.649,-0.656, - &-0.664,-0.671,-0.678,-0.685,-0.692,-0.698,-0.705,-0.711,-0.717, - &-0.723,-0.729,-0.735,-0.740,-0.746,-0.752,-0.757,-0.762,-0.767, - &-0.772,-0.777,-0.782,-0.787,-0.792,-0.797,-0.801,-0.806,-0.810, - &-0.815,-0.819,-0.824,-0.828,-0.832,-0.836,-0.840,-0.844,-0.848, - &-0.852,-0.856,-0.860,-0.864,-0.868,-0.872,-0.876,-0.879,-0.883, - &-0.887,-0.890,-0.894,-0.897,-0.901,-0.904,-0.908,-0.911,-0.915, - &-0.918,-0.922,-0.925,-0.928,-0.932,-0.935,-0.938,-0.942,-0.945, - &-0.948,-0.951,-0.954,-0.958,-0.961,-0.964,-0.967,-0.970,-0.973, - &-0.976,-0.979,-0.982,-0.985,-0.988,-0.991,-0.994,-0.997,-1.000, - &-1.003,-1.006,-1.009,-1.012,-1.015,-1.018,-1.021,-1.024,-1.026, - &-1.029,-1.032,-1.035,-1.038,-1.040,-1.043,-1.046,-1.049,-1.051, - &-1.054,-1.057,-1.060,-1.062,-1.065,-1.068,-1.070,-1.073,-1.076, - &-1.078,-1.081,-1.083,-1.086,-1.089,-1.091,-1.094,-1.096,-1.099, - &-1.102,-1.104,-1.107,-1.109,-1.112,-1.114,-1.117,-1.119,-1.122, - &-1.124,-1.127,-1.129,-1.131,-1.134,-1.136,-1.139,-1.141,-1.144, - &-1.146,-1.148,-1.151,-1.153,-1.155,-1.158,-1.160,-1.163,-1.165, - &-1.167,-1.170,-1.172,-1.174,-1.177,-1.179,-1.181,-1.183,-1.186, - &-1.188,-1.190,-1.193,-1.195,-1.197,-1.199,-1.202,-1.204,-1.206, - &-1.208,-1.210,-1.213,-1.215,-1.217,-1.219,-1.221,-1.224,-1.226, - &-1.228,-1.230,-1.232,-1.235,-1.237,-1.239,-1.241,-1.243,-1.245, - &-1.247,-1.250,-1.252,-1.254,-1.256,-1.258,-1.260,-1.262,-1.264, - &-1.266,-1.269,-1.271,-1.273,-1.275,-1.277,-1.279,-1.281,-1.283, - &-1.285,-1.287,-1.289,-1.291,-1.293,-1.295,-1.297,-1.299,-1.301, - &-1.303,-1.305,-1.307,-1.309,-1.311,-1.313,-1.315,-1.317,-1.319, - &-1.321,-1.323,-1.325,-1.327,-1.329,-1.331,-1.333,-1.335,-1.337, - &-1.339,-1.341,-1.343,-1.345,-1.347,-1.349,-1.351,-1.353,-1.355, - &-1.357,-1.358,-1.360,-1.362,-1.364,-1.366,-1.368,-1.370,-1.372, - &-1.374,-1.376,-1.377,-1.379,-1.381,-1.383,-1.385,-1.387,-1.389, - &-1.391,-1.392,-1.394,-1.396,-1.398,-1.400,-1.402,-1.404,-1.405, - &-1.407,-1.409,-1.411,-1.413,-1.415,-1.417,-1.418,-1.420,-1.422, - &-1.424,-1.426,-1.427,-1.429,-1.431,-1.433,-1.435,-1.437,-1.438, - &-1.440,-1.442,-1.444,-1.445,-1.447,-1.449,-1.451,-1.453,-1.454, - &-1.456,-1.458,-1.460,-1.462,-1.463,-1.465,-1.467,-1.469,-1.470, - &-1.472,-1.474,-1.476,-1.477,-1.479,-1.481,-1.483,-1.484,-1.486, - &-1.488,-1.490,-1.491,-1.493,-1.495,-1.496,-1.498,-1.500,-1.502, - &-1.503,-1.505,-1.507,-1.509,-1.510,-1.512,-1.514,-1.515,-1.517, - &-1.519,-1.520,-1.522,-1.524,-1.526,-1.527,-1.529,-1.531,-1.532, - &-1.534,-1.536,-1.537,-1.539,-1.541,-1.542,-1.544,-1.546,-1.547, - &-1.549,-1.551,-1.552,-1.554,-1.556,-1.557,-1.559,-1.561,-1.562, - &-1.564,-1.566,-1.567,-1.569,-1.571,-1.572,-1.574,-1.576,-1.577, - &-1.579,-1.580,-1.582,-1.584,-1.585,-1.587,-1.589,-1.590,-1.592, - &-1.594,-1.595,-1.597,-1.598,-1.616,-1.632,-1.648,-1.663,-1.679, - &-1.694,-1.710,-1.725,-1.740,-1.755,-1.770,-1.785,-1.799,-1.814, - &-1.828,-1.843,-1.857,-1.871,-1.885,-1.900,-1.914,-1.928,-1.941, - &-1.955,-1.969,-1.983,-1.996,-2.010,-2.023,-2.037,-2.050,-2.063, - &-2.077,-2.090,-2.103,-2.116,-2.129,-2.142,-2.155,-2.168,-2.181, - &-2.194,-2.206,-2.219,-2.232,-2.244,-2.257,-2.269,-2.282,-2.294, - &-2.307,-2.319,-2.332,-2.344,-2.356,-2.369,-2.381,-2.393,-2.405, - &-2.417,-2.429,-2.441,-2.454,-2.466,-2.478,-2.489,-2.501,-2.513, - &-2.525,-2.537,-2.549,-2.561,-2.572,-2.584,-2.596,-2.608,-2.619, - &-2.631,-2.642,-2.654,-2.666,-2.677,-2.689,-2.700,-2.712,-2.723, - &-2.735,-2.746,-2.757,-2.769,-2.780,-2.792,-2.803,-2.814,-2.825, - &-2.837,-2.848,-2.859,-2.870,-2.882,-2.893,-2.904,-2.915,-2.926, - &-2.937,-2.948,-2.959,-2.971,-2.982,-2.993,-3.004,-3.015,-3.026, - &-3.037,-3.048,-3.058,-3.069,-3.080,-3.091,-3.102,-3.113,-3.124, - &-3.135,-3.145,-3.156,-3.167,-3.178,-3.189,-3.199,-3.210,-3.221, - &-3.232,-3.242,-3.253,-3.264,-3.274,-3.285,-3.296,-3.306,-3.317, - &-3.327,-3.338,-3.349,-3.359,-3.370,-3.380,-3.391,-3.401,-3.412, - &-3.422,-3.433,-3.443,-3.454,-3.464,-3.475,-3.485,-3.496,-3.506, - &-3.517,-3.527,-3.537 - & /) -! -! *** KHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC18M_223 = (/ - &-0.049,-0.104,-0.130,-0.148,-0.162,-0.173,-0.182,-0.190,-0.197, - &-0.203,-0.208,-0.213,-0.217,-0.221,-0.224,-0.227,-0.230,-0.232, - &-0.234,-0.236,-0.238,-0.239,-0.240,-0.241,-0.242,-0.243,-0.243, - &-0.244,-0.244,-0.244,-0.244,-0.244,-0.243,-0.243,-0.242,-0.242, - &-0.241,-0.240,-0.239,-0.238,-0.237,-0.236,-0.235,-0.233,-0.232, - &-0.230,-0.229,-0.227,-0.225,-0.223,-0.222,-0.220,-0.218,-0.216, - &-0.214,-0.211,-0.209,-0.207,-0.205,-0.202,-0.200,-0.197,-0.195, - &-0.192,-0.190,-0.187,-0.185,-0.182,-0.179,-0.176,-0.174,-0.171, - &-0.168,-0.165,-0.162,-0.159,-0.156,-0.153,-0.150,-0.147,-0.143, - &-0.140,-0.137,-0.134,-0.131,-0.127,-0.124,-0.120,-0.117,-0.114, - &-0.110,-0.107,-0.103,-0.100,-0.096,-0.092,-0.089,-0.085,-0.081, - &-0.078,-0.074,-0.070,-0.066,-0.063,-0.059,-0.055,-0.051,-0.047, - &-0.043,-0.040,-0.036,-0.032,-0.028,-0.024,-0.020,-0.016,-0.012, - &-0.008,-0.004, 0.000, 0.004, 0.008, 0.012, 0.015, 0.019, 0.023, - & 0.027, 0.031, 0.035, 0.039, 0.043, 0.047, 0.051, 0.055, 0.059, - & 0.063, 0.067, 0.071, 0.075, 0.078, 0.082, 0.086, 0.090, 0.094, - & 0.098, 0.102, 0.106, 0.109, 0.113, 0.117, 0.121, 0.125, 0.128, - & 0.132, 0.136, 0.140, 0.144, 0.147, 0.151, 0.155, 0.159, 0.162, - & 0.166, 0.170, 0.173, 0.177, 0.181, 0.184, 0.188, 0.192, 0.195, - & 0.199, 0.203, 0.206, 0.210, 0.213, 0.217, 0.221, 0.224, 0.228, - & 0.231, 0.235, 0.238, 0.242, 0.245, 0.249, 0.252, 0.256, 0.259, - & 0.263, 0.266, 0.270, 0.273, 0.277, 0.280, 0.284, 0.287, 0.290, - & 0.294, 0.297, 0.301, 0.304, 0.307, 0.311, 0.314, 0.317, 0.321, - & 0.324, 0.327, 0.331, 0.334, 0.337, 0.340, 0.344, 0.347, 0.350, - & 0.353, 0.357, 0.360, 0.363, 0.366, 0.369, 0.373, 0.376, 0.379, - & 0.382, 0.385, 0.389, 0.392, 0.395, 0.398, 0.401, 0.404, 0.407, - & 0.410, 0.413, 0.417, 0.420, 0.423, 0.426, 0.429, 0.432, 0.435, - & 0.438, 0.441, 0.444, 0.447, 0.450, 0.453, 0.456, 0.459, 0.462, - & 0.465, 0.468, 0.471, 0.474, 0.477, 0.480, 0.482, 0.485, 0.488, - & 0.491, 0.494, 0.497, 0.500, 0.503, 0.506, 0.508, 0.511, 0.514, - & 0.517, 0.520, 0.523, 0.525, 0.528, 0.531, 0.534, 0.537, 0.539, - & 0.542, 0.545, 0.548, 0.551, 0.553, 0.556, 0.559, 0.562, 0.564, - & 0.567, 0.570, 0.572, 0.575, 0.578, 0.581, 0.583, 0.586, 0.589, - & 0.591, 0.594, 0.597, 0.599, 0.602, 0.604, 0.607, 0.610, 0.612, - & 0.615, 0.618, 0.620, 0.623, 0.625, 0.628, 0.631, 0.633, 0.636, - & 0.638, 0.641, 0.643, 0.646, 0.648, 0.651, 0.654, 0.656, 0.659, - & 0.661, 0.664, 0.666, 0.669, 0.671, 0.674, 0.676, 0.679, 0.681, - & 0.684, 0.686, 0.688, 0.691, 0.693, 0.696, 0.698, 0.701, 0.703, - & 0.706, 0.708, 0.710, 0.713, 0.715, 0.718, 0.720, 0.722, 0.725, - & 0.727, 0.729, 0.732, 0.734, 0.737, 0.739, 0.741, 0.744, 0.746, - & 0.748, 0.751, 0.753, 0.755, 0.758, 0.760, 0.762, 0.764, 0.767, - & 0.769, 0.771, 0.774, 0.776, 0.778, 0.780, 0.783, 0.785, 0.787, - & 0.789, 0.792, 0.794, 0.796, 0.798, 0.801, 0.803, 0.805, 0.807, - & 0.810, 0.812, 0.814, 0.816, 0.818, 0.821, 0.823, 0.825, 0.827, - & 0.829, 0.831, 0.834, 0.836, 0.859, 0.880, 0.900, 0.921, 0.940, - & 0.960, 0.979, 0.998, 1.016, 1.034, 1.052, 1.070, 1.087, 1.104, - & 1.121, 1.137, 1.154, 1.169, 1.185, 1.201, 1.216, 1.231, 1.246, - & 1.260, 1.274, 1.289, 1.302, 1.316, 1.330, 1.343, 1.356, 1.369, - & 1.382, 1.394, 1.407, 1.419, 1.431, 1.443, 1.455, 1.466, 1.478, - & 1.489, 1.500, 1.511, 1.522, 1.533, 1.543, 1.554, 1.564, 1.574, - & 1.584, 1.594, 1.604, 1.614, 1.623, 1.633, 1.642, 1.651, 1.660, - & 1.670, 1.678, 1.687, 1.696, 1.704, 1.713, 1.721, 1.730, 1.738, - & 1.746, 1.754, 1.762, 1.770, 1.777, 1.785, 1.793, 1.800, 1.807, - & 1.815, 1.822, 1.829, 1.836, 1.843, 1.850, 1.857, 1.864, 1.870, - & 1.877, 1.883, 1.890, 1.896, 1.903, 1.909, 1.915, 1.921, 1.927, - & 1.933, 1.939, 1.945, 1.951, 1.957, 1.962, 1.968, 1.973, 1.979, - & 1.984, 1.990, 1.995, 2.000, 2.006, 2.011, 2.016, 2.021, 2.026, - & 2.031, 2.036, 2.041, 2.045, 2.050, 2.055, 2.059, 2.064, 2.069, - & 2.073, 2.078, 2.082, 2.086, 2.091, 2.095, 2.099, 2.103, 2.108, - & 2.112, 2.116, 2.120, 2.124, 2.128, 2.132, 2.135, 2.139, 2.143, - & 2.147, 2.150, 2.154, 2.158, 2.161, 2.165, 2.168, 2.172, 2.175, - & 2.179, 2.182, 2.185, 2.189, 2.192, 2.195, 2.198, 2.201, 2.205, - & 2.208, 2.211, 2.214 - & /) -! -! *** KNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC19M_223 = (/ - &-0.052,-0.120,-0.158,-0.187,-0.211,-0.232,-0.251,-0.269,-0.285, - &-0.300,-0.315,-0.329,-0.342,-0.354,-0.367,-0.378,-0.390,-0.401, - &-0.412,-0.422,-0.432,-0.443,-0.452,-0.462,-0.471,-0.481,-0.490, - &-0.498,-0.507,-0.516,-0.524,-0.532,-0.540,-0.548,-0.556,-0.564, - &-0.572,-0.579,-0.587,-0.594,-0.601,-0.608,-0.615,-0.622,-0.629, - &-0.636,-0.642,-0.649,-0.655,-0.661,-0.668,-0.674,-0.680,-0.686, - &-0.692,-0.698,-0.704,-0.710,-0.715,-0.721,-0.727,-0.732,-0.738, - &-0.743,-0.749,-0.754,-0.759,-0.765,-0.770,-0.775,-0.780,-0.785, - &-0.790,-0.796,-0.801,-0.806,-0.811,-0.816,-0.820,-0.825,-0.830, - &-0.835,-0.840,-0.845,-0.850,-0.854,-0.859,-0.864,-0.869,-0.873, - &-0.878,-0.883,-0.888,-0.892,-0.897,-0.902,-0.906,-0.911,-0.916, - &-0.920,-0.925,-0.929,-0.934,-0.938,-0.943,-0.948,-0.952,-0.957, - &-0.961,-0.966,-0.970,-0.974,-0.979,-0.983,-0.988,-0.992,-0.996, - &-1.001,-1.005,-1.009,-1.014,-1.018,-1.022,-1.026,-1.031,-1.035, - &-1.039,-1.043,-1.047,-1.052,-1.056,-1.060,-1.064,-1.068,-1.072, - &-1.076,-1.080,-1.084,-1.088,-1.092,-1.096,-1.100,-1.104,-1.108, - &-1.112,-1.115,-1.119,-1.123,-1.127,-1.131,-1.134,-1.138,-1.142, - &-1.146,-1.149,-1.153,-1.157,-1.160,-1.164,-1.168,-1.171,-1.175, - &-1.178,-1.182,-1.185,-1.189,-1.192,-1.196,-1.199,-1.203,-1.206, - &-1.210,-1.213,-1.217,-1.220,-1.223,-1.227,-1.230,-1.234,-1.237, - &-1.240,-1.243,-1.247,-1.250,-1.253,-1.257,-1.260,-1.263,-1.266, - &-1.269,-1.273,-1.276,-1.279,-1.282,-1.285,-1.288,-1.291,-1.295, - &-1.298,-1.301,-1.304,-1.307,-1.310,-1.313,-1.316,-1.319,-1.322, - &-1.325,-1.328,-1.331,-1.334,-1.337,-1.340,-1.342,-1.345,-1.348, - &-1.351,-1.354,-1.357,-1.360,-1.362,-1.365,-1.368,-1.371,-1.374, - &-1.376,-1.379,-1.382,-1.385,-1.387,-1.390,-1.393,-1.396,-1.398, - &-1.401,-1.404,-1.406,-1.409,-1.412,-1.414,-1.417,-1.420,-1.422, - &-1.425,-1.427,-1.430,-1.432,-1.435,-1.438,-1.440,-1.443,-1.445, - &-1.448,-1.450,-1.453,-1.455,-1.458,-1.460,-1.463,-1.465,-1.468, - &-1.470,-1.472,-1.475,-1.477,-1.480,-1.482,-1.484,-1.487,-1.489, - &-1.492,-1.494,-1.496,-1.499,-1.501,-1.503,-1.506,-1.508,-1.510, - &-1.512,-1.515,-1.517,-1.519,-1.522,-1.524,-1.526,-1.528,-1.531, - &-1.533,-1.535,-1.537,-1.539,-1.542,-1.544,-1.546,-1.548,-1.550, - &-1.552,-1.555,-1.557,-1.559,-1.561,-1.563,-1.565,-1.567,-1.569, - &-1.572,-1.574,-1.576,-1.578,-1.580,-1.582,-1.584,-1.586,-1.588, - &-1.590,-1.592,-1.594,-1.596,-1.598,-1.600,-1.602,-1.604,-1.606, - &-1.608,-1.610,-1.612,-1.614,-1.616,-1.618,-1.620,-1.622,-1.624, - &-1.626,-1.628,-1.630,-1.632,-1.633,-1.635,-1.637,-1.639,-1.641, - &-1.643,-1.645,-1.647,-1.648,-1.650,-1.652,-1.654,-1.656,-1.658, - &-1.660,-1.661,-1.663,-1.665,-1.667,-1.669,-1.670,-1.672,-1.674, - &-1.676,-1.678,-1.679,-1.681,-1.683,-1.685,-1.686,-1.688,-1.690, - &-1.692,-1.693,-1.695,-1.697,-1.698,-1.700,-1.702,-1.704,-1.705, - &-1.707,-1.709,-1.710,-1.712,-1.714,-1.715,-1.717,-1.719,-1.720, - &-1.722,-1.724,-1.725,-1.727,-1.729,-1.730,-1.732,-1.733,-1.735, - &-1.737,-1.738,-1.740,-1.741,-1.758,-1.774,-1.789,-1.803,-1.817, - &-1.831,-1.845,-1.858,-1.871,-1.884,-1.896,-1.908,-1.920,-1.932, - &-1.943,-1.954,-1.965,-1.976,-1.987,-1.997,-2.008,-2.018,-2.028, - &-2.037,-2.047,-2.056,-2.066,-2.075,-2.084,-2.093,-2.102,-2.111, - &-2.119,-2.128,-2.136,-2.144,-2.152,-2.161,-2.169,-2.176,-2.184, - &-2.192,-2.200,-2.207,-2.215,-2.222,-2.230,-2.237,-2.244,-2.251, - &-2.259,-2.266,-2.273,-2.280,-2.287,-2.293,-2.300,-2.307,-2.314, - &-2.320,-2.327,-2.334,-2.340,-2.347,-2.353,-2.360,-2.366,-2.372, - &-2.379,-2.385,-2.391,-2.397,-2.403,-2.410,-2.416,-2.422,-2.428, - &-2.434,-2.440,-2.446,-2.452,-2.458,-2.464,-2.470,-2.475,-2.481, - &-2.487,-2.493,-2.499,-2.504,-2.510,-2.516,-2.522,-2.527,-2.533, - &-2.539,-2.544,-2.550,-2.555,-2.561,-2.566,-2.572,-2.578,-2.583, - &-2.588,-2.594,-2.599,-2.605,-2.610,-2.616,-2.621,-2.627,-2.632, - &-2.637,-2.643,-2.648,-2.653,-2.659,-2.664,-2.669,-2.675,-2.680, - &-2.685,-2.690,-2.696,-2.701,-2.706,-2.711,-2.716,-2.722,-2.727, - &-2.732,-2.737,-2.742,-2.748,-2.753,-2.758,-2.763,-2.768,-2.773, - &-2.778,-2.783,-2.788,-2.794,-2.799,-2.804,-2.809,-2.814,-2.819, - &-2.824,-2.829,-2.834,-2.839,-2.844,-2.849,-2.854,-2.859,-2.864, - &-2.869,-2.874,-2.879 - & /) -! -! *** KCL -! - Real(kind=fp), Parameter, Dimension(561) :: BNC20M_223 = (/ - &-0.049,-0.105,-0.132,-0.151,-0.164,-0.176,-0.185,-0.193,-0.200, - &-0.206,-0.211,-0.216,-0.221,-0.224,-0.228,-0.231,-0.234,-0.237, - &-0.240,-0.242,-0.244,-0.246,-0.248,-0.250,-0.252,-0.253,-0.255, - &-0.256,-0.257,-0.258,-0.260,-0.261,-0.262,-0.263,-0.264,-0.265, - &-0.265,-0.266,-0.267,-0.268,-0.268,-0.269,-0.270,-0.270,-0.271, - &-0.271,-0.272,-0.272,-0.273,-0.273,-0.274,-0.274,-0.275,-0.275, - &-0.275,-0.276,-0.276,-0.276,-0.277,-0.277,-0.277,-0.278,-0.278, - &-0.278,-0.278,-0.279,-0.279,-0.279,-0.279,-0.280,-0.280,-0.280, - &-0.280,-0.280,-0.280,-0.280,-0.281,-0.281,-0.281,-0.281,-0.281, - &-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281, - &-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.280,-0.280, - &-0.280,-0.280,-0.280,-0.280,-0.280,-0.279,-0.279,-0.279,-0.279, - &-0.279,-0.278,-0.278,-0.278,-0.278,-0.278,-0.277,-0.277,-0.277, - &-0.277,-0.276,-0.276,-0.276,-0.276,-0.275,-0.275,-0.275,-0.275, - &-0.274,-0.274,-0.274,-0.273,-0.273,-0.273,-0.273,-0.272,-0.272, - &-0.272,-0.271,-0.271,-0.271,-0.270,-0.270,-0.270,-0.270,-0.269, - &-0.269,-0.269,-0.268,-0.268,-0.268,-0.267,-0.267,-0.267,-0.267, - &-0.266,-0.266,-0.266,-0.265,-0.265,-0.265,-0.264,-0.264,-0.264, - &-0.263,-0.263,-0.263,-0.262,-0.262,-0.262,-0.262,-0.261,-0.261, - &-0.261,-0.260,-0.260,-0.260,-0.259,-0.259,-0.259,-0.258,-0.258, - &-0.258,-0.258,-0.257,-0.257,-0.257,-0.256,-0.256,-0.256,-0.255, - &-0.255,-0.255,-0.254,-0.254,-0.254,-0.254,-0.253,-0.253,-0.253, - &-0.252,-0.252,-0.252,-0.251,-0.251,-0.251,-0.251,-0.250,-0.250, - &-0.250,-0.249,-0.249,-0.249,-0.248,-0.248,-0.248,-0.248,-0.247, - &-0.247,-0.247,-0.246,-0.246,-0.246,-0.246,-0.245,-0.245,-0.245, - &-0.244,-0.244,-0.244,-0.244,-0.243,-0.243,-0.243,-0.242,-0.242, - &-0.242,-0.242,-0.241,-0.241,-0.241,-0.241,-0.240,-0.240,-0.240, - &-0.239,-0.239,-0.239,-0.239,-0.238,-0.238,-0.238,-0.238,-0.237, - &-0.237,-0.237,-0.236,-0.236,-0.236,-0.236,-0.235,-0.235,-0.235, - &-0.235,-0.234,-0.234,-0.234,-0.234,-0.233,-0.233,-0.233,-0.233, - &-0.232,-0.232,-0.232,-0.232,-0.231,-0.231,-0.231,-0.231,-0.230, - &-0.230,-0.230,-0.230,-0.229,-0.229,-0.229,-0.229,-0.228,-0.228, - &-0.228,-0.228,-0.227,-0.227,-0.227,-0.227,-0.226,-0.226,-0.226, - &-0.226,-0.226,-0.225,-0.225,-0.225,-0.225,-0.224,-0.224,-0.224, - &-0.224,-0.223,-0.223,-0.223,-0.223,-0.223,-0.222,-0.222,-0.222, - &-0.222,-0.221,-0.221,-0.221,-0.221,-0.221,-0.220,-0.220,-0.220, - &-0.220,-0.220,-0.219,-0.219,-0.219,-0.219,-0.218,-0.218,-0.218, - &-0.218,-0.218,-0.217,-0.217,-0.217,-0.217,-0.217,-0.216,-0.216, - &-0.216,-0.216,-0.216,-0.215,-0.215,-0.215,-0.215,-0.215,-0.215, - &-0.214,-0.214,-0.214,-0.214,-0.214,-0.213,-0.213,-0.213,-0.213, - &-0.213,-0.212,-0.212,-0.212,-0.212,-0.212,-0.212,-0.211,-0.211, - &-0.211,-0.211,-0.211,-0.210,-0.210,-0.210,-0.210,-0.210,-0.210, - &-0.209,-0.209,-0.209,-0.209,-0.209,-0.209,-0.208,-0.208,-0.208, - &-0.208,-0.208,-0.208,-0.207,-0.207,-0.207,-0.207,-0.207,-0.207, - &-0.206,-0.206,-0.206,-0.206,-0.204,-0.203,-0.202,-0.200,-0.199, - &-0.198,-0.197,-0.196,-0.195,-0.194,-0.193,-0.192,-0.191,-0.190, - &-0.190,-0.189,-0.189,-0.188,-0.188,-0.187,-0.187,-0.187,-0.186, - &-0.186,-0.186,-0.186,-0.186,-0.186,-0.186,-0.186,-0.186,-0.186, - &-0.186,-0.186,-0.187,-0.187,-0.187,-0.187,-0.188,-0.188,-0.189, - &-0.189,-0.190,-0.190,-0.191,-0.191,-0.192,-0.193,-0.193,-0.194, - &-0.195,-0.196,-0.196,-0.197,-0.198,-0.199,-0.200,-0.201,-0.202, - &-0.203,-0.204,-0.205,-0.206,-0.207,-0.208,-0.209,-0.210,-0.212, - &-0.213,-0.214,-0.215,-0.217,-0.218,-0.219,-0.220,-0.222,-0.223, - &-0.225,-0.226,-0.227,-0.229,-0.230,-0.232,-0.233,-0.235,-0.236, - &-0.238,-0.239,-0.241,-0.243,-0.244,-0.246,-0.247,-0.249,-0.251, - &-0.252,-0.254,-0.256,-0.258,-0.259,-0.261,-0.263,-0.265,-0.266, - &-0.268,-0.270,-0.272,-0.274,-0.276,-0.278,-0.280,-0.281,-0.283, - &-0.285,-0.287,-0.289,-0.291,-0.293,-0.295,-0.297,-0.299,-0.301, - &-0.303,-0.305,-0.307,-0.309,-0.311,-0.314,-0.316,-0.318,-0.320, - &-0.322,-0.324,-0.326,-0.329,-0.331,-0.333,-0.335,-0.337,-0.340, - &-0.342,-0.344,-0.346,-0.348,-0.351,-0.353,-0.355,-0.358,-0.360, - &-0.362,-0.364,-0.367,-0.369,-0.371,-0.374,-0.376,-0.379,-0.381, - &-0.383,-0.386,-0.388 - & /) -! -! *** MGSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC21M_223 = (/ - &-0.200,-0.434,-0.550,-0.632,-0.696,-0.748,-0.793,-0.833,-0.868, - &-0.900,-0.928,-0.955,-0.979,-1.002,-1.023,-1.043,-1.062,-1.079, - &-1.096,-1.112,-1.127,-1.142,-1.156,-1.170,-1.182,-1.195,-1.207, - &-1.218,-1.230,-1.241,-1.251,-1.261,-1.271,-1.281,-1.290,-1.300, - &-1.309,-1.317,-1.326,-1.334,-1.342,-1.350,-1.358,-1.366,-1.373, - &-1.381,-1.388,-1.395,-1.402,-1.409,-1.416,-1.422,-1.429,-1.435, - &-1.442,-1.448,-1.454,-1.460,-1.466,-1.472,-1.478,-1.484,-1.489, - &-1.495,-1.500,-1.506,-1.511,-1.517,-1.522,-1.527,-1.532,-1.537, - &-1.542,-1.547,-1.552,-1.557,-1.562,-1.567,-1.571,-1.576,-1.581, - &-1.585,-1.590,-1.594,-1.599,-1.603,-1.608,-1.612,-1.616,-1.620, - &-1.625,-1.629,-1.633,-1.637,-1.641,-1.645,-1.649,-1.653,-1.657, - &-1.661,-1.665,-1.669,-1.672,-1.676,-1.680,-1.684,-1.687,-1.691, - &-1.695,-1.698,-1.702,-1.706,-1.709,-1.713,-1.716,-1.720,-1.723, - &-1.727,-1.730,-1.733,-1.737,-1.740,-1.744,-1.747,-1.750,-1.753, - &-1.757,-1.760,-1.763,-1.766,-1.770,-1.773,-1.776,-1.779,-1.782, - &-1.786,-1.789,-1.792,-1.795,-1.798,-1.801,-1.804,-1.807,-1.810, - &-1.813,-1.816,-1.819,-1.822,-1.825,-1.828,-1.831,-1.834,-1.837, - &-1.840,-1.843,-1.846,-1.849,-1.851,-1.854,-1.857,-1.860,-1.863, - &-1.866,-1.868,-1.871,-1.874,-1.877,-1.880,-1.882,-1.885,-1.888, - &-1.891,-1.894,-1.896,-1.899,-1.902,-1.904,-1.907,-1.910,-1.913, - &-1.915,-1.918,-1.921,-1.923,-1.926,-1.929,-1.931,-1.934,-1.936, - &-1.939,-1.942,-1.944,-1.947,-1.950,-1.952,-1.955,-1.957,-1.960, - &-1.962,-1.965,-1.968,-1.970,-1.973,-1.975,-1.978,-1.980,-1.983, - &-1.985,-1.988,-1.990,-1.993,-1.995,-1.998,-2.000,-2.003,-2.005, - &-2.008,-2.010,-2.013,-2.015,-2.018,-2.020,-2.023,-2.025,-2.028, - &-2.030,-2.032,-2.035,-2.037,-2.040,-2.042,-2.044,-2.047,-2.049, - &-2.052,-2.054,-2.057,-2.059,-2.061,-2.064,-2.066,-2.068,-2.071, - &-2.073,-2.076,-2.078,-2.080,-2.083,-2.085,-2.087,-2.090,-2.092, - &-2.094,-2.097,-2.099,-2.101,-2.104,-2.106,-2.108,-2.111,-2.113, - &-2.115,-2.118,-2.120,-2.122,-2.124,-2.127,-2.129,-2.131,-2.134, - &-2.136,-2.138,-2.141,-2.143,-2.145,-2.147,-2.150,-2.152,-2.154, - &-2.156,-2.159,-2.161,-2.163,-2.165,-2.168,-2.170,-2.172,-2.174, - &-2.177,-2.179,-2.181,-2.183,-2.186,-2.188,-2.190,-2.192,-2.195, - &-2.197,-2.199,-2.201,-2.203,-2.206,-2.208,-2.210,-2.212,-2.214, - &-2.217,-2.219,-2.221,-2.223,-2.225,-2.228,-2.230,-2.232,-2.234, - &-2.236,-2.239,-2.241,-2.243,-2.245,-2.247,-2.249,-2.252,-2.254, - &-2.256,-2.258,-2.260,-2.262,-2.265,-2.267,-2.269,-2.271,-2.273, - &-2.275,-2.278,-2.280,-2.282,-2.284,-2.286,-2.288,-2.290,-2.293, - &-2.295,-2.297,-2.299,-2.301,-2.303,-2.305,-2.308,-2.310,-2.312, - &-2.314,-2.316,-2.318,-2.320,-2.322,-2.325,-2.327,-2.329,-2.331, - &-2.333,-2.335,-2.337,-2.339,-2.341,-2.344,-2.346,-2.348,-2.350, - &-2.352,-2.354,-2.356,-2.358,-2.360,-2.362,-2.365,-2.367,-2.369, - &-2.371,-2.373,-2.375,-2.377,-2.379,-2.381,-2.383,-2.385,-2.388, - &-2.390,-2.392,-2.394,-2.396,-2.398,-2.400,-2.402,-2.404,-2.406, - &-2.408,-2.410,-2.412,-2.415,-2.437,-2.457,-2.478,-2.498,-2.518, - &-2.539,-2.559,-2.579,-2.599,-2.619,-2.638,-2.658,-2.678,-2.698, - &-2.717,-2.737,-2.756,-2.776,-2.795,-2.815,-2.834,-2.854,-2.873, - &-2.892,-2.911,-2.931,-2.950,-2.969,-2.988,-3.007,-3.026,-3.045, - &-3.064,-3.083,-3.102,-3.121,-3.140,-3.159,-3.178,-3.197,-3.215, - &-3.234,-3.253,-3.272,-3.291,-3.309,-3.328,-3.347,-3.365,-3.384, - &-3.403,-3.421,-3.440,-3.459,-3.477,-3.496,-3.514,-3.533,-3.551, - &-3.570,-3.588,-3.607,-3.625,-3.644,-3.662,-3.681,-3.699,-3.718, - &-3.736,-3.754,-3.773,-3.791,-3.810,-3.828,-3.846,-3.865,-3.883, - &-3.901,-3.920,-3.938,-3.956,-3.974,-3.993,-4.011,-4.029,-4.047, - &-4.066,-4.084,-4.102,-4.120,-4.139,-4.157,-4.175,-4.193,-4.211, - &-4.229,-4.248,-4.266,-4.284,-4.302,-4.320,-4.338,-4.356,-4.374, - &-4.392,-4.411,-4.429,-4.447,-4.465,-4.483,-4.501,-4.519,-4.537, - &-4.555,-4.573,-4.591,-4.609,-4.627,-4.645,-4.663,-4.681,-4.699, - &-4.717,-4.735,-4.753,-4.771,-4.789,-4.807,-4.825,-4.842,-4.860, - &-4.878,-4.896,-4.914,-4.932,-4.950,-4.968,-4.986,-5.004,-5.021, - &-5.039,-5.057,-5.075,-5.093,-5.111,-5.129,-5.146,-5.164,-5.182, - &-5.200,-5.218,-5.235,-5.253,-5.271,-5.289,-5.307,-5.324,-5.342, - &-5.360,-5.378,-5.395 - & /) -! -! *** MGNO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC22M_223 = (/ - &-0.097,-0.201,-0.248,-0.278,-0.300,-0.316,-0.329,-0.339,-0.347, - &-0.354,-0.359,-0.363,-0.366,-0.369,-0.370,-0.372,-0.372,-0.373, - &-0.372,-0.372,-0.371,-0.370,-0.369,-0.367,-0.366,-0.364,-0.362, - &-0.359,-0.357,-0.354,-0.352,-0.349,-0.346,-0.344,-0.341,-0.338, - &-0.334,-0.331,-0.328,-0.325,-0.322,-0.318,-0.315,-0.312,-0.308, - &-0.305,-0.301,-0.298,-0.294,-0.291,-0.287,-0.284,-0.280,-0.277, - &-0.273,-0.270,-0.266,-0.263,-0.259,-0.256,-0.252,-0.248,-0.245, - &-0.241,-0.238,-0.234,-0.230,-0.227,-0.223,-0.219,-0.216,-0.212, - &-0.208,-0.204,-0.201,-0.197,-0.193,-0.189,-0.185,-0.181,-0.177, - &-0.173,-0.169,-0.165,-0.161,-0.157,-0.153,-0.149,-0.145,-0.141, - &-0.136,-0.132,-0.128,-0.123,-0.119,-0.115,-0.110,-0.106,-0.101, - &-0.097,-0.092,-0.087,-0.083,-0.078,-0.073,-0.069,-0.064,-0.059, - &-0.055,-0.050,-0.045,-0.040,-0.035,-0.031,-0.026,-0.021,-0.016, - &-0.011,-0.006,-0.001, 0.003, 0.008, 0.013, 0.018, 0.023, 0.028, - & 0.033, 0.038, 0.043, 0.048, 0.052, 0.057, 0.062, 0.067, 0.072, - & 0.077, 0.082, 0.087, 0.092, 0.097, 0.101, 0.106, 0.111, 0.116, - & 0.121, 0.126, 0.131, 0.135, 0.140, 0.145, 0.150, 0.155, 0.160, - & 0.164, 0.169, 0.174, 0.179, 0.184, 0.188, 0.193, 0.198, 0.203, - & 0.207, 0.212, 0.217, 0.222, 0.226, 0.231, 0.236, 0.241, 0.245, - & 0.250, 0.255, 0.259, 0.264, 0.269, 0.273, 0.278, 0.283, 0.287, - & 0.292, 0.297, 0.301, 0.306, 0.311, 0.315, 0.320, 0.324, 0.329, - & 0.333, 0.338, 0.343, 0.347, 0.352, 0.356, 0.361, 0.365, 0.370, - & 0.374, 0.379, 0.383, 0.388, 0.392, 0.397, 0.401, 0.406, 0.410, - & 0.414, 0.419, 0.423, 0.428, 0.432, 0.437, 0.441, 0.445, 0.450, - & 0.454, 0.458, 0.463, 0.467, 0.472, 0.476, 0.480, 0.484, 0.489, - & 0.493, 0.497, 0.502, 0.506, 0.510, 0.514, 0.519, 0.523, 0.527, - & 0.531, 0.536, 0.540, 0.544, 0.548, 0.553, 0.557, 0.561, 0.565, - & 0.569, 0.573, 0.578, 0.582, 0.586, 0.590, 0.594, 0.598, 0.602, - & 0.606, 0.610, 0.615, 0.619, 0.623, 0.627, 0.631, 0.635, 0.639, - & 0.643, 0.647, 0.651, 0.655, 0.659, 0.663, 0.667, 0.671, 0.675, - & 0.679, 0.683, 0.687, 0.691, 0.695, 0.699, 0.703, 0.706, 0.710, - & 0.714, 0.718, 0.722, 0.726, 0.730, 0.734, 0.738, 0.741, 0.745, - & 0.749, 0.753, 0.757, 0.761, 0.764, 0.768, 0.772, 0.776, 0.779, - & 0.783, 0.787, 0.791, 0.795, 0.798, 0.802, 0.806, 0.809, 0.813, - & 0.817, 0.821, 0.824, 0.828, 0.832, 0.835, 0.839, 0.843, 0.846, - & 0.850, 0.854, 0.857, 0.861, 0.865, 0.868, 0.872, 0.875, 0.879, - & 0.883, 0.886, 0.890, 0.893, 0.897, 0.900, 0.904, 0.907, 0.911, - & 0.915, 0.918, 0.922, 0.925, 0.929, 0.932, 0.936, 0.939, 0.943, - & 0.946, 0.950, 0.953, 0.956, 0.960, 0.963, 0.967, 0.970, 0.974, - & 0.977, 0.980, 0.984, 0.987, 0.991, 0.994, 0.997, 1.001, 1.004, - & 1.007, 1.011, 1.014, 1.018, 1.021, 1.024, 1.028, 1.031, 1.034, - & 1.037, 1.041, 1.044, 1.047, 1.051, 1.054, 1.057, 1.060, 1.064, - & 1.067, 1.070, 1.073, 1.077, 1.080, 1.083, 1.086, 1.090, 1.093, - & 1.096, 1.099, 1.102, 1.106, 1.109, 1.112, 1.115, 1.118, 1.121, - & 1.125, 1.128, 1.131, 1.134, 1.167, 1.198, 1.228, 1.257, 1.286, - & 1.314, 1.342, 1.370, 1.397, 1.423, 1.449, 1.475, 1.500, 1.525, - & 1.549, 1.573, 1.597, 1.620, 1.643, 1.665, 1.687, 1.709, 1.730, - & 1.751, 1.772, 1.793, 1.813, 1.833, 1.852, 1.871, 1.890, 1.909, - & 1.927, 1.945, 1.963, 1.981, 1.998, 2.015, 2.032, 2.049, 2.065, - & 2.081, 2.097, 2.112, 2.128, 2.143, 2.158, 2.173, 2.187, 2.202, - & 2.216, 2.230, 2.244, 2.257, 2.271, 2.284, 2.297, 2.310, 2.322, - & 2.335, 2.347, 2.359, 2.371, 2.383, 2.395, 2.406, 2.418, 2.429, - & 2.440, 2.451, 2.462, 2.472, 2.483, 2.493, 2.503, 2.513, 2.523, - & 2.533, 2.543, 2.552, 2.562, 2.571, 2.580, 2.589, 2.598, 2.607, - & 2.616, 2.624, 2.633, 2.641, 2.650, 2.658, 2.666, 2.674, 2.681, - & 2.689, 2.697, 2.704, 2.712, 2.719, 2.726, 2.733, 2.740, 2.747, - & 2.754, 2.761, 2.768, 2.774, 2.781, 2.787, 2.793, 2.800, 2.806, - & 2.812, 2.818, 2.824, 2.830, 2.835, 2.841, 2.847, 2.852, 2.858, - & 2.863, 2.868, 2.873, 2.879, 2.884, 2.889, 2.893, 2.898, 2.903, - & 2.908, 2.912, 2.917, 2.922, 2.926, 2.930, 2.935, 2.939, 2.943, - & 2.947, 2.951, 2.955, 2.959, 2.963, 2.967, 2.971, 2.974, 2.978, - & 2.982, 2.985, 2.989, 2.992, 2.996, 2.999, 3.002, 3.005, 3.009, - & 3.012, 3.015, 3.018 - & /) -! -! *** MGCL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC23M_223 = (/ - &-0.096,-0.198,-0.242,-0.270,-0.290,-0.304,-0.315,-0.323,-0.329, - &-0.333,-0.337,-0.339,-0.340,-0.341,-0.340,-0.340,-0.339,-0.337, - &-0.335,-0.333,-0.330,-0.327,-0.324,-0.320,-0.317,-0.313,-0.309, - &-0.305,-0.301,-0.296,-0.292,-0.287,-0.283,-0.278,-0.273,-0.268, - &-0.263,-0.258,-0.253,-0.248,-0.243,-0.238,-0.233,-0.228,-0.222, - &-0.217,-0.212,-0.207,-0.202,-0.196,-0.191,-0.186,-0.180,-0.175, - &-0.170,-0.164,-0.159,-0.154,-0.149,-0.143,-0.138,-0.133,-0.127, - &-0.122,-0.117,-0.111,-0.106,-0.100,-0.095,-0.090,-0.084,-0.079, - &-0.073,-0.068,-0.062,-0.057,-0.051,-0.045,-0.040,-0.034,-0.028, - &-0.023,-0.017,-0.011,-0.005, 0.001, 0.007, 0.013, 0.019, 0.025, - & 0.031, 0.037, 0.043, 0.049, 0.055, 0.062, 0.068, 0.074, 0.081, - & 0.087, 0.094, 0.100, 0.107, 0.113, 0.120, 0.126, 0.133, 0.140, - & 0.146, 0.153, 0.160, 0.166, 0.173, 0.180, 0.187, 0.193, 0.200, - & 0.207, 0.214, 0.220, 0.227, 0.234, 0.241, 0.248, 0.255, 0.261, - & 0.268, 0.275, 0.282, 0.289, 0.296, 0.302, 0.309, 0.316, 0.323, - & 0.330, 0.337, 0.343, 0.350, 0.357, 0.364, 0.371, 0.377, 0.384, - & 0.391, 0.398, 0.404, 0.411, 0.418, 0.425, 0.431, 0.438, 0.445, - & 0.451, 0.458, 0.465, 0.471, 0.478, 0.485, 0.491, 0.498, 0.505, - & 0.511, 0.518, 0.524, 0.531, 0.537, 0.544, 0.551, 0.557, 0.564, - & 0.570, 0.577, 0.583, 0.590, 0.596, 0.603, 0.609, 0.616, 0.622, - & 0.628, 0.635, 0.641, 0.648, 0.654, 0.660, 0.667, 0.673, 0.679, - & 0.686, 0.692, 0.698, 0.705, 0.711, 0.717, 0.724, 0.730, 0.736, - & 0.742, 0.749, 0.755, 0.761, 0.767, 0.773, 0.780, 0.786, 0.792, - & 0.798, 0.804, 0.810, 0.816, 0.823, 0.829, 0.835, 0.841, 0.847, - & 0.853, 0.859, 0.865, 0.871, 0.877, 0.883, 0.889, 0.895, 0.901, - & 0.907, 0.913, 0.919, 0.925, 0.931, 0.937, 0.942, 0.948, 0.954, - & 0.960, 0.966, 0.972, 0.978, 0.983, 0.989, 0.995, 1.001, 1.007, - & 1.012, 1.018, 1.024, 1.030, 1.035, 1.041, 1.047, 1.052, 1.058, - & 1.064, 1.069, 1.075, 1.081, 1.086, 1.092, 1.098, 1.103, 1.109, - & 1.114, 1.120, 1.125, 1.131, 1.136, 1.142, 1.148, 1.153, 1.159, - & 1.164, 1.169, 1.175, 1.180, 1.186, 1.191, 1.197, 1.202, 1.208, - & 1.213, 1.218, 1.224, 1.229, 1.234, 1.240, 1.245, 1.250, 1.256, - & 1.261, 1.266, 1.272, 1.277, 1.282, 1.287, 1.293, 1.298, 1.303, - & 1.308, 1.314, 1.319, 1.324, 1.329, 1.334, 1.339, 1.345, 1.350, - & 1.355, 1.360, 1.365, 1.370, 1.375, 1.380, 1.385, 1.390, 1.396, - & 1.401, 1.406, 1.411, 1.416, 1.421, 1.426, 1.431, 1.436, 1.441, - & 1.446, 1.451, 1.456, 1.460, 1.465, 1.470, 1.475, 1.480, 1.485, - & 1.490, 1.495, 1.500, 1.504, 1.509, 1.514, 1.519, 1.524, 1.529, - & 1.533, 1.538, 1.543, 1.548, 1.553, 1.557, 1.562, 1.567, 1.572, - & 1.576, 1.581, 1.586, 1.590, 1.595, 1.600, 1.604, 1.609, 1.614, - & 1.618, 1.623, 1.628, 1.632, 1.637, 1.642, 1.646, 1.651, 1.655, - & 1.660, 1.664, 1.669, 1.674, 1.678, 1.683, 1.687, 1.692, 1.696, - & 1.701, 1.705, 1.710, 1.714, 1.719, 1.723, 1.728, 1.732, 1.736, - & 1.741, 1.745, 1.750, 1.754, 1.759, 1.763, 1.767, 1.772, 1.776, - & 1.780, 1.785, 1.789, 1.793, 1.840, 1.882, 1.923, 1.964, 2.004, - & 2.044, 2.082, 2.120, 2.158, 2.195, 2.231, 2.267, 2.302, 2.336, - & 2.370, 2.404, 2.437, 2.469, 2.501, 2.533, 2.564, 2.594, 2.624, - & 2.654, 2.683, 2.712, 2.741, 2.768, 2.796, 2.823, 2.850, 2.877, - & 2.903, 2.928, 2.954, 2.979, 3.003, 3.028, 3.052, 3.076, 3.099, - & 3.122, 3.145, 3.167, 3.190, 3.211, 3.233, 3.254, 3.276, 3.296, - & 3.317, 3.337, 3.357, 3.377, 3.397, 3.416, 3.435, 3.454, 3.473, - & 3.491, 3.509, 3.527, 3.545, 3.563, 3.580, 3.597, 3.614, 3.631, - & 3.647, 3.664, 3.680, 3.696, 3.712, 3.727, 3.743, 3.758, 3.773, - & 3.788, 3.803, 3.817, 3.832, 3.846, 3.860, 3.874, 3.888, 3.902, - & 3.915, 3.928, 3.942, 3.955, 3.968, 3.980, 3.993, 4.006, 4.018, - & 4.030, 4.042, 4.054, 4.066, 4.078, 4.089, 4.101, 4.112, 4.123, - & 4.134, 4.145, 4.156, 4.167, 4.178, 4.188, 4.199, 4.209, 4.219, - & 4.229, 4.239, 4.249, 4.259, 4.269, 4.278, 4.288, 4.297, 4.306, - & 4.316, 4.325, 4.334, 4.343, 4.351, 4.360, 4.369, 4.377, 4.386, - & 4.394, 4.402, 4.411, 4.419, 4.427, 4.435, 4.442, 4.450, 4.458, - & 4.466, 4.473, 4.480, 4.488, 4.495, 4.502, 4.510, 4.517, 4.524, - & 4.531, 4.537, 4.544, 4.551, 4.558, 4.564, 4.571, 4.577, 4.583, - & 4.590, 4.596, 4.602 - & /) - - ! Formerly BLOCK DATA KMCF248 -! -! *** NaCl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC01M_248 = (/ - &-0.047,-0.099,-0.122,-0.137,-0.148,-0.156,-0.163,-0.168,-0.172, - &-0.176,-0.178,-0.181,-0.182,-0.184,-0.185,-0.186,-0.186,-0.187, - &-0.187,-0.187,-0.187,-0.187,-0.186,-0.186,-0.185,-0.184,-0.184, - &-0.183,-0.182,-0.181,-0.180,-0.179,-0.178,-0.176,-0.175,-0.174, - &-0.173,-0.171,-0.170,-0.168,-0.167,-0.166,-0.164,-0.163,-0.161, - &-0.160,-0.158,-0.157,-0.155,-0.154,-0.152,-0.151,-0.149,-0.148, - &-0.146,-0.145,-0.143,-0.141,-0.140,-0.138,-0.137,-0.135,-0.134, - &-0.132,-0.130,-0.129,-0.127,-0.126,-0.124,-0.122,-0.121,-0.119, - &-0.117,-0.116,-0.114,-0.112,-0.111,-0.109,-0.107,-0.105,-0.104, - &-0.102,-0.100,-0.098,-0.096,-0.095,-0.093,-0.091,-0.089,-0.087, - &-0.085,-0.083,-0.081,-0.079,-0.077,-0.075,-0.073,-0.071,-0.069, - &-0.067,-0.065,-0.063,-0.061,-0.059,-0.057,-0.055,-0.053,-0.051, - &-0.048,-0.046,-0.044,-0.042,-0.040,-0.038,-0.036,-0.033,-0.031, - &-0.029,-0.027,-0.025,-0.022,-0.020,-0.018,-0.016,-0.014,-0.011, - &-0.009,-0.007,-0.005,-0.003, 0.000, 0.002, 0.004, 0.006, 0.008, - & 0.011, 0.013, 0.015, 0.017, 0.020, 0.022, 0.024, 0.026, 0.028, - & 0.030, 0.033, 0.035, 0.037, 0.039, 0.041, 0.044, 0.046, 0.048, - & 0.050, 0.052, 0.054, 0.057, 0.059, 0.061, 0.063, 0.065, 0.067, - & 0.070, 0.072, 0.074, 0.076, 0.078, 0.080, 0.082, 0.085, 0.087, - & 0.089, 0.091, 0.093, 0.095, 0.097, 0.099, 0.102, 0.104, 0.106, - & 0.108, 0.110, 0.112, 0.114, 0.116, 0.118, 0.120, 0.122, 0.125, - & 0.127, 0.129, 0.131, 0.133, 0.135, 0.137, 0.139, 0.141, 0.143, - & 0.145, 0.147, 0.149, 0.151, 0.153, 0.155, 0.157, 0.159, 0.161, - & 0.163, 0.165, 0.167, 0.169, 0.171, 0.173, 0.175, 0.177, 0.179, - & 0.181, 0.183, 0.185, 0.187, 0.189, 0.191, 0.193, 0.195, 0.197, - & 0.199, 0.201, 0.203, 0.205, 0.207, 0.209, 0.211, 0.213, 0.215, - & 0.217, 0.219, 0.221, 0.223, 0.224, 0.226, 0.228, 0.230, 0.232, - & 0.234, 0.236, 0.238, 0.240, 0.242, 0.243, 0.245, 0.247, 0.249, - & 0.251, 0.253, 0.255, 0.257, 0.258, 0.260, 0.262, 0.264, 0.266, - & 0.268, 0.270, 0.271, 0.273, 0.275, 0.277, 0.279, 0.281, 0.282, - & 0.284, 0.286, 0.288, 0.290, 0.291, 0.293, 0.295, 0.297, 0.299, - & 0.300, 0.302, 0.304, 0.306, 0.308, 0.309, 0.311, 0.313, 0.315, - & 0.316, 0.318, 0.320, 0.322, 0.323, 0.325, 0.327, 0.329, 0.330, - & 0.332, 0.334, 0.336, 0.337, 0.339, 0.341, 0.342, 0.344, 0.346, - & 0.348, 0.349, 0.351, 0.353, 0.354, 0.356, 0.358, 0.359, 0.361, - & 0.363, 0.364, 0.366, 0.368, 0.370, 0.371, 0.373, 0.374, 0.376, - & 0.378, 0.379, 0.381, 0.383, 0.384, 0.386, 0.388, 0.389, 0.391, - & 0.393, 0.394, 0.396, 0.397, 0.399, 0.401, 0.402, 0.404, 0.406, - & 0.407, 0.409, 0.410, 0.412, 0.414, 0.415, 0.417, 0.418, 0.420, - & 0.421, 0.423, 0.425, 0.426, 0.428, 0.429, 0.431, 0.433, 0.434, - & 0.436, 0.437, 0.439, 0.440, 0.442, 0.443, 0.445, 0.446, 0.448, - & 0.450, 0.451, 0.453, 0.454, 0.456, 0.457, 0.459, 0.460, 0.462, - & 0.463, 0.465, 0.466, 0.468, 0.469, 0.471, 0.472, 0.474, 0.475, - & 0.477, 0.478, 0.480, 0.481, 0.483, 0.484, 0.486, 0.487, 0.489, - & 0.490, 0.491, 0.493, 0.494, 0.510, 0.524, 0.538, 0.552, 0.566, - & 0.579, 0.592, 0.605, 0.618, 0.630, 0.642, 0.655, 0.667, 0.678, - & 0.690, 0.701, 0.713, 0.724, 0.735, 0.745, 0.756, 0.766, 0.777, - & 0.787, 0.797, 0.807, 0.817, 0.826, 0.836, 0.845, 0.854, 0.864, - & 0.873, 0.881, 0.890, 0.899, 0.907, 0.916, 0.924, 0.932, 0.940, - & 0.948, 0.956, 0.964, 0.972, 0.979, 0.987, 0.994, 1.002, 1.009, - & 1.016, 1.023, 1.030, 1.037, 1.044, 1.051, 1.057, 1.064, 1.070, - & 1.077, 1.083, 1.089, 1.096, 1.102, 1.108, 1.114, 1.120, 1.126, - & 1.132, 1.137, 1.143, 1.149, 1.154, 1.160, 1.165, 1.170, 1.176, - & 1.181, 1.186, 1.191, 1.196, 1.201, 1.206, 1.211, 1.216, 1.221, - & 1.226, 1.231, 1.235, 1.240, 1.244, 1.249, 1.253, 1.258, 1.262, - & 1.267, 1.271, 1.275, 1.279, 1.284, 1.288, 1.292, 1.296, 1.300, - & 1.304, 1.308, 1.312, 1.315, 1.319, 1.323, 1.327, 1.330, 1.334, - & 1.338, 1.341, 1.345, 1.348, 1.352, 1.355, 1.358, 1.362, 1.365, - & 1.368, 1.372, 1.375, 1.378, 1.381, 1.384, 1.388, 1.391, 1.394, - & 1.397, 1.400, 1.403, 1.406, 1.409, 1.411, 1.414, 1.417, 1.420, - & 1.423, 1.425, 1.428, 1.431, 1.433, 1.436, 1.439, 1.441, 1.444, - & 1.446, 1.449, 1.451, 1.454, 1.456, 1.458, 1.461, 1.463, 1.466, - & 1.468, 1.470, 1.472 - & /) -! -! *** Na2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC02M_248 = (/ - &-0.098,-0.214,-0.272,-0.313,-0.346,-0.373,-0.396,-0.417,-0.435, - &-0.452,-0.467,-0.481,-0.494,-0.506,-0.518,-0.529,-0.539,-0.549, - &-0.558,-0.567,-0.575,-0.583,-0.591,-0.599,-0.606,-0.613,-0.620, - &-0.627,-0.633,-0.639,-0.645,-0.651,-0.657,-0.662,-0.668,-0.673, - &-0.678,-0.683,-0.688,-0.693,-0.698,-0.703,-0.707,-0.712,-0.716, - &-0.721,-0.725,-0.729,-0.733,-0.737,-0.741,-0.745,-0.749,-0.753, - &-0.756,-0.760,-0.764,-0.767,-0.771,-0.774,-0.778,-0.781,-0.784, - &-0.788,-0.791,-0.794,-0.797,-0.801,-0.804,-0.807,-0.810,-0.813, - &-0.816,-0.819,-0.822,-0.825,-0.827,-0.830,-0.833,-0.836,-0.839, - &-0.841,-0.844,-0.847,-0.850,-0.852,-0.855,-0.858,-0.860,-0.863, - &-0.865,-0.868,-0.871,-0.873,-0.876,-0.878,-0.881,-0.883,-0.885, - &-0.888,-0.890,-0.893,-0.895,-0.897,-0.900,-0.902,-0.905,-0.907, - &-0.909,-0.911,-0.914,-0.916,-0.918,-0.921,-0.923,-0.925,-0.927, - &-0.929,-0.932,-0.934,-0.936,-0.938,-0.940,-0.942,-0.945,-0.947, - &-0.949,-0.951,-0.953,-0.955,-0.957,-0.959,-0.961,-0.963,-0.965, - &-0.967,-0.969,-0.971,-0.973,-0.975,-0.977,-0.979,-0.981,-0.983, - &-0.985,-0.987,-0.989,-0.991,-0.993,-0.995,-0.997,-0.999,-1.001, - &-1.002,-1.004,-1.006,-1.008,-1.010,-1.012,-1.014,-1.015,-1.017, - &-1.019,-1.021,-1.023,-1.025,-1.026,-1.028,-1.030,-1.032,-1.033, - &-1.035,-1.037,-1.039,-1.040,-1.042,-1.044,-1.046,-1.047,-1.049, - &-1.051,-1.053,-1.054,-1.056,-1.058,-1.059,-1.061,-1.063,-1.064, - &-1.066,-1.068,-1.069,-1.071,-1.073,-1.074,-1.076,-1.078,-1.079, - &-1.081,-1.082,-1.084,-1.086,-1.087,-1.089,-1.090,-1.092,-1.094, - &-1.095,-1.097,-1.098,-1.100,-1.102,-1.103,-1.105,-1.106,-1.108, - &-1.109,-1.111,-1.112,-1.114,-1.116,-1.117,-1.119,-1.120,-1.122, - &-1.123,-1.125,-1.126,-1.128,-1.129,-1.131,-1.132,-1.134,-1.135, - &-1.137,-1.138,-1.140,-1.141,-1.143,-1.144,-1.146,-1.147,-1.148, - &-1.150,-1.151,-1.153,-1.154,-1.156,-1.157,-1.159,-1.160,-1.161, - &-1.163,-1.164,-1.166,-1.167,-1.169,-1.170,-1.171,-1.173,-1.174, - &-1.176,-1.177,-1.178,-1.180,-1.181,-1.183,-1.184,-1.185,-1.187, - &-1.188,-1.190,-1.191,-1.192,-1.194,-1.195,-1.196,-1.198,-1.199, - &-1.201,-1.202,-1.203,-1.205,-1.206,-1.207,-1.209,-1.210,-1.211, - &-1.213,-1.214,-1.215,-1.217,-1.218,-1.219,-1.221,-1.222,-1.223, - &-1.225,-1.226,-1.227,-1.229,-1.230,-1.231,-1.233,-1.234,-1.235, - &-1.236,-1.238,-1.239,-1.240,-1.242,-1.243,-1.244,-1.246,-1.247, - &-1.248,-1.249,-1.251,-1.252,-1.253,-1.255,-1.256,-1.257,-1.258, - &-1.260,-1.261,-1.262,-1.263,-1.265,-1.266,-1.267,-1.268,-1.270, - &-1.271,-1.272,-1.273,-1.275,-1.276,-1.277,-1.278,-1.280,-1.281, - &-1.282,-1.283,-1.285,-1.286,-1.287,-1.288,-1.290,-1.291,-1.292, - &-1.293,-1.294,-1.296,-1.297,-1.298,-1.299,-1.301,-1.302,-1.303, - &-1.304,-1.305,-1.307,-1.308,-1.309,-1.310,-1.311,-1.313,-1.314, - &-1.315,-1.316,-1.317,-1.319,-1.320,-1.321,-1.322,-1.323,-1.324, - &-1.326,-1.327,-1.328,-1.329,-1.330,-1.332,-1.333,-1.334,-1.335, - &-1.336,-1.337,-1.339,-1.340,-1.341,-1.342,-1.343,-1.344,-1.346, - &-1.347,-1.348,-1.349,-1.350,-1.363,-1.374,-1.385,-1.396,-1.407, - &-1.418,-1.429,-1.440,-1.451,-1.461,-1.472,-1.482,-1.492,-1.503, - &-1.513,-1.523,-1.533,-1.543,-1.553,-1.563,-1.573,-1.582,-1.592, - &-1.602,-1.611,-1.621,-1.630,-1.640,-1.649,-1.658,-1.668,-1.677, - &-1.686,-1.695,-1.704,-1.714,-1.723,-1.732,-1.741,-1.750,-1.758, - &-1.767,-1.776,-1.785,-1.794,-1.802,-1.811,-1.820,-1.828,-1.837, - &-1.846,-1.854,-1.863,-1.871,-1.880,-1.888,-1.897,-1.905,-1.913, - &-1.922,-1.930,-1.938,-1.947,-1.955,-1.963,-1.971,-1.979,-1.988, - &-1.996,-2.004,-2.012,-2.020,-2.028,-2.036,-2.044,-2.052,-2.060, - &-2.068,-2.076,-2.084,-2.092,-2.100,-2.108,-2.116,-2.124,-2.131, - &-2.139,-2.147,-2.155,-2.163,-2.170,-2.178,-2.186,-2.194,-2.201, - &-2.209,-2.217,-2.224,-2.232,-2.240,-2.247,-2.255,-2.262,-2.270, - &-2.278,-2.285,-2.293,-2.300,-2.308,-2.315,-2.323,-2.330,-2.338, - &-2.345,-2.353,-2.360,-2.368,-2.375,-2.382,-2.390,-2.397,-2.405, - &-2.412,-2.419,-2.427,-2.434,-2.441,-2.449,-2.456,-2.463,-2.471, - &-2.478,-2.485,-2.492,-2.500,-2.507,-2.514,-2.521,-2.529,-2.536, - &-2.543,-2.550,-2.557,-2.565,-2.572,-2.579,-2.586,-2.593,-2.600, - &-2.608,-2.615,-2.622,-2.629,-2.636,-2.643,-2.650,-2.657,-2.664, - &-2.671,-2.679,-2.686 - & /) -! -! *** NaNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC03M_248 = (/ - &-0.049,-0.108,-0.137,-0.159,-0.175,-0.190,-0.202,-0.212,-0.222, - &-0.231,-0.239,-0.247,-0.254,-0.260,-0.266,-0.272,-0.278,-0.283, - &-0.288,-0.293,-0.298,-0.302,-0.306,-0.311,-0.315,-0.319,-0.322, - &-0.326,-0.330,-0.333,-0.337,-0.340,-0.343,-0.346,-0.349,-0.352, - &-0.355,-0.358,-0.361,-0.364,-0.367,-0.369,-0.372,-0.374,-0.377, - &-0.379,-0.382,-0.384,-0.387,-0.389,-0.391,-0.394,-0.396,-0.398, - &-0.400,-0.402,-0.404,-0.406,-0.408,-0.410,-0.412,-0.414,-0.416, - &-0.418,-0.420,-0.422,-0.424,-0.426,-0.428,-0.429,-0.431,-0.433, - &-0.435,-0.436,-0.438,-0.440,-0.442,-0.443,-0.445,-0.447,-0.448, - &-0.450,-0.452,-0.453,-0.455,-0.456,-0.458,-0.459,-0.461,-0.463, - &-0.464,-0.466,-0.467,-0.469,-0.470,-0.472,-0.473,-0.475,-0.476, - &-0.478,-0.479,-0.481,-0.482,-0.483,-0.485,-0.486,-0.488,-0.489, - &-0.491,-0.492,-0.493,-0.495,-0.496,-0.498,-0.499,-0.500,-0.502, - &-0.503,-0.504,-0.506,-0.507,-0.508,-0.510,-0.511,-0.512,-0.514, - &-0.515,-0.516,-0.518,-0.519,-0.520,-0.521,-0.523,-0.524,-0.525, - &-0.526,-0.528,-0.529,-0.530,-0.531,-0.533,-0.534,-0.535,-0.536, - &-0.537,-0.539,-0.540,-0.541,-0.542,-0.543,-0.545,-0.546,-0.547, - &-0.548,-0.549,-0.550,-0.552,-0.553,-0.554,-0.555,-0.556,-0.557, - &-0.558,-0.559,-0.561,-0.562,-0.563,-0.564,-0.565,-0.566,-0.567, - &-0.568,-0.569,-0.570,-0.572,-0.573,-0.574,-0.575,-0.576,-0.577, - &-0.578,-0.579,-0.580,-0.581,-0.582,-0.583,-0.584,-0.585,-0.586, - &-0.587,-0.588,-0.589,-0.590,-0.592,-0.593,-0.594,-0.595,-0.596, - &-0.597,-0.598,-0.599,-0.600,-0.601,-0.602,-0.603,-0.604,-0.605, - &-0.606,-0.607,-0.607,-0.608,-0.609,-0.610,-0.611,-0.612,-0.613, - &-0.614,-0.615,-0.616,-0.617,-0.618,-0.619,-0.620,-0.621,-0.622, - &-0.623,-0.624,-0.625,-0.626,-0.627,-0.627,-0.628,-0.629,-0.630, - &-0.631,-0.632,-0.633,-0.634,-0.635,-0.636,-0.637,-0.638,-0.638, - &-0.639,-0.640,-0.641,-0.642,-0.643,-0.644,-0.645,-0.646,-0.646, - &-0.647,-0.648,-0.649,-0.650,-0.651,-0.652,-0.653,-0.654,-0.654, - &-0.655,-0.656,-0.657,-0.658,-0.659,-0.660,-0.660,-0.661,-0.662, - &-0.663,-0.664,-0.665,-0.666,-0.666,-0.667,-0.668,-0.669,-0.670, - &-0.671,-0.671,-0.672,-0.673,-0.674,-0.675,-0.676,-0.676,-0.677, - &-0.678,-0.679,-0.680,-0.681,-0.681,-0.682,-0.683,-0.684,-0.685, - &-0.685,-0.686,-0.687,-0.688,-0.689,-0.689,-0.690,-0.691,-0.692, - &-0.693,-0.693,-0.694,-0.695,-0.696,-0.697,-0.697,-0.698,-0.699, - &-0.700,-0.701,-0.701,-0.702,-0.703,-0.704,-0.704,-0.705,-0.706, - &-0.707,-0.708,-0.708,-0.709,-0.710,-0.711,-0.711,-0.712,-0.713, - &-0.714,-0.714,-0.715,-0.716,-0.717,-0.718,-0.718,-0.719,-0.720, - &-0.721,-0.721,-0.722,-0.723,-0.724,-0.724,-0.725,-0.726,-0.727, - &-0.727,-0.728,-0.729,-0.729,-0.730,-0.731,-0.732,-0.732,-0.733, - &-0.734,-0.735,-0.735,-0.736,-0.737,-0.738,-0.738,-0.739,-0.740, - &-0.740,-0.741,-0.742,-0.743,-0.743,-0.744,-0.745,-0.746,-0.746, - &-0.747,-0.748,-0.748,-0.749,-0.750,-0.751,-0.751,-0.752,-0.753, - &-0.753,-0.754,-0.755,-0.756,-0.756,-0.757,-0.758,-0.758,-0.759, - &-0.760,-0.760,-0.761,-0.762,-0.769,-0.776,-0.783,-0.790,-0.796, - &-0.803,-0.809,-0.816,-0.822,-0.828,-0.835,-0.841,-0.847,-0.853, - &-0.859,-0.865,-0.871,-0.877,-0.883,-0.888,-0.894,-0.900,-0.905, - &-0.911,-0.917,-0.922,-0.928,-0.933,-0.939,-0.944,-0.949,-0.955, - &-0.960,-0.965,-0.971,-0.976,-0.981,-0.986,-0.991,-0.997,-1.002, - &-1.007,-1.012,-1.017,-1.022,-1.027,-1.032,-1.037,-1.042,-1.046, - &-1.051,-1.056,-1.061,-1.066,-1.071,-1.075,-1.080,-1.085,-1.089, - &-1.094,-1.099,-1.104,-1.108,-1.113,-1.117,-1.122,-1.127,-1.131, - &-1.136,-1.140,-1.145,-1.149,-1.154,-1.158,-1.163,-1.167,-1.172, - &-1.176,-1.180,-1.185,-1.189,-1.194,-1.198,-1.202,-1.207,-1.211, - &-1.215,-1.220,-1.224,-1.228,-1.232,-1.237,-1.241,-1.245,-1.249, - &-1.254,-1.258,-1.262,-1.266,-1.270,-1.275,-1.279,-1.283,-1.287, - &-1.291,-1.295,-1.299,-1.304,-1.308,-1.312,-1.316,-1.320,-1.324, - &-1.328,-1.332,-1.336,-1.340,-1.344,-1.348,-1.352,-1.356,-1.360, - &-1.364,-1.368,-1.372,-1.376,-1.380,-1.384,-1.388,-1.392,-1.396, - &-1.400,-1.404,-1.408,-1.412,-1.415,-1.419,-1.423,-1.427,-1.431, - &-1.435,-1.439,-1.443,-1.446,-1.450,-1.454,-1.458,-1.462,-1.466, - &-1.469,-1.473,-1.477,-1.481,-1.485,-1.488,-1.492,-1.496,-1.500, - &-1.504,-1.507,-1.511 - & /) -! -! *** (NH4)2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC04M_248 = (/ - &-0.098,-0.214,-0.273,-0.315,-0.347,-0.375,-0.399,-0.419,-0.438, - &-0.455,-0.470,-0.485,-0.498,-0.511,-0.522,-0.533,-0.544,-0.554, - &-0.563,-0.572,-0.581,-0.590,-0.598,-0.605,-0.613,-0.620,-0.627, - &-0.634,-0.641,-0.647,-0.653,-0.660,-0.666,-0.671,-0.677,-0.683, - &-0.688,-0.693,-0.698,-0.703,-0.708,-0.713,-0.718,-0.723,-0.727, - &-0.732,-0.736,-0.741,-0.745,-0.749,-0.753,-0.757,-0.762,-0.765, - &-0.769,-0.773,-0.777,-0.781,-0.784,-0.788,-0.792,-0.795,-0.799, - &-0.802,-0.806,-0.809,-0.812,-0.816,-0.819,-0.822,-0.825,-0.829, - &-0.832,-0.835,-0.838,-0.841,-0.844,-0.847,-0.850,-0.853,-0.856, - &-0.859,-0.862,-0.865,-0.867,-0.870,-0.873,-0.876,-0.879,-0.881, - &-0.884,-0.887,-0.890,-0.892,-0.895,-0.898,-0.900,-0.903,-0.905, - &-0.908,-0.911,-0.913,-0.916,-0.918,-0.921,-0.923,-0.926,-0.928, - &-0.931,-0.933,-0.936,-0.938,-0.940,-0.943,-0.945,-0.948,-0.950, - &-0.952,-0.955,-0.957,-0.959,-0.962,-0.964,-0.966,-0.969,-0.971, - &-0.973,-0.975,-0.978,-0.980,-0.982,-0.984,-0.986,-0.989,-0.991, - &-0.993,-0.995,-0.997,-0.999,-1.002,-1.004,-1.006,-1.008,-1.010, - &-1.012,-1.014,-1.016,-1.018,-1.020,-1.022,-1.024,-1.026,-1.028, - &-1.030,-1.032,-1.034,-1.036,-1.038,-1.040,-1.042,-1.044,-1.046, - &-1.048,-1.050,-1.052,-1.054,-1.056,-1.058,-1.060,-1.062,-1.064, - &-1.066,-1.067,-1.069,-1.071,-1.073,-1.075,-1.077,-1.079,-1.080, - &-1.082,-1.084,-1.086,-1.088,-1.090,-1.091,-1.093,-1.095,-1.097, - &-1.099,-1.100,-1.102,-1.104,-1.106,-1.107,-1.109,-1.111,-1.113, - &-1.114,-1.116,-1.118,-1.120,-1.121,-1.123,-1.125,-1.127,-1.128, - &-1.130,-1.132,-1.133,-1.135,-1.137,-1.138,-1.140,-1.142,-1.143, - &-1.145,-1.147,-1.148,-1.150,-1.152,-1.153,-1.155,-1.157,-1.158, - &-1.160,-1.162,-1.163,-1.165,-1.166,-1.168,-1.170,-1.171,-1.173, - &-1.174,-1.176,-1.178,-1.179,-1.181,-1.182,-1.184,-1.185,-1.187, - &-1.189,-1.190,-1.192,-1.193,-1.195,-1.196,-1.198,-1.199,-1.201, - &-1.203,-1.204,-1.206,-1.207,-1.209,-1.210,-1.212,-1.213,-1.215, - &-1.216,-1.218,-1.219,-1.221,-1.222,-1.224,-1.225,-1.227,-1.228, - &-1.230,-1.231,-1.233,-1.234,-1.236,-1.237,-1.238,-1.240,-1.241, - &-1.243,-1.244,-1.246,-1.247,-1.249,-1.250,-1.252,-1.253,-1.254, - &-1.256,-1.257,-1.259,-1.260,-1.262,-1.263,-1.264,-1.266,-1.267, - &-1.269,-1.270,-1.271,-1.273,-1.274,-1.276,-1.277,-1.278,-1.280, - &-1.281,-1.283,-1.284,-1.285,-1.287,-1.288,-1.290,-1.291,-1.292, - &-1.294,-1.295,-1.296,-1.298,-1.299,-1.301,-1.302,-1.303,-1.305, - &-1.306,-1.307,-1.309,-1.310,-1.311,-1.313,-1.314,-1.315,-1.317, - &-1.318,-1.319,-1.321,-1.322,-1.323,-1.325,-1.326,-1.327,-1.329, - &-1.330,-1.331,-1.333,-1.334,-1.335,-1.337,-1.338,-1.339,-1.341, - &-1.342,-1.343,-1.344,-1.346,-1.347,-1.348,-1.350,-1.351,-1.352, - &-1.354,-1.355,-1.356,-1.357,-1.359,-1.360,-1.361,-1.363,-1.364, - &-1.365,-1.366,-1.368,-1.369,-1.370,-1.371,-1.373,-1.374,-1.375, - &-1.376,-1.378,-1.379,-1.380,-1.381,-1.383,-1.384,-1.385,-1.387, - &-1.388,-1.389,-1.390,-1.391,-1.393,-1.394,-1.395,-1.396,-1.398, - &-1.399,-1.400,-1.401,-1.403,-1.416,-1.428,-1.440,-1.452,-1.463, - &-1.475,-1.487,-1.498,-1.509,-1.520,-1.532,-1.543,-1.554,-1.564, - &-1.575,-1.586,-1.596,-1.607,-1.617,-1.628,-1.638,-1.648,-1.659, - &-1.669,-1.679,-1.689,-1.699,-1.709,-1.719,-1.729,-1.738,-1.748, - &-1.758,-1.767,-1.777,-1.786,-1.796,-1.805,-1.815,-1.824,-1.833, - &-1.843,-1.852,-1.861,-1.870,-1.879,-1.888,-1.897,-1.906,-1.915, - &-1.924,-1.933,-1.942,-1.951,-1.960,-1.969,-1.977,-1.986,-1.995, - &-2.004,-2.012,-2.021,-2.029,-2.038,-2.047,-2.055,-2.064,-2.072, - &-2.081,-2.089,-2.097,-2.106,-2.114,-2.123,-2.131,-2.139,-2.147, - &-2.156,-2.164,-2.172,-2.180,-2.189,-2.197,-2.205,-2.213,-2.221, - &-2.229,-2.237,-2.245,-2.253,-2.261,-2.269,-2.277,-2.285,-2.293, - &-2.301,-2.309,-2.317,-2.325,-2.333,-2.341,-2.349,-2.356,-2.364, - &-2.372,-2.380,-2.388,-2.395,-2.403,-2.411,-2.419,-2.426,-2.434, - &-2.442,-2.449,-2.457,-2.465,-2.472,-2.480,-2.488,-2.495,-2.503, - &-2.510,-2.518,-2.525,-2.533,-2.541,-2.548,-2.556,-2.563,-2.571, - &-2.578,-2.586,-2.593,-2.600,-2.608,-2.615,-2.623,-2.630,-2.638, - &-2.645,-2.652,-2.660,-2.667,-2.674,-2.682,-2.689,-2.696,-2.704, - &-2.711,-2.718,-2.726,-2.733,-2.740,-2.747,-2.755,-2.762,-2.769, - &-2.776,-2.784,-2.791 - & /) -! -! *** NH4NO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC05M_248 = (/ - &-0.050,-0.111,-0.143,-0.166,-0.185,-0.202,-0.216,-0.229,-0.240, - &-0.251,-0.261,-0.271,-0.279,-0.288,-0.296,-0.304,-0.311,-0.318, - &-0.325,-0.331,-0.338,-0.344,-0.350,-0.356,-0.361,-0.367,-0.372, - &-0.378,-0.383,-0.388,-0.393,-0.398,-0.402,-0.407,-0.412,-0.416, - &-0.420,-0.425,-0.429,-0.433,-0.437,-0.441,-0.445,-0.449,-0.453, - &-0.457,-0.460,-0.464,-0.468,-0.471,-0.475,-0.478,-0.482,-0.485, - &-0.488,-0.491,-0.495,-0.498,-0.501,-0.504,-0.507,-0.510,-0.513, - &-0.516,-0.519,-0.522,-0.525,-0.528,-0.531,-0.534,-0.537,-0.539, - &-0.542,-0.545,-0.548,-0.550,-0.553,-0.556,-0.558,-0.561,-0.564, - &-0.566,-0.569,-0.572,-0.574,-0.577,-0.579,-0.582,-0.584,-0.587, - &-0.589,-0.592,-0.594,-0.597,-0.599,-0.602,-0.604,-0.607,-0.609, - &-0.612,-0.614,-0.617,-0.619,-0.621,-0.624,-0.626,-0.629,-0.631, - &-0.633,-0.636,-0.638,-0.640,-0.643,-0.645,-0.647,-0.650,-0.652, - &-0.654,-0.656,-0.659,-0.661,-0.663,-0.665,-0.668,-0.670,-0.672, - &-0.674,-0.677,-0.679,-0.681,-0.683,-0.685,-0.687,-0.690,-0.692, - &-0.694,-0.696,-0.698,-0.700,-0.702,-0.704,-0.706,-0.709,-0.711, - &-0.713,-0.715,-0.717,-0.719,-0.721,-0.723,-0.725,-0.727,-0.729, - &-0.731,-0.733,-0.735,-0.737,-0.739,-0.741,-0.742,-0.744,-0.746, - &-0.748,-0.750,-0.752,-0.754,-0.756,-0.758,-0.760,-0.761,-0.763, - &-0.765,-0.767,-0.769,-0.771,-0.772,-0.774,-0.776,-0.778,-0.780, - &-0.782,-0.783,-0.785,-0.787,-0.789,-0.790,-0.792,-0.794,-0.796, - &-0.797,-0.799,-0.801,-0.803,-0.804,-0.806,-0.808,-0.809,-0.811, - &-0.813,-0.814,-0.816,-0.818,-0.820,-0.821,-0.823,-0.824,-0.826, - &-0.828,-0.829,-0.831,-0.833,-0.834,-0.836,-0.838,-0.839,-0.841, - &-0.842,-0.844,-0.846,-0.847,-0.849,-0.850,-0.852,-0.853,-0.855, - &-0.857,-0.858,-0.860,-0.861,-0.863,-0.864,-0.866,-0.867,-0.869, - &-0.870,-0.872,-0.873,-0.875,-0.876,-0.878,-0.879,-0.881,-0.882, - &-0.884,-0.885,-0.887,-0.888,-0.890,-0.891,-0.893,-0.894,-0.896, - &-0.897,-0.898,-0.900,-0.901,-0.903,-0.904,-0.906,-0.907,-0.908, - &-0.910,-0.911,-0.913,-0.914,-0.915,-0.917,-0.918,-0.920,-0.921, - &-0.922,-0.924,-0.925,-0.926,-0.928,-0.929,-0.931,-0.932,-0.933, - &-0.935,-0.936,-0.937,-0.939,-0.940,-0.941,-0.943,-0.944,-0.945, - &-0.947,-0.948,-0.949,-0.951,-0.952,-0.953,-0.954,-0.956,-0.957, - &-0.958,-0.960,-0.961,-0.962,-0.963,-0.965,-0.966,-0.967,-0.969, - &-0.970,-0.971,-0.972,-0.974,-0.975,-0.976,-0.977,-0.979,-0.980, - &-0.981,-0.982,-0.984,-0.985,-0.986,-0.987,-0.988,-0.990,-0.991, - &-0.992,-0.993,-0.995,-0.996,-0.997,-0.998,-0.999,-1.001,-1.002, - &-1.003,-1.004,-1.005,-1.007,-1.008,-1.009,-1.010,-1.011,-1.012, - &-1.014,-1.015,-1.016,-1.017,-1.018,-1.019,-1.021,-1.022,-1.023, - &-1.024,-1.025,-1.026,-1.027,-1.029,-1.030,-1.031,-1.032,-1.033, - &-1.034,-1.035,-1.037,-1.038,-1.039,-1.040,-1.041,-1.042,-1.043, - &-1.044,-1.045,-1.047,-1.048,-1.049,-1.050,-1.051,-1.052,-1.053, - &-1.054,-1.055,-1.056,-1.058,-1.059,-1.060,-1.061,-1.062,-1.063, - &-1.064,-1.065,-1.066,-1.067,-1.068,-1.069,-1.070,-1.071,-1.072, - &-1.074,-1.075,-1.076,-1.077,-1.088,-1.098,-1.108,-1.118,-1.128, - &-1.137,-1.147,-1.156,-1.165,-1.174,-1.183,-1.192,-1.200,-1.209, - &-1.217,-1.225,-1.233,-1.241,-1.249,-1.257,-1.265,-1.273,-1.280, - &-1.288,-1.295,-1.303,-1.310,-1.317,-1.324,-1.331,-1.338,-1.345, - &-1.352,-1.359,-1.365,-1.372,-1.379,-1.385,-1.392,-1.398,-1.404, - &-1.411,-1.417,-1.423,-1.429,-1.435,-1.441,-1.447,-1.453,-1.459, - &-1.465,-1.471,-1.477,-1.483,-1.488,-1.494,-1.500,-1.505,-1.511, - &-1.516,-1.522,-1.527,-1.533,-1.538,-1.544,-1.549,-1.554,-1.560, - &-1.565,-1.570,-1.575,-1.580,-1.586,-1.591,-1.596,-1.601,-1.606, - &-1.611,-1.616,-1.621,-1.626,-1.631,-1.635,-1.640,-1.645,-1.650, - &-1.655,-1.660,-1.664,-1.669,-1.674,-1.679,-1.683,-1.688,-1.693, - &-1.697,-1.702,-1.706,-1.711,-1.716,-1.720,-1.725,-1.729,-1.734, - &-1.738,-1.743,-1.747,-1.751,-1.756,-1.760,-1.765,-1.769,-1.773, - &-1.778,-1.782,-1.786,-1.791,-1.795,-1.799,-1.803,-1.808,-1.812, - &-1.816,-1.820,-1.825,-1.829,-1.833,-1.837,-1.841,-1.845,-1.850, - &-1.854,-1.858,-1.862,-1.866,-1.870,-1.874,-1.878,-1.882,-1.886, - &-1.890,-1.894,-1.898,-1.902,-1.906,-1.910,-1.914,-1.918,-1.922, - &-1.926,-1.930,-1.934,-1.938,-1.942,-1.946,-1.950,-1.954,-1.958, - &-1.961,-1.965,-1.969 - & /) -! -! *** NH4Cl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC06M_248 = (/ - &-0.048,-0.103,-0.130,-0.148,-0.161,-0.173,-0.182,-0.190,-0.197, - &-0.203,-0.208,-0.213,-0.217,-0.221,-0.225,-0.228,-0.231,-0.234, - &-0.237,-0.239,-0.241,-0.243,-0.245,-0.247,-0.249,-0.251,-0.252, - &-0.254,-0.255,-0.256,-0.257,-0.259,-0.260,-0.261,-0.262,-0.263, - &-0.263,-0.264,-0.265,-0.266,-0.267,-0.267,-0.268,-0.269,-0.269, - &-0.270,-0.270,-0.271,-0.272,-0.272,-0.273,-0.273,-0.273,-0.274, - &-0.274,-0.275,-0.275,-0.275,-0.276,-0.276,-0.277,-0.277,-0.277, - &-0.277,-0.278,-0.278,-0.278,-0.279,-0.279,-0.279,-0.279,-0.279, - &-0.280,-0.280,-0.280,-0.280,-0.280,-0.280,-0.280,-0.281,-0.281, - &-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281, - &-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281,-0.281, - &-0.281,-0.281,-0.280,-0.280,-0.280,-0.280,-0.280,-0.280,-0.280, - &-0.279,-0.279,-0.279,-0.279,-0.279,-0.279,-0.278,-0.278,-0.278, - &-0.278,-0.278,-0.277,-0.277,-0.277,-0.277,-0.277,-0.276,-0.276, - &-0.276,-0.276,-0.275,-0.275,-0.275,-0.275,-0.274,-0.274,-0.274, - &-0.274,-0.273,-0.273,-0.273,-0.273,-0.272,-0.272,-0.272,-0.272, - &-0.271,-0.271,-0.271,-0.271,-0.270,-0.270,-0.270,-0.270,-0.269, - &-0.269,-0.269,-0.269,-0.268,-0.268,-0.268,-0.267,-0.267,-0.267, - &-0.267,-0.266,-0.266,-0.266,-0.266,-0.265,-0.265,-0.265,-0.264, - &-0.264,-0.264,-0.264,-0.263,-0.263,-0.263,-0.263,-0.262,-0.262, - &-0.262,-0.261,-0.261,-0.261,-0.261,-0.260,-0.260,-0.260,-0.259, - &-0.259,-0.259,-0.259,-0.258,-0.258,-0.258,-0.258,-0.257,-0.257, - &-0.257,-0.256,-0.256,-0.256,-0.256,-0.255,-0.255,-0.255,-0.255, - &-0.254,-0.254,-0.254,-0.253,-0.253,-0.253,-0.253,-0.252,-0.252, - &-0.252,-0.252,-0.251,-0.251,-0.251,-0.250,-0.250,-0.250,-0.250, - &-0.249,-0.249,-0.249,-0.249,-0.248,-0.248,-0.248,-0.247,-0.247, - &-0.247,-0.247,-0.246,-0.246,-0.246,-0.246,-0.245,-0.245,-0.245, - &-0.245,-0.244,-0.244,-0.244,-0.244,-0.243,-0.243,-0.243,-0.243, - &-0.242,-0.242,-0.242,-0.241,-0.241,-0.241,-0.241,-0.240,-0.240, - &-0.240,-0.240,-0.239,-0.239,-0.239,-0.239,-0.238,-0.238,-0.238, - &-0.238,-0.237,-0.237,-0.237,-0.237,-0.236,-0.236,-0.236,-0.236, - &-0.236,-0.235,-0.235,-0.235,-0.235,-0.234,-0.234,-0.234,-0.234, - &-0.233,-0.233,-0.233,-0.233,-0.232,-0.232,-0.232,-0.232,-0.231, - &-0.231,-0.231,-0.231,-0.231,-0.230,-0.230,-0.230,-0.230,-0.229, - &-0.229,-0.229,-0.229,-0.228,-0.228,-0.228,-0.228,-0.228,-0.227, - &-0.227,-0.227,-0.227,-0.226,-0.226,-0.226,-0.226,-0.226,-0.225, - &-0.225,-0.225,-0.225,-0.224,-0.224,-0.224,-0.224,-0.224,-0.223, - &-0.223,-0.223,-0.223,-0.223,-0.222,-0.222,-0.222,-0.222,-0.221, - &-0.221,-0.221,-0.221,-0.221,-0.220,-0.220,-0.220,-0.220,-0.220, - &-0.219,-0.219,-0.219,-0.219,-0.219,-0.218,-0.218,-0.218,-0.218, - &-0.218,-0.217,-0.217,-0.217,-0.217,-0.217,-0.216,-0.216,-0.216, - &-0.216,-0.216,-0.215,-0.215,-0.215,-0.215,-0.215,-0.215,-0.214, - &-0.214,-0.214,-0.214,-0.214,-0.213,-0.213,-0.213,-0.213,-0.213, - &-0.212,-0.212,-0.212,-0.212,-0.212,-0.212,-0.211,-0.211,-0.211, - &-0.211,-0.211,-0.210,-0.210,-0.208,-0.207,-0.205,-0.203,-0.202, - &-0.200,-0.199,-0.198,-0.196,-0.195,-0.194,-0.192,-0.191,-0.190, - &-0.189,-0.188,-0.187,-0.186,-0.185,-0.184,-0.183,-0.182,-0.182, - &-0.181,-0.180,-0.179,-0.179,-0.178,-0.178,-0.177,-0.176,-0.176, - &-0.176,-0.175,-0.175,-0.174,-0.174,-0.174,-0.173,-0.173,-0.173, - &-0.173,-0.172,-0.172,-0.172,-0.172,-0.172,-0.172,-0.172,-0.172, - &-0.172,-0.172,-0.172,-0.172,-0.172,-0.172,-0.172,-0.172,-0.173, - &-0.173,-0.173,-0.173,-0.173,-0.174,-0.174,-0.174,-0.175,-0.175, - &-0.175,-0.176,-0.176,-0.176,-0.177,-0.177,-0.178,-0.178,-0.179, - &-0.179,-0.180,-0.180,-0.181,-0.181,-0.182,-0.183,-0.183,-0.184, - &-0.184,-0.185,-0.186,-0.186,-0.187,-0.188,-0.188,-0.189,-0.190, - &-0.191,-0.191,-0.192,-0.193,-0.194,-0.194,-0.195,-0.196,-0.197, - &-0.198,-0.199,-0.200,-0.200,-0.201,-0.202,-0.203,-0.204,-0.205, - &-0.206,-0.207,-0.208,-0.209,-0.210,-0.211,-0.212,-0.213,-0.214, - &-0.215,-0.216,-0.217,-0.218,-0.219,-0.220,-0.221,-0.222,-0.223, - &-0.224,-0.226,-0.227,-0.228,-0.229,-0.230,-0.231,-0.232,-0.234, - &-0.235,-0.236,-0.237,-0.238,-0.239,-0.241,-0.242,-0.243,-0.244, - &-0.246,-0.247,-0.248,-0.249,-0.251,-0.252,-0.253,-0.254,-0.256, - &-0.257,-0.258,-0.260 - & /) -! -! *** (2H,SO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC07M_248 = (/ - &-0.098,-0.213,-0.271,-0.312,-0.344,-0.370,-0.393,-0.413,-0.431, - &-0.448,-0.462,-0.476,-0.489,-0.500,-0.511,-0.522,-0.532,-0.541, - &-0.550,-0.558,-0.567,-0.574,-0.582,-0.589,-0.596,-0.603,-0.609, - &-0.615,-0.621,-0.627,-0.633,-0.638,-0.644,-0.649,-0.654,-0.659, - &-0.664,-0.669,-0.674,-0.678,-0.683,-0.687,-0.691,-0.695,-0.700, - &-0.704,-0.708,-0.711,-0.715,-0.719,-0.723,-0.726,-0.730,-0.733, - &-0.737,-0.740,-0.744,-0.747,-0.750,-0.753,-0.757,-0.760,-0.763, - &-0.766,-0.769,-0.772,-0.775,-0.778,-0.781,-0.784,-0.786,-0.789, - &-0.792,-0.795,-0.797,-0.800,-0.803,-0.805,-0.808,-0.811,-0.813, - &-0.816,-0.818,-0.821,-0.823,-0.825,-0.828,-0.830,-0.833,-0.835, - &-0.837,-0.840,-0.842,-0.844,-0.847,-0.849,-0.851,-0.853,-0.856, - &-0.858,-0.860,-0.862,-0.864,-0.867,-0.869,-0.871,-0.873,-0.875, - &-0.877,-0.879,-0.881,-0.883,-0.885,-0.887,-0.889,-0.891,-0.893, - &-0.895,-0.897,-0.899,-0.901,-0.903,-0.905,-0.907,-0.909,-0.911, - &-0.913,-0.915,-0.916,-0.918,-0.920,-0.922,-0.924,-0.926,-0.928, - &-0.929,-0.931,-0.933,-0.935,-0.936,-0.938,-0.940,-0.942,-0.944, - &-0.945,-0.947,-0.949,-0.950,-0.952,-0.954,-0.956,-0.957,-0.959, - &-0.961,-0.962,-0.964,-0.966,-0.967,-0.969,-0.971,-0.972,-0.974, - &-0.975,-0.977,-0.979,-0.980,-0.982,-0.983,-0.985,-0.987,-0.988, - &-0.990,-0.991,-0.993,-0.994,-0.996,-0.998,-0.999,-1.001,-1.002, - &-1.004,-1.005,-1.007,-1.008,-1.010,-1.011,-1.013,-1.014,-1.016, - &-1.017,-1.019,-1.020,-1.022,-1.023,-1.024,-1.026,-1.027,-1.029, - &-1.030,-1.032,-1.033,-1.035,-1.036,-1.037,-1.039,-1.040,-1.042, - &-1.043,-1.045,-1.046,-1.047,-1.049,-1.050,-1.052,-1.053,-1.054, - &-1.056,-1.057,-1.058,-1.060,-1.061,-1.063,-1.064,-1.065,-1.067, - &-1.068,-1.069,-1.071,-1.072,-1.073,-1.075,-1.076,-1.077,-1.079, - &-1.080,-1.081,-1.083,-1.084,-1.085,-1.087,-1.088,-1.089,-1.090, - &-1.092,-1.093,-1.094,-1.096,-1.097,-1.098,-1.100,-1.101,-1.102, - &-1.103,-1.105,-1.106,-1.107,-1.108,-1.110,-1.111,-1.112,-1.113, - &-1.115,-1.116,-1.117,-1.118,-1.120,-1.121,-1.122,-1.123,-1.125, - &-1.126,-1.127,-1.128,-1.130,-1.131,-1.132,-1.133,-1.134,-1.136, - &-1.137,-1.138,-1.139,-1.141,-1.142,-1.143,-1.144,-1.145,-1.147, - &-1.148,-1.149,-1.150,-1.151,-1.153,-1.154,-1.155,-1.156,-1.157, - &-1.158,-1.160,-1.161,-1.162,-1.163,-1.164,-1.165,-1.167,-1.168, - &-1.169,-1.170,-1.171,-1.172,-1.174,-1.175,-1.176,-1.177,-1.178, - &-1.179,-1.181,-1.182,-1.183,-1.184,-1.185,-1.186,-1.187,-1.189, - &-1.190,-1.191,-1.192,-1.193,-1.194,-1.195,-1.196,-1.198,-1.199, - &-1.200,-1.201,-1.202,-1.203,-1.204,-1.205,-1.207,-1.208,-1.209, - &-1.210,-1.211,-1.212,-1.213,-1.214,-1.215,-1.216,-1.218,-1.219, - &-1.220,-1.221,-1.222,-1.223,-1.224,-1.225,-1.226,-1.227,-1.228, - &-1.230,-1.231,-1.232,-1.233,-1.234,-1.235,-1.236,-1.237,-1.238, - &-1.239,-1.240,-1.241,-1.242,-1.244,-1.245,-1.246,-1.247,-1.248, - &-1.249,-1.250,-1.251,-1.252,-1.253,-1.254,-1.255,-1.256,-1.257, - &-1.258,-1.259,-1.261,-1.262,-1.263,-1.264,-1.265,-1.266,-1.267, - &-1.268,-1.269,-1.270,-1.271,-1.282,-1.292,-1.303,-1.313,-1.323, - &-1.332,-1.342,-1.352,-1.362,-1.371,-1.381,-1.390,-1.400,-1.409, - &-1.418,-1.427,-1.437,-1.446,-1.455,-1.464,-1.473,-1.482,-1.491, - &-1.499,-1.508,-1.517,-1.526,-1.534,-1.543,-1.552,-1.560,-1.569, - &-1.577,-1.586,-1.594,-1.602,-1.611,-1.619,-1.627,-1.636,-1.644, - &-1.652,-1.660,-1.668,-1.677,-1.685,-1.693,-1.701,-1.709,-1.717, - &-1.725,-1.733,-1.741,-1.749,-1.757,-1.764,-1.772,-1.780,-1.788, - &-1.796,-1.804,-1.811,-1.819,-1.827,-1.835,-1.842,-1.850,-1.858, - &-1.865,-1.873,-1.880,-1.888,-1.896,-1.903,-1.911,-1.918,-1.926, - &-1.933,-1.941,-1.948,-1.956,-1.963,-1.971,-1.978,-1.986,-1.993, - &-2.000,-2.008,-2.015,-2.022,-2.030,-2.037,-2.044,-2.052,-2.059, - &-2.066,-2.074,-2.081,-2.088,-2.095,-2.103,-2.110,-2.117,-2.124, - &-2.131,-2.139,-2.146,-2.153,-2.160,-2.167,-2.174,-2.181,-2.189, - &-2.196,-2.203,-2.210,-2.217,-2.224,-2.231,-2.238,-2.245,-2.252, - &-2.259,-2.266,-2.273,-2.280,-2.287,-2.294,-2.301,-2.308,-2.315, - &-2.322,-2.329,-2.336,-2.343,-2.350,-2.357,-2.364,-2.371,-2.378, - &-2.385,-2.391,-2.398,-2.405,-2.412,-2.419,-2.426,-2.433,-2.439, - &-2.446,-2.453,-2.460,-2.467,-2.474,-2.480,-2.487,-2.494,-2.501, - &-2.508,-2.514,-2.521 - & /) -! -! *** (H,HSO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC08M_248 = (/ - &-0.046,-0.090,-0.108,-0.118,-0.124,-0.128,-0.130,-0.132,-0.132, - &-0.131,-0.130,-0.128,-0.125,-0.122,-0.119,-0.116,-0.112,-0.108, - &-0.103,-0.098,-0.093,-0.088,-0.083,-0.077,-0.071,-0.065,-0.059, - &-0.053,-0.046,-0.040,-0.033,-0.026,-0.019,-0.012,-0.004, 0.003, - & 0.011, 0.018, 0.026, 0.034, 0.042, 0.050, 0.058, 0.066, 0.075, - & 0.083, 0.091, 0.100, 0.109, 0.117, 0.126, 0.135, 0.144, 0.153, - & 0.162, 0.171, 0.180, 0.189, 0.198, 0.207, 0.216, 0.226, 0.235, - & 0.244, 0.254, 0.263, 0.273, 0.282, 0.292, 0.302, 0.311, 0.321, - & 0.331, 0.341, 0.351, 0.361, 0.371, 0.381, 0.391, 0.401, 0.411, - & 0.421, 0.432, 0.442, 0.452, 0.463, 0.473, 0.484, 0.495, 0.505, - & 0.516, 0.527, 0.538, 0.549, 0.560, 0.571, 0.582, 0.593, 0.604, - & 0.615, 0.626, 0.638, 0.649, 0.660, 0.672, 0.683, 0.694, 0.706, - & 0.717, 0.729, 0.740, 0.752, 0.763, 0.775, 0.787, 0.798, 0.810, - & 0.821, 0.833, 0.845, 0.856, 0.868, 0.879, 0.891, 0.903, 0.914, - & 0.926, 0.937, 0.949, 0.961, 0.972, 0.984, 0.995, 1.007, 1.018, - & 1.030, 1.041, 1.053, 1.064, 1.076, 1.087, 1.099, 1.110, 1.121, - & 1.133, 1.144, 1.155, 1.167, 1.178, 1.189, 1.200, 1.212, 1.223, - & 1.234, 1.245, 1.256, 1.267, 1.278, 1.289, 1.300, 1.311, 1.322, - & 1.333, 1.344, 1.355, 1.366, 1.377, 1.388, 1.399, 1.409, 1.420, - & 1.431, 1.442, 1.452, 1.463, 1.474, 1.485, 1.495, 1.506, 1.516, - & 1.527, 1.537, 1.548, 1.558, 1.569, 1.579, 1.590, 1.600, 1.611, - & 1.621, 1.631, 1.642, 1.652, 1.662, 1.672, 1.683, 1.693, 1.703, - & 1.713, 1.723, 1.733, 1.743, 1.753, 1.763, 1.774, 1.784, 1.793, - & 1.803, 1.813, 1.823, 1.833, 1.843, 1.853, 1.863, 1.872, 1.882, - & 1.892, 1.902, 1.911, 1.921, 1.931, 1.940, 1.950, 1.960, 1.969, - & 1.979, 1.988, 1.998, 2.007, 2.017, 2.026, 2.036, 2.045, 2.055, - & 2.064, 2.073, 2.083, 2.092, 2.101, 2.111, 2.120, 2.129, 2.138, - & 2.147, 2.157, 2.166, 2.175, 2.184, 2.193, 2.202, 2.211, 2.220, - & 2.229, 2.238, 2.247, 2.256, 2.265, 2.274, 2.283, 2.292, 2.301, - & 2.310, 2.318, 2.327, 2.336, 2.345, 2.354, 2.362, 2.371, 2.380, - & 2.388, 2.397, 2.406, 2.414, 2.423, 2.432, 2.440, 2.449, 2.457, - & 2.466, 2.474, 2.483, 2.491, 2.500, 2.508, 2.517, 2.525, 2.533, - & 2.542, 2.550, 2.558, 2.567, 2.575, 2.583, 2.591, 2.600, 2.608, - & 2.616, 2.624, 2.633, 2.641, 2.649, 2.657, 2.665, 2.673, 2.681, - & 2.689, 2.697, 2.705, 2.713, 2.721, 2.729, 2.737, 2.745, 2.753, - & 2.761, 2.769, 2.777, 2.785, 2.793, 2.801, 2.809, 2.816, 2.824, - & 2.832, 2.840, 2.847, 2.855, 2.863, 2.871, 2.878, 2.886, 2.894, - & 2.901, 2.909, 2.917, 2.924, 2.932, 2.939, 2.947, 2.955, 2.962, - & 2.970, 2.977, 2.985, 2.992, 3.000, 3.007, 3.014, 3.022, 3.029, - & 3.037, 3.044, 3.051, 3.059, 3.066, 3.074, 3.081, 3.088, 3.095, - & 3.103, 3.110, 3.117, 3.125, 3.132, 3.139, 3.146, 3.153, 3.161, - & 3.168, 3.175, 3.182, 3.189, 3.196, 3.203, 3.210, 3.217, 3.225, - & 3.232, 3.239, 3.246, 3.253, 3.260, 3.267, 3.274, 3.281, 3.288, - & 3.294, 3.301, 3.308, 3.315, 3.322, 3.329, 3.336, 3.343, 3.350, - & 3.356, 3.363, 3.370, 3.377, 3.450, 3.516, 3.581, 3.645, 3.708, - & 3.770, 3.831, 3.891, 3.950, 4.008, 4.065, 4.122, 4.178, 4.233, - & 4.287, 4.340, 4.393, 4.445, 4.496, 4.547, 4.597, 4.646, 4.695, - & 4.743, 4.790, 4.837, 4.884, 4.929, 4.974, 5.019, 5.063, 5.107, - & 5.150, 5.193, 5.235, 5.277, 5.318, 5.359, 5.399, 5.439, 5.478, - & 5.517, 5.556, 5.594, 5.632, 5.670, 5.707, 5.743, 5.780, 5.816, - & 5.852, 5.887, 5.922, 5.956, 5.991, 6.025, 6.058, 6.092, 6.125, - & 6.158, 6.190, 6.222, 6.254, 6.286, 6.317, 6.348, 6.379, 6.410, - & 6.440, 6.470, 6.500, 6.529, 6.559, 6.588, 6.616, 6.645, 6.673, - & 6.701, 6.729, 6.757, 6.784, 6.812, 6.839, 6.865, 6.892, 6.919, - & 6.945, 6.971, 6.997, 7.022, 7.048, 7.073, 7.098, 7.123, 7.148, - & 7.172, 7.196, 7.221, 7.245, 7.269, 7.292, 7.316, 7.339, 7.362, - & 7.385, 7.408, 7.431, 7.454, 7.476, 7.498, 7.520, 7.542, 7.564, - & 7.586, 7.607, 7.629, 7.650, 7.671, 7.692, 7.713, 7.734, 7.755, - & 7.775, 7.795, 7.816, 7.836, 7.856, 7.876, 7.895, 7.915, 7.935, - & 7.954, 7.973, 7.992, 8.012, 8.030, 8.049, 8.068, 8.087, 8.105, - & 8.124, 8.142, 8.160, 8.178, 8.196, 8.214, 8.232, 8.250, 8.267, - & 8.285, 8.302, 8.319, 8.337, 8.354, 8.371, 8.388, 8.404, 8.421, - & 8.438, 8.454, 8.471 - & /) -! -! *** NH4HSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC09M_248 = (/ - &-0.048,-0.102,-0.128,-0.146,-0.159,-0.170,-0.179,-0.187,-0.194, - &-0.200,-0.205,-0.210,-0.214,-0.218,-0.221,-0.224,-0.227,-0.230, - &-0.232,-0.234,-0.235,-0.237,-0.238,-0.239,-0.240,-0.241,-0.242, - &-0.242,-0.243,-0.243,-0.243,-0.243,-0.243,-0.243,-0.242,-0.242, - &-0.241,-0.241,-0.240,-0.239,-0.238,-0.237,-0.236,-0.235,-0.234, - &-0.233,-0.231,-0.230,-0.228,-0.227,-0.225,-0.224,-0.222,-0.220, - &-0.218,-0.216,-0.214,-0.212,-0.210,-0.208,-0.206,-0.204,-0.202, - &-0.199,-0.197,-0.195,-0.192,-0.190,-0.188,-0.185,-0.183,-0.180, - &-0.178,-0.175,-0.172,-0.170,-0.167,-0.164,-0.161,-0.159,-0.156, - &-0.153,-0.150,-0.147,-0.144,-0.141,-0.138,-0.135,-0.132,-0.129, - &-0.126,-0.123,-0.119,-0.116,-0.113,-0.110,-0.106,-0.103,-0.100, - &-0.096,-0.093,-0.090,-0.086,-0.083,-0.080,-0.076,-0.073,-0.069, - &-0.066,-0.062,-0.059,-0.055,-0.052,-0.048,-0.045,-0.041,-0.037, - &-0.034,-0.030,-0.027,-0.023,-0.020,-0.016,-0.012,-0.009,-0.005, - &-0.002, 0.002, 0.005, 0.009, 0.013, 0.016, 0.020, 0.023, 0.027, - & 0.030, 0.034, 0.037, 0.041, 0.044, 0.048, 0.051, 0.055, 0.058, - & 0.062, 0.065, 0.069, 0.072, 0.076, 0.079, 0.083, 0.086, 0.090, - & 0.093, 0.097, 0.100, 0.103, 0.107, 0.110, 0.114, 0.117, 0.120, - & 0.124, 0.127, 0.130, 0.134, 0.137, 0.140, 0.144, 0.147, 0.150, - & 0.154, 0.157, 0.160, 0.164, 0.167, 0.170, 0.173, 0.177, 0.180, - & 0.183, 0.186, 0.189, 0.193, 0.196, 0.199, 0.202, 0.205, 0.209, - & 0.212, 0.215, 0.218, 0.221, 0.224, 0.227, 0.231, 0.234, 0.237, - & 0.240, 0.243, 0.246, 0.249, 0.252, 0.255, 0.258, 0.261, 0.264, - & 0.267, 0.270, 0.273, 0.276, 0.279, 0.282, 0.285, 0.288, 0.291, - & 0.294, 0.297, 0.300, 0.303, 0.306, 0.309, 0.312, 0.315, 0.317, - & 0.320, 0.323, 0.326, 0.329, 0.332, 0.335, 0.338, 0.340, 0.343, - & 0.346, 0.349, 0.352, 0.354, 0.357, 0.360, 0.363, 0.366, 0.368, - & 0.371, 0.374, 0.377, 0.379, 0.382, 0.385, 0.388, 0.390, 0.393, - & 0.396, 0.398, 0.401, 0.404, 0.407, 0.409, 0.412, 0.415, 0.417, - & 0.420, 0.422, 0.425, 0.428, 0.430, 0.433, 0.436, 0.438, 0.441, - & 0.443, 0.446, 0.449, 0.451, 0.454, 0.456, 0.459, 0.461, 0.464, - & 0.467, 0.469, 0.472, 0.474, 0.477, 0.479, 0.482, 0.484, 0.487, - & 0.489, 0.492, 0.494, 0.497, 0.499, 0.502, 0.504, 0.507, 0.509, - & 0.511, 0.514, 0.516, 0.519, 0.521, 0.524, 0.526, 0.528, 0.531, - & 0.533, 0.536, 0.538, 0.540, 0.543, 0.545, 0.548, 0.550, 0.552, - & 0.555, 0.557, 0.559, 0.562, 0.564, 0.566, 0.569, 0.571, 0.573, - & 0.576, 0.578, 0.580, 0.583, 0.585, 0.587, 0.589, 0.592, 0.594, - & 0.596, 0.599, 0.601, 0.603, 0.605, 0.608, 0.610, 0.612, 0.614, - & 0.617, 0.619, 0.621, 0.623, 0.625, 0.628, 0.630, 0.632, 0.634, - & 0.636, 0.639, 0.641, 0.643, 0.645, 0.647, 0.649, 0.652, 0.654, - & 0.656, 0.658, 0.660, 0.662, 0.665, 0.667, 0.669, 0.671, 0.673, - & 0.675, 0.677, 0.679, 0.681, 0.684, 0.686, 0.688, 0.690, 0.692, - & 0.694, 0.696, 0.698, 0.700, 0.702, 0.704, 0.706, 0.708, 0.710, - & 0.713, 0.715, 0.717, 0.719, 0.721, 0.723, 0.725, 0.727, 0.729, - & 0.731, 0.733, 0.735, 0.737, 0.758, 0.778, 0.797, 0.815, 0.834, - & 0.852, 0.870, 0.887, 0.905, 0.922, 0.938, 0.955, 0.971, 0.987, - & 1.003, 1.018, 1.033, 1.048, 1.063, 1.078, 1.092, 1.106, 1.120, - & 1.134, 1.148, 1.161, 1.174, 1.187, 1.200, 1.213, 1.225, 1.238, - & 1.250, 1.262, 1.274, 1.286, 1.297, 1.309, 1.320, 1.331, 1.342, - & 1.353, 1.364, 1.374, 1.385, 1.395, 1.406, 1.416, 1.426, 1.436, - & 1.446, 1.455, 1.465, 1.475, 1.484, 1.493, 1.502, 1.512, 1.521, - & 1.529, 1.538, 1.547, 1.556, 1.564, 1.572, 1.581, 1.589, 1.597, - & 1.605, 1.613, 1.621, 1.629, 1.637, 1.645, 1.652, 1.660, 1.667, - & 1.675, 1.682, 1.689, 1.696, 1.704, 1.711, 1.718, 1.725, 1.731, - & 1.738, 1.745, 1.752, 1.758, 1.765, 1.771, 1.778, 1.784, 1.790, - & 1.796, 1.803, 1.809, 1.815, 1.821, 1.827, 1.833, 1.839, 1.844, - & 1.850, 1.856, 1.861, 1.867, 1.873, 1.878, 1.884, 1.889, 1.894, - & 1.900, 1.905, 1.910, 1.915, 1.920, 1.926, 1.931, 1.936, 1.941, - & 1.946, 1.950, 1.955, 1.960, 1.965, 1.970, 1.974, 1.979, 1.983, - & 1.988, 1.993, 1.997, 2.001, 2.006, 2.010, 2.015, 2.019, 2.023, - & 2.027, 2.032, 2.036, 2.040, 2.044, 2.048, 2.052, 2.056, 2.060, - & 2.064, 2.068, 2.072, 2.076, 2.080, 2.083, 2.087, 2.091, 2.095, - & 2.098, 2.102, 2.106 - & /) -! -! *** (H,NO3) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC10M_248 = (/ - &-0.047,-0.098,-0.120,-0.135,-0.145,-0.153,-0.158,-0.163,-0.167, - &-0.169,-0.172,-0.173,-0.175,-0.176,-0.176,-0.176,-0.176,-0.176, - &-0.176,-0.175,-0.175,-0.174,-0.173,-0.172,-0.170,-0.169,-0.168, - &-0.166,-0.165,-0.163,-0.162,-0.160,-0.159,-0.157,-0.155,-0.153, - &-0.151,-0.149,-0.148,-0.146,-0.144,-0.142,-0.140,-0.138,-0.136, - &-0.134,-0.132,-0.130,-0.128,-0.126,-0.124,-0.122,-0.120,-0.118, - &-0.115,-0.113,-0.111,-0.109,-0.107,-0.105,-0.103,-0.101,-0.099, - &-0.097,-0.095,-0.093,-0.090,-0.088,-0.086,-0.084,-0.082,-0.080, - &-0.078,-0.075,-0.073,-0.071,-0.069,-0.067,-0.064,-0.062,-0.060, - &-0.057,-0.055,-0.053,-0.051,-0.048,-0.046,-0.043,-0.041,-0.039, - &-0.036,-0.034,-0.031,-0.029,-0.026,-0.024,-0.021,-0.019,-0.016, - &-0.014,-0.011,-0.008,-0.006,-0.003, 0.000, 0.002, 0.005, 0.007, - & 0.010, 0.013, 0.016, 0.018, 0.021, 0.024, 0.026, 0.029, 0.032, - & 0.035, 0.037, 0.040, 0.043, 0.046, 0.048, 0.051, 0.054, 0.057, - & 0.059, 0.062, 0.065, 0.068, 0.070, 0.073, 0.076, 0.079, 0.081, - & 0.084, 0.087, 0.090, 0.092, 0.095, 0.098, 0.101, 0.103, 0.106, - & 0.109, 0.112, 0.114, 0.117, 0.120, 0.123, 0.125, 0.128, 0.131, - & 0.133, 0.136, 0.139, 0.142, 0.144, 0.147, 0.150, 0.152, 0.155, - & 0.158, 0.160, 0.163, 0.166, 0.168, 0.171, 0.174, 0.176, 0.179, - & 0.182, 0.184, 0.187, 0.190, 0.192, 0.195, 0.198, 0.200, 0.203, - & 0.205, 0.208, 0.211, 0.213, 0.216, 0.218, 0.221, 0.224, 0.226, - & 0.229, 0.231, 0.234, 0.236, 0.239, 0.242, 0.244, 0.247, 0.249, - & 0.252, 0.254, 0.257, 0.259, 0.262, 0.264, 0.267, 0.269, 0.272, - & 0.275, 0.277, 0.280, 0.282, 0.285, 0.287, 0.289, 0.292, 0.294, - & 0.297, 0.299, 0.302, 0.304, 0.307, 0.309, 0.312, 0.314, 0.317, - & 0.319, 0.321, 0.324, 0.326, 0.329, 0.331, 0.334, 0.336, 0.338, - & 0.341, 0.343, 0.346, 0.348, 0.350, 0.353, 0.355, 0.357, 0.360, - & 0.362, 0.364, 0.367, 0.369, 0.372, 0.374, 0.376, 0.379, 0.381, - & 0.383, 0.386, 0.388, 0.390, 0.392, 0.395, 0.397, 0.399, 0.402, - & 0.404, 0.406, 0.409, 0.411, 0.413, 0.415, 0.418, 0.420, 0.422, - & 0.424, 0.427, 0.429, 0.431, 0.433, 0.436, 0.438, 0.440, 0.442, - & 0.445, 0.447, 0.449, 0.451, 0.453, 0.456, 0.458, 0.460, 0.462, - & 0.464, 0.467, 0.469, 0.471, 0.473, 0.475, 0.477, 0.480, 0.482, - & 0.484, 0.486, 0.488, 0.490, 0.492, 0.495, 0.497, 0.499, 0.501, - & 0.503, 0.505, 0.507, 0.509, 0.511, 0.514, 0.516, 0.518, 0.520, - & 0.522, 0.524, 0.526, 0.528, 0.530, 0.532, 0.534, 0.536, 0.539, - & 0.541, 0.543, 0.545, 0.547, 0.549, 0.551, 0.553, 0.555, 0.557, - & 0.559, 0.561, 0.563, 0.565, 0.567, 0.569, 0.571, 0.573, 0.575, - & 0.577, 0.579, 0.581, 0.583, 0.585, 0.587, 0.589, 0.591, 0.593, - & 0.595, 0.597, 0.599, 0.601, 0.603, 0.604, 0.606, 0.608, 0.610, - & 0.612, 0.614, 0.616, 0.618, 0.620, 0.622, 0.624, 0.626, 0.628, - & 0.629, 0.631, 0.633, 0.635, 0.637, 0.639, 0.641, 0.643, 0.645, - & 0.646, 0.648, 0.650, 0.652, 0.654, 0.656, 0.658, 0.659, 0.661, - & 0.663, 0.665, 0.667, 0.669, 0.671, 0.672, 0.674, 0.676, 0.678, - & 0.680, 0.681, 0.683, 0.685, 0.704, 0.722, 0.739, 0.756, 0.773, - & 0.790, 0.806, 0.822, 0.838, 0.853, 0.869, 0.884, 0.899, 0.913, - & 0.928, 0.942, 0.956, 0.970, 0.983, 0.996, 1.010, 1.023, 1.036, - & 1.048, 1.061, 1.073, 1.085, 1.097, 1.109, 1.121, 1.132, 1.144, - & 1.155, 1.166, 1.177, 1.188, 1.198, 1.209, 1.219, 1.230, 1.240, - & 1.250, 1.260, 1.270, 1.279, 1.289, 1.298, 1.308, 1.317, 1.326, - & 1.335, 1.344, 1.353, 1.362, 1.370, 1.379, 1.387, 1.396, 1.404, - & 1.412, 1.420, 1.428, 1.436, 1.444, 1.451, 1.459, 1.467, 1.474, - & 1.481, 1.489, 1.496, 1.503, 1.510, 1.517, 1.524, 1.531, 1.538, - & 1.545, 1.551, 1.558, 1.565, 1.571, 1.578, 1.584, 1.590, 1.596, - & 1.603, 1.609, 1.615, 1.621, 1.627, 1.632, 1.638, 1.644, 1.650, - & 1.655, 1.661, 1.667, 1.672, 1.678, 1.683, 1.688, 1.694, 1.699, - & 1.704, 1.709, 1.714, 1.719, 1.724, 1.729, 1.734, 1.739, 1.744, - & 1.749, 1.753, 1.758, 1.763, 1.767, 1.772, 1.776, 1.781, 1.785, - & 1.790, 1.794, 1.799, 1.803, 1.807, 1.811, 1.815, 1.820, 1.824, - & 1.828, 1.832, 1.836, 1.840, 1.844, 1.848, 1.852, 1.855, 1.859, - & 1.863, 1.867, 1.870, 1.874, 1.878, 1.881, 1.885, 1.888, 1.892, - & 1.895, 1.899, 1.902, 1.906, 1.909, 1.913, 1.916, 1.919, 1.922, - & 1.926, 1.929, 1.932 - & /) -! -! *** (H,Cl) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC11M_248 = (/ - &-0.046,-0.091,-0.110,-0.120,-0.127,-0.131,-0.133,-0.134,-0.134, - &-0.134,-0.132,-0.131,-0.128,-0.126,-0.123,-0.120,-0.116,-0.112, - &-0.108,-0.104,-0.099,-0.095,-0.090,-0.085,-0.080,-0.075,-0.070, - &-0.064,-0.059,-0.053,-0.047,-0.042,-0.036,-0.030,-0.024,-0.018, - &-0.011,-0.005, 0.001, 0.007, 0.014, 0.020, 0.026, 0.033, 0.039, - & 0.046, 0.052, 0.059, 0.065, 0.072, 0.079, 0.085, 0.092, 0.099, - & 0.105, 0.112, 0.119, 0.126, 0.132, 0.139, 0.146, 0.153, 0.160, - & 0.166, 0.173, 0.180, 0.187, 0.194, 0.201, 0.208, 0.215, 0.222, - & 0.229, 0.236, 0.243, 0.250, 0.257, 0.264, 0.272, 0.279, 0.286, - & 0.293, 0.301, 0.308, 0.316, 0.323, 0.330, 0.338, 0.346, 0.353, - & 0.361, 0.368, 0.376, 0.384, 0.392, 0.399, 0.407, 0.415, 0.423, - & 0.431, 0.439, 0.447, 0.455, 0.463, 0.471, 0.479, 0.487, 0.495, - & 0.503, 0.512, 0.520, 0.528, 0.536, 0.544, 0.553, 0.561, 0.569, - & 0.577, 0.586, 0.594, 0.602, 0.610, 0.619, 0.627, 0.635, 0.643, - & 0.652, 0.660, 0.668, 0.676, 0.685, 0.693, 0.701, 0.709, 0.718, - & 0.726, 0.734, 0.742, 0.750, 0.759, 0.767, 0.775, 0.783, 0.791, - & 0.799, 0.807, 0.815, 0.823, 0.832, 0.840, 0.848, 0.856, 0.864, - & 0.872, 0.880, 0.888, 0.896, 0.903, 0.911, 0.919, 0.927, 0.935, - & 0.943, 0.951, 0.959, 0.966, 0.974, 0.982, 0.990, 0.998, 1.005, - & 1.013, 1.021, 1.029, 1.036, 1.044, 1.052, 1.059, 1.067, 1.075, - & 1.082, 1.090, 1.097, 1.105, 1.112, 1.120, 1.128, 1.135, 1.143, - & 1.150, 1.157, 1.165, 1.172, 1.180, 1.187, 1.195, 1.202, 1.209, - & 1.217, 1.224, 1.231, 1.239, 1.246, 1.253, 1.260, 1.268, 1.275, - & 1.282, 1.289, 1.296, 1.303, 1.311, 1.318, 1.325, 1.332, 1.339, - & 1.346, 1.353, 1.360, 1.367, 1.374, 1.381, 1.388, 1.395, 1.402, - & 1.409, 1.416, 1.423, 1.430, 1.437, 1.444, 1.451, 1.457, 1.464, - & 1.471, 1.478, 1.485, 1.491, 1.498, 1.505, 1.512, 1.518, 1.525, - & 1.532, 1.538, 1.545, 1.552, 1.558, 1.565, 1.572, 1.578, 1.585, - & 1.591, 1.598, 1.604, 1.611, 1.617, 1.624, 1.630, 1.637, 1.643, - & 1.650, 1.656, 1.663, 1.669, 1.675, 1.682, 1.688, 1.695, 1.701, - & 1.707, 1.714, 1.720, 1.726, 1.732, 1.739, 1.745, 1.751, 1.757, - & 1.764, 1.770, 1.776, 1.782, 1.788, 1.795, 1.801, 1.807, 1.813, - & 1.819, 1.825, 1.831, 1.837, 1.843, 1.849, 1.855, 1.861, 1.867, - & 1.873, 1.879, 1.885, 1.891, 1.897, 1.903, 1.909, 1.915, 1.921, - & 1.927, 1.933, 1.939, 1.945, 1.950, 1.956, 1.962, 1.968, 1.974, - & 1.979, 1.985, 1.991, 1.997, 2.003, 2.008, 2.014, 2.020, 2.025, - & 2.031, 2.037, 2.042, 2.048, 2.054, 2.059, 2.065, 2.071, 2.076, - & 2.082, 2.087, 2.093, 2.099, 2.104, 2.110, 2.115, 2.121, 2.126, - & 2.132, 2.137, 2.143, 2.148, 2.154, 2.159, 2.165, 2.170, 2.175, - & 2.181, 2.186, 2.192, 2.197, 2.202, 2.208, 2.213, 2.219, 2.224, - & 2.229, 2.235, 2.240, 2.245, 2.250, 2.256, 2.261, 2.266, 2.271, - & 2.277, 2.282, 2.287, 2.292, 2.298, 2.303, 2.308, 2.313, 2.318, - & 2.323, 2.329, 2.334, 2.339, 2.344, 2.349, 2.354, 2.359, 2.364, - & 2.369, 2.375, 2.380, 2.385, 2.390, 2.395, 2.400, 2.405, 2.410, - & 2.415, 2.420, 2.425, 2.430, 2.483, 2.531, 2.579, 2.626, 2.672, - & 2.717, 2.762, 2.806, 2.849, 2.891, 2.933, 2.975, 3.015, 3.056, - & 3.095, 3.134, 3.173, 3.211, 3.248, 3.285, 3.322, 3.358, 3.393, - & 3.428, 3.463, 3.497, 3.531, 3.564, 3.597, 3.629, 3.662, 3.693, - & 3.725, 3.756, 3.786, 3.817, 3.847, 3.876, 3.906, 3.935, 3.963, - & 3.992, 4.020, 4.048, 4.075, 4.102, 4.129, 4.156, 4.182, 4.208, - & 4.234, 4.260, 4.285, 4.310, 4.335, 4.359, 4.384, 4.408, 4.432, - & 4.456, 4.479, 4.502, 4.525, 4.548, 4.571, 4.593, 4.615, 4.637, - & 4.659, 4.681, 4.702, 4.724, 4.745, 4.766, 4.786, 4.807, 4.827, - & 4.847, 4.868, 4.887, 4.907, 4.927, 4.946, 4.965, 4.984, 5.003, - & 5.022, 5.041, 5.059, 5.078, 5.096, 5.114, 5.132, 5.150, 5.168, - & 5.185, 5.203, 5.220, 5.237, 5.254, 5.271, 5.288, 5.304, 5.321, - & 5.337, 5.354, 5.370, 5.386, 5.402, 5.418, 5.434, 5.449, 5.465, - & 5.480, 5.496, 5.511, 5.526, 5.541, 5.556, 5.571, 5.586, 5.600, - & 5.615, 5.629, 5.644, 5.658, 5.672, 5.686, 5.700, 5.714, 5.728, - & 5.742, 5.755, 5.769, 5.782, 5.796, 5.809, 5.822, 5.835, 5.848, - & 5.861, 5.874, 5.887, 5.900, 5.913, 5.925, 5.938, 5.950, 5.963, - & 5.975, 5.987, 5.999, 6.011, 6.023, 6.035, 6.047, 6.059, 6.071, - & 6.083, 6.094, 6.106 - & /) -! -! *** NaHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC12M_248 = (/ - &-0.047,-0.097,-0.120,-0.135,-0.146,-0.154,-0.160,-0.165,-0.170, - &-0.173,-0.176,-0.178,-0.179,-0.181,-0.181,-0.182,-0.182,-0.182, - &-0.182,-0.182,-0.181,-0.180,-0.179,-0.178,-0.176,-0.175,-0.173, - &-0.172,-0.170,-0.168,-0.165,-0.163,-0.161,-0.158,-0.156,-0.153, - &-0.150,-0.148,-0.145,-0.142,-0.139,-0.136,-0.132,-0.129,-0.126, - &-0.123,-0.119,-0.116,-0.112,-0.109,-0.105,-0.101,-0.098,-0.094, - &-0.090,-0.086,-0.082,-0.078,-0.074,-0.070,-0.066,-0.062,-0.058, - &-0.054,-0.050,-0.046,-0.041,-0.037,-0.033,-0.028,-0.024,-0.020, - &-0.015,-0.011,-0.006,-0.002, 0.003, 0.007, 0.012, 0.017, 0.021, - & 0.026, 0.031, 0.036, 0.041, 0.045, 0.050, 0.055, 0.060, 0.065, - & 0.070, 0.075, 0.080, 0.086, 0.091, 0.096, 0.101, 0.106, 0.112, - & 0.117, 0.122, 0.128, 0.133, 0.138, 0.144, 0.149, 0.154, 0.160, - & 0.165, 0.171, 0.176, 0.182, 0.187, 0.193, 0.198, 0.204, 0.209, - & 0.215, 0.221, 0.226, 0.232, 0.237, 0.243, 0.248, 0.254, 0.259, - & 0.265, 0.271, 0.276, 0.282, 0.287, 0.293, 0.298, 0.304, 0.309, - & 0.315, 0.320, 0.326, 0.331, 0.337, 0.342, 0.348, 0.353, 0.358, - & 0.364, 0.369, 0.375, 0.380, 0.386, 0.391, 0.396, 0.402, 0.407, - & 0.412, 0.418, 0.423, 0.428, 0.434, 0.439, 0.444, 0.449, 0.455, - & 0.460, 0.465, 0.470, 0.476, 0.481, 0.486, 0.491, 0.496, 0.502, - & 0.507, 0.512, 0.517, 0.522, 0.527, 0.532, 0.537, 0.542, 0.548, - & 0.553, 0.558, 0.563, 0.568, 0.573, 0.578, 0.583, 0.588, 0.593, - & 0.598, 0.603, 0.607, 0.612, 0.617, 0.622, 0.627, 0.632, 0.637, - & 0.642, 0.647, 0.651, 0.656, 0.661, 0.666, 0.671, 0.675, 0.680, - & 0.685, 0.690, 0.694, 0.699, 0.704, 0.709, 0.713, 0.718, 0.723, - & 0.727, 0.732, 0.737, 0.741, 0.746, 0.751, 0.755, 0.760, 0.764, - & 0.769, 0.773, 0.778, 0.783, 0.787, 0.792, 0.796, 0.801, 0.805, - & 0.810, 0.814, 0.819, 0.823, 0.828, 0.832, 0.836, 0.841, 0.845, - & 0.850, 0.854, 0.858, 0.863, 0.867, 0.872, 0.876, 0.880, 0.885, - & 0.889, 0.893, 0.898, 0.902, 0.906, 0.910, 0.915, 0.919, 0.923, - & 0.928, 0.932, 0.936, 0.940, 0.944, 0.949, 0.953, 0.957, 0.961, - & 0.965, 0.969, 0.974, 0.978, 0.982, 0.986, 0.990, 0.994, 0.998, - & 1.002, 1.007, 1.011, 1.015, 1.019, 1.023, 1.027, 1.031, 1.035, - & 1.039, 1.043, 1.047, 1.051, 1.055, 1.059, 1.063, 1.067, 1.071, - & 1.075, 1.079, 1.083, 1.087, 1.091, 1.094, 1.098, 1.102, 1.106, - & 1.110, 1.114, 1.118, 1.122, 1.125, 1.129, 1.133, 1.137, 1.141, - & 1.145, 1.148, 1.152, 1.156, 1.160, 1.164, 1.167, 1.171, 1.175, - & 1.179, 1.182, 1.186, 1.190, 1.194, 1.197, 1.201, 1.205, 1.208, - & 1.212, 1.216, 1.219, 1.223, 1.227, 1.230, 1.234, 1.238, 1.241, - & 1.245, 1.249, 1.252, 1.256, 1.259, 1.263, 1.267, 1.270, 1.274, - & 1.277, 1.281, 1.284, 1.288, 1.292, 1.295, 1.299, 1.302, 1.306, - & 1.309, 1.313, 1.316, 1.320, 1.323, 1.327, 1.330, 1.334, 1.337, - & 1.341, 1.344, 1.347, 1.351, 1.354, 1.358, 1.361, 1.365, 1.368, - & 1.371, 1.375, 1.378, 1.382, 1.385, 1.388, 1.392, 1.395, 1.398, - & 1.402, 1.405, 1.408, 1.412, 1.415, 1.418, 1.422, 1.425, 1.428, - & 1.432, 1.435, 1.438, 1.441, 1.477, 1.509, 1.540, 1.571, 1.601, - & 1.631, 1.661, 1.690, 1.718, 1.747, 1.774, 1.802, 1.829, 1.855, - & 1.881, 1.907, 1.933, 1.958, 1.983, 2.007, 2.031, 2.055, 2.079, - & 2.102, 2.125, 2.147, 2.170, 2.192, 2.213, 2.235, 2.256, 2.277, - & 2.298, 2.318, 2.339, 2.359, 2.378, 2.398, 2.417, 2.436, 2.455, - & 2.474, 2.493, 2.511, 2.529, 2.547, 2.565, 2.582, 2.599, 2.617, - & 2.634, 2.650, 2.667, 2.684, 2.700, 2.716, 2.732, 2.748, 2.763, - & 2.779, 2.794, 2.810, 2.825, 2.840, 2.854, 2.869, 2.884, 2.898, - & 2.912, 2.926, 2.940, 2.954, 2.968, 2.982, 2.995, 3.008, 3.022, - & 3.035, 3.048, 3.061, 3.074, 3.086, 3.099, 3.111, 3.124, 3.136, - & 3.148, 3.160, 3.172, 3.184, 3.196, 3.208, 3.219, 3.231, 3.242, - & 3.254, 3.265, 3.276, 3.287, 3.298, 3.309, 3.320, 3.330, 3.341, - & 3.352, 3.362, 3.373, 3.383, 3.393, 3.403, 3.413, 3.423, 3.433, - & 3.443, 3.453, 3.463, 3.472, 3.482, 3.491, 3.501, 3.510, 3.520, - & 3.529, 3.538, 3.547, 3.556, 3.565, 3.574, 3.583, 3.592, 3.601, - & 3.609, 3.618, 3.626, 3.635, 3.643, 3.652, 3.660, 3.668, 3.677, - & 3.685, 3.693, 3.701, 3.709, 3.717, 3.725, 3.733, 3.741, 3.748, - & 3.756, 3.764, 3.771, 3.779, 3.786, 3.794, 3.801, 3.809, 3.816, - & 3.823, 3.830, 3.838 - & /) -! -! *** (NH4)3H(SO4)2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC13M_248 = (/ - &-0.078,-0.169,-0.215,-0.247,-0.272,-0.293,-0.311,-0.326,-0.340, - &-0.353,-0.364,-0.375,-0.384,-0.393,-0.402,-0.410,-0.417,-0.424, - &-0.431,-0.437,-0.443,-0.448,-0.454,-0.459,-0.464,-0.469,-0.473, - &-0.477,-0.482,-0.486,-0.489,-0.493,-0.497,-0.500,-0.503,-0.506, - &-0.509,-0.512,-0.515,-0.518,-0.520,-0.523,-0.525,-0.528,-0.530, - &-0.532,-0.534,-0.536,-0.538,-0.540,-0.542,-0.544,-0.546,-0.547, - &-0.549,-0.550,-0.552,-0.553,-0.555,-0.556,-0.557,-0.559,-0.560, - &-0.561,-0.562,-0.563,-0.564,-0.565,-0.566,-0.567,-0.568,-0.569, - &-0.570,-0.571,-0.572,-0.572,-0.573,-0.574,-0.575,-0.575,-0.576, - &-0.576,-0.577,-0.578,-0.578,-0.579,-0.579,-0.580,-0.580,-0.580, - &-0.581,-0.581,-0.582,-0.582,-0.582,-0.582,-0.583,-0.583,-0.583, - &-0.583,-0.584,-0.584,-0.584,-0.584,-0.584,-0.584,-0.584,-0.585, - &-0.585,-0.585,-0.585,-0.585,-0.585,-0.585,-0.585,-0.585,-0.585, - &-0.585,-0.585,-0.585,-0.585,-0.585,-0.585,-0.585,-0.585,-0.585, - &-0.585,-0.584,-0.584,-0.584,-0.584,-0.584,-0.584,-0.584,-0.584, - &-0.584,-0.584,-0.583,-0.583,-0.583,-0.583,-0.583,-0.583,-0.583, - &-0.582,-0.582,-0.582,-0.582,-0.582,-0.582,-0.582,-0.581,-0.581, - &-0.581,-0.581,-0.581,-0.581,-0.580,-0.580,-0.580,-0.580,-0.580, - &-0.579,-0.579,-0.579,-0.579,-0.579,-0.579,-0.578,-0.578,-0.578, - &-0.578,-0.578,-0.577,-0.577,-0.577,-0.577,-0.577,-0.577,-0.576, - &-0.576,-0.576,-0.576,-0.576,-0.575,-0.575,-0.575,-0.575,-0.575, - &-0.574,-0.574,-0.574,-0.574,-0.574,-0.574,-0.573,-0.573,-0.573, - &-0.573,-0.573,-0.572,-0.572,-0.572,-0.572,-0.572,-0.571,-0.571, - &-0.571,-0.571,-0.571,-0.571,-0.570,-0.570,-0.570,-0.570,-0.570, - &-0.569,-0.569,-0.569,-0.569,-0.569,-0.569,-0.568,-0.568,-0.568, - &-0.568,-0.568,-0.567,-0.567,-0.567,-0.567,-0.567,-0.567,-0.566, - &-0.566,-0.566,-0.566,-0.566,-0.566,-0.565,-0.565,-0.565,-0.565, - &-0.565,-0.565,-0.564,-0.564,-0.564,-0.564,-0.564,-0.564,-0.563, - &-0.563,-0.563,-0.563,-0.563,-0.563,-0.562,-0.562,-0.562,-0.562, - &-0.562,-0.562,-0.561,-0.561,-0.561,-0.561,-0.561,-0.561,-0.561, - &-0.560,-0.560,-0.560,-0.560,-0.560,-0.560,-0.560,-0.559,-0.559, - &-0.559,-0.559,-0.559,-0.559,-0.559,-0.558,-0.558,-0.558,-0.558, - &-0.558,-0.558,-0.558,-0.557,-0.557,-0.557,-0.557,-0.557,-0.557, - &-0.557,-0.556,-0.556,-0.556,-0.556,-0.556,-0.556,-0.556,-0.556, - &-0.555,-0.555,-0.555,-0.555,-0.555,-0.555,-0.555,-0.555,-0.554, - &-0.554,-0.554,-0.554,-0.554,-0.554,-0.554,-0.554,-0.554,-0.553, - &-0.553,-0.553,-0.553,-0.553,-0.553,-0.553,-0.553,-0.553,-0.552, - &-0.552,-0.552,-0.552,-0.552,-0.552,-0.552,-0.552,-0.552,-0.552, - &-0.551,-0.551,-0.551,-0.551,-0.551,-0.551,-0.551,-0.551,-0.551, - &-0.551,-0.550,-0.550,-0.550,-0.550,-0.550,-0.550,-0.550,-0.550, - &-0.550,-0.550,-0.550,-0.549,-0.549,-0.549,-0.549,-0.549,-0.549, - &-0.549,-0.549,-0.549,-0.549,-0.549,-0.549,-0.549,-0.548,-0.548, - &-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548, - &-0.548,-0.548,-0.547,-0.547,-0.547,-0.547,-0.547,-0.547,-0.547, - &-0.547,-0.547,-0.547,-0.547,-0.546,-0.546,-0.545,-0.545,-0.544, - &-0.544,-0.544,-0.544,-0.544,-0.544,-0.544,-0.544,-0.544,-0.544, - &-0.544,-0.544,-0.545,-0.545,-0.545,-0.546,-0.546,-0.547,-0.547, - &-0.548,-0.548,-0.549,-0.550,-0.550,-0.551,-0.552,-0.553,-0.554, - &-0.555,-0.556,-0.557,-0.558,-0.559,-0.560,-0.561,-0.562,-0.563, - &-0.564,-0.566,-0.567,-0.568,-0.569,-0.571,-0.572,-0.573,-0.575, - &-0.576,-0.578,-0.579,-0.581,-0.582,-0.584,-0.586,-0.587,-0.589, - &-0.590,-0.592,-0.594,-0.595,-0.597,-0.599,-0.601,-0.603,-0.604, - &-0.606,-0.608,-0.610,-0.612,-0.614,-0.616,-0.618,-0.620,-0.622, - &-0.624,-0.626,-0.628,-0.630,-0.632,-0.634,-0.636,-0.638,-0.640, - &-0.642,-0.644,-0.647,-0.649,-0.651,-0.653,-0.655,-0.658,-0.660, - &-0.662,-0.664,-0.667,-0.669,-0.671,-0.674,-0.676,-0.678,-0.681, - &-0.683,-0.686,-0.688,-0.690,-0.693,-0.695,-0.698,-0.700,-0.703, - &-0.705,-0.708,-0.710,-0.713,-0.715,-0.718,-0.720,-0.723,-0.725, - &-0.728,-0.731,-0.733,-0.736,-0.738,-0.741,-0.744,-0.746,-0.749, - &-0.752,-0.754,-0.757,-0.760,-0.762,-0.765,-0.768,-0.770,-0.773, - &-0.776,-0.779,-0.781,-0.784,-0.787,-0.790,-0.793,-0.795,-0.798, - &-0.801,-0.804,-0.807,-0.809,-0.812,-0.815,-0.818,-0.821,-0.824, - &-0.827,-0.829,-0.832 - & /) -! -! *** CASO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC14M_248 = (/ - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000 - & /) -! -! *** CANO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC15M_248 = (/ - &-0.096,-0.206,-0.258,-0.293,-0.321,-0.342,-0.360,-0.376,-0.389, - &-0.401,-0.411,-0.420,-0.429,-0.436,-0.443,-0.449,-0.455,-0.460, - &-0.465,-0.469,-0.473,-0.477,-0.481,-0.484,-0.487,-0.490,-0.493, - &-0.495,-0.497,-0.500,-0.502,-0.504,-0.505,-0.507,-0.509,-0.510, - &-0.512,-0.513,-0.514,-0.515,-0.517,-0.518,-0.519,-0.520,-0.520, - &-0.521,-0.522,-0.523,-0.524,-0.524,-0.525,-0.526,-0.526,-0.527, - &-0.527,-0.528,-0.528,-0.529,-0.529,-0.530,-0.530,-0.530,-0.531, - &-0.531,-0.531,-0.531,-0.532,-0.532,-0.532,-0.532,-0.532,-0.532, - &-0.533,-0.533,-0.533,-0.533,-0.533,-0.533,-0.533,-0.533,-0.533, - &-0.532,-0.532,-0.532,-0.532,-0.532,-0.532,-0.531,-0.531,-0.531, - &-0.530,-0.530,-0.530,-0.529,-0.529,-0.529,-0.528,-0.528,-0.527, - &-0.527,-0.526,-0.526,-0.525,-0.525,-0.524,-0.524,-0.523,-0.523, - &-0.522,-0.521,-0.521,-0.520,-0.519,-0.519,-0.518,-0.517,-0.517, - &-0.516,-0.515,-0.515,-0.514,-0.513,-0.512,-0.512,-0.511,-0.510, - &-0.509,-0.509,-0.508,-0.507,-0.506,-0.506,-0.505,-0.504,-0.503, - &-0.503,-0.502,-0.501,-0.500,-0.499,-0.499,-0.498,-0.497,-0.496, - &-0.495,-0.495,-0.494,-0.493,-0.492,-0.491,-0.491,-0.490,-0.489, - &-0.488,-0.487,-0.486,-0.486,-0.485,-0.484,-0.483,-0.482,-0.482, - &-0.481,-0.480,-0.479,-0.478,-0.477,-0.477,-0.476,-0.475,-0.474, - &-0.473,-0.472,-0.472,-0.471,-0.470,-0.469,-0.468,-0.468,-0.467, - &-0.466,-0.465,-0.464,-0.463,-0.463,-0.462,-0.461,-0.460,-0.459, - &-0.459,-0.458,-0.457,-0.456,-0.455,-0.455,-0.454,-0.453,-0.452, - &-0.451,-0.450,-0.450,-0.449,-0.448,-0.447,-0.446,-0.446,-0.445, - &-0.444,-0.443,-0.442,-0.442,-0.441,-0.440,-0.439,-0.438,-0.438, - &-0.437,-0.436,-0.435,-0.435,-0.434,-0.433,-0.432,-0.431,-0.431, - &-0.430,-0.429,-0.428,-0.427,-0.427,-0.426,-0.425,-0.424,-0.424, - &-0.423,-0.422,-0.421,-0.421,-0.420,-0.419,-0.418,-0.417,-0.417, - &-0.416,-0.415,-0.414,-0.414,-0.413,-0.412,-0.411,-0.411,-0.410, - &-0.409,-0.408,-0.408,-0.407,-0.406,-0.405,-0.405,-0.404,-0.403, - &-0.402,-0.402,-0.401,-0.400,-0.400,-0.399,-0.398,-0.397,-0.397, - &-0.396,-0.395,-0.394,-0.394,-0.393,-0.392,-0.392,-0.391,-0.390, - &-0.389,-0.389,-0.388,-0.387,-0.387,-0.386,-0.385,-0.385,-0.384, - &-0.383,-0.382,-0.382,-0.381,-0.380,-0.380,-0.379,-0.378,-0.378, - &-0.377,-0.376,-0.376,-0.375,-0.374,-0.374,-0.373,-0.372,-0.371, - &-0.371,-0.370,-0.369,-0.369,-0.368,-0.367,-0.367,-0.366,-0.365, - &-0.365,-0.364,-0.364,-0.363,-0.362,-0.362,-0.361,-0.360,-0.360, - &-0.359,-0.358,-0.358,-0.357,-0.356,-0.356,-0.355,-0.354,-0.354, - &-0.353,-0.353,-0.352,-0.351,-0.351,-0.350,-0.349,-0.349,-0.348, - &-0.348,-0.347,-0.346,-0.346,-0.345,-0.344,-0.344,-0.343,-0.343, - &-0.342,-0.341,-0.341,-0.340,-0.340,-0.339,-0.338,-0.338,-0.337, - &-0.337,-0.336,-0.335,-0.335,-0.334,-0.334,-0.333,-0.332,-0.332, - &-0.331,-0.331,-0.330,-0.330,-0.329,-0.328,-0.328,-0.327,-0.327, - &-0.326,-0.326,-0.325,-0.324,-0.324,-0.323,-0.323,-0.322,-0.322, - &-0.321,-0.320,-0.320,-0.319,-0.319,-0.318,-0.318,-0.317,-0.317, - &-0.316,-0.316,-0.315,-0.314,-0.309,-0.303,-0.298,-0.293,-0.288, - &-0.284,-0.279,-0.275,-0.270,-0.266,-0.262,-0.258,-0.254,-0.250, - &-0.246,-0.242,-0.239,-0.235,-0.232,-0.229,-0.226,-0.223,-0.219, - &-0.217,-0.214,-0.211,-0.208,-0.206,-0.203,-0.201,-0.198,-0.196, - &-0.194,-0.192,-0.190,-0.188,-0.186,-0.184,-0.182,-0.180,-0.179, - &-0.177,-0.175,-0.174,-0.173,-0.171,-0.170,-0.169,-0.167,-0.166, - &-0.165,-0.164,-0.163,-0.162,-0.161,-0.161,-0.160,-0.159,-0.158, - &-0.158,-0.157,-0.157,-0.156,-0.156,-0.155,-0.155,-0.155,-0.154, - &-0.154,-0.154,-0.154,-0.154,-0.153,-0.153,-0.153,-0.153,-0.153, - &-0.154,-0.154,-0.154,-0.154,-0.154,-0.155,-0.155,-0.155,-0.156, - &-0.156,-0.157,-0.157,-0.158,-0.158,-0.159,-0.159,-0.160,-0.161, - &-0.161,-0.162,-0.163,-0.164,-0.164,-0.165,-0.166,-0.167,-0.168, - &-0.169,-0.170,-0.171,-0.172,-0.173,-0.174,-0.175,-0.176,-0.177, - &-0.179,-0.180,-0.181,-0.182,-0.183,-0.185,-0.186,-0.187,-0.189, - &-0.190,-0.192,-0.193,-0.194,-0.196,-0.197,-0.199,-0.200,-0.202, - &-0.203,-0.205,-0.207,-0.208,-0.210,-0.212,-0.213,-0.215,-0.217, - &-0.218,-0.220,-0.222,-0.224,-0.225,-0.227,-0.229,-0.231,-0.233, - &-0.235,-0.237,-0.239,-0.240,-0.242,-0.244,-0.246,-0.248,-0.250, - &-0.252,-0.254,-0.256 - & /) -! -! *** CACL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC16M_248 = (/ - &-0.095,-0.197,-0.242,-0.272,-0.293,-0.309,-0.321,-0.331,-0.339, - &-0.345,-0.351,-0.355,-0.358,-0.360,-0.362,-0.363,-0.363,-0.364, - &-0.364,-0.363,-0.362,-0.361,-0.360,-0.358,-0.357,-0.355,-0.353, - &-0.350,-0.348,-0.345,-0.343,-0.340,-0.337,-0.334,-0.331,-0.328, - &-0.325,-0.322,-0.319,-0.316,-0.312,-0.309,-0.306,-0.302,-0.299, - &-0.295,-0.292,-0.289,-0.285,-0.282,-0.278,-0.274,-0.271,-0.267, - &-0.264,-0.260,-0.257,-0.253,-0.249,-0.246,-0.242,-0.239,-0.235, - &-0.231,-0.228,-0.224,-0.220,-0.217,-0.213,-0.209,-0.205,-0.202, - &-0.198,-0.194,-0.190,-0.186,-0.182,-0.178,-0.175,-0.171,-0.167, - &-0.163,-0.158,-0.154,-0.150,-0.146,-0.142,-0.138,-0.134,-0.129, - &-0.125,-0.121,-0.116,-0.112,-0.107,-0.103,-0.099,-0.094,-0.090, - &-0.085,-0.080,-0.076,-0.071,-0.066,-0.062,-0.057,-0.052,-0.048, - &-0.043,-0.038,-0.033,-0.028,-0.024,-0.019,-0.014,-0.009,-0.004, - & 0.001, 0.006, 0.010, 0.015, 0.020, 0.025, 0.030, 0.035, 0.040, - & 0.045, 0.050, 0.055, 0.060, 0.064, 0.069, 0.074, 0.079, 0.084, - & 0.089, 0.094, 0.099, 0.104, 0.109, 0.114, 0.119, 0.123, 0.128, - & 0.133, 0.138, 0.143, 0.148, 0.153, 0.158, 0.162, 0.167, 0.172, - & 0.177, 0.182, 0.187, 0.191, 0.196, 0.201, 0.206, 0.211, 0.215, - & 0.220, 0.225, 0.230, 0.235, 0.239, 0.244, 0.249, 0.254, 0.258, - & 0.263, 0.268, 0.272, 0.277, 0.282, 0.287, 0.291, 0.296, 0.301, - & 0.305, 0.310, 0.315, 0.319, 0.324, 0.329, 0.333, 0.338, 0.342, - & 0.347, 0.352, 0.356, 0.361, 0.365, 0.370, 0.375, 0.379, 0.384, - & 0.388, 0.393, 0.397, 0.402, 0.406, 0.411, 0.415, 0.420, 0.424, - & 0.429, 0.433, 0.438, 0.442, 0.447, 0.451, 0.456, 0.460, 0.464, - & 0.469, 0.473, 0.478, 0.482, 0.487, 0.491, 0.495, 0.500, 0.504, - & 0.508, 0.513, 0.517, 0.521, 0.526, 0.530, 0.534, 0.539, 0.543, - & 0.547, 0.552, 0.556, 0.560, 0.564, 0.569, 0.573, 0.577, 0.581, - & 0.586, 0.590, 0.594, 0.598, 0.602, 0.607, 0.611, 0.615, 0.619, - & 0.623, 0.627, 0.632, 0.636, 0.640, 0.644, 0.648, 0.652, 0.656, - & 0.660, 0.664, 0.669, 0.673, 0.677, 0.681, 0.685, 0.689, 0.693, - & 0.697, 0.701, 0.705, 0.709, 0.713, 0.717, 0.721, 0.725, 0.729, - & 0.733, 0.737, 0.741, 0.745, 0.749, 0.753, 0.757, 0.761, 0.765, - & 0.768, 0.772, 0.776, 0.780, 0.784, 0.788, 0.792, 0.796, 0.799, - & 0.803, 0.807, 0.811, 0.815, 0.819, 0.823, 0.826, 0.830, 0.834, - & 0.838, 0.842, 0.845, 0.849, 0.853, 0.857, 0.860, 0.864, 0.868, - & 0.872, 0.875, 0.879, 0.883, 0.886, 0.890, 0.894, 0.898, 0.901, - & 0.905, 0.909, 0.912, 0.916, 0.920, 0.923, 0.927, 0.930, 0.934, - & 0.938, 0.941, 0.945, 0.949, 0.952, 0.956, 0.959, 0.963, 0.966, - & 0.970, 0.974, 0.977, 0.981, 0.984, 0.988, 0.991, 0.995, 0.998, - & 1.002, 1.005, 1.009, 1.012, 1.016, 1.019, 1.023, 1.026, 1.030, - & 1.033, 1.037, 1.040, 1.044, 1.047, 1.050, 1.054, 1.057, 1.061, - & 1.064, 1.067, 1.071, 1.074, 1.078, 1.081, 1.084, 1.088, 1.091, - & 1.094, 1.098, 1.101, 1.105, 1.108, 1.111, 1.115, 1.118, 1.121, - & 1.124, 1.128, 1.131, 1.134, 1.138, 1.141, 1.144, 1.147, 1.151, - & 1.154, 1.157, 1.160, 1.164, 1.198, 1.230, 1.261, 1.292, 1.322, - & 1.351, 1.380, 1.409, 1.437, 1.465, 1.492, 1.519, 1.546, 1.572, - & 1.598, 1.623, 1.648, 1.673, 1.697, 1.721, 1.745, 1.768, 1.791, - & 1.814, 1.836, 1.858, 1.880, 1.901, 1.922, 1.943, 1.964, 1.984, - & 2.004, 2.024, 2.044, 2.063, 2.082, 2.101, 2.119, 2.138, 2.156, - & 2.174, 2.191, 2.209, 2.226, 2.243, 2.260, 2.276, 2.293, 2.309, - & 2.325, 2.341, 2.357, 2.372, 2.387, 2.403, 2.418, 2.432, 2.447, - & 2.461, 2.476, 2.490, 2.504, 2.518, 2.531, 2.545, 2.558, 2.571, - & 2.585, 2.597, 2.610, 2.623, 2.635, 2.648, 2.660, 2.672, 2.684, - & 2.696, 2.708, 2.720, 2.731, 2.742, 2.754, 2.765, 2.776, 2.787, - & 2.798, 2.808, 2.819, 2.830, 2.840, 2.850, 2.860, 2.871, 2.881, - & 2.890, 2.900, 2.910, 2.920, 2.929, 2.938, 2.948, 2.957, 2.966, - & 2.975, 2.984, 2.993, 3.002, 3.011, 3.019, 3.028, 3.036, 3.045, - & 3.053, 3.061, 3.069, 3.077, 3.085, 3.093, 3.101, 3.109, 3.117, - & 3.124, 3.132, 3.139, 3.147, 3.154, 3.161, 3.168, 3.176, 3.183, - & 3.190, 3.197, 3.203, 3.210, 3.217, 3.224, 3.230, 3.237, 3.243, - & 3.250, 3.256, 3.263, 3.269, 3.275, 3.281, 3.287, 3.293, 3.299, - & 3.305, 3.311, 3.317, 3.323, 3.329, 3.334, 3.340, 3.345, 3.351, - & 3.356, 3.362, 3.367 - & /) -! -! *** K2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC17M_248 = (/ - &-0.098,-0.214,-0.273,-0.315,-0.347,-0.375,-0.399,-0.419,-0.438, - &-0.455,-0.470,-0.485,-0.498,-0.511,-0.522,-0.533,-0.544,-0.554, - &-0.563,-0.572,-0.581,-0.590,-0.598,-0.605,-0.613,-0.620,-0.627, - &-0.634,-0.641,-0.647,-0.653,-0.660,-0.666,-0.671,-0.677,-0.683, - &-0.688,-0.693,-0.698,-0.703,-0.708,-0.713,-0.718,-0.723,-0.727, - &-0.732,-0.736,-0.741,-0.745,-0.749,-0.753,-0.757,-0.762,-0.765, - &-0.769,-0.773,-0.777,-0.781,-0.784,-0.788,-0.792,-0.795,-0.799, - &-0.802,-0.806,-0.809,-0.812,-0.816,-0.819,-0.822,-0.825,-0.829, - &-0.832,-0.835,-0.838,-0.841,-0.844,-0.847,-0.850,-0.853,-0.856, - &-0.859,-0.862,-0.865,-0.867,-0.870,-0.873,-0.876,-0.879,-0.881, - &-0.884,-0.887,-0.890,-0.892,-0.895,-0.898,-0.900,-0.903,-0.905, - &-0.908,-0.911,-0.913,-0.916,-0.918,-0.921,-0.923,-0.926,-0.928, - &-0.931,-0.933,-0.936,-0.938,-0.940,-0.943,-0.945,-0.948,-0.950, - &-0.952,-0.955,-0.957,-0.959,-0.962,-0.964,-0.966,-0.969,-0.971, - &-0.973,-0.975,-0.978,-0.980,-0.982,-0.984,-0.986,-0.989,-0.991, - &-0.993,-0.995,-0.997,-0.999,-1.002,-1.004,-1.006,-1.008,-1.010, - &-1.012,-1.014,-1.016,-1.018,-1.020,-1.022,-1.024,-1.026,-1.028, - &-1.030,-1.032,-1.034,-1.036,-1.038,-1.040,-1.042,-1.044,-1.046, - &-1.048,-1.050,-1.052,-1.054,-1.056,-1.058,-1.060,-1.062,-1.064, - &-1.066,-1.067,-1.069,-1.071,-1.073,-1.075,-1.077,-1.079,-1.080, - &-1.082,-1.084,-1.086,-1.088,-1.090,-1.091,-1.093,-1.095,-1.097, - &-1.099,-1.100,-1.102,-1.104,-1.106,-1.107,-1.109,-1.111,-1.113, - &-1.114,-1.116,-1.118,-1.120,-1.121,-1.123,-1.125,-1.127,-1.128, - &-1.130,-1.132,-1.133,-1.135,-1.137,-1.138,-1.140,-1.142,-1.143, - &-1.145,-1.147,-1.148,-1.150,-1.152,-1.153,-1.155,-1.157,-1.158, - &-1.160,-1.162,-1.163,-1.165,-1.166,-1.168,-1.170,-1.171,-1.173, - &-1.174,-1.176,-1.178,-1.179,-1.181,-1.182,-1.184,-1.185,-1.187, - &-1.189,-1.190,-1.192,-1.193,-1.195,-1.196,-1.198,-1.199,-1.201, - &-1.203,-1.204,-1.206,-1.207,-1.209,-1.210,-1.212,-1.213,-1.215, - &-1.216,-1.218,-1.219,-1.221,-1.222,-1.224,-1.225,-1.227,-1.228, - &-1.230,-1.231,-1.233,-1.234,-1.236,-1.237,-1.238,-1.240,-1.241, - &-1.243,-1.244,-1.246,-1.247,-1.249,-1.250,-1.252,-1.253,-1.254, - &-1.256,-1.257,-1.259,-1.260,-1.262,-1.263,-1.264,-1.266,-1.267, - &-1.269,-1.270,-1.271,-1.273,-1.274,-1.276,-1.277,-1.278,-1.280, - &-1.281,-1.283,-1.284,-1.285,-1.287,-1.288,-1.290,-1.291,-1.292, - &-1.294,-1.295,-1.296,-1.298,-1.299,-1.301,-1.302,-1.303,-1.305, - &-1.306,-1.307,-1.309,-1.310,-1.311,-1.313,-1.314,-1.315,-1.317, - &-1.318,-1.319,-1.321,-1.322,-1.323,-1.325,-1.326,-1.327,-1.329, - &-1.330,-1.331,-1.333,-1.334,-1.335,-1.337,-1.338,-1.339,-1.341, - &-1.342,-1.343,-1.344,-1.346,-1.347,-1.348,-1.350,-1.351,-1.352, - &-1.354,-1.355,-1.356,-1.357,-1.359,-1.360,-1.361,-1.363,-1.364, - &-1.365,-1.366,-1.368,-1.369,-1.370,-1.371,-1.373,-1.374,-1.375, - &-1.376,-1.378,-1.379,-1.380,-1.381,-1.383,-1.384,-1.385,-1.387, - &-1.388,-1.389,-1.390,-1.391,-1.393,-1.394,-1.395,-1.396,-1.398, - &-1.399,-1.400,-1.401,-1.403,-1.416,-1.428,-1.440,-1.452,-1.463, - &-1.475,-1.487,-1.498,-1.509,-1.520,-1.532,-1.543,-1.554,-1.564, - &-1.575,-1.586,-1.596,-1.607,-1.617,-1.628,-1.638,-1.648,-1.659, - &-1.669,-1.679,-1.689,-1.699,-1.709,-1.719,-1.729,-1.738,-1.748, - &-1.758,-1.767,-1.777,-1.786,-1.796,-1.805,-1.815,-1.824,-1.833, - &-1.843,-1.852,-1.861,-1.870,-1.879,-1.888,-1.897,-1.906,-1.915, - &-1.924,-1.933,-1.942,-1.951,-1.960,-1.969,-1.977,-1.986,-1.995, - &-2.004,-2.012,-2.021,-2.029,-2.038,-2.047,-2.055,-2.064,-2.072, - &-2.081,-2.089,-2.097,-2.106,-2.114,-2.123,-2.131,-2.139,-2.147, - &-2.156,-2.164,-2.172,-2.180,-2.189,-2.197,-2.205,-2.213,-2.221, - &-2.229,-2.237,-2.245,-2.253,-2.261,-2.269,-2.277,-2.285,-2.293, - &-2.301,-2.309,-2.317,-2.325,-2.333,-2.341,-2.349,-2.356,-2.364, - &-2.372,-2.380,-2.388,-2.395,-2.403,-2.411,-2.419,-2.426,-2.434, - &-2.442,-2.449,-2.457,-2.465,-2.472,-2.480,-2.488,-2.495,-2.503, - &-2.510,-2.518,-2.525,-2.533,-2.541,-2.548,-2.556,-2.563,-2.571, - &-2.578,-2.586,-2.593,-2.600,-2.608,-2.615,-2.623,-2.630,-2.638, - &-2.645,-2.652,-2.660,-2.667,-2.674,-2.682,-2.689,-2.696,-2.704, - &-2.711,-2.718,-2.726,-2.733,-2.740,-2.747,-2.755,-2.762,-2.769, - &-2.776,-2.784,-2.791 - & /) -! -! *** KHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC18M_248 = (/ - &-0.048,-0.102,-0.127,-0.145,-0.158,-0.169,-0.178,-0.185,-0.192, - &-0.198,-0.203,-0.207,-0.211,-0.215,-0.218,-0.221,-0.224,-0.226, - &-0.228,-0.230,-0.231,-0.232,-0.234,-0.235,-0.235,-0.236,-0.237, - &-0.237,-0.237,-0.237,-0.237,-0.237,-0.237,-0.236,-0.236,-0.235, - &-0.234,-0.234,-0.233,-0.232,-0.231,-0.230,-0.228,-0.227,-0.226, - &-0.224,-0.223,-0.221,-0.220,-0.218,-0.216,-0.214,-0.212,-0.210, - &-0.208,-0.206,-0.204,-0.202,-0.200,-0.198,-0.196,-0.193,-0.191, - &-0.189,-0.186,-0.184,-0.181,-0.179,-0.176,-0.173,-0.171,-0.168, - &-0.165,-0.163,-0.160,-0.157,-0.154,-0.151,-0.148,-0.146,-0.143, - &-0.140,-0.137,-0.133,-0.130,-0.127,-0.124,-0.121,-0.118,-0.115, - &-0.111,-0.108,-0.105,-0.101,-0.098,-0.095,-0.091,-0.088,-0.084, - &-0.081,-0.077,-0.074,-0.070,-0.067,-0.063,-0.060,-0.056,-0.052, - &-0.049,-0.045,-0.042,-0.038,-0.034,-0.031,-0.027,-0.023,-0.020, - &-0.016,-0.012,-0.008,-0.005,-0.001, 0.003, 0.006, 0.010, 0.014, - & 0.018, 0.021, 0.025, 0.029, 0.032, 0.036, 0.040, 0.043, 0.047, - & 0.051, 0.054, 0.058, 0.062, 0.065, 0.069, 0.073, 0.076, 0.080, - & 0.084, 0.087, 0.091, 0.094, 0.098, 0.102, 0.105, 0.109, 0.112, - & 0.116, 0.119, 0.123, 0.127, 0.130, 0.134, 0.137, 0.141, 0.144, - & 0.148, 0.151, 0.155, 0.158, 0.162, 0.165, 0.168, 0.172, 0.175, - & 0.179, 0.182, 0.186, 0.189, 0.192, 0.196, 0.199, 0.202, 0.206, - & 0.209, 0.212, 0.216, 0.219, 0.222, 0.226, 0.229, 0.232, 0.236, - & 0.239, 0.242, 0.245, 0.249, 0.252, 0.255, 0.258, 0.262, 0.265, - & 0.268, 0.271, 0.274, 0.278, 0.281, 0.284, 0.287, 0.290, 0.293, - & 0.297, 0.300, 0.303, 0.306, 0.309, 0.312, 0.315, 0.318, 0.321, - & 0.324, 0.327, 0.330, 0.334, 0.337, 0.340, 0.343, 0.346, 0.349, - & 0.352, 0.355, 0.358, 0.361, 0.364, 0.367, 0.369, 0.372, 0.375, - & 0.378, 0.381, 0.384, 0.387, 0.390, 0.393, 0.396, 0.399, 0.402, - & 0.404, 0.407, 0.410, 0.413, 0.416, 0.419, 0.422, 0.424, 0.427, - & 0.430, 0.433, 0.436, 0.438, 0.441, 0.444, 0.447, 0.450, 0.452, - & 0.455, 0.458, 0.461, 0.463, 0.466, 0.469, 0.471, 0.474, 0.477, - & 0.480, 0.482, 0.485, 0.488, 0.490, 0.493, 0.496, 0.498, 0.501, - & 0.504, 0.506, 0.509, 0.512, 0.514, 0.517, 0.519, 0.522, 0.525, - & 0.527, 0.530, 0.532, 0.535, 0.538, 0.540, 0.543, 0.545, 0.548, - & 0.550, 0.553, 0.555, 0.558, 0.560, 0.563, 0.566, 0.568, 0.571, - & 0.573, 0.576, 0.578, 0.581, 0.583, 0.585, 0.588, 0.590, 0.593, - & 0.595, 0.598, 0.600, 0.603, 0.605, 0.607, 0.610, 0.612, 0.615, - & 0.617, 0.620, 0.622, 0.624, 0.627, 0.629, 0.632, 0.634, 0.636, - & 0.639, 0.641, 0.643, 0.646, 0.648, 0.650, 0.653, 0.655, 0.657, - & 0.660, 0.662, 0.664, 0.667, 0.669, 0.671, 0.674, 0.676, 0.678, - & 0.680, 0.683, 0.685, 0.687, 0.689, 0.692, 0.694, 0.696, 0.699, - & 0.701, 0.703, 0.705, 0.707, 0.710, 0.712, 0.714, 0.716, 0.719, - & 0.721, 0.723, 0.725, 0.727, 0.730, 0.732, 0.734, 0.736, 0.738, - & 0.740, 0.743, 0.745, 0.747, 0.749, 0.751, 0.753, 0.755, 0.758, - & 0.760, 0.762, 0.764, 0.766, 0.768, 0.770, 0.772, 0.775, 0.777, - & 0.779, 0.781, 0.783, 0.785, 0.807, 0.828, 0.848, 0.867, 0.886, - & 0.905, 0.924, 0.942, 0.960, 0.978, 0.995, 1.013, 1.029, 1.046, - & 1.062, 1.079, 1.095, 1.110, 1.126, 1.141, 1.156, 1.171, 1.185, - & 1.200, 1.214, 1.228, 1.242, 1.256, 1.269, 1.282, 1.295, 1.308, - & 1.321, 1.334, 1.346, 1.359, 1.371, 1.383, 1.395, 1.406, 1.418, - & 1.429, 1.441, 1.452, 1.463, 1.474, 1.485, 1.495, 1.506, 1.516, - & 1.527, 1.537, 1.547, 1.557, 1.567, 1.577, 1.586, 1.596, 1.605, - & 1.615, 1.624, 1.633, 1.642, 1.651, 1.660, 1.669, 1.678, 1.686, - & 1.695, 1.703, 1.711, 1.720, 1.728, 1.736, 1.744, 1.752, 1.760, - & 1.768, 1.775, 1.783, 1.791, 1.798, 1.806, 1.813, 1.820, 1.828, - & 1.835, 1.842, 1.849, 1.856, 1.863, 1.870, 1.876, 1.883, 1.890, - & 1.896, 1.903, 1.909, 1.916, 1.922, 1.928, 1.935, 1.941, 1.947, - & 1.953, 1.959, 1.965, 1.971, 1.977, 1.983, 1.989, 1.994, 2.000, - & 2.006, 2.011, 2.017, 2.022, 2.028, 2.033, 2.039, 2.044, 2.049, - & 2.054, 2.060, 2.065, 2.070, 2.075, 2.080, 2.085, 2.090, 2.095, - & 2.100, 2.104, 2.109, 2.114, 2.119, 2.123, 2.128, 2.132, 2.137, - & 2.142, 2.146, 2.150, 2.155, 2.159, 2.164, 2.168, 2.172, 2.176, - & 2.181, 2.185, 2.189, 2.193, 2.197, 2.201, 2.205, 2.209, 2.213, - & 2.217, 2.221, 2.225 - & /) -! -! *** KNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC19M_248 = (/ - &-0.051,-0.116,-0.152,-0.180,-0.203,-0.223,-0.241,-0.257,-0.272, - &-0.286,-0.300,-0.313,-0.325,-0.336,-0.348,-0.359,-0.369,-0.379, - &-0.389,-0.399,-0.408,-0.417,-0.426,-0.435,-0.444,-0.452,-0.460, - &-0.468,-0.476,-0.484,-0.492,-0.499,-0.507,-0.514,-0.521,-0.528, - &-0.535,-0.542,-0.548,-0.555,-0.562,-0.568,-0.574,-0.580,-0.587, - &-0.593,-0.599,-0.604,-0.610,-0.616,-0.622,-0.627,-0.633,-0.638, - &-0.644,-0.649,-0.654,-0.659,-0.664,-0.670,-0.675,-0.680,-0.684, - &-0.689,-0.694,-0.699,-0.704,-0.708,-0.713,-0.718,-0.722,-0.727, - &-0.731,-0.736,-0.740,-0.745,-0.749,-0.754,-0.758,-0.763,-0.767, - &-0.771,-0.776,-0.780,-0.784,-0.788,-0.793,-0.797,-0.801,-0.805, - &-0.810,-0.814,-0.818,-0.822,-0.826,-0.830,-0.834,-0.839,-0.843, - &-0.847,-0.851,-0.855,-0.859,-0.863,-0.867,-0.871,-0.875,-0.879, - &-0.883,-0.887,-0.891,-0.895,-0.899,-0.903,-0.907,-0.910,-0.914, - &-0.918,-0.922,-0.926,-0.930,-0.933,-0.937,-0.941,-0.945,-0.948, - &-0.952,-0.956,-0.959,-0.963,-0.967,-0.970,-0.974,-0.977,-0.981, - &-0.985,-0.988,-0.992,-0.995,-0.999,-1.002,-1.006,-1.009,-1.012, - &-1.016,-1.019,-1.023,-1.026,-1.029,-1.033,-1.036,-1.039,-1.042, - &-1.046,-1.049,-1.052,-1.055,-1.059,-1.062,-1.065,-1.068,-1.071, - &-1.074,-1.078,-1.081,-1.084,-1.087,-1.090,-1.093,-1.096,-1.099, - &-1.102,-1.105,-1.108,-1.111,-1.114,-1.117,-1.120,-1.123,-1.126, - &-1.129,-1.131,-1.134,-1.137,-1.140,-1.143,-1.146,-1.149,-1.151, - &-1.154,-1.157,-1.160,-1.162,-1.165,-1.168,-1.171,-1.173,-1.176, - &-1.179,-1.181,-1.184,-1.187,-1.189,-1.192,-1.195,-1.197,-1.200, - &-1.202,-1.205,-1.207,-1.210,-1.213,-1.215,-1.218,-1.220,-1.223, - &-1.225,-1.228,-1.230,-1.233,-1.235,-1.237,-1.240,-1.242,-1.245, - &-1.247,-1.250,-1.252,-1.254,-1.257,-1.259,-1.261,-1.264,-1.266, - &-1.268,-1.271,-1.273,-1.275,-1.278,-1.280,-1.282,-1.284,-1.287, - &-1.289,-1.291,-1.293,-1.296,-1.298,-1.300,-1.302,-1.304,-1.307, - &-1.309,-1.311,-1.313,-1.315,-1.317,-1.319,-1.322,-1.324,-1.326, - &-1.328,-1.330,-1.332,-1.334,-1.336,-1.338,-1.340,-1.342,-1.344, - &-1.346,-1.348,-1.350,-1.352,-1.354,-1.356,-1.358,-1.360,-1.362, - &-1.364,-1.366,-1.368,-1.370,-1.372,-1.374,-1.376,-1.378,-1.380, - &-1.382,-1.384,-1.385,-1.387,-1.389,-1.391,-1.393,-1.395,-1.397, - &-1.398,-1.400,-1.402,-1.404,-1.406,-1.408,-1.409,-1.411,-1.413, - &-1.415,-1.417,-1.418,-1.420,-1.422,-1.424,-1.425,-1.427,-1.429, - &-1.431,-1.432,-1.434,-1.436,-1.437,-1.439,-1.441,-1.443,-1.444, - &-1.446,-1.448,-1.449,-1.451,-1.453,-1.454,-1.456,-1.458,-1.459, - &-1.461,-1.462,-1.464,-1.466,-1.467,-1.469,-1.470,-1.472,-1.474, - &-1.475,-1.477,-1.478,-1.480,-1.482,-1.483,-1.485,-1.486,-1.488, - &-1.489,-1.491,-1.492,-1.494,-1.495,-1.497,-1.498,-1.500,-1.501, - &-1.503,-1.504,-1.506,-1.507,-1.509,-1.510,-1.512,-1.513,-1.515, - &-1.516,-1.518,-1.519,-1.521,-1.522,-1.523,-1.525,-1.526,-1.528, - &-1.529,-1.530,-1.532,-1.533,-1.535,-1.536,-1.537,-1.539,-1.540, - &-1.542,-1.543,-1.544,-1.546,-1.547,-1.548,-1.550,-1.551,-1.553, - &-1.554,-1.555,-1.557,-1.558,-1.572,-1.585,-1.597,-1.609,-1.621, - &-1.632,-1.643,-1.654,-1.665,-1.675,-1.685,-1.695,-1.705,-1.714, - &-1.723,-1.732,-1.741,-1.750,-1.758,-1.766,-1.774,-1.782,-1.790, - &-1.798,-1.805,-1.813,-1.820,-1.827,-1.834,-1.841,-1.848,-1.855, - &-1.861,-1.868,-1.874,-1.881,-1.887,-1.893,-1.899,-1.905,-1.911, - &-1.917,-1.923,-1.929,-1.934,-1.940,-1.945,-1.951,-1.956,-1.962, - &-1.967,-1.972,-1.977,-1.982,-1.988,-1.993,-1.998,-2.003,-2.008, - &-2.012,-2.017,-2.022,-2.027,-2.032,-2.036,-2.041,-2.046,-2.050, - &-2.055,-2.059,-2.064,-2.068,-2.073,-2.077,-2.082,-2.086,-2.090, - &-2.095,-2.099,-2.103,-2.108,-2.112,-2.116,-2.120,-2.124,-2.128, - &-2.133,-2.137,-2.141,-2.145,-2.149,-2.153,-2.157,-2.161,-2.165, - &-2.169,-2.173,-2.177,-2.181,-2.185,-2.189,-2.192,-2.196,-2.200, - &-2.204,-2.208,-2.212,-2.216,-2.219,-2.223,-2.227,-2.231,-2.234, - &-2.238,-2.242,-2.246,-2.249,-2.253,-2.257,-2.260,-2.264,-2.268, - &-2.271,-2.275,-2.279,-2.282,-2.286,-2.289,-2.293,-2.297,-2.300, - &-2.304,-2.307,-2.311,-2.315,-2.318,-2.322,-2.325,-2.329,-2.332, - &-2.336,-2.339,-2.343,-2.346,-2.350,-2.353,-2.357,-2.360,-2.364, - &-2.367,-2.370,-2.374,-2.377,-2.381,-2.384,-2.388,-2.391,-2.395, - &-2.398,-2.401,-2.405 - & /) -! -! *** KCL -! - Real(kind=fp), Parameter, Dimension(561) :: BNC20M_248 = (/ - &-0.048,-0.103,-0.129,-0.147,-0.160,-0.171,-0.180,-0.188,-0.195, - &-0.201,-0.206,-0.210,-0.215,-0.218,-0.222,-0.225,-0.228,-0.230, - &-0.233,-0.235,-0.237,-0.239,-0.241,-0.242,-0.244,-0.245,-0.247, - &-0.248,-0.249,-0.250,-0.251,-0.252,-0.253,-0.254,-0.255,-0.256, - &-0.256,-0.257,-0.258,-0.258,-0.259,-0.260,-0.260,-0.261,-0.261, - &-0.261,-0.262,-0.262,-0.263,-0.263,-0.263,-0.264,-0.264,-0.264, - &-0.265,-0.265,-0.265,-0.265,-0.266,-0.266,-0.266,-0.266,-0.266, - &-0.267,-0.267,-0.267,-0.267,-0.267,-0.267,-0.267,-0.267,-0.267, - &-0.267,-0.268,-0.268,-0.268,-0.268,-0.268,-0.268,-0.268,-0.268, - &-0.268,-0.267,-0.267,-0.267,-0.267,-0.267,-0.267,-0.267,-0.267, - &-0.267,-0.267,-0.266,-0.266,-0.266,-0.266,-0.266,-0.265,-0.265, - &-0.265,-0.265,-0.265,-0.264,-0.264,-0.264,-0.264,-0.263,-0.263, - &-0.263,-0.262,-0.262,-0.262,-0.261,-0.261,-0.261,-0.260,-0.260, - &-0.260,-0.259,-0.259,-0.259,-0.258,-0.258,-0.258,-0.257,-0.257, - &-0.257,-0.256,-0.256,-0.256,-0.255,-0.255,-0.254,-0.254,-0.254, - &-0.253,-0.253,-0.253,-0.252,-0.252,-0.251,-0.251,-0.251,-0.250, - &-0.250,-0.249,-0.249,-0.249,-0.248,-0.248,-0.247,-0.247,-0.247, - &-0.246,-0.246,-0.246,-0.245,-0.245,-0.244,-0.244,-0.244,-0.243, - &-0.243,-0.242,-0.242,-0.242,-0.241,-0.241,-0.240,-0.240,-0.240, - &-0.239,-0.239,-0.238,-0.238,-0.238,-0.237,-0.237,-0.236,-0.236, - &-0.236,-0.235,-0.235,-0.234,-0.234,-0.234,-0.233,-0.233,-0.232, - &-0.232,-0.232,-0.231,-0.231,-0.230,-0.230,-0.230,-0.229,-0.229, - &-0.228,-0.228,-0.228,-0.227,-0.227,-0.227,-0.226,-0.226,-0.225, - &-0.225,-0.225,-0.224,-0.224,-0.223,-0.223,-0.223,-0.222,-0.222, - &-0.221,-0.221,-0.221,-0.220,-0.220,-0.220,-0.219,-0.219,-0.218, - &-0.218,-0.218,-0.217,-0.217,-0.217,-0.216,-0.216,-0.215,-0.215, - &-0.215,-0.214,-0.214,-0.214,-0.213,-0.213,-0.212,-0.212,-0.212, - &-0.211,-0.211,-0.211,-0.210,-0.210,-0.209,-0.209,-0.209,-0.208, - &-0.208,-0.208,-0.207,-0.207,-0.207,-0.206,-0.206,-0.205,-0.205, - &-0.205,-0.204,-0.204,-0.204,-0.203,-0.203,-0.203,-0.202,-0.202, - &-0.202,-0.201,-0.201,-0.201,-0.200,-0.200,-0.199,-0.199,-0.199, - &-0.198,-0.198,-0.198,-0.197,-0.197,-0.197,-0.196,-0.196,-0.196, - &-0.195,-0.195,-0.195,-0.194,-0.194,-0.194,-0.193,-0.193,-0.193, - &-0.192,-0.192,-0.192,-0.191,-0.191,-0.191,-0.190,-0.190,-0.190, - &-0.189,-0.189,-0.189,-0.188,-0.188,-0.188,-0.187,-0.187,-0.187, - &-0.186,-0.186,-0.186,-0.186,-0.185,-0.185,-0.185,-0.184,-0.184, - &-0.184,-0.183,-0.183,-0.183,-0.182,-0.182,-0.182,-0.181,-0.181, - &-0.181,-0.181,-0.180,-0.180,-0.180,-0.179,-0.179,-0.179,-0.178, - &-0.178,-0.178,-0.178,-0.177,-0.177,-0.177,-0.176,-0.176,-0.176, - &-0.175,-0.175,-0.175,-0.175,-0.174,-0.174,-0.174,-0.173,-0.173, - &-0.173,-0.173,-0.172,-0.172,-0.172,-0.171,-0.171,-0.171,-0.171, - &-0.170,-0.170,-0.170,-0.169,-0.169,-0.169,-0.169,-0.168,-0.168, - &-0.168,-0.167,-0.167,-0.167,-0.167,-0.166,-0.166,-0.166,-0.166, - &-0.165,-0.165,-0.165,-0.164,-0.164,-0.164,-0.164,-0.163,-0.163, - &-0.163,-0.163,-0.162,-0.162,-0.159,-0.157,-0.154,-0.152,-0.149, - &-0.147,-0.145,-0.143,-0.141,-0.139,-0.137,-0.135,-0.133,-0.131, - &-0.129,-0.127,-0.126,-0.124,-0.122,-0.121,-0.119,-0.118,-0.116, - &-0.115,-0.114,-0.112,-0.111,-0.110,-0.109,-0.107,-0.106,-0.105, - &-0.104,-0.103,-0.102,-0.101,-0.100,-0.099,-0.099,-0.098,-0.097, - &-0.096,-0.095,-0.095,-0.094,-0.093,-0.093,-0.092,-0.092,-0.091, - &-0.091,-0.090,-0.090,-0.089,-0.089,-0.089,-0.088,-0.088,-0.088, - &-0.087,-0.087,-0.087,-0.087,-0.087,-0.086,-0.086,-0.086,-0.086, - &-0.086,-0.086,-0.086,-0.086,-0.086,-0.086,-0.086,-0.086,-0.086, - &-0.086,-0.086,-0.086,-0.087,-0.087,-0.087,-0.087,-0.087,-0.088, - &-0.088,-0.088,-0.088,-0.089,-0.089,-0.089,-0.090,-0.090,-0.090, - &-0.091,-0.091,-0.092,-0.092,-0.092,-0.093,-0.093,-0.094,-0.094, - &-0.095,-0.095,-0.096,-0.096,-0.097,-0.098,-0.098,-0.099,-0.099, - &-0.100,-0.101,-0.101,-0.102,-0.103,-0.103,-0.104,-0.105,-0.105, - &-0.106,-0.107,-0.107,-0.108,-0.109,-0.110,-0.111,-0.111,-0.112, - &-0.113,-0.114,-0.115,-0.115,-0.116,-0.117,-0.118,-0.119,-0.120, - &-0.121,-0.122,-0.122,-0.123,-0.124,-0.125,-0.126,-0.127,-0.128, - &-0.129,-0.130,-0.131,-0.132,-0.133,-0.134,-0.135,-0.136,-0.137, - &-0.138,-0.139,-0.140 - & /) -! -! *** MGSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC21M_248 = (/ - &-0.195,-0.422,-0.535,-0.614,-0.676,-0.727,-0.770,-0.808,-0.841, - &-0.871,-0.898,-0.923,-0.946,-0.968,-0.988,-1.006,-1.024,-1.041, - &-1.056,-1.071,-1.085,-1.099,-1.112,-1.124,-1.136,-1.148,-1.159, - &-1.169,-1.179,-1.189,-1.199,-1.208,-1.217,-1.226,-1.234,-1.243, - &-1.251,-1.258,-1.266,-1.273,-1.281,-1.288,-1.295,-1.302,-1.308, - &-1.315,-1.321,-1.327,-1.333,-1.339,-1.345,-1.351,-1.357,-1.362, - &-1.368,-1.373,-1.379,-1.384,-1.389,-1.394,-1.399,-1.404,-1.409, - &-1.413,-1.418,-1.423,-1.427,-1.432,-1.436,-1.441,-1.445,-1.449, - &-1.454,-1.458,-1.462,-1.466,-1.470,-1.474,-1.478,-1.482,-1.486, - &-1.489,-1.493,-1.497,-1.500,-1.504,-1.508,-1.511,-1.515,-1.518, - &-1.522,-1.525,-1.528,-1.532,-1.535,-1.538,-1.541,-1.545,-1.548, - &-1.551,-1.554,-1.557,-1.560,-1.563,-1.566,-1.569,-1.572,-1.575, - &-1.578,-1.581,-1.584,-1.586,-1.589,-1.592,-1.595,-1.598,-1.600, - &-1.603,-1.606,-1.608,-1.611,-1.614,-1.616,-1.619,-1.621,-1.624, - &-1.626,-1.629,-1.631,-1.634,-1.636,-1.639,-1.641,-1.644,-1.646, - &-1.649,-1.651,-1.653,-1.656,-1.658,-1.660,-1.663,-1.665,-1.667, - &-1.670,-1.672,-1.674,-1.676,-1.679,-1.681,-1.683,-1.685,-1.688, - &-1.690,-1.692,-1.694,-1.696,-1.698,-1.701,-1.703,-1.705,-1.707, - &-1.709,-1.711,-1.713,-1.715,-1.717,-1.720,-1.722,-1.724,-1.726, - &-1.728,-1.730,-1.732,-1.734,-1.736,-1.738,-1.740,-1.742,-1.744, - &-1.746,-1.748,-1.750,-1.752,-1.754,-1.756,-1.757,-1.759,-1.761, - &-1.763,-1.765,-1.767,-1.769,-1.771,-1.773,-1.775,-1.776,-1.778, - &-1.780,-1.782,-1.784,-1.786,-1.788,-1.789,-1.791,-1.793,-1.795, - &-1.797,-1.799,-1.800,-1.802,-1.804,-1.806,-1.808,-1.809,-1.811, - &-1.813,-1.815,-1.816,-1.818,-1.820,-1.822,-1.823,-1.825,-1.827, - &-1.829,-1.830,-1.832,-1.834,-1.836,-1.837,-1.839,-1.841,-1.842, - &-1.844,-1.846,-1.848,-1.849,-1.851,-1.853,-1.854,-1.856,-1.858, - &-1.859,-1.861,-1.863,-1.864,-1.866,-1.868,-1.869,-1.871,-1.873, - &-1.874,-1.876,-1.878,-1.879,-1.881,-1.882,-1.884,-1.886,-1.887, - &-1.889,-1.891,-1.892,-1.894,-1.895,-1.897,-1.899,-1.900,-1.902, - &-1.903,-1.905,-1.907,-1.908,-1.910,-1.911,-1.913,-1.915,-1.916, - &-1.918,-1.919,-1.921,-1.922,-1.924,-1.925,-1.927,-1.929,-1.930, - &-1.932,-1.933,-1.935,-1.936,-1.938,-1.939,-1.941,-1.943,-1.944, - &-1.946,-1.947,-1.949,-1.950,-1.952,-1.953,-1.955,-1.956,-1.958, - &-1.959,-1.961,-1.962,-1.964,-1.965,-1.967,-1.968,-1.970,-1.971, - &-1.973,-1.974,-1.976,-1.977,-1.979,-1.980,-1.982,-1.983,-1.985, - &-1.986,-1.988,-1.989,-1.991,-1.992,-1.994,-1.995,-1.997,-1.998, - &-2.000,-2.001,-2.003,-2.004,-2.006,-2.007,-2.008,-2.010,-2.011, - &-2.013,-2.014,-2.016,-2.017,-2.019,-2.020,-2.022,-2.023,-2.024, - &-2.026,-2.027,-2.029,-2.030,-2.032,-2.033,-2.035,-2.036,-2.037, - &-2.039,-2.040,-2.042,-2.043,-2.045,-2.046,-2.047,-2.049,-2.050, - &-2.052,-2.053,-2.055,-2.056,-2.057,-2.059,-2.060,-2.062,-2.063, - &-2.065,-2.066,-2.067,-2.069,-2.070,-2.072,-2.073,-2.074,-2.076, - &-2.077,-2.079,-2.080,-2.081,-2.083,-2.084,-2.086,-2.087,-2.088, - &-2.090,-2.091,-2.093,-2.094,-2.109,-2.123,-2.137,-2.150,-2.164, - &-2.177,-2.191,-2.204,-2.217,-2.231,-2.244,-2.257,-2.270,-2.283, - &-2.296,-2.309,-2.322,-2.335,-2.348,-2.361,-2.374,-2.386,-2.399, - &-2.412,-2.425,-2.437,-2.450,-2.463,-2.475,-2.488,-2.500,-2.513, - &-2.525,-2.538,-2.550,-2.563,-2.575,-2.588,-2.600,-2.612,-2.625, - &-2.637,-2.650,-2.662,-2.674,-2.686,-2.699,-2.711,-2.723,-2.736, - &-2.748,-2.760,-2.772,-2.784,-2.797,-2.809,-2.821,-2.833,-2.845, - &-2.857,-2.870,-2.882,-2.894,-2.906,-2.918,-2.930,-2.942,-2.954, - &-2.966,-2.978,-2.991,-3.003,-3.015,-3.027,-3.039,-3.051,-3.063, - &-3.075,-3.087,-3.099,-3.111,-3.123,-3.135,-3.147,-3.159,-3.171, - &-3.182,-3.194,-3.206,-3.218,-3.230,-3.242,-3.254,-3.266,-3.278, - &-3.290,-3.302,-3.314,-3.325,-3.337,-3.349,-3.361,-3.373,-3.385, - &-3.397,-3.409,-3.420,-3.432,-3.444,-3.456,-3.468,-3.480,-3.491, - &-3.503,-3.515,-3.527,-3.539,-3.551,-3.562,-3.574,-3.586,-3.598, - &-3.609,-3.621,-3.633,-3.645,-3.657,-3.668,-3.680,-3.692,-3.704, - &-3.715,-3.727,-3.739,-3.751,-3.762,-3.774,-3.786,-3.798,-3.809, - &-3.821,-3.833,-3.844,-3.856,-3.868,-3.880,-3.891,-3.903,-3.915, - &-3.926,-3.938,-3.950,-3.961,-3.973,-3.985,-3.997,-4.008,-4.020, - &-4.032,-4.043,-4.055 - & /) -! -! *** MGNO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC22M_248 = (/ - &-0.095,-0.197,-0.243,-0.273,-0.294,-0.311,-0.323,-0.333,-0.342, - &-0.348,-0.353,-0.358,-0.361,-0.364,-0.366,-0.367,-0.368,-0.368, - &-0.368,-0.368,-0.368,-0.367,-0.366,-0.364,-0.363,-0.361,-0.359, - &-0.357,-0.355,-0.353,-0.351,-0.348,-0.346,-0.343,-0.340,-0.337, - &-0.335,-0.332,-0.329,-0.326,-0.323,-0.320,-0.316,-0.313,-0.310, - &-0.307,-0.304,-0.300,-0.297,-0.294,-0.290,-0.287,-0.284,-0.280, - &-0.277,-0.274,-0.270,-0.267,-0.264,-0.260,-0.257,-0.253,-0.250, - &-0.247,-0.243,-0.240,-0.236,-0.233,-0.229,-0.226,-0.222,-0.219, - &-0.215,-0.211,-0.208,-0.204,-0.200,-0.197,-0.193,-0.189,-0.186, - &-0.182,-0.178,-0.174,-0.170,-0.166,-0.162,-0.158,-0.154,-0.150, - &-0.146,-0.142,-0.138,-0.134,-0.130,-0.125,-0.121,-0.117,-0.113, - &-0.108,-0.104,-0.100,-0.095,-0.091,-0.086,-0.082,-0.077,-0.073, - &-0.068,-0.064,-0.059,-0.055,-0.050,-0.045,-0.041,-0.036,-0.032, - &-0.027,-0.022,-0.018,-0.013,-0.008,-0.004, 0.001, 0.006, 0.010, - & 0.015, 0.020, 0.024, 0.029, 0.034, 0.039, 0.043, 0.048, 0.053, - & 0.057, 0.062, 0.067, 0.071, 0.076, 0.081, 0.085, 0.090, 0.095, - & 0.099, 0.104, 0.109, 0.113, 0.118, 0.122, 0.127, 0.132, 0.136, - & 0.141, 0.145, 0.150, 0.155, 0.159, 0.164, 0.168, 0.173, 0.178, - & 0.182, 0.187, 0.191, 0.196, 0.200, 0.205, 0.209, 0.214, 0.218, - & 0.223, 0.227, 0.232, 0.236, 0.241, 0.245, 0.250, 0.254, 0.259, - & 0.263, 0.268, 0.272, 0.276, 0.281, 0.285, 0.290, 0.294, 0.299, - & 0.303, 0.307, 0.312, 0.316, 0.320, 0.325, 0.329, 0.333, 0.338, - & 0.342, 0.346, 0.351, 0.355, 0.359, 0.364, 0.368, 0.372, 0.377, - & 0.381, 0.385, 0.389, 0.394, 0.398, 0.402, 0.406, 0.411, 0.415, - & 0.419, 0.423, 0.427, 0.432, 0.436, 0.440, 0.444, 0.448, 0.452, - & 0.457, 0.461, 0.465, 0.469, 0.473, 0.477, 0.481, 0.485, 0.490, - & 0.494, 0.498, 0.502, 0.506, 0.510, 0.514, 0.518, 0.522, 0.526, - & 0.530, 0.534, 0.538, 0.542, 0.546, 0.550, 0.554, 0.558, 0.562, - & 0.566, 0.570, 0.574, 0.578, 0.582, 0.586, 0.590, 0.594, 0.598, - & 0.602, 0.605, 0.609, 0.613, 0.617, 0.621, 0.625, 0.629, 0.633, - & 0.636, 0.640, 0.644, 0.648, 0.652, 0.656, 0.659, 0.663, 0.667, - & 0.671, 0.674, 0.678, 0.682, 0.686, 0.690, 0.693, 0.697, 0.701, - & 0.704, 0.708, 0.712, 0.716, 0.719, 0.723, 0.727, 0.730, 0.734, - & 0.738, 0.741, 0.745, 0.749, 0.752, 0.756, 0.760, 0.763, 0.767, - & 0.771, 0.774, 0.778, 0.781, 0.785, 0.789, 0.792, 0.796, 0.799, - & 0.803, 0.806, 0.810, 0.813, 0.817, 0.821, 0.824, 0.828, 0.831, - & 0.835, 0.838, 0.842, 0.845, 0.849, 0.852, 0.856, 0.859, 0.862, - & 0.866, 0.869, 0.873, 0.876, 0.880, 0.883, 0.886, 0.890, 0.893, - & 0.897, 0.900, 0.903, 0.907, 0.910, 0.914, 0.917, 0.920, 0.924, - & 0.927, 0.930, 0.934, 0.937, 0.940, 0.944, 0.947, 0.950, 0.954, - & 0.957, 0.960, 0.963, 0.967, 0.970, 0.973, 0.977, 0.980, 0.983, - & 0.986, 0.990, 0.993, 0.996, 0.999, 1.003, 1.006, 1.009, 1.012, - & 1.015, 1.019, 1.022, 1.025, 1.028, 1.031, 1.034, 1.038, 1.041, - & 1.044, 1.047, 1.050, 1.053, 1.056, 1.060, 1.063, 1.066, 1.069, - & 1.072, 1.075, 1.078, 1.081, 1.114, 1.144, 1.174, 1.203, 1.232, - & 1.260, 1.288, 1.315, 1.342, 1.369, 1.395, 1.420, 1.446, 1.471, - & 1.495, 1.519, 1.543, 1.567, 1.590, 1.613, 1.635, 1.657, 1.679, - & 1.701, 1.722, 1.743, 1.764, 1.784, 1.804, 1.824, 1.844, 1.863, - & 1.882, 1.901, 1.920, 1.938, 1.956, 1.974, 1.992, 2.009, 2.026, - & 2.043, 2.060, 2.077, 2.093, 2.109, 2.125, 2.141, 2.157, 2.172, - & 2.187, 2.202, 2.217, 2.232, 2.246, 2.261, 2.275, 2.289, 2.303, - & 2.317, 2.330, 2.344, 2.357, 2.370, 2.383, 2.396, 2.408, 2.421, - & 2.433, 2.445, 2.458, 2.470, 2.481, 2.493, 2.505, 2.516, 2.528, - & 2.539, 2.550, 2.561, 2.572, 2.583, 2.593, 2.604, 2.614, 2.625, - & 2.635, 2.645, 2.655, 2.665, 2.675, 2.684, 2.694, 2.704, 2.713, - & 2.722, 2.732, 2.741, 2.750, 2.759, 2.768, 2.776, 2.785, 2.794, - & 2.802, 2.811, 2.819, 2.827, 2.835, 2.843, 2.851, 2.859, 2.867, - & 2.875, 2.883, 2.890, 2.898, 2.906, 2.913, 2.920, 2.928, 2.935, - & 2.942, 2.949, 2.956, 2.963, 2.970, 2.977, 2.983, 2.990, 2.997, - & 3.003, 3.010, 3.016, 3.022, 3.029, 3.035, 3.041, 3.047, 3.053, - & 3.059, 3.065, 3.071, 3.077, 3.083, 3.089, 3.094, 3.100, 3.105, - & 3.111, 3.116, 3.122, 3.127, 3.133, 3.138, 3.143, 3.148, 3.153, - & 3.158, 3.163, 3.168 - & /) -! -! *** MGCL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC23M_248 = (/ - &-0.094,-0.194,-0.238,-0.266,-0.285,-0.299,-0.310,-0.319,-0.325, - &-0.330,-0.333,-0.336,-0.337,-0.338,-0.338,-0.338,-0.337,-0.336, - &-0.334,-0.332,-0.330,-0.328,-0.325,-0.322,-0.319,-0.315,-0.312, - &-0.308,-0.304,-0.300,-0.296,-0.292,-0.288,-0.283,-0.279,-0.274, - &-0.270,-0.265,-0.261,-0.256,-0.251,-0.247,-0.242,-0.237,-0.232, - &-0.227,-0.222,-0.218,-0.213,-0.208,-0.203,-0.198,-0.193,-0.188, - &-0.183,-0.178,-0.173,-0.168,-0.163,-0.158,-0.153,-0.148,-0.143, - &-0.138,-0.133,-0.128,-0.123,-0.118,-0.113,-0.108,-0.103,-0.097, - &-0.092,-0.087,-0.082,-0.077,-0.071,-0.066,-0.061,-0.055,-0.050, - &-0.045,-0.039,-0.034,-0.028,-0.023,-0.017,-0.011,-0.006, 0.000, - & 0.006, 0.011, 0.017, 0.023, 0.029, 0.035, 0.041, 0.047, 0.053, - & 0.059, 0.065, 0.071, 0.077, 0.083, 0.089, 0.096, 0.102, 0.108, - & 0.114, 0.121, 0.127, 0.133, 0.140, 0.146, 0.152, 0.159, 0.165, - & 0.171, 0.178, 0.184, 0.191, 0.197, 0.203, 0.210, 0.216, 0.223, - & 0.229, 0.236, 0.242, 0.249, 0.255, 0.261, 0.268, 0.274, 0.281, - & 0.287, 0.293, 0.300, 0.306, 0.313, 0.319, 0.325, 0.332, 0.338, - & 0.345, 0.351, 0.357, 0.364, 0.370, 0.376, 0.383, 0.389, 0.395, - & 0.402, 0.408, 0.414, 0.421, 0.427, 0.433, 0.439, 0.446, 0.452, - & 0.458, 0.464, 0.471, 0.477, 0.483, 0.489, 0.495, 0.502, 0.508, - & 0.514, 0.520, 0.526, 0.532, 0.538, 0.545, 0.551, 0.557, 0.563, - & 0.569, 0.575, 0.581, 0.587, 0.593, 0.599, 0.605, 0.611, 0.617, - & 0.623, 0.629, 0.635, 0.641, 0.647, 0.653, 0.659, 0.665, 0.671, - & 0.677, 0.683, 0.689, 0.694, 0.700, 0.706, 0.712, 0.718, 0.724, - & 0.730, 0.735, 0.741, 0.747, 0.753, 0.759, 0.764, 0.770, 0.776, - & 0.782, 0.787, 0.793, 0.799, 0.804, 0.810, 0.816, 0.822, 0.827, - & 0.833, 0.838, 0.844, 0.850, 0.855, 0.861, 0.867, 0.872, 0.878, - & 0.883, 0.889, 0.894, 0.900, 0.905, 0.911, 0.916, 0.922, 0.927, - & 0.933, 0.938, 0.944, 0.949, 0.955, 0.960, 0.966, 0.971, 0.976, - & 0.982, 0.987, 0.993, 0.998, 1.003, 1.009, 1.014, 1.019, 1.025, - & 1.030, 1.035, 1.041, 1.046, 1.051, 1.056, 1.062, 1.067, 1.072, - & 1.077, 1.083, 1.088, 1.093, 1.098, 1.103, 1.109, 1.114, 1.119, - & 1.124, 1.129, 1.134, 1.139, 1.144, 1.150, 1.155, 1.160, 1.165, - & 1.170, 1.175, 1.180, 1.185, 1.190, 1.195, 1.200, 1.205, 1.210, - & 1.215, 1.220, 1.225, 1.230, 1.235, 1.240, 1.245, 1.250, 1.255, - & 1.260, 1.264, 1.269, 1.274, 1.279, 1.284, 1.289, 1.294, 1.299, - & 1.303, 1.308, 1.313, 1.318, 1.323, 1.327, 1.332, 1.337, 1.342, - & 1.346, 1.351, 1.356, 1.361, 1.365, 1.370, 1.375, 1.380, 1.384, - & 1.389, 1.394, 1.398, 1.403, 1.408, 1.412, 1.417, 1.421, 1.426, - & 1.431, 1.435, 1.440, 1.444, 1.449, 1.454, 1.458, 1.463, 1.467, - & 1.472, 1.476, 1.481, 1.485, 1.490, 1.494, 1.499, 1.503, 1.508, - & 1.512, 1.517, 1.521, 1.526, 1.530, 1.535, 1.539, 1.543, 1.548, - & 1.552, 1.557, 1.561, 1.565, 1.570, 1.574, 1.578, 1.583, 1.587, - & 1.591, 1.596, 1.600, 1.604, 1.609, 1.613, 1.617, 1.622, 1.626, - & 1.630, 1.634, 1.639, 1.643, 1.647, 1.651, 1.656, 1.660, 1.664, - & 1.668, 1.672, 1.677, 1.681, 1.726, 1.766, 1.807, 1.846, 1.885, - & 1.923, 1.961, 1.998, 2.034, 2.070, 2.105, 2.140, 2.175, 2.208, - & 2.242, 2.275, 2.307, 2.339, 2.370, 2.401, 2.432, 2.462, 2.492, - & 2.521, 2.550, 2.579, 2.607, 2.635, 2.662, 2.690, 2.716, 2.743, - & 2.769, 2.795, 2.820, 2.845, 2.870, 2.895, 2.919, 2.943, 2.966, - & 2.990, 3.013, 3.036, 3.058, 3.081, 3.103, 3.124, 3.146, 3.167, - & 3.188, 3.209, 3.230, 3.250, 3.270, 3.290, 3.310, 3.329, 3.349, - & 3.368, 3.387, 3.405, 3.424, 3.442, 3.460, 3.478, 3.496, 3.513, - & 3.531, 3.548, 3.565, 3.582, 3.599, 3.615, 3.631, 3.648, 3.664, - & 3.680, 3.695, 3.711, 3.726, 3.742, 3.757, 3.772, 3.787, 3.801, - & 3.816, 3.830, 3.845, 3.859, 3.873, 3.887, 3.901, 3.914, 3.928, - & 3.941, 3.955, 3.968, 3.981, 3.994, 4.007, 4.019, 4.032, 4.044, - & 4.057, 4.069, 4.081, 4.093, 4.105, 4.117, 4.129, 4.141, 4.152, - & 4.164, 4.175, 4.186, 4.197, 4.209, 4.220, 4.230, 4.241, 4.252, - & 4.263, 4.273, 4.284, 4.294, 4.304, 4.314, 4.324, 4.335, 4.344, - & 4.354, 4.364, 4.374, 4.383, 4.393, 4.402, 4.412, 4.421, 4.430, - & 4.440, 4.449, 4.458, 4.467, 4.476, 4.484, 4.493, 4.502, 4.510, - & 4.519, 4.527, 4.536, 4.544, 4.553, 4.561, 4.569, 4.577, 4.585, - & 4.593, 4.601, 4.609 - & /) - - ! Formerly BLOCK DATA KMCF273 -! -! *** NaCl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC01M_273 = (/ - &-0.046,-0.097,-0.119,-0.134,-0.145,-0.153,-0.160,-0.165,-0.169, - &-0.173,-0.176,-0.178,-0.180,-0.181,-0.182,-0.183,-0.184,-0.184, - &-0.185,-0.185,-0.185,-0.185,-0.184,-0.184,-0.183,-0.183,-0.182, - &-0.181,-0.181,-0.180,-0.179,-0.178,-0.177,-0.176,-0.174,-0.173, - &-0.172,-0.171,-0.170,-0.168,-0.167,-0.166,-0.164,-0.163,-0.162, - &-0.160,-0.159,-0.157,-0.156,-0.155,-0.153,-0.152,-0.150,-0.149, - &-0.147,-0.146,-0.144,-0.143,-0.141,-0.140,-0.138,-0.137,-0.135, - &-0.134,-0.132,-0.131,-0.129,-0.128,-0.126,-0.124,-0.123,-0.121, - &-0.120,-0.118,-0.116,-0.115,-0.113,-0.112,-0.110,-0.108,-0.107, - &-0.105,-0.103,-0.101,-0.100,-0.098,-0.096,-0.094,-0.093,-0.091, - &-0.089,-0.087,-0.085,-0.083,-0.081,-0.080,-0.078,-0.076,-0.074, - &-0.072,-0.070,-0.068,-0.066,-0.064,-0.062,-0.060,-0.058,-0.056, - &-0.054,-0.052,-0.050,-0.048,-0.046,-0.044,-0.042,-0.039,-0.037, - &-0.035,-0.033,-0.031,-0.029,-0.027,-0.025,-0.023,-0.021,-0.018, - &-0.016,-0.014,-0.012,-0.010,-0.008,-0.006,-0.004,-0.002, 0.001, - & 0.003, 0.005, 0.007, 0.009, 0.011, 0.013, 0.015, 0.017, 0.019, - & 0.022, 0.024, 0.026, 0.028, 0.030, 0.032, 0.034, 0.036, 0.038, - & 0.040, 0.042, 0.045, 0.047, 0.049, 0.051, 0.053, 0.055, 0.057, - & 0.059, 0.061, 0.063, 0.065, 0.067, 0.069, 0.071, 0.073, 0.075, - & 0.078, 0.080, 0.082, 0.084, 0.086, 0.088, 0.090, 0.092, 0.094, - & 0.096, 0.098, 0.100, 0.102, 0.104, 0.106, 0.108, 0.110, 0.112, - & 0.114, 0.116, 0.118, 0.120, 0.122, 0.124, 0.126, 0.128, 0.130, - & 0.132, 0.134, 0.136, 0.138, 0.140, 0.142, 0.143, 0.145, 0.147, - & 0.149, 0.151, 0.153, 0.155, 0.157, 0.159, 0.161, 0.163, 0.165, - & 0.167, 0.169, 0.171, 0.172, 0.174, 0.176, 0.178, 0.180, 0.182, - & 0.184, 0.186, 0.188, 0.190, 0.191, 0.193, 0.195, 0.197, 0.199, - & 0.201, 0.203, 0.205, 0.206, 0.208, 0.210, 0.212, 0.214, 0.216, - & 0.218, 0.219, 0.221, 0.223, 0.225, 0.227, 0.229, 0.230, 0.232, - & 0.234, 0.236, 0.238, 0.239, 0.241, 0.243, 0.245, 0.247, 0.248, - & 0.250, 0.252, 0.254, 0.256, 0.257, 0.259, 0.261, 0.263, 0.265, - & 0.266, 0.268, 0.270, 0.272, 0.273, 0.275, 0.277, 0.279, 0.280, - & 0.282, 0.284, 0.286, 0.287, 0.289, 0.291, 0.292, 0.294, 0.296, - & 0.298, 0.299, 0.301, 0.303, 0.305, 0.306, 0.308, 0.310, 0.311, - & 0.313, 0.315, 0.316, 0.318, 0.320, 0.321, 0.323, 0.325, 0.326, - & 0.328, 0.330, 0.331, 0.333, 0.335, 0.336, 0.338, 0.340, 0.341, - & 0.343, 0.345, 0.346, 0.348, 0.350, 0.351, 0.353, 0.355, 0.356, - & 0.358, 0.359, 0.361, 0.363, 0.364, 0.366, 0.367, 0.369, 0.371, - & 0.372, 0.374, 0.375, 0.377, 0.379, 0.380, 0.382, 0.383, 0.385, - & 0.387, 0.388, 0.390, 0.391, 0.393, 0.394, 0.396, 0.398, 0.399, - & 0.401, 0.402, 0.404, 0.405, 0.407, 0.408, 0.410, 0.412, 0.413, - & 0.415, 0.416, 0.418, 0.419, 0.421, 0.422, 0.424, 0.425, 0.427, - & 0.428, 0.430, 0.431, 0.433, 0.434, 0.436, 0.437, 0.439, 0.440, - & 0.442, 0.443, 0.445, 0.446, 0.448, 0.449, 0.451, 0.452, 0.454, - & 0.455, 0.457, 0.458, 0.460, 0.461, 0.463, 0.464, 0.465, 0.467, - & 0.468, 0.470, 0.471, 0.473, 0.488, 0.502, 0.516, 0.530, 0.544, - & 0.557, 0.570, 0.583, 0.596, 0.608, 0.621, 0.633, 0.645, 0.657, - & 0.669, 0.680, 0.692, 0.703, 0.714, 0.725, 0.736, 0.747, 0.758, - & 0.768, 0.778, 0.789, 0.799, 0.809, 0.819, 0.828, 0.838, 0.847, - & 0.857, 0.866, 0.875, 0.884, 0.893, 0.902, 0.911, 0.920, 0.928, - & 0.937, 0.945, 0.954, 0.962, 0.970, 0.978, 0.986, 0.994, 1.002, - & 1.010, 1.017, 1.025, 1.032, 1.040, 1.047, 1.054, 1.062, 1.069, - & 1.076, 1.083, 1.090, 1.097, 1.103, 1.110, 1.117, 1.124, 1.130, - & 1.137, 1.143, 1.149, 1.156, 1.162, 1.168, 1.174, 1.181, 1.187, - & 1.193, 1.199, 1.205, 1.210, 1.216, 1.222, 1.228, 1.233, 1.239, - & 1.245, 1.250, 1.255, 1.261, 1.266, 1.272, 1.277, 1.282, 1.287, - & 1.293, 1.298, 1.303, 1.308, 1.313, 1.318, 1.323, 1.328, 1.333, - & 1.337, 1.342, 1.347, 1.352, 1.356, 1.361, 1.366, 1.370, 1.375, - & 1.379, 1.384, 1.388, 1.392, 1.397, 1.401, 1.406, 1.410, 1.414, - & 1.418, 1.422, 1.427, 1.431, 1.435, 1.439, 1.443, 1.447, 1.451, - & 1.455, 1.459, 1.463, 1.467, 1.470, 1.474, 1.478, 1.482, 1.486, - & 1.489, 1.493, 1.497, 1.500, 1.504, 1.508, 1.511, 1.515, 1.518, - & 1.522, 1.525, 1.529, 1.532, 1.536, 1.539, 1.542, 1.546, 1.549, - & 1.552, 1.556, 1.559 - & /) -! -! *** Na2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC02M_273 = (/ - &-0.096,-0.208,-0.264,-0.304,-0.335,-0.361,-0.383,-0.403,-0.420, - &-0.436,-0.450,-0.464,-0.476,-0.487,-0.498,-0.508,-0.517,-0.526, - &-0.535,-0.543,-0.551,-0.558,-0.566,-0.572,-0.579,-0.586,-0.592, - &-0.598,-0.603,-0.609,-0.614,-0.620,-0.625,-0.630,-0.635,-0.639, - &-0.644,-0.649,-0.653,-0.657,-0.661,-0.666,-0.670,-0.674,-0.677, - &-0.681,-0.685,-0.689,-0.692,-0.696,-0.699,-0.702,-0.706,-0.709, - &-0.712,-0.715,-0.718,-0.721,-0.725,-0.727,-0.730,-0.733,-0.736, - &-0.739,-0.742,-0.744,-0.747,-0.750,-0.752,-0.755,-0.757,-0.760, - &-0.763,-0.765,-0.767,-0.770,-0.772,-0.775,-0.777,-0.779,-0.782, - &-0.784,-0.786,-0.788,-0.791,-0.793,-0.795,-0.797,-0.799,-0.801, - &-0.803,-0.806,-0.808,-0.810,-0.812,-0.814,-0.816,-0.818,-0.820, - &-0.822,-0.824,-0.826,-0.827,-0.829,-0.831,-0.833,-0.835,-0.837, - &-0.839,-0.841,-0.842,-0.844,-0.846,-0.848,-0.850,-0.851,-0.853, - &-0.855,-0.857,-0.858,-0.860,-0.862,-0.863,-0.865,-0.867,-0.868, - &-0.870,-0.872,-0.873,-0.875,-0.877,-0.878,-0.880,-0.881,-0.883, - &-0.885,-0.886,-0.888,-0.889,-0.891,-0.892,-0.894,-0.895,-0.897, - &-0.898,-0.900,-0.901,-0.903,-0.904,-0.906,-0.907,-0.909,-0.910, - &-0.912,-0.913,-0.915,-0.916,-0.917,-0.919,-0.920,-0.922,-0.923, - &-0.924,-0.926,-0.927,-0.928,-0.930,-0.931,-0.933,-0.934,-0.935, - &-0.937,-0.938,-0.939,-0.941,-0.942,-0.943,-0.944,-0.946,-0.947, - &-0.948,-0.950,-0.951,-0.952,-0.953,-0.955,-0.956,-0.957,-0.958, - &-0.960,-0.961,-0.962,-0.963,-0.965,-0.966,-0.967,-0.968,-0.969, - &-0.971,-0.972,-0.973,-0.974,-0.975,-0.977,-0.978,-0.979,-0.980, - &-0.981,-0.982,-0.984,-0.985,-0.986,-0.987,-0.988,-0.989,-0.990, - &-0.992,-0.993,-0.994,-0.995,-0.996,-0.997,-0.998,-0.999,-1.001, - &-1.002,-1.003,-1.004,-1.005,-1.006,-1.007,-1.008,-1.009,-1.010, - &-1.011,-1.012,-1.014,-1.015,-1.016,-1.017,-1.018,-1.019,-1.020, - &-1.021,-1.022,-1.023,-1.024,-1.025,-1.026,-1.027,-1.028,-1.029, - &-1.030,-1.031,-1.032,-1.033,-1.034,-1.035,-1.036,-1.037,-1.038, - &-1.039,-1.040,-1.041,-1.042,-1.043,-1.044,-1.045,-1.046,-1.047, - &-1.048,-1.049,-1.050,-1.051,-1.052,-1.053,-1.054,-1.055,-1.056, - &-1.057,-1.058,-1.059,-1.060,-1.061,-1.062,-1.063,-1.064,-1.065, - &-1.066,-1.066,-1.067,-1.068,-1.069,-1.070,-1.071,-1.072,-1.073, - &-1.074,-1.075,-1.076,-1.077,-1.078,-1.079,-1.079,-1.080,-1.081, - &-1.082,-1.083,-1.084,-1.085,-1.086,-1.087,-1.088,-1.088,-1.089, - &-1.090,-1.091,-1.092,-1.093,-1.094,-1.095,-1.096,-1.096,-1.097, - &-1.098,-1.099,-1.100,-1.101,-1.102,-1.102,-1.103,-1.104,-1.105, - &-1.106,-1.107,-1.108,-1.109,-1.109,-1.110,-1.111,-1.112,-1.113, - &-1.114,-1.114,-1.115,-1.116,-1.117,-1.118,-1.119,-1.120,-1.120, - &-1.121,-1.122,-1.123,-1.124,-1.124,-1.125,-1.126,-1.127,-1.128, - &-1.129,-1.129,-1.130,-1.131,-1.132,-1.133,-1.134,-1.134,-1.135, - &-1.136,-1.137,-1.138,-1.138,-1.139,-1.140,-1.141,-1.142,-1.142, - &-1.143,-1.144,-1.145,-1.146,-1.146,-1.147,-1.148,-1.149,-1.150, - &-1.150,-1.151,-1.152,-1.153,-1.153,-1.154,-1.155,-1.156,-1.157, - &-1.157,-1.158,-1.159,-1.160,-1.168,-1.175,-1.183,-1.190,-1.198, - &-1.205,-1.212,-1.219,-1.226,-1.233,-1.239,-1.246,-1.253,-1.259, - &-1.266,-1.272,-1.279,-1.285,-1.291,-1.298,-1.304,-1.310,-1.316, - &-1.322,-1.328,-1.334,-1.340,-1.346,-1.352,-1.357,-1.363,-1.369, - &-1.374,-1.380,-1.386,-1.391,-1.397,-1.402,-1.408,-1.413,-1.419, - &-1.424,-1.429,-1.435,-1.440,-1.445,-1.450,-1.456,-1.461,-1.466, - &-1.471,-1.476,-1.481,-1.486,-1.491,-1.496,-1.501,-1.506,-1.511, - &-1.516,-1.521,-1.526,-1.531,-1.536,-1.541,-1.545,-1.550,-1.555, - &-1.560,-1.564,-1.569,-1.574,-1.579,-1.583,-1.588,-1.593,-1.597, - &-1.602,-1.606,-1.611,-1.616,-1.620,-1.625,-1.629,-1.634,-1.638, - &-1.643,-1.647,-1.652,-1.656,-1.661,-1.665,-1.670,-1.674,-1.678, - &-1.683,-1.687,-1.692,-1.696,-1.700,-1.705,-1.709,-1.713,-1.718, - &-1.722,-1.726,-1.730,-1.735,-1.739,-1.743,-1.747,-1.752,-1.756, - &-1.760,-1.764,-1.768,-1.773,-1.777,-1.781,-1.785,-1.789,-1.793, - &-1.798,-1.802,-1.806,-1.810,-1.814,-1.818,-1.822,-1.826,-1.830, - &-1.834,-1.838,-1.843,-1.847,-1.851,-1.855,-1.859,-1.863,-1.867, - &-1.871,-1.875,-1.879,-1.883,-1.887,-1.891,-1.895,-1.899,-1.902, - &-1.906,-1.910,-1.914,-1.918,-1.922,-1.926,-1.930,-1.934,-1.938, - &-1.942,-1.946,-1.949 - & /) -! -! *** NaNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC03M_273 = (/ - &-0.048,-0.105,-0.133,-0.154,-0.170,-0.183,-0.195,-0.205,-0.214, - &-0.223,-0.230,-0.237,-0.244,-0.250,-0.256,-0.261,-0.266,-0.271, - &-0.276,-0.280,-0.284,-0.289,-0.292,-0.296,-0.300,-0.304,-0.307, - &-0.310,-0.314,-0.317,-0.320,-0.323,-0.326,-0.328,-0.331,-0.334, - &-0.337,-0.339,-0.342,-0.344,-0.347,-0.349,-0.351,-0.353,-0.356, - &-0.358,-0.360,-0.362,-0.364,-0.366,-0.368,-0.370,-0.372,-0.374, - &-0.376,-0.378,-0.379,-0.381,-0.383,-0.385,-0.386,-0.388,-0.390, - &-0.391,-0.393,-0.395,-0.396,-0.398,-0.399,-0.401,-0.402,-0.404, - &-0.405,-0.407,-0.408,-0.410,-0.411,-0.413,-0.414,-0.415,-0.417, - &-0.418,-0.420,-0.421,-0.422,-0.424,-0.425,-0.426,-0.427,-0.429, - &-0.430,-0.431,-0.433,-0.434,-0.435,-0.436,-0.438,-0.439,-0.440, - &-0.441,-0.442,-0.444,-0.445,-0.446,-0.447,-0.448,-0.449,-0.451, - &-0.452,-0.453,-0.454,-0.455,-0.456,-0.457,-0.459,-0.460,-0.461, - &-0.462,-0.463,-0.464,-0.465,-0.466,-0.467,-0.468,-0.469,-0.470, - &-0.472,-0.473,-0.474,-0.475,-0.476,-0.477,-0.478,-0.479,-0.480, - &-0.481,-0.482,-0.483,-0.484,-0.485,-0.486,-0.487,-0.488,-0.489, - &-0.490,-0.490,-0.491,-0.492,-0.493,-0.494,-0.495,-0.496,-0.497, - &-0.498,-0.499,-0.500,-0.501,-0.502,-0.503,-0.503,-0.504,-0.505, - &-0.506,-0.507,-0.508,-0.509,-0.510,-0.510,-0.511,-0.512,-0.513, - &-0.514,-0.515,-0.516,-0.516,-0.517,-0.518,-0.519,-0.520,-0.521, - &-0.521,-0.522,-0.523,-0.524,-0.525,-0.526,-0.526,-0.527,-0.528, - &-0.529,-0.530,-0.530,-0.531,-0.532,-0.533,-0.534,-0.534,-0.535, - &-0.536,-0.537,-0.537,-0.538,-0.539,-0.540,-0.540,-0.541,-0.542, - &-0.543,-0.543,-0.544,-0.545,-0.546,-0.546,-0.547,-0.548,-0.549, - &-0.549,-0.550,-0.551,-0.552,-0.552,-0.553,-0.554,-0.554,-0.555, - &-0.556,-0.557,-0.557,-0.558,-0.559,-0.559,-0.560,-0.561,-0.562, - &-0.562,-0.563,-0.564,-0.564,-0.565,-0.566,-0.566,-0.567,-0.568, - &-0.568,-0.569,-0.570,-0.570,-0.571,-0.572,-0.572,-0.573,-0.574, - &-0.574,-0.575,-0.576,-0.576,-0.577,-0.578,-0.578,-0.579,-0.580, - &-0.580,-0.581,-0.582,-0.582,-0.583,-0.584,-0.584,-0.585,-0.585, - &-0.586,-0.587,-0.587,-0.588,-0.589,-0.589,-0.590,-0.591,-0.591, - &-0.592,-0.592,-0.593,-0.594,-0.594,-0.595,-0.595,-0.596,-0.597, - &-0.597,-0.598,-0.599,-0.599,-0.600,-0.600,-0.601,-0.602,-0.602, - &-0.603,-0.603,-0.604,-0.604,-0.605,-0.606,-0.606,-0.607,-0.607, - &-0.608,-0.609,-0.609,-0.610,-0.610,-0.611,-0.612,-0.612,-0.613, - &-0.613,-0.614,-0.614,-0.615,-0.616,-0.616,-0.617,-0.617,-0.618, - &-0.618,-0.619,-0.619,-0.620,-0.621,-0.621,-0.622,-0.622,-0.623, - &-0.623,-0.624,-0.624,-0.625,-0.626,-0.626,-0.627,-0.627,-0.628, - &-0.628,-0.629,-0.629,-0.630,-0.630,-0.631,-0.632,-0.632,-0.633, - &-0.633,-0.634,-0.634,-0.635,-0.635,-0.636,-0.636,-0.637,-0.637, - &-0.638,-0.638,-0.639,-0.640,-0.640,-0.641,-0.641,-0.642,-0.642, - &-0.643,-0.643,-0.644,-0.644,-0.645,-0.645,-0.646,-0.646,-0.647, - &-0.647,-0.648,-0.648,-0.649,-0.649,-0.650,-0.650,-0.651,-0.651, - &-0.652,-0.652,-0.653,-0.653,-0.654,-0.654,-0.655,-0.655,-0.656, - &-0.656,-0.657,-0.657,-0.658,-0.663,-0.668,-0.673,-0.677,-0.682, - &-0.687,-0.691,-0.696,-0.700,-0.704,-0.709,-0.713,-0.717,-0.721, - &-0.725,-0.729,-0.733,-0.737,-0.741,-0.745,-0.749,-0.753,-0.757, - &-0.760,-0.764,-0.768,-0.771,-0.775,-0.779,-0.782,-0.786,-0.789, - &-0.793,-0.796,-0.799,-0.803,-0.806,-0.810,-0.813,-0.816,-0.819, - &-0.823,-0.826,-0.829,-0.832,-0.836,-0.839,-0.842,-0.845,-0.848, - &-0.851,-0.854,-0.857,-0.860,-0.863,-0.866,-0.869,-0.872,-0.875, - &-0.878,-0.881,-0.884,-0.887,-0.890,-0.893,-0.895,-0.898,-0.901, - &-0.904,-0.907,-0.909,-0.912,-0.915,-0.918,-0.920,-0.923,-0.926, - &-0.929,-0.931,-0.934,-0.937,-0.939,-0.942,-0.945,-0.947,-0.950, - &-0.952,-0.955,-0.958,-0.960,-0.963,-0.965,-0.968,-0.971,-0.973, - &-0.976,-0.978,-0.981,-0.983,-0.986,-0.988,-0.991,-0.993,-0.996, - &-0.998,-1.000,-1.003,-1.005,-1.008,-1.010,-1.013,-1.015,-1.017, - &-1.020,-1.022,-1.025,-1.027,-1.029,-1.032,-1.034,-1.036,-1.039, - &-1.041,-1.043,-1.046,-1.048,-1.050,-1.053,-1.055,-1.057,-1.060, - &-1.062,-1.064,-1.067,-1.069,-1.071,-1.073,-1.076,-1.078,-1.080, - &-1.082,-1.085,-1.087,-1.089,-1.091,-1.093,-1.096,-1.098,-1.100, - &-1.102,-1.105,-1.107,-1.109,-1.111,-1.113,-1.115,-1.118,-1.120, - &-1.122,-1.124,-1.126 - & /) -! -! *** (NH4)2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC04M_273 = (/ - &-0.096,-0.208,-0.265,-0.305,-0.337,-0.363,-0.385,-0.405,-0.423, - &-0.439,-0.453,-0.467,-0.479,-0.491,-0.502,-0.512,-0.522,-0.531, - &-0.540,-0.548,-0.556,-0.564,-0.571,-0.578,-0.585,-0.592,-0.598, - &-0.605,-0.610,-0.616,-0.622,-0.627,-0.633,-0.638,-0.643,-0.648, - &-0.653,-0.657,-0.662,-0.666,-0.671,-0.675,-0.679,-0.683,-0.688, - &-0.691,-0.695,-0.699,-0.703,-0.707,-0.710,-0.714,-0.717,-0.721, - &-0.724,-0.727,-0.731,-0.734,-0.737,-0.740,-0.743,-0.746,-0.749, - &-0.752,-0.755,-0.758,-0.761,-0.763,-0.766,-0.769,-0.772,-0.774, - &-0.777,-0.780,-0.782,-0.785,-0.787,-0.790,-0.792,-0.795,-0.797, - &-0.799,-0.802,-0.804,-0.807,-0.809,-0.811,-0.814,-0.816,-0.818, - &-0.820,-0.823,-0.825,-0.827,-0.829,-0.831,-0.833,-0.836,-0.838, - &-0.840,-0.842,-0.844,-0.846,-0.848,-0.850,-0.852,-0.854,-0.856, - &-0.858,-0.860,-0.862,-0.864,-0.866,-0.868,-0.870,-0.872,-0.874, - &-0.875,-0.877,-0.879,-0.881,-0.883,-0.885,-0.887,-0.888,-0.890, - &-0.892,-0.894,-0.895,-0.897,-0.899,-0.901,-0.902,-0.904,-0.906, - &-0.908,-0.909,-0.911,-0.913,-0.914,-0.916,-0.918,-0.919,-0.921, - &-0.923,-0.924,-0.926,-0.927,-0.929,-0.931,-0.932,-0.934,-0.935, - &-0.937,-0.938,-0.940,-0.942,-0.943,-0.945,-0.946,-0.948,-0.949, - &-0.951,-0.952,-0.954,-0.955,-0.957,-0.958,-0.960,-0.961,-0.962, - &-0.964,-0.965,-0.967,-0.968,-0.970,-0.971,-0.972,-0.974,-0.975, - &-0.977,-0.978,-0.979,-0.981,-0.982,-0.984,-0.985,-0.986,-0.988, - &-0.989,-0.990,-0.992,-0.993,-0.994,-0.996,-0.997,-0.998,-1.000, - &-1.001,-1.002,-1.004,-1.005,-1.006,-1.007,-1.009,-1.010,-1.011, - &-1.013,-1.014,-1.015,-1.016,-1.018,-1.019,-1.020,-1.021,-1.023, - &-1.024,-1.025,-1.026,-1.027,-1.029,-1.030,-1.031,-1.032,-1.034, - &-1.035,-1.036,-1.037,-1.038,-1.039,-1.041,-1.042,-1.043,-1.044, - &-1.045,-1.047,-1.048,-1.049,-1.050,-1.051,-1.052,-1.053,-1.055, - &-1.056,-1.057,-1.058,-1.059,-1.060,-1.061,-1.063,-1.064,-1.065, - &-1.066,-1.067,-1.068,-1.069,-1.070,-1.071,-1.073,-1.074,-1.075, - &-1.076,-1.077,-1.078,-1.079,-1.080,-1.081,-1.082,-1.083,-1.084, - &-1.086,-1.087,-1.088,-1.089,-1.090,-1.091,-1.092,-1.093,-1.094, - &-1.095,-1.096,-1.097,-1.098,-1.099,-1.100,-1.101,-1.102,-1.103, - &-1.104,-1.105,-1.106,-1.107,-1.108,-1.109,-1.110,-1.111,-1.112, - &-1.114,-1.115,-1.116,-1.117,-1.118,-1.119,-1.119,-1.120,-1.121, - &-1.122,-1.123,-1.124,-1.125,-1.126,-1.127,-1.128,-1.129,-1.130, - &-1.131,-1.132,-1.133,-1.134,-1.135,-1.136,-1.137,-1.138,-1.139, - &-1.140,-1.141,-1.142,-1.143,-1.144,-1.145,-1.146,-1.147,-1.147, - &-1.148,-1.149,-1.150,-1.151,-1.152,-1.153,-1.154,-1.155,-1.156, - &-1.157,-1.158,-1.159,-1.160,-1.160,-1.161,-1.162,-1.163,-1.164, - &-1.165,-1.166,-1.167,-1.168,-1.169,-1.169,-1.170,-1.171,-1.172, - &-1.173,-1.174,-1.175,-1.176,-1.177,-1.178,-1.178,-1.179,-1.180, - &-1.181,-1.182,-1.183,-1.184,-1.185,-1.185,-1.186,-1.187,-1.188, - &-1.189,-1.190,-1.191,-1.191,-1.192,-1.193,-1.194,-1.195,-1.196, - &-1.197,-1.198,-1.198,-1.199,-1.200,-1.201,-1.202,-1.203,-1.203, - &-1.204,-1.205,-1.206,-1.207,-1.216,-1.224,-1.232,-1.240,-1.248, - &-1.256,-1.263,-1.271,-1.279,-1.286,-1.293,-1.301,-1.308,-1.315, - &-1.322,-1.329,-1.336,-1.343,-1.349,-1.356,-1.363,-1.369,-1.376, - &-1.382,-1.389,-1.395,-1.402,-1.408,-1.414,-1.420,-1.427,-1.433, - &-1.439,-1.445,-1.451,-1.457,-1.463,-1.468,-1.474,-1.480,-1.486, - &-1.492,-1.497,-1.503,-1.509,-1.514,-1.520,-1.525,-1.531,-1.536, - &-1.542,-1.547,-1.553,-1.558,-1.563,-1.569,-1.574,-1.579,-1.585, - &-1.590,-1.595,-1.600,-1.605,-1.611,-1.616,-1.621,-1.626,-1.631, - &-1.636,-1.641,-1.646,-1.651,-1.656,-1.661,-1.666,-1.671,-1.676, - &-1.681,-1.685,-1.690,-1.695,-1.700,-1.705,-1.710,-1.714,-1.719, - &-1.724,-1.729,-1.733,-1.738,-1.743,-1.747,-1.752,-1.757,-1.761, - &-1.766,-1.770,-1.775,-1.780,-1.784,-1.789,-1.793,-1.798,-1.802, - &-1.807,-1.811,-1.816,-1.820,-1.825,-1.829,-1.834,-1.838,-1.842, - &-1.847,-1.851,-1.856,-1.860,-1.864,-1.869,-1.873,-1.877,-1.882, - &-1.886,-1.890,-1.895,-1.899,-1.903,-1.908,-1.912,-1.916,-1.920, - &-1.925,-1.929,-1.933,-1.937,-1.941,-1.946,-1.950,-1.954,-1.958, - &-1.962,-1.966,-1.971,-1.975,-1.979,-1.983,-1.987,-1.991,-1.995, - &-2.000,-2.004,-2.008,-2.012,-2.016,-2.020,-2.024,-2.028,-2.032, - &-2.036,-2.040,-2.044 - & /) -! -! *** NH4NO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC05M_273 = (/ - &-0.048,-0.108,-0.138,-0.161,-0.179,-0.194,-0.208,-0.220,-0.231, - &-0.241,-0.250,-0.259,-0.267,-0.275,-0.282,-0.289,-0.296,-0.302, - &-0.309,-0.315,-0.321,-0.326,-0.332,-0.337,-0.342,-0.347,-0.352, - &-0.357,-0.361,-0.366,-0.370,-0.375,-0.379,-0.383,-0.387,-0.391, - &-0.395,-0.399,-0.403,-0.406,-0.410,-0.414,-0.417,-0.421,-0.424, - &-0.427,-0.431,-0.434,-0.437,-0.440,-0.443,-0.446,-0.449,-0.452, - &-0.455,-0.458,-0.461,-0.464,-0.466,-0.469,-0.472,-0.475,-0.477, - &-0.480,-0.482,-0.485,-0.487,-0.490,-0.492,-0.495,-0.497,-0.500, - &-0.502,-0.505,-0.507,-0.509,-0.512,-0.514,-0.516,-0.518,-0.521, - &-0.523,-0.525,-0.527,-0.530,-0.532,-0.534,-0.536,-0.538,-0.541, - &-0.543,-0.545,-0.547,-0.549,-0.551,-0.553,-0.555,-0.558,-0.560, - &-0.562,-0.564,-0.566,-0.568,-0.570,-0.572,-0.574,-0.576,-0.578, - &-0.580,-0.582,-0.584,-0.586,-0.588,-0.590,-0.592,-0.594,-0.596, - &-0.598,-0.600,-0.602,-0.604,-0.606,-0.608,-0.609,-0.611,-0.613, - &-0.615,-0.617,-0.619,-0.621,-0.622,-0.624,-0.626,-0.628,-0.630, - &-0.631,-0.633,-0.635,-0.637,-0.639,-0.640,-0.642,-0.644,-0.646, - &-0.647,-0.649,-0.651,-0.652,-0.654,-0.656,-0.657,-0.659,-0.661, - &-0.662,-0.664,-0.666,-0.667,-0.669,-0.671,-0.672,-0.674,-0.675, - &-0.677,-0.679,-0.680,-0.682,-0.683,-0.685,-0.686,-0.688,-0.690, - &-0.691,-0.693,-0.694,-0.696,-0.697,-0.699,-0.700,-0.702,-0.703, - &-0.705,-0.706,-0.708,-0.709,-0.711,-0.712,-0.713,-0.715,-0.716, - &-0.718,-0.719,-0.721,-0.722,-0.723,-0.725,-0.726,-0.728,-0.729, - &-0.730,-0.732,-0.733,-0.735,-0.736,-0.737,-0.739,-0.740,-0.741, - &-0.743,-0.744,-0.745,-0.747,-0.748,-0.749,-0.751,-0.752,-0.753, - &-0.755,-0.756,-0.757,-0.759,-0.760,-0.761,-0.762,-0.764,-0.765, - &-0.766,-0.768,-0.769,-0.770,-0.771,-0.773,-0.774,-0.775,-0.776, - &-0.778,-0.779,-0.780,-0.781,-0.782,-0.784,-0.785,-0.786,-0.787, - &-0.788,-0.790,-0.791,-0.792,-0.793,-0.794,-0.796,-0.797,-0.798, - &-0.799,-0.800,-0.801,-0.803,-0.804,-0.805,-0.806,-0.807,-0.808, - &-0.809,-0.811,-0.812,-0.813,-0.814,-0.815,-0.816,-0.817,-0.818, - &-0.820,-0.821,-0.822,-0.823,-0.824,-0.825,-0.826,-0.827,-0.828, - &-0.829,-0.830,-0.832,-0.833,-0.834,-0.835,-0.836,-0.837,-0.838, - &-0.839,-0.840,-0.841,-0.842,-0.843,-0.844,-0.845,-0.846,-0.847, - &-0.848,-0.849,-0.850,-0.851,-0.852,-0.853,-0.854,-0.855,-0.857, - &-0.858,-0.859,-0.860,-0.861,-0.862,-0.863,-0.863,-0.864,-0.865, - &-0.866,-0.867,-0.868,-0.869,-0.870,-0.871,-0.872,-0.873,-0.874, - &-0.875,-0.876,-0.877,-0.878,-0.879,-0.880,-0.881,-0.882,-0.883, - &-0.884,-0.885,-0.886,-0.887,-0.887,-0.888,-0.889,-0.890,-0.891, - &-0.892,-0.893,-0.894,-0.895,-0.896,-0.897,-0.898,-0.898,-0.899, - &-0.900,-0.901,-0.902,-0.903,-0.904,-0.905,-0.906,-0.907,-0.907, - &-0.908,-0.909,-0.910,-0.911,-0.912,-0.913,-0.914,-0.914,-0.915, - &-0.916,-0.917,-0.918,-0.919,-0.920,-0.920,-0.921,-0.922,-0.923, - &-0.924,-0.925,-0.926,-0.926,-0.927,-0.928,-0.929,-0.930,-0.931, - &-0.931,-0.932,-0.933,-0.934,-0.935,-0.936,-0.936,-0.937,-0.938, - &-0.939,-0.940,-0.940,-0.941,-0.950,-0.958,-0.965,-0.973,-0.980, - &-0.988,-0.995,-1.002,-1.009,-1.015,-1.022,-1.029,-1.035,-1.041, - &-1.047,-1.054,-1.060,-1.066,-1.071,-1.077,-1.083,-1.088,-1.094, - &-1.099,-1.105,-1.110,-1.115,-1.120,-1.125,-1.130,-1.135,-1.140, - &-1.145,-1.150,-1.155,-1.159,-1.164,-1.168,-1.173,-1.177,-1.182, - &-1.186,-1.191,-1.195,-1.199,-1.203,-1.207,-1.212,-1.216,-1.220, - &-1.224,-1.228,-1.232,-1.235,-1.239,-1.243,-1.247,-1.251,-1.254, - &-1.258,-1.262,-1.265,-1.269,-1.273,-1.276,-1.280,-1.283,-1.287, - &-1.290,-1.293,-1.297,-1.300,-1.304,-1.307,-1.310,-1.313,-1.317, - &-1.320,-1.323,-1.326,-1.330,-1.333,-1.336,-1.339,-1.342,-1.345, - &-1.348,-1.351,-1.354,-1.357,-1.360,-1.363,-1.366,-1.369,-1.372, - &-1.375,-1.378,-1.381,-1.383,-1.386,-1.389,-1.392,-1.395,-1.397, - &-1.400,-1.403,-1.406,-1.408,-1.411,-1.414,-1.417,-1.419,-1.422, - &-1.425,-1.427,-1.430,-1.432,-1.435,-1.438,-1.440,-1.443,-1.445, - &-1.448,-1.450,-1.453,-1.456,-1.458,-1.461,-1.463,-1.466,-1.468, - &-1.470,-1.473,-1.475,-1.478,-1.480,-1.483,-1.485,-1.487,-1.490, - &-1.492,-1.495,-1.497,-1.499,-1.502,-1.504,-1.506,-1.509,-1.511, - &-1.513,-1.516,-1.518,-1.520,-1.523,-1.525,-1.527,-1.529,-1.532, - &-1.534,-1.536,-1.538 - & /) -! -! *** NH4Cl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC06M_273 = (/ - &-0.047,-0.101,-0.126,-0.144,-0.157,-0.168,-0.177,-0.185,-0.191, - &-0.197,-0.202,-0.207,-0.211,-0.215,-0.218,-0.221,-0.224,-0.227, - &-0.229,-0.232,-0.234,-0.236,-0.238,-0.239,-0.241,-0.242,-0.244, - &-0.245,-0.246,-0.247,-0.249,-0.250,-0.251,-0.251,-0.252,-0.253, - &-0.254,-0.255,-0.255,-0.256,-0.257,-0.257,-0.258,-0.258,-0.259, - &-0.259,-0.260,-0.260,-0.261,-0.261,-0.261,-0.262,-0.262,-0.262, - &-0.263,-0.263,-0.263,-0.263,-0.264,-0.264,-0.264,-0.264,-0.265, - &-0.265,-0.265,-0.265,-0.265,-0.265,-0.265,-0.266,-0.266,-0.266, - &-0.266,-0.266,-0.266,-0.266,-0.266,-0.266,-0.266,-0.266,-0.266, - &-0.266,-0.266,-0.266,-0.266,-0.266,-0.266,-0.266,-0.266,-0.265, - &-0.265,-0.265,-0.265,-0.265,-0.265,-0.265,-0.264,-0.264,-0.264, - &-0.264,-0.264,-0.263,-0.263,-0.263,-0.263,-0.263,-0.262,-0.262, - &-0.262,-0.262,-0.261,-0.261,-0.261,-0.260,-0.260,-0.260,-0.260, - &-0.259,-0.259,-0.259,-0.258,-0.258,-0.258,-0.257,-0.257,-0.257, - &-0.256,-0.256,-0.256,-0.255,-0.255,-0.255,-0.254,-0.254,-0.254, - &-0.253,-0.253,-0.253,-0.252,-0.252,-0.252,-0.251,-0.251,-0.251, - &-0.250,-0.250,-0.249,-0.249,-0.249,-0.248,-0.248,-0.248,-0.247, - &-0.247,-0.247,-0.246,-0.246,-0.245,-0.245,-0.245,-0.244,-0.244, - &-0.244,-0.243,-0.243,-0.242,-0.242,-0.242,-0.241,-0.241,-0.241, - &-0.240,-0.240,-0.239,-0.239,-0.239,-0.238,-0.238,-0.238,-0.237, - &-0.237,-0.236,-0.236,-0.236,-0.235,-0.235,-0.235,-0.234,-0.234, - &-0.233,-0.233,-0.233,-0.232,-0.232,-0.231,-0.231,-0.231,-0.230, - &-0.230,-0.230,-0.229,-0.229,-0.228,-0.228,-0.228,-0.227,-0.227, - &-0.227,-0.226,-0.226,-0.225,-0.225,-0.225,-0.224,-0.224,-0.224, - &-0.223,-0.223,-0.222,-0.222,-0.222,-0.221,-0.221,-0.221,-0.220, - &-0.220,-0.219,-0.219,-0.219,-0.218,-0.218,-0.218,-0.217,-0.217, - &-0.216,-0.216,-0.216,-0.215,-0.215,-0.215,-0.214,-0.214,-0.214, - &-0.213,-0.213,-0.212,-0.212,-0.212,-0.211,-0.211,-0.211,-0.210, - &-0.210,-0.210,-0.209,-0.209,-0.208,-0.208,-0.208,-0.207,-0.207, - &-0.207,-0.206,-0.206,-0.206,-0.205,-0.205,-0.204,-0.204,-0.204, - &-0.203,-0.203,-0.203,-0.202,-0.202,-0.202,-0.201,-0.201,-0.201, - &-0.200,-0.200,-0.200,-0.199,-0.199,-0.198,-0.198,-0.198,-0.197, - &-0.197,-0.197,-0.196,-0.196,-0.196,-0.195,-0.195,-0.195,-0.194, - &-0.194,-0.194,-0.193,-0.193,-0.193,-0.192,-0.192,-0.192,-0.191, - &-0.191,-0.191,-0.190,-0.190,-0.190,-0.189,-0.189,-0.189,-0.188, - &-0.188,-0.188,-0.187,-0.187,-0.187,-0.186,-0.186,-0.186,-0.185, - &-0.185,-0.185,-0.184,-0.184,-0.184,-0.183,-0.183,-0.183,-0.182, - &-0.182,-0.182,-0.181,-0.181,-0.181,-0.180,-0.180,-0.180,-0.179, - &-0.179,-0.179,-0.178,-0.178,-0.178,-0.177,-0.177,-0.177,-0.176, - &-0.176,-0.176,-0.176,-0.175,-0.175,-0.175,-0.174,-0.174,-0.174, - &-0.173,-0.173,-0.173,-0.172,-0.172,-0.172,-0.171,-0.171,-0.171, - &-0.171,-0.170,-0.170,-0.170,-0.169,-0.169,-0.169,-0.168,-0.168, - &-0.168,-0.167,-0.167,-0.167,-0.167,-0.166,-0.166,-0.166,-0.165, - &-0.165,-0.165,-0.164,-0.164,-0.164,-0.164,-0.163,-0.163,-0.163, - &-0.162,-0.162,-0.162,-0.161,-0.158,-0.155,-0.153,-0.150,-0.147, - &-0.144,-0.142,-0.139,-0.137,-0.134,-0.132,-0.129,-0.127,-0.125, - &-0.122,-0.120,-0.118,-0.116,-0.113,-0.111,-0.109,-0.107,-0.105, - &-0.103,-0.101,-0.099,-0.097,-0.095,-0.093,-0.092,-0.090,-0.088, - &-0.086,-0.085,-0.083,-0.081,-0.080,-0.078,-0.077,-0.075,-0.073, - &-0.072,-0.071,-0.069,-0.068,-0.066,-0.065,-0.064,-0.062,-0.061, - &-0.060,-0.058,-0.057,-0.056,-0.055,-0.053,-0.052,-0.051,-0.050, - &-0.049,-0.048,-0.047,-0.046,-0.044,-0.043,-0.042,-0.041,-0.040, - &-0.039,-0.039,-0.038,-0.037,-0.036,-0.035,-0.034,-0.033,-0.032, - &-0.032,-0.031,-0.030,-0.029,-0.028,-0.028,-0.027,-0.026,-0.025, - &-0.025,-0.024,-0.023,-0.023,-0.022,-0.021,-0.021,-0.020,-0.019, - &-0.019,-0.018,-0.018,-0.017,-0.017,-0.016,-0.016,-0.015,-0.015, - &-0.014,-0.014,-0.013,-0.013,-0.012,-0.012,-0.011,-0.011,-0.010, - &-0.010,-0.010,-0.009,-0.009,-0.008,-0.008,-0.008,-0.007,-0.007, - &-0.007,-0.006,-0.006,-0.006,-0.005,-0.005,-0.005,-0.005,-0.004, - &-0.004,-0.004,-0.004,-0.003,-0.003,-0.003,-0.003,-0.003,-0.002, - &-0.002,-0.002,-0.002,-0.002,-0.002,-0.001,-0.001,-0.001,-0.001, - &-0.001,-0.001,-0.001,-0.001, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000 - & /) -! -! *** (2H,SO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC07M_273 = (/ - &-0.095,-0.207,-0.263,-0.303,-0.333,-0.359,-0.381,-0.400,-0.417, - &-0.432,-0.446,-0.459,-0.471,-0.482,-0.492,-0.502,-0.511,-0.520, - &-0.528,-0.536,-0.543,-0.550,-0.557,-0.564,-0.570,-0.576,-0.582, - &-0.588,-0.593,-0.598,-0.603,-0.608,-0.613,-0.618,-0.622,-0.627, - &-0.631,-0.635,-0.640,-0.644,-0.648,-0.651,-0.655,-0.659,-0.662, - &-0.666,-0.669,-0.673,-0.676,-0.679,-0.682,-0.686,-0.689,-0.692, - &-0.695,-0.698,-0.700,-0.703,-0.706,-0.709,-0.712,-0.714,-0.717, - &-0.719,-0.722,-0.724,-0.727,-0.729,-0.732,-0.734,-0.736,-0.739, - &-0.741,-0.743,-0.746,-0.748,-0.750,-0.752,-0.754,-0.756,-0.758, - &-0.761,-0.763,-0.765,-0.767,-0.769,-0.771,-0.773,-0.774,-0.776, - &-0.778,-0.780,-0.782,-0.784,-0.786,-0.787,-0.789,-0.791,-0.793, - &-0.795,-0.796,-0.798,-0.800,-0.802,-0.803,-0.805,-0.807,-0.808, - &-0.810,-0.811,-0.813,-0.815,-0.816,-0.818,-0.819,-0.821,-0.823, - &-0.824,-0.826,-0.827,-0.829,-0.830,-0.832,-0.833,-0.835,-0.836, - &-0.838,-0.839,-0.841,-0.842,-0.843,-0.845,-0.846,-0.848,-0.849, - &-0.850,-0.852,-0.853,-0.854,-0.856,-0.857,-0.858,-0.860,-0.861, - &-0.862,-0.864,-0.865,-0.866,-0.868,-0.869,-0.870,-0.871,-0.873, - &-0.874,-0.875,-0.876,-0.878,-0.879,-0.880,-0.881,-0.883,-0.884, - &-0.885,-0.886,-0.887,-0.889,-0.890,-0.891,-0.892,-0.893,-0.894, - &-0.896,-0.897,-0.898,-0.899,-0.900,-0.901,-0.902,-0.904,-0.905, - &-0.906,-0.907,-0.908,-0.909,-0.910,-0.911,-0.912,-0.914,-0.915, - &-0.916,-0.917,-0.918,-0.919,-0.920,-0.921,-0.922,-0.923,-0.924, - &-0.925,-0.926,-0.927,-0.928,-0.929,-0.930,-0.931,-0.932,-0.933, - &-0.934,-0.935,-0.936,-0.937,-0.938,-0.939,-0.940,-0.941,-0.942, - &-0.943,-0.944,-0.945,-0.946,-0.947,-0.948,-0.949,-0.950,-0.951, - &-0.952,-0.953,-0.954,-0.955,-0.956,-0.957,-0.958,-0.959,-0.960, - &-0.960,-0.961,-0.962,-0.963,-0.964,-0.965,-0.966,-0.967,-0.968, - &-0.969,-0.970,-0.970,-0.971,-0.972,-0.973,-0.974,-0.975,-0.976, - &-0.977,-0.978,-0.978,-0.979,-0.980,-0.981,-0.982,-0.983,-0.984, - &-0.985,-0.985,-0.986,-0.987,-0.988,-0.989,-0.990,-0.991,-0.991, - &-0.992,-0.993,-0.994,-0.995,-0.996,-0.996,-0.997,-0.998,-0.999, - &-1.000,-1.001,-1.001,-1.002,-1.003,-1.004,-1.005,-1.005,-1.006, - &-1.007,-1.008,-1.009,-1.010,-1.010,-1.011,-1.012,-1.013,-1.014, - &-1.014,-1.015,-1.016,-1.017,-1.017,-1.018,-1.019,-1.020,-1.021, - &-1.021,-1.022,-1.023,-1.024,-1.025,-1.025,-1.026,-1.027,-1.028, - &-1.028,-1.029,-1.030,-1.031,-1.031,-1.032,-1.033,-1.034,-1.034, - &-1.035,-1.036,-1.037,-1.037,-1.038,-1.039,-1.040,-1.040,-1.041, - &-1.042,-1.043,-1.043,-1.044,-1.045,-1.046,-1.046,-1.047,-1.048, - &-1.049,-1.049,-1.050,-1.051,-1.051,-1.052,-1.053,-1.054,-1.054, - &-1.055,-1.056,-1.057,-1.057,-1.058,-1.059,-1.059,-1.060,-1.061, - &-1.061,-1.062,-1.063,-1.064,-1.064,-1.065,-1.066,-1.066,-1.067, - &-1.068,-1.069,-1.069,-1.070,-1.071,-1.071,-1.072,-1.073,-1.073, - &-1.074,-1.075,-1.075,-1.076,-1.077,-1.078,-1.078,-1.079,-1.080, - &-1.080,-1.081,-1.082,-1.082,-1.083,-1.084,-1.084,-1.085,-1.086, - &-1.086,-1.087,-1.088,-1.088,-1.096,-1.102,-1.109,-1.115,-1.121, - &-1.127,-1.134,-1.140,-1.146,-1.152,-1.158,-1.163,-1.169,-1.175, - &-1.181,-1.186,-1.192,-1.198,-1.203,-1.209,-1.214,-1.219,-1.225, - &-1.230,-1.235,-1.241,-1.246,-1.251,-1.256,-1.261,-1.266,-1.271, - &-1.276,-1.281,-1.286,-1.291,-1.296,-1.301,-1.306,-1.311,-1.315, - &-1.320,-1.325,-1.330,-1.334,-1.339,-1.344,-1.348,-1.353,-1.358, - &-1.362,-1.367,-1.371,-1.376,-1.380,-1.385,-1.389,-1.394,-1.398, - &-1.403,-1.407,-1.412,-1.416,-1.420,-1.425,-1.429,-1.434,-1.438, - &-1.442,-1.447,-1.451,-1.455,-1.459,-1.464,-1.468,-1.472,-1.476, - &-1.480,-1.485,-1.489,-1.493,-1.497,-1.501,-1.505,-1.510,-1.514, - &-1.518,-1.522,-1.526,-1.530,-1.534,-1.538,-1.542,-1.546,-1.550, - &-1.554,-1.558,-1.562,-1.566,-1.570,-1.574,-1.578,-1.582,-1.586, - &-1.590,-1.594,-1.598,-1.602,-1.606,-1.610,-1.614,-1.618,-1.622, - &-1.625,-1.629,-1.633,-1.637,-1.641,-1.645,-1.649,-1.652,-1.656, - &-1.660,-1.664,-1.668,-1.672,-1.675,-1.679,-1.683,-1.687,-1.690, - &-1.694,-1.698,-1.702,-1.706,-1.709,-1.713,-1.717,-1.721,-1.724, - &-1.728,-1.732,-1.735,-1.739,-1.743,-1.747,-1.750,-1.754,-1.758, - &-1.761,-1.765,-1.769,-1.772,-1.776,-1.780,-1.783,-1.787,-1.791, - &-1.794,-1.798,-1.801 - & /) -! -! *** (H,HSO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC08M_273 = (/ - &-0.045,-0.089,-0.107,-0.117,-0.124,-0.128,-0.131,-0.132,-0.133, - &-0.132,-0.132,-0.130,-0.128,-0.126,-0.123,-0.120,-0.117,-0.113, - &-0.109,-0.105,-0.101,-0.096,-0.091,-0.086,-0.081,-0.076,-0.070, - &-0.065,-0.059,-0.053,-0.047,-0.040,-0.034,-0.027,-0.021,-0.014, - &-0.007, 0.000, 0.007, 0.014, 0.021, 0.028, 0.036, 0.043, 0.051, - & 0.058, 0.066, 0.074, 0.082, 0.089, 0.097, 0.105, 0.113, 0.121, - & 0.130, 0.138, 0.146, 0.154, 0.163, 0.171, 0.179, 0.188, 0.196, - & 0.205, 0.214, 0.222, 0.231, 0.240, 0.248, 0.257, 0.266, 0.275, - & 0.284, 0.293, 0.302, 0.311, 0.320, 0.329, 0.338, 0.347, 0.357, - & 0.366, 0.375, 0.385, 0.394, 0.404, 0.413, 0.423, 0.433, 0.442, - & 0.452, 0.462, 0.472, 0.482, 0.492, 0.502, 0.512, 0.522, 0.532, - & 0.542, 0.552, 0.563, 0.573, 0.583, 0.594, 0.604, 0.614, 0.625, - & 0.635, 0.646, 0.656, 0.667, 0.677, 0.688, 0.698, 0.709, 0.719, - & 0.730, 0.741, 0.751, 0.762, 0.772, 0.783, 0.794, 0.804, 0.815, - & 0.825, 0.836, 0.846, 0.857, 0.867, 0.878, 0.888, 0.899, 0.909, - & 0.920, 0.930, 0.941, 0.951, 0.962, 0.972, 0.982, 0.993, 1.003, - & 1.014, 1.024, 1.034, 1.044, 1.055, 1.065, 1.075, 1.085, 1.096, - & 1.106, 1.116, 1.126, 1.136, 1.146, 1.156, 1.166, 1.176, 1.186, - & 1.196, 1.206, 1.216, 1.226, 1.236, 1.246, 1.256, 1.266, 1.276, - & 1.285, 1.295, 1.305, 1.315, 1.325, 1.334, 1.344, 1.354, 1.363, - & 1.373, 1.383, 1.392, 1.402, 1.411, 1.421, 1.430, 1.440, 1.449, - & 1.459, 1.468, 1.478, 1.487, 1.496, 1.506, 1.515, 1.524, 1.534, - & 1.543, 1.552, 1.561, 1.571, 1.580, 1.589, 1.598, 1.607, 1.616, - & 1.625, 1.634, 1.643, 1.652, 1.661, 1.670, 1.679, 1.688, 1.697, - & 1.706, 1.715, 1.724, 1.733, 1.742, 1.750, 1.759, 1.768, 1.777, - & 1.786, 1.794, 1.803, 1.812, 1.820, 1.829, 1.838, 1.846, 1.855, - & 1.863, 1.872, 1.880, 1.889, 1.897, 1.906, 1.914, 1.923, 1.931, - & 1.940, 1.948, 1.956, 1.965, 1.973, 1.981, 1.990, 1.998, 2.006, - & 2.015, 2.023, 2.031, 2.039, 2.047, 2.056, 2.064, 2.072, 2.080, - & 2.088, 2.096, 2.104, 2.112, 2.120, 2.128, 2.136, 2.144, 2.152, - & 2.160, 2.168, 2.176, 2.184, 2.192, 2.200, 2.207, 2.215, 2.223, - & 2.231, 2.239, 2.246, 2.254, 2.262, 2.270, 2.277, 2.285, 2.293, - & 2.300, 2.308, 2.316, 2.323, 2.331, 2.339, 2.346, 2.354, 2.361, - & 2.369, 2.376, 2.384, 2.391, 2.399, 2.406, 2.414, 2.421, 2.428, - & 2.436, 2.443, 2.451, 2.458, 2.465, 2.473, 2.480, 2.487, 2.494, - & 2.502, 2.509, 2.516, 2.523, 2.531, 2.538, 2.545, 2.552, 2.559, - & 2.566, 2.574, 2.581, 2.588, 2.595, 2.602, 2.609, 2.616, 2.623, - & 2.630, 2.637, 2.644, 2.651, 2.658, 2.665, 2.672, 2.679, 2.686, - & 2.693, 2.700, 2.707, 2.713, 2.720, 2.727, 2.734, 2.741, 2.748, - & 2.754, 2.761, 2.768, 2.775, 2.781, 2.788, 2.795, 2.802, 2.808, - & 2.815, 2.822, 2.828, 2.835, 2.842, 2.848, 2.855, 2.862, 2.868, - & 2.875, 2.881, 2.888, 2.894, 2.901, 2.907, 2.914, 2.920, 2.927, - & 2.933, 2.940, 2.946, 2.953, 2.959, 2.966, 2.972, 2.978, 2.985, - & 2.991, 2.998, 3.004, 3.010, 3.017, 3.023, 3.029, 3.036, 3.042, - & 3.048, 3.054, 3.061, 3.067, 3.134, 3.195, 3.254, 3.313, 3.371, - & 3.428, 3.485, 3.540, 3.595, 3.648, 3.701, 3.754, 3.805, 3.856, - & 3.906, 3.955, 4.004, 4.052, 4.100, 4.147, 4.193, 4.239, 4.284, - & 4.328, 4.372, 4.416, 4.459, 4.501, 4.543, 4.585, 4.626, 4.666, - & 4.707, 4.746, 4.786, 4.824, 4.863, 4.901, 4.938, 4.976, 5.013, - & 5.049, 5.085, 5.121, 5.156, 5.191, 5.226, 5.260, 5.294, 5.328, - & 5.361, 5.395, 5.427, 5.460, 5.492, 5.524, 5.555, 5.587, 5.618, - & 5.649, 5.679, 5.709, 5.739, 5.769, 5.799, 5.828, 5.857, 5.886, - & 5.914, 5.942, 5.971, 5.998, 6.026, 6.053, 6.081, 6.108, 6.134, - & 6.161, 6.187, 6.214, 6.240, 6.265, 6.291, 6.316, 6.342, 6.367, - & 6.392, 6.416, 6.441, 6.465, 6.489, 6.513, 6.537, 6.561, 6.584, - & 6.608, 6.631, 6.654, 6.677, 6.699, 6.722, 6.744, 6.767, 6.789, - & 6.811, 6.833, 6.854, 6.876, 6.897, 6.919, 6.940, 6.961, 6.982, - & 7.003, 7.023, 7.044, 7.064, 7.085, 7.105, 7.125, 7.145, 7.165, - & 7.184, 7.204, 7.223, 7.243, 7.262, 7.281, 7.300, 7.319, 7.338, - & 7.356, 7.375, 7.394, 7.412, 7.430, 7.448, 7.467, 7.485, 7.502, - & 7.520, 7.538, 7.556, 7.573, 7.591, 7.608, 7.625, 7.642, 7.659, - & 7.676, 7.693, 7.710, 7.727, 7.743, 7.760, 7.776, 7.793, 7.809, - & 7.825, 7.841, 7.858 - & /) -! -! *** NH4HSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC09M_273 = (/ - &-0.047,-0.099,-0.125,-0.142,-0.155,-0.166,-0.175,-0.182,-0.189, - &-0.195,-0.200,-0.204,-0.208,-0.212,-0.215,-0.218,-0.221,-0.223, - &-0.225,-0.227,-0.228,-0.230,-0.231,-0.232,-0.233,-0.234,-0.235, - &-0.235,-0.235,-0.236,-0.236,-0.236,-0.236,-0.235,-0.235,-0.235, - &-0.234,-0.233,-0.233,-0.232,-0.231,-0.230,-0.229,-0.228,-0.227, - &-0.226,-0.224,-0.223,-0.222,-0.220,-0.219,-0.217,-0.215,-0.214, - &-0.212,-0.210,-0.208,-0.207,-0.205,-0.203,-0.201,-0.199,-0.197, - &-0.195,-0.192,-0.190,-0.188,-0.186,-0.183,-0.181,-0.179,-0.176, - &-0.174,-0.171,-0.169,-0.166,-0.164,-0.161,-0.159,-0.156,-0.153, - &-0.151,-0.148,-0.145,-0.143,-0.140,-0.137,-0.134,-0.131,-0.128, - &-0.125,-0.122,-0.120,-0.117,-0.114,-0.110,-0.107,-0.104,-0.101, - &-0.098,-0.095,-0.092,-0.089,-0.085,-0.082,-0.079,-0.076,-0.073, - &-0.069,-0.066,-0.063,-0.060,-0.056,-0.053,-0.050,-0.046,-0.043, - &-0.040,-0.036,-0.033,-0.030,-0.026,-0.023,-0.020,-0.016,-0.013, - &-0.010,-0.006,-0.003, 0.000, 0.004, 0.007, 0.010, 0.014, 0.017, - & 0.020, 0.024, 0.027, 0.030, 0.034, 0.037, 0.040, 0.043, 0.047, - & 0.050, 0.053, 0.056, 0.060, 0.063, 0.066, 0.069, 0.073, 0.076, - & 0.079, 0.082, 0.086, 0.089, 0.092, 0.095, 0.098, 0.101, 0.105, - & 0.108, 0.111, 0.114, 0.117, 0.120, 0.123, 0.127, 0.130, 0.133, - & 0.136, 0.139, 0.142, 0.145, 0.148, 0.151, 0.154, 0.157, 0.160, - & 0.163, 0.166, 0.170, 0.173, 0.176, 0.179, 0.182, 0.184, 0.187, - & 0.190, 0.193, 0.196, 0.199, 0.202, 0.205, 0.208, 0.211, 0.214, - & 0.217, 0.220, 0.223, 0.226, 0.228, 0.231, 0.234, 0.237, 0.240, - & 0.243, 0.246, 0.248, 0.251, 0.254, 0.257, 0.260, 0.262, 0.265, - & 0.268, 0.271, 0.274, 0.276, 0.279, 0.282, 0.285, 0.287, 0.290, - & 0.293, 0.296, 0.298, 0.301, 0.304, 0.306, 0.309, 0.312, 0.315, - & 0.317, 0.320, 0.323, 0.325, 0.328, 0.330, 0.333, 0.336, 0.338, - & 0.341, 0.344, 0.346, 0.349, 0.351, 0.354, 0.357, 0.359, 0.362, - & 0.364, 0.367, 0.369, 0.372, 0.375, 0.377, 0.380, 0.382, 0.385, - & 0.387, 0.390, 0.392, 0.395, 0.397, 0.400, 0.402, 0.405, 0.407, - & 0.410, 0.412, 0.415, 0.417, 0.419, 0.422, 0.424, 0.427, 0.429, - & 0.432, 0.434, 0.437, 0.439, 0.441, 0.444, 0.446, 0.449, 0.451, - & 0.453, 0.456, 0.458, 0.460, 0.463, 0.465, 0.467, 0.470, 0.472, - & 0.474, 0.477, 0.479, 0.481, 0.484, 0.486, 0.488, 0.491, 0.493, - & 0.495, 0.498, 0.500, 0.502, 0.504, 0.507, 0.509, 0.511, 0.513, - & 0.516, 0.518, 0.520, 0.522, 0.525, 0.527, 0.529, 0.531, 0.534, - & 0.536, 0.538, 0.540, 0.542, 0.545, 0.547, 0.549, 0.551, 0.553, - & 0.556, 0.558, 0.560, 0.562, 0.564, 0.566, 0.569, 0.571, 0.573, - & 0.575, 0.577, 0.579, 0.581, 0.584, 0.586, 0.588, 0.590, 0.592, - & 0.594, 0.596, 0.598, 0.600, 0.602, 0.605, 0.607, 0.609, 0.611, - & 0.613, 0.615, 0.617, 0.619, 0.621, 0.623, 0.625, 0.627, 0.629, - & 0.631, 0.633, 0.635, 0.637, 0.639, 0.642, 0.644, 0.646, 0.648, - & 0.650, 0.652, 0.654, 0.656, 0.658, 0.660, 0.662, 0.663, 0.665, - & 0.667, 0.669, 0.671, 0.673, 0.675, 0.677, 0.679, 0.681, 0.683, - & 0.685, 0.687, 0.689, 0.691, 0.712, 0.730, 0.749, 0.767, 0.785, - & 0.803, 0.820, 0.837, 0.854, 0.871, 0.887, 0.903, 0.919, 0.935, - & 0.950, 0.965, 0.980, 0.995, 1.010, 1.024, 1.039, 1.053, 1.067, - & 1.080, 1.094, 1.107, 1.120, 1.133, 1.146, 1.159, 1.172, 1.184, - & 1.196, 1.209, 1.221, 1.232, 1.244, 1.256, 1.267, 1.279, 1.290, - & 1.301, 1.312, 1.323, 1.334, 1.344, 1.355, 1.365, 1.376, 1.386, - & 1.396, 1.406, 1.416, 1.426, 1.436, 1.445, 1.455, 1.464, 1.474, - & 1.483, 1.492, 1.501, 1.511, 1.519, 1.528, 1.537, 1.546, 1.555, - & 1.563, 1.572, 1.580, 1.588, 1.597, 1.605, 1.613, 1.621, 1.629, - & 1.637, 1.645, 1.653, 1.660, 1.668, 1.676, 1.683, 1.691, 1.698, - & 1.706, 1.713, 1.720, 1.727, 1.734, 1.742, 1.749, 1.756, 1.763, - & 1.769, 1.776, 1.783, 1.790, 1.796, 1.803, 1.810, 1.816, 1.823, - & 1.829, 1.835, 1.842, 1.848, 1.854, 1.861, 1.867, 1.873, 1.879, - & 1.885, 1.891, 1.897, 1.903, 1.909, 1.915, 1.920, 1.926, 1.932, - & 1.938, 1.943, 1.949, 1.954, 1.960, 1.965, 1.971, 1.976, 1.982, - & 1.987, 1.992, 1.998, 2.003, 2.008, 2.013, 2.018, 2.024, 2.029, - & 2.034, 2.039, 2.044, 2.049, 2.054, 2.059, 2.063, 2.068, 2.073, - & 2.078, 2.083, 2.087, 2.092, 2.097, 2.101, 2.106, 2.111, 2.115, - & 2.120, 2.124, 2.129 - & /) -! -! *** (H,NO3) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC10M_273 = (/ - &-0.046,-0.096,-0.118,-0.132,-0.142,-0.150,-0.156,-0.161,-0.164, - &-0.167,-0.170,-0.171,-0.173,-0.174,-0.174,-0.175,-0.175,-0.175, - &-0.175,-0.174,-0.174,-0.173,-0.172,-0.171,-0.170,-0.169,-0.168, - &-0.167,-0.165,-0.164,-0.163,-0.161,-0.160,-0.158,-0.156,-0.155, - &-0.153,-0.151,-0.150,-0.148,-0.146,-0.144,-0.142,-0.141,-0.139, - &-0.137,-0.135,-0.133,-0.131,-0.129,-0.127,-0.125,-0.124,-0.122, - &-0.120,-0.118,-0.116,-0.114,-0.112,-0.110,-0.108,-0.106,-0.104, - &-0.102,-0.100,-0.098,-0.096,-0.094,-0.092,-0.090,-0.088,-0.086, - &-0.084,-0.082,-0.080,-0.078,-0.076,-0.074,-0.071,-0.069,-0.067, - &-0.065,-0.063,-0.061,-0.058,-0.056,-0.054,-0.052,-0.049,-0.047, - &-0.045,-0.043,-0.040,-0.038,-0.035,-0.033,-0.031,-0.028,-0.026, - &-0.023,-0.021,-0.019,-0.016,-0.014,-0.011,-0.009,-0.006,-0.004, - &-0.001, 0.001, 0.004, 0.007, 0.009, 0.012, 0.014, 0.017, 0.019, - & 0.022, 0.025, 0.027, 0.030, 0.032, 0.035, 0.038, 0.040, 0.043, - & 0.045, 0.048, 0.051, 0.053, 0.056, 0.058, 0.061, 0.064, 0.066, - & 0.069, 0.071, 0.074, 0.077, 0.079, 0.082, 0.084, 0.087, 0.090, - & 0.092, 0.095, 0.097, 0.100, 0.103, 0.105, 0.108, 0.110, 0.113, - & 0.115, 0.118, 0.121, 0.123, 0.126, 0.128, 0.131, 0.133, 0.136, - & 0.138, 0.141, 0.143, 0.146, 0.148, 0.151, 0.154, 0.156, 0.159, - & 0.161, 0.164, 0.166, 0.169, 0.171, 0.174, 0.176, 0.179, 0.181, - & 0.184, 0.186, 0.189, 0.191, 0.193, 0.196, 0.198, 0.201, 0.203, - & 0.206, 0.208, 0.211, 0.213, 0.216, 0.218, 0.220, 0.223, 0.225, - & 0.228, 0.230, 0.232, 0.235, 0.237, 0.240, 0.242, 0.245, 0.247, - & 0.249, 0.252, 0.254, 0.256, 0.259, 0.261, 0.264, 0.266, 0.268, - & 0.271, 0.273, 0.275, 0.278, 0.280, 0.282, 0.285, 0.287, 0.289, - & 0.292, 0.294, 0.296, 0.299, 0.301, 0.303, 0.306, 0.308, 0.310, - & 0.312, 0.315, 0.317, 0.319, 0.322, 0.324, 0.326, 0.328, 0.331, - & 0.333, 0.335, 0.337, 0.340, 0.342, 0.344, 0.346, 0.349, 0.351, - & 0.353, 0.355, 0.357, 0.360, 0.362, 0.364, 0.366, 0.369, 0.371, - & 0.373, 0.375, 0.377, 0.379, 0.382, 0.384, 0.386, 0.388, 0.390, - & 0.393, 0.395, 0.397, 0.399, 0.401, 0.403, 0.405, 0.408, 0.410, - & 0.412, 0.414, 0.416, 0.418, 0.420, 0.422, 0.425, 0.427, 0.429, - & 0.431, 0.433, 0.435, 0.437, 0.439, 0.441, 0.443, 0.445, 0.448, - & 0.450, 0.452, 0.454, 0.456, 0.458, 0.460, 0.462, 0.464, 0.466, - & 0.468, 0.470, 0.472, 0.474, 0.476, 0.478, 0.480, 0.482, 0.484, - & 0.486, 0.488, 0.490, 0.492, 0.494, 0.496, 0.498, 0.500, 0.502, - & 0.504, 0.506, 0.508, 0.510, 0.512, 0.514, 0.516, 0.518, 0.520, - & 0.522, 0.524, 0.526, 0.528, 0.530, 0.532, 0.534, 0.536, 0.537, - & 0.539, 0.541, 0.543, 0.545, 0.547, 0.549, 0.551, 0.553, 0.555, - & 0.557, 0.558, 0.560, 0.562, 0.564, 0.566, 0.568, 0.570, 0.572, - & 0.574, 0.575, 0.577, 0.579, 0.581, 0.583, 0.585, 0.587, 0.588, - & 0.590, 0.592, 0.594, 0.596, 0.598, 0.599, 0.601, 0.603, 0.605, - & 0.607, 0.609, 0.610, 0.612, 0.614, 0.616, 0.618, 0.619, 0.621, - & 0.623, 0.625, 0.627, 0.628, 0.630, 0.632, 0.634, 0.635, 0.637, - & 0.639, 0.641, 0.643, 0.644, 0.663, 0.680, 0.697, 0.714, 0.730, - & 0.747, 0.763, 0.778, 0.794, 0.809, 0.824, 0.839, 0.854, 0.868, - & 0.883, 0.897, 0.911, 0.924, 0.938, 0.951, 0.965, 0.978, 0.990, - & 1.003, 1.016, 1.028, 1.040, 1.053, 1.065, 1.076, 1.088, 1.100, - & 1.111, 1.122, 1.133, 1.145, 1.155, 1.166, 1.177, 1.188, 1.198, - & 1.208, 1.219, 1.229, 1.239, 1.249, 1.258, 1.268, 1.278, 1.287, - & 1.297, 1.306, 1.315, 1.324, 1.333, 1.342, 1.351, 1.360, 1.369, - & 1.377, 1.386, 1.394, 1.403, 1.411, 1.419, 1.428, 1.436, 1.444, - & 1.452, 1.459, 1.467, 1.475, 1.483, 1.490, 1.498, 1.505, 1.513, - & 1.520, 1.527, 1.535, 1.542, 1.549, 1.556, 1.563, 1.570, 1.577, - & 1.584, 1.590, 1.597, 1.604, 1.610, 1.617, 1.623, 1.630, 1.636, - & 1.643, 1.649, 1.655, 1.661, 1.667, 1.674, 1.680, 1.686, 1.692, - & 1.698, 1.703, 1.709, 1.715, 1.721, 1.727, 1.732, 1.738, 1.744, - & 1.749, 1.755, 1.760, 1.766, 1.771, 1.776, 1.782, 1.787, 1.792, - & 1.797, 1.803, 1.808, 1.813, 1.818, 1.823, 1.828, 1.833, 1.838, - & 1.843, 1.848, 1.853, 1.857, 1.862, 1.867, 1.872, 1.876, 1.881, - & 1.886, 1.890, 1.895, 1.899, 1.904, 1.908, 1.913, 1.917, 1.922, - & 1.926, 1.930, 1.935, 1.939, 1.943, 1.948, 1.952, 1.956, 1.960, - & 1.964, 1.968, 1.973 - & /) -! -! *** (H,Cl) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC11M_273 = (/ - &-0.045,-0.090,-0.108,-0.119,-0.126,-0.130,-0.133,-0.135,-0.135, - &-0.135,-0.134,-0.133,-0.131,-0.129,-0.126,-0.124,-0.121,-0.117, - &-0.114,-0.110,-0.106,-0.102,-0.098,-0.093,-0.089,-0.084,-0.079, - &-0.075,-0.070,-0.065,-0.059,-0.054,-0.049,-0.044,-0.038,-0.033, - &-0.027,-0.022,-0.016,-0.010,-0.004, 0.001, 0.007, 0.013, 0.019, - & 0.025, 0.031, 0.037, 0.043, 0.049, 0.055, 0.061, 0.067, 0.073, - & 0.079, 0.085, 0.091, 0.098, 0.104, 0.110, 0.116, 0.122, 0.129, - & 0.135, 0.141, 0.147, 0.154, 0.160, 0.166, 0.173, 0.179, 0.185, - & 0.192, 0.198, 0.205, 0.211, 0.218, 0.224, 0.231, 0.238, 0.244, - & 0.251, 0.258, 0.264, 0.271, 0.278, 0.285, 0.292, 0.298, 0.305, - & 0.312, 0.319, 0.326, 0.333, 0.341, 0.348, 0.355, 0.362, 0.369, - & 0.377, 0.384, 0.391, 0.398, 0.406, 0.413, 0.421, 0.428, 0.435, - & 0.443, 0.450, 0.458, 0.465, 0.473, 0.480, 0.488, 0.495, 0.503, - & 0.510, 0.518, 0.526, 0.533, 0.541, 0.548, 0.556, 0.563, 0.571, - & 0.578, 0.586, 0.594, 0.601, 0.609, 0.616, 0.624, 0.631, 0.639, - & 0.646, 0.654, 0.661, 0.669, 0.676, 0.684, 0.691, 0.699, 0.706, - & 0.713, 0.721, 0.728, 0.736, 0.743, 0.750, 0.758, 0.765, 0.772, - & 0.780, 0.787, 0.794, 0.802, 0.809, 0.816, 0.823, 0.831, 0.838, - & 0.845, 0.852, 0.859, 0.867, 0.874, 0.881, 0.888, 0.895, 0.902, - & 0.909, 0.916, 0.924, 0.931, 0.938, 0.945, 0.952, 0.959, 0.966, - & 0.973, 0.980, 0.987, 0.994, 1.000, 1.007, 1.014, 1.021, 1.028, - & 1.035, 1.042, 1.049, 1.055, 1.062, 1.069, 1.076, 1.082, 1.089, - & 1.096, 1.103, 1.109, 1.116, 1.123, 1.129, 1.136, 1.143, 1.149, - & 1.156, 1.163, 1.169, 1.176, 1.182, 1.189, 1.195, 1.202, 1.208, - & 1.215, 1.221, 1.228, 1.234, 1.241, 1.247, 1.254, 1.260, 1.266, - & 1.273, 1.279, 1.286, 1.292, 1.298, 1.305, 1.311, 1.317, 1.323, - & 1.330, 1.336, 1.342, 1.348, 1.355, 1.361, 1.367, 1.373, 1.379, - & 1.386, 1.392, 1.398, 1.404, 1.410, 1.416, 1.422, 1.428, 1.434, - & 1.440, 1.446, 1.452, 1.458, 1.464, 1.470, 1.476, 1.482, 1.488, - & 1.494, 1.500, 1.506, 1.512, 1.518, 1.524, 1.530, 1.535, 1.541, - & 1.547, 1.553, 1.559, 1.564, 1.570, 1.576, 1.582, 1.588, 1.593, - & 1.599, 1.605, 1.610, 1.616, 1.622, 1.628, 1.633, 1.639, 1.644, - & 1.650, 1.656, 1.661, 1.667, 1.672, 1.678, 1.684, 1.689, 1.695, - & 1.700, 1.706, 1.711, 1.717, 1.722, 1.728, 1.733, 1.739, 1.744, - & 1.750, 1.755, 1.760, 1.766, 1.771, 1.777, 1.782, 1.787, 1.793, - & 1.798, 1.803, 1.809, 1.814, 1.819, 1.825, 1.830, 1.835, 1.840, - & 1.846, 1.851, 1.856, 1.861, 1.867, 1.872, 1.877, 1.882, 1.887, - & 1.893, 1.898, 1.903, 1.908, 1.913, 1.918, 1.923, 1.929, 1.934, - & 1.939, 1.944, 1.949, 1.954, 1.959, 1.964, 1.969, 1.974, 1.979, - & 1.984, 1.989, 1.994, 1.999, 2.004, 2.009, 2.014, 2.019, 2.024, - & 2.029, 2.034, 2.039, 2.044, 2.048, 2.053, 2.058, 2.063, 2.068, - & 2.073, 2.078, 2.082, 2.087, 2.092, 2.097, 2.102, 2.107, 2.111, - & 2.116, 2.121, 2.126, 2.130, 2.135, 2.140, 2.145, 2.149, 2.154, - & 2.159, 2.163, 2.168, 2.173, 2.177, 2.182, 2.187, 2.191, 2.196, - & 2.201, 2.205, 2.210, 2.215, 2.264, 2.309, 2.353, 2.396, 2.439, - & 2.481, 2.523, 2.564, 2.604, 2.643, 2.683, 2.721, 2.759, 2.797, - & 2.834, 2.870, 2.906, 2.941, 2.976, 3.011, 3.045, 3.079, 3.112, - & 3.145, 3.177, 3.210, 3.241, 3.273, 3.304, 3.334, 3.364, 3.394, - & 3.424, 3.453, 3.482, 3.511, 3.539, 3.567, 3.595, 3.622, 3.649, - & 3.676, 3.702, 3.729, 3.755, 3.781, 3.806, 3.831, 3.856, 3.881, - & 3.906, 3.930, 3.954, 3.978, 4.002, 4.025, 4.048, 4.071, 4.094, - & 4.117, 4.139, 4.161, 4.183, 4.205, 4.227, 4.248, 4.270, 4.291, - & 4.312, 4.332, 4.353, 4.373, 4.394, 4.414, 4.434, 4.453, 4.473, - & 4.493, 4.512, 4.531, 4.550, 4.569, 4.588, 4.606, 4.625, 4.643, - & 4.661, 4.679, 4.697, 4.715, 4.733, 4.750, 4.768, 4.785, 4.802, - & 4.819, 4.836, 4.853, 4.870, 4.886, 4.903, 4.919, 4.936, 4.952, - & 4.968, 4.984, 5.000, 5.015, 5.031, 5.046, 5.062, 5.077, 5.093, - & 5.108, 5.123, 5.138, 5.153, 5.167, 5.182, 5.197, 5.211, 5.226, - & 5.240, 5.254, 5.268, 5.282, 5.296, 5.310, 5.324, 5.338, 5.352, - & 5.365, 5.379, 5.392, 5.406, 5.419, 5.432, 5.445, 5.458, 5.471, - & 5.484, 5.497, 5.510, 5.523, 5.535, 5.548, 5.560, 5.573, 5.585, - & 5.598, 5.610, 5.622, 5.634, 5.646, 5.658, 5.670, 5.682, 5.694, - & 5.706, 5.717, 5.729 - & /) -! -! *** NaHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC12M_273 = (/ - &-0.046,-0.096,-0.118,-0.132,-0.143,-0.151,-0.158,-0.163,-0.167, - &-0.170,-0.173,-0.175,-0.177,-0.178,-0.179,-0.180,-0.180,-0.180, - &-0.180,-0.180,-0.179,-0.179,-0.178,-0.177,-0.176,-0.174,-0.173, - &-0.171,-0.170,-0.168,-0.166,-0.164,-0.162,-0.159,-0.157,-0.155, - &-0.152,-0.150,-0.147,-0.144,-0.142,-0.139,-0.136,-0.133,-0.130, - &-0.127,-0.124,-0.120,-0.117,-0.114,-0.110,-0.107,-0.104,-0.100, - &-0.097,-0.093,-0.090,-0.086,-0.082,-0.079,-0.075,-0.071,-0.067, - &-0.064,-0.060,-0.056,-0.052,-0.048,-0.044,-0.040,-0.036,-0.032, - &-0.028,-0.024,-0.020,-0.015,-0.011,-0.007,-0.003, 0.002, 0.006, - & 0.010, 0.015, 0.019, 0.024, 0.028, 0.033, 0.037, 0.042, 0.046, - & 0.051, 0.056, 0.060, 0.065, 0.070, 0.075, 0.079, 0.084, 0.089, - & 0.094, 0.099, 0.104, 0.109, 0.114, 0.119, 0.124, 0.129, 0.134, - & 0.139, 0.144, 0.149, 0.154, 0.159, 0.164, 0.169, 0.174, 0.179, - & 0.184, 0.189, 0.195, 0.200, 0.205, 0.210, 0.215, 0.220, 0.225, - & 0.230, 0.236, 0.241, 0.246, 0.251, 0.256, 0.261, 0.266, 0.271, - & 0.276, 0.281, 0.286, 0.291, 0.297, 0.302, 0.307, 0.312, 0.317, - & 0.322, 0.327, 0.332, 0.337, 0.342, 0.347, 0.352, 0.357, 0.361, - & 0.366, 0.371, 0.376, 0.381, 0.386, 0.391, 0.396, 0.401, 0.406, - & 0.410, 0.415, 0.420, 0.425, 0.430, 0.434, 0.439, 0.444, 0.449, - & 0.454, 0.458, 0.463, 0.468, 0.473, 0.477, 0.482, 0.487, 0.491, - & 0.496, 0.501, 0.505, 0.510, 0.515, 0.519, 0.524, 0.529, 0.533, - & 0.538, 0.542, 0.547, 0.551, 0.556, 0.560, 0.565, 0.570, 0.574, - & 0.579, 0.583, 0.588, 0.592, 0.596, 0.601, 0.605, 0.610, 0.614, - & 0.619, 0.623, 0.627, 0.632, 0.636, 0.641, 0.645, 0.649, 0.654, - & 0.658, 0.662, 0.667, 0.671, 0.675, 0.680, 0.684, 0.688, 0.692, - & 0.697, 0.701, 0.705, 0.709, 0.714, 0.718, 0.722, 0.726, 0.730, - & 0.735, 0.739, 0.743, 0.747, 0.751, 0.755, 0.759, 0.764, 0.768, - & 0.772, 0.776, 0.780, 0.784, 0.788, 0.792, 0.796, 0.800, 0.804, - & 0.808, 0.812, 0.816, 0.820, 0.824, 0.828, 0.832, 0.836, 0.840, - & 0.844, 0.848, 0.852, 0.856, 0.860, 0.864, 0.868, 0.872, 0.875, - & 0.879, 0.883, 0.887, 0.891, 0.895, 0.899, 0.902, 0.906, 0.910, - & 0.914, 0.918, 0.922, 0.925, 0.929, 0.933, 0.937, 0.940, 0.944, - & 0.948, 0.952, 0.955, 0.959, 0.963, 0.967, 0.970, 0.974, 0.978, - & 0.981, 0.985, 0.989, 0.992, 0.996, 1.000, 1.003, 1.007, 1.011, - & 1.014, 1.018, 1.022, 1.025, 1.029, 1.032, 1.036, 1.040, 1.043, - & 1.047, 1.050, 1.054, 1.057, 1.061, 1.064, 1.068, 1.071, 1.075, - & 1.079, 1.082, 1.086, 1.089, 1.092, 1.096, 1.099, 1.103, 1.106, - & 1.110, 1.113, 1.117, 1.120, 1.124, 1.127, 1.130, 1.134, 1.137, - & 1.141, 1.144, 1.147, 1.151, 1.154, 1.158, 1.161, 1.164, 1.168, - & 1.171, 1.174, 1.178, 1.181, 1.184, 1.188, 1.191, 1.194, 1.198, - & 1.201, 1.204, 1.207, 1.211, 1.214, 1.217, 1.220, 1.224, 1.227, - & 1.230, 1.233, 1.237, 1.240, 1.243, 1.246, 1.250, 1.253, 1.256, - & 1.259, 1.262, 1.266, 1.269, 1.272, 1.275, 1.278, 1.281, 1.285, - & 1.288, 1.291, 1.294, 1.297, 1.300, 1.303, 1.306, 1.310, 1.313, - & 1.316, 1.319, 1.322, 1.325, 1.358, 1.388, 1.418, 1.447, 1.476, - & 1.504, 1.532, 1.559, 1.586, 1.613, 1.639, 1.665, 1.691, 1.716, - & 1.741, 1.766, 1.790, 1.814, 1.838, 1.861, 1.884, 1.907, 1.929, - & 1.951, 1.973, 1.995, 2.016, 2.037, 2.058, 2.079, 2.099, 2.120, - & 2.140, 2.159, 2.179, 2.198, 2.217, 2.236, 2.255, 2.274, 2.292, - & 2.310, 2.328, 2.346, 2.363, 2.381, 2.398, 2.415, 2.432, 2.449, - & 2.465, 2.482, 2.498, 2.514, 2.530, 2.546, 2.562, 2.577, 2.592, - & 2.608, 2.623, 2.638, 2.653, 2.667, 2.682, 2.697, 2.711, 2.725, - & 2.739, 2.753, 2.767, 2.781, 2.795, 2.808, 2.822, 2.835, 2.848, - & 2.861, 2.874, 2.887, 2.900, 2.913, 2.925, 2.938, 2.950, 2.963, - & 2.975, 2.987, 2.999, 3.011, 3.023, 3.035, 3.046, 3.058, 3.069, - & 3.081, 3.092, 3.104, 3.115, 3.126, 3.137, 3.148, 3.159, 3.170, - & 3.180, 3.191, 3.202, 3.212, 3.223, 3.233, 3.244, 3.254, 3.264, - & 3.274, 3.284, 3.294, 3.304, 3.314, 3.324, 3.334, 3.343, 3.353, - & 3.363, 3.372, 3.382, 3.391, 3.400, 3.410, 3.419, 3.428, 3.437, - & 3.446, 3.455, 3.464, 3.473, 3.482, 3.491, 3.499, 3.508, 3.517, - & 3.525, 3.534, 3.542, 3.551, 3.559, 3.568, 3.576, 3.584, 3.592, - & 3.601, 3.609, 3.617, 3.625, 3.633, 3.641, 3.649, 3.657, 3.664, - & 3.672, 3.680, 3.688 - & /) -! -! *** (NH4)3H(SO4)2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC13M_273 = (/ - &-0.076,-0.165,-0.209,-0.240,-0.264,-0.284,-0.301,-0.316,-0.329, - &-0.341,-0.352,-0.362,-0.371,-0.379,-0.387,-0.394,-0.401,-0.408, - &-0.414,-0.420,-0.425,-0.430,-0.435,-0.440,-0.444,-0.449,-0.453, - &-0.457,-0.460,-0.464,-0.467,-0.471,-0.474,-0.477,-0.480,-0.483, - &-0.485,-0.488,-0.490,-0.493,-0.495,-0.497,-0.499,-0.501,-0.503, - &-0.505,-0.507,-0.509,-0.510,-0.512,-0.514,-0.515,-0.516,-0.518, - &-0.519,-0.520,-0.522,-0.523,-0.524,-0.525,-0.526,-0.527,-0.528, - &-0.529,-0.530,-0.531,-0.532,-0.532,-0.533,-0.534,-0.534,-0.535, - &-0.536,-0.536,-0.537,-0.537,-0.538,-0.538,-0.539,-0.539,-0.540, - &-0.540,-0.540,-0.541,-0.541,-0.541,-0.542,-0.542,-0.542,-0.542, - &-0.542,-0.543,-0.543,-0.543,-0.543,-0.543,-0.543,-0.543,-0.543, - &-0.543,-0.543,-0.543,-0.543,-0.543,-0.543,-0.543,-0.543,-0.543, - &-0.543,-0.542,-0.542,-0.542,-0.542,-0.542,-0.542,-0.542,-0.541, - &-0.541,-0.541,-0.541,-0.540,-0.540,-0.540,-0.540,-0.540,-0.539, - &-0.539,-0.539,-0.538,-0.538,-0.538,-0.538,-0.537,-0.537,-0.537, - &-0.536,-0.536,-0.536,-0.536,-0.535,-0.535,-0.535,-0.534,-0.534, - &-0.534,-0.533,-0.533,-0.533,-0.532,-0.532,-0.532,-0.531,-0.531, - &-0.530,-0.530,-0.530,-0.529,-0.529,-0.529,-0.528,-0.528,-0.528, - &-0.527,-0.527,-0.527,-0.526,-0.526,-0.525,-0.525,-0.525,-0.524, - &-0.524,-0.524,-0.523,-0.523,-0.522,-0.522,-0.522,-0.521,-0.521, - &-0.521,-0.520,-0.520,-0.519,-0.519,-0.519,-0.518,-0.518,-0.518, - &-0.517,-0.517,-0.516,-0.516,-0.516,-0.515,-0.515,-0.515,-0.514, - &-0.514,-0.513,-0.513,-0.513,-0.512,-0.512,-0.512,-0.511,-0.511, - &-0.510,-0.510,-0.510,-0.509,-0.509,-0.509,-0.508,-0.508,-0.507, - &-0.507,-0.507,-0.506,-0.506,-0.506,-0.505,-0.505,-0.504,-0.504, - &-0.504,-0.503,-0.503,-0.503,-0.502,-0.502,-0.501,-0.501,-0.501, - &-0.500,-0.500,-0.500,-0.499,-0.499,-0.499,-0.498,-0.498,-0.497, - &-0.497,-0.497,-0.496,-0.496,-0.496,-0.495,-0.495,-0.495,-0.494, - &-0.494,-0.493,-0.493,-0.493,-0.492,-0.492,-0.492,-0.491,-0.491, - &-0.491,-0.490,-0.490,-0.490,-0.489,-0.489,-0.489,-0.488,-0.488, - &-0.487,-0.487,-0.487,-0.486,-0.486,-0.486,-0.485,-0.485,-0.485, - &-0.484,-0.484,-0.484,-0.483,-0.483,-0.483,-0.482,-0.482,-0.482, - &-0.481,-0.481,-0.481,-0.480,-0.480,-0.480,-0.479,-0.479,-0.479, - &-0.478,-0.478,-0.478,-0.477,-0.477,-0.477,-0.476,-0.476,-0.476, - &-0.475,-0.475,-0.475,-0.474,-0.474,-0.474,-0.473,-0.473,-0.473, - &-0.472,-0.472,-0.472,-0.471,-0.471,-0.471,-0.471,-0.470,-0.470, - &-0.470,-0.469,-0.469,-0.469,-0.468,-0.468,-0.468,-0.467,-0.467, - &-0.467,-0.466,-0.466,-0.466,-0.466,-0.465,-0.465,-0.465,-0.464, - &-0.464,-0.464,-0.463,-0.463,-0.463,-0.463,-0.462,-0.462,-0.462, - &-0.461,-0.461,-0.461,-0.460,-0.460,-0.460,-0.460,-0.459,-0.459, - &-0.459,-0.458,-0.458,-0.458,-0.458,-0.457,-0.457,-0.457,-0.456, - &-0.456,-0.456,-0.456,-0.455,-0.455,-0.455,-0.454,-0.454,-0.454, - &-0.454,-0.453,-0.453,-0.453,-0.452,-0.452,-0.452,-0.452,-0.451, - &-0.451,-0.451,-0.450,-0.450,-0.450,-0.450,-0.449,-0.449,-0.449, - &-0.449,-0.448,-0.448,-0.448,-0.445,-0.442,-0.440,-0.437,-0.435, - &-0.432,-0.430,-0.428,-0.426,-0.423,-0.421,-0.419,-0.417,-0.415, - &-0.413,-0.411,-0.409,-0.407,-0.406,-0.404,-0.402,-0.401,-0.399, - &-0.397,-0.396,-0.394,-0.393,-0.391,-0.390,-0.389,-0.387,-0.386, - &-0.385,-0.383,-0.382,-0.381,-0.380,-0.379,-0.378,-0.377,-0.376, - &-0.375,-0.374,-0.373,-0.372,-0.371,-0.370,-0.369,-0.368,-0.367, - &-0.367,-0.366,-0.365,-0.364,-0.364,-0.363,-0.362,-0.362,-0.361, - &-0.361,-0.360,-0.360,-0.359,-0.359,-0.358,-0.358,-0.357,-0.357, - &-0.356,-0.356,-0.356,-0.355,-0.355,-0.355,-0.354,-0.354,-0.354, - &-0.354,-0.353,-0.353,-0.353,-0.353,-0.353,-0.352,-0.352,-0.352, - &-0.352,-0.352,-0.352,-0.352,-0.352,-0.352,-0.352,-0.352,-0.352, - &-0.352,-0.352,-0.352,-0.352,-0.352,-0.352,-0.352,-0.352,-0.352, - &-0.352,-0.353,-0.353,-0.353,-0.353,-0.353,-0.353,-0.354,-0.354, - &-0.354,-0.354,-0.355,-0.355,-0.355,-0.355,-0.356,-0.356,-0.356, - &-0.357,-0.357,-0.357,-0.358,-0.358,-0.358,-0.359,-0.359,-0.359, - &-0.360,-0.360,-0.361,-0.361,-0.362,-0.362,-0.362,-0.363,-0.363, - &-0.364,-0.364,-0.365,-0.365,-0.366,-0.366,-0.367,-0.367,-0.368, - &-0.369,-0.369,-0.370,-0.370,-0.371,-0.371,-0.372,-0.373,-0.373, - &-0.374,-0.374,-0.375 - & /) -! -! *** CASO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC14M_273 = (/ - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000 - & /) -! -! *** CANO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC15M_273 = (/ - &-0.094,-0.201,-0.251,-0.286,-0.312,-0.334,-0.351,-0.366,-0.379, - &-0.390,-0.400,-0.409,-0.417,-0.424,-0.430,-0.436,-0.442,-0.447, - &-0.451,-0.455,-0.459,-0.463,-0.466,-0.469,-0.472,-0.475,-0.477, - &-0.479,-0.481,-0.483,-0.485,-0.487,-0.489,-0.490,-0.491,-0.493, - &-0.494,-0.495,-0.496,-0.497,-0.498,-0.499,-0.500,-0.501,-0.501, - &-0.502,-0.503,-0.503,-0.504,-0.504,-0.505,-0.505,-0.505,-0.506, - &-0.506,-0.506,-0.507,-0.507,-0.507,-0.507,-0.507,-0.508,-0.508, - &-0.508,-0.508,-0.508,-0.508,-0.508,-0.508,-0.508,-0.508,-0.508, - &-0.508,-0.507,-0.507,-0.507,-0.507,-0.507,-0.506,-0.506,-0.506, - &-0.506,-0.505,-0.505,-0.505,-0.504,-0.504,-0.503,-0.503,-0.502, - &-0.502,-0.501,-0.501,-0.500,-0.500,-0.499,-0.499,-0.498,-0.497, - &-0.497,-0.496,-0.495,-0.495,-0.494,-0.493,-0.493,-0.492,-0.491, - &-0.490,-0.489,-0.489,-0.488,-0.487,-0.486,-0.485,-0.485,-0.484, - &-0.483,-0.482,-0.481,-0.480,-0.479,-0.478,-0.477,-0.477,-0.476, - &-0.475,-0.474,-0.473,-0.472,-0.471,-0.470,-0.469,-0.468,-0.467, - &-0.466,-0.465,-0.464,-0.463,-0.462,-0.461,-0.460,-0.459,-0.459, - &-0.458,-0.457,-0.456,-0.455,-0.454,-0.453,-0.452,-0.451,-0.450, - &-0.449,-0.448,-0.447,-0.446,-0.445,-0.444,-0.443,-0.442,-0.441, - &-0.440,-0.439,-0.438,-0.437,-0.436,-0.435,-0.434,-0.433,-0.432, - &-0.431,-0.430,-0.429,-0.428,-0.427,-0.426,-0.425,-0.424,-0.423, - &-0.422,-0.421,-0.420,-0.419,-0.418,-0.417,-0.416,-0.415,-0.414, - &-0.413,-0.412,-0.411,-0.410,-0.409,-0.408,-0.407,-0.406,-0.405, - &-0.404,-0.403,-0.402,-0.401,-0.400,-0.399,-0.398,-0.397,-0.396, - &-0.395,-0.394,-0.393,-0.392,-0.391,-0.390,-0.389,-0.388,-0.387, - &-0.386,-0.385,-0.384,-0.383,-0.382,-0.382,-0.381,-0.380,-0.379, - &-0.378,-0.377,-0.376,-0.375,-0.374,-0.373,-0.372,-0.371,-0.370, - &-0.369,-0.368,-0.367,-0.366,-0.365,-0.364,-0.363,-0.362,-0.361, - &-0.360,-0.359,-0.359,-0.358,-0.357,-0.356,-0.355,-0.354,-0.353, - &-0.352,-0.351,-0.350,-0.349,-0.348,-0.347,-0.346,-0.345,-0.344, - &-0.344,-0.343,-0.342,-0.341,-0.340,-0.339,-0.338,-0.337,-0.336, - &-0.335,-0.334,-0.333,-0.332,-0.332,-0.331,-0.330,-0.329,-0.328, - &-0.327,-0.326,-0.325,-0.324,-0.323,-0.323,-0.322,-0.321,-0.320, - &-0.319,-0.318,-0.317,-0.316,-0.315,-0.314,-0.314,-0.313,-0.312, - &-0.311,-0.310,-0.309,-0.308,-0.307,-0.307,-0.306,-0.305,-0.304, - &-0.303,-0.302,-0.301,-0.300,-0.300,-0.299,-0.298,-0.297,-0.296, - &-0.295,-0.294,-0.294,-0.293,-0.292,-0.291,-0.290,-0.289,-0.288, - &-0.288,-0.287,-0.286,-0.285,-0.284,-0.283,-0.282,-0.282,-0.281, - &-0.280,-0.279,-0.278,-0.277,-0.277,-0.276,-0.275,-0.274,-0.273, - &-0.273,-0.272,-0.271,-0.270,-0.269,-0.268,-0.268,-0.267,-0.266, - &-0.265,-0.264,-0.263,-0.263,-0.262,-0.261,-0.260,-0.259,-0.259, - &-0.258,-0.257,-0.256,-0.255,-0.255,-0.254,-0.253,-0.252,-0.251, - &-0.251,-0.250,-0.249,-0.248,-0.248,-0.247,-0.246,-0.245,-0.244, - &-0.244,-0.243,-0.242,-0.241,-0.240,-0.240,-0.239,-0.238,-0.237, - &-0.237,-0.236,-0.235,-0.234,-0.234,-0.233,-0.232,-0.231,-0.230, - &-0.230,-0.229,-0.228,-0.227,-0.219,-0.212,-0.205,-0.198,-0.191, - &-0.184,-0.177,-0.170,-0.163,-0.157,-0.151,-0.144,-0.138,-0.132, - &-0.126,-0.120,-0.114,-0.108,-0.103,-0.097,-0.091,-0.086,-0.081, - &-0.075,-0.070,-0.065,-0.060,-0.055,-0.050,-0.045,-0.041,-0.036, - &-0.031,-0.027,-0.022,-0.018,-0.014,-0.009,-0.005,-0.001, 0.003, - & 0.007, 0.011, 0.015, 0.019, 0.023, 0.027, 0.031, 0.034, 0.038, - & 0.041, 0.045, 0.048, 0.052, 0.055, 0.059, 0.062, 0.065, 0.068, - & 0.071, 0.075, 0.078, 0.081, 0.084, 0.087, 0.089, 0.092, 0.095, - & 0.098, 0.101, 0.103, 0.106, 0.109, 0.111, 0.114, 0.116, 0.119, - & 0.121, 0.124, 0.126, 0.128, 0.131, 0.133, 0.135, 0.138, 0.140, - & 0.142, 0.144, 0.146, 0.148, 0.150, 0.152, 0.154, 0.156, 0.158, - & 0.160, 0.162, 0.164, 0.166, 0.167, 0.169, 0.171, 0.173, 0.174, - & 0.176, 0.178, 0.179, 0.181, 0.182, 0.184, 0.186, 0.187, 0.189, - & 0.190, 0.191, 0.193, 0.194, 0.196, 0.197, 0.198, 0.200, 0.201, - & 0.202, 0.203, 0.205, 0.206, 0.207, 0.208, 0.209, 0.210, 0.212, - & 0.213, 0.214, 0.215, 0.216, 0.217, 0.218, 0.219, 0.220, 0.221, - & 0.222, 0.222, 0.223, 0.224, 0.225, 0.226, 0.227, 0.228, 0.228, - & 0.229, 0.230, 0.231, 0.231, 0.232, 0.233, 0.234, 0.234, 0.235, - & 0.235, 0.236, 0.237 - & /) -! -! *** CACL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC16M_273 = (/ - &-0.093,-0.193,-0.238,-0.267,-0.288,-0.304,-0.316,-0.326,-0.334, - &-0.340,-0.345,-0.350,-0.353,-0.355,-0.357,-0.359,-0.360,-0.360, - &-0.360,-0.360,-0.359,-0.358,-0.357,-0.356,-0.355,-0.353,-0.351, - &-0.349,-0.347,-0.345,-0.342,-0.340,-0.337,-0.335,-0.332,-0.329, - &-0.326,-0.323,-0.321,-0.317,-0.314,-0.311,-0.308,-0.305,-0.302, - &-0.299,-0.295,-0.292,-0.289,-0.286,-0.282,-0.279,-0.276,-0.272, - &-0.269,-0.266,-0.262,-0.259,-0.255,-0.252,-0.249,-0.245,-0.242, - &-0.238,-0.235,-0.231,-0.228,-0.224,-0.221,-0.217,-0.213,-0.210, - &-0.206,-0.203,-0.199,-0.195,-0.192,-0.188,-0.184,-0.180,-0.177, - &-0.173,-0.169,-0.165,-0.161,-0.157,-0.153,-0.149,-0.145,-0.141, - &-0.137,-0.133,-0.129,-0.125,-0.120,-0.116,-0.112,-0.108,-0.103, - &-0.099,-0.095,-0.090,-0.086,-0.081,-0.077,-0.073,-0.068,-0.064, - &-0.059,-0.054,-0.050,-0.045,-0.041,-0.036,-0.032,-0.027,-0.022, - &-0.018,-0.013,-0.008,-0.004, 0.001, 0.005, 0.010, 0.015, 0.019, - & 0.024, 0.029, 0.033, 0.038, 0.043, 0.048, 0.052, 0.057, 0.062, - & 0.066, 0.071, 0.076, 0.080, 0.085, 0.090, 0.094, 0.099, 0.103, - & 0.108, 0.113, 0.117, 0.122, 0.127, 0.131, 0.136, 0.141, 0.145, - & 0.150, 0.154, 0.159, 0.164, 0.168, 0.173, 0.177, 0.182, 0.186, - & 0.191, 0.196, 0.200, 0.205, 0.209, 0.214, 0.218, 0.223, 0.227, - & 0.232, 0.236, 0.241, 0.245, 0.250, 0.254, 0.259, 0.263, 0.268, - & 0.272, 0.277, 0.281, 0.286, 0.290, 0.294, 0.299, 0.303, 0.308, - & 0.312, 0.317, 0.321, 0.325, 0.330, 0.334, 0.338, 0.343, 0.347, - & 0.352, 0.356, 0.360, 0.365, 0.369, 0.373, 0.378, 0.382, 0.386, - & 0.390, 0.395, 0.399, 0.403, 0.408, 0.412, 0.416, 0.420, 0.425, - & 0.429, 0.433, 0.437, 0.442, 0.446, 0.450, 0.454, 0.458, 0.463, - & 0.467, 0.471, 0.475, 0.479, 0.483, 0.488, 0.492, 0.496, 0.500, - & 0.504, 0.508, 0.512, 0.516, 0.521, 0.525, 0.529, 0.533, 0.537, - & 0.541, 0.545, 0.549, 0.553, 0.557, 0.561, 0.565, 0.569, 0.573, - & 0.577, 0.581, 0.585, 0.589, 0.593, 0.597, 0.601, 0.605, 0.609, - & 0.613, 0.617, 0.621, 0.625, 0.629, 0.633, 0.637, 0.641, 0.644, - & 0.648, 0.652, 0.656, 0.660, 0.664, 0.668, 0.672, 0.675, 0.679, - & 0.683, 0.687, 0.691, 0.695, 0.698, 0.702, 0.706, 0.710, 0.714, - & 0.717, 0.721, 0.725, 0.729, 0.733, 0.736, 0.740, 0.744, 0.748, - & 0.751, 0.755, 0.759, 0.762, 0.766, 0.770, 0.774, 0.777, 0.781, - & 0.785, 0.788, 0.792, 0.796, 0.799, 0.803, 0.807, 0.810, 0.814, - & 0.818, 0.821, 0.825, 0.828, 0.832, 0.836, 0.839, 0.843, 0.846, - & 0.850, 0.853, 0.857, 0.861, 0.864, 0.868, 0.871, 0.875, 0.878, - & 0.882, 0.885, 0.889, 0.892, 0.896, 0.899, 0.903, 0.906, 0.910, - & 0.913, 0.917, 0.920, 0.924, 0.927, 0.931, 0.934, 0.938, 0.941, - & 0.944, 0.948, 0.951, 0.955, 0.958, 0.961, 0.965, 0.968, 0.972, - & 0.975, 0.978, 0.982, 0.985, 0.988, 0.992, 0.995, 0.999, 1.002, - & 1.005, 1.009, 1.012, 1.015, 1.018, 1.022, 1.025, 1.028, 1.032, - & 1.035, 1.038, 1.042, 1.045, 1.048, 1.051, 1.055, 1.058, 1.061, - & 1.064, 1.068, 1.071, 1.074, 1.077, 1.080, 1.084, 1.087, 1.090, - & 1.093, 1.096, 1.100, 1.103, 1.137, 1.168, 1.199, 1.229, 1.259, - & 1.288, 1.317, 1.345, 1.373, 1.401, 1.428, 1.455, 1.482, 1.508, - & 1.534, 1.559, 1.584, 1.609, 1.634, 1.658, 1.682, 1.706, 1.729, - & 1.752, 1.775, 1.797, 1.819, 1.841, 1.863, 1.884, 1.905, 1.926, - & 1.947, 1.967, 1.988, 2.008, 2.027, 2.047, 2.066, 2.085, 2.104, - & 2.123, 2.141, 2.160, 2.178, 2.196, 2.214, 2.231, 2.249, 2.266, - & 2.283, 2.300, 2.316, 2.333, 2.349, 2.365, 2.381, 2.397, 2.413, - & 2.429, 2.444, 2.459, 2.475, 2.490, 2.504, 2.519, 2.534, 2.548, - & 2.563, 2.577, 2.591, 2.605, 2.619, 2.632, 2.646, 2.659, 2.673, - & 2.686, 2.699, 2.712, 2.725, 2.738, 2.751, 2.763, 2.776, 2.788, - & 2.800, 2.813, 2.825, 2.837, 2.849, 2.860, 2.872, 2.884, 2.895, - & 2.907, 2.918, 2.929, 2.940, 2.952, 2.963, 2.973, 2.984, 2.995, - & 3.006, 3.016, 3.027, 3.037, 3.048, 3.058, 3.068, 3.078, 3.088, - & 3.098, 3.108, 3.118, 3.128, 3.137, 3.147, 3.157, 3.166, 3.176, - & 3.185, 3.194, 3.203, 3.213, 3.222, 3.231, 3.240, 3.249, 3.258, - & 3.266, 3.275, 3.284, 3.292, 3.301, 3.309, 3.318, 3.326, 3.335, - & 3.343, 3.351, 3.359, 3.368, 3.376, 3.384, 3.392, 3.399, 3.407, - & 3.415, 3.423, 3.431, 3.438, 3.446, 3.454, 3.461, 3.469, 3.476, - & 3.483, 3.491, 3.498 - & /) -! -! *** K2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC17M_273 = (/ - &-0.096,-0.208,-0.265,-0.305,-0.337,-0.363,-0.385,-0.405,-0.423, - &-0.439,-0.453,-0.467,-0.479,-0.491,-0.502,-0.512,-0.522,-0.531, - &-0.540,-0.548,-0.556,-0.564,-0.571,-0.578,-0.585,-0.592,-0.598, - &-0.605,-0.610,-0.616,-0.622,-0.627,-0.633,-0.638,-0.643,-0.648, - &-0.653,-0.657,-0.662,-0.666,-0.671,-0.675,-0.679,-0.683,-0.688, - &-0.691,-0.695,-0.699,-0.703,-0.707,-0.710,-0.714,-0.717,-0.721, - &-0.724,-0.727,-0.731,-0.734,-0.737,-0.740,-0.743,-0.746,-0.749, - &-0.752,-0.755,-0.758,-0.761,-0.763,-0.766,-0.769,-0.772,-0.774, - &-0.777,-0.780,-0.782,-0.785,-0.787,-0.790,-0.792,-0.795,-0.797, - &-0.799,-0.802,-0.804,-0.807,-0.809,-0.811,-0.814,-0.816,-0.818, - &-0.820,-0.823,-0.825,-0.827,-0.829,-0.831,-0.833,-0.836,-0.838, - &-0.840,-0.842,-0.844,-0.846,-0.848,-0.850,-0.852,-0.854,-0.856, - &-0.858,-0.860,-0.862,-0.864,-0.866,-0.868,-0.870,-0.872,-0.874, - &-0.875,-0.877,-0.879,-0.881,-0.883,-0.885,-0.887,-0.888,-0.890, - &-0.892,-0.894,-0.895,-0.897,-0.899,-0.901,-0.902,-0.904,-0.906, - &-0.908,-0.909,-0.911,-0.913,-0.914,-0.916,-0.918,-0.919,-0.921, - &-0.923,-0.924,-0.926,-0.927,-0.929,-0.931,-0.932,-0.934,-0.935, - &-0.937,-0.938,-0.940,-0.942,-0.943,-0.945,-0.946,-0.948,-0.949, - &-0.951,-0.952,-0.954,-0.955,-0.957,-0.958,-0.960,-0.961,-0.962, - &-0.964,-0.965,-0.967,-0.968,-0.970,-0.971,-0.972,-0.974,-0.975, - &-0.977,-0.978,-0.979,-0.981,-0.982,-0.984,-0.985,-0.986,-0.988, - &-0.989,-0.990,-0.992,-0.993,-0.994,-0.996,-0.997,-0.998,-1.000, - &-1.001,-1.002,-1.004,-1.005,-1.006,-1.007,-1.009,-1.010,-1.011, - &-1.013,-1.014,-1.015,-1.016,-1.018,-1.019,-1.020,-1.021,-1.023, - &-1.024,-1.025,-1.026,-1.027,-1.029,-1.030,-1.031,-1.032,-1.034, - &-1.035,-1.036,-1.037,-1.038,-1.039,-1.041,-1.042,-1.043,-1.044, - &-1.045,-1.047,-1.048,-1.049,-1.050,-1.051,-1.052,-1.053,-1.055, - &-1.056,-1.057,-1.058,-1.059,-1.060,-1.061,-1.063,-1.064,-1.065, - &-1.066,-1.067,-1.068,-1.069,-1.070,-1.071,-1.073,-1.074,-1.075, - &-1.076,-1.077,-1.078,-1.079,-1.080,-1.081,-1.082,-1.083,-1.084, - &-1.086,-1.087,-1.088,-1.089,-1.090,-1.091,-1.092,-1.093,-1.094, - &-1.095,-1.096,-1.097,-1.098,-1.099,-1.100,-1.101,-1.102,-1.103, - &-1.104,-1.105,-1.106,-1.107,-1.108,-1.109,-1.110,-1.111,-1.112, - &-1.114,-1.115,-1.116,-1.117,-1.118,-1.119,-1.119,-1.120,-1.121, - &-1.122,-1.123,-1.124,-1.125,-1.126,-1.127,-1.128,-1.129,-1.130, - &-1.131,-1.132,-1.133,-1.134,-1.135,-1.136,-1.137,-1.138,-1.139, - &-1.140,-1.141,-1.142,-1.143,-1.144,-1.145,-1.146,-1.147,-1.147, - &-1.148,-1.149,-1.150,-1.151,-1.152,-1.153,-1.154,-1.155,-1.156, - &-1.157,-1.158,-1.159,-1.160,-1.160,-1.161,-1.162,-1.163,-1.164, - &-1.165,-1.166,-1.167,-1.168,-1.169,-1.169,-1.170,-1.171,-1.172, - &-1.173,-1.174,-1.175,-1.176,-1.177,-1.178,-1.178,-1.179,-1.180, - &-1.181,-1.182,-1.183,-1.184,-1.185,-1.185,-1.186,-1.187,-1.188, - &-1.189,-1.190,-1.191,-1.191,-1.192,-1.193,-1.194,-1.195,-1.196, - &-1.197,-1.198,-1.198,-1.199,-1.200,-1.201,-1.202,-1.203,-1.203, - &-1.204,-1.205,-1.206,-1.207,-1.216,-1.224,-1.232,-1.240,-1.248, - &-1.256,-1.263,-1.271,-1.279,-1.286,-1.293,-1.301,-1.308,-1.315, - &-1.322,-1.329,-1.336,-1.343,-1.349,-1.356,-1.363,-1.369,-1.376, - &-1.382,-1.389,-1.395,-1.402,-1.408,-1.414,-1.420,-1.427,-1.433, - &-1.439,-1.445,-1.451,-1.457,-1.463,-1.468,-1.474,-1.480,-1.486, - &-1.492,-1.497,-1.503,-1.509,-1.514,-1.520,-1.525,-1.531,-1.536, - &-1.542,-1.547,-1.553,-1.558,-1.563,-1.569,-1.574,-1.579,-1.585, - &-1.590,-1.595,-1.600,-1.605,-1.611,-1.616,-1.621,-1.626,-1.631, - &-1.636,-1.641,-1.646,-1.651,-1.656,-1.661,-1.666,-1.671,-1.676, - &-1.681,-1.685,-1.690,-1.695,-1.700,-1.705,-1.710,-1.714,-1.719, - &-1.724,-1.729,-1.733,-1.738,-1.743,-1.747,-1.752,-1.757,-1.761, - &-1.766,-1.770,-1.775,-1.780,-1.784,-1.789,-1.793,-1.798,-1.802, - &-1.807,-1.811,-1.816,-1.820,-1.825,-1.829,-1.834,-1.838,-1.842, - &-1.847,-1.851,-1.856,-1.860,-1.864,-1.869,-1.873,-1.877,-1.882, - &-1.886,-1.890,-1.895,-1.899,-1.903,-1.908,-1.912,-1.916,-1.920, - &-1.925,-1.929,-1.933,-1.937,-1.941,-1.946,-1.950,-1.954,-1.958, - &-1.962,-1.966,-1.971,-1.975,-1.979,-1.983,-1.987,-1.991,-1.995, - &-2.000,-2.004,-2.008,-2.012,-2.016,-2.020,-2.024,-2.028,-2.032, - &-2.036,-2.040,-2.044 - & /) -! -! *** KHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC18M_273 = (/ - &-0.047,-0.099,-0.124,-0.141,-0.154,-0.165,-0.173,-0.181,-0.187, - &-0.193,-0.198,-0.202,-0.206,-0.209,-0.212,-0.215,-0.217,-0.220, - &-0.221,-0.223,-0.225,-0.226,-0.227,-0.228,-0.229,-0.229,-0.230, - &-0.230,-0.230,-0.230,-0.230,-0.230,-0.230,-0.229,-0.229,-0.228, - &-0.228,-0.227,-0.226,-0.225,-0.224,-0.223,-0.222,-0.221,-0.220, - &-0.218,-0.217,-0.215,-0.214,-0.212,-0.210,-0.209,-0.207,-0.205, - &-0.203,-0.201,-0.199,-0.197,-0.195,-0.193,-0.191,-0.189,-0.187, - &-0.185,-0.182,-0.180,-0.178,-0.175,-0.173,-0.171,-0.168,-0.166, - &-0.163,-0.160,-0.158,-0.155,-0.153,-0.150,-0.147,-0.144,-0.142, - &-0.139,-0.136,-0.133,-0.130,-0.127,-0.124,-0.121,-0.118,-0.115, - &-0.112,-0.109,-0.106,-0.103,-0.100,-0.097,-0.094,-0.091,-0.087, - &-0.084,-0.081,-0.078,-0.074,-0.071,-0.068,-0.064,-0.061,-0.058, - &-0.054,-0.051,-0.047,-0.044,-0.041,-0.037,-0.034,-0.030,-0.027, - &-0.023,-0.020,-0.017,-0.013,-0.010,-0.006,-0.003, 0.001, 0.004, - & 0.008, 0.011, 0.015, 0.018, 0.021, 0.025, 0.028, 0.032, 0.035, - & 0.039, 0.042, 0.046, 0.049, 0.052, 0.056, 0.059, 0.063, 0.066, - & 0.069, 0.073, 0.076, 0.079, 0.083, 0.086, 0.090, 0.093, 0.096, - & 0.100, 0.103, 0.106, 0.110, 0.113, 0.116, 0.119, 0.123, 0.126, - & 0.129, 0.133, 0.136, 0.139, 0.142, 0.146, 0.149, 0.152, 0.155, - & 0.158, 0.162, 0.165, 0.168, 0.171, 0.174, 0.177, 0.181, 0.184, - & 0.187, 0.190, 0.193, 0.196, 0.199, 0.203, 0.206, 0.209, 0.212, - & 0.215, 0.218, 0.221, 0.224, 0.227, 0.230, 0.233, 0.236, 0.239, - & 0.242, 0.245, 0.248, 0.251, 0.254, 0.257, 0.260, 0.263, 0.266, - & 0.269, 0.272, 0.275, 0.278, 0.281, 0.284, 0.287, 0.290, 0.292, - & 0.295, 0.298, 0.301, 0.304, 0.307, 0.310, 0.313, 0.315, 0.318, - & 0.321, 0.324, 0.327, 0.330, 0.332, 0.335, 0.338, 0.341, 0.343, - & 0.346, 0.349, 0.352, 0.355, 0.357, 0.360, 0.363, 0.366, 0.368, - & 0.371, 0.374, 0.376, 0.379, 0.382, 0.384, 0.387, 0.390, 0.393, - & 0.395, 0.398, 0.400, 0.403, 0.406, 0.408, 0.411, 0.414, 0.416, - & 0.419, 0.422, 0.424, 0.427, 0.429, 0.432, 0.434, 0.437, 0.440, - & 0.442, 0.445, 0.447, 0.450, 0.452, 0.455, 0.457, 0.460, 0.463, - & 0.465, 0.468, 0.470, 0.473, 0.475, 0.478, 0.480, 0.483, 0.485, - & 0.487, 0.490, 0.492, 0.495, 0.497, 0.500, 0.502, 0.505, 0.507, - & 0.509, 0.512, 0.514, 0.517, 0.519, 0.522, 0.524, 0.526, 0.529, - & 0.531, 0.533, 0.536, 0.538, 0.541, 0.543, 0.545, 0.548, 0.550, - & 0.552, 0.555, 0.557, 0.559, 0.562, 0.564, 0.566, 0.569, 0.571, - & 0.573, 0.575, 0.578, 0.580, 0.582, 0.585, 0.587, 0.589, 0.591, - & 0.594, 0.596, 0.598, 0.600, 0.603, 0.605, 0.607, 0.609, 0.612, - & 0.614, 0.616, 0.618, 0.621, 0.623, 0.625, 0.627, 0.629, 0.632, - & 0.634, 0.636, 0.638, 0.640, 0.642, 0.645, 0.647, 0.649, 0.651, - & 0.653, 0.655, 0.658, 0.660, 0.662, 0.664, 0.666, 0.668, 0.670, - & 0.672, 0.675, 0.677, 0.679, 0.681, 0.683, 0.685, 0.687, 0.689, - & 0.691, 0.693, 0.695, 0.698, 0.700, 0.702, 0.704, 0.706, 0.708, - & 0.710, 0.712, 0.714, 0.716, 0.718, 0.720, 0.722, 0.724, 0.726, - & 0.728, 0.730, 0.732, 0.734, 0.756, 0.775, 0.795, 0.814, 0.832, - & 0.851, 0.869, 0.886, 0.904, 0.921, 0.938, 0.955, 0.972, 0.988, - & 1.004, 1.020, 1.036, 1.051, 1.066, 1.081, 1.096, 1.111, 1.125, - & 1.140, 1.154, 1.168, 1.181, 1.195, 1.208, 1.222, 1.235, 1.248, - & 1.261, 1.273, 1.286, 1.298, 1.311, 1.323, 1.335, 1.347, 1.358, - & 1.370, 1.381, 1.393, 1.404, 1.415, 1.426, 1.437, 1.448, 1.459, - & 1.469, 1.480, 1.490, 1.500, 1.510, 1.521, 1.531, 1.540, 1.550, - & 1.560, 1.570, 1.579, 1.589, 1.598, 1.607, 1.616, 1.625, 1.635, - & 1.643, 1.652, 1.661, 1.670, 1.679, 1.687, 1.696, 1.704, 1.712, - & 1.721, 1.729, 1.737, 1.745, 1.753, 1.761, 1.769, 1.777, 1.785, - & 1.792, 1.800, 1.808, 1.815, 1.823, 1.830, 1.838, 1.845, 1.852, - & 1.859, 1.866, 1.874, 1.881, 1.888, 1.895, 1.901, 1.908, 1.915, - & 1.922, 1.929, 1.935, 1.942, 1.948, 1.955, 1.961, 1.968, 1.974, - & 1.980, 1.987, 1.993, 1.999, 2.005, 2.011, 2.018, 2.024, 2.030, - & 2.036, 2.041, 2.047, 2.053, 2.059, 2.065, 2.070, 2.076, 2.082, - & 2.087, 2.093, 2.099, 2.104, 2.110, 2.115, 2.120, 2.126, 2.131, - & 2.136, 2.142, 2.147, 2.152, 2.157, 2.163, 2.168, 2.173, 2.178, - & 2.183, 2.188, 2.193, 2.198, 2.203, 2.208, 2.212, 2.217, 2.222, - & 2.227, 2.232, 2.236 - & /) -! -! *** KNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC19M_273 = (/ - &-0.049,-0.112,-0.147,-0.173,-0.194,-0.213,-0.230,-0.245,-0.259, - &-0.272,-0.285,-0.297,-0.308,-0.319,-0.329,-0.339,-0.348,-0.358, - &-0.367,-0.376,-0.384,-0.392,-0.401,-0.408,-0.416,-0.424,-0.431, - &-0.439,-0.446,-0.453,-0.460,-0.466,-0.473,-0.479,-0.486,-0.492, - &-0.498,-0.504,-0.510,-0.516,-0.522,-0.528,-0.533,-0.539,-0.544, - &-0.550,-0.555,-0.560,-0.565,-0.571,-0.576,-0.580,-0.585,-0.590, - &-0.595,-0.600,-0.604,-0.609,-0.613,-0.618,-0.622,-0.627,-0.631, - &-0.635,-0.640,-0.644,-0.648,-0.652,-0.656,-0.660,-0.664,-0.668, - &-0.672,-0.676,-0.680,-0.684,-0.688,-0.692,-0.696,-0.700,-0.704, - &-0.707,-0.711,-0.715,-0.719,-0.722,-0.726,-0.730,-0.734,-0.737, - &-0.741,-0.745,-0.748,-0.752,-0.755,-0.759,-0.763,-0.766,-0.770, - &-0.773,-0.777,-0.780,-0.784,-0.788,-0.791,-0.795,-0.798,-0.801, - &-0.805,-0.808,-0.812,-0.815,-0.819,-0.822,-0.825,-0.829,-0.832, - &-0.835,-0.839,-0.842,-0.845,-0.849,-0.852,-0.855,-0.858,-0.862, - &-0.865,-0.868,-0.871,-0.874,-0.878,-0.881,-0.884,-0.887,-0.890, - &-0.893,-0.896,-0.899,-0.902,-0.905,-0.908,-0.911,-0.914,-0.917, - &-0.920,-0.923,-0.926,-0.929,-0.932,-0.935,-0.937,-0.940,-0.943, - &-0.946,-0.949,-0.951,-0.954,-0.957,-0.960,-0.963,-0.965,-0.968, - &-0.971,-0.973,-0.976,-0.979,-0.981,-0.984,-0.987,-0.989,-0.992, - &-0.994,-0.997,-0.999,-1.002,-1.005,-1.007,-1.010,-1.012,-1.015, - &-1.017,-1.020,-1.022,-1.024,-1.027,-1.029,-1.032,-1.034,-1.036, - &-1.039,-1.041,-1.044,-1.046,-1.048,-1.051,-1.053,-1.055,-1.057, - &-1.060,-1.062,-1.064,-1.067,-1.069,-1.071,-1.073,-1.075,-1.078, - &-1.080,-1.082,-1.084,-1.086,-1.089,-1.091,-1.093,-1.095,-1.097, - &-1.099,-1.101,-1.103,-1.106,-1.108,-1.110,-1.112,-1.114,-1.116, - &-1.118,-1.120,-1.122,-1.124,-1.126,-1.128,-1.130,-1.132,-1.134, - &-1.136,-1.138,-1.140,-1.142,-1.144,-1.145,-1.147,-1.149,-1.151, - &-1.153,-1.155,-1.157,-1.159,-1.160,-1.162,-1.164,-1.166,-1.168, - &-1.170,-1.171,-1.173,-1.175,-1.177,-1.179,-1.180,-1.182,-1.184, - &-1.186,-1.187,-1.189,-1.191,-1.193,-1.194,-1.196,-1.198,-1.199, - &-1.201,-1.203,-1.205,-1.206,-1.208,-1.210,-1.211,-1.213,-1.214, - &-1.216,-1.218,-1.219,-1.221,-1.223,-1.224,-1.226,-1.227,-1.229, - &-1.231,-1.232,-1.234,-1.235,-1.237,-1.238,-1.240,-1.241,-1.243, - &-1.244,-1.246,-1.248,-1.249,-1.251,-1.252,-1.254,-1.255,-1.256, - &-1.258,-1.259,-1.261,-1.262,-1.264,-1.265,-1.267,-1.268,-1.270, - &-1.271,-1.272,-1.274,-1.275,-1.277,-1.278,-1.279,-1.281,-1.282, - &-1.284,-1.285,-1.286,-1.288,-1.289,-1.290,-1.292,-1.293,-1.294, - &-1.296,-1.297,-1.298,-1.300,-1.301,-1.302,-1.304,-1.305,-1.306, - &-1.308,-1.309,-1.310,-1.311,-1.313,-1.314,-1.315,-1.316,-1.318, - &-1.319,-1.320,-1.321,-1.323,-1.324,-1.325,-1.326,-1.328,-1.329, - &-1.330,-1.331,-1.332,-1.334,-1.335,-1.336,-1.337,-1.338,-1.340, - &-1.341,-1.342,-1.343,-1.344,-1.345,-1.347,-1.348,-1.349,-1.350, - &-1.351,-1.352,-1.353,-1.355,-1.356,-1.357,-1.358,-1.359,-1.360, - &-1.361,-1.362,-1.364,-1.365,-1.366,-1.367,-1.368,-1.369,-1.370, - &-1.371,-1.372,-1.373,-1.374,-1.386,-1.396,-1.405,-1.415,-1.424, - &-1.433,-1.442,-1.450,-1.458,-1.466,-1.474,-1.482,-1.489,-1.496, - &-1.503,-1.510,-1.516,-1.523,-1.529,-1.535,-1.541,-1.547,-1.553, - &-1.558,-1.564,-1.569,-1.574,-1.580,-1.585,-1.589,-1.594,-1.599, - &-1.604,-1.608,-1.613,-1.617,-1.621,-1.626,-1.630,-1.634,-1.638, - &-1.642,-1.646,-1.650,-1.654,-1.657,-1.661,-1.665,-1.668,-1.672, - &-1.675,-1.679,-1.682,-1.685,-1.689,-1.692,-1.695,-1.698,-1.701, - &-1.705,-1.708,-1.711,-1.714,-1.717,-1.720,-1.723,-1.725,-1.728, - &-1.731,-1.734,-1.737,-1.739,-1.742,-1.745,-1.748,-1.750,-1.753, - &-1.755,-1.758,-1.761,-1.763,-1.766,-1.768,-1.771,-1.773,-1.776, - &-1.778,-1.781,-1.783,-1.785,-1.788,-1.790,-1.792,-1.795,-1.797, - &-1.799,-1.802,-1.804,-1.806,-1.809,-1.811,-1.813,-1.815,-1.817, - &-1.820,-1.822,-1.824,-1.826,-1.828,-1.830,-1.833,-1.835,-1.837, - &-1.839,-1.841,-1.843,-1.845,-1.847,-1.849,-1.851,-1.854,-1.856, - &-1.858,-1.860,-1.862,-1.864,-1.866,-1.868,-1.870,-1.872,-1.874, - &-1.876,-1.878,-1.880,-1.881,-1.883,-1.885,-1.887,-1.889,-1.891, - &-1.893,-1.895,-1.897,-1.899,-1.901,-1.903,-1.905,-1.906,-1.908, - &-1.910,-1.912,-1.914,-1.916,-1.918,-1.919,-1.921,-1.923,-1.925, - &-1.927,-1.929,-1.930 - & /) -! -! *** KCL -! - Real(kind=fp), Parameter, Dimension(561) :: BNC20M_273 = (/ - &-0.047,-0.100,-0.126,-0.143,-0.156,-0.167,-0.176,-0.183,-0.190, - &-0.195,-0.200,-0.205,-0.209,-0.212,-0.215,-0.218,-0.221,-0.224, - &-0.226,-0.228,-0.230,-0.232,-0.233,-0.235,-0.236,-0.238,-0.239, - &-0.240,-0.241,-0.242,-0.243,-0.244,-0.245,-0.246,-0.246,-0.247, - &-0.248,-0.248,-0.249,-0.249,-0.250,-0.250,-0.251,-0.251,-0.251, - &-0.252,-0.252,-0.252,-0.253,-0.253,-0.253,-0.253,-0.254,-0.254, - &-0.254,-0.254,-0.254,-0.254,-0.254,-0.255,-0.255,-0.255,-0.255, - &-0.255,-0.255,-0.255,-0.255,-0.255,-0.255,-0.255,-0.255,-0.255, - &-0.255,-0.255,-0.255,-0.255,-0.255,-0.255,-0.254,-0.254,-0.254, - &-0.254,-0.254,-0.254,-0.254,-0.253,-0.253,-0.253,-0.253,-0.253, - &-0.252,-0.252,-0.252,-0.252,-0.251,-0.251,-0.251,-0.250,-0.250, - &-0.250,-0.249,-0.249,-0.249,-0.248,-0.248,-0.248,-0.247,-0.247, - &-0.247,-0.246,-0.246,-0.245,-0.245,-0.245,-0.244,-0.244,-0.243, - &-0.243,-0.243,-0.242,-0.242,-0.241,-0.241,-0.240,-0.240,-0.240, - &-0.239,-0.239,-0.238,-0.238,-0.237,-0.237,-0.236,-0.236,-0.235, - &-0.235,-0.234,-0.234,-0.234,-0.233,-0.233,-0.232,-0.232,-0.231, - &-0.231,-0.230,-0.230,-0.229,-0.229,-0.228,-0.228,-0.227,-0.227, - &-0.226,-0.226,-0.225,-0.225,-0.224,-0.224,-0.224,-0.223,-0.223, - &-0.222,-0.222,-0.221,-0.221,-0.220,-0.220,-0.219,-0.219,-0.218, - &-0.218,-0.217,-0.217,-0.216,-0.216,-0.215,-0.215,-0.214,-0.214, - &-0.213,-0.213,-0.212,-0.212,-0.211,-0.211,-0.210,-0.210,-0.209, - &-0.209,-0.208,-0.208,-0.207,-0.207,-0.207,-0.206,-0.206,-0.205, - &-0.205,-0.204,-0.204,-0.203,-0.203,-0.202,-0.202,-0.201,-0.201, - &-0.200,-0.200,-0.199,-0.199,-0.198,-0.198,-0.197,-0.197,-0.196, - &-0.196,-0.195,-0.195,-0.194,-0.194,-0.194,-0.193,-0.193,-0.192, - &-0.192,-0.191,-0.191,-0.190,-0.190,-0.189,-0.189,-0.188,-0.188, - &-0.187,-0.187,-0.186,-0.186,-0.186,-0.185,-0.185,-0.184,-0.184, - &-0.183,-0.183,-0.182,-0.182,-0.181,-0.181,-0.180,-0.180,-0.180, - &-0.179,-0.179,-0.178,-0.178,-0.177,-0.177,-0.176,-0.176,-0.175, - &-0.175,-0.174,-0.174,-0.174,-0.173,-0.173,-0.172,-0.172,-0.171, - &-0.171,-0.170,-0.170,-0.170,-0.169,-0.169,-0.168,-0.168,-0.167, - &-0.167,-0.166,-0.166,-0.166,-0.165,-0.165,-0.164,-0.164,-0.163, - &-0.163,-0.162,-0.162,-0.162,-0.161,-0.161,-0.160,-0.160,-0.159, - &-0.159,-0.159,-0.158,-0.158,-0.157,-0.157,-0.156,-0.156,-0.156, - &-0.155,-0.155,-0.154,-0.154,-0.153,-0.153,-0.153,-0.152,-0.152, - &-0.151,-0.151,-0.150,-0.150,-0.150,-0.149,-0.149,-0.148,-0.148, - &-0.148,-0.147,-0.147,-0.146,-0.146,-0.145,-0.145,-0.145,-0.144, - &-0.144,-0.143,-0.143,-0.143,-0.142,-0.142,-0.141,-0.141,-0.141, - &-0.140,-0.140,-0.139,-0.139,-0.139,-0.138,-0.138,-0.137,-0.137, - &-0.137,-0.136,-0.136,-0.135,-0.135,-0.135,-0.134,-0.134,-0.133, - &-0.133,-0.133,-0.132,-0.132,-0.131,-0.131,-0.131,-0.130,-0.130, - &-0.129,-0.129,-0.129,-0.128,-0.128,-0.128,-0.127,-0.127,-0.126, - &-0.126,-0.126,-0.125,-0.125,-0.124,-0.124,-0.124,-0.123,-0.123, - &-0.123,-0.122,-0.122,-0.121,-0.121,-0.121,-0.120,-0.120,-0.120, - &-0.119,-0.119,-0.118,-0.118,-0.114,-0.111,-0.107,-0.103,-0.100, - &-0.097,-0.093,-0.090,-0.087,-0.084,-0.080,-0.077,-0.074,-0.071, - &-0.068,-0.065,-0.063,-0.060,-0.057,-0.054,-0.052,-0.049,-0.046, - &-0.044,-0.041,-0.039,-0.036,-0.034,-0.031,-0.029,-0.027,-0.024, - &-0.022,-0.020,-0.018,-0.016,-0.013,-0.011,-0.009,-0.007,-0.005, - &-0.003,-0.001, 0.001, 0.003, 0.004, 0.006, 0.008, 0.010, 0.012, - & 0.013, 0.015, 0.017, 0.018, 0.020, 0.022, 0.023, 0.025, 0.026, - & 0.028, 0.030, 0.031, 0.032, 0.034, 0.035, 0.037, 0.038, 0.040, - & 0.041, 0.042, 0.044, 0.045, 0.046, 0.047, 0.049, 0.050, 0.051, - & 0.052, 0.053, 0.055, 0.056, 0.057, 0.058, 0.059, 0.060, 0.061, - & 0.062, 0.063, 0.064, 0.065, 0.066, 0.067, 0.068, 0.069, 0.070, - & 0.071, 0.072, 0.073, 0.074, 0.075, 0.075, 0.076, 0.077, 0.078, - & 0.079, 0.079, 0.080, 0.081, 0.082, 0.083, 0.083, 0.084, 0.085, - & 0.085, 0.086, 0.087, 0.087, 0.088, 0.089, 0.089, 0.090, 0.091, - & 0.091, 0.092, 0.092, 0.093, 0.094, 0.094, 0.095, 0.095, 0.096, - & 0.096, 0.097, 0.097, 0.098, 0.098, 0.099, 0.099, 0.100, 0.100, - & 0.100, 0.101, 0.101, 0.102, 0.102, 0.103, 0.103, 0.103, 0.104, - & 0.104, 0.104, 0.105, 0.105, 0.105, 0.106, 0.106, 0.106, 0.107, - & 0.107, 0.107, 0.108 - & /) -! -! *** MGSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC21M_273 = (/ - &-0.190,-0.411,-0.520,-0.597,-0.656,-0.705,-0.746,-0.782,-0.814, - &-0.843,-0.868,-0.892,-0.914,-0.934,-0.953,-0.970,-0.986,-1.002, - &-1.016,-1.030,-1.043,-1.056,-1.068,-1.079,-1.090,-1.100,-1.110, - &-1.120,-1.129,-1.138,-1.147,-1.155,-1.163,-1.171,-1.178,-1.186, - &-1.193,-1.200,-1.206,-1.213,-1.219,-1.225,-1.231,-1.237,-1.243, - &-1.249,-1.254,-1.260,-1.265,-1.270,-1.275,-1.280,-1.285,-1.289, - &-1.294,-1.299,-1.303,-1.307,-1.312,-1.316,-1.320,-1.324,-1.328, - &-1.332,-1.336,-1.340,-1.344,-1.347,-1.351,-1.354,-1.358,-1.361, - &-1.365,-1.368,-1.372,-1.375,-1.378,-1.381,-1.384,-1.387,-1.390, - &-1.393,-1.396,-1.399,-1.402,-1.405,-1.408,-1.411,-1.413,-1.416, - &-1.419,-1.421,-1.424,-1.426,-1.429,-1.431,-1.434,-1.436,-1.439, - &-1.441,-1.443,-1.446,-1.448,-1.450,-1.452,-1.455,-1.457,-1.459, - &-1.461,-1.463,-1.465,-1.467,-1.469,-1.471,-1.473,-1.475,-1.477, - &-1.479,-1.481,-1.483,-1.485,-1.487,-1.489,-1.491,-1.493,-1.494, - &-1.496,-1.498,-1.500,-1.501,-1.503,-1.505,-1.507,-1.508,-1.510, - &-1.512,-1.513,-1.515,-1.517,-1.518,-1.520,-1.521,-1.523,-1.525, - &-1.526,-1.528,-1.529,-1.531,-1.532,-1.534,-1.535,-1.537,-1.538, - &-1.540,-1.541,-1.543,-1.544,-1.546,-1.547,-1.548,-1.550,-1.551, - &-1.553,-1.554,-1.555,-1.557,-1.558,-1.559,-1.561,-1.562,-1.563, - &-1.565,-1.566,-1.567,-1.569,-1.570,-1.571,-1.573,-1.574,-1.575, - &-1.576,-1.578,-1.579,-1.580,-1.581,-1.583,-1.584,-1.585,-1.586, - &-1.587,-1.589,-1.590,-1.591,-1.592,-1.593,-1.594,-1.596,-1.597, - &-1.598,-1.599,-1.600,-1.601,-1.603,-1.604,-1.605,-1.606,-1.607, - &-1.608,-1.609,-1.610,-1.611,-1.613,-1.614,-1.615,-1.616,-1.617, - &-1.618,-1.619,-1.620,-1.621,-1.622,-1.623,-1.624,-1.625,-1.626, - &-1.627,-1.628,-1.630,-1.631,-1.632,-1.633,-1.634,-1.635,-1.636, - &-1.637,-1.638,-1.639,-1.640,-1.641,-1.642,-1.643,-1.644,-1.645, - &-1.646,-1.647,-1.647,-1.648,-1.649,-1.650,-1.651,-1.652,-1.653, - &-1.654,-1.655,-1.656,-1.657,-1.658,-1.659,-1.660,-1.661,-1.662, - &-1.663,-1.664,-1.664,-1.665,-1.666,-1.667,-1.668,-1.669,-1.670, - &-1.671,-1.672,-1.673,-1.674,-1.674,-1.675,-1.676,-1.677,-1.678, - &-1.679,-1.680,-1.681,-1.682,-1.682,-1.683,-1.684,-1.685,-1.686, - &-1.687,-1.688,-1.688,-1.689,-1.690,-1.691,-1.692,-1.693,-1.694, - &-1.694,-1.695,-1.696,-1.697,-1.698,-1.699,-1.700,-1.700,-1.701, - &-1.702,-1.703,-1.704,-1.705,-1.705,-1.706,-1.707,-1.708,-1.709, - &-1.709,-1.710,-1.711,-1.712,-1.713,-1.713,-1.714,-1.715,-1.716, - &-1.717,-1.718,-1.718,-1.719,-1.720,-1.721,-1.722,-1.722,-1.723, - &-1.724,-1.725,-1.725,-1.726,-1.727,-1.728,-1.729,-1.729,-1.730, - &-1.731,-1.732,-1.733,-1.733,-1.734,-1.735,-1.736,-1.736,-1.737, - &-1.738,-1.739,-1.739,-1.740,-1.741,-1.742,-1.743,-1.743,-1.744, - &-1.745,-1.746,-1.746,-1.747,-1.748,-1.749,-1.749,-1.750,-1.751, - &-1.752,-1.752,-1.753,-1.754,-1.755,-1.755,-1.756,-1.757,-1.758, - &-1.758,-1.759,-1.760,-1.760,-1.761,-1.762,-1.763,-1.763,-1.764, - &-1.765,-1.766,-1.766,-1.767,-1.768,-1.769,-1.769,-1.770,-1.771, - &-1.771,-1.772,-1.773,-1.774,-1.781,-1.788,-1.795,-1.802,-1.809, - &-1.816,-1.823,-1.830,-1.836,-1.843,-1.849,-1.856,-1.862,-1.869, - &-1.875,-1.882,-1.888,-1.894,-1.901,-1.907,-1.913,-1.919,-1.926, - &-1.932,-1.938,-1.944,-1.950,-1.956,-1.962,-1.968,-1.974,-1.981, - &-1.987,-1.993,-1.999,-2.004,-2.010,-2.016,-2.022,-2.028,-2.034, - &-2.040,-2.046,-2.052,-2.058,-2.064,-2.069,-2.075,-2.081,-2.087, - &-2.093,-2.099,-2.104,-2.110,-2.116,-2.122,-2.128,-2.133,-2.139, - &-2.145,-2.151,-2.157,-2.162,-2.168,-2.174,-2.180,-2.185,-2.191, - &-2.197,-2.202,-2.208,-2.214,-2.220,-2.225,-2.231,-2.237,-2.242, - &-2.248,-2.254,-2.260,-2.265,-2.271,-2.277,-2.282,-2.288,-2.294, - &-2.299,-2.305,-2.311,-2.316,-2.322,-2.328,-2.333,-2.339,-2.345, - &-2.350,-2.356,-2.361,-2.367,-2.373,-2.378,-2.384,-2.390,-2.395, - &-2.401,-2.407,-2.412,-2.418,-2.423,-2.429,-2.435,-2.440,-2.446, - &-2.452,-2.457,-2.463,-2.468,-2.474,-2.480,-2.485,-2.491,-2.496, - &-2.502,-2.508,-2.513,-2.519,-2.524,-2.530,-2.536,-2.541,-2.547, - &-2.552,-2.558,-2.564,-2.569,-2.575,-2.580,-2.586,-2.592,-2.597, - &-2.603,-2.608,-2.614,-2.620,-2.625,-2.631,-2.636,-2.642,-2.647, - &-2.653,-2.659,-2.664,-2.670,-2.675,-2.681,-2.686,-2.692,-2.698, - &-2.703,-2.709,-2.714 - & /) -! -! *** MGNO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC22M_273 = (/ - &-0.093,-0.193,-0.238,-0.268,-0.289,-0.305,-0.318,-0.328,-0.336, - &-0.343,-0.348,-0.352,-0.356,-0.359,-0.361,-0.362,-0.364,-0.364, - &-0.364,-0.364,-0.364,-0.364,-0.363,-0.362,-0.360,-0.359,-0.357, - &-0.355,-0.354,-0.352,-0.349,-0.347,-0.345,-0.342,-0.340,-0.337, - &-0.335,-0.332,-0.329,-0.326,-0.324,-0.321,-0.318,-0.315,-0.312, - &-0.309,-0.306,-0.303,-0.300,-0.297,-0.294,-0.290,-0.287,-0.284, - &-0.281,-0.278,-0.275,-0.271,-0.268,-0.265,-0.262,-0.258,-0.255, - &-0.252,-0.249,-0.245,-0.242,-0.239,-0.235,-0.232,-0.229,-0.225, - &-0.222,-0.218,-0.215,-0.211,-0.208,-0.204,-0.201,-0.197,-0.194, - &-0.190,-0.186,-0.183,-0.179,-0.175,-0.172,-0.168,-0.164,-0.160, - &-0.156,-0.152,-0.148,-0.144,-0.140,-0.136,-0.132,-0.128,-0.124, - &-0.120,-0.116,-0.112,-0.107,-0.103,-0.099,-0.095,-0.090,-0.086, - &-0.082,-0.078,-0.073,-0.069,-0.065,-0.060,-0.056,-0.051,-0.047, - &-0.043,-0.038,-0.034,-0.029,-0.025,-0.020,-0.016,-0.011,-0.007, - &-0.003, 0.002, 0.006, 0.011, 0.015, 0.020, 0.024, 0.029, 0.033, - & 0.038, 0.042, 0.046, 0.051, 0.055, 0.060, 0.064, 0.069, 0.073, - & 0.078, 0.082, 0.086, 0.091, 0.095, 0.100, 0.104, 0.109, 0.113, - & 0.117, 0.122, 0.126, 0.130, 0.135, 0.139, 0.144, 0.148, 0.152, - & 0.157, 0.161, 0.165, 0.170, 0.174, 0.178, 0.183, 0.187, 0.191, - & 0.196, 0.200, 0.204, 0.209, 0.213, 0.217, 0.221, 0.226, 0.230, - & 0.234, 0.239, 0.243, 0.247, 0.251, 0.256, 0.260, 0.264, 0.268, - & 0.272, 0.277, 0.281, 0.285, 0.289, 0.293, 0.298, 0.302, 0.306, - & 0.310, 0.314, 0.318, 0.323, 0.327, 0.331, 0.335, 0.339, 0.343, - & 0.347, 0.351, 0.355, 0.360, 0.364, 0.368, 0.372, 0.376, 0.380, - & 0.384, 0.388, 0.392, 0.396, 0.400, 0.404, 0.408, 0.412, 0.416, - & 0.420, 0.424, 0.428, 0.432, 0.436, 0.440, 0.444, 0.448, 0.452, - & 0.456, 0.460, 0.464, 0.468, 0.472, 0.475, 0.479, 0.483, 0.487, - & 0.491, 0.495, 0.499, 0.503, 0.507, 0.510, 0.514, 0.518, 0.522, - & 0.526, 0.530, 0.533, 0.537, 0.541, 0.545, 0.549, 0.552, 0.556, - & 0.560, 0.564, 0.568, 0.571, 0.575, 0.579, 0.583, 0.586, 0.590, - & 0.594, 0.598, 0.601, 0.605, 0.609, 0.612, 0.616, 0.620, 0.623, - & 0.627, 0.631, 0.634, 0.638, 0.642, 0.645, 0.649, 0.653, 0.656, - & 0.660, 0.664, 0.667, 0.671, 0.674, 0.678, 0.682, 0.685, 0.689, - & 0.692, 0.696, 0.699, 0.703, 0.707, 0.710, 0.714, 0.717, 0.721, - & 0.724, 0.728, 0.731, 0.735, 0.738, 0.742, 0.745, 0.749, 0.752, - & 0.756, 0.759, 0.763, 0.766, 0.769, 0.773, 0.776, 0.780, 0.783, - & 0.787, 0.790, 0.793, 0.797, 0.800, 0.804, 0.807, 0.810, 0.814, - & 0.817, 0.821, 0.824, 0.827, 0.831, 0.834, 0.837, 0.841, 0.844, - & 0.847, 0.851, 0.854, 0.857, 0.861, 0.864, 0.867, 0.870, 0.874, - & 0.877, 0.880, 0.884, 0.887, 0.890, 0.893, 0.897, 0.900, 0.903, - & 0.906, 0.910, 0.913, 0.916, 0.919, 0.922, 0.926, 0.929, 0.932, - & 0.935, 0.938, 0.942, 0.945, 0.948, 0.951, 0.954, 0.957, 0.961, - & 0.964, 0.967, 0.970, 0.973, 0.976, 0.979, 0.983, 0.986, 0.989, - & 0.992, 0.995, 0.998, 1.001, 1.004, 1.007, 1.010, 1.013, 1.016, - & 1.020, 1.023, 1.026, 1.029, 1.061, 1.091, 1.120, 1.149, 1.178, - & 1.206, 1.233, 1.261, 1.288, 1.314, 1.340, 1.366, 1.391, 1.417, - & 1.441, 1.466, 1.490, 1.514, 1.537, 1.560, 1.583, 1.606, 1.628, - & 1.650, 1.672, 1.694, 1.715, 1.736, 1.757, 1.777, 1.797, 1.817, - & 1.837, 1.857, 1.876, 1.895, 1.914, 1.933, 1.951, 1.970, 1.988, - & 2.006, 2.023, 2.041, 2.058, 2.075, 2.092, 2.109, 2.126, 2.142, - & 2.159, 2.175, 2.191, 2.207, 2.222, 2.238, 2.253, 2.268, 2.283, - & 2.298, 2.313, 2.328, 2.342, 2.357, 2.371, 2.385, 2.399, 2.413, - & 2.426, 2.440, 2.453, 2.467, 2.480, 2.493, 2.506, 2.519, 2.532, - & 2.545, 2.557, 2.570, 2.582, 2.594, 2.606, 2.618, 2.630, 2.642, - & 2.654, 2.666, 2.677, 2.689, 2.700, 2.711, 2.722, 2.733, 2.744, - & 2.755, 2.766, 2.777, 2.788, 2.798, 2.809, 2.819, 2.829, 2.840, - & 2.850, 2.860, 2.870, 2.880, 2.890, 2.900, 2.909, 2.919, 2.929, - & 2.938, 2.948, 2.957, 2.966, 2.976, 2.985, 2.994, 3.003, 3.012, - & 3.021, 3.030, 3.039, 3.047, 3.056, 3.065, 3.073, 3.082, 3.090, - & 3.099, 3.107, 3.115, 3.123, 3.132, 3.140, 3.148, 3.156, 3.164, - & 3.172, 3.179, 3.187, 3.195, 3.203, 3.210, 3.218, 3.225, 3.233, - & 3.240, 3.248, 3.255, 3.262, 3.270, 3.277, 3.284, 3.291, 3.298, - & 3.305, 3.312, 3.319 - & /) -! -! *** MGCL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC23M_273 = (/ - &-0.092,-0.190,-0.233,-0.261,-0.280,-0.295,-0.306,-0.314,-0.321, - &-0.326,-0.330,-0.333,-0.335,-0.336,-0.336,-0.336,-0.336,-0.335, - &-0.334,-0.332,-0.330,-0.328,-0.326,-0.323,-0.320,-0.317,-0.314, - &-0.311,-0.308,-0.304,-0.300,-0.297,-0.293,-0.289,-0.285,-0.281, - &-0.277,-0.272,-0.268,-0.264,-0.259,-0.255,-0.251,-0.246,-0.242, - &-0.237,-0.233,-0.228,-0.224,-0.219,-0.215,-0.210,-0.205,-0.201, - &-0.196,-0.192,-0.187,-0.182,-0.178,-0.173,-0.168,-0.164,-0.159, - &-0.154,-0.150,-0.145,-0.140,-0.135,-0.131,-0.126,-0.121,-0.116, - &-0.111,-0.106,-0.102,-0.097,-0.092,-0.087,-0.082,-0.077,-0.072, - &-0.067,-0.062,-0.056,-0.051,-0.046,-0.041,-0.036,-0.030,-0.025, - &-0.019,-0.014,-0.009,-0.003, 0.002, 0.008, 0.013, 0.019, 0.025, - & 0.030, 0.036, 0.042, 0.047, 0.053, 0.059, 0.065, 0.071, 0.077, - & 0.082, 0.088, 0.094, 0.100, 0.106, 0.112, 0.118, 0.124, 0.130, - & 0.136, 0.142, 0.148, 0.154, 0.160, 0.166, 0.172, 0.178, 0.184, - & 0.190, 0.196, 0.202, 0.208, 0.214, 0.220, 0.226, 0.232, 0.238, - & 0.244, 0.250, 0.256, 0.262, 0.268, 0.274, 0.280, 0.286, 0.292, - & 0.298, 0.304, 0.310, 0.316, 0.322, 0.328, 0.334, 0.340, 0.346, - & 0.352, 0.358, 0.364, 0.370, 0.376, 0.382, 0.387, 0.393, 0.399, - & 0.405, 0.411, 0.417, 0.423, 0.429, 0.434, 0.440, 0.446, 0.452, - & 0.458, 0.463, 0.469, 0.475, 0.481, 0.487, 0.492, 0.498, 0.504, - & 0.509, 0.515, 0.521, 0.527, 0.532, 0.538, 0.544, 0.549, 0.555, - & 0.561, 0.566, 0.572, 0.578, 0.583, 0.589, 0.594, 0.600, 0.606, - & 0.611, 0.617, 0.622, 0.628, 0.633, 0.639, 0.645, 0.650, 0.656, - & 0.661, 0.667, 0.672, 0.678, 0.683, 0.688, 0.694, 0.699, 0.705, - & 0.710, 0.716, 0.721, 0.726, 0.732, 0.737, 0.743, 0.748, 0.753, - & 0.759, 0.764, 0.769, 0.775, 0.780, 0.785, 0.791, 0.796, 0.801, - & 0.807, 0.812, 0.817, 0.822, 0.828, 0.833, 0.838, 0.843, 0.848, - & 0.854, 0.859, 0.864, 0.869, 0.874, 0.879, 0.885, 0.890, 0.895, - & 0.900, 0.905, 0.910, 0.915, 0.920, 0.925, 0.931, 0.936, 0.941, - & 0.946, 0.951, 0.956, 0.961, 0.966, 0.971, 0.976, 0.981, 0.986, - & 0.991, 0.996, 1.001, 1.006, 1.011, 1.015, 1.020, 1.025, 1.030, - & 1.035, 1.040, 1.045, 1.050, 1.055, 1.059, 1.064, 1.069, 1.074, - & 1.079, 1.084, 1.088, 1.093, 1.098, 1.103, 1.108, 1.112, 1.117, - & 1.122, 1.127, 1.131, 1.136, 1.141, 1.146, 1.150, 1.155, 1.160, - & 1.164, 1.169, 1.174, 1.178, 1.183, 1.188, 1.192, 1.197, 1.201, - & 1.206, 1.211, 1.215, 1.220, 1.224, 1.229, 1.234, 1.238, 1.243, - & 1.247, 1.252, 1.256, 1.261, 1.265, 1.270, 1.274, 1.279, 1.283, - & 1.288, 1.292, 1.297, 1.301, 1.306, 1.310, 1.315, 1.319, 1.323, - & 1.328, 1.332, 1.337, 1.341, 1.345, 1.350, 1.354, 1.359, 1.363, - & 1.367, 1.372, 1.376, 1.380, 1.385, 1.389, 1.393, 1.398, 1.402, - & 1.406, 1.410, 1.415, 1.419, 1.423, 1.428, 1.432, 1.436, 1.440, - & 1.444, 1.449, 1.453, 1.457, 1.461, 1.466, 1.470, 1.474, 1.478, - & 1.482, 1.486, 1.491, 1.495, 1.499, 1.503, 1.507, 1.511, 1.515, - & 1.519, 1.524, 1.528, 1.532, 1.536, 1.540, 1.544, 1.548, 1.552, - & 1.556, 1.560, 1.564, 1.568, 1.611, 1.651, 1.690, 1.728, 1.765, - & 1.802, 1.839, 1.875, 1.911, 1.945, 1.980, 2.014, 2.048, 2.081, - & 2.113, 2.146, 2.177, 2.209, 2.240, 2.270, 2.300, 2.330, 2.360, - & 2.389, 2.417, 2.446, 2.474, 2.502, 2.529, 2.556, 2.583, 2.609, - & 2.635, 2.661, 2.686, 2.712, 2.737, 2.761, 2.786, 2.810, 2.834, - & 2.857, 2.881, 2.904, 2.927, 2.950, 2.972, 2.994, 3.016, 3.038, - & 3.060, 3.081, 3.102, 3.123, 3.144, 3.164, 3.184, 3.205, 3.225, - & 3.244, 3.264, 3.283, 3.302, 3.322, 3.340, 3.359, 3.378, 3.396, - & 3.414, 3.432, 3.450, 3.468, 3.485, 3.503, 3.520, 3.537, 3.554, - & 3.571, 3.588, 3.604, 3.621, 3.637, 3.653, 3.669, 3.685, 3.701, - & 3.717, 3.732, 3.748, 3.763, 3.778, 3.793, 3.808, 3.823, 3.838, - & 3.852, 3.867, 3.881, 3.896, 3.910, 3.924, 3.938, 3.952, 3.966, - & 3.979, 3.993, 4.006, 4.020, 4.033, 4.046, 4.059, 4.072, 4.085, - & 4.098, 4.111, 4.123, 4.136, 4.148, 4.161, 4.173, 4.185, 4.197, - & 4.210, 4.222, 4.233, 4.245, 4.257, 4.269, 4.280, 4.292, 4.303, - & 4.315, 4.326, 4.337, 4.348, 4.359, 4.370, 4.381, 4.392, 4.403, - & 4.414, 4.424, 4.435, 4.446, 4.456, 4.466, 4.477, 4.487, 4.497, - & 4.507, 4.518, 4.528, 4.538, 4.548, 4.557, 4.567, 4.577, 4.587, - & 4.596, 4.606, 4.615 - & /) - - ! Formerly BLOCK DATA KMCF298 -! -! *** NaCl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC01M_298 = (/ - &-0.045,-0.095,-0.117,-0.132,-0.142,-0.150,-0.157,-0.162,-0.166, - &-0.170,-0.173,-0.175,-0.177,-0.179,-0.180,-0.181,-0.182,-0.182, - &-0.183,-0.183,-0.183,-0.183,-0.182,-0.182,-0.182,-0.181,-0.181, - &-0.180,-0.179,-0.178,-0.178,-0.177,-0.176,-0.175,-0.174,-0.173, - &-0.172,-0.170,-0.169,-0.168,-0.167,-0.166,-0.164,-0.163,-0.162, - &-0.161,-0.159,-0.158,-0.157,-0.155,-0.154,-0.153,-0.151,-0.150, - &-0.148,-0.147,-0.146,-0.144,-0.143,-0.141,-0.140,-0.138,-0.137, - &-0.136,-0.134,-0.133,-0.131,-0.130,-0.128,-0.127,-0.125,-0.124, - &-0.122,-0.121,-0.119,-0.117,-0.116,-0.114,-0.113,-0.111,-0.110, - &-0.108,-0.106,-0.105,-0.103,-0.101,-0.100,-0.098,-0.096,-0.094, - &-0.093,-0.091,-0.089,-0.087,-0.086,-0.084,-0.082,-0.080,-0.078, - &-0.076,-0.075,-0.073,-0.071,-0.069,-0.067,-0.065,-0.063,-0.061, - &-0.059,-0.057,-0.055,-0.053,-0.051,-0.049,-0.047,-0.046,-0.044, - &-0.042,-0.040,-0.038,-0.036,-0.034,-0.032,-0.030,-0.028,-0.026, - &-0.024,-0.022,-0.019,-0.017,-0.015,-0.013,-0.011,-0.009,-0.007, - &-0.005,-0.003,-0.001, 0.001, 0.003, 0.005, 0.007, 0.009, 0.011, - & 0.013, 0.015, 0.017, 0.019, 0.021, 0.023, 0.025, 0.027, 0.029, - & 0.031, 0.033, 0.035, 0.037, 0.039, 0.041, 0.043, 0.045, 0.047, - & 0.049, 0.050, 0.052, 0.054, 0.056, 0.058, 0.060, 0.062, 0.064, - & 0.066, 0.068, 0.070, 0.072, 0.074, 0.076, 0.078, 0.080, 0.082, - & 0.084, 0.086, 0.088, 0.090, 0.091, 0.093, 0.095, 0.097, 0.099, - & 0.101, 0.103, 0.105, 0.107, 0.109, 0.111, 0.113, 0.114, 0.116, - & 0.118, 0.120, 0.122, 0.124, 0.126, 0.128, 0.130, 0.131, 0.133, - & 0.135, 0.137, 0.139, 0.141, 0.143, 0.145, 0.146, 0.148, 0.150, - & 0.152, 0.154, 0.156, 0.158, 0.159, 0.161, 0.163, 0.165, 0.167, - & 0.169, 0.170, 0.172, 0.174, 0.176, 0.178, 0.180, 0.181, 0.183, - & 0.185, 0.187, 0.189, 0.190, 0.192, 0.194, 0.196, 0.198, 0.199, - & 0.201, 0.203, 0.205, 0.206, 0.208, 0.210, 0.212, 0.214, 0.215, - & 0.217, 0.219, 0.221, 0.222, 0.224, 0.226, 0.228, 0.229, 0.231, - & 0.233, 0.235, 0.236, 0.238, 0.240, 0.242, 0.243, 0.245, 0.247, - & 0.248, 0.250, 0.252, 0.254, 0.255, 0.257, 0.259, 0.260, 0.262, - & 0.264, 0.265, 0.267, 0.269, 0.271, 0.272, 0.274, 0.276, 0.277, - & 0.279, 0.281, 0.282, 0.284, 0.286, 0.287, 0.289, 0.291, 0.292, - & 0.294, 0.296, 0.297, 0.299, 0.301, 0.302, 0.304, 0.305, 0.307, - & 0.309, 0.310, 0.312, 0.314, 0.315, 0.317, 0.318, 0.320, 0.322, - & 0.323, 0.325, 0.327, 0.328, 0.330, 0.331, 0.333, 0.335, 0.336, - & 0.338, 0.339, 0.341, 0.343, 0.344, 0.346, 0.347, 0.349, 0.350, - & 0.352, 0.354, 0.355, 0.357, 0.358, 0.360, 0.361, 0.363, 0.364, - & 0.366, 0.368, 0.369, 0.371, 0.372, 0.374, 0.375, 0.377, 0.378, - & 0.380, 0.381, 0.383, 0.384, 0.386, 0.388, 0.389, 0.391, 0.392, - & 0.394, 0.395, 0.397, 0.398, 0.400, 0.401, 0.403, 0.404, 0.406, - & 0.407, 0.409, 0.410, 0.412, 0.413, 0.415, 0.416, 0.418, 0.419, - & 0.421, 0.422, 0.423, 0.425, 0.426, 0.428, 0.429, 0.431, 0.432, - & 0.434, 0.435, 0.437, 0.438, 0.440, 0.441, 0.442, 0.444, 0.445, - & 0.447, 0.448, 0.450, 0.451, 0.466, 0.480, 0.494, 0.508, 0.522, - & 0.535, 0.548, 0.561, 0.574, 0.586, 0.599, 0.611, 0.624, 0.636, - & 0.648, 0.659, 0.671, 0.683, 0.694, 0.705, 0.716, 0.727, 0.738, - & 0.749, 0.760, 0.770, 0.781, 0.791, 0.801, 0.811, 0.821, 0.831, - & 0.841, 0.851, 0.861, 0.870, 0.879, 0.889, 0.898, 0.907, 0.916, - & 0.925, 0.934, 0.943, 0.952, 0.961, 0.969, 0.978, 0.986, 0.995, - & 1.003, 1.011, 1.019, 1.028, 1.036, 1.044, 1.051, 1.059, 1.067, - & 1.075, 1.082, 1.090, 1.098, 1.105, 1.113, 1.120, 1.127, 1.135, - & 1.142, 1.149, 1.156, 1.163, 1.170, 1.177, 1.184, 1.191, 1.198, - & 1.204, 1.211, 1.218, 1.224, 1.231, 1.237, 1.244, 1.250, 1.257, - & 1.263, 1.269, 1.276, 1.282, 1.288, 1.294, 1.300, 1.307, 1.313, - & 1.319, 1.325, 1.330, 1.336, 1.342, 1.348, 1.354, 1.360, 1.365, - & 1.371, 1.377, 1.382, 1.388, 1.393, 1.399, 1.404, 1.410, 1.415, - & 1.421, 1.426, 1.431, 1.437, 1.442, 1.447, 1.453, 1.458, 1.463, - & 1.468, 1.473, 1.478, 1.483, 1.488, 1.493, 1.498, 1.503, 1.508, - & 1.513, 1.518, 1.523, 1.528, 1.532, 1.537, 1.542, 1.547, 1.551, - & 1.556, 1.561, 1.565, 1.570, 1.575, 1.579, 1.584, 1.588, 1.593, - & 1.597, 1.602, 1.606, 1.611, 1.615, 1.620, 1.624, 1.628, 1.633, - & 1.637, 1.641, 1.645 - & /) -! -! *** Na2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC02M_298 = (/ - &-0.093,-0.202,-0.256,-0.295,-0.325,-0.349,-0.371,-0.389,-0.405, - &-0.420,-0.434,-0.446,-0.457,-0.468,-0.478,-0.487,-0.496,-0.504, - &-0.512,-0.520,-0.527,-0.533,-0.540,-0.546,-0.552,-0.558,-0.563, - &-0.569,-0.574,-0.579,-0.584,-0.588,-0.593,-0.597,-0.602,-0.606, - &-0.610,-0.614,-0.618,-0.621,-0.625,-0.628,-0.632,-0.635,-0.639, - &-0.642,-0.645,-0.648,-0.651,-0.654,-0.657,-0.660,-0.663,-0.665, - &-0.668,-0.671,-0.673,-0.676,-0.678,-0.681,-0.683,-0.686,-0.688, - &-0.690,-0.692,-0.695,-0.697,-0.699,-0.701,-0.703,-0.705,-0.707, - &-0.709,-0.711,-0.713,-0.715,-0.717,-0.719,-0.721,-0.723,-0.724, - &-0.726,-0.728,-0.730,-0.731,-0.733,-0.735,-0.737,-0.738,-0.740, - &-0.741,-0.743,-0.745,-0.746,-0.748,-0.749,-0.751,-0.752,-0.754, - &-0.755,-0.757,-0.758,-0.760,-0.761,-0.763,-0.764,-0.766,-0.767, - &-0.768,-0.770,-0.771,-0.772,-0.774,-0.775,-0.776,-0.778,-0.779, - &-0.780,-0.782,-0.783,-0.784,-0.785,-0.787,-0.788,-0.789,-0.790, - &-0.791,-0.793,-0.794,-0.795,-0.796,-0.797,-0.798,-0.800,-0.801, - &-0.802,-0.803,-0.804,-0.805,-0.806,-0.807,-0.808,-0.810,-0.811, - &-0.812,-0.813,-0.814,-0.815,-0.816,-0.817,-0.818,-0.819,-0.820, - &-0.821,-0.822,-0.823,-0.824,-0.825,-0.826,-0.827,-0.828,-0.829, - &-0.830,-0.831,-0.832,-0.832,-0.833,-0.834,-0.835,-0.836,-0.837, - &-0.838,-0.839,-0.840,-0.841,-0.841,-0.842,-0.843,-0.844,-0.845, - &-0.846,-0.847,-0.847,-0.848,-0.849,-0.850,-0.851,-0.852,-0.852, - &-0.853,-0.854,-0.855,-0.856,-0.856,-0.857,-0.858,-0.859,-0.860, - &-0.860,-0.861,-0.862,-0.863,-0.864,-0.864,-0.865,-0.866,-0.867, - &-0.867,-0.868,-0.869,-0.869,-0.870,-0.871,-0.872,-0.872,-0.873, - &-0.874,-0.875,-0.875,-0.876,-0.877,-0.877,-0.878,-0.879,-0.879, - &-0.880,-0.881,-0.882,-0.882,-0.883,-0.884,-0.884,-0.885,-0.886, - &-0.886,-0.887,-0.888,-0.888,-0.889,-0.889,-0.890,-0.891,-0.891, - &-0.892,-0.893,-0.893,-0.894,-0.895,-0.895,-0.896,-0.896,-0.897, - &-0.898,-0.898,-0.899,-0.899,-0.900,-0.901,-0.901,-0.902,-0.903, - &-0.903,-0.904,-0.904,-0.905,-0.905,-0.906,-0.907,-0.907,-0.908, - &-0.908,-0.909,-0.910,-0.910,-0.911,-0.911,-0.912,-0.912,-0.913, - &-0.913,-0.914,-0.915,-0.915,-0.916,-0.916,-0.917,-0.917,-0.918, - &-0.918,-0.919,-0.919,-0.920,-0.921,-0.921,-0.922,-0.922,-0.923, - &-0.923,-0.924,-0.924,-0.925,-0.925,-0.926,-0.926,-0.927,-0.927, - &-0.928,-0.928,-0.929,-0.929,-0.930,-0.930,-0.931,-0.931,-0.932, - &-0.932,-0.933,-0.933,-0.934,-0.934,-0.935,-0.935,-0.936,-0.936, - &-0.937,-0.937,-0.938,-0.938,-0.939,-0.939,-0.940,-0.940,-0.940, - &-0.941,-0.941,-0.942,-0.942,-0.943,-0.943,-0.944,-0.944,-0.945, - &-0.945,-0.946,-0.946,-0.946,-0.947,-0.947,-0.948,-0.948,-0.949, - &-0.949,-0.950,-0.950,-0.950,-0.951,-0.951,-0.952,-0.952,-0.953, - &-0.953,-0.954,-0.954,-0.954,-0.955,-0.955,-0.956,-0.956,-0.957, - &-0.957,-0.957,-0.958,-0.958,-0.959,-0.959,-0.959,-0.960,-0.960, - &-0.961,-0.961,-0.962,-0.962,-0.962,-0.963,-0.963,-0.964,-0.964, - &-0.964,-0.965,-0.965,-0.966,-0.966,-0.966,-0.967,-0.967,-0.968, - &-0.968,-0.968,-0.969,-0.969,-0.973,-0.977,-0.981,-0.984,-0.988, - &-0.991,-0.995,-0.998,-1.001,-1.004,-1.007,-1.010,-1.013,-1.016, - &-1.019,-1.022,-1.024,-1.027,-1.030,-1.032,-1.035,-1.037,-1.040, - &-1.042,-1.045,-1.047,-1.049,-1.052,-1.054,-1.056,-1.058,-1.061, - &-1.063,-1.065,-1.067,-1.069,-1.071,-1.073,-1.075,-1.077,-1.079, - &-1.080,-1.082,-1.084,-1.086,-1.088,-1.089,-1.091,-1.093,-1.095, - &-1.096,-1.098,-1.100,-1.101,-1.103,-1.104,-1.106,-1.108,-1.109, - &-1.111,-1.112,-1.114,-1.115,-1.117,-1.118,-1.119,-1.121,-1.122, - &-1.124,-1.125,-1.126,-1.128,-1.129,-1.130,-1.132,-1.133,-1.134, - &-1.135,-1.137,-1.138,-1.139,-1.140,-1.142,-1.143,-1.144,-1.145, - &-1.146,-1.148,-1.149,-1.150,-1.151,-1.152,-1.153,-1.154,-1.155, - &-1.157,-1.158,-1.159,-1.160,-1.161,-1.162,-1.163,-1.164,-1.165, - &-1.166,-1.167,-1.168,-1.169,-1.170,-1.171,-1.172,-1.173,-1.174, - &-1.175,-1.176,-1.177,-1.178,-1.179,-1.180,-1.180,-1.181,-1.182, - &-1.183,-1.184,-1.185,-1.186,-1.187,-1.188,-1.188,-1.189,-1.190, - &-1.191,-1.192,-1.193,-1.193,-1.194,-1.195,-1.196,-1.197,-1.198, - &-1.198,-1.199,-1.200,-1.201,-1.201,-1.202,-1.203,-1.204,-1.205, - &-1.205,-1.206,-1.207,-1.208,-1.208,-1.209,-1.210,-1.210,-1.211, - &-1.212,-1.213,-1.213 - & /) -! -! *** NaNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC03M_298 = (/ - &-0.047,-0.102,-0.129,-0.149,-0.164,-0.177,-0.188,-0.198,-0.206, - &-0.214,-0.221,-0.228,-0.234,-0.239,-0.245,-0.250,-0.255,-0.259, - &-0.263,-0.267,-0.271,-0.275,-0.279,-0.282,-0.285,-0.289,-0.292, - &-0.295,-0.298,-0.300,-0.303,-0.306,-0.308,-0.311,-0.313,-0.316, - &-0.318,-0.320,-0.322,-0.324,-0.326,-0.329,-0.331,-0.332,-0.334, - &-0.336,-0.338,-0.340,-0.342,-0.343,-0.345,-0.347,-0.348,-0.350, - &-0.352,-0.353,-0.355,-0.356,-0.358,-0.359,-0.360,-0.362,-0.363, - &-0.365,-0.366,-0.367,-0.369,-0.370,-0.371,-0.372,-0.374,-0.375, - &-0.376,-0.377,-0.378,-0.380,-0.381,-0.382,-0.383,-0.384,-0.385, - &-0.386,-0.388,-0.389,-0.390,-0.391,-0.392,-0.393,-0.394,-0.395, - &-0.396,-0.397,-0.398,-0.399,-0.400,-0.401,-0.402,-0.403,-0.404, - &-0.405,-0.406,-0.407,-0.408,-0.408,-0.409,-0.410,-0.411,-0.412, - &-0.413,-0.414,-0.415,-0.416,-0.416,-0.417,-0.418,-0.419,-0.420, - &-0.421,-0.422,-0.422,-0.423,-0.424,-0.425,-0.426,-0.427,-0.427, - &-0.428,-0.429,-0.430,-0.430,-0.431,-0.432,-0.433,-0.434,-0.434, - &-0.435,-0.436,-0.437,-0.437,-0.438,-0.439,-0.439,-0.440,-0.441, - &-0.442,-0.442,-0.443,-0.444,-0.444,-0.445,-0.446,-0.447,-0.447, - &-0.448,-0.449,-0.449,-0.450,-0.451,-0.451,-0.452,-0.453,-0.453, - &-0.454,-0.454,-0.455,-0.456,-0.456,-0.457,-0.458,-0.458,-0.459, - &-0.460,-0.460,-0.461,-0.461,-0.462,-0.463,-0.463,-0.464,-0.464, - &-0.465,-0.466,-0.466,-0.467,-0.467,-0.468,-0.468,-0.469,-0.470, - &-0.470,-0.471,-0.471,-0.472,-0.472,-0.473,-0.474,-0.474,-0.475, - &-0.475,-0.476,-0.476,-0.477,-0.477,-0.478,-0.478,-0.479,-0.479, - &-0.480,-0.480,-0.481,-0.482,-0.482,-0.483,-0.483,-0.484,-0.484, - &-0.485,-0.485,-0.486,-0.486,-0.487,-0.487,-0.488,-0.488,-0.489, - &-0.489,-0.490,-0.490,-0.491,-0.491,-0.491,-0.492,-0.492,-0.493, - &-0.493,-0.494,-0.494,-0.495,-0.495,-0.496,-0.496,-0.497,-0.497, - &-0.498,-0.498,-0.498,-0.499,-0.499,-0.500,-0.500,-0.501,-0.501, - &-0.502,-0.502,-0.502,-0.503,-0.503,-0.504,-0.504,-0.505,-0.505, - &-0.505,-0.506,-0.506,-0.507,-0.507,-0.508,-0.508,-0.508,-0.509, - &-0.509,-0.510,-0.510,-0.511,-0.511,-0.511,-0.512,-0.512,-0.513, - &-0.513,-0.513,-0.514,-0.514,-0.515,-0.515,-0.515,-0.516,-0.516, - &-0.517,-0.517,-0.517,-0.518,-0.518,-0.518,-0.519,-0.519,-0.520, - &-0.520,-0.520,-0.521,-0.521,-0.522,-0.522,-0.522,-0.523,-0.523, - &-0.523,-0.524,-0.524,-0.525,-0.525,-0.525,-0.526,-0.526,-0.526, - &-0.527,-0.527,-0.527,-0.528,-0.528,-0.529,-0.529,-0.529,-0.530, - &-0.530,-0.530,-0.531,-0.531,-0.531,-0.532,-0.532,-0.532,-0.533, - &-0.533,-0.533,-0.534,-0.534,-0.534,-0.535,-0.535,-0.535,-0.536, - &-0.536,-0.536,-0.537,-0.537,-0.537,-0.538,-0.538,-0.538,-0.539, - &-0.539,-0.539,-0.540,-0.540,-0.540,-0.541,-0.541,-0.541,-0.542, - &-0.542,-0.542,-0.543,-0.543,-0.543,-0.544,-0.544,-0.544,-0.545, - &-0.545,-0.545,-0.546,-0.546,-0.546,-0.546,-0.547,-0.547,-0.547, - &-0.548,-0.548,-0.548,-0.549,-0.549,-0.549,-0.549,-0.550,-0.550, - &-0.550,-0.551,-0.551,-0.551,-0.552,-0.552,-0.552,-0.552,-0.553, - &-0.553,-0.553,-0.554,-0.554,-0.557,-0.560,-0.563,-0.565,-0.568, - &-0.570,-0.573,-0.575,-0.578,-0.580,-0.583,-0.585,-0.587,-0.589, - &-0.592,-0.594,-0.596,-0.598,-0.600,-0.602,-0.604,-0.606,-0.608, - &-0.609,-0.611,-0.613,-0.615,-0.617,-0.618,-0.620,-0.622,-0.623, - &-0.625,-0.627,-0.628,-0.630,-0.631,-0.633,-0.634,-0.636,-0.637, - &-0.639,-0.640,-0.642,-0.643,-0.644,-0.646,-0.647,-0.648,-0.650, - &-0.651,-0.652,-0.653,-0.655,-0.656,-0.657,-0.658,-0.660,-0.661, - &-0.662,-0.663,-0.664,-0.665,-0.667,-0.668,-0.669,-0.670,-0.671, - &-0.672,-0.673,-0.674,-0.675,-0.676,-0.677,-0.678,-0.679,-0.680, - &-0.681,-0.682,-0.683,-0.684,-0.685,-0.686,-0.687,-0.688,-0.689, - &-0.690,-0.691,-0.692,-0.692,-0.693,-0.694,-0.695,-0.696,-0.697, - &-0.698,-0.698,-0.699,-0.700,-0.701,-0.702,-0.703,-0.703,-0.704, - &-0.705,-0.706,-0.706,-0.707,-0.708,-0.709,-0.709,-0.710,-0.711, - &-0.712,-0.712,-0.713,-0.714,-0.715,-0.715,-0.716,-0.717,-0.717, - &-0.718,-0.719,-0.719,-0.720,-0.721,-0.721,-0.722,-0.723,-0.723, - &-0.724,-0.725,-0.725,-0.726,-0.727,-0.727,-0.728,-0.729,-0.729, - &-0.730,-0.730,-0.731,-0.732,-0.732,-0.733,-0.733,-0.734,-0.735, - &-0.735,-0.736,-0.736,-0.737,-0.737,-0.738,-0.739,-0.739,-0.740, - &-0.740,-0.741,-0.741 - & /) -! -! *** (NH4)2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC04M_298 = (/ - &-0.093,-0.203,-0.257,-0.296,-0.326,-0.351,-0.372,-0.391,-0.408, - &-0.423,-0.436,-0.449,-0.460,-0.471,-0.481,-0.491,-0.500,-0.508, - &-0.516,-0.524,-0.531,-0.538,-0.545,-0.552,-0.558,-0.564,-0.569, - &-0.575,-0.580,-0.585,-0.590,-0.595,-0.600,-0.605,-0.609,-0.613, - &-0.618,-0.622,-0.626,-0.629,-0.633,-0.637,-0.641,-0.644,-0.648, - &-0.651,-0.654,-0.658,-0.661,-0.664,-0.667,-0.670,-0.673,-0.676, - &-0.678,-0.681,-0.684,-0.687,-0.689,-0.692,-0.694,-0.697,-0.699, - &-0.702,-0.704,-0.707,-0.709,-0.711,-0.713,-0.716,-0.718,-0.720, - &-0.722,-0.724,-0.726,-0.728,-0.730,-0.732,-0.734,-0.736,-0.738, - &-0.740,-0.742,-0.744,-0.746,-0.748,-0.749,-0.751,-0.753,-0.755, - &-0.756,-0.758,-0.760,-0.762,-0.763,-0.765,-0.767,-0.768,-0.770, - &-0.772,-0.773,-0.775,-0.776,-0.778,-0.779,-0.781,-0.782,-0.784, - &-0.786,-0.787,-0.788,-0.790,-0.791,-0.793,-0.794,-0.796,-0.797, - &-0.799,-0.800,-0.801,-0.803,-0.804,-0.805,-0.807,-0.808,-0.809, - &-0.811,-0.812,-0.813,-0.815,-0.816,-0.817,-0.819,-0.820,-0.821, - &-0.822,-0.824,-0.825,-0.826,-0.827,-0.828,-0.830,-0.831,-0.832, - &-0.833,-0.834,-0.835,-0.837,-0.838,-0.839,-0.840,-0.841,-0.842, - &-0.843,-0.844,-0.846,-0.847,-0.848,-0.849,-0.850,-0.851,-0.852, - &-0.853,-0.854,-0.855,-0.856,-0.857,-0.858,-0.859,-0.860,-0.861, - &-0.862,-0.863,-0.864,-0.865,-0.866,-0.867,-0.868,-0.869,-0.870, - &-0.871,-0.872,-0.873,-0.874,-0.875,-0.876,-0.877,-0.878,-0.878, - &-0.879,-0.880,-0.881,-0.882,-0.883,-0.884,-0.885,-0.886,-0.886, - &-0.887,-0.888,-0.889,-0.890,-0.891,-0.892,-0.893,-0.893,-0.894, - &-0.895,-0.896,-0.897,-0.898,-0.898,-0.899,-0.900,-0.901,-0.902, - &-0.902,-0.903,-0.904,-0.905,-0.906,-0.906,-0.907,-0.908,-0.909, - &-0.910,-0.910,-0.911,-0.912,-0.913,-0.913,-0.914,-0.915,-0.916, - &-0.916,-0.917,-0.918,-0.919,-0.919,-0.920,-0.921,-0.922,-0.922, - &-0.923,-0.924,-0.924,-0.925,-0.926,-0.927,-0.927,-0.928,-0.929, - &-0.929,-0.930,-0.931,-0.931,-0.932,-0.933,-0.933,-0.934,-0.935, - &-0.936,-0.936,-0.937,-0.938,-0.938,-0.939,-0.940,-0.940,-0.941, - &-0.941,-0.942,-0.943,-0.943,-0.944,-0.945,-0.945,-0.946,-0.947, - &-0.947,-0.948,-0.949,-0.949,-0.950,-0.950,-0.951,-0.952,-0.952, - &-0.953,-0.954,-0.954,-0.955,-0.955,-0.956,-0.957,-0.957,-0.958, - &-0.958,-0.959,-0.960,-0.960,-0.961,-0.961,-0.962,-0.962,-0.963, - &-0.964,-0.964,-0.965,-0.965,-0.966,-0.967,-0.967,-0.968,-0.968, - &-0.969,-0.969,-0.970,-0.970,-0.971,-0.972,-0.972,-0.973,-0.973, - &-0.974,-0.974,-0.975,-0.975,-0.976,-0.977,-0.977,-0.978,-0.978, - &-0.979,-0.979,-0.980,-0.980,-0.981,-0.981,-0.982,-0.982,-0.983, - &-0.983,-0.984,-0.984,-0.985,-0.986,-0.986,-0.987,-0.987,-0.988, - &-0.988,-0.989,-0.989,-0.990,-0.990,-0.991,-0.991,-0.992,-0.992, - &-0.993,-0.993,-0.994,-0.994,-0.995,-0.995,-0.996,-0.996,-0.997, - &-0.997,-0.998,-0.998,-0.998,-0.999,-0.999,-1.000,-1.000,-1.001, - &-1.001,-1.002,-1.002,-1.003,-1.003,-1.004,-1.004,-1.005,-1.005, - &-1.006,-1.006,-1.006,-1.007,-1.007,-1.008,-1.008,-1.009,-1.009, - &-1.010,-1.010,-1.011,-1.011,-1.016,-1.020,-1.024,-1.029,-1.033, - &-1.037,-1.040,-1.044,-1.048,-1.052,-1.055,-1.059,-1.062,-1.065, - &-1.069,-1.072,-1.075,-1.078,-1.081,-1.084,-1.087,-1.090,-1.093, - &-1.096,-1.099,-1.102,-1.104,-1.107,-1.110,-1.112,-1.115,-1.117, - &-1.120,-1.122,-1.125,-1.127,-1.129,-1.132,-1.134,-1.136,-1.139, - &-1.141,-1.143,-1.145,-1.147,-1.149,-1.151,-1.153,-1.155,-1.157, - &-1.159,-1.161,-1.163,-1.165,-1.167,-1.169,-1.171,-1.173,-1.174, - &-1.176,-1.178,-1.180,-1.181,-1.183,-1.185,-1.187,-1.188,-1.190, - &-1.191,-1.193,-1.195,-1.196,-1.198,-1.199,-1.201,-1.202,-1.204, - &-1.205,-1.207,-1.208,-1.210,-1.211,-1.213,-1.214,-1.216,-1.217, - &-1.218,-1.220,-1.221,-1.223,-1.224,-1.225,-1.226,-1.228,-1.229, - &-1.230,-1.232,-1.233,-1.234,-1.235,-1.237,-1.238,-1.239,-1.240, - &-1.242,-1.243,-1.244,-1.245,-1.246,-1.247,-1.249,-1.250,-1.251, - &-1.252,-1.253,-1.254,-1.255,-1.256,-1.258,-1.259,-1.260,-1.261, - &-1.262,-1.263,-1.264,-1.265,-1.266,-1.267,-1.268,-1.269,-1.270, - &-1.271,-1.272,-1.273,-1.274,-1.275,-1.276,-1.277,-1.278,-1.279, - &-1.280,-1.281,-1.282,-1.283,-1.283,-1.284,-1.285,-1.286,-1.287, - &-1.288,-1.289,-1.290,-1.291,-1.292,-1.292,-1.293,-1.294,-1.295, - &-1.296,-1.297,-1.298 - & /) -! -! *** NH4NO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC05M_298 = (/ - &-0.047,-0.104,-0.134,-0.155,-0.172,-0.187,-0.199,-0.211,-0.221, - &-0.230,-0.239,-0.247,-0.255,-0.262,-0.268,-0.275,-0.281,-0.287, - &-0.293,-0.298,-0.303,-0.308,-0.313,-0.318,-0.323,-0.327,-0.332, - &-0.336,-0.340,-0.344,-0.348,-0.352,-0.356,-0.359,-0.363,-0.366, - &-0.370,-0.373,-0.377,-0.380,-0.383,-0.386,-0.389,-0.392,-0.395, - &-0.398,-0.401,-0.404,-0.406,-0.409,-0.412,-0.414,-0.417,-0.420, - &-0.422,-0.425,-0.427,-0.429,-0.432,-0.434,-0.436,-0.439,-0.441, - &-0.443,-0.445,-0.447,-0.450,-0.452,-0.454,-0.456,-0.458,-0.460, - &-0.462,-0.464,-0.466,-0.468,-0.470,-0.472,-0.474,-0.476,-0.478, - &-0.480,-0.481,-0.483,-0.485,-0.487,-0.489,-0.491,-0.492,-0.494, - &-0.496,-0.498,-0.500,-0.501,-0.503,-0.505,-0.507,-0.508,-0.510, - &-0.512,-0.514,-0.515,-0.517,-0.519,-0.520,-0.522,-0.524,-0.525, - &-0.527,-0.529,-0.530,-0.532,-0.534,-0.535,-0.537,-0.538,-0.540, - &-0.542,-0.543,-0.545,-0.546,-0.548,-0.550,-0.551,-0.553,-0.554, - &-0.556,-0.557,-0.559,-0.560,-0.562,-0.563,-0.565,-0.566,-0.568, - &-0.569,-0.571,-0.572,-0.573,-0.575,-0.576,-0.578,-0.579,-0.580, - &-0.582,-0.583,-0.585,-0.586,-0.587,-0.589,-0.590,-0.591,-0.593, - &-0.594,-0.595,-0.597,-0.598,-0.599,-0.601,-0.602,-0.603,-0.604, - &-0.606,-0.607,-0.608,-0.610,-0.611,-0.612,-0.613,-0.615,-0.616, - &-0.617,-0.618,-0.619,-0.621,-0.622,-0.623,-0.624,-0.625,-0.627, - &-0.628,-0.629,-0.630,-0.631,-0.632,-0.634,-0.635,-0.636,-0.637, - &-0.638,-0.639,-0.640,-0.642,-0.643,-0.644,-0.645,-0.646,-0.647, - &-0.648,-0.649,-0.650,-0.651,-0.652,-0.654,-0.655,-0.656,-0.657, - &-0.658,-0.659,-0.660,-0.661,-0.662,-0.663,-0.664,-0.665,-0.666, - &-0.667,-0.668,-0.669,-0.670,-0.671,-0.672,-0.673,-0.674,-0.675, - &-0.676,-0.677,-0.678,-0.679,-0.680,-0.681,-0.682,-0.683,-0.684, - &-0.685,-0.686,-0.687,-0.688,-0.688,-0.689,-0.690,-0.691,-0.692, - &-0.693,-0.694,-0.695,-0.696,-0.697,-0.698,-0.699,-0.699,-0.700, - &-0.701,-0.702,-0.703,-0.704,-0.705,-0.706,-0.707,-0.707,-0.708, - &-0.709,-0.710,-0.711,-0.712,-0.713,-0.713,-0.714,-0.715,-0.716, - &-0.717,-0.718,-0.718,-0.719,-0.720,-0.721,-0.722,-0.723,-0.723, - &-0.724,-0.725,-0.726,-0.727,-0.727,-0.728,-0.729,-0.730,-0.731, - &-0.731,-0.732,-0.733,-0.734,-0.735,-0.735,-0.736,-0.737,-0.738, - &-0.738,-0.739,-0.740,-0.741,-0.741,-0.742,-0.743,-0.744,-0.744, - &-0.745,-0.746,-0.747,-0.747,-0.748,-0.749,-0.750,-0.750,-0.751, - &-0.752,-0.753,-0.753,-0.754,-0.755,-0.755,-0.756,-0.757,-0.758, - &-0.758,-0.759,-0.760,-0.760,-0.761,-0.762,-0.762,-0.763,-0.764, - &-0.764,-0.765,-0.766,-0.767,-0.767,-0.768,-0.769,-0.769,-0.770, - &-0.771,-0.771,-0.772,-0.773,-0.773,-0.774,-0.775,-0.775,-0.776, - &-0.777,-0.777,-0.778,-0.778,-0.779,-0.780,-0.780,-0.781,-0.782, - &-0.782,-0.783,-0.784,-0.784,-0.785,-0.785,-0.786,-0.787,-0.787, - &-0.788,-0.789,-0.789,-0.790,-0.790,-0.791,-0.792,-0.792,-0.793, - &-0.793,-0.794,-0.795,-0.795,-0.796,-0.796,-0.797,-0.798,-0.798, - &-0.799,-0.799,-0.800,-0.801,-0.801,-0.802,-0.802,-0.803,-0.804, - &-0.804,-0.805,-0.805,-0.806,-0.812,-0.817,-0.823,-0.828,-0.833, - &-0.838,-0.843,-0.848,-0.852,-0.857,-0.861,-0.866,-0.870,-0.874, - &-0.878,-0.882,-0.886,-0.890,-0.893,-0.897,-0.900,-0.904,-0.907, - &-0.911,-0.914,-0.917,-0.920,-0.924,-0.927,-0.930,-0.933,-0.936, - &-0.938,-0.941,-0.944,-0.947,-0.949,-0.952,-0.954,-0.957,-0.959, - &-0.962,-0.964,-0.967,-0.969,-0.971,-0.973,-0.976,-0.978,-0.980, - &-0.982,-0.984,-0.986,-0.988,-0.990,-0.992,-0.994,-0.996,-0.998, - &-1.000,-1.002,-1.003,-1.005,-1.007,-1.009,-1.010,-1.012,-1.014, - &-1.015,-1.017,-1.019,-1.020,-1.022,-1.023,-1.025,-1.026,-1.028, - &-1.029,-1.031,-1.032,-1.033,-1.035,-1.036,-1.037,-1.039,-1.040, - &-1.041,-1.043,-1.044,-1.045,-1.046,-1.048,-1.049,-1.050,-1.051, - &-1.052,-1.054,-1.055,-1.056,-1.057,-1.058,-1.059,-1.060,-1.061, - &-1.062,-1.063,-1.064,-1.066,-1.067,-1.068,-1.069,-1.070,-1.070, - &-1.071,-1.072,-1.073,-1.074,-1.075,-1.076,-1.077,-1.078,-1.079, - &-1.080,-1.081,-1.081,-1.082,-1.083,-1.084,-1.085,-1.086,-1.086, - &-1.087,-1.088,-1.089,-1.090,-1.090,-1.091,-1.092,-1.093,-1.093, - &-1.094,-1.095,-1.096,-1.096,-1.097,-1.098,-1.099,-1.099,-1.100, - &-1.101,-1.101,-1.102,-1.103,-1.103,-1.104,-1.105,-1.105,-1.106, - &-1.107,-1.107,-1.108 - & /) -! -! *** NH4Cl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC06M_298 = (/ - &-0.046,-0.098,-0.123,-0.140,-0.153,-0.163,-0.172,-0.180,-0.186, - &-0.191,-0.196,-0.201,-0.205,-0.208,-0.212,-0.215,-0.217,-0.220, - &-0.222,-0.224,-0.226,-0.228,-0.230,-0.231,-0.233,-0.234,-0.235, - &-0.237,-0.238,-0.239,-0.240,-0.241,-0.241,-0.242,-0.243,-0.244, - &-0.244,-0.245,-0.246,-0.246,-0.247,-0.247,-0.247,-0.248,-0.248, - &-0.249,-0.249,-0.249,-0.250,-0.250,-0.250,-0.250,-0.251,-0.251, - &-0.251,-0.251,-0.251,-0.251,-0.252,-0.252,-0.252,-0.252,-0.252, - &-0.252,-0.252,-0.252,-0.252,-0.252,-0.252,-0.252,-0.252,-0.252, - &-0.252,-0.252,-0.252,-0.252,-0.252,-0.252,-0.252,-0.251,-0.251, - &-0.251,-0.251,-0.251,-0.251,-0.250,-0.250,-0.250,-0.250,-0.250, - &-0.249,-0.249,-0.249,-0.249,-0.248,-0.248,-0.248,-0.248,-0.247, - &-0.247,-0.247,-0.246,-0.246,-0.246,-0.245,-0.245,-0.245,-0.244, - &-0.244,-0.244,-0.243,-0.243,-0.243,-0.242,-0.242,-0.241,-0.241, - &-0.241,-0.240,-0.240,-0.239,-0.239,-0.239,-0.238,-0.238,-0.237, - &-0.237,-0.236,-0.236,-0.236,-0.235,-0.235,-0.234,-0.234,-0.233, - &-0.233,-0.233,-0.232,-0.232,-0.231,-0.231,-0.230,-0.230,-0.229, - &-0.229,-0.228,-0.228,-0.228,-0.227,-0.227,-0.226,-0.226,-0.225, - &-0.225,-0.224,-0.224,-0.223,-0.223,-0.222,-0.222,-0.221,-0.221, - &-0.220,-0.220,-0.220,-0.219,-0.219,-0.218,-0.218,-0.217,-0.217, - &-0.216,-0.216,-0.215,-0.215,-0.214,-0.214,-0.213,-0.213,-0.212, - &-0.212,-0.211,-0.211,-0.210,-0.210,-0.210,-0.209,-0.209,-0.208, - &-0.208,-0.207,-0.207,-0.206,-0.206,-0.205,-0.205,-0.204,-0.204, - &-0.203,-0.203,-0.202,-0.202,-0.201,-0.201,-0.200,-0.200,-0.199, - &-0.199,-0.198,-0.198,-0.197,-0.197,-0.197,-0.196,-0.196,-0.195, - &-0.195,-0.194,-0.194,-0.193,-0.193,-0.192,-0.192,-0.191,-0.191, - &-0.190,-0.190,-0.189,-0.189,-0.188,-0.188,-0.187,-0.187,-0.186, - &-0.186,-0.186,-0.185,-0.185,-0.184,-0.184,-0.183,-0.183,-0.182, - &-0.182,-0.181,-0.181,-0.180,-0.180,-0.179,-0.179,-0.178,-0.178, - &-0.177,-0.177,-0.177,-0.176,-0.176,-0.175,-0.175,-0.174,-0.174, - &-0.173,-0.173,-0.172,-0.172,-0.171,-0.171,-0.170,-0.170,-0.170, - &-0.169,-0.169,-0.168,-0.168,-0.167,-0.167,-0.166,-0.166,-0.165, - &-0.165,-0.164,-0.164,-0.164,-0.163,-0.163,-0.162,-0.162,-0.161, - &-0.161,-0.160,-0.160,-0.159,-0.159,-0.159,-0.158,-0.158,-0.157, - &-0.157,-0.156,-0.156,-0.155,-0.155,-0.154,-0.154,-0.154,-0.153, - &-0.153,-0.152,-0.152,-0.151,-0.151,-0.150,-0.150,-0.149,-0.149, - &-0.149,-0.148,-0.148,-0.147,-0.147,-0.146,-0.146,-0.145,-0.145, - &-0.145,-0.144,-0.144,-0.143,-0.143,-0.142,-0.142,-0.142,-0.141, - &-0.141,-0.140,-0.140,-0.139,-0.139,-0.138,-0.138,-0.138,-0.137, - &-0.137,-0.136,-0.136,-0.135,-0.135,-0.135,-0.134,-0.134,-0.133, - &-0.133,-0.132,-0.132,-0.132,-0.131,-0.131,-0.130,-0.130,-0.129, - &-0.129,-0.129,-0.128,-0.128,-0.127,-0.127,-0.126,-0.126,-0.126, - &-0.125,-0.125,-0.124,-0.124,-0.123,-0.123,-0.123,-0.122,-0.122, - &-0.121,-0.121,-0.121,-0.120,-0.120,-0.119,-0.119,-0.118,-0.118, - &-0.118,-0.117,-0.117,-0.116,-0.116,-0.116,-0.115,-0.115,-0.114, - &-0.114,-0.114,-0.113,-0.113,-0.108,-0.104,-0.100,-0.096,-0.092, - &-0.089,-0.085,-0.081,-0.077,-0.074,-0.070,-0.066,-0.063,-0.059, - &-0.055,-0.052,-0.049,-0.045,-0.042,-0.038,-0.035,-0.032,-0.028, - &-0.025,-0.022,-0.019,-0.016,-0.012,-0.009,-0.006,-0.003, 0.000, - & 0.003, 0.006, 0.009, 0.012, 0.014, 0.017, 0.020, 0.023, 0.026, - & 0.029, 0.031, 0.034, 0.037, 0.040, 0.042, 0.045, 0.047, 0.050, - & 0.053, 0.055, 0.058, 0.060, 0.063, 0.065, 0.068, 0.070, 0.073, - & 0.075, 0.078, 0.080, 0.082, 0.085, 0.087, 0.089, 0.092, 0.094, - & 0.096, 0.099, 0.101, 0.103, 0.105, 0.107, 0.110, 0.112, 0.114, - & 0.116, 0.118, 0.120, 0.123, 0.125, 0.127, 0.129, 0.131, 0.133, - & 0.135, 0.137, 0.139, 0.141, 0.143, 0.145, 0.147, 0.149, 0.151, - & 0.153, 0.155, 0.157, 0.159, 0.160, 0.162, 0.164, 0.166, 0.168, - & 0.170, 0.172, 0.173, 0.175, 0.177, 0.179, 0.181, 0.182, 0.184, - & 0.186, 0.188, 0.189, 0.191, 0.193, 0.195, 0.196, 0.198, 0.200, - & 0.201, 0.203, 0.205, 0.206, 0.208, 0.210, 0.211, 0.213, 0.215, - & 0.216, 0.218, 0.219, 0.221, 0.223, 0.224, 0.226, 0.227, 0.229, - & 0.230, 0.232, 0.233, 0.235, 0.236, 0.238, 0.239, 0.241, 0.242, - & 0.244, 0.245, 0.247, 0.248, 0.250, 0.251, 0.253, 0.254, 0.256, - & 0.257, 0.258, 0.260 - & /) -! -! *** (2H,SO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC07M_298 = (/ - &-0.093,-0.202,-0.255,-0.293,-0.323,-0.347,-0.368,-0.386,-0.402, - &-0.417,-0.430,-0.442,-0.453,-0.463,-0.473,-0.482,-0.490,-0.498, - &-0.506,-0.513,-0.520,-0.526,-0.532,-0.538,-0.544,-0.549,-0.555, - &-0.560,-0.565,-0.569,-0.574,-0.578,-0.583,-0.587,-0.591,-0.595, - &-0.598,-0.602,-0.606,-0.609,-0.613,-0.616,-0.619,-0.622,-0.625, - &-0.628,-0.631,-0.634,-0.637,-0.640,-0.642,-0.645,-0.648,-0.650, - &-0.653,-0.655,-0.657,-0.660,-0.662,-0.664,-0.666,-0.669,-0.671, - &-0.673,-0.675,-0.677,-0.679,-0.681,-0.683,-0.685,-0.687,-0.688, - &-0.690,-0.692,-0.694,-0.695,-0.697,-0.699,-0.701,-0.702,-0.704, - &-0.705,-0.707,-0.709,-0.710,-0.712,-0.713,-0.715,-0.716,-0.718, - &-0.719,-0.721,-0.722,-0.723,-0.725,-0.726,-0.727,-0.729,-0.730, - &-0.731,-0.733,-0.734,-0.735,-0.737,-0.738,-0.739,-0.740,-0.741, - &-0.743,-0.744,-0.745,-0.746,-0.747,-0.748,-0.750,-0.751,-0.752, - &-0.753,-0.754,-0.755,-0.756,-0.757,-0.758,-0.759,-0.760,-0.762, - &-0.763,-0.764,-0.765,-0.766,-0.767,-0.768,-0.769,-0.769,-0.770, - &-0.771,-0.772,-0.773,-0.774,-0.775,-0.776,-0.777,-0.778,-0.779, - &-0.780,-0.781,-0.781,-0.782,-0.783,-0.784,-0.785,-0.786,-0.787, - &-0.787,-0.788,-0.789,-0.790,-0.791,-0.792,-0.792,-0.793,-0.794, - &-0.795,-0.795,-0.796,-0.797,-0.798,-0.799,-0.799,-0.800,-0.801, - &-0.802,-0.802,-0.803,-0.804,-0.804,-0.805,-0.806,-0.807,-0.807, - &-0.808,-0.809,-0.809,-0.810,-0.811,-0.811,-0.812,-0.813,-0.814, - &-0.814,-0.815,-0.816,-0.816,-0.817,-0.817,-0.818,-0.819,-0.819, - &-0.820,-0.821,-0.821,-0.822,-0.823,-0.823,-0.824,-0.824,-0.825, - &-0.826,-0.826,-0.827,-0.827,-0.828,-0.829,-0.829,-0.830,-0.830, - &-0.831,-0.831,-0.832,-0.833,-0.833,-0.834,-0.834,-0.835,-0.835, - &-0.836,-0.837,-0.837,-0.838,-0.838,-0.839,-0.839,-0.840,-0.840, - &-0.841,-0.841,-0.842,-0.842,-0.843,-0.843,-0.844,-0.845,-0.845, - &-0.846,-0.846,-0.847,-0.847,-0.848,-0.848,-0.849,-0.849,-0.850, - &-0.850,-0.851,-0.851,-0.851,-0.852,-0.852,-0.853,-0.853,-0.854, - &-0.854,-0.855,-0.855,-0.856,-0.856,-0.857,-0.857,-0.858,-0.858, - &-0.859,-0.859,-0.859,-0.860,-0.860,-0.861,-0.861,-0.862,-0.862, - &-0.863,-0.863,-0.863,-0.864,-0.864,-0.865,-0.865,-0.866,-0.866, - &-0.866,-0.867,-0.867,-0.868,-0.868,-0.869,-0.869,-0.869,-0.870, - &-0.870,-0.871,-0.871,-0.871,-0.872,-0.872,-0.873,-0.873,-0.873, - &-0.874,-0.874,-0.875,-0.875,-0.875,-0.876,-0.876,-0.877,-0.877, - &-0.877,-0.878,-0.878,-0.878,-0.879,-0.879,-0.880,-0.880,-0.880, - &-0.881,-0.881,-0.881,-0.882,-0.882,-0.883,-0.883,-0.883,-0.884, - &-0.884,-0.884,-0.885,-0.885,-0.885,-0.886,-0.886,-0.887,-0.887, - &-0.887,-0.888,-0.888,-0.888,-0.889,-0.889,-0.889,-0.890,-0.890, - &-0.890,-0.891,-0.891,-0.891,-0.892,-0.892,-0.892,-0.893,-0.893, - &-0.893,-0.894,-0.894,-0.894,-0.895,-0.895,-0.895,-0.896,-0.896, - &-0.896,-0.897,-0.897,-0.897,-0.898,-0.898,-0.898,-0.899,-0.899, - &-0.899,-0.900,-0.900,-0.900,-0.901,-0.901,-0.901,-0.901,-0.902, - &-0.902,-0.902,-0.903,-0.903,-0.903,-0.904,-0.904,-0.904,-0.905, - &-0.905,-0.905,-0.905,-0.906,-0.909,-0.912,-0.915,-0.917,-0.920, - &-0.922,-0.925,-0.927,-0.930,-0.932,-0.935,-0.937,-0.939,-0.941, - &-0.943,-0.945,-0.947,-0.949,-0.951,-0.953,-0.955,-0.957,-0.959, - &-0.961,-0.962,-0.964,-0.966,-0.967,-0.969,-0.971,-0.972,-0.974, - &-0.975,-0.977,-0.978,-0.980,-0.981,-0.983,-0.984,-0.986,-0.987, - &-0.988,-0.990,-0.991,-0.992,-0.994,-0.995,-0.996,-0.997,-0.999, - &-1.000,-1.001,-1.002,-1.003,-1.004,-1.006,-1.007,-1.008,-1.009, - &-1.010,-1.011,-1.012,-1.013,-1.014,-1.015,-1.016,-1.017,-1.018, - &-1.019,-1.020,-1.021,-1.022,-1.023,-1.024,-1.025,-1.026,-1.027, - &-1.028,-1.028,-1.029,-1.030,-1.031,-1.032,-1.033,-1.034,-1.034, - &-1.035,-1.036,-1.037,-1.038,-1.039,-1.039,-1.040,-1.041,-1.042, - &-1.042,-1.043,-1.044,-1.045,-1.045,-1.046,-1.047,-1.048,-1.048, - &-1.049,-1.050,-1.050,-1.051,-1.052,-1.052,-1.053,-1.054,-1.055, - &-1.055,-1.056,-1.056,-1.057,-1.058,-1.058,-1.059,-1.060,-1.060, - &-1.061,-1.062,-1.062,-1.063,-1.063,-1.064,-1.065,-1.065,-1.066, - &-1.066,-1.067,-1.068,-1.068,-1.069,-1.069,-1.070,-1.070,-1.071, - &-1.071,-1.072,-1.073,-1.073,-1.074,-1.074,-1.075,-1.075,-1.076, - &-1.076,-1.077,-1.077,-1.078,-1.078,-1.079,-1.079,-1.080,-1.080, - &-1.081,-1.081,-1.082 - & /) -! -! *** (H,HSO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC08M_298 = (/ - &-0.044,-0.088,-0.106,-0.116,-0.123,-0.128,-0.131,-0.133,-0.134, - &-0.134,-0.134,-0.133,-0.131,-0.129,-0.127,-0.125,-0.122,-0.119, - &-0.115,-0.112,-0.108,-0.104,-0.100,-0.095,-0.091,-0.086,-0.081, - &-0.076,-0.071,-0.066,-0.060,-0.055,-0.049,-0.043,-0.037,-0.031, - &-0.025,-0.019,-0.013,-0.006, 0.000, 0.007, 0.013, 0.020, 0.027, - & 0.034, 0.041, 0.048, 0.055, 0.062, 0.069, 0.076, 0.083, 0.090, - & 0.098, 0.105, 0.113, 0.120, 0.127, 0.135, 0.143, 0.150, 0.158, - & 0.166, 0.173, 0.181, 0.189, 0.197, 0.205, 0.212, 0.220, 0.228, - & 0.236, 0.245, 0.253, 0.261, 0.269, 0.277, 0.286, 0.294, 0.302, - & 0.311, 0.319, 0.328, 0.336, 0.345, 0.353, 0.362, 0.371, 0.380, - & 0.388, 0.397, 0.406, 0.415, 0.424, 0.433, 0.442, 0.451, 0.460, - & 0.469, 0.479, 0.488, 0.497, 0.506, 0.516, 0.525, 0.535, 0.544, - & 0.553, 0.563, 0.572, 0.582, 0.591, 0.601, 0.610, 0.620, 0.629, - & 0.639, 0.648, 0.658, 0.667, 0.677, 0.686, 0.696, 0.705, 0.715, - & 0.725, 0.734, 0.744, 0.753, 0.763, 0.772, 0.782, 0.791, 0.800, - & 0.810, 0.819, 0.829, 0.838, 0.848, 0.857, 0.866, 0.876, 0.885, - & 0.894, 0.904, 0.913, 0.922, 0.932, 0.941, 0.950, 0.959, 0.968, - & 0.978, 0.987, 0.996, 1.005, 1.014, 1.023, 1.032, 1.041, 1.050, - & 1.059, 1.069, 1.077, 1.086, 1.095, 1.104, 1.113, 1.122, 1.131, - & 1.140, 1.149, 1.158, 1.166, 1.175, 1.184, 1.193, 1.202, 1.210, - & 1.219, 1.228, 1.236, 1.245, 1.254, 1.262, 1.271, 1.279, 1.288, - & 1.296, 1.305, 1.314, 1.322, 1.330, 1.339, 1.347, 1.356, 1.364, - & 1.373, 1.381, 1.389, 1.398, 1.406, 1.414, 1.422, 1.431, 1.439, - & 1.447, 1.455, 1.464, 1.472, 1.480, 1.488, 1.496, 1.504, 1.512, - & 1.520, 1.528, 1.537, 1.545, 1.553, 1.561, 1.568, 1.576, 1.584, - & 1.592, 1.600, 1.608, 1.616, 1.624, 1.632, 1.639, 1.647, 1.655, - & 1.663, 1.670, 1.678, 1.686, 1.694, 1.701, 1.709, 1.717, 1.724, - & 1.732, 1.740, 1.747, 1.755, 1.762, 1.770, 1.777, 1.785, 1.792, - & 1.800, 1.807, 1.815, 1.822, 1.830, 1.837, 1.844, 1.852, 1.859, - & 1.866, 1.874, 1.881, 1.888, 1.896, 1.903, 1.910, 1.917, 1.925, - & 1.932, 1.939, 1.946, 1.953, 1.961, 1.968, 1.975, 1.982, 1.989, - & 1.996, 2.003, 2.010, 2.017, 2.024, 2.031, 2.038, 2.045, 2.052, - & 2.059, 2.066, 2.073, 2.080, 2.087, 2.094, 2.101, 2.108, 2.114, - & 2.121, 2.128, 2.135, 2.142, 2.148, 2.155, 2.162, 2.169, 2.175, - & 2.182, 2.189, 2.196, 2.202, 2.209, 2.216, 2.222, 2.229, 2.236, - & 2.242, 2.249, 2.255, 2.262, 2.268, 2.275, 2.281, 2.288, 2.295, - & 2.301, 2.308, 2.314, 2.320, 2.327, 2.333, 2.340, 2.346, 2.353, - & 2.359, 2.365, 2.372, 2.378, 2.384, 2.391, 2.397, 2.403, 2.410, - & 2.416, 2.422, 2.429, 2.435, 2.441, 2.447, 2.453, 2.460, 2.466, - & 2.472, 2.478, 2.484, 2.491, 2.497, 2.503, 2.509, 2.515, 2.521, - & 2.527, 2.533, 2.539, 2.546, 2.552, 2.558, 2.564, 2.570, 2.576, - & 2.582, 2.588, 2.594, 2.600, 2.606, 2.612, 2.617, 2.623, 2.629, - & 2.635, 2.641, 2.647, 2.653, 2.659, 2.665, 2.670, 2.676, 2.682, - & 2.688, 2.694, 2.700, 2.705, 2.711, 2.717, 2.723, 2.728, 2.734, - & 2.740, 2.746, 2.751, 2.757, 2.818, 2.874, 2.928, 2.982, 3.035, - & 3.087, 3.139, 3.190, 3.239, 3.289, 3.337, 3.385, 3.432, 3.479, - & 3.525, 3.571, 3.615, 3.660, 3.703, 3.746, 3.789, 3.831, 3.873, - & 3.914, 3.954, 3.995, 4.034, 4.073, 4.112, 4.151, 4.189, 4.226, - & 4.263, 4.300, 4.336, 4.372, 4.408, 4.443, 4.478, 4.513, 4.547, - & 4.581, 4.614, 4.647, 4.680, 4.713, 4.745, 4.777, 4.809, 4.840, - & 4.871, 4.902, 4.933, 4.963, 4.993, 5.023, 5.052, 5.082, 5.111, - & 5.140, 5.168, 5.196, 5.224, 5.252, 5.280, 5.307, 5.335, 5.362, - & 5.388, 5.415, 5.441, 5.468, 5.494, 5.519, 5.545, 5.570, 5.596, - & 5.621, 5.646, 5.670, 5.695, 5.719, 5.743, 5.767, 5.791, 5.815, - & 5.838, 5.862, 5.885, 5.908, 5.931, 5.954, 5.976, 5.999, 6.021, - & 6.043, 6.065, 6.087, 6.109, 6.130, 6.152, 6.173, 6.194, 6.215, - & 6.236, 6.257, 6.278, 6.298, 6.319, 6.339, 6.359, 6.380, 6.400, - & 6.419, 6.439, 6.459, 6.478, 6.498, 6.517, 6.536, 6.555, 6.574, - & 6.593, 6.612, 6.631, 6.649, 6.668, 6.686, 6.705, 6.723, 6.741, - & 6.759, 6.777, 6.795, 6.812, 6.830, 6.848, 6.865, 6.882, 6.900, - & 6.917, 6.934, 6.951, 6.968, 6.985, 7.002, 7.018, 7.035, 7.052, - & 7.068, 7.084, 7.101, 7.117, 7.133, 7.149, 7.165, 7.181, 7.197, - & 7.213, 7.229, 7.244 - & /) -! -! *** NH4HSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC09M_298 = (/ - &-0.046,-0.097,-0.122,-0.138,-0.151,-0.162,-0.170,-0.177,-0.184, - &-0.189,-0.194,-0.198,-0.202,-0.206,-0.209,-0.212,-0.214,-0.216, - &-0.218,-0.220,-0.222,-0.223,-0.224,-0.225,-0.226,-0.227,-0.227, - &-0.228,-0.228,-0.228,-0.228,-0.228,-0.228,-0.228,-0.228,-0.227, - &-0.227,-0.226,-0.225,-0.225,-0.224,-0.223,-0.222,-0.221,-0.220, - &-0.219,-0.218,-0.216,-0.215,-0.214,-0.212,-0.211,-0.209,-0.208, - &-0.206,-0.204,-0.203,-0.201,-0.199,-0.197,-0.195,-0.193,-0.192, - &-0.190,-0.188,-0.185,-0.183,-0.181,-0.179,-0.177,-0.175,-0.173, - &-0.170,-0.168,-0.166,-0.163,-0.161,-0.159,-0.156,-0.154,-0.151, - &-0.149,-0.146,-0.144,-0.141,-0.139,-0.136,-0.133,-0.131,-0.128, - &-0.125,-0.122,-0.120,-0.117,-0.114,-0.111,-0.108,-0.106,-0.103, - &-0.100,-0.097,-0.094,-0.091,-0.088,-0.085,-0.082,-0.079,-0.076, - &-0.073,-0.070,-0.067,-0.064,-0.061,-0.058,-0.055,-0.052,-0.049, - &-0.045,-0.042,-0.039,-0.036,-0.033,-0.030,-0.027,-0.024,-0.021, - &-0.018,-0.014,-0.011,-0.008,-0.005,-0.002, 0.001, 0.004, 0.007, - & 0.010, 0.013, 0.016, 0.020, 0.023, 0.026, 0.029, 0.032, 0.035, - & 0.038, 0.041, 0.044, 0.047, 0.050, 0.053, 0.056, 0.059, 0.062, - & 0.065, 0.068, 0.071, 0.074, 0.077, 0.080, 0.083, 0.086, 0.089, - & 0.092, 0.095, 0.098, 0.101, 0.104, 0.106, 0.109, 0.112, 0.115, - & 0.118, 0.121, 0.124, 0.127, 0.130, 0.132, 0.135, 0.138, 0.141, - & 0.144, 0.147, 0.150, 0.152, 0.155, 0.158, 0.161, 0.164, 0.166, - & 0.169, 0.172, 0.175, 0.177, 0.180, 0.183, 0.186, 0.188, 0.191, - & 0.194, 0.197, 0.199, 0.202, 0.205, 0.208, 0.210, 0.213, 0.216, - & 0.218, 0.221, 0.224, 0.226, 0.229, 0.232, 0.234, 0.237, 0.239, - & 0.242, 0.245, 0.247, 0.250, 0.253, 0.255, 0.258, 0.260, 0.263, - & 0.265, 0.268, 0.271, 0.273, 0.276, 0.278, 0.281, 0.283, 0.286, - & 0.288, 0.291, 0.293, 0.296, 0.298, 0.301, 0.303, 0.306, 0.308, - & 0.311, 0.313, 0.316, 0.318, 0.321, 0.323, 0.326, 0.328, 0.330, - & 0.333, 0.335, 0.338, 0.340, 0.343, 0.345, 0.347, 0.350, 0.352, - & 0.355, 0.357, 0.359, 0.362, 0.364, 0.366, 0.369, 0.371, 0.374, - & 0.376, 0.378, 0.381, 0.383, 0.385, 0.388, 0.390, 0.392, 0.394, - & 0.397, 0.399, 0.401, 0.404, 0.406, 0.408, 0.410, 0.413, 0.415, - & 0.417, 0.420, 0.422, 0.424, 0.426, 0.429, 0.431, 0.433, 0.435, - & 0.437, 0.440, 0.442, 0.444, 0.446, 0.449, 0.451, 0.453, 0.455, - & 0.457, 0.460, 0.462, 0.464, 0.466, 0.468, 0.470, 0.473, 0.475, - & 0.477, 0.479, 0.481, 0.483, 0.485, 0.488, 0.490, 0.492, 0.494, - & 0.496, 0.498, 0.500, 0.502, 0.504, 0.507, 0.509, 0.511, 0.513, - & 0.515, 0.517, 0.519, 0.521, 0.523, 0.525, 0.527, 0.529, 0.531, - & 0.534, 0.536, 0.538, 0.540, 0.542, 0.544, 0.546, 0.548, 0.550, - & 0.552, 0.554, 0.556, 0.558, 0.560, 0.562, 0.564, 0.566, 0.568, - & 0.570, 0.572, 0.574, 0.576, 0.578, 0.580, 0.582, 0.584, 0.586, - & 0.588, 0.590, 0.592, 0.593, 0.595, 0.597, 0.599, 0.601, 0.603, - & 0.605, 0.607, 0.609, 0.611, 0.613, 0.615, 0.617, 0.619, 0.620, - & 0.622, 0.624, 0.626, 0.628, 0.630, 0.632, 0.634, 0.636, 0.637, - & 0.639, 0.641, 0.643, 0.645, 0.665, 0.683, 0.701, 0.719, 0.736, - & 0.753, 0.770, 0.787, 0.803, 0.820, 0.836, 0.852, 0.867, 0.883, - & 0.898, 0.913, 0.928, 0.942, 0.957, 0.971, 0.985, 0.999, 1.013, - & 1.027, 1.040, 1.053, 1.067, 1.080, 1.093, 1.105, 1.118, 1.131, - & 1.143, 1.155, 1.167, 1.179, 1.191, 1.203, 1.215, 1.226, 1.238, - & 1.249, 1.260, 1.271, 1.283, 1.293, 1.304, 1.315, 1.326, 1.336, - & 1.347, 1.357, 1.367, 1.377, 1.388, 1.398, 1.408, 1.417, 1.427, - & 1.437, 1.446, 1.456, 1.466, 1.475, 1.484, 1.493, 1.503, 1.512, - & 1.521, 1.530, 1.539, 1.548, 1.556, 1.565, 1.574, 1.582, 1.591, - & 1.599, 1.608, 1.616, 1.624, 1.633, 1.641, 1.649, 1.657, 1.665, - & 1.673, 1.681, 1.689, 1.697, 1.704, 1.712, 1.720, 1.727, 1.735, - & 1.742, 1.750, 1.757, 1.765, 1.772, 1.779, 1.787, 1.794, 1.801, - & 1.808, 1.815, 1.822, 1.829, 1.836, 1.843, 1.850, 1.857, 1.864, - & 1.870, 1.877, 1.884, 1.890, 1.897, 1.904, 1.910, 1.917, 1.923, - & 1.930, 1.936, 1.942, 1.949, 1.955, 1.961, 1.968, 1.974, 1.980, - & 1.986, 1.992, 1.998, 2.004, 2.010, 2.016, 2.022, 2.028, 2.034, - & 2.040, 2.046, 2.052, 2.058, 2.063, 2.069, 2.075, 2.080, 2.086, - & 2.092, 2.097, 2.103, 2.108, 2.114, 2.119, 2.125, 2.130, 2.136, - & 2.141, 2.147, 2.152 - & /) -! -! *** (H,NO3) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC10M_298 = (/ - &-0.045,-0.094,-0.116,-0.130,-0.140,-0.147,-0.153,-0.158,-0.162, - &-0.165,-0.167,-0.169,-0.171,-0.172,-0.173,-0.173,-0.174,-0.174, - &-0.174,-0.173,-0.173,-0.172,-0.172,-0.171,-0.170,-0.169,-0.168, - &-0.167,-0.166,-0.165,-0.163,-0.162,-0.161,-0.159,-0.158,-0.156, - &-0.155,-0.153,-0.152,-0.150,-0.148,-0.147,-0.145,-0.143,-0.142, - &-0.140,-0.138,-0.136,-0.135,-0.133,-0.131,-0.129,-0.127,-0.126, - &-0.124,-0.122,-0.120,-0.118,-0.117,-0.115,-0.113,-0.111,-0.109, - &-0.107,-0.106,-0.104,-0.102,-0.100,-0.098,-0.096,-0.094,-0.092, - &-0.090,-0.088,-0.086,-0.084,-0.083,-0.081,-0.079,-0.077,-0.074, - &-0.072,-0.070,-0.068,-0.066,-0.064,-0.062,-0.060,-0.058,-0.056, - &-0.053,-0.051,-0.049,-0.047,-0.045,-0.042,-0.040,-0.038,-0.036, - &-0.033,-0.031,-0.029,-0.026,-0.024,-0.022,-0.019,-0.017,-0.015, - &-0.012,-0.010,-0.008,-0.005,-0.003, 0.000, 0.002, 0.004, 0.007, - & 0.009, 0.012, 0.014, 0.017, 0.019, 0.022, 0.024, 0.026, 0.029, - & 0.031, 0.034, 0.036, 0.039, 0.041, 0.044, 0.046, 0.049, 0.051, - & 0.053, 0.056, 0.058, 0.061, 0.063, 0.066, 0.068, 0.071, 0.073, - & 0.075, 0.078, 0.080, 0.083, 0.085, 0.088, 0.090, 0.092, 0.095, - & 0.097, 0.100, 0.102, 0.105, 0.107, 0.109, 0.112, 0.114, 0.117, - & 0.119, 0.121, 0.124, 0.126, 0.129, 0.131, 0.133, 0.136, 0.138, - & 0.140, 0.143, 0.145, 0.148, 0.150, 0.152, 0.155, 0.157, 0.159, - & 0.162, 0.164, 0.166, 0.169, 0.171, 0.173, 0.176, 0.178, 0.180, - & 0.183, 0.185, 0.187, 0.190, 0.192, 0.194, 0.197, 0.199, 0.201, - & 0.204, 0.206, 0.208, 0.210, 0.213, 0.215, 0.217, 0.220, 0.222, - & 0.224, 0.226, 0.229, 0.231, 0.233, 0.235, 0.238, 0.240, 0.242, - & 0.244, 0.247, 0.249, 0.251, 0.253, 0.256, 0.258, 0.260, 0.262, - & 0.264, 0.267, 0.269, 0.271, 0.273, 0.275, 0.278, 0.280, 0.282, - & 0.284, 0.286, 0.288, 0.291, 0.293, 0.295, 0.297, 0.299, 0.301, - & 0.304, 0.306, 0.308, 0.310, 0.312, 0.314, 0.317, 0.319, 0.321, - & 0.323, 0.325, 0.327, 0.329, 0.331, 0.333, 0.336, 0.338, 0.340, - & 0.342, 0.344, 0.346, 0.348, 0.350, 0.352, 0.354, 0.356, 0.359, - & 0.361, 0.363, 0.365, 0.367, 0.369, 0.371, 0.373, 0.375, 0.377, - & 0.379, 0.381, 0.383, 0.385, 0.387, 0.389, 0.391, 0.393, 0.395, - & 0.397, 0.399, 0.401, 0.403, 0.405, 0.407, 0.409, 0.411, 0.413, - & 0.415, 0.417, 0.419, 0.421, 0.423, 0.425, 0.427, 0.429, 0.431, - & 0.433, 0.435, 0.437, 0.439, 0.441, 0.443, 0.445, 0.447, 0.449, - & 0.451, 0.453, 0.455, 0.456, 0.458, 0.460, 0.462, 0.464, 0.466, - & 0.468, 0.470, 0.472, 0.474, 0.476, 0.477, 0.479, 0.481, 0.483, - & 0.485, 0.487, 0.489, 0.491, 0.493, 0.494, 0.496, 0.498, 0.500, - & 0.502, 0.504, 0.506, 0.507, 0.509, 0.511, 0.513, 0.515, 0.517, - & 0.518, 0.520, 0.522, 0.524, 0.526, 0.528, 0.529, 0.531, 0.533, - & 0.535, 0.537, 0.539, 0.540, 0.542, 0.544, 0.546, 0.547, 0.549, - & 0.551, 0.553, 0.555, 0.556, 0.558, 0.560, 0.562, 0.564, 0.565, - & 0.567, 0.569, 0.571, 0.572, 0.574, 0.576, 0.578, 0.579, 0.581, - & 0.583, 0.585, 0.586, 0.588, 0.590, 0.592, 0.593, 0.595, 0.597, - & 0.598, 0.600, 0.602, 0.604, 0.622, 0.639, 0.655, 0.672, 0.688, - & 0.704, 0.719, 0.735, 0.750, 0.765, 0.780, 0.795, 0.809, 0.824, - & 0.838, 0.852, 0.866, 0.879, 0.893, 0.906, 0.919, 0.932, 0.945, - & 0.958, 0.971, 0.983, 0.996, 1.008, 1.020, 1.032, 1.044, 1.055, - & 1.067, 1.079, 1.090, 1.101, 1.112, 1.123, 1.134, 1.145, 1.156, - & 1.167, 1.177, 1.188, 1.198, 1.208, 1.218, 1.228, 1.238, 1.248, - & 1.258, 1.268, 1.278, 1.287, 1.297, 1.306, 1.315, 1.325, 1.334, - & 1.343, 1.352, 1.361, 1.370, 1.379, 1.387, 1.396, 1.405, 1.413, - & 1.422, 1.430, 1.438, 1.447, 1.455, 1.463, 1.471, 1.479, 1.487, - & 1.495, 1.503, 1.511, 1.519, 1.527, 1.534, 1.542, 1.550, 1.557, - & 1.565, 1.572, 1.579, 1.587, 1.594, 1.601, 1.608, 1.616, 1.623, - & 1.630, 1.637, 1.644, 1.651, 1.657, 1.664, 1.671, 1.678, 1.685, - & 1.691, 1.698, 1.704, 1.711, 1.718, 1.724, 1.730, 1.737, 1.743, - & 1.750, 1.756, 1.762, 1.768, 1.775, 1.781, 1.787, 1.793, 1.799, - & 1.805, 1.811, 1.817, 1.823, 1.829, 1.835, 1.841, 1.846, 1.852, - & 1.858, 1.864, 1.869, 1.875, 1.881, 1.886, 1.892, 1.897, 1.903, - & 1.908, 1.914, 1.919, 1.925, 1.930, 1.936, 1.941, 1.946, 1.952, - & 1.957, 1.962, 1.967, 1.972, 1.978, 1.983, 1.988, 1.993, 1.998, - & 2.003, 2.008, 2.013 - & /) -! -! *** (H,Cl) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC11M_298 = (/ - &-0.044,-0.089,-0.107,-0.118,-0.125,-0.130,-0.133,-0.135,-0.136, - &-0.136,-0.136,-0.135,-0.134,-0.132,-0.130,-0.128,-0.125,-0.122, - &-0.119,-0.116,-0.113,-0.109,-0.105,-0.102,-0.098,-0.094,-0.089, - &-0.085,-0.081,-0.076,-0.072,-0.067,-0.062,-0.057,-0.053,-0.048, - &-0.043,-0.038,-0.033,-0.028,-0.022,-0.017,-0.012,-0.007,-0.001, - & 0.004, 0.009, 0.015, 0.020, 0.025, 0.031, 0.036, 0.042, 0.047, - & 0.053, 0.058, 0.064, 0.069, 0.075, 0.081, 0.086, 0.092, 0.097, - & 0.103, 0.109, 0.114, 0.120, 0.126, 0.132, 0.137, 0.143, 0.149, - & 0.155, 0.161, 0.167, 0.172, 0.178, 0.184, 0.190, 0.196, 0.202, - & 0.208, 0.214, 0.220, 0.227, 0.233, 0.239, 0.245, 0.251, 0.258, - & 0.264, 0.270, 0.277, 0.283, 0.290, 0.296, 0.303, 0.309, 0.316, - & 0.322, 0.329, 0.335, 0.342, 0.349, 0.355, 0.362, 0.369, 0.376, - & 0.382, 0.389, 0.396, 0.403, 0.409, 0.416, 0.423, 0.430, 0.437, - & 0.444, 0.450, 0.457, 0.464, 0.471, 0.478, 0.485, 0.491, 0.498, - & 0.505, 0.512, 0.519, 0.526, 0.533, 0.539, 0.546, 0.553, 0.560, - & 0.567, 0.573, 0.580, 0.587, 0.594, 0.601, 0.607, 0.614, 0.621, - & 0.628, 0.634, 0.641, 0.648, 0.654, 0.661, 0.668, 0.675, 0.681, - & 0.688, 0.694, 0.701, 0.708, 0.714, 0.721, 0.728, 0.734, 0.741, - & 0.747, 0.754, 0.760, 0.767, 0.773, 0.780, 0.786, 0.793, 0.799, - & 0.806, 0.812, 0.819, 0.825, 0.831, 0.838, 0.844, 0.850, 0.857, - & 0.863, 0.870, 0.876, 0.882, 0.888, 0.895, 0.901, 0.907, 0.914, - & 0.920, 0.926, 0.932, 0.938, 0.945, 0.951, 0.957, 0.963, 0.969, - & 0.975, 0.981, 0.988, 0.994, 1.000, 1.006, 1.012, 1.018, 1.024, - & 1.030, 1.036, 1.042, 1.048, 1.054, 1.060, 1.066, 1.072, 1.078, - & 1.084, 1.090, 1.096, 1.101, 1.107, 1.113, 1.119, 1.125, 1.131, - & 1.137, 1.142, 1.148, 1.154, 1.160, 1.165, 1.171, 1.177, 1.183, - & 1.188, 1.194, 1.200, 1.205, 1.211, 1.217, 1.222, 1.228, 1.234, - & 1.239, 1.245, 1.251, 1.256, 1.262, 1.267, 1.273, 1.278, 1.284, - & 1.289, 1.295, 1.300, 1.306, 1.311, 1.317, 1.322, 1.328, 1.333, - & 1.339, 1.344, 1.349, 1.355, 1.360, 1.366, 1.371, 1.376, 1.382, - & 1.387, 1.392, 1.398, 1.403, 1.408, 1.413, 1.419, 1.424, 1.429, - & 1.434, 1.440, 1.445, 1.450, 1.455, 1.460, 1.466, 1.471, 1.476, - & 1.481, 1.486, 1.491, 1.497, 1.502, 1.507, 1.512, 1.517, 1.522, - & 1.527, 1.532, 1.537, 1.542, 1.547, 1.552, 1.557, 1.562, 1.567, - & 1.572, 1.577, 1.582, 1.587, 1.592, 1.597, 1.602, 1.607, 1.612, - & 1.617, 1.622, 1.626, 1.631, 1.636, 1.641, 1.646, 1.651, 1.656, - & 1.660, 1.665, 1.670, 1.675, 1.680, 1.684, 1.689, 1.694, 1.699, - & 1.703, 1.708, 1.713, 1.718, 1.722, 1.727, 1.732, 1.736, 1.741, - & 1.746, 1.750, 1.755, 1.760, 1.764, 1.769, 1.774, 1.778, 1.783, - & 1.787, 1.792, 1.797, 1.801, 1.806, 1.810, 1.815, 1.819, 1.824, - & 1.828, 1.833, 1.838, 1.842, 1.847, 1.851, 1.855, 1.860, 1.864, - & 1.869, 1.873, 1.878, 1.882, 1.887, 1.891, 1.895, 1.900, 1.904, - & 1.909, 1.913, 1.917, 1.922, 1.926, 1.931, 1.935, 1.939, 1.944, - & 1.948, 1.952, 1.957, 1.961, 1.965, 1.969, 1.974, 1.978, 1.982, - & 1.987, 1.991, 1.995, 1.999, 2.045, 2.086, 2.127, 2.167, 2.206, - & 2.245, 2.284, 2.322, 2.359, 2.396, 2.432, 2.468, 2.503, 2.538, - & 2.572, 2.606, 2.639, 2.672, 2.705, 2.737, 2.769, 2.800, 2.831, - & 2.862, 2.892, 2.922, 2.952, 2.981, 3.010, 3.039, 3.067, 3.095, - & 3.123, 3.150, 3.178, 3.204, 3.231, 3.257, 3.283, 3.309, 3.335, - & 3.360, 3.385, 3.410, 3.435, 3.459, 3.483, 3.507, 3.531, 3.554, - & 3.577, 3.600, 3.623, 3.646, 3.668, 3.691, 3.713, 3.735, 3.756, - & 3.778, 3.799, 3.820, 3.841, 3.862, 3.883, 3.903, 3.924, 3.944, - & 3.964, 3.984, 4.003, 4.023, 4.043, 4.062, 4.081, 4.100, 4.119, - & 4.138, 4.156, 4.175, 4.193, 4.211, 4.229, 4.247, 4.265, 4.283, - & 4.300, 4.318, 4.335, 4.352, 4.369, 4.386, 4.403, 4.420, 4.437, - & 4.453, 4.470, 4.486, 4.503, 4.519, 4.535, 4.551, 4.567, 4.582, - & 4.598, 4.614, 4.629, 4.644, 4.660, 4.675, 4.690, 4.705, 4.720, - & 4.735, 4.750, 4.764, 4.779, 4.794, 4.808, 4.822, 4.837, 4.851, - & 4.865, 4.879, 4.893, 4.907, 4.921, 4.935, 4.948, 4.962, 4.975, - & 4.989, 5.002, 5.016, 5.029, 5.042, 5.055, 5.068, 5.081, 5.094, - & 5.107, 5.120, 5.133, 5.145, 5.158, 5.171, 5.183, 5.196, 5.208, - & 5.220, 5.233, 5.245, 5.257, 5.269, 5.281, 5.293, 5.305, 5.317, - & 5.329, 5.340, 5.352 - & /) -! -! *** NaHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC12M_298 = (/ - &-0.045,-0.094,-0.116,-0.130,-0.140,-0.148,-0.155,-0.160,-0.164, - &-0.168,-0.170,-0.173,-0.174,-0.176,-0.177,-0.178,-0.178,-0.179, - &-0.179,-0.178,-0.178,-0.177,-0.177,-0.176,-0.175,-0.174,-0.172, - &-0.171,-0.170,-0.168,-0.166,-0.164,-0.162,-0.160,-0.158,-0.156, - &-0.154,-0.152,-0.149,-0.147,-0.144,-0.142,-0.139,-0.136,-0.134, - &-0.131,-0.128,-0.125,-0.122,-0.119,-0.116,-0.113,-0.110,-0.107, - &-0.103,-0.100,-0.097,-0.094,-0.090,-0.087,-0.084,-0.080,-0.077, - &-0.073,-0.070,-0.066,-0.063,-0.059,-0.055,-0.052,-0.048,-0.044, - &-0.040,-0.037,-0.033,-0.029,-0.025,-0.021,-0.017,-0.013,-0.010, - &-0.006,-0.002, 0.003, 0.007, 0.011, 0.015, 0.019, 0.023, 0.027, - & 0.032, 0.036, 0.040, 0.045, 0.049, 0.053, 0.058, 0.062, 0.066, - & 0.071, 0.075, 0.080, 0.084, 0.089, 0.094, 0.098, 0.103, 0.107, - & 0.112, 0.116, 0.121, 0.126, 0.130, 0.135, 0.140, 0.144, 0.149, - & 0.154, 0.158, 0.163, 0.168, 0.172, 0.177, 0.182, 0.186, 0.191, - & 0.196, 0.200, 0.205, 0.210, 0.215, 0.219, 0.224, 0.229, 0.233, - & 0.238, 0.242, 0.247, 0.252, 0.256, 0.261, 0.266, 0.270, 0.275, - & 0.279, 0.284, 0.289, 0.293, 0.298, 0.302, 0.307, 0.311, 0.316, - & 0.320, 0.325, 0.329, 0.334, 0.338, 0.343, 0.347, 0.352, 0.356, - & 0.361, 0.365, 0.370, 0.374, 0.379, 0.383, 0.387, 0.392, 0.396, - & 0.400, 0.405, 0.409, 0.414, 0.418, 0.422, 0.427, 0.431, 0.435, - & 0.440, 0.444, 0.448, 0.452, 0.457, 0.461, 0.465, 0.469, 0.474, - & 0.478, 0.482, 0.486, 0.490, 0.495, 0.499, 0.503, 0.507, 0.511, - & 0.515, 0.520, 0.524, 0.528, 0.532, 0.536, 0.540, 0.544, 0.548, - & 0.552, 0.556, 0.561, 0.565, 0.569, 0.573, 0.577, 0.581, 0.585, - & 0.589, 0.593, 0.597, 0.601, 0.605, 0.609, 0.613, 0.616, 0.620, - & 0.624, 0.628, 0.632, 0.636, 0.640, 0.644, 0.648, 0.652, 0.655, - & 0.659, 0.663, 0.667, 0.671, 0.675, 0.679, 0.682, 0.686, 0.690, - & 0.694, 0.697, 0.701, 0.705, 0.709, 0.713, 0.716, 0.720, 0.724, - & 0.728, 0.731, 0.735, 0.739, 0.742, 0.746, 0.750, 0.753, 0.757, - & 0.761, 0.764, 0.768, 0.772, 0.775, 0.779, 0.783, 0.786, 0.790, - & 0.793, 0.797, 0.801, 0.804, 0.808, 0.811, 0.815, 0.818, 0.822, - & 0.825, 0.829, 0.833, 0.836, 0.840, 0.843, 0.847, 0.850, 0.854, - & 0.857, 0.861, 0.864, 0.867, 0.871, 0.874, 0.878, 0.881, 0.885, - & 0.888, 0.892, 0.895, 0.898, 0.902, 0.905, 0.909, 0.912, 0.915, - & 0.919, 0.922, 0.925, 0.929, 0.932, 0.935, 0.939, 0.942, 0.945, - & 0.949, 0.952, 0.955, 0.959, 0.962, 0.965, 0.969, 0.972, 0.975, - & 0.978, 0.982, 0.985, 0.988, 0.991, 0.995, 0.998, 1.001, 1.004, - & 1.008, 1.011, 1.014, 1.017, 1.020, 1.024, 1.027, 1.030, 1.033, - & 1.036, 1.039, 1.043, 1.046, 1.049, 1.052, 1.055, 1.058, 1.061, - & 1.065, 1.068, 1.071, 1.074, 1.077, 1.080, 1.083, 1.086, 1.089, - & 1.092, 1.096, 1.099, 1.102, 1.105, 1.108, 1.111, 1.114, 1.117, - & 1.120, 1.123, 1.126, 1.129, 1.132, 1.135, 1.138, 1.141, 1.144, - & 1.147, 1.150, 1.153, 1.156, 1.159, 1.162, 1.165, 1.168, 1.171, - & 1.174, 1.177, 1.180, 1.183, 1.185, 1.188, 1.191, 1.194, 1.197, - & 1.200, 1.203, 1.206, 1.209, 1.240, 1.268, 1.296, 1.323, 1.350, - & 1.377, 1.403, 1.429, 1.454, 1.480, 1.505, 1.529, 1.553, 1.577, - & 1.601, 1.624, 1.647, 1.670, 1.692, 1.715, 1.737, 1.758, 1.780, - & 1.801, 1.822, 1.843, 1.863, 1.883, 1.903, 1.923, 1.943, 1.962, - & 1.981, 2.000, 2.019, 2.038, 2.056, 2.075, 2.093, 2.111, 2.128, - & 2.146, 2.163, 2.181, 2.198, 2.215, 2.231, 2.248, 2.264, 2.281, - & 2.297, 2.313, 2.329, 2.345, 2.360, 2.376, 2.391, 2.406, 2.422, - & 2.437, 2.451, 2.466, 2.481, 2.495, 2.510, 2.524, 2.538, 2.552, - & 2.566, 2.580, 2.594, 2.608, 2.621, 2.635, 2.648, 2.661, 2.674, - & 2.687, 2.700, 2.713, 2.726, 2.739, 2.751, 2.764, 2.776, 2.789, - & 2.801, 2.813, 2.825, 2.838, 2.850, 2.861, 2.873, 2.885, 2.897, - & 2.908, 2.920, 2.931, 2.943, 2.954, 2.965, 2.976, 2.987, 2.998, - & 3.009, 3.020, 3.031, 3.042, 3.053, 3.063, 3.074, 3.084, 3.095, - & 3.105, 3.116, 3.126, 3.136, 3.146, 3.156, 3.166, 3.176, 3.186, - & 3.196, 3.206, 3.216, 3.226, 3.235, 3.245, 3.255, 3.264, 3.274, - & 3.283, 3.292, 3.302, 3.311, 3.320, 3.330, 3.339, 3.348, 3.357, - & 3.366, 3.375, 3.384, 3.393, 3.402, 3.410, 3.419, 3.428, 3.437, - & 3.445, 3.454, 3.462, 3.471, 3.479, 3.488, 3.496, 3.505, 3.513, - & 3.521, 3.529, 3.538 - & /) -! -! *** (NH4)3H(SO4)2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC13M_298 = (/ - &-0.074,-0.160,-0.203,-0.233,-0.256,-0.275,-0.291,-0.306,-0.318, - &-0.329,-0.339,-0.349,-0.357,-0.365,-0.372,-0.379,-0.386,-0.392, - &-0.397,-0.402,-0.407,-0.412,-0.417,-0.421,-0.425,-0.429,-0.433, - &-0.436,-0.439,-0.443,-0.446,-0.448,-0.451,-0.454,-0.456,-0.459, - &-0.461,-0.463,-0.466,-0.468,-0.470,-0.471,-0.473,-0.475,-0.477, - &-0.478,-0.480,-0.481,-0.482,-0.484,-0.485,-0.486,-0.487,-0.488, - &-0.489,-0.490,-0.491,-0.492,-0.493,-0.494,-0.495,-0.496,-0.496, - &-0.497,-0.498,-0.498,-0.499,-0.499,-0.500,-0.500,-0.501,-0.501, - &-0.501,-0.502,-0.502,-0.502,-0.503,-0.503,-0.503,-0.503,-0.503, - &-0.504,-0.504,-0.504,-0.504,-0.504,-0.504,-0.504,-0.504,-0.504, - &-0.504,-0.504,-0.504,-0.504,-0.504,-0.503,-0.503,-0.503,-0.503, - &-0.503,-0.503,-0.502,-0.502,-0.502,-0.502,-0.501,-0.501,-0.501, - &-0.501,-0.500,-0.500,-0.500,-0.499,-0.499,-0.498,-0.498,-0.498, - &-0.497,-0.497,-0.497,-0.496,-0.496,-0.495,-0.495,-0.494,-0.494, - &-0.494,-0.493,-0.493,-0.492,-0.492,-0.491,-0.491,-0.490,-0.490, - &-0.489,-0.489,-0.488,-0.488,-0.487,-0.487,-0.486,-0.486,-0.485, - &-0.485,-0.484,-0.484,-0.483,-0.483,-0.482,-0.482,-0.481,-0.481, - &-0.480,-0.479,-0.479,-0.478,-0.478,-0.477,-0.477,-0.476,-0.476, - &-0.475,-0.475,-0.474,-0.473,-0.473,-0.472,-0.472,-0.471,-0.471, - &-0.470,-0.470,-0.469,-0.468,-0.468,-0.467,-0.467,-0.466,-0.466, - &-0.465,-0.464,-0.464,-0.463,-0.463,-0.462,-0.462,-0.461,-0.461, - &-0.460,-0.459,-0.459,-0.458,-0.458,-0.457,-0.457,-0.456,-0.455, - &-0.455,-0.454,-0.454,-0.453,-0.453,-0.452,-0.451,-0.451,-0.450, - &-0.450,-0.449,-0.449,-0.448,-0.447,-0.447,-0.446,-0.446,-0.445, - &-0.445,-0.444,-0.443,-0.443,-0.442,-0.442,-0.441,-0.441,-0.440, - &-0.440,-0.439,-0.438,-0.438,-0.437,-0.437,-0.436,-0.436,-0.435, - &-0.434,-0.434,-0.433,-0.433,-0.432,-0.432,-0.431,-0.431,-0.430, - &-0.429,-0.429,-0.428,-0.428,-0.427,-0.427,-0.426,-0.426,-0.425, - &-0.424,-0.424,-0.423,-0.423,-0.422,-0.422,-0.421,-0.421,-0.420, - &-0.419,-0.419,-0.418,-0.418,-0.417,-0.417,-0.416,-0.416,-0.415, - &-0.415,-0.414,-0.413,-0.413,-0.412,-0.412,-0.411,-0.411,-0.410, - &-0.410,-0.409,-0.409,-0.408,-0.408,-0.407,-0.406,-0.406,-0.405, - &-0.405,-0.404,-0.404,-0.403,-0.403,-0.402,-0.402,-0.401,-0.401, - &-0.400,-0.399,-0.399,-0.398,-0.398,-0.397,-0.397,-0.396,-0.396, - &-0.395,-0.395,-0.394,-0.394,-0.393,-0.393,-0.392,-0.392,-0.391, - &-0.391,-0.390,-0.390,-0.389,-0.388,-0.388,-0.387,-0.387,-0.386, - &-0.386,-0.385,-0.385,-0.384,-0.384,-0.383,-0.383,-0.382,-0.382, - &-0.381,-0.381,-0.380,-0.380,-0.379,-0.379,-0.378,-0.378,-0.377, - &-0.377,-0.376,-0.376,-0.375,-0.375,-0.374,-0.374,-0.373,-0.373, - &-0.372,-0.372,-0.371,-0.371,-0.370,-0.370,-0.369,-0.369,-0.368, - &-0.368,-0.367,-0.367,-0.366,-0.366,-0.365,-0.365,-0.364,-0.364, - &-0.363,-0.363,-0.362,-0.362,-0.361,-0.361,-0.360,-0.360,-0.359, - &-0.359,-0.358,-0.358,-0.357,-0.357,-0.356,-0.356,-0.355,-0.355, - &-0.354,-0.354,-0.353,-0.353,-0.352,-0.352,-0.352,-0.351,-0.351, - &-0.350,-0.350,-0.349,-0.349,-0.344,-0.339,-0.334,-0.330,-0.325, - &-0.321,-0.316,-0.312,-0.307,-0.303,-0.299,-0.295,-0.290,-0.286, - &-0.282,-0.278,-0.274,-0.270,-0.266,-0.262,-0.258,-0.255,-0.251, - &-0.247,-0.243,-0.240,-0.236,-0.232,-0.229,-0.225,-0.222,-0.218, - &-0.215,-0.211,-0.208,-0.204,-0.201,-0.198,-0.194,-0.191,-0.188, - &-0.185,-0.182,-0.178,-0.175,-0.172,-0.169,-0.166,-0.163,-0.160, - &-0.157,-0.154,-0.151,-0.148,-0.145,-0.142,-0.139,-0.137,-0.134, - &-0.131,-0.128,-0.125,-0.123,-0.120,-0.117,-0.115,-0.112,-0.109, - &-0.107,-0.104,-0.101,-0.099,-0.096,-0.094,-0.091,-0.089,-0.086, - &-0.084,-0.081,-0.079,-0.076,-0.074,-0.071,-0.069,-0.067,-0.064, - &-0.062,-0.060,-0.057,-0.055,-0.053,-0.050,-0.048,-0.046,-0.043, - &-0.041,-0.039,-0.037,-0.035,-0.032,-0.030,-0.028,-0.026,-0.024, - &-0.022,-0.020,-0.017,-0.015,-0.013,-0.011,-0.009,-0.007,-0.005, - &-0.003,-0.001, 0.001, 0.003, 0.005, 0.007, 0.009, 0.011, 0.013, - & 0.015, 0.017, 0.019, 0.021, 0.022, 0.024, 0.026, 0.028, 0.030, - & 0.032, 0.034, 0.036, 0.037, 0.039, 0.041, 0.043, 0.045, 0.046, - & 0.048, 0.050, 0.052, 0.053, 0.055, 0.057, 0.059, 0.060, 0.062, - & 0.064, 0.066, 0.067, 0.069, 0.071, 0.072, 0.074, 0.076, 0.077, - & 0.079, 0.081, 0.082 - & /) -! -! *** CASO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC14M_298 = (/ - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000 - & /) -! -! *** CANO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC15M_298 = (/ - &-0.092,-0.196,-0.245,-0.279,-0.304,-0.325,-0.342,-0.356,-0.368, - &-0.379,-0.389,-0.397,-0.405,-0.412,-0.418,-0.424,-0.429,-0.433, - &-0.438,-0.442,-0.445,-0.448,-0.452,-0.454,-0.457,-0.459,-0.462, - &-0.464,-0.466,-0.467,-0.469,-0.470,-0.472,-0.473,-0.474,-0.475, - &-0.476,-0.477,-0.478,-0.479,-0.480,-0.480,-0.481,-0.482,-0.482, - &-0.483,-0.483,-0.483,-0.484,-0.484,-0.484,-0.484,-0.485,-0.485, - &-0.485,-0.485,-0.485,-0.485,-0.485,-0.485,-0.485,-0.485,-0.485, - &-0.485,-0.485,-0.484,-0.484,-0.484,-0.484,-0.484,-0.483,-0.483, - &-0.483,-0.482,-0.482,-0.482,-0.481,-0.481,-0.480,-0.480,-0.479, - &-0.479,-0.478,-0.478,-0.477,-0.477,-0.476,-0.475,-0.475,-0.474, - &-0.474,-0.473,-0.472,-0.471,-0.471,-0.470,-0.469,-0.468,-0.467, - &-0.467,-0.466,-0.465,-0.464,-0.463,-0.462,-0.461,-0.460,-0.459, - &-0.459,-0.458,-0.457,-0.456,-0.455,-0.454,-0.453,-0.452,-0.451, - &-0.450,-0.448,-0.447,-0.446,-0.445,-0.444,-0.443,-0.442,-0.441, - &-0.440,-0.439,-0.438,-0.437,-0.436,-0.434,-0.433,-0.432,-0.431, - &-0.430,-0.429,-0.428,-0.427,-0.425,-0.424,-0.423,-0.422,-0.421, - &-0.420,-0.419,-0.417,-0.416,-0.415,-0.414,-0.413,-0.412,-0.411, - &-0.409,-0.408,-0.407,-0.406,-0.405,-0.404,-0.402,-0.401,-0.400, - &-0.399,-0.398,-0.397,-0.395,-0.394,-0.393,-0.392,-0.391,-0.390, - &-0.388,-0.387,-0.386,-0.385,-0.384,-0.383,-0.381,-0.380,-0.379, - &-0.378,-0.377,-0.376,-0.374,-0.373,-0.372,-0.371,-0.370,-0.369, - &-0.367,-0.366,-0.365,-0.364,-0.363,-0.361,-0.360,-0.359,-0.358, - &-0.357,-0.356,-0.354,-0.353,-0.352,-0.351,-0.350,-0.349,-0.347, - &-0.346,-0.345,-0.344,-0.343,-0.342,-0.341,-0.339,-0.338,-0.337, - &-0.336,-0.335,-0.334,-0.332,-0.331,-0.330,-0.329,-0.328,-0.327, - &-0.325,-0.324,-0.323,-0.322,-0.321,-0.320,-0.319,-0.317,-0.316, - &-0.315,-0.314,-0.313,-0.312,-0.311,-0.309,-0.308,-0.307,-0.306, - &-0.305,-0.304,-0.303,-0.301,-0.300,-0.299,-0.298,-0.297,-0.296, - &-0.295,-0.294,-0.292,-0.291,-0.290,-0.289,-0.288,-0.287,-0.286, - &-0.285,-0.283,-0.282,-0.281,-0.280,-0.279,-0.278,-0.277,-0.276, - &-0.275,-0.273,-0.272,-0.271,-0.270,-0.269,-0.268,-0.267,-0.266, - &-0.265,-0.263,-0.262,-0.261,-0.260,-0.259,-0.258,-0.257,-0.256, - &-0.255,-0.254,-0.253,-0.251,-0.250,-0.249,-0.248,-0.247,-0.246, - &-0.245,-0.244,-0.243,-0.242,-0.241,-0.240,-0.238,-0.237,-0.236, - &-0.235,-0.234,-0.233,-0.232,-0.231,-0.230,-0.229,-0.228,-0.227, - &-0.226,-0.225,-0.224,-0.222,-0.221,-0.220,-0.219,-0.218,-0.217, - &-0.216,-0.215,-0.214,-0.213,-0.212,-0.211,-0.210,-0.209,-0.208, - &-0.207,-0.206,-0.205,-0.204,-0.203,-0.202,-0.201,-0.200,-0.198, - &-0.197,-0.196,-0.195,-0.194,-0.193,-0.192,-0.191,-0.190,-0.189, - &-0.188,-0.187,-0.186,-0.185,-0.184,-0.183,-0.182,-0.181,-0.180, - &-0.179,-0.178,-0.177,-0.176,-0.175,-0.174,-0.173,-0.172,-0.171, - &-0.170,-0.169,-0.168,-0.167,-0.166,-0.165,-0.164,-0.163,-0.162, - &-0.161,-0.160,-0.159,-0.158,-0.157,-0.156,-0.155,-0.154,-0.153, - &-0.152,-0.151,-0.150,-0.149,-0.148,-0.147,-0.146,-0.145,-0.144, - &-0.143,-0.142,-0.141,-0.140,-0.130,-0.121,-0.111,-0.102,-0.093, - &-0.083,-0.074,-0.066,-0.057,-0.048,-0.039,-0.031,-0.022,-0.014, - &-0.006, 0.003, 0.011, 0.019, 0.027, 0.035, 0.043, 0.050, 0.058, - & 0.066, 0.073, 0.081, 0.088, 0.095, 0.103, 0.110, 0.117, 0.124, - & 0.131, 0.138, 0.145, 0.152, 0.159, 0.165, 0.172, 0.179, 0.185, - & 0.192, 0.198, 0.205, 0.211, 0.217, 0.223, 0.230, 0.236, 0.242, - & 0.248, 0.254, 0.260, 0.266, 0.272, 0.278, 0.283, 0.289, 0.295, - & 0.301, 0.306, 0.312, 0.317, 0.323, 0.328, 0.334, 0.339, 0.345, - & 0.350, 0.355, 0.360, 0.366, 0.371, 0.376, 0.381, 0.386, 0.391, - & 0.396, 0.401, 0.406, 0.411, 0.416, 0.421, 0.426, 0.431, 0.435, - & 0.440, 0.445, 0.449, 0.454, 0.459, 0.463, 0.468, 0.472, 0.477, - & 0.482, 0.486, 0.490, 0.495, 0.499, 0.504, 0.508, 0.512, 0.517, - & 0.521, 0.525, 0.529, 0.534, 0.538, 0.542, 0.546, 0.550, 0.554, - & 0.559, 0.563, 0.567, 0.571, 0.575, 0.579, 0.583, 0.587, 0.590, - & 0.594, 0.598, 0.602, 0.606, 0.610, 0.614, 0.617, 0.621, 0.625, - & 0.629, 0.632, 0.636, 0.640, 0.643, 0.647, 0.651, 0.654, 0.658, - & 0.661, 0.665, 0.669, 0.672, 0.676, 0.679, 0.683, 0.686, 0.690, - & 0.693, 0.696, 0.700, 0.703, 0.707, 0.710, 0.713, 0.717, 0.720, - & 0.723, 0.727, 0.730 - & /) -! -! *** CACL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC16M_298 = (/ - &-0.091,-0.188,-0.233,-0.261,-0.282,-0.298,-0.310,-0.320,-0.328, - &-0.335,-0.340,-0.345,-0.348,-0.351,-0.353,-0.355,-0.356,-0.356, - &-0.357,-0.357,-0.356,-0.356,-0.355,-0.354,-0.353,-0.351,-0.350, - &-0.348,-0.346,-0.344,-0.342,-0.340,-0.337,-0.335,-0.333,-0.330, - &-0.327,-0.325,-0.322,-0.319,-0.316,-0.314,-0.311,-0.308,-0.305, - &-0.302,-0.299,-0.296,-0.293,-0.290,-0.287,-0.283,-0.280,-0.277, - &-0.274,-0.271,-0.268,-0.264,-0.261,-0.258,-0.255,-0.252,-0.248, - &-0.245,-0.242,-0.238,-0.235,-0.232,-0.228,-0.225,-0.222,-0.218, - &-0.215,-0.211,-0.208,-0.204,-0.201,-0.197,-0.194,-0.190,-0.187, - &-0.183,-0.179,-0.176,-0.172,-0.168,-0.164,-0.161,-0.157,-0.153, - &-0.149,-0.145,-0.141,-0.137,-0.133,-0.129,-0.125,-0.121,-0.117, - &-0.113,-0.109,-0.105,-0.101,-0.096,-0.092,-0.088,-0.084,-0.080, - &-0.075,-0.071,-0.067,-0.062,-0.058,-0.054,-0.049,-0.045,-0.041, - &-0.036,-0.032,-0.027,-0.023,-0.019,-0.014,-0.010,-0.005,-0.001, - & 0.003, 0.008, 0.012, 0.017, 0.021, 0.026, 0.030, 0.034, 0.039, - & 0.043, 0.048, 0.052, 0.057, 0.061, 0.065, 0.070, 0.074, 0.079, - & 0.083, 0.087, 0.092, 0.096, 0.101, 0.105, 0.109, 0.114, 0.118, - & 0.123, 0.127, 0.131, 0.136, 0.140, 0.144, 0.149, 0.153, 0.157, - & 0.162, 0.166, 0.170, 0.175, 0.179, 0.183, 0.188, 0.192, 0.196, - & 0.201, 0.205, 0.209, 0.214, 0.218, 0.222, 0.226, 0.231, 0.235, - & 0.239, 0.243, 0.248, 0.252, 0.256, 0.260, 0.265, 0.269, 0.273, - & 0.277, 0.281, 0.286, 0.290, 0.294, 0.298, 0.302, 0.306, 0.311, - & 0.315, 0.319, 0.323, 0.327, 0.331, 0.336, 0.340, 0.344, 0.348, - & 0.352, 0.356, 0.360, 0.364, 0.368, 0.372, 0.377, 0.381, 0.385, - & 0.389, 0.393, 0.397, 0.401, 0.405, 0.409, 0.413, 0.417, 0.421, - & 0.425, 0.429, 0.433, 0.437, 0.441, 0.445, 0.449, 0.453, 0.457, - & 0.461, 0.465, 0.469, 0.473, 0.477, 0.481, 0.485, 0.488, 0.492, - & 0.496, 0.500, 0.504, 0.508, 0.512, 0.516, 0.520, 0.524, 0.527, - & 0.531, 0.535, 0.539, 0.543, 0.547, 0.550, 0.554, 0.558, 0.562, - & 0.566, 0.570, 0.573, 0.577, 0.581, 0.585, 0.588, 0.592, 0.596, - & 0.600, 0.604, 0.607, 0.611, 0.615, 0.618, 0.622, 0.626, 0.630, - & 0.633, 0.637, 0.641, 0.644, 0.648, 0.652, 0.656, 0.659, 0.663, - & 0.667, 0.670, 0.674, 0.677, 0.681, 0.685, 0.688, 0.692, 0.696, - & 0.699, 0.703, 0.706, 0.710, 0.714, 0.717, 0.721, 0.724, 0.728, - & 0.732, 0.735, 0.739, 0.742, 0.746, 0.749, 0.753, 0.756, 0.760, - & 0.763, 0.767, 0.770, 0.774, 0.777, 0.781, 0.784, 0.788, 0.791, - & 0.795, 0.798, 0.802, 0.805, 0.809, 0.812, 0.816, 0.819, 0.823, - & 0.826, 0.829, 0.833, 0.836, 0.840, 0.843, 0.846, 0.850, 0.853, - & 0.857, 0.860, 0.863, 0.867, 0.870, 0.873, 0.877, 0.880, 0.884, - & 0.887, 0.890, 0.894, 0.897, 0.900, 0.904, 0.907, 0.910, 0.913, - & 0.917, 0.920, 0.923, 0.927, 0.930, 0.933, 0.936, 0.940, 0.943, - & 0.946, 0.950, 0.953, 0.956, 0.959, 0.963, 0.966, 0.969, 0.972, - & 0.975, 0.979, 0.982, 0.985, 0.988, 0.991, 0.995, 0.998, 1.001, - & 1.004, 1.007, 1.011, 1.014, 1.017, 1.020, 1.023, 1.026, 1.029, - & 1.033, 1.036, 1.039, 1.042, 1.076, 1.106, 1.136, 1.166, 1.195, - & 1.224, 1.253, 1.281, 1.309, 1.337, 1.364, 1.391, 1.417, 1.444, - & 1.470, 1.495, 1.521, 1.546, 1.570, 1.595, 1.619, 1.643, 1.667, - & 1.690, 1.713, 1.736, 1.759, 1.781, 1.803, 1.825, 1.847, 1.868, - & 1.890, 1.911, 1.932, 1.952, 1.973, 1.993, 2.013, 2.033, 2.053, - & 2.072, 2.092, 2.111, 2.130, 2.149, 2.167, 2.186, 2.204, 2.222, - & 2.240, 2.258, 2.276, 2.293, 2.311, 2.328, 2.345, 2.362, 2.379, - & 2.396, 2.412, 2.429, 2.445, 2.461, 2.478, 2.493, 2.509, 2.525, - & 2.541, 2.556, 2.572, 2.587, 2.602, 2.617, 2.632, 2.647, 2.661, - & 2.676, 2.691, 2.705, 2.719, 2.734, 2.748, 2.762, 2.776, 2.789, - & 2.803, 2.817, 2.830, 2.844, 2.857, 2.871, 2.884, 2.897, 2.910, - & 2.923, 2.936, 2.949, 2.961, 2.974, 2.987, 2.999, 3.012, 3.024, - & 3.036, 3.048, 3.061, 3.073, 3.085, 3.097, 3.108, 3.120, 3.132, - & 3.144, 3.155, 3.167, 3.178, 3.190, 3.201, 3.212, 3.224, 3.235, - & 3.246, 3.257, 3.268, 3.279, 3.290, 3.300, 3.311, 3.322, 3.333, - & 3.343, 3.354, 3.364, 3.375, 3.385, 3.395, 3.406, 3.416, 3.426, - & 3.436, 3.446, 3.456, 3.466, 3.476, 3.486, 3.496, 3.506, 3.515, - & 3.525, 3.535, 3.544, 3.554, 3.563, 3.573, 3.582, 3.592, 3.601, - & 3.610, 3.620, 3.629 - & /) -! -! *** K2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC17M_298 = (/ - &-0.093,-0.203,-0.257,-0.296,-0.326,-0.351,-0.372,-0.391,-0.408, - &-0.423,-0.436,-0.449,-0.460,-0.471,-0.481,-0.491,-0.500,-0.508, - &-0.516,-0.524,-0.531,-0.538,-0.545,-0.552,-0.558,-0.564,-0.569, - &-0.575,-0.580,-0.585,-0.590,-0.595,-0.600,-0.605,-0.609,-0.613, - &-0.618,-0.622,-0.626,-0.629,-0.633,-0.637,-0.641,-0.644,-0.648, - &-0.651,-0.654,-0.658,-0.661,-0.664,-0.667,-0.670,-0.673,-0.676, - &-0.678,-0.681,-0.684,-0.687,-0.689,-0.692,-0.694,-0.697,-0.699, - &-0.702,-0.704,-0.707,-0.709,-0.711,-0.713,-0.716,-0.718,-0.720, - &-0.722,-0.724,-0.726,-0.728,-0.730,-0.732,-0.734,-0.736,-0.738, - &-0.740,-0.742,-0.744,-0.746,-0.748,-0.749,-0.751,-0.753,-0.755, - &-0.756,-0.758,-0.760,-0.762,-0.763,-0.765,-0.767,-0.768,-0.770, - &-0.772,-0.773,-0.775,-0.776,-0.778,-0.779,-0.781,-0.782,-0.784, - &-0.786,-0.787,-0.788,-0.790,-0.791,-0.793,-0.794,-0.796,-0.797, - &-0.799,-0.800,-0.801,-0.803,-0.804,-0.805,-0.807,-0.808,-0.809, - &-0.811,-0.812,-0.813,-0.815,-0.816,-0.817,-0.819,-0.820,-0.821, - &-0.822,-0.824,-0.825,-0.826,-0.827,-0.828,-0.830,-0.831,-0.832, - &-0.833,-0.834,-0.835,-0.837,-0.838,-0.839,-0.840,-0.841,-0.842, - &-0.843,-0.844,-0.846,-0.847,-0.848,-0.849,-0.850,-0.851,-0.852, - &-0.853,-0.854,-0.855,-0.856,-0.857,-0.858,-0.859,-0.860,-0.861, - &-0.862,-0.863,-0.864,-0.865,-0.866,-0.867,-0.868,-0.869,-0.870, - &-0.871,-0.872,-0.873,-0.874,-0.875,-0.876,-0.877,-0.878,-0.878, - &-0.879,-0.880,-0.881,-0.882,-0.883,-0.884,-0.885,-0.886,-0.886, - &-0.887,-0.888,-0.889,-0.890,-0.891,-0.892,-0.893,-0.893,-0.894, - &-0.895,-0.896,-0.897,-0.898,-0.898,-0.899,-0.900,-0.901,-0.902, - &-0.902,-0.903,-0.904,-0.905,-0.906,-0.906,-0.907,-0.908,-0.909, - &-0.910,-0.910,-0.911,-0.912,-0.913,-0.913,-0.914,-0.915,-0.916, - &-0.916,-0.917,-0.918,-0.919,-0.919,-0.920,-0.921,-0.922,-0.922, - &-0.923,-0.924,-0.924,-0.925,-0.926,-0.927,-0.927,-0.928,-0.929, - &-0.929,-0.930,-0.931,-0.931,-0.932,-0.933,-0.933,-0.934,-0.935, - &-0.936,-0.936,-0.937,-0.938,-0.938,-0.939,-0.940,-0.940,-0.941, - &-0.941,-0.942,-0.943,-0.943,-0.944,-0.945,-0.945,-0.946,-0.947, - &-0.947,-0.948,-0.949,-0.949,-0.950,-0.950,-0.951,-0.952,-0.952, - &-0.953,-0.954,-0.954,-0.955,-0.955,-0.956,-0.957,-0.957,-0.958, - &-0.958,-0.959,-0.960,-0.960,-0.961,-0.961,-0.962,-0.962,-0.963, - &-0.964,-0.964,-0.965,-0.965,-0.966,-0.967,-0.967,-0.968,-0.968, - &-0.969,-0.969,-0.970,-0.970,-0.971,-0.972,-0.972,-0.973,-0.973, - &-0.974,-0.974,-0.975,-0.975,-0.976,-0.977,-0.977,-0.978,-0.978, - &-0.979,-0.979,-0.980,-0.980,-0.981,-0.981,-0.982,-0.982,-0.983, - &-0.983,-0.984,-0.984,-0.985,-0.986,-0.986,-0.987,-0.987,-0.988, - &-0.988,-0.989,-0.989,-0.990,-0.990,-0.991,-0.991,-0.992,-0.992, - &-0.993,-0.993,-0.994,-0.994,-0.995,-0.995,-0.996,-0.996,-0.997, - &-0.997,-0.998,-0.998,-0.998,-0.999,-0.999,-1.000,-1.000,-1.001, - &-1.001,-1.002,-1.002,-1.003,-1.003,-1.004,-1.004,-1.005,-1.005, - &-1.006,-1.006,-1.006,-1.007,-1.007,-1.008,-1.008,-1.009,-1.009, - &-1.010,-1.010,-1.011,-1.011,-1.016,-1.020,-1.024,-1.029,-1.033, - &-1.037,-1.040,-1.044,-1.048,-1.052,-1.055,-1.059,-1.062,-1.065, - &-1.069,-1.072,-1.075,-1.078,-1.081,-1.084,-1.087,-1.090,-1.093, - &-1.096,-1.099,-1.102,-1.104,-1.107,-1.110,-1.112,-1.115,-1.117, - &-1.120,-1.122,-1.125,-1.127,-1.129,-1.132,-1.134,-1.136,-1.139, - &-1.141,-1.143,-1.145,-1.147,-1.149,-1.151,-1.153,-1.155,-1.157, - &-1.159,-1.161,-1.163,-1.165,-1.167,-1.169,-1.171,-1.173,-1.174, - &-1.176,-1.178,-1.180,-1.181,-1.183,-1.185,-1.187,-1.188,-1.190, - &-1.191,-1.193,-1.195,-1.196,-1.198,-1.199,-1.201,-1.202,-1.204, - &-1.205,-1.207,-1.208,-1.210,-1.211,-1.213,-1.214,-1.216,-1.217, - &-1.218,-1.220,-1.221,-1.223,-1.224,-1.225,-1.226,-1.228,-1.229, - &-1.230,-1.232,-1.233,-1.234,-1.235,-1.237,-1.238,-1.239,-1.240, - &-1.242,-1.243,-1.244,-1.245,-1.246,-1.247,-1.249,-1.250,-1.251, - &-1.252,-1.253,-1.254,-1.255,-1.256,-1.258,-1.259,-1.260,-1.261, - &-1.262,-1.263,-1.264,-1.265,-1.266,-1.267,-1.268,-1.269,-1.270, - &-1.271,-1.272,-1.273,-1.274,-1.275,-1.276,-1.277,-1.278,-1.279, - &-1.280,-1.281,-1.282,-1.283,-1.283,-1.284,-1.285,-1.286,-1.287, - &-1.288,-1.289,-1.290,-1.291,-1.292,-1.292,-1.293,-1.294,-1.295, - &-1.296,-1.297,-1.298 - & /) -! -! *** KHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC18M_298 = (/ - &-0.046,-0.097,-0.121,-0.138,-0.150,-0.161,-0.169,-0.176,-0.182, - &-0.188,-0.192,-0.196,-0.200,-0.203,-0.206,-0.209,-0.211,-0.213, - &-0.215,-0.217,-0.218,-0.219,-0.220,-0.221,-0.222,-0.223,-0.223, - &-0.223,-0.223,-0.224,-0.223,-0.223,-0.223,-0.223,-0.222,-0.222, - &-0.221,-0.220,-0.220,-0.219,-0.218,-0.217,-0.216,-0.215,-0.213, - &-0.212,-0.211,-0.209,-0.208,-0.206,-0.205,-0.203,-0.202,-0.200, - &-0.198,-0.196,-0.195,-0.193,-0.191,-0.189,-0.187,-0.185,-0.183, - &-0.181,-0.179,-0.177,-0.174,-0.172,-0.170,-0.168,-0.165,-0.163, - &-0.161,-0.158,-0.156,-0.153,-0.151,-0.148,-0.146,-0.143,-0.141, - &-0.138,-0.136,-0.133,-0.130,-0.127,-0.125,-0.122,-0.119,-0.116, - &-0.114,-0.111,-0.108,-0.105,-0.102,-0.099,-0.096,-0.093,-0.090, - &-0.087,-0.084,-0.081,-0.078,-0.075,-0.072,-0.069,-0.066,-0.063, - &-0.060,-0.056,-0.053,-0.050,-0.047,-0.044,-0.041,-0.037,-0.034, - &-0.031,-0.028,-0.025,-0.021,-0.018,-0.015,-0.012,-0.009,-0.005, - &-0.002, 0.001, 0.004, 0.007, 0.011, 0.014, 0.017, 0.020, 0.023, - & 0.027, 0.030, 0.033, 0.036, 0.039, 0.043, 0.046, 0.049, 0.052, - & 0.055, 0.058, 0.061, 0.065, 0.068, 0.071, 0.074, 0.077, 0.080, - & 0.083, 0.086, 0.089, 0.093, 0.096, 0.099, 0.102, 0.105, 0.108, - & 0.111, 0.114, 0.117, 0.120, 0.123, 0.126, 0.129, 0.132, 0.135, - & 0.138, 0.141, 0.144, 0.147, 0.150, 0.153, 0.156, 0.159, 0.162, - & 0.165, 0.168, 0.171, 0.174, 0.176, 0.179, 0.182, 0.185, 0.188, - & 0.191, 0.194, 0.197, 0.199, 0.202, 0.205, 0.208, 0.211, 0.214, - & 0.217, 0.219, 0.222, 0.225, 0.228, 0.231, 0.233, 0.236, 0.239, - & 0.242, 0.244, 0.247, 0.250, 0.253, 0.255, 0.258, 0.261, 0.264, - & 0.266, 0.269, 0.272, 0.274, 0.277, 0.280, 0.282, 0.285, 0.288, - & 0.290, 0.293, 0.296, 0.298, 0.301, 0.304, 0.306, 0.309, 0.312, - & 0.314, 0.317, 0.319, 0.322, 0.325, 0.327, 0.330, 0.332, 0.335, - & 0.337, 0.340, 0.343, 0.345, 0.348, 0.350, 0.353, 0.355, 0.358, - & 0.360, 0.363, 0.365, 0.368, 0.370, 0.373, 0.375, 0.378, 0.380, - & 0.383, 0.385, 0.388, 0.390, 0.393, 0.395, 0.397, 0.400, 0.402, - & 0.405, 0.407, 0.410, 0.412, 0.414, 0.417, 0.419, 0.422, 0.424, - & 0.426, 0.429, 0.431, 0.434, 0.436, 0.438, 0.441, 0.443, 0.445, - & 0.448, 0.450, 0.452, 0.455, 0.457, 0.459, 0.462, 0.464, 0.466, - & 0.469, 0.471, 0.473, 0.475, 0.478, 0.480, 0.482, 0.485, 0.487, - & 0.489, 0.491, 0.494, 0.496, 0.498, 0.500, 0.503, 0.505, 0.507, - & 0.509, 0.512, 0.514, 0.516, 0.518, 0.520, 0.523, 0.525, 0.527, - & 0.529, 0.531, 0.534, 0.536, 0.538, 0.540, 0.542, 0.544, 0.547, - & 0.549, 0.551, 0.553, 0.555, 0.557, 0.560, 0.562, 0.564, 0.566, - & 0.568, 0.570, 0.572, 0.574, 0.577, 0.579, 0.581, 0.583, 0.585, - & 0.587, 0.589, 0.591, 0.593, 0.595, 0.597, 0.600, 0.602, 0.604, - & 0.606, 0.608, 0.610, 0.612, 0.614, 0.616, 0.618, 0.620, 0.622, - & 0.624, 0.626, 0.628, 0.630, 0.632, 0.634, 0.636, 0.638, 0.640, - & 0.642, 0.644, 0.646, 0.648, 0.650, 0.652, 0.654, 0.656, 0.658, - & 0.660, 0.662, 0.664, 0.666, 0.668, 0.670, 0.672, 0.674, 0.676, - & 0.678, 0.680, 0.682, 0.684, 0.704, 0.723, 0.742, 0.760, 0.778, - & 0.796, 0.813, 0.831, 0.848, 0.865, 0.881, 0.898, 0.914, 0.930, - & 0.946, 0.961, 0.977, 0.992, 1.007, 1.022, 1.036, 1.051, 1.065, - & 1.079, 1.093, 1.107, 1.121, 1.134, 1.148, 1.161, 1.174, 1.187, - & 1.200, 1.213, 1.225, 1.238, 1.250, 1.262, 1.275, 1.287, 1.298, - & 1.310, 1.322, 1.333, 1.345, 1.356, 1.367, 1.379, 1.390, 1.401, - & 1.411, 1.422, 1.433, 1.443, 1.454, 1.464, 1.475, 1.485, 1.495, - & 1.505, 1.515, 1.525, 1.535, 1.545, 1.554, 1.564, 1.573, 1.583, - & 1.592, 1.602, 1.611, 1.620, 1.629, 1.638, 1.647, 1.656, 1.665, - & 1.674, 1.682, 1.691, 1.700, 1.708, 1.717, 1.725, 1.734, 1.742, - & 1.750, 1.758, 1.767, 1.775, 1.783, 1.791, 1.799, 1.807, 1.815, - & 1.822, 1.830, 1.838, 1.845, 1.853, 1.861, 1.868, 1.876, 1.883, - & 1.891, 1.898, 1.905, 1.912, 1.920, 1.927, 1.934, 1.941, 1.948, - & 1.955, 1.962, 1.969, 1.976, 1.983, 1.990, 1.997, 2.003, 2.010, - & 2.017, 2.023, 2.030, 2.037, 2.043, 2.050, 2.056, 2.063, 2.069, - & 2.075, 2.082, 2.088, 2.094, 2.101, 2.107, 2.113, 2.119, 2.125, - & 2.131, 2.137, 2.143, 2.149, 2.155, 2.161, 2.167, 2.173, 2.179, - & 2.185, 2.191, 2.197, 2.202, 2.208, 2.214, 2.219, 2.225, 2.231, - & 2.236, 2.242, 2.248 - & /) -! -! *** KNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC19M_298 = (/ - &-0.048,-0.109,-0.141,-0.166,-0.186,-0.204,-0.219,-0.233,-0.246, - &-0.258,-0.270,-0.281,-0.291,-0.301,-0.310,-0.319,-0.328,-0.336, - &-0.344,-0.352,-0.360,-0.367,-0.375,-0.382,-0.389,-0.395,-0.402, - &-0.409,-0.415,-0.421,-0.427,-0.433,-0.439,-0.445,-0.451,-0.456, - &-0.462,-0.467,-0.472,-0.477,-0.483,-0.488,-0.492,-0.497,-0.502, - &-0.507,-0.511,-0.516,-0.521,-0.525,-0.529,-0.534,-0.538,-0.542, - &-0.546,-0.550,-0.554,-0.558,-0.562,-0.566,-0.570,-0.574,-0.578, - &-0.581,-0.585,-0.589,-0.592,-0.596,-0.600,-0.603,-0.607,-0.610, - &-0.613,-0.617,-0.620,-0.624,-0.627,-0.630,-0.634,-0.637,-0.640, - &-0.643,-0.647,-0.650,-0.653,-0.656,-0.660,-0.663,-0.666,-0.669, - &-0.672,-0.675,-0.678,-0.682,-0.685,-0.688,-0.691,-0.694,-0.697, - &-0.700,-0.703,-0.706,-0.709,-0.712,-0.715,-0.718,-0.721,-0.724, - &-0.727,-0.730,-0.733,-0.736,-0.739,-0.741,-0.744,-0.747,-0.750, - &-0.753,-0.756,-0.758,-0.761,-0.764,-0.767,-0.770,-0.772,-0.775, - &-0.778,-0.780,-0.783,-0.786,-0.789,-0.791,-0.794,-0.796,-0.799, - &-0.802,-0.804,-0.807,-0.809,-0.812,-0.814,-0.817,-0.819,-0.822, - &-0.824,-0.827,-0.829,-0.832,-0.834,-0.837,-0.839,-0.841,-0.844, - &-0.846,-0.848,-0.851,-0.853,-0.855,-0.858,-0.860,-0.862,-0.865, - &-0.867,-0.869,-0.871,-0.873,-0.876,-0.878,-0.880,-0.882,-0.884, - &-0.887,-0.889,-0.891,-0.893,-0.895,-0.897,-0.899,-0.901,-0.903, - &-0.905,-0.908,-0.910,-0.912,-0.914,-0.916,-0.918,-0.920,-0.922, - &-0.924,-0.925,-0.927,-0.929,-0.931,-0.933,-0.935,-0.937,-0.939, - &-0.941,-0.943,-0.945,-0.946,-0.948,-0.950,-0.952,-0.954,-0.956, - &-0.957,-0.959,-0.961,-0.963,-0.965,-0.966,-0.968,-0.970,-0.972, - &-0.973,-0.975,-0.977,-0.978,-0.980,-0.982,-0.984,-0.985,-0.987, - &-0.989,-0.990,-0.992,-0.993,-0.995,-0.997,-0.998,-1.000,-1.002, - &-1.003,-1.005,-1.006,-1.008,-1.009,-1.011,-1.013,-1.014,-1.016, - &-1.017,-1.019,-1.020,-1.022,-1.023,-1.025,-1.026,-1.028,-1.029, - &-1.031,-1.032,-1.034,-1.035,-1.036,-1.038,-1.039,-1.041,-1.042, - &-1.044,-1.045,-1.046,-1.048,-1.049,-1.051,-1.052,-1.053,-1.055, - &-1.056,-1.057,-1.059,-1.060,-1.061,-1.063,-1.064,-1.065,-1.067, - &-1.068,-1.069,-1.071,-1.072,-1.073,-1.074,-1.076,-1.077,-1.078, - &-1.079,-1.081,-1.082,-1.083,-1.084,-1.086,-1.087,-1.088,-1.089, - &-1.090,-1.092,-1.093,-1.094,-1.095,-1.096,-1.098,-1.099,-1.100, - &-1.101,-1.102,-1.103,-1.105,-1.106,-1.107,-1.108,-1.109,-1.110, - &-1.111,-1.112,-1.114,-1.115,-1.116,-1.117,-1.118,-1.119,-1.120, - &-1.121,-1.122,-1.123,-1.124,-1.125,-1.127,-1.128,-1.129,-1.130, - &-1.131,-1.132,-1.133,-1.134,-1.135,-1.136,-1.137,-1.138,-1.139, - &-1.140,-1.141,-1.142,-1.143,-1.144,-1.145,-1.146,-1.147,-1.148, - &-1.149,-1.150,-1.151,-1.152,-1.153,-1.153,-1.154,-1.155,-1.156, - &-1.157,-1.158,-1.159,-1.160,-1.161,-1.162,-1.163,-1.164,-1.165, - &-1.165,-1.166,-1.167,-1.168,-1.169,-1.170,-1.171,-1.172,-1.172, - &-1.173,-1.174,-1.175,-1.176,-1.177,-1.178,-1.178,-1.179,-1.180, - &-1.181,-1.182,-1.183,-1.183,-1.184,-1.185,-1.186,-1.187,-1.188, - &-1.188,-1.189,-1.190,-1.191,-1.199,-1.207,-1.214,-1.221,-1.228, - &-1.234,-1.240,-1.246,-1.252,-1.258,-1.263,-1.268,-1.273,-1.278, - &-1.283,-1.287,-1.292,-1.296,-1.300,-1.304,-1.308,-1.312,-1.315, - &-1.319,-1.322,-1.325,-1.329,-1.332,-1.335,-1.338,-1.341,-1.343, - &-1.346,-1.349,-1.351,-1.354,-1.356,-1.358,-1.361,-1.363,-1.365, - &-1.367,-1.369,-1.371,-1.373,-1.375,-1.377,-1.378,-1.380,-1.382, - &-1.383,-1.385,-1.387,-1.388,-1.390,-1.391,-1.393,-1.394,-1.395, - &-1.397,-1.398,-1.399,-1.400,-1.402,-1.403,-1.404,-1.405,-1.406, - &-1.407,-1.408,-1.409,-1.410,-1.411,-1.412,-1.413,-1.414,-1.415, - &-1.416,-1.417,-1.418,-1.419,-1.420,-1.420,-1.421,-1.422,-1.423, - &-1.424,-1.424,-1.425,-1.426,-1.427,-1.427,-1.428,-1.429,-1.429, - &-1.430,-1.430,-1.431,-1.432,-1.432,-1.433,-1.434,-1.434,-1.435, - &-1.435,-1.436,-1.436,-1.437,-1.437,-1.438,-1.438,-1.439,-1.439, - &-1.440,-1.440,-1.441,-1.441,-1.442,-1.442,-1.443,-1.443,-1.443, - &-1.444,-1.444,-1.445,-1.445,-1.445,-1.446,-1.446,-1.447,-1.447, - &-1.447,-1.448,-1.448,-1.448,-1.449,-1.449,-1.449,-1.450,-1.450, - &-1.450,-1.451,-1.451,-1.451,-1.452,-1.452,-1.452,-1.453,-1.453, - &-1.453,-1.454,-1.454,-1.454,-1.454,-1.455,-1.455,-1.455,-1.455, - &-1.456,-1.456,-1.456 - & /) -! -! *** KCL -! - Real(kind=fp), Parameter, Dimension(561) :: BNC20M_298 = (/ - &-0.046,-0.098,-0.123,-0.139,-0.152,-0.162,-0.171,-0.178,-0.184, - &-0.190,-0.195,-0.199,-0.203,-0.206,-0.209,-0.212,-0.215,-0.217, - &-0.219,-0.221,-0.223,-0.225,-0.226,-0.228,-0.229,-0.230,-0.231, - &-0.232,-0.233,-0.234,-0.235,-0.236,-0.236,-0.237,-0.238,-0.238, - &-0.239,-0.239,-0.240,-0.240,-0.240,-0.241,-0.241,-0.241,-0.242, - &-0.242,-0.242,-0.242,-0.243,-0.243,-0.243,-0.243,-0.243,-0.243, - &-0.243,-0.243,-0.243,-0.243,-0.243,-0.243,-0.243,-0.243,-0.243, - &-0.243,-0.243,-0.243,-0.243,-0.243,-0.243,-0.243,-0.243,-0.242, - &-0.242,-0.242,-0.242,-0.242,-0.242,-0.241,-0.241,-0.241,-0.241, - &-0.241,-0.240,-0.240,-0.240,-0.239,-0.239,-0.239,-0.239,-0.238, - &-0.238,-0.238,-0.237,-0.237,-0.237,-0.236,-0.236,-0.235,-0.235, - &-0.235,-0.234,-0.234,-0.233,-0.233,-0.232,-0.232,-0.232,-0.231, - &-0.231,-0.230,-0.230,-0.229,-0.229,-0.228,-0.228,-0.227,-0.227, - &-0.226,-0.226,-0.225,-0.225,-0.224,-0.224,-0.223,-0.223,-0.222, - &-0.222,-0.221,-0.220,-0.220,-0.219,-0.219,-0.218,-0.218,-0.217, - &-0.217,-0.216,-0.216,-0.215,-0.214,-0.214,-0.213,-0.213,-0.212, - &-0.212,-0.211,-0.210,-0.210,-0.209,-0.209,-0.208,-0.208,-0.207, - &-0.207,-0.206,-0.205,-0.205,-0.204,-0.204,-0.203,-0.203,-0.202, - &-0.201,-0.201,-0.200,-0.200,-0.199,-0.199,-0.198,-0.197,-0.197, - &-0.196,-0.196,-0.195,-0.194,-0.194,-0.193,-0.193,-0.192,-0.192, - &-0.191,-0.190,-0.190,-0.189,-0.189,-0.188,-0.188,-0.187,-0.186, - &-0.186,-0.185,-0.185,-0.184,-0.184,-0.183,-0.182,-0.182,-0.181, - &-0.181,-0.180,-0.180,-0.179,-0.178,-0.178,-0.177,-0.177,-0.176, - &-0.176,-0.175,-0.174,-0.174,-0.173,-0.173,-0.172,-0.172,-0.171, - &-0.170,-0.170,-0.169,-0.169,-0.168,-0.168,-0.167,-0.166,-0.166, - &-0.165,-0.165,-0.164,-0.164,-0.163,-0.162,-0.162,-0.161,-0.161, - &-0.160,-0.160,-0.159,-0.158,-0.158,-0.157,-0.157,-0.156,-0.156, - &-0.155,-0.155,-0.154,-0.153,-0.153,-0.152,-0.152,-0.151,-0.151, - &-0.150,-0.150,-0.149,-0.148,-0.148,-0.147,-0.147,-0.146,-0.146, - &-0.145,-0.145,-0.144,-0.143,-0.143,-0.142,-0.142,-0.141,-0.141, - &-0.140,-0.140,-0.139,-0.139,-0.138,-0.137,-0.137,-0.136,-0.136, - &-0.135,-0.135,-0.134,-0.134,-0.133,-0.133,-0.132,-0.131,-0.131, - &-0.130,-0.130,-0.129,-0.129,-0.128,-0.128,-0.127,-0.127,-0.126, - &-0.126,-0.125,-0.125,-0.124,-0.123,-0.123,-0.122,-0.122,-0.121, - &-0.121,-0.120,-0.120,-0.119,-0.119,-0.118,-0.118,-0.117,-0.117, - &-0.116,-0.116,-0.115,-0.115,-0.114,-0.113,-0.113,-0.112,-0.112, - &-0.111,-0.111,-0.110,-0.110,-0.109,-0.109,-0.108,-0.108,-0.107, - &-0.107,-0.106,-0.106,-0.105,-0.105,-0.104,-0.104,-0.103,-0.103, - &-0.102,-0.102,-0.101,-0.101,-0.100,-0.100,-0.099,-0.099,-0.098, - &-0.098,-0.097,-0.097,-0.096,-0.096,-0.095,-0.095,-0.094,-0.094, - &-0.093,-0.093,-0.092,-0.092,-0.091,-0.091,-0.090,-0.090,-0.089, - &-0.089,-0.088,-0.088,-0.087,-0.087,-0.086,-0.086,-0.085,-0.085, - &-0.084,-0.084,-0.083,-0.083,-0.082,-0.082,-0.081,-0.081,-0.080, - &-0.080,-0.079,-0.079,-0.078,-0.078,-0.077,-0.077,-0.077,-0.076, - &-0.076,-0.075,-0.075,-0.074,-0.069,-0.064,-0.060,-0.055,-0.051, - &-0.046,-0.042,-0.037,-0.033,-0.028,-0.024,-0.020,-0.016,-0.012, - &-0.008,-0.004, 0.000, 0.004, 0.008, 0.012, 0.016, 0.020, 0.024, - & 0.028, 0.031, 0.035, 0.039, 0.042, 0.046, 0.049, 0.053, 0.056, - & 0.060, 0.063, 0.067, 0.070, 0.073, 0.077, 0.080, 0.083, 0.087, - & 0.090, 0.093, 0.096, 0.099, 0.102, 0.105, 0.108, 0.111, 0.114, - & 0.117, 0.120, 0.123, 0.126, 0.129, 0.132, 0.135, 0.138, 0.141, - & 0.143, 0.146, 0.149, 0.152, 0.154, 0.157, 0.160, 0.162, 0.165, - & 0.168, 0.170, 0.173, 0.176, 0.178, 0.181, 0.183, 0.186, 0.188, - & 0.191, 0.193, 0.196, 0.198, 0.200, 0.203, 0.205, 0.208, 0.210, - & 0.212, 0.215, 0.217, 0.219, 0.221, 0.224, 0.226, 0.228, 0.231, - & 0.233, 0.235, 0.237, 0.239, 0.242, 0.244, 0.246, 0.248, 0.250, - & 0.252, 0.254, 0.256, 0.258, 0.261, 0.263, 0.265, 0.267, 0.269, - & 0.271, 0.273, 0.275, 0.277, 0.279, 0.281, 0.283, 0.285, 0.286, - & 0.288, 0.290, 0.292, 0.294, 0.296, 0.298, 0.300, 0.302, 0.304, - & 0.305, 0.307, 0.309, 0.311, 0.313, 0.314, 0.316, 0.318, 0.320, - & 0.322, 0.323, 0.325, 0.327, 0.329, 0.330, 0.332, 0.334, 0.335, - & 0.337, 0.339, 0.341, 0.342, 0.344, 0.346, 0.347, 0.349, 0.350, - & 0.352, 0.354, 0.355 - & /) -! -! *** MGSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC21M_298 = (/ - &-0.185,-0.400,-0.506,-0.579,-0.636,-0.683,-0.723,-0.757,-0.787, - &-0.814,-0.839,-0.861,-0.881,-0.900,-0.917,-0.934,-0.949,-0.963, - &-0.977,-0.989,-1.001,-1.013,-1.023,-1.034,-1.044,-1.053,-1.062, - &-1.071,-1.079,-1.087,-1.094,-1.102,-1.109,-1.116,-1.122,-1.129, - &-1.135,-1.141,-1.147,-1.152,-1.158,-1.163,-1.168,-1.173,-1.178, - &-1.183,-1.187,-1.192,-1.196,-1.200,-1.205,-1.209,-1.213,-1.216, - &-1.220,-1.224,-1.228,-1.231,-1.235,-1.238,-1.241,-1.244,-1.248, - &-1.251,-1.254,-1.257,-1.260,-1.263,-1.265,-1.268,-1.271,-1.274, - &-1.276,-1.279,-1.281,-1.284,-1.286,-1.288,-1.291,-1.293,-1.295, - &-1.297,-1.300,-1.302,-1.304,-1.306,-1.308,-1.310,-1.312,-1.314, - &-1.316,-1.317,-1.319,-1.321,-1.323,-1.324,-1.326,-1.328,-1.329, - &-1.331,-1.333,-1.334,-1.336,-1.337,-1.339,-1.340,-1.341,-1.343, - &-1.344,-1.346,-1.347,-1.348,-1.350,-1.351,-1.352,-1.353,-1.355, - &-1.356,-1.357,-1.358,-1.359,-1.360,-1.362,-1.363,-1.364,-1.365, - &-1.366,-1.367,-1.368,-1.369,-1.370,-1.371,-1.372,-1.373,-1.374, - &-1.375,-1.376,-1.377,-1.377,-1.378,-1.379,-1.380,-1.381,-1.382, - &-1.383,-1.383,-1.384,-1.385,-1.386,-1.387,-1.387,-1.388,-1.389, - &-1.390,-1.390,-1.391,-1.392,-1.393,-1.393,-1.394,-1.395,-1.395, - &-1.396,-1.397,-1.397,-1.398,-1.399,-1.399,-1.400,-1.401,-1.401, - &-1.402,-1.402,-1.403,-1.404,-1.404,-1.405,-1.405,-1.406,-1.406, - &-1.407,-1.407,-1.408,-1.408,-1.409,-1.410,-1.410,-1.411,-1.411, - &-1.412,-1.412,-1.412,-1.413,-1.413,-1.414,-1.414,-1.415,-1.415, - &-1.416,-1.416,-1.417,-1.417,-1.417,-1.418,-1.418,-1.419,-1.419, - &-1.420,-1.420,-1.420,-1.421,-1.421,-1.422,-1.422,-1.422,-1.423, - &-1.423,-1.423,-1.424,-1.424,-1.424,-1.425,-1.425,-1.426,-1.426, - &-1.426,-1.427,-1.427,-1.427,-1.428,-1.428,-1.428,-1.428,-1.429, - &-1.429,-1.429,-1.430,-1.430,-1.430,-1.431,-1.431,-1.431,-1.431, - &-1.432,-1.432,-1.432,-1.433,-1.433,-1.433,-1.433,-1.434,-1.434, - &-1.434,-1.434,-1.435,-1.435,-1.435,-1.435,-1.436,-1.436,-1.436, - &-1.436,-1.437,-1.437,-1.437,-1.437,-1.437,-1.438,-1.438,-1.438, - &-1.438,-1.439,-1.439,-1.439,-1.439,-1.439,-1.440,-1.440,-1.440, - &-1.440,-1.440,-1.441,-1.441,-1.441,-1.441,-1.441,-1.441,-1.442, - &-1.442,-1.442,-1.442,-1.442,-1.442,-1.443,-1.443,-1.443,-1.443, - &-1.443,-1.443,-1.444,-1.444,-1.444,-1.444,-1.444,-1.444,-1.445, - &-1.445,-1.445,-1.445,-1.445,-1.445,-1.445,-1.446,-1.446,-1.446, - &-1.446,-1.446,-1.446,-1.446,-1.446,-1.447,-1.447,-1.447,-1.447, - &-1.447,-1.447,-1.447,-1.447,-1.448,-1.448,-1.448,-1.448,-1.448, - &-1.448,-1.448,-1.448,-1.448,-1.449,-1.449,-1.449,-1.449,-1.449, - &-1.449,-1.449,-1.449,-1.449,-1.449,-1.450,-1.450,-1.450,-1.450, - &-1.450,-1.450,-1.450,-1.450,-1.450,-1.450,-1.450,-1.451,-1.451, - &-1.451,-1.451,-1.451,-1.451,-1.451,-1.451,-1.451,-1.451,-1.451, - &-1.451,-1.451,-1.451,-1.452,-1.452,-1.452,-1.452,-1.452,-1.452, - &-1.452,-1.452,-1.452,-1.452,-1.452,-1.452,-1.452,-1.452,-1.452, - &-1.453,-1.453,-1.453,-1.453,-1.453,-1.453,-1.453,-1.453,-1.453, - &-1.453,-1.453,-1.453,-1.453,-1.454,-1.454,-1.454,-1.455,-1.455, - &-1.455,-1.455,-1.455,-1.455,-1.455,-1.455,-1.455,-1.455,-1.455, - &-1.454,-1.454,-1.454,-1.454,-1.453,-1.453,-1.453,-1.452,-1.452, - &-1.452,-1.451,-1.451,-1.450,-1.450,-1.450,-1.449,-1.449,-1.448, - &-1.448,-1.447,-1.447,-1.446,-1.446,-1.445,-1.445,-1.444,-1.444, - &-1.443,-1.442,-1.442,-1.441,-1.441,-1.440,-1.440,-1.439,-1.438, - &-1.438,-1.437,-1.437,-1.436,-1.436,-1.435,-1.434,-1.434,-1.433, - &-1.433,-1.432,-1.431,-1.431,-1.430,-1.430,-1.429,-1.428,-1.428, - &-1.427,-1.426,-1.426,-1.425,-1.425,-1.424,-1.423,-1.423,-1.422, - &-1.422,-1.421,-1.420,-1.420,-1.419,-1.418,-1.418,-1.417,-1.417, - &-1.416,-1.415,-1.415,-1.414,-1.414,-1.413,-1.412,-1.412,-1.411, - &-1.411,-1.410,-1.409,-1.409,-1.408,-1.408,-1.407,-1.406,-1.406, - &-1.405,-1.405,-1.404,-1.403,-1.403,-1.402,-1.402,-1.401,-1.400, - &-1.400,-1.399,-1.399,-1.398,-1.398,-1.397,-1.396,-1.396,-1.395, - &-1.395,-1.394,-1.394,-1.393,-1.392,-1.392,-1.391,-1.391,-1.390, - &-1.390,-1.389,-1.388,-1.388,-1.387,-1.387,-1.386,-1.386,-1.385, - &-1.385,-1.384,-1.383,-1.383,-1.382,-1.382,-1.381,-1.381,-1.380, - &-1.380,-1.379,-1.378,-1.378,-1.377,-1.377,-1.376,-1.376,-1.375, - &-1.375,-1.374,-1.374 - & /) -! -! *** MGNO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC22M_298 = (/ - &-0.091,-0.189,-0.233,-0.262,-0.283,-0.299,-0.312,-0.322,-0.330, - &-0.337,-0.343,-0.347,-0.351,-0.354,-0.356,-0.358,-0.359,-0.360, - &-0.361,-0.361,-0.361,-0.360,-0.360,-0.359,-0.358,-0.356,-0.355, - &-0.354,-0.352,-0.350,-0.348,-0.346,-0.344,-0.342,-0.340,-0.337, - &-0.335,-0.332,-0.330,-0.327,-0.325,-0.322,-0.319,-0.316,-0.314, - &-0.311,-0.308,-0.305,-0.302,-0.299,-0.297,-0.294,-0.291,-0.288, - &-0.285,-0.282,-0.279,-0.276,-0.273,-0.270,-0.267,-0.263,-0.260, - &-0.257,-0.254,-0.251,-0.248,-0.245,-0.242,-0.238,-0.235,-0.232, - &-0.229,-0.225,-0.222,-0.219,-0.215,-0.212,-0.209,-0.205,-0.202, - &-0.198,-0.195,-0.191,-0.188,-0.184,-0.181,-0.177,-0.173,-0.170, - &-0.166,-0.162,-0.159,-0.155,-0.151,-0.147,-0.143,-0.140,-0.136, - &-0.132,-0.128,-0.124,-0.120,-0.116,-0.112,-0.108,-0.104,-0.100, - &-0.096,-0.091,-0.087,-0.083,-0.079,-0.075,-0.071,-0.067,-0.062, - &-0.058,-0.054,-0.050,-0.046,-0.041,-0.037,-0.033,-0.029,-0.024, - &-0.020,-0.016,-0.012,-0.008,-0.003, 0.001, 0.005, 0.009, 0.014, - & 0.018, 0.022, 0.026, 0.031, 0.035, 0.039, 0.043, 0.047, 0.052, - & 0.056, 0.060, 0.064, 0.069, 0.073, 0.077, 0.081, 0.085, 0.090, - & 0.094, 0.098, 0.102, 0.106, 0.110, 0.115, 0.119, 0.123, 0.127, - & 0.131, 0.135, 0.140, 0.144, 0.148, 0.152, 0.156, 0.160, 0.164, - & 0.169, 0.173, 0.177, 0.181, 0.185, 0.189, 0.193, 0.197, 0.201, - & 0.205, 0.209, 0.214, 0.218, 0.222, 0.226, 0.230, 0.234, 0.238, - & 0.242, 0.246, 0.250, 0.254, 0.258, 0.262, 0.266, 0.270, 0.274, - & 0.278, 0.282, 0.286, 0.290, 0.294, 0.298, 0.302, 0.306, 0.310, - & 0.314, 0.318, 0.321, 0.325, 0.329, 0.333, 0.337, 0.341, 0.345, - & 0.349, 0.353, 0.357, 0.361, 0.364, 0.368, 0.372, 0.376, 0.380, - & 0.384, 0.388, 0.391, 0.395, 0.399, 0.403, 0.407, 0.410, 0.414, - & 0.418, 0.422, 0.426, 0.429, 0.433, 0.437, 0.441, 0.445, 0.448, - & 0.452, 0.456, 0.459, 0.463, 0.467, 0.471, 0.474, 0.478, 0.482, - & 0.486, 0.489, 0.493, 0.497, 0.500, 0.504, 0.508, 0.511, 0.515, - & 0.519, 0.522, 0.526, 0.530, 0.533, 0.537, 0.540, 0.544, 0.548, - & 0.551, 0.555, 0.559, 0.562, 0.566, 0.569, 0.573, 0.576, 0.580, - & 0.584, 0.587, 0.591, 0.594, 0.598, 0.601, 0.605, 0.608, 0.612, - & 0.615, 0.619, 0.622, 0.626, 0.629, 0.633, 0.636, 0.640, 0.643, - & 0.647, 0.650, 0.654, 0.657, 0.661, 0.664, 0.668, 0.671, 0.674, - & 0.678, 0.681, 0.685, 0.688, 0.691, 0.695, 0.698, 0.702, 0.705, - & 0.708, 0.712, 0.715, 0.719, 0.722, 0.725, 0.729, 0.732, 0.735, - & 0.739, 0.742, 0.745, 0.749, 0.752, 0.755, 0.759, 0.762, 0.765, - & 0.768, 0.772, 0.775, 0.778, 0.782, 0.785, 0.788, 0.791, 0.795, - & 0.798, 0.801, 0.804, 0.808, 0.811, 0.814, 0.817, 0.821, 0.824, - & 0.827, 0.830, 0.833, 0.837, 0.840, 0.843, 0.846, 0.849, 0.853, - & 0.856, 0.859, 0.862, 0.865, 0.868, 0.872, 0.875, 0.878, 0.881, - & 0.884, 0.887, 0.890, 0.893, 0.897, 0.900, 0.903, 0.906, 0.909, - & 0.912, 0.915, 0.918, 0.921, 0.924, 0.928, 0.931, 0.934, 0.937, - & 0.940, 0.943, 0.946, 0.949, 0.952, 0.955, 0.958, 0.961, 0.964, - & 0.967, 0.970, 0.973, 0.976, 1.008, 1.038, 1.067, 1.095, 1.124, - & 1.152, 1.179, 1.206, 1.233, 1.260, 1.286, 1.312, 1.337, 1.363, - & 1.387, 1.412, 1.437, 1.461, 1.484, 1.508, 1.531, 1.554, 1.577, - & 1.600, 1.622, 1.644, 1.666, 1.687, 1.709, 1.730, 1.751, 1.772, - & 1.792, 1.812, 1.832, 1.852, 1.872, 1.892, 1.911, 1.930, 1.949, - & 1.968, 1.987, 2.005, 2.023, 2.042, 2.060, 2.077, 2.095, 2.113, - & 2.130, 2.147, 2.164, 2.181, 2.198, 2.215, 2.231, 2.248, 2.264, - & 2.280, 2.296, 2.312, 2.328, 2.343, 2.359, 2.374, 2.389, 2.405, - & 2.420, 2.435, 2.449, 2.464, 2.479, 2.493, 2.508, 2.522, 2.536, - & 2.550, 2.564, 2.578, 2.592, 2.606, 2.619, 2.633, 2.646, 2.660, - & 2.673, 2.686, 2.699, 2.712, 2.725, 2.738, 2.751, 2.763, 2.776, - & 2.788, 2.801, 2.813, 2.826, 2.838, 2.850, 2.862, 2.874, 2.886, - & 2.898, 2.910, 2.921, 2.933, 2.945, 2.956, 2.967, 2.979, 2.990, - & 3.001, 3.013, 3.024, 3.035, 3.046, 3.057, 3.068, 3.079, 3.089, - & 3.100, 3.111, 3.121, 3.132, 3.142, 3.153, 3.163, 3.173, 3.184, - & 3.194, 3.204, 3.214, 3.224, 3.234, 3.244, 3.254, 3.264, 3.274, - & 3.284, 3.293, 3.303, 3.313, 3.322, 3.332, 3.341, 3.351, 3.360, - & 3.370, 3.379, 3.388, 3.397, 3.407, 3.416, 3.425, 3.434, 3.443, - & 3.452, 3.461, 3.470 - & /) -! -! *** MGCL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC23M_298 = (/ - &-0.090,-0.186,-0.229,-0.256,-0.276,-0.290,-0.302,-0.310,-0.317, - &-0.322,-0.327,-0.330,-0.332,-0.333,-0.334,-0.335,-0.335,-0.334, - &-0.333,-0.332,-0.331,-0.329,-0.327,-0.325,-0.322,-0.320,-0.317, - &-0.314,-0.311,-0.308,-0.305,-0.301,-0.298,-0.294,-0.291,-0.287, - &-0.283,-0.279,-0.275,-0.272,-0.268,-0.264,-0.260,-0.255,-0.251, - &-0.247,-0.243,-0.239,-0.235,-0.231,-0.226,-0.222,-0.218,-0.214, - &-0.209,-0.205,-0.201,-0.196,-0.192,-0.188,-0.184,-0.179,-0.175, - &-0.170,-0.166,-0.162,-0.157,-0.153,-0.148,-0.144,-0.139,-0.135, - &-0.130,-0.126,-0.121,-0.117,-0.112,-0.107,-0.103,-0.098,-0.093, - &-0.089,-0.084,-0.079,-0.074,-0.069,-0.065,-0.060,-0.055,-0.050, - &-0.045,-0.040,-0.034,-0.029,-0.024,-0.019,-0.014,-0.009,-0.003, - & 0.002, 0.007, 0.013, 0.018, 0.023, 0.029, 0.034, 0.040, 0.045, - & 0.050, 0.056, 0.061, 0.067, 0.073, 0.078, 0.084, 0.089, 0.095, - & 0.100, 0.106, 0.112, 0.117, 0.123, 0.128, 0.134, 0.140, 0.145, - & 0.151, 0.157, 0.162, 0.168, 0.174, 0.179, 0.185, 0.190, 0.196, - & 0.202, 0.207, 0.213, 0.219, 0.224, 0.230, 0.235, 0.241, 0.247, - & 0.252, 0.258, 0.263, 0.269, 0.275, 0.280, 0.286, 0.291, 0.297, - & 0.302, 0.308, 0.313, 0.319, 0.325, 0.330, 0.336, 0.341, 0.347, - & 0.352, 0.358, 0.363, 0.369, 0.374, 0.380, 0.385, 0.390, 0.396, - & 0.401, 0.407, 0.412, 0.418, 0.423, 0.428, 0.434, 0.439, 0.445, - & 0.450, 0.455, 0.461, 0.466, 0.471, 0.477, 0.482, 0.487, 0.493, - & 0.498, 0.503, 0.509, 0.514, 0.519, 0.525, 0.530, 0.535, 0.540, - & 0.546, 0.551, 0.556, 0.561, 0.567, 0.572, 0.577, 0.582, 0.587, - & 0.593, 0.598, 0.603, 0.608, 0.613, 0.618, 0.624, 0.629, 0.634, - & 0.639, 0.644, 0.649, 0.654, 0.659, 0.664, 0.669, 0.675, 0.680, - & 0.685, 0.690, 0.695, 0.700, 0.705, 0.710, 0.715, 0.720, 0.725, - & 0.730, 0.735, 0.740, 0.745, 0.750, 0.755, 0.759, 0.764, 0.769, - & 0.774, 0.779, 0.784, 0.789, 0.794, 0.799, 0.804, 0.808, 0.813, - & 0.818, 0.823, 0.828, 0.833, 0.837, 0.842, 0.847, 0.852, 0.857, - & 0.861, 0.866, 0.871, 0.876, 0.880, 0.885, 0.890, 0.895, 0.899, - & 0.904, 0.909, 0.914, 0.918, 0.923, 0.928, 0.932, 0.937, 0.942, - & 0.946, 0.951, 0.955, 0.960, 0.965, 0.969, 0.974, 0.979, 0.983, - & 0.988, 0.992, 0.997, 1.001, 1.006, 1.011, 1.015, 1.020, 1.024, - & 1.029, 1.033, 1.038, 1.042, 1.047, 1.051, 1.056, 1.060, 1.065, - & 1.069, 1.073, 1.078, 1.082, 1.087, 1.091, 1.096, 1.100, 1.104, - & 1.109, 1.113, 1.118, 1.122, 1.126, 1.131, 1.135, 1.139, 1.144, - & 1.148, 1.152, 1.157, 1.161, 1.165, 1.170, 1.174, 1.178, 1.183, - & 1.187, 1.191, 1.195, 1.200, 1.204, 1.208, 1.212, 1.217, 1.221, - & 1.225, 1.229, 1.234, 1.238, 1.242, 1.246, 1.250, 1.255, 1.259, - & 1.263, 1.267, 1.271, 1.275, 1.279, 1.284, 1.288, 1.292, 1.296, - & 1.300, 1.304, 1.308, 1.312, 1.316, 1.321, 1.325, 1.329, 1.333, - & 1.337, 1.341, 1.345, 1.349, 1.353, 1.357, 1.361, 1.365, 1.369, - & 1.373, 1.377, 1.381, 1.385, 1.389, 1.393, 1.397, 1.401, 1.405, - & 1.409, 1.413, 1.417, 1.421, 1.425, 1.428, 1.432, 1.436, 1.440, - & 1.444, 1.448, 1.452, 1.456, 1.497, 1.535, 1.573, 1.610, 1.646, - & 1.682, 1.717, 1.752, 1.787, 1.821, 1.854, 1.888, 1.920, 1.953, - & 1.985, 2.016, 2.048, 2.078, 2.109, 2.139, 2.169, 2.198, 2.227, - & 2.256, 2.285, 2.313, 2.341, 2.368, 2.395, 2.422, 2.449, 2.475, - & 2.501, 2.527, 2.553, 2.578, 2.603, 2.628, 2.653, 2.677, 2.701, - & 2.725, 2.749, 2.772, 2.796, 2.819, 2.841, 2.864, 2.887, 2.909, - & 2.931, 2.953, 2.974, 2.996, 3.017, 3.038, 3.059, 3.080, 3.100, - & 3.121, 3.141, 3.161, 3.181, 3.201, 3.221, 3.240, 3.259, 3.279, - & 3.298, 3.317, 3.335, 3.354, 3.372, 3.391, 3.409, 3.427, 3.445, - & 3.463, 3.480, 3.498, 3.516, 3.533, 3.550, 3.567, 3.584, 3.601, - & 3.618, 3.634, 3.651, 3.667, 3.684, 3.700, 3.716, 3.732, 3.748, - & 3.764, 3.779, 3.795, 3.810, 3.826, 3.841, 3.856, 3.872, 3.887, - & 3.902, 3.916, 3.931, 3.946, 3.961, 3.975, 3.989, 4.004, 4.018, - & 4.032, 4.046, 4.060, 4.074, 4.088, 4.102, 4.116, 4.129, 4.143, - & 4.157, 4.170, 4.183, 4.197, 4.210, 4.223, 4.236, 4.249, 4.262, - & 4.275, 4.288, 4.300, 4.313, 4.326, 4.338, 4.351, 4.363, 4.376, - & 4.388, 4.400, 4.412, 4.424, 4.436, 4.449, 4.460, 4.472, 4.484, - & 4.496, 4.508, 4.519, 4.531, 4.543, 4.554, 4.566, 4.577, 4.588, - & 4.600, 4.611, 4.622 - & /) - - - - ! Formerly BLOCK DATA KMCF323 -! -! *** NaCl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC01M_323 = (/ - &-0.044,-0.092,-0.114,-0.129,-0.139,-0.147,-0.154,-0.159,-0.163, - &-0.167,-0.170,-0.172,-0.174,-0.176,-0.177,-0.178,-0.179,-0.180, - &-0.180,-0.181,-0.181,-0.181,-0.181,-0.180,-0.180,-0.180,-0.179, - &-0.179,-0.178,-0.177,-0.177,-0.176,-0.175,-0.174,-0.173,-0.172, - &-0.171,-0.170,-0.169,-0.168,-0.167,-0.166,-0.165,-0.163,-0.162, - &-0.161,-0.160,-0.159,-0.157,-0.156,-0.155,-0.153,-0.152,-0.151, - &-0.150,-0.148,-0.147,-0.146,-0.144,-0.143,-0.142,-0.140,-0.139, - &-0.137,-0.136,-0.135,-0.133,-0.132,-0.130,-0.129,-0.127,-0.126, - &-0.125,-0.123,-0.122,-0.120,-0.119,-0.117,-0.116,-0.114,-0.113, - &-0.111,-0.109,-0.108,-0.106,-0.105,-0.103,-0.101,-0.100,-0.098, - &-0.096,-0.095,-0.093,-0.091,-0.090,-0.088,-0.086,-0.084,-0.083, - &-0.081,-0.079,-0.077,-0.076,-0.074,-0.072,-0.070,-0.068,-0.066, - &-0.065,-0.063,-0.061,-0.059,-0.057,-0.055,-0.053,-0.052,-0.050, - &-0.048,-0.046,-0.044,-0.042,-0.040,-0.038,-0.036,-0.035,-0.033, - &-0.031,-0.029,-0.027,-0.025,-0.023,-0.021,-0.019,-0.017,-0.015, - &-0.013,-0.012,-0.010,-0.008,-0.006,-0.004,-0.002, 0.000, 0.002, - & 0.004, 0.006, 0.008, 0.009, 0.011, 0.013, 0.015, 0.017, 0.019, - & 0.021, 0.023, 0.025, 0.027, 0.028, 0.030, 0.032, 0.034, 0.036, - & 0.038, 0.040, 0.042, 0.044, 0.045, 0.047, 0.049, 0.051, 0.053, - & 0.055, 0.057, 0.059, 0.060, 0.062, 0.064, 0.066, 0.068, 0.070, - & 0.072, 0.074, 0.075, 0.077, 0.079, 0.081, 0.083, 0.085, 0.086, - & 0.088, 0.090, 0.092, 0.094, 0.096, 0.097, 0.099, 0.101, 0.103, - & 0.105, 0.107, 0.108, 0.110, 0.112, 0.114, 0.116, 0.117, 0.119, - & 0.121, 0.123, 0.125, 0.127, 0.128, 0.130, 0.132, 0.134, 0.135, - & 0.137, 0.139, 0.141, 0.143, 0.144, 0.146, 0.148, 0.150, 0.151, - & 0.153, 0.155, 0.157, 0.159, 0.160, 0.162, 0.164, 0.166, 0.167, - & 0.169, 0.171, 0.173, 0.174, 0.176, 0.178, 0.180, 0.181, 0.183, - & 0.185, 0.186, 0.188, 0.190, 0.192, 0.193, 0.195, 0.197, 0.198, - & 0.200, 0.202, 0.204, 0.205, 0.207, 0.209, 0.210, 0.212, 0.214, - & 0.215, 0.217, 0.219, 0.221, 0.222, 0.224, 0.226, 0.227, 0.229, - & 0.231, 0.232, 0.234, 0.236, 0.237, 0.239, 0.241, 0.242, 0.244, - & 0.246, 0.247, 0.249, 0.250, 0.252, 0.254, 0.255, 0.257, 0.259, - & 0.260, 0.262, 0.264, 0.265, 0.267, 0.268, 0.270, 0.272, 0.273, - & 0.275, 0.276, 0.278, 0.280, 0.281, 0.283, 0.285, 0.286, 0.288, - & 0.289, 0.291, 0.293, 0.294, 0.296, 0.297, 0.299, 0.300, 0.302, - & 0.304, 0.305, 0.307, 0.308, 0.310, 0.311, 0.313, 0.315, 0.316, - & 0.318, 0.319, 0.321, 0.322, 0.324, 0.325, 0.327, 0.329, 0.330, - & 0.332, 0.333, 0.335, 0.336, 0.338, 0.339, 0.341, 0.342, 0.344, - & 0.345, 0.347, 0.349, 0.350, 0.352, 0.353, 0.355, 0.356, 0.358, - & 0.359, 0.361, 0.362, 0.364, 0.365, 0.367, 0.368, 0.370, 0.371, - & 0.373, 0.374, 0.376, 0.377, 0.379, 0.380, 0.382, 0.383, 0.384, - & 0.386, 0.387, 0.389, 0.390, 0.392, 0.393, 0.395, 0.396, 0.398, - & 0.399, 0.401, 0.402, 0.404, 0.405, 0.406, 0.408, 0.409, 0.411, - & 0.412, 0.414, 0.415, 0.417, 0.418, 0.419, 0.421, 0.422, 0.424, - & 0.425, 0.427, 0.428, 0.429, 0.445, 0.459, 0.472, 0.486, 0.499, - & 0.513, 0.526, 0.539, 0.552, 0.565, 0.577, 0.590, 0.602, 0.614, - & 0.626, 0.638, 0.650, 0.662, 0.674, 0.685, 0.697, 0.708, 0.719, - & 0.730, 0.741, 0.752, 0.763, 0.773, 0.784, 0.795, 0.805, 0.815, - & 0.825, 0.836, 0.846, 0.856, 0.866, 0.875, 0.885, 0.895, 0.904, - & 0.914, 0.923, 0.933, 0.942, 0.951, 0.960, 0.969, 0.979, 0.987, - & 0.996, 1.005, 1.014, 1.023, 1.031, 1.040, 1.049, 1.057, 1.065, - & 1.074, 1.082, 1.090, 1.099, 1.107, 1.115, 1.123, 1.131, 1.139, - & 1.147, 1.155, 1.163, 1.170, 1.178, 1.186, 1.193, 1.201, 1.209, - & 1.216, 1.224, 1.231, 1.238, 1.246, 1.253, 1.260, 1.267, 1.275, - & 1.282, 1.289, 1.296, 1.303, 1.310, 1.317, 1.324, 1.331, 1.338, - & 1.345, 1.351, 1.358, 1.365, 1.372, 1.378, 1.385, 1.392, 1.398, - & 1.405, 1.411, 1.418, 1.424, 1.431, 1.437, 1.443, 1.450, 1.456, - & 1.462, 1.469, 1.475, 1.481, 1.487, 1.493, 1.500, 1.506, 1.512, - & 1.518, 1.524, 1.530, 1.536, 1.542, 1.548, 1.554, 1.560, 1.565, - & 1.571, 1.577, 1.583, 1.589, 1.594, 1.600, 1.606, 1.612, 1.617, - & 1.623, 1.629, 1.634, 1.640, 1.645, 1.651, 1.656, 1.662, 1.667, - & 1.673, 1.678, 1.684, 1.689, 1.695, 1.700, 1.705, 1.711, 1.716, - & 1.721, 1.727, 1.732 - & /) -! -! *** Na2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC02M_323 = (/ - &-0.091,-0.196,-0.249,-0.285,-0.314,-0.337,-0.358,-0.375,-0.390, - &-0.404,-0.417,-0.428,-0.439,-0.449,-0.458,-0.466,-0.475,-0.482, - &-0.489,-0.496,-0.502,-0.508,-0.514,-0.520,-0.525,-0.530,-0.535, - &-0.540,-0.544,-0.549,-0.553,-0.557,-0.561,-0.565,-0.569,-0.572, - &-0.576,-0.579,-0.582,-0.585,-0.588,-0.591,-0.594,-0.597,-0.600, - &-0.603,-0.605,-0.608,-0.610,-0.613,-0.615,-0.617,-0.620,-0.622, - &-0.624,-0.626,-0.628,-0.630,-0.632,-0.634,-0.636,-0.638,-0.640, - &-0.641,-0.643,-0.645,-0.647,-0.648,-0.650,-0.651,-0.653,-0.654, - &-0.656,-0.657,-0.659,-0.660,-0.662,-0.663,-0.665,-0.666,-0.667, - &-0.669,-0.670,-0.671,-0.672,-0.674,-0.675,-0.676,-0.677,-0.678, - &-0.679,-0.681,-0.682,-0.683,-0.684,-0.685,-0.686,-0.687,-0.688, - &-0.689,-0.690,-0.691,-0.692,-0.693,-0.694,-0.695,-0.696,-0.697, - &-0.698,-0.699,-0.700,-0.701,-0.701,-0.702,-0.703,-0.704,-0.705, - &-0.706,-0.706,-0.707,-0.708,-0.709,-0.710,-0.710,-0.711,-0.712, - &-0.713,-0.713,-0.714,-0.715,-0.716,-0.716,-0.717,-0.718,-0.718, - &-0.719,-0.720,-0.720,-0.721,-0.722,-0.722,-0.723,-0.724,-0.724, - &-0.725,-0.725,-0.726,-0.727,-0.727,-0.728,-0.728,-0.729,-0.730, - &-0.730,-0.731,-0.731,-0.732,-0.732,-0.733,-0.733,-0.734,-0.734, - &-0.735,-0.735,-0.736,-0.736,-0.737,-0.737,-0.738,-0.738,-0.739, - &-0.739,-0.740,-0.740,-0.741,-0.741,-0.742,-0.742,-0.742,-0.743, - &-0.743,-0.744,-0.744,-0.745,-0.745,-0.745,-0.746,-0.746,-0.747, - &-0.747,-0.747,-0.748,-0.748,-0.748,-0.749,-0.749,-0.750,-0.750, - &-0.750,-0.751,-0.751,-0.751,-0.752,-0.752,-0.752,-0.753,-0.753, - &-0.753,-0.754,-0.754,-0.754,-0.755,-0.755,-0.755,-0.755,-0.756, - &-0.756,-0.756,-0.757,-0.757,-0.757,-0.758,-0.758,-0.758,-0.758, - &-0.759,-0.759,-0.759,-0.759,-0.760,-0.760,-0.760,-0.760,-0.761, - &-0.761,-0.761,-0.761,-0.762,-0.762,-0.762,-0.762,-0.763,-0.763, - &-0.763,-0.763,-0.764,-0.764,-0.764,-0.764,-0.764,-0.765,-0.765, - &-0.765,-0.765,-0.765,-0.766,-0.766,-0.766,-0.766,-0.766,-0.767, - &-0.767,-0.767,-0.767,-0.767,-0.768,-0.768,-0.768,-0.768,-0.768, - &-0.768,-0.769,-0.769,-0.769,-0.769,-0.769,-0.769,-0.770,-0.770, - &-0.770,-0.770,-0.770,-0.770,-0.771,-0.771,-0.771,-0.771,-0.771, - &-0.771,-0.771,-0.771,-0.772,-0.772,-0.772,-0.772,-0.772,-0.772, - &-0.772,-0.773,-0.773,-0.773,-0.773,-0.773,-0.773,-0.773,-0.773, - &-0.773,-0.774,-0.774,-0.774,-0.774,-0.774,-0.774,-0.774,-0.774, - &-0.774,-0.775,-0.775,-0.775,-0.775,-0.775,-0.775,-0.775,-0.775, - &-0.775,-0.775,-0.775,-0.775,-0.776,-0.776,-0.776,-0.776,-0.776, - &-0.776,-0.776,-0.776,-0.776,-0.776,-0.776,-0.776,-0.776,-0.777, - &-0.777,-0.777,-0.777,-0.777,-0.777,-0.777,-0.777,-0.777,-0.777, - &-0.777,-0.777,-0.777,-0.777,-0.777,-0.777,-0.777,-0.777,-0.778, - &-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778, - &-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778, - &-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778, - &-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.778,-0.779,-0.779, - &-0.779,-0.779,-0.779,-0.779,-0.779,-0.779,-0.778,-0.778,-0.778, - &-0.778,-0.777,-0.777,-0.776,-0.776,-0.775,-0.774,-0.774,-0.773, - &-0.772,-0.771,-0.770,-0.769,-0.768,-0.767,-0.766,-0.765,-0.764, - &-0.763,-0.762,-0.760,-0.759,-0.758,-0.756,-0.755,-0.754,-0.752, - &-0.751,-0.749,-0.748,-0.746,-0.745,-0.743,-0.742,-0.740,-0.739, - &-0.737,-0.735,-0.734,-0.732,-0.730,-0.729,-0.727,-0.725,-0.723, - &-0.722,-0.720,-0.718,-0.716,-0.714,-0.713,-0.711,-0.709,-0.707, - &-0.705,-0.703,-0.701,-0.699,-0.697,-0.695,-0.693,-0.691,-0.690, - &-0.688,-0.686,-0.683,-0.681,-0.679,-0.677,-0.675,-0.673,-0.671, - &-0.669,-0.667,-0.665,-0.663,-0.661,-0.659,-0.656,-0.654,-0.652, - &-0.650,-0.648,-0.646,-0.644,-0.641,-0.639,-0.637,-0.635,-0.633, - &-0.630,-0.628,-0.626,-0.624,-0.621,-0.619,-0.617,-0.615,-0.612, - &-0.610,-0.608,-0.606,-0.603,-0.601,-0.599,-0.597,-0.594,-0.592, - &-0.590,-0.587,-0.585,-0.583,-0.580,-0.578,-0.576,-0.573,-0.571, - &-0.569,-0.566,-0.564,-0.562,-0.559,-0.557,-0.555,-0.552,-0.550, - &-0.547,-0.545,-0.543,-0.540,-0.538,-0.536,-0.533,-0.531,-0.528, - &-0.526,-0.524,-0.521,-0.519,-0.516,-0.514,-0.511,-0.509,-0.507, - &-0.504,-0.502,-0.499,-0.497,-0.494,-0.492,-0.490,-0.487,-0.485, - &-0.482,-0.480,-0.477 - & /) -! -! *** NaNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC03M_323 = (/ - &-0.045,-0.099,-0.125,-0.144,-0.159,-0.171,-0.181,-0.190,-0.198, - &-0.206,-0.212,-0.218,-0.224,-0.229,-0.234,-0.239,-0.243,-0.247, - &-0.251,-0.255,-0.258,-0.261,-0.265,-0.268,-0.271,-0.274,-0.276, - &-0.279,-0.281,-0.284,-0.286,-0.289,-0.291,-0.293,-0.295,-0.297, - &-0.299,-0.301,-0.303,-0.305,-0.306,-0.308,-0.310,-0.312,-0.313, - &-0.315,-0.316,-0.318,-0.319,-0.321,-0.322,-0.323,-0.325,-0.326, - &-0.327,-0.329,-0.330,-0.331,-0.332,-0.333,-0.335,-0.336,-0.337, - &-0.338,-0.339,-0.340,-0.341,-0.342,-0.343,-0.344,-0.345,-0.346, - &-0.347,-0.348,-0.349,-0.350,-0.350,-0.351,-0.352,-0.353,-0.354, - &-0.355,-0.356,-0.356,-0.357,-0.358,-0.359,-0.359,-0.360,-0.361, - &-0.362,-0.363,-0.363,-0.364,-0.365,-0.365,-0.366,-0.367,-0.368, - &-0.368,-0.369,-0.370,-0.370,-0.371,-0.372,-0.372,-0.373,-0.374, - &-0.374,-0.375,-0.375,-0.376,-0.377,-0.377,-0.378,-0.378,-0.379, - &-0.380,-0.380,-0.381,-0.381,-0.382,-0.383,-0.383,-0.384,-0.384, - &-0.385,-0.385,-0.386,-0.386,-0.387,-0.387,-0.388,-0.388,-0.389, - &-0.389,-0.390,-0.390,-0.391,-0.391,-0.392,-0.392,-0.393,-0.393, - &-0.394,-0.394,-0.395,-0.395,-0.396,-0.396,-0.397,-0.397,-0.397, - &-0.398,-0.398,-0.399,-0.399,-0.400,-0.400,-0.400,-0.401,-0.401, - &-0.402,-0.402,-0.402,-0.403,-0.403,-0.404,-0.404,-0.404,-0.405, - &-0.405,-0.406,-0.406,-0.406,-0.407,-0.407,-0.407,-0.408,-0.408, - &-0.408,-0.409,-0.409,-0.409,-0.410,-0.410,-0.411,-0.411,-0.411, - &-0.412,-0.412,-0.412,-0.413,-0.413,-0.413,-0.413,-0.414,-0.414, - &-0.414,-0.415,-0.415,-0.415,-0.416,-0.416,-0.416,-0.417,-0.417, - &-0.417,-0.417,-0.418,-0.418,-0.418,-0.419,-0.419,-0.419,-0.419, - &-0.420,-0.420,-0.420,-0.421,-0.421,-0.421,-0.421,-0.422,-0.422, - &-0.422,-0.422,-0.423,-0.423,-0.423,-0.423,-0.424,-0.424,-0.424, - &-0.424,-0.425,-0.425,-0.425,-0.425,-0.426,-0.426,-0.426,-0.426, - &-0.427,-0.427,-0.427,-0.427,-0.428,-0.428,-0.428,-0.428,-0.428, - &-0.429,-0.429,-0.429,-0.429,-0.430,-0.430,-0.430,-0.430,-0.430, - &-0.431,-0.431,-0.431,-0.431,-0.431,-0.432,-0.432,-0.432,-0.432, - &-0.432,-0.433,-0.433,-0.433,-0.433,-0.433,-0.434,-0.434,-0.434, - &-0.434,-0.434,-0.435,-0.435,-0.435,-0.435,-0.435,-0.435,-0.436, - &-0.436,-0.436,-0.436,-0.436,-0.436,-0.437,-0.437,-0.437,-0.437, - &-0.437,-0.438,-0.438,-0.438,-0.438,-0.438,-0.438,-0.438,-0.439, - &-0.439,-0.439,-0.439,-0.439,-0.439,-0.440,-0.440,-0.440,-0.440, - &-0.440,-0.440,-0.440,-0.441,-0.441,-0.441,-0.441,-0.441,-0.441, - &-0.442,-0.442,-0.442,-0.442,-0.442,-0.442,-0.442,-0.442,-0.443, - &-0.443,-0.443,-0.443,-0.443,-0.443,-0.443,-0.444,-0.444,-0.444, - &-0.444,-0.444,-0.444,-0.444,-0.444,-0.445,-0.445,-0.445,-0.445, - &-0.445,-0.445,-0.445,-0.445,-0.446,-0.446,-0.446,-0.446,-0.446, - &-0.446,-0.446,-0.446,-0.446,-0.447,-0.447,-0.447,-0.447,-0.447, - &-0.447,-0.447,-0.447,-0.447,-0.447,-0.448,-0.448,-0.448,-0.448, - &-0.448,-0.448,-0.448,-0.448,-0.448,-0.449,-0.449,-0.449,-0.449, - &-0.449,-0.449,-0.449,-0.449,-0.449,-0.449,-0.449,-0.450,-0.450, - &-0.450,-0.450,-0.450,-0.450,-0.451,-0.452,-0.452,-0.453,-0.454, - &-0.454,-0.455,-0.455,-0.456,-0.456,-0.457,-0.457,-0.457,-0.458, - &-0.458,-0.458,-0.458,-0.458,-0.458,-0.458,-0.459,-0.459,-0.459, - &-0.459,-0.459,-0.458,-0.458,-0.458,-0.458,-0.458,-0.458,-0.458, - &-0.457,-0.457,-0.457,-0.457,-0.456,-0.456,-0.456,-0.455,-0.455, - &-0.455,-0.454,-0.454,-0.453,-0.453,-0.453,-0.452,-0.452,-0.451, - &-0.451,-0.450,-0.450,-0.449,-0.449,-0.448,-0.448,-0.447,-0.446, - &-0.446,-0.445,-0.445,-0.444,-0.443,-0.443,-0.442,-0.442,-0.441, - &-0.440,-0.440,-0.439,-0.438,-0.437,-0.437,-0.436,-0.435,-0.435, - &-0.434,-0.433,-0.432,-0.432,-0.431,-0.430,-0.429,-0.429,-0.428, - &-0.427,-0.426,-0.425,-0.425,-0.424,-0.423,-0.422,-0.421,-0.420, - &-0.420,-0.419,-0.418,-0.417,-0.416,-0.415,-0.414,-0.414,-0.413, - &-0.412,-0.411,-0.410,-0.409,-0.408,-0.407,-0.406,-0.405,-0.404, - &-0.404,-0.403,-0.402,-0.401,-0.400,-0.399,-0.398,-0.397,-0.396, - &-0.395,-0.394,-0.393,-0.392,-0.391,-0.390,-0.389,-0.388,-0.387, - &-0.386,-0.385,-0.384,-0.383,-0.382,-0.381,-0.380,-0.379,-0.378, - &-0.377,-0.376,-0.375,-0.374,-0.373,-0.372,-0.371,-0.370,-0.369, - &-0.368,-0.367,-0.366,-0.365,-0.364,-0.363,-0.362,-0.361,-0.360, - &-0.359,-0.358,-0.356 - & /) -! -! *** (NH4)2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC04M_323 = (/ - &-0.091,-0.197,-0.249,-0.286,-0.315,-0.339,-0.359,-0.377,-0.392, - &-0.406,-0.419,-0.431,-0.442,-0.452,-0.461,-0.470,-0.478,-0.486, - &-0.493,-0.500,-0.507,-0.513,-0.519,-0.525,-0.530,-0.535,-0.540, - &-0.545,-0.550,-0.554,-0.559,-0.563,-0.567,-0.571,-0.575,-0.579, - &-0.582,-0.586,-0.589,-0.592,-0.596,-0.599,-0.602,-0.605,-0.608, - &-0.611,-0.613,-0.616,-0.619,-0.621,-0.624,-0.626,-0.628,-0.631, - &-0.633,-0.635,-0.637,-0.640,-0.642,-0.644,-0.646,-0.648,-0.650, - &-0.652,-0.653,-0.655,-0.657,-0.659,-0.661,-0.662,-0.664,-0.666, - &-0.667,-0.669,-0.670,-0.672,-0.673,-0.675,-0.676,-0.678,-0.679, - &-0.681,-0.682,-0.683,-0.685,-0.686,-0.687,-0.689,-0.690,-0.691, - &-0.693,-0.694,-0.695,-0.696,-0.697,-0.699,-0.700,-0.701,-0.702, - &-0.703,-0.704,-0.705,-0.707,-0.708,-0.709,-0.710,-0.711,-0.712, - &-0.713,-0.714,-0.715,-0.716,-0.717,-0.718,-0.719,-0.720,-0.721, - &-0.722,-0.723,-0.724,-0.724,-0.725,-0.726,-0.727,-0.728,-0.729, - &-0.730,-0.731,-0.731,-0.732,-0.733,-0.734,-0.735,-0.735,-0.736, - &-0.737,-0.738,-0.738,-0.739,-0.740,-0.741,-0.741,-0.742,-0.743, - &-0.744,-0.744,-0.745,-0.746,-0.746,-0.747,-0.748,-0.748,-0.749, - &-0.750,-0.750,-0.751,-0.752,-0.752,-0.753,-0.754,-0.754,-0.755, - &-0.755,-0.756,-0.757,-0.757,-0.758,-0.758,-0.759,-0.759,-0.760, - &-0.761,-0.761,-0.762,-0.762,-0.763,-0.763,-0.764,-0.764,-0.765, - &-0.765,-0.766,-0.766,-0.767,-0.767,-0.768,-0.768,-0.769,-0.769, - &-0.770,-0.770,-0.771,-0.771,-0.772,-0.772,-0.772,-0.773,-0.773, - &-0.774,-0.774,-0.775,-0.775,-0.776,-0.776,-0.776,-0.777,-0.777, - &-0.778,-0.778,-0.778,-0.779,-0.779,-0.780,-0.780,-0.780,-0.781, - &-0.781,-0.781,-0.782,-0.782,-0.783,-0.783,-0.783,-0.784,-0.784, - &-0.784,-0.785,-0.785,-0.785,-0.786,-0.786,-0.786,-0.787,-0.787, - &-0.787,-0.788,-0.788,-0.788,-0.789,-0.789,-0.789,-0.790,-0.790, - &-0.790,-0.790,-0.791,-0.791,-0.791,-0.792,-0.792,-0.792,-0.793, - &-0.793,-0.793,-0.793,-0.794,-0.794,-0.794,-0.794,-0.795,-0.795, - &-0.795,-0.795,-0.796,-0.796,-0.796,-0.796,-0.797,-0.797,-0.797, - &-0.797,-0.798,-0.798,-0.798,-0.798,-0.799,-0.799,-0.799,-0.799, - &-0.800,-0.800,-0.800,-0.800,-0.800,-0.801,-0.801,-0.801,-0.801, - &-0.801,-0.802,-0.802,-0.802,-0.802,-0.802,-0.803,-0.803,-0.803, - &-0.803,-0.803,-0.804,-0.804,-0.804,-0.804,-0.804,-0.804,-0.805, - &-0.805,-0.805,-0.805,-0.805,-0.806,-0.806,-0.806,-0.806,-0.806, - &-0.806,-0.806,-0.807,-0.807,-0.807,-0.807,-0.807,-0.807,-0.808, - &-0.808,-0.808,-0.808,-0.808,-0.808,-0.808,-0.809,-0.809,-0.809, - &-0.809,-0.809,-0.809,-0.809,-0.810,-0.810,-0.810,-0.810,-0.810, - &-0.810,-0.810,-0.810,-0.810,-0.811,-0.811,-0.811,-0.811,-0.811, - &-0.811,-0.811,-0.811,-0.812,-0.812,-0.812,-0.812,-0.812,-0.812, - &-0.812,-0.812,-0.812,-0.812,-0.813,-0.813,-0.813,-0.813,-0.813, - &-0.813,-0.813,-0.813,-0.813,-0.813,-0.813,-0.814,-0.814,-0.814, - &-0.814,-0.814,-0.814,-0.814,-0.814,-0.814,-0.814,-0.814,-0.814, - &-0.814,-0.815,-0.815,-0.815,-0.815,-0.815,-0.815,-0.815,-0.815, - &-0.815,-0.815,-0.815,-0.815,-0.816,-0.816,-0.817,-0.817,-0.817, - &-0.817,-0.817,-0.817,-0.817,-0.817,-0.817,-0.817,-0.816,-0.816, - &-0.816,-0.815,-0.815,-0.814,-0.813,-0.813,-0.812,-0.811,-0.811, - &-0.810,-0.809,-0.808,-0.807,-0.806,-0.805,-0.804,-0.803,-0.802, - &-0.801,-0.800,-0.799,-0.797,-0.796,-0.795,-0.794,-0.792,-0.791, - &-0.790,-0.788,-0.787,-0.786,-0.784,-0.783,-0.781,-0.780,-0.778, - &-0.777,-0.775,-0.774,-0.772,-0.771,-0.769,-0.767,-0.766,-0.764, - &-0.762,-0.761,-0.759,-0.757,-0.756,-0.754,-0.752,-0.750,-0.749, - &-0.747,-0.745,-0.743,-0.741,-0.740,-0.738,-0.736,-0.734,-0.732, - &-0.730,-0.728,-0.727,-0.725,-0.723,-0.721,-0.719,-0.717,-0.715, - &-0.713,-0.711,-0.709,-0.707,-0.705,-0.703,-0.701,-0.699,-0.697, - &-0.695,-0.693,-0.691,-0.689,-0.687,-0.685,-0.683,-0.681,-0.678, - &-0.676,-0.674,-0.672,-0.670,-0.668,-0.666,-0.664,-0.661,-0.659, - &-0.657,-0.655,-0.653,-0.651,-0.648,-0.646,-0.644,-0.642,-0.640, - &-0.638,-0.635,-0.633,-0.631,-0.629,-0.626,-0.624,-0.622,-0.620, - &-0.618,-0.615,-0.613,-0.611,-0.609,-0.606,-0.604,-0.602,-0.599, - &-0.597,-0.595,-0.593,-0.590,-0.588,-0.586,-0.583,-0.581,-0.579, - &-0.577,-0.574,-0.572,-0.570,-0.567,-0.565,-0.563,-0.560,-0.558, - &-0.556,-0.553,-0.551 - & /) -! -! *** NH4NO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC05M_323 = (/ - &-0.046,-0.101,-0.129,-0.149,-0.166,-0.179,-0.191,-0.202,-0.211, - &-0.220,-0.228,-0.235,-0.242,-0.249,-0.255,-0.261,-0.266,-0.272, - &-0.277,-0.282,-0.286,-0.291,-0.295,-0.299,-0.303,-0.307,-0.311, - &-0.315,-0.319,-0.322,-0.326,-0.329,-0.332,-0.335,-0.339,-0.342, - &-0.345,-0.348,-0.350,-0.353,-0.356,-0.359,-0.361,-0.364,-0.366, - &-0.369,-0.371,-0.374,-0.376,-0.378,-0.380,-0.383,-0.385,-0.387, - &-0.389,-0.391,-0.393,-0.395,-0.397,-0.399,-0.401,-0.403,-0.405, - &-0.406,-0.408,-0.410,-0.412,-0.414,-0.415,-0.417,-0.419,-0.420, - &-0.422,-0.424,-0.425,-0.427,-0.428,-0.430,-0.432,-0.433,-0.435, - &-0.436,-0.438,-0.439,-0.441,-0.442,-0.444,-0.445,-0.447,-0.448, - &-0.449,-0.451,-0.452,-0.454,-0.455,-0.456,-0.458,-0.459,-0.461, - &-0.462,-0.463,-0.465,-0.466,-0.467,-0.469,-0.470,-0.471,-0.473, - &-0.474,-0.475,-0.477,-0.478,-0.479,-0.480,-0.482,-0.483,-0.484, - &-0.485,-0.487,-0.488,-0.489,-0.490,-0.492,-0.493,-0.494,-0.495, - &-0.496,-0.498,-0.499,-0.500,-0.501,-0.502,-0.503,-0.504,-0.506, - &-0.507,-0.508,-0.509,-0.510,-0.511,-0.512,-0.513,-0.514,-0.515, - &-0.516,-0.517,-0.519,-0.520,-0.521,-0.522,-0.523,-0.524,-0.525, - &-0.526,-0.527,-0.528,-0.529,-0.530,-0.531,-0.532,-0.533,-0.534, - &-0.535,-0.535,-0.536,-0.537,-0.538,-0.539,-0.540,-0.541,-0.542, - &-0.543,-0.544,-0.545,-0.546,-0.547,-0.547,-0.548,-0.549,-0.550, - &-0.551,-0.552,-0.553,-0.553,-0.554,-0.555,-0.556,-0.557,-0.558, - &-0.559,-0.559,-0.560,-0.561,-0.562,-0.563,-0.563,-0.564,-0.565, - &-0.566,-0.567,-0.567,-0.568,-0.569,-0.570,-0.570,-0.571,-0.572, - &-0.573,-0.574,-0.574,-0.575,-0.576,-0.576,-0.577,-0.578,-0.579, - &-0.579,-0.580,-0.581,-0.582,-0.582,-0.583,-0.584,-0.584,-0.585, - &-0.586,-0.586,-0.587,-0.588,-0.589,-0.589,-0.590,-0.591,-0.591, - &-0.592,-0.593,-0.593,-0.594,-0.595,-0.595,-0.596,-0.596,-0.597, - &-0.598,-0.598,-0.599,-0.600,-0.600,-0.601,-0.602,-0.602,-0.603, - &-0.603,-0.604,-0.605,-0.605,-0.606,-0.606,-0.607,-0.608,-0.608, - &-0.609,-0.609,-0.610,-0.611,-0.611,-0.612,-0.612,-0.613,-0.613, - &-0.614,-0.615,-0.615,-0.616,-0.616,-0.617,-0.617,-0.618,-0.618, - &-0.619,-0.620,-0.620,-0.621,-0.621,-0.622,-0.622,-0.623,-0.623, - &-0.624,-0.624,-0.625,-0.625,-0.626,-0.626,-0.627,-0.627,-0.628, - &-0.628,-0.629,-0.629,-0.630,-0.630,-0.631,-0.631,-0.632,-0.632, - &-0.633,-0.633,-0.634,-0.634,-0.635,-0.635,-0.636,-0.636,-0.637, - &-0.637,-0.638,-0.638,-0.639,-0.639,-0.639,-0.640,-0.640,-0.641, - &-0.641,-0.642,-0.642,-0.643,-0.643,-0.643,-0.644,-0.644,-0.645, - &-0.645,-0.646,-0.646,-0.647,-0.647,-0.647,-0.648,-0.648,-0.649, - &-0.649,-0.649,-0.650,-0.650,-0.651,-0.651,-0.652,-0.652,-0.652, - &-0.653,-0.653,-0.654,-0.654,-0.654,-0.655,-0.655,-0.656,-0.656, - &-0.656,-0.657,-0.657,-0.658,-0.658,-0.658,-0.659,-0.659,-0.659, - &-0.660,-0.660,-0.661,-0.661,-0.661,-0.662,-0.662,-0.662,-0.663, - &-0.663,-0.663,-0.664,-0.664,-0.665,-0.665,-0.665,-0.666,-0.666, - &-0.666,-0.667,-0.667,-0.667,-0.668,-0.668,-0.668,-0.669,-0.669, - &-0.669,-0.670,-0.670,-0.670,-0.674,-0.677,-0.680,-0.683,-0.686, - &-0.688,-0.691,-0.693,-0.696,-0.698,-0.700,-0.702,-0.705,-0.706, - &-0.708,-0.710,-0.712,-0.714,-0.715,-0.717,-0.718,-0.720,-0.721, - &-0.722,-0.723,-0.725,-0.726,-0.727,-0.728,-0.729,-0.730,-0.731, - &-0.732,-0.732,-0.733,-0.734,-0.735,-0.735,-0.736,-0.736,-0.737, - &-0.737,-0.738,-0.738,-0.739,-0.739,-0.739,-0.740,-0.740,-0.740, - &-0.741,-0.741,-0.741,-0.741,-0.741,-0.741,-0.741,-0.741,-0.741, - &-0.741,-0.741,-0.741,-0.741,-0.741,-0.741,-0.741,-0.741,-0.741, - &-0.741,-0.740,-0.740,-0.740,-0.740,-0.739,-0.739,-0.739,-0.739, - &-0.738,-0.738,-0.738,-0.737,-0.737,-0.736,-0.736,-0.736,-0.735, - &-0.735,-0.734,-0.734,-0.733,-0.733,-0.732,-0.732,-0.731,-0.731, - &-0.730,-0.729,-0.729,-0.728,-0.728,-0.727,-0.726,-0.726,-0.725, - &-0.725,-0.724,-0.723,-0.723,-0.722,-0.721,-0.721,-0.720,-0.719, - &-0.718,-0.718,-0.717,-0.716,-0.715,-0.715,-0.714,-0.713,-0.712, - &-0.711,-0.711,-0.710,-0.709,-0.708,-0.707,-0.707,-0.706,-0.705, - &-0.704,-0.703,-0.702,-0.701,-0.701,-0.700,-0.699,-0.698,-0.697, - &-0.696,-0.695,-0.694,-0.693,-0.692,-0.692,-0.691,-0.690,-0.689, - &-0.688,-0.687,-0.686,-0.685,-0.684,-0.683,-0.682,-0.681,-0.680, - &-0.679,-0.678,-0.677 - & /) -! -! *** NH4Cl -! - Real(kind=fp), Parameter, Dimension(561) :: BNC06M_323 = (/ - &-0.045,-0.096,-0.120,-0.136,-0.149,-0.159,-0.167,-0.174,-0.181, - &-0.186,-0.191,-0.195,-0.199,-0.202,-0.205,-0.208,-0.210,-0.213, - &-0.215,-0.217,-0.219,-0.220,-0.222,-0.223,-0.225,-0.226,-0.227, - &-0.228,-0.229,-0.230,-0.231,-0.232,-0.232,-0.233,-0.234,-0.234, - &-0.235,-0.235,-0.236,-0.236,-0.237,-0.237,-0.237,-0.238,-0.238, - &-0.238,-0.238,-0.238,-0.239,-0.239,-0.239,-0.239,-0.239,-0.239, - &-0.239,-0.239,-0.239,-0.239,-0.239,-0.239,-0.239,-0.239,-0.239, - &-0.239,-0.239,-0.239,-0.239,-0.239,-0.239,-0.239,-0.238,-0.238, - &-0.238,-0.238,-0.238,-0.238,-0.237,-0.237,-0.237,-0.237,-0.237, - &-0.236,-0.236,-0.236,-0.235,-0.235,-0.235,-0.235,-0.234,-0.234, - &-0.234,-0.233,-0.233,-0.233,-0.232,-0.232,-0.231,-0.231,-0.231, - &-0.230,-0.230,-0.229,-0.229,-0.229,-0.228,-0.228,-0.227,-0.227, - &-0.226,-0.226,-0.225,-0.225,-0.224,-0.224,-0.224,-0.223,-0.223, - &-0.222,-0.222,-0.221,-0.221,-0.220,-0.219,-0.219,-0.218,-0.218, - &-0.217,-0.217,-0.216,-0.216,-0.215,-0.215,-0.214,-0.214,-0.213, - &-0.213,-0.212,-0.211,-0.211,-0.210,-0.210,-0.209,-0.209,-0.208, - &-0.208,-0.207,-0.206,-0.206,-0.205,-0.205,-0.204,-0.204,-0.203, - &-0.203,-0.202,-0.201,-0.201,-0.200,-0.200,-0.199,-0.199,-0.198, - &-0.197,-0.197,-0.196,-0.196,-0.195,-0.195,-0.194,-0.193,-0.193, - &-0.192,-0.192,-0.191,-0.191,-0.190,-0.189,-0.189,-0.188,-0.188, - &-0.187,-0.186,-0.186,-0.185,-0.185,-0.184,-0.184,-0.183,-0.182, - &-0.182,-0.181,-0.181,-0.180,-0.179,-0.179,-0.178,-0.178,-0.177, - &-0.177,-0.176,-0.175,-0.175,-0.174,-0.174,-0.173,-0.172,-0.172, - &-0.171,-0.171,-0.170,-0.170,-0.169,-0.168,-0.168,-0.167,-0.167, - &-0.166,-0.165,-0.165,-0.164,-0.164,-0.163,-0.163,-0.162,-0.161, - &-0.161,-0.160,-0.160,-0.159,-0.158,-0.158,-0.157,-0.157,-0.156, - &-0.156,-0.155,-0.154,-0.154,-0.153,-0.153,-0.152,-0.151,-0.151, - &-0.150,-0.150,-0.149,-0.149,-0.148,-0.147,-0.147,-0.146,-0.146, - &-0.145,-0.145,-0.144,-0.143,-0.143,-0.142,-0.142,-0.141,-0.140, - &-0.140,-0.139,-0.139,-0.138,-0.138,-0.137,-0.136,-0.136,-0.135, - &-0.135,-0.134,-0.134,-0.133,-0.132,-0.132,-0.131,-0.131,-0.130, - &-0.130,-0.129,-0.128,-0.128,-0.127,-0.127,-0.126,-0.126,-0.125, - &-0.125,-0.124,-0.123,-0.123,-0.122,-0.122,-0.121,-0.121,-0.120, - &-0.119,-0.119,-0.118,-0.118,-0.117,-0.117,-0.116,-0.115,-0.115, - &-0.114,-0.114,-0.113,-0.113,-0.112,-0.112,-0.111,-0.110,-0.110, - &-0.109,-0.109,-0.108,-0.108,-0.107,-0.107,-0.106,-0.105,-0.105, - &-0.104,-0.104,-0.103,-0.103,-0.102,-0.102,-0.101,-0.100,-0.100, - &-0.099,-0.099,-0.098,-0.098,-0.097,-0.097,-0.096,-0.096,-0.095, - &-0.094,-0.094,-0.093,-0.093,-0.092,-0.092,-0.091,-0.091,-0.090, - &-0.090,-0.089,-0.088,-0.088,-0.087,-0.087,-0.086,-0.086,-0.085, - &-0.085,-0.084,-0.084,-0.083,-0.083,-0.082,-0.081,-0.081,-0.080, - &-0.080,-0.079,-0.079,-0.078,-0.078,-0.077,-0.077,-0.076,-0.076, - &-0.075,-0.074,-0.074,-0.073,-0.073,-0.072,-0.072,-0.071,-0.071, - &-0.070,-0.070,-0.069,-0.069,-0.068,-0.068,-0.067,-0.067,-0.066, - &-0.065,-0.065,-0.064,-0.064,-0.058,-0.053,-0.048,-0.043,-0.038, - &-0.033,-0.028,-0.023,-0.018,-0.013,-0.008,-0.003, 0.002, 0.006, - & 0.011, 0.016, 0.021, 0.025, 0.030, 0.035, 0.039, 0.044, 0.048, - & 0.053, 0.057, 0.062, 0.066, 0.070, 0.075, 0.079, 0.083, 0.088, - & 0.092, 0.096, 0.100, 0.105, 0.109, 0.113, 0.117, 0.121, 0.125, - & 0.129, 0.133, 0.137, 0.141, 0.145, 0.149, 0.153, 0.157, 0.161, - & 0.165, 0.169, 0.173, 0.176, 0.180, 0.184, 0.188, 0.192, 0.195, - & 0.199, 0.203, 0.207, 0.210, 0.214, 0.218, 0.221, 0.225, 0.228, - & 0.232, 0.236, 0.239, 0.243, 0.246, 0.250, 0.253, 0.257, 0.260, - & 0.264, 0.267, 0.271, 0.274, 0.278, 0.281, 0.285, 0.288, 0.291, - & 0.295, 0.298, 0.301, 0.305, 0.308, 0.311, 0.315, 0.318, 0.321, - & 0.325, 0.328, 0.331, 0.334, 0.338, 0.341, 0.344, 0.347, 0.350, - & 0.354, 0.357, 0.360, 0.363, 0.366, 0.369, 0.373, 0.376, 0.379, - & 0.382, 0.385, 0.388, 0.391, 0.394, 0.397, 0.400, 0.403, 0.406, - & 0.409, 0.412, 0.416, 0.419, 0.422, 0.425, 0.428, 0.430, 0.433, - & 0.436, 0.439, 0.442, 0.445, 0.448, 0.451, 0.454, 0.457, 0.460, - & 0.463, 0.466, 0.469, 0.471, 0.474, 0.477, 0.480, 0.483, 0.486, - & 0.489, 0.491, 0.494, 0.497, 0.500, 0.503, 0.506, 0.508, 0.511, - & 0.514, 0.517, 0.520 - & /) -! -! *** (2H,SO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC07M_323 = (/ - &-0.091,-0.196,-0.248,-0.284,-0.312,-0.336,-0.355,-0.372,-0.388, - &-0.401,-0.414,-0.425,-0.435,-0.445,-0.453,-0.462,-0.469,-0.477, - &-0.484,-0.490,-0.496,-0.502,-0.508,-0.513,-0.518,-0.523,-0.528, - &-0.532,-0.536,-0.540,-0.544,-0.548,-0.552,-0.556,-0.559,-0.562, - &-0.566,-0.569,-0.572,-0.575,-0.578,-0.580,-0.583,-0.586,-0.588, - &-0.591,-0.593,-0.595,-0.598,-0.600,-0.602,-0.604,-0.606,-0.608, - &-0.610,-0.612,-0.614,-0.616,-0.618,-0.620,-0.621,-0.623,-0.625, - &-0.626,-0.628,-0.629,-0.631,-0.632,-0.634,-0.635,-0.637,-0.638, - &-0.639,-0.641,-0.642,-0.643,-0.644,-0.646,-0.647,-0.648,-0.649, - &-0.650,-0.652,-0.653,-0.654,-0.655,-0.656,-0.657,-0.658,-0.659, - &-0.660,-0.661,-0.662,-0.663,-0.664,-0.665,-0.666,-0.666,-0.667, - &-0.668,-0.669,-0.670,-0.671,-0.671,-0.672,-0.673,-0.674,-0.675, - &-0.675,-0.676,-0.677,-0.678,-0.678,-0.679,-0.680,-0.680,-0.681, - &-0.682,-0.682,-0.683,-0.684,-0.684,-0.685,-0.686,-0.686,-0.687, - &-0.687,-0.688,-0.689,-0.689,-0.690,-0.690,-0.691,-0.691,-0.692, - &-0.692,-0.693,-0.693,-0.694,-0.694,-0.695,-0.695,-0.696,-0.696, - &-0.697,-0.697,-0.698,-0.698,-0.699,-0.699,-0.700,-0.700,-0.700, - &-0.701,-0.701,-0.702,-0.702,-0.702,-0.703,-0.703,-0.704,-0.704, - &-0.704,-0.705,-0.705,-0.705,-0.706,-0.706,-0.706,-0.707,-0.707, - &-0.707,-0.708,-0.708,-0.708,-0.709,-0.709,-0.709,-0.710,-0.710, - &-0.710,-0.711,-0.711,-0.711,-0.711,-0.712,-0.712,-0.712,-0.712, - &-0.713,-0.713,-0.713,-0.713,-0.714,-0.714,-0.714,-0.714,-0.715, - &-0.715,-0.715,-0.715,-0.716,-0.716,-0.716,-0.716,-0.716,-0.717, - &-0.717,-0.717,-0.717,-0.717,-0.718,-0.718,-0.718,-0.718,-0.718, - &-0.719,-0.719,-0.719,-0.719,-0.719,-0.719,-0.720,-0.720,-0.720, - &-0.720,-0.720,-0.720,-0.720,-0.721,-0.721,-0.721,-0.721,-0.721, - &-0.721,-0.721,-0.722,-0.722,-0.722,-0.722,-0.722,-0.722,-0.722, - &-0.722,-0.723,-0.723,-0.723,-0.723,-0.723,-0.723,-0.723,-0.723, - &-0.723,-0.723,-0.724,-0.724,-0.724,-0.724,-0.724,-0.724,-0.724, - &-0.724,-0.724,-0.724,-0.724,-0.724,-0.725,-0.725,-0.725,-0.725, - &-0.725,-0.725,-0.725,-0.725,-0.725,-0.725,-0.725,-0.725,-0.725, - &-0.725,-0.725,-0.725,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726, - &-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726, - &-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726, - &-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726, - &-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726, - &-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726, - &-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726, - &-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.726, - &-0.726,-0.726,-0.726,-0.726,-0.726,-0.726,-0.725,-0.725,-0.725, - &-0.725,-0.725,-0.725,-0.725,-0.725,-0.725,-0.725,-0.725,-0.725, - &-0.725,-0.725,-0.725,-0.725,-0.725,-0.725,-0.725,-0.725,-0.725, - &-0.724,-0.724,-0.724,-0.724,-0.724,-0.724,-0.724,-0.724,-0.724, - &-0.724,-0.724,-0.724,-0.724,-0.724,-0.724,-0.724,-0.723,-0.723, - &-0.723,-0.723,-0.723,-0.723,-0.722,-0.721,-0.721,-0.720,-0.719, - &-0.717,-0.716,-0.715,-0.714,-0.713,-0.711,-0.710,-0.709,-0.707, - &-0.706,-0.704,-0.703,-0.701,-0.700,-0.698,-0.696,-0.695,-0.693, - &-0.691,-0.689,-0.688,-0.686,-0.684,-0.682,-0.680,-0.678,-0.676, - &-0.675,-0.673,-0.671,-0.669,-0.667,-0.665,-0.663,-0.661,-0.658, - &-0.656,-0.654,-0.652,-0.650,-0.648,-0.646,-0.644,-0.642,-0.639, - &-0.637,-0.635,-0.633,-0.631,-0.628,-0.626,-0.624,-0.622,-0.619, - &-0.617,-0.615,-0.612,-0.610,-0.608,-0.605,-0.603,-0.601,-0.598, - &-0.596,-0.594,-0.591,-0.589,-0.587,-0.584,-0.582,-0.579,-0.577, - &-0.575,-0.572,-0.570,-0.567,-0.565,-0.563,-0.560,-0.558,-0.555, - &-0.553,-0.550,-0.548,-0.545,-0.543,-0.540,-0.538,-0.535,-0.533, - &-0.530,-0.528,-0.525,-0.523,-0.520,-0.518,-0.515,-0.513,-0.510, - &-0.508,-0.505,-0.503,-0.500,-0.498,-0.495,-0.493,-0.490,-0.487, - &-0.485,-0.482,-0.480,-0.477,-0.475,-0.472,-0.470,-0.467,-0.464, - &-0.462,-0.459,-0.457,-0.454,-0.451,-0.449,-0.446,-0.444,-0.441, - &-0.438,-0.436,-0.433,-0.431,-0.428,-0.425,-0.423,-0.420,-0.418, - &-0.415,-0.412,-0.410,-0.407,-0.404,-0.402,-0.399,-0.397,-0.394, - &-0.391,-0.389,-0.386,-0.383,-0.381,-0.378,-0.375,-0.373,-0.370, - &-0.367,-0.365,-0.362 - & /) -! -! *** (H,HSO4) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC08M_323 = (/ - &-0.043,-0.086,-0.105,-0.116,-0.123,-0.128,-0.131,-0.134,-0.135, - &-0.136,-0.136,-0.135,-0.134,-0.133,-0.131,-0.129,-0.127,-0.124, - &-0.122,-0.118,-0.115,-0.112,-0.108,-0.104,-0.100,-0.096,-0.092, - &-0.088,-0.083,-0.079,-0.074,-0.069,-0.064,-0.059,-0.054,-0.048, - &-0.043,-0.037,-0.032,-0.026,-0.021,-0.015,-0.009,-0.003, 0.003, - & 0.009, 0.015, 0.021, 0.027, 0.034, 0.040, 0.046, 0.053, 0.059, - & 0.066, 0.072, 0.079, 0.086, 0.092, 0.099, 0.106, 0.112, 0.119, - & 0.126, 0.133, 0.140, 0.147, 0.154, 0.161, 0.168, 0.175, 0.182, - & 0.189, 0.196, 0.204, 0.211, 0.218, 0.226, 0.233, 0.240, 0.248, - & 0.255, 0.263, 0.270, 0.278, 0.286, 0.293, 0.301, 0.309, 0.317, - & 0.324, 0.332, 0.340, 0.348, 0.356, 0.364, 0.372, 0.380, 0.389, - & 0.397, 0.405, 0.413, 0.421, 0.430, 0.438, 0.446, 0.455, 0.463, - & 0.471, 0.480, 0.488, 0.497, 0.505, 0.514, 0.522, 0.530, 0.539, - & 0.547, 0.556, 0.564, 0.573, 0.581, 0.590, 0.598, 0.607, 0.615, - & 0.624, 0.632, 0.641, 0.649, 0.658, 0.666, 0.675, 0.683, 0.692, - & 0.700, 0.708, 0.717, 0.725, 0.734, 0.742, 0.750, 0.759, 0.767, - & 0.775, 0.784, 0.792, 0.800, 0.808, 0.817, 0.825, 0.833, 0.841, - & 0.849, 0.858, 0.866, 0.874, 0.882, 0.890, 0.898, 0.906, 0.915, - & 0.923, 0.931, 0.939, 0.947, 0.955, 0.963, 0.971, 0.979, 0.986, - & 0.994, 1.002, 1.010, 1.018, 1.026, 1.034, 1.042, 1.049, 1.057, - & 1.065, 1.073, 1.080, 1.088, 1.096, 1.104, 1.111, 1.119, 1.127, - & 1.134, 1.142, 1.150, 1.157, 1.165, 1.172, 1.180, 1.187, 1.195, - & 1.202, 1.210, 1.217, 1.225, 1.232, 1.240, 1.247, 1.254, 1.262, - & 1.269, 1.276, 1.284, 1.291, 1.298, 1.306, 1.313, 1.320, 1.327, - & 1.335, 1.342, 1.349, 1.356, 1.363, 1.371, 1.378, 1.385, 1.392, - & 1.399, 1.406, 1.413, 1.420, 1.427, 1.434, 1.441, 1.448, 1.455, - & 1.462, 1.469, 1.476, 1.483, 1.490, 1.497, 1.504, 1.510, 1.517, - & 1.524, 1.531, 1.538, 1.545, 1.551, 1.558, 1.565, 1.572, 1.578, - & 1.585, 1.592, 1.598, 1.605, 1.612, 1.618, 1.625, 1.632, 1.638, - & 1.645, 1.651, 1.658, 1.664, 1.671, 1.678, 1.684, 1.691, 1.697, - & 1.704, 1.710, 1.716, 1.723, 1.729, 1.736, 1.742, 1.749, 1.755, - & 1.761, 1.768, 1.774, 1.780, 1.787, 1.793, 1.799, 1.805, 1.812, - & 1.818, 1.824, 1.830, 1.837, 1.843, 1.849, 1.855, 1.861, 1.868, - & 1.874, 1.880, 1.886, 1.892, 1.898, 1.904, 1.910, 1.916, 1.923, - & 1.929, 1.935, 1.941, 1.947, 1.953, 1.959, 1.965, 1.971, 1.977, - & 1.983, 1.988, 1.994, 2.000, 2.006, 2.012, 2.018, 2.024, 2.030, - & 2.036, 2.041, 2.047, 2.053, 2.059, 2.065, 2.070, 2.076, 2.082, - & 2.088, 2.094, 2.099, 2.105, 2.111, 2.116, 2.122, 2.128, 2.134, - & 2.139, 2.145, 2.150, 2.156, 2.162, 2.167, 2.173, 2.179, 2.184, - & 2.190, 2.195, 2.201, 2.206, 2.212, 2.218, 2.223, 2.229, 2.234, - & 2.240, 2.245, 2.251, 2.256, 2.261, 2.267, 2.272, 2.278, 2.283, - & 2.289, 2.294, 2.299, 2.305, 2.310, 2.316, 2.321, 2.326, 2.332, - & 2.337, 2.342, 2.348, 2.353, 2.358, 2.364, 2.369, 2.374, 2.379, - & 2.385, 2.390, 2.395, 2.400, 2.406, 2.411, 2.416, 2.421, 2.426, - & 2.432, 2.437, 2.442, 2.447, 2.502, 2.553, 2.602, 2.651, 2.699, - & 2.746, 2.793, 2.839, 2.884, 2.929, 2.973, 3.017, 3.060, 3.102, - & 3.144, 3.186, 3.227, 3.267, 3.307, 3.346, 3.385, 3.424, 3.462, - & 3.499, 3.536, 3.573, 3.610, 3.646, 3.681, 3.716, 3.751, 3.786, - & 3.820, 3.854, 3.887, 3.920, 3.953, 3.985, 4.018, 4.049, 4.081, - & 4.112, 4.143, 4.174, 4.204, 4.234, 4.264, 4.294, 4.323, 4.352, - & 4.381, 4.410, 4.438, 4.466, 4.494, 4.522, 4.549, 4.577, 4.604, - & 4.630, 4.657, 4.683, 4.710, 4.736, 4.761, 4.787, 4.812, 4.838, - & 4.863, 4.888, 4.912, 4.937, 4.961, 4.985, 5.009, 5.033, 5.057, - & 5.080, 5.104, 5.127, 5.150, 5.173, 5.196, 5.218, 5.241, 5.263, - & 5.285, 5.307, 5.329, 5.351, 5.372, 5.394, 5.415, 5.436, 5.457, - & 5.478, 5.499, 5.520, 5.541, 5.561, 5.581, 5.602, 5.622, 5.642, - & 5.662, 5.682, 5.701, 5.721, 5.740, 5.760, 5.779, 5.798, 5.817, - & 5.836, 5.855, 5.874, 5.892, 5.911, 5.929, 5.948, 5.966, 5.984, - & 6.002, 6.020, 6.038, 6.056, 6.074, 6.092, 6.109, 6.127, 6.144, - & 6.161, 6.179, 6.196, 6.213, 6.230, 6.247, 6.264, 6.280, 6.297, - & 6.314, 6.330, 6.347, 6.363, 6.379, 6.396, 6.412, 6.428, 6.444, - & 6.460, 6.476, 6.492, 6.507, 6.523, 6.539, 6.554, 6.570, 6.585, - & 6.600, 6.616, 6.631 - & /) -! -! *** NH4HSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC09M_323 = (/ - &-0.045,-0.095,-0.119,-0.135,-0.147,-0.157,-0.166,-0.173,-0.179, - &-0.184,-0.189,-0.193,-0.196,-0.200,-0.203,-0.205,-0.208,-0.210, - &-0.212,-0.213,-0.215,-0.216,-0.217,-0.218,-0.219,-0.219,-0.220, - &-0.220,-0.221,-0.221,-0.221,-0.221,-0.221,-0.221,-0.220,-0.220, - &-0.219,-0.219,-0.218,-0.217,-0.217,-0.216,-0.215,-0.214,-0.213, - &-0.212,-0.211,-0.210,-0.208,-0.207,-0.206,-0.204,-0.203,-0.201, - &-0.200,-0.198,-0.197,-0.195,-0.193,-0.192,-0.190,-0.188,-0.186, - &-0.185,-0.183,-0.181,-0.179,-0.177,-0.175,-0.173,-0.171,-0.169, - &-0.167,-0.165,-0.162,-0.160,-0.158,-0.156,-0.154,-0.151,-0.149, - &-0.147,-0.144,-0.142,-0.140,-0.137,-0.135,-0.132,-0.130,-0.127, - &-0.125,-0.122,-0.120,-0.117,-0.115,-0.112,-0.109,-0.107,-0.104, - &-0.101,-0.099,-0.096,-0.093,-0.091,-0.088,-0.085,-0.082,-0.079, - &-0.077,-0.074,-0.071,-0.068,-0.065,-0.063,-0.060,-0.057,-0.054, - &-0.051,-0.048,-0.046,-0.043,-0.040,-0.037,-0.034,-0.031,-0.028, - &-0.025,-0.023,-0.020,-0.017,-0.014,-0.011,-0.008,-0.005,-0.003, - & 0.000, 0.003, 0.006, 0.009, 0.012, 0.014, 0.017, 0.020, 0.023, - & 0.026, 0.029, 0.031, 0.034, 0.037, 0.040, 0.043, 0.045, 0.048, - & 0.051, 0.054, 0.057, 0.059, 0.062, 0.065, 0.068, 0.070, 0.073, - & 0.076, 0.079, 0.081, 0.084, 0.087, 0.089, 0.092, 0.095, 0.098, - & 0.100, 0.103, 0.106, 0.108, 0.111, 0.114, 0.116, 0.119, 0.122, - & 0.124, 0.127, 0.130, 0.132, 0.135, 0.137, 0.140, 0.143, 0.145, - & 0.148, 0.150, 0.153, 0.156, 0.158, 0.161, 0.163, 0.166, 0.168, - & 0.171, 0.174, 0.176, 0.179, 0.181, 0.184, 0.186, 0.189, 0.191, - & 0.194, 0.196, 0.199, 0.201, 0.204, 0.206, 0.209, 0.211, 0.214, - & 0.216, 0.219, 0.221, 0.223, 0.226, 0.228, 0.231, 0.233, 0.236, - & 0.238, 0.240, 0.243, 0.245, 0.248, 0.250, 0.252, 0.255, 0.257, - & 0.260, 0.262, 0.264, 0.267, 0.269, 0.271, 0.274, 0.276, 0.278, - & 0.281, 0.283, 0.285, 0.288, 0.290, 0.292, 0.295, 0.297, 0.299, - & 0.302, 0.304, 0.306, 0.308, 0.311, 0.313, 0.315, 0.317, 0.320, - & 0.322, 0.324, 0.326, 0.329, 0.331, 0.333, 0.335, 0.338, 0.340, - & 0.342, 0.344, 0.346, 0.349, 0.351, 0.353, 0.355, 0.357, 0.360, - & 0.362, 0.364, 0.366, 0.368, 0.371, 0.373, 0.375, 0.377, 0.379, - & 0.381, 0.383, 0.386, 0.388, 0.390, 0.392, 0.394, 0.396, 0.398, - & 0.400, 0.403, 0.405, 0.407, 0.409, 0.411, 0.413, 0.415, 0.417, - & 0.419, 0.421, 0.423, 0.426, 0.428, 0.430, 0.432, 0.434, 0.436, - & 0.438, 0.440, 0.442, 0.444, 0.446, 0.448, 0.450, 0.452, 0.454, - & 0.456, 0.458, 0.460, 0.462, 0.464, 0.466, 0.468, 0.470, 0.472, - & 0.474, 0.476, 0.478, 0.480, 0.482, 0.484, 0.486, 0.488, 0.490, - & 0.492, 0.494, 0.496, 0.498, 0.500, 0.502, 0.504, 0.506, 0.508, - & 0.510, 0.511, 0.513, 0.515, 0.517, 0.519, 0.521, 0.523, 0.525, - & 0.527, 0.529, 0.531, 0.533, 0.534, 0.536, 0.538, 0.540, 0.542, - & 0.544, 0.546, 0.548, 0.549, 0.551, 0.553, 0.555, 0.557, 0.559, - & 0.561, 0.563, 0.564, 0.566, 0.568, 0.570, 0.572, 0.574, 0.575, - & 0.577, 0.579, 0.581, 0.583, 0.585, 0.586, 0.588, 0.590, 0.592, - & 0.594, 0.595, 0.597, 0.599, 0.618, 0.636, 0.653, 0.670, 0.687, - & 0.704, 0.721, 0.737, 0.753, 0.769, 0.784, 0.800, 0.815, 0.830, - & 0.845, 0.860, 0.875, 0.889, 0.904, 0.918, 0.932, 0.946, 0.959, - & 0.973, 0.986, 1.000, 1.013, 1.026, 1.039, 1.052, 1.065, 1.077, - & 1.090, 1.102, 1.114, 1.126, 1.138, 1.150, 1.162, 1.174, 1.186, - & 1.197, 1.209, 1.220, 1.231, 1.242, 1.254, 1.265, 1.276, 1.286, - & 1.297, 1.308, 1.318, 1.329, 1.339, 1.350, 1.360, 1.370, 1.381, - & 1.391, 1.401, 1.411, 1.421, 1.430, 1.440, 1.450, 1.459, 1.469, - & 1.479, 1.488, 1.497, 1.507, 1.516, 1.525, 1.534, 1.544, 1.553, - & 1.562, 1.571, 1.579, 1.588, 1.597, 1.606, 1.615, 1.623, 1.632, - & 1.640, 1.649, 1.657, 1.666, 1.674, 1.683, 1.691, 1.699, 1.707, - & 1.715, 1.724, 1.732, 1.740, 1.748, 1.756, 1.764, 1.771, 1.779, - & 1.787, 1.795, 1.803, 1.810, 1.818, 1.826, 1.833, 1.841, 1.848, - & 1.856, 1.863, 1.871, 1.878, 1.885, 1.893, 1.900, 1.907, 1.915, - & 1.922, 1.929, 1.936, 1.943, 1.950, 1.957, 1.964, 1.971, 1.978, - & 1.985, 1.992, 1.999, 2.006, 2.013, 2.019, 2.026, 2.033, 2.040, - & 2.046, 2.053, 2.060, 2.066, 2.073, 2.079, 2.086, 2.093, 2.099, - & 2.105, 2.112, 2.118, 2.125, 2.131, 2.138, 2.144, 2.150, 2.156, - & 2.163, 2.169, 2.175 - & /) -! -! *** (H,NO3) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC10M_323 = (/ - &-0.044,-0.092,-0.113,-0.127,-0.137,-0.145,-0.151,-0.156,-0.160, - &-0.163,-0.165,-0.167,-0.169,-0.170,-0.171,-0.172,-0.172,-0.172, - &-0.172,-0.172,-0.172,-0.172,-0.171,-0.171,-0.170,-0.169,-0.168, - &-0.167,-0.166,-0.165,-0.164,-0.163,-0.162,-0.160,-0.159,-0.158, - &-0.156,-0.155,-0.153,-0.152,-0.151,-0.149,-0.147,-0.146,-0.144, - &-0.143,-0.141,-0.140,-0.138,-0.136,-0.135,-0.133,-0.131,-0.130, - &-0.128,-0.126,-0.125,-0.123,-0.121,-0.120,-0.118,-0.116,-0.114, - &-0.113,-0.111,-0.109,-0.107,-0.106,-0.104,-0.102,-0.100,-0.099, - &-0.097,-0.095,-0.093,-0.091,-0.089,-0.088,-0.086,-0.084,-0.082, - &-0.080,-0.078,-0.076,-0.074,-0.072,-0.070,-0.068,-0.066,-0.064, - &-0.062,-0.060,-0.058,-0.056,-0.054,-0.052,-0.050,-0.048,-0.045, - &-0.043,-0.041,-0.039,-0.037,-0.035,-0.032,-0.030,-0.028,-0.026, - &-0.024,-0.021,-0.019,-0.017,-0.015,-0.012,-0.010,-0.008,-0.006, - &-0.003,-0.001, 0.001, 0.004, 0.006, 0.008, 0.010, 0.013, 0.015, - & 0.017, 0.020, 0.022, 0.024, 0.027, 0.029, 0.031, 0.033, 0.036, - & 0.038, 0.040, 0.043, 0.045, 0.047, 0.049, 0.052, 0.054, 0.056, - & 0.059, 0.061, 0.063, 0.066, 0.068, 0.070, 0.072, 0.075, 0.077, - & 0.079, 0.081, 0.084, 0.086, 0.088, 0.091, 0.093, 0.095, 0.097, - & 0.100, 0.102, 0.104, 0.106, 0.109, 0.111, 0.113, 0.115, 0.118, - & 0.120, 0.122, 0.124, 0.127, 0.129, 0.131, 0.133, 0.135, 0.138, - & 0.140, 0.142, 0.144, 0.147, 0.149, 0.151, 0.153, 0.155, 0.158, - & 0.160, 0.162, 0.164, 0.166, 0.169, 0.171, 0.173, 0.175, 0.177, - & 0.179, 0.182, 0.184, 0.186, 0.188, 0.190, 0.192, 0.195, 0.197, - & 0.199, 0.201, 0.203, 0.205, 0.207, 0.210, 0.212, 0.214, 0.216, - & 0.218, 0.220, 0.222, 0.224, 0.227, 0.229, 0.231, 0.233, 0.235, - & 0.237, 0.239, 0.241, 0.243, 0.245, 0.248, 0.250, 0.252, 0.254, - & 0.256, 0.258, 0.260, 0.262, 0.264, 0.266, 0.268, 0.270, 0.272, - & 0.274, 0.276, 0.278, 0.281, 0.283, 0.285, 0.287, 0.289, 0.291, - & 0.293, 0.295, 0.297, 0.299, 0.301, 0.303, 0.305, 0.307, 0.309, - & 0.311, 0.313, 0.315, 0.317, 0.319, 0.321, 0.323, 0.325, 0.327, - & 0.329, 0.331, 0.333, 0.335, 0.337, 0.339, 0.341, 0.343, 0.344, - & 0.346, 0.348, 0.350, 0.352, 0.354, 0.356, 0.358, 0.360, 0.362, - & 0.364, 0.366, 0.368, 0.370, 0.372, 0.373, 0.375, 0.377, 0.379, - & 0.381, 0.383, 0.385, 0.387, 0.389, 0.391, 0.393, 0.394, 0.396, - & 0.398, 0.400, 0.402, 0.404, 0.406, 0.408, 0.409, 0.411, 0.413, - & 0.415, 0.417, 0.419, 0.421, 0.422, 0.424, 0.426, 0.428, 0.430, - & 0.432, 0.433, 0.435, 0.437, 0.439, 0.441, 0.443, 0.444, 0.446, - & 0.448, 0.450, 0.452, 0.454, 0.455, 0.457, 0.459, 0.461, 0.463, - & 0.464, 0.466, 0.468, 0.470, 0.471, 0.473, 0.475, 0.477, 0.479, - & 0.480, 0.482, 0.484, 0.486, 0.487, 0.489, 0.491, 0.493, 0.494, - & 0.496, 0.498, 0.500, 0.501, 0.503, 0.505, 0.507, 0.508, 0.510, - & 0.512, 0.514, 0.515, 0.517, 0.519, 0.521, 0.522, 0.524, 0.526, - & 0.527, 0.529, 0.531, 0.533, 0.534, 0.536, 0.538, 0.539, 0.541, - & 0.543, 0.544, 0.546, 0.548, 0.549, 0.551, 0.553, 0.554, 0.556, - & 0.558, 0.560, 0.561, 0.563, 0.581, 0.597, 0.613, 0.629, 0.645, - & 0.660, 0.676, 0.691, 0.706, 0.721, 0.736, 0.750, 0.765, 0.779, - & 0.793, 0.807, 0.820, 0.834, 0.848, 0.861, 0.874, 0.887, 0.900, - & 0.913, 0.926, 0.938, 0.951, 0.963, 0.975, 0.987, 0.999, 1.011, - & 1.023, 1.035, 1.046, 1.058, 1.069, 1.081, 1.092, 1.103, 1.114, - & 1.125, 1.136, 1.147, 1.157, 1.168, 1.178, 1.189, 1.199, 1.210, - & 1.220, 1.230, 1.240, 1.250, 1.260, 1.270, 1.279, 1.289, 1.299, - & 1.308, 1.318, 1.327, 1.337, 1.346, 1.355, 1.365, 1.374, 1.383, - & 1.392, 1.401, 1.410, 1.419, 1.427, 1.436, 1.445, 1.454, 1.462, - & 1.471, 1.479, 1.488, 1.496, 1.504, 1.513, 1.521, 1.529, 1.537, - & 1.546, 1.554, 1.562, 1.570, 1.578, 1.586, 1.593, 1.601, 1.609, - & 1.617, 1.624, 1.632, 1.640, 1.647, 1.655, 1.662, 1.670, 1.677, - & 1.685, 1.692, 1.700, 1.707, 1.714, 1.721, 1.729, 1.736, 1.743, - & 1.750, 1.757, 1.764, 1.771, 1.778, 1.785, 1.792, 1.799, 1.806, - & 1.813, 1.820, 1.826, 1.833, 1.840, 1.847, 1.853, 1.860, 1.866, - & 1.873, 1.880, 1.886, 1.893, 1.899, 1.906, 1.912, 1.918, 1.925, - & 1.931, 1.938, 1.944, 1.950, 1.956, 1.963, 1.969, 1.975, 1.981, - & 1.987, 1.994, 2.000, 2.006, 2.012, 2.018, 2.024, 2.030, 2.036, - & 2.042, 2.048, 2.054 - & /) -! -! *** (H,Cl) -! - Real(kind=fp), Parameter, Dimension(561) :: BNC11M_323 = (/ - &-0.043,-0.087,-0.106,-0.117,-0.124,-0.130,-0.133,-0.135,-0.137, - &-0.138,-0.138,-0.137,-0.136,-0.135,-0.134,-0.132,-0.130,-0.127, - &-0.125,-0.122,-0.119,-0.116,-0.113,-0.110,-0.107,-0.103,-0.099, - &-0.096,-0.092,-0.088,-0.084,-0.080,-0.076,-0.071,-0.067,-0.063, - &-0.058,-0.054,-0.049,-0.045,-0.040,-0.036,-0.031,-0.027,-0.022, - &-0.017,-0.012,-0.008,-0.003, 0.002, 0.007, 0.012, 0.017, 0.022, - & 0.027, 0.031, 0.036, 0.041, 0.046, 0.051, 0.056, 0.061, 0.066, - & 0.071, 0.077, 0.082, 0.087, 0.092, 0.097, 0.102, 0.107, 0.113, - & 0.118, 0.123, 0.128, 0.134, 0.139, 0.144, 0.149, 0.155, 0.160, - & 0.166, 0.171, 0.177, 0.182, 0.188, 0.193, 0.199, 0.204, 0.210, - & 0.216, 0.221, 0.227, 0.233, 0.239, 0.244, 0.250, 0.256, 0.262, - & 0.268, 0.274, 0.280, 0.286, 0.292, 0.298, 0.304, 0.310, 0.316, - & 0.322, 0.328, 0.334, 0.340, 0.346, 0.352, 0.358, 0.364, 0.370, - & 0.377, 0.383, 0.389, 0.395, 0.401, 0.407, 0.413, 0.420, 0.426, - & 0.432, 0.438, 0.444, 0.450, 0.457, 0.463, 0.469, 0.475, 0.481, - & 0.487, 0.493, 0.499, 0.505, 0.512, 0.518, 0.524, 0.530, 0.536, - & 0.542, 0.548, 0.554, 0.560, 0.566, 0.572, 0.578, 0.584, 0.590, - & 0.596, 0.602, 0.608, 0.614, 0.620, 0.626, 0.632, 0.638, 0.643, - & 0.649, 0.655, 0.661, 0.667, 0.673, 0.679, 0.684, 0.690, 0.696, - & 0.702, 0.708, 0.713, 0.719, 0.725, 0.731, 0.737, 0.742, 0.748, - & 0.754, 0.759, 0.765, 0.771, 0.776, 0.782, 0.788, 0.793, 0.799, - & 0.805, 0.810, 0.816, 0.821, 0.827, 0.833, 0.838, 0.844, 0.849, - & 0.855, 0.860, 0.866, 0.871, 0.877, 0.882, 0.888, 0.893, 0.899, - & 0.904, 0.909, 0.915, 0.920, 0.926, 0.931, 0.936, 0.942, 0.947, - & 0.953, 0.958, 0.963, 0.969, 0.974, 0.979, 0.984, 0.990, 0.995, - & 1.000, 1.005, 1.011, 1.016, 1.021, 1.026, 1.032, 1.037, 1.042, - & 1.047, 1.052, 1.057, 1.062, 1.068, 1.073, 1.078, 1.083, 1.088, - & 1.093, 1.098, 1.103, 1.108, 1.113, 1.118, 1.123, 1.128, 1.133, - & 1.138, 1.143, 1.148, 1.153, 1.158, 1.163, 1.168, 1.173, 1.178, - & 1.183, 1.188, 1.193, 1.198, 1.202, 1.207, 1.212, 1.217, 1.222, - & 1.227, 1.232, 1.236, 1.241, 1.246, 1.251, 1.256, 1.260, 1.265, - & 1.270, 1.275, 1.279, 1.284, 1.289, 1.293, 1.298, 1.303, 1.307, - & 1.312, 1.317, 1.321, 1.326, 1.331, 1.335, 1.340, 1.345, 1.349, - & 1.354, 1.358, 1.363, 1.368, 1.372, 1.377, 1.381, 1.386, 1.390, - & 1.395, 1.399, 1.404, 1.408, 1.413, 1.417, 1.422, 1.426, 1.431, - & 1.435, 1.440, 1.444, 1.449, 1.453, 1.457, 1.462, 1.466, 1.471, - & 1.475, 1.479, 1.484, 1.488, 1.492, 1.497, 1.501, 1.506, 1.510, - & 1.514, 1.518, 1.523, 1.527, 1.531, 1.536, 1.540, 1.544, 1.548, - & 1.553, 1.557, 1.561, 1.565, 1.570, 1.574, 1.578, 1.582, 1.587, - & 1.591, 1.595, 1.599, 1.603, 1.607, 1.612, 1.616, 1.620, 1.624, - & 1.628, 1.632, 1.636, 1.640, 1.645, 1.649, 1.653, 1.657, 1.661, - & 1.665, 1.669, 1.673, 1.677, 1.681, 1.685, 1.689, 1.693, 1.697, - & 1.701, 1.705, 1.709, 1.713, 1.717, 1.721, 1.725, 1.729, 1.733, - & 1.737, 1.741, 1.745, 1.749, 1.753, 1.757, 1.761, 1.765, 1.769, - & 1.772, 1.776, 1.780, 1.784, 1.826, 1.864, 1.901, 1.938, 1.974, - & 2.010, 2.045, 2.080, 2.114, 2.148, 2.181, 2.214, 2.246, 2.278, - & 2.310, 2.341, 2.372, 2.403, 2.433, 2.463, 2.492, 2.522, 2.550, - & 2.579, 2.607, 2.635, 2.663, 2.690, 2.717, 2.744, 2.770, 2.796, - & 2.822, 2.848, 2.873, 2.898, 2.923, 2.948, 2.972, 2.996, 3.020, - & 3.044, 3.068, 3.091, 3.114, 3.137, 3.160, 3.182, 3.205, 3.227, - & 3.249, 3.271, 3.292, 3.314, 3.335, 3.356, 3.377, 3.398, 3.418, - & 3.439, 3.459, 3.479, 3.499, 3.519, 3.539, 3.558, 3.578, 3.597, - & 3.616, 3.635, 3.654, 3.673, 3.691, 3.710, 3.728, 3.746, 3.765, - & 3.783, 3.800, 3.818, 3.836, 3.853, 3.871, 3.888, 3.905, 3.922, - & 3.939, 3.956, 3.973, 3.990, 4.006, 4.023, 4.039, 4.055, 4.071, - & 4.088, 4.104, 4.119, 4.135, 4.151, 4.167, 4.182, 4.198, 4.213, - & 4.228, 4.243, 4.259, 4.274, 4.289, 4.304, 4.318, 4.333, 4.348, - & 4.362, 4.377, 4.391, 4.406, 4.420, 4.434, 4.448, 4.462, 4.476, - & 4.490, 4.504, 4.518, 4.532, 4.545, 4.559, 4.572, 4.586, 4.599, - & 4.613, 4.626, 4.639, 4.652, 4.665, 4.678, 4.691, 4.704, 4.717, - & 4.730, 4.743, 4.756, 4.768, 4.781, 4.793, 4.806, 4.818, 4.831, - & 4.843, 4.855, 4.867, 4.880, 4.892, 4.904, 4.916, 4.928, 4.940, - & 4.952, 4.964, 4.975 - & /) -! -! *** NaHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC12M_323 = (/ - &-0.044,-0.092,-0.113,-0.127,-0.138,-0.146,-0.152,-0.157,-0.162, - &-0.165,-0.168,-0.170,-0.172,-0.174,-0.175,-0.176,-0.176,-0.177, - &-0.177,-0.177,-0.176,-0.176,-0.176,-0.175,-0.174,-0.173,-0.172, - &-0.171,-0.169,-0.168,-0.167,-0.165,-0.163,-0.161,-0.160,-0.158, - &-0.156,-0.154,-0.151,-0.149,-0.147,-0.145,-0.142,-0.140,-0.137, - &-0.135,-0.132,-0.130,-0.127,-0.124,-0.122,-0.119,-0.116,-0.113, - &-0.110,-0.107,-0.104,-0.101,-0.098,-0.095,-0.092,-0.089,-0.086, - &-0.083,-0.080,-0.076,-0.073,-0.070,-0.067,-0.063,-0.060,-0.057, - &-0.053,-0.050,-0.046,-0.043,-0.039,-0.036,-0.032,-0.029,-0.025, - &-0.021,-0.018,-0.014,-0.010,-0.007,-0.003, 0.001, 0.005, 0.009, - & 0.012, 0.016, 0.020, 0.024, 0.028, 0.032, 0.036, 0.040, 0.044, - & 0.048, 0.052, 0.056, 0.060, 0.064, 0.068, 0.073, 0.077, 0.081, - & 0.085, 0.089, 0.093, 0.098, 0.102, 0.106, 0.110, 0.115, 0.119, - & 0.123, 0.127, 0.131, 0.136, 0.140, 0.144, 0.148, 0.153, 0.157, - & 0.161, 0.165, 0.170, 0.174, 0.178, 0.182, 0.187, 0.191, 0.195, - & 0.199, 0.204, 0.208, 0.212, 0.216, 0.220, 0.225, 0.229, 0.233, - & 0.237, 0.241, 0.245, 0.250, 0.254, 0.258, 0.262, 0.266, 0.270, - & 0.274, 0.279, 0.283, 0.287, 0.291, 0.295, 0.299, 0.303, 0.307, - & 0.311, 0.315, 0.319, 0.323, 0.327, 0.331, 0.335, 0.339, 0.343, - & 0.347, 0.351, 0.355, 0.359, 0.363, 0.367, 0.371, 0.375, 0.379, - & 0.383, 0.387, 0.391, 0.395, 0.399, 0.402, 0.406, 0.410, 0.414, - & 0.418, 0.422, 0.426, 0.429, 0.433, 0.437, 0.441, 0.445, 0.449, - & 0.452, 0.456, 0.460, 0.464, 0.467, 0.471, 0.475, 0.479, 0.482, - & 0.486, 0.490, 0.494, 0.497, 0.501, 0.505, 0.508, 0.512, 0.516, - & 0.519, 0.523, 0.527, 0.530, 0.534, 0.538, 0.541, 0.545, 0.548, - & 0.552, 0.556, 0.559, 0.563, 0.566, 0.570, 0.573, 0.577, 0.581, - & 0.584, 0.588, 0.591, 0.595, 0.598, 0.602, 0.605, 0.609, 0.612, - & 0.616, 0.619, 0.623, 0.626, 0.630, 0.633, 0.636, 0.640, 0.643, - & 0.647, 0.650, 0.654, 0.657, 0.660, 0.664, 0.667, 0.671, 0.674, - & 0.677, 0.681, 0.684, 0.687, 0.691, 0.694, 0.697, 0.701, 0.704, - & 0.707, 0.711, 0.714, 0.717, 0.721, 0.724, 0.727, 0.730, 0.734, - & 0.737, 0.740, 0.743, 0.747, 0.750, 0.753, 0.756, 0.760, 0.763, - & 0.766, 0.769, 0.773, 0.776, 0.779, 0.782, 0.785, 0.788, 0.792, - & 0.795, 0.798, 0.801, 0.804, 0.807, 0.811, 0.814, 0.817, 0.820, - & 0.823, 0.826, 0.829, 0.832, 0.835, 0.839, 0.842, 0.845, 0.848, - & 0.851, 0.854, 0.857, 0.860, 0.863, 0.866, 0.869, 0.872, 0.875, - & 0.878, 0.881, 0.884, 0.887, 0.890, 0.893, 0.896, 0.899, 0.902, - & 0.905, 0.908, 0.911, 0.914, 0.917, 0.920, 0.923, 0.926, 0.929, - & 0.932, 0.935, 0.938, 0.941, 0.944, 0.947, 0.949, 0.952, 0.955, - & 0.958, 0.961, 0.964, 0.967, 0.970, 0.973, 0.975, 0.978, 0.981, - & 0.984, 0.987, 0.990, 0.993, 0.995, 0.998, 1.001, 1.004, 1.007, - & 1.010, 1.012, 1.015, 1.018, 1.021, 1.024, 1.026, 1.029, 1.032, - & 1.035, 1.038, 1.040, 1.043, 1.046, 1.049, 1.051, 1.054, 1.057, - & 1.060, 1.062, 1.065, 1.068, 1.071, 1.073, 1.076, 1.079, 1.082, - & 1.084, 1.087, 1.090, 1.092, 1.121, 1.148, 1.174, 1.199, 1.225, - & 1.250, 1.274, 1.299, 1.323, 1.346, 1.370, 1.393, 1.416, 1.438, - & 1.461, 1.483, 1.504, 1.526, 1.547, 1.568, 1.589, 1.610, 1.630, - & 1.650, 1.670, 1.690, 1.710, 1.729, 1.748, 1.767, 1.786, 1.805, - & 1.823, 1.841, 1.860, 1.878, 1.895, 1.913, 1.930, 1.948, 1.965, - & 1.982, 1.999, 2.015, 2.032, 2.048, 2.065, 2.081, 2.097, 2.113, - & 2.129, 2.144, 2.160, 2.175, 2.191, 2.206, 2.221, 2.236, 2.251, - & 2.265, 2.280, 2.294, 2.309, 2.323, 2.337, 2.352, 2.366, 2.379, - & 2.393, 2.407, 2.421, 2.434, 2.448, 2.461, 2.474, 2.488, 2.501, - & 2.514, 2.527, 2.540, 2.552, 2.565, 2.578, 2.590, 2.603, 2.615, - & 2.628, 2.640, 2.652, 2.664, 2.676, 2.688, 2.700, 2.712, 2.724, - & 2.735, 2.747, 2.759, 2.770, 2.782, 2.793, 2.805, 2.816, 2.827, - & 2.838, 2.849, 2.860, 2.871, 2.882, 2.893, 2.904, 2.915, 2.926, - & 2.936, 2.947, 2.957, 2.968, 2.978, 2.989, 2.999, 3.010, 3.020, - & 3.030, 3.040, 3.050, 3.060, 3.070, 3.080, 3.090, 3.100, 3.110, - & 3.120, 3.130, 3.139, 3.149, 3.159, 3.168, 3.178, 3.188, 3.197, - & 3.206, 3.216, 3.225, 3.235, 3.244, 3.253, 3.262, 3.272, 3.281, - & 3.290, 3.299, 3.308, 3.317, 3.326, 3.335, 3.344, 3.353, 3.361, - & 3.370, 3.379, 3.388 - & /) -! -! *** (NH4)3H(SO4)2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC13M_323 = (/ - &-0.072,-0.156,-0.197,-0.226,-0.248,-0.266,-0.282,-0.295,-0.307, - &-0.317,-0.327,-0.336,-0.344,-0.351,-0.358,-0.364,-0.370,-0.375, - &-0.380,-0.385,-0.390,-0.394,-0.398,-0.402,-0.406,-0.409,-0.412, - &-0.415,-0.418,-0.421,-0.424,-0.426,-0.429,-0.431,-0.433,-0.435, - &-0.437,-0.439,-0.441,-0.442,-0.444,-0.446,-0.447,-0.449,-0.450, - &-0.451,-0.452,-0.453,-0.454,-0.456,-0.456,-0.457,-0.458,-0.459, - &-0.460,-0.461,-0.461,-0.462,-0.462,-0.463,-0.463,-0.464,-0.464, - &-0.465,-0.465,-0.465,-0.466,-0.466,-0.466,-0.467,-0.467,-0.467, - &-0.467,-0.467,-0.467,-0.467,-0.467,-0.467,-0.467,-0.467,-0.467, - &-0.467,-0.467,-0.467,-0.467,-0.467,-0.466,-0.466,-0.466,-0.466, - &-0.466,-0.465,-0.465,-0.465,-0.464,-0.464,-0.464,-0.463,-0.463, - &-0.463,-0.462,-0.462,-0.461,-0.461,-0.460,-0.460,-0.459,-0.459, - &-0.458,-0.458,-0.457,-0.457,-0.456,-0.456,-0.455,-0.455,-0.454, - &-0.454,-0.453,-0.452,-0.452,-0.451,-0.451,-0.450,-0.449,-0.449, - &-0.448,-0.447,-0.447,-0.446,-0.445,-0.445,-0.444,-0.443,-0.443, - &-0.442,-0.441,-0.441,-0.440,-0.439,-0.439,-0.438,-0.437,-0.437, - &-0.436,-0.435,-0.434,-0.434,-0.433,-0.432,-0.432,-0.431,-0.430, - &-0.429,-0.429,-0.428,-0.427,-0.427,-0.426,-0.425,-0.424,-0.424, - &-0.423,-0.422,-0.421,-0.421,-0.420,-0.419,-0.418,-0.418,-0.417, - &-0.416,-0.415,-0.415,-0.414,-0.413,-0.412,-0.412,-0.411,-0.410, - &-0.409,-0.409,-0.408,-0.407,-0.406,-0.406,-0.405,-0.404,-0.403, - &-0.403,-0.402,-0.401,-0.400,-0.400,-0.399,-0.398,-0.397,-0.397, - &-0.396,-0.395,-0.394,-0.394,-0.393,-0.392,-0.391,-0.391,-0.390, - &-0.389,-0.388,-0.388,-0.387,-0.386,-0.385,-0.385,-0.384,-0.383, - &-0.382,-0.381,-0.381,-0.380,-0.379,-0.378,-0.378,-0.377,-0.376, - &-0.375,-0.375,-0.374,-0.373,-0.372,-0.372,-0.371,-0.370,-0.369, - &-0.369,-0.368,-0.367,-0.366,-0.366,-0.365,-0.364,-0.363,-0.363, - &-0.362,-0.361,-0.360,-0.360,-0.359,-0.358,-0.357,-0.357,-0.356, - &-0.355,-0.354,-0.354,-0.353,-0.352,-0.351,-0.351,-0.350,-0.349, - &-0.348,-0.348,-0.347,-0.346,-0.345,-0.345,-0.344,-0.343,-0.342, - &-0.342,-0.341,-0.340,-0.339,-0.339,-0.338,-0.337,-0.336,-0.336, - &-0.335,-0.334,-0.333,-0.333,-0.332,-0.331,-0.331,-0.330,-0.329, - &-0.328,-0.328,-0.327,-0.326,-0.325,-0.325,-0.324,-0.323,-0.322, - &-0.322,-0.321,-0.320,-0.320,-0.319,-0.318,-0.317,-0.317,-0.316, - &-0.315,-0.314,-0.314,-0.313,-0.312,-0.312,-0.311,-0.310,-0.309, - &-0.309,-0.308,-0.307,-0.306,-0.306,-0.305,-0.304,-0.304,-0.303, - &-0.302,-0.301,-0.301,-0.300,-0.299,-0.299,-0.298,-0.297,-0.296, - &-0.296,-0.295,-0.294,-0.294,-0.293,-0.292,-0.291,-0.291,-0.290, - &-0.289,-0.289,-0.288,-0.287,-0.286,-0.286,-0.285,-0.284,-0.284, - &-0.283,-0.282,-0.281,-0.281,-0.280,-0.279,-0.279,-0.278,-0.277, - &-0.277,-0.276,-0.275,-0.274,-0.274,-0.273,-0.272,-0.272,-0.271, - &-0.270,-0.270,-0.269,-0.268,-0.267,-0.267,-0.266,-0.265,-0.265, - &-0.264,-0.263,-0.263,-0.262,-0.261,-0.261,-0.260,-0.259,-0.258, - &-0.258,-0.257,-0.256,-0.256,-0.255,-0.254,-0.254,-0.253,-0.252, - &-0.252,-0.251,-0.250,-0.250,-0.242,-0.235,-0.229,-0.222,-0.215, - &-0.209,-0.202,-0.196,-0.189,-0.183,-0.176,-0.170,-0.164,-0.157, - &-0.151,-0.145,-0.139,-0.133,-0.127,-0.121,-0.115,-0.109,-0.103, - &-0.097,-0.091,-0.085,-0.079,-0.073,-0.067,-0.062,-0.056,-0.050, - &-0.045,-0.039,-0.033,-0.028,-0.022,-0.017,-0.011,-0.006, 0.000, - & 0.005, 0.010, 0.016, 0.021, 0.026, 0.032, 0.037, 0.042, 0.048, - & 0.053, 0.058, 0.063, 0.068, 0.073, 0.079, 0.084, 0.089, 0.094, - & 0.099, 0.104, 0.109, 0.114, 0.119, 0.124, 0.129, 0.134, 0.138, - & 0.143, 0.148, 0.153, 0.158, 0.163, 0.167, 0.172, 0.177, 0.182, - & 0.186, 0.191, 0.196, 0.201, 0.205, 0.210, 0.215, 0.219, 0.224, - & 0.228, 0.233, 0.238, 0.242, 0.247, 0.251, 0.256, 0.260, 0.265, - & 0.269, 0.274, 0.278, 0.283, 0.287, 0.291, 0.296, 0.300, 0.305, - & 0.309, 0.313, 0.318, 0.322, 0.326, 0.331, 0.335, 0.339, 0.344, - & 0.348, 0.352, 0.357, 0.361, 0.365, 0.369, 0.374, 0.378, 0.382, - & 0.386, 0.390, 0.395, 0.399, 0.403, 0.407, 0.411, 0.415, 0.419, - & 0.424, 0.428, 0.432, 0.436, 0.440, 0.444, 0.448, 0.452, 0.456, - & 0.460, 0.464, 0.468, 0.472, 0.476, 0.480, 0.484, 0.488, 0.492, - & 0.496, 0.500, 0.504, 0.508, 0.512, 0.516, 0.520, 0.524, 0.528, - & 0.532, 0.536, 0.540 - & /) -! -! *** CASO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC14M_323 = (/ - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, - & 0.000, 0.000, 0.000 - & /) -! -! *** CANO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC15M_323 = (/ - &-0.090,-0.191,-0.239,-0.271,-0.296,-0.316,-0.332,-0.346,-0.358, - &-0.368,-0.378,-0.386,-0.393,-0.400,-0.405,-0.411,-0.416,-0.420, - &-0.424,-0.428,-0.431,-0.434,-0.437,-0.440,-0.442,-0.444,-0.446, - &-0.448,-0.450,-0.451,-0.453,-0.454,-0.455,-0.456,-0.457,-0.458, - &-0.459,-0.460,-0.460,-0.461,-0.461,-0.462,-0.462,-0.463,-0.463, - &-0.463,-0.463,-0.463,-0.464,-0.464,-0.464,-0.464,-0.464,-0.464, - &-0.464,-0.463,-0.463,-0.463,-0.463,-0.463,-0.462,-0.462,-0.462, - &-0.462,-0.461,-0.461,-0.460,-0.460,-0.460,-0.459,-0.459,-0.458, - &-0.458,-0.457,-0.457,-0.456,-0.455,-0.455,-0.454,-0.454,-0.453, - &-0.452,-0.451,-0.451,-0.450,-0.449,-0.448,-0.448,-0.447,-0.446, - &-0.445,-0.444,-0.443,-0.442,-0.441,-0.440,-0.439,-0.439,-0.438, - &-0.437,-0.435,-0.434,-0.433,-0.432,-0.431,-0.430,-0.429,-0.428, - &-0.427,-0.426,-0.425,-0.423,-0.422,-0.421,-0.420,-0.419,-0.417, - &-0.416,-0.415,-0.414,-0.413,-0.411,-0.410,-0.409,-0.408,-0.406, - &-0.405,-0.404,-0.403,-0.401,-0.400,-0.399,-0.398,-0.396,-0.395, - &-0.394,-0.392,-0.391,-0.390,-0.388,-0.387,-0.386,-0.385,-0.383, - &-0.382,-0.381,-0.379,-0.378,-0.377,-0.375,-0.374,-0.373,-0.371, - &-0.370,-0.369,-0.367,-0.366,-0.365,-0.363,-0.362,-0.361,-0.359, - &-0.358,-0.357,-0.355,-0.354,-0.353,-0.351,-0.350,-0.349,-0.347, - &-0.346,-0.345,-0.343,-0.342,-0.341,-0.339,-0.338,-0.337,-0.335, - &-0.334,-0.333,-0.331,-0.330,-0.328,-0.327,-0.326,-0.324,-0.323, - &-0.322,-0.320,-0.319,-0.318,-0.316,-0.315,-0.314,-0.312,-0.311, - &-0.310,-0.308,-0.307,-0.306,-0.304,-0.303,-0.301,-0.300,-0.299, - &-0.297,-0.296,-0.295,-0.293,-0.292,-0.291,-0.289,-0.288,-0.287, - &-0.285,-0.284,-0.283,-0.281,-0.280,-0.279,-0.277,-0.276,-0.275, - &-0.273,-0.272,-0.271,-0.269,-0.268,-0.267,-0.265,-0.264,-0.263, - &-0.261,-0.260,-0.259,-0.257,-0.256,-0.255,-0.253,-0.252,-0.251, - &-0.249,-0.248,-0.247,-0.245,-0.244,-0.243,-0.241,-0.240,-0.239, - &-0.237,-0.236,-0.235,-0.233,-0.232,-0.231,-0.230,-0.228,-0.227, - &-0.226,-0.224,-0.223,-0.222,-0.220,-0.219,-0.218,-0.216,-0.215, - &-0.214,-0.213,-0.211,-0.210,-0.209,-0.207,-0.206,-0.205,-0.203, - &-0.202,-0.201,-0.200,-0.198,-0.197,-0.196,-0.194,-0.193,-0.192, - &-0.191,-0.189,-0.188,-0.187,-0.185,-0.184,-0.183,-0.182,-0.180, - &-0.179,-0.178,-0.176,-0.175,-0.174,-0.173,-0.171,-0.170,-0.169, - &-0.167,-0.166,-0.165,-0.164,-0.162,-0.161,-0.160,-0.159,-0.157, - &-0.156,-0.155,-0.154,-0.152,-0.151,-0.150,-0.149,-0.147,-0.146, - &-0.145,-0.144,-0.142,-0.141,-0.140,-0.139,-0.137,-0.136,-0.135, - &-0.134,-0.132,-0.131,-0.130,-0.129,-0.127,-0.126,-0.125,-0.124, - &-0.122,-0.121,-0.120,-0.119,-0.117,-0.116,-0.115,-0.114,-0.113, - &-0.111,-0.110,-0.109,-0.108,-0.106,-0.105,-0.104,-0.103,-0.102, - &-0.100,-0.099,-0.098,-0.097,-0.095,-0.094,-0.093,-0.092,-0.091, - &-0.089,-0.088,-0.087,-0.086,-0.085,-0.083,-0.082,-0.081,-0.080, - &-0.079,-0.077,-0.076,-0.075,-0.074,-0.073,-0.071,-0.070,-0.069, - &-0.068,-0.067,-0.065,-0.064,-0.063,-0.062,-0.061,-0.059,-0.058, - &-0.057,-0.056,-0.055,-0.054,-0.041,-0.029,-0.018,-0.006, 0.005, - & 0.017, 0.028, 0.039, 0.050, 0.061, 0.072, 0.083, 0.094, 0.104, - & 0.115, 0.125, 0.136, 0.146, 0.156, 0.167, 0.177, 0.187, 0.197, - & 0.207, 0.217, 0.227, 0.236, 0.246, 0.256, 0.265, 0.275, 0.284, - & 0.294, 0.303, 0.312, 0.322, 0.331, 0.340, 0.349, 0.358, 0.367, - & 0.376, 0.385, 0.394, 0.403, 0.411, 0.420, 0.429, 0.437, 0.446, - & 0.455, 0.463, 0.472, 0.480, 0.488, 0.497, 0.505, 0.513, 0.521, - & 0.530, 0.538, 0.546, 0.554, 0.562, 0.570, 0.578, 0.586, 0.594, - & 0.602, 0.610, 0.617, 0.625, 0.633, 0.641, 0.648, 0.656, 0.664, - & 0.671, 0.679, 0.686, 0.694, 0.701, 0.709, 0.716, 0.723, 0.731, - & 0.738, 0.745, 0.753, 0.760, 0.767, 0.774, 0.782, 0.789, 0.796, - & 0.803, 0.810, 0.817, 0.824, 0.831, 0.838, 0.845, 0.852, 0.859, - & 0.866, 0.873, 0.880, 0.886, 0.893, 0.900, 0.907, 0.914, 0.920, - & 0.927, 0.934, 0.940, 0.947, 0.954, 0.960, 0.967, 0.973, 0.980, - & 0.987, 0.993, 1.000, 1.006, 1.013, 1.019, 1.025, 1.032, 1.038, - & 1.045, 1.051, 1.057, 1.064, 1.070, 1.076, 1.083, 1.089, 1.095, - & 1.101, 1.108, 1.114, 1.120, 1.126, 1.132, 1.139, 1.145, 1.151, - & 1.157, 1.163, 1.169, 1.175, 1.181, 1.187, 1.193, 1.199, 1.205, - & 1.211, 1.217, 1.223 - & /) -! -! *** CACL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC16M_323 = (/ - &-0.088,-0.184,-0.228,-0.256,-0.277,-0.293,-0.305,-0.315,-0.323, - &-0.330,-0.335,-0.340,-0.343,-0.346,-0.349,-0.350,-0.352,-0.353, - &-0.353,-0.353,-0.353,-0.353,-0.352,-0.352,-0.351,-0.349,-0.348, - &-0.347,-0.345,-0.343,-0.341,-0.339,-0.337,-0.335,-0.333,-0.331, - &-0.328,-0.326,-0.324,-0.321,-0.318,-0.316,-0.313,-0.311,-0.308, - &-0.305,-0.302,-0.299,-0.297,-0.294,-0.291,-0.288,-0.285,-0.282, - &-0.279,-0.276,-0.273,-0.270,-0.267,-0.264,-0.261,-0.258,-0.255, - &-0.252,-0.249,-0.246,-0.243,-0.239,-0.236,-0.233,-0.230,-0.227, - &-0.223,-0.220,-0.217,-0.214,-0.210,-0.207,-0.203,-0.200,-0.197, - &-0.193,-0.190,-0.186,-0.183,-0.179,-0.176,-0.172,-0.168,-0.165, - &-0.161,-0.158,-0.154,-0.150,-0.146,-0.143,-0.139,-0.135,-0.131, - &-0.127,-0.123,-0.119,-0.115,-0.111,-0.107,-0.103,-0.099,-0.095, - &-0.091,-0.087,-0.083,-0.079,-0.075,-0.071,-0.067,-0.063,-0.059, - &-0.055,-0.050,-0.046,-0.042,-0.038,-0.034,-0.030,-0.026,-0.021, - &-0.017,-0.013,-0.009,-0.005, 0.000, 0.004, 0.008, 0.012, 0.016, - & 0.020, 0.025, 0.029, 0.033, 0.037, 0.041, 0.046, 0.050, 0.054, - & 0.058, 0.062, 0.066, 0.071, 0.075, 0.079, 0.083, 0.087, 0.091, - & 0.095, 0.100, 0.104, 0.108, 0.112, 0.116, 0.120, 0.124, 0.128, - & 0.133, 0.137, 0.141, 0.145, 0.149, 0.153, 0.157, 0.161, 0.165, - & 0.169, 0.174, 0.178, 0.182, 0.186, 0.190, 0.194, 0.198, 0.202, - & 0.206, 0.210, 0.214, 0.218, 0.222, 0.226, 0.230, 0.234, 0.238, - & 0.242, 0.246, 0.250, 0.254, 0.258, 0.262, 0.266, 0.270, 0.274, - & 0.278, 0.282, 0.286, 0.290, 0.294, 0.298, 0.302, 0.306, 0.310, - & 0.314, 0.318, 0.321, 0.325, 0.329, 0.333, 0.337, 0.341, 0.345, - & 0.349, 0.353, 0.356, 0.360, 0.364, 0.368, 0.372, 0.376, 0.380, - & 0.383, 0.387, 0.391, 0.395, 0.399, 0.403, 0.406, 0.410, 0.414, - & 0.418, 0.422, 0.425, 0.429, 0.433, 0.437, 0.440, 0.444, 0.448, - & 0.452, 0.455, 0.459, 0.463, 0.467, 0.470, 0.474, 0.478, 0.482, - & 0.485, 0.489, 0.493, 0.496, 0.500, 0.504, 0.507, 0.511, 0.515, - & 0.518, 0.522, 0.526, 0.529, 0.533, 0.537, 0.540, 0.544, 0.548, - & 0.551, 0.555, 0.558, 0.562, 0.566, 0.569, 0.573, 0.576, 0.580, - & 0.584, 0.587, 0.591, 0.594, 0.598, 0.601, 0.605, 0.609, 0.612, - & 0.616, 0.619, 0.623, 0.626, 0.630, 0.633, 0.637, 0.640, 0.644, - & 0.647, 0.651, 0.654, 0.658, 0.661, 0.665, 0.668, 0.672, 0.675, - & 0.678, 0.682, 0.685, 0.689, 0.692, 0.696, 0.699, 0.703, 0.706, - & 0.709, 0.713, 0.716, 0.720, 0.723, 0.726, 0.730, 0.733, 0.737, - & 0.740, 0.743, 0.747, 0.750, 0.753, 0.757, 0.760, 0.763, 0.767, - & 0.770, 0.773, 0.777, 0.780, 0.783, 0.787, 0.790, 0.793, 0.797, - & 0.800, 0.803, 0.807, 0.810, 0.813, 0.816, 0.820, 0.823, 0.826, - & 0.829, 0.833, 0.836, 0.839, 0.842, 0.846, 0.849, 0.852, 0.855, - & 0.859, 0.862, 0.865, 0.868, 0.871, 0.875, 0.878, 0.881, 0.884, - & 0.887, 0.891, 0.894, 0.897, 0.900, 0.903, 0.906, 0.910, 0.913, - & 0.916, 0.919, 0.922, 0.925, 0.928, 0.932, 0.935, 0.938, 0.941, - & 0.944, 0.947, 0.950, 0.953, 0.957, 0.960, 0.963, 0.966, 0.969, - & 0.972, 0.975, 0.978, 0.981, 1.014, 1.044, 1.074, 1.103, 1.132, - & 1.161, 1.189, 1.218, 1.245, 1.273, 1.300, 1.327, 1.353, 1.380, - & 1.406, 1.431, 1.457, 1.482, 1.507, 1.532, 1.556, 1.580, 1.604, - & 1.628, 1.652, 1.675, 1.698, 1.721, 1.744, 1.766, 1.788, 1.811, - & 1.832, 1.854, 1.876, 1.897, 1.918, 1.939, 1.960, 1.981, 2.001, - & 2.022, 2.042, 2.062, 2.082, 2.101, 2.121, 2.140, 2.160, 2.179, - & 2.198, 2.217, 2.235, 2.254, 2.273, 2.291, 2.309, 2.327, 2.345, - & 2.363, 2.381, 2.398, 2.416, 2.433, 2.451, 2.468, 2.485, 2.502, - & 2.519, 2.535, 2.552, 2.569, 2.585, 2.601, 2.618, 2.634, 2.650, - & 2.666, 2.682, 2.698, 2.713, 2.729, 2.745, 2.760, 2.775, 2.791, - & 2.806, 2.821, 2.836, 2.851, 2.866, 2.881, 2.895, 2.910, 2.925, - & 2.939, 2.954, 2.968, 2.982, 2.997, 3.011, 3.025, 3.039, 3.053, - & 3.067, 3.081, 3.094, 3.108, 3.122, 3.135, 3.149, 3.162, 3.176, - & 3.189, 3.202, 3.216, 3.229, 3.242, 3.255, 3.268, 3.281, 3.294, - & 3.307, 3.319, 3.332, 3.345, 3.357, 3.370, 3.383, 3.395, 3.407, - & 3.420, 3.432, 3.444, 3.457, 3.469, 3.481, 3.493, 3.505, 3.517, - & 3.529, 3.541, 3.553, 3.565, 3.577, 3.588, 3.600, 3.612, 3.623, - & 3.635, 3.646, 3.658, 3.669, 3.681, 3.692, 3.704, 3.715, 3.726, - & 3.737, 3.748, 3.760 - & /) -! -! *** K2SO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC17M_323 = (/ - &-0.091,-0.197,-0.249,-0.286,-0.315,-0.339,-0.359,-0.377,-0.392, - &-0.406,-0.419,-0.431,-0.442,-0.452,-0.461,-0.470,-0.478,-0.486, - &-0.493,-0.500,-0.507,-0.513,-0.519,-0.525,-0.530,-0.535,-0.540, - &-0.545,-0.550,-0.554,-0.559,-0.563,-0.567,-0.571,-0.575,-0.579, - &-0.582,-0.586,-0.589,-0.592,-0.596,-0.599,-0.602,-0.605,-0.608, - &-0.611,-0.613,-0.616,-0.619,-0.621,-0.624,-0.626,-0.628,-0.631, - &-0.633,-0.635,-0.637,-0.640,-0.642,-0.644,-0.646,-0.648,-0.650, - &-0.652,-0.653,-0.655,-0.657,-0.659,-0.661,-0.662,-0.664,-0.666, - &-0.667,-0.669,-0.670,-0.672,-0.673,-0.675,-0.676,-0.678,-0.679, - &-0.681,-0.682,-0.683,-0.685,-0.686,-0.687,-0.689,-0.690,-0.691, - &-0.693,-0.694,-0.695,-0.696,-0.697,-0.699,-0.700,-0.701,-0.702, - &-0.703,-0.704,-0.705,-0.707,-0.708,-0.709,-0.710,-0.711,-0.712, - &-0.713,-0.714,-0.715,-0.716,-0.717,-0.718,-0.719,-0.720,-0.721, - &-0.722,-0.723,-0.724,-0.724,-0.725,-0.726,-0.727,-0.728,-0.729, - &-0.730,-0.731,-0.731,-0.732,-0.733,-0.734,-0.735,-0.735,-0.736, - &-0.737,-0.738,-0.738,-0.739,-0.740,-0.741,-0.741,-0.742,-0.743, - &-0.744,-0.744,-0.745,-0.746,-0.746,-0.747,-0.748,-0.748,-0.749, - &-0.750,-0.750,-0.751,-0.752,-0.752,-0.753,-0.754,-0.754,-0.755, - &-0.755,-0.756,-0.757,-0.757,-0.758,-0.758,-0.759,-0.759,-0.760, - &-0.761,-0.761,-0.762,-0.762,-0.763,-0.763,-0.764,-0.764,-0.765, - &-0.765,-0.766,-0.766,-0.767,-0.767,-0.768,-0.768,-0.769,-0.769, - &-0.770,-0.770,-0.771,-0.771,-0.772,-0.772,-0.772,-0.773,-0.773, - &-0.774,-0.774,-0.775,-0.775,-0.776,-0.776,-0.776,-0.777,-0.777, - &-0.778,-0.778,-0.778,-0.779,-0.779,-0.780,-0.780,-0.780,-0.781, - &-0.781,-0.781,-0.782,-0.782,-0.783,-0.783,-0.783,-0.784,-0.784, - &-0.784,-0.785,-0.785,-0.785,-0.786,-0.786,-0.786,-0.787,-0.787, - &-0.787,-0.788,-0.788,-0.788,-0.789,-0.789,-0.789,-0.790,-0.790, - &-0.790,-0.790,-0.791,-0.791,-0.791,-0.792,-0.792,-0.792,-0.793, - &-0.793,-0.793,-0.793,-0.794,-0.794,-0.794,-0.794,-0.795,-0.795, - &-0.795,-0.795,-0.796,-0.796,-0.796,-0.796,-0.797,-0.797,-0.797, - &-0.797,-0.798,-0.798,-0.798,-0.798,-0.799,-0.799,-0.799,-0.799, - &-0.800,-0.800,-0.800,-0.800,-0.800,-0.801,-0.801,-0.801,-0.801, - &-0.801,-0.802,-0.802,-0.802,-0.802,-0.802,-0.803,-0.803,-0.803, - &-0.803,-0.803,-0.804,-0.804,-0.804,-0.804,-0.804,-0.804,-0.805, - &-0.805,-0.805,-0.805,-0.805,-0.806,-0.806,-0.806,-0.806,-0.806, - &-0.806,-0.806,-0.807,-0.807,-0.807,-0.807,-0.807,-0.807,-0.808, - &-0.808,-0.808,-0.808,-0.808,-0.808,-0.808,-0.809,-0.809,-0.809, - &-0.809,-0.809,-0.809,-0.809,-0.810,-0.810,-0.810,-0.810,-0.810, - &-0.810,-0.810,-0.810,-0.810,-0.811,-0.811,-0.811,-0.811,-0.811, - &-0.811,-0.811,-0.811,-0.812,-0.812,-0.812,-0.812,-0.812,-0.812, - &-0.812,-0.812,-0.812,-0.812,-0.813,-0.813,-0.813,-0.813,-0.813, - &-0.813,-0.813,-0.813,-0.813,-0.813,-0.813,-0.814,-0.814,-0.814, - &-0.814,-0.814,-0.814,-0.814,-0.814,-0.814,-0.814,-0.814,-0.814, - &-0.814,-0.815,-0.815,-0.815,-0.815,-0.815,-0.815,-0.815,-0.815, - &-0.815,-0.815,-0.815,-0.815,-0.816,-0.816,-0.817,-0.817,-0.817, - &-0.817,-0.817,-0.817,-0.817,-0.817,-0.817,-0.817,-0.816,-0.816, - &-0.816,-0.815,-0.815,-0.814,-0.813,-0.813,-0.812,-0.811,-0.811, - &-0.810,-0.809,-0.808,-0.807,-0.806,-0.805,-0.804,-0.803,-0.802, - &-0.801,-0.800,-0.799,-0.797,-0.796,-0.795,-0.794,-0.792,-0.791, - &-0.790,-0.788,-0.787,-0.786,-0.784,-0.783,-0.781,-0.780,-0.778, - &-0.777,-0.775,-0.774,-0.772,-0.771,-0.769,-0.767,-0.766,-0.764, - &-0.762,-0.761,-0.759,-0.757,-0.756,-0.754,-0.752,-0.750,-0.749, - &-0.747,-0.745,-0.743,-0.741,-0.740,-0.738,-0.736,-0.734,-0.732, - &-0.730,-0.728,-0.727,-0.725,-0.723,-0.721,-0.719,-0.717,-0.715, - &-0.713,-0.711,-0.709,-0.707,-0.705,-0.703,-0.701,-0.699,-0.697, - &-0.695,-0.693,-0.691,-0.689,-0.687,-0.685,-0.683,-0.681,-0.678, - &-0.676,-0.674,-0.672,-0.670,-0.668,-0.666,-0.664,-0.661,-0.659, - &-0.657,-0.655,-0.653,-0.651,-0.648,-0.646,-0.644,-0.642,-0.640, - &-0.638,-0.635,-0.633,-0.631,-0.629,-0.626,-0.624,-0.622,-0.620, - &-0.618,-0.615,-0.613,-0.611,-0.609,-0.606,-0.604,-0.602,-0.599, - &-0.597,-0.595,-0.593,-0.590,-0.588,-0.586,-0.583,-0.581,-0.579, - &-0.577,-0.574,-0.572,-0.570,-0.567,-0.565,-0.563,-0.560,-0.558, - &-0.556,-0.553,-0.551 - & /) -! -! *** KHSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC18M_323 = (/ - &-0.045,-0.094,-0.118,-0.134,-0.147,-0.156,-0.165,-0.171,-0.177, - &-0.182,-0.187,-0.191,-0.195,-0.198,-0.200,-0.203,-0.205,-0.207, - &-0.209,-0.210,-0.212,-0.213,-0.214,-0.215,-0.215,-0.216,-0.216, - &-0.216,-0.217,-0.217,-0.217,-0.217,-0.216,-0.216,-0.216,-0.215, - &-0.214,-0.214,-0.213,-0.212,-0.211,-0.210,-0.209,-0.208,-0.207, - &-0.206,-0.205,-0.204,-0.202,-0.201,-0.199,-0.198,-0.196,-0.195, - &-0.193,-0.191,-0.190,-0.188,-0.186,-0.184,-0.183,-0.181,-0.179, - &-0.177,-0.175,-0.173,-0.171,-0.169,-0.167,-0.165,-0.163,-0.160, - &-0.158,-0.156,-0.154,-0.152,-0.149,-0.147,-0.145,-0.142,-0.140, - &-0.137,-0.135,-0.133,-0.130,-0.128,-0.125,-0.123,-0.120,-0.117, - &-0.115,-0.112,-0.109,-0.107,-0.104,-0.101,-0.099,-0.096,-0.093, - &-0.090,-0.088,-0.085,-0.082,-0.079,-0.076,-0.074,-0.071,-0.068, - &-0.065,-0.062,-0.059,-0.056,-0.053,-0.050,-0.047,-0.044,-0.042, - &-0.039,-0.036,-0.033,-0.030,-0.027,-0.024,-0.021,-0.018,-0.015, - &-0.012,-0.009,-0.006,-0.003, 0.000, 0.003, 0.006, 0.009, 0.012, - & 0.015, 0.018, 0.020, 0.023, 0.026, 0.029, 0.032, 0.035, 0.038, - & 0.041, 0.044, 0.047, 0.050, 0.053, 0.055, 0.058, 0.061, 0.064, - & 0.067, 0.070, 0.073, 0.076, 0.078, 0.081, 0.084, 0.087, 0.090, - & 0.093, 0.095, 0.098, 0.101, 0.104, 0.107, 0.109, 0.112, 0.115, - & 0.118, 0.121, 0.123, 0.126, 0.129, 0.132, 0.134, 0.137, 0.140, - & 0.143, 0.145, 0.148, 0.151, 0.153, 0.156, 0.159, 0.162, 0.164, - & 0.167, 0.170, 0.172, 0.175, 0.178, 0.180, 0.183, 0.186, 0.188, - & 0.191, 0.193, 0.196, 0.199, 0.201, 0.204, 0.206, 0.209, 0.212, - & 0.214, 0.217, 0.219, 0.222, 0.225, 0.227, 0.230, 0.232, 0.235, - & 0.237, 0.240, 0.242, 0.245, 0.247, 0.250, 0.252, 0.255, 0.257, - & 0.260, 0.262, 0.265, 0.267, 0.270, 0.272, 0.275, 0.277, 0.280, - & 0.282, 0.285, 0.287, 0.289, 0.292, 0.294, 0.297, 0.299, 0.302, - & 0.304, 0.306, 0.309, 0.311, 0.314, 0.316, 0.318, 0.321, 0.323, - & 0.325, 0.328, 0.330, 0.333, 0.335, 0.337, 0.340, 0.342, 0.344, - & 0.347, 0.349, 0.351, 0.354, 0.356, 0.358, 0.360, 0.363, 0.365, - & 0.367, 0.370, 0.372, 0.374, 0.376, 0.379, 0.381, 0.383, 0.386, - & 0.388, 0.390, 0.392, 0.395, 0.397, 0.399, 0.401, 0.403, 0.406, - & 0.408, 0.410, 0.412, 0.415, 0.417, 0.419, 0.421, 0.423, 0.425, - & 0.428, 0.430, 0.432, 0.434, 0.436, 0.439, 0.441, 0.443, 0.445, - & 0.447, 0.449, 0.451, 0.454, 0.456, 0.458, 0.460, 0.462, 0.464, - & 0.466, 0.468, 0.471, 0.473, 0.475, 0.477, 0.479, 0.481, 0.483, - & 0.485, 0.487, 0.489, 0.491, 0.494, 0.496, 0.498, 0.500, 0.502, - & 0.504, 0.506, 0.508, 0.510, 0.512, 0.514, 0.516, 0.518, 0.520, - & 0.522, 0.524, 0.526, 0.528, 0.530, 0.532, 0.534, 0.536, 0.538, - & 0.540, 0.542, 0.544, 0.546, 0.548, 0.550, 0.552, 0.554, 0.556, - & 0.558, 0.560, 0.562, 0.564, 0.566, 0.568, 0.570, 0.572, 0.574, - & 0.576, 0.578, 0.580, 0.582, 0.584, 0.585, 0.587, 0.589, 0.591, - & 0.593, 0.595, 0.597, 0.599, 0.601, 0.603, 0.605, 0.607, 0.608, - & 0.610, 0.612, 0.614, 0.616, 0.618, 0.620, 0.622, 0.623, 0.625, - & 0.627, 0.629, 0.631, 0.633, 0.653, 0.671, 0.689, 0.707, 0.724, - & 0.741, 0.758, 0.775, 0.792, 0.808, 0.824, 0.840, 0.856, 0.872, - & 0.887, 0.903, 0.918, 0.933, 0.947, 0.962, 0.977, 0.991, 1.005, - & 1.019, 1.033, 1.047, 1.060, 1.074, 1.087, 1.101, 1.114, 1.127, - & 1.140, 1.152, 1.165, 1.178, 1.190, 1.202, 1.215, 1.227, 1.239, - & 1.251, 1.262, 1.274, 1.286, 1.297, 1.309, 1.320, 1.332, 1.343, - & 1.354, 1.365, 1.376, 1.387, 1.397, 1.408, 1.419, 1.429, 1.440, - & 1.450, 1.461, 1.471, 1.481, 1.491, 1.501, 1.511, 1.521, 1.531, - & 1.541, 1.551, 1.561, 1.570, 1.580, 1.589, 1.599, 1.608, 1.617, - & 1.627, 1.636, 1.645, 1.654, 1.663, 1.672, 1.681, 1.690, 1.699, - & 1.708, 1.717, 1.726, 1.734, 1.743, 1.751, 1.760, 1.768, 1.777, - & 1.785, 1.794, 1.802, 1.810, 1.819, 1.827, 1.835, 1.843, 1.851, - & 1.859, 1.867, 1.875, 1.883, 1.891, 1.899, 1.907, 1.915, 1.922, - & 1.930, 1.938, 1.945, 1.953, 1.960, 1.968, 1.976, 1.983, 1.990, - & 1.998, 2.005, 2.013, 2.020, 2.027, 2.034, 2.042, 2.049, 2.056, - & 2.063, 2.070, 2.077, 2.084, 2.091, 2.098, 2.105, 2.112, 2.119, - & 2.126, 2.133, 2.140, 2.147, 2.154, 2.160, 2.167, 2.174, 2.180, - & 2.187, 2.194, 2.200, 2.207, 2.213, 2.220, 2.227, 2.233, 2.240, - & 2.246, 2.252, 2.259 - & /) -! -! *** KNO3 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC19M_323 = (/ - &-0.046,-0.105,-0.136,-0.159,-0.178,-0.194,-0.208,-0.221,-0.233, - &-0.244,-0.255,-0.265,-0.274,-0.283,-0.291,-0.299,-0.307,-0.315, - &-0.322,-0.329,-0.336,-0.342,-0.349,-0.355,-0.361,-0.367,-0.373, - &-0.379,-0.384,-0.390,-0.395,-0.400,-0.405,-0.410,-0.415,-0.420, - &-0.425,-0.430,-0.434,-0.439,-0.443,-0.447,-0.452,-0.456,-0.460, - &-0.464,-0.468,-0.472,-0.476,-0.480,-0.483,-0.487,-0.491,-0.494, - &-0.498,-0.501,-0.505,-0.508,-0.511,-0.515,-0.518,-0.521,-0.524, - &-0.528,-0.531,-0.534,-0.537,-0.540,-0.543,-0.546,-0.549,-0.552, - &-0.555,-0.557,-0.560,-0.563,-0.566,-0.569,-0.571,-0.574,-0.577, - &-0.580,-0.582,-0.585,-0.588,-0.590,-0.593,-0.596,-0.598,-0.601, - &-0.604,-0.606,-0.609,-0.611,-0.614,-0.616,-0.619,-0.622,-0.624, - &-0.627,-0.629,-0.632,-0.634,-0.637,-0.639,-0.641,-0.644,-0.646, - &-0.649,-0.651,-0.654,-0.656,-0.658,-0.661,-0.663,-0.666,-0.668, - &-0.670,-0.673,-0.675,-0.677,-0.679,-0.682,-0.684,-0.686,-0.688, - &-0.691,-0.693,-0.695,-0.697,-0.699,-0.702,-0.704,-0.706,-0.708, - &-0.710,-0.712,-0.714,-0.716,-0.718,-0.721,-0.723,-0.725,-0.727, - &-0.729,-0.731,-0.733,-0.735,-0.737,-0.739,-0.740,-0.742,-0.744, - &-0.746,-0.748,-0.750,-0.752,-0.754,-0.756,-0.757,-0.759,-0.761, - &-0.763,-0.765,-0.767,-0.768,-0.770,-0.772,-0.774,-0.775,-0.777, - &-0.779,-0.780,-0.782,-0.784,-0.786,-0.787,-0.789,-0.791,-0.792, - &-0.794,-0.796,-0.797,-0.799,-0.800,-0.802,-0.804,-0.805,-0.807, - &-0.808,-0.810,-0.811,-0.813,-0.814,-0.816,-0.817,-0.819,-0.820, - &-0.822,-0.823,-0.825,-0.826,-0.828,-0.829,-0.831,-0.832,-0.834, - &-0.835,-0.836,-0.838,-0.839,-0.841,-0.842,-0.843,-0.845,-0.846, - &-0.847,-0.849,-0.850,-0.851,-0.853,-0.854,-0.855,-0.857,-0.858, - &-0.859,-0.861,-0.862,-0.863,-0.864,-0.866,-0.867,-0.868,-0.869, - &-0.871,-0.872,-0.873,-0.874,-0.875,-0.877,-0.878,-0.879,-0.880, - &-0.881,-0.882,-0.884,-0.885,-0.886,-0.887,-0.888,-0.889,-0.890, - &-0.892,-0.893,-0.894,-0.895,-0.896,-0.897,-0.898,-0.899,-0.900, - &-0.901,-0.902,-0.904,-0.905,-0.906,-0.907,-0.908,-0.909,-0.910, - &-0.911,-0.912,-0.913,-0.914,-0.915,-0.916,-0.917,-0.918,-0.919, - &-0.920,-0.921,-0.922,-0.923,-0.924,-0.925,-0.926,-0.926,-0.927, - &-0.928,-0.929,-0.930,-0.931,-0.932,-0.933,-0.934,-0.935,-0.936, - &-0.936,-0.937,-0.938,-0.939,-0.940,-0.941,-0.942,-0.943,-0.943, - &-0.944,-0.945,-0.946,-0.947,-0.948,-0.948,-0.949,-0.950,-0.951, - &-0.952,-0.953,-0.953,-0.954,-0.955,-0.956,-0.957,-0.957,-0.958, - &-0.959,-0.960,-0.960,-0.961,-0.962,-0.963,-0.963,-0.964,-0.965, - &-0.966,-0.966,-0.967,-0.968,-0.969,-0.969,-0.970,-0.971,-0.971, - &-0.972,-0.973,-0.974,-0.974,-0.975,-0.976,-0.976,-0.977,-0.978, - &-0.978,-0.979,-0.980,-0.980,-0.981,-0.982,-0.982,-0.983,-0.984, - &-0.984,-0.985,-0.986,-0.986,-0.987,-0.988,-0.988,-0.989,-0.989, - &-0.990,-0.991,-0.991,-0.992,-0.992,-0.993,-0.994,-0.994,-0.995, - &-0.995,-0.996,-0.997,-0.997,-0.998,-0.998,-0.999,-1.000,-1.000, - &-1.001,-1.001,-1.002,-1.002,-1.003,-1.003,-1.004,-1.005,-1.005, - &-1.006,-1.006,-1.007,-1.007,-1.013,-1.018,-1.022,-1.027,-1.031, - &-1.035,-1.039,-1.042,-1.046,-1.049,-1.052,-1.055,-1.058,-1.060, - &-1.063,-1.065,-1.067,-1.069,-1.071,-1.073,-1.075,-1.076,-1.078, - &-1.079,-1.081,-1.082,-1.083,-1.084,-1.085,-1.086,-1.087,-1.088, - &-1.088,-1.089,-1.089,-1.090,-1.090,-1.091,-1.091,-1.091,-1.092, - &-1.092,-1.092,-1.092,-1.092,-1.092,-1.092,-1.092,-1.092,-1.092, - &-1.092,-1.091,-1.091,-1.091,-1.091,-1.090,-1.090,-1.090,-1.089, - &-1.089,-1.088,-1.088,-1.087,-1.087,-1.086,-1.085,-1.085,-1.084, - &-1.084,-1.083,-1.082,-1.082,-1.081,-1.080,-1.079,-1.079,-1.078, - &-1.077,-1.076,-1.075,-1.074,-1.074,-1.073,-1.072,-1.071,-1.070, - &-1.069,-1.068,-1.067,-1.066,-1.065,-1.064,-1.063,-1.062,-1.061, - &-1.060,-1.059,-1.058,-1.057,-1.056,-1.055,-1.054,-1.053,-1.052, - &-1.051,-1.050,-1.049,-1.047,-1.046,-1.045,-1.044,-1.043,-1.042, - &-1.041,-1.040,-1.038,-1.037,-1.036,-1.035,-1.034,-1.032,-1.031, - &-1.030,-1.029,-1.028,-1.026,-1.025,-1.024,-1.023,-1.022,-1.020, - &-1.019,-1.018,-1.017,-1.015,-1.014,-1.013,-1.012,-1.010,-1.009, - &-1.008,-1.007,-1.005,-1.004,-1.003,-1.001,-1.000,-0.999,-0.998, - &-0.996,-0.995,-0.994,-0.992,-0.991,-0.990,-0.989,-0.987,-0.986, - &-0.985,-0.983,-0.982 - & /) -! -! *** KCL -! - Real(kind=fp), Parameter, Dimension(561) :: BNC20M_323 = (/ - &-0.045,-0.095,-0.119,-0.136,-0.148,-0.158,-0.166,-0.173,-0.179, - &-0.184,-0.189,-0.193,-0.197,-0.200,-0.203,-0.206,-0.208,-0.210, - &-0.212,-0.214,-0.216,-0.217,-0.219,-0.220,-0.221,-0.222,-0.223, - &-0.224,-0.225,-0.226,-0.227,-0.227,-0.228,-0.229,-0.229,-0.229, - &-0.230,-0.230,-0.231,-0.231,-0.231,-0.231,-0.232,-0.232,-0.232, - &-0.232,-0.232,-0.232,-0.232,-0.232,-0.233,-0.233,-0.233,-0.232, - &-0.232,-0.232,-0.232,-0.232,-0.232,-0.232,-0.232,-0.232,-0.232, - &-0.232,-0.231,-0.231,-0.231,-0.231,-0.231,-0.230,-0.230,-0.230, - &-0.230,-0.229,-0.229,-0.229,-0.229,-0.228,-0.228,-0.228,-0.227, - &-0.227,-0.227,-0.226,-0.226,-0.226,-0.225,-0.225,-0.224,-0.224, - &-0.224,-0.223,-0.223,-0.222,-0.222,-0.221,-0.221,-0.220,-0.220, - &-0.219,-0.219,-0.218,-0.218,-0.217,-0.217,-0.216,-0.216,-0.215, - &-0.215,-0.214,-0.213,-0.213,-0.212,-0.212,-0.211,-0.211,-0.210, - &-0.209,-0.209,-0.208,-0.208,-0.207,-0.206,-0.206,-0.205,-0.205, - &-0.204,-0.203,-0.203,-0.202,-0.201,-0.201,-0.200,-0.200,-0.199, - &-0.198,-0.198,-0.197,-0.196,-0.196,-0.195,-0.194,-0.194,-0.193, - &-0.192,-0.192,-0.191,-0.191,-0.190,-0.189,-0.189,-0.188,-0.187, - &-0.187,-0.186,-0.185,-0.185,-0.184,-0.183,-0.183,-0.182,-0.181, - &-0.181,-0.180,-0.179,-0.179,-0.178,-0.177,-0.177,-0.176,-0.175, - &-0.175,-0.174,-0.173,-0.173,-0.172,-0.171,-0.171,-0.170,-0.169, - &-0.169,-0.168,-0.167,-0.167,-0.166,-0.165,-0.165,-0.164,-0.163, - &-0.163,-0.162,-0.161,-0.161,-0.160,-0.159,-0.159,-0.158,-0.157, - &-0.157,-0.156,-0.155,-0.155,-0.154,-0.153,-0.153,-0.152,-0.151, - &-0.151,-0.150,-0.149,-0.149,-0.148,-0.147,-0.147,-0.146,-0.145, - &-0.145,-0.144,-0.143,-0.143,-0.142,-0.141,-0.141,-0.140,-0.140, - &-0.139,-0.138,-0.138,-0.137,-0.136,-0.136,-0.135,-0.134,-0.134, - &-0.133,-0.132,-0.132,-0.131,-0.130,-0.130,-0.129,-0.128,-0.128, - &-0.127,-0.126,-0.126,-0.125,-0.124,-0.124,-0.123,-0.122,-0.122, - &-0.121,-0.120,-0.120,-0.119,-0.119,-0.118,-0.117,-0.117,-0.116, - &-0.115,-0.115,-0.114,-0.113,-0.113,-0.112,-0.111,-0.111,-0.110, - &-0.109,-0.109,-0.108,-0.108,-0.107,-0.106,-0.106,-0.105,-0.104, - &-0.104,-0.103,-0.102,-0.102,-0.101,-0.100,-0.100,-0.099,-0.099, - &-0.098,-0.097,-0.097,-0.096,-0.095,-0.095,-0.094,-0.093,-0.093, - &-0.092,-0.092,-0.091,-0.090,-0.090,-0.089,-0.088,-0.088,-0.087, - &-0.087,-0.086,-0.085,-0.085,-0.084,-0.083,-0.083,-0.082,-0.082, - &-0.081,-0.080,-0.080,-0.079,-0.078,-0.078,-0.077,-0.077,-0.076, - &-0.075,-0.075,-0.074,-0.073,-0.073,-0.072,-0.072,-0.071,-0.070, - &-0.070,-0.069,-0.069,-0.068,-0.067,-0.067,-0.066,-0.065,-0.065, - &-0.064,-0.064,-0.063,-0.062,-0.062,-0.061,-0.061,-0.060,-0.059, - &-0.059,-0.058,-0.058,-0.057,-0.056,-0.056,-0.055,-0.055,-0.054, - &-0.053,-0.053,-0.052,-0.051,-0.051,-0.050,-0.050,-0.049,-0.048, - &-0.048,-0.047,-0.047,-0.046,-0.046,-0.045,-0.044,-0.044,-0.043, - &-0.043,-0.042,-0.041,-0.041,-0.040,-0.040,-0.039,-0.038,-0.038, - &-0.037,-0.037,-0.036,-0.035,-0.035,-0.034,-0.034,-0.033,-0.032, - &-0.032,-0.031,-0.031,-0.030,-0.024,-0.018,-0.012,-0.007,-0.001, - & 0.005, 0.010, 0.016, 0.021, 0.027, 0.032, 0.037, 0.043, 0.048, - & 0.053, 0.058, 0.064, 0.069, 0.074, 0.079, 0.084, 0.089, 0.094, - & 0.099, 0.104, 0.109, 0.113, 0.118, 0.123, 0.128, 0.132, 0.137, - & 0.142, 0.146, 0.151, 0.156, 0.160, 0.165, 0.169, 0.174, 0.178, - & 0.183, 0.187, 0.191, 0.196, 0.200, 0.205, 0.209, 0.213, 0.217, - & 0.222, 0.226, 0.230, 0.234, 0.238, 0.242, 0.247, 0.251, 0.255, - & 0.259, 0.263, 0.267, 0.271, 0.275, 0.279, 0.283, 0.287, 0.291, - & 0.295, 0.298, 0.302, 0.306, 0.310, 0.314, 0.318, 0.321, 0.325, - & 0.329, 0.333, 0.337, 0.340, 0.344, 0.348, 0.351, 0.355, 0.359, - & 0.362, 0.366, 0.370, 0.373, 0.377, 0.380, 0.384, 0.387, 0.391, - & 0.394, 0.398, 0.401, 0.405, 0.408, 0.412, 0.415, 0.419, 0.422, - & 0.426, 0.429, 0.433, 0.436, 0.439, 0.443, 0.446, 0.449, 0.453, - & 0.456, 0.459, 0.463, 0.466, 0.469, 0.473, 0.476, 0.479, 0.482, - & 0.486, 0.489, 0.492, 0.495, 0.499, 0.502, 0.505, 0.508, 0.511, - & 0.514, 0.518, 0.521, 0.524, 0.527, 0.530, 0.533, 0.536, 0.540, - & 0.543, 0.546, 0.549, 0.552, 0.555, 0.558, 0.561, 0.564, 0.567, - & 0.570, 0.573, 0.576, 0.579, 0.582, 0.585, 0.588, 0.591, 0.594, - & 0.597, 0.600, 0.603 - & /) -! -! *** MGSO4 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC21M_323 = (/ - &-0.181,-0.389,-0.491,-0.562,-0.617,-0.661,-0.699,-0.732,-0.760, - &-0.786,-0.809,-0.829,-0.849,-0.866,-0.882,-0.897,-0.911,-0.924, - &-0.937,-0.948,-0.959,-0.969,-0.979,-0.988,-0.997,-1.006,-1.014, - &-1.021,-1.028,-1.035,-1.042,-1.048,-1.055,-1.061,-1.066,-1.072, - &-1.077,-1.082,-1.087,-1.092,-1.096,-1.100,-1.105,-1.109,-1.113, - &-1.117,-1.120,-1.124,-1.128,-1.131,-1.134,-1.137,-1.141,-1.144, - &-1.146,-1.149,-1.152,-1.155,-1.157,-1.160,-1.162,-1.165,-1.167, - &-1.169,-1.172,-1.174,-1.176,-1.178,-1.180,-1.182,-1.184,-1.186, - &-1.187,-1.189,-1.191,-1.192,-1.194,-1.196,-1.197,-1.199,-1.200, - &-1.202,-1.203,-1.204,-1.206,-1.207,-1.208,-1.209,-1.210,-1.211, - &-1.213,-1.214,-1.215,-1.216,-1.217,-1.218,-1.218,-1.219,-1.220, - &-1.221,-1.222,-1.223,-1.223,-1.224,-1.225,-1.225,-1.226,-1.227, - &-1.227,-1.228,-1.229,-1.229,-1.230,-1.230,-1.231,-1.231,-1.232, - &-1.232,-1.233,-1.233,-1.233,-1.234,-1.234,-1.235,-1.235,-1.235, - &-1.236,-1.236,-1.236,-1.236,-1.237,-1.237,-1.237,-1.237,-1.238, - &-1.238,-1.238,-1.238,-1.238,-1.239,-1.239,-1.239,-1.239,-1.239, - &-1.239,-1.239,-1.239,-1.239,-1.239,-1.240,-1.240,-1.240,-1.240, - &-1.240,-1.240,-1.240,-1.240,-1.240,-1.240,-1.240,-1.240,-1.240, - &-1.239,-1.239,-1.239,-1.239,-1.239,-1.239,-1.239,-1.239,-1.239, - &-1.239,-1.239,-1.238,-1.238,-1.238,-1.238,-1.238,-1.238,-1.238, - &-1.237,-1.237,-1.237,-1.237,-1.237,-1.237,-1.236,-1.236,-1.236, - &-1.236,-1.235,-1.235,-1.235,-1.235,-1.235,-1.234,-1.234,-1.234, - &-1.233,-1.233,-1.233,-1.233,-1.232,-1.232,-1.232,-1.232,-1.231, - &-1.231,-1.231,-1.230,-1.230,-1.230,-1.229,-1.229,-1.229,-1.228, - &-1.228,-1.228,-1.227,-1.227,-1.227,-1.226,-1.226,-1.226,-1.225, - &-1.225,-1.225,-1.224,-1.224,-1.223,-1.223,-1.223,-1.222,-1.222, - &-1.222,-1.221,-1.221,-1.220,-1.220,-1.220,-1.219,-1.219,-1.218, - &-1.218,-1.217,-1.217,-1.217,-1.216,-1.216,-1.215,-1.215,-1.214, - &-1.214,-1.214,-1.213,-1.213,-1.212,-1.212,-1.211,-1.211,-1.210, - &-1.210,-1.210,-1.209,-1.209,-1.208,-1.208,-1.207,-1.207,-1.206, - &-1.206,-1.205,-1.205,-1.204,-1.204,-1.203,-1.203,-1.202,-1.202, - &-1.201,-1.201,-1.200,-1.200,-1.199,-1.199,-1.198,-1.198,-1.197, - &-1.197,-1.196,-1.196,-1.195,-1.195,-1.194,-1.194,-1.193,-1.193, - &-1.192,-1.192,-1.191,-1.191,-1.190,-1.190,-1.189,-1.188,-1.188, - &-1.187,-1.187,-1.186,-1.186,-1.185,-1.185,-1.184,-1.184,-1.183, - &-1.182,-1.182,-1.181,-1.181,-1.180,-1.180,-1.179,-1.179,-1.178, - &-1.177,-1.177,-1.176,-1.176,-1.175,-1.175,-1.174,-1.174,-1.173, - &-1.172,-1.172,-1.171,-1.171,-1.170,-1.169,-1.169,-1.168,-1.168, - &-1.167,-1.167,-1.166,-1.165,-1.165,-1.164,-1.164,-1.163,-1.163, - &-1.162,-1.161,-1.161,-1.160,-1.160,-1.159,-1.158,-1.158,-1.157, - &-1.157,-1.156,-1.155,-1.155,-1.154,-1.154,-1.153,-1.152,-1.152, - &-1.151,-1.151,-1.150,-1.149,-1.149,-1.148,-1.148,-1.147,-1.146, - &-1.146,-1.145,-1.144,-1.144,-1.143,-1.143,-1.142,-1.141,-1.141, - &-1.140,-1.140,-1.139,-1.138,-1.138,-1.137,-1.136,-1.136,-1.135, - &-1.135,-1.134,-1.133,-1.133,-1.126,-1.120,-1.113,-1.107,-1.100, - &-1.094,-1.087,-1.080,-1.074,-1.067,-1.060,-1.054,-1.047,-1.040, - &-1.033,-1.027,-1.020,-1.013,-1.006,-0.999,-0.992,-0.985,-0.978, - &-0.971,-0.965,-0.958,-0.951,-0.944,-0.937,-0.930,-0.923,-0.916, - &-0.909,-0.902,-0.895,-0.888,-0.881,-0.874,-0.867,-0.860,-0.853, - &-0.846,-0.839,-0.832,-0.825,-0.818,-0.811,-0.804,-0.797,-0.790, - &-0.783,-0.776,-0.769,-0.762,-0.755,-0.748,-0.741,-0.734,-0.727, - &-0.720,-0.713,-0.706,-0.699,-0.692,-0.685,-0.678,-0.671,-0.664, - &-0.657,-0.650,-0.644,-0.637,-0.630,-0.623,-0.616,-0.609,-0.602, - &-0.595,-0.588,-0.581,-0.574,-0.567,-0.560,-0.554,-0.547,-0.540, - &-0.533,-0.526,-0.519,-0.512,-0.505,-0.498,-0.492,-0.485,-0.478, - &-0.471,-0.464,-0.457,-0.450,-0.444,-0.437,-0.430,-0.423,-0.416, - &-0.409,-0.403,-0.396,-0.389,-0.382,-0.375,-0.369,-0.362,-0.355, - &-0.348,-0.341,-0.335,-0.328,-0.321,-0.314,-0.308,-0.301,-0.294, - &-0.287,-0.280,-0.274,-0.267,-0.260,-0.254,-0.247,-0.240,-0.233, - &-0.227,-0.220,-0.213,-0.206,-0.200,-0.193,-0.186,-0.180,-0.173, - &-0.166,-0.160,-0.153,-0.146,-0.140,-0.133,-0.126,-0.119,-0.113, - &-0.106,-0.100,-0.093,-0.086,-0.080,-0.073,-0.066,-0.060,-0.053, - &-0.046,-0.040,-0.033 - & /) -! -! *** MGNO32 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC22M_323 = (/ - &-0.088,-0.185,-0.228,-0.257,-0.278,-0.294,-0.306,-0.317,-0.325, - &-0.332,-0.337,-0.342,-0.346,-0.349,-0.351,-0.353,-0.355,-0.356, - &-0.357,-0.357,-0.357,-0.357,-0.356,-0.356,-0.355,-0.354,-0.353, - &-0.352,-0.350,-0.349,-0.347,-0.345,-0.343,-0.341,-0.339,-0.337, - &-0.335,-0.333,-0.330,-0.328,-0.326,-0.323,-0.321,-0.318,-0.316, - &-0.313,-0.310,-0.308,-0.305,-0.302,-0.300,-0.297,-0.294,-0.291, - &-0.288,-0.286,-0.283,-0.280,-0.277,-0.274,-0.271,-0.268,-0.266, - &-0.263,-0.260,-0.257,-0.254,-0.251,-0.248,-0.245,-0.242,-0.239, - &-0.235,-0.232,-0.229,-0.226,-0.223,-0.220,-0.216,-0.213,-0.210, - &-0.207,-0.203,-0.200,-0.197,-0.193,-0.190,-0.186,-0.183,-0.180, - &-0.176,-0.173,-0.169,-0.165,-0.162,-0.158,-0.155,-0.151,-0.147, - &-0.143,-0.140,-0.136,-0.132,-0.128,-0.125,-0.121,-0.117,-0.113, - &-0.109,-0.105,-0.101,-0.098,-0.094,-0.090,-0.086,-0.082,-0.078, - &-0.074,-0.070,-0.066,-0.062,-0.058,-0.054,-0.050,-0.046,-0.042, - &-0.038,-0.034,-0.030,-0.026,-0.022,-0.018,-0.014,-0.010,-0.006, - &-0.002, 0.002, 0.006, 0.010, 0.014, 0.018, 0.022, 0.026, 0.030, - & 0.034, 0.038, 0.042, 0.046, 0.050, 0.054, 0.058, 0.062, 0.066, - & 0.070, 0.074, 0.078, 0.082, 0.086, 0.090, 0.094, 0.098, 0.102, - & 0.106, 0.110, 0.114, 0.118, 0.122, 0.126, 0.130, 0.134, 0.137, - & 0.141, 0.145, 0.149, 0.153, 0.157, 0.161, 0.165, 0.169, 0.173, - & 0.177, 0.180, 0.184, 0.188, 0.192, 0.196, 0.200, 0.204, 0.207, - & 0.211, 0.215, 0.219, 0.223, 0.227, 0.231, 0.234, 0.238, 0.242, - & 0.246, 0.250, 0.253, 0.257, 0.261, 0.265, 0.269, 0.272, 0.276, - & 0.280, 0.284, 0.288, 0.291, 0.295, 0.299, 0.303, 0.306, 0.310, - & 0.314, 0.318, 0.321, 0.325, 0.329, 0.332, 0.336, 0.340, 0.343, - & 0.347, 0.351, 0.355, 0.358, 0.362, 0.366, 0.369, 0.373, 0.377, - & 0.380, 0.384, 0.388, 0.391, 0.395, 0.398, 0.402, 0.406, 0.409, - & 0.413, 0.417, 0.420, 0.424, 0.427, 0.431, 0.435, 0.438, 0.442, - & 0.445, 0.449, 0.452, 0.456, 0.459, 0.463, 0.467, 0.470, 0.474, - & 0.477, 0.481, 0.484, 0.488, 0.491, 0.495, 0.498, 0.502, 0.505, - & 0.509, 0.512, 0.516, 0.519, 0.523, 0.526, 0.530, 0.533, 0.537, - & 0.540, 0.543, 0.547, 0.550, 0.554, 0.557, 0.561, 0.564, 0.567, - & 0.571, 0.574, 0.578, 0.581, 0.584, 0.588, 0.591, 0.595, 0.598, - & 0.601, 0.605, 0.608, 0.611, 0.615, 0.618, 0.621, 0.625, 0.628, - & 0.631, 0.635, 0.638, 0.641, 0.645, 0.648, 0.651, 0.655, 0.658, - & 0.661, 0.665, 0.668, 0.671, 0.674, 0.678, 0.681, 0.684, 0.687, - & 0.691, 0.694, 0.697, 0.700, 0.704, 0.707, 0.710, 0.713, 0.717, - & 0.720, 0.723, 0.726, 0.729, 0.733, 0.736, 0.739, 0.742, 0.745, - & 0.749, 0.752, 0.755, 0.758, 0.761, 0.764, 0.768, 0.771, 0.774, - & 0.777, 0.780, 0.783, 0.786, 0.790, 0.793, 0.796, 0.799, 0.802, - & 0.805, 0.808, 0.811, 0.814, 0.818, 0.821, 0.824, 0.827, 0.830, - & 0.833, 0.836, 0.839, 0.842, 0.845, 0.848, 0.851, 0.854, 0.857, - & 0.860, 0.864, 0.867, 0.870, 0.873, 0.876, 0.879, 0.882, 0.885, - & 0.888, 0.891, 0.894, 0.897, 0.900, 0.903, 0.906, 0.909, 0.912, - & 0.915, 0.918, 0.921, 0.924, 0.955, 0.984, 1.013, 1.041, 1.070, - & 1.097, 1.125, 1.152, 1.179, 1.205, 1.231, 1.257, 1.283, 1.308, - & 1.334, 1.359, 1.383, 1.408, 1.432, 1.456, 1.479, 1.503, 1.526, - & 1.549, 1.572, 1.594, 1.617, 1.639, 1.661, 1.683, 1.704, 1.726, - & 1.747, 1.768, 1.789, 1.810, 1.830, 1.851, 1.871, 1.891, 1.911, - & 1.930, 1.950, 1.969, 1.989, 2.008, 2.027, 2.046, 2.064, 2.083, - & 2.101, 2.120, 2.138, 2.156, 2.174, 2.192, 2.209, 2.227, 2.244, - & 2.262, 2.279, 2.296, 2.313, 2.330, 2.347, 2.363, 2.380, 2.396, - & 2.413, 2.429, 2.445, 2.461, 2.477, 2.493, 2.509, 2.525, 2.540, - & 2.556, 2.571, 2.587, 2.602, 2.617, 2.632, 2.647, 2.662, 2.677, - & 2.692, 2.707, 2.721, 2.736, 2.750, 2.765, 2.779, 2.793, 2.807, - & 2.822, 2.836, 2.850, 2.863, 2.877, 2.891, 2.905, 2.918, 2.932, - & 2.946, 2.959, 2.972, 2.986, 2.999, 3.012, 3.025, 3.039, 3.052, - & 3.065, 3.078, 3.090, 3.103, 3.116, 3.129, 3.141, 3.154, 3.167, - & 3.179, 3.191, 3.204, 3.216, 3.229, 3.241, 3.253, 3.265, 3.277, - & 3.289, 3.301, 3.313, 3.325, 3.337, 3.349, 3.361, 3.372, 3.384, - & 3.396, 3.407, 3.419, 3.431, 3.442, 3.453, 3.465, 3.476, 3.488, - & 3.499, 3.510, 3.521, 3.532, 3.544, 3.555, 3.566, 3.577, 3.588, - & 3.599, 3.610, 3.621 - & /) -! -! *** MGCL2 -! - Real(kind=fp), Parameter, Dimension(561) :: BNC23M_323 = (/ - &-0.088,-0.182,-0.225,-0.252,-0.271,-0.286,-0.297,-0.306,-0.313, - &-0.319,-0.323,-0.327,-0.329,-0.331,-0.332,-0.333,-0.333,-0.333, - &-0.333,-0.332,-0.331,-0.329,-0.328,-0.326,-0.324,-0.322,-0.319, - &-0.317,-0.314,-0.312,-0.309,-0.306,-0.303,-0.300,-0.296,-0.293, - &-0.290,-0.286,-0.283,-0.279,-0.276,-0.272,-0.268,-0.265,-0.261, - &-0.257,-0.253,-0.250,-0.246,-0.242,-0.238,-0.234,-0.230,-0.226, - &-0.223,-0.219,-0.215,-0.211,-0.207,-0.203,-0.199,-0.195,-0.191, - &-0.187,-0.183,-0.179,-0.174,-0.170,-0.166,-0.162,-0.158,-0.154, - &-0.150,-0.145,-0.141,-0.137,-0.133,-0.128,-0.124,-0.120,-0.115, - &-0.111,-0.106,-0.102,-0.097,-0.093,-0.088,-0.084,-0.079,-0.074, - &-0.070,-0.065,-0.060,-0.056,-0.051,-0.046,-0.041,-0.036,-0.031, - &-0.027,-0.022,-0.017,-0.012,-0.007,-0.002, 0.003, 0.008, 0.013, - & 0.019, 0.024, 0.029, 0.034, 0.039, 0.044, 0.049, 0.055, 0.060, - & 0.065, 0.070, 0.075, 0.081, 0.086, 0.091, 0.096, 0.101, 0.107, - & 0.112, 0.117, 0.122, 0.128, 0.133, 0.138, 0.143, 0.149, 0.154, - & 0.159, 0.164, 0.170, 0.175, 0.180, 0.185, 0.190, 0.196, 0.201, - & 0.206, 0.211, 0.216, 0.222, 0.227, 0.232, 0.237, 0.242, 0.248, - & 0.253, 0.258, 0.263, 0.268, 0.273, 0.279, 0.284, 0.289, 0.294, - & 0.299, 0.304, 0.309, 0.314, 0.320, 0.325, 0.330, 0.335, 0.340, - & 0.345, 0.350, 0.355, 0.360, 0.365, 0.370, 0.375, 0.380, 0.386, - & 0.391, 0.396, 0.401, 0.406, 0.411, 0.416, 0.421, 0.426, 0.431, - & 0.436, 0.441, 0.446, 0.450, 0.455, 0.460, 0.465, 0.470, 0.475, - & 0.480, 0.485, 0.490, 0.495, 0.500, 0.505, 0.509, 0.514, 0.519, - & 0.524, 0.529, 0.534, 0.539, 0.543, 0.548, 0.553, 0.558, 0.563, - & 0.568, 0.572, 0.577, 0.582, 0.587, 0.592, 0.596, 0.601, 0.606, - & 0.611, 0.615, 0.620, 0.625, 0.629, 0.634, 0.639, 0.644, 0.648, - & 0.653, 0.658, 0.662, 0.667, 0.672, 0.676, 0.681, 0.686, 0.690, - & 0.695, 0.700, 0.704, 0.709, 0.713, 0.718, 0.723, 0.727, 0.732, - & 0.736, 0.741, 0.745, 0.750, 0.754, 0.759, 0.764, 0.768, 0.773, - & 0.777, 0.782, 0.786, 0.791, 0.795, 0.800, 0.804, 0.809, 0.813, - & 0.817, 0.822, 0.826, 0.831, 0.835, 0.840, 0.844, 0.848, 0.853, - & 0.857, 0.862, 0.866, 0.870, 0.875, 0.879, 0.884, 0.888, 0.892, - & 0.897, 0.901, 0.905, 0.910, 0.914, 0.918, 0.923, 0.927, 0.931, - & 0.935, 0.940, 0.944, 0.948, 0.953, 0.957, 0.961, 0.965, 0.970, - & 0.974, 0.978, 0.982, 0.986, 0.991, 0.995, 0.999, 1.003, 1.007, - & 1.012, 1.016, 1.020, 1.024, 1.028, 1.032, 1.037, 1.041, 1.045, - & 1.049, 1.053, 1.057, 1.061, 1.065, 1.070, 1.074, 1.078, 1.082, - & 1.086, 1.090, 1.094, 1.098, 1.102, 1.106, 1.110, 1.114, 1.118, - & 1.122, 1.126, 1.130, 1.134, 1.138, 1.142, 1.146, 1.150, 1.154, - & 1.158, 1.162, 1.166, 1.170, 1.174, 1.178, 1.182, 1.186, 1.190, - & 1.194, 1.198, 1.202, 1.206, 1.210, 1.214, 1.217, 1.221, 1.225, - & 1.229, 1.233, 1.237, 1.241, 1.245, 1.248, 1.252, 1.256, 1.260, - & 1.264, 1.268, 1.271, 1.275, 1.279, 1.283, 1.287, 1.290, 1.294, - & 1.298, 1.302, 1.306, 1.309, 1.313, 1.317, 1.321, 1.324, 1.328, - & 1.332, 1.336, 1.339, 1.343, 1.383, 1.420, 1.456, 1.491, 1.527, - & 1.561, 1.596, 1.630, 1.663, 1.696, 1.729, 1.761, 1.793, 1.825, - & 1.856, 1.887, 1.918, 1.948, 1.978, 2.008, 2.037, 2.066, 2.095, - & 2.123, 2.152, 2.180, 2.207, 2.235, 2.262, 2.289, 2.315, 2.342, - & 2.368, 2.394, 2.419, 2.445, 2.470, 2.495, 2.520, 2.544, 2.569, - & 2.593, 2.617, 2.641, 2.664, 2.688, 2.711, 2.734, 2.757, 2.780, - & 2.802, 2.824, 2.847, 2.869, 2.890, 2.912, 2.934, 2.955, 2.976, - & 2.997, 3.018, 3.039, 3.060, 3.080, 3.101, 3.121, 3.141, 3.161, - & 3.181, 3.201, 3.220, 3.240, 3.259, 3.279, 3.298, 3.317, 3.336, - & 3.354, 3.373, 3.392, 3.410, 3.428, 3.447, 3.465, 3.483, 3.501, - & 3.519, 3.536, 3.554, 3.572, 3.589, 3.606, 3.624, 3.641, 3.658, - & 3.675, 3.692, 3.709, 3.725, 3.742, 3.759, 3.775, 3.791, 3.808, - & 3.824, 3.840, 3.856, 3.872, 3.888, 3.904, 3.920, 3.935, 3.951, - & 3.967, 3.982, 3.997, 4.013, 4.028, 4.043, 4.058, 4.074, 4.089, - & 4.103, 4.118, 4.133, 4.148, 4.163, 4.177, 4.192, 4.206, 4.221, - & 4.235, 4.249, 4.264, 4.278, 4.292, 4.306, 4.320, 4.334, 4.348, - & 4.362, 4.376, 4.390, 4.403, 4.417, 4.431, 4.444, 4.458, 4.471, - & 4.484, 4.498, 4.511, 4.524, 4.538, 4.551, 4.564, 4.577, 4.590, - & 4.603, 4.616, 4.629 - & /) - - CONTAINS -!EOC -! -! NOTES: -! (1 ) Removed references to reverse problem code since GEOS-Chem -! will only need forward problem solution (hotp 8/1/07) -! (2 ) Explicitly declared some variables and made some common blocks -! THREADPRIVATE (hotp 8/2/07) -! (3 ) Removed DATA structure in CALCACT4 for parallelization -! (hotp 8/23/07) -! (4 ) Removed DELT and A2 print statement (hotp 8/30/07) -! (5 ) Removed SETPARM routine because it's not called (hotp 8/30/07) -! (6 ) Changed NADJ from 0 to 1 to force mass balance (hotp 11/7/07) -! (7 ) Stop code if ISRP4F is called due to mass balance -! issues (hotp 11/7/07) -! (8 ) If you wish to calculated act coeff online, check that DATA -! statements in KMFUL are not problematic for parallelization -! (9 ) Changed 1d-10 in ISRP3F to TINY for mass balance (hotp -! 11/14/07) -! (10 ) Added fix for negative H+ in CALCHS4 (hotp 8/25/09) -! search for 'PHFIX' to see where the fix was applied -! fix must be activated to use -! ====================================================================== -! -! *** ISORROPIA CODE II -! *** SUBROUTINE ISORROPIA -! *** THIS SUBROUTINE IS THE MAIN ROUTINE FOR THE ISORROPIA -! THERMODYNAMIC EQUILIBRIUM AEROSOL MODEL (VERSION 1.1 and above) -! -! ======================== ARGUMENTS / USAGE =========================== -! -! INPUT: -! 1. [WI] -! Real(kind=fp) :: array of length [8]. -! Concentrations, expressed in moles/m3. Depending on the type of -! problem solved (specified in CNTRL(1)), WI contains either -! GAS+AEROSOL or AEROSOL only concentratios. -! WI(1) - sodium -! WI(2) - sulfate -! WI(3) - ammonium -! WI(4) - nitrate -! WI(5) - chloride -! WI(6) - calcium -! WI(7) - potassium -! WI(8) - magnesium -! -! 2. [RHI] -! Real(kind=fp) :: variable. -! Ambient relative humidity expressed on a (0,1) scale. -! -! 3. [TEMPI] -! Real(kind=fp) :: variable. -! Ambient temperature expressed in Kelvins. -! -! 4. [CNTRL] -! Real(kind=fp) :: array of length [2]. -! Parameters that control the type of problem solved. -! -! CNTRL(1): Defines the type of problem solved. -! 0 - Forward problem is solved. In this case, array WI contains -! GAS and AEROSOL concentrations together. -! 1 - Reverse problem is solved. In this case, array WI contains -! AEROSOL concentrations only. -! -! CNTRL(2): Defines the state of the aerosol -! 0 - The aerosol can have both solid+liquid phases (deliquescent) -! 1 - The aerosol is in only liquid state (metastable aerosol) -! -! OUTPUT: -! 1. [WT] -! Real(kind=fp) :: array of length [8]. -! Total concentrations (GAS+AEROSOL) of species, expressed in moles/m3. -! If the foreward probelm is solved (CNTRL(1)=0), array WT is -! identical to array WI. -! WT(1) - total sodium -! WT(2) - total sulfate -! WT(3) - total ammonium -! WT(4) - total nitrate -! WT(5) - total chloride -! WT(6) - total calcium -! WT(7) - total potassium -! WT(8) - total magnesium -! -! 2. [GAS] -! Real(kind=fp) :: array of length [03]. -! Gaseous species concentrations, expressed in moles/m3. -! GAS(1) - NH3 -! GAS(2) - HNO3 -! GAS(3) - HCl -! -! 3. [AERLIQ] -! Real(kind=fp) :: array of length [15]. -! Liquid aerosol species concentrations, expressed in moles/m3. -! AERLIQ(01) - H+(aq) -! AERLIQ(02) - Na+(aq) -! AERLIQ(03) - NH4+(aq) -! AERLIQ(04) - Cl-(aq) -! AERLIQ(05) - SO4--(aq) -! AERLIQ(06) - HSO4-(aq) -! AERLIQ(07) - NO3-(aq) -! AERLIQ(08) - H2O -! AERLIQ(09) - NH3(aq) (undissociated) -! AERLIQ(10) - HNCl(aq) (undissociated) -! AERLIQ(11) - HNO3(aq) (undissociated) -! AERLIQ(12) - OH-(aq) -! AERLIQ(13) - Ca2+(aq) -! AERLIQ(14) - K+(aq) -! AERLIQ(15) - Mg2+(aq) -! -! 4. [AERSLD] -! Real(kind=fp) :: array of length [19]. -! Solid aerosol species concentrations, expressed in moles/m3. -! AERSLD(01) - NaNO3(s) -! AERSLD(02) - NH4NO3(s) -! AERSLD(03) - NaCl(s) -! AERSLD(04) - NH4Cl(s) -! AERSLD(05) - Na2SO4(s) -! AERSLD(06) - (NH4)2SO4(s) -! AERSLD(07) - NaHSO4(s) -! AERSLD(08) - NH4HSO4(s) -! AERSLD(09) - (NH4)4H(SO4)2(s) -! AERSLD(10) - CaSO4(s) -! AERSLD(11) - Ca(NO3)2(s) -! AERSLD(12) - CaCl2(s) -! AERSLD(13) - K2SO4(s) -! AERSLD(14) - KHSO4(s) -! AERSLD(15) - KNO3(s) -! AERSLD(16) - KCl(s) -! AERSLD(17) - MgSO4(s) -! AERSLD(18) - Mg(NO3)2(s) -! AERSLD(19) - MgCl2(s) -! -! 5. [SCASI] -! CHARACTER*15 variable. -! Returns the subcase which the input corresponds to. -! -! 6. [OTHER] -! Real(kind=fp) :: array of length [9]. -! Returns solution information. -! -! OTHER(1): Shows if aerosol water exists. -! 0 - Aerosol is WET -! 1 - Aerosol is DRY -! -! OTHER(2): Aerosol Sulfate ratio, defined as (in moles/m3) : -! (total ammonia + total Na) / (total sulfate) -! -! OTHER(3): Sulfate ratio based on aerosol properties that defines -! a sulfate poor system: -! (aerosol ammonia + aerosol Na) / (aerosol sulfate) -! -! OTHER(4): Aerosol sodium ratio, defined as (in moles/m3) : -! (total Na) / (total sulfate) -! -! OTHER(5): Ionic strength of the aqueous aerosol (if it exists). -! -! OTHER(6): Total number of calls to the activity coefficient -! calculation subroutine. -! -! OTHER(7): Sulfate ratio with crustal species, defined as (in moles/m3) : -! (total ammonia + total crustal species + total Na) / (total sulfate) -! -! OTHER(8): Crustal species + sodium ratio, defined as (in moles/m3) : -! (total crustal species + total Na) / (total sulfate) -! -! OTHER(9): Crustal species ratio, defined as (in moles/m3) : -! (total crustal species) / (total sulfate) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE ISORROPIA (WI_IN, RHI_IN, TEMPI_IN, CNTRL, - & WT, GAS, AERLIQ, AERSLD, SCASI, OTHER) - ! Input parameters - Real(kind=fp) :: WI_IN(NCOMP) - Real(kind=fp) :: RHI_IN - Real(kind=fp) :: TEMPI_IN - Real(kind=fp) :: Cntrl(NCtrl) ! Tried integer, no luck? - - ! Output - Real(kind=fp) :: WT(NCOMP) - Real(kind=fp) :: Gas(NGasAq) - Real(kind=fp) :: AerLiq(NIons+NGasAq+2) - Real(kind=fp) :: AerSld(NSlds) - CHARACTER(Len=15) :: SCASI - Real(kind=fp) :: Other(NOther) - - ! Intermediate variables - Integer :: I - Real(kind=fp) :: WI(NComp), RHI, TempI - - ! SDE 2017-01-16: Initialize - Call Init_IsoData() - - ! Copy from input variables to the module variables - WI(:) = WI_In(:) - RHI = RHI_In - TempI = TempI_In - -! -! *** PROBLEM TYPE (0=FOREWARD, 1=REVERSE) ****************************** -! - IPROB = NINT(CNTRL(1)) -! -! *** AEROSOL STATE (0=SOLID+LIQUID, 1=METASTABLE) ********************** -! - METSTBL = NINT(CNTRL(2)) -! -! *** SOLVE FOREWARD PROBLEM ******************************************** -! -50 IF (IPROB.EQ.0) THEN - IF (WI(1)+WI(2)+WI(3)+WI(4)+WI(5)+WI(6)+WI(7)+WI(8) .LE. TINY) - & THEN !Everything=0 - CALL INIT1 (WI, RHI, TEMPI) - ELSE IF (WI(1)+WI(4)+WI(5)+WI(6)+WI(7)+WI(8) .LE. TINY) THEN !Ca,K,Mg,Na,Cl,NO3=0 - CALL ISRP1F (WI, RHI, TEMPI) - ELSE IF (WI(1)+WI(5)+WI(6)+WI(7)+WI(8) .LE. TINY) THEN !Ca,K,Mg,Na,Cl=0 - CALL ISRP2F (WI, RHI, TEMPI) - ELSE IF (WI(6)+WI(7)+WI(8) .LE. TINY) THEN !Ca,K,Mg=0 - CALL ISRP3F (WI, RHI, TEMPI) - ELSE - CALL ISRP4F (WI, RHI, TEMPI) - ENDIF -! -! *** SOLVE REVERSE PROBLEM ********************************************* -! - ELSE - ! Remove this portion of the code, GEOS-Chem will never need - ! reverse problem solution (hotp) - print*, 'ERROR: DO NOT SOLVE ISORROPIAII REVERSE PROBLEM' - STOP - - !IF (WI(1)+WI(2)+WI(3)+WI(4)+WI(5)+WI(6)+WI(7)+WI(8) .LE. TINY) - ! & THEN !Everything=0 - ! CALL INIT1 (WI, RHI, TEMPI) - !ELSE IF (WI(1)+WI(4)+WI(5)+WI(6)+WI(7)+WI(8) .LE. TINY) THEN !Ca,K,Mg,Na,Cl,NO3=0 - ! CALL ISRP1R (WI, RHI, TEMPI) - !ELSE IF (WI(1)+WI(5)+WI(6)+WI(7)+WI(8) .LE. TINY) THEN !Ca,K,Mg,Na,Cl=0 - ! CALL ISRP2R (WI, RHI, TEMPI) - !ELSE IF (WI(6)+WI(7)+WI(8) .LE. TINY) THEN !Ca,K,Mg=0 - ! CALL ISRP3R (WI, RHI, TEMPI) - !ELSE - ! CALL ISRP4R (WI, RHI, TEMPI) - !ENDIF - ENDIF -! -! *** ADJUST MASS BALANCE *********************************************** -! - IF (NADJ.EQ.1) CALL ADJUST (WI) -!cC -!cC *** IF METASTABLE AND NO WATER - RESOLVE AS NORMAL ******************** -!cC -!c IF (WATER.LE.TINY .AND. METSTBL.EQ.1) THEN -!c METSTBL = 0 -!c GOTO 50 -!c ENDIF - -! -! *** SAVE RESULTS TO ARRAYS (units = mole/m3) **************************** -! - GAS(1) = GNH3 ! Gaseous aerosol species - GAS(2) = GHNO3 - GAS(3) = GHCL -! - DO 10 I=1,7 ! Liquid aerosol species - AERLIQ(I) = MOLAL(I) - 10 CONTINUE - DO 20 I=1,NGASAQ - AERLIQ(7+1+I) = GASAQ(I) - 20 CONTINUE - AERLIQ(7+1) = WATER*1.0D3/18.0D0 - AERLIQ(7+NGASAQ+2) = COH -! - DO 250 I=8,10 ! Liquid aerosol species - AERLIQ(I+5) = MOLAL(I) - 250 CONTINUE -! - AERSLD(1) = CNANO3 ! Solid aerosol species - AERSLD(2) = CNH4NO3 - AERSLD(3) = CNACL - AERSLD(4) = CNH4CL - AERSLD(5) = CNA2SO4 - AERSLD(6) = CNH42S4 - AERSLD(7) = CNAHSO4 - AERSLD(8) = CNH4HS4 - AERSLD(9) = CLC - AERSLD(10) = CCASO4 - AERSLD(11) = CCANO32 - AERSLD(12) = CCACL2 - AERSLD(13) = CK2SO4 - AERSLD(14) = CKHSO4 - AERSLD(15) = CKNO3 - AERSLD(16) = CKCL - AERSLD(17) = CMGSO4 - AERSLD(18) = CMGNO32 - AERSLD(19) = CMGCL2 -! - IF(WATER.LE.TINY) THEN ! Dry flag - OTHER(1) = 1.d0 - ELSE - OTHER(1) = 0.d0 - ENDIF -! - OTHER(2) = SULRAT ! Other stuff - OTHER(3) = SULRATW - OTHER(4) = SODRAT - OTHER(5) = IONIC_MAIN - OTHER(6) = ICLACT - OTHER(7) = SO4RAT - OTHER(8) = CRNARAT - OTHER(9) = CRRAT -! - SCASI = SCASE -! - WT(1) = WI(1) ! Total gas+aerosol phase - WT(2) = WI(2) - WT(3) = WI(3) - WT(4) = WI(4) - WT(5) = WI(5) - WT(6) = WI(6) - WT(7) = WI(7) - WT(8) = WI(8) - - - IF (IPROB.GT.0 .AND. WATER.GT.TINY) THEN - WT(3) = WT(3) + GNH3 - WT(4) = WT(4) + GHNO3 - WT(5) = WT(5) + GHCL - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE ISORROPIA ****************************************** -! - END SUBROUTINE ISORROPIA - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE SETPARM -! *** THIS SUBROUTINE REDEFINES THE SOLUTION PARAMETERS OF ISORROPIA -! -! ======================== ARGUMENTS / USAGE =========================== -! -! *** NOTE: IF NEGATIVE VALUES ARE GIVEN FOR A PARAMETER, IT IS -! IGNORED AND THE CURRENT VALUE IS USED INSTEAD. -! -! INPUT: -! 1. [WFTYPI] -! INTEGER variable. -! Defines the type of weighting algorithm for the solution in Mutual -! Deliquescence Regions (MDR's): -! 0 - MDR's are assumed dry. This is equivalent to the approach -! used by SEQUILIB. -! 1 - The solution is assumed "half" dry and "half" wet throughout -! the MDR. -! 2 - The solution is a relative-humidity weighted mean of the -! dry and wet solutions (as defined in Nenes et al., 1998) -! -! 2. [IACALCI] -! INTEGER variable. -! Method of activity coefficient calculation: -! 0 - Calculate coefficients during runtime -! 1 - Use precalculated tables -! -! 3. [EPSI] -! DOUBLE PRECITION variable. -! Defines the convergence criterion for all iterative processes -! in ISORROPIA, except those for activity coefficient calculations -! (EPSACTI controls that). -! -! 4. [MAXITI] -! INTEGER variable. -! Defines the maximum number of iterations for all iterative -! processes in ISORROPIA, except for activity coefficient calculations -! (NSWEEPI controls that). -! -! 5. [NSWEEPI] -! INTEGER variable. -! Defines the maximum number of iterations for activity coefficient -! calculations. -! -! 6. [EPSACTI] -! Real(kind=fp) :: variable. -! Defines the convergence criterion for activity coefficient -! calculations. -! -! 7. [NDIV] -! INTEGER variable. -! Defines the number of subdivisions needed for the initial root -! tracking for the bisection method. Usually this parameter should -! not be altered, but is included for completeness. -! -! 8. [NADJ] -! INTEGER variable. -! Forces the solution obtained to satisfy total mass balance -! to machine precision -! 0 - No adjustment done (default) -! 1 - Do adjustment -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - ! hotp removed 8/30/07 - !SUBROUTINE SETPARM (WFTYPI, IACALCI, EPSI, MAXITI, NSWEEPI, - !& EPSACTI, NDIVI, NADJI) - !INTEGER WFTYPI -! -! *** SETUP SOLUTION PARAMETERS ***************************************** -! - !IF (WFTYPI .GE. 0) WFTYP = WFTYPI - !IF (IACALCI.GE. 0) IACALC = IACALCI - !IF (EPSI .GE.ZERO) EPS = EPSI - !IF (MAXITI .GT. 0) MAXIT = MAXITI - !IF (NSWEEPI.GT. 0) NSWEEP = NSWEEPI - !IF (EPSACTI.GE.ZERO) EPSACT = EPSACTI - !IF (NDIVI .GT. 0) NDIV = NDIVI - !IF (NADJI .GE. 0) NADJ = NADJI -! -! *** END OF SUBROUTINE SETPARM ***************************************** -! - !RETURN - !END - -! SDE 2017-01-16: Unused in GC -!! -!!======================================================================= -!! -!! *** ISORROPIA CODE -!! *** SUBROUTINE GETPARM -!! *** THIS SUBROUTINE OBTAINS THE CURRENT VAULES OF THE SOLUTION -!! PARAMETERS OF ISORROPIA -!! -!! ======================== ARGUMENTS / USAGE =========================== -!! -!! *** THE PARAMETERS ARE THOSE OF SUBROUTINE SETPARM -!! -!! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -!! *** GEORGIA INSTITUTE OF TECHNOLOGY -!! *** WRITTEN BY ATHANASIOS NENES -!! *** UPDATED BY CHRISTOS FOUNTOUKIS -!! -!!======================================================================= -!! -! SUBROUTINE GETPARM (WFTYPI, IACALCI, EPSI, MAXITI, NSWEEPI, -! & EPSACTI, NDIVI, NADJI) -! INTEGER WFTYPI -!! -!! *** GET SOLUTION PARAMETERS ******************************************* -!! -! WFTYPI = WFTYP -! IACALCI = IACALC -! EPSI = EPS -! MAXITI = MAXIT -! NSWEEPI = NSWEEP -! EPSACTI = EPSACT -! NDIVI = NDIV -! NADJI = NADJ -!! -!! *** END OF SUBROUTINE GETPARM ***************************************** -!! -! RETURN -! END -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE INIT1 -! *** THIS SUBROUTINE INITIALIZES ALL GLOBAL VARIABLES FOR AMMONIUM -! SULFATE AEROSOL SYSTEMS (SUBROUTINE ISRP1) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE INIT1 (WI, RHI, TEMPI) - - Real(kind=fp) :: WI(NComp), RHI, TempI - - ! Intermediate variables - Integer :: I, IRH - Real(kind=fp), Parameter :: LN10=2.3025851 - Real(kind=fp) :: IC, GII, GIO, XX - - Real(kind=fp) :: T0, T0T, COEF, TCF - !REAL IC,GII,GI0,XX,LN10 - !PARAMETER (LN10=2.3025851) -! -! *** SAVE INPUT VARIABLES IN COMMON BLOCK ****************************** -! - IF (IPROB.EQ.0) THEN ! FORWARD CALCULATION - DO 10 I=1,NCOMP - W(I) = MAX(WI(I), TINY) -10 CONTINUE - ELSE - DO 15 I=1,NCOMP ! REVERSE CALCULATION - WAER(I) = MAX(WI(I), TINY) - W(I) = ZERO -15 CONTINUE - ENDIF - RH = RHI - TEMP = TEMPI -! -! *** CALCULATE EQUILIBRIUM CONSTANTS *********************************** -! - XK1 = 1.015e-2 ! HSO4(aq) <==> H(aq) + SO4(aq) - XK21 = 57.639 ! NH3(g) <==> NH3(aq) - XK22 = 1.805e-5 ! NH3(aq) <==> NH4(aq) + OH(aq) - XK7 = 1.817 ! (NH4)2SO4(s) <==> 2*NH4(aq) + SO4(aq) - XK12 = 1.382e2 ! NH4HSO4(s) <==> NH4(aq) + HSO4(aq) - XK13 = 29.268 ! (NH4)3H(SO4)2(s) <==> 3*NH4(aq) + HSO4(aq) + SO4(aq) - XKW = 1.010e-14 ! H2O <==> H(aq) + OH(aq) -! - IF (INT(TEMP) .NE. 298) THEN ! FOR T != 298K or 298.15K - T0 = 298.15 - T0T = T0/TEMP - COEF= 1.0+LOG(T0T)-T0T - XK1 = XK1 *EXP( 8.85*(T0T-1.0) + 25.140*COEF) - XK21= XK21*EXP( 13.79*(T0T-1.0) - 5.393*COEF) - XK22= XK22*EXP( -1.50*(T0T-1.0) + 26.920*COEF) - XK7 = XK7 *EXP( -2.65*(T0T-1.0) + 38.570*COEF) - XK12= XK12*EXP( -2.87*(T0T-1.0) + 15.830*COEF) - XK13= XK13*EXP( -5.19*(T0T-1.0) + 54.400*COEF) - XKW = XKW *EXP(-22.52*(T0T-1.0) + 26.920*COEF) - ENDIF - XK2 = XK21*XK22 -! -! *** CALCULATE DELIQUESCENCE RELATIVE HUMIDITIES (UNICOMPONENT) ******** -! - DRH2SO4 = 0.0000D0 - DRNH42S4 = 0.7997D0 - DRNH4HS4 = 0.4000D0 - DRLC = 0.6900D0 - IF (INT(TEMP) .NE. 298) THEN - T0 = 298.15d0 - TCF = 1.0/TEMP - 1.0/T0 - DRNH42S4 = DRNH42S4*EXP( 80.*TCF) - DRNH4HS4 = DRNH4HS4*EXP(384.*TCF) - DRLC = DRLC *EXP(186.*TCF) - ENDIF -! -! *** CALCULATE MUTUAL DELIQUESCENCE RELATIVE HUMIDITIES **************** -! - DRMLCAB = 0.3780D0 ! (NH4)3H(SO4)2 & NH4HSO4 - DRMLCAS = 0.6900D0 ! (NH4)3H(SO4)2 & (NH4)2SO4 -!CC IF (INT(TEMP) .NE. 298) THEN ! For the time being. -!CC T0 = 298.15d0 -!CC TCF = 1.0/TEMP - 1.0/T0 -!CC DRMLCAB = DRMLCAB*EXP(507.506*TCF) -!CC DRMLCAS = DRMLCAS*EXP(133.865*TCF) -!CC ENDIF -! -! *** LIQUID PHASE ****************************************************** -! - CHNO3 = ZERO - CHCL = ZERO - CH2SO4 = ZERO - COH = ZERO - WATER = TINY -! - DO 20 I=1,NPAIR - MOLALR(I)=ZERO - GAMA(I) =0.1 - GAMIN(I) =GREAT - GAMOU(I) =GREAT - M0(I) =1d5 - 20 CONTINUE -! - DO 30 I=1,NPAIR - GAMA(I) = 0.1d0 - 30 CONTINUE -! - DO 40 I=1,NIONS - MOLAL(I)=ZERO -40 CONTINUE - COH = ZERO -! - DO 50 I=1,NGASAQ - GASAQ(I)=ZERO -50 CONTINUE -! -! *** SOLID PHASE ******************************************************* -! - CNH42S4= ZERO - CNH4HS4= ZERO - CNACL = ZERO - CNA2SO4= ZERO - CNANO3 = ZERO - CNH4NO3= ZERO - CNH4CL = ZERO - CNAHSO4= ZERO - CLC = ZERO - CCASO4 = ZERO - CCANO32= ZERO - CCACL2 = ZERO - CK2SO4 = ZERO - CKHSO4 = ZERO - CKNO3 = ZERO - CKCL = ZERO - CMGSO4 = ZERO - CMGNO32= ZERO - CMGCL2 = ZERO -! -! *** GAS PHASE ********************************************************* -! - GNH3 = ZERO - GHNO3 = ZERO - GHCL = ZERO -! -! *** CALCULATE ZSR PARAMETERS ****************************************** -! - IRH = MIN (INT(RH*NZSR+0.5),NZSR) ! Position in ZSR arrays - IRH = MAX (IRH, 1) -! -! M0(01) = AWSC(IRH) ! NACl -! IF (M0(01) .LT. 100.0) THEN -! IC = M0(01) -! CALL KMTAB(IC,298.0, GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),GII,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(01) = M0(01)*EXP(LN10*(GI0-GII)) -! ENDIF -!C -! M0(02) = AWSS(IRH) ! (NA)2SO4 -! IF (M0(02) .LT. 100.0) THEN -! IC = 3.0*M0(02) -! CALL KMTAB(IC,298.0, XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,GII,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(02) = M0(02)*EXP(LN10*(GI0-GII)) -! ENDIF -!C -! M0(03) = AWSN(IRH) ! NANO3 -! IF (M0(03) .LT. 100.0) THEN -! IC = M0(03) -! CALL KMTAB(IC,298.0, XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,GII,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(03) = M0(03)*EXP(LN10*(GI0-GII)) -! ENDIF -!C - M0(04) = AWAS(IRH) ! (NH4)2SO4 -!C IF (M0(04) .LT. 100.0) THEN -!C IC = 3.0*M0(04) -! C CALL KMTAB(IC,298.0, XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,GII,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(04) = M0(04)*EXP(LN10*(GI0-GII)) -!C ENDIF -! -! M0(05) = AWAN(IRH) ! NH4NO3 -! IF (M0(05) .LT. 100.0) THEN -! IC = M0(05) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,GII,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(05) = M0(05)*EXP(LN10*(GI0-GII)) -! ENDIF -!C -! M0(06) = AWAC(IRH) ! NH4CL -! IF (M0(06) .LT. 100.0) THEN -! IC = M0(06) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,GII,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(06) = M0(06)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(07) = AWSA(IRH) ! 2H-SO4 -!C IF (M0(07) .LT. 100.0) THEN -!C IC = 3.0*M0(07) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,GII,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(07) = M0(07)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(08) = AWSA(IRH) ! H-HSO4 -!CC IF (M0(08) .LT. 100.0) THEN ! These are redundant, because M0(8) is not used -!CC IC = M0(08) -!CC CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX) -!CC CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX) -!CCCCC CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,GII,XX,XX,XX,XX) -!CC M0(08) = M0(08)*EXP(LN10*(GI0-GII)) -!CC ENDIF -! - M0(09) = AWAB(IRH) ! NH4HSO4 -!C IF (M0(09) .LT. 100.0) THEN -!C IC = M0(09) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,GII,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(09) = M0(09)*EXP(LN10*(GI0-GII)) -!C ENDIF -! -! M0(12) = AWSB(IRH) ! NAHSO4 -! IF (M0(12) .LT. 100.0) THEN -! IC = M0(12) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,GI0, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,GII, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(12) = M0(12)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(13) = AWLC(IRH) ! (NH4)3H(SO4)2 -!C IF (M0(13) .LT. 100.0) THEN -!C IC = 4.0*M0(13) -!C CALL KMTAB(IC,298.0, XX,XX,XX,GI0,XX,XX,XX,XX,GII,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C G130 = 0.2*(3.0*GI0+2.0*GII) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,GI0,XX,XX,XX,XX,GII,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C G13I = 0.2*(3.0*GI0+2.0*GII) -!C M0(13) = M0(13)*EXP(LN10*SNGL(G130-G13I)) -!C ENDIF -! -! *** OTHER INITIALIZATIONS ********************************************* -! - ICLACT = 0 - CALAOU = .TRUE. - CALAIN = .TRUE. - FRST = .TRUE. - SCASE = '??' - SULRATW = 2.0 - SODRAT = ZERO - CRNARAT = ZERO - CRRAT = ZERO - NOFER = 0 - STKOFL =.FALSE. - DO 60 I=1,NERRMX - ERRSTK(I) =-999 - ERRMSG(I) = 'MESSAGE N/A' - 60 CONTINUE -! -! *** END OF SUBROUTINE INIT1 ******************************************* -! - END SUBROUTINE INIT1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE INIT2 -! *** THIS SUBROUTINE INITIALIZES ALL GLOBAL VARIABLES FOR AMMONIUM, -! NITRATE, SULFATE AEROSOL SYSTEMS (SUBROUTINE ISRP2) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE INIT2 (WI, RHI, TEMPI) - Real(kind=fp) :: WI(NCOMP), RHI, TEMPI - Real(kind=fp) :: IC,GII,GI0,XX - Real(kind=fp) :: Coef, T0, T0T, TCF - Integer :: I, IRH - Real(kind=fp), Parameter :: LN10=2.3025851 -! -! *** SAVE INPUT VARIABLES IN COMMON BLOCK ****************************** -! - IF (IPROB.EQ.0) THEN ! FORWARD CALCULATION - DO 10 I=1,NCOMP - W(I) = MAX(WI(I), TINY) -10 CONTINUE - ELSE - DO 15 I=1,NCOMP ! REVERSE CALCULATION - WAER(I) = MAX(WI(I), TINY) - W(I) = ZERO -15 CONTINUE - ENDIF - RH = RHI - TEMP = TEMPI -! -! *** CALCULATE EQUILIBRIUM CONSTANTS *********************************** -! - XK1 = 1.015e-2 ! HSO4(aq) <==> H(aq) + SO4(aq) - XK21 = 57.639 ! NH3(g) <==> NH3(aq) - XK22 = 1.805e-5 ! NH3(aq) <==> NH4(aq) + OH(aq) - XK4 = 2.511e6 ! HNO3(g) <==> H(aq) + NO3(aq) ! ISORR -!CC XK4 = 3.638e6 ! HNO3(g) <==> H(aq) + NO3(aq) ! SEQUIL - XK41 = 2.100e5 ! HNO3(g) <==> HNO3(aq) - XK7 = 1.817 ! (NH4)2SO4(s) <==> 2*NH4(aq) + SO4(aq) - XK10 = 5.746e-17 ! NH4NO3(s) <==> NH3(g) + HNO3(g) ! ISORR -!CC XK10 = 2.985e-17 ! NH4NO3(s) <==> NH3(g) + HNO3(g) ! SEQUIL - XK12 = 1.382e2 ! NH4HSO4(s) <==> NH4(aq) + HSO4(aq) - XK13 = 29.268 ! (NH4)3H(SO4)2(s) <==> 3*NH4(aq) + HSO4(aq) + SO4(aq) - XKW = 1.010e-14 ! H2O <==> H(aq) + OH(aq) -! - IF (INT(TEMP) .NE. 298) THEN ! FOR T != 298K or 298.15K - T0 = 298.15D0 - T0T = T0/TEMP - COEF= 1.0+LOG(T0T)-T0T - XK1 = XK1 *EXP( 8.85*(T0T-1.0) + 25.140*COEF) - XK21= XK21*EXP( 13.79*(T0T-1.0) - 5.393*COEF) - XK22= XK22*EXP( -1.50*(T0T-1.0) + 26.920*COEF) - XK4 = XK4 *EXP( 29.17*(T0T-1.0) + 16.830*COEF) !ISORR -!CC XK4 = XK4 *EXP( 29.47*(T0T-1.0) + 16.840*COEF) ! SEQUIL - XK41= XK41*EXP( 29.17*(T0T-1.0) + 16.830*COEF) - XK7 = XK7 *EXP( -2.65*(T0T-1.0) + 38.570*COEF) - XK10= XK10*EXP(-74.38*(T0T-1.0) + 6.120*COEF) ! ISORR -!CC XK10= XK10*EXP(-75.11*(T0T-1.0) + 13.460*COEF) ! SEQUIL - XK12= XK12*EXP( -2.87*(T0T-1.0) + 15.830*COEF) - XK13= XK13*EXP( -5.19*(T0T-1.0) + 54.400*COEF) - XKW = XKW *EXP(-22.52*(T0T-1.0) + 26.920*COEF) - ENDIF - XK2 = XK21*XK22 - XK42 = XK4/XK41 -! -! *** CALCULATE DELIQUESCENCE RELATIVE HUMIDITIES (UNICOMPONENT) ******** -! - DRH2SO4 = ZERO - DRNH42S4 = 0.7997D0 - DRNH4HS4 = 0.4000D0 - DRNH4NO3 = 0.6183D0 - DRLC = 0.6900D0 - IF (INT(TEMP) .NE. 298) THEN - T0 = 298.15D0 - TCF = 1.0/TEMP - 1.0/T0 - DRNH4NO3 = DRNH4NO3*EXP(852.*TCF) - DRNH42S4 = DRNH42S4*EXP( 80.*TCF) - DRNH4HS4 = DRNH4HS4*EXP(384.*TCF) - DRLC = DRLC *EXP(186.*TCF) - DRNH4NO3 = MIN (DRNH4NO3,DRNH42S4) ! ADJUST FOR DRH CROSSOVER AT T<271K - ENDIF -! -! *** CALCULATE MUTUAL DELIQUESCENCE RELATIVE HUMIDITIES **************** -! - DRMLCAB = 0.3780D0 ! (NH4)3H(SO4)2 & NH4HSO4 - DRMLCAS = 0.6900D0 ! (NH4)3H(SO4)2 & (NH4)2SO4 - DRMASAN = 0.6000D0 ! (NH4)2SO4 & NH4NO3 -!CC IF (INT(TEMP) .NE. 298) THEN ! For the time being -!CC T0 = 298.15d0 -!CC TCF = 1.0/TEMP - 1.0/T0 -!CC DRMLCAB = DRMLCAB*EXP( 507.506*TCF) -!CC DRMLCAS = DRMLCAS*EXP( 133.865*TCF) -!CC DRMASAN = DRMASAN*EXP(1269.068*TCF) -!CC ENDIF -! -! *** LIQUID PHASE ****************************************************** -! - CHNO3 = ZERO - CHCL = ZERO - CH2SO4 = ZERO - COH = ZERO - WATER = TINY -! - DO 20 I=1,NPAIR - MOLALR(I)=ZERO - GAMA(I) =0.1 - GAMIN(I) =GREAT - GAMOU(I) =GREAT - M0(I) =1d5 - 20 CONTINUE -! - DO 30 I=1,NPAIR - GAMA(I) = 0.1d0 - 30 CONTINUE -! - DO 40 I=1,NIONS - MOLAL(I)=ZERO -40 CONTINUE - COH = ZERO -! - DO 50 I=1,NGASAQ - GASAQ(I)=ZERO -50 CONTINUE -! -! *** SOLID PHASE ****************************************************** -! - CNH42S4= ZERO - CNH4HS4= ZERO - CNACL = ZERO - CNA2SO4= ZERO - CNANO3 = ZERO - CNH4NO3= ZERO - CNH4CL = ZERO - CNAHSO4= ZERO - CLC = ZERO - CCASO4 = ZERO - CCANO32= ZERO - CCACL2 = ZERO - CK2SO4 = ZERO - CKHSO4 = ZERO - CKNO3 = ZERO - CKCL = ZERO - CMGSO4 = ZERO - CMGNO32= ZERO - CMGCL2 = ZERO -! -! *** GAS PHASE ******************************************************** -! - GNH3 = ZERO - GHNO3 = ZERO - GHCL = ZERO -! -! *** CALCULATE ZSR PARAMETERS ***************************************** -! - IRH = MIN (INT(RH*NZSR+0.5),NZSR) ! Position in ZSR arrays - IRH = MAX (IRH, 1) -! -! M0(01) = AWSC(IRH) ! NACl -! IF (M0(01) .LT. 100.0) THEN -! IC = M0(01) -! CALL KMTAB(IC,298.0, GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),GII,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(01) = M0(01)*EXP(LN10*(GI0-GII)) -! ENDIF -!C -! M0(02) = AWSS(IRH) ! (NA)2SO4 -! IF (M0(02) .LT. 100.0) THEN -! IC = 3.0*M0(02) -! CALL KMTAB(IC,298.0, XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,GII,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(02) = M0(02)*EXP(LN10*(GI0-GII)) -! ENDIF -!CC -! M0(03) = AWSN(IRH) ! NANO3 -! IF (M0(03) .LT. 100.0) THEN -! IC = M0(03) -! CALL KMTAB(IC,298.0, XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,GII,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(03) = M0(03)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(04) = AWAS(IRH) ! (NH4)2SO4 -!C IF (M0(04) .LT. 100.0) THEN -!C IC = 3.0*M0(04) -!C CALL KMTAB(IC,298.0, XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,GII,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(04) = M0(04)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(05) = AWAN(IRH) ! NH4NO3 -!C IF (M0(05) .LT. 100.0) THEN -!C IC = M0(05) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,GII,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(05) = M0(05)*EXP(LN10*(GI0-GII)) -!C ENDIF -! -! M0(06) = AWAC(IRH) ! NH4CL -! IF (M0(06) .LT. 100.0) THEN -! IC = M0(06) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,GII,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(06) = M0(06)*EXP(LN10*(GI0-GII)) -! ENDIF -!C - M0(07) = AWSA(IRH) ! 2H-SO4 -!C IF (M0(07) .LT. 100.0) THEN -!C IC = 3.0*M0(07) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,GII,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(07) = M0(07)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(08) = AWSA(IRH) ! H-HSO4 -!CC IF (M0(08) .LT. 100.0) THEN ! These are redundant, because M0(8) is not used -!CC IC = M0(08) -!CC CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX) -!CC CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX) -!CCCCC CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,GII,XX,XX,XX,XX) -!CC M0(08) = M0(08)*EXP(LN10*(GI0-GII)) -!CC ENDIF -! - M0(09) = AWAB(IRH) ! NH4HSO4 -!C IF (M0(09) .LT. 100.0) THEN -!C IC = M0(09) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,GII,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(09) = M0(09)*EXP(LN10*(GI0-GII)) -!C ENDIF -! -! M0(12) = AWSB(IRH) ! NAHSO4 -! IF (M0(12) .LT. 100.0) THEN -! IC = M0(12) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,GI0, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,GII, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(12) = M0(12)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(13) = AWLC(IRH) ! (NH4)3H(SO4)2 -! IF (M0(13) .LT. 100.0) THEN -! IC = 4.0*M0(13) -! CALL KMTAB(IC,298.0, XX,XX,XX,GI0,XX,XX,XX,XX,GII,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! G130 = 0.2*(3.0*GI0+2.0*GII) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,GI0,XX,XX,XX,XX,GII,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! G13I = 0.2*(3.0*GI0+2.0*GII) -! M0(13) = M0(13)*EXP(LN10*SNGL(G130-G13I)) -! ENDIF -! -! *** OTHER INITIALIZATIONS ********************************************* -! - ICLACT = 0 - CALAOU = .TRUE. - CALAIN = .TRUE. - FRST = .TRUE. - SCASE = '??' - SULRATW = 2.0 - SODRAT = ZERO - CRNARAT = ZERO - CRRAT = ZERO - NOFER = 0 - STKOFL =.FALSE. - DO 60 I=1,NERRMX - ERRSTK(I) =-999 - ERRMSG(I) = 'MESSAGE N/A' - 60 CONTINUE -! -! *** END OF SUBROUTINE INIT2 ******************************************* -! - END SUBROUTINE INIT2 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE ISOINIT3 -! *** THIS SUBROUTINE INITIALIZES ALL GLOBAL VARIABLES FOR AMMONIUM, -! SODIUM, CHLORIDE, NITRATE, SULFATE AEROSOL SYSTEMS (SUBROUTINE -! ISRP3) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE ISOINIT3 (WI, RHI, TEMPI) - Real(kind=fp) :: WI(NCOMP), RHI, TEMPI - Real(kind=fp) :: IC,GII,GI0,XX,T0,T0T,COEF,TCF - Integer :: I, IRH - Real(kind=fp), Parameter :: LN10=2.3025851 -! -! *** SAVE INPUT VARIABLES IN COMMON BLOCK ****************************** -! - IF (IPROB.EQ.0) THEN ! FORWARD CALCULATION - DO 10 I=1,NCOMP - W(I) = MAX(WI(I), TINY) -10 CONTINUE - ELSE - DO 15 I=1,NCOMP ! REVERSE CALCULATION - WAER(I) = MAX(WI(I), TINY) - W(I) = ZERO -15 CONTINUE - ENDIF - RH = RHI - TEMP = TEMPI -! -! *** CALCULATE EQUILIBRIUM CONSTANTS *********************************** -! - XK1 = 1.015D-2 ! HSO4(aq) <==> H(aq) + SO4(aq) - XK21 = 57.639D0 ! NH3(g) <==> NH3(aq) - XK22 = 1.805D-5 ! NH3(aq) <==> NH4(aq) + OH(aq) - XK3 = 1.971D6 ! HCL(g) <==> H(aq) + CL(aq) - XK31 = 2.500e3 ! HCL(g) <==> HCL(aq) - XK4 = 2.511e6 ! HNO3(g) <==> H(aq) + NO3(aq) ! ISORR -!CC XK4 = 3.638e6 ! HNO3(g) <==> H(aq) + NO3(aq) ! SEQUIL - XK41 = 2.100e5 ! HNO3(g) <==> HNO3(aq) - XK5 = 0.4799D0 ! NA2SO4(s) <==> 2*NA(aq) + SO4(aq) - XK6 = 1.086D-16 ! NH4CL(s) <==> NH3(g) + HCL(g) - XK7 = 1.817D0 ! (NH4)2SO4(s) <==> 2*NH4(aq) + SO4(aq) - XK8 = 37.661D0 ! NACL(s) <==> NA(aq) + CL(aq) - XK10 = 5.746D-17 ! NH4NO3(s) <==> NH3(g) + HNO3(g) ! ISORR -!CC XK10 = 2.985e-17 ! NH4NO3(s) <==> NH3(g) + HNO3(g) ! SEQUIL - XK11 = 2.413D4 ! NAHSO4(s) <==> NA(aq) + HSO4(aq) - XK12 = 1.382D2 ! NH4HSO4(s) <==> NH4(aq) + HSO4(aq) - XK13 = 29.268D0 ! (NH4)3H(SO4)2(s) <==> 3*NH4(aq) + HSO4(aq) + SO4(aq) - XK14 = 22.05D0 ! NH4CL(s) <==> NH4(aq) + CL(aq) - XKW = 1.010D-14 ! H2O <==> H(aq) + OH(aq) - XK9 = 11.977D0 ! NANO3(s) <==> NA(aq) + NO3(aq) -! - IF (INT(TEMP) .NE. 298) THEN ! FOR T != 298K or 298.15K - T0 = 298.15D0 - T0T = T0/TEMP - COEF= 1.0+LOG(T0T)-T0T - XK1 = XK1 *EXP( 8.85*(T0T-1.0) + 25.140*COEF) - XK21= XK21*EXP( 13.79*(T0T-1.0) - 5.393*COEF) - XK22= XK22*EXP( -1.50*(T0T-1.0) + 26.920*COEF) - XK3 = XK3 *EXP( 30.20*(T0T-1.0) + 19.910*COEF) - XK31= XK31*EXP( 30.20*(T0T-1.0) + 19.910*COEF) - XK4 = XK4 *EXP( 29.17*(T0T-1.0) + 16.830*COEF) !ISORR -!CC XK4 = XK4 *EXP( 29.47*(T0T-1.0) + 16.840*COEF) ! SEQUIL - XK41= XK41*EXP( 29.17*(T0T-1.0) + 16.830*COEF) - XK5 = XK5 *EXP( 0.98*(T0T-1.0) + 39.500*COEF) - XK6 = XK6 *EXP(-71.00*(T0T-1.0) + 2.400*COEF) - XK7 = XK7 *EXP( -2.65*(T0T-1.0) + 38.570*COEF) - XK8 = XK8 *EXP( -1.56*(T0T-1.0) + 16.900*COEF) - XK9 = XK9 *EXP( -8.22*(T0T-1.0) + 16.010*COEF) - XK10= XK10*EXP(-74.38*(T0T-1.0) + 6.120*COEF) ! ISORR -!CC XK10= XK10*EXP(-75.11*(T0T-1.0) + 13.460*COEF) ! SEQUIL - XK11= XK11*EXP( 0.79*(T0T-1.0) + 14.746*COEF) - XK12= XK12*EXP( -2.87*(T0T-1.0) + 15.830*COEF) - XK13= XK13*EXP( -5.19*(T0T-1.0) + 54.400*COEF) - XK14= XK14*EXP( 24.55*(T0T-1.0) + 16.900*COEF) - XKW = XKW *EXP(-22.52*(T0T-1.0) + 26.920*COEF) - ENDIF - XK2 = XK21*XK22 - XK42 = XK4/XK41 - XK32 = XK3/XK31 -! -! *** CALCULATE DELIQUESCENCE RELATIVE HUMIDITIES (UNICOMPONENT) ******** -! - DRH2SO4 = ZERO - DRNH42S4 = 0.7997D0 - DRNH4HS4 = 0.4000D0 - DRLC = 0.6900D0 - DRNACL = 0.7528D0 - DRNANO3 = 0.7379D0 - DRNH4CL = 0.7710D0 - DRNH4NO3 = 0.6183D0 - DRNA2SO4 = 0.9300D0 - DRNAHSO4 = 0.5200D0 - IF (INT(TEMP) .NE. 298) THEN - T0 = 298.15D0 - TCF = 1.0/TEMP - 1.0/T0 - DRNACL = DRNACL *EXP( 25.*TCF) - DRNANO3 = DRNANO3 *EXP(304.*TCF) - DRNA2SO4 = DRNA2SO4*EXP( 80.*TCF) - DRNH4NO3 = DRNH4NO3*EXP(852.*TCF) - DRNH42S4 = DRNH42S4*EXP( 80.*TCF) - DRNH4HS4 = DRNH4HS4*EXP(384.*TCF) - DRLC = DRLC *EXP(186.*TCF) - DRNH4CL = DRNH4Cl *EXP(239.*TCF) - DRNAHSO4 = DRNAHSO4*EXP(-45.*TCF) -! -! *** ADJUST FOR DRH "CROSSOVER" AT LOW TEMPERATURES -! - DRNH4NO3 = MIN (DRNH4NO3, DRNH4CL, DRNH42S4, DRNANO3, DRNACL) - DRNANO3 = MIN (DRNANO3, DRNACL) - DRNH4CL = MIN (DRNH4Cl, DRNH42S4) -! - ENDIF -! -! *** CALCULATE MUTUAL DELIQUESCENCE RELATIVE HUMIDITIES **************** -! - DRMLCAB = 0.378D0 ! (NH4)3H(SO4)2 & NH4HSO4 - DRMLCAS = 0.690D0 ! (NH4)3H(SO4)2 & (NH4)2SO4 - DRMASAN = 0.600D0 ! (NH4)2SO4 & NH4NO3 - DRMG1 = 0.460D0 ! (NH4)2SO4, NH4NO3, NA2SO4, NH4CL - DRMG2 = 0.691D0 ! (NH4)2SO4, NA2SO4, NH4CL - DRMG3 = 0.697D0 ! (NH4)2SO4, NA2SO4 - DRMH1 = 0.240D0 ! NA2SO4, NANO3, NACL, NH4NO3, NH4CL - DRMH2 = 0.596D0 ! NA2SO4, NANO3, NACL, NH4CL - DRMI1 = 0.240D0 ! LC, NAHSO4, NH4HSO4, NA2SO4, (NH4)2SO4 - DRMI2 = 0.363D0 ! LC, NAHSO4, NA2SO4, (NH4)2SO4 - NO DATA - - DRMI3 = 0.610D0 ! LC, NA2SO4, (NH4)2SO4 - DRMQ1 = 0.494D0 ! (NH4)2SO4, NH4NO3, NA2SO4 - DRMR1 = 0.663D0 ! NA2SO4, NANO3, NACL - DRMR2 = 0.735D0 ! NA2SO4, NACL - DRMR3 = 0.673D0 ! NANO3, NACL - DRMR4 = 0.694D0 ! NA2SO4, NACL, NH4CL - DRMR5 = 0.731D0 ! NA2SO4, NH4CL - DRMR6 = 0.596D0 ! NA2SO4, NANO3, NH4CL - DRMR7 = 0.380D0 ! NA2SO4, NANO3, NACL, NH4NO3 - DRMR8 = 0.380D0 ! NA2SO4, NACL, NH4NO3 - DRMR9 = 0.494D0 ! NA2SO4, NH4NO3 - DRMR10 = 0.476D0 ! NA2SO4, NANO3, NH4NO3 - DRMR11 = 0.340D0 ! NA2SO4, NACL, NH4NO3, NH4CL - DRMR12 = 0.460D0 ! NA2SO4, NH4NO3, NH4CL - DRMR13 = 0.438D0 ! NA2SO4, NANO3, NH4NO3, NH4CL -!CC IF (INT(TEMP) .NE. 298) THEN -!CC T0 = 298.15d0 -!CC TCF = 1.0/TEMP - 1.0/T0 -!CC DRMLCAB = DRMLCAB*EXP( 507.506*TCF) -!CC DRMLCAS = DRMLCAS*EXP( 133.865*TCF) -!CC DRMASAN = DRMASAN*EXP(1269.068*TCF) -!CC DRMG1 = DRMG1 *EXP( 572.207*TCF) -!CC DRMG2 = DRMG2 *EXP( 58.166*TCF) -!CC DRMG3 = DRMG3 *EXP( 22.253*TCF) -!CC DRMH1 = DRMH1 *EXP(2116.542*TCF) -!CC DRMH2 = DRMH2 *EXP( 650.549*TCF) -!CC DRMI1 = DRMI1 *EXP( 565.743*TCF) -!CC DRMI2 = DRMI2 *EXP( 91.745*TCF) -!CC DRMI3 = DRMI3 *EXP( 161.272*TCF) -!CC DRMQ1 = DRMQ1 *EXP(1616.621*TCF) -!CC DRMR1 = DRMR1 *EXP( 292.564*TCF) -!CC DRMR2 = DRMR2 *EXP( 14.587*TCF) -!CC DRMR3 = DRMR3 *EXP( 307.907*TCF) -!CC DRMR4 = DRMR4 *EXP( 97.605*TCF) -!CC DRMR5 = DRMR5 *EXP( 98.523*TCF) -!CC DRMR6 = DRMR6 *EXP( 465.500*TCF) -!CC DRMR7 = DRMR7 *EXP( 324.425*TCF) -!CC DRMR8 = DRMR8 *EXP(2660.184*TCF) -!CC DRMR9 = DRMR9 *EXP(1617.178*TCF) -!CC DRMR10 = DRMR10 *EXP(1745.226*TCF) -!CC DRMR11 = DRMR11 *EXP(3691.328*TCF) -!CC DRMR12 = DRMR12 *EXP(1836.842*TCF) -!CC DRMR13 = DRMR13 *EXP(1967.938*TCF) -!CC ENDIF -! -! *** LIQUID PHASE ****************************************************** -! - CHNO3 = ZERO - CHCL = ZERO - CH2SO4 = ZERO - COH = ZERO - WATER = TINY -! - DO 20 I=1,NPAIR - MOLALR(I)=ZERO - GAMA(I) =0.1 - GAMIN(I) =GREAT - GAMOU(I) =GREAT - M0(I) =1d5 - 20 CONTINUE -! - DO 30 I=1,NPAIR - GAMA(I) = 0.1d0 - 30 CONTINUE -! - DO 40 I=1,NIONS - MOLAL(I)=ZERO -40 CONTINUE - COH = ZERO -! - DO 50 I=1,NGASAQ - GASAQ(I)=ZERO -50 CONTINUE -! -! *** SOLID PHASE ******************************************************* -! - CNH42S4= ZERO - CNH4HS4= ZERO - CNACL = ZERO - CNA2SO4= ZERO - CNANO3 = ZERO - CNH4NO3= ZERO - CNH4CL = ZERO - CNAHSO4= ZERO - CLC = ZERO - CCASO4 = ZERO - CCANO32= ZERO - CCACL2 = ZERO - CK2SO4 = ZERO - CKHSO4 = ZERO - CKNO3 = ZERO - CKCL = ZERO - CMGSO4 = ZERO - CMGNO32= ZERO - CMGCL2 = ZERO -! -! *** GAS PHASE ********************************************************* -! - GNH3 = ZERO - GHNO3 = ZERO - GHCL = ZERO -! -! *** CALCULATE ZSR PARAMETERS ****************************************** -! - IRH = MIN (INT(RH*NZSR+0.5),NZSR) ! Position in ZSR arrays - IRH = MAX (IRH, 1) -! - M0(01) = AWSC(IRH) ! NACl -!C IF (M0(01) .LT. 100.0) THEN -!C IC = M0(01) -!C CALL KMTAB(IC,298.0, GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),GII,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(01) = M0(01)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(02) = AWSS(IRH) ! (NA)2SO4 -!C IF (M0(02) .LT. 100.0) THEN -!C IC = 3.0*M0(02) -!C CALL KMTAB(IC,298.0, XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,GII,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(02) = M0(02)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(03) = AWSN(IRH) ! NANO3 -!C IF (M0(03) .LT. 100.0) THEN -!C IC = M0(03) -!C CALL KMTAB(IC,298.0, XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,GII,XX,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! C M0(03) = M0(03)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(04) = AWAS(IRH) ! (NH4)2SO4 -!C IF (M0(04) .LT. 100.0) THEN -!C IC = 3.0*M0(04) -!C CALL KMTAB(IC,298.0, XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,GII,XX,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(04) = M0(04)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(05) = AWAN(IRH) ! NH4NO3 -!C IF (M0(05) .LT. 100.0) THEN -!C IC = M0(05) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,GII,XX,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(05) = M0(05)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(06) = AWAC(IRH) ! NH4CL -!C IF (M0(06) .LT. 100.0) THEN -!C IC = M0(06) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,GII,XX,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(06) = M0(06)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(07) = AWSA(IRH) ! 2H-SO4 -!C IF (M0(07) .LT. 100.0) THEN -!C IC = 3.0*M0(07) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,GII,XX,XX,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(07) = M0(07)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(08) = AWSA(IRH) ! H-HSO4 -!CC IF (M0(08) .LT. 100.0) THEN ! These are redundant, because M0(8) is not used -!CC IC = M0(08) -!CC CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX) -!CC CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX) -!CCCCC CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,GII,XX,XX,XX,XX) -!CC M0(08) = M0(08)*EXP(LN10*(GI0-GII)) -!CC ENDIF -! - M0(09) = AWAB(IRH) ! NH4HSO4 -!C IF (M0(09) .LT. 100.0) THEN -!C IC = M0(09) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,GII,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(09) = M0(09)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(12) = AWSB(IRH) ! NAHSO4 -!C IF (M0(12) .LT. 100.0) THEN -!C IC = M0(12) -!C CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,GI0, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,GII, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C M0(12) = M0(12)*EXP(LN10*(GI0-GII)) -!C ENDIF -! - M0(13) = AWLC(IRH) ! (NH4)3H(SO4)2 -!C IF (M0(13) .LT. 100.0) THEN -!C IC = 4.0*M0(13) -!C CALL KMTAB(IC,298.0, XX,XX,XX,GI0,XX,XX,XX,XX,GII,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C G130 = 0.2*(3.0*GI0+2.0*GII) -!C CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,GI0,XX,XX,XX,XX,GII,XX,XX,XX, -!C & XX,XX,XX,XX,XX,XX,XX,XX,XX) -!C G13I = 0.2*(3.0*GI0+2.0*GII) -!C M0(13) = M0(13)*EXP(LN10*SNGL(G130-G13I)) -!C ENDIF -! -! *** OTHER INITIALIZATIONS ********************************************* -! - ICLACT = 0 - CALAOU = .TRUE. - CALAIN = .TRUE. - FRST = .TRUE. - SCASE = '??' - SULRATW = 2.0 - CRNARAT = ZERO - CRRAT = ZERO - NOFER = 0 - STKOFL =.FALSE. - DO 60 I=1,NERRMX - ERRSTK(I) =-999 - ERRMSG(I) = 'MESSAGE N/A' - 60 CONTINUE -! -! *** END OF SUBROUTINE ISOINIT3 ******************************************* -! - END SUBROUTINE ISOINIT3 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE INIT4 -! *** THIS SUBROUTINE INITIALIZES ALL GLOBAL VARIABLES FOR AMMONIUM, -! SODIUM, CHLORIDE, NITRATE, SULFATE, CALCIUM, POTASSIUM, MAGNESIUM -! AEROSOL SYSTEMS (SUBROUTINE ISRP4) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE INIT4 (WI, RHI, TEMPI) - Real(kind=fp) :: WI(NCOMP), RHI, TEMPI - Real(kind=fp) :: IC,GII,GI0,XX,T0,T0T,TCF,COEF - Real(kind=fp), Parameter :: LN10=2.3025851 - Integer :: I, IRH -! -! *** SAVE INPUT VARIABLES IN COMMON BLOCK ****************************** -! - IF (IPROB.EQ.0) THEN ! FORWARD CALCULATION - DO 10 I=1,NCOMP - W(I) = MAX(WI(I), TINY) -10 CONTINUE - ELSE - DO 15 I=1,NCOMP ! REVERSE CALCULATION - WAER(I) = MAX(WI(I), TINY) - W(I) = ZERO -15 CONTINUE - ENDIF - RH = RHI - TEMP = TEMPI -! -! *** CALCULATE EQUILIBRIUM CONSTANTS *********************************** -! - XK1 = 1.015D-2 ! HSO4(aq) <==> H(aq) + SO4(aq) - XK21 = 57.639D0 ! NH3(g) <==> NH3(aq) - XK22 = 1.805D-5 ! NH3(aq) <==> NH4(aq) + OH(aq) - XK3 = 1.971D6 ! HCL(g) <==> H(aq) + CL(aq) - XK31 = 2.500e3 ! HCL(g) <==> HCL(aq) - XK4 = 2.511e6 ! HNO3(g) <==> H(aq) + NO3(aq) ! ISORR -! XK4 = 3.638e6 ! HNO3(g) <==> H(aq) + NO3(aq) ! SEQUIL - XK41 = 2.100e5 ! HNO3(g) <==> HNO3(aq) - XK5 = 0.4799D0 ! NA2SO4(s) <==> 2*NA(aq) + SO4(aq) - XK6 = 1.086D-16 ! NH4CL(s) <==> NH3(g) + HCL(g) - XK7 = 1.817D0 ! (NH4)2SO4(s) <==> 2*NH4(aq) + SO4(aq) - XK8 = 37.661D0 ! NACL(s) <==> NA(aq) + CL(aq) -! XK10 = 5.746D-17 ! NH4NO3(s) <==> NH3(g) + HNO3(g) ! ISORR - XK10 = 4.199D-17 ! NH4NO3(s) <==> NH3(g) + HNO3(g) ! (Mozurkewich, 1993) -! XK10 = 2.985e-17 ! NH4NO3(s) <==> NH3(g) + HNO3(g) ! SEQUIL - XK11 = 2.413D4 ! NAHSO4(s) <==> NA(aq) + HSO4(aq) - XK12 = 1.382D2 ! NH4HSO4(s) <==> NH4(aq) + HSO4(aq) - XK13 = 29.268D0 ! (NH4)3H(SO4)2(s) <==> 3*NH4(aq) + HSO4(aq) + SO4(aq) - XK14 = 22.05D0 ! NH4CL(s) <==> NH4(aq) + CL(aq) - XKW = 1.010D-14 ! H2O <==> H(aq) + OH(aq) - XK9 = 11.977D0 ! NANO3(s) <==> NA(aq) + NO3(aq) -!CC - XK15 = 6.067D5 ! CA(NO3)2(s) <==> CA(aq) + 2NO3(aq) - XK16 = 7.974D11 ! CACL2(s) <==> CA(aq) + 2CL(aq) - XK17 = 1.569D-2 ! K2SO4(s) <==> 2K(aq) + SO4(aq) - XK18 = 24.016 ! KHSO4(s) <==> K(aq) + HSO4(aq) - XK19 = 0.872 ! KNO3(s) <==> K(aq) + NO3(aq) - XK20 = 8.680 ! KCL(s) <==> K(aq) + CL(aq) - XK23 = 1.079D5 ! MGS04(s) <==> MG(aq) + SO4(aq) - XK24 = 2.507D15 ! MG(NO3)2(s) <==> MG(aq) + 2NO3(aq) - XK25 = 9.557D21 ! MGCL2(s) <==> MG(aq) + 2CL(aq) -! XK26 = 4.299D-7 ! CO2(aq) + H2O <==> HCO3(aq) + H(aq) -! XK27 = 4.678D-11 ! HCO3(aq) <==> CO3(aq) + H(aq) - -! - IF (INT(TEMP) .NE. 298) THEN ! FOR T != 298K or 298.15K - T0 = 298.15D0 - T0T = T0/TEMP - COEF= 1.0+LOG(T0T)-T0T - XK1 = XK1 *EXP( 8.85*(T0T-1.0) + 25.140*COEF) - XK21= XK21*EXP( 13.79*(T0T-1.0) - 5.393*COEF) - XK22= XK22*EXP( -1.50*(T0T-1.0) + 26.920*COEF) - XK3 = XK3 *EXP( 30.20*(T0T-1.0) + 19.910*COEF) - XK31= XK31*EXP( 30.20*(T0T-1.0) + 19.910*COEF) - XK4 = XK4 *EXP( 29.17*(T0T-1.0) + 16.830*COEF) !ISORR -! XK4 = XK4 *EXP( 29.47*(T0T-1.0) + 16.840*COEF) ! SEQUIL - XK41= XK41*EXP( 29.17*(T0T-1.0) + 16.830*COEF) - XK5 = XK5 *EXP( 0.98*(T0T-1.0) + 39.500*COEF) - XK6 = XK6 *EXP(-71.00*(T0T-1.0) + 2.400*COEF) - XK7 = XK7 *EXP( -2.65*(T0T-1.0) + 38.570*COEF) - XK8 = XK8 *EXP( -1.56*(T0T-1.0) + 16.900*COEF) - XK9 = XK9 *EXP( -8.22*(T0T-1.0) + 16.010*COEF) -! XK10= XK10*EXP(-74.38*(T0T-1.0) + 6.120*COEF) ! ISORR - XK10= XK10*EXP(-74.7351*(T0T-1.0) + 6.025*COEF) ! (Mozurkewich, 1993) -! XK10= XK10*EXP(-75.11*(T0T-1.0) + 13.460*COEF) ! SEQUIL - XK11= XK11*EXP( 0.79*(T0T-1.0) + 14.746*COEF) - XK12= XK12*EXP( -2.87*(T0T-1.0) + 15.830*COEF) - XK13= XK13*EXP( -5.19*(T0T-1.0) + 54.400*COEF) - XK14= XK14*EXP( 24.55*(T0T-1.0) + 16.900*COEF) - XKW = XKW *EXP(-22.52*(T0T-1.0) + 26.920*COEF) -!CC -! XK15= XK15 *EXP( .0*(T0T-1.0) + .0*COEF) -! XK16= XK16 *EXP( .0*(T0T-1.0) + .0*COEF) - XK17= XK17 *EXP(-9.585*(T0T-1.0) + 45.81*COEF) - XK18= XK18 *EXP(-8.423*(T0T-1.0) + 17.96*COEF) - XK19= XK19 *EXP(-14.08*(T0T-1.0) + 19.39*COEF) - XK20= XK20 *EXP(-6.902*(T0T-1.0) + 19.95*COEF) -! XK23= XK23 *EXP( .0*(T0T-1.0) + .0*COEF) -! XK24= XK24 *EXP( .0*(T0T-1.0) + .0*COEF) -! XK25= XK25 *EXP( .0*(T0T-1.0) + .0*COEF) -! XK26= XK26 *EXP(-3.0821*(T0T-1.0) + 31.8139*COEF) -! XK27= XK27 *EXP(-5.9908*(T0T-1.0) + 38.844*COEF) - - ENDIF - XK2 = XK21*XK22 - XK42 = XK4/XK41 - XK32 = XK3/XK31 -! -! *** CALCULATE DELIQUESCENCE RELATIVE HUMIDITIES (UNICOMPONENT) ******** -! - DRH2SO4 = ZERO - DRNH42S4 = 0.7997D0 - DRNH4HS4 = 0.4000D0 - DRLC = 0.6900D0 - DRNACL = 0.7528D0 - DRNANO3 = 0.7379D0 - DRNH4CL = 0.7710D0 - DRNH4NO3 = 0.6183D0 - DRNA2SO4 = 0.9300D0 - DRNAHSO4 = 0.5200D0 - DRCANO32 = 0.4906D0 - DRCACL2 = 0.2830D0 - DRK2SO4 = 0.9750D0 - DRKHSO4 = 0.8600D0 - DRKNO3 = 0.9248D0 - DRKCL = 0.8426D0 - DRMGSO4 = 0.8613D0 - DRMGNO32 = 0.5400D0 - DRMGCL2 = 0.3284D0 - IF (INT(TEMP) .NE. 298) THEN - T0 = 298.15D0 - TCF = 1.0/TEMP - 1.0/T0 - DRNACL = DRNACL *EXP( 25.*TCF) - DRNANO3 = DRNANO3 *EXP(304.*TCF) - DRNA2SO4 = DRNA2SO4*EXP( 80.*TCF) - DRNH4NO3 = DRNH4NO3*EXP(852.*TCF) - DRNH42S4 = DRNH42S4*EXP( 80.*TCF) - DRNH4HS4 = DRNH4HS4*EXP(384.*TCF) - DRLC = DRLC *EXP(186.*TCF) - DRNH4CL = DRNH4Cl *EXP(239.*TCF) - DRNAHSO4 = DRNAHSO4*EXP(-45.*TCF) -! DRCANO32 = DRCANO32*EXP(-430.5*TCF) - DRCANO32 = DRCANO32*EXP(509.4*TCF) ! KELLY & WEXLER (2005) FOR CANO32.4H20 -! DRCACL2 = DRCACL2 *EXP(-1121.*TCF) - DRCACL2 = DRCACL2 *EXP(551.1*TCF) ! KELLY & WEXLER (2005) FOR CACL2.6H20 - DRK2SO4 = DRK2SO4 *EXP(35.6*TCF) -! DRKHSO4 = DRKHSO4 *EXP( 0.*TCF) -! DRKNO3 = DRKNO3 *EXP( 0.*TCF) - DRKCL = DRKCL *EXP(159.*TCF) - DRMGSO4 = DRMGSO4 *EXP(-714.45*TCF) - DRMGNO32 = DRMGNO32*EXP(230.2*TCF) ! KELLY & WEXLER (2005) FOR MGNO32.6H20 -! DRMGCL2 = DRMGCL2 *EXP(-1860.*TCF) - DRMGCL2 = DRMGCL2 *EXP(42.23*TCF) ! KELLY & WEXLER (2005) FOR MGCL2.6H20 -! - ENDIF -! -! *** CALCULATE MUTUAL DELIQUESCENCE RELATIVE HUMIDITIES **************** -! - DRMLCAB = 0.378D0 ! (NH4)3H(SO4)2 & NH4HSO4 - DRMLCAS = 0.690D0 ! (NH4)3H(SO4)2 & (NH4)2SO4 - DRMASAN = 0.600D0 ! (NH4)2SO4 & NH4NO3 - DRMG1 = 0.460D0 ! (NH4)2SO4, NH4NO3, NA2SO4, NH4CL - DRMG2 = 0.691D0 ! (NH4)2SO4, NA2SO4, NH4CL - DRMG3 = 0.697D0 ! (NH4)2SO4, NA2SO4 - DRMH1 = 0.240D0 ! NA2SO4, NANO3, NACL, NH4NO3, NH4CL - DRMH2 = 0.596D0 ! NA2SO4, NANO3, NACL, NH4CL - DRMI1 = 0.240D0 ! LC, NAHSO4, NH4HSO4, NA2SO4, (NH4)2SO4 - DRMI2 = 0.363D0 ! LC, NAHSO4, NA2SO4, (NH4)2SO4 - NO DATA - - DRMI3 = 0.610D0 ! LC, NA2SO4, (NH4)2SO4 - DRMQ1 = 0.494D0 ! (NH4)2SO4, NH4NO3, NA2SO4 - DRMR1 = 0.663D0 ! NA2SO4, NANO3, NACL - DRMR2 = 0.735D0 ! NA2SO4, NACL - DRMR3 = 0.673D0 ! NANO3, NACL - DRMR4 = 0.694D0 ! NA2SO4, NACL, NH4CL - DRMR5 = 0.731D0 ! NA2SO4, NH4CL - DRMR6 = 0.596D0 ! NA2SO4, NANO3, NH4CL - DRMR7 = 0.380D0 ! NA2SO4, NANO3, NACL, NH4NO3 - DRMR8 = 0.380D0 ! NA2SO4, NACL, NH4NO3 - DRMR9 = 0.494D0 ! NA2SO4, NH4NO3 - DRMR10 = 0.476D0 ! NA2SO4, NANO3, NH4NO3 - DRMR11 = 0.340D0 ! NA2SO4, NACL, NH4NO3, NH4CL - DRMR12 = 0.460D0 ! NA2SO4, NH4NO3, NH4CL - DRMR13 = 0.438D0 ! NA2SO4, NANO3, NH4NO3, NH4CL -! - DRMO1 = 0.460D0 ! (NH4)2SO4, NH4NO3, NH4Cl, NA2SO4, K2SO4, MGSO4 - DRMO2 = 0.691D0 ! (NH4)2SO4, NH4Cl, NA2SO4, K2SO4, MGSO4 - DRMO3 = 0.697D0 ! (NH4)2SO4, NA2SO4, K2SO4, MGSO4 - DRML1 = 0.240D0 ! K2SO4, MGSO4, KHSO4, NH4HSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC - DRML2 = 0.363D0 ! K2SO4, MGSO4, KHSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC - DRML3 = 0.610D0 ! K2SO4, MGSO4, KHSO4, (NH4)2SO4, NA2SO4, LC - DRMM1 = 0.240D0 ! K2SO4, NA2SO4, MGSO4, NH4CL, NACL, NANO3, NH4NO3 - DRMM2 = 0.596D0 ! K2SO4, NA2SO4, MGSO4, NH4CL, NACL, NANO3 - DRMP1 = 0.200D0 ! CA(NO3)2, CACL2, K2SO4, KNO3, KCL, MGSO4, MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL - DRMP2 = 0.240D0 ! CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL - DRMP3 = 0.240D0 ! CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL - DRMP4 = 0.240D0 ! K2SO4, KNO3, KCL, MGSO4, MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL - DRMP5 = 0.240D0 ! K2SO4, KNO3, KCL, MGSO4, NANO3, NACL, NH4NO3, NH4CL -!C - DRMV1 = 0.494D0 ! (NH4)2SO4, NH4NO3, NA2SO4, K2SO4, MGSO4 -!C -!C -! DRMO1 = 0.1D0 ! (NH4)2SO4, NH4NO3, NH4Cl, NA2SO4, K2SO4, MGSO4 -! DRMO2 = 0.1D0 ! (NH4)2SO4, NH4Cl, NA2SO4, K2SO4, MGSO4 -! DRMO3 = 0.1D0 ! (NH4)2SO4, NA2SO4, K2SO4, MGSO4 -! DRML1 = 0.1D0 ! K2SO4, MGSO4, KHSO4, NH4HSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! DRML2 = 0.1D0 ! K2SO4, MGSO4, KHSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! DRML3 = 0.1D0 ! K2SO4, MGSO4, KHSO4, (NH4)2SO4, NA2SO4, LC -! DRMM1 = 0.1D0 ! K2SO4, NA2SO4, MGSO4, NH4CL, NACL, NANO3, NH4NO3 -! DRMM2 = 0.1D0 ! K2SO4, NA2SO4, MGSO4, NH4CL, NACL, NANO3 -! DRMP1 = 0.1D0 ! CA(NO3)2, CACL2, K2SO4, KNO3, KCL, MGSO4, MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! DRMP2 = 0.1D0 ! CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! DRMP3 = 0.1D0 ! CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL -! DRMP4 = 0.1D0 ! K2SO4, KNO3, KCL, MGSO4, MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL -! DRMP5 = 0.1D0 ! K2SO4, KNO3, KCL, MGSO4, NANO3, NACL, NH4NO3, NH4CL -!C -! DRMV1 = 0.1D0 ! (NH4)2SO4, NH4NO3, NA2SO4, K2SO4, MGSO4 -! -!CC IF (INT(TEMP) .NE. 298) THEN -!CC T0 = 298.15d0 -!CC TCF = 1.0/TEMP - 1.0/T0 -!CC DRMLCAB = DRMLCAB*EXP( 507.506*TCF) -!CC DRMLCAS = DRMLCAS*EXP( 133.865*TCF) -!CC DRMASAN = DRMASAN*EXP(1269.068*TCF) -!CC DRMG1 = DRMG1 *EXP( 572.207*TCF) -!CC DRMG2 = DRMG2 *EXP( 58.166*TCF) -!CC DRMG3 = DRMG3 *EXP( 22.253*TCF) -!CC DRMH1 = DRMH1 *EXP(2116.542*TCF) -!CC DRMH2 = DRMH2 *EXP( 650.549*TCF) -!CC DRMI1 = DRMI1 *EXP( 565.743*TCF) -!CC DRMI2 = DRMI2 *EXP( 91.745*TCF) -!CC DRMI3 = DRMI3 *EXP( 161.272*TCF) -!CC DRMQ1 = DRMQ1 *EXP(1616.621*TCF) -!CC DRMR1 = DRMR1 *EXP( 292.564*TCF) -!CC DRMR2 = DRMR2 *EXP( 14.587*TCF) -!CC DRMR3 = DRMR3 *EXP( 307.907*TCF) -!CC DRMR4 = DRMR4 *EXP( 97.605*TCF) -!CC DRMR5 = DRMR5 *EXP( 98.523*TCF) -!CC DRMR6 = DRMR6 *EXP( 465.500*TCF) -!CC DRMR7 = DRMR7 *EXP( 324.425*TCF) -!CC DRMR8 = DRMR8 *EXP(2660.184*TCF) -!CC DRMR9 = DRMR9 *EXP(1617.178*TCF) -!CC DRMR10 = DRMR10 *EXP(1745.226*TCF) -!CC DRMR11 = DRMR11 *EXP(3691.328*TCF) -!CC DRMR12 = DRMR12 *EXP(1836.842*TCF) -!CC DRMR13 = DRMR13 *EXP(1967.938*TCF) -!CC ENDIF -! -! *** LIQUID PHASE ****************************************************** -! - CHNO3 = ZERO - CHCL = ZERO - CH2SO4 = ZERO - COH = ZERO - WATER = TINY -! - DO 20 I=1,NPAIR - MOLALR(I)=ZERO - GAMA(I) =0.1 - GAMIN(I) =GREAT - GAMOU(I) =GREAT - M0(I) =1d5 - 20 CONTINUE -! - DO 30 I=1,NPAIR - GAMA(I) = 0.1d0 - 30 CONTINUE -! - DO 40 I=1,NIONS - MOLAL(I)=ZERO -40 CONTINUE - COH = ZERO -! - DO 50 I=1,NGASAQ - GASAQ(I)=ZERO -50 CONTINUE -! -! *** SOLID PHASE ******************************************************* -! - CNH42S4= ZERO - CNH4HS4= ZERO - CNACL = ZERO - CNA2SO4= ZERO - CNANO3 = ZERO - CNH4NO3= ZERO - CNH4CL = ZERO - CNAHSO4= ZERO - CLC = ZERO - CCASO4 = ZERO - CCANO32= ZERO - CCACL2 = ZERO - CK2SO4 = ZERO - CKHSO4 = ZERO - CKNO3 = ZERO - CKCL = ZERO - CMGSO4 = ZERO - CMGNO32= ZERO - CMGCL2 = ZERO -! -! *** GAS PHASE ********************************************************* -! - GNH3 = ZERO - GHNO3 = ZERO - GHCL = ZERO -! -! *** CALCULATE ZSR PARAMETERS ****************************************** -! - IRH = MIN (INT(RH*NZSR+0.5),NZSR) ! Position in ZSR arrays - IRH = MAX (IRH, 1) -! - M0(01) = AWSC(IRH) ! NACl -! IF (M0(01) .LT. 100.0) THEN -! IC = M0(01) -! CALL KMTAB(IC,298.0, GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),GII,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(01) = M0(01)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(02) = AWSS(IRH) ! (NA)2SO4 -! IF (M0(02) .LT. 100.0) THEN -! IC = 3.0*M0(02) -! CALL KMTAB(IC,298.0, XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,GII,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(02) = M0(02)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(03) = AWSN(IRH) ! NANO3 -! IF (M0(03) .LT. 100.0) THEN -! IC = M0(03) -! CALL KMTAB(IC,298.0, XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,GII,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(03) = M0(03)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(04) = AWAS(IRH) ! (NH4)2SO4 -! IF (M0(04) .LT. 100.0) THEN -! IC = 3.0*M0(04) -! CALL KMTAB(IC,298.0, XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,GII,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(04) = M0(04)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(05) = AWAN(IRH) ! NH4NO3 -! IF (M0(05) .LT. 100.0) THEN -! IC = M0(05) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,GII,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(05) = M0(05)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(06) = AWAC(IRH) ! NH4CL -! IF (M0(06) .LT. 100.0) THEN -! IC = M0(06) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,GII,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(06) = M0(06)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(07) = AWSA(IRH) ! 2H-SO4 -! IF (M0(07) .LT. 100.0) THEN -! IC = 3.0*M0(07) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,GII,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(07) = M0(07)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(08) = AWSA(IRH) ! H-HSO4 -!CC IF (M0(08) .LT. 100.0) THEN ! These are redundant, because M0(8) is not used -!CC IC = M0(08) -!CC CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX) -!CC CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX,XX) -!CCCCC CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,GII,XX,XX,XX,XX) -!CC M0(08) = M0(08)*EXP(LN10*(GI0-GII)) -!CC ENDIF -! - M0(09) = AWAB(IRH) ! NH4HSO4 -! IF (M0(09) .LT. 100.0) THEN -! IC = M0(09) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,GI0,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,GII,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(09) = M0(09)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(12) = AWSB(IRH) ! NAHSO4 -! IF (M0(12) .LT. 100.0) THEN -! IC = M0(12) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,GI0, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,GII, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(12) = M0(12)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(13) = AWLC(IRH) ! (NH4)3H(SO4)2 -! IF (M0(13) .LT. 100.0) THEN -! IC = 4.0*M0(13) -! CALL KMTAB(IC,298.0, XX,XX,XX,GI0,XX,XX,XX,XX,GII,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! G130 = 0.2*(3.0*GI0+2.0*GII) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,GI0,XX,XX,XX,XX,GII,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,XX) -! G13I = 0.2*(3.0*GI0+2.0*GII) -! M0(13) = M0(13)*EXP(LN10*SNGL(G130-G13I)) -! ENDIF -! - M0(15) = AWCN(IRH) ! CA(NO3)2 -! IF (M0(15) .LT. 100.0) THEN -! IC = M0(15) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & GI0,XX,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & GII,XX,XX,XX,XX,XX,XX,XX,XX) -! M0(15) = M0(15)*EXP(LN10*(GI0-GII)) -! ENDIF -!C - M0(16) = AWCC(IRH) ! CACl2 -! IF (M0(16) .LT. 100.0) THEN -! IC = M0(16) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,GI0,XX,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,GII,XX,XX,XX,XX,XX,XX,XX) -! M0(16) = M0(16)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(17) = AWPS(IRH) ! K2SO4 -! IF (M0(17) .LT. 100.0) THEN -! IC = M0(17) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,GI0,XX,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,GII,XX,XX,XX,XX,XX,XX) -! M0(17) = M0(17)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(18) = AWPB(IRH) ! KHSO4 -! IF (M0(18) .LT. 100.0) THEN -! IC = M0(18) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,GI0,XX,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,GII,XX,XX,XX,XX,XX) -! M0(18) = M0(18)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(19) = AWPN(IRH) ! KNO3 -! IF (M0(19) .LT. 100.0) THEN -! IC = M0(19) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,GI0,XX,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,GII,XX,XX,XX,XX) -! M0(19) = M0(19)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(20) = AWPC(IRH) ! KCl -! IF (M0(20) .LT. 100.0) THEN -! IC = M0(20) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,GI0,XX,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,GII,XX,XX,XX) -! M0(20) = M0(20)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(21) = AWMS(IRH) ! MGSO4 -! IF (M0(21) .LT. 100.0) THEN -! IC = M0(21) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,GI0,XX,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,GII,XX,XX) -! M0(21) = M0(21)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(22) = AWMN(IRH) ! MG(NO3)2 -! IF (M0(22) .LT. 100.0) THEN -! IC = M0(22) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,GI0,XX) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,GII,XX) -! M0(22) = M0(22)*EXP(LN10*(GI0-GII)) -! ENDIF -! - M0(23) = AWMC(IRH) ! MGCL2 -! IF (M0(23) .LT. 100.0) THEN -! IC = M0(23) -! CALL KMTAB(IC,298.0, XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,GI0) -! CALL KMTAB(IC,SNGL(TEMP),XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX, -! & XX,XX,XX,XX,XX,XX,XX,XX,GII) -! M0(23) = M0(23)*EXP(LN10*(GI0-GII)) -! ENDIF -! -! *** OTHER INITIALIZATIONS ********************************************* -! - ICLACT = 0 - CALAOU = .TRUE. - CALAIN = .TRUE. - FRST = .TRUE. - SCASE = '??' - SULRATW = 2.0 - SO4RAT = 2.0 - CRNARAT = 2.0 - CRRAT = 2.0 - NOFER = 0 - STKOFL =.FALSE. - DO 60 I=1,NERRMX - ERRSTK(I) =-999 - ERRMSG(I) = 'MESSAGE N/A' - 60 CONTINUE -! -! *** END OF SUBROUTINE INIT4 ******************************************* -! - END SUBROUTINE INIT4 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE ADJUST -! *** ADJUSTS FOR MASS BALANCE BETWEEN VOLATILE SPECIES AND SULFATE -! FIRST CALCULATE THE EXCESS OF EACH PRECURSOR, AND IF IT EXISTS, THEN -! ADJUST SEQUENTIALY AEROSOL PHASE SPECIES WHICH CONTAIN THE EXCESS -! PRECURSOR. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE ADJUST (WI) - Real(kind=fp) :: WI(*) - Real(kind=fp) :: ExNH4, ExCl, ExNO3, ExS4 -! -! *** FOR AMMONIUM ***************************************************** -! - IF (IPROB.EQ.0) THEN ! Calculate excess (solution - input) - EXNH4 = GNH3 + MOLAL(3) + CNH4CL + CNH4NO3 + CNH4HS4 - & + 2D0*CNH42S4 + 3D0*CLC - & -WI(3) - ELSE - EXNH4 = MOLAL(3) + CNH4CL + CNH4NO3 + CNH4HS4 + 2D0*CNH42S4 - & + 3D0*CLC - & -WI(3) - - ENDIF - EXNH4 = MAX(EXNH4,ZERO) - IF (EXNH4.LT.TINY) GOTO 20 ! No excess NH4, go to next precursor -! - IF (MOLAL(3).GT.EXNH4) THEN ! Adjust aqueous phase NH4 - MOLAL(3) = MOLAL(3) - EXNH4 - GOTO 20 - ELSE - EXNH4 = EXNH4 - MOLAL(3) - MOLAL(3) = ZERO - ENDIF -! - IF (CNH4CL.GT.EXNH4) THEN ! Adjust NH4Cl(s) - CNH4CL = CNH4CL - EXNH4 ! more solid than excess - GHCL = GHCL + EXNH4 ! evaporate Cl to gas phase - GOTO 20 - ELSE ! less solid than excess - GHCL = GHCL + CNH4CL ! evaporate into gas phase - EXNH4 = EXNH4 - CNH4CL ! reduce excess - CNH4CL = ZERO ! zero salt concentration - ENDIF -! - IF (CNH4NO3.GT.EXNH4) THEN ! Adjust NH4NO3(s) - CNH4NO3 = CNH4NO3- EXNH4 ! more solid than excess - GHNO3 = GHNO3 + EXNH4 ! evaporate NO3 to gas phase - GOTO 20 - ELSE ! less solid than excess - GHNO3 = GHNO3 + CNH4NO3! evaporate into gas phase - EXNH4 = EXNH4 - CNH4NO3! reduce excess - CNH4NO3 = ZERO ! zero salt concentration - ENDIF -! - IF (CLC.GT.3d0*EXNH4) THEN ! Adjust (NH4)3H(SO4)2(s) - CLC = CLC - EXNH4/3d0 ! more solid than excess - GOTO 20 - ELSE ! less solid than excess - EXNH4 = EXNH4 - 3d0*CLC ! reduce excess - CLC = ZERO ! zero salt concentration - ENDIF -! - IF (CNH4HS4.GT.EXNH4) THEN ! Adjust NH4HSO4(s) - CNH4HS4 = CNH4HS4- EXNH4 ! more solid than excess - GOTO 20 - ELSE ! less solid than excess - EXNH4 = EXNH4 - CNH4HS4! reduce excess - CNH4HS4 = ZERO ! zero salt concentration - ENDIF -! - IF (CNH42S4.GT.EXNH4) THEN ! Adjust (NH4)2SO4(s) - CNH42S4 = CNH42S4- EXNH4 ! more solid than excess - GOTO 20 - ELSE ! less solid than excess - EXNH4 = EXNH4 - CNH42S4! reduce excess - CNH42S4 = ZERO ! zero salt concentration - ENDIF -! -! *** FOR NITRATE ****************************************************** -! - 20 IF (IPROB.EQ.0) THEN ! Calculate excess (solution - input) - EXNO3 = GHNO3 + MOLAL(7) + CNH4NO3 - & -WI(4) - ELSE - EXNO3 = MOLAL(7) + CNH4NO3 - & -WI(4) - ENDIF - EXNO3 = MAX(EXNO3,ZERO) - IF (EXNO3.LT.TINY) GOTO 30 ! No excess NO3, go to next precursor -! - IF (MOLAL(7).GT.EXNO3) THEN ! Adjust aqueous phase NO3 - MOLAL(7) = MOLAL(7) - EXNO3 - GOTO 30 - ELSE - EXNO3 = EXNO3 - MOLAL(7) - MOLAL(7) = ZERO - ENDIF -! - IF (CNH4NO3.GT.EXNO3) THEN ! Adjust NH4NO3(s) - CNH4NO3 = CNH4NO3- EXNO3 ! more solid than excess - GNH3 = GNH3 + EXNO3 ! evaporate NO3 to gas phase - GOTO 30 - ELSE ! less solid than excess - GNH3 = GNH3 + CNH4NO3! evaporate into gas phase - EXNO3 = EXNO3 - CNH4NO3! reduce excess - CNH4NO3 = ZERO ! zero salt concentration - ENDIF -! -! *** FOR CHLORIDE ***************************************************** -! - 30 IF (IPROB.EQ.0) THEN ! Calculate excess (solution - input) - EXCl = GHCL + MOLAL(4) + CNH4CL - & -WI(5) - ELSE - EXCl = MOLAL(4) + CNH4CL - & -WI(5) - ENDIF - EXCl = MAX(EXCl,ZERO) - IF (EXCl.LT.TINY) GOTO 40 ! No excess Cl, go to next precursor -! - IF (MOLAL(4).GT.EXCL) THEN ! Adjust aqueous phase Cl - MOLAL(4) = MOLAL(4) - EXCL - GOTO 40 - ELSE - EXCL = EXCL - MOLAL(4) - MOLAL(4) = ZERO - ENDIF -! - IF (CNH4CL.GT.EXCL) THEN ! Adjust NH4Cl(s) - CNH4CL = CNH4CL - EXCL ! more solid than excess - GHCL = GHCL + EXCL ! evaporate Cl to gas phase - GOTO 40 - ELSE ! less solid than excess - GHCL = GHCL + CNH4CL ! evaporate into gas phase - EXCL = EXCL - CNH4CL ! reduce excess - CNH4CL = ZERO ! zero salt concentration - ENDIF -! -! *** FOR SULFATE ****************************************************** -! - 40 EXS4 = MOLAL(5) + MOLAL(6) + 2.d0*CLC + CNH42S4 + CNH4HS4 + - & CNA2SO4 + CNAHSO4 - WI(2) - EXS4 = MAX(EXS4,ZERO) ! Calculate excess (solution - input) - IF (EXS4.LT.TINY) GOTO 50 ! No excess SO4, return -! - IF (MOLAL(6).GT.EXS4) THEN ! Adjust aqueous phase HSO4 - MOLAL(6) = MOLAL(6) - EXS4 - GOTO 50 - ELSE - EXS4 = EXS4 - MOLAL(6) - MOLAL(6) = ZERO - ENDIF -! - IF (MOLAL(5).GT.EXS4) THEN ! Adjust aqueous phase SO4 - MOLAL(5) = MOLAL(5) - EXS4 - GOTO 50 - ELSE - EXS4 = EXS4 - MOLAL(5) - MOLAL(5) = ZERO - ENDIF -! - IF (CLC.GT.2d0*EXS4) THEN ! Adjust (NH4)3H(SO4)2(s) - CLC = CLC - EXS4/2d0 ! more solid than excess - GNH3 = GNH3 +1.5d0*EXS4! evaporate NH3 to gas phase - GOTO 50 - ELSE ! less solid than excess - GNH3 = GNH3 + 1.5d0*CLC! evaporate NH3 to gas phase - EXS4 = EXS4 - 2d0*CLC ! reduce excess - CLC = ZERO ! zero salt concentration - ENDIF -! - IF (CNH4HS4.GT.EXS4) THEN ! Adjust NH4HSO4(s) - CNH4HS4 = CNH4HS4 - EXS4 ! more solid than excess - GNH3 = GNH3 + EXS4 ! evaporate NH3 to gas phase - GOTO 50 - ELSE ! less solid than excess - GNH3 = GNH3 + CNH4HS4 ! evaporate NH3 to gas phase - EXS4 = EXS4 - CNH4HS4 ! reduce excess - CNH4HS4 = ZERO ! zero salt concentration - ENDIF -! - IF (CNH42S4.GT.EXS4) THEN ! Adjust (NH4)2SO4(s) - CNH42S4 = CNH42S4- EXS4 ! more solid than excess - GNH3 = GNH3 + 2.d0*EXS4! evaporate NH3 to gas phase - GOTO 50 - ELSE ! less solid than excess - GNH3 = GNH3+2.d0*CNH42S4 ! evaporate NH3 to gas phase - EXS4 = EXS4 - CNH42S4 ! reduce excess - CNH42S4 = ZERO ! zero salt concentration - ENDIF -! -! *** RETURN ********************************************************** -! - 50 RETURN - END SUBROUTINE ADJUST - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** FUNCTION GETASR -! *** CALCULATES THE LIMITING NH4+/SO4 RATIO OF A SULFATE POOR SYSTEM -! (i.e. SULFATE RATIO = 2.0) FOR GIVEN SO4 LEVEL AND RH -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION GETASR (SO4I, RHI) - !PARAMETER (NSO4S=14, NRHS=20, NASRD=NSO4S*NRHS) - !Real(kind=fp) :: SO4I, RHI - Real(kind=fp) :: SO4I, RHI - Integer :: A1, IA1, INDS, INDR, INDSL, INDSH, IPOSL, IPOSH, IRH - Real(kind=fp) :: WF, RAT -!CC -!CC *** SOLVE USING FULL COMPUTATIONS, NOT LOOK-UP TABLES ************** -!CC -!CC W(2) = WAER(2) -!CC W(3) = WAER(2)*2.0001D0 -!CC CALL CALCA2 -!CC SULRATW = MOLAL(3)/WAER(2) -!CC CALL INIT1 (WI, RHI, TEMPI) ! Re-initialize COMMON BLOCK -! -! *** CALCULATE INDICES ************************************************ -! - RAT = SO4I/1.E-9 - A1 = INT(LOG10(RAT)) ! Magnitude of RAT - IA1 = INT(RAT/2.5/10.0**A1) -! - INDS = 4.0*A1 + MIN(IA1,4) - INDS = MIN(MAX(0, INDS), NSO4S-1) + 1 ! SO4 component of IPOS -! - INDR = INT(99.0-RHI*100.0) + 1 - INDR = MIN(MAX(1, INDR), NRHS) ! RH component of IPOS -! -! *** GET VALUE AND RETURN ********************************************* -! - INDSL = INDS - INDSH = MIN(INDSL+1, NSO4S) - IPOSL = (INDSL-1)*NRHS + INDR ! Low position in array - IPOSH = (INDSH-1)*NRHS + INDR ! High position in array -! - WF = (SO4I-ASSO4(INDSL))/(ASSO4(INDSH)-ASSO4(INDSL) + 1e-7) - WF = MIN(MAX(WF, 0.0), 1.0) -! - GETASR = WF*ASRAT(IPOSH) + (1.0-WF)*ASRAT(IPOSL) -! -! *** END OF FUNCTION GETASR ******************************************* -! - RETURN - END FUNCTION GETASR - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCHA -! *** CALCULATES CHLORIDES SPECIATION -! -! HYDROCHLORIC ACID IN THE LIQUID PHASE IS ASSUMED A MINOR SPECIES, -! AND DOES NOT SIGNIFICANTLY PERTURB THE HSO4-SO4 EQUILIBRIUM. THE -! HYDROCHLORIC ACID DISSOLVED IS CALCULATED FROM THE -! HCL(G) <-> (H+) + (CL-) -! EQUILIBRIUM, USING THE (H+) FROM THE SULFATES. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCHA() - !Real(kind=fp) :: KAPA - Real(kind=fp) :: KAPA, X, DELT, ALFA, DIAK -!C CHARACTER ERRINF*40 -! -! *** CALCULATE HCL DISSOLUTION ***************************************** -! - X = W(5) - DELT = 0.0d0 - IF (WATER.GT.TINY) THEN - KAPA = MOLAL(1) - ALFA = XK3*R*TEMP*(WATER/GAMA(11))**2.0 - DIAK = SQRT( (KAPA+ALFA)**2.0 + 4.0*ALFA*X) - DELT = 0.5*(-(KAPA+ALFA) + DIAK) -!C IF (DELT/KAPA.GT.0.1d0) THEN -!C WRITE (ERRINF,'(1PE10.3)') DELT/KAPA*100.0 -!C CALL PUSHERR (0033, ERRINF) -!C ENDIF - ENDIF -! -! *** CALCULATE HCL SPECIATION IN THE GAS PHASE ************************* -! - GHCL = MAX(X-DELT, 0.0d0) ! GAS HCL -! -! *** CALCULATE HCL SPECIATION IN THE LIQUID PHASE ********************** -! - MOLAL(4) = DELT ! CL- - MOLAL(1) = MOLAL(1) + DELT ! H+ -! - RETURN -! -! *** END OF SUBROUTINE CALCHA ****************************************** -! - END SUBROUTINE CALCHA - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCHAP -! *** CALCULATES CHLORIDES SPECIATION -! -! HYDROCHLORIC ACID IN THE LIQUID PHASE IS ASSUMED A MINOR SPECIES, -! THAT DOES NOT SIGNIFICANTLY PERTURB THE HSO4-SO4 EQUILIBRIUM. -! THE HYDROCHLORIC ACID DISSOLVED IS CALCULATED FROM THE -! HCL(G) -> HCL(AQ) AND HCL(AQ) -> (H+) + (CL-) -! EQUILIBRIA, USING (H+) FROM THE SULFATES. -! -! THIS IS THE VERSION USED BY THE INVERSE PROBLEM SOVER -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCHAP() - Real(kind=fp) :: DELT, ALFA -! -! *** IS THERE A LIQUID PHASE? ****************************************** -! - IF (WATER.LE.TINY) RETURN -! -! *** CALCULATE HCL SPECIATION IN THE GAS PHASE ************************* -! - CALL CALCCLAQ (MOLAL(4), MOLAL(1), DELT) - ALFA = XK3*R*TEMP*(WATER/GAMA(11))**2.0 - GASAQ(3) = DELT - MOLAL(1) = MOLAL(1) - DELT - MOLAL(4) = MOLAL(4) - DELT - GHCL = MOLAL(1)*MOLAL(4)/ALFA -! - RETURN -! -! *** END OF SUBROUTINE CALCHAP ***************************************** -! - END SUBROUTINE CALCHAP - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCNA -! *** CALCULATES NITRATES SPECIATION -! -! NITRIC ACID IN THE LIQUID PHASE IS ASSUMED A MINOR SPECIES, THAT -! DOES NOT SIGNIFICANTLY PERTURB THE HSO4-SO4 EQUILIBRIUM. THE NITRIC -! ACID DISSOLVED IS CALCULATED FROM THE HNO3(G) -> (H+) + (NO3-) -! EQUILIBRIUM, USING THE (H+) FROM THE SULFATES. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCNA() - Real(kind=fp) :: KAPA, DELT, ALFA, DIAK, X -!C CHARACTER ERRINF*40 -! -! *** CALCULATE HNO3 DISSOLUTION **************************************** -! - X = W(4) - DELT = 0.0d0 - IF (WATER.GT.TINY) THEN - KAPA = MOLAL(1) - ALFA = XK4*R*TEMP*(WATER/GAMA(10))**2.0 - DIAK = SQRT( (KAPA+ALFA)**2.0 + 4.0*ALFA*X) - DELT = 0.5*(-(KAPA+ALFA) + DIAK) -!C IF (DELT/KAPA.GT.0.1d0) THEN -!C WRITE (ERRINF,'(1PE10.3)') DELT/KAPA*100.0 -!C CALL PUSHERR (0019, ERRINF) ! WARNING ERROR: NO SOLUTION -!C ENDIF - ENDIF -! -! *** CALCULATE HNO3 SPECIATION IN THE GAS PHASE ************************ -! - GHNO3 = MAX(X-DELT, 0.0d0) ! GAS HNO3 -! -! *** CALCULATE HNO3 SPECIATION IN THE LIQUID PHASE ********************* -! - MOLAL(7) = DELT ! NO3- - MOLAL(1) = MOLAL(1) + DELT ! H+ -! - RETURN -! -! *** END OF SUBROUTINE CALCNA ****************************************** -! - END SUBROUTINE CALCNA - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCNAP -! *** CALCULATES NITRATES SPECIATION -! -! NITRIC ACID IN THE LIQUID PHASE IS ASSUMED A MINOR SPECIES, THAT -! DOES NOT SIGNIFICANTLY PERTURB THE HSO4-SO4 EQUILIBRIUM. THE NITRIC -! ACID DISSOLVED IS CALCULATED FROM THE HNO3(G) -> HNO3(AQ) AND -! HNO3(AQ) -> (H+) + (CL-) EQUILIBRIA, USING (H+) FROM THE SULFATES. -! -! THIS IS THE VERSION USED BY THE INVERSE PROBLEM SOVER -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCNAP() - Real(kind=fp) :: KAPA, DELT, ALFA -! -! *** IS THERE A LIQUID PHASE? ****************************************** -! - IF (WATER.LE.TINY) RETURN -! -! *** CALCULATE HNO3 SPECIATION IN THE GAS PHASE ************************ -! - CALL CALCNIAQ (MOLAL(7), MOLAL(1), DELT) - ALFA = XK4*R*TEMP*(WATER/GAMA(10))**2.0 - GASAQ(3) = DELT - MOLAL(1) = MOLAL(1) - DELT - MOLAL(7) = MOLAL(7) - DELT - GHNO3 = MOLAL(1)*MOLAL(7)/ALFA - - write (*,*) ALFA, MOLAL(1), MOLAL(7), GHNO3, DELT -! - RETURN -! -! *** END OF SUBROUTINE CALCNAP ***************************************** -! - END SUBROUTINE CALCNAP - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCNH3 -! *** CALCULATES AMMONIA IN GAS PHASE -! -! AMMONIA IN THE GAS PHASE IS ASSUMED A MINOR SPECIES, THAT -! DOES NOT SIGNIFICANTLY PERTURB THE AEROSOL EQUILIBRIUM. -! AMMONIA GAS IS CALCULATED FROM THE NH3(g) + (H+)(l) <==> (NH4+)(l) -! EQUILIBRIUM, USING (H+), (NH4+) FROM THE AEROSOL SOLUTION. -! -! THIS IS THE VERSION USED BY THE DIRECT PROBLEM -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCNH3() - Real(kind=fp) :: A1, BB, CC, DIAK, PSI -! -! *** IS THERE A LIQUID PHASE? ****************************************** -! - IF (WATER.LE.TINY) RETURN -! -! *** CALCULATE NH3 SUBLIMATION ***************************************** -! - A1 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - CHI1 = MOLAL(3) - CHI2 = MOLAL(1) -! - BB =(CHI2 + ONE/A1) ! a=1; b!=1; c!=1 - CC =-CHI1/A1 - DIAK = SQRT(BB*BB - 4.0*CC) ! Always > 0 - PSI = 0.5*(-BB + DIAK) ! One positive root - PSI = MAX(TINY, MIN(PSI,CHI1))! Constrict in acceptible range -! -! *** CALCULATE NH3 SPECIATION IN THE GAS PHASE ************************* -! - GNH3 = PSI ! GAS HNO3 -! -! *** CALCULATE NH3 AFFECT IN THE LIQUID PHASE ************************** -! - MOLAL(3) = CHI1 - PSI ! NH4+ - MOLAL(1) = CHI2 + PSI ! H+ -! - RETURN -! -! *** END OF SUBROUTINE CALCNH3 ***************************************** -! - END SUBROUTINE CALCNH3 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCNH3P -! *** CALCULATES AMMONIA IN GAS PHASE -! -! AMMONIA GAS IS CALCULATED FROM THE NH3(g) + (H+)(l) <==> (NH4+)(l) -! EQUILIBRIUM, USING (H+), (NH4+) FROM THE AEROSOL SOLUTION. -! -! THIS IS THE VERSION USED BY THE INVERSE PROBLEM SOLVER -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCNH3P() - Real(kind=fp) :: A1 -! -! *** IS THERE A LIQUID PHASE? ****************************************** -! - IF (WATER.LE.TINY) RETURN -! -! *** CALCULATE NH3 GAS PHASE CONCENTRATION ***************************** -! - A1 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - GNH3 = MOLAL(3)/MOLAL(1)/A1 -! - RETURN -! -! *** END OF SUBROUTINE CALCNH3P **************************************** -! - END SUBROUTINE CALCNH3P - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCNHA -! -! THIS SUBROUTINE CALCULATES THE DISSOLUTION OF HCL, HNO3 AT -! THE PRESENCE OF (H,SO4). HCL, HNO3 ARE CONSIDERED MINOR SPECIES, -! THAT DO NOT SIGNIFICANTLY AFFECT THE EQUILIBRIUM POINT. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCNHA() - CHARACTER*40 :: ERRINF - Real(kind=fp) :: A3, A4, DELCL, DELNO, OMEGA - Real(kind=fp) :: C1, C2, C3, M1, M2, M3 - Integer :: ISLV -! -! *** SPECIAL CASE; WATER=ZERO ****************************************** -! - IF (WATER.LE.TINY) THEN - GOTO 55 -! -! *** SPECIAL CASE; HCL=HNO3=ZERO *************************************** -! - ELSEIF (W(5).LE.TINY .AND. W(4).LE.TINY) THEN - GOTO 60 -! -! *** SPECIAL CASE; HCL=ZERO ******************************************** -! - ELSE IF (W(5).LE.TINY) THEN - CALL CALCNA ! CALL HNO3 DISSOLUTION ROUTINE - GOTO 60 -! -! *** SPECIAL CASE; HNO3=ZERO ******************************************* -! - ELSE IF (W(4).LE.TINY) THEN - CALL CALCHA ! CALL HCL DISSOLUTION ROUTINE - GOTO 60 - ENDIF -! -! *** CALCULATE EQUILIBRIUM CONSTANTS *********************************** -! - A3 = XK4*R*TEMP*(WATER/GAMA(10))**2.0 ! HNO3 - A4 = XK3*R*TEMP*(WATER/GAMA(11))**2.0 ! HCL -! -! *** CALCULATE CUBIC EQUATION COEFFICIENTS ***************************** -! - DELCL = ZERO - DELNO = ZERO -! - OMEGA = MOLAL(1) ! H+ - CHI3 = W(4) ! HNO3 - CHI4 = W(5) ! HCL -! - C1 = A3*CHI3 - C2 = A4*CHI4 - C3 = A3 - A4 -! - M1 = (C1 + C2 + (OMEGA+A4)*C3)/C3 - M2 = ((OMEGA+A4)*C2 - A4*C3*CHI4)/C3 - M3 =-A4*C2*CHI4/C3 -! -! *** CALCULATE ROOTS *************************************************** -! - CALL POLY3 (M1, M2, M3, DELCL, ISLV) ! HCL DISSOLUTION - IF (ISLV.NE.0) THEN - DELCL = TINY ! TINY AMOUNTS OF HCL ASSUMED WHEN NO ROOT -! WRITE (ERRINF,'(1PE7.1)') TINY -! CALL PUSHERR (0022, ERRINF) ! WARNING ERROR: NO SOLUTION - ENDIF - DELCL = MIN(DELCL, CHI4) -! - DELNO = C1*DELCL/(C2 + C3*DELCL) - DELNO = MIN(DELNO, CHI3) -! - IF (DELCL.LT.ZERO .OR. DELNO.LT.ZERO .OR. - & DELCL.GT.CHI4 .OR. DELNO.GT.CHI3 ) THEN - DELCL = TINY ! TINY AMOUNTS OF HCL ASSUMED WHEN NO ROOT - DELNO = TINY -! WRITE (ERRINF,'(1PE7.1)') TINY -! CALL PUSHERR (0022, ERRINF) ! WARNING ERROR: NO SOLUTION - ENDIF -!CC -!CC *** COMPARE DELTA TO TOTAL H+ ; ESTIMATE EFFECT TO HSO4 *************** -!CC -!C IF ((DELCL+DELNO)/MOLAL(1).GT.0.1d0) THEN -!C WRITE (ERRINF,'(1PE10.3)') (DELCL+DELNO)/MOLAL(1)*100.0 -!C CALL PUSHERR (0021, ERRINF) -!C ENDIF -! -! *** EFFECT ON LIQUID PHASE ******************************************** -! -50 MOLAL(1) = MOLAL(1) + (DELNO+DELCL) ! H+ CHANGE - MOLAL(4) = MOLAL(4) + DELCL ! CL- CHANGE - MOLAL(7) = MOLAL(7) + DELNO ! NO3- CHANGE -! -! *** EFFECT ON GAS PHASE *********************************************** -! -55 GHCL = MAX(W(5) - MOLAL(4), TINY) - GHNO3 = MAX(W(4) - MOLAL(7), TINY) -! -60 RETURN -! -! *** END OF SUBROUTINE CALCNHA ***************************************** -! - END SUBROUTINE CALCNHA - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCNHP -! -! THIS SUBROUTINE CALCULATES THE GAS PHASE NITRIC AND HYDROCHLORIC -! ACID. CONCENTRATIONS ARE CALCULATED FROM THE DISSOLUTION -! EQUILIBRIA, USING (H+), (Cl-), (NO3-) IN THE AEROSOL PHASE. -! -! THIS IS THE VERSION USED BY THE INVERSE PROBLEM SOLVER -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCNHP() - Real(kind=fp) :: A3, A4, DELT -! -! *** IS THERE A LIQUID PHASE? ****************************************** -! - IF (WATER.LE.TINY) RETURN -! -! *** CALCULATE EQUILIBRIUM CONSTANTS *********************************** -! - A3 = XK3*R*TEMP*(WATER/GAMA(11))**2.0 - A4 = XK4*R*TEMP*(WATER/GAMA(10))**2.0 - MOLAL(1) = MOLAL(1) + WAER(4) + WAER(5) ! H+ increases because NO3, Cl are added. -! -! *** CALCULATE CONCENTRATIONS ****************************************** -! *** ASSUME THAT 'DELT' FROM HNO3 >> 'DELT' FROM HCL -! - CALL CALCNIAQ (WAER(4), MOLAL(1)+MOLAL(7)+MOLAL(4), DELT) - MOLAL(1) = MOLAL(1) - DELT - MOLAL(7) = WAER(4) - DELT ! NO3- = Waer(4) minus any turned into (HNO3aq) - GASAQ(3) = DELT -! - CALL CALCCLAQ (WAER(5), MOLAL(1)+MOLAL(7)+MOLAL(4), DELT) - MOLAL(1) = MOLAL(1) - DELT - MOLAL(4) = WAER(5) - DELT ! Cl- = Waer(4) minus any turned into (HNO3aq) - GASAQ(2) = DELT -! - GHNO3 = MOLAL(1)*MOLAL(7)/A4 - GHCL = MOLAL(1)*MOLAL(4)/A3 -! - RETURN -! -! *** END OF SUBROUTINE CALCNHP ***************************************** -! - END SUBROUTINE CALCNHP - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCHCO3 -! *** CORRECTS FOR H+ WHEN CRUSTALS ARE IN EXCESS -! -! CARBONATES ARE IN EXCESS, HCO3- IS ASSUMED A MINOR SPECIES, -! THE H+ CONCENTRATION IS CALCULATED FROM THE -! CO2(aq) + H2O <-> (HCO3-) + (H+) -! HCO3- <-> (H+) + (CO3--) EQUILIBRIUM. -! THE CO3-- CONCENTRATION IS ASSUMED NEGLIGIBLE WITH RESPECT TO HCO3- -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! -! SUBROUTINE CALCHCO3() -! Real(kind=fp) :: KAPA -!CC CHARACTER ERRINF*40 -!C -!C *** SPECIAL CASE; WATER=ZERO ****************************************** -!C -! IF (WATER.LE.TINY) THEN -! GOTO 521 -! ENDIF -!C -!C *** CALCULATE CO2 DISSOLUTION ***************************************** -!C -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT = 0.0d0 -!C DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -! KAPA = MOLAL(1) -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS *********************************** -!C -! ALFA = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -!C ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -!C *** CALCULATE CUBIC EQUATION COEFFICIENTS ***************************** -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS HCO3- -!C -! BB =-(KAPA + X + ALFA) -! CC = KAPA*X -! DD = BB*BB - 4.0*CC -!C -! IF (DD.GE.ZERO) THEN -! SQDD = SQRT(DD) -! DELT = 0.5*(-BB - SQDD) -! ELSE -! DELT = ZERO -! ENDIF -! -! ENDIF -!C -!C *** CALCULATE H+ ***************************************************** -!C -! MOLAL(1) = KAPA - DELT ! H+ -!C -!521 RETURN -!C -!C *** END OF SUBROUTINE CALCHCO3 *************************************** -!C -! END SUBROUTINE CALCHCO3 -!C - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCAMAQ -! *** THIS SUBROUTINE CALCULATES THE NH3(aq) GENERATED FROM (H,NH4+). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCAMAQ (NH4I, OHI, DELT) - !Real(kind=fp) :: NH4I - Real(kind=fp) :: A22, AKW, OM1, OM2, BB, CC, DD, DEL1, DEL2 - Real(kind=fp) :: NH4I, OHI, DELT -!C CHARACTER ERRINF*40 -! -! *** EQUILIBRIUM CONSTANTS -! - A22 = XK22/XKW/WATER*(GAMA(8)/GAMA(9))**2. ! GAMA(NH3) ASSUMED 1 - AKW = XKW *RH*WATER*WATER -! -! *** FIND ROOT -! - OM1 = NH4I - OM2 = OHI - BB =-(OM1+OM2+A22*AKW) - CC = OM1*OM2 - DD = SQRT(BB*BB-4.0*CC) - - DEL1 = 0.5D0*(-BB - DD) - DEL2 = 0.5D0*(-BB + DD) -! -! *** GET APPROPRIATE ROOT. -! - IF (DEL1.LT.ZERO) THEN - IF (DEL2.GT.NH4I .OR. DEL2.GT.OHI) THEN - DELT = ZERO - ELSE - DELT = DEL2 - ENDIF - ELSE - DELT = DEL1 - ENDIF -!C -!C *** COMPARE DELTA TO TOTAL NH4+ ; ESTIMATE EFFECT ********************* -!C -!C IF (DELTA/HYD.GT.0.1d0) THEN -!C WRITE (ERRINF,'(1PE10.3)') DELTA/HYD*100.0 -!C CALL PUSHERR (0020, ERRINF) -!C ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCAMAQ **************************************** -! - END SUBROUTINE CALCAMAQ - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCAMAQ2 -! -! THIS SUBROUTINE CALCULATES THE NH3(aq) GENERATED FROM (H,NH4+). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCAMAQ2 (GGNH3, NH4I, OHI, NH3AQ) - !Real(kind=fp) :: NH4I, NH3AQ - Real(kind=fp) :: GGNH3, NH4I, OHI, NH3AQ - Real(kind=fp) :: A22, AKW, ALF1, ALF2, BB, CC, DEL -! -! *** EQUILIBRIUM CONSTANTS -! - A22 = XK22/XKW/WATER*(GAMA(8)/GAMA(9))**2. ! GAMA(NH3) ASSUMED 1 - AKW = XKW *RH*WATER*WATER -! -! *** FIND ROOT -! - ALF1 = NH4I - GGNH3 - ALF2 = GGNH3 - BB = ALF1 + A22*AKW - CC =-A22*AKW*ALF2 - DEL = 0.5D0*(-BB + SQRT(BB*BB-4.0*CC)) -! -! *** ADJUST CONCENTRATIONS -! - NH4I = ALF1 + DEL - OHI = DEL - IF (OHI.LE.TINY) OHI = SQRT(AKW) ! If solution is neutral. - NH3AQ = ALF2 - DEL -! - RETURN -! -! *** END OF SUBROUTINE CALCAMAQ2 **************************************** -! - END SUBROUTINE CALCAMAQ2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCCLAQ -! -! THIS SUBROUTINE CALCULATES THE HCL(aq) GENERATED FROM (H+,CL-). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCCLAQ (CLI, HI, DELT) - !Real(kind=fp) :: CLI - Real(kind=fp) :: CLI, HI, DELT - Real(kind=fp) :: A32, OM1, OM2, BB, CC, DD, DEL1, DEL2 -! -! *** EQUILIBRIUM CONSTANTS -! - A32 = XK32*WATER/(GAMA(11))**2. ! GAMA(HCL) ASSUMED 1 -! -! *** FIND ROOT -! - OM1 = CLI - OM2 = HI - BB =-(OM1+OM2+A32) - CC = OM1*OM2 - DD = SQRT(BB*BB-4.0*CC) - - DEL1 = 0.5D0*(-BB - DD) - DEL2 = 0.5D0*(-BB + DD) -! -! *** GET APPROPRIATE ROOT. -! - IF (DEL1.LT.ZERO) THEN - IF (DEL2.LT.ZERO .OR. DEL2.GT.CLI .OR. DEL2.GT.HI) THEN - DELT = ZERO - ELSE - DELT = DEL2 - ENDIF - ELSE - DELT = DEL1 - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCCLAQ **************************************** -! - END SUBROUTINE CALCCLAQ - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCCLAQ2 -! -! THIS SUBROUTINE CALCULATES THE HCL(aq) GENERATED FROM (H+,CL-). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCCLAQ2 (GGCL, CLI, HI, CLAQ) - !Real(kind=fp) :: CLI - Real(kind=fp) :: GGCL, CLI, HI, CLAQ - Real(kind=fp) :: A32, AKW, ALF1, ALF2, COEF, DEL1 -! -! *** EQUILIBRIUM CONSTANTS -! - A32 = XK32*WATER/(GAMA(11))**2. ! GAMA(HCL) ASSUMED 1 - AKW = XKW *RH*WATER*WATER -! -! *** FIND ROOT -! - ALF1 = CLI - GGCL - ALF2 = GGCL - COEF = (ALF1+A32) - DEL1 = 0.5*(-COEF + SQRT(COEF*COEF+4.0*A32*ALF2)) -! -! *** CORRECT CONCENTRATIONS -! - CLI = ALF1 + DEL1 - HI = DEL1 - IF (HI.LE.TINY) HI = SQRT(AKW) ! If solution is neutral. - CLAQ = ALF2 - DEL1 -! - RETURN -! -! *** END OF SUBROUTINE CALCCLAQ2 **************************************** -! - END SUBROUTINE CALCCLAQ2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCNIAQ -! -! THIS SUBROUTINE CALCULATES THE HNO3(aq) GENERATED FROM (H,NO3-). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCNIAQ (NO3I, HI, DELT) - !Real(kind=fp) :: NO3I, HI, DELT - Real(kind=fp) :: NO3I, HI, DELT - Real(kind=fp) :: A42, OM1, OM2, BB, CC, DD, DEL1, DEL2 -! -! *** EQUILIBRIUM CONSTANTS -! - A42 = XK42*WATER/(GAMA(10))**2. ! GAMA(HNO3) ASSUMED 1 -! -! *** FIND ROOT -! - OM1 = NO3I - OM2 = HI - BB =-(OM1+OM2+A42) - CC = OM1*OM2 - DD = SQRT(BB*BB-4.0*CC) - - DEL1 = 0.5D0*(-BB - DD) - DEL2 = 0.5D0*(-BB + DD) -! -! *** GET APPROPRIATE ROOT. -! - IF (DEL1.LT.ZERO .OR. DEL1.GT.HI .OR. DEL1.GT.NO3I) THEN - !print *, DELT - DELT = ZERO - ELSE - DELT = DEL1 - RETURN - ENDIF -! - IF (DEL2.LT.ZERO .OR. DEL2.GT.NO3I .OR. DEL2.GT.HI) THEN - DELT = ZERO - ELSE - DELT = DEL2 - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCNIAQ **************************************** -! - END SUBROUTINE CALCNIAQ - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCNIAQ2 -! -! THIS SUBROUTINE CALCULATES THE UNDISSOCIATED HNO3(aq) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCNIAQ2 (GGNO3, NO3I, HI, NO3AQ) - !Real(kind=fp) :: NO3I, NO3AQ - Real(kind=fp) :: GGNO3, NO3I, HI, NO3AQ - Real(kind=fp) :: A42, AKW, ALF1, ALF2, ALF3, BB, CC, DEL1 -! -! *** EQUILIBRIUM CONSTANTS -! - A42 = XK42*WATER/(GAMA(10))**2. ! GAMA(HNO3) ASSUMED 1 - AKW = XKW *RH*WATER*WATER -! -! *** FIND ROOT -! - ALF1 = NO3I - GGNO3 - ALF2 = GGNO3 - ALF3 = HI -! - BB = ALF3 + ALF1 + A42 - CC = ALF3*ALF1 - A42*ALF2 - DEL1 = 0.5*(-BB + SQRT(BB*BB-4.0*CC)) -! -! *** CORRECT CONCENTRATIONS -! - NO3I = ALF1 + DEL1 - HI = ALF3 + DEL1 - IF (HI.LE.TINY) HI = SQRT(AKW) ! If solution is neutral. - NO3AQ = ALF2 - DEL1 -! - RETURN -! -! *** END OF SUBROUTINE CALCNIAQ2 **************************************** -! - END SUBROUTINE CALCNIAQ2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCMR -! *** THIS SUBROUTINE CALCULATES: -! 1. ION PAIR CONCENTRATIONS (FROM [MOLAR] ARRAY) -! 2. WATER CONTENT OF LIQUID AEROSOL PHASE (FROM ZSR CORRELATION) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCMR() - - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization - ! Moved to module variables -! - !CHARACTER SC*1 - Character*1 :: SC - Real(kind=fp) :: SO4I, HSO4I, AML5, TOTS4, FRNH4, FRNO3, FRCL - Integer :: I -! -! *** CALCULATE ION PAIR CONCENTRATIONS ACCORDING TO SPECIFIC CASE **** -! - SC =SCASE(1:1) ! SULRAT & SODRAT case -! -! *** NH4-SO4 SYSTEM ; SULFATE POOR CASE -! - IF (SC.EQ.'A') THEN - MOLALR(4) = MOLAL(5)+MOLAL(6) ! (NH4)2SO4 - CORRECT FOR SO4 TO HSO4 -! -! *** NH4-SO4 SYSTEM ; SULFATE RICH CASE ; NO FREE ACID -! - ELSE IF (SC.EQ.'B') THEN - SO4I = MOLAL(5)-MOLAL(1) ! CORRECT FOR HSO4 DISSOCIATION - HSO4I = MOLAL(6)+MOLAL(1) - IF (SO4I.LT.HSO4I) THEN - MOLALR(13) = SO4I ! [LC] = [SO4] - MOLALR(9) = MAX(HSO4I-SO4I, ZERO) ! NH4HSO4 - ELSE - MOLALR(13) = HSO4I ! [LC] = [HSO4] - MOLALR(4) = MAX(SO4I-HSO4I, ZERO) ! (NH4)2SO4 - ENDIF -! -! *** NH4-SO4 SYSTEM ; SULFATE RICH CASE ; FREE ACID -! - ELSE IF (SC.EQ.'C') THEN -#if defined( ISORROPIA_V22 ) - MOLALR(9) = MOLAL(3) ! NH4HSO4 -#else - MOLALR(4) = MOLAL(3) -#endif - MOLALR(7) = MAX(W(2)-W(3), ZERO) ! H2SO4 -! -! *** NH4-SO4-NO3 SYSTEM ; SULFATE POOR CASE -! - ELSE IF (SC.EQ.'D') THEN - MOLALR(4) = MOLAL(5) + MOLAL(6) ! (NH4)2SO4 - AML5 = MOLAL(3)-2.0*MOLALR(4) ! "free" NH4 - MOLALR(5) = MAX(MIN(AML5,MOLAL(7)), ZERO)! NH4NO3 = MIN("free", NO3) -! -! *** NH4-SO4-NO3 SYSTEM ; SULFATE RICH CASE ; NO FREE ACID -! - ELSE IF (SC.EQ.'E') THEN - SO4I = MAX(MOLAL(5)-MOLAL(1),ZERO) ! FROM HSO4 DISSOCIATION - HSO4I = MOLAL(6)+MOLAL(1) - IF (SO4I.LT.HSO4I) THEN - MOLALR(13) = SO4I ! [LC] = [SO4] - MOLALR(9) = MAX(HSO4I-SO4I, ZERO) ! NH4HSO4 - ELSE - MOLALR(13) = HSO4I ! [LC] = [HSO4] - MOLALR(4) = MAX(SO4I-HSO4I, ZERO) ! (NH4)2SO4 - ENDIF -! -! *** NH4-SO4-NO3 SYSTEM ; SULFATE RICH CASE ; FREE ACID -! - ELSE IF (SC.EQ.'F') THEN -#if defined( ISORROPIA_V22 ) - MOLALR(9) = MOLAL(3) ! NH4HSO4 -#else - MOLALR(4) = MOLAL(3) -#endif - MOLALR(7) = MAX(MOLAL(5)+MOLAL(6)-MOLAL(3),ZERO) ! H2SO4 -! -! *** NA-NH4-SO4-NO3-CL SYSTEM ; SULFATE POOR ; SODIUM POOR CASE -! - ELSE IF (SC.EQ.'G') THEN - MOLALR(2) = 0.5D0*MOLAL(2) ! NA2SO4 - TOTS4 = MOLAL(5)+MOLAL(6) ! Total SO4 - MOLALR(4) = MAX(TOTS4 - MOLALR(2), ZERO) ! (NH4)2SO4 - FRNH4 = MAX(MOLAL(3) - 2.0*MOLALR(4), ZERO) - MOLALR(5) = MIN(MOLAL(7),FRNH4) ! NH4NO3 - FRNH4 = MAX(FRNH4 - MOLALR(5), ZERO) - MOLALR(6) = MIN(MOLAL(4), FRNH4) ! NH4CL -! -! *** NA-NH4-SO4-NO3-CL SYSTEM ; SULFATE POOR ; SODIUM RICH CASE -! *** RETREIVE DISSOLVED SALTS DIRECTLY FROM COMMON BLOCK /SOLUT/ -! - ELSE IF (SC.EQ.'H') THEN - MOLALR(1) = PSI7 ! NACL - MOLALR(2) = PSI1 ! NA2SO4 - MOLALR(3) = PSI8 ! NANO3 - MOLALR(4) = ZERO ! (NH4)2SO4 - FRNO3 = MAX(MOLAL(7) - MOLALR(3), ZERO) ! "FREE" NO3 - FRCL = MAX(MOLAL(4) - MOLALR(1), ZERO) ! "FREE" CL - MOLALR(5) = MIN(MOLAL(3),FRNO3) ! NH4NO3 - FRNH4 = MAX(MOLAL(3) - MOLALR(5), ZERO) ! "FREE" NH3 - MOLALR(6) = MIN(FRCL, FRNH4) ! NH4CL -! -! *** NA-NH4-SO4-NO3-CL SYSTEM ; SULFATE RICH CASE ; NO FREE ACID -! *** RETREIVE DISSOLVED SALTS DIRECTLY FROM COMMON BLOCK /SOLUT/ -! - ELSE IF (SC.EQ.'I') THEN - MOLALR(04) = PSI5 ! (NH4)2SO4 - MOLALR(02) = PSI4 ! NA2SO4 - MOLALR(09) = PSI1 ! NH4HSO4 - MOLALR(12) = PSI3 ! NAHSO4 - MOLALR(13) = PSI2 ! LC -! -! *** NA-NH4-SO4-NO3-CL SYSTEM ; SULFATE RICH CASE ; FREE ACID -! - ELSE IF (SC.EQ.'J') THEN - MOLALR(09) = MOLAL(3) ! NH4HSO4 - MOLALR(12) = MOLAL(2) ! NAHSO4 - MOLALR(07) = MOLAL(5)+MOLAL(6)-MOLAL(3)-MOLAL(2) ! H2SO4 - MOLALR(07) = MAX(MOLALR(07),ZERO) -! -! *** NA-NH4-SO4-NO3-CL-CA-K-MG SYSTEM ; SULFATE POOR ; CR+NA POOR CASE -! - ELSE IF (SC.EQ.'O') THEN - MOLALR(2) = 0.5D0*MOLAL(2) ! NA2SO4 - TOTS4 = MOLAL(5)+MOLAL(6) ! Total SO4 - MOLALR(17)= 0.5*MOLAL(9) ! K2SO4 - MOLALR(21)= MOLAL(10) ! MGSO4 - MOLALR(4) = MAX(TOTS4 - MOLALR(2) - MOLALR(17) - & - MOLALR(21), ZERO) ! (NH4)2SO4 - FRNH4 = MAX(MOLAL(3) - 2.0*MOLALR(4), ZERO) - MOLALR(5) = MIN(MOLAL(7),FRNH4) ! NH4NO3 - FRNH4 = MAX(FRNH4 - MOLALR(5), ZERO) - MOLALR(6) = MIN(MOLAL(4), FRNH4) ! NH4CL -! -! *** NA-NH4-SO4-NO3-CL-CA-K-MG SYSTEM ; SULFATE POOR ; CR+NA RICH; CR POOR CASE -! *** RETREIVE DISSOLVED SALTS DIRECTLY FROM COMMON BLOCK /SOLUT/ -! - ELSE IF (SC.EQ.'M') THEN - MOLALR(1) = PSI7 ! NACL - MOLALR(2) = PSI1 ! NA2SO4 - MOLALR(3) = PSI8 ! NANO3 - MOLALR(4) = ZERO ! (NH4)2SO4 - FRNO3 = MAX(MOLAL(7) - MOLALR(3), ZERO) ! "FREE" NO3 - FRCL = MAX(MOLAL(4) - MOLALR(1), ZERO) ! "FREE" CL - MOLALR(5) = MIN(MOLAL(3),FRNO3) ! NH4NO3 - FRNH4 = MAX(MOLAL(3) - MOLALR(5), ZERO) ! "FREE" NH3 - MOLALR(6) = MIN(FRCL, FRNH4) ! NH4CL - MOLALR(17)= PSI9 ! K2SO4 - MOLALR(21)= PSI10 ! MGSO4 -! -! *** NA-NH4-SO4-NO3-CL-CA-K-MG SYSTEM ; SULFATE POOR ; CR+NA RICH; CR RICH CASE -! *** RETREIVE DISSOLVED SALTS DIRECTLY FROM COMMON BLOCK /SOLUT/ -! - ELSE IF (SC.EQ.'P') THEN - MOLALR(1) = PSI7 ! NACL - MOLALR(3) = PSI8 ! NANO3 - MOLALR(15)= PSI12 ! CANO32 - MOLALR(16)= PSI17 ! CACL2 - MOLALR(19)= PSI13 ! KNO3 - MOLALR(20)= PSI14 ! KCL - MOLALR(22)= PSI15 ! MGNO32 - MOLALR(23)= PSI16 ! MGCL2 - FRNO3 = MAX(MOLAL(7)-MOLALR(3)-2.0*MOLALR(15) - & -MOLALR(19)-2.0*MOLALR(22), ZERO) ! "FREE" NO3 - FRCL = MAX(MOLAL(4)-MOLALR(1)-2.0*MOLALR(16) - & -MOLALR(20)-2.0*MOLALR(23), ZERO) ! "FREE" CL - MOLALR(5) = MIN(MOLAL(3),FRNO3) ! NH4NO3 - FRNH4 = MAX(MOLAL(3) - MOLALR(5), ZERO) ! "FREE" NH3 - MOLALR(6) = MIN(FRCL, FRNH4) ! NH4CL - MOLALR(17)= PSI9 ! K2SO4 - MOLALR(21)= PSI10 ! MGSO4 -! -! *** NA-NH4-SO4-NO3-CL-CA-K-MG SYSTEM ; SULFATE RICH CASE ; NO FREE ACID -! - ELSE IF (SC.EQ.'L') THEN - MOLALR(04) = PSI5 ! (NH4)2SO4 - MOLALR(02) = PSI4 ! NA2SO4 - MOLALR(09) = PSI1 ! NH4HSO4 - MOLALR(12) = PSI3 ! NAHSO4 - MOLALR(13) = PSI2 ! LC - MOLALR(17) = PSI6 ! K2SO4 - MOLALR(21) = PSI7 ! MGSO4 - MOLALR(18) = PSI8 ! KHSO4 -! -! *** NA-NH4-SO4-NO3-CL-CA-K-MG SYSTEM ; SULFATE SUPER RICH CASE ; FREE ACID -! - ELSE IF (SC.EQ.'K') THEN - MOLALR(09) = MOLAL(3) ! NH4HSO4 - MOLALR(12) = MOLAL(2) ! NAHSO4 - MOLALR(14) = MOLAL(8) ! CASO4 - MOLALR(18) = MOLAL(9) ! KHSO4 -#if defined( ISORROPIA_V22) - MOLALR(21) = MOLAL(10) ! MGSO4 - MOLALR(07) = MOLAL(5)+MOLAL(6)-MOLAL(3) - & -MOLAL(2)-MOLAL(8)-MOLAL(9)-MOLAL(10)! H2SO4 -#else - MOLALR(07) = MOLAL(5)+MOLAL(6)-MOLAL(3) - & -MOLAL(2)-MOLAL(8)-MOLAL(9) -#endif - MOLALR(07) = MAX(MOLALR(07),ZERO) -! -! ======= REVERSE PROBLEMS =========================================== -! -! *** NH4-SO4-NO3 SYSTEM ; SULFATE POOR CASE -! - ELSE IF (SC.EQ.'N') THEN - MOLALR(4) = MOLAL(5) + MOLAL(6) ! (NH4)2SO4 - AML5 = WAER(3)-2.0*MOLALR(4) ! "free" NH4 - MOLALR(5) = MAX(MIN(AML5,WAER(4)), ZERO) ! NH4NO3 = MIN("free", NO3) -! -! *** NH4-SO4-NO3-NA-CL SYSTEM ; SULFATE POOR, SODIUM POOR CASE -! - ELSE IF (SC.EQ.'Q') THEN - MOLALR(2) = PSI1 ! NA2SO4 - MOLALR(4) = PSI6 ! (NH4)2SO4 - MOLALR(5) = PSI5 ! NH4NO3 - MOLALR(6) = PSI4 ! NH4CL -! -! *** NH4-SO4-NO3-NA-CL SYSTEM ; SULFATE POOR, SODIUM RICH CASE -! - ELSE IF (SC.EQ.'R') THEN - MOLALR(1) = PSI3 ! NACL - MOLALR(2) = PSI1 ! NA2SO4 - MOLALR(3) = PSI2 ! NANO3 - MOLALR(4) = ZERO ! (NH4)2SO4 - MOLALR(5) = PSI5 ! NH4NO3 - MOLALR(6) = PSI4 ! NH4CL -! -! *** NH4-SO4-NO3-NA-CL-CA-K-MG SYSTEM ; SULFATE POOR, CRUSTAL&SODIUM POOR CASE -! - ELSE IF (SC.EQ.'V') THEN - MOLALR(2) = PSI1 ! NA2SO4 - MOLALR(4) = PSI6 ! (NH4)2SO4 - MOLALR(5) = PSI5 ! NH4NO3 - MOLALR(6) = PSI4 ! NH4CL - MOLALR(17)= PSI7 ! K2SO4 - MOLALR(21)= PSI8 ! MGSO4 -! -! *** NH4-SO4-NO3-NA-CL-CA-K-MG SYSTEM ; SULFATE POOR, CRUSTAL&SODIUM RICH, CRUSTAL POOR CASE -! - ELSE IF (SC.EQ.'U') THEN - MOLALR(1) = PSI3 ! NACL - MOLALR(2) = PSI1 ! NA2SO4 - MOLALR(3) = PSI2 ! NANO3 - MOLALR(5) = PSI5 ! NH4NO3 - MOLALR(6) = PSI4 ! NH4CL - MOLALR(17)= PSI7 ! K2SO4 - MOLALR(21)= PSI8 ! MGSO4 -! -! *** NH4-SO4-NO3-NA-CL-CA-K-MG SYSTEM ; SULFATE POOR, CRUSTAL&SODIUM RICH, CRUSTAL RICH CASE -! - ELSE IF (SC.EQ.'W') THEN - MOLALR(1) = PSI7 ! NACL - MOLALR(3) = PSI8 ! NANO3 - MOLALR(5) = PSI6 ! NH4NO3 - MOLALR(6) = PSI5 ! NH4CL - MOLALR(15)= PSI12 ! CANO32 - MOLALR(16)= PSI17 ! CACL2 - MOLALR(17)= PSI9 ! K2SO4 - MOLALR(19)= PSI13 ! KNO3 - MOLALR(20)= PSI14 ! KCL - MOLALR(21)= PSI10 ! MGSO4 - MOLALR(22)= PSI15 ! MGNO32 - MOLALR(23)= PSI16 ! MGCL2 -! -! *** UNKNOWN CASE -! -! ELSE -! CALL PUSHERR (1001, ' ') ! FATAL ERROR: CASE NOT SUPPORTED - ENDIF -! -! *** CALCULATE WATER CONTENT ; ZSR CORRELATION *********************** -! - WATER = ZERO - DO 10 I=1,NPAIR - WATER = WATER + MOLALR(I)/M0(I) -10 CONTINUE - WATER = MAX(WATER, TINY) -! - RETURN -! -! *** END OF SUBROUTINE CALCMR ****************************************** -! - END SUBROUTINE CALCMR -! - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCMDRH -! -! THIS IS THE CASE WHERE THE RELATIVE HUMIDITY IS IN THE MUTUAL -! DRH REGION. THE SOLUTION IS ASSUMED TO BE THE SUM OF TWO WEIGHTED -! SOLUTIONS ; THE 'DRY' SOLUTION (SUBROUTINE DRYCASE) AND THE -! 'SATURATED LIQUID' SOLUTION (SUBROUTINE LIQCASE). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCMDRH (RHI, RHDRY, RHLIQ, DRYCASE, LIQCASE) - !EXTERNAL DRYCASE, LIQCASE - Real(kind=fp) :: RHI, RHDRY, RHLIQ - Real(kind=fp) :: WF, ONEMWF, GHNO3O - Real(kind=fp) :: CNH42SO, CLCO, CNH4HSO, CNH4N3O, CNH4CLO - Real(kind=fp) :: CNAHSO, CNA2SO, CNANO, CNACLO, GNH3O, GHCLO - Real(kind=fp) :: DAMSUL, DSOSUL, DAMBIS, DSOBIS, DLC, DAMNIT - Real(kind=fp) :: DAMCHL, DSONIT, DSOCHL, DAMG, DHAG, DNAG - Integer :: I - -! -! *** FIND WEIGHT FACTOR ********************************************** -! - IF (WFTYP.EQ.0) THEN - WF = ONE - ELSEIF (WFTYP.EQ.1) THEN - WF = 0.5D0 - ELSE - WF = (RHLIQ-RHI)/(RHLIQ-RHDRY) - ENDIF - ONEMWF = ONE - WF -! -! *** FIND FIRST SECTION ; DRY ONE ************************************ -! - CALL DRYCASE - IF (ABS(ONEMWF).LE.1D-5) GOTO 200 ! DRY AEROSOL -! - CNH42SO = CNH42S4 ! FIRST (DRY) SOLUTION - CNH4HSO = CNH4HS4 - CLCO = CLC - CNH4N3O = CNH4NO3 - CNH4CLO = CNH4CL - CNA2SO = CNA2SO4 - CNAHSO = CNAHSO4 - CNANO = CNANO3 - CNACLO = CNACL - GNH3O = GNH3 - GHNO3O = GHNO3 - GHCLO = GHCL -! -! *** FIND SECOND SECTION ; DRY & LIQUID ****************************** -! - CNH42S4 = ZERO - CNH4HS4 = ZERO - CLC = ZERO - CNH4NO3 = ZERO - CNH4CL = ZERO - CNA2SO4 = ZERO - CNAHSO4 = ZERO - CNANO3 = ZERO - CNACL = ZERO - GNH3 = ZERO - GHNO3 = ZERO - GHCL = ZERO - CALL LIQCASE ! SECOND (LIQUID) SOLUTION -! -! *** ADJUST THINGS FOR THE CASE THAT THE LIQUID SUB PREDICTS DRY AEROSOL -! - IF (WATER.LE.TINY) THEN - DO 100 I=1,NIONS - MOLAL(I)= ZERO ! Aqueous phase - 100 CONTINUE - WATER = ZERO -! - CNH42S4 = CNH42SO ! Solid phase - CNA2SO4 = CNA2SO - CNAHSO4 = CNAHSO - CNH4HS4 = CNH4HSO - CLC = CLCO - CNH4NO3 = CNH4N3O - CNANO3 = CNANO - CNACL = CNACLO - CNH4CL = CNH4CLO -! - GNH3 = GNH3O ! Gas phase - GHNO3 = GHNO3O - GHCL = GHCLO -! - GOTO 200 - ENDIF -! -! *** FIND SALT DISSOLUTIONS BETWEEN DRY & LIQUID SOLUTIONS. -! - DAMSUL = CNH42SO - CNH42S4 - DSOSUL = CNA2SO - CNA2SO4 - DAMBIS = CNH4HSO - CNH4HS4 - DSOBIS = CNAHSO - CNAHSO4 - DLC = CLCO - CLC - DAMNIT = CNH4N3O - CNH4NO3 - DAMCHL = CNH4CLO - CNH4CL - DSONIT = CNANO - CNANO3 - DSOCHL = CNACLO - CNACL -! -! *** FIND GAS DISSOLUTIONS BETWEEN DRY & LIQUID SOLUTIONS. -! - DAMG = GNH3O - GNH3 - DHAG = GHCLO - GHCL - DNAG = GHNO3O - GHNO3 -! -! *** FIND SOLUTION AT MDRH BY WEIGHTING DRY & LIQUID SOLUTIONS. -! -! LIQUID -! - MOLAL(1)= ONEMWF*MOLAL(1) ! H+ - MOLAL(2)= ONEMWF*(2.0*DSOSUL + DSOBIS + DSONIT + DSOCHL) ! NA+ - MOLAL(3)= ONEMWF*(2.0*DAMSUL + DAMG + DAMBIS + DAMCHL + - & 3.0*DLC + DAMNIT ) ! NH4+ - MOLAL(4)= ONEMWF*( DAMCHL + DSOCHL + DHAG) ! CL- - MOLAL(5)= ONEMWF*( DAMSUL + DSOSUL + DLC - MOLAL(6)) ! SO4-- !VB 17 Sept 2001 - MOLAL(6)= ONEMWF*( MOLAL(6) + DSOBIS + DAMBIS + DLC) ! HSO4- - MOLAL(7)= ONEMWF*( DAMNIT + DSONIT + DNAG) ! NO3- - WATER = ONEMWF*WATER -! -! SOLID -! - CNH42S4 = WF*CNH42SO + ONEMWF*CNH42S4 - CNA2SO4 = WF*CNA2SO + ONEMWF*CNA2SO4 - CNAHSO4 = WF*CNAHSO + ONEMWF*CNAHSO4 - CNH4HS4 = WF*CNH4HSO + ONEMWF*CNH4HS4 - CLC = WF*CLCO + ONEMWF*CLC - CNH4NO3 = WF*CNH4N3O + ONEMWF*CNH4NO3 - CNANO3 = WF*CNANO + ONEMWF*CNANO3 - CNACL = WF*CNACLO + ONEMWF*CNACL - CNH4CL = WF*CNH4CLO + ONEMWF*CNH4CL -! -! GAS -! - GNH3 = WF*GNH3O + ONEMWF*GNH3 - GHNO3 = WF*GHNO3O + ONEMWF*GHNO3 - GHCL = WF*GHCLO + ONEMWF*GHCL -! -! *** RETURN POINT -! -200 RETURN -! -! *** END OF SUBROUTINE CALCMDRH **************************************** -! - END SUBROUTINE CALCMDRH - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCMDRH2 -! -! THIS IS THE CASE WHERE THE RELATIVE HUMIDITY IS IN THE MUTUAL -! DRH REGION. THE SOLUTION IS ASSUMED TO BE THE SUM OF TWO WEIGHTED -! SOLUTIONS ; THE 'DRY' SOLUTION (SUBROUTINE DRYCASE) AND THE -! 'SATURATED LIQUID' SOLUTION (SUBROUTINE LIQCASE). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCMDRH2 (RHI, RHDRY, RHLIQ, DRYCASE, LIQCASE) - !EXTERNAL DRYCASE, LIQCASE - Real(kind=fp) :: RHI, RHDRY, RHLIQ - Real(kind=fp) :: WF, ONEMWF - Real(kind=fp) :: CNH42SO, CNH4HSO, CLCO, CNH4N3O, CNH4CLO - Real(kind=fp) :: CNAHSO, CNANO, CNACLO, GNH3O, GHCLO, CCASO - Real(kind=fp) :: CMGSO, CKHSO, CCAN32O, CCA2L, CKN3O, CKCLO - Real(kind=fp) :: CMGC2L, GHNO3O, CCAC2L, DAMSUL, DSOSUL, DAMBIS - Real(kind=fp) :: DLC, DAMNIT, DAMCHL, DSONIT, DSOCHL, DCASUL - Real(kind=fp) :: DMGSUL, DPOBIS, DCANIT, DCACHL, DPONIT, DPOCHL - Real(kind=fp) :: DMGCHL, DAMG, DHAG, DNAG, DMGNIT - Real(kind=fp) :: CNA2SO, CK2SO, CMGN32O, DSOBIS, DPOSUL - Integer :: I -! -! *** FIND WEIGHT FACTOR ********************************************** -! - IF (WFTYP.EQ.0) THEN - WF = ONE - ELSEIF (WFTYP.EQ.1) THEN - WF = 0.5D0 - ELSE - WF = (RHLIQ-RHI)/(RHLIQ-RHDRY) - ENDIF - ONEMWF = ONE - WF -! -! *** FIND FIRST SECTION ; DRY ONE ************************************ -! - CALL DRYCASE - IF (ABS(ONEMWF).LE.1D-5) GOTO 200 ! DRY AEROSOL -! - CNH42SO = CNH42S4 ! FIRST (DRY) SOLUTION - CNH4HSO = CNH4HS4 - CLCO = CLC - CNH4N3O = CNH4NO3 - CNH4CLO = CNH4CL - CNA2SO = CNA2SO4 - CNAHSO = CNAHSO4 - CNANO = CNANO3 - CNACLO = CNACL - GNH3O = GNH3 - GHNO3O = GHNO3 - GHCLO = GHCL -! - CCASO = CCASO4 - CK2SO = CK2SO4 - CMGSO = CMGSO4 - CKHSO = CKHSO4 - CCAN32O = CCANO32 - CCAC2L = CCACL2 - CKN3O = CKNO3 - CKCLO = CKCL - CMGN32O = CMGNO32 - CMGC2L = CMGCL2 -! -! *** FIND SECOND SECTION ; DRY & LIQUID ****************************** -! - CNH42S4 = ZERO - CNH4HS4 = ZERO - CLC = ZERO - CNH4NO3 = ZERO - CNH4CL = ZERO - CNA2SO4 = ZERO - CNAHSO4 = ZERO - CNANO3 = ZERO - CNACL = ZERO - GNH3 = ZERO - GHNO3 = ZERO - GHCL = ZERO -! - CCASO4 = ZERO - CK2SO4 = ZERO - CMGSO4 = ZERO - CKHSO4 = ZERO - CCANO32 = ZERO - CCACL2 = ZERO - CKNO3 = ZERO - CKCL = ZERO - CMGNO32 = ZERO - CMGCL2 = ZERO -! - CALL LIQCASE ! SECOND (LIQUID) SOLUTION -! -! *** ADJUST THINGS FOR THE CASE THAT THE LIQUID SUB PREDICTS DRY AEROSOL -! - IF (WATER.LE.TINY) THEN - DO 100 I=1,NIONS - MOLAL(I)= ZERO ! Aqueous phase - 100 CONTINUE - WATER = ZERO -! - CNH42S4 = CNH42SO ! Solid phase - CNA2SO4 = CNA2SO - CNAHSO4 = CNAHSO - CNH4HS4 = CNH4HSO - CLC = CLCO - CNH4NO3 = CNH4N3O - CNANO3 = CNANO - CNACL = CNACLO - CNH4CL = CNH4CLO -! - GNH3 = GNH3O ! Gas phase - GHNO3 = GHNO3O - GHCL = GHCLO -! - CCASO4 = CCASO - CK2SO4 = CK2SO - CMGSO4 = CMGSO - CKHSO4 = CKHSO - CCANO32 = CCAN32O - CCACL2 = CCAC2L - CKNO3 = CKN3O - CKCL = CKCLO - CMGNO32 = CMGN32O - CMGCL2 = CMGC2L -! - GOTO 200 - ENDIF -! -! *** FIND SALT DISSOLUTIONS BETWEEN DRY & LIQUID SOLUTIONS. -! - DAMSUL = CNH42SO - CNH42S4 - DSOSUL = CNA2SO - CNA2SO4 - DAMBIS = CNH4HSO - CNH4HS4 - DSOBIS = CNAHSO - CNAHSO4 - DLC = CLCO - CLC - DAMNIT = CNH4N3O - CNH4NO3 - DAMCHL = CNH4CLO - CNH4CL - DSONIT = CNANO - CNANO3 - DSOCHL = CNACLO - CNACL -! - DCASUL = CCASO - CCASO4 - DPOSUL = CK2SO - CK2SO4 - DMGSUL = CMGSO - CMGSO4 - DPOBIS = CKHSO - CKHSO4 - DCANIT = CCAN32O - CCANO32 - DCACHL = CCAC2L - CCACL2 - DPONIT = CKN3O - CKNO3 - DPOCHL = CKCLO - CKCL - DMGNIT = CMGN32O - CMGNO32 - DMGCHL = CMGC2L - CMGCL2 -! -! *** FIND GAS DISSOLUTIONS BETWEEN DRY & LIQUID SOLUTIONS. -! - DAMG = GNH3O - GNH3 - DHAG = GHCLO - GHCL - DNAG = GHNO3O - GHNO3 -! -! *** FIND SOLUTION AT MDRH BY WEIGHTING DRY & LIQUID SOLUTIONS. -! -! LIQUID -! - MOLAL(1) = ONEMWF*MOLAL(1) ! H+ - MOLAL(2) = ONEMWF*(2.0*DSOSUL + DSOBIS + DSONIT + DSOCHL) ! NA+ - MOLAL(3) = ONEMWF*(2.0*DAMSUL + DAMG + DAMBIS + DAMCHL + - & 3.0*DLC + DAMNIT ) ! NH4+ - MOLAL(4) = ONEMWF*(DAMCHL + DSOCHL + DHAG + 2.0*DCACHL + - & 2.0*DMGCHL + DPOCHL) ! CL- - MOLAL(5) = ONEMWF*(DAMSUL + DSOSUL + DLC - MOLAL(6) - & +DCASUL + DPOSUL + DMGSUL) ! SO4-- !VB 17 Sept 2001 - MOLAL(6) = ONEMWF*(MOLAL(6) + DSOBIS + DAMBIS + DLC + DPOBIS) ! HSO4- - MOLAL(7) = ONEMWF*(DAMNIT + DSONIT + DNAG + 2.0*DCANIT - & + 2.0*DMGNIT + DPONIT) ! NO3- - MOLAL(8) = ONEMWF*(DCASUL + DCANIT + DCACHL) ! CA2+ - MOLAL(9) = ONEMWF*(2.0*DPOSUL + DPONIT + DPOCHL + DPOBIS) ! K+ - MOLAL(10)= ONEMWF*(DMGSUL + DMGNIT + DMGCHL) ! MG2+ - WATER = ONEMWF*WATER -! -! SOLID -! - CNH42S4 = WF*CNH42SO + ONEMWF*CNH42S4 - CNA2SO4 = WF*CNA2SO + ONEMWF*CNA2SO4 - CNAHSO4 = WF*CNAHSO + ONEMWF*CNAHSO4 - CNH4HS4 = WF*CNH4HSO + ONEMWF*CNH4HS4 - CLC = WF*CLCO + ONEMWF*CLC - CNH4NO3 = WF*CNH4N3O + ONEMWF*CNH4NO3 - CNANO3 = WF*CNANO + ONEMWF*CNANO3 - CNACL = WF*CNACLO + ONEMWF*CNACL - CNH4CL = WF*CNH4CLO + ONEMWF*CNH4CL -! - CCASO4 = WF*CCASO + ONEMWF*CCASO4 - CK2SO4 = WF*CK2SO + ONEMWF*CK2SO4 - CMGSO4 = WF*CMGSO + ONEMWF*CMGSO4 - CKHSO4 = WF*CKHSO + ONEMWF*CKHSO4 - CCANO32 = WF*CCAN32O + ONEMWF*CCANO32 - CCACL2 = WF*CCAC2L + ONEMWF*CCACL2 - CMGNO32 = WF*CMGN32O + ONEMWF*CMGNO32 - CMGCL2 = WF*CMGC2L + ONEMWF*CMGCL2 - CKCL = WF*CKCLO + ONEMWF*CKCL -! -! GAS -! - GNH3 = WF*GNH3O + ONEMWF*GNH3 - GHNO3 = WF*GHNO3O + ONEMWF*GHNO3 - GHCL = WF*GHCLO + ONEMWF*GHCL -! -! *** RETURN POINT -! -200 RETURN -! -! *** END OF SUBROUTINE CALCMDRH2 **************************************** -! - END SUBROUTINE CALCMDRH2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCMDRP -! -! THIS IS THE CASE WHERE THE RELATIVE HUMIDITY IS IN THE MUTUAL -! DRH REGION. THE SOLUTION IS ASSUMED TO BE THE SUM OF TWO WEIGHTED -! SOLUTIONS ; THE 'DRY' SOLUTION (SUBROUTINE DRYCASE) AND THE -! 'SATURATED LIQUID' SOLUTION (SUBROUTINE LIQCASE). (REVERSE PROBLEM) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCMDRP (RHI, RHDRY, RHLIQ, DRYCASE, LIQCASE) - !EXTERNAL DRYCASE, LIQCASE - Real(kind=fp) :: RHI, RHDRY, RHLIQ - Real(kind=fp) :: WF, ONEMWF, CNH42SO, CNH4HSO, CLCO, CNH4N3O - Real(kind=fp) :: CNA2SO, CNAHSO, CNACLO, CNANO, DAMBIS, DSOBIS - Real(kind=fp) :: HIEQ, HIEN, A2, A3, A4, A8, CNH4CLO, DLC - Integer :: I -! -! *** FIND WEIGHT FACTOR ********************************************** -! - IF (WFTYP.EQ.0) THEN - WF = ONE - ELSEIF (WFTYP.EQ.1) THEN - WF = 0.5D0 - ELSE - WF = (RHLIQ-RHI)/(RHLIQ-RHDRY) - ENDIF - ONEMWF = ONE - WF -! -! *** FIND FIRST SECTION ; DRY ONE ************************************ -! - CALL DRYCASE - IF (ABS(ONEMWF).LE.1D-5) GOTO 200 ! DRY AEROSOL -! - CNH42SO = CNH42S4 ! FIRST (DRY) SOLUTION - CNH4HSO = CNH4HS4 - CLCO = CLC - CNH4N3O = CNH4NO3 - CNH4CLO = CNH4CL - CNA2SO = CNA2SO4 - CNAHSO = CNAHSO4 - CNANO = CNANO3 - CNACLO = CNACL -! -! *** FIND SECOND SECTION ; DRY & LIQUID ****************************** -! - CNH42S4 = ZERO - CNH4HS4 = ZERO - CLC = ZERO - CNH4NO3 = ZERO - CNH4CL = ZERO - CNA2SO4 = ZERO - CNAHSO4 = ZERO - CNANO3 = ZERO - CNACL = ZERO - GNH3 = ZERO - GHNO3 = ZERO - GHCL = ZERO - CALL LIQCASE ! SECOND (LIQUID) SOLUTION -! -! *** ADJUST THINGS FOR THE CASE THAT THE LIQUID SUB PREDICTS DRY AEROSOL -! - IF (WATER.LE.TINY) THEN - WATER = ZERO - DO 100 I=1,NIONS - MOLAL(I)= ZERO - 100 CONTINUE - CALL DRYCASE - GOTO 200 - ENDIF -! -! *** FIND SALT DISSOLUTIONS BETWEEN DRY & LIQUID SOLUTIONS. -! - DAMBIS = CNH4HSO - CNH4HS4 - DSOBIS = CNAHSO - CNAHSO4 - DLC = CLCO - CLC -! -! *** FIND SOLUTION AT MDRH BY WEIGHTING DRY & LIQUID SOLUTIONS. -! -! *** SOLID -! - CNH42S4 = WF*CNH42SO + ONEMWF*CNH42S4 - CNA2SO4 = WF*CNA2SO + ONEMWF*CNA2SO4 - CNAHSO4 = WF*CNAHSO + ONEMWF*CNAHSO4 - CNH4HS4 = WF*CNH4HSO + ONEMWF*CNH4HS4 - CLC = WF*CLCO + ONEMWF*CLC - CNH4NO3 = WF*CNH4N3O + ONEMWF*CNH4NO3 - CNANO3 = WF*CNANO + ONEMWF*CNANO3 - CNACL = WF*CNACLO + ONEMWF*CNACL - CNH4CL = WF*CNH4CLO + ONEMWF*CNH4CL -! -! *** LIQUID -! - WATER = ONEMWF*WATER -! - MOLAL(2)= WAER(1) - 2.0*CNA2SO4 - CNAHSO4 - CNANO3 - - & CNACL ! NA+ - MOLAL(3)= WAER(3) - 2.0*CNH42S4 - CNH4HS4 - CNH4CL - - & 3.0*CLC - CNH4NO3 ! NH4+ - MOLAL(4)= WAER(5) - CNACL - CNH4CL ! CL- - MOLAL(7)= WAER(4) - CNANO3 - CNH4NO3 ! NO3- - MOLAL(6)= ONEMWF*(MOLAL(6) + DSOBIS + DAMBIS + DLC) ! HSO4- - MOLAL(5)= WAER(2) - MOLAL(6) - CLC - CNH42S4 - CNA2SO4 ! SO4-- -! - A8 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. - IF (MOLAL(5).LE.TINY) THEN - HIEQ = SQRT(XKW *RH*WATER*WATER) ! Neutral solution - ELSE - HIEQ = A8*MOLAL(6)/MOLAL(5) - ENDIF - HIEN = MOLAL(4) + MOLAL(7) + MOLAL(6) + 2.0*MOLAL(5) - - & MOLAL(2) - MOLAL(3) - MOLAL(1)= MAX (HIEQ, HIEN) ! H+ -! -! *** GAS (ACTIVITY COEFS FROM LIQUID SOLUTION) -! - A2 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2. ! NH3 <==> NH4+ - A3 = XK4 *R*TEMP*(WATER/GAMA(10))**2. ! HNO3 <==> NO3- - A4 = XK3 *R*TEMP*(WATER/GAMA(11))**2. ! HCL <==> CL- -! - GNH3 = MOLAL(3)/MAX(MOLAL(1),TINY)/A2 - GHNO3 = MOLAL(1)*MOLAL(7)/A3 - GHCL = MOLAL(1)*MOLAL(4)/A4 -! -200 RETURN -! -! *** END OF SUBROUTINE CALCMDRP **************************************** -! - END SUBROUTINE CALCMDRP - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCMDRPII -! -! THIS IS THE CASE WHERE THE RELATIVE HUMIDITY IS IN THE MUTUAL -! DRH REGION. THE SOLUTION IS ASSUMED TO BE THE SUM OF TWO WEIGHTED -! SOLUTIONS ; THE 'DRY' SOLUTION (SUBROUTINE DRYCASE) AND THE -! 'SATURATED LIQUID' SOLUTION (SUBROUTINE LIQCASE). (REVERSE PROBLEM) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCMDRPII (RHI, RHDRY, RHLIQ, DRYCASE, LIQCASE) - !EXTERNAL DRYCASE, LIQCASE - Real(kind=fp) :: RHI, RHDRY, RHLIQ - Real(kind=fp) :: WF, ONEMWF, CNH42SO, CNH4HSO, CLCO, CNH4N3O - Real(kind=fp) :: CNA2SO, CNAHSO, CNACLO, CNANO, CCASO, CK2SO - Real(kind=fp) :: CKHSO, CCAN32O, CCAC2L, CKN3O, CKCLO, CMGN32O - Real(kind=fp) :: DAMBIS, DSOBIS, DLC, DPOBIS, CNH4CLO, CMGSO - Real(kind=fp) :: HIEQ, HIEN, A2, A3, A4, A8, CMGC2L - Integer :: I -! -! *** FIND WEIGHT FACTOR ********************************************** -! - IF (WFTYP.EQ.0) THEN - WF = ONE - ELSEIF (WFTYP.EQ.1) THEN - WF = 0.5D0 - ELSE - WF = (RHLIQ-RHI)/(RHLIQ-RHDRY) - ENDIF - ONEMWF = ONE - WF -! -! *** FIND FIRST SECTION ; DRY ONE ************************************ -! - CALL DRYCASE - IF (ABS(ONEMWF).LE.1D-5) GOTO 200 ! DRY AEROSOL -! - CNH42SO = CNH42S4 ! FIRST (DRY) SOLUTION - CNH4HSO = CNH4HS4 - CLCO = CLC - CNH4N3O = CNH4NO3 - CNH4CLO = CNH4CL - CNA2SO = CNA2SO4 - CNAHSO = CNAHSO4 - CNANO = CNANO3 - CNACLO = CNACL -! - CCASO = CCASO4 - CK2SO = CK2SO4 - CMGSO = CMGSO4 - CKHSO = CKHSO4 - CCAN32O = CCANO32 - CCAC2L = CCACL2 - CKN3O = CKNO3 - CKCLO = CKCL - CMGN32O = CMGNO32 - CMGC2L = CMGCL2 -! -! *** FIND SECOND SECTION ; DRY & LIQUID ****************************** -! - CNH42S4 = ZERO - CNH4HS4 = ZERO - CLC = ZERO - CNH4NO3 = ZERO - CNH4CL = ZERO - CNA2SO4 = ZERO - CNAHSO4 = ZERO - CNANO3 = ZERO - CNACL = ZERO - GNH3 = ZERO - GHNO3 = ZERO - GHCL = ZERO -! - CCASO4 = ZERO - CK2SO4 = ZERO - CMGSO4 = ZERO - CKHSO4 = ZERO - CCANO32 = ZERO - CCACL2 = ZERO - CKNO3 = ZERO - CKCL = ZERO - CMGNO32 = ZERO - CMGCL2 = ZERO -! - CALL LIQCASE ! SECOND (LIQUID) SOLUTION -! -! *** ADJUST THINGS FOR THE CASE THAT THE LIQUID SUB PREDICTS DRY AEROSOL -! - IF (WATER.LE.TINY) THEN - WATER = ZERO - DO 100 I=1,NIONS - MOLAL(I)= ZERO - 100 CONTINUE - CALL DRYCASE - GOTO 200 - ENDIF -! -! *** FIND SALT DISSOLUTIONS BETWEEN DRY & LIQUID SOLUTIONS. -! - DAMBIS = CNH4HSO - CNH4HS4 - DSOBIS = CNAHSO - CNAHSO4 - DLC = CLCO - CLC - DPOBIS = CKHSO - CKHSO4 -! -! *** FIND SOLUTION AT MDRH BY WEIGHTING DRY & LIQUID SOLUTIONS. -! -! *** SOLID -! - CNH42S4 = WF*CNH42SO + ONEMWF*CNH42S4 - CNA2SO4 = WF*CNA2SO + ONEMWF*CNA2SO4 - CNAHSO4 = WF*CNAHSO + ONEMWF*CNAHSO4 - CNH4HS4 = WF*CNH4HSO + ONEMWF*CNH4HS4 - CLC = WF*CLCO + ONEMWF*CLC - CNH4NO3 = WF*CNH4N3O + ONEMWF*CNH4NO3 - CNANO3 = WF*CNANO + ONEMWF*CNANO3 - CNACL = WF*CNACLO + ONEMWF*CNACL - CNH4CL = WF*CNH4CLO + ONEMWF*CNH4CL -! - CCASO4 = WF*CCASO + ONEMWF*CCASO4 - CK2SO4 = WF*CK2SO + ONEMWF*CK2SO4 - CMGSO4 = WF*CMGSO + ONEMWF*CMGSO4 - CKHSO4 = WF*CKHSO + ONEMWF*CKHSO4 - CCANO32 = WF*CCAN32O + ONEMWF*CCANO32 - CCACL2 = WF*CCAC2L + ONEMWF*CCACL2 - CMGNO32 = WF*CMGN32O + ONEMWF*CMGNO32 - CMGCL2 = WF*CMGC2L + ONEMWF*CMGCL2 - CKCL = WF*CKCLO + ONEMWF*CKCL -! -! *** LIQUID -! - WATER = ONEMWF*WATER -! - MOLAL(2)= WAER(1) - 2.0*CNA2SO4 - CNAHSO4 - CNANO3 - - & CNACL ! NA+ - MOLAL(3)= WAER(3) - 2.0*CNH42S4 - CNH4HS4 - CNH4CL - - & 3.0*CLC - CNH4NO3 ! NH4+ - MOLAL(4)= WAER(5) - CNACL - CNH4CL - 2.0*CCACL2 - - & 2.0*CMGCL2 - CKCL ! CL- - MOLAL(7)= WAER(4) - CNANO3 - CNH4NO3 - CKNO3 - & - 2.0*CCANO32 - 2.0*CMGNO32 ! NO3- - MOLAL(6)= ONEMWF*(MOLAL(6) + DSOBIS + DAMBIS + DLC + DPOBIS) ! HSO4- - MOLAL(5)= WAER(2) - MOLAL(6) - CLC - CNH42S4 - CNA2SO4 - & - CCASO4 - CK2SO4 - CMGSO4 ! SO4-- - MOLAL(8)= WAER(6) - CCASO4 - CCANO32 - CCACL2 ! CA++ - MOLAL(9)= WAER(7) - 2.0*CK2SO4 - CKNO3 - CKCL - CKHSO4 ! K+ - MOLAL(10)=WAER(8) - CMGSO4 - CMGNO32 - CMGCL2 ! MG++ -! - A8 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. - IF (MOLAL(5).LE.TINY) THEN - HIEQ = SQRT(XKW *RH*WATER*WATER) ! Neutral solution - ELSE - HIEQ = A8*MOLAL(6)/MOLAL(5) - ENDIF - HIEN = MOLAL(4) + MOLAL(7) + MOLAL(6) + 2.0*MOLAL(5) - - & MOLAL(2) - MOLAL(3) - MOLAL(1)= MAX (HIEQ, HIEN) ! H+ -! -! *** GAS (ACTIVITY COEFS FROM LIQUID SOLUTION) -! - A2 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2. ! NH3 <==> NH4+ - A3 = XK4 *R*TEMP*(WATER/GAMA(10))**2. ! HNO3 <==> NO3- - A4 = XK3 *R*TEMP*(WATER/GAMA(11))**2. ! HCL <==> CL- -! - GNH3 = MOLAL(3)/MAX(MOLAL(1),TINY)/A2 - GHNO3 = MOLAL(1)*MOLAL(7)/A3 - GHCL = MOLAL(1)*MOLAL(4)/A4 -! -200 RETURN -! -! *** END OF SUBROUTINE CALCMDRPII ************************************** -! - END SUBROUTINE CALCMDRPII - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCHS4 -! *** THIS SUBROUTINE CALCULATES THE HSO4 GENERATED FROM (H,SO4). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCHS4 (HI, SO4I, HSO4I, DELTA) -!C CHARACTER ERRINF*40 - Real(kind=fp) :: HI, SO4I, HSO4I, DELTA - Real(kind=fp) :: A8, BB, CC, DD, SQDD, DELTA1, DELTA2 -! -! *** IF TOO LITTLE WATER, DONT SOLVE -! - IF (WATER.LE.1d1*TINY) THEN - DELTA = ZERO - RETURN - ENDIF -! -! *** CALCULATE HSO4 SPECIATION ***************************************** -! - A8 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! - BB =-(HI + SO4I + A8) - CC = HI*SO4I - HSO4I*A8 - DD = BB*BB - 4.0*CC -! - IF (DD.GE.ZERO) THEN - SQDD = SQRT(DD) - DELTA1 = 0.5*(-BB + SQDD) - DELTA2 = 0.5*(-BB - SQDD) - IF (HSO4I.LE.TINY) THEN - DELTA = DELTA2 - ELSEIF( HI*SO4I .GE. A8*HSO4I ) THEN - DELTA = DELTA2 - ELSEIF( HI*SO4I .LT. A8*HSO4I ) THEN - DELTA = DELTA1 - ELSE - DELTA = ZERO - ENDIF - ELSE - DELTA = ZERO - ENDIF - - ! PHFIX applied by Havala (just a quick fix, not a final solution) - ! make sure H+ is positive (hotp 8/19/09) - ! Negative H+ was due to subtracting two similar, small numbers - ! for a set of test conditions examined - !IF ( DELTA > HI ) DELTA = HI - 1d-30 - -!CC -!CC *** COMPARE DELTA TO TOTAL H+ ; ESTIMATE EFFECT OF HSO4 *************** -!CC -!C HYD = MAX(HI, MOLAL(1)) -!C IF (HYD.GT.TINY) THEN -!C IF (DELTA/HYD.GT.0.1d0) THEN -!C WRITE (ERRINF,'(1PE10.3)') DELTA/HYD*100.0 -!C CALL PUSHERR (0020, ERRINF) -!C ENDIF -!C ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCHS4 ***************************************** -! - END SUBROUTINE CALCHS4 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCPH -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCPH (GG, HI, OHI) - Real(kind=fp) :: GG, HI, OHI - Real(kind=fp) :: CN, AKW, BB, CC, DD -! - AKW = XKW *RH*WATER*WATER - CN = SQRT(AKW) -! -! *** GG = (negative charge) - (positive charge) -! - IF (GG.GT.TINY) THEN ! H+ in excess - BB =-GG - CC =-AKW - DD = BB*BB - 4.0*CC - HI = MAX(0.5D0*(-BB + SQRT(DD)),CN) - OHI= AKW/HI - ELSE ! OH- in excess - BB = GG - CC =-AKW - DD = BB*BB - 4.0*CC - OHI= MAX(0.5D0*(-BB + SQRT(DD)),CN) - HI = AKW/OHI - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCPH ****************************************** -! - END SUBROUTINE CALCPH - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCACT -! *** CALCULATES MULTI-COMPONENT ACTIVITY COEFFICIENTS FROM BROMLEYS -! METHOD. THE BINARY ACTIVITY COEFFICIENTS ARE CALCULATED BY -! KUSIK-MEISNER RELATION (SUBROUTINE KMTAB or SUBROUTINE KMFUL). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCACT() -! -! - ! The pre-v22 code incorrectly forces the most complex calculation under - ! all circumstances; kept for legacy reasons -#if defined( ISORROPIA_V22 ) - IF (W(1)+W(4)+W(5)+W(6)+W(7)+W(8) .LE. (6.d0*TINY)) THEN !Ca,K,Mg,Na,Cl,NO3=0 - CALL CALCACT1 - ELSE IF (W(1)+W(5)+W(6)+W(7)+W(8) .LE. (5.d0*TINY)) THEN !Ca,K,Mg,Na,Cl=0 - CALL CALCACT2 - ELSE IF (W(6)+W(7)+W(8) .LE. (3.d0*TINY)) THEN !Ca,K,Mg=0 - CALL CALCACT3 - ELSE - CALL CALCACT4 - ENDIF -#else - IF (W(1)+W(4)+W(5)+W(6)+W(7)+W(8) .LE. TINY) THEN !Ca,K,Mg,Na,Cl,NO3=0 - CALL CALCACT1 - ELSE IF (W(1)+W(5)+W(6)+W(7)+W(8) .LE. TINY) THEN !Ca,K,Mg,Na,Cl=0 - CALL CALCACT2 - ELSE IF (W(6)+W(7)+W(8) .LE. TINY) THEN !Ca,K,Mg=0 - CALL CALCACT3 - ELSE - CALL CALCACT4 - ENDIF -#endif -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE CALCACT - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCACT4 -! *** CALCULATES MULTI-COMPONENT ACTIVITY COEFFICIENTS FROM BROMLEYS -! METHOD FOR AN AMMONIUM-SULFATE-NITRATE-CHLORIDE-SODIUM-CALCIUM-POTASSIUM-MAGNESIUM -! AEROSOL SYSTEM. THE BINARY ACTIVITY COEFFICIENTS ARE CALCULATED BY -! KUSIK-MEISNER RELATION (SUBROUTINE KMTAB or SUBROUTINE KMFUL4). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCACT4() -! - Real(Kind=IonicKind) :: Ionic - Real(Kind=fp) :: G0(6,4) - Real(Kind=fp) :: ZPL,ZMI,AGAMA,SION,H,CH,F1(6),F2A(4),F2B(4) - !Real(kind=fp) :: MPL, XIJ, YJI - Real(kind=fp) :: MPL, XIJ, YJI - - Real(kind=fp) :: ErrOu, ErrIn - Real(kind=fp) :: GA, GB - - ! hotp removed for parallelization (8/23/07), integer declared - !DATA G0/24*0D0/ - INTEGER I,J - - ! WARNING: These are actually functions! - GA(I,J)= (F1(I)/Z(I) + F2A(J)/Z(J+3)) / (Z(I)+Z(J+3)) - H - GB(I,J)= (F1(I)/Z(I+4) + F2B(J)/Z(J+3)) / (Z(I+4)+Z(J+3)) - H - - ! initialize G0 array here (hotp 8/23/07) - DO J = 1, 4 - DO I = 1, 6 - G0(I,J) = 0.0 - ENDDO - ENDDO -! -! *** SAVE ACTIVITIES IN OLD ARRAY ************************************* -! - IF (FRST) THEN ! Outer loop - DO 10 I=1,NPAIR - GAMOU(I) = GAMA(I) -10 CONTINUE - ENDIF -! - DO 20 I=1,NPAIR ! Inner loop - GAMIN(I) = GAMA(I) -20 CONTINUE -! -! *** CALCULATE IONIC ACTIVITY OF SOLUTION ***************************** -! - IONIC_MAIN = 0.0 - IONIC=0.0 - DO 30 I=1,NIONS - IONIC=IONIC + MOLAL(I)*Z(I)*Z(I) -30 CONTINUE - IONIC = MAX(MIN(0.5*IONIC/WATER,100.d0), TINY) -! -! *** CALCULATE BINARY ACTIVITY COEFFICIENTS *************************** -! -! G0(1,1)=G11;G0(1,2)=G07;G0(1,3)=G08;G0(1,4)=G10;G0(2,1)=G01;G0(2,2)=G02 -! G0(2,3)=G12;G0(2,4)=G03;G0(3,1)=G06;G0(3,2)=G04;G0(3,3)=G09;G0(3,4)=G05 -! - IF (IACALC.EQ.0) THEN ! K.M.; FULL - CALL KMFUL4 (IONIC, TEMP,G0(2,1),G0(2,2),G0(2,4), - & G0(3,2),G0(3,4),G0(3,1),G0(1,2),G0(1,3),G0(3,3), - & G0(1,4),G0(1,1),G0(2,3),G0(4,4),G0(4,1),G0(5,2), - & G0(5,3),G0(5,4),G0(5,1),G0(6,2),G0(6,4),G0(6,1)) - ELSE ! K.M.; TABULATED - CALL KMTAB (IONIC, TEMP,G0(2,1),G0(2,2),G0(2,4), - & G0(3,2),G0(3,4),G0(3,1),G0(1,2),G0(1,3),G0(3,3), - & G0(1,4),G0(1,1),G0(2,3),G0(4,4),G0(4,1),G0(5,2), - & G0(5,3),G0(5,4),G0(5,1),G0(6,2),G0(6,4),G0(6,1)) - ENDIF -! -! *** CALCULATE MULTICOMPONENT ACTIVITY COEFFICIENTS ******************* -! - AGAMA = 0.511*(298.0/TEMP)**1.5 ! Debye Huckel const. at T - SION = SQRT(IONIC) - H = AGAMA*SION/(1+SION) -! - DO 100 I=1,4 - F1(I)=0.0 - F2A(I)=0.0 - F2B(I)=0.0 -100 CONTINUE - F1(5)=0.0 - F1(6)=0.0 -! - ! Rewrite so that nested DO loops don't end on the same CONTINUE, - ! which may cause an warning/error on newer compilers (bmy, 1/13/21) - DO 109 I=1,3 - ZPL = Z(I) - MPL = MOLAL(I)/WATER - DO 110 J=1,4 - ZMI = Z(J+3) - CH = 0.25*(ZPL+ZMI)*(ZPL+ZMI)/IONIC - XIJ = CH*MPL - YJI = CH*MOLAL(J+3)/WATER - F1(I) = F1(I) + SNGL(YJI*(G0(I,J) + ZPL*ZMI*H)) - F2A(J) = F2A(J) + SNGL(XIJ*(G0(I,J) + ZPL*ZMI*H)) - 110 CONTINUE - 109 CONTINUE -! - ! Rewrite so that nested DO loops don't end on the same CONTINUE, - ! which may cause an warning/error on newer compilers (bmy, 1/13/21) - DO 329 I=4,6 - ZPL = Z(I+4) - MPL = MOLAL(I+4)/WATER - DO 330 J=1,4 - ZMI = Z(J+3) - IF (J.EQ.3) THEN - IF (I.EQ.4 .OR. I.EQ.6) THEN - GO TO 330 - ENDIF - ENDIF - CH = 0.25*(ZPL+ZMI)*(ZPL+ZMI)/IONIC - XIJ = CH*MPL - YJI = CH*MOLAL(J+3)/WATER - F1(I) = F1(I) + SNGL(YJI*(G0(I,J) + ZPL*ZMI*H)) - F2B(J) = F2B(J) + SNGL(XIJ*(G0(I,J) + ZPL*ZMI*H)) - 330 CONTINUE - 329 CONTINUE -! -! *** LOG10 OF ACTIVITY COEFFICIENTS *********************************** -! - GAMA(01) = GA(2,1)*ZZ(01) ! NACL - GAMA(02) = GA(2,2)*ZZ(02) ! NA2SO4 - GAMA(03) = GA(2,4)*ZZ(03) ! NANO3 - GAMA(04) = GA(3,2)*ZZ(04) ! (NH4)2SO4 - GAMA(05) = GA(3,4)*ZZ(05) ! NH4NO3 - GAMA(06) = GA(3,1)*ZZ(06) ! NH4CL - GAMA(07) = GA(1,2)*ZZ(07) ! 2H-SO4 - GAMA(08) = GA(1,3)*ZZ(08) ! H-HSO4 - GAMA(09) = GA(3,3)*ZZ(09) ! NH4HSO4 - GAMA(10) = GA(1,4)*ZZ(10) ! HNO3 - GAMA(11) = GA(1,1)*ZZ(11) ! HCL - GAMA(12) = GA(2,3)*ZZ(12) ! NAHSO4 - GAMA(13) = 0.20*(3.0*GAMA(04)+2.0*GAMA(09)) ! LC ; SCAPE -!C GAMA(13) = 0.50*(GAMA(04)+GAMA(09)) ! LC ; SEQUILIB -!C GAMA(13) = 0.25*(3.0*GAMA(04)+GAMA(07)) ! LC ; AIM - GAMA(14) = 0.0d0 ! CASO4 - GAMA(15) = GB(4,4)*ZZ(15) ! CA(NO3)2 - GAMA(16) = GB(4,1)*ZZ(16) ! CACL2 - GAMA(17) = GB(5,2)*ZZ(17) ! K2SO4 - GAMA(18) = GB(5,3)*ZZ(18) ! KHSO4 - GAMA(19) = GB(5,4)*ZZ(19) ! KNO3 - GAMA(20) = GB(5,1)*ZZ(20) ! KCL - GAMA(21) = GB(6,2)*ZZ(21) ! MGSO4 - GAMA(22) = GB(6,4)*ZZ(22) ! MG(NO3)2 - GAMA(23) = GB(6,1)*ZZ(23) ! MGCL2 -! -! *** CONVERT LOG (GAMA) COEFFICIENTS TO GAMA ************************** -! - DO 200 I=1,NPAIR - GAMA(I)=MAX(-5.0d0, MIN(GAMA(I),5.0d0) ) ! F77 LIBRARY ROUTINE - GAMA(I)=10.0**GAMA(I) -!C GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] - 200 CONTINUE -! -! *** SETUP ACTIVITY CALCULATION FLAGS ******************************** -! -! OUTER CALCULATION LOOP ; ONLY IF FRST=.TRUE. -! - IF (FRST) THEN - ERROU = ZERO ! CONVERGENCE CRITERION - DO 210 I=1,NPAIR - ERROU=MAX(ERROU, ABS((GAMOU(I)-GAMA(I))/GAMOU(I))) -210 CONTINUE - CALAOU = ERROU .GE. EPSACT ! SETUP FLAGS - FRST =.FALSE. - ENDIF -! -! INNER CALCULATION LOOP ; ALWAYS -! - ERRIN = ZERO ! CONVERGENCE CRITERION - DO 220 I=1,NPAIR - ERRIN = MAX (ERRIN, ABS((GAMIN(I)-GAMA(I))/GAMIN(I))) -220 CONTINUE - CALAIN = ERRIN .GE. EPSACT -! - ICLACT = ICLACT + 1 ! Increment ACTIVITY call counter - - ! Store the result of IONIC - IONIC_MAIN = IONIC -! -! *** END OF SUBROUTINE ACTIVITY **************************************** -! - RETURN - END SUBROUTINE CALCACT4 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCACT3 -! *** CALCULATES MULTI-COMPONENT ACTIVITY COEFFICIENTS FROM BROMLEYS -! METHOD FOR AN AMMONIUM-SULFATE-NITRATE-CHLORIDE-SODIUM AEROSOL SYSTEM. -! THE BINARY ACTIVITY COEFFICIENTS ARE CALCULATED BY -! KUSIK-MEISNER RELATION (SUBROUTINE KMTAB or SUBROUTINE KMFUL3). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCACT3() -! - Real(Kind=IonicKind) :: Ionic - Real(kind=fp) :: G0(6,4),ZPL,ZMI,AGAMA,SION,H,CH,F1(3),F2(4) - Real(kind=fp) :: MPL, XIJ, YJI - Real(kind=fp) :: ErrOu, ErrIn - Real(kind=fp), Parameter :: URF=0.5 -! PARAMETER (LN10=2.30258509299404568402D0) -! - ! This is a function - Real(kind=fp) :: G - Integer :: I,J - G(I,J)= (F1(I)/Z(I) + F2(J)/Z(J+3)) / (Z(I)+Z(J+3)) - H - -#if defined( ISORROPIA_V22 ) - ! S. Capps 2015-11-20: Initialize G0 following approach of - ! H.O.T.P. in CALCACT4 - DO J = 1, 4 - DO I = 1, 6 - G0(I,J) = 0.0 - ENDDO - ENDDO -#endif -! -! *** SAVE ACTIVITIES IN OLD ARRAY ************************************* -! - IF (FRST) THEN ! Outer loop - DO 10 I=1,13 - GAMOU(I) = GAMA(I) -10 CONTINUE - ENDIF -! - DO 20 I=1,13 ! Inner loop - GAMIN(I) = GAMA(I) -20 CONTINUE -! -! *** CALCULATE IONIC ACTIVITY OF SOLUTION ***************************** -! - Ionic_Main = 0.0 - IONIC=0.0 - DO 30 I=1,7 - IONIC=IONIC + MOLAL(I)*Z(I)*Z(I) -30 CONTINUE - IONIC = MAX(MIN(0.5*IONIC/WATER,100.d0), TINY) -! -! *** CALCULATE BINARY ACTIVITY COEFFICIENTS *************************** -! -! G0(1,1)=G11;G0(1,2)=G07;G0(1,3)=G08;G0(1,4)=G10;G0(2,1)=G01;G0(2,2)=G02 -! G0(2,3)=G12;G0(2,4)=G03;G0(3,1)=G06;G0(3,2)=G04;G0(3,3)=G09;G0(3,4)=G05 -! - IF (IACALC.EQ.0) THEN ! K.M.; FULL - CALL KMFUL3 (IONIC, TEMP,G0(2,1),G0(2,2),G0(2,4), - & G0(3,2),G0(3,4),G0(3,1),G0(1,2),G0(1,3),G0(3,3), - & G0(1,4),G0(1,1),G0(2,3)) - ELSE ! K.M.; TABULATED - CALL KMTAB (IONIC, TEMP,G0(2,1),G0(2,2),G0(2,4), - & G0(3,2),G0(3,4),G0(3,1),G0(1,2),G0(1,3),G0(3,3), - & G0(1,4),G0(1,1),G0(2,3),G0(4,4),G0(4,1),G0(5,2), - & G0(5,3),G0(5,4),G0(5,1),G0(6,2),G0(6,4),G0(6,1)) - ENDIF -! -! *** CALCULATE MULTICOMPONENT ACTIVITY COEFFICIENTS ******************* -! - AGAMA = 0.511*(298.0/TEMP)**1.5 ! Debye Huckel const. at T - SION = SQRT(IONIC) - H = AGAMA*SION/(1+SION) -! - DO 100 I=1,3 - F1(I)=0.0 - F2(I)=0.0 -100 CONTINUE - F2(4)=0.0 -! - ! Rewrite so that nested DO loops don't end on the same CONTINUE, - ! which may cause an warning/error on newer compilers (bmy, 1/13/21) - DO 109 I=1,3 - ZPL = Z(I) - MPL = MOLAL(I)/WATER - DO 110 J=1,4 - ZMI = Z(J+3) - CH = 0.25*(ZPL+ZMI)*(ZPL+ZMI)/IONIC - XIJ = CH*MPL - YJI = CH*MOLAL(J+3)/WATER - F1(I) = F1(I) + SNGL(YJI*(G0(I,J) + ZPL*ZMI*H)) - F2(J) = F2(J) + SNGL(XIJ*(G0(I,J) + ZPL*ZMI*H)) - 110 CONTINUE - 109 CONTINUE -! -! *** LOG10 OF ACTIVITY COEFFICIENTS *********************************** -! - GAMA(01) = G(2,1)*ZZ(01) ! NACL - GAMA(02) = G(2,2)*ZZ(02) ! NA2SO4 - GAMA(03) = G(2,4)*ZZ(03) ! NANO3 - GAMA(04) = G(3,2)*ZZ(04) ! (NH4)2SO4 - GAMA(05) = G(3,4)*ZZ(05) ! NH4NO3 - GAMA(06) = G(3,1)*ZZ(06) ! NH4CL - GAMA(07) = G(1,2)*ZZ(07) ! 2H-SO4 - GAMA(08) = G(1,3)*ZZ(08) ! H-HSO4 - GAMA(09) = G(3,3)*ZZ(09) ! NH4HSO4 - GAMA(10) = G(1,4)*ZZ(10) ! HNO3 - GAMA(11) = G(1,1)*ZZ(11) ! HCL - GAMA(12) = G(2,3)*ZZ(12) ! NAHSO4 - GAMA(13) = 0.20*(3.0*GAMA(04)+2.0*GAMA(09)) ! LC ; SCAPE -!C GAMA(13) = 0.50*(GAMA(04)+GAMA(09)) ! LC ; SEQUILIB -!C GAMA(13) = 0.25*(3.0*GAMA(04)+GAMA(07)) ! LC ; AIM -! -! *** CONVERT LOG (GAMA) COEFFICIENTS TO GAMA ************************** -! - DO 200 I=1,13 - GAMA(I)=MAX(-5.0d0, MIN(GAMA(I),5.0d0) ) ! F77 LIBRARY ROUTINE - GAMA(I)=10.0**GAMA(I) -! GAMA(I)=EXP(LN10*GAMA(I)) -!C GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] -! GAMA(I) = GAMIN(I)*(1.0-URF) + URF*GAMA(I) ! Under-relax GAMA's - 200 CONTINUE -! -! *** SETUP ACTIVITY CALCULATION FLAGS ********************************* -! -! OUTER CALCULATION LOOP ; ONLY IF FRST=.TRUE. -! - IF (FRST) THEN - ERROU = ZERO ! CONVERGENCE CRITERION - DO 210 I=1,13 - ERROU=MAX(ERROU, ABS((GAMOU(I)-GAMA(I))/GAMOU(I))) -210 CONTINUE - CALAOU = ERROU .GE. EPSACT ! SETUP FLAGS - FRST =.FALSE. - ENDIF -! -! INNER CALCULATION LOOP ; ALWAYS -! - ERRIN = ZERO ! CONVERGENCE CRITERION - DO 220 I=1,13 - ERRIN = MAX (ERRIN, ABS((GAMIN(I)-GAMA(I))/GAMIN(I))) -220 CONTINUE - CALAIN = ERRIN .GE. EPSACT -! - ICLACT = ICLACT + 1 ! Increment ACTIVITY call counter - - ! Store IONIC - IONIC_MAIN = IONIC -! -! *** END OF SUBROUTINE ACTIVITY **************************************** -! - RETURN - END SUBROUTINE CALCACT3 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCACT2 -! *** CALCULATES MULTI-COMPONENT ACTIVITY COEFFICIENTS FROM BROMLEYS -! METHOD FOR AN AMMONIUM-SULFATE-NITRATE AEROSOL SYSTEM. -! THE BINARY ACTIVITY COEFFICIENTS ARE CALCULATED BY -! KUSIK-MEISNER RELATION (SUBROUTINE KMTAB or SUBROUTINE KMFUL2). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCACT2() -! - Real(Kind=IonicKind) :: Ionic - Real(Kind=fp) :: G0(6,4),ZPL,ZMI,AGAMA,SION,H,CH,F1(3),F2(4) - Real(kind=fp) :: MPL, XIJ, YJI - Real(kind=fp) :: ErrOu, ErrIn - Real(kind=fp), Parameter :: URF=0.5 -! PARAMETER (LN10=2.30258509299404568402D0) -! - ! This is a function - Real(kind=fp) :: G - Integer :: I,J - G(I,J)= (F1(I)/Z(I) + F2(J)/Z(J+3)) / (Z(I)+Z(J+3)) - H - -#if defined( ISORROPIA_V22 ) - ! S. Capps 2015-11-20: Initialize G0 following approach of - ! H.O.T.P. in CALCACT4 - DO J = 1, 4 - DO I = 1, 6 - G0(I,J) = 0.0 - ENDDO - ENDDO -#endif -! -! *** SAVE ACTIVITIES IN OLD ARRAY ************************************* -! - IF (FRST) THEN ! Outer loop - DO 10 I=7,10 - GAMOU(I) = GAMA(I) -10 CONTINUE - GAMOU(4) = GAMA(4) - GAMOU(5) = GAMA(5) - GAMOU(13) = GAMA(13) - ENDIF -! - DO 20 I=7,10 ! Inner loop - GAMIN(I) = GAMA(I) -20 CONTINUE - GAMIN(4) = GAMA(4) - GAMIN(5) = GAMA(5) - GAMIN(13) = GAMA(13) -! -! *** CALCULATE IONIC ACTIVITY OF SOLUTION ***************************** -! - Ionic_Main = 0.0 - IONIC=0.0 - MOLAL(2) = ZERO - MOLAL(4) = ZERO - DO 30 I=1,7 - IONIC=IONIC + MOLAL(I)*Z(I)*Z(I) -30 CONTINUE - IONIC = MAX(MIN(0.5*IONIC/WATER,100.d0), TINY) -! -! *** CALCULATE BINARY ACTIVITY COEFFICIENTS *************************** -! -! G0(1,1)=G11;G0(1,2)=G07;G0(1,3)=G08;G0(1,4)=G10;G0(2,1)=G01;G0(2,2)=G02 -! G0(2,3)=G12;G0(2,4)=G03;G0(3,1)=G06;G0(3,2)=G04;G0(3,3)=G09;G0(3,4)=G05 -! - IF (IACALC.EQ.0) THEN ! K.M.; FULL - CALL KMFUL2 (IONIC, TEMP,G0(3,2),G0(3,4),G0(1,2), - & G0(1,3),G0(3,3),G0(1,4)) - ELSE ! K.M.; TABULATED - CALL KMTAB (IONIC, TEMP,G0(2,1),G0(2,2),G0(2,4), - & G0(3,2),G0(3,4),G0(3,1),G0(1,2),G0(1,3),G0(3,3), - & G0(1,4),G0(1,1),G0(2,3),G0(4,4),G0(4,1),G0(5,2), - & G0(5,3),G0(5,4),G0(5,1),G0(6,2),G0(6,4),G0(6,1)) - ENDIF -! -! *** CALCULATE MULTICOMPONENT ACTIVITY COEFFICIENTS ******************* -! - AGAMA = 0.511*(298.0/TEMP)**1.5 ! Debye Huckel const. at T - SION = SQRT(IONIC) - H = AGAMA*SION/(1+SION) -! - DO 100 I=1,3 - F1(I)=0.0 - F2(I)=0.0 -100 CONTINUE - F2(4)=0.0 -! - ! Rewrite so that nested DO loops don't end on the same CONTINUE, - ! which may cause an warning/error on newer compilers (bmy, 1/13/21) - DO 109 I=1,3,2 - ZPL = Z(I) - MPL = MOLAL(I)/WATER - DO 110 J=2,4 - ZMI = Z(J+3) - CH = 0.25*(ZPL+ZMI)*(ZPL+ZMI)/IONIC - XIJ = CH*MPL - YJI = CH*MOLAL(J+3)/WATER - F1(I) = F1(I) + SNGL(YJI*(G0(I,J) + ZPL*ZMI*H)) - F2(J) = F2(J) + SNGL(XIJ*(G0(I,J) + ZPL*ZMI*H)) - 110 CONTINUE - 109 CONTINUE -! -! *** LOG10 OF ACTIVITY COEFFICIENTS *********************************** -! -! GAMA(01) = G(2,1)*ZZ(01) ! NACL -! GAMA(02) = G(2,2)*ZZ(02) ! NA2SO4 -! GAMA(03) = G(2,4)*ZZ(03) ! NANO3 - GAMA(04) = G(3,2)*ZZ(04) ! (NH4)2SO4 - GAMA(05) = G(3,4)*ZZ(05) ! NH4NO3 -! GAMA(06) = G(3,1)*ZZ(06) ! NH4CL - GAMA(07) = G(1,2)*ZZ(07) ! 2H-SO4 - GAMA(08) = G(1,3)*ZZ(08) ! H-HSO4 - GAMA(09) = G(3,3)*ZZ(09) ! NH4HSO4 - GAMA(10) = G(1,4)*ZZ(10) ! HNO3 -! GAMA(11) = G(1,1)*ZZ(11) ! HCL -! GAMA(12) = G(2,3)*ZZ(12) ! NAHSO4 - GAMA(13) = 0.20*(3.0*GAMA(04)+2.0*GAMA(09)) ! LC ; SCAPE -!C GAMA(13) = 0.50*(GAMA(04)+GAMA(09)) ! LC ; SEQUILIB -!C GAMA(13) = 0.25*(3.0*GAMA(04)+GAMA(07)) ! LC ; AIM -! -! *** CONVERT LOG (GAMA) COEFFICIENTS TO GAMA ************************** -! - DO 200 I=7,10 - GAMA(I)=MAX(-5.0d0, MIN(GAMA(I),5.0d0) ) ! F77 LIBRARY ROUTINE - GAMA(I)=10.0**GAMA(I) -! GAMA(I)=EXP(LN10*GAMA(I)) -!C GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] -! GAMA(I) = GAMIN(I)*(1.0-URF) + URF*GAMA(I) ! Under-relax GAMA's - 200 CONTINUE -! - GAMA(4)=MAX(-5.0d0, MIN(GAMA(4),5.0d0) ) ! F77 LIBRARY ROUTINE - GAMA(4)=10.0**GAMA(4) -! GAMA(I)=EXP(LN10*GAMA(I)) -!C GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] -! GAMA(4) = GAMIN(4)*(1.0-URF) + URF*GAMA(4) ! Under-relax GAMA's -! - GAMA(5)=MAX(-5.0d0, MIN(GAMA(5),5.0d0) ) ! F77 LIBRARY ROUTINE - GAMA(5)=10.0**GAMA(5) -! GAMA(I)=EXP(LN10*GAMA(I)) -!C GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] -! GAMA(5) = GAMIN(5)*(1.0-URF) + URF*GAMA(I) ! Under-relax GAMA's -! - GAMA(13)=MAX(-5.0d0, MIN(GAMA(13),5.0d0) ) ! F77 LIBRARY ROUTINE - GAMA(13)=10.0**GAMA(13) -! GAMA(I)=EXP(LN10*GAMA(I)) -!C GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] -! GAMA(13) = GAMIN(13)*(1.0-URF) + URF*GAMA(13) ! Under-relax GAMA's -! -! *** SETUP ACTIVITY CALCULATION FLAGS ********************************* -! -! OUTER CALCULATION LOOP ; ONLY IF FRST=.TRUE. -! - IF (FRST) THEN - ERROU = ZERO ! CONVERGENCE CRITERION - DO 210 I=7,10 - ERROU=MAX(ERROU, ABS((GAMOU(I)-GAMA(I))/GAMOU(I))) -210 CONTINUE - ERROU=MAX(ERROU, ABS((GAMOU(4)-GAMA(4))/GAMOU(4))) - ERROU=MAX(ERROU, ABS((GAMOU(5)-GAMA(5))/GAMOU(5))) - ERROU=MAX(ERROU, ABS((GAMOU(13)-GAMA(13))/GAMOU(13))) -! - CALAOU = ERROU .GE. EPSACT ! SETUP FLAGS - FRST =.FALSE. - ENDIF -! -! INNER CALCULATION LOOP ; ALWAYS -! - ERRIN = ZERO ! CONVERGENCE CRITERION - DO 220 I=7,10 - ERRIN = MAX (ERRIN, ABS((GAMIN(I)-GAMA(I))/GAMIN(I))) -220 CONTINUE - ERRIN = MAX (ERRIN, ABS((GAMIN(4)-GAMA(4))/GAMIN(4))) - ERRIN = MAX (ERRIN, ABS((GAMIN(5)-GAMA(5))/GAMIN(5))) - ERRIN = MAX (ERRIN, ABS((GAMIN(13)-GAMA(13))/GAMIN(13))) - CALAIN = ERRIN .GE. EPSACT -! - ICLACT = ICLACT + 1 ! Increment ACTIVITY call counter - - ! Store IONIC - IONIC_MAIN = IONIC -! -! *** END OF SUBROUTINE ACTIVITY **************************************** -! - RETURN - END SUBROUTINE CALCACT2 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCACT1 -! *** CALCULATES MULTI-COMPONENT ACTIVITY COEFFICIENTS FROM BROMLEYS -! METHOD FOR AN AMMONIUM-SULFATE AEROSOL SYSTEM. -! THE BINARY ACTIVITY COEFFICIENTS ARE CALCULATED BY -! KUSIK-MEISNER RELATION (SUBROUTINE KMTAB or SUBROUTINE KMFUL1). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCACT1() -! - Real(Kind=IonicKind) :: Ionic - Real(Kind=fp), Parameter :: URF=0.5 - Real(Kind=fp) :: G0(6,4),ZPL,ZMI,AGAMA,SION,H,CH,F1(3),F2(4) - Real(kind=fp) :: MPL, XIJ, YJI - Real(kind=fp) :: ErrOu, ErrIn -! PARAMETER (LN10=2.30258509299404568402D0) -! - ! This is a function - Real(kind=fp) :: G - Integer :: I,J - G(I,J)= (F1(I)/Z(I) + F2(J)/Z(J+3)) / (Z(I)+Z(J+3)) - H - -#if defined( ISORROPIA_V22 ) - ! S. Capps 2015-11-20: Initialize G0 following approach of - ! H.O.T.P. in CALCACT4 - DO J = 1, 4 - DO I = 1, 6 - G0(I,J) = 0.0 - ENDDO - ENDDO -#endif -! -! *** SAVE ACTIVITIES IN OLD ARRAY ************************************* -! - IF (FRST) THEN ! Outer loop - DO 10 I=7,9 - GAMOU(I) = GAMA(I) -10 CONTINUE - GAMOU(4) = GAMA(4) -! GAMOU(5) = GAMA(5) - GAMOU(13) = GAMA(13) - ENDIF -! - DO 20 I=7,9 ! Inner loop - GAMIN(I) = GAMA(I) -20 CONTINUE - GAMIN(4) = GAMA(4) -! GAMIN(5) = GAMA(5) - GAMIN(13) = GAMA(13) -! -! *** CALCULATE IONIC ACTIVITY OF SOLUTION ***************************** -! - Ionic_Main = 0.0 - IONIC=0.0 - MOLAL(2) = ZERO - MOLAL(4) = ZERO - MOLAL(7) = ZERO - DO 30 I=1,7 - IONIC=IONIC + MOLAL(I)*Z(I)*Z(I) -30 CONTINUE - IONIC = MAX(MIN(0.5*IONIC/WATER,100.d0), TINY) -! -! *** CALCULATE BINARY ACTIVITY COEFFICIENTS *************************** -! -! G0(1,1)=G11;G0(1,2)=G07;G0(1,3)=G08;G0(1,4)=G10;G0(2,1)=G01;G0(2,2)=G02 -! G0(2,3)=G12;G0(2,4)=G03;G0(3,1)=G06;G0(3,2)=G04;G0(3,3)=G09;G0(3,4)=G05 -! - IF (IACALC.EQ.0) THEN ! K.M.; FULL - CALL KMFUL1 (IONIC, TEMP,G0(3,2),G0(1,2), - & G0(1,3),G0(3,3)) - ELSE ! K.M.; TABULATED - CALL KMTAB (IONIC, TEMP,G0(2,1),G0(2,2),G0(2,4), - & G0(3,2),G0(3,4),G0(3,1),G0(1,2),G0(1,3),G0(3,3), - & G0(1,4),G0(1,1),G0(2,3),G0(4,4),G0(4,1),G0(5,2), - & G0(5,3),G0(5,4),G0(5,1),G0(6,2),G0(6,4),G0(6,1)) - ENDIF -! -! *** CALCULATE MULTICOMPONENT ACTIVITY COEFFICIENTS ******************* -! - AGAMA = 0.511*(298.0/TEMP)**1.5 ! Debye Huckel const. at T - SION = SQRT(IONIC) - H = AGAMA*SION/(1+SION) -! - DO 100 I=1,3 - F1(I)=0.0 - F2(I)=0.0 -100 CONTINUE - F2(4)=0.0 -! - ! Rewrite so that nested DO loops don't end on the same CONTINUE, - ! which may cause an warning/error on newer compilers (bmy, 1/13/21) - DO 109 I=1,3,2 - ZPL = Z(I) - MPL = MOLAL(I)/WATER - DO 110 J=2,3 - ZMI = Z(J+3) - CH = 0.25*(ZPL+ZMI)*(ZPL+ZMI)/IONIC - XIJ = CH*MPL - YJI = CH*MOLAL(J+3)/WATER - F1(I) = F1(I) + SNGL(YJI*(G0(I,J) + ZPL*ZMI*H)) - F2(J) = F2(J) + SNGL(XIJ*(G0(I,J) + ZPL*ZMI*H)) - 110 CONTINUE - 109 CONTINUE -! -! *** LOG10 OF ACTIVITY COEFFICIENTS *********************************** -! -! GAMA(01) = G(2,1)*ZZ(01) ! NACL -! GAMA(02) = G(2,2)*ZZ(02) ! NA2SO4 -! GAMA(03) = G(2,4)*ZZ(03) ! NANO3 - GAMA(04) = G(3,2)*ZZ(04) ! (NH4)2SO4 -! GAMA(05) = G(3,4)*ZZ(05) ! NH4NO3 -! GAMA(06) = G(3,1)*ZZ(06) ! NH4CL - GAMA(07) = G(1,2)*ZZ(07) ! 2H-SO4 - GAMA(08) = G(1,3)*ZZ(08) ! H-HSO4 -#if defined( ISORROPIA_V22 ) - GAMA(09) = G(3,3)*ZZ(09) ! NH4HSO4 (SLC 2015-11-20) -#else - GAMA(09) = 0.5*(GAMA(04)+GAMA(07)) ! NH4HSO4 ; AIM (Wexler & Seinfeld, 1991) -#endif -! GAMA(10) = G(1,4)*ZZ(10) ! HNO3 -! GAMA(11) = G(1,1)*ZZ(11) ! HCL -! GAMA(12) = G(2,3)*ZZ(12) ! NAHSO4 - GAMA(13) = 0.20*(3.0*GAMA(04)+2.0*GAMA(09)) ! LC ; SCAPE -!C GAMA(13) = 0.50*(GAMA(04)+GAMA(09)) ! LC ; SEQUILIB -!C GAMA(13) = 0.25*(3.0*GAMA(04)+GAMA(07)) ! LC ; AIM -! -! *** CONVERT LOG (GAMA) COEFFICIENTS TO GAMA ************************** -! - DO 200 I=7,9 - GAMA(I)=MAX(-5.0d0, MIN(GAMA(I),5.0d0) ) ! F77 LIBRARY ROUTINE - GAMA(I)=10.0**GAMA(I) -! GAMA(I)=EXP(LN10*GAMA(I)) -!C GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] -! GAMA(I) = GAMIN(I)*(1.0-URF) + URF*GAMA(I) ! Under-relax GAMA's - 200 CONTINUE -! - GAMA(4)=MAX(-5.0d0, MIN(GAMA(4),5.0d0) ) ! F77 LIBRARY ROUTINE - GAMA(4)=10.0**GAMA(4) -! GAMA(I)=EXP(LN10*GAMA(I)) -!C GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] -! GAMA(4) = GAMIN(4)*(1.0-URF) + URF*GAMA(4) ! Under-relax GAMA's -! -! GAMA(5)=MAX(-5.0d0, MIN(GAMA(5),5.0d0) ) ! F77 LIBRARY ROUTINE -! GAMA(5)=10.0**GAMA(5) -!C GAMA(I)=EXP(LN10*GAMA(I)) -!CC GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] -! GAMA(5) = GAMIN(5)*(1.0-URF) + URF*GAMA(I) ! Under-relax GAMA's -! - GAMA(13)=MAX(-5.0d0, MIN(GAMA(13),5.0d0) ) ! F77 LIBRARY ROUTINE - GAMA(13)=10.0**GAMA(13) -! GAMA(I)=EXP(LN10*GAMA(I)) -!C GAMA(I)=EX10(SNGL(GAMA(I)), 5.0) ! CUTOFF SET TO [-5,5] -! GAMA(13) = GAMIN(13)*(1.0-URF) + URF*GAMA(13) ! Under-relax GAMA's -! -! *** SETUP ACTIVITY CALCULATION FLAGS ********************************* -! -! OUTER CALCULATION LOOP ; ONLY IF FRST=.TRUE. -! - IF (FRST) THEN - ERROU = ZERO ! CONVERGENCE CRITERION - DO 210 I=7,9 - ERROU=MAX(ERROU, ABS((GAMOU(I)-GAMA(I))/GAMOU(I))) -210 CONTINUE - ERROU=MAX(ERROU, ABS((GAMOU(4)-GAMA(4))/GAMOU(4))) -! ERROU=MAX(ERROU, ABS((GAMOU(5)-GAMA(5))/GAMOU(5))) - ERROU=MAX(ERROU, ABS((GAMOU(13)-GAMA(13))/GAMOU(13))) -! - CALAOU = ERROU .GE. EPSACT ! SETUP FLAGS - FRST =.FALSE. - ENDIF -! -! INNER CALCULATION LOOP ; ALWAYS -! - ERRIN = ZERO ! CONVERGENCE CRITERION - DO 220 I=7,9 - ERRIN = MAX (ERRIN, ABS((GAMIN(I)-GAMA(I))/GAMIN(I))) -220 CONTINUE - ERRIN = MAX (ERRIN, ABS((GAMIN(4)-GAMA(4))/GAMIN(4))) -! ERRIN = MAX (ERRIN, ABS((GAMIN(5)-GAMA(5))/GAMIN(5))) - ERRIN = MAX (ERRIN, ABS((GAMIN(13)-GAMA(13))/GAMIN(13))) - CALAIN = ERRIN .GE. EPSACT -! - ICLACT = ICLACT + 1 ! Increment ACTIVITY call counter - - ! Store IONIC - IONIC_MAIN = IONIC -! -! *** END OF SUBROUTINE ACTIVITY **************************************** -! - RETURN - END SUBROUTINE CALCACT1 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE RSTGAM -! *** RESETS ACTIVITY COEFFICIENT ARRAYS TO DEFAULT VALUE OF 0.1 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE RSTGAM() - Integer :: I -! - DO 10 I=1, NPAIR - GAMA(I) = 0.1 -10 CONTINUE -! -! *** END OF SUBROUTINE RSTGAM ****************************************** -! - RETURN - END SUBROUTINE RSTGAM - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE RSTGAMP -! *** RESETS ACTIVITY COEFFICIENT ARRAYS TO DEFAULT VALUE OF 0.1 IF -! *** GREATER THAN THE THRESHOLD VALUE -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE RSTGAMP() - Integer :: I - Real(kind=fp), Parameter :: GThresh=100.0d0 - Real(kind=fp) :: GMax -! -#if defined( ISORROPIA_V22 ) - GMax = 0.1d0 - Do I=1, NPAIR - GMax = Max(GMax,GAMA(I)) - End Do - - If (GMax.gt.GThresh) Then - Do I=1, NPAIR - GAMA(I) = 0.1d0 - GAMIN(I) = GREAT - GAMOU(I) = GREAT - End Do - CALAOU = .TRUE. - FRST = .TRUE. - End If -#else - Return -#endif -! -! *** END OF SUBROUTINE RSTGAMP ***************************************** -! - END SUBROUTINE RSTGAMP - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE KMFUL4 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD -! FOR AN AMMONIUM-SULFATE-NITRATE-CHLORIDE-SODIUM-CALCIUM-POTASSIUM-MAGNESIUM -! AEROSOL SYSTEM. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE KMFUL4 (IONIC,T0,G01,G02,G03,G04,G05,G06,G07,G08,G09, - & G10,G11,G12,G15,G16,G17,G18,G19,G20, - & G21,G22,G23) - ! Input variables - Real(Kind=IonicKind) :: IONIC - Real(kind=fp) :: T0 - Real(kind=fp) :: G01,G02,G03,G04,G05,G06,G07,G08,G09,G10 - Real(kind=fp) :: G11,G12,G13,G14,G15,G16,G17,G18,G19,G20 - Real(kind=fp) :: G21,G22,G23 - Real(kind=fp) :: CF1, CF2 - - ! Parameters - Real(kind=fp), Parameter :: Z01 = 1 - Real(kind=fp), Parameter :: Z02 = 2 - Real(kind=fp), Parameter :: Z03 = 1 - Real(kind=fp), Parameter :: Z04 = 2 - Real(kind=fp), Parameter :: Z05 = 1 - Real(kind=fp), Parameter :: Z06 = 1 - Real(kind=fp), Parameter :: Z07 = 2 - Real(kind=fp), Parameter :: Z08 = 1 - Real(kind=fp), Parameter :: Z10 = 1 - Real(kind=fp), Parameter :: Z11 = 1 - Real(kind=fp), Parameter :: Z15 = 2 - Real(kind=fp), Parameter :: Z16 = 2 - Real(kind=fp), Parameter :: Z17 = 2 - Real(kind=fp), Parameter :: Z19 = 1 - Real(kind=fp), Parameter :: Z20 = 1 - Real(kind=fp), Parameter :: Z21 = 4 - Real(kind=fp), Parameter :: Z22 = 2 - Real(kind=fp), Parameter :: Z23 = 2 - - ! Intermediate variables - Real(kind=fp) :: SIon, TI, TC -! - SION = SQRT(IONIC) -! -! *** Coefficients at 25 oC -! - CALL MKBI(2.230_fp, IONIC, SION, Z01, G01) - CALL MKBI(-0.19_fp, IONIC, SION, Z02, G02) - CALL MKBI(-0.39_fp, IONIC, SION, Z03, G03) - CALL MKBI(-0.25_fp, IONIC, SION, Z04, G04) - CALL MKBI(-1.15_fp, IONIC, SION, Z05, G05) - CALL MKBI(0.820_fp, IONIC, SION, Z06, G06) - CALL MKBI(-.100_fp, IONIC, SION, Z07, G07) - CALL MKBI(8.000_fp, IONIC, SION, Z08, G08) - CALL MKBI(2.600_fp, IONIC, SION, Z10, G10) - CALL MKBI(6.000_fp, IONIC, SION, Z11, G11) - CALL MKBI(0.930_fp, IONIC, SION, Z15, G15) - CALL MKBI(2.400_fp, IONIC, SION, Z16, G16) - CALL MKBI(-0.25_fp, IONIC, SION, Z17, G17) - CALL MKBI(-2.33_fp, IONIC, SION, Z19, G19) - CALL MKBI(0.920_fp, IONIC, SION, Z20, G20) - CALL MKBI(0.150_fp, IONIC, SION, Z21, G21) - CALL MKBI(2.320_fp, IONIC, SION, Z22, G22) - CALL MKBI(2.900_fp, IONIC, SION, Z23, G23) -! -! *** Correct for T other than 298 K -! - TI = T0-273.0 - TC = TI-25.0 - IF (ABS(TC) .GT. 1.0) THEN - CF1 = 1.125-0.005*TI - CF2 = (0.125-0.005*TI)*(0.039*IONIC**0.92-0.41*SION/(1.+SION)) - G01 = CF1*G01 - CF2*Z01 - G02 = CF1*G02 - CF2*Z02 - G03 = CF1*G03 - CF2*Z03 - G04 = CF1*G04 - CF2*Z04 - G05 = CF1*G05 - CF2*Z05 - G06 = CF1*G06 - CF2*Z06 - G07 = CF1*G07 - CF2*Z07 - G08 = CF1*G08 - CF2*Z08 - G10 = CF1*G10 - CF2*Z10 - G11 = CF1*G11 - CF2*Z11 - G15 = CF1*G15 - CF2*Z15 - G16 = CF1*G16 - CF2*Z16 - G17 = CF1*G17 - CF2*Z17 - G19 = CF1*G19 - CF2*Z19 - G20 = CF1*G20 - CF2*Z20 - G21 = CF1*G21 - CF2*Z21 - G22 = CF1*G22 - CF2*Z22 - G23 = CF1*G23 - CF2*Z23 - - ENDIF -! - G09 = G06 + G08 - G11 - G12 = G01 + G08 - G11 - G18 = G08 + G20 - G11 -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KMFUL4 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KMFUL3 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD -! FOR AN AMMONIUM-SULFATE-NITRATE-CHLORIDE-SODIUM AEROSOL SYSTEM. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE KMFUL3 (IONIC,T0,G01,G02,G03,G04,G05,G06,G07,G08,G09, - & G10,G11,G12) - Real(Kind=IonicKind) :: Ionic - Real(kind=fp) :: T0 - Real(kind=fp), Parameter :: Z01 = 1 - Real(kind=fp), Parameter :: Z02 = 2 - Real(kind=fp), Parameter :: Z03 = 1 - Real(kind=fp), Parameter :: Z04 = 2 - Real(kind=fp), Parameter :: Z05 = 1 - Real(kind=fp), Parameter :: Z06 = 1 - Real(kind=fp), Parameter :: Z07 = 2 - Real(kind=fp), Parameter :: Z08 = 1 - Real(kind=fp), Parameter :: Z10 = 1 - Real(kind=fp), Parameter :: Z11 = 1 - Real(kind=fp) :: G01, G02, G03, G04, G05, G06, G07, G08, G09 - Real(kind=fp) :: G10, G11, G12 - Real(kind=fp) :: SIon, TI, TC, CF1, CF2 -! - SION = SQRT(IONIC) -! -! *** Coefficients at 25 oC -! - CALL MKBI(2.230_fp, IONIC, SION, Z01, G01) - CALL MKBI(-0.19_fp, IONIC, SION, Z02, G02) - CALL MKBI(-0.39_fp, IONIC, SION, Z03, G03) - CALL MKBI(-0.25_fp, IONIC, SION, Z04, G04) - CALL MKBI(-1.15_fp, IONIC, SION, Z05, G05) - CALL MKBI(0.820_fp, IONIC, SION, Z06, G06) - CALL MKBI(-.100_fp, IONIC, SION, Z07, G07) - CALL MKBI(8.000_fp, IONIC, SION, Z08, G08) - CALL MKBI(2.600_fp, IONIC, SION, Z10, G10) - CALL MKBI(6.000_fp, IONIC, SION, Z11, G11) -! -! *** Correct for T other than 298 K -! - TI = T0-273.0 - TC = TI-25.0 - IF (ABS(TC) .GT. 1.0) THEN - CF1 = 1.125-0.005*TI - CF2 = (0.125-0.005*TI)*(0.039*IONIC**0.92-0.41*SION/(1.+SION)) - G01 = CF1*G01 - CF2*Z01 - G02 = CF1*G02 - CF2*Z02 - G03 = CF1*G03 - CF2*Z03 - G04 = CF1*G04 - CF2*Z04 - G05 = CF1*G05 - CF2*Z05 - G06 = CF1*G06 - CF2*Z06 - G07 = CF1*G07 - CF2*Z07 - G08 = CF1*G08 - CF2*Z08 - G10 = CF1*G10 - CF2*Z10 - G11 = CF1*G11 - CF2*Z11 - ENDIF -! - G09 = G06 + G08 - G11 - G12 = G01 + G08 - G11 -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KMFUL3 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KMFUL2 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD -! FOR AN AMMONIUM-SULFATE-NITRATE AEROSOL SYSTEM. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE KMFUL2 (IONIC,T0,G04,G05,G07,G08,G09,G10) - Real(Kind=IonicKind) :: IONIC - Real(kind=fp) :: T0 - Real(kind=fp), Parameter :: Z01 = 1 - Real(kind=fp), Parameter :: Z02 = 2 - Real(kind=fp), Parameter :: Z03 = 1 - Real(kind=fp), Parameter :: Z04 = 2 - Real(kind=fp), Parameter :: Z05 = 1 - Real(kind=fp), Parameter :: Z06 = 1 - Real(kind=fp), Parameter :: Z07 = 2 - Real(kind=fp), Parameter :: Z08 = 1 - Real(kind=fp), Parameter :: Z10 = 1 - Real(kind=fp), Parameter :: Z11 = 1 - Real(kind=fp) :: G04, G05, G06, G07, G08, G09, G10, G11 - Real(kind=fp) :: SIon, TI, TC, CF1, CF2 -! - SION = SQRT(IONIC) -! -! *** Coefficients at 25 oC -! -! CALL MKBI(2.230_fp, IONIC, SION, Z01, G01) -! CALL MKBI(-0.19_fp, IONIC, SION, Z02, G02) -! CALL MKBI(-0.39_fp, IONIC, SION, Z03, G03) - CALL MKBI(-0.25_fp, IONIC, SION, Z04, G04) - CALL MKBI(-1.15_fp, IONIC, SION, Z05, G05) -#if defined( ISORROPIA_V22 ) - CALL MKBI(0.820_fp, IONIC, SION, Z06, G06) -#endif - CALL MKBI(-.100_fp, IONIC, SION, Z07, G07) - CALL MKBI(8.000_fp, IONIC, SION, Z08, G08) - CALL MKBI(2.600_fp, IONIC, SION, Z10, G10) -#if defined( ISORROPIA_V22 ) - CALL MKBI(6.000_fp, IONIC, SION, Z11, G11) -#endif -! -! *** Correct for T other than 298 K -! - TI = T0-273.0 - TC = TI-25.0 - IF (ABS(TC) .GT. 1.0) THEN - CF1 = 1.125-0.005*TI - CF2 = (0.125-0.005*TI)*(0.039*IONIC**0.92-0.41*SION/(1.+SION)) -! G01 = CF1*G01 - CF2*Z01 -! G02 = CF1*G02 - CF2*Z02 -! G03 = CF1*G03 - CF2*Z03 - G04 = CF1*G04 - CF2*Z04 - G05 = CF1*G05 - CF2*Z05 -#if defined( ISORROPIA_V22 ) - G06 = CF1*G06 - CF2*Z06 -#endif - G07 = CF1*G07 - CF2*Z07 - G08 = CF1*G08 - CF2*Z08 - G10 = CF1*G10 - CF2*Z10 -#if defined( ISORROPIA_V22 ) - G11 = CF1*G11 - CF2*Z11 -#endif - ENDIF -! -#if defined( ISORROPIA_V22 ) - ! Use original method of calculating G09 as written up for - ! CALCACT3 for consistency (SLC 2012-02-01) - G09 = G06 + G08 - G11 -#else - G09 = G05 + G08 - G10 -#endif -! G12 = G01 + G08 - G11 -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KMFUL2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KMFUL1 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD -! FOR AN AMMONIUM-SULFATE AEROSOL SYSTEM. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE KMFUL1 (IONIC,T0,G04,G07,G08,G09) - Real(kind=fp) :: T0 - Real(kind=fp), Parameter :: Z01 = 1 - Real(kind=fp), Parameter :: Z02 = 2 - Real(kind=fp), Parameter :: Z03 = 1 - Real(kind=fp), Parameter :: Z04 = 2 - Real(kind=fp), Parameter :: Z05 = 1 - Real(kind=fp), Parameter :: Z06 = 1 - Real(kind=fp), Parameter :: Z07 = 2 - Real(kind=fp), Parameter :: Z08 = 1 - Real(kind=fp), Parameter :: Z10 = 1 - Real(kind=fp), Parameter :: Z11 = 1 - Real(kind=fp) :: G04, G06, G07, G08, G09, G11 - Real(kind=fp) :: SIon, TI, TC, CF1, CF2 - Real(Kind=IonicKind) :: IONIC -! - SION = SQRT(IONIC) -! -! *** Coefficients at 25 oC -! -! CALL MKBI(2.230_fp, IONIC, SION, Z01, G01) -! CALL MKBI(-0.19_fp, IONIC, SION, Z02, G02) -! CALL MKBI(-0.39_fp, IONIC, SION, Z03, G03) - CALL MKBI(-0.25_fp, IONIC, SION, Z04, G04) -! CALL MKBI(-1.15_fp, IONIC, SION, Z05, G05) -#if defined( ISORROPIA_V22 ) - CALL MKBI(0.820_fp, IONIC, SION, Z06, G06) -#endif - CALL MKBI(-.100_fp, IONIC, SION, Z07, G07) - CALL MKBI(8.000_fp, IONIC, SION, Z08, G08) -! CALL MKBI(2.600_fp, IONIC, SION, Z10, G10) -#if defined( ISORROPIA_V22 ) - CALL MKBI(6.000_fp, IONIC, SION, Z11, G11) -#endif -! -! *** Correct for T other than 298 K -! - TI = T0-273.0 - TC = TI-25.0 - IF (ABS(TC) .GT. 1.0) THEN - CF1 = 1.125-0.005*TI - CF2 = (0.125-0.005*TI)*(0.039*IONIC**0.92-0.41*SION/(1.+SION)) -! G01 = CF1*G01 - CF2*Z01 -! G02 = CF1*G02 - CF2*Z02 -! G03 = CF1*G03 - CF2*Z03 - G04 = CF1*G04 - CF2*Z04 -! G05 = CF1*G05 - CF2*Z05 -#if defined( ISORROPIA_V22 ) - G06 = CF1*G06 - CF2*Z06 -#endif - G07 = CF1*G07 - CF2*Z07 - G08 = CF1*G08 - CF2*Z08 -! G10 = CF1*G10 - CF2*Z10 -#if defined( ISORROPIA_V22 ) - G11 = CF1*G11 - CF2*Z11 -#endif - ENDIF -! -#if defined( ISORROPIA_V22 ) - ! Correction - G09 is G0(3,3), which is not calculated in - ! CALCACT1. Use G09 from CALCACT3 to represent G09 - ! (SLC 2012-02-01) - G09 = G06 + G08 - G11 -#else -! G09 = G05 + G08 - G10 ! CALCULATED IN CALCACT1 -#endif -! G12 = G01 + G08 - G11 -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KMFUL1 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE MKBI -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE MKBI(Q,IONIC,SION,ZIP,BI) -! - Real(Kind=IonicKind) :: Ionic - Real(kind=fp) :: Q, SIon, ZIP - Real(kind=fp) :: BI - Real(kind=fp) :: B, C, XX -! - B=.75-.065*Q - C= 1.0 - IF (IONIC.LT.6.0) C=1.+.055*Q*EXP(-.023*IONIC*IONIC*IONIC) - XX=-0.5107*SION/(1.+C*SION) - BI=(1.+B*(1.+.1*IONIC)**Q-B) - BI=ZIP*LOG10(BI) + ZIP*XX -! - RETURN - END SUBROUTINE MKBI - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KMTAB -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD. -! THE COMPUTATIONS HAVE BEEN PERFORMED AND THE RESULTS ARE STORED IN -! LOOKUP TABLES. THE IONIC ACTIVITY 'IONIC' IS INPUT, AND THE ARRAY -! 'BINARR' IS RETURNED WITH THE BINARY COEFFICIENTS. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE KMTAB (Ionic,T0,G01,G02,G03,G04,G05,G06,G07,G08,G09, - & G10,G11,G12,G15,G16,G17,G18,G19,G20,G21,G22,G23) - Real(Kind=fp) :: Binarray (23), T0 - Real(Kind=IonicKind) :: Ionic - Real(kind=fp) :: G01,G02,G03,G04,G05,G06,G07,G08,G09,G10 - Real(kind=fp) :: G11,G12,G13,G14,G15,G16,G17,G18,G19,G20 - Real(kind=fp) :: G21,G22,G23 - Integer :: Ind -! -! *** Find temperature range -! - IND = NINT((T0-198.0)/25.0) + 1 - IND = MIN(MAX(IND,1),6) -! -! *** Call appropriate routine -! - IF (IND.EQ.1) THEN - CALL KM198 (Ionic,binarray) - ELSEIF (IND.EQ.2) THEN - CALL KM223 (Ionic,binarray) - ELSEIF (IND.EQ.3) THEN - CALL KM248 (Ionic,binarray) - ELSEIF (IND.EQ.4) THEN - CALL KM273 (Ionic,binarray) - ELSEIF (IND.EQ.5) THEN - CALL KM298 (Ionic,binarray) - ELSE - CALL KM323 (Ionic,binarray) - ENDIF -! - G01 = binarray(01) - G02 = binarray(02) - G03 = binarray(03) - G04 = binarray(04) - G05 = binarray(05) - G06 = binarray(06) - G07 = binarray(07) - G08 = binarray(08) - G09 = binarray(09) - G10 = binarray(10) - G11 = binarray(11) - G12 = binarray(12) - G13 = binarray(13) - G14 = binarray(14) - G15 = binarray(15) - G16 = binarray(16) - G17 = binarray(17) - G18 = binarray(18) - G19 = binarray(19) - G20 = binarray(20) - G21 = binarray(21) - G22 = binarray(22) - G23 = binarray(23) -! -! *** Return point; End of subroutine -! - RETURN - END SUBROUTINE KMTAB - - -! INTEGER FUNCTION IBACPOS(IN) -!C -!C Compute the index in the binary activity coefficient array -!C based on the input ionic strength. -!C -!C Chris Nolte, 6/16/05 -!C -! implicit none -! real IN -! IF (IN .LE. 0.300000E+02) THEN -! ibacpos = MIN(NINT( 0.200000E+02*IN) + 1, 600) -! ELSE -! ibacpos = 600+NINT( 0.200000E+01*IN- 0.600000E+02) -! ENDIF -! ibacpos = min(ibacpos, 741) -! return -! end - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KM198 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD. -! THE COMPUTATIONS HAVE BEEN PERFORMED AND THE RESULTS ARE STORED IN -! LOOKUP TABLES. THE IONIC ACTIVITY 'IN' IS INPUT, AND THE ARRAY -! 'BINARR' IS RETURNED WITH THE BINARY COEFFICIENTS. -! -! TEMPERATURE IS 198K -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE KM198 (IONIC, BINARR) - Real(Kind=IonicKind) :: IONIC - Real(kind=fp) :: Binarr (23) - Integer :: ipos -! -! *** Find position in arrays for bincoef -! - IF (Ionic.LE. 0.200000E+02) THEN - ipos = MIN(NINT( 0.200000E+02*Ionic) + 1, 400) - ELSE - ipos = 400+NINT( 0.200000E+01*Ionic- 0.400000E+02) - ENDIF - ipos = min(ipos, 561) -! -! *** Assign values to return array -! - Binarr(01) = BNC01M_198(ipos) - Binarr(02) = BNC02M_198(ipos) - Binarr(03) = BNC03M_198(ipos) - Binarr(04) = BNC04M_198(ipos) - Binarr(05) = BNC05M_198(ipos) - Binarr(06) = BNC06M_198(ipos) - Binarr(07) = BNC07M_198(ipos) - Binarr(08) = BNC08M_198(ipos) - Binarr(09) = BNC09M_198(ipos) - Binarr(10) = BNC10M_198(ipos) - Binarr(11) = BNC11M_198(ipos) - Binarr(12) = BNC12M_198(ipos) - Binarr(13) = BNC13M_198(ipos) - Binarr(14) = BNC14M_198(ipos) - Binarr(15) = BNC15M_198(ipos) - Binarr(16) = BNC16M_198(ipos) - Binarr(17) = BNC17M_198(ipos) - Binarr(18) = BNC18M_198(ipos) - Binarr(19) = BNC19M_198(ipos) - Binarr(20) = BNC20M_198(ipos) - Binarr(21) = BNC21M_198(ipos) - Binarr(22) = BNC22M_198(ipos) - Binarr(23) = BNC23M_198(ipos) -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KM198 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KM223 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD. -! THE COMPUTATIONS HAVE BEEN PERFORMED AND THE RESULTS ARE STORED IN -! LOOKUP TABLES. THE IONIC ACTIVITY 'IN' IS INPUT, AND THE ARRAY -! 'BINARR' IS RETURNED WITH THE BINARY COEFFICIENTS. -! -! TEMPERATURE IS 223K -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE KM223 (IONIC, BINARR) - Real(Kind=IonicKind) :: IONIC - Real(kind=fp) :: Binarr (23) - Integer :: ipos -! -! *** Find position in arrays for bincoef -! - IF (Ionic.LE. 0.200000E+02) THEN - ipos = MIN(NINT( 0.200000E+02*Ionic) + 1, 400) - ELSE - ipos = 400+NINT( 0.200000E+01*Ionic- 0.400000E+02) - ENDIF - ipos = min(ipos, 561) -! -! *** Assign values to return array -! - Binarr(01) = BNC01M_223(ipos) - Binarr(02) = BNC02M_223(ipos) - Binarr(03) = BNC03M_223(ipos) - Binarr(04) = BNC04M_223(ipos) - Binarr(05) = BNC05M_223(ipos) - Binarr(06) = BNC06M_223(ipos) - Binarr(07) = BNC07M_223(ipos) - Binarr(08) = BNC08M_223(ipos) - Binarr(09) = BNC09M_223(ipos) - Binarr(10) = BNC10M_223(ipos) - Binarr(11) = BNC11M_223(ipos) - Binarr(12) = BNC12M_223(ipos) - Binarr(13) = BNC13M_223(ipos) - Binarr(14) = BNC14M_223(ipos) - Binarr(15) = BNC15M_223(ipos) - Binarr(16) = BNC16M_223(ipos) - Binarr(17) = BNC17M_223(ipos) - Binarr(18) = BNC18M_223(ipos) - Binarr(19) = BNC19M_223(ipos) - Binarr(20) = BNC20M_223(ipos) - Binarr(21) = BNC21M_223(ipos) - Binarr(22) = BNC22M_223(ipos) - Binarr(23) = BNC23M_223(ipos) -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KM223 -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KM248 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD. -! THE COMPUTATIONS HAVE BEEN PERFORMED AND THE RESULTS ARE STORED IN -! LOOKUP TABLES. THE IONIC ACTIVITY 'IN' IS INPUT, AND THE ARRAY -! 'BINARR' IS RETURNED WITH THE BINARY COEFFICIENTS. -! -! TEMPERATURE IS 248K -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE KM248 (IONIC, BINARR) - Real(Kind=IonicKind) :: IONIC - Real(kind=fp) :: Binarr (23) - Integer :: ipos -! -! *** Find position in arrays for bincoef -! - IF (Ionic.LE. 0.200000E+02) THEN - ipos = MIN(NINT( 0.200000E+02*Ionic) + 1, 400) - ELSE - ipos = 400+NINT( 0.200000E+01*Ionic- 0.400000E+02) - ENDIF - ipos = min(ipos, 561) -! -! *** Assign values to return array -! - Binarr(01) = BNC01M_248(ipos) - Binarr(02) = BNC02M_248(ipos) - Binarr(03) = BNC03M_248(ipos) - Binarr(04) = BNC04M_248(ipos) - Binarr(05) = BNC05M_248(ipos) - Binarr(06) = BNC06M_248(ipos) - Binarr(07) = BNC07M_248(ipos) - Binarr(08) = BNC08M_248(ipos) - Binarr(09) = BNC09M_248(ipos) - Binarr(10) = BNC10M_248(ipos) - Binarr(11) = BNC11M_248(ipos) - Binarr(12) = BNC12M_248(ipos) - Binarr(13) = BNC13M_248(ipos) - Binarr(14) = BNC14M_248(ipos) - Binarr(15) = BNC15M_248(ipos) - Binarr(16) = BNC16M_248(ipos) - Binarr(17) = BNC17M_248(ipos) - Binarr(18) = BNC18M_248(ipos) - Binarr(19) = BNC19M_248(ipos) - Binarr(20) = BNC20M_248(ipos) - Binarr(21) = BNC21M_248(ipos) - Binarr(22) = BNC22M_248(ipos) - Binarr(23) = BNC23M_248(ipos) -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KM248 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KM273 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD. -! THE COMPUTATIONS HAVE BEEN PERFORMED AND THE RESULTS ARE STORED IN -! LOOKUP TABLES. THE IONIC ACTIVITY 'IN' IS INPUT, AND THE ARRAY -! 'BINARR' IS RETURNED WITH THE BINARY COEFFICIENTS. -! -! TEMPERATURE IS 273K -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE KM273 (IONIC, BINARR) - Real(Kind=IonicKind) :: IONIC - Real(kind=fp) :: Binarr (23) - Integer :: ipos -! -! *** Find position in arrays for bincoef -! - IF (Ionic.LE. 0.200000E+02) THEN - ipos = MIN(NINT( 0.200000E+02*Ionic) + 1, 400) - ELSE - ipos = 400+NINT( 0.200000E+01*Ionic- 0.400000E+02) - ENDIF - ipos = min(ipos, 561) -! -! *** Assign values to return array -! - Binarr(01) = BNC01M_273(ipos) - Binarr(02) = BNC02M_273(ipos) - Binarr(03) = BNC03M_273(ipos) - Binarr(04) = BNC04M_273(ipos) - Binarr(05) = BNC05M_273(ipos) - Binarr(06) = BNC06M_273(ipos) - Binarr(07) = BNC07M_273(ipos) - Binarr(08) = BNC08M_273(ipos) - Binarr(09) = BNC09M_273(ipos) - Binarr(10) = BNC10M_273(ipos) - Binarr(11) = BNC11M_273(ipos) - Binarr(12) = BNC12M_273(ipos) - Binarr(13) = BNC13M_273(ipos) - Binarr(14) = BNC14M_273(ipos) - Binarr(15) = BNC15M_273(ipos) - Binarr(16) = BNC16M_273(ipos) - Binarr(17) = BNC17M_273(ipos) - Binarr(18) = BNC18M_273(ipos) - Binarr(19) = BNC19M_273(ipos) - Binarr(20) = BNC20M_273(ipos) - Binarr(21) = BNC21M_273(ipos) - Binarr(22) = BNC22M_273(ipos) - Binarr(23) = BNC23M_273(ipos) -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KM273 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KM298 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD. -! THE COMPUTATIONS HAVE BEEN PERFORMED AND THE RESULTS ARE STORED IN -! LOOKUP TABLES. THE IONIC ACTIVITY 'IN' IS INPUT, AND THE ARRAY -! 'BINARR' IS RETURNED WITH THE BINARY COEFFICIENTS. -! -! TEMPERATURE IS 298K -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE KM298 (IONIC, BINARR) - Real(kind=fp) :: Binarr (23) - Real(Kind=IonicKind) :: IONIC - Integer :: ipos -! -! *** Find position in arrays for bincoef -! - IF (Ionic.LE. 0.200000E+02) THEN - ipos = MIN(NINT( 0.200000E+02*Ionic) + 1, 400) - ELSE - ipos = 400+NINT( 0.200000E+01*Ionic- 0.400000E+02) - ENDIF - ipos = min(ipos, 561) -! -! *** Assign values to return array -! - Binarr(01) = BNC01M_298(ipos) - Binarr(02) = BNC02M_298(ipos) - Binarr(03) = BNC03M_298(ipos) - Binarr(04) = BNC04M_298(ipos) - Binarr(05) = BNC05M_298(ipos) - Binarr(06) = BNC06M_298(ipos) - Binarr(07) = BNC07M_298(ipos) - Binarr(08) = BNC08M_298(ipos) - Binarr(09) = BNC09M_298(ipos) - Binarr(10) = BNC10M_298(ipos) - Binarr(11) = BNC11M_298(ipos) - Binarr(12) = BNC12M_298(ipos) - Binarr(13) = BNC13M_298(ipos) - Binarr(14) = BNC14M_298(ipos) - Binarr(15) = BNC15M_298(ipos) - Binarr(16) = BNC16M_298(ipos) - Binarr(17) = BNC17M_298(ipos) - Binarr(18) = BNC18M_298(ipos) - Binarr(19) = BNC19M_298(ipos) - Binarr(20) = BNC20M_298(ipos) - Binarr(21) = BNC21M_298(ipos) - Binarr(22) = BNC22M_298(ipos) - Binarr(23) = BNC23M_298(ipos) -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KM298 - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE KM323 -! *** CALCULATES BINARY ACTIVITY COEFFICIENTS BY KUSIK-MEISSNER METHOD. -! THE COMPUTATIONS HAVE BEEN PERFORMED AND THE RESULTS ARE STORED IN -! LOOKUP TABLES. THE IONIC ACTIVITY 'IN' IS INPUT, AND THE ARRAY -! 'BINARR' IS RETURNED WITH THE BINARY COEFFICIENTS. -! -! TEMPERATURE IS 323K -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE KM323 (IONIC, BINARR) - Real(Kind=IonicKind) :: IONIC - Real(kind=fp) :: Binarr (23) - Integer :: ipos -! -! *** Find position in arrays for bincoef -! - IF (Ionic.LE. 0.200000E+02) THEN - ipos = MIN(NINT( 0.200000E+02*Ionic) + 1, 400) - ELSE - ipos = 400+NINT( 0.200000E+01*Ionic- 0.400000E+02) - ENDIF - ipos = min(ipos, 561) -! -! *** Assign values to return array -! - Binarr(01) = BNC01M_323(ipos) - Binarr(02) = BNC02M_323(ipos) - Binarr(03) = BNC03M_323(ipos) - Binarr(04) = BNC04M_323(ipos) - Binarr(05) = BNC05M_323(ipos) - Binarr(06) = BNC06M_323(ipos) - Binarr(07) = BNC07M_323(ipos) - Binarr(08) = BNC08M_323(ipos) - Binarr(09) = BNC09M_323(ipos) - Binarr(10) = BNC10M_323(ipos) - Binarr(11) = BNC11M_323(ipos) - Binarr(12) = BNC12M_323(ipos) - Binarr(13) = BNC13M_323(ipos) - Binarr(14) = BNC14M_323(ipos) - Binarr(15) = BNC15M_323(ipos) - Binarr(16) = BNC16M_323(ipos) - Binarr(17) = BNC17M_323(ipos) - Binarr(18) = BNC18M_323(ipos) - Binarr(19) = BNC19M_323(ipos) - Binarr(20) = BNC20M_323(ipos) - Binarr(21) = BNC21M_323(ipos) - Binarr(22) = BNC22M_323(ipos) - Binarr(23) = BNC23M_323(ipos) -! -! *** Return point ; End of subroutine -! - RETURN - END SUBROUTINE KM323 - - -!C************************************************************************* -!C -!C TOOLBOX LIBRARY v.1.0 (May 1995) -!C -!C Program unit : SUBROUTINE CHRBLN -!C Purpose : Position of last non-blank character in a string -!C Author : Athanasios Nenes -!C -!C ======================= ARGUMENTS / USAGE ============================= -!C -!C STR is the CHARACTER variable containing the string examined -!C IBLK is a INTEGER variable containing the position of last non -!C blank character. If string is all spaces (ie ' '), then -!C the value returned is 1. -!C -!C EXAMPLE: -!C STR = 'TEST1.DAT ' -!C CALL CHRBLN (STR, IBLK) -!C -!C after execution of this code segment, "IBLK" has the value "9", which -!C is the position of the last non-blank character of "STR". -!C -!C*********************************************************************** -!C - SUBROUTINE CHRBLN (STR, IBLK) -!C -!C*********************************************************************** - CHARACTER*(*) STR - Integer :: IBLK, I, ILEN -! - IBLK = 1 ! Substring pointer (default=1) - ILEN = LEN(STR) ! Length of string - DO 10 i=ILEN,1,-1 - IF (STR(i:i).NE.' ' .AND. STR(i:i).NE.CHAR(0)) THEN - IBLK = i - RETURN - ENDIF -10 CONTINUE - RETURN -! - END SUBROUTINE CHRBLN - - -!C************************************************************************* -!C -!C TOOLBOX LIBRARY v.1.0 (May 1995) -!C -!C Program unit : SUBROUTINE SHFTRGHT -!C Purpose : RIGHT-JUSTIFICATION FUNCTION ON A STRING -!C Author : Athanasios Nenes -!C -!C ======================= ARGUMENTS / USAGE ============================= -!C -!C STRING is the CHARACTER variable with the string to be justified -!C -!C EXAMPLE: -!C STRING = 'AAAA ' -!C CALL SHFTRGHT (STRING) -!C -!C after execution of this code segment, STRING contains the value -!C ' AAAA'. -!C -!C************************************************************************* -!C - SUBROUTINE SHFTRGHT (CHR) -!C -!C*********************************************************************** - CHARACTER CHR*(*) - Integer :: I1, I2, I -! - I1 = LEN(CHR) ! Total length of string - CALL CHRBLN(CHR,I2) ! Position of last non-blank character - IF (I2.EQ.I1) RETURN -! - DO 10 I=I2,1,-1 ! Shift characters - CHR(I1+I-I2:I1+I-I2) = CHR(I:I) - CHR(I:I) = ' ' -10 CONTINUE - RETURN -! - END SUBROUTINE SHFTRGHT - - -!C************************************************************************* -!C -!C TOOLBOX LIBRARY v.1.0 (May 1995) -!C -!C Program unit : SUBROUTINE RPLSTR -!C Purpose : REPLACE CHARACTERS OCCURING IN A STRING -!C Author : Athanasios Nenes -!C -!C ======================= ARGUMENTS / USAGE ============================= -!C -!C STRING is the CHARACTER variable with the string to be edited -!C OLD is the old character which is to be replaced -!C NEW is the new character which OLD is to be replaced with -!C IERR is 0 if everything went well, is 1 if 'NEW' contains 'OLD'. -!C In this case, this is invalid, and no change is done. -!C -!C EXAMPLE: -!C STRING = 'AAAA' -!C OLD = 'A' -!C NEW = 'B' -!C CALL RPLSTR (STRING, OLD, NEW) -!C -!C after execution of this code segment, STRING contains the value -!C 'BBBB'. -!C -!C************************************************************************* -!C - SUBROUTINE RPLSTR (STRING, OLD, NEW, IERR) -!C -!C*********************************************************************** - CHARACTER STRING*(*), OLD*(*), NEW*(*) - Integer :: ILo, IErr, IP -! -! *** INITIALIZE ******************************************************** -! - ILO = LEN(OLD) -! -! *** CHECK AND SEE IF 'NEW' CONTAINS 'OLD', WHICH CANNOT *************** -! - IP = INDEX(NEW,OLD) - IF (IP.NE.0) THEN - IERR = 1 - RETURN - ELSE - IERR = 0 - ENDIF -! -! *** PROCEED WITH REPLACING ******************************************* -! -10 IP = INDEX(STRING,OLD) ! SEE IF 'OLD' EXISTS IN 'STRING' - IF (IP.EQ.0) RETURN ! 'OLD' DOES NOT EXIST ; RETURN - STRING(IP:IP+ILO-1) = NEW ! REPLACE SUBSTRING 'OLD' WITH 'NEW' - GOTO 10 ! GO FOR NEW OCCURANCE OF 'OLD' -! - END SUBROUTINE RPLSTR - - -!C************************************************************************* -!C -!C TOOLBOX LIBRARY v.1.0 (May 1995) -!C -!C Program unit : SUBROUTINE INPTD -!C Purpose : Prompts user for a value (DOUBLE). A default value -!C is provided, so if user presses , the default -!C is used. -!C Author : Athanasios Nenes -!C -!C ======================= ARGUMENTS / USAGE ============================= -!C -!C VAR is the DOUBLE PRECISION variable which value is to be saved -!C DEF is a DOUBLE PRECISION variable, with the default value of VAR. -!C PROMPT is a CHARACTER varible containing the prompt string. -!C PRFMT is a CHARACTER variable containing the FORMAT specifier -!C for the default value DEF. -!C IERR is an INTEGER error flag, and has the values: -!C 0 - No error detected. -!C 1 - Invalid FORMAT and/or Invalid default value. -!C 2 - Bad value specified by user -!C -!C EXAMPLE: -!C CALL INPTD (VAR, 1.0D0, 'Give value for A ', '*', Ierr) -!C -!C after execution of this code segment, the user is prompted for the -!C value of variable VAR. If is pressed (ie no value is specified) -!C then 1.0 is assigned to VAR. The default value is displayed in free- -!C format. The error status is specified by variable Ierr -!C -!C*********************************************************************** -!C - SUBROUTINE INPTD (VAR, DEF, PROMPT, PRFMT, IERR) -!C -!C*********************************************************************** - CHARACTER PROMPT*(*), PRFMT*(*), BUFFER*128 - Real(kind=fp) :: DEF, VAR - INTEGER IERR - Integer :: IEnd -! - IERR = 0 -! -! *** WRITE DEFAULT VALUE TO WORK BUFFER ******************************* -! - WRITE (BUFFER, FMT=PRFMT, ERR=10) DEF - CALL CHRBLN (BUFFER, IEND) -! -! *** PROMPT USER FOR INPUT AND READ IT ******************************** -! - WRITE (*,*) PROMPT,' [',BUFFER(1:IEND),']: ' - READ (*, '(A)', ERR=20, END=20) BUFFER - CALL CHRBLN (BUFFER,IEND) -! -! *** READ DATA OR SET DEFAULT ? **************************************** -! - IF (IEND.EQ.1 .AND. BUFFER(1:1).EQ.' ') THEN - VAR = DEF - ELSE - READ (BUFFER, *, ERR=20, END=20) VAR - ENDIF -! -! *** RETURN POINT ****************************************************** -! -30 RETURN -! -! *** ERROR HANDLER ***************************************************** -! -10 IERR = 1 ! Bad FORMAT and/or bad default value - GOTO 30 -! -20 IERR = 2 ! Bad number given by user - GOTO 30 -! - END SUBROUTINE INPTD - - -!C************************************************************************* -!C -!C TOOLBOX LIBRARY v.1.0 (May 1995) -!C -!C Program unit : SUBROUTINE Pushend -!C Purpose : Positions the pointer of a sequential file at its end -!C Simulates the ACCESS='APPEND' clause of a F77L OPEN -!C statement with Standard Fortran commands. -!C -!C ======================= ARGUMENTS / USAGE ============================= -!C -!C Iunit is a INTEGER variable, the file unit which the file is -!C connected to. -!C -!C EXAMPLE: -!C CALL PUSHEND (10) -!C -!C after execution of this code segment, the pointer of unit 10 is -!C pushed to its end. -!C -!C*********************************************************************** -!C - SUBROUTINE Pushend (Iunit) -!C -!C*********************************************************************** -! - - LOGICAL OPNED - Integer :: IUnit -! -! *** INQUIRE IF Iunit CONNECTED TO FILE ******************************** -! - INQUIRE (UNIT=Iunit, OPENED=OPNED) - IF (.NOT.OPNED) GOTO 25 -! -! *** Iunit CONNECTED, PUSH POINTER TO END ****************************** -! -10 READ (Iunit,'()', ERR=20, END=20) - GOTO 10 -! -! *** RETURN POINT ****************************************************** -! -20 BACKSPACE (Iunit) -25 RETURN - END SUBROUTINE Pushend - - -!C************************************************************************* -!C -!C TOOLBOX LIBRARY v.1.0 (May 1995) -!C -!C Program unit : SUBROUTINE APPENDEXT -!C Purpose : Fix extension in file name string -!C -!C ======================= ARGUMENTS / USAGE ============================= -!C -!C Filename is the CHARACTER variable with the file name -!C Defext is the CHARACTER variable with extension (including '.', -!C ex. '.DAT') -!C Overwrite is a LOGICAL value, .TRUE. overwrites any existing extension -!C in "Filename" with "Defext", .FALSE. puts "Defext" only if -!C there is no extension in "Filename". -!C -!C EXAMPLE: -!C FILENAME1 = 'TEST.DAT' -!C FILENAME2 = 'TEST.DAT' -!C CALL APPENDEXT (FILENAME1, '.TXT', .FALSE.) -!C CALL APPENDEXT (FILENAME2, '.TXT', .TRUE. ) -!C -!C after execution of this code segment, "FILENAME1" has the value -!C 'TEST.DAT', while "FILENAME2" has the value 'TEST.TXT' -!C -!C*********************************************************************** -!C - SUBROUTINE Appendext (Filename, Defext, Overwrite) -!C -!C*********************************************************************** - CHARACTER*(*) Filename, Defext - LOGICAL Overwrite - Integer :: Idot, IEnd -! - CALL CHRBLN (Filename, Iend) - IF (Filename(1:1).EQ.' ' .AND. Iend.EQ.1) RETURN ! Filename empty - Idot = INDEX (Filename, '.') ! Append extension ? - IF (Idot.EQ.0) Filename = Filename(1:Iend)//Defext - IF (Overwrite .AND. Idot.NE.0) - & Filename = Filename(:Idot-1)//Defext - RETURN - END SUBROUTINE Appendext - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE POLY3 -! *** FINDS THE REAL ROOTS OF THE THIRD ORDER ALGEBRAIC EQUATION: -! X**3 + A1*X**2 + A2*X + A3 = 0.0 -! THE EQUATION IS SOLVED ANALYTICALLY. -! -! PARAMETERS A1, A2, A3 ARE SPECIFIED BY THE USER. THE MINIMUM -! NONEGATIVE ROOT IS RETURNED IN VARIABLE 'ROOT'. IF NO ROOT IS -! FOUND (WHICH IS GREATER THAN ZERO), ROOT HAS THE VALUE 1D30. -! AND THE FLAG ISLV HAS A VALUE GREATER THAN ZERO. -! -! SOLUTION FORMULA IS FOUND IN PAGE 32 OF: -! MATHEMATICAL HANDBOOK OF FORMULAS AND TABLES -! SCHAUM'S OUTLINE SERIES -! MURRAY SPIEGER, McGRAW-HILL, NEW YORK, 1968 -! (GREEK TRANSLATION: BY SOTIRIOS PERSIDES, ESPI, ATHENS, 1976) -! -! A SPECIAL CASE IS CONSIDERED SEPERATELY ; WHEN A3 = 0, THEN -! ONE ROOT IS X=0.0, AND THE OTHER TWO FROM THE SOLUTION OF THE -! QUADRATIC EQUATION X**2 + A1*X + A2 = 0.0 -! THIS SPECIAL CASE IS CONSIDERED BECAUSE THE ANALYTICAL FORMULA -! DOES NOT YIELD ACCURATE RESULTS (DUE TO NUMERICAL ROUNDOFF ERRORS) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE POLY3 (A1, A2, A3, ROOT, ISLV) -! - ! I/O - Real(kind=fp) :: A1, A2, A3, ROOT - Integer :: ISLV - - !IMPLICIT DOUBLE PRECISION (A-H, O-Z) - Real(kind=fp), Parameter :: EXPON = (1.0d0/3.0d0) - Real(kind=fp), Parameter :: THET1 = (120.0d0/180.0d0) - Real(kind=fp), Parameter :: THET2 = (240.0d0/180.0d0) - Real(kind=fp), Parameter :: EPSPoly = 1.0e-50 - - ! Intermediate - Integer :: I, IX - Real(kind=fp) :: X(3), D, SQD, R, Q, SSIG, S, T, TSIG - Real(kind=fp) :: THET, COEF -! -! *** SPECIAL CASE : QUADRATIC*X EQUATION ***************************** -! - IF (ABS(A3).LE.EPSPoly) THEN - ISLV = 1 - IX = 1 - X(1) = ZERO - D = A1*A1-4.0*A2 - IF (D.GE.ZERO) THEN - IX = 3 - SQD = SQRT(D) - X(2) = 0.5*(-A1+SQD) - X(3) = 0.5*(-A1-SQD) - ENDIF - ELSE -! -! *** NORMAL CASE : CUBIC EQUATION ************************************ -! -! DEFINE PARAMETERS Q, R, S, T, D -! - ISLV= 1 - Q = (3.0*A2 - A1*A1)/9.0 - R = (9.0*A1*A2 - 27.0*A3 - 2.0*A1*A1*A1)/54.0 - D = Q*Q*Q + R*R -! -! *** CALCULATE ROOTS ************************************************* -! -! D < 0, THREE REAL ROOTS -! - IF (D.LT.-EPSPoly) THEN ! D < -EPS : D < ZERO - IX = 3 - THET = EXPON*ACOS(R/SQRT(-Q*Q*Q)) - COEF = 2.0*SQRT(-Q) - X(1) = COEF*COS(THET) - EXPON*A1 - X(2) = COEF*COS(THET + THET1*PI) - EXPON*A1 - X(3) = COEF*COS(THET + THET2*PI) - EXPON*A1 -! -! D = 0, THREE REAL (ONE DOUBLE) ROOTS -! - ELSE IF (D.LE.EPSPoly) THEN ! -EPS <= D <= EPS : D = ZERO - IX = 2 - SSIG = SIGN (ONE, R) - S = SSIG*(ABS(R))**EXPON - X(1) = 2.0*S - EXPON*A1 - X(2) = -S - EXPON*A1 -! -! D > 0, ONE REAL ROOT -! - ELSE ! D > EPS : D > ZERO - IX = 1 - SQD = SQRT(D) - SSIG = SIGN (ONE, R+SQD) ! TRANSFER SIGN TO SSIG - TSIG = SIGN (ONE, R-SQD) - S = SSIG*(ABS(R+SQD))**EXPON ! EXPONENTIATE ABS() - T = TSIG*(ABS(R-SQD))**EXPON - X(1) = S + T - EXPON*A1 - ENDIF - ENDIF -! -! *** SELECT APPROPRIATE ROOT ***************************************** -! - ROOT = 1.D30 - DO 10 I=1,IX - IF (X(I).GT.ZERO) THEN - ROOT = MIN (ROOT, X(I)) - ISLV = 0 - ENDIF -10 CONTINUE -! -! *** END OF SUBROUTINE POLY3 ***************************************** -! - RETURN - END SUBROUTINE POLY3 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE POLY3B -! *** FINDS A REAL ROOT OF THE THIRD ORDER ALGEBRAIC EQUATION: -! X**3 + A1*X**2 + A2*X + A3 = 0.0 -! THE EQUATION IS SOLVED NUMERICALLY (BISECTION). -! -! PARAMETERS A1, A2, A3 ARE SPECIFIED BY THE USER. THE MINIMUM -! NONEGATIVE ROOT IS RETURNED IN VARIABLE 'ROOT'. IF NO ROOT IS -! FOUND (WHICH IS GREATER THAN ZERO), ROOT HAS THE VALUE 1D30. -! AND THE FLAG ISLV HAS A VALUE GREATER THAN ZERO. -! -! RTLW, RTHI DEFINE THE INTERVAL WHICH THE ROOT IS LOOKED FOR. -! -!======================================================================= -! - SUBROUTINE POLY3B (A1, A2, A3, RTLW, RTHI, ROOT, ISLV) -! - ! Set up in initialization - !PARAMETER (ZERO=0.0, EPS=1D-15, MAXIT=100, NDIV=5) - ! Inputs - Real(kind=fp) :: A1, A2, A3, RTLW, RTHI - ! Output - Real(kind=fp) :: ROOT - Integer :: ISLV - ! Intermediate variables - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, DX - Integer :: I -! ! This is a function - Real(kind=fp) :: Func, X - FUNC(X) = X**3.d0 + A1*X**2.0 + A2*X + A3 -! -! *** INITIAL VALUES FOR BISECTION ************************************* -! - X1 = RTLW - Y1 = FUNC(X1) - IF (ABS(Y1).LE.EPS) THEN ! Is low a root? - ROOT = RTLW - GOTO 50 - ENDIF -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO *********************** -! - DX = (RTHI-RTLW)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNC (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2) .LT. ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION FOUND -! - IF (ABS(Y2) .LT. EPS) THEN ! X2 is a root - ROOT = X2 - ELSE - ROOT = 1.d30 - ISLV = 1 - ENDIF - GOTO 50 -! -! *** BISECTION ******************************************************* -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - Y3 = FUNC (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE -! -! *** CONVERGED ; RETURN *********************************************** -! -40 X3 = 0.5*(X1+X2) - Y3 = FUNC (X3) - ROOT = X3 - ISLV = 0 -! -50 RETURN -! -! *** END OF SUBROUTINE POLY3B ***************************************** -! - END SUBROUTINE POLY3B - - -!cc PROGRAM DRIVER() -!cc Real(kind=fp) :: ROOT -!ccC -!cc CALL POLY3 (-1.d0, 1.d0, -1.d0, ROOT, ISLV) -!cc IF (ISLV.NE.0) STOP 'Error in POLY3' -!cc WRITE (*,*) 'Root=', ROOT -!ccC -!cc CALL POLY3B (-1.d0, 1.d0, -1.d0, -10.d0, 10.d0, ROOT, ISLV) -!cc IF (ISLV.NE.0) STOP 'Error in POLY3B' -!cc WRITE (*,*) 'Root=', ROOT -!ccC -!cc END SUBROUTINE DRIVER - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** FUNCTION EX10 -! *** 10^X FUNCTION ; ALTERNATE OF LIBRARY ROUTINE ; USED BECAUSE IT IS -! MUCH FASTER BUT WITHOUT GREAT LOSS IN ACCURACY. , -! MAXIMUM ERROR IS 2%, EXECUTION TIME IS 42% OF THE LIBRARY ROUTINE -! (ON A 80286/80287 MACHINE, using Lahey FORTRAN 77 v.3.0). -! -! EXPONENT RANGE IS BETWEEN -K AND K (K IS THE REAL ARGUMENT 'K') -! MAX VALUE FOR K: 9.999 -! IF X < -K, X IS SET TO -K, IF X > K, X IS SET TO K -! -! THE EXPONENT IS CALCULATED BY THE PRODUCT ADEC*AINT, WHERE ADEC -! IS THE MANTISSA AND AINT IS THE MAGNITUDE (EXPONENT). BOTH -! MANTISSA AND MAGNITUDE ARE PRE-CALCULATED AND STORED IN LOOKUP -! TABLES ; THIS LEADS TO THE INCREASED SPEED. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - FUNCTION EX10(X,K) RESULT( OutVal ) - Real(kind=fp) :: X, Y, K - INTEGER :: K1, K2 - Real(kind=fp) :: OutVal -! -! *** LIMIT X TO [-K, K] RANGE ***************************************** -! - Y = MAX(-K, MIN(X,K)) ! MIN: -9.999, MAX: 9.999 -! -! *** GET INTEGER AND DECIMAL PART ************************************* -! - K1 = INT(Y) - K2 = INT(100*(Y-K1)) -! -! *** CALCULATE EXP FUNCTION ******************************************* -! - OutVal = AINT10(K1+10)*ADEC10(K2+100) -! -! *** END OF EXP FUNCTION ********************************************** -! - RETURN - END FUNCTION EX10 - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE PUSHERR -! *** THIS SUBROUTINE SAVES AN ERROR MESSAGE IN THE ERROR STACK -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE PUSHERR (IERR,ERRINF) - CHARACTER ERRINF*(*) - Integer :: IErr -! -! *** SAVE ERROR CODE IF THERE IS ANY SPACE *************************** -! - IF (NOFER.LT.NERRMX) THEN - NOFER = NOFER + 1 - ERRSTK(NOFER) = IERR - ERRMSG(NOFER) = ERRINF - STKOFL =.FALSE. - ELSE - STKOFL =.TRUE. ! STACK OVERFLOW - ENDIF -! -! *** END OF SUBROUTINE PUSHERR **************************************** -! - END SUBROUTINE PUSHERR - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE ISERRINF -! *** THIS SUBROUTINE OBTAINS A COPY OF THE ERROR STACK (& MESSAGES) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE ISERRINF (ERRSTKI, ERRMSGI, NOFERI, STKOFLI) - CHARACTER ERRMSGI*40 - INTEGER ERRSTKI - LOGICAL STKOFLI - DIMENSION ERRMSGI(NERRMX), ERRSTKI(NERRMX) - Integer :: I, NOFERI -! -! *** OBTAIN WHOLE ERROR STACK **************************************** -! - DO 10 I=1,NOFER ! Error messages & codes - ERRSTKI(I) = ERRSTK(I) - ERRMSGI(I) = ERRMSG(I) - 10 CONTINUE -! - STKOFLI = STKOFL - NOFERI = NOFER -! - RETURN -! -! *** END OF SUBROUTINE ISERRINF *************************************** -! - END SUBROUTINE ISERRINF - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE ERRSTAT -! *** THIS SUBROUTINE REPORTS ERROR MESSAGES TO UNIT 'IO' -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE ERRSTAT (IO,IERR,ERRINF) - Character ERRINF*(*) - Character(Len=4) :: CER - Character(Len=29), Parameter :: NCIS = - & 'NO CONVERGENCE IN SUBROUTINE' - Character(Len=27), Parameter :: NCIF = - & 'NO CONVERGENCE IN FUNCTION' - Character(Len=26), Parameter :: NSIS = - & 'NO SOLUTION IN SUBROUTINE' - Character(Len=24), Parameter :: NSIF = - & 'NO SOLUTION IN FUNCTION' - Integer :: IO, IERR, IOK, IEND -! -! *** WRITE ERROR IN CHARACTER ***************************************** -! - WRITE (CER,'(I4)') IERR - CALL RPLSTR (CER, ' ', '0',IOK) ! REPLACE BLANKS WITH ZEROS - CALL CHRBLN (ERRINF, IEND) ! LAST POSITION OF ERRINF CHAR -! -! *** WRITE ERROR TYPE (FATAL, WARNING ) ******************************* -! - IF (IERR.EQ.0) THEN - WRITE (IO,1000) 'NO ERRORS DETECTED ' - GOTO 10 -! - ELSE IF (IERR.LT.0) THEN - WRITE (IO,1000) 'ERROR STACK EXHAUSTED ' - GOTO 10 -! - ELSE IF (IERR.GT.1000) THEN - WRITE (IO,1100) 'FATAL',CER -! - ELSE - WRITE (IO,1100) 'WARNING',CER - ENDIF -! -! *** WRITE ERROR MESSAGE ********************************************** -! -! FATAL MESSAGES -! - IF (IERR.EQ.1001) THEN - CALL CHRBLN (SCASE, IEND) - WRITE (IO,1000) 'CASE NOT SUPPORTED IN CALCMR ['//SCASE(1:IEND) - & //']' -! - ELSEIF (IERR.EQ.1002) THEN - CALL CHRBLN (SCASE, IEND) - WRITE (IO,1000) 'CASE NOT SUPPORTED ['//SCASE(1:IEND)//']' -! -! WARNING MESSAGES -! - ELSEIF (IERR.EQ.0001) THEN - WRITE (IO,1000) NSIS,ERRINF -! - ELSEIF (IERR.EQ.0002) THEN - WRITE (IO,1000) NCIS,ERRINF -! - ELSEIF (IERR.EQ.0003) THEN - WRITE (IO,1000) NSIF,ERRINF -! - ELSEIF (IERR.EQ.0004) THEN - WRITE (IO,1000) NCIF,ERRINF -! - ELSE IF (IERR.EQ.0019) THEN - WRITE (IO,1000) 'HNO3(aq) AFFECTS H+, WHICH '// - & 'MIGHT AFFECT SO4/HSO4 RATIO' - WRITE (IO,1000) 'DIRECT INCREASE IN H+ [',ERRINF(1:IEND),'] %' -! - ELSE IF (IERR.EQ.0020) THEN - IF (W(4).GT.TINY .AND. W(5).GT.TINY) THEN - WRITE (IO,1000) 'HSO4-SO4 EQUILIBRIUM MIGHT AFFECT HNO3,' - & //'HCL DISSOLUTION' - ELSE - WRITE (IO,1000) 'HSO4-SO4 EQUILIBRIUM MIGHT AFFECT NH3 ' - & //'DISSOLUTION' - ENDIF - WRITE (IO,1000) 'DIRECT DECREASE IN H+ [',ERRINF(1:IEND),'] %' -! - ELSE IF (IERR.EQ.0021) THEN - WRITE (IO,1000) 'HNO3(aq),HCL(aq) AFFECT H+, WHICH '// - & 'MIGHT AFFECT SO4/HSO4 RATIO' - WRITE (IO,1000) 'DIRECT INCREASE IN H+ [',ERRINF(1:IEND),'] %' -! - ELSE IF (IERR.EQ.0022) THEN - WRITE (IO,1000) 'HCL(g) EQUILIBRIUM YIELDS NONPHYSICAL '// - & 'DISSOLUTION' - WRITE (IO,1000) 'A TINY AMOUNT [',ERRINF(1:IEND),'] IS '// - & 'ASSUMED TO BE DISSOLVED' -! - ELSEIF (IERR.EQ.0033) THEN - WRITE (IO,1000) 'HCL(aq) AFFECTS H+, WHICH '// - & 'MIGHT AFFECT SO4/HSO4 RATIO' - WRITE (IO,1000) 'DIRECT INCREASE IN H+ [',ERRINF(1:IEND),'] %' -! - ELSEIF (IERR.EQ.0050) THEN - WRITE (IO,1000) 'TOO MUCH SODIUM GIVEN AS INPUT.' - WRITE (IO,1000) 'REDUCED TO COMPLETELY NEUTRALIZE SO4,Cl,NO3.' - WRITE (IO,1000) 'EXCESS SODIUM IS IGNORED.' -! - ELSEIF (IERR.EQ.0051) THEN - WRITE (IO,1000) 'TOO MUCH CALCIUM GIVEN AS INPUT.' - WRITE (IO,1000) 'REDUCED TO COMPLETELY NEUTRALIZE SO4,Cl,NO3.' - WRITE (IO,1000) 'EXCESS CALCIUM IS IGNORED.' -! - ELSEIF (IERR.EQ.0052) THEN - WRITE (IO,1000) 'TOO MUCH SODIUM (+Ca) GIVEN AS INPUT.' - WRITE (IO,1000) 'REDUCED TO COMPLETELY NEUTRALIZE SO4,Cl,NO3.' - WRITE (IO,1000) 'EXCESS SODIUM IS IGNORED.' -! - ELSEIF (IERR.EQ.0053) THEN - WRITE (IO,1000) 'TOO MUCH MAGNESIUM (+Ca,Na) GIVEN AS INPUT.' - WRITE (IO,1000) 'REDUCED TO COMPLETELY NEUTRALIZE SO4,Cl,NO3.' - WRITE (IO,1000) 'EXCESS MAGNESIUM IS IGNORED.' -! - ELSEIF (IERR.EQ.0054) THEN - WRITE (IO,1000) 'TOO MUCH POTASSIUM(+Ca,Na,Mg) GIVEN AS INPUT.' - WRITE (IO,1000) 'REDUCED TO COMPLETELY NEUTRALIZE SO4,Cl,NO3.' - WRITE (IO,1000) 'EXCESS POTASSIUM IS IGNORED.' -! - ELSE - WRITE (IO,1000) 'NO DIAGNOSTIC MESSAGE AVAILABLE' - ENDIF -! -10 RETURN -! -! *** FORMAT STATEMENTS ************************************* -! -1000 FORMAT (1X,A:A:A:A:A) -1100 FORMAT (1X,A,' ERROR [',A4,']:') -! -! *** END OF SUBROUTINE ERRSTAT ***************************** -! - END SUBROUTINE ERRSTAT - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE ISORINF -! *** THIS SUBROUTINE PROVIDES INFORMATION ABOUT ISORROPIA -! -! ======================== ARGUMENTS / USAGE =========================== -! -! OUTPUT: -! 1. [VERSI] -! CHARACTER*15 variable. -! Contains version-date information of ISORROPIA -! -! 2. [NCMP] -! INTEGER variable. -! The number of components needed in input array WI -! (or, the number of major species accounted for by ISORROPIA) -! -! 3. [NION] -! INTEGER variable -! The number of ions considered in the aqueous phase -! -! 4. [NAQGAS] -! INTEGER variable -! The number of undissociated species found in aqueous aerosol -! phase -! -! 5. [NSOL] -! INTEGER variable -! The number of solids considered in the solid aerosol phase -! -! 6. [NERR] -! INTEGER variable -! The size of the error stack (maximum number of errors that can -! be stored before the stack exhausts). -! -! 7. [TIN] -! Real(kind=fp) :: variable -! The value used for a very small number. -! -! 8. [GRT] -! Real(kind=fp) :: variable -! The value used for a very large number. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE ISORINF (VERSI, NCMP, NION, NAQGAS, NSOL, NERR, TIN, - & GRT) - CHARACTER VERSI*(*) - Integer :: NCMP, NION, NAQGAS, NSOL, NERR - Real(kind=fp) :: TIN, GRT -! -! *** ASSIGN INFO ******************************************************* -! - VERSI = VERSION - NCMP = NCOMP - NION = NIONS - NAQGAS = NGASAQ - NSOL = NSLDS - NERR = NERRMX - TIN = TINY - GRT = GREAT -! - RETURN -! -! *** END OF SUBROUTINE ISORINF ******************************************* -! - END SUBROUTINE ISORINF - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE ISRP1F -! *** THIS SUBROUTINE IS THE DRIVER ROUTINE FOR THE FOREWARD PROBLEM OF -! AN AMMONIUM-SULFATE AEROSOL SYSTEM. -! THE COMPOSITION REGIME IS DETERMINED BY THE SULFATE RATIO AND BY -! THE AMBIENT RELATIVE HUMIDITY. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE ISRP1F (WI, RHI, TEMPI) - Real(kind=fp) :: WI(NCOMP), RHI, TEMPI - Real(kind=fp) :: DC -! -! *** INITIALIZE ALL VARIABLES IN COMMON BLOCK ************************** -! - CALL INIT1 (WI, RHI, TEMPI) -! -! *** CALCULATE SULFATE RATIO ******************************************* -! - SULRAT = W(3)/W(2) -! -! *** FIND CALCULATION REGIME FROM (SULRAT,RH) ************************** -! -! *** SULFATE POOR -! - IF (2.0.LE.SULRAT) THEN - DC = W(3) - 2.001D0*W(2) ! For numerical stability - W(3) = W(3) + MAX(-DC, ZERO) -! - IF(METSTBL.EQ.1) THEN - SCASE = 'A2' - CALL CALCA2 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH42S4) THEN - SCASE = 'A1' - CALL CALCA1 ! NH42SO4 ; case A1 -! - ELSEIF (DRNH42S4.LE.RH) THEN - SCASE = 'A2' - CALL CALCA2 ! Only liquid ; case A2 - ENDIF - ENDIF -! -! *** SULFATE RICH (NO ACID) -! - ELSEIF (1.0.LE.SULRAT .AND. SULRAT.LT.2.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'B4' - CALL CALCB4 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH4HS4) THEN - SCASE = 'B1' - CALL CALCB1 ! NH4HSO4,LC,NH42SO4 ; case B1 -! - ELSEIF (DRNH4HS4.LE.RH .AND. RH.LT.DRLC) THEN - SCASE = 'B2' - CALL CALCB2 ! LC,NH42S4 ; case B2 -! - ELSEIF (DRLC.LE.RH .AND. RH.LT.DRNH42S4) THEN - SCASE = 'B3' - CALL CALCB3 ! NH42S4 ; case B3 -! - ELSEIF (DRNH42S4.LE.RH) THEN - SCASE = 'B4' - CALL CALCB4 ! Only liquid ; case B4 - ENDIF - ENDIF - CALL CALCNH3 -! -! *** SULFATE RICH (FREE ACID) -! - ELSEIF (SULRAT.LT.1.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'C2' - CALL CALCC2 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH4HS4) THEN - SCASE = 'C1' - CALL CALCC1 ! NH4HSO4 ; case C1 -! - ELSEIF (DRNH4HS4.LE.RH) THEN - SCASE = 'C2' - CALL CALCC2 ! Only liquid ; case C2 -! - ENDIF - ENDIF - CALL CALCNH3 - ENDIF -! -! *** RETURN POINT -! - RETURN -! -! *** END OF SUBROUTINE ISRP1F ***************************************** -! - END SUBROUTINE ISRP1F - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE ISRP2F -! *** THIS SUBROUTINE IS THE DRIVER ROUTINE FOR THE FOREWARD PROBLEM OF -! AN AMMONIUM-SULFATE-NITRATE AEROSOL SYSTEM. -! THE COMPOSITION REGIME IS DETERMINED BY THE SULFATE RATIO AND BY -! THE AMBIENT RELATIVE HUMIDITY. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE ISRP2F (WI, RHI, TEMPI) - Real(kind=fp) :: WI(NCOMP), RHI, TEMPI -! -! *** INITIALIZE ALL VARIABLES IN COMMON BLOCK ************************** -! - CALL INIT2 (WI, RHI, TEMPI) -! -! *** CALCULATE SULFATE RATIO ******************************************* -! - SULRAT = W(3)/W(2) -! -! *** FIND CALCULATION REGIME FROM (SULRAT,RH) ************************** -! -! *** SULFATE POOR -! - IF (2.0.LE.SULRAT) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'D3' - CALL CALCD3 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH4NO3) THEN - SCASE = 'D1' - CALL CALCD1 ! NH42SO4,NH4NO3 ; case D1 -! - ELSEIF (DRNH4NO3.LE.RH .AND. RH.LT.DRNH42S4) THEN - SCASE = 'D2' - CALL CALCD2 ! NH42S4 ; case D2 -! - ELSEIF (DRNH42S4.LE.RH) THEN - SCASE = 'D3' - CALL CALCD3 ! Only liquid ; case D3 - ENDIF - ENDIF -! -! *** SULFATE RICH (NO ACID) -! FOR SOLVING THIS CASE, NITRIC ACID IS ASSUMED A MINOR SPECIES, -! THAT DOES NOT SIGNIFICANTLY PERTURB THE HSO4-SO4 EQUILIBRIUM. -! SUBROUTINES CALCB? ARE CALLED, AND THEN THE NITRIC ACID IS DISSOLVED -! FROM THE HNO3(G) -> (H+) + (NO3-) EQUILIBRIUM. -! - ELSEIF (1.0.LE.SULRAT .AND. SULRAT.LT.2.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'B4' - CALL CALCB4 ! Only liquid (metastable) - SCASE = 'E4' - ELSE -! - IF (RH.LT.DRNH4HS4) THEN - SCASE = 'B1' - CALL CALCB1 ! NH4HSO4,LC,NH42SO4 ; case E1 - SCASE = 'E1' -! - ELSEIF (DRNH4HS4.LE.RH .AND. RH.LT.DRLC) THEN - SCASE = 'B2' - CALL CALCB2 ! LC,NH42S4 ; case E2 - SCASE = 'E2' -! - ELSEIF (DRLC.LE.RH .AND. RH.LT.DRNH42S4) THEN - SCASE = 'B3' - CALL CALCB3 ! NH42S4 ; case E3 - SCASE = 'E3' -! - ELSEIF (DRNH42S4.LE.RH) THEN - SCASE = 'B4' - CALL CALCB4 ! Only liquid ; case E4 - SCASE = 'E4' - ENDIF - ENDIF -! - CALL CALCNA ! HNO3(g) DISSOLUTION -! -! *** SULFATE RICH (FREE ACID) -! FOR SOLVING THIS CASE, NITRIC ACID IS ASSUMED A MINOR SPECIES, -! THAT DOES NOT SIGNIFICANTLY PERTURB THE HSO4-SO4 EQUILIBRIUM -! SUBROUTINE CALCC? IS CALLED, AND THEN THE NITRIC ACID IS DISSOLVED -! FROM THE HNO3(G) -> (H+) + (NO3-) EQUILIBRIUM. -! - ELSEIF (SULRAT.LT.1.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'C2' - CALL CALCC2 ! Only liquid (metastable) - SCASE = 'F2' - ELSE -! - IF (RH.LT.DRNH4HS4) THEN - SCASE = 'C1' - CALL CALCC1 ! NH4HSO4 ; case F1 - SCASE = 'F1' -! - ELSEIF (DRNH4HS4.LE.RH) THEN - SCASE = 'C2' - CALL CALCC2 ! Only liquid ; case F2 - SCASE = 'F2' - ENDIF - ENDIF -! - CALL CALCNA ! HNO3(g) DISSOLUTION - ENDIF -! -! *** RETURN POINT -! - RETURN -! -! *** END OF SUBROUTINE ISRP2F ***************************************** -! - END SUBROUTINE ISRP2F - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE ISRP3F -! *** THIS SUBROUTINE IS THE DRIVER ROUTINE FOR THE FORWARD PROBLEM OF -! AN AMMONIUM-SULFATE-NITRATE-CHLORIDE-SODIUM AEROSOL SYSTEM. -! THE COMPOSITION REGIME IS DETERMINED BY THE SULFATE & SODIUM -! RATIOS AND BY THE AMBIENT RELATIVE HUMIDITY. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE ISRP3F (WI, RHI, TEMPI) - Real(kind=fp) :: WI(NCOMP), RHI, TEMPI - Real(kind=fp) :: REST -! -! *** ADJUST FOR TOO LITTLE AMMONIUM AND CHLORIDE *********************** -! - ! To have better conservation of mass, change to TINY - ! (hotp 11/14/07) - !WI(3) = MAX (WI(3), 1.D-10) ! NH4+ : 1e-4 umoles/m3 - !WI(5) = MAX (WI(5), 1.D-10) ! Cl- : 1e-4 umoles/m3 - WI(3) = MAX (WI(3), TINY) ! NH4+ : 1e-4 umoles/m3 - WI(5) = MAX (WI(5), TINY) ! Cl- : 1e-4 umoles/m3 -! -! *** ADJUST FOR TOO LITTLE SODIUM, SULFATE AND NITRATE COMBINED ******** -! - ! To have better conservation of mass, change to TINY - ! (hotp 11/14/07) - !IF (WI(1)+WI(2)+WI(4) .LE. 1d-10) THEN - ! WI(1) = 1.D-10 ! Na+ : 1e-4 umoles/m3 - ! WI(2) = 1.D-10 ! SO4- : 1e-4 umoles/m3 - !ENDIF - IF (WI(1)+WI(2)+WI(4) .LE. TINY) THEN - WI(1) = TINY ! Na+ : 1e-4 umoles/m3 - WI(2) = TINY ! SO4- : 1e-4 umoles/m3 - ENDIF -! -! *** INITIALIZE ALL VARIABLES IN COMMON BLOCK ************************** -! - CALL ISOINIT3 (WI, RHI, TEMPI) -! -! *** CHECK IF TOO MUCH SODIUM ; ADJUST AND ISSUE ERROR MESSAGE ********* -! - REST = 2.0*W(2) + W(4) + W(5) - IF (W(1).GT.REST) THEN ! NA > 2*SO4+CL+NO3 ? - W(1) = (ONE-1D-6)*REST ! Adjust Na amount - CALL PUSHERR (0050, 'ISRP3F') ! Warning error: Na adjusted - ENDIF -! -! *** CALCULATE SULFATE & SODIUM RATIOS ********************************* -! - SULRAT = (W(1)+W(3))/W(2) - SODRAT = W(1)/W(2) -! -! *** FIND CALCULATION REGIME FROM (SULRAT,RH) ************************** - -! *** SULFATE POOR ; SODIUM POOR -! - IF (2.0.LE.SULRAT .AND. SODRAT.LT.2.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'G5' - CALL CALCG5 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH4NO3) THEN - SCASE = 'G1' - CALL CALCG1 ! NH42SO4,NH4NO3,NH4CL,NA2SO4 -! - ELSEIF (DRNH4NO3.LE.RH .AND. RH.LT.DRNH4CL) THEN - SCASE = 'G2' - CALL CALCG2 ! NH42SO4,NH4CL,NA2SO4 -! - ELSEIF (DRNH4CL.LE.RH .AND. RH.LT.DRNH42S4) THEN - SCASE = 'G3' - CALL CALCG3 ! NH42SO4,NA2SO4 -! - ELSEIF (DRNH42S4.LE.RH .AND. RH.LT.DRNA2SO4) THEN - SCASE = 'G4' - CALL CALCG4 ! NA2SO4 -! - ELSEIF (DRNA2SO4.LE.RH) THEN - SCASE = 'G5' - CALL CALCG5 ! Only liquid - ENDIF - ENDIF -! -! *** SULFATE POOR ; SODIUM RICH -! - ELSE IF (SULRAT.GE.2.0 .AND. SODRAT.GE.2.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'H6' - CALL CALCH6 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH4NO3) THEN - SCASE = 'H1' - CALL CALCH1 ! NH4NO3,NH4CL,NA2SO4,NACL,NANO3 -! - ELSEIF (DRNH4NO3.LE.RH .AND. RH.LT.DRNANO3) THEN - SCASE = 'H2' - CALL CALCH2 ! NH4CL,NA2SO4,NACL,NANO3 -! - ELSEIF (DRNANO3.LE.RH .AND. RH.LT.DRNACL) THEN - SCASE = 'H3' - CALL CALCH3 ! NH4CL,NA2SO4,NACL -! - ELSEIF (DRNACL.LE.RH .AND. RH.LT.DRNH4Cl) THEN - SCASE = 'H4' - CALL CALCH4 ! NH4CL,NA2SO4 -! - ELSEIF (DRNH4Cl.LE.RH .AND. RH.LT.DRNA2SO4) THEN - SCASE = 'H5' - CALL CALCH5 ! NA2SO4 -! - ELSEIF (DRNA2SO4.LE.RH) THEN - SCASE = 'H6' - CALL CALCH6 ! NO SOLID - ENDIF - ENDIF -! -! *** SULFATE RICH (NO ACID) -! - ELSEIF (1.0.LE.SULRAT .AND. SULRAT.LT.2.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'I6' - CALL CALCI6 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH4HS4) THEN - SCASE = 'I1' - CALL CALCI1 ! NA2SO4,(NH4)2SO4,NAHSO4,NH4HSO4,LC -! - ELSEIF (DRNH4HS4.LE.RH .AND. RH.LT.DRNAHSO4) THEN - SCASE = 'I2' - CALL CALCI2 ! NA2SO4,(NH4)2SO4,NAHSO4,LC -! - ELSEIF (DRNAHSO4.LE.RH .AND. RH.LT.DRLC) THEN - SCASE = 'I3' - CALL CALCI3 ! NA2SO4,(NH4)2SO4,LC -! - ELSEIF (DRLC.LE.RH .AND. RH.LT.DRNH42S4) THEN - SCASE = 'I4' - CALL CALCI4 ! NA2SO4,(NH4)2SO4 -! - ELSEIF (DRNH42S4.LE.RH .AND. RH.LT.DRNA2SO4) THEN - SCASE = 'I5' - CALL CALCI5 ! NA2SO4 -! - ELSEIF (DRNA2SO4.LE.RH) THEN - SCASE = 'I6' - CALL CALCI6 ! NO SOLIDS - ENDIF - ENDIF -! - CALL CALCNHA ! MINOR SPECIES: HNO3, HCl - CALL CALCNH3 ! NH3 -! -! *** SULFATE RICH (FREE ACID) -! - ELSEIF (SULRAT.LT.1.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'J3' - CALL CALCJ3 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH4HS4) THEN - SCASE = 'J1' - CALL CALCJ1 ! NH4HSO4,NAHSO4 -! - ELSEIF (DRNH4HS4.LE.RH .AND. RH.LT.DRNAHSO4) THEN - SCASE = 'J2' - CALL CALCJ2 ! NAHSO4 -! - ELSEIF (DRNAHSO4.LE.RH) THEN - SCASE = 'J3' - CALL CALCJ3 - ENDIF - ENDIF -! - CALL CALCNHA ! MINOR SPECIES: HNO3, HCl - CALL CALCNH3 ! NH3 - ENDIF -! -! *** RETURN POINT -! - RETURN -! -! *** END OF SUBROUTINE ISRP3F ***************************************** -! - END SUBROUTINE ISRP3F - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE ISRP4F -! *** THIS SUBROUTINE IS THE DRIVER ROUTINE FOR THE FORWARD PROBLEM OF -! AN AMMONIUM-SULFATE-NITRATE-CHLORIDE-SODIUM-CALCIUM-POTASSIUM-MAGNESIUM -! AEROSOL SYSTEM. -! THE COMPOSITION REGIME IS DETERMINED BY THE SULFATE & SODIUM -! RATIOS AND BY THE AMBIENT RELATIVE HUMIDITY. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE ISRP4F (WI, RHI, TEMPI) - Real(kind=fp) :: WI(NCOMP), RHI, TEMPI - Real(kind=fp) :: NAFRI, NO3FRI, REST - Real(kind=fp) :: CCASO4I, FRSO4I, CCANO32I, CAFRI, CCACL2I - Real(kind=fp) :: CLFRI, REST1, CNA2SO4I, CNACLI, CNANO3I - Real(kind=fp) :: NO3FR, REST2, CMGSO4I, FRMGI, CMGNO32I - Real(kind=fp) :: CMGCL2I, REST3 -! -! *** ADJUST FOR TOO LITTLE AMMONIUM AND CHLORIDE *********************** -! -! WI(3) = MAX (WI(3), 1.D-10) ! NH4+ : 1e-4 umoles/m3 -! WI(5) = MAX (WI(5), 1.D-10) ! Cl- : 1e-4 umoles/m3 -! -! *** ADJUST FOR TOO LITTLE SODIUM, SULFATE AND NITRATE COMBINED ******** -! -! IF (WI(1)+WI(2)+WI(4) .LE. 1d-10) THEN -! WI(1) = 1.D-10 ! Na+ : 1e-4 umoles/m3 -! WI(2) = 1.D-10 ! SO4- : 1e-4 umoles/m3 -! ENDIF -! -! *** INITIALIZE ALL VARIABLES IN COMMON BLOCK ************************** -! - CALL INIT4 (WI, RHI, TEMPI) -! -! *** CHECK IF TOO MUCH SODIUM+CRUSTALS ; ADJUST AND ISSUE ERROR MESSAGE -! - REST = 2.0*W(2) + W(4) + W(5) -! - IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -! - CCASO4I = MIN (W(2),W(6)) - FRSO4I = MAX (W(2) - CCASO4I, ZERO) - CAFRI = MAX (W(6) - CCASO4I, ZERO) - CCANO32I = MIN (CAFRI, 0.5D0*W(4)) - CAFRI = MAX (CAFRI - CCANO32I, ZERO) - NO3FRI = MAX (W(4) - 2.0*CCANO32I, ZERO) - CCACL2I = MIN (CAFRI, 0.5D0*W(5)) - CLFRI = MAX (W(5) - 2.0*CCACL2I, ZERO) - REST1 = 2.0*FRSO4I + NO3FRI + CLFRI -! - CNA2SO4I = MIN (FRSO4I, 0.5D0*W(1)) - FRSO4I = MAX (FRSO4I - CNA2SO4I, ZERO) - NAFRI = MAX (W(1) - 2.0*CNA2SO4I, ZERO) - CNACLI = MIN (NAFRI, CLFRI) - NAFRI = MAX (NAFRI - CNACLI, ZERO) - CLFRI = MAX (CLFRI - CNACLI, ZERO) - CNANO3I = MIN (NAFRI, NO3FRI) - NO3FR = MAX (NO3FRI - CNANO3I, ZERO) - REST2 = 2.0*FRSO4I + NO3FRI + CLFRI -! - CMGSO4I = MIN (FRSO4I, W(8)) - FRMGI = MAX (W(8) - CMGSO4I, ZERO) - FRSO4I = MAX (FRSO4I - CMGSO4I, ZERO) - CMGNO32I = MIN (FRMGI, 0.5D0*NO3FRI) - FRMGI = MAX (FRMGI - CMGNO32I, ZERO) - NO3FRI = MAX (NO3FRI - 2.0*CMGNO32I, ZERO) - CMGCL2I = MIN (FRMGI, 0.5D0*CLFRI) - CLFRI = MAX (CLFRI - 2.0*CMGCL2I, ZERO) - REST3 = 2.0*FRSO4I + NO3FRI + CLFRI -! - IF (W(6).GT.REST) THEN ! Ca > 2*SO4+CL+NO3 ? - W(6) = (ONE-1D-6)*REST ! Adjust Ca amount - W(1)= ZERO ! Adjust Na amount - W(7)= ZERO ! Adjust K amount - W(8)= ZERO ! Adjust Mg amount - CALL PUSHERR (0051, 'ISRP4F') ! Warning error: Ca, Na, K, Mg in excess -! - ELSE IF (W(1).GT.REST1) THEN ! Na > 2*FRSO4+FRCL+FRNO3 ? - W(1) = (ONE-1D-6)*REST1 ! Adjust Na amount - W(7)= ZERO ! Adjust K amount - W(8)= ZERO ! Adjust Mg amount - CALL PUSHERR (0052, 'ISRP4F') ! Warning error: Na, K, Mg in excess -! - ELSE IF (W(8).GT.REST2) THEN ! Mg > 2*FRSO4+FRCL+FRNO3 ? - W(8) = (ONE-1D-6)*REST2 ! Adjust Mg amount - W(7)= ZERO ! Adjust K amount - CALL PUSHERR (0053, 'ISRP4F') ! Warning error: K, Mg in excess -! - ELSE IF (W(7).GT.REST3) THEN ! K > 2*FRSO4+FRCL+FRNO3 ? - W(7) = (ONE-1D-6)*REST3 ! Adjust K amount - CALL PUSHERR (0054, 'ISRP4F') ! Warning error: K in excess - ENDIF - ENDIF -! -! *** CALCULATE RATIOS ************************************************* -! - SO4RAT = (W(1)+W(3)+W(6)+W(7)+W(8))/W(2) - CRNARAT = (W(1)+W(6)+W(7)+W(8))/W(2) - CRRAT = (W(6)+W(7)+W(8))/W(2) -! -! *** FIND CALCULATION REGIME FROM (SO4RAT, CRNARAT, CRRAT, RRH) ******** -! -! *** SULFATE POOR: Rso4>2; (DUST + SODIUM) POOR: R(Cr+Na)<2 -! - IF (2.0.LE.SO4RAT .AND. CRNARAT.LT.2.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'O7' - CALL CALCO7 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH4NO3) THEN - SCASE = 'O1' - CALL CALCO1 ! CaSO4, NH4NO3, NH4CL, (NH4)2SO4, MGSO4, NA2SO4, K2SO4 -! - ELSEIF (DRNH4NO3.LE.RH .AND. RH.LT.DRNH4CL) THEN - SCASE = 'O2' - CALL CALCO2 ! CaSO4, NH4CL, (NH4)2SO4, MGSO4, NA2SO4, K2SO4 -! - ELSEIF (DRNH4CL.LE.RH .AND. RH.LT.DRNH42S4) THEN - SCASE = 'O3' - CALL CALCO3 ! CaSO4, (NH4)2SO4, MGSO4, NA2SO4, K2SO4 -! - ELSEIF (DRNH42S4.LE.RH .AND. RH.LT.DRMGSO4) THEN - SCASE = 'O4' - CALL CALCO4 ! CaSO4, MGSO4, NA2SO4, K2SO4 -! - ELSEIF (DRMGSO4.LE.RH .AND. RH.LT.DRNA2SO4) THEN - SCASE = 'O5' - CALL CALCO5 ! CaSO4, NA2SO4, K2SO4 -! - ELSEIF (DRNA2SO4.LE.RH .AND. RH.LT.DRK2SO4) THEN - SCASE = 'O6' - CALL CALCO6 ! CaSO4, K2SO4 -! - ELSEIF (DRK2SO4.LE.RH) THEN - SCASE = 'O7' - CALL CALCO7 ! CaSO4 - ENDIF - ENDIF -! -! *** SULFATE POOR: Rso4>2; (DUST + SODIUM) RICH: R(Cr+Na)>2; DUST POOR: Rcr<2. -! - ELSEIF (SO4RAT.GE.2.0 .AND. CRNARAT.GE.2.0) THEN -! - IF (CRRAT.LE.2.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'M8' - CALL CALCM8 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRNH4NO3) THEN - SCASE = 'M1' - CALL CALCM1 ! CaSO4, NH4NO3, NH4CL, MGSO4, NA2SO4, K2SO4, NACL, NANO3 -! - ELSEIF (DRNH4NO3.LE.RH .AND. RH.LT.DRNANO3) THEN - SCASE = 'M2' - CALL CALCM2 ! CaSO4, NH4CL, MGSO4, NA2SO4, K2SO4, NACL, NANO3 -! - ELSEIF (DRNANO3.LE.RH .AND. RH.LT.DRNACL) THEN - SCASE = 'M3' - CALL CALCM3 ! CaSO4, NH4CL, MGSO4, NA2SO4, K2SO4, NACL -! - ELSEIF (DRNACL.LE.RH .AND. RH.LT.DRNH4Cl) THEN - SCASE = 'M4' - CALL CALCM4 ! CaSO4, NH4CL, MGSO4, NA2SO4, K2SO4 -! - ELSEIF (DRNH4Cl.LE.RH .AND. RH.LT.DRMGSO4) THEN - SCASE = 'M5' - CALL CALCM5 ! CaSO4, MGSO4, NA2SO4, K2SO4 -! - ELSEIF (DRMGSO4.LE.RH .AND. RH.LT.DRNA2SO4) THEN - SCASE = 'M6' - CALL CALCM6 ! CaSO4, NA2SO4, K2SO4 -! - ELSEIF (DRNA2SO4.LE.RH .AND. RH.LT.DRK2SO4) THEN - SCASE = 'M7' - CALL CALCM7 ! CaSO4, K2SO4 -! - ELSEIF (DRK2SO4.LE.RH) THEN - SCASE = 'M8' - CALL CALCM8 ! CaSO4 - ENDIF - ENDIF -! CALL CALCHCO3 -! -! *** SULFATE POOR: Rso4>2; (DUST + SODIUM) RICH: R(Cr+Na)>2; DUST POOR: Rcr<2. -! - ELSEIF (CRRAT.GT.2.0) THEN -! - IF(METSTBL.EQ.1) THEN - SCASE = 'P13' - CALL CALCP13 ! Only liquid (metastable) - ELSE -! - IF (RH.LT.DRCACL2) THEN - SCASE = 'P1' - CALL CALCP1 ! CaSO4, CA(NO3)2, CACL2, K2SO4, KNO3, KCL, MGSO4, -! ! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! - ELSEIF (DRCACL2.LE.RH .AND. RH.LT.DRMGCL2) THEN - SCASE = 'P2' - CALL CALCP2 ! CaSO4, CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, -! ! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! - ELSEIF (DRMGCL2.LE.RH .AND. RH.LT.DRCANO32) THEN - SCASE = 'P3' - CALL CALCP3 ! CaSO4, CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, -! ! MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL -! - ELSEIF (DRCANO32.LE.RH .AND. RH.LT.DRMGNO32) THEN - SCASE = 'P4' - CALL CALCP4 ! CaSO4, K2SO4, KNO3, KCL, MGSO4, -! ! MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL -! - ELSEIF (DRMGNO32.LE.RH .AND. RH.LT.DRNH4NO3) THEN - SCASE = 'P5' - CALL CALCP5 ! CaSO4, K2SO4, KNO3, KCL, MGSO4, -! ! NANO3, NACL, NH4NO3, NH4CL -! - ELSEIF (DRNH4NO3.LE.RH .AND. RH.LT.DRNANO3) THEN - SCASE = 'P6' - CALL CALCP6 ! CaSO4, K2SO4, KNO3, KCL, MGSO4, NANO3, NACL, NH4CL -! - ELSEIF (DRNANO3.LE.RH .AND. RH.LT.DRNACL) THEN - SCASE = 'P7' - CALL CALCP7 ! CaSO4, K2SO4, KNO3, KCL, MGSO4, NACL, NH4CL -! - ELSEIF (DRNACL.LE.RH .AND. RH.LT.DRNH4CL) THEN - SCASE = 'P8' - CALL CALCP8 ! CaSO4, K2SO4, KNO3, KCL, MGSO4, NH4CL -! - ELSEIF (DRNH4CL.LE.RH .AND. RH.LT.DRKCL) THEN - SCASE = 'P9' - CALL CALCP9 ! CaSO4, K2SO4, KNO3, KCL, MGSO4 -! - ELSEIF (DRKCL.LE.RH .AND. RH.LT.DRMGSO4) THEN - SCASE = 'P10' - CALL CALCP10 ! CaSO4, K2SO4, KNO3, MGSO4 -! - ELSEIF (DRMGSO4.LE.RH .AND. RH.LT.DRKNO3) THEN - SCASE = 'P11' - CALL CALCP11 ! CaSO4, K2SO4, KNO3 -! - ELSEIF (DRKNO3.LE.RH .AND. RH.LT.DRK2SO4) THEN - SCASE = 'P12' - CALL CALCP12 ! CaSO4, K2SO4 -! - ELSEIF (DRK2SO4.LE.RH) THEN - SCASE = 'P13' - CALL CALCP13 ! CaSO4 - ENDIF - ENDIF -! CALL CALCHCO3 - ENDIF -! -! *** SULFATE RICH (NO ACID): 1 2.0) -! 2. LIQUID AEROSOL PHASE ONLY POSSIBLE -! -! FOR CALCULATIONS, A BISECTION IS PERFORMED TOWARDS X, THE -! AMOUNT OF HYDROGEN IONS (H+) FOUND IN THE LIQUID PHASE. -! FOR EACH ESTIMATION OF H+, FUNCTION FUNCB2A CALCULATES THE -! CONCENTRATION OF IONS FROM THE NH3(GAS) - NH4+(LIQ) EQUILIBRIUM. -! ELECTRONEUTRALITY IS USED AS THE OBJECTIVE FUNCTION. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -! Algorithm revised to attain a more accuracte solution -! SLC 2012-03-21 -! -!======================================================================= -! - SUBROUTINE CALCA2() - Real(kind=fp) :: OMELO, OMEHI, X1, Y1, DX, X2, Y2, X3, Y3 - Integer :: I -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU =.TRUE. ! Outer loop activity calculation flag - OMELO = TINY ! Low limit: SOLUTION IS VERY BASIC - OMEHI = 2.0D0*W(2) ! High limit: FROM NH4+ -> NH3(g) + H+(aq) -! -! *** CALCULATE WATER CONTENT ***************************************** -! - MOLAL(5) = W(2) - MOLAL(6) = ZERO - CALL CALCMR -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = OMEHI - Y1 = FUNCA2 (X1) - IF (ABS(Y1).LE.EPS) RETURN -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (OMEHI-OMELO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = MAX(X1-DX, OMELO) - Y2 = FUNCA2 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE - IF (ABS(Y2).LE.EPS) THEN - RETURN - ELSE - CALL PUSHERR (0001, 'CALCA2') ! WARNING ERROR: NO SOLUTION - RETURN - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCA2 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCA2') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCA2 (X3) - RETURN -! -! *** END OF SUBROUTINE CALCA2 **************************************** -! - END SUBROUTINE CALCA2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** FUNCTION FUNCA2 -! *** CASE A2 -! FUNCTION THAT SOLVES THE SYSTEM OF EQUATIONS FOR CASE A2 ; -! AND RETURNS THE VALUE OF THE ZEROED FUNCTION IN FUNCA2. -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCA2 (OMEGI) - Real(kind=fp) :: LAMDA - Real(kind=fp) :: OMEGI, PSI, A1, A2, A3, ZETA, DENOM - Integer :: I -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. - PSI = W(2) ! INITIAL AMOUNT OF (NH4)2SO4 IN SOLUTION -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP - A1 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. - A2 = XK2*R*TEMP/XKW*(GAMA(8)/GAMA(9))**2. - A3 = XKW*RH*WATER*WATER -! - LAMDA = PSI/(A1/OMEGI+ONE) - ZETA = A3/OMEGI -! -! *** SPECIATION & WATER CONTENT *************************************** -! -#if defined( ISORROPIA_V22 ) - MOLAL (1) = OMEGI ! HI - MOLAL (5) = MAX(PSI-LAMDA,TINY) ! SO4I - MOLAL (3) = MAX(W(3)/(ONE/A2/OMEGI + ONE), 2.*MOLAL(5)) ! NH4I - MOLAL (6) = LAMDA ! HSO4I - GNH3 = MAX (W(3)-MOLAL(3), TINY) ! NH3GI - COH = ZETA ! OHI -#else - MOLAL (1) = OMEGI ! HI - MOLAL (3) = W(3)/(ONE/A2/OMEGI + ONE) ! NH4I - MOLAL (5) = MAX(PSI-LAMDA,TINY) ! SO4I - MOLAL (6) = LAMDA ! HSO4I - GNH3 = MAX (W(3)-MOLAL(3), TINY) ! NH3GI - COH = ZETA ! OHI -#endif -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 DENOM = (2.0*MOLAL(5)+MOLAL(6)) - FUNCA2= (MOLAL(3)/DENOM - ONE) + MOLAL(1)/DENOM - RETURN -! -! *** END OF FUNCTION FUNCA2 ******************************************** -! - END FUNCTION FUNCA2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCA1 -! *** CASE A1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : (NH4)2SO4 -! -! A SIMPLE MATERIAL BALANCE IS PERFORMED, AND THE SOLID (NH4)2SO4 -! IS CALCULATED FROM THE SULFATES. THE EXCESS AMMONIA REMAINS IN -! THE GAS PHASE. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCA1() -! - CNH42S4 = W(2) - GNH3 = MAX (W(3)-2.0*CNH42S4, ZERO) - RETURN -! -! *** END OF SUBROUTINE CALCA1 ****************************************** -! - END SUBROUTINE CALCA1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB4 -! *** CASE B4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. LIQUID AEROSOL PHASE ONLY POSSIBLE -! -! FOR CALCULATIONS, A BISECTION IS PERFORMED WITH RESPECT TO H+. -! THE OBJECTIVE FUNCTION IS THE DIFFERENCE BETWEEN THE ESTIMATED H+ -! AND THAT CALCULATED FROM ELECTRONEUTRALITY. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB4() - Integer :: I - Real(kind=fp) :: AK1, BET, GAM, BB, CC, DD -! -! *** SOLVE EQUATIONS ************************************************** -! - FRST = .TRUE. - CALAIN = .TRUE. - CALAOU = .TRUE. -! -! *** CALCULATE WATER CONTENT ****************************************** -! - CALL CALCB1A ! GET DRY SALT CONTENT, AND USE FOR WATER. - MOLALR(13) = CLC - MOLALR(9) = CNH4HS4 - MOLALR(4) = CNH42S4 - CLC = ZERO - CNH4HS4 = ZERO - CNH42S4 = ZERO - WATER = MOLALR(13)/M0(13)+MOLALR(9)/M0(9)+MOLALR(4)/M0(4) -! - MOLAL(3) = W(3) ! NH4I -! - DO 20 I=1,NSWEEP - AK1 = XK1*((GAMA(8)/GAMA(7))**2.)*(WATER/GAMA(7)) - BET = W(2) - GAM = MOLAL(3) -! - BB = BET + AK1 - GAM - CC =-AK1*BET - DD = BB*BB - 4.0*CC -! -! *** SPECIATION & WATER CONTENT *************************************** -! - MOLAL (5) = MAX(TINY,MIN(0.5*(-BB + SQRT(DD)), W(2))) ! SO4I - MOLAL (6) = MAX(TINY,MIN(W(2)-MOLAL(5),W(2))) ! HSO4I - MOLAL (1) = MAX(TINY,MIN(AK1*MOLAL(6)/MOLAL(5),W(2))) ! HI - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (.NOT.CALAIN) GOTO 30 - CALL CALCACT -20 CONTINUE -! -30 RETURN -! -! *** END OF SUBROUTINE CALCB4 ****************************************** -! - END SUBROUTINE CALCB4 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB3 -! *** CASE B3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. BOTH LIQUID & SOLID PHASE IS POSSIBLE -! 3. SOLIDS POSSIBLE: (NH4)2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB3 - Real(kind=fp) :: X, Y, TLC, TNH42S4, TNH4HS4 -! -! *** CALCULATE EQUIVALENT AMOUNT OF HSO4 AND SO4 *********************** -! - X = MAX(2*W(2)-W(3), ZERO) ! Equivalent NH4HSO4 - Y = MAX(W(3) -W(2), ZERO) ! Equivalent NH42SO4 -! -! *** CALCULATE SPECIES ACCORDING TO RELATIVE ABUNDANCE OF HSO4 ********* -! - IF (X.LT.Y) THEN ! LC is the MIN (x,y) - SCASE = 'B3 ; SUBCASE 1' - TLC = X - TNH42S4 = Y-X - CALL CALCB3A (TLC,TNH42S4) ! LC + (NH4)2SO4 - ELSE - SCASE = 'B3 ; SUBCASE 2' - TLC = Y - TNH4HS4 = X-Y - CALL CALCB3B (TLC,TNH4HS4) ! LC + NH4HSO4 - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCB3 ****************************************** -! - END SUBROUTINE CALCB3 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB3A -! *** CASE B3 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH (1.0 < SULRAT < 2.0) -! 2. BOTH LIQUID & SOLID PHASE IS POSSIBLE -! 3. SOLIDS POSSIBLE: (NH4)2SO4 -! -! FOR CALCULATIONS, A BISECTION IS PERFORMED TOWARDS ZETA, THE -! AMOUNT OF SOLID (NH4)2SO4 DISSOLVED IN THE LIQUID PHASE. -! FOR EACH ESTIMATION OF ZETA, FUNCTION FUNCB3A CALCULATES THE -! AMOUNT OF H+ PRODUCED (BASED ON THE SO4 RELEASED INTO THE -! SOLUTION). THE SOLUBILITY PRODUCT OF (NH4)2SO4 IS USED AS THE -! OBJECTIVE FUNCTION. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -! Algorithm revised to attain a more accuracte solution -! SLC 2012-03-21 -! -!======================================================================= -! - SUBROUTINE CALCB3A (TLC, TNH42S4) - Real(kind=fp) :: TLC, TNH42S4 - Integer :: I - Real(kind=fp) :: ZLO, ZHI, YLO, YHI - Real(kind=fp) :: Y1, Z1, Y2, Z2, Y3, Z3 - Real(kind=fp) :: DZ, ZK -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - ZLO = ZERO ! MIN DISSOLVED (NH4)2SO4 - ZHI = TNH42S4 ! MAX DISSOLVED (NH4)2SO4 -! -! *** INITIAL VALUES FOR BISECTION (DISSOLVED (NH4)2SO4 **************** -! - Z1 = ZLO - Y1 = FUNCB3A (Z1, TLC, TNH42S4) - IF (ABS(Y1).LE.EPS) RETURN - YLO= Y1 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO *********************** -! - DZ = (ZHI-ZLO)/REAL(NDIV) - DO 10 I=1,NDIV - Z2 = Z1+DZ - Y2 = FUNCB3A (Z2, TLC, TNH42S4) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - Z1 = Z2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION FOUND -! - YHI= Y1 ! Save Y-value at HI position - IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - RETURN -! -! *** { YLO, YHI } < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH LC -! - ELSE IF (YLO.LT.ZERO .AND. YHI.LT.ZERO) THEN - Z1 = ZHI - Z2 = ZHI - GOTO 40 -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH LC -! - ELSE IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - Z1 = ZLO - Z2 = ZLO - GOTO 40 - ELSE - CALL PUSHERR (0001, 'CALCB3A') ! WARNING ERROR: NO SOLUTION - RETURN - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - Z3 = 0.5*(Z1+Z2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCB3A (Z3, TLC, TNH42S4) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - Z2 = Z3 - ELSE - Y1 = Y3 - Z1 = Z3 - ENDIF - IF (ABS(Z2-Z1) .LE. EPS*Z1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCB3A') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ************************************************ -! -40 ZK = 0.5*(Z1+Z2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCB3A (ZK, TLC, TNH42S4) -! - RETURN -! -! *** END OF SUBROUTINE CALCB3A ****************************************** -! - END SUBROUTINE CALCB3A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** FUNCTION FUNCB3A -! *** CASE B3 ; SUBCASE 1 -! FUNCTION THAT SOLVES THE SYSTEM OF EQUATIONS FOR CASE B3 -! AND RETURNS THE VALUE OF THE ZEROED FUNCTION IN FUNCA3. -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCB3A (ZK, Y, X) - Real(kind=fp) :: KK - Real(kind=fp) :: ZK, Y, X - Real(kind=fp) :: GRAT1, DD - Integer :: I -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - FRST = .TRUE. - CALAIN = .TRUE. - DO 20 I=1,NSWEEP - GRAT1 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. - DD = SQRT( (ZK+GRAT1+Y)**2. + 4.0*Y*GRAT1) - KK = 0.5*(-(ZK+GRAT1+Y) + DD ) -! -! *** SPECIATION & WATER CONTENT *************************************** -! - MOLAL (1) = KK ! HI - MOLAL (5) = KK+ZK+Y ! SO4I - MOLAL (6) = MAX (Y-KK, TINY) ! HSO4I - MOLAL (3) = 3.0*Y+2*ZK ! NH4I - CNH42S4 = X-ZK ! Solid (NH4)2SO4 - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 30 - ENDIF -20 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -!CC30 FUNCB3A= ( SO4I*NH4I**2.0 )/( XK7*(WATER/GAMA(4))**3.0 ) -30 FUNCB3A= MOLAL(5)*MOLAL(3)**2.0 - FUNCB3A= FUNCB3A/(XK7*(WATER/GAMA(4))**3.0) - ONE - RETURN -! -! *** END OF FUNCTION FUNCB3A ******************************************** -! - END FUNCTION FUNCB3A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB3B -! *** CASE B3 ; SUBCASE 2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH (1.0 < SULRAT < 2.0) -! 2. LIQUID PHASE ONLY IS POSSIBLE -! -! SPECIATION CALCULATIONS IS BASED ON THE HSO4 <--> SO4 EQUILIBRIUM. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB3B (Y, X) - Real(kind=fp) :: Y, X - Real(kind=fp) :: KK - Integer :: I - Real(kind=fp) :: DD, GRAT1 -! - CALAOU = .FALSE. ! Outer loop activity calculation flag - FRST = .FALSE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 20 I=1,NSWEEP - GRAT1 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. - DD = SQRT( (GRAT1+Y)**2. + 4.0*(X+Y)*GRAT1) - KK = 0.5*(-(GRAT1+Y) + DD ) -! -! *** SPECIATION & WATER CONTENT *************************************** -! - MOLAL (1) = KK ! HI - MOLAL (5) = Y+KK ! SO4I - MOLAL (6) = MAX (X+Y-KK, TINY) ! HSO4I - MOLAL (3) = 3.0*Y+X ! NH4I - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (.NOT.CALAIN) GOTO 30 - CALL CALCACT -20 CONTINUE -! -30 RETURN -! -! *** END OF SUBROUTINE CALCB3B ****************************************** -! - END SUBROUTINE CALCB3B - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB2 -! *** CASE B2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : LC, (NH4)2SO4 -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON THE SULFATE RATIO: -! 1. WHEN BOTH LC AND (NH4)2SO4 ARE POSSIBLE (SUBROUTINE CALCB2A) -! 2. WHEN ONLY LC IS POSSIBLE (SUBROUTINE CALCB2B). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB2() - Real(kind=fp) :: X, Y -! -! *** CALCULATE EQUIVALENT AMOUNT OF HSO4 AND SO4 *********************** -! - X = MAX(2*W(2)-W(3), TINY) ! Equivalent NH4HSO4 - Y = MAX(W(3) -W(2), TINY) ! Equivalent NH42SO4 -! -! *** CALCULATE SPECIES ACCORDING TO RELATIVE ABUNDANCE OF HSO4 ********* -! - IF (X.LE.Y) THEN ! LC is the MIN (x,y) - SCASE = 'B2 ; SUBCASE 1' - CALL CALCB2A (X,Y-X) ! LC + (NH4)2SO4 POSSIBLE - ELSE - SCASE = 'B2 ; SUBCASE 2' - CALL CALCB2B (Y,X-Y) ! LC ONLY POSSIBLE - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCB2 ****************************************** -! - END SUBROUTINE CALCB2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB2 -! *** CASE B2 ; SUBCASE A. -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH (1.0 < SULRAT < 2.0) -! 2. SOLID PHASE ONLY POSSIBLE -! 3. SOLIDS POSSIBLE: LC, (NH4)2SO4 -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON RELATIVE HUMIDITY: -! 1. WHEN RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! 2. WHEN RH < MDRH ; ONLY SOLID PHASE POSSIBLE -! -! FOR SOLID CALCULATIONS, A MATERIAL BALANCE BASED ON THE STOICHIMETRIC -! PROPORTION OF AMMONIUM AND SULFATE IS DONE TO CALCULATE THE AMOUNT -! OF LC AND (NH4)2SO4 IN THE SOLID PHASE. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB2A (TLC, TNH42S4) - Real(kind=fp) :: TLC, TNH42S4 -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRMLCAS) THEN - SCASE = 'B2 ; SUBCASE A1' ! SOLIDS POSSIBLE ONLY - CLC = TLC - CNH42S4 = TNH42S4 - SCASE = 'B2 ; SUBCASE A1' - ELSE - SCASE = 'B2 ; SUBCASE A2' - CALL CALCB2A2 (TLC, TNH42S4) ! LIQUID & SOLID PHASE POSSIBLE - SCASE = 'B2 ; SUBCASE A2' - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCB2A ***************************************** -! - END SUBROUTINE CALCB2A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB2A2 -! *** CASE B2 ; SUBCASE A2. -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH (1.0 < SULRAT < 2.0) -! 2. SOLID PHASE ONLY POSSIBLE -! 3. SOLIDS POSSIBLE: LC, (NH4)2SO4 -! -! THIS IS THE CASE WHERE THE RELATIVE HUMIDITY IS IN THE MUTUAL -! DRH REGION. THE SOLUTION IS ASSUMED TO BE THE SUM OF TWO WEIGHTED -! SOLUTIONS ; THE SOLID PHASE ONLY (SUBROUTINE CALCB2A1) AND THE -! THE SOLID WITH LIQUID PHASE (SUBROUTINE CALCB3). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB2A2 (TLC, TNH42S4) - Real(kind=fp) :: TLC, TNH42S4 - Real(kind=fp) :: WF, ONEMWF, CLCO, CNH42SO -! -! *** FIND WEIGHT FACTOR ********************************************** -! - IF (WFTYP.EQ.0) THEN - WF = ZERO - ELSEIF (WFTYP.EQ.1) THEN - WF = 0.5D0 - ELSE - WF = (DRLC-RH)/(DRLC-DRMLCAS) - ENDIF - ONEMWF = ONE - WF -! -! *** FIND FIRST SECTION ; DRY ONE ************************************ -! - CLCO = TLC ! FIRST (DRY) SOLUTION - CNH42SO = TNH42S4 -! -! *** FIND SECOND SECTION ; DRY & LIQUID ****************************** -! - CLC = ZERO - CNH42S4 = ZERO - CALL CALCB3 ! SECOND (LIQUID) SOLUTION -! -! *** FIND SOLUTION AT MDRH BY WEIGHTING DRY & LIQUID SOLUTIONS. -! - MOLAL(1)= ONEMWF*MOLAL(1) ! H+ - MOLAL(3)= ONEMWF*(2.0*(CNH42SO-CNH42S4) + 3.0*(CLCO-CLC)) ! NH4+ - MOLAL(5)= ONEMWF*(CNH42SO-CNH42S4 + CLCO-CLC) ! SO4-- - MOLAL(6)= ONEMWF*(CLCO-CLC) ! HSO4- -! - WATER = ONEMWF*WATER -! - CLC = WF*CLCO + ONEMWF*CLC - CNH42S4 = WF*CNH42SO + ONEMWF*CNH42S4 -! - RETURN -! -! *** END OF SUBROUTINE CALCB2A2 **************************************** -! - END SUBROUTINE CALCB2A2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB2 -! *** CASE B2 ; SUBCASE B -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH (1.0 < SULRAT < 2.0) -! 2. BOTH LIQUID & SOLID PHASE IS POSSIBLE -! 3. SOLIDS POSSIBLE: LC -! -! FOR CALCULATIONS, A BISECTION IS PERFORMED TOWARDS ZETA, THE -! AMOUNT OF SOLID LC DISSOLVED IN THE LIQUID PHASE. -! FOR EACH ESTIMATION OF ZETA, FUNCTION FUNCB2A CALCULATES THE -! AMOUNT OF H+ PRODUCED (BASED ON THE HSO4, SO4 RELEASED INTO THE -! SOLUTION). THE SOLUBILITY PRODUCT OF LC IS USED AS THE OBJECTIVE -! FUNCTION. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB2B (TLC,TNH4HS4) - Real(kind=fp) :: TLC, TNH4HS4 - Real(kind=fp) :: YLO, YHI, ZLO, ZHI, DX - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Integer :: I -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - ZLO = ZERO - ZHI = TLC ! High limit: all of it in liquid phase -! -! *** INITIAL VALUES FOR BISECTION ************************************** -! - X1 = ZHI - Y1 = FUNCB2B (X1,TNH4HS4,TLC) - IF (ABS(Y1).LE.EPS) RETURN - YHI= Y1 ! Save Y-value at Hi position -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ************************ -! - DX = (ZHI-ZLO)/NDIV - DO 10 I=1,NDIV - X2 = X1-DX - Y2 = FUNCB2B (X2,TNH4HS4,TLC) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION FOUND -! - YLO= Y1 ! Save Y-value at LO position - IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - RETURN -! -! *** { YLO, YHI } < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH LC -! - ELSE IF (YLO.LT.ZERO .AND. YHI.LT.ZERO) THEN - X1 = ZHI - X2 = ZHI - GOTO 40 -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH LC -! - ELSE IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - X1 = ZLO - X2 = ZLO - GOTO 40 - ELSE - CALL PUSHERR (0001, 'CALCB2B') ! WARNING ERROR: NO SOLUTION - RETURN - ENDIF -! -! *** PERFORM BISECTION ************************************************* -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCB2B (X3,TNH4HS4,TLC) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCB2B') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ************************************************ -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCB2B (X3,TNH4HS4,TLC) -! - RETURN -! -! *** END OF SUBROUTINE CALCB2B ***************************************** -! - END SUBROUTINE CALCB2B - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** FUNCTION FUNCB2B -! *** CASE B2 ; -! FUNCTION THAT SOLVES THE SYSTEM OF EQUATIONS FOR CASE B2 ; SUBCASE 2 -! AND RETURNS THE VALUE OF THE ZEROED FUNCTION IN FUNCB2B. -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCB2B (X,TNH4HS4,TLC) - Real(kind=fp) :: TLC, TNH4HS4, X - Real(kind=fp) :: GRAT2, PARM, DELTA, OMEGA - Integer :: I -! -! *** SOLVE EQUATIONS ************************************************** -! - FRST = .TRUE. - CALAIN = .TRUE. - DO 20 I=1,NSWEEP - GRAT2 = XK1*WATER*(GAMA(8)/GAMA(7))**2./GAMA(7) - PARM = X+GRAT2 - DELTA = PARM*PARM + 4.0*(X+TNH4HS4)*GRAT2 ! Diakrinousa - OMEGA = 0.5*(-PARM + SQRT(DELTA)) ! Thetiki riza (ie:H+>0) -! -! *** SPECIATION & WATER CONTENT *************************************** -! - MOLAL (1) = OMEGA ! HI - MOLAL (3) = 3.0*X+TNH4HS4 ! NH4I - MOLAL (5) = X+OMEGA ! SO4I - MOLAL (6) = MAX (X+TNH4HS4-OMEGA, TINY) ! HSO4I - CLC = MAX(TLC-X,ZERO) ! Solid LC - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ****************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 30 - ENDIF -20 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************** -! -!CC30 FUNCB2B= ( NH4I**3.*SO4I*HSO4I )/( XK13*(WATER/GAMA(13))**5. ) -30 FUNCB2B= (MOLAL(3)**3.)*MOLAL(5)*MOLAL(6) - FUNCB2B= FUNCB2B/(XK13*(WATER/GAMA(13))**5.) - ONE - RETURN -! -! *** END OF FUNCTION FUNCB2B ******************************************* -! - END FUNCTION FUNCB2B - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB1 -! *** CASE B1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : LC, (NH4)2SO4, NH4HSO4 -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON RELATIVE HUMIDITY: -! 1. WHEN RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! 2. WHEN RH < MDRH ; ONLY SOLID PHASE POSSIBLE (SUBROUTINE CALCB1A) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB1() -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRMLCAB) THEN - SCASE = 'B1 ; SUBCASE 1' - CALL CALCB1A ! SOLID PHASE ONLY POSSIBLE - SCASE = 'B1 ; SUBCASE 1' - ELSE - SCASE = 'B1 ; SUBCASE 2' - CALL CALCB1B ! LIQUID & SOLID PHASE POSSIBLE - SCASE = 'B1 ; SUBCASE 2' - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCB1 ****************************************** -! - END SUBROUTINE CALCB1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB1A -! *** CASE B1 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH -! 2. THERE IS NO LIQUID PHASE -! 3. SOLIDS POSSIBLE: LC, { (NH4)2SO4 XOR NH4HSO4 } (ONE OF TWO -! BUT NOT BOTH) -! -! A SIMPLE MATERIAL BALANCE IS PERFORMED, AND THE AMOUNT OF LC -! IS CALCULATED FROM THE (NH4)2SO4 AND NH4HSO4 WHICH IS LEAST -! ABUNDANT (STOICHIMETRICALLY). THE REMAINING EXCESS OF SALT -! IS MIXED WITH THE LC. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB1A() - Real(kind=fp) :: X,Y -! -! *** SETUP PARAMETERS ************************************************ -! - X = 2*W(2)-W(3) ! Equivalent NH4HSO4 - Y = W(3)-W(2) ! Equivalent (NH4)2SO4 -! -! *** CALCULATE COMPOSITION ******************************************* -! - IF (X.LE.Y) THEN ! LC is the MIN (x,y) - CLC = X ! NH4HSO4 >= (NH4)2S04 - CNH4HS4 = ZERO - CNH42S4 = Y-X - ELSE - CLC = Y ! NH4HSO4 < (NH4)2S04 - CNH4HS4 = X-Y - CNH42S4 = ZERO - ENDIF - RETURN -! -! *** END OF SUBROUTINE CALCB1A ****************************************** -! - END SUBROUTINE CALCB1A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCB1B -! *** CASE B1 ; SUBCASE 2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE: LC, { (NH4)2SO4 XOR NH4HSO4 } (ONE OF TWO -! BUT NOT BOTH) -! -! THIS IS THE CASE WHERE THE RELATIVE HUMIDITY IS IN THE MUTUAL -! DRH REGION. THE SOLUTION IS ASSUMED TO BE THE SUM OF TWO WEIGHTED -! SOLUTIONS ; THE SOLID PHASE ONLY (SUBROUTINE CALCB1A) AND THE -! THE SOLID WITH LIQUID PHASE (SUBROUTINE CALCB2). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCB1B() - Real(kind=fp) :: WF, ONEMWF, CLCO, CNH42SO, CNH4HSO -! -! *** FIND WEIGHT FACTOR ********************************************** -! - IF (WFTYP.EQ.0) THEN - WF = ZERO - ELSEIF (WFTYP.EQ.1) THEN - WF = 0.5D0 - ELSE - WF = (DRNH4HS4-RH)/(DRNH4HS4-DRMLCAB) - ENDIF - ONEMWF = ONE - WF -! -! *** FIND FIRST SECTION ; DRY ONE ************************************ -! - CALL CALCB1A - CLCO = CLC ! FIRST (DRY) SOLUTION - CNH42SO = CNH42S4 - CNH4HSO = CNH4HS4 -! -! *** FIND SECOND SECTION ; DRY & LIQUID ****************************** -! - CLC = ZERO - CNH42S4 = ZERO - CNH4HS4 = ZERO - CALL CALCB2 ! SECOND (LIQUID) SOLUTION -! -! *** FIND SOLUTION AT MDRH BY WEIGHTING DRY & LIQUID SOLUTIONS. -! - MOLAL(1)= ONEMWF*MOLAL(1) ! H+ - MOLAL(3)= ONEMWF*(2.0*(CNH42SO-CNH42S4) + (CNH4HSO-CNH4HS4) - & + 3.0*(CLCO-CLC)) ! NH4+ - MOLAL(5)= ONEMWF*(CNH42SO-CNH42S4 + CLCO-CLC) ! SO4-- - MOLAL(6)= ONEMWF*(CNH4HSO-CNH4HS4 + CLCO-CLC) ! HSO4- -! - WATER = ONEMWF*WATER -! - CLC = WF*CLCO + ONEMWF*CLC - CNH42S4 = WF*CNH42SO + ONEMWF*CNH42S4 - CNH4HS4 = WF*CNH4HSO + ONEMWF*CNH4HS4 -! - RETURN -! -! *** END OF SUBROUTINE CALCB1B ***************************************** -! - END SUBROUTINE CALCB1B - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCC2 -! *** CASE C2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, FREE ACID (SULRAT < 1.0) -! 2. THERE IS ONLY A LIQUID PHASE -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCC2() - Real(kind=fp) :: LAMDA, KAPA - Real(kind=fp) :: PSI, PARM, BB, CC - Integer :: I -! - CALAOU =.TRUE. ! Outer loop activity calculation flag - FRST =.TRUE. - CALAIN =.TRUE. -! -! *** SOLVE EQUATIONS ************************************************** -! - LAMDA = W(3) ! NH4HSO4 INITIALLY IN SOLUTION - PSI = W(2)-W(3) ! H2SO4 IN SOLUTION - DO 20 I=1,NSWEEP - PARM = WATER*XK1/GAMA(7)*(GAMA(8)/GAMA(7))**2. - BB = PSI+PARM - CC =-PARM*(LAMDA+PSI) - KAPA = 0.5*(-BB+SQRT(BB*BB-4.0*CC)) -! -! *** SPECIATION & WATER CONTENT *************************************** -! - MOLAL(1) = PSI+KAPA ! HI - MOLAL(3) = LAMDA ! NH4I - MOLAL(5) = KAPA ! SO4I - MOLAL(6) = MAX(LAMDA+PSI-KAPA, TINY) ! HSO4I - CH2SO4 = MAX(MOLAL(5)+MOLAL(6)-MOLAL(3), ZERO) ! Free H2SO4 - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (.NOT.CALAIN) GOTO 30 - CALL CALCACT -20 CONTINUE -! -30 RETURN -! -! *** END OF SUBROUTINE CALCC2 ***************************************** -! - END SUBROUTINE CALCC2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCC1 -! *** CASE C1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, FREE ACID (SULRAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE: NH4HSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCC1() - Real(kind=fp) :: KLO, KHI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Real(kind=fp) :: XLO, XHI, YLO, YHI, DX - Integer :: I -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - KLO = TINY - KHI = W(3) -! -! *** INITIAL VALUES FOR BISECTION ************************************* -! - X1 = KLO - Y1 = FUNCC1 (X1) - IF (ABS(Y1).LE.EPS) GOTO 50 - YLO= Y1 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO *********************** -! - DX = (KHI-KLO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCC1 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2) .LT. ZERO) GOTO 20 ! (Y1*Y2 .LT. ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION FOUND -! - YHI= Y2 ! Save Y-value at HI position - IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 -! -! *** { YLO, YHI } < 0.0 SOLUTION IS ALWAYS UNDERSATURATED WITH NH4HS04 -! - ELSE IF (YLO.LT.ZERO .AND. YHI.LT.ZERO) THEN - GOTO 50 -! -! *** { YLO, YHI } > 0.0 SOLUTION IS ALWAYS SUPERSATURATED WITH NH4HS04 -! - ELSE IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - X1 = KLO - X2 = KLO - GOTO 40 - ELSE - CALL PUSHERR (0001, 'CALCC1') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION OF DISSOLVED NH4HSO4 ************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCC1 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCC1') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN *********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCC1 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCC1 ***************************************** -! - END SUBROUTINE CALCC1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** FUNCTION FUNCC1 -! *** CASE C1 ; -! FUNCTION THAT SOLVES THE SYSTEM OF EQUATIONS FOR CASE C1 -! AND RETURNS THE VALUE OF THE ZEROED FUNCTION IN FUNCC1. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCC1 (KAPA) - Real(kind=fp) :: KAPA, LAMDA - Integer :: I - Real(kind=fp) :: PSI, PAR1, PAR2, BB, CC -! -! *** SOLVE EQUATIONS ************************************************** -! - FRST = .TRUE. - CALAIN = .TRUE. -! - PSI = W(2)-W(3) - DO 20 I=1,NSWEEP - PAR1 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2.0 - PAR2 = XK12*(WATER/GAMA(9))**2.0 - BB = PSI + PAR1 - CC =-PAR1*(PSI+KAPA) - LAMDA = 0.5*(-BB+SQRT(BB*BB-4*CC)) -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ******************************* -! - MOLAL(1) = PSI+LAMDA ! HI - MOLAL(3) = KAPA ! NH4I - MOLAL(5) = LAMDA ! SO4I - MOLAL(6) = MAX (ZERO, PSI+KAPA-LAMDA) ! HSO4I - CNH4HS4 = MAX(W(3)-MOLAL(3), ZERO) ! Solid NH4HSO4 - CH2SO4 = MAX(PSI, ZERO) ! Free H2SO4 - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 30 - ENDIF -20 CONTINUE -! -! *** CALCULATE ZERO FUNCTION ******************************************* -! -!CC30 FUNCC1= (NH4I*HSO4I/PAR2) - ONE -30 FUNCC1= (MOLAL(3)*MOLAL(6)/PAR2) - ONE - RETURN -! -! *** END OF FUNCTION FUNCC1 ******************************************** -! - END FUNCTION FUNCC1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCD3 -! *** CASE D3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) -! 2. THERE IS OLNY A LIQUID PHASE -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCD3() - Real(kind=fp) ::PSI4LO, PSI4HI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Real(kind=fp) :: DX, YY, P4, YLO, YHI, DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCD1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4NO3 ! Save from CALCD1 run - CHI2 = CNH42S4 - CHI3 = GHNO3 - CHI4 = GNH3 -! - PSI1 = CNH4NO3 ! ASSIGN INITIAL PSI's - PSI2 = CHI2 - PSI3 = ZERO - PSI4 = ZERO -! -#if defined( ISORROPIA_V22 ) - MOLAL(5) = PSI2 -#else - MOLAL(5) = ZERO -#endif - MOLAL(6) = ZERO - MOLAL(3) = PSI1 - MOLAL(7) = PSI1 - CALL CALCMR ! Initial water -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI4LO = TINY ! Low limit - PSI4HI = CHI4 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! -60 X1 = PSI4LO - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y1 = FUNCD3 (X1) - IF (ABS(Y1).LE.EPS) RETURN - YLO= Y1 ! Save Y-value at HI position -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y2 = FUNCD3 (X2) -#if defined( ISORROPIA_V22 ) - IF ((Y1.lt.ZERO).and.(Y2.gt.ZERO)) GOTO 20 ! SLC 2012-01-01 -#else - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) -#endif - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION FOUND -! - YHI= Y1 ! Save Y-value at Hi position - IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - RETURN -! -! *** { YLO, YHI } < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NH3 -! Physically I dont know when this might happen, but I have put this -! branch in for completeness. I assume there is no solution; all NO3 goes to the -! gas phase. -! - ELSE IF (YLO.LT.ZERO .AND. YHI.LT.ZERO) THEN - P4 = TINY ! PSI4LO ! CHI4 - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - YY = FUNCD3(P4) - GOTO 50 -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NH3 -! This happens when Sul.Rat. = 2.0, so some NH4+ from sulfate evaporates -! and goes to the gas phase ; so I redefine the LO and HI limits of PSI4 -! and proceed again with root tracking. -! - ELSE IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - PSI4HI = PSI4LO - PSI4LO = PSI4LO - 0.1*(PSI1+PSI2) ! No solution; some NH3 evaporates - IF (PSI4LO.LT.-(PSI1+PSI2)) THEN - CALL PUSHERR (0001, 'CALCD3') ! WARNING ERROR: NO SOLUTION - RETURN - ELSE -#if defined( ISORROPIA_V22 ) - MOLAL(5) = PSI2 -#else - MOLAL(5) = ZERO -#endif - MOLAL(6) = ZERO - MOLAL(3) = PSI1 - MOLAL(7) = PSI1 - CALL CALCMR ! Initial water - GOTO 60 ! Redo root tracking - ENDIF - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCD3 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*ABS(X1)) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCD3') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCD3 (X3) -! -! *** CALCULATE HSO4 SPECIATION AND RETURN ******************************* -! -50 CONTINUE - IF (MOLAL(1).GT.TINY) THEN - CALL CALCHS4 (MOLAL(1), MOLAL(5), ZERO, DELTA) - MOLAL(1) = MOLAL(1) - DELTA ! H+ EFFECT - MOLAL(5) = MOLAL(5) - DELTA ! SO4 EFFECT - MOLAL(6) = DELTA ! HSO4 EFFECT - ENDIF - RETURN -! -! *** END OF SUBROUTINE CALCD3 ****************************************** -! - END SUBROUTINE CALCD3 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** FUNCTION FUNCD3 -! *** CASE D3 -! FUNCTION THAT SOLVES THE SYSTEM OF EQUATIONS FOR CASE D3 ; -! AND RETURNS THE VALUE OF THE ZEROED FUNCTION IN FUNCD3. -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCD3 (P4) - Real(kind=fp) :: P4 - Integer :: I - Real(kind=fp) A2, A3, A4, A7, BB, DENM, ABB, AHI -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. - PSI4 = P4 -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP - A2 = XK7*(WATER/GAMA(4))**3.0 - A3 = XK4*R*TEMP*(WATER/GAMA(10))**2.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A7 = XKW *RH*WATER*WATER -! - PSI3 = A3*A4*CHI3*(CHI4-PSI4) - PSI1*(2.0*PSI2+PSI1+PSI4) - PSI3 = PSI3/(A3*A4*(CHI4-PSI4) + 2.0*PSI2+PSI1+PSI4) - PSI3 = MIN(MAX(PSI3, ZERO), CHI3) -! - BB = PSI4 - PSI3 -!CCOLD AHI = 0.5*(-BB + SQRT(BB*BB + 4.d0*A7)) ! This is correct also -!CC AHI =2.0*A7/(BB+SQRT(BB*BB + 4.d0*A7)) ! Avoid overflow when HI->0 - DENM = BB+SQRT(BB*BB + 4.d0*A7) - IF (DENM.LE.TINY) THEN ! Avoid overflow when HI->0 - ABB = ABS(BB) - DENM = (BB+ABB) + 2.0*A7/ABB ! Taylor expansion of SQRT - ENDIF - AHI = 2.0*A7/DENM -! -! *** SPECIATION & WATER CONTENT *************************************** -! - MOLAL (1) = AHI ! HI - MOLAL (3) = PSI1 + PSI4 + 2.0*PSI2 ! NH4I - MOLAL (5) = PSI2 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI3 + PSI1 ! NO3I - CNH42S4 = CHI2 - PSI2 ! Solid (NH4)2SO4 - CNH4NO3 = ZERO ! Solid NH4NO3 - GHNO3 = CHI3 - PSI3 ! Gas HNO3 - GNH3 = CHI4 - PSI4 ! Gas NH3 - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 CONTINUE -!CC FUNCD3= NH4I/HI/MAX(GNH3,TINY)/A4 - ONE - FUNCD3= MOLAL(3)/MOLAL(1)/MAX(GNH3,TINY)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCD3 ******************************************** -! - END FUNCTION FUNCD3 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCD2 -! *** CASE D2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -! Algorithm revised to attain a more accuracte solution -! SLC 2012-03-21 -! -!======================================================================= -! - SUBROUTINE CALCD2() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Real(kind=fp) :: PSI4LO, PSI4HI, YLO, YHI - Real(kind=fp) :: YY, P4, DX, DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCD1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4NO3 ! Save from CALCD1 run - CHI2 = CNH42S4 - CHI3 = GHNO3 - CHI4 = GNH3 -! - PSI1 = CNH4NO3 ! ASSIGN INITIAL PSI's - PSI2 = CNH42S4 - PSI3 = ZERO - PSI4 = ZERO -! -#if defined( ISORROPIA_V22 ) - MOLAL(5) = PSI2 ! Include initial amount in water calc (SLC 2012-03-21 -#else - MOLAL(5) = ZERO -#endif - MOLAL(6) = ZERO - MOLAL(3) = PSI1 - MOLAL(7) = PSI1 - CALL CALCMR ! Initial water -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI4LO = TINY ! Low limit - PSI4HI = CHI4 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! -60 X1 = PSI4LO - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y1 = FUNCD2 (X1) - IF (ABS(Y1).LE.EPS) RETURN - YLO= Y1 ! Save Y-value at HI position -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y2 = FUNCD2 (X2) -#if defined( ISORROPIA_V22 ) - IF ((Y1.lt.ZERO).and.(Y2.gt.ZERO)) GOTO 20 ! SLC 2012-01-01 -#else -! This is done, in case if Y(PSI4LO)>0, but Y(PSI4LO+DX) < 0 (i.e.undersat) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) THEN - IF (Y1 .LE. Y2) GOTO 20 ! (Y1*Y2.LT.ZERO) - ENDIF -#endif - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION FOUND -! - YHI= Y1 ! Save Y-value at Hi position - IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - RETURN -! -! *** { YLO, YHI } < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NH3 -! Physically I dont know when this might happen, but I have put this -! branch in for completeness. I assume there is no solution; all NO3 goes to the -! gas phase. -! - ELSE IF (YLO.LT.ZERO .AND. YHI.LT.ZERO) THEN - P4 = TINY ! PSI4LO ! CHI4 - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - YY = FUNCD2(P4) - GOTO 50 -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NH3 -! This happens when Sul.Rat. = 2.0, so some NH4+ from sulfate evaporates -! and goes to the gas phase ; so I redefine the LO and HI limits of PSI4 -! and proceed again with root tracking. -! - ELSE IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - PSI4HI = PSI4LO - PSI4LO = PSI4LO - 0.1*(PSI1+PSI2) ! No solution; some NH3 evaporates - IF (PSI4LO.LT.-(PSI1+PSI2)) THEN - CALL PUSHERR (0001, 'CALCD2') ! WARNING ERROR: NO SOLUTION - RETURN - ELSE -#if defined( ISORROPIA_V22 ) - MOLAL(5) = PSI2 ! Include initial amount in water calc -#else - MOLAL(5) = ZERO -#endif - MOLAL(6) = ZERO - MOLAL(3) = PSI1 - MOLAL(7) = PSI1 - CALL CALCMR ! Initial water - GOTO 60 ! Redo root tracking - ENDIF - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCD2 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*ABS(X1)) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCD2') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = MIN(X1,X2) ! 0.5*(X1+X2) ! Get "low" side, it's acidic soln. - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCD2 (X3) -! -! *** CALCULATE HSO4 SPECIATION AND RETURN ******************************* -! -50 CONTINUE - IF (MOLAL(1).GT.TINY) THEN - CALL CALCHS4 (MOLAL(1), MOLAL(5), ZERO, DELTA) - MOLAL(1) = MOLAL(1) - DELTA ! H+ EFFECT - MOLAL(5) = MOLAL(5) - DELTA ! SO4 EFFECT - MOLAL(6) = DELTA ! HSO4 EFFECT - ENDIF - RETURN -! -! *** END OF SUBROUTINE CALCD2 ****************************************** -! - END SUBROUTINE CALCD2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** FUNCTION FUNCD2 -! *** CASE D2 -! FUNCTION THAT SOLVES THE SYSTEM OF EQUATIONS FOR CASE D2 ; -! AND RETURNS THE VALUE OF THE ZEROED FUNCTION IN FUNCD2. -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCD2 (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: A2, A3, A4, A7 - Real(kind=fp) :: BB, DENM, AHI, ABB - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -! -! *** SETUP PARAMETERS ************************************************ -! - CALL RSTGAM ! Reset activity coefficients to 0.1 - FRST = .TRUE. - CALAIN = .TRUE. - PSI4 = P4 - PSI2 = CHI2 -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP - A2 = XK7*(WATER/GAMA(4))**3.0 - A3 = XK4*R*TEMP*(WATER/GAMA(10))**2.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A7 = XKW *RH*WATER*WATER -! - IF (CHI2.GT.TINY .AND. WATER.GT.TINY) THEN - PSI14 = PSI1+PSI4 - CALL POLY3 (PSI14,0.25*PSI14**2.,-A2/4.0, PSI2, ISLV) ! PSI2 - IF (ISLV.EQ.0) THEN - PSI2 = MIN (PSI2, CHI2) - ELSE -#if defined( ISORROPIA_V22 ) - PSI2 = TINY -#else - PSI2 = ZERO -#endif - ENDIF - ENDIF -! - PSI3 = A3*A4*CHI3*(CHI4-PSI4) - PSI1*(2.0*PSI2+PSI1+PSI4) - PSI3 = PSI3/(A3*A4*(CHI4-PSI4) + 2.0*PSI2+PSI1+PSI4) -!cc PSI3 = MIN(MAX(PSI3, ZERO), CHI3) -! - BB = PSI4-PSI3 ! (BB > 0, acidic solution, <0 alkaline) -! -! Do not change computation scheme for H+, all others did not work well. -! - DENM = BB+SQRT(BB*BB + 4.d0*A7) - IF (DENM.LE.TINY) THEN ! Avoid overflow when HI->0 - ABB = ABS(BB) - DENM = (BB+ABB) + 2.d0*A7/ABB ! Taylor expansion of SQRT - ENDIF - AHI = 2.d0*A7/DENM -! -! *** SPECIATION & WATER CONTENT *************************************** -! - MOLAL (1) = AHI ! HI - MOLAL (3) = PSI1 + PSI4 + 2.0*PSI2 ! NH4 - MOLAL (5) = PSI2 ! SO4 - MOLAL (6) = ZERO ! HSO4 - MOLAL (7) = PSI3 + PSI1 ! NO3 - CNH42S4 = CHI2 - PSI2 ! Solid (NH4)2SO4 - CNH4NO3 = ZERO ! Solid NH4NO3 - GHNO3 = CHI3 - PSI3 ! Gas HNO3 - GNH3 = CHI4 - PSI4 ! Gas NH3 - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 CONTINUE -!CC FUNCD2= NH4I/HI/MAX(GNH3,TINY)/A4 - ONE - FUNCD2= MOLAL(3)/MOLAL(1)/MAX(GNH3,TINY)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCD2 ******************************************** -! - END FUNCTION FUNCD2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCD1 -! *** CASE D1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4NO3 -! -! THERE ARE TWO REGIMES DEFINED BY RELATIVE HUMIDITY: -! 1. RH < MDRH ; ONLY SOLID PHASE POSSIBLE (SUBROUTINE CALCD1A) -! 2. RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCD1() - !EXTERNAL CALCD1A, CALCD2 -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRMASAN) THEN - SCASE = 'D1 ; SUBCASE 1' ! SOLID PHASE ONLY POSSIBLE - CALL CALCD1A - SCASE = 'D1 ; SUBCASE 1' - ELSE - SCASE = 'D1 ; SUBCASE 2' ! LIQUID & SOLID PHASE POSSIBLE - CALL CALCMDRH (RH, DRMASAN, DRNH4NO3, CALCD1A, CALCD2) - SCASE = 'D1 ; SUBCASE 2' - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCD1 ****************************************** -! - END SUBROUTINE CALCD1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCD1A -! *** CASE D1 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4NO3 -! -! THE SOLID (NH4)2SO4 IS CALCULATED FROM THE SULFATES, WHILE NH4NO3 -! IS CALCULATED FROM NH3-HNO3 EQUILIBRIUM. 'ZE' IS THE AMOUNT OF -! NH4NO3 THAT VOLATIZES WHEN ALL POSSILBE NH4NO3 IS INITIALLY IN -! THE SOLID PHASE. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCD1A() - Real(kind=fp) :: PARM, X, PS, OM, OMPS, DIAK, ZE -! -! *** SETUP PARAMETERS ************************************************ -! - PARM = XK10/(R*TEMP)/(R*TEMP) -! -! *** CALCULATE NH4NO3 THAT VOLATIZES ********************************* -! - CNH42S4 = W(2) - X = MAX(ZERO, MIN(W(3)-2.0*CNH42S4, W(4))) ! MAX NH4NO3 - PS = MAX(W(3) - X - 2.0*CNH42S4, ZERO) - OM = MAX(W(4) - X, ZERO) -! - OMPS = OM+PS - DIAK = SQRT(OMPS*OMPS + 4.0*PARM) ! DIAKRINOUSA - ZE = MIN(X, 0.5*(-OMPS + DIAK)) ! THETIKI RIZA -! -! *** SPECIATION ******************************************************* -! - CNH4NO3 = X - ZE ! Solid NH4NO3 - GNH3 = PS + ZE ! Gas NH3 - GHNO3 = OM + ZE ! Gas HNO3 -! - RETURN -! -! *** END OF SUBROUTINE CALCD1A ***************************************** -! - END SUBROUTINE CALCD1A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCG5 -! *** CASE G5 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCG5() - Real(kind=fp) :: PSI6LO, PSI6HI, DX, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Integer :: I -! - !Real(kind=fp) :: LAMDA - ! changes implemented by hotp 8/2/07 - ! explicitly declare all variables in CASEG - ! make CASEG THREADPRIVATE for parallelization - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI1 = 0.5*W(1) - CHI2 = MAX (W(2)-CHI1, ZERO) - CHI3 = ZERO - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) - CHI5 = W(4) - CHI6 = W(5) -! - PSI1 = CHI1 - PSI2 = CHI2 - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! - WATER = CHI2/M0(4) + CHI1/M0(2) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCG5A (X1) - IF (CHI6.LE.TINY) GOTO 50 -!cc IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -!cc IF (WATER .LE. TINY) RETURN ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCG5A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCG5A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A4, A5, A6, AKK - Real(kind=fp) :: SMIN, BB, CC, DD, HI, OHI - Integer :: I -! - !Real(kind=fp) :: LAMDA - ! changes implemented by hotp 8/2/07 - ! explicitly declare all variables in CASEG - ! make CASEG THREADPRIVATE for parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA -!=====! Real(kind=fp) :: PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7 -!=====! Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7 -!=====! COMMON /CASEG/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA, -!=====! & PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7, -!=====! & A1, A2, A3, A4, A5, A6, A7 -!=====!!$OMP THREADPRIVATE( /CASEG/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A2 = XK7 *(WATER/GAMA(4))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - AKK = A4*A6 -! -! CALCULATE DISSOCIATION QUANTITIES -! - IF (CHI5.GE.TINY) THEN - PSI5 = PSI6*CHI5/(A6/A5*(CHI6-PSI6) + PSI6) - ELSE - PSI5 = TINY - ENDIF -! -!CC IF(CHI4.GT.TINY) THEN - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - ELSE - PSI4 = TINY - ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = 2.0D0*PSI1 ! NAI - MOLAL (3) = 2.0*PSI2 + PSI4 ! NH4I - MOLAL (4) = PSI6 ! CLI - MOLAL (5) = PSI2 + PSI1 ! SO4I - MOLAL (6) = ZERO - MOLAL (7) = PSI5 ! NO3I -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) ! Gas NH3 - GHNO3 = MAX(CHI5 - PSI5, TINY) ! Gas HNO3 - GHCL = MAX(CHI6 - PSI6, TINY) ! Gas HCl -! - CNH42S4 = ZERO ! Solid (NH4)2SO4 - CNH4NO3 = ZERO ! Solid NH4NO3 - CNH4CL = ZERO ! Solid NH4Cl -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCG5A = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -!CC FUNCG5A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCG5A ******************************************* -! - END FUNCTION FUNCG5A - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCG4 -! *** CASE G4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCG4() - Real(kind=fp) :: PSI6LO, PSI6HI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Real(kind=fp) :: DX, DELTA - Integer :: I -! - !Real(kind=fp) :: LAMDA - ! changes implemented by hotp 8/2/07 - ! explicitly declare all variables in CASEG - ! make CASEG THREADPRIVATE for parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA -!=====! Real(kind=fp) :: PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7 -!=====! Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7 -!=====! COMMON /CASEG/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA, -!=====! & PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7, -!=====! & A1, A2, A3, A4, A5, A6, A7 -!=====!!$OMP THREADPRIVATE( /CASEG/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI1 = 0.5*W(1) - CHI2 = MAX (W(2)-CHI1, ZERO) - CHI3 = ZERO - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) - CHI5 = W(4) - CHI6 = W(5) -! - PSI2 = CHI2 - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! - WATER = CHI2/M0(4) + CHI1/M0(2) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCG4A (X1) - IF (CHI6.LE.TINY) GOTO 50 -!CC IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY .OR. WATER .LE. TINY) GOTO 50 -!CC IF (WATER .LE. TINY) RETURN ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCG4A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCG4A (X) -! - !Real(kind=fp) :: NAI, NH4I, NO3I - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A4, A5, A6 - Real(kind=fp) :: BB, CC, DD, NH4I, CLI, SO4I, NO3I, NAI - Real(kind=fp) :: HI, OHI - Integer :: I, ISLV - !Real(kind=fp) :: LAMDA - ! changes implemented by hotp 8/2/07 - ! explicitly declare all variables in CASEG - ! make CASEG THREADPRIVATE for parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA -!=====! Real(kind=fp) :: PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7 -!=====! Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7 -!=====! COMMON /CASEG/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA, -!=====! & PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7, -!=====! & A1, A2, A3, A4, A5, A6, A7 -!=====!!$OMP THREADPRIVATE( /CASEG/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A2 = XK7 *(WATER/GAMA(4))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - IF (CHI5.GE.TINY) THEN - PSI5 = PSI6*CHI5/(A6/A5*(CHI6-PSI6) + PSI6) - ELSE - PSI5 = TINY - ENDIF -! -!CC IF(CHI4.GT.TINY) THEN - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma shankar, 19/11/2001 - PSI4 =0.5d0*(-BB - SQRT(DD)) - ELSE - PSI4 = TINY - ENDIF -! -! CALCULATE CONCENTRATIONS -! - NH4I = 2.0*PSI2 + PSI4 - CLI = PSI6 - SO4I = PSI2 + PSI1 - NO3I = PSI5 - NAI = 2.0D0*PSI1 -! - CALL CALCPH(2.0*SO4I+NO3I+CLI-NAI-NH4I, HI, OHI) -! -! *** Na2SO4 DISSOLUTION -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN ! PSI1 - CALL POLY3 (PSI2, ZERO, -A1/4.0, PSI1, ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1, CHI1) - ELSE - PSI1 = ZERO - ENDIF - ELSE - PSI1 = ZERO - ENDIF -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! - MOLAL (1) = HI - MOLAL (2) = NAI - MOLAL (3) = NH4I - MOLAL (4) = CLI - MOLAL (5) = SO4I - MOLAL (6) = ZERO - MOLAL (7) = NO3I -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNH4CL = ZERO - CNA2SO4 = MAX(CHI1-PSI1,ZERO) -! -! *** CALCULATE MOLALR ARRAY, WATER AND ACTIVITIES ********************** -! - CALL CALCMR -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCG4A = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -!CC FUNCG4A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCG4A ******************************************* -! - END FUNCTION FUNCG4A - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCG3 -! *** CASE G3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. LIQUID & SOLID PHASE ARE BOTH POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCG3() - !EXTERNAL CALCG1A, CALCG4 - Integer :: I -! -! *** REGIME DEPENDS ON THE EXISTANCE OF WATER AND OF THE RH ************ -! - IF (W(4).GT.TINY .AND. W(5).GT.TINY) THEN ! NO3,CL EXIST, WATER POSSIBLE - SCASE = 'G3 ; SUBCASE 1' - CALL CALCG3A - SCASE = 'G3 ; SUBCASE 1' - ELSE ! NO3, CL NON EXISTANT - SCASE = 'G1 ; SUBCASE 1' - CALL CALCG1A - SCASE = 'G1 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMG3) THEN ! ONLY SOLIDS - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCG1A - SCASE = 'G3 ; SUBCASE 2' - RETURN - ELSE - SCASE = 'G3 ; SUBCASE 3' ! MDRH REGION (NA2SO4, NH42S4) - CALL CALCMDRH (RH, DRMG3, DRNH42S4, CALCG1A, CALCG4) - SCASE = 'G3 ; SUBCASE 3' - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCG3 ****************************************** -! - END SUBROUTINE CALCG3 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCG3A -! *** CASE G3 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCG3A - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Real(kind=fp) :: DX, PSI6LO, PSI6HI, A1, DELTA - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! changes implemented by hotp 8/2/07 - ! explicitly declare all variables in CASEG - ! make CASEG THREADPRIVATE for parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA -!=====! Real(kind=fp) :: PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7 -!=====! Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7 -!=====! COMMON /CASEG/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA, -!=====! & PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7, -!=====! & A1, A2, A3, A4, A5, A6, A7 -!=====!!$OMP THREADPRIVATE( /CASEG/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI1 = 0.5*W(1) - CHI2 = MAX (W(2)-CHI1, ZERO) - CHI3 = ZERO - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) - CHI5 = W(4) - CHI6 = W(5) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! - WATER = TINY -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCG3A (X1) - IF (CHI6.LE.TINY) GOTO 50 -!CC IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY .OR. WATER .LE. TINY) GOTO 50 -!CC IF (WATER .LE. TINY) RETURN ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCG3A (X2) -! - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCG3A (X) - Real(kind=fp) :: X - Integer :: I, ISLV - Real(kind=fp) :: A1, A2, A4, A5, A6, BB, CC, DD, PSI20 - Real(kind=fp) :: SMIN, OHI, HI -! - !Real(kind=fp) :: LAMDA - ! changes implemented by hotp 8/2/07 - ! explicitly declare all variables in CASEG - ! make CASEG THREADPRIVATE for parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA -!=====! Real(kind=fp) :: PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7 -!=====! Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7 -!=====! COMMON /CASEG/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA, -!=====! & PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7, -!=====! & A1, A2, A3, A4, A5, A6, A7 -!=====!!$OMP THREADPRIVATE( /CASEG/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI2 = CHI2 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A2 = XK7 *(WATER/GAMA(4))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - IF (CHI5.GE.TINY) THEN - PSI5 = PSI6*CHI5/(A6/A5*(CHI6-PSI6) + PSI6) - ELSE - PSI5 = TINY - ENDIF -! -!CC IF(CHI4.GT.TINY) THEN - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI2.GT.TINY .AND. WATER.GT.TINY) THEN - CALL POLY3 (PSI4, PSI4*PSI4/4.0, -A2/4.0, PSI20, ISLV) - IF (ISLV.EQ.0) PSI2 = MIN (PSI20, CHI2) - ENDIF -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - MOLAL (2) = ZERO ! Na - MOLAL (3) = 2.0*PSI2 + PSI4 ! NH4I - MOLAL (4) = PSI6 ! CLI - MOLAL (5) = PSI2 ! SO4I - MOLAL (6) = ZERO ! HSO4 - MOLAL (7) = PSI5 ! NO3I -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) ! Gas NH3 - GHNO3 = MAX(CHI5 - PSI5, TINY) ! Gas HNO3 - GHCL = MAX(CHI6 - PSI6, TINY) ! Gas HCl -! - CNH42S4 = CHI2 - PSI2 ! Solid (NH4)2SO4 - CNH4NO3 = ZERO ! Solid NH4NO3 - CNH4CL = ZERO ! Solid NH4Cl -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCG3A = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -!CC FUNCG3A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCG3A ******************************************* -! - END FUNCTION FUNCG3A - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCG2 -! *** CASE G2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. LIQUID & SOLID PHASE ARE BOTH POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCG2 - !EXTERNAL CALCG1A, CALCG3A, CALCG4 - Integer :: I -! -! *** REGIME DEPENDS ON THE EXISTANCE OF NITRATES *********************** -! - IF (W(4).GT.TINY) THEN ! NO3 EXISTS, WATER POSSIBLE - SCASE = 'G2 ; SUBCASE 1' - CALL CALCG2A - SCASE = 'G2 ; SUBCASE 1' - ELSE ! NO3 NON EXISTANT, WATER NOT POSSIBLE - SCASE = 'G1 ; SUBCASE 1' - CALL CALCG1A - SCASE = 'G1 ; SUBCASE 1' - ENDIF -! -! *** REGIME DEPENDS ON THE EXISTANCE OF WATER AND OF THE RH ************ -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMG2) THEN ! ONLY SOLIDS - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCG1A - SCASE = 'G2 ; SUBCASE 2' - ELSE - IF (W(5).GT. TINY) THEN - SCASE = 'G2 ; SUBCASE 3' ! MDRH (NH4CL, NA2SO4, NH42S4) - CALL CALCMDRH (RH, DRMG2, DRNH4CL, CALCG1A, CALCG3A) - SCASE = 'G2 ; SUBCASE 3' - ENDIF - IF (WATER.LE.TINY .AND. RH.GE.DRMG3) THEN - SCASE = 'G2 ; SUBCASE 4' ! MDRH (NA2SO4, NH42S4) - CALL CALCMDRH (RH, DRMG3, DRNH42S4, CALCG1A, CALCG4) - SCASE = 'G2 ; SUBCASE 4' - ELSE - WATER = TINY - DO 20 I=1,NIONS - MOLAL(I) = ZERO -20 CONTINUE - CALL CALCG1A - SCASE = 'G2 ; SUBCASE 2' - ENDIF - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCG2 ****************************************** -! - END SUBROUTINE CALCG2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCG2A -! *** CASE G2 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCG2A() - Real(kind=fp) :: PSI6LO, PSI6HI, DX, A1, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! changes implemented by hotp 8/2/07 - ! explicitly declare all variables in CASEG - ! make CASEG THREADPRIVATE for parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA -!=====! Real(kind=fp) :: PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7 -!=====! Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7 -!=====! COMMON /CASEG/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA, -!=====! & PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7, -!=====! & A1, A2, A3, A4, A5, A6, A7 -!=====!!$OMP THREADPRIVATE( /CASEG/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI1 = 0.5*W(1) - CHI2 = MAX (W(2)-CHI1, ZERO) - CHI3 = ZERO - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) - CHI5 = W(4) - CHI6 = W(5) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY -! - WATER = TINY -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCG2A (X1) - IF (CHI6.LE.TINY) GOTO 50 -!CC IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -!CC IF (WATER .LE. TINY) GOTO 50 ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCG2A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCG2A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, DENO, PSI31, PSI32 - Real(kind=fp) :: BB, CC, DD, SMIN, HI, OHI, PSI20, DELT - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! changes implemented by hotp 8/2/07 - ! explicitly declare all variables in CASEG - ! make CASEG THREADPRIVATE for parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA -!=====! Real(kind=fp) :: PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7 -!=====! Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7 -!=====! COMMON /CASEG/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, LAMDA, -!=====! & PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, PSI7, -!=====! & A1, A2, A3, A4, A5, A6, A7 -!=====!!$OMP THREADPRIVATE( /CASEG/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI2 = CHI2 - PSI3 = ZERO - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A2 = XK7 *(WATER/GAMA(4))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 -! - DENO = MAX(CHI6-PSI6-PSI3, ZERO) - PSI5 = CHI5/((A6/A5)*(DENO/PSI6) + ONE) -! - -!------------------------------------------------------------------------------ -! Prior to 1/31/18: -! Shaojie Song wrote: -! We have identified and fixed coding errors in ISORROPIA which significantly -! affect aerosol water pH calculations when the stable state for aerosol phase -! is applied. These errors exist in source codes for the cases G2 and O2, and -! also affect the pH results for the cases G1 and O1. The standard ISORROPIA -! codes fail to account for the partitioning of ammonia between the gas and -! aqueous phases. More information can be seen in our recent ACPD paper: -! https://www.atmos-chem-phys-discuss.net/acp-2018-6/. -! PSI4 = MIN(PSI5+PSI6,CHI4) -!------------------------------------------------------------------------------ - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI2.GT.TINY .AND. WATER.GT.TINY) THEN - CALL POLY3 (PSI4, PSI4*PSI4/4.0, -A2/4.0, PSI20, ISLV) - IF (ISLV.EQ.0) PSI2 = MIN (PSI20, CHI2) - ENDIF -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! - MOLAL (2) = ZERO ! NA - MOLAL (3) = 2.0*PSI2 + PSI4 ! NH4I - MOLAL (4) = PSI6 ! CLI - MOLAL (5) = PSI2 ! SO4I - MOLAL (6) = ZERO ! HSO4 - MOLAL (7) = PSI5 ! NO3I -! -!CC MOLAL (1) = MAX(CHI5 - PSI5, TINY)*A5/PSI5 ! HI - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = MAX(CHI2 - PSI2, ZERO) - CNH4NO3 = ZERO -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! -! *** CALCULATE MOLALR ARRAY, WATER AND ACTIVITIES ********************** -! - CALL CALCMR -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 IF (CHI4.LE.TINY) THEN - FUNCG2A = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE - ELSE - FUNCG2A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE - ENDIF -! - RETURN -! -! *** END OF FUNCTION FUNCG2A ******************************************* -! - END FUNCTION FUNCG2A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCG1 -! *** CASE G1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4NO3, NH4CL, NA2SO4 -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON RELATIVE HUMIDITY: -! 1. WHEN RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! 2. WHEN RH < MDRH ; ONLY SOLID PHASE POSSIBLE (SUBROUTINE CALCG1A) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCG1() - !EXTERNAL CALCG1A, CALCG2A -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRMG1) THEN - SCASE = 'G1 ; SUBCASE 1' - CALL CALCG1A ! SOLID PHASE ONLY POSSIBLE - SCASE = 'G1 ; SUBCASE 1' - ELSE - SCASE = 'G1 ; SUBCASE 2' ! LIQUID & SOLID PHASE POSSIBLE - CALL CALCMDRH (RH, DRMG1, DRNH4NO3, CALCG1A, CALCG2A) - SCASE = 'G1 ; SUBCASE 2' - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCG1 ****************************************** -! - END SUBROUTINE CALCG1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCG1A -! *** CASE G1 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4NO3 -! -! SOLID (NH4)2SO4 IS CALCULATED FROM THE SULFATES, WHILE NH4NO3 -! IS CALCULATED FROM NH3-HNO3 EQUILIBRIUM. 'ZE' IS THE AMOUNT OF -! NH4NO3 THAT VOLATIZES WHEN ALL POSSILBE NH4NO3 IS INITIALLY IN -! THE SOLID PHASE. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCG1A() - Real(kind=fp) :: LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1, KAPA2 - Real(kind=fp) :: FRNA, SO4FR, ALF, BET, GAM, RTSQ, A1, A2 - Real(kind=fp) :: THETA1, THETA2, BB, CC - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Integer :: I -! -! *** CALCULATE NON VOLATILE SOLIDS *********************************** -! - CNA2SO4 = MIN (0.5*W(1), W(2)) - FRNA = MAX(W(1) - 2.0*CNA2SO4, ZERO) - SO4FR = MAX(W(2) - CNA2SO4, ZERO) -! CNH42S4 = W(2) - CNA2SO4 - CNH42S4 = MAX (SO4FR , ZERO) ! CNH42S4 -! -! *** CALCULATE VOLATILE SPECIES ************************************** -! - ALF = W(3) - 2.0*CNH42S4 - BET = W(5) - GAM = W(4) -! - RTSQ = R*TEMP*R*TEMP - A1 = XK6/RTSQ - A2 = XK10/RTSQ -! - THETA1 = GAM - BET*(A2/A1) - THETA2 = A2/A1 -! -! QUADRATIC EQUATION SOLUTION -! - BB = (THETA1-ALF-BET*(ONE+THETA2))/(ONE+THETA2) - CC = (ALF*BET-A1-BET*THETA1)/(ONE+THETA2) - DD = BB*BB - 4.0D0*CC - IF (DD.LT.ZERO) GOTO 100 ! Solve each reaction seperately -! -! TWO ROOTS FOR KAPA, CHECK AND SEE IF ANY VALID -! - SQDD = SQRT(DD) - KAPA1 = 0.5D0*(-BB+SQDD) - KAPA2 = 0.5D0*(-BB-SQDD) - LAMDA1 = THETA1 + THETA2*KAPA1 - LAMDA2 = THETA1 + THETA2*KAPA2 -! - IF (KAPA1.GE.ZERO .AND. LAMDA1.GE.ZERO) THEN - IF (ALF-KAPA1-LAMDA1.GE.ZERO .AND. - & BET-KAPA1.GE.ZERO .AND. GAM-LAMDA1.GE.ZERO) THEN - KAPA = KAPA1 - LAMDA= LAMDA1 - GOTO 200 - ENDIF - ENDIF -! - IF (KAPA2.GE.ZERO .AND. LAMDA2.GE.ZERO) THEN - IF (ALF-KAPA2-LAMDA2.GE.ZERO .AND. - & BET-KAPA2.GE.ZERO .AND. GAM-LAMDA2.GE.ZERO) THEN - KAPA = KAPA2 - LAMDA= LAMDA2 - GOTO 200 - ENDIF - ENDIF -! -! SEPERATE SOLUTION OF NH4CL & NH4NO3 EQUILIBRIA -! -100 KAPA = ZERO - LAMDA = ZERO - DD1 = (ALF+BET)*(ALF+BET) - 4.0D0*(ALF*BET-A1) - DD2 = (ALF+GAM)*(ALF+GAM) - 4.0D0*(ALF*GAM-A2) -! -! NH4CL EQUILIBRIUM -! - IF (DD1.GE.ZERO) THEN - SQDD1 = SQRT(DD1) - KAPA1 = 0.5D0*(ALF+BET + SQDD1) - KAPA2 = 0.5D0*(ALF+BET - SQDD1) -! - IF (KAPA1.GE.ZERO .AND. KAPA1.LE.MIN(ALF,BET)) THEN - KAPA = KAPA1 - ELSE IF (KAPA2.GE.ZERO .AND. KAPA2.LE.MIN(ALF,BET)) THEN - KAPA = KAPA2 - ELSE - KAPA = ZERO - ENDIF - ENDIF -! -! NH4NO3 EQUILIBRIUM -! - IF (DD2.GE.ZERO) THEN - SQDD2 = SQRT(DD2) - LAMDA1= 0.5D0*(ALF+GAM + SQDD2) - LAMDA2= 0.5D0*(ALF+GAM - SQDD2) -! - IF (LAMDA1.GE.ZERO .AND. LAMDA1.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA1 - ELSE IF (LAMDA2.GE.ZERO .AND. LAMDA2.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA2 - ELSE - LAMDA = ZERO - ENDIF - ENDIF -! -! IF BOTH KAPA, LAMDA ARE > 0, THEN APPLY EXISTANCE CRITERION -! - IF (KAPA.GT.ZERO .AND. LAMDA.GT.ZERO) THEN - IF (BET .LT. LAMDA/THETA1) THEN - KAPA = ZERO - ELSE - LAMDA= ZERO - ENDIF - ENDIF -! -! *** CALCULATE COMPOSITION OF VOLATILE SPECIES *********************** -! -200 CONTINUE - CNH4NO3 = LAMDA - CNH4CL = KAPA -! - GNH3 = MAX(ALF - KAPA - LAMDA, ZERO) - GHNO3 = MAX(GAM - LAMDA, ZERO) - GHCL = MAX(BET - KAPA, ZERO) -! - RETURN -! -! *** END OF SUBROUTINE CALCG1A ***************************************** -! - END SUBROUTINE CALCG1A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCH6 -! *** CASE H6 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCH6() - Real(kind=fp) :: PSI6LO, PSI6HI, DX, DELTA, FRNA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI1 = W(2) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCH6A (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCH6A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCH6A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: AA, BB, CC, DD, DIAK, PSI31, PSI32, DELT - Real(kind=fp) :: SMIN, OHI, HI, FRNA - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 - A9 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MAX(PSI5, TINY) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(PSI4,CHI4) - ELSE - PSI4 = TINY - ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 ! NO3I -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = MAX(CHI7 - PSI7, ZERO) - CNANO3 = MAX(CHI8 - PSI8, ZERO) - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCH6A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCH6A ******************************************* -! - END FUNCTION FUNCH6A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCH5 -! *** CASE H5 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCH5() - Real(kind=fp) :: PSI6LO, PSI6HI, FRNA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** REGIME DEPENDS ON THE EXISTANCE OF NITRATES *********************** -! - IF (W(4).LE.TINY .AND. W(5).LE.TINY) THEN - SCASE = 'H5' - CALL CALCH1A - SCASE = 'H5' - RETURN - ENDIF -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI1 = W(2) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCH5A (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCH5A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NONE -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCH5A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: AA, BB, CC, DD, DIAK, PSI31, PSI32, DELT - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 - A9 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MAX(PSI5, TINY) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = BB*BB-4.d0*CC - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(PSI4,CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN ! NA2SO4 DISSOLUTION - AA = PSI7+PSI8 - BB = AA*AA - CC =-A1/4.0 - CALL POLY3 (AA, BB, CC, PSI1, ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1, CHI1) - ELSE - PSI1 = ZERO - ENDIF - ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 ! SO4I - MOLAL (6) = ZERO - MOLAL (7) = PSI5 + PSI8 ! NO3I -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = MAX(CHI7 - PSI7, ZERO) - CNANO3 = MAX(CHI8 - PSI8, ZERO) - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCH5A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCH5A ******************************************* -! - END FUNCTION FUNCH5A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCH4 -! *** CASE H4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCH4() - Real(kind=fp) :: PSI6LO, PSI6HI, FRNA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** REGIME DEPENDS ON THE EXISTANCE OF NITRATES *********************** -! - IF (W(4).LE.TINY .AND. W(5).LE.TINY) THEN - SCASE = 'H4' - CALL CALCH1A - SCASE = 'H4' - RETURN - ENDIF -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI1 = W(2) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCH4A (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCH4A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCH4A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: AA, BB, CC, DD, DIAK, PSI31, PSI32, DELT - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 - A9 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MAX(PSI5, TINY) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = BB*BB-4.d0*CC - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(PSI4,CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN ! NA2SO4 DISSOLUTION - AA = PSI7+PSI8 - BB = AA*AA - CC =-A1/4.0 - CALL POLY3 (AA, BB, CC, PSI1, ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1, CHI1) - ELSE - PSI1 = ZERO - ENDIF - ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 ! SO4I - MOLAL (6) = ZERO - MOLAL (7) = PSI5 + PSI8 ! NO3I -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = MAX(CHI7 - PSI7, ZERO) - CNANO3 = MAX(CHI8 - PSI8, ZERO) - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCH4A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCH4A ******************************************* -! - END FUNCTION FUNCH4A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCH3 -! *** CASE H3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCH3() - Real(kind=fp) :: PSI6LO, PSI6HI, FRNA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** REGIME DEPENDS ON THE EXISTANCE OF NITRATES *********************** -! - IF (W(4).LE.TINY) THEN ! NO3 NOT EXIST, WATER NOT POSSIBLE - SCASE = 'H3' - CALL CALCH1A - SCASE = 'H3' - RETURN - ENDIF -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI1 = W(2) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCH3A (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCH3A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCH3A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: AA, BB, CC, DD, DIAK, PSI31, PSI32, DELT - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 - A9 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MAX(PSI5, TINY) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = BB*BB-4.d0*CC - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(PSI4,CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - DIAK = (PSI8-PSI6)**2.0 + 4.0*A7 - PSI7 = 0.5D0*( -(PSI8+PSI6) + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN ! NA2SO4 DISSOLUTION - AA = PSI7+PSI8 - BB = AA*AA - CC =-A1/4.0 - CALL POLY3 (AA, BB, CC, PSI1, ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1, CHI1) - ELSE - PSI1 = ZERO - ENDIF - ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 ! SO4I - MOLAL (6) = ZERO - MOLAL (7) = PSI5 + PSI8 ! NO3I -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = MAX(CHI7 - PSI7, ZERO) - CNANO3 = MAX(CHI8 - PSI8, ZERO) - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCH3A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCH3A ******************************************* -! - END FUNCTION FUNCH3A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCH2 -! *** CASE H2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : NH4Cl, NA2SO4, NANO3, NACL -! -! THERE ARE THREE REGIMES IN THIS CASE: -! 1. NH4NO3(s) POSSIBLE. LIQUID & SOLID AEROSOL (SUBROUTINE CALCH2A) -! 2. NH4NO3(s) NOT POSSIBLE, AND RH < MDRH. SOLID AEROSOL ONLY -! 3. NH4NO3(s) NOT POSSIBLE, AND RH >= MDRH. (MDRH REGION) -! -! REGIMES 2. AND 3. ARE CONSIDERED TO BE THE SAME AS CASES H1A, H2B -! RESPECTIVELY (BECAUSE MDRH POINTS COINCIDE). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCH2() - !EXTERNAL CALCH1A, CALCH3 -! -! *** REGIME DEPENDS ON THE EXISTANCE OF NITRATES *********************** -! - IF (W(4).GT.TINY) THEN ! NO3 EXISTS, WATER POSSIBLE - SCASE = 'H2 ; SUBCASE 1' - CALL CALCH2A - SCASE = 'H2 ; SUBCASE 1' - ELSE ! NO3 NON EXISTANT, WATER NOT POSSIBLE - SCASE = 'H2 ; SUBCASE 1' - CALL CALCH1A - SCASE = 'H2 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY .AND. RH.LT.DRMH2) THEN ! DRY AEROSOL - SCASE = 'H2 ; SUBCASE 2' -! - ELSEIF (WATER.LE.TINY .AND. RH.GE.DRMH2) THEN ! MDRH OF H2 - SCASE = 'H2 ; SUBCASE 3' - CALL CALCMDRH (RH, DRMH2, DRNANO3, CALCH1A, CALCH3) - SCASE = 'H2 ; SUBCASE 3' - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCH2 ****************************************** -! - END SUBROUTINE CALCH2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCH2A -! *** CASE H2 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCH2A() - Real(kind=fp) :: FRNA, PSI6LO, PSI6HI, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI1 = W(2) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCH2A (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCH2A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCH2A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: AA, BB, CC, DD, DIAK, PSI31, PSI32, DELT - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 - A64 = (XK3*XK2/XKW)*(GAMA(10)/GAMA(5)/GAMA(11))**2.0 - A64 = A64*(R*TEMP*WATER)**2.0 - A9 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MAX(PSI5, TINY) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = BB*BB-4.d0*CC - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(PSI4,CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - DIAK = (PSI8-PSI6)**2.0 + 4.0*A7 - PSI7 = 0.5D0*( -(PSI8+PSI6) + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -! - IF (CHI8.GT.TINY .AND. WATER.GT.TINY) THEN ! NANO3 DISSOLUTION - DIAK = (PSI7-PSI5)**2.0 + 4.0*A8 - PSI8 = 0.5D0*( -(PSI7+PSI5) + SQRT(DIAK) ) - PSI8 = MAX(MIN(PSI8, CHI8), ZERO) - ENDIF -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN ! NA2SO4 DISSOLUTION - AA = PSI7+PSI8 - BB = AA*AA - CC =-A1/4.0 - CALL POLY3 (AA, BB, CC, PSI1, ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1, CHI1) - ELSE - PSI1 = ZERO - ENDIF - ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 ! NO3I -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = MAX(CHI7 - PSI7, ZERO) - CNANO3 = MAX(CHI8 - PSI8, ZERO) - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCH2A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A64 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCH2A ******************************************* -! - END FUNCTION FUNCH2A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCH1 -! *** CASE H1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : NH4NO3, NH4CL, NA2SO4 -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON RELATIVE HUMIDITY: -! 1. WHEN RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! 2. WHEN RH < MDRH ; ONLY SOLID PHASE POSSIBLE (SUBROUTINE CALCH1A) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCH1() - !EXTERNAL CALCH1A, CALCH2A -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRMH1) THEN - SCASE = 'H1 ; SUBCASE 1' - CALL CALCH1A ! SOLID PHASE ONLY POSSIBLE - SCASE = 'H1 ; SUBCASE 1' - ELSE - SCASE = 'H1 ; SUBCASE 2' ! LIQUID & SOLID PHASE POSSIBLE - CALL CALCMDRH (RH, DRMH1, DRNH4NO3, CALCH1A, CALCH2A) - SCASE = 'H1 ; SUBCASE 2' - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCH1 ****************************************** -! - END SUBROUTINE CALCH1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCH1A -! *** CASE H1 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; SODIUM RICH (SODRAT >= 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : NH4NO3, NH4CL, NANO3, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCH1A() - Real(kind=fp) :: NAFR, NO3FR, CLFR, KAPA2 - Real(kind=fp) :: ALF, BET, GAM, RTSQ, A1, A2, THETA1, THETA2 - Real(kind=fp) :: AA, BB, CC, LAMDA, KAPA, LAMDA1, KAPA1, LAMDA2 - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Integer :: I -! -! *** CALCULATE NON VOLATILE SOLIDS *********************************** -! - CNA2SO4 = W(2) - CNH42S4 = ZERO - NAFR = MAX (W(1)-2*CNA2SO4, ZERO) - CNANO3 = MIN (NAFR, W(4)) - NO3FR = MAX (W(4)-CNANO3, ZERO) - CNACL = MIN (MAX(NAFR-CNANO3, ZERO), W(5)) - CLFR = MAX (W(5)-CNACL, ZERO) -! -! *** CALCULATE VOLATILE SPECIES ************************************** -! - ALF = W(3) ! FREE NH3 - BET = CLFR ! FREE CL - GAM = NO3FR ! FREE NO3 -! - RTSQ = R*TEMP*R*TEMP - A1 = XK6/RTSQ - A2 = XK10/RTSQ -! - THETA1 = GAM - BET*(A2/A1) - THETA2 = A2/A1 -! -! QUADRATIC EQUATION SOLUTION -! - BB = (THETA1-ALF-BET*(ONE+THETA2))/(ONE+THETA2) - CC = (ALF*BET-A1-BET*THETA1)/(ONE+THETA2) - DD = BB*BB - 4.0D0*CC - IF (DD.LT.ZERO) GOTO 100 ! Solve each reaction seperately -! -! TWO ROOTS FOR KAPA, CHECK AND SEE IF ANY VALID -! - SQDD = SQRT(DD) - KAPA1 = 0.5D0*(-BB+SQDD) - KAPA2 = 0.5D0*(-BB-SQDD) - LAMDA1 = THETA1 + THETA2*KAPA1 - LAMDA2 = THETA1 + THETA2*KAPA2 -! - IF (KAPA1.GE.ZERO .AND. LAMDA1.GE.ZERO) THEN - IF (ALF-KAPA1-LAMDA1.GE.ZERO .AND. - & BET-KAPA1.GE.ZERO .AND. GAM-LAMDA1.GE.ZERO) THEN - KAPA = KAPA1 - LAMDA= LAMDA1 - GOTO 200 - ENDIF - ENDIF -! - IF (KAPA2.GE.ZERO .AND. LAMDA2.GE.ZERO) THEN - IF (ALF-KAPA2-LAMDA2.GE.ZERO .AND. - & BET-KAPA2.GE.ZERO .AND. GAM-LAMDA2.GE.ZERO) THEN - KAPA = KAPA2 - LAMDA= LAMDA2 - GOTO 200 - ENDIF - ENDIF -! -! SEPERATE SOLUTION OF NH4CL & NH4NO3 EQUILIBRIA -! -100 KAPA = ZERO - LAMDA = ZERO - DD1 = (ALF+BET)*(ALF+BET) - 4.0D0*(ALF*BET-A1) - DD2 = (ALF+GAM)*(ALF+GAM) - 4.0D0*(ALF*GAM-A2) -! -! NH4CL EQUILIBRIUM -! - IF (DD1.GE.ZERO) THEN - SQDD1 = SQRT(DD1) - KAPA1 = 0.5D0*(ALF+BET + SQDD1) - KAPA2 = 0.5D0*(ALF+BET - SQDD1) -! - IF (KAPA1.GE.ZERO .AND. KAPA1.LE.MIN(ALF,BET)) THEN - KAPA = KAPA1 - ELSE IF (KAPA2.GE.ZERO .AND. KAPA2.LE.MIN(ALF,BET)) THEN - KAPA = KAPA2 - ELSE - KAPA = ZERO - ENDIF - ENDIF -! -! NH4NO3 EQUILIBRIUM -! - IF (DD2.GE.ZERO) THEN - SQDD2 = SQRT(DD2) - LAMDA1= 0.5D0*(ALF+GAM + SQDD2) - LAMDA2= 0.5D0*(ALF+GAM - SQDD2) -! - IF (LAMDA1.GE.ZERO .AND. LAMDA1.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA1 - ELSE IF (LAMDA2.GE.ZERO .AND. LAMDA2.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA2 - ELSE - LAMDA = ZERO - ENDIF - ENDIF -! -! IF BOTH KAPA, LAMDA ARE > 0, THEN APPLY EXISTANCE CRITERION -! - IF (KAPA.GT.ZERO .AND. LAMDA.GT.ZERO) THEN - IF (BET .LT. LAMDA/THETA1) THEN - KAPA = ZERO - ELSE - LAMDA= ZERO - ENDIF - ENDIF -! -! *** CALCULATE COMPOSITION OF VOLATILE SPECIES *********************** -! -200 CONTINUE - CNH4NO3 = LAMDA - CNH4CL = KAPA -! - GNH3 = ALF - KAPA - LAMDA - GHNO3 = GAM - LAMDA - GHCL = BET - KAPA -! - RETURN -! -! *** END OF SUBROUTINE CALCH1A ***************************************** -! - END SUBROUTINE CALCH1A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCI6 -! *** CASE I6 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCI6() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: A6, BB, CC, DD - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCI1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCI1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = CLC - PSI3 = CNAHSO4 - PSI4 = CNA2SO4 - PSI5 = CNH42S4 -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A6 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - BB = PSI2 + PSI4 + PSI5 + A6 ! PSI6 - CC =-A6*(PSI2 + PSI3 + PSI1) - DD = BB*BB - 4.0*CC - PSI6 = 0.5D0*(-BB + SQRT(DD)) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (1) = PSI6 ! HI - MOLAL (2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL (3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL (5) = PSI2 + PSI4 + PSI5 + PSI6 ! SO4I - MOLAL (6) = PSI2 + PSI3 + PSI1 - PSI6 ! HSO4I - CLC = ZERO - CNAHSO4 = ZERO - CNA2SO4 = CHI4 - PSI4 - CNH42S4 = ZERO - CNH4HS4 = ZERO - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -20 RETURN -! -! *** END OF SUBROUTINE CALCI6 ***************************************** -! - END SUBROUTINE CALCI6 - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCI5 -! *** CASE I5 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCI5() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI4LO, PSI4HI - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCI1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCI1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = CLC - PSI3 = CNAHSO4 - PSI4 = ZERO - PSI5 = CNH42S4 -! - CALAOU =.TRUE. ! Outer loop activity calculation flag - PSI4LO = ZERO ! Low limit - PSI4HI = CHI4 ! High limit -! -! *** IF NA2SO4(S) =0, CALL FUNCI5B FOR Y4=0 *************************** -! - IF (CHI4.LE.TINY) THEN - Y1 = FUNCI5A (ZERO) - GOTO 50 - ENDIF -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI4HI - Y1 = FUNCI5A (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NA2SO4 ** -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - Y2 = FUNCI5A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NH4CL -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI5A (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCI5') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI5A (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCI5') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI5A (X3) -! -50 RETURN - -! *** END OF SUBROUTINE CALCI5 ***************************************** -! - END SUBROUTINE CALCI5 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE FUNCI5A -! *** CASE I5 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCI5A (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: A4, A5, A6 - Real(kind=fp) :: BB, CC, DD - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI4 = P4 ! PSI3 already assigned in FUNCI5A - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = XK5 *(WATER/GAMA(2))**3.0 - A5 = XK7 *(WATER/GAMA(4))**3.0 - A6 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - BB = PSI2 + PSI4 + PSI5 + A6 ! PSI6 - CC =-A6*(PSI2 + PSI3 + PSI1) - DD = BB*BB - 4.0*CC - PSI6 = 0.5D0*(-BB + SQRT(DD)) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (1) = PSI6 ! HI - MOLAL (2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL (3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL (5) = PSI2 + PSI4 + PSI5 + PSI6 ! SO4I - MOLAL (6) = PSI2 + PSI3 + PSI1 - PSI6 ! HSO4I - CLC = ZERO - CNAHSO4 = ZERO - CNA2SO4 = CHI4 - PSI4 - CNH42S4 = ZERO - CNH4HS4 = ZERO - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A4 = XK5 *(WATER/GAMA(2))**3.0 - FUNCI5A= MOLAL(5)*MOLAL(2)*MOLAL(2)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCI5A ******************************************** -! - END FUNCTION FUNCI5A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCI4 -! *** CASE I4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCI4() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI4LO, PSI4HI - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCI1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCI1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = CLC - PSI3 = CNAHSO4 - PSI4 = ZERO - PSI5 = ZERO -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI4LO = ZERO ! Low limit - PSI4HI = CHI4 ! High limit -! -! *** IF NA2SO4(S) =0, CALL FUNCI4B FOR Y4=0 *************************** -! - IF (CHI4.LE.TINY) THEN - Y1 = FUNCI4A (ZERO) - GOTO 50 - ENDIF -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI4HI - Y1 = FUNCI4A (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NA2SO4 ** -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - Y2 = FUNCI4A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NH4CL -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI4A (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCI4') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI4A (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCI4') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI4A (X3) -! -50 RETURN - -! *** END OF SUBROUTINE CALCI4 ***************************************** -! - END SUBROUTINE CALCI4 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE FUNCI4A -! *** CASE I4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCI4A (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: A4, A5, A6, A7 - Real(kind=fp) :: BB, CC, DD - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI4 = P4 ! PSI3 already assigned in FUNCI4A - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = XK5 *(WATER/GAMA(2))**3.0 - A5 = XK7 *(WATER/GAMA(4))**3.0 - A6 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. - A7 = SQRT(A4/A5) -! -! CALCULATE DISSOCIATION QUANTITIES -! - BB = PSI2 + PSI4 + PSI5 + A6 ! PSI6 - CC =-A6*(PSI2 + PSI3 + PSI1) - DD = BB*BB - 4.0*CC - PSI6 = 0.5D0*(-BB + SQRT(DD)) -! - PSI5 = (PSI3 + 2.0*PSI4 - A7*(3.0*PSI2 + PSI1))/2.0/A7 - PSI5 = MIN (PSI5, CHI5) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (1) = PSI6 ! HI - MOLAL (2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL (3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL (5) = PSI2 + PSI4 + PSI5 + PSI6 ! SO4I - MOLAL (6) = PSI2 + PSI3 + PSI1 - PSI6 ! HSO4I - CLC = ZERO - CNAHSO4 = ZERO - CNA2SO4 = CHI4 - PSI4 - CNH42S4 = CHI5 - PSI5 - CNH4HS4 = ZERO - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A4 = XK5 *(WATER/GAMA(2))**3.0 - FUNCI4A= MOLAL(5)*MOLAL(2)*MOLAL(2)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCI4A ******************************************** -! - END FUNCTION FUNCI4A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCI3 -! *** CASE I3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4, NAHSO4, LC -! -! THERE ARE THREE REGIMES IN THIS CASE: -! 1.(NA,NH4)HSO4(s) POSSIBLE. LIQUID & SOLID AEROSOL (SUBROUTINE CALCI3A) -! 2.(NA,NH4)HSO4(s) NOT POSSIBLE, AND RH < MDRH. SOLID AEROSOL ONLY -! 3.(NA,NH4)HSO4(s) NOT POSSIBLE, AND RH >= MDRH. SOLID & LIQUID AEROSOL -! -! REGIMES 2. AND 3. ARE CONSIDERED TO BE THE SAME AS CASES I1A, I2B -! RESPECTIVELY -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCI3() - !EXTERNAL CALCI1A, CALCI4 - Integer :: I -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCI1A -! -! *** REGIME DEPENDS UPON THE POSSIBLE SOLIDS & RH ********************** -! - IF (CNH4HS4.GT.TINY .OR. CNAHSO4.GT.TINY) THEN - SCASE = 'I3 ; SUBCASE 1' - CALL CALCI3A ! FULL SOLUTION - SCASE = 'I3 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMI3) THEN ! SOLID SOLUTION - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCI1A - SCASE = 'I3 ; SUBCASE 2' -! - ELSEIF (RH.GE.DRMI3) THEN ! MDRH OF I3 - SCASE = 'I3 ; SUBCASE 3' - CALL CALCMDRH (RH, DRMI3, DRLC, CALCI1A, CALCI4) - SCASE = 'I3 ; SUBCASE 3' - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCI3 ****************************************** -! - END SUBROUTINE CALCI3 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCI3A -! *** CASE I3 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4, LC -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCI3A() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI2LO, PSI2HI - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCI1A ! Needed when called from CALCMDRH -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCI1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = ZERO - PSI3 = CNAHSO4 - PSI4 = ZERO - PSI5 = ZERO -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI2LO = ZERO ! Low limit - PSI2HI = CHI2 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI2HI - Y1 = FUNCI3A (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH LC ********* -! - IF (YHI.LT.EPS) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI2HI-PSI2LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = MAX(X1-DX, PSI2LO) - Y2 = FUNCI3A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH LC -! - IF (Y2.GT.EPS) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC 2012-01-01) - Y2 = FUNCI3A (ZERO) - ENDIF - GOTO 50 -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI3A (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCI3A') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI3A (X3) -! -50 RETURN - -! *** END OF SUBROUTINE CALCI3A ***************************************** -! - END SUBROUTINE CALCI3A - -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE FUNCI3A -! *** CASE I3 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4, LC -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCI3A (P2) - Real(kind=fp) :: P2 - Real(kind=fp) :: A2 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI4LO, PSI4HI - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI2 = P2 ! Save PSI2 in COMMON BLOCK - PSI4LO = ZERO ! Low limit for PSI4 - PSI4HI = CHI4 ! High limit for PSI4 -! -! *** IF NH3 =0, CALL FUNCI3B FOR Y4=0 ******************************** -! - IF (CHI4.LE.TINY) THEN - FUNCI3A = FUNCI3B (ZERO) - GOTO 50 - ENDIF -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI4HI - Y1 = FUNCI3B (X1) - IF (ABS(Y1).LE.EPS) GOTO 50 - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NA2SO4 ***** -! - IF (YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = MAX(X1-DX, PSI4LO) - Y2 = FUNCI3B (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NA2SO4 -! - IF (Y2.GT.EPS) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC 2012-01-01) - Y2 = FUNCI3B (PSI4LO) - ENDIF - GOTO 50 -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI3B (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0004, 'FUNCI3A') ! WARNING ERROR: NO CONVERGENCE -! -! *** INNER LOOP CONVERGED ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI3B (X3) -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -50 A2 = XK13*(WATER/GAMA(13))**5.0 - FUNCI3A = MOLAL(5)*MOLAL(6)*MOLAL(3)**3.0/A2 - ONE - RETURN -! -! *** END OF FUNCTION FUNCI3A ******************************************* -! - END FUNCTION FUNCI3A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** FUNCTION FUNCI3B -! *** CASE I3 ; SUBCASE 2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4, LC -! -! SOLUTION IS SAVED IN COMMON BLOCK /CASE/ -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCI3B (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: A4, A5, A6, A7 - Real(kind=fp) :: BB, CC, DD - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI4 = P4 -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = XK5*(WATER/GAMA(2))**3.0 - A5 = XK7*(WATER/GAMA(4))**3.0 - A6 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. - A7 = SQRT(A4/A5) -! -! CALCULATE DISSOCIATION QUANTITIES -! - BB = PSI2 + PSI4 + PSI5 + A6 ! PSI6 - CC =-A6*(PSI2 + PSI3 + PSI1) - DD = BB*BB - 4.0*CC - PSI6 = 0.5D0*(-BB + SQRT(DD)) -! - PSI5 = (PSI3 + 2.0*PSI4 - A7*(3.0*PSI2 + PSI1))/2.0/A7 - PSI5 = MAX( MIN (PSI5, CHI5), ZERO ) ! Ensure PSI5 is positive (SLC 2012-03-21) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL(1) = PSI6 ! HI - MOLAL(2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL(3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL(5) = PSI2 + PSI4 + PSI5 + PSI6 ! SO4I - MOLAL(6) = MAX(PSI2 + PSI3 + PSI1 - PSI6, TINY) ! HSO4I - CLC = MAX(CHI2 - PSI2, ZERO) - CNAHSO4 = ZERO - CNA2SO4 = MAX(CHI4 - PSI4, ZERO) - CNH42S4 = MAX(CHI5 - PSI5, ZERO) - CNH4HS4 = ZERO - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A4 = XK5 *(WATER/GAMA(2))**3.0 - FUNCI3B= MOLAL(5)*MOLAL(2)*MOLAL(2)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCI3B ******************************************** -! - END FUNCTION FUNCI3B - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCI2 -! *** CASE I2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4, NAHSO4, LC -! -! THERE ARE THREE REGIMES IN THIS CASE: -! 1. NH4HSO4(s) POSSIBLE. LIQUID & SOLID AEROSOL (SUBROUTINE CALCI2A) -! 2. NH4HSO4(s) NOT POSSIBLE, AND RH < MDRH. SOLID AEROSOL ONLY -! 3. NH4HSO4(s) NOT POSSIBLE, AND RH >= MDRH. SOLID & LIQUID AEROSOL -! -! REGIMES 2. AND 3. ARE CONSIDERED TO BE THE SAME AS CASES I1A, I2B -! RESPECTIVELY -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCI2() - !EXTERNAL CALCI1A, CALCI3A - Integer :: I -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCI1A -! -! *** REGIME DEPENDS UPON THE POSSIBLE SOLIDS & RH ********************** -! - IF (CNH4HS4.GT.TINY) THEN - SCASE = 'I2 ; SUBCASE 1' - CALL CALCI2A - SCASE = 'I2 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMI2) THEN ! SOLID SOLUTION ONLY - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCI1A - SCASE = 'I2 ; SUBCASE 2' -! - ELSEIF (RH.GE.DRMI2) THEN ! MDRH OF I2 - SCASE = 'I2 ; SUBCASE 3' - CALL CALCMDRH (RH, DRMI2, DRNAHSO4, CALCI1A, CALCI3A) - SCASE = 'I2 ; SUBCASE 3' - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCI2 ****************************************** -! - END SUBROUTINE CALCI2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCI2A -! *** CASE I2 ; SUBCASE A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4, NAHSO4, LC -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCI2A() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI2LO, PSI2HI - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCI1A ! Needed when called from CALCMDRH -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCI1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = ZERO - PSI3 = ZERO - PSI4 = ZERO - PSI5 = ZERO -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI2LO = ZERO ! Low limit - PSI2HI = CHI2 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI2HI - Y1 = FUNCI2A (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH LC ********* -! - IF (YHI.LT.EPS) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI2HI-PSI2LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = MAX(X1-DX, PSI2LO) - Y2 = FUNCI2A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH LC -! - IF (Y2.GT.EPS) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC 2012-01-01) - Y2 = FUNCI3A (ZERO) - ENDIF - GOTO 50 -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI2A (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCI2A') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCI2A (X3) -! -50 RETURN - -! *** END OF SUBROUTINE CALCI2A ***************************************** -! - END SUBROUTINE CALCI2A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE FUNCI2A -! *** CASE I2 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4, NAHSO4, LC -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCI2A (P2) - Real(kind=fp) :: P2 - Real(kind=fp) :: A2, A3, A4, A5, A6, A7 - Real(kind=fp) :: AA, BB, CC, DD - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=====! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=====! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=====! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=====! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=====! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=====! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=====! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=====! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=====! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=====! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=====! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=====!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. - PSI2 = P2 ! Save PSI2 in COMMON BLOCK - PSI3 = CHI3 - PSI4 = CHI4 - PSI5 = CHI5 - PSI6 = ZERO -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A3 = XK11*(WATER/GAMA(12))**2.0 - A4 = XK5 *(WATER/GAMA(2))**3.0 - A5 = XK7 *(WATER/GAMA(4))**3.0 - A6 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. - A7 = SQRT(A4/A5) -! -! CALCULATE DISSOCIATION QUANTITIES -! - IF (CHI5.GT.TINY .AND. WATER.GT.TINY) THEN - PSI5 = (PSI3 + 2.0*PSI4 - A7*(3.0*PSI2 + PSI1))/2.0/A7 - PSI5 = MAX(MIN (PSI5, CHI5), TINY) - ENDIF -! - IF (CHI4.GT.TINY .AND. WATER.GT.TINY) THEN - AA = PSI2+PSI5+PSI6+PSI3 - BB = PSI3*AA - CC = 0.25D0*(PSI3*PSI3*(PSI2+PSI5+PSI6)-A4) - CALL POLY3 (AA, BB, CC, PSI4, ISLV) - IF (ISLV.EQ.0) THEN - PSI4 = MIN (PSI4, CHI4) - ELSE - PSI4 = ZERO - ENDIF - ENDIF -! - IF (CHI3.GT.TINY .AND. WATER.GT.TINY) THEN - AA = 2.0*PSI4 + PSI2 + PSI1 - PSI6 - BB = 2.0*PSI4*(PSI2 + PSI1 - PSI6) - A3 - CC = ZERO - CALL POLY3 (AA, BB, CC, PSI3, ISLV) - IF (ISLV.EQ.0) THEN - PSI3 = MIN (PSI3, CHI3) - ELSE - PSI3 = ZERO - ENDIF - ENDIF -! - BB = PSI2 + PSI4 + PSI5 + A6 ! PSI6 - CC =-A6*(PSI2 + PSI3 + PSI1) - DD = BB*BB - 4.0*CC - PSI6 = 0.5D0*(-BB + SQRT(DD)) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (1) = PSI6 ! HI - MOLAL (2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL (3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL (5) = PSI2 + PSI4 + PSI5 + PSI6 ! SO4I - MOLAL (6) = PSI2 + PSI3 + PSI1 - PSI6 ! HSO4I - CLC = CHI2 - PSI2 - CNAHSO4 = CHI3 - PSI3 - CNA2SO4 = CHI4 - PSI4 - CNH42S4 = CHI5 - PSI5 - CNH4HS4 = ZERO - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 A2 = XK13*(WATER/GAMA(13))**5.0 - FUNCI2A = MOLAL(5)*MOLAL(6)*MOLAL(3)**3.0/A2 - ONE - RETURN -! -! *** END OF FUNCTION FUNCI2A ******************************************* -! - END FUNCTION FUNCI2A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCI1 -! *** CASE I1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : NH4NO3, NH4CL, NA2SO4 -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON RELATIVE HUMIDITY: -! 1. WHEN RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! 2. WHEN RH < MDRH ; ONLY SOLID PHASE POSSIBLE (SUBROUTINE CALCI1A) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCI1() - !EXTERNAL CALCI1A, CALCI2A -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRMI1) THEN - SCASE = 'I1 ; SUBCASE 1' - CALL CALCI1A ! SOLID PHASE ONLY POSSIBLE - SCASE = 'I1 ; SUBCASE 1' - ELSE - SCASE = 'I1 ; SUBCASE 2' ! LIQUID & SOLID PHASE POSSIBLE - CALL CALCMDRH (RH, DRMI1, DRNH4HS4, CALCI1A, CALCI2A) - SCASE = 'I1 ; SUBCASE 2' - ENDIF -! -! *** AMMONIA IN GAS PHASE ********************************************** -! -! CALL CALCNH3 -! - RETURN -! -! *** END OF SUBROUTINE CALCI1 ****************************************** -! - END SUBROUTINE CALCI1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCI1A -! *** CASE I1 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : NH4HSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCI1A() - Real(kind=fp) :: FRSO4, FRNH4 -! -! *** CALCULATE NON VOLATILE SOLIDS *********************************** -! - CNA2SO4 = 0.5D0*W(1) - CNH4HS4 = ZERO - CNAHSO4 = ZERO - CNH42S4 = ZERO - FRSO4 = MAX(W(2)-CNA2SO4, ZERO) -! - CLC = MIN(W(3)/3.0, FRSO4/2.0) - FRSO4 = MAX(FRSO4-2.0*CLC, ZERO) - FRNH4 = MAX(W(3)-3.0*CLC, ZERO) -! - IF (FRSO4.LE.TINY) THEN - CLC = MAX(CLC - FRNH4, ZERO) - CNH42S4 = 2.0*FRNH4 - - ELSEIF (FRNH4.LE.TINY) THEN - CNH4HS4 = 3.0*MIN(FRSO4, CLC) - CLC = MAX(CLC-FRSO4, ZERO) - IF (CNA2SO4.GT.TINY) THEN - FRSO4 = MAX(FRSO4-CNH4HS4/3.0, ZERO) - CNAHSO4 = 2.0*FRSO4 - CNA2SO4 = MAX(CNA2SO4-FRSO4, ZERO) - ENDIF - ENDIF -! -! *** CALCULATE GAS SPECIES ********************************************* -! - GHNO3 = W(4) - GHCL = W(5) - GNH3 = ZERO -! - RETURN -! -! *** END OF SUBROUTINE CALCI1A ***************************************** -! - END SUBROUTINE CALCI1A - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCJ3 -! *** CASE J3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, FREE ACID (SULRAT < 1.0) -! 2. THERE IS ONLY A LIQUID PHASE -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCJ3() - Real(kind=fp) :: LAMDA, KAPA - Real(kind=fp) :: A3, BB, CC, DD - Integer :: I -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - FRST = .TRUE. - CALAIN = .TRUE. -! - LAMDA = MAX(W(2) - W(3) - W(1), TINY) ! FREE H2SO4 - CHI1 = W(1) ! NA TOTAL as NaHSO4 - CHI2 = W(3) ! NH4 TOTAL as NH4HSO4 - PSI1 = CHI1 - PSI2 = CHI2 ! ALL NH4HSO4 DELIQUESCED -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A3 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - BB = A3+LAMDA ! KAPA - CC =-A3*(LAMDA + PSI1 + PSI2) - DD = BB*BB-4.0*CC - KAPA = 0.5D0*(-BB+SQRT(DD)) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (1) = LAMDA + KAPA ! HI - MOLAL (2) = PSI1 ! NAI - MOLAL (3) = PSI2 ! NH4I - MOLAL (4) = ZERO ! CLI - MOLAL (5) = KAPA ! SO4I - MOLAL (6) = LAMDA + PSI1 + PSI2 - KAPA ! HSO4I - MOLAL (7) = ZERO ! NO3I -! - CNAHSO4 = ZERO - CNH4HS4 = ZERO -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 50 - ENDIF -10 CONTINUE -! -50 RETURN -! -! *** END OF SUBROUTINE CALCJ3 ****************************************** -! - END SUBROUTINE CALCJ3 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCJ2 -! *** CASE J2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, FREE ACID (SULRAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NAHSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCJ2() - Real(kind=fp) :: PSI1LO, PSI1HI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - !Real(kind=fp) :: LAMDA, KAPA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEJ - ! made CASEJ THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!=======! Real(kind=fp) :: A1, A2, A3 -!=======! COMMON /CASEJ/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!=======! & A1, A2, A3 -!=======!!$OMP THREADPRIVATE( /CASEJ/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - CHI1 = W(1) ! NA TOTAL - CHI2 = W(3) ! NH4 TOTAL - PSI1LO = TINY ! Low limit - PSI1HI = CHI1 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI1HI - Y1 = FUNCJ2 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NH42SO4 **** -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI1HI-PSI1LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - Y2 = FUNCJ2 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NH42SO4 -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCJ2 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCJ2') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCJ2 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCJ2') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCJ2 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCJ2 ****************************************** -! - END SUBROUTINE CALCJ2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE FUNCJ2 -! *** CASE J2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, FREE ACID (SULRAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCJ2 (P1) - Real(kind=fp) :: P1 - Real(kind=fp) :: A1, A2, A3 - Real(kind=fp) :: LAMDA, BB, CC, DD, KAPA - Integer :: I -! - !Real(kind=fp) :: LAMDA, KAPA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEJ - ! made CASEJ THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!=======! Real(kind=fp) :: A1, A2, A3 -!=======! COMMON /CASEJ/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!=======! & A1, A2, A3 -!=======!!$OMP THREADPRIVATE( /CASEJ/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! - LAMDA = MAX(W(2) - W(3) - W(1), TINY) ! FREE H2SO4 - PSI1 = P1 - PSI2 = CHI2 ! ALL NH4HSO4 DELIQUESCED -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK11 *(WATER/GAMA(12))**2.0 - A3 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - BB = A3+LAMDA ! KAPA - CC =-A3*(LAMDA + PSI1 + PSI2) - DD = BB*BB-4.0*CC - KAPA = 0.5D0*(-BB+SQRT(DD)) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (1) = LAMDA + KAPA ! HI - MOLAL (2) = PSI1 ! NAI - MOLAL (3) = PSI2 ! NH4I - MOLAL (4) = ZERO ! CLI - MOLAL (5) = KAPA ! SO4I - MOLAL (6) = LAMDA + PSI1 + PSI2 - KAPA ! HSO4I - MOLAL (7) = ZERO ! NO3I -! - CNAHSO4 = MAX(CHI1-PSI1,ZERO) - CNH4HS4 = ZERO -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 FUNCJ2 = MOLAL(2)*MOLAL(6)/A1 - ONE -! -! *** END OF FUNCTION FUNCJ2 ******************************************* -! - END FUNCTION FUNCJ2 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCJ1 -! *** CASE J1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, FREE ACID (SULRAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NH4HSO4, NAHSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - SUBROUTINE CALCJ1() - Real(kind=fp) :: PSI1LO, PSI1HI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - !Real(kind=fp) :: LAMDA, KAPA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEJ - ! made CASEJ THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!=======! Real(kind=fp) :: A1, A2, A3 -!=======! COMMON /CASEJ/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!=======! & A1, A2, A3 -!=======!!$OMP THREADPRIVATE( /CASEJ/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU =.TRUE. ! Outer loop activity calculation flag - CHI1 = W(1) ! Total NA initially as NaHSO4 - CHI2 = W(3) ! Total NH4 initially as NH4HSO4 -! - PSI1LO = TINY ! Low limit - PSI1HI = CHI1 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI1HI - Y1 = FUNCJ1 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NH42SO4 **** -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI1HI-PSI1LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - Y2 = FUNCJ1 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NH42SO4 -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCJ1 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCJ1') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCJ1 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCJ1') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCJ1 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCJ1 ****************************************** -! - END SUBROUTINE CALCJ1 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE FUNCJ1 -! *** CASE J1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, FREE ACID (SULRAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY ATHANASIOS NENES -! *** UPDATED BY CHRISTOS FOUNTOUKIS -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCJ1 (P1) - Real(kind=fp) :: P1 - Real(kind=fp) :: A1, A2, A3, LAMDA, KAPA - Real(kind=fp) :: BB, CC, DD - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV - !Real(kind=fp) :: LAMDA, KAPA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEJ - ! made CASEJ THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!=======! Real(kind=fp) :: A1, A2, A3 -!=======! COMMON /CASEJ/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!=======! & A1, A2, A3 -!=======!!$OMP THREADPRIVATE( /CASEJ/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! - LAMDA = MAX(W(2) - W(3) - W(1), TINY) ! FREE H2SO4 - PSI1 = P1 -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK11 *(WATER/GAMA(12))**2.0 - A2 = XK12 *(WATER/GAMA(09))**2.0 - A3 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2.0 -! - PSI2 = 0.5*(-(LAMDA+PSI1) + SQRT((LAMDA+PSI1)**2.0+4.0*A2)) ! PSI2 - PSI2 = MIN (PSI2, CHI2) -! - BB = A3+LAMDA ! KAPA - CC =-A3*(LAMDA + PSI2 + PSI1) - DD = BB*BB-4.0*CC - KAPA = 0.5D0*(-BB+SQRT(DD)) -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! - MOLAL (1) = LAMDA + KAPA ! HI - MOLAL (2) = PSI1 ! NAI - MOLAL (3) = PSI2 ! NH4I - MOLAL (4) = ZERO - MOLAL (5) = KAPA ! SO4I - MOLAL (6) = LAMDA + PSI1 + PSI2 - KAPA ! HSO4I - MOLAL (7) = ZERO -! - CNAHSO4 = MAX(CHI1-PSI1,ZERO) - CNH4HS4 = MAX(CHI2-PSI2,ZERO) -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 FUNCJ1 = MOLAL(2)*MOLAL(6)/A1 - ONE -! -! *** END OF FUNCTION FUNCJ1 ******************************************* -! - END FUNCTION FUNCJ1 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO7 -! *** CASE O7 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. (Rsulfate > 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4 -! 4. Completely dissolved: NH4NO3, NH4CL, (NH4)2SO4, MgSO4, NA2SO4, K2SO4 -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO7() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: ALF, BET, GAM, RTSQ, A1, A2, THETA1, THETA2 - Real(kind=fp) :: BB, CC, LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1 - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: CAFR, NAFR, SO4FR, KAPA2, DELTA - Real(kind=fp) :: PSI6LO, PSI6HI - Integer :: I -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) -! -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI9 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX (W(2)-CHI9, ZERO) - CAFR = MAX (W(6)-CHI9, ZERO) - CHI7 = MIN (0.5D0*W(7), SO4FR) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI7, ZERO) - SO4FR = MAX (SO4FR - CHI7, ZERO) - CHI1 = MIN (0.5D0*W(1), SO4FR) ! NA2SO4 - NAFR = MAX (W(1) - 2.0*CHI1, ZERO) - SO4FR = MAX (SO4FR - CHI1, ZERO) - CHI8 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8) - CHI8, ZERO) - SO4FR = MAX(SO4FR - CHI8, ZERO) - CHI3 = ZERO - CHI5 = W(4) - CHI6 = W(5) - CHI2 = MAX (SO4FR, ZERO) - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) -! - PSI1 = CHI1 - PSI2 = CHI2 - PSI3 = ZERO - PSI4 = ZERO - PSI5 = ZERO - PSI6 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! - WATER = CHI2/M0(4) + CHI1/M0(2) + CHI7/M0(17) + CHI8/M0(21) - WATER = MAX (WATER , TINY) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCO7 (X1) - IF (CHI6.LE.TINY) GOTO 50 -!cc IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -!cc IF (WATER .LE. TINY) RETURN ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCO7 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4 -! 4. Completely dissolved: NH4NO3, NH4CL, (NH4)2SO4, MgSO4, NA2SO4, K2SO4 -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCO7 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A4, A5, A6 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 -! -! - IF (CHI5.GE.TINY) THEN - PSI5 = PSI6*CHI5/(A6/A5*(CHI6-PSI6) + PSI6) - PSI5 = MIN (PSI5,CHI5) - ELSE - PSI5 = TINY - ENDIF -! -!CC IF(CHI4.GT.TINY) THEN - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MAX (MIN (PSI4,CHI4), ZERO) - ELSE - PSI4 = TINY - ENDIF -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! - MOLAL (2) = 2.0D0*PSI1 ! Na+ - MOLAL (3) = 2.0D0*PSI2 + PSI4 ! NH4I - MOLAL (4) = PSI6 ! CLI - MOLAL (5) = PSI1+PSI2+PSI7+PSI8 ! SO4I - MOLAL (6) = ZERO ! HSO4 - MOLAL (7) = PSI5 ! NO3I - MOLAL (8) = ZERO ! CaI - MOLAL (9) = 2.0D0*PSI7 ! KI - MOLAL (10)= PSI8 ! Mg -! -! *** CALCULATE HSO4 SPECIATION AND RETURN ******************************* -! -!CC MOLAL (1) = MAX(CHI5 - PSI5, TINY)*A5/PSI5 ! HI - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & -MOLAL(9)-2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNA2SO4 = ZERO - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNH4Cl = ZERO - CK2SO4 = ZERO - CMGSO4 = ZERO - CCASO4 = CHI9 -! -! *** CALCULATE MOLALR ARRAY, WATER AND ACTIVITIES ********************** -! - CALL CALCMR -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCO7 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -!CC FUNCG5A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCO7 ******************************************* -! - END FUNCTION FUNCO7 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO6 -! *** CASE O6 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. (Rsulfate > 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4 -! 4. Completely dissolved: NH4NO3, NH4CL, (NH4)2SO4, MGSO4, NA2SO4 -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO6() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: ALF, BET, GAM, RTSQ, A1, A2, THETA1, THETA2 - Real(kind=fp) :: BB, CC, LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1 - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: CAFR, NAFR, SO4FR, KAPA2, DELTA - Real(kind=fp) :: PSI6LO, PSI6HI - Integer :: I -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI9 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX (W(2)-CHI9, ZERO) - CAFR = MAX (W(6)-CHI9, ZERO) - CHI7 = MIN (0.5D0*W(7), SO4FR) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI7, ZERO) - SO4FR = MAX (SO4FR - CHI7, ZERO) - CHI1 = MIN (0.5D0*W(1), SO4FR) ! NA2SO4 - NAFR = MAX (W(1) - 2.0*CHI1, ZERO) - SO4FR = MAX (SO4FR - CHI1, ZERO) - CHI8 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8) - CHI8, ZERO) - SO4FR = MAX(SO4FR - CHI8, ZERO) - CHI3 = ZERO - CHI5 = W(4) - CHI6 = W(5) - CHI2 = MAX (SO4FR, ZERO) - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) -! -! - PSI1 = CHI1 - PSI2 = CHI2 - PSI3 = ZERO - PSI7 = ZERO - PSI8 = CHI8 - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! - WATER = CHI2/M0(4) + CHI1/M0(2) + CHI7/M0(17) + CHI8/M0(21) - WATER = MAX (WATER , TINY) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCO6 (X1) - IF (CHI6.LE.TINY) GOTO 50 -!cc IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -!cc IF (WATER .LE. TINY) RETURN ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCO6 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4 , K2SO4 -! 4. Completely dissolved: NH4NO3, NH4CL, (NH4)2SO4, MgSO4, NA2SO4 -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCO6 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A65 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, DENO - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK17 *(WATER/GAMA(17))**3.0 -! -! - IF (CHI5.GE.TINY) THEN - PSI5 = PSI6*CHI5/(A6/A5*(CHI6-PSI6) + PSI6) - PSI5 = MIN (PSI5,CHI5) - ELSE - PSI5 = TINY - ENDIF -! -!CC IF(CHI4.GT.TINY) THEN - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MAX (MIN (PSI4,CHI4), ZERO) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! PSI7 - CALL POLY3 (PSI1+PSI2+PSI8, ZERO, -A7/4.0, PSI7, ISLV) - IF (ISLV.EQ.0) THEN - PSI7 = MAX (MIN (PSI7, CHI7), ZERO) - ELSE - PSI7 = ZERO - ENDIF - ELSE - PSI7 = ZERO - ENDIF -! -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! - MOLAL (2) = 2.0D0*PSI1 ! Na+ - MOLAL (3) = 2.0D0*PSI2 + PSI4 ! NH4I - MOLAL (4) = PSI6 ! CLI - MOLAL (5) = PSI1+PSI2+PSI7+PSI8 ! SO4I - MOLAL (6) = ZERO ! HSO4 - MOLAL (7) = PSI5 ! NO3I - MOLAL (8) = ZERO ! CaI - MOLAL (9) = 2.0D0*PSI7 ! KI - MOLAL (10)= PSI8 ! Mg - -! -! *** CALCULATE HSO4 SPECIATION AND RETURN ******************************* - -! -!CC MOLAL (1) = MAX(CHI5 - PSI5, TINY)*A5/PSI5 ! HI - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & -MOLAL(9)-2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNA2SO4 = ZERO - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNH4Cl = ZERO - CK2SO4 = MAX(CHI7 - PSI7, TINY) - CMGSO4 = ZERO - CCASO4 = CHI9 -! -! *** CALCULATE MOLALR ARRAY, WATER AND ACTIVITIES ********************** -! - CALL CALCMR -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCO6 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -!CC FUNCG5A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCO6 ******************************************* -! - END FUNCTION FUNCO6 -! -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO5 -! *** CASE O5 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. (Rsulfate > 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, NA2SO4 -! 4. Completely dissolved: NH4NO3, NH4CL, (NH4)2SO4, MGSO4 -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO5() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: ALF, BET, GAM, RTSQ, A1, A2, THETA1, THETA2 - Real(kind=fp) :: BB, CC, LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1 - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: CAFR, NAFR, SO4FR, KAPA2, DELTA - Real(kind=fp) :: PSI6LO, PSI6HI - Integer :: I -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI9 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX (W(2)-CHI9, ZERO) - CAFR = MAX (W(6)-CHI9, ZERO) - CHI7 = MIN (0.5D0*W(7), SO4FR) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI7, ZERO) - SO4FR = MAX (SO4FR - CHI7, ZERO) - CHI1 = MIN (0.5D0*W(1), SO4FR) ! NA2SO4 - NAFR = MAX (W(1) - 2.0*CHI1, ZERO) - SO4FR = MAX (SO4FR - CHI1, ZERO) - CHI8 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8) - CHI8, ZERO) - SO4FR = MAX(SO4FR - CHI8, ZERO) - CHI3 = ZERO - CHI5 = W(4) - CHI6 = W(5) - CHI2 = MAX (SO4FR, ZERO) - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) -! - PSI1 = ZERO - PSI2 = CHI2 - PSI3 = ZERO - PSI7 = ZERO - PSI8 = CHI8 - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! - WATER = CHI2/M0(4) + CHI1/M0(2) + CHI7/M0(17) + CHI8/M0(21) - WATER = MAX (WATER , TINY) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCO5 (X1) - IF (CHI6.LE.TINY) GOTO 50 -!cc IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -!cc IF (WATER .LE. TINY) RETURN ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCO5 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, NA2SO4 -! 4. Completely dissolved: NH4NO3, NH4CL, (NH4)2SO4, MGSO4 -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCO5 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A65 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, DENO - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK17 *(WATER/GAMA(17))**3.0 -! -! - IF (CHI5.GE.TINY) THEN - PSI5 = PSI6*CHI5/(A6/A5*(CHI6-PSI6) + PSI6) - PSI5 = MIN (PSI5,CHI5) - ELSE - PSI5 = TINY - ENDIF -! -!CC IF(CHI4.GT.TINY) THEN - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MAX (MIN (PSI4,CHI4), ZERO) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! PSI7 - CALL POLY3 ((PSI2+PSI8)/(SQRT(A1/A7)+ONE), ZERO, - & -A7/4.0_fp/(SQRT(A1/A7)+ONE), PSI7, ISLV) - IF (ISLV.EQ.0) THEN - PSI7 = MAX (MIN (PSI7, CHI7), ZERO) - ELSE - PSI7 = ZERO - ENDIF - ELSE - PSI7 = ZERO - ENDIF -! - IF (CHI1.GE.TINY) THEN ! PSI1 - PSI1 = SQRT(A1/A7)*PSI7 - PSI1 = MIN(PSI1,CHI1) - ELSE - PSI1 = ZERO - ENDIF -! -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! - MOLAL (2) = 2.0D0*PSI1 ! NaI - MOLAL (3) = 2.0D0*PSI2 + PSI4 ! NH4I - MOLAL (4) = PSI6 ! CLI - MOLAL (5) = PSI1+PSI2+PSI7+PSI8 ! SO4I - MOLAL (6) = ZERO ! HSO4 - MOLAL (7) = PSI5 ! NO3I - MOLAL (8) = ZERO ! CaI - MOLAL (9) = 2.0D0*PSI7 ! KI - MOLAL (10)= PSI8 ! Mg - -! -! *** CALCULATE HSO4 SPECIATION AND RETURN ******************************* - -! -!CC MOLAL (1) = MAX(CHI5 - PSI5, TINY)*A5/PSI5 ! HI - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & -MOLAL(9)-2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNA2SO4 = MAX(CHI1 - PSI1, TINY) - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNH4Cl = ZERO - CK2SO4 = MAX(CHI7 - PSI7, TINY) - CMGSO4 = ZERO - CCASO4 = CHI9 -! -! *** CALCULATE MOLALR ARRAY, WATER AND ACTIVITIES ********************** -! - CALL CALCMR -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCO5 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -!CC FUNCG5A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCO5 ******************************************* -! - END FUNCTION FUNCO5 -! -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO4 -! *** CASE O4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. (Rsulfate > 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NA2SO4, K2SO4, MGSO4, CASO4 -! 4. Completely dissolved: NH4NO3, NH4CL, (NH4)2SO4 -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO4() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: ALF, BET, GAM, RTSQ, A1, A2, THETA1, THETA2 - Real(kind=fp) :: BB, CC, LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1 - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: CAFR, NAFR, SO4FR, KAPA2, DELTA - Real(kind=fp) :: PSI6LO, PSI6HI - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI9 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX (W(2)-CHI9, ZERO) - CAFR = MAX (W(6)-CHI9, ZERO) - CHI7 = MIN (0.5D0*W(7), SO4FR) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI7, ZERO) - SO4FR = MAX (SO4FR - CHI7, ZERO) - CHI1 = MIN (0.5D0*W(1), SO4FR) ! NA2SO4 - NAFR = MAX (W(1) - 2.0*CHI1, ZERO) - SO4FR = MAX (SO4FR - CHI1, ZERO) - CHI8 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8) - CHI8, ZERO) - SO4FR = MAX(SO4FR - CHI8, ZERO) - CHI3 = ZERO - CHI5 = W(4) - CHI6 = W(5) - CHI2 = MAX (SO4FR, ZERO) - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) -! - PSI2 = CHI2 - PSI3 = ZERO - PSI7 = ZERO - PSI8 = CHI8 - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! - WATER = CHI2/M0(4) + CHI1/M0(2) + CHI7/M0(17) + CHI8/M0(21) - WATER = MAX (WATER , TINY) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCO4 (X1) - IF (CHI6.LE.TINY) GOTO 50 -!CC IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -!CC IF (WATER .LE. TINY) GOTO 50 ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCO4 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; SODIUM POOR (SODRAT < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCO4 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A65 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, DENO - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI2 = CHI2 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK17 *(WATER/GAMA(17))**3.0 -! A8 = XK23 *(WATER/GAMA(21))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - IF (CHI5.GE.TINY) THEN - PSI5 = PSI6*CHI5/(A6/A5*(CHI6-PSI6) + PSI6) - PSI5 = MIN (PSI5,CHI5) - ELSE - PSI5 = TINY - ENDIF -! -!CC IF(CHI4.GT.TINY) THEN - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MAX (MIN (PSI4,CHI4), ZERO) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! PSI7 - CALL POLY3 (PSI2+PSI8, ZERO, -A7/4.0, PSI7, ISLV) - IF (ISLV.EQ.0) THEN - PSI7 = MAX (MIN (PSI7, CHI7), ZERO) - ELSE - PSI7 = ZERO - ENDIF - ELSE - PSI7 = ZERO - ENDIF -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - MOLAL (2) = ZERO ! NAI - MOLAL (3) = 2.0D0*PSI2 + PSI4 ! NH4I - MOLAL (4) = PSI6 ! CLI - MOLAL (5) = PSI2+PSI7+PSI8 ! SO4I - MOLAL (6) = ZERO ! HSO4 - MOLAL (7) = PSI5 ! NO3I - MOLAL (8) = ZERO ! CAI - MOLAL (9) = 2.0D0*PSI7 ! KI - MOLAL (10)= PSI8 ! MGI - -! -! *** CALCULATE HSO4 SPECIATION AND RETURN ******************************* - -! -!CC MOLAL (1) = MAX(CHI5 - PSI5, TINY)*A5/PSI5 ! HI - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & -MOLAL(9)-2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNH4Cl = ZERO - CK2SO4 = MAX(CHI7 - PSI7, TINY) - CMGSO4 = ZERO - CCASO4 = CHI9 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCO4 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -!CC FUNCO4 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCO4 ******************************************* -! - END FUNCTION FUNCO4 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO3 -! *** CASE O3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SO4RAT > 2.0), Cr+NA poor (CRNARAT < 2) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4NO3, NH4Cl, NA2SO4, K2SO4, MGSO4, CASO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO3() - !EXTERNAL CALCO1A, CALCO4 - Integer :: I -! -! *** REGIME DEPENDS ON THE EXISTANCE OF WATER AND OF THE RH ************ -! - IF (W(4).GT.TINY .AND. W(5).GT.TINY) THEN ! NO3,CL EXIST, WATER POSSIBLE - SCASE = 'O3 ; SUBCASE 1' - CALL CALCO3A - SCASE = 'O3 ; SUBCASE 1' - ELSE ! NO3, CL NON EXISTANT - SCASE = 'O1 ; SUBCASE 1' - CALL CALCO1A - SCASE = 'O1 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMO3) THEN ! ONLY SOLIDS - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCO1A - SCASE = 'O3 ; SUBCASE 2' - RETURN - ELSE - SCASE = 'O3 ; SUBCASE 3' ! MDRH REGION (NA2SO4, NH42S4, K2SO4, MGSO4, CASO4) - CALL CALCMDRH2 (RH, DRMO3, DRNH42S4, CALCO1A, CALCO4) - SCASE = 'O3 ; SUBCASE 3' - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCO3 ****************************************** -! - END SUBROUTINE CALCO3 -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO3A -! *** CASE O3 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. (Rsulfate > 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4, K2SO4, MGSO4, CASO4 -! 4. Completely dissolved: NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO3A() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: ALF, BET, GAM, RTSQ, A1, A2, THETA1, THETA2 - Real(kind=fp) :: BB, CC, LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1 - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: CAFR, NAFR, SO4FR, KAPA2, DELTA - Real(kind=fp) :: PSI6LO, PSI6HI - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI9 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX (W(2)-CHI9, ZERO) - CAFR = MAX (W(6)-CHI9, ZERO) - CHI7 = MIN (0.5D0*W(7), SO4FR) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI7, ZERO) - SO4FR = MAX (SO4FR - CHI7, ZERO) - CHI1 = MIN (0.5D0*W(1), SO4FR) ! NA2SO4 - NAFR = MAX (W(1) - 2.0*CHI1, ZERO) - SO4FR = MAX (SO4FR - CHI1, ZERO) - CHI8 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8) - CHI8, ZERO) - SO4FR = MAX(SO4FR - CHI8, ZERO) - CHI3 = ZERO - CHI5 = W(4) - CHI6 = W(5) - CHI2 = MAX (SO4FR, ZERO) - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) -! - PSI8 = CHI8 - PSI6LO = TINY - PSI6HI = CHI6-TINY -! - WATER = TINY -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCO3A (X1) - IF (CHI6.LE.TINY) GOTO 50 -!CC IF (ABS(Y1).LE.EPS .OR. CHI7.LE.TINY) GOTO 50 -!CC IF (WATER .LE. TINY) GOTO 50 ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCO3A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NA2SO4, K2SO4, MgSO4, CaSO4 -! 4. Completely dissolved: NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCO3A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A65 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, DENO - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32, PSI20 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI2 = CHI2 - PSI8 = CHI8 - PSI3 = ZERO - PSI6 = X -! - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0D0 - A2 = XK7 *(WATER/GAMA(4))**3.0D0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0D0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0D0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0D0 - A7 = XK17 *(WATER/GAMA(17))**3.0D0 -! A8 = XK23 *(WATER/GAMA(21))**2.0D0 - A65 = A6/A5 -! -! CALCULATE DISSOCIATION QUANTITIES -! - DENO = MAX(CHI6-PSI6-PSI3, ZERO) - PSI5 = PSI6*CHI5/(A6/A5*DENO + PSI6) - PSI5 = MIN(MAX(PSI5,ZERO),CHI5) -! -!CC IF(CHI4.GT.TINY) THEN ! PSI4 - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - ELSE - PSI4 = TINY - ENDIF - PSI4 = MIN (MAX (PSI4,ZERO), CHI4) -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! PSI7 - CALL POLY3 (PSI2+PSI8, ZERO, -A7/4.0, PSI7, ISLV) - IF (ISLV.EQ.0) THEN - PSI7 = MAX (MIN (PSI7, CHI7), ZERO) - ELSE - PSI7 = ZERO - ENDIF - ELSE - PSI7 = ZERO - ENDIF -! - IF (CHI2.GT.TINY .AND. WATER.GT.TINY) THEN - CALL POLY3 (PSI7+PSI8+PSI4, PSI4*(PSI7+PSI8)+ - & PSI4*PSI4/4.0, (PSI4*PSI4*(PSI7+PSI8)-A2) - & /4.0,PSI20, ISLV) - IF (ISLV.EQ.0) PSI2 = MIN (MAX(PSI20,ZERO), CHI2) - ENDIF -! PSI2 = 0.5D0*(2.0D0*SQRT(A2/A7)*PSI7 - PSI4) -! PSI2 = MIN (MAX(PSI2, ZERO), CHI2) -! ENDIF -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! - MOLAL (2) = ZERO ! NaI - MOLAL (3) = 2.0D0*PSI2 + PSI4 ! NH4I - MOLAL (4) = PSI6 ! CLI - MOLAL (5) = PSI2+PSI7+PSI8 ! SO4I - MOLAL (6) = ZERO ! HSO4 - MOLAL (7) = PSI5 ! NO3I - MOLAL (8) = ZERO ! CAI - MOLAL (9) = 2.0D0*PSI7 ! KI - MOLAL (10)= PSI8 ! MGI -! -!CC MOLAL (1) = MAX(CHI5 - PSI5, TINY)*A5/PSI5 ! HI - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & -MOLAL(9)-2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! -! CNA2SO4 = MAX(CHI1 - PSI1, ZERO) - CNH42S4 = MAX(CHI2 - PSI2, ZERO) - CNH4NO3 = ZERO - CNH4Cl = ZERO - CK2SO4 = MAX(CHI7 - PSI7, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI9 -! -! *** CALCULATE MOLALR ARRAY, WATER AND ACTIVITIES ********************** -! - CALL CALCMR -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -20 FUNCO3A = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! -! - RETURN -! -! *** END OF FUNCTION FUNCO3A ******************************************* -! - END FUNCTION FUNCO3A - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO2 -! *** CASE O2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SO4RAT > 2.0), Cr+NA poor (CRNARAT < 2) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4NO3, NH4Cl, NA2SO4, K2SO4, MGSO4, CASO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO2() - !EXTERNAL CALCO1A, CALCO3A, CALCO4 - Integer :: I -! -! *** REGIME DEPENDS ON THE EXISTANCE OF NITRATES *********************** -! - IF (W(4).GT.TINY) THEN ! NO3 EXISTS, WATER POSSIBLE - SCASE = 'O2 ; SUBCASE 1' - CALL CALCO2A - SCASE = 'O2 ; SUBCASE 1' - ELSE ! NO3 NON EXISTANT, WATER NOT POSSIBLE - SCASE = 'O1 ; SUBCASE 1' - CALL CALCO1A - SCASE = 'O1 ; SUBCASE 1' - ENDIF -! -! *** REGIME DEPENDS ON THE EXISTANCE OF WATER AND OF THE RH ************ -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMO2) THEN ! ONLY SOLIDS - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCO1A - SCASE = 'O2 ; SUBCASE 2' - ELSE - IF (W(5).GT. TINY) THEN - SCASE = 'O2 ; SUBCASE 3' ! MDRH (NH4CL, NA2SO4, NH42S4, K2SO4, MGSO4, CASO4) - CALL CALCMDRH2 (RH, DRMO2, DRNH4CL, CALCO1A, CALCO3A) - SCASE = 'O2 ; SUBCASE 3' - ENDIF - IF (WATER.LE.TINY .AND. RH.GE.DRMO3) THEN - SCASE = 'O2 ; SUBCASE 4' ! MDRH (NA2SO4, NH42S4, K2SO4, MGSO4, CASO4) - CALL CALCMDRH2 (RH, DRMO3, DRNH42S4, CALCO1A, CALCO4) - SCASE = 'O2 ; SUBCASE 4' - ELSE - WATER = TINY - DO 20 I=1,NIONS - MOLAL(I) = ZERO -20 CONTINUE - CALL CALCO1A - SCASE = 'O2 ; SUBCASE 2' - ENDIF - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCO2 ****************************************** -! - END SUBROUTINE CALCO2 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO2A -! *** CASE O2 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. (Rsulfate > 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4, K2SO4, MgSO4, CaSO4 -! 4. Completely dissolved: NH4NO3 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO2A() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: ALF, BET, GAM, RTSQ, A1, A2, THETA1, THETA2 - Real(kind=fp) :: BB, CC, LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1 - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: CAFR, NAFR, SO4FR, KAPA2, DELTA - Real(kind=fp) :: PSI6LO, PSI6HI - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************* -! - CALAOU = .TRUE. - CHI9 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX (W(2)-CHI9, ZERO) - CAFR = MAX (W(6)-CHI9, ZERO) - CHI7 = MIN (0.5D0*W(7), SO4FR) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI7, ZERO) - SO4FR = MAX (SO4FR - CHI7, ZERO) - CHI1 = MIN (0.5D0*W(1), SO4FR) ! NA2SO4 - NAFR = MAX (W(1) - 2.0*CHI1, ZERO) - SO4FR = MAX (SO4FR - CHI1, ZERO) - CHI8 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8) - CHI8, ZERO) - SO4FR = MAX(SO4FR - CHI8, ZERO) - CHI3 = ZERO - CHI5 = W(4) - CHI6 = W(5) - CHI2 = MAX (SO4FR, ZERO) - CHI4 = MAX (W(3)-2.0*CHI2, ZERO) -! - PSI8 = CHI8 - PSI6LO = TINY - PSI6HI = CHI6-TINY -! - WATER = TINY -! -! *** INITIAL VALUES FOR BISECTION ************************************* -! - X1 = PSI6LO - Y1 = FUNCO2A (X1) - IF (CHI6.LE.TINY) GOTO 50 -!CC IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -!CC IF (WATER .LE. TINY) GOTO 50 ! No water -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO *********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCO2A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0 ; R(Cr+Na) < 2.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4CL, NA2SO4, K2SO4, MgSO4, CaSO4 -! 4. Completely dissolved: NH4NO3 -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCO2A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A65 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, DENO - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32, PSI20 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - !Real(kind=fp) :: LAMDA - ! hotp modified 8/2/07 - ! explicitly declared all variables in CASEO - ! made CASEO THREADPRIVATE for parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5 -!=======! Real(kind=fp) :: PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4 -!=======! Real(kind=fp) :: A5, A6, A7, A8, A9 -!=======! COMMON /CASEO/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, LAMDA, PSI1, PSI2, PSI3, PSI4, PSI5, -!=======! & PSI6, PSI7, PSI8, PSI9, A1, A2, A3, A4, -!=======! & A5, A6, A7, A8, A9 -!=======!!$OMP THREADPRIVATE( /CASEO/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI2 = CHI2 - PSI3 = ZERO -! - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0D0 - A2 = XK7 *(WATER/GAMA(4))**3.0D0 - A3 = XK6 /(R*TEMP*R*TEMP) - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0D0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0D0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0D0 - A65 = A6/A5 - A7 = XK17 *(WATER/GAMA(17))**3.0D0 -! A8 = XK23 *(WATER/GAMA(21))**2.0D0 -! - DENO = MAX(CHI6-PSI6-PSI3, ZERO) - PSI5 = PSI6*CHI5/(A6/A5*DENO + PSI6) - PSI5 = MIN(PSI5,CHI5) -! -!------------------------------------------------------------------------------ -! Prior to 1/31/18: -! Shaojie Song wrote: -! We have identified and fixed coding errors in ISORROPIA which significantly -! affect aerosol water pH calculations when the stable state for aerosol phase -! is applied. These errors exist in source codes for the cases G2 and O2, and -! also affect the pH results for the cases G1 and O1. The standard ISORROPIA -! codes fail to account for the partitioning of ammonia between the gas and -! aqueous phases. More information can be seen in our recent ACPD paper: -! https://www.atmos-chem-phys-discuss.net/acp-2018-6/. -! PSI4 = MIN(PSI5+PSI6,CHI4) -!------------------------------------------------------------------------------ - IF(W(2).GT.TINY) THEN ! Accounts for NH3 evaporation - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - 2.d0*PSI2/A4 - DD = MAX(BB*BB-4.d0*CC,ZERO) ! Patch proposed by Uma Shankar, 19/11/01 - PSI4 =0.5d0*(-BB - SQRT(DD)) - ELSE - PSI4 = TINY - ENDIF -! -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! PSI7 - CALL POLY3 (PSI2+PSI8, ZERO, -A7/4.0, PSI7, ISLV) - IF (ISLV.EQ.0) THEN - PSI7 = MAX (MIN (PSI7, CHI7), ZERO) - ELSE - PSI7 = ZERO - ENDIF - ELSE - PSI7 = ZERO - ENDIF -! - IF (CHI2.GT.TINY .AND. WATER.GT.TINY) THEN - CALL POLY3 (PSI7+PSI8+PSI4, PSI4*(PSI7+PSI8)+ - & PSI4*PSI4/4.0, (PSI4*PSI4*(PSI7+PSI8)-A2) - & /4.0,PSI20, ISLV) - IF (ISLV.EQ.0) PSI2 = MIN (MAX(PSI20,ZERO), CHI2) - ENDIF -! PSI2 = 0.5D0*(2.0D0*SQRT(A2/A7)*PSI7 - PSI4) -! PSI2 = MIN (PSI2, CHI2) -! ENDIF -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! - MOLAL (2) = ZERO ! NaI - MOLAL (3) = 2.0D0*PSI2 + PSI4 ! NH4I - MOLAL (4) = PSI6 ! CLI - MOLAL (5) = PSI2+PSI7+PSI8 ! SO4I - MOLAL (6) = ZERO ! HSO4 - MOLAL (7) = PSI5 ! NO3I - MOLAL (8) = ZERO ! CAI - MOLAL (9) = 2.0D0*PSI7 ! KI - MOLAL (10)= PSI8 ! MGI -! -!CC MOLAL (1) = MAX(CHI5 - PSI5, TINY)*A5/PSI5 ! HI - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & -MOLAL(9)-2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! -! CNA2SO4 = MAX(CHI1 - PSI1, ZERO) - CNH42S4 = MAX(CHI2 - PSI2, ZERO) - CNH4NO3 = ZERO - CK2SO4 = MAX(CHI7 - PSI7, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI9 - -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! -! *** CALCULATE MOLALR ARRAY, WATER AND ACTIVITIES ********************* -! - CALL CALCMR -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP ************************** -! - -!20 IF (CHI4.LE.TINY) THEN -! FUNCO2A = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! ELSE -20 FUNCO2A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -! ENDIF -! - RETURN -! -! *** END OF FUNCTION FUNCO2A **************************************** -! - END FUNCTION FUNCO2A - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO1 -! *** CASE O1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SO4RAT > 2.0), Cr+NA poor (CRNARAT < 2) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4NO3, NH4Cl, NA2SO4, K2SO4, MGSO4, CASO4 -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON RELATIVE HUMIDITY: -! 1. WHEN RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! 2. WHEN RH < MDRH ; ONLY SOLID PHASE POSSIBLE (SUBROUTINE CALCO1A) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO1() - !EXTERNAL CALCO1A, CALCO2A -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRMO1) THEN - SCASE = 'O1 ; SUBCASE 1' - CALL CALCO1A ! SOLID PHASE ONLY POSSIBLE - SCASE = 'O1 ; SUBCASE 1' - ELSE - SCASE = 'O1 ; SUBCASE 2' ! LIQUID & SOLID PHASE POSSIBLE - CALL CALCMDRH2 (RH, DRMO1, DRNH4NO3, CALCO1A, CALCO2A) - SCASE = 'O1 ; SUBCASE 2' - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCO1 ****************************************** -! - END SUBROUTINE CALCO1 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCO1A -! *** CASE O1A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SO4RAT > 2.0), Cr+NA poor (CRNARAT < 2) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : (NH4)2SO4, NH4NO3, NH4Cl, NA2SO4, K2SO4, MGSO4, CASO4 -! -! SOLID (NH4)2SO4 IS CALCULATED FROM THE SULFATES, WHILE NH4NO3 -! IS CALCULATED FROM NH3-HNO3 EQUILIBRIUM. 'ZE' IS THE AMOUNT OF -! NH4NO3 THAT VOLATIZES WHEN ALL POSSILBE NH4NO3 IS INITIALLY IN -! THE SOLID PHASE. -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCO1A() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: ALF, BET, GAM, RTSQ, A1, A2, THETA1, THETA2 - Real(kind=fp) :: BB, CC, LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1 - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: CAFR, SO4FR, KAPA2 - Integer :: I -! -! *** CALCULATE NON VOLATILE SOLIDS *********************************** -! - CCASO4 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX(W(2) - CCASO4, ZERO) - CAFR = MAX(W(6) - CCASO4, ZERO) - CK2SO4 = MIN (0.5D0*W(7), SO4FR) ! CK2S04 - FRK = MAX(W(7) - 2.0*CK2SO4, ZERO) - SO4FR = MAX(SO4FR - CK2SO4, ZERO) - CNA2SO4 = MIN (0.5D0*W(1), SO4FR) ! CNA2SO4 - FRNA = MAX(W(1) - 2.0*CNA2SO4, ZERO) - SO4FR = MAX(SO4FR - CNA2SO4, ZERO) - CMGSO4 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8) - CMGSO4, ZERO) - SO4FR = MAX(SO4FR - CMGSO4, ZERO) -! - CNH42S4 = MAX (SO4FR , ZERO) ! CNH42S4 -! -! *** CALCULATE VOLATILE SPECIES ************************************** -! - ALF = W(3) - 2.0D0*CNH42S4 - BET = W(5) - GAM = W(4) -! - RTSQ = R*TEMP*R*TEMP - A1 = XK6/RTSQ - A2 = XK10/RTSQ - !print *, A2 -! - THETA1 = GAM - BET*(A2/A1) - THETA2 = A2/A1 -! -! QUADRATIC EQUATION SOLUTION -! - BB = (THETA1-ALF-BET*(ONE+THETA2))/(ONE+THETA2) - CC = (ALF*BET-A1-BET*THETA1)/(ONE+THETA2) - DD = BB*BB - 4.0D0*CC - IF (DD.LT.ZERO) GOTO 100 ! Solve each reaction seperately -! -! TWO ROOTS FOR KAPA, CHECK AND SEE IF ANY VALID -! - SQDD = SQRT(DD) - KAPA1 = 0.5D0*(-BB+SQDD) - KAPA2 = 0.5D0*(-BB-SQDD) - LAMDA1 = THETA1 + THETA2*KAPA1 - LAMDA2 = THETA1 + THETA2*KAPA2 -! - IF (KAPA1.GE.ZERO .AND. LAMDA1.GE.ZERO) THEN - IF (ALF-KAPA1-LAMDA1.GE.ZERO .AND. - & BET-KAPA1.GE.ZERO .AND. GAM-LAMDA1.GE.ZERO) THEN - KAPA = KAPA1 - LAMDA= LAMDA1 - GOTO 200 - ENDIF - ENDIF -! - IF (KAPA2.GE.ZERO .AND. LAMDA2.GE.ZERO) THEN - IF (ALF-KAPA2-LAMDA2.GE.ZERO .AND. - & BET-KAPA2.GE.ZERO .AND. GAM-LAMDA2.GE.ZERO) THEN - KAPA = KAPA2 - LAMDA= LAMDA2 - GOTO 200 - ENDIF - ENDIF -! -! SEPERATE SOLUTION OF NH4CL & NH4NO3 EQUILIBRIA -! -100 KAPA = ZERO - LAMDA = ZERO - DD1 = (ALF+BET)*(ALF+BET) - 4.0D0*(ALF*BET-A1) - DD2 = (ALF+GAM)*(ALF+GAM) - 4.0D0*(ALF*GAM-A2) -! -! NH4CL EQUILIBRIUM -! - IF (DD1.GE.ZERO) THEN - SQDD1 = SQRT(DD1) - KAPA1 = 0.5D0*(ALF+BET + SQDD1) - KAPA2 = 0.5D0*(ALF+BET - SQDD1) -! - IF (KAPA1.GE.ZERO .AND. KAPA1.LE.MIN(ALF,BET)) THEN - KAPA = KAPA1 - ELSE IF (KAPA2.GE.ZERO .AND. KAPA2.LE.MIN(ALF,BET)) THEN - KAPA = KAPA2 - ELSE - KAPA = ZERO - ENDIF - ENDIF -! -! NH4NO3 EQUILIBRIUM -! - IF (DD2.GE.ZERO) THEN - SQDD2 = SQRT(DD2) - LAMDA1= 0.5D0*(ALF+GAM + SQDD2) - LAMDA2= 0.5D0*(ALF+GAM - SQDD2) -! - IF (LAMDA1.GE.ZERO .AND. LAMDA1.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA1 - ELSE IF (LAMDA2.GE.ZERO .AND. LAMDA2.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA2 - ELSE - LAMDA = ZERO - ENDIF - ENDIF -! -! IF BOTH KAPA, LAMDA ARE > 0, THEN APPLY EXISTANCE CRITERION -! - IF (KAPA.GT.ZERO .AND. LAMDA.GT.ZERO) THEN - IF (BET .LT. LAMDA/THETA1) THEN - KAPA = ZERO - ELSE - LAMDA= ZERO - ENDIF - ENDIF -! -! *** CALCULATE COMPOSITION OF VOLATILE SPECIES ************************ -! -200 CONTINUE - CNH4NO3 = LAMDA - CNH4CL = KAPA -! - GNH3 = MAX(ALF - KAPA - LAMDA, ZERO) - GHNO3 = MAX(GAM - LAMDA, ZERO) - GHCL = MAX(BET - KAPA, ZERO) -! - RETURN -! -! *** END OF SUBROUTINE CALCO1A ***************************************** -! - END SUBROUTINE CALCO1A - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM8 -! *** CASE M8 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4 -! 4. Completely dissolved: NH4NO3, NH4CL, NANO3, NACL, MgSO4, NA2SO4, K2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCM8() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: PSI6LO, PSI6HI, SO4FR, CAFR, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX(W(2)-CHI11, ZERO) - CAFR = MAX(W(6)-CHI11, ZERO) - CHI9 = MIN (0.5D0*W(7), SO4FR) ! CK2S04 - FRK = MAX(W(7)-2.0*CHI9, ZERO) - SO4FR = MAX(SO4FR-CHI9, ZERO) - CHI10 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8)-CHI10, ZERO) - SO4FR = MAX(SO4FR-CHI10, ZERO) - CHI1 = MAX (SO4FR,ZERO) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCM8 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCM8 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4 -! 4. Completely dissolved: NH4NO3, NH4CL, NANO3, NACL, MgSO4, NA2SO4, K2SO4 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCM8 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = CHI9 - PSI10 = CHI10 - PSI11 = ZERO - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! -! A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 -! A7 = XK8 *(WATER/GAMA(1))**2.0 -! A8 = XK9 *(WATER/GAMA(3))**2.0 -! A11 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MIN(MAX(PSI5, TINY),CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 + PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 ! NO3I - MOLAL (8) = PSI11 ! CAI - MOLAL (9) = 2.0*PSI9 ! KI - MOLAL (10)= PSI10 ! MGI -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = ZERO - CNANO3 = ZERO - CNA2SO4 = ZERO - CK2SO4 = ZERO - CMGSO4 = ZERO - CCASO4 = CHI11 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCM8 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCM8 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCM8 ******************************************* -! - END FUNCTION FUNCM8 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM7 -! *** CASE M7 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4 -! 4. Completely dissolved: NH4NO3, NH4CL, NANO3, NACL, MgSO4, NA2SO4 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCM7() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: SO4FR, CAFR - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX(W(2)-CHI11, ZERO) - CAFR = MAX(W(6)-CHI11, ZERO) - CHI9 = MIN (0.5D0*W(7), SO4FR) ! CK2S04 - FRK = MAX(W(7)-2.0*CHI9, ZERO) - SO4FR = MAX(SO4FR-CHI9, ZERO) - CHI10 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8)-CHI10, ZERO) - SO4FR = MAX(SO4FR-CHI10, ZERO) - CHI1 = MAX (SO4FR,ZERO) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCM7 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCM7 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4 -! 4. Completely dissolved: NH4NO3, NH4CL, NANO3, NACL, MgSO4, NA2SO4 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCM7 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! -! A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 -! A7 = XK8 *(WATER/GAMA(1))**2.0 -! A8 = XK9 *(WATER/GAMA(3))**2.0 -! A11 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MIN(MAX(PSI5, TINY),CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - CALL POLY3 (PSI1+PSI10,ZERO,-A9/4.0, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MAX (MIN (PSI9,CHI9), ZERO) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 + PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 ! NO3I - MOLAL (8) = PSI11 ! CAI - MOLAL (9) = 2.0*PSI9 ! KI - MOLAL (10)= PSI10 ! MGI -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = ZERO - CNANO3 = ZERO - CNA2SO4 = ZERO - CK2SO4 = MAX(CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCM7 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCM7 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCM7 ******************************************* -! - END FUNCTION FUNCM7 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM6 -! *** CASE M6 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4 -! 4. Completely dissolved: NH4NO3, NH4CL, NANO3, NACL, MgSO4 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCM6 - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: PSI6LO, PSI6HI, SO4FR, CAFR, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX(W(2)-CHI11, ZERO) - CAFR = MAX(W(6)-CHI11, ZERO) - CHI9 = MIN (0.5D0*W(7), SO4FR) ! CK2S04 - FRK = MAX(W(7)-2.0*CHI9, ZERO) - SO4FR = MAX(SO4FR-CHI9, ZERO) - CHI10 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8)-CHI10, ZERO) - SO4FR = MAX(SO4FR-CHI10, ZERO) - CHI1 = MAX (SO4FR,ZERO) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCM6 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCM6 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4 -! 4. Completely dissolved: NH4NO3, NH4CL, NANO3, NACL, MgSO4 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCM6 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, AA - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 -! A7 = XK8 *(WATER/GAMA(1))**2.0 -! A8 = XK9 *(WATER/GAMA(3))**2.0 -! A11 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MIN(MAX(PSI5, TINY),CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN !NA2SO4 - RIZ = SQRT(A9/A1) - AA = (0.5D0*RIZ*(PSI7+PSI8)+PSI10+(1.0+RIZ)*(PSI7+PSI8)) - & /(1.0+RIZ) - BB = ((PSI7+PSI8)*(0.5D0*RIZ*(PSI7+PSI8)+PSI10)+0.25D0* - & (PSI7+PSI8)**2.0*(1.0+RIZ))/(1.0+RIZ) - CC = (0.25D0*(PSI7+PSI8)**2.0*(0.5D0*RIZ*(PSI7+PSI8)+PSI10) - & -A1/4.0)/(1.0+RIZ) -! AA = PSI7+PSI8+PSI9+PSI10 -! BB = (PSI7+PSI8)*(PSI9+PSI10)+0.25D0*(PSI7+PSI8)**2. -! CC = ((PSI7+PSI8)**2.*(PSI9+PSI10)-A1)/4.0D0 -! - CALL POLY3 (AA,BB,CC,PSI1,ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1,CHI1) - ELSE - PSI1 = ZERO - ENDIF - ENDIF -! -! IF (CHI9.GE.TINY .AND. WATER.GT.TINY) THEN -! PSI9 = 0.5D0*SQRT(A9/A1)*(2.0D0*PSI1+PSI7+PSI8) -! PSI9 = MAX (MIN (PSI9,CHI9), ZERO) -! ELSE -! PSI9 = ZERO -! ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - CALL POLY3 (PSI1+PSI10,ZERO,-A9/4.0, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (PSI9,CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 + PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 ! NO3I - MOLAL (8) = PSI11 ! CAI - MOLAL (9) = 2.0*PSI9 ! KI - MOLAL (10)= PSI10 ! MGI -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = ZERO - CNANO3 = ZERO - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) - CK2SO4 = MAX(CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCM6 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCM6 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCM6 ******************************************* -! - END FUNCTION FUNCM6 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM5 -! *** CASE M5 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4 -! 4. Completely dissolved: NH4NO3, NH4CL, NANO3, NACL -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCM5() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: PSI6LO, PSI6HI, SO4FR, CAFR, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX(W(2)-CHI11, ZERO) - CAFR = MAX(W(6)-CHI11, ZERO) - CHI9 = MIN (0.5D0*W(7), SO4FR) ! CK2S04 - FRK = MAX(W(7)-2.0*CHI9, ZERO) - SO4FR = MAX(SO4FR-CHI9, ZERO) - CHI10 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8)-CHI10, ZERO) - SO4FR = MAX(SO4FR-CHI10, ZERO) - CHI1 = MAX (SO4FR,ZERO) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCM5 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCM5 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4 -! 4. Completely dissolved: NH4NO3, NH4CL, NANO3, NACL -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCM5 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, AA - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 -! A7 = XK8 *(WATER/GAMA(1))**2.0 -! A8 = XK9 *(WATER/GAMA(3))**2.0 -! A11 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MIN(MAX(PSI5, TINY),CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN !NA2SO4 - RIZ = SQRT(A9/A1) - AA = (0.5D0*RIZ*(PSI7+PSI8)+PSI10+(1.0+RIZ)*(PSI7+PSI8)) - & /(1.0+RIZ) - BB = ((PSI7+PSI8)*(0.5D0*RIZ*(PSI7+PSI8)+PSI10)+0.25D0* - & (PSI7+PSI8)**2.0*(1.0+RIZ))/(1.0+RIZ) - CC = (0.25D0*(PSI7+PSI8)**2.0*(0.5D0*RIZ*(PSI7+PSI8)+PSI10) - & -A1/4.0)/(1.0+RIZ) -! AA = PSI7+PSI8+PSI9+PSI10 -! BB = (PSI7+PSI8)*(PSI9+PSI10)+0.25D0*(PSI7+PSI8)**2. -! CC = ((PSI7+PSI8)**2.*(PSI9+PSI10)-A1)/4.0D0 -! - CALL POLY3 (AA,BB,CC,PSI1,ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1,CHI1) - ELSE - PSI1 = ZERO - ENDIF - ENDIF -! - IF (CHI9.GE.TINY .AND. WATER.GT.TINY) THEN - PSI9 = 0.5D0*SQRT(A9/A1)*(2.0D0*PSI1+PSI7+PSI8) - PSI9 = MAX (MIN (PSI9,CHI9), ZERO) - ELSE - PSI9 = ZERO - ENDIF -! -! IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 -! CALL POLY3 (PSI1+PSI10,ZERO,-A9/4.0, PSI9, ISLV) -! IF (ISLV.EQ.0) THEN -! PSI9 = MIN (PSI9,CHI9) -! ELSE -! PSI9 = ZERO -! ENDIF -! ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 + PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 ! NO3I - MOLAL (8) = PSI11 ! CAI - MOLAL (9) = 2.0*PSI9 ! KI - MOLAL (10)= PSI10 ! MGI -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = ZERO - CNANO3 = ZERO - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) - CK2SO4 = MAX(CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCM5 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCM5 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCM5 ******************************************* -! - END FUNCTION FUNCM5 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM4 -! *** CASE M4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4, NH4CL -! 4. Completely dissolved: NH4NO3, NANO3, NACL -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCM4() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: PSI6LO, PSI6HI, SO4FR, CAFR, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** REGIME DEPENDS ON THE EXISTANCE OF NITRATES *********************** -! - IF (W(4).LE.TINY .AND. W(5).LE.TINY) THEN - SCASE = 'M4 ; SUBCASE 1' - CALL CALCM1A - SCASE = 'M4 ; SUBCASE 1' - RETURN - ENDIF -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX(W(2)-CHI11, ZERO) - CAFR = MAX(W(6)-CHI11, ZERO) - CHI9 = MIN (0.5D0*W(7), SO4FR) ! CK2S04 - FRK = MAX(W(7)-2.0*CHI9, ZERO) - SO4FR = MAX(SO4FR-CHI9, ZERO) - CHI10 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8)-CHI10, ZERO) - SO4FR = MAX(SO4FR-CHI10, ZERO) - CHI1 = MAX (SO4FR,ZERO) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCM4 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCM4 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4, NH4CL -! 4. Completely dissolved: NH4NO3, NANO3, NACL -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCM4 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, AA - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A3 = XK6 /(R*TEMP*R*TEMP) - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 -! A7 = XK8 *(WATER/GAMA(1))**2.0 -! A8 = XK9 *(WATER/GAMA(3))**2.0 -! A11 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MIN(MAX(PSI5, TINY),CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,TINY),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN !NA2SO4 - RIZ = SQRT(A9/A1) - AA = (0.5D0*RIZ*(PSI7+PSI8)+PSI10+(1.0+RIZ)*(PSI7+PSI8)) - & /(1.0+RIZ) - BB = ((PSI7+PSI8)*(0.5D0*RIZ*(PSI7+PSI8)+PSI10)+0.25D0* - & (PSI7+PSI8)**2.0*(1.0+RIZ))/(1.0+RIZ) - CC = (0.25D0*(PSI7+PSI8)**2.0*(0.5D0*RIZ*(PSI7+PSI8)+PSI10) - & -A1/4.0)/(1.0+RIZ) -! AA = PSI7+PSI8+PSI9+PSI10 -! BB = (PSI7+PSI8)*(PSI9+PSI10)+0.25D0*(PSI7+PSI8)**2. -! CC = ((PSI7+PSI8)**2.*(PSI9+PSI10)-A1)/4.0D0 -! - CALL POLY3 (AA,BB,CC,PSI1,ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1,CHI1) - ELSE - PSI1 = ZERO - ENDIF - ENDIF -! - IF (CHI9.GE.TINY .AND. WATER.GT.TINY) THEN - PSI9 = 0.5D0*SQRT(A9/A1)*(2.0D0*PSI1+PSI7+PSI8) - PSI9 = MAX (MIN (PSI9,CHI9), ZERO) - ELSE - PSI9 = ZERO - ENDIF -! -! IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 -! CALL POLY3 (PSI1+PSI10,ZERO,-A9/4.0, PSI9, ISLV) -! IF (ISLV.EQ.0) THEN -! PSI9 = MIN (PSI9,CHI9) -! ELSE -! PSI9 = ZERO -! ENDIF -! ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 + PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 ! NO3I - MOLAL (8) = PSI11 ! CAI - MOLAL (9) = 2.0*PSI9 ! KI - MOLAL (10)= PSI10 ! MGI -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = ZERO - CNANO3 = ZERO - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) - CK2SO4 = MAX(CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX (MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6), ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCM4 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCM4 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCM4 ******************************************* -! - END FUNCTION FUNCM4 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM3 -! *** CASE M3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4, NH4CL, NACL -! 4. Completely dissolved: NH4NO3, NANO3 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCM3() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Real(kind=fp) :: SO4FR, CAFR - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** REGIME DEPENDS ON THE EXISTANCE OF NITRATES *********************** -! - IF (W(4).LE.TINY) THEN ! NO3 NOT EXIST, WATER NOT POSSIBLE - SCASE = 'M3 ; SUBCASE 1' - CALL CALCM1A - SCASE = 'M3 ; SUBCASE 1' - RETURN - ENDIF -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX(W(2)-CHI11, ZERO) - CAFR = MAX(W(6)-CHI11, ZERO) - CHI9 = MIN (0.5D0*W(7), SO4FR) ! CK2S04 - FRK = MAX(W(7)-2.0*CHI9, ZERO) - SO4FR = MAX(SO4FR-CHI9, ZERO) - CHI10 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8)-CHI10, ZERO) - SO4FR = MAX(SO4FR-CHI10, ZERO) - CHI1 = MAX (SO4FR,ZERO) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCM3 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCM3 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4, NH4CL, NACL -! 4. Completely dissolved: NH4NO3, NANO3 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCM3 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD, RIZ - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, AA - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A3 = XK6 /(R*TEMP*R*TEMP) - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A10 = XK23 *(WATER/GAMA(21))**2.0 -! A8 = XK9 *(WATER/GAMA(3))**2.0 -! A11 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MIN(MAX(PSI5, TINY),CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,TINY),CHI4) - ELSE - PSI4 = TINY - ENDIF -! -! IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION -! VITA = 2.0*PSI1+PSI8+PSI6 ! AN DE DOULEPSEI KALA VGALE PSI1 APO DW -! GKAMA= PSI6*(2.0*PSI1+PSI8)-A7 -! DIAK = MAX(VITA**2.0 - 4.0D0*GKAMA,ZERO) -! PSI7 = 0.5D0*( -VITA + SQRT(DIAK) ) -! PSI7 = MAX(MIN(PSI7, CHI7), ZERO) -! ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - DIAK = (PSI8-PSI6)**2.0 + 4.0*A7 - PSI7 = 0.5D0*( -(PSI8+PSI6) + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -!C -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN !NA2SO4 - RIZ = SQRT(A9/A1) - AA = (0.5D0*RIZ*(PSI7+PSI8)+PSI10+(1.0+RIZ)*(PSI7+PSI8)) - & /(1.0+RIZ) - BB = ((PSI7+PSI8)*(0.5D0*RIZ*(PSI7+PSI8)+PSI10)+0.25D0* - & (PSI7+PSI8)**2.0*(1.0+RIZ))/(1.0+RIZ) - CC = (0.25D0*(PSI7+PSI8)**2.0*(0.5D0*RIZ*(PSI7+PSI8)+PSI10) - & -A1/4.0)/(1.0+RIZ) -! AA = PSI7+PSI8+PSI9+PSI10 -! BB = (PSI7+PSI8)*(PSI9+PSI10)+0.25D0*(PSI7+PSI8)**2. -! CC = ((PSI7+PSI8)**2.*(PSI9+PSI10)-A1)/4.0D0 -! - CALL POLY3 (AA,BB,CC,PSI1,ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1,CHI1) - ELSE - PSI1 = ZERO - ENDIF - ENDIF -! - IF (CHI9.GE.TINY) THEN - PSI9 = 0.5D0*SQRT(A9/A1)*(2.0D0*PSI1+PSI7+PSI8) - PSI9 = MAX (MIN (PSI9,CHI9), ZERO) - ELSE - PSI9 = ZERO - ENDIF -! -! IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 -! CALL POLY3 (PSI1+PSI10,ZERO,-A9/4.0, PSI9, ISLV) -! IF (ISLV.EQ.0) THEN -! PSI9 = MIN (PSI9,CHI9) -! ELSE -! PSI9 = ZERO -! ENDIF -! ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 + PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 ! NO3I - MOLAL (8) = PSI11 ! CAI - MOLAL (9) = 2.0*PSI9 ! KI - MOLAL (10)= PSI10 ! MGI -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = MAX(CHI7 - PSI7, ZERO) - CNANO3 = ZERO - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) - CK2SO4 = MAX(CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX (MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6), ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCM3 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCM3 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCM3 ******************************************* -! - END FUNCTION FUNCM3 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM2 -! *** CASE M2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4, NH4CL, NACL, NANO3 -! -! THERE ARE THREE REGIMES IN THIS CASE: -! 1. NH4NO3(s) POSSIBLE. LIQUID & SOLID AEROSOL (SUBROUTINE CALCH2A) -! 2. NH4NO3(s) NOT POSSIBLE, AND RH < MDRH. SOLID AEROSOL ONLY -! 3. NH4NO3(s) NOT POSSIBLE, AND RH >= MDRH. (MDRH REGION) -! -! REGIMES 2. AND 3. ARE CONSIDERED TO BE THE SAME AS CASES M1A, M2B -! RESPECTIVELY (BECAUSE MDRH POINTS COINCIDE). -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCM2() - !EXTERNAL CALCM1A, CALCM3 -! -! *** REGIME DEPENDS ON THE EXISTANCE OF NITRATES *********************** -! - CALL CALCM1A -! - IF (CNH4NO3.GT.TINY) THEN ! NO3 EXISTS, WATER POSSIBLE - SCASE = 'M2 ; SUBCASE 1' - CALL CALCM2A - SCASE = 'M2 ; SUBCASE 1' - ELSE ! NO3 NON EXISTANT, WATER NOT POSSIBLE - SCASE = 'M2 ; SUBCASE 1' - CALL CALCM1A - SCASE = 'M2 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY .AND. RH.LT.DRMM2) THEN ! DRY AEROSOL - SCASE = 'M2 ; SUBCASE 2' -! - ELSEIF (WATER.LE.TINY .AND. RH.GE.DRMM2) THEN ! MDRH OF M2 - SCASE = 'M2 ; SUBCASE 3' - CALL CALCMDRH2 (RH, DRMM2, DRNANO3, CALCM1A, CALCM3) - SCASE = 'M2 ; SUBCASE 3' - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCM2 ****************************************** -! - END SUBROUTINE CALCM2 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM2A -! *** CASE M2A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4, NH4CL, NACL, NANO3 -! 4. Completely dissolved: NH4NO3 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCM2A() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: PSI6HI, PSI6LO - Real(kind=fp) :: SO4FR, CAFR, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX(W(2)-CHI11, ZERO) - CAFR = MAX(W(6)-CHI11, ZERO) - CHI9 = MIN (0.5D0*W(7), SO4FR) ! CK2S04 - FRK = MAX(W(7)-2.0*CHI9, ZERO) - SO4FR = MAX(SO4FR-CHI9, ZERO) - CHI10 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8)-CHI10, ZERO) - SO4FR = MAX(SO4FR-CHI10, ZERO) - CHI1 = MAX (SO4FR,ZERO) ! CNA2SO4 - CHI2 = ZERO ! CNH42S4 - CHI3 = ZERO ! CNH4CL - FRNA = MAX (W(1)-2.0*CHI1, ZERO) - CHI8 = MIN (FRNA, W(4)) ! CNANO3 - CHI4 = W(3) ! NH3(g) - CHI5 = MAX (W(4)-CHI8, ZERO) ! HNO3(g) - CHI7 = MIN (MAX(FRNA-CHI8, ZERO), W(5)) ! CNACL - CHI6 = MAX (W(5)-CHI7, ZERO) ! HCL(g) -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCM2A (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCM2A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4, NH4CL, NACL, NANO3 -! 4. Completely dissolved: NH4NO3 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCM2A (X) - Real(kind=fp) :: X - Real(kind=fp) :: A1, A2, A3, A4, A5, A6, A7, A8, A9, A64 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP, AA - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32, RIZ - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = CHI1 - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK5 *(WATER/GAMA(2))**3.0 - A3 = XK6 /(R*TEMP*R*TEMP) - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A64 = (XK3*XK2/XKW)*(GAMA(10)/GAMA(5)/GAMA(11))**2.0 - A64 = A64*(R*TEMP*WATER)**2.0 -! A11 = XK1*WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6+PSI7) - A6/A5*PSI8*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7) - PSI5 = MIN(MAX(PSI5, TINY),CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,TINY),CHI4) - ELSE - PSI4 = TINY - ENDIF -! -! IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION -! VITA = 2.0*PSI1+PSI8+PSI6 -! GKAMA= PSI6*(2.0*PSI1+PSI8)-A7 -! DIAK = MAX(VITA**2.0 - 4.0D0*GKAMA,ZERO) -! PSI7 = 0.5D0*( -VITA + SQRT(DIAK) ) -! PSI7 = MAX(MIN(PSI7, CHI7), ZERO) -! ENDIF -!C -! IF (CHI8.GT.TINY .AND. WATER.GT.TINY) THEN ! NANO3 DISSOLUTION -! BIT = 2.0*PSI1+PSI7+PSI5 -! GKAM = PSI5*(2.0*PSI1+PSI8)-A8 -! DIA = BIT**2.0 - 4.0D0*GKAM -! PSI8 = 0.5D0*( -BIT + SQRT(DIA) ) -! PSI8 = MAX(MIN(PSI8, CHI8), ZERO) -! ENDIF -!C - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - DIAK = (PSI8-PSI6)**2.0 + 4.0*A7 - PSI7 = 0.5D0*( -(PSI8+PSI6) + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -! - IF (CHI8.GT.TINY .AND. WATER.GT.TINY) THEN ! NANO3 DISSOLUTION - DIAK = (PSI7-PSI5)**2.0 + 4.0*A8 - PSI8 = 0.5D0*( -(PSI7+PSI5) + SQRT(DIAK) ) - PSI8 = MAX(MIN(PSI8, CHI8), ZERO) - ENDIF -! - IF (CHI1.GT.TINY .AND. WATER.GT.TINY) THEN !NA2SO4 - RIZ = SQRT(A9/A1) - AA = (0.5D0*RIZ*(PSI7+PSI8)+PSI10+(1.0+RIZ)*(PSI7+PSI8)) - & /(1.0+RIZ) - BB = ((PSI7+PSI8)*(0.5D0*RIZ*(PSI7+PSI8)+PSI10)+0.25D0* - & (PSI7+PSI8)**2.0*(1.0+RIZ))/(1.0+RIZ) - CC = (0.25D0*(PSI7+PSI8)**2.0*(0.5D0*RIZ*(PSI7+PSI8)+PSI10) - & -A1/4.0)/(1.0+RIZ) -! -! AA = PSI7+PSI8+PSI9+PSI10 -! BB = (PSI7+PSI8)*(PSI9+PSI10)+0.25D0*(PSI7+PSI8)**2. -! CC = ((PSI7+PSI8)**2.*(PSI9+PSI10)-A1)/4.0D0 -!C - CALL POLY3 (AA,BB,CC,PSI1,ISLV) - IF (ISLV.EQ.0) THEN - PSI1 = MIN (PSI1,CHI1) - ELSE - PSI1 = ZERO - ENDIF - ENDIF -! - IF (CHI9.GE.TINY .AND. WATER.GT.TINY) THEN -! PSI9 = 0.5D0*SQRT(A9/A1)*(2.0D0*PSI1+PSI7+PSI8) - PSI9 = 0.5D0*SQRT(A9/A1)*(2.0D0*PSI1+PSI7+PSI8) - PSI9 = MAX (MIN (PSI9,CHI9), ZERO) - ELSE - PSI9 = ZERO - ENDIF -! -! IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 -! CALL POLY3 (PSI1+PSI10,ZERO,-A9/4.0, PSI9, ISLV) -! IF (ISLV.EQ.0) THEN -! PSI9 = MAX (MIN (PSI9,CHI9), ZERO) -! ELSE -! PSI9 = ZERO -! ENDIF -! ENDIF -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 + 2.0*PSI1 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 ! CLI - MOLAL (5) = PSI2 + PSI1 + PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 ! NO3I - MOLAL (8) = PSI11 ! CAI - MOLAL (9) = 2.0*PSI9 ! KI - MOLAL (10)= PSI10 ! MGI -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH42S4 = ZERO - CNH4NO3 = ZERO - CNACL = MAX(CHI7 - PSI7, ZERO) - CNANO3 = MAX(CHI8 - PSI8, ZERO) - CNA2SO4 = MAX(CHI1 - PSI1, ZERO) - CK2SO4 = MAX(CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX(MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6), ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCM2A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A64 - ONE -20 FUNCM2A = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCM2A ******************************************* -! - END FUNCTION FUNCM2A - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM1 -! *** CASE M1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4, NH4CL, NACL, NANO3, NH4NO3 -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON RELATIVE HUMIDITY: -! 1. WHEN RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! 2. WHEN RH < MDRH ; ONLY SOLID PHASE POSSIBLE (SUBROUTINE CALCH1A) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCM1() - !EXTERNAL CALCM1A, CALCM2A -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRMM1) THEN - SCASE = 'M1 ; SUBCASE 1' - CALL CALCM1A ! SOLID PHASE ONLY POSSIBLE - SCASE = 'M1 ; SUBCASE 1' - ELSE - SCASE = 'M1 ; SUBCASE 2' ! LIQUID & SOLID PHASE POSSIBLE - CALL CALCMDRH2 (RH, DRMM1, DRNH4NO3, CALCM1A, CALCM2A) - SCASE = 'M1 ; SUBCASE 2' - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCM1 ****************************************** -! - END SUBROUTINE CALCM1 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCM1A -! *** CASE M1A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr < 2) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, NA2SO4, MGSO4, NH4CL, NACL, NANO3, NH4NO3 -! -! *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= - - SUBROUTINE CALCM1A() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI6LO, PSI6HI - Real(kind=fp) :: ALF, BET, GAM, NO3FR, RTSQ, A1, A2, THETA1 - Real(kind=fp) :: BB, CC, LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1 - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 - Real(kind=fp) :: SO4FR, CAFR, NAFR, CLFR - Real(kind=fp) :: THETA2, KAPA2 - Integer :: I -! -! *** CALCULATE NON VOLATILE SOLIDS *********************************** -! - CCASO4 = MIN (W(6), W(2)) ! CCASO4 - SO4FR = MAX(W(2) - CCASO4, ZERO) - CAFR = MAX(W(6) - CCASO4, ZERO) - CK2SO4 = MIN (0.5D0*W(7), SO4FR) ! CK2S04 - FRK = MAX(W(7) - 2.0*CK2SO4, ZERO) - SO4FR = MAX(SO4FR - CK2SO4, ZERO) - CMGSO4 = MIN (W(8), SO4FR) ! CMGSO4 - FRMG = MAX(W(8) - CMGSO4, ZERO) - SO4FR = MAX(SO4FR - CMGSO4, ZERO) - CNA2SO4 = MAX (SO4FR,ZERO) ! CNA2SO4 - NAFR = MAX (W(1)-2.0*CNA2SO4, ZERO) - CNANO3 = MIN (NAFR, W(4)) ! CNANO3 - NO3FR = MAX (W(4)-CNANO3, ZERO) - CNACL = MIN (MAX(NAFR-CNANO3, ZERO), W(5)) ! CNACL - CLFR = MAX (W(5)-CNACL, ZERO) -! -! *** CALCULATE VOLATILE SPECIES ************************************** -! - ALF = W(3) ! FREE NH3 - BET = CLFR ! FREE CL - GAM = NO3FR ! FREE NO3 -! - RTSQ = R*TEMP*R*TEMP - A1 = XK6/RTSQ - A2 = XK10/RTSQ -! - THETA1 = GAM - BET*(A2/A1) - THETA2 = A2/A1 -! -! QUADRATIC EQUATION SOLUTION -! - BB = (THETA1-ALF-BET*(ONE+THETA2))/(ONE+THETA2) - CC = (ALF*BET-A1-BET*THETA1)/(ONE+THETA2) - DD = BB*BB - 4.0D0*CC - IF (DD.LT.ZERO) GOTO 100 ! Solve each reaction seperately -! -! TWO ROOTS FOR KAPA, CHECK AND SEE IF ANY VALID -! - SQDD = SQRT(DD) - KAPA1 = 0.5D0*(-BB+SQDD) - KAPA2 = 0.5D0*(-BB-SQDD) - LAMDA1 = THETA1 + THETA2*KAPA1 - LAMDA2 = THETA1 + THETA2*KAPA2 -! - IF (KAPA1.GE.ZERO .AND. LAMDA1.GE.ZERO) THEN - IF (ALF-KAPA1-LAMDA1.GE.ZERO .AND. - & BET-KAPA1.GE.ZERO .AND. GAM-LAMDA1.GE.ZERO) THEN - KAPA = KAPA1 - LAMDA= LAMDA1 - GOTO 200 - ENDIF - ENDIF -! - IF (KAPA2.GE.ZERO .AND. LAMDA2.GE.ZERO) THEN - IF (ALF-KAPA2-LAMDA2.GE.ZERO .AND. - & BET-KAPA2.GE.ZERO .AND. GAM-LAMDA2.GE.ZERO) THEN - KAPA = KAPA2 - LAMDA= LAMDA2 - GOTO 200 - ENDIF - ENDIF -! -! SEPERATE SOLUTION OF NH4CL & NH4NO3 EQUILIBRIA -! -100 KAPA = ZERO - LAMDA = ZERO - DD1 = (ALF+BET)*(ALF+BET) - 4.0D0*(ALF*BET-A1) - DD2 = (ALF+GAM)*(ALF+GAM) - 4.0D0*(ALF*GAM-A2) -! -! NH4CL EQUILIBRIUM -! - IF (DD1.GE.ZERO) THEN - SQDD1 = SQRT(DD1) - KAPA1 = 0.5D0*(ALF+BET + SQDD1) - KAPA2 = 0.5D0*(ALF+BET - SQDD1) -! - IF (KAPA1.GE.ZERO .AND. KAPA1.LE.MIN(ALF,BET)) THEN - KAPA = KAPA1 - ELSE IF (KAPA2.GE.ZERO .AND. KAPA2.LE.MIN(ALF,BET)) THEN - KAPA = KAPA2 - ELSE - KAPA = ZERO - ENDIF - ENDIF -! -! NH4NO3 EQUILIBRIUM -! - IF (DD2.GE.ZERO) THEN - SQDD2 = SQRT(DD2) - LAMDA1= 0.5D0*(ALF+GAM + SQDD2) - LAMDA2= 0.5D0*(ALF+GAM - SQDD2) -! - IF (LAMDA1.GE.ZERO .AND. LAMDA1.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA1 - ELSE IF (LAMDA2.GE.ZERO .AND. LAMDA2.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA2 - ELSE - LAMDA = ZERO - ENDIF - ENDIF -! -! IF BOTH KAPA, LAMDA ARE > 0, THEN APPLY EXISTANCE CRITERION -! - IF (KAPA.GT.ZERO .AND. LAMDA.GT.ZERO) THEN - IF (BET .LT. LAMDA/THETA1) THEN - KAPA = ZERO - ELSE - LAMDA= ZERO - ENDIF - ENDIF -! -! *** CALCULATE COMPOSITION OF VOLATILE SPECIES *********************** -! -200 CONTINUE - CNH4NO3 = LAMDA - CNH4CL = KAPA -! - GNH3 = ALF - KAPA - LAMDA - GHNO3 = GAM - LAMDA - GHCL = BET - KAPA -! - RETURN -! -! *** END OF SUBROUTINE CALCM1A ***************************************** -! - END SUBROUTINE CALCM1A - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP13 -! *** CASE P13 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4 -! 4. Completely dissolved: CA(NO3)2, CACL2, K2SO4, KNO3, KCL, MGSO4, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP13() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP13 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP13 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4 -! 4. Completely dissolved: CA(NO3)2, CACL2, K2SO4, KNO3, KCL, MGSO4, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP13 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A4, A5, A6, BB, CC, DD - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI4 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = CHI9 - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = CHI13 - PSI14 = CHI14 - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - - & A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN(MAX(PSI5, TINY),CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! -! *** CALCULATE SPECIATION ********************************************* -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -! -! *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -! - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH4NO3 = ZERO - CNH4CL = ZERO - CNACL = ZERO - CNANO3 = ZERO - CK2SO4 = ZERO - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = ZERO - CKCL = ZERO - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP13 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP13 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP13 ******************************************* -! - END FUNCTION FUNCP13 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP12 -! *** CASE P12 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4 -! 4. Completely dissolved: CA(NO3)2, CACL2, KNO3, KCL, MGSO4, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP12 - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP12 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP12 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4 -! 4. Completely dissolved: CA(NO3)2, CACL2, KNO3, KCL, MGSO4, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP12 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A9, A13, A14 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI4 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = CHI13 - PSI14 = CHI14 - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - - & A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN(MAX(PSI5, TINY),CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH4NO3 = ZERO - CNH4CL = ZERO - CNACL = ZERO - CNANO3 = ZERO - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = ZERO - CKCL = ZERO - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP12 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP12 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP12 ******************************************* -! - END FUNCTION FUNCP12 - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP11 -! *** CASE P11 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3 -! 4. Completely dissolved: CA(NO3)2, CACL2, KCL, MGSO4, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP11() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP11 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP11 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3 -! 4. Completely dissolved: CA(NO3)2, CACL2, KCL, MGSO4, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP11 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A9, A13, A14 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = CHI14 - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - - & A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 =0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH4NO3 = ZERO - CNH4CL = ZERO - CNACL = ZERO - CNANO3 = ZERO - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = ZERO - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP11 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP11 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP11 ******************************************* -! - END FUNCTION FUNCP11 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP10 -! *** CASE P10 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4 -! 4. Completely dissolved: CA(NO3)2, CACL2, KCL, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP10() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP10 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP10 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4 -! 4. Completely dissolved: CA(NO3)2, CACL2, KCL, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP10 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A9, A13, A14 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = CHI14 - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - - & A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 =0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH4NO3 = ZERO - CNH4CL = ZERO - CNACL = ZERO - CNANO3 = ZERO - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = ZERO - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP10 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP10 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP10 ******************************************* -! - END FUNCTION FUNCP10 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP9 -! *** CASE P9 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP9() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP9 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP9 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP9 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A9, A13, A14 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = ZERO - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 - A14 = XK20 *(WATER/GAMA(20))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - - & A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 = 0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI14.GT.TINY .AND. WATER.GT.TINY) THEN !KCL - PSI14 = A14/A13*(PSI5+PSI8+2.0*PSI12+PSI13+2.0*PSI15) - - & PSI6-PSI7-2.0*PSI16-2.0*PSI17 - PSI14 = MIN (MAX (PSI14, ZERO), CHI14) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH4NO3 = ZERO - CNH4CL = ZERO - CNACL = ZERO - CNANO3 = ZERO - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = MAX (CHI14 - PSI14, ZERO) - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP9 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP9 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP9 ******************************************* -! - END FUNCTION FUNCP9 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP8 -! *** CASE P8 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP8() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP8 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP8 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP8 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A9, A13, A14 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = CHI7 - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = ZERO - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 - A14 = XK20 *(WATER/GAMA(20))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - - & A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 = 0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI14.GT.TINY .AND. WATER.GT.TINY) THEN !KCL - PSI14 = A14/A13*(PSI5+PSI8+2.0*PSI12+PSI13+2.0*PSI15) - - & PSI6-PSI7-2.0*PSI16-2.0*PSI17 - PSI14 = MIN (MAX (PSI14, ZERO), CHI14) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -! -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH4NO3 = ZERO -! CNH4CL = ZERO - CNACL = ZERO - CNANO3 = ZERO - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = MAX (CHI14 - PSI14, ZERO) - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX(MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6),ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP8 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP8 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP8 ******************************************* -! - END FUNCTION FUNCP8 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP7 -! *** CASE P7 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2, NANO3, NH4NO3 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP7() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: A1, A6 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP7 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP7 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2, NANO3, NH4NO3 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP7 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A9, A13, A14 - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA, BB, CC, DD - Real(kind=fp) :: VHTA, GKAMA, BBP, CCP, DDP - Real(kind=fp) :: VITA, DIAK, DELT, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = ZERO - PSI8 = CHI8 - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = ZERO - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 - A14 = XK20 *(WATER/GAMA(20))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - - & A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 = 0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI14.GT.TINY .AND. WATER.GT.TINY) THEN !KCL - PSI14 = A14/A13*(PSI5+PSI8+2.0*PSI12+PSI13+2.0*PSI15) - - & PSI6-PSI7-2.0*PSI16-2.0*PSI17 - PSI14 = MIN (MAX (PSI14, ZERO), CHI14) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - VITA = PSI6+PSI14+PSI8+2.0*PSI16+2.0*PSI17 - GKAMA= PSI8*(2.0*PSI16+PSI6+PSI14+2.0*PSI17)-A7 - DIAK = MAX(VITA*VITA - 4.0D0*GKAMA,ZERO) - PSI7 = 0.5D0*( -VITA + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH4NO3 = ZERO -! CNH4CL = ZERO - CNACL = MAX (CHI7 - PSI7, ZERO) - CNANO3 = ZERO - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = MAX (CHI14 - PSI14, ZERO) - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX(MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6),ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP7 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP7 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP7 ******************************************* -! - END FUNCTION FUNCP7 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP6 -! *** CASE P6 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, NANO3 -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2, NH4NO3 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP6() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX, DELTA - Real(kind=fp) :: PSI6LO, PSI6HI - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP6 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP6 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, NANO3 -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2, NH4NO3 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP6 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A8, A9, A13, A14 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: BB, CC, DD, VHTA, GKAMA, DELTA, BBP, CCP - Real(kind=fp) :: DDP, VITA, DIAK, PSI31, PSI32, DELT - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = ZERO - PSI8 = ZERO - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = ZERO - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 - A14 = XK20 *(WATER/GAMA(20))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = CHI5*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - - & A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 = 0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI14.GT.TINY .AND. WATER.GT.TINY) THEN !KCL - PSI14 = A14/A13*(PSI5+PSI8+2.0*PSI12+PSI13+2.0*PSI15) - - & PSI6-PSI7-2.0*PSI16-2.0*PSI17 - PSI14 = MIN (MAX (PSI14, ZERO), CHI14) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - VITA = PSI6+PSI14+PSI8+2.0*PSI16+2.0*PSI17 - GKAMA= PSI8*(2.0*PSI16+PSI6+PSI14+2.0*PSI17)-A7 - DIAK = MAX(VITA*VITA - 4.0D0*GKAMA,ZERO) - PSI7 = 0.5D0*( -VITA + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -! - IF (CHI8.GT.TINY .AND. WATER.GT.TINY) THEN ! NANO3 DISSOLUTION -! VIT = PSI5+PSI13+PSI7+2.0*PSI12+2.0*PSI15 -! GKAM = PSI7*(2.0*PSI12+PSI5+PSI13+2.0*PSI15)-A8 -! DIA = MAX(VIT*VIT - 4.0D0*GKAM,ZERO) -! PSI8 = 0.5D0*( -VIT + SQRT(DIA) ) - PSI8 = A8/A7*(PSI6+PSI7+PSI14+2.0*PSI16+2.0*PSI17)- - & PSI5-2.0*PSI12-PSI13-2.0*PSI15 - PSI8 = MAX(MIN(PSI8, CHI8), ZERO) - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -! -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! - CNH4NO3 = ZERO -! CNH4CL = ZERO - CNACL = MAX (CHI7 - PSI7, ZERO) - CNANO3 = MAX (CHI8 - PSI8, ZERO) - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = MAX (CHI14 - PSI14, ZERO) - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX(MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6),ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP6 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP6 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP6 ******************************************* -! - END FUNCTION FUNCP6 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP5 -! *** CASE P5 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, KCL, MGSO4, -! NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP5() - !EXTERNAL CALCP1A, CALCP6 - Integer :: I -! -! *** REGIME DEPENDS ON THE EXISTANCE OF WATER AND OF THE RH ************ -! - IF (W(4).GT.TINY) THEN ! NO3 EXIST, WATER POSSIBLE - SCASE = 'P5 ; SUBCASE 1' - CALL CALCP5A - SCASE = 'P5 ; SUBCASE 1' - ELSE ! NO3, CL NON EXISTANT - SCASE = 'P1 ; SUBCASE 1' - CALL CALCP1A - SCASE = 'P1 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMP5) THEN ! ONLY SOLIDS - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCP1A - SCASE = 'P5 ; SUBCASE 2' - RETURN - ELSE - SCASE = 'P5 ; SUBCASE 3' ! MDRH REGION (CaSO4, K2SO4, KNO3, KCL, MGSO4, -! NANO3, NACL, NH4NO3, NH4CL) - CALL CALCMDRH2 (RH, DRMP5, DRNH4NO3, CALCP1A, CALCP6) - SCASE = 'P5 ; SUBCASE 3' - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCP5 ****************************************** -! - END SUBROUTINE CALCP5 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP5A -! *** CASE P5A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, NANO3, NH4NO3 -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP5A() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: PSI6LO, PSI6HI, DELTA - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP5 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP5 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, NANO3, NH4NO3 -! 4. Completely dissolved: CA(NO3)2, CACL2, -! MG(NO3)2, MGCL2 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP5 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A8, A9, A13, A14 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: BB, CC, DD, VHTA, GKAMA, DELTA, BBP, CCP, DDP - Real(kind=fp) :: VITA, DIAK, DELT, PSI21, PSI22, PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = ZERO - PSI8 = ZERO - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = ZERO - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 - A14 = XK20 *(WATER/GAMA(20))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = (CHI5-PSI2)*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - & - A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 = 0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI14.GT.TINY .AND. WATER.GT.TINY) THEN !KCL - PSI14 = A14/A13*(PSI5+PSI8+2.0*PSI12+PSI13+2.0*PSI15) - - & PSI6-PSI7-2.0*PSI16-2.0*PSI17 - PSI14 = MIN (MAX (PSI14, ZERO), CHI14) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - VITA = PSI6+PSI14+PSI8+2.0*PSI16+2.0*PSI17 - GKAMA= PSI8*(2.0*PSI16+PSI6+PSI14+2.0*PSI17)-A7 - DIAK = MAX(VITA*VITA - 4.0D0*GKAMA,ZERO) - PSI7 = 0.5D0*( -VITA + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -! - IF (CHI8.GT.TINY .AND. WATER.GT.TINY) THEN ! NANO3 DISSOLUTION -! VIT = PSI5+PSI13+PSI7+2.0*PSI12+2.0*PSI15 -! GKAM = PSI7*(2.0*PSI12+PSI5+PSI13+2.0*PSI15)-A8 -! DIA = MAX(VIT*VIT - 4.0D0*GKAM,ZERO) -! PSI8 = 0.5D0*( -VIT + SQRT(DIA) ) - PSI8 = A8/A7*(PSI6+PSI7+PSI14+2.0*PSI16+2.0*PSI17)- - & PSI5-2.0*PSI12-PSI13-2.0*PSI15 - PSI8 = MAX(MIN(PSI8, CHI8), ZERO) - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -!C -!C *** CALCULATE H+ ***************************************************** -!C -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! -! CNH4NO3 = ZERO -! CNH4CL = ZERO - CNACL = MAX (CHI7 - PSI7, ZERO) - CNANO3 = MAX (CHI8 - PSI8, ZERO) - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = MAX (CHI14 - PSI14, ZERO) - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX(MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6),ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! -! *** NH4NO3(s) calculations -! - A2 = XK10 /(R*TEMP*R*TEMP) - IF (GNH3*GHNO3.GT.A2) THEN - DELT = MIN(GNH3, GHNO3) - BB = -(GNH3+GHNO3) - CC = GNH3*GHNO3-A2 - DD = BB*BB - 4.0*CC - PSI21 = 0.5D0*(-BB + SQRT(DD)) - PSI22 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI21.GT.ZERO .AND. PSI21.GT.ZERO) THEN - PSI2 = PSI21 - ELSEIF (DELT-PSI22.GT.ZERO .AND. PSI22.GT.ZERO) THEN - PSI2 = PSI22 - ELSE - PSI2 = ZERO - ENDIF - ELSE - PSI2 = ZERO - ENDIF - PSI2 = MAX(MIN(MIN(PSI2,CHI4-PSI4-PSI3),CHI5-PSI5), ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI2, TINY) - GHCL = MAX(GHNO3 - PSI2, TINY) - CNH4NO3 = PSI2 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP5 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP5 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP5 ******************************************* -! - END FUNCTION FUNCP5 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP4 -! *** CASE P4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, KCL, MGSO4, -! MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP4() - !EXTERNAL CALCP1A, CALCP5A - Integer :: I -! -! *** REGIME DEPENDS ON THE EXISTANCE OF WATER AND OF THE RH ************ -! - IF (W(4).GT.TINY) THEN ! NO3 EXIST, WATER POSSIBLE - SCASE = 'P4 ; SUBCASE 1' - CALL CALCP4A - SCASE = 'P4 ; SUBCASE 1' - ELSE ! NO3, CL NON EXISTANT - SCASE = 'P1 ; SUBCASE 1' - CALL CALCP1A - SCASE = 'P1 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMP4) THEN ! ONLY SOLIDS - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCP1A - SCASE = 'P4 ; SUBCASE 2' - RETURN - ELSE - SCASE = 'P4 ; SUBCASE 3' ! MDRH REGION (CaSO4, K2SO4, KNO3, KCL, MGSO4, -! MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL) - CALL CALCMDRH2 (RH, DRMP4, DRMGNO32, CALCP1A, CALCP5A) - SCASE = 'P4 ; SUBCASE 3' - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCP4 ****************************************** -! - END SUBROUTINE CALCP4 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP4A -! *** CASE P4A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, NANO3, NH4NO3, MG(NO3)2 -! 4. Completely dissolved: CA(NO3)2, CACL2, MGCL2 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP4A - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Real(kind=fp) :: DELTA - Real(kind=fp) :: PSI6LO, PSI6HI - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP4 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP4 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, NANO3, NH4NO3, MG(NO3)2 -! 4. Completely dissolved: CA(NO3)2, CACL2, MGCL2 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP4 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A8, A9, A13, A14 - Real(kind=fp) :: BB, CC, DD, VHTA, GKAMA, DELTA, BBP, CCP, DDP - Real(kind=fp) :: DIAK, DELT, PSI21, PSI22, PSI2LO, PSI2HI, VITA - Real(kind=fp) :: PSI31, PSI32 - Real(kind=fp) :: SMIN, OHI, HI - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = ZERO - PSI8 = ZERO - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = ZERO - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 - A14 = XK20 *(WATER/GAMA(20))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = (CHI5-PSI2)*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - & - A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 = 0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI14.GT.TINY .AND. WATER.GT.TINY) THEN !KCL - PSI14 = A14/A13*(PSI5+PSI8+2.0*PSI12+PSI13+2.0*PSI15) - - & PSI6-PSI7-2.0*PSI16-2.0*PSI17 - PSI14 = MIN (MAX (PSI14, ZERO), CHI14) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - VITA = PSI6+PSI14+PSI8+2.0*PSI16+2.0*PSI17 - GKAMA= PSI8*(2.0*PSI16+PSI6+PSI14+2.0*PSI17)-A7 - DIAK = MAX(VITA*VITA - 4.0D0*GKAMA,ZERO) - PSI7 = 0.5D0*( -VITA + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -! - IF (CHI8.GT.TINY .AND. WATER.GT.TINY) THEN ! NANO3 DISSOLUTION -! VIT = PSI5+PSI13+PSI7+2.0*PSI12+2.0*PSI15 -! GKAM = PSI7*(2.0*PSI12+PSI5+PSI13+2.0*PSI15)-A8 -! DIA = MAX(VIT*VIT - 4.0D0*GKAM,ZERO) -! PSI8 = 0.5D0*( -VIT + SQRT(DIA) ) - PSI8 = A8/A7*(PSI6+PSI7+PSI14+2.0*PSI16+2.0*PSI17)- - & PSI5-2.0*PSI12-PSI13-2.0*PSI15 - PSI8 = MAX(MIN(PSI8, CHI8), ZERO) - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! -! CNH4CL = ZERO -! CNH4NO3 = ZERO - CNACL = MAX (CHI7 - PSI7, ZERO) - CNANO3 = MAX (CHI8 - PSI8, ZERO) - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = MAX (CHI14 - PSI14, ZERO) - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX(MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6),ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! -! *** NH4NO3(s) calculations -! - A2 = XK10 /(R*TEMP*R*TEMP) - IF (GNH3*GHNO3.GT.A2) THEN - DELT = MIN(GNH3, GHNO3) - BB = -(GNH3+GHNO3) - CC = GNH3*GHNO3-A2 - DD = BB*BB - 4.0*CC - PSI21 = 0.5D0*(-BB + SQRT(DD)) - PSI22 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI21.GT.ZERO .AND. PSI21.GT.ZERO) THEN - PSI2 = PSI21 - ELSEIF (DELT-PSI22.GT.ZERO .AND. PSI22.GT.ZERO) THEN - PSI2 = PSI22 - ELSE - PSI2 = ZERO - ENDIF - ELSE - PSI2 = ZERO - ENDIF - PSI2 = MAX(MIN(MIN(PSI2,CHI4-PSI4-PSI3),CHI5-PSI5), ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI2, TINY) - GHCL = MAX(GHNO3 - PSI2, TINY) - CNH4NO3 = PSI2 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP4 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP4 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP4 ******************************************* -! - END FUNCTION FUNCP4 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP3 -! *** CASE P3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : CaSO4, CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, -! MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP3() - !EXTERNAL CALCP1A, CALCP4A - Integer :: I -! -! *** REGIME DEPENDS ON THE EXISTANCE OF WATER AND OF THE RH ************ -! - IF (W(4).GT.TINY .AND. W(5).GT.TINY) THEN ! NO3,CL EXIST, WATER POSSIBLE - SCASE = 'P3 ; SUBCASE 1' - CALL CALCP3A - SCASE = 'P3 ; SUBCASE 1' - ELSE ! NO3, CL NON EXISTANT - SCASE = 'P1 ; SUBCASE 1' - CALL CALCP1A - SCASE = 'P1 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMP3) THEN ! ONLY SOLIDS - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCP1A - SCASE = 'P3 ; SUBCASE 2' - RETURN - ELSE - SCASE = 'P3 ; SUBCASE 3' ! MDRH REGION (CaSO4, CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, -! MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL) - CALL CALCMDRH2 (RH, DRMP3, DRCANO32, CALCP1A, CALCP4A) - SCASE = 'P3 ; SUBCASE 3' - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCP3 ****************************************** -! - END SUBROUTINE CALCP3 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP3A -! *** CASE P3A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, -! NANO3, NH4NO3, MG(NO3)2, CA(NO3)2 -! 4. Completely dissolved: CACL2, MGCL2 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP3A() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: PSI6LO, PSI6HI - Real(kind=fp) :: DELTA - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, YLO, YHI, DX - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP3 (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP3 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, -! NANO3, NH4NO3, MG(NO3)2, CA(NO3)2 -! 4. Completely dissolved: CACL2, MGCL2 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP3 (X) - Real(kind=fp) :: X - Real(kind=fp) :: A2, A3, A4, A5, A6, A7, A8, A9, A13, A14 - Real(kind=fp) :: PSI21, PSI22, DELT, BB, CC, DD, PSI31, PSI32 - Real(kind=fp) :: SMIN, HI, OHI, GKAMA, DIAK, BBP, CCP, DDP - Real(kind=fp) :: VHTA, DELTA, VITA - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = ZERO - PSI8 = ZERO - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = ZERO - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 - A14 = XK20 *(WATER/GAMA(20))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = (CHI5-PSI2)*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - & - A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 = 0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI14.GT.TINY .AND. WATER.GT.TINY) THEN !KCL - PSI14 = A14/A13*(PSI5+PSI8+2.0*PSI12+PSI13+2.0*PSI15) - - & PSI6-PSI7-2.0*PSI16-2.0*PSI17 - PSI14 = MIN (MAX (PSI14, ZERO), CHI14) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - VITA = PSI6+PSI14+PSI8+2.0*PSI16+2.0*PSI17 - GKAMA= PSI8*(2.0*PSI16+PSI6+PSI14+2.0*PSI17)-A7 - DIAK = MAX(VITA*VITA - 4.0D0*GKAMA,ZERO) - PSI7 = 0.5D0*( -VITA + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -! - IF (CHI8.GT.TINY .AND. WATER.GT.TINY) THEN ! NANO3 DISSOLUTION -! VIT = PSI5+PSI13+PSI7+2.0*PSI12+2.0*PSI15 -! GKAM = PSI7*(2.0*PSI12+PSI5+PSI13+2.0*PSI15)-A8 -! DIA = MAX(VIT*VIT - 4.0D0*GKAM,ZERO) -! PSI8 = 0.5D0*( -VIT + SQRT(DIA) ) - PSI8 = A8/A7*(PSI6+PSI7+PSI14+2.0*PSI16+2.0*PSI17)- - & PSI5-2.0*PSI12-PSI13-2.0*PSI15 - PSI8 = MAX(MIN(PSI8, CHI8), ZERO) - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! -! CNH4CL = ZERO -! CNH4NO3 = ZERO - CNACL = MAX (CHI7 - PSI7, ZERO) - CNANO3 = MAX (CHI8 - PSI8, ZERO) - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = MAX (CHI14 - PSI14, ZERO) - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX(MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6), ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! -! *** NH4NO3(s) calculations -! - A2 = XK10 /(R*TEMP*R*TEMP) - IF (GNH3*GHNO3.GT.A2) THEN - DELT = MIN(GNH3, GHNO3) - BB = -(GNH3+GHNO3) - CC = GNH3*GHNO3-A2 - DD = BB*BB - 4.0*CC - PSI21 = 0.5D0*(-BB + SQRT(DD)) - PSI22 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI21.GT.ZERO .AND. PSI21.GT.ZERO) THEN - PSI2 = PSI21 - ELSEIF (DELT-PSI22.GT.ZERO .AND. PSI22.GT.ZERO) THEN - PSI2 = PSI22 - ELSE - PSI2 = ZERO - ENDIF - ELSE - PSI2 = ZERO - ENDIF - PSI2 = MAX(MIN(MIN(PSI2,CHI4-PSI4-PSI3),CHI5-PSI5),ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI2, TINY) - GHCL = MAX(GHNO3 - PSI2, TINY) - CNH4NO3 = PSI2 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP3 = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP3 = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP3 ******************************************* -! - END FUNCTION FUNCP3 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP2 -! *** CASE P2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : CaSO4, CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! THERE ARE THREE REGIMES IN THIS CASE: -! 1. CACL2(s) POSSIBLE. LIQUID & SOLID AEROSOL (SUBROUTINE CALCL2A) -! 2. CACL2(s) NOT POSSIBLE, AND RH < MDRH. SOLID AEROSOL ONLY -! 3. CACL2(s) NOT POSSIBLE, AND RH >= MDRH. SOLID & LIQUID AEROSOL -! -! REGIMES 2. AND 3. ARE CONSIDERED TO BE THE SAME AS CASES P1A, P2B -! RESPECTIVELY -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! -! - SUBROUTINE CALCP2() - !EXTERNAL CALCP1A, CALCP3A, CALCP4A, CALCP5A, CALCP6 - Integer :: I -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCP1A -! -! *** REGIME DEPENDS UPON THE POSSIBLE SOLIDS & RH ********************** -! - IF (CCACL2.GT.TINY) THEN - SCASE = 'P2 ; SUBCASE 1' - CALL CALCP2A - SCASE = 'P2 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRMP2) THEN ! ONLY SOLIDS - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCP1A - SCASE = 'P2 ; SUBCASE 2' - ELSE - IF (CMGCL2.GT. TINY) THEN - SCASE = 'P2 ; SUBCASE 3' ! MDRH (CaSO4, CA(NO3)2, K2SO4, KNO3, KCL, MGSO4, MGCL2, -! MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL) - CALL CALCMDRH2 (RH, DRMP2, DRMGCL2, CALCP1A, CALCP3A) - SCASE = 'P2 ; SUBCASE 3' - ENDIF - IF (WATER.LE.TINY .AND. RH.GE.DRMP3 .AND. RH.LT.DRMP4) THEN - SCASE = 'P2 ; SUBCASE 4' ! MDRH (CaSO4, K2SO4, KNO3, KCL, MGSO4, CANO32, -! MG(NO3)2, NANO3, NACL, NH4NO3, NH4CL) - CALL CALCMDRH2 (RH, DRMP3, DRCANO32, CALCP1A, CALCP4A) - SCASE = 'P2 ; SUBCASE 4' - ENDIF - IF (WATER.LE.TINY .AND. RH.GE.DRMP4 .AND. RH.LT.DRMP5) THEN - SCASE = 'P2 ; SUBCASE 5' ! MDRH (CaSO4, K2SO4, KNO3, KCL, MGSO4, -! MGNO32, NANO3, NACL, NH4NO3, NH4CL) - CALL CALCMDRH2 (RH, DRMP4, DRMGNO32, CALCP1A, CALCP5A) - SCASE = 'P2 ; SUBCASE 5' - ENDIF - IF (WATER.LE.TINY .AND. RH.GE.DRMP5) THEN - SCASE = 'P2 ; SUBCASE 6' ! MDRH (CaSO4, K2SO4, KNO3, KCL, MGSO4, -! NANO3, NACL, NH4NO3, NH4CL) - CALL CALCMDRH2 (RH, DRMP5, DRNH4NO3, CALCP1A, CALCP6) - SCASE = 'P2 ; SUBCASE 6' - ELSE - WATER = TINY - DO 20 I=1,NIONS - MOLAL(I) = ZERO -20 CONTINUE - CALL CALCP1A - SCASE = 'P2 ; SUBCASE 2' - ENDIF - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCP2 ****************************************** -! - END SUBROUTINE CALCP2 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP2A -! *** CASE P2A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, -! NANO3, NH4NO3, MG(NO3)2, CA(NO3)2 -! 4. Completely dissolved: CACL2 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP2A() - Real(kind=fp) :: FRCA, FRSO4, FRK, FRMG, FRNA, FRCL, FRNO3 - Real(kind=fp) :: DELTA, YLO, YHI, DX - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, PSI6LO, PSI6HI - Integer :: I -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU = .TRUE. - CHI11 = MIN (W(2), W(6)) ! CCASO4 - FRCA = MAX (W(6) - CHI11, ZERO) - FRSO4 = MAX (W(2) - CHI11, ZERO) - CHI9 = MIN (FRSO4, 0.5D0*W(7)) ! CK2SO4 - FRK = MAX (W(7) - 2.0*CHI9, ZERO) - FRSO4 = MAX (FRSO4 - CHI9, ZERO) - CHI10 = FRSO4 ! CMGSO4 - FRMG = MAX (W(8) - CHI10, ZERO) - CHI7 = MIN (W(1), W(5)) ! CNACL - FRNA = MAX (W(1) - CHI7, ZERO) - FRCL = MAX (W(5) - CHI7, ZERO) - CHI12 = MIN (FRCA, 0.5D0*W(4)) ! CCANO32 - FRCA = MAX (FRCA - CHI12, ZERO) - FRNO3 = MAX (W(4) - 2.0*CHI12, ZERO) - CHI17 = MIN (FRCA, 0.5D0*FRCL) ! CCACL2 - FRCA = MAX (FRCA - CHI17, ZERO) - FRCL = MAX (FRCL - 2.0*CHI17, ZERO) - CHI15 = MIN (FRMG, 0.5D0*FRNO3) ! CMGNO32 - FRMG = MAX (FRMG - CHI15, ZERO) - FRNO3 = MAX (FRNO3 - 2.0*CHI15, ZERO) - CHI16 = MIN (FRMG, 0.5D0*FRCL) ! CMGCL2 - FRMG = MAX (FRMG - CHI16, ZERO) - FRCL = MAX (FRCL - 2.0*CHI16, ZERO) - CHI8 = MIN (FRNA, FRNO3) ! CNANO3 - FRNA = MAX (FRNA - CHI8, ZERO) - FRNO3 = MAX (FRNO3 - CHI8, ZERO) - CHI14 = MIN (FRK, FRCL) ! CKCL - FRK = MAX (FRK - CHI14, ZERO) - FRCL = MAX (FRCL - CHI14, ZERO) - CHI13 = MIN (FRK, FRNO3) ! CKNO3 - FRK = MAX (FRK - CHI13, ZERO) - FRNO3 = MAX (FRNO3 - CHI13, ZERO) -! - CHI5 = FRNO3 ! HNO3(g) - CHI6 = FRCL ! HCL(g) - CHI4 = W(3) ! NH3(g) -! - CHI3 = ZERO ! CNH4CL - CHI1 = ZERO - CHI2 = ZERO -! - PSI6LO = TINY - PSI6HI = CHI6-TINY ! MIN(CHI6-TINY, CHI4) -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI6LO - Y1 = FUNCP2A (X1) - IF (ABS(Y1).LE.EPS .OR. CHI6.LE.TINY) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1+DX - Y2 = FUNCP2A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** NO SUBDIVISION WITH SOLUTION; IF ABS(Y2) 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CaSO4, K2SO4, KNO3, MGSO4, KCL, NH4CL, NACL, -! NANO3, NH4NO3, MG(NO3)2, CA(NO3)2, MGCL2 -! 4. Completely dissolved: CACL2 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCP2A (X) - Real(kind=fp) :: X - Real(kind=fp) :: VHTA, DELTA, A4, A5, A6, A9, A13, A14, A7, A8 - Real(kind=fp) :: A2, A3, SMIN, OHI, HI, BBP, CCP, DDP, VITA - Real(kind=fp) :: BB, CC, DD, DELT, PSI21, PSI22, PSI31, PSI32 - Real(kind=fp) :: GKAMA, DIAK - Integer :: I, ISLV -! - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = X - PSI1 = ZERO - PSI2 = ZERO - PSI3 = ZERO - PSI7 = ZERO - PSI8 = ZERO - PSI9 = ZERO - PSI10 = CHI10 - PSI11 = ZERO - PSI12 = CHI12 - PSI13 = ZERO - PSI14 = ZERO - PSI15 = CHI15 - PSI16 = CHI16 - PSI17 = CHI17 - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = (XK2/XKW)*R*TEMP*(GAMA(10)/GAMA(5))**2.0 - A5 = XK4 *R*TEMP*(WATER/GAMA(10))**2.0 - A6 = XK3 *R*TEMP*(WATER/GAMA(11))**2.0 - A9 = XK17 *(WATER/GAMA(17))**3.0 - A13 = XK19 *(WATER/GAMA(19))**2.0 - A14 = XK20 *(WATER/GAMA(20))**2.0 - A7 = XK8 *(WATER/GAMA(1))**2.0 - A8 = XK9 *(WATER/GAMA(3))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = (CHI5-PSI2)*(PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17) - & - A6/A5*(PSI8+2.0*PSI12+PSI13+2.0*PSI15)*(CHI6-PSI6-PSI3) - PSI5 = PSI5/(A6/A5*(CHI6-PSI6-PSI3) + PSI6 + PSI7 + PSI14 + - & 2.0*PSI16 + 2.0*PSI17) - PSI5 = MIN (MAX (PSI5, TINY) , CHI5) -! - IF (W(3).GT.TINY .AND. WATER.GT.TINY) THEN ! First try 3rd order soln - BB =-(CHI4 + PSI6 + PSI5 + 1.d0/A4) - CC = CHI4*(PSI5+PSI6) - DD = MAX(BB*BB-4.d0*CC,ZERO) - PSI4 =0.5d0*(-BB - SQRT(DD)) - PSI4 = MIN(MAX(PSI4,ZERO),CHI4) - ELSE - PSI4 = TINY - ENDIF -! - IF (CHI13.GT.TINY .AND. WATER.GT.TINY) THEN !KNO3 - VHTA = PSI5+PSI8+2.0*PSI12+2.0*PSI15+PSI14+2.0*PSI9 - GKAMA = (PSI5+PSI8+2.0*PSI12+2.0*PSI15)*(2.0*PSI9+PSI14)-A13 - DELTA = MAX(VHTA*VHTA-4.d0*GKAMA,ZERO) - PSI13 = 0.5d0*(-VHTA + SQRT(DELTA)) - PSI13 = MIN(MAX(PSI13,ZERO),CHI13) - ENDIF -! - IF (CHI14.GT.TINY .AND. WATER.GT.TINY) THEN !KCL - PSI14 = A14/A13*(PSI5+PSI8+2.0*PSI12+PSI13+2.0*PSI15) - - & PSI6-PSI7-2.0*PSI16-2.0*PSI17 - PSI14 = MIN (MAX (PSI14, ZERO), CHI14) - ENDIF -! - IF (CHI9.GT.TINY .AND. WATER.GT.TINY) THEN !K2SO4 - BBP = PSI10+PSI13+PSI14 - CCP = (PSI13+PSI14)*(0.25D0*(PSI13+PSI14)+PSI10) - DDP = 0.25D0*(PSI13+PSI14)**2.0*PSI10-A9/4.0 - CALL POLY3 (BBP, CCP, DDP, PSI9, ISLV) - IF (ISLV.EQ.0) THEN - PSI9 = MIN (MAX(PSI9,ZERO) , CHI9) - ELSE - PSI9 = ZERO - ENDIF - ENDIF -! - IF (CHI7.GT.TINY .AND. WATER.GT.TINY) THEN ! NACL DISSOLUTION - VITA = PSI6+PSI14+PSI8+2.0*PSI16+2.0*PSI17 - GKAMA= PSI8*(2.0*PSI16+PSI6+PSI14+2.0*PSI17)-A7 - DIAK = MAX(VITA*VITA - 4.0D0*GKAMA,ZERO) - PSI7 = 0.5D0*( -VITA + SQRT(DIAK) ) - PSI7 = MAX(MIN(PSI7, CHI7), ZERO) - ENDIF -! - IF (CHI8.GT.TINY .AND. WATER.GT.TINY) THEN ! NANO3 DISSOLUTION -! VIT = PSI5+PSI13+PSI7+2.0*PSI12+2.0*PSI15 -! GKAM = PSI7*(2.0*PSI12+PSI5+PSI13+2.0*PSI15)-A8 -! DIA = MAX(VIT*VIT - 4.0D0*GKAM,ZERO) -! PSI8 = 0.5D0*( -VIT + SQRT(DIA) ) - PSI8 = A8/A7*(PSI6+PSI7+PSI14+2.0*PSI16+2.0*PSI17)- - & PSI5-2.0*PSI12-PSI13-2.0*PSI15 - PSI8 = MAX(MIN(PSI8, CHI8), ZERO) - ENDIF -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL (2) = PSI8 + PSI7 ! NAI - MOLAL (3) = PSI4 ! NH4I - MOLAL (4) = PSI6 + PSI7 + PSI14 + 2.0*PSI16 + 2.0*PSI17 ! CLI - MOLAL (5) = PSI9 + PSI10 ! SO4I - MOLAL (6) = ZERO ! HSO4I - MOLAL (7) = PSI5 + PSI8 + 2.0*PSI12 + PSI13 + 2.0*PSI15 ! NO3I - MOLAL (8) = PSI11 + PSI12 + PSI17 ! CAI - MOLAL (9) = 2.0*PSI9 + PSI13 + PSI14 ! KI - MOLAL (10)= PSI10 + PSI15 + PSI16 ! MGI -! -! *** CALCULATE H+ ***************************************************** -! -! REST = 2.0*W(2) + W(4) + W(5) -!C -! DELT1 = 0.0d0 -! DELT2 = 0.0d0 -! IF (W(1)+W(6)+W(7)+W(8).GT.REST) THEN -!C -!C *** CALCULATE EQUILIBRIUM CONSTANTS ********************************** -!C -! ALFA1 = XK26*RH*(WATER/1.0) ! CO2(aq) + H2O -! ALFA2 = XK27*(WATER/1.0) ! HCO3- -!C -! X = W(1)+W(6)+W(7)+W(8) - REST ! EXCESS OF CRUSTALS EQUALS CO2(aq) -!C -! DIAK = SQRT( (ALFA1)**2.0 + 4.0D0*ALFA1*X) -! DELT1 = 0.5*(-ALFA1 + DIAK) -! DELT1 = MIN ( MAX (DELT1, ZERO), X) -! DELT2 = ALFA2 -! DELT2 = MIN ( DELT2, DELT1) -! MOLAL(1) = DELT1 + DELT2 ! H+ -! ELSE -!C -!C *** NO EXCESS OF CRUSTALS CALCULATE H+ ******************************* -!C - SMIN = 2.d0*MOLAL(5)+MOLAL(7)+MOLAL(4)-MOLAL(2)-MOLAL(3) - & - MOLAL(9) - 2.0*MOLAL(10) - 2.0*MOLAL(8) - CALL CALCPH (SMIN, HI, OHI) - MOLAL (1) = HI -! ENDIF -! - GNH3 = MAX(CHI4 - PSI4, TINY) - GHNO3 = MAX(CHI5 - PSI5, TINY) - GHCL = MAX(CHI6 - PSI6, TINY) -! -! CNH4CL = ZERO -! CNH4NO3 = ZERO - CNACL = MAX (CHI7 - PSI7, ZERO) - CNANO3 = MAX (CHI8 - PSI8, ZERO) - CK2SO4 = MAX (CHI9 - PSI9, ZERO) - CMGSO4 = ZERO - CCASO4 = CHI11 - CCANO32 = ZERO - CKNO3 = MAX (CHI13 - PSI13, ZERO) - CKCL = MAX (CHI14 - PSI14, ZERO) - CMGNO32 = ZERO - CMGCL2 = ZERO - CCACL2 = ZERO -! -! *** NH4Cl(s) calculations -! - A3 = XK6 /(R*TEMP*R*TEMP) - IF (GNH3*GHCL.GT.A3) THEN - DELT = MIN(GNH3, GHCL) - BB = -(GNH3+GHCL) - CC = GNH3*GHCL-A3 - DD = BB*BB - 4.0*CC - PSI31 = 0.5D0*(-BB + SQRT(DD)) - PSI32 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI31.GT.ZERO .AND. PSI31.GT.ZERO) THEN - PSI3 = PSI31 - ELSEIF (DELT-PSI32.GT.ZERO .AND. PSI32.GT.ZERO) THEN - PSI3 = PSI32 - ELSE - PSI3 = ZERO - ENDIF - ELSE - PSI3 = ZERO - ENDIF - PSI3 = MAX(MIN(MIN(PSI3,CHI4-PSI4),CHI6-PSI6),ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX(GNH3 - PSI3, TINY) - GHCL = MAX(GHCL - PSI3, TINY) - CNH4CL = PSI3 -! -! *** NH4NO3(s) calculations -! - A2 = XK10 /(R*TEMP*R*TEMP) - IF (GNH3*GHNO3.GT.A2) THEN - DELT = MIN(GNH3, GHNO3) - BB = -(GNH3+GHNO3) - CC = GNH3*GHNO3-A2 - DD = BB*BB - 4.0*CC - PSI21 = 0.5D0*(-BB + SQRT(DD)) - PSI22 = 0.5D0*(-BB - SQRT(DD)) - IF (DELT-PSI21.GT.ZERO .AND. PSI21.GT.ZERO) THEN - PSI2 = PSI21 - ELSEIF (DELT-PSI22.GT.ZERO .AND. PSI22.GT.ZERO) THEN - PSI2 = PSI22 - ELSE - PSI2 = ZERO - ENDIF - ELSE - PSI2 = ZERO - ENDIF - PSI2 = MAX(MIN(MIN(PSI2,CHI4-PSI4-PSI3),CHI5-PSI5),ZERO) -! -! *** CALCULATE GAS / SOLID SPECIES (LIQUID IN MOLAL ALREADY) ********* -! - GNH3 = MAX (GNH3 - PSI2, TINY) - GHCL = MAX (GHNO3 - PSI2, TINY) - CNH4NO3 = PSI2 -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -!20 FUNCP2A = MOLAL(3)*MOLAL(4)/GHCL/GNH3/A6/A4 - ONE -20 FUNCP2A = MOLAL(1)*MOLAL(4)/GHCL/A6 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCP2A ******************************************* -! - END FUNCTION FUNCP2A - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP1 -! *** CASE P1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : CaSO4, CA(NO3)2, CACL2, K2SO4, KNO3, KCL, MGSO4, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON RELATIVE HUMIDITY: -! 1. WHEN RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! 2. WHEN RH < MDRH ; ONLY SOLID PHASE POSSIBLE (SUBROUTINE CALCP1A) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCP1() - !EXTERNAL CALCP1A, CALCP2A -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRMP1) THEN - SCASE = 'P1 ; SUBCASE 1' - CALL CALCP1A ! SOLID PHASE ONLY POSSIBLE - SCASE = 'P1 ; SUBCASE 1' - ELSE - SCASE = 'P1 ; SUBCASE 2' ! LIQUID & SOLID PHASE POSSIBLE - CALL CALCMDRH2 (RH, DRMP1, DRCACL2, CALCP1A, CALCP2A) - SCASE = 'P1 ; SUBCASE 2' - ENDIF -! -! - RETURN -! -! *** END OF SUBROUTINE CALCP1 ****************************************** -! - END SUBROUTINE CALCP1 -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCP1A -! *** CASE P1A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE POOR (SULRAT > 2.0) ; Rcr+Na >= 2.0 ; Rcr > 2) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : CaSO4, CA(NO3)2, CACL2, K2SO4, KNO3, KCL, MGSO4, -! MG(NO3)2, MGCL2, NANO3, NACL, NH4NO3, NH4CL -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= - - SUBROUTINE CALCP1A() - Real(kind=fp) :: LAMDA, LAMDA1, LAMDA2, KAPA, KAPA1, KAPA2 - Real(kind=fp) :: CAFR, SO4FR, FRK, FRMG, NAFR, CLFR, NO3FR - Real(kind=fp) :: ALF, BET, GAM, RTSQ, A1, A2, THETA1, THETA2 - Real(kind=fp) :: BB, CC - Real(kind=fp) :: DD, SQDD, DD1, SQDD1, DD2, SQDD2 -! -! *** CALCULATE NON VOLATILE SOLIDS *********************************** -! - CCASO4 = MIN (W(2), W(6)) !SOLID CASO4 - CAFR = MAX (W(6) - CCASO4, ZERO) - SO4FR = MAX (W(2) - CCASO4, ZERO) - CK2SO4 = MIN (SO4FR, 0.5D0*W(7)) !SOLID K2SO4 - FRK = MAX (W(7) - 2.0*CK2SO4, ZERO) - SO4FR = MAX (SO4FR - CK2SO4, ZERO) - CMGSO4 = SO4FR !SOLID MGSO4 - FRMG = MAX (W(8) - CMGSO4, ZERO) - CNACL = MIN (W(1), W(5)) !SOLID NACL - NAFR = MAX (W(1) - CNACL, ZERO) - CLFR = MAX (W(5) - CNACL, ZERO) - CCANO32 = MIN (CAFR, 0.5D0*W(4)) !SOLID CA(NO3)2 - CAFR = MAX (CAFR - CCANO32, ZERO) - NO3FR = MAX (W(4) - 2.0*CCANO32, ZERO) - CCACL2 = MIN (CAFR, 0.5D0*CLFR) !SOLID CACL2 - CAFR = MAX (CAFR - CCACL2, ZERO) - CLFR = MAX (CLFR - 2.0*CCACL2, ZERO) - CMGNO32 = MIN (FRMG, 0.5D0*NO3FR) !SOLID MG(NO3)2 - FRMG = MAX (FRMG - CMGNO32, ZERO) - NO3FR = MAX (NO3FR - 2.0*CMGNO32, ZERO) - CMGCL2 = MIN (FRMG, 0.5D0*CLFR) !SOLID MGCL2 - FRMG = MAX (FRMG - CMGCL2, ZERO) - CLFR = MAX (CLFR - 2.0*CMGCL2, ZERO) - CNANO3 = MIN (NAFR, NO3FR) !SOLID NANO3 - NAFR = MAX (NAFR - CNANO3, ZERO) - NO3FR = MAX (NO3FR - CNANO3, ZERO) - CKCL = MIN (FRK, CLFR) !SOLID KCL - FRK = MAX (FRK - CKCL, ZERO) - CLFR = MAX (CLFR - CKCL, ZERO) - CKNO3 = MIN (FRK, NO3FR) !SOLID KNO3 - FRK = MAX (FRK - CKNO3, ZERO) - NO3FR = MAX (NO3FR - CKNO3, ZERO) -! -! *** CALCULATE VOLATILE SPECIES ************************************** -! - ALF = W(3) ! FREE NH3 - BET = CLFR ! FREE CL - GAM = NO3FR ! FREE NO3 -! - RTSQ = R*TEMP*R*TEMP - A1 = XK6/RTSQ - A2 = XK10/RTSQ -! - THETA1 = GAM - BET*(A2/A1) - THETA2 = A2/A1 -! -! QUADRATIC EQUATION SOLUTION -! - BB = (THETA1-ALF-BET*(ONE+THETA2))/(ONE+THETA2) - CC = (ALF*BET-A1-BET*THETA1)/(ONE+THETA2) - DD = BB*BB - 4.0D0*CC - IF (DD.LT.ZERO) GOTO 100 ! Solve each reaction seperately -! -! TWO ROOTS FOR KAPA, CHECK AND SEE IF ANY VALID -! - SQDD = SQRT(DD) - KAPA1 = 0.5D0*(-BB+SQDD) - KAPA2 = 0.5D0*(-BB-SQDD) - LAMDA1 = THETA1 + THETA2*KAPA1 - LAMDA2 = THETA1 + THETA2*KAPA2 -! - IF (KAPA1.GE.ZERO .AND. LAMDA1.GE.ZERO) THEN - IF (ALF-KAPA1-LAMDA1.GE.ZERO .AND. - & BET-KAPA1.GE.ZERO .AND. GAM-LAMDA1.GE.ZERO) THEN - KAPA = KAPA1 - LAMDA= LAMDA1 - GOTO 200 - ENDIF - ENDIF -! - IF (KAPA2.GE.ZERO .AND. LAMDA2.GE.ZERO) THEN - IF (ALF-KAPA2-LAMDA2.GE.ZERO .AND. - & BET-KAPA2.GE.ZERO .AND. GAM-LAMDA2.GE.ZERO) THEN - KAPA = KAPA2 - LAMDA= LAMDA2 - GOTO 200 - ENDIF - ENDIF -! -! SEPERATE SOLUTION OF NH4CL & NH4NO3 EQUILIBRIA -! -100 KAPA = ZERO - LAMDA = ZERO - DD1 = (ALF+BET)*(ALF+BET) - 4.0D0*(ALF*BET-A1) - DD2 = (ALF+GAM)*(ALF+GAM) - 4.0D0*(ALF*GAM-A2) -! -! NH4CL EQUILIBRIUM -! - IF (DD1.GE.ZERO) THEN - SQDD1 = SQRT(DD1) - KAPA1 = 0.5D0*(ALF+BET + SQDD1) - KAPA2 = 0.5D0*(ALF+BET - SQDD1) -! - IF (KAPA1.GE.ZERO .AND. KAPA1.LE.MIN(ALF,BET)) THEN - KAPA = KAPA1 - ELSE IF (KAPA2.GE.ZERO .AND. KAPA2.LE.MIN(ALF,BET)) THEN - KAPA = KAPA2 - ELSE - KAPA = ZERO - ENDIF - ENDIF -! -! NH4NO3 EQUILIBRIUM -! - IF (DD2.GE.ZERO) THEN - SQDD2 = SQRT(DD2) - LAMDA1= 0.5D0*(ALF+GAM + SQDD2) - LAMDA2= 0.5D0*(ALF+GAM - SQDD2) -! - IF (LAMDA1.GE.ZERO .AND. LAMDA1.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA1 - ELSE IF (LAMDA2.GE.ZERO .AND. LAMDA2.LE.MIN(ALF,GAM)) THEN - LAMDA = LAMDA2 - ELSE - LAMDA = ZERO - ENDIF - ENDIF -! -! IF BOTH KAPA, LAMDA ARE > 0, THEN APPLY EXISTANCE CRITERION -! - IF (KAPA.GT.ZERO .AND. LAMDA.GT.ZERO) THEN - IF (BET .LT. LAMDA/THETA1) THEN - KAPA = ZERO - ELSE - LAMDA= ZERO - ENDIF - ENDIF -! -! *** CALCULATE COMPOSITION OF VOLATILE SPECIES *********************** -! -200 CONTINUE - CNH4NO3 = LAMDA - CNH4CL = KAPA -! - GNH3 = ALF - KAPA - LAMDA - GHNO3 = GAM - LAMDA - GHCL = BET - KAPA -! - RETURN -! -! *** END OF SUBROUTINE CALCP1A ***************************************** -! - END SUBROUTINE CALCP1A - -! -!====================================================================== -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCL9 -! *** CASE L9 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : CASO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC, (NH4)2SO4, KHSO4, MGSO4, NA2SO4, K2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL9() - Real(kind=fp) :: BB, CC, DD, LAMDA, A9 - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCL1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCL1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 - CHI6 = CK2SO4 - CHI7 = CMGSO4 - CHI8 = CKHSO4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = CLC - PSI3 = CNAHSO4 - PSI4 = CNA2SO4 - PSI5 = CNH42S4 - PSI6 = CK2SO4 - PSI7 = CMGSO4 - PSI8 = CKHSO4 -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A9 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2. -! -! CALCULATE DISSOCIATION QUANTITIES -! - BB = PSI7 + PSI6 + PSI5 + PSI4 + PSI2 + A9 ! LAMDA - CC = -A9*(PSI8 + PSI1 + PSI2 + PSI3) - DD = MAX(BB*BB - 4.0*CC, ZERO) - LAMDA= 0.5D0*(-BB + SQRT(DD)) - LAMDA= MIN(MAX (LAMDA, TINY), PSI8+PSI3+PSI2+PSI1) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL(1) = LAMDA ! HI - MOLAL(2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL(3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL(5) = PSI2 + PSI4 + PSI5 + PSI6 + PSI7 + LAMDA ! SO4I - MOLAL(6) = PSI2 + PSI3 + PSI1 + PSI8 - LAMDA ! HSO4I - MOLAL(9) = PSI8 + 2.0D0*PSI6 ! KI - MOLAL(10)= PSI7 ! MGI -! - CLC = ZERO - CNAHSO4 = ZERO - CNA2SO4 = ZERO - CNH42S4 = ZERO - CNH4HS4 = ZERO - CK2SO4 = ZERO - CMGSO4 = ZERO - CKHSO4 = ZERO -! - CALL CALCMR ! Water content - -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -20 RETURN -! -! *** END OF SUBROUTINE CALCL9 ***************************************** -! - END SUBROUTINE CALCL9 - - -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE CALCL8 -! *** CASE L8 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC, (NH4)2SO4, KHSO4, MGSO4, NA2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL8() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, PSI6LO, PSI6HI - Real(kind=fp) :: YLO, YHI, DX - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCL1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCL1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 - CHI6 = CK2SO4 - CHI7 = CMGSO4 - CHI8 = CKHSO4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = CLC - PSI3 = CNAHSO4 - PSI4 = CNA2SO4 - PSI5 = CNH42S4 - PSI6 = ZERO - PSI7 = CMGSO4 - PSI8 = CKHSO4 -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI6LO = ZERO ! Low limit - PSI6HI = CHI6 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - IF (CHI6.LE.TINY) THEN - Y1 = FUNCL8 (ZERO) - GOTO 50 - ENDIF -! - X1 = PSI6HI - Y1 = FUNCL8 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH K2SO4 ********* -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI6HI-PSI6LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - Y2 = FUNCL8 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH K2SO4 -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL8 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCL8') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL8 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCL8') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL8 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCL8 ***************************************** -! - END SUBROUTINE CALCL8 -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** FUNCTION FUNCL8 -! *** CASE L8 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC, (NH4)2SO4, KHSO4, MGSO4, NA2SO4 -! -! SOLUTION IS SAVED IN COMMON BLOCK /CASE/ -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCL8 (P6) - Real(kind=fp) :: P6 - Real(kind=fp) :: A6, A9, BB, CC, DD, LAMDA - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI6 = P6 -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A9 = XK1*(WATER)*(GAMA(8)**2.0)/(GAMA(7)**3.0) -! -! CALCULATE DISSOCIATION QUANTITIES -! - BB = PSI7 + PSI6 + PSI5 + PSI4 + PSI2 + A9 ! LAMDA - CC = -A9*(PSI8 + PSI1 + PSI2 + PSI3) - DD = BB*BB - 4.0*CC - LAMDA= 0.5D0*(-BB + SQRT(DD)) - LAMDA= MIN(MAX (LAMDA, TINY), PSI8+PSI3+PSI2+PSI1) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL(1) = LAMDA ! HI - MOLAL(2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL(3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL(5) = PSI2 + PSI4 + PSI5 + PSI6 + PSI7 + LAMDA ! SO4I - MOLAL(6) = MAX(PSI2 + PSI3 + PSI1 + PSI8 - LAMDA, TINY) ! HSO4I - MOLAL(9) = PSI8 + 2.0*PSI6 ! KI - MOLAL(10)= PSI7 ! MGI -! - CLC = ZERO - CNAHSO4 = ZERO - CNA2SO4 = ZERO - CNH42S4 = ZERO - CNH4HS4 = ZERO - CK2SO4 = MAX(CHI6 - PSI6, ZERO) - CMGSO4 = ZERO - CKHSO4 = ZERO - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A6 = XK17*(WATER/GAMA(17))**3.0 - FUNCL8 = MOLAL(9)*MOLAL(9)*MOLAL(5)/A6 - ONE - RETURN -! -! *** END OF FUNCTION FUNCL8 **************************************** -! - END FUNCTION FUNCL8 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL7 -! *** CASE L7 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, NA2SO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC, (NH4)2SO4, KHSO4, MGSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL7() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, PSI4LO, PSI4HI - Real(kind=fp) :: YLO, YHI, DX - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCL1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCL1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 - CHI6 = CK2SO4 - CHI7 = CMGSO4 - CHI8 = CKHSO4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = CLC - PSI3 = CNAHSO4 - PSI4 = ZERO - PSI5 = CNH42S4 - PSI6 = ZERO - PSI7 = CMGSO4 - PSI8 = CKHSO4 -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI4LO = ZERO ! Low limit - PSI4HI = CHI4 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - IF (CHI4.LE.TINY) THEN - Y1 = FUNCL7 (ZERO) - GOTO 50 - ENDIF -! - X1 = PSI4HI - Y1 = FUNCL7 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH K2SO4 ********* -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - Y2 = FUNCL7 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH K2SO4 -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL7 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCL7') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL7 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCL7') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL7 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCL7 ***************************************** -! - END SUBROUTINE CALCL7 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** FUNCTION FUNCL7 -! *** CASE L7 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, NA2SO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC, (NH4)2SO4, KHSO4, MGSO4 -! -! SOLUTION IS SAVED IN COMMON BLOCK /CASE/ -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCL7 (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: A4, A6, A9 - Real(kind=fp) :: AA, BB, CC, DD, LAMDA - Integer :: I, ISLV - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI4 = P4 -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = XK5 *(WATER/GAMA(2))**3.0 - A6 = XK17*(WATER/GAMA(17))**3.0 - A9 = XK1*(WATER)*(GAMA(8)**2.0)/(GAMA(7)**3.0) -! -! CALCULATE DISSOCIATION QUANTITIES -! -! PSI6 = 0.5*(SQRT(A6/A4)*(2.0*PSI4+PSI3)-PSI8) ! PSI6 -! PSI6 = MIN (MAX (PSI6, ZERO), CHI6) -! - IF (CHI6.GT.TINY .AND. WATER.GT.TINY) THEN - AA = PSI5+PSI4+PSI2+PSI7+PSI8+LAMDA - BB = PSI8*(PSI5+PSI4+PSI2+PSI7+0.25D0*PSI8+LAMDA) - CC = 0.25D0*(PSI8*PSI8*(PSI5+PSI4+PSI2+PSI7+LAMDA)-A6) - CALL POLY3 (AA, BB, CC, PSI6, ISLV) - IF (ISLV.EQ.0) THEN - PSI6 = MIN (PSI6, CHI6) - ELSE - PSI6 = ZERO - ENDIF - ENDIF -! - BB = PSI7 + PSI6 + PSI5 + PSI4 + PSI2 + A9 ! LAMDA - CC = -A9*(PSI8 + PSI1 + PSI2 + PSI3) - DD = BB*BB - 4.0*CC - LAMDA= 0.5D0*(-BB + SQRT(DD)) - LAMDA= MIN(MAX (LAMDA, TINY), PSI8+PSI3+PSI2+PSI1) -! -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL(1) = LAMDA ! HI - MOLAL(2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL(3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL(5) = PSI2 + PSI4 + PSI5 + PSI6 + PSI7 + LAMDA ! SO4I - MOLAL(6) = MAX(PSI2 + PSI3 + PSI1 + PSI8 - LAMDA, TINY) ! HSO4I - MOLAL(9) = PSI8 + 2.0*PSI6 ! KI - MOLAL(10)= PSI7 ! MGI -! - CLC = ZERO - CNAHSO4 = ZERO - CNA2SO4 = MAX(CHI4 - PSI4, ZERO) - CNH42S4 = ZERO - CNH4HS4 = ZERO - CK2SO4 = MAX(CHI6 - PSI6, ZERO) - CMGSO4 = ZERO - CKHSO4 = ZERO - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A4 = XK5 *(WATER/GAMA(2))**3.0 - FUNCL7 = MOLAL(5)*MOLAL(2)*MOLAL(2)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCL7 **************************************** -! - END FUNCTION FUNCL7 -! -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL6 -! *** CASE L6 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, NA2SO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC, (NH4)2SO4, KHSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL6() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, PSI4LO, PSI4HI - Real(kind=fp) :: YLO, YHI, DX - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCL1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCL1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 - CHI6 = CK2SO4 - CHI7 = CMGSO4 - CHI8 = CKHSO4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = CLC - PSI3 = CNAHSO4 - PSI4 = ZERO - PSI5 = CNH42S4 - PSI6 = ZERO - PSI7 = ZERO - PSI8 = CKHSO4 -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI4LO = ZERO ! Low limit - PSI4HI = CHI4 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - IF (CHI4.LE.TINY) THEN - Y1 = FUNCL6 (ZERO) - GOTO 50 - ENDIF -! - X1 = PSI4HI - Y1 = FUNCL6 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH K2SO4 ********* -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - Y2 = FUNCL6 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH K2SO4 -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL6 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCL6') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL6 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCL6') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL6 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCL6 ***************************************** -! - END SUBROUTINE CALCL6 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** FUNCTION FUNCL6 -! *** CASE L6 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, NA2SO4 -! -! SOLUTION IS SAVED IN COMMON BLOCK /CASE/ -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCL6 (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: A4, A6, A9 - Real(kind=fp) :: AA, BB, CC, DD, LAMDA - Integer :: I, ISLV - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI4 = P4 -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = XK5*(WATER/GAMA(2))**3.0 - A6 = XK17*(WATER/GAMA(17))**3.0 - A9 = XK1*(WATER)*(GAMA(8)**2.0)/(GAMA(7)**3.0) -! -! CALCULATE DISSOCIATION QUANTITIES -! -! PSI6 = 0.5*(SQRT(A6/A4)*(2.0*PSI4+PSI3)-PSI8) ! PSI6 -! PSI6 = MIN (MAX (PSI6, ZERO), CHI6) -! - IF (CHI6.GT.TINY .AND. WATER.GT.TINY) THEN - AA = PSI5+PSI4+PSI2+PSI7+PSI8+LAMDA - BB = PSI8*(PSI5+PSI4+PSI2+PSI7+0.25D0*PSI8+LAMDA) - CC = 0.25D0*(PSI8*PSI8*(PSI5+PSI4+PSI2+PSI7+LAMDA)-A6) - CALL POLY3 (AA, BB, CC, PSI6, ISLV) - IF (ISLV.EQ.0) THEN - PSI6 = MIN (PSI6, CHI6) - ELSE - PSI6 = ZERO - ENDIF - ENDIF -! - PSI7 = CHI7 -! - BB = PSI7 + PSI6 + PSI5 + PSI4 + PSI2 + A9 ! LAMDA - CC = -A9*(PSI8 + PSI1 + PSI2 + PSI3) - DD = BB*BB - 4.0*CC - LAMDA= 0.5D0*(-BB + SQRT(DD)) - LAMDA= MIN(MAX (LAMDA, TINY), PSI8+PSI3+PSI2+PSI1) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL(1) = LAMDA ! HI - MOLAL(2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL(3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL(5) = PSI2 + PSI4 + PSI5 + PSI6 + PSI7 + LAMDA ! SO4I - MOLAL(6) = MAX(PSI2 + PSI3 + PSI1 + PSI8 - LAMDA, TINY) ! HSO4I - MOLAL(9) = PSI8 + 2.0*PSI6 ! KI - MOLAL(10)= PSI7 ! MGI -! - CLC = ZERO - CNAHSO4 = ZERO - CNA2SO4 = MAX(CHI4 - PSI4, ZERO) - CNH42S4 = ZERO - CNH4HS4 = ZERO - CK2SO4 = MAX(CHI6 - PSI6, ZERO) - CMGSO4 = ZERO - CKHSO4 = ZERO - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A4 = XK5 *(WATER/GAMA(2))**3.0 - FUNCL6 = MOLAL(5)*MOLAL(2)*MOLAL(2)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCL6 **************************************** -! - END FUNCTION FUNCL6 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL5 -! *** CASE L5 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, NA2SO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC, (NH4)2SO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL5() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, PSI4LO, PSI4HI - Real(kind=fp) :: YLO, YHI, DX - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCL1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCL1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 - CHI6 = CK2SO4 - CHI7 = CMGSO4 - CHI8 = CKHSO4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = CLC - PSI3 = CNAHSO4 - PSI4 = ZERO - PSI5 = CNH42S4 - PSI6 = ZERO - PSI7 = ZERO - PSI8 = ZERO -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI4LO = ZERO ! Low limit - PSI4HI = CHI4 ! High limit - -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - IF (CHI4.LE.TINY) THEN - Y1 = FUNCL5 (ZERO) - GOTO 50 - ENDIF -! - X1 = PSI4HI - Y1 = FUNCL5 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NA2SO4 ********* -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = MAX(X1-DX, PSI4LO) - Y2 = FUNCL5 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NA2SO4 -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL5 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCL5') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL5 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCL5') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL5 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCL5 ***************************************** -! - END SUBROUTINE CALCL5 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** FUNCTION FUNCL5 -! *** CASE L5 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, NA2SO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC, (NH4)2SO4 -! -! SOLUTION IS SAVED IN COMMON BLOCK /CASE/ -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCL5 (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: A4, A6, A8, A9 - Real(kind=fp) :: BITA, CAMA, DELT, AA, BB, CC, DD, LAMDA - Integer :: I, ISLV - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI4 = P4 -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = XK5*(WATER/GAMA(2))**3.0 - A6 = XK17*(WATER/GAMA(17))**3.0 - A8 = XK18*(WATER/GAMA(18))**2.0 - A9 = XK1*(WATER)*(GAMA(8)**2.0)/(GAMA(7)**3.0) -! -! CALCULATE DISSOCIATION QUANTITIES -! -! PSI6 = 0.5*(SQRT(A6/A4)*(2.0*PSI4+PSI3)-PSI8) ! PSI6 -! PSI6 = MIN (MAX (PSI6, ZERO), CHI6) -! - IF (CHI6.GT.TINY .AND. WATER.GT.TINY) THEN - AA = PSI5+PSI4+PSI2+PSI7+PSI8+LAMDA - BB = PSI8*(PSI5+PSI4+PSI2+PSI7+0.25D0*PSI8+LAMDA) - CC = 0.25D0*(PSI8*PSI8*(PSI5+PSI4+PSI2+PSI7+LAMDA)-A6) - CALL POLY3 (AA, BB, CC, PSI6, ISLV) - IF (ISLV.EQ.0) THEN - PSI6 = MIN (PSI6, CHI6) - ELSE - PSI6 = ZERO - ENDIF - ENDIF -! - PSI7 = CHI7 -! - BB = PSI7 + PSI6 + PSI5 + PSI4 + PSI2 + A9 ! LAMDA - CC = -A9*(PSI8 + PSI1 + PSI2 + PSI3) - DD = MAX(BB*BB - 4.0*CC, ZERO) - LAMDA= 0.5D0*(-BB + SQRT(DD)) - LAMDA= MIN(MAX (LAMDA, TINY), PSI8+PSI3+PSI2+PSI1) -! - BITA = PSI3 + PSI2 + PSI1 + 2.0*PSI6 - LAMDA - CAMA = 2.0*PSI6*(PSI3 + PSI2 + PSI1 - LAMDA) - A8 - DELT = MAX(BITA*BITA - 4.0*CAMA, ZERO) - PSI8 = 0.5D0*(-BITA + SQRT(DELT)) - PSI8 = MIN(MAX (PSI8, ZERO), CHI8) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL(1) = LAMDA ! HI - MOLAL(2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL(3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL(5) = PSI2 + PSI4 + PSI5 + PSI6 + PSI7 + LAMDA ! SO4I - MOLAL(6) = MAX(PSI2 + PSI3 + PSI1 + PSI8 - LAMDA, TINY) ! HSO4I - MOLAL(9) = PSI8 + 2.0D0*PSI6 ! KI - MOLAL(10)= PSI7 ! MGI -! - CLC = ZERO - CNAHSO4 = ZERO - CNA2SO4 = MAX(CHI4 - PSI4, ZERO) - CNH42S4 = ZERO - CNH4HS4 = ZERO - CK2SO4 = MAX(CHI6 - PSI6, ZERO) - CMGSO4 = ZERO - CKHSO4 = MAX(CHI8 - PSI8, ZERO) -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A4 = XK5 *(WATER/GAMA(2))**3.0 - FUNCL5 = MOLAL(5)*MOLAL(2)*MOLAL(2)/A4 - ONE -! - RETURN -! -! *** END OF FUNCTION FUNCL5 **************************************** -! - END FUNCTION FUNCL5 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL4 -! *** CASE L4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, (NH4)2SO4, NA2SO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL4() - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, PSI4LO, PSI4HI - Real(kind=fp) :: YLO, YHI, DX - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCL1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCL1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 - CHI6 = CK2SO4 - CHI7 = CMGSO4 - CHI8 = CKHSO4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = CLC - PSI3 = CNAHSO4 - PSI4 = ZERO - PSI5 = ZERO - PSI6 = ZERO - PSI7 = ZERO - PSI8 = ZERO -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI4LO = ZERO ! Low limit - PSI4HI = CHI4 ! High limit -! - IF (CHI4.LE.TINY) THEN - Y1 = FUNCL4 (ZERO) - GOTO 50 - ENDIF -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI4HI - Y1 = FUNCL4 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NA2SO4 ********* -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - Y2 = FUNCL4 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NA2SO4 ** -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL4 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCL4') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL4 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCL4') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL4 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCL4 ***************************************** -! - END SUBROUTINE CALCL4 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** FUNCTION FUNCL4 -! *** CASE L4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, (NH4)2SO4, NA2SO4 -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4, LC -! -! SOLUTION IS SAVED IN COMMON BLOCK /CASE/ -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCL4 (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: A4, A5, A6, A8, A9 - Real(kind=fp) :: AA, BB, CC, DD, BITA, CAMA, DELT, LAMDA - Integer :: I, ISLV - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI4 = P4 -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = XK5*(WATER/GAMA(2))**3.0 - A5 = XK7*(WATER/GAMA(4))**3.0 - A6 = XK17*(WATER/GAMA(17))**3.0 - A8 = XK18*(WATER/GAMA(18))**2.0 - A9 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2.0 -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = (PSI3 + 2.0*PSI4 - SQRT(A4/A5)*(3.0*PSI2 + PSI1)) ! psi5 - & /2.0/SQRT(A4/A5) - PSI5 = MAX (MIN (PSI5, CHI5), ZERO) -! - PSI7 = CHI7 -! - BB = PSI7 + PSI6 + PSI5 + PSI4 + PSI2 + A9 ! LAMDA - CC = -A9*(PSI8 + PSI1 + PSI2 + PSI3) - DD = MAX(BB*BB - 4.0*CC, ZERO) - LAMDA= 0.5D0*(-BB + SQRT(DD)) - LAMDA= MIN(MAX (LAMDA, TINY), PSI8+PSI3+PSI2+PSI1) -! -! PSI6 = 0.5*(SQRT(A6/A4)*(2.0*PSI4+PSI3)-PSI8) ! PSI6 -! PSI6 = MIN (MAX (PSI6, ZERO), CHI6) -! - IF (CHI6.GT.TINY .AND. WATER.GT.TINY) THEN - AA = PSI5+PSI4+PSI2+PSI7+PSI8+LAMDA - BB = PSI8*(PSI5+PSI4+PSI2+PSI7+0.25D0*PSI8+LAMDA) - CC = 0.25D0*(PSI8*PSI8*(PSI5+PSI4+PSI2+PSI7+LAMDA)-A6) - CALL POLY3 (AA, BB, CC, PSI6, ISLV) - IF (ISLV.EQ.0) THEN - PSI6 = MIN (PSI6, CHI6) - ELSE - PSI6 = ZERO - ENDIF - ENDIF -! - BITA = PSI3 + PSI2 + PSI1 + 2.0*PSI6 - LAMDA - CAMA = 2.0*PSI6*(PSI3 + PSI2 + PSI1 - LAMDA) - A8 - DELT = MAX(BITA*BITA - 4.0*CAMA, ZERO) - PSI8 = 0.5D0*(-BITA + SQRT(DELT)) - PSI8 = MIN(MAX (PSI8, ZERO), CHI8) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL(1) = LAMDA ! HI - MOLAL(2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL(3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL(5) = PSI2 + PSI4 + PSI5 + PSI6 + PSI7 + LAMDA ! SO4I - MOLAL(6) = MAX(PSI2 + PSI3 + PSI1 + PSI8 - LAMDA, TINY) ! HSO4I - MOLAL(9) = PSI8 + 2.0D0*PSI6 ! KI - MOLAL(10)= PSI7 ! MGI -! - CLC = ZERO - CNAHSO4 = ZERO - CNA2SO4 = MAX(CHI4 - PSI4, ZERO) - CNH42S4 = MAX(CHI5 - PSI5, ZERO) - CNH4HS4 = ZERO - CK2SO4 = MAX(CHI6 - PSI6, ZERO) - CMGSO4 = ZERO - CKHSO4 = MAX(CHI8 - PSI8, ZERO) - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A4 = XK5 *(WATER/GAMA(2))**3.0 - FUNCL4 = MOLAL(5)*MOLAL(2)*MOLAL(2)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCL4 **************************************** -! - END FUNCTION FUNCL4 - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL3 -! *** CASE L3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, NH4HSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! -! THERE ARE THREE REGIMES IN THIS CASE: -! 1.(NA,NH4)HSO4(s) POSSIBLE. LIQUID & SOLID AEROSOL (SUBROUTINE CALCI3A) -! 2.(NA,NH4)HSO4(s) NOT POSSIBLE, AND RH < MDRH. SOLID AEROSOL ONLY -! 3.(NA,NH4)HSO4(s) NOT POSSIBLE, AND RH >= MDRH. SOLID & LIQUID AEROSOL -! -! REGIMES 2. AND 3. ARE CONSIDERED TO BE THE SAME AS CASES I1A, I2B -! RESPECTIVELY -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL3() - !EXTERNAL CALCL1A, CALCL4 - Integer :: I -! -! *** FIND DRY COMPOSITION ********************************************* -! - CALL CALCL1A -! -! *** REGIME DEPENDS UPON THE POSSIBLE SOLIDS & RH ********************* -! - IF (CNH4HS4.GT.TINY .OR. CNAHSO4.GT.TINY) THEN - SCASE = 'L3 ; SUBCASE 1' - CALL CALCL3A ! FULL SOLUTION - SCASE = 'L3 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRML3) THEN ! SOLID SOLUTION - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCL1A - SCASE = 'L3 ; SUBCASE 2' -! - ELSEIF (RH.GE.DRML3) THEN ! MDRH OF L3 - SCASE = 'L3 ; SUBCASE 3' - CALL CALCMDRH2 (RH, DRML3, DRLC, CALCL1A, CALCL4) - SCASE = 'L3 ; SUBCASE 3' - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCL3 ***************************************** -! - END SUBROUTINE CALCL3 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL3A -! *** CASE L3 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, (NH4)2SO4, NA2SO4, LC -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL3A() - Real(kind=fp) :: PSI2LO, PSI2HI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, PSI4LO, PSI4HI - Real(kind=fp) :: YLO, YHI, DX - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCL1A -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCL1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 - CHI6 = CK2SO4 - CHI7 = CMGSO4 - CHI8 = CKHSO4 -! - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = ZERO - PSI3 = CNAHSO4 - PSI4 = ZERO - PSI5 = ZERO - PSI6 = ZERO - PSI7 = ZERO - PSI8 = ZERO -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI2LO = ZERO ! Low limit - PSI2HI = CHI2 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI2HI - Y1 = FUNCL3A (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH LC ********* -! - IF (YHI.LT.EPS) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI2HI-PSI2LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = MAX(X1-DX, PSI2LO) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y2 = FUNCL3A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH LC -! - IF (Y2.GT.EPS) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC 2012-01-01) - Y2 = FUNCL3A (ZERO) - ENDIF - GOTO 50 -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL3A (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCL3A') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL3A (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCL3A ***************************************** -! - END SUBROUTINE CALCL3A - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE FUNCL3A -! *** CASE L3 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, (NH4)2SO4, NA2SO4, LC -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCL3A (P2) - Real(kind=fp) :: P2 - Real(kind=fp) :: A2 - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3, PSI4LO, PSI4HI - Real(kind=fp) :: YLO, YHI, DX - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - - PSI2 = P2 ! Save PSI2 in COMMON BLOCK - PSI4LO = ZERO ! Low limit for PSI4 - PSI4HI = CHI4 ! High limit for PSI4 -! -! *** IF NH3 =0, CALL FUNCL3B FOR Y4=0 ******************************** -! - IF (CHI4.LE.TINY) THEN - FUNCL3A = FUNCL3B (ZERO) - GOTO 50 - ENDIF -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI4HI - Y1 = FUNCL3B (X1) - IF (ABS(Y1).LE.EPS) GOTO 50 - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NA2SO4 ********* -! - IF (YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = MAX(X1-DX, PSI4LO) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y2 = FUNCL3B (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NA2SO4 -! - IF (Y2.GT.EPS) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC 2012-01-01) - Y2 = FUNCL3B (PSI4LO) - ENDIF - GOTO 50 -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL3B (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0004, 'FUNCL3A') ! WARNING ERROR: NO CONVERGENCE -! -! *** INNER LOOP CONVERGED ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL3B (X3) -! -! *** CALCULATE FUNCTION VALUE FOR INTERNAL LOOP *************************** -! -50 A2 = XK13*(WATER/GAMA(13))**5.0 - FUNCL3A = MOLAL(5)*MOLAL(6)*MOLAL(3)**3.0/A2 - ONE - RETURN -! -! *** END OF FUNCTION FUNCL3A ******************************************* -! - END FUNCTION FUNCL3A - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** FUNCTION FUNCL3B -! *** CASE L3 ; SUBCASE 2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SULRAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, (NH4)2SO4, NA2SO4, LC -! 4. COMPLETELY DISSOLVED: NH4HSO4, NAHSO4 -! -! SOLUTION IS SAVED IN COMMON BLOCK /CASE/ -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCL3B (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: AA, BB, CC, DD, LAMDA, BITA, CAMA, DELT - Real(kind=fp) :: A4, A5, A6, A8, A9 - Integer :: I, ISLV - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI4 = P4 -! - FRST = .TRUE. - CALAIN = .TRUE. -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = XK5*(WATER/GAMA(2))**3.0 - A5 = XK7*(WATER/GAMA(4))**3.0 - A6 = XK17*(WATER/GAMA(17))**3.0 - A8 = XK18*(WATER/GAMA(18))**2.0 - A9 = XK1*(WATER)*(GAMA(8)**2.0)/(GAMA(7)**3.0) -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = (PSI3 + 2.0*PSI4 - SQRT(A4/A5)*(3.0*PSI2 + PSI1)) ! psi5 - & /2.0/SQRT(A4/A5) - PSI5 = MAX (MIN (PSI5, CHI5), ZERO) -! - PSI7 = CHI7 -! - BB = PSI7 + PSI6 + PSI5 + PSI4 + PSI2 + A9 ! LAMDA - CC = -A9*(PSI8 + PSI1 + PSI2 + PSI3) - DD = MAX(BB*BB - 4.0*CC, ZERO) - LAMDA= 0.5D0*(-BB + SQRT(DD)) - LAMDA= MIN(MAX (LAMDA, TINY), PSI8+PSI3+PSI2+PSI1) -! -! PSI6 = 0.5*(SQRT(A6/A4)*(2.0*PSI4+PSI3)-PSI8) ! PSI6 -! PSI6 = MIN (MAX (PSI6, ZERO), CHI6) -! - IF (CHI6.GT.TINY .AND. WATER.GT.TINY) THEN - AA = PSI5+PSI4+PSI2+PSI7+PSI8+LAMDA - BB = PSI8*(PSI5+PSI4+PSI2+PSI7+0.25D0*PSI8+LAMDA) - CC = 0.25D0*(PSI8*PSI8*(PSI5+PSI4+PSI2+PSI7+LAMDA)-A6) - CALL POLY3 (AA, BB, CC, PSI6, ISLV) - IF (ISLV.EQ.0) THEN - PSI6 = MIN (PSI6, CHI6) - ELSE - PSI6 = ZERO - ENDIF - ENDIF -! - BITA = PSI3 + PSI2 + PSI1 + 2.0*PSI6 - LAMDA - CAMA = 2.0*PSI6*(PSI3 + PSI2 + PSI1 - LAMDA) - A8 - DELT = MAX(BITA*BITA - 4.0*CAMA, ZERO) - PSI8 = 0.5D0*(-BITA + SQRT(DELT)) - PSI8 = MIN(MAX (PSI8, ZERO), CHI8) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL(1) = LAMDA ! HI - MOLAL(2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL(3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL(5) = PSI2 + PSI4 + PSI5 + PSI6 + PSI7 + LAMDA ! SO4I - MOLAL(6) = MAX(PSI2 + PSI3 + PSI1 + PSI8 - LAMDA, TINY) ! HSO4I - MOLAL(9) = PSI8 + 2.0D0*PSI6 ! KI - MOLAL(10)= PSI7 ! MGI -! - CLC = MAX(CHI2 - PSI2, ZERO) - CNAHSO4 = ZERO - CNA2SO4 = MAX(CHI4 - PSI4, ZERO) - CNH42S4 = MAX(CHI5 - PSI5, ZERO) - CNH4HS4 = ZERO - CK2SO4 = MAX(CHI6 - PSI6, ZERO) - CMGSO4 = MAX(CHI7 - PSI7, ZERO) - CKHSO4 = MAX(CHI8 - PSI8, ZERO) - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A4 = XK5 *(WATER/GAMA(2))**3.0 - FUNCL3B = MOLAL(5)*MOLAL(2)*MOLAL(2)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCL3B **************************************** -! - END FUNCTION FUNCL3B - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL2 -! *** CASE L2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, NH4HSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! -! THERE ARE THREE REGIMES IN THIS CASE: -! 1. NH4HSO4(s) POSSIBLE. LIQUID & SOLID AEROSOL (SUBROUTINE CALCL2A) -! 2. NH4HSO4(s) NOT POSSIBLE, AND RH < MDRH. SOLID AEROSOL ONLY -! 3. NH4HSO4(s) NOT POSSIBLE, AND RH >= MDRH. SOLID & LIQUID AEROSOL -! -! REGIMES 2. AND 3. ARE CONSIDERED TO BE THE SAME AS CASES L1A, L2B -! RESPECTIVELY -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL2() - !EXTERNAL CALCL1A, CALCL3A - Integer :: I -! -! *** FIND DRY COMPOSITION ********************************************** -! - CALL CALCL1A -! -! *** REGIME DEPENDS UPON THE POSSIBLE SOLIDS & RH ********************** -! - IF (CNH4HS4.GT.TINY) THEN - SCASE = 'L2 ; SUBCASE 1' - CALL CALCL2A - SCASE = 'L2 ; SUBCASE 1' - ENDIF -! - IF (WATER.LE.TINY) THEN - IF (RH.LT.DRML2) THEN ! SOLID SOLUTION ONLY - WATER = TINY - DO 10 I=1,NIONS - MOLAL(I) = ZERO -10 CONTINUE - CALL CALCL1A - SCASE = 'L2 ; SUBCASE 2' -! - ELSEIF (RH.GE.DRML2) THEN ! MDRH OF L2 - SCASE = 'L2 ; SUBCASE 3' - CALL CALCMDRH2 (RH, DRML2, DRNAHSO4, CALCL1A, CALCL3A) - SCASE = 'L2 ; SUBCASE 3' - ENDIF - ENDIF -! - RETURN -! -! *** END OF SUBROUTINE CALCL2 ****************************************** -! - END SUBROUTINE CALCL2 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL2A -! *** CASE L2 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! 4. COMPLETELY DISSOLVED: NH4HSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL2A() - Real(kind=fp) :: PSI2LO, PSI2HI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Real(kind=fp) :: DX, YLO, YHI - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - CHI1 = CNH4HS4 ! Save from CALCL1 run - CHI2 = CLC - CHI3 = CNAHSO4 - CHI4 = CNA2SO4 - CHI5 = CNH42S4 - CHI6 = CK2SO4 - CHI7 = CMGSO4 - CHI8 = CKHSO4 -! - - PSI1 = CNH4HS4 ! ASSIGN INITIAL PSI's - PSI2 = ZERO - PSI3 = ZERO - PSI4 = ZERO - PSI5 = ZERO - PSI6 = ZERO - PSI7 = ZERO - PSI8 = ZERO -! - CALAOU = .TRUE. ! Outer loop activity calculation flag - PSI2LO = ZERO ! Low limit - PSI2HI = CHI2 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI2HI - Y1 = FUNCL2A (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH NA2SO4 ********* -! - IF (YHI.LT.EPS) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI2HI-PSI2LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = MAX(X1-DX, PSI2LO) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y2 = FUNCL2A (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH NA2SO4 -! - IF (Y2.GT.EPS) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC 2012-01-01) - Y2 = FUNCL2A (ZERO) - ENDIF - GOTO 50 -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL2A (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCL2A') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL2A (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCL2A ***************************************** -! - END SUBROUTINE CALCL2A - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE FUNCL2A -! *** CASE L2 ; SUBCASE 1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! 4. COMPLETELY DISSOLVED: NH4HSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCL2A (P2) - Real(kind=fp) :: P2 - Real(kind=fp) :: A1, X1, Y1, X2, Y2, X3, Y3, PSI4LO, PSI4HI, DX - Real(kind=fp) :: YHI, A2 - Integer :: I - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - - PSI2 = P2 ! Save PSI3 in COMMON BLOCK - PSI4LO = ZERO ! Low limit for PSI4 - PSI4HI = CHI4 ! High limit for PSI4 -! -! *** IF NH3 =0, CALL FUNCL3B FOR Y4=0 ******************************** -! - - IF (CHI4.LE.TINY) THEN - FUNCL2A = FUNCL2B (ZERO) - GOTO 50 - ENDIF -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - - X1 = PSI4HI - Y1 = FUNCL2B (X1) - - IF (ABS(Y1).LE.EPS) GOTO 50 - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH LC ********* -! - IF (YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI4HI-PSI4LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = MAX(X1-DX, PSI4LO) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y2 = FUNCL2B (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH LC -! - IF (Y2.GT.EPS) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC 2012-01-01) - Y2 = FUNCL2B (PSI4LO) - ENDIF - GOTO 50 -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL2B (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0004, 'FUNCL2A') ! WARNING ERROR: NO CONVERGENCE -! -! *** INNER LOOP CONVERGED ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCL2B (X3) -! -! *** CALCULATE FUNCTION VALUE FOR OUTER LOOP *************************** -! -50 A2 = XK13*(WATER/GAMA(13))**5.0 - FUNCL2A = MOLAL(5)*MOLAL(6)*MOLAL(3)**3.0/A2 - ONE - RETURN -! -! *** END OF FUNCTION FUNCL2A ******************************************* -! - END FUNCTION FUNCL2A - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE FUNCL2B -! *** CASE L2 ; SUBCASE 2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! 4. COMPLETELY DISSOLVED: NH4HSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCL2B (P4) - Real(kind=fp) :: P4 - Real(kind=fp) :: A1, A3, A4, A5, A6, A8, A9 - Real(kind=fp) :: AA, BB, CC, BITA, CAMA, DELT, LAMDA, KAPA, DD - Integer :: I, ISLV - ! changes made by hotp 8/2/07 - ! explicitly declared all variables in SOLUT - ! made SOLUT THREADPRIVATE for OPENMP parallelization -!=======! Real(kind=fp) :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8 -!=======! Real(kind=fp) :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15 -!=======! Real(kind=fp) :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6 -!=======! Real(kind=fp) :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13 -!=======! Real(kind=fp) :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6 -!=======! Real(kind=fp) :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======! COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8, -!=======! & CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15, -!=======! & CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6, -!=======! & PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13, -!=======! & PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6, -!=======! & A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17 -!=======!!$OMP THREADPRIVATE( /SOLUT/ ) -! -! *** SETUP PARAMETERS ************************************************ -! - PSI4 = P4 ! Save PSI4 in COMMON BLOCK -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. - PSI3 = CHI3 - PSI5 = CHI5 - LAMDA = ZERO - PSI6 = CHI6 - PSI8 = CHI8 -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A3 = XK11*(WATER/GAMA(12))**2.0 - A4 = XK5*(WATER/GAMA(2))**3.0 - A5 = XK7*(WATER/GAMA(4))**3.0 - A6 = XK17*(WATER/GAMA(17))**3.0 - A8 = XK18*(WATER/GAMA(18))**2.0 - A9 = XK1*(WATER)*(GAMA(8)**2.0)/(GAMA(7)**3.0) -! -! CALCULATE DISSOCIATION QUANTITIES -! - PSI5 = (PSI3 + 2.0*PSI4 - SQRT(A4/A5)*(3.0*PSI2 + PSI1)) ! psi5 - & /2.0/SQRT(A4/A5) - PSI5 = MAX (MIN (PSI5, CHI5), ZERO) -! - IF (CHI3.GT.TINY .AND. WATER.GT.TINY) THEN - AA = 2.0*PSI4 + PSI2 + PSI1 + PSI8 - LAMDA - BB = 2.0*PSI4*(PSI2 + PSI1 + PSI8 - LAMDA) - A3 - CC = ZERO - CALL POLY3 (AA, BB, CC, PSI3, ISLV) - IF (ISLV.EQ.0) THEN - PSI3 = MIN (PSI3, CHI3) - ELSE - PSI3 = ZERO - ENDIF - ENDIF -! - PSI7 = CHI7 -! - BB = PSI7 + PSI6 + PSI5 + PSI4 + PSI2 + A9 ! LAMDA - CC = -A9*(PSI8 + PSI1 + PSI2 + PSI3) - DD = MAX(BB*BB - 4.0*CC, ZERO) - LAMDA= 0.5D0*(-BB + SQRT(DD)) - LAMDA= MIN(MAX (LAMDA, TINY), PSI8+PSI3+PSI2+PSI1) -! -! PSI6 = 0.5*(SQRT(A6/A4)*(2.0*PSI4+PSI3)-PSI8) ! PSI6 -! PSI6 = MIN (MAX (PSI6, ZERO), CHI6) -! - IF (CHI6.GT.TINY .AND. WATER.GT.TINY) THEN - AA = PSI5+PSI4+PSI2+PSI7+PSI8+LAMDA - BB = PSI8*(PSI5+PSI4+PSI2+PSI7+0.25D0*PSI8+LAMDA) - CC = 0.25D0*(PSI8*PSI8*(PSI5+PSI4+PSI2+PSI7+LAMDA)-A6) - CALL POLY3 (AA, BB, CC, PSI6, ISLV) - IF (ISLV.EQ.0) THEN - PSI6 = MIN (PSI6, CHI6) - ELSE - PSI6 = ZERO - ENDIF - ENDIF -! - BITA = PSI3 + PSI2 + PSI1 + 2.0*PSI6 - LAMDA ! PSI8 - CAMA = 2.0*PSI6*(PSI3 + PSI2 + PSI1 - LAMDA) - A8 - DELT = MAX(BITA*BITA - 4.0*CAMA, ZERO) - PSI8 = 0.5D0*(-BITA + SQRT(DELT)) - PSI8 = MIN(MAX (PSI8, ZERO), CHI8) -! -! *** CALCULATE SPECIATION ******************************************** -! - MOLAL(1) = LAMDA ! HI - MOLAL(2) = 2.0*PSI4 + PSI3 ! NAI - MOLAL(3) = 3.0*PSI2 + 2.0*PSI5 + PSI1 ! NH4I - MOLAL(5) = PSI2 + PSI4 + PSI5 + PSI6 + PSI7 + LAMDA ! SO4I - MOLAL(6) = MAX(PSI2 + PSI3 + PSI1 + PSI8 - LAMDA, TINY) ! HSO4I - MOLAL(9) = PSI8 + 2.0D0*PSI6 ! KI - MOLAL(10)= PSI7 ! MGI -! - CLC = MAX(CHI2 - PSI2, ZERO) - CNAHSO4 = MAX(CHI3 - PSI3, ZERO) - CNA2SO4 = MAX(CHI4 - PSI4, ZERO) - CNH42S4 = MAX(CHI5 - PSI5, ZERO) - CNH4HS4 = ZERO - CK2SO4 = MAX(CHI6 - PSI6, ZERO) - CMGSO4 = MAX(CHI7 - PSI7, ZERO) - CKHSO4 = MAX(CHI8 - PSI8, ZERO) - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 A4 = XK5 *(WATER/GAMA(2))**3.0 - FUNCL2B = MOLAL(5)*MOLAL(2)*MOLAL(2)/A4 - ONE - RETURN -! -! *** END OF FUNCTION FUNCL2B **************************************** -! - END FUNCTION FUNCL2B - - -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL1 -! *** CASE L1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID & LIQUID AEROSOL POSSIBLE -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, NH4HSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! -! THERE ARE TWO POSSIBLE REGIMES HERE, DEPENDING ON RELATIVE HUMIDITY: -! 1. WHEN RH >= MDRH ; LIQUID PHASE POSSIBLE (MDRH REGION) -! 2. WHEN RH < MDRH ; ONLY SOLID PHASE POSSIBLE (SUBROUTINE CALCI1A) -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS & ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL1() - !EXTERNAL CALCL1A, CALCL2A -! -! *** REGIME DEPENDS UPON THE AMBIENT RELATIVE HUMIDITY ***************** -! - IF (RH.LT.DRML1) THEN - SCASE = 'L1 ; SUBCASE 1' - CALL CALCL1A ! SOLID PHASE ONLY POSSIBLE - SCASE = 'L1 ; SUBCASE 1' - ELSE - SCASE = 'L1 ; SUBCASE 2' ! LIQUID & SOLID PHASE POSSIBLE - CALL CALCMDRH2 (RH, DRML1, DRNH4HS4, CALCL1A, CALCL2A) - SCASE = 'L1 ; SUBCASE 2' - ENDIF -! -! *** AMMONIA IN GAS PHASE ********************************************** -! -! CALL CALCNH3 -! - RETURN -! -! *** END OF SUBROUTINE CALCL1 ****************************************** -! - END SUBROUTINE CALCL1 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCL1A -! *** CASE L1A -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE RICH, NO FREE ACID (1.0 <= SO4RAT < 2.0) -! 2. SOLID AEROSOL ONLY -! 3. SOLIDS POSSIBLE : K2SO4, CASO4, MGSO4, KHSO4, NH4HSO4, NAHSO4, (NH4)2SO4, NA2SO4, LC -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCL1A() - Real(kind=fp) :: FRSO4, CAFR, FRK, FRNA, FRNH4, FRMG -! -! *** CALCULATE NON VOLATILE SOLIDS *********************************** -! - CCASO4 = MIN (W(6), W(2)) ! CCASO4 - FRSO4 = MAX(W(2) - CCASO4, ZERO) - CAFR = MAX(W(6) - CCASO4, ZERO) - CK2SO4 = MIN (0.5D0*W(7), FRSO4) ! CK2SO4 - FRK = MAX(W(7) - 2.0*CK2SO4, ZERO) - FRSO4 = MAX(FRSO4 - CK2SO4, ZERO) - CNA2SO4 = MIN (0.5D0*W(1), FRSO4) ! CNA2SO4 - FRNA = MAX(W(1) - 2.0*CNA2SO4, ZERO) - FRSO4 = MAX(FRSO4 - CNA2SO4, ZERO) - CMGSO4 = MIN (W(8), FRSO4) ! CMGSO4 - FRMG = MAX(W(8) - CMGSO4, ZERO) - FRSO4 = MAX(FRSO4 - CMGSO4, ZERO) -! - CNH4HS4 = ZERO - CNAHSO4 = ZERO - CNH42S4 = ZERO - CKHSO4 = ZERO -! - CLC = MIN(W(3)/3.0, FRSO4/2.0) - FRSO4 = MAX(FRSO4-2.0*CLC, ZERO) - FRNH4 = MAX(W(3)-3.0*CLC, ZERO) -! - IF (FRSO4.LE.TINY) THEN - CLC = MAX(CLC - FRNH4, ZERO) - CNH42S4 = 2.0*FRNH4 - - ELSEIF (FRNH4.LE.TINY) THEN - CNH4HS4 = 3.0*MIN(FRSO4, CLC) - CLC = MAX(CLC-FRSO4, ZERO) -! IF (CK2SO4.GT.TINY) THEN -! FRSO4 = MAX(FRSO4-CNH4HS4/3.0, ZERO) -! CKHSO4 = 2.0*FRSO4 -! CK2SO4 = MAX(CK2SO4-FRSO4, ZERO) -! ENDIF -! IF (CNA2SO4.GT.TINY) THEN -! FRSO4 = MAX(FRSO4-CKHSO4/2.0, ZERO) -! CNAHSO4 = 2.0*FRSO4 -! CNA2SO4 = MAX(CNA2SO4-FRSO4, ZERO) -! ENDIF -! - IF (CNA2SO4.GT.TINY) THEN - FRSO4 = MAX(FRSO4-CNH4HS4/3.0, ZERO) - CNAHSO4 = 2.0*FRSO4 - CNA2SO4 = MAX(CNA2SO4-FRSO4, ZERO) - ENDIF - IF (CK2SO4.GT.TINY) THEN - FRSO4 = MAX(FRSO4-CNH4HS4/3.0, ZERO) - CKHSO4 = 2.0*FRSO4 - CK2SO4 = MAX(CK2SO4-FRSO4, ZERO) - ENDIF - ENDIF -! -! *** CALCULATE GAS SPECIES ******************************************** -! - GHNO3 = W(4) - GHCL = W(5) - GNH3 = ZERO -! - RETURN -! -! *** END OF SUBROUTINE CALCL1A ***************************************** -! - END SUBROUTINE CALCL1A -! -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCK4 -! *** CASE K4 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE SUPER RICH, FREE ACID (SO4RAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : CASO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCK4() - Real(kind=fp) :: A4, BB, CC, DD, LAMDA, KAPA - Integer :: I -! - !Real(kind=fp) :: LAMDA, KAPA - ! modified by hotp 8/2/07 - ! explicitly declared all variables in CASEK - ! made CASEK THREADPRIVATE for parallelization -!========! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!========! Real(kind=fp) :: A1, A2, A3, A4 -!========! COMMON /CASEK/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!========! & A1, A2, A3, A4 -!========!!$OMP THREADPRIVATE( /CASEK/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU =.TRUE. ! Outer loop activity calculation flag - FRST = .TRUE. - CALAIN = .TRUE. -! - CHI1 = W(3) ! Total NH4 initially as NH4HSO4 - CHI2 = W(1) ! Total NA initially as NaHSO4 - CHI3 = W(7) ! Total K initially as KHSO4 -#if defined( ISORROPIA_V22 ) - CHI4 = W(8) ! Total Mg initially as MgSO4 -! - LAMDA = MAX(W(2) - W(3) - W(1) - W(6) - W(7) - W(8), TINY) ! FREE H2SO4 -#else - LAMDA = MAX(W(2) - W(3) - W(1) - W(6) - W(7), TINY) ! FREE H2SO4 -#endif - PSI1 = CHI1 ! ALL NH4HSO4 DELIQUESCED - PSI2 = CHI2 ! ALL NaHSO4 DELIQUESCED - PSI3 = CHI3 ! ALL KHSO4 DELIQUESCED -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A4 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2.0 -! -#if defined( ISORROPIA_V22 ) - BB = A4+LAMDA+PSI4 ! KAPA - CC =-A4*(LAMDA + PSI3 + PSI2 + PSI1) + LAMDA*PSI4 - DD = MAX(BB*BB-4.D0*CC, ZERO) -#else - BB = A4+LAMDA ! KAPA - CC =-A4*(LAMDA + PSI3 + PSI2 + PSI1) - DD = BB*BB-4.D0*CC -#endif - KAPA = 0.5D0*(-BB+SQRT(DD)) -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! -#if defined( ISORROPIA_V22 ) - MOLAL (1) = MAX(LAMDA + KAPA, TINY) ! HI - MOLAL (2) = PSI2 ! NAI - MOLAL (3) = PSI1 ! NH4I - MOLAL (5) = MAX(KAPA + PSI4, ZERO) ! SO4I - MOLAL (6) = MAX(LAMDA + PSI1 + PSI2 + PSI3 - KAPA, ZERO) ! HSO4I - MOLAL (9) = PSI3 ! KI - MOLAL (10)= PSI4 ! MGI -#else - MOLAL (1) = LAMDA + KAPA ! HI - MOLAL (2) = PSI2 ! NAI - MOLAL (3) = PSI1 ! NH4I - MOLAL (5) = KAPA ! SO4I - MOLAL (6) = LAMDA + PSI1 + PSI2 + PSI3 - KAPA ! HSO4I - MOLAL (9) = PSI3 ! KI -#endif -! - CNH4HS4 = ZERO - CNAHSO4 = ZERO - CKHSO4 = ZERO - CCASO4 = W(6) -#if defined( ISORROPIA_V22 ) - CMGSO4 = ZERO -#endif -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -20 RETURN -! -! *** END OF SUBROUTINE CALCK4 -! - END SUBROUTINE CALCK4 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCK3 -! *** CASE K3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE SUPER RICH, FREE ACID (SO4RAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : KHSO4, CASO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCK3() - Real(kind=fp) :: PSI3LO, PSI3HI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Real(kind=fp) :: DX, YLO, YHI - Integer :: I -! - !Real(kind=fp) :: LAMDA, KAPA - ! modified by hotp 8/2/07 - ! explicitly declared all variables in CASEK - ! made CASEK THREADPRIVATE for parallelization -!========! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!========! Real(kind=fp) :: A1, A2, A3, A4 -!========! COMMON /CASEK/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!========! & A1, A2, A3, A4 -!========!!$OMP THREADPRIVATE( /CASEK/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU =.TRUE. ! Outer loop activity calculation flag - CHI1 = W(3) ! Total NH4 initially as NH4HSO4 - CHI2 = W(1) ! Total NA initially as NaHSO4 - CHI3 = W(7) ! Total K initially as KHSO4 -#if defined( ISORROPIA_V22 ) - CHI4 = W(8) ! Total K initially as KHSO4 -#endif -! - PSI3LO = TINY ! Low limit - PSI3HI = CHI3 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI3HI - Y1 = FUNCK3 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH KHSO4 **** -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI3HI-PSI3LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y2 = FUNCK3 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH KHSO4 -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCK3 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCK3') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCK3 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCK3') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCK3 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCK3 ****************************************** -! - END SUBROUTINE CALCK3 -! -!======================================================================= -! -! *** ISORROPIA CODE -! *** SUBROUTINE FUNCK3 -! *** CASE K3 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE SUPER RICH, FREE ACID (SO4RAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : KHSO4, CaSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCK3 (P1) - Real(kind=fp) :: P1 - Real(kind=fp) :: A1, A3, A4, BB, CC, DD, LAMDA, KAPA - Integer :: I - !Real(kind=fp) :: LAMDA, KAPA - ! modified by hotp 8/2/07 - ! explicitly declared all variables in CASEK - ! made CASEK THREADPRIVATE for parallelization -!========! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!========! Real(kind=fp) :: A1, A2, A3, A4 -!========! COMMON /CASEK/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!========! & A1, A2, A3, A4 -!========!!$OMP THREADPRIVATE( /CASEK/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! -#if defined( ISORROPIA_V22 ) - LAMDA = MAX(W(2) - W(3) - W(1) - W(6) - W(7) - W(8), TINY) ! FREE H2SO4 -#else - LAMDA = MAX(W(2) - W(3) - W(1) - W(6) - W(7), TINY) ! FREE H2SO4 -#endif - PSI3 = P1 - PSI1 = CHI1 ! ALL NH4HSO4 DELIQUESCED - PSI2 = CHI2 ! ALL NaHSO4 DELIQUESCED -#if defined( ISORROPIA_V22 ) - PSI4 = CHI4 ! ALL MgSO4 DELIQUESCED -#endif - -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A3 = XK18 *(WATER/GAMA(18))**2.0 - A4 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2.0 -! -! -#if defined( ISORROPIA_V22 ) - BB = A4+LAMDA+PSI4 ! KAPA - CC =-A4*(LAMDA + PSI3 + PSI2 + PSI1) + LAMDA*PSI4 - DD = MAX(BB*BB-4.0*CC, ZERO) -#else - BB = A4+LAMDA ! KAPA - CC =-A4*(LAMDA + PSI3 + PSI2 + PSI1) - DD = BB*BB-4.D0*CC -#endif - KAPA = 0.5D0*(-BB+SQRT(DD)) -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! -#if defined( ISORROPIA_V22 ) - MOLAL (1) = MAX(LAMDA + KAPA, ZERO) ! HI - MOLAL (2) = PSI2 ! NAI - MOLAL (3) = PSI1 ! NH4I - MOLAL (4) = ZERO - MOLAL (5) = MAX(KAPA + PSI4, ZERO) ! SO4I - MOLAL (6) = MAX(LAMDA+PSI1+PSI2+PSI3-KAPA,ZERO) ! HSO4I - MOLAL (7) = ZERO - MOLAL (8) = ZERO - MOLAL (9) = PSI3 ! KI - MOLAL (10)= PSI4 ! KI -#else - MOLAL (1) = LAMDA + KAPA ! HI - MOLAL (2) = PSI2 ! NAI - MOLAL (3) = PSI1 ! NH4I - MOLAL (4) = ZERO - MOLAL (5) = KAPA ! SO4I - MOLAL (6) = LAMDA+PSI1+PSI2+PSI3-KAPA ! HSO4I - MOLAL (7) = ZERO - MOLAL (8) = ZERO - MOLAL (9) = PSI3 ! KI -#endif -! - CNH4HS4 = ZERO - CNAHSO4 = ZERO - CKHSO4 = CHI3-PSI3 - CCASO4 = W(6) -#if defined( ISORROPIA_V22 ) - CMGSO4 = ZERO -#endif -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 FUNCK3 = MOLAL(9)*MOLAL(6)/A3 - ONE -! -! *** END OF FUNCTION FUNCK3 ******************************************* -! - END FUNCTION FUNCK3 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCK2 -! *** CASE K2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE SUPER RICH, FREE ACID (SO4RAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NAHSO4, KHSO4, CaSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCK2() - Real(kind=fp) :: PSI3LO, PSI3HI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Real(kind=fp) :: DX, YLO, YHI - Integer :: I -! - !Real(kind=fp) :: LAMDA, KAPA - ! modified by hotp 8/2/07 - ! explicitly declared all variables in CASEK - ! made CASEK THREADPRIVATE for parallelization -!========! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!========! Real(kind=fp) :: A1, A2, A3, A4 -!========! COMMON /CASEK/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!========! & A1, A2, A3, A4 -!========!!$OMP THREADPRIVATE( /CASEK/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - CALAOU =.TRUE. ! Outer loop activity calculation flag - CHI1 = W(3) ! Total NH4 initially as NH4HSO4 - CHI2 = W(1) ! Total NA initially as NaHSO4 - CHI3 = W(7) ! Total K initially as KHSO4 -#if defined( ISORROPIA_V22 ) - CHI4 = W(8) ! Total Mg initially as MgSO4 -#endif -! - PSI3LO = TINY ! Low limit - PSI3HI = CHI3 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI3HI - Y1 = FUNCK2 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH KHSO4 **** -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI3HI-PSI3LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y2 = FUNCK2 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH KHSO4 -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCK2 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCK2') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCK2 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCK2') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCK2 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCK2 ****************************************** -! - END SUBROUTINE CALCK2 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE FUNCK2 -! *** CASE K2 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE SUPER RICH, FREE ACID (SO4RAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NAHSO4, KHSO4, CaSO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCK2 (P1) - Real(kind=fp) :: P1 - Real(kind=fp) :: A1, A2, A3, A4, BB, CC, DD, KAPA, LAMDA - Integer :: I - !Real(kind=fp) :: LAMDA, KAPA - ! modified by hotp 8/2/07 - ! explicitly declared all variables in CASEK - ! made CASEK THREADPRIVATE for parallelization -!========! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!========! Real(kind=fp) :: A1, A2, A3, A4 -!========! COMMON /CASEK/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!========! & A1, A2, A3, A4 -!========!!$OMP THREADPRIVATE( /CASEK/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! -#if defined( ISORROPIA_V22 ) - LAMDA = MAX(W(2) - W(3) - W(1) - W(6) - W(7) - W(8), TINY) ! FREE H2SO4 -#else - LAMDA = MAX(W(2) - W(3) - W(1) - W(6) - W(7), TINY) ! FREE H2SO4 -#endif - PSI3 = P1 - PSI1 = CHI1 ! ALL NH4HSO4 DELIQUESCED -#if defined( ISORROPIA_V22 ) - PSI4 = CHI4 ! ALL MgHSO4 DELIQUESCED -#endif -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A2 = XK11 *(WATER/GAMA(12))**2.0 - A3 = XK18 *(WATER/GAMA(18))**2.0 - A4 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2.0 -! - PSI2 = A2/A3*PSI3 ! PSI2 - PSI2 = MIN(MAX(PSI2, ZERO),CHI2) -! -#if defined( ISORROPIA_V22 ) - BB = A4+LAMDA+PSI4 ! KAPA - CC =-A4*(LAMDA + PSI3 + PSI2 + PSI1) + LAMDA*PSI4 - DD = MAX(BB*BB-4.0*CC, ZERO) -#else - BB = A4+LAMDA ! KAPA - CC =-A4*(LAMDA + PSI3 + PSI2 + PSI1) - DD = BB*BB-4.D0*CC -#endif - KAPA = 0.5D0*(-BB+SQRT(DD)) -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! -#if defined( ISORROPIA_V22 ) - MOLAL (1) = MAX(LAMDA + KAPA, ZERO) ! HI - MOLAL (2) = PSI2 ! NAI - MOLAL (3) = PSI1 ! NH4I - MOLAL (4) = ZERO - MOLAL (5) = MAX(KAPA + PSI4, ZERO) ! SO4I - MOLAL (6) = MAX(LAMDA+PSI1+PSI2+PSI3-KAPA,ZERO) ! HSO4I - MOLAL (7) = ZERO - MOLAL (8) = ZERO - MOLAL (9) = PSI3 ! KI - MOLAL (10)= PSI4 -#else - MOLAL (1) = LAMDA + KAPA ! HI - MOLAL (2) = PSI2 ! NAI - MOLAL (3) = PSI1 ! NH4I - MOLAL (4) = ZERO - MOLAL (5) = KAPA ! SO4I - MOLAL (6) = LAMDA+PSI1+PSI2+PSI3-KAPA ! HSO4I - MOLAL (7) = ZERO - MOLAL (8) = ZERO - MOLAL (9) = PSI3 ! KI -#endif -! - CNH4HS4 = ZERO - CNAHSO4 = CHI2-PSI2 - CKHSO4 = CHI3-PSI3 - CCASO4 = W(6) -#if defined( ISORROPIA_V22 ) - CMgSO4 = ZERO -#endif -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 FUNCK2 = MOLAL(9)*MOLAL(6)/A3 - ONE -! -! *** END OF FUNCTION FUNCK2 ******************************************* -! - END FUNCTION FUNCK2 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE CALCK1 -! *** CASE K1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE SUPER RICH, FREE ACID (SO4RAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NH4HSO4, NAHSO4, KHSO4, CASO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - SUBROUTINE CALCK1() - Real(kind=fp) :: PSI3LO, PSI3HI - Real(kind=fp) :: X1, Y1, X2, Y2, X3, Y3 - Real(kind=fp) :: DX, YLO, YHI - Integer :: I -! - !Real(kind=fp) :: LAMDA, KAPA - ! modified by hotp 8/2/07 - ! explicitly declared all variables in CASEK - ! made CASEK THREADPRIVATE for parallelization -!========! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!========! Real(kind=fp) :: A1, A2, A3, A4 -!========! COMMON /CASEK/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!========! & A1, A2, A3, A4 -!========!!$OMP THREADPRIVATE( /CASEK/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - - CALAOU =.TRUE. ! Outer loop activity calculation flag - CHI1 = W(3) ! Total NH4 initially as NH4HSO4 - CHI2 = W(1) ! Total NA initially as NaHSO4 - CHI3 = W(7) ! Total K initially as KHSO4 -#if defined( ISORROPIA_V22 ) - CHI4 = W(8) ! Total Mg initially as MgSO4 -#endif -! - PSI3LO = TINY ! Low limit - PSI3HI = CHI3 ! High limit -! -! *** INITIAL VALUES FOR BISECTION ************************************ -! - X1 = PSI3HI - Y1 = FUNCK1 (X1) - YHI= Y1 ! Save Y-value at HI position -! -! *** YHI < 0.0 THE SOLUTION IS ALWAYS UNDERSATURATED WITH KHSO4 **** -! - IF (ABS(Y1).LE.EPS .OR. YHI.LT.ZERO) GOTO 50 -! -! *** ROOT TRACKING ; FOR THE RANGE OF HI AND LO ********************** -! - DX = (PSI3HI-PSI3LO)/REAL(NDIV) - DO 10 I=1,NDIV - X2 = X1-DX - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y2 = FUNCK1 (X2) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y2).LT.ZERO) GOTO 20 ! (Y1*Y2.LT.ZERO) - X1 = X2 - Y1 = Y2 -10 CONTINUE -! -! *** { YLO, YHI } > 0.0 THE SOLUTION IS ALWAYS SUPERSATURATED WITH KHSO4 -! - YLO= Y1 ! Save Y-value at Hi position - IF (YLO.GT.ZERO .AND. YHI.GT.ZERO) THEN - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCK1 (ZERO) - GOTO 50 - ELSE IF (ABS(Y2) .LT. EPS) THEN ! X2 IS A SOLUTION - GOTO 50 - ELSE - CALL PUSHERR (0001, 'CALCK1') ! WARNING ERROR: NO SOLUTION - GOTO 50 - ENDIF -! -! *** PERFORM BISECTION *********************************************** -! -20 DO 30 I=1,MAXIT - X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCK1 (X3) - IF (SIGN(ONE,Y1)*SIGN(ONE,Y3) .LE. ZERO) THEN ! (Y1*Y3 .LE. ZERO) - Y2 = Y3 - X2 = X3 - ELSE - Y1 = Y3 - X1 = X3 - ENDIF - IF (ABS(X2-X1) .LE. EPS*X1) GOTO 40 -30 CONTINUE - CALL PUSHERR (0002, 'CALCK1') ! WARNING ERROR: NO CONVERGENCE -! -! *** CONVERGED ; RETURN ********************************************** -! -40 X3 = 0.5*(X1+X2) - CALL RSTGAMP ! Reinitialize activity coefficients (SLC C2012-01-01) - Y3 = FUNCK1 (X3) -! -50 RETURN -! -! *** END OF SUBROUTINE CALCK1 ****************************************** -! - END SUBROUTINE CALCK1 - -! -!======================================================================= -! -! *** ISORROPIA CODE II -! *** SUBROUTINE FUNCK1 -! *** CASE K1 -! -! THE MAIN CHARACTERISTICS OF THIS REGIME ARE: -! 1. SULFATE super RICH, FREE ACID (SO4RAT < 1.0) -! 2. THERE IS BOTH A LIQUID & SOLID PHASE -! 3. SOLIDS POSSIBLE : NH4HSO4, NAHSO4, KHSO4, CASO4 -! -! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY -! *** GEORGIA INSTITUTE OF TECHNOLOGY -! *** WRITTEN BY CHRISTOS FOUNTOUKIS AND ATHANASIOS NENES -! -!======================================================================= -! - Real(kind=fp) FUNCTION FUNCK1 (P1) - Real(kind=fp) :: P1 - Real(kind=fp) :: A1, A2, A3, A4 - Real(kind=fp) :: LAMDA, KAPA, BB, CC, DD - Integer :: I - !Real(kind=fp) :: LAMDA, KAPA - ! modified by hotp 8/2/07 - ! explicitly declared all variables in CASEK - ! made CASEK THREADPRIVATE for parallelization -!========! Real(kind=fp) :: CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3 -!========! Real(kind=fp) :: A1, A2, A3, A4 -!========! COMMON /CASEK/ CHI1, CHI2, CHI3, LAMDA, KAPA, PSI1, PSI2, PSI3, -!========! & A1, A2, A3, A4 -!========!!$OMP THREADPRIVATE( /CASEK/ ) - -! -! *** SETUP PARAMETERS ************************************************ -! - FRST = .TRUE. - CALAIN = .TRUE. -! -#if defined( ISORROPIA_V22 ) - LAMDA = MAX(W(2) - W(3) - W(1) - W(6) - W(7) - W(8), TINY) ! FREE H2SO4 -#else - LAMDA = MAX(W(2) - W(3) - W(1) - W(6) - W(7), TINY) ! FREE H2SO4 -#endif - PSI3 = P1 -#if defined( ISORROPIA_V22 ) - PSI4 = CHI4 ! All MgSO4 deliquesced -#endif -! -! *** SOLVE EQUATIONS ; WITH ITERATIONS FOR ACTIVITY COEF. ************ -! - DO 10 I=1,NSWEEP -! - A1 = XK12 *(WATER/GAMA(09))**2.0 - A2 = XK11 *(WATER/GAMA(12))**2.0 - A3 = XK18 *(WATER/GAMA(18))**2.0 - A4 = XK1 *WATER/GAMA(7)*(GAMA(8)/GAMA(7))**2.0 -! - PSI1 = A1/A3*PSI3 ! PSI1 - PSI1 = MIN(MAX(PSI1, ZERO),CHI1) -! - PSI2 = A2/A3*PSI3 ! PSI2 - PSI2 = MIN(MAX(PSI2, ZERO),CHI2) -! -#if defined( ISORROPIA_V22 ) - BB = A4+LAMDA+PSI4 ! KAPA - CC =-A4*(LAMDA + PSI3 + PSI2 + PSI1) + LAMDA*PSI4 - DD = MAX(BB*BB-4.0*CC, ZERO) -#else - BB = A4+LAMDA ! KAPA - CC =-A4*(LAMDA + PSI3 + PSI2 + PSI1) - DD = BB*BB-4.D0*CC -#endif - KAPA = 0.5D0*(-BB+SQRT(DD)) -! -! *** SAVE CONCENTRATIONS IN MOLAL ARRAY ****************************** -! -#if defined( ISORROPIA_V22 ) - MOLAL (1) = MAX(LAMDA + KAPA, ZERO) ! HI - MOLAL (2) = PSI2 ! NAI - MOLAL (3) = PSI1 ! NH4I - MOLAL (4) = ZERO ! CLI - MOLAL (5) = MAX(KAPA + PSI4, ZERO) ! SO4I - MOLAL (6) = MAX(LAMDA+PSI1+PSI2+PSI3-KAPA,ZERO) ! HSO4I - MOLAL (7) = ZERO ! NO3I - MOLAL (8) = ZERO ! CAI - MOLAL (9) = PSI3 ! KI - MOLAL (10)= PSI4 ! MGI -#else - MOLAL (1) = LAMDA + KAPA ! HI - MOLAL (2) = PSI2 ! NAI - MOLAL (3) = PSI1 ! NH4I - MOLAL (4) = ZERO ! CLI - MOLAL (5) = KAPA ! SO4I - MOLAL (6) = LAMDA+PSI1+PSI2+PSI3-KAPA ! HSO4I - MOLAL (7) = ZERO ! NO3I - MOLAL (8) = ZERO ! CAI - MOLAL (9) = PSI3 ! KI - MOLAL (10)= ZERO ! MGI -#endif -! - CNH4HS4 = CHI1-PSI1 - CNAHSO4 = CHI2-PSI2 - CKHSO4 = CHI3-PSI3 - CCASO4 = W(6) -#if defined( ISORROPIA_V22 ) - CMGSO4 = ZERO -#endif -! - CALL CALCMR ! Water content -! -! *** CALCULATE ACTIVITIES OR TERMINATE INTERNAL LOOP ***************** -! - IF (FRST.AND.CALAOU .OR. .NOT.FRST.AND.CALAIN) THEN - CALL CALCACT - - ELSE - GOTO 20 - ENDIF -10 CONTINUE -! -! *** CALCULATE OBJECTIVE FUNCTION ************************************ -! -20 FUNCK1 = MOLAL(9)*MOLAL(6)/A3 - ONE -! -! *** END OF FUNCTION FUNCK1 **************************************** -! - End Function Funck1 - - - Subroutine Init_IsoData() - Integer :: I - - Temp = 298.0 - RH = 0.9D0 - - MOLAL = NIONS*0.0D0 - MOLALR = NPAIR*0.0D0 - GAMA = NPAIR*0.1D0 - GAMOU = NPAIR*1D10 - GAMIN = NPAIR*1D10 - CALAIN = .TRUE. - CALAOU = .TRUE. - ICLACT = 0 -! - Do I=1,NERRMX - ERRSTK(I) = 0 - ERRMSG(I) = ' ' - End Do - NOFER = 0 - STKOFL = .FALSE. - IPROB = 0 - METSTBL = 0 -#if defined( ISORROPIA_V22 ) - VERSION = '2.2 (03/21/12)' -#else - VERSION = '2.0 (03/19/07)' -#endif -! -! *** ZSR RELATIONSHIP PARAMETERS ************************************** -! -! awas= ammonium sulfate -! - AWAS(1:10) = 187.72 - AWAS(11:NZSR) = (/ - & 158.13,134.41,115.37,100.10, 87.86, 78.00, 70.00, 63.45, 58.02, - & 53.46, - & 49.59, 46.26, 43.37, 40.84, 38.59, 36.59, 34.79, 33.16, 31.67, - & 30.31, - & 29.07, 27.91, 26.84, 25.84, 24.91, 24.03, 23.21, 22.44, 21.70, - & 21.01, - & 20.34, 19.71, 19.11, 18.54, 17.99, 17.46, 16.95, 16.46, 15.99, - & 15.54, - & 15.10, 14.67, 14.26, 13.86, 13.47, 13.09, 12.72, 12.36, 12.01, - & 11.67, - & 11.33, 11.00, 10.68, 10.37, 10.06, 9.75, 9.45, 9.15, 8.86, - & 8.57, - & 8.29, 8.01, 7.73, 7.45, 7.18, 6.91, 6.64, 6.37, 6.10, - & 5.83, - & 5.56, 5.29, 5.02, 4.74, 4.47, 4.19, 3.91, 3.63, 3.34, - & 3.05, - & 2.75, 2.45, 2.14, 1.83, 1.51, 1.19, 0.87, 0.56, 0.26, - & 0.1/) -! -! awsn= sodium nitrate -! - AWSN(1:10) = 394.54 - AWSN(11:NZSR) = (/ - & 338.91,293.01,254.73,222.61,195.56,172.76,153.53,137.32,123.65, - & 112.08, - & 102.26, 93.88, 86.68, 80.45, 75.02, 70.24, 66.02, 62.26, 58.89, - & 55.85, - & 53.09, 50.57, 48.26, 46.14, 44.17, 42.35, 40.65, 39.06, 37.57, - & 36.17, - & 34.85, 33.60, 32.42, 31.29, 30.22, 29.20, 28.22, 27.28, 26.39, - & 25.52, - & 24.69, 23.89, 23.12, 22.37, 21.65, 20.94, 20.26, 19.60, 18.96, - & 18.33, - & 17.72, 17.12, 16.53, 15.96, 15.40, 14.85, 14.31, 13.78, 13.26, - & 12.75, - & 12.25, 11.75, 11.26, 10.77, 10.29, 9.82, 9.35, 8.88, 8.42, - & 7.97, - & 7.52, 7.07, 6.62, 6.18, 5.75, 5.32, 4.89, 4.47, 4.05, - & 3.64, - & 3.24, 2.84, 2.45, 2.07, 1.70, 1.34, 0.99, 0.65, 0.31, - & 0.1/) -! -! awsc= sodium chloride -! - AWSC(1:10) = 28.16 - AWSC(11:NZSR) = (/ - & 27.17, 26.27, 25.45, 24.69, 23.98, 23.33, 22.72, 22.14, 21.59, - & 21.08, - & 20.58, 20.12, 19.67, 19.24, 18.82, 18.43, 18.04, 17.67, 17.32, - & 16.97, - & 16.63, 16.31, 15.99, 15.68, 15.38, 15.08, 14.79, 14.51, 14.24, - & 13.97, - & 13.70, 13.44, 13.18, 12.93, 12.68, 12.44, 12.20, 11.96, 11.73, - & 11.50, - & 11.27, 11.05, 10.82, 10.60, 10.38, 10.16, 9.95, 9.74, 9.52, - & 9.31, - & 9.10, 8.89, 8.69, 8.48, 8.27, 8.07, 7.86, 7.65, 7.45, - & 7.24, - & 7.04, 6.83, 6.62, 6.42, 6.21, 6.00, 5.79, 5.58, 5.36, - & 5.15, - & 4.93, 4.71, 4.48, 4.26, 4.03, 3.80, 3.56, 3.32, 3.07, - & 2.82, - & 2.57, 2.30, 2.04, 1.76, 1.48, 1.20, 0.91, 0.61, 0.30, - & 0.1/) -! -! awac= ammonium chloride -! - AWAC(1:10) = 1209.00 - AWAC(11:NZSR) = (/ - & 1067.60,949.27,848.62,761.82,686.04,619.16,559.55,505.92,457.25, - & 412.69, - & 371.55,333.21,297.13,262.81,229.78,197.59,165.98,135.49,108.57, - & 88.29, - & 74.40, 64.75, 57.69, 52.25, 47.90, 44.30, 41.27, 38.65, 36.36, - & 34.34, - & 32.52, 30.88, 29.39, 28.02, 26.76, 25.60, 24.51, 23.50, 22.55, - & 21.65, - & 20.80, 20.00, 19.24, 18.52, 17.83, 17.17, 16.54, 15.93, 15.35, - & 14.79, - & 14.25, 13.73, 13.22, 12.73, 12.26, 11.80, 11.35, 10.92, 10.49, - & 10.08, - & 9.67, 9.28, 8.89, 8.51, 8.14, 7.77, 7.42, 7.06, 6.72, - & 6.37, - & 6.03, 5.70, 5.37, 5.05, 4.72, 4.40, 4.08, 3.77, 3.45, - & 3.14, - & 2.82, 2.51, 2.20, 1.89, 1.57, 1.26, 0.94, 0.62, 0.31, - & 0.1/) -! -! awss= sodium sulfate -! - AWSS(1:10) = 24.10 - AWSS(11:NZSR) = (/ - & 23.17, 22.34, 21.58, 20.90, 20.27, 19.69, 19.15, 18.64, 18.17, - & 17.72, - & 17.30, 16.90, 16.52, 16.16, 15.81, 15.48, 15.16, 14.85, 14.55, - & 14.27, - & 13.99, 13.73, 13.47, 13.21, 12.97, 12.73, 12.50, 12.27, 12.05, - & 11.84, - & 11.62, 11.42, 11.21, 11.01, 10.82, 10.63, 10.44, 10.25, 10.07, - & 9.89, - & 9.71, 9.53, 9.36, 9.19, 9.02, 8.85, 8.68, 8.51, 8.35, - & 8.19, - & 8.02, 7.86, 7.70, 7.54, 7.38, 7.22, 7.06, 6.90, 6.74, - & 6.58, - & 6.42, 6.26, 6.10, 5.94, 5.78, 5.61, 5.45, 5.28, 5.11, - & 4.93, - & 4.76, 4.58, 4.39, 4.20, 4.01, 3.81, 3.60, 3.39, 3.16, - & 2.93, - & 2.68, 2.41, 2.13, 1.83, 1.52, 1.19, 0.86, 0.54, 0.25, - & 0.1/) -! -! awab= ammonium bisulfate -! - AWAB(1:10) = 312.84 - AWAB(11:NZSR) = (/ - & 271.43,237.19,208.52,184.28,163.64,145.97,130.79,117.72,106.42, - & 96.64, - & 88.16, 80.77, 74.33, 68.67, 63.70, 59.30, 55.39, 51.89, 48.76, - & 45.93, - & 43.38, 41.05, 38.92, 36.97, 35.18, 33.52, 31.98, 30.55, 29.22, - & 27.98, - & 26.81, 25.71, 24.67, 23.70, 22.77, 21.90, 21.06, 20.27, 19.52, - & 18.80, - & 18.11, 17.45, 16.82, 16.21, 15.63, 15.07, 14.53, 14.01, 13.51, - & 13.02, - & 12.56, 12.10, 11.66, 11.24, 10.82, 10.42, 10.04, 9.66, 9.29, - & 8.93, - & 8.58, 8.24, 7.91, 7.58, 7.26, 6.95, 6.65, 6.35, 6.05, - & 5.76, - & 5.48, 5.20, 4.92, 4.64, 4.37, 4.09, 3.82, 3.54, 3.27, - & 2.99, - & 2.70, 2.42, 2.12, 1.83, 1.52, 1.22, 0.90, 0.59, 0.28, - & 0.1/) -! -! awsa= sulfuric acid -! - AWSA = (/34.00, 33.56, 29.22, 26.55, 24.61, 23.11, 21.89, 20.87, - & 19.99, 18.45, - & 17.83, 17.26, 16.73, 16.25, 15.80, 15.38, 14.98, 14.61, 14.26, - & 13.93, - & 13.61, 13.30, 13.01, 12.73, 12.47, 12.21, 11.96, 11.72, 11.49, - & 11.26, - & 11.04, 10.83, 10.62, 10.42, 10.23, 10.03, 9.85, 9.67, 9.49, - & 9.31, - & 9.14, 8.97, 8.81, 8.65, 8.49, 8.33, 8.18, 8.02, 7.87, - & 7.73, - & 7.58, 7.44, 7.29, 7.15, 7.01, 6.88, 6.74, 6.61, 6.47, - & 6.34, - & 6.21, 6.07, 5.94, 5.81, 5.68, 5.55, 5.43, 5.30, 5.17, - & 5.04, - & 4.91, 4.78, 4.65, 4.52, 4.39, 4.26, 4.13, 4.00, 3.86, - & 3.73, - & 3.59, 3.45, 3.31, 3.17, 3.02, 2.87, 2.71, 2.56, 2.39, - & 2.22, - & 2.05, 1.87, 1.68, 1.48, 1.27, 1.04, 0.80, 0.55, 0.28, - & 0.1/) -! -! awlc= (NH4)3H(SO4)2 -! - AWLC(1:10) = 125.37 - AWLC(11:NZSR) = (/ - & 110.10, 97.50, 86.98, 78.08, 70.49, 63.97, 58.33, 53.43, 49.14, - & 45.36, - & 42.03, 39.07, 36.44, 34.08, 31.97, 30.06, 28.33, 26.76, 25.32, - & 24.01, - & 22.81, 21.70, 20.67, 19.71, 18.83, 18.00, 17.23, 16.50, 15.82, - & 15.18, - & 14.58, 14.01, 13.46, 12.95, 12.46, 11.99, 11.55, 11.13, 10.72, - & 10.33, - & 9.96, 9.60, 9.26, 8.93, 8.61, 8.30, 8.00, 7.72, 7.44, - & 7.17, - & 6.91, 6.66, 6.42, 6.19, 5.96, 5.74, 5.52, 5.31, 5.11, - & 4.91, - & 4.71, 4.53, 4.34, 4.16, 3.99, 3.81, 3.64, 3.48, 3.31, - & 3.15, - & 2.99, 2.84, 2.68, 2.53, 2.37, 2.22, 2.06, 1.91, 1.75, - & 1.60, - & 1.44, 1.28, 1.12, 0.95, 0.79, 0.62, 0.45, 0.29, 0.14, - & 0.1/) -! -! awan= ammonium nitrate -! - AWAN(1:10) = 960.19 - AWAN(11:NZSR) = (/ - & 853.15,763.85,688.20,623.27,566.92,517.54,473.91,435.06,400.26, - & 368.89, - & 340.48,314.63,291.01,269.36,249.46,231.11,214.17,198.50,184.00, - & 170.58, - & 158.15,146.66,136.04,126.25,117.24,108.97,101.39, 94.45, 88.11, - & 82.33, - & 77.06, 72.25, 67.85, 63.84, 60.16, 56.78, 53.68, 50.81, 48.17, - & 45.71, - & 43.43, 41.31, 39.32, 37.46, 35.71, 34.06, 32.50, 31.03, 29.63, - & 28.30, - & 27.03, 25.82, 24.67, 23.56, 22.49, 21.47, 20.48, 19.53, 18.61, - & 17.72, - & 16.86, 16.02, 15.20, 14.41, 13.64, 12.89, 12.15, 11.43, 10.73, - & 10.05, - & 9.38, 8.73, 8.09, 7.47, 6.86, 6.27, 5.70, 5.15, 4.61, - & 4.09, - & 3.60, 3.12, 2.66, 2.23, 1.81, 1.41, 1.03, 0.67, 0.32, - & 0.1/) -! -! awsb= sodium bisulfate -! - AWSB(1:10) = 55.99 - AWSB(11:NZSR) = (/ - & 53.79, 51.81, 49.99, 48.31, 46.75, 45.28, 43.91, 42.62, 41.39, - & 40.22, - & 39.10, 38.02, 36.99, 36.00, 35.04, 34.11, 33.21, 32.34, 31.49, - & 30.65, - & 29.84, 29.04, 28.27, 27.50, 26.75, 26.01, 25.29, 24.57, 23.87, - & 23.17, - & 22.49, 21.81, 21.15, 20.49, 19.84, 19.21, 18.58, 17.97, 17.37, - & 16.77, - & 16.19, 15.63, 15.08, 14.54, 14.01, 13.51, 13.01, 12.53, 12.07, - & 11.62, - & 11.19, 10.77, 10.36, 9.97, 9.59, 9.23, 8.87, 8.53, 8.20, - & 7.88, - & 7.57, 7.27, 6.97, 6.69, 6.41, 6.14, 5.88, 5.62, 5.36, - & 5.11, - & 4.87, 4.63, 4.39, 4.15, 3.92, 3.68, 3.45, 3.21, 2.98, - & 2.74, - & 2.49, 2.24, 1.98, 1.72, 1.44, 1.16, 0.87, 0.57, 0.28, - & 0.1/) -! -! awpc= potassium chloride -! - AWPC = (/172.62, 165.75, 159.10, 152.67, 146.46, 140.45, 134.64, - & 129.03, 123.61, 118.38, 113.34, 108.48, 103.79, 99.27, - & 94.93, 90.74, 86.71, 82.84, 79.11, 75.53, 72.09, 68.79, - & 65.63, 62.59, 59.68, 56.90, 54.23, 51.68, 49.24, 46.91, - & 44.68, 42.56, 40.53, 38.60, 36.76, 35.00, 33.33, 31.75, - & 30.24, 28.81, 27.45, 26.16, 24.94, 23.78, 22.68, 21.64, - & 20.66, 19.74, 18.86, 18.03, 17.25, 16.51, 15.82, 15.16, - & 14.54, 13.96, 13.41, 12.89, 12.40, 11.94, 11.50, 11.08, - & 10.69, 10.32, 9.96, 9.62, 9.30, 8.99, 8.69, 8.40, 8.12, - & 7.85, 7.59, 7.33, 7.08, 6.83, 6.58, 6.33, 6.08, 5.84, - & 5.59, 5.34, 5.09, 4.83, 4.57, 4.31, 4.04, 3.76, 3.48, - & 3.19, 2.90, 2.60, 2.29, 1.98, 1.66, 1.33, 0.99, 0.65, - & 0.30, 0.1/) -! -! awps= potassium sulfate -! - AWPS = (/1014.82, 969.72, 926.16, 884.11, 843.54, 804.41, 766.68, - & 730.32, 695.30, 661.58, 629.14, 597.93, 567.92, 539.09, - & 511.41, 484.83, 459.34, 434.89, 411.47, 389.04, 367.58, - & 347.05, 327.43, 308.69, 290.80, 273.73, 257.47, 241.98, - & 227.24, 213.22, 199.90, 187.26, 175.27, 163.91, 153.15, - & 142.97, 133.36, 124.28, 115.73, 107.66, 100.08, 92.95, - & 86.26, 79.99, 74.12, 68.63, 63.50, 58.73, 54.27, 50.14, - & 46.30, 42.74, 39.44, 36.40, 33.59, 31.00, 28.63, 26.45, - & 24.45, 22.62, 20.95, 19.43, 18.05, 16.79, 15.64, 14.61, - & 13.66, 12.81, 12.03, 11.33, 10.68, 10.09, 9.55, 9.06, - & 8.60, 8.17, 7.76, 7.38, 7.02, 6.66, 6.32, 5.98, 5.65, - & 5.31, 4.98, 4.64, 4.31, 3.96, 3.62, 3.27, 2.92, 2.57, - & 2.22, 1.87, 1.53, 1.20, 0.87, 0.57, 0.28, 0.1/) -! -! awpn= potassium nitrate -! - AWPN(1:44) = 1000.00 - AWPN(45:NZSR) = (/ 953.05, 881.09, 813.39, - & 749.78, 690.09, 634.14, 581.77, 532.83, 487.16, 444.61, - & 405.02, 368.26, 334.18, 302.64, 273.51, 246.67, 221.97, - & 199.31, 178.56, 159.60, 142.33, 126.63, 112.40, 99.54, - & 87.96, 77.55, 68.24, 59.92, 52.53, 45.98, 40.2, 35.11, - & 30.65, 26.75, 23.35, 20.40, 17.85, 15.63, 13.72, 12.06, - & 10.61, 9.35, 8.24, 7.25, 6.37, 5.56, 4.82, 4.12, 3.47, - & 2.86, 2.28, 1.74, 1.24, 0.79, 0.40, 0.1/) -! -! awpb= potassium bisulfate -! - AWPB(1:10) = 55.99 - AWPB(11:NZSR) = (/ - & 53.79, 51.81, 49.99, 48.31, 46.75, 45.28, 43.91, 42.62, 41.39, - & 40.22, - & 39.10, 38.02, 36.99, 36.00, 35.04, 34.11, 33.21, 32.34, 31.49, - & 30.65, - & 29.84, 29.04, 28.27, 27.50, 26.75, 26.01, 25.29, 24.57, 23.87, - & 23.17, - & 22.49, 21.81, 21.15, 20.49, 19.84, 19.21, 18.58, 17.97, 17.37, - & 16.77, - & 16.19, 15.63, 15.08, 14.54, 14.01, 13.51, 13.01, 12.53, 12.07, - & 11.62, - & 11.19, 10.77, 10.36, 9.97, 9.59, 9.23, 8.87, 8.53, 8.20, - & 7.88, - & 7.57, 7.27, 6.97, 6.69, 6.41, 6.14, 5.88, 5.62, 5.36, - & 5.11, - & 4.87, 4.63, 4.39, 4.15, 3.92, 3.68, 3.45, 3.21, 2.98, - & 2.74, - & 2.49, 2.24, 1.98, 1.72, 1.44, 1.16, 0.87, 0.57, 0.28, - & 0.1/) -! -! awcc= calcium chloride -! - AWCC = (/19.9, 19.0, 18.15, 17.35, 16.6, 15.89, 15.22, 14.58, - & 13.99, 13.43, 12.90, 12.41, 11.94, 11.50, 11.09, 10.7, - & 10.34, 9.99, 9.67, 9.37, 9.09, 8.83, 8.57, 8.34, 8.12, - & 7.91, 7.71, 7.53, 7.35, 7.19, 7.03, 6.88, 6.74, 6.6, - & 6.47, 6.35, 6.23, 6.12, 6.01, 5.90, 5.80, 5.70, 5.61, - & 5.51, 5.42, 5.33, 5.24, 5.16, 5.07, 4.99, 4.91, 4.82, - & 4.74, 4.66, 4.58, 4.50, 4.42, 4.34, 4.26, 4.19, 4.11, - & 4.03, 3.95, 3.87, 3.79, 3.72, 3.64, 3.56, 3.48, 3.41, - & 3.33, 3.25, 3.17, 3.09, 3.01, 2.93, 2.85, 2.76, 2.68, - & 2.59, 2.50, 2.41, 2.32, 2.23, 2.13, 2.03, 1.93, 1.82, - & 1.71, 1.59, 1.47, 1.35, 1.22, 1.07, 0.93, 0.77, 0.61, - & 0.44, 0.25, 0.1/) -! -! awcn= calcium nitrate -! - AWCN = (/32.89, 31.46, 30.12, 28.84, 27.64, 26.51, 25.44, 24.44, - & 23.49, 22.59, 21.75, 20.96, 20.22, 19.51, 18.85, 18.23, - & 17.64, 17.09, 16.56, 16.07, 15.61, 15.17, 14.75, 14.36, - & 13.99, 13.63, 13.3, 12.98, 12.68, 12.39, 12.11, 11.84, - & 11.59, 11.35, 11.11, 10.88, 10.66, 10.45, 10.24, 10.04, - & 9.84, 9.65, 9.46, 9.28, 9.1, 8.92, 8.74, 8.57, 8.4, - & 8.23, 8.06, 7.9, 7.73, 7.57, 7.41, 7.25, 7.1,6.94, 6.79, - & 6.63, 6.48, 6.33, 6.18, 6.03, 5.89, 5.74, 5.60, 5.46, - & 5.32, 5.17, 5.04, 4.9, 4.76, 4.62, 4.49, 4.35, 4.22, - & 4.08, 3.94, 3.80, 3.66, 3.52, 3.38, 3.23, 3.08, 2.93, - & 2.77, 2.60, 2.43, 2.25, 2.07, 1.87, 1.67, 1.45, 1.22, - & 0.97, 0.72, 0.44, 0.14, 0.1/) -! -! awmc= magnesium chloride -! - AWMC = (/11.24, 10.99, 10.74, 10.5, 10.26, 10.03, 9.81, 9.59, - & 9.38, 9.18, 8.98, 8.79, 8.60, 8.42, 8.25, 8.07, 7.91, - & 7.75, 7.59, 7.44, 7.29, 7.15, 7.01, 6.88, 6.75, 6.62, - & 6.5, 6.38, 6.27, 6.16, 6.05, 5.94, 5.85, 5.75, 5.65, - & 5.56, 5.47, 5.38, 5.30, 5.22, 5.14, 5.06, 4.98, 4.91, - & 4.84, 4.77, 4.7, 4.63, 4.57, 4.5, 4.44, 4.37, 4.31, - & 4.25, 4.19, 4.13, 4.07, 4.01, 3.95, 3.89, 3.83, 3.77, - & 3.71, 3.65, 3.58, 3.52, 3.46, 3.39, 3.33, 3.26, 3.19, - & 3.12, 3.05, 2.98, 2.9, 2.82, 2.75, 2.67, 2.58, 2.49, - & 2.41, 2.32, 2.22, 2.13, 2.03, 1.92, 1.82, 1.71, 1.60, - & 1.48, 1.36, 1.24, 1.11, 0.98, 0.84, 0.70, 0.56, 0.41, - & 0.25, 0.1/) -! -! awmn= magnesium nitrate -! - AWMN = (/12.00, 11.84, 11.68, 11.52, 11.36, 11.2, 11.04, 10.88, - & 10.72, 10.56, 10.40, 10.25, 10.09, 9.93, 9.78, 9.63, - & 9.47, 9.32, 9.17, 9.02, 8.87, 8.72, 8.58, 8.43, 8.29, - & 8.15, 8.01, 7.87, 7.73, 7.59, 7.46, 7.33, 7.2, 7.07, - & 6.94, 6.82, 6.69, 6.57, 6.45, 6.33, 6.21, 6.01, 5.98, - & 5.87, 5.76, 5.65, 5.55, 5.44, 5.34, 5.24, 5.14, 5.04, - & 4.94, 4.84, 4.75, 4.66, 4.56, 4.47, 4.38, 4.29, 4.21, - & 4.12, 4.03, 3.95, 3.86, 3.78, 3.69, 3.61, 3.53, 3.45, - & 3.36, 3.28, 3.19, 3.11, 3.03, 2.94, 2.85, 2.76, 2.67, - & 2.58, 2.49, 2.39, 2.3, 2.2, 2.1, 1.99, 1.88, 1.77, 1.66, - & 1.54, 1.42, 1.29, 1.16, 1.02, 0.88, 0.73, 0.58, 0.42, - & 0.25, 0.1/) -! -! awmn= magnesium sulfate -! - AWMS = (/0.93, 2.5, 3.94, 5.25, 6.45, 7.54, 8.52, 9.40, 10.19, - & 10.89, 11.50, 12.04, 12.51, 12.90, 13.23, 13.50, 13.72, - & 13.88, 13.99, 14.07, 14.1, 14.09, 14.05, 13.98, 13.88, - & 13.75, 13.6, 13.43, 13.25, 13.05, 12.83, 12.61, 12.37, - & 12.13, 11.88, 11.63, 11.37, 11.12, 10.86, 10.60, 10.35, - & 10.09, 9.85, 9.6, 9.36, 9.13, 8.9, 8.68, 8.47, 8.26, - & 8.07, 7.87, 7.69, 7.52, 7.35, 7.19, 7.03, 6.89, 6.75, - & 6.62, 6.49, 6.37, 6.26, 6.15, 6.04, 5.94, 5.84, 5.75, - & 5.65, 5.56, 5.47, 5.38, 5.29, 5.20, 5.11, 5.01, 4.92, - & 4.82, 4.71, 4.60, 4.49, 4.36, 4.24, 4.10, 3.96, 3.81, - & 3.65, 3.48, 3.30, 3.11, 2.92, 2.71, 2.49, 2.26, 2.02, - & 1.76, 1.50, 1.22, 0.94, 0.64/) -! -! *** ZSR RELATIONSHIP PARAMETERS ************************************** -! -! awas= ammonium sulfate -! -! DATA AWAS/33*100.,30,30,30,29.54,28.25,27.06,25.94, -! & 24.89,23.90,22.97,22.10,21.27,20.48,19.73,19.02,18.34,17.69, -! & 17.07,16.48,15.91,15.37,14.85,14.34,13.86,13.39,12.94,12.50, -! & 12.08,11.67,11.27,10.88,10.51,10.14, 9.79, 9.44, 9.10, 8.78, -! & 8.45, 8.14, 7.83, 7.53, 7.23, 6.94, 6.65, 6.36, 6.08, 5.81, -! & 5.53, 5.26, 4.99, 4.72, 4.46, 4.19, 3.92, 3.65, 3.38, 3.11, -! & 2.83, 2.54, 2.25, 1.95, 1.63, 1.31, 0.97, 0.63, 0.30, 0.001/ -! -! awsn= sodium nitrate -! -! DATA AWSN/ 9*1.e5,685.59, -! & 451.00,336.46,268.48,223.41,191.28, -! & 167.20,148.46,133.44,121.12,110.83, -! & 102.09,94.57,88.03,82.29,77.20,72.65,68.56,64.87,61.51,58.44, -! & 55.62,53.03,50.63,48.40,46.32,44.39,42.57,40.87,39.27,37.76, -! & 36.33,34.98,33.70,32.48,31.32,30.21,29.16,28.14,27.18,26.25, -! & 25.35,24.50,23.67,22.87,22.11,21.36,20.65,19.95,19.28,18.62, -! & 17.99,17.37,16.77,16.18,15.61,15.05,14.51,13.98,13.45,12.94, -! & 12.44,11.94,11.46,10.98,10.51,10.04, 9.58, 9.12, 8.67, 8.22, -! & 7.77, 7.32, 6.88, 6.43, 5.98, 5.53, 5.07, 4.61, 4.15, 3.69, -! & 3.22, 2.76, 2.31, 1.87, 1.47, 1.10, 0.77, 0.48, 0.23, 0.001/ -! -! awsc= sodium chloride -! -! DATA AWSC/ -! & 100., 100., 100., 100., 100., 100., 100., 100., 100., 100., -! & 100., 100., 100., 100., 100., 100., 100., 100., 100.,16.34, -! & 16.28,16.22,16.15,16.09,16.02,15.95,15.88,15.80,15.72,15.64, -! & 15.55,15.45,15.36,15.25,15.14,15.02,14.89,14.75,14.60,14.43, -! & 14.25,14.04,13.81,13.55,13.25,12.92,12.56,12.19,11.82,11.47, -! & 11.13,10.82,10.53,10.26,10.00, 9.76, 9.53, 9.30, 9.09, 8.88, -! & 8.67, 8.48, 8.28, 8.09, 7.90, 7.72, 7.54, 7.36, 7.17, 6.99, -! & 6.81, 6.63, 6.45, 6.27, 6.09, 5.91, 5.72, 5.53, 5.34, 5.14, -! & 4.94, 4.74, 4.53, 4.31, 4.09, 3.86, 3.62, 3.37, 3.12, 2.85, -! & 2.58, 2.30, 2.01, 1.72, 1.44, 1.16, 0.89, 0.64, 0.40, 0.18/ -! -! awac= ammonium chloride -! -! DATA AWAC/ -! & 100., 100., 100., 100., 100., 100., 100., 100., 100., 100., -! & 100., 100., 100., 100., 100., 100., 100., 100., 100.,31.45, -! & 31.30,31.14,30.98,30.82,30.65,30.48,30.30,30.11,29.92,29.71, -! & 29.50,29.29,29.06,28.82,28.57,28.30,28.03,27.78,27.78,27.77, -! & 27.77,27.43,27.07,26.67,26.21,25.73,25.18,24.56,23.84,23.01, -! & 22.05,20.97,19.85,18.77,17.78,16.89,16.10,15.39,14.74,14.14, -! & 13.59,13.06,12.56,12.09,11.65,11.22,10.81,10.42,10.03, 9.66, -! & 9.30, 8.94, 8.59, 8.25, 7.92, 7.59, 7.27, 6.95, 6.63, 6.32, -! & 6.01, 5.70, 5.39, 5.08, 4.78, 4.47, 4.17, 3.86, 3.56, 3.25, -! & 2.94, 2.62, 2.30, 1.98, 1.65, 1.32, 0.97, 0.62, 0.26, 0.13/ -! -! awss= sodium sulfate -! -! DATA AWSS/34*1.e5,23*14.30,14.21,12.53,11.47, -! & 10.66,10.01, 9.46, 8.99, 8.57, 8.19, 7.85, 7.54, 7.25, 6.98, -! & 6.74, 6.50, 6.29, 6.08, 5.88, 5.70, 5.52, 5.36, 5.20, 5.04, -! & 4.90, 4.75, 4.54, 4.34, 4.14, 3.93, 3.71, 3.49, 3.26, 3.02, -! & 2.76, 2.49, 2.20, 1.89, 1.55, 1.18, 0.82, 0.49, 0.22, 0.001/ -! -! awab= ammonium bisulfate -! -! DATA AWAB/356.45,296.51,253.21,220.47,194.85, -! & 174.24,157.31,143.16,131.15,120.82, -! & 111.86,103.99,97.04,90.86,85.31,80.31,75.78,71.66,67.90,64.44, -! & 61.25,58.31,55.58,53.04,50.68,48.47,46.40,44.46,42.63,40.91, -! & 39.29,37.75,36.30,34.92,33.61,32.36,31.18,30.04,28.96,27.93, -! & 26.94,25.99,25.08,24.21,23.37,22.57,21.79,21.05,20.32,19.63, -! & 18.96,18.31,17.68,17.07,16.49,15.92,15.36,14.83,14.31,13.80, -! & 13.31,12.83,12.36,11.91,11.46,11.03,10.61,10.20, 9.80, 9.41, -! & 9.02, 8.64, 8.28, 7.91, 7.56, 7.21, 6.87, 6.54, 6.21, 5.88, -! & 5.56, 5.25, 4.94, 4.63, 4.33, 4.03, 3.73, 3.44, 3.14, 2.85, -! & 2.57, 2.28, 1.99, 1.71, 1.42, 1.14, 0.86, 0.57, 0.29, 0.001/ -! -! awsa= sulfuric acid -! -! DATA AWSA/ -! & 34.0,33.56,29.22,26.55,24.61,23.11,21.89,20.87,19.99, -! & 19.21,18.51,17.87,17.29,16.76,16.26,15.8,15.37,14.95,14.56, -! & 14.20,13.85,13.53,13.22,12.93,12.66,12.40,12.14,11.90,11.67, -! & 11.44,11.22,11.01,10.8,10.60,10.4,10.2,10.01,9.83,9.65,9.47, -! & 9.3,9.13,8.96,8.81,8.64,8.48,8.33,8.17,8.02,7.87,7.72,7.58, -! & 7.44,7.30,7.16,7.02,6.88,6.75,6.61,6.48,6.35,6.21,6.08,5.95, -! & 5.82,5.69,5.56,5.44,5.31,5.18,5.05,4.92,4.79,4.66,4.53,4.40, -! & 4.27,4.14,4.,3.87,3.73,3.6,3.46,3.31,3.17,3.02,2.87,2.72, -! & 2.56,2.4,2.23,2.05,1.87,1.68,1.48,1.27,1.05,0.807,0.552,0.281/ -! -! awlc= (NH4)3H(SO4)2 -! -! DATA AWLC/34*1.e5,17.0,16.5,15.94,15.31,14.71,14.14, -! & 13.60,13.08,12.59,12.12,11.68,11.25,10.84,10.44,10.07, 9.71, -! & 9.36, 9.02, 8.70, 8.39, 8.09, 7.80, 7.52, 7.25, 6.99, 6.73, -! & 6.49, 6.25, 6.02, 5.79, 5.57, 5.36, 5.15, 4.95, 4.76, 4.56, -! & 4.38, 4.20, 4.02, 3.84, 3.67, 3.51, 3.34, 3.18, 3.02, 2.87, -! & 2.72, 2.57, 2.42, 2.28, 2.13, 1.99, 1.85, 1.71, 1.57, 1.43, -! & 1.30, 1.16, 1.02, 0.89, 0.75, 0.61, 0.46, 0.32, 0.16, 0.001/ -! -! awan= ammonium nitrate -! -! DATA AWAN/31*1.e5, -! & 97.17,92.28,87.66,83.15,78.87,74.84,70.98,67.46,64.11, -! & 60.98,58.07,55.37,52.85,50.43,48.24,46.19,44.26,42.40,40.70, -! & 39.10,37.54,36.10,34.69,33.35,32.11,30.89,29.71,28.58,27.46, -! & 26.42,25.37,24.33,23.89,22.42,21.48,20.56,19.65,18.76,17.91, -! & 17.05,16.23,15.40,14.61,13.82,13.03,12.30,11.55,10.83,10.14, -! & 9.44, 8.79, 8.13, 7.51, 6.91, 6.32, 5.75, 5.18, 4.65, 4.14, -! & 3.65, 3.16, 2.71, 2.26, 1.83, 1.42, 1.03, 0.66, 0.30, 0.001/ -! -! awsb= sodium bisulfate -! -! DATA AWSB/173.72,156.88,142.80,130.85,120.57, -! & 111.64,103.80,96.88,90.71,85.18, -! & 80.20,75.69,71.58,67.82,64.37,61.19,58.26,55.53,53.00,50.64, -! & 48.44,46.37,44.44,42.61,40.90,39.27,37.74,36.29,34.91,33.61, -! & 32.36,31.18,30.05,28.97,27.94,26.95,26.00,25.10,24.23,23.39, -! & 22.59,21.81,21.07,20.35,19.65,18.98,18.34,17.71,17.11,16.52, -! & 15.95,15.40,14.87,14.35,13.85,13.36,12.88,12.42,11.97,11.53, -! & 11.10,10.69,10.28, 9.88, 9.49, 9.12, 8.75, 8.38, 8.03, 7.68, -! & 7.34, 7.01, 6.69, 6.37, 6.06, 5.75, 5.45, 5.15, 4.86, 4.58, -! & 4.30, 4.02, 3.76, 3.49, 3.23, 2.98, 2.73, 2.48, 2.24, 2.01, -! & 1.78, 1.56, 1.34, 1.13, 0.92, 0.73, 0.53, 0.35, 0.17, 0.001/ - - END SUBROUTINE Init_IsoData - - END MODULE ISORROPIAII_MAIN_MOD diff --git a/Interfaces/GCClassic/gc_classic_version.H.in b/Interfaces/GCClassic/gc_classic_version.H.in index dd06f0d16..e27dbcf3d 100644 --- a/Interfaces/GCClassic/gc_classic_version.H.in +++ b/Interfaces/GCClassic/gc_classic_version.H.in @@ -1,3 +1,3 @@ - ! Get the GEOS-Chem Cloassic version number from CMake + ! Get the GEOS-Chem Classic version number from CMake CHARACTER(LEN=30) :: GC_CLASSIC_VERSION GC_CLASSIC_VERSION = '@PROJECT_VERSION@' diff --git a/Interfaces/GCClassic/main.F90 b/Interfaces/GCClassic/main.F90 index 5cd814855..6a0c87ff0 100644 --- a/Interfaces/GCClassic/main.F90 +++ b/Interfaces/GCClassic/main.F90 @@ -61,12 +61,12 @@ PROGRAM GEOS_Chem !-------------------------------------------------------------------------- ! GEOS-Chem chemistry modules !-------------------------------------------------------------------------- - USE AEROSOL_MOD, ONLY : Set_AerMass_Diagnostic USE CARBON_MOD ! For SOA simulation USE CHEMISTRY_MOD ! Driver routines for chemistry USE LINEAR_CHEM_MOD ! For linearized chemistry above chem grid USE MERCURY_MOD ! For offline Hg simulation (driver) USE OCEAN_MERCURY_MOD ! For offline Hg simulation (ocean model) + USE Photolysis_Mod, ONLY : Init_Photolysis USE TOMS_MOD ! For overhead O3 columns (for FAST-J) USE UCX_MOD ! For unified trop-strat chemistry USE UVALBEDO_MOD ! For reading UV albedoes (for FAST-J) @@ -82,10 +82,6 @@ PROGRAM GEOS_Chem !-------------------------------------------------------------------------- ! GEOS-Chem diagnostics modules !-------------------------------------------------------------------------- -#ifdef BPCH_DIAG - USE DIAG_MOD ! G-C diagnostic arrays & counters - USE CMN_DIAG_MOD ! Logical switches for G-C diagnostics -#endif USE PLANEFLIGHT_MOD ! For planeflight track diag USE HISTORY_MOD ! Updated netCDF diagnostics USE OBSPACK_MOD ! For ObsPack diagnostics @@ -116,6 +112,7 @@ PROGRAM GEOS_Chem !-------------------------------------------------------------------------- USE Calc_Met_Mod ! Met field calculations USE FLEXGRID_READ_MOD ! For reading FLEXGRID data + USE Set_Boundary_Conditions_Mod ! For setting nested-grid boundary conditions #ifdef EXCHANGE USE EXCHANGE_MOD ! For two-way coupled simulations #endif @@ -193,9 +190,9 @@ PROGRAM GEOS_Chem !----------------------------- ! Logicals - LOGICAL :: prtDebug LOGICAL :: TimeForEmis LOGICAL :: notDryRun + LOGICAL :: VerboseAndRoot ! Integers INTEGER :: I, IOS, J @@ -251,6 +248,12 @@ PROGRAM GEOS_Chem ! (mlong, bmy, 7/30/12) LOGICAL, PARAMETER :: am_I_Root = .TRUE. +#ifdef RRTMG + ! For stratospheric adjustment + REAL(f8), ALLOCATABLE :: DT_3D(:,:,:) + REAL(f8), ALLOCATABLE :: HR_3D(:,:,:) +#endif + !========================================================================== ! GEOS-CHEM starts here! !========================================================================== @@ -320,21 +323,10 @@ PROGRAM GEOS_Chem ! Add timers for various operations CALL Timer_Add( "GEOS-Chem", RC ) - CALL Timer_Add( "Initialization", RC ) CALL Timer_Add( "HEMCO", RC ) CALL Timer_Add( "All chemistry", RC ) - CALL Timer_Add( "=> FlexChem", RC ) - CALL Timer_Add( " -> FlexChem loop", RC ) - CALL Timer_Add( " -> Init KPP", RC ) - CALL Timer_Add( " -> Het chem rates", RC ) - CALL Timer_Add( " -> Photolysis rates", RC ) - CALL Timer_Add( " -> KPP", RC ) - CALL Timer_Add( " RCONST", RC ) - CALL Timer_Add( " Integrate 1", RC ) - CALL Timer_Add( " Integrate 2", RC ) - CALL Timer_Add( " -> Prod/loss diags", RC ) - CALL Timer_Add( " -> OH reactivity diag", RC ) - CALL Timer_Add( "=> FAST-JX photolysis", RC ) + CALL Timer_Add( "=> Gas-phase chem", RC ) + CALL Timer_Add( "=> Photolysis", RC ) CALL Timer_Add( "=> Aerosol chem", RC ) CALL Timer_Add( "=> Linearized chem", RC ) CALL Timer_Add( "Transport", RC ) @@ -345,21 +337,11 @@ PROGRAM GEOS_Chem #ifdef RRTMG CALL Timer_Add( "RRTMG", RC ) #endif - CALL Timer_Add( "All diagnostics", RC ) - CALL Timer_Add( "=> HEMCO diagnostics", RC ) -#ifdef BPCH_DIAG - CALL Timer_Add( "=> Binary punch diagnostics", RC ) -#endif - CALL Timer_Add( "=> ObsPack diagnostics", RC ) - CALL Timer_Add( "=> History (netCDF diags)", RC ) + CALL Timer_Add( "Diagnostics", RC ) CALL Timer_Add( "Unit conversions", RC ) - CALL Timer_Add( "Input", RC ) - CALL Timer_Add( "Output", RC ) - CALL Timer_Add( "Finalization", RC ) ! Start running the main and initialization timer CALL Timer_Start( "GEOS-Chem", RC ) - CALL Timer_Start( "Initialization", RC ) ENDIF !-------------------------------------------------------------------------- @@ -425,14 +407,11 @@ PROGRAM GEOS_Chem CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - ! Set a flag to denote if we should print debug output - prtDebug = ( Input_Opt%LPRT .and. am_I_Root ) - - ! Turn off debug output for the dry-runs simulation - prtDebug = ( prtDebug .and. notDryRun ) + ! Turn off verbose output for the dry-run simulation + VerboseAndRoot = ( Input_Opt%Verbose .and. notDryRun ) ! Debug output - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a READ_INPUT_FILE' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a READ_INPUT_FILE' ) !-------------------------------------------------------------------------- ! %%%% REPLICATING GCHP FUNCTIONALITY IN EXISTING GEOS-CHEM %%%% @@ -447,8 +426,7 @@ PROGRAM GEOS_Chem !-------------------------------------------------------------------------- IF ( notDryRun ) THEN IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "=> History (netCDF diags)", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF ! Initialize the Diag_List (list of all diagnostics) @@ -467,14 +445,13 @@ PROGRAM GEOS_Chem CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Print_DiagList( Input_Opt%amIRoot, Diag_List, RC ) CALL Print_TaggedDiagList( Input_Opt%amIRoot, TaggedDiag_List, RC ) ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "=> History (netCDF diags)", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF @@ -602,17 +579,6 @@ PROGRAM GEOS_Chem ENDIF #endif -#ifdef BPCH_DIAG - !-------------------------------------------------------------------------- - ! Initialize bpch diagnostic arrays and counters - !-------------------------------------------------------------------------- - IF ( notDryRun ) THEN - CALL Initialize( Input_Opt, State_Grid, 2, RC ) - CALL Initialize( Input_Opt, State_Grid, 3, RC ) - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a INITIALIZE' ) - ENDIF -#endif - !-------------------------------------------------------------------------- ! Register the horizontal and vertical grid information so that ! the History component can use it for netCDF metadata @@ -650,8 +616,7 @@ PROGRAM GEOS_Chem ! ***** H I S T O R Y I N I T I A L I Z A T I O N ***** !-------------------------------------------------------------------------- IF ( Input_Opt%useTimers .and. notDryRun ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "=> History (netCDF diags)", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF ! For now, just hardwire the input file for the History component @@ -669,8 +634,7 @@ PROGRAM GEOS_Chem ENDIF IF ( Input_Opt%useTimers .and. notDryRun ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "=> History (netCDF diags)", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF !-------------------------------------------------------------------------- @@ -748,19 +712,13 @@ PROGRAM GEOS_Chem ENDIF ENDIF - ! Initialize chemistry - ! Moved here because some of the variables are used for non-local - ! PBL mixing BEFORE the first call of the chemistry routines - ! (ckeller, 05/19/14). - IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. & - Input_Opt%ITS_AN_AEROSOL_SIM .or. & - Input_Opt%ITS_A_MERCURY_SIM .or. & - Input_Opt%ITS_A_CARBON_SIM ) THEN - CALL Init_Chemistry( Input_Opt, State_Chm, State_Diag, State_Grid, RC ) - - ! Trap potential errors + ! Initialize photolysis, including reading files for optical properties + IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. & + Input_Opt%ITS_AN_AEROSOL_SIM .or. & + Input_Opt%ITS_A_MERCURY_SIM ) THEN + CALL Init_Photolysis( Input_Opt, State_Grid, State_Chm, State_Diag, RC ) IF ( RC /= GC_SUCCESS ) THEN - ErrMsg = 'Error encountered in "Init_Chemistry"!' + ErrMsg = 'Error encountered in "Init_Photolysis"!' CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF ENDIF @@ -771,7 +729,7 @@ PROGRAM GEOS_Chem ! Initialize the UCX routines CALL INIT_UCX( Input_Opt, State_Chm, State_Diag, State_Grid ) - IF ( prtDebug ) CALL DEBUG_MSG( '### MAIN: a INIT_UCX' ) + IF ( VerboseAndRoot ) CALL DEBUG_MSG( '### MAIN: a INIT_UCX' ) ! Capture initial state of atmosphere for STE flux calc (ltm, 06/10/12) IF ( Input_Opt%LINEAR_CHEM .and. notDryRun ) THEN @@ -813,10 +771,6 @@ PROGRAM GEOS_Chem #endif !----------------------------------------------------------------------------- - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "Initialization", RC ) - ENDIF - !=========================================================================== ! ***** O U T E R T I M E S T E P L O O P ***** !=========================================================================== @@ -861,8 +815,7 @@ PROGRAM GEOS_Chem !--------------------------------------------------------------------- IF ( notDryRun ) THEN IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "=> History (netCDF diags)", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF ! Write collections (such as BoundaryConditions) that need @@ -876,8 +829,7 @@ PROGRAM GEOS_Chem ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "=> History (netCDF diags)", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF @@ -905,7 +857,7 @@ PROGRAM GEOS_Chem YEAR = GET_YEAR() ELAPSED_TODAY = ( HOUR * 3600 ) + ( MINUTE * 60 ) + SECOND - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a SET_CURRENT_TIME' ) ENDIF @@ -917,8 +869,7 @@ PROGRAM GEOS_Chem !--------------------------------------------------------------------- IF ( notDryRun ) THEN IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "=> History (netCDF diags)", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF CALL Zero_Diagnostics_StartOfTimestep( Input_Opt, State_Diag, RC ) @@ -928,8 +879,7 @@ PROGRAM GEOS_Chem ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "=> History (netCDF diags)", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF @@ -944,7 +894,6 @@ PROGRAM GEOS_Chem !===================================================================== IF ( Input_Opt%useTimers ) THEN CALL Timer_Start( "HEMCO", RC ) - CALL Timer_Start( "Input", RC ) ENDIF ! Is it time for emissions? @@ -962,10 +911,9 @@ PROGRAM GEOS_Chem IF ( Input_Opt%useTimers ) THEN CALL Timer_End( "HEMCO", RC ) - CALL Timer_End( "Input", RC ) ENDIF - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a HEMCO PHASE 1' ) ENDIf @@ -974,9 +922,7 @@ PROGRAM GEOS_Chem !===================================================================== IF ( notDryRun ) THEN IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "=> HEMCO diagnostics", RC ) - CALL Timer_Start( "Output", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF ! Do not do actual output for dry-run @@ -991,9 +937,7 @@ PROGRAM GEOS_Chem ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "=> HEMCO diagnostics", RC ) - CALL Timer_End( "Output", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF @@ -1004,8 +948,7 @@ PROGRAM GEOS_Chem ( ELAPSED_TODAY == 0 ) .and. notDryRun ) THEN IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "=> ObsPack diagnostics", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF ! Initialize Obspack for the new day @@ -1018,86 +961,10 @@ PROGRAM GEOS_Chem ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "=> ObsPack diagnostics", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF -#ifdef BPCH_DIAG - !===================================================================== - ! ***** W R I T E B P C H D I A G N O S T I C S ***** - !===================================================================== - IF ( ITS_TIME_FOR_BPCH( Input_Opt ) .and. notDryRun ) THEN - - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "=> Binary punch diagnostics", RC ) - CALL Timer_Start( "Output", RC ) - ENDIF - - ! Set time at end of diagnostic timestep - CALL SET_DIAGe( TAU ) - - ! Write bpch file - IF ( Input_Opt%DO_DIAG_WRITE ) THEN - ! Write data to the "trac_avg." bpch file - CALL DIAG3( Input_Opt, State_Chm, State_Grid, State_Met, RC ) - - ! Flush file units - CALL CTM_FLUSH() - ENDIF - - ! Set time at beginning of next diagnostic timestep - CALL SET_DIAGb( TAU ) - - !================================================================== - ! ***** Z E R O B P C H D I A G N O S T I C S ***** - !================================================================== - CALL INITIALIZE( Input_Opt, State_Grid, 2, RC ) - CALL INITIALIZE( Input_Opt, State_Grid, 3, RC ) - - IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "=> Binary punch diagnostics", RC ) - CALL Timer_End( "Output", RC ) - ENDIF - ENDIF -#endif - -#ifdef GTMM_Hg -#ifdef BPCH_DIAG - !==================================================================== - ! ***** W R I T E G T M M R E S T A R T F I L E ***** - ! ***** MUST be done after call to diag3 **** - ! - ! %%%%% NOTE: THIS MAY BE BROKEN %%%% - !==================================================================== - ! Make land restart file: for GTMM runs only, beginning of each - ! month but not start of the run. - IF ( LGTMM .AND. ITS_A_NEW_MONTH() .AND. NYMD /= NYMDb ) THEN - IF (.NOT.( ITS_TIME_FOR_BPCH( Input_Opt ) )) THEN - - ! Get the species ID (NNN) from the wetdep ID (N) - N = 1 - NNN = State_Chm%Map_Wetdep(N) - - DO - ! Exit once we encounter Hg2 - If ( State_Chm%SpcData(NNN)%Info%Is_Hg2 ) THEN - EXIT - ENDIF - - ! Get the species ID (NNN) from the wetdep ID (N) - N = N + 1 - NNN = State_Chm%Map_Wetdep(N) - ENDDO - CALL UPDATE_DEP( N ) - ENDIF - CALL MAKE_GTMM_RESTART( Input_Opt, State_Grid, NYMD, NHMS, TAU, RC ) - ENDIF -#endif -#endif - !===================================================================== ! ***** T E S T F O R E N D O F R U N ***** !===================================================================== @@ -1199,7 +1066,7 @@ PROGRAM GEOS_Chem ENDIF ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a INTERP, etc' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a INTERP, etc' ) !--------------------------------------------------------------------- ! %%% GET SOME NON-EMISSIONS DATA FIELDS VIA HEMCO %%% @@ -1238,7 +1105,7 @@ PROGRAM GEOS_Chem id_CH4 > 0 .and. & notDryRun ) THEN - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL DEBUG_MSG( '### MAIN: Setting PBL CH4 conc') ENDIF @@ -1304,7 +1171,7 @@ PROGRAM GEOS_Chem CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a DO_TRANSPORT' ) ENDIF ENDIF @@ -1336,7 +1203,7 @@ PROGRAM GEOS_Chem CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a SETUP_WETSCAV' ) ENDIF ENDIF @@ -1353,6 +1220,32 @@ PROGRAM GEOS_Chem CALL Set_Clock_Tracer( State_Chm, State_Grid ) ENDIF + !===================================================================== + ! ***** B O U N D A R Y C O N D I T I O N S ***** + !===================================================================== + ! Applied in nested-grid simulations only. + ! + ! Even if boundary conditions are only READ via HEMCO at every 3-hours, + ! it has to be imposed on the simulation grid at every time step start + ! to prevent transport in the buffer region from distorting the boundary + ! conditions. + ! + ! Has to be after all HEMCO operations as State_Chm%BoundaryCond needs + ! to be populated. + ! + ! Whether or not this is done after transport is the + ! same since other operations do not change the species concentrations + ! in the buffer zone, but putting it after transport allows for outputs + ! to better reflect the buffer zone's underlying BCs. (hplin, 7/28/23) + IF ( State_Grid%NestedGrid .and. notDryRun ) THEN + CALL Set_Boundary_Conditions( Input_Opt, State_Chm, State_Grid, RC ) + ! Trap potential errors + IF ( RC /= GC_SUCCESS ) THEN + ErrMsg = 'Error encountered in call to "Set_Boundary_Conditions"!' + CALL Error_Stop( ErrMsg, ThisLoc ) + ENDIF + ENDIF + !===================================================================== ! ***** C O M P U T E P B L H E I G H T etc. ***** !===================================================================== @@ -1376,7 +1269,7 @@ PROGRAM GEOS_Chem CALL Timer_End( "Boundary layer mixing", RC ) ENDIF - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a COMPUTE_PBL_HEIGHT' ) ENDIF ENDIF @@ -1391,11 +1284,6 @@ PROGRAM GEOS_Chem !--------------------------------------------------------------------- IF ( ITS_TIME_FOR_EMIS() ) THEN -#ifdef BPCH_DIAG - ! Increment emission counter - CALL Set_Ct_Emis( INCREMENT=.TRUE. ) -#endif - !================================================================== ! ***** D R Y D E P O S I T I O N ***** !================================================================== @@ -1419,7 +1307,7 @@ PROGRAM GEOS_Chem CALL Timer_End ( "Dry deposition", RC ) ENDIF - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a DO_DRYDEP' ) ENDIF ENDIF @@ -1453,7 +1341,7 @@ PROGRAM GEOS_Chem CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a HEMCO PHASE 2' ) ENDIF @@ -1467,11 +1355,6 @@ PROGRAM GEOS_Chem !--------------------------------------------------------------------- IF ( ITS_TIME_FOR_CONV() .and. notDryRun ) THEN -#ifdef BPCH_DIAG - ! Increment the convection timestep - CALL Set_Ct_Conv( INCREMENT=.TRUE. ) -#endif - !================================================================== ! ***** M I X E D L A Y E R M I X I N G ***** !================================================================== @@ -1492,7 +1375,9 @@ PROGRAM GEOS_Chem ENDIF ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a Compute_Sflx_For_Vdiff' ) + IF ( VerboseAndRoot ) THEN + CALL Debug_Msg( '### MAIN: a Compute_Sflx_For_Vdiff' ) + ENDIF ! Note: mixing routine expects tracers in v/v ! DO_MIXING applies the tracer tendencies (dry deposition, @@ -1516,7 +1401,7 @@ PROGRAM GEOS_Chem CALL Timer_End( "Boundary layer mixing", RC ) ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a TURBDAY:2' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a TURBDAY:2' ) !================================================================== ! ***** C L O U D C O N V E C T I O N ***** @@ -1536,7 +1421,7 @@ PROGRAM GEOS_Chem CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a CONVECTION' ) ENDIF @@ -1570,11 +1455,6 @@ PROGRAM GEOS_Chem ! Every chemistry timestep... IF ( ITS_TIME_FOR_CHEM() ) THEN -#ifdef BPCH_DIAG - ! Increment chemistry timestep counter - CALL Set_Ct_Chem( INCREMENT=.TRUE. ) -#endif - ! SDE 05/28/13: Set H2O to State_Chm tracer if relevant IF ( Input_Opt%ITS_A_FULLCHEM_SIM .and. id_H2O > 0 ) THEN CALL Set_H2O_Trac( .FALSE., & @@ -1712,7 +1592,13 @@ PROGRAM GEOS_Chem WRITE( 6, 520 ) State_Diag%RadOutName(N), State_Diag%RadOutInd(N) ! Generate mask for species in RT - CALL Set_SpecMask( State_Diag%RadOutInd(N) ) + CALL Set_SpecMask( State_Diag%RadOutInd(N), State_Chm ) + + ! Dummy values (FDH not available in GC-Classic) + Allocate(DT_3D(0,0,0),Stat=RC) + IF ( RC /= 0 ) Call Error_Stop( 'Error allocating DT_3D', ThisLoc ) + Allocate(HR_3D(0,0,0),Stat=RC) + IF ( RC /= 0 ) Call Error_Stop( 'Error allocating HR_3D', ThisLoc ) ! Compute radiative transfer for the given output CALL Do_RRTMG_Rad_Transfer( ThisDay = Day, & @@ -1726,6 +1612,8 @@ PROGRAM GEOS_Chem State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & + DT_3D = DT_3D, & + HR_3D = HR_3D, & RC = RC ) ! Trap potential errors @@ -1739,7 +1627,7 @@ PROGRAM GEOS_Chem ! Calculate for rest of outputs, if any DO N = 2, State_Diag%nRadOut WRITE( 6, 520 ) State_Diag%RadOutName(N), State_Diag%RadOutInd(N) - CALL Set_SpecMask( State_Diag%RadOutInd(N) ) + CALL Set_SpecMask( State_Diag%RadOutInd(N), State_Chm ) CALL Do_RRTMG_Rad_Transfer( ThisDay = Day, & ThisMonth = Month, & iCld = State_Chm%RRTMG_iCld, & @@ -1751,6 +1639,8 @@ PROGRAM GEOS_Chem State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & + DT_3D = DT_3D, & + HR_3D = HR_3D, & RC = RC ) IF ( RC /= GC_SUCCESS ) THEN ErrMsg = 'Error encountered in "Do_RRTMG_Rad_Transfer", ' // & @@ -1763,15 +1653,13 @@ PROGRAM GEOS_Chem 520 FORMAT( 5x, '- Calling RRTMG to compute fluxes and optics: ', & a4, ' (Index = ', i4.4, ')' ) -#ifdef BPCH_DIAG - ! Increment radiation timestep counter - CALL Set_Ct_Rad( INCREMENT=.TRUE. ) -#endif - - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a DO_RRTMG_RAD_TRANSFER' ) ENDIF + If (Allocated(DT_3D)) Deallocate(DT_3D) + If (Allocated(HR_3D)) Deallocate(HR_3D) + IF ( Input_Opt%useTimers ) THEN CALL Timer_End( "RRTMG", RC ) ENDIF @@ -1792,9 +1680,7 @@ PROGRAM GEOS_Chem ! ***** H I S T O R Y U P D A T E ***** !------------------------------------------------------------------ IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "Output", RC ) - CALL Timer_Start( "=> History (netCDF diags)", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF ! Set State_Diag arrays that rely on state at end of timestep @@ -1845,9 +1731,7 @@ PROGRAM GEOS_Chem ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "Output", RC ) - CALL Timer_End( "=> History (netCDF diags)", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF !------------------------------------------------------------------ @@ -1856,8 +1740,7 @@ PROGRAM GEOS_Chem IF ( Input_Opt%Do_ObsPack ) THEN IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "=> ObsPack diagnostics", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF ! Sample the observations in today's ObsPack file @@ -1865,8 +1748,7 @@ PROGRAM GEOS_Chem State_Diag, State_Grid, State_Met, RC ) IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "=> ObsPack diagnostics", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF @@ -1877,9 +1759,7 @@ PROGRAM GEOS_Chem IF ( Input_Opt%Do_Planeflight .and. ITS_A_NEW_DAY() ) THEN IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC) - CALL Timer_Start( "Output", RC) - CALL Timer_Start( "=> Binary punch diagnostics", RC) + CALL Timer_Start( "Diagnostics", RC) ENDIF ! Initialize planeflight diagnostic @@ -1893,38 +1773,43 @@ PROGRAM GEOS_Chem ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "Output", RC ) - CALL Timer_End( "=> Binary punch diagnostics", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF !------------------------------------------------------------------ ! ***** C H 4 S I M U L A T I O N D I A G N O S I C S ***** + ! + ! Get CH4 columns by applying satellite observational operators !------------------------------------------------------------------ - - ! CH4 columns from the GOSAT instrument - IF ( Input_Opt%GOSAT_CH4_OBS ) THEN + IF ( Input_Opt%Satellite_CH4_Columns ) THEN IF ( ITS_A_NEW_HOUR() ) THEN - CALL CALC_GOSAT_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & - State_Met ) - ENDIF - ENDIF + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Diagnostics", RC) + ENDIF - ! CH4 columns from the AIRS instrument - IF ( Input_Opt%AIRS_CH4_OBS ) THEN - IF ( ITS_A_NEW_HOUR() ) THEN - CALL CALC_AIRS_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & - State_Met ) - ENDIF - ENDIF + ! CH4 columns from the GOSAT instrument + IF ( Input_Opt%GOSAT_CH4_OBS ) THEN + CALL CALC_GOSAT_CH4_FORCE( Input_Opt, State_Chm, & + State_Grid, State_Met ) + ENDIF - ! CH4 columns from the TCCON instrument - IF ( Input_Opt%TCCON_CH4_OBS ) THEN - IF ( ITS_A_NEW_HOUR() ) THEN - CALL CALC_TCCON_CH4_FORCE( Input_Opt, State_Chm, State_Grid, & - State_Met ) + ! CH4 columns from the AIRS instrument + IF ( Input_Opt%AIRS_CH4_OBS ) THEN + CALL CALC_AIRS_CH4_FORCE( Input_Opt, State_Chm, & + State_Grid, State_Met ) + ENDIF + + ! CH4 columns from the TCCON instrument + IF ( Input_Opt%TCCON_CH4_OBS ) THEN + CALL CALC_TCCON_CH4_FORCE( Input_Opt, State_Chm, & + State_Grid, State_Met ) + ENDIF + + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Diagnostics", RC ) + ENDIF ENDIF ENDIF ENDIF @@ -1938,7 +1823,7 @@ PROGRAM GEOS_Chem CALL Timestamp_Diag() CALL Set_Elapsed_Sec() CALL Set_Current_Time() - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: after SET_ELAPSED_SEC' ) ENDIF @@ -1949,8 +1834,7 @@ PROGRAM GEOS_Chem ! ***** C O N T I N U E D ***** !================================================================== IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "Output", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF !------------------------------------------------------------------ @@ -1967,11 +1851,10 @@ PROGRAM GEOS_Chem CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: after Planeflight' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: after Planeflight' ) IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "Output", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF @@ -1985,7 +1868,7 @@ PROGRAM GEOS_Chem IF ( notDryRun ) THEN IF ((mod(get_hour(), 3) .eq. 0) .AND. (get_minute() .eq. 0)) THEN CALL Copy_I3_Fields( State_Met ) - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: after COPY_I3_FIELDS' ) ENDIF ENDIF @@ -1996,9 +1879,7 @@ PROGRAM GEOS_Chem !--------------------------------------------------------------------- IF ( notDryRun ) THEN IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "Output", RC ) - CALL Timer_Start( "=> History (netCDF diags)", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF ! Write HISTORY ITEMS in each diagnostic collection to disk @@ -2012,9 +1893,7 @@ PROGRAM GEOS_Chem ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "Output", RC ) - CALL Timer_End( "=> History (netCDF diags)", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF @@ -2034,14 +1913,9 @@ PROGRAM GEOS_Chem !------------------------------------------------------------------------ ! ***** W R I T E H E M C O R E S T A R T S ***** - ! - ! NOTE: If BPCH_DIAG=y, then this is done above whenever - ! ITS_TIME_FOR_BPCH is TRUE. If BPCH_DIAG=n, then we have to - ! add this here to make sure we get HEMCO restart otuput. !------------------------------------------------------------------------ IF ( Input_Opt%useTimers ) THEN CALL Timer_Start( "HEMCO", RC ) - CALL Timer_Start( "Output", RC ) ENDIF ! Force the output of a HEMCO restart file (ckeller, 4/1/15) @@ -2055,7 +1929,6 @@ PROGRAM GEOS_Chem IF ( Input_Opt%useTimers ) THEN CALL Timer_End( "HEMCO", RC ) - CALL Timer_End( "Output", RC ) ENDIF !------------------------------------------------------------------------ @@ -2066,8 +1939,7 @@ PROGRAM GEOS_Chem IF ( Input_Opt%Do_ObsPack ) THEN IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "All diagnostics", RC ) - CALL Timer_Start( "=> ObsPack diagnostics", RC ) + CALL Timer_Start( "Diagnostics", RC ) ENDIF ! Write any remaining ObsPack data to disk, and immediately @@ -2088,8 +1960,7 @@ PROGRAM GEOS_Chem ENDIF IF ( Input_Opt%useTimers ) THEN - CALL Timer_End( "All diagnostics", RC ) - CALL Timer_End( "=> ObsPack diagnostics", RC ) + CALL Timer_End( "Diagnostics", RC ) ENDIF ENDIF ENDIF @@ -2097,16 +1968,13 @@ PROGRAM GEOS_Chem !-------------------------------------------------------------------------- ! Finalize GEOS-Chem !-------------------------------------------------------------------------- - IF ( Input_Opt%useTimers ) THEN - CALL Timer_Start( "Finalization", RC ) - ENDIF ! Cleanup the dry-run simulation (if necessary) CALL Cleanup_Dry_Run( Input_Opt, RC ) ! Close all files CALL CLOSE_FILES() - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a CLOSE_FILES' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a CLOSE_FILES' ) !%%% NOTE: Call HISTORY_CLEANUP from cleanup.F. This will !%%% close all netCDF files upon both normal or abnormal exits. @@ -2117,7 +1985,7 @@ PROGRAM GEOS_Chem ErrMsg = 'Error encountered in "Cleanup_State_Chm"!' CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a cleanup State_Chm' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a cleanup State_Chm' ) ! Deallocate fields of the Diagnostics State object CALL Cleanup_State_Diag( State_Diag, RC ) @@ -2125,7 +1993,7 @@ PROGRAM GEOS_Chem ErrMsg = 'Error encountered in "Cleanup_State_Diag"!' CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a cleanup State_Diag' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a cleanup State_Diag' ) ! Deallocate fields of the Meteorology State object CALL Cleanup_State_Met( State_Met, RC ) @@ -2133,7 +2001,7 @@ PROGRAM GEOS_Chem ErrMsg = 'Error encountered in "Cleanup_State_Met"!' CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a cleanup State_Met' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a cleanup State_Met' ) ! Deallocate dynamic module arrays CALL CleanUp( Input_Opt, State_Grid, .FALSE., RC ) @@ -2141,7 +2009,7 @@ PROGRAM GEOS_Chem ErrMsg = 'Error encountered in "Cleanup"!' CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a cleanup modules' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a cleanup modules' ) ! Deallocate fields of the Input Options object CALL Cleanup_Input_Opt( Input_Opt, RC ) @@ -2149,7 +2017,7 @@ PROGRAM GEOS_Chem ErrMsg = 'Error encountered in "Cleanup_Input_Opt"!' CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a cleanup Input_Opt' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a cleanup Input_Opt' ) ! Deallocate fields of the Grid State object CALL Cleanup_State_Grid( State_Grid, RC ) @@ -2157,7 +2025,7 @@ PROGRAM GEOS_Chem ErrMsg = 'Error encountered in "Cleanup_State_grid"!' CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a cleanup State_Grid' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a cleanup State_Grid' ) ! Deallocate fields of the diagnostics list object IF ( notDryRun ) THEN @@ -2171,7 +2039,7 @@ PROGRAM GEOS_Chem ErrMsg = 'Error encountered in "Cleanup_TaggedDiagList"!' CALL Error_Stop( ErrMsg, ThisLoc ) ENDIF - IF ( prtDebug ) THEN + IF ( VerboseAndRoot ) THEN CALL Debug_Msg( '### MAIN: a cleanup diag lists' ) ENDIF ENDIF @@ -2205,11 +2073,10 @@ PROGRAM GEOS_Chem IF ( Input_Opt%LGTMM ) CALL CleanupCASAarrays() #endif - IF ( prtDebug ) CALL Debug_Msg( '### MAIN: a CLEANUP' ) + IF ( VerboseAndRoot ) CALL Debug_Msg( '### MAIN: a CLEANUP' ) IF ( Input_Opt%useTimers ) THEN ! Stop remaining timers - CALL Timer_End( "Finalization", RC ) CALL Timer_End( "GEOS-Chem", RC ) ! Print timer output (skip if a dry-run) @@ -2312,15 +2179,6 @@ SUBROUTINE Display_Model_Info() WRITE( 6, 150 ) 'ON' #endif - !----------------------------------------------------------------- - ! Print status of binary punch (bpch) diagnostics - !----------------------------------------------------------------- -#ifdef BPCH_DIAG - WRITE( 6, 160 ) 'ON' -#else - WRITE( 6, 160 ) 'OFF' -#endif - !----------------------------------------------------------------- ! Print status of netCDF diagnostics (aka History) - always on !----------------------------------------------------------------- @@ -2365,43 +2223,6 @@ SUBROUTINE Display_Model_Info() 190 FORMAT( /, '===> SIMULATION START TIME: ', a, ' <===', / ) END SUBROUTINE Display_Model_Info -#ifdef BPCH_DIAG -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: ctm_flush -! -! !DESCRIPTION: Internal subroutine CTM\_FLUSH flushes certain diagnostic -! file buffers to disk. -!\\ -!\\ -! CTM\_FLUSH should normally be called after each diagnostic output, so that -! in case the run dies, the output files from the last diagnostic timestep -! will not be lost. -!\\ -!\\ -! FLUSH is an intrinsic FORTRAN subroutine and takes as input the unit number -! of the file to be flushed to disk. -!\\ -!\\ -! !INTERFACE: -! - SUBROUTINE CTM_Flush() -! -! !REVISION HISTORY: -! 31 Aug 2000 - R. Yantosca - Initial version -! See https://github.com/geoschem/geos-chem for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - - CALL FLUSH( IU_BPCH ) - - END SUBROUTINE CTM_Flush -#endif !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! diff --git a/Interfaces/GCHP/Chem_GridCompMod.F90 b/Interfaces/GCHP/Chem_GridCompMod.F90 index ce1a6cc92..e02e9291b 100644 --- a/Interfaces/GCHP/Chem_GridCompMod.F90 +++ b/Interfaces/GCHP/Chem_GridCompMod.F90 @@ -117,7 +117,7 @@ MODULE Chem_GridCompMod TYPE GCRA_wrap type(GC_run_alarms), pointer :: ptr - END TYPE + END TYPE GCRA_wrap ! For mapping State_Chm%Tracers/Species arrays onto the internal state. TYPE(Int2SpcMap), POINTER :: Int2Spc(:) => NULL() @@ -144,6 +144,8 @@ MODULE Chem_GridCompMod ! When to do the analysis INTEGER :: ANAPHASE + INTEGER, PARAMETER :: CHEMPHASE = 2 + INTEGER, PARAMETER :: RATSPHASE = 2 #endif ! Number of run phases, 1 or 2. Set in the rc file; else default is 2. @@ -152,6 +154,9 @@ MODULE Chem_GridCompMod ! Is this being run as a CTM? INTEGER :: IsCTM + ! Are we reading in dynamical heating? + LOGICAL :: Read_Dyn_Heating + ! Memory debug level INTEGER :: MemDebugLevel @@ -164,6 +169,7 @@ MODULE Chem_GridCompMod ! This option can be used to initialize a simulation using a restart file ! from a 'GEOS-Chem classic' CTM simulation. LOGICAL :: InitFromFile + LOGICAL :: SkipReplayGCC #endif ! Pointers to import, export and internal state data. Declare them as @@ -228,7 +234,6 @@ SUBROUTINE SetServices( GC, RC ) USE inquireMod, ONLY : findFreeLUN USE FILE_MOD, ONLY : IOERROR #if defined( MODEL_GEOS ) - USE CMN_FJX_MOD USE GCKPP_Monitor USE GCKPP_Parameters USE Precision_Mod @@ -236,6 +241,7 @@ SUBROUTINE SetServices( GC, RC ) USE GEOS_Interface, ONLY : MetVars_For_Lightning_Init, & GEOS_CheckRATSandOx USE GEOS_AeroCoupler, ONLY : GEOS_AeroSetServices + USE GEOS_CarbonInterface, ONLY : GEOS_CarbonSetServices #endif ! ! !INPUT/OUTPUT PARAMETERS: @@ -279,7 +285,7 @@ SUBROUTINE SetServices( GC, RC ) LOGICAL :: EOF CHARACTER(LEN=60) :: landTypeStr, importName, simType CHARACTER(LEN=ESMF_MAXPATHLEN):: rstFile - INTEGER :: restartAttr + INTEGER :: SpcRestartAttr CHARACTER(LEN=ESMF_MAXSTR) :: HistoryConfigFile ! HISTORY config file INTEGER :: T @@ -287,21 +293,25 @@ SUBROUTINE SetServices( GC, RC ) TYPE(MAPL_MetaComp), POINTER :: STATE => NULL() #endif + INTEGER :: DoIt + #if defined( MODEL_GEOS ) CHARACTER(LEN=ESMF_MAXSTR) :: LongName ! Long name for diagnostics CHARACTER(LEN=ESMF_MAXSTR) :: ShortName CHARACTER(LEN=255) :: MYFRIENDLIES CHARACTER(LEN=127) :: FullName - INTEGER :: DoIt - LOGICAL :: FriendMoist, SpcInRestart, ReduceSpc + LOGICAL :: FriendMoist, FriendGAAS + LOGICAL :: SpcInRestart, ReduceSpc CHARACTER(LEN=40) :: SpcsBlacklist(255) INTEGER :: nBlacklist CHARACTER(LEN=ESMF_MAXSTR) :: Blacklist #endif #ifdef ADJOINT - INTEGER :: restartAttrAdjoint LOGICAL :: useCFMaskFile #endif +#ifdef RRTMG + INTEGER :: Read_Dyn_Heating_Int +#endif ! Manual internal state entries LOGICAL :: am_I_Root @@ -356,6 +366,14 @@ SUBROUTINE SetServices( GC, RC ) call MAPL_GetResource( STATE, IsCTM, label='GEOSChem_CTM:', & default=1, rc=status ) _VERIFY(STATUS) +#ifdef RRTMG + call MAPL_GetResource( STATE, Read_Dyn_Heating_Int, label='IMPORT_DYN_HEATING:', & + default=0, rc=status ) + _VERIFY(STATUS) + Read_Dyn_Heating = (Read_Dyn_Heating_Int .gt. 0) +#else + Read_Dyn_Heating = .False. +#endif #endif !======================================================================= @@ -377,7 +395,8 @@ SUBROUTINE SetServices( GC, RC ) _VERIFY(STATUS) #if defined(MODEL_GEOS) - CALL GEOS_AeroSetServices( GC, DoAERO, __RC__ ) + CALL GEOS_AeroSetServices ( GC, DoAERO, __RC__ ) + CALL GEOS_CarbonSetServices( GC, myState%myCF, __RC__ ) #endif !======================================================================= @@ -404,6 +423,29 @@ SUBROUTINE SetServices( GC, RC ) VLOCATION = MAPL_VLocationEdge, & RC=STATUS ) _VERIFY(STATUS) + + call MAPL_AddImportSpec(GC, & + SHORT_NAME = 'DryPLE', & + LONG_NAME = 'dry_pressure_level_edges', & + UNITS = 'Pa', & + PRECISION = ESMF_KIND_R8, & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationEdge, & + RC=STATUS ) + _VERIFY(STATUS) + +#ifdef RRTMG + If (Read_Dyn_Heating) Then + call MAPL_AddImportSpec(GC, & + SHORT_NAME = 'DynHeating', & + LONG_NAME = 'dynamical_heating', & + UNITS = 'K_day-1', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationCenter, & + RC=STATUS ) + _VERIFY(STATUS) + End If +#endif #endif !======================================================================= @@ -447,29 +489,33 @@ SUBROUTINE SetServices( GC, RC ) # include "GCHPchem_InternalSpec___.h" #endif -#if !defined( MODEL_GEOS ) - ! Determine if using a restart file for the internal state. Setting - ! the GCHPchem_INTERNAL_RESTART_FILE to +none in GCHP.rc indicates - ! skipping the restart file. Species concentrations will be retrieved - ! from the species database, overwriting MAPL-assigned default values. - CALL ESMF_ConfigGetAttribute( myState%myCF, rstFile, & - Label = "GCHPchem_INTERNAL_RESTART_FILE:",& - __RC__ ) - IF ( TRIM(rstFile) == '+none' ) THEN - restartAttr = MAPL_RestartSkipInitial ! file does not exist; - ! use background values +!------ Species in restart file ------ + +#if defined( MODEL_GEOS ) + ! Determine if non-advected species shall be included in restart file + CALL ESMF_ConfigGetAttribute( myState%myCF, DoIt, & + Label = "Shortlived_species_in_restart:", & + Default = 1, __RC__ ) + IF ( DoIt==1 ) THEN + SpcRestartAttr = MAPL_RestartOptional + SpcInRestart = .TRUE. ELSE - restartAttr = MAPL_RestartOptional ! try to read species from file; - ! use background vals if not found + SpcRestartAttr = MAPL_RestartSkip + SpcInRestart = .FALSE. + ENDIF +#else + ! Determine if all species (SPC_*) are required in initial restart file + CALL ESMF_ConfigGetAttribute( myState%myCF, DoIt, & + Label = "INITIAL_RESTART_SPECIES_REQUIRED:", & + Default = 1, __RC__ ) + IF ( DoIt == 1 ) THEN + SpcRestartAttr = MAPL_RestartRequired + ELSE + SpcRestartAttr = MAPL_RestartOptional ENDIF -#ifdef ADJOINT - restartAttrAdjoint = MAPL_RestartSkip -#endif #endif !-- Read in species from geoschem_config.yml and set FRIENDLYTO - ! ewl TODO: This works but is not ideal. Look into how to remove it. - #if defined( MODEL_GEOS ) ! Check if species are friendly to moist CALL ESMF_ConfigGetAttribute( myState%myCF, DoIt, & @@ -480,15 +526,25 @@ SUBROUTINE SetServices( GC, RC ) IF ( MAPL_am_I_Root() ) THEN WRITE(*,*) 'GCC species friendly to MOIST: ',FriendMoist ENDIF + ! Check if species are friendly to GAAS + CALL ESMF_ConfigGetAttribute( myState%myCF, DoIt, & + Label = "Species_friendly_to_GAAS:",& + Default = 0, & + __RC__ ) + FriendGAAS = (DoIt==1) + IF ( MAPL_am_I_Root() ) THEN + WRITE(*,*) 'GCC species friendly to GAAS: ',FriendGAAS + ENDIF + ! Determine if non-advected species shall be included in restart file CALL ESMF_ConfigGetAttribute( myState%myCF, DoIt, & Label = "Shortlived_species_in_restart:", & Default = 1, __RC__ ) IF ( DoIt==1 ) THEN - restartAttr = MAPL_RestartOptional + SpcRestartAttr = MAPL_RestartOptional SpcInRestart = .TRUE. ELSE - restartAttr = MAPL_RestartSkip + SpcRestartAttr = MAPL_RestartSkip SpcInRestart = .FALSE. ENDIF ! Check if we want to use a reduced set of species for transport @@ -508,7 +564,8 @@ SUBROUTINE SetServices( GC, RC ) ENDIF ENDIF - ! Sulfur-nitrogen-ammonia water content computed in Isorropia after needed in RDAER + ! Sulfur-nitrogen-ammonia water content computed in Isorropia/HETP + ! after needed in RDAER call MAPL_AddInternalSpec(GC, & SHORT_NAME = 'AeroH2O_SNA', & LONG_NAME = 'Sulfur-nitrogen-ammonia water content', & @@ -573,6 +630,29 @@ SUBROUTINE SetServices( GC, RC ) ENDIF ENDDO ENDIF + ! Make some species also friendly to GAAS + IF ( FriendGAAS ) THEN + IF ( TRIM(FullName)== 'DST1' .OR. & + TRIM(FullName)== 'DST2' .OR. & + TRIM(FullName)== 'DST3' .OR. & + TRIM(FullName)== 'DST4' .OR. & + TRIM(FullName)== 'SALA' .OR. & + TRIM(FullName)== 'SALC' .OR. & + TRIM(FullName)== 'OCPI' .OR. & + TRIM(FullName)== 'SOAS' .OR. & + TRIM(FullName)== 'OCPO' .OR. & + TRIM(FullName)== 'BCPI' .OR. & + TRIM(FullName)== 'BCPO' .OR. & + TRIM(FullName)== 'NH4' .OR. & + TRIM(FullName)== 'NIT' .OR. & + TRIM(FullName)== 'NITs' .OR. & + TRIM(FullName)== 'HMS' .OR. & + TRIM(FullName)== 'SO4' ) THEN + MYFRIENDLIES = TRIM(MYFRIENDLIES)//':GAAS' + ENDIF + ENDIF + + ! Now add to internal state CALL MAPL_AddInternalSpec(GC, & SHORT_NAME = TRIM(SPFX)//TRIM(SUBSTRS(1)), & LONG_NAME = TRIM(FullName)// & @@ -602,7 +682,7 @@ SUBROUTINE SetServices( GC, RC ) VLOCATION = MAPL_VLocationCenter, & PRECISION = ESMF_KIND_R8, & FRIENDLYTO = 'DYNAMICS:TURBULENCE:MOIST', & - RESTART = restartAttr, & + RESTART = SpcRestartAttr, & RC = RC ) ! Add to list of transported speces @@ -622,7 +702,7 @@ SUBROUTINE SetServices( GC, RC ) VLOCATION = MAPL_VLocationCenter, & PRECISION = ESMF_KIND_R8, & FRIENDLYTO = 'DYNAMICS:TURBULENCE:MOIST', & - RESTART = restartAttrAdjoint, & + RESTART = MAPL_RestartSkip, & RC = RC ) #endif ENDIF @@ -685,7 +765,7 @@ SUBROUTINE SetServices( GC, RC ) !!!PRECISION = ESMF_KIND_R8, & DIMS = MAPL_DimsHorzVert, & FRIENDLYTO = COMP_NAME, & - RESTART = restartAttr, & + RESTART = SpcRestartAttr, & VLOCATION = MAPL_VLocationCenter, & __RC__ ) ! verbose @@ -700,7 +780,7 @@ SUBROUTINE SetServices( GC, RC ) PRECISION = ESMF_KIND_R8, & DIMS = MAPL_DimsHorzVert, & VLOCATION = MAPL_VLocationCenter, & - RESTART = restartAttr, & + RESTART = SpcRestartAttr, & RC = STATUS ) #ifdef ADJOINT !%%%% GEOS-Chem in GCHP ADJOINT %%%% @@ -714,7 +794,7 @@ SUBROUTINE SetServices( GC, RC ) PRECISION = ESMF_KIND_R8, & DIMS = MAPL_DimsHorzVert, & VLOCATION = MAPL_VLocationCenter, & - RESTART = restartAttrAdjoint, & + RESTART = MAPL_RestartSkip, & RC = STATUS ) #endif #endif @@ -780,7 +860,8 @@ SUBROUTINE SetServices( GC, RC ) RC=STATUS ) _VERIFY(STATUS) - ! Sulfur-nitrogen-ammonia water content computed in Isorropia after needed in RDAER + ! Sulfur-nitrogen-ammonia water content computed in Isorropia/HETP + ! after needed in RDAER call MAPL_AddInternalSpec(GC, & SHORT_NAME = 'AeroH2O_SNA', & LONG_NAME = 'Sulfur-nitrogen-ammonia water content', & @@ -837,6 +918,20 @@ SUBROUTINE SetServices( GC, RC ) RC=STATUS ) _VERIFY(STATUS) +#if defined( RRTMG ) + ! Stratospheric temperature adjustment accumulated when using RRTMG + call MAPL_AddInternalSpec(GC, & + SHORT_NAME = 'TSTRAT_ADJ',& + LONG_NAME = 'Stratospheric T adjustment', & + UNITS = 'K', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationCenter, & + PRECISION = ESMF_KIND_R8, & + FRIENDLYTO = trim(COMP_NAME), & + RC=STATUS ) + _VERIFY(STATUS) + +#endif ! Additional outputs useful for unit conversions and post-processing analysis call MAPL_AddInternalSpec(GC, & SHORT_NAME = 'AREA', & @@ -871,56 +966,44 @@ SUBROUTINE SetServices( GC, RC ) #endif #if defined( MODEL_GEOS ) -!-- Add two exra advected species for use in family transport (Manyin) - - CALL MAPL_AddInternalSpec(GC, & - SHORT_NAME = 'SPC_Bry', & - LONG_NAME = 'Bromine group for use in transport', & - UNITS = 'kg kg-1', & + IF ( SimType == 'fullchem' ) THEN + !-- Add two exra advected species for use in family transport (Manyin) + CALL MAPL_AddInternalSpec(GC, & + SHORT_NAME = 'SPC_Bry', & + LONG_NAME = 'Bromine group for use in transport', & + UNITS = 'kg kg-1', & !!! PRECISION = ESMF_KIND_R8, & - DIMS = MAPL_DimsHorzVert, & - FRIENDLYTO = 'DYNAMICS', & - RESTART = MAPL_RestartSkip, & - VLOCATION = MAPL_VLocationCenter, & - __RC__ ) - if(MAPL_am_I_Root()) write(*,*) 'GCC added to internal: SPC_Bry; Friendly to: DYNAMICS' - - CALL MAPL_AddInternalSpec(GC, & - SHORT_NAME = 'SPC_Cly', & - LONG_NAME = 'Chlorine group for use in transport', & - UNITS = 'kg kg-1', & + DIMS = MAPL_DimsHorzVert, & + FRIENDLYTO = 'DYNAMICS', & + RESTART = MAPL_RestartSkip, & + VLOCATION = MAPL_VLocationCenter, & + __RC__ ) + if(MAPL_am_I_Root()) write(*,*) 'GCC added to internal: SPC_Bry; Friendly to: DYNAMICS' + + CALL MAPL_AddInternalSpec(GC, & + SHORT_NAME = 'SPC_Cly', & + LONG_NAME = 'Chlorine group for use in transport', & + UNITS = 'kg kg-1', & !!! PRECISION = ESMF_KIND_R8, & - DIMS = MAPL_DimsHorzVert, & - FRIENDLYTO = 'DYNAMICS', & - RESTART = MAPL_RestartSkip, & - VLOCATION = MAPL_VLocationCenter, & - __RC__ ) - if(MAPL_am_I_Root()) write(*,*) 'GCC added to internal: SPC_Cly; Friendly to: DYNAMICS' -! - ! Add additional RATs/ANOX exports -! call MAPL_AddExportSpec(GC, & -! SHORT_NAME = 'OX_TEND', & -! LONG_NAME = 'tendency_of_odd_oxygen_mixing_ratio_due_to_chemistry', & -! UNITS = 'mol mol-1 s-1', & -! DIMS = MAPL_DimsHorzVert, & -! VLOCATION = MAPL_VLocationCenter, & -! __RC__ ) - - call MAPL_AddExportSpec(GC, & - SHORT_NAME = 'GCC_O3', & - LONG_NAME = 'ozone_mass_mixing_ratio_total_air', & - UNITS = 'kg kg-1', & - DIMS = MAPL_DimsHorzVert, & - VLOCATION = MAPL_VLocationCenter, & - __RC__ ) - - call MAPL_AddExportSpec(GC, & - SHORT_NAME = 'GCC_O3PPMV', & - LONG_NAME = 'ozone_volume_mixing_ratio_total_air', & - UNITS = 'ppmv', & - DIMS = MAPL_DimsHorzVert, & - VLOCATION = MAPL_VLocationCenter, & - __RC__ ) + DIMS = MAPL_DimsHorzVert, & + FRIENDLYTO = 'DYNAMICS', & + RESTART = MAPL_RestartSkip, & + VLOCATION = MAPL_VLocationCenter, & + __RC__ ) + if(MAPL_am_I_Root()) write(*,*) 'GCC added to internal: SPC_Cly; Friendly to: DYNAMICS' + ENDIF + + ! Include specific humidity in transport tracers simulation checkpoints for + ! post-processing unit conversions + IF ( SimType == 'TransportTracers' ) THEN + CALL MAPL_AddInternalSpec(GC, & + SHORT_NAME = 'SpecificHumidity', & + LONG_NAME = 'specific_humidity', & + UNITS = 'kg kg-1', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationCenter, & + __RC__ ) + ENDIF #endif ! @@ -1000,6 +1083,12 @@ SUBROUTINE SetServices( GC, RC ) CALL MAPL_TimerAdd(GC, NAME="GC_DIAGN" , __RC__) CALL MAPL_TimerAdd(GC, NAME="GC_RAD" , __RC__) +#if defined( MODEL_GEOS ) + IF (Input_Opt%GC_VMBarrier_Run2) THEN + CALL MAPL_TimerAdd(GC, NAME="GC_VMBarrier_Run2" , __RC__) + ENDIF +#endif + ! Generic Set Services ! -------------------- CALL MAPL_GenericSetServices( GC, RC=status ) @@ -1033,9 +1122,11 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) USE TIME_MOD, ONLY : GET_TS_CHEM, GET_TS_EMIS USE TIME_MOD, ONLY : GET_TS_DYN, GET_TS_CONV USE TIME_MOD, ONLY : GET_TS_RAD + Use pfLogger, ONLY : Logger #if defined( MODEL_GEOS ) - USE GEOS_INTERFACE, ONLY : GEOS_AddSpecInfoForMoist - USE GEOS_AeroCoupler, ONLY : GEOS_AeroInit + USE GEOS_INTERFACE, ONLY : GEOS_AddSpecInfoForMoist + USE GEOS_AeroCoupler, ONLY : GEOS_AeroInit + USE GEOS_CarbonInterface, ONLY : GEOS_CarbonInit ! USE TENDENCIES_MOD, ONLY : Tend_CreateClass ! USE TENDENCIES_MOD, ONLY : Tend_Add #endif @@ -1135,8 +1226,7 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) ! Internal run alarms type(GC_run_alarms), pointer :: GC_alarms type(GCRA_wrap) :: GC_alarm_wrapper - TYPE(ESMF_Time) :: startTime ! Simulation start time - TYPE(ESMF_Time) :: currTime + TYPE(ESMF_Time) :: currTime ! Current (start) time TYPE(ESMF_Time) :: ringTime type(ESMF_TimeInterval) :: tsRad_TI type(ESMF_TimeInterval) :: tsChem_TI @@ -1148,7 +1238,6 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) INTEGER :: IL_WORLD, JL_WORLD ! # lower indices in global grid INTEGER :: IU_WORLD, JU_WORLD ! # upper indices in global grid - __Iam__('Initialize_') !======================================================================= @@ -1185,6 +1274,10 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) CALL Set_Input_Opt( MAPL_am_I_Root(), Input_Opt, RC ) _ASSERT(RC==GC_SUCCESS, 'Error calling Set_Input_Opt') + ! Grab the logger for this component + call MAPL_GetLogger(GC, Input_Opt%lgr, __RC__) + Input_Opt%compname = Trim(compname) + ! Root CPU? am_I_Root = MAPL_am_I_Root() @@ -1318,13 +1411,41 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) ENDIF ! Turn off three heterogenous reactions in stratosphere - CALL ESMF_ConfigGetAttribute( GeosCF, DoIt, Default = 0, & + CALL ESMF_ConfigGetAttribute( GeosCF, DoIt, Default = 1, & Label = "TurnOffHetRates:", __RC__ ) Input_Opt%TurnOffHetRates = ( DoIt == 1 ) IF ( Input_Opt%AmIRoot ) THEN WRITE(*,*) 'Disable selected het. reactions in stratosphere: ', & Input_Opt%TurnOffHetRates ENDIF + + ! Check for negatives after KPP integration + CALL ESMF_ConfigGetAttribute( GeosCF, DoIt, Default = -1, & + Label = "KppCheckNegatives:", __RC__ ) + Input_Opt%KppCheckNegatives = DoIt + IF ( Input_Opt%AmIRoot ) THEN + WRITE(*,*) 'Check for negative concentrations after KPP integration: ', & + Input_Opt%KppCheckNegatives + ENDIF + + ! KPP tolerance inflation factor for second attempt + CALL ESMF_ConfigGetAttribute( GeosCF, Val, Default = 1.0, & + Label = "KppTolScale:", __RC__ ) + Input_Opt%KppTolScale = Val + IF ( Input_Opt%AmIRoot ) THEN + WRITE(*,*) 'Scale KPP tolerances in second integration attempt: ', & + Input_Opt%KppTolScale + ENDIF + + ! Parallelization barrier for chemistry in GEOS (VMBarrier after Run2) + CALL ESMF_ConfigGetAttribute( GeosCF, DoIt, Default = -1, & + Label = "GC_VMBarrier_Run2:", & + __RC__ ) + Input_Opt%GC_VMBarrier_Run2 = ( DoIt == 1 ) + IF ( Input_Opt%AmIRoot ) THEN + WRITE(*,*) 'VMBarrier and timing after Run2: ', & + Input_Opt%GC_VMBarrier_Run2 + ENDIF #endif !======================================================================= @@ -1421,11 +1542,6 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) ! Get tracer ID Int2Spc(I)%ID = IND_( TRIM(Int2Spc(I)%Name) ) - ! testing only - !if(MAPL_am_I_Root())then - ! write(*,*) 'Int2Spc setup: ',I,TRIM(SpcInfo%Name),Int2Spc(I)%ID,SpcInfo%ModelID - !endif - ! If tracer ID is not valid, make sure all vars are at least defined. IF ( Int2Spc(I)%ID <= 0 ) THEN Int2Spc(I)%Internal => NULL() @@ -1603,7 +1719,9 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) RadTS = ChemTS End If + !======================================================================= ! Establish the internal alarms for GEOS-Chem + !======================================================================= allocate(GC_alarms,stat=status) _ASSERT(rc==0,'Could not allocate GC alarms') GC_alarm_wrapper%ptr => GC_alarms @@ -1613,25 +1731,24 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) ! Get information about/from the clock CALL ESMF_ClockGet( Clock, & - startTime = startTime, & currTime = currTime, & calendar = cal, & __RC__ ) + ! Set up the radiation alarm ! Must ring once per tsRad call ESMF_TimeIntervalSet(tsRad_TI, S=nint(tsRad), calendar=cal, RC=STATUS) _ASSERT(STATUS==0,'Could not set radiation alarm time interval') - ! Initially, just set the ring time to be midnight on the starting day - call ESMF_TimeGet( startTime, YY = yyyy, MM = mm, DD = dd, H=h, M=m, S=s, rc = STATUS ) - _ASSERT(STATUS==0,'Could not extract start time information') - call ESMF_TimeSet( ringTime, YY = yyyy, MM = mm, DD = dd, H=0, M=0, S=0, rc = STATUS ) + ! Initialize the ring time to midnight on the starting (current) day + call ESMF_TimeGet( currTime, YY=yyyy, MM=mm, DD=dd, H=h, M=m, S=s, rc=STATUS ) + _ASSERT(STATUS==0,'Could not extract ESMF clock current time information') + call ESMF_TimeSet( ringTime, YY=yyyy, MM=mm, DD=dd, H=0, M=0, S=0, rc=STATUS ) _ASSERT(STATUS==0,'Could not set initial radiation alarm ring time') - ! NOTE: RRTMG is run AFTER chemistry has completed. So we actually want the - ! alarm to go off on the chemistry timestep immediately before the target - ! output time. + ! Adjust the alarm to go off on the chemistry timestep immediately before the + ! target output time. This is because RRTMG is run after chemistry. call ESMF_TimeIntervalSet(tsChem_TI, S=nint(tsChem), calendar=cal, RC=STATUS) _ASSERT(STATUS==0,'Could not set chemistry alarm time interval') ringTime = ringTime - tsChem_TI @@ -1658,6 +1775,11 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) _VERIFY(STATUS) end if +#ifdef RRTMG + ! Verify that the GCHP.rc and input.geos settings match + _ASSERT(Read_Dyn_Heating.eqv.Input_Opt%Read_Dyn_Heating,'Mismatch between input.geos and GCHP.rc options for RRTMG dynamical heating') +#endif + #if defined( MODEL_GEOS ) !======================================================================= ! Read GEOSCHEMchem settings @@ -1719,6 +1841,11 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) Default = 0, __RC__ ) InitFromFile = ( DoIt == 1 ) + ! Skip GCC during replay predictor step + CALL ESMF_ConfigGetAttribute( GeosCF, DoIt, Label = "SkipReplayGCC:", & + Default = 0, __RC__ ) + SkipReplayGCC = ( DoIt == 1 ) + ! Always set stratospheric H2O CALL ESMF_ConfigGetAttribute( GeosCF, DoIt, & Label="Prescribe_strat_H2O:", Default=0, __RC__ ) @@ -1746,10 +1873,25 @@ SUBROUTINE Initialize_( GC, Import, Export, Clock, RC ) IF ( am_I_Root ) WRITE(*,*) 'GCC: Bry and Cly family transport disabled' END SELECT + ! Apply H2O tendency to Q? + ! Options: -1=never do it; 0=only if GCC is RATS provider; 1=always do it + Input_Opt%applyQtend = .FALSE. + CALL ESMF_ConfigGetAttribute( GeosCF, DoIt, Label="ApplyQtend:", Default=0, __RC__ ) + IF ( DoIt == 1 ) THEN + Input_Opt%applyQtend = .TRUE. + ELSEIF ( DoIt == 0 ) THEN + CALL ESMF_ConfigGetAttribute( MaplCF, FieldName, Label="RATS_PROVIDER:", Default="PCHEM", __RC__ ) + IF ( TRIM(FieldName) == "GEOSCHEMCHEM" ) Input_Opt%applyQtend = .TRUE. + ENDIF + IF ( am_I_Root ) WRITE(*,*) '- Apply H2O tendency to Q (SPHU): ', Input_Opt%applyQtend + ! Add Henry law constants and scavenging coefficients to internal state. ! These are needed by MOIST for wet scavenging (if this is enabled). CALL GEOS_AddSpecInfoForMoist ( am_I_Root, GC, GeosCF, Input_Opt, State_Chm, __RC__ ) + ! Initialize carbon coupling / CO production from CO2 photolysis (if used) + CALL GEOS_CarbonInit( GC, GeosCF, State_Chm, State_Grid, __RC__ ) + !======================================================================= ! All done !======================================================================= @@ -1884,6 +2026,12 @@ SUBROUTINE Run2 ( GC, Import, Export, Clock, RC ) CHARACTER(LEN=ESMF_MAXSTR) :: Iam INTEGER :: PHASE INTEGER :: STATUS +#if defined( MODEL_GEOS ) + ! Optional VM Barrier for improved timing estimates + ! This can be set from RC (psturm, April 2024) + TYPE(ESMF_VM) :: VM ! ESMF VM object + TYPE(MAPL_MetaComp), POINTER :: STATE +#endif !======================================================================= ! Run2 starts here @@ -1907,6 +2055,21 @@ SUBROUTINE Run2 ( GC, Import, Export, Clock, RC ) ! Call run routine stage 2 CALL Run_ ( GC, IMPORT, EXPORT, CLOCK, PHASE, __RC__ ) + ! Optional timer for run 2 (psturm, April 2024) + ! More realistic timing estimates can detect load imbalances in chemistry + ! Rather than attributing this to transport operations + ! This can be set from GEOSCHEMchem_GridComp.rc +#if defined( MODEL_GEOS ) + IF (Input_Opt%GC_VMBarrier_Run2) THEN + call MAPL_GetObjectFromGC(GC, STATE, __RC__) + call ESMF_VmGetCurrent(VM, RC=STATUS) + _VERIFY(STATUS) + call MAPL_TimerOn(STATE,"GC_VMBarrier_Run2") + call ESMF_VMBarrier(vm, RC=STATUS) + call MAPL_TimerOff(STATE,"GC_VMBarrier_Run2") + ENDIF +#endif + ! Return w/ success _RETURN(ESMF_SUCCESS) @@ -1946,8 +2109,12 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) GEOS_CalcTotOzone, & GEOS_InitFromFile, & GEOS_RATSandOxDiags, & - GEOS_PreRunChecks + GEOS_PreRunChecks, & + GEOS_SetH2O USE GEOS_AeroCoupler, ONLY : GEOS_FillAeroBundle + USE GEOS_CarbonInterface, ONLY : GEOS_CarbonSetConc, & + GEOS_CarbonRunPhoto + USE UnitConv_Mod, ONLY : KG_SPECIES_PER_KG_TOTAL_AIR #endif ! @@ -2044,6 +2211,11 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) REAL(ESMF_KIND_R8), POINTER :: PLE(:,:,:) => NULL() ! INTERNAL: PEDGE #endif + ! RRTMG FDH needs to be able to read in dynamical heating +#ifdef RRTMG + REAL, POINTER :: DynHeating(:,:,:) => NULL() +#endif + ! Initialize variables used for reading Olson and MODIS LAI imports INTEGER :: TT, VV, landTypeInt CHARACTER(len=64) :: landTypeStr, varName, importName @@ -2060,6 +2232,10 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) INTEGER, SAVE :: phms = 0 ! previous time INTEGER, SAVE :: nnRewind = 0 + ! For skipping GCC during predictor step + TYPE(ESMF_Alarm) :: PredictorAlarm ! skip GCC during replay + LOGICAL :: PredictorActive ! skip GCC during replay + #else ! GCHP only local variables INTEGER :: trcID, RST @@ -2181,6 +2357,24 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) IF ( Input_Opt%LTURB .AND. Phase /= 1 ) IsRunTime = .TRUE. IF ( Input_Opt%LWETD .AND. Phase /= 1 ) IsRunTime = .TRUE. + !======================================================================= + ! Skip GCC during replay, predictor step (posturm and cakelle2) + !======================================================================= +#if defined( MODEL_GEOS ) + IF ( SkipReplayGCC ) THEN + CALL ESMF_ClockGetAlarm(CLOCK, "PredictorActive", PredictorAlarm, RC=STATUS) + VERIFY_(STATUS) + + PredictorActive = ESMF_AlarmIsRinging( PredictorAlarm, RC=STATUS ) + VERIFY_(STATUS) + + IF ( PredictorActive ) THEN + IsRunTime = .FALSE. + IF ( am_I_root ) write(*,*) ' --- Skipping GCC during Predictor Step ' + END IF + END IF +#endif + #ifdef ADJOINT if (Input_Opt%is_adjoint .and. first) THEN ! the forward model doesn't actually trigger on the final @@ -2207,6 +2401,12 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) !IF ( IsCTM ) THEN call MAPL_GetPointer ( IMPORT, PLE, 'PLE', __RC__ ) +#ifdef RRTMG + ! Read in dynamical heating rates + If ( Read_Dyn_Heating ) Then + call MAPL_GetPointer ( IMPORT, DynHeating, 'DynHeating', __RC__ ) + End If +#endif !ENDIF ! Pass IMPORT/EXPORT object to HEMCO state object @@ -2306,6 +2506,26 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) where (lonCtr .gt. MAPL_PI ) lonCtr = lonCtr - 2*MAPL_PI #endif +#if defined( MODEL_GEOS ) + ! Check if this time is before the datetime of the prev timestep, e.g. + ! if this is after a clock rewind + AFTERREWIND = .FALSE. + FIRSTREWIND = .FALSE. + IF ( nymd < pymd ) THEN + AFTERREWIND = .TRUE. + ELSEIF ( (nymd == pymd) .AND. (nhms < phms) ) THEN + AFTERREWIND = .TRUE. + ENDIF + + ! If this is after a rewind, check if it's the first rewind. In this + ! case, we need to re-do some first-time assignments to make sure that + ! we reset all variables to the initial state! + IF ( AFTERREWIND ) THEN + nnRewind = nnRewind + 1 + IF ( nnRewind == 1 ) FIRSTREWIND = .TRUE. + ENDIF +#endif + ! Pass grid area [m2] obtained from dynamics component to State_Grid State_Grid%Area_M2 = AREA !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -2392,16 +2612,12 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) State_Chm%SpeciesAdj = State_Chm%SpeciesAdj( :, :, State_Grid%NZ:1:-1, : ) ENDIF #endif - !======================================================================= - ! On first call, also need to initialize the species from restart file. - ! Only need to do this for species that are not advected, i.e. species - ! that are not tracers (all other species arrays will be filled with - ! tracer values anyways!). - ! We only need to do this on the first call because afterwards, species - ! array already contains values from previous chemistry time step - ! (advected species will be updated with tracers) - ! ckeller, 10/27/2014 - !======================================================================= + + !======================================================================= + ! On first call, populate State_Chm%Species(N)%Conc with background + ! values if the species is missing from the restart file and missing + ! species are allowed. + !======================================================================= #ifdef ADJOINT IF ( FIRST .or. Input_Opt%IS_ADJOINT) THEN #else @@ -2417,23 +2633,10 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) ! Loop over all species and get info from spc db DO N = 1, State_Chm%nSpecies ThisSpc => State_Chm%SpcData(N)%Info - IF (ThisSpc%Is_Advected) CYCLE IF ( TRIM(ThisSpc%Name) == '' ) CYCLE IND = IND_( TRIM(ThisSpc%Name ) ) IF ( IND < 0 ) CYCLE - ! Get data from internal state and copy to species array - CALL MAPL_GetPointer( INTERNAL, Ptr3D_R8, TRIM(SPFX) // & - TRIM(ThisSpc%Name), notFoundOK=.TRUE., & - __RC__ ) - IF ( .NOT. ASSOCIATED(Ptr3D_R8) ) THEN - IF ( MAPL_am_I_Root()) WRITE(*,*) & - 'Could not find species in INTERNAL state - will be ' // & - 'initialized to zero: ', TRIM(SPFX), TRIM(ThisSpc%Name) - State_Chm%Species(IND)%Conc(:,:,:) = 1d-26 - CYCLE - ENDIF - ! Determine if species in restart file CALL ESMF_StateGet( INTERNAL, TRIM(SPFX) // TRIM(ThisSpc%Name), & trcFIELD, RC=RC ) @@ -2459,7 +2662,8 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) ENDDO IF ( MAPL_am_I_Root()) THEN WRITE(*,*) & - ' WARNING: using background values from species database' + ' WARNING: using background values from species database'& + //' for species '//trim(ThisSpc%Name) ENDIF ENDIF ThisSpc => NULL() @@ -2548,6 +2752,13 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) ENDIF Ptr3d_R8 => NULL() + CALL MAPL_GetPointer( INTSTATE, Ptr3d_R8, 'TSTRAT_ADJ', notFoundOK=.TRUE., __RC__ ) + IF ( ASSOCIATED(Ptr3d_R8) .AND. ASSOCIATED(State_Chm%TStrat_Adj) ) THEN + State_Chm%TStrat_Adj(:,:,1:State_Grid%NZ) = & + Ptr3d_R8(:,:,State_Grid%NZ:1:-1) + ENDIF + + Ptr3d_R8 => NULL() CALL MAPL_GetPointer( INTSTATE, Ptr2d_R8, 'TropLev', notFoundOK=.TRUE., __RC__ ) IF ( ASSOCIATED(Ptr2d_R8) .AND. ASSOCIATED(State_Met%TropLev) ) THEN State_Met%TropLev = Ptr2d_R8 @@ -2557,9 +2768,20 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) #endif #if defined( MODEL_GEOS ) + ! Set H2O from Q (=SPHU) + CALL GEOS_SetH2O( GC, Input_Opt, State_Met, State_Chm, State_Grid, Q, 1, __RC__ ) + + ! Set appropriate met fields for lightning CALL MetVars_For_Lightning_Run( GC, Import=IMPORT, Export=EXPORT, & State_Met=State_Met, State_Grid=State_Grid, __RC__ ) + ! Set CO2 / mesosphere CO concentrations from external field (e.g., GOCART) + ! Note: comment out for now and call this below immediately before doing + ! CO2 photolysis. Reason for this is that CO2 is currently hardcoded to + ! 0.0 in fullchem to match the old SMVGEAR code (??) +! CALL GEOS_CarbonSetConc( Import, Input_Opt, State_Chm, & +! State_Met, State_Diag, State_Grid, __RC__ ) + ! Eventually initialize species concentrations from external field. IsFirst = ( FIRST .OR. FIRSTREWIND ) IF ( InitFromFile ) THEN @@ -2569,7 +2791,7 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) ENDIF ! Initialize RATS and OX tendency diagnostics - IF ( PHASE == ANAPHASE ) THEN + IF ( PHASE == RATSPHASE ) THEN CALL GEOS_RATSandOxDiags( GC, INTSTATE, Export, Input_Opt, State_Met, & State_Chm, State_Grid, Q, 1, tsChem, __RC__ ) ENDIF @@ -2630,11 +2852,11 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) _ASSERT(RC==GC_SUCCESS,'Error calling Compute_Olson_Landmap') ENDIF +#if defined( MODEL_GEOS ) !======================================================================= ! Get total ozone column from GEOS-Chem export variable. ! Need to calculate from restart variables on first call! !======================================================================= -#if defined( MODEL_GEOS ) IF ( PHASE /= 1 ) THEN CALL GEOS_CalcTotOzone( am_I_Root, State_Met, State_Chm, State_Diag, PLE, TROPP, __RC__ ) ENDIF @@ -2794,6 +3016,19 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) !======================================================================= ! GEOS post-run procedures !======================================================================= + + ! Import CO2 concentrations from external field (e.g., GOCART) + ! Note: this call should be moved to the beginning of the routine once + ! CO2 is not hardcoded to 0.0 anymore (in fullchem) + CALL GEOS_CarbonSetConc( Import, Input_Opt, State_Chm, & + State_Met, State_Diag, State_Grid, __RC__ ) + + IF ( PHASE == CHEMPHASE ) THEN + ! CO production from CO2 photolysis, using StratChem code + CALL GEOS_CarbonRunPhoto( Input_Opt, State_Chm, State_Met, & + State_Diag, State_Grid, __RC__ ) + ENDIF + IF ( PHASE == ANAPHASE ) THEN ! Call GEOS analysis routine CALL GEOS_AnaRun( GC, Import, INTSTATE, Export, Clock, & @@ -2802,12 +3037,19 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) ! GEOS Diagnostics. This includes the 'default' GEOS-Chem diagnostics. CALL GEOS_Diagnostics( GC, IMPORT, EXPORT, Clock, Phase, Input_Opt, & State_Met, State_Chm, State_Diag, State_Grid, __RC__ ) + ENDIF - ! Fill RATS and OX diagnostics + ! Fill RATS and OX diagnostics + IF ( PHASE == RATSPHASE ) THEN CALL GEOS_RATSandOxDiags( GC, INTSTATE, Export, Input_Opt, State_Met, & State_Chm, State_Grid, Q, 2, tsChem, __RC__ ) ENDIF + ! Set H2O from Q (=SPHU) + IF ( Input_Opt%applyQtend ) THEN + CALL GEOS_SetH2O( GC, Input_Opt, State_Met, State_Chm, State_Grid, Q, -1, __RC__ ) + ENDIF + ! Update internal state fields CALL MAPL_TimerOn(STATE, "CP_AFTR") # include "Includes_After_Run.H" @@ -2920,6 +3162,15 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) ENDIF Ptr3d_R8 => NULL() + CALL MAPL_GetPointer( INTSTATE, Ptr3d_R8, 'TSTRAT_ADJ', & + notFoundOK=.TRUE., __RC__ ) + IF (ASSOCIATED(Ptr3d_R8) .AND. ASSOCIATED(State_Met%DELP_DRY) & + .AND. ASSOCIATED(State_Chm%TStrat_Adj) ) THEN + Ptr3d_R8(:,:,State_Grid%NZ:1:-1) = & + State_Chm%TStrat_Adj(:,:,1:State_Grid%NZ) + ENDIF + Ptr3d_R8 => NULL() + CALL MAPL_GetPointer( INTSTATE, Ptr3d_R8, 'BXHEIGHT' ,& notFoundOK=.TRUE., __RC__ ) IF (ASSOCIATED(Ptr3d_R8) .AND. ASSOCIATED(State_Met%BXHEIGHT)) THEN @@ -2944,6 +3195,15 @@ SUBROUTINE Run_( GC, Import, Export, Clock, Phase, RC ) ENDIF Ptr2d_R8 => NULL() ENDIF +#else + ! For GEOS, update specific humidity internal state variable if using. + CALL MAPL_GetPointer( INTSTATE, Ptr3d, 'SpecificHumidity', & + notFoundOK=.TRUE., __RC__ ) + IF ( ASSOCIATED(Ptr3d) ) THEN + Ptr3d(:,:,State_Grid%NZ:1:-1) = & + State_Met%SPHU(:,:,1:State_Grid%NZ) * 1e-3_fp + ENDIF + Ptr3d => NULL() #endif ! Stop timer @@ -3457,7 +3717,6 @@ SUBROUTINE Extract_( GC, Clock, Grid, MaplCF, GeosCF, & ! LOCAL VARIABLES: ! ! Objects - TYPE(ESMF_Time) :: startTime ! ESMF start time obj TYPE(ESMF_Time) :: stopTime ! ESMF stop time obj TYPE(ESMF_Time) :: currTime ! ESMF current time obj TYPE(ESMF_TimeInterval) :: elapsedTime ! ESMF elapsed time obj @@ -3485,6 +3744,10 @@ SUBROUTINE Extract_( GC, Clock, Grid, MaplCF, GeosCF, & CHARACTER(len=ESMF_MAXSTR) :: OUTSTR ! Parallel write nonsense + ! Saved variables + LOGICAL, SAVE :: FIRST = .TRUE. + TYPE(ESMF_Time), SAVE :: startTime + __Iam__('Extract_') !======================================================================= @@ -3618,47 +3881,20 @@ SUBROUTINE Extract_( GC, Clock, Grid, MaplCF, GeosCF, & ! Get the ESMF time object CALL ESMF_ClockGet( Clock, & - startTime = startTime, & stopTime = stopTime, & currTime = currTime, & advanceCount = count, & __RC__ ) - ! Get starting-time fields from the time object - CALL ESMF_TimeGet( startTime, yy=yyyy, mm=mm, dd=dd, dayOfYear=doy, & - h=h, m=m, s=s, __RC__ ) - - ! Save fields for return - IF ( PRESENT( nymd ) ) CALL MAPL_PackTime( nymd, yyyy, mm, dd ) - IF ( PRESENT( nhms ) ) CALL MAPL_PackTime( nhms, h, m, s ) - - ! Get ending-time fields from the time object - CALL ESMF_TimeGet( stopTime, yy=yyyy, mm=mm, dd=dd, dayOfYear=doy, & - h=h, m=m, s=s, __RC__ ) - - ! Save packed fields for return - IF ( PRESENT( nymdE ) ) CALL MAPL_PackTime( nymdE, yyyy, mm, dd ) - IF ( PRESENT( nhmsE ) ) CALL MAPL_PackTime( nhmsE, h, m, s ) - - IF ( PRESENT( advCount ) ) advCount = count - !======================================================================= - ! SDE 2017-01-05: The following calls must be kept as a single block, - ! or the wrong date/time elements will be returned (the yyyy/mm/dd - ! etc variables are re-used). Specifically, the output variables must - ! be set now, before the variables are re-used. + ! Current, start, and end times !======================================================================= - ! Start of current-time block - !======================================================================= - ! Get current-time fields from the time object + + ! Get current-time fields from the time object. Set start/end if first. CALL ESMF_TimeGet( currTime, yy=yyyy, mm=mm, dd=dd, dayOfYear=doy, & h=h, m=m, s=s, __RC__ ) - - ! Save packed fields for return IF ( PRESENT( nymd ) ) CALL MAPL_PackTime( nymd, yyyy, mm, dd ) IF ( PRESENT( nhms ) ) CALL MAPL_PackTime( nhms, h, m, s ) - - ! Save the various extacted current-time fields for return IF ( PRESENT( year ) ) year = yyyy IF ( PRESENT( month ) ) month = mm IF ( PRESENT( day ) ) day = dd @@ -3670,24 +3906,22 @@ SUBROUTINE Extract_( GC, Clock, Grid, MaplCF, GeosCF, & ( DBLE( m )/60d0 ) + & ( DBLE( s )/3600d0 ) - !======================================================================= - ! End of current-time block - !======================================================================= - + ! Simulation start + IF ( FIRST ) THEN + startTime = currTime + ENDIF CALL ESMF_TimeGet( startTime, yy=yyyy, mm=mm, dd=dd, dayOfYear=doy, & - h=h, m=m, s=s, __RC__ ) - - ! Save fields for return - IF ( PRESENT( nymdB ) ) CALL MAPL_PackTime( nymdB, yyyy, mm, dd ) - IF ( PRESENT( nhmsB ) ) CALL MAPL_PackTime( nhmsB, h, m, s ) + h=h, m=m, s=s, __RC__ ) + IF ( PRESENT ( nymdB ) ) CALL MAPL_PackTime( nymdB, yyyy, mm, dd ) + IF ( PRESENT ( nhmsB ) ) CALL MAPL_PackTime( nhmsB, h, m, s ) + ! Simulation end CALL ESMF_TimeGet( stopTime, yy=yyyy, mm=mm, dd=dd, dayOfYear=doy, & h=h, m=m, s=s, __RC__ ) + IF ( PRESENT( nymdE ) ) CALL MAPL_PackTime( nymdE, yyyy, mm, dd ) + IF ( PRESENT( nhmsE ) ) CALL MAPL_PackTime( nhmsE, h, m, s ) - ! Save fields for return - IF ( PRESENT( nymdE ) ) CALL MAPL_PackTime( nymdE, yyyy, mm, dd ) - IF ( PRESENT( nhmsE ) ) CALL MAPL_PackTime( nhmsE, h, m, s ) - + ! # clock steps IF ( PRESENT( advCount ) ) advCount = count ! Compute elapsed time since start of simulation @@ -3778,6 +4012,7 @@ SUBROUTINE Extract_( GC, Clock, Grid, MaplCF, GeosCF, & !======================================================================= ! All done !======================================================================= + FIRST = .FALSE. _RETURN(ESMF_SUCCESS) END SUBROUTINE Extract_ diff --git a/Interfaces/GCHP/Includes_Before_Run.H b/Interfaces/GCHP/Includes_Before_Run.H index 50a50bf71..c3caee2f6 100644 --- a/Interfaces/GCHP/Includes_Before_Run.H +++ b/Interfaces/GCHP/Includes_Before_Run.H @@ -32,12 +32,11 @@ State_Met%CLDFRC = CLDFRC ! 1 State_Met%EFLUX = EFLUX ! W m-2 State_Met%HFLUX = HFLUX ! W/m2 - State_Met%FRLAND = FRLAND ! 1 + State_Met%FRLAND = FRLAND ! 1, excludes lake and ice State_Met%FROCEAN = FROCEAN ! 1 State_Met%FRLAKE = FRLAKE ! 1 - State_Met%FRLANDIC = FRLANDIC ! 1 + State_Met%FRLANDICE = FRLANDIC ! 1 State_Met%FRSEAICE = FRSEAICE ! 1 - State_Met%FRSNO = FRSNO ! 1 State_Met%QV2M = QV2M ! 1 State_Met%PHIS = PHIS / 9.80665d0 ! m State_Met%GWETROOT = GWETROOT ! 1 @@ -63,6 +62,14 @@ State_Met%V10M = V10M ! m/s State_Met%Z0 = Z0 ! m + ! The import FRSNO is fraction of land with snow cover. Convert to + ! fraction of grid box with snow cover for storage in State_Met + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + State_Met%FRSNOW(I,J) = FRSNO(I,J) * State_Met%FRLAND(I,J) + ENDDO + ENDDO + ! Get UV albedo for photolysis Ptr2d => NULL() CALL MAPL_GetPointer ( IMPORT, Ptr2D, 'UV_ALBEDO', & @@ -185,6 +192,14 @@ State_Met%FLASH_DENS = FLASH_DENS ! #/km2/s State_Met%CONV_DEPTH = CONV_DEPTH ! m +#ifdef RRTMG + If (Input_Opt%Read_Dyn_Heating.and.Associated(DynHeating)) Then + ! No longer need to flip the data + !State_Met%DynHeating(:,:,1:State_Grid%NZ) = DynHeating(:,:,State_Grid%NZ:1:-1) ! K/day + State_Met%DynHeating = DynHeating ! K/day + End If +#endif + #ifdef ADJOINT IF (ASSOCIATED(CostFuncMask)) THEN if (MAPL_Am_I_Root()) & diff --git a/Interfaces/GCHP/Registry/Chem_Registry.rc b/Interfaces/GCHP/Registry/Chem_Registry.rc index 78c88168a..937d1128c 100755 --- a/Interfaces/GCHP/Registry/Chem_Registry.rc +++ b/Interfaces/GCHP/Registry/Chem_Registry.rc @@ -43,7 +43,6 @@ HFLUX | 1 | xy | | | | | | | LAI | 1 | xy | | | | | | | QV2M | 1 | xy | | | | | | | - RADLWG | 1 | xy | | | | | | | PARDF | 1 | xy | | | | | | | PARDR | 1 | xy | | | | | | | PBLH | 1 | xy | | | | | | | diff --git a/Interfaces/GCHP/gchp_chunk_mod.F90 b/Interfaces/GCHP/gchp_chunk_mod.F90 index a6c680e9a..3d266c114 100644 --- a/Interfaces/GCHP/gchp_chunk_mod.F90 +++ b/Interfaces/GCHP/gchp_chunk_mod.F90 @@ -68,7 +68,6 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & ! ! !USES: ! - USE Chemistry_Mod, ONLY : Init_Chemistry USE Emissions_Mod, ONLY : Emissions_Init USE GC_Environment_Mod USE GC_Grid_Mod, ONLY : SetGridFromCtr @@ -78,6 +77,7 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & USE Input_Opt_Mod, ONLY : OptInput, Set_Input_Opt USE Linear_Chem_Mod, ONLY : Init_Linear_Chem USE Linoz_Mod, ONLY : Linoz_Read + USE Photolysis_Mod, ONLY : Init_Photolysis USE PhysConstants, ONLY : PI_180 USE Pressure_Mod, ONLY : Init_Pressure USE Roundoff_Mod, ONLY : RoundOff @@ -90,7 +90,10 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & !#endif USE Time_Mod, ONLY : Set_Timesteps USE UCX_MOD, ONLY : INIT_UCX - USE UnitConv_Mod, ONLY : Convert_Spc_Units + + USE UnitConv_Mod + Use Error_Mod, ONLY : Init_Error + #ifdef ADJOINT USE Charpak_Mod, ONLY : To_UpperCase #endif @@ -142,7 +145,7 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & ! ! !LOCAL VARIABLES: ! - INTEGER :: I, J, L, STATUS + INTEGER :: I, J, L, N, STATUS CHARACTER(LEN=ESMF_MAXSTR) :: Iam TYPE(ESMF_Config) :: CF ! Grid comp config object @@ -233,6 +236,8 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & _ASSERT(RC==GC_SUCCESS, 'Error calling "SetGridFromCtr"') ! Set GEOS-Chem timesteps on all CPUs + ! NOTE: Diagnos is only used for GCClassic, so set to TS_CHEM here + ! for the sake of completeness (Bob Yantosca, 28 Feb 2024) CALL Set_Timesteps( Input_Opt = Input_Opt, & Chemistry = Input_Opt%TS_CHEM, & Convection = Input_Opt%TS_CONV, & @@ -241,7 +246,7 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & Radiation = Input_Opt%TS_RAD, & Unit_Conv = MAX( Input_Opt%TS_DYN, & Input_Opt%TS_CONV ), & - Diagnos = Input_Opt%TS_DIAG ) + Diagnos = Input_Opt%TS_CHEM ) ! Initialize derived-type objects for met, chem, and diag CALL GC_Init_StateObj( HistoryConfig%DiagList, & @@ -435,7 +440,7 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & _ASSERT(CF_LMIN * CF_IMIN > 0, 'If CF_I: is defined, please define CF_L') _ASSERT(CF_JMIN * CF_IMIN > 0, 'If CF_I: is defined, please define CF_J') - + ! At this point, they should all be set or all be negative (probably -1) IF (CF_IMIN > 0) THEN Input_Opt%CF_IMIN = CF_IMIN @@ -481,7 +486,7 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & WRITE(*,1013) IL_PET, IU_PET WRITE(*,1014) JL_PET, JU_PET #endif - + ENDIF 1011 FORMAT('Found FD_SPOT on PET ', i5, ' ', f7.2, & @@ -506,20 +511,20 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & ! units as the restart file values. Note that species concentrations ! are all still zero at this point since internal state values are not ! copied to State_Chm%Species%Conc until Run (post-initialization). -# if defined( MODEL_GEOS ) - State_Chm%Spc_Units = 'kg/kg total' + DO N = 1, State_Chm%nSpecies +#if defined( MODEL_GEOS ) + State_Chm%Species(N)%Units = KG_SPECIES_PER_KG_TOTAL_AIR #else - State_Chm%Spc_Units = 'v/v dry' + State_Chm%Species(N)%Units = MOLES_SPECIES_PER_MOLES_DRY_AIR #endif - - ! Initialize chemistry mechanism - IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. & - Input_Opt%ITS_AN_AEROSOL_SIM .or. & - Input_Opt%ITS_A_MERCURY_SIM .or. & - Input_Opt%ITS_A_CARBON_SIM ) THEN - CALL INIT_CHEMISTRY ( Input_Opt, State_Chm, State_Diag, & - State_Grid, RC ) - _ASSERT(RC==GC_SUCCESS, 'Error calling INIT_CHEMISTRY') + ENDDO + + ! Initialize photolysis, including reading files for optical properties + IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. & + Input_Opt%ITS_AN_AEROSOL_SIM .or. & + Input_Opt%ITS_A_MERCURY_SIM ) THEN + CALL Init_Photolysis ( Input_Opt, State_Grid, State_Chm, State_Diag, RC ) + _ASSERT(RC==GC_SUCCESS, 'Error calling Init_Photolysis') ENDIF #if defined( RRTMG ) @@ -551,6 +556,10 @@ SUBROUTINE GCHP_Chunk_Init( nymdB, nhmsB, nymdE, & _ASSERT(RC==GC_SUCCESS, 'Error calling INIT_LINEAR_CHEM') ENDIF + ! Error handling and logging + CALL Init_Error(Input_Opt, RC ) + _ASSERT(RC==GC_SUCCESS, 'Error calling INIT_ERROR') + !------------------------------------------------------------------------- ! Diagnostics and tendencies !------------------------------------------------------------------------- @@ -634,21 +643,22 @@ SUBROUTINE GCHP_Chunk_Run( GC, & ! Utilities USE ErrCode_Mod + USE Error_Mod USE HCO_Error_Mod USE MAPL_MemUtilsMod USE Pressure_Mod, ONLY : Accept_External_Pedge USE State_Chm_Mod, ONLY : IND_ USE Time_Mod, ONLY : Accept_External_Date_Time - USE UnitConv_Mod, ONLY : Convert_Spc_Units, Print_Global_Species_Kg + USE UnitConv_Mod ! Diagnostics USE Diagnostics_Mod, ONLY : Zero_Diagnostics_StartofTimestep USE Diagnostics_Mod, ONLY : Set_Diagnostics_EndofTimestep + USE Diagnostics_Mod, ONLY : Set_AerMass_Diagnostic #ifdef ADJOINT USE PhysConstants, ONLY : AIRMW USE Diagnostics_Mod, ONLY : Set_SpcAdj_Diagnostic #endif - USE Aerosol_Mod, ONLY : Set_AerMass_Diagnostic #if defined( RRTMG ) USE RRTMG_RAD_TRANSFER_MOD, ONLY : Do_RRTMG_Rad_Transfer @@ -676,15 +686,15 @@ SUBROUTINE GCHP_Chunk_Run( GC, & REAL*4, INTENT(IN) :: utc ! UTC time [hrs] REAL*4, INTENT(IN) :: hElapsed ! Elapsed hours INTEGER, INTENT(IN) :: Phase ! Run phase (-1, 1 or 2) - LOGICAL, INTENT(IN) :: IsChemTime ! Time for chemistry? - LOGICAL, INTENT(IN) :: IsRadTime ! Time for RRTMG? + LOGICAL, INTENT(IN) :: IsChemTime ! Time for chemistry? + LOGICAL, INTENT(IN) :: IsRadTime ! Time for RRTMG? #if defined( MODEL_GEOS ) LOGICAL, INTENT(IN) :: FrstRewind ! Is it the first rewind? #endif #if defined ( ADJOINT ) LOGICAL, INTENT(IN) :: IsStarttime ! Have we reached the start time ! in an adjoint run -#endif +#endif ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -712,8 +722,9 @@ SUBROUTINE GCHP_Chunk_Run( GC, & TYPE(ESMF_VM) :: VM ! ESMF VM object TYPE(ESMF_Field) :: IntField REAL*8 :: DT - CHARACTER(LEN=ESMF_MAXSTR) :: Iam, OrigUnit + CHARACTER(LEN=ESMF_MAXSTR) :: Iam INTEGER :: STATUS, HCO_PHASE, RST + INTEGER :: previous_units #if defined( MODEL_GEOS ) INTEGER :: I, J, L #endif @@ -761,6 +772,14 @@ SUBROUTINE GCHP_Chunk_Run( GC, & TYPE(Species), POINTER :: ThisSpc #endif + ! For stratospheric adjustment + REAL(f8), ALLOCATABLE :: DT_3D(:,:,:) + REAL(f8), ALLOCATABLE :: DT_3D_UPDATE(:,:,:) + REAL(f8), ALLOCATABLE :: HR_3D(:,:,:) + + ! For logging + CHARACTER(len=ESMF_MAXSTR) :: MSG + !======================================================================= ! GCHP_CHUNK_RUN begins here !======================================================================= @@ -837,7 +856,7 @@ SUBROUTINE GCHP_Chunk_Run( GC, & DoTurb = Input_Opt%LTURB ! dynamic time step #endif DoChem = Input_Opt%LCHEM .AND. IsChemTime ! chemistry time step - DoWetDep = Input_Opt%LWETD ! dynamic time step + DoWetDep = Input_Opt%LWETD ! dynamic time step DoRad = Input_Opt%LRAD .AND. IsRadTime ! radiation time step ! If Phase is not -1, only do selected processes for given phases: @@ -865,16 +884,16 @@ SUBROUTINE GCHP_Chunk_Run( GC, & DoTend = ( DoEmis .OR. DoDryDep ) .AND. .NOT. Input_Opt%LTURB ! testing only - IF ( Input_Opt%AmIRoot .and. NCALLS < 10 ) THEN - write(*,*) 'GEOS-Chem phase ', Phase, ':' - write(*,*) 'DoConv : ', DoConv - write(*,*) 'DoDryDep : ', DoDryDep - write(*,*) 'DoEmis : ', DoEmis - write(*,*) 'DoTend : ', DoTend - write(*,*) 'DoTurb : ', DoTurb - write(*,*) 'DoChem : ', DoChem - write(*,*) 'DoWetDep : ', DoWetDep - write(*,*) ' ' + IF ( NCALLS < 10 ) THEN + ! Use pfLogger + Call Input_Opt%lgr%info('GEOS-Chem phase %i2~:', Phase) + Call Input_Opt%lgr%info('DoConv : %l1', DoConv) + Call Input_Opt%lgr%info('DoDryDep : %l1', DoDryDep) + Call Input_Opt%lgr%info('DoEmis : %l1', DoEmis) + Call Input_Opt%lgr%info('DoTend : %l1', DoTend) + Call Input_Opt%lgr%info('DoTurb : %l1', DoTurb) + Call Input_Opt%lgr%info('DoChem : %l1', DoChem) + Call Input_Opt%lgr%info('DoWetDep : %l1', DoWetDep) ENDIF !------------------------------------------------------------------------- @@ -882,7 +901,7 @@ SUBROUTINE GCHP_Chunk_Run( GC, & !------------------------------------------------------------------------- ! Zero out certain State_Diag arrays. This should not be done in a phase 2 - ! call since this can erase diagnostics filled during phase 1 (e.g., drydep) + ! call since this can erase diagnostics filled during phase 1 (e.g., drydep) ! (ckeller, 1/21/2022). IF ( Phase /= 2 ) THEN CALL Zero_Diagnostics_StartOfTimestep( Input_Opt, State_Diag, RC ) @@ -970,32 +989,28 @@ SUBROUTINE GCHP_Chunk_Run( GC, & _ASSERT(RC==GC_SUCCESS, 'Error calling COMPUTE_PBL_HEIGHT') ! Convert to dry mixing ratio - CALL Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg/kg dry', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = KG_SPECIES_PER_KG_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) _ASSERT(RC==GC_SUCCESS, 'Error calling CONVERT_SPC_UNITS') + !======================================================================= + ! Always prescribe H2O in both the stratosphere and troposhere in GEOS. + ! This is now done right after passing the species from the internal + ! state to State_Chm (in Chem_GridCompMod.F90). It is important to do it + ! there to make sure that any H2O tendencies are properly calculated + ! cakelle2, 2023/10/14 + !======================================================================= +#if !defined( MODEL_GEOS ) ! SDE 05/28/13: Set H2O to STT if relevant IF ( IND_('H2O','A') > 0 ) THEN SetStratH2O = .FALSE. -#if defined( MODEL_GEOS ) - !======================================================================= - ! Tropospheric H2O is always prescribed (using GEOS Q). For strat H2O - ! there are three options, controlled by toggles 'set initial global MR' - ! in geoschem_config.yml and 'Prescribe_strat_H2O' in GEOSCHEMchem_GridComp.rc: - ! (A) never prescribe strat H2O -> both toggles off - ! (B) prescribe strat H2O on init time step -> toggle in input.goes on - ! (C) always prescribe strat H2O -> toggle in GEOSCHEMchem_GridComp.rc on - !======================================================================= - IF ( FIRST ) THEN - LSETH2O_orig = Input_Opt%LSETH2O - ENDIF - IF ( FIRST .OR. FrstRewind ) THEN - Input_Opt%LSETH2O = LSETH2O_orig - ENDIF - IF ( Input_Opt%LSETH2O .OR. Input_Opt%AlwaysSetH2O ) THEN -#else IF ( Input_Opt%LSETH2O ) THEN -#endif SetStratH2O = .TRUE. ENDIF CALL SET_H2O_TRAC( SetStratH2O, Input_Opt, State_Chm, & @@ -1005,6 +1020,7 @@ SUBROUTINE GCHP_Chunk_Run( GC, & ! Only force strat once IF ( Input_Opt%LSETH2O ) Input_Opt%LSETH2O = .FALSE. ENDIF +#endif ! Compute the cosine of the solar zenith angle array: ! State_Met%SUNCOS => COS(SZA) at the current time @@ -1022,7 +1038,7 @@ SUBROUTINE GCHP_Chunk_Run( GC, & ' before first unit conversion', RC) CALL GCHP_PRINT_MET( I_DBG, J_DBG, L_DBG, Input_Opt,& State_Grid, State_Met, trim(Iam) // ' before first unit conversion.', RC) - + IF (first .and. Input_Opt%IS_FD_SPOT_THIS_PET .and. Input_Opt%IS_FD_SPOT) THEN FD_SPEC = transfer(state_chm%SpcData(Input_Opt%NFD)%Info%Name, FD_SPEC) IFD = Input_Opt%IFD @@ -1394,12 +1410,47 @@ SUBROUTINE GCHP_Chunk_Run( GC, & CALL MAPL_TimerOn( STATE, 'GC_RAD' ) - IF ( Input_Opt%amIRoot .AND. FIRST_RT ) THEN - WRITE( 6, '(a)' ) REPEAT( '#', 79 ) - WRITE( 6, 500 ) 'R R T M G : Radiative Transfer Model (by AER)' -500 FORMAT( '#####', 12x, a, 12x, '#####' ) - WRITE( 6, '(a)' ) REPEAT( '#', 79 ) - ENDIF + If (First_RT) Call Log_Msg('First RRTMG run starting','Info','GCHP_Chunk') +! IF ( Input_Opt%amIRoot .AND. FIRST_RT ) THEN +! WRITE( 6, '(a)' ) REPEAT( '#', 79 ) +! WRITE( 6, 500 ) 'R R T M G : Radiative Transfer Model (by AER)' +!500 FORMAT( '#####', 12x, a, 12x, '#####' ) +! WRITE( 6, '(a)' ) REPEAT( '#', 79 ) +! ENDIF + + ! Allocate temperature difference arrays + If ( Input_Opt%RRTMG_FDH ) Then + Allocate(DT_3D(State_Grid%NX,State_Grid%NY,State_Grid%NZ),Stat=RC) + _ASSERT(RC==0, 'Error allocating DT_3D') + + ! If using seasonally evolving FDH, need to grab the internal + ! state temperature adjustment array + If (Input_Opt%RRTMG_SEFDH) Then + ! DT_3D will be updated by the first call to RRTMG; also need to + ! store the "current" value + Allocate(DT_3D_UPDATE(State_Grid%NX,State_Grid%NY,State_Grid%NZ),Stat=RC) + _ASSERT(RC==0, 'Error allocating DT_3D_UPDATE') + ! Store the adjustment as previously projected to this time point + DT_3D(:,:,:) = State_Chm%TStrat_Adj(:,:,:) + ! This will just hold the end-of-step value + DT_3D_UPDATE(:,:,:) = 0.0e+0_fp + Else + DT_3D(:,:,:) = 0.0e+0_fp + End If + Allocate(HR_3D(State_Grid%NX,State_Grid%NY,State_Grid%NZ),Stat=RC) + _ASSERT(RC==0, 'Error allocating HR_3D') + HR_3D(:,:,:) = 0.0e+0_fp + ! Read in dynamical heating rates if necessary + If (Input_Opt%Read_Dyn_Heating) Then + HR_3D(:,:,:) = State_Met%DynHeating(:,:,:) + End If + Else + ! Safer + Allocate(DT_3D(0,0,0),Stat=RC) + _ASSERT(RC==0, 'Error deallocating DT_3D') + Allocate(HR_3D(0,0,0),Stat=RC) + _ASSERT(RC==0, 'Error deallocating HR_3D') + End If State_Chm%RRTMG_iSeed = State_Chm%RRTMG_iSeed + 15 @@ -1420,8 +1471,10 @@ SUBROUTINE GCHP_Chunk_Run( GC, & ! See: wiki.geos-chem.org/Coupling_GEOS-Chem_with_RRTMG ! ! RRTMG outputs (scheduled in HISTORY.rc): - ! 0-BA 1=O3 2=ME 3=SU 4=NI 5=AM - ! 6=BC 7=OA 8=SS 9=DU 10=PM 11=ST + ! 0=BASE and then... + ! 1=O3 2=O3T 3=ME 4=H2O 5=CO2 6=CFC 7=N2O + ! 8=SU 9=NI 10=AM 11=BC 12=OA 13=SS 14=DU + ! 15=PM 16=ST ! ! State_Diag%RadOutInd(1) will ALWAYS correspond to BASE due ! to how it is populated from HISTORY.rc diaglist_mod.F90. @@ -1433,17 +1486,17 @@ SUBROUTINE GCHP_Chunk_Run( GC, & N = 1 ! Echo info - IF ( Input_Opt%amIRoot ) THEN - PRINT *, 'Calling RRTMG to compute fluxes and optics' - IF ( FIRST_RT ) THEN - WRITE( 6, 520 ) State_Diag%RadOutName(N), State_Diag%RadOutInd(N) - ENDIF - ENDIF + If (First_RT) Then + Write(Msg,520) State_Diag%RadOutName(N), State_Diag%RadOutInd(N) + Call Log_Msg(Trim(Msg),'Info','GCHP_Chunk') + End If ! Generate mask for species in RT - CALL Set_SpecMask( State_Diag%RadOutInd(N) ) + CALL Set_SpecMask( State_Diag%RadOutInd(N), State_Chm ) ! Compute radiative fluxes for the given output + ! If FDH is used, this step will be used to calculate DT and + ! fill out DT_3D. The same will be true for HR_3D CALL Do_RRTMG_Rad_Transfer( ThisDay = Day, & ThisMonth = Month, & iCld = State_Chm%RRTMG_iCld, & @@ -1455,17 +1508,29 @@ SUBROUTINE GCHP_Chunk_Run( GC, & State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & + DT_3D = DT_3D, & + HR_3D = HR_3D, & RC = RC ) ! Trap potential errors _ASSERT(RC==GC_SUCCESS, 'Error encounted in Do_RRTMG_Rad_Transfer' ) + If (Input_Opt%RRTMG_SEFDH) Then + ! Store the calculated update to DT + DT_3D_UPDATE(:,:,:) = DT_3D(:,:,:) + ! Reset the adjustment to the start of the time step + DT_3D(:,:,:) = State_Chm%TStrat_Adj(:,:,:) + End If + ! Calculate for rest of outputs, if any DO N = 2, State_Diag%nRadOut - IF ( Input_Opt%amIRoot .AND. FIRST_RT ) THEN - WRITE( 6, 520 ) State_Diag%RadOutName(N), State_Diag%RadOutInd(N) - ENDIF - CALL Set_SpecMask( State_Diag%RadOutInd(N) ) + ! This time around, DT_3D is read in but not overwritten + If (First_RT) Then + Write(Msg,520) State_Diag%RadOutName(N), State_Diag%RadOutInd(N) + Call Log_Msg(Trim(Msg),'Info','GCHP_Chunk') + End If + CALL Set_SpecMask( State_Diag%RadOutInd(N), State_Chm ) + ! This call will NOT update DT_3D, so we can just reuse the array CALL Do_RRTMG_Rad_Transfer( ThisDay = Day, & ThisMonth = Month, & iCld = State_Chm%RRTMG_iCld, & @@ -1477,6 +1542,8 @@ SUBROUTINE GCHP_Chunk_Run( GC, & State_Diag = State_Diag, & State_Grid = State_Grid, & State_Met = State_Met, & + DT_3D = DT_3D, & + HR_3D = HR_3D, & RC = RC ) _ASSERT(RC==GC_SUCCESS, 'Error encounted in Do_RRTMG_Rad_Transfer') ENDDO @@ -1484,11 +1551,59 @@ SUBROUTINE GCHP_Chunk_Run( GC, & 520 FORMAT( 5x, '- ', & a4, ' (Index = ', i2.2, ')' ) + ! Copy the adjustment back to DT_3D as calculated in the baseline calculation + If (Input_Opt%RRTMG_SEFDH) Then + DT_3D(:,:,:) = DT_3D_UPDATE(:,:,:) + End If + + ! Store temperature change and heating rate from RRTMG in diagnostics + If (Input_Opt%RRTMG_FDH) Then + If (State_Diag%Archive_DynHeating) State_Diag%DynHeating(:,:,:) = HR_3D(:,:,:) + ! NB: DT_3D is the temperature adjustment either after equilibration (pure FDH) + ! or at the start of the NEXT radiation time step (SEFDH) + If (State_Diag%Archive_DTRad ) State_Diag%DTRad(:,:,:) = DT_3D(:,:,:) + If (Input_Opt%RRTMG_SEFDH) Then + State_Chm%TStrat_Adj(:,:,:) = DT_3D(:,:,:) + End If + RC = 0 + If (Allocated(DT_3D)) Deallocate(DT_3D, STAT=RC) + _ASSERT(RC==0, 'Error deallocating DT_3D') + If (Allocated(HR_3D)) Deallocate(HR_3D, STAT=RC) + _ASSERT(RC==0, 'Error deallocating HR_3D') + If (Allocated(DT_3D_UPDATE)) Deallocate(DT_3D_UPDATE, STAT=RC) + _ASSERT(RC==0, 'Error deallocating DT_3D_UPDATE') + End If + IF ( FIRST_RT ) THEN FIRST_RT = .FALSE. ENDIF CALL MAPL_TimerOff( STATE, 'GC_RAD' ) + ELSE + ! Set diagnostics to be undefined + If (State_Diag%Archive_DTRad ) State_Diag%DTRad(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_DynHeating ) State_Diag%DynHeating(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAllSkySWTOA ) State_Diag%RadAllSkySWTOA(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAllSkySWSurf ) State_Diag%RadAllSkySWSurf(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAllSkySWTrop ) State_Diag%RadAllSkySWTrop(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAllSkyLWTOA ) State_Diag%RadAllSkyLWTOA(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAllSkyLWSurf ) State_Diag%RadAllSkyLWSurf(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAllSkyLWTrop ) State_Diag%RadAllSkyLWTrop(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadClrSkySWTOA ) State_Diag%RadClrSkySWTOA(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadClrSkySWSurf ) State_Diag%RadClrSkySWSurf(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadClrSkySWTrop ) State_Diag%RadClrSkySWTrop(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadClrSkyLWTOA ) State_Diag%RadClrSkyLWTOA(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadClrSkyLWSurf ) State_Diag%RadClrSkyLWSurf(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadClrSkyLWTrop ) State_Diag%RadClrSkyLWTrop(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAODWL1 ) State_Diag%RadAODWL1(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadSSAWL1 ) State_Diag%RadSSAWL1(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAsymWL1 ) State_Diag%RadAsymWL1(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAODWL2 ) State_Diag%RadAODWL2(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadSSAWL2 ) State_Diag%RadSSAWL2(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAsymWL2 ) State_Diag%RadAsymWL2(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAODWL3 ) State_Diag%RadAODWL3(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadSSAWL3 ) State_Diag%RadSSAWL3(:,:,:) = MAPL_UNDEF + If (State_Diag%Archive_RadAsymWL3 ) State_Diag%RadAsymWL3(:,:,:) = MAPL_UNDEF ENDIF #endif @@ -1559,8 +1674,13 @@ SUBROUTINE GCHP_Chunk_Run( GC, & !======================================================================= ! Convert State_Chm%Species units !======================================================================= - CALL Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) _ASSERT(RC==GC_SUCCESS, 'Error calling CONVERT_SPC_UNITS') !======================================================================= @@ -1591,7 +1711,7 @@ SUBROUTINE GCHP_PRINT_MET(I, J, L, & USE State_Grid_Mod, ONLY : GrdState ! - ! !INPUT PARAMETERS: + ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: I ! Grid cell lat index INTEGER, INTENT(IN) :: J ! Grid cell lon index @@ -1601,22 +1721,22 @@ SUBROUTINE GCHP_PRINT_MET(I, J, L, & TYPE(GrdState), INTENT(IN) :: State_Grid! Grid State object TYPE(MetState), INTENT(IN) :: State_Met ! Meteorology State object ! - ! !INPUT/OUTPUT PARAMETERS: + ! !INPUT/OUTPUT PARAMETERS: ! ! ! !OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC ! Success or failure?! + INTEGER, INTENT(OUT) :: RC ! Success or failure?! ! !REMARKS: ! - ! !REVISION HISTORY: + ! !REVISION HISTORY: !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: - ! + ! CHARACTER(LEN=255) :: ErrorMsg, ThisLoc diff --git a/Interfaces/GCHP/gchp_historyexports_mod.F90 b/Interfaces/GCHP/gchp_historyexports_mod.F90 index 4ec244c15..d3988d7d5 100644 --- a/Interfaces/GCHP/gchp_historyexports_mod.F90 +++ b/Interfaces/GCHP/gchp_historyexports_mod.F90 @@ -847,11 +847,10 @@ SUBROUTINE CopyGCStates2Exports( am_I_Root, Input_Opt, HistoryConfig, RC ) EXIT ENDIF #if defined( MODEL_GEOS ) - ! If using GEOS-5, flip the data vertically to match model - ! convention + ! Flip the data vertically to match model convention LMAX = SIZE(current%ExportData3d, 3) current%ExportData3d(:,:,1:LMAX) = & - current%ExportData3d(:,:,LMAX:1:-1) + current%ExportData3d(:,:,LMAX:1:-1) #endif ENDIF diff --git a/Interfaces/GEOS/GEOSCHEMchem_Registry.rc b/Interfaces/GEOS/GEOSCHEMchem_Registry.rc index 4b284b513..effc1ce18 100644 --- a/Interfaces/GEOS/GEOSCHEMchem_Registry.rc +++ b/Interfaces/GEOS/GEOSCHEMchem_Registry.rc @@ -137,7 +137,6 @@ # PS2 | 1 | xy | E | | | | | | # QI | 1 | xyz | C | | | | | | # QL | 1 | xyz | C | | | | | | -# RADLWG | 1 | xy | | | | | | | # RADSWG | 1 | xy | | | | | | | # REEVAPCN | 1 | xyz | C | | | | | | # REEVAPLS | 1 | xyz | C | | | | | | diff --git a/Interfaces/GEOS/Includes_After_Run.H b/Interfaces/GEOS/Includes_After_Run.H index 1797a973f..cedf4289b 100644 --- a/Interfaces/GEOS/Includes_After_Run.H +++ b/Interfaces/GEOS/Includes_After_Run.H @@ -55,7 +55,7 @@ ! testing only !if(MAPL_am_I_Root()) write(*,*) 'Copied to internal: ',I,Int2Spc(I)%ID,trim(Int2Spc(I)%Name),MINVAL(State_Chm%Species(Int2Spc(I)%ID)%Conc(:,:,LM:1:-1)),MAXVAL(State_Chm%Species(Int2Spc(I)%ID)%Conc(:,:,LM:1:-1)),SUM(State_Chm%Species(Int2Spc(I)%ID)%Conc(:,:,LM:1:-1))/IM/JM/LM ENDDO - State_Chm%Spc_Units = 'kg/kg total' + State_Chm%Spc_Units = KG_SPECIES_PER_KG_TOTAL_AIR !========================================================================= ! Various other archived variables needed in internal state. @@ -93,232 +93,22 @@ ! Sesquiterpene concentrations. Archive internally in kgC/m3 (convert from kgC/box). CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'SESQ_CARBDENS', notFoundOK=.TRUE., __RC__ ) - IF ( ASSOCIATED(Ptr3D) ) THEN + IF ( ASSOCIATED(Ptr3D) .AND. ASSOCIATED(State_Chm%ORVCsesq) ) THEN Ptr3D(:,:,LM:1:-1) = State_Chm%ORVCsesq(:,:,1:LM) / State_Met%AIRVOL(:,:,1:LM) ENDIF Ptr3D => NULL() ! Saved field from ISORROPIA needed for computing optical properties CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'AeroH2O_SNA', notFoundOK=.TRUE., __RC__ ) - IF ( ASSOCIATED(Ptr3D) ) THEN + IF ( ASSOCIATED(Ptr3D) .AND. ASSOCIATED(State_Chm%AeroH2O) ) THEN Ptr3D(:,:,LM:1:-1) = State_Chm%AeroH2O(:,:,:,NDUST+1) ENDIF Ptr3D => NULL() -! !========================================================================= -! ! Saved fields from ISORROPIA needed for heterogeneous chemistry -! ! (ckeller, 3/9/19) -! !========================================================================= -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_Hplus_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropHplus(:,:,:,1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_Hplus_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropHplus(:,:,:,2) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_AeropH_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropAeropH(:,:,:,1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_AeropH_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropAeropH(:,:,:,2) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_AeroH2O_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropAeroH2O(:,:,:,1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_AeroH2O_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropAeroH2O(:,:,:,2) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_sulfate', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropSulfate(:,:,:) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_bisulfate', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropBisulfate(:,:,:) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_nitrate_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropNitrate(:,:,:,1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_nitrate_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropNitrate(:,:,:,2) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_chloride_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropChloride(:,:,:,1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_chloride_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%IsorropChloride(:,:,:,2) -! ENDIF -! Ptr3D => NULL() -! -! DO I=1,11 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'KHETI_SLA_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3D(:,:,LM:1:-1) = State_Chm%KHETI_SLA(:,:,:,I) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'AeroArea_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%AeroArea(:,:,:,I) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'AeroRadi_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%AeroRadi(:,:,:,I) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'WetAeroArea_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%WetAeroArea(:,:,:,I) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'WetAeroRadi_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%WetAeroRadi(:,:,:,I) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'AeroH2O_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%AeroH2O(:,:,:,I) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,3 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'GammaN2O5_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%GammaN2O5(:,:,:,I) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,2 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'SSAlk_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%SSAlk(:,:,:,I) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! importName = 'OMOC' -! CALL MAPL_GetPointer( INTSTATE, Ptr2D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr2D) ) THEN -! Ptr2d(:,:) = State_Chm%OMOC(:,:) -! ENDIF -! Ptr2D => NULL() -! importName = 'OMOC_POA' -! CALL MAPL_GetPointer( INTSTATE, Ptr2D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr2D) ) THEN -! Ptr2d(:,:) = State_Chm%OMOC_POA(:,:) -! ENDIF -! Ptr2D => NULL() -! importName = 'OMOC_OPOA' -! CALL MAPL_GetPointer( INTSTATE, Ptr2D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr2D) ) THEN -! Ptr2d(:,:) = State_Chm%OMOC_OPOA(:,:) -! ENDIF -! Ptr2D => NULL() -! importName = 'ACLArea' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%ACLArea(:,:,:) -! ENDIF -! Ptr3D => NULL() -! importName = 'ACLRadi' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%ACLRadi(:,:,:) -! ENDIF -! Ptr3D => NULL() -! importName = 'QLxpHCloud' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%QLxpHCloud(:,:,:) -! ENDIF -! Ptr3D => NULL() -! importName = 'pHCloud' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%phCloud(:,:,:) -! ENDIF -! Ptr3D => NULL() -! importName = 'isCloud' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%isCloud(:,:,:) -! ENDIF -! Ptr3D => NULL() -! importName = 'HSO3_AQ' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%HSO3_AQ(:,:,:) -! ENDIF -! Ptr3D => NULL() -! importName = 'SO3_AQ' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%SO3_AQ(:,:,:) -! ENDIF -! Ptr3D => NULL() -! importName = 'fupdateHOCl' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%fupdateHOCl(:,:,:) -! ENDIF -! Ptr3D => NULL() -! importName = 'fupdateHOBr' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! Ptr3d(:,:,LM:1:-1) = State_Chm%fupdateHOBr(:,:,:) -! ENDIF -! Ptr3D => NULL() - importName = 'STATE_PSC' - CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) - IF ( ASSOCIATED(Ptr3D) ) THEN - Ptr3d(:,:,LM:1:-1) = State_Chm%STATE_PSC(:,:,:) - ENDIF - Ptr3D => NULL() + CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'STATE_PSC', notFoundOK=.TRUE., __RC__ ) + IF ( ASSOCIATED(Ptr3D) .AND. ASSOCIATED(State_Chm%STATE_PSC) ) THEN + Ptr3d(:,:,LM:1:-1) = State_Chm%STATE_PSC(:,:,:) + ENDIF + Ptr3D => NULL() !EOF diff --git a/Interfaces/GEOS/Includes_Before_Run.H b/Interfaces/GEOS/Includes_Before_Run.H index cd001f1a6..5ec185a7f 100644 --- a/Interfaces/GEOS/Includes_Before_Run.H +++ b/Interfaces/GEOS/Includes_Before_Run.H @@ -48,11 +48,11 @@ State_Met%EFLUX = LHFX ! W/m2 State_Met%FRCLND = FRLAND ! unitless State_Met%FRLAND = FRLAND ! unitless - State_Met%FRLANDIC = FRLANDICE ! unitless + State_Met%FRLANDICE = FRLANDICE ! unitless State_Met%FROCEAN = FROCEAN ! unitless State_Met%FRLAKE = FRLAKE ! unitless ! State_Met%FRSEAICE = not used - State_Met%FRSNO = ASNOW ! unitless + State_Met%FRSNOW = ASNOW ! unitless State_Met%GWETTOP = WET1 ! unitless State_Met%GWETROOT = WET2 ! unitless ! State_Met%ITY = ITY ! unitless @@ -247,7 +247,7 @@ ENDIF !IF ( MAPL_am_I_Root() ) WRITE(*,*) 'Copying from internal: ',I,Int2Spc(I)%ID,MINVAL(Int2Spc(I)%Internal(:,:,:)),MAXVAL(Int2Spc(I)%Internal(:,:,:)),SUM(Int2Spc(I)%Internal(:,:,:))/IM/JM/LM ENDDO - State_Chm%Spc_Units = 'kg/kg total' + State_Chm%Spc_Units = KG_SPECIES_PER_KG_TOTAL_AIR !========================================================================= ! Various other archived variables needed in internal state. Eventually, @@ -298,227 +298,10 @@ ENDIF Ptr3D => NULL() -! !========================================================================= -! ! Saved fields from ISORROPIA needed for computing optical properties -! !========================================================================= -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_Hplus_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropHplus(:,:,:,1) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_Hplus_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropHplus(:,:,:,2) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ! Aerosol pH -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_AeropH_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropAeropH(:,:,:,1) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_AeropH_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropAeropH(:,:,:,2) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ! Aerosol H2O -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_AeroH2O_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropAeroH2O(:,:,:,1) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_AeroH2O_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropAeroH2O(:,:,:,2) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_sulfate', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropSulfate(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_nitrate_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropNitrate(:,:,:,1) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_nitrate_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropNitrate(:,:,:,2) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_bisulfate', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropBisulfate(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ! chloride -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_chloride_fine', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropChloride(:,:,:,1) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'Iso_chloride_coarse', notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%IsorropChloride(:,:,:,2) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! -! ! KHETI_SLA -! DO I=1,11 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'KHETI_SLA_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%KHETI_SLA(:,:,:,I) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! -! ! Aerosol properties -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'AeroArea_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%AeroArea(:,:,:,I) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'AeroRadi_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%AeroRadi(:,:,:,I) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'WetAeroArea_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%WetAeroArea(:,:,:,I) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'WetAeroRadi_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%WetAeroRadi(:,:,:,I) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,14 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'AeroH2O_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%AeroH2O(:,:,:,I) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! -! ! Various other fields -! DO I=1,3 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'GammaN2O5_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%GammaN2O5(:,:,:,I) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! DO I=1,2 -! WRITE ( intStr, '(I2.2)' ) I -! importName = 'SSAlk_'//TRIM(intStr) -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%SSAlk(:,:,:,I) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! ENDDO -! importName = 'OMOC' -! CALL MAPL_GetPointer( INTSTATE, Ptr2D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr2D) ) THEN -! State_Chm%OMOC(:,:) = Ptr2D(:,:) -! ENDIF -! Ptr2D => NULL() -! importName = 'OMOC_POA' -! CALL MAPL_GetPointer( INTSTATE, Ptr2D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr2D) ) THEN -! State_Chm%OMOC_POA(:,:) = Ptr2D(:,:) -! ENDIF -! Ptr2D => NULL() -! importName = 'OMOC_OPOA' -! CALL MAPL_GetPointer( INTSTATE, Ptr2D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr2D) ) THEN -! State_Chm%OMOC_OPOA(:,:) = Ptr2D(:,:) -! ENDIF -! Ptr2D => NULL() -! importName = 'ACLArea' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%ACLArea(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! importName = 'ACLRadi' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%ACLRadi(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! importName = 'QLxpHCloud' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%QLxpHCloud(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! importName = 'pHCloud' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%phCloud(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! importName = 'isCloud' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%isCloud(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! importName = 'HSO3_AQ' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%HSO3_AQ(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! importName = 'SO3_AQ' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%SO3_AQ(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! importName = 'fupdateHOCl' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%fupdateHOCl(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() -! importName = 'fupdateHOBr' -! CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) -! IF ( ASSOCIATED(Ptr3D) ) THEN -! State_Chm%fupdateHOBr(:,:,:) = Ptr3D(:,:,LM:1:-1) -! ENDIF -! Ptr3D => NULL() - importName = 'STATE_PSC' - CALL MAPL_GetPointer( INTSTATE, Ptr3D, TRIM(importName), notFoundOK=.TRUE., __RC__ ) - IF ( ASSOCIATED(Ptr3D) ) THEN - State_Chm%STATE_PSC(:,:,:) = Ptr3D(:,:,LM:1:-1) - ENDIF - Ptr3D => NULL() + CALL MAPL_GetPointer( INTSTATE, Ptr3D, 'STATE_PSC', notFoundOK=.TRUE., __RC__ ) + IF ( ASSOCIATED(Ptr3D) ) THEN + State_Chm%STATE_PSC(:,:,:) = Ptr3D(:,:,LM:1:-1) + ENDIF + Ptr3D => NULL() !EOF diff --git a/Interfaces/GEOS/geos_CarbonInterface.F90 b/Interfaces/GEOS/geos_CarbonInterface.F90 new file mode 100644 index 000000000..4d552504d --- /dev/null +++ b/Interfaces/GEOS/geos_CarbonInterface.F90 @@ -0,0 +1,1149 @@ +#include "MAPL_Generic.h" +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !MODULE: geos_CarbonInterface +! +! !DESCRIPTION: Module to handle carbon procedures specific to GEOS, such as +! importing CO2 from GOCART or producing CO from CO2 photolysis. +!\\ +!\\ +! !INTERFACE: +! +MODULE GEOS_CarbonInterface +! +! !USES: +! + ! MAPL/ESMF + USE ESMF + USE MAPL_Mod + USE PHYSCONSTANTS + USE ESMF_CFIOFileMOD + USE MAPL_CFIOMOD + + ! GEOS-Chem + USE Precision_Mod + USE ErrCode_Mod ! Error numbers + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState ! Chemistry State obj + USE State_Met_Mod, ONLY : MetState ! Meteorology State obj + USE State_Diag_Mod, ONLY : DgnState ! Diagnostics State obj + USE State_Grid_Mod, ONLY : GrdState ! Grid State obj + + IMPLICIT NONE + PRIVATE +! +! !PUBLIC MEMBER FUNCTIONS: +! + PUBLIC :: GEOS_CarbonSetServices + PUBLIC :: GEOS_CarbonInit + PUBLIC :: GEOS_CarbonRunPhoto + PUBLIC :: GEOS_CarbonSetConc + +! !REVISION HISTORY: +! 12 Jan 2023 - C. Keller - initial version (from StratChem/Carbon_GridComp) +! See https://github.com/geoschem/geos-chem for full history +!EOP +!------------------------------------------------------------------------------ +!BOC +CONTAINS +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: GEOS_CarbonSetServices +! +! !DESCRIPTION: Set the necessary services +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE GEOS_CarbonSetServices( GC, CF, RC ) +! +! !USES: +! +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ESMF_GridComp), INTENT(INOUT), TARGET :: GC ! Ref to this GridComp + TYPE(ESMF_Config), INTENT(INOUT) :: CF ! GEOSCHEM*.rc +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(INOUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! !REVISION HISTORY: +! 12 Jan 2023 - C. Keller - Initial version (refactored Chem_GridCompMod) +! See https://github.com/geoschem/geos-chem for history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! LOCAL VARIABLES: +! + CHARACTER(LEN=*), PARAMETER :: myname = 'GEOS_CarbonSetServices' + CHARACTER(LEN=*), PARAMETER :: Iam = myname + CHARACTER(LEN=ESMF_MAXSTR) :: ImpCO2name + INTEGER :: DoIt + INTEGER :: STATUS + + ! Methane field from GEOS. + ! This is not yet fully implemented. Need corresponding connectivity in Chem_GridComp. +! CALL ESMF_ConfigGetAttribute( CF, DoIt, Label="CH4_from_GEOS:", Default=0, __RC__ ) +! IF ( DoIt == 1 ) THEN +! call MAPL_AddImportSpec(GC, & +! SHORT_NAME = 'GEOS_CH4', & +! LONG_NAME = 'GEOS_CH4_dry_mixing_ratio', & +! UNITS = 'v/v', & +! DIMS = MAPL_DimsHorzVert, & +! VLOCATION = MAPL_VLocationCenter, & +! RC=STATUS ) +! _VERIFY(STATUS) +! ENDIF + + ! If enabled, create import field + CALL ESMF_ConfigGetAttribute( CF, DoIt, Label="Import_CO2_from_GOCART:", Default=0, __RC__ ) + IF ( DoIt == 1 ) THEN + CALL ESMF_ConfigGetAttribute( CF, ImpCO2name, Label="GOCART_CO2_FieldName:", Default="GOCART_CO2", __RC__ ) + call MAPL_AddImportSpec(GC, & + SHORT_NAME = TRIM(ImpCO2name), & + LONG_NAME = 'CO2_mixing_ratio', & + UNITS = 'v/v_total_air', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationCenter, & + RC=STATUS ) + _VERIFY(STATUS) + ENDIF + + ! Set CO upper boundary condition? + CALL ESMF_ConfigGetAttribute( CF, DoIt, Label="Set_CO_Mesosphere:", Default=0, __RC__ ) + IF ( DoIt == 1 ) THEN + CALL ESMF_ConfigGetAttribute( CF, ImpCO2name, Label="CO_Mesosphere_FieldName:", Default="CO_CMAM", __RC__ ) + call MAPL_AddImportSpec(GC, & + SHORT_NAME = TRIM(ImpCO2name), & + LONG_NAME = 'CO', & + UNITS = 'volume_mixing_ratio', & + DIMS = MAPL_DimsHorzOnly, & + RC=STATUS ) + _VERIFY(STATUS) + ENDIF + + _RETURN(ESMF_SUCCESS) + + END SUBROUTINE GEOS_CarbonSetServices +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: GEOS_CarbonInit +! +! !DESCRIPTION: Initialization routine +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE GEOS_CarbonInit( GC, CF, State_Chm, State_Grid, RC ) +! +! !USES: +! +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ESMF_GridComp), INTENT(INOUT), TARGET :: GC ! Ref to this GridComp + TYPE(ESMF_Config), INTENT(INOUT) :: CF ! GEOSCHEM*.rc + TYPE(ChmState), INTENT(INOUT) :: State_Chm + TYPE(GrdState), INTENT(INOUT) :: State_Grid +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(INOUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! !REVISION HISTORY: +! 12 Jan 2023 - C. Keller - Initial version (refactored Chem_GridCompMod) +! See https://github.com/geoschem/geos-chem for history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! LOCAL VARIABLES: +! + CHARACTER(LEN=*), PARAMETER :: myname = 'GEOS_CarbonInit' + CHARACTER(LEN=*), PARAMETER :: Iam = myname + INTEGER :: DoIt, km + INTEGER :: STATUS + CHARACTER(LEN=ESMF_MAXSTR) :: fnphoto + CHARACTER(LEN=ESMF_MAXSTR) :: ImpCO2name, ImpCOmeso + + !======================================================================= + ! GEOS_CarbonInit starts here + !======================================================================= + + ! Set CO upper boundary + ! ---------------------- + CALL ESMF_ConfigGetAttribute( CF, DoIt, Label="Set_CO_Mesosphere:", Default=0, __RC__ ) + State_Chm%COmesosphere = ( DoIt == 1 ) + IF ( State_Chm%COmesosphere ) THEN + CALL ESMF_ConfigGetAttribute( CF, ImpCOmeso, Label="CO_Mesosphere_FieldName:", Default="CO_CMAM", __RC__ ) + State_Chm%ImpCOmeso = TRIM(ImpCOmeso) + IF ( MAPL_am_I_Root() ) WRITE(*,*) 'Will get CO mesospheric upper boundary from import field '//TRIM(ImpCOmeso) + ENDIF + + ! Import CO2 from GOCART + ! ---------------------- + CALL ESMF_ConfigGetAttribute( CF, DoIt, Label="Import_CO2_from_GOCART:", Default=0, __RC__ ) + State_Chm%CO2fromGOCART = ( DoIt == 1 ) + IF ( State_Chm%CO2fromGOCART ) THEN + CALL ESMF_ConfigGetAttribute( CF, ImpCO2name, Label="GOCART_CO2_FieldName:", Default="GOCART_CO2", __RC__ ) + State_Chm%ImpCO2name = TRIM(ImpCO2name) + IF ( MAPL_am_I_Root() ) WRITE(*,*) 'Will get CO2 from import field '//TRIM(ImpCO2name) + ENDIF + + ! CO2 photolysis + ! -------------- + + ! Initialize + State_Chm%numphoto = 0 + km = State_Grid%NZ + + ! Check if we want to do this + CALL ESMF_ConfigGetAttribute( CF, DoIt, Label="CO_production_from_CO2_photolysis:", Default=0, __RC__ ) + IF ( DoIt == 1 ) THEN + CALL ESMF_ConfigGetAttribute( CF, fnphoto, Label="CO2photolysisFile:", Default="please/provide//file.nc", __RC__ ) + IF ( MAPL_am_I_Root() ) WRITE(*,*) 'CO2 photolysis enabled, read photolysis tables: '//TRIM(fnphoto) + CALL readPhotTables(trim(fnphoto), RC) + VERIFY_(RC) + State_Chm%numphoto = 55 + ENDIF + + _RETURN(ESMF_SUCCESS) + +CONTAINS + + SUBROUTINE readPhotTables(fileName, rc) + + IMPLICIT NONE + +! Read tables for photolysis in GOCART ... from a NetCDF file +! +! Input parameters: +! + CHARACTER(LEN=*), INTENT(IN) :: fileName +! +! Output parameters: +! + INTEGER, INTENT(OUT) :: rc +! +! Restrictions: +! ASSERT that the number of pressure layers in the dataset equals km. +! +! REVISION HISTORY: +! Nielsen 11 May 2012: First crack. +! Weir 29 Jan 2021: Pilferd from StratChem +! Keller 12 Jan 2023: Making it worse by also putting it into GCC +!----------------------------------------------------------------------- + + CHARACTER(LEN=ESMF_MAXSTR) :: Iam = "GCC::readPhotTables" + + TYPE(ESMF_VM) :: vm + + INTEGER :: comm, info, unit, status + INTEGER :: dimid, i, n + + INTEGER :: length + + INTEGER, PARAMETER :: nD = 7 + CHARACTER(LEN=ESMF_MAXSTR) :: dimName(nD)= (/"nsza ", "numO3 ", "layers", & + "nlam ", "nts ", "nxdo ", "aqsize" /) + + INTEGER, PARAMETER :: nV = 7 + CHARACTER(LEN=ESMF_MAXSTR) :: varName(nV)= (/"sza ", & + "lambda ", "O3TAB ", "SDAT ", & + "O2JDAT ", "XTAB ", "CH2O_AQ" /) + rc = 0 + +! Grab the virtual machine +! ------------------------ + CALL ESMF_VMGetCurrent(vm, RC=status) + VERIFY_(status) + + CALL ESMF_VMGet(vm, MPICOMMUNICATOR=comm, rc=status) + VERIFY_(status) + +#ifdef H5_HAVE_PARALLEL + + CALL MPI_Info_create(info, status) + VERIFY_(status) + CALL MPI_Info_set(info, "romio_cb_read", "automatic", status) + VERIFY_(status) + +#ifdef NETCDF_NEED_NF_MPIIO + status = NF_OPEN_PAR(TRIM(fileName), IOR(NF_NOWRITE,NF_MPIIO), comm, info, unit) +#else + status = NF_OPEN_PAR(TRIM(fileName), NF_NOWRITE, comm, info, unit) +#endif + +#else + + IF(MAPL_AM_I_ROOT(vm)) THEN + status = NF_OPEN(TRIM(fileName), NF_NOWRITE, unit) + +#endif + + IF(status /= NF_NOERR) THEN + PRINT *,'Error opening file ',TRIM(fileName), status + PRINT *, NF_STRERROR(status) + VERIFY_(status) + END IF + + DO i = 1,nD + + status = NF_INQ_DIMID(unit, TRIM(dimName(i)), dimid) + IF(status /= NF_NOERR) THEN + PRINT *,"Error inquiring dimension ID for ", TRIM(dimName(i)), status + PRINT *, NF_STRERROR(status) + VERIFY_(status) + END IF + + status = NF_INQ_DIMLEN(unit, dimid, n) + IF(status /= NF_NOERR) THEN + PRINT *,"Error inquiring dimension length for ", TRIM(dimName(i)), status + PRINT *, NF_STRERROR(status) + END IF + + SELECT CASE (i) + CASE (1) + State_Chm%nsza = n + CASE (2) + State_Chm%numO3 = n + CASE (3) + ASSERT_(n == km) + CASE (4) + State_Chm%nlam = n + CASE (5) + State_Chm%nts = n + CASE (6) + State_Chm%nxdo = n + CASE (7) + State_Chm%aqsize = n + CASE DEFAULT + END SELECT + + END DO + +#ifndef H5_HAVE_PARALLEL + + END IF ! MAPL_AM_I_ROOT + + CALL MAPL_CommsBcast(vm, State_Chm%nsza, 1, 0, RC=status) + VERIFY_(status) + CALL MAPL_CommsBcast(vm, State_Chm%numO3, 1, 0, RC=status) + VERIFY_(status) + CALL MAPL_CommsBcast(vm, State_Chm%nlam, 1, 0, RC=status) + VERIFY_(status) + CALL MAPL_CommsBcast(vm, State_Chm%nts, 1, 0, RC=status) + VERIFY_(status) + CALL MAPL_CommsBcast(vm, State_Chm%nxdo, 1, 0, RC=status) + VERIFY_(status) + CALL MAPL_CommsBcast(vm, State_Chm%aqSize, 1, 0, RC=status) + VERIFY_(status) + +#endif + + ALLOCATE(State_Chm%sdat(State_Chm%nsza,State_Chm%numo3,km,State_Chm%nlam), STAT=status) + VERIFY_(status) + ALLOCATE(State_Chm%o2jdat(State_Chm%nsza,State_Chm%numo3,km), STAT=status) + VERIFY_(status) + ALLOCATE(State_Chm%o3_tab(State_Chm%numo3,km), STAT=status) + VERIFY_(status) + ALLOCATE(State_Chm%xtab(State_Chm%nlam,State_Chm%nxdo,State_Chm%nts), STAT=status) + VERIFY_(status) + ALLOCATE(State_Chm%sza_tab(State_Chm%nsza), STAT=status) + VERIFY_(status) + ALLOCATE(State_Chm%CH2O_aq(State_Chm%aqSize), STAT=status) + VERIFY_(status) + ALLOCATE(State_Chm%rlam(State_Chm%nlam), STAT=status) + VERIFY_(status) + +#ifndef H5_HAVE_PARALLEL + + IF(MAPL_AM_I_ROOT()) THEN + +#endif + + DO i = 1,nV + + status = NF_INQ_VARID(unit, TRIM(varName(i)), n) + IF(status /= NF_NOERR) THEN + PRINT *,"Error getting varid for ", TRIM(varName(i)), status + PRINT *, NF_STRERROR(status) + VERIFY_(status) + END IF + + SELECT CASE (i) + CASE (1) + status = NF_GET_VAR_REAL(unit, n, State_Chm%sza_tab) + CASE (2) + status = NF_GET_VAR_REAL(unit, n, State_Chm%rlam) + CASE (3) + status = NF_GET_VAR_REAL(unit, n, State_Chm%o3_tab) + CASE (4) + status = NF_GET_VAR_REAL(unit, n, State_Chm%sdat) + CASE (5) + status = NF_GET_VAR_REAL(unit, n, State_Chm%o2jdat) + CASE (6) + status = NF_GET_VAR_REAL(unit, n, State_Chm%xtab) + CASE (7) + status = NF_GET_VAR_REAL(unit, n, State_Chm%CH2O_aq) + CASE DEFAULT + END SELECT + + IF(status /= NF_NOERR) THEN + PRINT *,"Error getting values for ", TRIM(varName(i)), status + PRINT *, NF_STRERROR(status) + VERIFY_(status) + END IF + + END DO + +#ifdef H5_HAVE_PARALLEL + + CALL MPI_Info_free(info, status) + VERIFY_(status) + +#else + + END IF ! MAPL_AM_I_ROOT + + length = SIZE(State_Chm%sza_tab) + CALL MPI_Bcast(State_Chm%sza_tab, length, MPI_REAL, 0, comm, status) + VERIFY_(status) + + length = SIZE(State_Chm%rlam) + CALL MPI_Bcast(State_Chm%rlam, length, MPI_REAL, 0, comm, status) + VERIFY_(status) + + length = SIZE(State_Chm%o3_tab) + CALL MPI_Bcast(State_Chm%o3_tab, length, MPI_REAL, 0, comm, status) + VERIFY_(status) + + length = SIZE(State_Chm%sdat) + CALL MPI_Bcast(State_Chm%sdat, length, MPI_REAL, 0, comm, status) + VERIFY_(status) + + length = SIZE(State_Chm%o2jdat) + CALL MPI_Bcast(State_Chm%o2jdat, length, MPI_REAL, 0, comm, status) + VERIFY_(status) + + length = SIZE(State_Chm%xtab) + CALL MPI_Bcast(State_Chm%xtab, length, MPI_REAL, 0, comm, status) + VERIFY_(status) + + CALL MAPL_CommsBcast(vm, State_Chm%CH2O_aq, State_Chm%aqsize, 0, RC=status) + VERIFY_(status) + +#endif + + status = NF_CLOSE(unit) + VERIFY_(status) + + RETURN + END SUBROUTINE readPhotTables + + END SUBROUTINE GEOS_CarbonInit +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: GEOS_CarbonSetConc +! +! !DESCRIPTION: Sets the concentrations of CO2 and/or top-level CO based on +! values obtained via the import state +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE GEOS_CarbonSetConc( Import, Input_Opt, State_Chm, & + State_Met, State_Diag, State_Grid, RC ) +! +! !USES: +! + USE UnitConv_Mod +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ESMF_State), INTENT(INOUT) :: Import ! Import State + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry object + TYPE(MetState), INTENT(INOUT) :: State_Met ! Met object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics object + TYPE(GrdState), INTENT(INOUT) :: State_Grid ! Grid object + INTEGER, INTENT(INOUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! !REVISION HISTORY: +! 12 Jan 2023 - C. Keller - Initial version (refactored Chem_GridCompMod) +! See https://github.com/geoschem/geos-chem for history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! LOCAL VARIABLES: +! + CHARACTER(LEN=*), PARAMETER :: myname = 'GEOS_CarbonSetConc' + CHARACTER(LEN=*), PARAMETER :: Iam = myname + INTEGER :: previous_units + INTEGER :: I, LM, indCO2, indCO, STATUS + REAL, POINTER :: CO2(:,:,:) => null() + REAL, POINTER :: COmeso(:,:) => null() + REAL, PARAMETER :: MWCO2 = 44.01 ! everybody knows this + REAL, PARAMETER :: MWCO = 28.01 ! CO2 - 16 + + !======================================================================= + ! GEOS_CarbonSetConc starts here + !======================================================================= + + IF ( State_Chm%CO2fromGOCART .OR. State_Chm%COmesosphere ) THEN + + ! Make sure concentrations are in kg/kg total + ! (this should already be the case) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = KG_SPECIES_PER_KG_TOTAL_AIR, & + previous_units = previous_units, & + RC = RC ) + ASSERT_(RC==GC_SUCCESS) + + ! Get index + indCO2 = -1 + indCO = -1 + DO I = 1, State_Chm%nSpecies + IF ( TRIM(State_Chm%SpcData(I)%Info%Name) == "CO2" ) THEN + indCO2 = I + ENDIF + IF ( TRIM(State_Chm%SpcData(I)%Info%Name) == "CO" ) THEN + indCO = I + ENDIF + ENDDO + + ! # of vertical levels + LM = State_Grid%NZ + + ! Set CO2 concentrations + IF ( State_Chm%CO2fromGOCART ) THEN + ASSERT_(indCO2 > 0 ) + + ! Get CO2 field via import. This is expected in v/v total!! + CALL MAPL_GetPointer ( Import, CO2, TRIM(State_Chm%ImpCO2name), __RC__ ) + + ! Pass to GEOS-Chem. Flip in vertical and convert v/v to kg/kg + State_Chm%Species(indCO2)%Conc(:,:,:) = CO2(:,:,LM:1:-1) * ( MWCO2 / MAPL_AIRMW ) + ENDIF + + IF ( State_Chm%COmesosphere ) THEN + ASSERT_(indCO > 0 ) + + ! Get CO field via import. This is expected in v/v total + CALL MAPL_GetPointer ( Import, COmeso, TRIM(State_Chm%ImpCOmeso), __RC__ ) + + ! Pass to GEOS-Chem. Convert v/v to kg/kg + State_Chm%Species(indCO)%Conc(:,:,LM) = COmeso(:,:) * ( MWCO / MAPL_AIRMW ) + ENDIF + + ! Convert species back to original units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) + ASSERT_( RC == GC_SUCCESS ) + + ENDIF + + _RETURN(ESMF_SUCCESS) + END SUBROUTINE GEOS_CarbonSetConc + +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: GEOS_CarbonRunPhoto +! +! !DESCRIPTION: Calculates the photolysis rates (following StratChem) +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE GEOS_CarbonRunPhoto( Input_Opt, State_Chm, State_Met, & + State_Diag, State_Grid, RC ) +! +! !USES: +! + USE TIME_MOD, ONLY : GET_TS_CHEM + USE UnitConv_Mod + USE ERROR_MOD, ONLY : SAFE_DIV +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry object + TYPE(MetState), INTENT(INOUT) :: State_Met ! Met object + TYPE(DgnState), INTENT(INOUT) :: State_Diag ! Diagnostics object + TYPE(GrdState), INTENT(INOUT) :: State_Grid ! Grid object + INTEGER, INTENT(INOUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! !REVISION HISTORY: +! 12 Jan 2023 - C. Keller - Initial version (refactored Chem_GridCompMod) +! See https://github.com/geoschem/geos-chem for history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! LOCAL VARIABLES: +! + CHARACTER(LEN=*), PARAMETER :: myname = 'GEOS_CarbonRunPhoto' + CHARACTER(LEN=*), PARAMETER :: Iam = myname + + INTEGER :: origUnit + REAL, ALLOCATABLE :: aj(:) + INTEGER :: I, J, L, LM, STATUS + INTEGER :: indCO, indCO2, indO3 + REAL :: sza, o3col, press, temp + REAL :: photj, dCOphot, tsChem + REAL(fp) :: COinit, COpost, CO2conc + + !======================================================================= + ! GEOS_CarbonRunPhoto starts here + !======================================================================= + + ! Only do this if active + IF ( State_Chm%numphoto > 0) THEN + + ! Convert to molec/cm3 units are molec/cm3 + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + outUnit = MOLECULES_SPECIES_PER_CM3, & + origUnit = origUnit, & + RC = RC ) + ASSERT_(RC==GC_SUCCESS) + + ! Chemistry time step in secods + tsChem = GET_TS_CHEM() + + ! Get index for species: need CO, O3, and CO2 + indCO = -1 + indO3 = -1 + indCO2 = -1 + DO I = 1, State_Chm%nSpecies + IF ( TRIM(State_Chm%SpcData(I)%Info%Name) == "CO" ) indCO = I + IF ( TRIM(State_Chm%SpcData(I)%Info%Name) == "O3" ) indO3 = I + IF ( TRIM(State_Chm%SpcData(I)%Info%Name) == "CO2" ) indCO2 = I + ENDDO + ASSERT_(indCO > 0 ) + ASSERT_(indO3 > 0 ) + ASSERT_(indCO2 > 0 ) + + ! Allocate local arrays + allocate(aj(State_Chm%numphoto), STAT=RC) + VERIFY_(RC) + + ! Loop over entire atmosphere + LM = State_Grid%NZ + DO L = 1, LM + DO J = 1, State_Grid%NY + DO I = 1, State_Grid%NX + + ! Solar Zenith Angle (radians) + SZA = 0. + IF ( State_Met%SUNCOSmid(I,J)<=1.0 ) SZA = ACOS(State_Met%SUNCOSmid(I,J)) + + ! Overhead ozone (molec cm-2) + O3col = SUM( State_Chm%Species(indO3)%Conc(I,J,L:LM) & + * State_Met%BXHEIGHT(I,J,L:LM)*100.0 ) + + ! Pressure (hPa) and Temperature (K) + Press = State_Met%PMID_DRY(I,J,L) + Temp = State_Met%T(I,J,L) + + ! Calculate photolysis rates (s-1) a la StratChem + call jcalc4(L, SZA, O3col, Press, Temp, aj, State_Chm) + photJ = aj(12) + + ! Get CO species concentration (molec cm-3) + COinit = State_Chm%Species(indCO)%Conc(I,J,L) + + ! Get CO2 (molec cm-3) + CO2conc = State_Chm%Species(indCO2)%Conc(I,J,L) + + ! production rate + dCOphot = photJ*CO2conc + + ! Update CO concentration + COpost = COinit + tsChem*dCOphot + + ! Add back to concentration array + State_Chm%Species(indCO)%Conc(I,J,L) = COpost + + ! Add to diagnostics if requested + IF ( State_Diag%Archive_CO2photrate ) THEN + State_Diag%CO2photrate(I,J,L) = photJ + ENDIF + + IF ( State_Diag%Archive_COincCO2phot ) THEN + State_Diag%COincCO2phot(I,J,L) = SAFE_DIV( COpost, COinit, 1.0_fp, 1.0_fp ) - 1.0_fp + ENDIF + ENDDO + ENDDO + ENDDO + + ! Convert species back to original units + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + outUnit = origUnit, & + RC = RC ) + ASSERT_( RC == GC_SUCCESS ) + + ! Cleanup + IF ( ALLOCATED(aj) ) DEALLOCATE(aj) + ENDIF + + _RETURN(ESMF_SUCCESS) + +CONTAINS + + SUBROUTINE interp_s(k,sza,o3column,s,jo2,State_Chm) +! ---------------------------------------------------------------------------- +! NAME: +! interp_s +! +! PURPOSE: +! Interpolate S values for each wavelength in table to specified O3 +! column and zenith angle +! +! INPUTS: +! k Current layer number +! szaRad Solar zenith angle [radians] +! o3column Overhead o3 column value [cm^{-2}] +! State_Chm The GOCART::CO grid component, which contains +! sza_tab Solar zenith angle table +! o3_tab Overhead O3 values table +! sdat Radiative source function +! o2jdat Table of J(O2) values +! +! OUTPUTS: +! s S value for each wavelength at current k, interpolated to +! the given o3column and sza +! jo2 J(O2) values interpolated as above +! +! +! PROCEDURE: +! Bi-linear interpolation, for sza > 94 s=0, for O3 out of range use min/max +! +! MODIFICATION HISTORY: +! 25 Aug 1993 Kawa +! 10 Jul 1996 Kawa For 28 levels and to handle J(O2) separately +! 11 May 2012 Nielsen Accomodation for GEOS-5 FV cubed release +! 30 Jan 2021 Weir Copied from StratChem +! ---------------------------------------------------------------------------- + + IMPLICIT NONE + + TYPE(ChmState), INTENT(IN) :: State_Chm ! Grid Component + + INTEGER, INTENT(IN) :: k + REAL, INTENT(IN) :: sza, o3column + REAL, INTENT(OUT) :: s(State_Chm%nlam), jo2 + + INTEGER :: ijj, ik, ikk, ikkm, il, is + REAL :: omt, omu, t, u + REAL, PARAMETER :: PI = 3.14159265 + +! For each input solar zenith angle, find the first element of State_Chm%sza_tab that +! is greater. Use this element and previous one to determine the interpolated value. +! ----------------------------------------------------------------------------------- + DO is = 1,State_Chm%nsza + ijj = is + IF(State_Chm%sza_tab(is) > sza) EXIT + ENDDO + +! Zenith angle test +! ----------------- + IF(sza > State_Chm%sza_tab(State_Chm%nsza)) THEN +! Cell is dark, set s and jo2=0 +! ----------------------------- + s(1:State_Chm%nlam) = 0. + jo2 = 0. + ELSE +! Cell is illuminated +! ------------------- + t = (sza-State_Chm%sza_tab(ijj-1))/(State_Chm%sza_tab(ijj)-State_Chm%sza_tab(ijj-1)) + omt = 1.-t + +! For each overhead O3 column, find the first element in State_Chm%o3_tab that is +! greater. Use this element and previous one to determine the interpolated value. +! ------------------------------------------------------------------------------- + DO is = 1,State_Chm%numo3 + ikk = is + IF(State_Chm%o3_tab(is,k) > o3column) EXIT + ENDDO + + ikkm = ikk-1 + IF(ikk > 1 .AND. o3column <= State_Chm%o3_tab(State_Chm%numo3,k)) THEN + u = (o3column-State_Chm%o3_tab(ikkm,k))/(State_Chm%o3_tab(ikk,k)-State_Chm%o3_tab(ikkm,k)) + omu = 1.-u + +! Do bilinear interpolation for each wavelength. +! ---------------------------------------------- + DO il = 1,State_Chm%nlam + s(il) = omt*omu*State_Chm%sdat(ijj-1,ikkm,k,il)+t*omu*State_Chm%sdat(ijj,ikkm,k,il)+ & + t*u*State_Chm%sdat(ijj,ikk,k,il)+omt*u*State_Chm%sdat(ijj-1,ikk,k,il) + ENDDO + jo2 = omt*omu*State_Chm%o2jdat(ijj-1,ikkm,k)+t*omu*State_Chm%o2jdat(ijj,ikkm,k)+ & + t*u*State_Chm%o2jdat(ijj,ikk,k)+omt*u*State_Chm%o2jdat(ijj-1,ikk,k) + +! Extrapolate ahead of table +! -------------------------- + ELSE IF (ikk == 1) THEN + DO il = 1,State_Chm%nlam + s(il) = omt*State_Chm%sdat(ijj-1,1,k,il)+t*State_Chm%sdat(ijj,1,k,il) + ENDDO + jo2 = omt*State_Chm%o2jdat(ijj-1,1,k)+t*State_Chm%o2jdat(ijj,1,k) + +! Extrapolate beyond table +! ------------------------ + ELSE + DO il = 1,State_Chm%nlam + s(il) = omt*State_Chm%sdat(ijj-1,State_Chm%numo3,k,il)+t*State_Chm%sdat(ijj,State_Chm%numo3,k,il) + END DO + jo2 = omt*State_Chm%o2jdat(ijj-1,State_Chm%numo3,k)+t*State_Chm%o2jdat(ijj,State_Chm%numo3,k) + ENDIF + ENDIF + + RETURN + END SUBROUTINE interp_s + + SUBROUTINE jcalc4(k,szan,o3column,press,kel,aj,State_Chm) +! --------------------------------------------------------------------------------- +! NAME: jcalc4 +! PURPOSE: +! Calculate photolysis rates +! INPUT: +! k Current layer number +! levels Number of layers +! szan Solar zenith angle (radians) +! o3column Overhead O3 values +! press Mid-layer pressure (hPa) +! kel Mid-layer temperature (K) +! OUTPUT: +! aj Array of photolysis rates +! RESTRICTIONS: +! Currently set up for 23-J set (see var State_Chm%nxdo) +! REQUIRED ROUTINES: +! interp_s +! MODIFICATION HISTORY: +! 26 Aug 1993 Kawa Created +! 23 Nov 1993 Kawa Remade xtab to do multiplication by solar flux beforehand +! and removed inputs. +! 25 Feb 1994 Add 3 additional Js, incl N2O +! 18 Sep 1995 Add 2 additional Js, up to 22, and do CH2O special +! 13 May 1996 Crum Removed fossils, move toward Fortran 90 +! 10 Jul 1996 Modified to handle J(O2) separately and use 28 levels +! 1 Apr 2009 Nielsen GEOS-5 form with standardized SC_GridComp interface. +! 1 Jun 2009 Nielsen Updated to JPL 2006 +! 12 Dec 2010 Nielsen Updated to JPL 2010 following Luke Oman's testing. +! 11 May 2012 Nielsen Accomodation for GEOS-5 FV cubed release +! 3 Jun 2015 Liang Updated to the new 50-slot table with addition of halons, +! HCFCs, and 5 VSLSs +! numphoto is now updated to 52 +! 30 Jan 2021 Weir Copied from StratChem +! +! WARNING: Photolysis reaction rate numbers 38-42 are calculated in MESO_PHOT. +! --------------------------------------------------------------------------------- + IMPLICIT NONE + INTEGER, PARAMETER :: DBL = KIND(0.00D+00) + + TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Grid Component + + INTEGER, INTENT(IN) :: k + REAL, INTENT(IN) :: szan, o3column, press, kel +! REAL(KIND=DBL), INTENT(OUT) :: aj(State_Chm%numphoto) +! bweir: demoted to single + REAL, INTENT(OUT) :: aj(State_Chm%numphoto) + + INTEGER :: ilam,indt,ix + + REAL :: alpha300, alphat, jo2, rjs(State_Chm%nxdo), q1, q2, r1mq1 + REAL :: s(State_Chm%nlam), sx(2,State_Chm%nlam), tfac, wvl + +! Start with a clean slate +! ------------------------ + aj(1:State_Chm%numphoto) = 0. + +! Interpolate radiative flux function values to model conditions +! -------------------------------------------------------------- + CALL interp_s(k,szan,o3column,s,jo2,State_Chm) + indt = kel-148.5 + indt = MAX(1,indt) + indt = MIN(indt,200) + +! cakelle2: comment stuff not needed for CO2 photolysis... + +!!!! Preliminaries for CH2O quantum yield dependence on m, T, wavelength +!!!! ------------------------------------------------------------------- +!!! tfac = (kel-80.0)/80.0 +!!! +!!! DO ilam=1,State_Chm%nlam +!!! ZeroS: IF(s(ilam) == 0.) THEN +!!! sx(1,ilam) = 0.00 +!!! sx(2,ilam) = 0.00 +!!! ELSE +!!! +!!! wvl = State_Chm%rlam(ilam)*0.10 +!!! +!!! IF(wvl < 250.00) THEN +!!! q1 = 0.24 +!!! ELSE IF(wvl >= 339.00) THEN +!!! q1 = 0.00 +!!! ELSE +!!! q1 = State_Chm%CH2O_aq(1) + State_Chm%CH2O_aq(2)*wvl + & +!!! State_Chm%CH2O_aq(3)*wvl*wvl + & +!!! State_Chm%CH2O_aq(4)*wvl*wvl*wvl + & +!!! State_Chm%CH2O_aq(5)*wvl*wvl*wvl*wvl +!!! ENDIF +!!! +!!! r1mq1 = 1./(1.-q1) +!!! +!!! IF(wvl < 330.00) THEN +!!! q2 = State_Chm%xtab(ilam,22,indt) +!!! ELSE IF(wvl > 360.00) THEN +!!! q2 = 0.00 +!!! ELSE +!!! alpha300 = 1.00E-03*(1./State_Chm%xtab(ilam,22,1)-r1mq1) +!!! alphat = alpha300*(1.+0.05*(wvl-329.)*((300.-kel)/80.)) +!!! q2 = 1.00/(r1mq1+alphat*press) +!!! ENDIF +!!! +!!! IF(wvl .LT. 250.00) q2=0.5 +!!! +!!! sx(2,ilam) = s(ilam)*State_Chm%xtab(ilam,21,indt)*q2 +!!! sx(1,ilam) = s(ilam)*State_Chm%xtab(ilam,21,indt)*q1 +!!! ENDIF ZeroS +!!! ENDDO +!!! +!!!! J(BrONO2) through J(OCLO) +!!!! ------------------------- +!!! DO ix=1,14 +!!! rjs(ix) = 0. +!!! +!!! DO ilam=1,State_Chm%nlam +!!! rjs(ix) = rjs(ix)+s(ilam)*State_Chm%xtab(ilam,ix,indt) +!!! ENDDO +!!! ENDDO +!!! +!!!! J(O2) +!!!! ----- +!!! rjs(15) = jo2 +!!! +!!!! J(O3_O1D) through J(N2O) +!!!! ------------------------ +!!! DO ix=16,20 +!!! rjs(ix) = 0. +!!! +!!! DO ilam=1,State_Chm%nlam +!!! rjs(ix) = rjs(ix)+s(ilam)*State_Chm%xtab(ilam,ix,indt) +!!! ENDDO +!!! ENDDO +!!! +!!!! J(CH2O) +!!!! ------- +!!! rjs(21) = 0. +!!! rjs(22) = 0. +!!! DO ilam=1,State_Chm%nlam +!!! rjs(21) = rjs(21)+sx(1,ilam) +!!! rjs(22) = rjs(22)+sx(2,ilam) +!!! ENDDO + +! J(CO2 -> CO + O) through xH1211 +! ------------------------------- +!!! DO ix=23,State_Chm%nxdo + ix=23 + rjs(ix) = 0. + + DO ilam=1,State_Chm%nlam + rjs(ix) = rjs(ix)+s(ilam)*State_Chm%xtab(ilam,ix,indt) + ENDDO +!!! ENDDO + +! --------------------------------------------------------------- +! Order photolysis rates to match order in full chemistry model. +! Sort rjs into CTM photolysis rate array, aj. Order of rjs: +! +! 1-J(BrONO2) +! 2-J(BrO) +! 3-J(Cl2O2) +! 4-J(ClONO2) +! 5-J(H2O2) +! 6-J(HCl) +! 7-J(HNO3) +! 8-J(HO2NO2) +! 9-J(HOCl) +! 10-J(N2O5) +! 11-J(NO2) +! 12-J(NO3_NO) +! 13-J(NO3_NO2) +! 14-J(OClO) +! 15-J(O2) +! 16-J(O3_O1D) +! 17-J(O3_3P) +! 18-J(HOBr) +! 19-J(CH3OOH) +! 20-J(N2O) +! 21-J(CH2O_HCO) +! 22-J(CH2O_CO) +! 23-J(CO2 -> CO + O) +! 24-xCFC-11 +! 25-xCFC-12 +! 26-xCCl4 +! 27-xCH3CCl3 +! 28-xHCFC-22 +! 29-xCFC-113 +! 30-xCH3Cl +! 31-xCH3Br +! 32-xH1301 +! 33-xH1211 +! 34-xH1202 +! 35-xH2402 +! 36-xCHBr3 +! 37-xCH2Br2 +! 38-xCH2ClBr +! 39-xCHClBr2 +! 40-xCHCl2Br +! 41-xHCFC-141b +! 42-xHCFC-142b +! 43-xCFC-114 +! 44-xCFC-115 +! 45-xOCS +! 46- +! 47- +! 48- +! 49- +! 50- +! --------------------------------------------------------------- +! --------------------------------------------------------------- +! Solar cycle goes here when ready +! aj( 1) = rjs(15)*State_Chm%s_cycle(3,State_Chm%iscyr) +! ---------------------------------------------------------------- +!!! aj( 1) = rjs(15) +!!! aj( 2) = rjs(16) +!!! aj( 3) = rjs(17) +!!!! H2O +!!!! --- +!!! aj( 4) = 0. +!!! aj( 5) = rjs(13) +!!! aj( 6) = rjs(7) +!!! aj( 7) = rjs(11) +!!! aj( 8) = rjs(5) +!!! aj( 9) = rjs(10) +!!! aj(10) = rjs(21) +!!! aj(11) = rjs(22) + aj(12) = rjs(23) +!!! aj(13) = rjs(19) +!!! aj(14) = rjs(20) +!!! aj(15) = rjs(4) +!!! aj(16) = 0. +!!! aj(17) = rjs(12) +!!! aj(18) = rjs(6) +!!! aj(19) = 0. +!!! +!!!! CH3Br(20) H1301(21) H12_24(22) +!!!! ------------------------------ +!!! aj(20) = rjs(31) +!!! aj(21) = rjs(32) +!!! aj(22) = rjs(33) +!!! aj(23) = rjs(9) +!!! aj(24) = rjs(8) +!!! aj(25) = rjs(18) +!!! aj(26) = 0. +!!! aj(27) = rjs(2) +!!! aj(28) = rjs(1) +!!! +!!!! F11(29) F12(30) CCl4(31) CHCCl3(32) HCFC(33) F113(34) CH3Cl(35) +!!!! --------------------------------------------------------------- +!!! aj(29) = rjs(24) +!!! aj(30) = rjs(25) +!!! aj(31) = rjs(26) +!!! aj(32) = rjs(27) +!!! aj(33) = rjs(28) +!!! aj(34) = rjs(29) +!!! aj(35) = rjs(30) +!!! aj(36) = rjs(3) +!!! aj(37) = rjs(14) +!!! +!!!! ------------------------------------------ +!!!! WARNING: Photolysis reaction rate +!!!! numbers 38-42 are calculated in MESO_PHOT. +!!!! ------------------------------------------ +!!!! Add aj(43) which is J(Cl2O2) for partitioning but not Ox loss +!!!! which is aj(36). In lookup table J(Cl2O2) is J*qy where qy is 0.8 +!!!! so multiply by 1.25 to equal J and used in part.F and partest.F +!!! +!!! aj(43) = rjs(3)*1.25 +!!! +!!!! QingLiang -- 06/03/2015 +!!!! CHBr3(44) CH2Br2(45) CH2BrCl(46) CHBrCl2(47) CHBr2Cl(48) +!!! aj(44) = rjs(36) +!!! aj(45) = rjs(37) +!!! aj(46) = rjs(38) +!!! aj(47) = rjs(39) +!!! aj(48) = rjs(40) +!!! +!!!! QingLiang -- 06/03/2015 +!!!! Add two new halons: H-1202 (49) H2402 (50) +!!!! and two new HCFCs: HCFC-141b (51) HCFC-142b (52) +!!! aj(49) = rjs(34) +!!! aj(50) = rjs(35) +!!! aj(51) = rjs(41) +!!! aj(52) = rjs(42) +!!! +!!!! QingLiang -- 02/05/2016 +!!!! Add CFC-114 and CFC-115 +!!!! Add OCS for GOCART module +!!! aj(53) = rjs(43) +!!! aj(54) = rjs(44) +!!! aj(55) = rjs(45) +!!!! aj(53) = rjs(34) +!!!! aj(54) = rjs(34) +!!!! aj(55) = rjs(34) + + RETURN + END SUBROUTINE jcalc4 + + END SUBROUTINE GEOS_CarbonRunPhoto +!EOC +END MODULE GEOS_CarbonInterface diff --git a/Interfaces/GEOS/geos_TaggedSpecies.F90 b/Interfaces/GEOS/geos_TaggedSpecies.F90 new file mode 100644 index 000000000..145b61ed9 --- /dev/null +++ b/Interfaces/GEOS/geos_TaggedSpecies.F90 @@ -0,0 +1,405 @@ +#include "MAPL_Generic.h" +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !MODULE: geos_TaggedSpecies +! +! !DESCRIPTION: Module with routines and variables to handle tagged species. +! For now, this module only covers tagged NO(x). It can handle up to 100 +! individual tagged NO species. The number of tagged species is specified +! in the input file 'GEOSChem_TaggedNOx.rc'. If partner_tag is enabled, a +! tagged NO2 species is also used and tagging will be done as NOx (NO+NO2). + +! The tagged species names are hardcoded to 'NOTAG' and NO2TAG', +! respectively. To run with the tagged species, they need to be added to +! the list of advected species in geoschem_config.yaml. Also, for each +! tagged species, there needs to be corresponding entry in the species +! database file (species_database.yml), e.g.: +! +!NOTAG1: +! Background_VV: 1.0e-30 +! Formula: 'NO' +! FullName: Nitrogen oxide tag 1 +! Is_Advected: true +! Is_Gas: true +! Is_Photolysis: false +! MW_g: 30.01 +! +!NO2TAG1: +! Background_VV: 1.0e-30 +! DD_F0: 0.1 +! DD_Hstar: 1.0e-2 +! Formula: NO2 +! FullName: Nitrogen dioxide tag 1 +! Is_Advected: true +! Is_DryDep: true +! Is_Gas: true +! Is_Photolysis: false +! MW_g: 46.01 +! +! Chemistry prod/loss rates are inherited from the parent species (NO/NO2), +! all other processes are performed at the tagged species level. Emissions +! for each tagged species need to be assigned in the HEMCO configuration +! file. For example, to assign NO biomass burning emissions to tagged species +! #1 (NOTAG1): +!0 QFED_NO_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_tf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/545/592 8 1 +!0 QFED_NOT1_TF_SFC - - - - - - NOTAG1 75/311/545/592 8 1 +! +!\\ +!\\ +! !INTERFACE: +! +MODULE GEOS_TaggedSpecies +! +! !USES: +! + ! MAPL/ESMF + USE ESMF + USE MAPL_Mod + ! GEOS-Chem stuff + USE Precision_Mod + USE ErrCode_Mod ! Error numbers + USE PHYSCONSTANTS + USE Input_Opt_Mod, ONLY : OptInput + USE State_Chm_Mod, ONLY : ChmState, Ind_ ! Chemistry State obj + USE State_Diag_Mod, ONLY : DgnState ! Diagnostics State obj + + IMPLICIT NONE + PRIVATE +! +! !PUBLIC MEMBER FUNCTIONS: +! + PUBLIC :: Init_TaggedSpecies + PUBLIC :: Run_TaggedSpecies + PUBLIC :: Finalize_TaggedSpecies +! +! !PRIVATE MEMBER FUNCTIONS: +! +! +! !PRIVATE TYPES: +! + ! Tagged tracers: + CHARACTER(LEN=128), PARAMETER :: TaggedConfigFile = 'GEOSChem_TaggedNOx.rc' + + INTEGER, PARAMETER :: MaxTag = 100 + INTEGER :: nTagged + INTEGER, ALLOCATABLE :: TagID(:) ! For Tagged NO + INTEGER, ALLOCATABLE :: ParentID_GCC(:) + INTEGER, ALLOCATABLE :: ParentID_KPP(:) + INTEGER, ALLOCATABLE :: TagIDb(:) ! For Tagged NO2 + INTEGER, ALLOCATABLE :: ParentIDb_GCC(:) + INTEGER, ALLOCATABLE :: ParentIDb_KPP(:) +! +! !REVISION HISTORY: +! 19 Mar 2024 - C. Keller / P. Wales - brought into GCv14 from v12 +! See https://github.com/geoschem/geos-chem for full history +!EOP +!------------------------------------------------------------------------------ +!BOC +CONTAINS +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Init_TaggedSpecies +! +! !DESCRIPTION: Initialize tagged species chemistry by reading the information +! from GEOSChem_TaggedNOx.rc +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Init_TaggedSpecies( Input_Opt, State_Chm, State_Diag, RC ) +! +! !USE: +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(OptInput) :: Input_Opt + TYPE(ChmState) :: State_Chm + TYPE(DgnState) :: State_Diag + INTEGER, INTENT(INOUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! !REVISION HISTORY: +! 19 Mar 2024 - C. Keller / P. Wales - brought into GCv14 from v12 +! See https://github.com/geoschem/geos-chem for history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! LOCAL VARIABLES: +! + TYPE(ESMF_Config) :: tagCF ! ESMF Config obj + LOGICAL :: FileExists + CHARACTER(LEN=255) :: ParentName, ParentNameb + CHARACTER(LEN=64) :: TagName, TagNameb + INTEGER :: KppId, TagInd, N, PartnerTag + + __Iam__('Init_TaggedSpecies') + + !-------------------------------------------------------------------- + ! Initialize tagged tracer chemistry + !-------------------------------------------------------------------- + + ! Initialize + nTagged = 0 + + TagName = 'NaN' + ParentName = 'NO' ! eventually allow this to be read in as a list + TagNameb = 'NaN' + ParentNameb = 'NO2' ! chem that cycles with ParentName + + ! Check if file exists + INQUIRE( FILE=TRIM(TaggedConfigFile), EXIST=FileExists ) + + ! Do the following only if file exits + IF ( FileExists ) THEN + + ! Verbose + IF ( Input_Opt%amIRoot ) THEN + WRITE(*,*) 'Reading tagged NOx tracer information from '//TRIM(TaggedConfigFile) + ENDIF + + tagCF = ESMF_ConfigCreate( __RC__ ) + Call ESMF_ConfigLoadFile(tagCF, TRIM(TaggedConfigFile), __RC__ ) + + Call ESMF_ConfigGetAttribute(tagCF, PartnerTag, Label = 'partner_tag:', & + Default = 0, __RC__ ) + Call ESMF_ConfigGetAttribute(tagCF, nTagged, Label ='nchem_tag:', & + Default = 0, __RC__ ) + ASSERT_( nTagged <= MaxTag ) + + IF ( nTagged > 0) THEN + + ! Now that we know ntagged, can allocate vector arrays + ALLOCATE(TagID(nTagged), ParentID_GCC(nTagged), ParentID_KPP(nTagged), & + TagIDb(nTagged), ParentIDb_GCC(nTagged), ParentIDb_KPP(nTagged)) + + ! Get GEOS-Chem and KPP index of the parent species. This is currently hardcoded + ! to be NO everywhere, so can do it outside of the nTagged loop below + ParentID_GCC(:) = Ind_(TRIM(ParentName)) + ASSERT_(ParentID_GCC(1)>0) + + DO KppID = 1, State_Chm%nKppSpc + IF ( State_Chm%Map_KppSpc(KppId) == ParentID_GCC(1) ) THEN + ParentID_KPP(:) = KppID + EXIT + ENDIF + ENDDO + ! Make sure that KPP parent ID is valid + ASSERT_(ParentID_KPP(1)>0) + + ! Get GEOS-Chem and KPP index of the parent species for the partner tag. + ! This is currently hardcoded to be NO2 everywhere, so can do it outside + ! of the nTagged loop below + IF ( PartnerTag > 0) THEN + ParentIDb_GCC(:) = Ind_(TRIM(ParentNameb)) + ASSERT_(ParentIDb_GCC(1)>0) + + DO KppID = 1, State_Chm%nKppSpc + IF ( State_Chm%Map_KppSpc(KppId) == ParentIDb_GCC(1) ) THEN + ParentIDb_KPP(:) = KppID + EXIT + ENDIF + ENDDO + ASSERT_(ParentIDb_KPP(1)>0) + ENDIF + + ! Loop over all tagged species and assign species IDs + DO TagInd = 1, nTagged + + ! Species names are currently hardcoded to NO_TAG1, NO_TAG2, etc. + WRITE(TagName,"(A5,I0)") "NOTAG", TagInd + N = Ind_(TRIM(TagName)) + IF ( N > 0 ) THEN + TagID(TagInd) = N + IF ( Input_Opt%amIRoot ) THEN + WRITE(*,*) 'Tagged species: will apply chem P/L rates of '//TRIM(ParentName)//' to '//TRIM(TagName) + ENDIF + + ! Check for partner tag, hardcoded to NO2_TAG1, NO2_TAG2, etc. + IF (PartnerTag > 0) THEN + WRITE(TagNameb,"(A6,I0)") "NO2TAG", TagInd + TagIDb(TagInd) = Ind_(TRIM(TagNameb)) + IF ( Input_Opt%amIRoot ) THEN + WRITE(*,*) 'Tagged species: will use partner species '//TRIM(TagNameb)//' for '//TRIM(TagName) + ENDIF + ENDIF + ENDIF + ENDDO + ENDIF ! nTagged>0 + ENDIF ! FileExists + + ! All done + RETURN_(ESMF_SUCCESS) + + END SUBROUTINE Init_TaggedSpecies +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Run_TaggedSpecies +! +! !DESCRIPTION: Run tagged species chemistry. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Run_TaggedSpecies( I, J, L, C, PRESS, TEMP, State_Chm, RC ) +! +! !USE: +! + USE GcKpp_Parameters + USE ERROR_MOD +! +! !INPUT/OUTPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: I,J,L + REAL(dp), INTENT(IN) :: C(NSPEC) + REAL(dp), INTENT(IN) :: PRESS + REAL(dp), INTENT(IN) :: TEMP + TYPE(ChmState) :: State_Chm + INTEGER, INTENT(INOUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! !REVISION HISTORY: +! 19 Mar 2024 - C. Keller / P. Wales - brought into GCv14 from v12 +! See https://github.com/geoschem/geos-chem for history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! LOCAL VARIABLES: +! + INTEGER :: N, itagID, SpcID, KppID, iTagIDb, SpcIDb, KppIDb + REAL(fp) :: Tag0, Tag1, Parent0, Parent1, Prat, TagThres, NOxrat + + __Iam__('Run_TaggedSpecies') + + !-------------------------------------------------------------------- + ! Run tagged tracer chemistry + !-------------------------------------------------------------------- + + !===================================================================== + ! Check for tagged tracers and adjust those before updating the + ! Species arrays + !===================================================================== + IF ( nTagged > 0 ) THEN + + ! Threshold is 1.E-14 mol/mol, convert to molecular density + ! density at STP * 298 K / 1013 hPa = 7.24E4 + TagThres = 7.24e4_fp * PRESS / TEMP + + DO N = 1, nTagged + iTagID = TagID(N) + SpcID = ParentID_GCC(N) + KppID = ParentID_KPP(N) + iTagIDb = TagIDb(N) + SpcIDb = ParentIDb_GCC(N) + KppIDb = ParentIDb_KPP(N) + + !!! If there is a partner compound for iTagID + IF ( iTagIDb > 0) THEN + Tag0 = State_Chm%Species(iTagID)%Conc(I,J,L) + & + State_Chm%Species(iTagIDb)%Conc(I,J,L) + Parent0 = State_Chm%Species(SpcID)%Conc(I,J,L) + & + State_Chm%Species(SpcIDb)%Conc(I,J,L) + + IF ( Tag0 > TagThres .and. Parent0 > TagThres) THEN + Prat = SAFE_DIV( Tag0, Parent0, 1.0_fp, 1.0_fp, 0.0_fp ) + Prat = MAX(MIN(Prat,1.0),0.0) + + Parent1 = REAL(MAX(C(KppID),0.0_dp) + MAX(C(KppIDb),0.0_dp),kind=fp) + NOxrat = SAFE_DIV(MAX(C(KppID),0.0_dp), Parent1, 1.0_fp, & + 1.0_fp, 0.0_fp ) + NOxrat = MAX(MIN(NOxrat,1.0),0.0) + + Tag1 = REAL(Tag0 + ( Parent1 - Parent0 ) * Prat, kind=fp) + State_Chm%Species(iTagID)%Conc(I,J,L) = MAX(Tag1 * NOxrat, 0.0_fp) + State_Chm%Species(iTagIDb)%Conc(I,J,L) = MAX(Tag1 * (1.0_fp - NOxrat), & + 0.0_fp) + ELSE + State_Chm%Species(iTagID)%Conc(I,J,L) = 0.0_fp + State_Chm%Species(iTagIDb)%Conc(I,J,L) = 0.0_fp + ENDIF + + ! only scale iTagID + ELSE + Tag0 = State_Chm%Species(iTagID)%Conc(I,J,L) + Parent0 = State_Chm%Species(SpcID)%Conc(I,J,L) + + IF ( Tag0 > TagThres .and. Parent0 > TagThres) THEN + Prat = SAFE_DIV( Tag0, Parent0, 1.0_fp, 1.0_fp, 0.0_fp ) + Prat = MAX(MIN(Prat,1.0),0.0) + Parent1 = REAL(MAX(C(KppID),0.0_dp),kind=fp) + + State_Chm%Species(iTagID)%Conc(I,J,L) = Tag0 + ( Parent1 - Parent0 ) * Prat + State_Chm%Species(iTagID)%Conc(I,J,L) = MAX(State_Chm%Species(iTagID)%Conc(I,J,L), & + 0.0_fp) + ELSE + State_Chm%Species(iTagID)%Conc(I,J,L) = 0.0_fp + ENDIF + ENDIF + ENDDO + ENDIF + + ! All done + RETURN_(ESMF_SUCCESS) + + END SUBROUTINE Run_TaggedSpecies +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: Finalize_TaggedSpecies +! +! !DESCRIPTION: Finalize tagged species arrays. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE Finalize_TaggedSpecies( RC ) +! +! !USE: +! +! !INPUT/OUTPUT PARAMETERS: +! + INTEGER, INTENT(INOUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! !REVISION HISTORY: +! 19 Mar 2024 - C. Keller / P. Wales - brought into GCv14 from v12 +! See https://github.com/geoschem/geos-chem for history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! LOCAL VARIABLES: +! + __Iam__('Finalize_TaggedSpecies') + + IF ( ALLOCATED(TagID ) ) DEALLOCATE(TagID) + IF ( ALLOCATED(ParentID_GCC ) ) DEALLOCATE(ParentID_GCC) + IF ( ALLOCATED(ParentID_KPP ) ) DEALLOCATE(ParentID_KPP) + IF ( ALLOCATED(TagIDb ) ) DEALLOCATE(TagIDb) + IF ( ALLOCATED(ParentIDb_GCC) ) DEALLOCATE(ParentIDb_GCC) + IF ( ALLOCATED(ParentIDb_KPP) ) DEALLOCATE(ParentIDb_KPP) + + ! All done + RETURN_(ESMF_SUCCESS) + + END SUBROUTINE Finalize_TaggedSpecies +!EOC +END MODULE GEOS_TaggedSpecies diff --git a/Interfaces/GEOS/geos_analysis.F90 b/Interfaces/GEOS/geos_analysis.F90 index 26bf9bcb7..fd9cb3c63 100644 --- a/Interfaces/GEOS/geos_analysis.F90 +++ b/Interfaces/GEOS/geos_analysis.F90 @@ -59,10 +59,14 @@ MODULE GEOS_Analysis INTEGER :: AnalysisMinute LOGICAL :: ForwardLooking LOGICAL :: ReadAnaTime + LOGICAL :: SkipPredictor CHARACTER(LEN=ESMF_MAXSTR) :: FileTemplate CHARACTER(LEN=ESMF_MAXSTR) :: FileVarName CHARACTER(LEN=ESMF_MAXSTR) :: FileVarUnit + INTEGER :: FileVarDry LOGICAL :: ApplyIncrement + INTEGER :: IAU + INTEGER :: AnalysisWindow LOGICAL :: NonZeroIncOnly CHARACTER(LEN=ESMF_MAXSTR) :: FileVarNameInc LOGICAL :: InStrat @@ -85,6 +89,7 @@ MODULE GEOS_Analysis INTEGER :: nSpec2 TYPE(Spec2Opt), POINTER :: Spec2(:) => NULL() INTEGER :: ErrorMode + INTEGER :: PrintNeg END TYPE AnaOptions ! List holding all analysis information @@ -387,12 +392,13 @@ SUBROUTINE DoAnalysis_( GC, Import, Internal, Export, Clock, ispec, & USE Input_Opt_Mod, ONLY : OptInput USE State_Chm_Mod, ONLY : ChmState ! Chemistry State obj USE State_Met_Mod, ONLY : MetState ! Meteorology State obj + USE TIME_MOD, ONLY : GET_TS_CHEM ! ! !INPUT/OUTPUT PARAMETERS: ! TYPE(ESMF_GridComp), INTENT(INOUT) :: GC ! Ref. to this GridComp TYPE(ESMF_State), INTENT(INOUT) :: Import ! Import State - TYPE(ESMF_STATE), INTENT(INOUT) :: Internal ! Internal state + TYPE(ESMF_State), INTENT(INOUT) :: Internal ! Internal state TYPE(ESMF_State), INTENT(INOUT) :: Export ! Export State TYPE(ESMF_Clock), INTENT(INOUT) :: Clock ! ESMF Clock object INTEGER, INTENT(IN) :: ispec ! analysis species index @@ -440,16 +446,18 @@ SUBROUTINE DoAnalysis_( GC, Import, Internal, Export, Clock, ispec, & TYPE(ESMF_TIME) :: fileTime INTEGER :: I, J, L, N, IM, JM, LM, LB, indSpc INTEGER, ALLOCATABLE :: indSpc2(:) - INTEGER :: UnitFlag, NNEG + INTEGER :: UnitFlag, DryFlag, NNEG REAL :: OldRatio, NewRatio REAL :: wgt, tropwgt, stratwgt + REAL :: DilFact, tsChem REAL :: frac, diff, maxChange, maxRatio, minRatio REAL :: mwSpc REAL, ALLOCATABLE :: mwSpc2(:) REAL :: SpcAna, SpcNew REAL :: MinConc LOGICAL :: UpdateSpec2 - + TYPE(ESMF_Alarm) :: PredictorAlarm + LOGICAL :: PredictorActive CHARACTER(LEN=ESMF_MAXSTR) :: Iam INTEGER :: STATUS @@ -474,15 +482,29 @@ SUBROUTINE DoAnalysis_( GC, Import, Internal, Export, Clock, ispec, & TimeForAna = .FALSE. CALL GetAnaTime_( Clock, iopt%ForwardLooking, yy, mm, dd, h, m, s, __RC__ ) ThisHour = real(h) - + DilFact = 1.0 + + ! Always do analysis if spreading increment evenly + IF ( iopt%IAU ) THEN + TimeForAna = .TRUE. + ! Calculate dilution factor, to be applied to analysis/increment weight + tsChem = GET_TS_CHEM() + DilFact = real(iopt%AnalysisWindow)*(3600./tsChem) ! If using observation hours, apply analysis every (full) hour - IF ( iopt%UseObsHour ) THEN - IF ( m==0 ) TimeForAna = .TRUE. + ELSEIF ( iopt%UseObsHour .AND. m==0 ) THEN + TimeForAna = .TRUE. ! Otherwise, use specified analysis frequency and hour/minute offsets ELSE IF ( m==iopt%AnalysisMinute .AND. MOD(h,iopt%AnalysisFreq)==iopt%AnalysisHour ) TimeForAna = .TRUE. ENDIF + ! Eventually skip during predictor step + IF ( iopt%SkipPredictor ) THEN + CALL ESMF_ClockGetAlarm(Clock, "PredictorActive", PredictorAlarm, __RC__) + PredictorActive = ESMF_AlarmIsRinging( PredictorAlarm, __RC__ ) + IF ( PredictorActive ) TimeForAna = .FALSE. + ENDIF + ! Initialize/reset diagnostics ! ---------------------- FldName = 'GCC_ANA_INC_'//TRIM(SpecName) @@ -604,18 +626,26 @@ SUBROUTINE DoAnalysis_( GC, Import, Internal, Export, Clock, ispec, & ! Get lower bound of PLE array LB = LBOUND(PLE,3) + ! Set dry flag + DryFlag = iopt%FileVarDry + ! Set unit flag. This is to prevent parsing the unit string within the loop below SELECT CASE ( TRIM(iopt%FileVarUnit) ) CASE ( 'kg/kg' ) UnitFlag = 1 + IF ( DryFlag < 0 ) DryFlag = 0 ! assume kg/kg is total, not dry CASE ( 'mol/mol', 'v/v' ) UnitFlag = 2 + IF ( DryFlag < 0 ) DryFlag = 1 ! assume is dry CASE ( 'ppmv', 'ppm', 'PPMV', 'PPM' ) UnitFlag = 3 + IF ( DryFlag < 0 ) DryFlag = 1 ! assume dry CASE ( 'ppbv', 'ppb', 'PPBV', 'PPB' ) UnitFlag = 4 + IF ( DryFlag < 0 ) DryFlag = 1 ! assume dry CASE DEFAULT UnitFlag = 1 + IF ( DryFlag < 0 ) DryFlag = 0 ! assume kg/kg is total, not dry END SELECT ! State_Chm%Species are in kg/kg total. Make local copy in v/v dry before applying increments. @@ -661,7 +691,9 @@ SUBROUTINE DoAnalysis_( GC, Import, Internal, Export, Clock, ispec, & ! Skip cell if concentration change is too small IF ( iopt%ApplyIncrement .AND. ABS(AnaPtr(I,J,L)) < MinConc ) CYCLE - IF ( iopt%NonZeroIncOnly .AND. ABS(IncPtr(I,J,L)) < MinConc ) CYCLE + IF ( iopt%NonZeroIncOnly ) THEN + IF ( ABS(IncPtr(I,J,L)) < MinConc ) CYCLE + ENDIF ! Default weight to be given to analysis. wgt = iopt%AnaFraction @@ -679,15 +711,19 @@ SUBROUTINE DoAnalysis_( GC, Import, Internal, Export, Clock, ispec, & IF ( stratwgt > 0.0 .AND. StratCount <= iopt%StratSponge ) wgt = 0.0 ENDIF + ! Adjust weight by # of time steps if spreading evenly using IAU. + IF ( iopt%IAU ) wgt = wgt / DilFact + ! Fraction must be between 0 and 1 wgt = max(0.0,min(1.0,wgt)) IF ( wgt == 0.0 ) CYCLE ! Get target concentration in v/v dry SpcAna = AnaPtr(I,J,L) - IF ( UnitFlag == 1 ) SpcAna = SpcAna * ( MAPL_AIRMW / mwSpc ) / ( 1. - Q(I,J,L) ) + IF ( UnitFlag == 1 ) SpcAna = SpcAna * ( MAPL_AIRMW / mwSpc ) IF ( UnitFlag == 3 ) SpcAna = SpcAna * 1.0e-6 IF ( UnitFlag == 4 ) SpcAna = SpcAna * 1.0e-9 + IF ( DryFlag == 0 ) SpcAna = SpcAna / ( 1. - Q(I,J,L) ) ! Update field SpcNew = SpcBkg(I,J,L) @@ -782,7 +818,7 @@ SUBROUTINE DoAnalysis_( GC, Import, Internal, Export, Clock, ispec, & ENDDO ! Print warning if at least one negative cell - IF ( NNEG > 0 ) THEN + IF ( NNEG > 0 .and. iopt%PrintNeg==1 ) THEN WRITE(*,*) '*** DoAnalysis_ warning: encountered concentration below threshold, set to minimum: ',TRIM(SpecName),NNEG,MinConc,' ***' ENDIF @@ -978,6 +1014,7 @@ SUBROUTINE GetAnaBundle_( am_I_Root, FileTmpl, bName, yy, mm, dd, h, m, grid, & m_ = m ! If anatime is true, set time to closest analysis hour (0z, 6z, 12z, 18z) IF ( anatime_ ) THEN + m_ = 0 IF ( h < 3 ) THEN h_ = 0 ELSEIF ( h < 9 ) THEN @@ -1148,11 +1185,17 @@ SUBROUTINE ReadSettings_( am_I_Root, GEOSCF, ispec, RC ) AnaConfig(ispec)%ForwardLooking = ( ThisInt == 1 ) CALL ESMF_ConfigGetAttribute( CF, ThisInt, Label='ReadAnaTime:' , Default=0, __RC__ ) AnaConfig(ispec)%ReadAnaTime = ( ThisInt == 1 ) + CALL ESMF_ConfigGetAttribute( CF, ThisInt, Label='SkipPredictor:' , Default=0, __RC__ ) + AnaConfig(ispec)%SkipPredictor = ( ThisInt == 1 ) CALL ESMF_ConfigGetAttribute( CF, AnaConfig(ispec)%FileTemplate, Label='FileTemplate:' , __RC__ ) CALL ESMF_ConfigGetAttribute( CF, AnaConfig(ispec)%FileVarName, Label='FileVarName:' , __RC__ ) CALL ESMF_ConfigGetAttribute( CF, AnaConfig(ispec)%FileVarUnit, Label='FileVarUnit:' , Default='v/v', __RC__ ) + CALL ESMF_ConfigGetAttribute( CF, AnaConfig(ispec)%FileVarDry, Label='FileVarDry:' , Default=-1, __RC__ ) CALL ESMF_ConfigGetAttribute( CF, ThisInt, Label='ApplyIncrement:', Default=0, __RC__ ) AnaConfig(ispec)%ApplyIncrement = ( ThisInt == 1 ) + CALL ESMF_ConfigGetAttribute( CF, ThisInt, Label='IAU:' , Default=0, __RC__ ) + AnaConfig(ispec)%IAU = ( ThisInt == 1 ) + CALL ESMF_ConfigGetAttribute( CF, AnaConfig(ispec)%AnalysisWindow, Label='AnalysisWindow:', Default=6, __RC__ ) CALL ESMF_ConfigGetAttribute( CF, ThisInt, Label='InStrat:' , Default=1, __RC__ ) AnaConfig(ispec)%InStrat = ( ThisInt == 1 ) CALL ESMF_ConfigGetAttribute( CF, ThisInt, Label='InTrop:' , Default=1, __RC__ ) @@ -1177,6 +1220,7 @@ SUBROUTINE ReadSettings_( am_I_Root, GEOSCF, ispec, RC ) CALL ESMF_ConfigGetAttribute( CF, AnaConfig(ispec)%ObsHourName, Label='ObsHourName:' , Default='ana_hour', __RC__ ) CALL ESMF_ConfigGetAttribute( CF, AnaConfig(ispec)%MinConc, Label='MinConc:' , Default=1.0e-20, __RC__ ) CALL ESMF_ConfigGetAttribute( CF, AnaConfig(ispec)%ErrorMode, Label='ErrorMode:' , Default=1 , __RC__ ) + CALL ESMF_ConfigGetAttribute( CF, AnaConfig(ispec)%PrintNeg, Label='PrintNeg:' , Default=1 , __RC__ ) ! Check for "dependent" species CALL ESMF_ConfigGetAttribute( CF, nSpec2, Label='HasSpec2:' , Default=0, __RC__ ) @@ -1212,6 +1256,13 @@ SUBROUTINE ReadSettings_( am_I_Root, GEOSCF, ispec, RC ) ! Some logical checks IF ( AnaConfig(ispec)%ApplyIncrement ) AnaConfig(ispec)%NonZeroIncOnly = .FALSE. + ! Force some flags if spreading increments across observation window + IF ( AnaConfig(ispec)%IAU ) THEN + AnaConfig(ispec)%UseObsHour = .FALSE. + AnaConfig(ispec)%ReadAnaTime = .TRUE. + !AnaConfig(ispec)%AnaFraction = AnaConfig(ispec)%AnaFraction + ENDIF + ! Verbose IF ( am_I_Root ) THEN WRITE(*,*) '----------------------------------------' @@ -1223,14 +1274,18 @@ SUBROUTINE ReadSettings_( am_I_Root, GEOSCF, ispec, RC ) WRITE(*,*) '- Analysis minute : ',AnaConfig(ispec)%AnalysisMinute WRITE(*,*) '- Forward looking file read : ', AnaConfig(ispec)%ForwardLooking WRITE(*,*) '- Read file analysis time stamp : ', AnaConfig(ispec)%ReadAnaTime + WRITE(*,*) '- Ignore during predictor step : ', AnaConfig(ispec)%SkipPredictor WRITE(*,*) '- Use observation hour : ', AnaConfig(ispec)%UseObsHour WRITE(*,*) '- File template : ', TRIM(AnaConfig(ispec)%FileTemplate) WRITE(*,*) '- Variable name on file : ', TRIM(AnaConfig(ispec)%FileVarName) WRITE(*,*) '- Variable unit on file : ', TRIM(AnaConfig(ispec)%FileVarUnit) + WRITE(*,*) '- Dry air flag (0=dry, 1=total) : ', AnaConfig(ispec)%FileVarDry IF ( AnaConfig(ispec)%UseObsHour ) THEN WRITE(*,*) '- Observation hour name on file : ', TRIM(AnaConfig(ispec)%ObsHourName) ENDIF WRITE(*,*) '- Apply increments : ', AnaConfig(ispec)%ApplyIncrement + WRITE(*,*) '- Spread increments (IAU) : ', AnaConfig(ispec)%IAU + WRITE(*,*) '- Analysis window length [h] : ', AnaConfig(ispec)%AnalysisWindow WRITE(*,*) '- Analysis where inc is not zero: ', AnaConfig(ispec)%NonZeroIncOnly IF ( AnaConfig(ispec)%NonZeroIncOnly ) THEN WRITE(*,*) '- Analysis inc variable name : ', TRIM(AnaConfig(ispec)%FileVarNameInc) @@ -1261,6 +1316,7 @@ SUBROUTINE ReadSettings_( am_I_Root, GEOSCF, ispec, RC ) ENDDO ENDIF WRITE(*,*) '- Error mode : ', AnaConfig(ispec)%ErrorMode + WRITE(*,*) '- Print # negative cocentrations: ', AnaConfig(ispec)%PrintNeg ENDIF ! Active ENDIF diff --git a/Interfaces/GEOS/geos_interface.F90 b/Interfaces/GEOS/geos_interface.F90 index 5178c13ad..5665198ed 100644 --- a/Interfaces/GEOS/geos_interface.F90 +++ b/Interfaces/GEOS/geos_interface.F90 @@ -19,7 +19,7 @@ MODULE GEOS_Interface ! MAPL/ESMF USE ESMF USE MAPL_Mod - ! GEOS-Chem + ! GEOS-Chem stuff USE Precision_Mod USE ErrCode_Mod ! Error numbers USE PHYSCONSTANTS @@ -38,6 +38,7 @@ MODULE GEOS_Interface PUBLIC :: MetVars_For_Lightning_Run PUBLIC :: GEOS_CheckRATSandOx PUBLIC :: GEOS_RATSandOxDiags + PUBLIC :: GEOS_SetH2O PUBLIC :: GEOS_Diagnostics PUBLIC :: GEOS_CalcTotOzone PUBLIC :: GEOS_InitFromFile @@ -193,7 +194,7 @@ SUBROUTINE GEOS_CheckRATSandOx( am_I_Root, GC, RC ) RESTART = MAPL_RestartSkip, & VLOCATION = MAPL_VLocationCenter, & __RC__ ) - if(am_I_Root) write(*,*) 'OX added to internal: Friendly to: ANALYSIS, DYNAMICS, TURBULENCE' + if(am_I_Root) write(*,*) 'OX added to internal: Friendly to: ANALYSIS, DYNAMICS, TURBULENCE, MOIST' call MAPL_AddExportSpec(GC, & SHORT_NAME = 'O3', & @@ -220,6 +221,41 @@ SUBROUTINE GEOS_CheckRATSandOx( am_I_Root, GC, RC ) __RC__ ) ENDIF !DoANOX + !============================================ + ! General diagnostics that can always be used + !============================================ + call MAPL_AddExportSpec(GC, & + SHORT_NAME = 'GCC_H2O_TEND', & + LONG_NAME = 'GEOSCHEMCHEM_tendency_of_water_vapor_mixing_ratio',& + UNITS = 'kg kg-1 s-1', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationCenter, & + __RC__ ) + + call MAPL_AddExportSpec(GC, & + SHORT_NAME = 'GCC_O3', & + LONG_NAME = 'GEOSCHEMCHEM_ozone_mass_mixing_ratio_total_air', & + UNITS = 'kg kg-1', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationCenter, & + __RC__ ) + + call MAPL_AddExportSpec(GC, & + SHORT_NAME = 'GCC_O3PPMV', & + LONG_NAME = 'GEOSCHEMCHEM_ozone_volume_mixing_ratio_total_air', & + UNITS = 'ppmv', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationCenter, & + __RC__ ) + + call MAPL_AddExportSpec(GC, & + SHORT_NAME = 'GCC_OX_TEND', & + LONG_NAME = 'GEOSCHEMCHEM_tendency_of_odd_oxygen_mixing_ratio',& + UNITS = 'mol mol-1 s-1', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationCenter, & + __RC__ ) + ! All done RETURN_(ESMF_SUCCESS) @@ -242,6 +278,7 @@ SUBROUTINE GEOS_RATSandOxDiags( GC, Internal, Export, Input_Opt, State_Met, & ! ! !USES: ! + USE UnitConv_Mod ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -276,24 +313,31 @@ SUBROUTINE GEOS_RATSandOxDiags( GC, Internal, Export, Input_Opt, State_Met, & REAL, PARAMETER :: OMW = 16.0 ! INTEGER :: I, LM, IndSpc, IndO3 - REAL, POINTER :: Ptr3D(:,:,:) => NULL() - REAL(fp), POINTER :: PTR_O3(:,:,:) => NULL() - REAL, POINTER :: OX_TEND(:,:,:) => NULL() - REAL, POINTER :: OX(:,:,:) => NULL() - REAL, POINTER :: O3(:,:,:) => NULL() - REAL, POINTER :: O3PPMV(:,:,:) => NULL() - REAL, POINTER :: GCO3(:,:,:) => NULL() - REAL, POINTER :: GCO3PPMV(:,:,:) => NULL() - REAL, POINTER :: PTR_O3P(:,:,:) => NULL() - REAL, POINTER :: PTR_O1D(:,:,:) => NULL() + REAL, POINTER :: Ptr3D(:,:,:) => NULL() + REAL(fp), POINTER :: PTR_O3(:,:,:) => NULL() + REAL, POINTER :: OX_TEND(:,:,:) => NULL() + REAL, POINTER :: GCC_OX_TEND(:,:,:) => NULL() + REAL, POINTER :: OX(:,:,:) => NULL() + REAL, POINTER :: O3(:,:,:) => NULL() + REAL, POINTER :: O3PPMV(:,:,:) => NULL() + REAL, POINTER :: GCO3(:,:,:) => NULL() + REAL, POINTER :: GCO3PPMV(:,:,:) => NULL() + REAL, POINTER :: PTR_O3P(:,:,:) => NULL() + REAL, POINTER :: PTR_O1D(:,:,:) => NULL() REAL, ALLOCATABLE :: OXLOCAL(:,:,:) LOGICAL :: NeedO3 + INTEGER :: OrigUnit __Iam__('GEOS_RATSandOxDiags') ! Start here LM = State_Grid%NZ + ! Make sure that species are in kg/kg total. This should be the case already, + ! but better be safe! + CALL Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & + outUnit=KG_SPECIES_PER_KG_TOTAL_AIR, OrigUnit=OrigUnit, RC=RC ) + !======================================================================= ! Fill RATS export states if GC is the RATS provider ! The tracer concentrations of the RATS export states are in mol mol-1. @@ -322,6 +366,15 @@ SUBROUTINE GEOS_RATSandOxDiags( GC, Internal, Export, Input_Opt, State_Met, & IF ( Stage == 2 ) Ptr3D = ( State_Chm%Species(IndSpc)%Conc(:,:,LM:1:-1)-Ptr3D ) / tsChem ENDIF + ! Check for H2O tendency + CALL MAPL_GetPointer ( EXPORT, Ptr3D, 'GCC_H2O_TEND', NotFoundOK=.TRUE., __RC__ ) + IF ( ASSOCIATED(Ptr3D) ) THEN + IndSpc = Ind_('H2O') + ASSERT_(IndSpc>0) + IF ( Stage == 1 ) Ptr3D = State_Chm%Species(IndSpc)%Conc(:,:,LM:1:-1) + IF ( Stage == 2 ) Ptr3D = ( State_Chm%Species(IndSpc)%Conc(:,:,LM:1:-1)-Ptr3D ) / tsChem + ENDIF + !======================================================================= ! Ozone diagnostics for GEOS coupling with other components. Do these ! via the export state directly, rather than using the State_Diag obj. @@ -335,7 +388,8 @@ SUBROUTINE GEOS_RATSandOxDiags( GC, Internal, Export, Input_Opt, State_Met, & ! O3: mass mixing ratio ! O3PPMV: volume mixing ratio in ppm ! Get pointers to analysis OX exports - CALL MAPL_GetPointer ( EXPORT, OX_TEND, 'OX_TEND' , NotFoundOK=.TRUE., __RC__ ) + CALL MAPL_GetPointer ( EXPORT, OX_TEND, 'OX_TEND' , NotFoundOK=.TRUE., __RC__ ) + CALL MAPL_GetPointer ( EXPORT, GCC_OX_TEND, 'GCC_OX_TEND' , NotFoundOK=.TRUE., __RC__ ) IF ( Stage == 2 ) THEN CALL MAPL_GetPointer ( INTERNAL, OX, 'OX' , NotFoundOK=.TRUE., __RC__ ) CALL MAPL_GetPointer ( EXPORT, O3, 'O3' , NotFoundOK=.TRUE., __RC__ ) @@ -344,12 +398,13 @@ SUBROUTINE GEOS_RATSandOxDiags( GC, Internal, Export, Input_Opt, State_Met, & CALL MAPL_GetPointer ( EXPORT, GCO3PPMV, 'GCC_O3PPMV' , NotFoundOK=.TRUE., __RC__ ) ENDIF NeedO3 = .FALSE. - IF ( ASSOCIATED(OX )) NeedO3 = .TRUE. - IF ( ASSOCIATED(OX_TEND )) NeedO3 = .TRUE. - IF ( ASSOCIATED(O3 )) NeedO3 = .TRUE. - IF ( ASSOCIATED(O3PPMV )) NeedO3 = .TRUE. - IF ( ASSOCIATED(GCO3 )) NeedO3 = .TRUE. - IF ( ASSOCIATED(GCO3PPMV)) NeedO3 = .TRUE. + IF ( ASSOCIATED(OX )) NeedO3 = .TRUE. + IF ( ASSOCIATED(OX_TEND )) NeedO3 = .TRUE. + IF ( ASSOCIATED(GCC_OX_TEND )) NeedO3 = .TRUE. + IF ( ASSOCIATED(O3 )) NeedO3 = .TRUE. + IF ( ASSOCIATED(O3PPMV )) NeedO3 = .TRUE. + IF ( ASSOCIATED(GCO3 )) NeedO3 = .TRUE. + IF ( ASSOCIATED(GCO3PPMV )) NeedO3 = .TRUE. IF ( NeedO3 ) THEN IndO3 = Ind_('O3') ASSERT_(IndO3>0) @@ -357,9 +412,9 @@ SUBROUTINE GEOS_RATSandOxDiags( GC, Internal, Export, Input_Opt, State_Met, & ENDIF IF ( ASSOCIATED(O3) ) O3 = PTR_O3 IF ( ASSOCIATED(GCO3) ) GCO3 = PTR_O3 - IF ( ASSOCIATED(O3PPMV ) ) GCO3PPMV = PTR_O3 * MAPL_AIRMW / MAPL_O3MW * 1.00E+06 - IF ( ASSOCIATED(GCO3PPMV) ) O3PPMV = PTR_O3 * MAPL_AIRMW / MAPL_O3MW * 1.00E+06 - IF ( ASSOCIATED(OX) .OR. ASSOCIATED(OX_TEND) ) THEN + IF ( ASSOCIATED(O3PPMV ) ) O3PPMV = PTR_O3 * MAPL_AIRMW / MAPL_O3MW * 1.00E+06 + IF ( ASSOCIATED(GCO3PPMV) ) GCO3PPMV = PTR_O3 * MAPL_AIRMW / MAPL_O3MW * 1.00E+06 + IF ( ASSOCIATED(OX) .OR. ASSOCIATED(OX_TEND) .OR. ASSOCIATED(GCC_OX_TEND) ) THEN ALLOCATE(OXLOCAL(State_Grid%NX,State_Grid%NY,State_Grid%NZ)) OXLOCAL = PTR_O3 * MAPL_AIRMW / MAPL_O3MW IndSpc = Ind_('O') @@ -373,9 +428,17 @@ SUBROUTINE GEOS_RATSandOxDiags( GC, Internal, Export, Input_Opt, State_Met, & IF ( Stage==1 ) OX_TEND = OXLOCAL IF ( Stage==2 ) OX_TEND = ( OXLOCAL - OX_TEND ) / tsChem ENDIF + IF ( ASSOCIATED(GCC_OX_TEND) ) THEN + IF ( Stage==1 ) GCC_OX_TEND = OXLOCAL + IF ( Stage==2 ) GCC_OX_TEND = ( OXLOCAL - GCC_OX_TEND ) / tsChem + ENDIF DEALLOCATE(OXLOCAL) ENDIF + ! Convert back to original unit + CALL Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & + OutUnit=OrigUnit, RC=RC ) + ! All done RETURN_(ESMF_SUCCESS) @@ -386,6 +449,84 @@ END SUBROUTINE GEOS_RATSandOxDiags !------------------------------------------------------------------------------ !BOP ! +! !IROUTINE: GEOS_SetH2O +! +! !DESCRIPTION: GEOS_SetH2O sets the GEOS-Chem H2O species to Q or vice versa. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE GEOS_SetH2O( GC, Input_Opt, State_Met, & + State_Chm, State_Grid, Q, Direction, RC ) +! +! !USES: +! + USE UnitConv_Mod +! +! !INPUT/OUTPUT PARAMETERS: +! + TYPE(ESMF_GridComp), INTENT(INOUT) :: GC ! Ref. to this GridComp + TYPE(OptInput) :: Input_Opt + TYPE(MetState) :: State_Met + TYPE(ChmState) :: State_Chm + TYPE(GrdState) :: State_Grid + REAL, INTENT(INOUT) :: Q(:,:,:) + INTEGER, INTENT(IN) :: Direction ! 1:Q-->H2O; -1:H2O-->Q +! +! !OUTPUT PARAMETERS: +! + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !REMARKS: +! +! !REVISION HISTORY: +! 13 Jul 2022 - C. Keller - Initial version (from Chem_GridCompMod) +! See https://github.com/geoschem/geos-chem for history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! LOCAL VARIABLES: +! + INTEGER :: IndH2O, LM + INTEGER :: OrigUnit + + __Iam__('GEOS_SetH2O') + + ! Only do if H2O is a species + IndH2O = Ind_('H2O') + IF ( IndH2O > 0 ) THEN + ! Make sure that species are in kg/kg total. This should be the case already, + ! but better be safe! + CALL Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & + outUnit=KG_SPECIES_PER_KG_TOTAL_AIR, OrigUnit=OrigUnit, RC=RC ) + + ! Sync Q and H2O concentration array. Q is in kg/kg total, so is H2O. + LM = State_Grid%NZ + ! Set GEOS-Chem H2O from Q + IF ( Direction == 1 ) THEN + State_Chm%Species(IndH2O)%Conc(:,:,LM:1:-1) = Q(:,:,1:LM) + ! Set Q to GEOS-Chem H2O. This is possible because Q is friendly to + ! CHEMISTRY + ELSEIF ( Direction == -1 ) THEN + Q(:,:,1:LM) = State_Chm%Species(IndH2O)%Conc(:,:,LM:1:-1) + ENDIF + + ! Convert back to original unit + CALL Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & + outUnit=OrigUnit, RC=RC ) + ENDIF + + ! All done + RETURN_(ESMF_SUCCESS) + + END SUBROUTINE GEOS_SetH2O +!EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Model ! +!------------------------------------------------------------------------------ +!BOP +! ! !IROUTINE: GEOS_AddSpecInfoForMoist ! ! !DESCRIPTION: Add species info to internal state for moist @@ -1077,7 +1218,7 @@ SUBROUTINE GEOS_Diagnostics( GC, IMPORT, EXPORT, Clock, Phase, & ! !USES: ! USE Diagnostics_Mod, ONLY : Set_Diagnostics_EndofTimestep - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE UnitConv_Mod ! ! !INPUT/OUTPUT PARAMETERS: ! @@ -1135,7 +1276,7 @@ SUBROUTINE GEOS_Diagnostics( GC, IMPORT, EXPORT, Clock, Phase, & REAL, POINTER :: LFR(:,:) => NULL() REAL, POINTER :: CNV_FRC(:,:) => NULL() - CHARACTER(LEN=ESMF_MAXSTR) :: OrigUnit + INTEGER :: previous_units __Iam__('GEOS_Diagnostics') @@ -1170,14 +1311,25 @@ SUBROUTINE GEOS_Diagnostics( GC, IMPORT, EXPORT, Clock, Phase, & ! Move 'regular' GEOS-Chem diagnostics from gchp_chunk_mod.F90 to here to ! make sure that these diagnostics see any post-run updates. ! Diagnostics routine expects units of kg/kg dry. - CALL Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & - 'kg/kg dry', RC, OrigUnit=OrigUnit ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = KG_SPECIES_PER_KG_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) _ASSERT(RC==GC_SUCCESS, 'Error calling CONVERT_SPC_UNITS') CALL Set_Diagnostics_EndofTimestep( Input_Opt, State_Chm, State_Diag, & State_Grid, State_Met, RC ) _ASSERT(RC==GC_SUCCESS, 'Error calling Set_Diagnostics_EndofTimestep') - CALL Convert_Spc_Units ( Input_Opt, State_Chm, State_Grid, State_Met, & - OrigUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + new_units = previous_units, & + RC = RC ) _ASSERT(RC==GC_SUCCESS, 'Error calling CONVERT_SPC_UNITS') !======================================================================= @@ -1191,7 +1343,8 @@ SUBROUTINE GEOS_Diagnostics( GC, IMPORT, EXPORT, Clock, Phase, & !======================================================================= ! Total ozone and total tropospheric ozone for export [dobsons]. 2.69E+20 per dobson. - CALL GEOS_CalcTotOzone( am_I_Root, State_Met, State_Chm, State_Diag, PLE, TROPP, __RC__ ) + CALL GEOS_CalcTotOzone( am_I_Root, State_Met, State_Chm, State_Diag, & + PLE, TROPP, __RC__ ) ! O3 mass in kg/m2 IF ( State_Diag%Archive_O3_MASS .AND. ASSOCIATED(State_Diag%O3_MASS) ) THEN @@ -1210,7 +1363,7 @@ SUBROUTINE GEOS_Diagnostics( GC, IMPORT, EXPORT, Clock, Phase, & !======================================================================= ! Total and tropospheric columns !======================================================================= - CALL CalcColumns_( am_I_Root, Input_Opt, State_Chm, State_Diag, PLE, TROPP, __RC__ ) + CALL CalcColumns_( am_I_Root, Input_Opt, State_Met, State_Chm, State_Diag, PLE, TROPP, __RC__ ) !======================================================================= ! Derived met. diagnostics relevant to chemistry processes @@ -1272,11 +1425,11 @@ SUBROUTINE GEOS_Diagnostics( GC, IMPORT, EXPORT, Clock, Phase, & ! Locally compute if over continuous land (formerly used LWI) SfcTypeIndex = MAXLOC( (/ & - State_Met%FRLAND(I,J) + State_Met%FRLANDIC(I,J) & + State_Met%FRLAND(I,J) + State_Met%FRLANDICE(I,J) & + State_Met%FRLAKE(I,J), & State_Met%FRSEAICE(I,J), & State_Met%FROCEAN(I,J) - State_Met%FRSEAICE(I,J) & - /) ) + /), 1 ) ! If there are HEMCO lightning emissions in current grid box set ! lightning potential accordingly @@ -1389,14 +1542,18 @@ SUBROUTINE GEOS_CalcTotOzone ( am_I_Root, State_Met, State_Chm, State_Diag, PLE, IF ( State_Diag%Archive_GCCTTO3 .AND. & ASSOCIATED(State_Diag%GCCTTO3) ) TTO3 => State_Diag%GCCTTO3 - ! Nothing to do if neither of the arrays is associated + ! Nothing to do if none of the arrays are associated IF ( .NOT. ASSOCIATED(TO3) .AND. .NOT. ASSOCIATED(TTO3) .AND. .NOT. ASSOCIATED(TO3fp) ) THEN RC = ESMF_SUCCESS RETURN ENDIF - ! Get O3 from species array (kg/kg total) + ! Get O3 from species array (kg/kg total). Do nothing if ozone is not a species. indO3 = Ind_('O3') + IF ( indO3 < 0 ) THEN + RC = ESMF_SUCCESS + RETURN + ENDIF O3 => State_Chm%Species(indO3)%Conc(:,:,:) ! Grid size @@ -1449,9 +1606,6 @@ SUBROUTINE GEOS_CalcTotOzone ( am_I_Root, State_Met, State_Chm, State_Diag, PLE, END SUBROUTINE GEOS_CalcTotOzone !EOC - - - !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Model ! !------------------------------------------------------------------------------ @@ -1811,7 +1965,7 @@ END SUBROUTINE MetVars_For_Lightning_Run !\\ ! !INTERFACE: ! - SUBROUTINE CalcColumns_ ( am_I_Root, Input_Opt, State_Chm, State_Diag, PLE, TROPP, RC ) + SUBROUTINE CalcColumns_ ( am_I_Root, Input_Opt, State_Met, State_Chm, State_Diag, PLE, TROPP, RC ) ! ! !USES: ! @@ -1821,6 +1975,7 @@ SUBROUTINE CalcColumns_ ( am_I_Root, Input_Opt, State_Chm, State_Diag, PLE, TROP ! LOGICAL, INTENT(IN) :: am_I_Root TYPE(OptInput), INTENT(INOUT) :: Input_Opt + TYPE(MetState), INTENT(INOUT) :: State_Met TYPE(ChmState), INTENT(INOUT) :: State_Chm TYPE(DgnState), INTENT(INOUT) :: State_Diag REAL, POINTER :: PLE (:,:,:) @@ -1838,6 +1993,7 @@ SUBROUTINE CalcColumns_ ( am_I_Root, Input_Opt, State_Chm, State_Diag, PLE, TROP ! REAL, POINTER :: ExpTOTCOL(:,:) REAL, POINTER :: ExpTRPCOL(:,:) + REAL, POINTER :: ExpPBLCOL(:,:) REAL(fp), POINTER :: Spc3D (:,:,:) REAL, ALLOCATABLE :: DUsLayerL(:,:)! Dobsons in a layer, ! for total ozone @@ -1845,13 +2001,14 @@ SUBROUTINE CalcColumns_ ( am_I_Root, Input_Opt, State_Chm, State_Diag, PLE, TROP ! for total ozone REAL :: MW, const INTEGER :: I, J, IM, JM, LM, LB, L, STATUS - INTEGER :: ID, TotID, TropID + INTEGER :: ID, TotID, TropID, PblID CHARACTER(LEN=ESMF_MAXSTR) :: Iam CHARACTER(LEN=15) :: ISPEC ! Objects TYPE(DgnMap), POINTER :: mapTotCol => NULL() TYPE(DgnMap), POINTER :: mapTropCol => NULL() + TYPE(DgnMap), POINTER :: mapPblCol => NULL() !======================================================================= ! CalcColumns_ begins here @@ -1861,8 +2018,9 @@ SUBROUTINE CalcColumns_ ( am_I_Root, Input_Opt, State_Chm, State_Diag, PLE, TROP Iam = 'CalcColumns_' ! Nothing to do if not active - IF ( .NOT. State_Diag%Archive_TotCol .AND. & - .NOT. State_Diag%Archive_TropCol ) THEN + IF ( .NOT. State_Diag%Archive_TotCol .AND. & + .NOT. State_Diag%Archive_TropCol .AND. & + .NOT. State_Diag%Archive_PblCol ) THEN RC = ESMF_SUCCESS RETURN ENDIF @@ -1882,6 +2040,10 @@ SUBROUTINE CalcColumns_ ( am_I_Root, Input_Opt, State_Chm, State_Diag, PLE, TROP mapTropCol => State_Diag%Map_TropCol State_Diag%TropCol(:,:,:) = 0.0 ENDIF + IF ( State_Diag%Archive_PblCol ) THEN + mapPblCol => State_Diag%Map_PblCol + State_Diag%PblCol(:,:,:) = 0.0 + ENDIF ! Allocate local variables ALLOCATE(DUsLayerL(IM,JM), STAT=STATUS) @@ -1894,20 +2056,33 @@ SUBROUTINE CalcColumns_ ( am_I_Root, Input_Opt, State_Chm, State_Diag, PLE, TROP ! Check if total column and/or trop. column requested for this species TotID = -1 - DO J = 1,mapTotCol%nSlots - IF ( mapTotCol%slot2id(J)==I ) THEN - TotID = J - EXIT - ENDIF - ENDDO + IF ( State_Diag%Archive_TotCol ) THEN + DO J = 1,mapTotCol%nSlots + IF ( mapTotCol%slot2id(J)==I ) THEN + TotID = J + EXIT + ENDIF + ENDDO + ENDIF TropID = -1 - DO J = 1,mapTropCol%nSlots - IF ( mapTropCol%slot2id(J)==I ) THEN - TropID = J - EXIT - ENDIF - ENDDO - IF ( (TotID<0) .AND. (TropID<0) ) CYCLE + IF ( State_Diag%Archive_TropCol ) THEN + DO J = 1,mapTropCol%nSlots + IF ( mapTropCol%slot2id(J)==I ) THEN + TropID = J + EXIT + ENDIF + ENDDO + ENDIF + PblID = -1 + IF ( State_Diag%Archive_PblCol ) THEN + DO J = 1,mapPblCol%nSlots + IF ( mapPblCol%slot2id(J)==I ) THEN + PblID = J + EXIT + ENDIF + ENDDO + ENDIF + IF ( (TotID<0) .AND. (TropID<0) .AND. (PblID<0) ) CYCLE ! Species info ISPEC = State_Chm%SpcData(I)%Info%Name @@ -1939,6 +2114,13 @@ SUBROUTINE CalcColumns_ ( am_I_Root, Input_Opt, State_Chm, State_Diag, PLE, TROP State_Diag%TropCol(:,:,TropID) = State_Diag%TropCol(:,:,TropID) & + DUsLayerL(:,:)*wgt(:,:) END IF + ! Add to PBL column + IF ( PblID > 0 ) THEN + wgt = MAX(0.0,MIN(1.0,(PLE(:,:,L+LB)-(State_Met%PBL_TOP_hPa(:,:)*100.0)) & + / (PLE(:,:,L+LB)-PLE(:,:,L+LB-1)))) + State_Diag%PblCol(:,:,PblID) = State_Diag%PblCol(:,:,PblID) & + + DUsLayerL(:,:)*wgt(:,:) + END IF END DO ENDDO @@ -2157,10 +2339,15 @@ SUBROUTINE CalcSpeciesDiagnostics_( am_I_Root, Input_Opt, State_Met, & ENDIF ENDIF PtrTmp => State_Chm%Species(N)%Conc(:,:,LM:1:-1) - IF ( STATUS /= ESMF_SUCCESS ) THEN - WRITE(*,*) 'Error reading ',TRIM(SpcName) - VERIFY_(STATUS) - ENDIF + + ! uncomment below to output more family species information +! IF ( am_I_Root .AND. FIRST ) THEN +! write(*,*) 'First GCC species diagnostics: ', TRIM(SpcName), MW +! IF ( IsNOy ) write(*,*) '--> Is part of NOy' +! IF ( IsBry ) write(*,*) '--> Is part of Bry: ', BrCoeff +! IF ( IsCly ) write(*,*) '--> Is part of Cly: ', ClCoeff +! IF ( IsOrgCl ) write(*,*) '--> Is part of OrgCl: ', OrgClCoeff +! ENDIF ! NOy concentration IF ( IsNOy ) NOy = NOy + PtrTmp * ( MAPL_AIRMW / MW ) / ( 1.0 - Q ) @@ -2174,6 +2361,10 @@ SUBROUTINE CalcSpeciesDiagnostics_( am_I_Root, Input_Opt, State_Met, & ! OrgCl concentration IF ( IsOrgCl ) OrgCl = OrgCl + OrgClCoeff * PtrTmp * ( MAPL_AIRMW / MW ) / ( 1.0 - Q ) ENDIF + + + + ENDDO !======================================================================= diff --git a/KPP/aciduptake/CHANGELOG_fullchem.md b/KPP/aciduptake/CHANGELOG_fullchem.md new file mode 120000 index 000000000..922825d98 --- /dev/null +++ b/KPP/aciduptake/CHANGELOG_fullchem.md @@ -0,0 +1 @@ +../fullchem/CHANGELOG_fullchem.md \ No newline at end of file diff --git a/KPP/aciduptake/aciduptake.eqn b/KPP/aciduptake/aciduptake.eqn index 996aebac1..9b922b31e 100644 --- a/KPP/aciduptake/aciduptake.eqn +++ b/KPP/aciduptake/aciduptake.eqn @@ -4,165 +4,105 @@ DESCRIPTION ------------------------------------------------------------------------------- -GEOS-Chem KPP file containing species and equations for the full chemistry -(NOx-Ox-HC-Aer-Br-Cl-I) mechanism. +GEOS-Chem KPP file containing species and equations for the full chemistry +(NOx-Ox-HC-Aer-Br-Cl-I) mechanism with acid uptake on dust. =============================================================================== FILE HISTORY =============================================================================== -v11-01g (Sep 2016) ----------------------- +Version: 14.2.0 - (1) Initial version for FlexChem (MSL,MJE,MPS,EWL) +Please see "CHANGELOG_fullchem.md" in this folder for the revision history +of the fullchem mechanism, which the "aciduptake" mechanism is based on. -v11-02a (Mar 2017) ----------------------- - - (1) Update rate constants based on JPL 15-10 (MJE,BHH) - - See wiki.geos-chem.org/Updates_in_JPL_Publication_15-10 - (2) Fix ALK4 lumping issue in R4O2 + NO reaction (BHH) - (3) PAN chemistry updates (EVF) - - Added several new NMVOCs. The extended mechanism includes ethanol, - benzene, toluene and ethylbenzene (lumped), xylenes and trimethyl - benzenes (lumped), and monoterpenes (lumped). - - Treatment of monoterpene oxidation is adopted from theRACM2 chemical - mechanism (Goliff et al., 2013), lumping terpenes with one double bond - (alpha-pinene, beta-pinene, sabinene, delta-3-carene) into one proxy. - -v11-02c (Jul 2017) ----------------------- - - (1) Add isoprene SOA updates from Marais2016 (EAM,MPS) - (2) Update isoprene and monoterpene chemistry (KRT,JAF,CCM,EAM,KHB,RHS) - - Based on Travis2016, Fisher2016, ChanMiller2017, Marais2016 - - Add Bates2014 epoxide scheme - - Update isoprene nitrate chemistry following Lee2014 - - Add Muller2014 fast photolysis of carbonyl nitrates - - Add HNO2 chemistry from Lee2014 - - Updated product yields and rx rate for RIO2+RIO2 (Xie2013) - (3) Add fixes for carbon-creating reactions (SAS,BHH,MJE) - -v11-02d (Sep 2017) ----------------------- - - (1) Add halogen chemistry from Sherwen2016b/Sherwen2017 (TS,JAS,SDE,LZHU) - (2) Add HOBr + S(IV) from Chen2017 (QJC) - -12.6.0 (Jul 2019) ------------------------ - - (1) Add photolysis of NITs (off by default) (TMS, PK) - (2) Aerosol heterogeneous uptake for NOx (CDH) - -12.7.0 (Dec 2019) ------------------------ - (1) Add MENO3, ETNO3, PRNO3 chemistry from Fisher2018 (JAF) - (2) Remove old MNO3 (same as MENO3 but not actually used (JAF) - (3) Add "OTHRO2" that is equivalent to ETO2 but is not derived from C2H6 - oxidation. Necessary to prevent overestimates of ETNO3. All ETO2 - reactions are duplicated except ETO2+NO->ETNO3 channel (JAF) - (4) Add MOH as active species (XC, DBM) - -12.8.0 (Feb 2020) ----------------------- - (1) Update isoprene chemistry from Bates2019 (KHB) - -Version 13.y.z (actual version TBA) (Dec 2020 onward) ------------------------------------------------------ - (1) Use double precision numeric constants to each numeric value (e.g. - 1.0d0 instead of 1.0e0). This will prevent having to call the DBLE() - functions in the rate law functions, which wastes CPU cycles, and - also is a "lossy" conversion. (BMY) - -13.3.0 (Sep 2021) ------------------- - (1) Added HMS chemistry (Moch2020) - -- note, currently done in sulfate_mod, equations are commented out - (2) Added C2H2/C2H4 chemistry (Kwon2020) - (3) Added CH3O2 + OH reaction (Bates2021a) - (4) Added sulfur reactions for future development (commented out) - (5) Added aromatic SOA reactions (Bates2021b) +You may list updates specific to the "aciduptake" mechanism below: =============================================================================== -DEVELOPERS (alphabetical order; add your name!) +DEVELOPERS (initials and email/GitHub) =============================================================================== -BHH : Barron Henderson; barronh@gmail.com -BMY : Bob Yantosca; yantosca@seas.harvard.edu -CCM : Christopher Chan Miller; cmiller@fas.harvard.edu -CDH : Christopher Holmes; cdholmes@fsu.edu -DBM : Dylan Millet dbm@umn.edu -EAM : Eloise Marais; e.a.marais@bham.ac.uk -ECB : Ellie Browne eleanor.browne@colorado.edu -EVF : Emily Fischer; evf@rams.colostate.edu -EWL : Lizzie Lundgren; elundgren@seas.harvard.edu -FP : Fabien Paulot; fabien.paulot@noaa.gov -HOTP: Havala Pye; pye.havala@epa.gov -JAF : Jenny Fisher; jennyf@uow.edu.au -JAS : Johan Schmidt; johanalbrechtschmidt@gmail.com -JMAO: Jingqiu Mao; jmao2@alaska.edu -JMM : Jonathan Moch jmoch@g.harvard.edu -JPP : Justin Parrella; justin.parrella@gmail.com -KHB : Kelvin Bates; kelvin@caltech.edu -KRT : Katie Travis; ktravis@fas.harvard.edu -LZHU: Lei Zhu; leizhu@fas.harvard.edu -MJE : Mat Evans; mat.evans@york.ac.uk -MPS : Melissa Sulprizio; mpayer@seas.harvard.edu -MSL : Michael Long; msl3v@virginia.edu -PK : Prasad Kasibhatla; psk9@duke.edu -QJC : Qianjie Chen; chenqjie@uw.edu -RHS : Rebecca Schwantes; rschwant@caltech.edu -SAS : Sarah Safieddine; sarahsaf@mit.edu -SDE : Sebastian Eastham; seastham@seas.harvard.edu -TMS : Tomas Sherwen; tomas.sherwen@york.ac.uk -XC : Xin Chen; chen3849@umn.edu -XW : Xuan Wang; wangx@seas.harvard.edu +* BA : Becky Alexander : @beckyalexander +* BHH : Barron Henderson : @barronh +* BMY : Bob Yantosca : @yantosca +* CCM : Christopher Chan Miller : cmiller@fas.harvard.edu +* CDH : Christopher Holmes : @cdholmes +* DBM : Dylan Millet : @dylanbm +* EAM : Eloise Marais : @eamarais +* ECB : Ellie Browne : eleanor.browne@colorado.edu +* EVF : Emily Fischer : evf@rams.colostate.edu +* EWL : Lizzie Lundgren : @lizziel +* FP : Fabien Paulot : fabien.paulot@noaa.gov +* HOTP : Havala Pye : pye.havala@epa.gov +* JAF : Jenny Fisher : @jennyfisher +* JAS : Johan Schmidt : johanalbrechtschmidt@gmail.com +* JMAO : Jingqiu Mao : @jingqiumao +* JMM : Jonathan Moch : jmoch@g.harvard.edu +* JPP : Justin Parrella : justin.parrella@gmail.com +* KHB : Kelvin Bates : @kelvinhb +* KRT : Katie Travis : @ktravis213 +* LZHU : Lei Zhu : leizhu@fas.harvard.edu +* MJE : Mat Evans : @msl3v +* MPS : Melissa Sulprizio : @msulprizio +* MSL : Michael Long : @msl3v +* PK : Prasad Kasibhatla : @pkasibhatla +* QJC : Qianjie Chen : chenqjie@uw.edu +* RHS : Rebecca Schwantes : rschwant@caltech.edu +* SAS : Sarah Safieddine : sarahsaf@mit.edu +* SDE : Sebastian Eastham : @sdeastham +* TMS : Tomas Sherwen : @tsherwen +* TSC : Therese Carter : @tscarter +* XC : Xin Chen : @xin-chen-github +* XW : Xuan Wang : @xuanw0316 =============================================================================== REFERENCES (alphabetical order) =============================================================================== -* Atkinson2003: Atkinson and Arey, Chem. Rev., doi:10.1021/cr0206420, 2003. -* Bates2014: Bates et al., J. Phys. Chem A, 118, doi:10.1021/jp4107958, 2014. -* Bates2019: Bates and Jacob, Atmos. Chem. Phys., doi:10.5194/acp-19-9613-2019, 2019. -* Bates2021a: Bates et al, JGR, https://doi.org/10.1029/2020JD033439, 2021. -* Bates2021b: Bates et al, ACP, https://doi.org/10.5194/acp-2021-605, 2021. -* Browne2011: Browne et al., Atmos. Chem. Phys., doi:10.5194/acp-11-4209-2011, 2011. -* Browne2014: Browne et al., Atmos. Chem. Phys., doi:10.5194/acp-14-1225-2014, 2014. -* Chen2017: Chen et al., Geophys. Res. Lett., doi:10.1002/2017GL073812, 2017. -* Crounse2012: Crounse et al., J. Phys. Chem. A, doi:10.1021/jp211560u, 2012. -* Eastham2014: Eastham et al., Atmos. Env., doi:10.1016/j.atmosenv.2014.02.001, 2014. -* Fischer2014: Fischer et al., Atmos. Chem. Phys., doi:10.5194/acp-14-2679-2014, 2014. -* Fisher2016: Fisher et al., Atmos. Chem. Phys., doi:10.5194/acp-16-5969-2016, 2016. -* Fisher2018: Fisher et al., J. Geophys. Res., doi:10.1029/2018JD029046, 2018. -* Fry2014: Fry et al. Environ. Sci. Technol., doi:10.1021/es502204x, 2014. -* Gill2002: Gill and Hites, J. Phys. Chem. A, doi:10.1021/jp013532, 2002. -* Goliff2013: Goliff et al., Atmos. Environ., doi:10.1016/j.atmosenv.2012.11.038, 2013. -* Jacobs2014: Jacobs et al., Atmos. Chem. Phys., doi:10.5194/acp-14-8933-2014, 2014. -* Jenkin2015: Jenkin et al., Atmos. Chem. Phys., doi:10.5194/acp-15-11433-2015, 2015. -* Kasibhatla2018: Kasibhatla et al., Atmos. Chem. Phys., doi:10.5194/acp-18-11185-2018, 2018 -* JPL 10-6: JPL Publication 10-6, https://jpldataeval.jpl.nasa.gov/previous_evaluations.html, 2011. -* JPL 15-10: JPL Publication 15-10, https://jpldataeval.jpl.nasa.gov, 2015. -* Kwon2020: Kwon et al, Elementa, https://doi.org/10.1525/elementa.2021.00109, 2020. -* Lee2014: Lee et al., J. Phys. Chem. A, doi:10.1021/jp4107603, 2014. -* Marais2016: Marais et al., Atmos. Chem. Phys, doi:10.5194/acp-16-1603-2016, 2016. -* Miller2017: Miller et al., Atmos. Chem. Phys. Discuss., doi:10.5194/acp-2016-1042, 2017. -* Millet2015: Millet et al., Atmos. Chem. Phys., doi:10.5194/acp-15-6283-2015, 2015. -* Moch2020: Moch et al, JGR, https;//doi.org/10.1029/2020JD032706, 2020. -* Muller2014: Muller et al., Atmos. Chem. Phys., doi:10.5194/acp-14-2497-2014, 2014. -* Parrella2012: Parrella et al. Atmos. Chem. Phys, doi:10.5194/acp-12-6723-2012, 2012. -* Paulot2009: Paulot et al., Atmos. Chem. Phys., doi:10.5194/acp-9-1479-2009, 2009a and - Paulot et al., Science, doi:10.1126/science.1172910, 2009b. -* Peeters2010: Peeters and Muller, Phys. Chem. Chem. Phys., doi:10.1039/C0CP00811G, 2010. -* Peeters2014: Peeters et al., J. Phys. Chem. A, doi:10.1021/jp5033146, 2014. -* Pye2010: Pye et al., Atmos. Chem. Phys., doi:10.5194/acp-10-11261-2010, 2010. -* Roberts1992: Roberts and Bertman, Int. J. Chem. Kinet., doi:10.1002/kin.550240307, 1992. -* Sherwen2016b: Sherwen et al., Atmos. Chem. Phys., doi:10.5194/acp-16-12239-2016, 2016b. -* Sherwen2017: Sherwen et al., Faraday Discuss., doi:10.1039/C7FD00026J, 2017. -* StClair2016: St. Clair et al., J. Phys. Chem. A, doi:10.1021/acs.jpca.5b065322016, 2016. -* Travis2016: Travis et al., Atmos. Chem. Phys., doi:10.5194/acp-16-13561-2016, 2016. -* Wolfe2012: Wolfe et al., Phys. Chem. Chem. Phys., doi: 10.1039/C2CP40388A, 2012. -* Xie2013: Xie et al., Atmos. Chem. Phys., doi:10.5194/acp-13-8439-2013, 2013. +* Atkinson2003 : https://doi.org/10.1021/cr0206420 +* Atkinson2006 : https://doi.org/10.5194/acp-6-3625-2006 +* Bates2014 : https://doi.org/10.1021/jp4107958 +* Bates2019 : https://doi.org/10.5194/acp-19-9613-2019 +* Bates2021a : https://doi.org/10.1029/2020JD033439 +* Bates2021b : https://doi.org/10.5194/acp-2021-605 +* Browne2011 : https://doi.org/10.5194/acp-11-4209-2011 +* Browne2014 : https://doi.org/10.5194/acp-14-1225-2014 +* Carter2022 : https://doi.org/10.5194/acp-22-12093-2022 +* Chen2017 : https://doi.org/10.1002/2017GL073812 +* Crounse2012 : https://doi.org/10.1021/jp211560u +* Eastham2014 : https://doi.org/10.1016/j.atmosenv.2014.02.001 +* Fischer2014 : https://doi.org/10.5194/acp-14-2679-2014 +* Fisher2016 : https://doi.org/10.5194/acp-16-5969-2016 +* Fisher2018 : https://doi.org/10.1029/2018JD029046 +* Fry2014 : https://doi.org/10.1021/es502204x +* Gill2002 : https://doi.org/10.1021/jp013532, 2002. +* Goliff2013 : https://doi.org/10.1016/j.atmosenv.2012.11.038 +* Jacobs2014 : https://doi.org/10.5194/acp-14-8933-2014 +* Jenkin2015 : https://doi.org/10.5194/acp-15-11433-2015 +* Kasibhatla2018 : https://doi.org/10.5194/acp-18-11185-2018 +* IUPAC ROO_19 : https://iupac-aeris.ipsl.fr/htdocs/datasheets/pdf/ROO_19_CH3O2_NO3.pdf +* JPL 10-6 : https://jpldataeval.jpl.nasa.gov/previous_evaluations.html +* JPL 15-10 : https://jpldataeval.jpl.nasa.gov/previous_evaluations.html +* JPL 19-5 : https://jpldataeval.jpl.nasa.gov +* Kwon2020 : https://doi.org/10.1525/elementa.2021.00109 +* Lee2014 : https://doi.org/10.1021/jp4107603 +* Marais2016 : https://doi.org/10.5194/acp-16-1603-2016 +* Miller2017 : https://doi.org/10.5194/acp-2016-1042 +* Millet2015 : https://doi.org/10.5194/acp-15-6283-2015 +* Moch2020 : https;//doi.org/10.1029/2020JD032706, 2020. +* Muller2014 : https://doi.org/10.5194/acp-14-2497-2014 +* Parrella2012 : https://doi.org/10.5194/acp-12-6723-2012 +* Paulot2009 : https://doi.org/10.5194/acp-9-1479-2009 and + https://doi.org/10.1126/science.1172910 +* Peeters2010 : https://doi.org/10.1039/C0CP00811G +* Peeters2014 : https://doi.org/10.1021/jp5033146. +* Pye2010 : https://doi.org/10.5194/acp-10-11261-2010 +* Roberts1992 : https://doi.org/10.1002/kin.550240307 +* Sherwen2016b : https://doi.org/10.5194/acp-16-12239-2016 +* Sherwen2017 : https://doi.org/10.1039/C7FD00026J +* StClair2016 : https://doi.org/10.1021/acs.jpca.5b065322016 +* Travis2016 : https://doi.org/10.5194/acp-16-13561-2016 +* Wolfe2012 : https://doi.org/ 10.1039/C2CP40388A, 2012 +* Xie2013 : https://doi.org/10.5194/acp-13-8439-2013 =============================================================================== NOTES @@ -173,7 +113,7 @@ Comment format is Equations - Date modified; Reference; Developer initials } -#include atoms +#include atoms.kpp #DEFVAR @@ -204,11 +144,12 @@ BrO = IGNORE; {BrO; Bromine monoxide} BRO2 = IGNORE; {C6H5O2 ; Peroxy radical from BENZ oxidation} BrSALA = IGNORE; {Br; Fine sea salt bromine} BrSALC = IGNORE; {Br; Course sea salt bromine} +BUTDI = IGNORE; {Butenedial} BZCO3 = IGNORE; {benzoylperoxy radical} BZCO3H = IGNORE; {perbenzoic acid} BZPAN = IGNORE; {peroxybenzoyl nitrate} -C2H2 = IGNORE; {C2H2; Ethyne} -C2H4 = IGNORE; {Ethylene} +C2H2 = IGNORE; {C2H2; Ethyne} +C2H4 = IGNORE; {Ethylene} C2H6 = IGNORE; {C2H6; Ethane} C3H8 = IGNORE; {C3H8; Propane} C4HVP1 = IGNORE; {C4 hydroxy-vinyl-peroxy radicals from HPALDs} @@ -258,6 +199,7 @@ ETO = IGNORE; {hydroxy-alkoxy-ethane radical} ETOO = IGNORE; {hydroxy-peroxy-ethane radical, formed from ethene + OH} ETO2 = IGNORE; {CH3CH2OO; Ethylperoxy radical} ETP = IGNORE; {CH3CH2OOH; Ethylhydroperoxide} +FURA = IGNORE; {FURAN conglomerate} GLYC = IGNORE; {HOCH2CHO; Glycoaldehyde} GLYX = IGNORE; {CHOCHO; Glyoxal} H = IGNORE; {H; Atomic hydrogen} @@ -295,7 +237,6 @@ HPALD2OO = IGNORE; {peroxy radicals from HPALD2} HPALD3 = IGNORE; {O=CHC(CH3)OOHCH=CH2; b-2,1-C5-hydroperoxyaldehyde} HPALD4 = IGNORE; {CH2=C(CH3)CHOOHCH=O; b-3,4-C5-hydroperoxyaldehyde} HPETHNL = IGNORE; {CHOCH2OOH; hydroperoxyethanal} -HSO3m = IGNORE; {HSO3- radical} I = IGNORE; {I; Atmoic iodine} I2 = IGNORE; {I2; Molecular iodine} I2O2 = IGNORE; {I2O2; Diiodine dioxide} @@ -465,7 +406,6 @@ SALCSO2 = IGNORE; {SO2; Coarse seasalt} SALASO3 = IGNORE; {SO3--; Fine seasalt} SALCSO3 = IGNORE; {SO3--; Coarse chloride} SO2 = IGNORE; {SO2; Sulfur dioxide} -SO3mm = IGNORE; {SO3mm; SO3-- radical} SO4 = IGNORE; {SO4; Sulfate} SO4D1 = IGNORE; {SO4 taken up on DST1} SO4D2 = IGNORE; {SO4 taken up on DST2} @@ -511,23 +451,23 @@ SO2 + 2OH = H2SO4 : K_DST(13); // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // // Seasalt -SO2 + SALAAL + O3 = SO4 - SALAAL : K_MT(1); -HCl + SALAAL = SALACL : K_MT(2); -HNO3 + SALAAL = NIT : K_MT(3); -SO2 + SALCAL + O3 = SO4s - SALCAL : K_MT(4); -HCl + SALCAL = SALCCL : K_MT(5); -HNO3 + SALCAL = NITs : K_MT(6); - +SO2 + SALAAL + O3 = SO4 - SALAAL : K_MT(1); +HCl + SALAAL = SALACL : K_MT(2); +HNO3 + SALAAL = NIT : K_MT(3); +SO2 + SALCAL + O3 = SO4s - SALCAL : K_MT(4); +HCl + SALCAL = SALCCL : K_MT(5); +HNO3 + SALCAL = NITs : K_MT(6); +// // Cloud // S(IV) --> S(VI) -SO2 + H2O2 = SO4 : K_CLD(1); -SO2 + O3 = SO4 : K_CLD(2); -SO2 {+O2} = SO4 : K_CLD(3); {Mn & Fe catalysis + HET_DROP_CHEM()} +SO2 + H2O2 = SO4 : K_CLD(1); +SO2 + O3 = SO4 : K_CLD(2) + SRO3; {Jan 2023; Added SRO3 here; BA} +SO2 {+O2} = SO4 : K_CLD(3); {Mn & Fe catalysis + HET_DROP_CHEM()} // -//HMS -CH2O + SO2 = HMS : K_CLD(4); {Sep 2021; Moch2020; MSL} -HMS = SO2 + CH2O : K_CLD(5); {Sep 2021; Moch2020; MSL} -HMS + OH = 2SO4 + CH2O : K_CLD(6); {Sep 2021; Moch2020; MSL} +// HMS +CH2O + SO2 = HMS : K_CLD(4); {Sep 2021; Moch2020; MSL} +HMS = SO2 + CH2O : K_CLD(5); {Sep 2021; Moch2020; MSL} +HMS + OH = 2SO4 + CH2O - SO2 : K_CLD(6); {Sep 2021; Moch2020; MSL} // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // %%%%% Gas-phase chemistry reactions %%%%% @@ -565,63 +505,63 @@ OH + OH = H2O + O : 1.80d-12; OH + OH {+M} = H2O2 : GCJPLPR_aba(6.90d-31, 1.0d+00, 2.6d-11, 0.6d0); OH + HO2 = H2O + O2 : GCARR_ac(4.80d-11, 250.0d0); OH + H2O2 = H2O + HO2 : 1.80d-12; -HO2 + NO = OH + NO2 : GCARR_ac(3.30d-12, 270.0d0); {2013/02/12; JPL 10-6; BHH,JMAO,EAM} +HO2 + NO = OH + NO2 : GCARR_ac(3.44d-12, 260.0d0); {2023/04/18; JPL 19-5; KHB} HO2 + HO2 = H2O2 + O2 : GC_HO2HO2_acac(3.00d-13, 460.0d0, 2.1d-33, 920.0d0); {2014/02/03; Eastham2014; SDE} -OH + CO = HO2 + CO2 : GC_OHCO_a(1.50d-13); {2017/02/22; JPL 15-10; BHH,MJE} +OH + CO = HO2 + CO2 : GCJPLPR_abab(6.9d-33,2.1d0,1.1d-12,-1.3d0,0.6d0) + GCJPLAC_ababac(6.9d-33,2.1d0,1.1d-12,-1.3d0,1.85d-13,-6.5d1,0.6d0); {2023/04/18; JPL 19-5; KHB} OH + CH4 = MO2 + H2O : GCARR_ac(2.45d-12, -1775.0d0); MO2 + NO = CH2O + HO2 + NO2 : GC_RO2NO_B1_ac(2.80d-12, 300.0d0); {2019/05/10; Fisher2018; JAF} MO2 + NO = MENO3 : GC_RO2NO_A1_ac(2.80d-12, 300.0d0); {2019/05/10; Fisher2018; JAF} -MO2 + HO2 = MP + O2 : GCARR_abc(4.10d-13, 0.0d+00, 750.0d0); +MO2 + HO2 = MP + O2 : GCARR_abc(4.10d-13, 0.0d0, 750.0d0); MO2 + MO2 = MOH + CH2O + O2 : GC_TBRANCH_1_acac(9.50d-14, 390.0d0, 2.62d1, -1130.0d0); MO2 + MO2 = 2.000CH2O + 2.000HO2 : GC_TBRANCH_1_acac(9.50d-14, 390.0d0, 4.0d-2, 1130.0d0); MO2 + OH = 0.13MOH + 0.87CH2O + 1.74HO2 : 1.60d-10 ; {2021/09/22; Bates2021a; KHB,MSL} -MP + OH = MO2 + H2O : GCARR_ac(2.66d-12, 200.0d0); -MP + OH = CH2O + OH + H2O : GCARR_ac(1.14d-12, 200.0d0); -ATOOH + OH = ATO2 + H2O : GCARR_ac(2.66d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -ATOOH + OH = MGLY + OH + H2O : GCARR_ac(1.14d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +MP + OH = 0.700MO2 + 0.300OH + + 0.300CH2O + H2O : GCARR_ac(3.80d-12, 200.0d0); +ATOOH + OH = 0.700ATO2 + 0.300MGLY + + 0.300OH + H2O : GCARR_ac(3.80d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} CH2O + OH = CO + HO2 + H2O : GCARR_ac(5.50d-12, 125.0d0); NO2 + OH {+M} = HNO3 {+M} : GCJPLPR_aba(1.80d-30, 3.0d+00, 2.8d-11, 0.6d0); -HNO3 + OH = H2O + NO3 : GC_OHHNO3_acacac(2.41d-14, 460.0d0, 2.69d-17, 2199.0d0, 6.51d-34, 1335.0d0); +HNO3 + OH = H2O + NO3 : GCJPLPR_abab(3.9d-31,7.2d0,1.5d-13,4.8d0,0.6d0) + GCJPLAC_ababac(3.9d-31,7.2d0,1.5d-13,4.8d0,3.7d-14,2.4d2,0.6d0); {2023/04/18; JPL 19-5; KHB} NO + OH {+M} = HNO2 {+M} : GCJPLPR_abab(7.00d-31, 2.6d+00, 3.60d-11, 0.1d0, 0.6d0); -HNO2 + OH = H2O + NO2 : GCARR_ac(1.80d-11, -390.0d0); +HNO2 + OH = H2O + NO2 : GCARR_ac(3.00d-12, 250.0d0); {2023/04/18; JPL 19-5; KHB} HO2 + NO2 {+M} = HNO4 {+M} : GCJPLPR_abab(1.90d-31, 3.4d+00, 4.0d-12, 0.3d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} HNO4 {+M} = HO2 + NO2 : GCJPLPR_abcabc(9.05d-05, 3.4d0, -10900.0d0, 1.90d15, 0.3d0, -10900.0d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} -HNO4 + OH = H2O + NO2 + O2 : GCARR_ac(1.30d-12, 380.0d0); +HNO4 + OH = H2O + NO2 + O2 : GCARR_ac(4.50d-13, 610.0d0); {2023/04/18; JPL 19-5; KHB} HO2 + NO3 = OH + NO2 + O2 : 3.50d-12; -NO + NO3 = 2.000NO2 : GCARR_ac(1.50d-11, 170.0d0); -OH + NO3 = HO2 + NO2 : 2.20d-11; +NO + NO3 = 2.000NO2 : GCARR_ac(1.70d-11, 125.0d0); {2023/04/18; JPL 19-5; KHB} +OH + NO3 = HO2 + NO2 : 2.00d-11; {2023/04/18; JPL 19-5; KHB} NO2 + NO3 {+M} = N2O5 {+M} : GCJPLPR_abab(2.40d-30, 3.0d+00, 1.6d-12, -0.1d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} N2O5 {+M} = NO2 + NO3 : GCJPLPR_abcabc(4.14d-04, 3.0d0, -10840.0d0, 2.76d14, -0.1d0, -10840.0d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} HCOOH + OH = H2O + CO2 + HO2 : 4.00d-13; {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} MOH + OH = HO2 + CH2O : GCARR_ac(2.90d-12, -345.0d0); -NO2 + NO3 = NO + NO2 + O2 : GCARR_ac(4.50d-14, -1260.0d0); +NO2 + NO3 = NO + NO2 + O2 : GCARR_ac(4.35d-14, -1335.0d0); {2023/04/18; JPL 19-5; KHB} NO3 + CH2O = HNO3 + HO2 + CO : 5.80d-16; ALD2 + OH = 0.950MCO3 + 0.050CH2O + 0.050CO + 0.050HO2 + H2O : GCARR_ac(4.63d-12, 350.0d0); {2014/02/03; Eastham2014; SDE} ALD2 + NO3 = HNO3 + MCO3 : GCARR_ac(1.40d-12, -1900.0d0); -MCO3 + NO2 {+M} = PAN : GCJPLPR_abab(9.70d-29, 5.6d+00, 9.3d-12, 1.5d0, 0.6d0); {JPL Eval 17} -PAN = MCO3 + NO2 : GCJPLEQ_acabab(9.30d-29, 14000.0d0, 9.7d-29, 5.6d0, 9.3d-12, 1.5d0, 0.6d0); +MCO3 + NO2 {+M} = PAN : GCJPLPR_abab(7.30d-29, 4.1d+00, 9.5d-12, 1.6d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} +PAN = MCO3 + NO2 : GCJPLEQ_acabab(9.00d-29, 14000.0d0, 7.3d-29, 4.1d0, 9.5d-12, 1.6d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} MCO3 + NO = MO2 + NO2 + CO2 : GCARR_ac(8.10d-12, 270.0d0); C2H6 + OH = ETO2 + H2O : GCARR_ac(7.66d-12, -1020.0d0); {2013/02/12; JPL 10-6; BHH,JMAO,EAM} ETO2 + NO = ALD2 + NO2 + HO2 : GC_RO2NO_B2_aca(2.60d-12, 365.0d0, 2.0d0); {2019/05/10; Fisher2018; JAF} ETO2 + NO = ETNO3 : GC_RO2NO_A2_aca(2.60d-12, 365.0d0, 2.0d0); {2019/05/10; Fisher2018; JAF} OTHRO2 + NO = ALD2 + NO2 + HO2 : GCARR_ac(2.60d-12, 365.0d0); {2019/05/10; Fisher2018; JAF} -C3H8 + OH = B3O2 : GC_TBRANCH_2_acabc(7.60d-12, -585.0d0, 5.87d0, 0.64d0, -816.0d0); -C3H8 + OH = A3O2 : GC_TBRANCH_2_acabc(7.60d-12, -585.0d0, 1.7d-1, -0.64d0, 816.0d0); +C3H8 + OH = B3O2 : GCARR_abc(8.54d-13,1.54d0,-19.0d0); {2023/04/18; JPL 19-5; KHB} +C3H8 + OH = A3O2 : GCARR_abc(1.97d-12,1.23d0,-675.0d0); {2023/04/18; JPL 19-5; KHB} A3O2 + NO = NO2 + HO2 + RCHO : GC_RO2NO_B2_aca(2.90d-12, 350.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} A3O2 + NO = NPRNO3 : GC_RO2NO_A2_aca(2.90d-12, 350.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} PO2 + NO = NO2 + HO2 + CH2O + ALD2 : GCARR_ac(2.70d-12, 350.0d0); ALK4 + OH = R4O2 : GCARR_ac(9.10d-12, -405.0d0); -R4O2 + NO = NO2 + 0.320ACET + 0.190MEK + - 0.190MO2 + 0.270HO2 + 0.320ALD2 + - 0.140RCHO + 0.050A3O2 + 0.180B3O2 + - 0.320OTHRO2 : GC_RO2NO_B2_aca(2.70d-12, 350.0d0, 4.5d0); {2017/02/23; ALK4 lumping fix; BHH} +R4O2 + NO = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : GC_RO2NO_B2_aca(2.70d-12, 350.0d0, 4.5d0); {2023/04/18; Bates2023; KHB} R4O2 + NO = R4N2 : GC_RO2NO_A2_aca(2.70d-12, 350.0d0, 4.5d0); -R4N1 + NO = 2.000NO2 + 0.570RCHO + - 0.860ALD2 + 0.570CH2O : GCARR_ac(2.70d-12, 350.0d0); {2017/07/27; Fix C creation; SAS,BHH,MJE} -ATO2 + NO = NO2 + CH2O + MCO3 : GCARR_ac(2.80d-12, 300.0d0); {2017/07/27; Fix C creation; SAS,BHH,MJE} -KO2 + NO = 0.930NO2 + 0.930ALD2 + - 0.930MCO3 + 0.070R4N2 : GCARR_ac(2.70d-12, 350.0d0); +R4N1 + NO = 2.000NO2 + 0.640RCHO + + 0.970ALD2 + 0.640CH2O : GCARR_ac(2.70d-12, 350.0d0); {2023/04/18; Bates2023; KHB} +ATO2 + NO = NO2 + CH2O + MCO3 : GCARR_ac(2.90d-12, 300.0d0); {2023/04/18; JPL 19-5; KHB} +KO2 + NO = 0.928NO2 + 0.919ALD2 + + 0.919MCO3 + 0.072R4N2 : GCARR_ac(2.70d-12, 350.0d0); {2023/04/18; Bates2023; KHB} B3O2 + NO = NO2 + HO2 + ACET : GC_RO2NO_B2_aca(2.70d-12, 360.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} B3O2 + NO = IPRNO3 : GC_RO2NO_A2_aca(2.70d-12, 360.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} PRN1 + NO = 2.000NO2 + CH2O + ALD2 : GCARR_ac(2.70d-12, 350.0d0); @@ -631,8 +571,8 @@ ACTA + OH = MO2 + CO2 + H2O : GCARR_ac(3.15d-14, 920.0d0); OH + RCHO = RCO3 + H2O : GCARR_ac(6.00d-12, 410.0d0); RCO3 + NO2 {+M} = PPN : GCJPLPR_abab(9.00d-28, 8.9d0, 7.7d-12, 0.2d0, 0.6d0); {JPL Eval 17} PPN = RCO3 + NO2 : GCJPLEQ_acabab(9.00d-29, 14000.0d0, 9.00d-28, 8.9d0, 7.7d-12, 0.2d0, 0.6d0); -RCO3 + NO = NO2 + 0.500OTHRO2 + - 0.070A3O2 + 0.270B3O2 : GCARR_ac(6.70d-12, 340.0d0); {2019/05/10; Fisher2018; JAF} +RCO3 + NO = NO2 + 0.490OTHRO2 + + 0.070A3O2 + 0.270B3O2 + CO2 : GCARR_ac(6.70d-12, 340.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} RCHO + NO3 = HNO3 + RCO3 : 6.50d-15; ACET + OH = ATO2 + H2O : 1.33d-13 + 3.82d-11*exp(-2000.0d0/TEMP); {JPL Eval 17, p1-62-D31; EVF} A3O2 + MO2 = HO2 + 0.750CH2O + 0.750RCHO + @@ -645,10 +585,10 @@ R4N1 + HO2 = R4N2 : GCARR_ac(7.40d-13, 700.0d0); ATO2 + HO2 = 0.150MCO3 + 0.150OH + 0.150CH2O + 0.850ATOOH : GCARR_ac(8.60d-13, 700.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} KO2 + HO2 = 0.150OH + 0.150ALD2 + - 0.150MCO3 + 0.850ATOOH : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 4.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} + 0.150MCO3 + 0.850ATOOH + 0.850MO2 : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 4.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE; 2023/04/18; Bates2023; KHB} B3O2 + HO2 = RB3P : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PRN1 + HO2 = PRPN : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MEK + OH = KO2 + H2O : GCARR_ac(1.30d-12, -25.0d0); +MEK + OH = KO2 + H2O : GCARR_ac(1.50d-12, -90.0d0); {2023/04/18; Atkinson2006; KHB} MO2 + ETO2 = 0.750CH2O + 0.750ALD2 + HO2 + 0.250MOH + 0.250EOH : 3.00d-13; MO2 + OTHRO2 = 0.750CH2O + 0.750ALD2 + @@ -656,19 +596,18 @@ MO2 + OTHRO2 = 0.750CH2O + 0.750ALD2 + MEK + NO3 = HNO3 + KO2 : 8.00d-16; R4O2 + MO2 = 0.160ACET + 0.100MEK + 0.090MO2 + 0.140HO2 + 0.160ALD2 + - 0.070RCHO + 0.030A3O2 + 0.090B3O2 + + 0.130RCHO + 0.030A3O2 + 0.090B3O2 + 0.160OTHRO2 + 0.250MEK + 0.750CH2O + - 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; -R4N1 + MO2 = NO2 + 0.200CH2O + 0.380ALD2 + - 0.290RCHO + 0.150R4O2 + 0.250RCHO + - 0.750CH2O + 0.250MOH + 0.250ROH + - 0.500HO2 : 8.37d-14; -ATO2 + MO2 = 0.300HO2 + 0.300CH2O + - 0.300MCO3 + 0.200HAC + 0.200CH2O + - 0.500MGLY + 0.500MOH : GCARR_ac(7.50d-13, 500.0d0); + 0.250MOH + 0.380ROH + 0.500HO2 : 8.37d-14; {2023/04/18; Bates2023; KHB} +R4N1 + MO2 = NO2 + 0.950CH2O + 0.380ALD2 + + 0.580RCHO + 0.150R4O2 + 0.500HO2 + + 0.250MOH + 0.375ROH : 8.37d-14; {2023/04/18; Bates2023; KHB} +ATO2 + MO2 = 0.300HO2 + 0.500CH2O + + 0.300MCO3 + 0.200HAC + 0.500MGLY + + 0.500MOH + 0.300CO2 : GCARR_ac(7.50d-13, 500.0d0); {2023/04/18; Bates2023; KHB} KO2 + MO2 = 0.500ALD2 + 0.500MCO3 + 0.250MEK + 0.750CH2O + 0.250MOH + - 0.250ROH + 0.500HO2 : 8.37d-14; + 0.250ROH + 0.500HO2 + 0.250MO2 : 8.37d-14; {2023/04/18; Bates2023; KHB} B3O2 + MO2 = 0.500HO2 + 0.500ACET + 0.250ACET + 0.750CH2O + 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; @@ -676,41 +615,34 @@ PRN1 + MO2 = NO2 + 0.500CH2O + 0.500ALD2 + 0.250RCHO + 0.750CH2O + 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; EOH + OH = HO2 + ALD2 : 3.35d-12; {2013/02/12; JPL 10-6; BHH,JMAO,EAM} -ROH + OH = HO2 + RCHO : GCARR_ac(4.60d-12, 70.0d0); -ETO2 + ETO2 = 2.000ALD2 + 2.000HO2 : 4.10d-14; -OTHRO2 + OTHRO2 = 2.000ALD2 + 2.000HO2 : 4.10d-14; {2019/05/10; Fisher2018; JAF} -ETO2 + ETO2 = EOH + ALD2 : 2.70d-14; -OTHRO2 + OTHRO2 = EOH + ALD2 : 2.70d-14; {2019/05/10; Fisher2018; JAF} -HO2 + ETO2 = ETP : GCARR_ac(7.40d-13, 700.0d0); -HO2 + OTHRO2 = ETP : GCARR_ac(7.40d-13, 700.0d0); {2019/05/10; Fisher2018; JAF} +ROH + OH = HO2 + RCHO : GCARR_ac(4.40d-12, 70.0d0); {2023/04/18; JPL 19-5; KHB} +ETO2 + ETO2 = 1.600ALD2 + + 0.400EOH + 1.200HO2 : 6.80d-14; +OTHRO2 + OTHRO2 = 1.600ALD2 + + 0.400EOH + 1.200HO2 : 6.80d-14; {2019/05/10; Fisher2018; JAF} +HO2 + ETO2 = ETP : GCARR_ac(7.50d-13, 700.0d0); {2023/04/18; JPL 19-5; KHB} +HO2 + OTHRO2 = ETP : GCARR_ac(7.50d-13, 700.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; JPL 19-5; KHB} A3O2 + HO2 = RA3P : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PO2 + HO2 = PP : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} RCO3 + HO2 = 0.410RP + 0.150RCOOH + 0.150O3 + 0.440OH + 0.220OTHRO2 + - 0.030A3O2 + 0.120B3O2 : GCARR_ac(4.30d-13, 1040.0d0); {2019/05/10; Fisher2018; JAF} + 0.030A3O2 + 0.120B3O2 + 0.430CO2 : GCARR_ac(4.30d-13, 1040.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} PRPE + OH {+M} = PO2 : GCJPLPR_abab(4.60d-27, 4.0d0, 2.6d-11, 1.3d0, 0.5d0); {2017/02/22; JPL 15-10; BHH,MJE} -PRPE + O3 = 0.500ALD2 + 0.500CH2O + - 0.120CH3CHOO + 0.100CH4 + 0.120CH2OO + - 0.280MO2 + 0.560CO + 0.280HO2 + 0.360OH : GCARR_ac(5.50d-15, -1880.0d0); {2015/09/25; Millet2015; DBM,EAM} +PRPE + O3 = 0.100CH4 + 0.280MO2 + 0.100CO2 + + 0.120CH3CHOO + 0.500ALD2 + 0.220CH2OO + + 0.500CH2O + 0.560CO + 0.280HO2 + 0.360OH : GCARR_ac(6.50d-15, -1900.0d0); {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} GLYC + OH = 0.732CH2O + 0.361CO2 + 0.505CO + 0.227OH + 0.773HO2 + 0.134GLYX + 0.134HCOOH : GC_GLYCOH_A_a(8.00d-12); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} GLYC + OH = HCOOH + OH + CO : GC_GLYCOH_B_a(8.00d-12); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PRPE + NO3 = PRN1 : GCARR_ac(4.59d-13, -1156.0d0); GLYX + OH = HO2 + 2.000CO : GCARR_ac(3.10d-12, 340.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MGLY + OH = MCO3 + CO : 1.50d-11; +MGLY + OH = MCO3 + CO : GCARR_ac(1.90d-12, 575.0d0); {2023/04/18; Atkinson2006; KHB} GLYX + NO3 = HNO3 + HO2 + 2.000CO : GC_GLYXNO3_ac(1.40d-12, -1860.0d0); MGLY + NO3 = HNO3 + CO + MCO3 : GCARR_ac(3.36d-12, -1860.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -HAC + OH = MGLY + HO2 : GC_HACOH_A_ac(2.15d-12, 305.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +HAC + OH = MGLY + HO2 : GC_HACOH_A_ac(2.00d-12, 320.0d0); {2023/04/18; Atkinson2006; KHB} HAC + OH = 0.500HCOOH + OH + 0.500ACTA + - 0.500CO2 + 0.500CO + 0.500MO2 : GC_HACOH_B_ac(2.15d-12, 305.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MCO3 + A3O2 = MO2 + RCHO + HO2 : GCARR_ac(1.68d-12, 500.0d0); -MCO3 + PO2 = MO2 + ALD2 + CH2O + HO2 : GCARR_ac(1.68d-12, 500.0d0); -MCO3 + A3O2 = ACTA + RCHO : GCARR_ac(1.87d-13, 500.0d0); -MCO3 + PO2 = ACTA + 0.350RCHO + 0.650HAC : GCARR_ac(1.87d-13, 500.0d0); -RCO3 + MO2 = CH2O + HO2 + 0.500OTHRO2 + - 0.070A3O2 + 0.270B3O2 : GCARR_ac(1.68d-12, 500.0d0); {2019/05/10; Fisher2018; JAF} -RCO3 + MO2 = RCOOH + CH2O : GCARR_ac(1.87d-13, 500.0d0); + 0.500CO2 + 0.500CO + 0.500MO2 : GC_HACOH_B_ac(2.00d-12, 320.0d0); {2023/04/18; Atkinson2006; KHB} PRPN + OH = 0.209PRN1 + 0.791OH + 0.791PROPNN : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} ETP + OH = 0.640OH + 0.360OTHRO2 + @@ -719,43 +651,54 @@ RA3P + OH = 0.640OH + 0.360A3O2 + 0.640RCHO : GCARR_ac(5.18d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} RB3P + OH = 0.791OH + 0.209B3O2 + 0.791ACET : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -R4P + OH = 0.791OH + 0.209R4O2 + 0.791RCHO : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +R4P + OH = 0.790OH + 0.210R4O2 + 1.185RCHO : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE; 2023/04/18; Bates2023; KHB} RP + OH = RCO3 : GCARR_ac(6.13d-13, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PP + OH = 0.791OH + 0.209PO2 + 0.791HAC : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} LVOC + OH = OH : GCARR_ac(4.82d-11, -400.0d0); {2017/06/14; Marais2016; EAM} -OH + MAP = MCO3 : GCARR_ac(6.13d-13, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +OH + MAP = 0.780MCO3 + 0.220OH + + 0.220CO2 + 0.220CH2O : 3.00d-14; {2023/04/18; Atkinson2006; KHB} C2H6 + NO3 = ETO2 + HNO3 : 1.40d-18; {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MCO3 + MCO3 = 2.000MO2 : GCARR_ac(2.50d-12, 500.0d0); -MCO3 + MO2 = CH2O + MO2 + HO2 : GCARR_ac(1.80d-12, 500.0d0); -MCO3 + MO2 = ACTA + CH2O : GCARR_ac(2.00d-13, 500.0d0); -R4O2 + MCO3 = MO2 + 0.320ACET + 0.190MEK + - 0.270HO2 + 0.320ALD2 + 0.130RCHO + - 0.050A3O2 + 0.180B3O2 + 0.320OTHRO2 : GCARR_ac(1.68d-12, 500.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -ATO2 + MCO3 = MO2 + MCO3 + CH2O : GCARR_ac(1.68d-12, 500.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -KO2 + MCO3 = MO2 + ALD2 + MCO3 : GCARR_ac(1.68d-12, 500.0d0); -B3O2 + MCO3 = MO2 + HO2 + ACET : GCARR_ac(1.68d-12, 500.0d0); -R4N1 + MCO3 = MO2 + NO2 + 0.390CH2O + - 0.750ALD2 + 0.570RCHO + 0.300R4O2 : GCARR_ac(1.68d-12, 500.0d0); -PRN1 + MCO3 = MO2 + NO2 + CH2O + ALD2 : GCARR_ac(1.68d-12, 500.0d0); -R4O2 + MCO3 = MEK + ACTA : GCARR_ac(1.87d-13, 500.0d0); -ATO2 + MCO3 = MGLY + ACTA : GCARR_ac(1.87d-13, 500.0d0); {2017/07/27; Fix C creation; SAS,BHH,MJE} -KO2 + MCO3 = MEK + ACTA : GCARR_ac(1.87d-13, 500.0d0); -R4N1 + MCO3 = RCHO + ACTA + NO2 : GCARR_ac(1.87d-13, 500.0d0); -PRN1 + MCO3 = RCHO + ACTA + NO2 : GCARR_ac(1.87d-13, 500.0d0); -B3O2 + MCO3 = ACET + ACTA : GCARR_ac(1.87d-13, 500.0d0); -MCO3 + ETO2 = MO2 + ALD2 + HO2 : GCARR_ac(1.68d-12, 500.0d0); -MCO3 + OTHRO2 = MO2 + ALD2 + HO2 : GCARR_ac(1.68d-12, 500.0d0); {2019/05/10; Fisher2018; JAF} -MCO3 + ETO2 = ACTA + ALD2 : GCARR_ac(1.87d-13, 500.0d0); -MCO3 + OTHRO2 = ACTA + ALD2 : GCARR_ac(1.87d-13, 500.0d0); {2019/05/10; Fisher2018; JAF} -RCO3 + MCO3 = MO2 + 0.500OTHRO2 + - 0.070A3O2 + 0.270B3O2 : GCARR_ac(2.50d-12, 500.0d0); {2019/05/10; Fisher2018; JAF} +MCO3 + MCO3 = 2.000MO2 + 2.000CO2 : GCARR_ac(2.90d-12, 500.0d0); {2023/04/18; JPL 19-5, Bates2023; KHB} +MCO3 + MO2 = 0.1ACTA + CH2O + + 0.9MO2 + 0.9HO2 + 0.9CO2: GCARR_ac(2.00d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +R4O2 + MCO3 = 0.271MEK + 0.100ACTA + + 0.900MO2 + 0.290ACET + 0.243HO2 + + 0.290ALD2 + 0.290OTHRO2 + 0.255RCHO + + 0.045A3O2 + 0.162B3O2 + 0.900CO2: GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +ATO2 + MCO3 = 0.900MO2 + 0.900MCO3 + + 0.900CH2O + 0.100MGLY + 0.100ACTA + + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +KO2 + MCO3 = 0.900MO2 + 0.900MCO3 + + 0.900ALD2 + 0.100MEK + 0.100ACTA + + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +B3O2 + MCO3 = 0.900MO2 + 0.900HO2 + + ACET + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +R4N1 + MCO3 = 0.900MO2 + 0.100ACTA + + 0.613RCHO + 0.351CH2O + 0.675ALD2 + + 0.270R4O2 + 0.645CO2 + NO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +PRN1 + MCO3 = 0.900MO2 + 0.900CH2O + + 0.900CO2 + 0.900ALD2 + 0.100RCHO + + 0.100ACTA + NO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +ETO2 + MCO3 = 0.900MO2 + ALD2 + + 0.900HO2 + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +OTHRO2 + MCO3 = 0.900MO2 + ALD2 + + 0.900HO2 + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} +PO2 + MCO3 = 0.900MO2 + 0.900HO2 + + 0.900ALD2 + 0.900CH2O + 0.065HAC + + 0.035RCHO + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +A3O2 + MCO3 = 0.900MO2 + 0.900HO2 + + RCHO + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +RCO3 + MCO3 = MO2 + 0.490OTHRO2 + + 0.070A3O2 + 0.270B3O2 + 2.000CO2 : GCARR_ac(2.50d-12, 500.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} +RCO3 + MO2 = CH2O + CO2 + HO2 + + 0.490OTHRO2 + 0.070A3O2 + 0.270B3O2 : GCARR_ac(1.87d-12, 500.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} NO3 + NO3 = 2.000NO2 + O2 : GCARR_ac(8.50d-13, -2450.0d0); MO2 + NO2 {+M} = MPN {+M} : GCJPLPR_abab(1.00d-30, 4.8d+00, 7.2d-12, 2.1d0, 0.6d0); {2012/02/12; Browne2011; ECB} MPN {+M} = MO2 + NO2 : GCJPLPR_abcabc(1.05d-02, 4.8d+00, -11234.0d0, 7.58d16, 2.1d0, -11234.0d0, 0.6d0); {2012/02/12; Browne2011; ECB} DMS + OH = SO2 + MO2 + CH2O : GCARR_ac(1.20d-11, -280.0d0); DMS + OH = 0.750SO2 + 0.250MSA + MO2 : GC_DMSOH_acac(8.20d-39, 5376.0d0, 1.05d-5, 3644.0d0); DMS + NO3 = SO2 + HNO3 + MO2 + CH2O : GCARR_ac(1.90d-13, 530.0d0); -SO2 + OH {+M} = SO4 + HO2 : GCJPLPR_aba(3.30d-31, 4.3d+00, 1.6d-12, 0.6d0); +SO2 + OH {+M} = SO4 + HO2 : GCJPLPR_abab(2.90d-31, 4.1d+00, 1.7d-12, -0.2d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} Br + O3 = BrO + O2 : GCARR_ac(1.60d-11, -780.0d0); {2012/06/07; Parrella2012; JPP} BrO + HO2 = HOBr + O2 : GCARR_ac(4.50d-12, 460.0d0); {2012/06/07; Parrella2012; JPP} Br + HO2 = HBr + O2 : GCARR_ac(4.80d-12, -310.0d0); {2012/06/07; Parrella2012; JPP} @@ -783,70 +726,68 @@ O1D + H2O = 2.000OH : GCARR_ac(1.63d-10, 60.0d0); O1D + N2 = O + N2 : GCARR_ac(2.15d-11, 110.0d0); {2014/02/03; Eastham2014; SDE} O1D + O2 = O + O2 : GCARR_ac(3.30d-11, 55.0d0); {2014/02/03; Eastham2014; SDE} O1D + H2 = H + OH : 1.20d-10; {2014/02/03; Eastham2014; SDE} -O1D + N2O = N2 + O2 : GCARR_ac(4.63d-11, 20.0d0); {2014/02/03; Eastham2014; SDE} -O1D + N2O = 2.000NO : GCARR_ac(7.25d-11, 20.0d0); {2014/02/03; Eastham2014; SDE} -O1D + CH4 = MO2 + OH : 1.31d-10; {2014/02/03; Eastham2014; SDE} -O1D + CH4 = CH2O + H2 : 0.09d-10; {2014/02/03; Eastham2014; SDE} -O1D + CH4 = CH2O + H + HO2 : 0.35d-10; {2014/02/03; Eastham2014; SDE} +O1D + N2O = 0.390N2 + 0.390O2 + 1.220NO : GCARR_ac(1.19d-10, 20.0d0); {2014/02/03; Eastham2014; SDE} +O1D + CH4 = 0.750MO2 + 0.750OH + + 0.200H + 0.200HO2 + 0.050H2 + 0.250CH2O : 1.75d-10; {2014/02/03; Eastham2014; SDE} O + O2 {+M} = O3 {+M} : GCARR_ab(6.00d-34, 2.4d0)*NUMDEN; {2014/02/03; Eastham2014; SDE} O + O3 = 2.000O2 : GCARR_ac(8.00d-12, -2060.0d0); {2014/02/03; Eastham2014; SDE} OH + H2 = H2O + H : GCARR_ac(2.80d-12, -1800.0d0); {2014/02/03; Eastham2014; SDE} O + OH = O2 + H : GCARR_ac(1.80d-11, 180.0d0); {2014/02/03; Eastham2014; SDE} HO2 + O = OH + O2 : GCARR_ac(3.00d-11, 200.0d0); {2014/02/03; Eastham2014; SDE} -O1D + O3 = 2.000O2 : 1.20d-10; {2014/02/03; Eastham2014; SDE} -O1D + O3 = 2.000O + O2 : 1.20d-10; {2014/02/03; Eastham2014; SDE} +O1D + O3 = O + 1.500O2 : 2.40d-10; {2014/02/03; Eastham2014; SDE} OCS + O = CO + SO2 : GCARR_ac(2.10d-11, -2200.0d0); {2014/02/03; Eastham2014; SDE} -OCS + OH = CO2 + SO2 : GCARR_ac(1.10d-13, -1200.0d0); {2014/02/03; Eastham2014; SDE} -NO2 + O = NO + O2 : GCARR_ac(5.10d-12, 210.0d0); {2014/02/03; Eastham2014; SDE} -NO3 + O = NO2 + O2 : 1.00d-11; {2014/02/03; Eastham2014; SDE} +OCS + OH = CO2 + SO2 : GCARR_ac(7.20d-14, -1070.0d0); {2023/04/18; JPL 19-5; KHB} +NO2 + O = NO + O2 : GCJPLAC_ababac(3.4e-31, 1.6d0, 2.3d-11, 0.2d0, 5.3d-12, 2.0d2, 0.6d0); {2023/04/18; JPL 19-5; KHB} +NO3 + O = NO2 + O2 : 1.30d-11; {2023/04/18; JPL 19-5; KHB} NO + O {+M} = NO2 {+M} : GCJPLPR_aba(9.00d-32, 1.5d+00, 3.0d-11, 0.6d0); {2014/02/03; Eastham2014; SDE} -NO2 + O {+M} = NO3 {+M} : GCJPLPR_abab(2.50d-31, 1.8d+00, 2.2d-11, 0.7d0, 0.6d0); {2014/02/03; Eastham2014; SDE} +NO2 + O {+M} = NO3 {+M} : GCJPLPR_abab(3.4d-31, 1.6d0, 2.3d-11, 0.2d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} H2O2 + O = OH + HO2 : GCARR_ac(1.40d-12, -2000.0d0); {2014/02/03; Eastham2014; SDE} -H + O2 {+M} = HO2 {+M} : GCJPLPR_abab(4.40d-32, 1.3d+00, 7.5d-11, -0.2d0, 0.6d0); {2014/02/03; Eastham2014; SDE} +H + O2 {+M} = HO2 {+M} : GCJPLPR_abab(5.30d-32, 1.8d+00, 9.5d-11, -0.4d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} H + O3 = OH + O2 : GCARR_ac(1.40d-10, -470.0d0); {2014/02/03; Eastham2014; SDE} -H + HO2 = 2.000OH : 7.20d-11; {2014/02/03; Eastham2014; SDE} -H + HO2 = O + H2O : 1.60d-12; {2014/02/03; Eastham2014; SDE} -H + HO2 = H2 + O2 : 6.90d-12; {2014/02/03; Eastham2014; SDE} -N + O2 = NO + O : GCARR_ac(1.50d-11, -3600.0d0); {2014/02/03; Eastham2014; SDE} +H + HO2 = 1.788OH + 0.020O + + 0.020H2O + 0.086H2 + 0.086O2 : 8.05d-11; {2014/02/03; Eastham2014; SDE} +N + O2 = NO + O : GCARR_ac(3.30d-12, -3150.0d0); {2023/04/18; JPL 19-5; KHB} N + NO = N2 + O : GCARR_ac(2.10d-11, 100.0d0); {2014/02/03; Eastham2014; SDE} N + NO2 = N2O + O : GCARR_ac(5.80d-12, 220.0d0); {2014/02/03; Eastham2014; SDE} BrO + O = Br + O2 : GCARR_ac(1.90d-11, 230.0d0); {2014/02/03; Eastham2014; SDE} CH2O + O = CO + HO2 + OH : GCARR_ac(3.40d-11, -1600.0d0); {2014/02/03; Eastham2014; SDE} -O1D + HCl = 0.090O + 0.090HCl + 0.240H + - 0.670Cl + 0.240ClO + 0.670OH : 1.50d-10; {2014/02/03; Eastham2014; SDE} -O1D + HBr = 0.200O + 0.200HBr + 0.150BrO + - 0.650OH + 0.150H + 0.650Br : 1.50d-10; {2014/02/03; Eastham2014; SDE} +O1D + HCl = 0.120O + 0.120HCl + 0.220H + + 0.660Cl + 0.220ClO + 0.660OH : 1.50d-10; {2023/04/18; JPL 19-5; KHB} +O1D + HBr = 0.200O + 0.200HBr + 0.200BrO + + 0.600OH + 0.200H + 0.600Br : 1.50d-10; {2023/04/18; JPL 19-5; KHB} O1D + Cl2 = 0.250O + 0.250Cl2 + 0.750Cl + 0.750ClO : 2.70d-10; {2014/02/03; Eastham2014; SDE} -O1D + CCl4 = 0.140O + 0.140CCl4 + - 0.860ClO + 2.580Cl : 3.30d-10; {2014/02/03; Eastham2014; SDE} +O1D + CCl4 = 0.210O + 0.210CCl4 + + 0.790ClO + 2.370Cl : 3.30d-10; {2023/04/18; JPL 19-5; KHB} +O1D + CH3Cl = 0.100O + 0.100CH3Cl + + 0.460ClO + 0.350Cl + 0.090H + 0.900MO2 : 2.60d-10; {2023/04/18; JPL 19-5; KHB} O1D + CH3Br = 0.440BrO + MO2 + 0.560Br : 1.80d-10; {2014/02/03; Eastham2014; SDE} O1D + CH2Br2 = 0.050O + 0.050CH2Br2 + 0.950BrO + 0.950Br : 2.70d-10; {2014/02/03; Eastham2014; SDE} -O1D + CHBr3 = 0.320O + 0.320CHBr3 + - 0.680BrO + 1.360Br : 6.60d-10; {2014/02/03; Eastham2014; SDE} -O1D + HCFC22 = 0.280O + 0.280HCFC22 + - 0.550ClO + 0.170Cl : 1.02d-10; {2017/02/22; JPL 15-10; BHH,MJE} -O1D + CFC11 = 0.120O + 0.120CFC11 + - 0.880ClO + 1.760Cl : 2.30d-10; {2014/02/03; Eastham2014; SDE} +O1D + CHBr3 = 0.300O + 0.300CHBr3 + + 0.700BrO + 1.400Br : 6.60d-10; {2023/04/18; JPL 19-5; KHB} +O1D + HCFC22 = 0.250O + 0.250HCFC22 + + 0.560ClO + 0.190Cl + 0.050OH : 1.02d-10; {2023/04/18; JPL 19-5; KHB} +O1D + CFC11 = 0.100O + 0.100CFC11 + + 0.900ClO + 1.800Cl : 2.30d-10; {2023/04/18; JPL 19-5; KHB} O1D + CFC12 = 0.140O + 0.140CFC12 + 0.860ClO + 0.860Cl : 1.40d-10; {2014/02/03; Eastham2014; SDE} -O1D + H1211 = 0.360O + 0.360H1211 + - 0.310BrO + 0.310Cl + 0.330Br + 0.330ClO : 1.50d-10; {2014/02/03; Eastham2014; SDE} -O1D + H1301 = 0.590O + 0.590H1301 + - 0.410BrO : 1.00d-10; {2014/02/03; Eastham2014; SDE} +O1D + H1211 = 0.350O + 0.350H1211 + + 0.310BrO + 0.310Cl + 0.340Br + 0.340ClO : 1.50d-10; {2023/04/18; JPL 19-5; KHB} +O1D + H1301 = 0.550O + 0.550H1301 + + 0.450BrO : 1.00d-10; {2023/04/18; JPL 19-5; KHB} O1D + HCFC141b = 0.310O + 0.310HCFC141b + 0.690ClO + 0.690Cl : 2.60d-10; {2014/02/03; Eastham2014; SDE} -O1D + HCFC142b = 0.260O + 0.260HCFC142b + - 0.740ClO : 2.00d-10; {2017/02/22; JPL 15-10; BHH,MJE} +O1D + HCFC142b = 0.350O + 0.350HCFC142b + + 0.650ClO : 2.00d-10; {2023/04/18; JPL 19-5; KHB} O1D + HCFC123 = 0.210O + 0.210HCFC123 + 0.790Cl + 0.790ClO : 2.00d-10; {2014/02/03; Eastham2014; SDE} -O1D + CFC113 = 0.250O + 0.250CFC113 + - 1.500Cl + 0.750ClO : 2.32d-10; {2017/02/22; JPL 15-10; BHH,MJE} -O1D + CFC114 = 0.250O + 0.250CFC114 + - 0.750Cl + 0.750ClO : GCARR_ac(1.30d-10, -25.0d0); {2017/02/22; JPL 15-10; BHH,MJE} -O1D + CFC115 = 0.700O + 0.700CFC115 + - 0.300ClO : GCARR_ac(5.40d-11, -30.0d0); {2017/02/22; JPL 15-10; BHH,MJE} +O1D + CFC113 = 0.100O + 0.100CFC113 + + 1.900Cl + 0.800ClO : 2.32d-10; {2023/04/18; JPL 19-5; KHB} +O1D + CFC114 = 0.100O + 0.100CFC114 + + 0.950Cl + 0.850ClO : GCARR_ac(1.30d-10, 25.0d0); {2023/04/18; JPL 19-5; KHB} +O1D + CFC115 = 0.140O + 0.140CFC115 + + 0.860ClO : GCARR_ac(5.40d-11, 30.0d0); {2023/04/18; JPL 19-5; KHB} O1D + H2402 = 0.250O + 0.250H2402 + 0.750Br + 0.750BrO : GCARR_ac(1.60d-10, 0.0d0); {2014/02/03; Eastham2014; SDE} OH + Cl2 = HOCl + Cl : GCARR_ac(2.60d-12, -1100.0d0); {2014/02/03; Eastham2014; SDE} @@ -860,15 +801,15 @@ OH + HOCl = H2O + ClO : GCARR_ac(3.00d-12, -500.0d0); OH + ClNO2 = HOCl + NO2 : GCARR_ac(2.40d-12, -1250.0d0); {2014/02/03; Eastham2014; SDE} OH + ClNO3 = HOCl + NO3 : GCARR_ac(1.20d-12, -330.0d0); {2014/02/03; Eastham2014; SDE} OH + CH3Cl = Cl + HO2 + H2O : GCARR_ac(1.96d-12, -1200.0d0); {2017/02/22; JPL 15-10; BHH,MJE} -OH + CH2Cl2 = 2.000Cl + HO2 : GCARR_ac(2.61d-12, -944.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -OH + CHCl3 = 3.000Cl + HO2 : GCARR_ac(4.69d-12, -1134.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +OH + CH2Cl2 = 2.000Cl + HO2 : GCARR_ac(1.92d-12, -880.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +OH + CHCl3 = 3.000Cl + HO2 : GCARR_ac(2.20d-12, -920.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} OH + CH3CCl3 = 3.000Cl + H2O : GCARR_ac(1.64d-12, -1520.0d0); {2014/02/03; Eastham2014; SDE} OH + HCFC22 = Cl + H2O : GCARR_ac(9.20d-13, -1560.0d0); {2017/02/22; JPL 15-10; BHH,MJE} OH + HCFC141b = 2.000Cl + H2O : GCARR_ac(1.25d-12, -1600.0d0); {2014/02/03; Eastham2014; SDE} OH + HCFC142b = Cl + H2O : GCARR_ac(1.30d-12, -1770.0d0); {2014/02/03; Eastham2014; SDE} OH + HCFC123 = 2.000Cl + H2O : GCARR_ac(7.40d-13, -900.0d0); {2017/02/22; JPL 15-10; BHH,MJE} CH4 + Cl = HCl + MO2 : GCARR_ac(7.10d-12, -1270.0d0); {2017/03/08; JPL 15-10; TS,BHH,MJE} -CH2O + Cl = CO + HCl + HO2 : GCARR_ac(7.32d-11, -30.0d0); {2017/09/22; Sherwen2016b; TS,JAS,SDE} +CH2O + Cl = CO + HCl + HO2 : GCARR_ac(8.10d-11, -30.0d0); {2017/09/22; Sherwen2016b; TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} Cl + O3 = ClO + O2 : GCARR_ac(2.30d-11, -200.0d0); {2014/02/03; Eastham2014; SDE} Cl + H2 = H + HCl : GCARR_ac(3.05d-11, -2270.0d0); {2014/02/03; Eastham2014; SDE} Cl + H2O2 = HO2 + HCl : GCARR_ac(1.10d-11, -980.0d0); {2014/02/03; Eastham2014; SDE} @@ -885,16 +826,15 @@ Cl + O2 {+M} = ClOO {+M} : GCJPLPR_aba(2.20d-33, 3.1d+00, 1.8d ClOO {+M} = Cl + O2 {+M} : GCJPLEQ_acabab(6.60d-25, 2502.0d0, 2.20d-33, 3.1d+00, 1.8d-10, 0.0d0, 0.6d0); {JPL 15-10; XW} ClO + ClO {+M} = Cl2O2 {+M} : GCJPLPR_abab(1.90d-32, 3.6d+00, 3.7d-12, 1.6d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} Cl2O2 {+M} = 2.000ClO {+M} : GCJPLEQ_acabab(2.16d-27, 8537.0d0, 1.90d-32, 3.6d+00, 3.7d-12, 1.6d0, 0.6d0); {JPL 15-10; XW} -ClOO + Cl = Cl2 + O2 : 2.30d-10; {2014/02/03; Eastham2014; SDE} -ClOO + Cl = 2.000ClO : 1.20d-11; {2014/02/03; Eastham2014; SDE} +ClOO + Cl = 0.950Cl2 + 0.950O2 + 0.100ClO : 2.42d-10; {2014/02/03; Eastham2014; SDE} ClO + BrO = Br + OClO : GCARR_ac(9.50d-13, 550.0d0); {2014/02/03; Eastham2014; SDE} ClO + BrO = Br + ClOO : GCARR_ac(2.30d-12, 260.0d0); {2014/02/03; Eastham2014; SDE} ClO + BrO = BrCl + O2 : GCARR_ac(4.10d-13, 290.0d0); {2014/02/03; Eastham2014; SDE} ClNO3 + O = ClO + NO3 : GCARR_ac(3.60d-12, -840.0d0); {2014/02/03; Eastham2014; SDE} ClNO3 + Cl = Cl2 + NO3 : GCARR_ac(6.50d-12, 135.0d0); {2014/02/03; Eastham2014; SDE} -CH3Cl + Cl = CO + 2.000HCl + HO2 : GCARR_ac(2.17d-11, -1130.0d0); {2014/02/03; Eastham2014; SDE} -CH2Cl2 + Cl = CO + HCl + 2.000Cl + HO2 : GCARR_ac(1.24d-12, -1070.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -CHCl3 + Cl = CO + HCl + 3.000Cl + HO2 : GCARR_ac(3.77d-12, -1011.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +CH3Cl + Cl = CO + 2.000HCl + HO2 : GCARR_ac(2.03d-11, -1110.0d0); {2014/02/03; Eastham2014; SDE; 2023/04/18; JPL 19-5; KHB} +CH2Cl2 + Cl = CO + HCl + 2.000Cl + HO2 : GCARR_ac(7.40d-12, -910.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +CHCl3 + Cl = CO + HCl + 3.000Cl + HO2 : GCARR_ac(3.30d-12, -990.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} Cl + HCOOH = HCl + CO2 + H2O : 2.00d-13; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + MO2 = ClO + CH2O + HO2 : 1.60d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + MP = HCl + MO2 : 5.7d-11; {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -906,72 +846,56 @@ Cl + EOH = HCl + ALD2 : 9.6d-11; Cl + ACTA = HCl + MO2 + CO2 : 2.8d-14; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + C3H8 = HCl + B3O2 : GCARR_ac(6.54d-11, 60.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + C3H8 = HCl + A3O2 : GCARR_ac(8.12d-11, -90.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -Cl + ACET = HCl + ATO2 : GCARR_ac(7.70d-11, -1000.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +Cl + ACET = HCl + ATO2 : GCARR_ac(1.63d-11, -610.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} Cl + ISOP = HCl + 0.5IHOO1 + 0.5IHOO4 : GCARR_ac(7.60d-11, 500.0d0); {2019/11/06; Sherwen2016b;KHB,TS,JAS,SDE} Cl + ALK4 = HCl + R4O2 : 2.05d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + PRPE {+M} = HCl + PO2 {+M} : GCJPLPR_aa(4.00d-28, 2.8d-10, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} Br + PRPE = HBr + PO2 : 3.60d-12; {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I + NO {+M} = INO {+M} : GCJPLPR_aba(1.80d-32, 1.0d0, 1.77d-11, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +I + NO {+M} = INO {+M} : GCJPLPR_aba(1.80d-32, 1.0d0, 1.70d-11, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} INO + INO = I2 + 2.000NO : GCARR_ac(8.40d-11, -2620.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I + NO2 {+M} = IONO {+M} : GCJPLPR_aba(3.00d-31, 1.0d0, 6.6d-11, 0.63d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +I + NO2 {+M} = IONO {+M} : GCJPLPR_aba(3.00d-31, 1.0d0, 6.6d-11, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} IONO {+M} = I + NO2 {+M} : GCARR_ac(9.94d+17, -11859.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} IONO + IONO = I2 + 2.000NO2 : GCARR_ac(2.90d-11, -2600.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2 + NO3 = I + IONO2 : 1.50d-12; {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + NO2 {+M} = IONO2 {+M} : GCJPLPR_abab(7.50d-31, 3.5d0, 7.6d-12, 1.5d0, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IO + NO2 {+M} = IONO2 {+M} : GCJPLPR_abab(7.50d-31, 3.5d0, 7.6d-12, 1.5d0, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} IONO2 {+M} = IO + NO2 {+M} : GCARR_ac(2.10d+15, -13670.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} IONO2 + I = I2 + NO3 : GCARR_ac(9.10d-11, -146.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I + BrO = IO + Br : 1.20d-11; {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + BrO = Br + I + O2 : GCARR_ac(3.00d-12, 510.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + BrO = Br + OIO : GCARR_ac(1.20d-11, 510.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IO + BrO = 0.8OIO + Br + 0.2I + 0.2O2 : GCARR_ac(5.50d-12, 760.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} IO + OIO {+M} = I2O3 {+M} : 1.00d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} OIO + OIO = I2O4 : 1.50d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O4 {+M} = 2.000OIO {+M} : 3.80d-02; {2017/09/22; Sherwen2016b;TS,JAS,SDE} OIO + NO = IO + NO2 : GCARR_ac(1.10d-12, 542.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + ClO = I + OClO : GCARR_ac(5.10d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + ClO = I + Cl + O2 : GCARR_ac(2.81d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + ClO = ICl + O2 : GCARR_ac(1.02d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I + O3 = IO + O2 : GCARR_ac(2.30d-11, -870.0d0); {2017/09/22; Sherwen2017;TS,JAS,SDE} +IO + ClO = 0.809I + 0.560OClO + + 0.249Cl + 0.191ICl + 0.440O2 : GCARR_ac(4.82d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +I + O3 = IO + O2 : GCARR_ac(2.00d-11, -830.0d0); {2017/09/22; Sherwen2017;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} I + HO2 = HI + O2 : GCARR_ac(1.50d-11, -1090.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2 + OH = HOI + I : 1.80d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} HI + OH = I + H2O : 3.00d-11; {2017/09/22; Sherwen2016b;TS,JAS,SDE} HOI + OH = IO + H2O : 5.00d-12; {2017/09/22; Sherwen2016b;TS,JAS,SDE} IO + HO2 = HOI + O2 : GCARR_ac(1.30d-11, 570.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + NO = I + NO2 : GCARR_ac(9.10d-12, 240.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + IO = I + OIO : GCARR_ac(6.00d-12, 500.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + IO {+M} = I2O2 {+M} : GCARR_ac(9.00d-12, 500.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I2O2 {+M} = 2.000IO {+M} : GCARR_ac(1.00d+12, -9770.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I2O2 {+M} = OIO + I {+M} : GCARR_ac(2.50d+14, -9770.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IO + NO = I + NO2 : GCARR_ac(8.60d-12, 230.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +IO + IO = 0.400I + 0.400OIO + 0.600I2O2: GCARR_ac(1.50d-11, 500.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +I2O2 {+M} = 0.008IO + 0.996I + + 0.996OIO {+M} : GCARR_ac(2.51d+14, -9770.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; Bates2023; KHB} CH3I + OH = H2O + I + MO2 : GCARR_ac(2.90d-12, -1100.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} ETHLN + OH = CH2O + CO2 + NO2 : 2.40d-12; {2017/06/15, Marais2016, EAM} PROPNN + OH = NO2 + MGLY : 6.70d-13; {2017/07/14; MCMv3.3; KRT,JAF,CCM,EAM,KHB,RHS} -CH2OO + CO = CH2O : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM} +CH2OO + CO = CH2O + CO2 : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; Bates2023; KHB} CH2OO + NO = CH2O + NO2 : 1.00d-14; {2015/09/25; Millet2015; DBM,EAM} -CH2OO + NO2 = CH2O + NO3 : 1.00d-15; {2015/09/25; Millet2015; DBM,EAM} +CH2OO + NO2 = CH2O + NO3 : 4.25d-12; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} CH2OO + H2O = 0.730HMHP + 0.210HCOOH + - 0.060CH2O + 0.060H2O2 : 1.70d-15; {2019/11/06; Bates2019; KHB} + 0.060CH2O + 0.060H2O2 : 2.80d-16; {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} CH2OO + H2O + H2O = 0.400HMHP + 0.540HCOOH + 0.060CH2O + 0.060H2O2 : GCARR_ac(2.88d-35, 1391.0d0); {2019/11/06; Bates2019; KHB} CH2OO + O3 = CH2O : 1.40d-12; {2019/11/06; Bates2019; KHB} -CH2OO + SO2 = CH2O + SO4 : 3.70d-11; {2019/11/06; Bates2019; KHB} -CH3CHOO + CO = ALD2 : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM} +CH2OO + SO2 = CH2O + SO4 : 3.80d-11; {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} +CH3CHOO + CO = ALD2 + CO2 : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; Bates2023; KHB} CH3CHOO + NO = ALD2 + NO2 : 1.00d-14; {2015/09/25; Millet2015; DBM,EAM} -CH3CHOO + NO2 = ALD2 + NO3 : 1.00d-15; {2015/09/25; Millet2015; DBM,EAM} -CH3CHOO + SO2 = ALD2 + SO4 : 7.00d-14; {2015/09/25; Millet2015; DBM,EAM} +CH3CHOO + NO2 = ALD2 + NO3 : 4.25d-12; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} +CH3CHOO + SO2 = ALD2 + SO4 : 2.65d-11; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} CH3CHOO + H2O = ALD2 + H2O2 : 6.00d-18; {2015/09/25; Millet2015; DBM,EAM} CH3CHOO + H2O = ACTA : 1.00d-17; {2015/09/25; Millet2015; DBM,EAM} -BENZ + OH = BRO2 + 1.920CH2O + 0.252GLYX + - OH : GCARR_ac(2.33d-12, -193.0d0); {2017/03/23; Fischer2014 ; EVF} -TOLU + OH = TRO2 + 1.920CH2O + 0.260GLYX + - 0.215MGLY + OH : GCARR_ac(1.81d-12, 338.0d0); {2017/03/23; Fischer2014 ; EVF} -XYLE + OH = XRO2 + 1.920CH2O + 0.268GLYX + - 0.463MGLY + OH : 2.31d-11; {2017/03/23; Fischer2014 ; EVF} -XYLE + NO3 = CO2 : 2.60d-16; -BRO2 + HO2 = LBRO2H : GCARR_ac(1.40d-12, 700.0d0); -BRO2 + NO = LBRO2N : GCARR_ac(2.60d-12, 350.0d0); -TRO2 + HO2 = LTRO2H : GCARR_ac(1.40d-12, 700.0d0); -TRO2 + NO = LTRO2N : GCARR_ac(2.60d-12, 350.0d0); -XRO2 + HO2 = LXRO2H : GCARR_ac(1.40d-12, 700.0d0); -XRO2 + NO = LXRO2N : GCARR_ac(2.60d-12, 350.0d0); MTPA + OH = PIO2 : GCARR_ac(1.21d-11, 440.0d0); {2017/03/23; IUPAC2010; EVF} MTPO + OH = PIO2 : GCARR_ac(1.21d-11, 440.0d0); {2017/03/23; IUPAC2010; EVF} PIO2 + NO = 0.820HO2 + 0.820NO2 + @@ -981,8 +905,8 @@ PIO2 + NO = 0.820HO2 + 0.820NO2 + PIO2 + HO2 = PIP : 1.50d-11; {2017/03/23; Roberts1992; EVF} PIO2 + MO2 = HO2 + 0.750CH2O + 0.250MOH + 0.250ROH + 0.750RCHO + 0.750MEK : GCARR_ac(3.56d-14, 708.0d0); {2017/07/14; Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} -PIO2 + MCO3 = 0.500HO2 + 0.500MO2 + RCHO + - MEK + RCOOH : GCARR_ac(7.40d-13, 765.0d0); {2017/03/23; Roberts1992; EVF} +PIO2 + MCO3 = 0.500HO2 + 0.500MO2 + CO2 + + RCHO + 1.125MEK + RCOOH : GCARR_ac(7.40d-13, 765.0d0); {2017/03/23; Roberts1992; EVF; 2022/07/01; 2023/04/18; Bates2023; KHB} PIO2 + NO3 = HO2 + NO2 + RCHO + MEK : 1.20d-12; {2017/03/23; Roberts1992; EVF} MTPA + O3 = 0.850OH + 0.100HO2 + 0.620KO2 + 0.140CO + 0.020H2O2 + @@ -1020,11 +944,11 @@ OLND + HO2 = 0.700MONITS + 0.300MONITU : GCARR_ac(1.66d-13, 1300.0d0); OLNN + MO2 = 2.000HO2 + CH2O + 0.700MONITS + 0.300MONITU : GCARR_ac(1.60d-13, 708.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} OLND + MO2 = 0.500HO2 + 0.500NO2 + - 0.965CH2O + 0.930RCHO + 0.348MEK + + 0.850CH2O + 0.930RCHO + 0.340MEK + 0.250MOH + 0.250ROH + 0.350MONITS + - 0.150MONITU : GCARR_ac(9.68d-14, 708.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} + 0.150MONITU : GCARR_ac(9.68d-14, 708.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS; 2023/04/18; Bates2023; KHB} OLNN + MCO3 = HO2 + MO2 + 0.700MONITS + - 0.300MONITU : GCARR_ac(8.85d-13, 765.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} + 0.300MONITU + CO2 : GCARR_ac(8.85d-13, 765.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS; 2023/04/18; Bates2023; KHB} OLND + MCO3 = 0.500MO2 + NO2 + 0.287CH2O + 1.240RCHO + 0.464MEK + 0.500RCOOH : GCARR_ac(5.37d-13, 765.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} OLNN + NO3 = HO2 + NO2 + 0.700MONITS + @@ -1046,7 +970,7 @@ MONITU + NO3 = HONIT : GCARR_ac(3.15d-13, -448.0d0); MONITS + NO3 = HONIT : GCARR_ac(3.15d-13, -448.0d0); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} IONITA = INDIOL + HNO3 : 2.78d-04; {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} MONITA = INDIOL + HNO3 : 2.78d-04; {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} -HONIT + OH = NO3 + HAC : GC_OHHNO3_acacac(2.41d-14, 460.0d0, 2.69d-17, 2199.0d0, 6.51d-34, 1335.0d0); {2017/07/14; Browne2014; KRT,JAF,CCM,EAM,KHB,RHS} +HONIT + OH = NO3 + HAC : GCJPLPR_abab(3.9d-31,7.2d0,1.5d-13,4.8d0,0.6d0) + GCJPLAC_ababac(3.9d-31,7.2d0,1.5d-13,4.8d0,3.7d-14,2.4d2,0.6d0); {2023/04/18; JPL 19-5; KHB} MENO3 + OH = CH2O + NO2 : GCARR_ac(8.00d-13, -1000.0d0); {2019/05/16; JPL 15-10,Fisher2018; JAF} ETNO3 + OH = ALD2 + NO2 : GCARR_ac(1.00d-12, -490.0d0); {2019/05/16; JPL 15-10,Fisher2018; JAF} IPRNO3 + OH = ACET + NO2 : GCARR_ac(1.20d-12, -320.0d0); {2019/05/16; JPL 15-10,Fisher2018; JAF} @@ -1054,7 +978,7 @@ NPRNO3 + OH = RCHO + NO2 : 7.10d-13; ISOP + O3 = 0.416MACR + 0.177MVK + 0.28OH + 0.407CO2 + 0.407CO + 0.407MO2 + 0.16HO2 + 0.58CH2OO + 0.827CH2O + - 0.013H2O2 : 1.3d-17; {2019/11/06; Bates2019; KHB} + 0.013H2O2 : GCARR_ac(1.10d-14, -2000.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} ISOP + OH = LISOPOH + IHOO1 : GC_ISO1(1.7d-11, 3.90d2, 9.33d-2, 5.05d15, -1.22d4, 1.79d14, -8.830d3); {2019/11/06; Bates2019; KHB} ISOP + OH = LISOPOH + IHOO4 : GC_ISO1(1.0d-11, 3.90d2, 2.26d-1, 2.22d9, -7.160d3, 1.75d14, -9.054d3); {2019/11/06; Bates2019; KHB} ISOP + OH = 0.3MCO3 + 0.3MGLY + 0.3CH2O + @@ -1243,7 +1167,7 @@ IDHNBOO + NO = 0.355MCRHNB + 0.546PROPNN + 0.071HAC + HO2 + NO2 + 0.383CH2O : GC_ALK(2.7d-12, 350.0d0, 1.851d0, 11.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} IDHNBOO + NO = IDN : GC_NIT(2.7d-12, 350.0d0, 1.851d0, 11.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} ISOP + NO3 = 0.465INO2B + 0.535INO2D + - LISOPNO3 : GCARR_ac(2.95d-12, 450.0d0); {2019/11/06; Bates2019; KHB} + LISOPNO3 : GCARR_ac(2.95d-12, -450.0d0); {2019/11/06; Bates2019; KHB} INO2B + HO2 = 0.473INPB + 0.048MACR + 0.479MVK + 0.527OH + 0.527CH2O + 0.527NO2 : GCARR_ac(2.47d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} INO2D + HO2 = INPD : GCARR_ac(2.47d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} @@ -1255,7 +1179,7 @@ INO2B + INO2D = 0.399INPB + 0.544MVK + 0.089HO2 + 0.019MACR + 0.563CH2O + 0.032IHN1 : 2.56d-12; {2019/11/06; Bates2019; KHB} INO2D + INO2D = 0.064HO2 + 0.340INA + - 0.861ICN + 0.671IHN1 + 0.127IHN4 : 3.71d-12; {2019/11/06; Bates2019; KHB} + 0.862ICN + 0.671IHN1 + 0.127IHN4 : 3.71d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} INO2D + MO2 = 0.298IHN1 + 0.057IHN4 + 0.244INA + 0.401ICN + 0.355MOH + 0.336HO2 + 0.645CH2O : 1.18d-12; {2019/11/06; Bates2019; KHB} @@ -1263,9 +1187,9 @@ INO2B + MO2 = 0.355INPB + 0.583MVK + 0.028MACR + 0.034ICN + 0.611HO2 + 1.577CH2O + 0.611NO2 + 0.034MOH : 2.80d-13; {2019/11/06; Bates2019; KHB} INO2B + MCO3 = CH2O + NO2 + MO2 + - 0.903MVK + 0.097MACR : 1.92d-12; {2019/11/06; Bates2019; KHB} + 0.903MVK + 0.097MACR + CO2 : 1.92d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} INO2D + MCO3 = MO2 + 0.841INA + 0.159HO2 + - 0.159ICN : 7.71d-12; {2019/11/06; Bates2019; KHB} + 0.159ICN + CO2 : 7.71d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} INO2B + NO3 = CH2O + 2NO2 + 0.903MVK + 0.097MACR : 2.3d-12; {2019/11/06; Bates2019; KHB} INO2D + NO3 = NO2 + 0.841INA + 0.159HO2 + @@ -1312,12 +1236,12 @@ IHPNDOO + NO = IDN : GC_NIT(2.7d-12, 350.0d0, 4.383d0, 1 ICN + OH = NO2 + ICHE : GC_EPO_a(2.97d-12, 390.0d0, 2.715d-19); {2019/11/06; Bates2019; KHB} ICN + OH = 0.244OH + 0.539CO + 0.295HO2 + 0.378MCRHNB + 0.461ICNOO + 0.161MVKN : GCARR_ac(9.35d-12, 390.0d0); {2019/11/06; Bates2019; KHB} -ICNOO + NO = 0.67ICNOO + 0.33CO2 + +ICNOO + NO = 0.67ICNOO + 0.429CO2 + 0.33CO + 0.33HO2 + 0.231PROPNN + NO2 + - 0.099ETHLN : GCARR_ac(2.70d-12, 350.0d0); {2019/11/06; Bates2019; KHB} -ICNOO + HO2 = 0.67ICNOO + 0.33CO2 + + 0.099ETHLN : GCARR_ac(2.70d-12, 350.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} +ICNOO + HO2 = 0.67ICNOO + 0.429CO2 + 0.33CO + 0.33HO2 + 0.231PROPNN + OH + - 0.099ETHLN : GCARR_ac(2.54d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} + 0.099ETHLN : GCARR_ac(2.54d-13, 1300.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} IDN + OH = 0.565NO2 + 0.565ITHN + 0.435IDNOO : GCARR_ac(1.00d-11, 0.0d0); {2019/11/06; Bates2019; KHB} IDNOO + NO = PROPNN + 1.11NO2 + 0.11GLYC + @@ -1328,12 +1252,12 @@ IDNOO + HO2 = 0.18IDN + 0.09NO2 + MVK + OH = MVKOHOO : GCARR_ac(2.60d-12, 610.0d0); {2019/11/06; Bates2019; KHB} MVK + O3 = 0.545MGLY + 0.500CH2OO + 0.600CH2O + 0.380MCO3 + 0.100HO2 + - 0.080OH + 0.180CO + 0.075PYAC + 0.045H2O2 : GCARR_ac(8.50d-16, -1520.0d0); {2019/11/06; Bates2019; KHB} + 0.080OH + 0.280CO + 0.075PYAC + 0.045H2O2 : GCARR_ac(8.50d-16, -1520.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MACR + OH = 0.036ATOOH + 0.036CO + 0.036HO2 + 0.964MCROHOO : GCARR_ac(4.40d-12, 380.0d0); {2019/11/06; Bates2019; KHB} MACR + OH = MACR1OO : GCARR_ac(2.70d-12, 470.0d0); {2019/11/06; Bates2019; KHB} MACR + O3 = 0.880MGLY + 0.880CH2OO + - 0.120CH2O + 0.120OH + 0.120CO + 0.120MCO3 : GCARR_ac(1.40d-15, -2100.0d0); {2019/11/06; Bates2019; KHB} + 0.120CH2O + 0.120OH + 0.120CO + 0.120MCO3 : GCARR_ac(1.50d-15, -2110.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} MACR + NO3 = 0.320HNO3 + 0.320MACR1OO + 0.680OH + 0.680CO + 0.680PROPNN : GCARR_ac(1.80d-13, -1190.0d0); {2019/11/06; Bates2019; KHB} MVKN + OH = 0.241CH2O + 0.690NO3 + @@ -1358,7 +1282,7 @@ MCRENOL + OH = 0.75CO + 0.285OH + 0.187HCOOH : GCARR_ac(3.71d-12, 983.0d0); {2019/11/06; Bates2019; KHB} MVKPC + OH = OH + CO + MGLY : GCARR_ac(5.00d-12, 470.0d0); {2019/11/06; Bates2019; KHB} MVKDH + OH = 0.4MVKHCB + 0.6MVKHC + HO2 : GCARR_ac(8.70d-12, 70.0d0); {2019/11/06; Bates2019; KHB} -MVKHCB + OH = OH + MGLY : GCARR_ac(5.00d-12, 470.0d0); {2019/11/06; Bates2019; KHB} +MVKHCB + OH = OH + MGLY + CO : GCARR_ac(5.00d-12, 470.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MVKHC + OH = 2CO + HO2 + MCO3 : GCARR_ac(2.00d-12, 70.0d0); {2019/11/06; Bates2019; KHB} MCRDH + OH = 0.16MVKHCB + HO2 + 0.84HAC + 0.84CO : GCARR_ac(2.4d-11, 70.0d0); {2019/11/06; Bates2019; KHB} @@ -1367,7 +1291,7 @@ MVKOHOO + HO2 = 0.360MCO3 + 0.360GLYC + 0.335MVKHP + 0.050MGLY + 0.050CH2O : GCARR_ac(2.12d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} MVKOHOO + NO = 0.758MCO3 + 0.758GLYC + 0.242MGLY + 0.242CH2O + 0.242HO2 + NO2 : GC_ALK(2.7d-12, 350.0d0, 4.573d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} -MVKOHOO + NO = 0.438MVKN : GC_NIT(2.7d-12, 350.0d0, 4.573d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} +MVKOHOO + NO = MVKN : GC_NIT(2.7d-12, 350.0d0, 4.573d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MCROHOO + HO2 = 0.41MCRHP + 0.507HAC + 0.507CO + 0.507HO2 + 0.59OH + 0.59O2 + 0.083MGLY + 0.083CH2O : GCARR_ac(2.12d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} @@ -1376,8 +1300,8 @@ MACR1OO + HO2 = 0.5MACR1OOH + 0.5CH2O + 0.5OH + 0.13O3 : GCARR_ac(3.14d-12, 580.0d0); {2019/11/06; Bates2019; KHB} MACR1OOH + OH = 0.165MACR1OO + 0.585OH + 0.488HAC + 0.488CO + 0.098HMML + - 0.415CO2 + 0.25CH2O + 0.087MCO3 + - 0.162MO2 : 1.66d-11; {2019/11/06; Bates2019; KHB} + 0.410CO2 + 0.25CH2O + 0.087MCO3 + + 0.162MO2 : 1.66d-11; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MCROHOO = HAC + CO + OH : GCARR_ac(2.90d+7, -5297.0d0); {2019/11/06; Bates2019; KHB} MCROHOO + NO = 0.86HAC + 0.86CO + 0.86HO2 + NO2 + 0.14MGLY + 0.14CH2O : GC_ALK(2.7d-12, 350.0d0, 2.985d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} @@ -1396,7 +1320,7 @@ MPAN = MACR1OO + NO2 : GCARR_ac(1.58d+16, -13500.0d0); MPAN + OH = 0.75HMML + NO3 + 0.25HAC + 0.25CO : 2.90d-11; {2019/11/06; Bates2019; KHB} HMML + OH = 0.700MGLY + 0.700OH + - 0.300MCO3 + 0.300HCOOH : 4.33d-12; {2019/11/06; Bates2019; KHB} + 0.300MCO3 + 0.300HCOOH + CO : 4.33d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} ICPDH + OH = CO + 0.5HO2 + 0.5OH + 0.5MCRHP + 0.35MVKDH + 0.15MCRDH : 1.00d-11; {2019/11/06; Bates2019; KHB} IDCHP + OH = 0.888CO + 0.444OH + @@ -1408,8 +1332,8 @@ IDHPE + OH = OH + CO2 + 0.571MCRHP + ITCN + OH = CO + NO2 + 0.75MVKHP + 0.25MCRHP : 1.00d-11; {2019/11/06; Bates2019; KHB} ITHN + OH = 0.300OH + 0.620HO2 + - 0.920ITCN + 0.037IDHNBOO + 0.041ICNOO + - 0.022MCRENOL + 0.022NO2 + 0.022CH2O : 3.00d-12; {2019/11/06; Bates2019; KHB} + 0.900ITCN + 0.037IDHNBOO + 0.041ICNOO + + 0.022MCRENOL + 0.022NO2 + 0.022CH2O : 3.00d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} ETHLN + NO3 = HNO3 + NO2 + MCO3 : GCARR_ac(1.40d-12, -1860.0d0); {2019/11/06; Bates2019; KHB} PYAC + OH = MCO3 + CO2 : 8.00d-13; {2019/11/06; Bates2019; KHB} HMHP + OH = 0.5CH2O + 0.5HO2 + 0.5HCOOH + @@ -1423,7 +1347,7 @@ NRO2 + HO2 = LNRO2H + HO2 : GCARR_ac(1.40d-12, 700.0d0); NRO2 + NO = LNRO2N + NO : GCARR_ac(2.60d-12, 350.0d0); {2013/08/12; Pye2010; HOTP} // // --- C2H2 & C2H4 chemistry (per KHB) -C2H4 + O3 = CH2O + CH2OO : GCARR_abc(9.10d-15, 0.0d0, -2580.0d0); {2021/09/22; Kwon2020; KHB,MSL} +C2H4 + O3 = CH2O + CH2OO : GCARR_abc(1.20d-14, 0.0d0, -2630.0d0); {2021/09/22; Kwon2020; KHB,MSL; 2023/04/18; JPL 19-5; KHB} C2H4 + OH = ETOO : GCJPLPR_abab(1.10d-28, 3.5d+00, 8.4d-12, 1.75d0, 0.5d0); {2021/09/22; Kwon2020; KHB,MSL} C2H2 + OH = 0.636GLYX + 0.636OH + 0.364CO + 0.364HO2 + 0.364HCOOH : GCJPLPR_abab(5.50d-30, 0.0d0, 8.3d-13, -2.0d0, 0.5d0); {2021/09/22; Kwon2020; KHB,MSL} @@ -1433,7 +1357,7 @@ ETOO + NO = 0.995ETO + ETOO + NO3 = ETO + NO2 : 2.3d-12; {2021/09/22; Kwon2020; KHB,MSL} ETOO + MO2 = 0.6ETO + 0.6HO2 + 0.8CH2O + 0.2MOH + 0.2ETHP + 0.2GLYC : 6.00d-13; {2021/09/22; Kwon2020; KHB,MSL} -ETO = HO2 + 2.000CH2O : GCARR_abc(9.5d-13, 0.0d0, -5988.0d0); {2021/09/22; Kwon2020; KHB,MSL} +ETO = HO2 + 2.000CH2O : GCARR_abc(9.5d+13, 0.0d0, -5988.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETO + O2 = GLYC + HO2 : GCARR_abc(2.5d-14, 0.0d0, -300.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETHN + OH = GLYC + NO2 : 8.40d-13; {2021/09/22; Kwon2020; KHB,MSL} ETHP + OH = ETOO : GCARR_abc(1.90d-12, 0.0d+00, 190.0d0); {2021/09/22; Kwon2020; KHB,MSL} @@ -1441,8 +1365,8 @@ ETHP + OH = OH + GLYC : 1.38d-11; // // --- Aromatic Chemistry (per KHB) BENZ + OH = BRO2 + 0.54PHEN + 0.54HO2 + - 0.46AROMRO2 + 0.18GLYX + 0.2CO + - 0.56AROMP4 : GCARR_abc(2.3d-12, 0.0d0, -193.0d0); {2021/09/29; Bates2021b; KHB,MSL} + 0.46AROMRO2 + 0.18GLYX + + 0.2CO +0.55AROMP4 : GCARR_abc(2.3d-12, 0.0d0, -193.0d0); {2021/09/29; Bates2021b; KHB,MSL; 2022/07/01; fix C accounting; KHB} TOLU + OH = TRO2 + 0.19CSL + 0.19HO2 + 0.81AROMRO2 + 0.06BALD + 0.12GLYX + 0.12MGLY + 0.27CO + 0.04MVK + 0.3AROMP5 + @@ -1450,12 +1374,12 @@ TOLU + OH = TRO2 + 0.19CSL + 0.19HO2 + XYLE + OH = XRO2 + 0.15CSL + 0.15HO2 + 0.85AROMRO2 + 0.06BALD + 0.1GLYX + 0.2MGLY + 0.3CO + 0.04MVK + 0.56AROMP5 + - 0.28AROMP4 + 0.45RCOOH : 1.7d-11 ; {2021/09/29; Bates2021b; KHB,MSL} + 0.28AROMP4 + 0.45RCOOH : 1.7d-11; {2021/09/29; Bates2021b; KHB,MSL} AROMRO2 + HO2 = OH + HO2 : 2.91d-13 * EXP( 1300.0d0 / TEMP ) * 0.82d0; {2021/09/29; Bates2021b; KHB,MSL} AROMRO2 + NO = NO2 + HO2 : GCARR_abc(2.60d-12, 0.0d+00, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} AROMRO2 + NO3 = NO2 + HO2 : 2.30d-12; {2021/09/29; Bates2021b; KHB,MSL} AROMRO2 + MO2 = CH2O + HO2 + HO2 : GCARR_abc(1.70d-14, 0.0d0, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL} -AROMRO2 + MCO3 = MO2 + HO2 : GCARR_abc(4.20d-14, 0.0d0, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL} +AROMRO2 + MCO3 = MO2 + HO2 + CO2 : GCARR_abc(4.20d-14, 0.0d0, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL; 2022/07/01; fix C accounting; KHB} PHEN + OH = 0.06BENZO + 0.06GLYX + 0.18AROMP4 + 0.14AROMRO2 + 0.8MCT + 0.8HO2 : GCARR_abc(4.70d-13, 0.0d0, 1220.0d0); {2021/09/29; Bates2021b; KHB,MSL} @@ -1486,13 +1410,14 @@ BENZO2 + HO2 = BENZP : GCARR_abc(2.24d-13, 0.0d0, 1300.0d0 BENZP + OH = BENZO2 : 3.60d-12; {2021/09/29; Bates2021b; KHB,MSL} BENZO + O3 = BENZO2 : 2.86d-13; {2021/09/29; Bates2021b; KHB,MSL} BENZO + NO2 = NPHEN : 2.08d-12; {2021/09/29; Bates2021b; KHB,MSL} -NPHEN + OH = 0.5R4N1 + AROMP4 + 0.5NO2 : 3.47d-12; {2021/09/29; Bates2021b; KHB,MSL} -NPHEN + NO3 = 0.5HNO3 + - NO2 + 0.5R4N1 + AROMP4 : 2.60D-12; {2021/09/29; Bates2021b; KHB,MSL} +NPHEN + OH = 0.5R4N1 + 0.9AROMP4 + + 0.5NO2 +0.15CO : 3.47d-12; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} +NPHEN + NO3 = 0.5HNO3 + NO2 + + 0.5R4N1 + 0.9AROMP4 + 0.15CO : 2.60d-12; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} BENZO2 + MO2 = BENZO + HO2 + CH2O : GCARR_abc(2.670d-13, 0.0d0, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} BZCO3 + MO2 = BENZO2 + CO2 + HO2 + CH2O : GCARR_abc(2.670d-12, 0.0d0, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} -AROMP4 + OH = 0.6GLYX + 0.25CO + 0.25HCOOH + - 0.25OH + 0.33HO2 + 0.33RCO3 + 0.45RCOOH : 5.0d-11; {2021/09/29; Bates2021b; KHB,MSL} +AROMP4 + OH = 0.6GLYX + 0.26CO + 0.26HCOOH + + 0.25OH + 0.33HO2 + 0.33RCO3 + 0.43RCOOH : 5.0d-11; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} AROMP4 + O3 = 0.5HCOOH + 0.5CO + 0.6GLYX + 0.9GLYC + 0.1HO2 + 0.1OH : 8.0d-16; {2021/09/29; Bates2021b; KHB,MSL} AROMP4 = 0.2HO2 + 0.2GLYX + 1.2RCHO : 1.5d-3; {2021/09/29; Bates2021b; KHB,MSL} @@ -1502,7 +1427,7 @@ AROMP5 + OH = 0.6MGLY + 0.15ACTA + AROMP5 + O3 = 0.6MGLY + 0.3ACTA + 0.2HCOOH + 0.5CO + 0.95GLYC + 0.1HO2 + 0.1OH : 8.0d-16; {2021/09/29; Bates2021b; KHB,MSL} AROMP5 = 0.2HO2 + 0.2R4O2 + - 0.2MGLY + 1.2RCHO : 1.5d-3; {2021/09/29; Bates2021b; KHB,MSL} + 0.2MGLY + 1.15RCHO + 0.05CO : 1.5d-3; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} // // KHB -- "we still need to include the dummy species for aromatic oxidation // to make the complex SOA code work. Hopefully this will be changed @@ -1519,6 +1444,8 @@ TRO2 + HO2 = HO2 + LTRO2H : GCARR_abc(1.40d-12, 0.0d0, 700.0d0) TRO2 + NO = NO + LTRO2N : GCARR_abc(2.60d-12, 0.0d0, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} XRO2 + HO2 = HO2 + LXRO2H : GCARR_abc(1.40d-12, 0.0d0, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} XRO2 + NO = NO + LXRO2N : GCARR_abc(2.60d-12, 0.0d0, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} +MO2 + NO3 = NO2 + CH2O + HO2 : 1.20d-12; {2022/10/18: IUPAC ROO_19; KHB,BMY} +FURA + OH = BUTDI : GCARR_ac(1.32d-11,334.0d0); {2023/02/07; Carter2022; TSC} // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // %%%%% Heterogeneous chemistry reactions %%%%% @@ -1555,16 +1482,14 @@ HOCl + HCl = Cl2 + H2O : HOClUptkByHCl( State_Het ); HOCl + HBr = BrCl + H2O : HOClUptkByHBr( State_Het ); {2014/02/03; Eastham2014; SDE} HOCl + SALACL = Cl2 + H2O : HOClUptkBySALACL( State_Het ); {2018/01/22; XW} HOCl + SALCCL = Cl2 + H2O : HOClUptkBySALCCL( State_Het ); {2018/01/22; XW} -HOCl + HSO3m = SO4 + HCl : HOClUptkByHSO3m( State_Het ); {2018/11/08; XW; June 6, 2021, MSL} -HOCl + SO3mm = SO4 + HCl : HOClUptkBySO3mm( State_Het ); {2018/11/08; XW; June 6, 2021, MSL} +HOCl + SO2 = SO4 + HCl : HOClUptkByHSO3m( State_Het ) + HOClUptkBySO3mm( State_Het ) + SRHOCl; {2023/01/30; Add SRHOCL, BA; 2018/11/08; XW; June 6, 2021, MSL} HOBr + HBr = Br2 + H2O : HOBrUptkByHBr( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HOBr + HCl = BrCl + H2O : HOBrUptkByHCl( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HOBr + SALACL = BrCl + H2O : HOBrUptkBySALACL( State_Het ); {2018/01/22; Sherwen2017;TS,JAS,SDE;XW} HOBr + SALCCL = BrCl + H2O : HOBrUptkBySALCCL( State_Het ); {2018/01/22; Sherwen2017;TS,JAS,SDE,XW} HOBr + BrSALA = Br2 : HOBrUptkByBrSALA( State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE} HOBr + BrSALC = Br2 : HOBrUptkByBrSALC( State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE} -HOBr + HSO3m = SO4 + HBr : HOBrUptkByHSO3m( State_Het ); {2017/11/15; Chen2017; QJC; June 6, 2021, MSL} -HOBr + SO3mm = SO4 + HBr : HOBrUptkBySO3mm( State_Het ); {2017/11/15; Chen2017; QJC; June 6, 2021, MSL} +HOBr + SO2 = SO4 + HBr : HOBrUptkByHSO3m( State_Het ) + HOBrUptkBySO3mm( State_Het ) + SRHOBr; {2023/01/30; Add SRHOBrL, BA; 2017/11/15; Chen2017; QJC; June 6, 2021, MSL} O3 + HBr = HOBr : O3uptkByHBr( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} O3 + BrSALA = HOBr : O3uptkByBrSALA( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} O3 + BrSALC = HOBr : O3uptkByBrSALC( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -1573,6 +1498,8 @@ HBr = BrSALC : HBrUptkBySALC( State_Het ); HI = AERI : IuptkBySulf1stOrd( SR_MW(ind_HI), 0.10_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HI = ISALA : IuptkBySALA1stOrd( SR_MW(ind_HI), 0.10_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HI = ISALC : IuptkBySALC1stOrd( SR_MW(ind_HI), 0.10_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +HOI = ISALA : IuptkByAlkSALA1stOrd( SR_MW(ind_HOI), 0.01_dp, State_Het ); {2023/01/24; Restored deleted rxn:BA} +HOI = ISALC : IuptkByAlkSALC1stOrd( SR_MW(ind_HOI), 0.01_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} I2O2 = 2.000AERI : IuptkBySulf1stOrd( SR_MW(ind_I2O2), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O2 = 2.000ISALA : IuptkBySALA1stOrd( SR_MW(ind_I2O2), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O2 = 2.000ISALC : IuptkBySALC1stOrd( SR_MW(ind_I2O2), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -1582,6 +1509,10 @@ I2O3 = 2.000ISALC : IuptkBySALC1stOrd( SR_MW(ind_I2O3), 0.02_dp, Stat I2O4 = 2.000AERI : IuptkBySulf1stOrd( SR_MW(ind_I2O4), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O4 = 2.000ISALA : IuptkBySALA1stOrd( SR_MW(ind_I2O4), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O4 = 2.000ISALC : IuptkBySALC1stOrd( SR_MW(ind_I2O4), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IONO = ISALA + HNO2 : IuptkByAlkSALA1stOrd( SR_MW(ind_IONO), 0.02_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} +IONO = ISALC + HNO2 : IuptkByAlkSALC1stOrd( SR_MW(ind_IONO), 0.02_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} +IONO2 = ISALA + HNO3 : IuptkByAlkSALA1stOrd( SR_MW(ind_IONO2), 0.01_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} +IONO2 = ISALC + HNO3 : IuptkByAlkSALC1stOrd( SR_MW(ind_IONO2), 0.01_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} IONO2 + H2O = HOI + HNO3 : IONO2uptkByH2O( State_Het ); {2021/09/16 XW, TSherwen} IONO + BrSALA = IBr + HNO2 : IbrkdnByAcidBrSALA( SR_MW(ind_IONO), C(ind_IONO), 0.02_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} IONO + BrSALC = IBr + HNO2 : IbrkdnByAcidBrSALC( SR_MW(ind_IONO), C(ind_IONO), 0.02_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} @@ -1596,7 +1527,7 @@ HOI + BrSALC = IBr : IbrkdnByAcidBrSALC( SR_MW(ind_HOI), C(ind_HOI), 0 HOI + SALACL = ICl : IbrkdnByAcidSALACl( SR_MW(ind_HOI), C(ind_HOI), 0.01_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} HOI + SALCCL = ICl : IbrkdnByAcidSALCCl( SR_MW(ind_HOI), C(ind_HOI), 0.01_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} GLYX = SOAGX : GLYXuptk1stOrd( SR_MW(ind_GLYX), State_Het); {2017/06/15; Marais2016, EAM} -MGLY = SOAGX : MGLYuptk1stOrd( SR_MW(ind_MGLY), State_Het); {2017/06/15; Marais2016, EAM} +MGLY = 1.500SOAGX : MGLYuptk1stOrd( SR_MW(ind_MGLY), State_Het); {2017/06/15; Marais2016, EAM; 2023/04/18; Bates2023; KHB} IEPOXA = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_IEPOXA), .FALSE., State_Het ); {2017/06/15; Marais2016, EAM} IEPOXB = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_IEPOXB), .FALSE., State_Het ); {2017/06/15; Marais2016, EAM} IEPOXD = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_IEPOXD), .FALSE., State_Het ); {2017/06/15; Marais2016, EAM} @@ -1606,8 +1537,8 @@ R4N2 = IONITA : VOCuptk1stOrd( SR_MW(ind_R4N2), 5.0E-3_dp, State_ MONITS = MONITA : VOCuptk1stOrd( SR_MW(ind_MONITS), 1.0E-2_dp, State_Het ); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} MONITU = MONITA : VOCuptk1stOrd( SR_MW(ind_MONITU), 1.0E-2_dp, State_Het ); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} HONIT = MONITA : VOCuptk1stOrd( SR_MW(ind_HONIT), 1.0E-2_dp, State_Het ); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} -PYAC = SOAGX : MGLYuptk1stOrd( SR_MW(ind_PYAC), State_Het ); {2019/11/06; Bates2019; KHB} -HMML = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_HMML), .TRUE., State_Het); {2019/11/06; Bates2019; KHB} +PYAC = 1.500SOAGX : MGLYuptk1stOrd( SR_MW(ind_PYAC), State_Het ); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} +HMML = 0.800SOAIE : IEPOXuptk1stOrd( SR_MW(ind_HMML), .TRUE., State_Het); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} IHN1 = IONITA : VOCuptk1stOrd( SR_MW(ind_IHN1), 5.0E-3_dp, State_Het ); {2019/11/06; Bates2019; KHB} IHN2 = IONITA : VOCuptk1stOrd( SR_MW(ind_IHN2), 5.0E-2_dp, State_Het ); {2019/11/06; Bates2019; KHB} IHN3 = IONITA : VOCuptk1stOrd( SR_MW(ind_IHN3), 5.0E-3_dp, State_Het ); {2019/11/06; Bates2019; KHB} @@ -1645,14 +1576,14 @@ ALD2 + hv = 0.880MO2 + HO2 + 0.880CO + 0.120MCO3 : PHOTOL(61); {2014/12/19; FAST-JX v7.0 fix; JMAO} ALD2 + hv = CH4 + CO : PHOTOL(62); PAN + hv = 0.700MCO3 + 0.700NO2 + - 0.300MO2 + 0.300NO3 : PHOTOL(59); {2014/05/23; Eastham2014; JMAO,SDE} -RCHO + hv = 0.500OTHRO2 + HO2 + CO + - 0.070A3O2 + 0.270B3O2 : PHOTOL(70); {2019/05/10; Fisher2018; JAF} + 0.300MO2 + 0.300NO3 + 0.300CO2 : PHOTOL(59); {2014/05/23; Eastham2014; JMAO,SDE; 2023/04/18; Bates2023; KHB} +RCHO + hv = 0.490OTHRO2 + HO2 + CO + + 0.070A3O2 + 0.270B3O2 : PHOTOL(70); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} ACET + hv = MCO3 + MO2 : PHOTOL(76); ACET + hv = 2.000MO2 + CO : PHOTOL(77); -MEK + hv = 0.850MCO3 + 0.425OTHRO2 + +MEK + hv = 0.850MCO3 + 0.415OTHRO2 + 0.150MO2 + 0.150RCO3 + 0.060A3O2 + - 0.230B3O2 : PHOTOL(69); {2019/05/10; Fisher2018; JAF} + 0.230B3O2 : PHOTOL(69); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} GLYC + hv = 0.900CH2O + 1.730HO2 + CO + 0.070OH + 0.100MOH : PHOTOL(68); {2014/05/23; Eastham2014; JMAO,SDE} GLYX + hv = 2.000HO2 + 2.000CO : PHOTOL(72); @@ -1668,14 +1599,14 @@ PRPN + hv = OH + HO2 + RCHO + NO2 : PHOTOL(79); ETP + hv = OH + HO2 + ALD2 : PHOTOL(80); RA3P + hv = OH + HO2 + RCHO : PHOTOL(81); RB3P + hv = OH + HO2 + ACET : PHOTOL(82); -R4P + hv = OH + HO2 + RCHO : PHOTOL(83); +R4P + hv = OH + HO2 + 1.500RCHO : PHOTOL(83); {2023/04/18; Bates2023; KHB} PP + hv = OH + HO2 + ALD2 + CH2O : PHOTOL(84); -RP + hv = OH + HO2 + ALD2 : PHOTOL(85); -R4N2 + hv = NO2 + 0.320ACET + 0.190MEK + - 0.180MO2 + 0.270HO2 + 0.320ALD2 + - 0.130RCHO + 0.050A3O2 + 0.180B3O2 + - 0.320OTHRO2 : PHOTOL(98); -MAP + hv = OH + MO2 : PHOTOL(99); +RP + hv = OH + HO2 + ALD2 + MO2 : PHOTOL(85); {2023/04/18; Bates2023; KHB} +R4N2 + hv = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : PHOTOL(98); {2023/04/18; Bates2023; KHB} +MAP + hv = OH + MO2 + CO2 : PHOTOL(99); {2023/04/18; Bates2023; KHB} Br2 + hv = 2.000Br : PHOTOL(23); {2012/06/07; Parrella2012; JPP} BrO + hv = Br + O : PHOTOL(28); {2014/02/03; Eastham2014; SDE} HOBr + hv = Br + OH : PHOTOL(32); {2012/06/07; Parrella2012; JPP} @@ -1780,7 +1711,7 @@ HPALD1 + hv = 0.888CO + 1.662OH + 0.552MCRENOL + 0.224C4HVP1 : PHOTOL(142); {2019/11/06; Bates2019; KHB} HPALD2 + hv = 0.818CO + 1.637OH + 0.182HO2 + 0.182IDC + 0.182MVKPC + - 0.455MCRENOL + 0.182C4HVP2 : PHOTOL(143); {2019/11/06; Bates2019; KHB} + 0.454MCRENOL + 0.182C4HVP2 : PHOTOL(143); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} HPALD3 + hv = CO + OH + HO2 + MVK : PHOTOL(144); {2019/11/06; Bates2019; KHB} HPALD4 + hv = CO + OH + HO2 + MACR : PHOTOL(145); {2019/11/06; Bates2019; KHB} IHN1 + hv = NO2 + 0.45HC5A + 0.45HO2 + @@ -1799,13 +1730,13 @@ ICN + hv = NO2 + 0.839CO + 0.645OH + 0.481MCRENOL + 0.128C4HVP2 + 0.068C4HVP1 : PHOTOL(106); {2019/11/06; Bates2019; KHB} IDN + hv = 1.555NO2 + 0.5GLYC + 0.5HAC + 0.05MVK + 0.005MACR + 0.055CH2O + - 0.227INA + 0.228ICN + 0.228HO2 : PHOTOL(78); {2019/11/06; Bates2019; KHB} + 0.222INA + 0.223ICN + 0.228HO2 : PHOTOL(78); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} ICPDH + hv = CO + 1.5HO2 + 0.5OH + 0.5MCRHP + 0.35MVKDH + 0.15MCRDH : PHOTOL(153); {2019/11/06; Bates2019; KHB} -ICPDH + hv = OH + HO2 + 0.122CO + - 0.1CH2O + 0.1MVKHCB + 0.438HAC + - 0.438GLYX + 0.088GLYC + 0.088MGLY + - 0.122MCRDH : PHOTOL(154); {2019/11/06; Bates2019; KHB} +ICPDH + hv = OH + HO2 + 0.163CO + + 0.133CH2O + 0.133MVKHCB + 0.586HAC + + 0.586GLYX + 0.118GLYC + 0.118MGLY + + 0.163MCRDH : PHOTOL(154); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} IDHDP + hv = 1.25OH + 0.25GLYC + 0.25HAC + 0.75ICPDH + 0.75HO2 : PHOTOL(155); {2019/11/06; Bates2019; KHB} IDHPE + hv = OH + HO2 + 0.429MGLY + @@ -1821,7 +1752,7 @@ ITHN + hv = NO2 + 0.8HAC + 0.7HO2 + ITCN + hv = MGLY + OH + NO2 + GLYC : PHOTOL(160); {2019/11/06; Bates2019; KHB} ITCN + hv = 0.5MVKHP + 0.5MCRHP + CO + NO2 + HO2 : PHOTOL(161); {2019/11/06; Bates2019; KHB} -ETHP + hv = ETO + OH : PHOTOL(162); {2021/09/22; KHB} +ETHP + hv = ETO + OH : PHOTOL(162); {2021/09/22; Bates2021a; KHB,MSL} BALD + hv = BENZO2 + CO + HO2 : PHOTOL(163); {2021/09/29; Bates2021b; KHB,MSL} BZCO3H + hv = BENZO2 + OH + CO2 : PHOTOL(164); {2021/09/29; Bates2021b; KHB,MSL} BENZP + hv = BENZO : PHOTOL(165); {2021/09/29; Bates2021b; KHB,MSL} diff --git a/KPP/aciduptake/aciduptake.kpp b/KPP/aciduptake/aciduptake.kpp index a45f00c2f..9f5d50948 100644 --- a/KPP/aciduptake/aciduptake.kpp +++ b/KPP/aciduptake/aciduptake.kpp @@ -115,7 +115,7 @@ PH2O2 : H2O2; REAL(dp) :: aClVol ! Fine SSA+SNA aerosol volume [cm3/cm3] REAL(dp) :: aIce ! Ice surface area [cm2/cm3] REAL(dp) :: aLiq ! Liquid surface area [cm2/cm3] - REAL(dp) :: aWater(2) ! ISORROPIA aerosol water (fine & coarse) + REAL(dp) :: aWater(2) ! ISORROPIA/HETP aerosol water (fine & coarse) REAL(dp) :: Br_conc_CldA ! Br- in cloud (A=fine SSA) [mol/kg H2O] REAL(dp) :: Br_conc_CldC ! Br- in cloud (C=coarse SSA) [mol/kg H2O] REAL(dp) :: Br_conc_CldG ! Br- in cloud (G=gas-phase) [mol/kg H2O] diff --git a/KPP/aciduptake/aciduptake_DustChemFuncs.F90 b/KPP/aciduptake/aciduptake_DustChemFuncs.F90 index f078c6108..d2747402c 100644 --- a/KPP/aciduptake/aciduptake_DustChemFuncs.F90 +++ b/KPP/aciduptake/aciduptake_DustChemFuncs.F90 @@ -85,7 +85,6 @@ SUBROUTINE aciduptake_DustChem( I, J, L, & ! !LOCAL VARIABLES: ! ! Scalars - LOGICAL :: prtDebug INTEGER :: N REAL(dp) :: K0, Ki, F, M, KK, F1 diff --git a/KPP/build_mechanism.sh b/KPP/build_mechanism.sh index 04fd09f9e..4845d9ef0 100755 --- a/KPP/build_mechanism.sh +++ b/KPP/build_mechanism.sh @@ -97,6 +97,8 @@ rm -f *.o *.mod *.a #============================================================================ if [[ -f gckpp.kpp ]]; then kpp gckpp.kpp + # on discover, use: + #/discover/nobackup/mslong1/KPP/KPP/bin/kpp gckpp.kpp else echo "Could not find the 'gckpp.kpp' file... Aborting!" exit 1 diff --git a/KPP/carbon/carbon_Funcs.F90 b/KPP/carbon/carbon_Funcs.F90 index ae62c9435..cfe12a7d2 100644 --- a/KPP/carbon/carbon_Funcs.F90 +++ b/KPP/carbon/carbon_Funcs.F90 @@ -261,10 +261,10 @@ END SUBROUTINE carbon_ComputeRateConstants !\\ ! !INTERFACE: ! - SUBROUTINE carbon_ConvertMolecCm3ToKg( & - I, J, L, id_CH4, id_CO, & - id_COch4, id_COnmvoc, id_CO2, xnumol_CH4, xnumol_CO2, & - xnumol_CO, State_Chm, State_Met ) + SUBROUTINE carbon_ConvertMolecCm3ToKg( & + I, J, L, id_CH4, & + id_CO, id_CO2, xnumol_CH4, xnumol_CO2, & + xnumol_CO, State_Chm, State_Met ) ! ! !USES: ! @@ -277,8 +277,6 @@ SUBROUTINE carbon_ConvertMolecCm3ToKg( & INTEGER, INTENT(IN) :: I, J, L ! Grid box indices INTEGER, INTENT(IN) :: id_CH4 ! Species index for CH4 INTEGER, INTENT(IN) :: id_CO ! Species index for CO - INTEGER, INTENT(IN) :: id_COch4 ! Species index for COch4 - INTEGER, INTENT(IN) :: id_COnmvoc ! Species index for COnmvoc INTEGER, INTENT(IN) :: id_CO2 ! Species index for CO2 REAL(fp), INTENT(IN) :: xnumol_CH4 ! kg CH4 / molec CH4 REAL(fp), INTENT(IN) :: xnumol_CO ! kg CO / molec CO @@ -318,15 +316,6 @@ SUBROUTINE carbon_ConvertMolecCm3ToKg( & IF ( id_CO > 0 ) THEN convfac_CO = airvol_cm3 / xnumol_CO Spc(id_CO)%Conc(I,J,L) = C(ind_CO) * convfac_CO - - IF ( id_COch4 > 0 ) THEN - Spc(id_COch4)%Conc(I,J,L) = C(ind_COfromCH4) * convfac_CO - ENDIF - - IF ( id_COnmvoc > 0 ) THEN - Spc(id_COnmvoc)%Conc(I,J,L) = C(ind_COfromNMVOC) * convfac_CO - ENDIF - ENDIF IF ( id_CO2 > 0 ) THEN diff --git a/KPP/custom/CHANGELOG_fullchem.md b/KPP/custom/CHANGELOG_fullchem.md new file mode 120000 index 000000000..922825d98 --- /dev/null +++ b/KPP/custom/CHANGELOG_fullchem.md @@ -0,0 +1 @@ +../fullchem/CHANGELOG_fullchem.md \ No newline at end of file diff --git a/KPP/custom/CMakeLists.txt b/KPP/custom/CMakeLists.txt index 8fa282cf1..cfa3e35a8 100755 --- a/KPP/custom/CMakeLists.txt +++ b/KPP/custom/CMakeLists.txt @@ -10,15 +10,19 @@ add_library(KPP_FirstPass gckpp_Monitor.F90 ) -# Define dependencies for libKPP_FirstPass.a -target_link_libraries(KPP_FirstPass PUBLIC GEOSChemBuildProperties) +# Dependencies +target_link_libraries(KPP_FirstPass + PUBLIC + GEOSChemBuildProperties +) #---------------------------------------------------------------------------- # Add libKPP.a -- custom mechanism (edit as necessary) #---------------------------------------------------------------------------- -add_library(KPP +add_library(KPP STATIC EXCLUDE_FROM_ALL commonIncludeVars.H + fullchem_AutoReduceFuncs.F90 fullchem_HetStateFuncs.F90 fullchem_RateLawFuncs.F90 fullchem_SulfurChemFuncs.F90 @@ -41,15 +45,33 @@ add_library(KPP # These are symbolic links to files in the ../stubs folder. # stub_aciduptake_DustChemFuncs.F90 + stub_carbon_Funcs.F90 stub_Hg_HetStateFuncs.F90 ) -# Define dependencies for libKPP.a -target_link_libraries(KPP PUBLIC GeosUtil) +# Dependencies +target_link_libraries(KPP + PUBLIC + GeosUtil +) -# When building libKPP.a, treat REAL as if it were REAL*8 -target_compile_options(KPP +# Treat REAL as if it were REAL*8 +target_compile_options(KPP PRIVATE "" $<$:-r8> $<$:-fdefault-real-8 -fdefault-double-8> ) + +# FOR GFORTRAN ONLY: Disable variable tracking for gckpp_Jacobian.F90 in the +# KPP/fullchem mechanism generated with KPP. This will avoid a compiler +# warning and a restart of the KPP library build. This only has to be done +# for release types "Release" and "RelWithDebugInfo". +# -- Bob Yantosca (16 Feb 2023) +if("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU") + if(NOT ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Debug")) + set_source_files_properties(gckpp_Jacobian.F90 + PROPERTIES + COMPILE_OPTIONS -fno-var-tracking-assignments + ) + endif() +endif() diff --git a/KPP/custom/custom.eqn b/KPP/custom/custom.eqn index 724251bdb..fb1bf6569 100644 --- a/KPP/custom/custom.eqn +++ b/KPP/custom/custom.eqn @@ -4,173 +4,107 @@ DESCRIPTION ------------------------------------------------------------------------------- -GEOS-Chem KPP file containing species and equations for the full chemistry +GEOS-Chem KPP file containing species and equations for the full chemistry (NOx-Ox-HC-Aer-Br-Cl-I) mechanism. =============================================================================== FILE HISTORY =============================================================================== -v11-01g (Sep 2016) ----------------------- +Version: 14.2.0 - (1) Initial version for FlexChem (MSL,MJE,MPS,EWL) +Please see "CHANGELOG_fullchem.md" in this folder for the revision history +of the fullchem mechanism, which the "custom" mechanism is based on. -v11-02a (Mar 2017) ----------------------- - - (1) Update rate constants based on JPL 15-10 (MJE,BHH) - - See wiki.geos-chem.org/Updates_in_JPL_Publication_15-10 - (2) Fix ALK4 lumping issue in R4O2 + NO reaction (BHH) - (3) PAN chemistry updates (EVF) - - Added several new NMVOCs. The extended mechanism includes ethanol, - benzene, toluene and ethylbenzene (lumped), xylenes and trimethyl - benzenes (lumped), and monoterpenes (lumped). - - Treatment of monoterpene oxidation is adopted from theRACM2 chemical - mechanism (Goliff et al., 2013), lumping terpenes with one double bond - (alpha-pinene, beta-pinene, sabinene, delta-3-carene) into one proxy. - -v11-02c (Jul 2017) ----------------------- - - (1) Add isoprene SOA updates from Marais2016 (EAM,MPS) - (2) Update isoprene and monoterpene chemistry (KRT,JAF,CCM,EAM,KHB,RHS) - - Based on Travis2016, Fisher2016, ChanMiller2017, Marais2016 - - Add Bates2014 epoxide scheme - - Update isoprene nitrate chemistry following Lee2014 - - Add Muller2014 fast photolysis of carbonyl nitrates - - Add HNO2 chemistry from Lee2014 - - Updated product yields and rx rate for RIO2+RIO2 (Xie2013) - (3) Add fixes for carbon-creating reactions (SAS,BHH,MJE) - -v11-02d (Sep 2017) ----------------------- - - (1) Add halogen chemistry from Sherwen2016b/Sherwen2017 (TS,JAS,SDE,LZHU) - (2) Add HOBr + S(IV) from Chen2017 (QJC) - -12.6.0 (Jul 2019) ------------------------ - - (1) Add photolysis of NITs (off by default) (TMS, PK) - (2) Aerosol heterogeneous uptake for NOx (CDH) - -12.7.0 (Dec 2019) ------------------------ - (1) Add MENO3, ETNO3, PRNO3 chemistry from Fisher2018 (JAF) - (2) Remove old MNO3 (same as MENO3 but not actually used (JAF) - (3) Add "OTHRO2" that is equivalent to ETO2 but is not derived from C2H6 - oxidation. Necessary to prevent overestimates of ETNO3. All ETO2 - reactions are duplicated except ETO2+NO->ETNO3 channel (JAF) - (4) Add MOH as active species (XC, DBM) - -12.8.0 (Feb 2020) ----------------------- - (1) Update isoprene chemistry from Bates2019 (KHB) - -Version 13.y.z (actual version TBA) (Dec 2020 onward) ------------------------------------------------------ - (1) Use double precision numeric constants to each numeric value (e.g. - 1.0d0 instead of 1.0e0). This will prevent having to call the DBLE() - functions in the rate law functions, which wastes CPU cycles, and - also is a "lossy" conversion. (BMY) - -13.3.0 (Sep 2021) ------------------- - (1) Added HMS chemistry (Moch2020) - -- note, currently done in sulfate_mod, equations are commented out - (2) Added C2H2/C2H4 chemistry (Kwon2020) - (3) Added CH3O2 + OH reaction (Bates2021a) - (4) Added sulfur reactions for future development (commented out) - (5) Added aromatic SOA reactions (Bates2021b) - -14.1.0 ------- - (1) Added MO2 + NO3 reaction (IUPAC ROO_19) - (2) Bug fix: the "a" coefficient in rxn ETO = HO2 + 2.000CH2O was changed - from 9.5d-13 (incorrect) to 9.5d+13. See geoschem/geos-chem #1274. - (3) Bug fixes: HOBr + SO2 and HOCl + SO2 should produce SO4 (not SO4s) +You may list updates specific to the "custom" mechanism below: =============================================================================== -DEVELOPERS (alphabetical order; add your name!) +DEVELOPERS (initials and email/GitHub) =============================================================================== -BHH : Barron Henderson; barronh@gmail.com -BMY : Bob Yantosca; yantosca@seas.harvard.edu -CCM : Christopher Chan Miller; cmiller@fas.harvard.edu -CDH : Christopher Holmes; cdholmes@fsu.edu -DBM : Dylan Millet dbm@umn.edu -EAM : Eloise Marais; e.a.marais@bham.ac.uk -ECB : Ellie Browne eleanor.browne@colorado.edu -EVF : Emily Fischer; evf@rams.colostate.edu -EWL : Lizzie Lundgren; elundgren@seas.harvard.edu -FP : Fabien Paulot; fabien.paulot@noaa.gov -HOTP: Havala Pye; pye.havala@epa.gov -JAF : Jenny Fisher; jennyf@uow.edu.au -JAS : Johan Schmidt; johanalbrechtschmidt@gmail.com -JMAO: Jingqiu Mao; jmao2@alaska.edu -JMM : Jonathan Moch jmoch@g.harvard.edu -JPP : Justin Parrella; justin.parrella@gmail.com -KHB : Kelvin Bates; kelvin@caltech.edu -KRT : Katie Travis; ktravis@fas.harvard.edu -LZHU: Lei Zhu; leizhu@fas.harvard.edu -MJE : Mat Evans; mat.evans@york.ac.uk -MPS : Melissa Sulprizio; mpayer@seas.harvard.edu -MSL : Michael Long; msl3v@virginia.edu -PK : Prasad Kasibhatla; psk9@duke.edu -QJC : Qianjie Chen; chenqjie@uw.edu -RHS : Rebecca Schwantes; rschwant@caltech.edu -SAS : Sarah Safieddine; sarahsaf@mit.edu -SDE : Sebastian Eastham; seastham@seas.harvard.edu -TMS : Tomas Sherwen; tomas.sherwen@york.ac.uk -XC : Xin Chen; chen3849@umn.edu -XW : Xuan Wang; wangx@seas.harvard.edu +* BA : Becky Alexander : @beckyalexander +* BHH : Barron Henderson : @barronh +* BMY : Bob Yantosca : @yantosca +* CCM : Christopher Chan Miller : cmiller@fas.harvard.edu +* CDH : Christopher Holmes : @cdholmes +* DBM : Dylan Millet : @dylanbm +* EAM : Eloise Marais : @eamarais +* ECB : Ellie Browne : eleanor.browne@colorado.edu +* EVF : Emily Fischer : evf@rams.colostate.edu +* EWL : Lizzie Lundgren : @lizziel +* FP : Fabien Paulot : fabien.paulot@noaa.gov +* HOTP : Havala Pye : pye.havala@epa.gov +* JAF : Jenny Fisher : @jennyfisher +* JAS : Johan Schmidt : johanalbrechtschmidt@gmail.com +* JFB : Jared Brewer : @JFBrewer +* JMAO : Jingqiu Mao : @jingqiumao +* JMM : Jonathan Moch : jmoch@g.harvard.edu +* JPP : Justin Parrella : justin.parrella@gmail.com +* KHB : Kelvin Bates : @kelvinhb +* KRT : Katie Travis : @ktravis213 +* LZHU : Lei Zhu : leizhu@fas.harvard.edu +* MJE : Mat Evans : @msl3v +* MPS : Melissa Sulprizio : @msulprizio +* MSL : Michael Long : @msl3v +* PK : Prasad Kasibhatla : @pkasibhatla +* QJC : Qianjie Chen : chenqjie@uw.edu +* RHS : Rebecca Schwantes : rschwant@caltech.edu +* SAS : Sarah Safieddine : sarahsaf@mit.edu +* SDE : Sebastian Eastham : @sdeastham +* TMS : Tomas Sherwen : @tsherwen +* TSC : Therese Carter : @tscarter +* XC : Xin Chen : @xin-chen-github +* XW : Xuan Wang : @xuanw0316 =============================================================================== REFERENCES (alphabetical order) =============================================================================== -* Atkinson2003: Atkinson and Arey, Chem. Rev., doi:10.1021/cr0206420, 2003. -* Bates2014: Bates et al., J. Phys. Chem A, 118, doi:10.1021/jp4107958, 2014. -* Bates2019: Bates and Jacob, Atmos. Chem. Phys., doi:10.5194/acp-19-9613-2019, 2019. -* Bates2021a: Bates et al, JGR, https://doi.org/10.1029/2020JD033439, 2021. -* Bates2021b: Bates et al, ACP, https://doi.org/10.5194/acp-2021-605, 2021. -* Browne2011: Browne et al., Atmos. Chem. Phys., doi:10.5194/acp-11-4209-2011, 2011. -* Browne2014: Browne et al., Atmos. Chem. Phys., doi:10.5194/acp-14-1225-2014, 2014. -* Chen2017: Chen et al., Geophys. Res. Lett., doi:10.1002/2017GL073812, 2017. -* Crounse2012: Crounse et al., J. Phys. Chem. A, doi:10.1021/jp211560u, 2012. -* Eastham2014: Eastham et al., Atmos. Env., doi:10.1016/j.atmosenv.2014.02.001, 2014. -* Fischer2014: Fischer et al., Atmos. Chem. Phys., doi:10.5194/acp-14-2679-2014, 2014. -* Fisher2016: Fisher et al., Atmos. Chem. Phys., doi:10.5194/acp-16-5969-2016, 2016. -* Fisher2018: Fisher et al., J. Geophys. Res., doi:10.1029/2018JD029046, 2018. -* Fry2014: Fry et al. Environ. Sci. Technol., doi:10.1021/es502204x, 2014. -* Gill2002: Gill and Hites, J. Phys. Chem. A, doi:10.1021/jp013532, 2002. -* Goliff2013: Goliff et al., Atmos. Environ., doi:10.1016/j.atmosenv.2012.11.038, 2013. -* Jacobs2014: Jacobs et al., Atmos. Chem. Phys., doi:10.5194/acp-14-8933-2014, 2014. -* Jenkin2015: Jenkin et al., Atmos. Chem. Phys., doi:10.5194/acp-15-11433-2015, 2015. -* Kasibhatla2018: Kasibhatla et al., Atmos. Chem. Phys., doi:10.5194/acp-18-11185-2018, 2018 -* IUPAC ROO_19: https://iupac-aeris.ipsl.fr/htdocs/datasheets/pdf/ROO_19_CH3O2_NO3.pdf -* JPL 10-6: JPL Publication 10-6, https://jpldataeval.jpl.nasa.gov/previous_evaluations.html, 2011. -* JPL 15-10: JPL Publication 15-10, https://jpldataeval.jpl.nasa.gov, 2015. -* Kwon2020: Kwon et al, Elementa, https://doi.org/10.1525/elementa.2021.00109, 2020. -* Lee2014: Lee et al., J. Phys. Chem. A, doi:10.1021/jp4107603, 2014. -* Marais2016: Marais et al., Atmos. Chem. Phys, doi:10.5194/acp-16-1603-2016, 2016. -* Miller2017: Miller et al., Atmos. Chem. Phys. Discuss., doi:10.5194/acp-2016-1042, 2017. -* Millet2015: Millet et al., Atmos. Chem. Phys., doi:10.5194/acp-15-6283-2015, 2015. -* Moch2020: Moch et al, JGR, https;//doi.org/10.1029/2020JD032706, 2020. -* Muller2014: Muller et al., Atmos. Chem. Phys., doi:10.5194/acp-14-2497-2014, 2014. -* Parrella2012: Parrella et al. Atmos. Chem. Phys, doi:10.5194/acp-12-6723-2012, 2012. -* Paulot2009: Paulot et al., Atmos. Chem. Phys., doi:10.5194/acp-9-1479-2009, 2009a and - Paulot et al., Science, doi:10.1126/science.1172910, 2009b. -* Peeters2010: Peeters and Muller, Phys. Chem. Chem. Phys., doi:10.1039/C0CP00811G, 2010. -* Peeters2014: Peeters et al., J. Phys. Chem. A, doi:10.1021/jp5033146, 2014. -* Pye2010: Pye et al., Atmos. Chem. Phys., doi:10.5194/acp-10-11261-2010, 2010. -* Roberts1992: Roberts and Bertman, Int. J. Chem. Kinet., doi:10.1002/kin.550240307, 1992. -* Sherwen2016b: Sherwen et al., Atmos. Chem. Phys., doi:10.5194/acp-16-12239-2016, 2016b. -* Sherwen2017: Sherwen et al., Faraday Discuss., doi:10.1039/C7FD00026J, 2017. -* StClair2016: St. Clair et al., J. Phys. Chem. A, doi:10.1021/acs.jpca.5b065322016, 2016. -* Travis2016: Travis et al., Atmos. Chem. Phys., doi:10.5194/acp-16-13561-2016, 2016. -* Wolfe2012: Wolfe et al., Phys. Chem. Chem. Phys., doi: 10.1039/C2CP40388A, 2012. -* Xie2013: Xie et al., Atmos. Chem. Phys., doi:10.5194/acp-13-8439-2013, 2013. +* Atkinson2003 : https://doi.org/10.1021/cr0206420 +* Atkinson2006 : https://doi.org/10.5194/acp-6-3625-2006 +* Bates2014 : https://doi.org/10.1021/jp4107958 +* Bates2019 : https://doi.org/10.5194/acp-19-9613-2019 +* Bates2021a : https://doi.org/10.1029/2020JD033439 +* Bates2021b : https://doi.org/10.5194/acp-2021-605 +* Brewer2023 : https://doi.org/10.1029/2022JD037257 +* Browne2011 : https://doi.org/10.5194/acp-11-4209-2011 +* Browne2014 : https://doi.org/10.5194/acp-14-1225-2014 +* Carter2022 : https://doi.org/10.5194/acp-22-12093-2022 +* Chen2017 : https://doi.org/10.1002/2017GL073812 +* Crounse2012 : https://doi.org/10.1021/jp211560u +* Eastham2014 : https://doi.org/10.1016/j.atmosenv.2014.02.001 +* Fischer2014 : https://doi.org/10.5194/acp-14-2679-2014 +* Fisher2016 : https://doi.org/10.5194/acp-16-5969-2016 +* Fisher2018 : https://doi.org/10.1029/2018JD029046 +* Fry2014 : https://doi.org/10.1021/es502204x +* Gill2002 : https://doi.org/10.1021/jp013532, 2002. +* Goliff2013 : https://doi.org/10.1016/j.atmosenv.2012.11.038 +* Jacobs2014 : https://doi.org/10.5194/acp-14-8933-2014 +* Jenkin2015 : https://doi.org/10.5194/acp-15-11433-2015 +* Kasibhatla2018 : https://doi.org/10.5194/acp-18-11185-2018 +* IUPAC ROO_19 : https://iupac-aeris.ipsl.fr/htdocs/datasheets/pdf/ROO_19_CH3O2_NO3.pdf +* JPL 10-6 : https://jpldataeval.jpl.nasa.gov/previous_evaluations.html +* JPL 15-10 : https://jpldataeval.jpl.nasa.gov/previous_evaluations.html +* JPL 19-5 : https://jpldataeval.jpl.nasa.gov +* Kwon2020 : https://doi.org/10.1525/elementa.2021.00109 +* Lee2014 : https://doi.org/10.1021/jp4107603 +* Marais2016 : https://doi.org/10.5194/acp-16-1603-2016 +* Miller2017 : https://doi.org/10.5194/acp-2016-1042 +* Millet2015 : https://doi.org/10.5194/acp-15-6283-2015 +* Moch2020 : https;//doi.org/10.1029/2020JD032706, 2020. +* Muller2014 : https://doi.org/10.5194/acp-14-2497-2014 +* Parrella2012 : https://doi.org/10.5194/acp-12-6723-2012 +* Paulot2009 : https://doi.org/10.5194/acp-9-1479-2009 and + https://doi.org/10.1126/science.1172910 +* Peeters2010 : https://doi.org/10.1039/C0CP00811G +* Peeters2014 : https://doi.org/10.1021/jp5033146. +* Pye2010 : https://doi.org/10.5194/acp-10-11261-2010 +* Roberts1992 : https://doi.org/10.1002/kin.550240307 +* Sherwen2016b : https://doi.org/10.5194/acp-16-12239-2016 +* Sherwen2017 : https://doi.org/10.1039/C7FD00026J +* StClair2016 : https://doi.org/10.1021/acs.jpca.5b065322016 +* Travis2016 : https://doi.org/10.5194/acp-16-13561-2016 +* Wolfe2012 : https://doi.org/ 10.1039/C2CP40388A, 2012 +* Xie2013 : https://doi.org/10.5194/acp-13-8439-2013 =============================================================================== NOTES @@ -191,6 +125,10 @@ ACTA = IGNORE; {CH3C(O)OH; Acetic acid} AERI = IGNORE; {I; Dissolved iodine} ALD2 = IGNORE; {CH3CHO; Acetaldehyde} ALK4 = IGNORE; {>= C4 alkanes} +ALK4N1 = IGNORE; {RO2 from ALKN2} +ALK4N2 = IGNORE; {RO2NO; >= C4 alkylnitrates from ALK4} +ALK4O2 = IGNORE; {RO2 from ALK4} +ALK4P = IGNORE; {CH3CH2CH2CH2OOH; Peroxide from ALK4O2} AONITA = IGNORE; {Aerosol-phase organic nitrate from aromatic precursors} AROMRO2 = IGNORE; {generic peroxy radical from aromatic oxidation} AROMP4 = IGNORE; {Generic C4 product from aromatic oxidation} @@ -212,6 +150,7 @@ BrO = IGNORE; {BrO; Bromine monoxide} BRO2 = IGNORE; {C6H5O2 ; Peroxy radical from BENZ oxidation} BrSALA = IGNORE; {Br; Fine sea salt bromine} BrSALC = IGNORE; {Br; Course sea salt bromine} +BUTDI = IGNORE; {Butenedial} BZCO3 = IGNORE; {benzoylperoxy radical} BZCO3H = IGNORE; {perbenzoic acid} BZPAN = IGNORE; {peroxybenzoyl nitrate} @@ -262,6 +201,7 @@ ETO = IGNORE; {hydroxy-alkoxy-ethane radical} ETOO = IGNORE; {hydroxy-peroxy-ethane radical, formed from ethene + OH} ETO2 = IGNORE; {CH3CH2OO; Ethylperoxy radical} ETP = IGNORE; {CH3CH2OOH; Ethylhydroperoxide} +FURA = IGNORE; {FURAN conglomerate} GLYC = IGNORE; {HOCH2CHO; Glycoaldehyde} GLYX = IGNORE; {CHOCHO; Glyoxal} H = IGNORE; {H; Atomic hydrogen} @@ -442,7 +382,7 @@ PRPN = IGNORE; {O2NOCH2CH(OOH)CH3; Peroxide from PRN1} PYAC = IGNORE; {CH3COCOOH; Pyruvic acid} R4N1 = IGNORE; {RO2 from R4N2} R4N2 = IGNORE; {RO2NO; >= C4 alkylnitrates} -R4O2 = IGNORE; {RO2 from ALK4} +R4O2 = IGNORE; {RO2 from >= C4 biogenic organics} R4P = IGNORE; {CH3CH2CH2CH2OOH; Peroxide from R4O2} RA3P = IGNORE; {CH3CH2CH2OOH; Peroxide from A3O2} RB3P = IGNORE; {CH3CH(OOH)CH3; Peroxide from B3O2} @@ -471,6 +411,8 @@ TOLU = IGNORE; {C7H8; Toluene} TRO2 = IGNORE; {Peroxy radical from TOLU oxidation} XYLE = IGNORE; {C8H10; Xylene} XRO2 = IGNORE; {Peroxy radical from XYLE oxidation} +PH2SO4 = IGNORE; {SO4 from gas-phase chemistry} +PSO4AQ = IGNORE; {SO4 from cloud chemistry} #DEFFIX @@ -494,14 +436,14 @@ HNO3 + SALCAL = NITs : K_MT(6); // // Cloud // S(IV) --> S(VI) -SO2 + H2O2 = SO4 : K_CLD(1); -SO2 + O3 = SO4 : K_CLD(2); -SO2 {+O2} = SO4 : K_CLD(3); {Mn & Fe catalysis + HET_DROP_CHEM()} +SO2 + H2O2 = SO4 + PSO4AQ : K_CLD(1); +SO2 + O3 = SO4 + PSO4AQ : K_CLD(2) + SRO3; {Jan 2023; Added SRO3 here; BA} +SO2 {+O2} = SO4 + PSO4AQ : K_CLD(3); {Mn & Fe catalysis + HET_DROP_CHEM()} // // HMS -CH2O + SO2 = HMS : K_CLD(4); {Sep 2021; Moch2020; MSL} -HMS = SO2 + CH2O : K_CLD(5); {Sep 2021; Moch2020; MSL} -HMS + OH = 2SO4 + CH2O - SO2 : K_CLD(6); {Sep 2021; Moch2020; MSL} +CH2O + SO2 = HMS : K_CLD(4); {Sep 2021; Moch2020; MSL} +HMS = SO2 + CH2O : K_CLD(5); {Sep 2021; Moch2020; MSL} +HMS + OH + SO2 = 2SO4 + CH2O + 2PSO4AQ : K_CLD(6); {Sep 2021; Moch2020; MSL} // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // %%%%% Gas-phase chemistry reactions %%%%% @@ -539,74 +481,82 @@ OH + OH = H2O + O : 1.80d-12; OH + OH {+M} = H2O2 : GCJPLPR_aba(6.90d-31, 1.0d+00, 2.6d-11, 0.6d0); OH + HO2 = H2O + O2 : GCARR_ac(4.80d-11, 250.0d0); OH + H2O2 = H2O + HO2 : 1.80d-12; -HO2 + NO = OH + NO2 : GCARR_ac(3.30d-12, 270.0d0); {2013/02/12; JPL 10-6; BHH,JMAO,EAM} +HO2 + NO = OH + NO2 : GCARR_ac(3.44d-12, 260.0d0); {2023/04/18; JPL 19-5; KHB} HO2 + HO2 = H2O2 + O2 : GC_HO2HO2_acac(3.00d-13, 460.0d0, 2.1d-33, 920.0d0); {2014/02/03; Eastham2014; SDE} -OH + CO = HO2 + CO2 : GC_OHCO_a(1.50d-13); {2017/02/22; JPL 15-10; BHH,MJE} +OH + CO = HO2 + CO2 : GCJPLPR_abab(6.9d-33,2.1d0,1.1d-12,-1.3d0,0.6d0) + GCJPLAC_ababac(6.9d-33,2.1d0,1.1d-12,-1.3d0,1.85d-13,-6.5d1,0.6d0); {2023/04/18; JPL 19-5; KHB} OH + CH4 = MO2 + H2O : GCARR_ac(2.45d-12, -1775.0d0); MO2 + NO = CH2O + HO2 + NO2 : GC_RO2NO_B1_ac(2.80d-12, 300.0d0); {2019/05/10; Fisher2018; JAF} MO2 + NO = MENO3 : GC_RO2NO_A1_ac(2.80d-12, 300.0d0); {2019/05/10; Fisher2018; JAF} -MO2 + HO2 = MP + O2 : GCARR_abc(4.10d-13, 0.0d0, 750.0d0); +MO2 + HO2 = MP + O2 : GCARR_ac(4.10d-13, 750.0d0); MO2 + MO2 = MOH + CH2O + O2 : GC_TBRANCH_1_acac(9.50d-14, 390.0d0, 2.62d1, -1130.0d0); MO2 + MO2 = 2.000CH2O + 2.000HO2 : GC_TBRANCH_1_acac(9.50d-14, 390.0d0, 4.0d-2, 1130.0d0); MO2 + OH = 0.13MOH + 0.87CH2O + 1.74HO2 : 1.60d-10 ; {2021/09/22; Bates2021a; KHB,MSL} -MP + OH = MO2 + H2O : GCARR_ac(2.66d-12, 200.0d0); -MP + OH = CH2O + OH + H2O : GCARR_ac(1.14d-12, 200.0d0); -ATOOH + OH = ATO2 + H2O : GCARR_ac(2.66d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -ATOOH + OH = MGLY + OH + H2O : GCARR_ac(1.14d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +MP + OH = 0.700MO2 + 0.300OH + + 0.300CH2O + H2O : GCARR_ac(3.80d-12, 200.0d0); +ATOOH + OH = 0.700ATO2 + 0.300MGLY + + 0.300OH + H2O : GCARR_ac(3.80d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} CH2O + OH = CO + HO2 + H2O : GCARR_ac(5.50d-12, 125.0d0); NO2 + OH {+M} = HNO3 {+M} : GCJPLPR_aba(1.80d-30, 3.0d+00, 2.8d-11, 0.6d0); -HNO3 + OH = H2O + NO3 : GC_OHHNO3_acacac(2.41d-14, 460.0d0, 2.69d-17, 2199.0d0, 6.51d-34, 1335.0d0); +HNO3 + OH = H2O + NO3 : GCJPLPR_abab(3.9d-31,7.2d0,1.5d-13,4.8d0,0.6d0) + GCJPLAC_ababac(3.9d-31,7.2d0,1.5d-13,4.8d0,3.7d-14,2.4d2,0.6d0); {2023/04/18; JPL 19-5; KHB} NO + OH {+M} = HNO2 {+M} : GCJPLPR_abab(7.00d-31, 2.6d+00, 3.60d-11, 0.1d0, 0.6d0); -HNO2 + OH = H2O + NO2 : GCARR_ac(1.80d-11, -390.0d0); +HNO2 + OH = H2O + NO2 : GCARR_ac(3.00d-12, 250.0d0); {2023/04/18; JPL 19-5; KHB} HO2 + NO2 {+M} = HNO4 {+M} : GCJPLPR_abab(1.90d-31, 3.4d+00, 4.0d-12, 0.3d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} HNO4 {+M} = HO2 + NO2 : GCJPLPR_abcabc(9.05d-05, 3.4d0, -10900.0d0, 1.90d15, 0.3d0, -10900.0d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} -HNO4 + OH = H2O + NO2 + O2 : GCARR_ac(1.30d-12, 380.0d0); +HNO4 + OH = H2O + NO2 + O2 : GCARR_ac(4.50d-13, 610.0d0); {2023/04/18; JPL 19-5; KHB} HO2 + NO3 = OH + NO2 + O2 : 3.50d-12; -NO + NO3 = 2.000NO2 : GCARR_ac(1.50d-11, 170.0d0); -OH + NO3 = HO2 + NO2 : 2.20d-11; +NO + NO3 = 2.000NO2 : GCARR_ac(1.70d-11, 125.0d0); {2023/04/18; JPL 19-5; KHB} +OH + NO3 = HO2 + NO2 : 2.00d-11; {2023/04/18; JPL 19-5; KHB} NO2 + NO3 {+M} = N2O5 {+M} : GCJPLPR_abab(2.40d-30, 3.0d+00, 1.6d-12, -0.1d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} N2O5 {+M} = NO2 + NO3 : GCJPLPR_abcabc(4.14d-04, 3.0d0, -10840.0d0, 2.76d14, -0.1d0, -10840.0d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} HCOOH + OH = H2O + CO2 + HO2 : 4.00d-13; {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} MOH + OH = HO2 + CH2O : GCARR_ac(2.90d-12, -345.0d0); -NO2 + NO3 = NO + NO2 + O2 : GCARR_ac(4.50d-14, -1260.0d0); +NO2 + NO3 = NO + NO2 + O2 : GCARR_ac(4.35d-14, -1335.0d0); {2023/04/18; JPL 19-5; KHB} NO3 + CH2O = HNO3 + HO2 + CO : 5.80d-16; ALD2 + OH = 0.950MCO3 + 0.050CH2O + 0.050CO + 0.050HO2 + H2O : GCARR_ac(4.63d-12, 350.0d0); {2014/02/03; Eastham2014; SDE} ALD2 + NO3 = HNO3 + MCO3 : GCARR_ac(1.40d-12, -1900.0d0); -MCO3 + NO2 {+M} = PAN : GCJPLPR_abab(9.70d-29, 5.6d+00, 9.3d-12, 1.5d0, 0.6d0); {JPL Eval 17} -PAN = MCO3 + NO2 : GCJPLEQ_acabab(9.30d-29, 14000.0d0, 9.7d-29, 5.6d0, 9.3d-12, 1.5d0, 0.6d0); +MCO3 + NO2 {+M} = PAN : GCJPLPR_abab(7.30d-29, 4.1d+00, 9.5d-12, 1.6d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} +PAN = MCO3 + NO2 : GCJPLEQ_acabab(9.00d-29, 14000.0d0, 7.3d-29, 4.1d0, 9.5d-12, 1.6d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} MCO3 + NO = MO2 + NO2 + CO2 : GCARR_ac(8.10d-12, 270.0d0); C2H6 + OH = ETO2 + H2O : GCARR_ac(7.66d-12, -1020.0d0); {2013/02/12; JPL 10-6; BHH,JMAO,EAM} ETO2 + NO = ALD2 + NO2 + HO2 : GC_RO2NO_B2_aca(2.60d-12, 365.0d0, 2.0d0); {2019/05/10; Fisher2018; JAF} ETO2 + NO = ETNO3 : GC_RO2NO_A2_aca(2.60d-12, 365.0d0, 2.0d0); {2019/05/10; Fisher2018; JAF} OTHRO2 + NO = ALD2 + NO2 + HO2 : GCARR_ac(2.60d-12, 365.0d0); {2019/05/10; Fisher2018; JAF} -C3H8 + OH = B3O2 : GC_TBRANCH_2_acabc(7.60d-12, -585.0d0, 5.87d0, 0.64d0, -816.0d0); -C3H8 + OH = A3O2 : GC_TBRANCH_2_acabc(7.60d-12, -585.0d0, 1.7d-1, -0.64d0, 816.0d0); +C3H8 + OH = B3O2 : GCARR_abc(8.54d-13,1.54d0,-19.0d0); {2023/04/18; JPL 19-5; KHB} +C3H8 + OH = A3O2 : GCARR_abc(1.97d-12,1.23d0,-675.0d0); {2023/04/18; JPL 19-5; KHB} A3O2 + NO = NO2 + HO2 + RCHO : GC_RO2NO_B2_aca(2.90d-12, 350.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} A3O2 + NO = NPRNO3 : GC_RO2NO_A2_aca(2.90d-12, 350.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} PO2 + NO = NO2 + HO2 + CH2O + ALD2 : GCARR_ac(2.70d-12, 350.0d0); -ALK4 + OH = R4O2 : GCARR_ac(9.10d-12, -405.0d0); -R4O2 + NO = NO2 + 0.320ACET + 0.190MEK + - 0.190MO2 + 0.270HO2 + 0.320ALD2 + - 0.140RCHO + 0.050A3O2 + 0.180B3O2 + - 0.320OTHRO2 : GC_RO2NO_B2_aca(2.70d-12, 350.0d0, 4.5d0); {2017/02/23; ALK4 lumping fix; BHH} +ALK4 + OH = ALK4O2 : GCARR_ac(9.10d-12, -405.0d0); {2023/05/14; Brewer2023; JFB} +ALK4O2 + NO = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : GC_RO2NO_B2_aca(2.70d-12, 350.0d0, 4.5d0); {2023/05/14; Brewer2023; JFB} +ALK4O2 + NO = ALK4N2 : GC_RO2NO_A2_aca(2.70d-12, 350.0d0, 4.5d0); {2023/05/14; Brewer2023; JFB} +ALK4N1 + NO = 2.000NO2 + 0.640RCHO + + 0.970ALD2 + 0.640CH2O : GCARR_ac(2.70d-12, 350.0d0); {2023/05/14; Brewer2023; JFB} +R4O2 + NO = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : GC_RO2NO_B2_aca(2.70d-12, 350.0d0, 4.5d0); {2023/04/18; Bates2023; KHB} R4O2 + NO = R4N2 : GC_RO2NO_A2_aca(2.70d-12, 350.0d0, 4.5d0); -R4N1 + NO = 2.000NO2 + 0.570RCHO + - 0.860ALD2 + 0.570CH2O : GCARR_ac(2.70d-12, 350.0d0); {2017/07/27; Fix C creation; SAS,BHH,MJE} -ATO2 + NO = NO2 + CH2O + MCO3 : GCARR_ac(2.80d-12, 300.0d0); {2017/07/27; Fix C creation; SAS,BHH,MJE} -KO2 + NO = 0.930NO2 + 0.930ALD2 + - 0.930MCO3 + 0.070R4N2 : GCARR_ac(2.70d-12, 350.0d0); +R4N1 + NO = 2.000NO2 + 0.640RCHO + + 0.970ALD2 + 0.640CH2O : GCARR_ac(2.70d-12, 350.0d0); {2023/04/18; Bates2023; KHB} +ATO2 + NO = NO2 + CH2O + MCO3 : GCARR_ac(2.90d-12, 300.0d0); {2023/04/18; JPL 19-5; KHB} +KO2 + NO = 0.928NO2 + 0.919ALD2 + + 0.919MCO3 + 0.072ALK4N2 : GCARR_ac(2.70d-12, 350.0d0); {2023/04/18; Bates2023; KHB},{2023/05/14; Brewer2023; JFB} B3O2 + NO = NO2 + HO2 + ACET : GC_RO2NO_B2_aca(2.70d-12, 360.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} B3O2 + NO = IPRNO3 : GC_RO2NO_A2_aca(2.70d-12, 360.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} PRN1 + NO = 2.000NO2 + CH2O + ALD2 : GCARR_ac(2.70d-12, 350.0d0); -ALK4 + NO3 = HNO3 + R4O2 : GCARR_ac(2.80d-12, -3280.0d0); +ALK4 + NO3 = HNO3 + ALK4O2 : GCARR_ac(2.80d-12, -3280.0d0); {2023/05/14; Brewer2023; JFB} R4N2 + OH = R4N1 + H2O : 1.60d-12; +ALK4N2 + OH = ALK4N1 + H2O : 1.60d-12; {2023/05/14; Brewer2023; JFB} ACTA + OH = MO2 + CO2 + H2O : GCARR_ac(3.15d-14, 920.0d0); {2013/02/12; JPL 10-6; BHH,JMAO,EAM} OH + RCHO = RCO3 + H2O : GCARR_ac(6.00d-12, 410.0d0); RCO3 + NO2 {+M} = PPN : GCJPLPR_abab(9.00d-28, 8.9d0, 7.7d-12, 0.2d0, 0.6d0); {JPL Eval 17} PPN = RCO3 + NO2 : GCJPLEQ_acabab(9.00d-29, 14000.0d0, 9.00d-28, 8.9d0, 7.7d-12, 0.2d0, 0.6d0); -RCO3 + NO = NO2 + 0.500OTHRO2 + - 0.070A3O2 + 0.270B3O2 : GCARR_ac(6.70d-12, 340.0d0); {2019/05/10; Fisher2018; JAF} +RCO3 + NO = NO2 + 0.490OTHRO2 + + 0.070A3O2 + 0.270B3O2 + CO2 : GCARR_ac(6.70d-12, 340.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} RCHO + NO3 = HNO3 + RCO3 : 6.50d-15; ACET + OH = ATO2 + H2O : 1.33d-13 + 3.82d-11*exp(-2000.0d0/TEMP); {JPL Eval 17, p1-62-D31; EVF} A3O2 + MO2 = HO2 + 0.750CH2O + 0.750RCHO + @@ -616,13 +566,15 @@ PO2 + MO2 = HO2 + 0.500ALD2 + 1.250CH2O + 0.250ROH : 5.92d-13; R4O2 + HO2 = R4P : GCARR_ac(7.40d-13, 700.0d0); R4N1 + HO2 = R4N2 : GCARR_ac(7.40d-13, 700.0d0); +ALK4O2 + HO2 = ALK4P : GCARR_ac(7.40d-13, 700.0d0); {2023/05/14; Brewer2023; JFB} +ALK4N1 + HO2 = ALK4N2 : GCARR_ac(7.40d-13, 700.0d0); {2023/05/14; Brewer2023; JFB} ATO2 + HO2 = 0.150MCO3 + 0.150OH + 0.150CH2O + 0.850ATOOH : GCARR_ac(8.60d-13, 700.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} KO2 + HO2 = 0.150OH + 0.150ALD2 + - 0.150MCO3 + 0.850ATOOH : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 4.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} + 0.150MCO3 + 0.850ATOOH + 0.850MO2 : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 4.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE; 2023/04/18; Bates2023; KHB} B3O2 + HO2 = RB3P : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PRN1 + HO2 = PRPN : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MEK + OH = KO2 + H2O : GCARR_ac(1.30d-12, -25.0d0); +MEK + OH = KO2 + H2O : GCARR_ac(1.50d-12, -90.0d0); {2023/04/18; Atkinson2006; KHB} MO2 + ETO2 = 0.750CH2O + 0.750ALD2 + HO2 + 0.250MOH + 0.250EOH : 3.00d-13; MO2 + OTHRO2 = 0.750CH2O + 0.750ALD2 + @@ -630,19 +582,26 @@ MO2 + OTHRO2 = 0.750CH2O + 0.750ALD2 + MEK + NO3 = HNO3 + KO2 : 8.00d-16; R4O2 + MO2 = 0.160ACET + 0.100MEK + 0.090MO2 + 0.140HO2 + 0.160ALD2 + - 0.070RCHO + 0.030A3O2 + 0.090B3O2 + + 0.130RCHO + 0.030A3O2 + 0.090B3O2 + 0.160OTHRO2 + 0.250MEK + 0.750CH2O + - 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; -R4N1 + MO2 = NO2 + 0.200CH2O + 0.380ALD2 + - 0.290RCHO + 0.150R4O2 + 0.250RCHO + - 0.750CH2O + 0.250MOH + 0.250ROH + - 0.500HO2 : 8.37d-14; -ATO2 + MO2 = 0.300HO2 + 0.300CH2O + - 0.300MCO3 + 0.200HAC + 0.200CH2O + - 0.500MGLY + 0.500MOH : GCARR_ac(7.50d-13, 500.0d0); + 0.250MOH + 0.380ROH + 0.500HO2 : 8.37d-14; {2023/04/18; Bates2023; KHB} +R4N1 + MO2 = NO2 + 0.950CH2O + 0.380ALD2 + + 0.580RCHO + 0.150R4O2 + 0.500HO2 + + 0.250MOH + 0.375ROH : 8.37d-14; {2023/04/18; Bates2023; KHB} +ALK4O2 + MO2 = 0.160ACET + 0.100MEK + + 0.090MO2 + 0.140HO2 + 0.160ALD2 + + 0.130RCHO + 0.030A3O2 + 0.090B3O2 + + 0.160OTHRO2 + 0.250MEK + 0.750CH2O + + 0.250MOH + 0.380ROH + 0.500HO2 : 8.37d-14; {2023/05/14; Brewer2023; JFB} +ALK4N1 + MO2 = NO2 + 0.950CH2O + 0.380ALD2 + + 0.580RCHO + 0.150R4O2 + 0.500HO2 + + 0.250MOH + 0.375ROH : 8.37d-14; {2023/05/14; Brewer2023; JFB} +ATO2 + MO2 = 0.300HO2 + 0.500CH2O + + 0.300MCO3 + 0.200HAC + 0.500MGLY + + 0.500MOH + 0.300CO2 : GCARR_ac(7.50d-13, 500.0d0); {2023/04/18; Bates2023; KHB} KO2 + MO2 = 0.500ALD2 + 0.500MCO3 + 0.250MEK + 0.750CH2O + 0.250MOH + - 0.250ROH + 0.500HO2 : 8.37d-14; + 0.250ROH + 0.500HO2 + 0.250MO2 : 8.37d-14; {2023/04/18; Bates2023; KHB} B3O2 + MO2 = 0.500HO2 + 0.500ACET + 0.250ACET + 0.750CH2O + 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; @@ -650,41 +609,34 @@ PRN1 + MO2 = NO2 + 0.500CH2O + 0.500ALD2 + 0.250RCHO + 0.750CH2O + 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; EOH + OH = HO2 + ALD2 : 3.35d-12; {2013/02/12; JPL 10-6; BHH,JMAO,EAM} -ROH + OH = HO2 + RCHO : GCARR_ac(4.60d-12, 70.0d0); -ETO2 + ETO2 = 2.000ALD2 + 2.000HO2 : 4.10d-14; -OTHRO2 + OTHRO2 = 2.000ALD2 + 2.000HO2 : 4.10d-14; {2019/05/10; Fisher2018; JAF} -ETO2 + ETO2 = EOH + ALD2 : 2.70d-14; -OTHRO2 + OTHRO2 = EOH + ALD2 : 2.70d-14; {2019/05/10; Fisher2018; JAF} -HO2 + ETO2 = ETP : GCARR_ac(7.40d-13, 700.0d0); -HO2 + OTHRO2 = ETP : GCARR_ac(7.40d-13, 700.0d0); {2019/05/10; Fisher2018; JAF} +ROH + OH = HO2 + RCHO : GCARR_ac(4.40d-12, 70.0d0); {2023/04/18; JPL 19-5; KHB} +ETO2 + ETO2 = 1.600ALD2 + + 0.400EOH + 1.200HO2 : 6.80d-14; +OTHRO2 + OTHRO2 = 1.600ALD2 + + 0.400EOH + 1.200HO2 : 6.80d-14; {2019/05/10; Fisher2018; JAF} +HO2 + ETO2 = ETP : GCARR_ac(7.50d-13, 700.0d0); {2023/04/18; JPL 19-5; KHB} +HO2 + OTHRO2 = ETP : GCARR_ac(7.50d-13, 700.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; JPL 19-5; KHB} A3O2 + HO2 = RA3P : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PO2 + HO2 = PP : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} RCO3 + HO2 = 0.410RP + 0.150RCOOH + 0.150O3 + 0.440OH + 0.220OTHRO2 + - 0.030A3O2 + 0.120B3O2 : GCARR_ac(4.30d-13, 1040.0d0); {2019/05/10; Fisher2018; JAF} + 0.030A3O2 + 0.120B3O2 + 0.430CO2 : GCARR_ac(4.30d-13, 1040.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} PRPE + OH {+M} = PO2 : GCJPLPR_abab(4.60d-27, 4.0d0, 2.6d-11, 1.3d0, 0.5d0); {2017/02/22; JPL 15-10; BHH,MJE} -PRPE + O3 = 0.500ALD2 + 0.500CH2O + - 0.120CH3CHOO + 0.100CH4 + 0.120CH2OO + - 0.280MO2 + 0.560CO + 0.280HO2 + 0.360OH : GCARR_ac(5.50d-15, -1880.0d0); {2015/09/25; Millet2015; DBM,EAM} +PRPE + O3 = 0.100CH4 + 0.280MO2 + 0.100CO2 + + 0.120CH3CHOO + 0.500ALD2 + 0.220CH2OO + + 0.500CH2O + 0.560CO + 0.280HO2 + 0.360OH : GCARR_ac(6.50d-15, -1900.0d0); {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} GLYC + OH = 0.732CH2O + 0.361CO2 + 0.505CO + 0.227OH + 0.773HO2 + 0.134GLYX + 0.134HCOOH : GC_GLYCOH_A_a(8.00d-12); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} GLYC + OH = HCOOH + OH + CO : GC_GLYCOH_B_a(8.00d-12); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PRPE + NO3 = PRN1 : GCARR_ac(4.59d-13, -1156.0d0); GLYX + OH = HO2 + 2.000CO : GCARR_ac(3.10d-12, 340.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MGLY + OH = MCO3 + CO : 1.50d-11; +MGLY + OH = MCO3 + CO : GCARR_ac(1.90d-12, 575.0d0); {2023/04/18; Atkinson2006; KHB} GLYX + NO3 = HNO3 + HO2 + 2.000CO : GC_GLYXNO3_ac(1.40d-12, -1860.0d0); MGLY + NO3 = HNO3 + CO + MCO3 : GCARR_ac(3.36d-12, -1860.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -HAC + OH = MGLY + HO2 : GC_HACOH_A_ac(2.15d-12, 305.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +HAC + OH = MGLY + HO2 : GC_HACOH_A_ac(2.00d-12, 320.0d0); {2023/04/18; Atkinson2006; KHB} HAC + OH = 0.500HCOOH + OH + 0.500ACTA + - 0.500CO2 + 0.500CO + 0.500MO2 : GC_HACOH_B_ac(2.15d-12, 305.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MCO3 + A3O2 = MO2 + RCHO + HO2 : GCARR_ac(1.68d-12, 500.0d0); -MCO3 + PO2 = MO2 + ALD2 + CH2O + HO2 : GCARR_ac(1.68d-12, 500.0d0); -MCO3 + A3O2 = ACTA + RCHO : GCARR_ac(1.87d-13, 500.0d0); -MCO3 + PO2 = ACTA + 0.350RCHO + 0.650HAC : GCARR_ac(1.87d-13, 500.0d0); -RCO3 + MO2 = CH2O + HO2 + 0.500OTHRO2 + - 0.070A3O2 + 0.270B3O2 : GCARR_ac(1.68d-12, 500.0d0); {2019/05/10; Fisher2018; JAF} -RCO3 + MO2 = RCOOH + CH2O : GCARR_ac(1.87d-13, 500.0d0); + 0.500CO2 + 0.500CO + 0.500MO2 : GC_HACOH_B_ac(2.00d-12, 320.0d0); {2023/04/18; Atkinson2006; KHB} PRPN + OH = 0.209PRN1 + 0.791OH + 0.791PROPNN : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} ETP + OH = 0.640OH + 0.360OTHRO2 + @@ -693,43 +645,63 @@ RA3P + OH = 0.640OH + 0.360A3O2 + 0.640RCHO : GCARR_ac(5.18d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} RB3P + OH = 0.791OH + 0.209B3O2 + 0.791ACET : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -R4P + OH = 0.791OH + 0.209R4O2 + 0.791RCHO : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +R4P + OH = 0.790OH + 0.210R4O2 + 1.185RCHO : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE; 2023/04/18; Bates2023; KHB} +ALK4P + OH = 0.790OH + 0.210ALK4O2 + + 1.185RCHO : GCARR_ac(8.78d-12, 200.0d0); {2023/05/14; Brewer2023; JFB} RP + OH = RCO3 : GCARR_ac(6.13d-13, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PP + OH = 0.791OH + 0.209PO2 + 0.791HAC : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} LVOC + OH = OH : GCARR_ac(4.82d-11, -400.0d0); {2017/06/14; Marais2016; EAM} -OH + MAP = MCO3 : GCARR_ac(6.13d-13, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +OH + MAP = 0.780MCO3 + 0.220OH + + 0.220CO2 + 0.220CH2O : 3.00d-14; {2023/04/18; Atkinson2006; KHB} C2H6 + NO3 = ETO2 + HNO3 : 1.40d-18; {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MCO3 + MCO3 = 2.000MO2 : GCARR_ac(2.50d-12, 500.0d0); -MCO3 + MO2 = CH2O + MO2 + HO2 : GCARR_ac(1.80d-12, 500.0d0); -MCO3 + MO2 = ACTA + CH2O : GCARR_ac(2.00d-13, 500.0d0); -R4O2 + MCO3 = MO2 + 0.320ACET + 0.190MEK + - 0.270HO2 + 0.320ALD2 + 0.130RCHO + - 0.050A3O2 + 0.180B3O2 + 0.320OTHRO2 : GCARR_ac(1.68d-12, 500.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -ATO2 + MCO3 = MO2 + MCO3 + CH2O : GCARR_ac(1.68d-12, 500.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -KO2 + MCO3 = MO2 + ALD2 + MCO3 : GCARR_ac(1.68d-12, 500.0d0); -B3O2 + MCO3 = MO2 + HO2 + ACET : GCARR_ac(1.68d-12, 500.0d0); -R4N1 + MCO3 = MO2 + NO2 + 0.390CH2O + - 0.750ALD2 + 0.570RCHO + 0.300R4O2 : GCARR_ac(1.68d-12, 500.0d0); -PRN1 + MCO3 = MO2 + NO2 + CH2O + ALD2 : GCARR_ac(1.68d-12, 500.0d0); -R4O2 + MCO3 = MEK + ACTA : GCARR_ac(1.87d-13, 500.0d0); -ATO2 + MCO3 = MGLY + ACTA : GCARR_ac(1.87d-13, 500.0d0); {2017/07/27; Fix C creation; SAS,BHH,MJE} -KO2 + MCO3 = MEK + ACTA : GCARR_ac(1.87d-13, 500.0d0); -R4N1 + MCO3 = RCHO + ACTA + NO2 : GCARR_ac(1.87d-13, 500.0d0); -PRN1 + MCO3 = RCHO + ACTA + NO2 : GCARR_ac(1.87d-13, 500.0d0); -B3O2 + MCO3 = ACET + ACTA : GCARR_ac(1.87d-13, 500.0d0); -MCO3 + ETO2 = MO2 + ALD2 + HO2 : GCARR_ac(1.68d-12, 500.0d0); -MCO3 + OTHRO2 = MO2 + ALD2 + HO2 : GCARR_ac(1.68d-12, 500.0d0); {2019/05/10; Fisher2018; JAF} -MCO3 + ETO2 = ACTA + ALD2 : GCARR_ac(1.87d-13, 500.0d0); -MCO3 + OTHRO2 = ACTA + ALD2 : GCARR_ac(1.87d-13, 500.0d0); {2019/05/10; Fisher2018; JAF} -RCO3 + MCO3 = MO2 + 0.500OTHRO2 + - 0.070A3O2 + 0.270B3O2 : GCARR_ac(2.50d-12, 500.0d0); {2019/05/10; Fisher2018; JAF} +MCO3 + MCO3 = 2.000MO2 + 2.000CO2 : GCARR_ac(2.90d-12, 500.0d0); {2023/04/18; JPL 19-5, Bates2023; KHB} +MCO3 + MO2 = 0.1ACTA + CH2O + + 0.9MO2 + 0.9HO2 + 0.9CO2: GCARR_ac(2.00d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +R4O2 + MCO3 = 0.271MEK + 0.100ACTA + + 0.900MO2 + 0.290ACET + 0.243HO2 + + 0.290ALD2 + 0.290OTHRO2 + 0.255RCHO + + 0.045A3O2 + 0.162B3O2 + 0.900CO2: GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +ALK4O2 + MCO3 = 0.271MEK + 0.100ACTA + + 0.900MO2 + 0.290ACET + 0.243HO2 + + 0.290ALD2 + 0.290OTHRO2 + 0.255RCHO + + 0.045A3O2 + 0.162B3O2 + 0.900CO2: GCARR_ac(1.87d-12, 500.0d0); {2023/05/14; Brewer2023; JFB} +ATO2 + MCO3 = 0.900MO2 + 0.900MCO3 + + 0.900CH2O + 0.100MGLY + 0.100ACTA + + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +KO2 + MCO3 = 0.900MO2 + 0.900MCO3 + + 0.900ALD2 + 0.100MEK + 0.100ACTA + + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +B3O2 + MCO3 = 0.900MO2 + 0.900HO2 + + ACET + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +R4N1 + MCO3 = 0.900MO2 + 0.100ACTA + + 0.613RCHO + 0.351CH2O + 0.675ALD2 + + 0.270R4O2 + 0.645CO2 + NO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +ALK4N1 + MCO3 = 0.900MO2 + 0.100ACTA + + 0.613RCHO + 0.351CH2O + 0.675ALD2 + + 0.270R4O2 + 0.645CO2 + NO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/05/14; Brewer2023; JFB} +PRN1 + MCO3 = 0.900MO2 + 0.900CH2O + + 0.900CO2 + 0.900ALD2 + 0.100RCHO + + 0.100ACTA + NO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +ETO2 + MCO3 = 0.900MO2 + ALD2 + + 0.900HO2 + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +OTHRO2 + MCO3 = 0.900MO2 + ALD2 + + 0.900HO2 + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} +PO2 + MCO3 = 0.900MO2 + 0.900HO2 + + 0.900ALD2 + 0.900CH2O + 0.065HAC + + 0.035RCHO + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +A3O2 + MCO3 = 0.900MO2 + 0.900HO2 + + RCHO + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +RCO3 + MCO3 = MO2 + 0.490OTHRO2 + + 0.070A3O2 + 0.270B3O2 + 2.000CO2 : GCARR_ac(2.50d-12, 500.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} +RCO3 + MO2 = CH2O + CO2 + HO2 + + 0.490OTHRO2 + 0.070A3O2 + 0.270B3O2 : GCARR_ac(1.87d-12, 500.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} NO3 + NO3 = 2.000NO2 + O2 : GCARR_ac(8.50d-13, -2450.0d0); MO2 + NO2 {+M} = MPN {+M} : GCJPLPR_abab(1.00d-30, 4.8d+00, 7.2d-12, 2.1d0, 0.6d0); {2012/02/12; Browne2011; ECB} MPN {+M} = MO2 + NO2 : GCJPLPR_abcabc(1.05d-02, 4.8d+00, -11234.0d0, 7.58d16, 2.1d0, -11234.0d0, 0.6d0); {2012/02/12; Browne2011; ECB} DMS + OH = SO2 + MO2 + CH2O : GCARR_ac(1.20d-11, -280.0d0); DMS + OH = 0.750SO2 + 0.250MSA + MO2 : GC_DMSOH_acac(8.20d-39, 5376.0d0, 1.05d-5, 3644.0d0); DMS + NO3 = SO2 + HNO3 + MO2 + CH2O : GCARR_ac(1.90d-13, 530.0d0); -SO2 + OH {+M} = SO4 + HO2 : GCJPLPR_aba(3.30d-31, 4.3d+00, 1.6d-12, 0.6d0); +SO2 + OH {+M} = SO4 + HO2 + PH2SO4 : GCJPLPR_abab(2.90d-31, 4.1d+00, 1.7d-12, -0.2d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} Br + O3 = BrO + O2 : GCARR_ac(1.60d-11, -780.0d0); {2012/06/07; Parrella2012; JPP} BrO + HO2 = HOBr + O2 : GCARR_ac(4.50d-12, 460.0d0); {2012/06/07; Parrella2012; JPP} Br + HO2 = HBr + O2 : GCARR_ac(4.80d-12, -310.0d0); {2012/06/07; Parrella2012; JPP} @@ -757,70 +729,68 @@ O1D + H2O = 2.000OH : GCARR_ac(1.63d-10, 60.0d0); O1D + N2 = O + N2 : GCARR_ac(2.15d-11, 110.0d0); {2014/02/03; Eastham2014; SDE} O1D + O2 = O + O2 : GCARR_ac(3.30d-11, 55.0d0); {2014/02/03; Eastham2014; SDE} O1D + H2 = H + OH : 1.20d-10; {2014/02/03; Eastham2014; SDE} -O1D + N2O = N2 + O2 : GCARR_ac(4.63d-11, 20.0d0); {2014/02/03; Eastham2014; SDE} -O1D + N2O = 2.000NO : GCARR_ac(7.25d-11, 20.0d0); {2014/02/03; Eastham2014; SDE} -O1D + CH4 = MO2 + OH : 1.31d-10; {2014/02/03; Eastham2014; SDE} -O1D + CH4 = CH2O + H2 : 0.09d-10; {2014/02/03; Eastham2014; SDE} -O1D + CH4 = CH2O + H + HO2 : 0.35d-10; {2014/02/03; Eastham2014; SDE} +O1D + N2O = 0.390N2 + 0.390O2 + 1.220NO : GCARR_ac(1.19d-10, 20.0d0); {2014/02/03; Eastham2014; SDE} +O1D + CH4 = 0.750MO2 + 0.750OH + + 0.200H + 0.200HO2 + 0.050H2 + 0.250CH2O : 1.75d-10; {2014/02/03; Eastham2014; SDE} O + O2 {+M} = O3 {+M} : GCARR_ab(6.00d-34, 2.4d0)*NUMDEN; {2014/02/03; Eastham2014; SDE} O + O3 = 2.000O2 : GCARR_ac(8.00d-12, -2060.0d0); {2014/02/03; Eastham2014; SDE} OH + H2 = H2O + H : GCARR_ac(2.80d-12, -1800.0d0); {2014/02/03; Eastham2014; SDE} O + OH = O2 + H : GCARR_ac(1.80d-11, 180.0d0); {2014/02/03; Eastham2014; SDE} HO2 + O = OH + O2 : GCARR_ac(3.00d-11, 200.0d0); {2014/02/03; Eastham2014; SDE} -O1D + O3 = 2.000O2 : 1.20d-10; {2014/02/03; Eastham2014; SDE} -O1D + O3 = 2.000O + O2 : 1.20d-10; {2014/02/03; Eastham2014; SDE} +O1D + O3 = O + 1.500O2 : 2.40d-10; {2014/02/03; Eastham2014; SDE} OCS + O = CO + SO2 : GCARR_ac(2.10d-11, -2200.0d0); {2014/02/03; Eastham2014; SDE} -OCS + OH = CO2 + SO2 : GCARR_ac(1.10d-13, -1200.0d0); {2014/02/03; Eastham2014; SDE} -NO2 + O = NO + O2 : GCARR_ac(5.10d-12, 210.0d0); {2014/02/03; Eastham2014; SDE} -NO3 + O = NO2 + O2 : 1.00d-11; {2014/02/03; Eastham2014; SDE} +OCS + OH = CO2 + SO2 : GCARR_ac(7.20d-14, -1070.0d0); {2023/04/18; JPL 19-5; KHB} +NO2 + O = NO + O2 : GCJPLAC_ababac(3.4d-31, 1.6d0, 2.3d-11, 0.2d0, 5.3d-12, 2.0d2, 0.6d0); {2023/04/18; JPL 19-5; KHB} +NO3 + O = NO2 + O2 : 1.30d-11; {2023/04/18; JPL 19-5; KHB} NO + O {+M} = NO2 {+M} : GCJPLPR_aba(9.00d-32, 1.5d+00, 3.0d-11, 0.6d0); {2014/02/03; Eastham2014; SDE} -NO2 + O {+M} = NO3 {+M} : GCJPLPR_abab(2.50d-31, 1.8d+00, 2.2d-11, 0.7d0, 0.6d0); {2014/02/03; Eastham2014; SDE} +NO2 + O {+M} = NO3 {+M} : GCJPLPR_abab(3.4d-31, 1.6d0, 2.3d-11, 0.2d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} H2O2 + O = OH + HO2 : GCARR_ac(1.40d-12, -2000.0d0); {2014/02/03; Eastham2014; SDE} -H + O2 {+M} = HO2 {+M} : GCJPLPR_abab(4.40d-32, 1.3d+00, 7.5d-11, -0.2d0, 0.6d0); {2014/02/03; Eastham2014; SDE} +H + O2 {+M} = HO2 {+M} : GCJPLPR_abab(5.30d-32, 1.8d+00, 9.5d-11, -0.4d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} H + O3 = OH + O2 : GCARR_ac(1.40d-10, -470.0d0); {2014/02/03; Eastham2014; SDE} -H + HO2 = 2.000OH : 7.20d-11; {2014/02/03; Eastham2014; SDE} -H + HO2 = O + H2O : 1.60d-12; {2014/02/03; Eastham2014; SDE} -H + HO2 = H2 + O2 : 6.90d-12; {2014/02/03; Eastham2014; SDE} -N + O2 = NO + O : GCARR_ac(1.50d-11, -3600.0d0); {2014/02/03; Eastham2014; SDE} +H + HO2 = 1.788OH + 0.020O + + 0.020H2O + 0.086H2 + 0.086O2 : 8.05d-11; {2014/02/03; Eastham2014; SDE} +N + O2 = NO + O : GCARR_ac(3.30d-12, -3150.0d0); {2023/04/18; JPL 19-5; KHB} N + NO = N2 + O : GCARR_ac(2.10d-11, 100.0d0); {2014/02/03; Eastham2014; SDE} N + NO2 = N2O + O : GCARR_ac(5.80d-12, 220.0d0); {2014/02/03; Eastham2014; SDE} BrO + O = Br + O2 : GCARR_ac(1.90d-11, 230.0d0); {2014/02/03; Eastham2014; SDE} CH2O + O = CO + HO2 + OH : GCARR_ac(3.40d-11, -1600.0d0); {2014/02/03; Eastham2014; SDE} -O1D + HCl = 0.090O + 0.090HCl + 0.240H + - 0.670Cl + 0.240ClO + 0.670OH : 1.50d-10; {2014/02/03; Eastham2014; SDE} -O1D + HBr = 0.200O + 0.200HBr + 0.150BrO + - 0.650OH + 0.150H + 0.650Br : 1.50d-10; {2014/02/03; Eastham2014; SDE} +O1D + HCl = 0.120O + 0.120HCl + 0.220H + + 0.660Cl + 0.220ClO + 0.660OH : 1.50d-10; {2023/04/18; JPL 19-5; KHB} +O1D + HBr = 0.200O + 0.200HBr + 0.200BrO + + 0.600OH + 0.200H + 0.600Br : 1.50d-10; {2023/04/18; JPL 19-5; KHB} O1D + Cl2 = 0.250O + 0.250Cl2 + 0.750Cl + 0.750ClO : 2.70d-10; {2014/02/03; Eastham2014; SDE} -O1D + CCl4 = 0.140O + 0.140CCl4 + - 0.860ClO + 2.580Cl : 3.30d-10; {2014/02/03; Eastham2014; SDE} +O1D + CCl4 = 0.210O + 0.210CCl4 + + 0.790ClO + 2.370Cl : 3.30d-10; {2023/04/18; JPL 19-5; KHB} +O1D + CH3Cl = 0.100O + 0.100CH3Cl + + 0.460ClO + 0.350Cl + 0.090H + 0.900MO2 : 2.60d-10; {2023/04/18; JPL 19-5; KHB} O1D + CH3Br = 0.440BrO + MO2 + 0.560Br : 1.80d-10; {2014/02/03; Eastham2014; SDE} O1D + CH2Br2 = 0.050O + 0.050CH2Br2 + 0.950BrO + 0.950Br : 2.70d-10; {2014/02/03; Eastham2014; SDE} -O1D + CHBr3 = 0.320O + 0.320CHBr3 + - 0.680BrO + 1.360Br : 6.60d-10; {2014/02/03; Eastham2014; SDE} -O1D + HCFC22 = 0.280O + 0.280HCFC22 + - 0.550ClO + 0.170Cl : 1.02d-10; {2017/02/22; JPL 15-10; BHH,MJE} -O1D + CFC11 = 0.120O + 0.120CFC11 + - 0.880ClO + 1.760Cl : 2.30d-10; {2014/02/03; Eastham2014; SDE} +O1D + CHBr3 = 0.300O + 0.300CHBr3 + + 0.700BrO + 1.400Br : 6.60d-10; {2023/04/18; JPL 19-5; KHB} +O1D + HCFC22 = 0.250O + 0.250HCFC22 + + 0.560ClO + 0.190Cl + 0.050OH : 1.02d-10; {2023/04/18; JPL 19-5; KHB} +O1D + CFC11 = 0.100O + 0.100CFC11 + + 0.900ClO + 1.800Cl : 2.30d-10; {2023/04/18; JPL 19-5; KHB} O1D + CFC12 = 0.140O + 0.140CFC12 + 0.860ClO + 0.860Cl : 1.40d-10; {2014/02/03; Eastham2014; SDE} -O1D + H1211 = 0.360O + 0.360H1211 + - 0.310BrO + 0.310Cl + 0.330Br + 0.330ClO : 1.50d-10; {2014/02/03; Eastham2014; SDE} -O1D + H1301 = 0.590O + 0.590H1301 + - 0.410BrO : 1.00d-10; {2014/02/03; Eastham2014; SDE} +O1D + H1211 = 0.350O + 0.350H1211 + + 0.310BrO + 0.310Cl + 0.340Br + 0.340ClO : 1.50d-10; {2023/04/18; JPL 19-5; KHB} +O1D + H1301 = 0.550O + 0.550H1301 + + 0.450BrO : 1.00d-10; {2023/04/18; JPL 19-5; KHB} O1D + HCFC141b = 0.310O + 0.310HCFC141b + 0.690ClO + 0.690Cl : 2.60d-10; {2014/02/03; Eastham2014; SDE} -O1D + HCFC142b = 0.260O + 0.260HCFC142b + - 0.740ClO : 2.00d-10; {2017/02/22; JPL 15-10; BHH,MJE} +O1D + HCFC142b = 0.350O + 0.350HCFC142b + + 0.650ClO : 2.00d-10; {2023/04/18; JPL 19-5; KHB} O1D + HCFC123 = 0.210O + 0.210HCFC123 + 0.790Cl + 0.790ClO : 2.00d-10; {2014/02/03; Eastham2014; SDE} -O1D + CFC113 = 0.250O + 0.250CFC113 + - 1.500Cl + 0.750ClO : 2.32d-10; {2017/02/22; JPL 15-10; BHH,MJE} -O1D + CFC114 = 0.250O + 0.250CFC114 + - 0.750Cl + 0.750ClO : GCARR_ac(1.30d-10, -25.0d0); {2017/02/22; JPL 15-10; BHH,MJE} -O1D + CFC115 = 0.700O + 0.700CFC115 + - 0.300ClO : GCARR_ac(5.40d-11, -30.0d0); {2017/02/22; JPL 15-10; BHH,MJE} +O1D + CFC113 = 0.100O + 0.100CFC113 + + 1.900Cl + 0.800ClO : 2.32d-10; {2023/04/18; JPL 19-5; KHB} +O1D + CFC114 = 0.100O + 0.100CFC114 + + 0.950Cl + 0.850ClO : GCARR_ac(1.30d-10, 25.0d0); {2023/04/18; JPL 19-5; KHB} +O1D + CFC115 = 0.140O + 0.140CFC115 + + 0.860ClO : GCARR_ac(5.40d-11, 30.0d0); {2023/04/18; JPL 19-5; KHB} O1D + H2402 = 0.250O + 0.250H2402 + 0.750Br + 0.750BrO : GCARR_ac(1.60d-10, 0.0d0); {2014/02/03; Eastham2014; SDE} OH + Cl2 = HOCl + Cl : GCARR_ac(2.60d-12, -1100.0d0); {2014/02/03; Eastham2014; SDE} @@ -834,15 +804,15 @@ OH + HOCl = H2O + ClO : GCARR_ac(3.00d-12, -500.0d0); OH + ClNO2 = HOCl + NO2 : GCARR_ac(2.40d-12, -1250.0d0); {2014/02/03; Eastham2014; SDE} OH + ClNO3 = HOCl + NO3 : GCARR_ac(1.20d-12, -330.0d0); {2014/02/03; Eastham2014; SDE} OH + CH3Cl = Cl + HO2 + H2O : GCARR_ac(1.96d-12, -1200.0d0); {2017/02/22; JPL 15-10; BHH,MJE} -OH + CH2Cl2 = 2.000Cl + HO2 : GCARR_ac(2.61d-12, -944.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -OH + CHCl3 = 3.000Cl + HO2 : GCARR_ac(4.69d-12, -1134.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +OH + CH2Cl2 = 2.000Cl + HO2 : GCARR_ac(1.92d-12, -880.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +OH + CHCl3 = 3.000Cl + HO2 : GCARR_ac(2.20d-12, -920.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} OH + CH3CCl3 = 3.000Cl + H2O : GCARR_ac(1.64d-12, -1520.0d0); {2014/02/03; Eastham2014; SDE} OH + HCFC22 = Cl + H2O : GCARR_ac(9.20d-13, -1560.0d0); {2017/02/22; JPL 15-10; BHH,MJE} OH + HCFC141b = 2.000Cl + H2O : GCARR_ac(1.25d-12, -1600.0d0); {2014/02/03; Eastham2014; SDE} OH + HCFC142b = Cl + H2O : GCARR_ac(1.30d-12, -1770.0d0); {2014/02/03; Eastham2014; SDE} OH + HCFC123 = 2.000Cl + H2O : GCARR_ac(7.40d-13, -900.0d0); {2017/02/22; JPL 15-10; BHH,MJE} CH4 + Cl = HCl + MO2 : GCARR_ac(7.10d-12, -1270.0d0); {2017/03/08; JPL 15-10; TS,BHH,MJE} -CH2O + Cl = CO + HCl + HO2 : GCARR_ac(7.32d-11, -30.0d0); {2017/09/22; Sherwen2016b; TS,JAS,SDE} +CH2O + Cl = CO + HCl + HO2 : GCARR_ac(8.10d-11, -30.0d0); {2017/09/22; Sherwen2016b; TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} Cl + O3 = ClO + O2 : GCARR_ac(2.30d-11, -200.0d0); {2014/02/03; Eastham2014; SDE} Cl + H2 = H + HCl : GCARR_ac(3.05d-11, -2270.0d0); {2014/02/03; Eastham2014; SDE} Cl + H2O2 = HO2 + HCl : GCARR_ac(1.10d-11, -980.0d0); {2014/02/03; Eastham2014; SDE} @@ -859,16 +829,15 @@ Cl + O2 {+M} = ClOO {+M} : GCJPLPR_aba(2.20d-33, 3.1d+00, 1.8d ClOO {+M} = Cl + O2 {+M} : GCJPLEQ_acabab(6.60d-25, 2502.0d0, 2.20d-33, 3.1d+00, 1.8d-10, 0.0d0, 0.6d0); {JPL 15-10; XW} ClO + ClO {+M} = Cl2O2 {+M} : GCJPLPR_abab(1.90d-32, 3.6d+00, 3.7d-12, 1.6d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} Cl2O2 {+M} = 2.000ClO {+M} : GCJPLEQ_acabab(2.16d-27, 8537.0d0, 1.90d-32, 3.6d+00, 3.7d-12, 1.6d0, 0.6d0); {JPL 15-10; XW} -ClOO + Cl = Cl2 + O2 : 2.30d-10; {2014/02/03; Eastham2014; SDE} -ClOO + Cl = 2.000ClO : 1.20d-11; {2014/02/03; Eastham2014; SDE} +ClOO + Cl = 0.950Cl2 + 0.950O2 + 0.100ClO : 2.42d-10; {2014/02/03; Eastham2014; SDE} ClO + BrO = Br + OClO : GCARR_ac(9.50d-13, 550.0d0); {2014/02/03; Eastham2014; SDE} ClO + BrO = Br + ClOO : GCARR_ac(2.30d-12, 260.0d0); {2014/02/03; Eastham2014; SDE} ClO + BrO = BrCl + O2 : GCARR_ac(4.10d-13, 290.0d0); {2014/02/03; Eastham2014; SDE} ClNO3 + O = ClO + NO3 : GCARR_ac(3.60d-12, -840.0d0); {2014/02/03; Eastham2014; SDE} ClNO3 + Cl = Cl2 + NO3 : GCARR_ac(6.50d-12, 135.0d0); {2014/02/03; Eastham2014; SDE} -CH3Cl + Cl = CO + 2.000HCl + HO2 : GCARR_ac(2.17d-11, -1130.0d0); {2014/02/03; Eastham2014; SDE} -CH2Cl2 + Cl = CO + HCl + 2.000Cl + HO2 : GCARR_ac(1.24d-12, -1070.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -CHCl3 + Cl = CO + HCl + 3.000Cl + HO2 : GCARR_ac(3.77d-12, -1011.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +CH3Cl + Cl = CO + 2.000HCl + HO2 : GCARR_ac(2.03d-11, -1110.0d0); {2014/02/03; Eastham2014; SDE; 2023/04/18; JPL 19-5; KHB} +CH2Cl2 + Cl = CO + HCl + 2.000Cl + HO2 : GCARR_ac(7.40d-12, -910.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +CHCl3 + Cl = CO + HCl + 3.000Cl + HO2 : GCARR_ac(3.30d-12, -990.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} Cl + HCOOH = HCl + CO2 + H2O : 2.00d-13; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + MO2 = ClO + CH2O + HO2 : 1.60d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + MP = HCl + MO2 : 5.7d-11; {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -880,14 +849,14 @@ Cl + EOH = HCl + ALD2 : 9.6d-11; Cl + ACTA = HCl + MO2 + CO2 : 2.8d-14; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + C3H8 = HCl + B3O2 : GCARR_ac(6.54d-11, 60.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + C3H8 = HCl + A3O2 : GCARR_ac(8.12d-11, -90.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -Cl + ACET = HCl + ATO2 : GCARR_ac(7.70d-11, -1000.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +Cl + ACET = HCl + ATO2 : GCARR_ac(1.63d-11, -610.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} Cl + ISOP = HCl + 0.5IHOO1 + 0.5IHOO4 : GCARR_ac(7.60d-11, 500.0d0); {2019/11/06; Sherwen2016b;KHB,TS,JAS,SDE} -Cl + ALK4 = HCl + R4O2 : 2.05d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} +Cl + ALK4 = HCl + ALK4O2 : 2.05d-10; {2023/05/14; Brewer2023; JFB} Cl + PRPE {+M} = HCl + PO2 {+M} : GCJPLPR_aa(4.00d-28, 2.8d-10, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} Br + PRPE = HBr + PO2 : 3.60d-12; {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I + NO {+M} = INO {+M} : GCJPLPR_aba(1.80d-32, 1.0d0, 1.77d-11, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +I + NO {+M} = INO {+M} : GCJPLPR_aba(1.80d-32, 1.0d0, 1.70d-11, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} INO + INO = I2 + 2.000NO : GCARR_ac(8.40d-11, -2620.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I + NO2 {+M} = IONO {+M} : GCJPLPR_aba(3.00d-31, 1.0d0, 6.6d-11, 0.63d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +I + NO2 {+M} = IONO {+M} : GCJPLPR_aba(3.00d-31, 1.0d0, 6.6d-11, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} IONO {+M} = I + NO2 {+M} : GCARR_ac(9.94d+17, -11859.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} IONO + IONO = I2 + 2.000NO2 : GCARR_ac(2.90d-11, -2600.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2 + NO3 = I + IONO2 : 1.50d-12; {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -895,42 +864,39 @@ IO + NO2 {+M} = IONO2 {+M} : GCJPLPR_abab(7.50d-31, 3.5d0, 7.6d- IONO2 {+M} = IO + NO2 {+M} : GCARR_ac(2.10d+15, -13670.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} IONO2 + I = I2 + NO3 : GCARR_ac(9.10d-11, -146.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I + BrO = IO + Br : 1.20d-11; {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + BrO = Br + I + O2 : GCARR_ac(3.00d-12, 510.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + BrO = Br + OIO : GCARR_ac(1.20d-11, 510.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IO + BrO = 0.8OIO + Br + 0.2I + 0.2O2 : GCARR_ac(5.50d-12, 760.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} IO + OIO {+M} = I2O3 {+M} : 1.00d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} OIO + OIO = I2O4 : 1.50d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O4 {+M} = 2.000OIO {+M} : 3.80d-02; {2017/09/22; Sherwen2016b;TS,JAS,SDE} OIO + NO = IO + NO2 : GCARR_ac(1.10d-12, 542.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + ClO = I + OClO : GCARR_ac(5.10d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + ClO = I + Cl + O2 : GCARR_ac(2.81d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + ClO = ICl + O2 : GCARR_ac(1.02d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I + O3 = IO + O2 : GCARR_ac(2.30d-11, -870.0d0); {2017/09/22; Sherwen2017;TS,JAS,SDE} +IO + ClO = 0.809I + 0.560OClO + + 0.249Cl + 0.191ICl + 0.440O2 : GCARR_ac(4.82d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +I + O3 = IO + O2 : GCARR_ac(2.00d-11, -830.0d0); {2017/09/22; Sherwen2017;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} I + HO2 = HI + O2 : GCARR_ac(1.50d-11, -1090.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2 + OH = HOI + I : 1.80d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} HI + OH = I + H2O : 3.00d-11; {2017/09/22; Sherwen2016b;TS,JAS,SDE} HOI + OH = IO + H2O : 5.00d-12; {2017/09/22; Sherwen2016b;TS,JAS,SDE} IO + HO2 = HOI + O2 : GCARR_ac(1.30d-11, 570.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + NO = I + NO2 : GCARR_ac(9.10d-12, 240.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + IO = I + OIO : GCARR_ac(6.00d-12, 500.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + IO {+M} = I2O2 {+M} : GCARR_ac(9.00d-12, 500.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I2O2 {+M} = 2.000IO {+M} : GCARR_ac(1.00d+12, -9770.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I2O2 {+M} = OIO + I {+M} : GCARR_ac(2.50d+14, -9770.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IO + NO = I + NO2 : GCARR_ac(8.60d-12, 230.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +IO + IO = 0.400I + 0.400OIO + 0.600I2O2: GCARR_ac(1.50d-11, 500.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +I2O2 {+M} = 0.008IO + 0.996I + + 0.996OIO {+M} : GCARR_ac(2.51d+14, -9770.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; Bates2023; KHB} CH3I + OH = H2O + I + MO2 : GCARR_ac(2.90d-12, -1100.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} ETHLN + OH = CH2O + CO2 + NO2 : 2.40d-12; {2017/06/15, Marais2016, EAM} PROPNN + OH = NO2 + MGLY : 6.70d-13; {2017/07/14; MCMv3.3; KRT,JAF,CCM,EAM,KHB,RHS} -CH2OO + CO = CH2O : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM} +CH2OO + CO = CH2O + CO2 : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; Bates2023; KHB} CH2OO + NO = CH2O + NO2 : 1.00d-14; {2015/09/25; Millet2015; DBM,EAM} -CH2OO + NO2 = CH2O + NO3 : 1.00d-15; {2015/09/25; Millet2015; DBM,EAM} +CH2OO + NO2 = CH2O + NO3 : 4.25d-12; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} CH2OO + H2O = 0.730HMHP + 0.210HCOOH + - 0.060CH2O + 0.060H2O2 : 1.70d-15; {2019/11/06; Bates2019; KHB} + 0.060CH2O + 0.060H2O2 : 2.80d-16; {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} CH2OO + H2O + H2O = 0.400HMHP + 0.540HCOOH + 0.060CH2O + 0.060H2O2 : GCARR_ac(2.88d-35, 1391.0d0); {2019/11/06; Bates2019; KHB} CH2OO + O3 = CH2O : 1.40d-12; {2019/11/06; Bates2019; KHB} -CH2OO + SO2 = CH2O + SO4 : 3.70d-11; {2019/11/06; Bates2019; KHB} -CH3CHOO + CO = ALD2 : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM} +CH2OO + SO2 = CH2O + SO4 + PH2SO4 : 3.80d-11; {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} +CH3CHOO + CO = ALD2 + CO2 : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; Bates2023; KHB} CH3CHOO + NO = ALD2 + NO2 : 1.00d-14; {2015/09/25; Millet2015; DBM,EAM} -CH3CHOO + NO2 = ALD2 + NO3 : 1.00d-15; {2015/09/25; Millet2015; DBM,EAM} -CH3CHOO + SO2 = ALD2 + SO4 : 7.00d-14; {2015/09/25; Millet2015; DBM,EAM} +CH3CHOO + NO2 = ALD2 + NO3 : 4.25d-12; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} +CH3CHOO + SO2 = ALD2 + SO4 + PH2SO4 : 2.65d-11; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} CH3CHOO + H2O = ALD2 + H2O2 : 6.00d-18; {2015/09/25; Millet2015; DBM,EAM} CH3CHOO + H2O = ACTA : 1.00d-17; {2015/09/25; Millet2015; DBM,EAM} MTPA + OH = PIO2 : GCARR_ac(1.21d-11, 440.0d0); {2017/03/23; IUPAC2010; EVF} @@ -942,8 +908,8 @@ PIO2 + NO = 0.820HO2 + 0.820NO2 + PIO2 + HO2 = PIP : 1.50d-11; {2017/03/23; Roberts1992; EVF} PIO2 + MO2 = HO2 + 0.750CH2O + 0.250MOH + 0.250ROH + 0.750RCHO + 0.750MEK : GCARR_ac(3.56d-14, 708.0d0); {2017/07/14; Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} -PIO2 + MCO3 = 0.500HO2 + 0.500MO2 + RCHO + - MEK + RCOOH : GCARR_ac(7.40d-13, 765.0d0); {2017/03/23; Roberts1992; EVF} +PIO2 + MCO3 = 0.500HO2 + 0.500MO2 + CO2 + + RCHO + 1.125MEK + RCOOH : GCARR_ac(7.40d-13, 765.0d0); {2017/03/23; Roberts1992; EVF; 2022/07/01; 2023/04/18; Bates2023; KHB} PIO2 + NO3 = HO2 + NO2 + RCHO + MEK : 1.20d-12; {2017/03/23; Roberts1992; EVF} MTPA + O3 = 0.850OH + 0.100HO2 + 0.620KO2 + 0.140CO + 0.020H2O2 + @@ -981,11 +947,11 @@ OLND + HO2 = 0.700MONITS + 0.300MONITU : GCARR_ac(1.66d-13, 1300.0d0); OLNN + MO2 = 2.000HO2 + CH2O + 0.700MONITS + 0.300MONITU : GCARR_ac(1.60d-13, 708.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} OLND + MO2 = 0.500HO2 + 0.500NO2 + - 0.965CH2O + 0.930RCHO + 0.348MEK + + 0.850CH2O + 0.930RCHO + 0.340MEK + 0.250MOH + 0.250ROH + 0.350MONITS + - 0.150MONITU : GCARR_ac(9.68d-14, 708.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} + 0.150MONITU : GCARR_ac(9.68d-14, 708.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS; 2023/04/18; Bates2023; KHB} OLNN + MCO3 = HO2 + MO2 + 0.700MONITS + - 0.300MONITU : GCARR_ac(8.85d-13, 765.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} + 0.300MONITU + CO2 : GCARR_ac(8.85d-13, 765.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS; 2023/04/18; Bates2023; KHB} OLND + MCO3 = 0.500MO2 + NO2 + 0.287CH2O + 1.240RCHO + 0.464MEK + 0.500RCOOH : GCARR_ac(5.37d-13, 765.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} OLNN + NO3 = HO2 + NO2 + 0.700MONITS + @@ -1007,7 +973,7 @@ MONITU + NO3 = HONIT : GCARR_ac(3.15d-13, -448.0d0); MONITS + NO3 = HONIT : GCARR_ac(3.15d-13, -448.0d0); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} IONITA = INDIOL + HNO3 : 2.78d-04; {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} MONITA = INDIOL + HNO3 : 2.78d-04; {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} -HONIT + OH = NO3 + HAC : GC_OHHNO3_acacac(2.41d-14, 460.0d0, 2.69d-17, 2199.0d0, 6.51d-34, 1335.0d0); {2017/07/14; Browne2014; KRT,JAF,CCM,EAM,KHB,RHS} +HONIT + OH = NO3 + HAC : GCJPLPR_abab(3.9d-31,7.2d0,1.5d-13,4.8d0,0.6d0) + GCJPLAC_ababac(3.9d-31,7.2d0,1.5d-13,4.8d0,3.7d-14,2.4d2,0.6d0); {2023/04/18; JPL 19-5; KHB} MENO3 + OH = CH2O + NO2 : GCARR_ac(8.00d-13, -1000.0d0); {2019/05/16; JPL 15-10,Fisher2018; JAF} ETNO3 + OH = ALD2 + NO2 : GCARR_ac(1.00d-12, -490.0d0); {2019/05/16; JPL 15-10,Fisher2018; JAF} IPRNO3 + OH = ACET + NO2 : GCARR_ac(1.20d-12, -320.0d0); {2019/05/16; JPL 15-10,Fisher2018; JAF} @@ -1015,7 +981,7 @@ NPRNO3 + OH = RCHO + NO2 : 7.10d-13; ISOP + O3 = 0.416MACR + 0.177MVK + 0.28OH + 0.407CO2 + 0.407CO + 0.407MO2 + 0.16HO2 + 0.58CH2OO + 0.827CH2O + - 0.013H2O2 : 1.3d-17; {2019/11/06; Bates2019; KHB} + 0.013H2O2 : GCARR_ac(1.10d-14, -2000.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} ISOP + OH = LISOPOH + IHOO1 : GC_ISO1(1.7d-11, 3.90d2, 9.33d-2, 5.05d15, -1.22d4, 1.79d14, -8.830d3); {2019/11/06; Bates2019; KHB} ISOP + OH = LISOPOH + IHOO4 : GC_ISO1(1.0d-11, 3.90d2, 2.26d-1, 2.22d9, -7.160d3, 1.75d14, -9.054d3); {2019/11/06; Bates2019; KHB} ISOP + OH = 0.3MCO3 + 0.3MGLY + 0.3CH2O + @@ -1204,7 +1170,7 @@ IDHNBOO + NO = 0.355MCRHNB + 0.546PROPNN + 0.071HAC + HO2 + NO2 + 0.383CH2O : GC_ALK(2.7d-12, 350.0d0, 1.851d0, 11.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} IDHNBOO + NO = IDN : GC_NIT(2.7d-12, 350.0d0, 1.851d0, 11.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} ISOP + NO3 = 0.465INO2B + 0.535INO2D + - LISOPNO3 : GCARR_ac(2.95d-12, 450.0d0); {2019/11/06; Bates2019; KHB} + LISOPNO3 : GCARR_ac(2.95d-12, -450.0d0); {2019/11/06; Bates2019; KHB} INO2B + HO2 = 0.473INPB + 0.048MACR + 0.479MVK + 0.527OH + 0.527CH2O + 0.527NO2 : GCARR_ac(2.47d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} INO2D + HO2 = INPD : GCARR_ac(2.47d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} @@ -1216,7 +1182,7 @@ INO2B + INO2D = 0.399INPB + 0.544MVK + 0.089HO2 + 0.019MACR + 0.563CH2O + 0.032IHN1 : 2.56d-12; {2019/11/06; Bates2019; KHB} INO2D + INO2D = 0.064HO2 + 0.340INA + - 0.861ICN + 0.671IHN1 + 0.127IHN4 : 3.71d-12; {2019/11/06; Bates2019; KHB} + 0.862ICN + 0.671IHN1 + 0.127IHN4 : 3.71d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} INO2D + MO2 = 0.298IHN1 + 0.057IHN4 + 0.244INA + 0.401ICN + 0.355MOH + 0.336HO2 + 0.645CH2O : 1.18d-12; {2019/11/06; Bates2019; KHB} @@ -1224,9 +1190,9 @@ INO2B + MO2 = 0.355INPB + 0.583MVK + 0.028MACR + 0.034ICN + 0.611HO2 + 1.577CH2O + 0.611NO2 + 0.034MOH : 2.80d-13; {2019/11/06; Bates2019; KHB} INO2B + MCO3 = CH2O + NO2 + MO2 + - 0.903MVK + 0.097MACR : 1.92d-12; {2019/11/06; Bates2019; KHB} + 0.903MVK + 0.097MACR + CO2 : 1.92d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} INO2D + MCO3 = MO2 + 0.841INA + 0.159HO2 + - 0.159ICN : 7.71d-12; {2019/11/06; Bates2019; KHB} + 0.159ICN + CO2 : 7.71d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} INO2B + NO3 = CH2O + 2NO2 + 0.903MVK + 0.097MACR : 2.3d-12; {2019/11/06; Bates2019; KHB} INO2D + NO3 = NO2 + 0.841INA + 0.159HO2 + @@ -1273,12 +1239,12 @@ IHPNDOO + NO = IDN : GC_NIT(2.7d-12, 350.0d0, 4.383d0, 1 ICN + OH = NO2 + ICHE : GC_EPO_a(2.97d-12, 390.0d0, 2.715d-19); {2019/11/06; Bates2019; KHB} ICN + OH = 0.244OH + 0.539CO + 0.295HO2 + 0.378MCRHNB + 0.461ICNOO + 0.161MVKN : GCARR_ac(9.35d-12, 390.0d0); {2019/11/06; Bates2019; KHB} -ICNOO + NO = 0.67ICNOO + 0.33CO2 + +ICNOO + NO = 0.67ICNOO + 0.429CO2 + 0.33CO + 0.33HO2 + 0.231PROPNN + NO2 + - 0.099ETHLN : GCARR_ac(2.70d-12, 350.0d0); {2019/11/06; Bates2019; KHB} -ICNOO + HO2 = 0.67ICNOO + 0.33CO2 + + 0.099ETHLN : GCARR_ac(2.70d-12, 350.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} +ICNOO + HO2 = 0.67ICNOO + 0.429CO2 + 0.33CO + 0.33HO2 + 0.231PROPNN + OH + - 0.099ETHLN : GCARR_ac(2.54d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} + 0.099ETHLN : GCARR_ac(2.54d-13, 1300.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} IDN + OH = 0.565NO2 + 0.565ITHN + 0.435IDNOO : GCARR_ac(1.00d-11, 0.0d0); {2019/11/06; Bates2019; KHB} IDNOO + NO = PROPNN + 1.11NO2 + 0.11GLYC + @@ -1289,12 +1255,12 @@ IDNOO + HO2 = 0.18IDN + 0.09NO2 + MVK + OH = MVKOHOO : GCARR_ac(2.60d-12, 610.0d0); {2019/11/06; Bates2019; KHB} MVK + O3 = 0.545MGLY + 0.500CH2OO + 0.600CH2O + 0.380MCO3 + 0.100HO2 + - 0.080OH + 0.180CO + 0.075PYAC + 0.045H2O2 : GCARR_ac(8.50d-16, -1520.0d0); {2019/11/06; Bates2019; KHB} + 0.080OH + 0.280CO + 0.075PYAC + 0.045H2O2 : GCARR_ac(8.50d-16, -1520.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MACR + OH = 0.036ATOOH + 0.036CO + 0.036HO2 + 0.964MCROHOO : GCARR_ac(4.40d-12, 380.0d0); {2019/11/06; Bates2019; KHB} MACR + OH = MACR1OO : GCARR_ac(2.70d-12, 470.0d0); {2019/11/06; Bates2019; KHB} MACR + O3 = 0.880MGLY + 0.880CH2OO + - 0.120CH2O + 0.120OH + 0.120CO + 0.120MCO3 : GCARR_ac(1.40d-15, -2100.0d0); {2019/11/06; Bates2019; KHB} + 0.120CH2O + 0.120OH + 0.120CO + 0.120MCO3 : GCARR_ac(1.50d-15, -2110.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} MACR + NO3 = 0.320HNO3 + 0.320MACR1OO + 0.680OH + 0.680CO + 0.680PROPNN : GCARR_ac(1.80d-13, -1190.0d0); {2019/11/06; Bates2019; KHB} MVKN + OH = 0.241CH2O + 0.690NO3 + @@ -1319,7 +1285,7 @@ MCRENOL + OH = 0.75CO + 0.285OH + 0.187HCOOH : GCARR_ac(3.71d-12, 983.0d0); {2019/11/06; Bates2019; KHB} MVKPC + OH = OH + CO + MGLY : GCARR_ac(5.00d-12, 470.0d0); {2019/11/06; Bates2019; KHB} MVKDH + OH = 0.4MVKHCB + 0.6MVKHC + HO2 : GCARR_ac(8.70d-12, 70.0d0); {2019/11/06; Bates2019; KHB} -MVKHCB + OH = OH + MGLY : GCARR_ac(5.00d-12, 470.0d0); {2019/11/06; Bates2019; KHB} +MVKHCB + OH = OH + MGLY + CO : GCARR_ac(5.00d-12, 470.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MVKHC + OH = 2CO + HO2 + MCO3 : GCARR_ac(2.00d-12, 70.0d0); {2019/11/06; Bates2019; KHB} MCRDH + OH = 0.16MVKHCB + HO2 + 0.84HAC + 0.84CO : GCARR_ac(2.4d-11, 70.0d0); {2019/11/06; Bates2019; KHB} @@ -1328,7 +1294,7 @@ MVKOHOO + HO2 = 0.360MCO3 + 0.360GLYC + 0.335MVKHP + 0.050MGLY + 0.050CH2O : GCARR_ac(2.12d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} MVKOHOO + NO = 0.758MCO3 + 0.758GLYC + 0.242MGLY + 0.242CH2O + 0.242HO2 + NO2 : GC_ALK(2.7d-12, 350.0d0, 4.573d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} -MVKOHOO + NO = 0.438MVKN : GC_NIT(2.7d-12, 350.0d0, 4.573d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} +MVKOHOO + NO = MVKN : GC_NIT(2.7d-12, 350.0d0, 4.573d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MCROHOO + HO2 = 0.41MCRHP + 0.507HAC + 0.507CO + 0.507HO2 + 0.59OH + 0.59O2 + 0.083MGLY + 0.083CH2O : GCARR_ac(2.12d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} @@ -1337,8 +1303,8 @@ MACR1OO + HO2 = 0.5MACR1OOH + 0.5CH2O + 0.5OH + 0.13O3 : GCARR_ac(3.14d-12, 580.0d0); {2019/11/06; Bates2019; KHB} MACR1OOH + OH = 0.165MACR1OO + 0.585OH + 0.488HAC + 0.488CO + 0.098HMML + - 0.415CO2 + 0.25CH2O + 0.087MCO3 + - 0.162MO2 : 1.66d-11; {2019/11/06; Bates2019; KHB} + 0.410CO2 + 0.25CH2O + 0.087MCO3 + + 0.162MO2 : 1.66d-11; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MCROHOO = HAC + CO + OH : GCARR_ac(2.90d+7, -5297.0d0); {2019/11/06; Bates2019; KHB} MCROHOO + NO = 0.86HAC + 0.86CO + 0.86HO2 + NO2 + 0.14MGLY + 0.14CH2O : GC_ALK(2.7d-12, 350.0d0, 2.985d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} @@ -1357,7 +1323,7 @@ MPAN = MACR1OO + NO2 : GCARR_ac(1.58d+16, -13500.0d0); MPAN + OH = 0.75HMML + NO3 + 0.25HAC + 0.25CO : 2.90d-11; {2019/11/06; Bates2019; KHB} HMML + OH = 0.700MGLY + 0.700OH + - 0.300MCO3 + 0.300HCOOH : 4.33d-12; {2019/11/06; Bates2019; KHB} + 0.300MCO3 + 0.300HCOOH + CO : 4.33d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} ICPDH + OH = CO + 0.5HO2 + 0.5OH + 0.5MCRHP + 0.35MVKDH + 0.15MCRDH : 1.00d-11; {2019/11/06; Bates2019; KHB} IDCHP + OH = 0.888CO + 0.444OH + @@ -1369,8 +1335,8 @@ IDHPE + OH = OH + CO2 + 0.571MCRHP + ITCN + OH = CO + NO2 + 0.75MVKHP + 0.25MCRHP : 1.00d-11; {2019/11/06; Bates2019; KHB} ITHN + OH = 0.300OH + 0.620HO2 + - 0.920ITCN + 0.037IDHNBOO + 0.041ICNOO + - 0.022MCRENOL + 0.022NO2 + 0.022CH2O : 3.00d-12; {2019/11/06; Bates2019; KHB} + 0.900ITCN + 0.037IDHNBOO + 0.041ICNOO + + 0.022MCRENOL + 0.022NO2 + 0.022CH2O : 3.00d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} ETHLN + NO3 = HNO3 + NO2 + MCO3 : GCARR_ac(1.40d-12, -1860.0d0); {2019/11/06; Bates2019; KHB} PYAC + OH = MCO3 + CO2 : 8.00d-13; {2019/11/06; Bates2019; KHB} HMHP + OH = 0.5CH2O + 0.5HO2 + 0.5HCOOH + @@ -1384,42 +1350,42 @@ NRO2 + HO2 = LNRO2H + HO2 : GCARR_ac(1.40d-12, 700.0d0); NRO2 + NO = LNRO2N + NO : GCARR_ac(2.60d-12, 350.0d0); {2013/08/12; Pye2010; HOTP} // // --- C2H2 & C2H4 chemistry (per KHB) -C2H4 + O3 = CH2O + CH2OO : GCARR_abc(9.10d-15, 0.0d0, -2580.0d0); {2021/09/22; Kwon2020; KHB,MSL} +C2H4 + O3 = CH2O + CH2OO : GCARR_ac(1.20d-14, -2630.0d0); {2021/09/22; Kwon2020; KHB,MSL; 2023/04/18; JPL 19-5; KHB} C2H4 + OH = ETOO : GCJPLPR_abab(1.10d-28, 3.5d+00, 8.4d-12, 1.75d0, 0.5d0); {2021/09/22; Kwon2020; KHB,MSL} C2H2 + OH = 0.636GLYX + 0.636OH + 0.364CO + 0.364HO2 + 0.364HCOOH : GCJPLPR_abab(5.50d-30, 0.0d0, 8.3d-13, -2.0d0, 0.5d0); {2021/09/22; Kwon2020; KHB,MSL} -ETOO + HO2 = ETHP : GCARR_abc(1.53d-13, 0.0d0, 1300.0d0); {2021/09/22; Kwon2020; KHB,MSL} +ETOO + HO2 = ETHP : GCARR_ac(1.53d-13, 1300.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETOO + NO = 0.995ETO + - 0.995NO2 + 0.005ETHN : GCARR_abc(2.7d-12, 0.0d+00, 360.0d0); {2021/09/22; Kwon2020; KHB,MSL} + 0.995NO2 + 0.005ETHN : GCARR_ac(2.7d-12, 360.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETOO + NO3 = ETO + NO2 : 2.3d-12; {2021/09/22; Kwon2020; KHB,MSL} ETOO + MO2 = 0.6ETO + 0.6HO2 + 0.8CH2O + 0.2MOH + 0.2ETHP + 0.2GLYC : 6.00d-13; {2021/09/22; Kwon2020; KHB,MSL} -ETO = HO2 + 2.000CH2O : GCARR_abc(9.5d+13, 0.0d0, -5988.0d0); {2021/09/22; Kwon2020; KHB,MSL} -ETO + O2 = GLYC + HO2 : GCARR_abc(2.5d-14, 0.0d0, -300.0d0); {2021/09/22; Kwon2020; KHB,MSL} +ETO = HO2 + 2.000CH2O : GCARR_ac(9.5d+13, -5988.0d0); {2021/09/22; Kwon2020; KHB,MSL} +ETO + O2 = GLYC + HO2 : GCARR_ac(2.5d-14, -300.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETHN + OH = GLYC + NO2 : 8.40d-13; {2021/09/22; Kwon2020; KHB,MSL} -ETHP + OH = ETOO : GCARR_abc(1.90d-12, 0.0d+00, 190.0d0); {2021/09/22; Kwon2020; KHB,MSL} +ETHP + OH = ETOO : GCARR_ac(1.90d-12, 190.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETHP + OH = OH + GLYC : 1.38d-11; {2021/09/22; Kwon2020; KHB,MSL} // // --- Aromatic Chemistry (per KHB) BENZ + OH = BRO2 + 0.54PHEN + 0.54HO2 + 0.46AROMRO2 + 0.18GLYX + - 0.2CO +0.56AROMP4 : GCARR_abc(2.3d-12, 0.0d0, -193.0d0); {2021/09/29; Bates2021b; KHB,MSL} + 0.2CO +0.55AROMP4 : GCARR_ac(2.3d-12, -193.0d0); {2021/09/29; Bates2021b; KHB,MSL; 2022/07/01; fix C accounting; KHB} TOLU + OH = TRO2 + 0.19CSL + 0.19HO2 + 0.81AROMRO2 + 0.06BALD + 0.12GLYX + 0.12MGLY + 0.27CO + 0.04MVK + 0.3AROMP5 + - 0.68AROMP4 : GCARR_abc(1.8d-12, 0.0d0, 340.0d0); {2021/09/29; Bates2021b; KHB,MSL} + 0.68AROMP4 : GCARR_ac(1.8d-12, 340.0d0); {2021/09/29; Bates2021b; KHB,MSL} XYLE + OH = XRO2 + 0.15CSL + 0.15HO2 + 0.85AROMRO2 + 0.06BALD + 0.1GLYX + 0.2MGLY + 0.3CO + 0.04MVK + 0.56AROMP5 + 0.28AROMP4 + 0.45RCOOH : 1.7d-11; {2021/09/29; Bates2021b; KHB,MSL} AROMRO2 + HO2 = OH + HO2 : 2.91d-13 * EXP( 1300.0d0 / TEMP ) * 0.82d0; {2021/09/29; Bates2021b; KHB,MSL} -AROMRO2 + NO = NO2 + HO2 : GCARR_abc(2.60d-12, 0.0d+00, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} +AROMRO2 + NO = NO2 + HO2 : GCARR_ac(2.60d-12, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} AROMRO2 + NO3 = NO2 + HO2 : 2.30d-12; {2021/09/29; Bates2021b; KHB,MSL} -AROMRO2 + MO2 = CH2O + HO2 + HO2 : GCARR_abc(1.70d-14, 0.0d0, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL} -AROMRO2 + MCO3 = MO2 + HO2 : GCARR_abc(4.20d-14, 0.0d0, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL} +AROMRO2 + MO2 = CH2O + HO2 + HO2 : GCARR_ac(1.70d-14, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL} +AROMRO2 + MCO3 = MO2 + HO2 + CO2 : GCARR_ac(4.20d-14, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL; 2022/07/01; fix C accounting; KHB} PHEN + OH = 0.06BENZO + 0.06GLYX + 0.18AROMP4 + 0.14AROMRO2 + - 0.8MCT + 0.8HO2 : GCARR_abc(4.70d-13, 0.0d0, 1220.0d0); {2021/09/29; Bates2021b; KHB,MSL} + 0.8MCT + 0.8HO2 : GCARR_ac(4.70d-13, 1220.0d0); {2021/09/29; Bates2021b; KHB,MSL} PHEN + NO3 = 0.258NPHEN + 0.742HNO3 + 0.742BENZO : 3.8d-12; {2021/09/29; Bates2021b; KHB,MSL} CSL + OH = 0.727MCT + 0.727HO2 + @@ -1431,29 +1397,30 @@ MCT + OH = 0.3BENZO + 0.7AROMRO2 + MCT + O3 = GLYC + HO2 + OH + AROMP4 : 9.2d-18; {2021/09/29; Bates2021b; KHB,MSL} MCT + NO3 = 0.5NPHEN + 0.5HNO3 + 0.3BENZO + 0.2AROMRO2 + 0.3AROMP4 : 9.9d-11; {2021/09/29; Bates2021b; KHB,MSL} -BALD + OH = BZCO3 : GCARR_abc(5.90d-12, 0.0d0, 225.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BALD + OH = BZCO3 : GCARR_ac(5.90d-12, 225.0d0); {2021/09/29; Bates2021b; KHB,MSL} BALD + NO3 = BZCO3 + HNO3 : 2.4d-15; {2021/09/29; Bates2021b; KHB,MSL} BZCO3 + HO2 = 0.35CO2 + 0.2BENZO2 + - 0.15O3 + 0.2OH + 0.15BENZP + 0.65BZCO3H : GCARR_abc(1.10d-11, 0.0d0, 340.0d0); {2021/09/29; Bates2021b; KHB,MSL} -BZCO3 + NO = NO2 + CO2 + BENZO2 : GCARR_abc(7.50d-12, 0.0d0, 290.0d0); {2021/09/29; Bates2021b; KHB,MSL} + 0.15O3 + 0.2OH + 0.15BENZP + 0.65BZCO3H : GCARR_ac(1.10d-11, 340.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BZCO3 + NO = NO2 + CO2 + BENZO2 : GCARR_ac(7.50d-12, 290.0d0); {2021/09/29; Bates2021b; KHB,MSL} BZCO3 + NO2 = BZPAN : GC_PAN_acac(3.28d-28, -6.87d0, 1.125d-11, -1.105d0, 0.3d0); {2021/09/29; Bates2021b; KHB,MSL} BZCO3H + OH = BZCO3 : 4.66d-12; {2021/09/29; Bates2021b; KHB,MSL} BZPAN = BZCO3 + NO2 : GC_PAN_abab(1.10d-5, -10100.0d0, 1.90d+17, -14100.0d0, 0.3d0)*0.67d0; {2021/09/29; Bates2021b; KHB,MSL} BZPAN + OH = BENZP + CO2 + NO2 : 1.06d-12; {2021/09/29; Bates2021b; KHB,MSL} BENZO2 + NO2 = BENZO + NO3 : 7.00d-12; {2021/09/29; Bates2021b; KHB,MSL} -BENZO2 + NO = BENZO + NO2 : GCARR_abc(2.670d-12, 0.0d0, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BENZO2 + NO = BENZO + NO2 : GCARR_ac(2.670d-12, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} BENZO2 + NO3 = BENZO + NO2 : 2.30d-12; {2021/09/29; Bates2021b; KHB,MSL} -BENZO2 + HO2 = BENZP : GCARR_abc(2.24d-13, 0.0d0, 1300.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BENZO2 + HO2 = BENZP : GCARR_ac(2.24d-13, 1300.0d0); {2021/09/29; Bates2021b; KHB,MSL} BENZP + OH = BENZO2 : 3.60d-12; {2021/09/29; Bates2021b; KHB,MSL} BENZO + O3 = BENZO2 : 2.86d-13; {2021/09/29; Bates2021b; KHB,MSL} BENZO + NO2 = NPHEN : 2.08d-12; {2021/09/29; Bates2021b; KHB,MSL} -NPHEN + OH = 0.5R4N1 + AROMP4 + 0.5NO2 : 3.47d-12; {2021/09/29; Bates2021b; KHB,MSL} -NPHEN + NO3 = 0.5HNO3 + - NO2 + 0.5R4N1 + AROMP4 : 2.60d-12; {2021/09/29; Bates2021b; KHB,MSL} -BENZO2 + MO2 = BENZO + HO2 + CH2O : GCARR_abc(2.670d-13, 0.0d0, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} -BZCO3 + MO2 = BENZO2 + CO2 + HO2 + CH2O : GCARR_abc(2.670d-12, 0.0d0, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} -AROMP4 + OH = 0.6GLYX + 0.25CO + 0.25HCOOH + - 0.25OH + 0.33HO2 + 0.33RCO3 + 0.45RCOOH : 5.0d-11; {2021/09/29; Bates2021b; KHB,MSL} +NPHEN + OH = 0.5R4N1 + 0.9AROMP4 + + 0.5NO2 +0.15CO : 3.47d-12; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} +NPHEN + NO3 = 0.5HNO3 + NO2 + + 0.5R4N1 + 0.9AROMP4 + 0.15CO : 2.60d-12; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} +BENZO2 + MO2 = BENZO + HO2 + CH2O : GCARR_ac(2.670d-13, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BZCO3 + MO2 = BENZO2 + CO2 + HO2 + CH2O : GCARR_ac(2.670d-12, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} +AROMP4 + OH = 0.6GLYX + 0.26CO + 0.26HCOOH + + 0.25OH + 0.33HO2 + 0.33RCO3 + 0.43RCOOH : 5.0d-11; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} AROMP4 + O3 = 0.5HCOOH + 0.5CO + 0.6GLYX + 0.9GLYC + 0.1HO2 + 0.1OH : 8.0d-16; {2021/09/29; Bates2021b; KHB,MSL} AROMP4 = 0.2HO2 + 0.2GLYX + 1.2RCHO : 1.5d-3; {2021/09/29; Bates2021b; KHB,MSL} @@ -1462,8 +1429,8 @@ AROMP5 + OH = 0.6MGLY + 0.15ACTA + 0.33RCO3 + 0.25CO + 0.52RCOOH : 5.0d-11; {2021/09/29; Bates2021b; KHB,MSL} AROMP5 + O3 = 0.6MGLY + 0.3ACTA + 0.2HCOOH + 0.5CO + 0.95GLYC + 0.1HO2 + 0.1OH : 8.0d-16; {2021/09/29; Bates2021b; KHB,MSL} -AROMP5 = 0.2HO2 + 0.2R4O2 + - 0.2MGLY + 1.2RCHO : 1.5d-3; {2021/09/29; Bates2021b; KHB,MSL} +AROMP5 = 0.2HO2 + 0.2ALK4O2 + + 0.2MGLY + 1.15RCHO + 0.05CO : 1.5d-3; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB},{2023/05/14; Brewer2023; JFB} // // KHB -- "we still need to include the dummy species for aromatic oxidation // to make the complex SOA code work. Hopefully this will be changed @@ -1474,13 +1441,14 @@ AROMP5 = 0.2HO2 + 0.2R4O2 + // XRO2, TRO2, and BRO2 as products from the BENZ + OH, TOLU + OH, // and XYLE + OH reactions above, and not include the following reactions)" // -BRO2 + HO2 = HO2 + LBRO2H : GCARR_abc(1.40d-12, 0.0d0, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} -BRO2 + NO = NO + LBRO2N : GCARR_abc(2.60d-12, 0.0d0, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} -TRO2 + HO2 = HO2 + LTRO2H : GCARR_abc(1.40d-12, 0.0d0, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} -TRO2 + NO = NO + LTRO2N : GCARR_abc(2.60d-12, 0.0d0, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} -XRO2 + HO2 = HO2 + LXRO2H : GCARR_abc(1.40d-12, 0.0d0, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} -XRO2 + NO = NO + LXRO2N : GCARR_abc(2.60d-12, 0.0d0, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BRO2 + HO2 = HO2 + LBRO2H : GCARR_ac(1.40d-12, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BRO2 + NO = NO + LBRO2N : GCARR_ac(2.60d-12, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} +TRO2 + HO2 = HO2 + LTRO2H : GCARR_ac(1.40d-12, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} +TRO2 + NO = NO + LTRO2N : GCARR_ac(2.60d-12, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} +XRO2 + HO2 = HO2 + LXRO2H : GCARR_ac(1.40d-12, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} +XRO2 + NO = NO + LXRO2N : GCARR_ac(2.60d-12, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} MO2 + NO3 = NO2 + CH2O + HO2 : 1.20d-12; {2022/10/18: IUPAC ROO_19; KHB,BMY} +FURA + OH = BUTDI : GCARR_ac(1.32d-11, 334.0d0); {2023/02/07; Carter2022; TSC} // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // %%%%% Heterogeneous chemistry reactions %%%%% @@ -1517,14 +1485,14 @@ HOCl + HCl = Cl2 + H2O : HOClUptkByHCl( State_Het ); HOCl + HBr = BrCl + H2O : HOClUptkByHBr( State_Het ); {2014/02/03; Eastham2014; SDE} HOCl + SALACL = Cl2 + H2O : HOClUptkBySALACL( State_Het ); {2018/01/22; XW} HOCl + SALCCL = Cl2 + H2O : HOClUptkBySALCCL( State_Het ); {2018/01/22; XW} -HOCl + SO2 = SO4 + HCl : HOClUptkByHSO3m( State_Het ) + HOClUptkBySO3mm( State_Het ); {2018/11/08; XW; June 6, 2021, MSL} +HOCl + SO2 = SO4 + HCl : HOClUptkByHSO3m( State_Het ) + HOClUptkBySO3mm( State_Het ) + SRHOCl; {2023/01/30; Add SRHOCL, BA; 2018/11/08; XW; June 6, 2021, MSL} HOBr + HBr = Br2 + H2O : HOBrUptkByHBr( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HOBr + HCl = BrCl + H2O : HOBrUptkByHCl( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HOBr + SALACL = BrCl + H2O : HOBrUptkBySALACL( State_Het ); {2018/01/22; Sherwen2017;TS,JAS,SDE;XW} HOBr + SALCCL = BrCl + H2O : HOBrUptkBySALCCL( State_Het ); {2018/01/22; Sherwen2017;TS,JAS,SDE,XW} HOBr + BrSALA = Br2 : HOBrUptkByBrSALA( State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE} HOBr + BrSALC = Br2 : HOBrUptkByBrSALC( State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE} -HOBr + SO2 = SO4 + HBr : HOBrUptkByHSO3m( State_Het ) + HOBrUptkBySO3mm( State_Het ); {2017/11/15; Chen2017; QJC; June 6, 2021, MSL} +HOBr + SO2 = SO4 + HBr : HOBrUptkByHSO3m( State_Het ) + HOBrUptkBySO3mm( State_Het ) + SRHOBr; {2023/01/30; Add SRHOBrL, BA; 2017/11/15; Chen2017; QJC; June 6, 2021, MSL} O3 + HBr = HOBr : O3uptkByHBr( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} O3 + BrSALA = HOBr : O3uptkByBrSALA( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} O3 + BrSALC = HOBr : O3uptkByBrSALC( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -1533,6 +1501,8 @@ HBr = BrSALC : HBrUptkBySALC( State_Het ); HI = AERI : IuptkBySulf1stOrd( SR_MW(ind_HI), 0.10_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HI = ISALA : IuptkBySALA1stOrd( SR_MW(ind_HI), 0.10_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HI = ISALC : IuptkBySALC1stOrd( SR_MW(ind_HI), 0.10_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +HOI = ISALA : IuptkByAlkSALA1stOrd( SR_MW(ind_HOI), 0.01_dp, State_Het ); {2023/01/24; Restored deleted rxn:BA} +HOI = ISALC : IuptkByAlkSALC1stOrd( SR_MW(ind_HOI), 0.01_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} I2O2 = 2.000AERI : IuptkBySulf1stOrd( SR_MW(ind_I2O2), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O2 = 2.000ISALA : IuptkBySALA1stOrd( SR_MW(ind_I2O2), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O2 = 2.000ISALC : IuptkBySALC1stOrd( SR_MW(ind_I2O2), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -1542,6 +1512,10 @@ I2O3 = 2.000ISALC : IuptkBySALC1stOrd( SR_MW(ind_I2O3), 0.02_dp, Stat I2O4 = 2.000AERI : IuptkBySulf1stOrd( SR_MW(ind_I2O4), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O4 = 2.000ISALA : IuptkBySALA1stOrd( SR_MW(ind_I2O4), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O4 = 2.000ISALC : IuptkBySALC1stOrd( SR_MW(ind_I2O4), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IONO = ISALA + HNO2 : IuptkByAlkSALA1stOrd( SR_MW(ind_IONO), 0.02_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} +IONO = ISALC + HNO2 : IuptkByAlkSALC1stOrd( SR_MW(ind_IONO), 0.02_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} +IONO2 = ISALA + HNO3 : IuptkByAlkSALA1stOrd( SR_MW(ind_IONO2), 0.01_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} +IONO2 = ISALC + HNO3 : IuptkByAlkSALC1stOrd( SR_MW(ind_IONO2), 0.01_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} IONO2 + H2O = HOI + HNO3 : IONO2uptkByH2O( State_Het ); {2021/09/16 XW, TSherwen} IONO + BrSALA = IBr + HNO2 : IbrkdnByAcidBrSALA( SR_MW(ind_IONO), C(ind_IONO), 0.02_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} IONO + BrSALC = IBr + HNO2 : IbrkdnByAcidBrSALC( SR_MW(ind_IONO), C(ind_IONO), 0.02_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} @@ -1556,7 +1530,7 @@ HOI + BrSALC = IBr : IbrkdnByAcidBrSALC( SR_MW(ind_HOI), C(ind_HOI), 0 HOI + SALACL = ICl : IbrkdnByAcidSALACl( SR_MW(ind_HOI), C(ind_HOI), 0.01_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} HOI + SALCCL = ICl : IbrkdnByAcidSALCCl( SR_MW(ind_HOI), C(ind_HOI), 0.01_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} GLYX = SOAGX : GLYXuptk1stOrd( SR_MW(ind_GLYX), State_Het); {2017/06/15; Marais2016, EAM} -MGLY = SOAGX : MGLYuptk1stOrd( SR_MW(ind_MGLY), State_Het); {2017/06/15; Marais2016, EAM} +MGLY = 1.500SOAGX : MGLYuptk1stOrd( SR_MW(ind_MGLY), State_Het); {2017/06/15; Marais2016, EAM; 2023/04/18; Bates2023; KHB} IEPOXA = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_IEPOXA), .FALSE., State_Het ); {2017/06/15; Marais2016, EAM} IEPOXB = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_IEPOXB), .FALSE., State_Het ); {2017/06/15; Marais2016, EAM} IEPOXD = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_IEPOXD), .FALSE., State_Het ); {2017/06/15; Marais2016, EAM} @@ -1566,8 +1540,8 @@ R4N2 = IONITA : VOCuptk1stOrd( SR_MW(ind_R4N2), 5.0E-3_dp, State_ MONITS = MONITA : VOCuptk1stOrd( SR_MW(ind_MONITS), 1.0E-2_dp, State_Het ); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} MONITU = MONITA : VOCuptk1stOrd( SR_MW(ind_MONITU), 1.0E-2_dp, State_Het ); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} HONIT = MONITA : VOCuptk1stOrd( SR_MW(ind_HONIT), 1.0E-2_dp, State_Het ); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} -PYAC = SOAGX : MGLYuptk1stOrd( SR_MW(ind_PYAC), State_Het ); {2019/11/06; Bates2019; KHB} -HMML = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_HMML), .TRUE., State_Het); {2019/11/06; Bates2019; KHB} +PYAC = 1.500SOAGX : MGLYuptk1stOrd( SR_MW(ind_PYAC), State_Het ); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} +HMML = 0.800SOAIE : IEPOXuptk1stOrd( SR_MW(ind_HMML), .TRUE., State_Het); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} IHN1 = IONITA : VOCuptk1stOrd( SR_MW(ind_IHN1), 5.0E-3_dp, State_Het ); {2019/11/06; Bates2019; KHB} IHN2 = IONITA : VOCuptk1stOrd( SR_MW(ind_IHN2), 5.0E-2_dp, State_Het ); {2019/11/06; Bates2019; KHB} IHN3 = IONITA : VOCuptk1stOrd( SR_MW(ind_IHN3), 5.0E-3_dp, State_Het ); {2019/11/06; Bates2019; KHB} @@ -1605,14 +1579,14 @@ ALD2 + hv = 0.880MO2 + HO2 + 0.880CO + 0.120MCO3 : PHOTOL(61); {2014/12/19; FAST-JX v7.0 fix; JMAO} ALD2 + hv = CH4 + CO : PHOTOL(62); PAN + hv = 0.700MCO3 + 0.700NO2 + - 0.300MO2 + 0.300NO3 : PHOTOL(59); {2014/05/23; Eastham2014; JMAO,SDE} -RCHO + hv = 0.500OTHRO2 + HO2 + CO + - 0.070A3O2 + 0.270B3O2 : PHOTOL(70); {2019/05/10; Fisher2018; JAF} + 0.300MO2 + 0.300NO3 + 0.300CO2 : PHOTOL(59); {2014/05/23; Eastham2014; JMAO,SDE; 2023/04/18; Bates2023; KHB} +RCHO + hv = 0.490OTHRO2 + HO2 + CO + + 0.070A3O2 + 0.270B3O2 : PHOTOL(70); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} ACET + hv = MCO3 + MO2 : PHOTOL(76); ACET + hv = 2.000MO2 + CO : PHOTOL(77); -MEK + hv = 0.850MCO3 + 0.425OTHRO2 + +MEK + hv = 0.850MCO3 + 0.415OTHRO2 + 0.150MO2 + 0.150RCO3 + 0.060A3O2 + - 0.230B3O2 : PHOTOL(69); {2019/05/10; Fisher2018; JAF} + 0.230B3O2 : PHOTOL(69); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} GLYC + hv = 0.900CH2O + 1.730HO2 + CO + 0.070OH + 0.100MOH : PHOTOL(68); {2014/05/23; Eastham2014; JMAO,SDE} GLYX + hv = 2.000HO2 + 2.000CO : PHOTOL(72); @@ -1628,14 +1602,19 @@ PRPN + hv = OH + HO2 + RCHO + NO2 : PHOTOL(79); ETP + hv = OH + HO2 + ALD2 : PHOTOL(80); RA3P + hv = OH + HO2 + RCHO : PHOTOL(81); RB3P + hv = OH + HO2 + ACET : PHOTOL(82); -R4P + hv = OH + HO2 + RCHO : PHOTOL(83); +R4P + hv = OH + HO2 + 1.500RCHO : PHOTOL(83); {2023/04/18; Bates2023; KHB} +ALK4P + hv = OH + HO2 + 1.500RCHO : PHOTOL(83); {2023/05/14; Brewer2023; JFB} PP + hv = OH + HO2 + ALD2 + CH2O : PHOTOL(84); -RP + hv = OH + HO2 + ALD2 : PHOTOL(85); -R4N2 + hv = NO2 + 0.320ACET + 0.190MEK + - 0.180MO2 + 0.270HO2 + 0.320ALD2 + - 0.130RCHO + 0.050A3O2 + 0.180B3O2 + - 0.320OTHRO2 : PHOTOL(98); -MAP + hv = OH + MO2 : PHOTOL(99); +RP + hv = OH + HO2 + ALD2 + MO2 : PHOTOL(85); {2023/04/18; Bates2023; KHB} +R4N2 + hv = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : PHOTOL(98); {2023/04/18; Bates2023; KHB} +ALK4N2 + hv = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : PHOTOL(98); {2023/05/14; Brewer2023; JFB} +MAP + hv = OH + MO2 + CO2 : PHOTOL(99); {2023/04/18; Bates2023; KHB} Br2 + hv = 2.000Br : PHOTOL(23); {2012/06/07; Parrella2012; JPP} BrO + hv = Br + O : PHOTOL(28); {2014/02/03; Eastham2014; SDE} HOBr + hv = Br + OH : PHOTOL(32); {2012/06/07; Parrella2012; JPP} @@ -1740,7 +1719,7 @@ HPALD1 + hv = 0.888CO + 1.662OH + 0.552MCRENOL + 0.224C4HVP1 : PHOTOL(142); {2019/11/06; Bates2019; KHB} HPALD2 + hv = 0.818CO + 1.637OH + 0.182HO2 + 0.182IDC + 0.182MVKPC + - 0.455MCRENOL + 0.182C4HVP2 : PHOTOL(143); {2019/11/06; Bates2019; KHB} + 0.454MCRENOL + 0.182C4HVP2 : PHOTOL(143); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} HPALD3 + hv = CO + OH + HO2 + MVK : PHOTOL(144); {2019/11/06; Bates2019; KHB} HPALD4 + hv = CO + OH + HO2 + MACR : PHOTOL(145); {2019/11/06; Bates2019; KHB} IHN1 + hv = NO2 + 0.45HC5A + 0.45HO2 + @@ -1759,13 +1738,13 @@ ICN + hv = NO2 + 0.839CO + 0.645OH + 0.481MCRENOL + 0.128C4HVP2 + 0.068C4HVP1 : PHOTOL(106); {2019/11/06; Bates2019; KHB} IDN + hv = 1.555NO2 + 0.5GLYC + 0.5HAC + 0.05MVK + 0.005MACR + 0.055CH2O + - 0.227INA + 0.228ICN + 0.228HO2 : PHOTOL(78); {2019/11/06; Bates2019; KHB} + 0.222INA + 0.223ICN + 0.228HO2 : PHOTOL(78); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} ICPDH + hv = CO + 1.5HO2 + 0.5OH + 0.5MCRHP + 0.35MVKDH + 0.15MCRDH : PHOTOL(153); {2019/11/06; Bates2019; KHB} -ICPDH + hv = OH + HO2 + 0.122CO + - 0.1CH2O + 0.1MVKHCB + 0.438HAC + - 0.438GLYX + 0.088GLYC + 0.088MGLY + - 0.122MCRDH : PHOTOL(154); {2019/11/06; Bates2019; KHB} +ICPDH + hv = OH + HO2 + 0.163CO + + 0.133CH2O + 0.133MVKHCB + 0.586HAC + + 0.586GLYX + 0.118GLYC + 0.118MGLY + + 0.163MCRDH : PHOTOL(154); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} IDHDP + hv = 1.25OH + 0.25GLYC + 0.25HAC + 0.75ICPDH + 0.75HO2 : PHOTOL(155); {2019/11/06; Bates2019; KHB} IDHPE + hv = OH + HO2 + 0.429MGLY + diff --git a/KPP/custom/custom.kpp b/KPP/custom/custom.kpp index c3a249130..f3774d1e3 100644 --- a/KPP/custom/custom.kpp +++ b/KPP/custom/custom.kpp @@ -1,17 +1,18 @@ -#MINVERSION 2.5.0 { Need this version of KPP or later } -#INTEGRATOR rosenbrock { Use Rosenbrock integration method } -#LANGUAGE Fortran90 { Generate solver code in Fortran90 ... } -#UPPERCASEF90 on { ... with .F90 suffix (instead of .f90) } -#DRIVER none { Do not create gckpp_Main.F90 } -#HESSIAN off { Do not create the Hessian matrix } -#MEX off { MEX is for Matlab, so skip it } -#STOICMAT off { Do not create stoichiometric matrix } +#MINVERSION 3.0.0 { Need this version of KPP or later } +#INTEGRATOR rosenbrock_autoreduce { Use Rosenbrock integration method } +#AUTOREDUCE on { ...w/ autoreduce enabled but optional } +#LANGUAGE Fortran90 { Generate solver code in Fortran90 ... } +#UPPERCASEF90 on { ...w/ .F90 suffix (instead of .f90) } +#DRIVER none { Do not create gckpp_Main.F90 } +#HESSIAN off { Do not create the Hessian matrix } +#MEX off { MEX is for Matlab, so skip it } +#STOICMAT off { Do not create stoichiometric matrix } #INCLUDE custom.eqn { Chemical reactions for fullchem mechanism } #FAMILIES { Chemical families for prod/loss diagnostic } -POx : O3 + NO2 + 2NO3 + PAN + PPN + MPAN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + MVKN + MCRHN + MCRHNB + PROPNN + R4N2 + PRN1 + PRPN + R4N1 + HONIT + MONITS + MONITU + OLND + OLNN + IHN1 + IHN2 + IHN3 + IHN4 + INPB + INPD + ICN + 2IDN + ITCN + ITHN + ISOPNOO1 + ISOPNOO2 + INO2B + INO2D + INA + IDHNBOO + IDHNDOO1 + IDHNDOO2 + IHPNBOO + IHPNDOO + ICNOO + 2IDNOO + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4; -LOx : O3 + NO2 + 2NO3 + PAN + PPN + MPAN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + MVKN + MCRHN + MCRHNB + PROPNN + R4N2 + PRN1 + PRPN + R4N1 + HONIT + MONITS + MONITU + OLND + OLNN + IHN1 + IHN2 + IHN3 + IHN4 + INPB + INPD + ICN + 2IDN + ITCN + ITHN + ISOPNOO1 + ISOPNOO2 + INO2B + INO2D + INA + IDHNBOO + IDHNDOO1 + IDHNDOO2 + IHPNBOO + IHPNDOO + ICNOO + 2IDNOO + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4; +POx : O3 + NO2 + 2NO3 + PAN + PPN + MPAN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + MVKN + MCRHN + MCRHNB + PROPNN + R4N2 + PRN1 + PRPN + R4N1 + HONIT + MONITS + MONITU + OLND + OLNN + IHN1 + IHN2 + IHN3 + IHN4 + INPB + INPD + ICN + 2IDN + ITCN + ITHN + ISOPNOO1 + ISOPNOO2 + INO2B + INO2D + INA + IDHNBOO + IDHNDOO1 + IDHNDOO2 + IHPNBOO + IHPNDOO + ICNOO + 2IDNOO + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4 + NIT + NITs; +LOx : O3 + NO2 + 2NO3 + PAN + PPN + MPAN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + MVKN + MCRHN + MCRHNB + PROPNN + R4N2 + PRN1 + PRPN + R4N1 + HONIT + MONITS + MONITU + OLND + OLNN + IHN1 + IHN2 + IHN3 + IHN4 + INPB + INPD + ICN + 2IDN + ITCN + ITHN + ISOPNOO1 + ISOPNOO2 + INO2B + INO2D + INA + IDHNBOO + IDHNDOO1 + IDHNDOO2 + IHPNBOO + IHPNDOO + ICNOO + 2IDNOO + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4 + NIT + NITs; PCO : CO; LCO : CO; PSO4 : SO4; @@ -33,6 +34,5 @@ PH2O2 : H2O2; #ENDINLINE #INLINE F90_GLOBAL -! Inline common variables into gckpp_Global.F90 #include "commonIncludeVars.H" #ENDINLINE diff --git a/KPP/custom/fullchem_AutoReduceFuncs.F90 b/KPP/custom/fullchem_AutoReduceFuncs.F90 new file mode 120000 index 000000000..7b0fcb2e5 --- /dev/null +++ b/KPP/custom/fullchem_AutoReduceFuncs.F90 @@ -0,0 +1 @@ +../fullchem/fullchem_AutoReduceFuncs.F90 \ No newline at end of file diff --git a/KPP/custom/gckpp.map b/KPP/custom/gckpp.map deleted file mode 100644 index 19c760f2f..000000000 --- a/KPP/custom/gckpp.map +++ /dev/null @@ -1,170 +0,0 @@ -! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -! -! Map File with Human-Readable Information -! -! Generated by KPP-2.5.0 symbolic chemistry Kinetics PreProcessor -! (https:/github.com/KineticPreProcessor/KPP -! KPP is distributed under GPL, the general public licence -! (http://www.gnu.org/copyleft/gpl.html) -! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa -! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech -! With important contributions from: -! M. Damian, Villanova University, USA -! R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany -! M. Long, Harvard University, USA -! H. Lin, Harvard University, USA -! R. Yantosca, Harvard University, USA -! -! File : gckpp.map -! Equation file : gckpp.kpp -! Output root filename : gckpp -! -! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - -### Options ------------------------------------------- - -FUNCTION - AGGREGATE -JACOBIAN - SPARSE W/ ACCOUNT FOR LU DECOMPOSITION FILL-IN -DOUBLE - ON -REORDER - ON - -### Parameters ---------------------------------------- - -! NSPEC - Number of chemical species - INTEGER, PARAMETER :: NSPEC = 291 -! NVAR - Number of Variable species - INTEGER, PARAMETER :: NVAR = 287 -! NVARACT - Number of Active species - INTEGER, PARAMETER :: NVARACT = 259 -! NFIX - Number of Fixed species - INTEGER, PARAMETER :: NFIX = 4 -! NREACT - Number of reactions - INTEGER, PARAMETER :: NREACT = 913 -! NVARST - Starting of variables in conc. vect. - INTEGER, PARAMETER :: NVARST = 1 -! NFIXST - Starting of fixed in conc. vect. - INTEGER, PARAMETER :: NFIXST = 288 - -### Species ------------------------------------------- - -Variable species - 1 = CH2I2 (r) 97 = CH3Br (r) 193 = ATOOH (r) - 2 = CH2IBr (r) 98 = ICl (r) 194 = PROPNN (r) - 3 = CH2ICl (r) 99 = BALD (r) 195 = MCRHN (r) - 4 = AERI (n) 100 = CH3Cl (r) 196 = MONITU (r) - 5 = AONITA (n)101 = HNO4 (r) 197 = PRN1 (r) - 6 = CO2 (n) 102 = ETO (r) 198 = R4N2 (r) - 7 = INDIOL (n)103 = ClOO (r) 199 = IONO (r) - 8 = ISALA (n) 104 = PYAC (r) 200 = MVKOHOO (r) - 9 = ISALC (n) 105 = BENZP (r) 201 = MCROHOO (r) - 10 = LBRO2H (n)106 = IDC (r) 202 = ICPDH (r) - 11 = LBRO2N (n)107 = OClO (r) 203 = MACR1OO (r) - 12 = BRO2 (r) 108 = SO4 (r) 204 = PO2 (r) - 13 = LISOPOH (n)109 = ETP (r) 205 = ETHLN (r) - 14 = LISOPNO3 (n)110 = CSL (r) 206 = NPHEN (r) - 15 = LNRO2H (n)111 = PP (r) 207 = HCOOH (r) - 16 = LNRO2N (n)112 = PRPN (r) 208 = H2O2 (r) - 17 = NRO2 (r) 113 = ALK4 (r) 209 = ITCN (r) - 18 = NAP (r) 114 = ETHP (r) 210 = IHN4 (r) - 19 = LTRO2H (n)115 = IEPOXD (r)211 = OLNN (r) - 20 = LTRO2N (n)116 = MVKDH (r) 212 = OLND (r) - 21 = TRO2 (r) 117 = HPALD2OO (r)213 = ETO2 (r) - 22 = LVOCOA (n)118 = PHEN (r) 214 = MOH (r) - 23 = LVOC (r) 119 = PIP (r) 215 = ACTA (r) - 24 = LXRO2H (n)120 = HPALD1OO (r)216 = IHN1 (r) - 25 = LXRO2N (n)121 = C3H8 (r) 217 = IHPNBOO (r) - 26 = XRO2 (r) 122 = IDCHP (r) 218 = GLYX (r) - 27 = MSA (n) 123 = INA (r) 219 = ACET (r) - 28 = SO4s (n) 124 = Br2 (r) 220 = ISOP (r) - 29 = SOAGX (n) 125 = HPALD3 (r)221 = LIMO2 (r) - 30 = SOAIE (n) 126 = HPALD4 (r)222 = MEK (r) - 31 = POx (n) 127 = IEPOXA (r)223 = IO (r) - 32 = LOx (n) 128 = IEPOXB (r)224 = IEPOXBOO (r) - 33 = PCO (n) 129 = EOH (r) 225 = IEPOXAOO (r) - 34 = LCO (n) 130 = MCRDH (r) 226 = MVKHP (r) - 35 = PSO4 (n) 131 = HONIT (r) 227 = MCRHP (r) - 36 = LCH4 (n) 132 = BrCl (r) 228 = MGLY (r) - 37 = PH2O2 (n) 133 = MACR1OOH (r)229 = IDHNBOO (r) - 38 = I2O4 (r) 134 = MP (r) 230 = CH2OO (r) - 39 = CH3CCl3 (r)135 = SALCAL (r)231 = ClNO2 (r) - 40 = I2O2 (r) 136 = IHN2 (r) 232 = GLYC (r) - 41 = MONITA (r)137 = IHN3 (r) 233 = A3O2 (r) - 42 = CFC114 (r)138 = MCT (r) 234 = PIO2 (r) - 43 = CH3I (r) 139 = I2 (r) 235 = OTHRO2 (r) - 44 = H1301 (r) 140 = IDHDP (r) 236 = ICN (r) - 45 = H2402 (r) 141 = C4HVP1 (r)237 = MVKN (r) - 46 = CFC115 (r)142 = C4HVP2 (r)238 = ITHN (r) - 47 = I2O3 (r) 143 = IDNOO (r) 239 = IDN (r) - 48 = CFC113 (r)144 = SALAAL (r)240 = INO2B (r) - 49 = PPN (r) 145 = AROMP5 (r)241 = INO2D (r) - 50 = BrNO2 (r) 146 = ICNOO (r) 242 = IHOO1 (r) - 51 = CCl4 (r) 147 = INPD (r) 243 = IHOO4 (r) - 52 = CFC11 (r) 148 = ISOPNOO2 (r)244 = MVK (r) - 53 = CFC12 (r) 149 = MPAN (r) 245 = MACRNO2 (r) - 54 = C2H2 (r) 150 = MTPA (r) 246 = HAC (r) - 55 = H1211 (r) 151 = MTPO (r) 247 = MACR (r) - 56 = INO (r) 152 = MVKPC (r) 248 = ATO2 (r) - 57 = N2O (r) 153 = RIPA (r) 249 = KO2 (r) - 58 = NIT (r) 154 = ROH (r) 250 = RCO3 (r) - 59 = NITs (r) 155 = AROMP4 (r)251 = R4N1 (r) - 60 = BENZ (r) 156 = BENZO (r) 252 = R4O2 (r) - 61 = N (r) 157 = C2H6 (r) 253 = B3O2 (r) - 62 = OCS (r) 158 = RIPB (r) 254 = PRPE (r) - 63 = PAN (r) 159 = IDHPE (r) 255 = RCHO (r) - 64 = ETHN (r) 160 = MCRENOL (r)256 = HOBr (r) - 65 = HI (r) 161 = RIPD (r) 257 = MCO3 (r) - 66 = MAP (r) 162 = ISOPNOO1 (r)258 = CO (r) - 67 = BZCO3H (r)163 = IDHNDOO2 (r)259 = ClNO3 (r) - 68 = CHCl3 (r) 164 = IDHNDOO1 (r)260 = HNO3 (r) - 69 = IBr (r) 165 = LIMO (r) 261 = ALD2 (r) - 70 = CH2Br2 (r)166 = MVKHC (r) 262 = CH2O (r) - 71 = MPN (r) 167 = RIPC (r) 263 = MO2 (r) - 72 = Cl2O2 (r) 168 = HPETHNL (r)264 = HOI (r) - 73 = CH2Cl2 (r)169 = N2O5 (r) 265 = I (r) - 74 = CHBr3 (r) 170 = ICHE (r) 266 = IONO2 (r) - 75 = C2H4 (r) 171 = MCRHNB (r)267 = HOCl (r) - 76 = TOLU (r) 172 = BrNO3 (r) 268 = O1D (r) - 77 = XYLE (r) 173 = H (r) 269 = O3 (r) - 78 = HCFC123 (r)174 = MONITS (r)270 = NO2 (r) - 79 = HCFC141b (r)175 = ETOO (r) 271 = HCl (r) - 80 = HCFC142b (r)176 = BZCO3 (r) 272 = HBr (r) - 81 = HCFC22 (r)177 = INPB (r) 273 = H2O (r) - 82 = DMS (r) 178 = AROMRO2 (r)274 = BrO (r) - 83 = HMHP (r) 179 = IHPOO1 (r)275 = BrSALA (r) - 84 = HMML (r) 180 = IHPOO2 (r)276 = BrSALC (r) - 85 = HMS (r) 181 = MVKHCB (r)277 = ClO (r) - 86 = IPRNO3 (r)182 = HPALD1 (r)278 = SALACL (r) - 87 = MENO3 (r) 183 = IHPOO3 (r)279 = OH (r) - 88 = ETNO3 (r) 184 = HPALD2 (r)280 = NO (r) - 89 = NPRNO3 (r)185 = IHPNDOO (r)281 = HO2 (r) - 90 = OIO (r) 186 = CH4 (r) 282 = SALCCL (r) - 91 = R4P (r) 187 = BENZO2 (r)283 = NO3 (r) - 92 = RA3P (r) 188 = HNO2 (r) 284 = O (r) - 93 = RB3P (r) 189 = HC5A (r) 285 = Cl (r) - 94 = RP (r) 190 = ICHOO (r) 286 = SO2 (r) - 95 = BZPAN (r) 191 = CH3CHOO (r)287 = Br (r) - 96 = IONITA (r)192 = Cl2 (r) - -Fixed species - 1 = H2 (r) 3 = O2 (r) - 2 = N2 (r) 4 = RCOOH (n) - -### Subroutines --------------------------------------- - -SUBROUTINE Fun ( V, F, RCT, Vdot, Aout, Vdotout ) -SUBROUTINE Fun_SPLIT ( V, F, RCT, P_VAR, D_VAR ) -SUBROUTINE CalcStoichNum ( StoichNum ) -SUBROUTINE Jac_SP ( V, F, RCT, JVS ) -SUBROUTINE Jac_SP_Vec ( JVS, UV, JUV ) -SUBROUTINE JacTR_SP_Vec ( JVS, UV, JTUV ) -SUBROUTINE KppSolve ( JVS, X ) -SUBROUTINE KppSolveTR ( JVS, X, XX ) -SUBROUTINE Initialize ( ) -SUBROUTINE Shuffle_user2kpp ( V_USER, V ) -SUBROUTINE Shuffle_kpp2user ( V, V_USER ) -SUBROUTINE Update_RCONST ( ) -SUBROUTINE Update_PHOTO ( ) -SUBROUTINE GetMass ( CL, Mass ) -SUBROUTINE ComputeFamilies ( V, FAM ) diff --git a/KPP/fullchem/CHANGELOG_fullchem.md b/KPP/fullchem/CHANGELOG_fullchem.md new file mode 100644 index 000000000..bdb34736f --- /dev/null +++ b/KPP/fullchem/CHANGELOG_fullchem.md @@ -0,0 +1,125 @@ +This file documents all notable changes to the GEOS-Chem `fullchem` chemistry mechanism. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +# Mechanism history + +## [14.5.0] - TBD +- Added four new species ALK4N1, ALK4N2, ALK4O2, and ALK4P to address issues in ALK4 and R4N2 chemistry following Brewer et al. (2023, JGR) +- Added ALK4N1 and ALK4N2 to Ox family in KPP + +## [14.4.0] - 2024-05-30 +- Bug fix: Change `3.4.e-31` to `3.4.d-31` in `NO2 + O = NO + O2` rxn +- Update rxns with zero Arrhenius `B` parameters to use function `GCARR_ac` instead of `GCARR_abc` + +## [14.3.0] - 2024-02-07 +### Added +- Added PH2SO2 and PSO4AQ to track production of SO4 for use in TOMAS + +### Changed +- Updated rate coefficients and products in 63 reactions per JPL / IUPAC recommendations (JPL 19-5; Bates2023) +- Consolidated product branches to remove 25 reactions (Bates2023 Table S4) + +### Fixed +- Fixed C and N balance in 63 reactions (Bates2023 Table S2) +- Replaced the HMS + OH -> 2SO4 + CH2O - SO2 reaction with HMS + OH + SO2 -> 2SO4 + CH2O reaction and divided the rate constant be [SO2] to improve stability + +## [14.2.1] - Oct 2023 +### Changed +- The `fullchem` mechanism must now be built with KPP 3.0.0 or later + +## [14.2.0] - Oct 2023 +### Added +- Added lumped furan chemistry following Carter2020 +- Restored sink reactions for HOI, IONO, IONO2 +- Added S(IV)+HOBr and S(IV)+HOCl rxns (they had been inadvertently omitted) +- Added nitrate aerosol (NIT, NITs) to Ox family in `gckpp.kpp` + +### Changed +- Set `k(SALAAL+SO2)` and `k(SALCAL+SO2)` to zero if O3 < 1e10 molec/cm3 + +### Fixed +- Fix bugs in HOBr uptake rate calculation in `fullchem_RateLawFuncs.F90` +- Now cap `State_Het%f_Alk_SSA` and `State_Het%f_Alk_SSC` at 1.0 +- Unbalanced rxn IONO = ISALA is now balanced: IONO = ISALA + HNO2 +- Unbalanced rxn IONO = ISALC is now balanced: IONO = ISALC + HNO2 +- Unbalanced rxn IONO2 = ISALA is now balanced: IONO2 = ISALA + HNO3 +- Unbalanced rxn IONO2 = ISALC is now balanced: IONO2 = ISALC + HNO3 + +### Changed + - Restored sink reactions for HOI, IONO, IONO2 + - Use `GCARR_ac` for rxns where the Arrhenius `B` parameter is zero + +## [14.1.0] - Feb 2023 +### Added +- MO2 + NO3 reaction (IUPAC ROO_19) + +### Fixed +- Bug fix: the "a" coefficient in rxn ETO = HO2 + 2.000CH2O was changed from 9.5d-13 (incorrect) to 9.5d+13. See geoschem/geos-chem #1274. +- Bug fixes: HOBr + SO2 and HOCl + SO2 should produce SO4 (not SO4s) + +## [13.3.0] - Sep 2021 +### Added +- HMS chemistry (Moch2020) +- C2H2/C2H4 chemistry (Kwon2020) +- CH3O2 + OH reaction (Bates2021a) +- Sulfur reactions for future development (commented out) +- Aromatic SOA reactions (Bates2021b) + +## [13.3.0] - Nov 2022 +### Changed +- Use double precision numeric constants to each numeric value (e.g. `1.0d0` instead of `1.0e0`). This will prevent having to call the `DBLE()` functions in the rate law functions, which wastes CPU cycles, and also is a "lossy" conversion. (BMY) + +## [12.8.0] - Feb 2020 +### Changed +- Update isoprene chemistry from Bates2019 (KHB) + +## [12.7.0] -- Dec 2019 +### Added +- MENO3, ETNO3, PRNO3 chemistry from Fisher2018 (JAF) +- "OTHRO2", which is equivalent to ETO2 but is not derived from C2H6 oxidation. Necessary to prevent overestimates of ETNO3. All ETO2 reactions are duplicated except ETO2+NO->ETNO3 channel (JAF) + +### Changed +- Make MOH an active species (XC, DBM) + +### Removed +- Old MNO3 species (same as MENO3 but not actually used (JAF) + +## [12.6.0] -- Jul 2019 +### Added +- Photolysis of NITs (off by default) (TMS, PK) +- Aerosol heterogeneous uptake for NOx (CDH) + +## [v11-02d] - Sep 2017 +### Added +- Halogen chemistry from Sherwen2016b/Sherwen2017 (TS,JAS,SDE,LZHU) +- HOBr + S(IV) from Chen2017 (QJC) + +## [v11-02c] - Jul 2017 +### Added +- Isoprene SOA updates from Marais2016 (EAM,MPS) +- Fixes for carbon-creating reactions (SAS,BHH,MJE) + +### Changed +- Updated isoprene and monoterpene chemistry (KRT,JAF,CCM,EAM,KHB,RHS) +- Based on Travis2016, Fisher2016, ChanMiller2017, Marais2016 +- Add Bates2014 epoxide scheme +- Update isoprene nitrate chemistry following Lee2014 +- Add Muller2014 fast photolysis of carbonyl nitrates +- Add HNO2 chemistry from Lee2014 +- Updated product yields and rx rate for RIO2+RIO2 (Xie2013) + +## [v11-02a] - Mar 2017 +### Changed +- Update rate constants based on JPL 15-10 (MJE,BHH) +- See wiki.geos-chem.org/Updates_in_JPL_Publication_15-10 +- PAN chemistry updates (EVF) +- Added several new NMVOCs. The extended mechanism includes ethanol, benzene, toluene and ethylbenzene (lumped), xylenes and trimethyl benzenes (lumped), and monoterpenes (lumped). +- Treatment of monoterpene oxidation is adopted from the RACM2 chemical mechanism (Goliff et al., 2013), lumping terpenes with one double bond (alpha-pinene, beta-pinene, sabinene, delta-3-carene) into one proxy. + +### Fixed +- ALK4 lumping issue in R4O2 + NO reaction (BHH) + +## [v11-01g] - Sep 2016 +### Added +- Initial version for FlexChem (MSL,MJE,MPS,EWL) diff --git a/KPP/fullchem/CMakeLists.txt b/KPP/fullchem/CMakeLists.txt index 858022033..9895eb364 100755 --- a/KPP/fullchem/CMakeLists.txt +++ b/KPP/fullchem/CMakeLists.txt @@ -61,3 +61,17 @@ target_compile_options(KPP $<$:-r8> $<$:-fdefault-real-8 -fdefault-double-8> ) + +# FOR GFORTRAN ONLY: Disable variable tracking for gckpp_Jacobian.F90 in the +# KPP/fullchem mechanism generated with KPP. This will avoid a compiler +# warning and a restart of the KPP library build. This only has to be done +# for release types "Release" and "RelWithDebugInfo". +# -- Bob Yantosca (16 Feb 2023) +if("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU") + if(NOT ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Debug")) + set_source_files_properties(gckpp_Jacobian.F90 + PROPERTIES + COMPILE_OPTIONS -fno-var-tracking-assignments + ) + endif() +endif() diff --git a/KPP/fullchem/commonIncludeVars.H b/KPP/fullchem/commonIncludeVars.H index 05c3d0b41..b7b8881d7 100644 --- a/KPP/fullchem/commonIncludeVars.H +++ b/KPP/fullchem/commonIncludeVars.H @@ -13,7 +13,7 @@ ! Species molecular weight [g/mole] REAL(dp) :: MW(NSPEC) - ! Square root of species molecular weight [g/mole] + ! Square root of species molecular weight [g/mole]^1/2 REAL(dp) :: SR_MW(NSPEC) ! Henry's law constants @@ -44,14 +44,15 @@ REAL(dp) :: NUMDEN !$OMP THREADPRIVATE( NUMDEN ) - ! Pressure and relative humidity + ! Pressure [hPa] REAL(dp) :: PRESS !$OMP THREADPRIVATE( PRESS ) + ! Relative humidity [%] REAL(dp) :: RELHUM !$OMP THREADPRIVATE( RELHUM ) - ! Cosine of solar zenith angle + ! Cosine of solar zenith angle [unitless] REAL(dp) :: SUNCOS !$OMP THREADPRIVATE( SUNCOS ) @@ -59,12 +60,11 @@ ! Rate array variables (used by more than one mechanism) !========================================================================= - ! Photolysis rates (increase size if necessary) + ! Photolysis rates [1/s] (increase size if necessary) ! Used by fullchem and Hg mechanisms REAL(dp) :: PHOTOL(200) !$OMP THREADPRIVATE( PHOTOL ) - !========================================================================= ! Variables specific to the "fullchem" mechanism !========================================================================== @@ -81,7 +81,7 @@ REAL(dp) :: EIGHT_RSTARG_T !$OMP THREADPRIVATE( EIGHT_RSTARG_T ) - ! H2O concentration + ! H2O concentration [molec/cm3] REAL(dp) :: H2O !$OMP THREADPRIVATE( H2O ) @@ -103,6 +103,12 @@ REAL(dp) :: H_PLUS !$OMP THREADPRIVATE( H_PLUS ) + ! Enhanced sulfate production from SO2 oxidation by HOBr, HOCl, + ! and O3 in size-resolved cloud droplets [cm3/molec/s] + ! -- Becky Alexander (30 Jan 2023) + REAL(dp) :: SRHOBr, SRHOCl, SRO3 + !$OMP THREADPRIVATE( SRHOBr, SRHOCl, SRO3 ) + TYPE, PUBLIC :: HetState REAL(dp) :: AVO ! Avogadro's constant [molec/mol] LOGICAL :: debugBox ! Are we in a debugging box? @@ -115,7 +121,7 @@ REAL(dp) :: aClVol ! Fine SSA+SNA aerosol volume [cm3/cm3] REAL(dp) :: aIce ! Ice surface area [cm2/cm3] REAL(dp) :: aLiq ! Liquid surface area [cm2/cm3] - REAL(dp) :: aWater(2) ! ISORROPIA aerosol water (fine & coarse) + REAL(dp) :: aWater(2) ! ISORROPIA/HETP aerosol water (fine & coarse) REAL(dp) :: Br_conc_CldA ! Br- in cloud (A=fine SSA) [mol/kg H2O] REAL(dp) :: Br_conc_CldC ! Br- in cloud (C=coarse SSA) [mol/kg H2O] REAL(dp) :: Br_conc_CldG ! Br- in cloud (G=gas-phase) [mol/kg H2O] @@ -175,7 +181,10 @@ REAL(dp) :: qLIq ! Water mixing ratio [kg/kg] REAL(dp) :: rIce ! Ice radius REAL(dp) :: rLiq ! Liquid radius - REAL(dp) :: ssAlk(2) ! Sea salt alk'nty (1=fine, 2=coarse) + REAL(dp) :: f_Acid_SSA ! Fraction of fine sea salt that is acidic + REAL(dp) :: f_Acid_SSC ! Fraction of coarse sea salt that is acidic + REAL(dp) :: f_Alk_SSA ! Fraction of fine sea salt that is alkaline + REAL(dp) :: f_Alk_SSC ! Fraction of coarse sea salt that is alkaline LOGICAL :: SSA_is_Alk ! Is fine sea-salt alkaline? LOGICAL :: SSA_is_Acid ! Is fine sea-salt acidic? LOGICAL :: SSC_is_Alk ! Is coarse sea-salt alkaline? @@ -183,8 +192,8 @@ REAL(dp) :: vAir ! Volume of air [cm3] REAL(dp) :: vIce ! Ice volume [cm3] REAL(dp) :: vLiq ! Liquid volume [cm3] - REAL(dp) :: wetArea(14) ! Aerosol specific wet sfc area [cm3/cm3] - REAL(dp) :: xArea(14) ! Aerosol specific sfc area [cm3/cm3] + REAL(dp) :: wetArea(14) ! Aerosol specific wet sfc area [cm2/cm3] + REAL(dp) :: xArea(14) ! Aerosol specific sfc area [cm2/cm3] REAL(dp) :: xH2O(14) ! Aerosol water content [cm3/cm3] REAL(dp) :: xRadi(14) ! Aerosol effective radius [cm] REAL(dp) :: xVol(14) ! Aerosol specific volume [cm3/cm3] @@ -194,6 +203,11 @@ LOGICAL :: cloudBox ! Are we in a box with cloud? REAL(dp) :: fracOrgAer ! Fraction of organic aerosol [1] REAL(dp) :: fracInorgAer ! Fraction of organic aerosol [1] + ! + ! Additional fields for GEOS runs + ! + LOGICAL :: TurnOffHetRates ! Turn off heterogeneous reactions in stratosphere? + END TYPE HetState TYPE(HetState), TARGET, PUBLIC :: State_Het !$OMP THREADPRIVATE( State_Het ) @@ -202,13 +216,14 @@ ! Variables specific to the carbon mechanism !========================================================================== - ! Array for strat CH4/CO/CO2 rates + ! Array for strat CH4/CO/CO2 rates [1/s] REAL(dp) :: K_STRAT(5) !$OMP THREADPRIVATE( K_STRAT ) - ! Array for trop CH4/CO/CO2 rates + ! Array for trop CH4/CO/CO2 rates [1/s] REAL(dp) :: K_TROP(5) !$OMP THREADPRIVATE( K_TROP ) + ! Are we in the tropopshere (1=yes, 0=no) REAL(dp) :: TROP !$OMP THREADPRIVATE( TROP ) diff --git a/KPP/fullchem/fullchem.eqn b/KPP/fullchem/fullchem.eqn index c3f8ad039..1940f289a 100644 --- a/KPP/fullchem/fullchem.eqn +++ b/KPP/fullchem/fullchem.eqn @@ -4,175 +4,105 @@ DESCRIPTION ------------------------------------------------------------------------------- -GEOS-Chem KPP file containing species and equations for the full chemistry +GEOS-Chem KPP file containing species and equations for the full chemistry (NOx-Ox-HC-Aer-Br-Cl-I) mechanism. =============================================================================== FILE HISTORY =============================================================================== -v11-01g (Sep 2016) ----------------------- +Version: 14.2.0 - (1) Initial version for FlexChem (MSL,MJE,MPS,EWL) - -v11-02a (Mar 2017) ----------------------- - - (1) Update rate constants based on JPL 15-10 (MJE,BHH) - - See wiki.geos-chem.org/Updates_in_JPL_Publication_15-10 - (2) Fix ALK4 lumping issue in R4O2 + NO reaction (BHH) - (3) PAN chemistry updates (EVF) - - Added several new NMVOCs. The extended mechanism includes ethanol, - benzene, toluene and ethylbenzene (lumped), xylenes and trimethyl - benzenes (lumped), and monoterpenes (lumped). - - Treatment of monoterpene oxidation is adopted from theRACM2 chemical - mechanism (Goliff et al., 2013), lumping terpenes with one double bond - (alpha-pinene, beta-pinene, sabinene, delta-3-carene) into one proxy. - -v11-02c (Jul 2017) ----------------------- - - (1) Add isoprene SOA updates from Marais2016 (EAM,MPS) - (2) Update isoprene and monoterpene chemistry (KRT,JAF,CCM,EAM,KHB,RHS) - - Based on Travis2016, Fisher2016, ChanMiller2017, Marais2016 - - Add Bates2014 epoxide scheme - - Update isoprene nitrate chemistry following Lee2014 - - Add Muller2014 fast photolysis of carbonyl nitrates - - Add HNO2 chemistry from Lee2014 - - Updated product yields and rx rate for RIO2+RIO2 (Xie2013) - (3) Add fixes for carbon-creating reactions (SAS,BHH,MJE) - -v11-02d (Sep 2017) ----------------------- - - (1) Add halogen chemistry from Sherwen2016b/Sherwen2017 (TS,JAS,SDE,LZHU) - (2) Add HOBr + S(IV) from Chen2017 (QJC) - -12.6.0 (Jul 2019) ------------------------ - - (1) Add photolysis of NITs (off by default) (TMS, PK) - (2) Aerosol heterogeneous uptake for NOx (CDH) - -12.7.0 (Dec 2019) ------------------------ - (1) Add MENO3, ETNO3, PRNO3 chemistry from Fisher2018 (JAF) - (2) Remove old MNO3 (same as MENO3 but not actually used (JAF) - (3) Add "OTHRO2" that is equivalent to ETO2 but is not derived from C2H6 - oxidation. Necessary to prevent overestimates of ETNO3. All ETO2 - reactions are duplicated except ETO2+NO->ETNO3 channel (JAF) - (4) Add MOH as active species (XC, DBM) - -12.8.0 (Feb 2020) ----------------------- - (1) Update isoprene chemistry from Bates2019 (KHB) - -Version 13.y.z (actual version TBA) (Dec 2020 onward) ------------------------------------------------------ - (1) Use double precision numeric constants to each numeric value (e.g. - 1.0d0 instead of 1.0e0). This will prevent having to call the DBLE() - functions in the rate law functions, which wastes CPU cycles, and - also is a "lossy" conversion. (BMY) - -13.3.0 (Sep 2021) ------------------- - (1) Added HMS chemistry (Moch2020) - -- note, currently done in sulfate_mod, equations are commented out - (2) Added C2H2/C2H4 chemistry (Kwon2020) - (3) Added CH3O2 + OH reaction (Bates2021a) - (4) Added sulfur reactions for future development (commented out) - (5) Added aromatic SOA reactions (Bates2021b) - -14.1.0 ------- - (1) Added MO2 + NO3 reaction (IUPAC ROO_19) - (2) Bug fix: the "a" coefficient in rxn ETO = HO2 + 2.000CH2O was changed - from 9.5d-13 (incorrect) to 9.5d+13. See geoschem/geos-chem #1274. - (3) Bug fixes: HOBr + SO2 and HOCl + SO2 should produce SO4 (not SO4s) +Please see "CHANGELOG_fullchem.md" in this folder for the revision history +of the fullchem mechanism. =============================================================================== -DEVELOPERS (alphabetical order; add your name!) +DEVELOPERS (initials and email/GitHub) =============================================================================== -BHH : Barron Henderson; barronh@gmail.com -BMY : Bob Yantosca; yantosca@seas.harvard.edu -CCM : Christopher Chan Miller; cmiller@fas.harvard.edu -CDH : Christopher Holmes; cdholmes@fsu.edu -DBM : Dylan Millet dbm@umn.edu -EAM : Eloise Marais; e.a.marais@bham.ac.uk -ECB : Ellie Browne eleanor.browne@colorado.edu -EVF : Emily Fischer; evf@rams.colostate.edu -EWL : Lizzie Lundgren; elundgren@seas.harvard.edu -FP : Fabien Paulot; fabien.paulot@noaa.gov -HOTP: Havala Pye; pye.havala@epa.gov -JAF : Jenny Fisher; jennyf@uow.edu.au -JAS : Johan Schmidt; johanalbrechtschmidt@gmail.com -JFB : Jared Brewer; jfbrewer@alumni.stanford.edu -JMAO: Jingqiu Mao; jmao2@alaska.edu -JMM : Jonathan Moch jmoch@g.harvard.edu -JPP : Justin Parrella; justin.parrella@gmail.com -KHB : Kelvin Bates; kelvin@caltech.edu -KRT : Katie Travis; ktravis@fas.harvard.edu -LZHU: Lei Zhu; leizhu@fas.harvard.edu -MJE : Mat Evans; mat.evans@york.ac.uk -MPS : Melissa Sulprizio; mpayer@seas.harvard.edu -MSL : Michael Long; msl3v@virginia.edu -PK : Prasad Kasibhatla; psk9@duke.edu -QJC : Qianjie Chen; chenqjie@uw.edu -RHS : Rebecca Schwantes; rschwant@caltech.edu -SAS : Sarah Safieddine; sarahsaf@mit.edu -SDE : Sebastian Eastham; seastham@seas.harvard.edu -TMS : Tomas Sherwen; tomas.sherwen@york.ac.uk -XC : Xin Chen; chen3849@umn.edu -XW : Xuan Wang; wangx@seas.harvard.edu +* BA : Becky Alexander : @beckyalexander +* BHH : Barron Henderson : @barronh +* BMY : Bob Yantosca : @yantosca +* CCM : Christopher Chan Miller : cmiller@fas.harvard.edu +* CDH : Christopher Holmes : @cdholmes +* DBM : Dylan Millet : @dylanbm +* EAM : Eloise Marais : @eamarais +* ECB : Ellie Browne : eleanor.browne@colorado.edu +* EVF : Emily Fischer : evf@rams.colostate.edu +* EWL : Lizzie Lundgren : @lizziel +* FP : Fabien Paulot : fabien.paulot@noaa.gov +* HOTP : Havala Pye : pye.havala@epa.gov +* JAF : Jenny Fisher : @jennyfisher +* JAS : Johan Schmidt : johanalbrechtschmidt@gmail.com +* JFB : Jared Brewer : @JFBrewer +* JMAO : Jingqiu Mao : @jingqiumao +* JMM : Jonathan Moch : jmoch@g.harvard.edu +* JPP : Justin Parrella : justin.parrella@gmail.com +* KHB : Kelvin Bates : @kelvinhb +* KRT : Katie Travis : @ktravis213 +* LZHU : Lei Zhu : leizhu@fas.harvard.edu +* MJE : Mat Evans : @msl3v +* MPS : Melissa Sulprizio : @msulprizio +* MSL : Michael Long : @msl3v +* PK : Prasad Kasibhatla : @pkasibhatla +* QJC : Qianjie Chen : chenqjie@uw.edu +* RHS : Rebecca Schwantes : rschwant@caltech.edu +* SAS : Sarah Safieddine : sarahsaf@mit.edu +* SDE : Sebastian Eastham : @sdeastham +* TMS : Tomas Sherwen : @tsherwen +* TSC : Therese Carter : @tscarter +* XC : Xin Chen : @xin-chen-github +* XW : Xuan Wang : @xuanw0316 =============================================================================== REFERENCES (alphabetical order) =============================================================================== -* Atkinson2003: Atkinson and Arey, Chem. Rev., doi:10.1021/cr0206420, 2003. -* Bates2014: Bates et al., J. Phys. Chem A, 118, doi:10.1021/jp4107958, 2014. -* Bates2019: Bates and Jacob, Atmos. Chem. Phys., doi:10.5194/acp-19-9613-2019, 2019. -* Bates2021a: Bates et al, JGR, https://doi.org/10.1029/2020JD033439, 2021. -* Bates2021b: Bates et al, ACP, https://doi.org/10.5194/acp-2021-605, 2021. -* Brewer2023: Brewer et al., JGR, doi:10.1029/2022JD037257, 2023. -* Browne2011: Browne et al., Atmos. Chem. Phys., doi:10.5194/acp-11-4209-2011, 2011. -* Browne2014: Browne et al., Atmos. Chem. Phys., doi:10.5194/acp-14-1225-2014, 2014. -* Chen2017: Chen et al., Geophys. Res. Lett., doi:10.1002/2017GL073812, 2017. -* Crounse2012: Crounse et al., J. Phys. Chem. A, doi:10.1021/jp211560u, 2012. -* Eastham2014: Eastham et al., Atmos. Env., doi:10.1016/j.atmosenv.2014.02.001, 2014. -* Fischer2014: Fischer et al., Atmos. Chem. Phys., doi:10.5194/acp-14-2679-2014, 2014. -* Fisher2016: Fisher et al., Atmos. Chem. Phys., doi:10.5194/acp-16-5969-2016, 2016. -* Fisher2018: Fisher et al., J. Geophys. Res., doi:10.1029/2018JD029046, 2018. -* Fry2014: Fry et al. Environ. Sci. Technol., doi:10.1021/es502204x, 2014. -* Gill2002: Gill and Hites, J. Phys. Chem. A, doi:10.1021/jp013532, 2002. -* Goliff2013: Goliff et al., Atmos. Environ., doi:10.1016/j.atmosenv.2012.11.038, 2013. -* Jacobs2014: Jacobs et al., Atmos. Chem. Phys., doi:10.5194/acp-14-8933-2014, 2014. -* Jenkin2015: Jenkin et al., Atmos. Chem. Phys., doi:10.5194/acp-15-11433-2015, 2015. -* Kasibhatla2018: Kasibhatla et al., Atmos. Chem. Phys., doi:10.5194/acp-18-11185-2018, 2018 -* IUPAC ROO_19: https://iupac-aeris.ipsl.fr/htdocs/datasheets/pdf/ROO_19_CH3O2_NO3.pdf -* JPL 10-6: JPL Publication 10-6, https://jpldataeval.jpl.nasa.gov/previous_evaluations.html, 2011. -* JPL 15-10: JPL Publication 15-10, https://jpldataeval.jpl.nasa.gov, 2015. -* Kwon2020: Kwon et al, Elementa, https://doi.org/10.1525/elementa.2021.00109, 2020. -* Lee2014: Lee et al., J. Phys. Chem. A, doi:10.1021/jp4107603, 2014. -* Marais2016: Marais et al., Atmos. Chem. Phys, doi:10.5194/acp-16-1603-2016, 2016. -* Miller2017: Miller et al., Atmos. Chem. Phys. Discuss., doi:10.5194/acp-2016-1042, 2017. -* Millet2015: Millet et al., Atmos. Chem. Phys., doi:10.5194/acp-15-6283-2015, 2015. -* Moch2020: Moch et al, JGR, https;//doi.org/10.1029/2020JD032706, 2020. -* Muller2014: Muller et al., Atmos. Chem. Phys., doi:10.5194/acp-14-2497-2014, 2014. -* Parrella2012: Parrella et al. Atmos. Chem. Phys, doi:10.5194/acp-12-6723-2012, 2012. -* Paulot2009: Paulot et al., Atmos. Chem. Phys., doi:10.5194/acp-9-1479-2009, 2009a and - Paulot et al., Science, doi:10.1126/science.1172910, 2009b. -* Peeters2010: Peeters and Muller, Phys. Chem. Chem. Phys., doi:10.1039/C0CP00811G, 2010. -* Peeters2014: Peeters et al., J. Phys. Chem. A, doi:10.1021/jp5033146, 2014. -* Pye2010: Pye et al., Atmos. Chem. Phys., doi:10.5194/acp-10-11261-2010, 2010. -* Roberts1992: Roberts and Bertman, Int. J. Chem. Kinet., doi:10.1002/kin.550240307, 1992. -* Sherwen2016b: Sherwen et al., Atmos. Chem. Phys., doi:10.5194/acp-16-12239-2016, 2016b. -* Sherwen2017: Sherwen et al., Faraday Discuss., doi:10.1039/C7FD00026J, 2017. -* StClair2016: St. Clair et al., J. Phys. Chem. A, doi:10.1021/acs.jpca.5b065322016, 2016. -* Travis2016: Travis et al., Atmos. Chem. Phys., doi:10.5194/acp-16-13561-2016, 2016. -* Wolfe2012: Wolfe et al., Phys. Chem. Chem. Phys., doi: 10.1039/C2CP40388A, 2012. -* Xie2013: Xie et al., Atmos. Chem. Phys., doi:10.5194/acp-13-8439-2013, 2013. +* Atkinson2003 : https://doi.org/10.1021/cr0206420 +* Atkinson2006 : https://doi.org/10.5194/acp-6-3625-2006 +* Bates2014 : https://doi.org/10.1021/jp4107958 +* Bates2019 : https://doi.org/10.5194/acp-19-9613-2019 +* Bates2021a : https://doi.org/10.1029/2020JD033439 +* Bates2021b : https://doi.org/10.5194/acp-2021-605 +* Brewer2023 : https://doi.org/10.1029/2022JD037257 +* Browne2011 : https://doi.org/10.5194/acp-11-4209-2011 +* Browne2014 : https://doi.org/10.5194/acp-14-1225-2014 +* Carter2022 : https://doi.org/10.5194/acp-22-12093-2022 +* Chen2017 : https://doi.org/10.1002/2017GL073812 +* Crounse2012 : https://doi.org/10.1021/jp211560u +* Eastham2014 : https://doi.org/10.1016/j.atmosenv.2014.02.001 +* Fischer2014 : https://doi.org/10.5194/acp-14-2679-2014 +* Fisher2016 : https://doi.org/10.5194/acp-16-5969-2016 +* Fisher2018 : https://doi.org/10.1029/2018JD029046 +* Fry2014 : https://doi.org/10.1021/es502204x +* Gill2002 : https://doi.org/10.1021/jp013532, 2002. +* Goliff2013 : https://doi.org/10.1016/j.atmosenv.2012.11.038 +* Jacobs2014 : https://doi.org/10.5194/acp-14-8933-2014 +* Jenkin2015 : https://doi.org/10.5194/acp-15-11433-2015 +* Kasibhatla2018 : https://doi.org/10.5194/acp-18-11185-2018 +* IUPAC ROO_19 : https://iupac-aeris.ipsl.fr/htdocs/datasheets/pdf/ROO_19_CH3O2_NO3.pdf +* JPL 10-6 : https://jpldataeval.jpl.nasa.gov/previous_evaluations.html +* JPL 15-10 : https://jpldataeval.jpl.nasa.gov/previous_evaluations.html +* JPL 19-5 : https://jpldataeval.jpl.nasa.gov +* Kwon2020 : https://doi.org/10.1525/elementa.2021.00109 +* Lee2014 : https://doi.org/10.1021/jp4107603 +* Marais2016 : https://doi.org/10.5194/acp-16-1603-2016 +* Miller2017 : https://doi.org/10.5194/acp-2016-1042 +* Millet2015 : https://doi.org/10.5194/acp-15-6283-2015 +* Moch2020 : https;//doi.org/10.1029/2020JD032706, 2020. +* Muller2014 : https://doi.org/10.5194/acp-14-2497-2014 +* Parrella2012 : https://doi.org/10.5194/acp-12-6723-2012 +* Paulot2009 : https://doi.org/10.5194/acp-9-1479-2009 and + https://doi.org/10.1126/science.1172910 +* Peeters2010 : https://doi.org/10.1039/C0CP00811G +* Peeters2014 : https://doi.org/10.1021/jp5033146. +* Pye2010 : https://doi.org/10.5194/acp-10-11261-2010 +* Roberts1992 : https://doi.org/10.1002/kin.550240307 +* Sherwen2016b : https://doi.org/10.5194/acp-16-12239-2016 +* Sherwen2017 : https://doi.org/10.1039/C7FD00026J +* StClair2016 : https://doi.org/10.1021/acs.jpca.5b065322016 +* Travis2016 : https://doi.org/10.5194/acp-16-13561-2016 +* Wolfe2012 : https://doi.org/ 10.1039/C2CP40388A, 2012 +* Xie2013 : https://doi.org/10.5194/acp-13-8439-2013 =============================================================================== NOTES @@ -218,6 +148,7 @@ BrO = IGNORE; {BrO; Bromine monoxide} BRO2 = IGNORE; {C6H5O2 ; Peroxy radical from BENZ oxidation} BrSALA = IGNORE; {Br; Fine sea salt bromine} BrSALC = IGNORE; {Br; Course sea salt bromine} +BUTDI = IGNORE; {Butenedial} BZCO3 = IGNORE; {benzoylperoxy radical} BZCO3H = IGNORE; {perbenzoic acid} BZPAN = IGNORE; {peroxybenzoyl nitrate} @@ -268,6 +199,7 @@ ETO = IGNORE; {hydroxy-alkoxy-ethane radical} ETOO = IGNORE; {hydroxy-peroxy-ethane radical, formed from ethene + OH} ETO2 = IGNORE; {CH3CH2OO; Ethylperoxy radical} ETP = IGNORE; {CH3CH2OOH; Ethylhydroperoxide} +FURA = IGNORE; {FURAN conglomerate} GLYC = IGNORE; {HOCH2CHO; Glycoaldehyde} GLYX = IGNORE; {CHOCHO; Glyoxal} H = IGNORE; {H; Atomic hydrogen} @@ -477,6 +409,8 @@ TOLU = IGNORE; {C7H8; Toluene} TRO2 = IGNORE; {Peroxy radical from TOLU oxidation} XYLE = IGNORE; {C8H10; Xylene} XRO2 = IGNORE; {Peroxy radical from XYLE oxidation} +PH2SO4 = IGNORE; {SO4 from gas-phase chemistry} +PSO4AQ = IGNORE; {SO4 from cloud chemistry} #DEFFIX @@ -500,14 +434,14 @@ HNO3 + SALCAL = NITs : K_MT(6); // // Cloud // S(IV) --> S(VI) -SO2 + H2O2 = SO4 : K_CLD(1); -SO2 + O3 = SO4 : K_CLD(2); -SO2 {+O2} = SO4 : K_CLD(3); {Mn & Fe catalysis + HET_DROP_CHEM()} +SO2 + H2O2 = SO4 + PSO4AQ : K_CLD(1); +SO2 + O3 = SO4 + PSO4AQ : K_CLD(2) + SRO3; {Jan 2023; Added SRO3 here; BA} +SO2 {+O2} = SO4 + PSO4AQ : K_CLD(3); {Mn & Fe catalysis + HET_DROP_CHEM()} // // HMS -CH2O + SO2 = HMS : K_CLD(4); {Sep 2021; Moch2020; MSL} -HMS = SO2 + CH2O : K_CLD(5); {Sep 2021; Moch2020; MSL} -HMS + OH = 2SO4 + CH2O - SO2 : K_CLD(6); {Sep 2021; Moch2020; MSL} +CH2O + SO2 = HMS : K_CLD(4); {Sep 2021; Moch2020; MSL} +HMS = SO2 + CH2O : K_CLD(5); {Sep 2021; Moch2020; MSL} +HMS + OH + SO2 = 2SO4 + CH2O + 2PSO4AQ : K_CLD(6); {Sep 2021; Moch2020; MSL} // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // %%%%% Gas-phase chemistry reactions %%%%% @@ -545,70 +479,70 @@ OH + OH = H2O + O : 1.80d-12; OH + OH {+M} = H2O2 : GCJPLPR_aba(6.90d-31, 1.0d+00, 2.6d-11, 0.6d0); OH + HO2 = H2O + O2 : GCARR_ac(4.80d-11, 250.0d0); OH + H2O2 = H2O + HO2 : 1.80d-12; -HO2 + NO = OH + NO2 : GCARR_ac(3.30d-12, 270.0d0); {2013/02/12; JPL 10-6; BHH,JMAO,EAM} +HO2 + NO = OH + NO2 : GCARR_ac(3.44d-12, 260.0d0); {2023/04/18; JPL 19-5; KHB} HO2 + HO2 = H2O2 + O2 : GC_HO2HO2_acac(3.00d-13, 460.0d0, 2.1d-33, 920.0d0); {2014/02/03; Eastham2014; SDE} -OH + CO = HO2 + CO2 : GC_OHCO_a(1.50d-13); {2017/02/22; JPL 15-10; BHH,MJE} +OH + CO = HO2 + CO2 : GCJPLPR_abab(6.9d-33,2.1d0,1.1d-12,-1.3d0,0.6d0) + GCJPLAC_ababac(6.9d-33,2.1d0,1.1d-12,-1.3d0,1.85d-13,-6.5d1,0.6d0); {2023/04/18; JPL 19-5; KHB} OH + CH4 = MO2 + H2O : GCARR_ac(2.45d-12, -1775.0d0); MO2 + NO = CH2O + HO2 + NO2 : GC_RO2NO_B1_ac(2.80d-12, 300.0d0); {2019/05/10; Fisher2018; JAF} MO2 + NO = MENO3 : GC_RO2NO_A1_ac(2.80d-12, 300.0d0); {2019/05/10; Fisher2018; JAF} -MO2 + HO2 = MP + O2 : GCARR_abc(4.10d-13, 0.0d0, 750.0d0); +MO2 + HO2 = MP + O2 : GCARR_ac(4.10d-13, 750.0d0); MO2 + MO2 = MOH + CH2O + O2 : GC_TBRANCH_1_acac(9.50d-14, 390.0d0, 2.62d1, -1130.0d0); MO2 + MO2 = 2.000CH2O + 2.000HO2 : GC_TBRANCH_1_acac(9.50d-14, 390.0d0, 4.0d-2, 1130.0d0); MO2 + OH = 0.13MOH + 0.87CH2O + 1.74HO2 : 1.60d-10 ; {2021/09/22; Bates2021a; KHB,MSL} -MP + OH = MO2 + H2O : GCARR_ac(2.66d-12, 200.0d0); -MP + OH = CH2O + OH + H2O : GCARR_ac(1.14d-12, 200.0d0); -ATOOH + OH = ATO2 + H2O : GCARR_ac(2.66d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -ATOOH + OH = MGLY + OH + H2O : GCARR_ac(1.14d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +MP + OH = 0.700MO2 + 0.300OH + + 0.300CH2O + H2O : GCARR_ac(3.80d-12, 200.0d0); +ATOOH + OH = 0.700ATO2 + 0.300MGLY + + 0.300OH + H2O : GCARR_ac(3.80d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} CH2O + OH = CO + HO2 + H2O : GCARR_ac(5.50d-12, 125.0d0); NO2 + OH {+M} = HNO3 {+M} : GCJPLPR_aba(1.80d-30, 3.0d+00, 2.8d-11, 0.6d0); -HNO3 + OH = H2O + NO3 : GC_OHHNO3_acacac(2.41d-14, 460.0d0, 2.69d-17, 2199.0d0, 6.51d-34, 1335.0d0); +HNO3 + OH = H2O + NO3 : GCJPLPR_abab(3.9d-31,7.2d0,1.5d-13,4.8d0,0.6d0) + GCJPLAC_ababac(3.9d-31,7.2d0,1.5d-13,4.8d0,3.7d-14,2.4d2,0.6d0); {2023/04/18; JPL 19-5; KHB} NO + OH {+M} = HNO2 {+M} : GCJPLPR_abab(7.00d-31, 2.6d+00, 3.60d-11, 0.1d0, 0.6d0); -HNO2 + OH = H2O + NO2 : GCARR_ac(1.80d-11, -390.0d0); +HNO2 + OH = H2O + NO2 : GCARR_ac(3.00d-12, 250.0d0); {2023/04/18; JPL 19-5; KHB} HO2 + NO2 {+M} = HNO4 {+M} : GCJPLPR_abab(1.90d-31, 3.4d+00, 4.0d-12, 0.3d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} HNO4 {+M} = HO2 + NO2 : GCJPLPR_abcabc(9.05d-05, 3.4d0, -10900.0d0, 1.90d15, 0.3d0, -10900.0d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} -HNO4 + OH = H2O + NO2 + O2 : GCARR_ac(1.30d-12, 380.0d0); +HNO4 + OH = H2O + NO2 + O2 : GCARR_ac(4.50d-13, 610.0d0); {2023/04/18; JPL 19-5; KHB} HO2 + NO3 = OH + NO2 + O2 : 3.50d-12; -NO + NO3 = 2.000NO2 : GCARR_ac(1.50d-11, 170.0d0); -OH + NO3 = HO2 + NO2 : 2.20d-11; +NO + NO3 = 2.000NO2 : GCARR_ac(1.70d-11, 125.0d0); {2023/04/18; JPL 19-5; KHB} +OH + NO3 = HO2 + NO2 : 2.00d-11; {2023/04/18; JPL 19-5; KHB} NO2 + NO3 {+M} = N2O5 {+M} : GCJPLPR_abab(2.40d-30, 3.0d+00, 1.6d-12, -0.1d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} N2O5 {+M} = NO2 + NO3 : GCJPLPR_abcabc(4.14d-04, 3.0d0, -10840.0d0, 2.76d14, -0.1d0, -10840.0d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} HCOOH + OH = H2O + CO2 + HO2 : 4.00d-13; {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} MOH + OH = HO2 + CH2O : GCARR_ac(2.90d-12, -345.0d0); -NO2 + NO3 = NO + NO2 + O2 : GCARR_ac(4.50d-14, -1260.0d0); +NO2 + NO3 = NO + NO2 + O2 : GCARR_ac(4.35d-14, -1335.0d0); {2023/04/18; JPL 19-5; KHB} NO3 + CH2O = HNO3 + HO2 + CO : 5.80d-16; ALD2 + OH = 0.950MCO3 + 0.050CH2O + 0.050CO + 0.050HO2 + H2O : GCARR_ac(4.63d-12, 350.0d0); {2014/02/03; Eastham2014; SDE} ALD2 + NO3 = HNO3 + MCO3 : GCARR_ac(1.40d-12, -1900.0d0); -MCO3 + NO2 {+M} = PAN : GCJPLPR_abab(9.70d-29, 5.6d+00, 9.3d-12, 1.5d0, 0.6d0); {JPL Eval 17} -PAN = MCO3 + NO2 : GCJPLEQ_acabab(9.30d-29, 14000.0d0, 9.7d-29, 5.6d0, 9.3d-12, 1.5d0, 0.6d0); +MCO3 + NO2 {+M} = PAN : GCJPLPR_abab(7.30d-29, 4.1d+00, 9.5d-12, 1.6d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} +PAN = MCO3 + NO2 : GCJPLEQ_acabab(9.00d-29, 14000.0d0, 7.3d-29, 4.1d0, 9.5d-12, 1.6d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} MCO3 + NO = MO2 + NO2 + CO2 : GCARR_ac(8.10d-12, 270.0d0); C2H6 + OH = ETO2 + H2O : GCARR_ac(7.66d-12, -1020.0d0); {2013/02/12; JPL 10-6; BHH,JMAO,EAM} ETO2 + NO = ALD2 + NO2 + HO2 : GC_RO2NO_B2_aca(2.60d-12, 365.0d0, 2.0d0); {2019/05/10; Fisher2018; JAF} ETO2 + NO = ETNO3 : GC_RO2NO_A2_aca(2.60d-12, 365.0d0, 2.0d0); {2019/05/10; Fisher2018; JAF} OTHRO2 + NO = ALD2 + NO2 + HO2 : GCARR_ac(2.60d-12, 365.0d0); {2019/05/10; Fisher2018; JAF} -C3H8 + OH = B3O2 : GC_TBRANCH_2_acabc(7.60d-12, -585.0d0, 5.87d0, 0.64d0, -816.0d0); -C3H8 + OH = A3O2 : GC_TBRANCH_2_acabc(7.60d-12, -585.0d0, 1.7d-1, -0.64d0, 816.0d0); +C3H8 + OH = B3O2 : GCARR_abc(8.54d-13,1.54d0,-19.0d0); {2023/04/18; JPL 19-5; KHB} +C3H8 + OH = A3O2 : GCARR_abc(1.97d-12,1.23d0,-675.0d0); {2023/04/18; JPL 19-5; KHB} A3O2 + NO = NO2 + HO2 + RCHO : GC_RO2NO_B2_aca(2.90d-12, 350.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} A3O2 + NO = NPRNO3 : GC_RO2NO_A2_aca(2.90d-12, 350.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} PO2 + NO = NO2 + HO2 + CH2O + ALD2 : GCARR_ac(2.70d-12, 350.0d0); -ALK4 + OH = ALK4O2 : GCARR_ac(9.10d-12, -405.0d0); {2023/05/14; Brewer2023; JFB} -ALK4O2 + NO = NO2 + 0.320ACET + 0.190MEK + - 0.190MO2 + 0.270HO2 + 0.320ALD2 + - 0.140RCHO + 0.050A3O2 + 0.180B3O2 + - 0.320OTHRO2 : GC_RO2NO_B2_aca(2.70d-12, 350.0d0, 4.5d0); {2023/05/14; Brewer2023; JFB} -ALK4O2 + NO = ALK4N2 : GC_RO2NO_A2_aca(2.70d-12, 350.0d0, 4.5d0); {2023/05/14; Brewer2023; JFB} -ALK4N1 + NO = 2.000NO2 + 0.570RCHO + - 0.860ALD2 + 0.570CH2O : GCARR_ac(2.70d-12, 350.0d0); {2023/05/14; Brewer2023; JFB} -R4O2 + NO = NO2 + 0.320ACET + 0.190MEK + - 0.190MO2 + 0.270HO2 + 0.320ALD2 + - 0.140RCHO + 0.050A3O2 + 0.180B3O2 + - 0.320OTHRO2 : GC_RO2NO_B2_aca(2.70d-12, 350.0d0, 4.5d0); {2017/02/23; ALK4 lumping fix; BHH} +ALK4 + OH = ALK4O2 : GCARR_ac(9.10d-12, -405.0d0); {2023/05/14; Brewer2023; JFB} +ALK4O2 + NO = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : GC_RO2NO_B2_aca(2.70d-12, 350.0d0, 4.5d0); {2023/05/14; Brewer2023; JFB} +ALK4O2 + NO = ALK4N2 : GC_RO2NO_A2_aca(2.70d-12, 350.0d0, 4.5d0); {2023/05/14; Brewer2023; JFB} +ALK4N1 + NO = 2.000NO2 + 0.640RCHO + + 0.970ALD2 + 0.640CH2O : GCARR_ac(2.70d-12, 350.0d0); {2023/05/14; Brewer2023; JFB} +R4O2 + NO = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : GC_RO2NO_B2_aca(2.70d-12, 350.0d0, 4.5d0); {2023/04/18; Bates2023; KHB} R4O2 + NO = R4N2 : GC_RO2NO_A2_aca(2.70d-12, 350.0d0, 4.5d0); -R4N1 + NO = 2.000NO2 + 0.570RCHO + - 0.860ALD2+ 0.570CH2O : GCARR_ac(2.70d-12, 350.0d0); {2017/07/27; Fix C creation; SAS,BHH,MJE} -ATO2 + NO = NO2 + CH2O + MCO3 : GCARR_ac(2.80d-12, 300.0d0); {2017/07/27; Fix C creation; SAS,BHH,MJE} -KO2 + NO = 0.930NO2 + 0.930ALD2 + - 0.930MCO3 + 0.070ALK4N2 : GCARR_ac(2.70d-12, 350.0d0); {2023/05/14; Brewer2023; JFB} +R4N1 + NO = 2.000NO2 + 0.640RCHO + + 0.970ALD2 + 0.640CH2O : GCARR_ac(2.70d-12, 350.0d0); {2023/04/18; Bates2023; KHB} +ATO2 + NO = NO2 + CH2O + MCO3 : GCARR_ac(2.90d-12, 300.0d0); {2023/04/18; JPL 19-5; KHB} +KO2 + NO = 0.928NO2 + 0.919ALD2 + + 0.919MCO3 + 0.072ALK4N2 : GCARR_ac(2.70d-12, 350.0d0); {2023/04/18; Bates2023; KHB},{2023/05/14; Brewer2023; JFB} B3O2 + NO = NO2 + HO2 + ACET : GC_RO2NO_B2_aca(2.70d-12, 360.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} B3O2 + NO = IPRNO3 : GC_RO2NO_A2_aca(2.70d-12, 360.0d0, 3.0d0); {2019/05/10; Fisher2018; JAF} PRN1 + NO = 2.000NO2 + CH2O + ALD2 : GCARR_ac(2.70d-12, 350.0d0); @@ -619,8 +553,8 @@ ACTA + OH = MO2 + CO2 + H2O : GCARR_ac(3.15d-14, 920.0d0); OH + RCHO = RCO3 + H2O : GCARR_ac(6.00d-12, 410.0d0); RCO3 + NO2 {+M} = PPN : GCJPLPR_abab(9.00d-28, 8.9d0, 7.7d-12, 0.2d0, 0.6d0); {JPL Eval 17} PPN = RCO3 + NO2 : GCJPLEQ_acabab(9.00d-29, 14000.0d0, 9.00d-28, 8.9d0, 7.7d-12, 0.2d0, 0.6d0); -RCO3 + NO = NO2 + 0.500OTHRO2 + - 0.070A3O2 + 0.270B3O2 : GCARR_ac(6.70d-12, 340.0d0); {2019/05/10; Fisher2018; JAF} +RCO3 + NO = NO2 + 0.490OTHRO2 + + 0.070A3O2 + 0.270B3O2 + CO2 : GCARR_ac(6.70d-12, 340.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} RCHO + NO3 = HNO3 + RCO3 : 6.50d-15; ACET + OH = ATO2 + H2O : 1.33d-13 + 3.82d-11*exp(-2000.0d0/TEMP); {JPL Eval 17, p1-62-D31; EVF} A3O2 + MO2 = HO2 + 0.750CH2O + 0.750RCHO + @@ -635,10 +569,10 @@ ALK4N1 + HO2 = ALK4N2 : GCARR_ac(7.40d-13, 700.0d0); ATO2 + HO2 = 0.150MCO3 + 0.150OH + 0.150CH2O + 0.850ATOOH : GCARR_ac(8.60d-13, 700.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} KO2 + HO2 = 0.150OH + 0.150ALD2 + - 0.150MCO3 + 0.850ATOOH : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 4.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} + 0.150MCO3 + 0.850ATOOH + 0.850MO2 : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 4.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE; 2023/04/18; Bates2023; KHB} B3O2 + HO2 = RB3P : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PRN1 + HO2 = PRPN : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MEK + OH = KO2 + H2O : GCARR_ac(1.30d-12, -25.0d0); +MEK + OH = KO2 + H2O : GCARR_ac(1.50d-12, -90.0d0); {2023/04/18; Atkinson2006; KHB} MO2 + ETO2 = 0.750CH2O + 0.750ALD2 + HO2 + 0.250MOH + 0.250EOH : 3.00d-13; MO2 + OTHRO2 = 0.750CH2O + 0.750ALD2 + @@ -646,28 +580,26 @@ MO2 + OTHRO2 = 0.750CH2O + 0.750ALD2 + MEK + NO3 = HNO3 + KO2 : 8.00d-16; R4O2 + MO2 = 0.160ACET + 0.100MEK + 0.090MO2 + 0.140HO2 + 0.160ALD2 + - 0.070RCHO + 0.030A3O2 + 0.090B3O2 + + 0.130RCHO + 0.030A3O2 + 0.090B3O2 + 0.160OTHRO2 + 0.250MEK + 0.750CH2O + - 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; -R4N1 + MO2 = NO2 + 0.200CH2O + 0.380ALD2 + - 0.290RCHO + 0.150R4O2 + 0.250RCHO + - 0.750CH2O + 0.250MOH + 0.250ROH + - 0.500HO2 : 8.37d-14; + 0.250MOH + 0.380ROH + 0.500HO2 : 8.37d-14; {2023/04/18; Bates2023; KHB} +R4N1 + MO2 = NO2 + 0.950CH2O + 0.380ALD2 + + 0.580RCHO + 0.150R4O2 + 0.500HO2 + + 0.250MOH + 0.375ROH : 8.37d-14; {2023/04/18; Bates2023; KHB} ALK4O2 + MO2 = 0.160ACET + 0.100MEK + 0.090MO2 + 0.140HO2 + 0.160ALD2 + - 0.070RCHO + 0.030A3O2 + 0.090B3O2 + + 0.130RCHO + 0.030A3O2 + 0.090B3O2 + 0.160OTHRO2 + 0.250MEK + 0.750CH2O + - 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; {2023/05/14; Brewer2023; JFB} -ALK4N1 + MO2 = NO2 + 0.200CH2O + 0.380ALD2 + - 0.290RCHO + 0.150R4O2 + 0.250RCHO + - 0.750CH2O + 0.250MOH + 0.250ROH + - 0.500HO2 : 8.37d-14; {2023/05/14; Brewer2023; JFB} -ATO2 + MO2 = 0.300HO2 + 0.300CH2O + - 0.300MCO3 + 0.200HAC + 0.200CH2O + - 0.500MGLY + 0.500MOH : GCARR_ac(7.50d-13, 500.0d0); + 0.250MOH + 0.380ROH + 0.500HO2 : 8.37d-14; {2023/05/14; Brewer2023; JFB} +ALK4N1 + MO2 = NO2 + 0.950CH2O + 0.380ALD2 + + 0.580RCHO + 0.150R4O2 + 0.500HO2 + + 0.250MOH + 0.375ROH : 8.37d-14; {2023/05/14; Brewer2023; JFB} +ATO2 + MO2 = 0.300HO2 + 0.500CH2O + + 0.300MCO3 + 0.200HAC + 0.500MGLY + + 0.500MOH + 0.300CO2 : GCARR_ac(7.50d-13, 500.0d0); {2023/04/18; Bates2023; KHB} KO2 + MO2 = 0.500ALD2 + 0.500MCO3 + 0.250MEK + 0.750CH2O + 0.250MOH + - 0.250ROH + 0.500HO2 : 8.37d-14; + 0.250ROH + 0.500HO2 + 0.250MO2 : 8.37d-14; {2023/04/18; Bates2023; KHB} B3O2 + MO2 = 0.500HO2 + 0.500ACET + 0.250ACET + 0.750CH2O + 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; @@ -675,41 +607,34 @@ PRN1 + MO2 = NO2 + 0.500CH2O + 0.500ALD2 + 0.250RCHO + 0.750CH2O + 0.250MOH + 0.250ROH + 0.500HO2 : 8.37d-14; EOH + OH = HO2 + ALD2 : 3.35d-12; {2013/02/12; JPL 10-6; BHH,JMAO,EAM} -ROH + OH = HO2 + RCHO : GCARR_ac(4.60d-12, 70.0d0); -ETO2 + ETO2 = 2.000ALD2 + 2.000HO2 : 4.10d-14; -OTHRO2 + OTHRO2 = 2.000ALD2 + 2.000HO2 : 4.10d-14; {2019/05/10; Fisher2018; JAF} -ETO2 + ETO2 = EOH + ALD2 : 2.70d-14; -OTHRO2 + OTHRO2 = EOH + ALD2 : 2.70d-14; {2019/05/10; Fisher2018; JAF} -HO2 + ETO2 = ETP : GCARR_ac(7.40d-13, 700.0d0); -HO2 + OTHRO2 = ETP : GCARR_ac(7.40d-13, 700.0d0); {2019/05/10; Fisher2018; JAF} +ROH + OH = HO2 + RCHO : GCARR_ac(4.40d-12, 70.0d0); {2023/04/18; JPL 19-5; KHB} +ETO2 + ETO2 = 1.600ALD2 + + 0.400EOH + 1.200HO2 : 6.80d-14; +OTHRO2 + OTHRO2 = 1.600ALD2 + + 0.400EOH + 1.200HO2 : 6.80d-14; {2019/05/10; Fisher2018; JAF} +HO2 + ETO2 = ETP : GCARR_ac(7.50d-13, 700.0d0); {2023/04/18; JPL 19-5; KHB} +HO2 + OTHRO2 = ETP : GCARR_ac(7.50d-13, 700.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; JPL 19-5; KHB} A3O2 + HO2 = RA3P : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PO2 + HO2 = PP : GC_RO2HO2_aca(2.91d-13, 1300.0d0, 3.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} RCO3 + HO2 = 0.410RP + 0.150RCOOH + 0.150O3 + 0.440OH + 0.220OTHRO2 + - 0.030A3O2 + 0.120B3O2 : GCARR_ac(4.30d-13, 1040.0d0); {2019/05/10; Fisher2018; JAF} + 0.030A3O2 + 0.120B3O2 + 0.430CO2 : GCARR_ac(4.30d-13, 1040.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} PRPE + OH {+M} = PO2 : GCJPLPR_abab(4.60d-27, 4.0d0, 2.6d-11, 1.3d0, 0.5d0); {2017/02/22; JPL 15-10; BHH,MJE} -PRPE + O3 = 0.500ALD2 + 0.500CH2O + - 0.120CH3CHOO + 0.100CH4 + 0.120CH2OO + - 0.280MO2 + 0.560CO + 0.280HO2 + 0.360OH : GCARR_ac(5.50d-15, -1880.0d0); {2015/09/25; Millet2015; DBM,EAM} +PRPE + O3 = 0.100CH4 + 0.280MO2 + 0.100CO2 + + 0.120CH3CHOO + 0.500ALD2 + 0.220CH2OO + + 0.500CH2O + 0.560CO + 0.280HO2 + 0.360OH : GCARR_ac(6.50d-15, -1900.0d0); {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} GLYC + OH = 0.732CH2O + 0.361CO2 + 0.505CO + 0.227OH + 0.773HO2 + 0.134GLYX + 0.134HCOOH : GC_GLYCOH_A_a(8.00d-12); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} GLYC + OH = HCOOH + OH + CO : GC_GLYCOH_B_a(8.00d-12); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PRPE + NO3 = PRN1 : GCARR_ac(4.59d-13, -1156.0d0); GLYX + OH = HO2 + 2.000CO : GCARR_ac(3.10d-12, 340.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MGLY + OH = MCO3 + CO : 1.50d-11; +MGLY + OH = MCO3 + CO : GCARR_ac(1.90d-12, 575.0d0); {2023/04/18; Atkinson2006; KHB} GLYX + NO3 = HNO3 + HO2 + 2.000CO : GC_GLYXNO3_ac(1.40d-12, -1860.0d0); MGLY + NO3 = HNO3 + CO + MCO3 : GCARR_ac(3.36d-12, -1860.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -HAC + OH = MGLY + HO2 : GC_HACOH_A_ac(2.15d-12, 305.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +HAC + OH = MGLY + HO2 : GC_HACOH_A_ac(2.00d-12, 320.0d0); {2023/04/18; Atkinson2006; KHB} HAC + OH = 0.500HCOOH + OH + 0.500ACTA + - 0.500CO2 + 0.500CO + 0.500MO2 : GC_HACOH_B_ac(2.15d-12, 305.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MCO3 + A3O2 = MO2 + RCHO + HO2 : GCARR_ac(1.68d-12, 500.0d0); -MCO3 + PO2 = MO2 + ALD2 + CH2O + HO2 : GCARR_ac(1.68d-12, 500.0d0); -MCO3 + A3O2 = ACTA + RCHO : GCARR_ac(1.87d-13, 500.0d0); -MCO3 + PO2 = ACTA + 0.350RCHO + 0.650HAC : GCARR_ac(1.87d-13, 500.0d0); -RCO3 + MO2 = CH2O + HO2 + 0.500OTHRO2 + - 0.070A3O2 + 0.270B3O2 : GCARR_ac(1.68d-12, 500.0d0); {2019/05/10; Fisher2018; JAF} -RCO3 + MO2 = RCOOH + CH2O : GCARR_ac(1.87d-13, 500.0d0); + 0.500CO2 + 0.500CO + 0.500MO2 : GC_HACOH_B_ac(2.00d-12, 320.0d0); {2023/04/18; Atkinson2006; KHB} PRPN + OH = 0.209PRN1 + 0.791OH + 0.791PROPNN : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} ETP + OH = 0.640OH + 0.360OTHRO2 + @@ -718,52 +643,63 @@ RA3P + OH = 0.640OH + 0.360A3O2 + 0.640RCHO : GCARR_ac(5.18d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} RB3P + OH = 0.791OH + 0.209B3O2 + 0.791ACET : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -R4P + OH = 0.791OH + 0.209R4O2 + 0.791RCHO : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -ALK4P + OH = 0.791OH + 0.209ALK4O2 + - 0.791RCHO : GCARR_ac(8.78d-12, 200.0d0); {2023/05/14; Brewer2023; JFB} +R4P + OH = 0.790OH + 0.210R4O2 + 1.185RCHO : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE; 2023/04/18; Bates2023; KHB} +ALK4P + OH = 0.790OH + 0.210ALK4O2 + + 1.185RCHO : GCARR_ac(8.78d-12, 200.0d0); {2023/05/14; Brewer2023; JFB} RP + OH = RCO3 : GCARR_ac(6.13d-13, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} PP + OH = 0.791OH + 0.209PO2 + 0.791HAC : GCARR_ac(8.78d-12, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} LVOC + OH = OH : GCARR_ac(4.82d-11, -400.0d0); {2017/06/14; Marais2016; EAM} -OH + MAP = MCO3 : GCARR_ac(6.13d-13, 200.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} +OH + MAP = 0.780MCO3 + 0.220OH + + 0.220CO2 + 0.220CH2O : 3.00d-14; {2023/04/18; Atkinson2006; KHB} C2H6 + NO3 = ETO2 + HNO3 : 1.40d-18; {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -MCO3 + MCO3 = 2.000MO2 : GCARR_ac(2.50d-12, 500.0d0); -MCO3 + MO2 = CH2O + MO2 + HO2 : GCARR_ac(1.80d-12, 500.0d0); -MCO3 + MO2 = ACTA + CH2O : GCARR_ac(2.00d-13, 500.0d0); -R4O2 + MCO3 = MO2 + 0.320ACET + 0.190MEK + - 0.270HO2 + 0.320ALD2 + 0.130RCHO + - 0.050A3O2 + 0.180B3O2 + 0.320OTHRO2 : GCARR_ac(1.68d-12, 500.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -ALK4O2 + MCO3 = MO2 + 0.320ACET + 0.190MEK + - 0.270HO2 + 0.320ALD2 + 0.130RCHO + - 0.050A3O2 + 0.180B3O2 + 0.320OTHRO2 : GCARR_ac(1.68d-12, 500.0d0); {2023/05/14; Brewer2023; JFB} -ATO2 + MCO3 = MO2 + MCO3 + CH2O : GCARR_ac(1.68d-12, 500.0d0); {2013/03/22; Paulot2009; FP,EAM,JMAO,MJE} -KO2 + MCO3 = MO2 + ALD2 + MCO3 : GCARR_ac(1.68d-12, 500.0d0); -B3O2 + MCO3 = MO2 + HO2 + ACET : GCARR_ac(1.68d-12, 500.0d0); -R4N1 + MCO3 = MO2 + NO2 + 0.390CH2O + - 0.750ALD2 + 0.570RCHO + 0.300R4O2 : GCARR_ac(1.68d-12, 500.0d0); -ALK4N1 + MCO3 = MO2 + NO2 + 0.390CH2O + - 0.750ALD2 + 0.570RCHO + 0.300ALK4O2 : GCARR_ac(1.68d-12, 500.0d0); {2023/05/14; Brewer2023; JFB} -PRN1 + MCO3 = MO2 + NO2 + CH2O + ALD2 : GCARR_ac(1.68d-12, 500.0d0); -R4O2 + MCO3 = MEK + ACTA : GCARR_ac(1.87d-13, 500.0d0); -ALK4O2 + MCO3 = MEK + ACTA : GCARR_ac(1.87d-13, 500.0d0); {2023/05/14; Brewer2023; JFB} -ATO2 + MCO3 = MGLY + ACTA : GCARR_ac(1.87d-13, 500.0d0); {2017/07/27; Fix C creation; SAS,BHH,MJE} -KO2 + MCO3 = MEK + ACTA : GCARR_ac(1.87d-13, 500.0d0); -R4N1 + MCO3 = RCHO + ACTA + NO2 : GCARR_ac(1.87d-13, 500.0d0); -ALK4N1 + MCO3 = RCHO + ACTA + NO2 : GCARR_ac(1.87d-13, 500.0d0); {2023/05/14; Brewer2023; JFB} -PRN1 + MCO3 = RCHO + ACTA + NO2 : GCARR_ac(1.87d-13, 500.0d0); -B3O2 + MCO3 = ACET + ACTA : GCARR_ac(1.87d-13, 500.0d0); -MCO3 + ETO2 = MO2 + ALD2 + HO2 : GCARR_ac(1.68d-12, 500.0d0); -MCO3 + OTHRO2 = MO2 + ALD2 + HO2 : GCARR_ac(1.68d-12, 500.0d0); {2019/05/10; Fisher2018; JAF} -MCO3 + ETO2 = ACTA + ALD2 : GCARR_ac(1.87d-13, 500.0d0); -MCO3 + OTHRO2 = ACTA + ALD2 : GCARR_ac(1.87d-13, 500.0d0); {2019/05/10; Fisher2018; JAF} -RCO3 + MCO3 = MO2 + 0.500OTHRO2 + - 0.070A3O2 + 0.270B3O2 : GCARR_ac(2.50d-12, 500.0d0); {2019/05/10; Fisher2018; JAF} +MCO3 + MCO3 = 2.000MO2 + 2.000CO2 : GCARR_ac(2.90d-12, 500.0d0); {2023/04/18; JPL 19-5, Bates2023; KHB} +MCO3 + MO2 = 0.1ACTA + CH2O + + 0.9MO2 + 0.9HO2 + 0.9CO2: GCARR_ac(2.00d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +R4O2 + MCO3 = 0.271MEK + 0.100ACTA + + 0.900MO2 + 0.290ACET + 0.243HO2 + + 0.290ALD2 + 0.290OTHRO2 + 0.255RCHO + + 0.045A3O2 + 0.162B3O2 + 0.900CO2: GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +ALK4O2 + MCO3 = 0.271MEK + 0.100ACTA + + 0.900MO2 + 0.290ACET + 0.243HO2 + + 0.290ALD2 + 0.290OTHRO2 + 0.255RCHO + + 0.045A3O2 + 0.162B3O2 + 0.900CO2: GCARR_ac(1.87d-12, 500.0d0); {2023/05/14; Brewer2023; JFB} +ATO2 + MCO3 = 0.900MO2 + 0.900MCO3 + + 0.900CH2O + 0.100MGLY + 0.100ACTA + + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +KO2 + MCO3 = 0.900MO2 + 0.900MCO3 + + 0.900ALD2 + 0.100MEK + 0.100ACTA + + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +B3O2 + MCO3 = 0.900MO2 + 0.900HO2 + + ACET + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +R4N1 + MCO3 = 0.900MO2 + 0.100ACTA + + 0.613RCHO + 0.351CH2O + 0.675ALD2 + + 0.270R4O2 + 0.645CO2 + NO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +ALK4N1 + MCO3 = 0.900MO2 + 0.100ACTA + + 0.613RCHO + 0.351CH2O + 0.675ALD2 + + 0.270R4O2 + 0.645CO2 + NO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/05/14; Brewer2023; JFB} +PRN1 + MCO3 = 0.900MO2 + 0.900CH2O + + 0.900CO2 + 0.900ALD2 + 0.100RCHO + + 0.100ACTA + NO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +ETO2 + MCO3 = 0.900MO2 + ALD2 + + 0.900HO2 + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +OTHRO2 + MCO3 = 0.900MO2 + ALD2 + + 0.900HO2 + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} +PO2 + MCO3 = 0.900MO2 + 0.900HO2 + + 0.900ALD2 + 0.900CH2O + 0.065HAC + + 0.035RCHO + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +A3O2 + MCO3 = 0.900MO2 + 0.900HO2 + + RCHO + 0.100ACTA + 0.900CO2 : GCARR_ac(1.87d-12, 500.0d0); {2023/04/18; Bates2023; KHB} +RCO3 + MCO3 = MO2 + 0.490OTHRO2 + + 0.070A3O2 + 0.270B3O2 + 2.000CO2 : GCARR_ac(2.50d-12, 500.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} +RCO3 + MO2 = CH2O + CO2 + HO2 + + 0.490OTHRO2 + 0.070A3O2 + 0.270B3O2 : GCARR_ac(1.87d-12, 500.0d0); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} NO3 + NO3 = 2.000NO2 + O2 : GCARR_ac(8.50d-13, -2450.0d0); MO2 + NO2 {+M} = MPN {+M} : GCJPLPR_abab(1.00d-30, 4.8d+00, 7.2d-12, 2.1d0, 0.6d0); {2012/02/12; Browne2011; ECB} MPN {+M} = MO2 + NO2 : GCJPLPR_abcabc(1.05d-02, 4.8d+00, -11234.0d0, 7.58d16, 2.1d0, -11234.0d0, 0.6d0); {2012/02/12; Browne2011; ECB} DMS + OH = SO2 + MO2 + CH2O : GCARR_ac(1.20d-11, -280.0d0); DMS + OH = 0.750SO2 + 0.250MSA + MO2 : GC_DMSOH_acac(8.20d-39, 5376.0d0, 1.05d-5, 3644.0d0); DMS + NO3 = SO2 + HNO3 + MO2 + CH2O : GCARR_ac(1.90d-13, 530.0d0); -SO2 + OH {+M} = SO4 + HO2 : GCJPLPR_aba(3.30d-31, 4.3d+00, 1.6d-12, 0.6d0); +SO2 + OH {+M} = SO4 + HO2 + PH2SO4 : GCJPLPR_abab(2.90d-31, 4.1d+00, 1.7d-12, -0.2d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} Br + O3 = BrO + O2 : GCARR_ac(1.60d-11, -780.0d0); {2012/06/07; Parrella2012; JPP} BrO + HO2 = HOBr + O2 : GCARR_ac(4.50d-12, 460.0d0); {2012/06/07; Parrella2012; JPP} Br + HO2 = HBr + O2 : GCARR_ac(4.80d-12, -310.0d0); {2012/06/07; Parrella2012; JPP} @@ -791,70 +727,68 @@ O1D + H2O = 2.000OH : GCARR_ac(1.63d-10, 60.0d0); O1D + N2 = O + N2 : GCARR_ac(2.15d-11, 110.0d0); {2014/02/03; Eastham2014; SDE} O1D + O2 = O + O2 : GCARR_ac(3.30d-11, 55.0d0); {2014/02/03; Eastham2014; SDE} O1D + H2 = H + OH : 1.20d-10; {2014/02/03; Eastham2014; SDE} -O1D + N2O = N2 + O2 : GCARR_ac(4.63d-11, 20.0d0); {2014/02/03; Eastham2014; SDE} -O1D + N2O = 2.000NO : GCARR_ac(7.25d-11, 20.0d0); {2014/02/03; Eastham2014; SDE} -O1D + CH4 = MO2 + OH : 1.31d-10; {2014/02/03; Eastham2014; SDE} -O1D + CH4 = CH2O + H2 : 0.09d-10; {2014/02/03; Eastham2014; SDE} -O1D + CH4 = CH2O + H + HO2 : 0.35d-10; {2014/02/03; Eastham2014; SDE} +O1D + N2O = 0.390N2 + 0.390O2 + 1.220NO : GCARR_ac(1.19d-10, 20.0d0); {2014/02/03; Eastham2014; SDE} +O1D + CH4 = 0.750MO2 + 0.750OH + + 0.200H + 0.200HO2 + 0.050H2 + 0.250CH2O : 1.75d-10; {2014/02/03; Eastham2014; SDE} O + O2 {+M} = O3 {+M} : GCARR_ab(6.00d-34, 2.4d0)*NUMDEN; {2014/02/03; Eastham2014; SDE} O + O3 = 2.000O2 : GCARR_ac(8.00d-12, -2060.0d0); {2014/02/03; Eastham2014; SDE} OH + H2 = H2O + H : GCARR_ac(2.80d-12, -1800.0d0); {2014/02/03; Eastham2014; SDE} O + OH = O2 + H : GCARR_ac(1.80d-11, 180.0d0); {2014/02/03; Eastham2014; SDE} HO2 + O = OH + O2 : GCARR_ac(3.00d-11, 200.0d0); {2014/02/03; Eastham2014; SDE} -O1D + O3 = 2.000O2 : 1.20d-10; {2014/02/03; Eastham2014; SDE} -O1D + O3 = 2.000O + O2 : 1.20d-10; {2014/02/03; Eastham2014; SDE} +O1D + O3 = O + 1.500O2 : 2.40d-10; {2014/02/03; Eastham2014; SDE} OCS + O = CO + SO2 : GCARR_ac(2.10d-11, -2200.0d0); {2014/02/03; Eastham2014; SDE} -OCS + OH = CO2 + SO2 : GCARR_ac(1.10d-13, -1200.0d0); {2014/02/03; Eastham2014; SDE} -NO2 + O = NO + O2 : GCARR_ac(5.10d-12, 210.0d0); {2014/02/03; Eastham2014; SDE} -NO3 + O = NO2 + O2 : 1.00d-11; {2014/02/03; Eastham2014; SDE} +OCS + OH = CO2 + SO2 : GCARR_ac(7.20d-14, -1070.0d0); {2023/04/18; JPL 19-5; KHB} +NO2 + O = NO + O2 : GCJPLAC_ababac(3.4d-31, 1.6d0, 2.3d-11, 0.2d0, 5.3d-12, 2.0d2, 0.6d0); {2023/04/18; JPL 19-5; KHB} +NO3 + O = NO2 + O2 : 1.30d-11; {2023/04/18; JPL 19-5; KHB} NO + O {+M} = NO2 {+M} : GCJPLPR_aba(9.00d-32, 1.5d+00, 3.0d-11, 0.6d0); {2014/02/03; Eastham2014; SDE} -NO2 + O {+M} = NO3 {+M} : GCJPLPR_abab(2.50d-31, 1.8d+00, 2.2d-11, 0.7d0, 0.6d0); {2014/02/03; Eastham2014; SDE} +NO2 + O {+M} = NO3 {+M} : GCJPLPR_abab(3.4d-31, 1.6d0, 2.3d-11, 0.2d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} H2O2 + O = OH + HO2 : GCARR_ac(1.40d-12, -2000.0d0); {2014/02/03; Eastham2014; SDE} -H + O2 {+M} = HO2 {+M} : GCJPLPR_abab(4.40d-32, 1.3d+00, 7.5d-11, -0.2d0, 0.6d0); {2014/02/03; Eastham2014; SDE} +H + O2 {+M} = HO2 {+M} : GCJPLPR_abab(5.30d-32, 1.8d+00, 9.5d-11, -0.4d0, 0.6d0); {2023/04/18; JPL 19-5; KHB} H + O3 = OH + O2 : GCARR_ac(1.40d-10, -470.0d0); {2014/02/03; Eastham2014; SDE} -H + HO2 = 2.000OH : 7.20d-11; {2014/02/03; Eastham2014; SDE} -H + HO2 = O + H2O : 1.60d-12; {2014/02/03; Eastham2014; SDE} -H + HO2 = H2 + O2 : 6.90d-12; {2014/02/03; Eastham2014; SDE} -N + O2 = NO + O : GCARR_ac(1.50d-11, -3600.0d0); {2014/02/03; Eastham2014; SDE} +H + HO2 = 1.788OH + 0.020O + + 0.020H2O + 0.086H2 + 0.086O2 : 8.05d-11; {2014/02/03; Eastham2014; SDE} +N + O2 = NO + O : GCARR_ac(3.30d-12, -3150.0d0); {2023/04/18; JPL 19-5; KHB} N + NO = N2 + O : GCARR_ac(2.10d-11, 100.0d0); {2014/02/03; Eastham2014; SDE} N + NO2 = N2O + O : GCARR_ac(5.80d-12, 220.0d0); {2014/02/03; Eastham2014; SDE} BrO + O = Br + O2 : GCARR_ac(1.90d-11, 230.0d0); {2014/02/03; Eastham2014; SDE} CH2O + O = CO + HO2 + OH : GCARR_ac(3.40d-11, -1600.0d0); {2014/02/03; Eastham2014; SDE} -O1D + HCl = 0.090O + 0.090HCl + 0.240H + - 0.670Cl + 0.240ClO + 0.670OH : 1.50d-10; {2014/02/03; Eastham2014; SDE} -O1D + HBr = 0.200O + 0.200HBr + 0.150BrO + - 0.650OH + 0.150H + 0.650Br : 1.50d-10; {2014/02/03; Eastham2014; SDE} +O1D + HCl = 0.120O + 0.120HCl + 0.220H + + 0.660Cl + 0.220ClO + 0.660OH : 1.50d-10; {2023/04/18; JPL 19-5; KHB} +O1D + HBr = 0.200O + 0.200HBr + 0.200BrO + + 0.600OH + 0.200H + 0.600Br : 1.50d-10; {2023/04/18; JPL 19-5; KHB} O1D + Cl2 = 0.250O + 0.250Cl2 + 0.750Cl + 0.750ClO : 2.70d-10; {2014/02/03; Eastham2014; SDE} -O1D + CCl4 = 0.140O + 0.140CCl4 + - 0.860ClO + 2.580Cl : 3.30d-10; {2014/02/03; Eastham2014; SDE} +O1D + CCl4 = 0.210O + 0.210CCl4 + + 0.790ClO + 2.370Cl : 3.30d-10; {2023/04/18; JPL 19-5; KHB} +O1D + CH3Cl = 0.100O + 0.100CH3Cl + + 0.460ClO + 0.350Cl + 0.090H + 0.900MO2 : 2.60d-10; {2023/04/18; JPL 19-5; KHB} O1D + CH3Br = 0.440BrO + MO2 + 0.560Br : 1.80d-10; {2014/02/03; Eastham2014; SDE} O1D + CH2Br2 = 0.050O + 0.050CH2Br2 + 0.950BrO + 0.950Br : 2.70d-10; {2014/02/03; Eastham2014; SDE} -O1D + CHBr3 = 0.320O + 0.320CHBr3 + - 0.680BrO + 1.360Br : 6.60d-10; {2014/02/03; Eastham2014; SDE} -O1D + HCFC22 = 0.280O + 0.280HCFC22 + - 0.550ClO + 0.170Cl : 1.02d-10; {2017/02/22; JPL 15-10; BHH,MJE} -O1D + CFC11 = 0.120O + 0.120CFC11 + - 0.880ClO + 1.760Cl : 2.30d-10; {2014/02/03; Eastham2014; SDE} +O1D + CHBr3 = 0.300O + 0.300CHBr3 + + 0.700BrO + 1.400Br : 6.60d-10; {2023/04/18; JPL 19-5; KHB} +O1D + HCFC22 = 0.250O + 0.250HCFC22 + + 0.560ClO + 0.190Cl + 0.050OH : 1.02d-10; {2023/04/18; JPL 19-5; KHB} +O1D + CFC11 = 0.100O + 0.100CFC11 + + 0.900ClO + 1.800Cl : 2.30d-10; {2023/04/18; JPL 19-5; KHB} O1D + CFC12 = 0.140O + 0.140CFC12 + 0.860ClO + 0.860Cl : 1.40d-10; {2014/02/03; Eastham2014; SDE} -O1D + H1211 = 0.360O + 0.360H1211 + - 0.310BrO + 0.310Cl + 0.330Br + 0.330ClO : 1.50d-10; {2014/02/03; Eastham2014; SDE} -O1D + H1301 = 0.590O + 0.590H1301 + - 0.410BrO : 1.00d-10; {2014/02/03; Eastham2014; SDE} +O1D + H1211 = 0.350O + 0.350H1211 + + 0.310BrO + 0.310Cl + 0.340Br + 0.340ClO : 1.50d-10; {2023/04/18; JPL 19-5; KHB} +O1D + H1301 = 0.550O + 0.550H1301 + + 0.450BrO : 1.00d-10; {2023/04/18; JPL 19-5; KHB} O1D + HCFC141b = 0.310O + 0.310HCFC141b + 0.690ClO + 0.690Cl : 2.60d-10; {2014/02/03; Eastham2014; SDE} -O1D + HCFC142b = 0.260O + 0.260HCFC142b + - 0.740ClO : 2.00d-10; {2017/02/22; JPL 15-10; BHH,MJE} +O1D + HCFC142b = 0.350O + 0.350HCFC142b + + 0.650ClO : 2.00d-10; {2023/04/18; JPL 19-5; KHB} O1D + HCFC123 = 0.210O + 0.210HCFC123 + 0.790Cl + 0.790ClO : 2.00d-10; {2014/02/03; Eastham2014; SDE} -O1D + CFC113 = 0.250O + 0.250CFC113 + - 1.500Cl + 0.750ClO : 2.32d-10; {2017/02/22; JPL 15-10; BHH,MJE} -O1D + CFC114 = 0.250O + 0.250CFC114 + - 0.750Cl + 0.750ClO : GCARR_ac(1.30d-10, -25.0d0); {2017/02/22; JPL 15-10; BHH,MJE} -O1D + CFC115 = 0.700O + 0.700CFC115 + - 0.300ClO : GCARR_ac(5.40d-11, -30.0d0); {2017/02/22; JPL 15-10; BHH,MJE} +O1D + CFC113 = 0.100O + 0.100CFC113 + + 1.900Cl + 0.800ClO : 2.32d-10; {2023/04/18; JPL 19-5; KHB} +O1D + CFC114 = 0.100O + 0.100CFC114 + + 0.950Cl + 0.850ClO : GCARR_ac(1.30d-10, 25.0d0); {2023/04/18; JPL 19-5; KHB} +O1D + CFC115 = 0.140O + 0.140CFC115 + + 0.860ClO : GCARR_ac(5.40d-11, 30.0d0); {2023/04/18; JPL 19-5; KHB} O1D + H2402 = 0.250O + 0.250H2402 + 0.750Br + 0.750BrO : GCARR_ac(1.60d-10, 0.0d0); {2014/02/03; Eastham2014; SDE} OH + Cl2 = HOCl + Cl : GCARR_ac(2.60d-12, -1100.0d0); {2014/02/03; Eastham2014; SDE} @@ -868,15 +802,15 @@ OH + HOCl = H2O + ClO : GCARR_ac(3.00d-12, -500.0d0); OH + ClNO2 = HOCl + NO2 : GCARR_ac(2.40d-12, -1250.0d0); {2014/02/03; Eastham2014; SDE} OH + ClNO3 = HOCl + NO3 : GCARR_ac(1.20d-12, -330.0d0); {2014/02/03; Eastham2014; SDE} OH + CH3Cl = Cl + HO2 + H2O : GCARR_ac(1.96d-12, -1200.0d0); {2017/02/22; JPL 15-10; BHH,MJE} -OH + CH2Cl2 = 2.000Cl + HO2 : GCARR_ac(2.61d-12, -944.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -OH + CHCl3 = 3.000Cl + HO2 : GCARR_ac(4.69d-12, -1134.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +OH + CH2Cl2 = 2.000Cl + HO2 : GCARR_ac(1.92d-12, -880.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +OH + CHCl3 = 3.000Cl + HO2 : GCARR_ac(2.20d-12, -920.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} OH + CH3CCl3 = 3.000Cl + H2O : GCARR_ac(1.64d-12, -1520.0d0); {2014/02/03; Eastham2014; SDE} OH + HCFC22 = Cl + H2O : GCARR_ac(9.20d-13, -1560.0d0); {2017/02/22; JPL 15-10; BHH,MJE} OH + HCFC141b = 2.000Cl + H2O : GCARR_ac(1.25d-12, -1600.0d0); {2014/02/03; Eastham2014; SDE} OH + HCFC142b = Cl + H2O : GCARR_ac(1.30d-12, -1770.0d0); {2014/02/03; Eastham2014; SDE} OH + HCFC123 = 2.000Cl + H2O : GCARR_ac(7.40d-13, -900.0d0); {2017/02/22; JPL 15-10; BHH,MJE} CH4 + Cl = HCl + MO2 : GCARR_ac(7.10d-12, -1270.0d0); {2017/03/08; JPL 15-10; TS,BHH,MJE} -CH2O + Cl = CO + HCl + HO2 : GCARR_ac(7.32d-11, -30.0d0); {2017/09/22; Sherwen2016b; TS,JAS,SDE} +CH2O + Cl = CO + HCl + HO2 : GCARR_ac(8.10d-11, -30.0d0); {2017/09/22; Sherwen2016b; TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} Cl + O3 = ClO + O2 : GCARR_ac(2.30d-11, -200.0d0); {2014/02/03; Eastham2014; SDE} Cl + H2 = H + HCl : GCARR_ac(3.05d-11, -2270.0d0); {2014/02/03; Eastham2014; SDE} Cl + H2O2 = HO2 + HCl : GCARR_ac(1.10d-11, -980.0d0); {2014/02/03; Eastham2014; SDE} @@ -893,16 +827,15 @@ Cl + O2 {+M} = ClOO {+M} : GCJPLPR_aba(2.20d-33, 3.1d+00, 1.8d ClOO {+M} = Cl + O2 {+M} : GCJPLEQ_acabab(6.60d-25, 2502.0d0, 2.20d-33, 3.1d+00, 1.8d-10, 0.0d0, 0.6d0); {JPL 15-10; XW} ClO + ClO {+M} = Cl2O2 {+M} : GCJPLPR_abab(1.90d-32, 3.6d+00, 3.7d-12, 1.6d0, 0.6d0); {2017/02/22; JPL 15-10; BHH,MJE} Cl2O2 {+M} = 2.000ClO {+M} : GCJPLEQ_acabab(2.16d-27, 8537.0d0, 1.90d-32, 3.6d+00, 3.7d-12, 1.6d0, 0.6d0); {JPL 15-10; XW} -ClOO + Cl = Cl2 + O2 : 2.30d-10; {2014/02/03; Eastham2014; SDE} -ClOO + Cl = 2.000ClO : 1.20d-11; {2014/02/03; Eastham2014; SDE} +ClOO + Cl = 0.950Cl2 + 0.950O2 + 0.100ClO : 2.42d-10; {2014/02/03; Eastham2014; SDE} ClO + BrO = Br + OClO : GCARR_ac(9.50d-13, 550.0d0); {2014/02/03; Eastham2014; SDE} ClO + BrO = Br + ClOO : GCARR_ac(2.30d-12, 260.0d0); {2014/02/03; Eastham2014; SDE} ClO + BrO = BrCl + O2 : GCARR_ac(4.10d-13, 290.0d0); {2014/02/03; Eastham2014; SDE} ClNO3 + O = ClO + NO3 : GCARR_ac(3.60d-12, -840.0d0); {2014/02/03; Eastham2014; SDE} ClNO3 + Cl = Cl2 + NO3 : GCARR_ac(6.50d-12, 135.0d0); {2014/02/03; Eastham2014; SDE} -CH3Cl + Cl = CO + 2.000HCl + HO2 : GCARR_ac(2.17d-11, -1130.0d0); {2014/02/03; Eastham2014; SDE} -CH2Cl2 + Cl = CO + HCl + 2.000Cl + HO2 : GCARR_ac(1.24d-12, -1070.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -CHCl3 + Cl = CO + HCl + 3.000Cl + HO2 : GCARR_ac(3.77d-12, -1011.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +CH3Cl + Cl = CO + 2.000HCl + HO2 : GCARR_ac(2.03d-11, -1110.0d0); {2014/02/03; Eastham2014; SDE; 2023/04/18; JPL 19-5; KHB} +CH2Cl2 + Cl = CO + HCl + 2.000Cl + HO2 : GCARR_ac(7.40d-12, -910.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +CHCl3 + Cl = CO + HCl + 3.000Cl + HO2 : GCARR_ac(3.30d-12, -990.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} Cl + HCOOH = HCl + CO2 + H2O : 2.00d-13; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + MO2 = ClO + CH2O + HO2 : 1.60d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + MP = HCl + MO2 : 5.7d-11; {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -914,14 +847,14 @@ Cl + EOH = HCl + ALD2 : 9.6d-11; Cl + ACTA = HCl + MO2 + CO2 : 2.8d-14; {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + C3H8 = HCl + B3O2 : GCARR_ac(6.54d-11, 60.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} Cl + C3H8 = HCl + A3O2 : GCARR_ac(8.12d-11, -90.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -Cl + ACET = HCl + ATO2 : GCARR_ac(7.70d-11, -1000.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +Cl + ACET = HCl + ATO2 : GCARR_ac(1.63d-11, -610.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} Cl + ISOP = HCl + 0.5IHOO1 + 0.5IHOO4 : GCARR_ac(7.60d-11, 500.0d0); {2019/11/06; Sherwen2016b;KHB,TS,JAS,SDE} Cl + ALK4 = HCl + ALK4O2 : 2.05d-10; {2023/05/14; Brewer2023; JFB} Cl + PRPE {+M} = HCl + PO2 {+M} : GCJPLPR_aa(4.00d-28, 2.8d-10, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} Br + PRPE = HBr + PO2 : 3.60d-12; {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I + NO {+M} = INO {+M} : GCJPLPR_aba(1.80d-32, 1.0d0, 1.77d-11, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +I + NO {+M} = INO {+M} : GCJPLPR_aba(1.80d-32, 1.0d0, 1.70d-11, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} INO + INO = I2 + 2.000NO : GCARR_ac(8.40d-11, -2620.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I + NO2 {+M} = IONO {+M} : GCJPLPR_aba(3.00d-31, 1.0d0, 6.6d-11, 0.63d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +I + NO2 {+M} = IONO {+M} : GCJPLPR_aba(3.00d-31, 1.0d0, 6.6d-11, 0.6d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} IONO {+M} = I + NO2 {+M} : GCARR_ac(9.94d+17, -11859.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} IONO + IONO = I2 + 2.000NO2 : GCARR_ac(2.90d-11, -2600.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2 + NO3 = I + IONO2 : 1.50d-12; {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -929,42 +862,39 @@ IO + NO2 {+M} = IONO2 {+M} : GCJPLPR_abab(7.50d-31, 3.5d0, 7.6d- IONO2 {+M} = IO + NO2 {+M} : GCARR_ac(2.10d+15, -13670.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} IONO2 + I = I2 + NO3 : GCARR_ac(9.10d-11, -146.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I + BrO = IO + Br : 1.20d-11; {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + BrO = Br + I + O2 : GCARR_ac(3.00d-12, 510.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + BrO = Br + OIO : GCARR_ac(1.20d-11, 510.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IO + BrO = 0.8OIO + Br + 0.2I + 0.2O2 : GCARR_ac(5.50d-12, 760.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} IO + OIO {+M} = I2O3 {+M} : 1.00d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} OIO + OIO = I2O4 : 1.50d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O4 {+M} = 2.000OIO {+M} : 3.80d-02; {2017/09/22; Sherwen2016b;TS,JAS,SDE} OIO + NO = IO + NO2 : GCARR_ac(1.10d-12, 542.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + ClO = I + OClO : GCARR_ac(5.10d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + ClO = I + Cl + O2 : GCARR_ac(2.81d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + ClO = ICl + O2 : GCARR_ac(1.02d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I + O3 = IO + O2 : GCARR_ac(2.30d-11, -870.0d0); {2017/09/22; Sherwen2017;TS,JAS,SDE} +IO + ClO = 0.809I + 0.560OClO + + 0.249Cl + 0.191ICl + 0.440O2 : GCARR_ac(4.82d-12, 280.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +I + O3 = IO + O2 : GCARR_ac(2.00d-11, -830.0d0); {2017/09/22; Sherwen2017;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} I + HO2 = HI + O2 : GCARR_ac(1.50d-11, -1090.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2 + OH = HOI + I : 1.80d-10; {2017/09/22; Sherwen2016b;TS,JAS,SDE} HI + OH = I + H2O : 3.00d-11; {2017/09/22; Sherwen2016b;TS,JAS,SDE} HOI + OH = IO + H2O : 5.00d-12; {2017/09/22; Sherwen2016b;TS,JAS,SDE} IO + HO2 = HOI + O2 : GCARR_ac(1.30d-11, 570.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + NO = I + NO2 : GCARR_ac(9.10d-12, 240.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + IO = I + OIO : GCARR_ac(6.00d-12, 500.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -IO + IO {+M} = I2O2 {+M} : GCARR_ac(9.00d-12, 500.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I2O2 {+M} = 2.000IO {+M} : GCARR_ac(1.00d+12, -9770.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} -I2O2 {+M} = OIO + I {+M} : GCARR_ac(2.50d+14, -9770.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IO + NO = I + NO2 : GCARR_ac(8.60d-12, 230.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +IO + IO = 0.400I + 0.400OIO + 0.600I2O2: GCARR_ac(1.50d-11, 500.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; JPL 19-5; KHB} +I2O2 {+M} = 0.008IO + 0.996I + + 0.996OIO {+M} : GCARR_ac(2.51d+14, -9770.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE; 2023/04/18; Bates2023; KHB} CH3I + OH = H2O + I + MO2 : GCARR_ac(2.90d-12, -1100.0d0); {2017/09/22; Sherwen2016b;TS,JAS,SDE} ETHLN + OH = CH2O + CO2 + NO2 : 2.40d-12; {2017/06/15, Marais2016, EAM} PROPNN + OH = NO2 + MGLY : 6.70d-13; {2017/07/14; MCMv3.3; KRT,JAF,CCM,EAM,KHB,RHS} -CH2OO + CO = CH2O : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM} +CH2OO + CO = CH2O + CO2 : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; Bates2023; KHB} CH2OO + NO = CH2O + NO2 : 1.00d-14; {2015/09/25; Millet2015; DBM,EAM} -CH2OO + NO2 = CH2O + NO3 : 1.00d-15; {2015/09/25; Millet2015; DBM,EAM} +CH2OO + NO2 = CH2O + NO3 : 4.25d-12; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} CH2OO + H2O = 0.730HMHP + 0.210HCOOH + - 0.060CH2O + 0.060H2O2 : 1.70d-15; {2019/11/06; Bates2019; KHB} + 0.060CH2O + 0.060H2O2 : 2.80d-16; {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} CH2OO + H2O + H2O = 0.400HMHP + 0.540HCOOH + 0.060CH2O + 0.060H2O2 : GCARR_ac(2.88d-35, 1391.0d0); {2019/11/06; Bates2019; KHB} CH2OO + O3 = CH2O : 1.40d-12; {2019/11/06; Bates2019; KHB} -CH2OO + SO2 = CH2O + SO4 : 3.70d-11; {2019/11/06; Bates2019; KHB} -CH3CHOO + CO = ALD2 : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM} +CH2OO + SO2 = CH2O + SO4 + PH2SO4 : 3.80d-11; {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} +CH3CHOO + CO = ALD2 + CO2 : 1.20d-15; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; Bates2023; KHB} CH3CHOO + NO = ALD2 + NO2 : 1.00d-14; {2015/09/25; Millet2015; DBM,EAM} -CH3CHOO + NO2 = ALD2 + NO3 : 1.00d-15; {2015/09/25; Millet2015; DBM,EAM} -CH3CHOO + SO2 = ALD2 + SO4 : 7.00d-14; {2015/09/25; Millet2015; DBM,EAM} +CH3CHOO + NO2 = ALD2 + NO3 : 4.25d-12; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} +CH3CHOO + SO2 = ALD2 + SO4 + PH2SO4 : 2.65d-11; {2015/09/25; Millet2015; DBM,EAM; 2023/04/18; JPL 19-5; KHB} CH3CHOO + H2O = ALD2 + H2O2 : 6.00d-18; {2015/09/25; Millet2015; DBM,EAM} CH3CHOO + H2O = ACTA : 1.00d-17; {2015/09/25; Millet2015; DBM,EAM} MTPA + OH = PIO2 : GCARR_ac(1.21d-11, 440.0d0); {2017/03/23; IUPAC2010; EVF} @@ -976,8 +906,8 @@ PIO2 + NO = 0.820HO2 + 0.820NO2 + PIO2 + HO2 = PIP : 1.50d-11; {2017/03/23; Roberts1992; EVF} PIO2 + MO2 = HO2 + 0.750CH2O + 0.250MOH + 0.250ROH + 0.750RCHO + 0.750MEK : GCARR_ac(3.56d-14, 708.0d0); {2017/07/14; Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} -PIO2 + MCO3 = 0.500HO2 + 0.500MO2 + RCHO + - MEK + RCOOH : GCARR_ac(7.40d-13, 765.0d0); {2017/03/23; Roberts1992; EVF} +PIO2 + MCO3 = 0.500HO2 + 0.500MO2 + CO2 + + RCHO + 1.125MEK + RCOOH : GCARR_ac(7.40d-13, 765.0d0); {2017/03/23; Roberts1992; EVF; 2022/07/01; 2023/04/18; Bates2023; KHB} PIO2 + NO3 = HO2 + NO2 + RCHO + MEK : 1.20d-12; {2017/03/23; Roberts1992; EVF} MTPA + O3 = 0.850OH + 0.100HO2 + 0.620KO2 + 0.140CO + 0.020H2O2 + @@ -1015,11 +945,11 @@ OLND + HO2 = 0.700MONITS + 0.300MONITU : GCARR_ac(1.66d-13, 1300.0d0); OLNN + MO2 = 2.000HO2 + CH2O + 0.700MONITS + 0.300MONITU : GCARR_ac(1.60d-13, 708.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} OLND + MO2 = 0.500HO2 + 0.500NO2 + - 0.965CH2O + 0.930RCHO + 0.348MEK + + 0.850CH2O + 0.930RCHO + 0.340MEK + 0.250MOH + 0.250ROH + 0.350MONITS + - 0.150MONITU : GCARR_ac(9.68d-14, 708.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} + 0.150MONITU : GCARR_ac(9.68d-14, 708.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS; 2023/04/18; Bates2023; KHB} OLNN + MCO3 = HO2 + MO2 + 0.700MONITS + - 0.300MONITU : GCARR_ac(8.85d-13, 765.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} + 0.300MONITU + CO2 : GCARR_ac(8.85d-13, 765.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS; 2023/04/18; Bates2023; KHB} OLND + MCO3 = 0.500MO2 + NO2 + 0.287CH2O + 1.240RCHO + 0.464MEK + 0.500RCOOH : GCARR_ac(5.37d-13, 765.0d0); {2017/07/14; Browne2014,Roberts1992; KRT,JAF,CCM,EAM,KHB,RHS} OLNN + NO3 = HO2 + NO2 + 0.700MONITS + @@ -1041,7 +971,7 @@ MONITU + NO3 = HONIT : GCARR_ac(3.15d-13, -448.0d0); MONITS + NO3 = HONIT : GCARR_ac(3.15d-13, -448.0d0); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} IONITA = INDIOL + HNO3 : 2.78d-04; {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} MONITA = INDIOL + HNO3 : 2.78d-04; {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} -HONIT + OH = NO3 + HAC : GC_OHHNO3_acacac(2.41d-14, 460.0d0, 2.69d-17, 2199.0d0, 6.51d-34, 1335.0d0); {2017/07/14; Browne2014; KRT,JAF,CCM,EAM,KHB,RHS} +HONIT + OH = NO3 + HAC : GCJPLPR_abab(3.9d-31,7.2d0,1.5d-13,4.8d0,0.6d0) + GCJPLAC_ababac(3.9d-31,7.2d0,1.5d-13,4.8d0,3.7d-14,2.4d2,0.6d0); {2023/04/18; JPL 19-5; KHB} MENO3 + OH = CH2O + NO2 : GCARR_ac(8.00d-13, -1000.0d0); {2019/05/16; JPL 15-10,Fisher2018; JAF} ETNO3 + OH = ALD2 + NO2 : GCARR_ac(1.00d-12, -490.0d0); {2019/05/16; JPL 15-10,Fisher2018; JAF} IPRNO3 + OH = ACET + NO2 : GCARR_ac(1.20d-12, -320.0d0); {2019/05/16; JPL 15-10,Fisher2018; JAF} @@ -1049,7 +979,7 @@ NPRNO3 + OH = RCHO + NO2 : 7.10d-13; ISOP + O3 = 0.416MACR + 0.177MVK + 0.28OH + 0.407CO2 + 0.407CO + 0.407MO2 + 0.16HO2 + 0.58CH2OO + 0.827CH2O + - 0.013H2O2 : 1.3d-17; {2019/11/06; Bates2019; KHB} + 0.013H2O2 : GCARR_ac(1.10d-14, -2000.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} ISOP + OH = LISOPOH + IHOO1 : GC_ISO1(1.7d-11, 3.90d2, 9.33d-2, 5.05d15, -1.22d4, 1.79d14, -8.830d3); {2019/11/06; Bates2019; KHB} ISOP + OH = LISOPOH + IHOO4 : GC_ISO1(1.0d-11, 3.90d2, 2.26d-1, 2.22d9, -7.160d3, 1.75d14, -9.054d3); {2019/11/06; Bates2019; KHB} ISOP + OH = 0.3MCO3 + 0.3MGLY + 0.3CH2O + @@ -1238,7 +1168,7 @@ IDHNBOO + NO = 0.355MCRHNB + 0.546PROPNN + 0.071HAC + HO2 + NO2 + 0.383CH2O : GC_ALK(2.7d-12, 350.0d0, 1.851d0, 11.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} IDHNBOO + NO = IDN : GC_NIT(2.7d-12, 350.0d0, 1.851d0, 11.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} ISOP + NO3 = 0.465INO2B + 0.535INO2D + - LISOPNO3 : GCARR_ac(2.95d-12, 450.0d0); {2019/11/06; Bates2019; KHB} + LISOPNO3 : GCARR_ac(2.95d-12, -450.0d0); {2019/11/06; Bates2019; KHB} INO2B + HO2 = 0.473INPB + 0.048MACR + 0.479MVK + 0.527OH + 0.527CH2O + 0.527NO2 : GCARR_ac(2.47d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} INO2D + HO2 = INPD : GCARR_ac(2.47d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} @@ -1250,7 +1180,7 @@ INO2B + INO2D = 0.399INPB + 0.544MVK + 0.089HO2 + 0.019MACR + 0.563CH2O + 0.032IHN1 : 2.56d-12; {2019/11/06; Bates2019; KHB} INO2D + INO2D = 0.064HO2 + 0.340INA + - 0.861ICN + 0.671IHN1 + 0.127IHN4 : 3.71d-12; {2019/11/06; Bates2019; KHB} + 0.862ICN + 0.671IHN1 + 0.127IHN4 : 3.71d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} INO2D + MO2 = 0.298IHN1 + 0.057IHN4 + 0.244INA + 0.401ICN + 0.355MOH + 0.336HO2 + 0.645CH2O : 1.18d-12; {2019/11/06; Bates2019; KHB} @@ -1258,9 +1188,9 @@ INO2B + MO2 = 0.355INPB + 0.583MVK + 0.028MACR + 0.034ICN + 0.611HO2 + 1.577CH2O + 0.611NO2 + 0.034MOH : 2.80d-13; {2019/11/06; Bates2019; KHB} INO2B + MCO3 = CH2O + NO2 + MO2 + - 0.903MVK + 0.097MACR : 1.92d-12; {2019/11/06; Bates2019; KHB} + 0.903MVK + 0.097MACR + CO2 : 1.92d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} INO2D + MCO3 = MO2 + 0.841INA + 0.159HO2 + - 0.159ICN : 7.71d-12; {2019/11/06; Bates2019; KHB} + 0.159ICN + CO2 : 7.71d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} INO2B + NO3 = CH2O + 2NO2 + 0.903MVK + 0.097MACR : 2.3d-12; {2019/11/06; Bates2019; KHB} INO2D + NO3 = NO2 + 0.841INA + 0.159HO2 + @@ -1307,12 +1237,12 @@ IHPNDOO + NO = IDN : GC_NIT(2.7d-12, 350.0d0, 4.383d0, 1 ICN + OH = NO2 + ICHE : GC_EPO_a(2.97d-12, 390.0d0, 2.715d-19); {2019/11/06; Bates2019; KHB} ICN + OH = 0.244OH + 0.539CO + 0.295HO2 + 0.378MCRHNB + 0.461ICNOO + 0.161MVKN : GCARR_ac(9.35d-12, 390.0d0); {2019/11/06; Bates2019; KHB} -ICNOO + NO = 0.67ICNOO + 0.33CO2 + +ICNOO + NO = 0.67ICNOO + 0.429CO2 + 0.33CO + 0.33HO2 + 0.231PROPNN + NO2 + - 0.099ETHLN : GCARR_ac(2.70d-12, 350.0d0); {2019/11/06; Bates2019; KHB} -ICNOO + HO2 = 0.67ICNOO + 0.33CO2 + + 0.099ETHLN : GCARR_ac(2.70d-12, 350.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} +ICNOO + HO2 = 0.67ICNOO + 0.429CO2 + 0.33CO + 0.33HO2 + 0.231PROPNN + OH + - 0.099ETHLN : GCARR_ac(2.54d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} + 0.099ETHLN : GCARR_ac(2.54d-13, 1300.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} IDN + OH = 0.565NO2 + 0.565ITHN + 0.435IDNOO : GCARR_ac(1.00d-11, 0.0d0); {2019/11/06; Bates2019; KHB} IDNOO + NO = PROPNN + 1.11NO2 + 0.11GLYC + @@ -1323,12 +1253,12 @@ IDNOO + HO2 = 0.18IDN + 0.09NO2 + MVK + OH = MVKOHOO : GCARR_ac(2.60d-12, 610.0d0); {2019/11/06; Bates2019; KHB} MVK + O3 = 0.545MGLY + 0.500CH2OO + 0.600CH2O + 0.380MCO3 + 0.100HO2 + - 0.080OH + 0.180CO + 0.075PYAC + 0.045H2O2 : GCARR_ac(8.50d-16, -1520.0d0); {2019/11/06; Bates2019; KHB} + 0.080OH + 0.280CO + 0.075PYAC + 0.045H2O2 : GCARR_ac(8.50d-16, -1520.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MACR + OH = 0.036ATOOH + 0.036CO + 0.036HO2 + 0.964MCROHOO : GCARR_ac(4.40d-12, 380.0d0); {2019/11/06; Bates2019; KHB} MACR + OH = MACR1OO : GCARR_ac(2.70d-12, 470.0d0); {2019/11/06; Bates2019; KHB} MACR + O3 = 0.880MGLY + 0.880CH2OO + - 0.120CH2O + 0.120OH + 0.120CO + 0.120MCO3 : GCARR_ac(1.40d-15, -2100.0d0); {2019/11/06; Bates2019; KHB} + 0.120CH2O + 0.120OH + 0.120CO + 0.120MCO3 : GCARR_ac(1.50d-15, -2110.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; JPL 19-5; KHB} MACR + NO3 = 0.320HNO3 + 0.320MACR1OO + 0.680OH + 0.680CO + 0.680PROPNN : GCARR_ac(1.80d-13, -1190.0d0); {2019/11/06; Bates2019; KHB} MVKN + OH = 0.241CH2O + 0.690NO3 + @@ -1353,7 +1283,7 @@ MCRENOL + OH = 0.75CO + 0.285OH + 0.187HCOOH : GCARR_ac(3.71d-12, 983.0d0); {2019/11/06; Bates2019; KHB} MVKPC + OH = OH + CO + MGLY : GCARR_ac(5.00d-12, 470.0d0); {2019/11/06; Bates2019; KHB} MVKDH + OH = 0.4MVKHCB + 0.6MVKHC + HO2 : GCARR_ac(8.70d-12, 70.0d0); {2019/11/06; Bates2019; KHB} -MVKHCB + OH = OH + MGLY : GCARR_ac(5.00d-12, 470.0d0); {2019/11/06; Bates2019; KHB} +MVKHCB + OH = OH + MGLY + CO : GCARR_ac(5.00d-12, 470.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MVKHC + OH = 2CO + HO2 + MCO3 : GCARR_ac(2.00d-12, 70.0d0); {2019/11/06; Bates2019; KHB} MCRDH + OH = 0.16MVKHCB + HO2 + 0.84HAC + 0.84CO : GCARR_ac(2.4d-11, 70.0d0); {2019/11/06; Bates2019; KHB} @@ -1362,7 +1292,7 @@ MVKOHOO + HO2 = 0.360MCO3 + 0.360GLYC + 0.335MVKHP + 0.050MGLY + 0.050CH2O : GCARR_ac(2.12d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} MVKOHOO + NO = 0.758MCO3 + 0.758GLYC + 0.242MGLY + 0.242CH2O + 0.242HO2 + NO2 : GC_ALK(2.7d-12, 350.0d0, 4.573d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} -MVKOHOO + NO = 0.438MVKN : GC_NIT(2.7d-12, 350.0d0, 4.573d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} +MVKOHOO + NO = MVKN : GC_NIT(2.7d-12, 350.0d0, 4.573d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MCROHOO + HO2 = 0.41MCRHP + 0.507HAC + 0.507CO + 0.507HO2 + 0.59OH + 0.59O2 + 0.083MGLY + 0.083CH2O : GCARR_ac(2.12d-13, 1300.0d0); {2019/11/06; Bates2019; KHB} @@ -1371,8 +1301,8 @@ MACR1OO + HO2 = 0.5MACR1OOH + 0.5CH2O + 0.5OH + 0.13O3 : GCARR_ac(3.14d-12, 580.0d0); {2019/11/06; Bates2019; KHB} MACR1OOH + OH = 0.165MACR1OO + 0.585OH + 0.488HAC + 0.488CO + 0.098HMML + - 0.415CO2 + 0.25CH2O + 0.087MCO3 + - 0.162MO2 : 1.66d-11; {2019/11/06; Bates2019; KHB} + 0.410CO2 + 0.25CH2O + 0.087MCO3 + + 0.162MO2 : 1.66d-11; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} MCROHOO = HAC + CO + OH : GCARR_ac(2.90d+7, -5297.0d0); {2019/11/06; Bates2019; KHB} MCROHOO + NO = 0.86HAC + 0.86CO + 0.86HO2 + NO2 + 0.14MGLY + 0.14CH2O : GC_ALK(2.7d-12, 350.0d0, 2.985d0, 6.0d0, 1.0d0, 0.0d0); {2019/11/06; Bates2019; KHB} @@ -1391,7 +1321,7 @@ MPAN = MACR1OO + NO2 : GCARR_ac(1.58d+16, -13500.0d0); MPAN + OH = 0.75HMML + NO3 + 0.25HAC + 0.25CO : 2.90d-11; {2019/11/06; Bates2019; KHB} HMML + OH = 0.700MGLY + 0.700OH + - 0.300MCO3 + 0.300HCOOH : 4.33d-12; {2019/11/06; Bates2019; KHB} + 0.300MCO3 + 0.300HCOOH + CO : 4.33d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} ICPDH + OH = CO + 0.5HO2 + 0.5OH + 0.5MCRHP + 0.35MVKDH + 0.15MCRDH : 1.00d-11; {2019/11/06; Bates2019; KHB} IDCHP + OH = 0.888CO + 0.444OH + @@ -1403,8 +1333,8 @@ IDHPE + OH = OH + CO2 + 0.571MCRHP + ITCN + OH = CO + NO2 + 0.75MVKHP + 0.25MCRHP : 1.00d-11; {2019/11/06; Bates2019; KHB} ITHN + OH = 0.300OH + 0.620HO2 + - 0.920ITCN + 0.037IDHNBOO + 0.041ICNOO + - 0.022MCRENOL + 0.022NO2 + 0.022CH2O : 3.00d-12; {2019/11/06; Bates2019; KHB} + 0.900ITCN + 0.037IDHNBOO + 0.041ICNOO + + 0.022MCRENOL + 0.022NO2 + 0.022CH2O : 3.00d-12; {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} ETHLN + NO3 = HNO3 + NO2 + MCO3 : GCARR_ac(1.40d-12, -1860.0d0); {2019/11/06; Bates2019; KHB} PYAC + OH = MCO3 + CO2 : 8.00d-13; {2019/11/06; Bates2019; KHB} HMHP + OH = 0.5CH2O + 0.5HO2 + 0.5HCOOH + @@ -1418,42 +1348,42 @@ NRO2 + HO2 = LNRO2H + HO2 : GCARR_ac(1.40d-12, 700.0d0); NRO2 + NO = LNRO2N + NO : GCARR_ac(2.60d-12, 350.0d0); {2013/08/12; Pye2010; HOTP} // // --- C2H2 & C2H4 chemistry (per KHB) -C2H4 + O3 = CH2O + CH2OO : GCARR_abc(9.10d-15, 0.0d0, -2580.0d0); {2021/09/22; Kwon2020; KHB,MSL} +C2H4 + O3 = CH2O + CH2OO : GCARR_ac(1.20d-14, -2630.0d0); {2021/09/22; Kwon2020; KHB,MSL; 2023/04/18; JPL 19-5; KHB} C2H4 + OH = ETOO : GCJPLPR_abab(1.10d-28, 3.5d+00, 8.4d-12, 1.75d0, 0.5d0); {2021/09/22; Kwon2020; KHB,MSL} C2H2 + OH = 0.636GLYX + 0.636OH + 0.364CO + 0.364HO2 + 0.364HCOOH : GCJPLPR_abab(5.50d-30, 0.0d0, 8.3d-13, -2.0d0, 0.5d0); {2021/09/22; Kwon2020; KHB,MSL} -ETOO + HO2 = ETHP : GCARR_abc(1.53d-13, 0.0d0, 1300.0d0); {2021/09/22; Kwon2020; KHB,MSL} +ETOO + HO2 = ETHP : GCARR_ac(1.53d-13, 1300.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETOO + NO = 0.995ETO + - 0.995NO2 + 0.005ETHN : GCARR_abc(2.7d-12, 0.0d+00, 360.0d0); {2021/09/22; Kwon2020; KHB,MSL} + 0.995NO2 + 0.005ETHN : GCARR_ac(2.7d-12, 360.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETOO + NO3 = ETO + NO2 : 2.3d-12; {2021/09/22; Kwon2020; KHB,MSL} ETOO + MO2 = 0.6ETO + 0.6HO2 + 0.8CH2O + 0.2MOH + 0.2ETHP + 0.2GLYC : 6.00d-13; {2021/09/22; Kwon2020; KHB,MSL} -ETO = HO2 + 2.000CH2O : GCARR_abc(9.5d+13, 0.0d0, -5988.0d0); {2021/09/22; Kwon2020; KHB,MSL} -ETO + O2 = GLYC + HO2 : GCARR_abc(2.5d-14, 0.0d0, -300.0d0); {2021/09/22; Kwon2020; KHB,MSL} +ETO = HO2 + 2.000CH2O : GCARR_ac(9.5d+13, -5988.0d0); {2021/09/22; Kwon2020; KHB,MSL} +ETO + O2 = GLYC + HO2 : GCARR_ac(2.5d-14, -300.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETHN + OH = GLYC + NO2 : 8.40d-13; {2021/09/22; Kwon2020; KHB,MSL} -ETHP + OH = ETOO : GCARR_abc(1.90d-12, 0.0d+00, 190.0d0); {2021/09/22; Kwon2020; KHB,MSL} +ETHP + OH = ETOO : GCARR_ac(1.90d-12, 190.0d0); {2021/09/22; Kwon2020; KHB,MSL} ETHP + OH = OH + GLYC : 1.38d-11; {2021/09/22; Kwon2020; KHB,MSL} // // --- Aromatic Chemistry (per KHB) BENZ + OH = BRO2 + 0.54PHEN + 0.54HO2 + 0.46AROMRO2 + 0.18GLYX + - 0.2CO +0.56AROMP4 : GCARR_abc(2.3d-12, 0.0d0, -193.0d0); {2021/09/29; Bates2021b; KHB,MSL} + 0.2CO +0.55AROMP4 : GCARR_ac(2.3d-12, -193.0d0); {2021/09/29; Bates2021b; KHB,MSL; 2022/07/01; fix C accounting; KHB} TOLU + OH = TRO2 + 0.19CSL + 0.19HO2 + 0.81AROMRO2 + 0.06BALD + 0.12GLYX + 0.12MGLY + 0.27CO + 0.04MVK + 0.3AROMP5 + - 0.68AROMP4 : GCARR_abc(1.8d-12, 0.0d0, 340.0d0); {2021/09/29; Bates2021b; KHB,MSL} + 0.68AROMP4 : GCARR_ac(1.8d-12, 340.0d0); {2021/09/29; Bates2021b; KHB,MSL} XYLE + OH = XRO2 + 0.15CSL + 0.15HO2 + 0.85AROMRO2 + 0.06BALD + 0.1GLYX + 0.2MGLY + 0.3CO + 0.04MVK + 0.56AROMP5 + 0.28AROMP4 + 0.45RCOOH : 1.7d-11; {2021/09/29; Bates2021b; KHB,MSL} AROMRO2 + HO2 = OH + HO2 : 2.91d-13 * EXP( 1300.0d0 / TEMP ) * 0.82d0; {2021/09/29; Bates2021b; KHB,MSL} -AROMRO2 + NO = NO2 + HO2 : GCARR_abc(2.60d-12, 0.0d+00, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} +AROMRO2 + NO = NO2 + HO2 : GCARR_ac(2.60d-12, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} AROMRO2 + NO3 = NO2 + HO2 : 2.30d-12; {2021/09/29; Bates2021b; KHB,MSL} -AROMRO2 + MO2 = CH2O + HO2 + HO2 : GCARR_abc(1.70d-14, 0.0d0, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL} -AROMRO2 + MCO3 = MO2 + HO2 : GCARR_abc(4.20d-14, 0.0d0, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL} +AROMRO2 + MO2 = CH2O + HO2 + HO2 : GCARR_ac(1.70d-14, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL} +AROMRO2 + MCO3 = MO2 + HO2 + CO2 : GCARR_ac(4.20d-14, 220.0d0); {2021/09/29; Bates2021b; KHB,MSL; 2022/07/01; fix C accounting; KHB} PHEN + OH = 0.06BENZO + 0.06GLYX + 0.18AROMP4 + 0.14AROMRO2 + - 0.8MCT + 0.8HO2 : GCARR_abc(4.70d-13, 0.0d0, 1220.0d0); {2021/09/29; Bates2021b; KHB,MSL} + 0.8MCT + 0.8HO2 : GCARR_ac(4.70d-13, 1220.0d0); {2021/09/29; Bates2021b; KHB,MSL} PHEN + NO3 = 0.258NPHEN + 0.742HNO3 + 0.742BENZO : 3.8d-12; {2021/09/29; Bates2021b; KHB,MSL} CSL + OH = 0.727MCT + 0.727HO2 + @@ -1465,29 +1395,30 @@ MCT + OH = 0.3BENZO + 0.7AROMRO2 + MCT + O3 = GLYC + HO2 + OH + AROMP4 : 9.2d-18; {2021/09/29; Bates2021b; KHB,MSL} MCT + NO3 = 0.5NPHEN + 0.5HNO3 + 0.3BENZO + 0.2AROMRO2 + 0.3AROMP4 : 9.9d-11; {2021/09/29; Bates2021b; KHB,MSL} -BALD + OH = BZCO3 : GCARR_abc(5.90d-12, 0.0d0, 225.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BALD + OH = BZCO3 : GCARR_ac(5.90d-12, 225.0d0); {2021/09/29; Bates2021b; KHB,MSL} BALD + NO3 = BZCO3 + HNO3 : 2.4d-15; {2021/09/29; Bates2021b; KHB,MSL} BZCO3 + HO2 = 0.35CO2 + 0.2BENZO2 + - 0.15O3 + 0.2OH + 0.15BENZP + 0.65BZCO3H : GCARR_abc(1.10d-11, 0.0d0, 340.0d0); {2021/09/29; Bates2021b; KHB,MSL} -BZCO3 + NO = NO2 + CO2 + BENZO2 : GCARR_abc(7.50d-12, 0.0d0, 290.0d0); {2021/09/29; Bates2021b; KHB,MSL} + 0.15O3 + 0.2OH + 0.15BENZP + 0.65BZCO3H : GCARR_ac(1.10d-11, 340.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BZCO3 + NO = NO2 + CO2 + BENZO2 : GCARR_ac(7.50d-12, 290.0d0); {2021/09/29; Bates2021b; KHB,MSL} BZCO3 + NO2 = BZPAN : GC_PAN_acac(3.28d-28, -6.87d0, 1.125d-11, -1.105d0, 0.3d0); {2021/09/29; Bates2021b; KHB,MSL} BZCO3H + OH = BZCO3 : 4.66d-12; {2021/09/29; Bates2021b; KHB,MSL} BZPAN = BZCO3 + NO2 : GC_PAN_abab(1.10d-5, -10100.0d0, 1.90d+17, -14100.0d0, 0.3d0)*0.67d0; {2021/09/29; Bates2021b; KHB,MSL} BZPAN + OH = BENZP + CO2 + NO2 : 1.06d-12; {2021/09/29; Bates2021b; KHB,MSL} BENZO2 + NO2 = BENZO + NO3 : 7.00d-12; {2021/09/29; Bates2021b; KHB,MSL} -BENZO2 + NO = BENZO + NO2 : GCARR_abc(2.670d-12, 0.0d0, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BENZO2 + NO = BENZO + NO2 : GCARR_ac(2.670d-12, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} BENZO2 + NO3 = BENZO + NO2 : 2.30d-12; {2021/09/29; Bates2021b; KHB,MSL} -BENZO2 + HO2 = BENZP : GCARR_abc(2.24d-13, 0.0d0, 1300.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BENZO2 + HO2 = BENZP : GCARR_ac(2.24d-13, 1300.0d0); {2021/09/29; Bates2021b; KHB,MSL} BENZP + OH = BENZO2 : 3.60d-12; {2021/09/29; Bates2021b; KHB,MSL} BENZO + O3 = BENZO2 : 2.86d-13; {2021/09/29; Bates2021b; KHB,MSL} BENZO + NO2 = NPHEN : 2.08d-12; {2021/09/29; Bates2021b; KHB,MSL} -NPHEN + OH = 0.5R4N1 + AROMP4 + 0.5NO2 : 3.47d-12; {2021/09/29; Bates2021b; KHB,MSL} -NPHEN + NO3 = 0.5HNO3 + - NO2 + 0.5R4N1 + AROMP4 : 2.60d-12; {2021/09/29; Bates2021b; KHB,MSL} -BENZO2 + MO2 = BENZO + HO2 + CH2O : GCARR_abc(2.670d-13, 0.0d0, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} -BZCO3 + MO2 = BENZO2 + CO2 + HO2 + CH2O : GCARR_abc(2.670d-12, 0.0d0, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} -AROMP4 + OH = 0.6GLYX + 0.25CO + 0.25HCOOH + - 0.25OH + 0.33HO2 + 0.33RCO3 + 0.45RCOOH : 5.0d-11; {2021/09/29; Bates2021b; KHB,MSL} +NPHEN + OH = 0.5R4N1 + 0.9AROMP4 + + 0.5NO2 +0.15CO : 3.47d-12; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} +NPHEN + NO3 = 0.5HNO3 + NO2 + + 0.5R4N1 + 0.9AROMP4 + 0.15CO : 2.60d-12; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} +BENZO2 + MO2 = BENZO + HO2 + CH2O : GCARR_ac(2.670d-13, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BZCO3 + MO2 = BENZO2 + CO2 + HO2 + CH2O : GCARR_ac(2.670d-12, 365.0d0); {2021/09/29; Bates2021b; KHB,MSL} +AROMP4 + OH = 0.6GLYX + 0.26CO + 0.26HCOOH + + 0.25OH + 0.33HO2 + 0.33RCO3 + 0.43RCOOH : 5.0d-11; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB} AROMP4 + O3 = 0.5HCOOH + 0.5CO + 0.6GLYX + 0.9GLYC + 0.1HO2 + 0.1OH : 8.0d-16; {2021/09/29; Bates2021b; KHB,MSL} AROMP4 = 0.2HO2 + 0.2GLYX + 1.2RCHO : 1.5d-3; {2021/09/29; Bates2021b; KHB,MSL} @@ -1497,7 +1428,7 @@ AROMP5 + OH = 0.6MGLY + 0.15ACTA + AROMP5 + O3 = 0.6MGLY + 0.3ACTA + 0.2HCOOH + 0.5CO + 0.95GLYC + 0.1HO2 + 0.1OH : 8.0d-16; {2021/09/29; Bates2021b; KHB,MSL} AROMP5 = 0.2HO2 + 0.2ALK4O2 + - 0.2MGLY + 1.2RCHO : 1.5d-3; {2021/09/29; Bates2021b; KHB,MSL}{2023/05/14; Brewer2023; JFB} + 0.2MGLY + 1.15RCHO + 0.05CO : 1.5d-3; {2021/09/29; Bates2021b; KHB,MSL; 2023/04/18; Bates2023; KHB},{2023/05/14; Brewer2023; JFB} // // KHB -- "we still need to include the dummy species for aromatic oxidation // to make the complex SOA code work. Hopefully this will be changed @@ -1508,13 +1439,14 @@ AROMP5 = 0.2HO2 + 0.2ALK4O2 + // XRO2, TRO2, and BRO2 as products from the BENZ + OH, TOLU + OH, // and XYLE + OH reactions above, and not include the following reactions)" // -BRO2 + HO2 = HO2 + LBRO2H : GCARR_abc(1.40d-12, 0.0d0, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} -BRO2 + NO = NO + LBRO2N : GCARR_abc(2.60d-12, 0.0d0, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} -TRO2 + HO2 = HO2 + LTRO2H : GCARR_abc(1.40d-12, 0.0d0, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} -TRO2 + NO = NO + LTRO2N : GCARR_abc(2.60d-12, 0.0d0, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} -XRO2 + HO2 = HO2 + LXRO2H : GCARR_abc(1.40d-12, 0.0d0, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} -XRO2 + NO = NO + LXRO2N : GCARR_abc(2.60d-12, 0.0d0, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BRO2 + HO2 = HO2 + LBRO2H : GCARR_ac(1.40d-12, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} +BRO2 + NO = NO + LBRO2N : GCARR_ac(2.60d-12, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} +TRO2 + HO2 = HO2 + LTRO2H : GCARR_ac(1.40d-12, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} +TRO2 + NO = NO + LTRO2N : GCARR_ac(2.60d-12, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} +XRO2 + HO2 = HO2 + LXRO2H : GCARR_ac(1.40d-12, 700.0d0); {2021/09/29; Bates2021b; KHB,MSL} +XRO2 + NO = NO + LXRO2N : GCARR_ac(2.60d-12, 350.0d0); {2021/09/29; Bates2021b; KHB,MSL} MO2 + NO3 = NO2 + CH2O + HO2 : 1.20d-12; {2022/10/18: IUPAC ROO_19; KHB,BMY} +FURA + OH = BUTDI : GCARR_ac(1.32d-11, 334.0d0); {2023/02/07; Carter2022; TSC} // // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // %%%%% Heterogeneous chemistry reactions %%%%% @@ -1551,14 +1483,14 @@ HOCl + HCl = Cl2 + H2O : HOClUptkByHCl( State_Het ); HOCl + HBr = BrCl + H2O : HOClUptkByHBr( State_Het ); {2014/02/03; Eastham2014; SDE} HOCl + SALACL = Cl2 + H2O : HOClUptkBySALACL( State_Het ); {2018/01/22; XW} HOCl + SALCCL = Cl2 + H2O : HOClUptkBySALCCL( State_Het ); {2018/01/22; XW} -HOCl + SO2 = SO4 + HCl : HOClUptkByHSO3m( State_Het ) + HOClUptkBySO3mm( State_Het ); {2018/11/08; XW; June 6, 2021, MSL} +HOCl + SO2 = SO4 + HCl : HOClUptkByHSO3m( State_Het ) + HOClUptkBySO3mm( State_Het ) + SRHOCl; {2023/01/30; Add SRHOCL, BA; 2018/11/08; XW; June 6, 2021, MSL} HOBr + HBr = Br2 + H2O : HOBrUptkByHBr( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HOBr + HCl = BrCl + H2O : HOBrUptkByHCl( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HOBr + SALACL = BrCl + H2O : HOBrUptkBySALACL( State_Het ); {2018/01/22; Sherwen2017;TS,JAS,SDE;XW} HOBr + SALCCL = BrCl + H2O : HOBrUptkBySALCCL( State_Het ); {2018/01/22; Sherwen2017;TS,JAS,SDE,XW} HOBr + BrSALA = Br2 : HOBrUptkByBrSALA( State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE} HOBr + BrSALC = Br2 : HOBrUptkByBrSALC( State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE} -HOBr + SO2 = SO4 + HBr : HOBrUptkByHSO3m( State_Het ) + HOBrUptkBySO3mm( State_Het ); {2017/11/15; Chen2017; QJC; June 6, 2021, MSL} +HOBr + SO2 = SO4 + HBr : HOBrUptkByHSO3m( State_Het ) + HOBrUptkBySO3mm( State_Het ) + SRHOBr; {2023/01/30; Add SRHOBrL, BA; 2017/11/15; Chen2017; QJC; June 6, 2021, MSL} O3 + HBr = HOBr : O3uptkByHBr( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} O3 + BrSALA = HOBr : O3uptkByBrSALA( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} O3 + BrSALC = HOBr : O3uptkByBrSALC( State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -1567,6 +1499,8 @@ HBr = BrSALC : HBrUptkBySALC( State_Het ); HI = AERI : IuptkBySulf1stOrd( SR_MW(ind_HI), 0.10_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HI = ISALA : IuptkBySALA1stOrd( SR_MW(ind_HI), 0.10_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} HI = ISALC : IuptkBySALC1stOrd( SR_MW(ind_HI), 0.10_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +HOI = ISALA : IuptkByAlkSALA1stOrd( SR_MW(ind_HOI), 0.01_dp, State_Het ); {2023/01/24; Restored deleted rxn:BA} +HOI = ISALC : IuptkByAlkSALC1stOrd( SR_MW(ind_HOI), 0.01_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} I2O2 = 2.000AERI : IuptkBySulf1stOrd( SR_MW(ind_I2O2), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O2 = 2.000ISALA : IuptkBySALA1stOrd( SR_MW(ind_I2O2), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O2 = 2.000ISALC : IuptkBySALC1stOrd( SR_MW(ind_I2O2), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} @@ -1576,6 +1510,10 @@ I2O3 = 2.000ISALC : IuptkBySALC1stOrd( SR_MW(ind_I2O3), 0.02_dp, Stat I2O4 = 2.000AERI : IuptkBySulf1stOrd( SR_MW(ind_I2O4), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O4 = 2.000ISALA : IuptkBySALA1stOrd( SR_MW(ind_I2O4), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} I2O4 = 2.000ISALC : IuptkBySALC1stOrd( SR_MW(ind_I2O4), 0.02_dp, State_Het ); {2017/09/22; Sherwen2016b;TS,JAS,SDE} +IONO = ISALA + HNO2 : IuptkByAlkSALA1stOrd( SR_MW(ind_IONO), 0.02_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} +IONO = ISALC + HNO2 : IuptkByAlkSALC1stOrd( SR_MW(ind_IONO), 0.02_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} +IONO2 = ISALA + HNO3 : IuptkByAlkSALA1stOrd( SR_MW(ind_IONO2), 0.01_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} +IONO2 = ISALC + HNO3 : IuptkByAlkSALC1stOrd( SR_MW(ind_IONO2), 0.01_dp, State_Het ); {2022/12/02; Restored deleted rxn:BA} IONO2 + H2O = HOI + HNO3 : IONO2uptkByH2O( State_Het ); {2021/09/16 XW, TSherwen} IONO + BrSALA = IBr + HNO2 : IbrkdnByAcidBrSALA( SR_MW(ind_IONO), C(ind_IONO), 0.02_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} IONO + BrSALC = IBr + HNO2 : IbrkdnByAcidBrSALC( SR_MW(ind_IONO), C(ind_IONO), 0.02_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} @@ -1590,7 +1528,7 @@ HOI + BrSALC = IBr : IbrkdnByAcidBrSALC( SR_MW(ind_HOI), C(ind_HOI), 0 HOI + SALACL = ICl : IbrkdnByAcidSALACl( SR_MW(ind_HOI), C(ind_HOI), 0.01_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} HOI + SALCCL = ICl : IbrkdnByAcidSALCCl( SR_MW(ind_HOI), C(ind_HOI), 0.01_dp, State_Het ); {2017/09/22; Sherwen2017;TS,JAS,SDE,XW} GLYX = SOAGX : GLYXuptk1stOrd( SR_MW(ind_GLYX), State_Het); {2017/06/15; Marais2016, EAM} -MGLY = SOAGX : MGLYuptk1stOrd( SR_MW(ind_MGLY), State_Het); {2017/06/15; Marais2016, EAM} +MGLY = 1.500SOAGX : MGLYuptk1stOrd( SR_MW(ind_MGLY), State_Het); {2017/06/15; Marais2016, EAM; 2023/04/18; Bates2023; KHB} IEPOXA = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_IEPOXA), .FALSE., State_Het ); {2017/06/15; Marais2016, EAM} IEPOXB = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_IEPOXB), .FALSE., State_Het ); {2017/06/15; Marais2016, EAM} IEPOXD = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_IEPOXD), .FALSE., State_Het ); {2017/06/15; Marais2016, EAM} @@ -1600,8 +1538,8 @@ R4N2 = IONITA : VOCuptk1stOrd( SR_MW(ind_R4N2), 5.0E-3_dp, State_ MONITS = MONITA : VOCuptk1stOrd( SR_MW(ind_MONITS), 1.0E-2_dp, State_Het ); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} MONITU = MONITA : VOCuptk1stOrd( SR_MW(ind_MONITU), 1.0E-2_dp, State_Het ); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} HONIT = MONITA : VOCuptk1stOrd( SR_MW(ind_HONIT), 1.0E-2_dp, State_Het ); {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS} -PYAC = SOAGX : MGLYuptk1stOrd( SR_MW(ind_PYAC), State_Het ); {2019/11/06; Bates2019; KHB} -HMML = SOAIE : IEPOXuptk1stOrd( SR_MW(ind_HMML), .TRUE., State_Het); {2019/11/06; Bates2019; KHB} +PYAC = 1.500SOAGX : MGLYuptk1stOrd( SR_MW(ind_PYAC), State_Het ); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} +HMML = 0.800SOAIE : IEPOXuptk1stOrd( SR_MW(ind_HMML), .TRUE., State_Het); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} IHN1 = IONITA : VOCuptk1stOrd( SR_MW(ind_IHN1), 5.0E-3_dp, State_Het ); {2019/11/06; Bates2019; KHB} IHN2 = IONITA : VOCuptk1stOrd( SR_MW(ind_IHN2), 5.0E-2_dp, State_Het ); {2019/11/06; Bates2019; KHB} IHN3 = IONITA : VOCuptk1stOrd( SR_MW(ind_IHN3), 5.0E-3_dp, State_Het ); {2019/11/06; Bates2019; KHB} @@ -1639,14 +1577,14 @@ ALD2 + hv = 0.880MO2 + HO2 + 0.880CO + 0.120MCO3 : PHOTOL(61); {2014/12/19; FAST-JX v7.0 fix; JMAO} ALD2 + hv = CH4 + CO : PHOTOL(62); PAN + hv = 0.700MCO3 + 0.700NO2 + - 0.300MO2 + 0.300NO3 : PHOTOL(59); {2014/05/23; Eastham2014; JMAO,SDE} -RCHO + hv = 0.500OTHRO2 + HO2 + CO + - 0.070A3O2 + 0.270B3O2 : PHOTOL(70); {2019/05/10; Fisher2018; JAF} + 0.300MO2 + 0.300NO3 + 0.300CO2 : PHOTOL(59); {2014/05/23; Eastham2014; JMAO,SDE; 2023/04/18; Bates2023; KHB} +RCHO + hv = 0.490OTHRO2 + HO2 + CO + + 0.070A3O2 + 0.270B3O2 : PHOTOL(70); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} ACET + hv = MCO3 + MO2 : PHOTOL(76); ACET + hv = 2.000MO2 + CO : PHOTOL(77); -MEK + hv = 0.850MCO3 + 0.425OTHRO2 + +MEK + hv = 0.850MCO3 + 0.415OTHRO2 + 0.150MO2 + 0.150RCO3 + 0.060A3O2 + - 0.230B3O2 : PHOTOL(69); {2019/05/10; Fisher2018; JAF} + 0.230B3O2 : PHOTOL(69); {2019/05/10; Fisher2018; JAF; 2023/04/18; Bates2023; KHB} GLYC + hv = 0.900CH2O + 1.730HO2 + CO + 0.070OH + 0.100MOH : PHOTOL(68); {2014/05/23; Eastham2014; JMAO,SDE} GLYX + hv = 2.000HO2 + 2.000CO : PHOTOL(72); @@ -1662,19 +1600,19 @@ PRPN + hv = OH + HO2 + RCHO + NO2 : PHOTOL(79); ETP + hv = OH + HO2 + ALD2 : PHOTOL(80); RA3P + hv = OH + HO2 + RCHO : PHOTOL(81); RB3P + hv = OH + HO2 + ACET : PHOTOL(82); -R4P + hv = OH + HO2 + RCHO : PHOTOL(83); -ALK4P + hv = OH + HO2 + RCHO : PHOTOL(83); {2023/05/14; Brewer2023; JFB} +R4P + hv = OH + HO2 + 1.500RCHO : PHOTOL(83); {2023/04/18; Bates2023; KHB} +ALK4P + hv = OH + HO2 + 1.500RCHO : PHOTOL(83); {2023/05/14; Brewer2023; JFB} PP + hv = OH + HO2 + ALD2 + CH2O : PHOTOL(84); -RP + hv = OH + HO2 + ALD2 : PHOTOL(85); -R4N2 + hv = NO2 + 0.320ACET + 0.190MEK + - 0.180MO2 + 0.270HO2 + 0.320ALD2 + - 0.130RCHO + 0.050A3O2 + 0.180B3O2 + - 0.320OTHRO2 : PHOTOL(98); -ALK4N2 + hv = NO2 + 0.320ACET + 0.190MEK + - 0.180MO2 + 0.270HO2 + 0.320ALD2 + - 0.130RCHO + 0.050A3O2 + 0.180B3O2 + - 0.320OTHRO2 : PHOTOL(98); {2023/05/14; Brewer2023; JFB} -MAP + hv = OH + MO2 : PHOTOL(99); +RP + hv = OH + HO2 + ALD2 + MO2 : PHOTOL(85); {2023/04/18; Bates2023; KHB} +R4N2 + hv = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : PHOTOL(98); {2023/04/18; Bates2023; KHB} +ALK4N2 + hv = NO2 + 0.340ACET + 0.190MEK + + 0.190MO2 + 0.270HO2 + 0.340ALD2 + + 0.150RCHO + 0.050A3O2 + 0.190B3O2 + + 0.340OTHRO2 : PHOTOL(98); {2023/05/14; Brewer2023; JFB} +MAP + hv = OH + MO2 + CO2 : PHOTOL(99); {2023/04/18; Bates2023; KHB} Br2 + hv = 2.000Br : PHOTOL(23); {2012/06/07; Parrella2012; JPP} BrO + hv = Br + O : PHOTOL(28); {2014/02/03; Eastham2014; SDE} HOBr + hv = Br + OH : PHOTOL(32); {2012/06/07; Parrella2012; JPP} @@ -1779,7 +1717,7 @@ HPALD1 + hv = 0.888CO + 1.662OH + 0.552MCRENOL + 0.224C4HVP1 : PHOTOL(142); {2019/11/06; Bates2019; KHB} HPALD2 + hv = 0.818CO + 1.637OH + 0.182HO2 + 0.182IDC + 0.182MVKPC + - 0.455MCRENOL + 0.182C4HVP2 : PHOTOL(143); {2019/11/06; Bates2019; KHB} + 0.454MCRENOL + 0.182C4HVP2 : PHOTOL(143); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} HPALD3 + hv = CO + OH + HO2 + MVK : PHOTOL(144); {2019/11/06; Bates2019; KHB} HPALD4 + hv = CO + OH + HO2 + MACR : PHOTOL(145); {2019/11/06; Bates2019; KHB} IHN1 + hv = NO2 + 0.45HC5A + 0.45HO2 + @@ -1798,13 +1736,13 @@ ICN + hv = NO2 + 0.839CO + 0.645OH + 0.481MCRENOL + 0.128C4HVP2 + 0.068C4HVP1 : PHOTOL(106); {2019/11/06; Bates2019; KHB} IDN + hv = 1.555NO2 + 0.5GLYC + 0.5HAC + 0.05MVK + 0.005MACR + 0.055CH2O + - 0.227INA + 0.228ICN + 0.228HO2 : PHOTOL(78); {2019/11/06; Bates2019; KHB} + 0.222INA + 0.223ICN + 0.228HO2 : PHOTOL(78); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} ICPDH + hv = CO + 1.5HO2 + 0.5OH + 0.5MCRHP + 0.35MVKDH + 0.15MCRDH : PHOTOL(153); {2019/11/06; Bates2019; KHB} -ICPDH + hv = OH + HO2 + 0.122CO + - 0.1CH2O + 0.1MVKHCB + 0.438HAC + - 0.438GLYX + 0.088GLYC + 0.088MGLY + - 0.122MCRDH : PHOTOL(154); {2019/11/06; Bates2019; KHB} +ICPDH + hv = OH + HO2 + 0.163CO + + 0.133CH2O + 0.133MVKHCB + 0.586HAC + + 0.586GLYX + 0.118GLYC + 0.118MGLY + + 0.163MCRDH : PHOTOL(154); {2019/11/06; Bates2019; KHB; 2023/04/18; Bates2023; KHB} IDHDP + hv = 1.25OH + 0.25GLYC + 0.25HAC + 0.75ICPDH + 0.75HO2 : PHOTOL(155); {2019/11/06; Bates2019; KHB} IDHPE + hv = OH + HO2 + 0.429MGLY + diff --git a/KPP/fullchem/fullchem.kpp b/KPP/fullchem/fullchem.kpp index 8a217794d..2dfdfae77 100644 --- a/KPP/fullchem/fullchem.kpp +++ b/KPP/fullchem/fullchem.kpp @@ -1,18 +1,18 @@ -#MINVERSION 2.5.0 { Need this version of KPP or later } -#INTEGRATOR rosenbrock_autoreduce { Use Rosenbrock integration method } -#AUTOREDUCE on { ... with autoreduce enabled but optional } -#LANGUAGE Fortran90 { Generate solver code in Fortran90 ... } -#UPPERCASEF90 on { ... with .F90 suffix (instead of .f90) } -#DRIVER none { Do not create gckpp_Main.F90 } -#HESSIAN off { Do not create the Hessian matrix } -#MEX off { MEX is for Matlab, so skip it } -#STOICMAT off { Do not create stoichiometric matrix } +#MINVERSION 3.0.0 { Need this version of KPP or later } +#INTEGRATOR rosenbrock_autoreduce { Use Rosenbrock integration method } +#AUTOREDUCE on { ...w/ autoreduce enabled but optional } +#LANGUAGE Fortran90 { Generate solver code in Fortran90 ... } +#UPPERCASEF90 on { ...w/ .F90 suffix (instead of .f90) } +#DRIVER none { Do not create gckpp_Main.F90 } +#HESSIAN off { Do not create the Hessian matrix } +#MEX off { MEX is for Matlab, so skip it } +#STOICMAT off { Do not create stoichiometric matrix } #INCLUDE fullchem.eqn { Chemical reactions for fullchem mechanism } #FAMILIES { Chemical families for prod/loss diagnostic } -POx : O3 + NO2 + 2NO3 + PAN + PPN + MPAN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + MVKN + MCRHN + MCRHNB + PROPNN + R4N2 + ALK4N2 + PRN1 + PRPN + R4N1 + ALK4N1 + HONIT + MONITS + MONITU + OLND + OLNN + IHN1 + IHN2 + IHN3 + IHN4 + INPB + INPD + ICN + 2IDN + ITCN + ITHN + ISOPNOO1 + ISOPNOO2 + INO2B + INO2D + INA + IDHNBOO + IDHNDOO1 + IDHNDOO2 + IHPNBOO + IHPNDOO + ICNOO + 2IDNOO + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4; -LOx : O3 + NO2 + 2NO3 + PAN + PPN + MPAN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + MVKN + MCRHN + MCRHNB + PROPNN + R4N2 + ALK4N2 + PRN1 + PRPN + R4N1 + ALK4N1 + HONIT + MONITS + MONITU + OLND + OLNN + IHN1 + IHN2 + IHN3 + IHN4 + INPB + INPD + ICN + 2IDN + ITCN + ITHN + ISOPNOO1 + ISOPNOO2 + INO2B + INO2D + INA + IDHNBOO + IDHNDOO1 + IDHNDOO2 + IHPNBOO + IHPNDOO + ICNOO + 2IDNOO + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4; +POx : O3 + NO2 + 2NO3 + PAN + PPN + MPAN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + MVKN + MCRHN + MCRHNB + PROPNN + R4N2 + ALK4N2 + PRN1 + PRPN + R4N1 + ALK4N1 + HONIT + MONITS + MONITU + OLND + OLNN + IHN1 + IHN2 + IHN3 + IHN4 + INPB + INPD + ICN + 2IDN + ITCN + ITHN + ISOPNOO1 + ISOPNOO2 + INO2B + INO2D + INA + IDHNBOO + IDHNDOO1 + IDHNDOO2 + IHPNBOO + IHPNDOO + ICNOO + 2IDNOO + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4 + NIT + NITs; +LOx : O3 + NO2 + 2NO3 + PAN + PPN + MPAN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + MVKN + MCRHN + MCRHNB + PROPNN + R4N2 + ALK4N2 + PRN1 + PRPN + R4N1 + ALK4N1 + HONIT + MONITS + MONITU + OLND + OLNN + IHN1 + IHN2 + IHN3 + IHN4 + INPB + INPD + ICN + 2IDN + ITCN + ITHN + ISOPNOO1 + ISOPNOO2 + INO2B + INO2D + INA + IDHNBOO + IDHNDOO1 + IDHNDOO2 + IHPNBOO + IHPNDOO + ICNOO + 2IDNOO + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4 + NIT + NITs; PCO : CO; LCO : CO; PSO4 : SO4; @@ -34,6 +34,5 @@ PH2O2 : H2O2; #ENDINLINE #INLINE F90_GLOBAL -! Inline common variables into gckpp_Global.F90 #include "commonIncludeVars.H" #ENDINLINE diff --git a/KPP/fullchem/fullchem_HetStateFuncs.F90 b/KPP/fullchem/fullchem_HetStateFuncs.F90 index b8e21cde2..7da424b17 100644 --- a/KPP/fullchem/fullchem_HetStateFuncs.F90 +++ b/KPP/fullchem/fullchem_HetStateFuncs.F90 @@ -45,9 +45,10 @@ MODULE fullchem_HetStateFuncs !\\ ! !INTERFACE: ! - SUBROUTINE FullChem_SetStateHet( I, J, L, & - Input_Opt, State_Chm, State_Met, & - H, RC ) + SUBROUTINE fullChem_SetStateHet( I, J, L, & + id_SALA, id_SALAAL, id_SALC, & + id_SALCAL, Input_Opt, State_Chm, & + State_Met, H, RC ) ! ! !USES: ! @@ -57,25 +58,32 @@ SUBROUTINE FullChem_SetStateHet( I, J, L, & USE PhysConstants, ONLY : AVO, PI USE Input_Opt_Mod, ONLY : OptInput USE rateLawUtilFuncs - USE State_Chm_Mod, ONLY : ChmState + USE State_Chm_Mod, ONLY : ChmState, Ind_ USE State_Met_Mod, ONLY : MetState + + ! Species ID flags ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(IN) :: I - INTEGER, INTENT(IN) :: J - INTEGER, INTENT(IN) :: L - TYPE(OptInput), INTENT(IN) :: Input_Opt - TYPE(ChmState), INTENT(IN) :: State_Chm - TYPE(MetState), INTENT(IN) :: State_Met + INTEGER, INTENT(IN) :: I ! Lon (or X-dim) gridbox index + INTEGER, INTENT(IN) :: J ! Lat (or Y-dim) gridbox index + INTEGER, INTENT(IN) :: L ! Vertical level index + INTEGER , INTENT(IN) :: id_SALA ! Indices of SALA, SALAAL + INTEGER, INTENT(IN) :: id_SALAAL ! SALC, and SALCAL species + INTEGER, INTENT(IN) :: id_SALC ! in the State_Chm%Species + INTEGER, INTENT(IN) :: id_SALCAL ! object + TYPE(OptInput), INTENT(IN) :: Input_Opt ! Input Options object + TYPE(ChmState), INTENT(IN) :: State_Chm ! Chemistry State object + TYPE(MetState), INTENT(IN) :: State_Met ! Meterology State object ! ! INPUT/OUTPUT PARAMETERS: ! - TYPE(HetState), INTENT(INOUT) :: H + TYPE(HetState), INTENT(INOUT) :: H ! Hetchem State object ! ! !OUTPUT PARAMETERS: ! - INTEGER, INTENT(OUT) :: RC + INTEGER, INTENT(OUT) :: RC ! Success or failure? + !EOP !------------------------------------------------------------------------------ !BOC @@ -131,7 +139,7 @@ SUBROUTINE FullChem_SetStateHet( I, J, L, & H%frac_HSO3_aq = SafeDiv( H%HSO3_aq, H%TSO3_aq, 0.0_dp ) H%frac_SO3_aq = SafeDiv( H%SO3_aq, H%TSO3_aq, 0.0_dp ) - ! Concentrations from ISORROPIA + ! Concentrations from ISORROPIA/HETP H%HSO4_molal = State_Chm%IsorropBisulfate(I,J,L) H%NO3_molal = State_Chm%IsorropNitrate(I,J,L,1) H%SO4_molal = State_Chm%IsorropSulfate(I,J,L) @@ -145,11 +153,20 @@ SUBROUTINE FullChem_SetStateHet( I, J, L, & H%H_conc_ICl = 10.0**( -4.5_dp ) H%H_conc_SSA = H%H_conc_Sul H%H_conc_SSC = 10.0**( -5.0_dp ) - H%ssAlk = State_Chm%SSAlk(I,J,L,:) - H%SSA_is_Alk = ( H%ssAlk(1) > 0.05_dp ) - H%SSA_is_Acid = ( .not. H%SSA_is_Alk ) - H%SSC_is_Alk = ( H%ssAlk(2) > 0.05_dp ) - H%SSC_is_Acid = ( .not. H%SSC_is_Alk ) + H%f_Alk_SSA = SafeDiv( State_Chm%Species(id_SALAAL)%Conc(I,J,L), & + State_Chm%Species(id_SALA )%Conc(I,J,L), & + 0.0_dp ) + H%f_Alk_SSA = MAX( MIN( H%f_Alk_SSA, 1.0_dp ), 0.0_dp ) + H%f_Acid_SSA = 1.0_dp - H%f_Alk_SSA + H%f_Alk_SSC = SafeDiv( State_Chm%Species(id_SALCAL)%Conc(I,J,L), & + State_Chm%Species(id_SALC )%Conc(I,J,L), & + 0.0_dp ) + H%f_Alk_SSC = MAX( MIN( H%f_Alk_SSC, 1.0_dp ), 0.0_dp ) + H%f_Acid_SSC = 1.0_dp - H%f_Alk_SSC + H%SSA_is_Alk = ( ABS( H%f_Alk_SSA ) > 0.01_dp ) + H%SSA_is_Acid = ( .not. H%SSA_is_Alk ) + H%SSC_is_Alk = ( ABS( H%f_Alk_SSC ) > 0.01_dp ) + H%SSC_is_Acid = ( .not. H%SSC_is_Alk ) ! Other fields H%gamma_HO2 = Input_Opt%gamma_HO2 @@ -221,6 +238,9 @@ SUBROUTINE FullChem_SetStateHet( I, J, L, & ! ... check if there is surface NAT at this grid box H%natSurface = ( H%pscBox .and. ( C(ind_NIT) > 0.0_dp ) ) + ! Flag to turn off heterogeneous reactions in stratosphere + H%TurnOffHetRates = Input_Opt%TurnOffHetRates + END SUBROUTINE FullChem_SetStateHet !EOC !------------------------------------------------------------------------------ @@ -443,7 +463,11 @@ SUBROUTINE Halide_Conc( I, J, L, H ) !======================================================================= ! Fraction of SALACL in total fine sea salt !======================================================================= - H%frac_SALACL = C(ind_SALACL) / ( C(ind_SALACL) + C(ind_NIT) + C(ind_SO4) ) + IF (( C(ind_SALACL) + C(ind_NIT) + C(ind_SO4)) > 0.0_dp) THEN + H%frac_SALACL = C(ind_SALACL) / ( C(ind_SALACL) + C(ind_NIT) + C(ind_SO4) ) + ELSE + H%frac_SALACL = 0.0_dp + ENDIF END SUBROUTINE Halide_Conc !EOC diff --git a/KPP/fullchem/fullchem_RateLawFuncs.F90 b/KPP/fullchem/fullchem_RateLawFuncs.F90 index dffd1412c..246289eee 100644 --- a/KPP/fullchem/fullchem_RateLawFuncs.F90 +++ b/KPP/fullchem/fullchem_RateLawFuncs.F90 @@ -375,24 +375,6 @@ FUNCTION GC_TBRANCH_1_acac( a0, c0, a1, c1 ) RESULT( k ) k = k0 / ( 1.0_dp + k1 ) END FUNCTION GC_TBRANCH_1_acac - FUNCTION GC_TBRANCH_2_acabc( a0, c0, a1, b1, c1 ) RESULT( k ) - ! Temperature Dependent Branching Ratio, used for reactions: - ! C3H8 + OH = B3O2 - ! C3H8 + OH = A3O2 - ! - ! For these reactions, this Arrhenius law term evaluates to 1: - ! (300/T)**b0 - ! because b0 = 0. Therefore we can skip computing this - ! term. This avoids excess CPU cycles. (bmy, 12/18/20) - ! - REAL(dp), INTENT(IN) :: a0, c0, a1, b1, c1 - REAL(dp) :: k0, k1, k - ! - k0 = a0 * EXP( c0 / TEMP ) - k1 = a1 * EXP( c1 / TEMP ) * K300_OVER_TEMP**b1 - k = k0 / ( 1.0_dp + k1 ) - END FUNCTION GC_TBRANCH_2_acabc - FUNCTION GC_RO2HO2_aca( a0, c0, a1 ) RESULT( k ) ! Carbon Dependence of RO2+HO2, used in these reactions: ! A3O2 + HO2 = RA3P @@ -451,28 +433,6 @@ FUNCTION GC_GLYXNO3_ac( a0, c0 ) RESULT( k ) k = k * ( O2 + 3.5E+18_dp ) / ( 2.0_dp * O2 + 3.5E+18_dp ) END FUNCTION GC_GLYXNO3_ac - FUNCTION GC_OHHNO3_acacac( a0, c0, a1, c1, a2, c2 ) RESULT( k ) - ! Used to compute the rate for these reactions: - ! HNO3 + OH = H2O + NO3 - ! HONIT + OH = NO3 + HAC - ! - ! For these reactions, these Arrhenius law terms evaluate to 1: - ! (300/T)**b0 - ! (300/T)**b1 - ! (300/T)**b2 - ! Because b0 = b1 = b2 = 0. Therefore we can skip computing - ! these terms. This avoids excess CPU cycles. (bmy, 12/18/20) - ! - REAL(dp), INTENT(IN) :: a0, c0, a1, c1, a2, c2 - REAL(dp) :: k0, k1, k2, k - ! - ! --- OH + HNO3: K = K0 + K3[M] / (1 + K3[M]/K2) ------ - k0 = a0 * EXP( c0 / TEMP ) - k1 = a1 * EXP( c1 / TEMP ) - k2 = NUMDEN * ( a2 * EXP( c2 / TEMP ) ) - k = k0 + k2 / ( 1.0_dp + k2/k1 ) - END FUNCTION GC_OHHNO3_acacac - FUNCTION GC_GLYCOH_A_a( a0 ) RESULT( k ) ! Used to compute the rate for this reaction: ! GLYC + OH = 0.732CH2O + 0.361CO2 + 0.505CO + 0.227OH @@ -552,36 +512,6 @@ FUNCTION GC_HACOH_B_ac( a0, c0 ) RESULT( k ) k = k0 * ( 1.0_dp - hac_frac ) END FUNCTION GC_HACOH_B_ac - FUNCTION GC_OHCO_a( a0 ) RESULT( k ) - ! Reaction rate for: - ! OH + CO = HO2 + CO2 (cf. JPL 15-10) - ! - ! For this reaction, these Arrhenius law terms evaluate to 1: - ! (300/T)**b0 * EXP(c0/T) - ! because b0 = c0 = 0. Therefore we can skip computing these - ! terms. This avoids excess CPU cycles. (bmy, 12/18/20) - ! - REAL(dp), INTENT(IN) :: a0 - ! - REAL(dp) :: klo1, klo2, khi1, khi2 - REAL(dp) :: xyrat1, xyrat2, blog1, blog2, fexp1 - REAL(dp) :: fexp2, kco1, kco2, TEMP300, k - ! - klo1 = 5.9E-33_dp * K300_OVER_TEMP - khi1 = 1.1E-12_dp * K300_OVER_TEMP**(-1.3_dp) - xyrat1 = klo1 * NUMDEN / khi1 - blog1 = LOG10( xyrat1 ) - fexp1 = 1.0_dp / ( 1.0_dp + blog1*blog1 ) - kco1 = klo1 * NUMDEN * 0.6_dp**fexp1 / ( 1.0_dp + xyrat1 ) - klo2 = 1.5E-13_dp - khi2 = 2.1E+09_dp * K300_OVER_TEMP**(-6.1_dp) - xyrat2 = klo2 * NUMDEN / khi2 - blog2 = LOG10( xyrat2 ) - fexp2 = 1.0_dp / ( 1.0_dp + blog2*blog2 ) - kco2 = klo2 * 0.6_dp**fexp2 / ( 1.0_dp + xyrat2 ) - k = kco1 + kco2 - END FUNCTION GC_OHCO_a - FUNCTION GC_RO2NO_A1_ac( a0, c0 ) RESULT( k ) ! Reaction rate for the "A" branch of these RO2 + NO reactions: ! MO2 + NO = MENO3 @@ -834,6 +764,33 @@ FUNCTION GCJPLPR_abcabc( a1, b1, c1, a2, b2, c2, fv ) RESULT( k ) k = rlow * ( fv**fexp ) / ( 1.0_dp + xyrat ) END FUNCTION GCJPLPR_abcabc + FUNCTION GCJPLAC_ababac( a1, b1, a2, b2, a3, c3, fv ) RESULT( k ) + ! Rate coefficient for activation reactions competing with a + ! termolecular association pathway + ! a1, b1 are the Arrhenius parameters for the lower-limit rate. + ! a2, b2 are the Arrhenius parameters for the upper-limit rate. + ! a3, c3 are Arrhenius parameters for the activation path + ! fv is the falloff curve parameter, usually = 0.6. + ! + ! Used to compute the rate for these reactions: + ! NO2 + O = O2 + NO + ! HNO3 + OH = NO3 + H2O + ! CO + OH = HO2 + CO2 + ! + REAL(dp), INTENT(IN) :: a1, b1, a2, b2, a3, c3, fv + REAL(dp) :: rlow, rhigh, xyrat, blog + REAL(dp) :: fexp, k1, k2, k + ! + rlow = a1 * ( K300_OVER_TEMP**b1 ) * NUMDEN + rhigh = a2 * ( K300_OVER_TEMP**b2 ) + xyrat = rlow / rhigh + blog = LOG10( xyrat ) + fexp = 1.0_dp / ( 1.0_dp + ( blog * blog ) ) + k1 = rlow * ( fv**fexp ) / ( 1.0_dp + xyrat ) + k2 = a3 * EXP( c3 / TEMP ) + k = k2 * (1.0_dp - (k1 / rhigh) ) + END FUNCTION GCJPLAC_ababac + !######################################################################### !##### RATE-LAW FUNCTIONS FOR HETEROGENEOUS REACTIONS ##### !##### Some common functions are defined in rateLawUtilFuncs.F90 ##### @@ -898,6 +855,10 @@ FUNCTION BrNO3uptkByHCl( H ) RESULT( k ) ! Assume BrNO3 is limiting, so update the removal rate accordingly k = kIIR1Ltd( C(ind_BrNO3), C(ind_HCl), k ) + + ! Force to zero if HetRate flag is turned on + IF ( H%TurnOffHetRates ) k = 0.0_dp + END FUNCTION BrNO3uptkByHCl !========================================================================= @@ -1225,7 +1186,7 @@ FUNCTION ClNO3uptkByH2O( H ) RESULT( k ) ! Rxn rate of ClNO3 + H2O on fine sea salt in clear sky CALL Gam_ClNO3_Aer( H, H%Br_conc_SSA, gamma, branchBr ) area = H%ClearFr * H%aClArea - branchLiq = ( 1.0_dp - branchBr ) * ( 1.0 - H%frac_SALACL ) + branchLiq = ( 1.0_dp - branchBr ) * ( 1.0_dp - H%frac_SALACL ) k = k + Ars_L1K( area, H%aClRadi, gamma, srMw ) * branchLiq ! ! Rate of ClNO3 + H2O on stratospheric liquid aerosol @@ -1328,6 +1289,10 @@ FUNCTION ClNO3uptkByHBr( H ) RESULT( k ) ! ! Assume ClNO3 is limiting, so recompute reaction rate accordingly k = kIIR1Ltd( C(ind_ClNO3), C(ind_HBr), k ) + + ! Force to zero if HetRate flag is turned on + IF ( H%TurnOffHetRates ) k = 0.0_dp + END FUNCTION ClNO3uptkByHBr FUNCTION ClNO3uptkByBrSALA( H ) RESULT( k ) @@ -1360,6 +1325,10 @@ FUNCTION ClNO3uptkByBrSALA( H ) RESULT( k ) ! ! Assume ClNO3 is limiting, so recompute reaction rate accordingly k = kIIR1Ltd( C(ind_ClNO3), C(ind_BrSALA), k ) + + ! Force to zero if HetRate flag is turned on + IF ( H%TurnOffHetRates ) k = 0.0_dp + END FUNCTION ClNO3uptkByBrSALA FUNCTION ClNO3uptkByBrSALC( H ) RESULT( k ) @@ -1392,6 +1361,10 @@ FUNCTION ClNO3uptkByBrSALC( H ) RESULT( k ) ! ! Assume ClNO3 is limiting, so recompute reaction rate accordingly k = kIIR1Ltd( C(ind_ClNO3), C(ind_BrSALC), k ) + + ! Force to zero if HetRate flag is turned on + IF ( H%TurnOffHetRates ) k = 0.0_dp + END FUNCTION ClNO3uptkByBrSALC FUNCTION ClNO3uptkBySALACL( H ) RESULT( k ) @@ -1403,17 +1376,20 @@ FUNCTION ClNO3uptkBySALACL( H ) RESULT( k ) ! REAL(dp) :: area, branch, branchBr, gamma, srMw ! - k = 0.0_dp - srMw = SR_MW(ind_ClNO3) + ! Exit if in the stratosphere + k = 0.0_dp + IF ( H%stratBox ) RETURN ! ! Compute uptake rate of ClNO3 + BrSALA in clear sky CALL Gam_ClNO3_Aer( H, H%Br_conc_SSA, gamma, branchBr ) + srMw = SR_MW(ind_ClNO3) area = H%ClearFr * H%aClArea branch = ( 1.0_dp - branchBr ) * H%frac_SALACL k = k + Ars_L1K( area, H%aClRadi, gamma, srMw )* branch ! ! Assume ClNO3 is limiting, so recompute reaction rate accordingly k = kIIR1Ltd( C(ind_ClNO3), C(ind_SALACL), k ) + END FUNCTION ClNO3uptkBySALACL FUNCTION ClNO3uptkBySALCCL( H ) RESULT( k ) @@ -1425,14 +1401,16 @@ FUNCTION ClNO3uptkBySALCCL( H ) RESULT( k ) ! REAL(dp) :: area, branch, branchBr, gamma, srMw ! - k = 0.0_dp - srMw = SR_MW(ind_ClNO3) + ! Exit if in the stratosphere + k = 0.0_dp + IF ( H%stratBox ) RETURN ! ! Compute uptake rate of ClNO3 + BrSALA in clear sky CALL Gam_ClNO3_Aer( H, H%Br_conc_SSC, gamma, branchBr ) + srMw = SR_MW(ind_ClNO3) area = H%ClearFr * H%xArea(SSC) - branch = 1.0 - branchBr - k = k + Ars_L1K( area, H%xRadi(SSC), gamma, srMw )* branch + branch = 1.0_dp - branchBr + k = k + Ars_L1K( area, H%xRadi(SSC), gamma, srMw ) * branch ! ! Assume ClNO3 is limiting, so recompute reaction rate accordingly k = kIIR1Ltd( C(ind_ClNO3), C(ind_SALCCL), k ) @@ -1450,6 +1428,10 @@ FUNCTION HBrUptkBySALA( H ) RESULT( k ) REAL(dp) :: k ! rxn rate [1/s] REAL(dp) :: area, gamma ! local vars ! + ! Exit if in the stratosphere + k = 0.0_dp + IF ( H%stratBox ) RETURN + ! area = H%ClearFr * H%aClArea gamma = 1.3e-8_dp * EXP( 4290.0_dp / TEMP ) k = Ars_L1K( area, H%aClRadi, gamma, SR_MW(ind_HBr) ) @@ -1463,6 +1445,10 @@ FUNCTION HBrUptkBySALC( H ) RESULT( k ) REAL(dp) :: k ! rxn rate [1/s] REAL(dp) :: area, gamma ! local vars ! + ! Exit if in the stratosphere + k = 0.0_dp + IF ( H%stratBox ) RETURN + ! area = H%ClearFr * H%xArea(SSC) gamma = 1.3e-8_dp * EXP( 4290.0_dp / TEMP ) k = Ars_L1K( area, H%xRadi(SSC), gamma, SR_MW(ind_HBr) ) @@ -1822,7 +1808,7 @@ FUNCTION HOBrUptkByBrSALA( H ) RESULT( k ) ENDIF ! ! Uptake rate [1/s] - area = H%ClearFr * H%aClArea + area = H%ClearFr * H%aClArea * H%f_Acid_SSA k = k + Ars_L1K( area, H%aClRadi, gammaAer, srMw ) * branch ENDIF @@ -1882,7 +1868,7 @@ FUNCTION HOBrUptkByBrSALC( H ) RESULT( k ) ENDIF ! ! Uptake rate [1/s] - area = H%ClearFr * H%xArea(SSC) + area = H%ClearFr * H%xArea(SSC) * H%f_Acid_SSC k = k + Ars_L1K( area, H%xRadi(SSC), gammaAer, srMw ) * branch ENDIF @@ -1942,7 +1928,7 @@ FUNCTION HOBrUptkBySALACL( H ) RESULT( k ) ENDIF ! ! Uptake rate [1/s] - area = H%ClearFr * H%aClArea + area = H%ClearFr * H%aClArea * H%f_Acid_SSA k = k + Ars_L1K( area, H%aClRadi, gammaAer, srMw ) * branch ENDIF @@ -2002,7 +1988,7 @@ FUNCTION HOBrUptkBySALCCL( H ) RESULT( k ) ENDIF ! ! Uptake rate [1/s] - area = H%ClearFr * H%xArea(SSC) + area = H%ClearFr * H%xArea(SSC) * H%f_Acid_SSC k = k + Ars_L1K( area, H%xRadi(SSC), gammaAer, srMw ) * branch ENDIF @@ -2042,8 +2028,7 @@ FUNCTION HOBrUptkByHSO3m( H ) RESULT( k ) ENDIF ! Assume HOBr is limiting, so update the removal rate accordingly - ! Convert SO2 to HSO3- with the HSO3-/SO2 ratio - k = kIIR1Ltd( C(ind_HOBr), C(ind_SO2), k ) * H%HSO3m + k = kIIR1Ltd( C(ind_HOBr), C(ind_SO2), k ) END FUNCTION HOBrUptkByHSO3m FUNCTION HOBrUptkBySO3mm( H ) RESULT( k ) @@ -2076,8 +2061,7 @@ FUNCTION HOBrUptkBySO3mm( H ) RESULT( k ) ENDIF ! Assume HOBr is limiting, so update the removal rate accordingly - ! Convert SO2 to SO3-- with the SO3--/SO2 ratio - k = kIIR1Ltd( C(ind_HOBr), C(ind_SO2), k ) * H%SO3mm + k = kIIR1Ltd( C(ind_HOBr), C(ind_SO2), k ) END FUNCTION HOBrUptkBySO3mm @@ -2195,20 +2179,24 @@ FUNCTION HOClUptkByHCl( H ) RESULT( k ) gamma = 0.2_dp ! Rxn prob, ice IF ( H%natSurface ) gamma = 0.1_dp ! Rxn prob, NAT k = k + Ars_L1K( H%xArea(IIC), H%xRadi(IIC), gamma, srMw ) - ELSE - ! - ! HOCl + HCl uptake coeff [1] & branch ratio [1] in trop liquid cloud - CALL Gam_HOCl_Cld( H, gamma, branchCl, dummy ) - branch = branchCl * H%frac_Cl_CldG - ! - ! HOCl + HCl uptake coeff [1] & branch ratio [1] in trop ice cloud - gammaIce = 0.22_dp * H%HCl_theta - brIce = 1.0_dp + + ! Assume HOCl is limiting, so recompute reaction rate accordingly + k = kIIR1Ltd( C(ind_HOCl), C(ind_HCl), k ) ! - ! Compute overall HOCl + HCl uptake rate accounting for cloud fraction - k = k + CloudHet( H, srMw, gamma, gammaIce, branch, brIce ) + RETURN ENDIF ! + ! HOCl + HCl uptake coeff [1] & branch ratio [1] in trop liquid cloud + CALL Gam_HOCl_Cld( H, gamma, branchCl, dummy ) + branch = branchCl * H%frac_Cl_CldG + ! + ! HOCl + HCl uptake coeff [1] & branch ratio [1] in trop ice cloud + gammaIce = 0.22_dp * H%HCl_theta + brIce = 1.0_dp + ! + ! Compute overall HOCl + HCl uptake rate accounting for cloud fraction + k = k + CloudHet( H, srMw, gamma, gammaIce, branch, brIce ) + ! ! Assume HOCl is limiting, so recompute reaction rate accordingly k = kIIR1Ltd( C(ind_HOCl), C(ind_HCl), k ) END FUNCTION HOClUptkByHCl @@ -2241,6 +2229,10 @@ FUNCTION HOClUptkByHBr( H ) RESULT( k ) ! ! Assume HOCl is limiting, so recompute reaction rate accordingly k = kIIR1Ltd( C(ind_HOCl), C(ind_HBr), k ) + + ! Force to zero if HetRate flag is turned on + IF ( H%TurnOffHetRates ) k = 0.0_dp + END FUNCTION HOClUptkByHBr FUNCTION HOClUptkBySALACL( H ) RESULT( k ) @@ -2270,7 +2262,7 @@ FUNCTION HOClUptkBySALACL( H ) RESULT( k ) ! Compute HOCl + SALACL uptake rate [1/s] on acidic aerosols in clear-sky IF ( H%SSA_is_Acid ) THEN CALL Gam_HOCl_Aer( H, H%aClRadi, H%H_conc_SSA, H%Cl_conc_SSA, gamma ) - area = H%ClearFr * H%aClArea + area = H%ClearFr * H%aClArea * H%f_Acid_SSA k = k + Ars_L1k( area, H%aClRadi, gamma, srMw ) ENDIF ! @@ -2305,7 +2297,7 @@ FUNCTION HOClUptkBySALCCL( H ) RESULT( k ) ! Compute HOCl + SALCCL uptake rate [1/s] on acidic aerosols in clear-sky IF ( H%SSC_is_Acid ) THEN CALL Gam_HOCl_Aer( H, H%xRadi(SSC), H%H_conc_SSC, H%Cl_conc_SSC, gamma ) - area = H%ClearFr * H%xArea(SSC) + area = H%ClearFr * H%xArea(SSC) * H%f_Acid_SSC k = k + Ars_L1k( area, H%xRadi(SSC), gamma, srMw ) ENDIF ! @@ -2387,7 +2379,7 @@ FUNCTION IuptkBySulf1stOrd( srMw, gamma, H ) RESULT( k ) ! ! Uptake rate of iodine by tropospheric sulfate k = Ars_L1k( H%xArea(SUL), H%xRadi(SUL), gamma, srMw ) - + ! ! For UCX-based mechanisms also allow reaction on stratospheric ! sulfate liq aerosol if tropospheric sulfate is requested k = k + Ars_L1k( H%xArea(SLA), H%xRadi(SLA), gamma, srMw ) @@ -2398,10 +2390,14 @@ FUNCTION IuptkBySALA1stOrd( srMw, gamma, H ) RESULT( k ) ! Computes the reaction rate [1/s] for uptake of iodine species ! by accumulation-mode (aka fine) sea-salt aerosol. ! - REAL(dp), INTENT(IN) :: srMw, gamma ! sqrt( mol wt ) rxn prob + REAL(dp), INTENT(IN) :: srMw, gamma ! sqrt( mol wt ) rxn prob area TYPE(HetState), INTENT(IN) :: H ! Hetchem State REAL(dp) :: k ! rxn rate [1/s] ! + ! Exit if in the stratosphere + k = 0.0_dp + IF ( H%stratBox ) RETURN + ! k = Ars_L1k( H%xArea(SSA), H%xRadi(SSA), gamma, srMw ) END FUNCTION IuptkbySALA1stOrd @@ -2413,10 +2409,15 @@ FUNCTION IuptkByAlkSALA1stOrd( srMw, gamma, H ) RESULT( k ) REAL(dp), INTENT(IN) :: srMw, gamma ! sqrt( mol wt ) rxn prob TYPE(HetState), INTENT(IN) :: H ! Hetchem State REAL(dp) :: k ! rxn rate [1/s] + REAL(dp) :: ssarea ! alkaline sea salt area ! + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN + ! IF ( H%SSA_is_Alk ) THEN - k = IuptkBySALA1stOrd( srMw, gamma, H ) + ssarea = H%f_Alk_SSA * H%xArea(SSA) + k = Ars_L1k( ssarea, H%xRadi(SSA), gamma, srMw ) ENDIF END FUNCTION IuptkbyAlkSALA1stOrd @@ -2429,6 +2430,10 @@ FUNCTION IuptkBySALC1stOrd( srMw, gamma, H ) RESULT( k ) TYPE(HetState), INTENT(IN) :: H ! Hetchem State REAL(dp) :: k ! rxn rate [1/s] ! + ! Exit if in the stratosphere + k = 0.0_dp + IF ( H%stratBox ) RETURN + ! k = Ars_L1k( H%xArea(SSC), H%xRadi(SSC), gamma, srMw ) END FUNCTION IuptkBySALC1stOrd @@ -2440,10 +2445,15 @@ FUNCTION IuptkByAlkSALC1stOrd( srMw, gamma, H ) RESULT( k ) REAL(dp), INTENT(IN) :: srMw, gamma ! sqrt( mol wt ), rxn prob TYPE(HetState), INTENT(IN) :: H ! Hetchem State REAL(dp) :: k ! rxn rate [1/s] + REAL(dp) :: ssarea ! alkaline sea salt area ! + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN + ! IF ( H%SSC_is_Alk ) THEN - k = IuptkBySALC1stOrd( srMw, gamma, H ) + ssarea = H%f_Alk_SSC * H%xArea(SSC) + k = Ars_L1K( ssarea, H%xRadi(SSC), gamma, srMw ) ENDIF END FUNCTION IuptkByAlkSALC1stOrd @@ -2455,10 +2465,15 @@ FUNCTION IbrkdnByAcidBrSALA( srMw, conc, gamma, H ) RESULT( k ) REAL(dp), INTENT(IN) :: srMw, conc, gamma TYPE(HetState), INTENT(IN) :: H REAL(dp) :: k + REAL(dp) :: ssarea ! acidic sea salt area ! + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN + ! IF ( H%SSA_is_Acid ) THEN - k = 0.15_dp * IuptkBySALA1stOrd( srMw, gamma, H ) + ssarea = H%f_Acid_SSA * H%xArea(SSA) + k = 0.15_dp * Ars_L1K( ssarea, H%xRadi(SSA), gamma, srMw ) k = kIIR1Ltd( conc, C(ind_BrSALA), k ) ! conc is limiting, so update k ENDIF END FUNCTION IbrkdnbyAcidBrSALA @@ -2471,10 +2486,15 @@ FUNCTION IbrkdnByAcidBrSALC( srMw, conc, gamma, H ) RESULT( k ) REAL(dp), INTENT(IN) :: srMw, conc, gamma TYPE(HetState), INTENT(IN) :: H REAL(dp) :: k + REAL(dp) :: ssarea ! acidic sea salt area ! + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN + ! IF ( H%SSC_is_Acid ) THEN - k = 0.15_dp * IuptkBySALC1stOrd( srMw, gamma, H ) + ssarea = H%f_Acid_SSC * H%xArea(SSC) + k = 0.15_dp * Ars_L1K( ssarea, H%xRadi(SSC), gamma, srMw ) k = kIIR1Ltd( conc, C(ind_BrSALC), k ) ! conc is limiting, so update k ENDIF END FUNCTION IbrkdnbyAcidBrSALC @@ -2487,10 +2507,15 @@ FUNCTION IbrkdnByAcidSALACl( srMw, conc, gamma, H ) RESULT( k ) REAL(dp), INTENT(IN) :: srMw, conc, gamma TYPE(HetState), INTENT(IN) :: H REAL(dp) :: k + REAL(dp) :: ssarea ! acidic sea salt area ! + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN + ! IF ( H%SSA_is_Acid ) THEN - k = 0.85_dp * IuptkBySALA1stOrd( srMw, gamma, H ) + ssarea = H%f_Acid_SSA * H%xArea(SSA) + k = 0.85_dp * Ars_L1K( ssarea, H%xRadi(SSA), gamma, srMw ) k = kIIR1Ltd( conc, C(ind_SALACl), k ) ! conc is limiting, so update k ENDIF END FUNCTION IbrkdnbyAcidSALACl @@ -2503,10 +2528,15 @@ FUNCTION IbrkdnByAcidSALCCl( srMw, conc, gamma, H ) RESULT( k ) REAL(dp), INTENT(IN) :: srMw, conc, gamma TYPE(HetState), INTENT(IN) :: H REAL(dp) :: k + REAL(dp) :: ssarea ! acidic sea salt area ! + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN + ! IF ( H%SSC_is_Acid ) THEN - k = 0.85_dp * IuptkBySALC1stOrd( srMw, gamma, H ) + ssarea = H%f_Acid_SSC * H%xArea(SSC) + k = 0.85_dp * ARs_L1K( ssarea, H%xRAdi(SSC), gamma, srMw ) k = kIIR1Ltd( conc, C(ind_SALCCl), k ) ! conc is limiting, so update k ENDIF END FUNCTION IbrkdnbyAcidSALCCl @@ -2528,20 +2558,6 @@ FUNCTION IONO2uptkByH2O( H ) RESULT( k ) gamma = MAX( ( 0.0021_dp * TEMP - 0.561_dp ), 0.0_dp ) k = k + Ars_L1K( area, H%xRadi(SUL), gamma, srMw ) ! - ! Alkaline fine sea salt (use gamma from Sherwen et al 2016) - IF ( H%SSA_is_Alk ) THEN - area = H%ClearFr * H%xArea(SSA) - gamma = 0.01_dp - k = k + Ars_L1K( area, H%xRadi(SSA), gamma, srMw ) - ENDIF - ! - ! Alkaline coarse sea salt (use gamma from Sherwen et al 2016) - IF ( H%SSC_is_Alk ) THEN - area = H%ClearFr * H%xArea(SSC) - gamma = 0.01_dp - k = k + Ars_L1K( area, H%xRadi(SSC), gamma, srMw ) - ENDIF - ! ! Stratospheric liquid aerosol k = k + H%xArea(SLA) * H%KHETI_SLA(BrNO3_plus_H2O) ! @@ -2633,21 +2649,22 @@ FUNCTION N2O5uptkBySALACl( H ) RESULT( k ) REAL(dp) :: k ! Rxn rate [1/s] REAL(dp) :: gamma, Y_ClNO2, Rp, SA ! local vars ! - ! Initialize + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN ! ! Properties of inorganic (SNA) sea salt coated with organics CALL N2O5_InorgOrg( & H, H%AClVol, H%xVol(ORC), H%xH2O(SUL), & H%xH2O(ORC), H%aClRadi, C(ind_NIT), C(ind_SALACL), & gamma, Y_ClNO2, Rp, SA ) - + ! ! Total loss rate of N2O5 (kN2O5) on SNA+ORG+SSA aerosol. ! Reduce ClNO2 production yield on fine inorganic+organic ! aerosol by 75% (cf. McDuffie et al, JGR, 2018). k = Ars_L1K( H%ClearFr * SA, Rp, gamma, SR_MW(ind_N2O5) ) k = k * Y_ClNO2 * 0.25_dp - + ! ! Assume N2O5 is limiting, so update the removal rate accordingly k = kIIR1Ltd( C(ind_N2O5), C(ind_SALACL), k ) END FUNCTION N2O5uptkBySALACl @@ -2661,19 +2678,20 @@ FUNCTION N2O5uptkBySALCCl( H ) RESULT( k ) REAL(dp) :: k ! Rxn rate [1/s] REAL(dp) :: gamma, Y_ClNO2, Rp, SA ! local vars ! - ! Initialize + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN ! ! Properties of inorganic (SNA) sea salt coated with organics CALL N2O5_InorgOrg( & H, H%xVol(SSC), 0.0_dp, H%xH2O(SSC), & 0.0_dp, H%xRadi(SSC), C(ind_NITs), C(ind_SALCCL), & gamma, Y_ClNO2, Rp, SA ) - + ! ! Total loss rate of N2O5 (kN2O5) on SNA+ORG+SSA aerosol k = Ars_L1k( H%ClearFr * SA, Rp, gamma, SR_MW(ind_N2O5) ) k = k * Y_ClNO2 - + ! ! Assume N2O5 is limiting, so update the removal rate accordingly k = kIIR1Ltd( C(ind_N2O5), C(ind_SALCCL), k ) END FUNCTION N2O5uptkBySALCCl @@ -2954,7 +2972,7 @@ FUNCTION NO2uptk1stOrdAndCloud( H ) RESULT( k ) ! Uptake by stratospheric sulfate (aerosol type 13) ! and by irregular ice cloud (aerosol type 14) gamma = 1.0e-4_dp - k = k + H%xArea(SLA) * gamma + k = k + Ars_L1k( H%xArea(SLA), H%xRadi(SLA), gamma, srMw ) k = k + Ars_L1k( H%xArea(IIC), H%xRadi(IIC), gamma, srMw ) ! Uptake of NO2 in cloud (liquid branch only) @@ -3032,7 +3050,7 @@ FUNCTION NO3uptk1stOrdAndCloud( H ) RESULT( k ) ! Uptake by stratospheric sulfate liquid aerosol ! and by irregular ice cloud gamma = 0.1_dp - k = k + H%xArea(SLA) * gamma + k = k + Ars_L1k( H%xArea(SLA), H%xRadi(SLA), gamma, srMw ) k = k + Ars_L1k( H%xArea(IIC), H%xRadi(IIC), gamma, srMw ) ! Uptake of NO3 in cloud (liquid and ice branches) @@ -3098,7 +3116,7 @@ FUNCTION O3uptkByBrInTropCloud( H, Br_branch ) RESULT( k ) k = 0.0_dp ! ! Exit if we are not in the troposphere - IF ( H%StratBox ) RETURN + IF ( H%stratBox ) RETURN ! ! Compute uptake of O3 by Br- in cloud gamma = Gamma_O3_Br( H, H%rLiq, H%Br_conc_Cld ) @@ -3128,14 +3146,16 @@ FUNCTION O3uptkByBrSALA( H ) RESULT( k ) REAL(dp) :: k ! rxn rate [1/s] REAL(dp) :: area, gamma ! local vars ! + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN ! ! O3 + Br- uptake by acidic fine sea salt, in trop cloud k = k + O3uptkByBrInTropCloud( H, H%frac_Br_CldA ) ! ! O3 + Br- uptake on acidic fine sea-salt, clear sky IF ( H%SSA_is_Acid ) THEN - area = H%ClearFr * H%aClArea + area = H%ClearFr * H%aClArea * H%f_Acid_SSA gamma = Gamma_O3_Br( H, H%aClRadi, H%Br_conc_SSA ) k = k + Ars_L1K( area, H%aClRadi, gamma, SR_MW(ind_O3) ) ENDIF @@ -3153,14 +3173,16 @@ FUNCTION O3uptkByBrSALC( H ) RESULT( k ) REAL(dp) :: k ! rxn rate [1/s] REAL(dp) :: area, gamma ! local vars ! + ! Exit if in the stratosphere k = 0.0_dp + IF ( H%stratBox ) RETURN ! ! O3 + Br- uptake by acidic coarse sea salt, in trop cloud k = k + O3uptkByBrInTropCloud( H, H%frac_Br_CldC ) ! ! O3 + Br- uptake on acidic coarse sea salt, clear sky IF ( H%SSC_is_Acid ) THEN - area = H%ClearFr * H%xArea(SSC) + area = H%ClearFr * H%xArea(SSC) * H%f_Acid_SSC gamma = Gamma_O3_Br( H, H%xRadi(SSC), H%Br_conc_SSC ) k = k + Ars_L1K( area, H%xRadi(SSC), gamma, SR_MW(ind_O3) ) ENDIF @@ -3226,6 +3248,10 @@ FUNCTION OHuptkBySALACl( H ) RESULT( k ) TYPE(HetState), INTENT(IN) :: H ! Hetchem State REAL(dp) :: gamma, k ! rxn prob [1], rxn rate [1/s] ! + ! Exit if in the stratosphere + k = 0.0_dp + IF ( H%stratBox ) RETURN + ! ! Compute uptake; gamma is from cf Knipping & Dabdub, 2002 gamma = 0.04_dp * H%Cl_conc_SSA k = Ars_L1k( H%aClArea, H%aClRadi, gamma, SR_MW(ind_OH) ) @@ -3241,6 +3267,10 @@ FUNCTION OHuptkBySALCCl( H ) RESULT( k ) TYPE(HetState), INTENT(IN) :: H ! Hetchem State REAL(dp) :: gamma, k ! rxn prob [1], rxn rate [1/s] ! + ! Exit if in the stratosphere + k = 0.0_dp + IF ( H%stratBox ) RETURN + ! ! Compute uptake; gamma is from cf Knipping & Dabdub, 2002 gamma = 0.04_dp * H%Cl_conc_SSC k = Ars_L1k( H%xArea(SSC), H%xRadi(SSC), gamma, SR_MW(ind_OH) ) @@ -3421,7 +3451,7 @@ FUNCTION VOCuptk1stOrd( srMw, gamma, H ) RESULT( k ) k = k + Ars_L1k( H%xArea(ORC), H%xRadi(ORC), gamma, srMw ) k = k + Ars_L1k( H%xArea(SSA), H%xRadi(SSA), gamma, srMw ) k = k + Ars_L1k( H%xArea(SSC), H%xRadi(SSC), gamma, srMw ) - k = k + H%xArea(SLA) * gamma + k = k + Ars_L1k( H%xArea(SLA), H%xRadi(SLA), gamma, srMw ) k = k + Ars_L1k( H%xArea(IIC), H%xRadi(IIC), gamma, srMw ) ENDIF END FUNCTION VOCuptk1stOrd diff --git a/KPP/fullchem/fullchem_SulfurChemFuncs.F90 b/KPP/fullchem/fullchem_SulfurChemFuncs.F90 index cd91f80cd..ebd2a62fd 100644 --- a/KPP/fullchem/fullchem_SulfurChemFuncs.F90 +++ b/KPP/fullchem/fullchem_SulfurChemFuncs.F90 @@ -165,6 +165,7 @@ SUBROUTINE fullchem_SulfurAqChem( I, J, L, & ! Scalars LOGICAL :: SALAAL_gt_0_1 LOGICAL :: SALCAL_gt_0_1 + LOGICAL :: O3_gt_1e10 REAL(fp) :: k_ex ! Strings @@ -176,11 +177,24 @@ SUBROUTINE fullchem_SulfurAqChem( I, J, L, & !====================================================================== ! Initialize - RC = GC_SUCCESS - k_ex = 0.0_dp - K_MT = 0.0_dp - SALAAL_gt_0_1 = ( C(ind_SALAAL) > 0.1_dp ) - SALCAL_gt_0_1 = ( C(ind_SALCAL) > 0.1_dp ) + RC = GC_SUCCESS + k_ex = 0.0_dp + K_MT = 0.0_dp + + !---------------------------------------------------------------------- + ! In order to prevent div-by-zero errors, we set thresholds + ! to skip the SALAAL + SO2 and SALCAL + SO2 reactions if: + ! + ! (1) SALAAL <= 0.1 molec/cm3 + ! (2) SALCAL <= 0.1 molec/cm3 + ! (3) O3 <= 1e10 molec/cm3 + ! + ! An ozone concentration of 1e10 molec/cm3 ~= 0.5 ppbv, which is + ! lower than ozone should ever get (according to D. Jacob). + !---------------------------------------------------------------------- + SALAAL_gt_0_1 = ( C(ind_SALAAL) > 0.1_dp ) + SALCAL_gt_0_1 = ( C(ind_SALCAL) > 0.1_dp ) + O3_gt_1e10 = ( C(ind_O3) > 1.0e+10_dp ) !====================================================================== ! Reaction rates [1/s] for fine sea salt alkalinity (aka SALAAL) @@ -188,14 +202,12 @@ SUBROUTINE fullchem_SulfurAqChem( I, J, L, & ! K_MT(1) : SALAAL + SO2 + O3 = SO4 - SALAAL ! K_MT(2) : SALAAL + HCl = SALACL ! K_MT(3) : SALAAL + HNO3 = NIT - ! - ! NOTE: SALAAL_gt_0_1 prevents div-by-zero errors !====================================================================== !------------------------------------------------------------------------ ! SALAAL + SO2 + O3 = SO4 - SALAAL !------------------------------------------------------------------------ - IF ( SALAAL_gt_0_1 ) THEN + IF ( SALAAL_gt_0_1 .AND. O3_gt_1e10 ) THEN ! 1st order uptake k_ex = Ars_L1K( area = State_Chm%WetAeroArea(I,J,L,11), & @@ -243,14 +255,12 @@ SUBROUTINE fullchem_SulfurAqChem( I, J, L, & ! K_MT(4) : SALCAL + SO2 + O3 = SO4s - SALCAL ! K_MT(5) : SALCAL + HCl = SALCCL ! K_MT(6) : SALCAL + HNO3 = NITs - ! - ! NOTE: SALCAL_gt_0_1 prevents div-by-zero errors !======================================================================== !------------------------------------------------------------------------ ! SALCAL + SO2 + O3 = SO4s - SALCAL !------------------------------------------------------------------------ - IF ( SALCAL_gt_0_1 ) THEN + IF ( SALCAL_gt_0_1 .AND. O3_gt_1e10 ) THEN ! 1st order uptake k_ex = Ars_L1K( area = State_Chm%WetAeroArea(I,J,L,12), & @@ -347,7 +357,6 @@ SUBROUTINE fullchem_SulfurCldChem( I, J, L, & ! ! !LOCAL VARIABLES: ! - LOGICAL :: prtDebug INTEGER :: N CHARACTER(LEN=63) :: OrigUnit @@ -365,9 +374,6 @@ SUBROUTINE fullchem_SulfurCldChem( I, J, L, & ThisLoc = & ' -> at fullchem_SulfurCldChem (in KPP/fullchem/fullchem_SulfurChemFuncs.F90' - ! Should we print debug output? - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) - !------------------------------------------------------------------------ ! SO2 chemistry !------------------------------------------------------------------------ @@ -405,7 +411,7 @@ END SUBROUTINE fullchem_SulfurCldChem !\\ ! !INTERFACE: ! - SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & + SUBROUTINE fullchem_HetDropChem( I, J, L, & Input_Opt, State_Met, State_Chm ) ! ! !USES: @@ -432,10 +438,6 @@ SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & ! TYPE(ChmState), INTENT(INOUT) :: State_Chm ! Chemistry State object ! -! !OUTPUT PARAMETERS: -! - REAL(fp), INTENT(OUT) :: SR ! Sulfate production rate -! ! !REVISION HISTORY: ! See https://github.com/geoschem/geos-chem for complete history !EOP @@ -476,6 +478,7 @@ SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & REAL(dp) :: XX, FC, LST REAL(dp) :: XX1, XX2, XX3 REAL(dp) :: XX4, XX5, GNH3 + REAL(dp) :: SR, DENOM ! Pointers REAL(fp), POINTER :: AD(:,:,:) @@ -497,9 +500,6 @@ SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & U => State_Met%U V => State_Met%V - ! Zero output argument for safety's sake - SR = 0.0_dp - ! Zero/initialize local variables for safety's sake arg = 0.0_dp B = 0.0_dp @@ -512,8 +512,12 @@ SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & LST = 0.0_dp R1 = 0.0_dp R2 = 0.0_dp + SR = 0.0_dp + SRHOBr = 0.0_dp + SRHOCl = 0.0_dp + SRO3 = 0.0_dp W = 0.0_dp - XX = 0.0_dp + XX = 0.0_dp ! All XX* in units of [v/v/timestep] XX1 = 0.0_dp XX2 = 0.0_dp XX3 = 0.0_dp @@ -657,14 +661,14 @@ SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & ! Convert coarse-mode aerosol concentrations from [v/v] to [#/cm3] ! based on equation in Hofmann, Science, 1990. ! First convert from [v/v] to [kg/m3 air] - CNss = State_Chm%Species(id_SALC)%Conc(I,J,L)*CVF * AD(I,J,L) & + CNss = State_Chm%Species(id_SALC)%Conc(I,J,L)*CVF * AD(I,J,L) & / ( ( AIRMW / MW_SALC ) * AIRVOL(I,J,L) ) ! Now convert from [kg/m3 air] to [#/cm3 air] ! Sea-salt ARG = NINE_HALVES * ( LOG( SIG_S ) )**2 - NDss = ( THREE_FOURTHS * CNss ) & - / ( PI * SS_DEN * RG_S**3 * SafeExp( Arg, 0.0_dp ) ) & + NDss = ( THREE_FOURTHS * CNss ) & + / ( PI * SS_DEN * RG_S**3 * SafeExp( Arg, 0.0_dp ) ) & * 1.e-6_dp ! Total coarse mode number concentration [#/cm3] @@ -735,8 +739,8 @@ SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & ! Yuen et al. (1996) (qjc, 04/10/16) IF ( W > 0.0_dp .and. C(ind_SO2) > 0.0_dp ) THEN - ! additional sulfate production that can be - ! attributed to ozone [ug/m3/timestep] + ! additional sulfate production in large, higher pH + ! cloud droplets [ug/m3/timestep] ! Don't allow SR to be negative SR = MAX( ( DSVI - B ), 0.0_dp ) @@ -749,10 +753,32 @@ SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & ! Don't produce more SO4 than SO2 available after AQCHEM_SO2 ! -- SR is dSO4/timestep (v/v) continue onvert ! to 1st order rate - SR = MIN( SR, SO2 / 1.0e12_dp ) / ( C(ind_SO2) * CVF * DT ) + !SR = MIN( SR, SO2 / 1.0e12_dp ) / ( C(ind_SO2) * CVF * DT ) + !SR = MIN( SR, SO2 / 1.0e12_dp ) / ( C(ind_SO2) * C(ind_O3) * CVF * DT ) + !I think the unit conversion is wrong. There should be another + !CVF and DT here. But I don't know why we need the denominator. + ! -- Becky Alexander (30 Jan 2023) + SR = MIN( SR, SO2 / 1.0e12_dp ) + ENDIF ENDIF + ! Convert SR from [v/v/timestep] to [mlcl/cm3/s] + SR = SR / CVF / DT + + ! Split SR between S(IV) oxidation by O3, HOCl, and HOBr + ! Make sure division can be done safely + DENOM = XX2 + XX4 + XX5 + SRO3 = SR * SafeDiv( XX2, DENOM, 0.0_fp ) + SRHOCl = SR * SafeDiv( XX4, DENOM, 0.0_fp ) + SRHOBr = SR * SafeDiv( XX5, DENOM, 0.0_fp ) + + ! Convert this rate to a second order rate constant for use in KPP + ! Make sure division can be done safely + SRO3 = SafeDiv( SRO3, ( C(ind_SO2) * C(ind_O3 ) ), 0.0_dp ) + SRHOCl = SafeDiv( SRHOCl, ( C(ind_SO2) * C(ind_HOCl) ), 0.0_dp ) + SRHOBr = SafeDiv( SRHOBr, ( C(ind_SO2) * C(ind_HOBr) ), 0.0_dp ) + ! Free pointers AD => NULL() AIRDEN => NULL() @@ -931,7 +957,7 @@ SUBROUTINE SET_SO2( I, J, L, Input_Opt, & REAL(fp) :: H2SO4_cd, H2SO4_gas ! (qjc, 04/10/16) - REAL(fp) :: L5,L5S,SRo3,SRhobr + REAL(fp) :: L5,L5S REAL(fp) :: L5_1,L5S_1,L3_1,L3S_1,KaqO3_1 REAL(fp) :: HSO3aq, SO3aq REAL(fp) :: SO2_AfterSS0, rSIV, fupdateHOBr_0 @@ -944,7 +970,7 @@ SUBROUTINE SET_SO2( I, J, L, Input_Opt, & REAL(fp) :: Fe_ant, Fe_nat, Fe_tot REAL(fp) :: Fe_d_ant, Fe_d_nat - REAL(fp) :: L6,L6S,SRhocl,L6_1,L6S_1 !XW + REAL(fp) :: L6,L6S,L6_1,L6S_1 !XW REAL(fp) :: fupdateHOCl_0 !XW REAL(fp) :: HCHOCl, KHOCl, f_srhocl, HOCl0 !XW @@ -1009,7 +1035,11 @@ SUBROUTINE SET_SO2( I, J, L, Input_Opt, & ! Get liquid water content [m3 H2O/m3 air] within cloud from met flds ! Units: [kg H2O/kg air] * [kg air/m3 air] * [m3 H2O/1e3 kg H2O] #ifdef LUO_WETDEP - ! Luo et al wetdep scheme + ! QQ3D and similar arrays are only allocated for wetdep or convection + Is_QQ3D = ( Input_Opt%LWETD .or. Input_Opt%LCONV ) + + ! If QQ3D is allocated, compute LWC according to Luo et al wetdep scheme. + ! Otherwise, compute LWC according to the default wetdep scheme. IF ( Is_QQ3D ) THEN LWC = State_Met%QL(I,J,L) * State_Met%AIRDEN(I,J,L) * 1e-3_fp + & MAX( 0.0_fp, State_Chm%QQ3D(I,J,L) * DTCHEM ) @@ -1017,7 +1047,7 @@ SUBROUTINE SET_SO2( I, J, L, Input_Opt, & LWC = State_Met%QL(I,J,L) * State_Met%AIRDEN(I,J,L) * 1e-3_fp ENDIF #else - ! Default scheme + ! Compute LWC according to the default wetdep scheme LWC = State_Met%QL(I,J,L) * State_Met%AIRDEN(I,J,L) * 1e-3_fp #endif @@ -1337,7 +1367,14 @@ SUBROUTINE SET_SO2( I, J, L, Input_Opt, & IF ( IS_FULLCHEM .and. id_HMS > 0 ) THEN K_CLD(4) = KaqHCHO * FC * CNVFAC K_CLD(5) = KaqHMS * FC - K_CLD(6) = KaqHMS2 * FC + ! HMS reaction changed to include SO2 as a reactant. This is a + ! temporary fix as the formulation HMS + OH -> 2SO4 + CH2O - SO2 + ! was resulting in a negative concentraiton of SO2. We instead + ! redefine the reaction as HMS + OH + SO2 -> 2SO4 + CH2O but + ! divide the reaction rate by [SO2] to compensate, as long as + ! it is safe to do so (NB requirement at entry that SO2 > MINDAT) + ! SDE 2023-10-21 + K_CLD(6) = KaqHMS2 * FC / Spc(id_SO2)%Conc(I,J,L) ! Leave comments here (bmy, 18 Jan 2022) ! CloudHet2R( Spc(id_HMS)%Conc(I,J,L), & ! Spc(id_CH2O)%Conc(I,J,L), FC, KaqHCHO*CNVFAC ) @@ -3550,6 +3587,14 @@ END SUBROUTINE SET_2R_CLD FUNCTION CloudHet2R( A, B, FC, KAB ) RESULT( KX ) ! +! !DESCRIPTION: Function CloudHet2R calculates the effective, grid-average reaction rate +! for bimolecular reactions occuring in a partially cloudy grid cell. +! The function uses the approximate "entrainment limited uptake" equations of +! Holmes (2022). +! +! Holmes, C.D. (2022) Technical Note: Entrainment-limited kinetics of bimolecular +! reactions in clouds, Atmos. Chem. Phys., https://doi.org/10.5194/acp-2021-752 +! ! !USES ! USE rateLawUtilFuncs @@ -3557,16 +3602,17 @@ FUNCTION CloudHet2R( A, B, FC, KAB ) RESULT( KX ) ! !INPUT PARAMETERS: ! REAL(fp), INTENT(IN) :: FC ! Cloud Fraction [0-1] - REAL(fp), INTENT(IN) :: A, B ! Reactant Abundances + REAL(fp), INTENT(IN) :: A, B ! Reactant Abundances, units must be consistent with KAB REAL(fp), INTENT(IN) :: KAB ! Bimolecular Rate Constant ! ! !RETURN VALUE: ! - REAL(fp) :: KX ! Grid-average loss frequency, cm3/mcl/s + REAL(fp) :: KX ! Grid-average reaction rate, cm3/mcl/s ! ! !REVISION HISTORY: ! 23 Aug 2018 - C. D. Holmes - Initial version ! 15 May 2021 - M. Long - Revision for two reactants +! 27 Jun 2022 - C.D. Holmes - Simplified and added comments ! See https://github.com/geoschem/geos-chem for complete history !------------------------------------------------------------------------------ !BOC @@ -3578,44 +3624,15 @@ FUNCTION CloudHet2R( A, B, FC, KAB ) RESULT( KX ) ! ! !LOCAL VARIABLES: ! - REAL(FP) :: KAO, KBO, FF, denom, term1, term2 + REAL(FP) :: minAB !EOC !------------------------------------------------------------------------------ ! - ! Ratio of volume inside to outside cloud - ! FF has a range [0,+inf], so cap it at 1e30 - FF = SafeDiv( FC, ( 1.0_fp - FC ), 1e30_fp ) - FF = MIN( FF, 1.0e30_fp ) - - ! Avoid div by zero for the TAUC/FF term - term1 = 0.0_fp - IF ( ff > 0.0_fp ) term1 = tauc / ff - - ! Compute KAO and avoid div by zero - ! term 1 term 2 - ! KAO = 1 / ( (TAUC/FF) + ( 1/(FC*KAB*B) ) ), units: 1/s - denom = FC * KAB * B - term2 = SafeDiv( 1.0_fp, denom, 0.0_fp ) - denom = term1 + term2 - KAO = SafeDiv( 1.0_fp, denom, 0.0_fp ) - - ! Compute KBO and avoid div by zero - ! term 1 term 2 - ! KBO = 1 / ( (TAUC/FF) + ( 1/(FC*KAB*A) ) ), units: 1/s - denom = FC * KAB * A - term2 = SafeDiv( 1.0_fp, denom, 0.0_fp ) - denom = term1 + term2 - KBO = SafeDiv( 1.0_fp, denom, 0.0_fp ) - - IF ( KAO*A <= KBO*B ) THEN - !KX = KAO/B - KX = SafeDiv( KAO, B, 0.0_fp ) - ELSE - !KX = KBO/A - KX = SafeDiv( KBO, A, 0.0_fp ) - ENDIF - + ! Eq. 7b from Holmes (2022) + minAB = min( A, B ) + KX = SafeDiv( FC * kAB * minAB / tauc, minAB / tauc + (1.0_fp - FC ) * kAB * A * B, 0.0_fp ) + END FUNCTION CloudHet2R !EOC !------------------------------------------------------------------------------ diff --git a/KPP/fullchem/gckpp_Function.F90 b/KPP/fullchem/gckpp_Function.F90 index cf423fdca..862ad4cd1 100644 --- a/KPP/fullchem/gckpp_Function.F90 +++ b/KPP/fullchem/gckpp_Function.F90 @@ -2,7 +2,7 @@ ! ! The ODE Function of Chemical Model File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) @@ -63,1745 +63,1736 @@ SUBROUTINE Fun ( V, F, RCT, Vdot, Aout ) ! Computation of equation rates - A(1) = RCT(1)*V(144)*V(277)*V(286) - A(2) = RCT(2)*V(144)*V(271) - A(3) = RCT(3)*V(144)*V(260) - A(4) = RCT(4)*V(135)*V(277)*V(286) - A(5) = RCT(5)*V(135)*V(271) - A(6) = RCT(6)*V(135)*V(260) - A(7) = RCT(7)*V(208)*V(286) - A(8) = RCT(8)*V(277)*V(286) - A(9) = RCT(9)*V(286) - A(10) = RCT(10)*V(262)*V(286) - A(11) = RCT(11)*V(85) - A(12) = RCT(12)*V(85)*V(269) - A(13) = RCT(13)*V(277)*V(280) - A(14) = RCT(14)*V(269)*V(277) - A(15) = RCT(15)*V(277)*V(281) - A(16) = RCT(16)*V(270)*V(277) - A(17) = RCT(17)*V(263)*V(277) - A(18) = RCT(18)*V(269)*V(269) - A(19) = RCT(19)*V(269)*V(269) - A(20) = RCT(20)*V(269)*V(281) - A(21) = RCT(21)*V(208)*V(269) - A(22) = RCT(22)*V(280)*V(281) - A(23) = RCT(23)*V(281)*V(281) - A(24) = RCT(24)*V(258)*V(269) - A(25) = RCT(25)*V(186)*V(269) - A(26) = RCT(26)*V(263)*V(280) - A(27) = RCT(27)*V(263)*V(280) - A(28) = RCT(28)*V(263)*V(281) - A(29) = RCT(29)*V(263)*V(263) - A(30) = RCT(30)*V(263)*V(263) - A(31) = RCT(31)*V(263)*V(269) - A(32) = RCT(32)*V(134)*V(269) - A(33) = RCT(33)*V(134)*V(269) - A(34) = RCT(34)*V(193)*V(269) - A(35) = RCT(35)*V(193)*V(269) - A(36) = RCT(36)*V(262)*V(269) - A(37) = RCT(37)*V(269)*V(270) - A(38) = RCT(38)*V(260)*V(269) - A(39) = RCT(39)*V(269)*V(280) - A(40) = RCT(40)*V(188)*V(269) - A(41) = RCT(41)*V(270)*V(281) - A(42) = RCT(42)*V(101) - A(43) = RCT(43)*V(101)*V(269) - A(44) = RCT(44)*V(281)*V(287) - A(45) = RCT(45)*V(280)*V(287) - A(46) = RCT(46)*V(269)*V(287) - A(47) = RCT(47)*V(270)*V(287) - A(48) = RCT(48)*V(169) - A(49) = RCT(49)*V(207)*V(269) - A(50) = RCT(50)*V(214)*V(269) - A(51) = RCT(51)*V(270)*V(287) - A(52) = RCT(52)*V(262)*V(287) - A(53) = RCT(53)*V(261)*V(269) - A(54) = RCT(54)*V(261)*V(287) - A(55) = RCT(55)*V(257)*V(270) - A(56) = RCT(56)*V(63) - A(57) = RCT(57)*V(257)*V(280) - A(58) = RCT(58)*V(157)*V(269) - A(59) = RCT(59)*V(213)*V(280) - A(60) = RCT(60)*V(213)*V(280) - A(61) = RCT(61)*V(235)*V(280) - A(62) = RCT(62)*V(121)*V(269) - A(63) = RCT(63)*V(121)*V(269) - A(64) = RCT(64)*V(233)*V(280) - A(65) = RCT(65)*V(233)*V(280) - A(66) = RCT(66)*V(204)*V(280) - A(67) = RCT(67)*V(112)*V(269) - A(68) = RCT(68)*V(252)*V(280) - A(69) = RCT(69)*V(252)*V(280) - A(70) = RCT(70)*V(251)*V(280) - A(71) = RCT(71)*V(248)*V(280) - A(72) = RCT(72)*V(249)*V(280) - A(73) = RCT(73)*V(253)*V(280) - A(74) = RCT(74)*V(253)*V(280) - A(75) = RCT(75)*V(197)*V(280) - A(76) = RCT(76)*V(112)*V(287) - A(77) = RCT(77)*V(198)*V(269) - A(78) = RCT(78)*V(215)*V(269) - A(79) = RCT(79)*V(255)*V(269) - A(80) = RCT(80)*V(250)*V(270) - A(81) = RCT(81)*V(49) - A(82) = RCT(82)*V(250)*V(280) - A(83) = RCT(83)*V(255)*V(287) - A(84) = RCT(84)*V(219)*V(269) - A(85) = RCT(85)*V(233)*V(263) - A(86) = RCT(86)*V(204)*V(263) - A(87) = RCT(87)*V(252)*V(281) - A(88) = RCT(88)*V(251)*V(281) - A(89) = RCT(89)*V(248)*V(281) - A(90) = RCT(90)*V(249)*V(281) - A(91) = RCT(91)*V(253)*V(281) - A(92) = RCT(92)*V(197)*V(281) - A(93) = RCT(93)*V(222)*V(269) - A(94) = RCT(94)*V(213)*V(263) - A(95) = RCT(95)*V(235)*V(263) - A(96) = RCT(96)*V(222)*V(287) - A(97) = RCT(97)*V(252)*V(263) - A(98) = RCT(98)*V(251)*V(263) - A(99) = RCT(99)*V(248)*V(263) - A(100) = RCT(100)*V(249)*V(263) - A(101) = RCT(101)*V(253)*V(263) - A(102) = RCT(102)*V(197)*V(263) - A(103) = RCT(103)*V(129)*V(269) - A(104) = RCT(104)*V(154)*V(269) - A(105) = RCT(105)*V(213)*V(213) - A(106) = RCT(106)*V(235)*V(235) - A(107) = RCT(107)*V(213)*V(213) - A(108) = RCT(108)*V(235)*V(235) - A(109) = RCT(109)*V(213)*V(281) - A(110) = RCT(110)*V(235)*V(281) - A(111) = RCT(111)*V(233)*V(281) - A(112) = RCT(112)*V(204)*V(281) - A(113) = RCT(113)*V(250)*V(281) - A(114) = RCT(114)*V(254)*V(269) - A(115) = RCT(115)*V(254)*V(277) - A(116) = RCT(116)*V(232)*V(269) - A(117) = RCT(117)*V(232)*V(269) - A(118) = RCT(118)*V(254)*V(287) - A(119) = RCT(119)*V(218)*V(269) - A(120) = RCT(120)*V(228)*V(269) - A(121) = RCT(121)*V(218)*V(287) - A(122) = RCT(122)*V(228)*V(287) - A(123) = RCT(123)*V(246)*V(269) - A(124) = RCT(124)*V(246)*V(269) - A(125) = RCT(125)*V(233)*V(257) - A(126) = RCT(126)*V(204)*V(257) - A(127) = RCT(127)*V(233)*V(257) - A(128) = RCT(128)*V(204)*V(257) - A(129) = RCT(129)*V(250)*V(263) - A(130) = RCT(130)*V(250)*V(263) - A(131) = RCT(131)*V(111)*V(269) - A(132) = RCT(132)*V(108)*V(269) - A(133) = RCT(133)*V(92)*V(269) - A(134) = RCT(134)*V(93)*V(269) - A(135) = RCT(135)*V(91)*V(269) - A(136) = RCT(136)*V(94)*V(269) - A(137) = RCT(137)*V(110)*V(269) - A(138) = RCT(138)*V(23)*V(269) - A(139) = RCT(139)*V(66)*V(269) - A(140) = RCT(140)*V(157)*V(287) - A(141) = RCT(141)*V(257)*V(257) - A(142) = RCT(142)*V(257)*V(263) - A(143) = RCT(143)*V(257)*V(263) - A(144) = RCT(144)*V(252)*V(257) - A(145) = RCT(145)*V(248)*V(257) - A(146) = RCT(146)*V(249)*V(257) - A(147) = RCT(147)*V(253)*V(257) - A(148) = RCT(148)*V(251)*V(257) - A(149) = RCT(149)*V(197)*V(257) - A(150) = RCT(150)*V(252)*V(257) - A(151) = RCT(151)*V(248)*V(257) - A(152) = RCT(152)*V(249)*V(257) - A(153) = RCT(153)*V(251)*V(257) - A(154) = RCT(154)*V(197)*V(257) - A(155) = RCT(155)*V(253)*V(257) - A(156) = RCT(156)*V(213)*V(257) - A(157) = RCT(157)*V(235)*V(257) - A(158) = RCT(158)*V(213)*V(257) - A(159) = RCT(159)*V(235)*V(257) - A(160) = RCT(160)*V(250)*V(257) - A(161) = RCT(161)*V(287)*V(287) - A(162) = RCT(162)*V(263)*V(270) - A(163) = RCT(163)*V(71) - A(164) = RCT(164)*V(82)*V(269) - A(165) = RCT(165)*V(82)*V(269) - A(166) = RCT(166)*V(82)*V(287) - A(167) = RCT(167)*V(269)*V(286) - A(168) = RCT(168)*V(277)*V(282) - A(169) = RCT(169)*V(274)*V(281) - A(170) = RCT(170)*V(281)*V(282) - A(171) = RCT(171)*V(269)*V(272) - A(172) = RCT(172)*V(274)*V(274) - A(173) = RCT(173)*V(274)*V(274) - A(174) = RCT(174)*V(274)*V(280) - A(175) = RCT(175)*V(172)*V(282) - A(176) = RCT(176)*V(125)*V(269) - A(177) = RCT(177)*V(256)*V(284) - A(178) = RCT(178)*V(272)*V(284) - A(179) = RCT(179)*V(269)*V(274) - A(180) = RCT(180)*V(282)*V(287) - A(181) = RCT(181)*V(262)*V(282) - A(182) = RCT(182)*V(261)*V(282) - A(183) = RCT(183)*V(219)*V(282) - A(184) = RCT(184)*V(157)*V(282) - A(185) = RCT(185)*V(121)*V(282) - A(186) = RCT(186)*V(270)*V(282) - A(187) = RCT(187)*V(270)*V(274) - A(188) = RCT(188)*V(74)*V(269) - A(189) = RCT(189)*V(70)*V(269) - A(190) = RCT(190)*V(97)*V(269) - A(191) = RCT(191)*V(268)*V(279) - A(192) = RCT(192)*V(268)*F(2) - A(193) = RCT(193)*V(268)*F(3) - A(194) = RCT(194)*V(268)*F(1) - A(195) = RCT(195)*V(57)*V(268) - A(196) = RCT(196)*V(57)*V(268) - A(197) = RCT(197)*V(186)*V(268) - A(198) = RCT(198)*V(186)*V(268) - A(199) = RCT(199)*V(186)*V(268) - A(200) = RCT(200)*V(284)*F(3) - A(201) = RCT(201)*V(277)*V(284) - A(202) = RCT(202)*V(269)*F(1) - A(203) = RCT(203)*V(269)*V(284) - A(204) = RCT(204)*V(281)*V(284) - A(205) = RCT(205)*V(268)*V(277) - A(206) = RCT(206)*V(268)*V(277) - A(207) = RCT(207)*V(62)*V(284) - A(208) = RCT(208)*V(62)*V(269) - A(209) = RCT(209)*V(270)*V(284) - A(210) = RCT(210)*V(284)*V(287) - A(211) = RCT(211)*V(280)*V(284) - A(212) = RCT(212)*V(270)*V(284) - A(213) = RCT(213)*V(208)*V(284) - A(214) = RCT(214)*V(173)*F(3) - A(215) = RCT(215)*V(173)*V(277) - A(216) = RCT(216)*V(173)*V(281) - A(217) = RCT(217)*V(173)*V(281) - A(218) = RCT(218)*V(173)*V(281) - A(219) = RCT(219)*V(61)*F(3) - A(220) = RCT(220)*V(61)*V(280) - A(221) = RCT(221)*V(61)*V(270) - A(222) = RCT(222)*V(274)*V(284) - A(223) = RCT(223)*V(262)*V(284) - A(224) = RCT(224)*V(268)*V(271) - A(225) = RCT(225)*V(268)*V(272) - A(226) = RCT(226)*V(192)*V(268) - A(227) = RCT(227)*V(51)*V(268) - A(228) = RCT(228)*V(97)*V(268) - A(229) = RCT(229)*V(70)*V(268) - A(230) = RCT(230)*V(74)*V(268) - A(231) = RCT(231)*V(81)*V(268) - A(232) = RCT(232)*V(52)*V(268) - A(233) = RCT(233)*V(53)*V(268) - A(234) = RCT(234)*V(55)*V(268) - A(235) = RCT(235)*V(44)*V(268) - A(236) = RCT(236)*V(79)*V(268) - A(237) = RCT(237)*V(80)*V(268) - A(238) = RCT(238)*V(78)*V(268) - A(239) = RCT(239)*V(48)*V(268) - A(240) = RCT(240)*V(42)*V(268) - A(241) = RCT(241)*V(46)*V(268) - A(242) = RCT(242)*V(45)*V(268) - A(243) = RCT(243)*V(192)*V(269) - A(244) = RCT(244)*V(263)*V(273) - A(245) = RCT(245)*V(269)*V(273) - A(246) = RCT(246)*V(269)*V(273) - A(247) = RCT(247)*V(107)*V(269) - A(248) = RCT(248)*V(72)*V(269) - A(249) = RCT(249)*V(269)*V(271) - A(250) = RCT(250)*V(267)*V(269) - A(251) = RCT(251)*V(231)*V(269) - A(252) = RCT(252)*V(259)*V(269) - A(253) = RCT(253)*V(100)*V(269) - A(254) = RCT(254)*V(73)*V(269) - A(255) = RCT(255)*V(68)*V(269) - A(256) = RCT(256)*V(39)*V(269) - A(257) = RCT(257)*V(81)*V(269) - A(258) = RCT(258)*V(79)*V(269) - A(259) = RCT(259)*V(80)*V(269) - A(260) = RCT(260)*V(78)*V(269) - A(261) = RCT(261)*V(186)*V(285) - A(262) = RCT(262)*V(262)*V(285) - A(263) = RCT(263)*V(277)*V(285) - A(264) = RCT(264)*V(285)*F(1) - A(265) = RCT(265)*V(208)*V(285) - A(266) = RCT(266)*V(281)*V(285) - A(267) = RCT(267)*V(281)*V(285) - A(268) = RCT(268)*V(273)*V(284) - A(269) = RCT(269)*V(273)*V(281) - A(270) = RCT(270)*V(273)*V(280) - A(271) = RCT(271)*V(270)*V(273) - A(272) = RCT(272)*V(273)*V(273) - A(273) = RCT(273)*V(273)*V(273) - A(274) = RCT(274)*V(273)*V(273) - A(275) = RCT(275)*V(285)*F(3) - A(276) = RCT(276)*V(103) - A(277) = RCT(277)*V(273)*V(273) - A(278) = RCT(278)*V(72) - A(279) = RCT(279)*V(103)*V(285) - A(280) = RCT(280)*V(103)*V(285) - A(281) = RCT(281)*V(273)*V(274) - A(282) = RCT(282)*V(273)*V(274) - A(283) = RCT(283)*V(273)*V(274) - A(284) = RCT(284)*V(259)*V(284) - A(285) = RCT(285)*V(259)*V(285) - A(286) = RCT(286)*V(100)*V(285) - A(287) = RCT(287)*V(73)*V(285) - A(288) = RCT(288)*V(68)*V(285) - A(289) = RCT(289)*V(207)*V(285) - A(290) = RCT(290)*V(263)*V(285) - A(291) = RCT(291)*V(134)*V(285) - A(292) = RCT(292)*V(157)*V(285) - A(293) = RCT(293)*V(213)*V(285) - A(294) = RCT(294)*V(235)*V(285) - A(295) = RCT(295)*V(214)*V(285) - A(296) = RCT(296)*V(129)*V(285) - A(297) = RCT(297)*V(215)*V(285) - A(298) = RCT(298)*V(121)*V(285) - A(299) = RCT(299)*V(121)*V(285) - A(300) = RCT(300)*V(219)*V(285) - A(301) = RCT(301)*V(220)*V(285) - A(302) = RCT(302)*V(112)*V(285) - A(303) = RCT(303)*V(254)*V(285) - A(304) = RCT(304)*V(254)*V(282) - A(305) = RCT(305)*V(265)*V(280) - A(306) = RCT(306)*V(56)*V(56) - A(307) = RCT(307)*V(265)*V(270) - A(308) = RCT(308)*V(199) - A(309) = RCT(309)*V(199)*V(199) - A(310) = RCT(310)*V(140)*V(287) - A(311) = RCT(311)*V(223)*V(270) - A(312) = RCT(312)*V(266) - A(313) = RCT(313)*V(265)*V(266) - A(314) = RCT(314)*V(265)*V(274) - A(315) = RCT(315)*V(223)*V(274) - A(316) = RCT(316)*V(223)*V(274) - A(317) = RCT(317)*V(90)*V(223) - A(318) = RCT(318)*V(90)*V(90) - A(319) = RCT(319)*V(38) - A(320) = RCT(320)*V(90)*V(280) - A(321) = RCT(321)*V(223)*V(273) - A(322) = RCT(322)*V(223)*V(273) - A(323) = RCT(323)*V(223)*V(273) - A(324) = RCT(324)*V(265)*V(277) - A(325) = RCT(325)*V(265)*V(281) - A(326) = RCT(326)*V(140)*V(269) - A(327) = RCT(327)*V(65)*V(269) - A(328) = RCT(328)*V(264)*V(269) - A(329) = RCT(329)*V(223)*V(281) - A(330) = RCT(330)*V(223)*V(280) - A(331) = RCT(331)*V(223)*V(223) - A(332) = RCT(332)*V(223)*V(223) - A(333) = RCT(333)*V(40) - A(334) = RCT(334)*V(40) - A(335) = RCT(335)*V(43)*V(269) - A(336) = RCT(336)*V(205)*V(269) - A(337) = RCT(337)*V(194)*V(269) - A(338) = RCT(338)*V(230)*V(258) - A(339) = RCT(339)*V(230)*V(280) - A(340) = RCT(340)*V(230)*V(270) - A(341) = RCT(341)*V(230)*V(279) - A(342) = RCT(342)*V(230)*V(279)*V(279) - A(343) = RCT(343)*V(230)*V(277) - A(344) = RCT(344)*V(230)*V(286) - A(345) = RCT(345)*V(191)*V(258) - A(346) = RCT(346)*V(191)*V(280) - A(347) = RCT(347)*V(191)*V(270) - A(348) = RCT(348)*V(191)*V(286) - A(349) = RCT(349)*V(191)*V(279) - A(350) = RCT(350)*V(191)*V(279) - A(351) = RCT(351)*V(150)*V(269) - A(352) = RCT(352)*V(151)*V(269) - A(353) = RCT(353)*V(234)*V(280) - A(354) = RCT(354)*V(234)*V(281) - A(355) = RCT(355)*V(234)*V(263) - A(356) = RCT(356)*V(234)*V(257) - A(357) = RCT(357)*V(234)*V(287) - A(358) = RCT(358)*V(150)*V(277) - A(359) = RCT(359)*V(151)*V(277) - A(360) = RCT(360)*V(150)*V(287) - A(361) = RCT(361)*V(151)*V(287) - A(362) = RCT(362)*V(165)*V(269) - A(363) = RCT(363)*V(165)*V(277) - A(364) = RCT(364)*V(165)*V(287) - A(365) = RCT(365)*V(221)*V(280) - A(366) = RCT(366)*V(221)*V(281) - A(367) = RCT(367)*V(221)*V(263) - A(368) = RCT(368)*V(221)*V(257) - A(369) = RCT(369)*V(221)*V(287) - A(370) = RCT(370)*V(118)*V(269) - A(371) = RCT(371)*V(211)*V(280) - A(372) = RCT(372)*V(212)*V(280) - A(373) = RCT(373)*V(211)*V(281) - A(374) = RCT(374)*V(212)*V(281) - A(375) = RCT(375)*V(211)*V(263) - A(376) = RCT(376)*V(212)*V(263) - A(377) = RCT(377)*V(211)*V(257) - A(378) = RCT(378)*V(212)*V(257) - A(379) = RCT(379)*V(211)*V(287) - A(380) = RCT(380)*V(212)*V(287) - A(381) = RCT(381)*V(211)*V(211) - A(382) = RCT(382)*V(211)*V(212) - A(383) = RCT(383)*V(212)*V(212) - A(384) = RCT(384)*V(174)*V(269) - A(385) = RCT(385)*V(196)*V(269) - A(386) = RCT(386)*V(196)*V(277) - A(387) = RCT(387)*V(196)*V(287) - A(388) = RCT(388)*V(174)*V(287) - A(389) = RCT(389)*V(96) - A(390) = RCT(390)*V(41) - A(391) = RCT(391)*V(131)*V(269) - A(392) = RCT(392)*V(87)*V(269) - A(393) = RCT(393)*V(88)*V(269) - A(394) = RCT(394)*V(86)*V(269) - A(395) = RCT(395)*V(89)*V(269) - A(396) = RCT(396)*V(220)*V(277) - A(397) = RCT(397)*V(220)*V(269) - A(398) = RCT(398)*V(220)*V(269) - A(399) = RCT(399)*V(220)*V(269) - A(400) = RCT(400)*V(220)*V(269) - A(401) = RCT(401)*V(242)*V(281) - A(402) = RCT(402)*V(242)*V(281) - A(403) = RCT(403)*V(243)*V(281) - A(404) = RCT(404)*V(243)*V(281) - A(405) = RCT(405)*V(242) - A(406) = RCT(406)*V(242) - A(407) = RCT(407)*V(243) - A(408) = RCT(408)*V(243) - A(409) = RCT(409)*V(242)*V(242) - A(410) = RCT(410)*V(243)*V(243) - A(411) = RCT(411)*V(242)*V(243) - A(412) = RCT(412)*V(242)*V(242) - A(413) = RCT(413)*V(243)*V(243) - A(414) = RCT(414)*V(242)*V(243) - A(415) = RCT(415)*V(242)*V(263) - A(416) = RCT(416)*V(242)*V(263) - A(417) = RCT(417)*V(243)*V(263) - A(418) = RCT(418)*V(243)*V(263) - A(419) = RCT(419)*V(242)*V(280) - A(420) = RCT(420)*V(242)*V(280) - A(421) = RCT(421)*V(242)*V(280) - A(422) = RCT(422)*V(242)*V(280) - A(423) = RCT(423)*V(243)*V(280) - A(424) = RCT(424)*V(243)*V(280) - A(425) = RCT(425)*V(243)*V(280) - A(426) = RCT(426)*V(243)*V(280) - A(427) = RCT(427)*V(182)*V(269) - A(428) = RCT(428)*V(184)*V(269) - A(429) = RCT(429)*V(126)*V(269) - A(430) = RCT(430)*V(124)*V(269) - A(431) = RCT(431)*V(189)*V(269) - A(432) = RCT(432)*V(170)*V(269) - A(433) = RCT(433)*V(106)*V(269) - A(434) = RCT(434)*V(153)*V(269) - A(435) = RCT(435)*V(153)*V(269) - A(436) = RCT(436)*V(158)*V(269) - A(437) = RCT(437)*V(158)*V(269) - A(438) = RCT(438)*V(153)*V(269) - A(439) = RCT(439)*V(158)*V(269) - A(440) = RCT(440)*V(167)*V(269) - A(441) = RCT(441)*V(161)*V(269) - A(442) = RCT(442)*V(179) - A(443) = RCT(443)*V(179)*V(280) - A(444) = RCT(444)*V(179)*V(280) - A(445) = RCT(445)*V(179)*V(281) - A(446) = RCT(446)*V(180) - A(447) = RCT(447)*V(180)*V(280) - A(448) = RCT(448)*V(180)*V(280) - A(449) = RCT(449)*V(180)*V(281) - A(450) = RCT(450)*V(183) - A(451) = RCT(451)*V(183)*V(280) - A(452) = RCT(452)*V(183)*V(280) - A(453) = RCT(453)*V(183)*V(281) - A(454) = RCT(454)*V(114)*V(269) - A(455) = RCT(455)*V(127)*V(269) - A(456) = RCT(456)*V(127)*V(269) - A(457) = RCT(457)*V(128)*V(269) - A(458) = RCT(458)*V(128)*V(269) - A(459) = RCT(459)*V(224) - A(460) = RCT(460)*V(224) - A(461) = RCT(461)*V(224)*V(281) - A(462) = RCT(462)*V(224)*V(280) - A(463) = RCT(463)*V(224)*V(280) - A(464) = RCT(464)*V(225) - A(465) = RCT(465)*V(225) - A(466) = RCT(466)*V(225)*V(280) - A(467) = RCT(467)*V(225)*V(280) - A(468) = RCT(468)*V(225)*V(281) - A(469) = RCT(469)*V(190)*V(281) - A(470) = RCT(470)*V(190)*V(280) - A(471) = RCT(471)*V(190)*V(280) - A(472) = RCT(472)*V(190) - A(473) = RCT(473)*V(120)*V(280) - A(474) = RCT(474)*V(120)*V(281) - A(475) = RCT(475)*V(116)*V(280) - A(476) = RCT(476)*V(116)*V(281) - A(477) = RCT(477)*V(136)*V(269) - A(478) = RCT(478)*V(136)*V(269) - A(479) = RCT(479)*V(137)*V(269) - A(480) = RCT(480)*V(137)*V(269) - A(481) = RCT(481)*V(216)*V(269) - A(482) = RCT(482)*V(216)*V(269) - A(483) = RCT(483)*V(210)*V(269) - A(484) = RCT(484)*V(210)*V(269) - A(485) = RCT(485)*V(216)*V(269) - A(486) = RCT(486)*V(210)*V(269) - A(487) = RCT(487)*V(162) - A(488) = RCT(488)*V(162)*V(281) - A(489) = RCT(489)*V(162)*V(280) - A(490) = RCT(490)*V(162)*V(280) - A(491) = RCT(491)*V(148) - A(492) = RCT(492)*V(148)*V(281) - A(493) = RCT(493)*V(148)*V(280) - A(494) = RCT(494)*V(148)*V(280) - A(495) = RCT(495)*V(164) - A(496) = RCT(496)*V(163) - A(497) = RCT(497)*V(164)*V(281) - A(498) = RCT(498)*V(164)*V(280) - A(499) = RCT(499)*V(164)*V(280) - A(500) = RCT(500)*V(163)*V(281) - A(501) = RCT(501)*V(163)*V(280) - A(502) = RCT(502)*V(163)*V(280) - A(503) = RCT(503)*V(229)*V(281) - A(504) = RCT(504)*V(229)*V(280) - A(505) = RCT(505)*V(229)*V(280) - A(506) = RCT(506)*V(220)*V(287) - A(507) = RCT(507)*V(240)*V(281) - A(508) = RCT(508)*V(241)*V(281) - A(509) = RCT(509)*V(240)*V(240) - A(510) = RCT(510)*V(240)*V(241) - A(511) = RCT(511)*V(241)*V(241) - A(512) = RCT(512)*V(241)*V(263) - A(513) = RCT(513)*V(240)*V(263) - A(514) = RCT(514)*V(240)*V(257) - A(515) = RCT(515)*V(241)*V(257) - A(516) = RCT(516)*V(240)*V(287) - A(517) = RCT(517)*V(241)*V(287) - A(518) = RCT(518)*V(240)*V(280) - A(519) = RCT(519)*V(240)*V(280) - A(520) = RCT(520)*V(241)*V(280) - A(521) = RCT(521)*V(241)*V(280) - A(522) = RCT(522)*V(123)*F(3) - A(523) = RCT(523)*V(123) - A(524) = RCT(524)*V(177)*V(269) - A(525) = RCT(525)*V(147)*V(269) - A(526) = RCT(526)*V(177)*V(269) - A(527) = RCT(527)*V(147)*V(269) - A(528) = RCT(528)*V(147)*V(269) - A(529) = RCT(529)*V(177)*V(269) - A(530) = RCT(530)*V(147)*V(269) - A(531) = RCT(531)*V(147)*V(269) - A(532) = RCT(532)*V(185) - A(533) = RCT(533)*V(217) - A(534) = RCT(534)*V(217)*V(281) - A(535) = RCT(535)*V(185)*V(281) - A(536) = RCT(536)*V(217)*V(280) - A(537) = RCT(537)*V(217)*V(280) - A(538) = RCT(538)*V(185)*V(280) - A(539) = RCT(539)*V(185)*V(280) - A(540) = RCT(540)*V(236)*V(269) - A(541) = RCT(541)*V(236)*V(269) - A(542) = RCT(542)*V(146)*V(280) - A(543) = RCT(543)*V(146)*V(281) - A(544) = RCT(544)*V(239)*V(269) - A(545) = RCT(545)*V(143)*V(280) - A(546) = RCT(546)*V(143)*V(281) - A(547) = RCT(547)*V(244)*V(269) - A(548) = RCT(548)*V(244)*V(277) - A(549) = RCT(549)*V(247)*V(269) - A(550) = RCT(550)*V(247)*V(269) - A(551) = RCT(551)*V(247)*V(277) - A(552) = RCT(552)*V(247)*V(287) - A(553) = RCT(553)*V(237)*V(269) - A(554) = RCT(554)*V(226)*V(269) - A(555) = RCT(555)*V(227)*V(269) - A(556) = RCT(556)*V(195)*V(269) - A(557) = RCT(557)*V(171)*V(269) - A(558) = RCT(558)*V(141)*V(280) - A(559) = RCT(559)*V(141)*V(281) - A(560) = RCT(560)*V(141)*V(270) - A(561) = RCT(561)*V(142)*V(280) - A(562) = RCT(562)*V(142)*V(281) - A(563) = RCT(563)*V(142)*V(270) - A(564) = RCT(564)*V(160)*V(269) - A(565) = RCT(565)*V(152)*V(269) - A(566) = RCT(566)*V(115)*V(269) - A(567) = RCT(567)*V(181)*V(269) - A(568) = RCT(568)*V(166)*V(269) - A(569) = RCT(569)*V(130)*V(269) - A(570) = RCT(570)*V(200)*V(281) - A(571) = RCT(571)*V(200)*V(280) - A(572) = RCT(572)*V(200)*V(280) - A(573) = RCT(573)*V(201)*V(281) - A(574) = RCT(574)*V(203)*V(281) - A(575) = RCT(575)*V(133)*V(269) - A(576) = RCT(576)*V(201) - A(577) = RCT(577)*V(201)*V(280) - A(578) = RCT(578)*V(201)*V(280) - A(579) = RCT(579)*V(203)*V(280) - A(580) = RCT(580)*V(203)*V(270) - A(581) = RCT(581)*V(245)*V(281) - A(582) = RCT(582)*V(245)*V(280) - A(583) = RCT(583)*V(245)*V(270) - A(584) = RCT(584)*V(245)*V(287) - A(585) = RCT(585)*V(245)*V(263) - A(586) = RCT(586)*V(149) - A(587) = RCT(587)*V(149)*V(269) - A(588) = RCT(588)*V(84)*V(269) - A(589) = RCT(589)*V(202)*V(269) - A(590) = RCT(590)*V(122)*V(269) - A(591) = RCT(591)*V(139)*V(269) - A(592) = RCT(592)*V(159)*V(269) - A(593) = RCT(593)*V(209)*V(269) - A(594) = RCT(594)*V(238)*V(269) - A(595) = RCT(595)*V(205)*V(287) - A(596) = RCT(596)*V(104)*V(269) - A(597) = RCT(597)*V(83)*V(269) - A(598) = RCT(598)*V(257)*V(281) - A(599) = RCT(599)*V(168)*V(269) - A(600) = RCT(600)*V(168)*V(269) - A(601) = RCT(601)*V(18)*V(269) - A(602) = RCT(602)*V(17)*V(281) - A(603) = RCT(603)*V(17)*V(280) - A(604) = RCT(604)*V(75)*V(277) - A(605) = RCT(605)*V(75)*V(269) - A(606) = RCT(606)*V(54)*V(269) - A(607) = RCT(607)*V(175)*V(281) - A(608) = RCT(608)*V(175)*V(280) - A(609) = RCT(609)*V(175)*V(287) - A(610) = RCT(610)*V(175)*V(263) - A(611) = RCT(611)*V(102) - A(612) = RCT(612)*V(102)*F(3) - A(613) = RCT(613)*V(64)*V(269) - A(614) = RCT(614)*V(113)*V(269) - A(615) = RCT(615)*V(113)*V(269) - A(616) = RCT(616)*V(60)*V(269) - A(617) = RCT(617)*V(76)*V(269) - A(618) = RCT(618)*V(77)*V(269) - A(619) = RCT(619)*V(178)*V(281) - A(620) = RCT(620)*V(178)*V(280) - A(621) = RCT(621)*V(178)*V(287) - A(622) = RCT(622)*V(178)*V(263) - A(623) = RCT(623)*V(178)*V(257) - A(624) = RCT(624)*V(117)*V(269) - A(625) = RCT(625)*V(117)*V(287) - A(626) = RCT(626)*V(109)*V(269) - A(627) = RCT(627)*V(109)*V(287) - A(628) = RCT(628)*V(138)*V(269) - A(629) = RCT(629)*V(138)*V(277) - A(630) = RCT(630)*V(138)*V(287) - A(631) = RCT(631)*V(99)*V(269) - A(632) = RCT(632)*V(99)*V(287) - A(633) = RCT(633)*V(176)*V(281) - A(634) = RCT(634)*V(176)*V(280) - A(635) = RCT(635)*V(176)*V(270) - A(636) = RCT(636)*V(67)*V(269) - A(637) = RCT(637)*V(95) - A(638) = RCT(638)*V(95)*V(269) - A(639) = RCT(639)*V(187)*V(270) - A(640) = RCT(640)*V(187)*V(280) - A(641) = RCT(641)*V(187)*V(287) - A(642) = RCT(642)*V(187)*V(281) - A(643) = RCT(643)*V(105)*V(269) - A(644) = RCT(644)*V(156)*V(277) - A(645) = RCT(645)*V(156)*V(270) - A(646) = RCT(646)*V(206)*V(269) - A(647) = RCT(647)*V(206)*V(287) - A(648) = RCT(648)*V(187)*V(263) - A(649) = RCT(649)*V(176)*V(263) - A(650) = RCT(650)*V(155)*V(269) - A(651) = RCT(651)*V(155)*V(277) - A(652) = RCT(652)*V(155) - A(653) = RCT(653)*V(145)*V(269) - A(654) = RCT(654)*V(145)*V(277) - A(655) = RCT(655)*V(145) - A(656) = RCT(656)*V(12)*V(281) - A(657) = RCT(657)*V(12)*V(280) - A(658) = RCT(658)*V(21)*V(281) - A(659) = RCT(659)*V(21)*V(280) - A(660) = RCT(660)*V(26)*V(281) - A(661) = RCT(661)*V(26)*V(280) - A(662) = RCT(662)*V(263)*V(287) - A(663) = RCT(663)*V(281) - A(664) = RCT(664)*V(270) - A(665) = RCT(665)*V(287) - A(666) = RCT(666)*V(287) - A(667) = RCT(667)*V(287) - A(668) = RCT(668)*V(169)*V(279) - A(669) = RCT(669)*V(169)*V(271) - A(670) = RCT(670)*V(169) - A(671) = RCT(671)*V(169)*V(278) - A(672) = RCT(672)*V(169)*V(283) - A(673) = RCT(673)*V(269)*V(278) - A(674) = RCT(674)*V(269)*V(283) - A(675) = RCT(675)*V(172)*V(279) - A(676) = RCT(676)*V(172)*V(271) - A(677) = RCT(677)*V(259)*V(279) - A(678) = RCT(678)*V(259)*V(271) - A(679) = RCT(679)*V(259)*V(272) - A(680) = RCT(680)*V(259)*V(275) - A(681) = RCT(681)*V(259)*V(276) - A(682) = RCT(682)*V(259)*V(278) - A(683) = RCT(683)*V(259)*V(283) - A(684) = RCT(684)*V(231)*V(278) - A(685) = RCT(685)*V(231)*V(283) - A(686) = RCT(686)*V(231)*V(271) - A(687) = RCT(687)*V(231)*V(275) - A(688) = RCT(688)*V(231)*V(276) - A(689) = RCT(689)*V(231)*V(272) - A(690) = RCT(690)*V(267)*V(271) - A(691) = RCT(691)*V(267)*V(272) - A(692) = RCT(692)*V(267)*V(278) - A(693) = RCT(693)*V(267)*V(283) - A(694) = RCT(694)*V(267)*V(286) - A(695) = RCT(695)*V(256)*V(272) - A(696) = RCT(696)*V(256)*V(271) - A(697) = RCT(697)*V(256)*V(278) - A(698) = RCT(698)*V(256)*V(283) - A(699) = RCT(699)*V(256)*V(275) - A(700) = RCT(700)*V(256)*V(276) - A(701) = RCT(701)*V(256)*V(286) - A(702) = RCT(702)*V(272)*V(277) - A(703) = RCT(703)*V(275)*V(277) - A(704) = RCT(704)*V(276)*V(277) - A(705) = RCT(705)*V(272) - A(706) = RCT(706)*V(272) - A(707) = RCT(707)*V(65) - A(708) = RCT(708)*V(65) - A(709) = RCT(709)*V(65) - A(710) = RCT(710)*V(40) - A(711) = RCT(711)*V(40) - A(712) = RCT(712)*V(40) - A(713) = RCT(713)*V(47) - A(714) = RCT(714)*V(47) - A(715) = RCT(715)*V(47) - A(716) = RCT(716)*V(38) - A(717) = RCT(717)*V(38) - A(718) = RCT(718)*V(38) - A(719) = RCT(719)*V(266)*V(279) - A(720) = RCT(720)*V(199)*V(275) - A(721) = RCT(721)*V(199)*V(276) - A(722) = RCT(722)*V(199)*V(278) - A(723) = RCT(723)*V(199)*V(283) - A(724) = RCT(724)*V(266)*V(275) - A(725) = RCT(725)*V(266)*V(276) - A(726) = RCT(726)*V(266)*V(278) - A(727) = RCT(727)*V(266)*V(283) - A(728) = RCT(728)*V(264)*V(275) - A(729) = RCT(729)*V(264)*V(276) - A(730) = RCT(730)*V(264)*V(278) - A(731) = RCT(731)*V(264)*V(283) - A(732) = RCT(732)*V(218) - A(733) = RCT(733)*V(228) - A(734) = RCT(734)*V(127) - A(735) = RCT(735)*V(128) - A(736) = RCT(736)*V(114) - A(737) = RCT(737)*V(23) - A(738) = RCT(738)*V(237) - A(739) = RCT(739)*V(198) - A(740) = RCT(740)*V(174) - A(741) = RCT(741)*V(196) - A(742) = RCT(742)*V(131) - A(743) = RCT(743)*V(104) - A(744) = RCT(744)*V(84) - A(745) = RCT(745)*V(216) - A(746) = RCT(746)*V(136) - A(747) = RCT(747)*V(137) - A(748) = RCT(748)*V(210) - A(749) = RCT(749)*V(170) - A(750) = RCT(750)*V(147) - A(751) = RCT(751)*V(177) - A(752) = RCT(752)*V(239) - A(753) = RCT(753)*V(209) - A(754) = RCT(754)*V(238) - A(755) = RCT(755)*V(171) - A(756) = RCT(756)*V(195) - A(757) = RCT(757)*V(206) - A(758) = RCT(758)*V(277) - A(759) = RCT(759)*V(277) - A(760) = RCT(760)*F(3) - A(761) = RCT(761)*V(270) - A(762) = RCT(762)*V(208) - A(763) = RCT(763)*V(134) - A(764) = RCT(764)*V(262) - A(765) = RCT(765)*V(262) - A(766) = RCT(766)*V(260) - A(767) = RCT(767)*V(188) - A(768) = RCT(768)*V(101) - A(769) = RCT(769)*V(101) - A(770) = RCT(770)*V(287) - A(771) = RCT(771)*V(287) - A(772) = RCT(772)*V(169) - A(773) = RCT(773)*V(261) - A(774) = RCT(774)*V(261) - A(775) = RCT(775)*V(63) - A(776) = RCT(776)*V(255) - A(777) = RCT(777)*V(219) - A(778) = RCT(778)*V(219) - A(779) = RCT(779)*V(222) - A(780) = RCT(780)*V(232) - A(781) = RCT(781)*V(218) - A(782) = RCT(782)*V(218) - A(783) = RCT(783)*V(218) - A(784) = RCT(784)*V(228) - A(785) = RCT(785)*V(244) - A(786) = RCT(786)*V(244) - A(787) = RCT(787)*V(244) - A(788) = RCT(788)*V(247) - A(789) = RCT(789)*V(246) - A(790) = RCT(790)*V(111) - A(791) = RCT(791)*V(108) - A(792) = RCT(792)*V(92) - A(793) = RCT(793)*V(93) - A(794) = RCT(794)*V(91) - A(795) = RCT(795)*V(110) - A(796) = RCT(796)*V(94) - A(797) = RCT(797)*V(198) - A(798) = RCT(798)*V(66) - A(799) = RCT(799)*V(125) - A(800) = RCT(800)*V(274) - A(801) = RCT(801)*V(256) - A(802) = RCT(802)*V(172) - A(803) = RCT(803)*V(172) - A(804) = RCT(804)*V(50) - A(805) = RCT(805)*V(74) - A(806) = RCT(806)*V(70) - A(807) = RCT(807)*V(97) - A(808) = RCT(808)*V(100) - A(809) = RCT(809)*V(73) - A(810) = RCT(810)*V(132) - A(811) = RCT(811)*V(192) - A(812) = RCT(812)*V(273) - A(813) = RCT(813)*V(107) - A(814) = RCT(814)*V(72) - A(815) = RCT(815)*V(231) - A(816) = RCT(816)*V(259) - A(817) = RCT(817)*V(259) - A(818) = RCT(818)*V(267) - A(819) = RCT(819)*V(39) - A(820) = RCT(820)*V(51) - A(821) = RCT(821)*V(52) - A(822) = RCT(822)*V(53) - A(823) = RCT(823)*V(48) - A(824) = RCT(824)*V(42) - A(825) = RCT(825)*V(46) - A(826) = RCT(826)*V(78) - A(827) = RCT(827)*V(79) - A(828) = RCT(828)*V(80) - A(829) = RCT(829)*V(81) - A(830) = RCT(830)*V(44) - A(831) = RCT(831)*V(55) - A(832) = RCT(832)*V(45) - A(833) = RCT(833)*V(103) - A(834) = RCT(834)*V(140) - A(835) = RCT(835)*V(264) - A(836) = RCT(836)*V(223) - A(837) = RCT(837)*V(90) - A(838) = RCT(838)*V(56) - A(839) = RCT(839)*V(199) - A(840) = RCT(840)*V(266) - A(841) = RCT(841)*V(40) - A(842) = RCT(842)*V(43) - A(843) = RCT(843)*V(1) - A(844) = RCT(844)*V(3) - A(845) = RCT(845)*V(2) - A(846) = RCT(846)*V(38) - A(847) = RCT(847)*V(47) - A(848) = RCT(848)*V(69) - A(849) = RCT(849)*V(98) - A(850) = RCT(850)*V(71) - A(851) = RCT(851)*V(71) - A(852) = RCT(852)*V(193) - A(853) = RCT(853)*V(57) - A(854) = RCT(854)*V(62) - A(855) = RCT(855)*V(119) - A(856) = RCT(856)*V(280) - A(857) = RCT(857)*V(118) - A(858) = RCT(858)*V(205) - A(859) = RCT(859)*V(174) - A(860) = RCT(860)*V(196) - A(861) = RCT(861)*V(131) - A(862) = RCT(862)*V(59) - A(863) = RCT(863)*V(59) - A(864) = RCT(864)*V(58) - A(865) = RCT(865)*V(58) - A(866) = RCT(866)*V(87) - A(867) = RCT(867)*V(88) - A(868) = RCT(868)*V(86) - A(869) = RCT(869)*V(89) - A(870) = RCT(870)*V(83) - A(871) = RCT(871)*V(168) - A(872) = RCT(872)*V(104) - A(873) = RCT(873)*V(194) - A(874) = RCT(874)*V(166) - A(875) = RCT(875)*V(181) - A(876) = RCT(876)*V(226) - A(877) = RCT(877)*V(152) - A(878) = RCT(878)*V(160) - A(879) = RCT(879)*V(227) - A(880) = RCT(880)*V(133) - A(881) = RCT(881)*V(237) - A(882) = RCT(882)*V(195) - A(883) = RCT(883)*V(171) - A(884) = RCT(884)*V(153) - A(885) = RCT(885)*V(158) - A(886) = RCT(886)*V(167) - A(887) = RCT(887)*V(161) - A(888) = RCT(888)*V(182) - A(889) = RCT(889)*V(184) - A(890) = RCT(890)*V(126) - A(891) = RCT(891)*V(124) - A(892) = RCT(892)*V(216) - A(893) = RCT(893)*V(136) - A(894) = RCT(894)*V(137) - A(895) = RCT(895)*V(210) - A(896) = RCT(896)*V(177) - A(897) = RCT(897)*V(147) - A(898) = RCT(898)*V(147) - A(899) = RCT(899)*V(236) - A(900) = RCT(900)*V(239) - A(901) = RCT(901)*V(202) - A(902) = RCT(902)*V(202) - A(903) = RCT(903)*V(139) - A(904) = RCT(904)*V(159) - A(905) = RCT(905)*V(122) - A(906) = RCT(906)*V(238) - A(907) = RCT(907)*V(238) - A(908) = RCT(908)*V(209) - A(909) = RCT(909)*V(209) - A(910) = RCT(910)*V(113) - A(911) = RCT(911)*V(99) - A(912) = RCT(912)*V(67) - A(913) = RCT(913)*V(105) - A(914) = RCT(914)*V(206) + A(1) = RCT(1)*V(147)*V(276)*V(282) + A(2) = RCT(2)*V(147)*V(275) + A(3) = RCT(3)*V(147)*V(265) + A(4) = RCT(4)*V(138)*V(276)*V(282) + A(5) = RCT(5)*V(138)*V(275) + A(6) = RCT(6)*V(138)*V(265) + A(7) = RCT(7)*V(212)*V(276) + A(8) = RCT(8)*V(276)*V(282) + A(9) = RCT(9)*V(276) + A(10) = RCT(10)*V(263)*V(276) + A(11) = RCT(11)*V(86) + A(12) = RCT(12)*V(86)*V(276)*V(286) + A(13) = RCT(13)*V(279)*V(282) + A(14) = RCT(14)*V(282)*V(286) + A(15) = RCT(15)*V(282)*V(284) + A(16) = RCT(16)*V(282)*V(291) + A(17) = RCT(17)*V(266)*V(282) + A(18) = RCT(18)*V(286)*V(286) + A(19) = RCT(19)*V(286)*V(286) + A(20) = RCT(20)*V(284)*V(286) + A(21) = RCT(21)*V(212)*V(286) + A(22) = RCT(22)*V(279)*V(284) + A(23) = RCT(23)*V(284)*V(284) + A(24) = RCT(24)*V(267)*V(286) + A(25) = RCT(25)*V(190)*V(286) + A(26) = RCT(26)*V(266)*V(279) + A(27) = RCT(27)*V(266)*V(279) + A(28) = RCT(28)*V(266)*V(284) + A(29) = RCT(29)*V(266)*V(266) + A(30) = RCT(30)*V(266)*V(266) + A(31) = RCT(31)*V(266)*V(286) + A(32) = RCT(32)*V(137)*V(286) + A(33) = RCT(33)*V(196)*V(286) + A(34) = RCT(34)*V(263)*V(286) + A(35) = RCT(35)*V(286)*V(291) + A(36) = RCT(36)*V(265)*V(286) + A(37) = RCT(37)*V(279)*V(286) + A(38) = RCT(38)*V(193)*V(286) + A(39) = RCT(39)*V(284)*V(291) + A(40) = RCT(40)*V(102) + A(41) = RCT(41)*V(102)*V(286) + A(42) = RCT(42)*V(281)*V(284) + A(43) = RCT(43)*V(279)*V(281) + A(44) = RCT(44)*V(281)*V(286) + A(45) = RCT(45)*V(281)*V(291) + A(46) = RCT(46)*V(173) + A(47) = RCT(47)*V(211)*V(286) + A(48) = RCT(48)*V(218)*V(286) + A(49) = RCT(49)*V(281)*V(291) + A(50) = RCT(50)*V(263)*V(281) + A(51) = RCT(51)*V(264)*V(286) + A(52) = RCT(52)*V(264)*V(281) + A(53) = RCT(53)*V(261)*V(291) + A(54) = RCT(54)*V(67) + A(55) = RCT(55)*V(261)*V(279) + A(56) = RCT(56)*V(161)*V(286) + A(57) = RCT(57)*V(217)*V(279) + A(58) = RCT(58)*V(217)*V(279) + A(59) = RCT(59)*V(239)*V(279) + A(60) = RCT(60)*V(124)*V(286) + A(61) = RCT(61)*V(124)*V(286) + A(62) = RCT(62)*V(237)*V(279) + A(63) = RCT(63)*V(237)*V(279) + A(64) = RCT(64)*V(209)*V(279) + A(65) = RCT(65)*V(114)*V(286) + A(66) = RCT(66)*V(256)*V(279) + A(67) = RCT(67)*V(256)*V(279) + A(68) = RCT(68)*V(257)*V(279) + A(69) = RCT(69)*V(252)*V(279) + A(70) = RCT(70)*V(254)*V(279) + A(71) = RCT(71)*V(258)*V(279) + A(72) = RCT(72)*V(258)*V(279) + A(73) = RCT(73)*V(201)*V(279) + A(74) = RCT(74)*V(114)*V(281) + A(75) = RCT(75)*V(202)*V(286) + A(76) = RCT(76)*V(219)*V(286) + A(77) = RCT(77)*V(259)*V(286) + A(78) = RCT(78)*V(255)*V(291) + A(79) = RCT(79)*V(50) + A(80) = RCT(80)*V(255)*V(279) + A(81) = RCT(81)*V(259)*V(281) + A(82) = RCT(82)*V(221)*V(286) + A(83) = RCT(83)*V(237)*V(266) + A(84) = RCT(84)*V(209)*V(266) + A(85) = RCT(85)*V(256)*V(284) + A(86) = RCT(86)*V(257)*V(284) + A(87) = RCT(87)*V(252)*V(284) + A(88) = RCT(88)*V(254)*V(284) + A(89) = RCT(89)*V(258)*V(284) + A(90) = RCT(90)*V(201)*V(284) + A(91) = RCT(91)*V(226)*V(286) + A(92) = RCT(92)*V(217)*V(266) + A(93) = RCT(93)*V(239)*V(266) + A(94) = RCT(94)*V(226)*V(281) + A(95) = RCT(95)*V(256)*V(266) + A(96) = RCT(96)*V(257)*V(266) + A(97) = RCT(97)*V(252)*V(266) + A(98) = RCT(98)*V(254)*V(266) + A(99) = RCT(99)*V(258)*V(266) + A(100) = RCT(100)*V(201)*V(266) + A(101) = RCT(101)*V(133)*V(286) + A(102) = RCT(102)*V(158)*V(286) + A(103) = RCT(103)*V(217)*V(217) + A(104) = RCT(104)*V(239)*V(239) + A(105) = RCT(105)*V(217)*V(284) + A(106) = RCT(106)*V(239)*V(284) + A(107) = RCT(107)*V(237)*V(284) + A(108) = RCT(108)*V(209)*V(284) + A(109) = RCT(109)*V(255)*V(284) + A(110) = RCT(110)*V(253)*V(286) + A(111) = RCT(111)*V(253)*V(282) + A(112) = RCT(112)*V(236)*V(286) + A(113) = RCT(113)*V(236)*V(286) + A(114) = RCT(114)*V(253)*V(281) + A(115) = RCT(115)*V(223)*V(286) + A(116) = RCT(116)*V(233)*V(286) + A(117) = RCT(117)*V(223)*V(281) + A(118) = RCT(118)*V(233)*V(281) + A(119) = RCT(119)*V(250)*V(286) + A(120) = RCT(120)*V(250)*V(286) + A(121) = RCT(121)*V(113)*V(286) + A(122) = RCT(122)*V(110)*V(286) + A(123) = RCT(123)*V(94)*V(286) + A(124) = RCT(124)*V(95)*V(286) + A(125) = RCT(125)*V(93)*V(286) + A(126) = RCT(126)*V(106)*V(286) + A(127) = RCT(127)*V(112)*V(286) + A(128) = RCT(128)*V(24)*V(286) + A(129) = RCT(129)*V(88)*V(286) + A(130) = RCT(130)*V(161)*V(281) + A(131) = RCT(131)*V(261)*V(261) + A(132) = RCT(132)*V(261)*V(266) + A(133) = RCT(133)*V(256)*V(261) + A(134) = RCT(134)*V(252)*V(261) + A(135) = RCT(135)*V(254)*V(261) + A(136) = RCT(136)*V(258)*V(261) + A(137) = RCT(137)*V(257)*V(261) + A(138) = RCT(138)*V(201)*V(261) + A(139) = RCT(139)*V(217)*V(261) + A(140) = RCT(140)*V(239)*V(261) + A(141) = RCT(141)*V(209)*V(261) + A(142) = RCT(142)*V(237)*V(261) + A(143) = RCT(143)*V(255)*V(261) + A(144) = RCT(144)*V(255)*V(266) + A(145) = RCT(145)*V(281)*V(281) + A(146) = RCT(146)*V(266)*V(291) + A(147) = RCT(147)*V(74) + A(148) = RCT(148)*V(90)*V(286) + A(149) = RCT(149)*V(90)*V(286) + A(150) = RCT(150)*V(90)*V(281) + A(151) = RCT(151)*V(276)*V(286) + A(152) = RCT(152)*V(273)*V(282) + A(153) = RCT(153)*V(274)*V(284) + A(154) = RCT(154)*V(273)*V(284) + A(155) = RCT(155)*V(286)*V(289) + A(156) = RCT(156)*V(274)*V(274) + A(157) = RCT(157)*V(274)*V(274) + A(158) = RCT(158)*V(274)*V(279) + A(159) = RCT(159)*V(176)*V(273) + A(160) = RCT(160)*V(128)*V(286) + A(161) = RCT(161)*V(260)*V(288) + A(162) = RCT(162)*V(288)*V(289) + A(163) = RCT(163)*V(274)*V(286) + A(164) = RCT(164)*V(273)*V(281) + A(165) = RCT(165)*V(263)*V(273) + A(166) = RCT(166)*V(264)*V(273) + A(167) = RCT(167)*V(221)*V(273) + A(168) = RCT(168)*V(161)*V(273) + A(169) = RCT(169)*V(124)*V(273) + A(170) = RCT(170)*V(273)*V(291) + A(171) = RCT(171)*V(274)*V(291) + A(172) = RCT(172)*V(77)*V(286) + A(173) = RCT(173)*V(71)*V(286) + A(174) = RCT(174)*V(100)*V(286) + A(175) = RCT(175)*V(272)*V(278) + A(176) = RCT(176)*V(272)*F(2) + A(177) = RCT(177)*V(272)*F(3) + A(178) = RCT(178)*V(272)*F(1) + A(179) = RCT(179)*V(61)*V(272) + A(180) = RCT(180)*V(190)*V(272) + A(181) = RCT(181)*V(288)*F(3) + A(182) = RCT(182)*V(282)*V(288) + A(183) = RCT(183)*V(286)*F(1) + A(184) = RCT(184)*V(286)*V(288) + A(185) = RCT(185)*V(284)*V(288) + A(186) = RCT(186)*V(272)*V(282) + A(187) = RCT(187)*V(66)*V(288) + A(188) = RCT(188)*V(66)*V(286) + A(189) = RCT(189)*V(288)*V(291) + A(190) = RCT(190)*V(281)*V(288) + A(191) = RCT(191)*V(279)*V(288) + A(192) = RCT(192)*V(288)*V(291) + A(193) = RCT(193)*V(212)*V(288) + A(194) = RCT(194)*V(177)*F(3) + A(195) = RCT(195)*V(177)*V(282) + A(196) = RCT(196)*V(177)*V(284) + A(197) = RCT(197)*V(65)*F(3) + A(198) = RCT(198)*V(65)*V(279) + A(199) = RCT(199)*V(65)*V(291) + A(200) = RCT(200)*V(274)*V(288) + A(201) = RCT(201)*V(263)*V(288) + A(202) = RCT(202)*V(272)*V(275) + A(203) = RCT(203)*V(272)*V(289) + A(204) = RCT(204)*V(197)*V(272) + A(205) = RCT(205)*V(52)*V(272) + A(206) = RCT(206)*V(149)*V(272) + A(207) = RCT(207)*V(100)*V(272) + A(208) = RCT(208)*V(71)*V(272) + A(209) = RCT(209)*V(77)*V(272) + A(210) = RCT(210)*V(84)*V(272) + A(211) = RCT(211)*V(53)*V(272) + A(212) = RCT(212)*V(54)*V(272) + A(213) = RCT(213)*V(59)*V(272) + A(214) = RCT(214)*V(47)*V(272) + A(215) = RCT(215)*V(82)*V(272) + A(216) = RCT(216)*V(83)*V(272) + A(217) = RCT(217)*V(81)*V(272) + A(218) = RCT(218)*V(55)*V(272) + A(219) = RCT(219)*V(56)*V(272) + A(220) = RCT(220)*V(57)*V(272) + A(221) = RCT(221)*V(48)*V(272) + A(222) = RCT(222)*V(197)*V(286) + A(223) = RCT(223)*V(266)*V(285) + A(224) = RCT(224)*V(285)*V(286) + A(225) = RCT(225)*V(285)*V(286) + A(226) = RCT(226)*V(111)*V(286) + A(227) = RCT(227)*V(75)*V(286) + A(228) = RCT(228)*V(275)*V(286) + A(229) = RCT(229)*V(271)*V(286) + A(230) = RCT(230)*V(235)*V(286) + A(231) = RCT(231)*V(262)*V(286) + A(232) = RCT(232)*V(149)*V(286) + A(233) = RCT(233)*V(72)*V(286) + A(234) = RCT(234)*V(78)*V(286) + A(235) = RCT(235)*V(43)*V(286) + A(236) = RCT(236)*V(84)*V(286) + A(237) = RCT(237)*V(82)*V(286) + A(238) = RCT(238)*V(83)*V(286) + A(239) = RCT(239)*V(81)*V(286) + A(240) = RCT(240)*V(190)*V(290) + A(241) = RCT(241)*V(263)*V(290) + A(242) = RCT(242)*V(282)*V(290) + A(243) = RCT(243)*V(290)*F(1) + A(244) = RCT(244)*V(212)*V(290) + A(245) = RCT(245)*V(284)*V(290) + A(246) = RCT(246)*V(284)*V(290) + A(247) = RCT(247)*V(285)*V(288) + A(248) = RCT(248)*V(284)*V(285) + A(249) = RCT(249)*V(279)*V(285) + A(250) = RCT(250)*V(285)*V(291) + A(251) = RCT(251)*V(285)*V(285) + A(252) = RCT(252)*V(285)*V(285) + A(253) = RCT(253)*V(285)*V(285) + A(254) = RCT(254)*V(290)*F(3) + A(255) = RCT(255)*V(103) + A(256) = RCT(256)*V(285)*V(285) + A(257) = RCT(257)*V(75) + A(258) = RCT(258)*V(103)*V(290) + A(259) = RCT(259)*V(274)*V(285) + A(260) = RCT(260)*V(274)*V(285) + A(261) = RCT(261)*V(274)*V(285) + A(262) = RCT(262)*V(262)*V(288) + A(263) = RCT(263)*V(262)*V(290) + A(264) = RCT(264)*V(149)*V(290) + A(265) = RCT(265)*V(72)*V(290) + A(266) = RCT(266)*V(78)*V(290) + A(267) = RCT(267)*V(211)*V(290) + A(268) = RCT(268)*V(266)*V(290) + A(269) = RCT(269)*V(137)*V(290) + A(270) = RCT(270)*V(161)*V(290) + A(271) = RCT(271)*V(217)*V(290) + A(272) = RCT(272)*V(239)*V(290) + A(273) = RCT(273)*V(218)*V(290) + A(274) = RCT(274)*V(133)*V(290) + A(275) = RCT(275)*V(219)*V(290) + A(276) = RCT(276)*V(124)*V(290) + A(277) = RCT(277)*V(124)*V(290) + A(278) = RCT(278)*V(221)*V(290) + A(279) = RCT(279)*V(224)*V(290) + A(280) = RCT(280)*V(114)*V(290) + A(281) = RCT(281)*V(253)*V(290) + A(282) = RCT(282)*V(253)*V(273) + A(283) = RCT(283)*V(269)*V(279) + A(284) = RCT(284)*V(60)*V(60) + A(285) = RCT(285)*V(269)*V(291) + A(286) = RCT(286)*V(203) + A(287) = RCT(287)*V(203)*V(203) + A(288) = RCT(288)*V(143)*V(281) + A(289) = RCT(289)*V(227)*V(291) + A(290) = RCT(290)*V(270) + A(291) = RCT(291)*V(269)*V(270) + A(292) = RCT(292)*V(269)*V(274) + A(293) = RCT(293)*V(227)*V(274) + A(294) = RCT(294)*V(92)*V(227) + A(295) = RCT(295)*V(92)*V(92) + A(296) = RCT(296)*V(42) + A(297) = RCT(297)*V(92)*V(279) + A(298) = RCT(298)*V(227)*V(285) + A(299) = RCT(299)*V(269)*V(282) + A(300) = RCT(300)*V(269)*V(284) + A(301) = RCT(301)*V(143)*V(286) + A(302) = RCT(302)*V(69)*V(286) + A(303) = RCT(303)*V(268)*V(286) + A(304) = RCT(304)*V(227)*V(284) + A(305) = RCT(305)*V(227)*V(279) + A(306) = RCT(306)*V(227)*V(227) + A(307) = RCT(307)*V(44) + A(308) = RCT(308)*V(46)*V(286) + A(309) = RCT(309)*V(208)*V(286) + A(310) = RCT(310)*V(198)*V(286) + A(311) = RCT(311)*V(234)*V(267) + A(312) = RCT(312)*V(234)*V(279) + A(313) = RCT(313)*V(234)*V(291) + A(314) = RCT(314)*V(234)*V(278) + A(315) = RCT(315)*V(234)*V(278)*V(278) + A(316) = RCT(316)*V(234)*V(282) + A(317) = RCT(317)*V(234)*V(276) + A(318) = RCT(318)*V(195)*V(267) + A(319) = RCT(319)*V(195)*V(279) + A(320) = RCT(320)*V(195)*V(291) + A(321) = RCT(321)*V(195)*V(276) + A(322) = RCT(322)*V(195)*V(278) + A(323) = RCT(323)*V(195)*V(278) + A(324) = RCT(324)*V(154)*V(286) + A(325) = RCT(325)*V(155)*V(286) + A(326) = RCT(326)*V(238)*V(279) + A(327) = RCT(327)*V(238)*V(284) + A(328) = RCT(328)*V(238)*V(266) + A(329) = RCT(329)*V(238)*V(261) + A(330) = RCT(330)*V(238)*V(281) + A(331) = RCT(331)*V(154)*V(282) + A(332) = RCT(332)*V(155)*V(282) + A(333) = RCT(333)*V(154)*V(281) + A(334) = RCT(334)*V(155)*V(281) + A(335) = RCT(335)*V(170)*V(286) + A(336) = RCT(336)*V(170)*V(282) + A(337) = RCT(337)*V(170)*V(281) + A(338) = RCT(338)*V(225)*V(279) + A(339) = RCT(339)*V(225)*V(284) + A(340) = RCT(340)*V(225)*V(266) + A(341) = RCT(341)*V(225)*V(261) + A(342) = RCT(342)*V(225)*V(281) + A(343) = RCT(343)*V(119)*V(286) + A(344) = RCT(344)*V(215)*V(279) + A(345) = RCT(345)*V(216)*V(279) + A(346) = RCT(346)*V(215)*V(284) + A(347) = RCT(347)*V(216)*V(284) + A(348) = RCT(348)*V(215)*V(266) + A(349) = RCT(349)*V(216)*V(266) + A(350) = RCT(350)*V(215)*V(261) + A(351) = RCT(351)*V(216)*V(261) + A(352) = RCT(352)*V(215)*V(281) + A(353) = RCT(353)*V(216)*V(281) + A(354) = RCT(354)*V(215)*V(215) + A(355) = RCT(355)*V(215)*V(216) + A(356) = RCT(356)*V(216)*V(216) + A(357) = RCT(357)*V(178)*V(286) + A(358) = RCT(358)*V(199)*V(286) + A(359) = RCT(359)*V(199)*V(282) + A(360) = RCT(360)*V(199)*V(281) + A(361) = RCT(361)*V(178)*V(281) + A(362) = RCT(362)*V(98) + A(363) = RCT(363)*V(45) + A(364) = RCT(364)*V(134)*V(286) + A(365) = RCT(365)*V(89)*V(286) + A(366) = RCT(366)*V(96)*V(286) + A(367) = RCT(367)*V(87)*V(286) + A(368) = RCT(368)*V(91)*V(286) + A(369) = RCT(369)*V(224)*V(282) + A(370) = RCT(370)*V(224)*V(286) + A(371) = RCT(371)*V(224)*V(286) + A(372) = RCT(372)*V(224)*V(286) + A(373) = RCT(373)*V(224)*V(286) + A(374) = RCT(374)*V(245)*V(284) + A(375) = RCT(375)*V(245)*V(284) + A(376) = RCT(376)*V(244)*V(284) + A(377) = RCT(377)*V(244)*V(284) + A(378) = RCT(378)*V(245) + A(379) = RCT(379)*V(245) + A(380) = RCT(380)*V(244) + A(381) = RCT(381)*V(244) + A(382) = RCT(382)*V(245)*V(245) + A(383) = RCT(383)*V(244)*V(244) + A(384) = RCT(384)*V(244)*V(245) + A(385) = RCT(385)*V(245)*V(245) + A(386) = RCT(386)*V(244)*V(244) + A(387) = RCT(387)*V(244)*V(245) + A(388) = RCT(388)*V(245)*V(266) + A(389) = RCT(389)*V(245)*V(266) + A(390) = RCT(390)*V(244)*V(266) + A(391) = RCT(391)*V(244)*V(266) + A(392) = RCT(392)*V(245)*V(279) + A(393) = RCT(393)*V(245)*V(279) + A(394) = RCT(394)*V(245)*V(279) + A(395) = RCT(395)*V(245)*V(279) + A(396) = RCT(396)*V(244)*V(279) + A(397) = RCT(397)*V(244)*V(279) + A(398) = RCT(398)*V(244)*V(279) + A(399) = RCT(399)*V(244)*V(279) + A(400) = RCT(400)*V(186)*V(286) + A(401) = RCT(401)*V(188)*V(286) + A(402) = RCT(402)*V(129)*V(286) + A(403) = RCT(403)*V(127)*V(286) + A(404) = RCT(404)*V(192)*V(286) + A(405) = RCT(405)*V(174)*V(286) + A(406) = RCT(406)*V(109)*V(286) + A(407) = RCT(407)*V(157)*V(286) + A(408) = RCT(408)*V(157)*V(286) + A(409) = RCT(409)*V(162)*V(286) + A(410) = RCT(410)*V(162)*V(286) + A(411) = RCT(411)*V(157)*V(286) + A(412) = RCT(412)*V(162)*V(286) + A(413) = RCT(413)*V(171)*V(286) + A(414) = RCT(414)*V(165)*V(286) + A(415) = RCT(415)*V(182) + A(416) = RCT(416)*V(182)*V(279) + A(417) = RCT(417)*V(182)*V(279) + A(418) = RCT(418)*V(182)*V(284) + A(419) = RCT(419)*V(183) + A(420) = RCT(420)*V(183)*V(279) + A(421) = RCT(421)*V(183)*V(279) + A(422) = RCT(422)*V(183)*V(284) + A(423) = RCT(423)*V(187) + A(424) = RCT(424)*V(187)*V(279) + A(425) = RCT(425)*V(187)*V(279) + A(426) = RCT(426)*V(187)*V(284) + A(427) = RCT(427)*V(116)*V(286) + A(428) = RCT(428)*V(130)*V(286) + A(429) = RCT(429)*V(130)*V(286) + A(430) = RCT(430)*V(131)*V(286) + A(431) = RCT(431)*V(131)*V(286) + A(432) = RCT(432)*V(228) + A(433) = RCT(433)*V(228) + A(434) = RCT(434)*V(228)*V(284) + A(435) = RCT(435)*V(228)*V(279) + A(436) = RCT(436)*V(228)*V(279) + A(437) = RCT(437)*V(229) + A(438) = RCT(438)*V(229) + A(439) = RCT(439)*V(229)*V(279) + A(440) = RCT(440)*V(229)*V(279) + A(441) = RCT(441)*V(229)*V(284) + A(442) = RCT(442)*V(194)*V(284) + A(443) = RCT(443)*V(194)*V(279) + A(444) = RCT(444)*V(194)*V(279) + A(445) = RCT(445)*V(194) + A(446) = RCT(446)*V(121)*V(279) + A(447) = RCT(447)*V(121)*V(284) + A(448) = RCT(448)*V(123)*V(279) + A(449) = RCT(449)*V(123)*V(284) + A(450) = RCT(450)*V(139)*V(286) + A(451) = RCT(451)*V(139)*V(286) + A(452) = RCT(452)*V(140)*V(286) + A(453) = RCT(453)*V(140)*V(286) + A(454) = RCT(454)*V(220)*V(286) + A(455) = RCT(455)*V(220)*V(286) + A(456) = RCT(456)*V(214)*V(286) + A(457) = RCT(457)*V(214)*V(286) + A(458) = RCT(458)*V(220)*V(286) + A(459) = RCT(459)*V(214)*V(286) + A(460) = RCT(460)*V(167) + A(461) = RCT(461)*V(167)*V(284) + A(462) = RCT(462)*V(167)*V(279) + A(463) = RCT(463)*V(167)*V(279) + A(464) = RCT(464)*V(152) + A(465) = RCT(465)*V(152)*V(284) + A(466) = RCT(466)*V(152)*V(279) + A(467) = RCT(467)*V(152)*V(279) + A(468) = RCT(468)*V(166) + A(469) = RCT(469)*V(168) + A(470) = RCT(470)*V(166)*V(284) + A(471) = RCT(471)*V(166)*V(279) + A(472) = RCT(472)*V(166)*V(279) + A(473) = RCT(473)*V(168)*V(284) + A(474) = RCT(474)*V(168)*V(279) + A(475) = RCT(475)*V(168)*V(279) + A(476) = RCT(476)*V(232)*V(284) + A(477) = RCT(477)*V(232)*V(279) + A(478) = RCT(478)*V(232)*V(279) + A(479) = RCT(479)*V(224)*V(281) + A(480) = RCT(480)*V(247)*V(284) + A(481) = RCT(481)*V(246)*V(284) + A(482) = RCT(482)*V(247)*V(247) + A(483) = RCT(483)*V(246)*V(247) + A(484) = RCT(484)*V(246)*V(246) + A(485) = RCT(485)*V(246)*V(266) + A(486) = RCT(486)*V(247)*V(266) + A(487) = RCT(487)*V(247)*V(261) + A(488) = RCT(488)*V(246)*V(261) + A(489) = RCT(489)*V(247)*V(281) + A(490) = RCT(490)*V(246)*V(281) + A(491) = RCT(491)*V(247)*V(279) + A(492) = RCT(492)*V(247)*V(279) + A(493) = RCT(493)*V(246)*V(279) + A(494) = RCT(494)*V(246)*V(279) + A(495) = RCT(495)*V(126)*F(3) + A(496) = RCT(496)*V(126) + A(497) = RCT(497)*V(181)*V(286) + A(498) = RCT(498)*V(151)*V(286) + A(499) = RCT(499)*V(181)*V(286) + A(500) = RCT(500)*V(151)*V(286) + A(501) = RCT(501)*V(151)*V(286) + A(502) = RCT(502)*V(181)*V(286) + A(503) = RCT(503)*V(151)*V(286) + A(504) = RCT(504)*V(151)*V(286) + A(505) = RCT(505)*V(189) + A(506) = RCT(506)*V(222) + A(507) = RCT(507)*V(222)*V(284) + A(508) = RCT(508)*V(189)*V(284) + A(509) = RCT(509)*V(222)*V(279) + A(510) = RCT(510)*V(222)*V(279) + A(511) = RCT(511)*V(189)*V(279) + A(512) = RCT(512)*V(189)*V(279) + A(513) = RCT(513)*V(240)*V(286) + A(514) = RCT(514)*V(240)*V(286) + A(515) = RCT(515)*V(150)*V(279) + A(516) = RCT(516)*V(150)*V(284) + A(517) = RCT(517)*V(243)*V(286) + A(518) = RCT(518)*V(146)*V(279) + A(519) = RCT(519)*V(146)*V(284) + A(520) = RCT(520)*V(248)*V(286) + A(521) = RCT(521)*V(248)*V(282) + A(522) = RCT(522)*V(251)*V(286) + A(523) = RCT(523)*V(251)*V(286) + A(524) = RCT(524)*V(251)*V(282) + A(525) = RCT(525)*V(251)*V(281) + A(526) = RCT(526)*V(241)*V(286) + A(527) = RCT(527)*V(230)*V(286) + A(528) = RCT(528)*V(231)*V(286) + A(529) = RCT(529)*V(200)*V(286) + A(530) = RCT(530)*V(175)*V(286) + A(531) = RCT(531)*V(144)*V(279) + A(532) = RCT(532)*V(144)*V(284) + A(533) = RCT(533)*V(144)*V(291) + A(534) = RCT(534)*V(145)*V(279) + A(535) = RCT(535)*V(145)*V(284) + A(536) = RCT(536)*V(145)*V(291) + A(537) = RCT(537)*V(163)*V(286) + A(538) = RCT(538)*V(156)*V(286) + A(539) = RCT(539)*V(117)*V(286) + A(540) = RCT(540)*V(185)*V(286) + A(541) = RCT(541)*V(169)*V(286) + A(542) = RCT(542)*V(132)*V(286) + A(543) = RCT(543)*V(204)*V(284) + A(544) = RCT(544)*V(204)*V(279) + A(545) = RCT(545)*V(204)*V(279) + A(546) = RCT(546)*V(205)*V(284) + A(547) = RCT(547)*V(207)*V(284) + A(548) = RCT(548)*V(136)*V(286) + A(549) = RCT(549)*V(205) + A(550) = RCT(550)*V(205)*V(279) + A(551) = RCT(551)*V(205)*V(279) + A(552) = RCT(552)*V(207)*V(279) + A(553) = RCT(553)*V(207)*V(291) + A(554) = RCT(554)*V(249)*V(284) + A(555) = RCT(555)*V(249)*V(279) + A(556) = RCT(556)*V(249)*V(291) + A(557) = RCT(557)*V(249)*V(281) + A(558) = RCT(558)*V(249)*V(266) + A(559) = RCT(559)*V(153) + A(560) = RCT(560)*V(153)*V(286) + A(561) = RCT(561)*V(105)*V(286) + A(562) = RCT(562)*V(206)*V(286) + A(563) = RCT(563)*V(125)*V(286) + A(564) = RCT(564)*V(141)*V(286) + A(565) = RCT(565)*V(164)*V(286) + A(566) = RCT(566)*V(213)*V(286) + A(567) = RCT(567)*V(242)*V(286) + A(568) = RCT(568)*V(208)*V(281) + A(569) = RCT(569)*V(104)*V(286) + A(570) = RCT(570)*V(85)*V(286) + A(571) = RCT(571)*V(261)*V(284) + A(572) = RCT(572)*V(172)*V(286) + A(573) = RCT(573)*V(172)*V(286) + A(574) = RCT(574)*V(19)*V(286) + A(575) = RCT(575)*V(18)*V(284) + A(576) = RCT(576)*V(18)*V(279) + A(577) = RCT(577)*V(76)*V(282) + A(578) = RCT(578)*V(76)*V(286) + A(579) = RCT(579)*V(58)*V(286) + A(580) = RCT(580)*V(179)*V(284) + A(581) = RCT(581)*V(179)*V(279) + A(582) = RCT(582)*V(179)*V(281) + A(583) = RCT(583)*V(179)*V(266) + A(584) = RCT(584)*V(108) + A(585) = RCT(585)*V(108)*F(3) + A(586) = RCT(586)*V(68)*V(286) + A(587) = RCT(587)*V(120)*V(286) + A(588) = RCT(588)*V(120)*V(286) + A(589) = RCT(589)*V(64)*V(286) + A(590) = RCT(590)*V(79)*V(286) + A(591) = RCT(591)*V(80)*V(286) + A(592) = RCT(592)*V(184)*V(284) + A(593) = RCT(593)*V(184)*V(279) + A(594) = RCT(594)*V(184)*V(281) + A(595) = RCT(595)*V(184)*V(266) + A(596) = RCT(596)*V(184)*V(261) + A(597) = RCT(597)*V(118)*V(286) + A(598) = RCT(598)*V(118)*V(281) + A(599) = RCT(599)*V(115)*V(286) + A(600) = RCT(600)*V(115)*V(281) + A(601) = RCT(601)*V(142)*V(286) + A(602) = RCT(602)*V(142)*V(282) + A(603) = RCT(603)*V(142)*V(281) + A(604) = RCT(604)*V(101)*V(286) + A(605) = RCT(605)*V(101)*V(281) + A(606) = RCT(606)*V(180)*V(284) + A(607) = RCT(607)*V(180)*V(279) + A(608) = RCT(608)*V(180)*V(291) + A(609) = RCT(609)*V(70)*V(286) + A(610) = RCT(610)*V(97) + A(611) = RCT(611)*V(97)*V(286) + A(612) = RCT(612)*V(191)*V(291) + A(613) = RCT(613)*V(191)*V(279) + A(614) = RCT(614)*V(191)*V(281) + A(615) = RCT(615)*V(191)*V(284) + A(616) = RCT(616)*V(107)*V(286) + A(617) = RCT(617)*V(160)*V(282) + A(618) = RCT(618)*V(160)*V(291) + A(619) = RCT(619)*V(210)*V(286) + A(620) = RCT(620)*V(210)*V(281) + A(621) = RCT(621)*V(191)*V(266) + A(622) = RCT(622)*V(180)*V(266) + A(623) = RCT(623)*V(159)*V(286) + A(624) = RCT(624)*V(159)*V(282) + A(625) = RCT(625)*V(159) + A(626) = RCT(626)*V(148)*V(286) + A(627) = RCT(627)*V(148)*V(282) + A(628) = RCT(628)*V(148) + A(629) = RCT(629)*V(13)*V(284) + A(630) = RCT(630)*V(13)*V(279) + A(631) = RCT(631)*V(22)*V(284) + A(632) = RCT(632)*V(22)*V(279) + A(633) = RCT(633)*V(27)*V(284) + A(634) = RCT(634)*V(27)*V(279) + A(635) = RCT(635)*V(266)*V(281) + A(636) = RCT(636)*V(41)*V(286) + A(637) = RCT(637)*V(284) + A(638) = RCT(638)*V(291) + A(639) = RCT(639)*V(281) + A(640) = RCT(640)*V(281) + A(641) = RCT(641)*V(281) + A(642) = RCT(642)*V(173)*V(278) + A(643) = RCT(643)*V(173)*V(275) + A(644) = RCT(644)*V(173) + A(645) = RCT(645)*V(173)*V(280) + A(646) = RCT(646)*V(173)*V(287) + A(647) = RCT(647)*V(280)*V(286) + A(648) = RCT(648)*V(286)*V(287) + A(649) = RCT(649)*V(176)*V(278) + A(650) = RCT(650)*V(176)*V(275) + A(651) = RCT(651)*V(262)*V(278) + A(652) = RCT(652)*V(262)*V(275) + A(653) = RCT(653)*V(262)*V(289) + A(654) = RCT(654)*V(262)*V(283) + A(655) = RCT(655)*V(262)*V(277) + A(656) = RCT(656)*V(262)*V(280) + A(657) = RCT(657)*V(262)*V(287) + A(658) = RCT(658)*V(235)*V(280) + A(659) = RCT(659)*V(235)*V(287) + A(660) = RCT(660)*V(235)*V(275) + A(661) = RCT(661)*V(235)*V(283) + A(662) = RCT(662)*V(235)*V(277) + A(663) = RCT(663)*V(235)*V(289) + A(664) = RCT(664)*V(271)*V(275) + A(665) = RCT(665)*V(271)*V(289) + A(666) = RCT(666)*V(271)*V(280) + A(667) = RCT(667)*V(271)*V(287) + A(668) = RCT(668)*V(271)*V(276) + A(669) = RCT(669)*V(260)*V(289) + A(670) = RCT(670)*V(260)*V(275) + A(671) = RCT(671)*V(260)*V(280) + A(672) = RCT(672)*V(260)*V(287) + A(673) = RCT(673)*V(260)*V(283) + A(674) = RCT(674)*V(260)*V(277) + A(675) = RCT(675)*V(260)*V(276) + A(676) = RCT(676)*V(282)*V(289) + A(677) = RCT(677)*V(282)*V(283) + A(678) = RCT(678)*V(277)*V(282) + A(679) = RCT(679)*V(289) + A(680) = RCT(680)*V(289) + A(681) = RCT(681)*V(69) + A(682) = RCT(682)*V(69) + A(683) = RCT(683)*V(69) + A(684) = RCT(684)*V(268) + A(685) = RCT(685)*V(268) + A(686) = RCT(686)*V(44) + A(687) = RCT(687)*V(44) + A(688) = RCT(688)*V(44) + A(689) = RCT(689)*V(49) + A(690) = RCT(690)*V(49) + A(691) = RCT(691)*V(49) + A(692) = RCT(692)*V(42) + A(693) = RCT(693)*V(42) + A(694) = RCT(694)*V(42) + A(695) = RCT(695)*V(203) + A(696) = RCT(696)*V(203) + A(697) = RCT(697)*V(270) + A(698) = RCT(698)*V(270) + A(699) = RCT(699)*V(270)*V(278) + A(700) = RCT(700)*V(203)*V(283) + A(701) = RCT(701)*V(203)*V(277) + A(702) = RCT(702)*V(203)*V(280) + A(703) = RCT(703)*V(203)*V(287) + A(704) = RCT(704)*V(270)*V(283) + A(705) = RCT(705)*V(270)*V(277) + A(706) = RCT(706)*V(270)*V(280) + A(707) = RCT(707)*V(270)*V(287) + A(708) = RCT(708)*V(268)*V(283) + A(709) = RCT(709)*V(268)*V(277) + A(710) = RCT(710)*V(268)*V(280) + A(711) = RCT(711)*V(268)*V(287) + A(712) = RCT(712)*V(223) + A(713) = RCT(713)*V(233) + A(714) = RCT(714)*V(130) + A(715) = RCT(715)*V(131) + A(716) = RCT(716)*V(116) + A(717) = RCT(717)*V(24) + A(718) = RCT(718)*V(241) + A(719) = RCT(719)*V(202) + A(720) = RCT(720)*V(178) + A(721) = RCT(721)*V(199) + A(722) = RCT(722)*V(134) + A(723) = RCT(723)*V(104) + A(724) = RCT(724)*V(105) + A(725) = RCT(725)*V(220) + A(726) = RCT(726)*V(139) + A(727) = RCT(727)*V(140) + A(728) = RCT(728)*V(214) + A(729) = RCT(729)*V(174) + A(730) = RCT(730)*V(151) + A(731) = RCT(731)*V(181) + A(732) = RCT(732)*V(243) + A(733) = RCT(733)*V(213) + A(734) = RCT(734)*V(242) + A(735) = RCT(735)*V(175) + A(736) = RCT(736)*V(200) + A(737) = RCT(737)*V(210) + A(738) = RCT(738)*V(282) + A(739) = RCT(739)*V(282) + A(740) = RCT(740)*F(3) + A(741) = RCT(741)*V(291) + A(742) = RCT(742)*V(212) + A(743) = RCT(743)*V(137) + A(744) = RCT(744)*V(263) + A(745) = RCT(745)*V(263) + A(746) = RCT(746)*V(265) + A(747) = RCT(747)*V(193) + A(748) = RCT(748)*V(102) + A(749) = RCT(749)*V(102) + A(750) = RCT(750)*V(281) + A(751) = RCT(751)*V(281) + A(752) = RCT(752)*V(173) + A(753) = RCT(753)*V(264) + A(754) = RCT(754)*V(264) + A(755) = RCT(755)*V(67) + A(756) = RCT(756)*V(259) + A(757) = RCT(757)*V(221) + A(758) = RCT(758)*V(221) + A(759) = RCT(759)*V(226) + A(760) = RCT(760)*V(236) + A(761) = RCT(761)*V(223) + A(762) = RCT(762)*V(223) + A(763) = RCT(763)*V(223) + A(764) = RCT(764)*V(233) + A(765) = RCT(765)*V(248) + A(766) = RCT(766)*V(248) + A(767) = RCT(767)*V(248) + A(768) = RCT(768)*V(251) + A(769) = RCT(769)*V(250) + A(770) = RCT(770)*V(113) + A(771) = RCT(771)*V(110) + A(772) = RCT(772)*V(94) + A(773) = RCT(773)*V(95) + A(774) = RCT(774)*V(93) + A(775) = RCT(775)*V(112) + A(776) = RCT(776)*V(106) + A(777) = RCT(777)*V(202) + A(778) = RCT(778)*V(88) + A(779) = RCT(779)*V(128) + A(780) = RCT(780)*V(274) + A(781) = RCT(781)*V(260) + A(782) = RCT(782)*V(176) + A(783) = RCT(783)*V(176) + A(784) = RCT(784)*V(51) + A(785) = RCT(785)*V(77) + A(786) = RCT(786)*V(71) + A(787) = RCT(787)*V(100) + A(788) = RCT(788)*V(149) + A(789) = RCT(789)*V(72) + A(790) = RCT(790)*V(135) + A(791) = RCT(791)*V(197) + A(792) = RCT(792)*V(285) + A(793) = RCT(793)*V(111) + A(794) = RCT(794)*V(75) + A(795) = RCT(795)*V(235) + A(796) = RCT(796)*V(262) + A(797) = RCT(797)*V(262) + A(798) = RCT(798)*V(271) + A(799) = RCT(799)*V(43) + A(800) = RCT(800)*V(52) + A(801) = RCT(801)*V(53) + A(802) = RCT(802)*V(54) + A(803) = RCT(803)*V(55) + A(804) = RCT(804)*V(56) + A(805) = RCT(805)*V(57) + A(806) = RCT(806)*V(81) + A(807) = RCT(807)*V(82) + A(808) = RCT(808)*V(83) + A(809) = RCT(809)*V(84) + A(810) = RCT(810)*V(47) + A(811) = RCT(811)*V(59) + A(812) = RCT(812)*V(48) + A(813) = RCT(813)*V(103) + A(814) = RCT(814)*V(143) + A(815) = RCT(815)*V(268) + A(816) = RCT(816)*V(227) + A(817) = RCT(817)*V(92) + A(818) = RCT(818)*V(60) + A(819) = RCT(819)*V(203) + A(820) = RCT(820)*V(270) + A(821) = RCT(821)*V(44) + A(822) = RCT(822)*V(46) + A(823) = RCT(823)*V(1) + A(824) = RCT(824)*V(3) + A(825) = RCT(825)*V(2) + A(826) = RCT(826)*V(42) + A(827) = RCT(827)*V(49) + A(828) = RCT(828)*V(73) + A(829) = RCT(829)*V(99) + A(830) = RCT(830)*V(74) + A(831) = RCT(831)*V(74) + A(832) = RCT(832)*V(196) + A(833) = RCT(833)*V(61) + A(834) = RCT(834)*V(66) + A(835) = RCT(835)*V(122) + A(836) = RCT(836)*V(279) + A(837) = RCT(837)*V(119) + A(838) = RCT(838)*V(208) + A(839) = RCT(839)*V(178) + A(840) = RCT(840)*V(199) + A(841) = RCT(841)*V(134) + A(842) = RCT(842)*V(63) + A(843) = RCT(843)*V(63) + A(844) = RCT(844)*V(62) + A(845) = RCT(845)*V(62) + A(846) = RCT(846)*V(89) + A(847) = RCT(847)*V(96) + A(848) = RCT(848)*V(87) + A(849) = RCT(849)*V(91) + A(850) = RCT(850)*V(85) + A(851) = RCT(851)*V(172) + A(852) = RCT(852)*V(104) + A(853) = RCT(853)*V(198) + A(854) = RCT(854)*V(169) + A(855) = RCT(855)*V(185) + A(856) = RCT(856)*V(230) + A(857) = RCT(857)*V(156) + A(858) = RCT(858)*V(163) + A(859) = RCT(859)*V(231) + A(860) = RCT(860)*V(136) + A(861) = RCT(861)*V(241) + A(862) = RCT(862)*V(200) + A(863) = RCT(863)*V(175) + A(864) = RCT(864)*V(157) + A(865) = RCT(865)*V(162) + A(866) = RCT(866)*V(171) + A(867) = RCT(867)*V(165) + A(868) = RCT(868)*V(186) + A(869) = RCT(869)*V(188) + A(870) = RCT(870)*V(129) + A(871) = RCT(871)*V(127) + A(872) = RCT(872)*V(220) + A(873) = RCT(873)*V(139) + A(874) = RCT(874)*V(140) + A(875) = RCT(875)*V(214) + A(876) = RCT(876)*V(181) + A(877) = RCT(877)*V(151) + A(878) = RCT(878)*V(151) + A(879) = RCT(879)*V(240) + A(880) = RCT(880)*V(243) + A(881) = RCT(881)*V(206) + A(882) = RCT(882)*V(206) + A(883) = RCT(883)*V(141) + A(884) = RCT(884)*V(164) + A(885) = RCT(885)*V(125) + A(886) = RCT(886)*V(242) + A(887) = RCT(887)*V(242) + A(888) = RCT(888)*V(213) + A(889) = RCT(889)*V(213) + A(890) = RCT(890)*V(120) + A(891) = RCT(891)*V(101) + A(892) = RCT(892)*V(70) + A(893) = RCT(893)*V(107) + A(894) = RCT(894)*V(210) !### Use Aout to return equation rates IF ( PRESENT( Aout ) ) Aout = A ! Aggregate function IF (DO_FUN(1)) & - Vdot(1) = -A(843) + Vdot(1) = -A(823) IF (DO_FUN(2)) & - Vdot(2) = -A(845) + Vdot(2) = -A(825) IF (DO_FUN(3)) & - Vdot(3) = -A(844) + Vdot(3) = -A(824) IF (DO_FUN(4)) & - Vdot(4) = A(707)+2*A(710)+2*A(713)+2*A(716) + Vdot(4) = A(681)+2*A(686)+2*A(689)+2*A(692) IF (DO_FUN(5)) & - Vdot(5) = A(757) + Vdot(5) = A(737) IF (DO_FUN(6)) & - Vdot(6) = A(24)+A(49)+A(57)+A(78)+0.361*A(116)+0.5*A(124)+A(208)+A(289)+A(297)+A(336)+0.407*A(396)+0.355*A(431)+A(473)& - &+A(474)+A(475)+A(476)+0.33*A(542)+0.33*A(543)+0.23*A(555)+0.75*A(557)+0.097*A(564)+0.5*A(574)+0.415*A(575)& - &+A(579)+0.5*A(581)+A(582)+A(584)+0.7*A(585)+A(592)+A(596)+0.5*A(598)+0.35*A(633)+A(634)+A(638)+A(649)+A(872)& - &+1.238*A(880)+A(912)+A(914) + Vdot(6) = A(636) IF (DO_FUN(7)) & - Vdot(7) = A(389)+A(390) + Vdot(7) = A(24)+A(47)+A(55)+A(76)+A(80)+0.3*A(97)+0.43*A(109)+0.1*A(111)+0.361*A(112)+0.5*A(120)+0.22*A(129)+2*A(131)& + &+0.9*A(132)+0.9*A(133)+0.9*A(134)+0.9*A(135)+0.9*A(136)+0.645*A(137)+0.9*A(138)+0.9*A(139)+0.9*A(140)+0.9& + &*A(141)+0.9*A(142)+2*A(143)+A(144)+A(188)+A(267)+A(275)+A(309)+A(311)+A(318)+A(329)+A(350)+0.407*A(369)+0.355& + &*A(404)+A(446)+A(447)+A(448)+A(449)+A(487)+A(488)+0.429*A(515)+0.429*A(516)+0.23*A(528)+0.75*A(530)+0.097& + &*A(537)+0.5*A(547)+0.41*A(548)+A(552)+0.5*A(554)+A(555)+A(557)+0.7*A(558)+A(565)+A(569)+0.5*A(571)+A(596)& + &+0.35*A(606)+A(607)+A(611)+A(622)+0.3*A(755)+A(778)+A(852)+1.238*A(860)+A(892)+A(894) IF (DO_FUN(8)) & - Vdot(8) = A(708)+2*A(711)+2*A(714)+2*A(717) + Vdot(8) = A(362)+A(363) IF (DO_FUN(9)) & - Vdot(9) = A(709)+2*A(712)+2*A(715)+2*A(718) + Vdot(9) = A(682)+A(684)+2*A(687)+2*A(690)+2*A(693)+A(695)+A(697) IF (DO_FUN(10)) & - Vdot(10) = A(656) + Vdot(10) = A(683)+A(685)+2*A(688)+2*A(691)+2*A(694)+A(696)+A(698) IF (DO_FUN(11)) & - Vdot(11) = A(657) + Vdot(11) = A(629) IF (DO_FUN(12)) & - Vdot(12) = A(616)-A(656)-A(657) + Vdot(12) = A(630) IF (DO_FUN(13)) & - Vdot(13) = A(397)+A(398)+A(399)+A(400) + Vdot(13) = A(589)-A(629)-A(630) IF (DO_FUN(14)) & - Vdot(14) = A(506) + Vdot(14) = A(370)+A(371)+A(372)+A(373) IF (DO_FUN(15)) & - Vdot(15) = A(602) + Vdot(15) = A(479) IF (DO_FUN(16)) & - Vdot(16) = A(603) + Vdot(16) = A(575) IF (DO_FUN(17)) & - Vdot(17) = A(601)-A(602)-A(603) + Vdot(17) = A(576) IF (DO_FUN(18)) & - Vdot(18) = -A(601) + Vdot(18) = A(574)-A(575)-A(576) IF (DO_FUN(19)) & - Vdot(19) = A(658) + Vdot(19) = -A(574) IF (DO_FUN(20)) & - Vdot(20) = A(659) + Vdot(20) = A(631) IF (DO_FUN(21)) & - Vdot(21) = A(617)-A(658)-A(659) + Vdot(21) = A(632) IF (DO_FUN(22)) & - Vdot(22) = A(737) + Vdot(22) = A(590)-A(631)-A(632) IF (DO_FUN(23)) & - Vdot(23) = -A(138)+0.005*A(434)+0.005*A(435)+0.005*A(436)+0.005*A(437)+0.005*A(438)+0.005*A(439)+0.005*A(440)+0.005& - &*A(441)-A(737) + Vdot(23) = A(717) IF (DO_FUN(24)) & - Vdot(24) = A(660) + Vdot(24) = -A(128)+0.005*A(407)+0.005*A(408)+0.005*A(409)+0.005*A(410)+0.005*A(411)+0.005*A(412)+0.005*A(413)+0.005& + &*A(414)-A(717) IF (DO_FUN(25)) & - Vdot(25) = A(661) + Vdot(25) = A(633) IF (DO_FUN(26)) & - Vdot(26) = A(618)-A(660)-A(661) + Vdot(26) = A(634) IF (DO_FUN(27)) & - Vdot(27) = 0.25*A(165) + Vdot(27) = A(591)-A(633)-A(634) IF (DO_FUN(28)) & - Vdot(28) = A(4) + Vdot(28) = 0.25*A(149) IF (DO_FUN(29)) & - Vdot(29) = A(732)+A(733)+A(743) + Vdot(29) = A(4) IF (DO_FUN(30)) & - Vdot(30) = A(734)+A(735)+A(736)+A(744)+A(749) + Vdot(30) = A(712)+1.5*A(713)+1.5*A(723) IF (DO_FUN(31)) & - Vdot(31) = A(18)+A(22)+A(26)+A(38)+A(40)+A(57)+A(59)+A(61)+A(64)+A(66)+A(68)+A(69)+A(70)+A(71)+A(72)+A(73)+A(75)+A(82)& - &+0.15*A(113)+A(176)+A(217)+A(219)+A(220)+A(243)+A(251)+A(252)+A(267)+2*A(280)+A(290)+A(293)+A(294)+A(326)& - &+A(339)+A(340)+A(346)+A(347)+A(353)+A(365)+A(371)+A(372)+A(389)+A(390)+A(391)+A(392)+A(393)+A(394)+A(395)& - &+A(419)+A(420)+A(421)+A(422)+A(423)+A(424)+A(425)+A(426)+A(443)+A(444)+A(447)+A(448)+A(451)+A(452)+A(462)& - &+A(463)+A(466)+A(467)+A(470)+A(471)+A(473)+A(475)+A(489)+A(490)+A(493)+A(494)+A(498)+A(499)+A(501)+A(502)& - &+A(504)+A(505)+A(518)+A(519)+A(520)+A(521)+A(536)+A(537)+A(538)+A(539)+A(542)+A(545)+0.69*A(553)+A(558)& - &+A(561)+A(571)+0.438*A(572)+0.13*A(574)+A(577)+A(578)+A(579)+0.13*A(581)+A(582)+A(587)+0.02*A(594)+0.13& - &*A(598)+0.995*A(608)+A(613)+A(620)+0.15*A(633)+A(634)+A(637)+A(638)+A(639)+A(640)+A(646)+2*A(760)+A(768)+0.3& - &*A(775)+A(850)+A(853)+A(856)+A(863)+A(865)+A(866)+A(867)+A(868)+A(869)+0.01*A(900) + Vdot(31) = A(714)+A(715)+A(716)+0.8*A(724)+A(729) IF (DO_FUN(32)) & - Vdot(32) = A(1)+A(3)+A(4)+A(6)+A(8)+A(14)+A(15)+A(17)+A(44)+A(46)+2*A(51)+A(52)+A(54)+A(76)+A(83)+A(96)+A(115)+A(118)& - &+A(121)+A(122)+A(140)+2*A(161)+A(166)+2*A(172)+2*A(173)+A(177)+A(178)+A(179)+A(191)+A(194)+A(195)+A(196)& - &+A(197)+A(198)+A(199)+2*A(201)+A(203)+A(204)+2*A(205)+A(207)+2*A(209)+2*A(210)+A(213)+A(215)+2*A(222)+A(223)& - &+0.67*A(224)+0.65*A(225)+0.56*A(228)+0.17*A(231)+A(244)+A(245)+A(246)+A(247)+A(248)+2*A(268)+2*A(272)+2& - &*A(273)+2*A(282)+2*A(283)+2*A(315)+2*A(322)+2*A(323)+A(343)+A(357)+A(358)+A(359)+A(360)+A(361)+A(363)+A(364)& - &+A(369)+A(379)+A(380)+A(386)+2*A(387)+2*A(388)+A(396)+A(506)+0.001*A(511)+A(516)+A(517)+A(548)+A(551)+A(552)& - &+A(584)+A(595)+A(604)+A(609)+A(621)+1.258*A(625)+1.5*A(627)+A(629)+1.5*A(630)+A(632)+A(635)+A(641)+A(644)& - &+A(645)+A(651)+A(654)+A(662)+0.5*A(664)+A(665)+2*A(666)+2*A(667)+A(668)+A(669)+A(670)+A(671)+A(672)+A(676)& - &+A(678)+A(679)+A(680)+A(681)+A(682)+A(683)+A(684)+A(685)+A(686)+A(687)+A(688)+A(689)+A(690)+A(691)+A(692)& - &+A(693)+A(694)+A(695)+A(696)+A(697)+A(698)+A(699)+A(700)+A(701)+2*A(710)+2*A(711)+2*A(712)+3*A(713)+3*A(714)& - &+3*A(715)+4*A(716)+4*A(717)+4*A(718)+A(720)+A(721)+A(722)+A(723)+A(724)+A(725)+A(726)+A(727)+A(728)+A(729)& - &+A(730)+A(731)+A(738)+A(739)+A(740)+A(741)+A(742)+A(745)+A(746)+A(747)+A(748)+A(750)+A(751)+2*A(752)+A(753)& - &+A(754)+A(755)+A(756)+2*A(771)+A(801)+2*A(814)+A(818)+A(835)+2*A(837) + Vdot(32) = A(151)+A(317)+A(321) IF (DO_FUN(33)) & - Vdot(33) = A(36)+A(52)+0.05*A(53)+0.56*A(115)+0.505*A(116)+A(117)+2*A(119)+A(120)+2*A(121)+A(122)+0.5*A(124)+A(181)& - &+A(207)+A(223)+A(262)+A(286)+A(287)+A(288)+0.14*A(358)+0.14*A(359)+0.14*A(363)+0.407*A(396)+0.6*A(399)+0.9& - &*A(400)+0.6*A(406)+0.9*A(408)+A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.55*A(422)+0.55*A(426)+0.45*A(427)& - &+0.37*A(428)+0.42*A(429)+0.23*A(430)+0.638*A(431)+1.5*A(432)+A(433)+0.25*A(438)+0.33*A(439)+0.036*A(440)& - &+0.054*A(441)+A(460)+0.13*A(461)+0.2*A(462)+A(465)+0.2*A(466)+0.13*A(468)+0.52*A(469)+0.8*A(471)+2*A(472)& - &+0.6*A(485)+0.6*A(486)+0.539*A(541)+0.33*A(542)+0.33*A(543)+0.18*A(548)+0.036*A(549)+0.12*A(551)+0.68*A(552)& - &+0.77*A(555)+0.25*A(557)+0.75*A(564)+A(565)+2*A(568)+0.84*A(569)+0.507*A(573)+0.325*A(574)+0.488*A(575)& - &+A(576)+0.86*A(577)+0.65*A(579)+0.25*A(587)+A(589)+0.888*A(590)+A(593)+A(599)+0.364*A(606)+0.2*A(616)+0.27& - &*A(617)+0.3*A(618)+0.25*A(650)+0.5*A(651)+0.25*A(653)+0.5*A(654)+A(764)+A(765)+0.88*A(773)+A(774)+A(776)& - &+A(778)+A(780)+2*A(781)+2*A(782)+A(783)+A(784)+A(785)+A(786)+A(788)+A(854)+A(858)+A(871)+A(874)+0.5*A(875)& - &+0.571*A(877)+0.875*A(878)+0.77*A(879)+A(882)+A(883)+0.888*A(888)+0.818*A(889)+A(890)+A(891)+0.55*A(892)& - &+0.55*A(895)+0.839*A(899)+A(901)+0.122*A(902)+A(905)+A(909)+A(911)+A(914) + Vdot(33) = A(7)+A(8)+A(9)+2*A(12) IF (DO_FUN(34)) & - Vdot(34) = A(24)+A(338)+A(345) + Vdot(34) = A(18)+A(22)+A(26)+A(36)+A(38)+A(55)+A(57)+A(59)+A(62)+A(64)+A(66)+A(67)+A(68)+A(69)+A(70)+A(71)+A(73)+A(80)& + &+0.15*A(109)+A(160)+0.02*A(196)+A(197)+A(198)+A(222)+A(230)+A(231)+A(246)+0.1*A(258)+A(268)+A(271)+A(272)& + &+A(301)+A(312)+A(313)+A(319)+A(320)+A(326)+A(338)+A(344)+A(345)+A(362)+A(363)+A(364)+A(365)+A(366)+A(367)& + &+A(368)+A(392)+A(393)+A(394)+A(395)+A(396)+A(397)+A(398)+A(399)+A(416)+A(417)+A(420)+A(421)+A(424)+A(425)& + &+A(435)+A(436)+A(439)+A(440)+A(443)+A(444)+A(446)+A(448)+A(462)+A(463)+A(466)+A(467)+A(471)+A(472)+A(474)& + &+A(475)+A(477)+A(478)+A(491)+A(492)+A(493)+A(494)+A(509)+A(510)+A(511)+A(512)+A(515)+A(518)+0.69*A(526)& + &+A(531)+A(534)+A(544)+A(545)+0.13*A(547)+A(550)+A(551)+A(552)+0.13*A(554)+A(555)+A(560)+0.13*A(571)+0.995& + &*A(581)+A(586)+A(593)+0.15*A(606)+A(607)+A(610)+A(611)+A(612)+A(613)+A(619)+2*A(740)+A(748)+0.3*A(755)& + &+A(830)+A(833)+A(836)+A(846)+A(847)+A(848)+A(849) IF (DO_FUN(35)) & - Vdot(35) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(167)+A(344)+A(348)+A(694)+A(701) + Vdot(35) = A(1)+A(4)+A(8)+A(14)+A(15)+A(17)+A(42)+A(44)+2*A(49)+A(50)+A(52)+A(74)+A(81)+A(94)+A(111)+A(114)+A(117)& + &+A(118)+A(130)+2*A(145)+A(150)+2*A(156)+2*A(157)+A(161)+A(162)+A(163)+A(175)+A(178)+A(179)+A(180)+2*A(182)& + &+A(184)+A(185)+A(186)+A(187)+2*A(189)+2*A(190)+A(193)+A(195)+2*A(200)+A(201)+0.66*A(202)+0.6*A(203)+0.44& + &*A(206)+0.56*A(207)+0.19*A(210)+0.1*A(218)+0.05*A(219)+A(223)+A(224)+A(225)+A(226)+A(227)+2*A(247)+2*A(251)& + &+2*A(252)+2*A(260)+2*A(261)+0.4*A(293)+0.88*A(298)+A(316)+A(330)+A(331)+A(332)+A(333)+A(334)+A(336)+A(337)& + &+A(342)+A(352)+A(353)+A(359)+2*A(360)+2*A(361)+A(369)+A(479)+A(489)+A(490)+A(521)+A(524)+A(525)+A(557)& + &+A(568)+A(577)+A(582)+A(594)+1.258*A(598)+1.5*A(600)+A(602)+1.5*A(603)+A(605)+A(608)+A(614)+A(617)+A(618)& + &+A(624)+A(627)+A(635)+0.5*A(638)+A(639)+A(640)+A(641)+A(642)+A(643)+A(644)+A(645)+A(646)+A(650)+A(652)& + &+A(653)+A(654)+A(655)+A(656)+A(657)+A(658)+A(659)+A(660)+A(661)+A(662)+A(663)+A(664)+A(665)+A(666)+A(667)& + &+A(668)+A(669)+A(670)+A(671)+A(672)+A(673)+A(674)+A(675)+A(684)+A(685)+2*A(686)+2*A(687)+2*A(688)+3*A(689)+3& + &*A(690)+3*A(691)+4*A(692)+4*A(693)+4*A(694)+A(695)+A(696)+A(697)+A(698)+A(700)+A(701)+A(702)+A(703)+A(704)& + &+A(705)+A(706)+A(707)+A(708)+A(709)+A(710)+A(711)+A(718)+A(719)+A(720)+A(721)+A(722)+A(725)+A(726)+A(727)& + &+A(728)+A(730)+A(731)+2*A(732)+A(733)+A(734)+A(735)+A(736)+2*A(751)+A(781)+2*A(794)+A(798)+A(815)+2*A(817)& + &+A(842)+A(844) IF (DO_FUN(36)) & - Vdot(36) = A(25)+A(197)+A(198)+A(199)+A(261) + Vdot(36) = A(34)+A(50)+0.05*A(51)+0.56*A(111)+0.505*A(112)+A(113)+2*A(115)+A(116)+2*A(117)+A(118)+0.5*A(120)+A(165)& + &+A(187)+A(201)+A(241)+A(264)+A(265)+A(266)+0.14*A(331)+0.14*A(332)+0.14*A(336)+0.407*A(369)+0.6*A(372)+0.9& + &*A(373)+0.6*A(379)+0.9*A(381)+A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)+0.55*A(395)+0.55*A(399)+0.45*A(400)& + &+0.37*A(401)+0.42*A(402)+0.23*A(403)+0.638*A(404)+1.5*A(405)+A(406)+0.25*A(411)+0.33*A(412)+0.036*A(413)& + &+0.054*A(414)+A(433)+0.13*A(434)+0.2*A(435)+A(438)+0.2*A(439)+0.13*A(441)+0.52*A(442)+0.8*A(444)+2*A(445)& + &+0.6*A(458)+0.6*A(459)+0.539*A(514)+0.33*A(515)+0.33*A(516)+0.28*A(521)+0.036*A(522)+0.12*A(524)+0.68*A(525)& + &+0.77*A(528)+0.25*A(530)+0.75*A(537)+A(538)+A(540)+2*A(541)+0.84*A(542)+0.507*A(546)+0.325*A(547)+0.488& + &*A(548)+A(549)+0.86*A(550)+0.65*A(552)+0.25*A(560)+A(561)+A(562)+0.888*A(563)+A(566)+A(572)+0.364*A(579)+0.2& + &*A(589)+0.27*A(590)+0.3*A(591)+0.15*A(619)+0.15*A(620)+0.26*A(623)+0.5*A(624)+0.25*A(626)+0.5*A(627)+0.05& + &*A(628)+A(744)+A(745)+0.88*A(753)+A(754)+A(756)+A(758)+A(760)+2*A(761)+2*A(762)+A(763)+A(764)+A(765)+A(766)& + &+A(768)+A(834)+A(838)+A(851)+A(854)+0.5*A(855)+0.571*A(857)+0.875*A(858)+0.77*A(859)+A(862)+A(863)+0.888& + &*A(868)+0.818*A(869)+A(870)+A(871)+0.55*A(872)+0.55*A(875)+0.839*A(879)+A(881)+0.163*A(882)+A(885)+A(889)& + &+A(891)+A(894) IF (DO_FUN(37)) & - Vdot(37) = A(19)+A(23)+0.06*A(341)+0.06*A(342)+A(349)+0.02*A(358)+0.02*A(359)+0.02*A(363)+0.013*A(396)+0.045*A(548) + Vdot(37) = A(24)+A(311)+A(318) IF (DO_FUN(38)) & - Vdot(38) = A(318)-A(319)-A(716)-A(717)-A(718)-A(846) + Vdot(38) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(151)+A(317)+A(321)+A(668)+A(675) IF (DO_FUN(39)) & - Vdot(39) = -A(256)-A(819) + Vdot(39) = A(25)+A(180)+A(240) IF (DO_FUN(40)) & - Vdot(40) = A(332)-A(333)-A(334)-A(710)-A(711)-A(712)-A(841) + Vdot(40) = A(19)+A(23)+0.06*A(314)+0.06*A(315)+A(322)+0.02*A(331)+0.02*A(332)+0.02*A(336)+0.013*A(369)+0.045*A(521) IF (DO_FUN(41)) & - Vdot(41) = -A(390)+A(740)+A(741)+A(742) + Vdot(41) = -A(636) IF (DO_FUN(42)) & - Vdot(42) = -0.75*A(240)-A(824) + Vdot(42) = A(295)-A(296)-A(692)-A(693)-A(694)-A(826) IF (DO_FUN(43)) & - Vdot(43) = -A(335)-A(842) + Vdot(43) = -A(235)-A(799) IF (DO_FUN(44)) & - Vdot(44) = -0.41*A(235)-A(830) + Vdot(44) = 0.6*A(306)-A(307)-A(686)-A(687)-A(688)-A(821) IF (DO_FUN(45)) & - Vdot(45) = -0.75*A(242)-A(832) + Vdot(45) = -A(363)+A(720)+A(721)+A(722) IF (DO_FUN(46)) & - Vdot(46) = -0.3*A(241)-A(825) + Vdot(46) = -A(308)-A(822) IF (DO_FUN(47)) & - Vdot(47) = A(317)-A(713)-A(714)-A(715)-A(847) + Vdot(47) = -0.45*A(214)-A(810) IF (DO_FUN(48)) & - Vdot(48) = -0.75*A(239)-A(823) + Vdot(48) = -0.75*A(221)-A(812) IF (DO_FUN(49)) & - Vdot(49) = A(80)-A(81) + Vdot(49) = A(294)-A(689)-A(690)-A(691)-A(827) IF (DO_FUN(50)) & - Vdot(50) = A(186)-A(804) + Vdot(50) = A(78)-A(79) IF (DO_FUN(51)) & - Vdot(51) = -0.86*A(227)-A(820) + Vdot(51) = A(170)-A(784) IF (DO_FUN(52)) & - Vdot(52) = -0.88*A(232)-A(821) + Vdot(52) = -0.79*A(205)-A(800) IF (DO_FUN(53)) & - Vdot(53) = -0.86*A(233)-A(822) + Vdot(53) = -0.9*A(211)-A(801) IF (DO_FUN(54)) & - Vdot(54) = -A(606) + Vdot(54) = -0.86*A(212)-A(802) IF (DO_FUN(55)) & - Vdot(55) = -0.64*A(234)-A(831) + Vdot(55) = -0.9*A(218)-A(803) IF (DO_FUN(56)) & - Vdot(56) = A(305)-2*A(306)-A(838) + Vdot(56) = -0.9*A(219)-A(804) IF (DO_FUN(57)) & - Vdot(57) = -A(195)-A(196)+A(221)-A(853) + Vdot(57) = -0.86*A(220)-A(805) IF (DO_FUN(58)) & - Vdot(58) = A(3)+A(666)-A(864)-A(865) + Vdot(58) = -A(579) IF (DO_FUN(59)) & - Vdot(59) = A(6)+A(667)-A(862)-A(863) + Vdot(59) = -0.65*A(213)-A(811) IF (DO_FUN(60)) & - Vdot(60) = -A(616) + Vdot(60) = A(283)-2*A(284)-A(818) IF (DO_FUN(61)) & - Vdot(61) = -A(219)-A(220)-A(221)+A(856) + Vdot(61) = -A(179)+A(199)-A(833) IF (DO_FUN(62)) & - Vdot(62) = -A(207)-A(208)-A(854) + Vdot(62) = A(3)+A(640)-A(844)-A(845) IF (DO_FUN(63)) & - Vdot(63) = A(55)-A(56)-A(775) + Vdot(63) = A(6)+A(641)-A(842)-A(843) IF (DO_FUN(64)) & - Vdot(64) = 0.005*A(608)-A(613) + Vdot(64) = -A(589) IF (DO_FUN(65)) & - Vdot(65) = A(325)-A(327)-A(707)-A(708)-A(709) + Vdot(65) = -A(197)-A(198)-A(199)+A(836) IF (DO_FUN(66)) & - Vdot(66) = -A(139)+0.37*A(598)-A(798) + Vdot(66) = -A(187)-A(188)-A(834) IF (DO_FUN(67)) & - Vdot(67) = 0.65*A(633)-A(636)-A(912) + Vdot(67) = A(53)-A(54)-A(755) IF (DO_FUN(68)) & - Vdot(68) = -A(255)-A(288) + Vdot(68) = 0.005*A(581)-A(586) IF (DO_FUN(69)) & - Vdot(69) = A(720)+A(721)+A(724)+A(725)+A(728)+A(729)-A(848) + Vdot(69) = A(300)-A(302)-A(681)-A(682)-A(683) IF (DO_FUN(70)) & - Vdot(70) = -A(189)-0.95*A(229)-A(806) + Vdot(70) = 0.65*A(606)-A(609)-A(892) IF (DO_FUN(71)) & - Vdot(71) = A(162)-A(163)-A(850)-A(851) + Vdot(71) = -A(173)-0.95*A(208)-A(786) IF (DO_FUN(72)) & - Vdot(72) = -A(248)+A(277)-A(278)-A(814) + Vdot(72) = -A(233)-A(265)-A(789) IF (DO_FUN(73)) & - Vdot(73) = -A(254)-A(287)-A(809) + Vdot(73) = A(700)+A(701)+A(704)+A(705)+A(708)+A(709)-A(828) IF (DO_FUN(74)) & - Vdot(74) = -A(188)-0.68*A(230)-A(805) + Vdot(74) = A(146)-A(147)-A(830)-A(831) IF (DO_FUN(75)) & - Vdot(75) = -A(604)-A(605) + Vdot(75) = -A(227)+A(256)-A(257)-A(794) IF (DO_FUN(76)) & - Vdot(76) = -A(617) + Vdot(76) = -A(577)-A(578) IF (DO_FUN(77)) & - Vdot(77) = -A(618) + Vdot(77) = -A(172)-0.7*A(209)-A(785) IF (DO_FUN(78)) & - Vdot(78) = -0.79*A(238)-A(260)-A(826) + Vdot(78) = -A(234)-A(266) IF (DO_FUN(79)) & - Vdot(79) = -0.69*A(236)-A(258)-A(827) + Vdot(79) = -A(590) IF (DO_FUN(80)) & - Vdot(80) = -0.74*A(237)-A(259)-A(828) + Vdot(80) = -A(591) IF (DO_FUN(81)) & - Vdot(81) = -0.72*A(231)-A(257)-A(829) + Vdot(81) = -0.79*A(217)-A(239)-A(806) IF (DO_FUN(82)) & - Vdot(82) = -A(164)-A(165)-A(166) + Vdot(82) = -0.69*A(215)-A(237)-A(807) IF (DO_FUN(83)) & - Vdot(83) = 0.73*A(341)+0.4*A(342)-A(597)-A(870) + Vdot(83) = -0.65*A(216)-A(238)-A(808) IF (DO_FUN(84)) & - Vdot(84) = 0.098*A(575)+0.75*A(587)-A(588)-A(744) + Vdot(84) = -0.75*A(210)-A(236)-A(809) IF (DO_FUN(85)) & - Vdot(85) = A(10)-A(11)-A(12) + Vdot(85) = 0.73*A(314)+0.4*A(315)-A(570)-A(850) IF (DO_FUN(86)) & - Vdot(86) = A(74)-A(394)-A(868) + Vdot(86) = A(10)-A(11)-A(12) IF (DO_FUN(87)) & - Vdot(87) = A(27)-A(392)-A(866) + Vdot(87) = A(72)-A(367)-A(848) IF (DO_FUN(88)) & - Vdot(88) = A(60)-A(393)-A(867) + Vdot(88) = -A(129)+0.37*A(571)-A(778) IF (DO_FUN(89)) & - Vdot(89) = A(65)-A(395)-A(869) + Vdot(89) = A(27)-A(365)-A(846) IF (DO_FUN(90)) & - Vdot(90) = A(316)-A(317)-2*A(318)+2*A(319)-A(320)+A(331)+A(334)-A(837)+A(841)+2*A(846)+A(847) + Vdot(90) = -A(148)-A(149)-A(150) IF (DO_FUN(91)) & - Vdot(91) = A(87)-A(135)-A(794) + Vdot(91) = A(63)-A(368)-A(849) IF (DO_FUN(92)) & - Vdot(92) = A(111)-A(133)-A(792) + Vdot(92) = 0.8*A(293)-A(294)-2*A(295)+2*A(296)-A(297)+0.4*A(306)+0.996*A(307)-A(817)+A(821)+2*A(826)+A(827) IF (DO_FUN(93)) & - Vdot(93) = A(91)-A(134)-A(793) + Vdot(93) = A(85)-A(125)-A(774) IF (DO_FUN(94)) & - Vdot(94) = 0.41*A(113)-A(136)-A(796) + Vdot(94) = A(107)-A(123)-A(772) IF (DO_FUN(95)) & - Vdot(95) = A(635)-A(637)-A(638) + Vdot(95) = A(89)-A(124)-A(773) IF (DO_FUN(96)) & - Vdot(96) = -A(389)+A(738)+A(739)+A(745)+A(746)+A(747)+A(748)+A(750)+A(751)+A(752)+A(753)+A(754)+A(755)+A(756) + Vdot(96) = A(58)-A(366)-A(847) IF (DO_FUN(97)) & - Vdot(97) = -A(190)-A(228)-A(807) + Vdot(97) = A(608)-A(610)-A(611) IF (DO_FUN(98)) & - Vdot(98) = A(323)+A(722)+A(723)+A(726)+A(727)+A(730)+A(731)-A(849) + Vdot(98) = -A(362)+A(718)+A(719)+A(725)+A(726)+A(727)+A(728)+A(730)+A(731)+A(732)+A(733)+A(734)+A(735)+A(736) IF (DO_FUN(99)) & - Vdot(99) = 0.06*A(617)+0.06*A(618)-A(631)-A(632)-A(911) + Vdot(99) = 0.191*A(298)+A(702)+A(703)+A(706)+A(707)+A(710)+A(711)-A(829) IF (DO_FUN(100)) & - Vdot(100) = -A(253)-A(286)-A(808) + Vdot(100) = -A(174)-A(207)-A(787) IF (DO_FUN(101)) & - Vdot(101) = A(41)-A(42)-A(43)-A(768)-A(769) + Vdot(101) = 0.06*A(590)+0.06*A(591)-A(604)-A(605)-A(891) IF (DO_FUN(102)) & - Vdot(102) = 0.995*A(608)+A(609)+0.6*A(610)-A(611)-A(612)+A(910) + Vdot(102) = A(39)-A(40)-A(41)-A(748)-A(749) IF (DO_FUN(103)) & - Vdot(103) = A(244)+A(248)+A(273)+A(275)-A(276)-A(279)-A(280)+A(282)+A(814)-A(833) + Vdot(103) = A(223)+A(227)+A(252)+A(254)-A(255)-A(258)+A(260)+A(794)-A(813) IF (DO_FUN(104)) & - Vdot(104) = 0.075*A(548)+0.241*A(553)+0.653*A(564)-A(596)-A(743)-A(872)+0.75*A(878) + Vdot(104) = 0.075*A(521)+0.241*A(526)+0.653*A(537)-A(569)-A(723)-A(852)+0.75*A(858) IF (DO_FUN(105)) & - Vdot(105) = 0.15*A(633)+A(638)+A(642)-A(643)-A(913) + Vdot(105) = 0.098*A(548)+0.75*A(560)-A(561)-A(724) IF (DO_FUN(106)) & - Vdot(106) = 0.15*A(427)+0.15*A(428)-A(433)+0.112*A(888)+0.182*A(889)+0.161*A(899) + Vdot(106) = 0.41*A(109)-A(126)-A(776) IF (DO_FUN(107)) & - Vdot(107) = -A(247)+A(274)+A(281)+A(321)-A(813) + Vdot(107) = 0.15*A(606)+A(611)+A(615)-A(616)-A(893) IF (DO_FUN(108)) & - Vdot(108) = A(109)+A(110)-A(132)-A(791) + Vdot(108) = 0.995*A(581)+A(582)+0.6*A(583)-A(584)-A(585)+A(890) IF (DO_FUN(109)) & - Vdot(109) = 0.19*A(617)+0.15*A(618)-A(626)-A(627) + Vdot(109) = 0.15*A(400)+0.15*A(401)-A(406)+0.112*A(868)+0.182*A(869)+0.161*A(879) IF (DO_FUN(110)) & - Vdot(110) = A(112)-A(137)-A(795) + Vdot(110) = A(105)+A(106)-A(122)-A(771) IF (DO_FUN(111)) & - Vdot(111) = A(92)-A(131)-A(790) + Vdot(111) = -A(226)+A(253)+A(259)+0.56*A(298)-A(793) IF (DO_FUN(112)) & - Vdot(112) = -A(67)-A(76)-A(302) + Vdot(112) = A(108)-A(127)-A(775) IF (DO_FUN(113)) & - Vdot(113) = A(607)+0.2*A(610)-A(614)-A(615)-A(910) + Vdot(113) = A(90)-A(121)-A(770) IF (DO_FUN(114)) & - Vdot(114) = 0.255*A(440)+0.595*A(441)-A(454)+A(481)+A(483)-A(736) + Vdot(114) = -A(65)-A(74)-A(280) IF (DO_FUN(115)) & - Vdot(115) = A(460)+0.13*A(461)+0.2*A(462)-A(566)+0.35*A(589)+0.35*A(901) + Vdot(115) = 0.19*A(590)+0.15*A(591)-A(599)-A(600) IF (DO_FUN(116)) & - Vdot(116) = 0.315*A(428)-A(475)-A(476) + Vdot(116) = 0.255*A(413)+0.595*A(414)-A(427)+A(454)+A(456)-A(716) IF (DO_FUN(117)) & - Vdot(117) = 0.54*A(616)-A(624)-A(625) + Vdot(117) = A(433)+0.13*A(434)+0.2*A(435)-A(539)+0.35*A(562)+0.35*A(881) IF (DO_FUN(118)) & - Vdot(118) = A(354)+A(366)-A(370)-A(857) + Vdot(118) = 0.54*A(589)-A(597)-A(598) IF (DO_FUN(119)) & - Vdot(119) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(167)+A(344)+A(348)+A(694)+A(701)-A(855) + Vdot(119) = A(327)+A(339)-A(343)-A(837) IF (DO_FUN(120)) & - Vdot(120) = 0.315*A(427)-A(473)-A(474) + Vdot(120) = A(580)+0.2*A(583)-A(587)-A(588)-A(890) IF (DO_FUN(121)) & - Vdot(121) = -A(62)-A(63)-A(185)-A(298)-A(299) + Vdot(121) = 0.315*A(400)-A(446)-A(447) IF (DO_FUN(122)) & - Vdot(122) = A(459)+A(464)-A(590)-A(905) + Vdot(122) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(151)+A(317)+A(321)+A(668)+A(675)-A(835) IF (DO_FUN(123)) & - Vdot(123) = 0.474*A(510)+0.34*A(511)+0.244*A(512)+0.841*A(515)+0.841*A(517)+0.841*A(520)-A(522)-A(523)+0.841*A(897)& - &+0.227*A(900) + Vdot(123) = 0.315*A(401)-A(448)-A(449) IF (DO_FUN(124)) & - Vdot(124) = 0.15*A(400)+0.15*A(408)-A(430)+0.009*A(441)-A(891) + Vdot(124) = -A(60)-A(61)-A(169)-A(276)-A(277) IF (DO_FUN(125)) & - Vdot(125) = A(173)+A(175)-A(176)+A(695)+A(699)+A(700)-A(799) + Vdot(125) = A(432)+A(437)-A(563)-A(885) IF (DO_FUN(126)) & - Vdot(126) = 0.15*A(399)+0.15*A(406)-A(429)+0.009*A(440)-A(890) + Vdot(126) = 0.474*A(483)+0.34*A(484)+0.244*A(485)+0.841*A(488)+0.841*A(490)+0.841*A(493)-A(495)-A(496)+0.841*A(877)& + &+0.222*A(880) IF (DO_FUN(127)) & - Vdot(127) = 0.67*A(435)+0.68*A(437)-A(455)-A(456)+0.67*A(478)+0.67*A(480)-A(734) + Vdot(127) = 0.15*A(373)+0.15*A(381)-A(403)+0.009*A(414)-A(871) IF (DO_FUN(128)) & - Vdot(128) = 0.33*A(435)+0.32*A(437)-A(457)-A(458)+0.33*A(478)+0.33*A(480)-A(735) + Vdot(128) = A(157)+A(159)-A(160)+A(669)+A(673)+A(674)-A(779) IF (DO_FUN(129)) & - Vdot(129) = 0.25*A(94)+0.25*A(95)-A(103)+A(107)+A(108)-A(296) + Vdot(129) = 0.15*A(372)+0.15*A(379)-A(402)+0.009*A(413)-A(870) IF (DO_FUN(130)) & - Vdot(130) = A(465)+0.2*A(466)+0.13*A(468)-A(569)+0.15*A(589)+0.15*A(901)+0.122*A(902) + Vdot(130) = 0.67*A(408)+0.68*A(410)-A(428)-A(429)+0.67*A(451)+0.67*A(453)-A(714) IF (DO_FUN(131)) & - Vdot(131) = A(384)+A(385)+A(386)+A(387)+A(388)-A(391)-A(742)-A(861) + Vdot(131) = 0.33*A(408)+0.32*A(410)-A(430)-A(431)+0.33*A(451)+0.33*A(453)-A(715) IF (DO_FUN(132)) & - Vdot(132) = A(283)+A(676)+A(679)+A(680)+A(681)+A(687)+A(688)+A(689)+A(691)+A(696)+A(697)+A(698)-A(810) + Vdot(132) = A(438)+0.2*A(439)+0.13*A(441)-A(542)+0.15*A(562)+0.15*A(881)+0.163*A(882) IF (DO_FUN(133)) & - Vdot(133) = 0.5*A(574)-A(575)-0.75*A(880) + Vdot(133) = 0.25*A(92)+0.25*A(93)-A(101)+0.4*A(103)+0.4*A(104)-A(274) IF (DO_FUN(134)) & - Vdot(134) = A(28)-A(32)-A(33)-A(291)-A(763) + Vdot(134) = A(357)+A(358)+A(359)+A(360)+A(361)-A(364)-A(722)-A(841) IF (DO_FUN(135)) & - Vdot(135) = -2*A(4)-A(5)-A(6) + Vdot(135) = A(261)+A(650)+A(653)+A(654)+A(655)+A(661)+A(662)+A(663)+A(665)+A(670)+A(671)+A(672)-A(790) IF (DO_FUN(136)) & - Vdot(136) = A(419)-A(477)-A(478)-A(746)-A(893) + Vdot(136) = 0.5*A(547)-A(548)-0.75*A(860) IF (DO_FUN(137)) & - Vdot(137) = A(423)-A(479)-A(480)-A(747)-A(894) + Vdot(137) = A(28)-A(32)-A(269)-A(743) IF (DO_FUN(138)) & - Vdot(138) = 0.8*A(624)+0.727*A(626)-A(628)-A(629)-A(630) + Vdot(138) = -2*A(4)-A(5)-A(6) IF (DO_FUN(139)) & - Vdot(139) = 0.725*A(445)+0.725*A(449)+0.35*A(453)-A(591)-A(903) + Vdot(139) = A(392)-A(450)-A(451)-A(726)-A(873) IF (DO_FUN(140)) & - Vdot(140) = A(306)+A(309)-A(310)+A(313)-A(326)-A(834) + Vdot(140) = A(396)-A(452)-A(453)-A(727)-A(874) IF (DO_FUN(141)) & - Vdot(141) = -A(558)-A(559)-A(560)+0.224*A(888)+0.068*A(899) + Vdot(141) = 0.725*A(418)+0.725*A(422)+0.35*A(426)-A(564)-A(883) IF (DO_FUN(142)) & - Vdot(142) = -A(561)-A(562)-A(563)+0.182*A(889)+0.128*A(899) + Vdot(142) = 0.8*A(597)+0.727*A(599)-A(601)-A(602)-A(603) IF (DO_FUN(143)) & - Vdot(143) = 0.435*A(544)-A(545)-A(546) + Vdot(143) = A(284)+A(287)-A(288)+A(291)-A(301)-A(814) IF (DO_FUN(144)) & - Vdot(144) = -2*A(1)-A(2)-A(3) + Vdot(144) = -A(531)-A(532)-A(533)+0.224*A(868)+0.068*A(879) IF (DO_FUN(145)) & - Vdot(145) = 0.3*A(617)+0.56*A(618)+0.44*A(626)+0.44*A(627)-A(653)-A(654)-A(655) + Vdot(145) = -A(534)-A(535)-A(536)+0.182*A(869)+0.128*A(879) IF (DO_FUN(146)) & - Vdot(146) = 0.461*A(541)-0.33*A(542)-0.33*A(543)+0.041*A(594) + Vdot(146) = 0.435*A(517)-A(518)-A(519) IF (DO_FUN(147)) & - Vdot(147) = A(508)-A(525)-A(527)-A(528)-A(530)-A(531)-A(750)-A(897)-A(898) + Vdot(147) = -2*A(1)-A(2)-A(3) IF (DO_FUN(148)) & - Vdot(148) = A(479)-A(491)-A(492)-A(493)-A(494) + Vdot(148) = 0.3*A(590)+0.56*A(591)+0.44*A(599)+0.44*A(600)-A(626)-A(627)-A(628) IF (DO_FUN(149)) & - Vdot(149) = A(580)+A(583)-A(586)-A(587) + Vdot(149) = -0.9*A(206)-A(232)-A(264)-A(788) IF (DO_FUN(150)) & - Vdot(150) = -A(351)-A(358)-A(360) + Vdot(150) = 0.461*A(514)-0.33*A(515)-0.33*A(516)+0.041*A(567) IF (DO_FUN(151)) & - Vdot(151) = -A(352)-A(359)-A(361) + Vdot(151) = A(481)-A(498)-A(500)-A(501)-A(503)-A(504)-A(730)-A(877)-A(878) IF (DO_FUN(152)) & - Vdot(152) = A(433)-A(565)+0.444*A(590)-A(877)+0.112*A(888)+0.182*A(889)+0.162*A(899)+0.454*A(905) + Vdot(152) = A(452)-A(464)-A(465)-A(466)-A(467) IF (DO_FUN(153)) & - Vdot(153) = 0.937*A(401)-A(434)-A(435)-A(438)-A(884) + Vdot(153) = A(553)+A(556)-A(559)-A(560) IF (DO_FUN(154)) & - Vdot(154) = 0.25*A(85)+0.25*A(86)+0.25*A(97)+0.25*A(98)+0.25*A(100)+0.25*A(101)+0.25*A(102)-A(104)+0.25*A(355)+0.25& - &*A(367)+0.25*A(376) + Vdot(154) = -A(324)-A(331)-A(333) IF (DO_FUN(155)) & - Vdot(155) = 0.56*A(616)+0.68*A(617)+0.28*A(618)+0.18*A(624)+1.05*A(628)+A(629)+0.3*A(630)+A(646)+A(647)-A(650)-A(651)& - &-A(652)+A(914) + Vdot(155) = -A(325)-A(332)-A(334) IF (DO_FUN(156)) & - Vdot(156) = 0.06*A(624)+0.742*A(625)+0.073*A(626)+0.3*A(627)+0.3*A(628)+0.3*A(630)+A(639)+A(640)+A(641)-A(644)-A(645)& - &+A(648)+A(913) + Vdot(156) = A(406)-A(538)+0.444*A(563)-A(857)+0.112*A(868)+0.182*A(869)+0.162*A(879)+0.454*A(885) IF (DO_FUN(157)) & - Vdot(157) = -A(58)-A(140)-A(184)-A(292) + Vdot(157) = 0.937*A(374)-A(407)-A(408)-A(411)-A(864) IF (DO_FUN(158)) & - Vdot(158) = 0.937*A(403)-A(436)-A(437)-A(439)-A(885) + Vdot(158) = 0.25*A(83)+0.25*A(84)+0.38*A(95)+0.375*A(96)+0.25*A(98)+0.25*A(99)+0.25*A(100)-A(102)+0.25*A(328)+0.25& + &*A(340)+0.25*A(349) IF (DO_FUN(159)) & - Vdot(159) = 0.824*A(442)+0.452*A(446)+A(450)+0.667*A(591)-A(592)-A(904) + Vdot(159) = 0.55*A(589)+0.68*A(590)+0.28*A(591)+0.18*A(597)+1.05*A(601)+A(602)+0.3*A(603)+0.9*A(619)+0.9*A(620)-A(623)& + &-A(624)-A(625)+A(894) IF (DO_FUN(160)) & - Vdot(160) = -A(564)+0.022*A(594)-A(878)+0.552*A(888)+0.455*A(889)+0.481*A(899) + Vdot(160) = 0.06*A(597)+0.742*A(598)+0.073*A(599)+0.3*A(600)+0.3*A(601)+0.3*A(603)+A(612)+A(613)+A(614)-A(617)-A(618)& + &+A(621)+A(893) IF (DO_FUN(161)) & - Vdot(161) = A(404)-A(441)-A(887) + Vdot(161) = -A(56)-A(130)-A(168)-A(270) IF (DO_FUN(162)) & - Vdot(162) = A(477)-A(487)-A(488)-A(489)-A(490) + Vdot(162) = 0.937*A(376)-A(409)-A(410)-A(412)-A(865) IF (DO_FUN(163)) & - Vdot(163) = A(484)-A(496)-A(500)-A(501)-A(502) + Vdot(163) = -A(537)+0.022*A(567)-A(858)+0.552*A(868)+0.454*A(869)+0.481*A(879) IF (DO_FUN(164)) & - Vdot(164) = A(482)-A(495)-A(497)-A(498)-A(499) + Vdot(164) = 0.824*A(415)+0.452*A(419)+A(423)+0.667*A(564)-A(565)-A(884) IF (DO_FUN(165)) & - Vdot(165) = -A(362)-A(363)-A(364) + Vdot(165) = A(377)-A(414)-A(867) IF (DO_FUN(166)) & - Vdot(166) = 0.13*A(469)+0.2*A(471)+0.53*A(554)+0.6*A(566)-A(568)+0.255*A(570)+0.318*A(590)-A(874)+0.391*A(905) + Vdot(166) = A(455)-A(468)-A(470)-A(471)-A(472) IF (DO_FUN(167)) & - Vdot(167) = A(402)-A(440)-A(886) + Vdot(167) = A(450)-A(460)-A(461)-A(462)-A(463) IF (DO_FUN(168)) & - Vdot(168) = 0.3*A(399)+0.3*A(406)+0.018*A(440)+0.284*A(443)+0.135*A(445)+0.249*A(534)+0.471*A(535)+0.303*A(536)+0.59& - &*A(538)-A(599)-A(600)-A(871)+0.5*A(907) + Vdot(168) = A(457)-A(469)-A(473)-A(474)-A(475) IF (DO_FUN(169)) & - Vdot(169) = A(47)-A(48)-A(668)-A(669)-A(670)-A(671)-A(672)-A(772) + Vdot(169) = 0.13*A(442)+0.2*A(444)+0.53*A(527)+0.6*A(539)-A(541)+0.255*A(543)+0.318*A(563)-A(854)+0.391*A(885) IF (DO_FUN(170)) & - Vdot(170) = 0.085*A(427)+0.165*A(428)+0.58*A(429)+0.77*A(430)-A(432)+0.75*A(454)+A(455)+A(457)+A(528)+A(540)-A(749) + Vdot(170) = -A(335)-A(336)-A(337) IF (DO_FUN(171)) & - Vdot(171) = 0.6*A(485)+0.031*A(497)+0.065*A(498)+0.094*A(503)+0.355*A(504)+0.06*A(534)+0.073*A(535)+0.17*A(536)+0.291& - &*A(538)+0.378*A(541)-A(557)+0.13*A(581)+0.3*A(585)-A(755)-A(883) + Vdot(171) = A(375)-A(413)-A(866) IF (DO_FUN(172)) & - Vdot(172) = -A(175)+A(187)-A(675)-A(676)-A(802)-A(803) + Vdot(172) = 0.3*A(372)+0.3*A(379)+0.018*A(413)+0.284*A(416)+0.135*A(418)+0.249*A(507)+0.471*A(508)+0.303*A(509)+0.59& + &*A(511)-A(572)-A(573)-A(851)+0.5*A(887) IF (DO_FUN(173)) & - Vdot(173) = A(194)+A(199)+A(202)+A(203)-A(214)-A(215)-A(216)-A(217)-A(218)+0.24*A(224)+0.15*A(225)+A(264)+A(764) + Vdot(173) = A(45)-A(46)-A(642)-A(643)-A(644)-A(645)-A(646)-A(752) IF (DO_FUN(174)) & - Vdot(174) = 0.12*A(353)+A(371)+0.7*A(373)+0.7*A(374)+0.7*A(375)+0.35*A(376)+0.7*A(377)+0.7*A(379)+1.4*A(381)+1.05& - &*A(382)+0.7*A(383)-A(384)-A(388)-A(740)-A(859) + Vdot(174) = 0.085*A(400)+0.165*A(401)+0.58*A(402)+0.77*A(403)-A(405)+0.75*A(427)+A(428)+A(430)+A(501)+A(513)-A(729) IF (DO_FUN(175)) & - Vdot(175) = A(605)-A(607)-A(608)-A(609)-A(610)+A(614) + Vdot(175) = 0.6*A(458)+0.031*A(470)+0.065*A(471)+0.094*A(476)+0.355*A(477)+0.06*A(507)+0.073*A(508)+0.17*A(509)+0.291& + &*A(511)+0.378*A(514)-A(530)+0.13*A(554)+0.3*A(558)-A(735)-A(863) IF (DO_FUN(176)) & - Vdot(176) = A(631)+A(632)-A(633)-A(634)-A(635)+A(636)+A(637)-A(649) + Vdot(176) = -A(159)+A(171)-A(649)-A(650)-A(782)-A(783) IF (DO_FUN(177)) & - Vdot(177) = 0.473*A(507)+0.07*A(509)+0.399*A(510)+0.355*A(513)-A(524)-A(526)-A(529)-A(751)-A(896) + Vdot(177) = A(178)+0.2*A(180)+A(183)+A(184)-A(194)-A(195)-A(196)+0.22*A(202)+0.2*A(203)+0.09*A(206)+A(243)+A(744) IF (DO_FUN(178)) & - Vdot(178) = 0.46*A(616)+0.81*A(617)+0.85*A(618)-A(619)-A(620)-A(621)-A(622)-A(623)+0.14*A(624)+0.2*A(626)+0.2*A(627)& - &+0.7*A(628)+0.2*A(630) + Vdot(178) = 0.12*A(326)+A(344)+0.7*A(346)+0.7*A(347)+0.7*A(348)+0.35*A(349)+0.7*A(350)+0.7*A(352)+1.4*A(354)+1.05& + &*A(355)+0.7*A(356)-A(357)-A(361)-A(720)-A(839) IF (DO_FUN(179)) & - Vdot(179) = 0.345*A(434)+0.595*A(440)-A(442)-A(443)-A(444)-A(445) + Vdot(179) = A(578)-A(580)-A(581)-A(582)-A(583)+A(587) IF (DO_FUN(180)) & - Vdot(180) = 0.345*A(436)+0.255*A(441)-A(446)-A(447)-A(448)-A(449) + Vdot(180) = A(604)+A(605)-A(606)-A(607)-A(608)+A(609)+A(610)-A(622) IF (DO_FUN(181)) & - Vdot(181) = 0.29*A(553)+0.47*A(554)+0.063*A(564)+0.4*A(566)-A(567)+0.16*A(569)+0.126*A(590)-A(875)+0.1*A(902)+0.155& - &*A(905) + Vdot(181) = 0.473*A(480)+0.07*A(482)+0.399*A(483)+0.355*A(486)-A(497)-A(499)-A(502)-A(731)-A(876) IF (DO_FUN(182)) & - Vdot(182) = 0.25*A(399)+0.25*A(406)-A(427)+0.015*A(440)-A(888) + Vdot(182) = 0.345*A(407)+0.595*A(413)-A(415)-A(416)-A(417)-A(418) IF (DO_FUN(183)) & - Vdot(183) = 0.655*A(434)+0.655*A(436)-A(450)-A(451)-A(452)-A(453) + Vdot(183) = 0.345*A(409)+0.255*A(414)-A(419)-A(420)-A(421)-A(422) IF (DO_FUN(184)) & - Vdot(184) = 0.25*A(400)+0.25*A(408)-A(428)+0.015*A(441)-A(889) + Vdot(184) = 0.46*A(589)+0.81*A(590)+0.85*A(591)-A(592)-A(593)-A(594)-A(595)-A(596)+0.14*A(597)+0.2*A(599)+0.2*A(600)& + &+0.7*A(601)+0.2*A(603) IF (DO_FUN(185)) & - Vdot(185) = A(525)-A(532)-A(535)-A(538)-A(539) + Vdot(185) = 0.29*A(526)+0.47*A(527)+0.063*A(537)+0.4*A(539)-A(540)+0.16*A(542)+0.126*A(563)-A(855)+0.133*A(882)+0.155& + &*A(885) IF (DO_FUN(186)) & - Vdot(186) = -A(25)+0.1*A(115)-A(197)-A(198)-A(199)-A(261)+A(774) + Vdot(186) = 0.25*A(372)+0.25*A(379)-A(400)+0.015*A(413)-A(868) IF (DO_FUN(187)) & - Vdot(187) = 0.2*A(633)+A(634)-A(639)-A(640)-A(641)-A(642)+A(643)+A(644)-A(648)+A(649)+A(911)+A(912) + Vdot(187) = 0.655*A(407)+0.655*A(409)-A(423)-A(424)-A(425)-A(426) IF (DO_FUN(188)) & - Vdot(188) = A(39)-A(40)+0.5*A(664)+A(684)+A(685)+A(686)+A(687)+A(688)+A(689)+A(720)+A(721)+A(722)+A(723)-A(767)+A(862)& - &+A(864)+A(914) + Vdot(188) = 0.25*A(373)+0.25*A(381)-A(401)+0.015*A(414)-A(869) IF (DO_FUN(189)) & - Vdot(189) = A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.45*A(422)+0.45*A(426)-A(431)+0.06*A(440)+0.06*A(441)+A(886)& - &+A(887)+0.45*A(892)+0.45*A(895) + Vdot(189) = A(498)-A(505)-A(508)-A(511)-A(512) IF (DO_FUN(190)) & - Vdot(190) = 0.16*A(439)+0.25*A(454)-A(469)-A(470)-A(471)-A(472) + Vdot(190) = -A(25)+0.1*A(111)-A(180)-A(240)+A(754) IF (DO_FUN(191)) & - Vdot(191) = 0.12*A(115)-A(345)-A(346)-A(347)-A(348)-A(349)-A(350) + Vdot(191) = 0.2*A(606)+A(607)-A(612)-A(613)-A(614)-A(615)+A(616)+A(617)-A(621)+A(622)+A(891)+A(892) IF (DO_FUN(192)) & - Vdot(192) = -0.75*A(226)-A(243)+A(272)+A(279)+A(285)+0.5*A(673)+0.5*A(674)+A(678)+A(682)+A(683)+A(684)+A(685)+A(686)& - &+A(690)+A(692)+A(693)-A(811) + Vdot(192) = A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)+0.45*A(395)+0.45*A(399)-A(404)+0.06*A(413)+0.06*A(414)+A(866)& + &+A(867)+0.45*A(872)+0.45*A(875) IF (DO_FUN(193)) & - Vdot(193) = -A(34)-A(35)+0.85*A(89)+0.85*A(90)+0.3*A(400)+0.3*A(408)+0.018*A(441)+0.294*A(447)+0.135*A(449)+0.009& - &*A(534)+0.054*A(535)+0.013*A(536)+0.07*A(538)+0.036*A(549)+0.23*A(555)-A(852)+0.05*A(907) + Vdot(193) = A(37)-A(38)+0.5*A(638)+A(658)+A(659)+A(660)+A(661)+A(662)+A(663)+A(695)+A(696)+A(700)+A(701)+A(702)+A(703)& + &-A(747)+A(842)+A(844)+A(894) IF (DO_FUN(194)) & - Vdot(194) = 0.791*A(131)-A(337)+0.551*A(497)+0.935*A(498)+0.242*A(503)+0.546*A(504)+0.589*A(534)+0.471*A(535)+0.687& - &*A(536)+0.59*A(538)+0.231*A(542)+0.231*A(543)+A(545)+0.82*A(546)+0.68*A(552)+A(557)-A(873)+A(883) + Vdot(194) = 0.16*A(412)+0.25*A(427)-A(442)-A(443)-A(444)-A(445) IF (DO_FUN(195)) & - Vdot(195) = 0.059*A(488)+0.272*A(489)-A(556)+A(563)+A(578)+0.37*A(581)-A(756)-A(882)+0.5*A(906) + Vdot(195) = 0.12*A(111)-A(318)-A(319)-A(320)-A(321)-A(322)-A(323) IF (DO_FUN(196)) & - Vdot(196) = 0.06*A(353)+0.22*A(365)+0.3*A(373)+0.3*A(374)+0.3*A(375)+0.15*A(376)+0.3*A(377)+0.3*A(379)+0.6*A(381)+0.45& - &*A(382)+0.3*A(383)-A(385)-A(386)-A(387)-A(741)-A(860) + Vdot(196) = -A(33)+0.85*A(87)+0.85*A(88)+0.3*A(373)+0.3*A(381)+0.018*A(414)+0.294*A(420)+0.135*A(422)+0.009*A(507)& + &+0.054*A(508)+0.013*A(509)+0.07*A(511)+0.036*A(522)+0.23*A(528)-A(832)+0.05*A(887) IF (DO_FUN(197)) & - Vdot(197) = -A(75)-A(92)-A(102)+A(118)+0.209*A(131)-A(149)-A(154) + Vdot(197) = -0.75*A(204)-A(222)+A(251)+0.95*A(258)+A(263)+0.5*A(647)+0.5*A(648)+A(652)+A(656)+A(657)+A(658)+A(659)& + &+A(660)+A(664)+A(666)+A(667)-A(791) IF (DO_FUN(198)) & - Vdot(198) = A(69)+0.07*A(72)-A(77)+A(88)-A(739)-A(797) + Vdot(198) = 0.791*A(121)-A(310)+0.551*A(470)+0.935*A(471)+0.242*A(476)+0.546*A(477)+0.589*A(507)+0.471*A(508)+0.687& + &*A(509)+0.59*A(511)+0.231*A(515)+0.231*A(516)+A(518)+0.82*A(519)+0.68*A(525)+A(530)-A(853)+A(863) IF (DO_FUN(199)) & - Vdot(199) = A(307)-A(308)-2*A(309)-A(720)-A(721)-A(722)-A(723)-A(839) + Vdot(199) = 0.06*A(326)+0.22*A(338)+0.3*A(346)+0.3*A(347)+0.3*A(348)+0.15*A(349)+0.3*A(350)+0.3*A(352)+0.6*A(354)+0.45& + &*A(355)+0.3*A(356)-A(358)-A(359)-A(360)-A(721)-A(840) IF (DO_FUN(200)) & - Vdot(200) = A(547)+A(558)+A(559)-A(570)-A(571)-A(572) + Vdot(200) = 0.059*A(461)+0.272*A(462)-A(529)+A(536)+A(551)+0.37*A(554)-A(736)-A(862)+0.5*A(886) IF (DO_FUN(201)) & - Vdot(201) = 0.964*A(549)+A(561)+A(562)-A(573)-A(576)-A(577)-A(578) + Vdot(201) = -A(73)-A(90)-A(100)+A(114)+0.209*A(121)-A(138) IF (DO_FUN(202)) & - Vdot(202) = 0.176*A(442)+0.548*A(446)+0.35*A(461)+0.35*A(468)+0.35*A(469)-A(589)+0.333*A(591)-A(901)-A(902)+0.75& - &*A(903) + Vdot(202) = A(67)+0.072*A(70)-A(75)+A(86)-A(719)-A(777) IF (DO_FUN(203)) & - Vdot(203) = A(550)+0.32*A(552)-A(574)+0.165*A(575)-A(579)-A(580)+A(586) + Vdot(203) = A(285)-A(286)-2*A(287)-A(695)-A(696)-A(700)-A(701)-A(702)-A(703)-A(819) IF (DO_FUN(204)) & - Vdot(204) = -A(66)-A(86)-A(112)+A(114)-A(126)-A(128)+0.209*A(137)+A(303)+A(304) + Vdot(204) = A(520)+A(531)+A(532)-A(543)-A(544)-A(545) IF (DO_FUN(205)) & - Vdot(205) = -A(336)+0.441*A(500)+0.858*A(501)+0.033*A(503)+0.071*A(504)+0.051*A(534)+0.054*A(535)+0.064*A(536)+0.07& - &*A(538)+0.099*A(542)+0.099*A(543)+0.89*A(545)+0.73*A(546)-A(595)-A(858)+0.3*A(881)+0.15*A(906) + Vdot(205) = 0.964*A(522)+A(534)+A(535)-A(546)-A(549)-A(550)-A(551) IF (DO_FUN(206)) & - Vdot(206) = 0.258*A(625)+0.5*A(627)+0.5*A(630)+A(645)-A(646)-A(647)-A(757)-A(914) + Vdot(206) = 0.176*A(415)+0.548*A(419)+0.35*A(434)+0.35*A(441)+0.35*A(442)-A(562)+0.333*A(564)-A(881)-A(882)+0.75& + &*A(883) IF (DO_FUN(207)) & - Vdot(207) = -A(49)+0.134*A(116)+A(117)+0.5*A(124)-A(289)+0.21*A(341)+0.54*A(342)+0.07*A(353)+0.01*A(363)+0.449*A(553)& - &+0.187*A(564)+0.3*A(588)+0.5*A(597)+0.364*A(606)+0.25*A(650)+0.5*A(651)+0.1*A(653)+0.2*A(654) + Vdot(207) = A(523)+0.32*A(525)-A(547)+0.165*A(548)-A(552)-A(553)+A(559) IF (DO_FUN(208)) & - Vdot(208) = -A(7)+A(19)-A(21)+A(23)-A(213)-A(265)+0.06*A(341)+0.06*A(342)+A(349)+0.02*A(358)+0.02*A(359)+0.02*A(363)& - &+0.013*A(396)+0.045*A(548)-A(762) + Vdot(208) = -A(309)+0.441*A(473)+0.858*A(474)+0.033*A(476)+0.071*A(477)+0.051*A(507)+0.054*A(508)+0.064*A(509)+0.07& + &*A(511)+0.099*A(515)+0.099*A(516)+0.89*A(518)+0.73*A(519)-A(568)-A(838)+0.3*A(861)+0.15*A(886) IF (DO_FUN(209)) & - Vdot(209) = A(463)+A(467)+A(470)+A(487)+A(491)+A(495)+A(496)+A(532)+0.5*A(533)-A(593)+0.92*A(594)-A(753)-A(908)-A(909) + Vdot(209) = -A(64)-A(84)-A(108)+A(110)+0.209*A(127)-A(141)+A(281)+A(282) IF (DO_FUN(210)) & - Vdot(210) = A(421)-A(483)-A(484)-A(486)+0.127*A(511)+0.057*A(512)-A(748)-A(895) + Vdot(210) = 0.258*A(598)+0.5*A(600)+0.5*A(603)+A(618)-A(619)-A(620)-A(737)-A(894) IF (DO_FUN(211)) & - Vdot(211) = 0.1*A(360)+0.1*A(361)+0.5*A(364)-A(371)-A(373)-A(375)-A(377)-A(379)-2*A(381)-A(382) + Vdot(211) = -A(47)+0.134*A(112)+A(113)+0.5*A(120)-A(267)+0.21*A(314)+0.54*A(315)+0.07*A(326)+0.01*A(336)+0.449*A(526)& + &+0.187*A(537)+0.3*A(561)+0.5*A(570)+0.364*A(579)+0.26*A(623)+0.5*A(624)+0.1*A(626)+0.2*A(627) IF (DO_FUN(212)) & - Vdot(212) = 0.9*A(360)+0.9*A(361)+0.5*A(364)-A(372)-A(374)-A(376)-A(378)-A(380)-A(382)-2*A(383) + Vdot(212) = -A(7)+A(19)-A(21)+A(23)-A(193)-A(244)+0.06*A(314)+0.06*A(315)+A(322)+0.02*A(331)+0.02*A(332)+0.02*A(336)& + &+0.013*A(369)+0.045*A(521)-A(742) IF (DO_FUN(213)) & - Vdot(213) = A(58)-A(59)-A(60)-A(94)-2*A(105)-2*A(107)-A(109)+A(140)-A(156)-A(158)+A(184)+A(292)-A(293) + Vdot(213) = A(436)+A(440)+A(443)+A(460)+A(464)+A(468)+A(469)+A(505)+0.5*A(506)-A(566)+0.9*A(567)-A(733)-A(888)-A(889) IF (DO_FUN(214)) & - Vdot(214) = A(29)+0.13*A(31)-A(50)+0.25*A(85)+0.25*A(86)+0.25*A(94)+0.25*A(95)+0.25*A(97)+0.25*A(98)+0.5*A(99)+0.25& - &*A(100)+0.25*A(101)+0.25*A(102)-A(295)+0.25*A(355)+0.25*A(367)+0.25*A(376)+0.355*A(512)+0.034*A(513)+0.2& - &*A(610)+0.1*A(780) + Vdot(214) = A(394)-A(456)-A(457)-A(459)+0.127*A(484)+0.057*A(485)-A(728)-A(875) IF (DO_FUN(215)) & - Vdot(215) = -A(78)+0.5*A(124)+A(127)+A(128)+A(143)+A(150)+A(151)+A(152)+A(153)+A(154)+A(155)+A(158)+A(159)-A(297)& - &+A(350)+0.13*A(598)+0.15*A(653)+0.3*A(654) + Vdot(215) = 0.1*A(333)+0.1*A(334)+0.5*A(337)-A(344)-A(346)-A(348)-A(350)-A(352)-2*A(354)-A(355) IF (DO_FUN(216)) & - Vdot(216) = A(425)-A(481)-A(482)-A(485)+0.032*A(510)+0.671*A(511)+0.298*A(512)-A(745)-A(892) + Vdot(216) = 0.9*A(333)+0.9*A(334)+0.5*A(337)-A(345)-A(347)-A(349)-A(351)-A(353)-A(355)-2*A(356) IF (DO_FUN(217)) & - Vdot(217) = 0.67*A(524)-A(533)-A(534)-A(536)-A(537) + Vdot(217) = A(56)-A(57)-A(58)-A(92)-2*A(103)-A(105)+A(130)-A(139)+A(168)+A(270)-A(271) IF (DO_FUN(218)) & - Vdot(218) = 0.134*A(116)-A(119)-A(121)+0.8*A(466)+0.52*A(468)+A(600)+0.636*A(606)+0.18*A(616)+0.12*A(617)+0.1*A(618)& - &+0.06*A(624)+0.6*A(650)+0.6*A(651)+0.2*A(652)-A(732)-A(781)-A(782)-A(783)+0.5*A(875)+0.429*A(877)+0.125& - &*A(878)+0.438*A(902)+0.571*A(904) + Vdot(218) = A(29)+0.13*A(31)-A(48)+0.25*A(83)+0.25*A(84)+0.25*A(92)+0.25*A(93)+0.25*A(95)+0.25*A(96)+0.5*A(97)+0.25& + &*A(98)+0.25*A(99)+0.25*A(100)-A(273)+0.25*A(328)+0.25*A(340)+0.25*A(349)+0.355*A(485)+0.034*A(486)+0.2& + &*A(583)+0.1*A(760) IF (DO_FUN(219)) & - Vdot(219) = 0.32*A(68)+A(73)-A(84)+0.16*A(97)+0.75*A(101)+0.791*A(134)+0.32*A(144)+A(147)+A(155)-A(183)-A(300)+0.11& - &*A(353)+A(394)-A(777)-A(778)+A(793)+0.32*A(797)+A(868) + Vdot(219) = -A(76)+0.5*A(120)+0.1*A(132)+0.1*A(133)+0.1*A(134)+0.1*A(135)+0.1*A(136)+0.1*A(137)+0.1*A(138)+0.1*A(139)& + &+0.1*A(140)+0.1*A(141)+0.1*A(142)-A(275)+A(323)+0.13*A(571)+0.15*A(626)+0.3*A(627) IF (DO_FUN(220)) & - Vdot(220) = -A(301)-A(396)-A(397)-A(398)-A(399)-A(400)-A(506) + Vdot(220) = A(398)-A(454)-A(455)-A(458)+0.032*A(483)+0.671*A(484)+0.298*A(485)-A(725)-A(872) IF (DO_FUN(221)) & - Vdot(221) = A(362)-A(365)-A(366)-A(367)-A(368)-A(369) + Vdot(221) = 0.34*A(66)+A(71)-A(82)+0.16*A(95)+0.75*A(99)+0.791*A(124)+0.29*A(133)+A(136)-A(167)-A(278)+0.11*A(326)& + &+A(367)-A(757)-A(758)+A(773)+0.34*A(777)+A(848) IF (DO_FUN(222)) & - Vdot(222) = 0.19*A(68)-A(93)-A(96)+0.35*A(97)+0.25*A(100)+0.19*A(144)+A(150)+A(152)+0.44*A(353)+0.75*A(355)+A(356)& - &+A(357)+0.53*A(358)+0.53*A(359)+0.289*A(365)+0.41*A(370)+0.464*A(372)+0.348*A(376)+0.464*A(378)+0.464& - &*A(380)+0.149*A(382)+0.285*A(383)-A(779)+0.19*A(797)+A(859) + Vdot(222) = 0.67*A(497)-A(506)-A(507)-A(509)-A(510) IF (DO_FUN(223)) & - Vdot(223) = -A(311)+A(312)+A(314)-A(315)-A(316)-A(317)+A(320)-A(321)-A(322)-A(323)+A(324)+A(328)-A(329)-A(330)-2& - &*A(331)-2*A(332)+2*A(333)-A(836)+A(847) + Vdot(223) = 0.134*A(112)-A(115)-A(117)+0.8*A(439)+0.52*A(441)+A(573)+0.636*A(579)+0.18*A(589)+0.12*A(590)+0.1*A(591)& + &+0.06*A(597)+0.6*A(623)+0.6*A(624)+0.2*A(625)-A(712)-A(761)-A(762)-A(763)+0.5*A(855)+0.429*A(857)+0.125& + &*A(858)+0.586*A(882)+0.571*A(884) IF (DO_FUN(224)) & - Vdot(224) = 0.294*A(431)+0.67*A(456)+0.81*A(458)-A(459)-A(460)-A(461)-A(462)-A(463)+0.08*A(590) + Vdot(224) = -A(279)-A(369)-A(370)-A(371)-A(372)-A(373)-A(479) IF (DO_FUN(225)) & - Vdot(225) = 0.068*A(431)+0.33*A(456)+0.19*A(458)-A(464)-A(465)-A(466)-A(467)-A(468)+0.032*A(590) + Vdot(225) = A(335)-A(338)-A(339)-A(340)-A(341)-A(342) IF (DO_FUN(226)) & - Vdot(226) = A(412)+0.5*A(414)+0.5*A(416)+0.55*A(422)+0.33*A(427)+0.19*A(429)+0.125*A(431)+0.125*A(438)+0.706*A(447)& - &+0.14*A(449)+0.054*A(534)+0.059*A(536)-A(554)+0.335*A(570)+0.429*A(592)+0.75*A(593)-A(876)+0.55*A(892)+0.5& - &*A(909) + Vdot(226) = 0.19*A(66)-A(91)-A(94)+0.35*A(95)+0.25*A(98)+0.271*A(133)+0.1*A(135)+0.44*A(326)+0.75*A(328)+1.125*A(329)& + &+A(330)+0.53*A(331)+0.53*A(332)+0.289*A(338)+0.41*A(343)+0.464*A(345)+0.34*A(349)+0.464*A(351)+0.464*A(353)& + &+0.149*A(355)+0.285*A(356)-A(759)+0.19*A(777)+A(839) IF (DO_FUN(227)) & - Vdot(227) = A(413)+0.5*A(414)+0.5*A(418)+0.55*A(426)+0.17*A(428)+0.09*A(430)+0.158*A(431)+0.165*A(439)+0.716*A(443)& - &+0.14*A(445)+0.004*A(534)+0.006*A(536)-A(555)+0.41*A(573)+0.5*A(589)+0.571*A(592)+0.25*A(593)-A(879)+0.55& - &*A(895)+0.5*A(901)+0.15*A(907)+0.5*A(909) + Vdot(227) = -A(289)+A(290)+A(292)-A(293)-A(294)+A(297)-A(298)+A(299)+A(303)-A(304)-A(305)-2*A(306)+0.008*A(307)-A(816)& + &+A(827) IF (DO_FUN(228)) & - Vdot(228) = A(35)+0.5*A(99)-A(120)-A(122)+A(123)+A(151)+A(337)+0.3*A(399)+0.3*A(400)+0.3*A(406)+0.3*A(408)+0.085& - &*A(427)+0.165*A(428)+0.355*A(431)+0.5*A(432)+0.018*A(440)+0.018*A(441)+0.52*A(461)+0.8*A(462)+0.545*A(548)& - &+0.88*A(551)+0.449*A(553)+0.187*A(564)+A(565)+A(567)+0.05*A(570)+0.242*A(571)+0.083*A(573)+0.14*A(577)+0.7& - &*A(588)+0.12*A(617)+0.2*A(618)+0.6*A(653)+0.6*A(654)+0.2*A(655)-A(733)-A(784)+0.5*A(875)+0.47*A(876)+0.571& - &*A(877)+0.125*A(878)+0.23*A(879)+0.088*A(902)+0.429*A(904)+A(908) + Vdot(228) = 0.294*A(404)+0.67*A(429)+0.81*A(431)-A(432)-A(433)-A(434)-A(435)-A(436)+0.08*A(563) IF (DO_FUN(229)) & - Vdot(229) = -A(503)-A(504)-A(505)+A(523)+0.33*A(524)+0.037*A(594) + Vdot(229) = 0.068*A(404)+0.33*A(429)+0.19*A(431)-A(437)-A(438)-A(439)-A(440)-A(441)+0.032*A(563) IF (DO_FUN(230)) & - Vdot(230) = 0.12*A(115)-A(338)-A(339)-A(340)-A(341)-A(342)-A(343)-A(344)+0.58*A(396)+0.5*A(548)+0.88*A(551)+A(604) + Vdot(230) = A(385)+0.5*A(387)+0.5*A(389)+0.55*A(395)+0.33*A(400)+0.19*A(402)+0.125*A(404)+0.125*A(411)+0.706*A(420)& + &+0.14*A(422)+0.054*A(507)+0.059*A(509)-A(527)+0.335*A(543)+0.429*A(565)+0.75*A(566)-A(856)+0.55*A(872)+0.5& + &*A(889) IF (DO_FUN(231)) & - Vdot(231) = -A(251)+A(669)+A(671)+A(672)-A(684)-A(685)-A(686)-A(687)-A(688)-A(689)-A(815) + Vdot(231) = A(386)+0.5*A(387)+0.5*A(391)+0.55*A(399)+0.17*A(401)+0.09*A(403)+0.158*A(404)+0.165*A(412)+0.716*A(416)& + &+0.14*A(418)+0.004*A(507)+0.006*A(509)-A(528)+0.41*A(546)+0.5*A(562)+0.571*A(565)+0.25*A(566)-A(859)+0.55& + &*A(875)+0.5*A(881)+0.15*A(887)+0.5*A(889) IF (DO_FUN(232)) & - Vdot(232) = -A(116)-A(117)+0.294*A(447)+0.135*A(449)+A(451)+0.65*A(453)+0.52*A(461)+0.8*A(462)+0.459*A(488)+0.728& - &*A(489)+0.551*A(497)+0.935*A(498)+0.242*A(503)+0.546*A(504)+0.34*A(534)+0.384*A(536)+0.11*A(545)+0.09& - &*A(546)+0.36*A(570)+0.758*A(571)+0.2*A(610)+A(612)+A(613)+A(615)+A(629)+0.9*A(651)+0.95*A(654)-A(780)+0.53& - &*A(876)+0.69*A(881)+0.5*A(900)+0.088*A(902)+0.25*A(903)+0.429*A(904)+0.3*A(906)+0.35*A(907)+A(908) + Vdot(232) = -A(476)-A(477)-A(478)+A(496)+0.33*A(497)+0.037*A(567) IF (DO_FUN(233)) & - Vdot(233) = A(63)-A(64)-A(65)+0.05*A(68)+0.07*A(82)-A(85)+0.03*A(97)-A(111)+0.03*A(113)-A(125)-A(127)+0.07*A(129)+0.36& - &*A(133)+0.05*A(144)+0.07*A(160)+A(185)+A(299)+0.07*A(776)+0.06*A(779)+0.05*A(797) + Vdot(233) = 0.3*A(33)+0.5*A(97)-A(116)-A(118)+A(119)+0.1*A(134)+A(310)+0.3*A(372)+0.3*A(373)+0.3*A(379)+0.3*A(381)& + &+0.085*A(400)+0.165*A(401)+0.355*A(404)+0.5*A(405)+0.018*A(413)+0.018*A(414)+0.52*A(434)+0.8*A(435)+0.545& + &*A(521)+0.88*A(524)+0.449*A(526)+0.187*A(537)+A(538)+A(540)+0.05*A(543)+0.242*A(544)+0.083*A(546)+0.14& + &*A(550)+0.7*A(561)+0.12*A(590)+0.2*A(591)+0.6*A(626)+0.6*A(627)+0.2*A(628)-A(713)-A(764)+0.5*A(855)+0.47& + &*A(856)+0.571*A(857)+0.125*A(858)+0.23*A(859)+0.118*A(882)+0.429*A(884)+A(888) IF (DO_FUN(234)) & - Vdot(234) = A(351)+A(352)-A(353)-A(354)-A(355)-A(356)-A(357) + Vdot(234) = 0.22*A(111)-A(311)-A(312)-A(313)-A(314)-A(315)-A(316)-A(317)+0.58*A(369)+0.5*A(521)+0.88*A(524)+A(577) IF (DO_FUN(235)) & - Vdot(235) = -A(61)+0.32*A(68)+0.5*A(82)-A(95)+0.16*A(97)-2*A(106)-2*A(108)-A(110)+0.22*A(113)+0.5*A(129)+0.36*A(132)& - &+0.32*A(144)-A(157)-A(159)+0.5*A(160)-A(294)+0.16*A(363)+0.5*A(776)+0.425*A(779)+0.32*A(797) + Vdot(235) = -A(230)+A(643)+A(645)+A(646)-A(658)-A(659)-A(660)-A(661)-A(662)-A(663)-A(795) IF (DO_FUN(236)) & - Vdot(236) = 0.4*A(485)+0.4*A(486)+0.07*A(509)+0.532*A(510)+0.861*A(511)+0.401*A(512)+0.034*A(513)+0.159*A(515)+0.159& - &*A(517)+0.159*A(520)+A(522)+A(531)-A(540)-A(541)+0.159*A(897)-A(899)+0.228*A(900) + Vdot(236) = -A(112)-A(113)+0.294*A(420)+0.135*A(422)+A(424)+0.65*A(426)+0.52*A(434)+0.8*A(435)+0.459*A(461)+0.728& + &*A(462)+0.551*A(470)+0.935*A(471)+0.242*A(476)+0.546*A(477)+0.34*A(507)+0.384*A(509)+0.11*A(518)+0.09& + &*A(519)+0.36*A(543)+0.758*A(544)+0.2*A(583)+A(585)+A(586)+A(588)+A(602)+0.9*A(624)+0.95*A(627)-A(760)+0.53& + &*A(856)+0.69*A(861)+0.5*A(880)+0.118*A(882)+0.25*A(883)+0.429*A(884)+0.3*A(886)+0.35*A(887)+A(888) IF (DO_FUN(237)) & - Vdot(237) = 0.6*A(486)+0.599*A(492)+A(493)+0.065*A(500)+0.142*A(501)+0.01*A(503)+0.028*A(504)+0.008*A(534)+0.015& - &*A(535)+0.014*A(536)+0.049*A(538)+0.161*A(541)-A(553)+A(560)+0.438*A(572)-A(738)-A(881)+0.05*A(906) + Vdot(237) = A(61)-A(62)-A(63)+0.05*A(66)+0.07*A(80)-A(83)+0.03*A(95)-A(107)+0.03*A(109)+0.36*A(123)+0.045*A(133)& + &-A(142)+0.07*A(143)+0.07*A(144)+A(169)+A(277)+0.07*A(756)+0.06*A(759)+0.05*A(777) IF (DO_FUN(238)) & - Vdot(238) = A(444)+A(448)+A(452)+0.482*A(488)+0.401*A(492)+0.418*A(497)+0.494*A(500)+0.621*A(503)+A(526)+A(527)+0.5& - &*A(533)+0.234*A(534)+0.387*A(535)+0.565*A(544)-A(594)-A(754)-A(906)-A(907) + Vdot(238) = A(324)+A(325)-A(326)-A(327)-A(328)-A(329)-A(330) IF (DO_FUN(239)) & - Vdot(239) = A(490)+A(494)+A(499)+A(502)+A(505)+A(519)+A(521)+A(537)+A(539)-A(544)+0.18*A(546)-A(752)-A(900) + Vdot(239) = -A(59)+0.34*A(66)+0.49*A(80)-A(93)+0.16*A(95)-2*A(104)-A(106)+0.22*A(109)+0.36*A(122)+0.29*A(133)-A(140)& + &+0.49*A(143)+0.49*A(144)-A(272)+0.16*A(336)+0.49*A(756)+0.415*A(759)+0.34*A(777) IF (DO_FUN(240)) & - Vdot(240) = 0.465*A(506)-A(507)-2*A(509)-A(510)-A(513)-A(514)-A(516)-A(518)-A(519)+A(529) + Vdot(240) = 0.4*A(458)+0.4*A(459)+0.07*A(482)+0.532*A(483)+0.862*A(484)+0.401*A(485)+0.034*A(486)+0.159*A(488)+0.159& + &*A(490)+0.159*A(493)+A(495)+A(504)-A(513)-A(514)+0.159*A(877)-A(879)+0.223*A(880) IF (DO_FUN(241)) & - Vdot(241) = 0.535*A(506)-A(508)-A(510)-2*A(511)-A(512)-A(515)-A(517)-A(520)-A(521)+A(530) + Vdot(241) = 0.6*A(459)+0.599*A(465)+A(466)+0.065*A(473)+0.142*A(474)+0.01*A(476)+0.028*A(477)+0.008*A(507)+0.015& + &*A(508)+0.014*A(509)+0.049*A(511)+0.161*A(514)-A(526)+A(533)+A(545)-A(718)-A(861)+0.05*A(886) IF (DO_FUN(242)) & - Vdot(242) = 0.5*A(301)+A(397)-A(401)-A(402)-A(405)-A(406)-2*A(409)-A(411)-2*A(412)-A(414)-A(415)-A(416)-A(419)-A(420)& - &-A(421)-A(422)+0.75*A(438)+0.03*A(440)+0.841*A(898) + Vdot(242) = A(417)+A(421)+A(425)+0.482*A(461)+0.401*A(465)+0.418*A(470)+0.494*A(473)+0.621*A(476)+A(499)+A(500)+0.5& + &*A(506)+0.234*A(507)+0.387*A(508)+0.565*A(517)-A(567)-A(734)-A(886)-A(887) IF (DO_FUN(243)) & - Vdot(243) = 0.5*A(301)+A(398)-A(403)-A(404)-A(407)-A(408)-2*A(410)-A(411)-2*A(413)-A(414)-A(417)-A(418)-A(423)-A(424)& - &-A(425)-A(426)+0.51*A(439)+0.03*A(441)+0.159*A(898) + Vdot(243) = A(463)+A(467)+A(472)+A(475)+A(478)+A(492)+A(494)+A(510)+A(512)-A(517)+0.18*A(519)-A(732)-A(880) IF (DO_FUN(244)) & - Vdot(244) = 0.177*A(396)+0.063*A(401)+A(405)+2*A(409)+A(411)+A(415)+A(420)+0.035*A(427)+0.23*A(429)+0.125*A(438)& - &+A(473)+A(474)+0.479*A(507)+1.737*A(509)+0.544*A(510)+0.583*A(513)+0.903*A(514)+0.903*A(516)+0.904*A(518)& - &-A(547)-A(548)+0.04*A(617)+0.04*A(618)-A(785)-A(786)-A(787)+A(884)+A(890)+A(893)+0.903*A(896)+0.05*A(900) + Vdot(244) = 0.5*A(279)+A(371)-A(376)-A(377)-A(380)-A(381)-2*A(383)-A(384)-2*A(386)-A(387)-A(390)-A(391)-A(396)-A(397)& + &-A(398)-A(399)+0.51*A(412)+0.03*A(414)+0.159*A(878) IF (DO_FUN(245)) & - Vdot(245) = A(556)-A(581)-A(582)-A(583)-A(584)-A(585) + Vdot(245) = 0.5*A(279)+A(370)-A(374)-A(375)-A(378)-A(379)-2*A(382)-A(384)-2*A(385)-A(387)-A(388)-A(389)-A(392)-A(393)& + &-A(394)-A(395)+0.75*A(411)+0.03*A(413)+0.841*A(878) IF (DO_FUN(246)) & - Vdot(246) = 0.16*A(86)+0.2*A(99)-A(123)-A(124)+0.65*A(128)+0.791*A(137)+0.058*A(365)+A(391)+0.5*A(432)+0.284*A(443)& - &+0.135*A(445)+A(451)+0.65*A(453)+0.8*A(466)+0.52*A(468)+0.52*A(469)+0.8*A(471)+A(472)+0.459*A(488)+0.728& - &*A(489)+0.441*A(500)+0.858*A(501)+0.033*A(503)+0.071*A(504)+0.042*A(534)+0.051*A(536)+0.77*A(555)+0.84& - &*A(569)+0.507*A(573)+0.488*A(575)+A(576)+0.86*A(577)+0.5*A(581)+A(582)+A(584)+0.7*A(585)+0.25*A(587)-A(789)& - &+A(861)+0.77*A(879)+A(882)+0.5*A(900)+0.438*A(902)+0.25*A(903)+0.571*A(904)+0.45*A(906)+0.8*A(907) + Vdot(246) = 0.535*A(479)-A(481)-A(483)-2*A(484)-A(485)-A(488)-A(490)-A(493)-A(494)+A(503) IF (DO_FUN(247)) & - Vdot(247) = 0.79*A(363)+0.308*A(367)+0.308*A(368)+0.615*A(369)+0.416*A(396)+0.063*A(403)+A(407)+2*A(410)+A(411)+A(417)& - &+A(424)+0.035*A(428)+0.14*A(430)+0.165*A(439)+A(475)+A(476)+0.048*A(507)+0.123*A(509)+0.019*A(510)+0.028& - &*A(513)+0.097*A(514)+0.097*A(516)+0.096*A(518)-A(549)-A(550)-A(551)-A(552)-A(788)+A(885)+A(891)+A(894)& - &+0.097*A(896)+0.005*A(900) + Vdot(247) = 0.465*A(479)-A(480)-2*A(482)-A(483)-A(486)-A(487)-A(489)-A(491)-A(492)+A(502) IF (DO_FUN(248)) & - Vdot(248) = A(34)-A(71)+A(84)-A(89)-A(99)-A(145)-A(151)+A(183)+A(300) + Vdot(248) = 0.177*A(369)+0.063*A(374)+A(378)+2*A(382)+A(384)+A(388)+A(393)+0.035*A(400)+0.23*A(402)+0.125*A(411)& + &+A(446)+A(447)+0.479*A(480)+1.737*A(482)+0.544*A(483)+0.583*A(486)+0.903*A(487)+0.903*A(489)+0.904*A(491)& + &-A(520)-A(521)+0.04*A(590)+0.04*A(591)-A(765)-A(766)-A(767)+A(864)+A(870)+A(873)+0.903*A(876)+0.05*A(880) IF (DO_FUN(249)) & - Vdot(249) = -A(72)-A(90)+A(93)+A(96)-A(100)-A(146)-A(152)+0.62*A(358)+0.62*A(359)+0.42*A(363) + Vdot(249) = A(529)-A(554)-A(555)-A(556)-A(557)-A(558) IF (DO_FUN(250)) & - Vdot(250) = A(79)-A(80)+A(81)-A(82)+A(83)-A(113)-A(129)-A(130)+A(136)-A(160)+0.33*A(650)+0.33*A(653)+0.15*A(779)& - &+A(787) + Vdot(250) = 0.16*A(84)+0.2*A(97)-A(119)-A(120)+0.791*A(127)+0.065*A(141)+0.058*A(338)+A(364)+0.5*A(405)+0.284*A(416)& + &+0.135*A(418)+A(424)+0.65*A(426)+0.8*A(439)+0.52*A(441)+0.52*A(442)+0.8*A(444)+A(445)+0.459*A(461)+0.728& + &*A(462)+0.441*A(473)+0.858*A(474)+0.033*A(476)+0.071*A(477)+0.042*A(507)+0.051*A(509)+0.77*A(528)+0.84& + &*A(542)+0.507*A(546)+0.488*A(548)+A(549)+0.86*A(550)+0.5*A(554)+A(555)+A(557)+0.7*A(558)+0.25*A(560)-A(769)& + &+A(841)+0.77*A(859)+A(862)+0.5*A(880)+0.586*A(882)+0.25*A(883)+0.571*A(884)+0.45*A(886)+0.8*A(887) IF (DO_FUN(251)) & - Vdot(251) = -A(70)+A(77)-A(88)-A(98)-A(148)-A(153)+0.5*A(646)+0.5*A(647) + Vdot(251) = 0.79*A(336)+0.308*A(340)+0.308*A(341)+0.615*A(342)+0.416*A(369)+0.063*A(376)+A(380)+2*A(383)+A(384)+A(390)& + &+A(397)+0.035*A(401)+0.14*A(403)+0.165*A(412)+A(448)+A(449)+0.048*A(480)+0.123*A(482)+0.019*A(483)+0.028& + &*A(486)+0.097*A(487)+0.097*A(489)+0.096*A(491)-A(522)-A(523)-A(524)-A(525)-A(768)+A(865)+A(871)+A(874)& + &+0.097*A(876)+0.005*A(880) IF (DO_FUN(252)) & - Vdot(252) = A(67)-A(68)-A(69)+A(76)-A(87)-A(97)+0.15*A(98)+0.209*A(135)-A(144)+0.3*A(148)-A(150)+A(302)+0.44*A(370)& - &+0.2*A(655) + Vdot(252) = 0.7*A(33)-A(69)+A(82)-A(87)-A(97)-A(134)+A(167)+A(278) IF (DO_FUN(253)) & - Vdot(253) = A(62)+0.18*A(68)-A(73)-A(74)+0.27*A(82)-A(91)+0.09*A(97)-A(101)+0.12*A(113)+0.27*A(129)+0.209*A(134)+0.18& - &*A(144)-A(147)-A(155)+0.27*A(160)+A(298)+0.27*A(776)+0.23*A(779)+0.18*A(797) + Vdot(253) = -A(110)-A(111)-A(114)-A(281)-A(282)+0.46*A(336)+0.289*A(338)+0.192*A(340)+0.192*A(341)+0.385*A(342)+A(765) IF (DO_FUN(254)) & - Vdot(254) = -A(114)-A(115)-A(118)-A(303)-A(304)+0.46*A(363)+0.289*A(365)+0.192*A(367)+0.192*A(368)+0.385*A(369)+A(785) + Vdot(254) = -A(70)-A(88)+A(91)+A(94)-A(98)-A(135)+0.62*A(331)+0.62*A(332)+0.42*A(336) IF (DO_FUN(255)) & - Vdot(255) = A(64)+0.14*A(68)+0.57*A(70)-A(79)-A(83)+0.75*A(85)+0.09*A(86)+0.07*A(97)+0.54*A(98)+0.25*A(102)+A(104)& - &+A(125)+A(127)+0.35*A(128)+0.64*A(133)+0.791*A(135)+0.13*A(144)+0.57*A(148)+A(153)+A(154)+0.43*A(353)+0.75& - &*A(355)+A(356)+A(357)+0.65*A(358)+0.65*A(359)+0.491*A(365)+0.08*A(370)+1.24*A(372)+0.93*A(376)+1.24*A(378)& - &+1.24*A(380)+0.64*A(382)+1.21*A(383)+A(395)+1.2*A(652)+1.2*A(655)-A(776)+A(790)+A(792)+A(794)+0.13*A(797)& - &+A(857)+A(860)+A(869) + Vdot(255) = A(77)-A(78)+A(79)-A(80)+A(81)-A(109)+A(126)-A(143)-A(144)+0.33*A(623)+0.33*A(626)+0.15*A(759)+A(767) IF (DO_FUN(256)) & - Vdot(256) = A(169)+A(176)-A(177)+A(675)-A(695)-A(696)-A(697)-A(698)-A(699)-A(700)-A(701)+A(702)+A(703)+A(704)-A(801) + Vdot(256) = A(65)-A(66)-A(67)+A(74)-A(85)-A(95)+0.15*A(96)+0.21*A(125)-A(133)+0.27*A(137)+A(280)+0.44*A(343)+0.2& + &*A(628) IF (DO_FUN(257)) & - Vdot(257) = 0.95*A(53)+A(54)-A(55)+A(56)-A(57)+A(71)+0.93*A(72)+0.15*A(89)+0.15*A(90)+0.3*A(99)+0.5*A(100)+A(120)& - &+A(122)-A(125)-A(126)-A(127)-A(128)+A(139)-2*A(141)-A(142)-A(143)-A(144)-A(147)-A(148)-A(149)-A(150)-A(151)& - &-A(152)-A(153)-A(154)-A(155)-A(156)-A(157)-A(158)-A(159)-A(160)+A(182)-A(356)-A(368)-A(377)-A(378)+0.3& - &*A(399)+0.3*A(406)+0.018*A(440)-A(514)-A(515)+0.38*A(548)+0.12*A(551)+0.04*A(553)+0.097*A(564)+A(568)+0.36& - &*A(570)+0.758*A(571)+0.175*A(574)+0.087*A(575)+0.35*A(579)+0.3*A(588)+A(595)+A(596)-A(598)-A(623)+0.12& - &*A(773)+0.7*A(775)+A(777)+0.85*A(779)+A(784)+A(786)+A(788)+A(789)+A(852)+A(872)+A(873)+A(874)+0.5*A(875)& - &+0.53*A(876)+0.429*A(877)+0.125*A(878)+0.262*A(880)+1.01*A(881) + Vdot(257) = -A(68)+A(75)-A(86)-A(96)-A(137)+0.5*A(619)+0.5*A(620) IF (DO_FUN(258)) & - Vdot(258) = -A(24)+A(36)+A(52)+0.05*A(53)+0.56*A(115)+0.505*A(116)+A(117)+2*A(119)+A(120)+2*A(121)+A(122)+0.5*A(124)& - &+A(181)+A(207)+A(223)+A(262)+A(286)+A(287)+A(288)-A(338)-A(345)+0.14*A(358)+0.14*A(359)+0.14*A(363)+0.407& - &*A(396)+0.6*A(399)+0.9*A(400)+0.6*A(406)+0.9*A(408)+A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.55*A(422)& - &+0.55*A(426)+0.45*A(427)+0.37*A(428)+0.42*A(429)+0.23*A(430)+0.638*A(431)+1.5*A(432)+A(433)+0.25*A(438)& - &+0.33*A(439)+0.036*A(440)+0.054*A(441)+A(460)+0.13*A(461)+0.2*A(462)+A(465)+0.2*A(466)+0.13*A(468)+0.52& - &*A(469)+0.8*A(471)+2*A(472)+0.6*A(485)+0.6*A(486)+0.539*A(541)+0.33*A(542)+0.33*A(543)+0.18*A(548)+0.036& - &*A(549)+0.12*A(551)+0.68*A(552)+0.77*A(555)+0.25*A(557)+0.75*A(564)+A(565)+2*A(568)+0.84*A(569)+0.507& - &*A(573)+0.325*A(574)+0.488*A(575)+A(576)+0.86*A(577)+0.65*A(579)+0.25*A(587)+A(589)+0.888*A(590)+A(593)& - &+A(599)+0.364*A(606)+0.2*A(616)+0.27*A(617)+0.3*A(618)+0.25*A(650)+0.5*A(651)+0.25*A(653)+0.5*A(654)+A(764)& - &+A(765)+0.88*A(773)+A(774)+A(776)+A(778)+A(780)+2*A(781)+2*A(782)+A(783)+A(784)+A(785)+A(786)+A(788)+A(854)& - &+A(858)+A(871)+A(874)+0.5*A(875)+0.571*A(877)+0.875*A(878)+0.77*A(879)+A(882)+A(883)+0.888*A(888)+0.818& - &*A(889)+A(890)+A(891)+0.55*A(892)+0.55*A(895)+0.839*A(899)+A(901)+0.122*A(902)+A(905)+A(909)+A(911)+A(914) + Vdot(258) = A(60)+0.19*A(66)-A(71)-A(72)+0.27*A(80)-A(89)+0.09*A(95)-A(99)+0.12*A(109)+0.209*A(124)+0.162*A(133)& + &-A(136)+0.27*A(143)+0.27*A(144)+A(276)+0.27*A(756)+0.23*A(759)+0.19*A(777) IF (DO_FUN(259)) & - Vdot(259) = -A(252)+A(271)-A(284)-A(285)-A(677)-A(678)-A(679)-A(680)-A(681)-A(682)-A(683)-A(816)-A(817) + Vdot(259) = A(62)+0.15*A(66)+0.64*A(68)-A(77)-A(81)+0.75*A(83)+0.09*A(84)+0.13*A(95)+0.58*A(96)+0.25*A(100)+A(102)& + &+0.64*A(123)+1.185*A(125)+0.255*A(133)+0.613*A(137)+0.1*A(138)+0.035*A(141)+A(142)+0.43*A(326)+0.75*A(328)& + &+A(329)+A(330)+0.65*A(331)+0.65*A(332)+0.491*A(338)+0.08*A(343)+1.24*A(345)+0.93*A(349)+1.24*A(351)+1.24& + &*A(353)+0.64*A(355)+1.21*A(356)+A(368)+1.2*A(625)+1.15*A(628)-A(756)+A(770)+A(772)+1.5*A(774)+0.15*A(777)& + &+A(837)+A(840)+A(849) IF (DO_FUN(260)) & - Vdot(260) = -A(3)-A(6)+A(37)-A(38)+A(52)+A(54)+A(76)+A(83)+A(96)+A(121)+A(122)+A(140)+A(166)+A(389)+A(390)+0.32*A(552)& - &+A(595)+0.742*A(625)+0.5*A(627)+0.5*A(630)+A(632)+0.5*A(647)+0.5*A(664)+A(665)+2*A(668)+A(669)+2*A(670)& - &+A(671)+A(672)+A(675)+A(676)+A(677)+A(678)+A(679)+A(680)+A(681)+A(682)+A(683)+A(719)+A(724)+A(725)+A(726)& - &+A(727)-A(766) + Vdot(260) = A(153)+A(160)-A(161)+A(649)-A(669)-A(670)-A(671)-A(672)-A(673)-A(674)-A(675)+A(676)+A(677)+A(678)-A(781) IF (DO_FUN(261)) & - Vdot(261) = -A(53)-A(54)+A(59)+A(61)+A(66)+0.32*A(68)+0.86*A(70)+0.93*A(72)+A(75)+0.5*A(86)+0.15*A(90)+0.75*A(94)+0.75& - &*A(95)+0.16*A(97)+0.38*A(98)+0.5*A(100)+0.5*A(102)+A(103)+2*A(105)+2*A(106)+A(107)+A(108)+0.5*A(115)+A(126)& - &+0.64*A(132)+0.32*A(144)+A(146)+0.75*A(148)+A(149)+A(156)+A(157)+A(158)+A(159)-A(182)+A(293)+A(294)+A(296)& - &+A(345)+A(346)+A(347)+A(348)+A(349)+A(393)-A(773)-A(774)+A(791)+A(795)+A(796)+0.32*A(797)+A(867) + Vdot(261) = 0.95*A(51)+A(52)-A(53)+A(54)-A(55)+A(69)+0.919*A(70)+0.15*A(87)+0.15*A(88)+0.3*A(97)+0.5*A(98)+A(116)& + &+A(118)+0.78*A(129)-2*A(131)-A(132)-A(133)-0.1*A(134)-0.1*A(135)-A(136)-A(137)-A(138)-A(139)-A(140)-A(141)& + &-A(142)-A(143)+A(166)-A(329)-A(341)-A(350)-A(351)+0.3*A(372)+0.3*A(379)+0.018*A(413)-A(487)-A(488)+0.38& + &*A(521)+0.12*A(524)+0.04*A(526)+0.097*A(537)+A(541)+0.36*A(543)+0.758*A(544)+0.175*A(547)+0.087*A(548)+0.35& + &*A(552)+0.3*A(561)+A(568)+A(569)-A(571)-A(596)+0.12*A(753)+0.7*A(755)+A(757)+0.85*A(759)+A(764)+A(766)& + &+A(768)+A(769)+A(832)+A(852)+A(853)+A(854)+0.5*A(855)+0.53*A(856)+0.429*A(857)+0.125*A(858)+0.262*A(860)& + &+1.01*A(861) IF (DO_FUN(262)) & - Vdot(262) = -A(10)+A(11)+A(12)+A(17)+A(26)+A(29)+2*A(30)+0.87*A(31)+A(33)-A(36)+A(50)-A(52)+0.05*A(53)+A(66)+0.57& - &*A(70)+A(71)+A(75)+0.75*A(85)+1.25*A(86)+0.15*A(89)+0.75*A(94)+0.75*A(95)+0.75*A(97)+0.95*A(98)+0.5*A(99)& - &+0.75*A(100)+0.75*A(101)+1.25*A(102)+0.5*A(115)+0.732*A(116)+A(126)+A(129)+A(130)+A(142)+A(143)+A(145)+0.39& - &*A(148)+A(149)+A(164)+A(166)-A(181)+A(198)+A(199)-A(223)+A(244)-A(262)+A(290)+A(295)+A(336)+A(338)+A(339)& - &+A(340)+0.06*A(341)+0.06*A(342)+A(343)+A(344)+0.23*A(353)+0.75*A(355)+0.04*A(363)+0.231*A(365)+1.04*A(367)& - &+0.385*A(368)+0.385*A(369)+0.287*A(372)+A(375)+0.965*A(376)+0.287*A(378)+0.287*A(380)+0.202*A(382)+0.504& - &*A(383)+A(392)+0.827*A(396)+0.3*A(399)+0.3*A(400)+0.063*A(401)+0.063*A(403)+A(405)+0.3*A(406)+A(407)+0.3& - &*A(408)+2*A(409)+2*A(410)+2*A(411)+2*A(415)+A(416)+2*A(417)+A(418)+A(420)+A(424)+0.085*A(427)+0.165*A(428)& - &+0.5*A(432)+0.018*A(440)+0.018*A(441)+0.716*A(443)+0.14*A(445)+0.706*A(447)+0.14*A(449)+0.65*A(469)+A(471)& - &+0.059*A(488)+0.272*A(489)+0.599*A(492)+A(493)+0.031*A(497)+0.065*A(498)+0.065*A(500)+0.142*A(501)+0.104& - &*A(503)+0.383*A(504)+0.527*A(507)+1.86*A(509)+0.563*A(510)+0.645*A(512)+1.577*A(513)+A(514)+A(516)+A(518)& - &+0.126*A(534)+0.088*A(535)+0.249*A(536)+0.34*A(538)+0.6*A(548)+0.12*A(551)+0.241*A(553)+0.05*A(570)+0.242& - &*A(571)+0.083*A(573)+0.5*A(574)+0.25*A(575)+0.14*A(577)+A(579)+A(585)+0.022*A(594)+0.5*A(597)+A(599)+A(604)& - &+0.8*A(610)+2*A(611)+A(622)+A(648)+A(649)+A(662)+A(763)-A(764)-A(765)+0.9*A(780)+A(783)+A(786)+A(788)& - &+A(789)+A(795)+A(850)+A(852)+A(858)+A(866)+A(870)+A(871)+A(873)+A(874)+0.47*A(876)+0.23*A(879)+0.75*A(880)& - &+A(884)+A(885)+A(893)+A(894)+A(896)+0.055*A(900)+0.1*A(902)+0.55*A(906)+0.15*A(907) + Vdot(262) = -A(231)+A(250)-A(262)-A(263)-A(651)-A(652)-A(653)-A(654)-A(655)-A(656)-A(657)-A(796)-A(797) IF (DO_FUN(263)) & - Vdot(263) = -A(17)+A(25)-A(26)-A(27)-A(28)-2*A(29)-2*A(30)-A(31)+A(32)+A(57)+0.19*A(68)+A(78)-A(85)-A(86)-A(94)-A(95)& - &-0.91*A(97)-A(98)-A(99)-A(100)-A(101)-A(102)+0.28*A(115)+0.5*A(124)+A(125)+A(126)-A(129)-A(130)+2*A(141)& - &-A(143)+A(144)+A(145)+A(146)+A(147)+A(148)+A(149)+A(156)+A(157)+A(160)-A(162)+A(163)+A(164)+A(165)+A(166)& - &+A(197)+A(228)-A(244)+A(261)-A(290)+A(291)+A(297)+A(335)-A(355)+0.5*A(356)-A(367)+0.5*A(368)-A(375)-A(376)& - &+A(377)+0.5*A(378)+0.407*A(396)-A(415)-A(416)-A(417)-A(418)-A(512)-A(513)+A(514)+A(515)+0.325*A(574)+0.162& - &*A(575)+0.65*A(579)-A(585)+0.5*A(598)-A(610)-A(622)+A(623)-A(648)-A(649)-A(662)+0.88*A(773)+0.3*A(775)& - &+A(777)+2*A(778)+0.15*A(779)+A(787)+0.18*A(797)+A(798)+A(807)+A(808)+A(851)+0.488*A(880) + Vdot(263) = -A(10)+A(11)+A(12)+A(17)+A(26)+A(29)+2*A(30)+0.87*A(31)+0.3*A(32)-A(34)+A(48)-A(50)+0.05*A(51)+A(64)+0.64& + &*A(68)+A(69)+A(73)+0.75*A(83)+1.25*A(84)+0.15*A(87)+0.75*A(92)+0.75*A(93)+0.75*A(95)+0.95*A(96)+0.5*A(97)& + &+0.75*A(98)+0.75*A(99)+1.25*A(100)+0.5*A(111)+0.732*A(112)+0.22*A(129)+A(132)+0.9*A(134)+0.351*A(137)+0.9& + &*A(138)+0.9*A(141)+A(144)+A(148)+A(150)-A(165)+0.25*A(180)-A(201)+A(223)-A(241)+A(268)+A(273)+A(309)+A(311)& + &+A(312)+A(313)+0.06*A(314)+0.06*A(315)+A(316)+A(317)+0.23*A(326)+0.75*A(328)+0.04*A(336)+0.231*A(338)+1.04& + &*A(340)+0.385*A(341)+0.385*A(342)+0.287*A(345)+A(348)+0.85*A(349)+0.287*A(351)+0.287*A(353)+0.202*A(355)& + &+0.504*A(356)+A(365)+0.827*A(369)+0.3*A(372)+0.3*A(373)+0.063*A(374)+0.063*A(376)+A(378)+0.3*A(379)+A(380)& + &+0.3*A(381)+2*A(382)+2*A(383)+2*A(384)+2*A(388)+A(389)+2*A(390)+A(391)+A(393)+A(397)+0.085*A(400)+0.165& + &*A(401)+0.5*A(405)+0.018*A(413)+0.018*A(414)+0.716*A(416)+0.14*A(418)+0.706*A(420)+0.14*A(422)+0.65*A(442)& + &+A(444)+0.059*A(461)+0.272*A(462)+0.599*A(465)+A(466)+0.031*A(470)+0.065*A(471)+0.065*A(473)+0.142*A(474)& + &+0.104*A(476)+0.383*A(477)+0.527*A(480)+1.86*A(482)+0.563*A(483)+0.645*A(485)+1.577*A(486)+A(487)+A(489)& + &+A(491)+0.126*A(507)+0.088*A(508)+0.249*A(509)+0.34*A(511)+0.6*A(521)+0.12*A(524)+0.241*A(526)+0.05*A(543)& + &+0.242*A(544)+0.083*A(546)+0.5*A(547)+0.25*A(548)+0.14*A(550)+A(552)+A(558)+0.022*A(567)+0.5*A(570)+A(572)& + &+A(577)+0.8*A(583)+2*A(584)+A(595)+A(621)+A(622)+A(635)+A(743)-A(744)-A(745)+0.9*A(760)+A(763)+A(766)& + &+A(768)+A(769)+A(775)+A(830)+A(832)+A(838)+A(846)+A(850)+A(851)+A(853)+A(854)+0.47*A(856)+0.23*A(859)+0.75& + &*A(860)+A(864)+A(865)+A(873)+A(874)+A(876)+0.055*A(880)+0.133*A(882)+0.55*A(886)+0.15*A(887) IF (DO_FUN(264)) & - Vdot(264) = A(326)-A(328)+A(329)+A(719)-A(728)-A(729)-A(730)-A(731)-A(835) + Vdot(264) = -A(51)-A(52)+A(57)+A(59)+A(64)+0.34*A(66)+0.97*A(68)+0.919*A(70)+A(73)+0.5*A(84)+0.15*A(88)+0.75*A(92)& + &+0.75*A(93)+0.16*A(95)+0.38*A(96)+0.5*A(98)+0.5*A(100)+A(101)+1.6*A(103)+1.6*A(104)+0.5*A(111)+0.64*A(122)& + &+0.29*A(133)+0.9*A(135)+0.675*A(137)+0.9*A(138)+A(139)+A(140)+0.9*A(141)-A(166)+A(271)+A(272)+A(274)+A(318)& + &+A(319)+A(320)+A(321)+A(322)+A(366)-A(753)-A(754)+A(771)+A(775)+A(776)+0.34*A(777)+A(847) IF (DO_FUN(265)) & - Vdot(265) = -A(305)-A(307)+A(308)+A(310)-A(313)-A(314)+A(315)+A(321)+A(322)-A(324)-A(325)+A(326)+A(327)+A(330)+A(331)& - &+A(334)+A(335)+2*A(834)+A(835)+A(836)+A(837)+A(838)+A(839)+A(840)+A(841)+A(842)+2*A(843)+A(844)+A(845)& - &+A(848)+A(849) + Vdot(265) = -A(3)-A(6)+A(35)-A(36)+A(50)+A(52)+A(74)+A(81)+A(94)+A(117)+A(118)+A(130)+A(150)+A(362)+A(363)+0.32*A(525)& + &+A(568)+0.742*A(598)+0.5*A(600)+0.5*A(603)+A(605)+0.5*A(620)+0.5*A(638)+A(639)+2*A(642)+A(643)+2*A(644)& + &+A(645)+A(646)+A(649)+A(650)+A(651)+A(652)+A(653)+A(654)+A(655)+A(656)+A(657)+A(697)+A(698)+A(699)+A(704)& + &+A(705)+A(706)+A(707)-A(746) IF (DO_FUN(266)) & - Vdot(266) = A(310)+A(311)-A(312)-A(313)-A(719)-A(724)-A(725)-A(726)-A(727)-A(840) + Vdot(266) = -A(17)+A(25)-A(26)-A(27)-A(28)-2*A(29)-2*A(30)-A(31)+0.7*A(32)+A(55)+0.19*A(66)+A(76)-A(83)-A(84)+0.85& + &*A(88)-A(92)-A(93)-0.91*A(95)-A(96)-A(97)-0.75*A(98)-A(99)-A(100)+0.28*A(111)+0.5*A(120)+2*A(131)-0.1& + &*A(132)+0.9*A(133)+0.9*A(134)+0.9*A(135)+0.9*A(136)+0.9*A(137)+0.9*A(138)+0.9*A(139)+0.9*A(140)+0.9*A(141)& + &+0.9*A(142)+A(143)-A(144)-A(146)+A(147)+A(148)+A(149)+A(150)+0.75*A(180)+0.9*A(206)+A(207)-A(223)+A(240)& + &-A(268)+A(269)+A(275)+A(308)-A(328)+0.5*A(329)-A(340)+0.5*A(341)-A(348)-A(349)+A(350)+0.5*A(351)+0.407& + &*A(369)-A(388)-A(389)-A(390)-A(391)-A(485)-A(486)+A(487)+A(488)+0.325*A(547)+0.162*A(548)+0.65*A(552)& + &-A(558)+0.5*A(571)-A(583)-A(595)+A(596)-A(621)-A(622)-A(635)+0.88*A(753)+0.3*A(755)+A(757)+2*A(758)+0.15& + &*A(759)+A(767)+A(776)+0.19*A(777)+A(778)+A(787)+A(788)+A(831)+0.488*A(860) IF (DO_FUN(267)) & - Vdot(267) = A(243)+A(247)+A(248)-A(250)+A(251)+A(252)+A(269)+A(677)-A(690)-A(691)-A(692)-A(693)-A(694)-A(818) + Vdot(267) = -A(24)+A(34)+A(50)+0.05*A(51)+0.56*A(111)+0.505*A(112)+A(113)+2*A(115)+A(116)+2*A(117)+A(118)+0.5*A(120)& + &+A(165)+A(187)+A(201)+A(241)+A(264)+A(265)+A(266)-A(311)-A(318)+0.14*A(331)+0.14*A(332)+0.14*A(336)+0.407& + &*A(369)+0.6*A(372)+0.9*A(373)+0.6*A(379)+0.9*A(381)+A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)+0.55*A(395)& + &+0.55*A(399)+0.45*A(400)+0.37*A(401)+0.42*A(402)+0.23*A(403)+0.638*A(404)+1.5*A(405)+A(406)+0.25*A(411)& + &+0.33*A(412)+0.036*A(413)+0.054*A(414)+A(433)+0.13*A(434)+0.2*A(435)+A(438)+0.2*A(439)+0.13*A(441)+0.52& + &*A(442)+0.8*A(444)+2*A(445)+0.6*A(458)+0.6*A(459)+0.539*A(514)+0.33*A(515)+0.33*A(516)+0.28*A(521)+0.036& + &*A(522)+0.12*A(524)+0.68*A(525)+0.77*A(528)+0.25*A(530)+0.75*A(537)+A(538)+A(540)+2*A(541)+0.84*A(542)& + &+0.507*A(546)+0.325*A(547)+0.488*A(548)+A(549)+0.86*A(550)+0.65*A(552)+0.25*A(560)+A(561)+A(562)+0.888& + &*A(563)+A(566)+A(572)+0.364*A(579)+0.2*A(589)+0.27*A(590)+0.3*A(591)+0.15*A(619)+0.15*A(620)+0.26*A(623)& + &+0.5*A(624)+0.25*A(626)+0.5*A(627)+0.05*A(628)+A(744)+A(745)+0.88*A(753)+A(754)+A(756)+A(758)+A(760)+2& + &*A(761)+2*A(762)+A(763)+A(764)+A(765)+A(766)+A(768)+A(834)+A(838)+A(851)+A(854)+0.5*A(855)+0.571*A(857)& + &+0.875*A(858)+0.77*A(859)+A(862)+A(863)+0.888*A(868)+0.818*A(869)+A(870)+A(871)+0.55*A(872)+0.55*A(875)& + &+0.839*A(879)+A(881)+0.163*A(882)+A(885)+A(889)+A(891)+A(894) IF (DO_FUN(268)) & - Vdot(268) = -A(191)-A(192)-A(193)-A(194)-A(195)-A(196)-A(197)-A(198)-A(199)-A(205)-A(206)-A(224)-A(225)-A(226)-A(227)& - &-A(228)-A(229)-A(230)-A(231)-A(232)-A(233)-A(234)-A(235)-A(236)-A(237)-A(238)-A(239)-A(240)-A(241)-A(242)& - &+A(759)+A(853) + Vdot(268) = A(301)-A(303)+A(304)-A(684)-A(685)+A(699)-A(708)-A(709)-A(710)-A(711)-A(815) IF (DO_FUN(269)) & - Vdot(269) = -A(12)-A(14)+A(15)-2*A(18)-2*A(19)-A(20)-A(21)+A(22)-A(24)-A(25)-A(31)-A(32)-A(34)-A(36)-A(37)-A(38)-A(39)& - &-A(40)-A(43)+A(44)-A(46)-A(49)-A(50)-A(53)-A(58)-A(62)-A(63)-A(67)-A(77)-A(78)-A(79)-A(84)+0.15*A(89)+0.15& - &*A(90)-A(93)-A(103)-A(104)+0.44*A(113)-A(114)+0.36*A(115)-0.773*A(116)-A(119)-A(120)-A(123)-0.209*A(131)& - &-0.36*A(132)-0.36*A(133)-0.209*A(134)-0.209*A(135)-A(136)-0.209*A(137)-A(139)-A(164)-A(165)-A(167)-A(171)& - &-A(176)+A(177)+A(178)-A(179)-A(188)-A(189)-A(190)+2*A(191)+A(194)+A(197)-A(202)-A(203)+A(204)-A(208)+A(213)& - &+A(215)+2*A(216)+A(223)+0.67*A(224)+0.65*A(225)-A(243)-A(245)-A(246)-A(247)-A(248)-A(249)-A(250)-A(251)& - &-A(252)-A(253)-A(254)-A(255)-A(256)-A(257)-A(258)-A(259)-A(260)+A(267)-A(326)-A(327)-A(328)-A(335)-A(336)& - &-A(337)-A(351)-A(352)+0.85*A(358)+0.85*A(359)-A(362)+0.85*A(363)-0.51*A(370)-A(384)-A(385)-A(391)-A(392)& - &-A(393)-A(394)-A(395)+0.28*A(396)-A(397)-A(398)+0.5*A(399)+0.5*A(400)+0.063*A(401)+0.063*A(403)+A(405)+1.5& - &*A(406)+A(407)+1.5*A(408)+A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.55*A(422)+0.55*A(426)+0.085*A(427)& - &+0.165*A(428)+0.065*A(431)-A(433)-A(434)-A(436)-A(438)-A(439)-0.595*A(440)-0.255*A(441)+A(442)+0.275*A(445)& - &+A(446)+0.275*A(449)+A(451)+1.3*A(453)-A(454)-A(455)-A(456)-A(457)-A(458)+A(460)+0.65*A(461)+A(465)+0.65& - &*A(468)+0.65*A(469)+A(472)+A(473)+2*A(474)+A(475)+2*A(476)-A(477)-A(478)-A(479)-A(480)-A(481)-A(482)-A(483)& - &-A(484)-0.4*A(485)-0.4*A(486)+0.518*A(488)+0.599*A(492)+0.582*A(497)+0.506*A(500)+0.379*A(503)+0.527*A(507)& - &-A(524)-A(525)-A(528)-A(529)-A(530)+A(532)+A(533)+1.147*A(534)+0.646*A(535)+0.435*A(536)+0.096*A(538)& - &-A(540)-0.756*A(541)+A(543)-A(544)+0.82*A(546)-A(547)+0.08*A(548)-A(549)-A(550)+0.12*A(551)+0.68*A(552)& - &-0.98*A(553)-A(556)+A(559)+A(562)-0.715*A(564)-A(566)-A(568)-A(569)+0.665*A(570)+0.59*A(573)+0.5*A(574)& - &-0.415*A(575)+A(576)+0.5*A(581)-A(587)-0.3*A(588)-0.5*A(589)-0.556*A(590)-A(593)-0.7*A(594)-A(596)-0.5& - &*A(597)+0.5*A(598)-A(605)-0.364*A(606)-A(613)-A(614)-A(616)-A(617)-A(618)+A(619)-A(624)-A(626)-A(628)& - &+A(629)-A(631)+0.2*A(633)-A(636)-A(638)-A(643)-A(646)-0.75*A(650)+0.1*A(651)-0.75*A(653)+0.1*A(654)-A(673)& - &-A(674)+2*A(762)+A(763)+A(766)+A(767)+A(768)+0.07*A(780)+A(790)+A(791)+A(792)+A(793)+A(794)+A(795)+A(796)& - &+A(798)+A(801)+A(818)+A(835)+A(852)+2*A(855)+A(857)+2*A(870)+A(871)+A(876)+A(877)+1.75*A(878)+A(879)+0.75& - &*A(880)+0.01*A(881)+A(883)+A(884)+A(885)+A(886)+A(887)+1.662*A(888)+1.637*A(889)+A(890)+A(891)+0.55*A(892)& - &+0.55*A(895)+0.67*A(896)+A(897)+0.645*A(899)+0.5*A(901)+A(902)+1.25*A(903)+A(904)+0.546*A(905)+A(906)+0.3& - &*A(907)+A(908)+A(910)+A(912) + Vdot(269) = -A(283)-A(285)+A(286)+A(288)-A(291)-A(292)+0.2*A(293)+0.809*A(298)-A(299)-A(300)+A(301)+A(302)+A(305)+0.4& + &*A(306)+0.996*A(307)+A(308)+2*A(814)+A(815)+A(816)+A(817)+A(818)+A(819)+A(820)+A(821)+A(822)+2*A(823)& + &+A(824)+A(825)+A(828)+A(829) IF (DO_FUN(270)) & - Vdot(270) = A(13)-A(16)+A(22)+A(26)-A(37)+A(40)-A(41)+A(42)+A(43)+A(44)+2*A(45)+A(46)-A(47)+A(48)-A(55)+A(56)+A(57)& - &+A(59)+A(61)+A(64)+A(66)+A(68)+2*A(70)+A(71)+0.93*A(72)+A(73)+2*A(75)-A(80)+A(81)+A(82)+A(98)+A(102)+A(148)& - &+A(149)+A(153)+A(154)+2*A(161)-A(162)+A(163)+A(174)+A(180)-A(186)-A(187)-A(209)+A(210)+A(211)-A(212)-A(221)& - &+A(251)+A(270)-A(271)-A(307)+A(308)+2*A(309)-A(311)+A(312)+A(320)+A(330)+A(336)+A(337)+A(339)-A(340)+A(346)& - &-A(347)+0.82*A(353)+A(357)+0.78*A(365)+A(369)+A(371)+2*A(372)+0.5*A(376)+A(378)+A(379)+2*A(380)+0.5*A(382)& - &+A(383)+A(392)+A(393)+A(394)+A(395)+A(420)+A(422)+A(424)+A(426)+A(443)+A(447)+A(451)+A(462)+A(466)+A(471)& - &+A(473)+A(475)+A(478)+A(480)+A(481)+A(483)+0.459*A(488)+1.728*A(489)+A(493)+A(498)+A(501)+A(504)+0.527& - &*A(507)+1.86*A(509)+0.563*A(510)+0.611*A(513)+A(514)+2*A(516)+A(517)+2*A(518)+A(520)+A(528)+0.058*A(534)& - &+1.065*A(536)+A(538)+A(540)+A(542)+0.565*A(544)+1.11*A(545)+0.09*A(546)+0.31*A(553)+A(558)-A(560)+A(561)& - &-A(563)+A(571)+A(577)+A(579)-A(580)+0.5*A(581)+2*A(582)+2*A(584)+0.7*A(585)+A(586)+A(593)+0.022*A(594)& - &+A(595)+0.995*A(608)+A(609)+A(613)+A(620)+A(621)+A(634)-A(635)+A(637)+A(638)-A(639)+A(640)+A(641)-A(645)& - &+0.5*A(646)+A(647)+A(662)-A(664)-A(761)+A(766)+A(769)+A(770)+A(772)+0.7*A(775)+A(790)+A(797)+A(803)+A(804)& - &+A(815)+A(817)+A(839)+A(851)+A(858)+A(859)+A(860)+A(861)+A(863)+A(865)+A(866)+A(867)+A(868)+A(869)+A(873)& - &+0.7*A(881)+A(882)+A(892)+A(893)+A(894)+A(895)+A(896)+A(898)+A(899)+1.555*A(900)+0.3*A(906)+A(907)+A(908)& - &+A(909) + Vdot(270) = A(288)+A(289)-A(290)-A(291)-A(697)-A(698)-A(699)-A(704)-A(705)-A(706)-A(707)-A(820) IF (DO_FUN(271)) & - Vdot(271) = -A(2)-A(5)-0.91*A(224)+A(246)-A(249)+A(261)+A(262)+A(264)+A(265)+A(266)+2*A(286)+A(287)+A(288)+A(289)& - &+A(291)+A(292)+A(295)+A(296)+A(297)+A(298)+A(299)+A(300)+A(301)+A(302)+A(303)-A(669)-A(676)-A(678)-A(686)& - &-A(690)+A(694)-A(696) + Vdot(271) = A(222)+A(226)+A(227)-A(229)+A(230)+A(231)+A(248)+A(651)-A(664)-A(665)-A(666)-A(667)-A(668)-A(798) IF (DO_FUN(272)) & - Vdot(272) = A(170)-A(171)-A(178)+A(181)+A(182)+A(183)+A(184)+A(185)-0.8*A(225)+A(304)-A(679)-A(689)-A(691)-A(695)& - &+A(701)-A(702)-A(705)-A(706) + Vdot(272) = -A(175)-A(176)-A(177)-A(178)-A(179)-A(180)-A(186)-A(202)-A(203)-A(204)-A(205)-A(206)-A(207)-A(208)-A(209)& + &-A(210)-A(211)-A(212)-A(213)-A(214)-A(215)-A(216)-A(217)-A(218)-A(219)-A(220)-A(221)+A(739)+A(833) IF (DO_FUN(273)) & - Vdot(273) = 0.24*A(224)+0.75*A(226)+0.86*A(227)+0.55*A(231)+0.88*A(232)+0.86*A(233)+0.33*A(234)+0.69*A(236)+0.74& - &*A(237)+0.79*A(238)+0.75*A(239)+0.75*A(240)+0.3*A(241)-A(244)-A(245)-A(246)+A(250)+A(263)+A(267)-A(268)& - &-A(269)-A(270)-A(271)-2*A(272)-2*A(273)-2*A(274)-2*A(277)+2*A(278)+2*A(280)-A(281)-A(282)-A(283)+A(284)& - &+A(290)+A(293)+A(294)-A(321)-A(322)-A(323)-A(812)+A(813)+A(817) + Vdot(273) = -A(152)-A(154)+A(155)+2*A(156)+A(158)-A(159)+A(160)+A(162)+A(163)-A(164)-A(165)-A(166)-A(167)-A(168)& + &-A(169)-A(170)+3*A(172)+2*A(173)+A(174)+A(200)+0.6*A(203)+0.56*A(207)+0.95*A(208)+1.4*A(209)+0.34*A(213)& + &+0.75*A(221)+A(259)+A(260)-A(282)+A(292)+A(293)+2*A(779)+A(780)+A(781)+A(782)+A(784)+3*A(785)+2*A(786)& + &+A(787)+A(790)+A(810)+A(811)+2*A(812)+A(825)+A(828) IF (DO_FUN(274)) & - Vdot(274) = A(168)-A(169)-2*A(172)-2*A(173)-A(174)+A(177)-A(179)+A(180)-A(187)-A(222)+0.15*A(225)+0.44*A(228)+0.95& - &*A(229)+0.68*A(230)+0.31*A(234)+0.41*A(235)+0.75*A(242)-A(281)-A(282)-A(283)-A(314)-A(315)-A(316)-A(800)& - &+A(803) + Vdot(274) = A(152)-A(153)-2*A(156)-2*A(157)-A(158)+A(161)-A(163)+A(164)-A(171)-A(200)+0.2*A(203)+0.44*A(207)+0.95& + &*A(208)+0.7*A(209)+0.31*A(213)+0.45*A(214)+0.75*A(221)-A(259)-A(260)-A(261)-A(292)-A(293)-A(780)+A(783) IF (DO_FUN(275)) & - Vdot(275) = -A(680)-A(687)-A(699)-A(703)+A(705)-A(720)-A(724)-A(728) + Vdot(275) = -A(2)-A(5)-0.88*A(202)+A(225)-A(228)+A(240)+A(241)+A(243)+A(244)+A(245)+2*A(264)+A(265)+A(266)+A(267)& + &+A(269)+A(270)+A(273)+A(274)+A(275)+A(276)+A(277)+A(278)+A(279)+A(280)+A(281)-A(643)-A(650)-A(652)-A(660)& + &-A(664)+A(668)-A(670) IF (DO_FUN(276)) & - Vdot(276) = -A(681)-A(688)-A(700)-A(704)+A(706)-A(721)-A(725)-A(729) + Vdot(276) = -A(1)-A(4)-A(7)-A(8)-A(9)-A(10)+A(11)-A(12)+A(148)+0.75*A(149)+A(150)-A(151)+A(187)+A(188)-A(317)-A(321)& + &-A(668)-A(675)+A(834)+A(835) IF (DO_FUN(277)) & - Vdot(277) = -A(1)-A(4)-A(8)-A(13)-A(14)-A(15)-A(16)-A(17)+0.15*A(113)-A(115)-A(168)+A(200)-A(201)-A(205)-A(206)-A(215)& - &-A(263)-A(324)-A(343)-A(358)-A(359)-A(363)-A(386)-A(396)-A(548)-A(551)+0.13*A(574)+0.13*A(581)+0.13*A(598)& - &-A(604)-A(629)+0.15*A(633)-A(644)-A(651)-A(654)-A(702)-A(703)-A(704)-A(758)-A(759) + Vdot(277) = -A(655)-A(662)-A(674)-A(678)+A(680)-A(701)-A(705)-A(709) IF (DO_FUN(278)) & - Vdot(278) = A(2)-A(671)-A(673)-A(682)-A(684)-A(692)-A(697)-A(722)-A(726)-A(730) + Vdot(278) = A(18)+A(20)+A(21)+A(25)+A(32)+A(33)+A(34)+A(36)+A(38)+A(41)+A(47)+A(51)+A(56)+A(75)+A(76)+A(77)+A(82)& + &+A(91)+A(155)+A(174)-A(175)+A(183)+0.02*A(196)+A(228)+A(229)+A(232)+A(235)+A(236)+A(237)+A(238)+A(239)& + &+A(267)+A(302)+A(303)+A(308)-A(314)-2*A(315)-A(322)-A(323)+A(637)-A(642)-A(649)-A(651)+A(664)+A(665)+A(666)& + &+A(667)+A(669)+A(670)+A(671)+A(672)-A(699) IF (DO_FUN(279)) & - Vdot(279) = A(18)+A(20)+A(21)+A(25)+A(32)+A(33)+A(34)+A(35)+A(36)+A(38)+A(40)+A(43)+A(49)+A(53)+A(58)+A(77)+A(78)& - &+A(79)+A(84)+A(93)+A(171)+A(190)-A(191)+A(202)+A(217)+A(249)+A(250)+A(253)+A(256)+A(257)+A(258)+A(259)& - &+A(260)+A(289)+A(327)+A(328)+A(335)-A(341)-2*A(342)-A(349)-A(350)+A(663)-A(668)-A(675)-A(677)+A(690)+A(691)& - &+A(692)+A(693)+A(695)+A(696)+A(697)+A(698)-A(719) + Vdot(279) = -A(13)-A(22)-A(26)-A(27)-A(37)-A(43)+A(49)-A(55)-A(57)-A(58)-A(59)-A(62)-A(63)-A(64)-A(66)-A(67)-A(68)& + &-A(69)-A(70)-A(71)-A(72)-A(73)-A(80)-A(158)+1.22*A(179)+A(189)-A(191)+A(197)-A(198)-A(249)-A(283)+2*A(284)& + &-A(297)-A(305)-A(312)-A(319)-A(326)-A(338)-A(344)-A(345)-A(392)-A(393)-A(394)-A(395)-A(396)-A(397)-A(398)& + &-A(399)-A(416)-A(417)-A(420)-A(421)-A(424)-A(425)-A(435)-A(436)-A(439)-A(440)-A(443)-A(444)-A(446)-A(448)& + &-A(462)-A(463)-A(466)-A(467)-A(471)-A(472)-A(474)-A(475)-A(477)-A(478)-A(491)-A(492)-A(493)-A(494)-A(509)& + &-A(510)-A(511)-A(512)-A(515)-A(518)-A(531)-A(534)-A(544)-A(545)-A(550)-A(551)-A(552)-A(555)-A(581)-A(593)& + &-A(607)-A(613)+A(741)+A(747)+A(751)+A(818)-A(836) IF (DO_FUN(280)) & - Vdot(280) = -A(13)-A(22)-A(26)-A(27)-A(39)-A(45)+A(51)-A(57)-A(59)-A(60)-A(61)-A(64)-A(65)-A(66)-A(68)-A(69)-A(70)& - &-A(71)-A(72)-A(73)-A(74)-A(75)-A(82)-A(174)+2*A(196)+A(209)-A(211)+A(219)-A(220)-A(270)-A(305)+2*A(306)& - &-A(320)-A(330)-A(339)-A(346)-A(353)-A(365)-A(371)-A(372)-A(419)-A(420)-A(421)-A(422)-A(423)-A(424)-A(425)& - &-A(426)-A(443)-A(444)-A(447)-A(448)-A(451)-A(452)-A(462)-A(463)-A(466)-A(467)-A(470)-A(471)-A(473)-A(475)& - &-A(489)-A(490)-A(493)-A(494)-A(498)-A(499)-A(501)-A(502)-A(504)-A(505)-A(518)-A(519)-A(520)-A(521)-A(536)& - &-A(537)-A(538)-A(539)-A(542)-A(545)-A(558)-A(561)-A(571)-A(572)-A(577)-A(578)-A(579)-A(582)-A(608)-A(620)& - &-A(634)-A(640)+A(761)+A(767)+A(771)+A(838)-A(856) + Vdot(280) = A(2)-A(645)-A(647)-A(656)-A(658)-A(666)-A(671)-A(702)-A(706)-A(710) IF (DO_FUN(281)) & - Vdot(281) = A(14)-A(15)+A(17)-A(20)+A(21)-A(22)-2*A(23)+A(24)+A(26)-A(28)+2*A(30)+1.74*A(31)+A(36)-A(41)+A(42)-A(44)& - &+A(46)+A(49)+A(50)+A(52)+0.05*A(53)+A(59)+A(61)+A(64)+A(66)+0.27*A(68)+A(73)+A(85)+A(86)-A(87)-A(88)-A(89)& - &-A(90)-A(91)-A(92)+A(94)+A(95)+0.64*A(97)+0.5*A(98)+0.3*A(99)+0.5*A(100)+A(101)+0.5*A(102)+A(103)+A(104)+2& - &*A(105)+2*A(106)-A(109)-A(110)-A(111)-A(112)-A(113)+0.28*A(115)+0.773*A(116)+A(119)+A(121)+A(123)+A(125)& - &+A(126)+A(129)+A(142)+0.27*A(144)+A(147)+A(156)+A(157)+A(167)-A(169)-A(170)+A(179)+A(181)+A(190)+A(199)& - &-A(204)+A(213)+A(214)-A(216)-A(217)-A(218)+A(223)+A(244)+A(245)+A(253)+A(254)+A(255)+A(262)+A(265)-A(266)& - &-A(267)-A(269)+A(286)+A(287)+A(288)+A(290)+A(293)+A(294)+A(295)-A(325)-A(329)+0.82*A(353)-A(354)+A(355)+0.5& - &*A(356)+A(357)+0.1*A(358)+0.1*A(359)+0.1*A(363)+0.686*A(365)-A(366)+A(367)+0.5*A(368)+A(369)+A(371)-A(373)& - &-A(374)+2*A(375)+0.5*A(376)+A(377)+A(379)+A(381)+0.5*A(382)+0.16*A(396)+0.4*A(399)+0.7*A(400)-0.937*A(401)& - &-A(402)-0.937*A(403)-A(404)+0.4*A(406)+0.7*A(408)+2*A(409)+2*A(410)+2*A(411)+A(412)+A(413)+A(414)+2*A(415)& - &+1.5*A(416)+2*A(417)+1.5*A(418)+A(420)+0.45*A(422)+A(424)+0.45*A(426)+0.085*A(427)+0.165*A(428)+0.283& - &*A(431)+A(433)+0.25*A(438)+0.33*A(439)+0.024*A(440)+0.042*A(441)+A(443)-0.725*A(445)+A(447)-0.725*A(449)& - &-A(453)+0.75*A(454)+A(455)+A(457)+A(459)-0.35*A(461)+A(462)+A(464)+A(466)-0.35*A(468)-0.35*A(469)+A(471)& - &+A(472)-A(474)-A(476)+0.4*A(485)+0.4*A(486)+A(487)-0.941*A(488)+0.272*A(489)+A(491)-0.401*A(492)+A(493)& - &+A(495)+A(496)-0.418*A(497)+A(498)-0.494*A(500)+A(501)-0.621*A(503)+A(504)-A(507)-A(508)+0.089*A(510)+0.064& - &*A(511)+0.336*A(512)+0.611*A(513)+0.159*A(515)+0.159*A(517)+0.159*A(520)+A(522)-0.674*A(534)-0.42*A(535)& - &+0.5*A(536)+0.904*A(538)+0.295*A(541)+0.33*A(542)-0.67*A(543)+0.89*A(545)-0.27*A(546)+0.1*A(548)+0.036& - &*A(549)-A(559)-A(562)+0.715*A(564)+A(566)+A(568)+A(569)-0.695*A(570)+0.242*A(571)-0.493*A(573)-A(574)+0.86& - &*A(577)-A(581)+0.7*A(585)+0.5*A(589)+0.444*A(590)+0.62*A(594)+0.5*A(597)-A(598)+0.364*A(606)-A(607)+0.6& - &*A(610)+A(611)+A(612)+0.54*A(616)+0.19*A(617)+0.15*A(618)+A(620)+A(621)+2*A(622)+A(623)+0.8*A(624)+0.727& - &*A(626)+A(629)-A(633)-A(642)+A(648)+A(649)+0.33*A(650)+0.1*A(651)+0.2*A(652)+0.33*A(653)+0.1*A(654)+0.2& - &*A(655)+A(662)-A(663)+A(763)+A(764)+A(769)+A(773)+A(776)+1.73*A(780)+2*A(781)+A(784)+A(786)+A(788)+A(789)& - &+A(790)+A(791)+A(792)+A(793)+A(794)+A(795)+A(796)+0.27*A(797)+A(850)+A(857)+A(858)+A(866)+A(867)+A(868)& - &+A(869)+A(871)+A(872)+A(874)+1.5*A(875)+0.47*A(876)+0.571*A(877)+0.125*A(878)+A(879)+0.29*A(881)+A(882)& - &+A(883)+A(884)+A(885)+A(886)+A(887)+0.112*A(888)+0.182*A(889)+A(890)+A(891)+0.45*A(892)+A(893)+A(894)+0.45& - &*A(895)+0.33*A(896)+0.159*A(897)+0.161*A(899)+0.228*A(900)+1.5*A(901)+A(902)+0.75*A(903)+A(904)+1.454& - &*A(905)+0.7*A(906)+0.7*A(907)+A(909)+A(911)+A(914) + Vdot(281) = A(16)+A(36)-A(42)-A(43)-A(44)-A(45)+A(46)-A(49)-A(50)-A(52)-A(74)-A(81)-A(94)-A(114)-A(117)-A(118)-A(130)& + &-2*A(145)-A(150)+A(159)-A(164)-A(190)+A(192)+A(231)+A(262)+A(263)-A(288)+A(291)+A(313)+A(320)-A(330)-A(333)& + &-A(334)-A(337)-A(342)-A(352)-A(353)-A(360)-A(361)+A(364)-A(479)-A(489)-A(490)-A(525)+0.69*A(526)-A(557)& + &+A(560)-A(568)-A(582)-A(594)-A(598)-A(600)-A(603)-A(605)+A(612)-A(614)-A(620)-A(635)-A(639)-A(640)-A(641)& + &+A(748)-A(750)-A(751)+A(752)+0.3*A(755)+A(782)+A(796)+A(820)+A(830) IF (DO_FUN(282)) & - Vdot(282) = -A(168)-A(170)+A(171)+2*A(172)+A(174)-A(175)+A(176)+A(178)+A(179)-A(180)-A(181)-A(182)-A(183)-A(184)& - &-A(185)-A(186)+3*A(188)+2*A(189)+A(190)+A(222)+0.65*A(225)+0.56*A(228)+0.95*A(229)+1.36*A(230)+0.33*A(234)& - &+0.75*A(242)+A(281)+A(282)-A(304)+A(314)+A(315)+A(316)+2*A(799)+A(800)+A(801)+A(802)+A(804)+3*A(805)+2& - &*A(806)+A(807)+A(810)+A(830)+A(831)+2*A(832)+A(845)+A(848) + Vdot(282) = -A(1)-A(4)-A(8)-A(13)-A(14)-A(15)-A(16)-A(17)+0.15*A(109)-A(111)-A(152)+A(181)-A(182)-A(186)-A(195)-A(242)& + &-A(299)-A(316)-A(331)-A(332)-A(336)-A(359)-A(369)-A(521)-A(524)+0.13*A(547)+0.13*A(554)+0.13*A(571)-A(577)& + &-A(602)+0.15*A(606)-A(617)-A(624)-A(627)-A(676)-A(677)-A(678)-A(738)-A(739) IF (DO_FUN(283)) & - Vdot(283) = A(5)-A(672)-A(674)-A(683)-A(685)-A(693)-A(698)-A(723)-A(727)-A(731) + Vdot(283) = -A(654)-A(661)-A(673)-A(677)+A(679)-A(700)-A(704)-A(708) IF (DO_FUN(284)) & - Vdot(284) = A(18)-A(177)-A(178)+A(192)+A(193)-A(200)-A(201)-A(203)-A(204)+2*A(206)-A(207)-A(209)-A(210)-A(211)-A(212)& - &-A(213)+A(217)+A(219)+A(220)+A(221)-A(222)-A(223)+0.09*A(224)+0.2*A(225)+0.25*A(226)+0.14*A(227)+0.05& - &*A(229)+0.32*A(230)+0.28*A(231)+0.12*A(232)+0.14*A(233)+0.36*A(234)+0.59*A(235)+0.31*A(236)+0.26*A(237)& - &+0.21*A(238)+0.25*A(239)+0.25*A(240)+0.7*A(241)+0.25*A(242)-A(268)-A(284)+A(758)+2*A(760)+A(761)+A(770)& - &+A(800)+A(812)+A(813)+A(836)+A(856) + Vdot(284) = A(14)-A(15)+A(17)-A(20)+A(21)-A(22)-2*A(23)+A(24)+A(26)-A(28)+2*A(30)+1.74*A(31)+A(34)-A(39)+A(40)-A(42)& + &+A(44)+A(47)+A(48)+A(50)+0.05*A(51)+A(57)+A(59)+A(62)+A(64)+0.27*A(66)+A(71)+A(83)+A(84)-A(85)-A(86)-A(87)& + &-A(88)-A(89)-A(90)+A(92)+A(93)+0.64*A(95)+0.5*A(96)+0.3*A(97)+0.5*A(98)+A(99)+0.5*A(100)+A(101)+A(102)+1.2& + &*A(103)+1.2*A(104)-A(105)-A(106)-A(107)-A(108)-A(109)+0.28*A(111)+0.773*A(112)+A(115)+A(117)+A(119)+0.9& + &*A(132)+0.243*A(133)+0.9*A(136)+0.9*A(139)+0.9*A(140)+0.9*A(141)+0.9*A(142)+A(144)+A(151)-A(153)-A(154)& + &+A(163)+A(165)+A(174)+0.2*A(180)-A(185)+A(193)+A(194)-A(196)+A(201)+A(223)+A(224)+A(232)+A(233)+A(234)& + &+A(241)+A(244)-A(245)-A(246)-A(248)+A(264)+A(265)+A(266)+A(268)+A(271)+A(272)+A(273)-A(300)-A(304)+0.82& + &*A(326)-A(327)+A(328)+0.5*A(329)+A(330)+0.1*A(331)+0.1*A(332)+0.1*A(336)+0.686*A(338)-A(339)+A(340)+0.5& + &*A(341)+A(342)+A(344)-A(346)-A(347)+2*A(348)+0.5*A(349)+A(350)+A(352)+A(354)+0.5*A(355)+0.16*A(369)+0.4& + &*A(372)+0.7*A(373)-0.937*A(374)-A(375)-0.937*A(376)-A(377)+0.4*A(379)+0.7*A(381)+2*A(382)+2*A(383)+2*A(384)& + &+A(385)+A(386)+A(387)+2*A(388)+1.5*A(389)+2*A(390)+1.5*A(391)+A(393)+0.45*A(395)+A(397)+0.45*A(399)+0.085& + &*A(400)+0.165*A(401)+0.283*A(404)+A(406)+0.25*A(411)+0.33*A(412)+0.024*A(413)+0.042*A(414)+A(416)-0.725& + &*A(418)+A(420)-0.725*A(422)-A(426)+0.75*A(427)+A(428)+A(430)+A(432)-0.35*A(434)+A(435)+A(437)+A(439)-0.35& + &*A(441)-0.35*A(442)+A(444)+A(445)-A(447)-A(449)+0.4*A(458)+0.4*A(459)+A(460)-0.941*A(461)+0.272*A(462)& + &+A(464)-0.401*A(465)+A(466)+A(468)+A(469)-0.418*A(470)+A(471)-0.494*A(473)+A(474)-0.621*A(476)+A(477)& + &-A(480)-A(481)+0.089*A(483)+0.064*A(484)+0.336*A(485)+0.611*A(486)+0.159*A(488)+0.159*A(490)+0.159*A(493)& + &+A(495)-0.674*A(507)-0.42*A(508)+0.5*A(509)+0.904*A(511)+0.295*A(514)+0.33*A(515)-0.67*A(516)+0.89*A(518)& + &-0.27*A(519)+0.1*A(521)+0.036*A(522)-A(532)-A(535)+0.715*A(537)+A(539)+A(541)+A(542)-0.695*A(543)+0.242& + &*A(544)-0.493*A(546)-A(547)+0.86*A(550)-A(554)+0.7*A(558)+0.5*A(562)+0.444*A(563)+0.62*A(567)+0.5*A(570)& + &-A(571)+0.364*A(579)-A(580)+0.6*A(583)+A(584)+A(585)+0.54*A(589)+0.19*A(590)+0.15*A(591)+A(593)+A(594)+2& + &*A(595)+A(596)+0.8*A(597)+0.727*A(599)+A(602)-A(606)-A(615)+A(621)+A(622)+0.33*A(623)+0.1*A(624)+0.2*A(625)& + &+0.33*A(626)+0.1*A(627)+0.2*A(628)+A(635)-A(637)+A(743)+A(744)+A(749)+A(753)+A(756)+1.73*A(760)+2*A(761)& + &+A(764)+A(766)+A(768)+A(769)+A(770)+A(771)+A(772)+A(773)+A(774)+A(775)+A(776)+0.27*A(777)+A(830)+A(837)& + &+A(838)+A(846)+A(847)+A(848)+A(849)+A(851)+A(852)+A(854)+1.5*A(855)+0.47*A(856)+0.571*A(857)+0.125*A(858)& + &+A(859)+0.29*A(861)+A(862)+A(863)+A(864)+A(865)+A(866)+A(867)+0.112*A(868)+0.182*A(869)+A(870)+A(871)+0.45& + &*A(872)+A(873)+A(874)+0.45*A(875)+0.33*A(876)+0.159*A(877)+0.161*A(879)+0.228*A(880)+1.5*A(881)+A(882)+0.75& + &*A(883)+A(884)+1.454*A(885)+0.7*A(886)+0.7*A(887)+A(889)+A(891)+A(894) IF (DO_FUN(285)) & - Vdot(285) = 0.67*A(224)+0.75*A(226)+2.58*A(227)+0.17*A(231)+1.76*A(232)+0.86*A(233)+0.31*A(234)+0.69*A(236)+0.79& - &*A(238)+1.5*A(239)+0.75*A(240)+A(243)+A(245)+A(249)+A(253)+2*A(254)+3*A(255)+3*A(256)+A(257)+2*A(258)& - &+A(259)+2*A(260)-A(261)-A(262)-A(263)-A(264)-A(265)-A(266)-A(267)+A(268)+A(270)+A(273)+A(274)-A(275)+A(276)& - &-A(279)-A(280)-A(285)-A(286)+A(287)+2*A(288)-A(289)-A(290)-A(291)-A(292)-A(293)-A(294)-A(295)-A(296)-A(297)& - &-A(298)-A(299)-A(300)-A(301)-A(302)-A(303)+A(322)+A(808)+2*A(809)+A(810)+2*A(811)+A(812)+A(814)+A(815)& - &+A(816)+A(818)+3*A(819)+4*A(820)+3*A(821)+2*A(822)+3*A(823)+2*A(824)+A(825)+2*A(826)+2*A(827)+A(828)+A(829)& - &+A(831)+A(833)+A(844)+A(849) + Vdot(285) = 0.22*A(202)+0.75*A(204)+0.79*A(205)+0.46*A(206)+0.56*A(210)+0.9*A(211)+0.86*A(212)+0.34*A(213)+0.69*A(215)& + &+0.65*A(216)+0.79*A(217)+0.8*A(218)+0.85*A(219)+0.86*A(220)-A(223)-A(224)-A(225)+A(229)+A(242)+A(246)& + &-A(247)-A(248)-A(249)-A(250)-2*A(251)-2*A(252)-2*A(253)-2*A(256)+2*A(257)+0.1*A(258)-A(259)-A(260)-A(261)& + &+A(262)+A(268)+A(271)+A(272)-A(298)-A(792)+A(793)+A(797) IF (DO_FUN(286)) & - Vdot(286) = -A(1)-A(4)-A(7)-A(8)-A(9)-A(10)+A(11)-A(12)+A(164)+0.75*A(165)+A(166)-A(167)+A(207)+A(208)-A(344)-A(348)& - &-A(694)-A(701)+A(854)+A(855) + Vdot(286) = -A(12)-A(14)+A(15)-2*A(18)-2*A(19)-A(20)-A(21)+A(22)-A(24)-A(25)-A(31)-0.7*A(32)-0.7*A(33)-A(34)-A(35)& + &-A(36)-A(37)-A(38)-A(41)+A(42)-A(44)-A(47)-A(48)-A(51)-A(56)-A(60)-A(61)-A(65)-A(75)-A(76)-A(77)-A(82)+0.15& + &*A(87)+0.15*A(88)-A(91)-A(101)-A(102)+0.44*A(109)-A(110)+0.36*A(111)-0.773*A(112)-A(115)-A(116)-A(119)& + &-0.209*A(121)-0.36*A(122)-0.36*A(123)-0.209*A(124)-0.21*A(125)-A(126)-0.209*A(127)-0.78*A(129)-A(148)& + &-A(149)-A(151)-A(155)-A(160)+A(161)+A(162)-A(163)-A(172)-A(173)-A(174)+2*A(175)+A(178)+0.75*A(180)-A(183)& + &-A(184)+A(185)-A(188)+A(193)+A(195)+1.788*A(196)+A(201)+0.66*A(202)+0.6*A(203)+0.05*A(210)-A(222)-A(224)& + &-A(225)-A(226)-A(227)-A(228)-A(229)-A(230)-A(231)-A(232)-A(233)-A(234)-A(235)-A(236)-A(237)-A(238)-A(239)& + &+A(246)-A(301)-A(302)-A(303)-A(308)-A(309)-A(310)-A(324)-A(325)+0.85*A(331)+0.85*A(332)-A(335)+0.85*A(336)& + &-0.51*A(343)-A(357)-A(358)-A(364)-A(365)-A(366)-A(367)-A(368)+0.28*A(369)-A(370)-A(371)+0.5*A(372)+0.5& + &*A(373)+0.063*A(374)+0.063*A(376)+A(378)+1.5*A(379)+A(380)+1.5*A(381)+A(385)+A(386)+A(387)+0.5*A(389)+0.5& + &*A(391)+0.55*A(395)+0.55*A(399)+0.085*A(400)+0.165*A(401)+0.065*A(404)-A(406)-A(407)-A(409)-A(411)-A(412)& + &-0.595*A(413)-0.255*A(414)+A(415)+0.275*A(418)+A(419)+0.275*A(422)+A(424)+1.3*A(426)-A(427)-A(428)-A(429)& + &-A(430)-A(431)+A(433)+0.65*A(434)+A(438)+0.65*A(441)+0.65*A(442)+A(445)+A(446)+2*A(447)+A(448)+2*A(449)& + &-A(450)-A(451)-A(452)-A(453)-A(454)-A(455)-A(456)-A(457)-0.4*A(458)-0.4*A(459)+0.518*A(461)+0.599*A(465)& + &+0.582*A(470)+0.506*A(473)+0.379*A(476)+0.527*A(480)-A(497)-A(498)-A(501)-A(502)-A(503)+A(505)+A(506)+1.147& + &*A(507)+0.646*A(508)+0.435*A(509)+0.096*A(511)-A(513)-0.756*A(514)+A(516)-A(517)+0.82*A(519)-A(520)+0.08& + &*A(521)-A(522)-A(523)+0.12*A(524)+0.68*A(525)-0.98*A(526)-A(529)+A(532)+A(535)-0.715*A(537)-A(539)-A(541)& + &-A(542)+0.665*A(543)+0.59*A(546)+0.5*A(547)-0.415*A(548)+A(549)+0.5*A(554)-A(560)-0.3*A(561)-0.5*A(562)& + &-0.556*A(563)-A(566)-0.7*A(567)-A(569)-0.5*A(570)+0.5*A(571)-A(578)-0.364*A(579)-A(586)-A(587)-A(589)& + &-A(590)-A(591)+A(592)-A(597)-A(599)-A(601)+A(602)-A(604)+0.2*A(606)-A(609)-A(611)-A(616)-A(619)-0.75*A(623)& + &+0.1*A(624)-0.75*A(626)+0.1*A(627)-A(636)-A(647)-A(648)+2*A(742)+A(743)+A(746)+A(747)+A(748)+0.07*A(760)& + &+A(770)+A(771)+A(772)+A(773)+A(774)+A(775)+A(776)+A(778)+A(781)+A(798)+A(815)+A(832)+2*A(835)+A(837)+2& + &*A(850)+A(851)+A(856)+A(857)+1.75*A(858)+A(859)+0.75*A(860)+0.01*A(861)+A(863)+A(864)+A(865)+A(866)+A(867)& + &+1.662*A(868)+1.637*A(869)+A(870)+A(871)+0.55*A(872)+0.55*A(875)+0.67*A(876)+A(877)+0.645*A(879)+0.5*A(881)& + &+A(882)+1.25*A(883)+A(884)+0.546*A(885)+A(886)+0.3*A(887)+A(888)+A(890)+A(892) IF (DO_FUN(287)) & - Vdot(287) = A(16)+A(38)-A(44)-A(45)-A(46)-A(47)+A(48)-A(51)-A(52)-A(54)-A(76)-A(83)-A(96)-A(118)-A(121)-A(122)-A(140)& - &-2*A(161)-A(166)+A(175)-A(180)-A(210)+A(212)+A(252)+A(284)+A(285)-A(310)+A(313)+A(340)+A(347)-A(357)-A(360)& - &-A(361)-A(364)-A(369)-A(379)-A(380)-A(387)-A(388)+A(391)-A(506)-A(516)-A(517)-A(552)+0.69*A(553)-A(584)& - &+A(587)-A(595)-A(609)-A(621)-A(625)-A(627)-A(630)-A(632)+A(639)-A(641)-A(647)-A(662)-A(665)-A(666)-A(667)& - &+A(768)-A(770)-A(771)+A(772)+0.3*A(775)+A(802)+A(816)+A(840)+A(850) + Vdot(287) = A(5)-A(646)-A(648)-A(657)-A(659)-A(667)-A(672)-A(703)-A(707)-A(711) +IF (DO_FUN(288)) & + Vdot(288) = A(18)-A(161)-A(162)+A(176)+A(177)-A(181)-A(182)-A(184)-A(185)+A(186)-A(187)-A(189)-A(190)-A(191)-A(192)& + &-A(193)+0.02*A(196)+A(197)+A(198)+A(199)-A(200)-A(201)+0.12*A(202)+0.2*A(203)+0.25*A(204)+0.21*A(205)+0.1& + &*A(206)+0.05*A(208)+0.3*A(209)+0.25*A(210)+0.1*A(211)+0.14*A(212)+0.35*A(213)+0.55*A(214)+0.31*A(215)+0.35& + &*A(216)+0.21*A(217)+0.1*A(218)+0.1*A(219)+0.14*A(220)+0.25*A(221)-A(247)-A(262)+A(738)+2*A(740)+A(741)& + &+A(750)+A(780)+A(792)+A(793)+A(816)+A(836) +IF (DO_FUN(289)) & + Vdot(289) = A(154)-A(155)-A(162)+A(165)+A(166)+A(167)+A(168)+A(169)-0.8*A(203)+A(282)-A(653)-A(663)-A(665)-A(669)& + &+A(675)-A(676)-A(679)-A(680) +IF (DO_FUN(290)) & + Vdot(290) = 0.66*A(202)+0.75*A(204)+2.37*A(205)+0.35*A(206)+0.19*A(210)+1.8*A(211)+0.86*A(212)+0.31*A(213)+0.69*A(215)& + &+0.79*A(217)+1.9*A(218)+0.95*A(219)+A(222)+A(224)+A(228)+A(232)+2*A(233)+3*A(234)+3*A(235)+A(236)+2*A(237)& + &+A(238)+2*A(239)-A(240)-A(241)-A(242)-A(243)-A(244)-A(245)-A(246)+A(247)+A(249)+A(252)+A(253)-A(254)+A(255)& + &-A(258)-A(263)-A(264)+A(265)+2*A(266)-A(267)-A(268)-A(269)-A(270)-A(271)-A(272)-A(273)-A(274)-A(275)-A(276)& + &-A(277)-A(278)-A(279)-A(280)-A(281)+0.249*A(298)+A(788)+2*A(789)+A(790)+2*A(791)+A(792)+A(794)+A(795)& + &+A(796)+A(798)+3*A(799)+4*A(800)+3*A(801)+2*A(802)+3*A(803)+2*A(804)+A(805)+2*A(806)+2*A(807)+A(808)+A(809)& + &+A(811)+A(813)+A(824)+A(829) +IF (DO_FUN(291)) & + Vdot(291) = A(13)-A(16)+A(22)+A(26)-A(35)+A(38)-A(39)+A(40)+A(41)+A(42)+2*A(43)+A(44)-A(45)+A(46)-A(53)+A(54)+A(55)& + &+A(57)+A(59)+A(62)+A(64)+A(66)+2*A(68)+A(69)+0.928*A(70)+A(71)+2*A(73)-A(78)+A(79)+A(80)+A(96)+A(100)& + &+A(137)+A(138)+2*A(145)-A(146)+A(147)+A(158)+A(164)-A(170)-A(171)-A(189)+A(190)+A(191)-A(192)-A(199)+A(230)& + &+A(249)-A(250)-A(285)+A(286)+2*A(287)-A(289)+A(290)+A(297)+A(305)+A(309)+A(310)+A(312)-A(313)+A(319)-A(320)& + &+0.82*A(326)+A(330)+0.78*A(338)+A(342)+A(344)+2*A(345)+0.5*A(349)+A(351)+A(352)+2*A(353)+0.5*A(355)+A(356)& + &+A(365)+A(366)+A(367)+A(368)+A(393)+A(395)+A(397)+A(399)+A(416)+A(420)+A(424)+A(435)+A(439)+A(444)+A(446)& + &+A(448)+A(451)+A(453)+A(454)+A(456)+0.459*A(461)+1.728*A(462)+A(466)+A(471)+A(474)+A(477)+0.527*A(480)+1.86& + &*A(482)+0.563*A(483)+0.611*A(486)+A(487)+2*A(489)+A(490)+2*A(491)+A(493)+A(501)+0.058*A(507)+1.065*A(509)& + &+A(511)+A(513)+A(515)+0.565*A(517)+1.11*A(518)+0.09*A(519)+0.31*A(526)+A(531)-A(533)+A(534)-A(536)+A(544)& + &+A(550)+A(552)-A(553)+0.5*A(554)+2*A(555)+2*A(557)+0.7*A(558)+A(559)+A(566)+0.022*A(567)+A(568)+0.995& + &*A(581)+A(582)+A(586)+A(593)+A(594)+A(607)-A(608)+A(610)+A(611)-A(612)+A(613)+A(614)-A(618)+0.5*A(619)& + &+A(620)+A(635)-A(638)-A(741)+A(746)+A(749)+A(750)+A(752)+0.7*A(755)+A(770)+A(777)+A(783)+A(784)+A(795)& + &+A(797)+A(819)+A(831)+A(838)+A(839)+A(840)+A(841)+A(843)+A(845)+A(846)+A(847)+A(848)+A(849)+A(853)+0.7& + &*A(861)+A(862)+A(872)+A(873)+A(874)+A(875)+A(876)+A(878)+A(879)+1.555*A(880)+0.3*A(886)+A(887)+A(888)& + &+A(889) END SUBROUTINE Fun @@ -1842,919 +1833,900 @@ SUBROUTINE Fun_SPLIT ( V, F, RCT, Vdot, P_VAR, D_VAR, Aout ) ! Computation of equation rates - A(1) = RCT(1)*V(144)*V(277)*V(286) - A(2) = RCT(2)*V(144)*V(271) - A(3) = RCT(3)*V(144)*V(260) - A(4) = RCT(4)*V(135)*V(277)*V(286) - A(5) = RCT(5)*V(135)*V(271) - A(6) = RCT(6)*V(135)*V(260) - A(7) = RCT(7)*V(208)*V(286) - A(8) = RCT(8)*V(277)*V(286) - A(9) = RCT(9)*V(286) - A(10) = RCT(10)*V(262)*V(286) - A(11) = RCT(11)*V(85) - A(12) = RCT(12)*V(85)*V(269) - A(13) = RCT(13)*V(277)*V(280) - A(14) = RCT(14)*V(269)*V(277) - A(15) = RCT(15)*V(277)*V(281) - A(16) = RCT(16)*V(270)*V(277) - A(17) = RCT(17)*V(263)*V(277) - A(18) = RCT(18)*V(269)*V(269) - A(19) = RCT(19)*V(269)*V(269) - A(20) = RCT(20)*V(269)*V(281) - A(21) = RCT(21)*V(208)*V(269) - A(22) = RCT(22)*V(280)*V(281) - A(23) = RCT(23)*V(281)*V(281) - A(24) = RCT(24)*V(258)*V(269) - A(25) = RCT(25)*V(186)*V(269) - A(26) = RCT(26)*V(263)*V(280) - A(27) = RCT(27)*V(263)*V(280) - A(28) = RCT(28)*V(263)*V(281) - A(29) = RCT(29)*V(263)*V(263) - A(30) = RCT(30)*V(263)*V(263) - A(31) = RCT(31)*V(263)*V(269) - A(32) = RCT(32)*V(134)*V(269) - A(33) = RCT(33)*V(134)*V(269) - A(34) = RCT(34)*V(193)*V(269) - A(35) = RCT(35)*V(193)*V(269) - A(36) = RCT(36)*V(262)*V(269) - A(37) = RCT(37)*V(269)*V(270) - A(38) = RCT(38)*V(260)*V(269) - A(39) = RCT(39)*V(269)*V(280) - A(40) = RCT(40)*V(188)*V(269) - A(41) = RCT(41)*V(270)*V(281) - A(42) = RCT(42)*V(101) - A(43) = RCT(43)*V(101)*V(269) - A(44) = RCT(44)*V(281)*V(287) - A(45) = RCT(45)*V(280)*V(287) - A(46) = RCT(46)*V(269)*V(287) - A(47) = RCT(47)*V(270)*V(287) - A(48) = RCT(48)*V(169) - A(49) = RCT(49)*V(207)*V(269) - A(50) = RCT(50)*V(214)*V(269) - A(51) = RCT(51)*V(270)*V(287) - A(52) = RCT(52)*V(262)*V(287) - A(53) = RCT(53)*V(261)*V(269) - A(54) = RCT(54)*V(261)*V(287) - A(55) = RCT(55)*V(257)*V(270) - A(56) = RCT(56)*V(63) - A(57) = RCT(57)*V(257)*V(280) - A(58) = RCT(58)*V(157)*V(269) - A(59) = RCT(59)*V(213)*V(280) - A(60) = RCT(60)*V(213)*V(280) - A(61) = RCT(61)*V(235)*V(280) - A(62) = RCT(62)*V(121)*V(269) - A(63) = RCT(63)*V(121)*V(269) - A(64) = RCT(64)*V(233)*V(280) - A(65) = RCT(65)*V(233)*V(280) - A(66) = RCT(66)*V(204)*V(280) - A(67) = RCT(67)*V(112)*V(269) - A(68) = RCT(68)*V(252)*V(280) - A(69) = RCT(69)*V(252)*V(280) - A(70) = RCT(70)*V(251)*V(280) - A(71) = RCT(71)*V(248)*V(280) - A(72) = RCT(72)*V(249)*V(280) - A(73) = RCT(73)*V(253)*V(280) - A(74) = RCT(74)*V(253)*V(280) - A(75) = RCT(75)*V(197)*V(280) - A(76) = RCT(76)*V(112)*V(287) - A(77) = RCT(77)*V(198)*V(269) - A(78) = RCT(78)*V(215)*V(269) - A(79) = RCT(79)*V(255)*V(269) - A(80) = RCT(80)*V(250)*V(270) - A(81) = RCT(81)*V(49) - A(82) = RCT(82)*V(250)*V(280) - A(83) = RCT(83)*V(255)*V(287) - A(84) = RCT(84)*V(219)*V(269) - A(85) = RCT(85)*V(233)*V(263) - A(86) = RCT(86)*V(204)*V(263) - A(87) = RCT(87)*V(252)*V(281) - A(88) = RCT(88)*V(251)*V(281) - A(89) = RCT(89)*V(248)*V(281) - A(90) = RCT(90)*V(249)*V(281) - A(91) = RCT(91)*V(253)*V(281) - A(92) = RCT(92)*V(197)*V(281) - A(93) = RCT(93)*V(222)*V(269) - A(94) = RCT(94)*V(213)*V(263) - A(95) = RCT(95)*V(235)*V(263) - A(96) = RCT(96)*V(222)*V(287) - A(97) = RCT(97)*V(252)*V(263) - A(98) = RCT(98)*V(251)*V(263) - A(99) = RCT(99)*V(248)*V(263) - A(100) = RCT(100)*V(249)*V(263) - A(101) = RCT(101)*V(253)*V(263) - A(102) = RCT(102)*V(197)*V(263) - A(103) = RCT(103)*V(129)*V(269) - A(104) = RCT(104)*V(154)*V(269) - A(105) = RCT(105)*V(213)*V(213) - A(106) = RCT(106)*V(235)*V(235) - A(107) = RCT(107)*V(213)*V(213) - A(108) = RCT(108)*V(235)*V(235) - A(109) = RCT(109)*V(213)*V(281) - A(110) = RCT(110)*V(235)*V(281) - A(111) = RCT(111)*V(233)*V(281) - A(112) = RCT(112)*V(204)*V(281) - A(113) = RCT(113)*V(250)*V(281) - A(114) = RCT(114)*V(254)*V(269) - A(115) = RCT(115)*V(254)*V(277) - A(116) = RCT(116)*V(232)*V(269) - A(117) = RCT(117)*V(232)*V(269) - A(118) = RCT(118)*V(254)*V(287) - A(119) = RCT(119)*V(218)*V(269) - A(120) = RCT(120)*V(228)*V(269) - A(121) = RCT(121)*V(218)*V(287) - A(122) = RCT(122)*V(228)*V(287) - A(123) = RCT(123)*V(246)*V(269) - A(124) = RCT(124)*V(246)*V(269) - A(125) = RCT(125)*V(233)*V(257) - A(126) = RCT(126)*V(204)*V(257) - A(127) = RCT(127)*V(233)*V(257) - A(128) = RCT(128)*V(204)*V(257) - A(129) = RCT(129)*V(250)*V(263) - A(130) = RCT(130)*V(250)*V(263) - A(131) = RCT(131)*V(111)*V(269) - A(132) = RCT(132)*V(108)*V(269) - A(133) = RCT(133)*V(92)*V(269) - A(134) = RCT(134)*V(93)*V(269) - A(135) = RCT(135)*V(91)*V(269) - A(136) = RCT(136)*V(94)*V(269) - A(137) = RCT(137)*V(110)*V(269) - A(138) = RCT(138)*V(23)*V(269) - A(139) = RCT(139)*V(66)*V(269) - A(140) = RCT(140)*V(157)*V(287) - A(141) = RCT(141)*V(257)*V(257) - A(142) = RCT(142)*V(257)*V(263) - A(143) = RCT(143)*V(257)*V(263) - A(144) = RCT(144)*V(252)*V(257) - A(145) = RCT(145)*V(248)*V(257) - A(146) = RCT(146)*V(249)*V(257) - A(147) = RCT(147)*V(253)*V(257) - A(148) = RCT(148)*V(251)*V(257) - A(149) = RCT(149)*V(197)*V(257) - A(150) = RCT(150)*V(252)*V(257) - A(151) = RCT(151)*V(248)*V(257) - A(152) = RCT(152)*V(249)*V(257) - A(153) = RCT(153)*V(251)*V(257) - A(154) = RCT(154)*V(197)*V(257) - A(155) = RCT(155)*V(253)*V(257) - A(156) = RCT(156)*V(213)*V(257) - A(157) = RCT(157)*V(235)*V(257) - A(158) = RCT(158)*V(213)*V(257) - A(159) = RCT(159)*V(235)*V(257) - A(160) = RCT(160)*V(250)*V(257) - A(161) = RCT(161)*V(287)*V(287) - A(162) = RCT(162)*V(263)*V(270) - A(163) = RCT(163)*V(71) - A(164) = RCT(164)*V(82)*V(269) - A(165) = RCT(165)*V(82)*V(269) - A(166) = RCT(166)*V(82)*V(287) - A(167) = RCT(167)*V(269)*V(286) - A(168) = RCT(168)*V(277)*V(282) - A(169) = RCT(169)*V(274)*V(281) - A(170) = RCT(170)*V(281)*V(282) - A(171) = RCT(171)*V(269)*V(272) - A(172) = RCT(172)*V(274)*V(274) - A(173) = RCT(173)*V(274)*V(274) - A(174) = RCT(174)*V(274)*V(280) - A(175) = RCT(175)*V(172)*V(282) - A(176) = RCT(176)*V(125)*V(269) - A(177) = RCT(177)*V(256)*V(284) - A(178) = RCT(178)*V(272)*V(284) - A(179) = RCT(179)*V(269)*V(274) - A(180) = RCT(180)*V(282)*V(287) - A(181) = RCT(181)*V(262)*V(282) - A(182) = RCT(182)*V(261)*V(282) - A(183) = RCT(183)*V(219)*V(282) - A(184) = RCT(184)*V(157)*V(282) - A(185) = RCT(185)*V(121)*V(282) - A(186) = RCT(186)*V(270)*V(282) - A(187) = RCT(187)*V(270)*V(274) - A(188) = RCT(188)*V(74)*V(269) - A(189) = RCT(189)*V(70)*V(269) - A(190) = RCT(190)*V(97)*V(269) - A(191) = RCT(191)*V(268)*V(279) - A(192) = RCT(192)*V(268)*F(2) - A(193) = RCT(193)*V(268)*F(3) - A(194) = RCT(194)*V(268)*F(1) - A(195) = RCT(195)*V(57)*V(268) - A(196) = RCT(196)*V(57)*V(268) - A(197) = RCT(197)*V(186)*V(268) - A(198) = RCT(198)*V(186)*V(268) - A(199) = RCT(199)*V(186)*V(268) - A(200) = RCT(200)*V(284)*F(3) - A(201) = RCT(201)*V(277)*V(284) - A(202) = RCT(202)*V(269)*F(1) - A(203) = RCT(203)*V(269)*V(284) - A(204) = RCT(204)*V(281)*V(284) - A(205) = RCT(205)*V(268)*V(277) - A(206) = RCT(206)*V(268)*V(277) - A(207) = RCT(207)*V(62)*V(284) - A(208) = RCT(208)*V(62)*V(269) - A(209) = RCT(209)*V(270)*V(284) - A(210) = RCT(210)*V(284)*V(287) - A(211) = RCT(211)*V(280)*V(284) - A(212) = RCT(212)*V(270)*V(284) - A(213) = RCT(213)*V(208)*V(284) - A(214) = RCT(214)*V(173)*F(3) - A(215) = RCT(215)*V(173)*V(277) - A(216) = RCT(216)*V(173)*V(281) - A(217) = RCT(217)*V(173)*V(281) - A(219) = RCT(219)*V(61)*F(3) - A(220) = RCT(220)*V(61)*V(280) - A(221) = RCT(221)*V(61)*V(270) - A(222) = RCT(222)*V(274)*V(284) - A(223) = RCT(223)*V(262)*V(284) - A(224) = RCT(224)*V(268)*V(271) - A(225) = RCT(225)*V(268)*V(272) - A(226) = RCT(226)*V(192)*V(268) - A(227) = RCT(227)*V(51)*V(268) - A(228) = RCT(228)*V(97)*V(268) - A(229) = RCT(229)*V(70)*V(268) - A(230) = RCT(230)*V(74)*V(268) - A(231) = RCT(231)*V(81)*V(268) - A(232) = RCT(232)*V(52)*V(268) - A(233) = RCT(233)*V(53)*V(268) - A(234) = RCT(234)*V(55)*V(268) - A(235) = RCT(235)*V(44)*V(268) - A(236) = RCT(236)*V(79)*V(268) - A(237) = RCT(237)*V(80)*V(268) - A(238) = RCT(238)*V(78)*V(268) - A(239) = RCT(239)*V(48)*V(268) - A(240) = RCT(240)*V(42)*V(268) - A(241) = RCT(241)*V(46)*V(268) - A(242) = RCT(242)*V(45)*V(268) - A(243) = RCT(243)*V(192)*V(269) - A(244) = RCT(244)*V(263)*V(273) - A(245) = RCT(245)*V(269)*V(273) - A(246) = RCT(246)*V(269)*V(273) - A(247) = RCT(247)*V(107)*V(269) - A(248) = RCT(248)*V(72)*V(269) - A(249) = RCT(249)*V(269)*V(271) - A(250) = RCT(250)*V(267)*V(269) - A(251) = RCT(251)*V(231)*V(269) - A(252) = RCT(252)*V(259)*V(269) - A(253) = RCT(253)*V(100)*V(269) - A(254) = RCT(254)*V(73)*V(269) - A(255) = RCT(255)*V(68)*V(269) - A(256) = RCT(256)*V(39)*V(269) - A(257) = RCT(257)*V(81)*V(269) - A(258) = RCT(258)*V(79)*V(269) - A(259) = RCT(259)*V(80)*V(269) - A(260) = RCT(260)*V(78)*V(269) - A(261) = RCT(261)*V(186)*V(285) - A(262) = RCT(262)*V(262)*V(285) - A(263) = RCT(263)*V(277)*V(285) - A(264) = RCT(264)*V(285)*F(1) - A(265) = RCT(265)*V(208)*V(285) - A(266) = RCT(266)*V(281)*V(285) - A(267) = RCT(267)*V(281)*V(285) - A(268) = RCT(268)*V(273)*V(284) - A(269) = RCT(269)*V(273)*V(281) - A(270) = RCT(270)*V(273)*V(280) - A(271) = RCT(271)*V(270)*V(273) - A(272) = RCT(272)*V(273)*V(273) - A(273) = RCT(273)*V(273)*V(273) - A(274) = RCT(274)*V(273)*V(273) - A(275) = RCT(275)*V(285)*F(3) - A(276) = RCT(276)*V(103) - A(277) = RCT(277)*V(273)*V(273) - A(278) = RCT(278)*V(72) - A(279) = RCT(279)*V(103)*V(285) - A(280) = RCT(280)*V(103)*V(285) - A(281) = RCT(281)*V(273)*V(274) - A(282) = RCT(282)*V(273)*V(274) - A(283) = RCT(283)*V(273)*V(274) - A(284) = RCT(284)*V(259)*V(284) - A(285) = RCT(285)*V(259)*V(285) - A(286) = RCT(286)*V(100)*V(285) - A(287) = RCT(287)*V(73)*V(285) - A(288) = RCT(288)*V(68)*V(285) - A(289) = RCT(289)*V(207)*V(285) - A(290) = RCT(290)*V(263)*V(285) - A(291) = RCT(291)*V(134)*V(285) - A(292) = RCT(292)*V(157)*V(285) - A(293) = RCT(293)*V(213)*V(285) - A(294) = RCT(294)*V(235)*V(285) - A(295) = RCT(295)*V(214)*V(285) - A(296) = RCT(296)*V(129)*V(285) - A(297) = RCT(297)*V(215)*V(285) - A(298) = RCT(298)*V(121)*V(285) - A(299) = RCT(299)*V(121)*V(285) - A(300) = RCT(300)*V(219)*V(285) - A(301) = RCT(301)*V(220)*V(285) - A(302) = RCT(302)*V(112)*V(285) - A(303) = RCT(303)*V(254)*V(285) - A(304) = RCT(304)*V(254)*V(282) - A(305) = RCT(305)*V(265)*V(280) - A(306) = RCT(306)*V(56)*V(56) - A(307) = RCT(307)*V(265)*V(270) - A(308) = RCT(308)*V(199) - A(309) = RCT(309)*V(199)*V(199) - A(310) = RCT(310)*V(140)*V(287) - A(311) = RCT(311)*V(223)*V(270) - A(312) = RCT(312)*V(266) - A(313) = RCT(313)*V(265)*V(266) - A(314) = RCT(314)*V(265)*V(274) - A(315) = RCT(315)*V(223)*V(274) - A(316) = RCT(316)*V(223)*V(274) - A(317) = RCT(317)*V(90)*V(223) - A(318) = RCT(318)*V(90)*V(90) - A(319) = RCT(319)*V(38) - A(320) = RCT(320)*V(90)*V(280) - A(321) = RCT(321)*V(223)*V(273) - A(322) = RCT(322)*V(223)*V(273) - A(323) = RCT(323)*V(223)*V(273) - A(324) = RCT(324)*V(265)*V(277) - A(325) = RCT(325)*V(265)*V(281) - A(326) = RCT(326)*V(140)*V(269) - A(327) = RCT(327)*V(65)*V(269) - A(328) = RCT(328)*V(264)*V(269) - A(329) = RCT(329)*V(223)*V(281) - A(330) = RCT(330)*V(223)*V(280) - A(331) = RCT(331)*V(223)*V(223) - A(332) = RCT(332)*V(223)*V(223) - A(333) = RCT(333)*V(40) - A(334) = RCT(334)*V(40) - A(335) = RCT(335)*V(43)*V(269) - A(336) = RCT(336)*V(205)*V(269) - A(337) = RCT(337)*V(194)*V(269) - A(338) = RCT(338)*V(230)*V(258) - A(339) = RCT(339)*V(230)*V(280) - A(340) = RCT(340)*V(230)*V(270) - A(341) = RCT(341)*V(230)*V(279) - A(342) = RCT(342)*V(230)*V(279)*V(279) - A(343) = RCT(343)*V(230)*V(277) - A(344) = RCT(344)*V(230)*V(286) - A(345) = RCT(345)*V(191)*V(258) - A(346) = RCT(346)*V(191)*V(280) - A(347) = RCT(347)*V(191)*V(270) - A(348) = RCT(348)*V(191)*V(286) - A(349) = RCT(349)*V(191)*V(279) - A(350) = RCT(350)*V(191)*V(279) - A(351) = RCT(351)*V(150)*V(269) - A(352) = RCT(352)*V(151)*V(269) - A(353) = RCT(353)*V(234)*V(280) - A(354) = RCT(354)*V(234)*V(281) - A(355) = RCT(355)*V(234)*V(263) - A(356) = RCT(356)*V(234)*V(257) - A(357) = RCT(357)*V(234)*V(287) - A(358) = RCT(358)*V(150)*V(277) - A(359) = RCT(359)*V(151)*V(277) - A(360) = RCT(360)*V(150)*V(287) - A(361) = RCT(361)*V(151)*V(287) - A(362) = RCT(362)*V(165)*V(269) - A(363) = RCT(363)*V(165)*V(277) - A(364) = RCT(364)*V(165)*V(287) - A(365) = RCT(365)*V(221)*V(280) - A(366) = RCT(366)*V(221)*V(281) - A(367) = RCT(367)*V(221)*V(263) - A(368) = RCT(368)*V(221)*V(257) - A(369) = RCT(369)*V(221)*V(287) - A(370) = RCT(370)*V(118)*V(269) - A(371) = RCT(371)*V(211)*V(280) - A(372) = RCT(372)*V(212)*V(280) - A(373) = RCT(373)*V(211)*V(281) - A(374) = RCT(374)*V(212)*V(281) - A(375) = RCT(375)*V(211)*V(263) - A(376) = RCT(376)*V(212)*V(263) - A(377) = RCT(377)*V(211)*V(257) - A(378) = RCT(378)*V(212)*V(257) - A(379) = RCT(379)*V(211)*V(287) - A(380) = RCT(380)*V(212)*V(287) - A(381) = RCT(381)*V(211)*V(211) - A(382) = RCT(382)*V(211)*V(212) - A(383) = RCT(383)*V(212)*V(212) - A(384) = RCT(384)*V(174)*V(269) - A(385) = RCT(385)*V(196)*V(269) - A(386) = RCT(386)*V(196)*V(277) - A(387) = RCT(387)*V(196)*V(287) - A(388) = RCT(388)*V(174)*V(287) - A(389) = RCT(389)*V(96) - A(390) = RCT(390)*V(41) - A(391) = RCT(391)*V(131)*V(269) - A(392) = RCT(392)*V(87)*V(269) - A(393) = RCT(393)*V(88)*V(269) - A(394) = RCT(394)*V(86)*V(269) - A(395) = RCT(395)*V(89)*V(269) - A(396) = RCT(396)*V(220)*V(277) - A(397) = RCT(397)*V(220)*V(269) - A(398) = RCT(398)*V(220)*V(269) - A(399) = RCT(399)*V(220)*V(269) - A(400) = RCT(400)*V(220)*V(269) - A(401) = RCT(401)*V(242)*V(281) - A(402) = RCT(402)*V(242)*V(281) - A(403) = RCT(403)*V(243)*V(281) - A(404) = RCT(404)*V(243)*V(281) - A(405) = RCT(405)*V(242) - A(406) = RCT(406)*V(242) - A(407) = RCT(407)*V(243) - A(408) = RCT(408)*V(243) - A(409) = RCT(409)*V(242)*V(242) - A(410) = RCT(410)*V(243)*V(243) - A(411) = RCT(411)*V(242)*V(243) - A(412) = RCT(412)*V(242)*V(242) - A(413) = RCT(413)*V(243)*V(243) - A(414) = RCT(414)*V(242)*V(243) - A(415) = RCT(415)*V(242)*V(263) - A(416) = RCT(416)*V(242)*V(263) - A(417) = RCT(417)*V(243)*V(263) - A(418) = RCT(418)*V(243)*V(263) - A(419) = RCT(419)*V(242)*V(280) - A(420) = RCT(420)*V(242)*V(280) - A(421) = RCT(421)*V(242)*V(280) - A(422) = RCT(422)*V(242)*V(280) - A(423) = RCT(423)*V(243)*V(280) - A(424) = RCT(424)*V(243)*V(280) - A(425) = RCT(425)*V(243)*V(280) - A(426) = RCT(426)*V(243)*V(280) - A(427) = RCT(427)*V(182)*V(269) - A(428) = RCT(428)*V(184)*V(269) - A(429) = RCT(429)*V(126)*V(269) - A(430) = RCT(430)*V(124)*V(269) - A(431) = RCT(431)*V(189)*V(269) - A(432) = RCT(432)*V(170)*V(269) - A(433) = RCT(433)*V(106)*V(269) - A(434) = RCT(434)*V(153)*V(269) - A(435) = RCT(435)*V(153)*V(269) - A(436) = RCT(436)*V(158)*V(269) - A(437) = RCT(437)*V(158)*V(269) - A(438) = RCT(438)*V(153)*V(269) - A(439) = RCT(439)*V(158)*V(269) - A(440) = RCT(440)*V(167)*V(269) - A(441) = RCT(441)*V(161)*V(269) - A(442) = RCT(442)*V(179) - A(443) = RCT(443)*V(179)*V(280) - A(444) = RCT(444)*V(179)*V(280) - A(445) = RCT(445)*V(179)*V(281) - A(446) = RCT(446)*V(180) - A(447) = RCT(447)*V(180)*V(280) - A(448) = RCT(448)*V(180)*V(280) - A(449) = RCT(449)*V(180)*V(281) - A(450) = RCT(450)*V(183) - A(451) = RCT(451)*V(183)*V(280) - A(452) = RCT(452)*V(183)*V(280) - A(453) = RCT(453)*V(183)*V(281) - A(454) = RCT(454)*V(114)*V(269) - A(455) = RCT(455)*V(127)*V(269) - A(456) = RCT(456)*V(127)*V(269) - A(457) = RCT(457)*V(128)*V(269) - A(458) = RCT(458)*V(128)*V(269) - A(459) = RCT(459)*V(224) - A(460) = RCT(460)*V(224) - A(461) = RCT(461)*V(224)*V(281) - A(462) = RCT(462)*V(224)*V(280) - A(463) = RCT(463)*V(224)*V(280) - A(464) = RCT(464)*V(225) - A(465) = RCT(465)*V(225) - A(466) = RCT(466)*V(225)*V(280) - A(467) = RCT(467)*V(225)*V(280) - A(468) = RCT(468)*V(225)*V(281) - A(469) = RCT(469)*V(190)*V(281) - A(470) = RCT(470)*V(190)*V(280) - A(471) = RCT(471)*V(190)*V(280) - A(472) = RCT(472)*V(190) - A(473) = RCT(473)*V(120)*V(280) - A(474) = RCT(474)*V(120)*V(281) - A(475) = RCT(475)*V(116)*V(280) - A(476) = RCT(476)*V(116)*V(281) - A(477) = RCT(477)*V(136)*V(269) - A(478) = RCT(478)*V(136)*V(269) - A(479) = RCT(479)*V(137)*V(269) - A(480) = RCT(480)*V(137)*V(269) - A(481) = RCT(481)*V(216)*V(269) - A(482) = RCT(482)*V(216)*V(269) - A(483) = RCT(483)*V(210)*V(269) - A(484) = RCT(484)*V(210)*V(269) - A(485) = RCT(485)*V(216)*V(269) - A(486) = RCT(486)*V(210)*V(269) - A(487) = RCT(487)*V(162) - A(488) = RCT(488)*V(162)*V(281) - A(489) = RCT(489)*V(162)*V(280) - A(490) = RCT(490)*V(162)*V(280) - A(491) = RCT(491)*V(148) - A(492) = RCT(492)*V(148)*V(281) - A(493) = RCT(493)*V(148)*V(280) - A(494) = RCT(494)*V(148)*V(280) - A(495) = RCT(495)*V(164) - A(496) = RCT(496)*V(163) - A(497) = RCT(497)*V(164)*V(281) - A(498) = RCT(498)*V(164)*V(280) - A(499) = RCT(499)*V(164)*V(280) - A(500) = RCT(500)*V(163)*V(281) - A(501) = RCT(501)*V(163)*V(280) - A(502) = RCT(502)*V(163)*V(280) - A(503) = RCT(503)*V(229)*V(281) - A(504) = RCT(504)*V(229)*V(280) - A(505) = RCT(505)*V(229)*V(280) - A(506) = RCT(506)*V(220)*V(287) - A(507) = RCT(507)*V(240)*V(281) - A(508) = RCT(508)*V(241)*V(281) - A(509) = RCT(509)*V(240)*V(240) - A(510) = RCT(510)*V(240)*V(241) - A(511) = RCT(511)*V(241)*V(241) - A(512) = RCT(512)*V(241)*V(263) - A(513) = RCT(513)*V(240)*V(263) - A(514) = RCT(514)*V(240)*V(257) - A(515) = RCT(515)*V(241)*V(257) - A(516) = RCT(516)*V(240)*V(287) - A(517) = RCT(517)*V(241)*V(287) - A(518) = RCT(518)*V(240)*V(280) - A(519) = RCT(519)*V(240)*V(280) - A(520) = RCT(520)*V(241)*V(280) - A(521) = RCT(521)*V(241)*V(280) - A(522) = RCT(522)*V(123)*F(3) - A(523) = RCT(523)*V(123) - A(524) = RCT(524)*V(177)*V(269) - A(525) = RCT(525)*V(147)*V(269) - A(526) = RCT(526)*V(177)*V(269) - A(527) = RCT(527)*V(147)*V(269) - A(528) = RCT(528)*V(147)*V(269) - A(529) = RCT(529)*V(177)*V(269) - A(530) = RCT(530)*V(147)*V(269) - A(531) = RCT(531)*V(147)*V(269) - A(532) = RCT(532)*V(185) - A(533) = RCT(533)*V(217) - A(534) = RCT(534)*V(217)*V(281) - A(535) = RCT(535)*V(185)*V(281) - A(536) = RCT(536)*V(217)*V(280) - A(537) = RCT(537)*V(217)*V(280) - A(538) = RCT(538)*V(185)*V(280) - A(539) = RCT(539)*V(185)*V(280) - A(540) = RCT(540)*V(236)*V(269) - A(541) = RCT(541)*V(236)*V(269) - A(542) = RCT(542)*V(146)*V(280) - A(543) = RCT(543)*V(146)*V(281) - A(544) = RCT(544)*V(239)*V(269) - A(545) = RCT(545)*V(143)*V(280) - A(546) = RCT(546)*V(143)*V(281) - A(547) = RCT(547)*V(244)*V(269) - A(548) = RCT(548)*V(244)*V(277) - A(549) = RCT(549)*V(247)*V(269) - A(550) = RCT(550)*V(247)*V(269) - A(551) = RCT(551)*V(247)*V(277) - A(552) = RCT(552)*V(247)*V(287) - A(553) = RCT(553)*V(237)*V(269) - A(554) = RCT(554)*V(226)*V(269) - A(555) = RCT(555)*V(227)*V(269) - A(556) = RCT(556)*V(195)*V(269) - A(557) = RCT(557)*V(171)*V(269) - A(558) = RCT(558)*V(141)*V(280) - A(559) = RCT(559)*V(141)*V(281) - A(560) = RCT(560)*V(141)*V(270) - A(561) = RCT(561)*V(142)*V(280) - A(562) = RCT(562)*V(142)*V(281) - A(563) = RCT(563)*V(142)*V(270) - A(564) = RCT(564)*V(160)*V(269) - A(565) = RCT(565)*V(152)*V(269) - A(566) = RCT(566)*V(115)*V(269) - A(567) = RCT(567)*V(181)*V(269) - A(568) = RCT(568)*V(166)*V(269) - A(569) = RCT(569)*V(130)*V(269) - A(570) = RCT(570)*V(200)*V(281) - A(571) = RCT(571)*V(200)*V(280) - A(572) = RCT(572)*V(200)*V(280) - A(573) = RCT(573)*V(201)*V(281) - A(574) = RCT(574)*V(203)*V(281) - A(575) = RCT(575)*V(133)*V(269) - A(576) = RCT(576)*V(201) - A(577) = RCT(577)*V(201)*V(280) - A(578) = RCT(578)*V(201)*V(280) - A(579) = RCT(579)*V(203)*V(280) - A(580) = RCT(580)*V(203)*V(270) - A(581) = RCT(581)*V(245)*V(281) - A(582) = RCT(582)*V(245)*V(280) - A(583) = RCT(583)*V(245)*V(270) - A(584) = RCT(584)*V(245)*V(287) - A(585) = RCT(585)*V(245)*V(263) - A(586) = RCT(586)*V(149) - A(587) = RCT(587)*V(149)*V(269) - A(588) = RCT(588)*V(84)*V(269) - A(589) = RCT(589)*V(202)*V(269) - A(590) = RCT(590)*V(122)*V(269) - A(591) = RCT(591)*V(139)*V(269) - A(592) = RCT(592)*V(159)*V(269) - A(593) = RCT(593)*V(209)*V(269) - A(594) = RCT(594)*V(238)*V(269) - A(595) = RCT(595)*V(205)*V(287) - A(596) = RCT(596)*V(104)*V(269) - A(597) = RCT(597)*V(83)*V(269) - A(598) = RCT(598)*V(257)*V(281) - A(599) = RCT(599)*V(168)*V(269) - A(600) = RCT(600)*V(168)*V(269) - A(601) = RCT(601)*V(18)*V(269) - A(602) = RCT(602)*V(17)*V(281) - A(603) = RCT(603)*V(17)*V(280) - A(604) = RCT(604)*V(75)*V(277) - A(605) = RCT(605)*V(75)*V(269) - A(606) = RCT(606)*V(54)*V(269) - A(607) = RCT(607)*V(175)*V(281) - A(608) = RCT(608)*V(175)*V(280) - A(609) = RCT(609)*V(175)*V(287) - A(610) = RCT(610)*V(175)*V(263) - A(611) = RCT(611)*V(102) - A(612) = RCT(612)*V(102)*F(3) - A(613) = RCT(613)*V(64)*V(269) - A(614) = RCT(614)*V(113)*V(269) - A(615) = RCT(615)*V(113)*V(269) - A(616) = RCT(616)*V(60)*V(269) - A(617) = RCT(617)*V(76)*V(269) - A(618) = RCT(618)*V(77)*V(269) - A(619) = RCT(619)*V(178)*V(281) - A(620) = RCT(620)*V(178)*V(280) - A(621) = RCT(621)*V(178)*V(287) - A(622) = RCT(622)*V(178)*V(263) - A(623) = RCT(623)*V(178)*V(257) - A(624) = RCT(624)*V(117)*V(269) - A(625) = RCT(625)*V(117)*V(287) - A(626) = RCT(626)*V(109)*V(269) - A(627) = RCT(627)*V(109)*V(287) - A(628) = RCT(628)*V(138)*V(269) - A(629) = RCT(629)*V(138)*V(277) - A(630) = RCT(630)*V(138)*V(287) - A(631) = RCT(631)*V(99)*V(269) - A(632) = RCT(632)*V(99)*V(287) - A(633) = RCT(633)*V(176)*V(281) - A(634) = RCT(634)*V(176)*V(280) - A(635) = RCT(635)*V(176)*V(270) - A(636) = RCT(636)*V(67)*V(269) - A(637) = RCT(637)*V(95) - A(638) = RCT(638)*V(95)*V(269) - A(639) = RCT(639)*V(187)*V(270) - A(640) = RCT(640)*V(187)*V(280) - A(641) = RCT(641)*V(187)*V(287) - A(642) = RCT(642)*V(187)*V(281) - A(643) = RCT(643)*V(105)*V(269) - A(644) = RCT(644)*V(156)*V(277) - A(645) = RCT(645)*V(156)*V(270) - A(646) = RCT(646)*V(206)*V(269) - A(647) = RCT(647)*V(206)*V(287) - A(648) = RCT(648)*V(187)*V(263) - A(649) = RCT(649)*V(176)*V(263) - A(650) = RCT(650)*V(155)*V(269) - A(651) = RCT(651)*V(155)*V(277) - A(652) = RCT(652)*V(155) - A(653) = RCT(653)*V(145)*V(269) - A(654) = RCT(654)*V(145)*V(277) - A(655) = RCT(655)*V(145) - A(656) = RCT(656)*V(12)*V(281) - A(657) = RCT(657)*V(12)*V(280) - A(658) = RCT(658)*V(21)*V(281) - A(659) = RCT(659)*V(21)*V(280) - A(660) = RCT(660)*V(26)*V(281) - A(661) = RCT(661)*V(26)*V(280) - A(662) = RCT(662)*V(263)*V(287) - A(663) = RCT(663)*V(281) - A(664) = RCT(664)*V(270) - A(665) = RCT(665)*V(287) - A(666) = RCT(666)*V(287) - A(667) = RCT(667)*V(287) - A(668) = RCT(668)*V(169)*V(279) - A(669) = RCT(669)*V(169)*V(271) - A(670) = RCT(670)*V(169) - A(671) = RCT(671)*V(169)*V(278) - A(672) = RCT(672)*V(169)*V(283) - A(673) = RCT(673)*V(269)*V(278) - A(674) = RCT(674)*V(269)*V(283) - A(675) = RCT(675)*V(172)*V(279) - A(676) = RCT(676)*V(172)*V(271) - A(677) = RCT(677)*V(259)*V(279) - A(678) = RCT(678)*V(259)*V(271) - A(679) = RCT(679)*V(259)*V(272) - A(680) = RCT(680)*V(259)*V(275) - A(681) = RCT(681)*V(259)*V(276) - A(682) = RCT(682)*V(259)*V(278) - A(683) = RCT(683)*V(259)*V(283) - A(684) = RCT(684)*V(231)*V(278) - A(685) = RCT(685)*V(231)*V(283) - A(686) = RCT(686)*V(231)*V(271) - A(687) = RCT(687)*V(231)*V(275) - A(688) = RCT(688)*V(231)*V(276) - A(689) = RCT(689)*V(231)*V(272) - A(690) = RCT(690)*V(267)*V(271) - A(691) = RCT(691)*V(267)*V(272) - A(692) = RCT(692)*V(267)*V(278) - A(693) = RCT(693)*V(267)*V(283) - A(694) = RCT(694)*V(267)*V(286) - A(695) = RCT(695)*V(256)*V(272) - A(696) = RCT(696)*V(256)*V(271) - A(697) = RCT(697)*V(256)*V(278) - A(698) = RCT(698)*V(256)*V(283) - A(699) = RCT(699)*V(256)*V(275) - A(700) = RCT(700)*V(256)*V(276) - A(701) = RCT(701)*V(256)*V(286) - A(702) = RCT(702)*V(272)*V(277) - A(703) = RCT(703)*V(275)*V(277) - A(704) = RCT(704)*V(276)*V(277) - A(705) = RCT(705)*V(272) - A(706) = RCT(706)*V(272) - A(707) = RCT(707)*V(65) - A(708) = RCT(708)*V(65) - A(709) = RCT(709)*V(65) - A(710) = RCT(710)*V(40) - A(711) = RCT(711)*V(40) - A(712) = RCT(712)*V(40) - A(713) = RCT(713)*V(47) - A(714) = RCT(714)*V(47) - A(715) = RCT(715)*V(47) - A(716) = RCT(716)*V(38) - A(717) = RCT(717)*V(38) - A(718) = RCT(718)*V(38) - A(719) = RCT(719)*V(266)*V(279) - A(720) = RCT(720)*V(199)*V(275) - A(721) = RCT(721)*V(199)*V(276) - A(722) = RCT(722)*V(199)*V(278) - A(723) = RCT(723)*V(199)*V(283) - A(724) = RCT(724)*V(266)*V(275) - A(725) = RCT(725)*V(266)*V(276) - A(726) = RCT(726)*V(266)*V(278) - A(727) = RCT(727)*V(266)*V(283) - A(728) = RCT(728)*V(264)*V(275) - A(729) = RCT(729)*V(264)*V(276) - A(730) = RCT(730)*V(264)*V(278) - A(731) = RCT(731)*V(264)*V(283) - A(732) = RCT(732)*V(218) - A(733) = RCT(733)*V(228) - A(734) = RCT(734)*V(127) - A(735) = RCT(735)*V(128) - A(736) = RCT(736)*V(114) - A(737) = RCT(737)*V(23) - A(738) = RCT(738)*V(237) - A(739) = RCT(739)*V(198) - A(740) = RCT(740)*V(174) - A(741) = RCT(741)*V(196) - A(742) = RCT(742)*V(131) - A(743) = RCT(743)*V(104) - A(744) = RCT(744)*V(84) - A(745) = RCT(745)*V(216) - A(746) = RCT(746)*V(136) - A(747) = RCT(747)*V(137) - A(748) = RCT(748)*V(210) - A(749) = RCT(749)*V(170) - A(750) = RCT(750)*V(147) - A(751) = RCT(751)*V(177) - A(752) = RCT(752)*V(239) - A(753) = RCT(753)*V(209) - A(754) = RCT(754)*V(238) - A(755) = RCT(755)*V(171) - A(756) = RCT(756)*V(195) - A(757) = RCT(757)*V(206) - A(758) = RCT(758)*V(277) - A(759) = RCT(759)*V(277) - A(760) = RCT(760)*F(3) - A(761) = RCT(761)*V(270) - A(762) = RCT(762)*V(208) - A(763) = RCT(763)*V(134) - A(764) = RCT(764)*V(262) - A(765) = RCT(765)*V(262) - A(766) = RCT(766)*V(260) - A(767) = RCT(767)*V(188) - A(768) = RCT(768)*V(101) - A(769) = RCT(769)*V(101) - A(770) = RCT(770)*V(287) - A(771) = RCT(771)*V(287) - A(772) = RCT(772)*V(169) - A(773) = RCT(773)*V(261) - A(774) = RCT(774)*V(261) - A(775) = RCT(775)*V(63) - A(776) = RCT(776)*V(255) - A(777) = RCT(777)*V(219) - A(778) = RCT(778)*V(219) - A(779) = RCT(779)*V(222) - A(780) = RCT(780)*V(232) - A(781) = RCT(781)*V(218) - A(782) = RCT(782)*V(218) - A(783) = RCT(783)*V(218) - A(784) = RCT(784)*V(228) - A(785) = RCT(785)*V(244) - A(786) = RCT(786)*V(244) - A(787) = RCT(787)*V(244) - A(788) = RCT(788)*V(247) - A(789) = RCT(789)*V(246) - A(790) = RCT(790)*V(111) - A(791) = RCT(791)*V(108) - A(792) = RCT(792)*V(92) - A(793) = RCT(793)*V(93) - A(794) = RCT(794)*V(91) - A(795) = RCT(795)*V(110) - A(796) = RCT(796)*V(94) - A(797) = RCT(797)*V(198) - A(798) = RCT(798)*V(66) - A(799) = RCT(799)*V(125) - A(800) = RCT(800)*V(274) - A(801) = RCT(801)*V(256) - A(802) = RCT(802)*V(172) - A(803) = RCT(803)*V(172) - A(804) = RCT(804)*V(50) - A(805) = RCT(805)*V(74) - A(806) = RCT(806)*V(70) - A(807) = RCT(807)*V(97) - A(808) = RCT(808)*V(100) - A(809) = RCT(809)*V(73) - A(810) = RCT(810)*V(132) - A(811) = RCT(811)*V(192) - A(812) = RCT(812)*V(273) - A(813) = RCT(813)*V(107) - A(814) = RCT(814)*V(72) - A(815) = RCT(815)*V(231) - A(816) = RCT(816)*V(259) - A(817) = RCT(817)*V(259) - A(818) = RCT(818)*V(267) - A(819) = RCT(819)*V(39) - A(820) = RCT(820)*V(51) - A(821) = RCT(821)*V(52) - A(822) = RCT(822)*V(53) - A(823) = RCT(823)*V(48) - A(824) = RCT(824)*V(42) - A(825) = RCT(825)*V(46) - A(826) = RCT(826)*V(78) - A(827) = RCT(827)*V(79) - A(828) = RCT(828)*V(80) - A(829) = RCT(829)*V(81) - A(830) = RCT(830)*V(44) - A(831) = RCT(831)*V(55) - A(832) = RCT(832)*V(45) - A(833) = RCT(833)*V(103) - A(834) = RCT(834)*V(140) - A(835) = RCT(835)*V(264) - A(836) = RCT(836)*V(223) - A(837) = RCT(837)*V(90) - A(838) = RCT(838)*V(56) - A(839) = RCT(839)*V(199) - A(840) = RCT(840)*V(266) - A(841) = RCT(841)*V(40) - A(842) = RCT(842)*V(43) - A(843) = RCT(843)*V(1) - A(844) = RCT(844)*V(3) - A(845) = RCT(845)*V(2) - A(846) = RCT(846)*V(38) - A(847) = RCT(847)*V(47) - A(848) = RCT(848)*V(69) - A(849) = RCT(849)*V(98) - A(850) = RCT(850)*V(71) - A(851) = RCT(851)*V(71) - A(852) = RCT(852)*V(193) - A(853) = RCT(853)*V(57) - A(854) = RCT(854)*V(62) - A(855) = RCT(855)*V(119) - A(856) = RCT(856)*V(280) - A(857) = RCT(857)*V(118) - A(858) = RCT(858)*V(205) - A(859) = RCT(859)*V(174) - A(860) = RCT(860)*V(196) - A(861) = RCT(861)*V(131) - A(862) = RCT(862)*V(59) - A(863) = RCT(863)*V(59) - A(864) = RCT(864)*V(58) - A(865) = RCT(865)*V(58) - A(866) = RCT(866)*V(87) - A(867) = RCT(867)*V(88) - A(868) = RCT(868)*V(86) - A(869) = RCT(869)*V(89) - A(870) = RCT(870)*V(83) - A(871) = RCT(871)*V(168) - A(872) = RCT(872)*V(104) - A(873) = RCT(873)*V(194) - A(874) = RCT(874)*V(166) - A(875) = RCT(875)*V(181) - A(876) = RCT(876)*V(226) - A(877) = RCT(877)*V(152) - A(878) = RCT(878)*V(160) - A(879) = RCT(879)*V(227) - A(880) = RCT(880)*V(133) - A(881) = RCT(881)*V(237) - A(882) = RCT(882)*V(195) - A(883) = RCT(883)*V(171) - A(884) = RCT(884)*V(153) - A(885) = RCT(885)*V(158) - A(886) = RCT(886)*V(167) - A(887) = RCT(887)*V(161) - A(888) = RCT(888)*V(182) - A(889) = RCT(889)*V(184) - A(890) = RCT(890)*V(126) - A(891) = RCT(891)*V(124) - A(892) = RCT(892)*V(216) - A(893) = RCT(893)*V(136) - A(894) = RCT(894)*V(137) - A(895) = RCT(895)*V(210) - A(896) = RCT(896)*V(177) - A(897) = RCT(897)*V(147) - A(898) = RCT(898)*V(147) - A(899) = RCT(899)*V(236) - A(900) = RCT(900)*V(239) - A(901) = RCT(901)*V(202) - A(902) = RCT(902)*V(202) - A(903) = RCT(903)*V(139) - A(904) = RCT(904)*V(159) - A(905) = RCT(905)*V(122) - A(906) = RCT(906)*V(238) - A(907) = RCT(907)*V(238) - A(908) = RCT(908)*V(209) - A(909) = RCT(909)*V(209) - A(910) = RCT(910)*V(113) - A(911) = RCT(911)*V(99) - A(912) = RCT(912)*V(67) - A(913) = RCT(913)*V(105) - A(914) = RCT(914)*V(206) + A(1) = RCT(1)*V(147)*V(276)*V(282) + A(2) = RCT(2)*V(147)*V(275) + A(3) = RCT(3)*V(147)*V(265) + A(4) = RCT(4)*V(138)*V(276)*V(282) + A(5) = RCT(5)*V(138)*V(275) + A(6) = RCT(6)*V(138)*V(265) + A(7) = RCT(7)*V(212)*V(276) + A(8) = RCT(8)*V(276)*V(282) + A(9) = RCT(9)*V(276) + A(10) = RCT(10)*V(263)*V(276) + A(11) = RCT(11)*V(86) + A(12) = RCT(12)*V(86)*V(276)*V(286) + A(13) = RCT(13)*V(279)*V(282) + A(14) = RCT(14)*V(282)*V(286) + A(15) = RCT(15)*V(282)*V(284) + A(16) = RCT(16)*V(282)*V(291) + A(17) = RCT(17)*V(266)*V(282) + A(18) = RCT(18)*V(286)*V(286) + A(19) = RCT(19)*V(286)*V(286) + A(20) = RCT(20)*V(284)*V(286) + A(21) = RCT(21)*V(212)*V(286) + A(22) = RCT(22)*V(279)*V(284) + A(23) = RCT(23)*V(284)*V(284) + A(24) = RCT(24)*V(267)*V(286) + A(25) = RCT(25)*V(190)*V(286) + A(26) = RCT(26)*V(266)*V(279) + A(27) = RCT(27)*V(266)*V(279) + A(28) = RCT(28)*V(266)*V(284) + A(29) = RCT(29)*V(266)*V(266) + A(30) = RCT(30)*V(266)*V(266) + A(31) = RCT(31)*V(266)*V(286) + A(32) = RCT(32)*V(137)*V(286) + A(33) = RCT(33)*V(196)*V(286) + A(34) = RCT(34)*V(263)*V(286) + A(35) = RCT(35)*V(286)*V(291) + A(36) = RCT(36)*V(265)*V(286) + A(37) = RCT(37)*V(279)*V(286) + A(38) = RCT(38)*V(193)*V(286) + A(39) = RCT(39)*V(284)*V(291) + A(40) = RCT(40)*V(102) + A(41) = RCT(41)*V(102)*V(286) + A(42) = RCT(42)*V(281)*V(284) + A(43) = RCT(43)*V(279)*V(281) + A(44) = RCT(44)*V(281)*V(286) + A(45) = RCT(45)*V(281)*V(291) + A(46) = RCT(46)*V(173) + A(47) = RCT(47)*V(211)*V(286) + A(48) = RCT(48)*V(218)*V(286) + A(49) = RCT(49)*V(281)*V(291) + A(50) = RCT(50)*V(263)*V(281) + A(51) = RCT(51)*V(264)*V(286) + A(52) = RCT(52)*V(264)*V(281) + A(53) = RCT(53)*V(261)*V(291) + A(54) = RCT(54)*V(67) + A(55) = RCT(55)*V(261)*V(279) + A(56) = RCT(56)*V(161)*V(286) + A(57) = RCT(57)*V(217)*V(279) + A(58) = RCT(58)*V(217)*V(279) + A(59) = RCT(59)*V(239)*V(279) + A(60) = RCT(60)*V(124)*V(286) + A(61) = RCT(61)*V(124)*V(286) + A(62) = RCT(62)*V(237)*V(279) + A(63) = RCT(63)*V(237)*V(279) + A(64) = RCT(64)*V(209)*V(279) + A(65) = RCT(65)*V(114)*V(286) + A(66) = RCT(66)*V(256)*V(279) + A(67) = RCT(67)*V(256)*V(279) + A(68) = RCT(68)*V(257)*V(279) + A(69) = RCT(69)*V(252)*V(279) + A(70) = RCT(70)*V(254)*V(279) + A(71) = RCT(71)*V(258)*V(279) + A(72) = RCT(72)*V(258)*V(279) + A(73) = RCT(73)*V(201)*V(279) + A(74) = RCT(74)*V(114)*V(281) + A(75) = RCT(75)*V(202)*V(286) + A(76) = RCT(76)*V(219)*V(286) + A(77) = RCT(77)*V(259)*V(286) + A(78) = RCT(78)*V(255)*V(291) + A(79) = RCT(79)*V(50) + A(80) = RCT(80)*V(255)*V(279) + A(81) = RCT(81)*V(259)*V(281) + A(82) = RCT(82)*V(221)*V(286) + A(83) = RCT(83)*V(237)*V(266) + A(84) = RCT(84)*V(209)*V(266) + A(85) = RCT(85)*V(256)*V(284) + A(86) = RCT(86)*V(257)*V(284) + A(87) = RCT(87)*V(252)*V(284) + A(88) = RCT(88)*V(254)*V(284) + A(89) = RCT(89)*V(258)*V(284) + A(90) = RCT(90)*V(201)*V(284) + A(91) = RCT(91)*V(226)*V(286) + A(92) = RCT(92)*V(217)*V(266) + A(93) = RCT(93)*V(239)*V(266) + A(94) = RCT(94)*V(226)*V(281) + A(95) = RCT(95)*V(256)*V(266) + A(96) = RCT(96)*V(257)*V(266) + A(97) = RCT(97)*V(252)*V(266) + A(98) = RCT(98)*V(254)*V(266) + A(99) = RCT(99)*V(258)*V(266) + A(100) = RCT(100)*V(201)*V(266) + A(101) = RCT(101)*V(133)*V(286) + A(102) = RCT(102)*V(158)*V(286) + A(103) = RCT(103)*V(217)*V(217) + A(104) = RCT(104)*V(239)*V(239) + A(105) = RCT(105)*V(217)*V(284) + A(106) = RCT(106)*V(239)*V(284) + A(107) = RCT(107)*V(237)*V(284) + A(108) = RCT(108)*V(209)*V(284) + A(109) = RCT(109)*V(255)*V(284) + A(110) = RCT(110)*V(253)*V(286) + A(111) = RCT(111)*V(253)*V(282) + A(112) = RCT(112)*V(236)*V(286) + A(113) = RCT(113)*V(236)*V(286) + A(114) = RCT(114)*V(253)*V(281) + A(115) = RCT(115)*V(223)*V(286) + A(116) = RCT(116)*V(233)*V(286) + A(117) = RCT(117)*V(223)*V(281) + A(118) = RCT(118)*V(233)*V(281) + A(119) = RCT(119)*V(250)*V(286) + A(120) = RCT(120)*V(250)*V(286) + A(121) = RCT(121)*V(113)*V(286) + A(122) = RCT(122)*V(110)*V(286) + A(123) = RCT(123)*V(94)*V(286) + A(124) = RCT(124)*V(95)*V(286) + A(125) = RCT(125)*V(93)*V(286) + A(126) = RCT(126)*V(106)*V(286) + A(127) = RCT(127)*V(112)*V(286) + A(128) = RCT(128)*V(24)*V(286) + A(129) = RCT(129)*V(88)*V(286) + A(130) = RCT(130)*V(161)*V(281) + A(131) = RCT(131)*V(261)*V(261) + A(132) = RCT(132)*V(261)*V(266) + A(133) = RCT(133)*V(256)*V(261) + A(134) = RCT(134)*V(252)*V(261) + A(135) = RCT(135)*V(254)*V(261) + A(136) = RCT(136)*V(258)*V(261) + A(137) = RCT(137)*V(257)*V(261) + A(138) = RCT(138)*V(201)*V(261) + A(139) = RCT(139)*V(217)*V(261) + A(140) = RCT(140)*V(239)*V(261) + A(141) = RCT(141)*V(209)*V(261) + A(142) = RCT(142)*V(237)*V(261) + A(143) = RCT(143)*V(255)*V(261) + A(144) = RCT(144)*V(255)*V(266) + A(145) = RCT(145)*V(281)*V(281) + A(146) = RCT(146)*V(266)*V(291) + A(147) = RCT(147)*V(74) + A(148) = RCT(148)*V(90)*V(286) + A(149) = RCT(149)*V(90)*V(286) + A(150) = RCT(150)*V(90)*V(281) + A(151) = RCT(151)*V(276)*V(286) + A(152) = RCT(152)*V(273)*V(282) + A(153) = RCT(153)*V(274)*V(284) + A(154) = RCT(154)*V(273)*V(284) + A(155) = RCT(155)*V(286)*V(289) + A(156) = RCT(156)*V(274)*V(274) + A(157) = RCT(157)*V(274)*V(274) + A(158) = RCT(158)*V(274)*V(279) + A(159) = RCT(159)*V(176)*V(273) + A(160) = RCT(160)*V(128)*V(286) + A(161) = RCT(161)*V(260)*V(288) + A(162) = RCT(162)*V(288)*V(289) + A(163) = RCT(163)*V(274)*V(286) + A(164) = RCT(164)*V(273)*V(281) + A(165) = RCT(165)*V(263)*V(273) + A(166) = RCT(166)*V(264)*V(273) + A(167) = RCT(167)*V(221)*V(273) + A(168) = RCT(168)*V(161)*V(273) + A(169) = RCT(169)*V(124)*V(273) + A(170) = RCT(170)*V(273)*V(291) + A(171) = RCT(171)*V(274)*V(291) + A(172) = RCT(172)*V(77)*V(286) + A(173) = RCT(173)*V(71)*V(286) + A(174) = RCT(174)*V(100)*V(286) + A(175) = RCT(175)*V(272)*V(278) + A(176) = RCT(176)*V(272)*F(2) + A(177) = RCT(177)*V(272)*F(3) + A(178) = RCT(178)*V(272)*F(1) + A(179) = RCT(179)*V(61)*V(272) + A(180) = RCT(180)*V(190)*V(272) + A(181) = RCT(181)*V(288)*F(3) + A(182) = RCT(182)*V(282)*V(288) + A(183) = RCT(183)*V(286)*F(1) + A(184) = RCT(184)*V(286)*V(288) + A(185) = RCT(185)*V(284)*V(288) + A(186) = RCT(186)*V(272)*V(282) + A(187) = RCT(187)*V(66)*V(288) + A(188) = RCT(188)*V(66)*V(286) + A(189) = RCT(189)*V(288)*V(291) + A(190) = RCT(190)*V(281)*V(288) + A(191) = RCT(191)*V(279)*V(288) + A(192) = RCT(192)*V(288)*V(291) + A(193) = RCT(193)*V(212)*V(288) + A(194) = RCT(194)*V(177)*F(3) + A(195) = RCT(195)*V(177)*V(282) + A(196) = RCT(196)*V(177)*V(284) + A(197) = RCT(197)*V(65)*F(3) + A(198) = RCT(198)*V(65)*V(279) + A(199) = RCT(199)*V(65)*V(291) + A(200) = RCT(200)*V(274)*V(288) + A(201) = RCT(201)*V(263)*V(288) + A(202) = RCT(202)*V(272)*V(275) + A(203) = RCT(203)*V(272)*V(289) + A(204) = RCT(204)*V(197)*V(272) + A(205) = RCT(205)*V(52)*V(272) + A(206) = RCT(206)*V(149)*V(272) + A(207) = RCT(207)*V(100)*V(272) + A(208) = RCT(208)*V(71)*V(272) + A(209) = RCT(209)*V(77)*V(272) + A(210) = RCT(210)*V(84)*V(272) + A(211) = RCT(211)*V(53)*V(272) + A(212) = RCT(212)*V(54)*V(272) + A(213) = RCT(213)*V(59)*V(272) + A(214) = RCT(214)*V(47)*V(272) + A(215) = RCT(215)*V(82)*V(272) + A(216) = RCT(216)*V(83)*V(272) + A(217) = RCT(217)*V(81)*V(272) + A(218) = RCT(218)*V(55)*V(272) + A(219) = RCT(219)*V(56)*V(272) + A(220) = RCT(220)*V(57)*V(272) + A(221) = RCT(221)*V(48)*V(272) + A(222) = RCT(222)*V(197)*V(286) + A(223) = RCT(223)*V(266)*V(285) + A(224) = RCT(224)*V(285)*V(286) + A(225) = RCT(225)*V(285)*V(286) + A(226) = RCT(226)*V(111)*V(286) + A(227) = RCT(227)*V(75)*V(286) + A(228) = RCT(228)*V(275)*V(286) + A(229) = RCT(229)*V(271)*V(286) + A(230) = RCT(230)*V(235)*V(286) + A(231) = RCT(231)*V(262)*V(286) + A(232) = RCT(232)*V(149)*V(286) + A(233) = RCT(233)*V(72)*V(286) + A(234) = RCT(234)*V(78)*V(286) + A(235) = RCT(235)*V(43)*V(286) + A(236) = RCT(236)*V(84)*V(286) + A(237) = RCT(237)*V(82)*V(286) + A(238) = RCT(238)*V(83)*V(286) + A(239) = RCT(239)*V(81)*V(286) + A(240) = RCT(240)*V(190)*V(290) + A(241) = RCT(241)*V(263)*V(290) + A(242) = RCT(242)*V(282)*V(290) + A(243) = RCT(243)*V(290)*F(1) + A(244) = RCT(244)*V(212)*V(290) + A(245) = RCT(245)*V(284)*V(290) + A(246) = RCT(246)*V(284)*V(290) + A(247) = RCT(247)*V(285)*V(288) + A(248) = RCT(248)*V(284)*V(285) + A(249) = RCT(249)*V(279)*V(285) + A(250) = RCT(250)*V(285)*V(291) + A(251) = RCT(251)*V(285)*V(285) + A(252) = RCT(252)*V(285)*V(285) + A(253) = RCT(253)*V(285)*V(285) + A(254) = RCT(254)*V(290)*F(3) + A(255) = RCT(255)*V(103) + A(256) = RCT(256)*V(285)*V(285) + A(257) = RCT(257)*V(75) + A(258) = RCT(258)*V(103)*V(290) + A(259) = RCT(259)*V(274)*V(285) + A(260) = RCT(260)*V(274)*V(285) + A(261) = RCT(261)*V(274)*V(285) + A(262) = RCT(262)*V(262)*V(288) + A(263) = RCT(263)*V(262)*V(290) + A(264) = RCT(264)*V(149)*V(290) + A(265) = RCT(265)*V(72)*V(290) + A(266) = RCT(266)*V(78)*V(290) + A(267) = RCT(267)*V(211)*V(290) + A(268) = RCT(268)*V(266)*V(290) + A(269) = RCT(269)*V(137)*V(290) + A(270) = RCT(270)*V(161)*V(290) + A(271) = RCT(271)*V(217)*V(290) + A(272) = RCT(272)*V(239)*V(290) + A(273) = RCT(273)*V(218)*V(290) + A(274) = RCT(274)*V(133)*V(290) + A(275) = RCT(275)*V(219)*V(290) + A(276) = RCT(276)*V(124)*V(290) + A(277) = RCT(277)*V(124)*V(290) + A(278) = RCT(278)*V(221)*V(290) + A(279) = RCT(279)*V(224)*V(290) + A(280) = RCT(280)*V(114)*V(290) + A(281) = RCT(281)*V(253)*V(290) + A(282) = RCT(282)*V(253)*V(273) + A(283) = RCT(283)*V(269)*V(279) + A(284) = RCT(284)*V(60)*V(60) + A(285) = RCT(285)*V(269)*V(291) + A(286) = RCT(286)*V(203) + A(287) = RCT(287)*V(203)*V(203) + A(288) = RCT(288)*V(143)*V(281) + A(289) = RCT(289)*V(227)*V(291) + A(290) = RCT(290)*V(270) + A(291) = RCT(291)*V(269)*V(270) + A(292) = RCT(292)*V(269)*V(274) + A(293) = RCT(293)*V(227)*V(274) + A(294) = RCT(294)*V(92)*V(227) + A(295) = RCT(295)*V(92)*V(92) + A(296) = RCT(296)*V(42) + A(297) = RCT(297)*V(92)*V(279) + A(298) = RCT(298)*V(227)*V(285) + A(299) = RCT(299)*V(269)*V(282) + A(300) = RCT(300)*V(269)*V(284) + A(301) = RCT(301)*V(143)*V(286) + A(302) = RCT(302)*V(69)*V(286) + A(303) = RCT(303)*V(268)*V(286) + A(304) = RCT(304)*V(227)*V(284) + A(305) = RCT(305)*V(227)*V(279) + A(306) = RCT(306)*V(227)*V(227) + A(307) = RCT(307)*V(44) + A(308) = RCT(308)*V(46)*V(286) + A(309) = RCT(309)*V(208)*V(286) + A(310) = RCT(310)*V(198)*V(286) + A(311) = RCT(311)*V(234)*V(267) + A(312) = RCT(312)*V(234)*V(279) + A(313) = RCT(313)*V(234)*V(291) + A(314) = RCT(314)*V(234)*V(278) + A(315) = RCT(315)*V(234)*V(278)*V(278) + A(316) = RCT(316)*V(234)*V(282) + A(317) = RCT(317)*V(234)*V(276) + A(318) = RCT(318)*V(195)*V(267) + A(319) = RCT(319)*V(195)*V(279) + A(320) = RCT(320)*V(195)*V(291) + A(321) = RCT(321)*V(195)*V(276) + A(322) = RCT(322)*V(195)*V(278) + A(323) = RCT(323)*V(195)*V(278) + A(324) = RCT(324)*V(154)*V(286) + A(325) = RCT(325)*V(155)*V(286) + A(326) = RCT(326)*V(238)*V(279) + A(327) = RCT(327)*V(238)*V(284) + A(328) = RCT(328)*V(238)*V(266) + A(329) = RCT(329)*V(238)*V(261) + A(330) = RCT(330)*V(238)*V(281) + A(331) = RCT(331)*V(154)*V(282) + A(332) = RCT(332)*V(155)*V(282) + A(333) = RCT(333)*V(154)*V(281) + A(334) = RCT(334)*V(155)*V(281) + A(335) = RCT(335)*V(170)*V(286) + A(336) = RCT(336)*V(170)*V(282) + A(337) = RCT(337)*V(170)*V(281) + A(338) = RCT(338)*V(225)*V(279) + A(339) = RCT(339)*V(225)*V(284) + A(340) = RCT(340)*V(225)*V(266) + A(341) = RCT(341)*V(225)*V(261) + A(342) = RCT(342)*V(225)*V(281) + A(343) = RCT(343)*V(119)*V(286) + A(344) = RCT(344)*V(215)*V(279) + A(345) = RCT(345)*V(216)*V(279) + A(346) = RCT(346)*V(215)*V(284) + A(347) = RCT(347)*V(216)*V(284) + A(348) = RCT(348)*V(215)*V(266) + A(349) = RCT(349)*V(216)*V(266) + A(350) = RCT(350)*V(215)*V(261) + A(351) = RCT(351)*V(216)*V(261) + A(352) = RCT(352)*V(215)*V(281) + A(353) = RCT(353)*V(216)*V(281) + A(354) = RCT(354)*V(215)*V(215) + A(355) = RCT(355)*V(215)*V(216) + A(356) = RCT(356)*V(216)*V(216) + A(357) = RCT(357)*V(178)*V(286) + A(358) = RCT(358)*V(199)*V(286) + A(359) = RCT(359)*V(199)*V(282) + A(360) = RCT(360)*V(199)*V(281) + A(361) = RCT(361)*V(178)*V(281) + A(362) = RCT(362)*V(98) + A(363) = RCT(363)*V(45) + A(364) = RCT(364)*V(134)*V(286) + A(365) = RCT(365)*V(89)*V(286) + A(366) = RCT(366)*V(96)*V(286) + A(367) = RCT(367)*V(87)*V(286) + A(368) = RCT(368)*V(91)*V(286) + A(369) = RCT(369)*V(224)*V(282) + A(370) = RCT(370)*V(224)*V(286) + A(371) = RCT(371)*V(224)*V(286) + A(372) = RCT(372)*V(224)*V(286) + A(373) = RCT(373)*V(224)*V(286) + A(374) = RCT(374)*V(245)*V(284) + A(375) = RCT(375)*V(245)*V(284) + A(376) = RCT(376)*V(244)*V(284) + A(377) = RCT(377)*V(244)*V(284) + A(378) = RCT(378)*V(245) + A(379) = RCT(379)*V(245) + A(380) = RCT(380)*V(244) + A(381) = RCT(381)*V(244) + A(382) = RCT(382)*V(245)*V(245) + A(383) = RCT(383)*V(244)*V(244) + A(384) = RCT(384)*V(244)*V(245) + A(385) = RCT(385)*V(245)*V(245) + A(386) = RCT(386)*V(244)*V(244) + A(387) = RCT(387)*V(244)*V(245) + A(388) = RCT(388)*V(245)*V(266) + A(389) = RCT(389)*V(245)*V(266) + A(390) = RCT(390)*V(244)*V(266) + A(391) = RCT(391)*V(244)*V(266) + A(392) = RCT(392)*V(245)*V(279) + A(393) = RCT(393)*V(245)*V(279) + A(394) = RCT(394)*V(245)*V(279) + A(395) = RCT(395)*V(245)*V(279) + A(396) = RCT(396)*V(244)*V(279) + A(397) = RCT(397)*V(244)*V(279) + A(398) = RCT(398)*V(244)*V(279) + A(399) = RCT(399)*V(244)*V(279) + A(400) = RCT(400)*V(186)*V(286) + A(401) = RCT(401)*V(188)*V(286) + A(402) = RCT(402)*V(129)*V(286) + A(403) = RCT(403)*V(127)*V(286) + A(404) = RCT(404)*V(192)*V(286) + A(405) = RCT(405)*V(174)*V(286) + A(406) = RCT(406)*V(109)*V(286) + A(407) = RCT(407)*V(157)*V(286) + A(408) = RCT(408)*V(157)*V(286) + A(409) = RCT(409)*V(162)*V(286) + A(410) = RCT(410)*V(162)*V(286) + A(411) = RCT(411)*V(157)*V(286) + A(412) = RCT(412)*V(162)*V(286) + A(413) = RCT(413)*V(171)*V(286) + A(414) = RCT(414)*V(165)*V(286) + A(415) = RCT(415)*V(182) + A(416) = RCT(416)*V(182)*V(279) + A(417) = RCT(417)*V(182)*V(279) + A(418) = RCT(418)*V(182)*V(284) + A(419) = RCT(419)*V(183) + A(420) = RCT(420)*V(183)*V(279) + A(421) = RCT(421)*V(183)*V(279) + A(422) = RCT(422)*V(183)*V(284) + A(423) = RCT(423)*V(187) + A(424) = RCT(424)*V(187)*V(279) + A(425) = RCT(425)*V(187)*V(279) + A(426) = RCT(426)*V(187)*V(284) + A(427) = RCT(427)*V(116)*V(286) + A(428) = RCT(428)*V(130)*V(286) + A(429) = RCT(429)*V(130)*V(286) + A(430) = RCT(430)*V(131)*V(286) + A(431) = RCT(431)*V(131)*V(286) + A(432) = RCT(432)*V(228) + A(433) = RCT(433)*V(228) + A(434) = RCT(434)*V(228)*V(284) + A(435) = RCT(435)*V(228)*V(279) + A(436) = RCT(436)*V(228)*V(279) + A(437) = RCT(437)*V(229) + A(438) = RCT(438)*V(229) + A(439) = RCT(439)*V(229)*V(279) + A(440) = RCT(440)*V(229)*V(279) + A(441) = RCT(441)*V(229)*V(284) + A(442) = RCT(442)*V(194)*V(284) + A(443) = RCT(443)*V(194)*V(279) + A(444) = RCT(444)*V(194)*V(279) + A(445) = RCT(445)*V(194) + A(446) = RCT(446)*V(121)*V(279) + A(447) = RCT(447)*V(121)*V(284) + A(448) = RCT(448)*V(123)*V(279) + A(449) = RCT(449)*V(123)*V(284) + A(450) = RCT(450)*V(139)*V(286) + A(451) = RCT(451)*V(139)*V(286) + A(452) = RCT(452)*V(140)*V(286) + A(453) = RCT(453)*V(140)*V(286) + A(454) = RCT(454)*V(220)*V(286) + A(455) = RCT(455)*V(220)*V(286) + A(456) = RCT(456)*V(214)*V(286) + A(457) = RCT(457)*V(214)*V(286) + A(458) = RCT(458)*V(220)*V(286) + A(459) = RCT(459)*V(214)*V(286) + A(460) = RCT(460)*V(167) + A(461) = RCT(461)*V(167)*V(284) + A(462) = RCT(462)*V(167)*V(279) + A(463) = RCT(463)*V(167)*V(279) + A(464) = RCT(464)*V(152) + A(465) = RCT(465)*V(152)*V(284) + A(466) = RCT(466)*V(152)*V(279) + A(467) = RCT(467)*V(152)*V(279) + A(468) = RCT(468)*V(166) + A(469) = RCT(469)*V(168) + A(470) = RCT(470)*V(166)*V(284) + A(471) = RCT(471)*V(166)*V(279) + A(472) = RCT(472)*V(166)*V(279) + A(473) = RCT(473)*V(168)*V(284) + A(474) = RCT(474)*V(168)*V(279) + A(475) = RCT(475)*V(168)*V(279) + A(476) = RCT(476)*V(232)*V(284) + A(477) = RCT(477)*V(232)*V(279) + A(478) = RCT(478)*V(232)*V(279) + A(479) = RCT(479)*V(224)*V(281) + A(480) = RCT(480)*V(247)*V(284) + A(481) = RCT(481)*V(246)*V(284) + A(482) = RCT(482)*V(247)*V(247) + A(483) = RCT(483)*V(246)*V(247) + A(484) = RCT(484)*V(246)*V(246) + A(485) = RCT(485)*V(246)*V(266) + A(486) = RCT(486)*V(247)*V(266) + A(487) = RCT(487)*V(247)*V(261) + A(488) = RCT(488)*V(246)*V(261) + A(489) = RCT(489)*V(247)*V(281) + A(490) = RCT(490)*V(246)*V(281) + A(491) = RCT(491)*V(247)*V(279) + A(492) = RCT(492)*V(247)*V(279) + A(493) = RCT(493)*V(246)*V(279) + A(494) = RCT(494)*V(246)*V(279) + A(495) = RCT(495)*V(126)*F(3) + A(496) = RCT(496)*V(126) + A(497) = RCT(497)*V(181)*V(286) + A(498) = RCT(498)*V(151)*V(286) + A(499) = RCT(499)*V(181)*V(286) + A(500) = RCT(500)*V(151)*V(286) + A(501) = RCT(501)*V(151)*V(286) + A(502) = RCT(502)*V(181)*V(286) + A(503) = RCT(503)*V(151)*V(286) + A(504) = RCT(504)*V(151)*V(286) + A(505) = RCT(505)*V(189) + A(506) = RCT(506)*V(222) + A(507) = RCT(507)*V(222)*V(284) + A(508) = RCT(508)*V(189)*V(284) + A(509) = RCT(509)*V(222)*V(279) + A(510) = RCT(510)*V(222)*V(279) + A(511) = RCT(511)*V(189)*V(279) + A(512) = RCT(512)*V(189)*V(279) + A(513) = RCT(513)*V(240)*V(286) + A(514) = RCT(514)*V(240)*V(286) + A(515) = RCT(515)*V(150)*V(279) + A(516) = RCT(516)*V(150)*V(284) + A(517) = RCT(517)*V(243)*V(286) + A(518) = RCT(518)*V(146)*V(279) + A(519) = RCT(519)*V(146)*V(284) + A(520) = RCT(520)*V(248)*V(286) + A(521) = RCT(521)*V(248)*V(282) + A(522) = RCT(522)*V(251)*V(286) + A(523) = RCT(523)*V(251)*V(286) + A(524) = RCT(524)*V(251)*V(282) + A(525) = RCT(525)*V(251)*V(281) + A(526) = RCT(526)*V(241)*V(286) + A(527) = RCT(527)*V(230)*V(286) + A(528) = RCT(528)*V(231)*V(286) + A(529) = RCT(529)*V(200)*V(286) + A(530) = RCT(530)*V(175)*V(286) + A(531) = RCT(531)*V(144)*V(279) + A(532) = RCT(532)*V(144)*V(284) + A(533) = RCT(533)*V(144)*V(291) + A(534) = RCT(534)*V(145)*V(279) + A(535) = RCT(535)*V(145)*V(284) + A(536) = RCT(536)*V(145)*V(291) + A(537) = RCT(537)*V(163)*V(286) + A(538) = RCT(538)*V(156)*V(286) + A(539) = RCT(539)*V(117)*V(286) + A(540) = RCT(540)*V(185)*V(286) + A(541) = RCT(541)*V(169)*V(286) + A(542) = RCT(542)*V(132)*V(286) + A(543) = RCT(543)*V(204)*V(284) + A(544) = RCT(544)*V(204)*V(279) + A(545) = RCT(545)*V(204)*V(279) + A(546) = RCT(546)*V(205)*V(284) + A(547) = RCT(547)*V(207)*V(284) + A(548) = RCT(548)*V(136)*V(286) + A(549) = RCT(549)*V(205) + A(550) = RCT(550)*V(205)*V(279) + A(551) = RCT(551)*V(205)*V(279) + A(552) = RCT(552)*V(207)*V(279) + A(553) = RCT(553)*V(207)*V(291) + A(554) = RCT(554)*V(249)*V(284) + A(555) = RCT(555)*V(249)*V(279) + A(556) = RCT(556)*V(249)*V(291) + A(557) = RCT(557)*V(249)*V(281) + A(558) = RCT(558)*V(249)*V(266) + A(559) = RCT(559)*V(153) + A(560) = RCT(560)*V(153)*V(286) + A(561) = RCT(561)*V(105)*V(286) + A(562) = RCT(562)*V(206)*V(286) + A(563) = RCT(563)*V(125)*V(286) + A(564) = RCT(564)*V(141)*V(286) + A(565) = RCT(565)*V(164)*V(286) + A(566) = RCT(566)*V(213)*V(286) + A(567) = RCT(567)*V(242)*V(286) + A(568) = RCT(568)*V(208)*V(281) + A(569) = RCT(569)*V(104)*V(286) + A(570) = RCT(570)*V(85)*V(286) + A(571) = RCT(571)*V(261)*V(284) + A(572) = RCT(572)*V(172)*V(286) + A(573) = RCT(573)*V(172)*V(286) + A(574) = RCT(574)*V(19)*V(286) + A(575) = RCT(575)*V(18)*V(284) + A(576) = RCT(576)*V(18)*V(279) + A(577) = RCT(577)*V(76)*V(282) + A(578) = RCT(578)*V(76)*V(286) + A(579) = RCT(579)*V(58)*V(286) + A(580) = RCT(580)*V(179)*V(284) + A(581) = RCT(581)*V(179)*V(279) + A(582) = RCT(582)*V(179)*V(281) + A(583) = RCT(583)*V(179)*V(266) + A(584) = RCT(584)*V(108) + A(585) = RCT(585)*V(108)*F(3) + A(586) = RCT(586)*V(68)*V(286) + A(587) = RCT(587)*V(120)*V(286) + A(588) = RCT(588)*V(120)*V(286) + A(589) = RCT(589)*V(64)*V(286) + A(590) = RCT(590)*V(79)*V(286) + A(591) = RCT(591)*V(80)*V(286) + A(592) = RCT(592)*V(184)*V(284) + A(593) = RCT(593)*V(184)*V(279) + A(594) = RCT(594)*V(184)*V(281) + A(595) = RCT(595)*V(184)*V(266) + A(596) = RCT(596)*V(184)*V(261) + A(597) = RCT(597)*V(118)*V(286) + A(598) = RCT(598)*V(118)*V(281) + A(599) = RCT(599)*V(115)*V(286) + A(600) = RCT(600)*V(115)*V(281) + A(601) = RCT(601)*V(142)*V(286) + A(602) = RCT(602)*V(142)*V(282) + A(603) = RCT(603)*V(142)*V(281) + A(604) = RCT(604)*V(101)*V(286) + A(605) = RCT(605)*V(101)*V(281) + A(606) = RCT(606)*V(180)*V(284) + A(607) = RCT(607)*V(180)*V(279) + A(608) = RCT(608)*V(180)*V(291) + A(609) = RCT(609)*V(70)*V(286) + A(610) = RCT(610)*V(97) + A(611) = RCT(611)*V(97)*V(286) + A(612) = RCT(612)*V(191)*V(291) + A(613) = RCT(613)*V(191)*V(279) + A(614) = RCT(614)*V(191)*V(281) + A(615) = RCT(615)*V(191)*V(284) + A(616) = RCT(616)*V(107)*V(286) + A(617) = RCT(617)*V(160)*V(282) + A(618) = RCT(618)*V(160)*V(291) + A(619) = RCT(619)*V(210)*V(286) + A(620) = RCT(620)*V(210)*V(281) + A(621) = RCT(621)*V(191)*V(266) + A(622) = RCT(622)*V(180)*V(266) + A(623) = RCT(623)*V(159)*V(286) + A(624) = RCT(624)*V(159)*V(282) + A(625) = RCT(625)*V(159) + A(626) = RCT(626)*V(148)*V(286) + A(627) = RCT(627)*V(148)*V(282) + A(628) = RCT(628)*V(148) + A(629) = RCT(629)*V(13)*V(284) + A(630) = RCT(630)*V(13)*V(279) + A(631) = RCT(631)*V(22)*V(284) + A(632) = RCT(632)*V(22)*V(279) + A(633) = RCT(633)*V(27)*V(284) + A(634) = RCT(634)*V(27)*V(279) + A(635) = RCT(635)*V(266)*V(281) + A(636) = RCT(636)*V(41)*V(286) + A(637) = RCT(637)*V(284) + A(638) = RCT(638)*V(291) + A(639) = RCT(639)*V(281) + A(640) = RCT(640)*V(281) + A(641) = RCT(641)*V(281) + A(642) = RCT(642)*V(173)*V(278) + A(643) = RCT(643)*V(173)*V(275) + A(644) = RCT(644)*V(173) + A(645) = RCT(645)*V(173)*V(280) + A(646) = RCT(646)*V(173)*V(287) + A(647) = RCT(647)*V(280)*V(286) + A(648) = RCT(648)*V(286)*V(287) + A(649) = RCT(649)*V(176)*V(278) + A(650) = RCT(650)*V(176)*V(275) + A(651) = RCT(651)*V(262)*V(278) + A(652) = RCT(652)*V(262)*V(275) + A(653) = RCT(653)*V(262)*V(289) + A(654) = RCT(654)*V(262)*V(283) + A(655) = RCT(655)*V(262)*V(277) + A(656) = RCT(656)*V(262)*V(280) + A(657) = RCT(657)*V(262)*V(287) + A(658) = RCT(658)*V(235)*V(280) + A(659) = RCT(659)*V(235)*V(287) + A(660) = RCT(660)*V(235)*V(275) + A(661) = RCT(661)*V(235)*V(283) + A(662) = RCT(662)*V(235)*V(277) + A(663) = RCT(663)*V(235)*V(289) + A(664) = RCT(664)*V(271)*V(275) + A(665) = RCT(665)*V(271)*V(289) + A(666) = RCT(666)*V(271)*V(280) + A(667) = RCT(667)*V(271)*V(287) + A(668) = RCT(668)*V(271)*V(276) + A(669) = RCT(669)*V(260)*V(289) + A(670) = RCT(670)*V(260)*V(275) + A(671) = RCT(671)*V(260)*V(280) + A(672) = RCT(672)*V(260)*V(287) + A(673) = RCT(673)*V(260)*V(283) + A(674) = RCT(674)*V(260)*V(277) + A(675) = RCT(675)*V(260)*V(276) + A(676) = RCT(676)*V(282)*V(289) + A(677) = RCT(677)*V(282)*V(283) + A(678) = RCT(678)*V(277)*V(282) + A(679) = RCT(679)*V(289) + A(680) = RCT(680)*V(289) + A(681) = RCT(681)*V(69) + A(682) = RCT(682)*V(69) + A(683) = RCT(683)*V(69) + A(684) = RCT(684)*V(268) + A(685) = RCT(685)*V(268) + A(686) = RCT(686)*V(44) + A(687) = RCT(687)*V(44) + A(688) = RCT(688)*V(44) + A(689) = RCT(689)*V(49) + A(690) = RCT(690)*V(49) + A(691) = RCT(691)*V(49) + A(692) = RCT(692)*V(42) + A(693) = RCT(693)*V(42) + A(694) = RCT(694)*V(42) + A(695) = RCT(695)*V(203) + A(696) = RCT(696)*V(203) + A(697) = RCT(697)*V(270) + A(698) = RCT(698)*V(270) + A(699) = RCT(699)*V(270)*V(278) + A(700) = RCT(700)*V(203)*V(283) + A(701) = RCT(701)*V(203)*V(277) + A(702) = RCT(702)*V(203)*V(280) + A(703) = RCT(703)*V(203)*V(287) + A(704) = RCT(704)*V(270)*V(283) + A(705) = RCT(705)*V(270)*V(277) + A(706) = RCT(706)*V(270)*V(280) + A(707) = RCT(707)*V(270)*V(287) + A(708) = RCT(708)*V(268)*V(283) + A(709) = RCT(709)*V(268)*V(277) + A(710) = RCT(710)*V(268)*V(280) + A(711) = RCT(711)*V(268)*V(287) + A(712) = RCT(712)*V(223) + A(713) = RCT(713)*V(233) + A(714) = RCT(714)*V(130) + A(715) = RCT(715)*V(131) + A(716) = RCT(716)*V(116) + A(717) = RCT(717)*V(24) + A(718) = RCT(718)*V(241) + A(719) = RCT(719)*V(202) + A(720) = RCT(720)*V(178) + A(721) = RCT(721)*V(199) + A(722) = RCT(722)*V(134) + A(723) = RCT(723)*V(104) + A(724) = RCT(724)*V(105) + A(725) = RCT(725)*V(220) + A(726) = RCT(726)*V(139) + A(727) = RCT(727)*V(140) + A(728) = RCT(728)*V(214) + A(729) = RCT(729)*V(174) + A(730) = RCT(730)*V(151) + A(731) = RCT(731)*V(181) + A(732) = RCT(732)*V(243) + A(733) = RCT(733)*V(213) + A(734) = RCT(734)*V(242) + A(735) = RCT(735)*V(175) + A(736) = RCT(736)*V(200) + A(737) = RCT(737)*V(210) + A(738) = RCT(738)*V(282) + A(739) = RCT(739)*V(282) + A(740) = RCT(740)*F(3) + A(741) = RCT(741)*V(291) + A(742) = RCT(742)*V(212) + A(743) = RCT(743)*V(137) + A(744) = RCT(744)*V(263) + A(745) = RCT(745)*V(263) + A(746) = RCT(746)*V(265) + A(747) = RCT(747)*V(193) + A(748) = RCT(748)*V(102) + A(749) = RCT(749)*V(102) + A(750) = RCT(750)*V(281) + A(751) = RCT(751)*V(281) + A(752) = RCT(752)*V(173) + A(753) = RCT(753)*V(264) + A(754) = RCT(754)*V(264) + A(755) = RCT(755)*V(67) + A(756) = RCT(756)*V(259) + A(757) = RCT(757)*V(221) + A(758) = RCT(758)*V(221) + A(759) = RCT(759)*V(226) + A(760) = RCT(760)*V(236) + A(761) = RCT(761)*V(223) + A(762) = RCT(762)*V(223) + A(763) = RCT(763)*V(223) + A(764) = RCT(764)*V(233) + A(765) = RCT(765)*V(248) + A(766) = RCT(766)*V(248) + A(767) = RCT(767)*V(248) + A(768) = RCT(768)*V(251) + A(769) = RCT(769)*V(250) + A(770) = RCT(770)*V(113) + A(771) = RCT(771)*V(110) + A(772) = RCT(772)*V(94) + A(773) = RCT(773)*V(95) + A(774) = RCT(774)*V(93) + A(775) = RCT(775)*V(112) + A(776) = RCT(776)*V(106) + A(777) = RCT(777)*V(202) + A(778) = RCT(778)*V(88) + A(779) = RCT(779)*V(128) + A(780) = RCT(780)*V(274) + A(781) = RCT(781)*V(260) + A(782) = RCT(782)*V(176) + A(783) = RCT(783)*V(176) + A(784) = RCT(784)*V(51) + A(785) = RCT(785)*V(77) + A(786) = RCT(786)*V(71) + A(787) = RCT(787)*V(100) + A(788) = RCT(788)*V(149) + A(789) = RCT(789)*V(72) + A(790) = RCT(790)*V(135) + A(791) = RCT(791)*V(197) + A(792) = RCT(792)*V(285) + A(793) = RCT(793)*V(111) + A(794) = RCT(794)*V(75) + A(795) = RCT(795)*V(235) + A(796) = RCT(796)*V(262) + A(797) = RCT(797)*V(262) + A(798) = RCT(798)*V(271) + A(799) = RCT(799)*V(43) + A(800) = RCT(800)*V(52) + A(801) = RCT(801)*V(53) + A(802) = RCT(802)*V(54) + A(803) = RCT(803)*V(55) + A(804) = RCT(804)*V(56) + A(805) = RCT(805)*V(57) + A(806) = RCT(806)*V(81) + A(807) = RCT(807)*V(82) + A(808) = RCT(808)*V(83) + A(809) = RCT(809)*V(84) + A(810) = RCT(810)*V(47) + A(811) = RCT(811)*V(59) + A(812) = RCT(812)*V(48) + A(813) = RCT(813)*V(103) + A(814) = RCT(814)*V(143) + A(815) = RCT(815)*V(268) + A(816) = RCT(816)*V(227) + A(817) = RCT(817)*V(92) + A(818) = RCT(818)*V(60) + A(819) = RCT(819)*V(203) + A(820) = RCT(820)*V(270) + A(821) = RCT(821)*V(44) + A(822) = RCT(822)*V(46) + A(823) = RCT(823)*V(1) + A(824) = RCT(824)*V(3) + A(825) = RCT(825)*V(2) + A(826) = RCT(826)*V(42) + A(827) = RCT(827)*V(49) + A(828) = RCT(828)*V(73) + A(829) = RCT(829)*V(99) + A(830) = RCT(830)*V(74) + A(831) = RCT(831)*V(74) + A(832) = RCT(832)*V(196) + A(833) = RCT(833)*V(61) + A(834) = RCT(834)*V(66) + A(835) = RCT(835)*V(122) + A(836) = RCT(836)*V(279) + A(837) = RCT(837)*V(119) + A(838) = RCT(838)*V(208) + A(839) = RCT(839)*V(178) + A(840) = RCT(840)*V(199) + A(841) = RCT(841)*V(134) + A(842) = RCT(842)*V(63) + A(843) = RCT(843)*V(63) + A(844) = RCT(844)*V(62) + A(845) = RCT(845)*V(62) + A(846) = RCT(846)*V(89) + A(847) = RCT(847)*V(96) + A(848) = RCT(848)*V(87) + A(849) = RCT(849)*V(91) + A(850) = RCT(850)*V(85) + A(851) = RCT(851)*V(172) + A(852) = RCT(852)*V(104) + A(853) = RCT(853)*V(198) + A(854) = RCT(854)*V(169) + A(855) = RCT(855)*V(185) + A(856) = RCT(856)*V(230) + A(857) = RCT(857)*V(156) + A(858) = RCT(858)*V(163) + A(859) = RCT(859)*V(231) + A(860) = RCT(860)*V(136) + A(861) = RCT(861)*V(241) + A(862) = RCT(862)*V(200) + A(863) = RCT(863)*V(175) + A(864) = RCT(864)*V(157) + A(865) = RCT(865)*V(162) + A(866) = RCT(866)*V(171) + A(867) = RCT(867)*V(165) + A(868) = RCT(868)*V(186) + A(869) = RCT(869)*V(188) + A(870) = RCT(870)*V(129) + A(871) = RCT(871)*V(127) + A(872) = RCT(872)*V(220) + A(873) = RCT(873)*V(139) + A(874) = RCT(874)*V(140) + A(875) = RCT(875)*V(214) + A(876) = RCT(876)*V(181) + A(877) = RCT(877)*V(151) + A(878) = RCT(878)*V(151) + A(879) = RCT(879)*V(240) + A(880) = RCT(880)*V(243) + A(881) = RCT(881)*V(206) + A(882) = RCT(882)*V(206) + A(883) = RCT(883)*V(141) + A(884) = RCT(884)*V(164) + A(885) = RCT(885)*V(125) + A(886) = RCT(886)*V(242) + A(887) = RCT(887)*V(242) + A(888) = RCT(888)*V(213) + A(889) = RCT(889)*V(213) + A(890) = RCT(890)*V(120) + A(891) = RCT(891)*V(101) + A(892) = RCT(892)*V(70) + A(893) = RCT(893)*V(107) + A(894) = RCT(894)*V(210) !### Use Aout to return equation rates IF ( PRESENT( Aout ) ) Aout = A @@ -2767,770 +2739,787 @@ SUBROUTINE Fun_SPLIT ( V, F, RCT, Vdot, P_VAR, D_VAR, Aout ) IF (DO_FUN(3)) & P_VAR(3) = 0 IF (DO_FUN(4)) & - P_VAR(4) = A(707)+2*A(710)+2*A(713)+2*A(716) + P_VAR(4) = A(681)+2*A(686)+2*A(689)+2*A(692) IF (DO_FUN(5)) & - P_VAR(5) = A(757) + P_VAR(5) = A(737) IF (DO_FUN(6)) & - P_VAR(6) = A(24)+A(49)+A(57)+A(78)+0.361*A(116)+0.5*A(124)+A(208)+A(289)+A(297)+A(336)+0.407*A(396)+0.355*A(431)& - &+A(473)+A(474)+A(475)+A(476)+0.33*A(542)+0.33*A(543)+0.23*A(555)+0.75*A(557)+0.097*A(564)+0.5*A(574)+0.415& - &*A(575)+A(579)+0.5*A(581)+A(582)+A(584)+0.7*A(585)+A(592)+A(596)+0.5*A(598)+0.35*A(633)+A(634)+A(638)+A(649)& - &+A(872)+1.238*A(880)+A(912)+A(914) + P_VAR(6) = A(636) IF (DO_FUN(7)) & - P_VAR(7) = A(389)+A(390) + P_VAR(7) = A(24)+A(47)+A(55)+A(76)+A(80)+0.3*A(97)+0.43*A(109)+0.1*A(111)+0.361*A(112)+0.5*A(120)+0.22*A(129)+2*A(131)& + &+0.9*A(132)+0.9*A(133)+0.9*A(134)+0.9*A(135)+0.9*A(136)+0.645*A(137)+0.9*A(138)+0.9*A(139)+0.9*A(140)+0.9& + &*A(141)+0.9*A(142)+2*A(143)+A(144)+A(188)+A(267)+A(275)+A(309)+A(311)+A(318)+A(329)+A(350)+0.407*A(369)& + &+0.355*A(404)+A(446)+A(447)+A(448)+A(449)+A(487)+A(488)+0.429*A(515)+0.429*A(516)+0.23*A(528)+0.75*A(530)& + &+0.097*A(537)+0.5*A(547)+0.41*A(548)+A(552)+0.5*A(554)+A(555)+A(557)+0.7*A(558)+A(565)+A(569)+0.5*A(571)& + &+A(596)+0.35*A(606)+A(607)+A(611)+A(622)+0.3*A(755)+A(778)+A(852)+1.238*A(860)+A(892)+A(894) IF (DO_FUN(8)) & - P_VAR(8) = A(708)+2*A(711)+2*A(714)+2*A(717) + P_VAR(8) = A(362)+A(363) IF (DO_FUN(9)) & - P_VAR(9) = A(709)+2*A(712)+2*A(715)+2*A(718) + P_VAR(9) = A(682)+A(684)+2*A(687)+2*A(690)+2*A(693)+A(695)+A(697) IF (DO_FUN(10)) & - P_VAR(10) = A(656) + P_VAR(10) = A(683)+A(685)+2*A(688)+2*A(691)+2*A(694)+A(696)+A(698) IF (DO_FUN(11)) & - P_VAR(11) = A(657) + P_VAR(11) = A(629) IF (DO_FUN(12)) & - P_VAR(12) = A(616) + P_VAR(12) = A(630) IF (DO_FUN(13)) & - P_VAR(13) = A(397)+A(398)+A(399)+A(400) + P_VAR(13) = A(589) IF (DO_FUN(14)) & - P_VAR(14) = A(506) + P_VAR(14) = A(370)+A(371)+A(372)+A(373) IF (DO_FUN(15)) & - P_VAR(15) = A(602) + P_VAR(15) = A(479) IF (DO_FUN(16)) & - P_VAR(16) = A(603) + P_VAR(16) = A(575) IF (DO_FUN(17)) & - P_VAR(17) = A(601) + P_VAR(17) = A(576) IF (DO_FUN(18)) & - P_VAR(18) = 0 + P_VAR(18) = A(574) IF (DO_FUN(19)) & - P_VAR(19) = A(658) + P_VAR(19) = 0 IF (DO_FUN(20)) & - P_VAR(20) = A(659) + P_VAR(20) = A(631) IF (DO_FUN(21)) & - P_VAR(21) = A(617) + P_VAR(21) = A(632) IF (DO_FUN(22)) & - P_VAR(22) = A(737) + P_VAR(22) = A(590) IF (DO_FUN(23)) & - P_VAR(23) = 0.005*A(434)+0.005*A(435)+0.005*A(436)+0.005*A(437)+0.005*A(438)+0.005*A(439)+0.005*A(440)+0.005*A(441) + P_VAR(23) = A(717) IF (DO_FUN(24)) & - P_VAR(24) = A(660) + P_VAR(24) = 0.005*A(407)+0.005*A(408)+0.005*A(409)+0.005*A(410)+0.005*A(411)+0.005*A(412)+0.005*A(413)+0.005*A(414) IF (DO_FUN(25)) & - P_VAR(25) = A(661) + P_VAR(25) = A(633) IF (DO_FUN(26)) & - P_VAR(26) = A(618) + P_VAR(26) = A(634) IF (DO_FUN(27)) & - P_VAR(27) = 0.25*A(165) + P_VAR(27) = A(591) IF (DO_FUN(28)) & - P_VAR(28) = A(4) + P_VAR(28) = 0.25*A(149) IF (DO_FUN(29)) & - P_VAR(29) = A(732)+A(733)+A(743) + P_VAR(29) = A(4) IF (DO_FUN(30)) & - P_VAR(30) = A(734)+A(735)+A(736)+A(744)+A(749) + P_VAR(30) = A(712)+1.5*A(713)+1.5*A(723) IF (DO_FUN(31)) & - P_VAR(31) = A(18)+A(22)+A(26)+A(38)+A(40)+A(57)+A(59)+A(61)+A(64)+A(66)+A(68)+A(69)+A(70)+A(71)+A(72)+A(73)+A(75)& - &+A(82)+0.15*A(113)+A(176)+A(217)+A(219)+A(220)+A(243)+A(251)+A(252)+A(267)+2*A(280)+A(290)+A(293)+A(294)& - &+A(326)+A(339)+A(340)+A(346)+A(347)+A(353)+A(365)+A(371)+A(372)+A(389)+A(390)+A(391)+A(392)+A(393)+A(394)& - &+A(395)+A(419)+A(420)+A(421)+A(422)+A(423)+A(424)+A(425)+A(426)+A(443)+A(444)+A(447)+A(448)+A(451)+A(452)& - &+A(462)+A(463)+A(466)+A(467)+A(470)+A(471)+A(473)+A(475)+A(489)+A(490)+A(493)+A(494)+A(498)+A(499)+A(501)& - &+A(502)+A(504)+A(505)+A(518)+A(519)+A(520)+A(521)+A(536)+A(537)+A(538)+A(539)+A(542)+A(545)+0.69*A(553)& - &+A(558)+A(561)+A(571)+0.438*A(572)+0.13*A(574)+A(577)+A(578)+A(579)+0.13*A(581)+A(582)+A(587)+0.02*A(594)& - &+0.13*A(598)+0.995*A(608)+A(613)+A(620)+0.15*A(633)+A(634)+A(637)+A(638)+A(639)+A(640)+A(646)+2*A(760)& - &+A(768)+0.3*A(775)+A(850)+A(853)+A(856)+A(863)+A(865)+A(866)+A(867)+A(868)+A(869)+0.01*A(900) + P_VAR(31) = A(714)+A(715)+A(716)+0.8*A(724)+A(729) IF (DO_FUN(32)) & - P_VAR(32) = A(1)+A(3)+A(4)+A(6)+A(8)+A(14)+A(15)+A(17)+A(44)+A(46)+2*A(51)+A(52)+A(54)+A(76)+A(83)+A(96)+A(115)+A(118)& - &+A(121)+A(122)+A(140)+2*A(161)+A(166)+2*A(172)+2*A(173)+A(177)+A(178)+A(179)+A(191)+A(194)+A(195)+A(196)& - &+A(197)+A(198)+A(199)+2*A(201)+A(203)+A(204)+2*A(205)+A(207)+2*A(209)+2*A(210)+A(213)+A(215)+2*A(222)& - &+A(223)+0.67*A(224)+0.65*A(225)+0.56*A(228)+0.17*A(231)+A(244)+A(245)+A(246)+A(247)+A(248)+2*A(268)+2& - &*A(272)+2*A(273)+2*A(282)+2*A(283)+2*A(315)+2*A(322)+2*A(323)+A(343)+A(357)+A(358)+A(359)+A(360)+A(361)& - &+A(363)+A(364)+A(369)+A(379)+A(380)+A(386)+2*A(387)+2*A(388)+A(396)+A(506)+0.001*A(511)+A(516)+A(517)& - &+A(548)+A(551)+A(552)+A(584)+A(595)+A(604)+A(609)+A(621)+1.258*A(625)+1.5*A(627)+A(629)+1.5*A(630)+A(632)& - &+A(635)+A(641)+A(644)+A(645)+A(651)+A(654)+A(662)+0.5*A(664)+A(665)+2*A(666)+2*A(667)+A(668)+A(669)+A(670)& - &+A(671)+A(672)+A(676)+A(678)+A(679)+A(680)+A(681)+A(682)+A(683)+A(684)+A(685)+A(686)+A(687)+A(688)+A(689)& - &+A(690)+A(691)+A(692)+A(693)+A(694)+A(695)+A(696)+A(697)+A(698)+A(699)+A(700)+A(701)+2*A(710)+2*A(711)+2& - &*A(712)+3*A(713)+3*A(714)+3*A(715)+4*A(716)+4*A(717)+4*A(718)+A(720)+A(721)+A(722)+A(723)+A(724)+A(725)& - &+A(726)+A(727)+A(728)+A(729)+A(730)+A(731)+A(738)+A(739)+A(740)+A(741)+A(742)+A(745)+A(746)+A(747)+A(748)& - &+A(750)+A(751)+2*A(752)+A(753)+A(754)+A(755)+A(756)+2*A(771)+A(801)+2*A(814)+A(818)+A(835)+2*A(837) + P_VAR(32) = A(151)+A(317)+A(321) IF (DO_FUN(33)) & - P_VAR(33) = A(36)+A(52)+0.05*A(53)+0.56*A(115)+0.505*A(116)+A(117)+2*A(119)+A(120)+2*A(121)+A(122)+0.5*A(124)+A(181)& - &+A(207)+A(223)+A(262)+A(286)+A(287)+A(288)+0.14*A(358)+0.14*A(359)+0.14*A(363)+0.407*A(396)+0.6*A(399)+0.9& - &*A(400)+0.6*A(406)+0.9*A(408)+A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.55*A(422)+0.55*A(426)+0.45& - &*A(427)+0.37*A(428)+0.42*A(429)+0.23*A(430)+0.638*A(431)+1.5*A(432)+A(433)+0.25*A(438)+0.33*A(439)+0.036& - &*A(440)+0.054*A(441)+A(460)+0.13*A(461)+0.2*A(462)+A(465)+0.2*A(466)+0.13*A(468)+0.52*A(469)+0.8*A(471)+2& - &*A(472)+0.6*A(485)+0.6*A(486)+0.539*A(541)+0.33*A(542)+0.33*A(543)+0.18*A(548)+0.036*A(549)+0.12*A(551)& - &+0.68*A(552)+0.77*A(555)+0.25*A(557)+0.75*A(564)+A(565)+2*A(568)+0.84*A(569)+0.507*A(573)+0.325*A(574)& - &+0.488*A(575)+A(576)+0.86*A(577)+0.65*A(579)+0.25*A(587)+A(589)+0.888*A(590)+A(593)+A(599)+0.364*A(606)+0.2& - &*A(616)+0.27*A(617)+0.3*A(618)+0.25*A(650)+0.5*A(651)+0.25*A(653)+0.5*A(654)+A(764)+A(765)+0.88*A(773)& - &+A(774)+A(776)+A(778)+A(780)+2*A(781)+2*A(782)+A(783)+A(784)+A(785)+A(786)+A(788)+A(854)+A(858)+A(871)& - &+A(874)+0.5*A(875)+0.571*A(877)+0.875*A(878)+0.77*A(879)+A(882)+A(883)+0.888*A(888)+0.818*A(889)+A(890)& - &+A(891)+0.55*A(892)+0.55*A(895)+0.839*A(899)+A(901)+0.122*A(902)+A(905)+A(909)+A(911)+A(914) + P_VAR(33) = A(7)+A(8)+A(9)+2*A(12) IF (DO_FUN(34)) & - P_VAR(34) = A(24)+A(338)+A(345) + P_VAR(34) = A(18)+A(22)+A(26)+A(36)+A(38)+A(55)+A(57)+A(59)+A(62)+A(64)+A(66)+A(67)+A(68)+A(69)+A(70)+A(71)+A(73)& + &+A(80)+0.15*A(109)+A(160)+0.02*A(196)+A(197)+A(198)+A(222)+A(230)+A(231)+A(246)+0.1*A(258)+A(268)+A(271)& + &+A(272)+A(301)+A(312)+A(313)+A(319)+A(320)+A(326)+A(338)+A(344)+A(345)+A(362)+A(363)+A(364)+A(365)+A(366)& + &+A(367)+A(368)+A(392)+A(393)+A(394)+A(395)+A(396)+A(397)+A(398)+A(399)+A(416)+A(417)+A(420)+A(421)+A(424)& + &+A(425)+A(435)+A(436)+A(439)+A(440)+A(443)+A(444)+A(446)+A(448)+A(462)+A(463)+A(466)+A(467)+A(471)+A(472)& + &+A(474)+A(475)+A(477)+A(478)+A(491)+A(492)+A(493)+A(494)+A(509)+A(510)+A(511)+A(512)+A(515)+A(518)+0.69& + &*A(526)+A(531)+A(534)+A(544)+A(545)+0.13*A(547)+A(550)+A(551)+A(552)+0.13*A(554)+A(555)+A(560)+0.13*A(571)& + &+0.995*A(581)+A(586)+A(593)+0.15*A(606)+A(607)+A(610)+A(611)+A(612)+A(613)+A(619)+2*A(740)+A(748)+0.3& + &*A(755)+A(830)+A(833)+A(836)+A(846)+A(847)+A(848)+A(849) IF (DO_FUN(35)) & - P_VAR(35) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(167)+A(344)+A(348)+A(694)+A(701) + P_VAR(35) = A(1)+A(4)+A(8)+A(14)+A(15)+A(17)+A(42)+A(44)+2*A(49)+A(50)+A(52)+A(74)+A(81)+A(94)+A(111)+A(114)+A(117)& + &+A(118)+A(130)+2*A(145)+A(150)+2*A(156)+2*A(157)+A(161)+A(162)+A(163)+A(175)+A(178)+A(179)+A(180)+2*A(182)& + &+A(184)+A(185)+A(186)+A(187)+2*A(189)+2*A(190)+A(193)+A(195)+2*A(200)+A(201)+0.66*A(202)+0.6*A(203)+0.44& + &*A(206)+0.56*A(207)+0.19*A(210)+0.1*A(218)+0.05*A(219)+A(223)+A(224)+A(225)+A(226)+A(227)+2*A(247)+2*A(251)& + &+2*A(252)+2*A(260)+2*A(261)+0.4*A(293)+0.88*A(298)+A(316)+A(330)+A(331)+A(332)+A(333)+A(334)+A(336)+A(337)& + &+A(342)+A(352)+A(353)+A(359)+2*A(360)+2*A(361)+A(369)+A(479)+A(489)+A(490)+A(521)+A(524)+A(525)+A(557)& + &+A(568)+A(577)+A(582)+A(594)+1.258*A(598)+1.5*A(600)+A(602)+1.5*A(603)+A(605)+A(608)+A(614)+A(617)+A(618)& + &+A(624)+A(627)+A(635)+0.5*A(638)+A(639)+A(640)+A(641)+A(642)+A(643)+A(644)+A(645)+A(646)+A(650)+A(652)& + &+A(653)+A(654)+A(655)+A(656)+A(657)+A(658)+A(659)+A(660)+A(661)+A(662)+A(663)+A(664)+A(665)+A(666)+A(667)& + &+A(668)+A(669)+A(670)+A(671)+A(672)+A(673)+A(674)+A(675)+A(684)+A(685)+2*A(686)+2*A(687)+2*A(688)+3*A(689)& + &+3*A(690)+3*A(691)+4*A(692)+4*A(693)+4*A(694)+A(695)+A(696)+A(697)+A(698)+A(700)+A(701)+A(702)+A(703)& + &+A(704)+A(705)+A(706)+A(707)+A(708)+A(709)+A(710)+A(711)+A(718)+A(719)+A(720)+A(721)+A(722)+A(725)+A(726)& + &+A(727)+A(728)+A(730)+A(731)+2*A(732)+A(733)+A(734)+A(735)+A(736)+2*A(751)+A(781)+2*A(794)+A(798)+A(815)+2& + &*A(817)+A(842)+A(844) IF (DO_FUN(36)) & - P_VAR(36) = A(25)+A(197)+A(198)+A(199)+A(261) + P_VAR(36) = A(34)+A(50)+0.05*A(51)+0.56*A(111)+0.505*A(112)+A(113)+2*A(115)+A(116)+2*A(117)+A(118)+0.5*A(120)+A(165)& + &+A(187)+A(201)+A(241)+A(264)+A(265)+A(266)+0.14*A(331)+0.14*A(332)+0.14*A(336)+0.407*A(369)+0.6*A(372)+0.9& + &*A(373)+0.6*A(379)+0.9*A(381)+A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)+0.55*A(395)+0.55*A(399)+0.45& + &*A(400)+0.37*A(401)+0.42*A(402)+0.23*A(403)+0.638*A(404)+1.5*A(405)+A(406)+0.25*A(411)+0.33*A(412)+0.036& + &*A(413)+0.054*A(414)+A(433)+0.13*A(434)+0.2*A(435)+A(438)+0.2*A(439)+0.13*A(441)+0.52*A(442)+0.8*A(444)+2& + &*A(445)+0.6*A(458)+0.6*A(459)+0.539*A(514)+0.33*A(515)+0.33*A(516)+0.28*A(521)+0.036*A(522)+0.12*A(524)& + &+0.68*A(525)+0.77*A(528)+0.25*A(530)+0.75*A(537)+A(538)+A(540)+2*A(541)+0.84*A(542)+0.507*A(546)+0.325& + &*A(547)+0.488*A(548)+A(549)+0.86*A(550)+0.65*A(552)+0.25*A(560)+A(561)+A(562)+0.888*A(563)+A(566)+A(572)& + &+0.364*A(579)+0.2*A(589)+0.27*A(590)+0.3*A(591)+0.15*A(619)+0.15*A(620)+0.26*A(623)+0.5*A(624)+0.25*A(626)& + &+0.5*A(627)+0.05*A(628)+A(744)+A(745)+0.88*A(753)+A(754)+A(756)+A(758)+A(760)+2*A(761)+2*A(762)+A(763)& + &+A(764)+A(765)+A(766)+A(768)+A(834)+A(838)+A(851)+A(854)+0.5*A(855)+0.571*A(857)+0.875*A(858)+0.77*A(859)& + &+A(862)+A(863)+0.888*A(868)+0.818*A(869)+A(870)+A(871)+0.55*A(872)+0.55*A(875)+0.839*A(879)+A(881)+0.163& + &*A(882)+A(885)+A(889)+A(891)+A(894) IF (DO_FUN(37)) & - P_VAR(37) = A(19)+A(23)+0.06*A(341)+0.06*A(342)+A(349)+0.02*A(358)+0.02*A(359)+0.02*A(363)+0.013*A(396)+0.045*A(548) + P_VAR(37) = A(24)+A(311)+A(318) IF (DO_FUN(38)) & - P_VAR(38) = A(318) + P_VAR(38) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(151)+A(317)+A(321)+A(668)+A(675) IF (DO_FUN(39)) & - P_VAR(39) = 0 + P_VAR(39) = A(25)+A(180)+A(240) IF (DO_FUN(40)) & - P_VAR(40) = A(332) + P_VAR(40) = A(19)+A(23)+0.06*A(314)+0.06*A(315)+A(322)+0.02*A(331)+0.02*A(332)+0.02*A(336)+0.013*A(369)+0.045*A(521) IF (DO_FUN(41)) & - P_VAR(41) = A(740)+A(741)+A(742) + P_VAR(41) = 0 IF (DO_FUN(42)) & - P_VAR(42) = 0.25*A(240) + P_VAR(42) = A(295) IF (DO_FUN(43)) & P_VAR(43) = 0 IF (DO_FUN(44)) & - P_VAR(44) = 0.59*A(235) + P_VAR(44) = 0.6*A(306) IF (DO_FUN(45)) & - P_VAR(45) = 0.25*A(242) + P_VAR(45) = A(720)+A(721)+A(722) IF (DO_FUN(46)) & - P_VAR(46) = 0.7*A(241) + P_VAR(46) = 0 IF (DO_FUN(47)) & - P_VAR(47) = A(317) + P_VAR(47) = 0.55*A(214) IF (DO_FUN(48)) & - P_VAR(48) = 0.25*A(239) + P_VAR(48) = 0.25*A(221) IF (DO_FUN(49)) & - P_VAR(49) = A(80) + P_VAR(49) = A(294) IF (DO_FUN(50)) & - P_VAR(50) = A(186) + P_VAR(50) = A(78) IF (DO_FUN(51)) & - P_VAR(51) = 0.14*A(227) + P_VAR(51) = A(170) IF (DO_FUN(52)) & - P_VAR(52) = 0.12*A(232) + P_VAR(52) = 0.21*A(205) IF (DO_FUN(53)) & - P_VAR(53) = 0.14*A(233) + P_VAR(53) = 0.1*A(211) IF (DO_FUN(54)) & - P_VAR(54) = 0 + P_VAR(54) = 0.14*A(212) IF (DO_FUN(55)) & - P_VAR(55) = 0.36*A(234) + P_VAR(55) = 0.1*A(218) IF (DO_FUN(56)) & - P_VAR(56) = A(305) + P_VAR(56) = 0.1*A(219) IF (DO_FUN(57)) & - P_VAR(57) = A(221) + P_VAR(57) = 0.14*A(220) IF (DO_FUN(58)) & - P_VAR(58) = A(3)+A(666) + P_VAR(58) = 0 IF (DO_FUN(59)) & - P_VAR(59) = A(6)+A(667) + P_VAR(59) = 0.35*A(213) IF (DO_FUN(60)) & - P_VAR(60) = 0 + P_VAR(60) = A(283) IF (DO_FUN(61)) & - P_VAR(61) = A(856) + P_VAR(61) = A(199) IF (DO_FUN(62)) & - P_VAR(62) = 0 + P_VAR(62) = A(3)+A(640) IF (DO_FUN(63)) & - P_VAR(63) = A(55) + P_VAR(63) = A(6)+A(641) IF (DO_FUN(64)) & - P_VAR(64) = 0.005*A(608) + P_VAR(64) = 0 IF (DO_FUN(65)) & - P_VAR(65) = A(325) + P_VAR(65) = A(836) IF (DO_FUN(66)) & - P_VAR(66) = 0.37*A(598) + P_VAR(66) = 0 IF (DO_FUN(67)) & - P_VAR(67) = 0.65*A(633) + P_VAR(67) = A(53) IF (DO_FUN(68)) & - P_VAR(68) = 0 + P_VAR(68) = 0.005*A(581) IF (DO_FUN(69)) & - P_VAR(69) = A(720)+A(721)+A(724)+A(725)+A(728)+A(729) + P_VAR(69) = A(300) IF (DO_FUN(70)) & - P_VAR(70) = 0.05*A(229) + P_VAR(70) = 0.65*A(606) IF (DO_FUN(71)) & - P_VAR(71) = A(162) + P_VAR(71) = 0.05*A(208) IF (DO_FUN(72)) & - P_VAR(72) = A(277) + P_VAR(72) = 0 IF (DO_FUN(73)) & - P_VAR(73) = 0 + P_VAR(73) = A(700)+A(701)+A(704)+A(705)+A(708)+A(709) IF (DO_FUN(74)) & - P_VAR(74) = 0.32*A(230) + P_VAR(74) = A(146) IF (DO_FUN(75)) & - P_VAR(75) = 0 + P_VAR(75) = A(256) IF (DO_FUN(76)) & P_VAR(76) = 0 IF (DO_FUN(77)) & - P_VAR(77) = 0 + P_VAR(77) = 0.3*A(209) IF (DO_FUN(78)) & - P_VAR(78) = 0.21*A(238) + P_VAR(78) = 0 IF (DO_FUN(79)) & - P_VAR(79) = 0.31*A(236) + P_VAR(79) = 0 IF (DO_FUN(80)) & - P_VAR(80) = 0.26*A(237) + P_VAR(80) = 0 IF (DO_FUN(81)) & - P_VAR(81) = 0.28*A(231) + P_VAR(81) = 0.21*A(217) IF (DO_FUN(82)) & - P_VAR(82) = 0 + P_VAR(82) = 0.31*A(215) IF (DO_FUN(83)) & - P_VAR(83) = 0.73*A(341)+0.4*A(342) + P_VAR(83) = 0.35*A(216) IF (DO_FUN(84)) & - P_VAR(84) = 0.098*A(575)+0.75*A(587) + P_VAR(84) = 0.25*A(210) IF (DO_FUN(85)) & - P_VAR(85) = A(10) + P_VAR(85) = 0.73*A(314)+0.4*A(315) IF (DO_FUN(86)) & - P_VAR(86) = A(74) + P_VAR(86) = A(10) IF (DO_FUN(87)) & - P_VAR(87) = A(27) + P_VAR(87) = A(72) IF (DO_FUN(88)) & - P_VAR(88) = A(60) + P_VAR(88) = 0.37*A(571) IF (DO_FUN(89)) & - P_VAR(89) = A(65) + P_VAR(89) = A(27) IF (DO_FUN(90)) & - P_VAR(90) = A(316)+2*A(319)+A(331)+A(334)+A(841)+2*A(846)+A(847) + P_VAR(90) = 0 IF (DO_FUN(91)) & - P_VAR(91) = A(87) + P_VAR(91) = A(63) IF (DO_FUN(92)) & - P_VAR(92) = A(111) + P_VAR(92) = 0.8*A(293)+2*A(296)+0.4*A(306)+0.996*A(307)+A(821)+2*A(826)+A(827) IF (DO_FUN(93)) & - P_VAR(93) = A(91) + P_VAR(93) = A(85) IF (DO_FUN(94)) & - P_VAR(94) = 0.41*A(113) + P_VAR(94) = A(107) IF (DO_FUN(95)) & - P_VAR(95) = A(635) + P_VAR(95) = A(89) IF (DO_FUN(96)) & - P_VAR(96) = A(738)+A(739)+A(745)+A(746)+A(747)+A(748)+A(750)+A(751)+A(752)+A(753)+A(754)+A(755)+A(756) + P_VAR(96) = A(58) IF (DO_FUN(97)) & - P_VAR(97) = 0 + P_VAR(97) = A(608) IF (DO_FUN(98)) & - P_VAR(98) = A(323)+A(722)+A(723)+A(726)+A(727)+A(730)+A(731) + P_VAR(98) = A(718)+A(719)+A(725)+A(726)+A(727)+A(728)+A(730)+A(731)+A(732)+A(733)+A(734)+A(735)+A(736) IF (DO_FUN(99)) & - P_VAR(99) = 0.06*A(617)+0.06*A(618) + P_VAR(99) = 0.191*A(298)+A(702)+A(703)+A(706)+A(707)+A(710)+A(711) IF (DO_FUN(100)) & P_VAR(100) = 0 IF (DO_FUN(101)) & - P_VAR(101) = A(41) + P_VAR(101) = 0.06*A(590)+0.06*A(591) IF (DO_FUN(102)) & - P_VAR(102) = 0.995*A(608)+A(609)+0.6*A(610)+A(910) + P_VAR(102) = A(39) IF (DO_FUN(103)) & - P_VAR(103) = A(244)+A(248)+A(273)+A(275)+A(282)+A(814) + P_VAR(103) = A(223)+A(227)+A(252)+A(254)+A(260)+A(794) IF (DO_FUN(104)) & - P_VAR(104) = 0.075*A(548)+0.241*A(553)+0.653*A(564)+0.75*A(878) + P_VAR(104) = 0.075*A(521)+0.241*A(526)+0.653*A(537)+0.75*A(858) IF (DO_FUN(105)) & - P_VAR(105) = 0.15*A(633)+A(638)+A(642) + P_VAR(105) = 0.098*A(548)+0.75*A(560) IF (DO_FUN(106)) & - P_VAR(106) = 0.15*A(427)+0.15*A(428)+0.112*A(888)+0.182*A(889)+0.161*A(899) + P_VAR(106) = 0.41*A(109) IF (DO_FUN(107)) & - P_VAR(107) = A(274)+A(281)+A(321) + P_VAR(107) = 0.15*A(606)+A(611)+A(615) IF (DO_FUN(108)) & - P_VAR(108) = A(109)+A(110) + P_VAR(108) = 0.995*A(581)+A(582)+0.6*A(583)+A(890) IF (DO_FUN(109)) & - P_VAR(109) = 0.19*A(617)+0.15*A(618) + P_VAR(109) = 0.15*A(400)+0.15*A(401)+0.112*A(868)+0.182*A(869)+0.161*A(879) IF (DO_FUN(110)) & - P_VAR(110) = A(112) + P_VAR(110) = A(105)+A(106) IF (DO_FUN(111)) & - P_VAR(111) = A(92) + P_VAR(111) = A(253)+A(259)+0.56*A(298) IF (DO_FUN(112)) & - P_VAR(112) = 0 + P_VAR(112) = A(108) IF (DO_FUN(113)) & - P_VAR(113) = A(607)+0.2*A(610) + P_VAR(113) = A(90) IF (DO_FUN(114)) & - P_VAR(114) = 0.255*A(440)+0.595*A(441)+A(481)+A(483) + P_VAR(114) = 0 IF (DO_FUN(115)) & - P_VAR(115) = A(460)+0.13*A(461)+0.2*A(462)+0.35*A(589)+0.35*A(901) + P_VAR(115) = 0.19*A(590)+0.15*A(591) IF (DO_FUN(116)) & - P_VAR(116) = 0.315*A(428) + P_VAR(116) = 0.255*A(413)+0.595*A(414)+A(454)+A(456) IF (DO_FUN(117)) & - P_VAR(117) = 0.54*A(616) + P_VAR(117) = A(433)+0.13*A(434)+0.2*A(435)+0.35*A(562)+0.35*A(881) IF (DO_FUN(118)) & - P_VAR(118) = A(354)+A(366) + P_VAR(118) = 0.54*A(589) IF (DO_FUN(119)) & - P_VAR(119) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(167)+A(344)+A(348)+A(694)+A(701) + P_VAR(119) = A(327)+A(339) IF (DO_FUN(120)) & - P_VAR(120) = 0.315*A(427) + P_VAR(120) = A(580)+0.2*A(583) IF (DO_FUN(121)) & - P_VAR(121) = 0 + P_VAR(121) = 0.315*A(400) IF (DO_FUN(122)) & - P_VAR(122) = A(459)+A(464) + P_VAR(122) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(151)+A(317)+A(321)+A(668)+A(675) IF (DO_FUN(123)) & - P_VAR(123) = 0.474*A(510)+0.34*A(511)+0.244*A(512)+0.841*A(515)+0.841*A(517)+0.841*A(520)+0.841*A(897)+0.227*A(900) + P_VAR(123) = 0.315*A(401) IF (DO_FUN(124)) & - P_VAR(124) = 0.15*A(400)+0.15*A(408)+0.009*A(441) + P_VAR(124) = 0 IF (DO_FUN(125)) & - P_VAR(125) = A(173)+A(175)+A(695)+A(699)+A(700) + P_VAR(125) = A(432)+A(437) IF (DO_FUN(126)) & - P_VAR(126) = 0.15*A(399)+0.15*A(406)+0.009*A(440) + P_VAR(126) = 0.474*A(483)+0.34*A(484)+0.244*A(485)+0.841*A(488)+0.841*A(490)+0.841*A(493)+0.841*A(877)+0.222*A(880) IF (DO_FUN(127)) & - P_VAR(127) = 0.67*A(435)+0.68*A(437)+0.67*A(478)+0.67*A(480) + P_VAR(127) = 0.15*A(373)+0.15*A(381)+0.009*A(414) IF (DO_FUN(128)) & - P_VAR(128) = 0.33*A(435)+0.32*A(437)+0.33*A(478)+0.33*A(480) + P_VAR(128) = A(157)+A(159)+A(669)+A(673)+A(674) IF (DO_FUN(129)) & - P_VAR(129) = 0.25*A(94)+0.25*A(95)+A(107)+A(108) + P_VAR(129) = 0.15*A(372)+0.15*A(379)+0.009*A(413) IF (DO_FUN(130)) & - P_VAR(130) = A(465)+0.2*A(466)+0.13*A(468)+0.15*A(589)+0.15*A(901)+0.122*A(902) + P_VAR(130) = 0.67*A(408)+0.68*A(410)+0.67*A(451)+0.67*A(453) IF (DO_FUN(131)) & - P_VAR(131) = A(384)+A(385)+A(386)+A(387)+A(388) + P_VAR(131) = 0.33*A(408)+0.32*A(410)+0.33*A(451)+0.33*A(453) IF (DO_FUN(132)) & - P_VAR(132) = A(283)+A(676)+A(679)+A(680)+A(681)+A(687)+A(688)+A(689)+A(691)+A(696)+A(697)+A(698) + P_VAR(132) = A(438)+0.2*A(439)+0.13*A(441)+0.15*A(562)+0.15*A(881)+0.163*A(882) IF (DO_FUN(133)) & - P_VAR(133) = 0.5*A(574)+0.25*A(880) + P_VAR(133) = 0.25*A(92)+0.25*A(93)+0.4*A(103)+0.4*A(104) IF (DO_FUN(134)) & - P_VAR(134) = A(28) + P_VAR(134) = A(357)+A(358)+A(359)+A(360)+A(361) IF (DO_FUN(135)) & - P_VAR(135) = -A(4) + P_VAR(135) = A(261)+A(650)+A(653)+A(654)+A(655)+A(661)+A(662)+A(663)+A(665)+A(670)+A(671)+A(672) IF (DO_FUN(136)) & - P_VAR(136) = A(419) + P_VAR(136) = 0.5*A(547)+0.25*A(860) IF (DO_FUN(137)) & - P_VAR(137) = A(423) + P_VAR(137) = A(28) IF (DO_FUN(138)) & - P_VAR(138) = 0.8*A(624)+0.727*A(626) + P_VAR(138) = -A(4) IF (DO_FUN(139)) & - P_VAR(139) = 0.725*A(445)+0.725*A(449)+0.35*A(453) + P_VAR(139) = A(392) IF (DO_FUN(140)) & - P_VAR(140) = A(306)+A(309)+A(313) + P_VAR(140) = A(396) IF (DO_FUN(141)) & - P_VAR(141) = 0.224*A(888)+0.068*A(899) + P_VAR(141) = 0.725*A(418)+0.725*A(422)+0.35*A(426) IF (DO_FUN(142)) & - P_VAR(142) = 0.182*A(889)+0.128*A(899) + P_VAR(142) = 0.8*A(597)+0.727*A(599) IF (DO_FUN(143)) & - P_VAR(143) = 0.435*A(544) + P_VAR(143) = A(284)+A(287)+A(291) IF (DO_FUN(144)) & - P_VAR(144) = -A(1) + P_VAR(144) = 0.224*A(868)+0.068*A(879) IF (DO_FUN(145)) & - P_VAR(145) = 0.3*A(617)+0.56*A(618)+0.44*A(626)+0.44*A(627) + P_VAR(145) = 0.182*A(869)+0.128*A(879) IF (DO_FUN(146)) & - P_VAR(146) = 0.461*A(541)+0.67*A(542)+0.67*A(543)+0.041*A(594) + P_VAR(146) = 0.435*A(517) IF (DO_FUN(147)) & - P_VAR(147) = A(508) + P_VAR(147) = -A(1) IF (DO_FUN(148)) & - P_VAR(148) = A(479) + P_VAR(148) = 0.3*A(590)+0.56*A(591)+0.44*A(599)+0.44*A(600) IF (DO_FUN(149)) & - P_VAR(149) = A(580)+A(583) + P_VAR(149) = 0.1*A(206) IF (DO_FUN(150)) & - P_VAR(150) = 0 + P_VAR(150) = 0.461*A(514)+0.67*A(515)+0.67*A(516)+0.041*A(567) IF (DO_FUN(151)) & - P_VAR(151) = 0 + P_VAR(151) = A(481) IF (DO_FUN(152)) & - P_VAR(152) = A(433)+0.444*A(590)+0.112*A(888)+0.182*A(889)+0.162*A(899)+0.454*A(905) + P_VAR(152) = A(452) IF (DO_FUN(153)) & - P_VAR(153) = 0.937*A(401) + P_VAR(153) = A(553)+A(556) IF (DO_FUN(154)) & - P_VAR(154) = 0.25*A(85)+0.25*A(86)+0.25*A(97)+0.25*A(98)+0.25*A(100)+0.25*A(101)+0.25*A(102)+0.25*A(355)+0.25*A(367)& - &+0.25*A(376) + P_VAR(154) = 0 IF (DO_FUN(155)) & - P_VAR(155) = 0.56*A(616)+0.68*A(617)+0.28*A(618)+0.18*A(624)+1.05*A(628)+A(629)+0.3*A(630)+A(646)+A(647)+A(914) + P_VAR(155) = 0 IF (DO_FUN(156)) & - P_VAR(156) = 0.06*A(624)+0.742*A(625)+0.073*A(626)+0.3*A(627)+0.3*A(628)+0.3*A(630)+A(639)+A(640)+A(641)+A(648)+A(913) + P_VAR(156) = A(406)+0.444*A(563)+0.112*A(868)+0.182*A(869)+0.162*A(879)+0.454*A(885) IF (DO_FUN(157)) & - P_VAR(157) = 0 + P_VAR(157) = 0.937*A(374) IF (DO_FUN(158)) & - P_VAR(158) = 0.937*A(403) + P_VAR(158) = 0.25*A(83)+0.25*A(84)+0.38*A(95)+0.375*A(96)+0.25*A(98)+0.25*A(99)+0.25*A(100)+0.25*A(328)+0.25*A(340)& + &+0.25*A(349) IF (DO_FUN(159)) & - P_VAR(159) = 0.824*A(442)+0.452*A(446)+A(450)+0.667*A(591) + P_VAR(159) = 0.55*A(589)+0.68*A(590)+0.28*A(591)+0.18*A(597)+1.05*A(601)+A(602)+0.3*A(603)+0.9*A(619)+0.9*A(620)& + &+A(894) IF (DO_FUN(160)) & - P_VAR(160) = 0.022*A(594)+0.552*A(888)+0.455*A(889)+0.481*A(899) + P_VAR(160) = 0.06*A(597)+0.742*A(598)+0.073*A(599)+0.3*A(600)+0.3*A(601)+0.3*A(603)+A(612)+A(613)+A(614)+A(621)+A(893) IF (DO_FUN(161)) & - P_VAR(161) = A(404) + P_VAR(161) = 0 IF (DO_FUN(162)) & - P_VAR(162) = A(477) + P_VAR(162) = 0.937*A(376) IF (DO_FUN(163)) & - P_VAR(163) = A(484) + P_VAR(163) = 0.022*A(567)+0.552*A(868)+0.454*A(869)+0.481*A(879) IF (DO_FUN(164)) & - P_VAR(164) = A(482) + P_VAR(164) = 0.824*A(415)+0.452*A(419)+A(423)+0.667*A(564) IF (DO_FUN(165)) & - P_VAR(165) = 0 + P_VAR(165) = A(377) IF (DO_FUN(166)) & - P_VAR(166) = 0.13*A(469)+0.2*A(471)+0.53*A(554)+0.6*A(566)+0.255*A(570)+0.318*A(590)+0.391*A(905) + P_VAR(166) = A(455) IF (DO_FUN(167)) & - P_VAR(167) = A(402) + P_VAR(167) = A(450) IF (DO_FUN(168)) & - P_VAR(168) = 0.3*A(399)+0.3*A(406)+0.018*A(440)+0.284*A(443)+0.135*A(445)+0.249*A(534)+0.471*A(535)+0.303*A(536)+0.59& - &*A(538)+0.5*A(907) + P_VAR(168) = A(457) IF (DO_FUN(169)) & - P_VAR(169) = A(47) + P_VAR(169) = 0.13*A(442)+0.2*A(444)+0.53*A(527)+0.6*A(539)+0.255*A(543)+0.318*A(563)+0.391*A(885) IF (DO_FUN(170)) & - P_VAR(170) = 0.085*A(427)+0.165*A(428)+0.58*A(429)+0.77*A(430)+0.75*A(454)+A(455)+A(457)+A(528)+A(540) + P_VAR(170) = 0 IF (DO_FUN(171)) & - P_VAR(171) = 0.6*A(485)+0.031*A(497)+0.065*A(498)+0.094*A(503)+0.355*A(504)+0.06*A(534)+0.073*A(535)+0.17*A(536)+0.291& - &*A(538)+0.378*A(541)+0.13*A(581)+0.3*A(585) + P_VAR(171) = A(375) IF (DO_FUN(172)) & - P_VAR(172) = A(187) + P_VAR(172) = 0.3*A(372)+0.3*A(379)+0.018*A(413)+0.284*A(416)+0.135*A(418)+0.249*A(507)+0.471*A(508)+0.303*A(509)+0.59& + &*A(511)+0.5*A(887) IF (DO_FUN(173)) & - P_VAR(173) = A(194)+A(199)+A(202)+A(203)+0.24*A(224)+0.15*A(225)+A(264)+A(764) + P_VAR(173) = A(45) IF (DO_FUN(174)) & - P_VAR(174) = 0.12*A(353)+A(371)+0.7*A(373)+0.7*A(374)+0.7*A(375)+0.35*A(376)+0.7*A(377)+0.7*A(379)+1.4*A(381)+1.05& - &*A(382)+0.7*A(383) + P_VAR(174) = 0.085*A(400)+0.165*A(401)+0.58*A(402)+0.77*A(403)+0.75*A(427)+A(428)+A(430)+A(501)+A(513) IF (DO_FUN(175)) & - P_VAR(175) = A(605)+A(614) + P_VAR(175) = 0.6*A(458)+0.031*A(470)+0.065*A(471)+0.094*A(476)+0.355*A(477)+0.06*A(507)+0.073*A(508)+0.17*A(509)+0.291& + &*A(511)+0.378*A(514)+0.13*A(554)+0.3*A(558) IF (DO_FUN(176)) & - P_VAR(176) = A(631)+A(632)+A(636)+A(637) + P_VAR(176) = A(171) IF (DO_FUN(177)) & - P_VAR(177) = 0.473*A(507)+0.07*A(509)+0.399*A(510)+0.355*A(513) + P_VAR(177) = A(178)+0.2*A(180)+A(183)+A(184)+0.22*A(202)+0.2*A(203)+0.09*A(206)+A(243)+A(744) IF (DO_FUN(178)) & - P_VAR(178) = 0.46*A(616)+0.81*A(617)+0.85*A(618)+0.14*A(624)+0.2*A(626)+0.2*A(627)+0.7*A(628)+0.2*A(630) + P_VAR(178) = 0.12*A(326)+A(344)+0.7*A(346)+0.7*A(347)+0.7*A(348)+0.35*A(349)+0.7*A(350)+0.7*A(352)+1.4*A(354)+1.05& + &*A(355)+0.7*A(356) IF (DO_FUN(179)) & - P_VAR(179) = 0.345*A(434)+0.595*A(440) + P_VAR(179) = A(578)+A(587) IF (DO_FUN(180)) & - P_VAR(180) = 0.345*A(436)+0.255*A(441) + P_VAR(180) = A(604)+A(605)+A(609)+A(610) IF (DO_FUN(181)) & - P_VAR(181) = 0.29*A(553)+0.47*A(554)+0.063*A(564)+0.4*A(566)+0.16*A(569)+0.126*A(590)+0.1*A(902)+0.155*A(905) + P_VAR(181) = 0.473*A(480)+0.07*A(482)+0.399*A(483)+0.355*A(486) IF (DO_FUN(182)) & - P_VAR(182) = 0.25*A(399)+0.25*A(406)+0.015*A(440) + P_VAR(182) = 0.345*A(407)+0.595*A(413) IF (DO_FUN(183)) & - P_VAR(183) = 0.655*A(434)+0.655*A(436) + P_VAR(183) = 0.345*A(409)+0.255*A(414) IF (DO_FUN(184)) & - P_VAR(184) = 0.25*A(400)+0.25*A(408)+0.015*A(441) + P_VAR(184) = 0.46*A(589)+0.81*A(590)+0.85*A(591)+0.14*A(597)+0.2*A(599)+0.2*A(600)+0.7*A(601)+0.2*A(603) IF (DO_FUN(185)) & - P_VAR(185) = A(525) + P_VAR(185) = 0.29*A(526)+0.47*A(527)+0.063*A(537)+0.4*A(539)+0.16*A(542)+0.126*A(563)+0.133*A(882)+0.155*A(885) IF (DO_FUN(186)) & - P_VAR(186) = 0.1*A(115)+A(774) + P_VAR(186) = 0.25*A(372)+0.25*A(379)+0.015*A(413) IF (DO_FUN(187)) & - P_VAR(187) = 0.2*A(633)+A(634)+A(643)+A(644)+A(649)+A(911)+A(912) + P_VAR(187) = 0.655*A(407)+0.655*A(409) IF (DO_FUN(188)) & - P_VAR(188) = A(39)+0.5*A(664)+A(684)+A(685)+A(686)+A(687)+A(688)+A(689)+A(720)+A(721)+A(722)+A(723)+A(862)+A(864)& - &+A(914) + P_VAR(188) = 0.25*A(373)+0.25*A(381)+0.015*A(414) IF (DO_FUN(189)) & - P_VAR(189) = A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.45*A(422)+0.45*A(426)+0.06*A(440)+0.06*A(441)+A(886)+A(887)& - &+0.45*A(892)+0.45*A(895) + P_VAR(189) = A(498) IF (DO_FUN(190)) & - P_VAR(190) = 0.16*A(439)+0.25*A(454) + P_VAR(190) = 0.1*A(111)+A(754) IF (DO_FUN(191)) & - P_VAR(191) = 0.12*A(115) + P_VAR(191) = 0.2*A(606)+A(607)+A(616)+A(617)+A(622)+A(891)+A(892) IF (DO_FUN(192)) & - P_VAR(192) = 0.25*A(226)+A(272)+A(279)+A(285)+0.5*A(673)+0.5*A(674)+A(678)+A(682)+A(683)+A(684)+A(685)+A(686)+A(690)& - &+A(692)+A(693) + P_VAR(192) = A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)+0.45*A(395)+0.45*A(399)+0.06*A(413)+0.06*A(414)+A(866)+A(867)& + &+0.45*A(872)+0.45*A(875) IF (DO_FUN(193)) & - P_VAR(193) = 0.85*A(89)+0.85*A(90)+0.3*A(400)+0.3*A(408)+0.018*A(441)+0.294*A(447)+0.135*A(449)+0.009*A(534)+0.054& - &*A(535)+0.013*A(536)+0.07*A(538)+0.036*A(549)+0.23*A(555)+0.05*A(907) + P_VAR(193) = A(37)+0.5*A(638)+A(658)+A(659)+A(660)+A(661)+A(662)+A(663)+A(695)+A(696)+A(700)+A(701)+A(702)+A(703)& + &+A(842)+A(844)+A(894) IF (DO_FUN(194)) & - P_VAR(194) = 0.791*A(131)+0.551*A(497)+0.935*A(498)+0.242*A(503)+0.546*A(504)+0.589*A(534)+0.471*A(535)+0.687*A(536)& - &+0.59*A(538)+0.231*A(542)+0.231*A(543)+A(545)+0.82*A(546)+0.68*A(552)+A(557)+A(883) + P_VAR(194) = 0.16*A(412)+0.25*A(427) IF (DO_FUN(195)) & - P_VAR(195) = 0.059*A(488)+0.272*A(489)+A(563)+A(578)+0.37*A(581)+0.5*A(906) + P_VAR(195) = 0.12*A(111) IF (DO_FUN(196)) & - P_VAR(196) = 0.06*A(353)+0.22*A(365)+0.3*A(373)+0.3*A(374)+0.3*A(375)+0.15*A(376)+0.3*A(377)+0.3*A(379)+0.6*A(381)& - &+0.45*A(382)+0.3*A(383) + P_VAR(196) = 0.85*A(87)+0.85*A(88)+0.3*A(373)+0.3*A(381)+0.018*A(414)+0.294*A(420)+0.135*A(422)+0.009*A(507)+0.054& + &*A(508)+0.013*A(509)+0.07*A(511)+0.036*A(522)+0.23*A(528)+0.05*A(887) IF (DO_FUN(197)) & - P_VAR(197) = A(118)+0.209*A(131) + P_VAR(197) = 0.25*A(204)+A(251)+0.95*A(258)+A(263)+0.5*A(647)+0.5*A(648)+A(652)+A(656)+A(657)+A(658)+A(659)+A(660)& + &+A(664)+A(666)+A(667) IF (DO_FUN(198)) & - P_VAR(198) = A(69)+0.07*A(72)+A(88) + P_VAR(198) = 0.791*A(121)+0.551*A(470)+0.935*A(471)+0.242*A(476)+0.546*A(477)+0.589*A(507)+0.471*A(508)+0.687*A(509)& + &+0.59*A(511)+0.231*A(515)+0.231*A(516)+A(518)+0.82*A(519)+0.68*A(525)+A(530)+A(863) IF (DO_FUN(199)) & - P_VAR(199) = A(307) + P_VAR(199) = 0.06*A(326)+0.22*A(338)+0.3*A(346)+0.3*A(347)+0.3*A(348)+0.15*A(349)+0.3*A(350)+0.3*A(352)+0.6*A(354)& + &+0.45*A(355)+0.3*A(356) IF (DO_FUN(200)) & - P_VAR(200) = A(547)+A(558)+A(559) + P_VAR(200) = 0.059*A(461)+0.272*A(462)+A(536)+A(551)+0.37*A(554)+0.5*A(886) IF (DO_FUN(201)) & - P_VAR(201) = 0.964*A(549)+A(561)+A(562) + P_VAR(201) = A(114)+0.209*A(121) IF (DO_FUN(202)) & - P_VAR(202) = 0.176*A(442)+0.548*A(446)+0.35*A(461)+0.35*A(468)+0.35*A(469)+0.333*A(591)+0.75*A(903) + P_VAR(202) = A(67)+0.072*A(70)+A(86) IF (DO_FUN(203)) & - P_VAR(203) = A(550)+0.32*A(552)+0.165*A(575)+A(586) + P_VAR(203) = A(285) IF (DO_FUN(204)) & - P_VAR(204) = A(114)+0.209*A(137)+A(303)+A(304) + P_VAR(204) = A(520)+A(531)+A(532) IF (DO_FUN(205)) & - P_VAR(205) = 0.441*A(500)+0.858*A(501)+0.033*A(503)+0.071*A(504)+0.051*A(534)+0.054*A(535)+0.064*A(536)+0.07*A(538)& - &+0.099*A(542)+0.099*A(543)+0.89*A(545)+0.73*A(546)+0.3*A(881)+0.15*A(906) + P_VAR(205) = 0.964*A(522)+A(534)+A(535) IF (DO_FUN(206)) & - P_VAR(206) = 0.258*A(625)+0.5*A(627)+0.5*A(630)+A(645) + P_VAR(206) = 0.176*A(415)+0.548*A(419)+0.35*A(434)+0.35*A(441)+0.35*A(442)+0.333*A(564)+0.75*A(883) IF (DO_FUN(207)) & - P_VAR(207) = 0.134*A(116)+A(117)+0.5*A(124)+0.21*A(341)+0.54*A(342)+0.07*A(353)+0.01*A(363)+0.449*A(553)+0.187*A(564)& - &+0.3*A(588)+0.5*A(597)+0.364*A(606)+0.25*A(650)+0.5*A(651)+0.1*A(653)+0.2*A(654) + P_VAR(207) = A(523)+0.32*A(525)+0.165*A(548)+A(559) IF (DO_FUN(208)) & - P_VAR(208) = A(19)+A(23)+0.06*A(341)+0.06*A(342)+A(349)+0.02*A(358)+0.02*A(359)+0.02*A(363)+0.013*A(396)+0.045*A(548) + P_VAR(208) = 0.441*A(473)+0.858*A(474)+0.033*A(476)+0.071*A(477)+0.051*A(507)+0.054*A(508)+0.064*A(509)+0.07*A(511)& + &+0.099*A(515)+0.099*A(516)+0.89*A(518)+0.73*A(519)+0.3*A(861)+0.15*A(886) IF (DO_FUN(209)) & - P_VAR(209) = A(463)+A(467)+A(470)+A(487)+A(491)+A(495)+A(496)+A(532)+0.5*A(533)+0.92*A(594) + P_VAR(209) = A(110)+0.209*A(127)+A(281)+A(282) IF (DO_FUN(210)) & - P_VAR(210) = A(421)+0.127*A(511)+0.057*A(512) + P_VAR(210) = 0.258*A(598)+0.5*A(600)+0.5*A(603)+A(618) IF (DO_FUN(211)) & - P_VAR(211) = 0.1*A(360)+0.1*A(361)+0.5*A(364) + P_VAR(211) = 0.134*A(112)+A(113)+0.5*A(120)+0.21*A(314)+0.54*A(315)+0.07*A(326)+0.01*A(336)+0.449*A(526)+0.187*A(537)& + &+0.3*A(561)+0.5*A(570)+0.364*A(579)+0.26*A(623)+0.5*A(624)+0.1*A(626)+0.2*A(627) IF (DO_FUN(212)) & - P_VAR(212) = 0.9*A(360)+0.9*A(361)+0.5*A(364) + P_VAR(212) = A(19)+A(23)+0.06*A(314)+0.06*A(315)+A(322)+0.02*A(331)+0.02*A(332)+0.02*A(336)+0.013*A(369)+0.045*A(521) IF (DO_FUN(213)) & - P_VAR(213) = A(58)+A(140)+A(184)+A(292) + P_VAR(213) = A(436)+A(440)+A(443)+A(460)+A(464)+A(468)+A(469)+A(505)+0.5*A(506)+0.9*A(567) IF (DO_FUN(214)) & - P_VAR(214) = A(29)+0.13*A(31)+0.25*A(85)+0.25*A(86)+0.25*A(94)+0.25*A(95)+0.25*A(97)+0.25*A(98)+0.5*A(99)+0.25*A(100)& - &+0.25*A(101)+0.25*A(102)+0.25*A(355)+0.25*A(367)+0.25*A(376)+0.355*A(512)+0.034*A(513)+0.2*A(610)+0.1& - &*A(780) + P_VAR(214) = A(394)+0.127*A(484)+0.057*A(485) IF (DO_FUN(215)) & - P_VAR(215) = 0.5*A(124)+A(127)+A(128)+A(143)+A(150)+A(151)+A(152)+A(153)+A(154)+A(155)+A(158)+A(159)+A(350)+0.13& - &*A(598)+0.15*A(653)+0.3*A(654) + P_VAR(215) = 0.1*A(333)+0.1*A(334)+0.5*A(337) IF (DO_FUN(216)) & - P_VAR(216) = A(425)+0.032*A(510)+0.671*A(511)+0.298*A(512) + P_VAR(216) = 0.9*A(333)+0.9*A(334)+0.5*A(337) IF (DO_FUN(217)) & - P_VAR(217) = 0.67*A(524) + P_VAR(217) = A(56)+A(130)+A(168)+A(270) IF (DO_FUN(218)) & - P_VAR(218) = 0.134*A(116)+0.8*A(466)+0.52*A(468)+A(600)+0.636*A(606)+0.18*A(616)+0.12*A(617)+0.1*A(618)+0.06*A(624)& - &+0.6*A(650)+0.6*A(651)+0.2*A(652)+0.5*A(875)+0.429*A(877)+0.125*A(878)+0.438*A(902)+0.571*A(904) + P_VAR(218) = A(29)+0.13*A(31)+0.25*A(83)+0.25*A(84)+0.25*A(92)+0.25*A(93)+0.25*A(95)+0.25*A(96)+0.5*A(97)+0.25*A(98)& + &+0.25*A(99)+0.25*A(100)+0.25*A(328)+0.25*A(340)+0.25*A(349)+0.355*A(485)+0.034*A(486)+0.2*A(583)+0.1& + &*A(760) IF (DO_FUN(219)) & - P_VAR(219) = 0.32*A(68)+A(73)+0.16*A(97)+0.75*A(101)+0.791*A(134)+0.32*A(144)+A(147)+A(155)+0.11*A(353)+A(394)+A(793)& - &+0.32*A(797)+A(868) + P_VAR(219) = 0.5*A(120)+0.1*A(132)+0.1*A(133)+0.1*A(134)+0.1*A(135)+0.1*A(136)+0.1*A(137)+0.1*A(138)+0.1*A(139)+0.1& + &*A(140)+0.1*A(141)+0.1*A(142)+A(323)+0.13*A(571)+0.15*A(626)+0.3*A(627) IF (DO_FUN(220)) & - P_VAR(220) = 0 + P_VAR(220) = A(398)+0.032*A(483)+0.671*A(484)+0.298*A(485) IF (DO_FUN(221)) & - P_VAR(221) = A(362) + P_VAR(221) = 0.34*A(66)+A(71)+0.16*A(95)+0.75*A(99)+0.791*A(124)+0.29*A(133)+A(136)+0.11*A(326)+A(367)+A(773)+0.34& + &*A(777)+A(848) IF (DO_FUN(222)) & - P_VAR(222) = 0.19*A(68)+0.35*A(97)+0.25*A(100)+0.19*A(144)+A(150)+A(152)+0.44*A(353)+0.75*A(355)+A(356)+A(357)+0.53& - &*A(358)+0.53*A(359)+0.289*A(365)+0.41*A(370)+0.464*A(372)+0.348*A(376)+0.464*A(378)+0.464*A(380)+0.149& - &*A(382)+0.285*A(383)+0.19*A(797)+A(859) + P_VAR(222) = 0.67*A(497) IF (DO_FUN(223)) & - P_VAR(223) = A(312)+A(314)+A(320)+A(324)+A(328)+2*A(333)+A(847) + P_VAR(223) = 0.134*A(112)+0.8*A(439)+0.52*A(441)+A(573)+0.636*A(579)+0.18*A(589)+0.12*A(590)+0.1*A(591)+0.06*A(597)& + &+0.6*A(623)+0.6*A(624)+0.2*A(625)+0.5*A(855)+0.429*A(857)+0.125*A(858)+0.586*A(882)+0.571*A(884) IF (DO_FUN(224)) & - P_VAR(224) = 0.294*A(431)+0.67*A(456)+0.81*A(458)+0.08*A(590) + P_VAR(224) = 0 IF (DO_FUN(225)) & - P_VAR(225) = 0.068*A(431)+0.33*A(456)+0.19*A(458)+0.032*A(590) + P_VAR(225) = A(335) IF (DO_FUN(226)) & - P_VAR(226) = A(412)+0.5*A(414)+0.5*A(416)+0.55*A(422)+0.33*A(427)+0.19*A(429)+0.125*A(431)+0.125*A(438)+0.706*A(447)& - &+0.14*A(449)+0.054*A(534)+0.059*A(536)+0.335*A(570)+0.429*A(592)+0.75*A(593)+0.55*A(892)+0.5*A(909) + P_VAR(226) = 0.19*A(66)+0.35*A(95)+0.25*A(98)+0.271*A(133)+0.1*A(135)+0.44*A(326)+0.75*A(328)+1.125*A(329)+A(330)+0.53& + &*A(331)+0.53*A(332)+0.289*A(338)+0.41*A(343)+0.464*A(345)+0.34*A(349)+0.464*A(351)+0.464*A(353)+0.149& + &*A(355)+0.285*A(356)+0.19*A(777)+A(839) IF (DO_FUN(227)) & - P_VAR(227) = A(413)+0.5*A(414)+0.5*A(418)+0.55*A(426)+0.17*A(428)+0.09*A(430)+0.158*A(431)+0.165*A(439)+0.716*A(443)& - &+0.14*A(445)+0.004*A(534)+0.006*A(536)+0.41*A(573)+0.5*A(589)+0.571*A(592)+0.25*A(593)+0.55*A(895)+0.5& - &*A(901)+0.15*A(907)+0.5*A(909) + P_VAR(227) = A(290)+A(292)+A(297)+A(299)+A(303)+0.008*A(307)+A(827) IF (DO_FUN(228)) & - P_VAR(228) = A(35)+0.5*A(99)+A(123)+A(151)+A(337)+0.3*A(399)+0.3*A(400)+0.3*A(406)+0.3*A(408)+0.085*A(427)+0.165& - &*A(428)+0.355*A(431)+0.5*A(432)+0.018*A(440)+0.018*A(441)+0.52*A(461)+0.8*A(462)+0.545*A(548)+0.88*A(551)& - &+0.449*A(553)+0.187*A(564)+A(565)+A(567)+0.05*A(570)+0.242*A(571)+0.083*A(573)+0.14*A(577)+0.7*A(588)+0.12& - &*A(617)+0.2*A(618)+0.6*A(653)+0.6*A(654)+0.2*A(655)+0.5*A(875)+0.47*A(876)+0.571*A(877)+0.125*A(878)+0.23& - &*A(879)+0.088*A(902)+0.429*A(904)+A(908) + P_VAR(228) = 0.294*A(404)+0.67*A(429)+0.81*A(431)+0.08*A(563) IF (DO_FUN(229)) & - P_VAR(229) = A(523)+0.33*A(524)+0.037*A(594) + P_VAR(229) = 0.068*A(404)+0.33*A(429)+0.19*A(431)+0.032*A(563) IF (DO_FUN(230)) & - P_VAR(230) = 0.12*A(115)+0.58*A(396)+0.5*A(548)+0.88*A(551)+A(604) + P_VAR(230) = A(385)+0.5*A(387)+0.5*A(389)+0.55*A(395)+0.33*A(400)+0.19*A(402)+0.125*A(404)+0.125*A(411)+0.706*A(420)& + &+0.14*A(422)+0.054*A(507)+0.059*A(509)+0.335*A(543)+0.429*A(565)+0.75*A(566)+0.55*A(872)+0.5*A(889) IF (DO_FUN(231)) & - P_VAR(231) = A(669)+A(671)+A(672) + P_VAR(231) = A(386)+0.5*A(387)+0.5*A(391)+0.55*A(399)+0.17*A(401)+0.09*A(403)+0.158*A(404)+0.165*A(412)+0.716*A(416)& + &+0.14*A(418)+0.004*A(507)+0.006*A(509)+0.41*A(546)+0.5*A(562)+0.571*A(565)+0.25*A(566)+0.55*A(875)+0.5& + &*A(881)+0.15*A(887)+0.5*A(889) IF (DO_FUN(232)) & - P_VAR(232) = 0.294*A(447)+0.135*A(449)+A(451)+0.65*A(453)+0.52*A(461)+0.8*A(462)+0.459*A(488)+0.728*A(489)+0.551& - &*A(497)+0.935*A(498)+0.242*A(503)+0.546*A(504)+0.34*A(534)+0.384*A(536)+0.11*A(545)+0.09*A(546)+0.36& - &*A(570)+0.758*A(571)+0.2*A(610)+A(612)+A(613)+A(615)+A(629)+0.9*A(651)+0.95*A(654)+0.53*A(876)+0.69*A(881)& - &+0.5*A(900)+0.088*A(902)+0.25*A(903)+0.429*A(904)+0.3*A(906)+0.35*A(907)+A(908) + P_VAR(232) = A(496)+0.33*A(497)+0.037*A(567) IF (DO_FUN(233)) & - P_VAR(233) = A(63)+0.05*A(68)+0.07*A(82)+0.03*A(97)+0.03*A(113)+0.07*A(129)+0.36*A(133)+0.05*A(144)+0.07*A(160)+A(185)& - &+A(299)+0.07*A(776)+0.06*A(779)+0.05*A(797) + P_VAR(233) = 0.3*A(33)+0.5*A(97)+A(119)+0.1*A(134)+A(310)+0.3*A(372)+0.3*A(373)+0.3*A(379)+0.3*A(381)+0.085*A(400)& + &+0.165*A(401)+0.355*A(404)+0.5*A(405)+0.018*A(413)+0.018*A(414)+0.52*A(434)+0.8*A(435)+0.545*A(521)+0.88& + &*A(524)+0.449*A(526)+0.187*A(537)+A(538)+A(540)+0.05*A(543)+0.242*A(544)+0.083*A(546)+0.14*A(550)+0.7& + &*A(561)+0.12*A(590)+0.2*A(591)+0.6*A(626)+0.6*A(627)+0.2*A(628)+0.5*A(855)+0.47*A(856)+0.571*A(857)+0.125& + &*A(858)+0.23*A(859)+0.118*A(882)+0.429*A(884)+A(888) IF (DO_FUN(234)) & - P_VAR(234) = A(351)+A(352) + P_VAR(234) = 0.22*A(111)+0.58*A(369)+0.5*A(521)+0.88*A(524)+A(577) IF (DO_FUN(235)) & - P_VAR(235) = 0.32*A(68)+0.5*A(82)+0.16*A(97)+0.22*A(113)+0.5*A(129)+0.36*A(132)+0.32*A(144)+0.5*A(160)+0.16*A(363)+0.5& - &*A(776)+0.425*A(779)+0.32*A(797) + P_VAR(235) = A(643)+A(645)+A(646) IF (DO_FUN(236)) & - P_VAR(236) = 0.4*A(485)+0.4*A(486)+0.07*A(509)+0.532*A(510)+0.861*A(511)+0.401*A(512)+0.034*A(513)+0.159*A(515)+0.159& - &*A(517)+0.159*A(520)+A(522)+A(531)+0.159*A(897)+0.228*A(900) + P_VAR(236) = 0.294*A(420)+0.135*A(422)+A(424)+0.65*A(426)+0.52*A(434)+0.8*A(435)+0.459*A(461)+0.728*A(462)+0.551& + &*A(470)+0.935*A(471)+0.242*A(476)+0.546*A(477)+0.34*A(507)+0.384*A(509)+0.11*A(518)+0.09*A(519)+0.36& + &*A(543)+0.758*A(544)+0.2*A(583)+A(585)+A(586)+A(588)+A(602)+0.9*A(624)+0.95*A(627)+0.53*A(856)+0.69*A(861)& + &+0.5*A(880)+0.118*A(882)+0.25*A(883)+0.429*A(884)+0.3*A(886)+0.35*A(887)+A(888) IF (DO_FUN(237)) & - P_VAR(237) = 0.6*A(486)+0.599*A(492)+A(493)+0.065*A(500)+0.142*A(501)+0.01*A(503)+0.028*A(504)+0.008*A(534)+0.015& - &*A(535)+0.014*A(536)+0.049*A(538)+0.161*A(541)+A(560)+0.438*A(572)+0.05*A(906) + P_VAR(237) = A(61)+0.05*A(66)+0.07*A(80)+0.03*A(95)+0.03*A(109)+0.36*A(123)+0.045*A(133)+0.07*A(143)+0.07*A(144)& + &+A(169)+A(277)+0.07*A(756)+0.06*A(759)+0.05*A(777) IF (DO_FUN(238)) & - P_VAR(238) = A(444)+A(448)+A(452)+0.482*A(488)+0.401*A(492)+0.418*A(497)+0.494*A(500)+0.621*A(503)+A(526)+A(527)+0.5& - &*A(533)+0.234*A(534)+0.387*A(535)+0.565*A(544) + P_VAR(238) = A(324)+A(325) IF (DO_FUN(239)) & - P_VAR(239) = A(490)+A(494)+A(499)+A(502)+A(505)+A(519)+A(521)+A(537)+A(539)+0.18*A(546) + P_VAR(239) = 0.34*A(66)+0.49*A(80)+0.16*A(95)+0.22*A(109)+0.36*A(122)+0.29*A(133)+0.49*A(143)+0.49*A(144)+0.16*A(336)& + &+0.49*A(756)+0.415*A(759)+0.34*A(777) IF (DO_FUN(240)) & - P_VAR(240) = 0.465*A(506)+A(529) + P_VAR(240) = 0.4*A(458)+0.4*A(459)+0.07*A(482)+0.532*A(483)+0.862*A(484)+0.401*A(485)+0.034*A(486)+0.159*A(488)+0.159& + &*A(490)+0.159*A(493)+A(495)+A(504)+0.159*A(877)+0.223*A(880) IF (DO_FUN(241)) & - P_VAR(241) = 0.535*A(506)+A(530) + P_VAR(241) = 0.6*A(459)+0.599*A(465)+A(466)+0.065*A(473)+0.142*A(474)+0.01*A(476)+0.028*A(477)+0.008*A(507)+0.015& + &*A(508)+0.014*A(509)+0.049*A(511)+0.161*A(514)+A(533)+A(545)+0.05*A(886) IF (DO_FUN(242)) & - P_VAR(242) = 0.5*A(301)+A(397)+0.75*A(438)+0.03*A(440)+0.841*A(898) + P_VAR(242) = A(417)+A(421)+A(425)+0.482*A(461)+0.401*A(465)+0.418*A(470)+0.494*A(473)+0.621*A(476)+A(499)+A(500)+0.5& + &*A(506)+0.234*A(507)+0.387*A(508)+0.565*A(517) IF (DO_FUN(243)) & - P_VAR(243) = 0.5*A(301)+A(398)+0.51*A(439)+0.03*A(441)+0.159*A(898) + P_VAR(243) = A(463)+A(467)+A(472)+A(475)+A(478)+A(492)+A(494)+A(510)+A(512)+0.18*A(519) IF (DO_FUN(244)) & - P_VAR(244) = 0.177*A(396)+0.063*A(401)+A(405)+2*A(409)+A(411)+A(415)+A(420)+0.035*A(427)+0.23*A(429)+0.125*A(438)& - &+A(473)+A(474)+0.479*A(507)+1.737*A(509)+0.544*A(510)+0.583*A(513)+0.903*A(514)+0.903*A(516)+0.904*A(518)& - &+0.04*A(617)+0.04*A(618)+A(884)+A(890)+A(893)+0.903*A(896)+0.05*A(900) + P_VAR(244) = 0.5*A(279)+A(371)+0.51*A(412)+0.03*A(414)+0.159*A(878) IF (DO_FUN(245)) & - P_VAR(245) = A(556) + P_VAR(245) = 0.5*A(279)+A(370)+0.75*A(411)+0.03*A(413)+0.841*A(878) IF (DO_FUN(246)) & - P_VAR(246) = 0.16*A(86)+0.2*A(99)+0.65*A(128)+0.791*A(137)+0.058*A(365)+A(391)+0.5*A(432)+0.284*A(443)+0.135*A(445)& - &+A(451)+0.65*A(453)+0.8*A(466)+0.52*A(468)+0.52*A(469)+0.8*A(471)+A(472)+0.459*A(488)+0.728*A(489)+0.441& - &*A(500)+0.858*A(501)+0.033*A(503)+0.071*A(504)+0.042*A(534)+0.051*A(536)+0.77*A(555)+0.84*A(569)+0.507& - &*A(573)+0.488*A(575)+A(576)+0.86*A(577)+0.5*A(581)+A(582)+A(584)+0.7*A(585)+0.25*A(587)+A(861)+0.77*A(879)& - &+A(882)+0.5*A(900)+0.438*A(902)+0.25*A(903)+0.571*A(904)+0.45*A(906)+0.8*A(907) + P_VAR(246) = 0.535*A(479)+A(503) IF (DO_FUN(247)) & - P_VAR(247) = 0.79*A(363)+0.308*A(367)+0.308*A(368)+0.615*A(369)+0.416*A(396)+0.063*A(403)+A(407)+2*A(410)+A(411)& - &+A(417)+A(424)+0.035*A(428)+0.14*A(430)+0.165*A(439)+A(475)+A(476)+0.048*A(507)+0.123*A(509)+0.019*A(510)& - &+0.028*A(513)+0.097*A(514)+0.097*A(516)+0.096*A(518)+A(885)+A(891)+A(894)+0.097*A(896)+0.005*A(900) + P_VAR(247) = 0.465*A(479)+A(502) IF (DO_FUN(248)) & - P_VAR(248) = A(34)+A(84)+A(183)+A(300) + P_VAR(248) = 0.177*A(369)+0.063*A(374)+A(378)+2*A(382)+A(384)+A(388)+A(393)+0.035*A(400)+0.23*A(402)+0.125*A(411)& + &+A(446)+A(447)+0.479*A(480)+1.737*A(482)+0.544*A(483)+0.583*A(486)+0.903*A(487)+0.903*A(489)+0.904*A(491)& + &+0.04*A(590)+0.04*A(591)+A(864)+A(870)+A(873)+0.903*A(876)+0.05*A(880) IF (DO_FUN(249)) & - P_VAR(249) = A(93)+A(96)+0.62*A(358)+0.62*A(359)+0.42*A(363) + P_VAR(249) = A(529) IF (DO_FUN(250)) & - P_VAR(250) = A(79)+A(81)+A(83)+A(136)+0.33*A(650)+0.33*A(653)+0.15*A(779)+A(787) + P_VAR(250) = 0.16*A(84)+0.2*A(97)+0.791*A(127)+0.065*A(141)+0.058*A(338)+A(364)+0.5*A(405)+0.284*A(416)+0.135*A(418)& + &+A(424)+0.65*A(426)+0.8*A(439)+0.52*A(441)+0.52*A(442)+0.8*A(444)+A(445)+0.459*A(461)+0.728*A(462)+0.441& + &*A(473)+0.858*A(474)+0.033*A(476)+0.071*A(477)+0.042*A(507)+0.051*A(509)+0.77*A(528)+0.84*A(542)+0.507& + &*A(546)+0.488*A(548)+A(549)+0.86*A(550)+0.5*A(554)+A(555)+A(557)+0.7*A(558)+0.25*A(560)+A(841)+0.77*A(859)& + &+A(862)+0.5*A(880)+0.586*A(882)+0.25*A(883)+0.571*A(884)+0.45*A(886)+0.8*A(887) IF (DO_FUN(251)) & - P_VAR(251) = A(77)+0.5*A(646)+0.5*A(647) + P_VAR(251) = 0.79*A(336)+0.308*A(340)+0.308*A(341)+0.615*A(342)+0.416*A(369)+0.063*A(376)+A(380)+2*A(383)+A(384)& + &+A(390)+A(397)+0.035*A(401)+0.14*A(403)+0.165*A(412)+A(448)+A(449)+0.048*A(480)+0.123*A(482)+0.019*A(483)& + &+0.028*A(486)+0.097*A(487)+0.097*A(489)+0.096*A(491)+A(865)+A(871)+A(874)+0.097*A(876)+0.005*A(880) IF (DO_FUN(252)) & - P_VAR(252) = A(67)+A(76)+0.15*A(98)+0.209*A(135)+0.3*A(148)+A(302)+0.44*A(370)+0.2*A(655) + P_VAR(252) = 0.7*A(33)+A(82)+A(167)+A(278) IF (DO_FUN(253)) & - P_VAR(253) = A(62)+0.18*A(68)+0.27*A(82)+0.09*A(97)+0.12*A(113)+0.27*A(129)+0.209*A(134)+0.18*A(144)+0.27*A(160)& - &+A(298)+0.27*A(776)+0.23*A(779)+0.18*A(797) + P_VAR(253) = 0.46*A(336)+0.289*A(338)+0.192*A(340)+0.192*A(341)+0.385*A(342)+A(765) IF (DO_FUN(254)) & - P_VAR(254) = 0.46*A(363)+0.289*A(365)+0.192*A(367)+0.192*A(368)+0.385*A(369)+A(785) + P_VAR(254) = A(91)+A(94)+0.62*A(331)+0.62*A(332)+0.42*A(336) IF (DO_FUN(255)) & - P_VAR(255) = A(64)+0.14*A(68)+0.57*A(70)+0.75*A(85)+0.09*A(86)+0.07*A(97)+0.54*A(98)+0.25*A(102)+A(104)+A(125)+A(127)& - &+0.35*A(128)+0.64*A(133)+0.791*A(135)+0.13*A(144)+0.57*A(148)+A(153)+A(154)+0.43*A(353)+0.75*A(355)+A(356)& - &+A(357)+0.65*A(358)+0.65*A(359)+0.491*A(365)+0.08*A(370)+1.24*A(372)+0.93*A(376)+1.24*A(378)+1.24*A(380)& - &+0.64*A(382)+1.21*A(383)+A(395)+1.2*A(652)+1.2*A(655)+A(790)+A(792)+A(794)+0.13*A(797)+A(857)+A(860)& - &+A(869) + P_VAR(255) = A(77)+A(79)+A(81)+A(126)+0.33*A(623)+0.33*A(626)+0.15*A(759)+A(767) IF (DO_FUN(256)) & - P_VAR(256) = A(169)+A(176)+A(675)+A(702)+A(703)+A(704) + P_VAR(256) = A(65)+A(74)+0.15*A(96)+0.21*A(125)+0.27*A(137)+A(280)+0.44*A(343)+0.2*A(628) IF (DO_FUN(257)) & - P_VAR(257) = 0.95*A(53)+A(54)+A(56)+A(71)+0.93*A(72)+0.15*A(89)+0.15*A(90)+0.3*A(99)+0.5*A(100)+A(120)+A(122)+A(139)& - &+A(145)+A(146)+A(182)+0.3*A(399)+0.3*A(406)+0.018*A(440)+0.38*A(548)+0.12*A(551)+0.04*A(553)+0.097*A(564)& - &+A(568)+0.36*A(570)+0.758*A(571)+0.175*A(574)+0.087*A(575)+0.35*A(579)+0.3*A(588)+A(595)+A(596)+0.12& - &*A(773)+0.7*A(775)+A(777)+0.85*A(779)+A(784)+A(786)+A(788)+A(789)+A(852)+A(872)+A(873)+A(874)+0.5*A(875)& - &+0.53*A(876)+0.429*A(877)+0.125*A(878)+0.262*A(880)+1.01*A(881) + P_VAR(257) = A(75)+0.5*A(619)+0.5*A(620) IF (DO_FUN(258)) & - P_VAR(258) = A(36)+A(52)+0.05*A(53)+0.56*A(115)+0.505*A(116)+A(117)+2*A(119)+A(120)+2*A(121)+A(122)+0.5*A(124)+A(181)& - &+A(207)+A(223)+A(262)+A(286)+A(287)+A(288)+0.14*A(358)+0.14*A(359)+0.14*A(363)+0.407*A(396)+0.6*A(399)+0.9& - &*A(400)+0.6*A(406)+0.9*A(408)+A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.55*A(422)+0.55*A(426)+0.45& - &*A(427)+0.37*A(428)+0.42*A(429)+0.23*A(430)+0.638*A(431)+1.5*A(432)+A(433)+0.25*A(438)+0.33*A(439)+0.036& - &*A(440)+0.054*A(441)+A(460)+0.13*A(461)+0.2*A(462)+A(465)+0.2*A(466)+0.13*A(468)+0.52*A(469)+0.8*A(471)+2& - &*A(472)+0.6*A(485)+0.6*A(486)+0.539*A(541)+0.33*A(542)+0.33*A(543)+0.18*A(548)+0.036*A(549)+0.12*A(551)& - &+0.68*A(552)+0.77*A(555)+0.25*A(557)+0.75*A(564)+A(565)+2*A(568)+0.84*A(569)+0.507*A(573)+0.325*A(574)& - &+0.488*A(575)+A(576)+0.86*A(577)+0.65*A(579)+0.25*A(587)+A(589)+0.888*A(590)+A(593)+A(599)+0.364*A(606)& - &+0.2*A(616)+0.27*A(617)+0.3*A(618)+0.25*A(650)+0.5*A(651)+0.25*A(653)+0.5*A(654)+A(764)+A(765)+0.88*A(773)& - &+A(774)+A(776)+A(778)+A(780)+2*A(781)+2*A(782)+A(783)+A(784)+A(785)+A(786)+A(788)+A(854)+A(858)+A(871)& - &+A(874)+0.5*A(875)+0.571*A(877)+0.875*A(878)+0.77*A(879)+A(882)+A(883)+0.888*A(888)+0.818*A(889)+A(890)& - &+A(891)+0.55*A(892)+0.55*A(895)+0.839*A(899)+A(901)+0.122*A(902)+A(905)+A(909)+A(911)+A(914) + P_VAR(258) = A(60)+0.19*A(66)+0.27*A(80)+0.09*A(95)+0.12*A(109)+0.209*A(124)+0.162*A(133)+0.27*A(143)+0.27*A(144)& + &+A(276)+0.27*A(756)+0.23*A(759)+0.19*A(777) IF (DO_FUN(259)) & - P_VAR(259) = A(271) + P_VAR(259) = A(62)+0.15*A(66)+0.64*A(68)+0.75*A(83)+0.09*A(84)+0.13*A(95)+0.58*A(96)+0.25*A(100)+A(102)+0.64*A(123)& + &+1.185*A(125)+0.255*A(133)+0.613*A(137)+0.1*A(138)+0.035*A(141)+A(142)+0.43*A(326)+0.75*A(328)+A(329)& + &+A(330)+0.65*A(331)+0.65*A(332)+0.491*A(338)+0.08*A(343)+1.24*A(345)+0.93*A(349)+1.24*A(351)+1.24*A(353)& + &+0.64*A(355)+1.21*A(356)+A(368)+1.2*A(625)+1.15*A(628)+A(770)+A(772)+1.5*A(774)+0.15*A(777)+A(837)+A(840)& + &+A(849) IF (DO_FUN(260)) & - P_VAR(260) = A(37)+A(52)+A(54)+A(76)+A(83)+A(96)+A(121)+A(122)+A(140)+A(166)+A(389)+A(390)+0.32*A(552)+A(595)+0.742& - &*A(625)+0.5*A(627)+0.5*A(630)+A(632)+0.5*A(647)+0.5*A(664)+A(665)+2*A(668)+A(669)+2*A(670)+A(671)+A(672)& - &+A(675)+A(676)+A(677)+A(678)+A(679)+A(680)+A(681)+A(682)+A(683)+A(719)+A(724)+A(725)+A(726)+A(727) + P_VAR(260) = A(153)+A(160)+A(649)+A(676)+A(677)+A(678) IF (DO_FUN(261)) & - P_VAR(261) = A(59)+A(61)+A(66)+0.32*A(68)+0.86*A(70)+0.93*A(72)+A(75)+0.5*A(86)+0.15*A(90)+0.75*A(94)+0.75*A(95)+0.16& - &*A(97)+0.38*A(98)+0.5*A(100)+0.5*A(102)+A(103)+2*A(105)+2*A(106)+A(107)+A(108)+0.5*A(115)+A(126)+0.64& - &*A(132)+0.32*A(144)+A(146)+0.75*A(148)+A(149)+A(156)+A(157)+A(158)+A(159)+A(293)+A(294)+A(296)+A(345)& - &+A(346)+A(347)+A(348)+A(349)+A(393)+A(791)+A(795)+A(796)+0.32*A(797)+A(867) + P_VAR(261) = 0.95*A(51)+A(52)+A(54)+A(69)+0.919*A(70)+0.15*A(87)+0.15*A(88)+0.3*A(97)+0.5*A(98)+A(116)+A(118)+0.78& + &*A(129)+0.9*A(134)+0.9*A(135)+A(166)+0.3*A(372)+0.3*A(379)+0.018*A(413)+0.38*A(521)+0.12*A(524)+0.04& + &*A(526)+0.097*A(537)+A(541)+0.36*A(543)+0.758*A(544)+0.175*A(547)+0.087*A(548)+0.35*A(552)+0.3*A(561)& + &+A(568)+A(569)+0.12*A(753)+0.7*A(755)+A(757)+0.85*A(759)+A(764)+A(766)+A(768)+A(769)+A(832)+A(852)+A(853)& + &+A(854)+0.5*A(855)+0.53*A(856)+0.429*A(857)+0.125*A(858)+0.262*A(860)+1.01*A(861) IF (DO_FUN(262)) & - P_VAR(262) = A(11)+A(12)+A(17)+A(26)+A(29)+2*A(30)+0.87*A(31)+A(33)+A(50)+0.05*A(53)+A(66)+0.57*A(70)+A(71)+A(75)+0.75& - &*A(85)+1.25*A(86)+0.15*A(89)+0.75*A(94)+0.75*A(95)+0.75*A(97)+0.95*A(98)+0.5*A(99)+0.75*A(100)+0.75*A(101)& - &+1.25*A(102)+0.5*A(115)+0.732*A(116)+A(126)+A(129)+A(130)+A(142)+A(143)+A(145)+0.39*A(148)+A(149)+A(164)& - &+A(166)+A(198)+A(199)+A(244)+A(290)+A(295)+A(336)+A(338)+A(339)+A(340)+0.06*A(341)+0.06*A(342)+A(343)& - &+A(344)+0.23*A(353)+0.75*A(355)+0.04*A(363)+0.231*A(365)+1.04*A(367)+0.385*A(368)+0.385*A(369)+0.287& - &*A(372)+A(375)+0.965*A(376)+0.287*A(378)+0.287*A(380)+0.202*A(382)+0.504*A(383)+A(392)+0.827*A(396)+0.3& - &*A(399)+0.3*A(400)+0.063*A(401)+0.063*A(403)+A(405)+0.3*A(406)+A(407)+0.3*A(408)+2*A(409)+2*A(410)+2& - &*A(411)+2*A(415)+A(416)+2*A(417)+A(418)+A(420)+A(424)+0.085*A(427)+0.165*A(428)+0.5*A(432)+0.018*A(440)& - &+0.018*A(441)+0.716*A(443)+0.14*A(445)+0.706*A(447)+0.14*A(449)+0.65*A(469)+A(471)+0.059*A(488)+0.272& - &*A(489)+0.599*A(492)+A(493)+0.031*A(497)+0.065*A(498)+0.065*A(500)+0.142*A(501)+0.104*A(503)+0.383*A(504)& - &+0.527*A(507)+1.86*A(509)+0.563*A(510)+0.645*A(512)+1.577*A(513)+A(514)+A(516)+A(518)+0.126*A(534)+0.088& - &*A(535)+0.249*A(536)+0.34*A(538)+0.6*A(548)+0.12*A(551)+0.241*A(553)+0.05*A(570)+0.242*A(571)+0.083*A(573)& - &+0.5*A(574)+0.25*A(575)+0.14*A(577)+A(579)+A(585)+0.022*A(594)+0.5*A(597)+A(599)+A(604)+0.8*A(610)+2& - &*A(611)+A(622)+A(648)+A(649)+A(662)+A(763)+0.9*A(780)+A(783)+A(786)+A(788)+A(789)+A(795)+A(850)+A(852)& - &+A(858)+A(866)+A(870)+A(871)+A(873)+A(874)+0.47*A(876)+0.23*A(879)+0.75*A(880)+A(884)+A(885)+A(893)+A(894)& - &+A(896)+0.055*A(900)+0.1*A(902)+0.55*A(906)+0.15*A(907) + P_VAR(262) = A(250) IF (DO_FUN(263)) & - P_VAR(263) = A(25)+A(32)+A(57)+0.19*A(68)+A(78)+0.09*A(97)+0.28*A(115)+0.5*A(124)+A(125)+A(126)+2*A(141)+A(142)+A(144)& - &+A(145)+A(146)+A(147)+A(148)+A(149)+A(156)+A(157)+A(160)+A(163)+A(164)+A(165)+A(166)+A(197)+A(228)+A(261)& - &+A(291)+A(297)+A(335)+0.5*A(356)+0.5*A(368)+A(377)+0.5*A(378)+0.407*A(396)+A(514)+A(515)+0.325*A(574)& - &+0.162*A(575)+0.65*A(579)+0.5*A(598)+A(623)+0.88*A(773)+0.3*A(775)+A(777)+2*A(778)+0.15*A(779)+A(787)+0.18& - &*A(797)+A(798)+A(807)+A(808)+A(851)+0.488*A(880) + P_VAR(263) = A(11)+A(12)+A(17)+A(26)+A(29)+2*A(30)+0.87*A(31)+0.3*A(32)+A(48)+0.05*A(51)+A(64)+0.64*A(68)+A(69)+A(73)& + &+0.75*A(83)+1.25*A(84)+0.15*A(87)+0.75*A(92)+0.75*A(93)+0.75*A(95)+0.95*A(96)+0.5*A(97)+0.75*A(98)+0.75& + &*A(99)+1.25*A(100)+0.5*A(111)+0.732*A(112)+0.22*A(129)+A(132)+0.9*A(134)+0.351*A(137)+0.9*A(138)+0.9& + &*A(141)+A(144)+A(148)+A(150)+0.25*A(180)+A(223)+A(268)+A(273)+A(309)+A(311)+A(312)+A(313)+0.06*A(314)+0.06& + &*A(315)+A(316)+A(317)+0.23*A(326)+0.75*A(328)+0.04*A(336)+0.231*A(338)+1.04*A(340)+0.385*A(341)+0.385& + &*A(342)+0.287*A(345)+A(348)+0.85*A(349)+0.287*A(351)+0.287*A(353)+0.202*A(355)+0.504*A(356)+A(365)+0.827& + &*A(369)+0.3*A(372)+0.3*A(373)+0.063*A(374)+0.063*A(376)+A(378)+0.3*A(379)+A(380)+0.3*A(381)+2*A(382)+2& + &*A(383)+2*A(384)+2*A(388)+A(389)+2*A(390)+A(391)+A(393)+A(397)+0.085*A(400)+0.165*A(401)+0.5*A(405)+0.018& + &*A(413)+0.018*A(414)+0.716*A(416)+0.14*A(418)+0.706*A(420)+0.14*A(422)+0.65*A(442)+A(444)+0.059*A(461)& + &+0.272*A(462)+0.599*A(465)+A(466)+0.031*A(470)+0.065*A(471)+0.065*A(473)+0.142*A(474)+0.104*A(476)+0.383& + &*A(477)+0.527*A(480)+1.86*A(482)+0.563*A(483)+0.645*A(485)+1.577*A(486)+A(487)+A(489)+A(491)+0.126*A(507)& + &+0.088*A(508)+0.249*A(509)+0.34*A(511)+0.6*A(521)+0.12*A(524)+0.241*A(526)+0.05*A(543)+0.242*A(544)+0.083& + &*A(546)+0.5*A(547)+0.25*A(548)+0.14*A(550)+A(552)+A(558)+0.022*A(567)+0.5*A(570)+A(572)+A(577)+0.8*A(583)& + &+2*A(584)+A(595)+A(621)+A(622)+A(635)+A(743)+0.9*A(760)+A(763)+A(766)+A(768)+A(769)+A(775)+A(830)+A(832)& + &+A(838)+A(846)+A(850)+A(851)+A(853)+A(854)+0.47*A(856)+0.23*A(859)+0.75*A(860)+A(864)+A(865)+A(873)+A(874)& + &+A(876)+0.055*A(880)+0.133*A(882)+0.55*A(886)+0.15*A(887) IF (DO_FUN(264)) & - P_VAR(264) = A(326)+A(329)+A(719) + P_VAR(264) = A(57)+A(59)+A(64)+0.34*A(66)+0.97*A(68)+0.919*A(70)+A(73)+0.5*A(84)+0.15*A(88)+0.75*A(92)+0.75*A(93)+0.16& + &*A(95)+0.38*A(96)+0.5*A(98)+0.5*A(100)+A(101)+1.6*A(103)+1.6*A(104)+0.5*A(111)+0.64*A(122)+0.29*A(133)+0.9& + &*A(135)+0.675*A(137)+0.9*A(138)+A(139)+A(140)+0.9*A(141)+A(271)+A(272)+A(274)+A(318)+A(319)+A(320)+A(321)& + &+A(322)+A(366)+A(771)+A(775)+A(776)+0.34*A(777)+A(847) IF (DO_FUN(265)) & - P_VAR(265) = A(308)+A(310)+A(315)+A(321)+A(322)+A(326)+A(327)+A(330)+A(331)+A(334)+A(335)+2*A(834)+A(835)+A(836)& - &+A(837)+A(838)+A(839)+A(840)+A(841)+A(842)+2*A(843)+A(844)+A(845)+A(848)+A(849) + P_VAR(265) = A(35)+A(50)+A(52)+A(74)+A(81)+A(94)+A(117)+A(118)+A(130)+A(150)+A(362)+A(363)+0.32*A(525)+A(568)+0.742& + &*A(598)+0.5*A(600)+0.5*A(603)+A(605)+0.5*A(620)+0.5*A(638)+A(639)+2*A(642)+A(643)+2*A(644)+A(645)+A(646)& + &+A(649)+A(650)+A(651)+A(652)+A(653)+A(654)+A(655)+A(656)+A(657)+A(697)+A(698)+A(699)+A(704)+A(705)+A(706)& + &+A(707) IF (DO_FUN(266)) & - P_VAR(266) = A(310)+A(311) + P_VAR(266) = A(25)+0.7*A(32)+A(55)+0.19*A(66)+A(76)+0.85*A(88)+0.09*A(95)+0.25*A(98)+0.28*A(111)+0.5*A(120)+2*A(131)& + &+0.9*A(132)+0.9*A(133)+0.9*A(134)+0.9*A(135)+0.9*A(136)+0.9*A(137)+0.9*A(138)+0.9*A(139)+0.9*A(140)+0.9& + &*A(141)+0.9*A(142)+A(143)+A(147)+A(148)+A(149)+A(150)+0.75*A(180)+0.9*A(206)+A(207)+A(240)+A(269)+A(275)& + &+A(308)+0.5*A(329)+0.5*A(341)+A(350)+0.5*A(351)+0.407*A(369)+A(487)+A(488)+0.325*A(547)+0.162*A(548)+0.65& + &*A(552)+0.5*A(571)+A(596)+0.88*A(753)+0.3*A(755)+A(757)+2*A(758)+0.15*A(759)+A(767)+A(776)+0.19*A(777)& + &+A(778)+A(787)+A(788)+A(831)+0.488*A(860) IF (DO_FUN(267)) & - P_VAR(267) = A(243)+A(247)+A(248)+A(251)+A(252)+A(269)+A(677) + P_VAR(267) = A(34)+A(50)+0.05*A(51)+0.56*A(111)+0.505*A(112)+A(113)+2*A(115)+A(116)+2*A(117)+A(118)+0.5*A(120)+A(165)& + &+A(187)+A(201)+A(241)+A(264)+A(265)+A(266)+0.14*A(331)+0.14*A(332)+0.14*A(336)+0.407*A(369)+0.6*A(372)+0.9& + &*A(373)+0.6*A(379)+0.9*A(381)+A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)+0.55*A(395)+0.55*A(399)+0.45& + &*A(400)+0.37*A(401)+0.42*A(402)+0.23*A(403)+0.638*A(404)+1.5*A(405)+A(406)+0.25*A(411)+0.33*A(412)+0.036& + &*A(413)+0.054*A(414)+A(433)+0.13*A(434)+0.2*A(435)+A(438)+0.2*A(439)+0.13*A(441)+0.52*A(442)+0.8*A(444)+2& + &*A(445)+0.6*A(458)+0.6*A(459)+0.539*A(514)+0.33*A(515)+0.33*A(516)+0.28*A(521)+0.036*A(522)+0.12*A(524)& + &+0.68*A(525)+0.77*A(528)+0.25*A(530)+0.75*A(537)+A(538)+A(540)+2*A(541)+0.84*A(542)+0.507*A(546)+0.325& + &*A(547)+0.488*A(548)+A(549)+0.86*A(550)+0.65*A(552)+0.25*A(560)+A(561)+A(562)+0.888*A(563)+A(566)+A(572)& + &+0.364*A(579)+0.2*A(589)+0.27*A(590)+0.3*A(591)+0.15*A(619)+0.15*A(620)+0.26*A(623)+0.5*A(624)+0.25*A(626)& + &+0.5*A(627)+0.05*A(628)+A(744)+A(745)+0.88*A(753)+A(754)+A(756)+A(758)+A(760)+2*A(761)+2*A(762)+A(763)& + &+A(764)+A(765)+A(766)+A(768)+A(834)+A(838)+A(851)+A(854)+0.5*A(855)+0.571*A(857)+0.875*A(858)+0.77*A(859)& + &+A(862)+A(863)+0.888*A(868)+0.818*A(869)+A(870)+A(871)+0.55*A(872)+0.55*A(875)+0.839*A(879)+A(881)+0.163& + &*A(882)+A(885)+A(889)+A(891)+A(894) IF (DO_FUN(268)) & - P_VAR(268) = A(759)+A(853) + P_VAR(268) = A(301)+A(304)+A(699) IF (DO_FUN(269)) & - P_VAR(269) = A(15)+A(22)+A(33)+A(35)+A(44)+0.15*A(89)+0.15*A(90)+0.44*A(113)+0.36*A(115)+0.227*A(116)+A(117)+A(124)& - &+0.791*A(131)+0.64*A(132)+0.64*A(133)+0.791*A(134)+0.791*A(135)+0.791*A(137)+A(138)+A(177)+A(178)+2*A(191)& - &+A(194)+A(197)+A(204)+A(213)+A(215)+2*A(216)+A(223)+0.67*A(224)+0.65*A(225)+A(267)+0.85*A(358)+0.85*A(359)& - &+0.85*A(363)+0.49*A(370)+0.28*A(396)+1.5*A(399)+1.5*A(400)+0.063*A(401)+0.063*A(403)+A(405)+1.5*A(406)& - &+A(407)+1.5*A(408)+A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.55*A(422)+0.55*A(426)+1.085*A(427)+1.165& - &*A(428)+A(429)+A(430)+1.065*A(431)+A(432)+A(435)+A(437)+0.405*A(440)+0.745*A(441)+A(442)+0.275*A(445)& - &+A(446)+0.275*A(449)+A(451)+1.3*A(453)+A(460)+0.65*A(461)+A(465)+0.65*A(468)+0.65*A(469)+A(472)+A(473)+2& - &*A(474)+A(475)+2*A(476)+0.6*A(485)+0.6*A(486)+0.518*A(488)+0.599*A(492)+0.582*A(497)+0.506*A(500)+0.379& - &*A(503)+0.527*A(507)+A(526)+A(527)+A(531)+A(532)+A(533)+1.147*A(534)+0.646*A(535)+0.435*A(536)+0.096& - &*A(538)+0.244*A(541)+A(543)+0.82*A(546)+0.08*A(548)+0.12*A(551)+0.68*A(552)+0.02*A(553)+A(554)+A(555)& - &+A(557)+A(559)+A(562)+0.285*A(564)+A(565)+A(567)+0.665*A(570)+0.59*A(573)+0.5*A(574)+0.585*A(575)+A(576)& - &+0.5*A(581)+0.7*A(588)+0.5*A(589)+0.444*A(590)+A(591)+A(592)+0.3*A(594)+0.5*A(597)+0.5*A(598)+A(599)& - &+A(600)+A(601)+0.636*A(606)+A(615)+A(619)+A(629)+0.2*A(633)+0.25*A(650)+0.1*A(651)+0.25*A(653)+0.1*A(654)& - &+2*A(762)+A(763)+A(766)+A(767)+A(768)+0.07*A(780)+A(790)+A(791)+A(792)+A(793)+A(794)+A(795)+A(796)+A(798)& - &+A(801)+A(818)+A(835)+A(852)+2*A(855)+A(857)+2*A(870)+A(871)+A(876)+A(877)+1.75*A(878)+A(879)+0.75*A(880)& - &+0.01*A(881)+A(883)+A(884)+A(885)+A(886)+A(887)+1.662*A(888)+1.637*A(889)+A(890)+A(891)+0.55*A(892)+0.55& - &*A(895)+0.67*A(896)+A(897)+0.645*A(899)+0.5*A(901)+A(902)+1.25*A(903)+A(904)+0.546*A(905)+A(906)+0.3& - &*A(907)+A(908)+A(910)+A(912) + P_VAR(269) = A(286)+A(288)+0.2*A(293)+0.809*A(298)+A(301)+A(302)+A(305)+0.4*A(306)+0.996*A(307)+A(308)+2*A(814)+A(815)& + &+A(816)+A(817)+A(818)+A(819)+A(820)+A(821)+A(822)+2*A(823)+A(824)+A(825)+A(828)+A(829) IF (DO_FUN(270)) & - P_VAR(270) = A(13)+A(22)+A(26)+A(40)+A(42)+A(43)+A(44)+2*A(45)+A(46)+A(48)+A(51)+A(56)+A(57)+A(59)+A(61)+A(64)+A(66)& - &+A(68)+2*A(70)+A(71)+0.93*A(72)+A(73)+2*A(75)+A(81)+A(82)+A(98)+A(102)+A(148)+A(149)+A(153)+A(154)+2& - &*A(161)+A(163)+A(174)+A(180)+A(210)+A(211)+A(251)+A(270)+A(308)+2*A(309)+A(312)+A(320)+A(330)+A(336)& - &+A(337)+A(339)+A(346)+0.82*A(353)+A(357)+0.78*A(365)+A(369)+A(371)+2*A(372)+0.5*A(376)+A(378)+A(379)+2& - &*A(380)+0.5*A(382)+A(383)+A(392)+A(393)+A(394)+A(395)+A(420)+A(422)+A(424)+A(426)+A(443)+A(447)+A(451)& - &+A(462)+A(466)+A(471)+A(473)+A(475)+A(478)+A(480)+A(481)+A(483)+0.459*A(488)+1.728*A(489)+A(493)+A(498)& - &+A(501)+A(504)+0.527*A(507)+1.86*A(509)+0.563*A(510)+0.611*A(513)+A(514)+2*A(516)+A(517)+2*A(518)+A(520)& - &+A(528)+0.058*A(534)+1.065*A(536)+A(538)+A(540)+A(542)+0.565*A(544)+1.11*A(545)+0.09*A(546)+0.31*A(553)& - &+A(558)+A(561)+A(571)+A(577)+A(579)+0.5*A(581)+2*A(582)+A(583)+2*A(584)+0.7*A(585)+A(586)+A(593)+0.022& - &*A(594)+A(595)+0.995*A(608)+A(609)+A(613)+A(620)+A(621)+A(634)+A(637)+A(638)+A(640)+A(641)+0.5*A(646)& - &+A(647)+A(662)+A(766)+A(769)+A(770)+A(772)+0.7*A(775)+A(790)+A(797)+A(803)+A(804)+A(815)+A(817)+A(839)& - &+A(851)+A(858)+A(859)+A(860)+A(861)+A(863)+A(865)+A(866)+A(867)+A(868)+A(869)+A(873)+0.7*A(881)+A(882)& - &+A(892)+A(893)+A(894)+A(895)+A(896)+A(898)+A(899)+1.555*A(900)+0.3*A(906)+A(907)+A(908)+A(909) + P_VAR(270) = A(288)+A(289) IF (DO_FUN(271)) & - P_VAR(271) = 0.09*A(224)+A(246)+A(261)+A(262)+A(264)+A(265)+A(266)+2*A(286)+A(287)+A(288)+A(289)+A(291)+A(292)+A(295)& - &+A(296)+A(297)+A(298)+A(299)+A(300)+A(301)+A(302)+A(303)+A(694) + P_VAR(271) = A(222)+A(226)+A(227)+A(230)+A(231)+A(248)+A(651) IF (DO_FUN(272)) & - P_VAR(272) = A(170)+A(181)+A(182)+A(183)+A(184)+A(185)+0.2*A(225)+A(304)+A(701) + P_VAR(272) = A(739)+A(833) IF (DO_FUN(273)) & - P_VAR(273) = 0.24*A(224)+0.75*A(226)+0.86*A(227)+0.55*A(231)+0.88*A(232)+0.86*A(233)+0.33*A(234)+0.69*A(236)+0.74& - &*A(237)+0.79*A(238)+0.75*A(239)+0.75*A(240)+0.3*A(241)+A(250)+A(263)+A(267)+2*A(278)+2*A(280)+A(284)& - &+A(290)+A(293)+A(294)+A(813)+A(817) + P_VAR(273) = A(155)+2*A(156)+A(158)+A(160)+A(162)+A(163)+3*A(172)+2*A(173)+A(174)+A(200)+0.6*A(203)+0.56*A(207)+0.95& + &*A(208)+1.4*A(209)+0.34*A(213)+0.75*A(221)+A(259)+A(260)+A(292)+A(293)+2*A(779)+A(780)+A(781)+A(782)& + &+A(784)+3*A(785)+2*A(786)+A(787)+A(790)+A(810)+A(811)+2*A(812)+A(825)+A(828) IF (DO_FUN(274)) & - P_VAR(274) = A(168)+A(177)+A(180)+0.15*A(225)+0.44*A(228)+0.95*A(229)+0.68*A(230)+0.31*A(234)+0.41*A(235)+0.75*A(242)& - &+A(803) + P_VAR(274) = A(152)+A(161)+A(164)+0.2*A(203)+0.44*A(207)+0.95*A(208)+0.7*A(209)+0.31*A(213)+0.45*A(214)+0.75*A(221)& + &+A(783) IF (DO_FUN(275)) & - P_VAR(275) = A(705) + P_VAR(275) = 0.12*A(202)+A(225)+A(240)+A(241)+A(243)+A(244)+A(245)+2*A(264)+A(265)+A(266)+A(267)+A(269)+A(270)+A(273)& + &+A(274)+A(275)+A(276)+A(277)+A(278)+A(279)+A(280)+A(281)+A(668) IF (DO_FUN(276)) & - P_VAR(276) = A(706) + P_VAR(276) = A(11)+A(148)+0.75*A(149)+A(150)+A(187)+A(188)+A(834)+A(835) IF (DO_FUN(277)) & - P_VAR(277) = 0.15*A(113)+A(200)+0.13*A(574)+0.13*A(581)+0.13*A(598)+0.15*A(633) + P_VAR(277) = A(680) IF (DO_FUN(278)) & - P_VAR(278) = A(2) + P_VAR(278) = A(18)+A(20)+A(21)+A(25)+A(32)+A(33)+A(34)+A(36)+A(38)+A(41)+A(47)+A(51)+A(56)+A(75)+A(76)+A(77)+A(82)& + &+A(91)+A(155)+A(174)+A(183)+0.02*A(196)+A(228)+A(229)+A(232)+A(235)+A(236)+A(237)+A(238)+A(239)+A(267)& + &+A(302)+A(303)+A(308)+A(637)+A(664)+A(665)+A(666)+A(667)+A(669)+A(670)+A(671)+A(672) IF (DO_FUN(279)) & - P_VAR(279) = A(18)+A(20)+A(21)+A(25)+A(32)+A(33)+A(34)+A(35)+A(36)+A(38)+A(40)+A(43)+A(49)+A(53)+A(58)+A(77)+A(78)& - &+A(79)+A(84)+A(93)+A(171)+A(190)+A(202)+A(217)+A(249)+A(250)+A(253)+A(256)+A(257)+A(258)+A(259)+A(260)& - &+A(289)+A(327)+A(328)+A(335)+A(663)+A(690)+A(691)+A(692)+A(693)+A(695)+A(696)+A(697)+A(698) + P_VAR(279) = A(49)+1.22*A(179)+A(189)+A(197)+2*A(284)+A(576)+A(630)+A(632)+A(634)+A(741)+A(747)+A(751)+A(818) IF (DO_FUN(280)) & - P_VAR(280) = A(51)+2*A(196)+A(209)+A(219)+2*A(306)+A(603)+A(657)+A(659)+A(661)+A(761)+A(767)+A(771)+A(838) + P_VAR(280) = A(2) IF (DO_FUN(281)) & - P_VAR(281) = A(14)+A(17)+A(21)+A(24)+A(26)+2*A(30)+1.74*A(31)+A(36)+A(42)+A(46)+A(49)+A(50)+A(52)+0.05*A(53)+A(59)& - &+A(61)+A(64)+A(66)+0.27*A(68)+A(73)+A(85)+A(86)+A(94)+A(95)+0.64*A(97)+0.5*A(98)+0.3*A(99)+0.5*A(100)& - &+A(101)+0.5*A(102)+A(103)+A(104)+2*A(105)+2*A(106)+0.28*A(115)+0.773*A(116)+A(119)+A(121)+A(123)+A(125)& - &+A(126)+A(129)+A(142)+0.27*A(144)+A(147)+A(156)+A(157)+A(167)+A(179)+A(181)+A(190)+A(199)+A(213)+A(214)& - &+A(223)+A(244)+A(245)+A(253)+A(254)+A(255)+A(262)+A(265)+A(286)+A(287)+A(288)+A(290)+A(293)+A(294)+A(295)& - &+0.82*A(353)+A(355)+0.5*A(356)+A(357)+0.1*A(358)+0.1*A(359)+0.1*A(363)+0.686*A(365)+A(367)+0.5*A(368)& - &+A(369)+A(371)+2*A(375)+0.5*A(376)+A(377)+A(379)+A(381)+0.5*A(382)+0.16*A(396)+0.4*A(399)+0.7*A(400)+0.063& - &*A(401)+0.063*A(403)+0.4*A(406)+0.7*A(408)+2*A(409)+2*A(410)+2*A(411)+A(412)+A(413)+A(414)+2*A(415)+1.5& - &*A(416)+2*A(417)+1.5*A(418)+A(420)+0.45*A(422)+A(424)+0.45*A(426)+0.085*A(427)+0.165*A(428)+0.283*A(431)& - &+A(433)+0.25*A(438)+0.33*A(439)+0.024*A(440)+0.042*A(441)+A(443)+0.275*A(445)+A(447)+0.275*A(449)+0.75& - &*A(454)+A(455)+A(457)+A(459)+0.65*A(461)+A(462)+A(464)+A(466)+0.65*A(468)+0.65*A(469)+A(471)+A(472)+0.4& - &*A(485)+0.4*A(486)+A(487)+0.059*A(488)+0.272*A(489)+A(491)+0.599*A(492)+A(493)+A(495)+A(496)+0.582*A(497)& - &+A(498)+0.506*A(500)+A(501)+0.379*A(503)+A(504)+0.089*A(510)+0.064*A(511)+0.336*A(512)+0.611*A(513)+0.159& - &*A(515)+0.159*A(517)+0.159*A(520)+A(522)+0.326*A(534)+0.58*A(535)+0.5*A(536)+0.904*A(538)+0.295*A(541)& - &+0.33*A(542)+0.33*A(543)+0.89*A(545)+0.73*A(546)+0.1*A(548)+0.036*A(549)+0.715*A(564)+A(566)+A(568)+A(569)& - &+0.305*A(570)+0.242*A(571)+0.507*A(573)+0.86*A(577)+0.7*A(585)+0.5*A(589)+0.444*A(590)+0.62*A(594)+0.5& - &*A(597)+A(602)+0.364*A(606)+0.6*A(610)+A(611)+A(612)+0.54*A(616)+0.19*A(617)+0.15*A(618)+A(619)+A(620)& - &+A(621)+2*A(622)+A(623)+0.8*A(624)+0.727*A(626)+A(629)+A(648)+A(649)+0.33*A(650)+0.1*A(651)+0.2*A(652)& - &+0.33*A(653)+0.1*A(654)+0.2*A(655)+A(656)+A(658)+A(660)+A(662)+A(763)+A(764)+A(769)+A(773)+A(776)+1.73& - &*A(780)+2*A(781)+A(784)+A(786)+A(788)+A(789)+A(790)+A(791)+A(792)+A(793)+A(794)+A(795)+A(796)+0.27*A(797)& - &+A(850)+A(857)+A(858)+A(866)+A(867)+A(868)+A(869)+A(871)+A(872)+A(874)+1.5*A(875)+0.47*A(876)+0.571*A(877)& - &+0.125*A(878)+A(879)+0.29*A(881)+A(882)+A(883)+A(884)+A(885)+A(886)+A(887)+0.112*A(888)+0.182*A(889)& - &+A(890)+A(891)+0.45*A(892)+A(893)+A(894)+0.45*A(895)+0.33*A(896)+0.159*A(897)+0.161*A(899)+0.228*A(900)& - &+1.5*A(901)+A(902)+0.75*A(903)+A(904)+1.454*A(905)+0.7*A(906)+0.7*A(907)+A(909)+A(911)+A(914) + P_VAR(281) = A(16)+A(36)+A(46)+A(159)+A(192)+A(231)+A(262)+A(263)+A(291)+A(313)+A(320)+A(364)+0.69*A(526)+A(560)& + &+A(612)+A(748)+A(752)+0.3*A(755)+A(782)+A(796)+A(820)+A(830) IF (DO_FUN(282)) & - P_VAR(282) = A(171)+2*A(172)+A(174)+A(176)+A(178)+A(179)+3*A(188)+2*A(189)+A(190)+A(222)+0.65*A(225)+0.56*A(228)+0.95& - &*A(229)+1.36*A(230)+0.33*A(234)+0.75*A(242)+A(281)+A(282)+A(314)+A(315)+A(316)+2*A(799)+A(800)+A(801)& - &+A(802)+A(804)+3*A(805)+2*A(806)+A(807)+A(810)+A(830)+A(831)+2*A(832)+A(845)+A(848) + P_VAR(282) = 0.15*A(109)+A(181)+0.13*A(547)+0.13*A(554)+0.13*A(571)+0.15*A(606) IF (DO_FUN(283)) & - P_VAR(283) = A(5) + P_VAR(283) = A(679) IF (DO_FUN(284)) & - P_VAR(284) = A(18)+A(192)+A(193)+2*A(206)+A(217)+A(219)+A(220)+A(221)+0.09*A(224)+0.2*A(225)+0.25*A(226)+0.14*A(227)& - &+0.05*A(229)+0.32*A(230)+0.28*A(231)+0.12*A(232)+0.14*A(233)+0.36*A(234)+0.59*A(235)+0.31*A(236)+0.26& - &*A(237)+0.21*A(238)+0.25*A(239)+0.25*A(240)+0.7*A(241)+0.25*A(242)+A(758)+2*A(760)+A(761)+A(770)+A(800)& - &+A(812)+A(813)+A(836)+A(856) + P_VAR(284) = A(14)+A(17)+A(21)+A(24)+A(26)+2*A(30)+1.74*A(31)+A(34)+A(40)+A(44)+A(47)+A(48)+A(50)+0.05*A(51)+A(57)& + &+A(59)+A(62)+A(64)+0.27*A(66)+A(71)+A(83)+A(84)+A(92)+A(93)+0.64*A(95)+0.5*A(96)+0.3*A(97)+0.5*A(98)+A(99)& + &+0.5*A(100)+A(101)+A(102)+1.2*A(103)+1.2*A(104)+0.28*A(111)+0.773*A(112)+A(115)+A(117)+A(119)+0.9*A(132)& + &+0.243*A(133)+0.9*A(136)+0.9*A(139)+0.9*A(140)+0.9*A(141)+0.9*A(142)+A(144)+A(151)+A(163)+A(165)+A(174)& + &+0.2*A(180)+A(193)+A(194)+A(201)+A(223)+A(224)+A(232)+A(233)+A(234)+A(241)+A(244)+A(264)+A(265)+A(266)& + &+A(268)+A(271)+A(272)+A(273)+0.82*A(326)+A(328)+0.5*A(329)+A(330)+0.1*A(331)+0.1*A(332)+0.1*A(336)+0.686& + &*A(338)+A(340)+0.5*A(341)+A(342)+A(344)+2*A(348)+0.5*A(349)+A(350)+A(352)+A(354)+0.5*A(355)+0.16*A(369)& + &+0.4*A(372)+0.7*A(373)+0.063*A(374)+0.063*A(376)+0.4*A(379)+0.7*A(381)+2*A(382)+2*A(383)+2*A(384)+A(385)& + &+A(386)+A(387)+2*A(388)+1.5*A(389)+2*A(390)+1.5*A(391)+A(393)+0.45*A(395)+A(397)+0.45*A(399)+0.085*A(400)& + &+0.165*A(401)+0.283*A(404)+A(406)+0.25*A(411)+0.33*A(412)+0.024*A(413)+0.042*A(414)+A(416)+0.275*A(418)& + &+A(420)+0.275*A(422)+0.75*A(427)+A(428)+A(430)+A(432)+0.65*A(434)+A(435)+A(437)+A(439)+0.65*A(441)+0.65& + &*A(442)+A(444)+A(445)+0.4*A(458)+0.4*A(459)+A(460)+0.059*A(461)+0.272*A(462)+A(464)+0.599*A(465)+A(466)& + &+A(468)+A(469)+0.582*A(470)+A(471)+0.506*A(473)+A(474)+0.379*A(476)+A(477)+0.089*A(483)+0.064*A(484)+0.336& + &*A(485)+0.611*A(486)+0.159*A(488)+0.159*A(490)+0.159*A(493)+A(495)+0.326*A(507)+0.58*A(508)+0.5*A(509)& + &+0.904*A(511)+0.295*A(514)+0.33*A(515)+0.33*A(516)+0.89*A(518)+0.73*A(519)+0.1*A(521)+0.036*A(522)+0.715& + &*A(537)+A(539)+A(541)+A(542)+0.305*A(543)+0.242*A(544)+0.507*A(546)+0.86*A(550)+0.7*A(558)+0.5*A(562)& + &+0.444*A(563)+0.62*A(567)+0.5*A(570)+A(575)+0.364*A(579)+0.6*A(583)+A(584)+A(585)+0.54*A(589)+0.19*A(590)& + &+0.15*A(591)+A(592)+A(593)+A(594)+2*A(595)+A(596)+0.8*A(597)+0.727*A(599)+A(602)+A(621)+A(622)+0.33*A(623)& + &+0.1*A(624)+0.2*A(625)+0.33*A(626)+0.1*A(627)+0.2*A(628)+A(629)+A(631)+A(633)+A(635)+A(743)+A(744)+A(749)& + &+A(753)+A(756)+1.73*A(760)+2*A(761)+A(764)+A(766)+A(768)+A(769)+A(770)+A(771)+A(772)+A(773)+A(774)+A(775)& + &+A(776)+0.27*A(777)+A(830)+A(837)+A(838)+A(846)+A(847)+A(848)+A(849)+A(851)+A(852)+A(854)+1.5*A(855)+0.47& + &*A(856)+0.571*A(857)+0.125*A(858)+A(859)+0.29*A(861)+A(862)+A(863)+A(864)+A(865)+A(866)+A(867)+0.112& + &*A(868)+0.182*A(869)+A(870)+A(871)+0.45*A(872)+A(873)+A(874)+0.45*A(875)+0.33*A(876)+0.159*A(877)+0.161& + &*A(879)+0.228*A(880)+1.5*A(881)+A(882)+0.75*A(883)+A(884)+1.454*A(885)+0.7*A(886)+0.7*A(887)+A(889)+A(891)& + &+A(894) IF (DO_FUN(285)) & - P_VAR(285) = 0.67*A(224)+0.75*A(226)+2.58*A(227)+0.17*A(231)+1.76*A(232)+0.86*A(233)+0.31*A(234)+0.69*A(236)+0.79& - &*A(238)+1.5*A(239)+0.75*A(240)+A(243)+A(245)+A(249)+A(253)+2*A(254)+3*A(255)+3*A(256)+A(257)+2*A(258)& - &+A(259)+2*A(260)+A(268)+A(270)+A(273)+A(274)+A(276)+2*A(287)+3*A(288)+A(322)+A(808)+2*A(809)+A(810)+2& - &*A(811)+A(812)+A(814)+A(815)+A(816)+A(818)+3*A(819)+4*A(820)+3*A(821)+2*A(822)+3*A(823)+2*A(824)+A(825)+2& - &*A(826)+2*A(827)+A(828)+A(829)+A(831)+A(833)+A(844)+A(849) + P_VAR(285) = 0.22*A(202)+0.75*A(204)+0.79*A(205)+0.46*A(206)+0.56*A(210)+0.9*A(211)+0.86*A(212)+0.34*A(213)+0.69& + &*A(215)+0.65*A(216)+0.79*A(217)+0.8*A(218)+0.85*A(219)+0.86*A(220)+A(229)+A(242)+A(246)+2*A(257)+0.1& + &*A(258)+A(262)+A(268)+A(271)+A(272)+A(793)+A(797) IF (DO_FUN(286)) & - P_VAR(286) = A(11)-A(12)+A(164)+0.75*A(165)+A(166)+A(207)+A(208)+A(854)+A(855) + P_VAR(286) = A(15)+A(22)+0.3*A(32)+0.3*A(33)+A(42)+0.15*A(87)+0.15*A(88)+0.44*A(109)+0.36*A(111)+0.227*A(112)+A(113)& + &+A(120)+0.791*A(121)+0.64*A(122)+0.64*A(123)+0.791*A(124)+0.79*A(125)+0.791*A(127)+A(128)+0.22*A(129)& + &+A(161)+A(162)+2*A(175)+A(178)+0.75*A(180)+A(185)+A(193)+A(195)+1.788*A(196)+A(201)+0.66*A(202)+0.6*A(203)& + &+0.05*A(210)+A(246)+0.85*A(331)+0.85*A(332)+0.85*A(336)+0.49*A(343)+0.28*A(369)+1.5*A(372)+1.5*A(373)& + &+0.063*A(374)+0.063*A(376)+A(378)+1.5*A(379)+A(380)+1.5*A(381)+A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)& + &+0.55*A(395)+0.55*A(399)+1.085*A(400)+1.165*A(401)+A(402)+A(403)+1.065*A(404)+A(405)+A(408)+A(410)+0.405& + &*A(413)+0.745*A(414)+A(415)+0.275*A(418)+A(419)+0.275*A(422)+A(424)+1.3*A(426)+A(433)+0.65*A(434)+A(438)& + &+0.65*A(441)+0.65*A(442)+A(445)+A(446)+2*A(447)+A(448)+2*A(449)+0.6*A(458)+0.6*A(459)+0.518*A(461)+0.599& + &*A(465)+0.582*A(470)+0.506*A(473)+0.379*A(476)+0.527*A(480)+A(499)+A(500)+A(504)+A(505)+A(506)+1.147& + &*A(507)+0.646*A(508)+0.435*A(509)+0.096*A(511)+0.244*A(514)+A(516)+0.82*A(519)+0.08*A(521)+0.12*A(524)& + &+0.68*A(525)+0.02*A(526)+A(527)+A(528)+A(530)+A(532)+A(535)+0.285*A(537)+A(538)+A(540)+0.665*A(543)+0.59& + &*A(546)+0.5*A(547)+0.585*A(548)+A(549)+0.5*A(554)+0.7*A(561)+0.5*A(562)+0.444*A(563)+A(564)+A(565)+0.3& + &*A(567)+0.5*A(570)+0.5*A(571)+A(572)+A(573)+A(574)+0.636*A(579)+A(588)+A(592)+A(602)+0.2*A(606)+0.25& + &*A(623)+0.1*A(624)+0.25*A(626)+0.1*A(627)+2*A(742)+A(743)+A(746)+A(747)+A(748)+0.07*A(760)+A(770)+A(771)& + &+A(772)+A(773)+A(774)+A(775)+A(776)+A(778)+A(781)+A(798)+A(815)+A(832)+2*A(835)+A(837)+2*A(850)+A(851)& + &+A(856)+A(857)+1.75*A(858)+A(859)+0.75*A(860)+0.01*A(861)+A(863)+A(864)+A(865)+A(866)+A(867)+1.662*A(868)& + &+1.637*A(869)+A(870)+A(871)+0.55*A(872)+0.55*A(875)+0.67*A(876)+A(877)+0.645*A(879)+0.5*A(881)+A(882)+1.25& + &*A(883)+A(884)+0.546*A(885)+A(886)+0.3*A(887)+A(888)+A(890)+A(892) IF (DO_FUN(287)) & - P_VAR(287) = A(16)+A(38)+A(48)+A(175)+A(212)+A(252)+A(284)+A(285)+A(313)+A(340)+A(347)+A(391)+0.69*A(553)+A(587)& - &+A(639)+A(768)+A(772)+0.3*A(775)+A(802)+A(816)+A(840)+A(850) + P_VAR(287) = A(5) +IF (DO_FUN(288)) & + P_VAR(288) = A(18)+A(176)+A(177)+A(186)+0.02*A(196)+A(197)+A(198)+A(199)+0.12*A(202)+0.2*A(203)+0.25*A(204)+0.21& + &*A(205)+0.1*A(206)+0.05*A(208)+0.3*A(209)+0.25*A(210)+0.1*A(211)+0.14*A(212)+0.35*A(213)+0.55*A(214)+0.31& + &*A(215)+0.35*A(216)+0.21*A(217)+0.1*A(218)+0.1*A(219)+0.14*A(220)+0.25*A(221)+A(738)+2*A(740)+A(741)& + &+A(750)+A(780)+A(792)+A(793)+A(816)+A(836) +IF (DO_FUN(289)) & + P_VAR(289) = A(154)+A(165)+A(166)+A(167)+A(168)+A(169)+0.2*A(203)+A(282)+A(675) +IF (DO_FUN(290)) & + P_VAR(290) = 0.66*A(202)+0.75*A(204)+2.37*A(205)+0.35*A(206)+0.19*A(210)+1.8*A(211)+0.86*A(212)+0.31*A(213)+0.69& + &*A(215)+0.79*A(217)+1.9*A(218)+0.95*A(219)+A(222)+A(224)+A(228)+A(232)+2*A(233)+3*A(234)+3*A(235)+A(236)+2& + &*A(237)+A(238)+2*A(239)+A(247)+A(249)+A(252)+A(253)+A(255)+2*A(265)+3*A(266)+0.249*A(298)+A(788)+2*A(789)& + &+A(790)+2*A(791)+A(792)+A(794)+A(795)+A(796)+A(798)+3*A(799)+4*A(800)+3*A(801)+2*A(802)+3*A(803)+2*A(804)& + &+A(805)+2*A(806)+2*A(807)+A(808)+A(809)+A(811)+A(813)+A(824)+A(829) +IF (DO_FUN(291)) & + P_VAR(291) = A(13)+A(22)+A(26)+A(38)+A(40)+A(41)+A(42)+2*A(43)+A(44)+A(46)+A(49)+A(54)+A(55)+A(57)+A(59)+A(62)+A(64)& + &+A(66)+2*A(68)+A(69)+0.928*A(70)+A(71)+2*A(73)+A(79)+A(80)+A(96)+A(100)+A(137)+A(138)+2*A(145)+A(147)& + &+A(158)+A(164)+A(190)+A(191)+A(230)+A(249)+A(286)+2*A(287)+A(290)+A(297)+A(305)+A(309)+A(310)+A(312)& + &+A(319)+0.82*A(326)+A(330)+0.78*A(338)+A(342)+A(344)+2*A(345)+0.5*A(349)+A(351)+A(352)+2*A(353)+0.5*A(355)& + &+A(356)+A(365)+A(366)+A(367)+A(368)+A(393)+A(395)+A(397)+A(399)+A(416)+A(420)+A(424)+A(435)+A(439)+A(444)& + &+A(446)+A(448)+A(451)+A(453)+A(454)+A(456)+0.459*A(461)+1.728*A(462)+A(466)+A(471)+A(474)+A(477)+0.527& + &*A(480)+1.86*A(482)+0.563*A(483)+0.611*A(486)+A(487)+2*A(489)+A(490)+2*A(491)+A(493)+A(501)+0.058*A(507)& + &+1.065*A(509)+A(511)+A(513)+A(515)+0.565*A(517)+1.11*A(518)+0.09*A(519)+0.31*A(526)+A(531)+A(534)+A(544)& + &+A(550)+A(552)+0.5*A(554)+2*A(555)+A(556)+2*A(557)+0.7*A(558)+A(559)+A(566)+0.022*A(567)+A(568)+0.995& + &*A(581)+A(582)+A(586)+A(593)+A(594)+A(607)+A(610)+A(611)+A(613)+A(614)+0.5*A(619)+A(620)+A(635)+A(746)& + &+A(749)+A(750)+A(752)+0.7*A(755)+A(770)+A(777)+A(783)+A(784)+A(795)+A(797)+A(819)+A(831)+A(838)+A(839)& + &+A(840)+A(841)+A(843)+A(845)+A(846)+A(847)+A(848)+A(849)+A(853)+0.7*A(861)+A(862)+A(872)+A(873)+A(874)& + &+A(875)+A(876)+A(878)+A(879)+1.555*A(880)+0.3*A(886)+A(887)+A(888)+A(889) ! Destruction function IF (DO_FUN(1)) & - D_VAR(1) = RCT(843) + D_VAR(1) = RCT(823) IF (DO_FUN(2)) & - D_VAR(2) = RCT(845) + D_VAR(2) = RCT(825) IF (DO_FUN(3)) & - D_VAR(3) = RCT(844) + D_VAR(3) = RCT(824) IF (DO_FUN(4)) & D_VAR(4) = 0 IF (DO_FUN(5)) & @@ -3548,9 +3537,9 @@ SUBROUTINE Fun_SPLIT ( V, F, RCT, Vdot, P_VAR, D_VAR, Aout ) IF (DO_FUN(11)) & D_VAR(11) = 0 IF (DO_FUN(12)) & - D_VAR(12) = RCT(656)*V(281)+RCT(657)*V(280) + D_VAR(12) = 0 IF (DO_FUN(13)) & - D_VAR(13) = 0 + D_VAR(13) = RCT(629)*V(284)+RCT(630)*V(279) IF (DO_FUN(14)) & D_VAR(14) = 0 IF (DO_FUN(15)) & @@ -3558,27 +3547,27 @@ SUBROUTINE Fun_SPLIT ( V, F, RCT, Vdot, P_VAR, D_VAR, Aout ) IF (DO_FUN(16)) & D_VAR(16) = 0 IF (DO_FUN(17)) & - D_VAR(17) = RCT(602)*V(281)+RCT(603)*V(280) + D_VAR(17) = 0 IF (DO_FUN(18)) & - D_VAR(18) = RCT(601)*V(269) + D_VAR(18) = RCT(575)*V(284)+RCT(576)*V(279) IF (DO_FUN(19)) & - D_VAR(19) = 0 + D_VAR(19) = RCT(574)*V(286) IF (DO_FUN(20)) & D_VAR(20) = 0 IF (DO_FUN(21)) & - D_VAR(21) = RCT(658)*V(281)+RCT(659)*V(280) + D_VAR(21) = 0 IF (DO_FUN(22)) & - D_VAR(22) = 0 + D_VAR(22) = RCT(631)*V(284)+RCT(632)*V(279) IF (DO_FUN(23)) & - D_VAR(23) = RCT(138)*V(269)+RCT(737) + D_VAR(23) = 0 IF (DO_FUN(24)) & - D_VAR(24) = 0 + D_VAR(24) = RCT(128)*V(286)+RCT(717) IF (DO_FUN(25)) & D_VAR(25) = 0 IF (DO_FUN(26)) & - D_VAR(26) = RCT(660)*V(281)+RCT(661)*V(280) + D_VAR(26) = 0 IF (DO_FUN(27)) & - D_VAR(27) = 0 + D_VAR(27) = RCT(633)*V(284)+RCT(634)*V(279) IF (DO_FUN(28)) & D_VAR(28) = 0 IF (DO_FUN(29)) & @@ -3600,624 +3589,627 @@ SUBROUTINE Fun_SPLIT ( V, F, RCT, Vdot, P_VAR, D_VAR, Aout ) IF (DO_FUN(37)) & D_VAR(37) = 0 IF (DO_FUN(38)) & - D_VAR(38) = RCT(319)+RCT(716)+RCT(717)+RCT(718)+RCT(846) + D_VAR(38) = 0 IF (DO_FUN(39)) & - D_VAR(39) = RCT(256)*V(269)+RCT(819) + D_VAR(39) = 0 IF (DO_FUN(40)) & - D_VAR(40) = RCT(333)+RCT(334)+RCT(710)+RCT(711)+RCT(712)+RCT(841) + D_VAR(40) = 0 IF (DO_FUN(41)) & - D_VAR(41) = RCT(390) + D_VAR(41) = RCT(636)*V(286) IF (DO_FUN(42)) & - D_VAR(42) = RCT(240)*V(268)+RCT(824) + D_VAR(42) = RCT(296)+RCT(692)+RCT(693)+RCT(694)+RCT(826) IF (DO_FUN(43)) & - D_VAR(43) = RCT(335)*V(269)+RCT(842) + D_VAR(43) = RCT(235)*V(286)+RCT(799) IF (DO_FUN(44)) & - D_VAR(44) = RCT(235)*V(268)+RCT(830) + D_VAR(44) = RCT(307)+RCT(686)+RCT(687)+RCT(688)+RCT(821) IF (DO_FUN(45)) & - D_VAR(45) = RCT(242)*V(268)+RCT(832) + D_VAR(45) = RCT(363) IF (DO_FUN(46)) & - D_VAR(46) = RCT(241)*V(268)+RCT(825) + D_VAR(46) = RCT(308)*V(286)+RCT(822) IF (DO_FUN(47)) & - D_VAR(47) = RCT(713)+RCT(714)+RCT(715)+RCT(847) + D_VAR(47) = RCT(214)*V(272)+RCT(810) IF (DO_FUN(48)) & - D_VAR(48) = RCT(239)*V(268)+RCT(823) + D_VAR(48) = RCT(221)*V(272)+RCT(812) IF (DO_FUN(49)) & - D_VAR(49) = RCT(81) + D_VAR(49) = RCT(689)+RCT(690)+RCT(691)+RCT(827) IF (DO_FUN(50)) & - D_VAR(50) = RCT(804) + D_VAR(50) = RCT(79) IF (DO_FUN(51)) & - D_VAR(51) = RCT(227)*V(268)+RCT(820) + D_VAR(51) = RCT(784) IF (DO_FUN(52)) & - D_VAR(52) = RCT(232)*V(268)+RCT(821) + D_VAR(52) = RCT(205)*V(272)+RCT(800) IF (DO_FUN(53)) & - D_VAR(53) = RCT(233)*V(268)+RCT(822) + D_VAR(53) = RCT(211)*V(272)+RCT(801) IF (DO_FUN(54)) & - D_VAR(54) = RCT(606)*V(269) + D_VAR(54) = RCT(212)*V(272)+RCT(802) IF (DO_FUN(55)) & - D_VAR(55) = RCT(234)*V(268)+RCT(831) + D_VAR(55) = RCT(218)*V(272)+RCT(803) IF (DO_FUN(56)) & - D_VAR(56) = RCT(306)*2*V(56)+RCT(838) + D_VAR(56) = RCT(219)*V(272)+RCT(804) IF (DO_FUN(57)) & - D_VAR(57) = RCT(195)*V(268)+RCT(196)*V(268)+RCT(853) + D_VAR(57) = RCT(220)*V(272)+RCT(805) IF (DO_FUN(58)) & - D_VAR(58) = RCT(864)+RCT(865) + D_VAR(58) = RCT(579)*V(286) IF (DO_FUN(59)) & - D_VAR(59) = RCT(862)+RCT(863) + D_VAR(59) = RCT(213)*V(272)+RCT(811) IF (DO_FUN(60)) & - D_VAR(60) = RCT(616)*V(269) + D_VAR(60) = RCT(284)*2*V(60)+RCT(818) IF (DO_FUN(61)) & - D_VAR(61) = RCT(219)*F(3)+RCT(220)*V(280)+RCT(221)*V(270) + D_VAR(61) = RCT(179)*V(272)+RCT(833) IF (DO_FUN(62)) & - D_VAR(62) = RCT(207)*V(284)+RCT(208)*V(269)+RCT(854) + D_VAR(62) = RCT(844)+RCT(845) IF (DO_FUN(63)) & - D_VAR(63) = RCT(56)+RCT(775) + D_VAR(63) = RCT(842)+RCT(843) IF (DO_FUN(64)) & - D_VAR(64) = RCT(613)*V(269) + D_VAR(64) = RCT(589)*V(286) IF (DO_FUN(65)) & - D_VAR(65) = RCT(327)*V(269)+RCT(707)+RCT(708)+RCT(709) + D_VAR(65) = RCT(197)*F(3)+RCT(198)*V(279)+RCT(199)*V(291) IF (DO_FUN(66)) & - D_VAR(66) = RCT(139)*V(269)+RCT(798) + D_VAR(66) = RCT(187)*V(288)+RCT(188)*V(286)+RCT(834) IF (DO_FUN(67)) & - D_VAR(67) = RCT(636)*V(269)+RCT(912) + D_VAR(67) = RCT(54)+RCT(755) IF (DO_FUN(68)) & - D_VAR(68) = RCT(255)*V(269)+RCT(288)*V(285) + D_VAR(68) = RCT(586)*V(286) IF (DO_FUN(69)) & - D_VAR(69) = RCT(848) + D_VAR(69) = RCT(302)*V(286)+RCT(681)+RCT(682)+RCT(683) IF (DO_FUN(70)) & - D_VAR(70) = RCT(189)*V(269)+RCT(229)*V(268)+RCT(806) + D_VAR(70) = RCT(609)*V(286)+RCT(892) IF (DO_FUN(71)) & - D_VAR(71) = RCT(163)+RCT(850)+RCT(851) + D_VAR(71) = RCT(173)*V(286)+RCT(208)*V(272)+RCT(786) IF (DO_FUN(72)) & - D_VAR(72) = RCT(248)*V(269)+RCT(278)+RCT(814) + D_VAR(72) = RCT(233)*V(286)+RCT(265)*V(290)+RCT(789) IF (DO_FUN(73)) & - D_VAR(73) = RCT(254)*V(269)+RCT(287)*V(285)+RCT(809) + D_VAR(73) = RCT(828) IF (DO_FUN(74)) & - D_VAR(74) = RCT(188)*V(269)+RCT(230)*V(268)+RCT(805) + D_VAR(74) = RCT(147)+RCT(830)+RCT(831) IF (DO_FUN(75)) & - D_VAR(75) = RCT(604)*V(277)+RCT(605)*V(269) + D_VAR(75) = RCT(227)*V(286)+RCT(257)+RCT(794) IF (DO_FUN(76)) & - D_VAR(76) = RCT(617)*V(269) + D_VAR(76) = RCT(577)*V(282)+RCT(578)*V(286) IF (DO_FUN(77)) & - D_VAR(77) = RCT(618)*V(269) + D_VAR(77) = RCT(172)*V(286)+RCT(209)*V(272)+RCT(785) IF (DO_FUN(78)) & - D_VAR(78) = RCT(238)*V(268)+RCT(260)*V(269)+RCT(826) + D_VAR(78) = RCT(234)*V(286)+RCT(266)*V(290) IF (DO_FUN(79)) & - D_VAR(79) = RCT(236)*V(268)+RCT(258)*V(269)+RCT(827) + D_VAR(79) = RCT(590)*V(286) IF (DO_FUN(80)) & - D_VAR(80) = RCT(237)*V(268)+RCT(259)*V(269)+RCT(828) + D_VAR(80) = RCT(591)*V(286) IF (DO_FUN(81)) & - D_VAR(81) = RCT(231)*V(268)+RCT(257)*V(269)+RCT(829) + D_VAR(81) = RCT(217)*V(272)+RCT(239)*V(286)+RCT(806) IF (DO_FUN(82)) & - D_VAR(82) = RCT(164)*V(269)+RCT(165)*V(269)+RCT(166)*V(287) + D_VAR(82) = RCT(215)*V(272)+RCT(237)*V(286)+RCT(807) IF (DO_FUN(83)) & - D_VAR(83) = RCT(597)*V(269)+RCT(870) + D_VAR(83) = RCT(216)*V(272)+RCT(238)*V(286)+RCT(808) IF (DO_FUN(84)) & - D_VAR(84) = RCT(588)*V(269)+RCT(744) + D_VAR(84) = RCT(210)*V(272)+RCT(236)*V(286)+RCT(809) IF (DO_FUN(85)) & - D_VAR(85) = RCT(11)+RCT(12)*V(269) + D_VAR(85) = RCT(570)*V(286)+RCT(850) IF (DO_FUN(86)) & - D_VAR(86) = RCT(394)*V(269)+RCT(868) + D_VAR(86) = RCT(11)+RCT(12)*V(276)*V(286) IF (DO_FUN(87)) & - D_VAR(87) = RCT(392)*V(269)+RCT(866) + D_VAR(87) = RCT(367)*V(286)+RCT(848) IF (DO_FUN(88)) & - D_VAR(88) = RCT(393)*V(269)+RCT(867) + D_VAR(88) = RCT(129)*V(286)+RCT(778) IF (DO_FUN(89)) & - D_VAR(89) = RCT(395)*V(269)+RCT(869) + D_VAR(89) = RCT(365)*V(286)+RCT(846) IF (DO_FUN(90)) & - D_VAR(90) = RCT(317)*V(223)+RCT(318)*2*V(90)+RCT(320)*V(280)+RCT(837) + D_VAR(90) = RCT(148)*V(286)+RCT(149)*V(286)+RCT(150)*V(281) IF (DO_FUN(91)) & - D_VAR(91) = RCT(135)*V(269)+RCT(794) + D_VAR(91) = RCT(368)*V(286)+RCT(849) IF (DO_FUN(92)) & - D_VAR(92) = RCT(133)*V(269)+RCT(792) + D_VAR(92) = RCT(294)*V(227)+RCT(295)*2*V(92)+RCT(297)*V(279)+RCT(817) IF (DO_FUN(93)) & - D_VAR(93) = RCT(134)*V(269)+RCT(793) + D_VAR(93) = RCT(125)*V(286)+RCT(774) IF (DO_FUN(94)) & - D_VAR(94) = RCT(136)*V(269)+RCT(796) + D_VAR(94) = RCT(123)*V(286)+RCT(772) IF (DO_FUN(95)) & - D_VAR(95) = RCT(637)+RCT(638)*V(269) + D_VAR(95) = RCT(124)*V(286)+RCT(773) IF (DO_FUN(96)) & - D_VAR(96) = RCT(389) + D_VAR(96) = RCT(366)*V(286)+RCT(847) IF (DO_FUN(97)) & - D_VAR(97) = RCT(190)*V(269)+RCT(228)*V(268)+RCT(807) + D_VAR(97) = RCT(610)+RCT(611)*V(286) IF (DO_FUN(98)) & - D_VAR(98) = RCT(849) + D_VAR(98) = RCT(362) IF (DO_FUN(99)) & - D_VAR(99) = RCT(631)*V(269)+RCT(632)*V(287)+RCT(911) + D_VAR(99) = RCT(829) IF (DO_FUN(100)) & - D_VAR(100) = RCT(253)*V(269)+RCT(286)*V(285)+RCT(808) + D_VAR(100) = RCT(174)*V(286)+RCT(207)*V(272)+RCT(787) IF (DO_FUN(101)) & - D_VAR(101) = RCT(42)+RCT(43)*V(269)+RCT(768)+RCT(769) + D_VAR(101) = RCT(604)*V(286)+RCT(605)*V(281)+RCT(891) IF (DO_FUN(102)) & - D_VAR(102) = RCT(611)+RCT(612)*F(3) + D_VAR(102) = RCT(40)+RCT(41)*V(286)+RCT(748)+RCT(749) IF (DO_FUN(103)) & - D_VAR(103) = RCT(276)+RCT(279)*V(285)+RCT(280)*V(285)+RCT(833) + D_VAR(103) = RCT(255)+RCT(258)*V(290)+RCT(813) IF (DO_FUN(104)) & - D_VAR(104) = RCT(596)*V(269)+RCT(743)+RCT(872) + D_VAR(104) = RCT(569)*V(286)+RCT(723)+RCT(852) IF (DO_FUN(105)) & - D_VAR(105) = RCT(643)*V(269)+RCT(913) + D_VAR(105) = RCT(561)*V(286)+RCT(724) IF (DO_FUN(106)) & - D_VAR(106) = RCT(433)*V(269) + D_VAR(106) = RCT(126)*V(286)+RCT(776) IF (DO_FUN(107)) & - D_VAR(107) = RCT(247)*V(269)+RCT(813) + D_VAR(107) = RCT(616)*V(286)+RCT(893) IF (DO_FUN(108)) & - D_VAR(108) = RCT(132)*V(269)+RCT(791) + D_VAR(108) = RCT(584)+RCT(585)*F(3) IF (DO_FUN(109)) & - D_VAR(109) = RCT(626)*V(269)+RCT(627)*V(287) + D_VAR(109) = RCT(406)*V(286) IF (DO_FUN(110)) & - D_VAR(110) = RCT(137)*V(269)+RCT(795) + D_VAR(110) = RCT(122)*V(286)+RCT(771) IF (DO_FUN(111)) & - D_VAR(111) = RCT(131)*V(269)+RCT(790) + D_VAR(111) = RCT(226)*V(286)+RCT(793) IF (DO_FUN(112)) & - D_VAR(112) = RCT(67)*V(269)+RCT(76)*V(287)+RCT(302)*V(285) + D_VAR(112) = RCT(127)*V(286)+RCT(775) IF (DO_FUN(113)) & - D_VAR(113) = RCT(614)*V(269)+RCT(615)*V(269)+RCT(910) + D_VAR(113) = RCT(121)*V(286)+RCT(770) IF (DO_FUN(114)) & - D_VAR(114) = RCT(454)*V(269)+RCT(736) + D_VAR(114) = RCT(65)*V(286)+RCT(74)*V(281)+RCT(280)*V(290) IF (DO_FUN(115)) & - D_VAR(115) = RCT(566)*V(269) + D_VAR(115) = RCT(599)*V(286)+RCT(600)*V(281) IF (DO_FUN(116)) & - D_VAR(116) = RCT(475)*V(280)+RCT(476)*V(281) + D_VAR(116) = RCT(427)*V(286)+RCT(716) IF (DO_FUN(117)) & - D_VAR(117) = RCT(624)*V(269)+RCT(625)*V(287) + D_VAR(117) = RCT(539)*V(286) IF (DO_FUN(118)) & - D_VAR(118) = RCT(370)*V(269)+RCT(857) + D_VAR(118) = RCT(597)*V(286)+RCT(598)*V(281) IF (DO_FUN(119)) & - D_VAR(119) = RCT(855) + D_VAR(119) = RCT(343)*V(286)+RCT(837) IF (DO_FUN(120)) & - D_VAR(120) = RCT(473)*V(280)+RCT(474)*V(281) + D_VAR(120) = RCT(587)*V(286)+RCT(588)*V(286)+RCT(890) IF (DO_FUN(121)) & - D_VAR(121) = RCT(62)*V(269)+RCT(63)*V(269)+RCT(185)*V(282)+RCT(298)*V(285)+RCT(299)*V(285) + D_VAR(121) = RCT(446)*V(279)+RCT(447)*V(284) IF (DO_FUN(122)) & - D_VAR(122) = RCT(590)*V(269)+RCT(905) + D_VAR(122) = RCT(835) IF (DO_FUN(123)) & - D_VAR(123) = RCT(522)*F(3)+RCT(523) + D_VAR(123) = RCT(448)*V(279)+RCT(449)*V(284) IF (DO_FUN(124)) & - D_VAR(124) = RCT(430)*V(269)+RCT(891) + D_VAR(124) = RCT(60)*V(286)+RCT(61)*V(286)+RCT(169)*V(273)+RCT(276)*V(290)+RCT(277)*V(290) IF (DO_FUN(125)) & - D_VAR(125) = RCT(176)*V(269)+RCT(799) + D_VAR(125) = RCT(563)*V(286)+RCT(885) IF (DO_FUN(126)) & - D_VAR(126) = RCT(429)*V(269)+RCT(890) + D_VAR(126) = RCT(495)*F(3)+RCT(496) IF (DO_FUN(127)) & - D_VAR(127) = RCT(455)*V(269)+RCT(456)*V(269)+RCT(734) + D_VAR(127) = RCT(403)*V(286)+RCT(871) IF (DO_FUN(128)) & - D_VAR(128) = RCT(457)*V(269)+RCT(458)*V(269)+RCT(735) + D_VAR(128) = RCT(160)*V(286)+RCT(779) IF (DO_FUN(129)) & - D_VAR(129) = RCT(103)*V(269)+RCT(296)*V(285) + D_VAR(129) = RCT(402)*V(286)+RCT(870) IF (DO_FUN(130)) & - D_VAR(130) = RCT(569)*V(269) + D_VAR(130) = RCT(428)*V(286)+RCT(429)*V(286)+RCT(714) IF (DO_FUN(131)) & - D_VAR(131) = RCT(391)*V(269)+RCT(742)+RCT(861) + D_VAR(131) = RCT(430)*V(286)+RCT(431)*V(286)+RCT(715) IF (DO_FUN(132)) & - D_VAR(132) = RCT(810) + D_VAR(132) = RCT(542)*V(286) IF (DO_FUN(133)) & - D_VAR(133) = RCT(575)*V(269)+RCT(880) + D_VAR(133) = RCT(101)*V(286)+RCT(274)*V(290) IF (DO_FUN(134)) & - D_VAR(134) = RCT(32)*V(269)+RCT(33)*V(269)+RCT(291)*V(285)+RCT(763) + D_VAR(134) = RCT(364)*V(286)+RCT(722)+RCT(841) IF (DO_FUN(135)) & - D_VAR(135) = RCT(4)*V(277)*V(286)+RCT(5)*V(271)+RCT(6)*V(260) + D_VAR(135) = RCT(790) IF (DO_FUN(136)) & - D_VAR(136) = RCT(477)*V(269)+RCT(478)*V(269)+RCT(746)+RCT(893) + D_VAR(136) = RCT(548)*V(286)+RCT(860) IF (DO_FUN(137)) & - D_VAR(137) = RCT(479)*V(269)+RCT(480)*V(269)+RCT(747)+RCT(894) + D_VAR(137) = RCT(32)*V(286)+RCT(269)*V(290)+RCT(743) IF (DO_FUN(138)) & - D_VAR(138) = RCT(628)*V(269)+RCT(629)*V(277)+RCT(630)*V(287) + D_VAR(138) = RCT(4)*V(276)*V(282)+RCT(5)*V(275)+RCT(6)*V(265) IF (DO_FUN(139)) & - D_VAR(139) = RCT(591)*V(269)+RCT(903) + D_VAR(139) = RCT(450)*V(286)+RCT(451)*V(286)+RCT(726)+RCT(873) IF (DO_FUN(140)) & - D_VAR(140) = RCT(310)*V(287)+RCT(326)*V(269)+RCT(834) + D_VAR(140) = RCT(452)*V(286)+RCT(453)*V(286)+RCT(727)+RCT(874) IF (DO_FUN(141)) & - D_VAR(141) = RCT(558)*V(280)+RCT(559)*V(281)+RCT(560)*V(270) + D_VAR(141) = RCT(564)*V(286)+RCT(883) IF (DO_FUN(142)) & - D_VAR(142) = RCT(561)*V(280)+RCT(562)*V(281)+RCT(563)*V(270) + D_VAR(142) = RCT(601)*V(286)+RCT(602)*V(282)+RCT(603)*V(281) IF (DO_FUN(143)) & - D_VAR(143) = RCT(545)*V(280)+RCT(546)*V(281) + D_VAR(143) = RCT(288)*V(281)+RCT(301)*V(286)+RCT(814) IF (DO_FUN(144)) & - D_VAR(144) = RCT(1)*V(277)*V(286)+RCT(2)*V(271)+RCT(3)*V(260) + D_VAR(144) = RCT(531)*V(279)+RCT(532)*V(284)+RCT(533)*V(291) IF (DO_FUN(145)) & - D_VAR(145) = RCT(653)*V(269)+RCT(654)*V(277)+RCT(655) + D_VAR(145) = RCT(534)*V(279)+RCT(535)*V(284)+RCT(536)*V(291) IF (DO_FUN(146)) & - D_VAR(146) = RCT(542)*V(280)+RCT(543)*V(281) + D_VAR(146) = RCT(518)*V(279)+RCT(519)*V(284) IF (DO_FUN(147)) & - D_VAR(147) = RCT(525)*V(269)+RCT(527)*V(269)+RCT(528)*V(269)+RCT(530)*V(269)+RCT(531)*V(269)+RCT(750)+RCT(897)& - &+RCT(898) + D_VAR(147) = RCT(1)*V(276)*V(282)+RCT(2)*V(275)+RCT(3)*V(265) IF (DO_FUN(148)) & - D_VAR(148) = RCT(491)+RCT(492)*V(281)+RCT(493)*V(280)+RCT(494)*V(280) + D_VAR(148) = RCT(626)*V(286)+RCT(627)*V(282)+RCT(628) IF (DO_FUN(149)) & - D_VAR(149) = RCT(586)+RCT(587)*V(269) + D_VAR(149) = RCT(206)*V(272)+RCT(232)*V(286)+RCT(264)*V(290)+RCT(788) IF (DO_FUN(150)) & - D_VAR(150) = RCT(351)*V(269)+RCT(358)*V(277)+RCT(360)*V(287) + D_VAR(150) = RCT(515)*V(279)+RCT(516)*V(284) IF (DO_FUN(151)) & - D_VAR(151) = RCT(352)*V(269)+RCT(359)*V(277)+RCT(361)*V(287) + D_VAR(151) = RCT(498)*V(286)+RCT(500)*V(286)+RCT(501)*V(286)+RCT(503)*V(286)+RCT(504)*V(286)+RCT(730)+RCT(877)& + &+RCT(878) IF (DO_FUN(152)) & - D_VAR(152) = RCT(565)*V(269)+RCT(877) + D_VAR(152) = RCT(464)+RCT(465)*V(284)+RCT(466)*V(279)+RCT(467)*V(279) IF (DO_FUN(153)) & - D_VAR(153) = RCT(434)*V(269)+RCT(435)*V(269)+RCT(438)*V(269)+RCT(884) + D_VAR(153) = RCT(559)+RCT(560)*V(286) IF (DO_FUN(154)) & - D_VAR(154) = RCT(104)*V(269) + D_VAR(154) = RCT(324)*V(286)+RCT(331)*V(282)+RCT(333)*V(281) IF (DO_FUN(155)) & - D_VAR(155) = RCT(650)*V(269)+RCT(651)*V(277)+RCT(652) + D_VAR(155) = RCT(325)*V(286)+RCT(332)*V(282)+RCT(334)*V(281) IF (DO_FUN(156)) & - D_VAR(156) = RCT(644)*V(277)+RCT(645)*V(270) + D_VAR(156) = RCT(538)*V(286)+RCT(857) IF (DO_FUN(157)) & - D_VAR(157) = RCT(58)*V(269)+RCT(140)*V(287)+RCT(184)*V(282)+RCT(292)*V(285) + D_VAR(157) = RCT(407)*V(286)+RCT(408)*V(286)+RCT(411)*V(286)+RCT(864) IF (DO_FUN(158)) & - D_VAR(158) = RCT(436)*V(269)+RCT(437)*V(269)+RCT(439)*V(269)+RCT(885) + D_VAR(158) = RCT(102)*V(286) IF (DO_FUN(159)) & - D_VAR(159) = RCT(592)*V(269)+RCT(904) + D_VAR(159) = RCT(623)*V(286)+RCT(624)*V(282)+RCT(625) IF (DO_FUN(160)) & - D_VAR(160) = RCT(564)*V(269)+RCT(878) + D_VAR(160) = RCT(617)*V(282)+RCT(618)*V(291) IF (DO_FUN(161)) & - D_VAR(161) = RCT(441)*V(269)+RCT(887) + D_VAR(161) = RCT(56)*V(286)+RCT(130)*V(281)+RCT(168)*V(273)+RCT(270)*V(290) IF (DO_FUN(162)) & - D_VAR(162) = RCT(487)+RCT(488)*V(281)+RCT(489)*V(280)+RCT(490)*V(280) + D_VAR(162) = RCT(409)*V(286)+RCT(410)*V(286)+RCT(412)*V(286)+RCT(865) IF (DO_FUN(163)) & - D_VAR(163) = RCT(496)+RCT(500)*V(281)+RCT(501)*V(280)+RCT(502)*V(280) + D_VAR(163) = RCT(537)*V(286)+RCT(858) IF (DO_FUN(164)) & - D_VAR(164) = RCT(495)+RCT(497)*V(281)+RCT(498)*V(280)+RCT(499)*V(280) + D_VAR(164) = RCT(565)*V(286)+RCT(884) IF (DO_FUN(165)) & - D_VAR(165) = RCT(362)*V(269)+RCT(363)*V(277)+RCT(364)*V(287) + D_VAR(165) = RCT(414)*V(286)+RCT(867) IF (DO_FUN(166)) & - D_VAR(166) = RCT(568)*V(269)+RCT(874) + D_VAR(166) = RCT(468)+RCT(470)*V(284)+RCT(471)*V(279)+RCT(472)*V(279) IF (DO_FUN(167)) & - D_VAR(167) = RCT(440)*V(269)+RCT(886) + D_VAR(167) = RCT(460)+RCT(461)*V(284)+RCT(462)*V(279)+RCT(463)*V(279) IF (DO_FUN(168)) & - D_VAR(168) = RCT(599)*V(269)+RCT(600)*V(269)+RCT(871) + D_VAR(168) = RCT(469)+RCT(473)*V(284)+RCT(474)*V(279)+RCT(475)*V(279) IF (DO_FUN(169)) & - D_VAR(169) = RCT(48)+RCT(668)*V(279)+RCT(669)*V(271)+RCT(670)+RCT(671)*V(278)+RCT(672)*V(283)+RCT(772) + D_VAR(169) = RCT(541)*V(286)+RCT(854) IF (DO_FUN(170)) & - D_VAR(170) = RCT(432)*V(269)+RCT(749) + D_VAR(170) = RCT(335)*V(286)+RCT(336)*V(282)+RCT(337)*V(281) IF (DO_FUN(171)) & - D_VAR(171) = RCT(557)*V(269)+RCT(755)+RCT(883) + D_VAR(171) = RCT(413)*V(286)+RCT(866) IF (DO_FUN(172)) & - D_VAR(172) = RCT(175)*V(282)+RCT(675)*V(279)+RCT(676)*V(271)+RCT(802)+RCT(803) + D_VAR(172) = RCT(572)*V(286)+RCT(573)*V(286)+RCT(851) IF (DO_FUN(173)) & - D_VAR(173) = RCT(214)*F(3)+RCT(215)*V(277)+RCT(216)*V(281)+RCT(217)*V(281)+RCT(218)*V(281) + D_VAR(173) = RCT(46)+RCT(642)*V(278)+RCT(643)*V(275)+RCT(644)+RCT(645)*V(280)+RCT(646)*V(287)+RCT(752) IF (DO_FUN(174)) & - D_VAR(174) = RCT(384)*V(269)+RCT(388)*V(287)+RCT(740)+RCT(859) + D_VAR(174) = RCT(405)*V(286)+RCT(729) IF (DO_FUN(175)) & - D_VAR(175) = RCT(607)*V(281)+RCT(608)*V(280)+RCT(609)*V(287)+RCT(610)*V(263) + D_VAR(175) = RCT(530)*V(286)+RCT(735)+RCT(863) IF (DO_FUN(176)) & - D_VAR(176) = RCT(633)*V(281)+RCT(634)*V(280)+RCT(635)*V(270)+RCT(649)*V(263) + D_VAR(176) = RCT(159)*V(273)+RCT(649)*V(278)+RCT(650)*V(275)+RCT(782)+RCT(783) IF (DO_FUN(177)) & - D_VAR(177) = RCT(524)*V(269)+RCT(526)*V(269)+RCT(529)*V(269)+RCT(751)+RCT(896) + D_VAR(177) = RCT(194)*F(3)+RCT(195)*V(282)+RCT(196)*V(284) IF (DO_FUN(178)) & - D_VAR(178) = RCT(619)*V(281)+RCT(620)*V(280)+RCT(621)*V(287)+RCT(622)*V(263)+RCT(623)*V(257) + D_VAR(178) = RCT(357)*V(286)+RCT(361)*V(281)+RCT(720)+RCT(839) IF (DO_FUN(179)) & - D_VAR(179) = RCT(442)+RCT(443)*V(280)+RCT(444)*V(280)+RCT(445)*V(281) + D_VAR(179) = RCT(580)*V(284)+RCT(581)*V(279)+RCT(582)*V(281)+RCT(583)*V(266) IF (DO_FUN(180)) & - D_VAR(180) = RCT(446)+RCT(447)*V(280)+RCT(448)*V(280)+RCT(449)*V(281) + D_VAR(180) = RCT(606)*V(284)+RCT(607)*V(279)+RCT(608)*V(291)+RCT(622)*V(266) IF (DO_FUN(181)) & - D_VAR(181) = RCT(567)*V(269)+RCT(875) + D_VAR(181) = RCT(497)*V(286)+RCT(499)*V(286)+RCT(502)*V(286)+RCT(731)+RCT(876) IF (DO_FUN(182)) & - D_VAR(182) = RCT(427)*V(269)+RCT(888) + D_VAR(182) = RCT(415)+RCT(416)*V(279)+RCT(417)*V(279)+RCT(418)*V(284) IF (DO_FUN(183)) & - D_VAR(183) = RCT(450)+RCT(451)*V(280)+RCT(452)*V(280)+RCT(453)*V(281) + D_VAR(183) = RCT(419)+RCT(420)*V(279)+RCT(421)*V(279)+RCT(422)*V(284) IF (DO_FUN(184)) & - D_VAR(184) = RCT(428)*V(269)+RCT(889) + D_VAR(184) = RCT(592)*V(284)+RCT(593)*V(279)+RCT(594)*V(281)+RCT(595)*V(266)+RCT(596)*V(261) IF (DO_FUN(185)) & - D_VAR(185) = RCT(532)+RCT(535)*V(281)+RCT(538)*V(280)+RCT(539)*V(280) + D_VAR(185) = RCT(540)*V(286)+RCT(855) IF (DO_FUN(186)) & - D_VAR(186) = RCT(25)*V(269)+RCT(197)*V(268)+RCT(198)*V(268)+RCT(199)*V(268)+RCT(261)*V(285) + D_VAR(186) = RCT(400)*V(286)+RCT(868) IF (DO_FUN(187)) & - D_VAR(187) = RCT(639)*V(270)+RCT(640)*V(280)+RCT(641)*V(287)+RCT(642)*V(281)+RCT(648)*V(263) + D_VAR(187) = RCT(423)+RCT(424)*V(279)+RCT(425)*V(279)+RCT(426)*V(284) IF (DO_FUN(188)) & - D_VAR(188) = RCT(40)*V(269)+RCT(767) + D_VAR(188) = RCT(401)*V(286)+RCT(869) IF (DO_FUN(189)) & - D_VAR(189) = RCT(431)*V(269) + D_VAR(189) = RCT(505)+RCT(508)*V(284)+RCT(511)*V(279)+RCT(512)*V(279) IF (DO_FUN(190)) & - D_VAR(190) = RCT(469)*V(281)+RCT(470)*V(280)+RCT(471)*V(280)+RCT(472) + D_VAR(190) = RCT(25)*V(286)+RCT(180)*V(272)+RCT(240)*V(290) IF (DO_FUN(191)) & - D_VAR(191) = RCT(345)*V(258)+RCT(346)*V(280)+RCT(347)*V(270)+RCT(348)*V(286)+RCT(349)*V(279)+RCT(350)*V(279) + D_VAR(191) = RCT(612)*V(291)+RCT(613)*V(279)+RCT(614)*V(281)+RCT(615)*V(284)+RCT(621)*V(266) IF (DO_FUN(192)) & - D_VAR(192) = RCT(226)*V(268)+RCT(243)*V(269)+RCT(811) + D_VAR(192) = RCT(404)*V(286) IF (DO_FUN(193)) & - D_VAR(193) = RCT(34)*V(269)+RCT(35)*V(269)+RCT(852) + D_VAR(193) = RCT(38)*V(286)+RCT(747) IF (DO_FUN(194)) & - D_VAR(194) = RCT(337)*V(269)+RCT(873) + D_VAR(194) = RCT(442)*V(284)+RCT(443)*V(279)+RCT(444)*V(279)+RCT(445) IF (DO_FUN(195)) & - D_VAR(195) = RCT(556)*V(269)+RCT(756)+RCT(882) + D_VAR(195) = RCT(318)*V(267)+RCT(319)*V(279)+RCT(320)*V(291)+RCT(321)*V(276)+RCT(322)*V(278)+RCT(323)*V(278) IF (DO_FUN(196)) & - D_VAR(196) = RCT(385)*V(269)+RCT(386)*V(277)+RCT(387)*V(287)+RCT(741)+RCT(860) + D_VAR(196) = RCT(33)*V(286)+RCT(832) IF (DO_FUN(197)) & - D_VAR(197) = RCT(75)*V(280)+RCT(92)*V(281)+RCT(102)*V(263)+RCT(149)*V(257)+RCT(154)*V(257) + D_VAR(197) = RCT(204)*V(272)+RCT(222)*V(286)+RCT(791) IF (DO_FUN(198)) & - D_VAR(198) = RCT(77)*V(269)+RCT(739)+RCT(797) + D_VAR(198) = RCT(310)*V(286)+RCT(853) IF (DO_FUN(199)) & - D_VAR(199) = RCT(308)+RCT(309)*2*V(199)+RCT(720)*V(275)+RCT(721)*V(276)+RCT(722)*V(278)+RCT(723)*V(283)+RCT(839) + D_VAR(199) = RCT(358)*V(286)+RCT(359)*V(282)+RCT(360)*V(281)+RCT(721)+RCT(840) IF (DO_FUN(200)) & - D_VAR(200) = RCT(570)*V(281)+RCT(571)*V(280)+RCT(572)*V(280) + D_VAR(200) = RCT(529)*V(286)+RCT(736)+RCT(862) IF (DO_FUN(201)) & - D_VAR(201) = RCT(573)*V(281)+RCT(576)+RCT(577)*V(280)+RCT(578)*V(280) + D_VAR(201) = RCT(73)*V(279)+RCT(90)*V(284)+RCT(100)*V(266)+RCT(138)*V(261) IF (DO_FUN(202)) & - D_VAR(202) = RCT(589)*V(269)+RCT(901)+RCT(902) + D_VAR(202) = RCT(75)*V(286)+RCT(719)+RCT(777) IF (DO_FUN(203)) & - D_VAR(203) = RCT(574)*V(281)+RCT(579)*V(280)+RCT(580)*V(270) + D_VAR(203) = RCT(286)+RCT(287)*2*V(203)+RCT(695)+RCT(696)+RCT(700)*V(283)+RCT(701)*V(277)+RCT(702)*V(280)+RCT(703)& + &*V(287)+RCT(819) IF (DO_FUN(204)) & - D_VAR(204) = RCT(66)*V(280)+RCT(86)*V(263)+RCT(112)*V(281)+RCT(126)*V(257)+RCT(128)*V(257) + D_VAR(204) = RCT(543)*V(284)+RCT(544)*V(279)+RCT(545)*V(279) IF (DO_FUN(205)) & - D_VAR(205) = RCT(336)*V(269)+RCT(595)*V(287)+RCT(858) + D_VAR(205) = RCT(546)*V(284)+RCT(549)+RCT(550)*V(279)+RCT(551)*V(279) IF (DO_FUN(206)) & - D_VAR(206) = RCT(646)*V(269)+RCT(647)*V(287)+RCT(757)+RCT(914) + D_VAR(206) = RCT(562)*V(286)+RCT(881)+RCT(882) IF (DO_FUN(207)) & - D_VAR(207) = RCT(49)*V(269)+RCT(289)*V(285) + D_VAR(207) = RCT(547)*V(284)+RCT(552)*V(279)+RCT(553)*V(291) IF (DO_FUN(208)) & - D_VAR(208) = RCT(7)*V(286)+RCT(21)*V(269)+RCT(213)*V(284)+RCT(265)*V(285)+RCT(762) + D_VAR(208) = RCT(309)*V(286)+RCT(568)*V(281)+RCT(838) IF (DO_FUN(209)) & - D_VAR(209) = RCT(593)*V(269)+RCT(753)+RCT(908)+RCT(909) + D_VAR(209) = RCT(64)*V(279)+RCT(84)*V(266)+RCT(108)*V(284)+RCT(141)*V(261) IF (DO_FUN(210)) & - D_VAR(210) = RCT(483)*V(269)+RCT(484)*V(269)+RCT(486)*V(269)+RCT(748)+RCT(895) + D_VAR(210) = RCT(619)*V(286)+RCT(620)*V(281)+RCT(737)+RCT(894) IF (DO_FUN(211)) & - D_VAR(211) = RCT(371)*V(280)+RCT(373)*V(281)+RCT(375)*V(263)+RCT(377)*V(257)+RCT(379)*V(287)+RCT(381)*2*V(211)& - &+RCT(382)*V(212) + D_VAR(211) = RCT(47)*V(286)+RCT(267)*V(290) IF (DO_FUN(212)) & - D_VAR(212) = RCT(372)*V(280)+RCT(374)*V(281)+RCT(376)*V(263)+RCT(378)*V(257)+RCT(380)*V(287)+RCT(382)*V(211)+RCT(383)& - &*2*V(212) + D_VAR(212) = RCT(7)*V(276)+RCT(21)*V(286)+RCT(193)*V(288)+RCT(244)*V(290)+RCT(742) IF (DO_FUN(213)) & - D_VAR(213) = RCT(59)*V(280)+RCT(60)*V(280)+RCT(94)*V(263)+RCT(105)*2*V(213)+RCT(107)*2*V(213)+RCT(109)*V(281)+RCT(156)& - &*V(257)+RCT(158)*V(257)+RCT(293)*V(285) + D_VAR(213) = RCT(566)*V(286)+RCT(733)+RCT(888)+RCT(889) IF (DO_FUN(214)) & - D_VAR(214) = RCT(50)*V(269)+RCT(295)*V(285) + D_VAR(214) = RCT(456)*V(286)+RCT(457)*V(286)+RCT(459)*V(286)+RCT(728)+RCT(875) IF (DO_FUN(215)) & - D_VAR(215) = RCT(78)*V(269)+RCT(297)*V(285) + D_VAR(215) = RCT(344)*V(279)+RCT(346)*V(284)+RCT(348)*V(266)+RCT(350)*V(261)+RCT(352)*V(281)+RCT(354)*2*V(215)& + &+RCT(355)*V(216) IF (DO_FUN(216)) & - D_VAR(216) = RCT(481)*V(269)+RCT(482)*V(269)+RCT(485)*V(269)+RCT(745)+RCT(892) + D_VAR(216) = RCT(345)*V(279)+RCT(347)*V(284)+RCT(349)*V(266)+RCT(351)*V(261)+RCT(353)*V(281)+RCT(355)*V(215)+RCT(356)& + &*2*V(216) IF (DO_FUN(217)) & - D_VAR(217) = RCT(533)+RCT(534)*V(281)+RCT(536)*V(280)+RCT(537)*V(280) + D_VAR(217) = RCT(57)*V(279)+RCT(58)*V(279)+RCT(92)*V(266)+RCT(103)*2*V(217)+RCT(105)*V(284)+RCT(139)*V(261)+RCT(271)& + &*V(290) IF (DO_FUN(218)) & - D_VAR(218) = RCT(119)*V(269)+RCT(121)*V(287)+RCT(732)+RCT(781)+RCT(782)+RCT(783) + D_VAR(218) = RCT(48)*V(286)+RCT(273)*V(290) IF (DO_FUN(219)) & - D_VAR(219) = RCT(84)*V(269)+RCT(183)*V(282)+RCT(300)*V(285)+RCT(777)+RCT(778) + D_VAR(219) = RCT(76)*V(286)+RCT(275)*V(290) IF (DO_FUN(220)) & - D_VAR(220) = RCT(301)*V(285)+RCT(396)*V(277)+RCT(397)*V(269)+RCT(398)*V(269)+RCT(399)*V(269)+RCT(400)*V(269)+RCT(506)& - &*V(287) + D_VAR(220) = RCT(454)*V(286)+RCT(455)*V(286)+RCT(458)*V(286)+RCT(725)+RCT(872) IF (DO_FUN(221)) & - D_VAR(221) = RCT(365)*V(280)+RCT(366)*V(281)+RCT(367)*V(263)+RCT(368)*V(257)+RCT(369)*V(287) + D_VAR(221) = RCT(82)*V(286)+RCT(167)*V(273)+RCT(278)*V(290)+RCT(757)+RCT(758) IF (DO_FUN(222)) & - D_VAR(222) = RCT(93)*V(269)+RCT(96)*V(287)+RCT(779) + D_VAR(222) = RCT(506)+RCT(507)*V(284)+RCT(509)*V(279)+RCT(510)*V(279) IF (DO_FUN(223)) & - D_VAR(223) = RCT(311)*V(270)+RCT(315)*V(274)+RCT(316)*V(274)+RCT(317)*V(90)+RCT(321)*V(273)+RCT(322)*V(273)+RCT(323)& - &*V(273)+RCT(329)*V(281)+RCT(330)*V(280)+RCT(331)*2*V(223)+RCT(332)*2*V(223)+RCT(836) + D_VAR(223) = RCT(115)*V(286)+RCT(117)*V(281)+RCT(712)+RCT(761)+RCT(762)+RCT(763) IF (DO_FUN(224)) & - D_VAR(224) = RCT(459)+RCT(460)+RCT(461)*V(281)+RCT(462)*V(280)+RCT(463)*V(280) + D_VAR(224) = RCT(279)*V(290)+RCT(369)*V(282)+RCT(370)*V(286)+RCT(371)*V(286)+RCT(372)*V(286)+RCT(373)*V(286)+RCT(479)& + &*V(281) IF (DO_FUN(225)) & - D_VAR(225) = RCT(464)+RCT(465)+RCT(466)*V(280)+RCT(467)*V(280)+RCT(468)*V(281) + D_VAR(225) = RCT(338)*V(279)+RCT(339)*V(284)+RCT(340)*V(266)+RCT(341)*V(261)+RCT(342)*V(281) IF (DO_FUN(226)) & - D_VAR(226) = RCT(554)*V(269)+RCT(876) + D_VAR(226) = RCT(91)*V(286)+RCT(94)*V(281)+RCT(759) IF (DO_FUN(227)) & - D_VAR(227) = RCT(555)*V(269)+RCT(879) + D_VAR(227) = RCT(289)*V(291)+RCT(293)*V(274)+RCT(294)*V(92)+RCT(298)*V(285)+RCT(304)*V(284)+RCT(305)*V(279)+RCT(306)*2& + &*V(227)+RCT(816) IF (DO_FUN(228)) & - D_VAR(228) = RCT(120)*V(269)+RCT(122)*V(287)+RCT(733)+RCT(784) + D_VAR(228) = RCT(432)+RCT(433)+RCT(434)*V(284)+RCT(435)*V(279)+RCT(436)*V(279) IF (DO_FUN(229)) & - D_VAR(229) = RCT(503)*V(281)+RCT(504)*V(280)+RCT(505)*V(280) + D_VAR(229) = RCT(437)+RCT(438)+RCT(439)*V(279)+RCT(440)*V(279)+RCT(441)*V(284) IF (DO_FUN(230)) & - D_VAR(230) = RCT(338)*V(258)+RCT(339)*V(280)+RCT(340)*V(270)+RCT(341)*V(279)+RCT(342)*V(279)*V(279)+RCT(343)*V(277)& - &+RCT(344)*V(286) + D_VAR(230) = RCT(527)*V(286)+RCT(856) IF (DO_FUN(231)) & - D_VAR(231) = RCT(251)*V(269)+RCT(684)*V(278)+RCT(685)*V(283)+RCT(686)*V(271)+RCT(687)*V(275)+RCT(688)*V(276)+RCT(689)& - &*V(272)+RCT(815) + D_VAR(231) = RCT(528)*V(286)+RCT(859) IF (DO_FUN(232)) & - D_VAR(232) = RCT(116)*V(269)+RCT(117)*V(269)+RCT(780) + D_VAR(232) = RCT(476)*V(284)+RCT(477)*V(279)+RCT(478)*V(279) IF (DO_FUN(233)) & - D_VAR(233) = RCT(64)*V(280)+RCT(65)*V(280)+RCT(85)*V(263)+RCT(111)*V(281)+RCT(125)*V(257)+RCT(127)*V(257) + D_VAR(233) = RCT(116)*V(286)+RCT(118)*V(281)+RCT(713)+RCT(764) IF (DO_FUN(234)) & - D_VAR(234) = RCT(353)*V(280)+RCT(354)*V(281)+RCT(355)*V(263)+RCT(356)*V(257)+RCT(357)*V(287) + D_VAR(234) = RCT(311)*V(267)+RCT(312)*V(279)+RCT(313)*V(291)+RCT(314)*V(278)+RCT(315)*V(278)*V(278)+RCT(316)*V(282)& + &+RCT(317)*V(276) IF (DO_FUN(235)) & - D_VAR(235) = RCT(61)*V(280)+RCT(95)*V(263)+RCT(106)*2*V(235)+RCT(108)*2*V(235)+RCT(110)*V(281)+RCT(157)*V(257)& - &+RCT(159)*V(257)+RCT(294)*V(285) + D_VAR(235) = RCT(230)*V(286)+RCT(658)*V(280)+RCT(659)*V(287)+RCT(660)*V(275)+RCT(661)*V(283)+RCT(662)*V(277)+RCT(663)& + &*V(289)+RCT(795) IF (DO_FUN(236)) & - D_VAR(236) = RCT(540)*V(269)+RCT(541)*V(269)+RCT(899) + D_VAR(236) = RCT(112)*V(286)+RCT(113)*V(286)+RCT(760) IF (DO_FUN(237)) & - D_VAR(237) = RCT(553)*V(269)+RCT(738)+RCT(881) + D_VAR(237) = RCT(62)*V(279)+RCT(63)*V(279)+RCT(83)*V(266)+RCT(107)*V(284)+RCT(142)*V(261) IF (DO_FUN(238)) & - D_VAR(238) = RCT(594)*V(269)+RCT(754)+RCT(906)+RCT(907) + D_VAR(238) = RCT(326)*V(279)+RCT(327)*V(284)+RCT(328)*V(266)+RCT(329)*V(261)+RCT(330)*V(281) IF (DO_FUN(239)) & - D_VAR(239) = RCT(544)*V(269)+RCT(752)+RCT(900) + D_VAR(239) = RCT(59)*V(279)+RCT(93)*V(266)+RCT(104)*2*V(239)+RCT(106)*V(284)+RCT(140)*V(261)+RCT(272)*V(290) IF (DO_FUN(240)) & - D_VAR(240) = RCT(507)*V(281)+RCT(509)*2*V(240)+RCT(510)*V(241)+RCT(513)*V(263)+RCT(514)*V(257)+RCT(516)*V(287)& - &+RCT(518)*V(280)+RCT(519)*V(280) + D_VAR(240) = RCT(513)*V(286)+RCT(514)*V(286)+RCT(879) IF (DO_FUN(241)) & - D_VAR(241) = RCT(508)*V(281)+RCT(510)*V(240)+RCT(511)*2*V(241)+RCT(512)*V(263)+RCT(515)*V(257)+RCT(517)*V(287)& - &+RCT(520)*V(280)+RCT(521)*V(280) + D_VAR(241) = RCT(526)*V(286)+RCT(718)+RCT(861) IF (DO_FUN(242)) & - D_VAR(242) = RCT(401)*V(281)+RCT(402)*V(281)+RCT(405)+RCT(406)+RCT(409)*2*V(242)+RCT(411)*V(243)+RCT(412)*2*V(242)& - &+RCT(414)*V(243)+RCT(415)*V(263)+RCT(416)*V(263)+RCT(419)*V(280)+RCT(420)*V(280)+RCT(421)*V(280)+RCT(422)& - &*V(280) + D_VAR(242) = RCT(567)*V(286)+RCT(734)+RCT(886)+RCT(887) IF (DO_FUN(243)) & - D_VAR(243) = RCT(403)*V(281)+RCT(404)*V(281)+RCT(407)+RCT(408)+RCT(410)*2*V(243)+RCT(411)*V(242)+RCT(413)*2*V(243)& - &+RCT(414)*V(242)+RCT(417)*V(263)+RCT(418)*V(263)+RCT(423)*V(280)+RCT(424)*V(280)+RCT(425)*V(280)+RCT(426)& - &*V(280) + D_VAR(243) = RCT(517)*V(286)+RCT(732)+RCT(880) IF (DO_FUN(244)) & - D_VAR(244) = RCT(547)*V(269)+RCT(548)*V(277)+RCT(785)+RCT(786)+RCT(787) + D_VAR(244) = RCT(376)*V(284)+RCT(377)*V(284)+RCT(380)+RCT(381)+RCT(383)*2*V(244)+RCT(384)*V(245)+RCT(386)*2*V(244)& + &+RCT(387)*V(245)+RCT(390)*V(266)+RCT(391)*V(266)+RCT(396)*V(279)+RCT(397)*V(279)+RCT(398)*V(279)+RCT(399)& + &*V(279) IF (DO_FUN(245)) & - D_VAR(245) = RCT(581)*V(281)+RCT(582)*V(280)+RCT(583)*V(270)+RCT(584)*V(287)+RCT(585)*V(263) + D_VAR(245) = RCT(374)*V(284)+RCT(375)*V(284)+RCT(378)+RCT(379)+RCT(382)*2*V(245)+RCT(384)*V(244)+RCT(385)*2*V(245)& + &+RCT(387)*V(244)+RCT(388)*V(266)+RCT(389)*V(266)+RCT(392)*V(279)+RCT(393)*V(279)+RCT(394)*V(279)+RCT(395)& + &*V(279) IF (DO_FUN(246)) & - D_VAR(246) = RCT(123)*V(269)+RCT(124)*V(269)+RCT(789) + D_VAR(246) = RCT(481)*V(284)+RCT(483)*V(247)+RCT(484)*2*V(246)+RCT(485)*V(266)+RCT(488)*V(261)+RCT(490)*V(281)& + &+RCT(493)*V(279)+RCT(494)*V(279) IF (DO_FUN(247)) & - D_VAR(247) = RCT(549)*V(269)+RCT(550)*V(269)+RCT(551)*V(277)+RCT(552)*V(287)+RCT(788) + D_VAR(247) = RCT(480)*V(284)+RCT(482)*2*V(247)+RCT(483)*V(246)+RCT(486)*V(266)+RCT(487)*V(261)+RCT(489)*V(281)& + &+RCT(491)*V(279)+RCT(492)*V(279) IF (DO_FUN(248)) & - D_VAR(248) = RCT(71)*V(280)+RCT(89)*V(281)+RCT(99)*V(263)+RCT(145)*V(257)+RCT(151)*V(257) + D_VAR(248) = RCT(520)*V(286)+RCT(521)*V(282)+RCT(765)+RCT(766)+RCT(767) IF (DO_FUN(249)) & - D_VAR(249) = RCT(72)*V(280)+RCT(90)*V(281)+RCT(100)*V(263)+RCT(146)*V(257)+RCT(152)*V(257) + D_VAR(249) = RCT(554)*V(284)+RCT(555)*V(279)+RCT(556)*V(291)+RCT(557)*V(281)+RCT(558)*V(266) IF (DO_FUN(250)) & - D_VAR(250) = RCT(80)*V(270)+RCT(82)*V(280)+RCT(113)*V(281)+RCT(129)*V(263)+RCT(130)*V(263)+RCT(160)*V(257) + D_VAR(250) = RCT(119)*V(286)+RCT(120)*V(286)+RCT(769) IF (DO_FUN(251)) & - D_VAR(251) = RCT(70)*V(280)+RCT(88)*V(281)+RCT(98)*V(263)+RCT(148)*V(257)+RCT(153)*V(257) + D_VAR(251) = RCT(522)*V(286)+RCT(523)*V(286)+RCT(524)*V(282)+RCT(525)*V(281)+RCT(768) IF (DO_FUN(252)) & - D_VAR(252) = RCT(68)*V(280)+RCT(69)*V(280)+RCT(87)*V(281)+RCT(97)*V(263)+RCT(144)*V(257)+RCT(150)*V(257) + D_VAR(252) = RCT(69)*V(279)+RCT(87)*V(284)+RCT(97)*V(266)+RCT(134)*V(261) IF (DO_FUN(253)) & - D_VAR(253) = RCT(73)*V(280)+RCT(74)*V(280)+RCT(91)*V(281)+RCT(101)*V(263)+RCT(147)*V(257)+RCT(155)*V(257) + D_VAR(253) = RCT(110)*V(286)+RCT(111)*V(282)+RCT(114)*V(281)+RCT(281)*V(290)+RCT(282)*V(273) IF (DO_FUN(254)) & - D_VAR(254) = RCT(114)*V(269)+RCT(115)*V(277)+RCT(118)*V(287)+RCT(303)*V(285)+RCT(304)*V(282) + D_VAR(254) = RCT(70)*V(279)+RCT(88)*V(284)+RCT(98)*V(266)+RCT(135)*V(261) IF (DO_FUN(255)) & - D_VAR(255) = RCT(79)*V(269)+RCT(83)*V(287)+RCT(776) + D_VAR(255) = RCT(78)*V(291)+RCT(80)*V(279)+RCT(109)*V(284)+RCT(143)*V(261)+RCT(144)*V(266) IF (DO_FUN(256)) & - D_VAR(256) = RCT(177)*V(284)+RCT(695)*V(272)+RCT(696)*V(271)+RCT(697)*V(278)+RCT(698)*V(283)+RCT(699)*V(275)+RCT(700)& - &*V(276)+RCT(701)*V(286)+RCT(801) + D_VAR(256) = RCT(66)*V(279)+RCT(67)*V(279)+RCT(85)*V(284)+RCT(95)*V(266)+RCT(133)*V(261) IF (DO_FUN(257)) & - D_VAR(257) = RCT(55)*V(270)+RCT(57)*V(280)+RCT(125)*V(233)+RCT(126)*V(204)+RCT(127)*V(233)+RCT(128)*V(204)+RCT(141)*2& - &*V(257)+RCT(142)*V(263)+RCT(143)*V(263)+RCT(144)*V(252)+RCT(145)*V(248)+RCT(146)*V(249)+RCT(147)*V(253)& - &+RCT(148)*V(251)+RCT(149)*V(197)+RCT(150)*V(252)+RCT(151)*V(248)+RCT(152)*V(249)+RCT(153)*V(251)+RCT(154)& - &*V(197)+RCT(155)*V(253)+RCT(156)*V(213)+RCT(157)*V(235)+RCT(158)*V(213)+RCT(159)*V(235)+RCT(160)*V(250)& - &+RCT(356)*V(234)+RCT(368)*V(221)+RCT(377)*V(211)+RCT(378)*V(212)+RCT(514)*V(240)+RCT(515)*V(241)+RCT(598)& - &*V(281)+RCT(623)*V(178) + D_VAR(257) = RCT(68)*V(279)+RCT(86)*V(284)+RCT(96)*V(266)+RCT(137)*V(261) IF (DO_FUN(258)) & - D_VAR(258) = RCT(24)*V(269)+RCT(338)*V(230)+RCT(345)*V(191) + D_VAR(258) = RCT(71)*V(279)+RCT(72)*V(279)+RCT(89)*V(284)+RCT(99)*V(266)+RCT(136)*V(261) IF (DO_FUN(259)) & - D_VAR(259) = RCT(252)*V(269)+RCT(284)*V(284)+RCT(285)*V(285)+RCT(677)*V(279)+RCT(678)*V(271)+RCT(679)*V(272)+RCT(680)& - &*V(275)+RCT(681)*V(276)+RCT(682)*V(278)+RCT(683)*V(283)+RCT(816)+RCT(817) + D_VAR(259) = RCT(77)*V(286)+RCT(81)*V(281)+RCT(756) IF (DO_FUN(260)) & - D_VAR(260) = RCT(3)*V(144)+RCT(6)*V(135)+RCT(38)*V(269)+RCT(766) + D_VAR(260) = RCT(161)*V(288)+RCT(669)*V(289)+RCT(670)*V(275)+RCT(671)*V(280)+RCT(672)*V(287)+RCT(673)*V(283)+RCT(674)& + &*V(277)+RCT(675)*V(276)+RCT(781) IF (DO_FUN(261)) & - D_VAR(261) = RCT(53)*V(269)+RCT(54)*V(287)+RCT(182)*V(282)+RCT(773)+RCT(774) + D_VAR(261) = RCT(53)*V(291)+RCT(55)*V(279)+RCT(131)*2*V(261)+RCT(132)*V(266)+RCT(133)*V(256)+RCT(134)*V(252)+RCT(135)& + &*V(254)+RCT(136)*V(258)+RCT(137)*V(257)+RCT(138)*V(201)+RCT(139)*V(217)+RCT(140)*V(239)+RCT(141)*V(209)& + &+RCT(142)*V(237)+RCT(143)*V(255)+RCT(329)*V(238)+RCT(341)*V(225)+RCT(350)*V(215)+RCT(351)*V(216)+RCT(487)& + &*V(247)+RCT(488)*V(246)+RCT(571)*V(284)+RCT(596)*V(184) IF (DO_FUN(262)) & - D_VAR(262) = RCT(10)*V(286)+RCT(36)*V(269)+RCT(52)*V(287)+RCT(181)*V(282)+RCT(223)*V(284)+RCT(262)*V(285)+RCT(764)& - &+RCT(765) + D_VAR(262) = RCT(231)*V(286)+RCT(262)*V(288)+RCT(263)*V(290)+RCT(651)*V(278)+RCT(652)*V(275)+RCT(653)*V(289)+RCT(654)& + &*V(283)+RCT(655)*V(277)+RCT(656)*V(280)+RCT(657)*V(287)+RCT(796)+RCT(797) IF (DO_FUN(263)) & - D_VAR(263) = RCT(17)*V(277)+RCT(26)*V(280)+RCT(27)*V(280)+RCT(28)*V(281)+RCT(29)*2*V(263)+RCT(30)*2*V(263)+RCT(31)& - &*V(269)+RCT(85)*V(233)+RCT(86)*V(204)+RCT(94)*V(213)+RCT(95)*V(235)+RCT(97)*V(252)+RCT(98)*V(251)+RCT(99)& - &*V(248)+RCT(100)*V(249)+RCT(101)*V(253)+RCT(102)*V(197)+RCT(129)*V(250)+RCT(130)*V(250)+RCT(142)*V(257)& - &+RCT(143)*V(257)+RCT(162)*V(270)+RCT(244)*V(273)+RCT(290)*V(285)+RCT(355)*V(234)+RCT(367)*V(221)+RCT(375)& - &*V(211)+RCT(376)*V(212)+RCT(415)*V(242)+RCT(416)*V(242)+RCT(417)*V(243)+RCT(418)*V(243)+RCT(512)*V(241)& - &+RCT(513)*V(240)+RCT(585)*V(245)+RCT(610)*V(175)+RCT(622)*V(178)+RCT(648)*V(187)+RCT(649)*V(176)+RCT(662)& - &*V(287) + D_VAR(263) = RCT(10)*V(276)+RCT(34)*V(286)+RCT(50)*V(281)+RCT(165)*V(273)+RCT(201)*V(288)+RCT(241)*V(290)+RCT(744)& + &+RCT(745) IF (DO_FUN(264)) & - D_VAR(264) = RCT(328)*V(269)+RCT(728)*V(275)+RCT(729)*V(276)+RCT(730)*V(278)+RCT(731)*V(283)+RCT(835) + D_VAR(264) = RCT(51)*V(286)+RCT(52)*V(281)+RCT(166)*V(273)+RCT(753)+RCT(754) IF (DO_FUN(265)) & - D_VAR(265) = RCT(305)*V(280)+RCT(307)*V(270)+RCT(313)*V(266)+RCT(314)*V(274)+RCT(324)*V(277)+RCT(325)*V(281) + D_VAR(265) = RCT(3)*V(147)+RCT(6)*V(138)+RCT(36)*V(286)+RCT(746) IF (DO_FUN(266)) & - D_VAR(266) = RCT(312)+RCT(313)*V(265)+RCT(719)*V(279)+RCT(724)*V(275)+RCT(725)*V(276)+RCT(726)*V(278)+RCT(727)*V(283)& - &+RCT(840) + D_VAR(266) = RCT(17)*V(282)+RCT(26)*V(279)+RCT(27)*V(279)+RCT(28)*V(284)+RCT(29)*2*V(266)+RCT(30)*2*V(266)+RCT(31)& + &*V(286)+RCT(83)*V(237)+RCT(84)*V(209)+RCT(92)*V(217)+RCT(93)*V(239)+RCT(95)*V(256)+RCT(96)*V(257)+RCT(97)& + &*V(252)+RCT(98)*V(254)+RCT(99)*V(258)+RCT(100)*V(201)+RCT(132)*V(261)+RCT(144)*V(255)+RCT(146)*V(291)& + &+RCT(223)*V(285)+RCT(268)*V(290)+RCT(328)*V(238)+RCT(340)*V(225)+RCT(348)*V(215)+RCT(349)*V(216)+RCT(388)& + &*V(245)+RCT(389)*V(245)+RCT(390)*V(244)+RCT(391)*V(244)+RCT(485)*V(246)+RCT(486)*V(247)+RCT(558)*V(249)& + &+RCT(583)*V(179)+RCT(595)*V(184)+RCT(621)*V(191)+RCT(622)*V(180)+RCT(635)*V(281) IF (DO_FUN(267)) & - D_VAR(267) = RCT(250)*V(269)+RCT(690)*V(271)+RCT(691)*V(272)+RCT(692)*V(278)+RCT(693)*V(283)+RCT(694)*V(286)+RCT(818) + D_VAR(267) = RCT(24)*V(286)+RCT(311)*V(234)+RCT(318)*V(195) IF (DO_FUN(268)) & - D_VAR(268) = RCT(191)*V(279)+RCT(192)*F(2)+RCT(193)*F(3)+RCT(194)*F(1)+RCT(195)*V(57)+RCT(196)*V(57)+RCT(197)*V(186)& - &+RCT(198)*V(186)+RCT(199)*V(186)+RCT(205)*V(277)+RCT(206)*V(277)+RCT(224)*V(271)+RCT(225)*V(272)+RCT(226)& - &*V(192)+RCT(227)*V(51)+RCT(228)*V(97)+RCT(229)*V(70)+RCT(230)*V(74)+RCT(231)*V(81)+RCT(232)*V(52)+RCT(233)& - &*V(53)+RCT(234)*V(55)+RCT(235)*V(44)+RCT(236)*V(79)+RCT(237)*V(80)+RCT(238)*V(78)+RCT(239)*V(48)+RCT(240)& - &*V(42)+RCT(241)*V(46)+RCT(242)*V(45) + D_VAR(268) = RCT(303)*V(286)+RCT(684)+RCT(685)+RCT(708)*V(283)+RCT(709)*V(277)+RCT(710)*V(280)+RCT(711)*V(287)& + &+RCT(815) IF (DO_FUN(269)) & - D_VAR(269) = RCT(12)*V(85)+RCT(14)*V(277)+RCT(18)*2*V(269)+RCT(19)*2*V(269)+RCT(20)*V(281)+RCT(21)*V(208)+RCT(24)& - &*V(258)+RCT(25)*V(186)+RCT(31)*V(263)+RCT(32)*V(134)+RCT(33)*V(134)+RCT(34)*V(193)+RCT(35)*V(193)+RCT(36)& - &*V(262)+RCT(37)*V(270)+RCT(38)*V(260)+RCT(39)*V(280)+RCT(40)*V(188)+RCT(43)*V(101)+RCT(46)*V(287)+RCT(49)& - &*V(207)+RCT(50)*V(214)+RCT(53)*V(261)+RCT(58)*V(157)+RCT(62)*V(121)+RCT(63)*V(121)+RCT(67)*V(112)+RCT(77)& - &*V(198)+RCT(78)*V(215)+RCT(79)*V(255)+RCT(84)*V(219)+RCT(93)*V(222)+RCT(103)*V(129)+RCT(104)*V(154)& - &+RCT(114)*V(254)+RCT(116)*V(232)+RCT(117)*V(232)+RCT(119)*V(218)+RCT(120)*V(228)+RCT(123)*V(246)+RCT(124)& - &*V(246)+RCT(131)*V(111)+RCT(132)*V(108)+RCT(133)*V(92)+RCT(134)*V(93)+RCT(135)*V(91)+RCT(136)*V(94)& - &+RCT(137)*V(110)+RCT(138)*V(23)+RCT(139)*V(66)+RCT(164)*V(82)+RCT(165)*V(82)+RCT(167)*V(286)+RCT(171)& - &*V(272)+RCT(176)*V(125)+RCT(179)*V(274)+RCT(188)*V(74)+RCT(189)*V(70)+RCT(190)*V(97)+RCT(202)*F(1)& - &+RCT(203)*V(284)+RCT(208)*V(62)+RCT(243)*V(192)+RCT(245)*V(273)+RCT(246)*V(273)+RCT(247)*V(107)+RCT(248)& - &*V(72)+RCT(249)*V(271)+RCT(250)*V(267)+RCT(251)*V(231)+RCT(252)*V(259)+RCT(253)*V(100)+RCT(254)*V(73)& - &+RCT(255)*V(68)+RCT(256)*V(39)+RCT(257)*V(81)+RCT(258)*V(79)+RCT(259)*V(80)+RCT(260)*V(78)+RCT(326)*V(140)& - &+RCT(327)*V(65)+RCT(328)*V(264)+RCT(335)*V(43)+RCT(336)*V(205)+RCT(337)*V(194)+RCT(351)*V(150)+RCT(352)& - &*V(151)+RCT(362)*V(165)+RCT(370)*V(118)+RCT(384)*V(174)+RCT(385)*V(196)+RCT(391)*V(131)+RCT(392)*V(87)& - &+RCT(393)*V(88)+RCT(394)*V(86)+RCT(395)*V(89)+RCT(397)*V(220)+RCT(398)*V(220)+RCT(399)*V(220)+RCT(400)& - &*V(220)+RCT(427)*V(182)+RCT(428)*V(184)+RCT(429)*V(126)+RCT(430)*V(124)+RCT(431)*V(189)+RCT(432)*V(170)& - &+RCT(433)*V(106)+RCT(434)*V(153)+RCT(435)*V(153)+RCT(436)*V(158)+RCT(437)*V(158)+RCT(438)*V(153)+RCT(439)& - &*V(158)+RCT(440)*V(167)+RCT(441)*V(161)+RCT(454)*V(114)+RCT(455)*V(127)+RCT(456)*V(127)+RCT(457)*V(128)& - &+RCT(458)*V(128)+RCT(477)*V(136)+RCT(478)*V(136)+RCT(479)*V(137)+RCT(480)*V(137)+RCT(481)*V(216)+RCT(482)& - &*V(216)+RCT(483)*V(210)+RCT(484)*V(210)+RCT(485)*V(216)+RCT(486)*V(210)+RCT(524)*V(177)+RCT(525)*V(147)& - &+RCT(526)*V(177)+RCT(527)*V(147)+RCT(528)*V(147)+RCT(529)*V(177)+RCT(530)*V(147)+RCT(531)*V(147)+RCT(540)& - &*V(236)+RCT(541)*V(236)+RCT(544)*V(239)+RCT(547)*V(244)+RCT(549)*V(247)+RCT(550)*V(247)+RCT(553)*V(237)& - &+RCT(554)*V(226)+RCT(555)*V(227)+RCT(556)*V(195)+RCT(557)*V(171)+RCT(564)*V(160)+RCT(565)*V(152)+RCT(566)& - &*V(115)+RCT(567)*V(181)+RCT(568)*V(166)+RCT(569)*V(130)+RCT(575)*V(133)+RCT(587)*V(149)+RCT(588)*V(84)& - &+RCT(589)*V(202)+RCT(590)*V(122)+RCT(591)*V(139)+RCT(592)*V(159)+RCT(593)*V(209)+RCT(594)*V(238)+RCT(596)& - &*V(104)+RCT(597)*V(83)+RCT(599)*V(168)+RCT(600)*V(168)+RCT(601)*V(18)+RCT(605)*V(75)+RCT(606)*V(54)& - &+RCT(613)*V(64)+RCT(614)*V(113)+RCT(615)*V(113)+RCT(616)*V(60)+RCT(617)*V(76)+RCT(618)*V(77)+RCT(624)& - &*V(117)+RCT(626)*V(109)+RCT(628)*V(138)+RCT(631)*V(99)+RCT(636)*V(67)+RCT(638)*V(95)+RCT(643)*V(105)& - &+RCT(646)*V(206)+RCT(650)*V(155)+RCT(653)*V(145)+RCT(673)*V(278)+RCT(674)*V(283) + D_VAR(269) = RCT(283)*V(279)+RCT(285)*V(291)+RCT(291)*V(270)+RCT(292)*V(274)+RCT(299)*V(282)+RCT(300)*V(284) IF (DO_FUN(270)) & - D_VAR(270) = RCT(16)*V(277)+RCT(37)*V(269)+RCT(41)*V(281)+RCT(47)*V(287)+RCT(51)*V(287)+RCT(55)*V(257)+RCT(80)*V(250)& - &+RCT(162)*V(263)+RCT(186)*V(282)+RCT(187)*V(274)+RCT(209)*V(284)+RCT(212)*V(284)+RCT(221)*V(61)+RCT(271)& - &*V(273)+RCT(307)*V(265)+RCT(311)*V(223)+RCT(340)*V(230)+RCT(347)*V(191)+RCT(560)*V(141)+RCT(563)*V(142)& - &+RCT(580)*V(203)+RCT(583)*V(245)+RCT(635)*V(176)+RCT(639)*V(187)+RCT(645)*V(156)+RCT(664)+RCT(761) + D_VAR(270) = RCT(290)+RCT(291)*V(269)+RCT(697)+RCT(698)+RCT(699)*V(278)+RCT(704)*V(283)+RCT(705)*V(277)+RCT(706)& + &*V(280)+RCT(707)*V(287)+RCT(820) IF (DO_FUN(271)) & - D_VAR(271) = RCT(2)*V(144)+RCT(5)*V(135)+RCT(224)*V(268)+RCT(249)*V(269)+RCT(669)*V(169)+RCT(676)*V(172)+RCT(678)& - &*V(259)+RCT(686)*V(231)+RCT(690)*V(267)+RCT(696)*V(256) + D_VAR(271) = RCT(229)*V(286)+RCT(664)*V(275)+RCT(665)*V(289)+RCT(666)*V(280)+RCT(667)*V(287)+RCT(668)*V(276)+RCT(798) IF (DO_FUN(272)) & - D_VAR(272) = RCT(171)*V(269)+RCT(178)*V(284)+RCT(225)*V(268)+RCT(679)*V(259)+RCT(689)*V(231)+RCT(691)*V(267)+RCT(695)& - &*V(256)+RCT(702)*V(277)+RCT(705)+RCT(706) + D_VAR(272) = RCT(175)*V(278)+RCT(176)*F(2)+RCT(177)*F(3)+RCT(178)*F(1)+RCT(179)*V(61)+RCT(180)*V(190)+RCT(186)*V(282)& + &+RCT(202)*V(275)+RCT(203)*V(289)+RCT(204)*V(197)+RCT(205)*V(52)+RCT(206)*V(149)+RCT(207)*V(100)+RCT(208)& + &*V(71)+RCT(209)*V(77)+RCT(210)*V(84)+RCT(211)*V(53)+RCT(212)*V(54)+RCT(213)*V(59)+RCT(214)*V(47)+RCT(215)& + &*V(82)+RCT(216)*V(83)+RCT(217)*V(81)+RCT(218)*V(55)+RCT(219)*V(56)+RCT(220)*V(57)+RCT(221)*V(48) IF (DO_FUN(273)) & - D_VAR(273) = RCT(244)*V(263)+RCT(245)*V(269)+RCT(246)*V(269)+RCT(268)*V(284)+RCT(269)*V(281)+RCT(270)*V(280)+RCT(271)& - &*V(270)+RCT(272)*2*V(273)+RCT(273)*2*V(273)+RCT(274)*2*V(273)+RCT(277)*2*V(273)+RCT(281)*V(274)+RCT(282)& - &*V(274)+RCT(283)*V(274)+RCT(321)*V(223)+RCT(322)*V(223)+RCT(323)*V(223)+RCT(812) + D_VAR(273) = RCT(152)*V(282)+RCT(154)*V(284)+RCT(159)*V(176)+RCT(164)*V(281)+RCT(165)*V(263)+RCT(166)*V(264)+RCT(167)& + &*V(221)+RCT(168)*V(161)+RCT(169)*V(124)+RCT(170)*V(291)+RCT(282)*V(253) IF (DO_FUN(274)) & - D_VAR(274) = RCT(169)*V(281)+RCT(172)*2*V(274)+RCT(173)*2*V(274)+RCT(174)*V(280)+RCT(179)*V(269)+RCT(187)*V(270)& - &+RCT(222)*V(284)+RCT(281)*V(273)+RCT(282)*V(273)+RCT(283)*V(273)+RCT(314)*V(265)+RCT(315)*V(223)+RCT(316)& - &*V(223)+RCT(800) + D_VAR(274) = RCT(153)*V(284)+RCT(156)*2*V(274)+RCT(157)*2*V(274)+RCT(158)*V(279)+RCT(163)*V(286)+RCT(171)*V(291)& + &+RCT(200)*V(288)+RCT(259)*V(285)+RCT(260)*V(285)+RCT(261)*V(285)+RCT(292)*V(269)+RCT(293)*V(227)+RCT(780) IF (DO_FUN(275)) & - D_VAR(275) = RCT(680)*V(259)+RCT(687)*V(231)+RCT(699)*V(256)+RCT(703)*V(277)+RCT(720)*V(199)+RCT(724)*V(266)+RCT(728)& - &*V(264) + D_VAR(275) = RCT(2)*V(147)+RCT(5)*V(138)+RCT(202)*V(272)+RCT(228)*V(286)+RCT(643)*V(173)+RCT(650)*V(176)+RCT(652)& + &*V(262)+RCT(660)*V(235)+RCT(664)*V(271)+RCT(670)*V(260) IF (DO_FUN(276)) & - D_VAR(276) = RCT(681)*V(259)+RCT(688)*V(231)+RCT(700)*V(256)+RCT(704)*V(277)+RCT(721)*V(199)+RCT(725)*V(266)+RCT(729)& - &*V(264) + D_VAR(276) = RCT(1)*V(147)*V(282)+RCT(4)*V(138)*V(282)+RCT(7)*V(212)+RCT(8)*V(282)+RCT(9)+RCT(10)*V(263)+RCT(12)*V(86)& + &*V(286)+RCT(151)*V(286)+RCT(317)*V(234)+RCT(321)*V(195)+RCT(668)*V(271)+RCT(675)*V(260) IF (DO_FUN(277)) & - D_VAR(277) = RCT(1)*V(144)*V(286)+RCT(4)*V(135)*V(286)+RCT(8)*V(286)+RCT(13)*V(280)+RCT(14)*V(269)+RCT(15)*V(281)& - &+RCT(16)*V(270)+RCT(17)*V(263)+RCT(115)*V(254)+RCT(168)*V(282)+RCT(201)*V(284)+RCT(205)*V(268)+RCT(206)& - &*V(268)+RCT(215)*V(173)+RCT(263)*V(285)+RCT(324)*V(265)+RCT(343)*V(230)+RCT(358)*V(150)+RCT(359)*V(151)& - &+RCT(363)*V(165)+RCT(386)*V(196)+RCT(396)*V(220)+RCT(548)*V(244)+RCT(551)*V(247)+RCT(604)*V(75)+RCT(629)& - &*V(138)+RCT(644)*V(156)+RCT(651)*V(155)+RCT(654)*V(145)+RCT(702)*V(272)+RCT(703)*V(275)+RCT(704)*V(276)& - &+RCT(758)+RCT(759) + D_VAR(277) = RCT(655)*V(262)+RCT(662)*V(235)+RCT(674)*V(260)+RCT(678)*V(282)+RCT(701)*V(203)+RCT(705)*V(270)+RCT(709)& + &*V(268) IF (DO_FUN(278)) & - D_VAR(278) = RCT(671)*V(169)+RCT(673)*V(269)+RCT(682)*V(259)+RCT(684)*V(231)+RCT(692)*V(267)+RCT(697)*V(256)+RCT(722)& - &*V(199)+RCT(726)*V(266)+RCT(730)*V(264) + D_VAR(278) = RCT(175)*V(272)+RCT(314)*V(234)+RCT(315)*2*V(234)*V(278)+RCT(322)*V(195)+RCT(323)*V(195)+RCT(642)*V(173)& + &+RCT(649)*V(176)+RCT(651)*V(262)+RCT(699)*V(270) IF (DO_FUN(279)) & - D_VAR(279) = RCT(191)*V(268)+RCT(341)*V(230)+RCT(342)*2*V(230)*V(279)+RCT(349)*V(191)+RCT(350)*V(191)+RCT(668)*V(169)& - &+RCT(675)*V(172)+RCT(677)*V(259)+RCT(719)*V(266) + D_VAR(279) = RCT(13)*V(282)+RCT(22)*V(284)+RCT(26)*V(266)+RCT(27)*V(266)+RCT(37)*V(286)+RCT(43)*V(281)+RCT(55)*V(261)& + &+RCT(57)*V(217)+RCT(58)*V(217)+RCT(59)*V(239)+RCT(62)*V(237)+RCT(63)*V(237)+RCT(64)*V(209)+RCT(66)*V(256)& + &+RCT(67)*V(256)+RCT(68)*V(257)+RCT(69)*V(252)+RCT(70)*V(254)+RCT(71)*V(258)+RCT(72)*V(258)+RCT(73)*V(201)& + &+RCT(80)*V(255)+RCT(158)*V(274)+RCT(191)*V(288)+RCT(198)*V(65)+RCT(249)*V(285)+RCT(283)*V(269)+RCT(297)& + &*V(92)+RCT(305)*V(227)+RCT(312)*V(234)+RCT(319)*V(195)+RCT(326)*V(238)+RCT(338)*V(225)+RCT(344)*V(215)& + &+RCT(345)*V(216)+RCT(392)*V(245)+RCT(393)*V(245)+RCT(394)*V(245)+RCT(395)*V(245)+RCT(396)*V(244)+RCT(397)& + &*V(244)+RCT(398)*V(244)+RCT(399)*V(244)+RCT(416)*V(182)+RCT(417)*V(182)+RCT(420)*V(183)+RCT(421)*V(183)& + &+RCT(424)*V(187)+RCT(425)*V(187)+RCT(435)*V(228)+RCT(436)*V(228)+RCT(439)*V(229)+RCT(440)*V(229)+RCT(443)& + &*V(194)+RCT(444)*V(194)+RCT(446)*V(121)+RCT(448)*V(123)+RCT(462)*V(167)+RCT(463)*V(167)+RCT(466)*V(152)& + &+RCT(467)*V(152)+RCT(471)*V(166)+RCT(472)*V(166)+RCT(474)*V(168)+RCT(475)*V(168)+RCT(477)*V(232)+RCT(478)& + &*V(232)+RCT(491)*V(247)+RCT(492)*V(247)+RCT(493)*V(246)+RCT(494)*V(246)+RCT(509)*V(222)+RCT(510)*V(222)& + &+RCT(511)*V(189)+RCT(512)*V(189)+RCT(515)*V(150)+RCT(518)*V(146)+RCT(531)*V(144)+RCT(534)*V(145)+RCT(544)& + &*V(204)+RCT(545)*V(204)+RCT(550)*V(205)+RCT(551)*V(205)+RCT(552)*V(207)+RCT(555)*V(249)+RCT(576)*V(18)& + &+RCT(581)*V(179)+RCT(593)*V(184)+RCT(607)*V(180)+RCT(613)*V(191)+RCT(630)*V(13)+RCT(632)*V(22)+RCT(634)& + &*V(27)+RCT(836) IF (DO_FUN(280)) & - D_VAR(280) = RCT(13)*V(277)+RCT(22)*V(281)+RCT(26)*V(263)+RCT(27)*V(263)+RCT(39)*V(269)+RCT(45)*V(287)+RCT(57)*V(257)& - &+RCT(59)*V(213)+RCT(60)*V(213)+RCT(61)*V(235)+RCT(64)*V(233)+RCT(65)*V(233)+RCT(66)*V(204)+RCT(68)*V(252)& - &+RCT(69)*V(252)+RCT(70)*V(251)+RCT(71)*V(248)+RCT(72)*V(249)+RCT(73)*V(253)+RCT(74)*V(253)+RCT(75)*V(197)& - &+RCT(82)*V(250)+RCT(174)*V(274)+RCT(211)*V(284)+RCT(220)*V(61)+RCT(270)*V(273)+RCT(305)*V(265)+RCT(320)& - &*V(90)+RCT(330)*V(223)+RCT(339)*V(230)+RCT(346)*V(191)+RCT(353)*V(234)+RCT(365)*V(221)+RCT(371)*V(211)& - &+RCT(372)*V(212)+RCT(419)*V(242)+RCT(420)*V(242)+RCT(421)*V(242)+RCT(422)*V(242)+RCT(423)*V(243)+RCT(424)& - &*V(243)+RCT(425)*V(243)+RCT(426)*V(243)+RCT(443)*V(179)+RCT(444)*V(179)+RCT(447)*V(180)+RCT(448)*V(180)& - &+RCT(451)*V(183)+RCT(452)*V(183)+RCT(462)*V(224)+RCT(463)*V(224)+RCT(466)*V(225)+RCT(467)*V(225)+RCT(470)& - &*V(190)+RCT(471)*V(190)+RCT(473)*V(120)+RCT(475)*V(116)+RCT(489)*V(162)+RCT(490)*V(162)+RCT(493)*V(148)& - &+RCT(494)*V(148)+RCT(498)*V(164)+RCT(499)*V(164)+RCT(501)*V(163)+RCT(502)*V(163)+RCT(504)*V(229)+RCT(505)& - &*V(229)+RCT(518)*V(240)+RCT(519)*V(240)+RCT(520)*V(241)+RCT(521)*V(241)+RCT(536)*V(217)+RCT(537)*V(217)& - &+RCT(538)*V(185)+RCT(539)*V(185)+RCT(542)*V(146)+RCT(545)*V(143)+RCT(558)*V(141)+RCT(561)*V(142)+RCT(571)& - &*V(200)+RCT(572)*V(200)+RCT(577)*V(201)+RCT(578)*V(201)+RCT(579)*V(203)+RCT(582)*V(245)+RCT(603)*V(17)& - &+RCT(608)*V(175)+RCT(620)*V(178)+RCT(634)*V(176)+RCT(640)*V(187)+RCT(657)*V(12)+RCT(659)*V(21)+RCT(661)& - &*V(26)+RCT(856) + D_VAR(280) = RCT(645)*V(173)+RCT(647)*V(286)+RCT(656)*V(262)+RCT(658)*V(235)+RCT(666)*V(271)+RCT(671)*V(260)+RCT(702)& + &*V(203)+RCT(706)*V(270)+RCT(710)*V(268) IF (DO_FUN(281)) & - D_VAR(281) = RCT(15)*V(277)+RCT(20)*V(269)+RCT(22)*V(280)+RCT(23)*2*V(281)+RCT(28)*V(263)+RCT(41)*V(270)+RCT(44)& - &*V(287)+RCT(87)*V(252)+RCT(88)*V(251)+RCT(89)*V(248)+RCT(90)*V(249)+RCT(91)*V(253)+RCT(92)*V(197)+RCT(109)& - &*V(213)+RCT(110)*V(235)+RCT(111)*V(233)+RCT(112)*V(204)+RCT(113)*V(250)+RCT(169)*V(274)+RCT(170)*V(282)& - &+RCT(204)*V(284)+RCT(216)*V(173)+RCT(217)*V(173)+RCT(218)*V(173)+RCT(266)*V(285)+RCT(267)*V(285)+RCT(269)& - &*V(273)+RCT(325)*V(265)+RCT(329)*V(223)+RCT(354)*V(234)+RCT(366)*V(221)+RCT(373)*V(211)+RCT(374)*V(212)& - &+RCT(401)*V(242)+RCT(402)*V(242)+RCT(403)*V(243)+RCT(404)*V(243)+RCT(445)*V(179)+RCT(449)*V(180)+RCT(453)& - &*V(183)+RCT(461)*V(224)+RCT(468)*V(225)+RCT(469)*V(190)+RCT(474)*V(120)+RCT(476)*V(116)+RCT(488)*V(162)& - &+RCT(492)*V(148)+RCT(497)*V(164)+RCT(500)*V(163)+RCT(503)*V(229)+RCT(507)*V(240)+RCT(508)*V(241)+RCT(534)& - &*V(217)+RCT(535)*V(185)+RCT(543)*V(146)+RCT(546)*V(143)+RCT(559)*V(141)+RCT(562)*V(142)+RCT(570)*V(200)& - &+RCT(573)*V(201)+RCT(574)*V(203)+RCT(581)*V(245)+RCT(598)*V(257)+RCT(602)*V(17)+RCT(607)*V(175)+RCT(619)& - &*V(178)+RCT(633)*V(176)+RCT(642)*V(187)+RCT(656)*V(12)+RCT(658)*V(21)+RCT(660)*V(26)+RCT(663) + D_VAR(281) = RCT(42)*V(284)+RCT(43)*V(279)+RCT(44)*V(286)+RCT(45)*V(291)+RCT(49)*V(291)+RCT(50)*V(263)+RCT(52)*V(264)& + &+RCT(74)*V(114)+RCT(81)*V(259)+RCT(94)*V(226)+RCT(114)*V(253)+RCT(117)*V(223)+RCT(118)*V(233)+RCT(130)& + &*V(161)+RCT(145)*2*V(281)+RCT(150)*V(90)+RCT(164)*V(273)+RCT(190)*V(288)+RCT(288)*V(143)+RCT(330)*V(238)& + &+RCT(333)*V(154)+RCT(334)*V(155)+RCT(337)*V(170)+RCT(342)*V(225)+RCT(352)*V(215)+RCT(353)*V(216)+RCT(360)& + &*V(199)+RCT(361)*V(178)+RCT(479)*V(224)+RCT(489)*V(247)+RCT(490)*V(246)+RCT(525)*V(251)+RCT(557)*V(249)& + &+RCT(568)*V(208)+RCT(582)*V(179)+RCT(594)*V(184)+RCT(598)*V(118)+RCT(600)*V(115)+RCT(603)*V(142)+RCT(605)& + &*V(101)+RCT(614)*V(191)+RCT(620)*V(210)+RCT(635)*V(266)+RCT(639)+RCT(640)+RCT(641)+RCT(750)+RCT(751) IF (DO_FUN(282)) & - D_VAR(282) = RCT(168)*V(277)+RCT(170)*V(281)+RCT(175)*V(172)+RCT(180)*V(287)+RCT(181)*V(262)+RCT(182)*V(261)+RCT(183)& - &*V(219)+RCT(184)*V(157)+RCT(185)*V(121)+RCT(186)*V(270)+RCT(304)*V(254) + D_VAR(282) = RCT(1)*V(147)*V(276)+RCT(4)*V(138)*V(276)+RCT(8)*V(276)+RCT(13)*V(279)+RCT(14)*V(286)+RCT(15)*V(284)& + &+RCT(16)*V(291)+RCT(17)*V(266)+RCT(111)*V(253)+RCT(152)*V(273)+RCT(182)*V(288)+RCT(186)*V(272)+RCT(195)& + &*V(177)+RCT(242)*V(290)+RCT(299)*V(269)+RCT(316)*V(234)+RCT(331)*V(154)+RCT(332)*V(155)+RCT(336)*V(170)& + &+RCT(359)*V(199)+RCT(369)*V(224)+RCT(521)*V(248)+RCT(524)*V(251)+RCT(577)*V(76)+RCT(602)*V(142)+RCT(617)& + &*V(160)+RCT(624)*V(159)+RCT(627)*V(148)+RCT(676)*V(289)+RCT(677)*V(283)+RCT(678)*V(277)+RCT(738)+RCT(739) IF (DO_FUN(283)) & - D_VAR(283) = RCT(672)*V(169)+RCT(674)*V(269)+RCT(683)*V(259)+RCT(685)*V(231)+RCT(693)*V(267)+RCT(698)*V(256)+RCT(723)& - &*V(199)+RCT(727)*V(266)+RCT(731)*V(264) + D_VAR(283) = RCT(654)*V(262)+RCT(661)*V(235)+RCT(673)*V(260)+RCT(677)*V(282)+RCT(700)*V(203)+RCT(704)*V(270)+RCT(708)& + &*V(268) IF (DO_FUN(284)) & - D_VAR(284) = RCT(177)*V(256)+RCT(178)*V(272)+RCT(200)*F(3)+RCT(201)*V(277)+RCT(203)*V(269)+RCT(204)*V(281)+RCT(207)& - &*V(62)+RCT(209)*V(270)+RCT(210)*V(287)+RCT(211)*V(280)+RCT(212)*V(270)+RCT(213)*V(208)+RCT(222)*V(274)& - &+RCT(223)*V(262)+RCT(268)*V(273)+RCT(284)*V(259) + D_VAR(284) = RCT(15)*V(282)+RCT(20)*V(286)+RCT(22)*V(279)+RCT(23)*2*V(284)+RCT(28)*V(266)+RCT(39)*V(291)+RCT(42)& + &*V(281)+RCT(85)*V(256)+RCT(86)*V(257)+RCT(87)*V(252)+RCT(88)*V(254)+RCT(89)*V(258)+RCT(90)*V(201)+RCT(105)& + &*V(217)+RCT(106)*V(239)+RCT(107)*V(237)+RCT(108)*V(209)+RCT(109)*V(255)+RCT(153)*V(274)+RCT(154)*V(273)& + &+RCT(185)*V(288)+RCT(196)*V(177)+RCT(245)*V(290)+RCT(246)*V(290)+RCT(248)*V(285)+RCT(300)*V(269)+RCT(304)& + &*V(227)+RCT(327)*V(238)+RCT(339)*V(225)+RCT(346)*V(215)+RCT(347)*V(216)+RCT(374)*V(245)+RCT(375)*V(245)& + &+RCT(376)*V(244)+RCT(377)*V(244)+RCT(418)*V(182)+RCT(422)*V(183)+RCT(426)*V(187)+RCT(434)*V(228)+RCT(441)& + &*V(229)+RCT(442)*V(194)+RCT(447)*V(121)+RCT(449)*V(123)+RCT(461)*V(167)+RCT(465)*V(152)+RCT(470)*V(166)& + &+RCT(473)*V(168)+RCT(476)*V(232)+RCT(480)*V(247)+RCT(481)*V(246)+RCT(507)*V(222)+RCT(508)*V(189)+RCT(516)& + &*V(150)+RCT(519)*V(146)+RCT(532)*V(144)+RCT(535)*V(145)+RCT(543)*V(204)+RCT(546)*V(205)+RCT(547)*V(207)& + &+RCT(554)*V(249)+RCT(571)*V(261)+RCT(575)*V(18)+RCT(580)*V(179)+RCT(592)*V(184)+RCT(606)*V(180)+RCT(615)& + &*V(191)+RCT(629)*V(13)+RCT(631)*V(22)+RCT(633)*V(27)+RCT(637) IF (DO_FUN(285)) & - D_VAR(285) = RCT(261)*V(186)+RCT(262)*V(262)+RCT(263)*V(277)+RCT(264)*F(1)+RCT(265)*V(208)+RCT(266)*V(281)+RCT(267)& - &*V(281)+RCT(275)*F(3)+RCT(279)*V(103)+RCT(280)*V(103)+RCT(285)*V(259)+RCT(286)*V(100)+RCT(287)*V(73)& - &+RCT(288)*V(68)+RCT(289)*V(207)+RCT(290)*V(263)+RCT(291)*V(134)+RCT(292)*V(157)+RCT(293)*V(213)+RCT(294)& - &*V(235)+RCT(295)*V(214)+RCT(296)*V(129)+RCT(297)*V(215)+RCT(298)*V(121)+RCT(299)*V(121)+RCT(300)*V(219)& - &+RCT(301)*V(220)+RCT(302)*V(112)+RCT(303)*V(254) + D_VAR(285) = RCT(223)*V(266)+RCT(224)*V(286)+RCT(225)*V(286)+RCT(247)*V(288)+RCT(248)*V(284)+RCT(249)*V(279)+RCT(250)& + &*V(291)+RCT(251)*2*V(285)+RCT(252)*2*V(285)+RCT(253)*2*V(285)+RCT(256)*2*V(285)+RCT(259)*V(274)+RCT(260)& + &*V(274)+RCT(261)*V(274)+RCT(298)*V(227)+RCT(792) IF (DO_FUN(286)) & - D_VAR(286) = RCT(1)*V(144)*V(277)+RCT(4)*V(135)*V(277)+RCT(7)*V(208)+RCT(8)*V(277)+RCT(9)+RCT(10)*V(262)+RCT(167)& - &*V(269)+RCT(344)*V(230)+RCT(348)*V(191)+RCT(694)*V(267)+RCT(701)*V(256) + D_VAR(286) = RCT(12)*V(86)*V(276)+RCT(14)*V(282)+RCT(18)*2*V(286)+RCT(19)*2*V(286)+RCT(20)*V(284)+RCT(21)*V(212)& + &+RCT(24)*V(267)+RCT(25)*V(190)+RCT(31)*V(266)+RCT(32)*V(137)+RCT(33)*V(196)+RCT(34)*V(263)+RCT(35)*V(291)& + &+RCT(36)*V(265)+RCT(37)*V(279)+RCT(38)*V(193)+RCT(41)*V(102)+RCT(44)*V(281)+RCT(47)*V(211)+RCT(48)*V(218)& + &+RCT(51)*V(264)+RCT(56)*V(161)+RCT(60)*V(124)+RCT(61)*V(124)+RCT(65)*V(114)+RCT(75)*V(202)+RCT(76)*V(219)& + &+RCT(77)*V(259)+RCT(82)*V(221)+RCT(91)*V(226)+RCT(101)*V(133)+RCT(102)*V(158)+RCT(110)*V(253)+RCT(112)& + &*V(236)+RCT(113)*V(236)+RCT(115)*V(223)+RCT(116)*V(233)+RCT(119)*V(250)+RCT(120)*V(250)+RCT(121)*V(113)& + &+RCT(122)*V(110)+RCT(123)*V(94)+RCT(124)*V(95)+RCT(125)*V(93)+RCT(126)*V(106)+RCT(127)*V(112)+RCT(128)& + &*V(24)+RCT(129)*V(88)+RCT(148)*V(90)+RCT(149)*V(90)+RCT(151)*V(276)+RCT(155)*V(289)+RCT(160)*V(128)& + &+RCT(163)*V(274)+RCT(172)*V(77)+RCT(173)*V(71)+RCT(174)*V(100)+RCT(183)*F(1)+RCT(184)*V(288)+RCT(188)& + &*V(66)+RCT(222)*V(197)+RCT(224)*V(285)+RCT(225)*V(285)+RCT(226)*V(111)+RCT(227)*V(75)+RCT(228)*V(275)& + &+RCT(229)*V(271)+RCT(230)*V(235)+RCT(231)*V(262)+RCT(232)*V(149)+RCT(233)*V(72)+RCT(234)*V(78)+RCT(235)& + &*V(43)+RCT(236)*V(84)+RCT(237)*V(82)+RCT(238)*V(83)+RCT(239)*V(81)+RCT(301)*V(143)+RCT(302)*V(69)+RCT(303)& + &*V(268)+RCT(308)*V(46)+RCT(309)*V(208)+RCT(310)*V(198)+RCT(324)*V(154)+RCT(325)*V(155)+RCT(335)*V(170)& + &+RCT(343)*V(119)+RCT(357)*V(178)+RCT(358)*V(199)+RCT(364)*V(134)+RCT(365)*V(89)+RCT(366)*V(96)+RCT(367)& + &*V(87)+RCT(368)*V(91)+RCT(370)*V(224)+RCT(371)*V(224)+RCT(372)*V(224)+RCT(373)*V(224)+RCT(400)*V(186)& + &+RCT(401)*V(188)+RCT(402)*V(129)+RCT(403)*V(127)+RCT(404)*V(192)+RCT(405)*V(174)+RCT(406)*V(109)+RCT(407)& + &*V(157)+RCT(408)*V(157)+RCT(409)*V(162)+RCT(410)*V(162)+RCT(411)*V(157)+RCT(412)*V(162)+RCT(413)*V(171)& + &+RCT(414)*V(165)+RCT(427)*V(116)+RCT(428)*V(130)+RCT(429)*V(130)+RCT(430)*V(131)+RCT(431)*V(131)+RCT(450)& + &*V(139)+RCT(451)*V(139)+RCT(452)*V(140)+RCT(453)*V(140)+RCT(454)*V(220)+RCT(455)*V(220)+RCT(456)*V(214)& + &+RCT(457)*V(214)+RCT(458)*V(220)+RCT(459)*V(214)+RCT(497)*V(181)+RCT(498)*V(151)+RCT(499)*V(181)+RCT(500)& + &*V(151)+RCT(501)*V(151)+RCT(502)*V(181)+RCT(503)*V(151)+RCT(504)*V(151)+RCT(513)*V(240)+RCT(514)*V(240)& + &+RCT(517)*V(243)+RCT(520)*V(248)+RCT(522)*V(251)+RCT(523)*V(251)+RCT(526)*V(241)+RCT(527)*V(230)+RCT(528)& + &*V(231)+RCT(529)*V(200)+RCT(530)*V(175)+RCT(537)*V(163)+RCT(538)*V(156)+RCT(539)*V(117)+RCT(540)*V(185)& + &+RCT(541)*V(169)+RCT(542)*V(132)+RCT(548)*V(136)+RCT(560)*V(153)+RCT(561)*V(105)+RCT(562)*V(206)+RCT(563)& + &*V(125)+RCT(564)*V(141)+RCT(565)*V(164)+RCT(566)*V(213)+RCT(567)*V(242)+RCT(569)*V(104)+RCT(570)*V(85)& + &+RCT(572)*V(172)+RCT(573)*V(172)+RCT(574)*V(19)+RCT(578)*V(76)+RCT(579)*V(58)+RCT(586)*V(68)+RCT(587)& + &*V(120)+RCT(588)*V(120)+RCT(589)*V(64)+RCT(590)*V(79)+RCT(591)*V(80)+RCT(597)*V(118)+RCT(599)*V(115)& + &+RCT(601)*V(142)+RCT(604)*V(101)+RCT(609)*V(70)+RCT(611)*V(97)+RCT(616)*V(107)+RCT(619)*V(210)+RCT(623)& + &*V(159)+RCT(626)*V(148)+RCT(636)*V(41)+RCT(647)*V(280)+RCT(648)*V(287) IF (DO_FUN(287)) & - D_VAR(287) = RCT(44)*V(281)+RCT(45)*V(280)+RCT(46)*V(269)+RCT(47)*V(270)+RCT(51)*V(270)+RCT(52)*V(262)+RCT(54)*V(261)& - &+RCT(76)*V(112)+RCT(83)*V(255)+RCT(96)*V(222)+RCT(118)*V(254)+RCT(121)*V(218)+RCT(122)*V(228)+RCT(140)& - &*V(157)+RCT(161)*2*V(287)+RCT(166)*V(82)+RCT(180)*V(282)+RCT(210)*V(284)+RCT(310)*V(140)+RCT(357)*V(234)& - &+RCT(360)*V(150)+RCT(361)*V(151)+RCT(364)*V(165)+RCT(369)*V(221)+RCT(379)*V(211)+RCT(380)*V(212)+RCT(387)& - &*V(196)+RCT(388)*V(174)+RCT(506)*V(220)+RCT(516)*V(240)+RCT(517)*V(241)+RCT(552)*V(247)+RCT(584)*V(245)& - &+RCT(595)*V(205)+RCT(609)*V(175)+RCT(621)*V(178)+RCT(625)*V(117)+RCT(627)*V(109)+RCT(630)*V(138)+RCT(632)& - &*V(99)+RCT(641)*V(187)+RCT(647)*V(206)+RCT(662)*V(263)+RCT(665)+RCT(666)+RCT(667)+RCT(770)+RCT(771) + D_VAR(287) = RCT(646)*V(173)+RCT(648)*V(286)+RCT(657)*V(262)+RCT(659)*V(235)+RCT(667)*V(271)+RCT(672)*V(260)+RCT(703)& + &*V(203)+RCT(707)*V(270)+RCT(711)*V(268) +IF (DO_FUN(288)) & + D_VAR(288) = RCT(161)*V(260)+RCT(162)*V(289)+RCT(181)*F(3)+RCT(182)*V(282)+RCT(184)*V(286)+RCT(185)*V(284)+RCT(187)& + &*V(66)+RCT(189)*V(291)+RCT(190)*V(281)+RCT(191)*V(279)+RCT(192)*V(291)+RCT(193)*V(212)+RCT(200)*V(274)& + &+RCT(201)*V(263)+RCT(247)*V(285)+RCT(262)*V(262) +IF (DO_FUN(289)) & + D_VAR(289) = RCT(155)*V(286)+RCT(162)*V(288)+RCT(203)*V(272)+RCT(653)*V(262)+RCT(663)*V(235)+RCT(665)*V(271)+RCT(669)& + &*V(260)+RCT(676)*V(282)+RCT(679)+RCT(680) +IF (DO_FUN(290)) & + D_VAR(290) = RCT(240)*V(190)+RCT(241)*V(263)+RCT(242)*V(282)+RCT(243)*F(1)+RCT(244)*V(212)+RCT(245)*V(284)+RCT(246)& + &*V(284)+RCT(254)*F(3)+RCT(258)*V(103)+RCT(263)*V(262)+RCT(264)*V(149)+RCT(265)*V(72)+RCT(266)*V(78)& + &+RCT(267)*V(211)+RCT(268)*V(266)+RCT(269)*V(137)+RCT(270)*V(161)+RCT(271)*V(217)+RCT(272)*V(239)+RCT(273)& + &*V(218)+RCT(274)*V(133)+RCT(275)*V(219)+RCT(276)*V(124)+RCT(277)*V(124)+RCT(278)*V(221)+RCT(279)*V(224)& + &+RCT(280)*V(114)+RCT(281)*V(253) +IF (DO_FUN(291)) & + D_VAR(291) = RCT(16)*V(282)+RCT(35)*V(286)+RCT(39)*V(284)+RCT(45)*V(281)+RCT(49)*V(281)+RCT(53)*V(261)+RCT(78)*V(255)& + &+RCT(146)*V(266)+RCT(170)*V(273)+RCT(171)*V(274)+RCT(189)*V(288)+RCT(192)*V(288)+RCT(199)*V(65)+RCT(250)& + &*V(285)+RCT(285)*V(269)+RCT(289)*V(227)+RCT(313)*V(234)+RCT(320)*V(195)+RCT(533)*V(144)+RCT(536)*V(145)& + &+RCT(553)*V(207)+RCT(556)*V(249)+RCT(608)*V(180)+RCT(612)*V(191)+RCT(618)*V(160)+RCT(638)+RCT(741) Vdot = P_VAR - D_VAR*V @@ -4258,919 +4250,900 @@ SUBROUTINE Fun_SPLITF ( V, F, RCT, P_VAR, D_VAR, Aout ) REAL(kind=dp), OPTIONAL :: Aout(NREACT) ! Computation of equation rates - A(1) = RCT(1)*V(144)*V(277)*V(286) - A(2) = RCT(2)*V(144)*V(271) - A(3) = RCT(3)*V(144)*V(260) - A(4) = RCT(4)*V(135)*V(277)*V(286) - A(5) = RCT(5)*V(135)*V(271) - A(6) = RCT(6)*V(135)*V(260) - A(7) = RCT(7)*V(208)*V(286) - A(8) = RCT(8)*V(277)*V(286) - A(9) = RCT(9)*V(286) - A(10) = RCT(10)*V(262)*V(286) - A(11) = RCT(11)*V(85) - A(12) = RCT(12)*V(85)*V(269) - A(13) = RCT(13)*V(277)*V(280) - A(14) = RCT(14)*V(269)*V(277) - A(15) = RCT(15)*V(277)*V(281) - A(16) = RCT(16)*V(270)*V(277) - A(17) = RCT(17)*V(263)*V(277) - A(18) = RCT(18)*V(269)*V(269) - A(19) = RCT(19)*V(269)*V(269) - A(20) = RCT(20)*V(269)*V(281) - A(21) = RCT(21)*V(208)*V(269) - A(22) = RCT(22)*V(280)*V(281) - A(23) = RCT(23)*V(281)*V(281) - A(24) = RCT(24)*V(258)*V(269) - A(25) = RCT(25)*V(186)*V(269) - A(26) = RCT(26)*V(263)*V(280) - A(27) = RCT(27)*V(263)*V(280) - A(28) = RCT(28)*V(263)*V(281) - A(29) = RCT(29)*V(263)*V(263) - A(30) = RCT(30)*V(263)*V(263) - A(31) = RCT(31)*V(263)*V(269) - A(32) = RCT(32)*V(134)*V(269) - A(33) = RCT(33)*V(134)*V(269) - A(34) = RCT(34)*V(193)*V(269) - A(35) = RCT(35)*V(193)*V(269) - A(36) = RCT(36)*V(262)*V(269) - A(37) = RCT(37)*V(269)*V(270) - A(38) = RCT(38)*V(260)*V(269) - A(39) = RCT(39)*V(269)*V(280) - A(40) = RCT(40)*V(188)*V(269) - A(41) = RCT(41)*V(270)*V(281) - A(42) = RCT(42)*V(101) - A(43) = RCT(43)*V(101)*V(269) - A(44) = RCT(44)*V(281)*V(287) - A(45) = RCT(45)*V(280)*V(287) - A(46) = RCT(46)*V(269)*V(287) - A(47) = RCT(47)*V(270)*V(287) - A(48) = RCT(48)*V(169) - A(49) = RCT(49)*V(207)*V(269) - A(50) = RCT(50)*V(214)*V(269) - A(51) = RCT(51)*V(270)*V(287) - A(52) = RCT(52)*V(262)*V(287) - A(53) = RCT(53)*V(261)*V(269) - A(54) = RCT(54)*V(261)*V(287) - A(55) = RCT(55)*V(257)*V(270) - A(56) = RCT(56)*V(63) - A(57) = RCT(57)*V(257)*V(280) - A(58) = RCT(58)*V(157)*V(269) - A(59) = RCT(59)*V(213)*V(280) - A(60) = RCT(60)*V(213)*V(280) - A(61) = RCT(61)*V(235)*V(280) - A(62) = RCT(62)*V(121)*V(269) - A(63) = RCT(63)*V(121)*V(269) - A(64) = RCT(64)*V(233)*V(280) - A(65) = RCT(65)*V(233)*V(280) - A(66) = RCT(66)*V(204)*V(280) - A(67) = RCT(67)*V(112)*V(269) - A(68) = RCT(68)*V(252)*V(280) - A(69) = RCT(69)*V(252)*V(280) - A(70) = RCT(70)*V(251)*V(280) - A(71) = RCT(71)*V(248)*V(280) - A(72) = RCT(72)*V(249)*V(280) - A(73) = RCT(73)*V(253)*V(280) - A(74) = RCT(74)*V(253)*V(280) - A(75) = RCT(75)*V(197)*V(280) - A(76) = RCT(76)*V(112)*V(287) - A(77) = RCT(77)*V(198)*V(269) - A(78) = RCT(78)*V(215)*V(269) - A(79) = RCT(79)*V(255)*V(269) - A(80) = RCT(80)*V(250)*V(270) - A(81) = RCT(81)*V(49) - A(82) = RCT(82)*V(250)*V(280) - A(83) = RCT(83)*V(255)*V(287) - A(84) = RCT(84)*V(219)*V(269) - A(85) = RCT(85)*V(233)*V(263) - A(86) = RCT(86)*V(204)*V(263) - A(87) = RCT(87)*V(252)*V(281) - A(88) = RCT(88)*V(251)*V(281) - A(89) = RCT(89)*V(248)*V(281) - A(90) = RCT(90)*V(249)*V(281) - A(91) = RCT(91)*V(253)*V(281) - A(92) = RCT(92)*V(197)*V(281) - A(93) = RCT(93)*V(222)*V(269) - A(94) = RCT(94)*V(213)*V(263) - A(95) = RCT(95)*V(235)*V(263) - A(96) = RCT(96)*V(222)*V(287) - A(97) = RCT(97)*V(252)*V(263) - A(98) = RCT(98)*V(251)*V(263) - A(99) = RCT(99)*V(248)*V(263) - A(100) = RCT(100)*V(249)*V(263) - A(101) = RCT(101)*V(253)*V(263) - A(102) = RCT(102)*V(197)*V(263) - A(103) = RCT(103)*V(129)*V(269) - A(104) = RCT(104)*V(154)*V(269) - A(105) = RCT(105)*V(213)*V(213) - A(106) = RCT(106)*V(235)*V(235) - A(107) = RCT(107)*V(213)*V(213) - A(108) = RCT(108)*V(235)*V(235) - A(109) = RCT(109)*V(213)*V(281) - A(110) = RCT(110)*V(235)*V(281) - A(111) = RCT(111)*V(233)*V(281) - A(112) = RCT(112)*V(204)*V(281) - A(113) = RCT(113)*V(250)*V(281) - A(114) = RCT(114)*V(254)*V(269) - A(115) = RCT(115)*V(254)*V(277) - A(116) = RCT(116)*V(232)*V(269) - A(117) = RCT(117)*V(232)*V(269) - A(118) = RCT(118)*V(254)*V(287) - A(119) = RCT(119)*V(218)*V(269) - A(120) = RCT(120)*V(228)*V(269) - A(121) = RCT(121)*V(218)*V(287) - A(122) = RCT(122)*V(228)*V(287) - A(123) = RCT(123)*V(246)*V(269) - A(124) = RCT(124)*V(246)*V(269) - A(125) = RCT(125)*V(233)*V(257) - A(126) = RCT(126)*V(204)*V(257) - A(127) = RCT(127)*V(233)*V(257) - A(128) = RCT(128)*V(204)*V(257) - A(129) = RCT(129)*V(250)*V(263) - A(130) = RCT(130)*V(250)*V(263) - A(131) = RCT(131)*V(111)*V(269) - A(132) = RCT(132)*V(108)*V(269) - A(133) = RCT(133)*V(92)*V(269) - A(134) = RCT(134)*V(93)*V(269) - A(135) = RCT(135)*V(91)*V(269) - A(136) = RCT(136)*V(94)*V(269) - A(137) = RCT(137)*V(110)*V(269) - A(138) = RCT(138)*V(23)*V(269) - A(139) = RCT(139)*V(66)*V(269) - A(140) = RCT(140)*V(157)*V(287) - A(141) = RCT(141)*V(257)*V(257) - A(142) = RCT(142)*V(257)*V(263) - A(143) = RCT(143)*V(257)*V(263) - A(144) = RCT(144)*V(252)*V(257) - A(145) = RCT(145)*V(248)*V(257) - A(146) = RCT(146)*V(249)*V(257) - A(147) = RCT(147)*V(253)*V(257) - A(148) = RCT(148)*V(251)*V(257) - A(149) = RCT(149)*V(197)*V(257) - A(150) = RCT(150)*V(252)*V(257) - A(151) = RCT(151)*V(248)*V(257) - A(152) = RCT(152)*V(249)*V(257) - A(153) = RCT(153)*V(251)*V(257) - A(154) = RCT(154)*V(197)*V(257) - A(155) = RCT(155)*V(253)*V(257) - A(156) = RCT(156)*V(213)*V(257) - A(157) = RCT(157)*V(235)*V(257) - A(158) = RCT(158)*V(213)*V(257) - A(159) = RCT(159)*V(235)*V(257) - A(160) = RCT(160)*V(250)*V(257) - A(161) = RCT(161)*V(287)*V(287) - A(162) = RCT(162)*V(263)*V(270) - A(163) = RCT(163)*V(71) - A(164) = RCT(164)*V(82)*V(269) - A(165) = RCT(165)*V(82)*V(269) - A(166) = RCT(166)*V(82)*V(287) - A(167) = RCT(167)*V(269)*V(286) - A(168) = RCT(168)*V(277)*V(282) - A(169) = RCT(169)*V(274)*V(281) - A(170) = RCT(170)*V(281)*V(282) - A(171) = RCT(171)*V(269)*V(272) - A(172) = RCT(172)*V(274)*V(274) - A(173) = RCT(173)*V(274)*V(274) - A(174) = RCT(174)*V(274)*V(280) - A(175) = RCT(175)*V(172)*V(282) - A(176) = RCT(176)*V(125)*V(269) - A(177) = RCT(177)*V(256)*V(284) - A(178) = RCT(178)*V(272)*V(284) - A(179) = RCT(179)*V(269)*V(274) - A(180) = RCT(180)*V(282)*V(287) - A(181) = RCT(181)*V(262)*V(282) - A(182) = RCT(182)*V(261)*V(282) - A(183) = RCT(183)*V(219)*V(282) - A(184) = RCT(184)*V(157)*V(282) - A(185) = RCT(185)*V(121)*V(282) - A(186) = RCT(186)*V(270)*V(282) - A(187) = RCT(187)*V(270)*V(274) - A(188) = RCT(188)*V(74)*V(269) - A(189) = RCT(189)*V(70)*V(269) - A(190) = RCT(190)*V(97)*V(269) - A(191) = RCT(191)*V(268)*V(279) - A(192) = RCT(192)*V(268)*F(2) - A(193) = RCT(193)*V(268)*F(3) - A(194) = RCT(194)*V(268)*F(1) - A(195) = RCT(195)*V(57)*V(268) - A(196) = RCT(196)*V(57)*V(268) - A(197) = RCT(197)*V(186)*V(268) - A(198) = RCT(198)*V(186)*V(268) - A(199) = RCT(199)*V(186)*V(268) - A(200) = RCT(200)*V(284)*F(3) - A(201) = RCT(201)*V(277)*V(284) - A(202) = RCT(202)*V(269)*F(1) - A(203) = RCT(203)*V(269)*V(284) - A(204) = RCT(204)*V(281)*V(284) - A(205) = RCT(205)*V(268)*V(277) - A(206) = RCT(206)*V(268)*V(277) - A(207) = RCT(207)*V(62)*V(284) - A(208) = RCT(208)*V(62)*V(269) - A(209) = RCT(209)*V(270)*V(284) - A(210) = RCT(210)*V(284)*V(287) - A(211) = RCT(211)*V(280)*V(284) - A(212) = RCT(212)*V(270)*V(284) - A(213) = RCT(213)*V(208)*V(284) - A(214) = RCT(214)*V(173)*F(3) - A(215) = RCT(215)*V(173)*V(277) - A(216) = RCT(216)*V(173)*V(281) - A(217) = RCT(217)*V(173)*V(281) - A(219) = RCT(219)*V(61)*F(3) - A(220) = RCT(220)*V(61)*V(280) - A(221) = RCT(221)*V(61)*V(270) - A(222) = RCT(222)*V(274)*V(284) - A(223) = RCT(223)*V(262)*V(284) - A(224) = RCT(224)*V(268)*V(271) - A(225) = RCT(225)*V(268)*V(272) - A(226) = RCT(226)*V(192)*V(268) - A(227) = RCT(227)*V(51)*V(268) - A(228) = RCT(228)*V(97)*V(268) - A(229) = RCT(229)*V(70)*V(268) - A(230) = RCT(230)*V(74)*V(268) - A(231) = RCT(231)*V(81)*V(268) - A(232) = RCT(232)*V(52)*V(268) - A(233) = RCT(233)*V(53)*V(268) - A(234) = RCT(234)*V(55)*V(268) - A(235) = RCT(235)*V(44)*V(268) - A(236) = RCT(236)*V(79)*V(268) - A(237) = RCT(237)*V(80)*V(268) - A(238) = RCT(238)*V(78)*V(268) - A(239) = RCT(239)*V(48)*V(268) - A(240) = RCT(240)*V(42)*V(268) - A(241) = RCT(241)*V(46)*V(268) - A(242) = RCT(242)*V(45)*V(268) - A(243) = RCT(243)*V(192)*V(269) - A(244) = RCT(244)*V(263)*V(273) - A(245) = RCT(245)*V(269)*V(273) - A(246) = RCT(246)*V(269)*V(273) - A(247) = RCT(247)*V(107)*V(269) - A(248) = RCT(248)*V(72)*V(269) - A(249) = RCT(249)*V(269)*V(271) - A(250) = RCT(250)*V(267)*V(269) - A(251) = RCT(251)*V(231)*V(269) - A(252) = RCT(252)*V(259)*V(269) - A(253) = RCT(253)*V(100)*V(269) - A(254) = RCT(254)*V(73)*V(269) - A(255) = RCT(255)*V(68)*V(269) - A(256) = RCT(256)*V(39)*V(269) - A(257) = RCT(257)*V(81)*V(269) - A(258) = RCT(258)*V(79)*V(269) - A(259) = RCT(259)*V(80)*V(269) - A(260) = RCT(260)*V(78)*V(269) - A(261) = RCT(261)*V(186)*V(285) - A(262) = RCT(262)*V(262)*V(285) - A(263) = RCT(263)*V(277)*V(285) - A(264) = RCT(264)*V(285)*F(1) - A(265) = RCT(265)*V(208)*V(285) - A(266) = RCT(266)*V(281)*V(285) - A(267) = RCT(267)*V(281)*V(285) - A(268) = RCT(268)*V(273)*V(284) - A(269) = RCT(269)*V(273)*V(281) - A(270) = RCT(270)*V(273)*V(280) - A(271) = RCT(271)*V(270)*V(273) - A(272) = RCT(272)*V(273)*V(273) - A(273) = RCT(273)*V(273)*V(273) - A(274) = RCT(274)*V(273)*V(273) - A(275) = RCT(275)*V(285)*F(3) - A(276) = RCT(276)*V(103) - A(277) = RCT(277)*V(273)*V(273) - A(278) = RCT(278)*V(72) - A(279) = RCT(279)*V(103)*V(285) - A(280) = RCT(280)*V(103)*V(285) - A(281) = RCT(281)*V(273)*V(274) - A(282) = RCT(282)*V(273)*V(274) - A(283) = RCT(283)*V(273)*V(274) - A(284) = RCT(284)*V(259)*V(284) - A(285) = RCT(285)*V(259)*V(285) - A(286) = RCT(286)*V(100)*V(285) - A(287) = RCT(287)*V(73)*V(285) - A(288) = RCT(288)*V(68)*V(285) - A(289) = RCT(289)*V(207)*V(285) - A(290) = RCT(290)*V(263)*V(285) - A(291) = RCT(291)*V(134)*V(285) - A(292) = RCT(292)*V(157)*V(285) - A(293) = RCT(293)*V(213)*V(285) - A(294) = RCT(294)*V(235)*V(285) - A(295) = RCT(295)*V(214)*V(285) - A(296) = RCT(296)*V(129)*V(285) - A(297) = RCT(297)*V(215)*V(285) - A(298) = RCT(298)*V(121)*V(285) - A(299) = RCT(299)*V(121)*V(285) - A(300) = RCT(300)*V(219)*V(285) - A(301) = RCT(301)*V(220)*V(285) - A(302) = RCT(302)*V(112)*V(285) - A(303) = RCT(303)*V(254)*V(285) - A(304) = RCT(304)*V(254)*V(282) - A(305) = RCT(305)*V(265)*V(280) - A(306) = RCT(306)*V(56)*V(56) - A(307) = RCT(307)*V(265)*V(270) - A(308) = RCT(308)*V(199) - A(309) = RCT(309)*V(199)*V(199) - A(310) = RCT(310)*V(140)*V(287) - A(311) = RCT(311)*V(223)*V(270) - A(312) = RCT(312)*V(266) - A(313) = RCT(313)*V(265)*V(266) - A(314) = RCT(314)*V(265)*V(274) - A(315) = RCT(315)*V(223)*V(274) - A(316) = RCT(316)*V(223)*V(274) - A(317) = RCT(317)*V(90)*V(223) - A(318) = RCT(318)*V(90)*V(90) - A(319) = RCT(319)*V(38) - A(320) = RCT(320)*V(90)*V(280) - A(321) = RCT(321)*V(223)*V(273) - A(322) = RCT(322)*V(223)*V(273) - A(323) = RCT(323)*V(223)*V(273) - A(324) = RCT(324)*V(265)*V(277) - A(325) = RCT(325)*V(265)*V(281) - A(326) = RCT(326)*V(140)*V(269) - A(327) = RCT(327)*V(65)*V(269) - A(328) = RCT(328)*V(264)*V(269) - A(329) = RCT(329)*V(223)*V(281) - A(330) = RCT(330)*V(223)*V(280) - A(331) = RCT(331)*V(223)*V(223) - A(332) = RCT(332)*V(223)*V(223) - A(333) = RCT(333)*V(40) - A(334) = RCT(334)*V(40) - A(335) = RCT(335)*V(43)*V(269) - A(336) = RCT(336)*V(205)*V(269) - A(337) = RCT(337)*V(194)*V(269) - A(338) = RCT(338)*V(230)*V(258) - A(339) = RCT(339)*V(230)*V(280) - A(340) = RCT(340)*V(230)*V(270) - A(341) = RCT(341)*V(230)*V(279) - A(342) = RCT(342)*V(230)*V(279)*V(279) - A(343) = RCT(343)*V(230)*V(277) - A(344) = RCT(344)*V(230)*V(286) - A(345) = RCT(345)*V(191)*V(258) - A(346) = RCT(346)*V(191)*V(280) - A(347) = RCT(347)*V(191)*V(270) - A(348) = RCT(348)*V(191)*V(286) - A(349) = RCT(349)*V(191)*V(279) - A(350) = RCT(350)*V(191)*V(279) - A(351) = RCT(351)*V(150)*V(269) - A(352) = RCT(352)*V(151)*V(269) - A(353) = RCT(353)*V(234)*V(280) - A(354) = RCT(354)*V(234)*V(281) - A(355) = RCT(355)*V(234)*V(263) - A(356) = RCT(356)*V(234)*V(257) - A(357) = RCT(357)*V(234)*V(287) - A(358) = RCT(358)*V(150)*V(277) - A(359) = RCT(359)*V(151)*V(277) - A(360) = RCT(360)*V(150)*V(287) - A(361) = RCT(361)*V(151)*V(287) - A(362) = RCT(362)*V(165)*V(269) - A(363) = RCT(363)*V(165)*V(277) - A(364) = RCT(364)*V(165)*V(287) - A(365) = RCT(365)*V(221)*V(280) - A(366) = RCT(366)*V(221)*V(281) - A(367) = RCT(367)*V(221)*V(263) - A(368) = RCT(368)*V(221)*V(257) - A(369) = RCT(369)*V(221)*V(287) - A(370) = RCT(370)*V(118)*V(269) - A(371) = RCT(371)*V(211)*V(280) - A(372) = RCT(372)*V(212)*V(280) - A(373) = RCT(373)*V(211)*V(281) - A(374) = RCT(374)*V(212)*V(281) - A(375) = RCT(375)*V(211)*V(263) - A(376) = RCT(376)*V(212)*V(263) - A(377) = RCT(377)*V(211)*V(257) - A(378) = RCT(378)*V(212)*V(257) - A(379) = RCT(379)*V(211)*V(287) - A(380) = RCT(380)*V(212)*V(287) - A(381) = RCT(381)*V(211)*V(211) - A(382) = RCT(382)*V(211)*V(212) - A(383) = RCT(383)*V(212)*V(212) - A(384) = RCT(384)*V(174)*V(269) - A(385) = RCT(385)*V(196)*V(269) - A(386) = RCT(386)*V(196)*V(277) - A(387) = RCT(387)*V(196)*V(287) - A(388) = RCT(388)*V(174)*V(287) - A(389) = RCT(389)*V(96) - A(390) = RCT(390)*V(41) - A(391) = RCT(391)*V(131)*V(269) - A(392) = RCT(392)*V(87)*V(269) - A(393) = RCT(393)*V(88)*V(269) - A(394) = RCT(394)*V(86)*V(269) - A(395) = RCT(395)*V(89)*V(269) - A(396) = RCT(396)*V(220)*V(277) - A(397) = RCT(397)*V(220)*V(269) - A(398) = RCT(398)*V(220)*V(269) - A(399) = RCT(399)*V(220)*V(269) - A(400) = RCT(400)*V(220)*V(269) - A(401) = RCT(401)*V(242)*V(281) - A(402) = RCT(402)*V(242)*V(281) - A(403) = RCT(403)*V(243)*V(281) - A(404) = RCT(404)*V(243)*V(281) - A(405) = RCT(405)*V(242) - A(406) = RCT(406)*V(242) - A(407) = RCT(407)*V(243) - A(408) = RCT(408)*V(243) - A(409) = RCT(409)*V(242)*V(242) - A(410) = RCT(410)*V(243)*V(243) - A(411) = RCT(411)*V(242)*V(243) - A(412) = RCT(412)*V(242)*V(242) - A(413) = RCT(413)*V(243)*V(243) - A(414) = RCT(414)*V(242)*V(243) - A(415) = RCT(415)*V(242)*V(263) - A(416) = RCT(416)*V(242)*V(263) - A(417) = RCT(417)*V(243)*V(263) - A(418) = RCT(418)*V(243)*V(263) - A(419) = RCT(419)*V(242)*V(280) - A(420) = RCT(420)*V(242)*V(280) - A(421) = RCT(421)*V(242)*V(280) - A(422) = RCT(422)*V(242)*V(280) - A(423) = RCT(423)*V(243)*V(280) - A(424) = RCT(424)*V(243)*V(280) - A(425) = RCT(425)*V(243)*V(280) - A(426) = RCT(426)*V(243)*V(280) - A(427) = RCT(427)*V(182)*V(269) - A(428) = RCT(428)*V(184)*V(269) - A(429) = RCT(429)*V(126)*V(269) - A(430) = RCT(430)*V(124)*V(269) - A(431) = RCT(431)*V(189)*V(269) - A(432) = RCT(432)*V(170)*V(269) - A(433) = RCT(433)*V(106)*V(269) - A(434) = RCT(434)*V(153)*V(269) - A(435) = RCT(435)*V(153)*V(269) - A(436) = RCT(436)*V(158)*V(269) - A(437) = RCT(437)*V(158)*V(269) - A(438) = RCT(438)*V(153)*V(269) - A(439) = RCT(439)*V(158)*V(269) - A(440) = RCT(440)*V(167)*V(269) - A(441) = RCT(441)*V(161)*V(269) - A(442) = RCT(442)*V(179) - A(443) = RCT(443)*V(179)*V(280) - A(444) = RCT(444)*V(179)*V(280) - A(445) = RCT(445)*V(179)*V(281) - A(446) = RCT(446)*V(180) - A(447) = RCT(447)*V(180)*V(280) - A(448) = RCT(448)*V(180)*V(280) - A(449) = RCT(449)*V(180)*V(281) - A(450) = RCT(450)*V(183) - A(451) = RCT(451)*V(183)*V(280) - A(452) = RCT(452)*V(183)*V(280) - A(453) = RCT(453)*V(183)*V(281) - A(454) = RCT(454)*V(114)*V(269) - A(455) = RCT(455)*V(127)*V(269) - A(456) = RCT(456)*V(127)*V(269) - A(457) = RCT(457)*V(128)*V(269) - A(458) = RCT(458)*V(128)*V(269) - A(459) = RCT(459)*V(224) - A(460) = RCT(460)*V(224) - A(461) = RCT(461)*V(224)*V(281) - A(462) = RCT(462)*V(224)*V(280) - A(463) = RCT(463)*V(224)*V(280) - A(464) = RCT(464)*V(225) - A(465) = RCT(465)*V(225) - A(466) = RCT(466)*V(225)*V(280) - A(467) = RCT(467)*V(225)*V(280) - A(468) = RCT(468)*V(225)*V(281) - A(469) = RCT(469)*V(190)*V(281) - A(470) = RCT(470)*V(190)*V(280) - A(471) = RCT(471)*V(190)*V(280) - A(472) = RCT(472)*V(190) - A(473) = RCT(473)*V(120)*V(280) - A(474) = RCT(474)*V(120)*V(281) - A(475) = RCT(475)*V(116)*V(280) - A(476) = RCT(476)*V(116)*V(281) - A(477) = RCT(477)*V(136)*V(269) - A(478) = RCT(478)*V(136)*V(269) - A(479) = RCT(479)*V(137)*V(269) - A(480) = RCT(480)*V(137)*V(269) - A(481) = RCT(481)*V(216)*V(269) - A(482) = RCT(482)*V(216)*V(269) - A(483) = RCT(483)*V(210)*V(269) - A(484) = RCT(484)*V(210)*V(269) - A(485) = RCT(485)*V(216)*V(269) - A(486) = RCT(486)*V(210)*V(269) - A(487) = RCT(487)*V(162) - A(488) = RCT(488)*V(162)*V(281) - A(489) = RCT(489)*V(162)*V(280) - A(490) = RCT(490)*V(162)*V(280) - A(491) = RCT(491)*V(148) - A(492) = RCT(492)*V(148)*V(281) - A(493) = RCT(493)*V(148)*V(280) - A(494) = RCT(494)*V(148)*V(280) - A(495) = RCT(495)*V(164) - A(496) = RCT(496)*V(163) - A(497) = RCT(497)*V(164)*V(281) - A(498) = RCT(498)*V(164)*V(280) - A(499) = RCT(499)*V(164)*V(280) - A(500) = RCT(500)*V(163)*V(281) - A(501) = RCT(501)*V(163)*V(280) - A(502) = RCT(502)*V(163)*V(280) - A(503) = RCT(503)*V(229)*V(281) - A(504) = RCT(504)*V(229)*V(280) - A(505) = RCT(505)*V(229)*V(280) - A(506) = RCT(506)*V(220)*V(287) - A(507) = RCT(507)*V(240)*V(281) - A(508) = RCT(508)*V(241)*V(281) - A(509) = RCT(509)*V(240)*V(240) - A(510) = RCT(510)*V(240)*V(241) - A(511) = RCT(511)*V(241)*V(241) - A(512) = RCT(512)*V(241)*V(263) - A(513) = RCT(513)*V(240)*V(263) - A(514) = RCT(514)*V(240)*V(257) - A(515) = RCT(515)*V(241)*V(257) - A(516) = RCT(516)*V(240)*V(287) - A(517) = RCT(517)*V(241)*V(287) - A(518) = RCT(518)*V(240)*V(280) - A(519) = RCT(519)*V(240)*V(280) - A(520) = RCT(520)*V(241)*V(280) - A(521) = RCT(521)*V(241)*V(280) - A(522) = RCT(522)*V(123)*F(3) - A(523) = RCT(523)*V(123) - A(524) = RCT(524)*V(177)*V(269) - A(525) = RCT(525)*V(147)*V(269) - A(526) = RCT(526)*V(177)*V(269) - A(527) = RCT(527)*V(147)*V(269) - A(528) = RCT(528)*V(147)*V(269) - A(529) = RCT(529)*V(177)*V(269) - A(530) = RCT(530)*V(147)*V(269) - A(531) = RCT(531)*V(147)*V(269) - A(532) = RCT(532)*V(185) - A(533) = RCT(533)*V(217) - A(534) = RCT(534)*V(217)*V(281) - A(535) = RCT(535)*V(185)*V(281) - A(536) = RCT(536)*V(217)*V(280) - A(537) = RCT(537)*V(217)*V(280) - A(538) = RCT(538)*V(185)*V(280) - A(539) = RCT(539)*V(185)*V(280) - A(540) = RCT(540)*V(236)*V(269) - A(541) = RCT(541)*V(236)*V(269) - A(542) = RCT(542)*V(146)*V(280) - A(543) = RCT(543)*V(146)*V(281) - A(544) = RCT(544)*V(239)*V(269) - A(545) = RCT(545)*V(143)*V(280) - A(546) = RCT(546)*V(143)*V(281) - A(547) = RCT(547)*V(244)*V(269) - A(548) = RCT(548)*V(244)*V(277) - A(549) = RCT(549)*V(247)*V(269) - A(550) = RCT(550)*V(247)*V(269) - A(551) = RCT(551)*V(247)*V(277) - A(552) = RCT(552)*V(247)*V(287) - A(553) = RCT(553)*V(237)*V(269) - A(554) = RCT(554)*V(226)*V(269) - A(555) = RCT(555)*V(227)*V(269) - A(556) = RCT(556)*V(195)*V(269) - A(557) = RCT(557)*V(171)*V(269) - A(558) = RCT(558)*V(141)*V(280) - A(559) = RCT(559)*V(141)*V(281) - A(560) = RCT(560)*V(141)*V(270) - A(561) = RCT(561)*V(142)*V(280) - A(562) = RCT(562)*V(142)*V(281) - A(563) = RCT(563)*V(142)*V(270) - A(564) = RCT(564)*V(160)*V(269) - A(565) = RCT(565)*V(152)*V(269) - A(566) = RCT(566)*V(115)*V(269) - A(567) = RCT(567)*V(181)*V(269) - A(568) = RCT(568)*V(166)*V(269) - A(569) = RCT(569)*V(130)*V(269) - A(570) = RCT(570)*V(200)*V(281) - A(571) = RCT(571)*V(200)*V(280) - A(572) = RCT(572)*V(200)*V(280) - A(573) = RCT(573)*V(201)*V(281) - A(574) = RCT(574)*V(203)*V(281) - A(575) = RCT(575)*V(133)*V(269) - A(576) = RCT(576)*V(201) - A(577) = RCT(577)*V(201)*V(280) - A(578) = RCT(578)*V(201)*V(280) - A(579) = RCT(579)*V(203)*V(280) - A(580) = RCT(580)*V(203)*V(270) - A(581) = RCT(581)*V(245)*V(281) - A(582) = RCT(582)*V(245)*V(280) - A(583) = RCT(583)*V(245)*V(270) - A(584) = RCT(584)*V(245)*V(287) - A(585) = RCT(585)*V(245)*V(263) - A(586) = RCT(586)*V(149) - A(587) = RCT(587)*V(149)*V(269) - A(588) = RCT(588)*V(84)*V(269) - A(589) = RCT(589)*V(202)*V(269) - A(590) = RCT(590)*V(122)*V(269) - A(591) = RCT(591)*V(139)*V(269) - A(592) = RCT(592)*V(159)*V(269) - A(593) = RCT(593)*V(209)*V(269) - A(594) = RCT(594)*V(238)*V(269) - A(595) = RCT(595)*V(205)*V(287) - A(596) = RCT(596)*V(104)*V(269) - A(597) = RCT(597)*V(83)*V(269) - A(598) = RCT(598)*V(257)*V(281) - A(599) = RCT(599)*V(168)*V(269) - A(600) = RCT(600)*V(168)*V(269) - A(601) = RCT(601)*V(18)*V(269) - A(602) = RCT(602)*V(17)*V(281) - A(603) = RCT(603)*V(17)*V(280) - A(604) = RCT(604)*V(75)*V(277) - A(605) = RCT(605)*V(75)*V(269) - A(606) = RCT(606)*V(54)*V(269) - A(607) = RCT(607)*V(175)*V(281) - A(608) = RCT(608)*V(175)*V(280) - A(609) = RCT(609)*V(175)*V(287) - A(610) = RCT(610)*V(175)*V(263) - A(611) = RCT(611)*V(102) - A(612) = RCT(612)*V(102)*F(3) - A(613) = RCT(613)*V(64)*V(269) - A(614) = RCT(614)*V(113)*V(269) - A(615) = RCT(615)*V(113)*V(269) - A(616) = RCT(616)*V(60)*V(269) - A(617) = RCT(617)*V(76)*V(269) - A(618) = RCT(618)*V(77)*V(269) - A(619) = RCT(619)*V(178)*V(281) - A(620) = RCT(620)*V(178)*V(280) - A(621) = RCT(621)*V(178)*V(287) - A(622) = RCT(622)*V(178)*V(263) - A(623) = RCT(623)*V(178)*V(257) - A(624) = RCT(624)*V(117)*V(269) - A(625) = RCT(625)*V(117)*V(287) - A(626) = RCT(626)*V(109)*V(269) - A(627) = RCT(627)*V(109)*V(287) - A(628) = RCT(628)*V(138)*V(269) - A(629) = RCT(629)*V(138)*V(277) - A(630) = RCT(630)*V(138)*V(287) - A(631) = RCT(631)*V(99)*V(269) - A(632) = RCT(632)*V(99)*V(287) - A(633) = RCT(633)*V(176)*V(281) - A(634) = RCT(634)*V(176)*V(280) - A(635) = RCT(635)*V(176)*V(270) - A(636) = RCT(636)*V(67)*V(269) - A(637) = RCT(637)*V(95) - A(638) = RCT(638)*V(95)*V(269) - A(639) = RCT(639)*V(187)*V(270) - A(640) = RCT(640)*V(187)*V(280) - A(641) = RCT(641)*V(187)*V(287) - A(642) = RCT(642)*V(187)*V(281) - A(643) = RCT(643)*V(105)*V(269) - A(644) = RCT(644)*V(156)*V(277) - A(645) = RCT(645)*V(156)*V(270) - A(646) = RCT(646)*V(206)*V(269) - A(647) = RCT(647)*V(206)*V(287) - A(648) = RCT(648)*V(187)*V(263) - A(649) = RCT(649)*V(176)*V(263) - A(650) = RCT(650)*V(155)*V(269) - A(651) = RCT(651)*V(155)*V(277) - A(652) = RCT(652)*V(155) - A(653) = RCT(653)*V(145)*V(269) - A(654) = RCT(654)*V(145)*V(277) - A(655) = RCT(655)*V(145) - A(656) = RCT(656)*V(12)*V(281) - A(657) = RCT(657)*V(12)*V(280) - A(658) = RCT(658)*V(21)*V(281) - A(659) = RCT(659)*V(21)*V(280) - A(660) = RCT(660)*V(26)*V(281) - A(661) = RCT(661)*V(26)*V(280) - A(662) = RCT(662)*V(263)*V(287) - A(663) = RCT(663)*V(281) - A(664) = RCT(664)*V(270) - A(665) = RCT(665)*V(287) - A(666) = RCT(666)*V(287) - A(667) = RCT(667)*V(287) - A(668) = RCT(668)*V(169)*V(279) - A(669) = RCT(669)*V(169)*V(271) - A(670) = RCT(670)*V(169) - A(671) = RCT(671)*V(169)*V(278) - A(672) = RCT(672)*V(169)*V(283) - A(673) = RCT(673)*V(269)*V(278) - A(674) = RCT(674)*V(269)*V(283) - A(675) = RCT(675)*V(172)*V(279) - A(676) = RCT(676)*V(172)*V(271) - A(677) = RCT(677)*V(259)*V(279) - A(678) = RCT(678)*V(259)*V(271) - A(679) = RCT(679)*V(259)*V(272) - A(680) = RCT(680)*V(259)*V(275) - A(681) = RCT(681)*V(259)*V(276) - A(682) = RCT(682)*V(259)*V(278) - A(683) = RCT(683)*V(259)*V(283) - A(684) = RCT(684)*V(231)*V(278) - A(685) = RCT(685)*V(231)*V(283) - A(686) = RCT(686)*V(231)*V(271) - A(687) = RCT(687)*V(231)*V(275) - A(688) = RCT(688)*V(231)*V(276) - A(689) = RCT(689)*V(231)*V(272) - A(690) = RCT(690)*V(267)*V(271) - A(691) = RCT(691)*V(267)*V(272) - A(692) = RCT(692)*V(267)*V(278) - A(693) = RCT(693)*V(267)*V(283) - A(694) = RCT(694)*V(267)*V(286) - A(695) = RCT(695)*V(256)*V(272) - A(696) = RCT(696)*V(256)*V(271) - A(697) = RCT(697)*V(256)*V(278) - A(698) = RCT(698)*V(256)*V(283) - A(699) = RCT(699)*V(256)*V(275) - A(700) = RCT(700)*V(256)*V(276) - A(701) = RCT(701)*V(256)*V(286) - A(702) = RCT(702)*V(272)*V(277) - A(703) = RCT(703)*V(275)*V(277) - A(704) = RCT(704)*V(276)*V(277) - A(705) = RCT(705)*V(272) - A(706) = RCT(706)*V(272) - A(707) = RCT(707)*V(65) - A(708) = RCT(708)*V(65) - A(709) = RCT(709)*V(65) - A(710) = RCT(710)*V(40) - A(711) = RCT(711)*V(40) - A(712) = RCT(712)*V(40) - A(713) = RCT(713)*V(47) - A(714) = RCT(714)*V(47) - A(715) = RCT(715)*V(47) - A(716) = RCT(716)*V(38) - A(717) = RCT(717)*V(38) - A(718) = RCT(718)*V(38) - A(719) = RCT(719)*V(266)*V(279) - A(720) = RCT(720)*V(199)*V(275) - A(721) = RCT(721)*V(199)*V(276) - A(722) = RCT(722)*V(199)*V(278) - A(723) = RCT(723)*V(199)*V(283) - A(724) = RCT(724)*V(266)*V(275) - A(725) = RCT(725)*V(266)*V(276) - A(726) = RCT(726)*V(266)*V(278) - A(727) = RCT(727)*V(266)*V(283) - A(728) = RCT(728)*V(264)*V(275) - A(729) = RCT(729)*V(264)*V(276) - A(730) = RCT(730)*V(264)*V(278) - A(731) = RCT(731)*V(264)*V(283) - A(732) = RCT(732)*V(218) - A(733) = RCT(733)*V(228) - A(734) = RCT(734)*V(127) - A(735) = RCT(735)*V(128) - A(736) = RCT(736)*V(114) - A(737) = RCT(737)*V(23) - A(738) = RCT(738)*V(237) - A(739) = RCT(739)*V(198) - A(740) = RCT(740)*V(174) - A(741) = RCT(741)*V(196) - A(742) = RCT(742)*V(131) - A(743) = RCT(743)*V(104) - A(744) = RCT(744)*V(84) - A(745) = RCT(745)*V(216) - A(746) = RCT(746)*V(136) - A(747) = RCT(747)*V(137) - A(748) = RCT(748)*V(210) - A(749) = RCT(749)*V(170) - A(750) = RCT(750)*V(147) - A(751) = RCT(751)*V(177) - A(752) = RCT(752)*V(239) - A(753) = RCT(753)*V(209) - A(754) = RCT(754)*V(238) - A(755) = RCT(755)*V(171) - A(756) = RCT(756)*V(195) - A(757) = RCT(757)*V(206) - A(758) = RCT(758)*V(277) - A(759) = RCT(759)*V(277) - A(760) = RCT(760)*F(3) - A(761) = RCT(761)*V(270) - A(762) = RCT(762)*V(208) - A(763) = RCT(763)*V(134) - A(764) = RCT(764)*V(262) - A(765) = RCT(765)*V(262) - A(766) = RCT(766)*V(260) - A(767) = RCT(767)*V(188) - A(768) = RCT(768)*V(101) - A(769) = RCT(769)*V(101) - A(770) = RCT(770)*V(287) - A(771) = RCT(771)*V(287) - A(772) = RCT(772)*V(169) - A(773) = RCT(773)*V(261) - A(774) = RCT(774)*V(261) - A(775) = RCT(775)*V(63) - A(776) = RCT(776)*V(255) - A(777) = RCT(777)*V(219) - A(778) = RCT(778)*V(219) - A(779) = RCT(779)*V(222) - A(780) = RCT(780)*V(232) - A(781) = RCT(781)*V(218) - A(782) = RCT(782)*V(218) - A(783) = RCT(783)*V(218) - A(784) = RCT(784)*V(228) - A(785) = RCT(785)*V(244) - A(786) = RCT(786)*V(244) - A(787) = RCT(787)*V(244) - A(788) = RCT(788)*V(247) - A(789) = RCT(789)*V(246) - A(790) = RCT(790)*V(111) - A(791) = RCT(791)*V(108) - A(792) = RCT(792)*V(92) - A(793) = RCT(793)*V(93) - A(794) = RCT(794)*V(91) - A(795) = RCT(795)*V(110) - A(796) = RCT(796)*V(94) - A(797) = RCT(797)*V(198) - A(798) = RCT(798)*V(66) - A(799) = RCT(799)*V(125) - A(800) = RCT(800)*V(274) - A(801) = RCT(801)*V(256) - A(802) = RCT(802)*V(172) - A(803) = RCT(803)*V(172) - A(804) = RCT(804)*V(50) - A(805) = RCT(805)*V(74) - A(806) = RCT(806)*V(70) - A(807) = RCT(807)*V(97) - A(808) = RCT(808)*V(100) - A(809) = RCT(809)*V(73) - A(810) = RCT(810)*V(132) - A(811) = RCT(811)*V(192) - A(812) = RCT(812)*V(273) - A(813) = RCT(813)*V(107) - A(814) = RCT(814)*V(72) - A(815) = RCT(815)*V(231) - A(816) = RCT(816)*V(259) - A(817) = RCT(817)*V(259) - A(818) = RCT(818)*V(267) - A(819) = RCT(819)*V(39) - A(820) = RCT(820)*V(51) - A(821) = RCT(821)*V(52) - A(822) = RCT(822)*V(53) - A(823) = RCT(823)*V(48) - A(824) = RCT(824)*V(42) - A(825) = RCT(825)*V(46) - A(826) = RCT(826)*V(78) - A(827) = RCT(827)*V(79) - A(828) = RCT(828)*V(80) - A(829) = RCT(829)*V(81) - A(830) = RCT(830)*V(44) - A(831) = RCT(831)*V(55) - A(832) = RCT(832)*V(45) - A(833) = RCT(833)*V(103) - A(834) = RCT(834)*V(140) - A(835) = RCT(835)*V(264) - A(836) = RCT(836)*V(223) - A(837) = RCT(837)*V(90) - A(838) = RCT(838)*V(56) - A(839) = RCT(839)*V(199) - A(840) = RCT(840)*V(266) - A(841) = RCT(841)*V(40) - A(842) = RCT(842)*V(43) - A(843) = RCT(843)*V(1) - A(844) = RCT(844)*V(3) - A(845) = RCT(845)*V(2) - A(846) = RCT(846)*V(38) - A(847) = RCT(847)*V(47) - A(848) = RCT(848)*V(69) - A(849) = RCT(849)*V(98) - A(850) = RCT(850)*V(71) - A(851) = RCT(851)*V(71) - A(852) = RCT(852)*V(193) - A(853) = RCT(853)*V(57) - A(854) = RCT(854)*V(62) - A(855) = RCT(855)*V(119) - A(856) = RCT(856)*V(280) - A(857) = RCT(857)*V(118) - A(858) = RCT(858)*V(205) - A(859) = RCT(859)*V(174) - A(860) = RCT(860)*V(196) - A(861) = RCT(861)*V(131) - A(862) = RCT(862)*V(59) - A(863) = RCT(863)*V(59) - A(864) = RCT(864)*V(58) - A(865) = RCT(865)*V(58) - A(866) = RCT(866)*V(87) - A(867) = RCT(867)*V(88) - A(868) = RCT(868)*V(86) - A(869) = RCT(869)*V(89) - A(870) = RCT(870)*V(83) - A(871) = RCT(871)*V(168) - A(872) = RCT(872)*V(104) - A(873) = RCT(873)*V(194) - A(874) = RCT(874)*V(166) - A(875) = RCT(875)*V(181) - A(876) = RCT(876)*V(226) - A(877) = RCT(877)*V(152) - A(878) = RCT(878)*V(160) - A(879) = RCT(879)*V(227) - A(880) = RCT(880)*V(133) - A(881) = RCT(881)*V(237) - A(882) = RCT(882)*V(195) - A(883) = RCT(883)*V(171) - A(884) = RCT(884)*V(153) - A(885) = RCT(885)*V(158) - A(886) = RCT(886)*V(167) - A(887) = RCT(887)*V(161) - A(888) = RCT(888)*V(182) - A(889) = RCT(889)*V(184) - A(890) = RCT(890)*V(126) - A(891) = RCT(891)*V(124) - A(892) = RCT(892)*V(216) - A(893) = RCT(893)*V(136) - A(894) = RCT(894)*V(137) - A(895) = RCT(895)*V(210) - A(896) = RCT(896)*V(177) - A(897) = RCT(897)*V(147) - A(898) = RCT(898)*V(147) - A(899) = RCT(899)*V(236) - A(900) = RCT(900)*V(239) - A(901) = RCT(901)*V(202) - A(902) = RCT(902)*V(202) - A(903) = RCT(903)*V(139) - A(904) = RCT(904)*V(159) - A(905) = RCT(905)*V(122) - A(906) = RCT(906)*V(238) - A(907) = RCT(907)*V(238) - A(908) = RCT(908)*V(209) - A(909) = RCT(909)*V(209) - A(910) = RCT(910)*V(113) - A(911) = RCT(911)*V(99) - A(912) = RCT(912)*V(67) - A(913) = RCT(913)*V(105) - A(914) = RCT(914)*V(206) + A(1) = RCT(1)*V(147)*V(276)*V(282) + A(2) = RCT(2)*V(147)*V(275) + A(3) = RCT(3)*V(147)*V(265) + A(4) = RCT(4)*V(138)*V(276)*V(282) + A(5) = RCT(5)*V(138)*V(275) + A(6) = RCT(6)*V(138)*V(265) + A(7) = RCT(7)*V(212)*V(276) + A(8) = RCT(8)*V(276)*V(282) + A(9) = RCT(9)*V(276) + A(10) = RCT(10)*V(263)*V(276) + A(11) = RCT(11)*V(86) + A(12) = RCT(12)*V(86)*V(276)*V(286) + A(13) = RCT(13)*V(279)*V(282) + A(14) = RCT(14)*V(282)*V(286) + A(15) = RCT(15)*V(282)*V(284) + A(16) = RCT(16)*V(282)*V(291) + A(17) = RCT(17)*V(266)*V(282) + A(18) = RCT(18)*V(286)*V(286) + A(19) = RCT(19)*V(286)*V(286) + A(20) = RCT(20)*V(284)*V(286) + A(21) = RCT(21)*V(212)*V(286) + A(22) = RCT(22)*V(279)*V(284) + A(23) = RCT(23)*V(284)*V(284) + A(24) = RCT(24)*V(267)*V(286) + A(25) = RCT(25)*V(190)*V(286) + A(26) = RCT(26)*V(266)*V(279) + A(27) = RCT(27)*V(266)*V(279) + A(28) = RCT(28)*V(266)*V(284) + A(29) = RCT(29)*V(266)*V(266) + A(30) = RCT(30)*V(266)*V(266) + A(31) = RCT(31)*V(266)*V(286) + A(32) = RCT(32)*V(137)*V(286) + A(33) = RCT(33)*V(196)*V(286) + A(34) = RCT(34)*V(263)*V(286) + A(35) = RCT(35)*V(286)*V(291) + A(36) = RCT(36)*V(265)*V(286) + A(37) = RCT(37)*V(279)*V(286) + A(38) = RCT(38)*V(193)*V(286) + A(39) = RCT(39)*V(284)*V(291) + A(40) = RCT(40)*V(102) + A(41) = RCT(41)*V(102)*V(286) + A(42) = RCT(42)*V(281)*V(284) + A(43) = RCT(43)*V(279)*V(281) + A(44) = RCT(44)*V(281)*V(286) + A(45) = RCT(45)*V(281)*V(291) + A(46) = RCT(46)*V(173) + A(47) = RCT(47)*V(211)*V(286) + A(48) = RCT(48)*V(218)*V(286) + A(49) = RCT(49)*V(281)*V(291) + A(50) = RCT(50)*V(263)*V(281) + A(51) = RCT(51)*V(264)*V(286) + A(52) = RCT(52)*V(264)*V(281) + A(53) = RCT(53)*V(261)*V(291) + A(54) = RCT(54)*V(67) + A(55) = RCT(55)*V(261)*V(279) + A(56) = RCT(56)*V(161)*V(286) + A(57) = RCT(57)*V(217)*V(279) + A(58) = RCT(58)*V(217)*V(279) + A(59) = RCT(59)*V(239)*V(279) + A(60) = RCT(60)*V(124)*V(286) + A(61) = RCT(61)*V(124)*V(286) + A(62) = RCT(62)*V(237)*V(279) + A(63) = RCT(63)*V(237)*V(279) + A(64) = RCT(64)*V(209)*V(279) + A(65) = RCT(65)*V(114)*V(286) + A(66) = RCT(66)*V(256)*V(279) + A(67) = RCT(67)*V(256)*V(279) + A(68) = RCT(68)*V(257)*V(279) + A(69) = RCT(69)*V(252)*V(279) + A(70) = RCT(70)*V(254)*V(279) + A(71) = RCT(71)*V(258)*V(279) + A(72) = RCT(72)*V(258)*V(279) + A(73) = RCT(73)*V(201)*V(279) + A(74) = RCT(74)*V(114)*V(281) + A(75) = RCT(75)*V(202)*V(286) + A(76) = RCT(76)*V(219)*V(286) + A(77) = RCT(77)*V(259)*V(286) + A(78) = RCT(78)*V(255)*V(291) + A(79) = RCT(79)*V(50) + A(80) = RCT(80)*V(255)*V(279) + A(81) = RCT(81)*V(259)*V(281) + A(82) = RCT(82)*V(221)*V(286) + A(83) = RCT(83)*V(237)*V(266) + A(84) = RCT(84)*V(209)*V(266) + A(85) = RCT(85)*V(256)*V(284) + A(86) = RCT(86)*V(257)*V(284) + A(87) = RCT(87)*V(252)*V(284) + A(88) = RCT(88)*V(254)*V(284) + A(89) = RCT(89)*V(258)*V(284) + A(90) = RCT(90)*V(201)*V(284) + A(91) = RCT(91)*V(226)*V(286) + A(92) = RCT(92)*V(217)*V(266) + A(93) = RCT(93)*V(239)*V(266) + A(94) = RCT(94)*V(226)*V(281) + A(95) = RCT(95)*V(256)*V(266) + A(96) = RCT(96)*V(257)*V(266) + A(97) = RCT(97)*V(252)*V(266) + A(98) = RCT(98)*V(254)*V(266) + A(99) = RCT(99)*V(258)*V(266) + A(100) = RCT(100)*V(201)*V(266) + A(101) = RCT(101)*V(133)*V(286) + A(102) = RCT(102)*V(158)*V(286) + A(103) = RCT(103)*V(217)*V(217) + A(104) = RCT(104)*V(239)*V(239) + A(105) = RCT(105)*V(217)*V(284) + A(106) = RCT(106)*V(239)*V(284) + A(107) = RCT(107)*V(237)*V(284) + A(108) = RCT(108)*V(209)*V(284) + A(109) = RCT(109)*V(255)*V(284) + A(110) = RCT(110)*V(253)*V(286) + A(111) = RCT(111)*V(253)*V(282) + A(112) = RCT(112)*V(236)*V(286) + A(113) = RCT(113)*V(236)*V(286) + A(114) = RCT(114)*V(253)*V(281) + A(115) = RCT(115)*V(223)*V(286) + A(116) = RCT(116)*V(233)*V(286) + A(117) = RCT(117)*V(223)*V(281) + A(118) = RCT(118)*V(233)*V(281) + A(119) = RCT(119)*V(250)*V(286) + A(120) = RCT(120)*V(250)*V(286) + A(121) = RCT(121)*V(113)*V(286) + A(122) = RCT(122)*V(110)*V(286) + A(123) = RCT(123)*V(94)*V(286) + A(124) = RCT(124)*V(95)*V(286) + A(125) = RCT(125)*V(93)*V(286) + A(126) = RCT(126)*V(106)*V(286) + A(127) = RCT(127)*V(112)*V(286) + A(128) = RCT(128)*V(24)*V(286) + A(129) = RCT(129)*V(88)*V(286) + A(130) = RCT(130)*V(161)*V(281) + A(131) = RCT(131)*V(261)*V(261) + A(132) = RCT(132)*V(261)*V(266) + A(133) = RCT(133)*V(256)*V(261) + A(134) = RCT(134)*V(252)*V(261) + A(135) = RCT(135)*V(254)*V(261) + A(136) = RCT(136)*V(258)*V(261) + A(137) = RCT(137)*V(257)*V(261) + A(138) = RCT(138)*V(201)*V(261) + A(139) = RCT(139)*V(217)*V(261) + A(140) = RCT(140)*V(239)*V(261) + A(141) = RCT(141)*V(209)*V(261) + A(142) = RCT(142)*V(237)*V(261) + A(143) = RCT(143)*V(255)*V(261) + A(144) = RCT(144)*V(255)*V(266) + A(145) = RCT(145)*V(281)*V(281) + A(146) = RCT(146)*V(266)*V(291) + A(147) = RCT(147)*V(74) + A(148) = RCT(148)*V(90)*V(286) + A(149) = RCT(149)*V(90)*V(286) + A(150) = RCT(150)*V(90)*V(281) + A(151) = RCT(151)*V(276)*V(286) + A(152) = RCT(152)*V(273)*V(282) + A(153) = RCT(153)*V(274)*V(284) + A(154) = RCT(154)*V(273)*V(284) + A(155) = RCT(155)*V(286)*V(289) + A(156) = RCT(156)*V(274)*V(274) + A(157) = RCT(157)*V(274)*V(274) + A(158) = RCT(158)*V(274)*V(279) + A(159) = RCT(159)*V(176)*V(273) + A(160) = RCT(160)*V(128)*V(286) + A(161) = RCT(161)*V(260)*V(288) + A(162) = RCT(162)*V(288)*V(289) + A(163) = RCT(163)*V(274)*V(286) + A(164) = RCT(164)*V(273)*V(281) + A(165) = RCT(165)*V(263)*V(273) + A(166) = RCT(166)*V(264)*V(273) + A(167) = RCT(167)*V(221)*V(273) + A(168) = RCT(168)*V(161)*V(273) + A(169) = RCT(169)*V(124)*V(273) + A(170) = RCT(170)*V(273)*V(291) + A(171) = RCT(171)*V(274)*V(291) + A(172) = RCT(172)*V(77)*V(286) + A(173) = RCT(173)*V(71)*V(286) + A(174) = RCT(174)*V(100)*V(286) + A(175) = RCT(175)*V(272)*V(278) + A(176) = RCT(176)*V(272)*F(2) + A(177) = RCT(177)*V(272)*F(3) + A(178) = RCT(178)*V(272)*F(1) + A(179) = RCT(179)*V(61)*V(272) + A(180) = RCT(180)*V(190)*V(272) + A(181) = RCT(181)*V(288)*F(3) + A(182) = RCT(182)*V(282)*V(288) + A(183) = RCT(183)*V(286)*F(1) + A(184) = RCT(184)*V(286)*V(288) + A(185) = RCT(185)*V(284)*V(288) + A(186) = RCT(186)*V(272)*V(282) + A(187) = RCT(187)*V(66)*V(288) + A(188) = RCT(188)*V(66)*V(286) + A(189) = RCT(189)*V(288)*V(291) + A(190) = RCT(190)*V(281)*V(288) + A(191) = RCT(191)*V(279)*V(288) + A(192) = RCT(192)*V(288)*V(291) + A(193) = RCT(193)*V(212)*V(288) + A(194) = RCT(194)*V(177)*F(3) + A(195) = RCT(195)*V(177)*V(282) + A(196) = RCT(196)*V(177)*V(284) + A(197) = RCT(197)*V(65)*F(3) + A(198) = RCT(198)*V(65)*V(279) + A(199) = RCT(199)*V(65)*V(291) + A(200) = RCT(200)*V(274)*V(288) + A(201) = RCT(201)*V(263)*V(288) + A(202) = RCT(202)*V(272)*V(275) + A(203) = RCT(203)*V(272)*V(289) + A(204) = RCT(204)*V(197)*V(272) + A(205) = RCT(205)*V(52)*V(272) + A(206) = RCT(206)*V(149)*V(272) + A(207) = RCT(207)*V(100)*V(272) + A(208) = RCT(208)*V(71)*V(272) + A(209) = RCT(209)*V(77)*V(272) + A(210) = RCT(210)*V(84)*V(272) + A(211) = RCT(211)*V(53)*V(272) + A(212) = RCT(212)*V(54)*V(272) + A(213) = RCT(213)*V(59)*V(272) + A(214) = RCT(214)*V(47)*V(272) + A(215) = RCT(215)*V(82)*V(272) + A(216) = RCT(216)*V(83)*V(272) + A(217) = RCT(217)*V(81)*V(272) + A(218) = RCT(218)*V(55)*V(272) + A(219) = RCT(219)*V(56)*V(272) + A(220) = RCT(220)*V(57)*V(272) + A(221) = RCT(221)*V(48)*V(272) + A(222) = RCT(222)*V(197)*V(286) + A(223) = RCT(223)*V(266)*V(285) + A(224) = RCT(224)*V(285)*V(286) + A(225) = RCT(225)*V(285)*V(286) + A(226) = RCT(226)*V(111)*V(286) + A(227) = RCT(227)*V(75)*V(286) + A(228) = RCT(228)*V(275)*V(286) + A(229) = RCT(229)*V(271)*V(286) + A(230) = RCT(230)*V(235)*V(286) + A(231) = RCT(231)*V(262)*V(286) + A(232) = RCT(232)*V(149)*V(286) + A(233) = RCT(233)*V(72)*V(286) + A(234) = RCT(234)*V(78)*V(286) + A(235) = RCT(235)*V(43)*V(286) + A(236) = RCT(236)*V(84)*V(286) + A(237) = RCT(237)*V(82)*V(286) + A(238) = RCT(238)*V(83)*V(286) + A(239) = RCT(239)*V(81)*V(286) + A(240) = RCT(240)*V(190)*V(290) + A(241) = RCT(241)*V(263)*V(290) + A(242) = RCT(242)*V(282)*V(290) + A(243) = RCT(243)*V(290)*F(1) + A(244) = RCT(244)*V(212)*V(290) + A(245) = RCT(245)*V(284)*V(290) + A(246) = RCT(246)*V(284)*V(290) + A(247) = RCT(247)*V(285)*V(288) + A(248) = RCT(248)*V(284)*V(285) + A(249) = RCT(249)*V(279)*V(285) + A(250) = RCT(250)*V(285)*V(291) + A(251) = RCT(251)*V(285)*V(285) + A(252) = RCT(252)*V(285)*V(285) + A(253) = RCT(253)*V(285)*V(285) + A(254) = RCT(254)*V(290)*F(3) + A(255) = RCT(255)*V(103) + A(256) = RCT(256)*V(285)*V(285) + A(257) = RCT(257)*V(75) + A(258) = RCT(258)*V(103)*V(290) + A(259) = RCT(259)*V(274)*V(285) + A(260) = RCT(260)*V(274)*V(285) + A(261) = RCT(261)*V(274)*V(285) + A(262) = RCT(262)*V(262)*V(288) + A(263) = RCT(263)*V(262)*V(290) + A(264) = RCT(264)*V(149)*V(290) + A(265) = RCT(265)*V(72)*V(290) + A(266) = RCT(266)*V(78)*V(290) + A(267) = RCT(267)*V(211)*V(290) + A(268) = RCT(268)*V(266)*V(290) + A(269) = RCT(269)*V(137)*V(290) + A(270) = RCT(270)*V(161)*V(290) + A(271) = RCT(271)*V(217)*V(290) + A(272) = RCT(272)*V(239)*V(290) + A(273) = RCT(273)*V(218)*V(290) + A(274) = RCT(274)*V(133)*V(290) + A(275) = RCT(275)*V(219)*V(290) + A(276) = RCT(276)*V(124)*V(290) + A(277) = RCT(277)*V(124)*V(290) + A(278) = RCT(278)*V(221)*V(290) + A(279) = RCT(279)*V(224)*V(290) + A(280) = RCT(280)*V(114)*V(290) + A(281) = RCT(281)*V(253)*V(290) + A(282) = RCT(282)*V(253)*V(273) + A(283) = RCT(283)*V(269)*V(279) + A(284) = RCT(284)*V(60)*V(60) + A(285) = RCT(285)*V(269)*V(291) + A(286) = RCT(286)*V(203) + A(287) = RCT(287)*V(203)*V(203) + A(288) = RCT(288)*V(143)*V(281) + A(289) = RCT(289)*V(227)*V(291) + A(290) = RCT(290)*V(270) + A(291) = RCT(291)*V(269)*V(270) + A(292) = RCT(292)*V(269)*V(274) + A(293) = RCT(293)*V(227)*V(274) + A(294) = RCT(294)*V(92)*V(227) + A(295) = RCT(295)*V(92)*V(92) + A(296) = RCT(296)*V(42) + A(297) = RCT(297)*V(92)*V(279) + A(298) = RCT(298)*V(227)*V(285) + A(299) = RCT(299)*V(269)*V(282) + A(300) = RCT(300)*V(269)*V(284) + A(301) = RCT(301)*V(143)*V(286) + A(302) = RCT(302)*V(69)*V(286) + A(303) = RCT(303)*V(268)*V(286) + A(304) = RCT(304)*V(227)*V(284) + A(305) = RCT(305)*V(227)*V(279) + A(306) = RCT(306)*V(227)*V(227) + A(307) = RCT(307)*V(44) + A(308) = RCT(308)*V(46)*V(286) + A(309) = RCT(309)*V(208)*V(286) + A(310) = RCT(310)*V(198)*V(286) + A(311) = RCT(311)*V(234)*V(267) + A(312) = RCT(312)*V(234)*V(279) + A(313) = RCT(313)*V(234)*V(291) + A(314) = RCT(314)*V(234)*V(278) + A(315) = RCT(315)*V(234)*V(278)*V(278) + A(316) = RCT(316)*V(234)*V(282) + A(317) = RCT(317)*V(234)*V(276) + A(318) = RCT(318)*V(195)*V(267) + A(319) = RCT(319)*V(195)*V(279) + A(320) = RCT(320)*V(195)*V(291) + A(321) = RCT(321)*V(195)*V(276) + A(322) = RCT(322)*V(195)*V(278) + A(323) = RCT(323)*V(195)*V(278) + A(324) = RCT(324)*V(154)*V(286) + A(325) = RCT(325)*V(155)*V(286) + A(326) = RCT(326)*V(238)*V(279) + A(327) = RCT(327)*V(238)*V(284) + A(328) = RCT(328)*V(238)*V(266) + A(329) = RCT(329)*V(238)*V(261) + A(330) = RCT(330)*V(238)*V(281) + A(331) = RCT(331)*V(154)*V(282) + A(332) = RCT(332)*V(155)*V(282) + A(333) = RCT(333)*V(154)*V(281) + A(334) = RCT(334)*V(155)*V(281) + A(335) = RCT(335)*V(170)*V(286) + A(336) = RCT(336)*V(170)*V(282) + A(337) = RCT(337)*V(170)*V(281) + A(338) = RCT(338)*V(225)*V(279) + A(339) = RCT(339)*V(225)*V(284) + A(340) = RCT(340)*V(225)*V(266) + A(341) = RCT(341)*V(225)*V(261) + A(342) = RCT(342)*V(225)*V(281) + A(343) = RCT(343)*V(119)*V(286) + A(344) = RCT(344)*V(215)*V(279) + A(345) = RCT(345)*V(216)*V(279) + A(346) = RCT(346)*V(215)*V(284) + A(347) = RCT(347)*V(216)*V(284) + A(348) = RCT(348)*V(215)*V(266) + A(349) = RCT(349)*V(216)*V(266) + A(350) = RCT(350)*V(215)*V(261) + A(351) = RCT(351)*V(216)*V(261) + A(352) = RCT(352)*V(215)*V(281) + A(353) = RCT(353)*V(216)*V(281) + A(354) = RCT(354)*V(215)*V(215) + A(355) = RCT(355)*V(215)*V(216) + A(356) = RCT(356)*V(216)*V(216) + A(357) = RCT(357)*V(178)*V(286) + A(358) = RCT(358)*V(199)*V(286) + A(359) = RCT(359)*V(199)*V(282) + A(360) = RCT(360)*V(199)*V(281) + A(361) = RCT(361)*V(178)*V(281) + A(362) = RCT(362)*V(98) + A(363) = RCT(363)*V(45) + A(364) = RCT(364)*V(134)*V(286) + A(365) = RCT(365)*V(89)*V(286) + A(366) = RCT(366)*V(96)*V(286) + A(367) = RCT(367)*V(87)*V(286) + A(368) = RCT(368)*V(91)*V(286) + A(369) = RCT(369)*V(224)*V(282) + A(370) = RCT(370)*V(224)*V(286) + A(371) = RCT(371)*V(224)*V(286) + A(372) = RCT(372)*V(224)*V(286) + A(373) = RCT(373)*V(224)*V(286) + A(374) = RCT(374)*V(245)*V(284) + A(375) = RCT(375)*V(245)*V(284) + A(376) = RCT(376)*V(244)*V(284) + A(377) = RCT(377)*V(244)*V(284) + A(378) = RCT(378)*V(245) + A(379) = RCT(379)*V(245) + A(380) = RCT(380)*V(244) + A(381) = RCT(381)*V(244) + A(382) = RCT(382)*V(245)*V(245) + A(383) = RCT(383)*V(244)*V(244) + A(384) = RCT(384)*V(244)*V(245) + A(385) = RCT(385)*V(245)*V(245) + A(386) = RCT(386)*V(244)*V(244) + A(387) = RCT(387)*V(244)*V(245) + A(388) = RCT(388)*V(245)*V(266) + A(389) = RCT(389)*V(245)*V(266) + A(390) = RCT(390)*V(244)*V(266) + A(391) = RCT(391)*V(244)*V(266) + A(392) = RCT(392)*V(245)*V(279) + A(393) = RCT(393)*V(245)*V(279) + A(394) = RCT(394)*V(245)*V(279) + A(395) = RCT(395)*V(245)*V(279) + A(396) = RCT(396)*V(244)*V(279) + A(397) = RCT(397)*V(244)*V(279) + A(398) = RCT(398)*V(244)*V(279) + A(399) = RCT(399)*V(244)*V(279) + A(400) = RCT(400)*V(186)*V(286) + A(401) = RCT(401)*V(188)*V(286) + A(402) = RCT(402)*V(129)*V(286) + A(403) = RCT(403)*V(127)*V(286) + A(404) = RCT(404)*V(192)*V(286) + A(405) = RCT(405)*V(174)*V(286) + A(406) = RCT(406)*V(109)*V(286) + A(407) = RCT(407)*V(157)*V(286) + A(408) = RCT(408)*V(157)*V(286) + A(409) = RCT(409)*V(162)*V(286) + A(410) = RCT(410)*V(162)*V(286) + A(411) = RCT(411)*V(157)*V(286) + A(412) = RCT(412)*V(162)*V(286) + A(413) = RCT(413)*V(171)*V(286) + A(414) = RCT(414)*V(165)*V(286) + A(415) = RCT(415)*V(182) + A(416) = RCT(416)*V(182)*V(279) + A(417) = RCT(417)*V(182)*V(279) + A(418) = RCT(418)*V(182)*V(284) + A(419) = RCT(419)*V(183) + A(420) = RCT(420)*V(183)*V(279) + A(421) = RCT(421)*V(183)*V(279) + A(422) = RCT(422)*V(183)*V(284) + A(423) = RCT(423)*V(187) + A(424) = RCT(424)*V(187)*V(279) + A(425) = RCT(425)*V(187)*V(279) + A(426) = RCT(426)*V(187)*V(284) + A(427) = RCT(427)*V(116)*V(286) + A(428) = RCT(428)*V(130)*V(286) + A(429) = RCT(429)*V(130)*V(286) + A(430) = RCT(430)*V(131)*V(286) + A(431) = RCT(431)*V(131)*V(286) + A(432) = RCT(432)*V(228) + A(433) = RCT(433)*V(228) + A(434) = RCT(434)*V(228)*V(284) + A(435) = RCT(435)*V(228)*V(279) + A(436) = RCT(436)*V(228)*V(279) + A(437) = RCT(437)*V(229) + A(438) = RCT(438)*V(229) + A(439) = RCT(439)*V(229)*V(279) + A(440) = RCT(440)*V(229)*V(279) + A(441) = RCT(441)*V(229)*V(284) + A(442) = RCT(442)*V(194)*V(284) + A(443) = RCT(443)*V(194)*V(279) + A(444) = RCT(444)*V(194)*V(279) + A(445) = RCT(445)*V(194) + A(446) = RCT(446)*V(121)*V(279) + A(447) = RCT(447)*V(121)*V(284) + A(448) = RCT(448)*V(123)*V(279) + A(449) = RCT(449)*V(123)*V(284) + A(450) = RCT(450)*V(139)*V(286) + A(451) = RCT(451)*V(139)*V(286) + A(452) = RCT(452)*V(140)*V(286) + A(453) = RCT(453)*V(140)*V(286) + A(454) = RCT(454)*V(220)*V(286) + A(455) = RCT(455)*V(220)*V(286) + A(456) = RCT(456)*V(214)*V(286) + A(457) = RCT(457)*V(214)*V(286) + A(458) = RCT(458)*V(220)*V(286) + A(459) = RCT(459)*V(214)*V(286) + A(460) = RCT(460)*V(167) + A(461) = RCT(461)*V(167)*V(284) + A(462) = RCT(462)*V(167)*V(279) + A(463) = RCT(463)*V(167)*V(279) + A(464) = RCT(464)*V(152) + A(465) = RCT(465)*V(152)*V(284) + A(466) = RCT(466)*V(152)*V(279) + A(467) = RCT(467)*V(152)*V(279) + A(468) = RCT(468)*V(166) + A(469) = RCT(469)*V(168) + A(470) = RCT(470)*V(166)*V(284) + A(471) = RCT(471)*V(166)*V(279) + A(472) = RCT(472)*V(166)*V(279) + A(473) = RCT(473)*V(168)*V(284) + A(474) = RCT(474)*V(168)*V(279) + A(475) = RCT(475)*V(168)*V(279) + A(476) = RCT(476)*V(232)*V(284) + A(477) = RCT(477)*V(232)*V(279) + A(478) = RCT(478)*V(232)*V(279) + A(479) = RCT(479)*V(224)*V(281) + A(480) = RCT(480)*V(247)*V(284) + A(481) = RCT(481)*V(246)*V(284) + A(482) = RCT(482)*V(247)*V(247) + A(483) = RCT(483)*V(246)*V(247) + A(484) = RCT(484)*V(246)*V(246) + A(485) = RCT(485)*V(246)*V(266) + A(486) = RCT(486)*V(247)*V(266) + A(487) = RCT(487)*V(247)*V(261) + A(488) = RCT(488)*V(246)*V(261) + A(489) = RCT(489)*V(247)*V(281) + A(490) = RCT(490)*V(246)*V(281) + A(491) = RCT(491)*V(247)*V(279) + A(492) = RCT(492)*V(247)*V(279) + A(493) = RCT(493)*V(246)*V(279) + A(494) = RCT(494)*V(246)*V(279) + A(495) = RCT(495)*V(126)*F(3) + A(496) = RCT(496)*V(126) + A(497) = RCT(497)*V(181)*V(286) + A(498) = RCT(498)*V(151)*V(286) + A(499) = RCT(499)*V(181)*V(286) + A(500) = RCT(500)*V(151)*V(286) + A(501) = RCT(501)*V(151)*V(286) + A(502) = RCT(502)*V(181)*V(286) + A(503) = RCT(503)*V(151)*V(286) + A(504) = RCT(504)*V(151)*V(286) + A(505) = RCT(505)*V(189) + A(506) = RCT(506)*V(222) + A(507) = RCT(507)*V(222)*V(284) + A(508) = RCT(508)*V(189)*V(284) + A(509) = RCT(509)*V(222)*V(279) + A(510) = RCT(510)*V(222)*V(279) + A(511) = RCT(511)*V(189)*V(279) + A(512) = RCT(512)*V(189)*V(279) + A(513) = RCT(513)*V(240)*V(286) + A(514) = RCT(514)*V(240)*V(286) + A(515) = RCT(515)*V(150)*V(279) + A(516) = RCT(516)*V(150)*V(284) + A(517) = RCT(517)*V(243)*V(286) + A(518) = RCT(518)*V(146)*V(279) + A(519) = RCT(519)*V(146)*V(284) + A(520) = RCT(520)*V(248)*V(286) + A(521) = RCT(521)*V(248)*V(282) + A(522) = RCT(522)*V(251)*V(286) + A(523) = RCT(523)*V(251)*V(286) + A(524) = RCT(524)*V(251)*V(282) + A(525) = RCT(525)*V(251)*V(281) + A(526) = RCT(526)*V(241)*V(286) + A(527) = RCT(527)*V(230)*V(286) + A(528) = RCT(528)*V(231)*V(286) + A(529) = RCT(529)*V(200)*V(286) + A(530) = RCT(530)*V(175)*V(286) + A(531) = RCT(531)*V(144)*V(279) + A(532) = RCT(532)*V(144)*V(284) + A(533) = RCT(533)*V(144)*V(291) + A(534) = RCT(534)*V(145)*V(279) + A(535) = RCT(535)*V(145)*V(284) + A(536) = RCT(536)*V(145)*V(291) + A(537) = RCT(537)*V(163)*V(286) + A(538) = RCT(538)*V(156)*V(286) + A(539) = RCT(539)*V(117)*V(286) + A(540) = RCT(540)*V(185)*V(286) + A(541) = RCT(541)*V(169)*V(286) + A(542) = RCT(542)*V(132)*V(286) + A(543) = RCT(543)*V(204)*V(284) + A(544) = RCT(544)*V(204)*V(279) + A(545) = RCT(545)*V(204)*V(279) + A(546) = RCT(546)*V(205)*V(284) + A(547) = RCT(547)*V(207)*V(284) + A(548) = RCT(548)*V(136)*V(286) + A(549) = RCT(549)*V(205) + A(550) = RCT(550)*V(205)*V(279) + A(551) = RCT(551)*V(205)*V(279) + A(552) = RCT(552)*V(207)*V(279) + A(553) = RCT(553)*V(207)*V(291) + A(554) = RCT(554)*V(249)*V(284) + A(555) = RCT(555)*V(249)*V(279) + A(556) = RCT(556)*V(249)*V(291) + A(557) = RCT(557)*V(249)*V(281) + A(558) = RCT(558)*V(249)*V(266) + A(559) = RCT(559)*V(153) + A(560) = RCT(560)*V(153)*V(286) + A(561) = RCT(561)*V(105)*V(286) + A(562) = RCT(562)*V(206)*V(286) + A(563) = RCT(563)*V(125)*V(286) + A(564) = RCT(564)*V(141)*V(286) + A(565) = RCT(565)*V(164)*V(286) + A(566) = RCT(566)*V(213)*V(286) + A(567) = RCT(567)*V(242)*V(286) + A(568) = RCT(568)*V(208)*V(281) + A(569) = RCT(569)*V(104)*V(286) + A(570) = RCT(570)*V(85)*V(286) + A(571) = RCT(571)*V(261)*V(284) + A(572) = RCT(572)*V(172)*V(286) + A(573) = RCT(573)*V(172)*V(286) + A(574) = RCT(574)*V(19)*V(286) + A(575) = RCT(575)*V(18)*V(284) + A(576) = RCT(576)*V(18)*V(279) + A(577) = RCT(577)*V(76)*V(282) + A(578) = RCT(578)*V(76)*V(286) + A(579) = RCT(579)*V(58)*V(286) + A(580) = RCT(580)*V(179)*V(284) + A(581) = RCT(581)*V(179)*V(279) + A(582) = RCT(582)*V(179)*V(281) + A(583) = RCT(583)*V(179)*V(266) + A(584) = RCT(584)*V(108) + A(585) = RCT(585)*V(108)*F(3) + A(586) = RCT(586)*V(68)*V(286) + A(587) = RCT(587)*V(120)*V(286) + A(588) = RCT(588)*V(120)*V(286) + A(589) = RCT(589)*V(64)*V(286) + A(590) = RCT(590)*V(79)*V(286) + A(591) = RCT(591)*V(80)*V(286) + A(592) = RCT(592)*V(184)*V(284) + A(593) = RCT(593)*V(184)*V(279) + A(594) = RCT(594)*V(184)*V(281) + A(595) = RCT(595)*V(184)*V(266) + A(596) = RCT(596)*V(184)*V(261) + A(597) = RCT(597)*V(118)*V(286) + A(598) = RCT(598)*V(118)*V(281) + A(599) = RCT(599)*V(115)*V(286) + A(600) = RCT(600)*V(115)*V(281) + A(601) = RCT(601)*V(142)*V(286) + A(602) = RCT(602)*V(142)*V(282) + A(603) = RCT(603)*V(142)*V(281) + A(604) = RCT(604)*V(101)*V(286) + A(605) = RCT(605)*V(101)*V(281) + A(606) = RCT(606)*V(180)*V(284) + A(607) = RCT(607)*V(180)*V(279) + A(608) = RCT(608)*V(180)*V(291) + A(609) = RCT(609)*V(70)*V(286) + A(610) = RCT(610)*V(97) + A(611) = RCT(611)*V(97)*V(286) + A(612) = RCT(612)*V(191)*V(291) + A(613) = RCT(613)*V(191)*V(279) + A(614) = RCT(614)*V(191)*V(281) + A(615) = RCT(615)*V(191)*V(284) + A(616) = RCT(616)*V(107)*V(286) + A(617) = RCT(617)*V(160)*V(282) + A(618) = RCT(618)*V(160)*V(291) + A(619) = RCT(619)*V(210)*V(286) + A(620) = RCT(620)*V(210)*V(281) + A(621) = RCT(621)*V(191)*V(266) + A(622) = RCT(622)*V(180)*V(266) + A(623) = RCT(623)*V(159)*V(286) + A(624) = RCT(624)*V(159)*V(282) + A(625) = RCT(625)*V(159) + A(626) = RCT(626)*V(148)*V(286) + A(627) = RCT(627)*V(148)*V(282) + A(628) = RCT(628)*V(148) + A(629) = RCT(629)*V(13)*V(284) + A(630) = RCT(630)*V(13)*V(279) + A(631) = RCT(631)*V(22)*V(284) + A(632) = RCT(632)*V(22)*V(279) + A(633) = RCT(633)*V(27)*V(284) + A(634) = RCT(634)*V(27)*V(279) + A(635) = RCT(635)*V(266)*V(281) + A(636) = RCT(636)*V(41)*V(286) + A(637) = RCT(637)*V(284) + A(638) = RCT(638)*V(291) + A(639) = RCT(639)*V(281) + A(640) = RCT(640)*V(281) + A(641) = RCT(641)*V(281) + A(642) = RCT(642)*V(173)*V(278) + A(643) = RCT(643)*V(173)*V(275) + A(644) = RCT(644)*V(173) + A(645) = RCT(645)*V(173)*V(280) + A(646) = RCT(646)*V(173)*V(287) + A(647) = RCT(647)*V(280)*V(286) + A(648) = RCT(648)*V(286)*V(287) + A(649) = RCT(649)*V(176)*V(278) + A(650) = RCT(650)*V(176)*V(275) + A(651) = RCT(651)*V(262)*V(278) + A(652) = RCT(652)*V(262)*V(275) + A(653) = RCT(653)*V(262)*V(289) + A(654) = RCT(654)*V(262)*V(283) + A(655) = RCT(655)*V(262)*V(277) + A(656) = RCT(656)*V(262)*V(280) + A(657) = RCT(657)*V(262)*V(287) + A(658) = RCT(658)*V(235)*V(280) + A(659) = RCT(659)*V(235)*V(287) + A(660) = RCT(660)*V(235)*V(275) + A(661) = RCT(661)*V(235)*V(283) + A(662) = RCT(662)*V(235)*V(277) + A(663) = RCT(663)*V(235)*V(289) + A(664) = RCT(664)*V(271)*V(275) + A(665) = RCT(665)*V(271)*V(289) + A(666) = RCT(666)*V(271)*V(280) + A(667) = RCT(667)*V(271)*V(287) + A(668) = RCT(668)*V(271)*V(276) + A(669) = RCT(669)*V(260)*V(289) + A(670) = RCT(670)*V(260)*V(275) + A(671) = RCT(671)*V(260)*V(280) + A(672) = RCT(672)*V(260)*V(287) + A(673) = RCT(673)*V(260)*V(283) + A(674) = RCT(674)*V(260)*V(277) + A(675) = RCT(675)*V(260)*V(276) + A(676) = RCT(676)*V(282)*V(289) + A(677) = RCT(677)*V(282)*V(283) + A(678) = RCT(678)*V(277)*V(282) + A(679) = RCT(679)*V(289) + A(680) = RCT(680)*V(289) + A(681) = RCT(681)*V(69) + A(682) = RCT(682)*V(69) + A(683) = RCT(683)*V(69) + A(684) = RCT(684)*V(268) + A(685) = RCT(685)*V(268) + A(686) = RCT(686)*V(44) + A(687) = RCT(687)*V(44) + A(688) = RCT(688)*V(44) + A(689) = RCT(689)*V(49) + A(690) = RCT(690)*V(49) + A(691) = RCT(691)*V(49) + A(692) = RCT(692)*V(42) + A(693) = RCT(693)*V(42) + A(694) = RCT(694)*V(42) + A(695) = RCT(695)*V(203) + A(696) = RCT(696)*V(203) + A(697) = RCT(697)*V(270) + A(698) = RCT(698)*V(270) + A(699) = RCT(699)*V(270)*V(278) + A(700) = RCT(700)*V(203)*V(283) + A(701) = RCT(701)*V(203)*V(277) + A(702) = RCT(702)*V(203)*V(280) + A(703) = RCT(703)*V(203)*V(287) + A(704) = RCT(704)*V(270)*V(283) + A(705) = RCT(705)*V(270)*V(277) + A(706) = RCT(706)*V(270)*V(280) + A(707) = RCT(707)*V(270)*V(287) + A(708) = RCT(708)*V(268)*V(283) + A(709) = RCT(709)*V(268)*V(277) + A(710) = RCT(710)*V(268)*V(280) + A(711) = RCT(711)*V(268)*V(287) + A(712) = RCT(712)*V(223) + A(713) = RCT(713)*V(233) + A(714) = RCT(714)*V(130) + A(715) = RCT(715)*V(131) + A(716) = RCT(716)*V(116) + A(717) = RCT(717)*V(24) + A(718) = RCT(718)*V(241) + A(719) = RCT(719)*V(202) + A(720) = RCT(720)*V(178) + A(721) = RCT(721)*V(199) + A(722) = RCT(722)*V(134) + A(723) = RCT(723)*V(104) + A(724) = RCT(724)*V(105) + A(725) = RCT(725)*V(220) + A(726) = RCT(726)*V(139) + A(727) = RCT(727)*V(140) + A(728) = RCT(728)*V(214) + A(729) = RCT(729)*V(174) + A(730) = RCT(730)*V(151) + A(731) = RCT(731)*V(181) + A(732) = RCT(732)*V(243) + A(733) = RCT(733)*V(213) + A(734) = RCT(734)*V(242) + A(735) = RCT(735)*V(175) + A(736) = RCT(736)*V(200) + A(737) = RCT(737)*V(210) + A(738) = RCT(738)*V(282) + A(739) = RCT(739)*V(282) + A(740) = RCT(740)*F(3) + A(741) = RCT(741)*V(291) + A(742) = RCT(742)*V(212) + A(743) = RCT(743)*V(137) + A(744) = RCT(744)*V(263) + A(745) = RCT(745)*V(263) + A(746) = RCT(746)*V(265) + A(747) = RCT(747)*V(193) + A(748) = RCT(748)*V(102) + A(749) = RCT(749)*V(102) + A(750) = RCT(750)*V(281) + A(751) = RCT(751)*V(281) + A(752) = RCT(752)*V(173) + A(753) = RCT(753)*V(264) + A(754) = RCT(754)*V(264) + A(755) = RCT(755)*V(67) + A(756) = RCT(756)*V(259) + A(757) = RCT(757)*V(221) + A(758) = RCT(758)*V(221) + A(759) = RCT(759)*V(226) + A(760) = RCT(760)*V(236) + A(761) = RCT(761)*V(223) + A(762) = RCT(762)*V(223) + A(763) = RCT(763)*V(223) + A(764) = RCT(764)*V(233) + A(765) = RCT(765)*V(248) + A(766) = RCT(766)*V(248) + A(767) = RCT(767)*V(248) + A(768) = RCT(768)*V(251) + A(769) = RCT(769)*V(250) + A(770) = RCT(770)*V(113) + A(771) = RCT(771)*V(110) + A(772) = RCT(772)*V(94) + A(773) = RCT(773)*V(95) + A(774) = RCT(774)*V(93) + A(775) = RCT(775)*V(112) + A(776) = RCT(776)*V(106) + A(777) = RCT(777)*V(202) + A(778) = RCT(778)*V(88) + A(779) = RCT(779)*V(128) + A(780) = RCT(780)*V(274) + A(781) = RCT(781)*V(260) + A(782) = RCT(782)*V(176) + A(783) = RCT(783)*V(176) + A(784) = RCT(784)*V(51) + A(785) = RCT(785)*V(77) + A(786) = RCT(786)*V(71) + A(787) = RCT(787)*V(100) + A(788) = RCT(788)*V(149) + A(789) = RCT(789)*V(72) + A(790) = RCT(790)*V(135) + A(791) = RCT(791)*V(197) + A(792) = RCT(792)*V(285) + A(793) = RCT(793)*V(111) + A(794) = RCT(794)*V(75) + A(795) = RCT(795)*V(235) + A(796) = RCT(796)*V(262) + A(797) = RCT(797)*V(262) + A(798) = RCT(798)*V(271) + A(799) = RCT(799)*V(43) + A(800) = RCT(800)*V(52) + A(801) = RCT(801)*V(53) + A(802) = RCT(802)*V(54) + A(803) = RCT(803)*V(55) + A(804) = RCT(804)*V(56) + A(805) = RCT(805)*V(57) + A(806) = RCT(806)*V(81) + A(807) = RCT(807)*V(82) + A(808) = RCT(808)*V(83) + A(809) = RCT(809)*V(84) + A(810) = RCT(810)*V(47) + A(811) = RCT(811)*V(59) + A(812) = RCT(812)*V(48) + A(813) = RCT(813)*V(103) + A(814) = RCT(814)*V(143) + A(815) = RCT(815)*V(268) + A(816) = RCT(816)*V(227) + A(817) = RCT(817)*V(92) + A(818) = RCT(818)*V(60) + A(819) = RCT(819)*V(203) + A(820) = RCT(820)*V(270) + A(821) = RCT(821)*V(44) + A(822) = RCT(822)*V(46) + A(823) = RCT(823)*V(1) + A(824) = RCT(824)*V(3) + A(825) = RCT(825)*V(2) + A(826) = RCT(826)*V(42) + A(827) = RCT(827)*V(49) + A(828) = RCT(828)*V(73) + A(829) = RCT(829)*V(99) + A(830) = RCT(830)*V(74) + A(831) = RCT(831)*V(74) + A(832) = RCT(832)*V(196) + A(833) = RCT(833)*V(61) + A(834) = RCT(834)*V(66) + A(835) = RCT(835)*V(122) + A(836) = RCT(836)*V(279) + A(837) = RCT(837)*V(119) + A(838) = RCT(838)*V(208) + A(839) = RCT(839)*V(178) + A(840) = RCT(840)*V(199) + A(841) = RCT(841)*V(134) + A(842) = RCT(842)*V(63) + A(843) = RCT(843)*V(63) + A(844) = RCT(844)*V(62) + A(845) = RCT(845)*V(62) + A(846) = RCT(846)*V(89) + A(847) = RCT(847)*V(96) + A(848) = RCT(848)*V(87) + A(849) = RCT(849)*V(91) + A(850) = RCT(850)*V(85) + A(851) = RCT(851)*V(172) + A(852) = RCT(852)*V(104) + A(853) = RCT(853)*V(198) + A(854) = RCT(854)*V(169) + A(855) = RCT(855)*V(185) + A(856) = RCT(856)*V(230) + A(857) = RCT(857)*V(156) + A(858) = RCT(858)*V(163) + A(859) = RCT(859)*V(231) + A(860) = RCT(860)*V(136) + A(861) = RCT(861)*V(241) + A(862) = RCT(862)*V(200) + A(863) = RCT(863)*V(175) + A(864) = RCT(864)*V(157) + A(865) = RCT(865)*V(162) + A(866) = RCT(866)*V(171) + A(867) = RCT(867)*V(165) + A(868) = RCT(868)*V(186) + A(869) = RCT(869)*V(188) + A(870) = RCT(870)*V(129) + A(871) = RCT(871)*V(127) + A(872) = RCT(872)*V(220) + A(873) = RCT(873)*V(139) + A(874) = RCT(874)*V(140) + A(875) = RCT(875)*V(214) + A(876) = RCT(876)*V(181) + A(877) = RCT(877)*V(151) + A(878) = RCT(878)*V(151) + A(879) = RCT(879)*V(240) + A(880) = RCT(880)*V(243) + A(881) = RCT(881)*V(206) + A(882) = RCT(882)*V(206) + A(883) = RCT(883)*V(141) + A(884) = RCT(884)*V(164) + A(885) = RCT(885)*V(125) + A(886) = RCT(886)*V(242) + A(887) = RCT(887)*V(242) + A(888) = RCT(888)*V(213) + A(889) = RCT(889)*V(213) + A(890) = RCT(890)*V(120) + A(891) = RCT(891)*V(101) + A(892) = RCT(892)*V(70) + A(893) = RCT(893)*V(107) + A(894) = RCT(894)*V(210) !### KPP 2.3.0_gc, Bob Yantosca (11 Feb 2021) @@ -5182,484 +5155,497 @@ SUBROUTINE Fun_SPLITF ( V, F, RCT, P_VAR, D_VAR, Aout ) P_VAR(1) = 0 P_VAR(2) = 0 P_VAR(3) = 0 - P_VAR(4) = A(707)+2*A(710)+2*A(713)+2*A(716) - P_VAR(5) = A(757) - P_VAR(6) = A(24)+A(49)+A(57)+A(78)+0.361*A(116)+0.5*A(124)+A(208)+A(289)+A(297)+A(336)+0.407*A(396)+0.355*A(431)& - &+A(473)+A(474)+A(475)+A(476)+0.33*A(542)+0.33*A(543)+0.23*A(555)+0.75*A(557)+0.097*A(564)+0.5*A(574)+0.415& - &*A(575)+A(579)+0.5*A(581)+A(582)+A(584)+0.7*A(585)+A(592)+A(596)+0.5*A(598)+0.35*A(633)+A(634)+A(638)+A(649)& - &+A(872)+1.238*A(880)+A(912)+A(914) - P_VAR(7) = A(389)+A(390) - P_VAR(8) = A(708)+2*A(711)+2*A(714)+2*A(717) - P_VAR(9) = A(709)+2*A(712)+2*A(715)+2*A(718) - P_VAR(10) = A(656) - P_VAR(11) = A(657) - P_VAR(12) = A(616) - P_VAR(13) = A(397)+A(398)+A(399)+A(400) - P_VAR(14) = A(506) - P_VAR(15) = A(602) - P_VAR(16) = A(603) - P_VAR(17) = A(601) - P_VAR(18) = 0 - P_VAR(19) = A(658) - P_VAR(20) = A(659) - P_VAR(21) = A(617) - P_VAR(22) = A(737) - P_VAR(23) = 0.005*A(434)+0.005*A(435)+0.005*A(436)+0.005*A(437)+0.005*A(438)+0.005*A(439)+0.005*A(440)+0.005*A(441) - P_VAR(24) = A(660) - P_VAR(25) = A(661) - P_VAR(26) = A(618) - P_VAR(27) = 0.25*A(165) - P_VAR(28) = A(4) - P_VAR(29) = A(732)+A(733)+A(743) - P_VAR(30) = A(734)+A(735)+A(736)+A(744)+A(749) - P_VAR(31) = A(18)+A(22)+A(26)+A(38)+A(40)+A(57)+A(59)+A(61)+A(64)+A(66)+A(68)+A(69)+A(70)+A(71)+A(72)+A(73)+A(75)& - &+A(82)+0.15*A(113)+A(176)+A(217)+A(219)+A(220)+A(243)+A(251)+A(252)+A(267)+2*A(280)+A(290)+A(293)+A(294)& - &+A(326)+A(339)+A(340)+A(346)+A(347)+A(353)+A(365)+A(371)+A(372)+A(389)+A(390)+A(391)+A(392)+A(393)+A(394)& - &+A(395)+A(419)+A(420)+A(421)+A(422)+A(423)+A(424)+A(425)+A(426)+A(443)+A(444)+A(447)+A(448)+A(451)+A(452)& - &+A(462)+A(463)+A(466)+A(467)+A(470)+A(471)+A(473)+A(475)+A(489)+A(490)+A(493)+A(494)+A(498)+A(499)+A(501)& - &+A(502)+A(504)+A(505)+A(518)+A(519)+A(520)+A(521)+A(536)+A(537)+A(538)+A(539)+A(542)+A(545)+0.69*A(553)& - &+A(558)+A(561)+A(571)+0.438*A(572)+0.13*A(574)+A(577)+A(578)+A(579)+0.13*A(581)+A(582)+A(587)+0.02*A(594)& - &+0.13*A(598)+0.995*A(608)+A(613)+A(620)+0.15*A(633)+A(634)+A(637)+A(638)+A(639)+A(640)+A(646)+2*A(760)& - &+A(768)+0.3*A(775)+A(850)+A(853)+A(856)+A(863)+A(865)+A(866)+A(867)+A(868)+A(869)+0.01*A(900) - P_VAR(32) = A(1)+A(3)+A(4)+A(6)+A(8)+A(14)+A(15)+A(17)+A(44)+A(46)+2*A(51)+A(52)+A(54)+A(76)+A(83)+A(96)+A(115)+A(118)& - &+A(121)+A(122)+A(140)+2*A(161)+A(166)+2*A(172)+2*A(173)+A(177)+A(178)+A(179)+A(191)+A(194)+A(195)+A(196)& - &+A(197)+A(198)+A(199)+2*A(201)+A(203)+A(204)+2*A(205)+A(207)+2*A(209)+2*A(210)+A(213)+A(215)+2*A(222)& - &+A(223)+0.67*A(224)+0.65*A(225)+0.56*A(228)+0.17*A(231)+A(244)+A(245)+A(246)+A(247)+A(248)+2*A(268)+2& - &*A(272)+2*A(273)+2*A(282)+2*A(283)+2*A(315)+2*A(322)+2*A(323)+A(343)+A(357)+A(358)+A(359)+A(360)+A(361)& - &+A(363)+A(364)+A(369)+A(379)+A(380)+A(386)+2*A(387)+2*A(388)+A(396)+A(506)+0.001*A(511)+A(516)+A(517)& - &+A(548)+A(551)+A(552)+A(584)+A(595)+A(604)+A(609)+A(621)+1.258*A(625)+1.5*A(627)+A(629)+1.5*A(630)+A(632)& - &+A(635)+A(641)+A(644)+A(645)+A(651)+A(654)+A(662)+0.5*A(664)+A(665)+2*A(666)+2*A(667)+A(668)+A(669)+A(670)& - &+A(671)+A(672)+A(676)+A(678)+A(679)+A(680)+A(681)+A(682)+A(683)+A(684)+A(685)+A(686)+A(687)+A(688)+A(689)& - &+A(690)+A(691)+A(692)+A(693)+A(694)+A(695)+A(696)+A(697)+A(698)+A(699)+A(700)+A(701)+2*A(710)+2*A(711)+2& - &*A(712)+3*A(713)+3*A(714)+3*A(715)+4*A(716)+4*A(717)+4*A(718)+A(720)+A(721)+A(722)+A(723)+A(724)+A(725)& - &+A(726)+A(727)+A(728)+A(729)+A(730)+A(731)+A(738)+A(739)+A(740)+A(741)+A(742)+A(745)+A(746)+A(747)+A(748)& - &+A(750)+A(751)+2*A(752)+A(753)+A(754)+A(755)+A(756)+2*A(771)+A(801)+2*A(814)+A(818)+A(835)+2*A(837) - P_VAR(33) = A(36)+A(52)+0.05*A(53)+0.56*A(115)+0.505*A(116)+A(117)+2*A(119)+A(120)+2*A(121)+A(122)+0.5*A(124)+A(181)& - &+A(207)+A(223)+A(262)+A(286)+A(287)+A(288)+0.14*A(358)+0.14*A(359)+0.14*A(363)+0.407*A(396)+0.6*A(399)+0.9& - &*A(400)+0.6*A(406)+0.9*A(408)+A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.55*A(422)+0.55*A(426)+0.45& - &*A(427)+0.37*A(428)+0.42*A(429)+0.23*A(430)+0.638*A(431)+1.5*A(432)+A(433)+0.25*A(438)+0.33*A(439)+0.036& - &*A(440)+0.054*A(441)+A(460)+0.13*A(461)+0.2*A(462)+A(465)+0.2*A(466)+0.13*A(468)+0.52*A(469)+0.8*A(471)+2& - &*A(472)+0.6*A(485)+0.6*A(486)+0.539*A(541)+0.33*A(542)+0.33*A(543)+0.18*A(548)+0.036*A(549)+0.12*A(551)& - &+0.68*A(552)+0.77*A(555)+0.25*A(557)+0.75*A(564)+A(565)+2*A(568)+0.84*A(569)+0.507*A(573)+0.325*A(574)& - &+0.488*A(575)+A(576)+0.86*A(577)+0.65*A(579)+0.25*A(587)+A(589)+0.888*A(590)+A(593)+A(599)+0.364*A(606)+0.2& - &*A(616)+0.27*A(617)+0.3*A(618)+0.25*A(650)+0.5*A(651)+0.25*A(653)+0.5*A(654)+A(764)+A(765)+0.88*A(773)& - &+A(774)+A(776)+A(778)+A(780)+2*A(781)+2*A(782)+A(783)+A(784)+A(785)+A(786)+A(788)+A(854)+A(858)+A(871)& - &+A(874)+0.5*A(875)+0.571*A(877)+0.875*A(878)+0.77*A(879)+A(882)+A(883)+0.888*A(888)+0.818*A(889)+A(890)& - &+A(891)+0.55*A(892)+0.55*A(895)+0.839*A(899)+A(901)+0.122*A(902)+A(905)+A(909)+A(911)+A(914) - P_VAR(34) = A(24)+A(338)+A(345) - P_VAR(35) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(167)+A(344)+A(348)+A(694)+A(701) - P_VAR(36) = A(25)+A(197)+A(198)+A(199)+A(261) - P_VAR(37) = A(19)+A(23)+0.06*A(341)+0.06*A(342)+A(349)+0.02*A(358)+0.02*A(359)+0.02*A(363)+0.013*A(396)+0.045*A(548) - P_VAR(38) = A(318) - P_VAR(39) = 0 - P_VAR(40) = A(332) - P_VAR(41) = A(740)+A(741)+A(742) - P_VAR(42) = 0.25*A(240) + P_VAR(4) = A(681)+2*A(686)+2*A(689)+2*A(692) + P_VAR(5) = A(737) + P_VAR(6) = A(636) + P_VAR(7) = A(24)+A(47)+A(55)+A(76)+A(80)+0.3*A(97)+0.43*A(109)+0.1*A(111)+0.361*A(112)+0.5*A(120)+0.22*A(129)+2*A(131)& + &+0.9*A(132)+0.9*A(133)+0.9*A(134)+0.9*A(135)+0.9*A(136)+0.645*A(137)+0.9*A(138)+0.9*A(139)+0.9*A(140)+0.9& + &*A(141)+0.9*A(142)+2*A(143)+A(144)+A(188)+A(267)+A(275)+A(309)+A(311)+A(318)+A(329)+A(350)+0.407*A(369)& + &+0.355*A(404)+A(446)+A(447)+A(448)+A(449)+A(487)+A(488)+0.429*A(515)+0.429*A(516)+0.23*A(528)+0.75*A(530)& + &+0.097*A(537)+0.5*A(547)+0.41*A(548)+A(552)+0.5*A(554)+A(555)+A(557)+0.7*A(558)+A(565)+A(569)+0.5*A(571)& + &+A(596)+0.35*A(606)+A(607)+A(611)+A(622)+0.3*A(755)+A(778)+A(852)+1.238*A(860)+A(892)+A(894) + P_VAR(8) = A(362)+A(363) + P_VAR(9) = A(682)+A(684)+2*A(687)+2*A(690)+2*A(693)+A(695)+A(697) + P_VAR(10) = A(683)+A(685)+2*A(688)+2*A(691)+2*A(694)+A(696)+A(698) + P_VAR(11) = A(629) + P_VAR(12) = A(630) + P_VAR(13) = A(589) + P_VAR(14) = A(370)+A(371)+A(372)+A(373) + P_VAR(15) = A(479) + P_VAR(16) = A(575) + P_VAR(17) = A(576) + P_VAR(18) = A(574) + P_VAR(19) = 0 + P_VAR(20) = A(631) + P_VAR(21) = A(632) + P_VAR(22) = A(590) + P_VAR(23) = A(717) + P_VAR(24) = 0.005*A(407)+0.005*A(408)+0.005*A(409)+0.005*A(410)+0.005*A(411)+0.005*A(412)+0.005*A(413)+0.005*A(414) + P_VAR(25) = A(633) + P_VAR(26) = A(634) + P_VAR(27) = A(591) + P_VAR(28) = 0.25*A(149) + P_VAR(29) = A(4) + P_VAR(30) = A(712)+1.5*A(713)+1.5*A(723) + P_VAR(31) = A(714)+A(715)+A(716)+0.8*A(724)+A(729) + P_VAR(32) = A(151)+A(317)+A(321) + P_VAR(33) = A(7)+A(8)+A(9)+2*A(12) + P_VAR(34) = A(18)+A(22)+A(26)+A(36)+A(38)+A(55)+A(57)+A(59)+A(62)+A(64)+A(66)+A(67)+A(68)+A(69)+A(70)+A(71)+A(73)& + &+A(80)+0.15*A(109)+A(160)+0.02*A(196)+A(197)+A(198)+A(222)+A(230)+A(231)+A(246)+0.1*A(258)+A(268)+A(271)& + &+A(272)+A(301)+A(312)+A(313)+A(319)+A(320)+A(326)+A(338)+A(344)+A(345)+A(362)+A(363)+A(364)+A(365)+A(366)& + &+A(367)+A(368)+A(392)+A(393)+A(394)+A(395)+A(396)+A(397)+A(398)+A(399)+A(416)+A(417)+A(420)+A(421)+A(424)& + &+A(425)+A(435)+A(436)+A(439)+A(440)+A(443)+A(444)+A(446)+A(448)+A(462)+A(463)+A(466)+A(467)+A(471)+A(472)& + &+A(474)+A(475)+A(477)+A(478)+A(491)+A(492)+A(493)+A(494)+A(509)+A(510)+A(511)+A(512)+A(515)+A(518)+0.69& + &*A(526)+A(531)+A(534)+A(544)+A(545)+0.13*A(547)+A(550)+A(551)+A(552)+0.13*A(554)+A(555)+A(560)+0.13*A(571)& + &+0.995*A(581)+A(586)+A(593)+0.15*A(606)+A(607)+A(610)+A(611)+A(612)+A(613)+A(619)+2*A(740)+A(748)+0.3& + &*A(755)+A(830)+A(833)+A(836)+A(846)+A(847)+A(848)+A(849) + P_VAR(35) = A(1)+A(4)+A(8)+A(14)+A(15)+A(17)+A(42)+A(44)+2*A(49)+A(50)+A(52)+A(74)+A(81)+A(94)+A(111)+A(114)+A(117)& + &+A(118)+A(130)+2*A(145)+A(150)+2*A(156)+2*A(157)+A(161)+A(162)+A(163)+A(175)+A(178)+A(179)+A(180)+2*A(182)& + &+A(184)+A(185)+A(186)+A(187)+2*A(189)+2*A(190)+A(193)+A(195)+2*A(200)+A(201)+0.66*A(202)+0.6*A(203)+0.44& + &*A(206)+0.56*A(207)+0.19*A(210)+0.1*A(218)+0.05*A(219)+A(223)+A(224)+A(225)+A(226)+A(227)+2*A(247)+2*A(251)& + &+2*A(252)+2*A(260)+2*A(261)+0.4*A(293)+0.88*A(298)+A(316)+A(330)+A(331)+A(332)+A(333)+A(334)+A(336)+A(337)& + &+A(342)+A(352)+A(353)+A(359)+2*A(360)+2*A(361)+A(369)+A(479)+A(489)+A(490)+A(521)+A(524)+A(525)+A(557)& + &+A(568)+A(577)+A(582)+A(594)+1.258*A(598)+1.5*A(600)+A(602)+1.5*A(603)+A(605)+A(608)+A(614)+A(617)+A(618)& + &+A(624)+A(627)+A(635)+0.5*A(638)+A(639)+A(640)+A(641)+A(642)+A(643)+A(644)+A(645)+A(646)+A(650)+A(652)& + &+A(653)+A(654)+A(655)+A(656)+A(657)+A(658)+A(659)+A(660)+A(661)+A(662)+A(663)+A(664)+A(665)+A(666)+A(667)& + &+A(668)+A(669)+A(670)+A(671)+A(672)+A(673)+A(674)+A(675)+A(684)+A(685)+2*A(686)+2*A(687)+2*A(688)+3*A(689)& + &+3*A(690)+3*A(691)+4*A(692)+4*A(693)+4*A(694)+A(695)+A(696)+A(697)+A(698)+A(700)+A(701)+A(702)+A(703)& + &+A(704)+A(705)+A(706)+A(707)+A(708)+A(709)+A(710)+A(711)+A(718)+A(719)+A(720)+A(721)+A(722)+A(725)+A(726)& + &+A(727)+A(728)+A(730)+A(731)+2*A(732)+A(733)+A(734)+A(735)+A(736)+2*A(751)+A(781)+2*A(794)+A(798)+A(815)+2& + &*A(817)+A(842)+A(844) + P_VAR(36) = A(34)+A(50)+0.05*A(51)+0.56*A(111)+0.505*A(112)+A(113)+2*A(115)+A(116)+2*A(117)+A(118)+0.5*A(120)+A(165)& + &+A(187)+A(201)+A(241)+A(264)+A(265)+A(266)+0.14*A(331)+0.14*A(332)+0.14*A(336)+0.407*A(369)+0.6*A(372)+0.9& + &*A(373)+0.6*A(379)+0.9*A(381)+A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)+0.55*A(395)+0.55*A(399)+0.45& + &*A(400)+0.37*A(401)+0.42*A(402)+0.23*A(403)+0.638*A(404)+1.5*A(405)+A(406)+0.25*A(411)+0.33*A(412)+0.036& + &*A(413)+0.054*A(414)+A(433)+0.13*A(434)+0.2*A(435)+A(438)+0.2*A(439)+0.13*A(441)+0.52*A(442)+0.8*A(444)+2& + &*A(445)+0.6*A(458)+0.6*A(459)+0.539*A(514)+0.33*A(515)+0.33*A(516)+0.28*A(521)+0.036*A(522)+0.12*A(524)& + &+0.68*A(525)+0.77*A(528)+0.25*A(530)+0.75*A(537)+A(538)+A(540)+2*A(541)+0.84*A(542)+0.507*A(546)+0.325& + &*A(547)+0.488*A(548)+A(549)+0.86*A(550)+0.65*A(552)+0.25*A(560)+A(561)+A(562)+0.888*A(563)+A(566)+A(572)& + &+0.364*A(579)+0.2*A(589)+0.27*A(590)+0.3*A(591)+0.15*A(619)+0.15*A(620)+0.26*A(623)+0.5*A(624)+0.25*A(626)& + &+0.5*A(627)+0.05*A(628)+A(744)+A(745)+0.88*A(753)+A(754)+A(756)+A(758)+A(760)+2*A(761)+2*A(762)+A(763)& + &+A(764)+A(765)+A(766)+A(768)+A(834)+A(838)+A(851)+A(854)+0.5*A(855)+0.571*A(857)+0.875*A(858)+0.77*A(859)& + &+A(862)+A(863)+0.888*A(868)+0.818*A(869)+A(870)+A(871)+0.55*A(872)+0.55*A(875)+0.839*A(879)+A(881)+0.163& + &*A(882)+A(885)+A(889)+A(891)+A(894) + P_VAR(37) = A(24)+A(311)+A(318) + P_VAR(38) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(151)+A(317)+A(321)+A(668)+A(675) + P_VAR(39) = A(25)+A(180)+A(240) + P_VAR(40) = A(19)+A(23)+0.06*A(314)+0.06*A(315)+A(322)+0.02*A(331)+0.02*A(332)+0.02*A(336)+0.013*A(369)+0.045*A(521) + P_VAR(41) = 0 + P_VAR(42) = A(295) P_VAR(43) = 0 - P_VAR(44) = 0.59*A(235) - P_VAR(45) = 0.25*A(242) - P_VAR(46) = 0.7*A(241) - P_VAR(47) = A(317) - P_VAR(48) = 0.25*A(239) - P_VAR(49) = A(80) - P_VAR(50) = A(186) - P_VAR(51) = 0.14*A(227) - P_VAR(52) = 0.12*A(232) - P_VAR(53) = 0.14*A(233) - P_VAR(54) = 0 - P_VAR(55) = 0.36*A(234) - P_VAR(56) = A(305) - P_VAR(57) = A(221) - P_VAR(58) = A(3)+A(666) - P_VAR(59) = A(6)+A(667) - P_VAR(60) = 0 - P_VAR(61) = A(856) - P_VAR(62) = 0 - P_VAR(63) = A(55) - P_VAR(64) = 0.005*A(608) - P_VAR(65) = A(325) - P_VAR(66) = 0.37*A(598) - P_VAR(67) = 0.65*A(633) - P_VAR(68) = 0 - P_VAR(69) = A(720)+A(721)+A(724)+A(725)+A(728)+A(729) - P_VAR(70) = 0.05*A(229) - P_VAR(71) = A(162) - P_VAR(72) = A(277) - P_VAR(73) = 0 - P_VAR(74) = 0.32*A(230) - P_VAR(75) = 0 + P_VAR(44) = 0.6*A(306) + P_VAR(45) = A(720)+A(721)+A(722) + P_VAR(46) = 0 + P_VAR(47) = 0.55*A(214) + P_VAR(48) = 0.25*A(221) + P_VAR(49) = A(294) + P_VAR(50) = A(78) + P_VAR(51) = A(170) + P_VAR(52) = 0.21*A(205) + P_VAR(53) = 0.1*A(211) + P_VAR(54) = 0.14*A(212) + P_VAR(55) = 0.1*A(218) + P_VAR(56) = 0.1*A(219) + P_VAR(57) = 0.14*A(220) + P_VAR(58) = 0 + P_VAR(59) = 0.35*A(213) + P_VAR(60) = A(283) + P_VAR(61) = A(199) + P_VAR(62) = A(3)+A(640) + P_VAR(63) = A(6)+A(641) + P_VAR(64) = 0 + P_VAR(65) = A(836) + P_VAR(66) = 0 + P_VAR(67) = A(53) + P_VAR(68) = 0.005*A(581) + P_VAR(69) = A(300) + P_VAR(70) = 0.65*A(606) + P_VAR(71) = 0.05*A(208) + P_VAR(72) = 0 + P_VAR(73) = A(700)+A(701)+A(704)+A(705)+A(708)+A(709) + P_VAR(74) = A(146) + P_VAR(75) = A(256) P_VAR(76) = 0 - P_VAR(77) = 0 - P_VAR(78) = 0.21*A(238) - P_VAR(79) = 0.31*A(236) - P_VAR(80) = 0.26*A(237) - P_VAR(81) = 0.28*A(231) - P_VAR(82) = 0 - P_VAR(83) = 0.73*A(341)+0.4*A(342) - P_VAR(84) = 0.098*A(575)+0.75*A(587) - P_VAR(85) = A(10) - P_VAR(86) = A(74) - P_VAR(87) = A(27) - P_VAR(88) = A(60) - P_VAR(89) = A(65) - P_VAR(90) = A(316)+2*A(319)+A(331)+A(334)+A(841)+2*A(846)+A(847) - P_VAR(91) = A(87) - P_VAR(92) = A(111) - P_VAR(93) = A(91) - P_VAR(94) = 0.41*A(113) - P_VAR(95) = A(635) - P_VAR(96) = A(738)+A(739)+A(745)+A(746)+A(747)+A(748)+A(750)+A(751)+A(752)+A(753)+A(754)+A(755)+A(756) - P_VAR(97) = 0 - P_VAR(98) = A(323)+A(722)+A(723)+A(726)+A(727)+A(730)+A(731) - P_VAR(99) = 0.06*A(617)+0.06*A(618) + P_VAR(77) = 0.3*A(209) + P_VAR(78) = 0 + P_VAR(79) = 0 + P_VAR(80) = 0 + P_VAR(81) = 0.21*A(217) + P_VAR(82) = 0.31*A(215) + P_VAR(83) = 0.35*A(216) + P_VAR(84) = 0.25*A(210) + P_VAR(85) = 0.73*A(314)+0.4*A(315) + P_VAR(86) = A(10) + P_VAR(87) = A(72) + P_VAR(88) = 0.37*A(571) + P_VAR(89) = A(27) + P_VAR(90) = 0 + P_VAR(91) = A(63) + P_VAR(92) = 0.8*A(293)+2*A(296)+0.4*A(306)+0.996*A(307)+A(821)+2*A(826)+A(827) + P_VAR(93) = A(85) + P_VAR(94) = A(107) + P_VAR(95) = A(89) + P_VAR(96) = A(58) + P_VAR(97) = A(608) + P_VAR(98) = A(718)+A(719)+A(725)+A(726)+A(727)+A(728)+A(730)+A(731)+A(732)+A(733)+A(734)+A(735)+A(736) + P_VAR(99) = 0.191*A(298)+A(702)+A(703)+A(706)+A(707)+A(710)+A(711) P_VAR(100) = 0 - P_VAR(101) = A(41) - P_VAR(102) = 0.995*A(608)+A(609)+0.6*A(610)+A(910) - P_VAR(103) = A(244)+A(248)+A(273)+A(275)+A(282)+A(814) - P_VAR(104) = 0.075*A(548)+0.241*A(553)+0.653*A(564)+0.75*A(878) - P_VAR(105) = 0.15*A(633)+A(638)+A(642) - P_VAR(106) = 0.15*A(427)+0.15*A(428)+0.112*A(888)+0.182*A(889)+0.161*A(899) - P_VAR(107) = A(274)+A(281)+A(321) - P_VAR(108) = A(109)+A(110) - P_VAR(109) = 0.19*A(617)+0.15*A(618) - P_VAR(110) = A(112) - P_VAR(111) = A(92) - P_VAR(112) = 0 - P_VAR(113) = A(607)+0.2*A(610) - P_VAR(114) = 0.255*A(440)+0.595*A(441)+A(481)+A(483) - P_VAR(115) = A(460)+0.13*A(461)+0.2*A(462)+0.35*A(589)+0.35*A(901) - P_VAR(116) = 0.315*A(428) - P_VAR(117) = 0.54*A(616) - P_VAR(118) = A(354)+A(366) - P_VAR(119) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(167)+A(344)+A(348)+A(694)+A(701) - P_VAR(120) = 0.315*A(427) - P_VAR(121) = 0 - P_VAR(122) = A(459)+A(464) - P_VAR(123) = 0.474*A(510)+0.34*A(511)+0.244*A(512)+0.841*A(515)+0.841*A(517)+0.841*A(520)+0.841*A(897)+0.227*A(900) - P_VAR(124) = 0.15*A(400)+0.15*A(408)+0.009*A(441) - P_VAR(125) = A(173)+A(175)+A(695)+A(699)+A(700) - P_VAR(126) = 0.15*A(399)+0.15*A(406)+0.009*A(440) - P_VAR(127) = 0.67*A(435)+0.68*A(437)+0.67*A(478)+0.67*A(480) - P_VAR(128) = 0.33*A(435)+0.32*A(437)+0.33*A(478)+0.33*A(480) - P_VAR(129) = 0.25*A(94)+0.25*A(95)+A(107)+A(108) - P_VAR(130) = A(465)+0.2*A(466)+0.13*A(468)+0.15*A(589)+0.15*A(901)+0.122*A(902) - P_VAR(131) = A(384)+A(385)+A(386)+A(387)+A(388) - P_VAR(132) = A(283)+A(676)+A(679)+A(680)+A(681)+A(687)+A(688)+A(689)+A(691)+A(696)+A(697)+A(698) - P_VAR(133) = 0.5*A(574)+0.25*A(880) - P_VAR(134) = A(28) - P_VAR(135) = -A(4) - P_VAR(136) = A(419) - P_VAR(137) = A(423) - P_VAR(138) = 0.8*A(624)+0.727*A(626) - P_VAR(139) = 0.725*A(445)+0.725*A(449)+0.35*A(453) - P_VAR(140) = A(306)+A(309)+A(313) - P_VAR(141) = 0.224*A(888)+0.068*A(899) - P_VAR(142) = 0.182*A(889)+0.128*A(899) - P_VAR(143) = 0.435*A(544) - P_VAR(144) = -A(1) - P_VAR(145) = 0.3*A(617)+0.56*A(618)+0.44*A(626)+0.44*A(627) - P_VAR(146) = 0.461*A(541)+0.67*A(542)+0.67*A(543)+0.041*A(594) - P_VAR(147) = A(508) - P_VAR(148) = A(479) - P_VAR(149) = A(580)+A(583) - P_VAR(150) = 0 - P_VAR(151) = 0 - P_VAR(152) = A(433)+0.444*A(590)+0.112*A(888)+0.182*A(889)+0.162*A(899)+0.454*A(905) - P_VAR(153) = 0.937*A(401) - P_VAR(154) = 0.25*A(85)+0.25*A(86)+0.25*A(97)+0.25*A(98)+0.25*A(100)+0.25*A(101)+0.25*A(102)+0.25*A(355)+0.25*A(367)& - &+0.25*A(376) - P_VAR(155) = 0.56*A(616)+0.68*A(617)+0.28*A(618)+0.18*A(624)+1.05*A(628)+A(629)+0.3*A(630)+A(646)+A(647)+A(914) - P_VAR(156) = 0.06*A(624)+0.742*A(625)+0.073*A(626)+0.3*A(627)+0.3*A(628)+0.3*A(630)+A(639)+A(640)+A(641)+A(648)+A(913) - P_VAR(157) = 0 - P_VAR(158) = 0.937*A(403) - P_VAR(159) = 0.824*A(442)+0.452*A(446)+A(450)+0.667*A(591) - P_VAR(160) = 0.022*A(594)+0.552*A(888)+0.455*A(889)+0.481*A(899) - P_VAR(161) = A(404) - P_VAR(162) = A(477) - P_VAR(163) = A(484) - P_VAR(164) = A(482) - P_VAR(165) = 0 - P_VAR(166) = 0.13*A(469)+0.2*A(471)+0.53*A(554)+0.6*A(566)+0.255*A(570)+0.318*A(590)+0.391*A(905) - P_VAR(167) = A(402) - P_VAR(168) = 0.3*A(399)+0.3*A(406)+0.018*A(440)+0.284*A(443)+0.135*A(445)+0.249*A(534)+0.471*A(535)+0.303*A(536)+0.59& - &*A(538)+0.5*A(907) - P_VAR(169) = A(47) - P_VAR(170) = 0.085*A(427)+0.165*A(428)+0.58*A(429)+0.77*A(430)+0.75*A(454)+A(455)+A(457)+A(528)+A(540) - P_VAR(171) = 0.6*A(485)+0.031*A(497)+0.065*A(498)+0.094*A(503)+0.355*A(504)+0.06*A(534)+0.073*A(535)+0.17*A(536)+0.291& - &*A(538)+0.378*A(541)+0.13*A(581)+0.3*A(585) - P_VAR(172) = A(187) - P_VAR(173) = A(194)+A(199)+A(202)+A(203)+0.24*A(224)+0.15*A(225)+A(264)+A(764) - P_VAR(174) = 0.12*A(353)+A(371)+0.7*A(373)+0.7*A(374)+0.7*A(375)+0.35*A(376)+0.7*A(377)+0.7*A(379)+1.4*A(381)+1.05& - &*A(382)+0.7*A(383) - P_VAR(175) = A(605)+A(614) - P_VAR(176) = A(631)+A(632)+A(636)+A(637) - P_VAR(177) = 0.473*A(507)+0.07*A(509)+0.399*A(510)+0.355*A(513) - P_VAR(178) = 0.46*A(616)+0.81*A(617)+0.85*A(618)+0.14*A(624)+0.2*A(626)+0.2*A(627)+0.7*A(628)+0.2*A(630) - P_VAR(179) = 0.345*A(434)+0.595*A(440) - P_VAR(180) = 0.345*A(436)+0.255*A(441) - P_VAR(181) = 0.29*A(553)+0.47*A(554)+0.063*A(564)+0.4*A(566)+0.16*A(569)+0.126*A(590)+0.1*A(902)+0.155*A(905) - P_VAR(182) = 0.25*A(399)+0.25*A(406)+0.015*A(440) - P_VAR(183) = 0.655*A(434)+0.655*A(436) - P_VAR(184) = 0.25*A(400)+0.25*A(408)+0.015*A(441) - P_VAR(185) = A(525) - P_VAR(186) = 0.1*A(115)+A(774) - P_VAR(187) = 0.2*A(633)+A(634)+A(643)+A(644)+A(649)+A(911)+A(912) - P_VAR(188) = A(39)+0.5*A(664)+A(684)+A(685)+A(686)+A(687)+A(688)+A(689)+A(720)+A(721)+A(722)+A(723)+A(862)+A(864)& - &+A(914) - P_VAR(189) = A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.45*A(422)+0.45*A(426)+0.06*A(440)+0.06*A(441)+A(886)+A(887)& - &+0.45*A(892)+0.45*A(895) - P_VAR(190) = 0.16*A(439)+0.25*A(454) - P_VAR(191) = 0.12*A(115) - P_VAR(192) = 0.25*A(226)+A(272)+A(279)+A(285)+0.5*A(673)+0.5*A(674)+A(678)+A(682)+A(683)+A(684)+A(685)+A(686)+A(690)& - &+A(692)+A(693) - P_VAR(193) = 0.85*A(89)+0.85*A(90)+0.3*A(400)+0.3*A(408)+0.018*A(441)+0.294*A(447)+0.135*A(449)+0.009*A(534)+0.054& - &*A(535)+0.013*A(536)+0.07*A(538)+0.036*A(549)+0.23*A(555)+0.05*A(907) - P_VAR(194) = 0.791*A(131)+0.551*A(497)+0.935*A(498)+0.242*A(503)+0.546*A(504)+0.589*A(534)+0.471*A(535)+0.687*A(536)& - &+0.59*A(538)+0.231*A(542)+0.231*A(543)+A(545)+0.82*A(546)+0.68*A(552)+A(557)+A(883) - P_VAR(195) = 0.059*A(488)+0.272*A(489)+A(563)+A(578)+0.37*A(581)+0.5*A(906) - P_VAR(196) = 0.06*A(353)+0.22*A(365)+0.3*A(373)+0.3*A(374)+0.3*A(375)+0.15*A(376)+0.3*A(377)+0.3*A(379)+0.6*A(381)& - &+0.45*A(382)+0.3*A(383) - P_VAR(197) = A(118)+0.209*A(131) - P_VAR(198) = A(69)+0.07*A(72)+A(88) - P_VAR(199) = A(307) - P_VAR(200) = A(547)+A(558)+A(559) - P_VAR(201) = 0.964*A(549)+A(561)+A(562) - P_VAR(202) = 0.176*A(442)+0.548*A(446)+0.35*A(461)+0.35*A(468)+0.35*A(469)+0.333*A(591)+0.75*A(903) - P_VAR(203) = A(550)+0.32*A(552)+0.165*A(575)+A(586) - P_VAR(204) = A(114)+0.209*A(137)+A(303)+A(304) - P_VAR(205) = 0.441*A(500)+0.858*A(501)+0.033*A(503)+0.071*A(504)+0.051*A(534)+0.054*A(535)+0.064*A(536)+0.07*A(538)& - &+0.099*A(542)+0.099*A(543)+0.89*A(545)+0.73*A(546)+0.3*A(881)+0.15*A(906) - P_VAR(206) = 0.258*A(625)+0.5*A(627)+0.5*A(630)+A(645) - P_VAR(207) = 0.134*A(116)+A(117)+0.5*A(124)+0.21*A(341)+0.54*A(342)+0.07*A(353)+0.01*A(363)+0.449*A(553)+0.187*A(564)& - &+0.3*A(588)+0.5*A(597)+0.364*A(606)+0.25*A(650)+0.5*A(651)+0.1*A(653)+0.2*A(654) - P_VAR(208) = A(19)+A(23)+0.06*A(341)+0.06*A(342)+A(349)+0.02*A(358)+0.02*A(359)+0.02*A(363)+0.013*A(396)+0.045*A(548) - P_VAR(209) = A(463)+A(467)+A(470)+A(487)+A(491)+A(495)+A(496)+A(532)+0.5*A(533)+0.92*A(594) - P_VAR(210) = A(421)+0.127*A(511)+0.057*A(512) - P_VAR(211) = 0.1*A(360)+0.1*A(361)+0.5*A(364) - P_VAR(212) = 0.9*A(360)+0.9*A(361)+0.5*A(364) - P_VAR(213) = A(58)+A(140)+A(184)+A(292) - P_VAR(214) = A(29)+0.13*A(31)+0.25*A(85)+0.25*A(86)+0.25*A(94)+0.25*A(95)+0.25*A(97)+0.25*A(98)+0.5*A(99)+0.25*A(100)& - &+0.25*A(101)+0.25*A(102)+0.25*A(355)+0.25*A(367)+0.25*A(376)+0.355*A(512)+0.034*A(513)+0.2*A(610)+0.1& - &*A(780) - P_VAR(215) = 0.5*A(124)+A(127)+A(128)+A(143)+A(150)+A(151)+A(152)+A(153)+A(154)+A(155)+A(158)+A(159)+A(350)+0.13& - &*A(598)+0.15*A(653)+0.3*A(654) - P_VAR(216) = A(425)+0.032*A(510)+0.671*A(511)+0.298*A(512) - P_VAR(217) = 0.67*A(524) - P_VAR(218) = 0.134*A(116)+0.8*A(466)+0.52*A(468)+A(600)+0.636*A(606)+0.18*A(616)+0.12*A(617)+0.1*A(618)+0.06*A(624)& - &+0.6*A(650)+0.6*A(651)+0.2*A(652)+0.5*A(875)+0.429*A(877)+0.125*A(878)+0.438*A(902)+0.571*A(904) - P_VAR(219) = 0.32*A(68)+A(73)+0.16*A(97)+0.75*A(101)+0.791*A(134)+0.32*A(144)+A(147)+A(155)+0.11*A(353)+A(394)+A(793)& - &+0.32*A(797)+A(868) - P_VAR(220) = 0 - P_VAR(221) = A(362) - P_VAR(222) = 0.19*A(68)+0.35*A(97)+0.25*A(100)+0.19*A(144)+A(150)+A(152)+0.44*A(353)+0.75*A(355)+A(356)+A(357)+0.53& - &*A(358)+0.53*A(359)+0.289*A(365)+0.41*A(370)+0.464*A(372)+0.348*A(376)+0.464*A(378)+0.464*A(380)+0.149& - &*A(382)+0.285*A(383)+0.19*A(797)+A(859) - P_VAR(223) = A(312)+A(314)+A(320)+A(324)+A(328)+2*A(333)+A(847) - P_VAR(224) = 0.294*A(431)+0.67*A(456)+0.81*A(458)+0.08*A(590) - P_VAR(225) = 0.068*A(431)+0.33*A(456)+0.19*A(458)+0.032*A(590) - P_VAR(226) = A(412)+0.5*A(414)+0.5*A(416)+0.55*A(422)+0.33*A(427)+0.19*A(429)+0.125*A(431)+0.125*A(438)+0.706*A(447)& - &+0.14*A(449)+0.054*A(534)+0.059*A(536)+0.335*A(570)+0.429*A(592)+0.75*A(593)+0.55*A(892)+0.5*A(909) - P_VAR(227) = A(413)+0.5*A(414)+0.5*A(418)+0.55*A(426)+0.17*A(428)+0.09*A(430)+0.158*A(431)+0.165*A(439)+0.716*A(443)& - &+0.14*A(445)+0.004*A(534)+0.006*A(536)+0.41*A(573)+0.5*A(589)+0.571*A(592)+0.25*A(593)+0.55*A(895)+0.5& - &*A(901)+0.15*A(907)+0.5*A(909) - P_VAR(228) = A(35)+0.5*A(99)+A(123)+A(151)+A(337)+0.3*A(399)+0.3*A(400)+0.3*A(406)+0.3*A(408)+0.085*A(427)+0.165& - &*A(428)+0.355*A(431)+0.5*A(432)+0.018*A(440)+0.018*A(441)+0.52*A(461)+0.8*A(462)+0.545*A(548)+0.88*A(551)& - &+0.449*A(553)+0.187*A(564)+A(565)+A(567)+0.05*A(570)+0.242*A(571)+0.083*A(573)+0.14*A(577)+0.7*A(588)+0.12& - &*A(617)+0.2*A(618)+0.6*A(653)+0.6*A(654)+0.2*A(655)+0.5*A(875)+0.47*A(876)+0.571*A(877)+0.125*A(878)+0.23& - &*A(879)+0.088*A(902)+0.429*A(904)+A(908) - P_VAR(229) = A(523)+0.33*A(524)+0.037*A(594) - P_VAR(230) = 0.12*A(115)+0.58*A(396)+0.5*A(548)+0.88*A(551)+A(604) - P_VAR(231) = A(669)+A(671)+A(672) - P_VAR(232) = 0.294*A(447)+0.135*A(449)+A(451)+0.65*A(453)+0.52*A(461)+0.8*A(462)+0.459*A(488)+0.728*A(489)+0.551& - &*A(497)+0.935*A(498)+0.242*A(503)+0.546*A(504)+0.34*A(534)+0.384*A(536)+0.11*A(545)+0.09*A(546)+0.36& - &*A(570)+0.758*A(571)+0.2*A(610)+A(612)+A(613)+A(615)+A(629)+0.9*A(651)+0.95*A(654)+0.53*A(876)+0.69*A(881)& - &+0.5*A(900)+0.088*A(902)+0.25*A(903)+0.429*A(904)+0.3*A(906)+0.35*A(907)+A(908) - P_VAR(233) = A(63)+0.05*A(68)+0.07*A(82)+0.03*A(97)+0.03*A(113)+0.07*A(129)+0.36*A(133)+0.05*A(144)+0.07*A(160)+A(185)& - &+A(299)+0.07*A(776)+0.06*A(779)+0.05*A(797) - P_VAR(234) = A(351)+A(352) - P_VAR(235) = 0.32*A(68)+0.5*A(82)+0.16*A(97)+0.22*A(113)+0.5*A(129)+0.36*A(132)+0.32*A(144)+0.5*A(160)+0.16*A(363)+0.5& - &*A(776)+0.425*A(779)+0.32*A(797) - P_VAR(236) = 0.4*A(485)+0.4*A(486)+0.07*A(509)+0.532*A(510)+0.861*A(511)+0.401*A(512)+0.034*A(513)+0.159*A(515)+0.159& - &*A(517)+0.159*A(520)+A(522)+A(531)+0.159*A(897)+0.228*A(900) - P_VAR(237) = 0.6*A(486)+0.599*A(492)+A(493)+0.065*A(500)+0.142*A(501)+0.01*A(503)+0.028*A(504)+0.008*A(534)+0.015& - &*A(535)+0.014*A(536)+0.049*A(538)+0.161*A(541)+A(560)+0.438*A(572)+0.05*A(906) - P_VAR(238) = A(444)+A(448)+A(452)+0.482*A(488)+0.401*A(492)+0.418*A(497)+0.494*A(500)+0.621*A(503)+A(526)+A(527)+0.5& - &*A(533)+0.234*A(534)+0.387*A(535)+0.565*A(544) - P_VAR(239) = A(490)+A(494)+A(499)+A(502)+A(505)+A(519)+A(521)+A(537)+A(539)+0.18*A(546) - P_VAR(240) = 0.465*A(506)+A(529) - P_VAR(241) = 0.535*A(506)+A(530) - P_VAR(242) = 0.5*A(301)+A(397)+0.75*A(438)+0.03*A(440)+0.841*A(898) - P_VAR(243) = 0.5*A(301)+A(398)+0.51*A(439)+0.03*A(441)+0.159*A(898) - P_VAR(244) = 0.177*A(396)+0.063*A(401)+A(405)+2*A(409)+A(411)+A(415)+A(420)+0.035*A(427)+0.23*A(429)+0.125*A(438)& - &+A(473)+A(474)+0.479*A(507)+1.737*A(509)+0.544*A(510)+0.583*A(513)+0.903*A(514)+0.903*A(516)+0.904*A(518)& - &+0.04*A(617)+0.04*A(618)+A(884)+A(890)+A(893)+0.903*A(896)+0.05*A(900) - P_VAR(245) = A(556) - P_VAR(246) = 0.16*A(86)+0.2*A(99)+0.65*A(128)+0.791*A(137)+0.058*A(365)+A(391)+0.5*A(432)+0.284*A(443)+0.135*A(445)& - &+A(451)+0.65*A(453)+0.8*A(466)+0.52*A(468)+0.52*A(469)+0.8*A(471)+A(472)+0.459*A(488)+0.728*A(489)+0.441& - &*A(500)+0.858*A(501)+0.033*A(503)+0.071*A(504)+0.042*A(534)+0.051*A(536)+0.77*A(555)+0.84*A(569)+0.507& - &*A(573)+0.488*A(575)+A(576)+0.86*A(577)+0.5*A(581)+A(582)+A(584)+0.7*A(585)+0.25*A(587)+A(861)+0.77*A(879)& - &+A(882)+0.5*A(900)+0.438*A(902)+0.25*A(903)+0.571*A(904)+0.45*A(906)+0.8*A(907) - P_VAR(247) = 0.79*A(363)+0.308*A(367)+0.308*A(368)+0.615*A(369)+0.416*A(396)+0.063*A(403)+A(407)+2*A(410)+A(411)& - &+A(417)+A(424)+0.035*A(428)+0.14*A(430)+0.165*A(439)+A(475)+A(476)+0.048*A(507)+0.123*A(509)+0.019*A(510)& - &+0.028*A(513)+0.097*A(514)+0.097*A(516)+0.096*A(518)+A(885)+A(891)+A(894)+0.097*A(896)+0.005*A(900) - P_VAR(248) = A(34)+A(84)+A(183)+A(300) - P_VAR(249) = A(93)+A(96)+0.62*A(358)+0.62*A(359)+0.42*A(363) - P_VAR(250) = A(79)+A(81)+A(83)+A(136)+0.33*A(650)+0.33*A(653)+0.15*A(779)+A(787) - P_VAR(251) = A(77)+0.5*A(646)+0.5*A(647) - P_VAR(252) = A(67)+A(76)+0.15*A(98)+0.209*A(135)+0.3*A(148)+A(302)+0.44*A(370)+0.2*A(655) - P_VAR(253) = A(62)+0.18*A(68)+0.27*A(82)+0.09*A(97)+0.12*A(113)+0.27*A(129)+0.209*A(134)+0.18*A(144)+0.27*A(160)& - &+A(298)+0.27*A(776)+0.23*A(779)+0.18*A(797) - P_VAR(254) = 0.46*A(363)+0.289*A(365)+0.192*A(367)+0.192*A(368)+0.385*A(369)+A(785) - P_VAR(255) = A(64)+0.14*A(68)+0.57*A(70)+0.75*A(85)+0.09*A(86)+0.07*A(97)+0.54*A(98)+0.25*A(102)+A(104)+A(125)+A(127)& - &+0.35*A(128)+0.64*A(133)+0.791*A(135)+0.13*A(144)+0.57*A(148)+A(153)+A(154)+0.43*A(353)+0.75*A(355)+A(356)& - &+A(357)+0.65*A(358)+0.65*A(359)+0.491*A(365)+0.08*A(370)+1.24*A(372)+0.93*A(376)+1.24*A(378)+1.24*A(380)& - &+0.64*A(382)+1.21*A(383)+A(395)+1.2*A(652)+1.2*A(655)+A(790)+A(792)+A(794)+0.13*A(797)+A(857)+A(860)& - &+A(869) - P_VAR(256) = A(169)+A(176)+A(675)+A(702)+A(703)+A(704) - P_VAR(257) = 0.95*A(53)+A(54)+A(56)+A(71)+0.93*A(72)+0.15*A(89)+0.15*A(90)+0.3*A(99)+0.5*A(100)+A(120)+A(122)+A(139)& - &+A(145)+A(146)+A(182)+0.3*A(399)+0.3*A(406)+0.018*A(440)+0.38*A(548)+0.12*A(551)+0.04*A(553)+0.097*A(564)& - &+A(568)+0.36*A(570)+0.758*A(571)+0.175*A(574)+0.087*A(575)+0.35*A(579)+0.3*A(588)+A(595)+A(596)+0.12& - &*A(773)+0.7*A(775)+A(777)+0.85*A(779)+A(784)+A(786)+A(788)+A(789)+A(852)+A(872)+A(873)+A(874)+0.5*A(875)& - &+0.53*A(876)+0.429*A(877)+0.125*A(878)+0.262*A(880)+1.01*A(881) - P_VAR(258) = A(36)+A(52)+0.05*A(53)+0.56*A(115)+0.505*A(116)+A(117)+2*A(119)+A(120)+2*A(121)+A(122)+0.5*A(124)+A(181)& - &+A(207)+A(223)+A(262)+A(286)+A(287)+A(288)+0.14*A(358)+0.14*A(359)+0.14*A(363)+0.407*A(396)+0.6*A(399)+0.9& - &*A(400)+0.6*A(406)+0.9*A(408)+A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.55*A(422)+0.55*A(426)+0.45& - &*A(427)+0.37*A(428)+0.42*A(429)+0.23*A(430)+0.638*A(431)+1.5*A(432)+A(433)+0.25*A(438)+0.33*A(439)+0.036& - &*A(440)+0.054*A(441)+A(460)+0.13*A(461)+0.2*A(462)+A(465)+0.2*A(466)+0.13*A(468)+0.52*A(469)+0.8*A(471)+2& - &*A(472)+0.6*A(485)+0.6*A(486)+0.539*A(541)+0.33*A(542)+0.33*A(543)+0.18*A(548)+0.036*A(549)+0.12*A(551)& - &+0.68*A(552)+0.77*A(555)+0.25*A(557)+0.75*A(564)+A(565)+2*A(568)+0.84*A(569)+0.507*A(573)+0.325*A(574)& - &+0.488*A(575)+A(576)+0.86*A(577)+0.65*A(579)+0.25*A(587)+A(589)+0.888*A(590)+A(593)+A(599)+0.364*A(606)& - &+0.2*A(616)+0.27*A(617)+0.3*A(618)+0.25*A(650)+0.5*A(651)+0.25*A(653)+0.5*A(654)+A(764)+A(765)+0.88*A(773)& - &+A(774)+A(776)+A(778)+A(780)+2*A(781)+2*A(782)+A(783)+A(784)+A(785)+A(786)+A(788)+A(854)+A(858)+A(871)& - &+A(874)+0.5*A(875)+0.571*A(877)+0.875*A(878)+0.77*A(879)+A(882)+A(883)+0.888*A(888)+0.818*A(889)+A(890)& - &+A(891)+0.55*A(892)+0.55*A(895)+0.839*A(899)+A(901)+0.122*A(902)+A(905)+A(909)+A(911)+A(914) - P_VAR(259) = A(271) - P_VAR(260) = A(37)+A(52)+A(54)+A(76)+A(83)+A(96)+A(121)+A(122)+A(140)+A(166)+A(389)+A(390)+0.32*A(552)+A(595)+0.742& - &*A(625)+0.5*A(627)+0.5*A(630)+A(632)+0.5*A(647)+0.5*A(664)+A(665)+2*A(668)+A(669)+2*A(670)+A(671)+A(672)& - &+A(675)+A(676)+A(677)+A(678)+A(679)+A(680)+A(681)+A(682)+A(683)+A(719)+A(724)+A(725)+A(726)+A(727) - P_VAR(261) = A(59)+A(61)+A(66)+0.32*A(68)+0.86*A(70)+0.93*A(72)+A(75)+0.5*A(86)+0.15*A(90)+0.75*A(94)+0.75*A(95)+0.16& - &*A(97)+0.38*A(98)+0.5*A(100)+0.5*A(102)+A(103)+2*A(105)+2*A(106)+A(107)+A(108)+0.5*A(115)+A(126)+0.64& - &*A(132)+0.32*A(144)+A(146)+0.75*A(148)+A(149)+A(156)+A(157)+A(158)+A(159)+A(293)+A(294)+A(296)+A(345)& - &+A(346)+A(347)+A(348)+A(349)+A(393)+A(791)+A(795)+A(796)+0.32*A(797)+A(867) - P_VAR(262) = A(11)+A(12)+A(17)+A(26)+A(29)+2*A(30)+0.87*A(31)+A(33)+A(50)+0.05*A(53)+A(66)+0.57*A(70)+A(71)+A(75)+0.75& - &*A(85)+1.25*A(86)+0.15*A(89)+0.75*A(94)+0.75*A(95)+0.75*A(97)+0.95*A(98)+0.5*A(99)+0.75*A(100)+0.75*A(101)& - &+1.25*A(102)+0.5*A(115)+0.732*A(116)+A(126)+A(129)+A(130)+A(142)+A(143)+A(145)+0.39*A(148)+A(149)+A(164)& - &+A(166)+A(198)+A(199)+A(244)+A(290)+A(295)+A(336)+A(338)+A(339)+A(340)+0.06*A(341)+0.06*A(342)+A(343)& - &+A(344)+0.23*A(353)+0.75*A(355)+0.04*A(363)+0.231*A(365)+1.04*A(367)+0.385*A(368)+0.385*A(369)+0.287& - &*A(372)+A(375)+0.965*A(376)+0.287*A(378)+0.287*A(380)+0.202*A(382)+0.504*A(383)+A(392)+0.827*A(396)+0.3& - &*A(399)+0.3*A(400)+0.063*A(401)+0.063*A(403)+A(405)+0.3*A(406)+A(407)+0.3*A(408)+2*A(409)+2*A(410)+2& - &*A(411)+2*A(415)+A(416)+2*A(417)+A(418)+A(420)+A(424)+0.085*A(427)+0.165*A(428)+0.5*A(432)+0.018*A(440)& - &+0.018*A(441)+0.716*A(443)+0.14*A(445)+0.706*A(447)+0.14*A(449)+0.65*A(469)+A(471)+0.059*A(488)+0.272& - &*A(489)+0.599*A(492)+A(493)+0.031*A(497)+0.065*A(498)+0.065*A(500)+0.142*A(501)+0.104*A(503)+0.383*A(504)& - &+0.527*A(507)+1.86*A(509)+0.563*A(510)+0.645*A(512)+1.577*A(513)+A(514)+A(516)+A(518)+0.126*A(534)+0.088& - &*A(535)+0.249*A(536)+0.34*A(538)+0.6*A(548)+0.12*A(551)+0.241*A(553)+0.05*A(570)+0.242*A(571)+0.083*A(573)& - &+0.5*A(574)+0.25*A(575)+0.14*A(577)+A(579)+A(585)+0.022*A(594)+0.5*A(597)+A(599)+A(604)+0.8*A(610)+2& - &*A(611)+A(622)+A(648)+A(649)+A(662)+A(763)+0.9*A(780)+A(783)+A(786)+A(788)+A(789)+A(795)+A(850)+A(852)& - &+A(858)+A(866)+A(870)+A(871)+A(873)+A(874)+0.47*A(876)+0.23*A(879)+0.75*A(880)+A(884)+A(885)+A(893)+A(894)& - &+A(896)+0.055*A(900)+0.1*A(902)+0.55*A(906)+0.15*A(907) - P_VAR(263) = A(25)+A(32)+A(57)+0.19*A(68)+A(78)+0.09*A(97)+0.28*A(115)+0.5*A(124)+A(125)+A(126)+2*A(141)+A(142)+A(144)& - &+A(145)+A(146)+A(147)+A(148)+A(149)+A(156)+A(157)+A(160)+A(163)+A(164)+A(165)+A(166)+A(197)+A(228)+A(261)& - &+A(291)+A(297)+A(335)+0.5*A(356)+0.5*A(368)+A(377)+0.5*A(378)+0.407*A(396)+A(514)+A(515)+0.325*A(574)& - &+0.162*A(575)+0.65*A(579)+0.5*A(598)+A(623)+0.88*A(773)+0.3*A(775)+A(777)+2*A(778)+0.15*A(779)+A(787)+0.18& - &*A(797)+A(798)+A(807)+A(808)+A(851)+0.488*A(880) - P_VAR(264) = A(326)+A(329)+A(719) - P_VAR(265) = A(308)+A(310)+A(315)+A(321)+A(322)+A(326)+A(327)+A(330)+A(331)+A(334)+A(335)+2*A(834)+A(835)+A(836)& - &+A(837)+A(838)+A(839)+A(840)+A(841)+A(842)+2*A(843)+A(844)+A(845)+A(848)+A(849) - P_VAR(266) = A(310)+A(311) - P_VAR(267) = A(243)+A(247)+A(248)+A(251)+A(252)+A(269)+A(677) - P_VAR(268) = A(759)+A(853) - P_VAR(269) = A(15)+A(22)+A(33)+A(35)+A(44)+0.15*A(89)+0.15*A(90)+0.44*A(113)+0.36*A(115)+0.227*A(116)+A(117)+A(124)& - &+0.791*A(131)+0.64*A(132)+0.64*A(133)+0.791*A(134)+0.791*A(135)+0.791*A(137)+A(138)+A(177)+A(178)+2*A(191)& - &+A(194)+A(197)+A(204)+A(213)+A(215)+2*A(216)+A(223)+0.67*A(224)+0.65*A(225)+A(267)+0.85*A(358)+0.85*A(359)& - &+0.85*A(363)+0.49*A(370)+0.28*A(396)+1.5*A(399)+1.5*A(400)+0.063*A(401)+0.063*A(403)+A(405)+1.5*A(406)& - &+A(407)+1.5*A(408)+A(412)+A(413)+A(414)+0.5*A(416)+0.5*A(418)+0.55*A(422)+0.55*A(426)+1.085*A(427)+1.165& - &*A(428)+A(429)+A(430)+1.065*A(431)+A(432)+A(435)+A(437)+0.405*A(440)+0.745*A(441)+A(442)+0.275*A(445)& - &+A(446)+0.275*A(449)+A(451)+1.3*A(453)+A(460)+0.65*A(461)+A(465)+0.65*A(468)+0.65*A(469)+A(472)+A(473)+2& - &*A(474)+A(475)+2*A(476)+0.6*A(485)+0.6*A(486)+0.518*A(488)+0.599*A(492)+0.582*A(497)+0.506*A(500)+0.379& - &*A(503)+0.527*A(507)+A(526)+A(527)+A(531)+A(532)+A(533)+1.147*A(534)+0.646*A(535)+0.435*A(536)+0.096& - &*A(538)+0.244*A(541)+A(543)+0.82*A(546)+0.08*A(548)+0.12*A(551)+0.68*A(552)+0.02*A(553)+A(554)+A(555)& - &+A(557)+A(559)+A(562)+0.285*A(564)+A(565)+A(567)+0.665*A(570)+0.59*A(573)+0.5*A(574)+0.585*A(575)+A(576)& - &+0.5*A(581)+0.7*A(588)+0.5*A(589)+0.444*A(590)+A(591)+A(592)+0.3*A(594)+0.5*A(597)+0.5*A(598)+A(599)& - &+A(600)+A(601)+0.636*A(606)+A(615)+A(619)+A(629)+0.2*A(633)+0.25*A(650)+0.1*A(651)+0.25*A(653)+0.1*A(654)& - &+2*A(762)+A(763)+A(766)+A(767)+A(768)+0.07*A(780)+A(790)+A(791)+A(792)+A(793)+A(794)+A(795)+A(796)+A(798)& - &+A(801)+A(818)+A(835)+A(852)+2*A(855)+A(857)+2*A(870)+A(871)+A(876)+A(877)+1.75*A(878)+A(879)+0.75*A(880)& - &+0.01*A(881)+A(883)+A(884)+A(885)+A(886)+A(887)+1.662*A(888)+1.637*A(889)+A(890)+A(891)+0.55*A(892)+0.55& - &*A(895)+0.67*A(896)+A(897)+0.645*A(899)+0.5*A(901)+A(902)+1.25*A(903)+A(904)+0.546*A(905)+A(906)+0.3& - &*A(907)+A(908)+A(910)+A(912) - P_VAR(270) = A(13)+A(22)+A(26)+A(40)+A(42)+A(43)+A(44)+2*A(45)+A(46)+A(48)+A(51)+A(56)+A(57)+A(59)+A(61)+A(64)+A(66)& - &+A(68)+2*A(70)+A(71)+0.93*A(72)+A(73)+2*A(75)+A(81)+A(82)+A(98)+A(102)+A(148)+A(149)+A(153)+A(154)+2& - &*A(161)+A(163)+A(174)+A(180)+A(210)+A(211)+A(251)+A(270)+A(308)+2*A(309)+A(312)+A(320)+A(330)+A(336)& - &+A(337)+A(339)+A(346)+0.82*A(353)+A(357)+0.78*A(365)+A(369)+A(371)+2*A(372)+0.5*A(376)+A(378)+A(379)+2& - &*A(380)+0.5*A(382)+A(383)+A(392)+A(393)+A(394)+A(395)+A(420)+A(422)+A(424)+A(426)+A(443)+A(447)+A(451)& - &+A(462)+A(466)+A(471)+A(473)+A(475)+A(478)+A(480)+A(481)+A(483)+0.459*A(488)+1.728*A(489)+A(493)+A(498)& - &+A(501)+A(504)+0.527*A(507)+1.86*A(509)+0.563*A(510)+0.611*A(513)+A(514)+2*A(516)+A(517)+2*A(518)+A(520)& - &+A(528)+0.058*A(534)+1.065*A(536)+A(538)+A(540)+A(542)+0.565*A(544)+1.11*A(545)+0.09*A(546)+0.31*A(553)& - &+A(558)+A(561)+A(571)+A(577)+A(579)+0.5*A(581)+2*A(582)+A(583)+2*A(584)+0.7*A(585)+A(586)+A(593)+0.022& - &*A(594)+A(595)+0.995*A(608)+A(609)+A(613)+A(620)+A(621)+A(634)+A(637)+A(638)+A(640)+A(641)+0.5*A(646)& - &+A(647)+A(662)+A(766)+A(769)+A(770)+A(772)+0.7*A(775)+A(790)+A(797)+A(803)+A(804)+A(815)+A(817)+A(839)& - &+A(851)+A(858)+A(859)+A(860)+A(861)+A(863)+A(865)+A(866)+A(867)+A(868)+A(869)+A(873)+0.7*A(881)+A(882)& - &+A(892)+A(893)+A(894)+A(895)+A(896)+A(898)+A(899)+1.555*A(900)+0.3*A(906)+A(907)+A(908)+A(909) - P_VAR(271) = 0.09*A(224)+A(246)+A(261)+A(262)+A(264)+A(265)+A(266)+2*A(286)+A(287)+A(288)+A(289)+A(291)+A(292)+A(295)& - &+A(296)+A(297)+A(298)+A(299)+A(300)+A(301)+A(302)+A(303)+A(694) - P_VAR(272) = A(170)+A(181)+A(182)+A(183)+A(184)+A(185)+0.2*A(225)+A(304)+A(701) - P_VAR(273) = 0.24*A(224)+0.75*A(226)+0.86*A(227)+0.55*A(231)+0.88*A(232)+0.86*A(233)+0.33*A(234)+0.69*A(236)+0.74& - &*A(237)+0.79*A(238)+0.75*A(239)+0.75*A(240)+0.3*A(241)+A(250)+A(263)+A(267)+2*A(278)+2*A(280)+A(284)& - &+A(290)+A(293)+A(294)+A(813)+A(817) - P_VAR(274) = A(168)+A(177)+A(180)+0.15*A(225)+0.44*A(228)+0.95*A(229)+0.68*A(230)+0.31*A(234)+0.41*A(235)+0.75*A(242)& - &+A(803) - P_VAR(275) = A(705) - P_VAR(276) = A(706) - P_VAR(277) = 0.15*A(113)+A(200)+0.13*A(574)+0.13*A(581)+0.13*A(598)+0.15*A(633) - P_VAR(278) = A(2) - P_VAR(279) = A(18)+A(20)+A(21)+A(25)+A(32)+A(33)+A(34)+A(35)+A(36)+A(38)+A(40)+A(43)+A(49)+A(53)+A(58)+A(77)+A(78)& - &+A(79)+A(84)+A(93)+A(171)+A(190)+A(202)+A(217)+A(249)+A(250)+A(253)+A(256)+A(257)+A(258)+A(259)+A(260)& - &+A(289)+A(327)+A(328)+A(335)+A(663)+A(690)+A(691)+A(692)+A(693)+A(695)+A(696)+A(697)+A(698) - P_VAR(280) = A(51)+2*A(196)+A(209)+A(219)+2*A(306)+A(603)+A(657)+A(659)+A(661)+A(761)+A(767)+A(771)+A(838) - P_VAR(281) = A(14)+A(17)+A(21)+A(24)+A(26)+2*A(30)+1.74*A(31)+A(36)+A(42)+A(46)+A(49)+A(50)+A(52)+0.05*A(53)+A(59)& - &+A(61)+A(64)+A(66)+0.27*A(68)+A(73)+A(85)+A(86)+A(94)+A(95)+0.64*A(97)+0.5*A(98)+0.3*A(99)+0.5*A(100)& - &+A(101)+0.5*A(102)+A(103)+A(104)+2*A(105)+2*A(106)+0.28*A(115)+0.773*A(116)+A(119)+A(121)+A(123)+A(125)& - &+A(126)+A(129)+A(142)+0.27*A(144)+A(147)+A(156)+A(157)+A(167)+A(179)+A(181)+A(190)+A(199)+A(213)+A(214)& - &+A(223)+A(244)+A(245)+A(253)+A(254)+A(255)+A(262)+A(265)+A(286)+A(287)+A(288)+A(290)+A(293)+A(294)+A(295)& - &+0.82*A(353)+A(355)+0.5*A(356)+A(357)+0.1*A(358)+0.1*A(359)+0.1*A(363)+0.686*A(365)+A(367)+0.5*A(368)& - &+A(369)+A(371)+2*A(375)+0.5*A(376)+A(377)+A(379)+A(381)+0.5*A(382)+0.16*A(396)+0.4*A(399)+0.7*A(400)+0.063& - &*A(401)+0.063*A(403)+0.4*A(406)+0.7*A(408)+2*A(409)+2*A(410)+2*A(411)+A(412)+A(413)+A(414)+2*A(415)+1.5& - &*A(416)+2*A(417)+1.5*A(418)+A(420)+0.45*A(422)+A(424)+0.45*A(426)+0.085*A(427)+0.165*A(428)+0.283*A(431)& - &+A(433)+0.25*A(438)+0.33*A(439)+0.024*A(440)+0.042*A(441)+A(443)+0.275*A(445)+A(447)+0.275*A(449)+0.75& - &*A(454)+A(455)+A(457)+A(459)+0.65*A(461)+A(462)+A(464)+A(466)+0.65*A(468)+0.65*A(469)+A(471)+A(472)+0.4& - &*A(485)+0.4*A(486)+A(487)+0.059*A(488)+0.272*A(489)+A(491)+0.599*A(492)+A(493)+A(495)+A(496)+0.582*A(497)& - &+A(498)+0.506*A(500)+A(501)+0.379*A(503)+A(504)+0.089*A(510)+0.064*A(511)+0.336*A(512)+0.611*A(513)+0.159& - &*A(515)+0.159*A(517)+0.159*A(520)+A(522)+0.326*A(534)+0.58*A(535)+0.5*A(536)+0.904*A(538)+0.295*A(541)& - &+0.33*A(542)+0.33*A(543)+0.89*A(545)+0.73*A(546)+0.1*A(548)+0.036*A(549)+0.715*A(564)+A(566)+A(568)+A(569)& - &+0.305*A(570)+0.242*A(571)+0.507*A(573)+0.86*A(577)+0.7*A(585)+0.5*A(589)+0.444*A(590)+0.62*A(594)+0.5& - &*A(597)+A(602)+0.364*A(606)+0.6*A(610)+A(611)+A(612)+0.54*A(616)+0.19*A(617)+0.15*A(618)+A(619)+A(620)& - &+A(621)+2*A(622)+A(623)+0.8*A(624)+0.727*A(626)+A(629)+A(648)+A(649)+0.33*A(650)+0.1*A(651)+0.2*A(652)& - &+0.33*A(653)+0.1*A(654)+0.2*A(655)+A(656)+A(658)+A(660)+A(662)+A(763)+A(764)+A(769)+A(773)+A(776)+1.73& - &*A(780)+2*A(781)+A(784)+A(786)+A(788)+A(789)+A(790)+A(791)+A(792)+A(793)+A(794)+A(795)+A(796)+0.27*A(797)& - &+A(850)+A(857)+A(858)+A(866)+A(867)+A(868)+A(869)+A(871)+A(872)+A(874)+1.5*A(875)+0.47*A(876)+0.571*A(877)& - &+0.125*A(878)+A(879)+0.29*A(881)+A(882)+A(883)+A(884)+A(885)+A(886)+A(887)+0.112*A(888)+0.182*A(889)& - &+A(890)+A(891)+0.45*A(892)+A(893)+A(894)+0.45*A(895)+0.33*A(896)+0.159*A(897)+0.161*A(899)+0.228*A(900)& - &+1.5*A(901)+A(902)+0.75*A(903)+A(904)+1.454*A(905)+0.7*A(906)+0.7*A(907)+A(909)+A(911)+A(914) - P_VAR(282) = A(171)+2*A(172)+A(174)+A(176)+A(178)+A(179)+3*A(188)+2*A(189)+A(190)+A(222)+0.65*A(225)+0.56*A(228)+0.95& - &*A(229)+1.36*A(230)+0.33*A(234)+0.75*A(242)+A(281)+A(282)+A(314)+A(315)+A(316)+2*A(799)+A(800)+A(801)& - &+A(802)+A(804)+3*A(805)+2*A(806)+A(807)+A(810)+A(830)+A(831)+2*A(832)+A(845)+A(848) - P_VAR(283) = A(5) - P_VAR(284) = A(18)+A(192)+A(193)+2*A(206)+A(217)+A(219)+A(220)+A(221)+0.09*A(224)+0.2*A(225)+0.25*A(226)+0.14*A(227)& - &+0.05*A(229)+0.32*A(230)+0.28*A(231)+0.12*A(232)+0.14*A(233)+0.36*A(234)+0.59*A(235)+0.31*A(236)+0.26& - &*A(237)+0.21*A(238)+0.25*A(239)+0.25*A(240)+0.7*A(241)+0.25*A(242)+A(758)+2*A(760)+A(761)+A(770)+A(800)& - &+A(812)+A(813)+A(836)+A(856) - P_VAR(285) = 0.67*A(224)+0.75*A(226)+2.58*A(227)+0.17*A(231)+1.76*A(232)+0.86*A(233)+0.31*A(234)+0.69*A(236)+0.79& - &*A(238)+1.5*A(239)+0.75*A(240)+A(243)+A(245)+A(249)+A(253)+2*A(254)+3*A(255)+3*A(256)+A(257)+2*A(258)& - &+A(259)+2*A(260)+A(268)+A(270)+A(273)+A(274)+A(276)+2*A(287)+3*A(288)+A(322)+A(808)+2*A(809)+A(810)+2& - &*A(811)+A(812)+A(814)+A(815)+A(816)+A(818)+3*A(819)+4*A(820)+3*A(821)+2*A(822)+3*A(823)+2*A(824)+A(825)+2& - &*A(826)+2*A(827)+A(828)+A(829)+A(831)+A(833)+A(844)+A(849) - P_VAR(286) = A(11)-A(12)+A(164)+0.75*A(165)+A(166)+A(207)+A(208)+A(854)+A(855) - P_VAR(287) = A(16)+A(38)+A(48)+A(175)+A(212)+A(252)+A(284)+A(285)+A(313)+A(340)+A(347)+A(391)+0.69*A(553)+A(587)& - &+A(639)+A(768)+A(772)+0.3*A(775)+A(802)+A(816)+A(840)+A(850) + P_VAR(101) = 0.06*A(590)+0.06*A(591) + P_VAR(102) = A(39) + P_VAR(103) = A(223)+A(227)+A(252)+A(254)+A(260)+A(794) + P_VAR(104) = 0.075*A(521)+0.241*A(526)+0.653*A(537)+0.75*A(858) + P_VAR(105) = 0.098*A(548)+0.75*A(560) + P_VAR(106) = 0.41*A(109) + P_VAR(107) = 0.15*A(606)+A(611)+A(615) + P_VAR(108) = 0.995*A(581)+A(582)+0.6*A(583)+A(890) + P_VAR(109) = 0.15*A(400)+0.15*A(401)+0.112*A(868)+0.182*A(869)+0.161*A(879) + P_VAR(110) = A(105)+A(106) + P_VAR(111) = A(253)+A(259)+0.56*A(298) + P_VAR(112) = A(108) + P_VAR(113) = A(90) + P_VAR(114) = 0 + P_VAR(115) = 0.19*A(590)+0.15*A(591) + P_VAR(116) = 0.255*A(413)+0.595*A(414)+A(454)+A(456) + P_VAR(117) = A(433)+0.13*A(434)+0.2*A(435)+0.35*A(562)+0.35*A(881) + P_VAR(118) = 0.54*A(589) + P_VAR(119) = A(327)+A(339) + P_VAR(120) = A(580)+0.2*A(583) + P_VAR(121) = 0.315*A(400) + P_VAR(122) = A(1)+A(7)+A(8)+A(9)+2*A(12)+A(151)+A(317)+A(321)+A(668)+A(675) + P_VAR(123) = 0.315*A(401) + P_VAR(124) = 0 + P_VAR(125) = A(432)+A(437) + P_VAR(126) = 0.474*A(483)+0.34*A(484)+0.244*A(485)+0.841*A(488)+0.841*A(490)+0.841*A(493)+0.841*A(877)+0.222*A(880) + P_VAR(127) = 0.15*A(373)+0.15*A(381)+0.009*A(414) + P_VAR(128) = A(157)+A(159)+A(669)+A(673)+A(674) + P_VAR(129) = 0.15*A(372)+0.15*A(379)+0.009*A(413) + P_VAR(130) = 0.67*A(408)+0.68*A(410)+0.67*A(451)+0.67*A(453) + P_VAR(131) = 0.33*A(408)+0.32*A(410)+0.33*A(451)+0.33*A(453) + P_VAR(132) = A(438)+0.2*A(439)+0.13*A(441)+0.15*A(562)+0.15*A(881)+0.163*A(882) + P_VAR(133) = 0.25*A(92)+0.25*A(93)+0.4*A(103)+0.4*A(104) + P_VAR(134) = A(357)+A(358)+A(359)+A(360)+A(361) + P_VAR(135) = A(261)+A(650)+A(653)+A(654)+A(655)+A(661)+A(662)+A(663)+A(665)+A(670)+A(671)+A(672) + P_VAR(136) = 0.5*A(547)+0.25*A(860) + P_VAR(137) = A(28) + P_VAR(138) = -A(4) + P_VAR(139) = A(392) + P_VAR(140) = A(396) + P_VAR(141) = 0.725*A(418)+0.725*A(422)+0.35*A(426) + P_VAR(142) = 0.8*A(597)+0.727*A(599) + P_VAR(143) = A(284)+A(287)+A(291) + P_VAR(144) = 0.224*A(868)+0.068*A(879) + P_VAR(145) = 0.182*A(869)+0.128*A(879) + P_VAR(146) = 0.435*A(517) + P_VAR(147) = -A(1) + P_VAR(148) = 0.3*A(590)+0.56*A(591)+0.44*A(599)+0.44*A(600) + P_VAR(149) = 0.1*A(206) + P_VAR(150) = 0.461*A(514)+0.67*A(515)+0.67*A(516)+0.041*A(567) + P_VAR(151) = A(481) + P_VAR(152) = A(452) + P_VAR(153) = A(553)+A(556) + P_VAR(154) = 0 + P_VAR(155) = 0 + P_VAR(156) = A(406)+0.444*A(563)+0.112*A(868)+0.182*A(869)+0.162*A(879)+0.454*A(885) + P_VAR(157) = 0.937*A(374) + P_VAR(158) = 0.25*A(83)+0.25*A(84)+0.38*A(95)+0.375*A(96)+0.25*A(98)+0.25*A(99)+0.25*A(100)+0.25*A(328)+0.25*A(340)& + &+0.25*A(349) + P_VAR(159) = 0.55*A(589)+0.68*A(590)+0.28*A(591)+0.18*A(597)+1.05*A(601)+A(602)+0.3*A(603)+0.9*A(619)+0.9*A(620)& + &+A(894) + P_VAR(160) = 0.06*A(597)+0.742*A(598)+0.073*A(599)+0.3*A(600)+0.3*A(601)+0.3*A(603)+A(612)+A(613)+A(614)+A(621)+A(893) + P_VAR(161) = 0 + P_VAR(162) = 0.937*A(376) + P_VAR(163) = 0.022*A(567)+0.552*A(868)+0.454*A(869)+0.481*A(879) + P_VAR(164) = 0.824*A(415)+0.452*A(419)+A(423)+0.667*A(564) + P_VAR(165) = A(377) + P_VAR(166) = A(455) + P_VAR(167) = A(450) + P_VAR(168) = A(457) + P_VAR(169) = 0.13*A(442)+0.2*A(444)+0.53*A(527)+0.6*A(539)+0.255*A(543)+0.318*A(563)+0.391*A(885) + P_VAR(170) = 0 + P_VAR(171) = A(375) + P_VAR(172) = 0.3*A(372)+0.3*A(379)+0.018*A(413)+0.284*A(416)+0.135*A(418)+0.249*A(507)+0.471*A(508)+0.303*A(509)+0.59& + &*A(511)+0.5*A(887) + P_VAR(173) = A(45) + P_VAR(174) = 0.085*A(400)+0.165*A(401)+0.58*A(402)+0.77*A(403)+0.75*A(427)+A(428)+A(430)+A(501)+A(513) + P_VAR(175) = 0.6*A(458)+0.031*A(470)+0.065*A(471)+0.094*A(476)+0.355*A(477)+0.06*A(507)+0.073*A(508)+0.17*A(509)+0.291& + &*A(511)+0.378*A(514)+0.13*A(554)+0.3*A(558) + P_VAR(176) = A(171) + P_VAR(177) = A(178)+0.2*A(180)+A(183)+A(184)+0.22*A(202)+0.2*A(203)+0.09*A(206)+A(243)+A(744) + P_VAR(178) = 0.12*A(326)+A(344)+0.7*A(346)+0.7*A(347)+0.7*A(348)+0.35*A(349)+0.7*A(350)+0.7*A(352)+1.4*A(354)+1.05& + &*A(355)+0.7*A(356) + P_VAR(179) = A(578)+A(587) + P_VAR(180) = A(604)+A(605)+A(609)+A(610) + P_VAR(181) = 0.473*A(480)+0.07*A(482)+0.399*A(483)+0.355*A(486) + P_VAR(182) = 0.345*A(407)+0.595*A(413) + P_VAR(183) = 0.345*A(409)+0.255*A(414) + P_VAR(184) = 0.46*A(589)+0.81*A(590)+0.85*A(591)+0.14*A(597)+0.2*A(599)+0.2*A(600)+0.7*A(601)+0.2*A(603) + P_VAR(185) = 0.29*A(526)+0.47*A(527)+0.063*A(537)+0.4*A(539)+0.16*A(542)+0.126*A(563)+0.133*A(882)+0.155*A(885) + P_VAR(186) = 0.25*A(372)+0.25*A(379)+0.015*A(413) + P_VAR(187) = 0.655*A(407)+0.655*A(409) + P_VAR(188) = 0.25*A(373)+0.25*A(381)+0.015*A(414) + P_VAR(189) = A(498) + P_VAR(190) = 0.1*A(111)+A(754) + P_VAR(191) = 0.2*A(606)+A(607)+A(616)+A(617)+A(622)+A(891)+A(892) + P_VAR(192) = A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)+0.45*A(395)+0.45*A(399)+0.06*A(413)+0.06*A(414)+A(866)+A(867)& + &+0.45*A(872)+0.45*A(875) + P_VAR(193) = A(37)+0.5*A(638)+A(658)+A(659)+A(660)+A(661)+A(662)+A(663)+A(695)+A(696)+A(700)+A(701)+A(702)+A(703)& + &+A(842)+A(844)+A(894) + P_VAR(194) = 0.16*A(412)+0.25*A(427) + P_VAR(195) = 0.12*A(111) + P_VAR(196) = 0.85*A(87)+0.85*A(88)+0.3*A(373)+0.3*A(381)+0.018*A(414)+0.294*A(420)+0.135*A(422)+0.009*A(507)+0.054& + &*A(508)+0.013*A(509)+0.07*A(511)+0.036*A(522)+0.23*A(528)+0.05*A(887) + P_VAR(197) = 0.25*A(204)+A(251)+0.95*A(258)+A(263)+0.5*A(647)+0.5*A(648)+A(652)+A(656)+A(657)+A(658)+A(659)+A(660)& + &+A(664)+A(666)+A(667) + P_VAR(198) = 0.791*A(121)+0.551*A(470)+0.935*A(471)+0.242*A(476)+0.546*A(477)+0.589*A(507)+0.471*A(508)+0.687*A(509)& + &+0.59*A(511)+0.231*A(515)+0.231*A(516)+A(518)+0.82*A(519)+0.68*A(525)+A(530)+A(863) + P_VAR(199) = 0.06*A(326)+0.22*A(338)+0.3*A(346)+0.3*A(347)+0.3*A(348)+0.15*A(349)+0.3*A(350)+0.3*A(352)+0.6*A(354)& + &+0.45*A(355)+0.3*A(356) + P_VAR(200) = 0.059*A(461)+0.272*A(462)+A(536)+A(551)+0.37*A(554)+0.5*A(886) + P_VAR(201) = A(114)+0.209*A(121) + P_VAR(202) = A(67)+0.072*A(70)+A(86) + P_VAR(203) = A(285) + P_VAR(204) = A(520)+A(531)+A(532) + P_VAR(205) = 0.964*A(522)+A(534)+A(535) + P_VAR(206) = 0.176*A(415)+0.548*A(419)+0.35*A(434)+0.35*A(441)+0.35*A(442)+0.333*A(564)+0.75*A(883) + P_VAR(207) = A(523)+0.32*A(525)+0.165*A(548)+A(559) + P_VAR(208) = 0.441*A(473)+0.858*A(474)+0.033*A(476)+0.071*A(477)+0.051*A(507)+0.054*A(508)+0.064*A(509)+0.07*A(511)& + &+0.099*A(515)+0.099*A(516)+0.89*A(518)+0.73*A(519)+0.3*A(861)+0.15*A(886) + P_VAR(209) = A(110)+0.209*A(127)+A(281)+A(282) + P_VAR(210) = 0.258*A(598)+0.5*A(600)+0.5*A(603)+A(618) + P_VAR(211) = 0.134*A(112)+A(113)+0.5*A(120)+0.21*A(314)+0.54*A(315)+0.07*A(326)+0.01*A(336)+0.449*A(526)+0.187*A(537)& + &+0.3*A(561)+0.5*A(570)+0.364*A(579)+0.26*A(623)+0.5*A(624)+0.1*A(626)+0.2*A(627) + P_VAR(212) = A(19)+A(23)+0.06*A(314)+0.06*A(315)+A(322)+0.02*A(331)+0.02*A(332)+0.02*A(336)+0.013*A(369)+0.045*A(521) + P_VAR(213) = A(436)+A(440)+A(443)+A(460)+A(464)+A(468)+A(469)+A(505)+0.5*A(506)+0.9*A(567) + P_VAR(214) = A(394)+0.127*A(484)+0.057*A(485) + P_VAR(215) = 0.1*A(333)+0.1*A(334)+0.5*A(337) + P_VAR(216) = 0.9*A(333)+0.9*A(334)+0.5*A(337) + P_VAR(217) = A(56)+A(130)+A(168)+A(270) + P_VAR(218) = A(29)+0.13*A(31)+0.25*A(83)+0.25*A(84)+0.25*A(92)+0.25*A(93)+0.25*A(95)+0.25*A(96)+0.5*A(97)+0.25*A(98)& + &+0.25*A(99)+0.25*A(100)+0.25*A(328)+0.25*A(340)+0.25*A(349)+0.355*A(485)+0.034*A(486)+0.2*A(583)+0.1& + &*A(760) + P_VAR(219) = 0.5*A(120)+0.1*A(132)+0.1*A(133)+0.1*A(134)+0.1*A(135)+0.1*A(136)+0.1*A(137)+0.1*A(138)+0.1*A(139)+0.1& + &*A(140)+0.1*A(141)+0.1*A(142)+A(323)+0.13*A(571)+0.15*A(626)+0.3*A(627) + P_VAR(220) = A(398)+0.032*A(483)+0.671*A(484)+0.298*A(485) + P_VAR(221) = 0.34*A(66)+A(71)+0.16*A(95)+0.75*A(99)+0.791*A(124)+0.29*A(133)+A(136)+0.11*A(326)+A(367)+A(773)+0.34& + &*A(777)+A(848) + P_VAR(222) = 0.67*A(497) + P_VAR(223) = 0.134*A(112)+0.8*A(439)+0.52*A(441)+A(573)+0.636*A(579)+0.18*A(589)+0.12*A(590)+0.1*A(591)+0.06*A(597)& + &+0.6*A(623)+0.6*A(624)+0.2*A(625)+0.5*A(855)+0.429*A(857)+0.125*A(858)+0.586*A(882)+0.571*A(884) + P_VAR(224) = 0 + P_VAR(225) = A(335) + P_VAR(226) = 0.19*A(66)+0.35*A(95)+0.25*A(98)+0.271*A(133)+0.1*A(135)+0.44*A(326)+0.75*A(328)+1.125*A(329)+A(330)+0.53& + &*A(331)+0.53*A(332)+0.289*A(338)+0.41*A(343)+0.464*A(345)+0.34*A(349)+0.464*A(351)+0.464*A(353)+0.149& + &*A(355)+0.285*A(356)+0.19*A(777)+A(839) + P_VAR(227) = A(290)+A(292)+A(297)+A(299)+A(303)+0.008*A(307)+A(827) + P_VAR(228) = 0.294*A(404)+0.67*A(429)+0.81*A(431)+0.08*A(563) + P_VAR(229) = 0.068*A(404)+0.33*A(429)+0.19*A(431)+0.032*A(563) + P_VAR(230) = A(385)+0.5*A(387)+0.5*A(389)+0.55*A(395)+0.33*A(400)+0.19*A(402)+0.125*A(404)+0.125*A(411)+0.706*A(420)& + &+0.14*A(422)+0.054*A(507)+0.059*A(509)+0.335*A(543)+0.429*A(565)+0.75*A(566)+0.55*A(872)+0.5*A(889) + P_VAR(231) = A(386)+0.5*A(387)+0.5*A(391)+0.55*A(399)+0.17*A(401)+0.09*A(403)+0.158*A(404)+0.165*A(412)+0.716*A(416)& + &+0.14*A(418)+0.004*A(507)+0.006*A(509)+0.41*A(546)+0.5*A(562)+0.571*A(565)+0.25*A(566)+0.55*A(875)+0.5& + &*A(881)+0.15*A(887)+0.5*A(889) + P_VAR(232) = A(496)+0.33*A(497)+0.037*A(567) + P_VAR(233) = 0.3*A(33)+0.5*A(97)+A(119)+0.1*A(134)+A(310)+0.3*A(372)+0.3*A(373)+0.3*A(379)+0.3*A(381)+0.085*A(400)& + &+0.165*A(401)+0.355*A(404)+0.5*A(405)+0.018*A(413)+0.018*A(414)+0.52*A(434)+0.8*A(435)+0.545*A(521)+0.88& + &*A(524)+0.449*A(526)+0.187*A(537)+A(538)+A(540)+0.05*A(543)+0.242*A(544)+0.083*A(546)+0.14*A(550)+0.7& + &*A(561)+0.12*A(590)+0.2*A(591)+0.6*A(626)+0.6*A(627)+0.2*A(628)+0.5*A(855)+0.47*A(856)+0.571*A(857)+0.125& + &*A(858)+0.23*A(859)+0.118*A(882)+0.429*A(884)+A(888) + P_VAR(234) = 0.22*A(111)+0.58*A(369)+0.5*A(521)+0.88*A(524)+A(577) + P_VAR(235) = A(643)+A(645)+A(646) + P_VAR(236) = 0.294*A(420)+0.135*A(422)+A(424)+0.65*A(426)+0.52*A(434)+0.8*A(435)+0.459*A(461)+0.728*A(462)+0.551& + &*A(470)+0.935*A(471)+0.242*A(476)+0.546*A(477)+0.34*A(507)+0.384*A(509)+0.11*A(518)+0.09*A(519)+0.36& + &*A(543)+0.758*A(544)+0.2*A(583)+A(585)+A(586)+A(588)+A(602)+0.9*A(624)+0.95*A(627)+0.53*A(856)+0.69*A(861)& + &+0.5*A(880)+0.118*A(882)+0.25*A(883)+0.429*A(884)+0.3*A(886)+0.35*A(887)+A(888) + P_VAR(237) = A(61)+0.05*A(66)+0.07*A(80)+0.03*A(95)+0.03*A(109)+0.36*A(123)+0.045*A(133)+0.07*A(143)+0.07*A(144)& + &+A(169)+A(277)+0.07*A(756)+0.06*A(759)+0.05*A(777) + P_VAR(238) = A(324)+A(325) + P_VAR(239) = 0.34*A(66)+0.49*A(80)+0.16*A(95)+0.22*A(109)+0.36*A(122)+0.29*A(133)+0.49*A(143)+0.49*A(144)+0.16*A(336)& + &+0.49*A(756)+0.415*A(759)+0.34*A(777) + P_VAR(240) = 0.4*A(458)+0.4*A(459)+0.07*A(482)+0.532*A(483)+0.862*A(484)+0.401*A(485)+0.034*A(486)+0.159*A(488)+0.159& + &*A(490)+0.159*A(493)+A(495)+A(504)+0.159*A(877)+0.223*A(880) + P_VAR(241) = 0.6*A(459)+0.599*A(465)+A(466)+0.065*A(473)+0.142*A(474)+0.01*A(476)+0.028*A(477)+0.008*A(507)+0.015& + &*A(508)+0.014*A(509)+0.049*A(511)+0.161*A(514)+A(533)+A(545)+0.05*A(886) + P_VAR(242) = A(417)+A(421)+A(425)+0.482*A(461)+0.401*A(465)+0.418*A(470)+0.494*A(473)+0.621*A(476)+A(499)+A(500)+0.5& + &*A(506)+0.234*A(507)+0.387*A(508)+0.565*A(517) + P_VAR(243) = A(463)+A(467)+A(472)+A(475)+A(478)+A(492)+A(494)+A(510)+A(512)+0.18*A(519) + P_VAR(244) = 0.5*A(279)+A(371)+0.51*A(412)+0.03*A(414)+0.159*A(878) + P_VAR(245) = 0.5*A(279)+A(370)+0.75*A(411)+0.03*A(413)+0.841*A(878) + P_VAR(246) = 0.535*A(479)+A(503) + P_VAR(247) = 0.465*A(479)+A(502) + P_VAR(248) = 0.177*A(369)+0.063*A(374)+A(378)+2*A(382)+A(384)+A(388)+A(393)+0.035*A(400)+0.23*A(402)+0.125*A(411)& + &+A(446)+A(447)+0.479*A(480)+1.737*A(482)+0.544*A(483)+0.583*A(486)+0.903*A(487)+0.903*A(489)+0.904*A(491)& + &+0.04*A(590)+0.04*A(591)+A(864)+A(870)+A(873)+0.903*A(876)+0.05*A(880) + P_VAR(249) = A(529) + P_VAR(250) = 0.16*A(84)+0.2*A(97)+0.791*A(127)+0.065*A(141)+0.058*A(338)+A(364)+0.5*A(405)+0.284*A(416)+0.135*A(418)& + &+A(424)+0.65*A(426)+0.8*A(439)+0.52*A(441)+0.52*A(442)+0.8*A(444)+A(445)+0.459*A(461)+0.728*A(462)+0.441& + &*A(473)+0.858*A(474)+0.033*A(476)+0.071*A(477)+0.042*A(507)+0.051*A(509)+0.77*A(528)+0.84*A(542)+0.507& + &*A(546)+0.488*A(548)+A(549)+0.86*A(550)+0.5*A(554)+A(555)+A(557)+0.7*A(558)+0.25*A(560)+A(841)+0.77*A(859)& + &+A(862)+0.5*A(880)+0.586*A(882)+0.25*A(883)+0.571*A(884)+0.45*A(886)+0.8*A(887) + P_VAR(251) = 0.79*A(336)+0.308*A(340)+0.308*A(341)+0.615*A(342)+0.416*A(369)+0.063*A(376)+A(380)+2*A(383)+A(384)& + &+A(390)+A(397)+0.035*A(401)+0.14*A(403)+0.165*A(412)+A(448)+A(449)+0.048*A(480)+0.123*A(482)+0.019*A(483)& + &+0.028*A(486)+0.097*A(487)+0.097*A(489)+0.096*A(491)+A(865)+A(871)+A(874)+0.097*A(876)+0.005*A(880) + P_VAR(252) = 0.7*A(33)+A(82)+A(167)+A(278) + P_VAR(253) = 0.46*A(336)+0.289*A(338)+0.192*A(340)+0.192*A(341)+0.385*A(342)+A(765) + P_VAR(254) = A(91)+A(94)+0.62*A(331)+0.62*A(332)+0.42*A(336) + P_VAR(255) = A(77)+A(79)+A(81)+A(126)+0.33*A(623)+0.33*A(626)+0.15*A(759)+A(767) + P_VAR(256) = A(65)+A(74)+0.15*A(96)+0.21*A(125)+0.27*A(137)+A(280)+0.44*A(343)+0.2*A(628) + P_VAR(257) = A(75)+0.5*A(619)+0.5*A(620) + P_VAR(258) = A(60)+0.19*A(66)+0.27*A(80)+0.09*A(95)+0.12*A(109)+0.209*A(124)+0.162*A(133)+0.27*A(143)+0.27*A(144)& + &+A(276)+0.27*A(756)+0.23*A(759)+0.19*A(777) + P_VAR(259) = A(62)+0.15*A(66)+0.64*A(68)+0.75*A(83)+0.09*A(84)+0.13*A(95)+0.58*A(96)+0.25*A(100)+A(102)+0.64*A(123)& + &+1.185*A(125)+0.255*A(133)+0.613*A(137)+0.1*A(138)+0.035*A(141)+A(142)+0.43*A(326)+0.75*A(328)+A(329)& + &+A(330)+0.65*A(331)+0.65*A(332)+0.491*A(338)+0.08*A(343)+1.24*A(345)+0.93*A(349)+1.24*A(351)+1.24*A(353)& + &+0.64*A(355)+1.21*A(356)+A(368)+1.2*A(625)+1.15*A(628)+A(770)+A(772)+1.5*A(774)+0.15*A(777)+A(837)+A(840)& + &+A(849) + P_VAR(260) = A(153)+A(160)+A(649)+A(676)+A(677)+A(678) + P_VAR(261) = 0.95*A(51)+A(52)+A(54)+A(69)+0.919*A(70)+0.15*A(87)+0.15*A(88)+0.3*A(97)+0.5*A(98)+A(116)+A(118)+0.78& + &*A(129)+0.9*A(134)+0.9*A(135)+A(166)+0.3*A(372)+0.3*A(379)+0.018*A(413)+0.38*A(521)+0.12*A(524)+0.04& + &*A(526)+0.097*A(537)+A(541)+0.36*A(543)+0.758*A(544)+0.175*A(547)+0.087*A(548)+0.35*A(552)+0.3*A(561)& + &+A(568)+A(569)+0.12*A(753)+0.7*A(755)+A(757)+0.85*A(759)+A(764)+A(766)+A(768)+A(769)+A(832)+A(852)+A(853)& + &+A(854)+0.5*A(855)+0.53*A(856)+0.429*A(857)+0.125*A(858)+0.262*A(860)+1.01*A(861) + P_VAR(262) = A(250) + P_VAR(263) = A(11)+A(12)+A(17)+A(26)+A(29)+2*A(30)+0.87*A(31)+0.3*A(32)+A(48)+0.05*A(51)+A(64)+0.64*A(68)+A(69)+A(73)& + &+0.75*A(83)+1.25*A(84)+0.15*A(87)+0.75*A(92)+0.75*A(93)+0.75*A(95)+0.95*A(96)+0.5*A(97)+0.75*A(98)+0.75& + &*A(99)+1.25*A(100)+0.5*A(111)+0.732*A(112)+0.22*A(129)+A(132)+0.9*A(134)+0.351*A(137)+0.9*A(138)+0.9& + &*A(141)+A(144)+A(148)+A(150)+0.25*A(180)+A(223)+A(268)+A(273)+A(309)+A(311)+A(312)+A(313)+0.06*A(314)+0.06& + &*A(315)+A(316)+A(317)+0.23*A(326)+0.75*A(328)+0.04*A(336)+0.231*A(338)+1.04*A(340)+0.385*A(341)+0.385& + &*A(342)+0.287*A(345)+A(348)+0.85*A(349)+0.287*A(351)+0.287*A(353)+0.202*A(355)+0.504*A(356)+A(365)+0.827& + &*A(369)+0.3*A(372)+0.3*A(373)+0.063*A(374)+0.063*A(376)+A(378)+0.3*A(379)+A(380)+0.3*A(381)+2*A(382)+2& + &*A(383)+2*A(384)+2*A(388)+A(389)+2*A(390)+A(391)+A(393)+A(397)+0.085*A(400)+0.165*A(401)+0.5*A(405)+0.018& + &*A(413)+0.018*A(414)+0.716*A(416)+0.14*A(418)+0.706*A(420)+0.14*A(422)+0.65*A(442)+A(444)+0.059*A(461)& + &+0.272*A(462)+0.599*A(465)+A(466)+0.031*A(470)+0.065*A(471)+0.065*A(473)+0.142*A(474)+0.104*A(476)+0.383& + &*A(477)+0.527*A(480)+1.86*A(482)+0.563*A(483)+0.645*A(485)+1.577*A(486)+A(487)+A(489)+A(491)+0.126*A(507)& + &+0.088*A(508)+0.249*A(509)+0.34*A(511)+0.6*A(521)+0.12*A(524)+0.241*A(526)+0.05*A(543)+0.242*A(544)+0.083& + &*A(546)+0.5*A(547)+0.25*A(548)+0.14*A(550)+A(552)+A(558)+0.022*A(567)+0.5*A(570)+A(572)+A(577)+0.8*A(583)& + &+2*A(584)+A(595)+A(621)+A(622)+A(635)+A(743)+0.9*A(760)+A(763)+A(766)+A(768)+A(769)+A(775)+A(830)+A(832)& + &+A(838)+A(846)+A(850)+A(851)+A(853)+A(854)+0.47*A(856)+0.23*A(859)+0.75*A(860)+A(864)+A(865)+A(873)+A(874)& + &+A(876)+0.055*A(880)+0.133*A(882)+0.55*A(886)+0.15*A(887) + P_VAR(264) = A(57)+A(59)+A(64)+0.34*A(66)+0.97*A(68)+0.919*A(70)+A(73)+0.5*A(84)+0.15*A(88)+0.75*A(92)+0.75*A(93)+0.16& + &*A(95)+0.38*A(96)+0.5*A(98)+0.5*A(100)+A(101)+1.6*A(103)+1.6*A(104)+0.5*A(111)+0.64*A(122)+0.29*A(133)+0.9& + &*A(135)+0.675*A(137)+0.9*A(138)+A(139)+A(140)+0.9*A(141)+A(271)+A(272)+A(274)+A(318)+A(319)+A(320)+A(321)& + &+A(322)+A(366)+A(771)+A(775)+A(776)+0.34*A(777)+A(847) + P_VAR(265) = A(35)+A(50)+A(52)+A(74)+A(81)+A(94)+A(117)+A(118)+A(130)+A(150)+A(362)+A(363)+0.32*A(525)+A(568)+0.742& + &*A(598)+0.5*A(600)+0.5*A(603)+A(605)+0.5*A(620)+0.5*A(638)+A(639)+2*A(642)+A(643)+2*A(644)+A(645)+A(646)& + &+A(649)+A(650)+A(651)+A(652)+A(653)+A(654)+A(655)+A(656)+A(657)+A(697)+A(698)+A(699)+A(704)+A(705)+A(706)& + &+A(707) + P_VAR(266) = A(25)+0.7*A(32)+A(55)+0.19*A(66)+A(76)+0.85*A(88)+0.09*A(95)+0.25*A(98)+0.28*A(111)+0.5*A(120)+2*A(131)& + &+0.9*A(132)+0.9*A(133)+0.9*A(134)+0.9*A(135)+0.9*A(136)+0.9*A(137)+0.9*A(138)+0.9*A(139)+0.9*A(140)+0.9& + &*A(141)+0.9*A(142)+A(143)+A(147)+A(148)+A(149)+A(150)+0.75*A(180)+0.9*A(206)+A(207)+A(240)+A(269)+A(275)& + &+A(308)+0.5*A(329)+0.5*A(341)+A(350)+0.5*A(351)+0.407*A(369)+A(487)+A(488)+0.325*A(547)+0.162*A(548)+0.65& + &*A(552)+0.5*A(571)+A(596)+0.88*A(753)+0.3*A(755)+A(757)+2*A(758)+0.15*A(759)+A(767)+A(776)+0.19*A(777)& + &+A(778)+A(787)+A(788)+A(831)+0.488*A(860) + P_VAR(267) = A(34)+A(50)+0.05*A(51)+0.56*A(111)+0.505*A(112)+A(113)+2*A(115)+A(116)+2*A(117)+A(118)+0.5*A(120)+A(165)& + &+A(187)+A(201)+A(241)+A(264)+A(265)+A(266)+0.14*A(331)+0.14*A(332)+0.14*A(336)+0.407*A(369)+0.6*A(372)+0.9& + &*A(373)+0.6*A(379)+0.9*A(381)+A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)+0.55*A(395)+0.55*A(399)+0.45& + &*A(400)+0.37*A(401)+0.42*A(402)+0.23*A(403)+0.638*A(404)+1.5*A(405)+A(406)+0.25*A(411)+0.33*A(412)+0.036& + &*A(413)+0.054*A(414)+A(433)+0.13*A(434)+0.2*A(435)+A(438)+0.2*A(439)+0.13*A(441)+0.52*A(442)+0.8*A(444)+2& + &*A(445)+0.6*A(458)+0.6*A(459)+0.539*A(514)+0.33*A(515)+0.33*A(516)+0.28*A(521)+0.036*A(522)+0.12*A(524)& + &+0.68*A(525)+0.77*A(528)+0.25*A(530)+0.75*A(537)+A(538)+A(540)+2*A(541)+0.84*A(542)+0.507*A(546)+0.325& + &*A(547)+0.488*A(548)+A(549)+0.86*A(550)+0.65*A(552)+0.25*A(560)+A(561)+A(562)+0.888*A(563)+A(566)+A(572)& + &+0.364*A(579)+0.2*A(589)+0.27*A(590)+0.3*A(591)+0.15*A(619)+0.15*A(620)+0.26*A(623)+0.5*A(624)+0.25*A(626)& + &+0.5*A(627)+0.05*A(628)+A(744)+A(745)+0.88*A(753)+A(754)+A(756)+A(758)+A(760)+2*A(761)+2*A(762)+A(763)& + &+A(764)+A(765)+A(766)+A(768)+A(834)+A(838)+A(851)+A(854)+0.5*A(855)+0.571*A(857)+0.875*A(858)+0.77*A(859)& + &+A(862)+A(863)+0.888*A(868)+0.818*A(869)+A(870)+A(871)+0.55*A(872)+0.55*A(875)+0.839*A(879)+A(881)+0.163& + &*A(882)+A(885)+A(889)+A(891)+A(894) + P_VAR(268) = A(301)+A(304)+A(699) + P_VAR(269) = A(286)+A(288)+0.2*A(293)+0.809*A(298)+A(301)+A(302)+A(305)+0.4*A(306)+0.996*A(307)+A(308)+2*A(814)+A(815)& + &+A(816)+A(817)+A(818)+A(819)+A(820)+A(821)+A(822)+2*A(823)+A(824)+A(825)+A(828)+A(829) + P_VAR(270) = A(288)+A(289) + P_VAR(271) = A(222)+A(226)+A(227)+A(230)+A(231)+A(248)+A(651) + P_VAR(272) = A(739)+A(833) + P_VAR(273) = A(155)+2*A(156)+A(158)+A(160)+A(162)+A(163)+3*A(172)+2*A(173)+A(174)+A(200)+0.6*A(203)+0.56*A(207)+0.95& + &*A(208)+1.4*A(209)+0.34*A(213)+0.75*A(221)+A(259)+A(260)+A(292)+A(293)+2*A(779)+A(780)+A(781)+A(782)& + &+A(784)+3*A(785)+2*A(786)+A(787)+A(790)+A(810)+A(811)+2*A(812)+A(825)+A(828) + P_VAR(274) = A(152)+A(161)+A(164)+0.2*A(203)+0.44*A(207)+0.95*A(208)+0.7*A(209)+0.31*A(213)+0.45*A(214)+0.75*A(221)& + &+A(783) + P_VAR(275) = 0.12*A(202)+A(225)+A(240)+A(241)+A(243)+A(244)+A(245)+2*A(264)+A(265)+A(266)+A(267)+A(269)+A(270)+A(273)& + &+A(274)+A(275)+A(276)+A(277)+A(278)+A(279)+A(280)+A(281)+A(668) + P_VAR(276) = A(11)+A(148)+0.75*A(149)+A(150)+A(187)+A(188)+A(834)+A(835) + P_VAR(277) = A(680) + P_VAR(278) = A(18)+A(20)+A(21)+A(25)+A(32)+A(33)+A(34)+A(36)+A(38)+A(41)+A(47)+A(51)+A(56)+A(75)+A(76)+A(77)+A(82)& + &+A(91)+A(155)+A(174)+A(183)+0.02*A(196)+A(228)+A(229)+A(232)+A(235)+A(236)+A(237)+A(238)+A(239)+A(267)& + &+A(302)+A(303)+A(308)+A(637)+A(664)+A(665)+A(666)+A(667)+A(669)+A(670)+A(671)+A(672) + P_VAR(279) = A(49)+1.22*A(179)+A(189)+A(197)+2*A(284)+A(576)+A(630)+A(632)+A(634)+A(741)+A(747)+A(751)+A(818) + P_VAR(280) = A(2) + P_VAR(281) = A(16)+A(36)+A(46)+A(159)+A(192)+A(231)+A(262)+A(263)+A(291)+A(313)+A(320)+A(364)+0.69*A(526)+A(560)& + &+A(612)+A(748)+A(752)+0.3*A(755)+A(782)+A(796)+A(820)+A(830) + P_VAR(282) = 0.15*A(109)+A(181)+0.13*A(547)+0.13*A(554)+0.13*A(571)+0.15*A(606) + P_VAR(283) = A(679) + P_VAR(284) = A(14)+A(17)+A(21)+A(24)+A(26)+2*A(30)+1.74*A(31)+A(34)+A(40)+A(44)+A(47)+A(48)+A(50)+0.05*A(51)+A(57)& + &+A(59)+A(62)+A(64)+0.27*A(66)+A(71)+A(83)+A(84)+A(92)+A(93)+0.64*A(95)+0.5*A(96)+0.3*A(97)+0.5*A(98)+A(99)& + &+0.5*A(100)+A(101)+A(102)+1.2*A(103)+1.2*A(104)+0.28*A(111)+0.773*A(112)+A(115)+A(117)+A(119)+0.9*A(132)& + &+0.243*A(133)+0.9*A(136)+0.9*A(139)+0.9*A(140)+0.9*A(141)+0.9*A(142)+A(144)+A(151)+A(163)+A(165)+A(174)& + &+0.2*A(180)+A(193)+A(194)+A(201)+A(223)+A(224)+A(232)+A(233)+A(234)+A(241)+A(244)+A(264)+A(265)+A(266)& + &+A(268)+A(271)+A(272)+A(273)+0.82*A(326)+A(328)+0.5*A(329)+A(330)+0.1*A(331)+0.1*A(332)+0.1*A(336)+0.686& + &*A(338)+A(340)+0.5*A(341)+A(342)+A(344)+2*A(348)+0.5*A(349)+A(350)+A(352)+A(354)+0.5*A(355)+0.16*A(369)& + &+0.4*A(372)+0.7*A(373)+0.063*A(374)+0.063*A(376)+0.4*A(379)+0.7*A(381)+2*A(382)+2*A(383)+2*A(384)+A(385)& + &+A(386)+A(387)+2*A(388)+1.5*A(389)+2*A(390)+1.5*A(391)+A(393)+0.45*A(395)+A(397)+0.45*A(399)+0.085*A(400)& + &+0.165*A(401)+0.283*A(404)+A(406)+0.25*A(411)+0.33*A(412)+0.024*A(413)+0.042*A(414)+A(416)+0.275*A(418)& + &+A(420)+0.275*A(422)+0.75*A(427)+A(428)+A(430)+A(432)+0.65*A(434)+A(435)+A(437)+A(439)+0.65*A(441)+0.65& + &*A(442)+A(444)+A(445)+0.4*A(458)+0.4*A(459)+A(460)+0.059*A(461)+0.272*A(462)+A(464)+0.599*A(465)+A(466)& + &+A(468)+A(469)+0.582*A(470)+A(471)+0.506*A(473)+A(474)+0.379*A(476)+A(477)+0.089*A(483)+0.064*A(484)+0.336& + &*A(485)+0.611*A(486)+0.159*A(488)+0.159*A(490)+0.159*A(493)+A(495)+0.326*A(507)+0.58*A(508)+0.5*A(509)& + &+0.904*A(511)+0.295*A(514)+0.33*A(515)+0.33*A(516)+0.89*A(518)+0.73*A(519)+0.1*A(521)+0.036*A(522)+0.715& + &*A(537)+A(539)+A(541)+A(542)+0.305*A(543)+0.242*A(544)+0.507*A(546)+0.86*A(550)+0.7*A(558)+0.5*A(562)& + &+0.444*A(563)+0.62*A(567)+0.5*A(570)+A(575)+0.364*A(579)+0.6*A(583)+A(584)+A(585)+0.54*A(589)+0.19*A(590)& + &+0.15*A(591)+A(592)+A(593)+A(594)+2*A(595)+A(596)+0.8*A(597)+0.727*A(599)+A(602)+A(621)+A(622)+0.33*A(623)& + &+0.1*A(624)+0.2*A(625)+0.33*A(626)+0.1*A(627)+0.2*A(628)+A(629)+A(631)+A(633)+A(635)+A(743)+A(744)+A(749)& + &+A(753)+A(756)+1.73*A(760)+2*A(761)+A(764)+A(766)+A(768)+A(769)+A(770)+A(771)+A(772)+A(773)+A(774)+A(775)& + &+A(776)+0.27*A(777)+A(830)+A(837)+A(838)+A(846)+A(847)+A(848)+A(849)+A(851)+A(852)+A(854)+1.5*A(855)+0.47& + &*A(856)+0.571*A(857)+0.125*A(858)+A(859)+0.29*A(861)+A(862)+A(863)+A(864)+A(865)+A(866)+A(867)+0.112& + &*A(868)+0.182*A(869)+A(870)+A(871)+0.45*A(872)+A(873)+A(874)+0.45*A(875)+0.33*A(876)+0.159*A(877)+0.161& + &*A(879)+0.228*A(880)+1.5*A(881)+A(882)+0.75*A(883)+A(884)+1.454*A(885)+0.7*A(886)+0.7*A(887)+A(889)+A(891)& + &+A(894) + P_VAR(285) = 0.22*A(202)+0.75*A(204)+0.79*A(205)+0.46*A(206)+0.56*A(210)+0.9*A(211)+0.86*A(212)+0.34*A(213)+0.69& + &*A(215)+0.65*A(216)+0.79*A(217)+0.8*A(218)+0.85*A(219)+0.86*A(220)+A(229)+A(242)+A(246)+2*A(257)+0.1& + &*A(258)+A(262)+A(268)+A(271)+A(272)+A(793)+A(797) + P_VAR(286) = A(15)+A(22)+0.3*A(32)+0.3*A(33)+A(42)+0.15*A(87)+0.15*A(88)+0.44*A(109)+0.36*A(111)+0.227*A(112)+A(113)& + &+A(120)+0.791*A(121)+0.64*A(122)+0.64*A(123)+0.791*A(124)+0.79*A(125)+0.791*A(127)+A(128)+0.22*A(129)& + &+A(161)+A(162)+2*A(175)+A(178)+0.75*A(180)+A(185)+A(193)+A(195)+1.788*A(196)+A(201)+0.66*A(202)+0.6*A(203)& + &+0.05*A(210)+A(246)+0.85*A(331)+0.85*A(332)+0.85*A(336)+0.49*A(343)+0.28*A(369)+1.5*A(372)+1.5*A(373)& + &+0.063*A(374)+0.063*A(376)+A(378)+1.5*A(379)+A(380)+1.5*A(381)+A(385)+A(386)+A(387)+0.5*A(389)+0.5*A(391)& + &+0.55*A(395)+0.55*A(399)+1.085*A(400)+1.165*A(401)+A(402)+A(403)+1.065*A(404)+A(405)+A(408)+A(410)+0.405& + &*A(413)+0.745*A(414)+A(415)+0.275*A(418)+A(419)+0.275*A(422)+A(424)+1.3*A(426)+A(433)+0.65*A(434)+A(438)& + &+0.65*A(441)+0.65*A(442)+A(445)+A(446)+2*A(447)+A(448)+2*A(449)+0.6*A(458)+0.6*A(459)+0.518*A(461)+0.599& + &*A(465)+0.582*A(470)+0.506*A(473)+0.379*A(476)+0.527*A(480)+A(499)+A(500)+A(504)+A(505)+A(506)+1.147& + &*A(507)+0.646*A(508)+0.435*A(509)+0.096*A(511)+0.244*A(514)+A(516)+0.82*A(519)+0.08*A(521)+0.12*A(524)& + &+0.68*A(525)+0.02*A(526)+A(527)+A(528)+A(530)+A(532)+A(535)+0.285*A(537)+A(538)+A(540)+0.665*A(543)+0.59& + &*A(546)+0.5*A(547)+0.585*A(548)+A(549)+0.5*A(554)+0.7*A(561)+0.5*A(562)+0.444*A(563)+A(564)+A(565)+0.3& + &*A(567)+0.5*A(570)+0.5*A(571)+A(572)+A(573)+A(574)+0.636*A(579)+A(588)+A(592)+A(602)+0.2*A(606)+0.25& + &*A(623)+0.1*A(624)+0.25*A(626)+0.1*A(627)+2*A(742)+A(743)+A(746)+A(747)+A(748)+0.07*A(760)+A(770)+A(771)& + &+A(772)+A(773)+A(774)+A(775)+A(776)+A(778)+A(781)+A(798)+A(815)+A(832)+2*A(835)+A(837)+2*A(850)+A(851)& + &+A(856)+A(857)+1.75*A(858)+A(859)+0.75*A(860)+0.01*A(861)+A(863)+A(864)+A(865)+A(866)+A(867)+1.662*A(868)& + &+1.637*A(869)+A(870)+A(871)+0.55*A(872)+0.55*A(875)+0.67*A(876)+A(877)+0.645*A(879)+0.5*A(881)+A(882)+1.25& + &*A(883)+A(884)+0.546*A(885)+A(886)+0.3*A(887)+A(888)+A(890)+A(892) + P_VAR(287) = A(5) + P_VAR(288) = A(18)+A(176)+A(177)+A(186)+0.02*A(196)+A(197)+A(198)+A(199)+0.12*A(202)+0.2*A(203)+0.25*A(204)+0.21& + &*A(205)+0.1*A(206)+0.05*A(208)+0.3*A(209)+0.25*A(210)+0.1*A(211)+0.14*A(212)+0.35*A(213)+0.55*A(214)+0.31& + &*A(215)+0.35*A(216)+0.21*A(217)+0.1*A(218)+0.1*A(219)+0.14*A(220)+0.25*A(221)+A(738)+2*A(740)+A(741)& + &+A(750)+A(780)+A(792)+A(793)+A(816)+A(836) + P_VAR(289) = A(154)+A(165)+A(166)+A(167)+A(168)+A(169)+0.2*A(203)+A(282)+A(675) + P_VAR(290) = 0.66*A(202)+0.75*A(204)+2.37*A(205)+0.35*A(206)+0.19*A(210)+1.8*A(211)+0.86*A(212)+0.31*A(213)+0.69& + &*A(215)+0.79*A(217)+1.9*A(218)+0.95*A(219)+A(222)+A(224)+A(228)+A(232)+2*A(233)+3*A(234)+3*A(235)+A(236)+2& + &*A(237)+A(238)+2*A(239)+A(247)+A(249)+A(252)+A(253)+A(255)+2*A(265)+3*A(266)+0.249*A(298)+A(788)+2*A(789)& + &+A(790)+2*A(791)+A(792)+A(794)+A(795)+A(796)+A(798)+3*A(799)+4*A(800)+3*A(801)+2*A(802)+3*A(803)+2*A(804)& + &+A(805)+2*A(806)+2*A(807)+A(808)+A(809)+A(811)+A(813)+A(824)+A(829) + P_VAR(291) = A(13)+A(22)+A(26)+A(38)+A(40)+A(41)+A(42)+2*A(43)+A(44)+A(46)+A(49)+A(54)+A(55)+A(57)+A(59)+A(62)+A(64)& + &+A(66)+2*A(68)+A(69)+0.928*A(70)+A(71)+2*A(73)+A(79)+A(80)+A(96)+A(100)+A(137)+A(138)+2*A(145)+A(147)& + &+A(158)+A(164)+A(190)+A(191)+A(230)+A(249)+A(286)+2*A(287)+A(290)+A(297)+A(305)+A(309)+A(310)+A(312)& + &+A(319)+0.82*A(326)+A(330)+0.78*A(338)+A(342)+A(344)+2*A(345)+0.5*A(349)+A(351)+A(352)+2*A(353)+0.5*A(355)& + &+A(356)+A(365)+A(366)+A(367)+A(368)+A(393)+A(395)+A(397)+A(399)+A(416)+A(420)+A(424)+A(435)+A(439)+A(444)& + &+A(446)+A(448)+A(451)+A(453)+A(454)+A(456)+0.459*A(461)+1.728*A(462)+A(466)+A(471)+A(474)+A(477)+0.527& + &*A(480)+1.86*A(482)+0.563*A(483)+0.611*A(486)+A(487)+2*A(489)+A(490)+2*A(491)+A(493)+A(501)+0.058*A(507)& + &+1.065*A(509)+A(511)+A(513)+A(515)+0.565*A(517)+1.11*A(518)+0.09*A(519)+0.31*A(526)+A(531)+A(534)+A(544)& + &+A(550)+A(552)+0.5*A(554)+2*A(555)+A(556)+2*A(557)+0.7*A(558)+A(559)+A(566)+0.022*A(567)+A(568)+0.995& + &*A(581)+A(582)+A(586)+A(593)+A(594)+A(607)+A(610)+A(611)+A(613)+A(614)+0.5*A(619)+A(620)+A(635)+A(746)& + &+A(749)+A(750)+A(752)+0.7*A(755)+A(770)+A(777)+A(783)+A(784)+A(795)+A(797)+A(819)+A(831)+A(838)+A(839)& + &+A(840)+A(841)+A(843)+A(845)+A(846)+A(847)+A(848)+A(849)+A(853)+0.7*A(861)+A(862)+A(872)+A(873)+A(874)& + &+A(875)+A(876)+A(878)+A(879)+1.555*A(880)+0.3*A(886)+A(887)+A(888)+A(889) ! Destruction function - D_VAR(1) = RCT(843) - D_VAR(2) = RCT(845) - D_VAR(3) = RCT(844) + D_VAR(1) = RCT(823) + D_VAR(2) = RCT(825) + D_VAR(3) = RCT(824) D_VAR(4) = 0 D_VAR(5) = 0 D_VAR(6) = 0 @@ -5668,22 +5654,22 @@ SUBROUTINE Fun_SPLITF ( V, F, RCT, P_VAR, D_VAR, Aout ) D_VAR(9) = 0 D_VAR(10) = 0 D_VAR(11) = 0 - D_VAR(12) = RCT(656)*V(281)+RCT(657)*V(280) - D_VAR(13) = 0 + D_VAR(12) = 0 + D_VAR(13) = RCT(629)*V(284)+RCT(630)*V(279) D_VAR(14) = 0 D_VAR(15) = 0 D_VAR(16) = 0 - D_VAR(17) = RCT(602)*V(281)+RCT(603)*V(280) - D_VAR(18) = RCT(601)*V(269) - D_VAR(19) = 0 + D_VAR(17) = 0 + D_VAR(18) = RCT(575)*V(284)+RCT(576)*V(279) + D_VAR(19) = RCT(574)*V(286) D_VAR(20) = 0 - D_VAR(21) = RCT(658)*V(281)+RCT(659)*V(280) - D_VAR(22) = 0 - D_VAR(23) = RCT(138)*V(269)+RCT(737) - D_VAR(24) = 0 + D_VAR(21) = 0 + D_VAR(22) = RCT(631)*V(284)+RCT(632)*V(279) + D_VAR(23) = 0 + D_VAR(24) = RCT(128)*V(286)+RCT(717) D_VAR(25) = 0 - D_VAR(26) = RCT(660)*V(281)+RCT(661)*V(280) - D_VAR(27) = 0 + D_VAR(26) = 0 + D_VAR(27) = RCT(633)*V(284)+RCT(634)*V(279) D_VAR(28) = 0 D_VAR(29) = 0 D_VAR(30) = 0 @@ -5694,375 +5680,374 @@ SUBROUTINE Fun_SPLITF ( V, F, RCT, P_VAR, D_VAR, Aout ) D_VAR(35) = 0 D_VAR(36) = 0 D_VAR(37) = 0 - D_VAR(38) = RCT(319)+RCT(716)+RCT(717)+RCT(718)+RCT(846) - D_VAR(39) = RCT(256)*V(269)+RCT(819) - D_VAR(40) = RCT(333)+RCT(334)+RCT(710)+RCT(711)+RCT(712)+RCT(841) - D_VAR(41) = RCT(390) - D_VAR(42) = RCT(240)*V(268)+RCT(824) - D_VAR(43) = RCT(335)*V(269)+RCT(842) - D_VAR(44) = RCT(235)*V(268)+RCT(830) - D_VAR(45) = RCT(242)*V(268)+RCT(832) - D_VAR(46) = RCT(241)*V(268)+RCT(825) - D_VAR(47) = RCT(713)+RCT(714)+RCT(715)+RCT(847) - D_VAR(48) = RCT(239)*V(268)+RCT(823) - D_VAR(49) = RCT(81) - D_VAR(50) = RCT(804) - D_VAR(51) = RCT(227)*V(268)+RCT(820) - D_VAR(52) = RCT(232)*V(268)+RCT(821) - D_VAR(53) = RCT(233)*V(268)+RCT(822) - D_VAR(54) = RCT(606)*V(269) - D_VAR(55) = RCT(234)*V(268)+RCT(831) - D_VAR(56) = RCT(306)*2*V(56)+RCT(838) - D_VAR(57) = RCT(195)*V(268)+RCT(196)*V(268)+RCT(853) - D_VAR(58) = RCT(864)+RCT(865) - D_VAR(59) = RCT(862)+RCT(863) - D_VAR(60) = RCT(616)*V(269) - D_VAR(61) = RCT(219)*F(3)+RCT(220)*V(280)+RCT(221)*V(270) - D_VAR(62) = RCT(207)*V(284)+RCT(208)*V(269)+RCT(854) - D_VAR(63) = RCT(56)+RCT(775) - D_VAR(64) = RCT(613)*V(269) - D_VAR(65) = RCT(327)*V(269)+RCT(707)+RCT(708)+RCT(709) - D_VAR(66) = RCT(139)*V(269)+RCT(798) - D_VAR(67) = RCT(636)*V(269)+RCT(912) - D_VAR(68) = RCT(255)*V(269)+RCT(288)*V(285) - D_VAR(69) = RCT(848) - D_VAR(70) = RCT(189)*V(269)+RCT(229)*V(268)+RCT(806) - D_VAR(71) = RCT(163)+RCT(850)+RCT(851) - D_VAR(72) = RCT(248)*V(269)+RCT(278)+RCT(814) - D_VAR(73) = RCT(254)*V(269)+RCT(287)*V(285)+RCT(809) - D_VAR(74) = RCT(188)*V(269)+RCT(230)*V(268)+RCT(805) - D_VAR(75) = RCT(604)*V(277)+RCT(605)*V(269) - D_VAR(76) = RCT(617)*V(269) - D_VAR(77) = RCT(618)*V(269) - D_VAR(78) = RCT(238)*V(268)+RCT(260)*V(269)+RCT(826) - D_VAR(79) = RCT(236)*V(268)+RCT(258)*V(269)+RCT(827) - D_VAR(80) = RCT(237)*V(268)+RCT(259)*V(269)+RCT(828) - D_VAR(81) = RCT(231)*V(268)+RCT(257)*V(269)+RCT(829) - D_VAR(82) = RCT(164)*V(269)+RCT(165)*V(269)+RCT(166)*V(287) - D_VAR(83) = RCT(597)*V(269)+RCT(870) - D_VAR(84) = RCT(588)*V(269)+RCT(744) - D_VAR(85) = RCT(11)+RCT(12)*V(269) - D_VAR(86) = RCT(394)*V(269)+RCT(868) - D_VAR(87) = RCT(392)*V(269)+RCT(866) - D_VAR(88) = RCT(393)*V(269)+RCT(867) - D_VAR(89) = RCT(395)*V(269)+RCT(869) - D_VAR(90) = RCT(317)*V(223)+RCT(318)*2*V(90)+RCT(320)*V(280)+RCT(837) - D_VAR(91) = RCT(135)*V(269)+RCT(794) - D_VAR(92) = RCT(133)*V(269)+RCT(792) - D_VAR(93) = RCT(134)*V(269)+RCT(793) - D_VAR(94) = RCT(136)*V(269)+RCT(796) - D_VAR(95) = RCT(637)+RCT(638)*V(269) - D_VAR(96) = RCT(389) - D_VAR(97) = RCT(190)*V(269)+RCT(228)*V(268)+RCT(807) - D_VAR(98) = RCT(849) - D_VAR(99) = RCT(631)*V(269)+RCT(632)*V(287)+RCT(911) - D_VAR(100) = RCT(253)*V(269)+RCT(286)*V(285)+RCT(808) - D_VAR(101) = RCT(42)+RCT(43)*V(269)+RCT(768)+RCT(769) - D_VAR(102) = RCT(611)+RCT(612)*F(3) - D_VAR(103) = RCT(276)+RCT(279)*V(285)+RCT(280)*V(285)+RCT(833) - D_VAR(104) = RCT(596)*V(269)+RCT(743)+RCT(872) - D_VAR(105) = RCT(643)*V(269)+RCT(913) - D_VAR(106) = RCT(433)*V(269) - D_VAR(107) = RCT(247)*V(269)+RCT(813) - D_VAR(108) = RCT(132)*V(269)+RCT(791) - D_VAR(109) = RCT(626)*V(269)+RCT(627)*V(287) - D_VAR(110) = RCT(137)*V(269)+RCT(795) - D_VAR(111) = RCT(131)*V(269)+RCT(790) - D_VAR(112) = RCT(67)*V(269)+RCT(76)*V(287)+RCT(302)*V(285) - D_VAR(113) = RCT(614)*V(269)+RCT(615)*V(269)+RCT(910) - D_VAR(114) = RCT(454)*V(269)+RCT(736) - D_VAR(115) = RCT(566)*V(269) - D_VAR(116) = RCT(475)*V(280)+RCT(476)*V(281) - D_VAR(117) = RCT(624)*V(269)+RCT(625)*V(287) - D_VAR(118) = RCT(370)*V(269)+RCT(857) - D_VAR(119) = RCT(855) - D_VAR(120) = RCT(473)*V(280)+RCT(474)*V(281) - D_VAR(121) = RCT(62)*V(269)+RCT(63)*V(269)+RCT(185)*V(282)+RCT(298)*V(285)+RCT(299)*V(285) - D_VAR(122) = RCT(590)*V(269)+RCT(905) - D_VAR(123) = RCT(522)*F(3)+RCT(523) - D_VAR(124) = RCT(430)*V(269)+RCT(891) - D_VAR(125) = RCT(176)*V(269)+RCT(799) - D_VAR(126) = RCT(429)*V(269)+RCT(890) - D_VAR(127) = RCT(455)*V(269)+RCT(456)*V(269)+RCT(734) - D_VAR(128) = RCT(457)*V(269)+RCT(458)*V(269)+RCT(735) - D_VAR(129) = RCT(103)*V(269)+RCT(296)*V(285) - D_VAR(130) = RCT(569)*V(269) - D_VAR(131) = RCT(391)*V(269)+RCT(742)+RCT(861) - D_VAR(132) = RCT(810) - D_VAR(133) = RCT(575)*V(269)+RCT(880) - D_VAR(134) = RCT(32)*V(269)+RCT(33)*V(269)+RCT(291)*V(285)+RCT(763) - D_VAR(135) = RCT(4)*V(277)*V(286)+RCT(5)*V(271)+RCT(6)*V(260) - D_VAR(136) = RCT(477)*V(269)+RCT(478)*V(269)+RCT(746)+RCT(893) - D_VAR(137) = RCT(479)*V(269)+RCT(480)*V(269)+RCT(747)+RCT(894) - D_VAR(138) = RCT(628)*V(269)+RCT(629)*V(277)+RCT(630)*V(287) - D_VAR(139) = RCT(591)*V(269)+RCT(903) - D_VAR(140) = RCT(310)*V(287)+RCT(326)*V(269)+RCT(834) - D_VAR(141) = RCT(558)*V(280)+RCT(559)*V(281)+RCT(560)*V(270) - D_VAR(142) = RCT(561)*V(280)+RCT(562)*V(281)+RCT(563)*V(270) - D_VAR(143) = RCT(545)*V(280)+RCT(546)*V(281) - D_VAR(144) = RCT(1)*V(277)*V(286)+RCT(2)*V(271)+RCT(3)*V(260) - D_VAR(145) = RCT(653)*V(269)+RCT(654)*V(277)+RCT(655) - D_VAR(146) = RCT(542)*V(280)+RCT(543)*V(281) - D_VAR(147) = RCT(525)*V(269)+RCT(527)*V(269)+RCT(528)*V(269)+RCT(530)*V(269)+RCT(531)*V(269)+RCT(750)+RCT(897)& - &+RCT(898) - D_VAR(148) = RCT(491)+RCT(492)*V(281)+RCT(493)*V(280)+RCT(494)*V(280) - D_VAR(149) = RCT(586)+RCT(587)*V(269) - D_VAR(150) = RCT(351)*V(269)+RCT(358)*V(277)+RCT(360)*V(287) - D_VAR(151) = RCT(352)*V(269)+RCT(359)*V(277)+RCT(361)*V(287) - D_VAR(152) = RCT(565)*V(269)+RCT(877) - D_VAR(153) = RCT(434)*V(269)+RCT(435)*V(269)+RCT(438)*V(269)+RCT(884) - D_VAR(154) = RCT(104)*V(269) - D_VAR(155) = RCT(650)*V(269)+RCT(651)*V(277)+RCT(652) - D_VAR(156) = RCT(644)*V(277)+RCT(645)*V(270) - D_VAR(157) = RCT(58)*V(269)+RCT(140)*V(287)+RCT(184)*V(282)+RCT(292)*V(285) - D_VAR(158) = RCT(436)*V(269)+RCT(437)*V(269)+RCT(439)*V(269)+RCT(885) - D_VAR(159) = RCT(592)*V(269)+RCT(904) - D_VAR(160) = RCT(564)*V(269)+RCT(878) - D_VAR(161) = RCT(441)*V(269)+RCT(887) - D_VAR(162) = RCT(487)+RCT(488)*V(281)+RCT(489)*V(280)+RCT(490)*V(280) - D_VAR(163) = RCT(496)+RCT(500)*V(281)+RCT(501)*V(280)+RCT(502)*V(280) - D_VAR(164) = RCT(495)+RCT(497)*V(281)+RCT(498)*V(280)+RCT(499)*V(280) - D_VAR(165) = RCT(362)*V(269)+RCT(363)*V(277)+RCT(364)*V(287) - D_VAR(166) = RCT(568)*V(269)+RCT(874) - D_VAR(167) = RCT(440)*V(269)+RCT(886) - D_VAR(168) = RCT(599)*V(269)+RCT(600)*V(269)+RCT(871) - D_VAR(169) = RCT(48)+RCT(668)*V(279)+RCT(669)*V(271)+RCT(670)+RCT(671)*V(278)+RCT(672)*V(283)+RCT(772) - D_VAR(170) = RCT(432)*V(269)+RCT(749) - D_VAR(171) = RCT(557)*V(269)+RCT(755)+RCT(883) - D_VAR(172) = RCT(175)*V(282)+RCT(675)*V(279)+RCT(676)*V(271)+RCT(802)+RCT(803) - D_VAR(173) = RCT(214)*F(3)+RCT(215)*V(277)+RCT(216)*V(281)+RCT(217)*V(281)+RCT(218)*V(281) - D_VAR(174) = RCT(384)*V(269)+RCT(388)*V(287)+RCT(740)+RCT(859) - D_VAR(175) = RCT(607)*V(281)+RCT(608)*V(280)+RCT(609)*V(287)+RCT(610)*V(263) - D_VAR(176) = RCT(633)*V(281)+RCT(634)*V(280)+RCT(635)*V(270)+RCT(649)*V(263) - D_VAR(177) = RCT(524)*V(269)+RCT(526)*V(269)+RCT(529)*V(269)+RCT(751)+RCT(896) - D_VAR(178) = RCT(619)*V(281)+RCT(620)*V(280)+RCT(621)*V(287)+RCT(622)*V(263)+RCT(623)*V(257) - D_VAR(179) = RCT(442)+RCT(443)*V(280)+RCT(444)*V(280)+RCT(445)*V(281) - D_VAR(180) = RCT(446)+RCT(447)*V(280)+RCT(448)*V(280)+RCT(449)*V(281) - D_VAR(181) = RCT(567)*V(269)+RCT(875) - D_VAR(182) = RCT(427)*V(269)+RCT(888) - D_VAR(183) = RCT(450)+RCT(451)*V(280)+RCT(452)*V(280)+RCT(453)*V(281) - D_VAR(184) = RCT(428)*V(269)+RCT(889) - D_VAR(185) = RCT(532)+RCT(535)*V(281)+RCT(538)*V(280)+RCT(539)*V(280) - D_VAR(186) = RCT(25)*V(269)+RCT(197)*V(268)+RCT(198)*V(268)+RCT(199)*V(268)+RCT(261)*V(285) - D_VAR(187) = RCT(639)*V(270)+RCT(640)*V(280)+RCT(641)*V(287)+RCT(642)*V(281)+RCT(648)*V(263) - D_VAR(188) = RCT(40)*V(269)+RCT(767) - D_VAR(189) = RCT(431)*V(269) - D_VAR(190) = RCT(469)*V(281)+RCT(470)*V(280)+RCT(471)*V(280)+RCT(472) - D_VAR(191) = RCT(345)*V(258)+RCT(346)*V(280)+RCT(347)*V(270)+RCT(348)*V(286)+RCT(349)*V(279)+RCT(350)*V(279) - D_VAR(192) = RCT(226)*V(268)+RCT(243)*V(269)+RCT(811) - D_VAR(193) = RCT(34)*V(269)+RCT(35)*V(269)+RCT(852) - D_VAR(194) = RCT(337)*V(269)+RCT(873) - D_VAR(195) = RCT(556)*V(269)+RCT(756)+RCT(882) - D_VAR(196) = RCT(385)*V(269)+RCT(386)*V(277)+RCT(387)*V(287)+RCT(741)+RCT(860) - D_VAR(197) = RCT(75)*V(280)+RCT(92)*V(281)+RCT(102)*V(263)+RCT(149)*V(257)+RCT(154)*V(257) - D_VAR(198) = RCT(77)*V(269)+RCT(739)+RCT(797) - D_VAR(199) = RCT(308)+RCT(309)*2*V(199)+RCT(720)*V(275)+RCT(721)*V(276)+RCT(722)*V(278)+RCT(723)*V(283)+RCT(839) - D_VAR(200) = RCT(570)*V(281)+RCT(571)*V(280)+RCT(572)*V(280) - D_VAR(201) = RCT(573)*V(281)+RCT(576)+RCT(577)*V(280)+RCT(578)*V(280) - D_VAR(202) = RCT(589)*V(269)+RCT(901)+RCT(902) - D_VAR(203) = RCT(574)*V(281)+RCT(579)*V(280)+RCT(580)*V(270) - D_VAR(204) = RCT(66)*V(280)+RCT(86)*V(263)+RCT(112)*V(281)+RCT(126)*V(257)+RCT(128)*V(257) - D_VAR(205) = RCT(336)*V(269)+RCT(595)*V(287)+RCT(858) - D_VAR(206) = RCT(646)*V(269)+RCT(647)*V(287)+RCT(757)+RCT(914) - D_VAR(207) = RCT(49)*V(269)+RCT(289)*V(285) - D_VAR(208) = RCT(7)*V(286)+RCT(21)*V(269)+RCT(213)*V(284)+RCT(265)*V(285)+RCT(762) - D_VAR(209) = RCT(593)*V(269)+RCT(753)+RCT(908)+RCT(909) - D_VAR(210) = RCT(483)*V(269)+RCT(484)*V(269)+RCT(486)*V(269)+RCT(748)+RCT(895) - D_VAR(211) = RCT(371)*V(280)+RCT(373)*V(281)+RCT(375)*V(263)+RCT(377)*V(257)+RCT(379)*V(287)+RCT(381)*2*V(211)& - &+RCT(382)*V(212) - D_VAR(212) = RCT(372)*V(280)+RCT(374)*V(281)+RCT(376)*V(263)+RCT(378)*V(257)+RCT(380)*V(287)+RCT(382)*V(211)+RCT(383)& - &*2*V(212) - D_VAR(213) = RCT(59)*V(280)+RCT(60)*V(280)+RCT(94)*V(263)+RCT(105)*2*V(213)+RCT(107)*2*V(213)+RCT(109)*V(281)+RCT(156)& - &*V(257)+RCT(158)*V(257)+RCT(293)*V(285) - D_VAR(214) = RCT(50)*V(269)+RCT(295)*V(285) - D_VAR(215) = RCT(78)*V(269)+RCT(297)*V(285) - D_VAR(216) = RCT(481)*V(269)+RCT(482)*V(269)+RCT(485)*V(269)+RCT(745)+RCT(892) - D_VAR(217) = RCT(533)+RCT(534)*V(281)+RCT(536)*V(280)+RCT(537)*V(280) - D_VAR(218) = RCT(119)*V(269)+RCT(121)*V(287)+RCT(732)+RCT(781)+RCT(782)+RCT(783) - D_VAR(219) = RCT(84)*V(269)+RCT(183)*V(282)+RCT(300)*V(285)+RCT(777)+RCT(778) - D_VAR(220) = RCT(301)*V(285)+RCT(396)*V(277)+RCT(397)*V(269)+RCT(398)*V(269)+RCT(399)*V(269)+RCT(400)*V(269)+RCT(506)& - &*V(287) - D_VAR(221) = RCT(365)*V(280)+RCT(366)*V(281)+RCT(367)*V(263)+RCT(368)*V(257)+RCT(369)*V(287) - D_VAR(222) = RCT(93)*V(269)+RCT(96)*V(287)+RCT(779) - D_VAR(223) = RCT(311)*V(270)+RCT(315)*V(274)+RCT(316)*V(274)+RCT(317)*V(90)+RCT(321)*V(273)+RCT(322)*V(273)+RCT(323)& - &*V(273)+RCT(329)*V(281)+RCT(330)*V(280)+RCT(331)*2*V(223)+RCT(332)*2*V(223)+RCT(836) - D_VAR(224) = RCT(459)+RCT(460)+RCT(461)*V(281)+RCT(462)*V(280)+RCT(463)*V(280) - D_VAR(225) = RCT(464)+RCT(465)+RCT(466)*V(280)+RCT(467)*V(280)+RCT(468)*V(281) - D_VAR(226) = RCT(554)*V(269)+RCT(876) - D_VAR(227) = RCT(555)*V(269)+RCT(879) - D_VAR(228) = RCT(120)*V(269)+RCT(122)*V(287)+RCT(733)+RCT(784) - D_VAR(229) = RCT(503)*V(281)+RCT(504)*V(280)+RCT(505)*V(280) - D_VAR(230) = RCT(338)*V(258)+RCT(339)*V(280)+RCT(340)*V(270)+RCT(341)*V(279)+RCT(342)*V(279)*V(279)+RCT(343)*V(277)& - &+RCT(344)*V(286) - D_VAR(231) = RCT(251)*V(269)+RCT(684)*V(278)+RCT(685)*V(283)+RCT(686)*V(271)+RCT(687)*V(275)+RCT(688)*V(276)+RCT(689)& - &*V(272)+RCT(815) - D_VAR(232) = RCT(116)*V(269)+RCT(117)*V(269)+RCT(780) - D_VAR(233) = RCT(64)*V(280)+RCT(65)*V(280)+RCT(85)*V(263)+RCT(111)*V(281)+RCT(125)*V(257)+RCT(127)*V(257) - D_VAR(234) = RCT(353)*V(280)+RCT(354)*V(281)+RCT(355)*V(263)+RCT(356)*V(257)+RCT(357)*V(287) - D_VAR(235) = RCT(61)*V(280)+RCT(95)*V(263)+RCT(106)*2*V(235)+RCT(108)*2*V(235)+RCT(110)*V(281)+RCT(157)*V(257)& - &+RCT(159)*V(257)+RCT(294)*V(285) - D_VAR(236) = RCT(540)*V(269)+RCT(541)*V(269)+RCT(899) - D_VAR(237) = RCT(553)*V(269)+RCT(738)+RCT(881) - D_VAR(238) = RCT(594)*V(269)+RCT(754)+RCT(906)+RCT(907) - D_VAR(239) = RCT(544)*V(269)+RCT(752)+RCT(900) - D_VAR(240) = RCT(507)*V(281)+RCT(509)*2*V(240)+RCT(510)*V(241)+RCT(513)*V(263)+RCT(514)*V(257)+RCT(516)*V(287)& - &+RCT(518)*V(280)+RCT(519)*V(280) - D_VAR(241) = RCT(508)*V(281)+RCT(510)*V(240)+RCT(511)*2*V(241)+RCT(512)*V(263)+RCT(515)*V(257)+RCT(517)*V(287)& - &+RCT(520)*V(280)+RCT(521)*V(280) - D_VAR(242) = RCT(401)*V(281)+RCT(402)*V(281)+RCT(405)+RCT(406)+RCT(409)*2*V(242)+RCT(411)*V(243)+RCT(412)*2*V(242)& - &+RCT(414)*V(243)+RCT(415)*V(263)+RCT(416)*V(263)+RCT(419)*V(280)+RCT(420)*V(280)+RCT(421)*V(280)+RCT(422)& - &*V(280) - D_VAR(243) = RCT(403)*V(281)+RCT(404)*V(281)+RCT(407)+RCT(408)+RCT(410)*2*V(243)+RCT(411)*V(242)+RCT(413)*2*V(243)& - &+RCT(414)*V(242)+RCT(417)*V(263)+RCT(418)*V(263)+RCT(423)*V(280)+RCT(424)*V(280)+RCT(425)*V(280)+RCT(426)& - &*V(280) - D_VAR(244) = RCT(547)*V(269)+RCT(548)*V(277)+RCT(785)+RCT(786)+RCT(787) - D_VAR(245) = RCT(581)*V(281)+RCT(582)*V(280)+RCT(583)*V(270)+RCT(584)*V(287)+RCT(585)*V(263) - D_VAR(246) = RCT(123)*V(269)+RCT(124)*V(269)+RCT(789) - D_VAR(247) = RCT(549)*V(269)+RCT(550)*V(269)+RCT(551)*V(277)+RCT(552)*V(287)+RCT(788) - D_VAR(248) = RCT(71)*V(280)+RCT(89)*V(281)+RCT(99)*V(263)+RCT(145)*V(257)+RCT(151)*V(257) - D_VAR(249) = RCT(72)*V(280)+RCT(90)*V(281)+RCT(100)*V(263)+RCT(146)*V(257)+RCT(152)*V(257) - D_VAR(250) = RCT(80)*V(270)+RCT(82)*V(280)+RCT(113)*V(281)+RCT(129)*V(263)+RCT(130)*V(263)+RCT(160)*V(257) - D_VAR(251) = RCT(70)*V(280)+RCT(88)*V(281)+RCT(98)*V(263)+RCT(148)*V(257)+RCT(153)*V(257) - D_VAR(252) = RCT(68)*V(280)+RCT(69)*V(280)+RCT(87)*V(281)+RCT(97)*V(263)+RCT(144)*V(257)+RCT(150)*V(257) - D_VAR(253) = RCT(73)*V(280)+RCT(74)*V(280)+RCT(91)*V(281)+RCT(101)*V(263)+RCT(147)*V(257)+RCT(155)*V(257) - D_VAR(254) = RCT(114)*V(269)+RCT(115)*V(277)+RCT(118)*V(287)+RCT(303)*V(285)+RCT(304)*V(282) - D_VAR(255) = RCT(79)*V(269)+RCT(83)*V(287)+RCT(776) - D_VAR(256) = RCT(177)*V(284)+RCT(695)*V(272)+RCT(696)*V(271)+RCT(697)*V(278)+RCT(698)*V(283)+RCT(699)*V(275)+RCT(700)& - &*V(276)+RCT(701)*V(286)+RCT(801) - D_VAR(257) = RCT(55)*V(270)+RCT(57)*V(280)+RCT(125)*V(233)+RCT(126)*V(204)+RCT(127)*V(233)+RCT(128)*V(204)+RCT(141)*2& - &*V(257)+RCT(142)*V(263)+RCT(143)*V(263)+RCT(144)*V(252)+RCT(145)*V(248)+RCT(146)*V(249)+RCT(147)*V(253)& - &+RCT(148)*V(251)+RCT(149)*V(197)+RCT(150)*V(252)+RCT(151)*V(248)+RCT(152)*V(249)+RCT(153)*V(251)+RCT(154)& - &*V(197)+RCT(155)*V(253)+RCT(156)*V(213)+RCT(157)*V(235)+RCT(158)*V(213)+RCT(159)*V(235)+RCT(160)*V(250)& - &+RCT(356)*V(234)+RCT(368)*V(221)+RCT(377)*V(211)+RCT(378)*V(212)+RCT(514)*V(240)+RCT(515)*V(241)+RCT(598)& - &*V(281)+RCT(623)*V(178) - D_VAR(258) = RCT(24)*V(269)+RCT(338)*V(230)+RCT(345)*V(191) - D_VAR(259) = RCT(252)*V(269)+RCT(284)*V(284)+RCT(285)*V(285)+RCT(677)*V(279)+RCT(678)*V(271)+RCT(679)*V(272)+RCT(680)& - &*V(275)+RCT(681)*V(276)+RCT(682)*V(278)+RCT(683)*V(283)+RCT(816)+RCT(817) - D_VAR(260) = RCT(3)*V(144)+RCT(6)*V(135)+RCT(38)*V(269)+RCT(766) - D_VAR(261) = RCT(53)*V(269)+RCT(54)*V(287)+RCT(182)*V(282)+RCT(773)+RCT(774) - D_VAR(262) = RCT(10)*V(286)+RCT(36)*V(269)+RCT(52)*V(287)+RCT(181)*V(282)+RCT(223)*V(284)+RCT(262)*V(285)+RCT(764)& - &+RCT(765) - D_VAR(263) = RCT(17)*V(277)+RCT(26)*V(280)+RCT(27)*V(280)+RCT(28)*V(281)+RCT(29)*2*V(263)+RCT(30)*2*V(263)+RCT(31)& - &*V(269)+RCT(85)*V(233)+RCT(86)*V(204)+RCT(94)*V(213)+RCT(95)*V(235)+RCT(97)*V(252)+RCT(98)*V(251)+RCT(99)& - &*V(248)+RCT(100)*V(249)+RCT(101)*V(253)+RCT(102)*V(197)+RCT(129)*V(250)+RCT(130)*V(250)+RCT(142)*V(257)& - &+RCT(143)*V(257)+RCT(162)*V(270)+RCT(244)*V(273)+RCT(290)*V(285)+RCT(355)*V(234)+RCT(367)*V(221)+RCT(375)& - &*V(211)+RCT(376)*V(212)+RCT(415)*V(242)+RCT(416)*V(242)+RCT(417)*V(243)+RCT(418)*V(243)+RCT(512)*V(241)& - &+RCT(513)*V(240)+RCT(585)*V(245)+RCT(610)*V(175)+RCT(622)*V(178)+RCT(648)*V(187)+RCT(649)*V(176)+RCT(662)& - &*V(287) - D_VAR(264) = RCT(328)*V(269)+RCT(728)*V(275)+RCT(729)*V(276)+RCT(730)*V(278)+RCT(731)*V(283)+RCT(835) - D_VAR(265) = RCT(305)*V(280)+RCT(307)*V(270)+RCT(313)*V(266)+RCT(314)*V(274)+RCT(324)*V(277)+RCT(325)*V(281) - D_VAR(266) = RCT(312)+RCT(313)*V(265)+RCT(719)*V(279)+RCT(724)*V(275)+RCT(725)*V(276)+RCT(726)*V(278)+RCT(727)*V(283)& - &+RCT(840) - D_VAR(267) = RCT(250)*V(269)+RCT(690)*V(271)+RCT(691)*V(272)+RCT(692)*V(278)+RCT(693)*V(283)+RCT(694)*V(286)+RCT(818) - D_VAR(268) = RCT(191)*V(279)+RCT(192)*F(2)+RCT(193)*F(3)+RCT(194)*F(1)+RCT(195)*V(57)+RCT(196)*V(57)+RCT(197)*V(186)& - &+RCT(198)*V(186)+RCT(199)*V(186)+RCT(205)*V(277)+RCT(206)*V(277)+RCT(224)*V(271)+RCT(225)*V(272)+RCT(226)& - &*V(192)+RCT(227)*V(51)+RCT(228)*V(97)+RCT(229)*V(70)+RCT(230)*V(74)+RCT(231)*V(81)+RCT(232)*V(52)+RCT(233)& - &*V(53)+RCT(234)*V(55)+RCT(235)*V(44)+RCT(236)*V(79)+RCT(237)*V(80)+RCT(238)*V(78)+RCT(239)*V(48)+RCT(240)& - &*V(42)+RCT(241)*V(46)+RCT(242)*V(45) - D_VAR(269) = RCT(12)*V(85)+RCT(14)*V(277)+RCT(18)*2*V(269)+RCT(19)*2*V(269)+RCT(20)*V(281)+RCT(21)*V(208)+RCT(24)& - &*V(258)+RCT(25)*V(186)+RCT(31)*V(263)+RCT(32)*V(134)+RCT(33)*V(134)+RCT(34)*V(193)+RCT(35)*V(193)+RCT(36)& - &*V(262)+RCT(37)*V(270)+RCT(38)*V(260)+RCT(39)*V(280)+RCT(40)*V(188)+RCT(43)*V(101)+RCT(46)*V(287)+RCT(49)& - &*V(207)+RCT(50)*V(214)+RCT(53)*V(261)+RCT(58)*V(157)+RCT(62)*V(121)+RCT(63)*V(121)+RCT(67)*V(112)+RCT(77)& - &*V(198)+RCT(78)*V(215)+RCT(79)*V(255)+RCT(84)*V(219)+RCT(93)*V(222)+RCT(103)*V(129)+RCT(104)*V(154)& - &+RCT(114)*V(254)+RCT(116)*V(232)+RCT(117)*V(232)+RCT(119)*V(218)+RCT(120)*V(228)+RCT(123)*V(246)+RCT(124)& - &*V(246)+RCT(131)*V(111)+RCT(132)*V(108)+RCT(133)*V(92)+RCT(134)*V(93)+RCT(135)*V(91)+RCT(136)*V(94)& - &+RCT(137)*V(110)+RCT(138)*V(23)+RCT(139)*V(66)+RCT(164)*V(82)+RCT(165)*V(82)+RCT(167)*V(286)+RCT(171)& - &*V(272)+RCT(176)*V(125)+RCT(179)*V(274)+RCT(188)*V(74)+RCT(189)*V(70)+RCT(190)*V(97)+RCT(202)*F(1)& - &+RCT(203)*V(284)+RCT(208)*V(62)+RCT(243)*V(192)+RCT(245)*V(273)+RCT(246)*V(273)+RCT(247)*V(107)+RCT(248)& - &*V(72)+RCT(249)*V(271)+RCT(250)*V(267)+RCT(251)*V(231)+RCT(252)*V(259)+RCT(253)*V(100)+RCT(254)*V(73)& - &+RCT(255)*V(68)+RCT(256)*V(39)+RCT(257)*V(81)+RCT(258)*V(79)+RCT(259)*V(80)+RCT(260)*V(78)+RCT(326)*V(140)& - &+RCT(327)*V(65)+RCT(328)*V(264)+RCT(335)*V(43)+RCT(336)*V(205)+RCT(337)*V(194)+RCT(351)*V(150)+RCT(352)& - &*V(151)+RCT(362)*V(165)+RCT(370)*V(118)+RCT(384)*V(174)+RCT(385)*V(196)+RCT(391)*V(131)+RCT(392)*V(87)& - &+RCT(393)*V(88)+RCT(394)*V(86)+RCT(395)*V(89)+RCT(397)*V(220)+RCT(398)*V(220)+RCT(399)*V(220)+RCT(400)& - &*V(220)+RCT(427)*V(182)+RCT(428)*V(184)+RCT(429)*V(126)+RCT(430)*V(124)+RCT(431)*V(189)+RCT(432)*V(170)& - &+RCT(433)*V(106)+RCT(434)*V(153)+RCT(435)*V(153)+RCT(436)*V(158)+RCT(437)*V(158)+RCT(438)*V(153)+RCT(439)& - &*V(158)+RCT(440)*V(167)+RCT(441)*V(161)+RCT(454)*V(114)+RCT(455)*V(127)+RCT(456)*V(127)+RCT(457)*V(128)& - &+RCT(458)*V(128)+RCT(477)*V(136)+RCT(478)*V(136)+RCT(479)*V(137)+RCT(480)*V(137)+RCT(481)*V(216)+RCT(482)& - &*V(216)+RCT(483)*V(210)+RCT(484)*V(210)+RCT(485)*V(216)+RCT(486)*V(210)+RCT(524)*V(177)+RCT(525)*V(147)& - &+RCT(526)*V(177)+RCT(527)*V(147)+RCT(528)*V(147)+RCT(529)*V(177)+RCT(530)*V(147)+RCT(531)*V(147)+RCT(540)& - &*V(236)+RCT(541)*V(236)+RCT(544)*V(239)+RCT(547)*V(244)+RCT(549)*V(247)+RCT(550)*V(247)+RCT(553)*V(237)& - &+RCT(554)*V(226)+RCT(555)*V(227)+RCT(556)*V(195)+RCT(557)*V(171)+RCT(564)*V(160)+RCT(565)*V(152)+RCT(566)& - &*V(115)+RCT(567)*V(181)+RCT(568)*V(166)+RCT(569)*V(130)+RCT(575)*V(133)+RCT(587)*V(149)+RCT(588)*V(84)& - &+RCT(589)*V(202)+RCT(590)*V(122)+RCT(591)*V(139)+RCT(592)*V(159)+RCT(593)*V(209)+RCT(594)*V(238)+RCT(596)& - &*V(104)+RCT(597)*V(83)+RCT(599)*V(168)+RCT(600)*V(168)+RCT(601)*V(18)+RCT(605)*V(75)+RCT(606)*V(54)& - &+RCT(613)*V(64)+RCT(614)*V(113)+RCT(615)*V(113)+RCT(616)*V(60)+RCT(617)*V(76)+RCT(618)*V(77)+RCT(624)& - &*V(117)+RCT(626)*V(109)+RCT(628)*V(138)+RCT(631)*V(99)+RCT(636)*V(67)+RCT(638)*V(95)+RCT(643)*V(105)& - &+RCT(646)*V(206)+RCT(650)*V(155)+RCT(653)*V(145)+RCT(673)*V(278)+RCT(674)*V(283) - D_VAR(270) = RCT(16)*V(277)+RCT(37)*V(269)+RCT(41)*V(281)+RCT(47)*V(287)+RCT(51)*V(287)+RCT(55)*V(257)+RCT(80)*V(250)& - &+RCT(162)*V(263)+RCT(186)*V(282)+RCT(187)*V(274)+RCT(209)*V(284)+RCT(212)*V(284)+RCT(221)*V(61)+RCT(271)& - &*V(273)+RCT(307)*V(265)+RCT(311)*V(223)+RCT(340)*V(230)+RCT(347)*V(191)+RCT(560)*V(141)+RCT(563)*V(142)& - &+RCT(580)*V(203)+RCT(583)*V(245)+RCT(635)*V(176)+RCT(639)*V(187)+RCT(645)*V(156)+RCT(664)+RCT(761) - D_VAR(271) = RCT(2)*V(144)+RCT(5)*V(135)+RCT(224)*V(268)+RCT(249)*V(269)+RCT(669)*V(169)+RCT(676)*V(172)+RCT(678)& - &*V(259)+RCT(686)*V(231)+RCT(690)*V(267)+RCT(696)*V(256) - D_VAR(272) = RCT(171)*V(269)+RCT(178)*V(284)+RCT(225)*V(268)+RCT(679)*V(259)+RCT(689)*V(231)+RCT(691)*V(267)+RCT(695)& - &*V(256)+RCT(702)*V(277)+RCT(705)+RCT(706) - D_VAR(273) = RCT(244)*V(263)+RCT(245)*V(269)+RCT(246)*V(269)+RCT(268)*V(284)+RCT(269)*V(281)+RCT(270)*V(280)+RCT(271)& - &*V(270)+RCT(272)*2*V(273)+RCT(273)*2*V(273)+RCT(274)*2*V(273)+RCT(277)*2*V(273)+RCT(281)*V(274)+RCT(282)& - &*V(274)+RCT(283)*V(274)+RCT(321)*V(223)+RCT(322)*V(223)+RCT(323)*V(223)+RCT(812) - D_VAR(274) = RCT(169)*V(281)+RCT(172)*2*V(274)+RCT(173)*2*V(274)+RCT(174)*V(280)+RCT(179)*V(269)+RCT(187)*V(270)& - &+RCT(222)*V(284)+RCT(281)*V(273)+RCT(282)*V(273)+RCT(283)*V(273)+RCT(314)*V(265)+RCT(315)*V(223)+RCT(316)& - &*V(223)+RCT(800) - D_VAR(275) = RCT(680)*V(259)+RCT(687)*V(231)+RCT(699)*V(256)+RCT(703)*V(277)+RCT(720)*V(199)+RCT(724)*V(266)+RCT(728)& - &*V(264) - D_VAR(276) = RCT(681)*V(259)+RCT(688)*V(231)+RCT(700)*V(256)+RCT(704)*V(277)+RCT(721)*V(199)+RCT(725)*V(266)+RCT(729)& - &*V(264) - D_VAR(277) = RCT(1)*V(144)*V(286)+RCT(4)*V(135)*V(286)+RCT(8)*V(286)+RCT(13)*V(280)+RCT(14)*V(269)+RCT(15)*V(281)& - &+RCT(16)*V(270)+RCT(17)*V(263)+RCT(115)*V(254)+RCT(168)*V(282)+RCT(201)*V(284)+RCT(205)*V(268)+RCT(206)& - &*V(268)+RCT(215)*V(173)+RCT(263)*V(285)+RCT(324)*V(265)+RCT(343)*V(230)+RCT(358)*V(150)+RCT(359)*V(151)& - &+RCT(363)*V(165)+RCT(386)*V(196)+RCT(396)*V(220)+RCT(548)*V(244)+RCT(551)*V(247)+RCT(604)*V(75)+RCT(629)& - &*V(138)+RCT(644)*V(156)+RCT(651)*V(155)+RCT(654)*V(145)+RCT(702)*V(272)+RCT(703)*V(275)+RCT(704)*V(276)& - &+RCT(758)+RCT(759) - D_VAR(278) = RCT(671)*V(169)+RCT(673)*V(269)+RCT(682)*V(259)+RCT(684)*V(231)+RCT(692)*V(267)+RCT(697)*V(256)+RCT(722)& - &*V(199)+RCT(726)*V(266)+RCT(730)*V(264) - D_VAR(279) = RCT(191)*V(268)+RCT(341)*V(230)+RCT(342)*2*V(230)*V(279)+RCT(349)*V(191)+RCT(350)*V(191)+RCT(668)*V(169)& - &+RCT(675)*V(172)+RCT(677)*V(259)+RCT(719)*V(266) - D_VAR(280) = RCT(13)*V(277)+RCT(22)*V(281)+RCT(26)*V(263)+RCT(27)*V(263)+RCT(39)*V(269)+RCT(45)*V(287)+RCT(57)*V(257)& - &+RCT(59)*V(213)+RCT(60)*V(213)+RCT(61)*V(235)+RCT(64)*V(233)+RCT(65)*V(233)+RCT(66)*V(204)+RCT(68)*V(252)& - &+RCT(69)*V(252)+RCT(70)*V(251)+RCT(71)*V(248)+RCT(72)*V(249)+RCT(73)*V(253)+RCT(74)*V(253)+RCT(75)*V(197)& - &+RCT(82)*V(250)+RCT(174)*V(274)+RCT(211)*V(284)+RCT(220)*V(61)+RCT(270)*V(273)+RCT(305)*V(265)+RCT(320)& - &*V(90)+RCT(330)*V(223)+RCT(339)*V(230)+RCT(346)*V(191)+RCT(353)*V(234)+RCT(365)*V(221)+RCT(371)*V(211)& - &+RCT(372)*V(212)+RCT(419)*V(242)+RCT(420)*V(242)+RCT(421)*V(242)+RCT(422)*V(242)+RCT(423)*V(243)+RCT(424)& - &*V(243)+RCT(425)*V(243)+RCT(426)*V(243)+RCT(443)*V(179)+RCT(444)*V(179)+RCT(447)*V(180)+RCT(448)*V(180)& - &+RCT(451)*V(183)+RCT(452)*V(183)+RCT(462)*V(224)+RCT(463)*V(224)+RCT(466)*V(225)+RCT(467)*V(225)+RCT(470)& - &*V(190)+RCT(471)*V(190)+RCT(473)*V(120)+RCT(475)*V(116)+RCT(489)*V(162)+RCT(490)*V(162)+RCT(493)*V(148)& - &+RCT(494)*V(148)+RCT(498)*V(164)+RCT(499)*V(164)+RCT(501)*V(163)+RCT(502)*V(163)+RCT(504)*V(229)+RCT(505)& - &*V(229)+RCT(518)*V(240)+RCT(519)*V(240)+RCT(520)*V(241)+RCT(521)*V(241)+RCT(536)*V(217)+RCT(537)*V(217)& - &+RCT(538)*V(185)+RCT(539)*V(185)+RCT(542)*V(146)+RCT(545)*V(143)+RCT(558)*V(141)+RCT(561)*V(142)+RCT(571)& - &*V(200)+RCT(572)*V(200)+RCT(577)*V(201)+RCT(578)*V(201)+RCT(579)*V(203)+RCT(582)*V(245)+RCT(603)*V(17)& - &+RCT(608)*V(175)+RCT(620)*V(178)+RCT(634)*V(176)+RCT(640)*V(187)+RCT(657)*V(12)+RCT(659)*V(21)+RCT(661)& - &*V(26)+RCT(856) - D_VAR(281) = RCT(15)*V(277)+RCT(20)*V(269)+RCT(22)*V(280)+RCT(23)*2*V(281)+RCT(28)*V(263)+RCT(41)*V(270)+RCT(44)& - &*V(287)+RCT(87)*V(252)+RCT(88)*V(251)+RCT(89)*V(248)+RCT(90)*V(249)+RCT(91)*V(253)+RCT(92)*V(197)+RCT(109)& - &*V(213)+RCT(110)*V(235)+RCT(111)*V(233)+RCT(112)*V(204)+RCT(113)*V(250)+RCT(169)*V(274)+RCT(170)*V(282)& - &+RCT(204)*V(284)+RCT(216)*V(173)+RCT(217)*V(173)+RCT(218)*V(173)+RCT(266)*V(285)+RCT(267)*V(285)+RCT(269)& - &*V(273)+RCT(325)*V(265)+RCT(329)*V(223)+RCT(354)*V(234)+RCT(366)*V(221)+RCT(373)*V(211)+RCT(374)*V(212)& - &+RCT(401)*V(242)+RCT(402)*V(242)+RCT(403)*V(243)+RCT(404)*V(243)+RCT(445)*V(179)+RCT(449)*V(180)+RCT(453)& - &*V(183)+RCT(461)*V(224)+RCT(468)*V(225)+RCT(469)*V(190)+RCT(474)*V(120)+RCT(476)*V(116)+RCT(488)*V(162)& - &+RCT(492)*V(148)+RCT(497)*V(164)+RCT(500)*V(163)+RCT(503)*V(229)+RCT(507)*V(240)+RCT(508)*V(241)+RCT(534)& - &*V(217)+RCT(535)*V(185)+RCT(543)*V(146)+RCT(546)*V(143)+RCT(559)*V(141)+RCT(562)*V(142)+RCT(570)*V(200)& - &+RCT(573)*V(201)+RCT(574)*V(203)+RCT(581)*V(245)+RCT(598)*V(257)+RCT(602)*V(17)+RCT(607)*V(175)+RCT(619)& - &*V(178)+RCT(633)*V(176)+RCT(642)*V(187)+RCT(656)*V(12)+RCT(658)*V(21)+RCT(660)*V(26)+RCT(663) - D_VAR(282) = RCT(168)*V(277)+RCT(170)*V(281)+RCT(175)*V(172)+RCT(180)*V(287)+RCT(181)*V(262)+RCT(182)*V(261)+RCT(183)& - &*V(219)+RCT(184)*V(157)+RCT(185)*V(121)+RCT(186)*V(270)+RCT(304)*V(254) - D_VAR(283) = RCT(672)*V(169)+RCT(674)*V(269)+RCT(683)*V(259)+RCT(685)*V(231)+RCT(693)*V(267)+RCT(698)*V(256)+RCT(723)& - &*V(199)+RCT(727)*V(266)+RCT(731)*V(264) - D_VAR(284) = RCT(177)*V(256)+RCT(178)*V(272)+RCT(200)*F(3)+RCT(201)*V(277)+RCT(203)*V(269)+RCT(204)*V(281)+RCT(207)& - &*V(62)+RCT(209)*V(270)+RCT(210)*V(287)+RCT(211)*V(280)+RCT(212)*V(270)+RCT(213)*V(208)+RCT(222)*V(274)& - &+RCT(223)*V(262)+RCT(268)*V(273)+RCT(284)*V(259) - D_VAR(285) = RCT(261)*V(186)+RCT(262)*V(262)+RCT(263)*V(277)+RCT(264)*F(1)+RCT(265)*V(208)+RCT(266)*V(281)+RCT(267)& - &*V(281)+RCT(275)*F(3)+RCT(279)*V(103)+RCT(280)*V(103)+RCT(285)*V(259)+RCT(286)*V(100)+RCT(287)*V(73)& - &+RCT(288)*V(68)+RCT(289)*V(207)+RCT(290)*V(263)+RCT(291)*V(134)+RCT(292)*V(157)+RCT(293)*V(213)+RCT(294)& - &*V(235)+RCT(295)*V(214)+RCT(296)*V(129)+RCT(297)*V(215)+RCT(298)*V(121)+RCT(299)*V(121)+RCT(300)*V(219)& - &+RCT(301)*V(220)+RCT(302)*V(112)+RCT(303)*V(254) - D_VAR(286) = RCT(1)*V(144)*V(277)+RCT(4)*V(135)*V(277)+RCT(7)*V(208)+RCT(8)*V(277)+RCT(9)+RCT(10)*V(262)+RCT(167)& - &*V(269)+RCT(344)*V(230)+RCT(348)*V(191)+RCT(694)*V(267)+RCT(701)*V(256) - D_VAR(287) = RCT(44)*V(281)+RCT(45)*V(280)+RCT(46)*V(269)+RCT(47)*V(270)+RCT(51)*V(270)+RCT(52)*V(262)+RCT(54)*V(261)& - &+RCT(76)*V(112)+RCT(83)*V(255)+RCT(96)*V(222)+RCT(118)*V(254)+RCT(121)*V(218)+RCT(122)*V(228)+RCT(140)& - &*V(157)+RCT(161)*2*V(287)+RCT(166)*V(82)+RCT(180)*V(282)+RCT(210)*V(284)+RCT(310)*V(140)+RCT(357)*V(234)& - &+RCT(360)*V(150)+RCT(361)*V(151)+RCT(364)*V(165)+RCT(369)*V(221)+RCT(379)*V(211)+RCT(380)*V(212)+RCT(387)& - &*V(196)+RCT(388)*V(174)+RCT(506)*V(220)+RCT(516)*V(240)+RCT(517)*V(241)+RCT(552)*V(247)+RCT(584)*V(245)& - &+RCT(595)*V(205)+RCT(609)*V(175)+RCT(621)*V(178)+RCT(625)*V(117)+RCT(627)*V(109)+RCT(630)*V(138)+RCT(632)& - &*V(99)+RCT(641)*V(187)+RCT(647)*V(206)+RCT(662)*V(263)+RCT(665)+RCT(666)+RCT(667)+RCT(770)+RCT(771) + D_VAR(38) = 0 + D_VAR(39) = 0 + D_VAR(40) = 0 + D_VAR(41) = RCT(636)*V(286) + D_VAR(42) = RCT(296)+RCT(692)+RCT(693)+RCT(694)+RCT(826) + D_VAR(43) = RCT(235)*V(286)+RCT(799) + D_VAR(44) = RCT(307)+RCT(686)+RCT(687)+RCT(688)+RCT(821) + D_VAR(45) = RCT(363) + D_VAR(46) = RCT(308)*V(286)+RCT(822) + D_VAR(47) = RCT(214)*V(272)+RCT(810) + D_VAR(48) = RCT(221)*V(272)+RCT(812) + D_VAR(49) = RCT(689)+RCT(690)+RCT(691)+RCT(827) + D_VAR(50) = RCT(79) + D_VAR(51) = RCT(784) + D_VAR(52) = RCT(205)*V(272)+RCT(800) + D_VAR(53) = RCT(211)*V(272)+RCT(801) + D_VAR(54) = RCT(212)*V(272)+RCT(802) + D_VAR(55) = RCT(218)*V(272)+RCT(803) + D_VAR(56) = RCT(219)*V(272)+RCT(804) + D_VAR(57) = RCT(220)*V(272)+RCT(805) + D_VAR(58) = RCT(579)*V(286) + D_VAR(59) = RCT(213)*V(272)+RCT(811) + D_VAR(60) = RCT(284)*2*V(60)+RCT(818) + D_VAR(61) = RCT(179)*V(272)+RCT(833) + D_VAR(62) = RCT(844)+RCT(845) + D_VAR(63) = RCT(842)+RCT(843) + D_VAR(64) = RCT(589)*V(286) + D_VAR(65) = RCT(197)*F(3)+RCT(198)*V(279)+RCT(199)*V(291) + D_VAR(66) = RCT(187)*V(288)+RCT(188)*V(286)+RCT(834) + D_VAR(67) = RCT(54)+RCT(755) + D_VAR(68) = RCT(586)*V(286) + D_VAR(69) = RCT(302)*V(286)+RCT(681)+RCT(682)+RCT(683) + D_VAR(70) = RCT(609)*V(286)+RCT(892) + D_VAR(71) = RCT(173)*V(286)+RCT(208)*V(272)+RCT(786) + D_VAR(72) = RCT(233)*V(286)+RCT(265)*V(290)+RCT(789) + D_VAR(73) = RCT(828) + D_VAR(74) = RCT(147)+RCT(830)+RCT(831) + D_VAR(75) = RCT(227)*V(286)+RCT(257)+RCT(794) + D_VAR(76) = RCT(577)*V(282)+RCT(578)*V(286) + D_VAR(77) = RCT(172)*V(286)+RCT(209)*V(272)+RCT(785) + D_VAR(78) = RCT(234)*V(286)+RCT(266)*V(290) + D_VAR(79) = RCT(590)*V(286) + D_VAR(80) = RCT(591)*V(286) + D_VAR(81) = RCT(217)*V(272)+RCT(239)*V(286)+RCT(806) + D_VAR(82) = RCT(215)*V(272)+RCT(237)*V(286)+RCT(807) + D_VAR(83) = RCT(216)*V(272)+RCT(238)*V(286)+RCT(808) + D_VAR(84) = RCT(210)*V(272)+RCT(236)*V(286)+RCT(809) + D_VAR(85) = RCT(570)*V(286)+RCT(850) + D_VAR(86) = RCT(11)+RCT(12)*V(276)*V(286) + D_VAR(87) = RCT(367)*V(286)+RCT(848) + D_VAR(88) = RCT(129)*V(286)+RCT(778) + D_VAR(89) = RCT(365)*V(286)+RCT(846) + D_VAR(90) = RCT(148)*V(286)+RCT(149)*V(286)+RCT(150)*V(281) + D_VAR(91) = RCT(368)*V(286)+RCT(849) + D_VAR(92) = RCT(294)*V(227)+RCT(295)*2*V(92)+RCT(297)*V(279)+RCT(817) + D_VAR(93) = RCT(125)*V(286)+RCT(774) + D_VAR(94) = RCT(123)*V(286)+RCT(772) + D_VAR(95) = RCT(124)*V(286)+RCT(773) + D_VAR(96) = RCT(366)*V(286)+RCT(847) + D_VAR(97) = RCT(610)+RCT(611)*V(286) + D_VAR(98) = RCT(362) + D_VAR(99) = RCT(829) + D_VAR(100) = RCT(174)*V(286)+RCT(207)*V(272)+RCT(787) + D_VAR(101) = RCT(604)*V(286)+RCT(605)*V(281)+RCT(891) + D_VAR(102) = RCT(40)+RCT(41)*V(286)+RCT(748)+RCT(749) + D_VAR(103) = RCT(255)+RCT(258)*V(290)+RCT(813) + D_VAR(104) = RCT(569)*V(286)+RCT(723)+RCT(852) + D_VAR(105) = RCT(561)*V(286)+RCT(724) + D_VAR(106) = RCT(126)*V(286)+RCT(776) + D_VAR(107) = RCT(616)*V(286)+RCT(893) + D_VAR(108) = RCT(584)+RCT(585)*F(3) + D_VAR(109) = RCT(406)*V(286) + D_VAR(110) = RCT(122)*V(286)+RCT(771) + D_VAR(111) = RCT(226)*V(286)+RCT(793) + D_VAR(112) = RCT(127)*V(286)+RCT(775) + D_VAR(113) = RCT(121)*V(286)+RCT(770) + D_VAR(114) = RCT(65)*V(286)+RCT(74)*V(281)+RCT(280)*V(290) + D_VAR(115) = RCT(599)*V(286)+RCT(600)*V(281) + D_VAR(116) = RCT(427)*V(286)+RCT(716) + D_VAR(117) = RCT(539)*V(286) + D_VAR(118) = RCT(597)*V(286)+RCT(598)*V(281) + D_VAR(119) = RCT(343)*V(286)+RCT(837) + D_VAR(120) = RCT(587)*V(286)+RCT(588)*V(286)+RCT(890) + D_VAR(121) = RCT(446)*V(279)+RCT(447)*V(284) + D_VAR(122) = RCT(835) + D_VAR(123) = RCT(448)*V(279)+RCT(449)*V(284) + D_VAR(124) = RCT(60)*V(286)+RCT(61)*V(286)+RCT(169)*V(273)+RCT(276)*V(290)+RCT(277)*V(290) + D_VAR(125) = RCT(563)*V(286)+RCT(885) + D_VAR(126) = RCT(495)*F(3)+RCT(496) + D_VAR(127) = RCT(403)*V(286)+RCT(871) + D_VAR(128) = RCT(160)*V(286)+RCT(779) + D_VAR(129) = RCT(402)*V(286)+RCT(870) + D_VAR(130) = RCT(428)*V(286)+RCT(429)*V(286)+RCT(714) + D_VAR(131) = RCT(430)*V(286)+RCT(431)*V(286)+RCT(715) + D_VAR(132) = RCT(542)*V(286) + D_VAR(133) = RCT(101)*V(286)+RCT(274)*V(290) + D_VAR(134) = RCT(364)*V(286)+RCT(722)+RCT(841) + D_VAR(135) = RCT(790) + D_VAR(136) = RCT(548)*V(286)+RCT(860) + D_VAR(137) = RCT(32)*V(286)+RCT(269)*V(290)+RCT(743) + D_VAR(138) = RCT(4)*V(276)*V(282)+RCT(5)*V(275)+RCT(6)*V(265) + D_VAR(139) = RCT(450)*V(286)+RCT(451)*V(286)+RCT(726)+RCT(873) + D_VAR(140) = RCT(452)*V(286)+RCT(453)*V(286)+RCT(727)+RCT(874) + D_VAR(141) = RCT(564)*V(286)+RCT(883) + D_VAR(142) = RCT(601)*V(286)+RCT(602)*V(282)+RCT(603)*V(281) + D_VAR(143) = RCT(288)*V(281)+RCT(301)*V(286)+RCT(814) + D_VAR(144) = RCT(531)*V(279)+RCT(532)*V(284)+RCT(533)*V(291) + D_VAR(145) = RCT(534)*V(279)+RCT(535)*V(284)+RCT(536)*V(291) + D_VAR(146) = RCT(518)*V(279)+RCT(519)*V(284) + D_VAR(147) = RCT(1)*V(276)*V(282)+RCT(2)*V(275)+RCT(3)*V(265) + D_VAR(148) = RCT(626)*V(286)+RCT(627)*V(282)+RCT(628) + D_VAR(149) = RCT(206)*V(272)+RCT(232)*V(286)+RCT(264)*V(290)+RCT(788) + D_VAR(150) = RCT(515)*V(279)+RCT(516)*V(284) + D_VAR(151) = RCT(498)*V(286)+RCT(500)*V(286)+RCT(501)*V(286)+RCT(503)*V(286)+RCT(504)*V(286)+RCT(730)+RCT(877)& + &+RCT(878) + D_VAR(152) = RCT(464)+RCT(465)*V(284)+RCT(466)*V(279)+RCT(467)*V(279) + D_VAR(153) = RCT(559)+RCT(560)*V(286) + D_VAR(154) = RCT(324)*V(286)+RCT(331)*V(282)+RCT(333)*V(281) + D_VAR(155) = RCT(325)*V(286)+RCT(332)*V(282)+RCT(334)*V(281) + D_VAR(156) = RCT(538)*V(286)+RCT(857) + D_VAR(157) = RCT(407)*V(286)+RCT(408)*V(286)+RCT(411)*V(286)+RCT(864) + D_VAR(158) = RCT(102)*V(286) + D_VAR(159) = RCT(623)*V(286)+RCT(624)*V(282)+RCT(625) + D_VAR(160) = RCT(617)*V(282)+RCT(618)*V(291) + D_VAR(161) = RCT(56)*V(286)+RCT(130)*V(281)+RCT(168)*V(273)+RCT(270)*V(290) + D_VAR(162) = RCT(409)*V(286)+RCT(410)*V(286)+RCT(412)*V(286)+RCT(865) + D_VAR(163) = RCT(537)*V(286)+RCT(858) + D_VAR(164) = RCT(565)*V(286)+RCT(884) + D_VAR(165) = RCT(414)*V(286)+RCT(867) + D_VAR(166) = RCT(468)+RCT(470)*V(284)+RCT(471)*V(279)+RCT(472)*V(279) + D_VAR(167) = RCT(460)+RCT(461)*V(284)+RCT(462)*V(279)+RCT(463)*V(279) + D_VAR(168) = RCT(469)+RCT(473)*V(284)+RCT(474)*V(279)+RCT(475)*V(279) + D_VAR(169) = RCT(541)*V(286)+RCT(854) + D_VAR(170) = RCT(335)*V(286)+RCT(336)*V(282)+RCT(337)*V(281) + D_VAR(171) = RCT(413)*V(286)+RCT(866) + D_VAR(172) = RCT(572)*V(286)+RCT(573)*V(286)+RCT(851) + D_VAR(173) = RCT(46)+RCT(642)*V(278)+RCT(643)*V(275)+RCT(644)+RCT(645)*V(280)+RCT(646)*V(287)+RCT(752) + D_VAR(174) = RCT(405)*V(286)+RCT(729) + D_VAR(175) = RCT(530)*V(286)+RCT(735)+RCT(863) + D_VAR(176) = RCT(159)*V(273)+RCT(649)*V(278)+RCT(650)*V(275)+RCT(782)+RCT(783) + D_VAR(177) = RCT(194)*F(3)+RCT(195)*V(282)+RCT(196)*V(284) + D_VAR(178) = RCT(357)*V(286)+RCT(361)*V(281)+RCT(720)+RCT(839) + D_VAR(179) = RCT(580)*V(284)+RCT(581)*V(279)+RCT(582)*V(281)+RCT(583)*V(266) + D_VAR(180) = RCT(606)*V(284)+RCT(607)*V(279)+RCT(608)*V(291)+RCT(622)*V(266) + D_VAR(181) = RCT(497)*V(286)+RCT(499)*V(286)+RCT(502)*V(286)+RCT(731)+RCT(876) + D_VAR(182) = RCT(415)+RCT(416)*V(279)+RCT(417)*V(279)+RCT(418)*V(284) + D_VAR(183) = RCT(419)+RCT(420)*V(279)+RCT(421)*V(279)+RCT(422)*V(284) + D_VAR(184) = RCT(592)*V(284)+RCT(593)*V(279)+RCT(594)*V(281)+RCT(595)*V(266)+RCT(596)*V(261) + D_VAR(185) = RCT(540)*V(286)+RCT(855) + D_VAR(186) = RCT(400)*V(286)+RCT(868) + D_VAR(187) = RCT(423)+RCT(424)*V(279)+RCT(425)*V(279)+RCT(426)*V(284) + D_VAR(188) = RCT(401)*V(286)+RCT(869) + D_VAR(189) = RCT(505)+RCT(508)*V(284)+RCT(511)*V(279)+RCT(512)*V(279) + D_VAR(190) = RCT(25)*V(286)+RCT(180)*V(272)+RCT(240)*V(290) + D_VAR(191) = RCT(612)*V(291)+RCT(613)*V(279)+RCT(614)*V(281)+RCT(615)*V(284)+RCT(621)*V(266) + D_VAR(192) = RCT(404)*V(286) + D_VAR(193) = RCT(38)*V(286)+RCT(747) + D_VAR(194) = RCT(442)*V(284)+RCT(443)*V(279)+RCT(444)*V(279)+RCT(445) + D_VAR(195) = RCT(318)*V(267)+RCT(319)*V(279)+RCT(320)*V(291)+RCT(321)*V(276)+RCT(322)*V(278)+RCT(323)*V(278) + D_VAR(196) = RCT(33)*V(286)+RCT(832) + D_VAR(197) = RCT(204)*V(272)+RCT(222)*V(286)+RCT(791) + D_VAR(198) = RCT(310)*V(286)+RCT(853) + D_VAR(199) = RCT(358)*V(286)+RCT(359)*V(282)+RCT(360)*V(281)+RCT(721)+RCT(840) + D_VAR(200) = RCT(529)*V(286)+RCT(736)+RCT(862) + D_VAR(201) = RCT(73)*V(279)+RCT(90)*V(284)+RCT(100)*V(266)+RCT(138)*V(261) + D_VAR(202) = RCT(75)*V(286)+RCT(719)+RCT(777) + D_VAR(203) = RCT(286)+RCT(287)*2*V(203)+RCT(695)+RCT(696)+RCT(700)*V(283)+RCT(701)*V(277)+RCT(702)*V(280)+RCT(703)& + &*V(287)+RCT(819) + D_VAR(204) = RCT(543)*V(284)+RCT(544)*V(279)+RCT(545)*V(279) + D_VAR(205) = RCT(546)*V(284)+RCT(549)+RCT(550)*V(279)+RCT(551)*V(279) + D_VAR(206) = RCT(562)*V(286)+RCT(881)+RCT(882) + D_VAR(207) = RCT(547)*V(284)+RCT(552)*V(279)+RCT(553)*V(291) + D_VAR(208) = RCT(309)*V(286)+RCT(568)*V(281)+RCT(838) + D_VAR(209) = RCT(64)*V(279)+RCT(84)*V(266)+RCT(108)*V(284)+RCT(141)*V(261) + D_VAR(210) = RCT(619)*V(286)+RCT(620)*V(281)+RCT(737)+RCT(894) + D_VAR(211) = RCT(47)*V(286)+RCT(267)*V(290) + D_VAR(212) = RCT(7)*V(276)+RCT(21)*V(286)+RCT(193)*V(288)+RCT(244)*V(290)+RCT(742) + D_VAR(213) = RCT(566)*V(286)+RCT(733)+RCT(888)+RCT(889) + D_VAR(214) = RCT(456)*V(286)+RCT(457)*V(286)+RCT(459)*V(286)+RCT(728)+RCT(875) + D_VAR(215) = RCT(344)*V(279)+RCT(346)*V(284)+RCT(348)*V(266)+RCT(350)*V(261)+RCT(352)*V(281)+RCT(354)*2*V(215)& + &+RCT(355)*V(216) + D_VAR(216) = RCT(345)*V(279)+RCT(347)*V(284)+RCT(349)*V(266)+RCT(351)*V(261)+RCT(353)*V(281)+RCT(355)*V(215)+RCT(356)& + &*2*V(216) + D_VAR(217) = RCT(57)*V(279)+RCT(58)*V(279)+RCT(92)*V(266)+RCT(103)*2*V(217)+RCT(105)*V(284)+RCT(139)*V(261)+RCT(271)& + &*V(290) + D_VAR(218) = RCT(48)*V(286)+RCT(273)*V(290) + D_VAR(219) = RCT(76)*V(286)+RCT(275)*V(290) + D_VAR(220) = RCT(454)*V(286)+RCT(455)*V(286)+RCT(458)*V(286)+RCT(725)+RCT(872) + D_VAR(221) = RCT(82)*V(286)+RCT(167)*V(273)+RCT(278)*V(290)+RCT(757)+RCT(758) + D_VAR(222) = RCT(506)+RCT(507)*V(284)+RCT(509)*V(279)+RCT(510)*V(279) + D_VAR(223) = RCT(115)*V(286)+RCT(117)*V(281)+RCT(712)+RCT(761)+RCT(762)+RCT(763) + D_VAR(224) = RCT(279)*V(290)+RCT(369)*V(282)+RCT(370)*V(286)+RCT(371)*V(286)+RCT(372)*V(286)+RCT(373)*V(286)+RCT(479)& + &*V(281) + D_VAR(225) = RCT(338)*V(279)+RCT(339)*V(284)+RCT(340)*V(266)+RCT(341)*V(261)+RCT(342)*V(281) + D_VAR(226) = RCT(91)*V(286)+RCT(94)*V(281)+RCT(759) + D_VAR(227) = RCT(289)*V(291)+RCT(293)*V(274)+RCT(294)*V(92)+RCT(298)*V(285)+RCT(304)*V(284)+RCT(305)*V(279)+RCT(306)*2& + &*V(227)+RCT(816) + D_VAR(228) = RCT(432)+RCT(433)+RCT(434)*V(284)+RCT(435)*V(279)+RCT(436)*V(279) + D_VAR(229) = RCT(437)+RCT(438)+RCT(439)*V(279)+RCT(440)*V(279)+RCT(441)*V(284) + D_VAR(230) = RCT(527)*V(286)+RCT(856) + D_VAR(231) = RCT(528)*V(286)+RCT(859) + D_VAR(232) = RCT(476)*V(284)+RCT(477)*V(279)+RCT(478)*V(279) + D_VAR(233) = RCT(116)*V(286)+RCT(118)*V(281)+RCT(713)+RCT(764) + D_VAR(234) = RCT(311)*V(267)+RCT(312)*V(279)+RCT(313)*V(291)+RCT(314)*V(278)+RCT(315)*V(278)*V(278)+RCT(316)*V(282)& + &+RCT(317)*V(276) + D_VAR(235) = RCT(230)*V(286)+RCT(658)*V(280)+RCT(659)*V(287)+RCT(660)*V(275)+RCT(661)*V(283)+RCT(662)*V(277)+RCT(663)& + &*V(289)+RCT(795) + D_VAR(236) = RCT(112)*V(286)+RCT(113)*V(286)+RCT(760) + D_VAR(237) = RCT(62)*V(279)+RCT(63)*V(279)+RCT(83)*V(266)+RCT(107)*V(284)+RCT(142)*V(261) + D_VAR(238) = RCT(326)*V(279)+RCT(327)*V(284)+RCT(328)*V(266)+RCT(329)*V(261)+RCT(330)*V(281) + D_VAR(239) = RCT(59)*V(279)+RCT(93)*V(266)+RCT(104)*2*V(239)+RCT(106)*V(284)+RCT(140)*V(261)+RCT(272)*V(290) + D_VAR(240) = RCT(513)*V(286)+RCT(514)*V(286)+RCT(879) + D_VAR(241) = RCT(526)*V(286)+RCT(718)+RCT(861) + D_VAR(242) = RCT(567)*V(286)+RCT(734)+RCT(886)+RCT(887) + D_VAR(243) = RCT(517)*V(286)+RCT(732)+RCT(880) + D_VAR(244) = RCT(376)*V(284)+RCT(377)*V(284)+RCT(380)+RCT(381)+RCT(383)*2*V(244)+RCT(384)*V(245)+RCT(386)*2*V(244)& + &+RCT(387)*V(245)+RCT(390)*V(266)+RCT(391)*V(266)+RCT(396)*V(279)+RCT(397)*V(279)+RCT(398)*V(279)+RCT(399)& + &*V(279) + D_VAR(245) = RCT(374)*V(284)+RCT(375)*V(284)+RCT(378)+RCT(379)+RCT(382)*2*V(245)+RCT(384)*V(244)+RCT(385)*2*V(245)& + &+RCT(387)*V(244)+RCT(388)*V(266)+RCT(389)*V(266)+RCT(392)*V(279)+RCT(393)*V(279)+RCT(394)*V(279)+RCT(395)& + &*V(279) + D_VAR(246) = RCT(481)*V(284)+RCT(483)*V(247)+RCT(484)*2*V(246)+RCT(485)*V(266)+RCT(488)*V(261)+RCT(490)*V(281)& + &+RCT(493)*V(279)+RCT(494)*V(279) + D_VAR(247) = RCT(480)*V(284)+RCT(482)*2*V(247)+RCT(483)*V(246)+RCT(486)*V(266)+RCT(487)*V(261)+RCT(489)*V(281)& + &+RCT(491)*V(279)+RCT(492)*V(279) + D_VAR(248) = RCT(520)*V(286)+RCT(521)*V(282)+RCT(765)+RCT(766)+RCT(767) + D_VAR(249) = RCT(554)*V(284)+RCT(555)*V(279)+RCT(556)*V(291)+RCT(557)*V(281)+RCT(558)*V(266) + D_VAR(250) = RCT(119)*V(286)+RCT(120)*V(286)+RCT(769) + D_VAR(251) = RCT(522)*V(286)+RCT(523)*V(286)+RCT(524)*V(282)+RCT(525)*V(281)+RCT(768) + D_VAR(252) = RCT(69)*V(279)+RCT(87)*V(284)+RCT(97)*V(266)+RCT(134)*V(261) + D_VAR(253) = RCT(110)*V(286)+RCT(111)*V(282)+RCT(114)*V(281)+RCT(281)*V(290)+RCT(282)*V(273) + D_VAR(254) = RCT(70)*V(279)+RCT(88)*V(284)+RCT(98)*V(266)+RCT(135)*V(261) + D_VAR(255) = RCT(78)*V(291)+RCT(80)*V(279)+RCT(109)*V(284)+RCT(143)*V(261)+RCT(144)*V(266) + D_VAR(256) = RCT(66)*V(279)+RCT(67)*V(279)+RCT(85)*V(284)+RCT(95)*V(266)+RCT(133)*V(261) + D_VAR(257) = RCT(68)*V(279)+RCT(86)*V(284)+RCT(96)*V(266)+RCT(137)*V(261) + D_VAR(258) = RCT(71)*V(279)+RCT(72)*V(279)+RCT(89)*V(284)+RCT(99)*V(266)+RCT(136)*V(261) + D_VAR(259) = RCT(77)*V(286)+RCT(81)*V(281)+RCT(756) + D_VAR(260) = RCT(161)*V(288)+RCT(669)*V(289)+RCT(670)*V(275)+RCT(671)*V(280)+RCT(672)*V(287)+RCT(673)*V(283)+RCT(674)& + &*V(277)+RCT(675)*V(276)+RCT(781) + D_VAR(261) = RCT(53)*V(291)+RCT(55)*V(279)+RCT(131)*2*V(261)+RCT(132)*V(266)+RCT(133)*V(256)+RCT(134)*V(252)+RCT(135)& + &*V(254)+RCT(136)*V(258)+RCT(137)*V(257)+RCT(138)*V(201)+RCT(139)*V(217)+RCT(140)*V(239)+RCT(141)*V(209)& + &+RCT(142)*V(237)+RCT(143)*V(255)+RCT(329)*V(238)+RCT(341)*V(225)+RCT(350)*V(215)+RCT(351)*V(216)+RCT(487)& + &*V(247)+RCT(488)*V(246)+RCT(571)*V(284)+RCT(596)*V(184) + D_VAR(262) = RCT(231)*V(286)+RCT(262)*V(288)+RCT(263)*V(290)+RCT(651)*V(278)+RCT(652)*V(275)+RCT(653)*V(289)+RCT(654)& + &*V(283)+RCT(655)*V(277)+RCT(656)*V(280)+RCT(657)*V(287)+RCT(796)+RCT(797) + D_VAR(263) = RCT(10)*V(276)+RCT(34)*V(286)+RCT(50)*V(281)+RCT(165)*V(273)+RCT(201)*V(288)+RCT(241)*V(290)+RCT(744)& + &+RCT(745) + D_VAR(264) = RCT(51)*V(286)+RCT(52)*V(281)+RCT(166)*V(273)+RCT(753)+RCT(754) + D_VAR(265) = RCT(3)*V(147)+RCT(6)*V(138)+RCT(36)*V(286)+RCT(746) + D_VAR(266) = RCT(17)*V(282)+RCT(26)*V(279)+RCT(27)*V(279)+RCT(28)*V(284)+RCT(29)*2*V(266)+RCT(30)*2*V(266)+RCT(31)& + &*V(286)+RCT(83)*V(237)+RCT(84)*V(209)+RCT(92)*V(217)+RCT(93)*V(239)+RCT(95)*V(256)+RCT(96)*V(257)+RCT(97)& + &*V(252)+RCT(98)*V(254)+RCT(99)*V(258)+RCT(100)*V(201)+RCT(132)*V(261)+RCT(144)*V(255)+RCT(146)*V(291)& + &+RCT(223)*V(285)+RCT(268)*V(290)+RCT(328)*V(238)+RCT(340)*V(225)+RCT(348)*V(215)+RCT(349)*V(216)+RCT(388)& + &*V(245)+RCT(389)*V(245)+RCT(390)*V(244)+RCT(391)*V(244)+RCT(485)*V(246)+RCT(486)*V(247)+RCT(558)*V(249)& + &+RCT(583)*V(179)+RCT(595)*V(184)+RCT(621)*V(191)+RCT(622)*V(180)+RCT(635)*V(281) + D_VAR(267) = RCT(24)*V(286)+RCT(311)*V(234)+RCT(318)*V(195) + D_VAR(268) = RCT(303)*V(286)+RCT(684)+RCT(685)+RCT(708)*V(283)+RCT(709)*V(277)+RCT(710)*V(280)+RCT(711)*V(287)& + &+RCT(815) + D_VAR(269) = RCT(283)*V(279)+RCT(285)*V(291)+RCT(291)*V(270)+RCT(292)*V(274)+RCT(299)*V(282)+RCT(300)*V(284) + D_VAR(270) = RCT(290)+RCT(291)*V(269)+RCT(697)+RCT(698)+RCT(699)*V(278)+RCT(704)*V(283)+RCT(705)*V(277)+RCT(706)& + &*V(280)+RCT(707)*V(287)+RCT(820) + D_VAR(271) = RCT(229)*V(286)+RCT(664)*V(275)+RCT(665)*V(289)+RCT(666)*V(280)+RCT(667)*V(287)+RCT(668)*V(276)+RCT(798) + D_VAR(272) = RCT(175)*V(278)+RCT(176)*F(2)+RCT(177)*F(3)+RCT(178)*F(1)+RCT(179)*V(61)+RCT(180)*V(190)+RCT(186)*V(282)& + &+RCT(202)*V(275)+RCT(203)*V(289)+RCT(204)*V(197)+RCT(205)*V(52)+RCT(206)*V(149)+RCT(207)*V(100)+RCT(208)& + &*V(71)+RCT(209)*V(77)+RCT(210)*V(84)+RCT(211)*V(53)+RCT(212)*V(54)+RCT(213)*V(59)+RCT(214)*V(47)+RCT(215)& + &*V(82)+RCT(216)*V(83)+RCT(217)*V(81)+RCT(218)*V(55)+RCT(219)*V(56)+RCT(220)*V(57)+RCT(221)*V(48) + D_VAR(273) = RCT(152)*V(282)+RCT(154)*V(284)+RCT(159)*V(176)+RCT(164)*V(281)+RCT(165)*V(263)+RCT(166)*V(264)+RCT(167)& + &*V(221)+RCT(168)*V(161)+RCT(169)*V(124)+RCT(170)*V(291)+RCT(282)*V(253) + D_VAR(274) = RCT(153)*V(284)+RCT(156)*2*V(274)+RCT(157)*2*V(274)+RCT(158)*V(279)+RCT(163)*V(286)+RCT(171)*V(291)& + &+RCT(200)*V(288)+RCT(259)*V(285)+RCT(260)*V(285)+RCT(261)*V(285)+RCT(292)*V(269)+RCT(293)*V(227)+RCT(780) + D_VAR(275) = RCT(2)*V(147)+RCT(5)*V(138)+RCT(202)*V(272)+RCT(228)*V(286)+RCT(643)*V(173)+RCT(650)*V(176)+RCT(652)& + &*V(262)+RCT(660)*V(235)+RCT(664)*V(271)+RCT(670)*V(260) + D_VAR(276) = RCT(1)*V(147)*V(282)+RCT(4)*V(138)*V(282)+RCT(7)*V(212)+RCT(8)*V(282)+RCT(9)+RCT(10)*V(263)+RCT(12)*V(86)& + &*V(286)+RCT(151)*V(286)+RCT(317)*V(234)+RCT(321)*V(195)+RCT(668)*V(271)+RCT(675)*V(260) + D_VAR(277) = RCT(655)*V(262)+RCT(662)*V(235)+RCT(674)*V(260)+RCT(678)*V(282)+RCT(701)*V(203)+RCT(705)*V(270)+RCT(709)& + &*V(268) + D_VAR(278) = RCT(175)*V(272)+RCT(314)*V(234)+RCT(315)*2*V(234)*V(278)+RCT(322)*V(195)+RCT(323)*V(195)+RCT(642)*V(173)& + &+RCT(649)*V(176)+RCT(651)*V(262)+RCT(699)*V(270) + D_VAR(279) = RCT(13)*V(282)+RCT(22)*V(284)+RCT(26)*V(266)+RCT(27)*V(266)+RCT(37)*V(286)+RCT(43)*V(281)+RCT(55)*V(261)& + &+RCT(57)*V(217)+RCT(58)*V(217)+RCT(59)*V(239)+RCT(62)*V(237)+RCT(63)*V(237)+RCT(64)*V(209)+RCT(66)*V(256)& + &+RCT(67)*V(256)+RCT(68)*V(257)+RCT(69)*V(252)+RCT(70)*V(254)+RCT(71)*V(258)+RCT(72)*V(258)+RCT(73)*V(201)& + &+RCT(80)*V(255)+RCT(158)*V(274)+RCT(191)*V(288)+RCT(198)*V(65)+RCT(249)*V(285)+RCT(283)*V(269)+RCT(297)& + &*V(92)+RCT(305)*V(227)+RCT(312)*V(234)+RCT(319)*V(195)+RCT(326)*V(238)+RCT(338)*V(225)+RCT(344)*V(215)& + &+RCT(345)*V(216)+RCT(392)*V(245)+RCT(393)*V(245)+RCT(394)*V(245)+RCT(395)*V(245)+RCT(396)*V(244)+RCT(397)& + &*V(244)+RCT(398)*V(244)+RCT(399)*V(244)+RCT(416)*V(182)+RCT(417)*V(182)+RCT(420)*V(183)+RCT(421)*V(183)& + &+RCT(424)*V(187)+RCT(425)*V(187)+RCT(435)*V(228)+RCT(436)*V(228)+RCT(439)*V(229)+RCT(440)*V(229)+RCT(443)& + &*V(194)+RCT(444)*V(194)+RCT(446)*V(121)+RCT(448)*V(123)+RCT(462)*V(167)+RCT(463)*V(167)+RCT(466)*V(152)& + &+RCT(467)*V(152)+RCT(471)*V(166)+RCT(472)*V(166)+RCT(474)*V(168)+RCT(475)*V(168)+RCT(477)*V(232)+RCT(478)& + &*V(232)+RCT(491)*V(247)+RCT(492)*V(247)+RCT(493)*V(246)+RCT(494)*V(246)+RCT(509)*V(222)+RCT(510)*V(222)& + &+RCT(511)*V(189)+RCT(512)*V(189)+RCT(515)*V(150)+RCT(518)*V(146)+RCT(531)*V(144)+RCT(534)*V(145)+RCT(544)& + &*V(204)+RCT(545)*V(204)+RCT(550)*V(205)+RCT(551)*V(205)+RCT(552)*V(207)+RCT(555)*V(249)+RCT(576)*V(18)& + &+RCT(581)*V(179)+RCT(593)*V(184)+RCT(607)*V(180)+RCT(613)*V(191)+RCT(630)*V(13)+RCT(632)*V(22)+RCT(634)& + &*V(27)+RCT(836) + D_VAR(280) = RCT(645)*V(173)+RCT(647)*V(286)+RCT(656)*V(262)+RCT(658)*V(235)+RCT(666)*V(271)+RCT(671)*V(260)+RCT(702)& + &*V(203)+RCT(706)*V(270)+RCT(710)*V(268) + D_VAR(281) = RCT(42)*V(284)+RCT(43)*V(279)+RCT(44)*V(286)+RCT(45)*V(291)+RCT(49)*V(291)+RCT(50)*V(263)+RCT(52)*V(264)& + &+RCT(74)*V(114)+RCT(81)*V(259)+RCT(94)*V(226)+RCT(114)*V(253)+RCT(117)*V(223)+RCT(118)*V(233)+RCT(130)& + &*V(161)+RCT(145)*2*V(281)+RCT(150)*V(90)+RCT(164)*V(273)+RCT(190)*V(288)+RCT(288)*V(143)+RCT(330)*V(238)& + &+RCT(333)*V(154)+RCT(334)*V(155)+RCT(337)*V(170)+RCT(342)*V(225)+RCT(352)*V(215)+RCT(353)*V(216)+RCT(360)& + &*V(199)+RCT(361)*V(178)+RCT(479)*V(224)+RCT(489)*V(247)+RCT(490)*V(246)+RCT(525)*V(251)+RCT(557)*V(249)& + &+RCT(568)*V(208)+RCT(582)*V(179)+RCT(594)*V(184)+RCT(598)*V(118)+RCT(600)*V(115)+RCT(603)*V(142)+RCT(605)& + &*V(101)+RCT(614)*V(191)+RCT(620)*V(210)+RCT(635)*V(266)+RCT(639)+RCT(640)+RCT(641)+RCT(750)+RCT(751) + D_VAR(282) = RCT(1)*V(147)*V(276)+RCT(4)*V(138)*V(276)+RCT(8)*V(276)+RCT(13)*V(279)+RCT(14)*V(286)+RCT(15)*V(284)& + &+RCT(16)*V(291)+RCT(17)*V(266)+RCT(111)*V(253)+RCT(152)*V(273)+RCT(182)*V(288)+RCT(186)*V(272)+RCT(195)& + &*V(177)+RCT(242)*V(290)+RCT(299)*V(269)+RCT(316)*V(234)+RCT(331)*V(154)+RCT(332)*V(155)+RCT(336)*V(170)& + &+RCT(359)*V(199)+RCT(369)*V(224)+RCT(521)*V(248)+RCT(524)*V(251)+RCT(577)*V(76)+RCT(602)*V(142)+RCT(617)& + &*V(160)+RCT(624)*V(159)+RCT(627)*V(148)+RCT(676)*V(289)+RCT(677)*V(283)+RCT(678)*V(277)+RCT(738)+RCT(739) + D_VAR(283) = RCT(654)*V(262)+RCT(661)*V(235)+RCT(673)*V(260)+RCT(677)*V(282)+RCT(700)*V(203)+RCT(704)*V(270)+RCT(708)& + &*V(268) + D_VAR(284) = RCT(15)*V(282)+RCT(20)*V(286)+RCT(22)*V(279)+RCT(23)*2*V(284)+RCT(28)*V(266)+RCT(39)*V(291)+RCT(42)& + &*V(281)+RCT(85)*V(256)+RCT(86)*V(257)+RCT(87)*V(252)+RCT(88)*V(254)+RCT(89)*V(258)+RCT(90)*V(201)+RCT(105)& + &*V(217)+RCT(106)*V(239)+RCT(107)*V(237)+RCT(108)*V(209)+RCT(109)*V(255)+RCT(153)*V(274)+RCT(154)*V(273)& + &+RCT(185)*V(288)+RCT(196)*V(177)+RCT(245)*V(290)+RCT(246)*V(290)+RCT(248)*V(285)+RCT(300)*V(269)+RCT(304)& + &*V(227)+RCT(327)*V(238)+RCT(339)*V(225)+RCT(346)*V(215)+RCT(347)*V(216)+RCT(374)*V(245)+RCT(375)*V(245)& + &+RCT(376)*V(244)+RCT(377)*V(244)+RCT(418)*V(182)+RCT(422)*V(183)+RCT(426)*V(187)+RCT(434)*V(228)+RCT(441)& + &*V(229)+RCT(442)*V(194)+RCT(447)*V(121)+RCT(449)*V(123)+RCT(461)*V(167)+RCT(465)*V(152)+RCT(470)*V(166)& + &+RCT(473)*V(168)+RCT(476)*V(232)+RCT(480)*V(247)+RCT(481)*V(246)+RCT(507)*V(222)+RCT(508)*V(189)+RCT(516)& + &*V(150)+RCT(519)*V(146)+RCT(532)*V(144)+RCT(535)*V(145)+RCT(543)*V(204)+RCT(546)*V(205)+RCT(547)*V(207)& + &+RCT(554)*V(249)+RCT(571)*V(261)+RCT(575)*V(18)+RCT(580)*V(179)+RCT(592)*V(184)+RCT(606)*V(180)+RCT(615)& + &*V(191)+RCT(629)*V(13)+RCT(631)*V(22)+RCT(633)*V(27)+RCT(637) + D_VAR(285) = RCT(223)*V(266)+RCT(224)*V(286)+RCT(225)*V(286)+RCT(247)*V(288)+RCT(248)*V(284)+RCT(249)*V(279)+RCT(250)& + &*V(291)+RCT(251)*2*V(285)+RCT(252)*2*V(285)+RCT(253)*2*V(285)+RCT(256)*2*V(285)+RCT(259)*V(274)+RCT(260)& + &*V(274)+RCT(261)*V(274)+RCT(298)*V(227)+RCT(792) + D_VAR(286) = RCT(12)*V(86)*V(276)+RCT(14)*V(282)+RCT(18)*2*V(286)+RCT(19)*2*V(286)+RCT(20)*V(284)+RCT(21)*V(212)& + &+RCT(24)*V(267)+RCT(25)*V(190)+RCT(31)*V(266)+RCT(32)*V(137)+RCT(33)*V(196)+RCT(34)*V(263)+RCT(35)*V(291)& + &+RCT(36)*V(265)+RCT(37)*V(279)+RCT(38)*V(193)+RCT(41)*V(102)+RCT(44)*V(281)+RCT(47)*V(211)+RCT(48)*V(218)& + &+RCT(51)*V(264)+RCT(56)*V(161)+RCT(60)*V(124)+RCT(61)*V(124)+RCT(65)*V(114)+RCT(75)*V(202)+RCT(76)*V(219)& + &+RCT(77)*V(259)+RCT(82)*V(221)+RCT(91)*V(226)+RCT(101)*V(133)+RCT(102)*V(158)+RCT(110)*V(253)+RCT(112)& + &*V(236)+RCT(113)*V(236)+RCT(115)*V(223)+RCT(116)*V(233)+RCT(119)*V(250)+RCT(120)*V(250)+RCT(121)*V(113)& + &+RCT(122)*V(110)+RCT(123)*V(94)+RCT(124)*V(95)+RCT(125)*V(93)+RCT(126)*V(106)+RCT(127)*V(112)+RCT(128)& + &*V(24)+RCT(129)*V(88)+RCT(148)*V(90)+RCT(149)*V(90)+RCT(151)*V(276)+RCT(155)*V(289)+RCT(160)*V(128)& + &+RCT(163)*V(274)+RCT(172)*V(77)+RCT(173)*V(71)+RCT(174)*V(100)+RCT(183)*F(1)+RCT(184)*V(288)+RCT(188)& + &*V(66)+RCT(222)*V(197)+RCT(224)*V(285)+RCT(225)*V(285)+RCT(226)*V(111)+RCT(227)*V(75)+RCT(228)*V(275)& + &+RCT(229)*V(271)+RCT(230)*V(235)+RCT(231)*V(262)+RCT(232)*V(149)+RCT(233)*V(72)+RCT(234)*V(78)+RCT(235)& + &*V(43)+RCT(236)*V(84)+RCT(237)*V(82)+RCT(238)*V(83)+RCT(239)*V(81)+RCT(301)*V(143)+RCT(302)*V(69)+RCT(303)& + &*V(268)+RCT(308)*V(46)+RCT(309)*V(208)+RCT(310)*V(198)+RCT(324)*V(154)+RCT(325)*V(155)+RCT(335)*V(170)& + &+RCT(343)*V(119)+RCT(357)*V(178)+RCT(358)*V(199)+RCT(364)*V(134)+RCT(365)*V(89)+RCT(366)*V(96)+RCT(367)& + &*V(87)+RCT(368)*V(91)+RCT(370)*V(224)+RCT(371)*V(224)+RCT(372)*V(224)+RCT(373)*V(224)+RCT(400)*V(186)& + &+RCT(401)*V(188)+RCT(402)*V(129)+RCT(403)*V(127)+RCT(404)*V(192)+RCT(405)*V(174)+RCT(406)*V(109)+RCT(407)& + &*V(157)+RCT(408)*V(157)+RCT(409)*V(162)+RCT(410)*V(162)+RCT(411)*V(157)+RCT(412)*V(162)+RCT(413)*V(171)& + &+RCT(414)*V(165)+RCT(427)*V(116)+RCT(428)*V(130)+RCT(429)*V(130)+RCT(430)*V(131)+RCT(431)*V(131)+RCT(450)& + &*V(139)+RCT(451)*V(139)+RCT(452)*V(140)+RCT(453)*V(140)+RCT(454)*V(220)+RCT(455)*V(220)+RCT(456)*V(214)& + &+RCT(457)*V(214)+RCT(458)*V(220)+RCT(459)*V(214)+RCT(497)*V(181)+RCT(498)*V(151)+RCT(499)*V(181)+RCT(500)& + &*V(151)+RCT(501)*V(151)+RCT(502)*V(181)+RCT(503)*V(151)+RCT(504)*V(151)+RCT(513)*V(240)+RCT(514)*V(240)& + &+RCT(517)*V(243)+RCT(520)*V(248)+RCT(522)*V(251)+RCT(523)*V(251)+RCT(526)*V(241)+RCT(527)*V(230)+RCT(528)& + &*V(231)+RCT(529)*V(200)+RCT(530)*V(175)+RCT(537)*V(163)+RCT(538)*V(156)+RCT(539)*V(117)+RCT(540)*V(185)& + &+RCT(541)*V(169)+RCT(542)*V(132)+RCT(548)*V(136)+RCT(560)*V(153)+RCT(561)*V(105)+RCT(562)*V(206)+RCT(563)& + &*V(125)+RCT(564)*V(141)+RCT(565)*V(164)+RCT(566)*V(213)+RCT(567)*V(242)+RCT(569)*V(104)+RCT(570)*V(85)& + &+RCT(572)*V(172)+RCT(573)*V(172)+RCT(574)*V(19)+RCT(578)*V(76)+RCT(579)*V(58)+RCT(586)*V(68)+RCT(587)& + &*V(120)+RCT(588)*V(120)+RCT(589)*V(64)+RCT(590)*V(79)+RCT(591)*V(80)+RCT(597)*V(118)+RCT(599)*V(115)& + &+RCT(601)*V(142)+RCT(604)*V(101)+RCT(609)*V(70)+RCT(611)*V(97)+RCT(616)*V(107)+RCT(619)*V(210)+RCT(623)& + &*V(159)+RCT(626)*V(148)+RCT(636)*V(41)+RCT(647)*V(280)+RCT(648)*V(287) + D_VAR(287) = RCT(646)*V(173)+RCT(648)*V(286)+RCT(657)*V(262)+RCT(659)*V(235)+RCT(667)*V(271)+RCT(672)*V(260)+RCT(703)& + &*V(203)+RCT(707)*V(270)+RCT(711)*V(268) + D_VAR(288) = RCT(161)*V(260)+RCT(162)*V(289)+RCT(181)*F(3)+RCT(182)*V(282)+RCT(184)*V(286)+RCT(185)*V(284)+RCT(187)& + &*V(66)+RCT(189)*V(291)+RCT(190)*V(281)+RCT(191)*V(279)+RCT(192)*V(291)+RCT(193)*V(212)+RCT(200)*V(274)& + &+RCT(201)*V(263)+RCT(247)*V(285)+RCT(262)*V(262) + D_VAR(289) = RCT(155)*V(286)+RCT(162)*V(288)+RCT(203)*V(272)+RCT(653)*V(262)+RCT(663)*V(235)+RCT(665)*V(271)+RCT(669)& + &*V(260)+RCT(676)*V(282)+RCT(679)+RCT(680) + D_VAR(290) = RCT(240)*V(190)+RCT(241)*V(263)+RCT(242)*V(282)+RCT(243)*F(1)+RCT(244)*V(212)+RCT(245)*V(284)+RCT(246)& + &*V(284)+RCT(254)*F(3)+RCT(258)*V(103)+RCT(263)*V(262)+RCT(264)*V(149)+RCT(265)*V(72)+RCT(266)*V(78)& + &+RCT(267)*V(211)+RCT(268)*V(266)+RCT(269)*V(137)+RCT(270)*V(161)+RCT(271)*V(217)+RCT(272)*V(239)+RCT(273)& + &*V(218)+RCT(274)*V(133)+RCT(275)*V(219)+RCT(276)*V(124)+RCT(277)*V(124)+RCT(278)*V(221)+RCT(279)*V(224)& + &+RCT(280)*V(114)+RCT(281)*V(253) + D_VAR(291) = RCT(16)*V(282)+RCT(35)*V(286)+RCT(39)*V(284)+RCT(45)*V(281)+RCT(49)*V(281)+RCT(53)*V(261)+RCT(78)*V(255)& + &+RCT(146)*V(266)+RCT(170)*V(273)+RCT(171)*V(274)+RCT(189)*V(288)+RCT(192)*V(288)+RCT(199)*V(65)+RCT(250)& + &*V(285)+RCT(285)*V(269)+RCT(289)*V(227)+RCT(313)*V(234)+RCT(320)*V(195)+RCT(533)*V(144)+RCT(536)*V(145)& + &+RCT(553)*V(207)+RCT(556)*V(249)+RCT(608)*V(180)+RCT(612)*V(191)+RCT(618)*V(160)+RCT(638)+RCT(741) END SUBROUTINE Fun_SPLITF ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! @@ -6078,4482 +6063,4491 @@ SUBROUTINE CalcStoichNum ( StoichNum ) REAL(kind=dp) :: StoichNum(NVAR,NREACT) StoichNum(:,:) = 0. - StoichNum(1,843) = -1 - StoichNum(2,845) = -1 - StoichNum(3,844) = -1 - StoichNum(4,707) = 1 - StoichNum(4,710) = 2 - StoichNum(4,713) = 2 - StoichNum(4,716) = 2 - StoichNum(5,757) = 1 - StoichNum(6,24) = 1 - StoichNum(6,49) = 1 - StoichNum(6,57) = 1 - StoichNum(6,78) = 1 - StoichNum(6,116) = 0.361 - StoichNum(6,124) = 0.5 - StoichNum(6,208) = 1 - StoichNum(6,289) = 1 - StoichNum(6,297) = 1 - StoichNum(6,336) = 1 - StoichNum(6,396) = 0.407 - StoichNum(6,431) = 0.355 - StoichNum(6,473) = 1 - StoichNum(6,474) = 1 - StoichNum(6,475) = 1 - StoichNum(6,476) = 1 - StoichNum(6,542) = 0.33 - StoichNum(6,543) = 0.33 - StoichNum(6,555) = 0.23 - StoichNum(6,557) = 0.75 - StoichNum(6,564) = 0.097 - StoichNum(6,574) = 0.5 - StoichNum(6,575) = 0.415 - StoichNum(6,579) = 1 - StoichNum(6,581) = 0.5 - StoichNum(6,582) = 1 - StoichNum(6,584) = 1 - StoichNum(6,585) = 0.7 - StoichNum(6,592) = 1 - StoichNum(6,596) = 1 - StoichNum(6,598) = 0.5 - StoichNum(6,633) = 0.35 - StoichNum(6,634) = 1 - StoichNum(6,638) = 1 - StoichNum(6,649) = 1 - StoichNum(6,872) = 1 - StoichNum(6,880) = 1.238 - StoichNum(6,912) = 1 - StoichNum(6,914) = 1 - StoichNum(7,389) = 1 - StoichNum(7,390) = 1 - StoichNum(8,708) = 1 - StoichNum(8,711) = 2 - StoichNum(8,714) = 2 - StoichNum(8,717) = 2 - StoichNum(9,709) = 1 - StoichNum(9,712) = 2 - StoichNum(9,715) = 2 - StoichNum(9,718) = 2 - StoichNum(10,656) = 1 - StoichNum(11,657) = 1 - StoichNum(12,616) = 1 - StoichNum(12,656) = -1 - StoichNum(12,657) = -1 - StoichNum(13,397) = 1 - StoichNum(13,398) = 1 - StoichNum(13,399) = 1 - StoichNum(13,400) = 1 - StoichNum(14,506) = 1 - StoichNum(15,602) = 1 - StoichNum(16,603) = 1 - StoichNum(17,601) = 1 - StoichNum(17,602) = -1 - StoichNum(17,603) = -1 - StoichNum(18,601) = -1 - StoichNum(19,658) = 1 - StoichNum(20,659) = 1 - StoichNum(21,617) = 1 - StoichNum(21,658) = -1 - StoichNum(21,659) = -1 - StoichNum(22,737) = 1 - StoichNum(23,138) = -1 - StoichNum(23,434) = 0.005 - StoichNum(23,435) = 0.005 - StoichNum(23,436) = 0.005 - StoichNum(23,437) = 0.005 - StoichNum(23,438) = 0.005 - StoichNum(23,439) = 0.005 - StoichNum(23,440) = 0.005 - StoichNum(23,441) = 0.005 - StoichNum(23,737) = -1 - StoichNum(24,660) = 1 - StoichNum(25,661) = 1 - StoichNum(26,618) = 1 - StoichNum(26,660) = -1 - StoichNum(26,661) = -1 - StoichNum(27,165) = 0.25 - StoichNum(28,4) = 1 - StoichNum(29,732) = 1 - StoichNum(29,733) = 1 - StoichNum(29,743) = 1 - StoichNum(30,734) = 1 - StoichNum(30,735) = 1 - StoichNum(30,736) = 1 - StoichNum(30,744) = 1 - StoichNum(30,749) = 1 - StoichNum(31,18) = 1 - StoichNum(31,22) = 1 - StoichNum(31,26) = 1 - StoichNum(31,38) = 1 - StoichNum(31,40) = 1 - StoichNum(31,57) = 1 - StoichNum(31,59) = 1 - StoichNum(31,61) = 1 - StoichNum(31,64) = 1 - StoichNum(31,66) = 1 - StoichNum(31,68) = 1 - StoichNum(31,69) = 1 - StoichNum(31,70) = 1 - StoichNum(31,71) = 1 - StoichNum(31,72) = 1 - StoichNum(31,73) = 1 - StoichNum(31,75) = 1 - StoichNum(31,82) = 1 - StoichNum(31,113) = 0.15 - StoichNum(31,176) = 1 - StoichNum(31,217) = 1 - StoichNum(31,219) = 1 - StoichNum(31,220) = 1 - StoichNum(31,243) = 1 - StoichNum(31,251) = 1 - StoichNum(31,252) = 1 - StoichNum(31,267) = 1 - StoichNum(31,280) = 2 - StoichNum(31,290) = 1 - StoichNum(31,293) = 1 - StoichNum(31,294) = 1 - StoichNum(31,326) = 1 - StoichNum(31,339) = 1 - StoichNum(31,340) = 1 - StoichNum(31,346) = 1 - StoichNum(31,347) = 1 - StoichNum(31,353) = 1 - StoichNum(31,365) = 1 - StoichNum(31,371) = 1 - StoichNum(31,372) = 1 - StoichNum(31,389) = 1 - StoichNum(31,390) = 1 - StoichNum(31,391) = 1 - StoichNum(31,392) = 1 - StoichNum(31,393) = 1 - StoichNum(31,394) = 1 - StoichNum(31,395) = 1 - StoichNum(31,419) = 1 - StoichNum(31,420) = 1 - StoichNum(31,421) = 1 - StoichNum(31,422) = 1 - StoichNum(31,423) = 1 - StoichNum(31,424) = 1 - StoichNum(31,425) = 1 - StoichNum(31,426) = 1 - StoichNum(31,443) = 1 - StoichNum(31,444) = 1 - StoichNum(31,447) = 1 - StoichNum(31,448) = 1 - StoichNum(31,451) = 1 - StoichNum(31,452) = 1 - StoichNum(31,462) = 1 - StoichNum(31,463) = 1 - StoichNum(31,466) = 1 - StoichNum(31,467) = 1 - StoichNum(31,470) = 1 - StoichNum(31,471) = 1 - StoichNum(31,473) = 1 - StoichNum(31,475) = 1 - StoichNum(31,489) = 1 - StoichNum(31,490) = 1 - StoichNum(31,493) = 1 - StoichNum(31,494) = 1 - StoichNum(31,498) = 1 - StoichNum(31,499) = 1 - StoichNum(31,501) = 1 - StoichNum(31,502) = 1 - StoichNum(31,504) = 1 - StoichNum(31,505) = 1 - StoichNum(31,518) = 1 - StoichNum(31,519) = 1 - StoichNum(31,520) = 1 - StoichNum(31,521) = 1 - StoichNum(31,536) = 1 - StoichNum(31,537) = 1 - StoichNum(31,538) = 1 - StoichNum(31,539) = 1 - StoichNum(31,542) = 1 - StoichNum(31,545) = 1 - StoichNum(31,553) = 0.69 - StoichNum(31,558) = 1 - StoichNum(31,561) = 1 - StoichNum(31,571) = 1 - StoichNum(31,572) = 0.438 - StoichNum(31,574) = 0.13 - StoichNum(31,577) = 1 - StoichNum(31,578) = 1 - StoichNum(31,579) = 1 - StoichNum(31,581) = 0.13 - StoichNum(31,582) = 1 - StoichNum(31,587) = 1 - StoichNum(31,594) = 0.02 - StoichNum(31,598) = 0.13 - StoichNum(31,608) = 0.995 - StoichNum(31,613) = 1 - StoichNum(31,620) = 1 - StoichNum(31,633) = 0.15 - StoichNum(31,634) = 1 - StoichNum(31,637) = 1 - StoichNum(31,638) = 1 - StoichNum(31,639) = 1 - StoichNum(31,640) = 1 - StoichNum(31,646) = 1 - StoichNum(31,760) = 2 - StoichNum(31,768) = 1 - StoichNum(31,775) = 0.3 - StoichNum(31,850) = 1 - StoichNum(31,853) = 1 - StoichNum(31,856) = 1 - StoichNum(31,863) = 1 - StoichNum(31,865) = 1 - StoichNum(31,866) = 1 - StoichNum(31,867) = 1 - StoichNum(31,868) = 1 - StoichNum(31,869) = 1 - StoichNum(31,900) = 0.01 - StoichNum(32,1) = 1 - StoichNum(32,3) = 1 - StoichNum(32,4) = 1 - StoichNum(32,6) = 1 - StoichNum(32,8) = 1 - StoichNum(32,14) = 1 - StoichNum(32,15) = 1 - StoichNum(32,17) = 1 - StoichNum(32,44) = 1 - StoichNum(32,46) = 1 - StoichNum(32,51) = 2 - StoichNum(32,52) = 1 - StoichNum(32,54) = 1 - StoichNum(32,76) = 1 - StoichNum(32,83) = 1 - StoichNum(32,96) = 1 - StoichNum(32,115) = 1 - StoichNum(32,118) = 1 - StoichNum(32,121) = 1 - StoichNum(32,122) = 1 - StoichNum(32,140) = 1 - StoichNum(32,161) = 2 - StoichNum(32,166) = 1 - StoichNum(32,172) = 2 - StoichNum(32,173) = 2 - StoichNum(32,177) = 1 - StoichNum(32,178) = 1 - StoichNum(32,179) = 1 - StoichNum(32,191) = 1 - StoichNum(32,194) = 1 - StoichNum(32,195) = 1 - StoichNum(32,196) = 1 - StoichNum(32,197) = 1 - StoichNum(32,198) = 1 - StoichNum(32,199) = 1 - StoichNum(32,201) = 2 - StoichNum(32,203) = 1 - StoichNum(32,204) = 1 - StoichNum(32,205) = 2 - StoichNum(32,207) = 1 - StoichNum(32,209) = 2 - StoichNum(32,210) = 2 - StoichNum(32,213) = 1 - StoichNum(32,215) = 1 - StoichNum(32,222) = 2 - StoichNum(32,223) = 1 - StoichNum(32,224) = 0.67 - StoichNum(32,225) = 0.65 - StoichNum(32,228) = 0.56 - StoichNum(32,231) = 0.17 - StoichNum(32,244) = 1 - StoichNum(32,245) = 1 - StoichNum(32,246) = 1 - StoichNum(32,247) = 1 - StoichNum(32,248) = 1 - StoichNum(32,268) = 2 - StoichNum(32,272) = 2 - StoichNum(32,273) = 2 - StoichNum(32,282) = 2 - StoichNum(32,283) = 2 - StoichNum(32,315) = 2 - StoichNum(32,322) = 2 - StoichNum(32,323) = 2 - StoichNum(32,343) = 1 - StoichNum(32,357) = 1 - StoichNum(32,358) = 1 - StoichNum(32,359) = 1 - StoichNum(32,360) = 1 - StoichNum(32,361) = 1 - StoichNum(32,363) = 1 - StoichNum(32,364) = 1 - StoichNum(32,369) = 1 - StoichNum(32,379) = 1 - StoichNum(32,380) = 1 - StoichNum(32,386) = 1 - StoichNum(32,387) = 2 - StoichNum(32,388) = 2 - StoichNum(32,396) = 1 - StoichNum(32,506) = 1 - StoichNum(32,511) = 0.001 - StoichNum(32,516) = 1 - StoichNum(32,517) = 1 - StoichNum(32,548) = 1 - StoichNum(32,551) = 1 - StoichNum(32,552) = 1 - StoichNum(32,584) = 1 - StoichNum(32,595) = 1 - StoichNum(32,604) = 1 - StoichNum(32,609) = 1 - StoichNum(32,621) = 1 - StoichNum(32,625) = 1.258 - StoichNum(32,627) = 1.5 - StoichNum(32,629) = 1 - StoichNum(32,630) = 1.5 - StoichNum(32,632) = 1 - StoichNum(32,635) = 1 - StoichNum(32,641) = 1 - StoichNum(32,644) = 1 - StoichNum(32,645) = 1 - StoichNum(32,651) = 1 - StoichNum(32,654) = 1 - StoichNum(32,662) = 1 - StoichNum(32,664) = 0.5 - StoichNum(32,665) = 1 - StoichNum(32,666) = 2 - StoichNum(32,667) = 2 - StoichNum(32,668) = 1 - StoichNum(32,669) = 1 - StoichNum(32,670) = 1 - StoichNum(32,671) = 1 - StoichNum(32,672) = 1 - StoichNum(32,676) = 1 - StoichNum(32,678) = 1 - StoichNum(32,679) = 1 - StoichNum(32,680) = 1 - StoichNum(32,681) = 1 - StoichNum(32,682) = 1 - StoichNum(32,683) = 1 - StoichNum(32,684) = 1 - StoichNum(32,685) = 1 - StoichNum(32,686) = 1 - StoichNum(32,687) = 1 - StoichNum(32,688) = 1 - StoichNum(32,689) = 1 - StoichNum(32,690) = 1 - StoichNum(32,691) = 1 - StoichNum(32,692) = 1 - StoichNum(32,693) = 1 - StoichNum(32,694) = 1 - StoichNum(32,695) = 1 - StoichNum(32,696) = 1 - StoichNum(32,697) = 1 - StoichNum(32,698) = 1 - StoichNum(32,699) = 1 - StoichNum(32,700) = 1 - StoichNum(32,701) = 1 - StoichNum(32,710) = 2 - StoichNum(32,711) = 2 - StoichNum(32,712) = 2 - StoichNum(32,713) = 3 - StoichNum(32,714) = 3 - StoichNum(32,715) = 3 - StoichNum(32,716) = 4 - StoichNum(32,717) = 4 - StoichNum(32,718) = 4 - StoichNum(32,720) = 1 - StoichNum(32,721) = 1 - StoichNum(32,722) = 1 - StoichNum(32,723) = 1 - StoichNum(32,724) = 1 - StoichNum(32,725) = 1 - StoichNum(32,726) = 1 - StoichNum(32,727) = 1 - StoichNum(32,728) = 1 - StoichNum(32,729) = 1 - StoichNum(32,730) = 1 - StoichNum(32,731) = 1 - StoichNum(32,738) = 1 - StoichNum(32,739) = 1 - StoichNum(32,740) = 1 - StoichNum(32,741) = 1 - StoichNum(32,742) = 1 - StoichNum(32,745) = 1 - StoichNum(32,746) = 1 - StoichNum(32,747) = 1 - StoichNum(32,748) = 1 - StoichNum(32,750) = 1 - StoichNum(32,751) = 1 - StoichNum(32,752) = 2 - StoichNum(32,753) = 1 - StoichNum(32,754) = 1 - StoichNum(32,755) = 1 - StoichNum(32,756) = 1 - StoichNum(32,771) = 2 - StoichNum(32,801) = 1 - StoichNum(32,814) = 2 - StoichNum(32,818) = 1 - StoichNum(32,835) = 1 - StoichNum(32,837) = 2 - StoichNum(33,36) = 1 - StoichNum(33,52) = 1 - StoichNum(33,53) = 0.05 - StoichNum(33,115) = 0.56 - StoichNum(33,116) = 0.505 - StoichNum(33,117) = 1 - StoichNum(33,119) = 2 - StoichNum(33,120) = 1 - StoichNum(33,121) = 2 - StoichNum(33,122) = 1 - StoichNum(33,124) = 0.5 - StoichNum(33,181) = 1 - StoichNum(33,207) = 1 - StoichNum(33,223) = 1 - StoichNum(33,262) = 1 - StoichNum(33,286) = 1 - StoichNum(33,287) = 1 - StoichNum(33,288) = 1 - StoichNum(33,358) = 0.14 - StoichNum(33,359) = 0.14 - StoichNum(33,363) = 0.14 - StoichNum(33,396) = 0.407 - StoichNum(33,399) = 0.6 - StoichNum(33,400) = 0.9 - StoichNum(33,406) = 0.6 - StoichNum(33,408) = 0.9 - StoichNum(33,412) = 1 - StoichNum(33,413) = 1 - StoichNum(33,414) = 1 - StoichNum(33,416) = 0.5 - StoichNum(33,418) = 0.5 - StoichNum(33,422) = 0.55 - StoichNum(33,426) = 0.55 - StoichNum(33,427) = 0.45 - StoichNum(33,428) = 0.37 - StoichNum(33,429) = 0.42 - StoichNum(33,430) = 0.23 - StoichNum(33,431) = 0.638 - StoichNum(33,432) = 1.5 - StoichNum(33,433) = 1 - StoichNum(33,438) = 0.25 - StoichNum(33,439) = 0.33 - StoichNum(33,440) = 0.036 - StoichNum(33,441) = 0.054 - StoichNum(33,460) = 1 - StoichNum(33,461) = 0.13 - StoichNum(33,462) = 0.2 - StoichNum(33,465) = 1 - StoichNum(33,466) = 0.2 - StoichNum(33,468) = 0.13 - StoichNum(33,469) = 0.52 - StoichNum(33,471) = 0.8 - StoichNum(33,472) = 2 - StoichNum(33,485) = 0.6 - StoichNum(33,486) = 0.6 - StoichNum(33,541) = 0.539 - StoichNum(33,542) = 0.33 - StoichNum(33,543) = 0.33 - StoichNum(33,548) = 0.18 - StoichNum(33,549) = 0.036 - StoichNum(33,551) = 0.12 - StoichNum(33,552) = 0.68 - StoichNum(33,555) = 0.77 - StoichNum(33,557) = 0.25 - StoichNum(33,564) = 0.75 - StoichNum(33,565) = 1 - StoichNum(33,568) = 2 - StoichNum(33,569) = 0.84 - StoichNum(33,573) = 0.507 - StoichNum(33,574) = 0.325 - StoichNum(33,575) = 0.488 - StoichNum(33,576) = 1 - StoichNum(33,577) = 0.86 - StoichNum(33,579) = 0.65 - StoichNum(33,587) = 0.25 - StoichNum(33,589) = 1 - StoichNum(33,590) = 0.888 - StoichNum(33,593) = 1 - StoichNum(33,599) = 1 - StoichNum(33,606) = 0.364 - StoichNum(33,616) = 0.2 - StoichNum(33,617) = 0.27 - StoichNum(33,618) = 0.3 - StoichNum(33,650) = 0.25 - StoichNum(33,651) = 0.5 - StoichNum(33,653) = 0.25 - StoichNum(33,654) = 0.5 - StoichNum(33,764) = 1 - StoichNum(33,765) = 1 - StoichNum(33,773) = 0.88 - StoichNum(33,774) = 1 - StoichNum(33,776) = 1 - StoichNum(33,778) = 1 - StoichNum(33,780) = 1 - StoichNum(33,781) = 2 - StoichNum(33,782) = 2 - StoichNum(33,783) = 1 - StoichNum(33,784) = 1 - StoichNum(33,785) = 1 - StoichNum(33,786) = 1 - StoichNum(33,788) = 1 - StoichNum(33,854) = 1 - StoichNum(33,858) = 1 - StoichNum(33,871) = 1 - StoichNum(33,874) = 1 - StoichNum(33,875) = 0.5 - StoichNum(33,877) = 0.571 - StoichNum(33,878) = 0.875 - StoichNum(33,879) = 0.77 - StoichNum(33,882) = 1 - StoichNum(33,883) = 1 - StoichNum(33,888) = 0.888 - StoichNum(33,889) = 0.818 - StoichNum(33,890) = 1 - StoichNum(33,891) = 1 - StoichNum(33,892) = 0.55 - StoichNum(33,895) = 0.55 - StoichNum(33,899) = 0.839 - StoichNum(33,901) = 1 - StoichNum(33,902) = 0.122 - StoichNum(33,905) = 1 - StoichNum(33,909) = 1 - StoichNum(33,911) = 1 - StoichNum(33,914) = 1 - StoichNum(34,24) = 1 + StoichNum(1,823) = -1 + StoichNum(2,825) = -1 + StoichNum(3,824) = -1 + StoichNum(4,681) = 1 + StoichNum(4,686) = 2 + StoichNum(4,689) = 2 + StoichNum(4,692) = 2 + StoichNum(5,737) = 1 + StoichNum(6,636) = 1 + StoichNum(7,24) = 1 + StoichNum(7,47) = 1 + StoichNum(7,55) = 1 + StoichNum(7,76) = 1 + StoichNum(7,80) = 1 + StoichNum(7,97) = 0.3 + StoichNum(7,109) = 0.43 + StoichNum(7,111) = 0.1 + StoichNum(7,112) = 0.361 + StoichNum(7,120) = 0.5 + StoichNum(7,129) = 0.22 + StoichNum(7,131) = 2 + StoichNum(7,132) = 0.9 + StoichNum(7,133) = 0.9 + StoichNum(7,134) = 0.9 + StoichNum(7,135) = 0.9 + StoichNum(7,136) = 0.9 + StoichNum(7,137) = 0.645 + StoichNum(7,138) = 0.9 + StoichNum(7,139) = 0.9 + StoichNum(7,140) = 0.9 + StoichNum(7,141) = 0.9 + StoichNum(7,142) = 0.9 + StoichNum(7,143) = 2 + StoichNum(7,144) = 1 + StoichNum(7,188) = 1 + StoichNum(7,267) = 1 + StoichNum(7,275) = 1 + StoichNum(7,309) = 1 + StoichNum(7,311) = 1 + StoichNum(7,318) = 1 + StoichNum(7,329) = 1 + StoichNum(7,350) = 1 + StoichNum(7,369) = 0.407 + StoichNum(7,404) = 0.355 + StoichNum(7,446) = 1 + StoichNum(7,447) = 1 + StoichNum(7,448) = 1 + StoichNum(7,449) = 1 + StoichNum(7,487) = 1 + StoichNum(7,488) = 1 + StoichNum(7,515) = 0.429 + StoichNum(7,516) = 0.429 + StoichNum(7,528) = 0.23 + StoichNum(7,530) = 0.75 + StoichNum(7,537) = 0.097 + StoichNum(7,547) = 0.5 + StoichNum(7,548) = 0.41 + StoichNum(7,552) = 1 + StoichNum(7,554) = 0.5 + StoichNum(7,555) = 1 + StoichNum(7,557) = 1 + StoichNum(7,558) = 0.7 + StoichNum(7,565) = 1 + StoichNum(7,569) = 1 + StoichNum(7,571) = 0.5 + StoichNum(7,596) = 1 + StoichNum(7,606) = 0.35 + StoichNum(7,607) = 1 + StoichNum(7,611) = 1 + StoichNum(7,622) = 1 + StoichNum(7,755) = 0.3 + StoichNum(7,778) = 1 + StoichNum(7,852) = 1 + StoichNum(7,860) = 1.238 + StoichNum(7,892) = 1 + StoichNum(7,894) = 1 + StoichNum(8,362) = 1 + StoichNum(8,363) = 1 + StoichNum(9,682) = 1 + StoichNum(9,684) = 1 + StoichNum(9,687) = 2 + StoichNum(9,690) = 2 + StoichNum(9,693) = 2 + StoichNum(9,695) = 1 + StoichNum(9,697) = 1 + StoichNum(10,683) = 1 + StoichNum(10,685) = 1 + StoichNum(10,688) = 2 + StoichNum(10,691) = 2 + StoichNum(10,694) = 2 + StoichNum(10,696) = 1 + StoichNum(10,698) = 1 + StoichNum(11,629) = 1 + StoichNum(12,630) = 1 + StoichNum(13,589) = 1 + StoichNum(13,629) = -1 + StoichNum(13,630) = -1 + StoichNum(14,370) = 1 + StoichNum(14,371) = 1 + StoichNum(14,372) = 1 + StoichNum(14,373) = 1 + StoichNum(15,479) = 1 + StoichNum(16,575) = 1 + StoichNum(17,576) = 1 + StoichNum(18,574) = 1 + StoichNum(18,575) = -1 + StoichNum(18,576) = -1 + StoichNum(19,574) = -1 + StoichNum(20,631) = 1 + StoichNum(21,632) = 1 + StoichNum(22,590) = 1 + StoichNum(22,631) = -1 + StoichNum(22,632) = -1 + StoichNum(23,717) = 1 + StoichNum(24,128) = -1 + StoichNum(24,407) = 0.005 + StoichNum(24,408) = 0.005 + StoichNum(24,409) = 0.005 + StoichNum(24,410) = 0.005 + StoichNum(24,411) = 0.005 + StoichNum(24,412) = 0.005 + StoichNum(24,413) = 0.005 + StoichNum(24,414) = 0.005 + StoichNum(24,717) = -1 + StoichNum(25,633) = 1 + StoichNum(26,634) = 1 + StoichNum(27,591) = 1 + StoichNum(27,633) = -1 + StoichNum(27,634) = -1 + StoichNum(28,149) = 0.25 + StoichNum(29,4) = 1 + StoichNum(30,712) = 1 + StoichNum(30,713) = 1.5 + StoichNum(30,723) = 1.5 + StoichNum(31,714) = 1 + StoichNum(31,715) = 1 + StoichNum(31,716) = 1 + StoichNum(31,724) = 0.8 + StoichNum(31,729) = 1 + StoichNum(32,151) = 1 + StoichNum(32,317) = 1 + StoichNum(32,321) = 1 + StoichNum(33,7) = 1 + StoichNum(33,8) = 1 + StoichNum(33,9) = 1 + StoichNum(33,12) = 2 + StoichNum(34,18) = 1 + StoichNum(34,22) = 1 + StoichNum(34,26) = 1 + StoichNum(34,36) = 1 + StoichNum(34,38) = 1 + StoichNum(34,55) = 1 + StoichNum(34,57) = 1 + StoichNum(34,59) = 1 + StoichNum(34,62) = 1 + StoichNum(34,64) = 1 + StoichNum(34,66) = 1 + StoichNum(34,67) = 1 + StoichNum(34,68) = 1 + StoichNum(34,69) = 1 + StoichNum(34,70) = 1 + StoichNum(34,71) = 1 + StoichNum(34,73) = 1 + StoichNum(34,80) = 1 + StoichNum(34,109) = 0.15 + StoichNum(34,160) = 1 + StoichNum(34,196) = 0.02 + StoichNum(34,197) = 1 + StoichNum(34,198) = 1 + StoichNum(34,222) = 1 + StoichNum(34,230) = 1 + StoichNum(34,231) = 1 + StoichNum(34,246) = 1 + StoichNum(34,258) = 0.1 + StoichNum(34,268) = 1 + StoichNum(34,271) = 1 + StoichNum(34,272) = 1 + StoichNum(34,301) = 1 + StoichNum(34,312) = 1 + StoichNum(34,313) = 1 + StoichNum(34,319) = 1 + StoichNum(34,320) = 1 + StoichNum(34,326) = 1 StoichNum(34,338) = 1 + StoichNum(34,344) = 1 StoichNum(34,345) = 1 + StoichNum(34,362) = 1 + StoichNum(34,363) = 1 + StoichNum(34,364) = 1 + StoichNum(34,365) = 1 + StoichNum(34,366) = 1 + StoichNum(34,367) = 1 + StoichNum(34,368) = 1 + StoichNum(34,392) = 1 + StoichNum(34,393) = 1 + StoichNum(34,394) = 1 + StoichNum(34,395) = 1 + StoichNum(34,396) = 1 + StoichNum(34,397) = 1 + StoichNum(34,398) = 1 + StoichNum(34,399) = 1 + StoichNum(34,416) = 1 + StoichNum(34,417) = 1 + StoichNum(34,420) = 1 + StoichNum(34,421) = 1 + StoichNum(34,424) = 1 + StoichNum(34,425) = 1 + StoichNum(34,435) = 1 + StoichNum(34,436) = 1 + StoichNum(34,439) = 1 + StoichNum(34,440) = 1 + StoichNum(34,443) = 1 + StoichNum(34,444) = 1 + StoichNum(34,446) = 1 + StoichNum(34,448) = 1 + StoichNum(34,462) = 1 + StoichNum(34,463) = 1 + StoichNum(34,466) = 1 + StoichNum(34,467) = 1 + StoichNum(34,471) = 1 + StoichNum(34,472) = 1 + StoichNum(34,474) = 1 + StoichNum(34,475) = 1 + StoichNum(34,477) = 1 + StoichNum(34,478) = 1 + StoichNum(34,491) = 1 + StoichNum(34,492) = 1 + StoichNum(34,493) = 1 + StoichNum(34,494) = 1 + StoichNum(34,509) = 1 + StoichNum(34,510) = 1 + StoichNum(34,511) = 1 + StoichNum(34,512) = 1 + StoichNum(34,515) = 1 + StoichNum(34,518) = 1 + StoichNum(34,526) = 0.69 + StoichNum(34,531) = 1 + StoichNum(34,534) = 1 + StoichNum(34,544) = 1 + StoichNum(34,545) = 1 + StoichNum(34,547) = 0.13 + StoichNum(34,550) = 1 + StoichNum(34,551) = 1 + StoichNum(34,552) = 1 + StoichNum(34,554) = 0.13 + StoichNum(34,555) = 1 + StoichNum(34,560) = 1 + StoichNum(34,571) = 0.13 + StoichNum(34,581) = 0.995 + StoichNum(34,586) = 1 + StoichNum(34,593) = 1 + StoichNum(34,606) = 0.15 + StoichNum(34,607) = 1 + StoichNum(34,610) = 1 + StoichNum(34,611) = 1 + StoichNum(34,612) = 1 + StoichNum(34,613) = 1 + StoichNum(34,619) = 1 + StoichNum(34,740) = 2 + StoichNum(34,748) = 1 + StoichNum(34,755) = 0.3 + StoichNum(34,830) = 1 + StoichNum(34,833) = 1 + StoichNum(34,836) = 1 + StoichNum(34,846) = 1 + StoichNum(34,847) = 1 + StoichNum(34,848) = 1 + StoichNum(34,849) = 1 StoichNum(35,1) = 1 - StoichNum(35,7) = 1 + StoichNum(35,4) = 1 StoichNum(35,8) = 1 - StoichNum(35,9) = 1 - StoichNum(35,12) = 2 - StoichNum(35,167) = 1 - StoichNum(35,344) = 1 - StoichNum(35,348) = 1 - StoichNum(35,694) = 1 + StoichNum(35,14) = 1 + StoichNum(35,15) = 1 + StoichNum(35,17) = 1 + StoichNum(35,42) = 1 + StoichNum(35,44) = 1 + StoichNum(35,49) = 2 + StoichNum(35,50) = 1 + StoichNum(35,52) = 1 + StoichNum(35,74) = 1 + StoichNum(35,81) = 1 + StoichNum(35,94) = 1 + StoichNum(35,111) = 1 + StoichNum(35,114) = 1 + StoichNum(35,117) = 1 + StoichNum(35,118) = 1 + StoichNum(35,130) = 1 + StoichNum(35,145) = 2 + StoichNum(35,150) = 1 + StoichNum(35,156) = 2 + StoichNum(35,157) = 2 + StoichNum(35,161) = 1 + StoichNum(35,162) = 1 + StoichNum(35,163) = 1 + StoichNum(35,175) = 1 + StoichNum(35,178) = 1 + StoichNum(35,179) = 1 + StoichNum(35,180) = 1 + StoichNum(35,182) = 2 + StoichNum(35,184) = 1 + StoichNum(35,185) = 1 + StoichNum(35,186) = 1 + StoichNum(35,187) = 1 + StoichNum(35,189) = 2 + StoichNum(35,190) = 2 + StoichNum(35,193) = 1 + StoichNum(35,195) = 1 + StoichNum(35,200) = 2 + StoichNum(35,201) = 1 + StoichNum(35,202) = 0.66 + StoichNum(35,203) = 0.6 + StoichNum(35,206) = 0.44 + StoichNum(35,207) = 0.56 + StoichNum(35,210) = 0.19 + StoichNum(35,218) = 0.1 + StoichNum(35,219) = 0.05 + StoichNum(35,223) = 1 + StoichNum(35,224) = 1 + StoichNum(35,225) = 1 + StoichNum(35,226) = 1 + StoichNum(35,227) = 1 + StoichNum(35,247) = 2 + StoichNum(35,251) = 2 + StoichNum(35,252) = 2 + StoichNum(35,260) = 2 + StoichNum(35,261) = 2 + StoichNum(35,293) = 0.4 + StoichNum(35,298) = 0.88 + StoichNum(35,316) = 1 + StoichNum(35,330) = 1 + StoichNum(35,331) = 1 + StoichNum(35,332) = 1 + StoichNum(35,333) = 1 + StoichNum(35,334) = 1 + StoichNum(35,336) = 1 + StoichNum(35,337) = 1 + StoichNum(35,342) = 1 + StoichNum(35,352) = 1 + StoichNum(35,353) = 1 + StoichNum(35,359) = 1 + StoichNum(35,360) = 2 + StoichNum(35,361) = 2 + StoichNum(35,369) = 1 + StoichNum(35,479) = 1 + StoichNum(35,489) = 1 + StoichNum(35,490) = 1 + StoichNum(35,521) = 1 + StoichNum(35,524) = 1 + StoichNum(35,525) = 1 + StoichNum(35,557) = 1 + StoichNum(35,568) = 1 + StoichNum(35,577) = 1 + StoichNum(35,582) = 1 + StoichNum(35,594) = 1 + StoichNum(35,598) = 1.258 + StoichNum(35,600) = 1.5 + StoichNum(35,602) = 1 + StoichNum(35,603) = 1.5 + StoichNum(35,605) = 1 + StoichNum(35,608) = 1 + StoichNum(35,614) = 1 + StoichNum(35,617) = 1 + StoichNum(35,618) = 1 + StoichNum(35,624) = 1 + StoichNum(35,627) = 1 + StoichNum(35,635) = 1 + StoichNum(35,638) = 0.5 + StoichNum(35,639) = 1 + StoichNum(35,640) = 1 + StoichNum(35,641) = 1 + StoichNum(35,642) = 1 + StoichNum(35,643) = 1 + StoichNum(35,644) = 1 + StoichNum(35,645) = 1 + StoichNum(35,646) = 1 + StoichNum(35,650) = 1 + StoichNum(35,652) = 1 + StoichNum(35,653) = 1 + StoichNum(35,654) = 1 + StoichNum(35,655) = 1 + StoichNum(35,656) = 1 + StoichNum(35,657) = 1 + StoichNum(35,658) = 1 + StoichNum(35,659) = 1 + StoichNum(35,660) = 1 + StoichNum(35,661) = 1 + StoichNum(35,662) = 1 + StoichNum(35,663) = 1 + StoichNum(35,664) = 1 + StoichNum(35,665) = 1 + StoichNum(35,666) = 1 + StoichNum(35,667) = 1 + StoichNum(35,668) = 1 + StoichNum(35,669) = 1 + StoichNum(35,670) = 1 + StoichNum(35,671) = 1 + StoichNum(35,672) = 1 + StoichNum(35,673) = 1 + StoichNum(35,674) = 1 + StoichNum(35,675) = 1 + StoichNum(35,684) = 1 + StoichNum(35,685) = 1 + StoichNum(35,686) = 2 + StoichNum(35,687) = 2 + StoichNum(35,688) = 2 + StoichNum(35,689) = 3 + StoichNum(35,690) = 3 + StoichNum(35,691) = 3 + StoichNum(35,692) = 4 + StoichNum(35,693) = 4 + StoichNum(35,694) = 4 + StoichNum(35,695) = 1 + StoichNum(35,696) = 1 + StoichNum(35,697) = 1 + StoichNum(35,698) = 1 + StoichNum(35,700) = 1 StoichNum(35,701) = 1 - StoichNum(36,25) = 1 - StoichNum(36,197) = 1 - StoichNum(36,198) = 1 - StoichNum(36,199) = 1 - StoichNum(36,261) = 1 - StoichNum(37,19) = 1 - StoichNum(37,23) = 1 - StoichNum(37,341) = 0.06 - StoichNum(37,342) = 0.06 - StoichNum(37,349) = 1 - StoichNum(37,358) = 0.02 - StoichNum(37,359) = 0.02 - StoichNum(37,363) = 0.02 - StoichNum(37,396) = 0.013 - StoichNum(37,548) = 0.045 - StoichNum(38,318) = 1 - StoichNum(38,319) = -1 - StoichNum(38,716) = -1 - StoichNum(38,717) = -1 - StoichNum(38,718) = -1 - StoichNum(38,846) = -1 - StoichNum(39,256) = -1 - StoichNum(39,819) = -1 - StoichNum(40,332) = 1 - StoichNum(40,333) = -1 - StoichNum(40,334) = -1 - StoichNum(40,710) = -1 - StoichNum(40,711) = -1 - StoichNum(40,712) = -1 - StoichNum(40,841) = -1 - StoichNum(41,390) = -1 - StoichNum(41,740) = 1 - StoichNum(41,741) = 1 - StoichNum(41,742) = 1 - StoichNum(42,240) = -0.75 - StoichNum(42,824) = -1 - StoichNum(43,335) = -1 - StoichNum(43,842) = -1 - StoichNum(44,235) = -0.41 - StoichNum(44,830) = -1 - StoichNum(45,242) = -0.75 - StoichNum(45,832) = -1 - StoichNum(46,241) = -0.3 - StoichNum(46,825) = -1 - StoichNum(47,317) = 1 - StoichNum(47,713) = -1 - StoichNum(47,714) = -1 - StoichNum(47,715) = -1 - StoichNum(47,847) = -1 - StoichNum(48,239) = -0.75 - StoichNum(48,823) = -1 - StoichNum(49,80) = 1 - StoichNum(49,81) = -1 - StoichNum(50,186) = 1 - StoichNum(50,804) = -1 - StoichNum(51,227) = -0.86 - StoichNum(51,820) = -1 - StoichNum(52,232) = -0.88 - StoichNum(52,821) = -1 - StoichNum(53,233) = -0.86 - StoichNum(53,822) = -1 - StoichNum(54,606) = -1 - StoichNum(55,234) = -0.64 - StoichNum(55,831) = -1 - StoichNum(56,305) = 1 - StoichNum(56,306) = -2 - StoichNum(56,838) = -1 - StoichNum(57,195) = -1 - StoichNum(57,196) = -1 - StoichNum(57,221) = 1 - StoichNum(57,853) = -1 - StoichNum(58,3) = 1 - StoichNum(58,666) = 1 - StoichNum(58,864) = -1 - StoichNum(58,865) = -1 - StoichNum(59,6) = 1 - StoichNum(59,667) = 1 - StoichNum(59,862) = -1 - StoichNum(59,863) = -1 - StoichNum(60,616) = -1 - StoichNum(61,219) = -1 - StoichNum(61,220) = -1 - StoichNum(61,221) = -1 - StoichNum(61,856) = 1 - StoichNum(62,207) = -1 - StoichNum(62,208) = -1 - StoichNum(62,854) = -1 - StoichNum(63,55) = 1 - StoichNum(63,56) = -1 - StoichNum(63,775) = -1 - StoichNum(64,608) = 0.005 - StoichNum(64,613) = -1 - StoichNum(65,325) = 1 - StoichNum(65,327) = -1 - StoichNum(65,707) = -1 - StoichNum(65,708) = -1 - StoichNum(65,709) = -1 - StoichNum(66,139) = -1 - StoichNum(66,598) = 0.37 - StoichNum(66,798) = -1 - StoichNum(67,633) = 0.65 - StoichNum(67,636) = -1 - StoichNum(67,912) = -1 - StoichNum(68,255) = -1 - StoichNum(68,288) = -1 - StoichNum(69,720) = 1 - StoichNum(69,721) = 1 - StoichNum(69,724) = 1 - StoichNum(69,725) = 1 - StoichNum(69,728) = 1 - StoichNum(69,729) = 1 - StoichNum(69,848) = -1 - StoichNum(70,189) = -1 - StoichNum(70,229) = -0.95 - StoichNum(70,806) = -1 - StoichNum(71,162) = 1 - StoichNum(71,163) = -1 - StoichNum(71,850) = -1 - StoichNum(71,851) = -1 - StoichNum(72,248) = -1 - StoichNum(72,277) = 1 - StoichNum(72,278) = -1 - StoichNum(72,814) = -1 - StoichNum(73,254) = -1 - StoichNum(73,287) = -1 - StoichNum(73,809) = -1 - StoichNum(74,188) = -1 - StoichNum(74,230) = -0.68 - StoichNum(74,805) = -1 - StoichNum(75,604) = -1 - StoichNum(75,605) = -1 - StoichNum(76,617) = -1 - StoichNum(77,618) = -1 - StoichNum(78,238) = -0.79 - StoichNum(78,260) = -1 - StoichNum(78,826) = -1 - StoichNum(79,236) = -0.69 - StoichNum(79,258) = -1 - StoichNum(79,827) = -1 - StoichNum(80,237) = -0.74 - StoichNum(80,259) = -1 - StoichNum(80,828) = -1 - StoichNum(81,231) = -0.72 - StoichNum(81,257) = -1 - StoichNum(81,829) = -1 - StoichNum(82,164) = -1 - StoichNum(82,165) = -1 - StoichNum(82,166) = -1 - StoichNum(83,341) = 0.73 - StoichNum(83,342) = 0.4 - StoichNum(83,597) = -1 - StoichNum(83,870) = -1 - StoichNum(84,575) = 0.098 - StoichNum(84,587) = 0.75 - StoichNum(84,588) = -1 - StoichNum(84,744) = -1 - StoichNum(85,10) = 1 - StoichNum(85,11) = -1 - StoichNum(85,12) = -1 - StoichNum(86,74) = 1 - StoichNum(86,394) = -1 - StoichNum(86,868) = -1 - StoichNum(87,27) = 1 - StoichNum(87,392) = -1 - StoichNum(87,866) = -1 - StoichNum(88,60) = 1 - StoichNum(88,393) = -1 - StoichNum(88,867) = -1 - StoichNum(89,65) = 1 - StoichNum(89,395) = -1 - StoichNum(89,869) = -1 - StoichNum(90,316) = 1 - StoichNum(90,317) = -1 - StoichNum(90,318) = -2 - StoichNum(90,319) = 2 - StoichNum(90,320) = -1 - StoichNum(90,331) = 1 - StoichNum(90,334) = 1 - StoichNum(90,837) = -1 - StoichNum(90,841) = 1 - StoichNum(90,846) = 2 - StoichNum(90,847) = 1 - StoichNum(91,87) = 1 - StoichNum(91,135) = -1 - StoichNum(91,794) = -1 - StoichNum(92,111) = 1 - StoichNum(92,133) = -1 - StoichNum(92,792) = -1 - StoichNum(93,91) = 1 - StoichNum(93,134) = -1 - StoichNum(93,793) = -1 - StoichNum(94,113) = 0.41 - StoichNum(94,136) = -1 - StoichNum(94,796) = -1 - StoichNum(95,635) = 1 - StoichNum(95,637) = -1 - StoichNum(95,638) = -1 - StoichNum(96,389) = -1 - StoichNum(96,738) = 1 - StoichNum(96,739) = 1 - StoichNum(96,745) = 1 - StoichNum(96,746) = 1 - StoichNum(96,747) = 1 - StoichNum(96,748) = 1 - StoichNum(96,750) = 1 - StoichNum(96,751) = 1 - StoichNum(96,752) = 1 - StoichNum(96,753) = 1 - StoichNum(96,754) = 1 - StoichNum(96,755) = 1 - StoichNum(96,756) = 1 - StoichNum(97,190) = -1 - StoichNum(97,228) = -1 - StoichNum(97,807) = -1 - StoichNum(98,323) = 1 - StoichNum(98,722) = 1 - StoichNum(98,723) = 1 + StoichNum(35,702) = 1 + StoichNum(35,703) = 1 + StoichNum(35,704) = 1 + StoichNum(35,705) = 1 + StoichNum(35,706) = 1 + StoichNum(35,707) = 1 + StoichNum(35,708) = 1 + StoichNum(35,709) = 1 + StoichNum(35,710) = 1 + StoichNum(35,711) = 1 + StoichNum(35,718) = 1 + StoichNum(35,719) = 1 + StoichNum(35,720) = 1 + StoichNum(35,721) = 1 + StoichNum(35,722) = 1 + StoichNum(35,725) = 1 + StoichNum(35,726) = 1 + StoichNum(35,727) = 1 + StoichNum(35,728) = 1 + StoichNum(35,730) = 1 + StoichNum(35,731) = 1 + StoichNum(35,732) = 2 + StoichNum(35,733) = 1 + StoichNum(35,734) = 1 + StoichNum(35,735) = 1 + StoichNum(35,736) = 1 + StoichNum(35,751) = 2 + StoichNum(35,781) = 1 + StoichNum(35,794) = 2 + StoichNum(35,798) = 1 + StoichNum(35,815) = 1 + StoichNum(35,817) = 2 + StoichNum(35,842) = 1 + StoichNum(35,844) = 1 + StoichNum(36,34) = 1 + StoichNum(36,50) = 1 + StoichNum(36,51) = 0.05 + StoichNum(36,111) = 0.56 + StoichNum(36,112) = 0.505 + StoichNum(36,113) = 1 + StoichNum(36,115) = 2 + StoichNum(36,116) = 1 + StoichNum(36,117) = 2 + StoichNum(36,118) = 1 + StoichNum(36,120) = 0.5 + StoichNum(36,165) = 1 + StoichNum(36,187) = 1 + StoichNum(36,201) = 1 + StoichNum(36,241) = 1 + StoichNum(36,264) = 1 + StoichNum(36,265) = 1 + StoichNum(36,266) = 1 + StoichNum(36,331) = 0.14 + StoichNum(36,332) = 0.14 + StoichNum(36,336) = 0.14 + StoichNum(36,369) = 0.407 + StoichNum(36,372) = 0.6 + StoichNum(36,373) = 0.9 + StoichNum(36,379) = 0.6 + StoichNum(36,381) = 0.9 + StoichNum(36,385) = 1 + StoichNum(36,386) = 1 + StoichNum(36,387) = 1 + StoichNum(36,389) = 0.5 + StoichNum(36,391) = 0.5 + StoichNum(36,395) = 0.55 + StoichNum(36,399) = 0.55 + StoichNum(36,400) = 0.45 + StoichNum(36,401) = 0.37 + StoichNum(36,402) = 0.42 + StoichNum(36,403) = 0.23 + StoichNum(36,404) = 0.638 + StoichNum(36,405) = 1.5 + StoichNum(36,406) = 1 + StoichNum(36,411) = 0.25 + StoichNum(36,412) = 0.33 + StoichNum(36,413) = 0.036 + StoichNum(36,414) = 0.054 + StoichNum(36,433) = 1 + StoichNum(36,434) = 0.13 + StoichNum(36,435) = 0.2 + StoichNum(36,438) = 1 + StoichNum(36,439) = 0.2 + StoichNum(36,441) = 0.13 + StoichNum(36,442) = 0.52 + StoichNum(36,444) = 0.8 + StoichNum(36,445) = 2 + StoichNum(36,458) = 0.6 + StoichNum(36,459) = 0.6 + StoichNum(36,514) = 0.539 + StoichNum(36,515) = 0.33 + StoichNum(36,516) = 0.33 + StoichNum(36,521) = 0.28 + StoichNum(36,522) = 0.036 + StoichNum(36,524) = 0.12 + StoichNum(36,525) = 0.68 + StoichNum(36,528) = 0.77 + StoichNum(36,530) = 0.25 + StoichNum(36,537) = 0.75 + StoichNum(36,538) = 1 + StoichNum(36,540) = 1 + StoichNum(36,541) = 2 + StoichNum(36,542) = 0.84 + StoichNum(36,546) = 0.507 + StoichNum(36,547) = 0.325 + StoichNum(36,548) = 0.488 + StoichNum(36,549) = 1 + StoichNum(36,550) = 0.86 + StoichNum(36,552) = 0.65 + StoichNum(36,560) = 0.25 + StoichNum(36,561) = 1 + StoichNum(36,562) = 1 + StoichNum(36,563) = 0.888 + StoichNum(36,566) = 1 + StoichNum(36,572) = 1 + StoichNum(36,579) = 0.364 + StoichNum(36,589) = 0.2 + StoichNum(36,590) = 0.27 + StoichNum(36,591) = 0.3 + StoichNum(36,619) = 0.15 + StoichNum(36,620) = 0.15 + StoichNum(36,623) = 0.26 + StoichNum(36,624) = 0.5 + StoichNum(36,626) = 0.25 + StoichNum(36,627) = 0.5 + StoichNum(36,628) = 0.05 + StoichNum(36,744) = 1 + StoichNum(36,745) = 1 + StoichNum(36,753) = 0.88 + StoichNum(36,754) = 1 + StoichNum(36,756) = 1 + StoichNum(36,758) = 1 + StoichNum(36,760) = 1 + StoichNum(36,761) = 2 + StoichNum(36,762) = 2 + StoichNum(36,763) = 1 + StoichNum(36,764) = 1 + StoichNum(36,765) = 1 + StoichNum(36,766) = 1 + StoichNum(36,768) = 1 + StoichNum(36,834) = 1 + StoichNum(36,838) = 1 + StoichNum(36,851) = 1 + StoichNum(36,854) = 1 + StoichNum(36,855) = 0.5 + StoichNum(36,857) = 0.571 + StoichNum(36,858) = 0.875 + StoichNum(36,859) = 0.77 + StoichNum(36,862) = 1 + StoichNum(36,863) = 1 + StoichNum(36,868) = 0.888 + StoichNum(36,869) = 0.818 + StoichNum(36,870) = 1 + StoichNum(36,871) = 1 + StoichNum(36,872) = 0.55 + StoichNum(36,875) = 0.55 + StoichNum(36,879) = 0.839 + StoichNum(36,881) = 1 + StoichNum(36,882) = 0.163 + StoichNum(36,885) = 1 + StoichNum(36,889) = 1 + StoichNum(36,891) = 1 + StoichNum(36,894) = 1 + StoichNum(37,24) = 1 + StoichNum(37,311) = 1 + StoichNum(37,318) = 1 + StoichNum(38,1) = 1 + StoichNum(38,7) = 1 + StoichNum(38,8) = 1 + StoichNum(38,9) = 1 + StoichNum(38,12) = 2 + StoichNum(38,151) = 1 + StoichNum(38,317) = 1 + StoichNum(38,321) = 1 + StoichNum(38,668) = 1 + StoichNum(38,675) = 1 + StoichNum(39,25) = 1 + StoichNum(39,180) = 1 + StoichNum(39,240) = 1 + StoichNum(40,19) = 1 + StoichNum(40,23) = 1 + StoichNum(40,314) = 0.06 + StoichNum(40,315) = 0.06 + StoichNum(40,322) = 1 + StoichNum(40,331) = 0.02 + StoichNum(40,332) = 0.02 + StoichNum(40,336) = 0.02 + StoichNum(40,369) = 0.013 + StoichNum(40,521) = 0.045 + StoichNum(41,636) = -1 + StoichNum(42,295) = 1 + StoichNum(42,296) = -1 + StoichNum(42,692) = -1 + StoichNum(42,693) = -1 + StoichNum(42,694) = -1 + StoichNum(42,826) = -1 + StoichNum(43,235) = -1 + StoichNum(43,799) = -1 + StoichNum(44,306) = 0.6 + StoichNum(44,307) = -1 + StoichNum(44,686) = -1 + StoichNum(44,687) = -1 + StoichNum(44,688) = -1 + StoichNum(44,821) = -1 + StoichNum(45,363) = -1 + StoichNum(45,720) = 1 + StoichNum(45,721) = 1 + StoichNum(45,722) = 1 + StoichNum(46,308) = -1 + StoichNum(46,822) = -1 + StoichNum(47,214) = -0.45 + StoichNum(47,810) = -1 + StoichNum(48,221) = -0.75 + StoichNum(48,812) = -1 + StoichNum(49,294) = 1 + StoichNum(49,689) = -1 + StoichNum(49,690) = -1 + StoichNum(49,691) = -1 + StoichNum(49,827) = -1 + StoichNum(50,78) = 1 + StoichNum(50,79) = -1 + StoichNum(51,170) = 1 + StoichNum(51,784) = -1 + StoichNum(52,205) = -0.79 + StoichNum(52,800) = -1 + StoichNum(53,211) = -0.9 + StoichNum(53,801) = -1 + StoichNum(54,212) = -0.86 + StoichNum(54,802) = -1 + StoichNum(55,218) = -0.9 + StoichNum(55,803) = -1 + StoichNum(56,219) = -0.9 + StoichNum(56,804) = -1 + StoichNum(57,220) = -0.86 + StoichNum(57,805) = -1 + StoichNum(58,579) = -1 + StoichNum(59,213) = -0.65 + StoichNum(59,811) = -1 + StoichNum(60,283) = 1 + StoichNum(60,284) = -2 + StoichNum(60,818) = -1 + StoichNum(61,179) = -1 + StoichNum(61,199) = 1 + StoichNum(61,833) = -1 + StoichNum(62,3) = 1 + StoichNum(62,640) = 1 + StoichNum(62,844) = -1 + StoichNum(62,845) = -1 + StoichNum(63,6) = 1 + StoichNum(63,641) = 1 + StoichNum(63,842) = -1 + StoichNum(63,843) = -1 + StoichNum(64,589) = -1 + StoichNum(65,197) = -1 + StoichNum(65,198) = -1 + StoichNum(65,199) = -1 + StoichNum(65,836) = 1 + StoichNum(66,187) = -1 + StoichNum(66,188) = -1 + StoichNum(66,834) = -1 + StoichNum(67,53) = 1 + StoichNum(67,54) = -1 + StoichNum(67,755) = -1 + StoichNum(68,581) = 0.005 + StoichNum(68,586) = -1 + StoichNum(69,300) = 1 + StoichNum(69,302) = -1 + StoichNum(69,681) = -1 + StoichNum(69,682) = -1 + StoichNum(69,683) = -1 + StoichNum(70,606) = 0.65 + StoichNum(70,609) = -1 + StoichNum(70,892) = -1 + StoichNum(71,173) = -1 + StoichNum(71,208) = -0.95 + StoichNum(71,786) = -1 + StoichNum(72,233) = -1 + StoichNum(72,265) = -1 + StoichNum(72,789) = -1 + StoichNum(73,700) = 1 + StoichNum(73,701) = 1 + StoichNum(73,704) = 1 + StoichNum(73,705) = 1 + StoichNum(73,708) = 1 + StoichNum(73,709) = 1 + StoichNum(73,828) = -1 + StoichNum(74,146) = 1 + StoichNum(74,147) = -1 + StoichNum(74,830) = -1 + StoichNum(74,831) = -1 + StoichNum(75,227) = -1 + StoichNum(75,256) = 1 + StoichNum(75,257) = -1 + StoichNum(75,794) = -1 + StoichNum(76,577) = -1 + StoichNum(76,578) = -1 + StoichNum(77,172) = -1 + StoichNum(77,209) = -0.7 + StoichNum(77,785) = -1 + StoichNum(78,234) = -1 + StoichNum(78,266) = -1 + StoichNum(79,590) = -1 + StoichNum(80,591) = -1 + StoichNum(81,217) = -0.79 + StoichNum(81,239) = -1 + StoichNum(81,806) = -1 + StoichNum(82,215) = -0.69 + StoichNum(82,237) = -1 + StoichNum(82,807) = -1 + StoichNum(83,216) = -0.65 + StoichNum(83,238) = -1 + StoichNum(83,808) = -1 + StoichNum(84,210) = -0.75 + StoichNum(84,236) = -1 + StoichNum(84,809) = -1 + StoichNum(85,314) = 0.73 + StoichNum(85,315) = 0.4 + StoichNum(85,570) = -1 + StoichNum(85,850) = -1 + StoichNum(86,10) = 1 + StoichNum(86,11) = -1 + StoichNum(86,12) = -1 + StoichNum(87,72) = 1 + StoichNum(87,367) = -1 + StoichNum(87,848) = -1 + StoichNum(88,129) = -1 + StoichNum(88,571) = 0.37 + StoichNum(88,778) = -1 + StoichNum(89,27) = 1 + StoichNum(89,365) = -1 + StoichNum(89,846) = -1 + StoichNum(90,148) = -1 + StoichNum(90,149) = -1 + StoichNum(90,150) = -1 + StoichNum(91,63) = 1 + StoichNum(91,368) = -1 + StoichNum(91,849) = -1 + StoichNum(92,293) = 0.8 + StoichNum(92,294) = -1 + StoichNum(92,295) = -2 + StoichNum(92,296) = 2 + StoichNum(92,297) = -1 + StoichNum(92,306) = 0.4 + StoichNum(92,307) = 0.996 + StoichNum(92,817) = -1 + StoichNum(92,821) = 1 + StoichNum(92,826) = 2 + StoichNum(92,827) = 1 + StoichNum(93,85) = 1 + StoichNum(93,125) = -1 + StoichNum(93,774) = -1 + StoichNum(94,107) = 1 + StoichNum(94,123) = -1 + StoichNum(94,772) = -1 + StoichNum(95,89) = 1 + StoichNum(95,124) = -1 + StoichNum(95,773) = -1 + StoichNum(96,58) = 1 + StoichNum(96,366) = -1 + StoichNum(96,847) = -1 + StoichNum(97,608) = 1 + StoichNum(97,610) = -1 + StoichNum(97,611) = -1 + StoichNum(98,362) = -1 + StoichNum(98,718) = 1 + StoichNum(98,719) = 1 + StoichNum(98,725) = 1 StoichNum(98,726) = 1 StoichNum(98,727) = 1 + StoichNum(98,728) = 1 StoichNum(98,730) = 1 StoichNum(98,731) = 1 - StoichNum(98,849) = -1 - StoichNum(99,617) = 0.06 - StoichNum(99,618) = 0.06 - StoichNum(99,631) = -1 - StoichNum(99,632) = -1 - StoichNum(99,911) = -1 - StoichNum(100,253) = -1 - StoichNum(100,286) = -1 - StoichNum(100,808) = -1 - StoichNum(101,41) = 1 - StoichNum(101,42) = -1 - StoichNum(101,43) = -1 - StoichNum(101,768) = -1 - StoichNum(101,769) = -1 - StoichNum(102,608) = 0.995 - StoichNum(102,609) = 1 - StoichNum(102,610) = 0.6 - StoichNum(102,611) = -1 - StoichNum(102,612) = -1 - StoichNum(102,910) = 1 - StoichNum(103,244) = 1 - StoichNum(103,248) = 1 - StoichNum(103,273) = 1 - StoichNum(103,275) = 1 - StoichNum(103,276) = -1 - StoichNum(103,279) = -1 - StoichNum(103,280) = -1 - StoichNum(103,282) = 1 - StoichNum(103,814) = 1 - StoichNum(103,833) = -1 - StoichNum(104,548) = 0.075 - StoichNum(104,553) = 0.241 - StoichNum(104,564) = 0.653 - StoichNum(104,596) = -1 - StoichNum(104,743) = -1 - StoichNum(104,872) = -1 - StoichNum(104,878) = 0.75 - StoichNum(105,633) = 0.15 - StoichNum(105,638) = 1 - StoichNum(105,642) = 1 - StoichNum(105,643) = -1 - StoichNum(105,913) = -1 - StoichNum(106,427) = 0.15 - StoichNum(106,428) = 0.15 - StoichNum(106,433) = -1 - StoichNum(106,888) = 0.112 - StoichNum(106,889) = 0.182 - StoichNum(106,899) = 0.161 - StoichNum(107,247) = -1 - StoichNum(107,274) = 1 - StoichNum(107,281) = 1 - StoichNum(107,321) = 1 - StoichNum(107,813) = -1 - StoichNum(108,109) = 1 - StoichNum(108,110) = 1 - StoichNum(108,132) = -1 - StoichNum(108,791) = -1 - StoichNum(109,617) = 0.19 - StoichNum(109,618) = 0.15 - StoichNum(109,626) = -1 - StoichNum(109,627) = -1 - StoichNum(110,112) = 1 - StoichNum(110,137) = -1 - StoichNum(110,795) = -1 - StoichNum(111,92) = 1 - StoichNum(111,131) = -1 - StoichNum(111,790) = -1 - StoichNum(112,67) = -1 - StoichNum(112,76) = -1 - StoichNum(112,302) = -1 - StoichNum(113,607) = 1 - StoichNum(113,610) = 0.2 - StoichNum(113,614) = -1 - StoichNum(113,615) = -1 - StoichNum(113,910) = -1 - StoichNum(114,440) = 0.255 - StoichNum(114,441) = 0.595 - StoichNum(114,454) = -1 - StoichNum(114,481) = 1 - StoichNum(114,483) = 1 - StoichNum(114,736) = -1 - StoichNum(115,460) = 1 - StoichNum(115,461) = 0.13 - StoichNum(115,462) = 0.2 - StoichNum(115,566) = -1 - StoichNum(115,589) = 0.35 - StoichNum(115,901) = 0.35 - StoichNum(116,428) = 0.315 - StoichNum(116,475) = -1 - StoichNum(116,476) = -1 - StoichNum(117,616) = 0.54 - StoichNum(117,624) = -1 - StoichNum(117,625) = -1 - StoichNum(118,354) = 1 - StoichNum(118,366) = 1 - StoichNum(118,370) = -1 - StoichNum(118,857) = -1 - StoichNum(119,1) = 1 - StoichNum(119,7) = 1 - StoichNum(119,8) = 1 - StoichNum(119,9) = 1 - StoichNum(119,12) = 2 - StoichNum(119,167) = 1 - StoichNum(119,344) = 1 - StoichNum(119,348) = 1 - StoichNum(119,694) = 1 - StoichNum(119,701) = 1 - StoichNum(119,855) = -1 - StoichNum(120,427) = 0.315 - StoichNum(120,473) = -1 - StoichNum(120,474) = -1 - StoichNum(121,62) = -1 - StoichNum(121,63) = -1 - StoichNum(121,185) = -1 - StoichNum(121,298) = -1 - StoichNum(121,299) = -1 - StoichNum(122,459) = 1 - StoichNum(122,464) = 1 - StoichNum(122,590) = -1 - StoichNum(122,905) = -1 - StoichNum(123,510) = 0.474 - StoichNum(123,511) = 0.34 - StoichNum(123,512) = 0.244 - StoichNum(123,515) = 0.841 - StoichNum(123,517) = 0.841 - StoichNum(123,520) = 0.841 - StoichNum(123,522) = -1 - StoichNum(123,523) = -1 - StoichNum(123,897) = 0.841 - StoichNum(123,900) = 0.227 - StoichNum(124,400) = 0.15 - StoichNum(124,408) = 0.15 - StoichNum(124,430) = -1 - StoichNum(124,441) = 0.009 - StoichNum(124,891) = -1 - StoichNum(125,173) = 1 - StoichNum(125,175) = 1 - StoichNum(125,176) = -1 - StoichNum(125,695) = 1 - StoichNum(125,699) = 1 - StoichNum(125,700) = 1 - StoichNum(125,799) = -1 - StoichNum(126,399) = 0.15 - StoichNum(126,406) = 0.15 - StoichNum(126,429) = -1 - StoichNum(126,440) = 0.009 - StoichNum(126,890) = -1 - StoichNum(127,435) = 0.67 - StoichNum(127,437) = 0.68 - StoichNum(127,455) = -1 - StoichNum(127,456) = -1 - StoichNum(127,478) = 0.67 - StoichNum(127,480) = 0.67 - StoichNum(127,734) = -1 - StoichNum(128,435) = 0.33 - StoichNum(128,437) = 0.32 - StoichNum(128,457) = -1 - StoichNum(128,458) = -1 - StoichNum(128,478) = 0.33 - StoichNum(128,480) = 0.33 - StoichNum(128,735) = -1 - StoichNum(129,94) = 0.25 - StoichNum(129,95) = 0.25 - StoichNum(129,103) = -1 - StoichNum(129,107) = 1 - StoichNum(129,108) = 1 - StoichNum(129,296) = -1 - StoichNum(130,465) = 1 - StoichNum(130,466) = 0.2 - StoichNum(130,468) = 0.13 - StoichNum(130,569) = -1 - StoichNum(130,589) = 0.15 - StoichNum(130,901) = 0.15 - StoichNum(130,902) = 0.122 - StoichNum(131,384) = 1 - StoichNum(131,385) = 1 - StoichNum(131,386) = 1 - StoichNum(131,387) = 1 - StoichNum(131,388) = 1 - StoichNum(131,391) = -1 - StoichNum(131,742) = -1 - StoichNum(131,861) = -1 - StoichNum(132,283) = 1 - StoichNum(132,676) = 1 - StoichNum(132,679) = 1 - StoichNum(132,680) = 1 - StoichNum(132,681) = 1 - StoichNum(132,687) = 1 - StoichNum(132,688) = 1 - StoichNum(132,689) = 1 - StoichNum(132,691) = 1 - StoichNum(132,696) = 1 - StoichNum(132,697) = 1 - StoichNum(132,698) = 1 - StoichNum(132,810) = -1 - StoichNum(133,574) = 0.5 - StoichNum(133,575) = -1 - StoichNum(133,880) = -0.75 - StoichNum(134,28) = 1 - StoichNum(134,32) = -1 - StoichNum(134,33) = -1 - StoichNum(134,291) = -1 - StoichNum(134,763) = -1 - StoichNum(135,4) = -2 - StoichNum(135,5) = -1 - StoichNum(135,6) = -1 - StoichNum(136,419) = 1 - StoichNum(136,477) = -1 - StoichNum(136,478) = -1 - StoichNum(136,746) = -1 - StoichNum(136,893) = -1 - StoichNum(137,423) = 1 - StoichNum(137,479) = -1 - StoichNum(137,480) = -1 - StoichNum(137,747) = -1 - StoichNum(137,894) = -1 - StoichNum(138,624) = 0.8 - StoichNum(138,626) = 0.727 - StoichNum(138,628) = -1 - StoichNum(138,629) = -1 - StoichNum(138,630) = -1 - StoichNum(139,445) = 0.725 - StoichNum(139,449) = 0.725 - StoichNum(139,453) = 0.35 - StoichNum(139,591) = -1 - StoichNum(139,903) = -1 - StoichNum(140,306) = 1 - StoichNum(140,309) = 1 - StoichNum(140,310) = -1 - StoichNum(140,313) = 1 - StoichNum(140,326) = -1 - StoichNum(140,834) = -1 - StoichNum(141,558) = -1 - StoichNum(141,559) = -1 - StoichNum(141,560) = -1 - StoichNum(141,888) = 0.224 - StoichNum(141,899) = 0.068 - StoichNum(142,561) = -1 - StoichNum(142,562) = -1 - StoichNum(142,563) = -1 - StoichNum(142,889) = 0.182 - StoichNum(142,899) = 0.128 - StoichNum(143,544) = 0.435 - StoichNum(143,545) = -1 - StoichNum(143,546) = -1 - StoichNum(144,1) = -2 - StoichNum(144,2) = -1 - StoichNum(144,3) = -1 - StoichNum(145,617) = 0.3 - StoichNum(145,618) = 0.56 - StoichNum(145,626) = 0.44 - StoichNum(145,627) = 0.44 - StoichNum(145,653) = -1 - StoichNum(145,654) = -1 - StoichNum(145,655) = -1 - StoichNum(146,541) = 0.461 - StoichNum(146,542) = -0.33 - StoichNum(146,543) = -0.33 - StoichNum(146,594) = 0.041 - StoichNum(147,508) = 1 - StoichNum(147,525) = -1 - StoichNum(147,527) = -1 - StoichNum(147,528) = -1 - StoichNum(147,530) = -1 - StoichNum(147,531) = -1 - StoichNum(147,750) = -1 - StoichNum(147,897) = -1 - StoichNum(147,898) = -1 - StoichNum(148,479) = 1 - StoichNum(148,491) = -1 - StoichNum(148,492) = -1 - StoichNum(148,493) = -1 - StoichNum(148,494) = -1 - StoichNum(149,580) = 1 - StoichNum(149,583) = 1 - StoichNum(149,586) = -1 - StoichNum(149,587) = -1 - StoichNum(150,351) = -1 - StoichNum(150,358) = -1 - StoichNum(150,360) = -1 - StoichNum(151,352) = -1 - StoichNum(151,359) = -1 - StoichNum(151,361) = -1 - StoichNum(152,433) = 1 - StoichNum(152,565) = -1 - StoichNum(152,590) = 0.444 - StoichNum(152,877) = -1 - StoichNum(152,888) = 0.112 - StoichNum(152,889) = 0.182 - StoichNum(152,899) = 0.162 - StoichNum(152,905) = 0.454 - StoichNum(153,401) = 0.937 - StoichNum(153,434) = -1 - StoichNum(153,435) = -1 - StoichNum(153,438) = -1 - StoichNum(153,884) = -1 - StoichNum(154,85) = 0.25 - StoichNum(154,86) = 0.25 - StoichNum(154,97) = 0.25 - StoichNum(154,98) = 0.25 - StoichNum(154,100) = 0.25 - StoichNum(154,101) = 0.25 - StoichNum(154,102) = 0.25 - StoichNum(154,104) = -1 - StoichNum(154,355) = 0.25 - StoichNum(154,367) = 0.25 - StoichNum(154,376) = 0.25 - StoichNum(155,616) = 0.56 - StoichNum(155,617) = 0.68 - StoichNum(155,618) = 0.28 - StoichNum(155,624) = 0.18 - StoichNum(155,628) = 1.05 - StoichNum(155,629) = 1 - StoichNum(155,630) = 0.3 - StoichNum(155,646) = 1 - StoichNum(155,647) = 1 - StoichNum(155,650) = -1 - StoichNum(155,651) = -1 - StoichNum(155,652) = -1 - StoichNum(155,914) = 1 - StoichNum(156,624) = 0.06 - StoichNum(156,625) = 0.742 - StoichNum(156,626) = 0.073 - StoichNum(156,627) = 0.3 - StoichNum(156,628) = 0.3 - StoichNum(156,630) = 0.3 - StoichNum(156,639) = 1 - StoichNum(156,640) = 1 - StoichNum(156,641) = 1 - StoichNum(156,644) = -1 - StoichNum(156,645) = -1 - StoichNum(156,648) = 1 - StoichNum(156,913) = 1 - StoichNum(157,58) = -1 - StoichNum(157,140) = -1 - StoichNum(157,184) = -1 - StoichNum(157,292) = -1 - StoichNum(158,403) = 0.937 - StoichNum(158,436) = -1 - StoichNum(158,437) = -1 - StoichNum(158,439) = -1 - StoichNum(158,885) = -1 - StoichNum(159,442) = 0.824 - StoichNum(159,446) = 0.452 - StoichNum(159,450) = 1 - StoichNum(159,591) = 0.667 - StoichNum(159,592) = -1 - StoichNum(159,904) = -1 - StoichNum(160,564) = -1 - StoichNum(160,594) = 0.022 - StoichNum(160,878) = -1 - StoichNum(160,888) = 0.552 - StoichNum(160,889) = 0.455 - StoichNum(160,899) = 0.481 - StoichNum(161,404) = 1 - StoichNum(161,441) = -1 - StoichNum(161,887) = -1 - StoichNum(162,477) = 1 - StoichNum(162,487) = -1 - StoichNum(162,488) = -1 - StoichNum(162,489) = -1 - StoichNum(162,490) = -1 - StoichNum(163,484) = 1 - StoichNum(163,496) = -1 - StoichNum(163,500) = -1 - StoichNum(163,501) = -1 - StoichNum(163,502) = -1 - StoichNum(164,482) = 1 - StoichNum(164,495) = -1 - StoichNum(164,497) = -1 - StoichNum(164,498) = -1 - StoichNum(164,499) = -1 - StoichNum(165,362) = -1 - StoichNum(165,363) = -1 - StoichNum(165,364) = -1 - StoichNum(166,469) = 0.13 - StoichNum(166,471) = 0.2 - StoichNum(166,554) = 0.53 - StoichNum(166,566) = 0.6 - StoichNum(166,568) = -1 - StoichNum(166,570) = 0.255 - StoichNum(166,590) = 0.318 - StoichNum(166,874) = -1 - StoichNum(166,905) = 0.391 - StoichNum(167,402) = 1 - StoichNum(167,440) = -1 - StoichNum(167,886) = -1 - StoichNum(168,399) = 0.3 - StoichNum(168,406) = 0.3 - StoichNum(168,440) = 0.018 - StoichNum(168,443) = 0.284 - StoichNum(168,445) = 0.135 - StoichNum(168,534) = 0.249 - StoichNum(168,535) = 0.471 - StoichNum(168,536) = 0.303 - StoichNum(168,538) = 0.59 - StoichNum(168,599) = -1 - StoichNum(168,600) = -1 - StoichNum(168,871) = -1 - StoichNum(168,907) = 0.5 - StoichNum(169,47) = 1 - StoichNum(169,48) = -1 - StoichNum(169,668) = -1 - StoichNum(169,669) = -1 - StoichNum(169,670) = -1 - StoichNum(169,671) = -1 - StoichNum(169,672) = -1 - StoichNum(169,772) = -1 - StoichNum(170,427) = 0.085 - StoichNum(170,428) = 0.165 - StoichNum(170,429) = 0.58 - StoichNum(170,430) = 0.77 - StoichNum(170,432) = -1 - StoichNum(170,454) = 0.75 - StoichNum(170,455) = 1 - StoichNum(170,457) = 1 - StoichNum(170,528) = 1 - StoichNum(170,540) = 1 - StoichNum(170,749) = -1 - StoichNum(171,485) = 0.6 - StoichNum(171,497) = 0.031 - StoichNum(171,498) = 0.065 - StoichNum(171,503) = 0.094 - StoichNum(171,504) = 0.355 - StoichNum(171,534) = 0.06 - StoichNum(171,535) = 0.073 - StoichNum(171,536) = 0.17 - StoichNum(171,538) = 0.291 - StoichNum(171,541) = 0.378 - StoichNum(171,557) = -1 - StoichNum(171,581) = 0.13 - StoichNum(171,585) = 0.3 - StoichNum(171,755) = -1 - StoichNum(171,883) = -1 - StoichNum(172,175) = -1 - StoichNum(172,187) = 1 - StoichNum(172,675) = -1 - StoichNum(172,676) = -1 - StoichNum(172,802) = -1 - StoichNum(172,803) = -1 - StoichNum(173,194) = 1 - StoichNum(173,199) = 1 - StoichNum(173,202) = 1 - StoichNum(173,203) = 1 - StoichNum(173,214) = -1 - StoichNum(173,215) = -1 - StoichNum(173,216) = -1 - StoichNum(173,217) = -1 - StoichNum(173,218) = -1 - StoichNum(173,224) = 0.24 - StoichNum(173,225) = 0.15 - StoichNum(173,264) = 1 - StoichNum(173,764) = 1 - StoichNum(174,353) = 0.12 - StoichNum(174,371) = 1 - StoichNum(174,373) = 0.7 - StoichNum(174,374) = 0.7 - StoichNum(174,375) = 0.7 - StoichNum(174,376) = 0.35 - StoichNum(174,377) = 0.7 - StoichNum(174,379) = 0.7 - StoichNum(174,381) = 1.4 - StoichNum(174,382) = 1.05 - StoichNum(174,383) = 0.7 - StoichNum(174,384) = -1 - StoichNum(174,388) = -1 - StoichNum(174,740) = -1 - StoichNum(174,859) = -1 - StoichNum(175,605) = 1 - StoichNum(175,607) = -1 - StoichNum(175,608) = -1 - StoichNum(175,609) = -1 - StoichNum(175,610) = -1 - StoichNum(175,614) = 1 - StoichNum(176,631) = 1 - StoichNum(176,632) = 1 - StoichNum(176,633) = -1 - StoichNum(176,634) = -1 - StoichNum(176,635) = -1 - StoichNum(176,636) = 1 - StoichNum(176,637) = 1 + StoichNum(98,732) = 1 + StoichNum(98,733) = 1 + StoichNum(98,734) = 1 + StoichNum(98,735) = 1 + StoichNum(98,736) = 1 + StoichNum(99,298) = 0.191 + StoichNum(99,702) = 1 + StoichNum(99,703) = 1 + StoichNum(99,706) = 1 + StoichNum(99,707) = 1 + StoichNum(99,710) = 1 + StoichNum(99,711) = 1 + StoichNum(99,829) = -1 + StoichNum(100,174) = -1 + StoichNum(100,207) = -1 + StoichNum(100,787) = -1 + StoichNum(101,590) = 0.06 + StoichNum(101,591) = 0.06 + StoichNum(101,604) = -1 + StoichNum(101,605) = -1 + StoichNum(101,891) = -1 + StoichNum(102,39) = 1 + StoichNum(102,40) = -1 + StoichNum(102,41) = -1 + StoichNum(102,748) = -1 + StoichNum(102,749) = -1 + StoichNum(103,223) = 1 + StoichNum(103,227) = 1 + StoichNum(103,252) = 1 + StoichNum(103,254) = 1 + StoichNum(103,255) = -1 + StoichNum(103,258) = -1 + StoichNum(103,260) = 1 + StoichNum(103,794) = 1 + StoichNum(103,813) = -1 + StoichNum(104,521) = 0.075 + StoichNum(104,526) = 0.241 + StoichNum(104,537) = 0.653 + StoichNum(104,569) = -1 + StoichNum(104,723) = -1 + StoichNum(104,852) = -1 + StoichNum(104,858) = 0.75 + StoichNum(105,548) = 0.098 + StoichNum(105,560) = 0.75 + StoichNum(105,561) = -1 + StoichNum(105,724) = -1 + StoichNum(106,109) = 0.41 + StoichNum(106,126) = -1 + StoichNum(106,776) = -1 + StoichNum(107,606) = 0.15 + StoichNum(107,611) = 1 + StoichNum(107,615) = 1 + StoichNum(107,616) = -1 + StoichNum(107,893) = -1 + StoichNum(108,581) = 0.995 + StoichNum(108,582) = 1 + StoichNum(108,583) = 0.6 + StoichNum(108,584) = -1 + StoichNum(108,585) = -1 + StoichNum(108,890) = 1 + StoichNum(109,400) = 0.15 + StoichNum(109,401) = 0.15 + StoichNum(109,406) = -1 + StoichNum(109,868) = 0.112 + StoichNum(109,869) = 0.182 + StoichNum(109,879) = 0.161 + StoichNum(110,105) = 1 + StoichNum(110,106) = 1 + StoichNum(110,122) = -1 + StoichNum(110,771) = -1 + StoichNum(111,226) = -1 + StoichNum(111,253) = 1 + StoichNum(111,259) = 1 + StoichNum(111,298) = 0.56 + StoichNum(111,793) = -1 + StoichNum(112,108) = 1 + StoichNum(112,127) = -1 + StoichNum(112,775) = -1 + StoichNum(113,90) = 1 + StoichNum(113,121) = -1 + StoichNum(113,770) = -1 + StoichNum(114,65) = -1 + StoichNum(114,74) = -1 + StoichNum(114,280) = -1 + StoichNum(115,590) = 0.19 + StoichNum(115,591) = 0.15 + StoichNum(115,599) = -1 + StoichNum(115,600) = -1 + StoichNum(116,413) = 0.255 + StoichNum(116,414) = 0.595 + StoichNum(116,427) = -1 + StoichNum(116,454) = 1 + StoichNum(116,456) = 1 + StoichNum(116,716) = -1 + StoichNum(117,433) = 1 + StoichNum(117,434) = 0.13 + StoichNum(117,435) = 0.2 + StoichNum(117,539) = -1 + StoichNum(117,562) = 0.35 + StoichNum(117,881) = 0.35 + StoichNum(118,589) = 0.54 + StoichNum(118,597) = -1 + StoichNum(118,598) = -1 + StoichNum(119,327) = 1 + StoichNum(119,339) = 1 + StoichNum(119,343) = -1 + StoichNum(119,837) = -1 + StoichNum(120,580) = 1 + StoichNum(120,583) = 0.2 + StoichNum(120,587) = -1 + StoichNum(120,588) = -1 + StoichNum(120,890) = -1 + StoichNum(121,400) = 0.315 + StoichNum(121,446) = -1 + StoichNum(121,447) = -1 + StoichNum(122,1) = 1 + StoichNum(122,7) = 1 + StoichNum(122,8) = 1 + StoichNum(122,9) = 1 + StoichNum(122,12) = 2 + StoichNum(122,151) = 1 + StoichNum(122,317) = 1 + StoichNum(122,321) = 1 + StoichNum(122,668) = 1 + StoichNum(122,675) = 1 + StoichNum(122,835) = -1 + StoichNum(123,401) = 0.315 + StoichNum(123,448) = -1 + StoichNum(123,449) = -1 + StoichNum(124,60) = -1 + StoichNum(124,61) = -1 + StoichNum(124,169) = -1 + StoichNum(124,276) = -1 + StoichNum(124,277) = -1 + StoichNum(125,432) = 1 + StoichNum(125,437) = 1 + StoichNum(125,563) = -1 + StoichNum(125,885) = -1 + StoichNum(126,483) = 0.474 + StoichNum(126,484) = 0.34 + StoichNum(126,485) = 0.244 + StoichNum(126,488) = 0.841 + StoichNum(126,490) = 0.841 + StoichNum(126,493) = 0.841 + StoichNum(126,495) = -1 + StoichNum(126,496) = -1 + StoichNum(126,877) = 0.841 + StoichNum(126,880) = 0.222 + StoichNum(127,373) = 0.15 + StoichNum(127,381) = 0.15 + StoichNum(127,403) = -1 + StoichNum(127,414) = 0.009 + StoichNum(127,871) = -1 + StoichNum(128,157) = 1 + StoichNum(128,159) = 1 + StoichNum(128,160) = -1 + StoichNum(128,669) = 1 + StoichNum(128,673) = 1 + StoichNum(128,674) = 1 + StoichNum(128,779) = -1 + StoichNum(129,372) = 0.15 + StoichNum(129,379) = 0.15 + StoichNum(129,402) = -1 + StoichNum(129,413) = 0.009 + StoichNum(129,870) = -1 + StoichNum(130,408) = 0.67 + StoichNum(130,410) = 0.68 + StoichNum(130,428) = -1 + StoichNum(130,429) = -1 + StoichNum(130,451) = 0.67 + StoichNum(130,453) = 0.67 + StoichNum(130,714) = -1 + StoichNum(131,408) = 0.33 + StoichNum(131,410) = 0.32 + StoichNum(131,430) = -1 + StoichNum(131,431) = -1 + StoichNum(131,451) = 0.33 + StoichNum(131,453) = 0.33 + StoichNum(131,715) = -1 + StoichNum(132,438) = 1 + StoichNum(132,439) = 0.2 + StoichNum(132,441) = 0.13 + StoichNum(132,542) = -1 + StoichNum(132,562) = 0.15 + StoichNum(132,881) = 0.15 + StoichNum(132,882) = 0.163 + StoichNum(133,92) = 0.25 + StoichNum(133,93) = 0.25 + StoichNum(133,101) = -1 + StoichNum(133,103) = 0.4 + StoichNum(133,104) = 0.4 + StoichNum(133,274) = -1 + StoichNum(134,357) = 1 + StoichNum(134,358) = 1 + StoichNum(134,359) = 1 + StoichNum(134,360) = 1 + StoichNum(134,361) = 1 + StoichNum(134,364) = -1 + StoichNum(134,722) = -1 + StoichNum(134,841) = -1 + StoichNum(135,261) = 1 + StoichNum(135,650) = 1 + StoichNum(135,653) = 1 + StoichNum(135,654) = 1 + StoichNum(135,655) = 1 + StoichNum(135,661) = 1 + StoichNum(135,662) = 1 + StoichNum(135,663) = 1 + StoichNum(135,665) = 1 + StoichNum(135,670) = 1 + StoichNum(135,671) = 1 + StoichNum(135,672) = 1 + StoichNum(135,790) = -1 + StoichNum(136,547) = 0.5 + StoichNum(136,548) = -1 + StoichNum(136,860) = -0.75 + StoichNum(137,28) = 1 + StoichNum(137,32) = -1 + StoichNum(137,269) = -1 + StoichNum(137,743) = -1 + StoichNum(138,4) = -2 + StoichNum(138,5) = -1 + StoichNum(138,6) = -1 + StoichNum(139,392) = 1 + StoichNum(139,450) = -1 + StoichNum(139,451) = -1 + StoichNum(139,726) = -1 + StoichNum(139,873) = -1 + StoichNum(140,396) = 1 + StoichNum(140,452) = -1 + StoichNum(140,453) = -1 + StoichNum(140,727) = -1 + StoichNum(140,874) = -1 + StoichNum(141,418) = 0.725 + StoichNum(141,422) = 0.725 + StoichNum(141,426) = 0.35 + StoichNum(141,564) = -1 + StoichNum(141,883) = -1 + StoichNum(142,597) = 0.8 + StoichNum(142,599) = 0.727 + StoichNum(142,601) = -1 + StoichNum(142,602) = -1 + StoichNum(142,603) = -1 + StoichNum(143,284) = 1 + StoichNum(143,287) = 1 + StoichNum(143,288) = -1 + StoichNum(143,291) = 1 + StoichNum(143,301) = -1 + StoichNum(143,814) = -1 + StoichNum(144,531) = -1 + StoichNum(144,532) = -1 + StoichNum(144,533) = -1 + StoichNum(144,868) = 0.224 + StoichNum(144,879) = 0.068 + StoichNum(145,534) = -1 + StoichNum(145,535) = -1 + StoichNum(145,536) = -1 + StoichNum(145,869) = 0.182 + StoichNum(145,879) = 0.128 + StoichNum(146,517) = 0.435 + StoichNum(146,518) = -1 + StoichNum(146,519) = -1 + StoichNum(147,1) = -2 + StoichNum(147,2) = -1 + StoichNum(147,3) = -1 + StoichNum(148,590) = 0.3 + StoichNum(148,591) = 0.56 + StoichNum(148,599) = 0.44 + StoichNum(148,600) = 0.44 + StoichNum(148,626) = -1 + StoichNum(148,627) = -1 + StoichNum(148,628) = -1 + StoichNum(149,206) = -0.9 + StoichNum(149,232) = -1 + StoichNum(149,264) = -1 + StoichNum(149,788) = -1 + StoichNum(150,514) = 0.461 + StoichNum(150,515) = -0.33 + StoichNum(150,516) = -0.33 + StoichNum(150,567) = 0.041 + StoichNum(151,481) = 1 + StoichNum(151,498) = -1 + StoichNum(151,500) = -1 + StoichNum(151,501) = -1 + StoichNum(151,503) = -1 + StoichNum(151,504) = -1 + StoichNum(151,730) = -1 + StoichNum(151,877) = -1 + StoichNum(151,878) = -1 + StoichNum(152,452) = 1 + StoichNum(152,464) = -1 + StoichNum(152,465) = -1 + StoichNum(152,466) = -1 + StoichNum(152,467) = -1 + StoichNum(153,553) = 1 + StoichNum(153,556) = 1 + StoichNum(153,559) = -1 + StoichNum(153,560) = -1 + StoichNum(154,324) = -1 + StoichNum(154,331) = -1 + StoichNum(154,333) = -1 + StoichNum(155,325) = -1 + StoichNum(155,332) = -1 + StoichNum(155,334) = -1 + StoichNum(156,406) = 1 + StoichNum(156,538) = -1 + StoichNum(156,563) = 0.444 + StoichNum(156,857) = -1 + StoichNum(156,868) = 0.112 + StoichNum(156,869) = 0.182 + StoichNum(156,879) = 0.162 + StoichNum(156,885) = 0.454 + StoichNum(157,374) = 0.937 + StoichNum(157,407) = -1 + StoichNum(157,408) = -1 + StoichNum(157,411) = -1 + StoichNum(157,864) = -1 + StoichNum(158,83) = 0.25 + StoichNum(158,84) = 0.25 + StoichNum(158,95) = 0.38 + StoichNum(158,96) = 0.375 + StoichNum(158,98) = 0.25 + StoichNum(158,99) = 0.25 + StoichNum(158,100) = 0.25 + StoichNum(158,102) = -1 + StoichNum(158,328) = 0.25 + StoichNum(158,340) = 0.25 + StoichNum(158,349) = 0.25 + StoichNum(159,589) = 0.55 + StoichNum(159,590) = 0.68 + StoichNum(159,591) = 0.28 + StoichNum(159,597) = 0.18 + StoichNum(159,601) = 1.05 + StoichNum(159,602) = 1 + StoichNum(159,603) = 0.3 + StoichNum(159,619) = 0.9 + StoichNum(159,620) = 0.9 + StoichNum(159,623) = -1 + StoichNum(159,624) = -1 + StoichNum(159,625) = -1 + StoichNum(159,894) = 1 + StoichNum(160,597) = 0.06 + StoichNum(160,598) = 0.742 + StoichNum(160,599) = 0.073 + StoichNum(160,600) = 0.3 + StoichNum(160,601) = 0.3 + StoichNum(160,603) = 0.3 + StoichNum(160,612) = 1 + StoichNum(160,613) = 1 + StoichNum(160,614) = 1 + StoichNum(160,617) = -1 + StoichNum(160,618) = -1 + StoichNum(160,621) = 1 + StoichNum(160,893) = 1 + StoichNum(161,56) = -1 + StoichNum(161,130) = -1 + StoichNum(161,168) = -1 + StoichNum(161,270) = -1 + StoichNum(162,376) = 0.937 + StoichNum(162,409) = -1 + StoichNum(162,410) = -1 + StoichNum(162,412) = -1 + StoichNum(162,865) = -1 + StoichNum(163,537) = -1 + StoichNum(163,567) = 0.022 + StoichNum(163,858) = -1 + StoichNum(163,868) = 0.552 + StoichNum(163,869) = 0.454 + StoichNum(163,879) = 0.481 + StoichNum(164,415) = 0.824 + StoichNum(164,419) = 0.452 + StoichNum(164,423) = 1 + StoichNum(164,564) = 0.667 + StoichNum(164,565) = -1 + StoichNum(164,884) = -1 + StoichNum(165,377) = 1 + StoichNum(165,414) = -1 + StoichNum(165,867) = -1 + StoichNum(166,455) = 1 + StoichNum(166,468) = -1 + StoichNum(166,470) = -1 + StoichNum(166,471) = -1 + StoichNum(166,472) = -1 + StoichNum(167,450) = 1 + StoichNum(167,460) = -1 + StoichNum(167,461) = -1 + StoichNum(167,462) = -1 + StoichNum(167,463) = -1 + StoichNum(168,457) = 1 + StoichNum(168,469) = -1 + StoichNum(168,473) = -1 + StoichNum(168,474) = -1 + StoichNum(168,475) = -1 + StoichNum(169,442) = 0.13 + StoichNum(169,444) = 0.2 + StoichNum(169,527) = 0.53 + StoichNum(169,539) = 0.6 + StoichNum(169,541) = -1 + StoichNum(169,543) = 0.255 + StoichNum(169,563) = 0.318 + StoichNum(169,854) = -1 + StoichNum(169,885) = 0.391 + StoichNum(170,335) = -1 + StoichNum(170,336) = -1 + StoichNum(170,337) = -1 + StoichNum(171,375) = 1 + StoichNum(171,413) = -1 + StoichNum(171,866) = -1 + StoichNum(172,372) = 0.3 + StoichNum(172,379) = 0.3 + StoichNum(172,413) = 0.018 + StoichNum(172,416) = 0.284 + StoichNum(172,418) = 0.135 + StoichNum(172,507) = 0.249 + StoichNum(172,508) = 0.471 + StoichNum(172,509) = 0.303 + StoichNum(172,511) = 0.59 + StoichNum(172,572) = -1 + StoichNum(172,573) = -1 + StoichNum(172,851) = -1 + StoichNum(172,887) = 0.5 + StoichNum(173,45) = 1 + StoichNum(173,46) = -1 + StoichNum(173,642) = -1 + StoichNum(173,643) = -1 + StoichNum(173,644) = -1 + StoichNum(173,645) = -1 + StoichNum(173,646) = -1 + StoichNum(173,752) = -1 + StoichNum(174,400) = 0.085 + StoichNum(174,401) = 0.165 + StoichNum(174,402) = 0.58 + StoichNum(174,403) = 0.77 + StoichNum(174,405) = -1 + StoichNum(174,427) = 0.75 + StoichNum(174,428) = 1 + StoichNum(174,430) = 1 + StoichNum(174,501) = 1 + StoichNum(174,513) = 1 + StoichNum(174,729) = -1 + StoichNum(175,458) = 0.6 + StoichNum(175,470) = 0.031 + StoichNum(175,471) = 0.065 + StoichNum(175,476) = 0.094 + StoichNum(175,477) = 0.355 + StoichNum(175,507) = 0.06 + StoichNum(175,508) = 0.073 + StoichNum(175,509) = 0.17 + StoichNum(175,511) = 0.291 + StoichNum(175,514) = 0.378 + StoichNum(175,530) = -1 + StoichNum(175,554) = 0.13 + StoichNum(175,558) = 0.3 + StoichNum(175,735) = -1 + StoichNum(175,863) = -1 + StoichNum(176,159) = -1 + StoichNum(176,171) = 1 StoichNum(176,649) = -1 - StoichNum(177,507) = 0.473 - StoichNum(177,509) = 0.07 - StoichNum(177,510) = 0.399 - StoichNum(177,513) = 0.355 - StoichNum(177,524) = -1 - StoichNum(177,526) = -1 - StoichNum(177,529) = -1 - StoichNum(177,751) = -1 - StoichNum(177,896) = -1 - StoichNum(178,616) = 0.46 - StoichNum(178,617) = 0.81 - StoichNum(178,618) = 0.85 - StoichNum(178,619) = -1 - StoichNum(178,620) = -1 - StoichNum(178,621) = -1 - StoichNum(178,622) = -1 - StoichNum(178,623) = -1 - StoichNum(178,624) = 0.14 - StoichNum(178,626) = 0.2 - StoichNum(178,627) = 0.2 - StoichNum(178,628) = 0.7 - StoichNum(178,630) = 0.2 - StoichNum(179,434) = 0.345 - StoichNum(179,440) = 0.595 - StoichNum(179,442) = -1 - StoichNum(179,443) = -1 - StoichNum(179,444) = -1 - StoichNum(179,445) = -1 - StoichNum(180,436) = 0.345 - StoichNum(180,441) = 0.255 - StoichNum(180,446) = -1 - StoichNum(180,447) = -1 - StoichNum(180,448) = -1 - StoichNum(180,449) = -1 - StoichNum(181,553) = 0.29 - StoichNum(181,554) = 0.47 - StoichNum(181,564) = 0.063 - StoichNum(181,566) = 0.4 - StoichNum(181,567) = -1 - StoichNum(181,569) = 0.16 - StoichNum(181,590) = 0.126 - StoichNum(181,875) = -1 - StoichNum(181,902) = 0.1 - StoichNum(181,905) = 0.155 - StoichNum(182,399) = 0.25 - StoichNum(182,406) = 0.25 - StoichNum(182,427) = -1 - StoichNum(182,440) = 0.015 - StoichNum(182,888) = -1 - StoichNum(183,434) = 0.655 - StoichNum(183,436) = 0.655 - StoichNum(183,450) = -1 - StoichNum(183,451) = -1 - StoichNum(183,452) = -1 - StoichNum(183,453) = -1 - StoichNum(184,400) = 0.25 - StoichNum(184,408) = 0.25 - StoichNum(184,428) = -1 - StoichNum(184,441) = 0.015 - StoichNum(184,889) = -1 - StoichNum(185,525) = 1 - StoichNum(185,532) = -1 - StoichNum(185,535) = -1 - StoichNum(185,538) = -1 - StoichNum(185,539) = -1 - StoichNum(186,25) = -1 - StoichNum(186,115) = 0.1 - StoichNum(186,197) = -1 - StoichNum(186,198) = -1 - StoichNum(186,199) = -1 - StoichNum(186,261) = -1 - StoichNum(186,774) = 1 - StoichNum(187,633) = 0.2 - StoichNum(187,634) = 1 - StoichNum(187,639) = -1 - StoichNum(187,640) = -1 - StoichNum(187,641) = -1 - StoichNum(187,642) = -1 - StoichNum(187,643) = 1 - StoichNum(187,644) = 1 - StoichNum(187,648) = -1 - StoichNum(187,649) = 1 - StoichNum(187,911) = 1 - StoichNum(187,912) = 1 - StoichNum(188,39) = 1 - StoichNum(188,40) = -1 - StoichNum(188,664) = 0.5 - StoichNum(188,684) = 1 - StoichNum(188,685) = 1 - StoichNum(188,686) = 1 - StoichNum(188,687) = 1 - StoichNum(188,688) = 1 - StoichNum(188,689) = 1 - StoichNum(188,720) = 1 - StoichNum(188,721) = 1 - StoichNum(188,722) = 1 - StoichNum(188,723) = 1 - StoichNum(188,767) = -1 - StoichNum(188,862) = 1 - StoichNum(188,864) = 1 - StoichNum(188,914) = 1 - StoichNum(189,412) = 1 - StoichNum(189,413) = 1 - StoichNum(189,414) = 1 - StoichNum(189,416) = 0.5 - StoichNum(189,418) = 0.5 - StoichNum(189,422) = 0.45 - StoichNum(189,426) = 0.45 - StoichNum(189,431) = -1 - StoichNum(189,440) = 0.06 - StoichNum(189,441) = 0.06 - StoichNum(189,886) = 1 - StoichNum(189,887) = 1 - StoichNum(189,892) = 0.45 - StoichNum(189,895) = 0.45 - StoichNum(190,439) = 0.16 - StoichNum(190,454) = 0.25 - StoichNum(190,469) = -1 - StoichNum(190,470) = -1 - StoichNum(190,471) = -1 - StoichNum(190,472) = -1 - StoichNum(191,115) = 0.12 - StoichNum(191,345) = -1 - StoichNum(191,346) = -1 - StoichNum(191,347) = -1 - StoichNum(191,348) = -1 - StoichNum(191,349) = -1 - StoichNum(191,350) = -1 - StoichNum(192,226) = -0.75 - StoichNum(192,243) = -1 - StoichNum(192,272) = 1 - StoichNum(192,279) = 1 - StoichNum(192,285) = 1 - StoichNum(192,673) = 0.5 - StoichNum(192,674) = 0.5 - StoichNum(192,678) = 1 - StoichNum(192,682) = 1 - StoichNum(192,683) = 1 - StoichNum(192,684) = 1 - StoichNum(192,685) = 1 - StoichNum(192,686) = 1 - StoichNum(192,690) = 1 - StoichNum(192,692) = 1 - StoichNum(192,693) = 1 - StoichNum(192,811) = -1 - StoichNum(193,34) = -1 - StoichNum(193,35) = -1 - StoichNum(193,89) = 0.85 - StoichNum(193,90) = 0.85 - StoichNum(193,400) = 0.3 - StoichNum(193,408) = 0.3 - StoichNum(193,441) = 0.018 - StoichNum(193,447) = 0.294 - StoichNum(193,449) = 0.135 - StoichNum(193,534) = 0.009 - StoichNum(193,535) = 0.054 - StoichNum(193,536) = 0.013 - StoichNum(193,538) = 0.07 - StoichNum(193,549) = 0.036 - StoichNum(193,555) = 0.23 - StoichNum(193,852) = -1 - StoichNum(193,907) = 0.05 - StoichNum(194,131) = 0.791 - StoichNum(194,337) = -1 - StoichNum(194,497) = 0.551 - StoichNum(194,498) = 0.935 - StoichNum(194,503) = 0.242 - StoichNum(194,504) = 0.546 - StoichNum(194,534) = 0.589 - StoichNum(194,535) = 0.471 - StoichNum(194,536) = 0.687 - StoichNum(194,538) = 0.59 - StoichNum(194,542) = 0.231 - StoichNum(194,543) = 0.231 - StoichNum(194,545) = 1 - StoichNum(194,546) = 0.82 - StoichNum(194,552) = 0.68 - StoichNum(194,557) = 1 - StoichNum(194,873) = -1 - StoichNum(194,883) = 1 - StoichNum(195,488) = 0.059 - StoichNum(195,489) = 0.272 - StoichNum(195,556) = -1 - StoichNum(195,563) = 1 - StoichNum(195,578) = 1 - StoichNum(195,581) = 0.37 - StoichNum(195,756) = -1 - StoichNum(195,882) = -1 - StoichNum(195,906) = 0.5 - StoichNum(196,353) = 0.06 - StoichNum(196,365) = 0.22 + StoichNum(176,650) = -1 + StoichNum(176,782) = -1 + StoichNum(176,783) = -1 + StoichNum(177,178) = 1 + StoichNum(177,180) = 0.2 + StoichNum(177,183) = 1 + StoichNum(177,184) = 1 + StoichNum(177,194) = -1 + StoichNum(177,195) = -1 + StoichNum(177,196) = -1 + StoichNum(177,202) = 0.22 + StoichNum(177,203) = 0.2 + StoichNum(177,206) = 0.09 + StoichNum(177,243) = 1 + StoichNum(177,744) = 1 + StoichNum(178,326) = 0.12 + StoichNum(178,344) = 1 + StoichNum(178,346) = 0.7 + StoichNum(178,347) = 0.7 + StoichNum(178,348) = 0.7 + StoichNum(178,349) = 0.35 + StoichNum(178,350) = 0.7 + StoichNum(178,352) = 0.7 + StoichNum(178,354) = 1.4 + StoichNum(178,355) = 1.05 + StoichNum(178,356) = 0.7 + StoichNum(178,357) = -1 + StoichNum(178,361) = -1 + StoichNum(178,720) = -1 + StoichNum(178,839) = -1 + StoichNum(179,578) = 1 + StoichNum(179,580) = -1 + StoichNum(179,581) = -1 + StoichNum(179,582) = -1 + StoichNum(179,583) = -1 + StoichNum(179,587) = 1 + StoichNum(180,604) = 1 + StoichNum(180,605) = 1 + StoichNum(180,606) = -1 + StoichNum(180,607) = -1 + StoichNum(180,608) = -1 + StoichNum(180,609) = 1 + StoichNum(180,610) = 1 + StoichNum(180,622) = -1 + StoichNum(181,480) = 0.473 + StoichNum(181,482) = 0.07 + StoichNum(181,483) = 0.399 + StoichNum(181,486) = 0.355 + StoichNum(181,497) = -1 + StoichNum(181,499) = -1 + StoichNum(181,502) = -1 + StoichNum(181,731) = -1 + StoichNum(181,876) = -1 + StoichNum(182,407) = 0.345 + StoichNum(182,413) = 0.595 + StoichNum(182,415) = -1 + StoichNum(182,416) = -1 + StoichNum(182,417) = -1 + StoichNum(182,418) = -1 + StoichNum(183,409) = 0.345 + StoichNum(183,414) = 0.255 + StoichNum(183,419) = -1 + StoichNum(183,420) = -1 + StoichNum(183,421) = -1 + StoichNum(183,422) = -1 + StoichNum(184,589) = 0.46 + StoichNum(184,590) = 0.81 + StoichNum(184,591) = 0.85 + StoichNum(184,592) = -1 + StoichNum(184,593) = -1 + StoichNum(184,594) = -1 + StoichNum(184,595) = -1 + StoichNum(184,596) = -1 + StoichNum(184,597) = 0.14 + StoichNum(184,599) = 0.2 + StoichNum(184,600) = 0.2 + StoichNum(184,601) = 0.7 + StoichNum(184,603) = 0.2 + StoichNum(185,526) = 0.29 + StoichNum(185,527) = 0.47 + StoichNum(185,537) = 0.063 + StoichNum(185,539) = 0.4 + StoichNum(185,540) = -1 + StoichNum(185,542) = 0.16 + StoichNum(185,563) = 0.126 + StoichNum(185,855) = -1 + StoichNum(185,882) = 0.133 + StoichNum(185,885) = 0.155 + StoichNum(186,372) = 0.25 + StoichNum(186,379) = 0.25 + StoichNum(186,400) = -1 + StoichNum(186,413) = 0.015 + StoichNum(186,868) = -1 + StoichNum(187,407) = 0.655 + StoichNum(187,409) = 0.655 + StoichNum(187,423) = -1 + StoichNum(187,424) = -1 + StoichNum(187,425) = -1 + StoichNum(187,426) = -1 + StoichNum(188,373) = 0.25 + StoichNum(188,381) = 0.25 + StoichNum(188,401) = -1 + StoichNum(188,414) = 0.015 + StoichNum(188,869) = -1 + StoichNum(189,498) = 1 + StoichNum(189,505) = -1 + StoichNum(189,508) = -1 + StoichNum(189,511) = -1 + StoichNum(189,512) = -1 + StoichNum(190,25) = -1 + StoichNum(190,111) = 0.1 + StoichNum(190,180) = -1 + StoichNum(190,240) = -1 + StoichNum(190,754) = 1 + StoichNum(191,606) = 0.2 + StoichNum(191,607) = 1 + StoichNum(191,612) = -1 + StoichNum(191,613) = -1 + StoichNum(191,614) = -1 + StoichNum(191,615) = -1 + StoichNum(191,616) = 1 + StoichNum(191,617) = 1 + StoichNum(191,621) = -1 + StoichNum(191,622) = 1 + StoichNum(191,891) = 1 + StoichNum(191,892) = 1 + StoichNum(192,385) = 1 + StoichNum(192,386) = 1 + StoichNum(192,387) = 1 + StoichNum(192,389) = 0.5 + StoichNum(192,391) = 0.5 + StoichNum(192,395) = 0.45 + StoichNum(192,399) = 0.45 + StoichNum(192,404) = -1 + StoichNum(192,413) = 0.06 + StoichNum(192,414) = 0.06 + StoichNum(192,866) = 1 + StoichNum(192,867) = 1 + StoichNum(192,872) = 0.45 + StoichNum(192,875) = 0.45 + StoichNum(193,37) = 1 + StoichNum(193,38) = -1 + StoichNum(193,638) = 0.5 + StoichNum(193,658) = 1 + StoichNum(193,659) = 1 + StoichNum(193,660) = 1 + StoichNum(193,661) = 1 + StoichNum(193,662) = 1 + StoichNum(193,663) = 1 + StoichNum(193,695) = 1 + StoichNum(193,696) = 1 + StoichNum(193,700) = 1 + StoichNum(193,701) = 1 + StoichNum(193,702) = 1 + StoichNum(193,703) = 1 + StoichNum(193,747) = -1 + StoichNum(193,842) = 1 + StoichNum(193,844) = 1 + StoichNum(193,894) = 1 + StoichNum(194,412) = 0.16 + StoichNum(194,427) = 0.25 + StoichNum(194,442) = -1 + StoichNum(194,443) = -1 + StoichNum(194,444) = -1 + StoichNum(194,445) = -1 + StoichNum(195,111) = 0.12 + StoichNum(195,318) = -1 + StoichNum(195,319) = -1 + StoichNum(195,320) = -1 + StoichNum(195,321) = -1 + StoichNum(195,322) = -1 + StoichNum(195,323) = -1 + StoichNum(196,33) = -1 + StoichNum(196,87) = 0.85 + StoichNum(196,88) = 0.85 StoichNum(196,373) = 0.3 - StoichNum(196,374) = 0.3 - StoichNum(196,375) = 0.3 - StoichNum(196,376) = 0.15 - StoichNum(196,377) = 0.3 - StoichNum(196,379) = 0.3 - StoichNum(196,381) = 0.6 - StoichNum(196,382) = 0.45 - StoichNum(196,383) = 0.3 - StoichNum(196,385) = -1 - StoichNum(196,386) = -1 - StoichNum(196,387) = -1 - StoichNum(196,741) = -1 - StoichNum(196,860) = -1 - StoichNum(197,75) = -1 - StoichNum(197,92) = -1 - StoichNum(197,102) = -1 - StoichNum(197,118) = 1 - StoichNum(197,131) = 0.209 - StoichNum(197,149) = -1 - StoichNum(197,154) = -1 - StoichNum(198,69) = 1 - StoichNum(198,72) = 0.07 - StoichNum(198,77) = -1 - StoichNum(198,88) = 1 - StoichNum(198,739) = -1 - StoichNum(198,797) = -1 - StoichNum(199,307) = 1 - StoichNum(199,308) = -1 - StoichNum(199,309) = -2 - StoichNum(199,720) = -1 + StoichNum(196,381) = 0.3 + StoichNum(196,414) = 0.018 + StoichNum(196,420) = 0.294 + StoichNum(196,422) = 0.135 + StoichNum(196,507) = 0.009 + StoichNum(196,508) = 0.054 + StoichNum(196,509) = 0.013 + StoichNum(196,511) = 0.07 + StoichNum(196,522) = 0.036 + StoichNum(196,528) = 0.23 + StoichNum(196,832) = -1 + StoichNum(196,887) = 0.05 + StoichNum(197,204) = -0.75 + StoichNum(197,222) = -1 + StoichNum(197,251) = 1 + StoichNum(197,258) = 0.95 + StoichNum(197,263) = 1 + StoichNum(197,647) = 0.5 + StoichNum(197,648) = 0.5 + StoichNum(197,652) = 1 + StoichNum(197,656) = 1 + StoichNum(197,657) = 1 + StoichNum(197,658) = 1 + StoichNum(197,659) = 1 + StoichNum(197,660) = 1 + StoichNum(197,664) = 1 + StoichNum(197,666) = 1 + StoichNum(197,667) = 1 + StoichNum(197,791) = -1 + StoichNum(198,121) = 0.791 + StoichNum(198,310) = -1 + StoichNum(198,470) = 0.551 + StoichNum(198,471) = 0.935 + StoichNum(198,476) = 0.242 + StoichNum(198,477) = 0.546 + StoichNum(198,507) = 0.589 + StoichNum(198,508) = 0.471 + StoichNum(198,509) = 0.687 + StoichNum(198,511) = 0.59 + StoichNum(198,515) = 0.231 + StoichNum(198,516) = 0.231 + StoichNum(198,518) = 1 + StoichNum(198,519) = 0.82 + StoichNum(198,525) = 0.68 + StoichNum(198,530) = 1 + StoichNum(198,853) = -1 + StoichNum(198,863) = 1 + StoichNum(199,326) = 0.06 + StoichNum(199,338) = 0.22 + StoichNum(199,346) = 0.3 + StoichNum(199,347) = 0.3 + StoichNum(199,348) = 0.3 + StoichNum(199,349) = 0.15 + StoichNum(199,350) = 0.3 + StoichNum(199,352) = 0.3 + StoichNum(199,354) = 0.6 + StoichNum(199,355) = 0.45 + StoichNum(199,356) = 0.3 + StoichNum(199,358) = -1 + StoichNum(199,359) = -1 + StoichNum(199,360) = -1 StoichNum(199,721) = -1 - StoichNum(199,722) = -1 - StoichNum(199,723) = -1 - StoichNum(199,839) = -1 - StoichNum(200,547) = 1 - StoichNum(200,558) = 1 - StoichNum(200,559) = 1 - StoichNum(200,570) = -1 - StoichNum(200,571) = -1 - StoichNum(200,572) = -1 - StoichNum(201,549) = 0.964 - StoichNum(201,561) = 1 - StoichNum(201,562) = 1 - StoichNum(201,573) = -1 - StoichNum(201,576) = -1 - StoichNum(201,577) = -1 - StoichNum(201,578) = -1 - StoichNum(202,442) = 0.176 - StoichNum(202,446) = 0.548 - StoichNum(202,461) = 0.35 - StoichNum(202,468) = 0.35 - StoichNum(202,469) = 0.35 - StoichNum(202,589) = -1 - StoichNum(202,591) = 0.333 - StoichNum(202,901) = -1 - StoichNum(202,902) = -1 - StoichNum(202,903) = 0.75 - StoichNum(203,550) = 1 - StoichNum(203,552) = 0.32 - StoichNum(203,574) = -1 - StoichNum(203,575) = 0.165 - StoichNum(203,579) = -1 - StoichNum(203,580) = -1 - StoichNum(203,586) = 1 - StoichNum(204,66) = -1 - StoichNum(204,86) = -1 - StoichNum(204,112) = -1 - StoichNum(204,114) = 1 - StoichNum(204,126) = -1 - StoichNum(204,128) = -1 - StoichNum(204,137) = 0.209 - StoichNum(204,303) = 1 - StoichNum(204,304) = 1 - StoichNum(205,336) = -1 - StoichNum(205,500) = 0.441 - StoichNum(205,501) = 0.858 - StoichNum(205,503) = 0.033 - StoichNum(205,504) = 0.071 - StoichNum(205,534) = 0.051 - StoichNum(205,535) = 0.054 - StoichNum(205,536) = 0.064 - StoichNum(205,538) = 0.07 - StoichNum(205,542) = 0.099 - StoichNum(205,543) = 0.099 - StoichNum(205,545) = 0.89 - StoichNum(205,546) = 0.73 - StoichNum(205,595) = -1 - StoichNum(205,858) = -1 - StoichNum(205,881) = 0.3 - StoichNum(205,906) = 0.15 - StoichNum(206,625) = 0.258 - StoichNum(206,627) = 0.5 - StoichNum(206,630) = 0.5 - StoichNum(206,645) = 1 - StoichNum(206,646) = -1 - StoichNum(206,647) = -1 - StoichNum(206,757) = -1 - StoichNum(206,914) = -1 - StoichNum(207,49) = -1 - StoichNum(207,116) = 0.134 - StoichNum(207,117) = 1 - StoichNum(207,124) = 0.5 - StoichNum(207,289) = -1 - StoichNum(207,341) = 0.21 - StoichNum(207,342) = 0.54 - StoichNum(207,353) = 0.07 - StoichNum(207,363) = 0.01 - StoichNum(207,553) = 0.449 - StoichNum(207,564) = 0.187 - StoichNum(207,588) = 0.3 - StoichNum(207,597) = 0.5 - StoichNum(207,606) = 0.364 - StoichNum(207,650) = 0.25 - StoichNum(207,651) = 0.5 - StoichNum(207,653) = 0.1 - StoichNum(207,654) = 0.2 - StoichNum(208,7) = -1 - StoichNum(208,19) = 1 - StoichNum(208,21) = -1 - StoichNum(208,23) = 1 - StoichNum(208,213) = -1 - StoichNum(208,265) = -1 - StoichNum(208,341) = 0.06 - StoichNum(208,342) = 0.06 - StoichNum(208,349) = 1 - StoichNum(208,358) = 0.02 - StoichNum(208,359) = 0.02 - StoichNum(208,363) = 0.02 - StoichNum(208,396) = 0.013 - StoichNum(208,548) = 0.045 - StoichNum(208,762) = -1 - StoichNum(209,463) = 1 - StoichNum(209,467) = 1 - StoichNum(209,470) = 1 - StoichNum(209,487) = 1 - StoichNum(209,491) = 1 - StoichNum(209,495) = 1 - StoichNum(209,496) = 1 - StoichNum(209,532) = 1 - StoichNum(209,533) = 0.5 - StoichNum(209,593) = -1 - StoichNum(209,594) = 0.92 - StoichNum(209,753) = -1 - StoichNum(209,908) = -1 - StoichNum(209,909) = -1 - StoichNum(210,421) = 1 - StoichNum(210,483) = -1 - StoichNum(210,484) = -1 - StoichNum(210,486) = -1 - StoichNum(210,511) = 0.127 - StoichNum(210,512) = 0.057 - StoichNum(210,748) = -1 - StoichNum(210,895) = -1 - StoichNum(211,360) = 0.1 - StoichNum(211,361) = 0.1 - StoichNum(211,364) = 0.5 - StoichNum(211,371) = -1 - StoichNum(211,373) = -1 - StoichNum(211,375) = -1 - StoichNum(211,377) = -1 - StoichNum(211,379) = -1 - StoichNum(211,381) = -2 - StoichNum(211,382) = -1 - StoichNum(212,360) = 0.9 - StoichNum(212,361) = 0.9 - StoichNum(212,364) = 0.5 - StoichNum(212,372) = -1 - StoichNum(212,374) = -1 - StoichNum(212,376) = -1 - StoichNum(212,378) = -1 - StoichNum(212,380) = -1 - StoichNum(212,382) = -1 - StoichNum(212,383) = -2 - StoichNum(213,58) = 1 - StoichNum(213,59) = -1 - StoichNum(213,60) = -1 - StoichNum(213,94) = -1 - StoichNum(213,105) = -2 - StoichNum(213,107) = -2 - StoichNum(213,109) = -1 - StoichNum(213,140) = 1 - StoichNum(213,156) = -1 - StoichNum(213,158) = -1 - StoichNum(213,184) = 1 - StoichNum(213,292) = 1 - StoichNum(213,293) = -1 - StoichNum(214,29) = 1 - StoichNum(214,31) = 0.13 - StoichNum(214,50) = -1 - StoichNum(214,85) = 0.25 - StoichNum(214,86) = 0.25 - StoichNum(214,94) = 0.25 - StoichNum(214,95) = 0.25 - StoichNum(214,97) = 0.25 - StoichNum(214,98) = 0.25 - StoichNum(214,99) = 0.5 - StoichNum(214,100) = 0.25 - StoichNum(214,101) = 0.25 - StoichNum(214,102) = 0.25 - StoichNum(214,295) = -1 - StoichNum(214,355) = 0.25 - StoichNum(214,367) = 0.25 - StoichNum(214,376) = 0.25 - StoichNum(214,512) = 0.355 - StoichNum(214,513) = 0.034 - StoichNum(214,610) = 0.2 - StoichNum(214,780) = 0.1 - StoichNum(215,78) = -1 - StoichNum(215,124) = 0.5 - StoichNum(215,127) = 1 - StoichNum(215,128) = 1 - StoichNum(215,143) = 1 - StoichNum(215,150) = 1 - StoichNum(215,151) = 1 - StoichNum(215,152) = 1 - StoichNum(215,153) = 1 - StoichNum(215,154) = 1 - StoichNum(215,155) = 1 - StoichNum(215,158) = 1 - StoichNum(215,159) = 1 - StoichNum(215,297) = -1 - StoichNum(215,350) = 1 - StoichNum(215,598) = 0.13 - StoichNum(215,653) = 0.15 - StoichNum(215,654) = 0.3 - StoichNum(216,425) = 1 - StoichNum(216,481) = -1 - StoichNum(216,482) = -1 - StoichNum(216,485) = -1 - StoichNum(216,510) = 0.032 - StoichNum(216,511) = 0.671 - StoichNum(216,512) = 0.298 - StoichNum(216,745) = -1 - StoichNum(216,892) = -1 - StoichNum(217,524) = 0.67 - StoichNum(217,533) = -1 - StoichNum(217,534) = -1 - StoichNum(217,536) = -1 - StoichNum(217,537) = -1 - StoichNum(218,116) = 0.134 - StoichNum(218,119) = -1 - StoichNum(218,121) = -1 - StoichNum(218,466) = 0.8 - StoichNum(218,468) = 0.52 - StoichNum(218,600) = 1 - StoichNum(218,606) = 0.636 - StoichNum(218,616) = 0.18 - StoichNum(218,617) = 0.12 - StoichNum(218,618) = 0.1 - StoichNum(218,624) = 0.06 - StoichNum(218,650) = 0.6 - StoichNum(218,651) = 0.6 - StoichNum(218,652) = 0.2 - StoichNum(218,732) = -1 - StoichNum(218,781) = -1 - StoichNum(218,782) = -1 - StoichNum(218,783) = -1 - StoichNum(218,875) = 0.5 - StoichNum(218,877) = 0.429 - StoichNum(218,878) = 0.125 - StoichNum(218,902) = 0.438 - StoichNum(218,904) = 0.571 - StoichNum(219,68) = 0.32 - StoichNum(219,73) = 1 - StoichNum(219,84) = -1 - StoichNum(219,97) = 0.16 - StoichNum(219,101) = 0.75 - StoichNum(219,134) = 0.791 - StoichNum(219,144) = 0.32 - StoichNum(219,147) = 1 - StoichNum(219,155) = 1 - StoichNum(219,183) = -1 - StoichNum(219,300) = -1 - StoichNum(219,353) = 0.11 - StoichNum(219,394) = 1 - StoichNum(219,777) = -1 - StoichNum(219,778) = -1 - StoichNum(219,793) = 1 - StoichNum(219,797) = 0.32 - StoichNum(219,868) = 1 - StoichNum(220,301) = -1 - StoichNum(220,396) = -1 - StoichNum(220,397) = -1 - StoichNum(220,398) = -1 - StoichNum(220,399) = -1 - StoichNum(220,400) = -1 - StoichNum(220,506) = -1 - StoichNum(221,362) = 1 - StoichNum(221,365) = -1 - StoichNum(221,366) = -1 - StoichNum(221,367) = -1 - StoichNum(221,368) = -1 - StoichNum(221,369) = -1 - StoichNum(222,68) = 0.19 - StoichNum(222,93) = -1 - StoichNum(222,96) = -1 - StoichNum(222,97) = 0.35 - StoichNum(222,100) = 0.25 - StoichNum(222,144) = 0.19 - StoichNum(222,150) = 1 - StoichNum(222,152) = 1 - StoichNum(222,353) = 0.44 - StoichNum(222,355) = 0.75 - StoichNum(222,356) = 1 - StoichNum(222,357) = 1 - StoichNum(222,358) = 0.53 - StoichNum(222,359) = 0.53 - StoichNum(222,365) = 0.289 - StoichNum(222,370) = 0.41 - StoichNum(222,372) = 0.464 - StoichNum(222,376) = 0.348 - StoichNum(222,378) = 0.464 - StoichNum(222,380) = 0.464 - StoichNum(222,382) = 0.149 - StoichNum(222,383) = 0.285 - StoichNum(222,779) = -1 - StoichNum(222,797) = 0.19 - StoichNum(222,859) = 1 - StoichNum(223,311) = -1 - StoichNum(223,312) = 1 - StoichNum(223,314) = 1 - StoichNum(223,315) = -1 - StoichNum(223,316) = -1 - StoichNum(223,317) = -1 - StoichNum(223,320) = 1 - StoichNum(223,321) = -1 - StoichNum(223,322) = -1 - StoichNum(223,323) = -1 - StoichNum(223,324) = 1 - StoichNum(223,328) = 1 - StoichNum(223,329) = -1 - StoichNum(223,330) = -1 - StoichNum(223,331) = -2 - StoichNum(223,332) = -2 - StoichNum(223,333) = 2 - StoichNum(223,836) = -1 - StoichNum(223,847) = 1 - StoichNum(224,431) = 0.294 - StoichNum(224,456) = 0.67 - StoichNum(224,458) = 0.81 - StoichNum(224,459) = -1 - StoichNum(224,460) = -1 - StoichNum(224,461) = -1 - StoichNum(224,462) = -1 - StoichNum(224,463) = -1 - StoichNum(224,590) = 0.08 - StoichNum(225,431) = 0.068 - StoichNum(225,456) = 0.33 - StoichNum(225,458) = 0.19 - StoichNum(225,464) = -1 - StoichNum(225,465) = -1 - StoichNum(225,466) = -1 - StoichNum(225,467) = -1 - StoichNum(225,468) = -1 - StoichNum(225,590) = 0.032 - StoichNum(226,412) = 1 - StoichNum(226,414) = 0.5 - StoichNum(226,416) = 0.5 - StoichNum(226,422) = 0.55 - StoichNum(226,427) = 0.33 - StoichNum(226,429) = 0.19 - StoichNum(226,431) = 0.125 - StoichNum(226,438) = 0.125 - StoichNum(226,447) = 0.706 - StoichNum(226,449) = 0.14 - StoichNum(226,534) = 0.054 - StoichNum(226,536) = 0.059 - StoichNum(226,554) = -1 - StoichNum(226,570) = 0.335 - StoichNum(226,592) = 0.429 - StoichNum(226,593) = 0.75 - StoichNum(226,876) = -1 - StoichNum(226,892) = 0.55 - StoichNum(226,909) = 0.5 - StoichNum(227,413) = 1 - StoichNum(227,414) = 0.5 - StoichNum(227,418) = 0.5 - StoichNum(227,426) = 0.55 - StoichNum(227,428) = 0.17 - StoichNum(227,430) = 0.09 - StoichNum(227,431) = 0.158 - StoichNum(227,439) = 0.165 - StoichNum(227,443) = 0.716 - StoichNum(227,445) = 0.14 - StoichNum(227,534) = 0.004 - StoichNum(227,536) = 0.006 - StoichNum(227,555) = -1 - StoichNum(227,573) = 0.41 - StoichNum(227,589) = 0.5 - StoichNum(227,592) = 0.571 - StoichNum(227,593) = 0.25 - StoichNum(227,879) = -1 - StoichNum(227,895) = 0.55 - StoichNum(227,901) = 0.5 - StoichNum(227,907) = 0.15 - StoichNum(227,909) = 0.5 - StoichNum(228,35) = 1 - StoichNum(228,99) = 0.5 - StoichNum(228,120) = -1 - StoichNum(228,122) = -1 - StoichNum(228,123) = 1 - StoichNum(228,151) = 1 - StoichNum(228,337) = 1 - StoichNum(228,399) = 0.3 - StoichNum(228,400) = 0.3 - StoichNum(228,406) = 0.3 - StoichNum(228,408) = 0.3 - StoichNum(228,427) = 0.085 - StoichNum(228,428) = 0.165 - StoichNum(228,431) = 0.355 - StoichNum(228,432) = 0.5 - StoichNum(228,440) = 0.018 - StoichNum(228,441) = 0.018 - StoichNum(228,461) = 0.52 - StoichNum(228,462) = 0.8 - StoichNum(228,548) = 0.545 - StoichNum(228,551) = 0.88 - StoichNum(228,553) = 0.449 - StoichNum(228,564) = 0.187 - StoichNum(228,565) = 1 - StoichNum(228,567) = 1 - StoichNum(228,570) = 0.05 - StoichNum(228,571) = 0.242 - StoichNum(228,573) = 0.083 - StoichNum(228,577) = 0.14 - StoichNum(228,588) = 0.7 - StoichNum(228,617) = 0.12 - StoichNum(228,618) = 0.2 - StoichNum(228,653) = 0.6 - StoichNum(228,654) = 0.6 - StoichNum(228,655) = 0.2 - StoichNum(228,733) = -1 - StoichNum(228,784) = -1 - StoichNum(228,875) = 0.5 - StoichNum(228,876) = 0.47 - StoichNum(228,877) = 0.571 - StoichNum(228,878) = 0.125 - StoichNum(228,879) = 0.23 - StoichNum(228,902) = 0.088 - StoichNum(228,904) = 0.429 - StoichNum(228,908) = 1 - StoichNum(229,503) = -1 - StoichNum(229,504) = -1 - StoichNum(229,505) = -1 - StoichNum(229,523) = 1 - StoichNum(229,524) = 0.33 - StoichNum(229,594) = 0.037 - StoichNum(230,115) = 0.12 - StoichNum(230,338) = -1 - StoichNum(230,339) = -1 - StoichNum(230,340) = -1 - StoichNum(230,341) = -1 - StoichNum(230,342) = -1 - StoichNum(230,343) = -1 - StoichNum(230,344) = -1 - StoichNum(230,396) = 0.58 - StoichNum(230,548) = 0.5 - StoichNum(230,551) = 0.88 - StoichNum(230,604) = 1 - StoichNum(231,251) = -1 - StoichNum(231,669) = 1 - StoichNum(231,671) = 1 - StoichNum(231,672) = 1 - StoichNum(231,684) = -1 - StoichNum(231,685) = -1 - StoichNum(231,686) = -1 - StoichNum(231,687) = -1 - StoichNum(231,688) = -1 - StoichNum(231,689) = -1 - StoichNum(231,815) = -1 - StoichNum(232,116) = -1 - StoichNum(232,117) = -1 - StoichNum(232,447) = 0.294 - StoichNum(232,449) = 0.135 - StoichNum(232,451) = 1 - StoichNum(232,453) = 0.65 - StoichNum(232,461) = 0.52 - StoichNum(232,462) = 0.8 - StoichNum(232,488) = 0.459 - StoichNum(232,489) = 0.728 - StoichNum(232,497) = 0.551 - StoichNum(232,498) = 0.935 - StoichNum(232,503) = 0.242 - StoichNum(232,504) = 0.546 - StoichNum(232,534) = 0.34 - StoichNum(232,536) = 0.384 - StoichNum(232,545) = 0.11 - StoichNum(232,546) = 0.09 - StoichNum(232,570) = 0.36 - StoichNum(232,571) = 0.758 - StoichNum(232,610) = 0.2 - StoichNum(232,612) = 1 - StoichNum(232,613) = 1 - StoichNum(232,615) = 1 - StoichNum(232,629) = 1 - StoichNum(232,651) = 0.9 - StoichNum(232,654) = 0.95 - StoichNum(232,780) = -1 - StoichNum(232,876) = 0.53 - StoichNum(232,881) = 0.69 - StoichNum(232,900) = 0.5 - StoichNum(232,902) = 0.088 - StoichNum(232,903) = 0.25 - StoichNum(232,904) = 0.429 - StoichNum(232,906) = 0.3 - StoichNum(232,907) = 0.35 - StoichNum(232,908) = 1 - StoichNum(233,63) = 1 - StoichNum(233,64) = -1 - StoichNum(233,65) = -1 - StoichNum(233,68) = 0.05 - StoichNum(233,82) = 0.07 - StoichNum(233,85) = -1 - StoichNum(233,97) = 0.03 - StoichNum(233,111) = -1 - StoichNum(233,113) = 0.03 - StoichNum(233,125) = -1 - StoichNum(233,127) = -1 - StoichNum(233,129) = 0.07 - StoichNum(233,133) = 0.36 - StoichNum(233,144) = 0.05 - StoichNum(233,160) = 0.07 - StoichNum(233,185) = 1 - StoichNum(233,299) = 1 - StoichNum(233,776) = 0.07 - StoichNum(233,779) = 0.06 - StoichNum(233,797) = 0.05 - StoichNum(234,351) = 1 - StoichNum(234,352) = 1 - StoichNum(234,353) = -1 - StoichNum(234,354) = -1 - StoichNum(234,355) = -1 - StoichNum(234,356) = -1 - StoichNum(234,357) = -1 - StoichNum(235,61) = -1 - StoichNum(235,68) = 0.32 - StoichNum(235,82) = 0.5 - StoichNum(235,95) = -1 - StoichNum(235,97) = 0.16 - StoichNum(235,106) = -2 - StoichNum(235,108) = -2 - StoichNum(235,110) = -1 - StoichNum(235,113) = 0.22 - StoichNum(235,129) = 0.5 - StoichNum(235,132) = 0.36 - StoichNum(235,144) = 0.32 - StoichNum(235,157) = -1 - StoichNum(235,159) = -1 - StoichNum(235,160) = 0.5 - StoichNum(235,294) = -1 - StoichNum(235,363) = 0.16 - StoichNum(235,776) = 0.5 - StoichNum(235,779) = 0.425 - StoichNum(235,797) = 0.32 - StoichNum(236,485) = 0.4 - StoichNum(236,486) = 0.4 - StoichNum(236,509) = 0.07 - StoichNum(236,510) = 0.532 - StoichNum(236,511) = 0.861 - StoichNum(236,512) = 0.401 - StoichNum(236,513) = 0.034 - StoichNum(236,515) = 0.159 - StoichNum(236,517) = 0.159 - StoichNum(236,520) = 0.159 - StoichNum(236,522) = 1 - StoichNum(236,531) = 1 - StoichNum(236,540) = -1 - StoichNum(236,541) = -1 - StoichNum(236,897) = 0.159 - StoichNum(236,899) = -1 - StoichNum(236,900) = 0.228 - StoichNum(237,486) = 0.6 - StoichNum(237,492) = 0.599 - StoichNum(237,493) = 1 - StoichNum(237,500) = 0.065 - StoichNum(237,501) = 0.142 - StoichNum(237,503) = 0.01 - StoichNum(237,504) = 0.028 - StoichNum(237,534) = 0.008 - StoichNum(237,535) = 0.015 - StoichNum(237,536) = 0.014 - StoichNum(237,538) = 0.049 - StoichNum(237,541) = 0.161 - StoichNum(237,553) = -1 - StoichNum(237,560) = 1 - StoichNum(237,572) = 0.438 - StoichNum(237,738) = -1 - StoichNum(237,881) = -1 - StoichNum(237,906) = 0.05 - StoichNum(238,444) = 1 - StoichNum(238,448) = 1 - StoichNum(238,452) = 1 - StoichNum(238,488) = 0.482 - StoichNum(238,492) = 0.401 - StoichNum(238,497) = 0.418 - StoichNum(238,500) = 0.494 - StoichNum(238,503) = 0.621 - StoichNum(238,526) = 1 - StoichNum(238,527) = 1 - StoichNum(238,533) = 0.5 - StoichNum(238,534) = 0.234 - StoichNum(238,535) = 0.387 - StoichNum(238,544) = 0.565 - StoichNum(238,594) = -1 - StoichNum(238,754) = -1 - StoichNum(238,906) = -1 - StoichNum(238,907) = -1 - StoichNum(239,490) = 1 - StoichNum(239,494) = 1 - StoichNum(239,499) = 1 - StoichNum(239,502) = 1 - StoichNum(239,505) = 1 - StoichNum(239,519) = 1 - StoichNum(239,521) = 1 - StoichNum(239,537) = 1 - StoichNum(239,539) = 1 - StoichNum(239,544) = -1 - StoichNum(239,546) = 0.18 - StoichNum(239,752) = -1 - StoichNum(239,900) = -1 - StoichNum(240,506) = 0.465 - StoichNum(240,507) = -1 - StoichNum(240,509) = -2 - StoichNum(240,510) = -1 + StoichNum(199,840) = -1 + StoichNum(200,461) = 0.059 + StoichNum(200,462) = 0.272 + StoichNum(200,529) = -1 + StoichNum(200,536) = 1 + StoichNum(200,551) = 1 + StoichNum(200,554) = 0.37 + StoichNum(200,736) = -1 + StoichNum(200,862) = -1 + StoichNum(200,886) = 0.5 + StoichNum(201,73) = -1 + StoichNum(201,90) = -1 + StoichNum(201,100) = -1 + StoichNum(201,114) = 1 + StoichNum(201,121) = 0.209 + StoichNum(201,138) = -1 + StoichNum(202,67) = 1 + StoichNum(202,70) = 0.072 + StoichNum(202,75) = -1 + StoichNum(202,86) = 1 + StoichNum(202,719) = -1 + StoichNum(202,777) = -1 + StoichNum(203,285) = 1 + StoichNum(203,286) = -1 + StoichNum(203,287) = -2 + StoichNum(203,695) = -1 + StoichNum(203,696) = -1 + StoichNum(203,700) = -1 + StoichNum(203,701) = -1 + StoichNum(203,702) = -1 + StoichNum(203,703) = -1 + StoichNum(203,819) = -1 + StoichNum(204,520) = 1 + StoichNum(204,531) = 1 + StoichNum(204,532) = 1 + StoichNum(204,543) = -1 + StoichNum(204,544) = -1 + StoichNum(204,545) = -1 + StoichNum(205,522) = 0.964 + StoichNum(205,534) = 1 + StoichNum(205,535) = 1 + StoichNum(205,546) = -1 + StoichNum(205,549) = -1 + StoichNum(205,550) = -1 + StoichNum(205,551) = -1 + StoichNum(206,415) = 0.176 + StoichNum(206,419) = 0.548 + StoichNum(206,434) = 0.35 + StoichNum(206,441) = 0.35 + StoichNum(206,442) = 0.35 + StoichNum(206,562) = -1 + StoichNum(206,564) = 0.333 + StoichNum(206,881) = -1 + StoichNum(206,882) = -1 + StoichNum(206,883) = 0.75 + StoichNum(207,523) = 1 + StoichNum(207,525) = 0.32 + StoichNum(207,547) = -1 + StoichNum(207,548) = 0.165 + StoichNum(207,552) = -1 + StoichNum(207,553) = -1 + StoichNum(207,559) = 1 + StoichNum(208,309) = -1 + StoichNum(208,473) = 0.441 + StoichNum(208,474) = 0.858 + StoichNum(208,476) = 0.033 + StoichNum(208,477) = 0.071 + StoichNum(208,507) = 0.051 + StoichNum(208,508) = 0.054 + StoichNum(208,509) = 0.064 + StoichNum(208,511) = 0.07 + StoichNum(208,515) = 0.099 + StoichNum(208,516) = 0.099 + StoichNum(208,518) = 0.89 + StoichNum(208,519) = 0.73 + StoichNum(208,568) = -1 + StoichNum(208,838) = -1 + StoichNum(208,861) = 0.3 + StoichNum(208,886) = 0.15 + StoichNum(209,64) = -1 + StoichNum(209,84) = -1 + StoichNum(209,108) = -1 + StoichNum(209,110) = 1 + StoichNum(209,127) = 0.209 + StoichNum(209,141) = -1 + StoichNum(209,281) = 1 + StoichNum(209,282) = 1 + StoichNum(210,598) = 0.258 + StoichNum(210,600) = 0.5 + StoichNum(210,603) = 0.5 + StoichNum(210,618) = 1 + StoichNum(210,619) = -1 + StoichNum(210,620) = -1 + StoichNum(210,737) = -1 + StoichNum(210,894) = -1 + StoichNum(211,47) = -1 + StoichNum(211,112) = 0.134 + StoichNum(211,113) = 1 + StoichNum(211,120) = 0.5 + StoichNum(211,267) = -1 + StoichNum(211,314) = 0.21 + StoichNum(211,315) = 0.54 + StoichNum(211,326) = 0.07 + StoichNum(211,336) = 0.01 + StoichNum(211,526) = 0.449 + StoichNum(211,537) = 0.187 + StoichNum(211,561) = 0.3 + StoichNum(211,570) = 0.5 + StoichNum(211,579) = 0.364 + StoichNum(211,623) = 0.26 + StoichNum(211,624) = 0.5 + StoichNum(211,626) = 0.1 + StoichNum(211,627) = 0.2 + StoichNum(212,7) = -1 + StoichNum(212,19) = 1 + StoichNum(212,21) = -1 + StoichNum(212,23) = 1 + StoichNum(212,193) = -1 + StoichNum(212,244) = -1 + StoichNum(212,314) = 0.06 + StoichNum(212,315) = 0.06 + StoichNum(212,322) = 1 + StoichNum(212,331) = 0.02 + StoichNum(212,332) = 0.02 + StoichNum(212,336) = 0.02 + StoichNum(212,369) = 0.013 + StoichNum(212,521) = 0.045 + StoichNum(212,742) = -1 + StoichNum(213,436) = 1 + StoichNum(213,440) = 1 + StoichNum(213,443) = 1 + StoichNum(213,460) = 1 + StoichNum(213,464) = 1 + StoichNum(213,468) = 1 + StoichNum(213,469) = 1 + StoichNum(213,505) = 1 + StoichNum(213,506) = 0.5 + StoichNum(213,566) = -1 + StoichNum(213,567) = 0.9 + StoichNum(213,733) = -1 + StoichNum(213,888) = -1 + StoichNum(213,889) = -1 + StoichNum(214,394) = 1 + StoichNum(214,456) = -1 + StoichNum(214,457) = -1 + StoichNum(214,459) = -1 + StoichNum(214,484) = 0.127 + StoichNum(214,485) = 0.057 + StoichNum(214,728) = -1 + StoichNum(214,875) = -1 + StoichNum(215,333) = 0.1 + StoichNum(215,334) = 0.1 + StoichNum(215,337) = 0.5 + StoichNum(215,344) = -1 + StoichNum(215,346) = -1 + StoichNum(215,348) = -1 + StoichNum(215,350) = -1 + StoichNum(215,352) = -1 + StoichNum(215,354) = -2 + StoichNum(215,355) = -1 + StoichNum(216,333) = 0.9 + StoichNum(216,334) = 0.9 + StoichNum(216,337) = 0.5 + StoichNum(216,345) = -1 + StoichNum(216,347) = -1 + StoichNum(216,349) = -1 + StoichNum(216,351) = -1 + StoichNum(216,353) = -1 + StoichNum(216,355) = -1 + StoichNum(216,356) = -2 + StoichNum(217,56) = 1 + StoichNum(217,57) = -1 + StoichNum(217,58) = -1 + StoichNum(217,92) = -1 + StoichNum(217,103) = -2 + StoichNum(217,105) = -1 + StoichNum(217,130) = 1 + StoichNum(217,139) = -1 + StoichNum(217,168) = 1 + StoichNum(217,270) = 1 + StoichNum(217,271) = -1 + StoichNum(218,29) = 1 + StoichNum(218,31) = 0.13 + StoichNum(218,48) = -1 + StoichNum(218,83) = 0.25 + StoichNum(218,84) = 0.25 + StoichNum(218,92) = 0.25 + StoichNum(218,93) = 0.25 + StoichNum(218,95) = 0.25 + StoichNum(218,96) = 0.25 + StoichNum(218,97) = 0.5 + StoichNum(218,98) = 0.25 + StoichNum(218,99) = 0.25 + StoichNum(218,100) = 0.25 + StoichNum(218,273) = -1 + StoichNum(218,328) = 0.25 + StoichNum(218,340) = 0.25 + StoichNum(218,349) = 0.25 + StoichNum(218,485) = 0.355 + StoichNum(218,486) = 0.034 + StoichNum(218,583) = 0.2 + StoichNum(218,760) = 0.1 + StoichNum(219,76) = -1 + StoichNum(219,120) = 0.5 + StoichNum(219,132) = 0.1 + StoichNum(219,133) = 0.1 + StoichNum(219,134) = 0.1 + StoichNum(219,135) = 0.1 + StoichNum(219,136) = 0.1 + StoichNum(219,137) = 0.1 + StoichNum(219,138) = 0.1 + StoichNum(219,139) = 0.1 + StoichNum(219,140) = 0.1 + StoichNum(219,141) = 0.1 + StoichNum(219,142) = 0.1 + StoichNum(219,275) = -1 + StoichNum(219,323) = 1 + StoichNum(219,571) = 0.13 + StoichNum(219,626) = 0.15 + StoichNum(219,627) = 0.3 + StoichNum(220,398) = 1 + StoichNum(220,454) = -1 + StoichNum(220,455) = -1 + StoichNum(220,458) = -1 + StoichNum(220,483) = 0.032 + StoichNum(220,484) = 0.671 + StoichNum(220,485) = 0.298 + StoichNum(220,725) = -1 + StoichNum(220,872) = -1 + StoichNum(221,66) = 0.34 + StoichNum(221,71) = 1 + StoichNum(221,82) = -1 + StoichNum(221,95) = 0.16 + StoichNum(221,99) = 0.75 + StoichNum(221,124) = 0.791 + StoichNum(221,133) = 0.29 + StoichNum(221,136) = 1 + StoichNum(221,167) = -1 + StoichNum(221,278) = -1 + StoichNum(221,326) = 0.11 + StoichNum(221,367) = 1 + StoichNum(221,757) = -1 + StoichNum(221,758) = -1 + StoichNum(221,773) = 1 + StoichNum(221,777) = 0.34 + StoichNum(221,848) = 1 + StoichNum(222,497) = 0.67 + StoichNum(222,506) = -1 + StoichNum(222,507) = -1 + StoichNum(222,509) = -1 + StoichNum(222,510) = -1 + StoichNum(223,112) = 0.134 + StoichNum(223,115) = -1 + StoichNum(223,117) = -1 + StoichNum(223,439) = 0.8 + StoichNum(223,441) = 0.52 + StoichNum(223,573) = 1 + StoichNum(223,579) = 0.636 + StoichNum(223,589) = 0.18 + StoichNum(223,590) = 0.12 + StoichNum(223,591) = 0.1 + StoichNum(223,597) = 0.06 + StoichNum(223,623) = 0.6 + StoichNum(223,624) = 0.6 + StoichNum(223,625) = 0.2 + StoichNum(223,712) = -1 + StoichNum(223,761) = -1 + StoichNum(223,762) = -1 + StoichNum(223,763) = -1 + StoichNum(223,855) = 0.5 + StoichNum(223,857) = 0.429 + StoichNum(223,858) = 0.125 + StoichNum(223,882) = 0.586 + StoichNum(223,884) = 0.571 + StoichNum(224,279) = -1 + StoichNum(224,369) = -1 + StoichNum(224,370) = -1 + StoichNum(224,371) = -1 + StoichNum(224,372) = -1 + StoichNum(224,373) = -1 + StoichNum(224,479) = -1 + StoichNum(225,335) = 1 + StoichNum(225,338) = -1 + StoichNum(225,339) = -1 + StoichNum(225,340) = -1 + StoichNum(225,341) = -1 + StoichNum(225,342) = -1 + StoichNum(226,66) = 0.19 + StoichNum(226,91) = -1 + StoichNum(226,94) = -1 + StoichNum(226,95) = 0.35 + StoichNum(226,98) = 0.25 + StoichNum(226,133) = 0.271 + StoichNum(226,135) = 0.1 + StoichNum(226,326) = 0.44 + StoichNum(226,328) = 0.75 + StoichNum(226,329) = 1.125 + StoichNum(226,330) = 1 + StoichNum(226,331) = 0.53 + StoichNum(226,332) = 0.53 + StoichNum(226,338) = 0.289 + StoichNum(226,343) = 0.41 + StoichNum(226,345) = 0.464 + StoichNum(226,349) = 0.34 + StoichNum(226,351) = 0.464 + StoichNum(226,353) = 0.464 + StoichNum(226,355) = 0.149 + StoichNum(226,356) = 0.285 + StoichNum(226,759) = -1 + StoichNum(226,777) = 0.19 + StoichNum(226,839) = 1 + StoichNum(227,289) = -1 + StoichNum(227,290) = 1 + StoichNum(227,292) = 1 + StoichNum(227,293) = -1 + StoichNum(227,294) = -1 + StoichNum(227,297) = 1 + StoichNum(227,298) = -1 + StoichNum(227,299) = 1 + StoichNum(227,303) = 1 + StoichNum(227,304) = -1 + StoichNum(227,305) = -1 + StoichNum(227,306) = -2 + StoichNum(227,307) = 0.008 + StoichNum(227,816) = -1 + StoichNum(227,827) = 1 + StoichNum(228,404) = 0.294 + StoichNum(228,429) = 0.67 + StoichNum(228,431) = 0.81 + StoichNum(228,432) = -1 + StoichNum(228,433) = -1 + StoichNum(228,434) = -1 + StoichNum(228,435) = -1 + StoichNum(228,436) = -1 + StoichNum(228,563) = 0.08 + StoichNum(229,404) = 0.068 + StoichNum(229,429) = 0.33 + StoichNum(229,431) = 0.19 + StoichNum(229,437) = -1 + StoichNum(229,438) = -1 + StoichNum(229,439) = -1 + StoichNum(229,440) = -1 + StoichNum(229,441) = -1 + StoichNum(229,563) = 0.032 + StoichNum(230,385) = 1 + StoichNum(230,387) = 0.5 + StoichNum(230,389) = 0.5 + StoichNum(230,395) = 0.55 + StoichNum(230,400) = 0.33 + StoichNum(230,402) = 0.19 + StoichNum(230,404) = 0.125 + StoichNum(230,411) = 0.125 + StoichNum(230,420) = 0.706 + StoichNum(230,422) = 0.14 + StoichNum(230,507) = 0.054 + StoichNum(230,509) = 0.059 + StoichNum(230,527) = -1 + StoichNum(230,543) = 0.335 + StoichNum(230,565) = 0.429 + StoichNum(230,566) = 0.75 + StoichNum(230,856) = -1 + StoichNum(230,872) = 0.55 + StoichNum(230,889) = 0.5 + StoichNum(231,386) = 1 + StoichNum(231,387) = 0.5 + StoichNum(231,391) = 0.5 + StoichNum(231,399) = 0.55 + StoichNum(231,401) = 0.17 + StoichNum(231,403) = 0.09 + StoichNum(231,404) = 0.158 + StoichNum(231,412) = 0.165 + StoichNum(231,416) = 0.716 + StoichNum(231,418) = 0.14 + StoichNum(231,507) = 0.004 + StoichNum(231,509) = 0.006 + StoichNum(231,528) = -1 + StoichNum(231,546) = 0.41 + StoichNum(231,562) = 0.5 + StoichNum(231,565) = 0.571 + StoichNum(231,566) = 0.25 + StoichNum(231,859) = -1 + StoichNum(231,875) = 0.55 + StoichNum(231,881) = 0.5 + StoichNum(231,887) = 0.15 + StoichNum(231,889) = 0.5 + StoichNum(232,476) = -1 + StoichNum(232,477) = -1 + StoichNum(232,478) = -1 + StoichNum(232,496) = 1 + StoichNum(232,497) = 0.33 + StoichNum(232,567) = 0.037 + StoichNum(233,33) = 0.3 + StoichNum(233,97) = 0.5 + StoichNum(233,116) = -1 + StoichNum(233,118) = -1 + StoichNum(233,119) = 1 + StoichNum(233,134) = 0.1 + StoichNum(233,310) = 1 + StoichNum(233,372) = 0.3 + StoichNum(233,373) = 0.3 + StoichNum(233,379) = 0.3 + StoichNum(233,381) = 0.3 + StoichNum(233,400) = 0.085 + StoichNum(233,401) = 0.165 + StoichNum(233,404) = 0.355 + StoichNum(233,405) = 0.5 + StoichNum(233,413) = 0.018 + StoichNum(233,414) = 0.018 + StoichNum(233,434) = 0.52 + StoichNum(233,435) = 0.8 + StoichNum(233,521) = 0.545 + StoichNum(233,524) = 0.88 + StoichNum(233,526) = 0.449 + StoichNum(233,537) = 0.187 + StoichNum(233,538) = 1 + StoichNum(233,540) = 1 + StoichNum(233,543) = 0.05 + StoichNum(233,544) = 0.242 + StoichNum(233,546) = 0.083 + StoichNum(233,550) = 0.14 + StoichNum(233,561) = 0.7 + StoichNum(233,590) = 0.12 + StoichNum(233,591) = 0.2 + StoichNum(233,626) = 0.6 + StoichNum(233,627) = 0.6 + StoichNum(233,628) = 0.2 + StoichNum(233,713) = -1 + StoichNum(233,764) = -1 + StoichNum(233,855) = 0.5 + StoichNum(233,856) = 0.47 + StoichNum(233,857) = 0.571 + StoichNum(233,858) = 0.125 + StoichNum(233,859) = 0.23 + StoichNum(233,882) = 0.118 + StoichNum(233,884) = 0.429 + StoichNum(233,888) = 1 + StoichNum(234,111) = 0.22 + StoichNum(234,311) = -1 + StoichNum(234,312) = -1 + StoichNum(234,313) = -1 + StoichNum(234,314) = -1 + StoichNum(234,315) = -1 + StoichNum(234,316) = -1 + StoichNum(234,317) = -1 + StoichNum(234,369) = 0.58 + StoichNum(234,521) = 0.5 + StoichNum(234,524) = 0.88 + StoichNum(234,577) = 1 + StoichNum(235,230) = -1 + StoichNum(235,643) = 1 + StoichNum(235,645) = 1 + StoichNum(235,646) = 1 + StoichNum(235,658) = -1 + StoichNum(235,659) = -1 + StoichNum(235,660) = -1 + StoichNum(235,661) = -1 + StoichNum(235,662) = -1 + StoichNum(235,663) = -1 + StoichNum(235,795) = -1 + StoichNum(236,112) = -1 + StoichNum(236,113) = -1 + StoichNum(236,420) = 0.294 + StoichNum(236,422) = 0.135 + StoichNum(236,424) = 1 + StoichNum(236,426) = 0.65 + StoichNum(236,434) = 0.52 + StoichNum(236,435) = 0.8 + StoichNum(236,461) = 0.459 + StoichNum(236,462) = 0.728 + StoichNum(236,470) = 0.551 + StoichNum(236,471) = 0.935 + StoichNum(236,476) = 0.242 + StoichNum(236,477) = 0.546 + StoichNum(236,507) = 0.34 + StoichNum(236,509) = 0.384 + StoichNum(236,518) = 0.11 + StoichNum(236,519) = 0.09 + StoichNum(236,543) = 0.36 + StoichNum(236,544) = 0.758 + StoichNum(236,583) = 0.2 + StoichNum(236,585) = 1 + StoichNum(236,586) = 1 + StoichNum(236,588) = 1 + StoichNum(236,602) = 1 + StoichNum(236,624) = 0.9 + StoichNum(236,627) = 0.95 + StoichNum(236,760) = -1 + StoichNum(236,856) = 0.53 + StoichNum(236,861) = 0.69 + StoichNum(236,880) = 0.5 + StoichNum(236,882) = 0.118 + StoichNum(236,883) = 0.25 + StoichNum(236,884) = 0.429 + StoichNum(236,886) = 0.3 + StoichNum(236,887) = 0.35 + StoichNum(236,888) = 1 + StoichNum(237,61) = 1 + StoichNum(237,62) = -1 + StoichNum(237,63) = -1 + StoichNum(237,66) = 0.05 + StoichNum(237,80) = 0.07 + StoichNum(237,83) = -1 + StoichNum(237,95) = 0.03 + StoichNum(237,107) = -1 + StoichNum(237,109) = 0.03 + StoichNum(237,123) = 0.36 + StoichNum(237,133) = 0.045 + StoichNum(237,142) = -1 + StoichNum(237,143) = 0.07 + StoichNum(237,144) = 0.07 + StoichNum(237,169) = 1 + StoichNum(237,277) = 1 + StoichNum(237,756) = 0.07 + StoichNum(237,759) = 0.06 + StoichNum(237,777) = 0.05 + StoichNum(238,324) = 1 + StoichNum(238,325) = 1 + StoichNum(238,326) = -1 + StoichNum(238,327) = -1 + StoichNum(238,328) = -1 + StoichNum(238,329) = -1 + StoichNum(238,330) = -1 + StoichNum(239,59) = -1 + StoichNum(239,66) = 0.34 + StoichNum(239,80) = 0.49 + StoichNum(239,93) = -1 + StoichNum(239,95) = 0.16 + StoichNum(239,104) = -2 + StoichNum(239,106) = -1 + StoichNum(239,109) = 0.22 + StoichNum(239,122) = 0.36 + StoichNum(239,133) = 0.29 + StoichNum(239,140) = -1 + StoichNum(239,143) = 0.49 + StoichNum(239,144) = 0.49 + StoichNum(239,272) = -1 + StoichNum(239,336) = 0.16 + StoichNum(239,756) = 0.49 + StoichNum(239,759) = 0.415 + StoichNum(239,777) = 0.34 + StoichNum(240,458) = 0.4 + StoichNum(240,459) = 0.4 + StoichNum(240,482) = 0.07 + StoichNum(240,483) = 0.532 + StoichNum(240,484) = 0.862 + StoichNum(240,485) = 0.401 + StoichNum(240,486) = 0.034 + StoichNum(240,488) = 0.159 + StoichNum(240,490) = 0.159 + StoichNum(240,493) = 0.159 + StoichNum(240,495) = 1 + StoichNum(240,504) = 1 StoichNum(240,513) = -1 StoichNum(240,514) = -1 - StoichNum(240,516) = -1 - StoichNum(240,518) = -1 - StoichNum(240,519) = -1 - StoichNum(240,529) = 1 - StoichNum(241,506) = 0.535 - StoichNum(241,508) = -1 - StoichNum(241,510) = -1 - StoichNum(241,511) = -2 - StoichNum(241,512) = -1 - StoichNum(241,515) = -1 - StoichNum(241,517) = -1 - StoichNum(241,520) = -1 - StoichNum(241,521) = -1 - StoichNum(241,530) = 1 - StoichNum(242,301) = 0.5 - StoichNum(242,397) = 1 - StoichNum(242,401) = -1 - StoichNum(242,402) = -1 - StoichNum(242,405) = -1 - StoichNum(242,406) = -1 - StoichNum(242,409) = -2 - StoichNum(242,411) = -1 - StoichNum(242,412) = -2 - StoichNum(242,414) = -1 - StoichNum(242,415) = -1 - StoichNum(242,416) = -1 - StoichNum(242,419) = -1 - StoichNum(242,420) = -1 - StoichNum(242,421) = -1 - StoichNum(242,422) = -1 - StoichNum(242,438) = 0.75 - StoichNum(242,440) = 0.03 - StoichNum(242,898) = 0.841 - StoichNum(243,301) = 0.5 - StoichNum(243,398) = 1 - StoichNum(243,403) = -1 - StoichNum(243,404) = -1 - StoichNum(243,407) = -1 - StoichNum(243,408) = -1 - StoichNum(243,410) = -2 - StoichNum(243,411) = -1 - StoichNum(243,413) = -2 - StoichNum(243,414) = -1 - StoichNum(243,417) = -1 - StoichNum(243,418) = -1 - StoichNum(243,423) = -1 - StoichNum(243,424) = -1 - StoichNum(243,425) = -1 - StoichNum(243,426) = -1 - StoichNum(243,439) = 0.51 - StoichNum(243,441) = 0.03 - StoichNum(243,898) = 0.159 - StoichNum(244,396) = 0.177 - StoichNum(244,401) = 0.063 - StoichNum(244,405) = 1 - StoichNum(244,409) = 2 - StoichNum(244,411) = 1 - StoichNum(244,415) = 1 - StoichNum(244,420) = 1 - StoichNum(244,427) = 0.035 - StoichNum(244,429) = 0.23 - StoichNum(244,438) = 0.125 - StoichNum(244,473) = 1 - StoichNum(244,474) = 1 - StoichNum(244,507) = 0.479 - StoichNum(244,509) = 1.737 - StoichNum(244,510) = 0.544 - StoichNum(244,513) = 0.583 - StoichNum(244,514) = 0.903 - StoichNum(244,516) = 0.903 - StoichNum(244,518) = 0.904 - StoichNum(244,547) = -1 - StoichNum(244,548) = -1 - StoichNum(244,617) = 0.04 - StoichNum(244,618) = 0.04 - StoichNum(244,785) = -1 - StoichNum(244,786) = -1 - StoichNum(244,787) = -1 - StoichNum(244,884) = 1 - StoichNum(244,890) = 1 - StoichNum(244,893) = 1 - StoichNum(244,896) = 0.903 - StoichNum(244,900) = 0.05 - StoichNum(245,556) = 1 - StoichNum(245,581) = -1 - StoichNum(245,582) = -1 - StoichNum(245,583) = -1 - StoichNum(245,584) = -1 - StoichNum(245,585) = -1 - StoichNum(246,86) = 0.16 - StoichNum(246,99) = 0.2 - StoichNum(246,123) = -1 - StoichNum(246,124) = -1 - StoichNum(246,128) = 0.65 - StoichNum(246,137) = 0.791 - StoichNum(246,365) = 0.058 - StoichNum(246,391) = 1 - StoichNum(246,432) = 0.5 - StoichNum(246,443) = 0.284 - StoichNum(246,445) = 0.135 - StoichNum(246,451) = 1 - StoichNum(246,453) = 0.65 - StoichNum(246,466) = 0.8 - StoichNum(246,468) = 0.52 - StoichNum(246,469) = 0.52 - StoichNum(246,471) = 0.8 - StoichNum(246,472) = 1 - StoichNum(246,488) = 0.459 - StoichNum(246,489) = 0.728 - StoichNum(246,500) = 0.441 - StoichNum(246,501) = 0.858 - StoichNum(246,503) = 0.033 - StoichNum(246,504) = 0.071 - StoichNum(246,534) = 0.042 - StoichNum(246,536) = 0.051 - StoichNum(246,555) = 0.77 - StoichNum(246,569) = 0.84 - StoichNum(246,573) = 0.507 - StoichNum(246,575) = 0.488 - StoichNum(246,576) = 1 - StoichNum(246,577) = 0.86 - StoichNum(246,581) = 0.5 - StoichNum(246,582) = 1 - StoichNum(246,584) = 1 - StoichNum(246,585) = 0.7 - StoichNum(246,587) = 0.25 - StoichNum(246,789) = -1 - StoichNum(246,861) = 1 - StoichNum(246,879) = 0.77 - StoichNum(246,882) = 1 - StoichNum(246,900) = 0.5 - StoichNum(246,902) = 0.438 - StoichNum(246,903) = 0.25 - StoichNum(246,904) = 0.571 - StoichNum(246,906) = 0.45 - StoichNum(246,907) = 0.8 - StoichNum(247,363) = 0.79 - StoichNum(247,367) = 0.308 - StoichNum(247,368) = 0.308 - StoichNum(247,369) = 0.615 - StoichNum(247,396) = 0.416 - StoichNum(247,403) = 0.063 - StoichNum(247,407) = 1 - StoichNum(247,410) = 2 - StoichNum(247,411) = 1 - StoichNum(247,417) = 1 - StoichNum(247,424) = 1 - StoichNum(247,428) = 0.035 - StoichNum(247,430) = 0.14 - StoichNum(247,439) = 0.165 - StoichNum(247,475) = 1 - StoichNum(247,476) = 1 - StoichNum(247,507) = 0.048 - StoichNum(247,509) = 0.123 - StoichNum(247,510) = 0.019 - StoichNum(247,513) = 0.028 - StoichNum(247,514) = 0.097 - StoichNum(247,516) = 0.097 - StoichNum(247,518) = 0.096 - StoichNum(247,549) = -1 - StoichNum(247,550) = -1 - StoichNum(247,551) = -1 - StoichNum(247,552) = -1 - StoichNum(247,788) = -1 - StoichNum(247,885) = 1 - StoichNum(247,891) = 1 - StoichNum(247,894) = 1 - StoichNum(247,896) = 0.097 - StoichNum(247,900) = 0.005 - StoichNum(248,34) = 1 - StoichNum(248,71) = -1 - StoichNum(248,84) = 1 - StoichNum(248,89) = -1 - StoichNum(248,99) = -1 - StoichNum(248,145) = -1 - StoichNum(248,151) = -1 - StoichNum(248,183) = 1 - StoichNum(248,300) = 1 - StoichNum(249,72) = -1 - StoichNum(249,90) = -1 - StoichNum(249,93) = 1 - StoichNum(249,96) = 1 - StoichNum(249,100) = -1 - StoichNum(249,146) = -1 - StoichNum(249,152) = -1 - StoichNum(249,358) = 0.62 - StoichNum(249,359) = 0.62 - StoichNum(249,363) = 0.42 - StoichNum(250,79) = 1 - StoichNum(250,80) = -1 - StoichNum(250,81) = 1 - StoichNum(250,82) = -1 - StoichNum(250,83) = 1 - StoichNum(250,113) = -1 - StoichNum(250,129) = -1 - StoichNum(250,130) = -1 - StoichNum(250,136) = 1 - StoichNum(250,160) = -1 - StoichNum(250,650) = 0.33 - StoichNum(250,653) = 0.33 - StoichNum(250,779) = 0.15 - StoichNum(250,787) = 1 - StoichNum(251,70) = -1 - StoichNum(251,77) = 1 - StoichNum(251,88) = -1 - StoichNum(251,98) = -1 - StoichNum(251,148) = -1 - StoichNum(251,153) = -1 - StoichNum(251,646) = 0.5 - StoichNum(251,647) = 0.5 - StoichNum(252,67) = 1 - StoichNum(252,68) = -1 + StoichNum(240,877) = 0.159 + StoichNum(240,879) = -1 + StoichNum(240,880) = 0.223 + StoichNum(241,459) = 0.6 + StoichNum(241,465) = 0.599 + StoichNum(241,466) = 1 + StoichNum(241,473) = 0.065 + StoichNum(241,474) = 0.142 + StoichNum(241,476) = 0.01 + StoichNum(241,477) = 0.028 + StoichNum(241,507) = 0.008 + StoichNum(241,508) = 0.015 + StoichNum(241,509) = 0.014 + StoichNum(241,511) = 0.049 + StoichNum(241,514) = 0.161 + StoichNum(241,526) = -1 + StoichNum(241,533) = 1 + StoichNum(241,545) = 1 + StoichNum(241,718) = -1 + StoichNum(241,861) = -1 + StoichNum(241,886) = 0.05 + StoichNum(242,417) = 1 + StoichNum(242,421) = 1 + StoichNum(242,425) = 1 + StoichNum(242,461) = 0.482 + StoichNum(242,465) = 0.401 + StoichNum(242,470) = 0.418 + StoichNum(242,473) = 0.494 + StoichNum(242,476) = 0.621 + StoichNum(242,499) = 1 + StoichNum(242,500) = 1 + StoichNum(242,506) = 0.5 + StoichNum(242,507) = 0.234 + StoichNum(242,508) = 0.387 + StoichNum(242,517) = 0.565 + StoichNum(242,567) = -1 + StoichNum(242,734) = -1 + StoichNum(242,886) = -1 + StoichNum(242,887) = -1 + StoichNum(243,463) = 1 + StoichNum(243,467) = 1 + StoichNum(243,472) = 1 + StoichNum(243,475) = 1 + StoichNum(243,478) = 1 + StoichNum(243,492) = 1 + StoichNum(243,494) = 1 + StoichNum(243,510) = 1 + StoichNum(243,512) = 1 + StoichNum(243,517) = -1 + StoichNum(243,519) = 0.18 + StoichNum(243,732) = -1 + StoichNum(243,880) = -1 + StoichNum(244,279) = 0.5 + StoichNum(244,371) = 1 + StoichNum(244,376) = -1 + StoichNum(244,377) = -1 + StoichNum(244,380) = -1 + StoichNum(244,381) = -1 + StoichNum(244,383) = -2 + StoichNum(244,384) = -1 + StoichNum(244,386) = -2 + StoichNum(244,387) = -1 + StoichNum(244,390) = -1 + StoichNum(244,391) = -1 + StoichNum(244,396) = -1 + StoichNum(244,397) = -1 + StoichNum(244,398) = -1 + StoichNum(244,399) = -1 + StoichNum(244,412) = 0.51 + StoichNum(244,414) = 0.03 + StoichNum(244,878) = 0.159 + StoichNum(245,279) = 0.5 + StoichNum(245,370) = 1 + StoichNum(245,374) = -1 + StoichNum(245,375) = -1 + StoichNum(245,378) = -1 + StoichNum(245,379) = -1 + StoichNum(245,382) = -2 + StoichNum(245,384) = -1 + StoichNum(245,385) = -2 + StoichNum(245,387) = -1 + StoichNum(245,388) = -1 + StoichNum(245,389) = -1 + StoichNum(245,392) = -1 + StoichNum(245,393) = -1 + StoichNum(245,394) = -1 + StoichNum(245,395) = -1 + StoichNum(245,411) = 0.75 + StoichNum(245,413) = 0.03 + StoichNum(245,878) = 0.841 + StoichNum(246,479) = 0.535 + StoichNum(246,481) = -1 + StoichNum(246,483) = -1 + StoichNum(246,484) = -2 + StoichNum(246,485) = -1 + StoichNum(246,488) = -1 + StoichNum(246,490) = -1 + StoichNum(246,493) = -1 + StoichNum(246,494) = -1 + StoichNum(246,503) = 1 + StoichNum(247,479) = 0.465 + StoichNum(247,480) = -1 + StoichNum(247,482) = -2 + StoichNum(247,483) = -1 + StoichNum(247,486) = -1 + StoichNum(247,487) = -1 + StoichNum(247,489) = -1 + StoichNum(247,491) = -1 + StoichNum(247,492) = -1 + StoichNum(247,502) = 1 + StoichNum(248,369) = 0.177 + StoichNum(248,374) = 0.063 + StoichNum(248,378) = 1 + StoichNum(248,382) = 2 + StoichNum(248,384) = 1 + StoichNum(248,388) = 1 + StoichNum(248,393) = 1 + StoichNum(248,400) = 0.035 + StoichNum(248,402) = 0.23 + StoichNum(248,411) = 0.125 + StoichNum(248,446) = 1 + StoichNum(248,447) = 1 + StoichNum(248,480) = 0.479 + StoichNum(248,482) = 1.737 + StoichNum(248,483) = 0.544 + StoichNum(248,486) = 0.583 + StoichNum(248,487) = 0.903 + StoichNum(248,489) = 0.903 + StoichNum(248,491) = 0.904 + StoichNum(248,520) = -1 + StoichNum(248,521) = -1 + StoichNum(248,590) = 0.04 + StoichNum(248,591) = 0.04 + StoichNum(248,765) = -1 + StoichNum(248,766) = -1 + StoichNum(248,767) = -1 + StoichNum(248,864) = 1 + StoichNum(248,870) = 1 + StoichNum(248,873) = 1 + StoichNum(248,876) = 0.903 + StoichNum(248,880) = 0.05 + StoichNum(249,529) = 1 + StoichNum(249,554) = -1 + StoichNum(249,555) = -1 + StoichNum(249,556) = -1 + StoichNum(249,557) = -1 + StoichNum(249,558) = -1 + StoichNum(250,84) = 0.16 + StoichNum(250,97) = 0.2 + StoichNum(250,119) = -1 + StoichNum(250,120) = -1 + StoichNum(250,127) = 0.791 + StoichNum(250,141) = 0.065 + StoichNum(250,338) = 0.058 + StoichNum(250,364) = 1 + StoichNum(250,405) = 0.5 + StoichNum(250,416) = 0.284 + StoichNum(250,418) = 0.135 + StoichNum(250,424) = 1 + StoichNum(250,426) = 0.65 + StoichNum(250,439) = 0.8 + StoichNum(250,441) = 0.52 + StoichNum(250,442) = 0.52 + StoichNum(250,444) = 0.8 + StoichNum(250,445) = 1 + StoichNum(250,461) = 0.459 + StoichNum(250,462) = 0.728 + StoichNum(250,473) = 0.441 + StoichNum(250,474) = 0.858 + StoichNum(250,476) = 0.033 + StoichNum(250,477) = 0.071 + StoichNum(250,507) = 0.042 + StoichNum(250,509) = 0.051 + StoichNum(250,528) = 0.77 + StoichNum(250,542) = 0.84 + StoichNum(250,546) = 0.507 + StoichNum(250,548) = 0.488 + StoichNum(250,549) = 1 + StoichNum(250,550) = 0.86 + StoichNum(250,554) = 0.5 + StoichNum(250,555) = 1 + StoichNum(250,557) = 1 + StoichNum(250,558) = 0.7 + StoichNum(250,560) = 0.25 + StoichNum(250,769) = -1 + StoichNum(250,841) = 1 + StoichNum(250,859) = 0.77 + StoichNum(250,862) = 1 + StoichNum(250,880) = 0.5 + StoichNum(250,882) = 0.586 + StoichNum(250,883) = 0.25 + StoichNum(250,884) = 0.571 + StoichNum(250,886) = 0.45 + StoichNum(250,887) = 0.8 + StoichNum(251,336) = 0.79 + StoichNum(251,340) = 0.308 + StoichNum(251,341) = 0.308 + StoichNum(251,342) = 0.615 + StoichNum(251,369) = 0.416 + StoichNum(251,376) = 0.063 + StoichNum(251,380) = 1 + StoichNum(251,383) = 2 + StoichNum(251,384) = 1 + StoichNum(251,390) = 1 + StoichNum(251,397) = 1 + StoichNum(251,401) = 0.035 + StoichNum(251,403) = 0.14 + StoichNum(251,412) = 0.165 + StoichNum(251,448) = 1 + StoichNum(251,449) = 1 + StoichNum(251,480) = 0.048 + StoichNum(251,482) = 0.123 + StoichNum(251,483) = 0.019 + StoichNum(251,486) = 0.028 + StoichNum(251,487) = 0.097 + StoichNum(251,489) = 0.097 + StoichNum(251,491) = 0.096 + StoichNum(251,522) = -1 + StoichNum(251,523) = -1 + StoichNum(251,524) = -1 + StoichNum(251,525) = -1 + StoichNum(251,768) = -1 + StoichNum(251,865) = 1 + StoichNum(251,871) = 1 + StoichNum(251,874) = 1 + StoichNum(251,876) = 0.097 + StoichNum(251,880) = 0.005 + StoichNum(252,33) = 0.7 StoichNum(252,69) = -1 - StoichNum(252,76) = 1 + StoichNum(252,82) = 1 StoichNum(252,87) = -1 StoichNum(252,97) = -1 - StoichNum(252,98) = 0.15 - StoichNum(252,135) = 0.209 - StoichNum(252,144) = -1 - StoichNum(252,148) = 0.3 - StoichNum(252,150) = -1 - StoichNum(252,302) = 1 - StoichNum(252,370) = 0.44 - StoichNum(252,655) = 0.2 - StoichNum(253,62) = 1 - StoichNum(253,68) = 0.18 - StoichNum(253,73) = -1 - StoichNum(253,74) = -1 - StoichNum(253,82) = 0.27 - StoichNum(253,91) = -1 - StoichNum(253,97) = 0.09 - StoichNum(253,101) = -1 - StoichNum(253,113) = 0.12 - StoichNum(253,129) = 0.27 - StoichNum(253,134) = 0.209 - StoichNum(253,144) = 0.18 - StoichNum(253,147) = -1 - StoichNum(253,155) = -1 - StoichNum(253,160) = 0.27 - StoichNum(253,298) = 1 - StoichNum(253,776) = 0.27 - StoichNum(253,779) = 0.23 - StoichNum(253,797) = 0.18 - StoichNum(254,114) = -1 - StoichNum(254,115) = -1 - StoichNum(254,118) = -1 - StoichNum(254,303) = -1 - StoichNum(254,304) = -1 - StoichNum(254,363) = 0.46 - StoichNum(254,365) = 0.289 - StoichNum(254,367) = 0.192 - StoichNum(254,368) = 0.192 - StoichNum(254,369) = 0.385 - StoichNum(254,785) = 1 - StoichNum(255,64) = 1 - StoichNum(255,68) = 0.14 - StoichNum(255,70) = 0.57 - StoichNum(255,79) = -1 - StoichNum(255,83) = -1 - StoichNum(255,85) = 0.75 - StoichNum(255,86) = 0.09 - StoichNum(255,97) = 0.07 - StoichNum(255,98) = 0.54 - StoichNum(255,102) = 0.25 - StoichNum(255,104) = 1 - StoichNum(255,125) = 1 - StoichNum(255,127) = 1 - StoichNum(255,128) = 0.35 - StoichNum(255,133) = 0.64 - StoichNum(255,135) = 0.791 - StoichNum(255,144) = 0.13 - StoichNum(255,148) = 0.57 - StoichNum(255,153) = 1 - StoichNum(255,154) = 1 - StoichNum(255,353) = 0.43 - StoichNum(255,355) = 0.75 - StoichNum(255,356) = 1 - StoichNum(255,357) = 1 - StoichNum(255,358) = 0.65 - StoichNum(255,359) = 0.65 - StoichNum(255,365) = 0.491 - StoichNum(255,370) = 0.08 - StoichNum(255,372) = 1.24 - StoichNum(255,376) = 0.93 - StoichNum(255,378) = 1.24 - StoichNum(255,380) = 1.24 - StoichNum(255,382) = 0.64 - StoichNum(255,383) = 1.21 - StoichNum(255,395) = 1 - StoichNum(255,652) = 1.2 - StoichNum(255,655) = 1.2 - StoichNum(255,776) = -1 - StoichNum(255,790) = 1 - StoichNum(255,792) = 1 - StoichNum(255,794) = 1 - StoichNum(255,797) = 0.13 - StoichNum(255,857) = 1 - StoichNum(255,860) = 1 - StoichNum(255,869) = 1 - StoichNum(256,169) = 1 - StoichNum(256,176) = 1 - StoichNum(256,177) = -1 - StoichNum(256,675) = 1 - StoichNum(256,695) = -1 - StoichNum(256,696) = -1 - StoichNum(256,697) = -1 - StoichNum(256,698) = -1 - StoichNum(256,699) = -1 - StoichNum(256,700) = -1 - StoichNum(256,701) = -1 - StoichNum(256,702) = 1 - StoichNum(256,703) = 1 - StoichNum(256,704) = 1 - StoichNum(256,801) = -1 - StoichNum(257,53) = 0.95 - StoichNum(257,54) = 1 - StoichNum(257,55) = -1 - StoichNum(257,56) = 1 - StoichNum(257,57) = -1 - StoichNum(257,71) = 1 - StoichNum(257,72) = 0.93 - StoichNum(257,89) = 0.15 - StoichNum(257,90) = 0.15 - StoichNum(257,99) = 0.3 - StoichNum(257,100) = 0.5 - StoichNum(257,120) = 1 - StoichNum(257,122) = 1 - StoichNum(257,125) = -1 - StoichNum(257,126) = -1 - StoichNum(257,127) = -1 - StoichNum(257,128) = -1 - StoichNum(257,139) = 1 - StoichNum(257,141) = -2 - StoichNum(257,142) = -1 - StoichNum(257,143) = -1 - StoichNum(257,144) = -1 - StoichNum(257,147) = -1 - StoichNum(257,148) = -1 - StoichNum(257,149) = -1 - StoichNum(257,150) = -1 - StoichNum(257,151) = -1 - StoichNum(257,152) = -1 - StoichNum(257,153) = -1 - StoichNum(257,154) = -1 - StoichNum(257,155) = -1 - StoichNum(257,156) = -1 - StoichNum(257,157) = -1 - StoichNum(257,158) = -1 - StoichNum(257,159) = -1 - StoichNum(257,160) = -1 - StoichNum(257,182) = 1 - StoichNum(257,356) = -1 - StoichNum(257,368) = -1 - StoichNum(257,377) = -1 - StoichNum(257,378) = -1 - StoichNum(257,399) = 0.3 - StoichNum(257,406) = 0.3 - StoichNum(257,440) = 0.018 - StoichNum(257,514) = -1 - StoichNum(257,515) = -1 - StoichNum(257,548) = 0.38 - StoichNum(257,551) = 0.12 - StoichNum(257,553) = 0.04 - StoichNum(257,564) = 0.097 - StoichNum(257,568) = 1 - StoichNum(257,570) = 0.36 - StoichNum(257,571) = 0.758 - StoichNum(257,574) = 0.175 - StoichNum(257,575) = 0.087 - StoichNum(257,579) = 0.35 - StoichNum(257,588) = 0.3 - StoichNum(257,595) = 1 - StoichNum(257,596) = 1 - StoichNum(257,598) = -1 - StoichNum(257,623) = -1 - StoichNum(257,773) = 0.12 - StoichNum(257,775) = 0.7 - StoichNum(257,777) = 1 - StoichNum(257,779) = 0.85 - StoichNum(257,784) = 1 - StoichNum(257,786) = 1 - StoichNum(257,788) = 1 - StoichNum(257,789) = 1 - StoichNum(257,852) = 1 - StoichNum(257,872) = 1 - StoichNum(257,873) = 1 - StoichNum(257,874) = 1 - StoichNum(257,875) = 0.5 - StoichNum(257,876) = 0.53 - StoichNum(257,877) = 0.429 - StoichNum(257,878) = 0.125 - StoichNum(257,880) = 0.262 - StoichNum(257,881) = 1.01 - StoichNum(258,24) = -1 - StoichNum(258,36) = 1 - StoichNum(258,52) = 1 - StoichNum(258,53) = 0.05 - StoichNum(258,115) = 0.56 - StoichNum(258,116) = 0.505 - StoichNum(258,117) = 1 - StoichNum(258,119) = 2 - StoichNum(258,120) = 1 - StoichNum(258,121) = 2 - StoichNum(258,122) = 1 - StoichNum(258,124) = 0.5 - StoichNum(258,181) = 1 - StoichNum(258,207) = 1 - StoichNum(258,223) = 1 - StoichNum(258,262) = 1 - StoichNum(258,286) = 1 - StoichNum(258,287) = 1 - StoichNum(258,288) = 1 - StoichNum(258,338) = -1 - StoichNum(258,345) = -1 - StoichNum(258,358) = 0.14 - StoichNum(258,359) = 0.14 - StoichNum(258,363) = 0.14 - StoichNum(258,396) = 0.407 - StoichNum(258,399) = 0.6 - StoichNum(258,400) = 0.9 - StoichNum(258,406) = 0.6 - StoichNum(258,408) = 0.9 - StoichNum(258,412) = 1 - StoichNum(258,413) = 1 - StoichNum(258,414) = 1 - StoichNum(258,416) = 0.5 - StoichNum(258,418) = 0.5 - StoichNum(258,422) = 0.55 - StoichNum(258,426) = 0.55 - StoichNum(258,427) = 0.45 - StoichNum(258,428) = 0.37 - StoichNum(258,429) = 0.42 - StoichNum(258,430) = 0.23 - StoichNum(258,431) = 0.638 - StoichNum(258,432) = 1.5 - StoichNum(258,433) = 1 - StoichNum(258,438) = 0.25 - StoichNum(258,439) = 0.33 - StoichNum(258,440) = 0.036 - StoichNum(258,441) = 0.054 - StoichNum(258,460) = 1 - StoichNum(258,461) = 0.13 - StoichNum(258,462) = 0.2 - StoichNum(258,465) = 1 - StoichNum(258,466) = 0.2 - StoichNum(258,468) = 0.13 - StoichNum(258,469) = 0.52 - StoichNum(258,471) = 0.8 - StoichNum(258,472) = 2 - StoichNum(258,485) = 0.6 - StoichNum(258,486) = 0.6 - StoichNum(258,541) = 0.539 - StoichNum(258,542) = 0.33 - StoichNum(258,543) = 0.33 - StoichNum(258,548) = 0.18 - StoichNum(258,549) = 0.036 - StoichNum(258,551) = 0.12 - StoichNum(258,552) = 0.68 - StoichNum(258,555) = 0.77 - StoichNum(258,557) = 0.25 - StoichNum(258,564) = 0.75 - StoichNum(258,565) = 1 - StoichNum(258,568) = 2 - StoichNum(258,569) = 0.84 - StoichNum(258,573) = 0.507 - StoichNum(258,574) = 0.325 - StoichNum(258,575) = 0.488 - StoichNum(258,576) = 1 - StoichNum(258,577) = 0.86 - StoichNum(258,579) = 0.65 - StoichNum(258,587) = 0.25 - StoichNum(258,589) = 1 - StoichNum(258,590) = 0.888 - StoichNum(258,593) = 1 - StoichNum(258,599) = 1 - StoichNum(258,606) = 0.364 - StoichNum(258,616) = 0.2 - StoichNum(258,617) = 0.27 - StoichNum(258,618) = 0.3 - StoichNum(258,650) = 0.25 - StoichNum(258,651) = 0.5 - StoichNum(258,653) = 0.25 - StoichNum(258,654) = 0.5 - StoichNum(258,764) = 1 - StoichNum(258,765) = 1 - StoichNum(258,773) = 0.88 - StoichNum(258,774) = 1 - StoichNum(258,776) = 1 - StoichNum(258,778) = 1 - StoichNum(258,780) = 1 - StoichNum(258,781) = 2 - StoichNum(258,782) = 2 - StoichNum(258,783) = 1 - StoichNum(258,784) = 1 - StoichNum(258,785) = 1 - StoichNum(258,786) = 1 - StoichNum(258,788) = 1 - StoichNum(258,854) = 1 - StoichNum(258,858) = 1 - StoichNum(258,871) = 1 - StoichNum(258,874) = 1 - StoichNum(258,875) = 0.5 - StoichNum(258,877) = 0.571 - StoichNum(258,878) = 0.875 - StoichNum(258,879) = 0.77 - StoichNum(258,882) = 1 - StoichNum(258,883) = 1 - StoichNum(258,888) = 0.888 - StoichNum(258,889) = 0.818 - StoichNum(258,890) = 1 - StoichNum(258,891) = 1 - StoichNum(258,892) = 0.55 - StoichNum(258,895) = 0.55 - StoichNum(258,899) = 0.839 - StoichNum(258,901) = 1 - StoichNum(258,902) = 0.122 - StoichNum(258,905) = 1 - StoichNum(258,909) = 1 - StoichNum(258,911) = 1 - StoichNum(258,914) = 1 - StoichNum(259,252) = -1 - StoichNum(259,271) = 1 - StoichNum(259,284) = -1 - StoichNum(259,285) = -1 - StoichNum(259,677) = -1 - StoichNum(259,678) = -1 - StoichNum(259,679) = -1 - StoichNum(259,680) = -1 - StoichNum(259,681) = -1 - StoichNum(259,682) = -1 - StoichNum(259,683) = -1 - StoichNum(259,816) = -1 - StoichNum(259,817) = -1 - StoichNum(260,3) = -1 - StoichNum(260,6) = -1 - StoichNum(260,37) = 1 - StoichNum(260,38) = -1 - StoichNum(260,52) = 1 - StoichNum(260,54) = 1 - StoichNum(260,76) = 1 - StoichNum(260,83) = 1 - StoichNum(260,96) = 1 - StoichNum(260,121) = 1 - StoichNum(260,122) = 1 - StoichNum(260,140) = 1 - StoichNum(260,166) = 1 - StoichNum(260,389) = 1 - StoichNum(260,390) = 1 - StoichNum(260,552) = 0.32 - StoichNum(260,595) = 1 - StoichNum(260,625) = 0.742 - StoichNum(260,627) = 0.5 - StoichNum(260,630) = 0.5 - StoichNum(260,632) = 1 - StoichNum(260,647) = 0.5 - StoichNum(260,664) = 0.5 - StoichNum(260,665) = 1 - StoichNum(260,668) = 2 - StoichNum(260,669) = 1 - StoichNum(260,670) = 2 - StoichNum(260,671) = 1 - StoichNum(260,672) = 1 - StoichNum(260,675) = 1 + StoichNum(252,134) = -1 + StoichNum(252,167) = 1 + StoichNum(252,278) = 1 + StoichNum(253,110) = -1 + StoichNum(253,111) = -1 + StoichNum(253,114) = -1 + StoichNum(253,281) = -1 + StoichNum(253,282) = -1 + StoichNum(253,336) = 0.46 + StoichNum(253,338) = 0.289 + StoichNum(253,340) = 0.192 + StoichNum(253,341) = 0.192 + StoichNum(253,342) = 0.385 + StoichNum(253,765) = 1 + StoichNum(254,70) = -1 + StoichNum(254,88) = -1 + StoichNum(254,91) = 1 + StoichNum(254,94) = 1 + StoichNum(254,98) = -1 + StoichNum(254,135) = -1 + StoichNum(254,331) = 0.62 + StoichNum(254,332) = 0.62 + StoichNum(254,336) = 0.42 + StoichNum(255,77) = 1 + StoichNum(255,78) = -1 + StoichNum(255,79) = 1 + StoichNum(255,80) = -1 + StoichNum(255,81) = 1 + StoichNum(255,109) = -1 + StoichNum(255,126) = 1 + StoichNum(255,143) = -1 + StoichNum(255,144) = -1 + StoichNum(255,623) = 0.33 + StoichNum(255,626) = 0.33 + StoichNum(255,759) = 0.15 + StoichNum(255,767) = 1 + StoichNum(256,65) = 1 + StoichNum(256,66) = -1 + StoichNum(256,67) = -1 + StoichNum(256,74) = 1 + StoichNum(256,85) = -1 + StoichNum(256,95) = -1 + StoichNum(256,96) = 0.15 + StoichNum(256,125) = 0.21 + StoichNum(256,133) = -1 + StoichNum(256,137) = 0.27 + StoichNum(256,280) = 1 + StoichNum(256,343) = 0.44 + StoichNum(256,628) = 0.2 + StoichNum(257,68) = -1 + StoichNum(257,75) = 1 + StoichNum(257,86) = -1 + StoichNum(257,96) = -1 + StoichNum(257,137) = -1 + StoichNum(257,619) = 0.5 + StoichNum(257,620) = 0.5 + StoichNum(258,60) = 1 + StoichNum(258,66) = 0.19 + StoichNum(258,71) = -1 + StoichNum(258,72) = -1 + StoichNum(258,80) = 0.27 + StoichNum(258,89) = -1 + StoichNum(258,95) = 0.09 + StoichNum(258,99) = -1 + StoichNum(258,109) = 0.12 + StoichNum(258,124) = 0.209 + StoichNum(258,133) = 0.162 + StoichNum(258,136) = -1 + StoichNum(258,143) = 0.27 + StoichNum(258,144) = 0.27 + StoichNum(258,276) = 1 + StoichNum(258,756) = 0.27 + StoichNum(258,759) = 0.23 + StoichNum(258,777) = 0.19 + StoichNum(259,62) = 1 + StoichNum(259,66) = 0.15 + StoichNum(259,68) = 0.64 + StoichNum(259,77) = -1 + StoichNum(259,81) = -1 + StoichNum(259,83) = 0.75 + StoichNum(259,84) = 0.09 + StoichNum(259,95) = 0.13 + StoichNum(259,96) = 0.58 + StoichNum(259,100) = 0.25 + StoichNum(259,102) = 1 + StoichNum(259,123) = 0.64 + StoichNum(259,125) = 1.185 + StoichNum(259,133) = 0.255 + StoichNum(259,137) = 0.613 + StoichNum(259,138) = 0.1 + StoichNum(259,141) = 0.035 + StoichNum(259,142) = 1 + StoichNum(259,326) = 0.43 + StoichNum(259,328) = 0.75 + StoichNum(259,329) = 1 + StoichNum(259,330) = 1 + StoichNum(259,331) = 0.65 + StoichNum(259,332) = 0.65 + StoichNum(259,338) = 0.491 + StoichNum(259,343) = 0.08 + StoichNum(259,345) = 1.24 + StoichNum(259,349) = 0.93 + StoichNum(259,351) = 1.24 + StoichNum(259,353) = 1.24 + StoichNum(259,355) = 0.64 + StoichNum(259,356) = 1.21 + StoichNum(259,368) = 1 + StoichNum(259,625) = 1.2 + StoichNum(259,628) = 1.15 + StoichNum(259,756) = -1 + StoichNum(259,770) = 1 + StoichNum(259,772) = 1 + StoichNum(259,774) = 1.5 + StoichNum(259,777) = 0.15 + StoichNum(259,837) = 1 + StoichNum(259,840) = 1 + StoichNum(259,849) = 1 + StoichNum(260,153) = 1 + StoichNum(260,160) = 1 + StoichNum(260,161) = -1 + StoichNum(260,649) = 1 + StoichNum(260,669) = -1 + StoichNum(260,670) = -1 + StoichNum(260,671) = -1 + StoichNum(260,672) = -1 + StoichNum(260,673) = -1 + StoichNum(260,674) = -1 + StoichNum(260,675) = -1 StoichNum(260,676) = 1 StoichNum(260,677) = 1 StoichNum(260,678) = 1 - StoichNum(260,679) = 1 - StoichNum(260,680) = 1 - StoichNum(260,681) = 1 - StoichNum(260,682) = 1 - StoichNum(260,683) = 1 - StoichNum(260,719) = 1 - StoichNum(260,724) = 1 - StoichNum(260,725) = 1 - StoichNum(260,726) = 1 - StoichNum(260,727) = 1 - StoichNum(260,766) = -1 + StoichNum(260,781) = -1 + StoichNum(261,51) = 0.95 + StoichNum(261,52) = 1 StoichNum(261,53) = -1 - StoichNum(261,54) = -1 - StoichNum(261,59) = 1 - StoichNum(261,61) = 1 - StoichNum(261,66) = 1 - StoichNum(261,68) = 0.32 - StoichNum(261,70) = 0.86 - StoichNum(261,72) = 0.93 - StoichNum(261,75) = 1 - StoichNum(261,86) = 0.5 - StoichNum(261,90) = 0.15 - StoichNum(261,94) = 0.75 - StoichNum(261,95) = 0.75 - StoichNum(261,97) = 0.16 - StoichNum(261,98) = 0.38 - StoichNum(261,100) = 0.5 - StoichNum(261,102) = 0.5 - StoichNum(261,103) = 1 - StoichNum(261,105) = 2 - StoichNum(261,106) = 2 - StoichNum(261,107) = 1 - StoichNum(261,108) = 1 - StoichNum(261,115) = 0.5 - StoichNum(261,126) = 1 - StoichNum(261,132) = 0.64 - StoichNum(261,144) = 0.32 - StoichNum(261,146) = 1 - StoichNum(261,148) = 0.75 - StoichNum(261,149) = 1 - StoichNum(261,156) = 1 - StoichNum(261,157) = 1 - StoichNum(261,158) = 1 - StoichNum(261,159) = 1 - StoichNum(261,182) = -1 - StoichNum(261,293) = 1 - StoichNum(261,294) = 1 - StoichNum(261,296) = 1 - StoichNum(261,345) = 1 - StoichNum(261,346) = 1 - StoichNum(261,347) = 1 - StoichNum(261,348) = 1 - StoichNum(261,349) = 1 - StoichNum(261,393) = 1 - StoichNum(261,773) = -1 - StoichNum(261,774) = -1 - StoichNum(261,791) = 1 - StoichNum(261,795) = 1 - StoichNum(261,796) = 1 - StoichNum(261,797) = 0.32 - StoichNum(261,867) = 1 - StoichNum(262,10) = -1 - StoichNum(262,11) = 1 - StoichNum(262,12) = 1 - StoichNum(262,17) = 1 - StoichNum(262,26) = 1 - StoichNum(262,29) = 1 - StoichNum(262,30) = 2 - StoichNum(262,31) = 0.87 - StoichNum(262,33) = 1 - StoichNum(262,36) = -1 - StoichNum(262,50) = 1 - StoichNum(262,52) = -1 - StoichNum(262,53) = 0.05 - StoichNum(262,66) = 1 - StoichNum(262,70) = 0.57 - StoichNum(262,71) = 1 - StoichNum(262,75) = 1 - StoichNum(262,85) = 0.75 - StoichNum(262,86) = 1.25 - StoichNum(262,89) = 0.15 - StoichNum(262,94) = 0.75 - StoichNum(262,95) = 0.75 - StoichNum(262,97) = 0.75 - StoichNum(262,98) = 0.95 - StoichNum(262,99) = 0.5 - StoichNum(262,100) = 0.75 - StoichNum(262,101) = 0.75 - StoichNum(262,102) = 1.25 - StoichNum(262,115) = 0.5 - StoichNum(262,116) = 0.732 - StoichNum(262,126) = 1 - StoichNum(262,129) = 1 - StoichNum(262,130) = 1 - StoichNum(262,142) = 1 - StoichNum(262,143) = 1 - StoichNum(262,145) = 1 - StoichNum(262,148) = 0.39 - StoichNum(262,149) = 1 - StoichNum(262,164) = 1 - StoichNum(262,166) = 1 - StoichNum(262,181) = -1 - StoichNum(262,198) = 1 - StoichNum(262,199) = 1 - StoichNum(262,223) = -1 - StoichNum(262,244) = 1 + StoichNum(261,54) = 1 + StoichNum(261,55) = -1 + StoichNum(261,69) = 1 + StoichNum(261,70) = 0.919 + StoichNum(261,87) = 0.15 + StoichNum(261,88) = 0.15 + StoichNum(261,97) = 0.3 + StoichNum(261,98) = 0.5 + StoichNum(261,116) = 1 + StoichNum(261,118) = 1 + StoichNum(261,129) = 0.78 + StoichNum(261,131) = -2 + StoichNum(261,132) = -1 + StoichNum(261,133) = -1 + StoichNum(261,134) = -0.1 + StoichNum(261,135) = -0.1 + StoichNum(261,136) = -1 + StoichNum(261,137) = -1 + StoichNum(261,138) = -1 + StoichNum(261,139) = -1 + StoichNum(261,140) = -1 + StoichNum(261,141) = -1 + StoichNum(261,142) = -1 + StoichNum(261,143) = -1 + StoichNum(261,166) = 1 + StoichNum(261,329) = -1 + StoichNum(261,341) = -1 + StoichNum(261,350) = -1 + StoichNum(261,351) = -1 + StoichNum(261,372) = 0.3 + StoichNum(261,379) = 0.3 + StoichNum(261,413) = 0.018 + StoichNum(261,487) = -1 + StoichNum(261,488) = -1 + StoichNum(261,521) = 0.38 + StoichNum(261,524) = 0.12 + StoichNum(261,526) = 0.04 + StoichNum(261,537) = 0.097 + StoichNum(261,541) = 1 + StoichNum(261,543) = 0.36 + StoichNum(261,544) = 0.758 + StoichNum(261,547) = 0.175 + StoichNum(261,548) = 0.087 + StoichNum(261,552) = 0.35 + StoichNum(261,561) = 0.3 + StoichNum(261,568) = 1 + StoichNum(261,569) = 1 + StoichNum(261,571) = -1 + StoichNum(261,596) = -1 + StoichNum(261,753) = 0.12 + StoichNum(261,755) = 0.7 + StoichNum(261,757) = 1 + StoichNum(261,759) = 0.85 + StoichNum(261,764) = 1 + StoichNum(261,766) = 1 + StoichNum(261,768) = 1 + StoichNum(261,769) = 1 + StoichNum(261,832) = 1 + StoichNum(261,852) = 1 + StoichNum(261,853) = 1 + StoichNum(261,854) = 1 + StoichNum(261,855) = 0.5 + StoichNum(261,856) = 0.53 + StoichNum(261,857) = 0.429 + StoichNum(261,858) = 0.125 + StoichNum(261,860) = 0.262 + StoichNum(261,861) = 1.01 + StoichNum(262,231) = -1 + StoichNum(262,250) = 1 StoichNum(262,262) = -1 - StoichNum(262,290) = 1 - StoichNum(262,295) = 1 - StoichNum(262,336) = 1 - StoichNum(262,338) = 1 - StoichNum(262,339) = 1 - StoichNum(262,340) = 1 - StoichNum(262,341) = 0.06 - StoichNum(262,342) = 0.06 - StoichNum(262,343) = 1 - StoichNum(262,344) = 1 - StoichNum(262,353) = 0.23 - StoichNum(262,355) = 0.75 - StoichNum(262,363) = 0.04 - StoichNum(262,365) = 0.231 - StoichNum(262,367) = 1.04 - StoichNum(262,368) = 0.385 - StoichNum(262,369) = 0.385 - StoichNum(262,372) = 0.287 - StoichNum(262,375) = 1 - StoichNum(262,376) = 0.965 - StoichNum(262,378) = 0.287 - StoichNum(262,380) = 0.287 - StoichNum(262,382) = 0.202 - StoichNum(262,383) = 0.504 - StoichNum(262,392) = 1 - StoichNum(262,396) = 0.827 - StoichNum(262,399) = 0.3 - StoichNum(262,400) = 0.3 - StoichNum(262,401) = 0.063 - StoichNum(262,403) = 0.063 - StoichNum(262,405) = 1 - StoichNum(262,406) = 0.3 - StoichNum(262,407) = 1 - StoichNum(262,408) = 0.3 - StoichNum(262,409) = 2 - StoichNum(262,410) = 2 - StoichNum(262,411) = 2 - StoichNum(262,415) = 2 - StoichNum(262,416) = 1 - StoichNum(262,417) = 2 - StoichNum(262,418) = 1 - StoichNum(262,420) = 1 - StoichNum(262,424) = 1 - StoichNum(262,427) = 0.085 - StoichNum(262,428) = 0.165 - StoichNum(262,432) = 0.5 - StoichNum(262,440) = 0.018 - StoichNum(262,441) = 0.018 - StoichNum(262,443) = 0.716 - StoichNum(262,445) = 0.14 - StoichNum(262,447) = 0.706 - StoichNum(262,449) = 0.14 - StoichNum(262,469) = 0.65 - StoichNum(262,471) = 1 - StoichNum(262,488) = 0.059 - StoichNum(262,489) = 0.272 - StoichNum(262,492) = 0.599 - StoichNum(262,493) = 1 - StoichNum(262,497) = 0.031 - StoichNum(262,498) = 0.065 - StoichNum(262,500) = 0.065 - StoichNum(262,501) = 0.142 - StoichNum(262,503) = 0.104 - StoichNum(262,504) = 0.383 - StoichNum(262,507) = 0.527 - StoichNum(262,509) = 1.86 - StoichNum(262,510) = 0.563 - StoichNum(262,512) = 0.645 - StoichNum(262,513) = 1.577 - StoichNum(262,514) = 1 - StoichNum(262,516) = 1 - StoichNum(262,518) = 1 - StoichNum(262,534) = 0.126 - StoichNum(262,535) = 0.088 - StoichNum(262,536) = 0.249 - StoichNum(262,538) = 0.34 - StoichNum(262,548) = 0.6 - StoichNum(262,551) = 0.12 - StoichNum(262,553) = 0.241 - StoichNum(262,570) = 0.05 - StoichNum(262,571) = 0.242 - StoichNum(262,573) = 0.083 - StoichNum(262,574) = 0.5 - StoichNum(262,575) = 0.25 - StoichNum(262,577) = 0.14 - StoichNum(262,579) = 1 - StoichNum(262,585) = 1 - StoichNum(262,594) = 0.022 - StoichNum(262,597) = 0.5 - StoichNum(262,599) = 1 - StoichNum(262,604) = 1 - StoichNum(262,610) = 0.8 - StoichNum(262,611) = 2 - StoichNum(262,622) = 1 - StoichNum(262,648) = 1 - StoichNum(262,649) = 1 - StoichNum(262,662) = 1 - StoichNum(262,763) = 1 - StoichNum(262,764) = -1 - StoichNum(262,765) = -1 - StoichNum(262,780) = 0.9 - StoichNum(262,783) = 1 - StoichNum(262,786) = 1 - StoichNum(262,788) = 1 - StoichNum(262,789) = 1 - StoichNum(262,795) = 1 - StoichNum(262,850) = 1 - StoichNum(262,852) = 1 - StoichNum(262,858) = 1 - StoichNum(262,866) = 1 - StoichNum(262,870) = 1 - StoichNum(262,871) = 1 - StoichNum(262,873) = 1 - StoichNum(262,874) = 1 - StoichNum(262,876) = 0.47 - StoichNum(262,879) = 0.23 - StoichNum(262,880) = 0.75 - StoichNum(262,884) = 1 - StoichNum(262,885) = 1 - StoichNum(262,893) = 1 - StoichNum(262,894) = 1 - StoichNum(262,896) = 1 - StoichNum(262,900) = 0.055 - StoichNum(262,902) = 0.1 - StoichNum(262,906) = 0.55 - StoichNum(262,907) = 0.15 - StoichNum(263,17) = -1 - StoichNum(263,25) = 1 - StoichNum(263,26) = -1 - StoichNum(263,27) = -1 - StoichNum(263,28) = -1 - StoichNum(263,29) = -2 - StoichNum(263,30) = -2 - StoichNum(263,31) = -1 - StoichNum(263,32) = 1 - StoichNum(263,57) = 1 - StoichNum(263,68) = 0.19 - StoichNum(263,78) = 1 - StoichNum(263,85) = -1 - StoichNum(263,86) = -1 - StoichNum(263,94) = -1 - StoichNum(263,95) = -1 - StoichNum(263,97) = -0.91 - StoichNum(263,98) = -1 - StoichNum(263,99) = -1 - StoichNum(263,100) = -1 - StoichNum(263,101) = -1 - StoichNum(263,102) = -1 - StoichNum(263,115) = 0.28 - StoichNum(263,124) = 0.5 - StoichNum(263,125) = 1 - StoichNum(263,126) = 1 - StoichNum(263,129) = -1 - StoichNum(263,130) = -1 - StoichNum(263,141) = 2 - StoichNum(263,143) = -1 + StoichNum(262,263) = -1 + StoichNum(262,651) = -1 + StoichNum(262,652) = -1 + StoichNum(262,653) = -1 + StoichNum(262,654) = -1 + StoichNum(262,655) = -1 + StoichNum(262,656) = -1 + StoichNum(262,657) = -1 + StoichNum(262,796) = -1 + StoichNum(262,797) = -1 + StoichNum(263,10) = -1 + StoichNum(263,11) = 1 + StoichNum(263,12) = 1 + StoichNum(263,17) = 1 + StoichNum(263,26) = 1 + StoichNum(263,29) = 1 + StoichNum(263,30) = 2 + StoichNum(263,31) = 0.87 + StoichNum(263,32) = 0.3 + StoichNum(263,34) = -1 + StoichNum(263,48) = 1 + StoichNum(263,50) = -1 + StoichNum(263,51) = 0.05 + StoichNum(263,64) = 1 + StoichNum(263,68) = 0.64 + StoichNum(263,69) = 1 + StoichNum(263,73) = 1 + StoichNum(263,83) = 0.75 + StoichNum(263,84) = 1.25 + StoichNum(263,87) = 0.15 + StoichNum(263,92) = 0.75 + StoichNum(263,93) = 0.75 + StoichNum(263,95) = 0.75 + StoichNum(263,96) = 0.95 + StoichNum(263,97) = 0.5 + StoichNum(263,98) = 0.75 + StoichNum(263,99) = 0.75 + StoichNum(263,100) = 1.25 + StoichNum(263,111) = 0.5 + StoichNum(263,112) = 0.732 + StoichNum(263,129) = 0.22 + StoichNum(263,132) = 1 + StoichNum(263,134) = 0.9 + StoichNum(263,137) = 0.351 + StoichNum(263,138) = 0.9 + StoichNum(263,141) = 0.9 StoichNum(263,144) = 1 - StoichNum(263,145) = 1 - StoichNum(263,146) = 1 - StoichNum(263,147) = 1 StoichNum(263,148) = 1 - StoichNum(263,149) = 1 - StoichNum(263,156) = 1 - StoichNum(263,157) = 1 - StoichNum(263,160) = 1 - StoichNum(263,162) = -1 - StoichNum(263,163) = 1 - StoichNum(263,164) = 1 - StoichNum(263,165) = 1 - StoichNum(263,166) = 1 - StoichNum(263,197) = 1 - StoichNum(263,228) = 1 - StoichNum(263,244) = -1 - StoichNum(263,261) = 1 - StoichNum(263,290) = -1 - StoichNum(263,291) = 1 - StoichNum(263,297) = 1 - StoichNum(263,335) = 1 - StoichNum(263,355) = -1 - StoichNum(263,356) = 0.5 - StoichNum(263,367) = -1 - StoichNum(263,368) = 0.5 - StoichNum(263,375) = -1 - StoichNum(263,376) = -1 - StoichNum(263,377) = 1 - StoichNum(263,378) = 0.5 - StoichNum(263,396) = 0.407 - StoichNum(263,415) = -1 - StoichNum(263,416) = -1 - StoichNum(263,417) = -1 - StoichNum(263,418) = -1 - StoichNum(263,512) = -1 - StoichNum(263,513) = -1 - StoichNum(263,514) = 1 - StoichNum(263,515) = 1 - StoichNum(263,574) = 0.325 - StoichNum(263,575) = 0.162 - StoichNum(263,579) = 0.65 - StoichNum(263,585) = -1 - StoichNum(263,598) = 0.5 - StoichNum(263,610) = -1 - StoichNum(263,622) = -1 - StoichNum(263,623) = 1 - StoichNum(263,648) = -1 - StoichNum(263,649) = -1 - StoichNum(263,662) = -1 - StoichNum(263,773) = 0.88 - StoichNum(263,775) = 0.3 - StoichNum(263,777) = 1 - StoichNum(263,778) = 2 - StoichNum(263,779) = 0.15 - StoichNum(263,787) = 1 - StoichNum(263,797) = 0.18 - StoichNum(263,798) = 1 - StoichNum(263,807) = 1 - StoichNum(263,808) = 1 + StoichNum(263,150) = 1 + StoichNum(263,165) = -1 + StoichNum(263,180) = 0.25 + StoichNum(263,201) = -1 + StoichNum(263,223) = 1 + StoichNum(263,241) = -1 + StoichNum(263,268) = 1 + StoichNum(263,273) = 1 + StoichNum(263,309) = 1 + StoichNum(263,311) = 1 + StoichNum(263,312) = 1 + StoichNum(263,313) = 1 + StoichNum(263,314) = 0.06 + StoichNum(263,315) = 0.06 + StoichNum(263,316) = 1 + StoichNum(263,317) = 1 + StoichNum(263,326) = 0.23 + StoichNum(263,328) = 0.75 + StoichNum(263,336) = 0.04 + StoichNum(263,338) = 0.231 + StoichNum(263,340) = 1.04 + StoichNum(263,341) = 0.385 + StoichNum(263,342) = 0.385 + StoichNum(263,345) = 0.287 + StoichNum(263,348) = 1 + StoichNum(263,349) = 0.85 + StoichNum(263,351) = 0.287 + StoichNum(263,353) = 0.287 + StoichNum(263,355) = 0.202 + StoichNum(263,356) = 0.504 + StoichNum(263,365) = 1 + StoichNum(263,369) = 0.827 + StoichNum(263,372) = 0.3 + StoichNum(263,373) = 0.3 + StoichNum(263,374) = 0.063 + StoichNum(263,376) = 0.063 + StoichNum(263,378) = 1 + StoichNum(263,379) = 0.3 + StoichNum(263,380) = 1 + StoichNum(263,381) = 0.3 + StoichNum(263,382) = 2 + StoichNum(263,383) = 2 + StoichNum(263,384) = 2 + StoichNum(263,388) = 2 + StoichNum(263,389) = 1 + StoichNum(263,390) = 2 + StoichNum(263,391) = 1 + StoichNum(263,393) = 1 + StoichNum(263,397) = 1 + StoichNum(263,400) = 0.085 + StoichNum(263,401) = 0.165 + StoichNum(263,405) = 0.5 + StoichNum(263,413) = 0.018 + StoichNum(263,414) = 0.018 + StoichNum(263,416) = 0.716 + StoichNum(263,418) = 0.14 + StoichNum(263,420) = 0.706 + StoichNum(263,422) = 0.14 + StoichNum(263,442) = 0.65 + StoichNum(263,444) = 1 + StoichNum(263,461) = 0.059 + StoichNum(263,462) = 0.272 + StoichNum(263,465) = 0.599 + StoichNum(263,466) = 1 + StoichNum(263,470) = 0.031 + StoichNum(263,471) = 0.065 + StoichNum(263,473) = 0.065 + StoichNum(263,474) = 0.142 + StoichNum(263,476) = 0.104 + StoichNum(263,477) = 0.383 + StoichNum(263,480) = 0.527 + StoichNum(263,482) = 1.86 + StoichNum(263,483) = 0.563 + StoichNum(263,485) = 0.645 + StoichNum(263,486) = 1.577 + StoichNum(263,487) = 1 + StoichNum(263,489) = 1 + StoichNum(263,491) = 1 + StoichNum(263,507) = 0.126 + StoichNum(263,508) = 0.088 + StoichNum(263,509) = 0.249 + StoichNum(263,511) = 0.34 + StoichNum(263,521) = 0.6 + StoichNum(263,524) = 0.12 + StoichNum(263,526) = 0.241 + StoichNum(263,543) = 0.05 + StoichNum(263,544) = 0.242 + StoichNum(263,546) = 0.083 + StoichNum(263,547) = 0.5 + StoichNum(263,548) = 0.25 + StoichNum(263,550) = 0.14 + StoichNum(263,552) = 1 + StoichNum(263,558) = 1 + StoichNum(263,567) = 0.022 + StoichNum(263,570) = 0.5 + StoichNum(263,572) = 1 + StoichNum(263,577) = 1 + StoichNum(263,583) = 0.8 + StoichNum(263,584) = 2 + StoichNum(263,595) = 1 + StoichNum(263,621) = 1 + StoichNum(263,622) = 1 + StoichNum(263,635) = 1 + StoichNum(263,743) = 1 + StoichNum(263,744) = -1 + StoichNum(263,745) = -1 + StoichNum(263,760) = 0.9 + StoichNum(263,763) = 1 + StoichNum(263,766) = 1 + StoichNum(263,768) = 1 + StoichNum(263,769) = 1 + StoichNum(263,775) = 1 + StoichNum(263,830) = 1 + StoichNum(263,832) = 1 + StoichNum(263,838) = 1 + StoichNum(263,846) = 1 + StoichNum(263,850) = 1 StoichNum(263,851) = 1 - StoichNum(263,880) = 0.488 - StoichNum(264,326) = 1 - StoichNum(264,328) = -1 - StoichNum(264,329) = 1 - StoichNum(264,719) = 1 - StoichNum(264,728) = -1 - StoichNum(264,729) = -1 - StoichNum(264,730) = -1 - StoichNum(264,731) = -1 - StoichNum(264,835) = -1 - StoichNum(265,305) = -1 - StoichNum(265,307) = -1 - StoichNum(265,308) = 1 - StoichNum(265,310) = 1 - StoichNum(265,313) = -1 - StoichNum(265,314) = -1 - StoichNum(265,315) = 1 - StoichNum(265,321) = 1 - StoichNum(265,322) = 1 - StoichNum(265,324) = -1 - StoichNum(265,325) = -1 - StoichNum(265,326) = 1 - StoichNum(265,327) = 1 - StoichNum(265,330) = 1 - StoichNum(265,331) = 1 - StoichNum(265,334) = 1 - StoichNum(265,335) = 1 - StoichNum(265,834) = 2 - StoichNum(265,835) = 1 - StoichNum(265,836) = 1 - StoichNum(265,837) = 1 - StoichNum(265,838) = 1 - StoichNum(265,839) = 1 - StoichNum(265,840) = 1 - StoichNum(265,841) = 1 - StoichNum(265,842) = 1 - StoichNum(265,843) = 2 - StoichNum(265,844) = 1 - StoichNum(265,845) = 1 - StoichNum(265,848) = 1 - StoichNum(265,849) = 1 - StoichNum(266,310) = 1 - StoichNum(266,311) = 1 - StoichNum(266,312) = -1 - StoichNum(266,313) = -1 - StoichNum(266,719) = -1 - StoichNum(266,724) = -1 - StoichNum(266,725) = -1 - StoichNum(266,726) = -1 - StoichNum(266,727) = -1 - StoichNum(266,840) = -1 - StoichNum(267,243) = 1 - StoichNum(267,247) = 1 - StoichNum(267,248) = 1 - StoichNum(267,250) = -1 - StoichNum(267,251) = 1 - StoichNum(267,252) = 1 - StoichNum(267,269) = 1 - StoichNum(267,677) = 1 - StoichNum(267,690) = -1 - StoichNum(267,691) = -1 - StoichNum(267,692) = -1 - StoichNum(267,693) = -1 - StoichNum(267,694) = -1 - StoichNum(267,818) = -1 - StoichNum(268,191) = -1 - StoichNum(268,192) = -1 - StoichNum(268,193) = -1 - StoichNum(268,194) = -1 - StoichNum(268,195) = -1 - StoichNum(268,196) = -1 - StoichNum(268,197) = -1 - StoichNum(268,198) = -1 - StoichNum(268,199) = -1 - StoichNum(268,205) = -1 - StoichNum(268,206) = -1 - StoichNum(268,224) = -1 - StoichNum(268,225) = -1 - StoichNum(268,226) = -1 - StoichNum(268,227) = -1 - StoichNum(268,228) = -1 - StoichNum(268,229) = -1 - StoichNum(268,230) = -1 - StoichNum(268,231) = -1 - StoichNum(268,232) = -1 - StoichNum(268,233) = -1 - StoichNum(268,234) = -1 - StoichNum(268,235) = -1 - StoichNum(268,236) = -1 - StoichNum(268,237) = -1 - StoichNum(268,238) = -1 - StoichNum(268,239) = -1 - StoichNum(268,240) = -1 - StoichNum(268,241) = -1 - StoichNum(268,242) = -1 - StoichNum(268,759) = 1 - StoichNum(268,853) = 1 - StoichNum(269,12) = -1 - StoichNum(269,14) = -1 - StoichNum(269,15) = 1 - StoichNum(269,18) = -2 - StoichNum(269,19) = -2 - StoichNum(269,20) = -1 - StoichNum(269,21) = -1 - StoichNum(269,22) = 1 - StoichNum(269,24) = -1 - StoichNum(269,25) = -1 - StoichNum(269,31) = -1 - StoichNum(269,32) = -1 - StoichNum(269,34) = -1 - StoichNum(269,36) = -1 - StoichNum(269,37) = -1 - StoichNum(269,38) = -1 - StoichNum(269,39) = -1 - StoichNum(269,40) = -1 - StoichNum(269,43) = -1 - StoichNum(269,44) = 1 - StoichNum(269,46) = -1 - StoichNum(269,49) = -1 - StoichNum(269,50) = -1 - StoichNum(269,53) = -1 - StoichNum(269,58) = -1 - StoichNum(269,62) = -1 - StoichNum(269,63) = -1 - StoichNum(269,67) = -1 - StoichNum(269,77) = -1 - StoichNum(269,78) = -1 - StoichNum(269,79) = -1 - StoichNum(269,84) = -1 - StoichNum(269,89) = 0.15 - StoichNum(269,90) = 0.15 - StoichNum(269,93) = -1 - StoichNum(269,103) = -1 - StoichNum(269,104) = -1 - StoichNum(269,113) = 0.44 - StoichNum(269,114) = -1 - StoichNum(269,115) = 0.36 - StoichNum(269,116) = -0.773 - StoichNum(269,119) = -1 - StoichNum(269,120) = -1 - StoichNum(269,123) = -1 - StoichNum(269,131) = -0.209 - StoichNum(269,132) = -0.36 - StoichNum(269,133) = -0.36 - StoichNum(269,134) = -0.209 - StoichNum(269,135) = -0.209 - StoichNum(269,136) = -1 - StoichNum(269,137) = -0.209 - StoichNum(269,139) = -1 - StoichNum(269,164) = -1 - StoichNum(269,165) = -1 - StoichNum(269,167) = -1 - StoichNum(269,171) = -1 - StoichNum(269,176) = -1 - StoichNum(269,177) = 1 - StoichNum(269,178) = 1 - StoichNum(269,179) = -1 - StoichNum(269,188) = -1 - StoichNum(269,189) = -1 - StoichNum(269,190) = -1 - StoichNum(269,191) = 2 - StoichNum(269,194) = 1 - StoichNum(269,197) = 1 - StoichNum(269,202) = -1 - StoichNum(269,203) = -1 - StoichNum(269,204) = 1 - StoichNum(269,208) = -1 - StoichNum(269,213) = 1 - StoichNum(269,215) = 1 - StoichNum(269,216) = 2 - StoichNum(269,223) = 1 - StoichNum(269,224) = 0.67 - StoichNum(269,225) = 0.65 - StoichNum(269,243) = -1 - StoichNum(269,245) = -1 - StoichNum(269,246) = -1 - StoichNum(269,247) = -1 - StoichNum(269,248) = -1 - StoichNum(269,249) = -1 - StoichNum(269,250) = -1 - StoichNum(269,251) = -1 - StoichNum(269,252) = -1 - StoichNum(269,253) = -1 - StoichNum(269,254) = -1 - StoichNum(269,255) = -1 - StoichNum(269,256) = -1 - StoichNum(269,257) = -1 - StoichNum(269,258) = -1 - StoichNum(269,259) = -1 - StoichNum(269,260) = -1 - StoichNum(269,267) = 1 - StoichNum(269,326) = -1 - StoichNum(269,327) = -1 - StoichNum(269,328) = -1 - StoichNum(269,335) = -1 - StoichNum(269,336) = -1 - StoichNum(269,337) = -1 - StoichNum(269,351) = -1 - StoichNum(269,352) = -1 - StoichNum(269,358) = 0.85 - StoichNum(269,359) = 0.85 - StoichNum(269,362) = -1 - StoichNum(269,363) = 0.85 - StoichNum(269,370) = -0.51 - StoichNum(269,384) = -1 - StoichNum(269,385) = -1 - StoichNum(269,391) = -1 - StoichNum(269,392) = -1 - StoichNum(269,393) = -1 - StoichNum(269,394) = -1 - StoichNum(269,395) = -1 - StoichNum(269,396) = 0.28 - StoichNum(269,397) = -1 - StoichNum(269,398) = -1 - StoichNum(269,399) = 0.5 - StoichNum(269,400) = 0.5 - StoichNum(269,401) = 0.063 - StoichNum(269,403) = 0.063 - StoichNum(269,405) = 1 - StoichNum(269,406) = 1.5 - StoichNum(269,407) = 1 - StoichNum(269,408) = 1.5 - StoichNum(269,412) = 1 - StoichNum(269,413) = 1 - StoichNum(269,414) = 1 - StoichNum(269,416) = 0.5 - StoichNum(269,418) = 0.5 - StoichNum(269,422) = 0.55 - StoichNum(269,426) = 0.55 - StoichNum(269,427) = 0.085 - StoichNum(269,428) = 0.165 - StoichNum(269,431) = 0.065 - StoichNum(269,433) = -1 - StoichNum(269,434) = -1 - StoichNum(269,436) = -1 - StoichNum(269,438) = -1 - StoichNum(269,439) = -1 - StoichNum(269,440) = -0.595 - StoichNum(269,441) = -0.255 - StoichNum(269,442) = 1 - StoichNum(269,445) = 0.275 - StoichNum(269,446) = 1 - StoichNum(269,449) = 0.275 - StoichNum(269,451) = 1 - StoichNum(269,453) = 1.3 - StoichNum(269,454) = -1 - StoichNum(269,455) = -1 - StoichNum(269,456) = -1 - StoichNum(269,457) = -1 - StoichNum(269,458) = -1 - StoichNum(269,460) = 1 - StoichNum(269,461) = 0.65 - StoichNum(269,465) = 1 - StoichNum(269,468) = 0.65 - StoichNum(269,469) = 0.65 - StoichNum(269,472) = 1 - StoichNum(269,473) = 1 - StoichNum(269,474) = 2 - StoichNum(269,475) = 1 - StoichNum(269,476) = 2 - StoichNum(269,477) = -1 - StoichNum(269,478) = -1 - StoichNum(269,479) = -1 - StoichNum(269,480) = -1 - StoichNum(269,481) = -1 - StoichNum(269,482) = -1 - StoichNum(269,483) = -1 - StoichNum(269,484) = -1 - StoichNum(269,485) = -0.4 - StoichNum(269,486) = -0.4 - StoichNum(269,488) = 0.518 - StoichNum(269,492) = 0.599 - StoichNum(269,497) = 0.582 - StoichNum(269,500) = 0.506 - StoichNum(269,503) = 0.379 - StoichNum(269,507) = 0.527 - StoichNum(269,524) = -1 - StoichNum(269,525) = -1 - StoichNum(269,528) = -1 - StoichNum(269,529) = -1 - StoichNum(269,530) = -1 - StoichNum(269,532) = 1 - StoichNum(269,533) = 1 - StoichNum(269,534) = 1.147 - StoichNum(269,535) = 0.646 - StoichNum(269,536) = 0.435 - StoichNum(269,538) = 0.096 - StoichNum(269,540) = -1 - StoichNum(269,541) = -0.756 - StoichNum(269,543) = 1 - StoichNum(269,544) = -1 - StoichNum(269,546) = 0.82 - StoichNum(269,547) = -1 - StoichNum(269,548) = 0.08 - StoichNum(269,549) = -1 - StoichNum(269,550) = -1 - StoichNum(269,551) = 0.12 - StoichNum(269,552) = 0.68 - StoichNum(269,553) = -0.98 - StoichNum(269,556) = -1 - StoichNum(269,559) = 1 - StoichNum(269,562) = 1 - StoichNum(269,564) = -0.715 - StoichNum(269,566) = -1 - StoichNum(269,568) = -1 - StoichNum(269,569) = -1 - StoichNum(269,570) = 0.665 - StoichNum(269,573) = 0.59 - StoichNum(269,574) = 0.5 - StoichNum(269,575) = -0.415 - StoichNum(269,576) = 1 - StoichNum(269,581) = 0.5 - StoichNum(269,587) = -1 - StoichNum(269,588) = -0.3 - StoichNum(269,589) = -0.5 - StoichNum(269,590) = -0.556 - StoichNum(269,593) = -1 - StoichNum(269,594) = -0.7 - StoichNum(269,596) = -1 - StoichNum(269,597) = -0.5 - StoichNum(269,598) = 0.5 - StoichNum(269,605) = -1 - StoichNum(269,606) = -0.364 - StoichNum(269,613) = -1 - StoichNum(269,614) = -1 - StoichNum(269,616) = -1 - StoichNum(269,617) = -1 - StoichNum(269,618) = -1 - StoichNum(269,619) = 1 - StoichNum(269,624) = -1 - StoichNum(269,626) = -1 - StoichNum(269,628) = -1 - StoichNum(269,629) = 1 - StoichNum(269,631) = -1 - StoichNum(269,633) = 0.2 - StoichNum(269,636) = -1 - StoichNum(269,638) = -1 - StoichNum(269,643) = -1 - StoichNum(269,646) = -1 - StoichNum(269,650) = -0.75 - StoichNum(269,651) = 0.1 - StoichNum(269,653) = -0.75 - StoichNum(269,654) = 0.1 - StoichNum(269,673) = -1 - StoichNum(269,674) = -1 - StoichNum(269,762) = 2 - StoichNum(269,763) = 1 - StoichNum(269,766) = 1 - StoichNum(269,767) = 1 - StoichNum(269,768) = 1 - StoichNum(269,780) = 0.07 - StoichNum(269,790) = 1 - StoichNum(269,791) = 1 - StoichNum(269,792) = 1 - StoichNum(269,793) = 1 - StoichNum(269,794) = 1 - StoichNum(269,795) = 1 - StoichNum(269,796) = 1 - StoichNum(269,798) = 1 - StoichNum(269,801) = 1 + StoichNum(263,853) = 1 + StoichNum(263,854) = 1 + StoichNum(263,856) = 0.47 + StoichNum(263,859) = 0.23 + StoichNum(263,860) = 0.75 + StoichNum(263,864) = 1 + StoichNum(263,865) = 1 + StoichNum(263,873) = 1 + StoichNum(263,874) = 1 + StoichNum(263,876) = 1 + StoichNum(263,880) = 0.055 + StoichNum(263,882) = 0.133 + StoichNum(263,886) = 0.55 + StoichNum(263,887) = 0.15 + StoichNum(264,51) = -1 + StoichNum(264,52) = -1 + StoichNum(264,57) = 1 + StoichNum(264,59) = 1 + StoichNum(264,64) = 1 + StoichNum(264,66) = 0.34 + StoichNum(264,68) = 0.97 + StoichNum(264,70) = 0.919 + StoichNum(264,73) = 1 + StoichNum(264,84) = 0.5 + StoichNum(264,88) = 0.15 + StoichNum(264,92) = 0.75 + StoichNum(264,93) = 0.75 + StoichNum(264,95) = 0.16 + StoichNum(264,96) = 0.38 + StoichNum(264,98) = 0.5 + StoichNum(264,100) = 0.5 + StoichNum(264,101) = 1 + StoichNum(264,103) = 1.6 + StoichNum(264,104) = 1.6 + StoichNum(264,111) = 0.5 + StoichNum(264,122) = 0.64 + StoichNum(264,133) = 0.29 + StoichNum(264,135) = 0.9 + StoichNum(264,137) = 0.675 + StoichNum(264,138) = 0.9 + StoichNum(264,139) = 1 + StoichNum(264,140) = 1 + StoichNum(264,141) = 0.9 + StoichNum(264,166) = -1 + StoichNum(264,271) = 1 + StoichNum(264,272) = 1 + StoichNum(264,274) = 1 + StoichNum(264,318) = 1 + StoichNum(264,319) = 1 + StoichNum(264,320) = 1 + StoichNum(264,321) = 1 + StoichNum(264,322) = 1 + StoichNum(264,366) = 1 + StoichNum(264,753) = -1 + StoichNum(264,754) = -1 + StoichNum(264,771) = 1 + StoichNum(264,775) = 1 + StoichNum(264,776) = 1 + StoichNum(264,777) = 0.34 + StoichNum(264,847) = 1 + StoichNum(265,3) = -1 + StoichNum(265,6) = -1 + StoichNum(265,35) = 1 + StoichNum(265,36) = -1 + StoichNum(265,50) = 1 + StoichNum(265,52) = 1 + StoichNum(265,74) = 1 + StoichNum(265,81) = 1 + StoichNum(265,94) = 1 + StoichNum(265,117) = 1 + StoichNum(265,118) = 1 + StoichNum(265,130) = 1 + StoichNum(265,150) = 1 + StoichNum(265,362) = 1 + StoichNum(265,363) = 1 + StoichNum(265,525) = 0.32 + StoichNum(265,568) = 1 + StoichNum(265,598) = 0.742 + StoichNum(265,600) = 0.5 + StoichNum(265,603) = 0.5 + StoichNum(265,605) = 1 + StoichNum(265,620) = 0.5 + StoichNum(265,638) = 0.5 + StoichNum(265,639) = 1 + StoichNum(265,642) = 2 + StoichNum(265,643) = 1 + StoichNum(265,644) = 2 + StoichNum(265,645) = 1 + StoichNum(265,646) = 1 + StoichNum(265,649) = 1 + StoichNum(265,650) = 1 + StoichNum(265,651) = 1 + StoichNum(265,652) = 1 + StoichNum(265,653) = 1 + StoichNum(265,654) = 1 + StoichNum(265,655) = 1 + StoichNum(265,656) = 1 + StoichNum(265,657) = 1 + StoichNum(265,697) = 1 + StoichNum(265,698) = 1 + StoichNum(265,699) = 1 + StoichNum(265,704) = 1 + StoichNum(265,705) = 1 + StoichNum(265,706) = 1 + StoichNum(265,707) = 1 + StoichNum(265,746) = -1 + StoichNum(266,17) = -1 + StoichNum(266,25) = 1 + StoichNum(266,26) = -1 + StoichNum(266,27) = -1 + StoichNum(266,28) = -1 + StoichNum(266,29) = -2 + StoichNum(266,30) = -2 + StoichNum(266,31) = -1 + StoichNum(266,32) = 0.7 + StoichNum(266,55) = 1 + StoichNum(266,66) = 0.19 + StoichNum(266,76) = 1 + StoichNum(266,83) = -1 + StoichNum(266,84) = -1 + StoichNum(266,88) = 0.85 + StoichNum(266,92) = -1 + StoichNum(266,93) = -1 + StoichNum(266,95) = -0.91 + StoichNum(266,96) = -1 + StoichNum(266,97) = -1 + StoichNum(266,98) = -0.75 + StoichNum(266,99) = -1 + StoichNum(266,100) = -1 + StoichNum(266,111) = 0.28 + StoichNum(266,120) = 0.5 + StoichNum(266,131) = 2 + StoichNum(266,132) = -0.1 + StoichNum(266,133) = 0.9 + StoichNum(266,134) = 0.9 + StoichNum(266,135) = 0.9 + StoichNum(266,136) = 0.9 + StoichNum(266,137) = 0.9 + StoichNum(266,138) = 0.9 + StoichNum(266,139) = 0.9 + StoichNum(266,140) = 0.9 + StoichNum(266,141) = 0.9 + StoichNum(266,142) = 0.9 + StoichNum(266,143) = 1 + StoichNum(266,144) = -1 + StoichNum(266,146) = -1 + StoichNum(266,147) = 1 + StoichNum(266,148) = 1 + StoichNum(266,149) = 1 + StoichNum(266,150) = 1 + StoichNum(266,180) = 0.75 + StoichNum(266,206) = 0.9 + StoichNum(266,207) = 1 + StoichNum(266,223) = -1 + StoichNum(266,240) = 1 + StoichNum(266,268) = -1 + StoichNum(266,269) = 1 + StoichNum(266,275) = 1 + StoichNum(266,308) = 1 + StoichNum(266,328) = -1 + StoichNum(266,329) = 0.5 + StoichNum(266,340) = -1 + StoichNum(266,341) = 0.5 + StoichNum(266,348) = -1 + StoichNum(266,349) = -1 + StoichNum(266,350) = 1 + StoichNum(266,351) = 0.5 + StoichNum(266,369) = 0.407 + StoichNum(266,388) = -1 + StoichNum(266,389) = -1 + StoichNum(266,390) = -1 + StoichNum(266,391) = -1 + StoichNum(266,485) = -1 + StoichNum(266,486) = -1 + StoichNum(266,487) = 1 + StoichNum(266,488) = 1 + StoichNum(266,547) = 0.325 + StoichNum(266,548) = 0.162 + StoichNum(266,552) = 0.65 + StoichNum(266,558) = -1 + StoichNum(266,571) = 0.5 + StoichNum(266,583) = -1 + StoichNum(266,595) = -1 + StoichNum(266,596) = 1 + StoichNum(266,621) = -1 + StoichNum(266,622) = -1 + StoichNum(266,635) = -1 + StoichNum(266,753) = 0.88 + StoichNum(266,755) = 0.3 + StoichNum(266,757) = 1 + StoichNum(266,758) = 2 + StoichNum(266,759) = 0.15 + StoichNum(266,767) = 1 + StoichNum(266,776) = 1 + StoichNum(266,777) = 0.19 + StoichNum(266,778) = 1 + StoichNum(266,787) = 1 + StoichNum(266,788) = 1 + StoichNum(266,831) = 1 + StoichNum(266,860) = 0.488 + StoichNum(267,24) = -1 + StoichNum(267,34) = 1 + StoichNum(267,50) = 1 + StoichNum(267,51) = 0.05 + StoichNum(267,111) = 0.56 + StoichNum(267,112) = 0.505 + StoichNum(267,113) = 1 + StoichNum(267,115) = 2 + StoichNum(267,116) = 1 + StoichNum(267,117) = 2 + StoichNum(267,118) = 1 + StoichNum(267,120) = 0.5 + StoichNum(267,165) = 1 + StoichNum(267,187) = 1 + StoichNum(267,201) = 1 + StoichNum(267,241) = 1 + StoichNum(267,264) = 1 + StoichNum(267,265) = 1 + StoichNum(267,266) = 1 + StoichNum(267,311) = -1 + StoichNum(267,318) = -1 + StoichNum(267,331) = 0.14 + StoichNum(267,332) = 0.14 + StoichNum(267,336) = 0.14 + StoichNum(267,369) = 0.407 + StoichNum(267,372) = 0.6 + StoichNum(267,373) = 0.9 + StoichNum(267,379) = 0.6 + StoichNum(267,381) = 0.9 + StoichNum(267,385) = 1 + StoichNum(267,386) = 1 + StoichNum(267,387) = 1 + StoichNum(267,389) = 0.5 + StoichNum(267,391) = 0.5 + StoichNum(267,395) = 0.55 + StoichNum(267,399) = 0.55 + StoichNum(267,400) = 0.45 + StoichNum(267,401) = 0.37 + StoichNum(267,402) = 0.42 + StoichNum(267,403) = 0.23 + StoichNum(267,404) = 0.638 + StoichNum(267,405) = 1.5 + StoichNum(267,406) = 1 + StoichNum(267,411) = 0.25 + StoichNum(267,412) = 0.33 + StoichNum(267,413) = 0.036 + StoichNum(267,414) = 0.054 + StoichNum(267,433) = 1 + StoichNum(267,434) = 0.13 + StoichNum(267,435) = 0.2 + StoichNum(267,438) = 1 + StoichNum(267,439) = 0.2 + StoichNum(267,441) = 0.13 + StoichNum(267,442) = 0.52 + StoichNum(267,444) = 0.8 + StoichNum(267,445) = 2 + StoichNum(267,458) = 0.6 + StoichNum(267,459) = 0.6 + StoichNum(267,514) = 0.539 + StoichNum(267,515) = 0.33 + StoichNum(267,516) = 0.33 + StoichNum(267,521) = 0.28 + StoichNum(267,522) = 0.036 + StoichNum(267,524) = 0.12 + StoichNum(267,525) = 0.68 + StoichNum(267,528) = 0.77 + StoichNum(267,530) = 0.25 + StoichNum(267,537) = 0.75 + StoichNum(267,538) = 1 + StoichNum(267,540) = 1 + StoichNum(267,541) = 2 + StoichNum(267,542) = 0.84 + StoichNum(267,546) = 0.507 + StoichNum(267,547) = 0.325 + StoichNum(267,548) = 0.488 + StoichNum(267,549) = 1 + StoichNum(267,550) = 0.86 + StoichNum(267,552) = 0.65 + StoichNum(267,560) = 0.25 + StoichNum(267,561) = 1 + StoichNum(267,562) = 1 + StoichNum(267,563) = 0.888 + StoichNum(267,566) = 1 + StoichNum(267,572) = 1 + StoichNum(267,579) = 0.364 + StoichNum(267,589) = 0.2 + StoichNum(267,590) = 0.27 + StoichNum(267,591) = 0.3 + StoichNum(267,619) = 0.15 + StoichNum(267,620) = 0.15 + StoichNum(267,623) = 0.26 + StoichNum(267,624) = 0.5 + StoichNum(267,626) = 0.25 + StoichNum(267,627) = 0.5 + StoichNum(267,628) = 0.05 + StoichNum(267,744) = 1 + StoichNum(267,745) = 1 + StoichNum(267,753) = 0.88 + StoichNum(267,754) = 1 + StoichNum(267,756) = 1 + StoichNum(267,758) = 1 + StoichNum(267,760) = 1 + StoichNum(267,761) = 2 + StoichNum(267,762) = 2 + StoichNum(267,763) = 1 + StoichNum(267,764) = 1 + StoichNum(267,765) = 1 + StoichNum(267,766) = 1 + StoichNum(267,768) = 1 + StoichNum(267,834) = 1 + StoichNum(267,838) = 1 + StoichNum(267,851) = 1 + StoichNum(267,854) = 1 + StoichNum(267,855) = 0.5 + StoichNum(267,857) = 0.571 + StoichNum(267,858) = 0.875 + StoichNum(267,859) = 0.77 + StoichNum(267,862) = 1 + StoichNum(267,863) = 1 + StoichNum(267,868) = 0.888 + StoichNum(267,869) = 0.818 + StoichNum(267,870) = 1 + StoichNum(267,871) = 1 + StoichNum(267,872) = 0.55 + StoichNum(267,875) = 0.55 + StoichNum(267,879) = 0.839 + StoichNum(267,881) = 1 + StoichNum(267,882) = 0.163 + StoichNum(267,885) = 1 + StoichNum(267,889) = 1 + StoichNum(267,891) = 1 + StoichNum(267,894) = 1 + StoichNum(268,301) = 1 + StoichNum(268,303) = -1 + StoichNum(268,304) = 1 + StoichNum(268,684) = -1 + StoichNum(268,685) = -1 + StoichNum(268,699) = 1 + StoichNum(268,708) = -1 + StoichNum(268,709) = -1 + StoichNum(268,710) = -1 + StoichNum(268,711) = -1 + StoichNum(268,815) = -1 + StoichNum(269,283) = -1 + StoichNum(269,285) = -1 + StoichNum(269,286) = 1 + StoichNum(269,288) = 1 + StoichNum(269,291) = -1 + StoichNum(269,292) = -1 + StoichNum(269,293) = 0.2 + StoichNum(269,298) = 0.809 + StoichNum(269,299) = -1 + StoichNum(269,300) = -1 + StoichNum(269,301) = 1 + StoichNum(269,302) = 1 + StoichNum(269,305) = 1 + StoichNum(269,306) = 0.4 + StoichNum(269,307) = 0.996 + StoichNum(269,308) = 1 + StoichNum(269,814) = 2 + StoichNum(269,815) = 1 + StoichNum(269,816) = 1 + StoichNum(269,817) = 1 StoichNum(269,818) = 1 - StoichNum(269,835) = 1 - StoichNum(269,852) = 1 - StoichNum(269,855) = 2 - StoichNum(269,857) = 1 - StoichNum(269,870) = 2 - StoichNum(269,871) = 1 - StoichNum(269,876) = 1 - StoichNum(269,877) = 1 - StoichNum(269,878) = 1.75 - StoichNum(269,879) = 1 - StoichNum(269,880) = 0.75 - StoichNum(269,881) = 0.01 - StoichNum(269,883) = 1 - StoichNum(269,884) = 1 - StoichNum(269,885) = 1 - StoichNum(269,886) = 1 - StoichNum(269,887) = 1 - StoichNum(269,888) = 1.662 - StoichNum(269,889) = 1.637 - StoichNum(269,890) = 1 - StoichNum(269,891) = 1 - StoichNum(269,892) = 0.55 - StoichNum(269,895) = 0.55 - StoichNum(269,896) = 0.67 - StoichNum(269,897) = 1 - StoichNum(269,899) = 0.645 - StoichNum(269,901) = 0.5 - StoichNum(269,902) = 1 - StoichNum(269,903) = 1.25 - StoichNum(269,904) = 1 - StoichNum(269,905) = 0.546 - StoichNum(269,906) = 1 - StoichNum(269,907) = 0.3 - StoichNum(269,908) = 1 - StoichNum(269,910) = 1 - StoichNum(269,912) = 1 - StoichNum(270,13) = 1 - StoichNum(270,16) = -1 - StoichNum(270,22) = 1 - StoichNum(270,26) = 1 - StoichNum(270,37) = -1 - StoichNum(270,40) = 1 - StoichNum(270,41) = -1 - StoichNum(270,42) = 1 - StoichNum(270,43) = 1 - StoichNum(270,44) = 1 - StoichNum(270,45) = 2 - StoichNum(270,46) = 1 - StoichNum(270,47) = -1 - StoichNum(270,48) = 1 - StoichNum(270,55) = -1 - StoichNum(270,56) = 1 - StoichNum(270,57) = 1 - StoichNum(270,59) = 1 - StoichNum(270,61) = 1 - StoichNum(270,64) = 1 - StoichNum(270,66) = 1 - StoichNum(270,68) = 1 - StoichNum(270,70) = 2 - StoichNum(270,71) = 1 - StoichNum(270,72) = 0.93 - StoichNum(270,73) = 1 - StoichNum(270,75) = 2 - StoichNum(270,80) = -1 - StoichNum(270,81) = 1 - StoichNum(270,82) = 1 - StoichNum(270,98) = 1 - StoichNum(270,102) = 1 - StoichNum(270,148) = 1 - StoichNum(270,149) = 1 - StoichNum(270,153) = 1 - StoichNum(270,154) = 1 - StoichNum(270,161) = 2 - StoichNum(270,162) = -1 - StoichNum(270,163) = 1 - StoichNum(270,174) = 1 - StoichNum(270,180) = 1 - StoichNum(270,186) = -1 - StoichNum(270,187) = -1 - StoichNum(270,209) = -1 - StoichNum(270,210) = 1 - StoichNum(270,211) = 1 - StoichNum(270,212) = -1 - StoichNum(270,221) = -1 - StoichNum(270,251) = 1 - StoichNum(270,270) = 1 - StoichNum(270,271) = -1 - StoichNum(270,307) = -1 - StoichNum(270,308) = 1 - StoichNum(270,309) = 2 - StoichNum(270,311) = -1 - StoichNum(270,312) = 1 - StoichNum(270,320) = 1 - StoichNum(270,330) = 1 - StoichNum(270,336) = 1 - StoichNum(270,337) = 1 - StoichNum(270,339) = 1 - StoichNum(270,340) = -1 - StoichNum(270,346) = 1 - StoichNum(270,347) = -1 - StoichNum(270,353) = 0.82 - StoichNum(270,357) = 1 - StoichNum(270,365) = 0.78 - StoichNum(270,369) = 1 - StoichNum(270,371) = 1 - StoichNum(270,372) = 2 - StoichNum(270,376) = 0.5 - StoichNum(270,378) = 1 - StoichNum(270,379) = 1 - StoichNum(270,380) = 2 - StoichNum(270,382) = 0.5 - StoichNum(270,383) = 1 - StoichNum(270,392) = 1 - StoichNum(270,393) = 1 - StoichNum(270,394) = 1 - StoichNum(270,395) = 1 - StoichNum(270,420) = 1 - StoichNum(270,422) = 1 - StoichNum(270,424) = 1 - StoichNum(270,426) = 1 - StoichNum(270,443) = 1 - StoichNum(270,447) = 1 - StoichNum(270,451) = 1 - StoichNum(270,462) = 1 - StoichNum(270,466) = 1 - StoichNum(270,471) = 1 - StoichNum(270,473) = 1 - StoichNum(270,475) = 1 - StoichNum(270,478) = 1 - StoichNum(270,480) = 1 - StoichNum(270,481) = 1 - StoichNum(270,483) = 1 - StoichNum(270,488) = 0.459 - StoichNum(270,489) = 1.728 - StoichNum(270,493) = 1 - StoichNum(270,498) = 1 - StoichNum(270,501) = 1 - StoichNum(270,504) = 1 - StoichNum(270,507) = 0.527 - StoichNum(270,509) = 1.86 - StoichNum(270,510) = 0.563 - StoichNum(270,513) = 0.611 - StoichNum(270,514) = 1 - StoichNum(270,516) = 2 - StoichNum(270,517) = 1 - StoichNum(270,518) = 2 - StoichNum(270,520) = 1 - StoichNum(270,528) = 1 - StoichNum(270,534) = 0.058 - StoichNum(270,536) = 1.065 - StoichNum(270,538) = 1 - StoichNum(270,540) = 1 - StoichNum(270,542) = 1 - StoichNum(270,544) = 0.565 - StoichNum(270,545) = 1.11 - StoichNum(270,546) = 0.09 - StoichNum(270,553) = 0.31 - StoichNum(270,558) = 1 - StoichNum(270,560) = -1 - StoichNum(270,561) = 1 - StoichNum(270,563) = -1 - StoichNum(270,571) = 1 - StoichNum(270,577) = 1 - StoichNum(270,579) = 1 - StoichNum(270,580) = -1 - StoichNum(270,581) = 0.5 - StoichNum(270,582) = 2 - StoichNum(270,584) = 2 - StoichNum(270,585) = 0.7 - StoichNum(270,586) = 1 - StoichNum(270,593) = 1 - StoichNum(270,594) = 0.022 - StoichNum(270,595) = 1 - StoichNum(270,608) = 0.995 - StoichNum(270,609) = 1 - StoichNum(270,613) = 1 - StoichNum(270,620) = 1 - StoichNum(270,621) = 1 - StoichNum(270,634) = 1 - StoichNum(270,635) = -1 - StoichNum(270,637) = 1 - StoichNum(270,638) = 1 - StoichNum(270,639) = -1 - StoichNum(270,640) = 1 - StoichNum(270,641) = 1 - StoichNum(270,645) = -1 - StoichNum(270,646) = 0.5 - StoichNum(270,647) = 1 - StoichNum(270,662) = 1 - StoichNum(270,664) = -1 - StoichNum(270,761) = -1 - StoichNum(270,766) = 1 - StoichNum(270,769) = 1 - StoichNum(270,770) = 1 - StoichNum(270,772) = 1 - StoichNum(270,775) = 0.7 - StoichNum(270,790) = 1 - StoichNum(270,797) = 1 - StoichNum(270,803) = 1 - StoichNum(270,804) = 1 - StoichNum(270,815) = 1 - StoichNum(270,817) = 1 - StoichNum(270,839) = 1 - StoichNum(270,851) = 1 - StoichNum(270,858) = 1 - StoichNum(270,859) = 1 - StoichNum(270,860) = 1 - StoichNum(270,861) = 1 - StoichNum(270,863) = 1 - StoichNum(270,865) = 1 - StoichNum(270,866) = 1 - StoichNum(270,867) = 1 - StoichNum(270,868) = 1 - StoichNum(270,869) = 1 - StoichNum(270,873) = 1 - StoichNum(270,881) = 0.7 - StoichNum(270,882) = 1 - StoichNum(270,892) = 1 - StoichNum(270,893) = 1 - StoichNum(270,894) = 1 - StoichNum(270,895) = 1 - StoichNum(270,896) = 1 - StoichNum(270,898) = 1 - StoichNum(270,899) = 1 - StoichNum(270,900) = 1.555 - StoichNum(270,906) = 0.3 - StoichNum(270,907) = 1 - StoichNum(270,908) = 1 - StoichNum(270,909) = 1 - StoichNum(271,2) = -1 - StoichNum(271,5) = -1 - StoichNum(271,224) = -0.91 - StoichNum(271,246) = 1 - StoichNum(271,249) = -1 - StoichNum(271,261) = 1 - StoichNum(271,262) = 1 - StoichNum(271,264) = 1 - StoichNum(271,265) = 1 - StoichNum(271,266) = 1 - StoichNum(271,286) = 2 - StoichNum(271,287) = 1 - StoichNum(271,288) = 1 - StoichNum(271,289) = 1 - StoichNum(271,291) = 1 - StoichNum(271,292) = 1 - StoichNum(271,295) = 1 - StoichNum(271,296) = 1 - StoichNum(271,297) = 1 - StoichNum(271,298) = 1 - StoichNum(271,299) = 1 - StoichNum(271,300) = 1 - StoichNum(271,301) = 1 - StoichNum(271,302) = 1 - StoichNum(271,303) = 1 - StoichNum(271,669) = -1 - StoichNum(271,676) = -1 - StoichNum(271,678) = -1 - StoichNum(271,686) = -1 - StoichNum(271,690) = -1 - StoichNum(271,694) = 1 - StoichNum(271,696) = -1 - StoichNum(272,170) = 1 - StoichNum(272,171) = -1 + StoichNum(269,819) = 1 + StoichNum(269,820) = 1 + StoichNum(269,821) = 1 + StoichNum(269,822) = 1 + StoichNum(269,823) = 2 + StoichNum(269,824) = 1 + StoichNum(269,825) = 1 + StoichNum(269,828) = 1 + StoichNum(269,829) = 1 + StoichNum(270,288) = 1 + StoichNum(270,289) = 1 + StoichNum(270,290) = -1 + StoichNum(270,291) = -1 + StoichNum(270,697) = -1 + StoichNum(270,698) = -1 + StoichNum(270,699) = -1 + StoichNum(270,704) = -1 + StoichNum(270,705) = -1 + StoichNum(270,706) = -1 + StoichNum(270,707) = -1 + StoichNum(270,820) = -1 + StoichNum(271,222) = 1 + StoichNum(271,226) = 1 + StoichNum(271,227) = 1 + StoichNum(271,229) = -1 + StoichNum(271,230) = 1 + StoichNum(271,231) = 1 + StoichNum(271,248) = 1 + StoichNum(271,651) = 1 + StoichNum(271,664) = -1 + StoichNum(271,665) = -1 + StoichNum(271,666) = -1 + StoichNum(271,667) = -1 + StoichNum(271,668) = -1 + StoichNum(271,798) = -1 + StoichNum(272,175) = -1 + StoichNum(272,176) = -1 + StoichNum(272,177) = -1 StoichNum(272,178) = -1 - StoichNum(272,181) = 1 - StoichNum(272,182) = 1 - StoichNum(272,183) = 1 - StoichNum(272,184) = 1 - StoichNum(272,185) = 1 - StoichNum(272,225) = -0.8 - StoichNum(272,304) = 1 - StoichNum(272,679) = -1 - StoichNum(272,689) = -1 - StoichNum(272,691) = -1 - StoichNum(272,695) = -1 - StoichNum(272,701) = 1 - StoichNum(272,702) = -1 - StoichNum(272,705) = -1 - StoichNum(272,706) = -1 - StoichNum(273,224) = 0.24 - StoichNum(273,226) = 0.75 - StoichNum(273,227) = 0.86 - StoichNum(273,231) = 0.55 - StoichNum(273,232) = 0.88 - StoichNum(273,233) = 0.86 - StoichNum(273,234) = 0.33 - StoichNum(273,236) = 0.69 - StoichNum(273,237) = 0.74 - StoichNum(273,238) = 0.79 - StoichNum(273,239) = 0.75 - StoichNum(273,240) = 0.75 - StoichNum(273,241) = 0.3 - StoichNum(273,244) = -1 - StoichNum(273,245) = -1 - StoichNum(273,246) = -1 - StoichNum(273,250) = 1 - StoichNum(273,263) = 1 - StoichNum(273,267) = 1 - StoichNum(273,268) = -1 - StoichNum(273,269) = -1 - StoichNum(273,270) = -1 - StoichNum(273,271) = -1 - StoichNum(273,272) = -2 - StoichNum(273,273) = -2 - StoichNum(273,274) = -2 - StoichNum(273,277) = -2 - StoichNum(273,278) = 2 - StoichNum(273,280) = 2 - StoichNum(273,281) = -1 + StoichNum(272,179) = -1 + StoichNum(272,180) = -1 + StoichNum(272,186) = -1 + StoichNum(272,202) = -1 + StoichNum(272,203) = -1 + StoichNum(272,204) = -1 + StoichNum(272,205) = -1 + StoichNum(272,206) = -1 + StoichNum(272,207) = -1 + StoichNum(272,208) = -1 + StoichNum(272,209) = -1 + StoichNum(272,210) = -1 + StoichNum(272,211) = -1 + StoichNum(272,212) = -1 + StoichNum(272,213) = -1 + StoichNum(272,214) = -1 + StoichNum(272,215) = -1 + StoichNum(272,216) = -1 + StoichNum(272,217) = -1 + StoichNum(272,218) = -1 + StoichNum(272,219) = -1 + StoichNum(272,220) = -1 + StoichNum(272,221) = -1 + StoichNum(272,739) = 1 + StoichNum(272,833) = 1 + StoichNum(273,152) = -1 + StoichNum(273,154) = -1 + StoichNum(273,155) = 1 + StoichNum(273,156) = 2 + StoichNum(273,158) = 1 + StoichNum(273,159) = -1 + StoichNum(273,160) = 1 + StoichNum(273,162) = 1 + StoichNum(273,163) = 1 + StoichNum(273,164) = -1 + StoichNum(273,165) = -1 + StoichNum(273,166) = -1 + StoichNum(273,167) = -1 + StoichNum(273,168) = -1 + StoichNum(273,169) = -1 + StoichNum(273,170) = -1 + StoichNum(273,172) = 3 + StoichNum(273,173) = 2 + StoichNum(273,174) = 1 + StoichNum(273,200) = 1 + StoichNum(273,203) = 0.6 + StoichNum(273,207) = 0.56 + StoichNum(273,208) = 0.95 + StoichNum(273,209) = 1.4 + StoichNum(273,213) = 0.34 + StoichNum(273,221) = 0.75 + StoichNum(273,259) = 1 + StoichNum(273,260) = 1 StoichNum(273,282) = -1 - StoichNum(273,283) = -1 - StoichNum(273,284) = 1 - StoichNum(273,290) = 1 + StoichNum(273,292) = 1 StoichNum(273,293) = 1 - StoichNum(273,294) = 1 - StoichNum(273,321) = -1 - StoichNum(273,322) = -1 - StoichNum(273,323) = -1 - StoichNum(273,812) = -1 - StoichNum(273,813) = 1 - StoichNum(273,817) = 1 - StoichNum(274,168) = 1 - StoichNum(274,169) = -1 - StoichNum(274,172) = -2 - StoichNum(274,173) = -2 - StoichNum(274,174) = -1 - StoichNum(274,177) = 1 - StoichNum(274,179) = -1 - StoichNum(274,180) = 1 - StoichNum(274,187) = -1 - StoichNum(274,222) = -1 - StoichNum(274,225) = 0.15 - StoichNum(274,228) = 0.44 - StoichNum(274,229) = 0.95 - StoichNum(274,230) = 0.68 - StoichNum(274,234) = 0.31 - StoichNum(274,235) = 0.41 - StoichNum(274,242) = 0.75 - StoichNum(274,281) = -1 - StoichNum(274,282) = -1 - StoichNum(274,283) = -1 - StoichNum(274,314) = -1 - StoichNum(274,315) = -1 - StoichNum(274,316) = -1 - StoichNum(274,800) = -1 - StoichNum(274,803) = 1 - StoichNum(275,680) = -1 - StoichNum(275,687) = -1 - StoichNum(275,699) = -1 - StoichNum(275,703) = -1 - StoichNum(275,705) = 1 - StoichNum(275,720) = -1 - StoichNum(275,724) = -1 - StoichNum(275,728) = -1 - StoichNum(276,681) = -1 - StoichNum(276,688) = -1 - StoichNum(276,700) = -1 - StoichNum(276,704) = -1 - StoichNum(276,706) = 1 - StoichNum(276,721) = -1 - StoichNum(276,725) = -1 - StoichNum(276,729) = -1 - StoichNum(277,1) = -1 - StoichNum(277,4) = -1 - StoichNum(277,8) = -1 - StoichNum(277,13) = -1 - StoichNum(277,14) = -1 - StoichNum(277,15) = -1 - StoichNum(277,16) = -1 - StoichNum(277,17) = -1 - StoichNum(277,113) = 0.15 - StoichNum(277,115) = -1 - StoichNum(277,168) = -1 - StoichNum(277,200) = 1 - StoichNum(277,201) = -1 - StoichNum(277,205) = -1 - StoichNum(277,206) = -1 - StoichNum(277,215) = -1 - StoichNum(277,263) = -1 - StoichNum(277,324) = -1 - StoichNum(277,343) = -1 - StoichNum(277,358) = -1 - StoichNum(277,359) = -1 - StoichNum(277,363) = -1 - StoichNum(277,386) = -1 - StoichNum(277,396) = -1 - StoichNum(277,548) = -1 - StoichNum(277,551) = -1 - StoichNum(277,574) = 0.13 - StoichNum(277,581) = 0.13 - StoichNum(277,598) = 0.13 - StoichNum(277,604) = -1 - StoichNum(277,629) = -1 - StoichNum(277,633) = 0.15 - StoichNum(277,644) = -1 - StoichNum(277,651) = -1 - StoichNum(277,654) = -1 - StoichNum(277,702) = -1 - StoichNum(277,703) = -1 - StoichNum(277,704) = -1 - StoichNum(277,758) = -1 - StoichNum(277,759) = -1 - StoichNum(278,2) = 1 - StoichNum(278,671) = -1 - StoichNum(278,673) = -1 - StoichNum(278,682) = -1 - StoichNum(278,684) = -1 - StoichNum(278,692) = -1 - StoichNum(278,697) = -1 - StoichNum(278,722) = -1 - StoichNum(278,726) = -1 - StoichNum(278,730) = -1 - StoichNum(279,18) = 1 - StoichNum(279,20) = 1 - StoichNum(279,21) = 1 - StoichNum(279,25) = 1 - StoichNum(279,32) = 1 - StoichNum(279,33) = 1 - StoichNum(279,34) = 1 - StoichNum(279,35) = 1 - StoichNum(279,36) = 1 - StoichNum(279,38) = 1 - StoichNum(279,40) = 1 - StoichNum(279,43) = 1 + StoichNum(273,779) = 2 + StoichNum(273,780) = 1 + StoichNum(273,781) = 1 + StoichNum(273,782) = 1 + StoichNum(273,784) = 1 + StoichNum(273,785) = 3 + StoichNum(273,786) = 2 + StoichNum(273,787) = 1 + StoichNum(273,790) = 1 + StoichNum(273,810) = 1 + StoichNum(273,811) = 1 + StoichNum(273,812) = 2 + StoichNum(273,825) = 1 + StoichNum(273,828) = 1 + StoichNum(274,152) = 1 + StoichNum(274,153) = -1 + StoichNum(274,156) = -2 + StoichNum(274,157) = -2 + StoichNum(274,158) = -1 + StoichNum(274,161) = 1 + StoichNum(274,163) = -1 + StoichNum(274,164) = 1 + StoichNum(274,171) = -1 + StoichNum(274,200) = -1 + StoichNum(274,203) = 0.2 + StoichNum(274,207) = 0.44 + StoichNum(274,208) = 0.95 + StoichNum(274,209) = 0.7 + StoichNum(274,213) = 0.31 + StoichNum(274,214) = 0.45 + StoichNum(274,221) = 0.75 + StoichNum(274,259) = -1 + StoichNum(274,260) = -1 + StoichNum(274,261) = -1 + StoichNum(274,292) = -1 + StoichNum(274,293) = -1 + StoichNum(274,780) = -1 + StoichNum(274,783) = 1 + StoichNum(275,2) = -1 + StoichNum(275,5) = -1 + StoichNum(275,202) = -0.88 + StoichNum(275,225) = 1 + StoichNum(275,228) = -1 + StoichNum(275,240) = 1 + StoichNum(275,241) = 1 + StoichNum(275,243) = 1 + StoichNum(275,244) = 1 + StoichNum(275,245) = 1 + StoichNum(275,264) = 2 + StoichNum(275,265) = 1 + StoichNum(275,266) = 1 + StoichNum(275,267) = 1 + StoichNum(275,269) = 1 + StoichNum(275,270) = 1 + StoichNum(275,273) = 1 + StoichNum(275,274) = 1 + StoichNum(275,275) = 1 + StoichNum(275,276) = 1 + StoichNum(275,277) = 1 + StoichNum(275,278) = 1 + StoichNum(275,279) = 1 + StoichNum(275,280) = 1 + StoichNum(275,281) = 1 + StoichNum(275,643) = -1 + StoichNum(275,650) = -1 + StoichNum(275,652) = -1 + StoichNum(275,660) = -1 + StoichNum(275,664) = -1 + StoichNum(275,668) = 1 + StoichNum(275,670) = -1 + StoichNum(276,1) = -1 + StoichNum(276,4) = -1 + StoichNum(276,7) = -1 + StoichNum(276,8) = -1 + StoichNum(276,9) = -1 + StoichNum(276,10) = -1 + StoichNum(276,11) = 1 + StoichNum(276,12) = -1 + StoichNum(276,148) = 1 + StoichNum(276,149) = 0.75 + StoichNum(276,150) = 1 + StoichNum(276,151) = -1 + StoichNum(276,187) = 1 + StoichNum(276,188) = 1 + StoichNum(276,317) = -1 + StoichNum(276,321) = -1 + StoichNum(276,668) = -1 + StoichNum(276,675) = -1 + StoichNum(276,834) = 1 + StoichNum(276,835) = 1 + StoichNum(277,655) = -1 + StoichNum(277,662) = -1 + StoichNum(277,674) = -1 + StoichNum(277,678) = -1 + StoichNum(277,680) = 1 + StoichNum(277,701) = -1 + StoichNum(277,705) = -1 + StoichNum(277,709) = -1 + StoichNum(278,18) = 1 + StoichNum(278,20) = 1 + StoichNum(278,21) = 1 + StoichNum(278,25) = 1 + StoichNum(278,32) = 1 + StoichNum(278,33) = 1 + StoichNum(278,34) = 1 + StoichNum(278,36) = 1 + StoichNum(278,38) = 1 + StoichNum(278,41) = 1 + StoichNum(278,47) = 1 + StoichNum(278,51) = 1 + StoichNum(278,56) = 1 + StoichNum(278,75) = 1 + StoichNum(278,76) = 1 + StoichNum(278,77) = 1 + StoichNum(278,82) = 1 + StoichNum(278,91) = 1 + StoichNum(278,155) = 1 + StoichNum(278,174) = 1 + StoichNum(278,175) = -1 + StoichNum(278,183) = 1 + StoichNum(278,196) = 0.02 + StoichNum(278,228) = 1 + StoichNum(278,229) = 1 + StoichNum(278,232) = 1 + StoichNum(278,235) = 1 + StoichNum(278,236) = 1 + StoichNum(278,237) = 1 + StoichNum(278,238) = 1 + StoichNum(278,239) = 1 + StoichNum(278,267) = 1 + StoichNum(278,302) = 1 + StoichNum(278,303) = 1 + StoichNum(278,308) = 1 + StoichNum(278,314) = -1 + StoichNum(278,315) = -2 + StoichNum(278,322) = -1 + StoichNum(278,323) = -1 + StoichNum(278,637) = 1 + StoichNum(278,642) = -1 + StoichNum(278,649) = -1 + StoichNum(278,651) = -1 + StoichNum(278,664) = 1 + StoichNum(278,665) = 1 + StoichNum(278,666) = 1 + StoichNum(278,667) = 1 + StoichNum(278,669) = 1 + StoichNum(278,670) = 1 + StoichNum(278,671) = 1 + StoichNum(278,672) = 1 + StoichNum(278,699) = -1 + StoichNum(279,13) = -1 + StoichNum(279,22) = -1 + StoichNum(279,26) = -1 + StoichNum(279,27) = -1 + StoichNum(279,37) = -1 + StoichNum(279,43) = -1 StoichNum(279,49) = 1 - StoichNum(279,53) = 1 - StoichNum(279,58) = 1 - StoichNum(279,77) = 1 - StoichNum(279,78) = 1 - StoichNum(279,79) = 1 - StoichNum(279,84) = 1 - StoichNum(279,93) = 1 - StoichNum(279,171) = 1 - StoichNum(279,190) = 1 + StoichNum(279,55) = -1 + StoichNum(279,57) = -1 + StoichNum(279,58) = -1 + StoichNum(279,59) = -1 + StoichNum(279,62) = -1 + StoichNum(279,63) = -1 + StoichNum(279,64) = -1 + StoichNum(279,66) = -1 + StoichNum(279,67) = -1 + StoichNum(279,68) = -1 + StoichNum(279,69) = -1 + StoichNum(279,70) = -1 + StoichNum(279,71) = -1 + StoichNum(279,72) = -1 + StoichNum(279,73) = -1 + StoichNum(279,80) = -1 + StoichNum(279,158) = -1 + StoichNum(279,179) = 1.22 + StoichNum(279,189) = 1 StoichNum(279,191) = -1 - StoichNum(279,202) = 1 - StoichNum(279,217) = 1 - StoichNum(279,249) = 1 - StoichNum(279,250) = 1 - StoichNum(279,253) = 1 - StoichNum(279,256) = 1 - StoichNum(279,257) = 1 - StoichNum(279,258) = 1 - StoichNum(279,259) = 1 - StoichNum(279,260) = 1 - StoichNum(279,289) = 1 - StoichNum(279,327) = 1 - StoichNum(279,328) = 1 - StoichNum(279,335) = 1 - StoichNum(279,341) = -1 - StoichNum(279,342) = -2 - StoichNum(279,349) = -1 - StoichNum(279,350) = -1 - StoichNum(279,663) = 1 - StoichNum(279,668) = -1 - StoichNum(279,675) = -1 - StoichNum(279,677) = -1 - StoichNum(279,690) = 1 - StoichNum(279,691) = 1 - StoichNum(279,692) = 1 - StoichNum(279,693) = 1 - StoichNum(279,695) = 1 - StoichNum(279,696) = 1 - StoichNum(279,697) = 1 - StoichNum(279,698) = 1 - StoichNum(279,719) = -1 - StoichNum(280,13) = -1 - StoichNum(280,22) = -1 - StoichNum(280,26) = -1 - StoichNum(280,27) = -1 - StoichNum(280,39) = -1 - StoichNum(280,45) = -1 - StoichNum(280,51) = 1 - StoichNum(280,57) = -1 - StoichNum(280,59) = -1 - StoichNum(280,60) = -1 - StoichNum(280,61) = -1 - StoichNum(280,64) = -1 - StoichNum(280,65) = -1 - StoichNum(280,66) = -1 - StoichNum(280,68) = -1 - StoichNum(280,69) = -1 - StoichNum(280,70) = -1 - StoichNum(280,71) = -1 - StoichNum(280,72) = -1 - StoichNum(280,73) = -1 - StoichNum(280,74) = -1 - StoichNum(280,75) = -1 - StoichNum(280,82) = -1 - StoichNum(280,174) = -1 - StoichNum(280,196) = 2 - StoichNum(280,209) = 1 - StoichNum(280,211) = -1 - StoichNum(280,219) = 1 - StoichNum(280,220) = -1 - StoichNum(280,270) = -1 - StoichNum(280,305) = -1 - StoichNum(280,306) = 2 - StoichNum(280,320) = -1 - StoichNum(280,330) = -1 - StoichNum(280,339) = -1 - StoichNum(280,346) = -1 - StoichNum(280,353) = -1 - StoichNum(280,365) = -1 - StoichNum(280,371) = -1 - StoichNum(280,372) = -1 - StoichNum(280,419) = -1 - StoichNum(280,420) = -1 - StoichNum(280,421) = -1 - StoichNum(280,422) = -1 - StoichNum(280,423) = -1 - StoichNum(280,424) = -1 - StoichNum(280,425) = -1 - StoichNum(280,426) = -1 - StoichNum(280,443) = -1 - StoichNum(280,444) = -1 - StoichNum(280,447) = -1 - StoichNum(280,448) = -1 - StoichNum(280,451) = -1 - StoichNum(280,452) = -1 - StoichNum(280,462) = -1 - StoichNum(280,463) = -1 - StoichNum(280,466) = -1 - StoichNum(280,467) = -1 - StoichNum(280,470) = -1 - StoichNum(280,471) = -1 - StoichNum(280,473) = -1 - StoichNum(280,475) = -1 - StoichNum(280,489) = -1 - StoichNum(280,490) = -1 - StoichNum(280,493) = -1 - StoichNum(280,494) = -1 - StoichNum(280,498) = -1 - StoichNum(280,499) = -1 - StoichNum(280,501) = -1 - StoichNum(280,502) = -1 - StoichNum(280,504) = -1 - StoichNum(280,505) = -1 - StoichNum(280,518) = -1 - StoichNum(280,519) = -1 - StoichNum(280,520) = -1 - StoichNum(280,521) = -1 - StoichNum(280,536) = -1 - StoichNum(280,537) = -1 - StoichNum(280,538) = -1 - StoichNum(280,539) = -1 - StoichNum(280,542) = -1 - StoichNum(280,545) = -1 - StoichNum(280,558) = -1 - StoichNum(280,561) = -1 - StoichNum(280,571) = -1 - StoichNum(280,572) = -1 - StoichNum(280,577) = -1 - StoichNum(280,578) = -1 - StoichNum(280,579) = -1 - StoichNum(280,582) = -1 - StoichNum(280,608) = -1 - StoichNum(280,620) = -1 - StoichNum(280,634) = -1 - StoichNum(280,640) = -1 - StoichNum(280,761) = 1 - StoichNum(280,767) = 1 - StoichNum(280,771) = 1 - StoichNum(280,838) = 1 - StoichNum(280,856) = -1 - StoichNum(281,14) = 1 - StoichNum(281,15) = -1 - StoichNum(281,17) = 1 - StoichNum(281,20) = -1 - StoichNum(281,21) = 1 - StoichNum(281,22) = -1 - StoichNum(281,23) = -2 - StoichNum(281,24) = 1 - StoichNum(281,26) = 1 - StoichNum(281,28) = -1 - StoichNum(281,30) = 2 - StoichNum(281,31) = 1.74 + StoichNum(279,197) = 1 + StoichNum(279,198) = -1 + StoichNum(279,249) = -1 + StoichNum(279,283) = -1 + StoichNum(279,284) = 2 + StoichNum(279,297) = -1 + StoichNum(279,305) = -1 + StoichNum(279,312) = -1 + StoichNum(279,319) = -1 + StoichNum(279,326) = -1 + StoichNum(279,338) = -1 + StoichNum(279,344) = -1 + StoichNum(279,345) = -1 + StoichNum(279,392) = -1 + StoichNum(279,393) = -1 + StoichNum(279,394) = -1 + StoichNum(279,395) = -1 + StoichNum(279,396) = -1 + StoichNum(279,397) = -1 + StoichNum(279,398) = -1 + StoichNum(279,399) = -1 + StoichNum(279,416) = -1 + StoichNum(279,417) = -1 + StoichNum(279,420) = -1 + StoichNum(279,421) = -1 + StoichNum(279,424) = -1 + StoichNum(279,425) = -1 + StoichNum(279,435) = -1 + StoichNum(279,436) = -1 + StoichNum(279,439) = -1 + StoichNum(279,440) = -1 + StoichNum(279,443) = -1 + StoichNum(279,444) = -1 + StoichNum(279,446) = -1 + StoichNum(279,448) = -1 + StoichNum(279,462) = -1 + StoichNum(279,463) = -1 + StoichNum(279,466) = -1 + StoichNum(279,467) = -1 + StoichNum(279,471) = -1 + StoichNum(279,472) = -1 + StoichNum(279,474) = -1 + StoichNum(279,475) = -1 + StoichNum(279,477) = -1 + StoichNum(279,478) = -1 + StoichNum(279,491) = -1 + StoichNum(279,492) = -1 + StoichNum(279,493) = -1 + StoichNum(279,494) = -1 + StoichNum(279,509) = -1 + StoichNum(279,510) = -1 + StoichNum(279,511) = -1 + StoichNum(279,512) = -1 + StoichNum(279,515) = -1 + StoichNum(279,518) = -1 + StoichNum(279,531) = -1 + StoichNum(279,534) = -1 + StoichNum(279,544) = -1 + StoichNum(279,545) = -1 + StoichNum(279,550) = -1 + StoichNum(279,551) = -1 + StoichNum(279,552) = -1 + StoichNum(279,555) = -1 + StoichNum(279,581) = -1 + StoichNum(279,593) = -1 + StoichNum(279,607) = -1 + StoichNum(279,613) = -1 + StoichNum(279,741) = 1 + StoichNum(279,747) = 1 + StoichNum(279,751) = 1 + StoichNum(279,818) = 1 + StoichNum(279,836) = -1 + StoichNum(280,2) = 1 + StoichNum(280,645) = -1 + StoichNum(280,647) = -1 + StoichNum(280,656) = -1 + StoichNum(280,658) = -1 + StoichNum(280,666) = -1 + StoichNum(280,671) = -1 + StoichNum(280,702) = -1 + StoichNum(280,706) = -1 + StoichNum(280,710) = -1 + StoichNum(281,16) = 1 StoichNum(281,36) = 1 - StoichNum(281,41) = -1 - StoichNum(281,42) = 1 + StoichNum(281,42) = -1 + StoichNum(281,43) = -1 StoichNum(281,44) = -1 + StoichNum(281,45) = -1 StoichNum(281,46) = 1 - StoichNum(281,49) = 1 - StoichNum(281,50) = 1 - StoichNum(281,52) = 1 - StoichNum(281,53) = 0.05 - StoichNum(281,59) = 1 - StoichNum(281,61) = 1 - StoichNum(281,64) = 1 - StoichNum(281,66) = 1 - StoichNum(281,68) = 0.27 - StoichNum(281,73) = 1 - StoichNum(281,85) = 1 - StoichNum(281,86) = 1 - StoichNum(281,87) = -1 - StoichNum(281,88) = -1 - StoichNum(281,89) = -1 - StoichNum(281,90) = -1 - StoichNum(281,91) = -1 - StoichNum(281,92) = -1 - StoichNum(281,94) = 1 - StoichNum(281,95) = 1 - StoichNum(281,97) = 0.64 - StoichNum(281,98) = 0.5 - StoichNum(281,99) = 0.3 - StoichNum(281,100) = 0.5 - StoichNum(281,101) = 1 - StoichNum(281,102) = 0.5 - StoichNum(281,103) = 1 - StoichNum(281,104) = 1 - StoichNum(281,105) = 2 - StoichNum(281,106) = 2 - StoichNum(281,109) = -1 - StoichNum(281,110) = -1 - StoichNum(281,111) = -1 - StoichNum(281,112) = -1 - StoichNum(281,113) = -1 - StoichNum(281,115) = 0.28 - StoichNum(281,116) = 0.773 - StoichNum(281,119) = 1 - StoichNum(281,121) = 1 - StoichNum(281,123) = 1 - StoichNum(281,125) = 1 - StoichNum(281,126) = 1 - StoichNum(281,129) = 1 - StoichNum(281,142) = 1 - StoichNum(281,144) = 0.27 - StoichNum(281,147) = 1 - StoichNum(281,156) = 1 - StoichNum(281,157) = 1 - StoichNum(281,167) = 1 - StoichNum(281,169) = -1 - StoichNum(281,170) = -1 - StoichNum(281,179) = 1 - StoichNum(281,181) = 1 - StoichNum(281,190) = 1 - StoichNum(281,199) = 1 - StoichNum(281,204) = -1 - StoichNum(281,213) = 1 - StoichNum(281,214) = 1 - StoichNum(281,216) = -1 - StoichNum(281,217) = -1 - StoichNum(281,218) = -1 - StoichNum(281,223) = 1 - StoichNum(281,244) = 1 - StoichNum(281,245) = 1 - StoichNum(281,253) = 1 - StoichNum(281,254) = 1 - StoichNum(281,255) = 1 + StoichNum(281,49) = -1 + StoichNum(281,50) = -1 + StoichNum(281,52) = -1 + StoichNum(281,74) = -1 + StoichNum(281,81) = -1 + StoichNum(281,94) = -1 + StoichNum(281,114) = -1 + StoichNum(281,117) = -1 + StoichNum(281,118) = -1 + StoichNum(281,130) = -1 + StoichNum(281,145) = -2 + StoichNum(281,150) = -1 + StoichNum(281,159) = 1 + StoichNum(281,164) = -1 + StoichNum(281,190) = -1 + StoichNum(281,192) = 1 + StoichNum(281,231) = 1 StoichNum(281,262) = 1 - StoichNum(281,265) = 1 - StoichNum(281,266) = -1 - StoichNum(281,267) = -1 - StoichNum(281,269) = -1 - StoichNum(281,286) = 1 - StoichNum(281,287) = 1 - StoichNum(281,288) = 1 - StoichNum(281,290) = 1 - StoichNum(281,293) = 1 - StoichNum(281,294) = 1 - StoichNum(281,295) = 1 - StoichNum(281,325) = -1 - StoichNum(281,329) = -1 - StoichNum(281,353) = 0.82 - StoichNum(281,354) = -1 - StoichNum(281,355) = 1 - StoichNum(281,356) = 0.5 - StoichNum(281,357) = 1 - StoichNum(281,358) = 0.1 - StoichNum(281,359) = 0.1 - StoichNum(281,363) = 0.1 - StoichNum(281,365) = 0.686 - StoichNum(281,366) = -1 - StoichNum(281,367) = 1 - StoichNum(281,368) = 0.5 - StoichNum(281,369) = 1 - StoichNum(281,371) = 1 - StoichNum(281,373) = -1 - StoichNum(281,374) = -1 - StoichNum(281,375) = 2 - StoichNum(281,376) = 0.5 - StoichNum(281,377) = 1 - StoichNum(281,379) = 1 - StoichNum(281,381) = 1 - StoichNum(281,382) = 0.5 - StoichNum(281,396) = 0.16 - StoichNum(281,399) = 0.4 - StoichNum(281,400) = 0.7 - StoichNum(281,401) = -0.937 - StoichNum(281,402) = -1 - StoichNum(281,403) = -0.937 - StoichNum(281,404) = -1 - StoichNum(281,406) = 0.4 - StoichNum(281,408) = 0.7 - StoichNum(281,409) = 2 - StoichNum(281,410) = 2 - StoichNum(281,411) = 2 - StoichNum(281,412) = 1 - StoichNum(281,413) = 1 - StoichNum(281,414) = 1 - StoichNum(281,415) = 2 - StoichNum(281,416) = 1.5 - StoichNum(281,417) = 2 - StoichNum(281,418) = 1.5 - StoichNum(281,420) = 1 - StoichNum(281,422) = 0.45 - StoichNum(281,424) = 1 - StoichNum(281,426) = 0.45 - StoichNum(281,427) = 0.085 - StoichNum(281,428) = 0.165 - StoichNum(281,431) = 0.283 - StoichNum(281,433) = 1 - StoichNum(281,438) = 0.25 - StoichNum(281,439) = 0.33 - StoichNum(281,440) = 0.024 - StoichNum(281,441) = 0.042 - StoichNum(281,443) = 1 - StoichNum(281,445) = -0.725 - StoichNum(281,447) = 1 - StoichNum(281,449) = -0.725 - StoichNum(281,453) = -1 - StoichNum(281,454) = 0.75 - StoichNum(281,455) = 1 - StoichNum(281,457) = 1 - StoichNum(281,459) = 1 - StoichNum(281,461) = -0.35 - StoichNum(281,462) = 1 - StoichNum(281,464) = 1 - StoichNum(281,466) = 1 - StoichNum(281,468) = -0.35 - StoichNum(281,469) = -0.35 - StoichNum(281,471) = 1 - StoichNum(281,472) = 1 - StoichNum(281,474) = -1 - StoichNum(281,476) = -1 - StoichNum(281,485) = 0.4 - StoichNum(281,486) = 0.4 - StoichNum(281,487) = 1 - StoichNum(281,488) = -0.941 - StoichNum(281,489) = 0.272 - StoichNum(281,491) = 1 - StoichNum(281,492) = -0.401 - StoichNum(281,493) = 1 - StoichNum(281,495) = 1 - StoichNum(281,496) = 1 - StoichNum(281,497) = -0.418 - StoichNum(281,498) = 1 - StoichNum(281,500) = -0.494 - StoichNum(281,501) = 1 - StoichNum(281,503) = -0.621 - StoichNum(281,504) = 1 - StoichNum(281,507) = -1 - StoichNum(281,508) = -1 - StoichNum(281,510) = 0.089 - StoichNum(281,511) = 0.064 - StoichNum(281,512) = 0.336 - StoichNum(281,513) = 0.611 - StoichNum(281,515) = 0.159 - StoichNum(281,517) = 0.159 - StoichNum(281,520) = 0.159 - StoichNum(281,522) = 1 - StoichNum(281,534) = -0.674 - StoichNum(281,535) = -0.42 - StoichNum(281,536) = 0.5 - StoichNum(281,538) = 0.904 - StoichNum(281,541) = 0.295 - StoichNum(281,542) = 0.33 - StoichNum(281,543) = -0.67 - StoichNum(281,545) = 0.89 - StoichNum(281,546) = -0.27 - StoichNum(281,548) = 0.1 - StoichNum(281,549) = 0.036 - StoichNum(281,559) = -1 - StoichNum(281,562) = -1 - StoichNum(281,564) = 0.715 - StoichNum(281,566) = 1 - StoichNum(281,568) = 1 - StoichNum(281,569) = 1 - StoichNum(281,570) = -0.695 - StoichNum(281,571) = 0.242 - StoichNum(281,573) = -0.493 - StoichNum(281,574) = -1 - StoichNum(281,577) = 0.86 - StoichNum(281,581) = -1 - StoichNum(281,585) = 0.7 - StoichNum(281,589) = 0.5 - StoichNum(281,590) = 0.444 - StoichNum(281,594) = 0.62 - StoichNum(281,597) = 0.5 + StoichNum(281,263) = 1 + StoichNum(281,288) = -1 + StoichNum(281,291) = 1 + StoichNum(281,313) = 1 + StoichNum(281,320) = 1 + StoichNum(281,330) = -1 + StoichNum(281,333) = -1 + StoichNum(281,334) = -1 + StoichNum(281,337) = -1 + StoichNum(281,342) = -1 + StoichNum(281,352) = -1 + StoichNum(281,353) = -1 + StoichNum(281,360) = -1 + StoichNum(281,361) = -1 + StoichNum(281,364) = 1 + StoichNum(281,479) = -1 + StoichNum(281,489) = -1 + StoichNum(281,490) = -1 + StoichNum(281,525) = -1 + StoichNum(281,526) = 0.69 + StoichNum(281,557) = -1 + StoichNum(281,560) = 1 + StoichNum(281,568) = -1 + StoichNum(281,582) = -1 + StoichNum(281,594) = -1 StoichNum(281,598) = -1 - StoichNum(281,606) = 0.364 - StoichNum(281,607) = -1 - StoichNum(281,610) = 0.6 - StoichNum(281,611) = 1 + StoichNum(281,600) = -1 + StoichNum(281,603) = -1 + StoichNum(281,605) = -1 StoichNum(281,612) = 1 - StoichNum(281,616) = 0.54 - StoichNum(281,617) = 0.19 - StoichNum(281,618) = 0.15 - StoichNum(281,620) = 1 - StoichNum(281,621) = 1 - StoichNum(281,622) = 2 - StoichNum(281,623) = 1 - StoichNum(281,624) = 0.8 - StoichNum(281,626) = 0.727 - StoichNum(281,629) = 1 - StoichNum(281,633) = -1 - StoichNum(281,642) = -1 - StoichNum(281,648) = 1 - StoichNum(281,649) = 1 - StoichNum(281,650) = 0.33 - StoichNum(281,651) = 0.1 - StoichNum(281,652) = 0.2 - StoichNum(281,653) = 0.33 - StoichNum(281,654) = 0.1 - StoichNum(281,655) = 0.2 - StoichNum(281,662) = 1 - StoichNum(281,663) = -1 - StoichNum(281,763) = 1 - StoichNum(281,764) = 1 - StoichNum(281,769) = 1 - StoichNum(281,773) = 1 - StoichNum(281,776) = 1 - StoichNum(281,780) = 1.73 - StoichNum(281,781) = 2 - StoichNum(281,784) = 1 - StoichNum(281,786) = 1 - StoichNum(281,788) = 1 - StoichNum(281,789) = 1 - StoichNum(281,790) = 1 - StoichNum(281,791) = 1 - StoichNum(281,792) = 1 - StoichNum(281,793) = 1 - StoichNum(281,794) = 1 - StoichNum(281,795) = 1 + StoichNum(281,614) = -1 + StoichNum(281,620) = -1 + StoichNum(281,635) = -1 + StoichNum(281,639) = -1 + StoichNum(281,640) = -1 + StoichNum(281,641) = -1 + StoichNum(281,748) = 1 + StoichNum(281,750) = -1 + StoichNum(281,751) = -1 + StoichNum(281,752) = 1 + StoichNum(281,755) = 0.3 + StoichNum(281,782) = 1 StoichNum(281,796) = 1 - StoichNum(281,797) = 0.27 - StoichNum(281,850) = 1 - StoichNum(281,857) = 1 - StoichNum(281,858) = 1 - StoichNum(281,866) = 1 - StoichNum(281,867) = 1 - StoichNum(281,868) = 1 - StoichNum(281,869) = 1 - StoichNum(281,871) = 1 - StoichNum(281,872) = 1 - StoichNum(281,874) = 1 - StoichNum(281,875) = 1.5 - StoichNum(281,876) = 0.47 - StoichNum(281,877) = 0.571 - StoichNum(281,878) = 0.125 - StoichNum(281,879) = 1 - StoichNum(281,881) = 0.29 - StoichNum(281,882) = 1 - StoichNum(281,883) = 1 - StoichNum(281,884) = 1 - StoichNum(281,885) = 1 - StoichNum(281,886) = 1 - StoichNum(281,887) = 1 - StoichNum(281,888) = 0.112 - StoichNum(281,889) = 0.182 - StoichNum(281,890) = 1 - StoichNum(281,891) = 1 - StoichNum(281,892) = 0.45 - StoichNum(281,893) = 1 - StoichNum(281,894) = 1 - StoichNum(281,895) = 0.45 - StoichNum(281,896) = 0.33 - StoichNum(281,897) = 0.159 - StoichNum(281,899) = 0.161 - StoichNum(281,900) = 0.228 - StoichNum(281,901) = 1.5 - StoichNum(281,902) = 1 - StoichNum(281,903) = 0.75 - StoichNum(281,904) = 1 - StoichNum(281,905) = 1.454 - StoichNum(281,906) = 0.7 - StoichNum(281,907) = 0.7 - StoichNum(281,909) = 1 - StoichNum(281,911) = 1 - StoichNum(281,914) = 1 - StoichNum(282,168) = -1 - StoichNum(282,170) = -1 - StoichNum(282,171) = 1 - StoichNum(282,172) = 2 - StoichNum(282,174) = 1 - StoichNum(282,175) = -1 - StoichNum(282,176) = 1 - StoichNum(282,178) = 1 - StoichNum(282,179) = 1 - StoichNum(282,180) = -1 - StoichNum(282,181) = -1 + StoichNum(281,820) = 1 + StoichNum(281,830) = 1 + StoichNum(282,1) = -1 + StoichNum(282,4) = -1 + StoichNum(282,8) = -1 + StoichNum(282,13) = -1 + StoichNum(282,14) = -1 + StoichNum(282,15) = -1 + StoichNum(282,16) = -1 + StoichNum(282,17) = -1 + StoichNum(282,109) = 0.15 + StoichNum(282,111) = -1 + StoichNum(282,152) = -1 + StoichNum(282,181) = 1 StoichNum(282,182) = -1 - StoichNum(282,183) = -1 - StoichNum(282,184) = -1 - StoichNum(282,185) = -1 StoichNum(282,186) = -1 - StoichNum(282,188) = 3 - StoichNum(282,189) = 2 - StoichNum(282,190) = 1 - StoichNum(282,222) = 1 - StoichNum(282,225) = 0.65 - StoichNum(282,228) = 0.56 - StoichNum(282,229) = 0.95 - StoichNum(282,230) = 1.36 - StoichNum(282,234) = 0.33 - StoichNum(282,242) = 0.75 - StoichNum(282,281) = 1 - StoichNum(282,282) = 1 - StoichNum(282,304) = -1 - StoichNum(282,314) = 1 - StoichNum(282,315) = 1 - StoichNum(282,316) = 1 - StoichNum(282,799) = 2 - StoichNum(282,800) = 1 - StoichNum(282,801) = 1 - StoichNum(282,802) = 1 - StoichNum(282,804) = 1 - StoichNum(282,805) = 3 - StoichNum(282,806) = 2 - StoichNum(282,807) = 1 - StoichNum(282,810) = 1 - StoichNum(282,830) = 1 - StoichNum(282,831) = 1 - StoichNum(282,832) = 2 - StoichNum(282,845) = 1 - StoichNum(282,848) = 1 - StoichNum(283,5) = 1 - StoichNum(283,672) = -1 - StoichNum(283,674) = -1 - StoichNum(283,683) = -1 - StoichNum(283,685) = -1 - StoichNum(283,693) = -1 - StoichNum(283,698) = -1 - StoichNum(283,723) = -1 - StoichNum(283,727) = -1 - StoichNum(283,731) = -1 - StoichNum(284,18) = 1 - StoichNum(284,177) = -1 - StoichNum(284,178) = -1 - StoichNum(284,192) = 1 + StoichNum(282,195) = -1 + StoichNum(282,242) = -1 + StoichNum(282,299) = -1 + StoichNum(282,316) = -1 + StoichNum(282,331) = -1 + StoichNum(282,332) = -1 + StoichNum(282,336) = -1 + StoichNum(282,359) = -1 + StoichNum(282,369) = -1 + StoichNum(282,521) = -1 + StoichNum(282,524) = -1 + StoichNum(282,547) = 0.13 + StoichNum(282,554) = 0.13 + StoichNum(282,571) = 0.13 + StoichNum(282,577) = -1 + StoichNum(282,602) = -1 + StoichNum(282,606) = 0.15 + StoichNum(282,617) = -1 + StoichNum(282,624) = -1 + StoichNum(282,627) = -1 + StoichNum(282,676) = -1 + StoichNum(282,677) = -1 + StoichNum(282,678) = -1 + StoichNum(282,738) = -1 + StoichNum(282,739) = -1 + StoichNum(283,654) = -1 + StoichNum(283,661) = -1 + StoichNum(283,673) = -1 + StoichNum(283,677) = -1 + StoichNum(283,679) = 1 + StoichNum(283,700) = -1 + StoichNum(283,704) = -1 + StoichNum(283,708) = -1 + StoichNum(284,14) = 1 + StoichNum(284,15) = -1 + StoichNum(284,17) = 1 + StoichNum(284,20) = -1 + StoichNum(284,21) = 1 + StoichNum(284,22) = -1 + StoichNum(284,23) = -2 + StoichNum(284,24) = 1 + StoichNum(284,26) = 1 + StoichNum(284,28) = -1 + StoichNum(284,30) = 2 + StoichNum(284,31) = 1.74 + StoichNum(284,34) = 1 + StoichNum(284,39) = -1 + StoichNum(284,40) = 1 + StoichNum(284,42) = -1 + StoichNum(284,44) = 1 + StoichNum(284,47) = 1 + StoichNum(284,48) = 1 + StoichNum(284,50) = 1 + StoichNum(284,51) = 0.05 + StoichNum(284,57) = 1 + StoichNum(284,59) = 1 + StoichNum(284,62) = 1 + StoichNum(284,64) = 1 + StoichNum(284,66) = 0.27 + StoichNum(284,71) = 1 + StoichNum(284,83) = 1 + StoichNum(284,84) = 1 + StoichNum(284,85) = -1 + StoichNum(284,86) = -1 + StoichNum(284,87) = -1 + StoichNum(284,88) = -1 + StoichNum(284,89) = -1 + StoichNum(284,90) = -1 + StoichNum(284,92) = 1 + StoichNum(284,93) = 1 + StoichNum(284,95) = 0.64 + StoichNum(284,96) = 0.5 + StoichNum(284,97) = 0.3 + StoichNum(284,98) = 0.5 + StoichNum(284,99) = 1 + StoichNum(284,100) = 0.5 + StoichNum(284,101) = 1 + StoichNum(284,102) = 1 + StoichNum(284,103) = 1.2 + StoichNum(284,104) = 1.2 + StoichNum(284,105) = -1 + StoichNum(284,106) = -1 + StoichNum(284,107) = -1 + StoichNum(284,108) = -1 + StoichNum(284,109) = -1 + StoichNum(284,111) = 0.28 + StoichNum(284,112) = 0.773 + StoichNum(284,115) = 1 + StoichNum(284,117) = 1 + StoichNum(284,119) = 1 + StoichNum(284,132) = 0.9 + StoichNum(284,133) = 0.243 + StoichNum(284,136) = 0.9 + StoichNum(284,139) = 0.9 + StoichNum(284,140) = 0.9 + StoichNum(284,141) = 0.9 + StoichNum(284,142) = 0.9 + StoichNum(284,144) = 1 + StoichNum(284,151) = 1 + StoichNum(284,153) = -1 + StoichNum(284,154) = -1 + StoichNum(284,163) = 1 + StoichNum(284,165) = 1 + StoichNum(284,174) = 1 + StoichNum(284,180) = 0.2 + StoichNum(284,185) = -1 StoichNum(284,193) = 1 - StoichNum(284,200) = -1 - StoichNum(284,201) = -1 - StoichNum(284,203) = -1 - StoichNum(284,204) = -1 - StoichNum(284,206) = 2 - StoichNum(284,207) = -1 - StoichNum(284,209) = -1 - StoichNum(284,210) = -1 - StoichNum(284,211) = -1 - StoichNum(284,212) = -1 - StoichNum(284,213) = -1 - StoichNum(284,217) = 1 - StoichNum(284,219) = 1 - StoichNum(284,220) = 1 - StoichNum(284,221) = 1 - StoichNum(284,222) = -1 - StoichNum(284,223) = -1 - StoichNum(284,224) = 0.09 - StoichNum(284,225) = 0.2 - StoichNum(284,226) = 0.25 - StoichNum(284,227) = 0.14 - StoichNum(284,229) = 0.05 - StoichNum(284,230) = 0.32 - StoichNum(284,231) = 0.28 - StoichNum(284,232) = 0.12 - StoichNum(284,233) = 0.14 - StoichNum(284,234) = 0.36 - StoichNum(284,235) = 0.59 - StoichNum(284,236) = 0.31 - StoichNum(284,237) = 0.26 - StoichNum(284,238) = 0.21 - StoichNum(284,239) = 0.25 - StoichNum(284,240) = 0.25 - StoichNum(284,241) = 0.7 - StoichNum(284,242) = 0.25 - StoichNum(284,268) = -1 - StoichNum(284,284) = -1 - StoichNum(284,758) = 1 - StoichNum(284,760) = 2 - StoichNum(284,761) = 1 + StoichNum(284,194) = 1 + StoichNum(284,196) = -1 + StoichNum(284,201) = 1 + StoichNum(284,223) = 1 + StoichNum(284,224) = 1 + StoichNum(284,232) = 1 + StoichNum(284,233) = 1 + StoichNum(284,234) = 1 + StoichNum(284,241) = 1 + StoichNum(284,244) = 1 + StoichNum(284,245) = -1 + StoichNum(284,246) = -1 + StoichNum(284,248) = -1 + StoichNum(284,264) = 1 + StoichNum(284,265) = 1 + StoichNum(284,266) = 1 + StoichNum(284,268) = 1 + StoichNum(284,271) = 1 + StoichNum(284,272) = 1 + StoichNum(284,273) = 1 + StoichNum(284,300) = -1 + StoichNum(284,304) = -1 + StoichNum(284,326) = 0.82 + StoichNum(284,327) = -1 + StoichNum(284,328) = 1 + StoichNum(284,329) = 0.5 + StoichNum(284,330) = 1 + StoichNum(284,331) = 0.1 + StoichNum(284,332) = 0.1 + StoichNum(284,336) = 0.1 + StoichNum(284,338) = 0.686 + StoichNum(284,339) = -1 + StoichNum(284,340) = 1 + StoichNum(284,341) = 0.5 + StoichNum(284,342) = 1 + StoichNum(284,344) = 1 + StoichNum(284,346) = -1 + StoichNum(284,347) = -1 + StoichNum(284,348) = 2 + StoichNum(284,349) = 0.5 + StoichNum(284,350) = 1 + StoichNum(284,352) = 1 + StoichNum(284,354) = 1 + StoichNum(284,355) = 0.5 + StoichNum(284,369) = 0.16 + StoichNum(284,372) = 0.4 + StoichNum(284,373) = 0.7 + StoichNum(284,374) = -0.937 + StoichNum(284,375) = -1 + StoichNum(284,376) = -0.937 + StoichNum(284,377) = -1 + StoichNum(284,379) = 0.4 + StoichNum(284,381) = 0.7 + StoichNum(284,382) = 2 + StoichNum(284,383) = 2 + StoichNum(284,384) = 2 + StoichNum(284,385) = 1 + StoichNum(284,386) = 1 + StoichNum(284,387) = 1 + StoichNum(284,388) = 2 + StoichNum(284,389) = 1.5 + StoichNum(284,390) = 2 + StoichNum(284,391) = 1.5 + StoichNum(284,393) = 1 + StoichNum(284,395) = 0.45 + StoichNum(284,397) = 1 + StoichNum(284,399) = 0.45 + StoichNum(284,400) = 0.085 + StoichNum(284,401) = 0.165 + StoichNum(284,404) = 0.283 + StoichNum(284,406) = 1 + StoichNum(284,411) = 0.25 + StoichNum(284,412) = 0.33 + StoichNum(284,413) = 0.024 + StoichNum(284,414) = 0.042 + StoichNum(284,416) = 1 + StoichNum(284,418) = -0.725 + StoichNum(284,420) = 1 + StoichNum(284,422) = -0.725 + StoichNum(284,426) = -1 + StoichNum(284,427) = 0.75 + StoichNum(284,428) = 1 + StoichNum(284,430) = 1 + StoichNum(284,432) = 1 + StoichNum(284,434) = -0.35 + StoichNum(284,435) = 1 + StoichNum(284,437) = 1 + StoichNum(284,439) = 1 + StoichNum(284,441) = -0.35 + StoichNum(284,442) = -0.35 + StoichNum(284,444) = 1 + StoichNum(284,445) = 1 + StoichNum(284,447) = -1 + StoichNum(284,449) = -1 + StoichNum(284,458) = 0.4 + StoichNum(284,459) = 0.4 + StoichNum(284,460) = 1 + StoichNum(284,461) = -0.941 + StoichNum(284,462) = 0.272 + StoichNum(284,464) = 1 + StoichNum(284,465) = -0.401 + StoichNum(284,466) = 1 + StoichNum(284,468) = 1 + StoichNum(284,469) = 1 + StoichNum(284,470) = -0.418 + StoichNum(284,471) = 1 + StoichNum(284,473) = -0.494 + StoichNum(284,474) = 1 + StoichNum(284,476) = -0.621 + StoichNum(284,477) = 1 + StoichNum(284,480) = -1 + StoichNum(284,481) = -1 + StoichNum(284,483) = 0.089 + StoichNum(284,484) = 0.064 + StoichNum(284,485) = 0.336 + StoichNum(284,486) = 0.611 + StoichNum(284,488) = 0.159 + StoichNum(284,490) = 0.159 + StoichNum(284,493) = 0.159 + StoichNum(284,495) = 1 + StoichNum(284,507) = -0.674 + StoichNum(284,508) = -0.42 + StoichNum(284,509) = 0.5 + StoichNum(284,511) = 0.904 + StoichNum(284,514) = 0.295 + StoichNum(284,515) = 0.33 + StoichNum(284,516) = -0.67 + StoichNum(284,518) = 0.89 + StoichNum(284,519) = -0.27 + StoichNum(284,521) = 0.1 + StoichNum(284,522) = 0.036 + StoichNum(284,532) = -1 + StoichNum(284,535) = -1 + StoichNum(284,537) = 0.715 + StoichNum(284,539) = 1 + StoichNum(284,541) = 1 + StoichNum(284,542) = 1 + StoichNum(284,543) = -0.695 + StoichNum(284,544) = 0.242 + StoichNum(284,546) = -0.493 + StoichNum(284,547) = -1 + StoichNum(284,550) = 0.86 + StoichNum(284,554) = -1 + StoichNum(284,558) = 0.7 + StoichNum(284,562) = 0.5 + StoichNum(284,563) = 0.444 + StoichNum(284,567) = 0.62 + StoichNum(284,570) = 0.5 + StoichNum(284,571) = -1 + StoichNum(284,579) = 0.364 + StoichNum(284,580) = -1 + StoichNum(284,583) = 0.6 + StoichNum(284,584) = 1 + StoichNum(284,585) = 1 + StoichNum(284,589) = 0.54 + StoichNum(284,590) = 0.19 + StoichNum(284,591) = 0.15 + StoichNum(284,593) = 1 + StoichNum(284,594) = 1 + StoichNum(284,595) = 2 + StoichNum(284,596) = 1 + StoichNum(284,597) = 0.8 + StoichNum(284,599) = 0.727 + StoichNum(284,602) = 1 + StoichNum(284,606) = -1 + StoichNum(284,615) = -1 + StoichNum(284,621) = 1 + StoichNum(284,622) = 1 + StoichNum(284,623) = 0.33 + StoichNum(284,624) = 0.1 + StoichNum(284,625) = 0.2 + StoichNum(284,626) = 0.33 + StoichNum(284,627) = 0.1 + StoichNum(284,628) = 0.2 + StoichNum(284,635) = 1 + StoichNum(284,637) = -1 + StoichNum(284,743) = 1 + StoichNum(284,744) = 1 + StoichNum(284,749) = 1 + StoichNum(284,753) = 1 + StoichNum(284,756) = 1 + StoichNum(284,760) = 1.73 + StoichNum(284,761) = 2 + StoichNum(284,764) = 1 + StoichNum(284,766) = 1 + StoichNum(284,768) = 1 + StoichNum(284,769) = 1 StoichNum(284,770) = 1 - StoichNum(284,800) = 1 - StoichNum(284,812) = 1 - StoichNum(284,813) = 1 - StoichNum(284,836) = 1 - StoichNum(284,856) = 1 - StoichNum(285,224) = 0.67 - StoichNum(285,226) = 0.75 - StoichNum(285,227) = 2.58 - StoichNum(285,231) = 0.17 - StoichNum(285,232) = 1.76 - StoichNum(285,233) = 0.86 - StoichNum(285,234) = 0.31 - StoichNum(285,236) = 0.69 - StoichNum(285,238) = 0.79 - StoichNum(285,239) = 1.5 - StoichNum(285,240) = 0.75 - StoichNum(285,243) = 1 - StoichNum(285,245) = 1 - StoichNum(285,249) = 1 - StoichNum(285,253) = 1 - StoichNum(285,254) = 2 - StoichNum(285,255) = 3 - StoichNum(285,256) = 3 - StoichNum(285,257) = 1 - StoichNum(285,258) = 2 - StoichNum(285,259) = 1 - StoichNum(285,260) = 2 + StoichNum(284,771) = 1 + StoichNum(284,772) = 1 + StoichNum(284,773) = 1 + StoichNum(284,774) = 1 + StoichNum(284,775) = 1 + StoichNum(284,776) = 1 + StoichNum(284,777) = 0.27 + StoichNum(284,830) = 1 + StoichNum(284,837) = 1 + StoichNum(284,838) = 1 + StoichNum(284,846) = 1 + StoichNum(284,847) = 1 + StoichNum(284,848) = 1 + StoichNum(284,849) = 1 + StoichNum(284,851) = 1 + StoichNum(284,852) = 1 + StoichNum(284,854) = 1 + StoichNum(284,855) = 1.5 + StoichNum(284,856) = 0.47 + StoichNum(284,857) = 0.571 + StoichNum(284,858) = 0.125 + StoichNum(284,859) = 1 + StoichNum(284,861) = 0.29 + StoichNum(284,862) = 1 + StoichNum(284,863) = 1 + StoichNum(284,864) = 1 + StoichNum(284,865) = 1 + StoichNum(284,866) = 1 + StoichNum(284,867) = 1 + StoichNum(284,868) = 0.112 + StoichNum(284,869) = 0.182 + StoichNum(284,870) = 1 + StoichNum(284,871) = 1 + StoichNum(284,872) = 0.45 + StoichNum(284,873) = 1 + StoichNum(284,874) = 1 + StoichNum(284,875) = 0.45 + StoichNum(284,876) = 0.33 + StoichNum(284,877) = 0.159 + StoichNum(284,879) = 0.161 + StoichNum(284,880) = 0.228 + StoichNum(284,881) = 1.5 + StoichNum(284,882) = 1 + StoichNum(284,883) = 0.75 + StoichNum(284,884) = 1 + StoichNum(284,885) = 1.454 + StoichNum(284,886) = 0.7 + StoichNum(284,887) = 0.7 + StoichNum(284,889) = 1 + StoichNum(284,891) = 1 + StoichNum(284,894) = 1 + StoichNum(285,202) = 0.22 + StoichNum(285,204) = 0.75 + StoichNum(285,205) = 0.79 + StoichNum(285,206) = 0.46 + StoichNum(285,210) = 0.56 + StoichNum(285,211) = 0.9 + StoichNum(285,212) = 0.86 + StoichNum(285,213) = 0.34 + StoichNum(285,215) = 0.69 + StoichNum(285,216) = 0.65 + StoichNum(285,217) = 0.79 + StoichNum(285,218) = 0.8 + StoichNum(285,219) = 0.85 + StoichNum(285,220) = 0.86 + StoichNum(285,223) = -1 + StoichNum(285,224) = -1 + StoichNum(285,225) = -1 + StoichNum(285,229) = 1 + StoichNum(285,242) = 1 + StoichNum(285,246) = 1 + StoichNum(285,247) = -1 + StoichNum(285,248) = -1 + StoichNum(285,249) = -1 + StoichNum(285,250) = -1 + StoichNum(285,251) = -2 + StoichNum(285,252) = -2 + StoichNum(285,253) = -2 + StoichNum(285,256) = -2 + StoichNum(285,257) = 2 + StoichNum(285,258) = 0.1 + StoichNum(285,259) = -1 + StoichNum(285,260) = -1 StoichNum(285,261) = -1 - StoichNum(285,262) = -1 - StoichNum(285,263) = -1 - StoichNum(285,264) = -1 - StoichNum(285,265) = -1 - StoichNum(285,266) = -1 - StoichNum(285,267) = -1 + StoichNum(285,262) = 1 StoichNum(285,268) = 1 - StoichNum(285,270) = 1 - StoichNum(285,273) = 1 - StoichNum(285,274) = 1 - StoichNum(285,275) = -1 - StoichNum(285,276) = 1 - StoichNum(285,279) = -1 - StoichNum(285,280) = -1 - StoichNum(285,285) = -1 - StoichNum(285,286) = -1 - StoichNum(285,287) = 1 - StoichNum(285,288) = 2 - StoichNum(285,289) = -1 - StoichNum(285,290) = -1 - StoichNum(285,291) = -1 - StoichNum(285,292) = -1 - StoichNum(285,293) = -1 - StoichNum(285,294) = -1 - StoichNum(285,295) = -1 - StoichNum(285,296) = -1 - StoichNum(285,297) = -1 + StoichNum(285,271) = 1 + StoichNum(285,272) = 1 StoichNum(285,298) = -1 - StoichNum(285,299) = -1 - StoichNum(285,300) = -1 - StoichNum(285,301) = -1 - StoichNum(285,302) = -1 - StoichNum(285,303) = -1 - StoichNum(285,322) = 1 - StoichNum(285,808) = 1 - StoichNum(285,809) = 2 - StoichNum(285,810) = 1 - StoichNum(285,811) = 2 - StoichNum(285,812) = 1 - StoichNum(285,814) = 1 - StoichNum(285,815) = 1 - StoichNum(285,816) = 1 - StoichNum(285,818) = 1 - StoichNum(285,819) = 3 - StoichNum(285,820) = 4 - StoichNum(285,821) = 3 - StoichNum(285,822) = 2 - StoichNum(285,823) = 3 - StoichNum(285,824) = 2 - StoichNum(285,825) = 1 - StoichNum(285,826) = 2 - StoichNum(285,827) = 2 - StoichNum(285,828) = 1 - StoichNum(285,829) = 1 - StoichNum(285,831) = 1 - StoichNum(285,833) = 1 - StoichNum(285,844) = 1 - StoichNum(285,849) = 1 - StoichNum(286,1) = -1 - StoichNum(286,4) = -1 - StoichNum(286,7) = -1 - StoichNum(286,8) = -1 - StoichNum(286,9) = -1 - StoichNum(286,10) = -1 - StoichNum(286,11) = 1 + StoichNum(285,792) = -1 + StoichNum(285,793) = 1 + StoichNum(285,797) = 1 StoichNum(286,12) = -1 - StoichNum(286,164) = 1 - StoichNum(286,165) = 0.75 - StoichNum(286,166) = 1 - StoichNum(286,167) = -1 - StoichNum(286,207) = 1 - StoichNum(286,208) = 1 - StoichNum(286,344) = -1 - StoichNum(286,348) = -1 - StoichNum(286,694) = -1 - StoichNum(286,701) = -1 - StoichNum(286,854) = 1 - StoichNum(286,855) = 1 - StoichNum(287,16) = 1 - StoichNum(287,38) = 1 - StoichNum(287,44) = -1 - StoichNum(287,45) = -1 - StoichNum(287,46) = -1 - StoichNum(287,47) = -1 - StoichNum(287,48) = 1 - StoichNum(287,51) = -1 - StoichNum(287,52) = -1 - StoichNum(287,54) = -1 - StoichNum(287,76) = -1 - StoichNum(287,83) = -1 - StoichNum(287,96) = -1 - StoichNum(287,118) = -1 - StoichNum(287,121) = -1 - StoichNum(287,122) = -1 - StoichNum(287,140) = -1 - StoichNum(287,161) = -2 - StoichNum(287,166) = -1 - StoichNum(287,175) = 1 - StoichNum(287,180) = -1 - StoichNum(287,210) = -1 - StoichNum(287,212) = 1 - StoichNum(287,252) = 1 - StoichNum(287,284) = 1 - StoichNum(287,285) = 1 - StoichNum(287,310) = -1 - StoichNum(287,313) = 1 - StoichNum(287,340) = 1 - StoichNum(287,347) = 1 - StoichNum(287,357) = -1 - StoichNum(287,360) = -1 - StoichNum(287,361) = -1 - StoichNum(287,364) = -1 - StoichNum(287,369) = -1 - StoichNum(287,379) = -1 - StoichNum(287,380) = -1 - StoichNum(287,387) = -1 - StoichNum(287,388) = -1 - StoichNum(287,391) = 1 - StoichNum(287,506) = -1 - StoichNum(287,516) = -1 - StoichNum(287,517) = -1 - StoichNum(287,552) = -1 - StoichNum(287,553) = 0.69 - StoichNum(287,584) = -1 - StoichNum(287,587) = 1 - StoichNum(287,595) = -1 - StoichNum(287,609) = -1 - StoichNum(287,621) = -1 - StoichNum(287,625) = -1 - StoichNum(287,627) = -1 - StoichNum(287,630) = -1 - StoichNum(287,632) = -1 - StoichNum(287,639) = 1 - StoichNum(287,641) = -1 - StoichNum(287,647) = -1 - StoichNum(287,662) = -1 - StoichNum(287,665) = -1 - StoichNum(287,666) = -1 + StoichNum(286,14) = -1 + StoichNum(286,15) = 1 + StoichNum(286,18) = -2 + StoichNum(286,19) = -2 + StoichNum(286,20) = -1 + StoichNum(286,21) = -1 + StoichNum(286,22) = 1 + StoichNum(286,24) = -1 + StoichNum(286,25) = -1 + StoichNum(286,31) = -1 + StoichNum(286,32) = -0.7 + StoichNum(286,33) = -0.7 + StoichNum(286,34) = -1 + StoichNum(286,35) = -1 + StoichNum(286,36) = -1 + StoichNum(286,37) = -1 + StoichNum(286,38) = -1 + StoichNum(286,41) = -1 + StoichNum(286,42) = 1 + StoichNum(286,44) = -1 + StoichNum(286,47) = -1 + StoichNum(286,48) = -1 + StoichNum(286,51) = -1 + StoichNum(286,56) = -1 + StoichNum(286,60) = -1 + StoichNum(286,61) = -1 + StoichNum(286,65) = -1 + StoichNum(286,75) = -1 + StoichNum(286,76) = -1 + StoichNum(286,77) = -1 + StoichNum(286,82) = -1 + StoichNum(286,87) = 0.15 + StoichNum(286,88) = 0.15 + StoichNum(286,91) = -1 + StoichNum(286,101) = -1 + StoichNum(286,102) = -1 + StoichNum(286,109) = 0.44 + StoichNum(286,110) = -1 + StoichNum(286,111) = 0.36 + StoichNum(286,112) = -0.773 + StoichNum(286,115) = -1 + StoichNum(286,116) = -1 + StoichNum(286,119) = -1 + StoichNum(286,121) = -0.209 + StoichNum(286,122) = -0.36 + StoichNum(286,123) = -0.36 + StoichNum(286,124) = -0.209 + StoichNum(286,125) = -0.21 + StoichNum(286,126) = -1 + StoichNum(286,127) = -0.209 + StoichNum(286,129) = -0.78 + StoichNum(286,148) = -1 + StoichNum(286,149) = -1 + StoichNum(286,151) = -1 + StoichNum(286,155) = -1 + StoichNum(286,160) = -1 + StoichNum(286,161) = 1 + StoichNum(286,162) = 1 + StoichNum(286,163) = -1 + StoichNum(286,172) = -1 + StoichNum(286,173) = -1 + StoichNum(286,174) = -1 + StoichNum(286,175) = 2 + StoichNum(286,178) = 1 + StoichNum(286,180) = 0.75 + StoichNum(286,183) = -1 + StoichNum(286,184) = -1 + StoichNum(286,185) = 1 + StoichNum(286,188) = -1 + StoichNum(286,193) = 1 + StoichNum(286,195) = 1 + StoichNum(286,196) = 1.788 + StoichNum(286,201) = 1 + StoichNum(286,202) = 0.66 + StoichNum(286,203) = 0.6 + StoichNum(286,210) = 0.05 + StoichNum(286,222) = -1 + StoichNum(286,224) = -1 + StoichNum(286,225) = -1 + StoichNum(286,226) = -1 + StoichNum(286,227) = -1 + StoichNum(286,228) = -1 + StoichNum(286,229) = -1 + StoichNum(286,230) = -1 + StoichNum(286,231) = -1 + StoichNum(286,232) = -1 + StoichNum(286,233) = -1 + StoichNum(286,234) = -1 + StoichNum(286,235) = -1 + StoichNum(286,236) = -1 + StoichNum(286,237) = -1 + StoichNum(286,238) = -1 + StoichNum(286,239) = -1 + StoichNum(286,246) = 1 + StoichNum(286,301) = -1 + StoichNum(286,302) = -1 + StoichNum(286,303) = -1 + StoichNum(286,308) = -1 + StoichNum(286,309) = -1 + StoichNum(286,310) = -1 + StoichNum(286,324) = -1 + StoichNum(286,325) = -1 + StoichNum(286,331) = 0.85 + StoichNum(286,332) = 0.85 + StoichNum(286,335) = -1 + StoichNum(286,336) = 0.85 + StoichNum(286,343) = -0.51 + StoichNum(286,357) = -1 + StoichNum(286,358) = -1 + StoichNum(286,364) = -1 + StoichNum(286,365) = -1 + StoichNum(286,366) = -1 + StoichNum(286,367) = -1 + StoichNum(286,368) = -1 + StoichNum(286,369) = 0.28 + StoichNum(286,370) = -1 + StoichNum(286,371) = -1 + StoichNum(286,372) = 0.5 + StoichNum(286,373) = 0.5 + StoichNum(286,374) = 0.063 + StoichNum(286,376) = 0.063 + StoichNum(286,378) = 1 + StoichNum(286,379) = 1.5 + StoichNum(286,380) = 1 + StoichNum(286,381) = 1.5 + StoichNum(286,385) = 1 + StoichNum(286,386) = 1 + StoichNum(286,387) = 1 + StoichNum(286,389) = 0.5 + StoichNum(286,391) = 0.5 + StoichNum(286,395) = 0.55 + StoichNum(286,399) = 0.55 + StoichNum(286,400) = 0.085 + StoichNum(286,401) = 0.165 + StoichNum(286,404) = 0.065 + StoichNum(286,406) = -1 + StoichNum(286,407) = -1 + StoichNum(286,409) = -1 + StoichNum(286,411) = -1 + StoichNum(286,412) = -1 + StoichNum(286,413) = -0.595 + StoichNum(286,414) = -0.255 + StoichNum(286,415) = 1 + StoichNum(286,418) = 0.275 + StoichNum(286,419) = 1 + StoichNum(286,422) = 0.275 + StoichNum(286,424) = 1 + StoichNum(286,426) = 1.3 + StoichNum(286,427) = -1 + StoichNum(286,428) = -1 + StoichNum(286,429) = -1 + StoichNum(286,430) = -1 + StoichNum(286,431) = -1 + StoichNum(286,433) = 1 + StoichNum(286,434) = 0.65 + StoichNum(286,438) = 1 + StoichNum(286,441) = 0.65 + StoichNum(286,442) = 0.65 + StoichNum(286,445) = 1 + StoichNum(286,446) = 1 + StoichNum(286,447) = 2 + StoichNum(286,448) = 1 + StoichNum(286,449) = 2 + StoichNum(286,450) = -1 + StoichNum(286,451) = -1 + StoichNum(286,452) = -1 + StoichNum(286,453) = -1 + StoichNum(286,454) = -1 + StoichNum(286,455) = -1 + StoichNum(286,456) = -1 + StoichNum(286,457) = -1 + StoichNum(286,458) = -0.4 + StoichNum(286,459) = -0.4 + StoichNum(286,461) = 0.518 + StoichNum(286,465) = 0.599 + StoichNum(286,470) = 0.582 + StoichNum(286,473) = 0.506 + StoichNum(286,476) = 0.379 + StoichNum(286,480) = 0.527 + StoichNum(286,497) = -1 + StoichNum(286,498) = -1 + StoichNum(286,501) = -1 + StoichNum(286,502) = -1 + StoichNum(286,503) = -1 + StoichNum(286,505) = 1 + StoichNum(286,506) = 1 + StoichNum(286,507) = 1.147 + StoichNum(286,508) = 0.646 + StoichNum(286,509) = 0.435 + StoichNum(286,511) = 0.096 + StoichNum(286,513) = -1 + StoichNum(286,514) = -0.756 + StoichNum(286,516) = 1 + StoichNum(286,517) = -1 + StoichNum(286,519) = 0.82 + StoichNum(286,520) = -1 + StoichNum(286,521) = 0.08 + StoichNum(286,522) = -1 + StoichNum(286,523) = -1 + StoichNum(286,524) = 0.12 + StoichNum(286,525) = 0.68 + StoichNum(286,526) = -0.98 + StoichNum(286,529) = -1 + StoichNum(286,532) = 1 + StoichNum(286,535) = 1 + StoichNum(286,537) = -0.715 + StoichNum(286,539) = -1 + StoichNum(286,541) = -1 + StoichNum(286,542) = -1 + StoichNum(286,543) = 0.665 + StoichNum(286,546) = 0.59 + StoichNum(286,547) = 0.5 + StoichNum(286,548) = -0.415 + StoichNum(286,549) = 1 + StoichNum(286,554) = 0.5 + StoichNum(286,560) = -1 + StoichNum(286,561) = -0.3 + StoichNum(286,562) = -0.5 + StoichNum(286,563) = -0.556 + StoichNum(286,566) = -1 + StoichNum(286,567) = -0.7 + StoichNum(286,569) = -1 + StoichNum(286,570) = -0.5 + StoichNum(286,571) = 0.5 + StoichNum(286,578) = -1 + StoichNum(286,579) = -0.364 + StoichNum(286,586) = -1 + StoichNum(286,587) = -1 + StoichNum(286,589) = -1 + StoichNum(286,590) = -1 + StoichNum(286,591) = -1 + StoichNum(286,592) = 1 + StoichNum(286,597) = -1 + StoichNum(286,599) = -1 + StoichNum(286,601) = -1 + StoichNum(286,602) = 1 + StoichNum(286,604) = -1 + StoichNum(286,606) = 0.2 + StoichNum(286,609) = -1 + StoichNum(286,611) = -1 + StoichNum(286,616) = -1 + StoichNum(286,619) = -1 + StoichNum(286,623) = -0.75 + StoichNum(286,624) = 0.1 + StoichNum(286,626) = -0.75 + StoichNum(286,627) = 0.1 + StoichNum(286,636) = -1 + StoichNum(286,647) = -1 + StoichNum(286,648) = -1 + StoichNum(286,742) = 2 + StoichNum(286,743) = 1 + StoichNum(286,746) = 1 + StoichNum(286,747) = 1 + StoichNum(286,748) = 1 + StoichNum(286,760) = 0.07 + StoichNum(286,770) = 1 + StoichNum(286,771) = 1 + StoichNum(286,772) = 1 + StoichNum(286,773) = 1 + StoichNum(286,774) = 1 + StoichNum(286,775) = 1 + StoichNum(286,776) = 1 + StoichNum(286,778) = 1 + StoichNum(286,781) = 1 + StoichNum(286,798) = 1 + StoichNum(286,815) = 1 + StoichNum(286,832) = 1 + StoichNum(286,835) = 2 + StoichNum(286,837) = 1 + StoichNum(286,850) = 2 + StoichNum(286,851) = 1 + StoichNum(286,856) = 1 + StoichNum(286,857) = 1 + StoichNum(286,858) = 1.75 + StoichNum(286,859) = 1 + StoichNum(286,860) = 0.75 + StoichNum(286,861) = 0.01 + StoichNum(286,863) = 1 + StoichNum(286,864) = 1 + StoichNum(286,865) = 1 + StoichNum(286,866) = 1 + StoichNum(286,867) = 1 + StoichNum(286,868) = 1.662 + StoichNum(286,869) = 1.637 + StoichNum(286,870) = 1 + StoichNum(286,871) = 1 + StoichNum(286,872) = 0.55 + StoichNum(286,875) = 0.55 + StoichNum(286,876) = 0.67 + StoichNum(286,877) = 1 + StoichNum(286,879) = 0.645 + StoichNum(286,881) = 0.5 + StoichNum(286,882) = 1 + StoichNum(286,883) = 1.25 + StoichNum(286,884) = 1 + StoichNum(286,885) = 0.546 + StoichNum(286,886) = 1 + StoichNum(286,887) = 0.3 + StoichNum(286,888) = 1 + StoichNum(286,890) = 1 + StoichNum(286,892) = 1 + StoichNum(287,5) = 1 + StoichNum(287,646) = -1 + StoichNum(287,648) = -1 + StoichNum(287,657) = -1 + StoichNum(287,659) = -1 StoichNum(287,667) = -1 - StoichNum(287,768) = 1 - StoichNum(287,770) = -1 - StoichNum(287,771) = -1 - StoichNum(287,772) = 1 - StoichNum(287,775) = 0.3 - StoichNum(287,802) = 1 - StoichNum(287,816) = 1 - StoichNum(287,840) = 1 - StoichNum(287,850) = 1 + StoichNum(287,672) = -1 + StoichNum(287,703) = -1 + StoichNum(287,707) = -1 + StoichNum(287,711) = -1 + StoichNum(288,18) = 1 + StoichNum(288,161) = -1 + StoichNum(288,162) = -1 + StoichNum(288,176) = 1 + StoichNum(288,177) = 1 + StoichNum(288,181) = -1 + StoichNum(288,182) = -1 + StoichNum(288,184) = -1 + StoichNum(288,185) = -1 + StoichNum(288,186) = 1 + StoichNum(288,187) = -1 + StoichNum(288,189) = -1 + StoichNum(288,190) = -1 + StoichNum(288,191) = -1 + StoichNum(288,192) = -1 + StoichNum(288,193) = -1 + StoichNum(288,196) = 0.02 + StoichNum(288,197) = 1 + StoichNum(288,198) = 1 + StoichNum(288,199) = 1 + StoichNum(288,200) = -1 + StoichNum(288,201) = -1 + StoichNum(288,202) = 0.12 + StoichNum(288,203) = 0.2 + StoichNum(288,204) = 0.25 + StoichNum(288,205) = 0.21 + StoichNum(288,206) = 0.1 + StoichNum(288,208) = 0.05 + StoichNum(288,209) = 0.3 + StoichNum(288,210) = 0.25 + StoichNum(288,211) = 0.1 + StoichNum(288,212) = 0.14 + StoichNum(288,213) = 0.35 + StoichNum(288,214) = 0.55 + StoichNum(288,215) = 0.31 + StoichNum(288,216) = 0.35 + StoichNum(288,217) = 0.21 + StoichNum(288,218) = 0.1 + StoichNum(288,219) = 0.1 + StoichNum(288,220) = 0.14 + StoichNum(288,221) = 0.25 + StoichNum(288,247) = -1 + StoichNum(288,262) = -1 + StoichNum(288,738) = 1 + StoichNum(288,740) = 2 + StoichNum(288,741) = 1 + StoichNum(288,750) = 1 + StoichNum(288,780) = 1 + StoichNum(288,792) = 1 + StoichNum(288,793) = 1 + StoichNum(288,816) = 1 + StoichNum(288,836) = 1 + StoichNum(289,154) = 1 + StoichNum(289,155) = -1 + StoichNum(289,162) = -1 + StoichNum(289,165) = 1 + StoichNum(289,166) = 1 + StoichNum(289,167) = 1 + StoichNum(289,168) = 1 + StoichNum(289,169) = 1 + StoichNum(289,203) = -0.8 + StoichNum(289,282) = 1 + StoichNum(289,653) = -1 + StoichNum(289,663) = -1 + StoichNum(289,665) = -1 + StoichNum(289,669) = -1 + StoichNum(289,675) = 1 + StoichNum(289,676) = -1 + StoichNum(289,679) = -1 + StoichNum(289,680) = -1 + StoichNum(290,202) = 0.66 + StoichNum(290,204) = 0.75 + StoichNum(290,205) = 2.37 + StoichNum(290,206) = 0.35 + StoichNum(290,210) = 0.19 + StoichNum(290,211) = 1.8 + StoichNum(290,212) = 0.86 + StoichNum(290,213) = 0.31 + StoichNum(290,215) = 0.69 + StoichNum(290,217) = 0.79 + StoichNum(290,218) = 1.9 + StoichNum(290,219) = 0.95 + StoichNum(290,222) = 1 + StoichNum(290,224) = 1 + StoichNum(290,228) = 1 + StoichNum(290,232) = 1 + StoichNum(290,233) = 2 + StoichNum(290,234) = 3 + StoichNum(290,235) = 3 + StoichNum(290,236) = 1 + StoichNum(290,237) = 2 + StoichNum(290,238) = 1 + StoichNum(290,239) = 2 + StoichNum(290,240) = -1 + StoichNum(290,241) = -1 + StoichNum(290,242) = -1 + StoichNum(290,243) = -1 + StoichNum(290,244) = -1 + StoichNum(290,245) = -1 + StoichNum(290,246) = -1 + StoichNum(290,247) = 1 + StoichNum(290,249) = 1 + StoichNum(290,252) = 1 + StoichNum(290,253) = 1 + StoichNum(290,254) = -1 + StoichNum(290,255) = 1 + StoichNum(290,258) = -1 + StoichNum(290,263) = -1 + StoichNum(290,264) = -1 + StoichNum(290,265) = 1 + StoichNum(290,266) = 2 + StoichNum(290,267) = -1 + StoichNum(290,268) = -1 + StoichNum(290,269) = -1 + StoichNum(290,270) = -1 + StoichNum(290,271) = -1 + StoichNum(290,272) = -1 + StoichNum(290,273) = -1 + StoichNum(290,274) = -1 + StoichNum(290,275) = -1 + StoichNum(290,276) = -1 + StoichNum(290,277) = -1 + StoichNum(290,278) = -1 + StoichNum(290,279) = -1 + StoichNum(290,280) = -1 + StoichNum(290,281) = -1 + StoichNum(290,298) = 0.249 + StoichNum(290,788) = 1 + StoichNum(290,789) = 2 + StoichNum(290,790) = 1 + StoichNum(290,791) = 2 + StoichNum(290,792) = 1 + StoichNum(290,794) = 1 + StoichNum(290,795) = 1 + StoichNum(290,796) = 1 + StoichNum(290,798) = 1 + StoichNum(290,799) = 3 + StoichNum(290,800) = 4 + StoichNum(290,801) = 3 + StoichNum(290,802) = 2 + StoichNum(290,803) = 3 + StoichNum(290,804) = 2 + StoichNum(290,805) = 1 + StoichNum(290,806) = 2 + StoichNum(290,807) = 2 + StoichNum(290,808) = 1 + StoichNum(290,809) = 1 + StoichNum(290,811) = 1 + StoichNum(290,813) = 1 + StoichNum(290,824) = 1 + StoichNum(290,829) = 1 + StoichNum(291,13) = 1 + StoichNum(291,16) = -1 + StoichNum(291,22) = 1 + StoichNum(291,26) = 1 + StoichNum(291,35) = -1 + StoichNum(291,38) = 1 + StoichNum(291,39) = -1 + StoichNum(291,40) = 1 + StoichNum(291,41) = 1 + StoichNum(291,42) = 1 + StoichNum(291,43) = 2 + StoichNum(291,44) = 1 + StoichNum(291,45) = -1 + StoichNum(291,46) = 1 + StoichNum(291,53) = -1 + StoichNum(291,54) = 1 + StoichNum(291,55) = 1 + StoichNum(291,57) = 1 + StoichNum(291,59) = 1 + StoichNum(291,62) = 1 + StoichNum(291,64) = 1 + StoichNum(291,66) = 1 + StoichNum(291,68) = 2 + StoichNum(291,69) = 1 + StoichNum(291,70) = 0.928 + StoichNum(291,71) = 1 + StoichNum(291,73) = 2 + StoichNum(291,78) = -1 + StoichNum(291,79) = 1 + StoichNum(291,80) = 1 + StoichNum(291,96) = 1 + StoichNum(291,100) = 1 + StoichNum(291,137) = 1 + StoichNum(291,138) = 1 + StoichNum(291,145) = 2 + StoichNum(291,146) = -1 + StoichNum(291,147) = 1 + StoichNum(291,158) = 1 + StoichNum(291,164) = 1 + StoichNum(291,170) = -1 + StoichNum(291,171) = -1 + StoichNum(291,189) = -1 + StoichNum(291,190) = 1 + StoichNum(291,191) = 1 + StoichNum(291,192) = -1 + StoichNum(291,199) = -1 + StoichNum(291,230) = 1 + StoichNum(291,249) = 1 + StoichNum(291,250) = -1 + StoichNum(291,285) = -1 + StoichNum(291,286) = 1 + StoichNum(291,287) = 2 + StoichNum(291,289) = -1 + StoichNum(291,290) = 1 + StoichNum(291,297) = 1 + StoichNum(291,305) = 1 + StoichNum(291,309) = 1 + StoichNum(291,310) = 1 + StoichNum(291,312) = 1 + StoichNum(291,313) = -1 + StoichNum(291,319) = 1 + StoichNum(291,320) = -1 + StoichNum(291,326) = 0.82 + StoichNum(291,330) = 1 + StoichNum(291,338) = 0.78 + StoichNum(291,342) = 1 + StoichNum(291,344) = 1 + StoichNum(291,345) = 2 + StoichNum(291,349) = 0.5 + StoichNum(291,351) = 1 + StoichNum(291,352) = 1 + StoichNum(291,353) = 2 + StoichNum(291,355) = 0.5 + StoichNum(291,356) = 1 + StoichNum(291,365) = 1 + StoichNum(291,366) = 1 + StoichNum(291,367) = 1 + StoichNum(291,368) = 1 + StoichNum(291,393) = 1 + StoichNum(291,395) = 1 + StoichNum(291,397) = 1 + StoichNum(291,399) = 1 + StoichNum(291,416) = 1 + StoichNum(291,420) = 1 + StoichNum(291,424) = 1 + StoichNum(291,435) = 1 + StoichNum(291,439) = 1 + StoichNum(291,444) = 1 + StoichNum(291,446) = 1 + StoichNum(291,448) = 1 + StoichNum(291,451) = 1 + StoichNum(291,453) = 1 + StoichNum(291,454) = 1 + StoichNum(291,456) = 1 + StoichNum(291,461) = 0.459 + StoichNum(291,462) = 1.728 + StoichNum(291,466) = 1 + StoichNum(291,471) = 1 + StoichNum(291,474) = 1 + StoichNum(291,477) = 1 + StoichNum(291,480) = 0.527 + StoichNum(291,482) = 1.86 + StoichNum(291,483) = 0.563 + StoichNum(291,486) = 0.611 + StoichNum(291,487) = 1 + StoichNum(291,489) = 2 + StoichNum(291,490) = 1 + StoichNum(291,491) = 2 + StoichNum(291,493) = 1 + StoichNum(291,501) = 1 + StoichNum(291,507) = 0.058 + StoichNum(291,509) = 1.065 + StoichNum(291,511) = 1 + StoichNum(291,513) = 1 + StoichNum(291,515) = 1 + StoichNum(291,517) = 0.565 + StoichNum(291,518) = 1.11 + StoichNum(291,519) = 0.09 + StoichNum(291,526) = 0.31 + StoichNum(291,531) = 1 + StoichNum(291,533) = -1 + StoichNum(291,534) = 1 + StoichNum(291,536) = -1 + StoichNum(291,544) = 1 + StoichNum(291,550) = 1 + StoichNum(291,552) = 1 + StoichNum(291,553) = -1 + StoichNum(291,554) = 0.5 + StoichNum(291,555) = 2 + StoichNum(291,557) = 2 + StoichNum(291,558) = 0.7 + StoichNum(291,559) = 1 + StoichNum(291,566) = 1 + StoichNum(291,567) = 0.022 + StoichNum(291,568) = 1 + StoichNum(291,581) = 0.995 + StoichNum(291,582) = 1 + StoichNum(291,586) = 1 + StoichNum(291,593) = 1 + StoichNum(291,594) = 1 + StoichNum(291,607) = 1 + StoichNum(291,608) = -1 + StoichNum(291,610) = 1 + StoichNum(291,611) = 1 + StoichNum(291,612) = -1 + StoichNum(291,613) = 1 + StoichNum(291,614) = 1 + StoichNum(291,618) = -1 + StoichNum(291,619) = 0.5 + StoichNum(291,620) = 1 + StoichNum(291,635) = 1 + StoichNum(291,638) = -1 + StoichNum(291,741) = -1 + StoichNum(291,746) = 1 + StoichNum(291,749) = 1 + StoichNum(291,750) = 1 + StoichNum(291,752) = 1 + StoichNum(291,755) = 0.7 + StoichNum(291,770) = 1 + StoichNum(291,777) = 1 + StoichNum(291,783) = 1 + StoichNum(291,784) = 1 + StoichNum(291,795) = 1 + StoichNum(291,797) = 1 + StoichNum(291,819) = 1 + StoichNum(291,831) = 1 + StoichNum(291,838) = 1 + StoichNum(291,839) = 1 + StoichNum(291,840) = 1 + StoichNum(291,841) = 1 + StoichNum(291,843) = 1 + StoichNum(291,845) = 1 + StoichNum(291,846) = 1 + StoichNum(291,847) = 1 + StoichNum(291,848) = 1 + StoichNum(291,849) = 1 + StoichNum(291,853) = 1 + StoichNum(291,861) = 0.7 + StoichNum(291,862) = 1 + StoichNum(291,872) = 1 + StoichNum(291,873) = 1 + StoichNum(291,874) = 1 + StoichNum(291,875) = 1 + StoichNum(291,876) = 1 + StoichNum(291,878) = 1 + StoichNum(291,879) = 1 + StoichNum(291,880) = 1.555 + StoichNum(291,886) = 0.3 + StoichNum(291,887) = 1 + StoichNum(291,888) = 1 + StoichNum(291,889) = 1 END SUBROUTINE CalcStoichNum diff --git a/KPP/fullchem/gckpp_Global.F90 b/KPP/fullchem/gckpp_Global.F90 index 737336d90..e0cef6580 100644 --- a/KPP/fullchem/gckpp_Global.F90 +++ b/KPP/fullchem/gckpp_Global.F90 @@ -2,7 +2,7 @@ ! ! Global Data Module File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) @@ -119,7 +119,6 @@ MODULE gckpp_Global ! INLINED global variable declarations -! Inline common variables into gckpp_Global.F90 #include "commonIncludeVars.H" ! INLINED global variable declarations diff --git a/KPP/fullchem/gckpp_Initialize.F90 b/KPP/fullchem/gckpp_Initialize.F90 index b04d661ad..effce0552 100644 --- a/KPP/fullchem/gckpp_Initialize.F90 +++ b/KPP/fullchem/gckpp_Initialize.F90 @@ -2,7 +2,7 @@ ! ! Initialization File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) diff --git a/KPP/fullchem/gckpp_Integrator.F90 b/KPP/fullchem/gckpp_Integrator.F90 index fdd17480d..988cf0ebf 100644 --- a/KPP/fullchem/gckpp_Integrator.F90 +++ b/KPP/fullchem/gckpp_Integrator.F90 @@ -2,7 +2,7 @@ ! ! Numerical Integrator (Time-Stepping) File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) diff --git a/KPP/fullchem/gckpp_Jacobian.F90 b/KPP/fullchem/gckpp_Jacobian.F90 index 9b7a8aba2..32c494b29 100644 --- a/KPP/fullchem/gckpp_Jacobian.F90 +++ b/KPP/fullchem/gckpp_Jacobian.F90 @@ -2,7 +2,7 @@ ! ! The ODE Jacobian of Chemical Model File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) @@ -59,16950 +59,17021 @@ SUBROUTINE Jac_SP ( V, F, RCT, JVS ) ! Local variables ! B - Temporary array - REAL(kind=dp) :: B(1556) + REAL(kind=dp) :: B(1515) -! B(1) = dA(1)/dV(144) - B(1) = RCT(1)*V(277)*V(286) -! B(2) = dA(1)/dV(277) - B(2) = RCT(1)*V(144)*V(286) -! B(3) = dA(1)/dV(286) - B(3) = RCT(1)*V(144)*V(277) -! B(4) = dA(2)/dV(144) - B(4) = RCT(2)*V(271) -! B(5) = dA(2)/dV(271) - B(5) = RCT(2)*V(144) -! B(6) = dA(3)/dV(144) - B(6) = RCT(3)*V(260) -! B(7) = dA(3)/dV(260) - B(7) = RCT(3)*V(144) -! B(8) = dA(4)/dV(135) - B(8) = RCT(4)*V(277)*V(286) -! B(9) = dA(4)/dV(277) - B(9) = RCT(4)*V(135)*V(286) -! B(10) = dA(4)/dV(286) - B(10) = RCT(4)*V(135)*V(277) -! B(11) = dA(5)/dV(135) - B(11) = RCT(5)*V(271) -! B(12) = dA(5)/dV(271) - B(12) = RCT(5)*V(135) -! B(13) = dA(6)/dV(135) - B(13) = RCT(6)*V(260) -! B(14) = dA(6)/dV(260) - B(14) = RCT(6)*V(135) -! B(15) = dA(7)/dV(208) - B(15) = RCT(7)*V(286) -! B(16) = dA(7)/dV(286) - B(16) = RCT(7)*V(208) -! B(17) = dA(8)/dV(277) - B(17) = RCT(8)*V(286) -! B(18) = dA(8)/dV(286) - B(18) = RCT(8)*V(277) -! B(19) = dA(9)/dV(286) +! B(1) = dA(1)/dV(147) + B(1) = RCT(1)*V(276)*V(282) +! B(2) = dA(1)/dV(276) + B(2) = RCT(1)*V(147)*V(282) +! B(3) = dA(1)/dV(282) + B(3) = RCT(1)*V(147)*V(276) +! B(4) = dA(2)/dV(147) + B(4) = RCT(2)*V(275) +! B(5) = dA(2)/dV(275) + B(5) = RCT(2)*V(147) +! B(6) = dA(3)/dV(147) + B(6) = RCT(3)*V(265) +! B(7) = dA(3)/dV(265) + B(7) = RCT(3)*V(147) +! B(8) = dA(4)/dV(138) + B(8) = RCT(4)*V(276)*V(282) +! B(9) = dA(4)/dV(276) + B(9) = RCT(4)*V(138)*V(282) +! B(10) = dA(4)/dV(282) + B(10) = RCT(4)*V(138)*V(276) +! B(11) = dA(5)/dV(138) + B(11) = RCT(5)*V(275) +! B(12) = dA(5)/dV(275) + B(12) = RCT(5)*V(138) +! B(13) = dA(6)/dV(138) + B(13) = RCT(6)*V(265) +! B(14) = dA(6)/dV(265) + B(14) = RCT(6)*V(138) +! B(15) = dA(7)/dV(212) + B(15) = RCT(7)*V(276) +! B(16) = dA(7)/dV(276) + B(16) = RCT(7)*V(212) +! B(17) = dA(8)/dV(276) + B(17) = RCT(8)*V(282) +! B(18) = dA(8)/dV(282) + B(18) = RCT(8)*V(276) +! B(19) = dA(9)/dV(276) B(19) = RCT(9) -! B(20) = dA(10)/dV(262) - B(20) = RCT(10)*V(286) -! B(21) = dA(10)/dV(286) - B(21) = RCT(10)*V(262) -! B(22) = dA(11)/dV(85) +! B(20) = dA(10)/dV(263) + B(20) = RCT(10)*V(276) +! B(21) = dA(10)/dV(276) + B(21) = RCT(10)*V(263) +! B(22) = dA(11)/dV(86) B(22) = RCT(11) -! B(23) = dA(12)/dV(85) - B(23) = RCT(12)*V(269) -! B(24) = dA(12)/dV(269) - B(24) = RCT(12)*V(85) -! B(25) = dA(13)/dV(277) - B(25) = RCT(13)*V(280) -! B(26) = dA(13)/dV(280) - B(26) = RCT(13)*V(277) -! B(27) = dA(14)/dV(269) - B(27) = RCT(14)*V(277) -! B(28) = dA(14)/dV(277) - B(28) = RCT(14)*V(269) -! B(29) = dA(15)/dV(277) - B(29) = RCT(15)*V(281) -! B(30) = dA(15)/dV(281) - B(30) = RCT(15)*V(277) -! B(31) = dA(16)/dV(270) - B(31) = RCT(16)*V(277) -! B(32) = dA(16)/dV(277) - B(32) = RCT(16)*V(270) -! B(33) = dA(17)/dV(263) - B(33) = RCT(17)*V(277) -! B(34) = dA(17)/dV(277) - B(34) = RCT(17)*V(263) -! B(35) = dA(18)/dV(269) - B(35) = RCT(18)*2*V(269) -! B(36) = dA(19)/dV(269) - B(36) = RCT(19)*2*V(269) -! B(37) = dA(20)/dV(269) - B(37) = RCT(20)*V(281) -! B(38) = dA(20)/dV(281) - B(38) = RCT(20)*V(269) -! B(39) = dA(21)/dV(208) - B(39) = RCT(21)*V(269) -! B(40) = dA(21)/dV(269) - B(40) = RCT(21)*V(208) -! B(41) = dA(22)/dV(280) - B(41) = RCT(22)*V(281) -! B(42) = dA(22)/dV(281) - B(42) = RCT(22)*V(280) -! B(43) = dA(23)/dV(281) - B(43) = RCT(23)*2*V(281) -! B(44) = dA(24)/dV(258) - B(44) = RCT(24)*V(269) -! B(45) = dA(24)/dV(269) - B(45) = RCT(24)*V(258) -! B(46) = dA(25)/dV(186) - B(46) = RCT(25)*V(269) -! B(47) = dA(25)/dV(269) - B(47) = RCT(25)*V(186) -! B(48) = dA(26)/dV(263) - B(48) = RCT(26)*V(280) -! B(49) = dA(26)/dV(280) - B(49) = RCT(26)*V(263) -! B(50) = dA(27)/dV(263) - B(50) = RCT(27)*V(280) -! B(51) = dA(27)/dV(280) - B(51) = RCT(27)*V(263) -! B(52) = dA(28)/dV(263) - B(52) = RCT(28)*V(281) -! B(53) = dA(28)/dV(281) - B(53) = RCT(28)*V(263) -! B(54) = dA(29)/dV(263) - B(54) = RCT(29)*2*V(263) -! B(55) = dA(30)/dV(263) - B(55) = RCT(30)*2*V(263) -! B(56) = dA(31)/dV(263) - B(56) = RCT(31)*V(269) -! B(57) = dA(31)/dV(269) - B(57) = RCT(31)*V(263) -! B(58) = dA(32)/dV(134) - B(58) = RCT(32)*V(269) -! B(59) = dA(32)/dV(269) - B(59) = RCT(32)*V(134) -! B(60) = dA(33)/dV(134) - B(60) = RCT(33)*V(269) -! B(61) = dA(33)/dV(269) - B(61) = RCT(33)*V(134) -! B(62) = dA(34)/dV(193) - B(62) = RCT(34)*V(269) -! B(63) = dA(34)/dV(269) - B(63) = RCT(34)*V(193) -! B(64) = dA(35)/dV(193) - B(64) = RCT(35)*V(269) -! B(65) = dA(35)/dV(269) - B(65) = RCT(35)*V(193) -! B(66) = dA(36)/dV(262) - B(66) = RCT(36)*V(269) -! B(67) = dA(36)/dV(269) - B(67) = RCT(36)*V(262) -! B(68) = dA(37)/dV(269) - B(68) = RCT(37)*V(270) -! B(69) = dA(37)/dV(270) - B(69) = RCT(37)*V(269) -! B(70) = dA(38)/dV(260) - B(70) = RCT(38)*V(269) -! B(71) = dA(38)/dV(269) - B(71) = RCT(38)*V(260) -! B(72) = dA(39)/dV(269) - B(72) = RCT(39)*V(280) -! B(73) = dA(39)/dV(280) - B(73) = RCT(39)*V(269) -! B(74) = dA(40)/dV(188) - B(74) = RCT(40)*V(269) -! B(75) = dA(40)/dV(269) - B(75) = RCT(40)*V(188) -! B(76) = dA(41)/dV(270) - B(76) = RCT(41)*V(281) -! B(77) = dA(41)/dV(281) - B(77) = RCT(41)*V(270) -! B(78) = dA(42)/dV(101) - B(78) = RCT(42) -! B(79) = dA(43)/dV(101) - B(79) = RCT(43)*V(269) -! B(80) = dA(43)/dV(269) - B(80) = RCT(43)*V(101) -! B(81) = dA(44)/dV(281) - B(81) = RCT(44)*V(287) -! B(82) = dA(44)/dV(287) - B(82) = RCT(44)*V(281) -! B(83) = dA(45)/dV(280) - B(83) = RCT(45)*V(287) -! B(84) = dA(45)/dV(287) - B(84) = RCT(45)*V(280) -! B(85) = dA(46)/dV(269) - B(85) = RCT(46)*V(287) -! B(86) = dA(46)/dV(287) - B(86) = RCT(46)*V(269) -! B(87) = dA(47)/dV(270) - B(87) = RCT(47)*V(287) -! B(88) = dA(47)/dV(287) - B(88) = RCT(47)*V(270) -! B(89) = dA(48)/dV(169) - B(89) = RCT(48) -! B(90) = dA(49)/dV(207) - B(90) = RCT(49)*V(269) -! B(91) = dA(49)/dV(269) - B(91) = RCT(49)*V(207) -! B(92) = dA(50)/dV(214) - B(92) = RCT(50)*V(269) -! B(93) = dA(50)/dV(269) - B(93) = RCT(50)*V(214) -! B(94) = dA(51)/dV(270) - B(94) = RCT(51)*V(287) -! B(95) = dA(51)/dV(287) - B(95) = RCT(51)*V(270) -! B(96) = dA(52)/dV(262) - B(96) = RCT(52)*V(287) -! B(97) = dA(52)/dV(287) - B(97) = RCT(52)*V(262) -! B(98) = dA(53)/dV(261) - B(98) = RCT(53)*V(269) -! B(99) = dA(53)/dV(269) - B(99) = RCT(53)*V(261) -! B(100) = dA(54)/dV(261) - B(100) = RCT(54)*V(287) -! B(101) = dA(54)/dV(287) - B(101) = RCT(54)*V(261) -! B(102) = dA(55)/dV(257) - B(102) = RCT(55)*V(270) -! B(103) = dA(55)/dV(270) - B(103) = RCT(55)*V(257) -! B(104) = dA(56)/dV(63) - B(104) = RCT(56) -! B(105) = dA(57)/dV(257) - B(105) = RCT(57)*V(280) -! B(106) = dA(57)/dV(280) - B(106) = RCT(57)*V(257) -! B(107) = dA(58)/dV(157) - B(107) = RCT(58)*V(269) -! B(108) = dA(58)/dV(269) - B(108) = RCT(58)*V(157) -! B(109) = dA(59)/dV(213) - B(109) = RCT(59)*V(280) -! B(110) = dA(59)/dV(280) - B(110) = RCT(59)*V(213) -! B(111) = dA(60)/dV(213) - B(111) = RCT(60)*V(280) -! B(112) = dA(60)/dV(280) - B(112) = RCT(60)*V(213) -! B(113) = dA(61)/dV(235) - B(113) = RCT(61)*V(280) -! B(114) = dA(61)/dV(280) - B(114) = RCT(61)*V(235) -! B(115) = dA(62)/dV(121) - B(115) = RCT(62)*V(269) -! B(116) = dA(62)/dV(269) - B(116) = RCT(62)*V(121) -! B(117) = dA(63)/dV(121) - B(117) = RCT(63)*V(269) -! B(118) = dA(63)/dV(269) - B(118) = RCT(63)*V(121) -! B(119) = dA(64)/dV(233) - B(119) = RCT(64)*V(280) -! B(120) = dA(64)/dV(280) - B(120) = RCT(64)*V(233) -! B(121) = dA(65)/dV(233) - B(121) = RCT(65)*V(280) -! B(122) = dA(65)/dV(280) - B(122) = RCT(65)*V(233) -! B(123) = dA(66)/dV(204) - B(123) = RCT(66)*V(280) -! B(124) = dA(66)/dV(280) - B(124) = RCT(66)*V(204) -! B(125) = dA(67)/dV(112) - B(125) = RCT(67)*V(269) -! B(126) = dA(67)/dV(269) - B(126) = RCT(67)*V(112) -! B(127) = dA(68)/dV(252) - B(127) = RCT(68)*V(280) -! B(128) = dA(68)/dV(280) - B(128) = RCT(68)*V(252) -! B(129) = dA(69)/dV(252) - B(129) = RCT(69)*V(280) -! B(130) = dA(69)/dV(280) - B(130) = RCT(69)*V(252) -! B(131) = dA(70)/dV(251) - B(131) = RCT(70)*V(280) -! B(132) = dA(70)/dV(280) - B(132) = RCT(70)*V(251) -! B(133) = dA(71)/dV(248) - B(133) = RCT(71)*V(280) -! B(134) = dA(71)/dV(280) - B(134) = RCT(71)*V(248) -! B(135) = dA(72)/dV(249) - B(135) = RCT(72)*V(280) -! B(136) = dA(72)/dV(280) - B(136) = RCT(72)*V(249) -! B(137) = dA(73)/dV(253) - B(137) = RCT(73)*V(280) -! B(138) = dA(73)/dV(280) - B(138) = RCT(73)*V(253) -! B(139) = dA(74)/dV(253) - B(139) = RCT(74)*V(280) -! B(140) = dA(74)/dV(280) - B(140) = RCT(74)*V(253) -! B(141) = dA(75)/dV(197) - B(141) = RCT(75)*V(280) -! B(142) = dA(75)/dV(280) - B(142) = RCT(75)*V(197) -! B(143) = dA(76)/dV(112) - B(143) = RCT(76)*V(287) -! B(144) = dA(76)/dV(287) - B(144) = RCT(76)*V(112) -! B(145) = dA(77)/dV(198) - B(145) = RCT(77)*V(269) -! B(146) = dA(77)/dV(269) - B(146) = RCT(77)*V(198) -! B(147) = dA(78)/dV(215) - B(147) = RCT(78)*V(269) -! B(148) = dA(78)/dV(269) - B(148) = RCT(78)*V(215) -! B(149) = dA(79)/dV(255) - B(149) = RCT(79)*V(269) -! B(150) = dA(79)/dV(269) - B(150) = RCT(79)*V(255) -! B(151) = dA(80)/dV(250) - B(151) = RCT(80)*V(270) -! B(152) = dA(80)/dV(270) - B(152) = RCT(80)*V(250) -! B(153) = dA(81)/dV(49) - B(153) = RCT(81) -! B(154) = dA(82)/dV(250) - B(154) = RCT(82)*V(280) -! B(155) = dA(82)/dV(280) - B(155) = RCT(82)*V(250) -! B(156) = dA(83)/dV(255) - B(156) = RCT(83)*V(287) -! B(157) = dA(83)/dV(287) - B(157) = RCT(83)*V(255) -! B(158) = dA(84)/dV(219) - B(158) = RCT(84)*V(269) -! B(159) = dA(84)/dV(269) - B(159) = RCT(84)*V(219) -! B(160) = dA(85)/dV(233) - B(160) = RCT(85)*V(263) -! B(161) = dA(85)/dV(263) - B(161) = RCT(85)*V(233) -! B(162) = dA(86)/dV(204) - B(162) = RCT(86)*V(263) -! B(163) = dA(86)/dV(263) - B(163) = RCT(86)*V(204) -! B(164) = dA(87)/dV(252) - B(164) = RCT(87)*V(281) -! B(165) = dA(87)/dV(281) - B(165) = RCT(87)*V(252) -! B(166) = dA(88)/dV(251) - B(166) = RCT(88)*V(281) -! B(167) = dA(88)/dV(281) - B(167) = RCT(88)*V(251) -! B(168) = dA(89)/dV(248) - B(168) = RCT(89)*V(281) -! B(169) = dA(89)/dV(281) - B(169) = RCT(89)*V(248) -! B(170) = dA(90)/dV(249) - B(170) = RCT(90)*V(281) -! B(171) = dA(90)/dV(281) - B(171) = RCT(90)*V(249) -! B(172) = dA(91)/dV(253) - B(172) = RCT(91)*V(281) -! B(173) = dA(91)/dV(281) - B(173) = RCT(91)*V(253) -! B(174) = dA(92)/dV(197) - B(174) = RCT(92)*V(281) -! B(175) = dA(92)/dV(281) - B(175) = RCT(92)*V(197) -! B(176) = dA(93)/dV(222) - B(176) = RCT(93)*V(269) -! B(177) = dA(93)/dV(269) - B(177) = RCT(93)*V(222) -! B(178) = dA(94)/dV(213) - B(178) = RCT(94)*V(263) -! B(179) = dA(94)/dV(263) - B(179) = RCT(94)*V(213) -! B(180) = dA(95)/dV(235) - B(180) = RCT(95)*V(263) -! B(181) = dA(95)/dV(263) - B(181) = RCT(95)*V(235) -! B(182) = dA(96)/dV(222) - B(182) = RCT(96)*V(287) -! B(183) = dA(96)/dV(287) - B(183) = RCT(96)*V(222) -! B(184) = dA(97)/dV(252) - B(184) = RCT(97)*V(263) -! B(185) = dA(97)/dV(263) - B(185) = RCT(97)*V(252) -! B(186) = dA(98)/dV(251) - B(186) = RCT(98)*V(263) -! B(187) = dA(98)/dV(263) - B(187) = RCT(98)*V(251) -! B(188) = dA(99)/dV(248) - B(188) = RCT(99)*V(263) -! B(189) = dA(99)/dV(263) - B(189) = RCT(99)*V(248) -! B(190) = dA(100)/dV(249) - B(190) = RCT(100)*V(263) -! B(191) = dA(100)/dV(263) - B(191) = RCT(100)*V(249) -! B(192) = dA(101)/dV(253) - B(192) = RCT(101)*V(263) -! B(193) = dA(101)/dV(263) - B(193) = RCT(101)*V(253) -! B(194) = dA(102)/dV(197) - B(194) = RCT(102)*V(263) -! B(195) = dA(102)/dV(263) - B(195) = RCT(102)*V(197) -! B(196) = dA(103)/dV(129) - B(196) = RCT(103)*V(269) -! B(197) = dA(103)/dV(269) - B(197) = RCT(103)*V(129) -! B(198) = dA(104)/dV(154) - B(198) = RCT(104)*V(269) -! B(199) = dA(104)/dV(269) - B(199) = RCT(104)*V(154) -! B(200) = dA(105)/dV(213) - B(200) = RCT(105)*2*V(213) -! B(201) = dA(106)/dV(235) - B(201) = RCT(106)*2*V(235) -! B(202) = dA(107)/dV(213) - B(202) = RCT(107)*2*V(213) -! B(203) = dA(108)/dV(235) - B(203) = RCT(108)*2*V(235) -! B(204) = dA(109)/dV(213) - B(204) = RCT(109)*V(281) -! B(205) = dA(109)/dV(281) - B(205) = RCT(109)*V(213) -! B(206) = dA(110)/dV(235) - B(206) = RCT(110)*V(281) -! B(207) = dA(110)/dV(281) - B(207) = RCT(110)*V(235) -! B(208) = dA(111)/dV(233) - B(208) = RCT(111)*V(281) -! B(209) = dA(111)/dV(281) - B(209) = RCT(111)*V(233) -! B(210) = dA(112)/dV(204) - B(210) = RCT(112)*V(281) -! B(211) = dA(112)/dV(281) - B(211) = RCT(112)*V(204) -! B(212) = dA(113)/dV(250) - B(212) = RCT(113)*V(281) -! B(213) = dA(113)/dV(281) - B(213) = RCT(113)*V(250) -! B(214) = dA(114)/dV(254) - B(214) = RCT(114)*V(269) -! B(215) = dA(114)/dV(269) - B(215) = RCT(114)*V(254) -! B(216) = dA(115)/dV(254) - B(216) = RCT(115)*V(277) -! B(217) = dA(115)/dV(277) - B(217) = RCT(115)*V(254) -! B(218) = dA(116)/dV(232) - B(218) = RCT(116)*V(269) -! B(219) = dA(116)/dV(269) - B(219) = RCT(116)*V(232) -! B(220) = dA(117)/dV(232) - B(220) = RCT(117)*V(269) -! B(221) = dA(117)/dV(269) - B(221) = RCT(117)*V(232) -! B(222) = dA(118)/dV(254) - B(222) = RCT(118)*V(287) -! B(223) = dA(118)/dV(287) - B(223) = RCT(118)*V(254) -! B(224) = dA(119)/dV(218) - B(224) = RCT(119)*V(269) -! B(225) = dA(119)/dV(269) - B(225) = RCT(119)*V(218) -! B(226) = dA(120)/dV(228) - B(226) = RCT(120)*V(269) -! B(227) = dA(120)/dV(269) - B(227) = RCT(120)*V(228) -! B(228) = dA(121)/dV(218) - B(228) = RCT(121)*V(287) -! B(229) = dA(121)/dV(287) - B(229) = RCT(121)*V(218) -! B(230) = dA(122)/dV(228) - B(230) = RCT(122)*V(287) -! B(231) = dA(122)/dV(287) - B(231) = RCT(122)*V(228) -! B(232) = dA(123)/dV(246) - B(232) = RCT(123)*V(269) -! B(233) = dA(123)/dV(269) - B(233) = RCT(123)*V(246) -! B(234) = dA(124)/dV(246) - B(234) = RCT(124)*V(269) -! B(235) = dA(124)/dV(269) - B(235) = RCT(124)*V(246) -! B(236) = dA(125)/dV(233) - B(236) = RCT(125)*V(257) -! B(237) = dA(125)/dV(257) - B(237) = RCT(125)*V(233) -! B(238) = dA(126)/dV(204) - B(238) = RCT(126)*V(257) -! B(239) = dA(126)/dV(257) - B(239) = RCT(126)*V(204) -! B(240) = dA(127)/dV(233) - B(240) = RCT(127)*V(257) -! B(241) = dA(127)/dV(257) - B(241) = RCT(127)*V(233) -! B(242) = dA(128)/dV(204) - B(242) = RCT(128)*V(257) -! B(243) = dA(128)/dV(257) - B(243) = RCT(128)*V(204) -! B(244) = dA(129)/dV(250) - B(244) = RCT(129)*V(263) -! B(245) = dA(129)/dV(263) - B(245) = RCT(129)*V(250) -! B(246) = dA(130)/dV(250) - B(246) = RCT(130)*V(263) -! B(247) = dA(130)/dV(263) - B(247) = RCT(130)*V(250) -! B(248) = dA(131)/dV(111) - B(248) = RCT(131)*V(269) -! B(249) = dA(131)/dV(269) - B(249) = RCT(131)*V(111) -! B(250) = dA(132)/dV(108) - B(250) = RCT(132)*V(269) -! B(251) = dA(132)/dV(269) - B(251) = RCT(132)*V(108) -! B(252) = dA(133)/dV(92) - B(252) = RCT(133)*V(269) -! B(253) = dA(133)/dV(269) - B(253) = RCT(133)*V(92) -! B(254) = dA(134)/dV(93) - B(254) = RCT(134)*V(269) -! B(255) = dA(134)/dV(269) - B(255) = RCT(134)*V(93) -! B(256) = dA(135)/dV(91) - B(256) = RCT(135)*V(269) -! B(257) = dA(135)/dV(269) - B(257) = RCT(135)*V(91) -! B(258) = dA(136)/dV(94) - B(258) = RCT(136)*V(269) -! B(259) = dA(136)/dV(269) - B(259) = RCT(136)*V(94) -! B(260) = dA(137)/dV(110) - B(260) = RCT(137)*V(269) -! B(261) = dA(137)/dV(269) - B(261) = RCT(137)*V(110) -! B(262) = dA(138)/dV(23) - B(262) = RCT(138)*V(269) -! B(263) = dA(138)/dV(269) - B(263) = RCT(138)*V(23) -! B(264) = dA(139)/dV(66) - B(264) = RCT(139)*V(269) -! B(265) = dA(139)/dV(269) - B(265) = RCT(139)*V(66) -! B(266) = dA(140)/dV(157) - B(266) = RCT(140)*V(287) -! B(267) = dA(140)/dV(287) - B(267) = RCT(140)*V(157) -! B(268) = dA(141)/dV(257) - B(268) = RCT(141)*2*V(257) -! B(269) = dA(142)/dV(257) - B(269) = RCT(142)*V(263) -! B(270) = dA(142)/dV(263) - B(270) = RCT(142)*V(257) -! B(271) = dA(143)/dV(257) - B(271) = RCT(143)*V(263) -! B(272) = dA(143)/dV(263) - B(272) = RCT(143)*V(257) -! B(273) = dA(144)/dV(252) - B(273) = RCT(144)*V(257) -! B(274) = dA(144)/dV(257) - B(274) = RCT(144)*V(252) -! B(275) = dA(145)/dV(248) - B(275) = RCT(145)*V(257) -! B(276) = dA(145)/dV(257) - B(276) = RCT(145)*V(248) -! B(277) = dA(146)/dV(249) - B(277) = RCT(146)*V(257) -! B(278) = dA(146)/dV(257) - B(278) = RCT(146)*V(249) -! B(279) = dA(147)/dV(253) - B(279) = RCT(147)*V(257) -! B(280) = dA(147)/dV(257) - B(280) = RCT(147)*V(253) -! B(281) = dA(148)/dV(251) - B(281) = RCT(148)*V(257) -! B(282) = dA(148)/dV(257) - B(282) = RCT(148)*V(251) -! B(283) = dA(149)/dV(197) - B(283) = RCT(149)*V(257) -! B(284) = dA(149)/dV(257) - B(284) = RCT(149)*V(197) -! B(285) = dA(150)/dV(252) - B(285) = RCT(150)*V(257) -! B(286) = dA(150)/dV(257) - B(286) = RCT(150)*V(252) -! B(287) = dA(151)/dV(248) - B(287) = RCT(151)*V(257) -! B(288) = dA(151)/dV(257) - B(288) = RCT(151)*V(248) -! B(289) = dA(152)/dV(249) - B(289) = RCT(152)*V(257) -! B(290) = dA(152)/dV(257) - B(290) = RCT(152)*V(249) -! B(291) = dA(153)/dV(251) - B(291) = RCT(153)*V(257) -! B(292) = dA(153)/dV(257) - B(292) = RCT(153)*V(251) -! B(293) = dA(154)/dV(197) - B(293) = RCT(154)*V(257) -! B(294) = dA(154)/dV(257) - B(294) = RCT(154)*V(197) -! B(295) = dA(155)/dV(253) - B(295) = RCT(155)*V(257) -! B(296) = dA(155)/dV(257) - B(296) = RCT(155)*V(253) -! B(297) = dA(156)/dV(213) - B(297) = RCT(156)*V(257) -! B(298) = dA(156)/dV(257) - B(298) = RCT(156)*V(213) -! B(299) = dA(157)/dV(235) - B(299) = RCT(157)*V(257) -! B(300) = dA(157)/dV(257) - B(300) = RCT(157)*V(235) -! B(301) = dA(158)/dV(213) - B(301) = RCT(158)*V(257) -! B(302) = dA(158)/dV(257) - B(302) = RCT(158)*V(213) -! B(303) = dA(159)/dV(235) - B(303) = RCT(159)*V(257) -! B(304) = dA(159)/dV(257) - B(304) = RCT(159)*V(235) -! B(305) = dA(160)/dV(250) - B(305) = RCT(160)*V(257) -! B(306) = dA(160)/dV(257) - B(306) = RCT(160)*V(250) -! B(307) = dA(161)/dV(287) - B(307) = RCT(161)*2*V(287) -! B(308) = dA(162)/dV(263) - B(308) = RCT(162)*V(270) -! B(309) = dA(162)/dV(270) - B(309) = RCT(162)*V(263) -! B(310) = dA(163)/dV(71) - B(310) = RCT(163) -! B(311) = dA(164)/dV(82) - B(311) = RCT(164)*V(269) -! B(312) = dA(164)/dV(269) - B(312) = RCT(164)*V(82) -! B(313) = dA(165)/dV(82) - B(313) = RCT(165)*V(269) -! B(314) = dA(165)/dV(269) - B(314) = RCT(165)*V(82) -! B(315) = dA(166)/dV(82) - B(315) = RCT(166)*V(287) -! B(316) = dA(166)/dV(287) - B(316) = RCT(166)*V(82) -! B(317) = dA(167)/dV(269) - B(317) = RCT(167)*V(286) -! B(318) = dA(167)/dV(286) - B(318) = RCT(167)*V(269) -! B(319) = dA(168)/dV(277) - B(319) = RCT(168)*V(282) -! B(320) = dA(168)/dV(282) - B(320) = RCT(168)*V(277) -! B(321) = dA(169)/dV(274) - B(321) = RCT(169)*V(281) -! B(322) = dA(169)/dV(281) - B(322) = RCT(169)*V(274) -! B(323) = dA(170)/dV(281) - B(323) = RCT(170)*V(282) -! B(324) = dA(170)/dV(282) - B(324) = RCT(170)*V(281) -! B(325) = dA(171)/dV(269) - B(325) = RCT(171)*V(272) -! B(326) = dA(171)/dV(272) - B(326) = RCT(171)*V(269) -! B(327) = dA(172)/dV(274) - B(327) = RCT(172)*2*V(274) -! B(328) = dA(173)/dV(274) - B(328) = RCT(173)*2*V(274) -! B(329) = dA(174)/dV(274) - B(329) = RCT(174)*V(280) -! B(330) = dA(174)/dV(280) - B(330) = RCT(174)*V(274) -! B(331) = dA(175)/dV(172) - B(331) = RCT(175)*V(282) -! B(332) = dA(175)/dV(282) - B(332) = RCT(175)*V(172) -! B(333) = dA(176)/dV(125) - B(333) = RCT(176)*V(269) -! B(334) = dA(176)/dV(269) - B(334) = RCT(176)*V(125) -! B(335) = dA(177)/dV(256) - B(335) = RCT(177)*V(284) -! B(336) = dA(177)/dV(284) - B(336) = RCT(177)*V(256) -! B(337) = dA(178)/dV(272) - B(337) = RCT(178)*V(284) -! B(338) = dA(178)/dV(284) - B(338) = RCT(178)*V(272) -! B(339) = dA(179)/dV(269) - B(339) = RCT(179)*V(274) -! B(340) = dA(179)/dV(274) - B(340) = RCT(179)*V(269) -! B(341) = dA(180)/dV(282) - B(341) = RCT(180)*V(287) -! B(342) = dA(180)/dV(287) - B(342) = RCT(180)*V(282) -! B(343) = dA(181)/dV(262) - B(343) = RCT(181)*V(282) -! B(344) = dA(181)/dV(282) - B(344) = RCT(181)*V(262) -! B(345) = dA(182)/dV(261) - B(345) = RCT(182)*V(282) -! B(346) = dA(182)/dV(282) - B(346) = RCT(182)*V(261) -! B(347) = dA(183)/dV(219) - B(347) = RCT(183)*V(282) -! B(348) = dA(183)/dV(282) - B(348) = RCT(183)*V(219) -! B(349) = dA(184)/dV(157) - B(349) = RCT(184)*V(282) -! B(350) = dA(184)/dV(282) - B(350) = RCT(184)*V(157) -! B(351) = dA(185)/dV(121) - B(351) = RCT(185)*V(282) -! B(352) = dA(185)/dV(282) - B(352) = RCT(185)*V(121) -! B(353) = dA(186)/dV(270) - B(353) = RCT(186)*V(282) -! B(354) = dA(186)/dV(282) - B(354) = RCT(186)*V(270) -! B(355) = dA(187)/dV(270) - B(355) = RCT(187)*V(274) -! B(356) = dA(187)/dV(274) - B(356) = RCT(187)*V(270) -! B(357) = dA(188)/dV(74) - B(357) = RCT(188)*V(269) -! B(358) = dA(188)/dV(269) - B(358) = RCT(188)*V(74) -! B(359) = dA(189)/dV(70) - B(359) = RCT(189)*V(269) -! B(360) = dA(189)/dV(269) - B(360) = RCT(189)*V(70) -! B(361) = dA(190)/dV(97) - B(361) = RCT(190)*V(269) -! B(362) = dA(190)/dV(269) - B(362) = RCT(190)*V(97) -! B(363) = dA(191)/dV(268) - B(363) = RCT(191)*V(279) -! B(364) = dA(191)/dV(279) - B(364) = RCT(191)*V(268) -! B(365) = dA(192)/dV(268) - B(365) = RCT(192)*F(2) -! B(367) = dA(193)/dV(268) - B(367) = RCT(193)*F(3) -! B(369) = dA(194)/dV(268) - B(369) = RCT(194)*F(1) -! B(371) = dA(195)/dV(57) - B(371) = RCT(195)*V(268) -! B(372) = dA(195)/dV(268) - B(372) = RCT(195)*V(57) -! B(373) = dA(196)/dV(57) - B(373) = RCT(196)*V(268) -! B(374) = dA(196)/dV(268) - B(374) = RCT(196)*V(57) -! B(375) = dA(197)/dV(186) - B(375) = RCT(197)*V(268) -! B(376) = dA(197)/dV(268) - B(376) = RCT(197)*V(186) -! B(377) = dA(198)/dV(186) - B(377) = RCT(198)*V(268) -! B(378) = dA(198)/dV(268) - B(378) = RCT(198)*V(186) -! B(379) = dA(199)/dV(186) - B(379) = RCT(199)*V(268) -! B(380) = dA(199)/dV(268) - B(380) = RCT(199)*V(186) -! B(381) = dA(200)/dV(284) - B(381) = RCT(200)*F(3) -! B(383) = dA(201)/dV(277) - B(383) = RCT(201)*V(284) -! B(384) = dA(201)/dV(284) - B(384) = RCT(201)*V(277) -! B(385) = dA(202)/dV(269) - B(385) = RCT(202)*F(1) -! B(387) = dA(203)/dV(269) - B(387) = RCT(203)*V(284) -! B(388) = dA(203)/dV(284) - B(388) = RCT(203)*V(269) -! B(389) = dA(204)/dV(281) - B(389) = RCT(204)*V(284) -! B(390) = dA(204)/dV(284) - B(390) = RCT(204)*V(281) -! B(391) = dA(205)/dV(268) - B(391) = RCT(205)*V(277) -! B(392) = dA(205)/dV(277) - B(392) = RCT(205)*V(268) -! B(393) = dA(206)/dV(268) - B(393) = RCT(206)*V(277) -! B(394) = dA(206)/dV(277) - B(394) = RCT(206)*V(268) -! B(395) = dA(207)/dV(62) - B(395) = RCT(207)*V(284) -! B(396) = dA(207)/dV(284) - B(396) = RCT(207)*V(62) -! B(397) = dA(208)/dV(62) - B(397) = RCT(208)*V(269) -! B(398) = dA(208)/dV(269) - B(398) = RCT(208)*V(62) -! B(399) = dA(209)/dV(270) - B(399) = RCT(209)*V(284) -! B(400) = dA(209)/dV(284) - B(400) = RCT(209)*V(270) -! B(401) = dA(210)/dV(284) - B(401) = RCT(210)*V(287) -! B(402) = dA(210)/dV(287) - B(402) = RCT(210)*V(284) -! B(403) = dA(211)/dV(280) - B(403) = RCT(211)*V(284) -! B(404) = dA(211)/dV(284) - B(404) = RCT(211)*V(280) -! B(405) = dA(212)/dV(270) - B(405) = RCT(212)*V(284) -! B(406) = dA(212)/dV(284) - B(406) = RCT(212)*V(270) -! B(407) = dA(213)/dV(208) - B(407) = RCT(213)*V(284) -! B(408) = dA(213)/dV(284) - B(408) = RCT(213)*V(208) -! B(409) = dA(214)/dV(173) - B(409) = RCT(214)*F(3) -! B(411) = dA(215)/dV(173) - B(411) = RCT(215)*V(277) -! B(412) = dA(215)/dV(277) - B(412) = RCT(215)*V(173) -! B(413) = dA(216)/dV(173) - B(413) = RCT(216)*V(281) -! B(414) = dA(216)/dV(281) - B(414) = RCT(216)*V(173) -! B(415) = dA(217)/dV(173) - B(415) = RCT(217)*V(281) -! B(416) = dA(217)/dV(281) - B(416) = RCT(217)*V(173) -! B(417) = dA(218)/dV(173) - B(417) = RCT(218)*V(281) -! B(418) = dA(218)/dV(281) - B(418) = RCT(218)*V(173) -! B(419) = dA(219)/dV(61) - B(419) = RCT(219)*F(3) -! B(421) = dA(220)/dV(61) - B(421) = RCT(220)*V(280) -! B(422) = dA(220)/dV(280) - B(422) = RCT(220)*V(61) -! B(423) = dA(221)/dV(61) - B(423) = RCT(221)*V(270) -! B(424) = dA(221)/dV(270) - B(424) = RCT(221)*V(61) -! B(425) = dA(222)/dV(274) - B(425) = RCT(222)*V(284) -! B(426) = dA(222)/dV(284) - B(426) = RCT(222)*V(274) -! B(427) = dA(223)/dV(262) - B(427) = RCT(223)*V(284) -! B(428) = dA(223)/dV(284) - B(428) = RCT(223)*V(262) -! B(429) = dA(224)/dV(268) - B(429) = RCT(224)*V(271) -! B(430) = dA(224)/dV(271) - B(430) = RCT(224)*V(268) -! B(431) = dA(225)/dV(268) - B(431) = RCT(225)*V(272) -! B(432) = dA(225)/dV(272) - B(432) = RCT(225)*V(268) -! B(433) = dA(226)/dV(192) - B(433) = RCT(226)*V(268) -! B(434) = dA(226)/dV(268) - B(434) = RCT(226)*V(192) -! B(435) = dA(227)/dV(51) - B(435) = RCT(227)*V(268) -! B(436) = dA(227)/dV(268) - B(436) = RCT(227)*V(51) -! B(437) = dA(228)/dV(97) - B(437) = RCT(228)*V(268) -! B(438) = dA(228)/dV(268) - B(438) = RCT(228)*V(97) -! B(439) = dA(229)/dV(70) - B(439) = RCT(229)*V(268) -! B(440) = dA(229)/dV(268) - B(440) = RCT(229)*V(70) -! B(441) = dA(230)/dV(74) - B(441) = RCT(230)*V(268) -! B(442) = dA(230)/dV(268) - B(442) = RCT(230)*V(74) -! B(443) = dA(231)/dV(81) - B(443) = RCT(231)*V(268) -! B(444) = dA(231)/dV(268) - B(444) = RCT(231)*V(81) -! B(445) = dA(232)/dV(52) - B(445) = RCT(232)*V(268) -! B(446) = dA(232)/dV(268) - B(446) = RCT(232)*V(52) -! B(447) = dA(233)/dV(53) - B(447) = RCT(233)*V(268) -! B(448) = dA(233)/dV(268) - B(448) = RCT(233)*V(53) -! B(449) = dA(234)/dV(55) - B(449) = RCT(234)*V(268) -! B(450) = dA(234)/dV(268) - B(450) = RCT(234)*V(55) -! B(451) = dA(235)/dV(44) - B(451) = RCT(235)*V(268) -! B(452) = dA(235)/dV(268) - B(452) = RCT(235)*V(44) -! B(453) = dA(236)/dV(79) - B(453) = RCT(236)*V(268) -! B(454) = dA(236)/dV(268) - B(454) = RCT(236)*V(79) -! B(455) = dA(237)/dV(80) - B(455) = RCT(237)*V(268) -! B(456) = dA(237)/dV(268) - B(456) = RCT(237)*V(80) -! B(457) = dA(238)/dV(78) - B(457) = RCT(238)*V(268) -! B(458) = dA(238)/dV(268) - B(458) = RCT(238)*V(78) -! B(459) = dA(239)/dV(48) - B(459) = RCT(239)*V(268) -! B(460) = dA(239)/dV(268) - B(460) = RCT(239)*V(48) -! B(461) = dA(240)/dV(42) - B(461) = RCT(240)*V(268) -! B(462) = dA(240)/dV(268) - B(462) = RCT(240)*V(42) -! B(463) = dA(241)/dV(46) - B(463) = RCT(241)*V(268) -! B(464) = dA(241)/dV(268) - B(464) = RCT(241)*V(46) -! B(465) = dA(242)/dV(45) - B(465) = RCT(242)*V(268) -! B(466) = dA(242)/dV(268) - B(466) = RCT(242)*V(45) -! B(467) = dA(243)/dV(192) - B(467) = RCT(243)*V(269) -! B(468) = dA(243)/dV(269) - B(468) = RCT(243)*V(192) -! B(469) = dA(244)/dV(263) - B(469) = RCT(244)*V(273) -! B(470) = dA(244)/dV(273) - B(470) = RCT(244)*V(263) -! B(471) = dA(245)/dV(269) - B(471) = RCT(245)*V(273) -! B(472) = dA(245)/dV(273) - B(472) = RCT(245)*V(269) -! B(473) = dA(246)/dV(269) - B(473) = RCT(246)*V(273) -! B(474) = dA(246)/dV(273) - B(474) = RCT(246)*V(269) -! B(475) = dA(247)/dV(107) - B(475) = RCT(247)*V(269) -! B(476) = dA(247)/dV(269) - B(476) = RCT(247)*V(107) -! B(477) = dA(248)/dV(72) - B(477) = RCT(248)*V(269) -! B(478) = dA(248)/dV(269) - B(478) = RCT(248)*V(72) -! B(479) = dA(249)/dV(269) - B(479) = RCT(249)*V(271) -! B(480) = dA(249)/dV(271) - B(480) = RCT(249)*V(269) -! B(481) = dA(250)/dV(267) - B(481) = RCT(250)*V(269) -! B(482) = dA(250)/dV(269) - B(482) = RCT(250)*V(267) -! B(483) = dA(251)/dV(231) - B(483) = RCT(251)*V(269) -! B(484) = dA(251)/dV(269) - B(484) = RCT(251)*V(231) -! B(485) = dA(252)/dV(259) - B(485) = RCT(252)*V(269) -! B(486) = dA(252)/dV(269) - B(486) = RCT(252)*V(259) -! B(487) = dA(253)/dV(100) - B(487) = RCT(253)*V(269) -! B(488) = dA(253)/dV(269) - B(488) = RCT(253)*V(100) -! B(489) = dA(254)/dV(73) - B(489) = RCT(254)*V(269) -! B(490) = dA(254)/dV(269) - B(490) = RCT(254)*V(73) -! B(491) = dA(255)/dV(68) - B(491) = RCT(255)*V(269) -! B(492) = dA(255)/dV(269) - B(492) = RCT(255)*V(68) -! B(493) = dA(256)/dV(39) - B(493) = RCT(256)*V(269) -! B(494) = dA(256)/dV(269) - B(494) = RCT(256)*V(39) -! B(495) = dA(257)/dV(81) - B(495) = RCT(257)*V(269) -! B(496) = dA(257)/dV(269) - B(496) = RCT(257)*V(81) -! B(497) = dA(258)/dV(79) - B(497) = RCT(258)*V(269) -! B(498) = dA(258)/dV(269) - B(498) = RCT(258)*V(79) -! B(499) = dA(259)/dV(80) - B(499) = RCT(259)*V(269) -! B(500) = dA(259)/dV(269) - B(500) = RCT(259)*V(80) -! B(501) = dA(260)/dV(78) - B(501) = RCT(260)*V(269) -! B(502) = dA(260)/dV(269) - B(502) = RCT(260)*V(78) -! B(503) = dA(261)/dV(186) - B(503) = RCT(261)*V(285) -! B(504) = dA(261)/dV(285) - B(504) = RCT(261)*V(186) -! B(505) = dA(262)/dV(262) - B(505) = RCT(262)*V(285) -! B(506) = dA(262)/dV(285) - B(506) = RCT(262)*V(262) -! B(507) = dA(263)/dV(277) - B(507) = RCT(263)*V(285) -! B(508) = dA(263)/dV(285) - B(508) = RCT(263)*V(277) -! B(509) = dA(264)/dV(285) - B(509) = RCT(264)*F(1) -! B(511) = dA(265)/dV(208) - B(511) = RCT(265)*V(285) -! B(512) = dA(265)/dV(285) - B(512) = RCT(265)*V(208) -! B(513) = dA(266)/dV(281) - B(513) = RCT(266)*V(285) -! B(514) = dA(266)/dV(285) - B(514) = RCT(266)*V(281) -! B(515) = dA(267)/dV(281) - B(515) = RCT(267)*V(285) -! B(516) = dA(267)/dV(285) - B(516) = RCT(267)*V(281) -! B(517) = dA(268)/dV(273) - B(517) = RCT(268)*V(284) -! B(518) = dA(268)/dV(284) - B(518) = RCT(268)*V(273) -! B(519) = dA(269)/dV(273) - B(519) = RCT(269)*V(281) -! B(520) = dA(269)/dV(281) - B(520) = RCT(269)*V(273) -! B(521) = dA(270)/dV(273) - B(521) = RCT(270)*V(280) -! B(522) = dA(270)/dV(280) - B(522) = RCT(270)*V(273) -! B(523) = dA(271)/dV(270) - B(523) = RCT(271)*V(273) -! B(524) = dA(271)/dV(273) - B(524) = RCT(271)*V(270) -! B(525) = dA(272)/dV(273) - B(525) = RCT(272)*2*V(273) -! B(526) = dA(273)/dV(273) - B(526) = RCT(273)*2*V(273) -! B(527) = dA(274)/dV(273) - B(527) = RCT(274)*2*V(273) -! B(528) = dA(275)/dV(285) - B(528) = RCT(275)*F(3) -! B(530) = dA(276)/dV(103) - B(530) = RCT(276) -! B(531) = dA(277)/dV(273) - B(531) = RCT(277)*2*V(273) -! B(532) = dA(278)/dV(72) - B(532) = RCT(278) -! B(533) = dA(279)/dV(103) - B(533) = RCT(279)*V(285) -! B(534) = dA(279)/dV(285) - B(534) = RCT(279)*V(103) -! B(535) = dA(280)/dV(103) - B(535) = RCT(280)*V(285) -! B(536) = dA(280)/dV(285) - B(536) = RCT(280)*V(103) -! B(537) = dA(281)/dV(273) - B(537) = RCT(281)*V(274) -! B(538) = dA(281)/dV(274) - B(538) = RCT(281)*V(273) -! B(539) = dA(282)/dV(273) - B(539) = RCT(282)*V(274) -! B(540) = dA(282)/dV(274) - B(540) = RCT(282)*V(273) -! B(541) = dA(283)/dV(273) - B(541) = RCT(283)*V(274) -! B(542) = dA(283)/dV(274) - B(542) = RCT(283)*V(273) -! B(543) = dA(284)/dV(259) - B(543) = RCT(284)*V(284) -! B(544) = dA(284)/dV(284) - B(544) = RCT(284)*V(259) -! B(545) = dA(285)/dV(259) - B(545) = RCT(285)*V(285) -! B(546) = dA(285)/dV(285) - B(546) = RCT(285)*V(259) -! B(547) = dA(286)/dV(100) - B(547) = RCT(286)*V(285) -! B(548) = dA(286)/dV(285) - B(548) = RCT(286)*V(100) -! B(549) = dA(287)/dV(73) - B(549) = RCT(287)*V(285) -! B(550) = dA(287)/dV(285) - B(550) = RCT(287)*V(73) -! B(551) = dA(288)/dV(68) - B(551) = RCT(288)*V(285) -! B(552) = dA(288)/dV(285) - B(552) = RCT(288)*V(68) -! B(553) = dA(289)/dV(207) - B(553) = RCT(289)*V(285) -! B(554) = dA(289)/dV(285) - B(554) = RCT(289)*V(207) -! B(555) = dA(290)/dV(263) - B(555) = RCT(290)*V(285) -! B(556) = dA(290)/dV(285) - B(556) = RCT(290)*V(263) -! B(557) = dA(291)/dV(134) - B(557) = RCT(291)*V(285) -! B(558) = dA(291)/dV(285) - B(558) = RCT(291)*V(134) -! B(559) = dA(292)/dV(157) - B(559) = RCT(292)*V(285) -! B(560) = dA(292)/dV(285) - B(560) = RCT(292)*V(157) -! B(561) = dA(293)/dV(213) - B(561) = RCT(293)*V(285) -! B(562) = dA(293)/dV(285) - B(562) = RCT(293)*V(213) -! B(563) = dA(294)/dV(235) - B(563) = RCT(294)*V(285) -! B(564) = dA(294)/dV(285) - B(564) = RCT(294)*V(235) -! B(565) = dA(295)/dV(214) - B(565) = RCT(295)*V(285) -! B(566) = dA(295)/dV(285) - B(566) = RCT(295)*V(214) -! B(567) = dA(296)/dV(129) - B(567) = RCT(296)*V(285) -! B(568) = dA(296)/dV(285) - B(568) = RCT(296)*V(129) -! B(569) = dA(297)/dV(215) - B(569) = RCT(297)*V(285) -! B(570) = dA(297)/dV(285) - B(570) = RCT(297)*V(215) -! B(571) = dA(298)/dV(121) - B(571) = RCT(298)*V(285) -! B(572) = dA(298)/dV(285) - B(572) = RCT(298)*V(121) -! B(573) = dA(299)/dV(121) - B(573) = RCT(299)*V(285) -! B(574) = dA(299)/dV(285) - B(574) = RCT(299)*V(121) -! B(575) = dA(300)/dV(219) - B(575) = RCT(300)*V(285) -! B(576) = dA(300)/dV(285) - B(576) = RCT(300)*V(219) -! B(577) = dA(301)/dV(220) - B(577) = RCT(301)*V(285) -! B(578) = dA(301)/dV(285) - B(578) = RCT(301)*V(220) -! B(579) = dA(302)/dV(112) - B(579) = RCT(302)*V(285) -! B(580) = dA(302)/dV(285) - B(580) = RCT(302)*V(112) -! B(581) = dA(303)/dV(254) - B(581) = RCT(303)*V(285) -! B(582) = dA(303)/dV(285) - B(582) = RCT(303)*V(254) -! B(583) = dA(304)/dV(254) - B(583) = RCT(304)*V(282) -! B(584) = dA(304)/dV(282) - B(584) = RCT(304)*V(254) -! B(585) = dA(305)/dV(265) - B(585) = RCT(305)*V(280) -! B(586) = dA(305)/dV(280) - B(586) = RCT(305)*V(265) -! B(587) = dA(306)/dV(56) - B(587) = RCT(306)*2*V(56) -! B(588) = dA(307)/dV(265) - B(588) = RCT(307)*V(270) -! B(589) = dA(307)/dV(270) - B(589) = RCT(307)*V(265) -! B(590) = dA(308)/dV(199) - B(590) = RCT(308) -! B(591) = dA(309)/dV(199) - B(591) = RCT(309)*2*V(199) -! B(592) = dA(310)/dV(140) - B(592) = RCT(310)*V(287) -! B(593) = dA(310)/dV(287) - B(593) = RCT(310)*V(140) -! B(594) = dA(311)/dV(223) - B(594) = RCT(311)*V(270) -! B(595) = dA(311)/dV(270) - B(595) = RCT(311)*V(223) -! B(596) = dA(312)/dV(266) - B(596) = RCT(312) -! B(597) = dA(313)/dV(265) - B(597) = RCT(313)*V(266) -! B(598) = dA(313)/dV(266) - B(598) = RCT(313)*V(265) -! B(599) = dA(314)/dV(265) - B(599) = RCT(314)*V(274) -! B(600) = dA(314)/dV(274) - B(600) = RCT(314)*V(265) -! B(601) = dA(315)/dV(223) - B(601) = RCT(315)*V(274) -! B(602) = dA(315)/dV(274) - B(602) = RCT(315)*V(223) -! B(603) = dA(316)/dV(223) - B(603) = RCT(316)*V(274) -! B(604) = dA(316)/dV(274) - B(604) = RCT(316)*V(223) -! B(605) = dA(317)/dV(90) - B(605) = RCT(317)*V(223) -! B(606) = dA(317)/dV(223) - B(606) = RCT(317)*V(90) -! B(607) = dA(318)/dV(90) - B(607) = RCT(318)*2*V(90) -! B(608) = dA(319)/dV(38) - B(608) = RCT(319) -! B(609) = dA(320)/dV(90) - B(609) = RCT(320)*V(280) -! B(610) = dA(320)/dV(280) - B(610) = RCT(320)*V(90) -! B(611) = dA(321)/dV(223) - B(611) = RCT(321)*V(273) -! B(612) = dA(321)/dV(273) - B(612) = RCT(321)*V(223) -! B(613) = dA(322)/dV(223) - B(613) = RCT(322)*V(273) -! B(614) = dA(322)/dV(273) - B(614) = RCT(322)*V(223) -! B(615) = dA(323)/dV(223) - B(615) = RCT(323)*V(273) -! B(616) = dA(323)/dV(273) - B(616) = RCT(323)*V(223) -! B(617) = dA(324)/dV(265) - B(617) = RCT(324)*V(277) -! B(618) = dA(324)/dV(277) - B(618) = RCT(324)*V(265) -! B(619) = dA(325)/dV(265) - B(619) = RCT(325)*V(281) -! B(620) = dA(325)/dV(281) - B(620) = RCT(325)*V(265) -! B(621) = dA(326)/dV(140) - B(621) = RCT(326)*V(269) -! B(622) = dA(326)/dV(269) - B(622) = RCT(326)*V(140) -! B(623) = dA(327)/dV(65) - B(623) = RCT(327)*V(269) -! B(624) = dA(327)/dV(269) - B(624) = RCT(327)*V(65) -! B(625) = dA(328)/dV(264) - B(625) = RCT(328)*V(269) -! B(626) = dA(328)/dV(269) - B(626) = RCT(328)*V(264) -! B(627) = dA(329)/dV(223) - B(627) = RCT(329)*V(281) -! B(628) = dA(329)/dV(281) - B(628) = RCT(329)*V(223) -! B(629) = dA(330)/dV(223) - B(629) = RCT(330)*V(280) -! B(630) = dA(330)/dV(280) - B(630) = RCT(330)*V(223) -! B(631) = dA(331)/dV(223) - B(631) = RCT(331)*2*V(223) -! B(632) = dA(332)/dV(223) - B(632) = RCT(332)*2*V(223) -! B(633) = dA(333)/dV(40) - B(633) = RCT(333) -! B(634) = dA(334)/dV(40) - B(634) = RCT(334) -! B(635) = dA(335)/dV(43) - B(635) = RCT(335)*V(269) -! B(636) = dA(335)/dV(269) - B(636) = RCT(335)*V(43) -! B(637) = dA(336)/dV(205) - B(637) = RCT(336)*V(269) -! B(638) = dA(336)/dV(269) - B(638) = RCT(336)*V(205) -! B(639) = dA(337)/dV(194) - B(639) = RCT(337)*V(269) -! B(640) = dA(337)/dV(269) - B(640) = RCT(337)*V(194) -! B(641) = dA(338)/dV(230) - B(641) = RCT(338)*V(258) -! B(642) = dA(338)/dV(258) - B(642) = RCT(338)*V(230) -! B(643) = dA(339)/dV(230) - B(643) = RCT(339)*V(280) -! B(644) = dA(339)/dV(280) - B(644) = RCT(339)*V(230) -! B(645) = dA(340)/dV(230) - B(645) = RCT(340)*V(270) -! B(646) = dA(340)/dV(270) - B(646) = RCT(340)*V(230) -! B(647) = dA(341)/dV(230) - B(647) = RCT(341)*V(279) -! B(648) = dA(341)/dV(279) - B(648) = RCT(341)*V(230) -! B(649) = dA(342)/dV(230) - B(649) = RCT(342)*V(279)*V(279) -! B(650) = dA(342)/dV(279) - B(650) = RCT(342)*2*V(230)*V(279) -! B(651) = dA(343)/dV(230) - B(651) = RCT(343)*V(277) -! B(652) = dA(343)/dV(277) - B(652) = RCT(343)*V(230) -! B(653) = dA(344)/dV(230) - B(653) = RCT(344)*V(286) -! B(654) = dA(344)/dV(286) - B(654) = RCT(344)*V(230) -! B(655) = dA(345)/dV(191) - B(655) = RCT(345)*V(258) -! B(656) = dA(345)/dV(258) - B(656) = RCT(345)*V(191) -! B(657) = dA(346)/dV(191) - B(657) = RCT(346)*V(280) -! B(658) = dA(346)/dV(280) - B(658) = RCT(346)*V(191) -! B(659) = dA(347)/dV(191) - B(659) = RCT(347)*V(270) -! B(660) = dA(347)/dV(270) - B(660) = RCT(347)*V(191) -! B(661) = dA(348)/dV(191) - B(661) = RCT(348)*V(286) -! B(662) = dA(348)/dV(286) - B(662) = RCT(348)*V(191) -! B(663) = dA(349)/dV(191) - B(663) = RCT(349)*V(279) -! B(664) = dA(349)/dV(279) - B(664) = RCT(349)*V(191) -! B(665) = dA(350)/dV(191) - B(665) = RCT(350)*V(279) -! B(666) = dA(350)/dV(279) - B(666) = RCT(350)*V(191) -! B(667) = dA(351)/dV(150) - B(667) = RCT(351)*V(269) -! B(668) = dA(351)/dV(269) - B(668) = RCT(351)*V(150) -! B(669) = dA(352)/dV(151) - B(669) = RCT(352)*V(269) -! B(670) = dA(352)/dV(269) - B(670) = RCT(352)*V(151) -! B(671) = dA(353)/dV(234) - B(671) = RCT(353)*V(280) -! B(672) = dA(353)/dV(280) - B(672) = RCT(353)*V(234) -! B(673) = dA(354)/dV(234) - B(673) = RCT(354)*V(281) -! B(674) = dA(354)/dV(281) - B(674) = RCT(354)*V(234) -! B(675) = dA(355)/dV(234) - B(675) = RCT(355)*V(263) -! B(676) = dA(355)/dV(263) - B(676) = RCT(355)*V(234) -! B(677) = dA(356)/dV(234) - B(677) = RCT(356)*V(257) -! B(678) = dA(356)/dV(257) - B(678) = RCT(356)*V(234) -! B(679) = dA(357)/dV(234) - B(679) = RCT(357)*V(287) -! B(680) = dA(357)/dV(287) - B(680) = RCT(357)*V(234) -! B(681) = dA(358)/dV(150) - B(681) = RCT(358)*V(277) -! B(682) = dA(358)/dV(277) - B(682) = RCT(358)*V(150) -! B(683) = dA(359)/dV(151) - B(683) = RCT(359)*V(277) -! B(684) = dA(359)/dV(277) - B(684) = RCT(359)*V(151) -! B(685) = dA(360)/dV(150) - B(685) = RCT(360)*V(287) -! B(686) = dA(360)/dV(287) - B(686) = RCT(360)*V(150) -! B(687) = dA(361)/dV(151) - B(687) = RCT(361)*V(287) -! B(688) = dA(361)/dV(287) - B(688) = RCT(361)*V(151) -! B(689) = dA(362)/dV(165) - B(689) = RCT(362)*V(269) -! B(690) = dA(362)/dV(269) - B(690) = RCT(362)*V(165) -! B(691) = dA(363)/dV(165) - B(691) = RCT(363)*V(277) -! B(692) = dA(363)/dV(277) - B(692) = RCT(363)*V(165) -! B(693) = dA(364)/dV(165) - B(693) = RCT(364)*V(287) -! B(694) = dA(364)/dV(287) - B(694) = RCT(364)*V(165) -! B(695) = dA(365)/dV(221) - B(695) = RCT(365)*V(280) -! B(696) = dA(365)/dV(280) - B(696) = RCT(365)*V(221) -! B(697) = dA(366)/dV(221) - B(697) = RCT(366)*V(281) -! B(698) = dA(366)/dV(281) - B(698) = RCT(366)*V(221) -! B(699) = dA(367)/dV(221) - B(699) = RCT(367)*V(263) -! B(700) = dA(367)/dV(263) - B(700) = RCT(367)*V(221) -! B(701) = dA(368)/dV(221) - B(701) = RCT(368)*V(257) -! B(702) = dA(368)/dV(257) - B(702) = RCT(368)*V(221) -! B(703) = dA(369)/dV(221) - B(703) = RCT(369)*V(287) -! B(704) = dA(369)/dV(287) - B(704) = RCT(369)*V(221) -! B(705) = dA(370)/dV(118) - B(705) = RCT(370)*V(269) -! B(706) = dA(370)/dV(269) - B(706) = RCT(370)*V(118) -! B(707) = dA(371)/dV(211) - B(707) = RCT(371)*V(280) -! B(708) = dA(371)/dV(280) - B(708) = RCT(371)*V(211) -! B(709) = dA(372)/dV(212) - B(709) = RCT(372)*V(280) -! B(710) = dA(372)/dV(280) - B(710) = RCT(372)*V(212) -! B(711) = dA(373)/dV(211) - B(711) = RCT(373)*V(281) -! B(712) = dA(373)/dV(281) - B(712) = RCT(373)*V(211) -! B(713) = dA(374)/dV(212) - B(713) = RCT(374)*V(281) -! B(714) = dA(374)/dV(281) - B(714) = RCT(374)*V(212) -! B(715) = dA(375)/dV(211) - B(715) = RCT(375)*V(263) -! B(716) = dA(375)/dV(263) - B(716) = RCT(375)*V(211) -! B(717) = dA(376)/dV(212) - B(717) = RCT(376)*V(263) -! B(718) = dA(376)/dV(263) - B(718) = RCT(376)*V(212) -! B(719) = dA(377)/dV(211) - B(719) = RCT(377)*V(257) -! B(720) = dA(377)/dV(257) - B(720) = RCT(377)*V(211) -! B(721) = dA(378)/dV(212) - B(721) = RCT(378)*V(257) -! B(722) = dA(378)/dV(257) - B(722) = RCT(378)*V(212) -! B(723) = dA(379)/dV(211) - B(723) = RCT(379)*V(287) -! B(724) = dA(379)/dV(287) - B(724) = RCT(379)*V(211) -! B(725) = dA(380)/dV(212) - B(725) = RCT(380)*V(287) -! B(726) = dA(380)/dV(287) - B(726) = RCT(380)*V(212) -! B(727) = dA(381)/dV(211) - B(727) = RCT(381)*2*V(211) -! B(728) = dA(382)/dV(211) - B(728) = RCT(382)*V(212) -! B(729) = dA(382)/dV(212) - B(729) = RCT(382)*V(211) -! B(730) = dA(383)/dV(212) - B(730) = RCT(383)*2*V(212) -! B(731) = dA(384)/dV(174) - B(731) = RCT(384)*V(269) -! B(732) = dA(384)/dV(269) - B(732) = RCT(384)*V(174) -! B(733) = dA(385)/dV(196) - B(733) = RCT(385)*V(269) -! B(734) = dA(385)/dV(269) - B(734) = RCT(385)*V(196) -! B(735) = dA(386)/dV(196) - B(735) = RCT(386)*V(277) -! B(736) = dA(386)/dV(277) - B(736) = RCT(386)*V(196) -! B(737) = dA(387)/dV(196) - B(737) = RCT(387)*V(287) -! B(738) = dA(387)/dV(287) - B(738) = RCT(387)*V(196) -! B(739) = dA(388)/dV(174) - B(739) = RCT(388)*V(287) -! B(740) = dA(388)/dV(287) - B(740) = RCT(388)*V(174) -! B(741) = dA(389)/dV(96) - B(741) = RCT(389) -! B(742) = dA(390)/dV(41) - B(742) = RCT(390) -! B(743) = dA(391)/dV(131) - B(743) = RCT(391)*V(269) -! B(744) = dA(391)/dV(269) - B(744) = RCT(391)*V(131) -! B(745) = dA(392)/dV(87) - B(745) = RCT(392)*V(269) -! B(746) = dA(392)/dV(269) - B(746) = RCT(392)*V(87) -! B(747) = dA(393)/dV(88) - B(747) = RCT(393)*V(269) -! B(748) = dA(393)/dV(269) - B(748) = RCT(393)*V(88) -! B(749) = dA(394)/dV(86) - B(749) = RCT(394)*V(269) -! B(750) = dA(394)/dV(269) - B(750) = RCT(394)*V(86) -! B(751) = dA(395)/dV(89) - B(751) = RCT(395)*V(269) -! B(752) = dA(395)/dV(269) - B(752) = RCT(395)*V(89) -! B(753) = dA(396)/dV(220) - B(753) = RCT(396)*V(277) -! B(754) = dA(396)/dV(277) - B(754) = RCT(396)*V(220) -! B(755) = dA(397)/dV(220) - B(755) = RCT(397)*V(269) -! B(756) = dA(397)/dV(269) - B(756) = RCT(397)*V(220) -! B(757) = dA(398)/dV(220) - B(757) = RCT(398)*V(269) -! B(758) = dA(398)/dV(269) - B(758) = RCT(398)*V(220) -! B(759) = dA(399)/dV(220) - B(759) = RCT(399)*V(269) -! B(760) = dA(399)/dV(269) - B(760) = RCT(399)*V(220) -! B(761) = dA(400)/dV(220) - B(761) = RCT(400)*V(269) -! B(762) = dA(400)/dV(269) - B(762) = RCT(400)*V(220) -! B(763) = dA(401)/dV(242) - B(763) = RCT(401)*V(281) -! B(764) = dA(401)/dV(281) - B(764) = RCT(401)*V(242) -! B(765) = dA(402)/dV(242) - B(765) = RCT(402)*V(281) -! B(766) = dA(402)/dV(281) - B(766) = RCT(402)*V(242) -! B(767) = dA(403)/dV(243) - B(767) = RCT(403)*V(281) -! B(768) = dA(403)/dV(281) - B(768) = RCT(403)*V(243) -! B(769) = dA(404)/dV(243) - B(769) = RCT(404)*V(281) -! B(770) = dA(404)/dV(281) - B(770) = RCT(404)*V(243) -! B(771) = dA(405)/dV(242) - B(771) = RCT(405) -! B(772) = dA(406)/dV(242) - B(772) = RCT(406) -! B(773) = dA(407)/dV(243) - B(773) = RCT(407) -! B(774) = dA(408)/dV(243) - B(774) = RCT(408) -! B(775) = dA(409)/dV(242) - B(775) = RCT(409)*2*V(242) -! B(776) = dA(410)/dV(243) - B(776) = RCT(410)*2*V(243) -! B(777) = dA(411)/dV(242) - B(777) = RCT(411)*V(243) -! B(778) = dA(411)/dV(243) - B(778) = RCT(411)*V(242) -! B(779) = dA(412)/dV(242) - B(779) = RCT(412)*2*V(242) -! B(780) = dA(413)/dV(243) - B(780) = RCT(413)*2*V(243) -! B(781) = dA(414)/dV(242) - B(781) = RCT(414)*V(243) -! B(782) = dA(414)/dV(243) - B(782) = RCT(414)*V(242) -! B(783) = dA(415)/dV(242) - B(783) = RCT(415)*V(263) -! B(784) = dA(415)/dV(263) - B(784) = RCT(415)*V(242) -! B(785) = dA(416)/dV(242) - B(785) = RCT(416)*V(263) -! B(786) = dA(416)/dV(263) - B(786) = RCT(416)*V(242) -! B(787) = dA(417)/dV(243) - B(787) = RCT(417)*V(263) -! B(788) = dA(417)/dV(263) - B(788) = RCT(417)*V(243) -! B(789) = dA(418)/dV(243) - B(789) = RCT(418)*V(263) -! B(790) = dA(418)/dV(263) - B(790) = RCT(418)*V(243) -! B(791) = dA(419)/dV(242) - B(791) = RCT(419)*V(280) -! B(792) = dA(419)/dV(280) - B(792) = RCT(419)*V(242) -! B(793) = dA(420)/dV(242) - B(793) = RCT(420)*V(280) -! B(794) = dA(420)/dV(280) - B(794) = RCT(420)*V(242) -! B(795) = dA(421)/dV(242) - B(795) = RCT(421)*V(280) -! B(796) = dA(421)/dV(280) - B(796) = RCT(421)*V(242) -! B(797) = dA(422)/dV(242) - B(797) = RCT(422)*V(280) -! B(798) = dA(422)/dV(280) - B(798) = RCT(422)*V(242) -! B(799) = dA(423)/dV(243) - B(799) = RCT(423)*V(280) -! B(800) = dA(423)/dV(280) - B(800) = RCT(423)*V(243) -! B(801) = dA(424)/dV(243) - B(801) = RCT(424)*V(280) -! B(802) = dA(424)/dV(280) - B(802) = RCT(424)*V(243) -! B(803) = dA(425)/dV(243) - B(803) = RCT(425)*V(280) -! B(804) = dA(425)/dV(280) - B(804) = RCT(425)*V(243) -! B(805) = dA(426)/dV(243) - B(805) = RCT(426)*V(280) -! B(806) = dA(426)/dV(280) - B(806) = RCT(426)*V(243) -! B(807) = dA(427)/dV(182) - B(807) = RCT(427)*V(269) -! B(808) = dA(427)/dV(269) - B(808) = RCT(427)*V(182) -! B(809) = dA(428)/dV(184) - B(809) = RCT(428)*V(269) -! B(810) = dA(428)/dV(269) - B(810) = RCT(428)*V(184) -! B(811) = dA(429)/dV(126) - B(811) = RCT(429)*V(269) -! B(812) = dA(429)/dV(269) - B(812) = RCT(429)*V(126) -! B(813) = dA(430)/dV(124) - B(813) = RCT(430)*V(269) -! B(814) = dA(430)/dV(269) - B(814) = RCT(430)*V(124) -! B(815) = dA(431)/dV(189) - B(815) = RCT(431)*V(269) -! B(816) = dA(431)/dV(269) - B(816) = RCT(431)*V(189) -! B(817) = dA(432)/dV(170) - B(817) = RCT(432)*V(269) -! B(818) = dA(432)/dV(269) - B(818) = RCT(432)*V(170) -! B(819) = dA(433)/dV(106) - B(819) = RCT(433)*V(269) -! B(820) = dA(433)/dV(269) - B(820) = RCT(433)*V(106) -! B(821) = dA(434)/dV(153) - B(821) = RCT(434)*V(269) -! B(822) = dA(434)/dV(269) - B(822) = RCT(434)*V(153) -! B(823) = dA(435)/dV(153) - B(823) = RCT(435)*V(269) -! B(824) = dA(435)/dV(269) - B(824) = RCT(435)*V(153) -! B(825) = dA(436)/dV(158) - B(825) = RCT(436)*V(269) -! B(826) = dA(436)/dV(269) - B(826) = RCT(436)*V(158) -! B(827) = dA(437)/dV(158) - B(827) = RCT(437)*V(269) -! B(828) = dA(437)/dV(269) - B(828) = RCT(437)*V(158) -! B(829) = dA(438)/dV(153) - B(829) = RCT(438)*V(269) -! B(830) = dA(438)/dV(269) - B(830) = RCT(438)*V(153) -! B(831) = dA(439)/dV(158) - B(831) = RCT(439)*V(269) -! B(832) = dA(439)/dV(269) - B(832) = RCT(439)*V(158) -! B(833) = dA(440)/dV(167) - B(833) = RCT(440)*V(269) -! B(834) = dA(440)/dV(269) - B(834) = RCT(440)*V(167) -! B(835) = dA(441)/dV(161) - B(835) = RCT(441)*V(269) -! B(836) = dA(441)/dV(269) - B(836) = RCT(441)*V(161) -! B(837) = dA(442)/dV(179) - B(837) = RCT(442) -! B(838) = dA(443)/dV(179) - B(838) = RCT(443)*V(280) -! B(839) = dA(443)/dV(280) - B(839) = RCT(443)*V(179) -! B(840) = dA(444)/dV(179) - B(840) = RCT(444)*V(280) -! B(841) = dA(444)/dV(280) - B(841) = RCT(444)*V(179) -! B(842) = dA(445)/dV(179) - B(842) = RCT(445)*V(281) -! B(843) = dA(445)/dV(281) - B(843) = RCT(445)*V(179) -! B(844) = dA(446)/dV(180) - B(844) = RCT(446) -! B(845) = dA(447)/dV(180) - B(845) = RCT(447)*V(280) -! B(846) = dA(447)/dV(280) - B(846) = RCT(447)*V(180) -! B(847) = dA(448)/dV(180) - B(847) = RCT(448)*V(280) -! B(848) = dA(448)/dV(280) - B(848) = RCT(448)*V(180) -! B(849) = dA(449)/dV(180) - B(849) = RCT(449)*V(281) -! B(850) = dA(449)/dV(281) - B(850) = RCT(449)*V(180) -! B(851) = dA(450)/dV(183) - B(851) = RCT(450) -! B(852) = dA(451)/dV(183) - B(852) = RCT(451)*V(280) -! B(853) = dA(451)/dV(280) - B(853) = RCT(451)*V(183) -! B(854) = dA(452)/dV(183) - B(854) = RCT(452)*V(280) -! B(855) = dA(452)/dV(280) - B(855) = RCT(452)*V(183) -! B(856) = dA(453)/dV(183) - B(856) = RCT(453)*V(281) -! B(857) = dA(453)/dV(281) - B(857) = RCT(453)*V(183) -! B(858) = dA(454)/dV(114) - B(858) = RCT(454)*V(269) -! B(859) = dA(454)/dV(269) - B(859) = RCT(454)*V(114) -! B(860) = dA(455)/dV(127) - B(860) = RCT(455)*V(269) -! B(861) = dA(455)/dV(269) - B(861) = RCT(455)*V(127) -! B(862) = dA(456)/dV(127) - B(862) = RCT(456)*V(269) -! B(863) = dA(456)/dV(269) - B(863) = RCT(456)*V(127) -! B(864) = dA(457)/dV(128) - B(864) = RCT(457)*V(269) -! B(865) = dA(457)/dV(269) - B(865) = RCT(457)*V(128) -! B(866) = dA(458)/dV(128) - B(866) = RCT(458)*V(269) -! B(867) = dA(458)/dV(269) - B(867) = RCT(458)*V(128) -! B(868) = dA(459)/dV(224) - B(868) = RCT(459) -! B(869) = dA(460)/dV(224) - B(869) = RCT(460) -! B(870) = dA(461)/dV(224) - B(870) = RCT(461)*V(281) -! B(871) = dA(461)/dV(281) - B(871) = RCT(461)*V(224) -! B(872) = dA(462)/dV(224) - B(872) = RCT(462)*V(280) -! B(873) = dA(462)/dV(280) - B(873) = RCT(462)*V(224) -! B(874) = dA(463)/dV(224) - B(874) = RCT(463)*V(280) -! B(875) = dA(463)/dV(280) - B(875) = RCT(463)*V(224) -! B(876) = dA(464)/dV(225) - B(876) = RCT(464) -! B(877) = dA(465)/dV(225) - B(877) = RCT(465) -! B(878) = dA(466)/dV(225) - B(878) = RCT(466)*V(280) -! B(879) = dA(466)/dV(280) - B(879) = RCT(466)*V(225) -! B(880) = dA(467)/dV(225) - B(880) = RCT(467)*V(280) -! B(881) = dA(467)/dV(280) - B(881) = RCT(467)*V(225) -! B(882) = dA(468)/dV(225) - B(882) = RCT(468)*V(281) -! B(883) = dA(468)/dV(281) - B(883) = RCT(468)*V(225) -! B(884) = dA(469)/dV(190) - B(884) = RCT(469)*V(281) -! B(885) = dA(469)/dV(281) - B(885) = RCT(469)*V(190) -! B(886) = dA(470)/dV(190) - B(886) = RCT(470)*V(280) -! B(887) = dA(470)/dV(280) - B(887) = RCT(470)*V(190) -! B(888) = dA(471)/dV(190) - B(888) = RCT(471)*V(280) -! B(889) = dA(471)/dV(280) - B(889) = RCT(471)*V(190) -! B(890) = dA(472)/dV(190) - B(890) = RCT(472) -! B(891) = dA(473)/dV(120) - B(891) = RCT(473)*V(280) -! B(892) = dA(473)/dV(280) - B(892) = RCT(473)*V(120) -! B(893) = dA(474)/dV(120) - B(893) = RCT(474)*V(281) -! B(894) = dA(474)/dV(281) - B(894) = RCT(474)*V(120) -! B(895) = dA(475)/dV(116) - B(895) = RCT(475)*V(280) -! B(896) = dA(475)/dV(280) - B(896) = RCT(475)*V(116) -! B(897) = dA(476)/dV(116) - B(897) = RCT(476)*V(281) -! B(898) = dA(476)/dV(281) - B(898) = RCT(476)*V(116) -! B(899) = dA(477)/dV(136) - B(899) = RCT(477)*V(269) -! B(900) = dA(477)/dV(269) - B(900) = RCT(477)*V(136) -! B(901) = dA(478)/dV(136) - B(901) = RCT(478)*V(269) -! B(902) = dA(478)/dV(269) - B(902) = RCT(478)*V(136) -! B(903) = dA(479)/dV(137) - B(903) = RCT(479)*V(269) -! B(904) = dA(479)/dV(269) - B(904) = RCT(479)*V(137) -! B(905) = dA(480)/dV(137) - B(905) = RCT(480)*V(269) -! B(906) = dA(480)/dV(269) - B(906) = RCT(480)*V(137) -! B(907) = dA(481)/dV(216) - B(907) = RCT(481)*V(269) -! B(908) = dA(481)/dV(269) - B(908) = RCT(481)*V(216) -! B(909) = dA(482)/dV(216) - B(909) = RCT(482)*V(269) -! B(910) = dA(482)/dV(269) - B(910) = RCT(482)*V(216) -! B(911) = dA(483)/dV(210) - B(911) = RCT(483)*V(269) -! B(912) = dA(483)/dV(269) - B(912) = RCT(483)*V(210) -! B(913) = dA(484)/dV(210) - B(913) = RCT(484)*V(269) -! B(914) = dA(484)/dV(269) - B(914) = RCT(484)*V(210) -! B(915) = dA(485)/dV(216) - B(915) = RCT(485)*V(269) -! B(916) = dA(485)/dV(269) - B(916) = RCT(485)*V(216) -! B(917) = dA(486)/dV(210) - B(917) = RCT(486)*V(269) -! B(918) = dA(486)/dV(269) - B(918) = RCT(486)*V(210) -! B(919) = dA(487)/dV(162) - B(919) = RCT(487) -! B(920) = dA(488)/dV(162) - B(920) = RCT(488)*V(281) -! B(921) = dA(488)/dV(281) - B(921) = RCT(488)*V(162) -! B(922) = dA(489)/dV(162) - B(922) = RCT(489)*V(280) -! B(923) = dA(489)/dV(280) - B(923) = RCT(489)*V(162) -! B(924) = dA(490)/dV(162) - B(924) = RCT(490)*V(280) -! B(925) = dA(490)/dV(280) - B(925) = RCT(490)*V(162) -! B(926) = dA(491)/dV(148) - B(926) = RCT(491) -! B(927) = dA(492)/dV(148) - B(927) = RCT(492)*V(281) -! B(928) = dA(492)/dV(281) - B(928) = RCT(492)*V(148) -! B(929) = dA(493)/dV(148) - B(929) = RCT(493)*V(280) -! B(930) = dA(493)/dV(280) - B(930) = RCT(493)*V(148) -! B(931) = dA(494)/dV(148) - B(931) = RCT(494)*V(280) -! B(932) = dA(494)/dV(280) - B(932) = RCT(494)*V(148) -! B(933) = dA(495)/dV(164) - B(933) = RCT(495) -! B(934) = dA(496)/dV(163) - B(934) = RCT(496) -! B(935) = dA(497)/dV(164) - B(935) = RCT(497)*V(281) -! B(936) = dA(497)/dV(281) - B(936) = RCT(497)*V(164) -! B(937) = dA(498)/dV(164) - B(937) = RCT(498)*V(280) -! B(938) = dA(498)/dV(280) - B(938) = RCT(498)*V(164) -! B(939) = dA(499)/dV(164) - B(939) = RCT(499)*V(280) -! B(940) = dA(499)/dV(280) - B(940) = RCT(499)*V(164) -! B(941) = dA(500)/dV(163) - B(941) = RCT(500)*V(281) -! B(942) = dA(500)/dV(281) - B(942) = RCT(500)*V(163) -! B(943) = dA(501)/dV(163) - B(943) = RCT(501)*V(280) -! B(944) = dA(501)/dV(280) - B(944) = RCT(501)*V(163) -! B(945) = dA(502)/dV(163) - B(945) = RCT(502)*V(280) -! B(946) = dA(502)/dV(280) - B(946) = RCT(502)*V(163) -! B(947) = dA(503)/dV(229) - B(947) = RCT(503)*V(281) -! B(948) = dA(503)/dV(281) - B(948) = RCT(503)*V(229) -! B(949) = dA(504)/dV(229) - B(949) = RCT(504)*V(280) -! B(950) = dA(504)/dV(280) - B(950) = RCT(504)*V(229) -! B(951) = dA(505)/dV(229) - B(951) = RCT(505)*V(280) -! B(952) = dA(505)/dV(280) - B(952) = RCT(505)*V(229) -! B(953) = dA(506)/dV(220) - B(953) = RCT(506)*V(287) -! B(954) = dA(506)/dV(287) - B(954) = RCT(506)*V(220) -! B(955) = dA(507)/dV(240) - B(955) = RCT(507)*V(281) -! B(956) = dA(507)/dV(281) - B(956) = RCT(507)*V(240) -! B(957) = dA(508)/dV(241) - B(957) = RCT(508)*V(281) -! B(958) = dA(508)/dV(281) - B(958) = RCT(508)*V(241) -! B(959) = dA(509)/dV(240) - B(959) = RCT(509)*2*V(240) -! B(960) = dA(510)/dV(240) - B(960) = RCT(510)*V(241) -! B(961) = dA(510)/dV(241) - B(961) = RCT(510)*V(240) -! B(962) = dA(511)/dV(241) - B(962) = RCT(511)*2*V(241) -! B(963) = dA(512)/dV(241) - B(963) = RCT(512)*V(263) -! B(964) = dA(512)/dV(263) - B(964) = RCT(512)*V(241) -! B(965) = dA(513)/dV(240) - B(965) = RCT(513)*V(263) -! B(966) = dA(513)/dV(263) - B(966) = RCT(513)*V(240) -! B(967) = dA(514)/dV(240) - B(967) = RCT(514)*V(257) -! B(968) = dA(514)/dV(257) - B(968) = RCT(514)*V(240) -! B(969) = dA(515)/dV(241) - B(969) = RCT(515)*V(257) -! B(970) = dA(515)/dV(257) - B(970) = RCT(515)*V(241) -! B(971) = dA(516)/dV(240) - B(971) = RCT(516)*V(287) -! B(972) = dA(516)/dV(287) - B(972) = RCT(516)*V(240) -! B(973) = dA(517)/dV(241) - B(973) = RCT(517)*V(287) -! B(974) = dA(517)/dV(287) - B(974) = RCT(517)*V(241) -! B(975) = dA(518)/dV(240) - B(975) = RCT(518)*V(280) -! B(976) = dA(518)/dV(280) - B(976) = RCT(518)*V(240) -! B(977) = dA(519)/dV(240) - B(977) = RCT(519)*V(280) -! B(978) = dA(519)/dV(280) - B(978) = RCT(519)*V(240) -! B(979) = dA(520)/dV(241) - B(979) = RCT(520)*V(280) -! B(980) = dA(520)/dV(280) - B(980) = RCT(520)*V(241) -! B(981) = dA(521)/dV(241) - B(981) = RCT(521)*V(280) -! B(982) = dA(521)/dV(280) - B(982) = RCT(521)*V(241) -! B(983) = dA(522)/dV(123) - B(983) = RCT(522)*F(3) -! B(985) = dA(523)/dV(123) - B(985) = RCT(523) -! B(986) = dA(524)/dV(177) - B(986) = RCT(524)*V(269) -! B(987) = dA(524)/dV(269) - B(987) = RCT(524)*V(177) -! B(988) = dA(525)/dV(147) - B(988) = RCT(525)*V(269) -! B(989) = dA(525)/dV(269) - B(989) = RCT(525)*V(147) -! B(990) = dA(526)/dV(177) - B(990) = RCT(526)*V(269) -! B(991) = dA(526)/dV(269) - B(991) = RCT(526)*V(177) -! B(992) = dA(527)/dV(147) - B(992) = RCT(527)*V(269) -! B(993) = dA(527)/dV(269) - B(993) = RCT(527)*V(147) -! B(994) = dA(528)/dV(147) - B(994) = RCT(528)*V(269) -! B(995) = dA(528)/dV(269) - B(995) = RCT(528)*V(147) -! B(996) = dA(529)/dV(177) - B(996) = RCT(529)*V(269) -! B(997) = dA(529)/dV(269) - B(997) = RCT(529)*V(177) -! B(998) = dA(530)/dV(147) - B(998) = RCT(530)*V(269) -! B(999) = dA(530)/dV(269) - B(999) = RCT(530)*V(147) -! B(1000) = dA(531)/dV(147) - B(1000) = RCT(531)*V(269) -! B(1001) = dA(531)/dV(269) - B(1001) = RCT(531)*V(147) -! B(1002) = dA(532)/dV(185) - B(1002) = RCT(532) -! B(1003) = dA(533)/dV(217) - B(1003) = RCT(533) -! B(1004) = dA(534)/dV(217) - B(1004) = RCT(534)*V(281) -! B(1005) = dA(534)/dV(281) - B(1005) = RCT(534)*V(217) -! B(1006) = dA(535)/dV(185) - B(1006) = RCT(535)*V(281) -! B(1007) = dA(535)/dV(281) - B(1007) = RCT(535)*V(185) -! B(1008) = dA(536)/dV(217) - B(1008) = RCT(536)*V(280) -! B(1009) = dA(536)/dV(280) - B(1009) = RCT(536)*V(217) -! B(1010) = dA(537)/dV(217) - B(1010) = RCT(537)*V(280) -! B(1011) = dA(537)/dV(280) - B(1011) = RCT(537)*V(217) -! B(1012) = dA(538)/dV(185) - B(1012) = RCT(538)*V(280) -! B(1013) = dA(538)/dV(280) - B(1013) = RCT(538)*V(185) -! B(1014) = dA(539)/dV(185) - B(1014) = RCT(539)*V(280) -! B(1015) = dA(539)/dV(280) - B(1015) = RCT(539)*V(185) -! B(1016) = dA(540)/dV(236) - B(1016) = RCT(540)*V(269) -! B(1017) = dA(540)/dV(269) - B(1017) = RCT(540)*V(236) -! B(1018) = dA(541)/dV(236) - B(1018) = RCT(541)*V(269) -! B(1019) = dA(541)/dV(269) - B(1019) = RCT(541)*V(236) -! B(1020) = dA(542)/dV(146) - B(1020) = RCT(542)*V(280) -! B(1021) = dA(542)/dV(280) - B(1021) = RCT(542)*V(146) -! B(1022) = dA(543)/dV(146) - B(1022) = RCT(543)*V(281) -! B(1023) = dA(543)/dV(281) - B(1023) = RCT(543)*V(146) -! B(1024) = dA(544)/dV(239) - B(1024) = RCT(544)*V(269) -! B(1025) = dA(544)/dV(269) - B(1025) = RCT(544)*V(239) -! B(1026) = dA(545)/dV(143) - B(1026) = RCT(545)*V(280) -! B(1027) = dA(545)/dV(280) - B(1027) = RCT(545)*V(143) -! B(1028) = dA(546)/dV(143) - B(1028) = RCT(546)*V(281) -! B(1029) = dA(546)/dV(281) - B(1029) = RCT(546)*V(143) -! B(1030) = dA(547)/dV(244) - B(1030) = RCT(547)*V(269) -! B(1031) = dA(547)/dV(269) - B(1031) = RCT(547)*V(244) -! B(1032) = dA(548)/dV(244) - B(1032) = RCT(548)*V(277) -! B(1033) = dA(548)/dV(277) - B(1033) = RCT(548)*V(244) -! B(1034) = dA(549)/dV(247) - B(1034) = RCT(549)*V(269) -! B(1035) = dA(549)/dV(269) - B(1035) = RCT(549)*V(247) -! B(1036) = dA(550)/dV(247) - B(1036) = RCT(550)*V(269) -! B(1037) = dA(550)/dV(269) - B(1037) = RCT(550)*V(247) -! B(1038) = dA(551)/dV(247) - B(1038) = RCT(551)*V(277) -! B(1039) = dA(551)/dV(277) - B(1039) = RCT(551)*V(247) -! B(1040) = dA(552)/dV(247) - B(1040) = RCT(552)*V(287) -! B(1041) = dA(552)/dV(287) - B(1041) = RCT(552)*V(247) -! B(1042) = dA(553)/dV(237) - B(1042) = RCT(553)*V(269) -! B(1043) = dA(553)/dV(269) - B(1043) = RCT(553)*V(237) -! B(1044) = dA(554)/dV(226) - B(1044) = RCT(554)*V(269) -! B(1045) = dA(554)/dV(269) - B(1045) = RCT(554)*V(226) -! B(1046) = dA(555)/dV(227) - B(1046) = RCT(555)*V(269) -! B(1047) = dA(555)/dV(269) - B(1047) = RCT(555)*V(227) -! B(1048) = dA(556)/dV(195) - B(1048) = RCT(556)*V(269) -! B(1049) = dA(556)/dV(269) - B(1049) = RCT(556)*V(195) -! B(1050) = dA(557)/dV(171) - B(1050) = RCT(557)*V(269) -! B(1051) = dA(557)/dV(269) - B(1051) = RCT(557)*V(171) -! B(1052) = dA(558)/dV(141) - B(1052) = RCT(558)*V(280) -! B(1053) = dA(558)/dV(280) - B(1053) = RCT(558)*V(141) -! B(1054) = dA(559)/dV(141) - B(1054) = RCT(559)*V(281) -! B(1055) = dA(559)/dV(281) - B(1055) = RCT(559)*V(141) -! B(1056) = dA(560)/dV(141) - B(1056) = RCT(560)*V(270) -! B(1057) = dA(560)/dV(270) - B(1057) = RCT(560)*V(141) -! B(1058) = dA(561)/dV(142) - B(1058) = RCT(561)*V(280) -! B(1059) = dA(561)/dV(280) - B(1059) = RCT(561)*V(142) -! B(1060) = dA(562)/dV(142) - B(1060) = RCT(562)*V(281) -! B(1061) = dA(562)/dV(281) - B(1061) = RCT(562)*V(142) -! B(1062) = dA(563)/dV(142) - B(1062) = RCT(563)*V(270) -! B(1063) = dA(563)/dV(270) - B(1063) = RCT(563)*V(142) -! B(1064) = dA(564)/dV(160) - B(1064) = RCT(564)*V(269) -! B(1065) = dA(564)/dV(269) - B(1065) = RCT(564)*V(160) -! B(1066) = dA(565)/dV(152) - B(1066) = RCT(565)*V(269) -! B(1067) = dA(565)/dV(269) - B(1067) = RCT(565)*V(152) -! B(1068) = dA(566)/dV(115) - B(1068) = RCT(566)*V(269) -! B(1069) = dA(566)/dV(269) - B(1069) = RCT(566)*V(115) -! B(1070) = dA(567)/dV(181) - B(1070) = RCT(567)*V(269) -! B(1071) = dA(567)/dV(269) - B(1071) = RCT(567)*V(181) -! B(1072) = dA(568)/dV(166) - B(1072) = RCT(568)*V(269) -! B(1073) = dA(568)/dV(269) - B(1073) = RCT(568)*V(166) -! B(1074) = dA(569)/dV(130) - B(1074) = RCT(569)*V(269) -! B(1075) = dA(569)/dV(269) - B(1075) = RCT(569)*V(130) -! B(1076) = dA(570)/dV(200) - B(1076) = RCT(570)*V(281) -! B(1077) = dA(570)/dV(281) - B(1077) = RCT(570)*V(200) -! B(1078) = dA(571)/dV(200) - B(1078) = RCT(571)*V(280) -! B(1079) = dA(571)/dV(280) - B(1079) = RCT(571)*V(200) -! B(1080) = dA(572)/dV(200) - B(1080) = RCT(572)*V(280) -! B(1081) = dA(572)/dV(280) - B(1081) = RCT(572)*V(200) -! B(1082) = dA(573)/dV(201) - B(1082) = RCT(573)*V(281) -! B(1083) = dA(573)/dV(281) - B(1083) = RCT(573)*V(201) -! B(1084) = dA(574)/dV(203) - B(1084) = RCT(574)*V(281) -! B(1085) = dA(574)/dV(281) - B(1085) = RCT(574)*V(203) -! B(1086) = dA(575)/dV(133) - B(1086) = RCT(575)*V(269) -! B(1087) = dA(575)/dV(269) - B(1087) = RCT(575)*V(133) -! B(1088) = dA(576)/dV(201) - B(1088) = RCT(576) -! B(1089) = dA(577)/dV(201) - B(1089) = RCT(577)*V(280) -! B(1090) = dA(577)/dV(280) - B(1090) = RCT(577)*V(201) -! B(1091) = dA(578)/dV(201) - B(1091) = RCT(578)*V(280) -! B(1092) = dA(578)/dV(280) - B(1092) = RCT(578)*V(201) -! B(1093) = dA(579)/dV(203) - B(1093) = RCT(579)*V(280) -! B(1094) = dA(579)/dV(280) - B(1094) = RCT(579)*V(203) -! B(1095) = dA(580)/dV(203) - B(1095) = RCT(580)*V(270) -! B(1096) = dA(580)/dV(270) - B(1096) = RCT(580)*V(203) -! B(1097) = dA(581)/dV(245) - B(1097) = RCT(581)*V(281) -! B(1098) = dA(581)/dV(281) - B(1098) = RCT(581)*V(245) -! B(1099) = dA(582)/dV(245) - B(1099) = RCT(582)*V(280) -! B(1100) = dA(582)/dV(280) - B(1100) = RCT(582)*V(245) -! B(1101) = dA(583)/dV(245) - B(1101) = RCT(583)*V(270) -! B(1102) = dA(583)/dV(270) - B(1102) = RCT(583)*V(245) -! B(1103) = dA(584)/dV(245) - B(1103) = RCT(584)*V(287) -! B(1104) = dA(584)/dV(287) - B(1104) = RCT(584)*V(245) -! B(1105) = dA(585)/dV(245) - B(1105) = RCT(585)*V(263) -! B(1106) = dA(585)/dV(263) - B(1106) = RCT(585)*V(245) -! B(1107) = dA(586)/dV(149) - B(1107) = RCT(586) -! B(1108) = dA(587)/dV(149) - B(1108) = RCT(587)*V(269) -! B(1109) = dA(587)/dV(269) - B(1109) = RCT(587)*V(149) -! B(1110) = dA(588)/dV(84) - B(1110) = RCT(588)*V(269) -! B(1111) = dA(588)/dV(269) - B(1111) = RCT(588)*V(84) -! B(1112) = dA(589)/dV(202) - B(1112) = RCT(589)*V(269) -! B(1113) = dA(589)/dV(269) - B(1113) = RCT(589)*V(202) -! B(1114) = dA(590)/dV(122) - B(1114) = RCT(590)*V(269) -! B(1115) = dA(590)/dV(269) - B(1115) = RCT(590)*V(122) -! B(1116) = dA(591)/dV(139) - B(1116) = RCT(591)*V(269) -! B(1117) = dA(591)/dV(269) - B(1117) = RCT(591)*V(139) -! B(1118) = dA(592)/dV(159) - B(1118) = RCT(592)*V(269) -! B(1119) = dA(592)/dV(269) - B(1119) = RCT(592)*V(159) -! B(1120) = dA(593)/dV(209) - B(1120) = RCT(593)*V(269) -! B(1121) = dA(593)/dV(269) - B(1121) = RCT(593)*V(209) -! B(1122) = dA(594)/dV(238) - B(1122) = RCT(594)*V(269) -! B(1123) = dA(594)/dV(269) - B(1123) = RCT(594)*V(238) -! B(1124) = dA(595)/dV(205) - B(1124) = RCT(595)*V(287) -! B(1125) = dA(595)/dV(287) - B(1125) = RCT(595)*V(205) -! B(1126) = dA(596)/dV(104) - B(1126) = RCT(596)*V(269) -! B(1127) = dA(596)/dV(269) - B(1127) = RCT(596)*V(104) -! B(1128) = dA(597)/dV(83) - B(1128) = RCT(597)*V(269) -! B(1129) = dA(597)/dV(269) - B(1129) = RCT(597)*V(83) -! B(1130) = dA(598)/dV(257) - B(1130) = RCT(598)*V(281) -! B(1131) = dA(598)/dV(281) - B(1131) = RCT(598)*V(257) -! B(1132) = dA(599)/dV(168) - B(1132) = RCT(599)*V(269) -! B(1133) = dA(599)/dV(269) - B(1133) = RCT(599)*V(168) -! B(1134) = dA(600)/dV(168) - B(1134) = RCT(600)*V(269) -! B(1135) = dA(600)/dV(269) - B(1135) = RCT(600)*V(168) -! B(1136) = dA(601)/dV(18) - B(1136) = RCT(601)*V(269) -! B(1137) = dA(601)/dV(269) - B(1137) = RCT(601)*V(18) -! B(1138) = dA(602)/dV(17) - B(1138) = RCT(602)*V(281) -! B(1139) = dA(602)/dV(281) - B(1139) = RCT(602)*V(17) -! B(1140) = dA(603)/dV(17) - B(1140) = RCT(603)*V(280) -! B(1141) = dA(603)/dV(280) - B(1141) = RCT(603)*V(17) -! B(1142) = dA(604)/dV(75) - B(1142) = RCT(604)*V(277) -! B(1143) = dA(604)/dV(277) - B(1143) = RCT(604)*V(75) -! B(1144) = dA(605)/dV(75) - B(1144) = RCT(605)*V(269) -! B(1145) = dA(605)/dV(269) - B(1145) = RCT(605)*V(75) -! B(1146) = dA(606)/dV(54) - B(1146) = RCT(606)*V(269) -! B(1147) = dA(606)/dV(269) - B(1147) = RCT(606)*V(54) -! B(1148) = dA(607)/dV(175) - B(1148) = RCT(607)*V(281) -! B(1149) = dA(607)/dV(281) - B(1149) = RCT(607)*V(175) -! B(1150) = dA(608)/dV(175) - B(1150) = RCT(608)*V(280) -! B(1151) = dA(608)/dV(280) - B(1151) = RCT(608)*V(175) -! B(1152) = dA(609)/dV(175) - B(1152) = RCT(609)*V(287) -! B(1153) = dA(609)/dV(287) - B(1153) = RCT(609)*V(175) -! B(1154) = dA(610)/dV(175) - B(1154) = RCT(610)*V(263) -! B(1155) = dA(610)/dV(263) - B(1155) = RCT(610)*V(175) -! B(1156) = dA(611)/dV(102) - B(1156) = RCT(611) -! B(1157) = dA(612)/dV(102) - B(1157) = RCT(612)*F(3) -! B(1159) = dA(613)/dV(64) - B(1159) = RCT(613)*V(269) -! B(1160) = dA(613)/dV(269) - B(1160) = RCT(613)*V(64) -! B(1161) = dA(614)/dV(113) - B(1161) = RCT(614)*V(269) -! B(1162) = dA(614)/dV(269) - B(1162) = RCT(614)*V(113) -! B(1163) = dA(615)/dV(113) - B(1163) = RCT(615)*V(269) -! B(1164) = dA(615)/dV(269) - B(1164) = RCT(615)*V(113) -! B(1165) = dA(616)/dV(60) - B(1165) = RCT(616)*V(269) -! B(1166) = dA(616)/dV(269) - B(1166) = RCT(616)*V(60) -! B(1167) = dA(617)/dV(76) - B(1167) = RCT(617)*V(269) -! B(1168) = dA(617)/dV(269) - B(1168) = RCT(617)*V(76) -! B(1169) = dA(618)/dV(77) - B(1169) = RCT(618)*V(269) -! B(1170) = dA(618)/dV(269) - B(1170) = RCT(618)*V(77) -! B(1171) = dA(619)/dV(178) - B(1171) = RCT(619)*V(281) -! B(1172) = dA(619)/dV(281) - B(1172) = RCT(619)*V(178) -! B(1173) = dA(620)/dV(178) - B(1173) = RCT(620)*V(280) -! B(1174) = dA(620)/dV(280) - B(1174) = RCT(620)*V(178) -! B(1175) = dA(621)/dV(178) - B(1175) = RCT(621)*V(287) -! B(1176) = dA(621)/dV(287) - B(1176) = RCT(621)*V(178) -! B(1177) = dA(622)/dV(178) - B(1177) = RCT(622)*V(263) -! B(1178) = dA(622)/dV(263) - B(1178) = RCT(622)*V(178) -! B(1179) = dA(623)/dV(178) - B(1179) = RCT(623)*V(257) -! B(1180) = dA(623)/dV(257) - B(1180) = RCT(623)*V(178) -! B(1181) = dA(624)/dV(117) - B(1181) = RCT(624)*V(269) -! B(1182) = dA(624)/dV(269) - B(1182) = RCT(624)*V(117) -! B(1183) = dA(625)/dV(117) - B(1183) = RCT(625)*V(287) -! B(1184) = dA(625)/dV(287) - B(1184) = RCT(625)*V(117) -! B(1185) = dA(626)/dV(109) - B(1185) = RCT(626)*V(269) -! B(1186) = dA(626)/dV(269) - B(1186) = RCT(626)*V(109) -! B(1187) = dA(627)/dV(109) - B(1187) = RCT(627)*V(287) -! B(1188) = dA(627)/dV(287) - B(1188) = RCT(627)*V(109) -! B(1189) = dA(628)/dV(138) - B(1189) = RCT(628)*V(269) -! B(1190) = dA(628)/dV(269) - B(1190) = RCT(628)*V(138) -! B(1191) = dA(629)/dV(138) - B(1191) = RCT(629)*V(277) -! B(1192) = dA(629)/dV(277) - B(1192) = RCT(629)*V(138) -! B(1193) = dA(630)/dV(138) - B(1193) = RCT(630)*V(287) -! B(1194) = dA(630)/dV(287) - B(1194) = RCT(630)*V(138) -! B(1195) = dA(631)/dV(99) - B(1195) = RCT(631)*V(269) -! B(1196) = dA(631)/dV(269) - B(1196) = RCT(631)*V(99) -! B(1197) = dA(632)/dV(99) - B(1197) = RCT(632)*V(287) -! B(1198) = dA(632)/dV(287) - B(1198) = RCT(632)*V(99) -! B(1199) = dA(633)/dV(176) - B(1199) = RCT(633)*V(281) -! B(1200) = dA(633)/dV(281) - B(1200) = RCT(633)*V(176) -! B(1201) = dA(634)/dV(176) - B(1201) = RCT(634)*V(280) -! B(1202) = dA(634)/dV(280) - B(1202) = RCT(634)*V(176) -! B(1203) = dA(635)/dV(176) - B(1203) = RCT(635)*V(270) -! B(1204) = dA(635)/dV(270) - B(1204) = RCT(635)*V(176) -! B(1205) = dA(636)/dV(67) - B(1205) = RCT(636)*V(269) -! B(1206) = dA(636)/dV(269) - B(1206) = RCT(636)*V(67) -! B(1207) = dA(637)/dV(95) - B(1207) = RCT(637) -! B(1208) = dA(638)/dV(95) - B(1208) = RCT(638)*V(269) -! B(1209) = dA(638)/dV(269) - B(1209) = RCT(638)*V(95) -! B(1210) = dA(639)/dV(187) - B(1210) = RCT(639)*V(270) -! B(1211) = dA(639)/dV(270) - B(1211) = RCT(639)*V(187) -! B(1212) = dA(640)/dV(187) - B(1212) = RCT(640)*V(280) -! B(1213) = dA(640)/dV(280) - B(1213) = RCT(640)*V(187) -! B(1214) = dA(641)/dV(187) - B(1214) = RCT(641)*V(287) -! B(1215) = dA(641)/dV(287) - B(1215) = RCT(641)*V(187) -! B(1216) = dA(642)/dV(187) - B(1216) = RCT(642)*V(281) -! B(1217) = dA(642)/dV(281) - B(1217) = RCT(642)*V(187) -! B(1218) = dA(643)/dV(105) - B(1218) = RCT(643)*V(269) -! B(1219) = dA(643)/dV(269) - B(1219) = RCT(643)*V(105) -! B(1220) = dA(644)/dV(156) - B(1220) = RCT(644)*V(277) -! B(1221) = dA(644)/dV(277) - B(1221) = RCT(644)*V(156) -! B(1222) = dA(645)/dV(156) - B(1222) = RCT(645)*V(270) -! B(1223) = dA(645)/dV(270) - B(1223) = RCT(645)*V(156) -! B(1224) = dA(646)/dV(206) - B(1224) = RCT(646)*V(269) -! B(1225) = dA(646)/dV(269) - B(1225) = RCT(646)*V(206) -! B(1226) = dA(647)/dV(206) - B(1226) = RCT(647)*V(287) -! B(1227) = dA(647)/dV(287) - B(1227) = RCT(647)*V(206) -! B(1228) = dA(648)/dV(187) - B(1228) = RCT(648)*V(263) -! B(1229) = dA(648)/dV(263) - B(1229) = RCT(648)*V(187) -! B(1230) = dA(649)/dV(176) - B(1230) = RCT(649)*V(263) -! B(1231) = dA(649)/dV(263) - B(1231) = RCT(649)*V(176) -! B(1232) = dA(650)/dV(155) - B(1232) = RCT(650)*V(269) -! B(1233) = dA(650)/dV(269) - B(1233) = RCT(650)*V(155) -! B(1234) = dA(651)/dV(155) - B(1234) = RCT(651)*V(277) -! B(1235) = dA(651)/dV(277) - B(1235) = RCT(651)*V(155) -! B(1236) = dA(652)/dV(155) - B(1236) = RCT(652) -! B(1237) = dA(653)/dV(145) - B(1237) = RCT(653)*V(269) -! B(1238) = dA(653)/dV(269) - B(1238) = RCT(653)*V(145) -! B(1239) = dA(654)/dV(145) - B(1239) = RCT(654)*V(277) -! B(1240) = dA(654)/dV(277) - B(1240) = RCT(654)*V(145) -! B(1241) = dA(655)/dV(145) - B(1241) = RCT(655) -! B(1242) = dA(656)/dV(12) - B(1242) = RCT(656)*V(281) -! B(1243) = dA(656)/dV(281) - B(1243) = RCT(656)*V(12) -! B(1244) = dA(657)/dV(12) - B(1244) = RCT(657)*V(280) -! B(1245) = dA(657)/dV(280) - B(1245) = RCT(657)*V(12) -! B(1246) = dA(658)/dV(21) - B(1246) = RCT(658)*V(281) -! B(1247) = dA(658)/dV(281) - B(1247) = RCT(658)*V(21) -! B(1248) = dA(659)/dV(21) - B(1248) = RCT(659)*V(280) -! B(1249) = dA(659)/dV(280) - B(1249) = RCT(659)*V(21) -! B(1250) = dA(660)/dV(26) - B(1250) = RCT(660)*V(281) -! B(1251) = dA(660)/dV(281) - B(1251) = RCT(660)*V(26) -! B(1252) = dA(661)/dV(26) - B(1252) = RCT(661)*V(280) -! B(1253) = dA(661)/dV(280) - B(1253) = RCT(661)*V(26) -! B(1254) = dA(662)/dV(263) - B(1254) = RCT(662)*V(287) -! B(1255) = dA(662)/dV(287) - B(1255) = RCT(662)*V(263) -! B(1256) = dA(663)/dV(281) - B(1256) = RCT(663) -! B(1257) = dA(664)/dV(270) - B(1257) = RCT(664) -! B(1258) = dA(665)/dV(287) - B(1258) = RCT(665) -! B(1259) = dA(666)/dV(287) - B(1259) = RCT(666) -! B(1260) = dA(667)/dV(287) - B(1260) = RCT(667) -! B(1261) = dA(668)/dV(169) - B(1261) = RCT(668)*V(279) -! B(1262) = dA(668)/dV(279) - B(1262) = RCT(668)*V(169) -! B(1263) = dA(669)/dV(169) - B(1263) = RCT(669)*V(271) -! B(1264) = dA(669)/dV(271) - B(1264) = RCT(669)*V(169) -! B(1265) = dA(670)/dV(169) - B(1265) = RCT(670) -! B(1266) = dA(671)/dV(169) - B(1266) = RCT(671)*V(278) -! B(1267) = dA(671)/dV(278) - B(1267) = RCT(671)*V(169) -! B(1268) = dA(672)/dV(169) - B(1268) = RCT(672)*V(283) -! B(1269) = dA(672)/dV(283) - B(1269) = RCT(672)*V(169) -! B(1270) = dA(673)/dV(269) - B(1270) = RCT(673)*V(278) -! B(1271) = dA(673)/dV(278) - B(1271) = RCT(673)*V(269) -! B(1272) = dA(674)/dV(269) - B(1272) = RCT(674)*V(283) -! B(1273) = dA(674)/dV(283) - B(1273) = RCT(674)*V(269) -! B(1274) = dA(675)/dV(172) - B(1274) = RCT(675)*V(279) -! B(1275) = dA(675)/dV(279) - B(1275) = RCT(675)*V(172) -! B(1276) = dA(676)/dV(172) - B(1276) = RCT(676)*V(271) -! B(1277) = dA(676)/dV(271) - B(1277) = RCT(676)*V(172) -! B(1278) = dA(677)/dV(259) - B(1278) = RCT(677)*V(279) -! B(1279) = dA(677)/dV(279) - B(1279) = RCT(677)*V(259) -! B(1280) = dA(678)/dV(259) - B(1280) = RCT(678)*V(271) -! B(1281) = dA(678)/dV(271) - B(1281) = RCT(678)*V(259) -! B(1282) = dA(679)/dV(259) - B(1282) = RCT(679)*V(272) -! B(1283) = dA(679)/dV(272) - B(1283) = RCT(679)*V(259) -! B(1284) = dA(680)/dV(259) - B(1284) = RCT(680)*V(275) -! B(1285) = dA(680)/dV(275) - B(1285) = RCT(680)*V(259) -! B(1286) = dA(681)/dV(259) - B(1286) = RCT(681)*V(276) -! B(1287) = dA(681)/dV(276) - B(1287) = RCT(681)*V(259) -! B(1288) = dA(682)/dV(259) - B(1288) = RCT(682)*V(278) -! B(1289) = dA(682)/dV(278) - B(1289) = RCT(682)*V(259) -! B(1290) = dA(683)/dV(259) - B(1290) = RCT(683)*V(283) -! B(1291) = dA(683)/dV(283) - B(1291) = RCT(683)*V(259) -! B(1292) = dA(684)/dV(231) - B(1292) = RCT(684)*V(278) -! B(1293) = dA(684)/dV(278) - B(1293) = RCT(684)*V(231) -! B(1294) = dA(685)/dV(231) - B(1294) = RCT(685)*V(283) -! B(1295) = dA(685)/dV(283) - B(1295) = RCT(685)*V(231) -! B(1296) = dA(686)/dV(231) - B(1296) = RCT(686)*V(271) -! B(1297) = dA(686)/dV(271) - B(1297) = RCT(686)*V(231) -! B(1298) = dA(687)/dV(231) - B(1298) = RCT(687)*V(275) -! B(1299) = dA(687)/dV(275) - B(1299) = RCT(687)*V(231) -! B(1300) = dA(688)/dV(231) - B(1300) = RCT(688)*V(276) -! B(1301) = dA(688)/dV(276) - B(1301) = RCT(688)*V(231) -! B(1302) = dA(689)/dV(231) - B(1302) = RCT(689)*V(272) -! B(1303) = dA(689)/dV(272) - B(1303) = RCT(689)*V(231) -! B(1304) = dA(690)/dV(267) - B(1304) = RCT(690)*V(271) -! B(1305) = dA(690)/dV(271) - B(1305) = RCT(690)*V(267) -! B(1306) = dA(691)/dV(267) - B(1306) = RCT(691)*V(272) -! B(1307) = dA(691)/dV(272) - B(1307) = RCT(691)*V(267) -! B(1308) = dA(692)/dV(267) - B(1308) = RCT(692)*V(278) -! B(1309) = dA(692)/dV(278) - B(1309) = RCT(692)*V(267) -! B(1310) = dA(693)/dV(267) - B(1310) = RCT(693)*V(283) -! B(1311) = dA(693)/dV(283) - B(1311) = RCT(693)*V(267) -! B(1312) = dA(694)/dV(267) - B(1312) = RCT(694)*V(286) -! B(1313) = dA(694)/dV(286) - B(1313) = RCT(694)*V(267) -! B(1314) = dA(695)/dV(256) - B(1314) = RCT(695)*V(272) -! B(1315) = dA(695)/dV(272) - B(1315) = RCT(695)*V(256) -! B(1316) = dA(696)/dV(256) - B(1316) = RCT(696)*V(271) -! B(1317) = dA(696)/dV(271) - B(1317) = RCT(696)*V(256) -! B(1318) = dA(697)/dV(256) - B(1318) = RCT(697)*V(278) -! B(1319) = dA(697)/dV(278) - B(1319) = RCT(697)*V(256) -! B(1320) = dA(698)/dV(256) - B(1320) = RCT(698)*V(283) -! B(1321) = dA(698)/dV(283) - B(1321) = RCT(698)*V(256) -! B(1322) = dA(699)/dV(256) - B(1322) = RCT(699)*V(275) -! B(1323) = dA(699)/dV(275) - B(1323) = RCT(699)*V(256) -! B(1324) = dA(700)/dV(256) - B(1324) = RCT(700)*V(276) -! B(1325) = dA(700)/dV(276) - B(1325) = RCT(700)*V(256) -! B(1326) = dA(701)/dV(256) - B(1326) = RCT(701)*V(286) -! B(1327) = dA(701)/dV(286) - B(1327) = RCT(701)*V(256) -! B(1328) = dA(702)/dV(272) - B(1328) = RCT(702)*V(277) -! B(1329) = dA(702)/dV(277) - B(1329) = RCT(702)*V(272) -! B(1330) = dA(703)/dV(275) - B(1330) = RCT(703)*V(277) -! B(1331) = dA(703)/dV(277) - B(1331) = RCT(703)*V(275) -! B(1332) = dA(704)/dV(276) - B(1332) = RCT(704)*V(277) -! B(1333) = dA(704)/dV(277) - B(1333) = RCT(704)*V(276) -! B(1334) = dA(705)/dV(272) - B(1334) = RCT(705) -! B(1335) = dA(706)/dV(272) - B(1335) = RCT(706) -! B(1336) = dA(707)/dV(65) - B(1336) = RCT(707) -! B(1337) = dA(708)/dV(65) - B(1337) = RCT(708) -! B(1338) = dA(709)/dV(65) - B(1338) = RCT(709) -! B(1339) = dA(710)/dV(40) - B(1339) = RCT(710) -! B(1340) = dA(711)/dV(40) - B(1340) = RCT(711) -! B(1341) = dA(712)/dV(40) - B(1341) = RCT(712) -! B(1342) = dA(713)/dV(47) - B(1342) = RCT(713) -! B(1343) = dA(714)/dV(47) - B(1343) = RCT(714) -! B(1344) = dA(715)/dV(47) - B(1344) = RCT(715) -! B(1345) = dA(716)/dV(38) - B(1345) = RCT(716) -! B(1346) = dA(717)/dV(38) - B(1346) = RCT(717) -! B(1347) = dA(718)/dV(38) - B(1347) = RCT(718) -! B(1348) = dA(719)/dV(266) - B(1348) = RCT(719)*V(279) -! B(1349) = dA(719)/dV(279) - B(1349) = RCT(719)*V(266) -! B(1350) = dA(720)/dV(199) - B(1350) = RCT(720)*V(275) -! B(1351) = dA(720)/dV(275) - B(1351) = RCT(720)*V(199) -! B(1352) = dA(721)/dV(199) - B(1352) = RCT(721)*V(276) -! B(1353) = dA(721)/dV(276) - B(1353) = RCT(721)*V(199) -! B(1354) = dA(722)/dV(199) - B(1354) = RCT(722)*V(278) -! B(1355) = dA(722)/dV(278) - B(1355) = RCT(722)*V(199) -! B(1356) = dA(723)/dV(199) - B(1356) = RCT(723)*V(283) -! B(1357) = dA(723)/dV(283) - B(1357) = RCT(723)*V(199) -! B(1358) = dA(724)/dV(266) - B(1358) = RCT(724)*V(275) -! B(1359) = dA(724)/dV(275) - B(1359) = RCT(724)*V(266) -! B(1360) = dA(725)/dV(266) - B(1360) = RCT(725)*V(276) -! B(1361) = dA(725)/dV(276) - B(1361) = RCT(725)*V(266) -! B(1362) = dA(726)/dV(266) - B(1362) = RCT(726)*V(278) -! B(1363) = dA(726)/dV(278) - B(1363) = RCT(726)*V(266) -! B(1364) = dA(727)/dV(266) - B(1364) = RCT(727)*V(283) -! B(1365) = dA(727)/dV(283) - B(1365) = RCT(727)*V(266) -! B(1366) = dA(728)/dV(264) - B(1366) = RCT(728)*V(275) -! B(1367) = dA(728)/dV(275) - B(1367) = RCT(728)*V(264) -! B(1368) = dA(729)/dV(264) - B(1368) = RCT(729)*V(276) -! B(1369) = dA(729)/dV(276) - B(1369) = RCT(729)*V(264) -! B(1370) = dA(730)/dV(264) - B(1370) = RCT(730)*V(278) -! B(1371) = dA(730)/dV(278) - B(1371) = RCT(730)*V(264) -! B(1372) = dA(731)/dV(264) - B(1372) = RCT(731)*V(283) -! B(1373) = dA(731)/dV(283) - B(1373) = RCT(731)*V(264) -! B(1374) = dA(732)/dV(218) - B(1374) = RCT(732) -! B(1375) = dA(733)/dV(228) - B(1375) = RCT(733) -! B(1376) = dA(734)/dV(127) - B(1376) = RCT(734) -! B(1377) = dA(735)/dV(128) - B(1377) = RCT(735) -! B(1378) = dA(736)/dV(114) - B(1378) = RCT(736) -! B(1379) = dA(737)/dV(23) - B(1379) = RCT(737) -! B(1380) = dA(738)/dV(237) - B(1380) = RCT(738) -! B(1381) = dA(739)/dV(198) - B(1381) = RCT(739) -! B(1382) = dA(740)/dV(174) - B(1382) = RCT(740) -! B(1383) = dA(741)/dV(196) - B(1383) = RCT(741) -! B(1384) = dA(742)/dV(131) - B(1384) = RCT(742) -! B(1385) = dA(743)/dV(104) - B(1385) = RCT(743) -! B(1386) = dA(744)/dV(84) - B(1386) = RCT(744) -! B(1387) = dA(745)/dV(216) - B(1387) = RCT(745) -! B(1388) = dA(746)/dV(136) - B(1388) = RCT(746) -! B(1389) = dA(747)/dV(137) - B(1389) = RCT(747) -! B(1390) = dA(748)/dV(210) - B(1390) = RCT(748) -! B(1391) = dA(749)/dV(170) - B(1391) = RCT(749) -! B(1392) = dA(750)/dV(147) - B(1392) = RCT(750) -! B(1393) = dA(751)/dV(177) - B(1393) = RCT(751) -! B(1394) = dA(752)/dV(239) - B(1394) = RCT(752) -! B(1395) = dA(753)/dV(209) - B(1395) = RCT(753) -! B(1396) = dA(754)/dV(238) - B(1396) = RCT(754) -! B(1397) = dA(755)/dV(171) - B(1397) = RCT(755) -! B(1398) = dA(756)/dV(195) - B(1398) = RCT(756) -! B(1399) = dA(757)/dV(206) - B(1399) = RCT(757) -! B(1400) = dA(758)/dV(277) - B(1400) = RCT(758) -! B(1401) = dA(759)/dV(277) - B(1401) = RCT(759) -! B(1403) = dA(761)/dV(270) - B(1403) = RCT(761) -! B(1404) = dA(762)/dV(208) - B(1404) = RCT(762) -! B(1405) = dA(763)/dV(134) - B(1405) = RCT(763) -! B(1406) = dA(764)/dV(262) - B(1406) = RCT(764) -! B(1407) = dA(765)/dV(262) - B(1407) = RCT(765) -! B(1408) = dA(766)/dV(260) - B(1408) = RCT(766) -! B(1409) = dA(767)/dV(188) - B(1409) = RCT(767) -! B(1410) = dA(768)/dV(101) - B(1410) = RCT(768) -! B(1411) = dA(769)/dV(101) - B(1411) = RCT(769) -! B(1412) = dA(770)/dV(287) - B(1412) = RCT(770) -! B(1413) = dA(771)/dV(287) - B(1413) = RCT(771) -! B(1414) = dA(772)/dV(169) - B(1414) = RCT(772) -! B(1415) = dA(773)/dV(261) - B(1415) = RCT(773) -! B(1416) = dA(774)/dV(261) - B(1416) = RCT(774) -! B(1417) = dA(775)/dV(63) - B(1417) = RCT(775) -! B(1418) = dA(776)/dV(255) - B(1418) = RCT(776) -! B(1419) = dA(777)/dV(219) - B(1419) = RCT(777) -! B(1420) = dA(778)/dV(219) - B(1420) = RCT(778) -! B(1421) = dA(779)/dV(222) - B(1421) = RCT(779) -! B(1422) = dA(780)/dV(232) - B(1422) = RCT(780) -! B(1423) = dA(781)/dV(218) - B(1423) = RCT(781) -! B(1424) = dA(782)/dV(218) - B(1424) = RCT(782) -! B(1425) = dA(783)/dV(218) - B(1425) = RCT(783) -! B(1426) = dA(784)/dV(228) - B(1426) = RCT(784) -! B(1427) = dA(785)/dV(244) - B(1427) = RCT(785) -! B(1428) = dA(786)/dV(244) - B(1428) = RCT(786) -! B(1429) = dA(787)/dV(244) - B(1429) = RCT(787) -! B(1430) = dA(788)/dV(247) - B(1430) = RCT(788) -! B(1431) = dA(789)/dV(246) - B(1431) = RCT(789) -! B(1432) = dA(790)/dV(111) - B(1432) = RCT(790) -! B(1433) = dA(791)/dV(108) - B(1433) = RCT(791) -! B(1434) = dA(792)/dV(92) - B(1434) = RCT(792) -! B(1435) = dA(793)/dV(93) - B(1435) = RCT(793) -! B(1436) = dA(794)/dV(91) - B(1436) = RCT(794) -! B(1437) = dA(795)/dV(110) - B(1437) = RCT(795) -! B(1438) = dA(796)/dV(94) - B(1438) = RCT(796) -! B(1439) = dA(797)/dV(198) - B(1439) = RCT(797) -! B(1440) = dA(798)/dV(66) - B(1440) = RCT(798) -! B(1441) = dA(799)/dV(125) - B(1441) = RCT(799) -! B(1442) = dA(800)/dV(274) - B(1442) = RCT(800) -! B(1443) = dA(801)/dV(256) - B(1443) = RCT(801) -! B(1444) = dA(802)/dV(172) - B(1444) = RCT(802) -! B(1445) = dA(803)/dV(172) - B(1445) = RCT(803) -! B(1446) = dA(804)/dV(50) - B(1446) = RCT(804) -! B(1447) = dA(805)/dV(74) - B(1447) = RCT(805) -! B(1448) = dA(806)/dV(70) - B(1448) = RCT(806) -! B(1449) = dA(807)/dV(97) - B(1449) = RCT(807) -! B(1450) = dA(808)/dV(100) - B(1450) = RCT(808) -! B(1451) = dA(809)/dV(73) - B(1451) = RCT(809) -! B(1452) = dA(810)/dV(132) - B(1452) = RCT(810) -! B(1453) = dA(811)/dV(192) - B(1453) = RCT(811) -! B(1454) = dA(812)/dV(273) - B(1454) = RCT(812) -! B(1455) = dA(813)/dV(107) - B(1455) = RCT(813) -! B(1456) = dA(814)/dV(72) - B(1456) = RCT(814) -! B(1457) = dA(815)/dV(231) - B(1457) = RCT(815) -! B(1458) = dA(816)/dV(259) - B(1458) = RCT(816) -! B(1459) = dA(817)/dV(259) - B(1459) = RCT(817) -! B(1460) = dA(818)/dV(267) - B(1460) = RCT(818) -! B(1461) = dA(819)/dV(39) - B(1461) = RCT(819) -! B(1462) = dA(820)/dV(51) - B(1462) = RCT(820) -! B(1463) = dA(821)/dV(52) - B(1463) = RCT(821) -! B(1464) = dA(822)/dV(53) - B(1464) = RCT(822) -! B(1465) = dA(823)/dV(48) - B(1465) = RCT(823) -! B(1466) = dA(824)/dV(42) - B(1466) = RCT(824) -! B(1467) = dA(825)/dV(46) - B(1467) = RCT(825) -! B(1468) = dA(826)/dV(78) - B(1468) = RCT(826) -! B(1469) = dA(827)/dV(79) - B(1469) = RCT(827) -! B(1470) = dA(828)/dV(80) - B(1470) = RCT(828) -! B(1471) = dA(829)/dV(81) - B(1471) = RCT(829) -! B(1472) = dA(830)/dV(44) - B(1472) = RCT(830) -! B(1473) = dA(831)/dV(55) - B(1473) = RCT(831) -! B(1474) = dA(832)/dV(45) - B(1474) = RCT(832) -! B(1475) = dA(833)/dV(103) - B(1475) = RCT(833) -! B(1476) = dA(834)/dV(140) - B(1476) = RCT(834) -! B(1477) = dA(835)/dV(264) - B(1477) = RCT(835) -! B(1478) = dA(836)/dV(223) - B(1478) = RCT(836) -! B(1479) = dA(837)/dV(90) - B(1479) = RCT(837) -! B(1480) = dA(838)/dV(56) - B(1480) = RCT(838) -! B(1481) = dA(839)/dV(199) - B(1481) = RCT(839) -! B(1482) = dA(840)/dV(266) - B(1482) = RCT(840) -! B(1483) = dA(841)/dV(40) - B(1483) = RCT(841) -! B(1484) = dA(842)/dV(43) - B(1484) = RCT(842) -! B(1485) = dA(843)/dV(1) - B(1485) = RCT(843) -! B(1486) = dA(844)/dV(3) - B(1486) = RCT(844) -! B(1487) = dA(845)/dV(2) - B(1487) = RCT(845) -! B(1488) = dA(846)/dV(38) - B(1488) = RCT(846) -! B(1489) = dA(847)/dV(47) - B(1489) = RCT(847) -! B(1490) = dA(848)/dV(69) - B(1490) = RCT(848) -! B(1491) = dA(849)/dV(98) - B(1491) = RCT(849) -! B(1492) = dA(850)/dV(71) - B(1492) = RCT(850) -! B(1493) = dA(851)/dV(71) - B(1493) = RCT(851) -! B(1494) = dA(852)/dV(193) - B(1494) = RCT(852) -! B(1495) = dA(853)/dV(57) - B(1495) = RCT(853) -! B(1496) = dA(854)/dV(62) - B(1496) = RCT(854) -! B(1497) = dA(855)/dV(119) - B(1497) = RCT(855) -! B(1498) = dA(856)/dV(280) - B(1498) = RCT(856) -! B(1499) = dA(857)/dV(118) - B(1499) = RCT(857) -! B(1500) = dA(858)/dV(205) - B(1500) = RCT(858) -! B(1501) = dA(859)/dV(174) - B(1501) = RCT(859) -! B(1502) = dA(860)/dV(196) - B(1502) = RCT(860) -! B(1503) = dA(861)/dV(131) - B(1503) = RCT(861) -! B(1504) = dA(862)/dV(59) - B(1504) = RCT(862) -! B(1505) = dA(863)/dV(59) - B(1505) = RCT(863) -! B(1506) = dA(864)/dV(58) - B(1506) = RCT(864) -! B(1507) = dA(865)/dV(58) - B(1507) = RCT(865) -! B(1508) = dA(866)/dV(87) - B(1508) = RCT(866) -! B(1509) = dA(867)/dV(88) - B(1509) = RCT(867) -! B(1510) = dA(868)/dV(86) - B(1510) = RCT(868) -! B(1511) = dA(869)/dV(89) - B(1511) = RCT(869) -! B(1512) = dA(870)/dV(83) - B(1512) = RCT(870) -! B(1513) = dA(871)/dV(168) - B(1513) = RCT(871) -! B(1514) = dA(872)/dV(104) - B(1514) = RCT(872) -! B(1515) = dA(873)/dV(194) - B(1515) = RCT(873) -! B(1516) = dA(874)/dV(166) - B(1516) = RCT(874) -! B(1517) = dA(875)/dV(181) - B(1517) = RCT(875) -! B(1518) = dA(876)/dV(226) - B(1518) = RCT(876) -! B(1519) = dA(877)/dV(152) - B(1519) = RCT(877) -! B(1520) = dA(878)/dV(160) - B(1520) = RCT(878) -! B(1521) = dA(879)/dV(227) - B(1521) = RCT(879) -! B(1522) = dA(880)/dV(133) - B(1522) = RCT(880) -! B(1523) = dA(881)/dV(237) - B(1523) = RCT(881) -! B(1524) = dA(882)/dV(195) - B(1524) = RCT(882) -! B(1525) = dA(883)/dV(171) - B(1525) = RCT(883) -! B(1526) = dA(884)/dV(153) - B(1526) = RCT(884) -! B(1527) = dA(885)/dV(158) - B(1527) = RCT(885) -! B(1528) = dA(886)/dV(167) - B(1528) = RCT(886) -! B(1529) = dA(887)/dV(161) - B(1529) = RCT(887) -! B(1530) = dA(888)/dV(182) - B(1530) = RCT(888) -! B(1531) = dA(889)/dV(184) - B(1531) = RCT(889) -! B(1532) = dA(890)/dV(126) - B(1532) = RCT(890) -! B(1533) = dA(891)/dV(124) - B(1533) = RCT(891) -! B(1534) = dA(892)/dV(216) - B(1534) = RCT(892) -! B(1535) = dA(893)/dV(136) - B(1535) = RCT(893) -! B(1536) = dA(894)/dV(137) - B(1536) = RCT(894) -! B(1537) = dA(895)/dV(210) - B(1537) = RCT(895) -! B(1538) = dA(896)/dV(177) - B(1538) = RCT(896) -! B(1539) = dA(897)/dV(147) - B(1539) = RCT(897) -! B(1540) = dA(898)/dV(147) - B(1540) = RCT(898) -! B(1541) = dA(899)/dV(236) - B(1541) = RCT(899) -! B(1542) = dA(900)/dV(239) - B(1542) = RCT(900) -! B(1543) = dA(901)/dV(202) - B(1543) = RCT(901) -! B(1544) = dA(902)/dV(202) - B(1544) = RCT(902) -! B(1545) = dA(903)/dV(139) - B(1545) = RCT(903) -! B(1546) = dA(904)/dV(159) - B(1546) = RCT(904) -! B(1547) = dA(905)/dV(122) - B(1547) = RCT(905) -! B(1548) = dA(906)/dV(238) - B(1548) = RCT(906) -! B(1549) = dA(907)/dV(238) - B(1549) = RCT(907) -! B(1550) = dA(908)/dV(209) - B(1550) = RCT(908) -! B(1551) = dA(909)/dV(209) - B(1551) = RCT(909) -! B(1552) = dA(910)/dV(113) - B(1552) = RCT(910) -! B(1553) = dA(911)/dV(99) - B(1553) = RCT(911) -! B(1554) = dA(912)/dV(67) - B(1554) = RCT(912) -! B(1555) = dA(913)/dV(105) - B(1555) = RCT(913) -! B(1556) = dA(914)/dV(206) - B(1556) = RCT(914) +! B(23) = dA(12)/dV(86) + B(23) = RCT(12)*V(276)*V(286) +! B(24) = dA(12)/dV(276) + B(24) = RCT(12)*V(86)*V(286) +! B(25) = dA(12)/dV(286) + B(25) = RCT(12)*V(86)*V(276) +! B(26) = dA(13)/dV(279) + B(26) = RCT(13)*V(282) +! B(27) = dA(13)/dV(282) + B(27) = RCT(13)*V(279) +! B(28) = dA(14)/dV(282) + B(28) = RCT(14)*V(286) +! B(29) = dA(14)/dV(286) + B(29) = RCT(14)*V(282) +! B(30) = dA(15)/dV(282) + B(30) = RCT(15)*V(284) +! B(31) = dA(15)/dV(284) + B(31) = RCT(15)*V(282) +! B(32) = dA(16)/dV(282) + B(32) = RCT(16)*V(291) +! B(33) = dA(16)/dV(291) + B(33) = RCT(16)*V(282) +! B(34) = dA(17)/dV(266) + B(34) = RCT(17)*V(282) +! B(35) = dA(17)/dV(282) + B(35) = RCT(17)*V(266) +! B(36) = dA(18)/dV(286) + B(36) = RCT(18)*2*V(286) +! B(37) = dA(19)/dV(286) + B(37) = RCT(19)*2*V(286) +! B(38) = dA(20)/dV(284) + B(38) = RCT(20)*V(286) +! B(39) = dA(20)/dV(286) + B(39) = RCT(20)*V(284) +! B(40) = dA(21)/dV(212) + B(40) = RCT(21)*V(286) +! B(41) = dA(21)/dV(286) + B(41) = RCT(21)*V(212) +! B(42) = dA(22)/dV(279) + B(42) = RCT(22)*V(284) +! B(43) = dA(22)/dV(284) + B(43) = RCT(22)*V(279) +! B(44) = dA(23)/dV(284) + B(44) = RCT(23)*2*V(284) +! B(45) = dA(24)/dV(267) + B(45) = RCT(24)*V(286) +! B(46) = dA(24)/dV(286) + B(46) = RCT(24)*V(267) +! B(47) = dA(25)/dV(190) + B(47) = RCT(25)*V(286) +! B(48) = dA(25)/dV(286) + B(48) = RCT(25)*V(190) +! B(49) = dA(26)/dV(266) + B(49) = RCT(26)*V(279) +! B(50) = dA(26)/dV(279) + B(50) = RCT(26)*V(266) +! B(51) = dA(27)/dV(266) + B(51) = RCT(27)*V(279) +! B(52) = dA(27)/dV(279) + B(52) = RCT(27)*V(266) +! B(53) = dA(28)/dV(266) + B(53) = RCT(28)*V(284) +! B(54) = dA(28)/dV(284) + B(54) = RCT(28)*V(266) +! B(55) = dA(29)/dV(266) + B(55) = RCT(29)*2*V(266) +! B(56) = dA(30)/dV(266) + B(56) = RCT(30)*2*V(266) +! B(57) = dA(31)/dV(266) + B(57) = RCT(31)*V(286) +! B(58) = dA(31)/dV(286) + B(58) = RCT(31)*V(266) +! B(59) = dA(32)/dV(137) + B(59) = RCT(32)*V(286) +! B(60) = dA(32)/dV(286) + B(60) = RCT(32)*V(137) +! B(61) = dA(33)/dV(196) + B(61) = RCT(33)*V(286) +! B(62) = dA(33)/dV(286) + B(62) = RCT(33)*V(196) +! B(63) = dA(34)/dV(263) + B(63) = RCT(34)*V(286) +! B(64) = dA(34)/dV(286) + B(64) = RCT(34)*V(263) +! B(65) = dA(35)/dV(286) + B(65) = RCT(35)*V(291) +! B(66) = dA(35)/dV(291) + B(66) = RCT(35)*V(286) +! B(67) = dA(36)/dV(265) + B(67) = RCT(36)*V(286) +! B(68) = dA(36)/dV(286) + B(68) = RCT(36)*V(265) +! B(69) = dA(37)/dV(279) + B(69) = RCT(37)*V(286) +! B(70) = dA(37)/dV(286) + B(70) = RCT(37)*V(279) +! B(71) = dA(38)/dV(193) + B(71) = RCT(38)*V(286) +! B(72) = dA(38)/dV(286) + B(72) = RCT(38)*V(193) +! B(73) = dA(39)/dV(284) + B(73) = RCT(39)*V(291) +! B(74) = dA(39)/dV(291) + B(74) = RCT(39)*V(284) +! B(75) = dA(40)/dV(102) + B(75) = RCT(40) +! B(76) = dA(41)/dV(102) + B(76) = RCT(41)*V(286) +! B(77) = dA(41)/dV(286) + B(77) = RCT(41)*V(102) +! B(78) = dA(42)/dV(281) + B(78) = RCT(42)*V(284) +! B(79) = dA(42)/dV(284) + B(79) = RCT(42)*V(281) +! B(80) = dA(43)/dV(279) + B(80) = RCT(43)*V(281) +! B(81) = dA(43)/dV(281) + B(81) = RCT(43)*V(279) +! B(82) = dA(44)/dV(281) + B(82) = RCT(44)*V(286) +! B(83) = dA(44)/dV(286) + B(83) = RCT(44)*V(281) +! B(84) = dA(45)/dV(281) + B(84) = RCT(45)*V(291) +! B(85) = dA(45)/dV(291) + B(85) = RCT(45)*V(281) +! B(86) = dA(46)/dV(173) + B(86) = RCT(46) +! B(87) = dA(47)/dV(211) + B(87) = RCT(47)*V(286) +! B(88) = dA(47)/dV(286) + B(88) = RCT(47)*V(211) +! B(89) = dA(48)/dV(218) + B(89) = RCT(48)*V(286) +! B(90) = dA(48)/dV(286) + B(90) = RCT(48)*V(218) +! B(91) = dA(49)/dV(281) + B(91) = RCT(49)*V(291) +! B(92) = dA(49)/dV(291) + B(92) = RCT(49)*V(281) +! B(93) = dA(50)/dV(263) + B(93) = RCT(50)*V(281) +! B(94) = dA(50)/dV(281) + B(94) = RCT(50)*V(263) +! B(95) = dA(51)/dV(264) + B(95) = RCT(51)*V(286) +! B(96) = dA(51)/dV(286) + B(96) = RCT(51)*V(264) +! B(97) = dA(52)/dV(264) + B(97) = RCT(52)*V(281) +! B(98) = dA(52)/dV(281) + B(98) = RCT(52)*V(264) +! B(99) = dA(53)/dV(261) + B(99) = RCT(53)*V(291) +! B(100) = dA(53)/dV(291) + B(100) = RCT(53)*V(261) +! B(101) = dA(54)/dV(67) + B(101) = RCT(54) +! B(102) = dA(55)/dV(261) + B(102) = RCT(55)*V(279) +! B(103) = dA(55)/dV(279) + B(103) = RCT(55)*V(261) +! B(104) = dA(56)/dV(161) + B(104) = RCT(56)*V(286) +! B(105) = dA(56)/dV(286) + B(105) = RCT(56)*V(161) +! B(106) = dA(57)/dV(217) + B(106) = RCT(57)*V(279) +! B(107) = dA(57)/dV(279) + B(107) = RCT(57)*V(217) +! B(108) = dA(58)/dV(217) + B(108) = RCT(58)*V(279) +! B(109) = dA(58)/dV(279) + B(109) = RCT(58)*V(217) +! B(110) = dA(59)/dV(239) + B(110) = RCT(59)*V(279) +! B(111) = dA(59)/dV(279) + B(111) = RCT(59)*V(239) +! B(112) = dA(60)/dV(124) + B(112) = RCT(60)*V(286) +! B(113) = dA(60)/dV(286) + B(113) = RCT(60)*V(124) +! B(114) = dA(61)/dV(124) + B(114) = RCT(61)*V(286) +! B(115) = dA(61)/dV(286) + B(115) = RCT(61)*V(124) +! B(116) = dA(62)/dV(237) + B(116) = RCT(62)*V(279) +! B(117) = dA(62)/dV(279) + B(117) = RCT(62)*V(237) +! B(118) = dA(63)/dV(237) + B(118) = RCT(63)*V(279) +! B(119) = dA(63)/dV(279) + B(119) = RCT(63)*V(237) +! B(120) = dA(64)/dV(209) + B(120) = RCT(64)*V(279) +! B(121) = dA(64)/dV(279) + B(121) = RCT(64)*V(209) +! B(122) = dA(65)/dV(114) + B(122) = RCT(65)*V(286) +! B(123) = dA(65)/dV(286) + B(123) = RCT(65)*V(114) +! B(124) = dA(66)/dV(256) + B(124) = RCT(66)*V(279) +! B(125) = dA(66)/dV(279) + B(125) = RCT(66)*V(256) +! B(126) = dA(67)/dV(256) + B(126) = RCT(67)*V(279) +! B(127) = dA(67)/dV(279) + B(127) = RCT(67)*V(256) +! B(128) = dA(68)/dV(257) + B(128) = RCT(68)*V(279) +! B(129) = dA(68)/dV(279) + B(129) = RCT(68)*V(257) +! B(130) = dA(69)/dV(252) + B(130) = RCT(69)*V(279) +! B(131) = dA(69)/dV(279) + B(131) = RCT(69)*V(252) +! B(132) = dA(70)/dV(254) + B(132) = RCT(70)*V(279) +! B(133) = dA(70)/dV(279) + B(133) = RCT(70)*V(254) +! B(134) = dA(71)/dV(258) + B(134) = RCT(71)*V(279) +! B(135) = dA(71)/dV(279) + B(135) = RCT(71)*V(258) +! B(136) = dA(72)/dV(258) + B(136) = RCT(72)*V(279) +! B(137) = dA(72)/dV(279) + B(137) = RCT(72)*V(258) +! B(138) = dA(73)/dV(201) + B(138) = RCT(73)*V(279) +! B(139) = dA(73)/dV(279) + B(139) = RCT(73)*V(201) +! B(140) = dA(74)/dV(114) + B(140) = RCT(74)*V(281) +! B(141) = dA(74)/dV(281) + B(141) = RCT(74)*V(114) +! B(142) = dA(75)/dV(202) + B(142) = RCT(75)*V(286) +! B(143) = dA(75)/dV(286) + B(143) = RCT(75)*V(202) +! B(144) = dA(76)/dV(219) + B(144) = RCT(76)*V(286) +! B(145) = dA(76)/dV(286) + B(145) = RCT(76)*V(219) +! B(146) = dA(77)/dV(259) + B(146) = RCT(77)*V(286) +! B(147) = dA(77)/dV(286) + B(147) = RCT(77)*V(259) +! B(148) = dA(78)/dV(255) + B(148) = RCT(78)*V(291) +! B(149) = dA(78)/dV(291) + B(149) = RCT(78)*V(255) +! B(150) = dA(79)/dV(50) + B(150) = RCT(79) +! B(151) = dA(80)/dV(255) + B(151) = RCT(80)*V(279) +! B(152) = dA(80)/dV(279) + B(152) = RCT(80)*V(255) +! B(153) = dA(81)/dV(259) + B(153) = RCT(81)*V(281) +! B(154) = dA(81)/dV(281) + B(154) = RCT(81)*V(259) +! B(155) = dA(82)/dV(221) + B(155) = RCT(82)*V(286) +! B(156) = dA(82)/dV(286) + B(156) = RCT(82)*V(221) +! B(157) = dA(83)/dV(237) + B(157) = RCT(83)*V(266) +! B(158) = dA(83)/dV(266) + B(158) = RCT(83)*V(237) +! B(159) = dA(84)/dV(209) + B(159) = RCT(84)*V(266) +! B(160) = dA(84)/dV(266) + B(160) = RCT(84)*V(209) +! B(161) = dA(85)/dV(256) + B(161) = RCT(85)*V(284) +! B(162) = dA(85)/dV(284) + B(162) = RCT(85)*V(256) +! B(163) = dA(86)/dV(257) + B(163) = RCT(86)*V(284) +! B(164) = dA(86)/dV(284) + B(164) = RCT(86)*V(257) +! B(165) = dA(87)/dV(252) + B(165) = RCT(87)*V(284) +! B(166) = dA(87)/dV(284) + B(166) = RCT(87)*V(252) +! B(167) = dA(88)/dV(254) + B(167) = RCT(88)*V(284) +! B(168) = dA(88)/dV(284) + B(168) = RCT(88)*V(254) +! B(169) = dA(89)/dV(258) + B(169) = RCT(89)*V(284) +! B(170) = dA(89)/dV(284) + B(170) = RCT(89)*V(258) +! B(171) = dA(90)/dV(201) + B(171) = RCT(90)*V(284) +! B(172) = dA(90)/dV(284) + B(172) = RCT(90)*V(201) +! B(173) = dA(91)/dV(226) + B(173) = RCT(91)*V(286) +! B(174) = dA(91)/dV(286) + B(174) = RCT(91)*V(226) +! B(175) = dA(92)/dV(217) + B(175) = RCT(92)*V(266) +! B(176) = dA(92)/dV(266) + B(176) = RCT(92)*V(217) +! B(177) = dA(93)/dV(239) + B(177) = RCT(93)*V(266) +! B(178) = dA(93)/dV(266) + B(178) = RCT(93)*V(239) +! B(179) = dA(94)/dV(226) + B(179) = RCT(94)*V(281) +! B(180) = dA(94)/dV(281) + B(180) = RCT(94)*V(226) +! B(181) = dA(95)/dV(256) + B(181) = RCT(95)*V(266) +! B(182) = dA(95)/dV(266) + B(182) = RCT(95)*V(256) +! B(183) = dA(96)/dV(257) + B(183) = RCT(96)*V(266) +! B(184) = dA(96)/dV(266) + B(184) = RCT(96)*V(257) +! B(185) = dA(97)/dV(252) + B(185) = RCT(97)*V(266) +! B(186) = dA(97)/dV(266) + B(186) = RCT(97)*V(252) +! B(187) = dA(98)/dV(254) + B(187) = RCT(98)*V(266) +! B(188) = dA(98)/dV(266) + B(188) = RCT(98)*V(254) +! B(189) = dA(99)/dV(258) + B(189) = RCT(99)*V(266) +! B(190) = dA(99)/dV(266) + B(190) = RCT(99)*V(258) +! B(191) = dA(100)/dV(201) + B(191) = RCT(100)*V(266) +! B(192) = dA(100)/dV(266) + B(192) = RCT(100)*V(201) +! B(193) = dA(101)/dV(133) + B(193) = RCT(101)*V(286) +! B(194) = dA(101)/dV(286) + B(194) = RCT(101)*V(133) +! B(195) = dA(102)/dV(158) + B(195) = RCT(102)*V(286) +! B(196) = dA(102)/dV(286) + B(196) = RCT(102)*V(158) +! B(197) = dA(103)/dV(217) + B(197) = RCT(103)*2*V(217) +! B(198) = dA(104)/dV(239) + B(198) = RCT(104)*2*V(239) +! B(199) = dA(105)/dV(217) + B(199) = RCT(105)*V(284) +! B(200) = dA(105)/dV(284) + B(200) = RCT(105)*V(217) +! B(201) = dA(106)/dV(239) + B(201) = RCT(106)*V(284) +! B(202) = dA(106)/dV(284) + B(202) = RCT(106)*V(239) +! B(203) = dA(107)/dV(237) + B(203) = RCT(107)*V(284) +! B(204) = dA(107)/dV(284) + B(204) = RCT(107)*V(237) +! B(205) = dA(108)/dV(209) + B(205) = RCT(108)*V(284) +! B(206) = dA(108)/dV(284) + B(206) = RCT(108)*V(209) +! B(207) = dA(109)/dV(255) + B(207) = RCT(109)*V(284) +! B(208) = dA(109)/dV(284) + B(208) = RCT(109)*V(255) +! B(209) = dA(110)/dV(253) + B(209) = RCT(110)*V(286) +! B(210) = dA(110)/dV(286) + B(210) = RCT(110)*V(253) +! B(211) = dA(111)/dV(253) + B(211) = RCT(111)*V(282) +! B(212) = dA(111)/dV(282) + B(212) = RCT(111)*V(253) +! B(213) = dA(112)/dV(236) + B(213) = RCT(112)*V(286) +! B(214) = dA(112)/dV(286) + B(214) = RCT(112)*V(236) +! B(215) = dA(113)/dV(236) + B(215) = RCT(113)*V(286) +! B(216) = dA(113)/dV(286) + B(216) = RCT(113)*V(236) +! B(217) = dA(114)/dV(253) + B(217) = RCT(114)*V(281) +! B(218) = dA(114)/dV(281) + B(218) = RCT(114)*V(253) +! B(219) = dA(115)/dV(223) + B(219) = RCT(115)*V(286) +! B(220) = dA(115)/dV(286) + B(220) = RCT(115)*V(223) +! B(221) = dA(116)/dV(233) + B(221) = RCT(116)*V(286) +! B(222) = dA(116)/dV(286) + B(222) = RCT(116)*V(233) +! B(223) = dA(117)/dV(223) + B(223) = RCT(117)*V(281) +! B(224) = dA(117)/dV(281) + B(224) = RCT(117)*V(223) +! B(225) = dA(118)/dV(233) + B(225) = RCT(118)*V(281) +! B(226) = dA(118)/dV(281) + B(226) = RCT(118)*V(233) +! B(227) = dA(119)/dV(250) + B(227) = RCT(119)*V(286) +! B(228) = dA(119)/dV(286) + B(228) = RCT(119)*V(250) +! B(229) = dA(120)/dV(250) + B(229) = RCT(120)*V(286) +! B(230) = dA(120)/dV(286) + B(230) = RCT(120)*V(250) +! B(231) = dA(121)/dV(113) + B(231) = RCT(121)*V(286) +! B(232) = dA(121)/dV(286) + B(232) = RCT(121)*V(113) +! B(233) = dA(122)/dV(110) + B(233) = RCT(122)*V(286) +! B(234) = dA(122)/dV(286) + B(234) = RCT(122)*V(110) +! B(235) = dA(123)/dV(94) + B(235) = RCT(123)*V(286) +! B(236) = dA(123)/dV(286) + B(236) = RCT(123)*V(94) +! B(237) = dA(124)/dV(95) + B(237) = RCT(124)*V(286) +! B(238) = dA(124)/dV(286) + B(238) = RCT(124)*V(95) +! B(239) = dA(125)/dV(93) + B(239) = RCT(125)*V(286) +! B(240) = dA(125)/dV(286) + B(240) = RCT(125)*V(93) +! B(241) = dA(126)/dV(106) + B(241) = RCT(126)*V(286) +! B(242) = dA(126)/dV(286) + B(242) = RCT(126)*V(106) +! B(243) = dA(127)/dV(112) + B(243) = RCT(127)*V(286) +! B(244) = dA(127)/dV(286) + B(244) = RCT(127)*V(112) +! B(245) = dA(128)/dV(24) + B(245) = RCT(128)*V(286) +! B(246) = dA(128)/dV(286) + B(246) = RCT(128)*V(24) +! B(247) = dA(129)/dV(88) + B(247) = RCT(129)*V(286) +! B(248) = dA(129)/dV(286) + B(248) = RCT(129)*V(88) +! B(249) = dA(130)/dV(161) + B(249) = RCT(130)*V(281) +! B(250) = dA(130)/dV(281) + B(250) = RCT(130)*V(161) +! B(251) = dA(131)/dV(261) + B(251) = RCT(131)*2*V(261) +! B(252) = dA(132)/dV(261) + B(252) = RCT(132)*V(266) +! B(253) = dA(132)/dV(266) + B(253) = RCT(132)*V(261) +! B(254) = dA(133)/dV(256) + B(254) = RCT(133)*V(261) +! B(255) = dA(133)/dV(261) + B(255) = RCT(133)*V(256) +! B(256) = dA(134)/dV(252) + B(256) = RCT(134)*V(261) +! B(257) = dA(134)/dV(261) + B(257) = RCT(134)*V(252) +! B(258) = dA(135)/dV(254) + B(258) = RCT(135)*V(261) +! B(259) = dA(135)/dV(261) + B(259) = RCT(135)*V(254) +! B(260) = dA(136)/dV(258) + B(260) = RCT(136)*V(261) +! B(261) = dA(136)/dV(261) + B(261) = RCT(136)*V(258) +! B(262) = dA(137)/dV(257) + B(262) = RCT(137)*V(261) +! B(263) = dA(137)/dV(261) + B(263) = RCT(137)*V(257) +! B(264) = dA(138)/dV(201) + B(264) = RCT(138)*V(261) +! B(265) = dA(138)/dV(261) + B(265) = RCT(138)*V(201) +! B(266) = dA(139)/dV(217) + B(266) = RCT(139)*V(261) +! B(267) = dA(139)/dV(261) + B(267) = RCT(139)*V(217) +! B(268) = dA(140)/dV(239) + B(268) = RCT(140)*V(261) +! B(269) = dA(140)/dV(261) + B(269) = RCT(140)*V(239) +! B(270) = dA(141)/dV(209) + B(270) = RCT(141)*V(261) +! B(271) = dA(141)/dV(261) + B(271) = RCT(141)*V(209) +! B(272) = dA(142)/dV(237) + B(272) = RCT(142)*V(261) +! B(273) = dA(142)/dV(261) + B(273) = RCT(142)*V(237) +! B(274) = dA(143)/dV(255) + B(274) = RCT(143)*V(261) +! B(275) = dA(143)/dV(261) + B(275) = RCT(143)*V(255) +! B(276) = dA(144)/dV(255) + B(276) = RCT(144)*V(266) +! B(277) = dA(144)/dV(266) + B(277) = RCT(144)*V(255) +! B(278) = dA(145)/dV(281) + B(278) = RCT(145)*2*V(281) +! B(279) = dA(146)/dV(266) + B(279) = RCT(146)*V(291) +! B(280) = dA(146)/dV(291) + B(280) = RCT(146)*V(266) +! B(281) = dA(147)/dV(74) + B(281) = RCT(147) +! B(282) = dA(148)/dV(90) + B(282) = RCT(148)*V(286) +! B(283) = dA(148)/dV(286) + B(283) = RCT(148)*V(90) +! B(284) = dA(149)/dV(90) + B(284) = RCT(149)*V(286) +! B(285) = dA(149)/dV(286) + B(285) = RCT(149)*V(90) +! B(286) = dA(150)/dV(90) + B(286) = RCT(150)*V(281) +! B(287) = dA(150)/dV(281) + B(287) = RCT(150)*V(90) +! B(288) = dA(151)/dV(276) + B(288) = RCT(151)*V(286) +! B(289) = dA(151)/dV(286) + B(289) = RCT(151)*V(276) +! B(290) = dA(152)/dV(273) + B(290) = RCT(152)*V(282) +! B(291) = dA(152)/dV(282) + B(291) = RCT(152)*V(273) +! B(292) = dA(153)/dV(274) + B(292) = RCT(153)*V(284) +! B(293) = dA(153)/dV(284) + B(293) = RCT(153)*V(274) +! B(294) = dA(154)/dV(273) + B(294) = RCT(154)*V(284) +! B(295) = dA(154)/dV(284) + B(295) = RCT(154)*V(273) +! B(296) = dA(155)/dV(286) + B(296) = RCT(155)*V(289) +! B(297) = dA(155)/dV(289) + B(297) = RCT(155)*V(286) +! B(298) = dA(156)/dV(274) + B(298) = RCT(156)*2*V(274) +! B(299) = dA(157)/dV(274) + B(299) = RCT(157)*2*V(274) +! B(300) = dA(158)/dV(274) + B(300) = RCT(158)*V(279) +! B(301) = dA(158)/dV(279) + B(301) = RCT(158)*V(274) +! B(302) = dA(159)/dV(176) + B(302) = RCT(159)*V(273) +! B(303) = dA(159)/dV(273) + B(303) = RCT(159)*V(176) +! B(304) = dA(160)/dV(128) + B(304) = RCT(160)*V(286) +! B(305) = dA(160)/dV(286) + B(305) = RCT(160)*V(128) +! B(306) = dA(161)/dV(260) + B(306) = RCT(161)*V(288) +! B(307) = dA(161)/dV(288) + B(307) = RCT(161)*V(260) +! B(308) = dA(162)/dV(288) + B(308) = RCT(162)*V(289) +! B(309) = dA(162)/dV(289) + B(309) = RCT(162)*V(288) +! B(310) = dA(163)/dV(274) + B(310) = RCT(163)*V(286) +! B(311) = dA(163)/dV(286) + B(311) = RCT(163)*V(274) +! B(312) = dA(164)/dV(273) + B(312) = RCT(164)*V(281) +! B(313) = dA(164)/dV(281) + B(313) = RCT(164)*V(273) +! B(314) = dA(165)/dV(263) + B(314) = RCT(165)*V(273) +! B(315) = dA(165)/dV(273) + B(315) = RCT(165)*V(263) +! B(316) = dA(166)/dV(264) + B(316) = RCT(166)*V(273) +! B(317) = dA(166)/dV(273) + B(317) = RCT(166)*V(264) +! B(318) = dA(167)/dV(221) + B(318) = RCT(167)*V(273) +! B(319) = dA(167)/dV(273) + B(319) = RCT(167)*V(221) +! B(320) = dA(168)/dV(161) + B(320) = RCT(168)*V(273) +! B(321) = dA(168)/dV(273) + B(321) = RCT(168)*V(161) +! B(322) = dA(169)/dV(124) + B(322) = RCT(169)*V(273) +! B(323) = dA(169)/dV(273) + B(323) = RCT(169)*V(124) +! B(324) = dA(170)/dV(273) + B(324) = RCT(170)*V(291) +! B(325) = dA(170)/dV(291) + B(325) = RCT(170)*V(273) +! B(326) = dA(171)/dV(274) + B(326) = RCT(171)*V(291) +! B(327) = dA(171)/dV(291) + B(327) = RCT(171)*V(274) +! B(328) = dA(172)/dV(77) + B(328) = RCT(172)*V(286) +! B(329) = dA(172)/dV(286) + B(329) = RCT(172)*V(77) +! B(330) = dA(173)/dV(71) + B(330) = RCT(173)*V(286) +! B(331) = dA(173)/dV(286) + B(331) = RCT(173)*V(71) +! B(332) = dA(174)/dV(100) + B(332) = RCT(174)*V(286) +! B(333) = dA(174)/dV(286) + B(333) = RCT(174)*V(100) +! B(334) = dA(175)/dV(272) + B(334) = RCT(175)*V(278) +! B(335) = dA(175)/dV(278) + B(335) = RCT(175)*V(272) +! B(336) = dA(176)/dV(272) + B(336) = RCT(176)*F(2) +! B(338) = dA(177)/dV(272) + B(338) = RCT(177)*F(3) +! B(340) = dA(178)/dV(272) + B(340) = RCT(178)*F(1) +! B(342) = dA(179)/dV(61) + B(342) = RCT(179)*V(272) +! B(343) = dA(179)/dV(272) + B(343) = RCT(179)*V(61) +! B(344) = dA(180)/dV(190) + B(344) = RCT(180)*V(272) +! B(345) = dA(180)/dV(272) + B(345) = RCT(180)*V(190) +! B(346) = dA(181)/dV(288) + B(346) = RCT(181)*F(3) +! B(348) = dA(182)/dV(282) + B(348) = RCT(182)*V(288) +! B(349) = dA(182)/dV(288) + B(349) = RCT(182)*V(282) +! B(350) = dA(183)/dV(286) + B(350) = RCT(183)*F(1) +! B(352) = dA(184)/dV(286) + B(352) = RCT(184)*V(288) +! B(353) = dA(184)/dV(288) + B(353) = RCT(184)*V(286) +! B(354) = dA(185)/dV(284) + B(354) = RCT(185)*V(288) +! B(355) = dA(185)/dV(288) + B(355) = RCT(185)*V(284) +! B(356) = dA(186)/dV(272) + B(356) = RCT(186)*V(282) +! B(357) = dA(186)/dV(282) + B(357) = RCT(186)*V(272) +! B(358) = dA(187)/dV(66) + B(358) = RCT(187)*V(288) +! B(359) = dA(187)/dV(288) + B(359) = RCT(187)*V(66) +! B(360) = dA(188)/dV(66) + B(360) = RCT(188)*V(286) +! B(361) = dA(188)/dV(286) + B(361) = RCT(188)*V(66) +! B(362) = dA(189)/dV(288) + B(362) = RCT(189)*V(291) +! B(363) = dA(189)/dV(291) + B(363) = RCT(189)*V(288) +! B(364) = dA(190)/dV(281) + B(364) = RCT(190)*V(288) +! B(365) = dA(190)/dV(288) + B(365) = RCT(190)*V(281) +! B(366) = dA(191)/dV(279) + B(366) = RCT(191)*V(288) +! B(367) = dA(191)/dV(288) + B(367) = RCT(191)*V(279) +! B(368) = dA(192)/dV(288) + B(368) = RCT(192)*V(291) +! B(369) = dA(192)/dV(291) + B(369) = RCT(192)*V(288) +! B(370) = dA(193)/dV(212) + B(370) = RCT(193)*V(288) +! B(371) = dA(193)/dV(288) + B(371) = RCT(193)*V(212) +! B(372) = dA(194)/dV(177) + B(372) = RCT(194)*F(3) +! B(374) = dA(195)/dV(177) + B(374) = RCT(195)*V(282) +! B(375) = dA(195)/dV(282) + B(375) = RCT(195)*V(177) +! B(376) = dA(196)/dV(177) + B(376) = RCT(196)*V(284) +! B(377) = dA(196)/dV(284) + B(377) = RCT(196)*V(177) +! B(378) = dA(197)/dV(65) + B(378) = RCT(197)*F(3) +! B(380) = dA(198)/dV(65) + B(380) = RCT(198)*V(279) +! B(381) = dA(198)/dV(279) + B(381) = RCT(198)*V(65) +! B(382) = dA(199)/dV(65) + B(382) = RCT(199)*V(291) +! B(383) = dA(199)/dV(291) + B(383) = RCT(199)*V(65) +! B(384) = dA(200)/dV(274) + B(384) = RCT(200)*V(288) +! B(385) = dA(200)/dV(288) + B(385) = RCT(200)*V(274) +! B(386) = dA(201)/dV(263) + B(386) = RCT(201)*V(288) +! B(387) = dA(201)/dV(288) + B(387) = RCT(201)*V(263) +! B(388) = dA(202)/dV(272) + B(388) = RCT(202)*V(275) +! B(389) = dA(202)/dV(275) + B(389) = RCT(202)*V(272) +! B(390) = dA(203)/dV(272) + B(390) = RCT(203)*V(289) +! B(391) = dA(203)/dV(289) + B(391) = RCT(203)*V(272) +! B(392) = dA(204)/dV(197) + B(392) = RCT(204)*V(272) +! B(393) = dA(204)/dV(272) + B(393) = RCT(204)*V(197) +! B(394) = dA(205)/dV(52) + B(394) = RCT(205)*V(272) +! B(395) = dA(205)/dV(272) + B(395) = RCT(205)*V(52) +! B(396) = dA(206)/dV(149) + B(396) = RCT(206)*V(272) +! B(397) = dA(206)/dV(272) + B(397) = RCT(206)*V(149) +! B(398) = dA(207)/dV(100) + B(398) = RCT(207)*V(272) +! B(399) = dA(207)/dV(272) + B(399) = RCT(207)*V(100) +! B(400) = dA(208)/dV(71) + B(400) = RCT(208)*V(272) +! B(401) = dA(208)/dV(272) + B(401) = RCT(208)*V(71) +! B(402) = dA(209)/dV(77) + B(402) = RCT(209)*V(272) +! B(403) = dA(209)/dV(272) + B(403) = RCT(209)*V(77) +! B(404) = dA(210)/dV(84) + B(404) = RCT(210)*V(272) +! B(405) = dA(210)/dV(272) + B(405) = RCT(210)*V(84) +! B(406) = dA(211)/dV(53) + B(406) = RCT(211)*V(272) +! B(407) = dA(211)/dV(272) + B(407) = RCT(211)*V(53) +! B(408) = dA(212)/dV(54) + B(408) = RCT(212)*V(272) +! B(409) = dA(212)/dV(272) + B(409) = RCT(212)*V(54) +! B(410) = dA(213)/dV(59) + B(410) = RCT(213)*V(272) +! B(411) = dA(213)/dV(272) + B(411) = RCT(213)*V(59) +! B(412) = dA(214)/dV(47) + B(412) = RCT(214)*V(272) +! B(413) = dA(214)/dV(272) + B(413) = RCT(214)*V(47) +! B(414) = dA(215)/dV(82) + B(414) = RCT(215)*V(272) +! B(415) = dA(215)/dV(272) + B(415) = RCT(215)*V(82) +! B(416) = dA(216)/dV(83) + B(416) = RCT(216)*V(272) +! B(417) = dA(216)/dV(272) + B(417) = RCT(216)*V(83) +! B(418) = dA(217)/dV(81) + B(418) = RCT(217)*V(272) +! B(419) = dA(217)/dV(272) + B(419) = RCT(217)*V(81) +! B(420) = dA(218)/dV(55) + B(420) = RCT(218)*V(272) +! B(421) = dA(218)/dV(272) + B(421) = RCT(218)*V(55) +! B(422) = dA(219)/dV(56) + B(422) = RCT(219)*V(272) +! B(423) = dA(219)/dV(272) + B(423) = RCT(219)*V(56) +! B(424) = dA(220)/dV(57) + B(424) = RCT(220)*V(272) +! B(425) = dA(220)/dV(272) + B(425) = RCT(220)*V(57) +! B(426) = dA(221)/dV(48) + B(426) = RCT(221)*V(272) +! B(427) = dA(221)/dV(272) + B(427) = RCT(221)*V(48) +! B(428) = dA(222)/dV(197) + B(428) = RCT(222)*V(286) +! B(429) = dA(222)/dV(286) + B(429) = RCT(222)*V(197) +! B(430) = dA(223)/dV(266) + B(430) = RCT(223)*V(285) +! B(431) = dA(223)/dV(285) + B(431) = RCT(223)*V(266) +! B(432) = dA(224)/dV(285) + B(432) = RCT(224)*V(286) +! B(433) = dA(224)/dV(286) + B(433) = RCT(224)*V(285) +! B(434) = dA(225)/dV(285) + B(434) = RCT(225)*V(286) +! B(435) = dA(225)/dV(286) + B(435) = RCT(225)*V(285) +! B(436) = dA(226)/dV(111) + B(436) = RCT(226)*V(286) +! B(437) = dA(226)/dV(286) + B(437) = RCT(226)*V(111) +! B(438) = dA(227)/dV(75) + B(438) = RCT(227)*V(286) +! B(439) = dA(227)/dV(286) + B(439) = RCT(227)*V(75) +! B(440) = dA(228)/dV(275) + B(440) = RCT(228)*V(286) +! B(441) = dA(228)/dV(286) + B(441) = RCT(228)*V(275) +! B(442) = dA(229)/dV(271) + B(442) = RCT(229)*V(286) +! B(443) = dA(229)/dV(286) + B(443) = RCT(229)*V(271) +! B(444) = dA(230)/dV(235) + B(444) = RCT(230)*V(286) +! B(445) = dA(230)/dV(286) + B(445) = RCT(230)*V(235) +! B(446) = dA(231)/dV(262) + B(446) = RCT(231)*V(286) +! B(447) = dA(231)/dV(286) + B(447) = RCT(231)*V(262) +! B(448) = dA(232)/dV(149) + B(448) = RCT(232)*V(286) +! B(449) = dA(232)/dV(286) + B(449) = RCT(232)*V(149) +! B(450) = dA(233)/dV(72) + B(450) = RCT(233)*V(286) +! B(451) = dA(233)/dV(286) + B(451) = RCT(233)*V(72) +! B(452) = dA(234)/dV(78) + B(452) = RCT(234)*V(286) +! B(453) = dA(234)/dV(286) + B(453) = RCT(234)*V(78) +! B(454) = dA(235)/dV(43) + B(454) = RCT(235)*V(286) +! B(455) = dA(235)/dV(286) + B(455) = RCT(235)*V(43) +! B(456) = dA(236)/dV(84) + B(456) = RCT(236)*V(286) +! B(457) = dA(236)/dV(286) + B(457) = RCT(236)*V(84) +! B(458) = dA(237)/dV(82) + B(458) = RCT(237)*V(286) +! B(459) = dA(237)/dV(286) + B(459) = RCT(237)*V(82) +! B(460) = dA(238)/dV(83) + B(460) = RCT(238)*V(286) +! B(461) = dA(238)/dV(286) + B(461) = RCT(238)*V(83) +! B(462) = dA(239)/dV(81) + B(462) = RCT(239)*V(286) +! B(463) = dA(239)/dV(286) + B(463) = RCT(239)*V(81) +! B(464) = dA(240)/dV(190) + B(464) = RCT(240)*V(290) +! B(465) = dA(240)/dV(290) + B(465) = RCT(240)*V(190) +! B(466) = dA(241)/dV(263) + B(466) = RCT(241)*V(290) +! B(467) = dA(241)/dV(290) + B(467) = RCT(241)*V(263) +! B(468) = dA(242)/dV(282) + B(468) = RCT(242)*V(290) +! B(469) = dA(242)/dV(290) + B(469) = RCT(242)*V(282) +! B(470) = dA(243)/dV(290) + B(470) = RCT(243)*F(1) +! B(472) = dA(244)/dV(212) + B(472) = RCT(244)*V(290) +! B(473) = dA(244)/dV(290) + B(473) = RCT(244)*V(212) +! B(474) = dA(245)/dV(284) + B(474) = RCT(245)*V(290) +! B(475) = dA(245)/dV(290) + B(475) = RCT(245)*V(284) +! B(476) = dA(246)/dV(284) + B(476) = RCT(246)*V(290) +! B(477) = dA(246)/dV(290) + B(477) = RCT(246)*V(284) +! B(478) = dA(247)/dV(285) + B(478) = RCT(247)*V(288) +! B(479) = dA(247)/dV(288) + B(479) = RCT(247)*V(285) +! B(480) = dA(248)/dV(284) + B(480) = RCT(248)*V(285) +! B(481) = dA(248)/dV(285) + B(481) = RCT(248)*V(284) +! B(482) = dA(249)/dV(279) + B(482) = RCT(249)*V(285) +! B(483) = dA(249)/dV(285) + B(483) = RCT(249)*V(279) +! B(484) = dA(250)/dV(285) + B(484) = RCT(250)*V(291) +! B(485) = dA(250)/dV(291) + B(485) = RCT(250)*V(285) +! B(486) = dA(251)/dV(285) + B(486) = RCT(251)*2*V(285) +! B(487) = dA(252)/dV(285) + B(487) = RCT(252)*2*V(285) +! B(488) = dA(253)/dV(285) + B(488) = RCT(253)*2*V(285) +! B(489) = dA(254)/dV(290) + B(489) = RCT(254)*F(3) +! B(491) = dA(255)/dV(103) + B(491) = RCT(255) +! B(492) = dA(256)/dV(285) + B(492) = RCT(256)*2*V(285) +! B(493) = dA(257)/dV(75) + B(493) = RCT(257) +! B(494) = dA(258)/dV(103) + B(494) = RCT(258)*V(290) +! B(495) = dA(258)/dV(290) + B(495) = RCT(258)*V(103) +! B(496) = dA(259)/dV(274) + B(496) = RCT(259)*V(285) +! B(497) = dA(259)/dV(285) + B(497) = RCT(259)*V(274) +! B(498) = dA(260)/dV(274) + B(498) = RCT(260)*V(285) +! B(499) = dA(260)/dV(285) + B(499) = RCT(260)*V(274) +! B(500) = dA(261)/dV(274) + B(500) = RCT(261)*V(285) +! B(501) = dA(261)/dV(285) + B(501) = RCT(261)*V(274) +! B(502) = dA(262)/dV(262) + B(502) = RCT(262)*V(288) +! B(503) = dA(262)/dV(288) + B(503) = RCT(262)*V(262) +! B(504) = dA(263)/dV(262) + B(504) = RCT(263)*V(290) +! B(505) = dA(263)/dV(290) + B(505) = RCT(263)*V(262) +! B(506) = dA(264)/dV(149) + B(506) = RCT(264)*V(290) +! B(507) = dA(264)/dV(290) + B(507) = RCT(264)*V(149) +! B(508) = dA(265)/dV(72) + B(508) = RCT(265)*V(290) +! B(509) = dA(265)/dV(290) + B(509) = RCT(265)*V(72) +! B(510) = dA(266)/dV(78) + B(510) = RCT(266)*V(290) +! B(511) = dA(266)/dV(290) + B(511) = RCT(266)*V(78) +! B(512) = dA(267)/dV(211) + B(512) = RCT(267)*V(290) +! B(513) = dA(267)/dV(290) + B(513) = RCT(267)*V(211) +! B(514) = dA(268)/dV(266) + B(514) = RCT(268)*V(290) +! B(515) = dA(268)/dV(290) + B(515) = RCT(268)*V(266) +! B(516) = dA(269)/dV(137) + B(516) = RCT(269)*V(290) +! B(517) = dA(269)/dV(290) + B(517) = RCT(269)*V(137) +! B(518) = dA(270)/dV(161) + B(518) = RCT(270)*V(290) +! B(519) = dA(270)/dV(290) + B(519) = RCT(270)*V(161) +! B(520) = dA(271)/dV(217) + B(520) = RCT(271)*V(290) +! B(521) = dA(271)/dV(290) + B(521) = RCT(271)*V(217) +! B(522) = dA(272)/dV(239) + B(522) = RCT(272)*V(290) +! B(523) = dA(272)/dV(290) + B(523) = RCT(272)*V(239) +! B(524) = dA(273)/dV(218) + B(524) = RCT(273)*V(290) +! B(525) = dA(273)/dV(290) + B(525) = RCT(273)*V(218) +! B(526) = dA(274)/dV(133) + B(526) = RCT(274)*V(290) +! B(527) = dA(274)/dV(290) + B(527) = RCT(274)*V(133) +! B(528) = dA(275)/dV(219) + B(528) = RCT(275)*V(290) +! B(529) = dA(275)/dV(290) + B(529) = RCT(275)*V(219) +! B(530) = dA(276)/dV(124) + B(530) = RCT(276)*V(290) +! B(531) = dA(276)/dV(290) + B(531) = RCT(276)*V(124) +! B(532) = dA(277)/dV(124) + B(532) = RCT(277)*V(290) +! B(533) = dA(277)/dV(290) + B(533) = RCT(277)*V(124) +! B(534) = dA(278)/dV(221) + B(534) = RCT(278)*V(290) +! B(535) = dA(278)/dV(290) + B(535) = RCT(278)*V(221) +! B(536) = dA(279)/dV(224) + B(536) = RCT(279)*V(290) +! B(537) = dA(279)/dV(290) + B(537) = RCT(279)*V(224) +! B(538) = dA(280)/dV(114) + B(538) = RCT(280)*V(290) +! B(539) = dA(280)/dV(290) + B(539) = RCT(280)*V(114) +! B(540) = dA(281)/dV(253) + B(540) = RCT(281)*V(290) +! B(541) = dA(281)/dV(290) + B(541) = RCT(281)*V(253) +! B(542) = dA(282)/dV(253) + B(542) = RCT(282)*V(273) +! B(543) = dA(282)/dV(273) + B(543) = RCT(282)*V(253) +! B(544) = dA(283)/dV(269) + B(544) = RCT(283)*V(279) +! B(545) = dA(283)/dV(279) + B(545) = RCT(283)*V(269) +! B(546) = dA(284)/dV(60) + B(546) = RCT(284)*2*V(60) +! B(547) = dA(285)/dV(269) + B(547) = RCT(285)*V(291) +! B(548) = dA(285)/dV(291) + B(548) = RCT(285)*V(269) +! B(549) = dA(286)/dV(203) + B(549) = RCT(286) +! B(550) = dA(287)/dV(203) + B(550) = RCT(287)*2*V(203) +! B(551) = dA(288)/dV(143) + B(551) = RCT(288)*V(281) +! B(552) = dA(288)/dV(281) + B(552) = RCT(288)*V(143) +! B(553) = dA(289)/dV(227) + B(553) = RCT(289)*V(291) +! B(554) = dA(289)/dV(291) + B(554) = RCT(289)*V(227) +! B(555) = dA(290)/dV(270) + B(555) = RCT(290) +! B(556) = dA(291)/dV(269) + B(556) = RCT(291)*V(270) +! B(557) = dA(291)/dV(270) + B(557) = RCT(291)*V(269) +! B(558) = dA(292)/dV(269) + B(558) = RCT(292)*V(274) +! B(559) = dA(292)/dV(274) + B(559) = RCT(292)*V(269) +! B(560) = dA(293)/dV(227) + B(560) = RCT(293)*V(274) +! B(561) = dA(293)/dV(274) + B(561) = RCT(293)*V(227) +! B(562) = dA(294)/dV(92) + B(562) = RCT(294)*V(227) +! B(563) = dA(294)/dV(227) + B(563) = RCT(294)*V(92) +! B(564) = dA(295)/dV(92) + B(564) = RCT(295)*2*V(92) +! B(565) = dA(296)/dV(42) + B(565) = RCT(296) +! B(566) = dA(297)/dV(92) + B(566) = RCT(297)*V(279) +! B(567) = dA(297)/dV(279) + B(567) = RCT(297)*V(92) +! B(568) = dA(298)/dV(227) + B(568) = RCT(298)*V(285) +! B(569) = dA(298)/dV(285) + B(569) = RCT(298)*V(227) +! B(570) = dA(299)/dV(269) + B(570) = RCT(299)*V(282) +! B(571) = dA(299)/dV(282) + B(571) = RCT(299)*V(269) +! B(572) = dA(300)/dV(269) + B(572) = RCT(300)*V(284) +! B(573) = dA(300)/dV(284) + B(573) = RCT(300)*V(269) +! B(574) = dA(301)/dV(143) + B(574) = RCT(301)*V(286) +! B(575) = dA(301)/dV(286) + B(575) = RCT(301)*V(143) +! B(576) = dA(302)/dV(69) + B(576) = RCT(302)*V(286) +! B(577) = dA(302)/dV(286) + B(577) = RCT(302)*V(69) +! B(578) = dA(303)/dV(268) + B(578) = RCT(303)*V(286) +! B(579) = dA(303)/dV(286) + B(579) = RCT(303)*V(268) +! B(580) = dA(304)/dV(227) + B(580) = RCT(304)*V(284) +! B(581) = dA(304)/dV(284) + B(581) = RCT(304)*V(227) +! B(582) = dA(305)/dV(227) + B(582) = RCT(305)*V(279) +! B(583) = dA(305)/dV(279) + B(583) = RCT(305)*V(227) +! B(584) = dA(306)/dV(227) + B(584) = RCT(306)*2*V(227) +! B(585) = dA(307)/dV(44) + B(585) = RCT(307) +! B(586) = dA(308)/dV(46) + B(586) = RCT(308)*V(286) +! B(587) = dA(308)/dV(286) + B(587) = RCT(308)*V(46) +! B(588) = dA(309)/dV(208) + B(588) = RCT(309)*V(286) +! B(589) = dA(309)/dV(286) + B(589) = RCT(309)*V(208) +! B(590) = dA(310)/dV(198) + B(590) = RCT(310)*V(286) +! B(591) = dA(310)/dV(286) + B(591) = RCT(310)*V(198) +! B(592) = dA(311)/dV(234) + B(592) = RCT(311)*V(267) +! B(593) = dA(311)/dV(267) + B(593) = RCT(311)*V(234) +! B(594) = dA(312)/dV(234) + B(594) = RCT(312)*V(279) +! B(595) = dA(312)/dV(279) + B(595) = RCT(312)*V(234) +! B(596) = dA(313)/dV(234) + B(596) = RCT(313)*V(291) +! B(597) = dA(313)/dV(291) + B(597) = RCT(313)*V(234) +! B(598) = dA(314)/dV(234) + B(598) = RCT(314)*V(278) +! B(599) = dA(314)/dV(278) + B(599) = RCT(314)*V(234) +! B(600) = dA(315)/dV(234) + B(600) = RCT(315)*V(278)*V(278) +! B(601) = dA(315)/dV(278) + B(601) = RCT(315)*2*V(234)*V(278) +! B(602) = dA(316)/dV(234) + B(602) = RCT(316)*V(282) +! B(603) = dA(316)/dV(282) + B(603) = RCT(316)*V(234) +! B(604) = dA(317)/dV(234) + B(604) = RCT(317)*V(276) +! B(605) = dA(317)/dV(276) + B(605) = RCT(317)*V(234) +! B(606) = dA(318)/dV(195) + B(606) = RCT(318)*V(267) +! B(607) = dA(318)/dV(267) + B(607) = RCT(318)*V(195) +! B(608) = dA(319)/dV(195) + B(608) = RCT(319)*V(279) +! B(609) = dA(319)/dV(279) + B(609) = RCT(319)*V(195) +! B(610) = dA(320)/dV(195) + B(610) = RCT(320)*V(291) +! B(611) = dA(320)/dV(291) + B(611) = RCT(320)*V(195) +! B(612) = dA(321)/dV(195) + B(612) = RCT(321)*V(276) +! B(613) = dA(321)/dV(276) + B(613) = RCT(321)*V(195) +! B(614) = dA(322)/dV(195) + B(614) = RCT(322)*V(278) +! B(615) = dA(322)/dV(278) + B(615) = RCT(322)*V(195) +! B(616) = dA(323)/dV(195) + B(616) = RCT(323)*V(278) +! B(617) = dA(323)/dV(278) + B(617) = RCT(323)*V(195) +! B(618) = dA(324)/dV(154) + B(618) = RCT(324)*V(286) +! B(619) = dA(324)/dV(286) + B(619) = RCT(324)*V(154) +! B(620) = dA(325)/dV(155) + B(620) = RCT(325)*V(286) +! B(621) = dA(325)/dV(286) + B(621) = RCT(325)*V(155) +! B(622) = dA(326)/dV(238) + B(622) = RCT(326)*V(279) +! B(623) = dA(326)/dV(279) + B(623) = RCT(326)*V(238) +! B(624) = dA(327)/dV(238) + B(624) = RCT(327)*V(284) +! B(625) = dA(327)/dV(284) + B(625) = RCT(327)*V(238) +! B(626) = dA(328)/dV(238) + B(626) = RCT(328)*V(266) +! B(627) = dA(328)/dV(266) + B(627) = RCT(328)*V(238) +! B(628) = dA(329)/dV(238) + B(628) = RCT(329)*V(261) +! B(629) = dA(329)/dV(261) + B(629) = RCT(329)*V(238) +! B(630) = dA(330)/dV(238) + B(630) = RCT(330)*V(281) +! B(631) = dA(330)/dV(281) + B(631) = RCT(330)*V(238) +! B(632) = dA(331)/dV(154) + B(632) = RCT(331)*V(282) +! B(633) = dA(331)/dV(282) + B(633) = RCT(331)*V(154) +! B(634) = dA(332)/dV(155) + B(634) = RCT(332)*V(282) +! B(635) = dA(332)/dV(282) + B(635) = RCT(332)*V(155) +! B(636) = dA(333)/dV(154) + B(636) = RCT(333)*V(281) +! B(637) = dA(333)/dV(281) + B(637) = RCT(333)*V(154) +! B(638) = dA(334)/dV(155) + B(638) = RCT(334)*V(281) +! B(639) = dA(334)/dV(281) + B(639) = RCT(334)*V(155) +! B(640) = dA(335)/dV(170) + B(640) = RCT(335)*V(286) +! B(641) = dA(335)/dV(286) + B(641) = RCT(335)*V(170) +! B(642) = dA(336)/dV(170) + B(642) = RCT(336)*V(282) +! B(643) = dA(336)/dV(282) + B(643) = RCT(336)*V(170) +! B(644) = dA(337)/dV(170) + B(644) = RCT(337)*V(281) +! B(645) = dA(337)/dV(281) + B(645) = RCT(337)*V(170) +! B(646) = dA(338)/dV(225) + B(646) = RCT(338)*V(279) +! B(647) = dA(338)/dV(279) + B(647) = RCT(338)*V(225) +! B(648) = dA(339)/dV(225) + B(648) = RCT(339)*V(284) +! B(649) = dA(339)/dV(284) + B(649) = RCT(339)*V(225) +! B(650) = dA(340)/dV(225) + B(650) = RCT(340)*V(266) +! B(651) = dA(340)/dV(266) + B(651) = RCT(340)*V(225) +! B(652) = dA(341)/dV(225) + B(652) = RCT(341)*V(261) +! B(653) = dA(341)/dV(261) + B(653) = RCT(341)*V(225) +! B(654) = dA(342)/dV(225) + B(654) = RCT(342)*V(281) +! B(655) = dA(342)/dV(281) + B(655) = RCT(342)*V(225) +! B(656) = dA(343)/dV(119) + B(656) = RCT(343)*V(286) +! B(657) = dA(343)/dV(286) + B(657) = RCT(343)*V(119) +! B(658) = dA(344)/dV(215) + B(658) = RCT(344)*V(279) +! B(659) = dA(344)/dV(279) + B(659) = RCT(344)*V(215) +! B(660) = dA(345)/dV(216) + B(660) = RCT(345)*V(279) +! B(661) = dA(345)/dV(279) + B(661) = RCT(345)*V(216) +! B(662) = dA(346)/dV(215) + B(662) = RCT(346)*V(284) +! B(663) = dA(346)/dV(284) + B(663) = RCT(346)*V(215) +! B(664) = dA(347)/dV(216) + B(664) = RCT(347)*V(284) +! B(665) = dA(347)/dV(284) + B(665) = RCT(347)*V(216) +! B(666) = dA(348)/dV(215) + B(666) = RCT(348)*V(266) +! B(667) = dA(348)/dV(266) + B(667) = RCT(348)*V(215) +! B(668) = dA(349)/dV(216) + B(668) = RCT(349)*V(266) +! B(669) = dA(349)/dV(266) + B(669) = RCT(349)*V(216) +! B(670) = dA(350)/dV(215) + B(670) = RCT(350)*V(261) +! B(671) = dA(350)/dV(261) + B(671) = RCT(350)*V(215) +! B(672) = dA(351)/dV(216) + B(672) = RCT(351)*V(261) +! B(673) = dA(351)/dV(261) + B(673) = RCT(351)*V(216) +! B(674) = dA(352)/dV(215) + B(674) = RCT(352)*V(281) +! B(675) = dA(352)/dV(281) + B(675) = RCT(352)*V(215) +! B(676) = dA(353)/dV(216) + B(676) = RCT(353)*V(281) +! B(677) = dA(353)/dV(281) + B(677) = RCT(353)*V(216) +! B(678) = dA(354)/dV(215) + B(678) = RCT(354)*2*V(215) +! B(679) = dA(355)/dV(215) + B(679) = RCT(355)*V(216) +! B(680) = dA(355)/dV(216) + B(680) = RCT(355)*V(215) +! B(681) = dA(356)/dV(216) + B(681) = RCT(356)*2*V(216) +! B(682) = dA(357)/dV(178) + B(682) = RCT(357)*V(286) +! B(683) = dA(357)/dV(286) + B(683) = RCT(357)*V(178) +! B(684) = dA(358)/dV(199) + B(684) = RCT(358)*V(286) +! B(685) = dA(358)/dV(286) + B(685) = RCT(358)*V(199) +! B(686) = dA(359)/dV(199) + B(686) = RCT(359)*V(282) +! B(687) = dA(359)/dV(282) + B(687) = RCT(359)*V(199) +! B(688) = dA(360)/dV(199) + B(688) = RCT(360)*V(281) +! B(689) = dA(360)/dV(281) + B(689) = RCT(360)*V(199) +! B(690) = dA(361)/dV(178) + B(690) = RCT(361)*V(281) +! B(691) = dA(361)/dV(281) + B(691) = RCT(361)*V(178) +! B(692) = dA(362)/dV(98) + B(692) = RCT(362) +! B(693) = dA(363)/dV(45) + B(693) = RCT(363) +! B(694) = dA(364)/dV(134) + B(694) = RCT(364)*V(286) +! B(695) = dA(364)/dV(286) + B(695) = RCT(364)*V(134) +! B(696) = dA(365)/dV(89) + B(696) = RCT(365)*V(286) +! B(697) = dA(365)/dV(286) + B(697) = RCT(365)*V(89) +! B(698) = dA(366)/dV(96) + B(698) = RCT(366)*V(286) +! B(699) = dA(366)/dV(286) + B(699) = RCT(366)*V(96) +! B(700) = dA(367)/dV(87) + B(700) = RCT(367)*V(286) +! B(701) = dA(367)/dV(286) + B(701) = RCT(367)*V(87) +! B(702) = dA(368)/dV(91) + B(702) = RCT(368)*V(286) +! B(703) = dA(368)/dV(286) + B(703) = RCT(368)*V(91) +! B(704) = dA(369)/dV(224) + B(704) = RCT(369)*V(282) +! B(705) = dA(369)/dV(282) + B(705) = RCT(369)*V(224) +! B(706) = dA(370)/dV(224) + B(706) = RCT(370)*V(286) +! B(707) = dA(370)/dV(286) + B(707) = RCT(370)*V(224) +! B(708) = dA(371)/dV(224) + B(708) = RCT(371)*V(286) +! B(709) = dA(371)/dV(286) + B(709) = RCT(371)*V(224) +! B(710) = dA(372)/dV(224) + B(710) = RCT(372)*V(286) +! B(711) = dA(372)/dV(286) + B(711) = RCT(372)*V(224) +! B(712) = dA(373)/dV(224) + B(712) = RCT(373)*V(286) +! B(713) = dA(373)/dV(286) + B(713) = RCT(373)*V(224) +! B(714) = dA(374)/dV(245) + B(714) = RCT(374)*V(284) +! B(715) = dA(374)/dV(284) + B(715) = RCT(374)*V(245) +! B(716) = dA(375)/dV(245) + B(716) = RCT(375)*V(284) +! B(717) = dA(375)/dV(284) + B(717) = RCT(375)*V(245) +! B(718) = dA(376)/dV(244) + B(718) = RCT(376)*V(284) +! B(719) = dA(376)/dV(284) + B(719) = RCT(376)*V(244) +! B(720) = dA(377)/dV(244) + B(720) = RCT(377)*V(284) +! B(721) = dA(377)/dV(284) + B(721) = RCT(377)*V(244) +! B(722) = dA(378)/dV(245) + B(722) = RCT(378) +! B(723) = dA(379)/dV(245) + B(723) = RCT(379) +! B(724) = dA(380)/dV(244) + B(724) = RCT(380) +! B(725) = dA(381)/dV(244) + B(725) = RCT(381) +! B(726) = dA(382)/dV(245) + B(726) = RCT(382)*2*V(245) +! B(727) = dA(383)/dV(244) + B(727) = RCT(383)*2*V(244) +! B(728) = dA(384)/dV(244) + B(728) = RCT(384)*V(245) +! B(729) = dA(384)/dV(245) + B(729) = RCT(384)*V(244) +! B(730) = dA(385)/dV(245) + B(730) = RCT(385)*2*V(245) +! B(731) = dA(386)/dV(244) + B(731) = RCT(386)*2*V(244) +! B(732) = dA(387)/dV(244) + B(732) = RCT(387)*V(245) +! B(733) = dA(387)/dV(245) + B(733) = RCT(387)*V(244) +! B(734) = dA(388)/dV(245) + B(734) = RCT(388)*V(266) +! B(735) = dA(388)/dV(266) + B(735) = RCT(388)*V(245) +! B(736) = dA(389)/dV(245) + B(736) = RCT(389)*V(266) +! B(737) = dA(389)/dV(266) + B(737) = RCT(389)*V(245) +! B(738) = dA(390)/dV(244) + B(738) = RCT(390)*V(266) +! B(739) = dA(390)/dV(266) + B(739) = RCT(390)*V(244) +! B(740) = dA(391)/dV(244) + B(740) = RCT(391)*V(266) +! B(741) = dA(391)/dV(266) + B(741) = RCT(391)*V(244) +! B(742) = dA(392)/dV(245) + B(742) = RCT(392)*V(279) +! B(743) = dA(392)/dV(279) + B(743) = RCT(392)*V(245) +! B(744) = dA(393)/dV(245) + B(744) = RCT(393)*V(279) +! B(745) = dA(393)/dV(279) + B(745) = RCT(393)*V(245) +! B(746) = dA(394)/dV(245) + B(746) = RCT(394)*V(279) +! B(747) = dA(394)/dV(279) + B(747) = RCT(394)*V(245) +! B(748) = dA(395)/dV(245) + B(748) = RCT(395)*V(279) +! B(749) = dA(395)/dV(279) + B(749) = RCT(395)*V(245) +! B(750) = dA(396)/dV(244) + B(750) = RCT(396)*V(279) +! B(751) = dA(396)/dV(279) + B(751) = RCT(396)*V(244) +! B(752) = dA(397)/dV(244) + B(752) = RCT(397)*V(279) +! B(753) = dA(397)/dV(279) + B(753) = RCT(397)*V(244) +! B(754) = dA(398)/dV(244) + B(754) = RCT(398)*V(279) +! B(755) = dA(398)/dV(279) + B(755) = RCT(398)*V(244) +! B(756) = dA(399)/dV(244) + B(756) = RCT(399)*V(279) +! B(757) = dA(399)/dV(279) + B(757) = RCT(399)*V(244) +! B(758) = dA(400)/dV(186) + B(758) = RCT(400)*V(286) +! B(759) = dA(400)/dV(286) + B(759) = RCT(400)*V(186) +! B(760) = dA(401)/dV(188) + B(760) = RCT(401)*V(286) +! B(761) = dA(401)/dV(286) + B(761) = RCT(401)*V(188) +! B(762) = dA(402)/dV(129) + B(762) = RCT(402)*V(286) +! B(763) = dA(402)/dV(286) + B(763) = RCT(402)*V(129) +! B(764) = dA(403)/dV(127) + B(764) = RCT(403)*V(286) +! B(765) = dA(403)/dV(286) + B(765) = RCT(403)*V(127) +! B(766) = dA(404)/dV(192) + B(766) = RCT(404)*V(286) +! B(767) = dA(404)/dV(286) + B(767) = RCT(404)*V(192) +! B(768) = dA(405)/dV(174) + B(768) = RCT(405)*V(286) +! B(769) = dA(405)/dV(286) + B(769) = RCT(405)*V(174) +! B(770) = dA(406)/dV(109) + B(770) = RCT(406)*V(286) +! B(771) = dA(406)/dV(286) + B(771) = RCT(406)*V(109) +! B(772) = dA(407)/dV(157) + B(772) = RCT(407)*V(286) +! B(773) = dA(407)/dV(286) + B(773) = RCT(407)*V(157) +! B(774) = dA(408)/dV(157) + B(774) = RCT(408)*V(286) +! B(775) = dA(408)/dV(286) + B(775) = RCT(408)*V(157) +! B(776) = dA(409)/dV(162) + B(776) = RCT(409)*V(286) +! B(777) = dA(409)/dV(286) + B(777) = RCT(409)*V(162) +! B(778) = dA(410)/dV(162) + B(778) = RCT(410)*V(286) +! B(779) = dA(410)/dV(286) + B(779) = RCT(410)*V(162) +! B(780) = dA(411)/dV(157) + B(780) = RCT(411)*V(286) +! B(781) = dA(411)/dV(286) + B(781) = RCT(411)*V(157) +! B(782) = dA(412)/dV(162) + B(782) = RCT(412)*V(286) +! B(783) = dA(412)/dV(286) + B(783) = RCT(412)*V(162) +! B(784) = dA(413)/dV(171) + B(784) = RCT(413)*V(286) +! B(785) = dA(413)/dV(286) + B(785) = RCT(413)*V(171) +! B(786) = dA(414)/dV(165) + B(786) = RCT(414)*V(286) +! B(787) = dA(414)/dV(286) + B(787) = RCT(414)*V(165) +! B(788) = dA(415)/dV(182) + B(788) = RCT(415) +! B(789) = dA(416)/dV(182) + B(789) = RCT(416)*V(279) +! B(790) = dA(416)/dV(279) + B(790) = RCT(416)*V(182) +! B(791) = dA(417)/dV(182) + B(791) = RCT(417)*V(279) +! B(792) = dA(417)/dV(279) + B(792) = RCT(417)*V(182) +! B(793) = dA(418)/dV(182) + B(793) = RCT(418)*V(284) +! B(794) = dA(418)/dV(284) + B(794) = RCT(418)*V(182) +! B(795) = dA(419)/dV(183) + B(795) = RCT(419) +! B(796) = dA(420)/dV(183) + B(796) = RCT(420)*V(279) +! B(797) = dA(420)/dV(279) + B(797) = RCT(420)*V(183) +! B(798) = dA(421)/dV(183) + B(798) = RCT(421)*V(279) +! B(799) = dA(421)/dV(279) + B(799) = RCT(421)*V(183) +! B(800) = dA(422)/dV(183) + B(800) = RCT(422)*V(284) +! B(801) = dA(422)/dV(284) + B(801) = RCT(422)*V(183) +! B(802) = dA(423)/dV(187) + B(802) = RCT(423) +! B(803) = dA(424)/dV(187) + B(803) = RCT(424)*V(279) +! B(804) = dA(424)/dV(279) + B(804) = RCT(424)*V(187) +! B(805) = dA(425)/dV(187) + B(805) = RCT(425)*V(279) +! B(806) = dA(425)/dV(279) + B(806) = RCT(425)*V(187) +! B(807) = dA(426)/dV(187) + B(807) = RCT(426)*V(284) +! B(808) = dA(426)/dV(284) + B(808) = RCT(426)*V(187) +! B(809) = dA(427)/dV(116) + B(809) = RCT(427)*V(286) +! B(810) = dA(427)/dV(286) + B(810) = RCT(427)*V(116) +! B(811) = dA(428)/dV(130) + B(811) = RCT(428)*V(286) +! B(812) = dA(428)/dV(286) + B(812) = RCT(428)*V(130) +! B(813) = dA(429)/dV(130) + B(813) = RCT(429)*V(286) +! B(814) = dA(429)/dV(286) + B(814) = RCT(429)*V(130) +! B(815) = dA(430)/dV(131) + B(815) = RCT(430)*V(286) +! B(816) = dA(430)/dV(286) + B(816) = RCT(430)*V(131) +! B(817) = dA(431)/dV(131) + B(817) = RCT(431)*V(286) +! B(818) = dA(431)/dV(286) + B(818) = RCT(431)*V(131) +! B(819) = dA(432)/dV(228) + B(819) = RCT(432) +! B(820) = dA(433)/dV(228) + B(820) = RCT(433) +! B(821) = dA(434)/dV(228) + B(821) = RCT(434)*V(284) +! B(822) = dA(434)/dV(284) + B(822) = RCT(434)*V(228) +! B(823) = dA(435)/dV(228) + B(823) = RCT(435)*V(279) +! B(824) = dA(435)/dV(279) + B(824) = RCT(435)*V(228) +! B(825) = dA(436)/dV(228) + B(825) = RCT(436)*V(279) +! B(826) = dA(436)/dV(279) + B(826) = RCT(436)*V(228) +! B(827) = dA(437)/dV(229) + B(827) = RCT(437) +! B(828) = dA(438)/dV(229) + B(828) = RCT(438) +! B(829) = dA(439)/dV(229) + B(829) = RCT(439)*V(279) +! B(830) = dA(439)/dV(279) + B(830) = RCT(439)*V(229) +! B(831) = dA(440)/dV(229) + B(831) = RCT(440)*V(279) +! B(832) = dA(440)/dV(279) + B(832) = RCT(440)*V(229) +! B(833) = dA(441)/dV(229) + B(833) = RCT(441)*V(284) +! B(834) = dA(441)/dV(284) + B(834) = RCT(441)*V(229) +! B(835) = dA(442)/dV(194) + B(835) = RCT(442)*V(284) +! B(836) = dA(442)/dV(284) + B(836) = RCT(442)*V(194) +! B(837) = dA(443)/dV(194) + B(837) = RCT(443)*V(279) +! B(838) = dA(443)/dV(279) + B(838) = RCT(443)*V(194) +! B(839) = dA(444)/dV(194) + B(839) = RCT(444)*V(279) +! B(840) = dA(444)/dV(279) + B(840) = RCT(444)*V(194) +! B(841) = dA(445)/dV(194) + B(841) = RCT(445) +! B(842) = dA(446)/dV(121) + B(842) = RCT(446)*V(279) +! B(843) = dA(446)/dV(279) + B(843) = RCT(446)*V(121) +! B(844) = dA(447)/dV(121) + B(844) = RCT(447)*V(284) +! B(845) = dA(447)/dV(284) + B(845) = RCT(447)*V(121) +! B(846) = dA(448)/dV(123) + B(846) = RCT(448)*V(279) +! B(847) = dA(448)/dV(279) + B(847) = RCT(448)*V(123) +! B(848) = dA(449)/dV(123) + B(848) = RCT(449)*V(284) +! B(849) = dA(449)/dV(284) + B(849) = RCT(449)*V(123) +! B(850) = dA(450)/dV(139) + B(850) = RCT(450)*V(286) +! B(851) = dA(450)/dV(286) + B(851) = RCT(450)*V(139) +! B(852) = dA(451)/dV(139) + B(852) = RCT(451)*V(286) +! B(853) = dA(451)/dV(286) + B(853) = RCT(451)*V(139) +! B(854) = dA(452)/dV(140) + B(854) = RCT(452)*V(286) +! B(855) = dA(452)/dV(286) + B(855) = RCT(452)*V(140) +! B(856) = dA(453)/dV(140) + B(856) = RCT(453)*V(286) +! B(857) = dA(453)/dV(286) + B(857) = RCT(453)*V(140) +! B(858) = dA(454)/dV(220) + B(858) = RCT(454)*V(286) +! B(859) = dA(454)/dV(286) + B(859) = RCT(454)*V(220) +! B(860) = dA(455)/dV(220) + B(860) = RCT(455)*V(286) +! B(861) = dA(455)/dV(286) + B(861) = RCT(455)*V(220) +! B(862) = dA(456)/dV(214) + B(862) = RCT(456)*V(286) +! B(863) = dA(456)/dV(286) + B(863) = RCT(456)*V(214) +! B(864) = dA(457)/dV(214) + B(864) = RCT(457)*V(286) +! B(865) = dA(457)/dV(286) + B(865) = RCT(457)*V(214) +! B(866) = dA(458)/dV(220) + B(866) = RCT(458)*V(286) +! B(867) = dA(458)/dV(286) + B(867) = RCT(458)*V(220) +! B(868) = dA(459)/dV(214) + B(868) = RCT(459)*V(286) +! B(869) = dA(459)/dV(286) + B(869) = RCT(459)*V(214) +! B(870) = dA(460)/dV(167) + B(870) = RCT(460) +! B(871) = dA(461)/dV(167) + B(871) = RCT(461)*V(284) +! B(872) = dA(461)/dV(284) + B(872) = RCT(461)*V(167) +! B(873) = dA(462)/dV(167) + B(873) = RCT(462)*V(279) +! B(874) = dA(462)/dV(279) + B(874) = RCT(462)*V(167) +! B(875) = dA(463)/dV(167) + B(875) = RCT(463)*V(279) +! B(876) = dA(463)/dV(279) + B(876) = RCT(463)*V(167) +! B(877) = dA(464)/dV(152) + B(877) = RCT(464) +! B(878) = dA(465)/dV(152) + B(878) = RCT(465)*V(284) +! B(879) = dA(465)/dV(284) + B(879) = RCT(465)*V(152) +! B(880) = dA(466)/dV(152) + B(880) = RCT(466)*V(279) +! B(881) = dA(466)/dV(279) + B(881) = RCT(466)*V(152) +! B(882) = dA(467)/dV(152) + B(882) = RCT(467)*V(279) +! B(883) = dA(467)/dV(279) + B(883) = RCT(467)*V(152) +! B(884) = dA(468)/dV(166) + B(884) = RCT(468) +! B(885) = dA(469)/dV(168) + B(885) = RCT(469) +! B(886) = dA(470)/dV(166) + B(886) = RCT(470)*V(284) +! B(887) = dA(470)/dV(284) + B(887) = RCT(470)*V(166) +! B(888) = dA(471)/dV(166) + B(888) = RCT(471)*V(279) +! B(889) = dA(471)/dV(279) + B(889) = RCT(471)*V(166) +! B(890) = dA(472)/dV(166) + B(890) = RCT(472)*V(279) +! B(891) = dA(472)/dV(279) + B(891) = RCT(472)*V(166) +! B(892) = dA(473)/dV(168) + B(892) = RCT(473)*V(284) +! B(893) = dA(473)/dV(284) + B(893) = RCT(473)*V(168) +! B(894) = dA(474)/dV(168) + B(894) = RCT(474)*V(279) +! B(895) = dA(474)/dV(279) + B(895) = RCT(474)*V(168) +! B(896) = dA(475)/dV(168) + B(896) = RCT(475)*V(279) +! B(897) = dA(475)/dV(279) + B(897) = RCT(475)*V(168) +! B(898) = dA(476)/dV(232) + B(898) = RCT(476)*V(284) +! B(899) = dA(476)/dV(284) + B(899) = RCT(476)*V(232) +! B(900) = dA(477)/dV(232) + B(900) = RCT(477)*V(279) +! B(901) = dA(477)/dV(279) + B(901) = RCT(477)*V(232) +! B(902) = dA(478)/dV(232) + B(902) = RCT(478)*V(279) +! B(903) = dA(478)/dV(279) + B(903) = RCT(478)*V(232) +! B(904) = dA(479)/dV(224) + B(904) = RCT(479)*V(281) +! B(905) = dA(479)/dV(281) + B(905) = RCT(479)*V(224) +! B(906) = dA(480)/dV(247) + B(906) = RCT(480)*V(284) +! B(907) = dA(480)/dV(284) + B(907) = RCT(480)*V(247) +! B(908) = dA(481)/dV(246) + B(908) = RCT(481)*V(284) +! B(909) = dA(481)/dV(284) + B(909) = RCT(481)*V(246) +! B(910) = dA(482)/dV(247) + B(910) = RCT(482)*2*V(247) +! B(911) = dA(483)/dV(246) + B(911) = RCT(483)*V(247) +! B(912) = dA(483)/dV(247) + B(912) = RCT(483)*V(246) +! B(913) = dA(484)/dV(246) + B(913) = RCT(484)*2*V(246) +! B(914) = dA(485)/dV(246) + B(914) = RCT(485)*V(266) +! B(915) = dA(485)/dV(266) + B(915) = RCT(485)*V(246) +! B(916) = dA(486)/dV(247) + B(916) = RCT(486)*V(266) +! B(917) = dA(486)/dV(266) + B(917) = RCT(486)*V(247) +! B(918) = dA(487)/dV(247) + B(918) = RCT(487)*V(261) +! B(919) = dA(487)/dV(261) + B(919) = RCT(487)*V(247) +! B(920) = dA(488)/dV(246) + B(920) = RCT(488)*V(261) +! B(921) = dA(488)/dV(261) + B(921) = RCT(488)*V(246) +! B(922) = dA(489)/dV(247) + B(922) = RCT(489)*V(281) +! B(923) = dA(489)/dV(281) + B(923) = RCT(489)*V(247) +! B(924) = dA(490)/dV(246) + B(924) = RCT(490)*V(281) +! B(925) = dA(490)/dV(281) + B(925) = RCT(490)*V(246) +! B(926) = dA(491)/dV(247) + B(926) = RCT(491)*V(279) +! B(927) = dA(491)/dV(279) + B(927) = RCT(491)*V(247) +! B(928) = dA(492)/dV(247) + B(928) = RCT(492)*V(279) +! B(929) = dA(492)/dV(279) + B(929) = RCT(492)*V(247) +! B(930) = dA(493)/dV(246) + B(930) = RCT(493)*V(279) +! B(931) = dA(493)/dV(279) + B(931) = RCT(493)*V(246) +! B(932) = dA(494)/dV(246) + B(932) = RCT(494)*V(279) +! B(933) = dA(494)/dV(279) + B(933) = RCT(494)*V(246) +! B(934) = dA(495)/dV(126) + B(934) = RCT(495)*F(3) +! B(936) = dA(496)/dV(126) + B(936) = RCT(496) +! B(937) = dA(497)/dV(181) + B(937) = RCT(497)*V(286) +! B(938) = dA(497)/dV(286) + B(938) = RCT(497)*V(181) +! B(939) = dA(498)/dV(151) + B(939) = RCT(498)*V(286) +! B(940) = dA(498)/dV(286) + B(940) = RCT(498)*V(151) +! B(941) = dA(499)/dV(181) + B(941) = RCT(499)*V(286) +! B(942) = dA(499)/dV(286) + B(942) = RCT(499)*V(181) +! B(943) = dA(500)/dV(151) + B(943) = RCT(500)*V(286) +! B(944) = dA(500)/dV(286) + B(944) = RCT(500)*V(151) +! B(945) = dA(501)/dV(151) + B(945) = RCT(501)*V(286) +! B(946) = dA(501)/dV(286) + B(946) = RCT(501)*V(151) +! B(947) = dA(502)/dV(181) + B(947) = RCT(502)*V(286) +! B(948) = dA(502)/dV(286) + B(948) = RCT(502)*V(181) +! B(949) = dA(503)/dV(151) + B(949) = RCT(503)*V(286) +! B(950) = dA(503)/dV(286) + B(950) = RCT(503)*V(151) +! B(951) = dA(504)/dV(151) + B(951) = RCT(504)*V(286) +! B(952) = dA(504)/dV(286) + B(952) = RCT(504)*V(151) +! B(953) = dA(505)/dV(189) + B(953) = RCT(505) +! B(954) = dA(506)/dV(222) + B(954) = RCT(506) +! B(955) = dA(507)/dV(222) + B(955) = RCT(507)*V(284) +! B(956) = dA(507)/dV(284) + B(956) = RCT(507)*V(222) +! B(957) = dA(508)/dV(189) + B(957) = RCT(508)*V(284) +! B(958) = dA(508)/dV(284) + B(958) = RCT(508)*V(189) +! B(959) = dA(509)/dV(222) + B(959) = RCT(509)*V(279) +! B(960) = dA(509)/dV(279) + B(960) = RCT(509)*V(222) +! B(961) = dA(510)/dV(222) + B(961) = RCT(510)*V(279) +! B(962) = dA(510)/dV(279) + B(962) = RCT(510)*V(222) +! B(963) = dA(511)/dV(189) + B(963) = RCT(511)*V(279) +! B(964) = dA(511)/dV(279) + B(964) = RCT(511)*V(189) +! B(965) = dA(512)/dV(189) + B(965) = RCT(512)*V(279) +! B(966) = dA(512)/dV(279) + B(966) = RCT(512)*V(189) +! B(967) = dA(513)/dV(240) + B(967) = RCT(513)*V(286) +! B(968) = dA(513)/dV(286) + B(968) = RCT(513)*V(240) +! B(969) = dA(514)/dV(240) + B(969) = RCT(514)*V(286) +! B(970) = dA(514)/dV(286) + B(970) = RCT(514)*V(240) +! B(971) = dA(515)/dV(150) + B(971) = RCT(515)*V(279) +! B(972) = dA(515)/dV(279) + B(972) = RCT(515)*V(150) +! B(973) = dA(516)/dV(150) + B(973) = RCT(516)*V(284) +! B(974) = dA(516)/dV(284) + B(974) = RCT(516)*V(150) +! B(975) = dA(517)/dV(243) + B(975) = RCT(517)*V(286) +! B(976) = dA(517)/dV(286) + B(976) = RCT(517)*V(243) +! B(977) = dA(518)/dV(146) + B(977) = RCT(518)*V(279) +! B(978) = dA(518)/dV(279) + B(978) = RCT(518)*V(146) +! B(979) = dA(519)/dV(146) + B(979) = RCT(519)*V(284) +! B(980) = dA(519)/dV(284) + B(980) = RCT(519)*V(146) +! B(981) = dA(520)/dV(248) + B(981) = RCT(520)*V(286) +! B(982) = dA(520)/dV(286) + B(982) = RCT(520)*V(248) +! B(983) = dA(521)/dV(248) + B(983) = RCT(521)*V(282) +! B(984) = dA(521)/dV(282) + B(984) = RCT(521)*V(248) +! B(985) = dA(522)/dV(251) + B(985) = RCT(522)*V(286) +! B(986) = dA(522)/dV(286) + B(986) = RCT(522)*V(251) +! B(987) = dA(523)/dV(251) + B(987) = RCT(523)*V(286) +! B(988) = dA(523)/dV(286) + B(988) = RCT(523)*V(251) +! B(989) = dA(524)/dV(251) + B(989) = RCT(524)*V(282) +! B(990) = dA(524)/dV(282) + B(990) = RCT(524)*V(251) +! B(991) = dA(525)/dV(251) + B(991) = RCT(525)*V(281) +! B(992) = dA(525)/dV(281) + B(992) = RCT(525)*V(251) +! B(993) = dA(526)/dV(241) + B(993) = RCT(526)*V(286) +! B(994) = dA(526)/dV(286) + B(994) = RCT(526)*V(241) +! B(995) = dA(527)/dV(230) + B(995) = RCT(527)*V(286) +! B(996) = dA(527)/dV(286) + B(996) = RCT(527)*V(230) +! B(997) = dA(528)/dV(231) + B(997) = RCT(528)*V(286) +! B(998) = dA(528)/dV(286) + B(998) = RCT(528)*V(231) +! B(999) = dA(529)/dV(200) + B(999) = RCT(529)*V(286) +! B(1000) = dA(529)/dV(286) + B(1000) = RCT(529)*V(200) +! B(1001) = dA(530)/dV(175) + B(1001) = RCT(530)*V(286) +! B(1002) = dA(530)/dV(286) + B(1002) = RCT(530)*V(175) +! B(1003) = dA(531)/dV(144) + B(1003) = RCT(531)*V(279) +! B(1004) = dA(531)/dV(279) + B(1004) = RCT(531)*V(144) +! B(1005) = dA(532)/dV(144) + B(1005) = RCT(532)*V(284) +! B(1006) = dA(532)/dV(284) + B(1006) = RCT(532)*V(144) +! B(1007) = dA(533)/dV(144) + B(1007) = RCT(533)*V(291) +! B(1008) = dA(533)/dV(291) + B(1008) = RCT(533)*V(144) +! B(1009) = dA(534)/dV(145) + B(1009) = RCT(534)*V(279) +! B(1010) = dA(534)/dV(279) + B(1010) = RCT(534)*V(145) +! B(1011) = dA(535)/dV(145) + B(1011) = RCT(535)*V(284) +! B(1012) = dA(535)/dV(284) + B(1012) = RCT(535)*V(145) +! B(1013) = dA(536)/dV(145) + B(1013) = RCT(536)*V(291) +! B(1014) = dA(536)/dV(291) + B(1014) = RCT(536)*V(145) +! B(1015) = dA(537)/dV(163) + B(1015) = RCT(537)*V(286) +! B(1016) = dA(537)/dV(286) + B(1016) = RCT(537)*V(163) +! B(1017) = dA(538)/dV(156) + B(1017) = RCT(538)*V(286) +! B(1018) = dA(538)/dV(286) + B(1018) = RCT(538)*V(156) +! B(1019) = dA(539)/dV(117) + B(1019) = RCT(539)*V(286) +! B(1020) = dA(539)/dV(286) + B(1020) = RCT(539)*V(117) +! B(1021) = dA(540)/dV(185) + B(1021) = RCT(540)*V(286) +! B(1022) = dA(540)/dV(286) + B(1022) = RCT(540)*V(185) +! B(1023) = dA(541)/dV(169) + B(1023) = RCT(541)*V(286) +! B(1024) = dA(541)/dV(286) + B(1024) = RCT(541)*V(169) +! B(1025) = dA(542)/dV(132) + B(1025) = RCT(542)*V(286) +! B(1026) = dA(542)/dV(286) + B(1026) = RCT(542)*V(132) +! B(1027) = dA(543)/dV(204) + B(1027) = RCT(543)*V(284) +! B(1028) = dA(543)/dV(284) + B(1028) = RCT(543)*V(204) +! B(1029) = dA(544)/dV(204) + B(1029) = RCT(544)*V(279) +! B(1030) = dA(544)/dV(279) + B(1030) = RCT(544)*V(204) +! B(1031) = dA(545)/dV(204) + B(1031) = RCT(545)*V(279) +! B(1032) = dA(545)/dV(279) + B(1032) = RCT(545)*V(204) +! B(1033) = dA(546)/dV(205) + B(1033) = RCT(546)*V(284) +! B(1034) = dA(546)/dV(284) + B(1034) = RCT(546)*V(205) +! B(1035) = dA(547)/dV(207) + B(1035) = RCT(547)*V(284) +! B(1036) = dA(547)/dV(284) + B(1036) = RCT(547)*V(207) +! B(1037) = dA(548)/dV(136) + B(1037) = RCT(548)*V(286) +! B(1038) = dA(548)/dV(286) + B(1038) = RCT(548)*V(136) +! B(1039) = dA(549)/dV(205) + B(1039) = RCT(549) +! B(1040) = dA(550)/dV(205) + B(1040) = RCT(550)*V(279) +! B(1041) = dA(550)/dV(279) + B(1041) = RCT(550)*V(205) +! B(1042) = dA(551)/dV(205) + B(1042) = RCT(551)*V(279) +! B(1043) = dA(551)/dV(279) + B(1043) = RCT(551)*V(205) +! B(1044) = dA(552)/dV(207) + B(1044) = RCT(552)*V(279) +! B(1045) = dA(552)/dV(279) + B(1045) = RCT(552)*V(207) +! B(1046) = dA(553)/dV(207) + B(1046) = RCT(553)*V(291) +! B(1047) = dA(553)/dV(291) + B(1047) = RCT(553)*V(207) +! B(1048) = dA(554)/dV(249) + B(1048) = RCT(554)*V(284) +! B(1049) = dA(554)/dV(284) + B(1049) = RCT(554)*V(249) +! B(1050) = dA(555)/dV(249) + B(1050) = RCT(555)*V(279) +! B(1051) = dA(555)/dV(279) + B(1051) = RCT(555)*V(249) +! B(1052) = dA(556)/dV(249) + B(1052) = RCT(556)*V(291) +! B(1053) = dA(556)/dV(291) + B(1053) = RCT(556)*V(249) +! B(1054) = dA(557)/dV(249) + B(1054) = RCT(557)*V(281) +! B(1055) = dA(557)/dV(281) + B(1055) = RCT(557)*V(249) +! B(1056) = dA(558)/dV(249) + B(1056) = RCT(558)*V(266) +! B(1057) = dA(558)/dV(266) + B(1057) = RCT(558)*V(249) +! B(1058) = dA(559)/dV(153) + B(1058) = RCT(559) +! B(1059) = dA(560)/dV(153) + B(1059) = RCT(560)*V(286) +! B(1060) = dA(560)/dV(286) + B(1060) = RCT(560)*V(153) +! B(1061) = dA(561)/dV(105) + B(1061) = RCT(561)*V(286) +! B(1062) = dA(561)/dV(286) + B(1062) = RCT(561)*V(105) +! B(1063) = dA(562)/dV(206) + B(1063) = RCT(562)*V(286) +! B(1064) = dA(562)/dV(286) + B(1064) = RCT(562)*V(206) +! B(1065) = dA(563)/dV(125) + B(1065) = RCT(563)*V(286) +! B(1066) = dA(563)/dV(286) + B(1066) = RCT(563)*V(125) +! B(1067) = dA(564)/dV(141) + B(1067) = RCT(564)*V(286) +! B(1068) = dA(564)/dV(286) + B(1068) = RCT(564)*V(141) +! B(1069) = dA(565)/dV(164) + B(1069) = RCT(565)*V(286) +! B(1070) = dA(565)/dV(286) + B(1070) = RCT(565)*V(164) +! B(1071) = dA(566)/dV(213) + B(1071) = RCT(566)*V(286) +! B(1072) = dA(566)/dV(286) + B(1072) = RCT(566)*V(213) +! B(1073) = dA(567)/dV(242) + B(1073) = RCT(567)*V(286) +! B(1074) = dA(567)/dV(286) + B(1074) = RCT(567)*V(242) +! B(1075) = dA(568)/dV(208) + B(1075) = RCT(568)*V(281) +! B(1076) = dA(568)/dV(281) + B(1076) = RCT(568)*V(208) +! B(1077) = dA(569)/dV(104) + B(1077) = RCT(569)*V(286) +! B(1078) = dA(569)/dV(286) + B(1078) = RCT(569)*V(104) +! B(1079) = dA(570)/dV(85) + B(1079) = RCT(570)*V(286) +! B(1080) = dA(570)/dV(286) + B(1080) = RCT(570)*V(85) +! B(1081) = dA(571)/dV(261) + B(1081) = RCT(571)*V(284) +! B(1082) = dA(571)/dV(284) + B(1082) = RCT(571)*V(261) +! B(1083) = dA(572)/dV(172) + B(1083) = RCT(572)*V(286) +! B(1084) = dA(572)/dV(286) + B(1084) = RCT(572)*V(172) +! B(1085) = dA(573)/dV(172) + B(1085) = RCT(573)*V(286) +! B(1086) = dA(573)/dV(286) + B(1086) = RCT(573)*V(172) +! B(1087) = dA(574)/dV(19) + B(1087) = RCT(574)*V(286) +! B(1088) = dA(574)/dV(286) + B(1088) = RCT(574)*V(19) +! B(1089) = dA(575)/dV(18) + B(1089) = RCT(575)*V(284) +! B(1090) = dA(575)/dV(284) + B(1090) = RCT(575)*V(18) +! B(1091) = dA(576)/dV(18) + B(1091) = RCT(576)*V(279) +! B(1092) = dA(576)/dV(279) + B(1092) = RCT(576)*V(18) +! B(1093) = dA(577)/dV(76) + B(1093) = RCT(577)*V(282) +! B(1094) = dA(577)/dV(282) + B(1094) = RCT(577)*V(76) +! B(1095) = dA(578)/dV(76) + B(1095) = RCT(578)*V(286) +! B(1096) = dA(578)/dV(286) + B(1096) = RCT(578)*V(76) +! B(1097) = dA(579)/dV(58) + B(1097) = RCT(579)*V(286) +! B(1098) = dA(579)/dV(286) + B(1098) = RCT(579)*V(58) +! B(1099) = dA(580)/dV(179) + B(1099) = RCT(580)*V(284) +! B(1100) = dA(580)/dV(284) + B(1100) = RCT(580)*V(179) +! B(1101) = dA(581)/dV(179) + B(1101) = RCT(581)*V(279) +! B(1102) = dA(581)/dV(279) + B(1102) = RCT(581)*V(179) +! B(1103) = dA(582)/dV(179) + B(1103) = RCT(582)*V(281) +! B(1104) = dA(582)/dV(281) + B(1104) = RCT(582)*V(179) +! B(1105) = dA(583)/dV(179) + B(1105) = RCT(583)*V(266) +! B(1106) = dA(583)/dV(266) + B(1106) = RCT(583)*V(179) +! B(1107) = dA(584)/dV(108) + B(1107) = RCT(584) +! B(1108) = dA(585)/dV(108) + B(1108) = RCT(585)*F(3) +! B(1110) = dA(586)/dV(68) + B(1110) = RCT(586)*V(286) +! B(1111) = dA(586)/dV(286) + B(1111) = RCT(586)*V(68) +! B(1112) = dA(587)/dV(120) + B(1112) = RCT(587)*V(286) +! B(1113) = dA(587)/dV(286) + B(1113) = RCT(587)*V(120) +! B(1114) = dA(588)/dV(120) + B(1114) = RCT(588)*V(286) +! B(1115) = dA(588)/dV(286) + B(1115) = RCT(588)*V(120) +! B(1116) = dA(589)/dV(64) + B(1116) = RCT(589)*V(286) +! B(1117) = dA(589)/dV(286) + B(1117) = RCT(589)*V(64) +! B(1118) = dA(590)/dV(79) + B(1118) = RCT(590)*V(286) +! B(1119) = dA(590)/dV(286) + B(1119) = RCT(590)*V(79) +! B(1120) = dA(591)/dV(80) + B(1120) = RCT(591)*V(286) +! B(1121) = dA(591)/dV(286) + B(1121) = RCT(591)*V(80) +! B(1122) = dA(592)/dV(184) + B(1122) = RCT(592)*V(284) +! B(1123) = dA(592)/dV(284) + B(1123) = RCT(592)*V(184) +! B(1124) = dA(593)/dV(184) + B(1124) = RCT(593)*V(279) +! B(1125) = dA(593)/dV(279) + B(1125) = RCT(593)*V(184) +! B(1126) = dA(594)/dV(184) + B(1126) = RCT(594)*V(281) +! B(1127) = dA(594)/dV(281) + B(1127) = RCT(594)*V(184) +! B(1128) = dA(595)/dV(184) + B(1128) = RCT(595)*V(266) +! B(1129) = dA(595)/dV(266) + B(1129) = RCT(595)*V(184) +! B(1130) = dA(596)/dV(184) + B(1130) = RCT(596)*V(261) +! B(1131) = dA(596)/dV(261) + B(1131) = RCT(596)*V(184) +! B(1132) = dA(597)/dV(118) + B(1132) = RCT(597)*V(286) +! B(1133) = dA(597)/dV(286) + B(1133) = RCT(597)*V(118) +! B(1134) = dA(598)/dV(118) + B(1134) = RCT(598)*V(281) +! B(1135) = dA(598)/dV(281) + B(1135) = RCT(598)*V(118) +! B(1136) = dA(599)/dV(115) + B(1136) = RCT(599)*V(286) +! B(1137) = dA(599)/dV(286) + B(1137) = RCT(599)*V(115) +! B(1138) = dA(600)/dV(115) + B(1138) = RCT(600)*V(281) +! B(1139) = dA(600)/dV(281) + B(1139) = RCT(600)*V(115) +! B(1140) = dA(601)/dV(142) + B(1140) = RCT(601)*V(286) +! B(1141) = dA(601)/dV(286) + B(1141) = RCT(601)*V(142) +! B(1142) = dA(602)/dV(142) + B(1142) = RCT(602)*V(282) +! B(1143) = dA(602)/dV(282) + B(1143) = RCT(602)*V(142) +! B(1144) = dA(603)/dV(142) + B(1144) = RCT(603)*V(281) +! B(1145) = dA(603)/dV(281) + B(1145) = RCT(603)*V(142) +! B(1146) = dA(604)/dV(101) + B(1146) = RCT(604)*V(286) +! B(1147) = dA(604)/dV(286) + B(1147) = RCT(604)*V(101) +! B(1148) = dA(605)/dV(101) + B(1148) = RCT(605)*V(281) +! B(1149) = dA(605)/dV(281) + B(1149) = RCT(605)*V(101) +! B(1150) = dA(606)/dV(180) + B(1150) = RCT(606)*V(284) +! B(1151) = dA(606)/dV(284) + B(1151) = RCT(606)*V(180) +! B(1152) = dA(607)/dV(180) + B(1152) = RCT(607)*V(279) +! B(1153) = dA(607)/dV(279) + B(1153) = RCT(607)*V(180) +! B(1154) = dA(608)/dV(180) + B(1154) = RCT(608)*V(291) +! B(1155) = dA(608)/dV(291) + B(1155) = RCT(608)*V(180) +! B(1156) = dA(609)/dV(70) + B(1156) = RCT(609)*V(286) +! B(1157) = dA(609)/dV(286) + B(1157) = RCT(609)*V(70) +! B(1158) = dA(610)/dV(97) + B(1158) = RCT(610) +! B(1159) = dA(611)/dV(97) + B(1159) = RCT(611)*V(286) +! B(1160) = dA(611)/dV(286) + B(1160) = RCT(611)*V(97) +! B(1161) = dA(612)/dV(191) + B(1161) = RCT(612)*V(291) +! B(1162) = dA(612)/dV(291) + B(1162) = RCT(612)*V(191) +! B(1163) = dA(613)/dV(191) + B(1163) = RCT(613)*V(279) +! B(1164) = dA(613)/dV(279) + B(1164) = RCT(613)*V(191) +! B(1165) = dA(614)/dV(191) + B(1165) = RCT(614)*V(281) +! B(1166) = dA(614)/dV(281) + B(1166) = RCT(614)*V(191) +! B(1167) = dA(615)/dV(191) + B(1167) = RCT(615)*V(284) +! B(1168) = dA(615)/dV(284) + B(1168) = RCT(615)*V(191) +! B(1169) = dA(616)/dV(107) + B(1169) = RCT(616)*V(286) +! B(1170) = dA(616)/dV(286) + B(1170) = RCT(616)*V(107) +! B(1171) = dA(617)/dV(160) + B(1171) = RCT(617)*V(282) +! B(1172) = dA(617)/dV(282) + B(1172) = RCT(617)*V(160) +! B(1173) = dA(618)/dV(160) + B(1173) = RCT(618)*V(291) +! B(1174) = dA(618)/dV(291) + B(1174) = RCT(618)*V(160) +! B(1175) = dA(619)/dV(210) + B(1175) = RCT(619)*V(286) +! B(1176) = dA(619)/dV(286) + B(1176) = RCT(619)*V(210) +! B(1177) = dA(620)/dV(210) + B(1177) = RCT(620)*V(281) +! B(1178) = dA(620)/dV(281) + B(1178) = RCT(620)*V(210) +! B(1179) = dA(621)/dV(191) + B(1179) = RCT(621)*V(266) +! B(1180) = dA(621)/dV(266) + B(1180) = RCT(621)*V(191) +! B(1181) = dA(622)/dV(180) + B(1181) = RCT(622)*V(266) +! B(1182) = dA(622)/dV(266) + B(1182) = RCT(622)*V(180) +! B(1183) = dA(623)/dV(159) + B(1183) = RCT(623)*V(286) +! B(1184) = dA(623)/dV(286) + B(1184) = RCT(623)*V(159) +! B(1185) = dA(624)/dV(159) + B(1185) = RCT(624)*V(282) +! B(1186) = dA(624)/dV(282) + B(1186) = RCT(624)*V(159) +! B(1187) = dA(625)/dV(159) + B(1187) = RCT(625) +! B(1188) = dA(626)/dV(148) + B(1188) = RCT(626)*V(286) +! B(1189) = dA(626)/dV(286) + B(1189) = RCT(626)*V(148) +! B(1190) = dA(627)/dV(148) + B(1190) = RCT(627)*V(282) +! B(1191) = dA(627)/dV(282) + B(1191) = RCT(627)*V(148) +! B(1192) = dA(628)/dV(148) + B(1192) = RCT(628) +! B(1193) = dA(629)/dV(13) + B(1193) = RCT(629)*V(284) +! B(1194) = dA(629)/dV(284) + B(1194) = RCT(629)*V(13) +! B(1195) = dA(630)/dV(13) + B(1195) = RCT(630)*V(279) +! B(1196) = dA(630)/dV(279) + B(1196) = RCT(630)*V(13) +! B(1197) = dA(631)/dV(22) + B(1197) = RCT(631)*V(284) +! B(1198) = dA(631)/dV(284) + B(1198) = RCT(631)*V(22) +! B(1199) = dA(632)/dV(22) + B(1199) = RCT(632)*V(279) +! B(1200) = dA(632)/dV(279) + B(1200) = RCT(632)*V(22) +! B(1201) = dA(633)/dV(27) + B(1201) = RCT(633)*V(284) +! B(1202) = dA(633)/dV(284) + B(1202) = RCT(633)*V(27) +! B(1203) = dA(634)/dV(27) + B(1203) = RCT(634)*V(279) +! B(1204) = dA(634)/dV(279) + B(1204) = RCT(634)*V(27) +! B(1205) = dA(635)/dV(266) + B(1205) = RCT(635)*V(281) +! B(1206) = dA(635)/dV(281) + B(1206) = RCT(635)*V(266) +! B(1207) = dA(636)/dV(41) + B(1207) = RCT(636)*V(286) +! B(1208) = dA(636)/dV(286) + B(1208) = RCT(636)*V(41) +! B(1209) = dA(637)/dV(284) + B(1209) = RCT(637) +! B(1210) = dA(638)/dV(291) + B(1210) = RCT(638) +! B(1211) = dA(639)/dV(281) + B(1211) = RCT(639) +! B(1212) = dA(640)/dV(281) + B(1212) = RCT(640) +! B(1213) = dA(641)/dV(281) + B(1213) = RCT(641) +! B(1214) = dA(642)/dV(173) + B(1214) = RCT(642)*V(278) +! B(1215) = dA(642)/dV(278) + B(1215) = RCT(642)*V(173) +! B(1216) = dA(643)/dV(173) + B(1216) = RCT(643)*V(275) +! B(1217) = dA(643)/dV(275) + B(1217) = RCT(643)*V(173) +! B(1218) = dA(644)/dV(173) + B(1218) = RCT(644) +! B(1219) = dA(645)/dV(173) + B(1219) = RCT(645)*V(280) +! B(1220) = dA(645)/dV(280) + B(1220) = RCT(645)*V(173) +! B(1221) = dA(646)/dV(173) + B(1221) = RCT(646)*V(287) +! B(1222) = dA(646)/dV(287) + B(1222) = RCT(646)*V(173) +! B(1223) = dA(647)/dV(280) + B(1223) = RCT(647)*V(286) +! B(1224) = dA(647)/dV(286) + B(1224) = RCT(647)*V(280) +! B(1225) = dA(648)/dV(286) + B(1225) = RCT(648)*V(287) +! B(1226) = dA(648)/dV(287) + B(1226) = RCT(648)*V(286) +! B(1227) = dA(649)/dV(176) + B(1227) = RCT(649)*V(278) +! B(1228) = dA(649)/dV(278) + B(1228) = RCT(649)*V(176) +! B(1229) = dA(650)/dV(176) + B(1229) = RCT(650)*V(275) +! B(1230) = dA(650)/dV(275) + B(1230) = RCT(650)*V(176) +! B(1231) = dA(651)/dV(262) + B(1231) = RCT(651)*V(278) +! B(1232) = dA(651)/dV(278) + B(1232) = RCT(651)*V(262) +! B(1233) = dA(652)/dV(262) + B(1233) = RCT(652)*V(275) +! B(1234) = dA(652)/dV(275) + B(1234) = RCT(652)*V(262) +! B(1235) = dA(653)/dV(262) + B(1235) = RCT(653)*V(289) +! B(1236) = dA(653)/dV(289) + B(1236) = RCT(653)*V(262) +! B(1237) = dA(654)/dV(262) + B(1237) = RCT(654)*V(283) +! B(1238) = dA(654)/dV(283) + B(1238) = RCT(654)*V(262) +! B(1239) = dA(655)/dV(262) + B(1239) = RCT(655)*V(277) +! B(1240) = dA(655)/dV(277) + B(1240) = RCT(655)*V(262) +! B(1241) = dA(656)/dV(262) + B(1241) = RCT(656)*V(280) +! B(1242) = dA(656)/dV(280) + B(1242) = RCT(656)*V(262) +! B(1243) = dA(657)/dV(262) + B(1243) = RCT(657)*V(287) +! B(1244) = dA(657)/dV(287) + B(1244) = RCT(657)*V(262) +! B(1245) = dA(658)/dV(235) + B(1245) = RCT(658)*V(280) +! B(1246) = dA(658)/dV(280) + B(1246) = RCT(658)*V(235) +! B(1247) = dA(659)/dV(235) + B(1247) = RCT(659)*V(287) +! B(1248) = dA(659)/dV(287) + B(1248) = RCT(659)*V(235) +! B(1249) = dA(660)/dV(235) + B(1249) = RCT(660)*V(275) +! B(1250) = dA(660)/dV(275) + B(1250) = RCT(660)*V(235) +! B(1251) = dA(661)/dV(235) + B(1251) = RCT(661)*V(283) +! B(1252) = dA(661)/dV(283) + B(1252) = RCT(661)*V(235) +! B(1253) = dA(662)/dV(235) + B(1253) = RCT(662)*V(277) +! B(1254) = dA(662)/dV(277) + B(1254) = RCT(662)*V(235) +! B(1255) = dA(663)/dV(235) + B(1255) = RCT(663)*V(289) +! B(1256) = dA(663)/dV(289) + B(1256) = RCT(663)*V(235) +! B(1257) = dA(664)/dV(271) + B(1257) = RCT(664)*V(275) +! B(1258) = dA(664)/dV(275) + B(1258) = RCT(664)*V(271) +! B(1259) = dA(665)/dV(271) + B(1259) = RCT(665)*V(289) +! B(1260) = dA(665)/dV(289) + B(1260) = RCT(665)*V(271) +! B(1261) = dA(666)/dV(271) + B(1261) = RCT(666)*V(280) +! B(1262) = dA(666)/dV(280) + B(1262) = RCT(666)*V(271) +! B(1263) = dA(667)/dV(271) + B(1263) = RCT(667)*V(287) +! B(1264) = dA(667)/dV(287) + B(1264) = RCT(667)*V(271) +! B(1265) = dA(668)/dV(271) + B(1265) = RCT(668)*V(276) +! B(1266) = dA(668)/dV(276) + B(1266) = RCT(668)*V(271) +! B(1267) = dA(669)/dV(260) + B(1267) = RCT(669)*V(289) +! B(1268) = dA(669)/dV(289) + B(1268) = RCT(669)*V(260) +! B(1269) = dA(670)/dV(260) + B(1269) = RCT(670)*V(275) +! B(1270) = dA(670)/dV(275) + B(1270) = RCT(670)*V(260) +! B(1271) = dA(671)/dV(260) + B(1271) = RCT(671)*V(280) +! B(1272) = dA(671)/dV(280) + B(1272) = RCT(671)*V(260) +! B(1273) = dA(672)/dV(260) + B(1273) = RCT(672)*V(287) +! B(1274) = dA(672)/dV(287) + B(1274) = RCT(672)*V(260) +! B(1275) = dA(673)/dV(260) + B(1275) = RCT(673)*V(283) +! B(1276) = dA(673)/dV(283) + B(1276) = RCT(673)*V(260) +! B(1277) = dA(674)/dV(260) + B(1277) = RCT(674)*V(277) +! B(1278) = dA(674)/dV(277) + B(1278) = RCT(674)*V(260) +! B(1279) = dA(675)/dV(260) + B(1279) = RCT(675)*V(276) +! B(1280) = dA(675)/dV(276) + B(1280) = RCT(675)*V(260) +! B(1281) = dA(676)/dV(282) + B(1281) = RCT(676)*V(289) +! B(1282) = dA(676)/dV(289) + B(1282) = RCT(676)*V(282) +! B(1283) = dA(677)/dV(282) + B(1283) = RCT(677)*V(283) +! B(1284) = dA(677)/dV(283) + B(1284) = RCT(677)*V(282) +! B(1285) = dA(678)/dV(277) + B(1285) = RCT(678)*V(282) +! B(1286) = dA(678)/dV(282) + B(1286) = RCT(678)*V(277) +! B(1287) = dA(679)/dV(289) + B(1287) = RCT(679) +! B(1288) = dA(680)/dV(289) + B(1288) = RCT(680) +! B(1289) = dA(681)/dV(69) + B(1289) = RCT(681) +! B(1290) = dA(682)/dV(69) + B(1290) = RCT(682) +! B(1291) = dA(683)/dV(69) + B(1291) = RCT(683) +! B(1292) = dA(684)/dV(268) + B(1292) = RCT(684) +! B(1293) = dA(685)/dV(268) + B(1293) = RCT(685) +! B(1294) = dA(686)/dV(44) + B(1294) = RCT(686) +! B(1295) = dA(687)/dV(44) + B(1295) = RCT(687) +! B(1296) = dA(688)/dV(44) + B(1296) = RCT(688) +! B(1297) = dA(689)/dV(49) + B(1297) = RCT(689) +! B(1298) = dA(690)/dV(49) + B(1298) = RCT(690) +! B(1299) = dA(691)/dV(49) + B(1299) = RCT(691) +! B(1300) = dA(692)/dV(42) + B(1300) = RCT(692) +! B(1301) = dA(693)/dV(42) + B(1301) = RCT(693) +! B(1302) = dA(694)/dV(42) + B(1302) = RCT(694) +! B(1303) = dA(695)/dV(203) + B(1303) = RCT(695) +! B(1304) = dA(696)/dV(203) + B(1304) = RCT(696) +! B(1305) = dA(697)/dV(270) + B(1305) = RCT(697) +! B(1306) = dA(698)/dV(270) + B(1306) = RCT(698) +! B(1307) = dA(699)/dV(270) + B(1307) = RCT(699)*V(278) +! B(1308) = dA(699)/dV(278) + B(1308) = RCT(699)*V(270) +! B(1309) = dA(700)/dV(203) + B(1309) = RCT(700)*V(283) +! B(1310) = dA(700)/dV(283) + B(1310) = RCT(700)*V(203) +! B(1311) = dA(701)/dV(203) + B(1311) = RCT(701)*V(277) +! B(1312) = dA(701)/dV(277) + B(1312) = RCT(701)*V(203) +! B(1313) = dA(702)/dV(203) + B(1313) = RCT(702)*V(280) +! B(1314) = dA(702)/dV(280) + B(1314) = RCT(702)*V(203) +! B(1315) = dA(703)/dV(203) + B(1315) = RCT(703)*V(287) +! B(1316) = dA(703)/dV(287) + B(1316) = RCT(703)*V(203) +! B(1317) = dA(704)/dV(270) + B(1317) = RCT(704)*V(283) +! B(1318) = dA(704)/dV(283) + B(1318) = RCT(704)*V(270) +! B(1319) = dA(705)/dV(270) + B(1319) = RCT(705)*V(277) +! B(1320) = dA(705)/dV(277) + B(1320) = RCT(705)*V(270) +! B(1321) = dA(706)/dV(270) + B(1321) = RCT(706)*V(280) +! B(1322) = dA(706)/dV(280) + B(1322) = RCT(706)*V(270) +! B(1323) = dA(707)/dV(270) + B(1323) = RCT(707)*V(287) +! B(1324) = dA(707)/dV(287) + B(1324) = RCT(707)*V(270) +! B(1325) = dA(708)/dV(268) + B(1325) = RCT(708)*V(283) +! B(1326) = dA(708)/dV(283) + B(1326) = RCT(708)*V(268) +! B(1327) = dA(709)/dV(268) + B(1327) = RCT(709)*V(277) +! B(1328) = dA(709)/dV(277) + B(1328) = RCT(709)*V(268) +! B(1329) = dA(710)/dV(268) + B(1329) = RCT(710)*V(280) +! B(1330) = dA(710)/dV(280) + B(1330) = RCT(710)*V(268) +! B(1331) = dA(711)/dV(268) + B(1331) = RCT(711)*V(287) +! B(1332) = dA(711)/dV(287) + B(1332) = RCT(711)*V(268) +! B(1333) = dA(712)/dV(223) + B(1333) = RCT(712) +! B(1334) = dA(713)/dV(233) + B(1334) = RCT(713) +! B(1335) = dA(714)/dV(130) + B(1335) = RCT(714) +! B(1336) = dA(715)/dV(131) + B(1336) = RCT(715) +! B(1337) = dA(716)/dV(116) + B(1337) = RCT(716) +! B(1338) = dA(717)/dV(24) + B(1338) = RCT(717) +! B(1339) = dA(718)/dV(241) + B(1339) = RCT(718) +! B(1340) = dA(719)/dV(202) + B(1340) = RCT(719) +! B(1341) = dA(720)/dV(178) + B(1341) = RCT(720) +! B(1342) = dA(721)/dV(199) + B(1342) = RCT(721) +! B(1343) = dA(722)/dV(134) + B(1343) = RCT(722) +! B(1344) = dA(723)/dV(104) + B(1344) = RCT(723) +! B(1345) = dA(724)/dV(105) + B(1345) = RCT(724) +! B(1346) = dA(725)/dV(220) + B(1346) = RCT(725) +! B(1347) = dA(726)/dV(139) + B(1347) = RCT(726) +! B(1348) = dA(727)/dV(140) + B(1348) = RCT(727) +! B(1349) = dA(728)/dV(214) + B(1349) = RCT(728) +! B(1350) = dA(729)/dV(174) + B(1350) = RCT(729) +! B(1351) = dA(730)/dV(151) + B(1351) = RCT(730) +! B(1352) = dA(731)/dV(181) + B(1352) = RCT(731) +! B(1353) = dA(732)/dV(243) + B(1353) = RCT(732) +! B(1354) = dA(733)/dV(213) + B(1354) = RCT(733) +! B(1355) = dA(734)/dV(242) + B(1355) = RCT(734) +! B(1356) = dA(735)/dV(175) + B(1356) = RCT(735) +! B(1357) = dA(736)/dV(200) + B(1357) = RCT(736) +! B(1358) = dA(737)/dV(210) + B(1358) = RCT(737) +! B(1359) = dA(738)/dV(282) + B(1359) = RCT(738) +! B(1360) = dA(739)/dV(282) + B(1360) = RCT(739) +! B(1362) = dA(741)/dV(291) + B(1362) = RCT(741) +! B(1363) = dA(742)/dV(212) + B(1363) = RCT(742) +! B(1364) = dA(743)/dV(137) + B(1364) = RCT(743) +! B(1365) = dA(744)/dV(263) + B(1365) = RCT(744) +! B(1366) = dA(745)/dV(263) + B(1366) = RCT(745) +! B(1367) = dA(746)/dV(265) + B(1367) = RCT(746) +! B(1368) = dA(747)/dV(193) + B(1368) = RCT(747) +! B(1369) = dA(748)/dV(102) + B(1369) = RCT(748) +! B(1370) = dA(749)/dV(102) + B(1370) = RCT(749) +! B(1371) = dA(750)/dV(281) + B(1371) = RCT(750) +! B(1372) = dA(751)/dV(281) + B(1372) = RCT(751) +! B(1373) = dA(752)/dV(173) + B(1373) = RCT(752) +! B(1374) = dA(753)/dV(264) + B(1374) = RCT(753) +! B(1375) = dA(754)/dV(264) + B(1375) = RCT(754) +! B(1376) = dA(755)/dV(67) + B(1376) = RCT(755) +! B(1377) = dA(756)/dV(259) + B(1377) = RCT(756) +! B(1378) = dA(757)/dV(221) + B(1378) = RCT(757) +! B(1379) = dA(758)/dV(221) + B(1379) = RCT(758) +! B(1380) = dA(759)/dV(226) + B(1380) = RCT(759) +! B(1381) = dA(760)/dV(236) + B(1381) = RCT(760) +! B(1382) = dA(761)/dV(223) + B(1382) = RCT(761) +! B(1383) = dA(762)/dV(223) + B(1383) = RCT(762) +! B(1384) = dA(763)/dV(223) + B(1384) = RCT(763) +! B(1385) = dA(764)/dV(233) + B(1385) = RCT(764) +! B(1386) = dA(765)/dV(248) + B(1386) = RCT(765) +! B(1387) = dA(766)/dV(248) + B(1387) = RCT(766) +! B(1388) = dA(767)/dV(248) + B(1388) = RCT(767) +! B(1389) = dA(768)/dV(251) + B(1389) = RCT(768) +! B(1390) = dA(769)/dV(250) + B(1390) = RCT(769) +! B(1391) = dA(770)/dV(113) + B(1391) = RCT(770) +! B(1392) = dA(771)/dV(110) + B(1392) = RCT(771) +! B(1393) = dA(772)/dV(94) + B(1393) = RCT(772) +! B(1394) = dA(773)/dV(95) + B(1394) = RCT(773) +! B(1395) = dA(774)/dV(93) + B(1395) = RCT(774) +! B(1396) = dA(775)/dV(112) + B(1396) = RCT(775) +! B(1397) = dA(776)/dV(106) + B(1397) = RCT(776) +! B(1398) = dA(777)/dV(202) + B(1398) = RCT(777) +! B(1399) = dA(778)/dV(88) + B(1399) = RCT(778) +! B(1400) = dA(779)/dV(128) + B(1400) = RCT(779) +! B(1401) = dA(780)/dV(274) + B(1401) = RCT(780) +! B(1402) = dA(781)/dV(260) + B(1402) = RCT(781) +! B(1403) = dA(782)/dV(176) + B(1403) = RCT(782) +! B(1404) = dA(783)/dV(176) + B(1404) = RCT(783) +! B(1405) = dA(784)/dV(51) + B(1405) = RCT(784) +! B(1406) = dA(785)/dV(77) + B(1406) = RCT(785) +! B(1407) = dA(786)/dV(71) + B(1407) = RCT(786) +! B(1408) = dA(787)/dV(100) + B(1408) = RCT(787) +! B(1409) = dA(788)/dV(149) + B(1409) = RCT(788) +! B(1410) = dA(789)/dV(72) + B(1410) = RCT(789) +! B(1411) = dA(790)/dV(135) + B(1411) = RCT(790) +! B(1412) = dA(791)/dV(197) + B(1412) = RCT(791) +! B(1413) = dA(792)/dV(285) + B(1413) = RCT(792) +! B(1414) = dA(793)/dV(111) + B(1414) = RCT(793) +! B(1415) = dA(794)/dV(75) + B(1415) = RCT(794) +! B(1416) = dA(795)/dV(235) + B(1416) = RCT(795) +! B(1417) = dA(796)/dV(262) + B(1417) = RCT(796) +! B(1418) = dA(797)/dV(262) + B(1418) = RCT(797) +! B(1419) = dA(798)/dV(271) + B(1419) = RCT(798) +! B(1420) = dA(799)/dV(43) + B(1420) = RCT(799) +! B(1421) = dA(800)/dV(52) + B(1421) = RCT(800) +! B(1422) = dA(801)/dV(53) + B(1422) = RCT(801) +! B(1423) = dA(802)/dV(54) + B(1423) = RCT(802) +! B(1424) = dA(803)/dV(55) + B(1424) = RCT(803) +! B(1425) = dA(804)/dV(56) + B(1425) = RCT(804) +! B(1426) = dA(805)/dV(57) + B(1426) = RCT(805) +! B(1427) = dA(806)/dV(81) + B(1427) = RCT(806) +! B(1428) = dA(807)/dV(82) + B(1428) = RCT(807) +! B(1429) = dA(808)/dV(83) + B(1429) = RCT(808) +! B(1430) = dA(809)/dV(84) + B(1430) = RCT(809) +! B(1431) = dA(810)/dV(47) + B(1431) = RCT(810) +! B(1432) = dA(811)/dV(59) + B(1432) = RCT(811) +! B(1433) = dA(812)/dV(48) + B(1433) = RCT(812) +! B(1434) = dA(813)/dV(103) + B(1434) = RCT(813) +! B(1435) = dA(814)/dV(143) + B(1435) = RCT(814) +! B(1436) = dA(815)/dV(268) + B(1436) = RCT(815) +! B(1437) = dA(816)/dV(227) + B(1437) = RCT(816) +! B(1438) = dA(817)/dV(92) + B(1438) = RCT(817) +! B(1439) = dA(818)/dV(60) + B(1439) = RCT(818) +! B(1440) = dA(819)/dV(203) + B(1440) = RCT(819) +! B(1441) = dA(820)/dV(270) + B(1441) = RCT(820) +! B(1442) = dA(821)/dV(44) + B(1442) = RCT(821) +! B(1443) = dA(822)/dV(46) + B(1443) = RCT(822) +! B(1444) = dA(823)/dV(1) + B(1444) = RCT(823) +! B(1445) = dA(824)/dV(3) + B(1445) = RCT(824) +! B(1446) = dA(825)/dV(2) + B(1446) = RCT(825) +! B(1447) = dA(826)/dV(42) + B(1447) = RCT(826) +! B(1448) = dA(827)/dV(49) + B(1448) = RCT(827) +! B(1449) = dA(828)/dV(73) + B(1449) = RCT(828) +! B(1450) = dA(829)/dV(99) + B(1450) = RCT(829) +! B(1451) = dA(830)/dV(74) + B(1451) = RCT(830) +! B(1452) = dA(831)/dV(74) + B(1452) = RCT(831) +! B(1453) = dA(832)/dV(196) + B(1453) = RCT(832) +! B(1454) = dA(833)/dV(61) + B(1454) = RCT(833) +! B(1455) = dA(834)/dV(66) + B(1455) = RCT(834) +! B(1456) = dA(835)/dV(122) + B(1456) = RCT(835) +! B(1457) = dA(836)/dV(279) + B(1457) = RCT(836) +! B(1458) = dA(837)/dV(119) + B(1458) = RCT(837) +! B(1459) = dA(838)/dV(208) + B(1459) = RCT(838) +! B(1460) = dA(839)/dV(178) + B(1460) = RCT(839) +! B(1461) = dA(840)/dV(199) + B(1461) = RCT(840) +! B(1462) = dA(841)/dV(134) + B(1462) = RCT(841) +! B(1463) = dA(842)/dV(63) + B(1463) = RCT(842) +! B(1464) = dA(843)/dV(63) + B(1464) = RCT(843) +! B(1465) = dA(844)/dV(62) + B(1465) = RCT(844) +! B(1466) = dA(845)/dV(62) + B(1466) = RCT(845) +! B(1467) = dA(846)/dV(89) + B(1467) = RCT(846) +! B(1468) = dA(847)/dV(96) + B(1468) = RCT(847) +! B(1469) = dA(848)/dV(87) + B(1469) = RCT(848) +! B(1470) = dA(849)/dV(91) + B(1470) = RCT(849) +! B(1471) = dA(850)/dV(85) + B(1471) = RCT(850) +! B(1472) = dA(851)/dV(172) + B(1472) = RCT(851) +! B(1473) = dA(852)/dV(104) + B(1473) = RCT(852) +! B(1474) = dA(853)/dV(198) + B(1474) = RCT(853) +! B(1475) = dA(854)/dV(169) + B(1475) = RCT(854) +! B(1476) = dA(855)/dV(185) + B(1476) = RCT(855) +! B(1477) = dA(856)/dV(230) + B(1477) = RCT(856) +! B(1478) = dA(857)/dV(156) + B(1478) = RCT(857) +! B(1479) = dA(858)/dV(163) + B(1479) = RCT(858) +! B(1480) = dA(859)/dV(231) + B(1480) = RCT(859) +! B(1481) = dA(860)/dV(136) + B(1481) = RCT(860) +! B(1482) = dA(861)/dV(241) + B(1482) = RCT(861) +! B(1483) = dA(862)/dV(200) + B(1483) = RCT(862) +! B(1484) = dA(863)/dV(175) + B(1484) = RCT(863) +! B(1485) = dA(864)/dV(157) + B(1485) = RCT(864) +! B(1486) = dA(865)/dV(162) + B(1486) = RCT(865) +! B(1487) = dA(866)/dV(171) + B(1487) = RCT(866) +! B(1488) = dA(867)/dV(165) + B(1488) = RCT(867) +! B(1489) = dA(868)/dV(186) + B(1489) = RCT(868) +! B(1490) = dA(869)/dV(188) + B(1490) = RCT(869) +! B(1491) = dA(870)/dV(129) + B(1491) = RCT(870) +! B(1492) = dA(871)/dV(127) + B(1492) = RCT(871) +! B(1493) = dA(872)/dV(220) + B(1493) = RCT(872) +! B(1494) = dA(873)/dV(139) + B(1494) = RCT(873) +! B(1495) = dA(874)/dV(140) + B(1495) = RCT(874) +! B(1496) = dA(875)/dV(214) + B(1496) = RCT(875) +! B(1497) = dA(876)/dV(181) + B(1497) = RCT(876) +! B(1498) = dA(877)/dV(151) + B(1498) = RCT(877) +! B(1499) = dA(878)/dV(151) + B(1499) = RCT(878) +! B(1500) = dA(879)/dV(240) + B(1500) = RCT(879) +! B(1501) = dA(880)/dV(243) + B(1501) = RCT(880) +! B(1502) = dA(881)/dV(206) + B(1502) = RCT(881) +! B(1503) = dA(882)/dV(206) + B(1503) = RCT(882) +! B(1504) = dA(883)/dV(141) + B(1504) = RCT(883) +! B(1505) = dA(884)/dV(164) + B(1505) = RCT(884) +! B(1506) = dA(885)/dV(125) + B(1506) = RCT(885) +! B(1507) = dA(886)/dV(242) + B(1507) = RCT(886) +! B(1508) = dA(887)/dV(242) + B(1508) = RCT(887) +! B(1509) = dA(888)/dV(213) + B(1509) = RCT(888) +! B(1510) = dA(889)/dV(213) + B(1510) = RCT(889) +! B(1511) = dA(890)/dV(120) + B(1511) = RCT(890) +! B(1512) = dA(891)/dV(101) + B(1512) = RCT(891) +! B(1513) = dA(892)/dV(70) + B(1513) = RCT(892) +! B(1514) = dA(893)/dV(107) + B(1514) = RCT(893) +! B(1515) = dA(894)/dV(210) + B(1515) = RCT(894) ! Construct the Jacobian terms from B's IF (DO_JVS(1)) & ! JVS(1) = Jac_FULL(1,1) - JVS(1) = -B(1485) + JVS(1) = -B(1444) IF (DO_JVS(2)) & ! JVS(2) = Jac_FULL(2,2) - JVS(2) = -B(1487) + JVS(2) = -B(1446) IF (DO_JVS(3)) & ! JVS(3) = Jac_FULL(3,3) - JVS(3) = -B(1486) + JVS(3) = -B(1445) IF (DO_JVS(4)) & ! JVS(4) = Jac_FULL(4,4) JVS(4) = 0 IF (DO_JVS(5)) & -! JVS(5) = Jac_FULL(4,38) - JVS(5) = 2*B(1345) +! JVS(5) = Jac_FULL(4,42) + JVS(5) = 2*B(1300) IF (DO_JVS(6)) & -! JVS(6) = Jac_FULL(4,40) - JVS(6) = 2*B(1339) +! JVS(6) = Jac_FULL(4,44) + JVS(6) = 2*B(1294) IF (DO_JVS(7)) & -! JVS(7) = Jac_FULL(4,47) - JVS(7) = 2*B(1342) +! JVS(7) = Jac_FULL(4,49) + JVS(7) = 2*B(1297) IF (DO_JVS(8)) & -! JVS(8) = Jac_FULL(4,65) - JVS(8) = B(1336) +! JVS(8) = Jac_FULL(4,69) + JVS(8) = B(1289) IF (DO_JVS(9)) & ! JVS(9) = Jac_FULL(5,5) JVS(9) = 0 IF (DO_JVS(10)) & -! JVS(10) = Jac_FULL(5,206) - JVS(10) = B(1399) +! JVS(10) = Jac_FULL(5,210) + JVS(10) = B(1358) IF (DO_JVS(11)) & ! JVS(11) = Jac_FULL(6,6) JVS(11) = 0 IF (DO_JVS(12)) & -! JVS(12) = Jac_FULL(6,62) - JVS(12) = B(397) +! JVS(12) = Jac_FULL(6,41) + JVS(12) = B(1207) IF (DO_JVS(13)) & -! JVS(13) = Jac_FULL(6,67) - JVS(13) = B(1554) +! JVS(13) = Jac_FULL(6,286) + JVS(13) = B(1208) IF (DO_JVS(14)) & -! JVS(14) = Jac_FULL(6,95) - JVS(14) = B(1208) +! JVS(14) = Jac_FULL(7,7) + JVS(14) = 0 IF (DO_JVS(15)) & -! JVS(15) = Jac_FULL(6,104) - JVS(15) = B(1126)+B(1514) +! JVS(15) = Jac_FULL(7,66) + JVS(15) = B(360) IF (DO_JVS(16)) & -! JVS(16) = Jac_FULL(6,116) - JVS(16) = B(895)+B(897) +! JVS(16) = Jac_FULL(7,67) + JVS(16) = 0.3*B(1376) IF (DO_JVS(17)) & -! JVS(17) = Jac_FULL(6,120) - JVS(17) = B(891)+B(893) +! JVS(17) = Jac_FULL(7,70) + JVS(17) = B(1513) IF (DO_JVS(18)) & -! JVS(18) = Jac_FULL(6,133) - JVS(18) = 0.415*B(1086)+1.238*B(1522) +! JVS(18) = Jac_FULL(7,88) + JVS(18) = 0.22*B(247)+B(1399) IF (DO_JVS(19)) & -! JVS(19) = Jac_FULL(6,146) - JVS(19) = 0.33*B(1020)+0.33*B(1022) +! JVS(19) = Jac_FULL(7,97) + JVS(19) = B(1159) IF (DO_JVS(20)) & -! JVS(20) = Jac_FULL(6,159) - JVS(20) = B(1118) +! JVS(20) = Jac_FULL(7,104) + JVS(20) = B(1077)+B(1473) IF (DO_JVS(21)) & -! JVS(21) = Jac_FULL(6,160) - JVS(21) = 0.097*B(1064) +! JVS(21) = Jac_FULL(7,121) + JVS(21) = B(842)+B(844) IF (DO_JVS(22)) & -! JVS(22) = Jac_FULL(6,171) - JVS(22) = 0.75*B(1050) +! JVS(22) = Jac_FULL(7,123) + JVS(22) = B(846)+B(848) IF (DO_JVS(23)) & -! JVS(23) = Jac_FULL(6,176) - JVS(23) = 0.35*B(1199)+B(1201)+B(1230) +! JVS(23) = Jac_FULL(7,136) + JVS(23) = 0.41*B(1037)+1.238*B(1481) IF (DO_JVS(24)) & -! JVS(24) = Jac_FULL(6,189) - JVS(24) = 0.355*B(815) +! JVS(24) = Jac_FULL(7,150) + JVS(24) = 0.429*B(971)+0.429*B(973) IF (DO_JVS(25)) & -! JVS(25) = Jac_FULL(6,203) - JVS(25) = 0.5*B(1084)+B(1093) +! JVS(25) = Jac_FULL(7,163) + JVS(25) = 0.097*B(1015) IF (DO_JVS(26)) & -! JVS(26) = Jac_FULL(6,205) - JVS(26) = B(637) +! JVS(26) = Jac_FULL(7,164) + JVS(26) = B(1069) IF (DO_JVS(27)) & -! JVS(27) = Jac_FULL(6,206) - JVS(27) = B(1556) +! JVS(27) = Jac_FULL(7,175) + JVS(27) = 0.75*B(1001) IF (DO_JVS(28)) & -! JVS(28) = Jac_FULL(6,207) - JVS(28) = B(90)+B(553) +! JVS(28) = Jac_FULL(7,180) + JVS(28) = 0.35*B(1150)+B(1152)+B(1181) IF (DO_JVS(29)) & -! JVS(29) = Jac_FULL(6,215) - JVS(29) = B(147)+B(569) +! JVS(29) = Jac_FULL(7,184) + JVS(29) = B(1130) IF (DO_JVS(30)) & -! JVS(30) = Jac_FULL(6,220) - JVS(30) = 0.407*B(753) +! JVS(30) = Jac_FULL(7,192) + JVS(30) = 0.355*B(766) IF (DO_JVS(31)) & -! JVS(31) = Jac_FULL(6,227) - JVS(31) = 0.23*B(1046) +! JVS(31) = Jac_FULL(7,195) + JVS(31) = B(606) IF (DO_JVS(32)) & -! JVS(32) = Jac_FULL(6,232) - JVS(32) = 0.361*B(218) +! JVS(32) = Jac_FULL(7,201) + JVS(32) = 0.9*B(264) IF (DO_JVS(33)) & -! JVS(33) = Jac_FULL(6,245) - JVS(33) = 0.5*B(1097)+B(1099)+B(1103)+0.7*B(1105) +! JVS(33) = Jac_FULL(7,207) + JVS(33) = 0.5*B(1035)+B(1044) IF (DO_JVS(34)) & -! JVS(34) = Jac_FULL(6,246) - JVS(34) = 0.5*B(234) +! JVS(34) = Jac_FULL(7,208) + JVS(34) = B(588) IF (DO_JVS(35)) & -! JVS(35) = Jac_FULL(6,257) - JVS(35) = B(105)+0.5*B(1130) +! JVS(35) = Jac_FULL(7,209) + JVS(35) = 0.9*B(270) IF (DO_JVS(36)) & -! JVS(36) = Jac_FULL(6,258) - JVS(36) = B(44) +! JVS(36) = Jac_FULL(7,210) + JVS(36) = B(1515) IF (DO_JVS(37)) & -! JVS(37) = Jac_FULL(6,263) - JVS(37) = 0.7*B(1106)+B(1231) +! JVS(37) = Jac_FULL(7,211) + JVS(37) = B(87)+B(512) IF (DO_JVS(38)) & -! JVS(38) = Jac_FULL(6,269) - JVS(38) = B(45)+B(91)+B(148)+0.361*B(219)+0.5*B(235)+B(398)+B(638)+0.355*B(816)+0.23*B(1047)+0.75*B(1051)+0.097& - &*B(1065)+0.415*B(1087)+B(1119)+B(1127)+B(1209) +! JVS(38) = Jac_FULL(7,215) + JVS(38) = B(670) IF (DO_JVS(39)) & -! JVS(39) = Jac_FULL(6,277) - JVS(39) = 0.407*B(754) +! JVS(39) = Jac_FULL(7,217) + JVS(39) = 0.9*B(266) IF (DO_JVS(40)) & -! JVS(40) = Jac_FULL(6,280) - JVS(40) = B(106)+B(892)+B(896)+0.33*B(1021)+B(1094)+B(1100)+B(1202) +! JVS(40) = Jac_FULL(7,219) + JVS(40) = B(144)+B(528) IF (DO_JVS(41)) & -! JVS(41) = Jac_FULL(6,281) - JVS(41) = B(894)+B(898)+0.33*B(1023)+0.5*B(1085)+0.5*B(1098)+0.5*B(1131)+0.35*B(1200) +! JVS(41) = Jac_FULL(7,224) + JVS(41) = 0.407*B(704) IF (DO_JVS(42)) & -! JVS(42) = Jac_FULL(6,285) - JVS(42) = B(554)+B(570) +! JVS(42) = Jac_FULL(7,231) + JVS(42) = 0.23*B(997) IF (DO_JVS(43)) & -! JVS(43) = Jac_FULL(6,287) - JVS(43) = B(1104) +! JVS(43) = Jac_FULL(7,234) + JVS(43) = B(592) IF (DO_JVS(44)) & -! JVS(44) = Jac_FULL(7,7) - JVS(44) = 0 +! JVS(44) = Jac_FULL(7,236) + JVS(44) = 0.361*B(213) IF (DO_JVS(45)) & -! JVS(45) = Jac_FULL(7,41) - JVS(45) = B(742) +! JVS(45) = Jac_FULL(7,237) + JVS(45) = 0.9*B(272) IF (DO_JVS(46)) & -! JVS(46) = Jac_FULL(7,96) - JVS(46) = B(741) +! JVS(46) = Jac_FULL(7,238) + JVS(46) = B(628) IF (DO_JVS(47)) & -! JVS(47) = Jac_FULL(8,8) - JVS(47) = 0 +! JVS(47) = Jac_FULL(7,239) + JVS(47) = 0.9*B(268) IF (DO_JVS(48)) & -! JVS(48) = Jac_FULL(8,38) - JVS(48) = 2*B(1346) +! JVS(48) = Jac_FULL(7,246) + JVS(48) = B(920) IF (DO_JVS(49)) & -! JVS(49) = Jac_FULL(8,40) - JVS(49) = 2*B(1340) +! JVS(49) = Jac_FULL(7,247) + JVS(49) = B(918) IF (DO_JVS(50)) & -! JVS(50) = Jac_FULL(8,47) - JVS(50) = 2*B(1343) +! JVS(50) = Jac_FULL(7,249) + JVS(50) = 0.5*B(1048)+B(1050)+B(1054)+0.7*B(1056) IF (DO_JVS(51)) & -! JVS(51) = Jac_FULL(8,65) - JVS(51) = B(1337) +! JVS(51) = Jac_FULL(7,250) + JVS(51) = 0.5*B(229) IF (DO_JVS(52)) & -! JVS(52) = Jac_FULL(9,9) - JVS(52) = 0 +! JVS(52) = Jac_FULL(7,252) + JVS(52) = 0.3*B(185)+0.9*B(256) IF (DO_JVS(53)) & -! JVS(53) = Jac_FULL(9,38) - JVS(53) = 2*B(1347) +! JVS(53) = Jac_FULL(7,253) + JVS(53) = 0.1*B(211) IF (DO_JVS(54)) & -! JVS(54) = Jac_FULL(9,40) - JVS(54) = 2*B(1341) +! JVS(54) = Jac_FULL(7,254) + JVS(54) = 0.9*B(258) IF (DO_JVS(55)) & -! JVS(55) = Jac_FULL(9,47) - JVS(55) = 2*B(1344) +! JVS(55) = Jac_FULL(7,255) + JVS(55) = B(151)+0.43*B(207)+2*B(274)+B(276) IF (DO_JVS(56)) & -! JVS(56) = Jac_FULL(9,65) - JVS(56) = B(1338) +! JVS(56) = Jac_FULL(7,256) + JVS(56) = 0.9*B(254) IF (DO_JVS(57)) & -! JVS(57) = Jac_FULL(10,10) - JVS(57) = 0 +! JVS(57) = Jac_FULL(7,257) + JVS(57) = 0.645*B(262) IF (DO_JVS(58)) & -! JVS(58) = Jac_FULL(10,12) - JVS(58) = B(1242) +! JVS(58) = Jac_FULL(7,258) + JVS(58) = 0.9*B(260) IF (DO_JVS(59)) & -! JVS(59) = Jac_FULL(10,281) - JVS(59) = B(1243) +! JVS(59) = Jac_FULL(7,261) + JVS(59) = B(102)+2*B(251)+0.9*B(252)+0.9*B(255)+0.9*B(257)+0.9*B(259)+0.9*B(261)+0.645*B(263)+0.9*B(265)+0.9*B(267)& + &+0.9*B(269)+0.9*B(271)+0.9*B(273)+2*B(275)+B(629)+B(671)+B(919)+B(921)+0.5*B(1081)+B(1131) IF (DO_JVS(60)) & -! JVS(60) = Jac_FULL(11,11) - JVS(60) = 0 +! JVS(60) = Jac_FULL(7,266) + JVS(60) = 0.3*B(186)+0.9*B(253)+B(277)+0.7*B(1057)+B(1182) IF (DO_JVS(61)) & -! JVS(61) = Jac_FULL(11,12) - JVS(61) = B(1244) +! JVS(61) = Jac_FULL(7,267) + JVS(61) = B(45)+B(593)+B(607) IF (DO_JVS(62)) & -! JVS(62) = Jac_FULL(11,280) - JVS(62) = B(1245) +! JVS(62) = Jac_FULL(7,279) + JVS(62) = B(103)+B(152)+B(843)+B(847)+0.429*B(972)+B(1045)+B(1051)+B(1153) IF (DO_JVS(63)) & -! JVS(63) = Jac_FULL(12,12) - JVS(63) = -B(1242)-B(1244) +! JVS(63) = Jac_FULL(7,281) + JVS(63) = B(1055) IF (DO_JVS(64)) & -! JVS(64) = Jac_FULL(12,60) - JVS(64) = B(1165) +! JVS(64) = Jac_FULL(7,282) + JVS(64) = 0.1*B(212)+0.407*B(705) IF (DO_JVS(65)) & -! JVS(65) = Jac_FULL(12,269) - JVS(65) = B(1166) +! JVS(65) = Jac_FULL(7,284) + JVS(65) = 0.43*B(208)+B(845)+B(849)+0.429*B(974)+0.5*B(1036)+0.5*B(1049)+0.5*B(1082)+0.35*B(1151) IF (DO_JVS(66)) & -! JVS(66) = Jac_FULL(12,280) - JVS(66) = -B(1245) +! JVS(66) = Jac_FULL(7,286) + JVS(66) = B(46)+B(88)+B(145)+0.361*B(214)+0.5*B(230)+0.22*B(248)+B(361)+B(589)+0.355*B(767)+0.23*B(998)+0.75*B(1002)& + &+0.097*B(1016)+0.41*B(1038)+B(1070)+B(1078)+B(1160) IF (DO_JVS(67)) & -! JVS(67) = Jac_FULL(12,281) - JVS(67) = -B(1243) +! JVS(67) = Jac_FULL(7,290) + JVS(67) = B(513)+B(529) IF (DO_JVS(68)) & -! JVS(68) = Jac_FULL(13,13) +! JVS(68) = Jac_FULL(8,8) JVS(68) = 0 IF (DO_JVS(69)) & -! JVS(69) = Jac_FULL(13,220) - JVS(69) = B(755)+B(757)+B(759)+B(761) +! JVS(69) = Jac_FULL(8,45) + JVS(69) = B(693) IF (DO_JVS(70)) & -! JVS(70) = Jac_FULL(13,269) - JVS(70) = B(756)+B(758)+B(760)+B(762) +! JVS(70) = Jac_FULL(8,98) + JVS(70) = B(692) IF (DO_JVS(71)) & -! JVS(71) = Jac_FULL(14,14) +! JVS(71) = Jac_FULL(9,9) JVS(71) = 0 IF (DO_JVS(72)) & -! JVS(72) = Jac_FULL(14,220) - JVS(72) = B(953) +! JVS(72) = Jac_FULL(9,42) + JVS(72) = 2*B(1301) IF (DO_JVS(73)) & -! JVS(73) = Jac_FULL(14,287) - JVS(73) = B(954) +! JVS(73) = Jac_FULL(9,44) + JVS(73) = 2*B(1295) IF (DO_JVS(74)) & -! JVS(74) = Jac_FULL(15,15) - JVS(74) = 0 +! JVS(74) = Jac_FULL(9,49) + JVS(74) = 2*B(1298) IF (DO_JVS(75)) & -! JVS(75) = Jac_FULL(15,17) - JVS(75) = B(1138) +! JVS(75) = Jac_FULL(9,69) + JVS(75) = B(1290) IF (DO_JVS(76)) & -! JVS(76) = Jac_FULL(15,281) - JVS(76) = B(1139) +! JVS(76) = Jac_FULL(9,203) + JVS(76) = B(1303) IF (DO_JVS(77)) & -! JVS(77) = Jac_FULL(16,16) - JVS(77) = 0 +! JVS(77) = Jac_FULL(9,268) + JVS(77) = B(1292) IF (DO_JVS(78)) & -! JVS(78) = Jac_FULL(16,17) - JVS(78) = B(1140) +! JVS(78) = Jac_FULL(9,270) + JVS(78) = B(1305) IF (DO_JVS(79)) & -! JVS(79) = Jac_FULL(16,280) - JVS(79) = B(1141) +! JVS(79) = Jac_FULL(10,10) + JVS(79) = 0 IF (DO_JVS(80)) & -! JVS(80) = Jac_FULL(17,17) - JVS(80) = -B(1138)-B(1140) +! JVS(80) = Jac_FULL(10,42) + JVS(80) = 2*B(1302) IF (DO_JVS(81)) & -! JVS(81) = Jac_FULL(17,18) - JVS(81) = B(1136) +! JVS(81) = Jac_FULL(10,44) + JVS(81) = 2*B(1296) IF (DO_JVS(82)) & -! JVS(82) = Jac_FULL(17,269) - JVS(82) = B(1137) +! JVS(82) = Jac_FULL(10,49) + JVS(82) = 2*B(1299) IF (DO_JVS(83)) & -! JVS(83) = Jac_FULL(17,280) - JVS(83) = -B(1141) +! JVS(83) = Jac_FULL(10,69) + JVS(83) = B(1291) IF (DO_JVS(84)) & -! JVS(84) = Jac_FULL(17,281) - JVS(84) = -B(1139) +! JVS(84) = Jac_FULL(10,203) + JVS(84) = B(1304) IF (DO_JVS(85)) & -! JVS(85) = Jac_FULL(18,18) - JVS(85) = -B(1136) +! JVS(85) = Jac_FULL(10,268) + JVS(85) = B(1293) IF (DO_JVS(86)) & -! JVS(86) = Jac_FULL(18,269) - JVS(86) = -B(1137) +! JVS(86) = Jac_FULL(10,270) + JVS(86) = B(1306) IF (DO_JVS(87)) & -! JVS(87) = Jac_FULL(19,19) +! JVS(87) = Jac_FULL(11,11) JVS(87) = 0 IF (DO_JVS(88)) & -! JVS(88) = Jac_FULL(19,21) - JVS(88) = B(1246) +! JVS(88) = Jac_FULL(11,13) + JVS(88) = B(1193) IF (DO_JVS(89)) & -! JVS(89) = Jac_FULL(19,281) - JVS(89) = B(1247) +! JVS(89) = Jac_FULL(11,284) + JVS(89) = B(1194) IF (DO_JVS(90)) & -! JVS(90) = Jac_FULL(20,20) +! JVS(90) = Jac_FULL(12,12) JVS(90) = 0 IF (DO_JVS(91)) & -! JVS(91) = Jac_FULL(20,21) - JVS(91) = B(1248) +! JVS(91) = Jac_FULL(12,13) + JVS(91) = B(1195) IF (DO_JVS(92)) & -! JVS(92) = Jac_FULL(20,280) - JVS(92) = B(1249) +! JVS(92) = Jac_FULL(12,279) + JVS(92) = B(1196) IF (DO_JVS(93)) & -! JVS(93) = Jac_FULL(21,21) - JVS(93) = -B(1246)-B(1248) +! JVS(93) = Jac_FULL(13,13) + JVS(93) = -B(1193)-B(1195) IF (DO_JVS(94)) & -! JVS(94) = Jac_FULL(21,76) - JVS(94) = B(1167) +! JVS(94) = Jac_FULL(13,64) + JVS(94) = B(1116) IF (DO_JVS(95)) & -! JVS(95) = Jac_FULL(21,269) - JVS(95) = B(1168) +! JVS(95) = Jac_FULL(13,279) + JVS(95) = -B(1196) IF (DO_JVS(96)) & -! JVS(96) = Jac_FULL(21,280) - JVS(96) = -B(1249) +! JVS(96) = Jac_FULL(13,284) + JVS(96) = -B(1194) IF (DO_JVS(97)) & -! JVS(97) = Jac_FULL(21,281) - JVS(97) = -B(1247) +! JVS(97) = Jac_FULL(13,286) + JVS(97) = B(1117) IF (DO_JVS(98)) & -! JVS(98) = Jac_FULL(22,22) +! JVS(98) = Jac_FULL(14,14) JVS(98) = 0 IF (DO_JVS(99)) & -! JVS(99) = Jac_FULL(22,23) - JVS(99) = B(1379) +! JVS(99) = Jac_FULL(14,224) + JVS(99) = B(706)+B(708)+B(710)+B(712) IF (DO_JVS(100)) & -! JVS(100) = Jac_FULL(23,23) - JVS(100) = -B(262)-B(1379) +! JVS(100) = Jac_FULL(14,286) + JVS(100) = B(707)+B(709)+B(711)+B(713) IF (DO_JVS(101)) & -! JVS(101) = Jac_FULL(23,153) - JVS(101) = 0.005*B(821)+0.005*B(823)+0.005*B(829) +! JVS(101) = Jac_FULL(15,15) + JVS(101) = 0 IF (DO_JVS(102)) & -! JVS(102) = Jac_FULL(23,158) - JVS(102) = 0.005*B(825)+0.005*B(827)+0.005*B(831) +! JVS(102) = Jac_FULL(15,224) + JVS(102) = B(904) IF (DO_JVS(103)) & -! JVS(103) = Jac_FULL(23,161) - JVS(103) = 0.005*B(835) +! JVS(103) = Jac_FULL(15,281) + JVS(103) = B(905) IF (DO_JVS(104)) & -! JVS(104) = Jac_FULL(23,167) - JVS(104) = 0.005*B(833) +! JVS(104) = Jac_FULL(16,16) + JVS(104) = 0 IF (DO_JVS(105)) & -! JVS(105) = Jac_FULL(23,269) - JVS(105) = -B(263)+0.005*B(822)+0.005*B(824)+0.005*B(826)+0.005*B(828)+0.005*B(830)+0.005*B(832)+0.005*B(834)+0.005& - &*B(836) +! JVS(105) = Jac_FULL(16,18) + JVS(105) = B(1089) IF (DO_JVS(106)) & -! JVS(106) = Jac_FULL(24,24) - JVS(106) = 0 +! JVS(106) = Jac_FULL(16,284) + JVS(106) = B(1090) IF (DO_JVS(107)) & -! JVS(107) = Jac_FULL(24,26) - JVS(107) = B(1250) +! JVS(107) = Jac_FULL(17,17) + JVS(107) = 0 IF (DO_JVS(108)) & -! JVS(108) = Jac_FULL(24,281) - JVS(108) = B(1251) +! JVS(108) = Jac_FULL(17,18) + JVS(108) = B(1091) IF (DO_JVS(109)) & -! JVS(109) = Jac_FULL(25,25) - JVS(109) = 0 +! JVS(109) = Jac_FULL(17,279) + JVS(109) = B(1092) IF (DO_JVS(110)) & -! JVS(110) = Jac_FULL(25,26) - JVS(110) = B(1252) +! JVS(110) = Jac_FULL(18,18) + JVS(110) = -B(1089)-B(1091) IF (DO_JVS(111)) & -! JVS(111) = Jac_FULL(25,280) - JVS(111) = B(1253) +! JVS(111) = Jac_FULL(18,19) + JVS(111) = B(1087) IF (DO_JVS(112)) & -! JVS(112) = Jac_FULL(26,26) - JVS(112) = -B(1250)-B(1252) +! JVS(112) = Jac_FULL(18,279) + JVS(112) = -B(1092) IF (DO_JVS(113)) & -! JVS(113) = Jac_FULL(26,77) - JVS(113) = B(1169) +! JVS(113) = Jac_FULL(18,284) + JVS(113) = -B(1090) IF (DO_JVS(114)) & -! JVS(114) = Jac_FULL(26,269) - JVS(114) = B(1170) +! JVS(114) = Jac_FULL(18,286) + JVS(114) = B(1088) IF (DO_JVS(115)) & -! JVS(115) = Jac_FULL(26,280) - JVS(115) = -B(1253) +! JVS(115) = Jac_FULL(19,19) + JVS(115) = -B(1087) IF (DO_JVS(116)) & -! JVS(116) = Jac_FULL(26,281) - JVS(116) = -B(1251) +! JVS(116) = Jac_FULL(19,286) + JVS(116) = -B(1088) IF (DO_JVS(117)) & -! JVS(117) = Jac_FULL(27,27) +! JVS(117) = Jac_FULL(20,20) JVS(117) = 0 IF (DO_JVS(118)) & -! JVS(118) = Jac_FULL(27,82) - JVS(118) = 0.25*B(313) +! JVS(118) = Jac_FULL(20,22) + JVS(118) = B(1197) IF (DO_JVS(119)) & -! JVS(119) = Jac_FULL(27,269) - JVS(119) = 0.25*B(314) +! JVS(119) = Jac_FULL(20,284) + JVS(119) = B(1198) IF (DO_JVS(120)) & -! JVS(120) = Jac_FULL(28,28) +! JVS(120) = Jac_FULL(21,21) JVS(120) = 0 IF (DO_JVS(121)) & -! JVS(121) = Jac_FULL(28,135) - JVS(121) = B(8) +! JVS(121) = Jac_FULL(21,22) + JVS(121) = B(1199) IF (DO_JVS(122)) & -! JVS(122) = Jac_FULL(28,277) - JVS(122) = B(9) +! JVS(122) = Jac_FULL(21,279) + JVS(122) = B(1200) IF (DO_JVS(123)) & -! JVS(123) = Jac_FULL(28,286) - JVS(123) = B(10) +! JVS(123) = Jac_FULL(22,22) + JVS(123) = -B(1197)-B(1199) IF (DO_JVS(124)) & -! JVS(124) = Jac_FULL(29,29) - JVS(124) = 0 +! JVS(124) = Jac_FULL(22,79) + JVS(124) = B(1118) IF (DO_JVS(125)) & -! JVS(125) = Jac_FULL(29,104) - JVS(125) = B(1385) +! JVS(125) = Jac_FULL(22,279) + JVS(125) = -B(1200) IF (DO_JVS(126)) & -! JVS(126) = Jac_FULL(29,218) - JVS(126) = B(1374) +! JVS(126) = Jac_FULL(22,284) + JVS(126) = -B(1198) IF (DO_JVS(127)) & -! JVS(127) = Jac_FULL(29,228) - JVS(127) = B(1375) +! JVS(127) = Jac_FULL(22,286) + JVS(127) = B(1119) IF (DO_JVS(128)) & -! JVS(128) = Jac_FULL(30,30) +! JVS(128) = Jac_FULL(23,23) JVS(128) = 0 IF (DO_JVS(129)) & -! JVS(129) = Jac_FULL(30,84) - JVS(129) = B(1386) +! JVS(129) = Jac_FULL(23,24) + JVS(129) = B(1338) IF (DO_JVS(130)) & -! JVS(130) = Jac_FULL(30,114) - JVS(130) = B(1378) +! JVS(130) = Jac_FULL(24,24) + JVS(130) = -B(245)-B(1338) IF (DO_JVS(131)) & -! JVS(131) = Jac_FULL(30,127) - JVS(131) = B(1376) +! JVS(131) = Jac_FULL(24,157) + JVS(131) = 0.005*B(772)+0.005*B(774)+0.005*B(780) IF (DO_JVS(132)) & -! JVS(132) = Jac_FULL(30,128) - JVS(132) = B(1377) +! JVS(132) = Jac_FULL(24,162) + JVS(132) = 0.005*B(776)+0.005*B(778)+0.005*B(782) IF (DO_JVS(133)) & -! JVS(133) = Jac_FULL(30,170) - JVS(133) = B(1391) +! JVS(133) = Jac_FULL(24,165) + JVS(133) = 0.005*B(786) IF (DO_JVS(134)) & -! JVS(134) = Jac_FULL(31,31) - JVS(134) = 0 +! JVS(134) = Jac_FULL(24,171) + JVS(134) = 0.005*B(784) IF (DO_JVS(135)) & -! JVS(135) = Jac_FULL(31,41) - JVS(135) = B(742) +! JVS(135) = Jac_FULL(24,286) + JVS(135) = -B(246)+0.005*B(773)+0.005*B(775)+0.005*B(777)+0.005*B(779)+0.005*B(781)+0.005*B(783)+0.005*B(785)+0.005& + &*B(787) IF (DO_JVS(136)) & -! JVS(136) = Jac_FULL(31,57) - JVS(136) = B(1495) +! JVS(136) = Jac_FULL(25,25) + JVS(136) = 0 IF (DO_JVS(137)) & -! JVS(137) = Jac_FULL(31,58) - JVS(137) = B(1507) +! JVS(137) = Jac_FULL(25,27) + JVS(137) = B(1201) IF (DO_JVS(138)) & -! JVS(138) = Jac_FULL(31,59) - JVS(138) = B(1505) +! JVS(138) = Jac_FULL(25,284) + JVS(138) = B(1202) IF (DO_JVS(139)) & -! JVS(139) = Jac_FULL(31,61) - JVS(139) = B(419)+B(421) +! JVS(139) = Jac_FULL(26,26) + JVS(139) = 0 IF (DO_JVS(140)) & -! JVS(140) = Jac_FULL(31,63) - JVS(140) = 0.3*B(1417) +! JVS(140) = Jac_FULL(26,27) + JVS(140) = B(1203) IF (DO_JVS(141)) & -! JVS(141) = Jac_FULL(31,64) - JVS(141) = B(1159) +! JVS(141) = Jac_FULL(26,279) + JVS(141) = B(1204) IF (DO_JVS(142)) & -! JVS(142) = Jac_FULL(31,71) - JVS(142) = B(1492) +! JVS(142) = Jac_FULL(27,27) + JVS(142) = -B(1201)-B(1203) IF (DO_JVS(143)) & -! JVS(143) = Jac_FULL(31,86) - JVS(143) = B(749)+B(1510) +! JVS(143) = Jac_FULL(27,80) + JVS(143) = B(1120) IF (DO_JVS(144)) & -! JVS(144) = Jac_FULL(31,87) - JVS(144) = B(745)+B(1508) +! JVS(144) = Jac_FULL(27,279) + JVS(144) = -B(1204) IF (DO_JVS(145)) & -! JVS(145) = Jac_FULL(31,88) - JVS(145) = B(747)+B(1509) +! JVS(145) = Jac_FULL(27,284) + JVS(145) = -B(1202) IF (DO_JVS(146)) & -! JVS(146) = Jac_FULL(31,89) - JVS(146) = B(751)+B(1511) +! JVS(146) = Jac_FULL(27,286) + JVS(146) = B(1121) IF (DO_JVS(147)) & -! JVS(147) = Jac_FULL(31,95) - JVS(147) = B(1207)+B(1208) +! JVS(147) = Jac_FULL(28,28) + JVS(147) = 0 IF (DO_JVS(148)) & -! JVS(148) = Jac_FULL(31,96) - JVS(148) = B(741) +! JVS(148) = Jac_FULL(28,90) + JVS(148) = 0.25*B(284) IF (DO_JVS(149)) & -! JVS(149) = Jac_FULL(31,101) - JVS(149) = B(1410) +! JVS(149) = Jac_FULL(28,286) + JVS(149) = 0.25*B(285) IF (DO_JVS(150)) & -! JVS(150) = Jac_FULL(31,103) - JVS(150) = 2*B(535) +! JVS(150) = Jac_FULL(29,29) + JVS(150) = 0 IF (DO_JVS(151)) & -! JVS(151) = Jac_FULL(31,116) - JVS(151) = B(895) +! JVS(151) = Jac_FULL(29,138) + JVS(151) = B(8) IF (DO_JVS(152)) & -! JVS(152) = Jac_FULL(31,120) - JVS(152) = B(891) +! JVS(152) = Jac_FULL(29,276) + JVS(152) = B(9) IF (DO_JVS(153)) & -! JVS(153) = Jac_FULL(31,125) - JVS(153) = B(333) +! JVS(153) = Jac_FULL(29,282) + JVS(153) = B(10) IF (DO_JVS(154)) & -! JVS(154) = Jac_FULL(31,131) - JVS(154) = B(743) +! JVS(154) = Jac_FULL(30,30) + JVS(154) = 0 IF (DO_JVS(155)) & -! JVS(155) = Jac_FULL(31,140) - JVS(155) = B(621) +! JVS(155) = Jac_FULL(30,104) + JVS(155) = 1.5*B(1344) IF (DO_JVS(156)) & -! JVS(156) = Jac_FULL(31,141) - JVS(156) = B(1052) +! JVS(156) = Jac_FULL(30,223) + JVS(156) = B(1333) IF (DO_JVS(157)) & -! JVS(157) = Jac_FULL(31,142) - JVS(157) = B(1058) +! JVS(157) = Jac_FULL(30,233) + JVS(157) = 1.5*B(1334) IF (DO_JVS(158)) & -! JVS(158) = Jac_FULL(31,143) - JVS(158) = B(1026) +! JVS(158) = Jac_FULL(31,31) + JVS(158) = 0 IF (DO_JVS(159)) & -! JVS(159) = Jac_FULL(31,146) - JVS(159) = B(1020) +! JVS(159) = Jac_FULL(31,105) + JVS(159) = 0.8*B(1345) IF (DO_JVS(160)) & -! JVS(160) = Jac_FULL(31,148) - JVS(160) = B(929)+B(931) +! JVS(160) = Jac_FULL(31,116) + JVS(160) = B(1337) IF (DO_JVS(161)) & -! JVS(161) = Jac_FULL(31,149) - JVS(161) = B(1108) +! JVS(161) = Jac_FULL(31,130) + JVS(161) = B(1335) IF (DO_JVS(162)) & -! JVS(162) = Jac_FULL(31,162) - JVS(162) = B(922)+B(924) +! JVS(162) = Jac_FULL(31,131) + JVS(162) = B(1336) IF (DO_JVS(163)) & -! JVS(163) = Jac_FULL(31,163) - JVS(163) = B(943)+B(945) +! JVS(163) = Jac_FULL(31,174) + JVS(163) = B(1350) IF (DO_JVS(164)) & -! JVS(164) = Jac_FULL(31,164) - JVS(164) = B(937)+B(939) +! JVS(164) = Jac_FULL(32,32) + JVS(164) = 0 IF (DO_JVS(165)) & -! JVS(165) = Jac_FULL(31,173) - JVS(165) = B(415) +! JVS(165) = Jac_FULL(32,195) + JVS(165) = B(612) IF (DO_JVS(166)) & -! JVS(166) = Jac_FULL(31,175) - JVS(166) = 0.995*B(1150) +! JVS(166) = Jac_FULL(32,234) + JVS(166) = B(604) IF (DO_JVS(167)) & -! JVS(167) = Jac_FULL(31,176) - JVS(167) = 0.15*B(1199)+B(1201) +! JVS(167) = Jac_FULL(32,276) + JVS(167) = B(288)+B(605)+B(613) IF (DO_JVS(168)) & -! JVS(168) = Jac_FULL(31,178) - JVS(168) = B(1173) +! JVS(168) = Jac_FULL(32,286) + JVS(168) = B(289) IF (DO_JVS(169)) & -! JVS(169) = Jac_FULL(31,179) - JVS(169) = B(838)+B(840) +! JVS(169) = Jac_FULL(33,33) + JVS(169) = 0 IF (DO_JVS(170)) & -! JVS(170) = Jac_FULL(31,180) - JVS(170) = B(845)+B(847) +! JVS(170) = Jac_FULL(33,86) + JVS(170) = 2*B(23) IF (DO_JVS(171)) & -! JVS(171) = Jac_FULL(31,183) - JVS(171) = B(852)+B(854) +! JVS(171) = Jac_FULL(33,212) + JVS(171) = B(15) IF (DO_JVS(172)) & -! JVS(172) = Jac_FULL(31,185) - JVS(172) = B(1012)+B(1014) +! JVS(172) = Jac_FULL(33,276) + JVS(172) = B(16)+B(17)+B(19)+2*B(24) IF (DO_JVS(173)) & -! JVS(173) = Jac_FULL(31,187) - JVS(173) = B(1210)+B(1212) +! JVS(173) = Jac_FULL(33,282) + JVS(173) = B(18) IF (DO_JVS(174)) & -! JVS(174) = Jac_FULL(31,188) - JVS(174) = B(74) +! JVS(174) = Jac_FULL(33,286) + JVS(174) = 2*B(25) IF (DO_JVS(175)) & -! JVS(175) = Jac_FULL(31,190) - JVS(175) = B(886)+B(888) +! JVS(175) = Jac_FULL(34,34) + JVS(175) = 0 IF (DO_JVS(176)) & -! JVS(176) = Jac_FULL(31,191) - JVS(176) = B(657)+B(659) +! JVS(176) = Jac_FULL(34,45) + JVS(176) = B(693) IF (DO_JVS(177)) & -! JVS(177) = Jac_FULL(31,192) - JVS(177) = B(467) +! JVS(177) = Jac_FULL(34,61) + JVS(177) = B(1454) IF (DO_JVS(178)) & -! JVS(178) = Jac_FULL(31,197) - JVS(178) = B(141) +! JVS(178) = Jac_FULL(34,65) + JVS(178) = B(378)+B(380) IF (DO_JVS(179)) & -! JVS(179) = Jac_FULL(31,200) - JVS(179) = B(1078)+0.438*B(1080) +! JVS(179) = Jac_FULL(34,67) + JVS(179) = 0.3*B(1376) IF (DO_JVS(180)) & -! JVS(180) = Jac_FULL(31,201) - JVS(180) = B(1089)+B(1091) +! JVS(180) = Jac_FULL(34,68) + JVS(180) = B(1110) IF (DO_JVS(181)) & -! JVS(181) = Jac_FULL(31,203) - JVS(181) = 0.13*B(1084)+B(1093) +! JVS(181) = Jac_FULL(34,74) + JVS(181) = B(1451) IF (DO_JVS(182)) & -! JVS(182) = Jac_FULL(31,204) - JVS(182) = B(123) +! JVS(182) = Jac_FULL(34,87) + JVS(182) = B(700)+B(1469) IF (DO_JVS(183)) & -! JVS(183) = Jac_FULL(31,206) - JVS(183) = B(1224) +! JVS(183) = Jac_FULL(34,89) + JVS(183) = B(696)+B(1467) IF (DO_JVS(184)) & -! JVS(184) = Jac_FULL(31,211) - JVS(184) = B(707) +! JVS(184) = Jac_FULL(34,91) + JVS(184) = B(702)+B(1470) IF (DO_JVS(185)) & -! JVS(185) = Jac_FULL(31,212) - JVS(185) = B(709) +! JVS(185) = Jac_FULL(34,96) + JVS(185) = B(698)+B(1468) IF (DO_JVS(186)) & -! JVS(186) = Jac_FULL(31,213) - JVS(186) = B(109)+B(561) +! JVS(186) = Jac_FULL(34,97) + JVS(186) = B(1158)+B(1159) IF (DO_JVS(187)) & -! JVS(187) = Jac_FULL(31,217) - JVS(187) = B(1008)+B(1010) +! JVS(187) = Jac_FULL(34,98) + JVS(187) = B(692) IF (DO_JVS(188)) & -! JVS(188) = Jac_FULL(31,221) - JVS(188) = B(695) +! JVS(188) = Jac_FULL(34,102) + JVS(188) = B(1369) IF (DO_JVS(189)) & -! JVS(189) = Jac_FULL(31,224) - JVS(189) = B(872)+B(874) +! JVS(189) = Jac_FULL(34,103) + JVS(189) = 0.1*B(494) IF (DO_JVS(190)) & -! JVS(190) = Jac_FULL(31,225) - JVS(190) = B(878)+B(880) +! JVS(190) = Jac_FULL(34,121) + JVS(190) = B(842) IF (DO_JVS(191)) & -! JVS(191) = Jac_FULL(31,229) - JVS(191) = B(949)+B(951) +! JVS(191) = Jac_FULL(34,123) + JVS(191) = B(846) IF (DO_JVS(192)) & -! JVS(192) = Jac_FULL(31,230) - JVS(192) = B(643)+B(645) +! JVS(192) = Jac_FULL(34,128) + JVS(192) = B(304) IF (DO_JVS(193)) & -! JVS(193) = Jac_FULL(31,231) - JVS(193) = B(483) +! JVS(193) = Jac_FULL(34,134) + JVS(193) = B(694) IF (DO_JVS(194)) & -! JVS(194) = Jac_FULL(31,233) - JVS(194) = B(119) +! JVS(194) = Jac_FULL(34,143) + JVS(194) = B(574) IF (DO_JVS(195)) & -! JVS(195) = Jac_FULL(31,234) - JVS(195) = B(671) +! JVS(195) = Jac_FULL(34,144) + JVS(195) = B(1003) IF (DO_JVS(196)) & -! JVS(196) = Jac_FULL(31,235) - JVS(196) = B(113)+B(563) +! JVS(196) = Jac_FULL(34,145) + JVS(196) = B(1009) IF (DO_JVS(197)) & -! JVS(197) = Jac_FULL(31,237) - JVS(197) = 0.69*B(1042) +! JVS(197) = Jac_FULL(34,146) + JVS(197) = B(977) IF (DO_JVS(198)) & -! JVS(198) = Jac_FULL(31,238) - JVS(198) = 0.02*B(1122) +! JVS(198) = Jac_FULL(34,150) + JVS(198) = B(971) IF (DO_JVS(199)) & -! JVS(199) = Jac_FULL(31,239) - JVS(199) = 0.01*B(1542) +! JVS(199) = Jac_FULL(34,152) + JVS(199) = B(880)+B(882) IF (DO_JVS(200)) & -! JVS(200) = Jac_FULL(31,240) - JVS(200) = B(975)+B(977) +! JVS(200) = Jac_FULL(34,153) + JVS(200) = B(1059) IF (DO_JVS(201)) & -! JVS(201) = Jac_FULL(31,241) - JVS(201) = B(979)+B(981) +! JVS(201) = Jac_FULL(34,166) + JVS(201) = B(888)+B(890) IF (DO_JVS(202)) & -! JVS(202) = Jac_FULL(31,242) - JVS(202) = B(791)+B(793)+B(795)+B(797) +! JVS(202) = Jac_FULL(34,167) + JVS(202) = B(873)+B(875) IF (DO_JVS(203)) & -! JVS(203) = Jac_FULL(31,243) - JVS(203) = B(799)+B(801)+B(803)+B(805) +! JVS(203) = Jac_FULL(34,168) + JVS(203) = B(894)+B(896) IF (DO_JVS(204)) & -! JVS(204) = Jac_FULL(31,245) - JVS(204) = 0.13*B(1097)+B(1099) +! JVS(204) = Jac_FULL(34,177) + JVS(204) = 0.02*B(376) IF (DO_JVS(205)) & -! JVS(205) = Jac_FULL(31,248) - JVS(205) = B(133) +! JVS(205) = Jac_FULL(34,179) + JVS(205) = 0.995*B(1101) IF (DO_JVS(206)) & -! JVS(206) = Jac_FULL(31,249) - JVS(206) = B(135) +! JVS(206) = Jac_FULL(34,180) + JVS(206) = 0.15*B(1150)+B(1152) IF (DO_JVS(207)) & -! JVS(207) = Jac_FULL(31,250) - JVS(207) = B(154)+0.15*B(212) +! JVS(207) = Jac_FULL(34,182) + JVS(207) = B(789)+B(791) IF (DO_JVS(208)) & -! JVS(208) = Jac_FULL(31,251) - JVS(208) = B(131) +! JVS(208) = Jac_FULL(34,183) + JVS(208) = B(796)+B(798) IF (DO_JVS(209)) & -! JVS(209) = Jac_FULL(31,252) - JVS(209) = B(127)+B(129) +! JVS(209) = Jac_FULL(34,184) + JVS(209) = B(1124) IF (DO_JVS(210)) & -! JVS(210) = Jac_FULL(31,253) - JVS(210) = B(137) +! JVS(210) = Jac_FULL(34,187) + JVS(210) = B(803)+B(805) IF (DO_JVS(211)) & -! JVS(211) = Jac_FULL(31,257) - JVS(211) = B(105)+0.13*B(1130) +! JVS(211) = Jac_FULL(34,189) + JVS(211) = B(963)+B(965) IF (DO_JVS(212)) & -! JVS(212) = Jac_FULL(31,259) - JVS(212) = B(485) +! JVS(212) = Jac_FULL(34,191) + JVS(212) = B(1161)+B(1163) IF (DO_JVS(213)) & -! JVS(213) = Jac_FULL(31,260) - JVS(213) = B(70) +! JVS(213) = Jac_FULL(34,193) + JVS(213) = B(71) IF (DO_JVS(214)) & -! JVS(214) = Jac_FULL(31,263) - JVS(214) = B(48)+B(555) +! JVS(214) = Jac_FULL(34,194) + JVS(214) = B(837)+B(839) IF (DO_JVS(215)) & -! JVS(215) = Jac_FULL(31,269) - JVS(215) = B(35)+B(71)+B(75)+B(334)+B(468)+B(484)+B(486)+B(622)+B(744)+B(746)+B(748)+B(750)+B(752)+0.69*B(1043)& - &+B(1109)+0.02*B(1123)+B(1160)+B(1209)+B(1225) +! JVS(215) = Jac_FULL(34,195) + JVS(215) = B(608)+B(610) IF (DO_JVS(216)) & -! JVS(216) = Jac_FULL(31,270) - JVS(216) = B(646)+B(660)+B(1211) +! JVS(216) = Jac_FULL(34,197) + JVS(216) = B(428) IF (DO_JVS(217)) & -! JVS(217) = Jac_FULL(31,280) - JVS(217) = B(41)+B(49)+B(106)+B(110)+B(114)+B(120)+B(124)+B(128)+B(130)+B(132)+B(134)+B(136)+B(138)+B(142)+B(155)& - &+B(422)+B(644)+B(658)+B(672)+B(696)+B(708)+B(710)+B(792)+B(794)+B(796)+B(798)+B(800)+B(802)+B(804)+B(806)& - &+B(839)+B(841)+B(846)+B(848)+B(853)+B(855)+B(873)+B(875)+B(879)+B(881)+B(887)+B(889)+B(892)+B(896)+B(923)& - &+B(925)+B(930)+B(932)+B(938)+B(940)+B(944)+B(946)+B(950)+B(952)+B(976)+B(978)+B(980)+B(982)+B(1009)+B(1011)& - &+B(1013)+B(1015)+B(1021)+B(1027)+B(1053)+B(1059)+B(1079)+0.438*B(1081)+B(1090)+B(1092)+B(1094)+B(1100)+0.995& - &*B(1151)+B(1174)+B(1202)+B(1213)+B(1498) +! JVS(217) = Jac_FULL(34,201) + JVS(217) = B(138) IF (DO_JVS(218)) & -! JVS(218) = Jac_FULL(31,281) - JVS(218) = B(42)+0.15*B(213)+B(416)+B(515)+0.13*B(1085)+0.13*B(1098)+0.13*B(1131)+0.15*B(1200) +! JVS(218) = Jac_FULL(34,204) + JVS(218) = B(1029)+B(1031) IF (DO_JVS(219)) & -! JVS(219) = Jac_FULL(31,285) - JVS(219) = B(516)+2*B(536)+B(556)+B(562)+B(564) +! JVS(219) = Jac_FULL(34,205) + JVS(219) = B(1040)+B(1042) IF (DO_JVS(220)) & -! JVS(220) = Jac_FULL(32,32) - JVS(220) = 0 +! JVS(220) = Jac_FULL(34,207) + JVS(220) = 0.13*B(1035)+B(1044) IF (DO_JVS(221)) & -! JVS(221) = Jac_FULL(32,38) - JVS(221) = 4*B(1345)+4*B(1346)+4*B(1347) +! JVS(221) = Jac_FULL(34,209) + JVS(221) = B(120) IF (DO_JVS(222)) & -! JVS(222) = Jac_FULL(32,40) - JVS(222) = 2*B(1339)+2*B(1340)+2*B(1341) +! JVS(222) = Jac_FULL(34,210) + JVS(222) = B(1175) IF (DO_JVS(223)) & -! JVS(223) = Jac_FULL(32,47) - JVS(223) = 3*B(1342)+3*B(1343)+3*B(1344) +! JVS(223) = Jac_FULL(34,215) + JVS(223) = B(658) IF (DO_JVS(224)) & -! JVS(224) = Jac_FULL(32,57) - JVS(224) = B(371)+B(373) +! JVS(224) = Jac_FULL(34,216) + JVS(224) = B(660) IF (DO_JVS(225)) & -! JVS(225) = Jac_FULL(32,62) - JVS(225) = B(395) +! JVS(225) = Jac_FULL(34,217) + JVS(225) = B(106)+B(520) IF (DO_JVS(226)) & -! JVS(226) = Jac_FULL(32,72) - JVS(226) = B(477)+2*B(1456) +! JVS(226) = Jac_FULL(34,222) + JVS(226) = B(959)+B(961) IF (DO_JVS(227)) & -! JVS(227) = Jac_FULL(32,75) - JVS(227) = B(1142) +! JVS(227) = Jac_FULL(34,225) + JVS(227) = B(646) IF (DO_JVS(228)) & -! JVS(228) = Jac_FULL(32,81) - JVS(228) = 0.17*B(443) +! JVS(228) = Jac_FULL(34,228) + JVS(228) = B(823)+B(825) IF (DO_JVS(229)) & -! JVS(229) = Jac_FULL(32,82) - JVS(229) = B(315) +! JVS(229) = Jac_FULL(34,229) + JVS(229) = B(829)+B(831) IF (DO_JVS(230)) & -! JVS(230) = Jac_FULL(32,90) - JVS(230) = 2*B(1479) +! JVS(230) = Jac_FULL(34,232) + JVS(230) = B(900)+B(902) IF (DO_JVS(231)) & -! JVS(231) = Jac_FULL(32,97) - JVS(231) = 0.56*B(437) +! JVS(231) = Jac_FULL(34,234) + JVS(231) = B(594)+B(596) IF (DO_JVS(232)) & -! JVS(232) = Jac_FULL(32,99) - JVS(232) = B(1197) +! JVS(232) = Jac_FULL(34,235) + JVS(232) = B(444) IF (DO_JVS(233)) & -! JVS(233) = Jac_FULL(32,107) - JVS(233) = B(475) +! JVS(233) = Jac_FULL(34,237) + JVS(233) = B(116) IF (DO_JVS(234)) & -! JVS(234) = Jac_FULL(32,109) - JVS(234) = 1.5*B(1187) +! JVS(234) = Jac_FULL(34,238) + JVS(234) = B(622) IF (DO_JVS(235)) & -! JVS(235) = Jac_FULL(32,112) - JVS(235) = B(143) +! JVS(235) = Jac_FULL(34,239) + JVS(235) = B(110)+B(522) IF (DO_JVS(236)) & -! JVS(236) = Jac_FULL(32,117) - JVS(236) = 1.258*B(1183) +! JVS(236) = Jac_FULL(34,241) + JVS(236) = 0.69*B(993) IF (DO_JVS(237)) & -! JVS(237) = Jac_FULL(32,131) - JVS(237) = B(1384) +! JVS(237) = Jac_FULL(34,244) + JVS(237) = B(750)+B(752)+B(754)+B(756) IF (DO_JVS(238)) & -! JVS(238) = Jac_FULL(32,135) - JVS(238) = B(8)+B(13) +! JVS(238) = Jac_FULL(34,245) + JVS(238) = B(742)+B(744)+B(746)+B(748) IF (DO_JVS(239)) & -! JVS(239) = Jac_FULL(32,136) - JVS(239) = B(1388) +! JVS(239) = Jac_FULL(34,246) + JVS(239) = B(930)+B(932) IF (DO_JVS(240)) & -! JVS(240) = Jac_FULL(32,137) - JVS(240) = B(1389) +! JVS(240) = Jac_FULL(34,247) + JVS(240) = B(926)+B(928) IF (DO_JVS(241)) & -! JVS(241) = Jac_FULL(32,138) - JVS(241) = B(1191)+1.5*B(1193) +! JVS(241) = Jac_FULL(34,249) + JVS(241) = 0.13*B(1048)+B(1050) IF (DO_JVS(242)) & -! JVS(242) = Jac_FULL(32,144) - JVS(242) = B(1)+B(6) +! JVS(242) = Jac_FULL(34,252) + JVS(242) = B(130) IF (DO_JVS(243)) & -! JVS(243) = Jac_FULL(32,145) - JVS(243) = B(1239) +! JVS(243) = Jac_FULL(34,254) + JVS(243) = B(132) IF (DO_JVS(244)) & -! JVS(244) = Jac_FULL(32,147) - JVS(244) = B(1392) +! JVS(244) = Jac_FULL(34,255) + JVS(244) = B(151)+0.15*B(207) IF (DO_JVS(245)) & -! JVS(245) = Jac_FULL(32,150) - JVS(245) = B(681)+B(685) +! JVS(245) = Jac_FULL(34,256) + JVS(245) = B(124)+B(126) IF (DO_JVS(246)) & -! JVS(246) = Jac_FULL(32,151) - JVS(246) = B(683)+B(687) +! JVS(246) = Jac_FULL(34,257) + JVS(246) = B(128) IF (DO_JVS(247)) & -! JVS(247) = Jac_FULL(32,155) - JVS(247) = B(1234) +! JVS(247) = Jac_FULL(34,258) + JVS(247) = B(134) IF (DO_JVS(248)) & -! JVS(248) = Jac_FULL(32,156) - JVS(248) = B(1220)+B(1222) +! JVS(248) = Jac_FULL(34,261) + JVS(248) = B(102)+0.13*B(1081) IF (DO_JVS(249)) & -! JVS(249) = Jac_FULL(32,157) - JVS(249) = B(266) +! JVS(249) = Jac_FULL(34,262) + JVS(249) = B(446) IF (DO_JVS(250)) & -! JVS(250) = Jac_FULL(32,165) - JVS(250) = B(691)+B(693) +! JVS(250) = Jac_FULL(34,265) + JVS(250) = B(67) IF (DO_JVS(251)) & -! JVS(251) = Jac_FULL(32,169) - JVS(251) = B(1261)+B(1263)+B(1265)+B(1266)+B(1268) +! JVS(251) = Jac_FULL(34,266) + JVS(251) = B(49)+B(514) IF (DO_JVS(252)) & -! JVS(252) = Jac_FULL(32,171) - JVS(252) = B(1397) +! JVS(252) = Jac_FULL(34,279) + JVS(252) = B(42)+B(50)+B(103)+B(107)+B(111)+B(117)+B(121)+B(125)+B(127)+B(129)+B(131)+B(133)+B(135)+B(139)+B(152)& + &+B(381)+B(595)+B(609)+B(623)+B(647)+B(659)+B(661)+B(743)+B(745)+B(747)+B(749)+B(751)+B(753)+B(755)+B(757)& + &+B(790)+B(792)+B(797)+B(799)+B(804)+B(806)+B(824)+B(826)+B(830)+B(832)+B(838)+B(840)+B(843)+B(847)+B(874)& + &+B(876)+B(881)+B(883)+B(889)+B(891)+B(895)+B(897)+B(901)+B(903)+B(927)+B(929)+B(931)+B(933)+B(960)+B(962)& + &+B(964)+B(966)+B(972)+B(978)+B(1004)+B(1010)+B(1030)+B(1032)+B(1041)+B(1043)+B(1045)+B(1051)+0.995*B(1102)& + &+B(1125)+B(1153)+B(1164)+B(1457) IF (DO_JVS(253)) & -! JVS(253) = Jac_FULL(32,172) - JVS(253) = B(1276) +! JVS(253) = Jac_FULL(34,284) + JVS(253) = B(43)+0.15*B(208)+0.02*B(377)+B(476)+0.13*B(1036)+0.13*B(1049)+0.13*B(1082)+0.15*B(1151) IF (DO_JVS(254)) & -! JVS(254) = Jac_FULL(32,173) - JVS(254) = B(411) +! JVS(254) = Jac_FULL(34,286) + JVS(254) = B(36)+B(68)+B(72)+B(305)+B(429)+B(445)+B(447)+B(575)+B(695)+B(697)+B(699)+B(701)+B(703)+0.69*B(994)+B(1060)& + &+B(1111)+B(1160)+B(1176) IF (DO_JVS(255)) & -! JVS(255) = Jac_FULL(32,174) - JVS(255) = 2*B(739)+B(1382) +! JVS(255) = Jac_FULL(34,290) + JVS(255) = B(477)+0.1*B(495)+B(515)+B(521)+B(523) IF (DO_JVS(256)) & -! JVS(256) = Jac_FULL(32,175) - JVS(256) = B(1152) +! JVS(256) = Jac_FULL(34,291) + JVS(256) = B(597)+B(611)+B(1162) IF (DO_JVS(257)) & -! JVS(257) = Jac_FULL(32,176) - JVS(257) = B(1203) +! JVS(257) = Jac_FULL(35,35) + JVS(257) = 0 IF (DO_JVS(258)) & -! JVS(258) = Jac_FULL(32,177) - JVS(258) = B(1393) +! JVS(258) = Jac_FULL(35,42) + JVS(258) = 4*B(1300)+4*B(1301)+4*B(1302) IF (DO_JVS(259)) & -! JVS(259) = Jac_FULL(32,178) - JVS(259) = B(1175) +! JVS(259) = Jac_FULL(35,44) + JVS(259) = 2*B(1294)+2*B(1295)+2*B(1296) IF (DO_JVS(260)) & -! JVS(260) = Jac_FULL(32,186) - JVS(260) = B(375)+B(377)+B(379) +! JVS(260) = Jac_FULL(35,49) + JVS(260) = 3*B(1297)+3*B(1298)+3*B(1299) IF (DO_JVS(261)) & -! JVS(261) = Jac_FULL(32,187) - JVS(261) = B(1214) +! JVS(261) = Jac_FULL(35,55) + JVS(261) = 0.1*B(420) IF (DO_JVS(262)) & -! JVS(262) = Jac_FULL(32,195) - JVS(262) = B(1398) +! JVS(262) = Jac_FULL(35,56) + JVS(262) = 0.05*B(422) IF (DO_JVS(263)) & -! JVS(263) = Jac_FULL(32,196) - JVS(263) = B(735)+2*B(737)+B(1383) +! JVS(263) = Jac_FULL(35,61) + JVS(263) = B(342) IF (DO_JVS(264)) & -! JVS(264) = Jac_FULL(32,198) - JVS(264) = B(1381) +! JVS(264) = Jac_FULL(35,62) + JVS(264) = B(1465) IF (DO_JVS(265)) & -! JVS(265) = Jac_FULL(32,199) - JVS(265) = B(1350)+B(1352)+B(1354)+B(1356) +! JVS(265) = Jac_FULL(35,63) + JVS(265) = B(1463) IF (DO_JVS(266)) & -! JVS(266) = Jac_FULL(32,205) - JVS(266) = B(1124) +! JVS(266) = Jac_FULL(35,66) + JVS(266) = B(358) IF (DO_JVS(267)) & -! JVS(267) = Jac_FULL(32,208) - JVS(267) = B(407) +! JVS(267) = Jac_FULL(35,75) + JVS(267) = B(438)+2*B(1415) IF (DO_JVS(268)) & -! JVS(268) = Jac_FULL(32,209) - JVS(268) = B(1395) +! JVS(268) = Jac_FULL(35,76) + JVS(268) = B(1093) IF (DO_JVS(269)) & -! JVS(269) = Jac_FULL(32,210) - JVS(269) = B(1390) +! JVS(269) = Jac_FULL(35,84) + JVS(269) = 0.19*B(404) IF (DO_JVS(270)) & -! JVS(270) = Jac_FULL(32,211) - JVS(270) = B(723) +! JVS(270) = Jac_FULL(35,90) + JVS(270) = B(286) IF (DO_JVS(271)) & -! JVS(271) = Jac_FULL(32,212) - JVS(271) = B(725) +! JVS(271) = Jac_FULL(35,92) + JVS(271) = 2*B(1438) IF (DO_JVS(272)) & -! JVS(272) = Jac_FULL(32,216) - JVS(272) = B(1387) +! JVS(272) = Jac_FULL(35,100) + JVS(272) = 0.56*B(398) IF (DO_JVS(273)) & -! JVS(273) = Jac_FULL(32,218) - JVS(273) = B(228) +! JVS(273) = Jac_FULL(35,101) + JVS(273) = B(1148) IF (DO_JVS(274)) & -! JVS(274) = Jac_FULL(32,220) - JVS(274) = B(753)+B(953) +! JVS(274) = Jac_FULL(35,111) + JVS(274) = B(436) IF (DO_JVS(275)) & -! JVS(275) = Jac_FULL(32,221) - JVS(275) = B(703) +! JVS(275) = Jac_FULL(35,114) + JVS(275) = B(140) IF (DO_JVS(276)) & -! JVS(276) = Jac_FULL(32,222) - JVS(276) = B(182) +! JVS(276) = Jac_FULL(35,115) + JVS(276) = 1.5*B(1138) IF (DO_JVS(277)) & -! JVS(277) = Jac_FULL(32,223) - JVS(277) = 2*B(601)+2*B(613)+2*B(615) +! JVS(277) = Jac_FULL(35,118) + JVS(277) = 1.258*B(1134) IF (DO_JVS(278)) & -! JVS(278) = Jac_FULL(32,228) - JVS(278) = B(230) +! JVS(278) = Jac_FULL(35,134) + JVS(278) = B(1343) IF (DO_JVS(279)) & -! JVS(279) = Jac_FULL(32,230) - JVS(279) = B(651) +! JVS(279) = Jac_FULL(35,138) + JVS(279) = B(8) IF (DO_JVS(280)) & -! JVS(280) = Jac_FULL(32,231) - JVS(280) = B(1292)+B(1294)+B(1296)+B(1298)+B(1300)+B(1302) +! JVS(280) = Jac_FULL(35,139) + JVS(280) = B(1347) IF (DO_JVS(281)) & -! JVS(281) = Jac_FULL(32,234) - JVS(281) = B(679) +! JVS(281) = Jac_FULL(35,140) + JVS(281) = B(1348) IF (DO_JVS(282)) & -! JVS(282) = Jac_FULL(32,237) - JVS(282) = B(1380) +! JVS(282) = Jac_FULL(35,142) + JVS(282) = B(1142)+1.5*B(1144) IF (DO_JVS(283)) & -! JVS(283) = Jac_FULL(32,238) - JVS(283) = B(1396) +! JVS(283) = Jac_FULL(35,147) + JVS(283) = B(1) IF (DO_JVS(284)) & -! JVS(284) = Jac_FULL(32,239) - JVS(284) = 2*B(1394) +! JVS(284) = Jac_FULL(35,148) + JVS(284) = B(1190) IF (DO_JVS(285)) & -! JVS(285) = Jac_FULL(32,240) - JVS(285) = B(971) +! JVS(285) = Jac_FULL(35,149) + JVS(285) = 0.44*B(396) IF (DO_JVS(286)) & -! JVS(286) = Jac_FULL(32,241) - JVS(286) = 0.001*B(962)+B(973) +! JVS(286) = Jac_FULL(35,151) + JVS(286) = B(1351) IF (DO_JVS(287)) & -! JVS(287) = Jac_FULL(32,244) - JVS(287) = B(1032) +! JVS(287) = Jac_FULL(35,154) + JVS(287) = B(632)+B(636) IF (DO_JVS(288)) & -! JVS(288) = Jac_FULL(32,245) - JVS(288) = B(1103) +! JVS(288) = Jac_FULL(35,155) + JVS(288) = B(634)+B(638) IF (DO_JVS(289)) & -! JVS(289) = Jac_FULL(32,247) - JVS(289) = B(1038)+B(1040) +! JVS(289) = Jac_FULL(35,159) + JVS(289) = B(1185) IF (DO_JVS(290)) & -! JVS(290) = Jac_FULL(32,254) - JVS(290) = B(216)+B(222) +! JVS(290) = Jac_FULL(35,160) + JVS(290) = B(1171)+B(1173) IF (DO_JVS(291)) & -! JVS(291) = Jac_FULL(32,255) - JVS(291) = B(156) +! JVS(291) = Jac_FULL(35,161) + JVS(291) = B(249) IF (DO_JVS(292)) & -! JVS(292) = Jac_FULL(32,256) - JVS(292) = B(335)+B(1314)+B(1316)+B(1318)+B(1320)+B(1322)+B(1324)+B(1326)+B(1443) +! JVS(292) = Jac_FULL(35,170) + JVS(292) = B(642)+B(644) IF (DO_JVS(293)) & -! JVS(293) = Jac_FULL(32,259) - JVS(293) = B(1280)+B(1282)+B(1284)+B(1286)+B(1288)+B(1290) +! JVS(293) = Jac_FULL(35,173) + JVS(293) = B(1214)+B(1216)+B(1218)+B(1219)+B(1221) IF (DO_JVS(294)) & -! JVS(294) = Jac_FULL(32,260) - JVS(294) = B(7)+B(14) +! JVS(294) = Jac_FULL(35,175) + JVS(294) = B(1356) IF (DO_JVS(295)) & -! JVS(295) = Jac_FULL(32,261) - JVS(295) = B(100) +! JVS(295) = Jac_FULL(35,176) + JVS(295) = B(1229) IF (DO_JVS(296)) & -! JVS(296) = Jac_FULL(32,262) - JVS(296) = B(96)+B(427) +! JVS(296) = Jac_FULL(35,177) + JVS(296) = B(374) IF (DO_JVS(297)) & -! JVS(297) = Jac_FULL(32,263) - JVS(297) = B(33)+B(469)+B(1254) +! JVS(297) = Jac_FULL(35,178) + JVS(297) = 2*B(690)+B(1341) IF (DO_JVS(298)) & -! JVS(298) = Jac_FULL(32,264) - JVS(298) = B(1366)+B(1368)+B(1370)+B(1372)+B(1477) +! JVS(298) = Jac_FULL(35,179) + JVS(298) = B(1103) IF (DO_JVS(299)) & -! JVS(299) = Jac_FULL(32,266) - JVS(299) = B(1358)+B(1360)+B(1362)+B(1364) +! JVS(299) = Jac_FULL(35,180) + JVS(299) = B(1154) IF (DO_JVS(300)) & -! JVS(300) = Jac_FULL(32,267) - JVS(300) = B(1304)+B(1306)+B(1308)+B(1310)+B(1312)+B(1460) +! JVS(300) = Jac_FULL(35,181) + JVS(300) = B(1352) IF (DO_JVS(301)) & -! JVS(301) = Jac_FULL(32,268) - JVS(301) = B(363)+B(369)+B(372)+B(374)+B(376)+B(378)+B(380)+2*B(391)+0.67*B(429)+0.65*B(431)+0.56*B(438)+0.17*B(444) +! JVS(301) = Jac_FULL(35,184) + JVS(301) = B(1126) IF (DO_JVS(302)) & -! JVS(302) = Jac_FULL(32,269) - JVS(302) = B(27)+B(85)+B(339)+B(387)+B(471)+B(473)+B(476)+B(478) +! JVS(302) = Jac_FULL(35,190) + JVS(302) = B(344) IF (DO_JVS(303)) & -! JVS(303) = Jac_FULL(32,270) - JVS(303) = 2*B(94)+2*B(399)+B(1204)+B(1223)+0.5*B(1257) +! JVS(303) = Jac_FULL(35,191) + JVS(303) = B(1165) IF (DO_JVS(304)) & -! JVS(304) = Jac_FULL(32,271) - JVS(304) = 0.67*B(430)+B(1264)+B(1277)+B(1281)+B(1297)+B(1305)+B(1317) +! JVS(304) = Jac_FULL(35,199) + JVS(304) = B(686)+2*B(688)+B(1342) IF (DO_JVS(305)) & -! JVS(305) = Jac_FULL(32,272) - JVS(305) = B(337)+0.65*B(432)+B(1283)+B(1303)+B(1307)+B(1315) +! JVS(305) = Jac_FULL(35,200) + JVS(305) = B(1357) IF (DO_JVS(306)) & -! JVS(306) = Jac_FULL(32,273) - JVS(306) = B(470)+B(472)+B(474)+2*B(517)+2*B(525)+2*B(526)+2*B(539)+2*B(541)+2*B(614)+2*B(616) +! JVS(306) = Jac_FULL(35,202) + JVS(306) = B(1340) IF (DO_JVS(307)) & -! JVS(307) = Jac_FULL(32,274) - JVS(307) = 2*B(327)+2*B(328)+B(340)+2*B(425)+2*B(540)+2*B(542)+2*B(602) +! JVS(307) = Jac_FULL(35,203) + JVS(307) = B(1303)+B(1304)+B(1309)+B(1311)+B(1313)+B(1315) IF (DO_JVS(308)) & -! JVS(308) = Jac_FULL(32,275) - JVS(308) = B(1285)+B(1299)+B(1323)+B(1351)+B(1359)+B(1367) +! JVS(308) = Jac_FULL(35,208) + JVS(308) = B(1075) IF (DO_JVS(309)) & -! JVS(309) = Jac_FULL(32,276) - JVS(309) = B(1287)+B(1301)+B(1325)+B(1353)+B(1361)+B(1369) +! JVS(309) = Jac_FULL(35,212) + JVS(309) = B(370) IF (DO_JVS(310)) & -! JVS(310) = Jac_FULL(32,277) - JVS(310) = B(2)+B(9)+B(17)+B(28)+B(29)+B(34)+B(217)+2*B(383)+2*B(392)+B(412)+B(652)+B(682)+B(684)+B(692)+B(736)+B(754)& - &+B(1033)+B(1039)+B(1143)+B(1192)+B(1221)+B(1235)+B(1240) +! JVS(310) = Jac_FULL(35,213) + JVS(310) = B(1354) IF (DO_JVS(311)) & -! JVS(311) = Jac_FULL(32,278) - JVS(311) = B(1267)+B(1289)+B(1293)+B(1309)+B(1319)+B(1355)+B(1363)+B(1371) +! JVS(311) = Jac_FULL(35,214) + JVS(311) = B(1349) IF (DO_JVS(312)) & -! JVS(312) = Jac_FULL(32,279) - JVS(312) = B(364)+B(1262) +! JVS(312) = Jac_FULL(35,215) + JVS(312) = B(674) IF (DO_JVS(313)) & -! JVS(313) = Jac_FULL(32,281) - JVS(313) = B(30)+B(81)+B(389) +! JVS(313) = Jac_FULL(35,216) + JVS(313) = B(676) IF (DO_JVS(314)) & -! JVS(314) = Jac_FULL(32,283) - JVS(314) = B(1269)+B(1291)+B(1295)+B(1311)+B(1321)+B(1357)+B(1365)+B(1373) +! JVS(314) = Jac_FULL(35,220) + JVS(314) = B(1346) IF (DO_JVS(315)) & -! JVS(315) = Jac_FULL(32,284) - JVS(315) = B(336)+B(338)+2*B(384)+B(388)+B(390)+B(396)+2*B(400)+2*B(401)+B(408)+2*B(426)+B(428)+2*B(518) +! JVS(315) = Jac_FULL(35,223) + JVS(315) = B(223) IF (DO_JVS(316)) & -! JVS(316) = Jac_FULL(32,286) - JVS(316) = B(3)+B(10)+B(18)+B(1313)+B(1327) +! JVS(316) = Jac_FULL(35,224) + JVS(316) = B(704)+B(904) IF (DO_JVS(317)) & -! JVS(317) = Jac_FULL(32,287) - JVS(317) = B(82)+B(86)+2*B(95)+B(97)+B(101)+B(144)+B(157)+B(183)+B(223)+B(229)+B(231)+B(267)+2*B(307)+B(316)+2*B(402)& - &+B(680)+B(686)+B(688)+B(694)+B(704)+B(724)+B(726)+2*B(738)+2*B(740)+B(954)+B(972)+B(974)+B(1041)+B(1104)& - &+B(1125)+B(1153)+B(1176)+1.258*B(1184)+1.5*B(1188)+1.5*B(1194)+B(1198)+B(1215)+B(1255)+B(1258)+2*B(1259)+2& - &*B(1260)+2*B(1413) +! JVS(317) = Jac_FULL(35,225) + JVS(317) = B(654) IF (DO_JVS(318)) & -! JVS(318) = Jac_FULL(33,33) - JVS(318) = 0 +! JVS(318) = Jac_FULL(35,226) + JVS(318) = B(179) IF (DO_JVS(319)) & -! JVS(319) = Jac_FULL(33,54) - JVS(319) = 0.364*B(1146) +! JVS(319) = Jac_FULL(35,227) + JVS(319) = 0.4*B(560)+0.88*B(568) IF (DO_JVS(320)) & -! JVS(320) = Jac_FULL(33,60) - JVS(320) = 0.2*B(1165) +! JVS(320) = Jac_FULL(35,233) + JVS(320) = B(225) IF (DO_JVS(321)) & -! JVS(321) = Jac_FULL(33,62) - JVS(321) = B(395)+B(1496) +! JVS(321) = Jac_FULL(35,234) + JVS(321) = B(602) IF (DO_JVS(322)) & -! JVS(322) = Jac_FULL(33,68) - JVS(322) = B(551) +! JVS(322) = Jac_FULL(35,235) + JVS(322) = B(1245)+B(1247)+B(1249)+B(1251)+B(1253)+B(1255) IF (DO_JVS(323)) & -! JVS(323) = Jac_FULL(33,73) - JVS(323) = B(549) +! JVS(323) = Jac_FULL(35,238) + JVS(323) = B(630) IF (DO_JVS(324)) & -! JVS(324) = Jac_FULL(33,76) - JVS(324) = 0.27*B(1167) +! JVS(324) = Jac_FULL(35,241) + JVS(324) = B(1339) IF (DO_JVS(325)) & -! JVS(325) = Jac_FULL(33,77) - JVS(325) = 0.3*B(1169) +! JVS(325) = Jac_FULL(35,242) + JVS(325) = B(1355) IF (DO_JVS(326)) & -! JVS(326) = Jac_FULL(33,99) - JVS(326) = B(1553) +! JVS(326) = Jac_FULL(35,243) + JVS(326) = 2*B(1353) IF (DO_JVS(327)) & -! JVS(327) = Jac_FULL(33,100) - JVS(327) = B(547) +! JVS(327) = Jac_FULL(35,246) + JVS(327) = B(924) IF (DO_JVS(328)) & -! JVS(328) = Jac_FULL(33,106) - JVS(328) = B(819) +! JVS(328) = Jac_FULL(35,247) + JVS(328) = B(922) IF (DO_JVS(329)) & -! JVS(329) = Jac_FULL(33,122) - JVS(329) = 0.888*B(1114)+B(1547) +! JVS(329) = Jac_FULL(35,248) + JVS(329) = B(983) IF (DO_JVS(330)) & -! JVS(330) = Jac_FULL(33,124) - JVS(330) = 0.23*B(813)+B(1533) +! JVS(330) = Jac_FULL(35,249) + JVS(330) = B(1054) IF (DO_JVS(331)) & -! JVS(331) = Jac_FULL(33,126) - JVS(331) = 0.42*B(811)+B(1532) +! JVS(331) = Jac_FULL(35,251) + JVS(331) = B(989)+B(991) IF (DO_JVS(332)) & -! JVS(332) = Jac_FULL(33,130) - JVS(332) = 0.84*B(1074) +! JVS(332) = Jac_FULL(35,253) + JVS(332) = B(211)+B(217) IF (DO_JVS(333)) & -! JVS(333) = Jac_FULL(33,133) - JVS(333) = 0.488*B(1086) +! JVS(333) = Jac_FULL(35,259) + JVS(333) = B(153) IF (DO_JVS(334)) & -! JVS(334) = Jac_FULL(33,145) - JVS(334) = 0.25*B(1237)+0.5*B(1239) +! JVS(334) = Jac_FULL(35,260) + JVS(334) = B(306)+B(1267)+B(1269)+B(1271)+B(1273)+B(1275)+B(1277)+B(1279)+B(1402) IF (DO_JVS(335)) & -! JVS(335) = Jac_FULL(33,146) - JVS(335) = 0.33*B(1020)+0.33*B(1022) +! JVS(335) = Jac_FULL(35,262) + JVS(335) = B(1233)+B(1235)+B(1237)+B(1239)+B(1241)+B(1243) IF (DO_JVS(336)) & -! JVS(336) = Jac_FULL(33,149) - JVS(336) = 0.25*B(1108) +! JVS(336) = Jac_FULL(35,263) + JVS(336) = B(93)+B(386) IF (DO_JVS(337)) & -! JVS(337) = Jac_FULL(33,150) - JVS(337) = 0.14*B(681) +! JVS(337) = Jac_FULL(35,264) + JVS(337) = B(97) IF (DO_JVS(338)) & -! JVS(338) = Jac_FULL(33,151) - JVS(338) = 0.14*B(683) +! JVS(338) = Jac_FULL(35,266) + JVS(338) = B(34)+B(430)+B(1205) IF (DO_JVS(339)) & -! JVS(339) = Jac_FULL(33,152) - JVS(339) = B(1066)+0.571*B(1519) +! JVS(339) = Jac_FULL(35,268) + JVS(339) = B(1292)+B(1293)+B(1325)+B(1327)+B(1329)+B(1331)+B(1436) IF (DO_JVS(340)) & -! JVS(340) = Jac_FULL(33,153) - JVS(340) = 0.25*B(829) +! JVS(340) = Jac_FULL(35,270) + JVS(340) = B(1305)+B(1306)+B(1317)+B(1319)+B(1321)+B(1323) IF (DO_JVS(341)) & -! JVS(341) = Jac_FULL(33,155) - JVS(341) = 0.25*B(1232)+0.5*B(1234) +! JVS(341) = Jac_FULL(35,271) + JVS(341) = B(1257)+B(1259)+B(1261)+B(1263)+B(1265)+B(1419) IF (DO_JVS(342)) & -! JVS(342) = Jac_FULL(33,158) - JVS(342) = 0.33*B(831) +! JVS(342) = Jac_FULL(35,272) + JVS(342) = B(334)+B(340)+B(343)+B(345)+B(356)+0.66*B(388)+0.6*B(390)+0.44*B(397)+0.56*B(399)+0.19*B(405)+0.1*B(421)& + &+0.05*B(423) IF (DO_JVS(343)) & -! JVS(343) = Jac_FULL(33,160) - JVS(343) = 0.75*B(1064)+0.875*B(1520) +! JVS(343) = Jac_FULL(35,274) + JVS(343) = 2*B(298)+2*B(299)+B(310)+2*B(384)+2*B(498)+2*B(500)+0.4*B(561) IF (DO_JVS(344)) & -! JVS(344) = Jac_FULL(33,161) - JVS(344) = 0.054*B(835) +! JVS(344) = Jac_FULL(35,275) + JVS(344) = 0.66*B(389)+B(1217)+B(1230)+B(1234)+B(1250)+B(1258)+B(1270) IF (DO_JVS(345)) & -! JVS(345) = Jac_FULL(33,165) - JVS(345) = 0.14*B(691) +! JVS(345) = Jac_FULL(35,276) + JVS(345) = B(2)+B(9)+B(17)+B(1266)+B(1280) IF (DO_JVS(346)) & -! JVS(346) = Jac_FULL(33,166) - JVS(346) = 2*B(1072)+B(1516) +! JVS(346) = Jac_FULL(35,277) + JVS(346) = B(1240)+B(1254)+B(1278)+B(1312)+B(1320)+B(1328) IF (DO_JVS(347)) & -! JVS(347) = Jac_FULL(33,167) - JVS(347) = 0.036*B(833) +! JVS(347) = Jac_FULL(35,278) + JVS(347) = B(335)+B(1215) IF (DO_JVS(348)) & -! JVS(348) = Jac_FULL(33,168) - JVS(348) = B(1132)+B(1513) +! JVS(348) = Jac_FULL(35,280) + JVS(348) = B(1220)+B(1242)+B(1246)+B(1262)+B(1272)+B(1314)+B(1322)+B(1330) IF (DO_JVS(349)) & -! JVS(349) = Jac_FULL(33,170) - JVS(349) = 1.5*B(817) +! JVS(349) = Jac_FULL(35,281) + JVS(349) = B(78)+B(82)+2*B(91)+B(94)+B(98)+B(141)+B(154)+B(180)+B(218)+B(224)+B(226)+B(250)+2*B(278)+B(287)+2*B(364)& + &+B(631)+B(637)+B(639)+B(645)+B(655)+B(675)+B(677)+2*B(689)+2*B(691)+B(905)+B(923)+B(925)+B(992)+B(1055)& + &+B(1076)+B(1104)+B(1127)+1.258*B(1135)+1.5*B(1139)+1.5*B(1145)+B(1149)+B(1166)+B(1206)+B(1211)+B(1212)& + &+B(1213)+2*B(1372) IF (DO_JVS(350)) & -! JVS(350) = Jac_FULL(33,171) - JVS(350) = 0.25*B(1050)+B(1525) +! JVS(350) = Jac_FULL(35,282) + JVS(350) = B(3)+B(10)+B(18)+B(28)+B(30)+B(35)+B(212)+2*B(348)+B(357)+B(375)+B(603)+B(633)+B(635)+B(643)+B(687)+B(705)& + &+B(984)+B(990)+B(1094)+B(1143)+B(1172)+B(1186)+B(1191) IF (DO_JVS(351)) & -! JVS(351) = Jac_FULL(33,181) - JVS(351) = 0.5*B(1517) +! JVS(351) = Jac_FULL(35,283) + JVS(351) = B(1238)+B(1252)+B(1276)+B(1310)+B(1318)+B(1326) IF (DO_JVS(352)) & -! JVS(352) = Jac_FULL(33,182) - JVS(352) = 0.45*B(807)+0.888*B(1530) +! JVS(352) = Jac_FULL(35,284) + JVS(352) = B(31)+B(79)+B(354) IF (DO_JVS(353)) & -! JVS(353) = Jac_FULL(33,184) - JVS(353) = 0.37*B(809)+0.818*B(1531) +! JVS(353) = Jac_FULL(35,285) + JVS(353) = B(431)+B(432)+B(434)+2*B(478)+2*B(486)+2*B(487)+2*B(499)+2*B(501)+0.88*B(569) IF (DO_JVS(354)) & -! JVS(354) = Jac_FULL(33,189) - JVS(354) = 0.638*B(815) +! JVS(354) = Jac_FULL(35,286) + JVS(354) = B(29)+B(83)+B(311)+B(352)+B(433)+B(435)+B(437)+B(439) IF (DO_JVS(355)) & -! JVS(355) = Jac_FULL(33,190) - JVS(355) = 0.52*B(884)+0.8*B(888)+2*B(890) +! JVS(355) = Jac_FULL(35,287) + JVS(355) = B(1222)+B(1244)+B(1248)+B(1264)+B(1274)+B(1316)+B(1324)+B(1332) IF (DO_JVS(356)) & -! JVS(356) = Jac_FULL(33,195) - JVS(356) = B(1524) +! JVS(356) = Jac_FULL(35,288) + JVS(356) = B(307)+B(308)+2*B(349)+B(353)+B(355)+B(359)+2*B(362)+2*B(365)+B(371)+2*B(385)+B(387)+2*B(479) IF (DO_JVS(357)) & -! JVS(357) = Jac_FULL(33,201) - JVS(357) = 0.507*B(1082)+B(1088)+0.86*B(1089) +! JVS(357) = Jac_FULL(35,289) + JVS(357) = B(309)+0.6*B(391)+B(1236)+B(1256)+B(1260)+B(1268) IF (DO_JVS(358)) & -! JVS(358) = Jac_FULL(33,202) - JVS(358) = B(1112)+B(1543)+0.122*B(1544) +! JVS(358) = Jac_FULL(35,291) + JVS(358) = 2*B(92)+2*B(363)+B(1155)+B(1174)+0.5*B(1210) IF (DO_JVS(359)) & -! JVS(359) = Jac_FULL(33,203) - JVS(359) = 0.325*B(1084)+0.65*B(1093) +! JVS(359) = Jac_FULL(36,36) + JVS(359) = 0 IF (DO_JVS(360)) & -! JVS(360) = Jac_FULL(33,205) - JVS(360) = B(1500) +! JVS(360) = Jac_FULL(36,58) + JVS(360) = 0.364*B(1097) IF (DO_JVS(361)) & -! JVS(361) = Jac_FULL(33,206) - JVS(361) = B(1556) +! JVS(361) = Jac_FULL(36,64) + JVS(361) = 0.2*B(1116) IF (DO_JVS(362)) & -! JVS(362) = Jac_FULL(33,209) - JVS(362) = B(1120)+B(1551) +! JVS(362) = Jac_FULL(36,66) + JVS(362) = B(358)+B(1455) IF (DO_JVS(363)) & -! JVS(363) = Jac_FULL(33,210) - JVS(363) = 0.6*B(917)+0.55*B(1537) +! JVS(363) = Jac_FULL(36,72) + JVS(363) = B(508) IF (DO_JVS(364)) & -! JVS(364) = Jac_FULL(33,216) - JVS(364) = 0.6*B(915)+0.55*B(1534) +! JVS(364) = Jac_FULL(36,78) + JVS(364) = B(510) IF (DO_JVS(365)) & -! JVS(365) = Jac_FULL(33,218) - JVS(365) = 2*B(224)+2*B(228)+2*B(1423)+2*B(1424)+B(1425) +! JVS(365) = Jac_FULL(36,79) + JVS(365) = 0.27*B(1118) IF (DO_JVS(366)) & -! JVS(366) = Jac_FULL(33,219) - JVS(366) = B(1420) +! JVS(366) = Jac_FULL(36,80) + JVS(366) = 0.3*B(1120) IF (DO_JVS(367)) & -! JVS(367) = Jac_FULL(33,220) - JVS(367) = 0.407*B(753)+0.6*B(759)+0.9*B(761) +! JVS(367) = Jac_FULL(36,101) + JVS(367) = B(1512) IF (DO_JVS(368)) & -! JVS(368) = Jac_FULL(33,224) - JVS(368) = B(869)+0.13*B(870)+0.2*B(872) +! JVS(368) = Jac_FULL(36,105) + JVS(368) = B(1061) IF (DO_JVS(369)) & -! JVS(369) = Jac_FULL(33,225) - JVS(369) = B(877)+0.2*B(878)+0.13*B(882) +! JVS(369) = Jac_FULL(36,109) + JVS(369) = B(770) IF (DO_JVS(370)) & -! JVS(370) = Jac_FULL(33,227) - JVS(370) = 0.77*B(1046)+0.77*B(1521) +! JVS(370) = Jac_FULL(36,125) + JVS(370) = 0.888*B(1065)+B(1506) IF (DO_JVS(371)) & -! JVS(371) = Jac_FULL(33,228) - JVS(371) = B(226)+B(230)+B(1426) +! JVS(371) = Jac_FULL(36,127) + JVS(371) = 0.23*B(764)+B(1492) IF (DO_JVS(372)) & -! JVS(372) = Jac_FULL(33,232) - JVS(372) = 0.505*B(218)+B(220)+B(1422) +! JVS(372) = Jac_FULL(36,129) + JVS(372) = 0.42*B(762)+B(1491) IF (DO_JVS(373)) & -! JVS(373) = Jac_FULL(33,236) - JVS(373) = 0.539*B(1018)+0.839*B(1541) +! JVS(373) = Jac_FULL(36,132) + JVS(373) = 0.84*B(1025) IF (DO_JVS(374)) & -! JVS(374) = Jac_FULL(33,242) - JVS(374) = 0.6*B(772)+B(779)+B(781)+0.5*B(785)+0.55*B(797) +! JVS(374) = Jac_FULL(36,136) + JVS(374) = 0.488*B(1037) IF (DO_JVS(375)) & -! JVS(375) = Jac_FULL(33,243) - JVS(375) = 0.9*B(774)+B(780)+B(782)+0.5*B(789)+0.55*B(805) +! JVS(375) = Jac_FULL(36,148) + JVS(375) = 0.25*B(1188)+0.5*B(1190)+0.05*B(1192) IF (DO_JVS(376)) & -! JVS(376) = Jac_FULL(33,244) - JVS(376) = 0.18*B(1032)+B(1427)+B(1428) +! JVS(376) = Jac_FULL(36,149) + JVS(376) = B(506) IF (DO_JVS(377)) & -! JVS(377) = Jac_FULL(33,246) - JVS(377) = 0.5*B(234) +! JVS(377) = Jac_FULL(36,150) + JVS(377) = 0.33*B(971)+0.33*B(973) IF (DO_JVS(378)) & -! JVS(378) = Jac_FULL(33,247) - JVS(378) = 0.036*B(1034)+0.12*B(1038)+0.68*B(1040)+B(1430) +! JVS(378) = Jac_FULL(36,153) + JVS(378) = 0.25*B(1059) IF (DO_JVS(379)) & -! JVS(379) = Jac_FULL(33,254) - JVS(379) = 0.56*B(216) +! JVS(379) = Jac_FULL(36,154) + JVS(379) = 0.14*B(632) IF (DO_JVS(380)) & -! JVS(380) = Jac_FULL(33,255) - JVS(380) = B(1418) +! JVS(380) = Jac_FULL(36,155) + JVS(380) = 0.14*B(634) IF (DO_JVS(381)) & -! JVS(381) = Jac_FULL(33,261) - JVS(381) = 0.05*B(98)+0.88*B(1415)+B(1416) +! JVS(381) = Jac_FULL(36,156) + JVS(381) = B(1017)+0.571*B(1478) IF (DO_JVS(382)) & -! JVS(382) = Jac_FULL(33,262) - JVS(382) = B(66)+B(96)+B(343)+B(427)+B(505)+B(1406)+B(1407) +! JVS(382) = Jac_FULL(36,157) + JVS(382) = 0.25*B(780) IF (DO_JVS(383)) & -! JVS(383) = Jac_FULL(33,263) - JVS(383) = 0.5*B(786)+0.5*B(790) +! JVS(383) = Jac_FULL(36,159) + JVS(383) = 0.26*B(1183)+0.5*B(1185) IF (DO_JVS(384)) & -! JVS(384) = Jac_FULL(33,269) - JVS(384) = B(67)+0.05*B(99)+0.505*B(219)+B(221)+2*B(225)+B(227)+0.5*B(235)+0.6*B(760)+0.9*B(762)+0.45*B(808)+0.37& - &*B(810)+0.42*B(812)+0.23*B(814)+0.638*B(816)+1.5*B(818)+B(820)+0.25*B(830)+0.33*B(832)+0.036*B(834)+0.054& - &*B(836)+0.6*B(916)+0.6*B(918)+0.539*B(1019)+0.036*B(1035)+0.77*B(1047)+0.25*B(1051)+0.75*B(1065)+B(1067)+2& - &*B(1073)+0.84*B(1075)+0.488*B(1087)+0.25*B(1109)+B(1113)+0.888*B(1115)+B(1121)+B(1133)+0.364*B(1147)+0.2& - &*B(1166)+0.27*B(1168)+0.3*B(1170)+0.25*B(1233)+0.25*B(1238) +! JVS(384) = Jac_FULL(36,162) + JVS(384) = 0.33*B(782) IF (DO_JVS(385)) & -! JVS(385) = Jac_FULL(33,277) - JVS(385) = 0.56*B(217)+0.14*B(682)+0.14*B(684)+0.14*B(692)+0.407*B(754)+0.18*B(1033)+0.12*B(1039)+0.5*B(1235)+0.5& - &*B(1240) +! JVS(385) = Jac_FULL(36,163) + JVS(385) = 0.75*B(1015)+0.875*B(1479) IF (DO_JVS(386)) & -! JVS(386) = Jac_FULL(33,280) - JVS(386) = 0.55*B(798)+0.55*B(806)+0.2*B(873)+0.2*B(879)+0.8*B(889)+0.33*B(1021)+0.86*B(1090)+0.65*B(1094) +! JVS(386) = Jac_FULL(36,165) + JVS(386) = 0.054*B(786) IF (DO_JVS(387)) & -! JVS(387) = Jac_FULL(33,281) - JVS(387) = 0.13*B(871)+0.13*B(883)+0.52*B(885)+0.33*B(1023)+0.507*B(1083)+0.325*B(1085) +! JVS(387) = Jac_FULL(36,169) + JVS(387) = 2*B(1023)+B(1475) IF (DO_JVS(388)) & -! JVS(388) = Jac_FULL(33,282) - JVS(388) = B(344) +! JVS(388) = Jac_FULL(36,170) + JVS(388) = 0.14*B(642) IF (DO_JVS(389)) & -! JVS(389) = Jac_FULL(33,284) - JVS(389) = B(396)+B(428) +! JVS(389) = Jac_FULL(36,171) + JVS(389) = 0.036*B(784) IF (DO_JVS(390)) & -! JVS(390) = Jac_FULL(33,285) - JVS(390) = B(506)+B(548)+B(550)+B(552) +! JVS(390) = Jac_FULL(36,172) + JVS(390) = B(1083)+B(1472) IF (DO_JVS(391)) & -! JVS(391) = Jac_FULL(33,287) - JVS(391) = B(97)+2*B(229)+B(231)+0.68*B(1041) +! JVS(391) = Jac_FULL(36,174) + JVS(391) = 1.5*B(768) IF (DO_JVS(392)) & -! JVS(392) = Jac_FULL(34,34) - JVS(392) = 0 +! JVS(392) = Jac_FULL(36,175) + JVS(392) = 0.25*B(1001)+B(1484) IF (DO_JVS(393)) & -! JVS(393) = Jac_FULL(34,191) - JVS(393) = B(655) +! JVS(393) = Jac_FULL(36,185) + JVS(393) = B(1021)+0.5*B(1476) IF (DO_JVS(394)) & -! JVS(394) = Jac_FULL(34,230) - JVS(394) = B(641) +! JVS(394) = Jac_FULL(36,186) + JVS(394) = 0.45*B(758)+0.888*B(1489) IF (DO_JVS(395)) & -! JVS(395) = Jac_FULL(34,258) - JVS(395) = B(44)+B(642)+B(656) +! JVS(395) = Jac_FULL(36,188) + JVS(395) = 0.37*B(760)+0.818*B(1490) IF (DO_JVS(396)) & -! JVS(396) = Jac_FULL(34,269) - JVS(396) = B(45) +! JVS(396) = Jac_FULL(36,192) + JVS(396) = 0.638*B(766) IF (DO_JVS(397)) & -! JVS(397) = Jac_FULL(35,35) - JVS(397) = 0 +! JVS(397) = Jac_FULL(36,194) + JVS(397) = 0.52*B(835)+0.8*B(839)+2*B(841) IF (DO_JVS(398)) & -! JVS(398) = Jac_FULL(35,85) - JVS(398) = 2*B(23) +! JVS(398) = Jac_FULL(36,200) + JVS(398) = B(1483) IF (DO_JVS(399)) & -! JVS(399) = Jac_FULL(35,144) - JVS(399) = B(1) +! JVS(399) = Jac_FULL(36,205) + JVS(399) = 0.507*B(1033)+B(1039)+0.86*B(1040) IF (DO_JVS(400)) & -! JVS(400) = Jac_FULL(35,191) - JVS(400) = B(661) +! JVS(400) = Jac_FULL(36,206) + JVS(400) = B(1063)+B(1502)+0.163*B(1503) IF (DO_JVS(401)) & -! JVS(401) = Jac_FULL(35,208) - JVS(401) = B(15) +! JVS(401) = Jac_FULL(36,207) + JVS(401) = 0.325*B(1035)+0.65*B(1044) IF (DO_JVS(402)) & -! JVS(402) = Jac_FULL(35,230) - JVS(402) = B(653) +! JVS(402) = Jac_FULL(36,208) + JVS(402) = B(1459) IF (DO_JVS(403)) & -! JVS(403) = Jac_FULL(35,256) - JVS(403) = B(1326) +! JVS(403) = Jac_FULL(36,210) + JVS(403) = 0.15*B(1175)+0.15*B(1177)+B(1515) IF (DO_JVS(404)) & -! JVS(404) = Jac_FULL(35,267) - JVS(404) = B(1312) +! JVS(404) = Jac_FULL(36,213) + JVS(404) = B(1071)+B(1510) IF (DO_JVS(405)) & -! JVS(405) = Jac_FULL(35,269) - JVS(405) = 2*B(24)+B(317) +! JVS(405) = Jac_FULL(36,214) + JVS(405) = 0.6*B(868)+0.55*B(1496) IF (DO_JVS(406)) & -! JVS(406) = Jac_FULL(35,277) - JVS(406) = B(2)+B(17) +! JVS(406) = Jac_FULL(36,220) + JVS(406) = 0.6*B(866)+0.55*B(1493) IF (DO_JVS(407)) & -! JVS(407) = Jac_FULL(35,286) - JVS(407) = B(3)+B(16)+B(18)+B(19)+B(318)+B(654)+B(662)+B(1313)+B(1327) +! JVS(407) = Jac_FULL(36,221) + JVS(407) = B(1379) IF (DO_JVS(408)) & -! JVS(408) = Jac_FULL(36,36) - JVS(408) = 0 +! JVS(408) = Jac_FULL(36,223) + JVS(408) = 2*B(219)+2*B(223)+2*B(1382)+2*B(1383)+B(1384) IF (DO_JVS(409)) & -! JVS(409) = Jac_FULL(36,186) - JVS(409) = B(46)+B(375)+B(377)+B(379)+B(503) +! JVS(409) = Jac_FULL(36,224) + JVS(409) = 0.407*B(704)+0.6*B(710)+0.9*B(712) IF (DO_JVS(410)) & -! JVS(410) = Jac_FULL(36,268) - JVS(410) = B(376)+B(378)+B(380) +! JVS(410) = Jac_FULL(36,228) + JVS(410) = B(820)+0.13*B(821)+0.2*B(823) IF (DO_JVS(411)) & -! JVS(411) = Jac_FULL(36,269) - JVS(411) = B(47) +! JVS(411) = Jac_FULL(36,229) + JVS(411) = B(828)+0.2*B(829)+0.13*B(833) IF (DO_JVS(412)) & -! JVS(412) = Jac_FULL(36,285) - JVS(412) = B(504) +! JVS(412) = Jac_FULL(36,231) + JVS(412) = 0.77*B(997)+0.77*B(1480) IF (DO_JVS(413)) & -! JVS(413) = Jac_FULL(37,37) - JVS(413) = 0 +! JVS(413) = Jac_FULL(36,233) + JVS(413) = B(221)+B(225)+B(1385) IF (DO_JVS(414)) & -! JVS(414) = Jac_FULL(37,150) - JVS(414) = 0.02*B(681) +! JVS(414) = Jac_FULL(36,236) + JVS(414) = 0.505*B(213)+B(215)+B(1381) IF (DO_JVS(415)) & -! JVS(415) = Jac_FULL(37,151) - JVS(415) = 0.02*B(683) +! JVS(415) = Jac_FULL(36,240) + JVS(415) = 0.539*B(969)+0.839*B(1500) IF (DO_JVS(416)) & -! JVS(416) = Jac_FULL(37,165) - JVS(416) = 0.02*B(691) +! JVS(416) = Jac_FULL(36,244) + JVS(416) = 0.9*B(725)+B(731)+B(732)+0.5*B(740)+0.55*B(756) IF (DO_JVS(417)) & -! JVS(417) = Jac_FULL(37,191) - JVS(417) = B(663) +! JVS(417) = Jac_FULL(36,245) + JVS(417) = 0.6*B(723)+B(730)+B(733)+0.5*B(736)+0.55*B(748) IF (DO_JVS(418)) & -! JVS(418) = Jac_FULL(37,220) - JVS(418) = 0.013*B(753) +! JVS(418) = Jac_FULL(36,248) + JVS(418) = 0.28*B(983)+B(1386)+B(1387) IF (DO_JVS(419)) & -! JVS(419) = Jac_FULL(37,230) - JVS(419) = 0.06*B(647)+0.06*B(649) +! JVS(419) = Jac_FULL(36,250) + JVS(419) = 0.5*B(229) IF (DO_JVS(420)) & -! JVS(420) = Jac_FULL(37,244) - JVS(420) = 0.045*B(1032) +! JVS(420) = Jac_FULL(36,251) + JVS(420) = 0.036*B(985)+0.12*B(989)+0.68*B(991)+B(1389) IF (DO_JVS(421)) & -! JVS(421) = Jac_FULL(37,269) - JVS(421) = B(36) +! JVS(421) = Jac_FULL(36,253) + JVS(421) = 0.56*B(211) IF (DO_JVS(422)) & -! JVS(422) = Jac_FULL(37,277) - JVS(422) = 0.02*B(682)+0.02*B(684)+0.02*B(692)+0.013*B(754)+0.045*B(1033) +! JVS(422) = Jac_FULL(36,259) + JVS(422) = B(1377) IF (DO_JVS(423)) & -! JVS(423) = Jac_FULL(37,279) - JVS(423) = 0.06*B(648)+0.06*B(650)+B(664) +! JVS(423) = Jac_FULL(36,263) + JVS(423) = B(63)+B(93)+B(314)+B(386)+B(466)+B(1365)+B(1366) IF (DO_JVS(424)) & -! JVS(424) = Jac_FULL(37,281) - JVS(424) = B(43) +! JVS(424) = Jac_FULL(36,264) + JVS(424) = 0.05*B(95)+0.88*B(1374)+B(1375) IF (DO_JVS(425)) & -! JVS(425) = Jac_FULL(38,38) - JVS(425) = -B(608)-B(1345)-B(1346)-B(1347)-B(1488) +! JVS(425) = Jac_FULL(36,266) + JVS(425) = 0.5*B(737)+0.5*B(741) IF (DO_JVS(426)) & -! JVS(426) = Jac_FULL(38,90) - JVS(426) = B(607) +! JVS(426) = Jac_FULL(36,273) + JVS(426) = B(315) IF (DO_JVS(427)) & -! JVS(427) = Jac_FULL(39,39) - JVS(427) = -B(493)-B(1461) +! JVS(427) = Jac_FULL(36,279) + JVS(427) = 0.55*B(749)+0.55*B(757)+0.2*B(824)+0.2*B(830)+0.8*B(840)+0.33*B(972)+0.86*B(1041)+0.65*B(1045) IF (DO_JVS(428)) & -! JVS(428) = Jac_FULL(39,269) - JVS(428) = -B(494) +! JVS(428) = Jac_FULL(36,281) + JVS(428) = B(94)+2*B(224)+B(226)+0.68*B(992)+0.15*B(1178) IF (DO_JVS(429)) & -! JVS(429) = Jac_FULL(40,40) - JVS(429) = -B(633)-B(634)-B(1339)-B(1340)-B(1341)-B(1483) +! JVS(429) = Jac_FULL(36,282) + JVS(429) = 0.56*B(212)+0.14*B(633)+0.14*B(635)+0.14*B(643)+0.407*B(705)+0.28*B(984)+0.12*B(990)+0.5*B(1186)+0.5& + &*B(1191) IF (DO_JVS(430)) & -! JVS(430) = Jac_FULL(40,223) - JVS(430) = B(632) +! JVS(430) = Jac_FULL(36,284) + JVS(430) = 0.13*B(822)+0.13*B(834)+0.52*B(836)+0.33*B(974)+0.507*B(1034)+0.325*B(1036) IF (DO_JVS(431)) & -! JVS(431) = Jac_FULL(41,41) - JVS(431) = -B(742) +! JVS(431) = Jac_FULL(36,286) + JVS(431) = B(64)+0.05*B(96)+0.505*B(214)+B(216)+2*B(220)+B(222)+0.5*B(230)+0.6*B(711)+0.9*B(713)+0.45*B(759)+0.37& + &*B(761)+0.42*B(763)+0.23*B(765)+0.638*B(767)+1.5*B(769)+B(771)+0.25*B(781)+0.33*B(783)+0.036*B(785)+0.054& + &*B(787)+0.6*B(867)+0.6*B(869)+0.539*B(970)+0.036*B(986)+0.77*B(998)+0.25*B(1002)+0.75*B(1016)+B(1018)& + &+B(1022)+2*B(1024)+0.84*B(1026)+0.488*B(1038)+0.25*B(1060)+B(1062)+B(1064)+0.888*B(1066)+B(1072)+B(1084)& + &+0.364*B(1098)+0.2*B(1117)+0.27*B(1119)+0.3*B(1121)+0.15*B(1176)+0.26*B(1184)+0.25*B(1189) IF (DO_JVS(432)) & -! JVS(432) = Jac_FULL(41,131) - JVS(432) = B(1384) +! JVS(432) = Jac_FULL(36,288) + JVS(432) = B(359)+B(387) IF (DO_JVS(433)) & -! JVS(433) = Jac_FULL(41,174) - JVS(433) = B(1382) +! JVS(433) = Jac_FULL(36,290) + JVS(433) = B(467)+B(507)+B(509)+B(511) IF (DO_JVS(434)) & -! JVS(434) = Jac_FULL(41,196) - JVS(434) = B(1383) +! JVS(434) = Jac_FULL(37,37) + JVS(434) = 0 IF (DO_JVS(435)) & -! JVS(435) = Jac_FULL(42,42) - JVS(435) = -0.75*B(461)-B(1466) +! JVS(435) = Jac_FULL(37,195) + JVS(435) = B(606) IF (DO_JVS(436)) & -! JVS(436) = Jac_FULL(42,268) - JVS(436) = -0.75*B(462) +! JVS(436) = Jac_FULL(37,234) + JVS(436) = B(592) IF (DO_JVS(437)) & -! JVS(437) = Jac_FULL(43,43) - JVS(437) = -B(635)-B(1484) +! JVS(437) = Jac_FULL(37,267) + JVS(437) = B(45)+B(593)+B(607) IF (DO_JVS(438)) & -! JVS(438) = Jac_FULL(43,269) - JVS(438) = -B(636) +! JVS(438) = Jac_FULL(37,286) + JVS(438) = B(46) IF (DO_JVS(439)) & -! JVS(439) = Jac_FULL(44,44) - JVS(439) = -0.41*B(451)-B(1472) +! JVS(439) = Jac_FULL(38,38) + JVS(439) = 0 IF (DO_JVS(440)) & -! JVS(440) = Jac_FULL(44,268) - JVS(440) = -0.41*B(452) +! JVS(440) = Jac_FULL(38,86) + JVS(440) = 2*B(23) IF (DO_JVS(441)) & -! JVS(441) = Jac_FULL(45,45) - JVS(441) = -0.75*B(465)-B(1474) +! JVS(441) = Jac_FULL(38,147) + JVS(441) = B(1) IF (DO_JVS(442)) & -! JVS(442) = Jac_FULL(45,268) - JVS(442) = -0.75*B(466) +! JVS(442) = Jac_FULL(38,195) + JVS(442) = B(612) IF (DO_JVS(443)) & -! JVS(443) = Jac_FULL(46,46) - JVS(443) = -0.3*B(463)-B(1467) +! JVS(443) = Jac_FULL(38,212) + JVS(443) = B(15) IF (DO_JVS(444)) & -! JVS(444) = Jac_FULL(46,268) - JVS(444) = -0.3*B(464) +! JVS(444) = Jac_FULL(38,234) + JVS(444) = B(604) IF (DO_JVS(445)) & -! JVS(445) = Jac_FULL(47,47) - JVS(445) = -B(1342)-B(1343)-B(1344)-B(1489) +! JVS(445) = Jac_FULL(38,260) + JVS(445) = B(1279) IF (DO_JVS(446)) & -! JVS(446) = Jac_FULL(47,90) - JVS(446) = B(605) +! JVS(446) = Jac_FULL(38,271) + JVS(446) = B(1265) IF (DO_JVS(447)) & -! JVS(447) = Jac_FULL(47,223) - JVS(447) = B(606) +! JVS(447) = Jac_FULL(38,276) + JVS(447) = B(2)+B(16)+B(17)+B(19)+2*B(24)+B(288)+B(605)+B(613)+B(1266)+B(1280) IF (DO_JVS(448)) & -! JVS(448) = Jac_FULL(48,48) - JVS(448) = -0.75*B(459)-B(1465) +! JVS(448) = Jac_FULL(38,282) + JVS(448) = B(3)+B(18) IF (DO_JVS(449)) & -! JVS(449) = Jac_FULL(48,268) - JVS(449) = -0.75*B(460) +! JVS(449) = Jac_FULL(38,286) + JVS(449) = 2*B(25)+B(289) IF (DO_JVS(450)) & -! JVS(450) = Jac_FULL(49,49) - JVS(450) = -B(153) +! JVS(450) = Jac_FULL(39,39) + JVS(450) = 0 IF (DO_JVS(451)) & -! JVS(451) = Jac_FULL(49,250) - JVS(451) = B(151) +! JVS(451) = Jac_FULL(39,190) + JVS(451) = B(47)+B(344)+B(464) IF (DO_JVS(452)) & -! JVS(452) = Jac_FULL(49,270) - JVS(452) = B(152) +! JVS(452) = Jac_FULL(39,272) + JVS(452) = B(345) IF (DO_JVS(453)) & -! JVS(453) = Jac_FULL(50,50) - JVS(453) = -B(1446) +! JVS(453) = Jac_FULL(39,286) + JVS(453) = B(48) IF (DO_JVS(454)) & -! JVS(454) = Jac_FULL(50,270) - JVS(454) = B(353) +! JVS(454) = Jac_FULL(39,290) + JVS(454) = B(465) IF (DO_JVS(455)) & -! JVS(455) = Jac_FULL(50,282) - JVS(455) = B(354) +! JVS(455) = Jac_FULL(40,40) + JVS(455) = 0 IF (DO_JVS(456)) & -! JVS(456) = Jac_FULL(51,51) - JVS(456) = -0.86*B(435)-B(1462) +! JVS(456) = Jac_FULL(40,154) + JVS(456) = 0.02*B(632) IF (DO_JVS(457)) & -! JVS(457) = Jac_FULL(51,268) - JVS(457) = -0.86*B(436) +! JVS(457) = Jac_FULL(40,155) + JVS(457) = 0.02*B(634) IF (DO_JVS(458)) & -! JVS(458) = Jac_FULL(52,52) - JVS(458) = -0.88*B(445)-B(1463) +! JVS(458) = Jac_FULL(40,170) + JVS(458) = 0.02*B(642) IF (DO_JVS(459)) & -! JVS(459) = Jac_FULL(52,268) - JVS(459) = -0.88*B(446) +! JVS(459) = Jac_FULL(40,195) + JVS(459) = B(614) IF (DO_JVS(460)) & -! JVS(460) = Jac_FULL(53,53) - JVS(460) = -0.86*B(447)-B(1464) +! JVS(460) = Jac_FULL(40,224) + JVS(460) = 0.013*B(704) IF (DO_JVS(461)) & -! JVS(461) = Jac_FULL(53,268) - JVS(461) = -0.86*B(448) +! JVS(461) = Jac_FULL(40,234) + JVS(461) = 0.06*B(598)+0.06*B(600) IF (DO_JVS(462)) & -! JVS(462) = Jac_FULL(54,54) - JVS(462) = -B(1146) +! JVS(462) = Jac_FULL(40,248) + JVS(462) = 0.045*B(983) IF (DO_JVS(463)) & -! JVS(463) = Jac_FULL(54,269) - JVS(463) = -B(1147) +! JVS(463) = Jac_FULL(40,278) + JVS(463) = 0.06*B(599)+0.06*B(601)+B(615) IF (DO_JVS(464)) & -! JVS(464) = Jac_FULL(55,55) - JVS(464) = -0.64*B(449)-B(1473) +! JVS(464) = Jac_FULL(40,282) + JVS(464) = 0.02*B(633)+0.02*B(635)+0.02*B(643)+0.013*B(705)+0.045*B(984) IF (DO_JVS(465)) & -! JVS(465) = Jac_FULL(55,268) - JVS(465) = -0.64*B(450) +! JVS(465) = Jac_FULL(40,284) + JVS(465) = B(44) IF (DO_JVS(466)) & -! JVS(466) = Jac_FULL(56,56) - JVS(466) = -2*B(587)-B(1480) +! JVS(466) = Jac_FULL(40,286) + JVS(466) = B(37) IF (DO_JVS(467)) & -! JVS(467) = Jac_FULL(56,265) - JVS(467) = B(585) +! JVS(467) = Jac_FULL(41,41) + JVS(467) = -B(1207) IF (DO_JVS(468)) & -! JVS(468) = Jac_FULL(56,280) - JVS(468) = B(586) +! JVS(468) = Jac_FULL(41,286) + JVS(468) = -B(1208) IF (DO_JVS(469)) & -! JVS(469) = Jac_FULL(57,57) - JVS(469) = -B(371)-B(373)-B(1495) +! JVS(469) = Jac_FULL(42,42) + JVS(469) = -B(565)-B(1300)-B(1301)-B(1302)-B(1447) IF (DO_JVS(470)) & -! JVS(470) = Jac_FULL(57,61) - JVS(470) = B(423) +! JVS(470) = Jac_FULL(42,92) + JVS(470) = B(564) IF (DO_JVS(471)) & -! JVS(471) = Jac_FULL(57,268) - JVS(471) = -B(372)-B(374) +! JVS(471) = Jac_FULL(43,43) + JVS(471) = -B(454)-B(1420) IF (DO_JVS(472)) & -! JVS(472) = Jac_FULL(57,270) - JVS(472) = B(424) +! JVS(472) = Jac_FULL(43,286) + JVS(472) = -B(455) IF (DO_JVS(473)) & -! JVS(473) = Jac_FULL(58,58) - JVS(473) = -B(1506)-B(1507) +! JVS(473) = Jac_FULL(44,44) + JVS(473) = -B(585)-B(1294)-B(1295)-B(1296)-B(1442) IF (DO_JVS(474)) & -! JVS(474) = Jac_FULL(58,144) - JVS(474) = B(6) +! JVS(474) = Jac_FULL(44,227) + JVS(474) = 0.6*B(584) IF (DO_JVS(475)) & -! JVS(475) = Jac_FULL(58,260) - JVS(475) = B(7) +! JVS(475) = Jac_FULL(45,45) + JVS(475) = -B(693) IF (DO_JVS(476)) & -! JVS(476) = Jac_FULL(58,287) - JVS(476) = B(1259) +! JVS(476) = Jac_FULL(45,134) + JVS(476) = B(1343) IF (DO_JVS(477)) & -! JVS(477) = Jac_FULL(59,59) - JVS(477) = -B(1504)-B(1505) +! JVS(477) = Jac_FULL(45,178) + JVS(477) = B(1341) IF (DO_JVS(478)) & -! JVS(478) = Jac_FULL(59,135) - JVS(478) = B(13) +! JVS(478) = Jac_FULL(45,199) + JVS(478) = B(1342) IF (DO_JVS(479)) & -! JVS(479) = Jac_FULL(59,260) - JVS(479) = B(14) +! JVS(479) = Jac_FULL(46,46) + JVS(479) = -B(586)-B(1443) IF (DO_JVS(480)) & -! JVS(480) = Jac_FULL(59,287) - JVS(480) = B(1260) +! JVS(480) = Jac_FULL(46,286) + JVS(480) = -B(587) IF (DO_JVS(481)) & -! JVS(481) = Jac_FULL(60,60) - JVS(481) = -B(1165) +! JVS(481) = Jac_FULL(47,47) + JVS(481) = -0.45*B(412)-B(1431) IF (DO_JVS(482)) & -! JVS(482) = Jac_FULL(60,269) - JVS(482) = -B(1166) +! JVS(482) = Jac_FULL(47,272) + JVS(482) = -0.45*B(413) IF (DO_JVS(483)) & -! JVS(483) = Jac_FULL(61,61) - JVS(483) = -B(419)-B(421)-B(423) +! JVS(483) = Jac_FULL(48,48) + JVS(483) = -0.75*B(426)-B(1433) IF (DO_JVS(484)) & -! JVS(484) = Jac_FULL(61,270) - JVS(484) = -B(424) +! JVS(484) = Jac_FULL(48,272) + JVS(484) = -0.75*B(427) IF (DO_JVS(485)) & -! JVS(485) = Jac_FULL(61,280) - JVS(485) = -B(422)+B(1498) +! JVS(485) = Jac_FULL(49,49) + JVS(485) = -B(1297)-B(1298)-B(1299)-B(1448) IF (DO_JVS(486)) & -! JVS(486) = Jac_FULL(62,62) - JVS(486) = -B(395)-B(397)-B(1496) +! JVS(486) = Jac_FULL(49,92) + JVS(486) = B(562) IF (DO_JVS(487)) & -! JVS(487) = Jac_FULL(62,269) - JVS(487) = -B(398) +! JVS(487) = Jac_FULL(49,227) + JVS(487) = B(563) IF (DO_JVS(488)) & -! JVS(488) = Jac_FULL(62,284) - JVS(488) = -B(396) +! JVS(488) = Jac_FULL(50,50) + JVS(488) = -B(150) IF (DO_JVS(489)) & -! JVS(489) = Jac_FULL(63,63) - JVS(489) = -B(104)-B(1417) +! JVS(489) = Jac_FULL(50,255) + JVS(489) = B(148) IF (DO_JVS(490)) & -! JVS(490) = Jac_FULL(63,257) - JVS(490) = B(102) +! JVS(490) = Jac_FULL(50,291) + JVS(490) = B(149) IF (DO_JVS(491)) & -! JVS(491) = Jac_FULL(63,270) - JVS(491) = B(103) +! JVS(491) = Jac_FULL(51,51) + JVS(491) = -B(1405) IF (DO_JVS(492)) & -! JVS(492) = Jac_FULL(64,64) - JVS(492) = -B(1159) +! JVS(492) = Jac_FULL(51,273) + JVS(492) = B(324) IF (DO_JVS(493)) & -! JVS(493) = Jac_FULL(64,175) - JVS(493) = 0.005*B(1150) +! JVS(493) = Jac_FULL(51,291) + JVS(493) = B(325) IF (DO_JVS(494)) & -! JVS(494) = Jac_FULL(64,269) - JVS(494) = -B(1160) +! JVS(494) = Jac_FULL(52,52) + JVS(494) = -0.79*B(394)-B(1421) IF (DO_JVS(495)) & -! JVS(495) = Jac_FULL(64,280) - JVS(495) = 0.005*B(1151) +! JVS(495) = Jac_FULL(52,272) + JVS(495) = -0.79*B(395) IF (DO_JVS(496)) & -! JVS(496) = Jac_FULL(65,65) - JVS(496) = -B(623)-B(1336)-B(1337)-B(1338) +! JVS(496) = Jac_FULL(53,53) + JVS(496) = -0.9*B(406)-B(1422) IF (DO_JVS(497)) & -! JVS(497) = Jac_FULL(65,265) - JVS(497) = B(619) +! JVS(497) = Jac_FULL(53,272) + JVS(497) = -0.9*B(407) IF (DO_JVS(498)) & -! JVS(498) = Jac_FULL(65,269) - JVS(498) = -B(624) +! JVS(498) = Jac_FULL(54,54) + JVS(498) = -0.86*B(408)-B(1423) IF (DO_JVS(499)) & -! JVS(499) = Jac_FULL(65,281) - JVS(499) = B(620) +! JVS(499) = Jac_FULL(54,272) + JVS(499) = -0.86*B(409) IF (DO_JVS(500)) & -! JVS(500) = Jac_FULL(66,66) - JVS(500) = -B(264)-B(1440) +! JVS(500) = Jac_FULL(55,55) + JVS(500) = -0.9*B(420)-B(1424) IF (DO_JVS(501)) & -! JVS(501) = Jac_FULL(66,257) - JVS(501) = 0.37*B(1130) +! JVS(501) = Jac_FULL(55,272) + JVS(501) = -0.9*B(421) IF (DO_JVS(502)) & -! JVS(502) = Jac_FULL(66,269) - JVS(502) = -B(265) +! JVS(502) = Jac_FULL(56,56) + JVS(502) = -0.9*B(422)-B(1425) IF (DO_JVS(503)) & -! JVS(503) = Jac_FULL(66,281) - JVS(503) = 0.37*B(1131) +! JVS(503) = Jac_FULL(56,272) + JVS(503) = -0.9*B(423) IF (DO_JVS(504)) & -! JVS(504) = Jac_FULL(67,67) - JVS(504) = -B(1205)-B(1554) +! JVS(504) = Jac_FULL(57,57) + JVS(504) = -0.86*B(424)-B(1426) IF (DO_JVS(505)) & -! JVS(505) = Jac_FULL(67,176) - JVS(505) = 0.65*B(1199) +! JVS(505) = Jac_FULL(57,272) + JVS(505) = -0.86*B(425) IF (DO_JVS(506)) & -! JVS(506) = Jac_FULL(67,269) - JVS(506) = -B(1206) +! JVS(506) = Jac_FULL(58,58) + JVS(506) = -B(1097) IF (DO_JVS(507)) & -! JVS(507) = Jac_FULL(67,281) - JVS(507) = 0.65*B(1200) +! JVS(507) = Jac_FULL(58,286) + JVS(507) = -B(1098) IF (DO_JVS(508)) & -! JVS(508) = Jac_FULL(68,68) - JVS(508) = -B(491)-B(551) +! JVS(508) = Jac_FULL(59,59) + JVS(508) = -0.65*B(410)-B(1432) IF (DO_JVS(509)) & -! JVS(509) = Jac_FULL(68,269) - JVS(509) = -B(492) +! JVS(509) = Jac_FULL(59,272) + JVS(509) = -0.65*B(411) IF (DO_JVS(510)) & -! JVS(510) = Jac_FULL(68,285) - JVS(510) = -B(552) +! JVS(510) = Jac_FULL(60,60) + JVS(510) = -2*B(546)-B(1439) IF (DO_JVS(511)) & -! JVS(511) = Jac_FULL(69,69) - JVS(511) = -B(1490) +! JVS(511) = Jac_FULL(60,269) + JVS(511) = B(544) IF (DO_JVS(512)) & -! JVS(512) = Jac_FULL(69,199) - JVS(512) = B(1350)+B(1352) +! JVS(512) = Jac_FULL(60,279) + JVS(512) = B(545) IF (DO_JVS(513)) & -! JVS(513) = Jac_FULL(69,264) - JVS(513) = B(1366)+B(1368) +! JVS(513) = Jac_FULL(61,61) + JVS(513) = -B(342)-B(1454) IF (DO_JVS(514)) & -! JVS(514) = Jac_FULL(69,266) - JVS(514) = B(1358)+B(1360) +! JVS(514) = Jac_FULL(61,65) + JVS(514) = B(382) IF (DO_JVS(515)) & -! JVS(515) = Jac_FULL(69,275) - JVS(515) = B(1351)+B(1359)+B(1367) +! JVS(515) = Jac_FULL(61,272) + JVS(515) = -B(343) IF (DO_JVS(516)) & -! JVS(516) = Jac_FULL(69,276) - JVS(516) = B(1353)+B(1361)+B(1369) +! JVS(516) = Jac_FULL(61,291) + JVS(516) = B(383) IF (DO_JVS(517)) & -! JVS(517) = Jac_FULL(70,70) - JVS(517) = -B(359)-0.95*B(439)-B(1448) +! JVS(517) = Jac_FULL(62,62) + JVS(517) = -B(1465)-B(1466) IF (DO_JVS(518)) & -! JVS(518) = Jac_FULL(70,268) - JVS(518) = -0.95*B(440) +! JVS(518) = Jac_FULL(62,147) + JVS(518) = B(6) IF (DO_JVS(519)) & -! JVS(519) = Jac_FULL(70,269) - JVS(519) = -B(360) +! JVS(519) = Jac_FULL(62,265) + JVS(519) = B(7) IF (DO_JVS(520)) & -! JVS(520) = Jac_FULL(71,71) - JVS(520) = -B(310)-B(1492)-B(1493) +! JVS(520) = Jac_FULL(62,281) + JVS(520) = B(1212) IF (DO_JVS(521)) & -! JVS(521) = Jac_FULL(71,263) - JVS(521) = B(308) +! JVS(521) = Jac_FULL(63,63) + JVS(521) = -B(1463)-B(1464) IF (DO_JVS(522)) & -! JVS(522) = Jac_FULL(71,270) - JVS(522) = B(309) +! JVS(522) = Jac_FULL(63,138) + JVS(522) = B(13) IF (DO_JVS(523)) & -! JVS(523) = Jac_FULL(72,72) - JVS(523) = -B(477)-B(532)-B(1456) +! JVS(523) = Jac_FULL(63,265) + JVS(523) = B(14) IF (DO_JVS(524)) & -! JVS(524) = Jac_FULL(72,269) - JVS(524) = -B(478) +! JVS(524) = Jac_FULL(63,281) + JVS(524) = B(1213) IF (DO_JVS(525)) & -! JVS(525) = Jac_FULL(72,273) - JVS(525) = B(531) +! JVS(525) = Jac_FULL(64,64) + JVS(525) = -B(1116) IF (DO_JVS(526)) & -! JVS(526) = Jac_FULL(73,73) - JVS(526) = -B(489)-B(549)-B(1451) +! JVS(526) = Jac_FULL(64,286) + JVS(526) = -B(1117) IF (DO_JVS(527)) & -! JVS(527) = Jac_FULL(73,269) - JVS(527) = -B(490) +! JVS(527) = Jac_FULL(65,65) + JVS(527) = -B(378)-B(380)-B(382) IF (DO_JVS(528)) & -! JVS(528) = Jac_FULL(73,285) - JVS(528) = -B(550) +! JVS(528) = Jac_FULL(65,279) + JVS(528) = -B(381)+B(1457) IF (DO_JVS(529)) & -! JVS(529) = Jac_FULL(74,74) - JVS(529) = -B(357)-0.68*B(441)-B(1447) +! JVS(529) = Jac_FULL(65,291) + JVS(529) = -B(383) IF (DO_JVS(530)) & -! JVS(530) = Jac_FULL(74,268) - JVS(530) = -0.68*B(442) +! JVS(530) = Jac_FULL(66,66) + JVS(530) = -B(358)-B(360)-B(1455) IF (DO_JVS(531)) & -! JVS(531) = Jac_FULL(74,269) - JVS(531) = -B(358) +! JVS(531) = Jac_FULL(66,286) + JVS(531) = -B(361) IF (DO_JVS(532)) & -! JVS(532) = Jac_FULL(75,75) - JVS(532) = -B(1142)-B(1144) +! JVS(532) = Jac_FULL(66,288) + JVS(532) = -B(359) IF (DO_JVS(533)) & -! JVS(533) = Jac_FULL(75,269) - JVS(533) = -B(1145) +! JVS(533) = Jac_FULL(67,67) + JVS(533) = -B(101)-B(1376) IF (DO_JVS(534)) & -! JVS(534) = Jac_FULL(75,277) - JVS(534) = -B(1143) +! JVS(534) = Jac_FULL(67,261) + JVS(534) = B(99) IF (DO_JVS(535)) & -! JVS(535) = Jac_FULL(76,76) - JVS(535) = -B(1167) +! JVS(535) = Jac_FULL(67,291) + JVS(535) = B(100) IF (DO_JVS(536)) & -! JVS(536) = Jac_FULL(76,269) - JVS(536) = -B(1168) +! JVS(536) = Jac_FULL(68,68) + JVS(536) = -B(1110) IF (DO_JVS(537)) & -! JVS(537) = Jac_FULL(77,77) - JVS(537) = -B(1169) +! JVS(537) = Jac_FULL(68,179) + JVS(537) = 0.005*B(1101) IF (DO_JVS(538)) & -! JVS(538) = Jac_FULL(77,269) - JVS(538) = -B(1170) +! JVS(538) = Jac_FULL(68,279) + JVS(538) = 0.005*B(1102) IF (DO_JVS(539)) & -! JVS(539) = Jac_FULL(78,78) - JVS(539) = -0.79*B(457)-B(501)-B(1468) +! JVS(539) = Jac_FULL(68,286) + JVS(539) = -B(1111) IF (DO_JVS(540)) & -! JVS(540) = Jac_FULL(78,268) - JVS(540) = -0.79*B(458) +! JVS(540) = Jac_FULL(69,69) + JVS(540) = -B(576)-B(1289)-B(1290)-B(1291) IF (DO_JVS(541)) & -! JVS(541) = Jac_FULL(78,269) - JVS(541) = -B(502) +! JVS(541) = Jac_FULL(69,269) + JVS(541) = B(572) IF (DO_JVS(542)) & -! JVS(542) = Jac_FULL(79,79) - JVS(542) = -0.69*B(453)-B(497)-B(1469) +! JVS(542) = Jac_FULL(69,284) + JVS(542) = B(573) IF (DO_JVS(543)) & -! JVS(543) = Jac_FULL(79,268) - JVS(543) = -0.69*B(454) +! JVS(543) = Jac_FULL(69,286) + JVS(543) = -B(577) IF (DO_JVS(544)) & -! JVS(544) = Jac_FULL(79,269) - JVS(544) = -B(498) +! JVS(544) = Jac_FULL(70,70) + JVS(544) = -B(1156)-B(1513) IF (DO_JVS(545)) & -! JVS(545) = Jac_FULL(80,80) - JVS(545) = -0.74*B(455)-B(499)-B(1470) +! JVS(545) = Jac_FULL(70,180) + JVS(545) = 0.65*B(1150) IF (DO_JVS(546)) & -! JVS(546) = Jac_FULL(80,268) - JVS(546) = -0.74*B(456) +! JVS(546) = Jac_FULL(70,284) + JVS(546) = 0.65*B(1151) IF (DO_JVS(547)) & -! JVS(547) = Jac_FULL(80,269) - JVS(547) = -B(500) +! JVS(547) = Jac_FULL(70,286) + JVS(547) = -B(1157) IF (DO_JVS(548)) & -! JVS(548) = Jac_FULL(81,81) - JVS(548) = -0.72*B(443)-B(495)-B(1471) +! JVS(548) = Jac_FULL(71,71) + JVS(548) = -B(330)-0.95*B(400)-B(1407) IF (DO_JVS(549)) & -! JVS(549) = Jac_FULL(81,268) - JVS(549) = -0.72*B(444) +! JVS(549) = Jac_FULL(71,272) + JVS(549) = -0.95*B(401) IF (DO_JVS(550)) & -! JVS(550) = Jac_FULL(81,269) - JVS(550) = -B(496) +! JVS(550) = Jac_FULL(71,286) + JVS(550) = -B(331) IF (DO_JVS(551)) & -! JVS(551) = Jac_FULL(82,82) - JVS(551) = -B(311)-B(313)-B(315) +! JVS(551) = Jac_FULL(72,72) + JVS(551) = -B(450)-B(508)-B(1410) IF (DO_JVS(552)) & -! JVS(552) = Jac_FULL(82,269) - JVS(552) = -B(312)-B(314) +! JVS(552) = Jac_FULL(72,286) + JVS(552) = -B(451) IF (DO_JVS(553)) & -! JVS(553) = Jac_FULL(82,287) - JVS(553) = -B(316) +! JVS(553) = Jac_FULL(72,290) + JVS(553) = -B(509) IF (DO_JVS(554)) & -! JVS(554) = Jac_FULL(83,83) - JVS(554) = -B(1128)-B(1512) +! JVS(554) = Jac_FULL(73,73) + JVS(554) = -B(1449) IF (DO_JVS(555)) & -! JVS(555) = Jac_FULL(83,230) - JVS(555) = 0.73*B(647)+0.4*B(649) +! JVS(555) = Jac_FULL(73,203) + JVS(555) = B(1309)+B(1311) IF (DO_JVS(556)) & -! JVS(556) = Jac_FULL(83,269) - JVS(556) = -B(1129) +! JVS(556) = Jac_FULL(73,268) + JVS(556) = B(1325)+B(1327) IF (DO_JVS(557)) & -! JVS(557) = Jac_FULL(83,279) - JVS(557) = 0.73*B(648)+0.4*B(650) +! JVS(557) = Jac_FULL(73,270) + JVS(557) = B(1317)+B(1319) IF (DO_JVS(558)) & -! JVS(558) = Jac_FULL(84,84) - JVS(558) = -B(1110)-B(1386) +! JVS(558) = Jac_FULL(73,277) + JVS(558) = B(1312)+B(1320)+B(1328) IF (DO_JVS(559)) & -! JVS(559) = Jac_FULL(84,133) - JVS(559) = 0.098*B(1086) +! JVS(559) = Jac_FULL(73,283) + JVS(559) = B(1310)+B(1318)+B(1326) IF (DO_JVS(560)) & -! JVS(560) = Jac_FULL(84,149) - JVS(560) = 0.75*B(1108) +! JVS(560) = Jac_FULL(74,74) + JVS(560) = -B(281)-B(1451)-B(1452) IF (DO_JVS(561)) & -! JVS(561) = Jac_FULL(84,269) - JVS(561) = 0.098*B(1087)+0.75*B(1109)-B(1111) +! JVS(561) = Jac_FULL(74,266) + JVS(561) = B(279) IF (DO_JVS(562)) & -! JVS(562) = Jac_FULL(85,85) - JVS(562) = -B(22)-B(23) +! JVS(562) = Jac_FULL(74,291) + JVS(562) = B(280) IF (DO_JVS(563)) & -! JVS(563) = Jac_FULL(85,262) - JVS(563) = B(20) +! JVS(563) = Jac_FULL(75,75) + JVS(563) = -B(438)-B(493)-B(1415) IF (DO_JVS(564)) & -! JVS(564) = Jac_FULL(85,269) - JVS(564) = -B(24) +! JVS(564) = Jac_FULL(75,285) + JVS(564) = B(492) IF (DO_JVS(565)) & -! JVS(565) = Jac_FULL(85,286) - JVS(565) = B(21) +! JVS(565) = Jac_FULL(75,286) + JVS(565) = -B(439) IF (DO_JVS(566)) & -! JVS(566) = Jac_FULL(86,86) - JVS(566) = -B(749)-B(1510) +! JVS(566) = Jac_FULL(76,76) + JVS(566) = -B(1093)-B(1095) IF (DO_JVS(567)) & -! JVS(567) = Jac_FULL(86,253) - JVS(567) = B(139) +! JVS(567) = Jac_FULL(76,282) + JVS(567) = -B(1094) IF (DO_JVS(568)) & -! JVS(568) = Jac_FULL(86,269) - JVS(568) = -B(750) +! JVS(568) = Jac_FULL(76,286) + JVS(568) = -B(1096) IF (DO_JVS(569)) & -! JVS(569) = Jac_FULL(86,280) - JVS(569) = B(140) +! JVS(569) = Jac_FULL(77,77) + JVS(569) = -B(328)-0.7*B(402)-B(1406) IF (DO_JVS(570)) & -! JVS(570) = Jac_FULL(87,87) - JVS(570) = -B(745)-B(1508) +! JVS(570) = Jac_FULL(77,272) + JVS(570) = -0.7*B(403) IF (DO_JVS(571)) & -! JVS(571) = Jac_FULL(87,263) - JVS(571) = B(50) +! JVS(571) = Jac_FULL(77,286) + JVS(571) = -B(329) IF (DO_JVS(572)) & -! JVS(572) = Jac_FULL(87,269) - JVS(572) = -B(746) +! JVS(572) = Jac_FULL(78,78) + JVS(572) = -B(452)-B(510) IF (DO_JVS(573)) & -! JVS(573) = Jac_FULL(87,280) - JVS(573) = B(51) +! JVS(573) = Jac_FULL(78,286) + JVS(573) = -B(453) IF (DO_JVS(574)) & -! JVS(574) = Jac_FULL(88,88) - JVS(574) = -B(747)-B(1509) +! JVS(574) = Jac_FULL(78,290) + JVS(574) = -B(511) IF (DO_JVS(575)) & -! JVS(575) = Jac_FULL(88,213) - JVS(575) = B(111) +! JVS(575) = Jac_FULL(79,79) + JVS(575) = -B(1118) IF (DO_JVS(576)) & -! JVS(576) = Jac_FULL(88,269) - JVS(576) = -B(748) +! JVS(576) = Jac_FULL(79,286) + JVS(576) = -B(1119) IF (DO_JVS(577)) & -! JVS(577) = Jac_FULL(88,280) - JVS(577) = B(112) +! JVS(577) = Jac_FULL(80,80) + JVS(577) = -B(1120) IF (DO_JVS(578)) & -! JVS(578) = Jac_FULL(89,89) - JVS(578) = -B(751)-B(1511) +! JVS(578) = Jac_FULL(80,286) + JVS(578) = -B(1121) IF (DO_JVS(579)) & -! JVS(579) = Jac_FULL(89,233) - JVS(579) = B(121) +! JVS(579) = Jac_FULL(81,81) + JVS(579) = -0.79*B(418)-B(462)-B(1427) IF (DO_JVS(580)) & -! JVS(580) = Jac_FULL(89,269) - JVS(580) = -B(752) +! JVS(580) = Jac_FULL(81,272) + JVS(580) = -0.79*B(419) IF (DO_JVS(581)) & -! JVS(581) = Jac_FULL(89,280) - JVS(581) = B(122) +! JVS(581) = Jac_FULL(81,286) + JVS(581) = -B(463) IF (DO_JVS(582)) & -! JVS(582) = Jac_FULL(90,38) - JVS(582) = 2*B(608)+2*B(1488) +! JVS(582) = Jac_FULL(82,82) + JVS(582) = -0.69*B(414)-B(458)-B(1428) IF (DO_JVS(583)) & -! JVS(583) = Jac_FULL(90,40) - JVS(583) = B(634)+B(1483) +! JVS(583) = Jac_FULL(82,272) + JVS(583) = -0.69*B(415) IF (DO_JVS(584)) & -! JVS(584) = Jac_FULL(90,47) - JVS(584) = B(1489) +! JVS(584) = Jac_FULL(82,286) + JVS(584) = -B(459) IF (DO_JVS(585)) & -! JVS(585) = Jac_FULL(90,90) - JVS(585) = -B(605)-2*B(607)-B(609)-B(1479) +! JVS(585) = Jac_FULL(83,83) + JVS(585) = -0.65*B(416)-B(460)-B(1429) IF (DO_JVS(586)) & -! JVS(586) = Jac_FULL(90,223) - JVS(586) = B(603)-B(606)+B(631) +! JVS(586) = Jac_FULL(83,272) + JVS(586) = -0.65*B(417) IF (DO_JVS(587)) & -! JVS(587) = Jac_FULL(90,274) - JVS(587) = B(604) +! JVS(587) = Jac_FULL(83,286) + JVS(587) = -B(461) IF (DO_JVS(588)) & -! JVS(588) = Jac_FULL(90,280) - JVS(588) = -B(610) +! JVS(588) = Jac_FULL(84,84) + JVS(588) = -0.75*B(404)-B(456)-B(1430) IF (DO_JVS(589)) & -! JVS(589) = Jac_FULL(91,91) - JVS(589) = -B(256)-B(1436) +! JVS(589) = Jac_FULL(84,272) + JVS(589) = -0.75*B(405) IF (DO_JVS(590)) & -! JVS(590) = Jac_FULL(91,252) - JVS(590) = B(164) +! JVS(590) = Jac_FULL(84,286) + JVS(590) = -B(457) IF (DO_JVS(591)) & -! JVS(591) = Jac_FULL(91,269) - JVS(591) = -B(257) +! JVS(591) = Jac_FULL(85,85) + JVS(591) = -B(1079)-B(1471) IF (DO_JVS(592)) & -! JVS(592) = Jac_FULL(91,281) - JVS(592) = B(165) +! JVS(592) = Jac_FULL(85,234) + JVS(592) = 0.73*B(598)+0.4*B(600) IF (DO_JVS(593)) & -! JVS(593) = Jac_FULL(92,92) - JVS(593) = -B(252)-B(1434) +! JVS(593) = Jac_FULL(85,278) + JVS(593) = 0.73*B(599)+0.4*B(601) IF (DO_JVS(594)) & -! JVS(594) = Jac_FULL(92,233) - JVS(594) = B(208) +! JVS(594) = Jac_FULL(85,286) + JVS(594) = -B(1080) IF (DO_JVS(595)) & -! JVS(595) = Jac_FULL(92,269) - JVS(595) = -B(253) +! JVS(595) = Jac_FULL(86,86) + JVS(595) = -B(22)-B(23) IF (DO_JVS(596)) & -! JVS(596) = Jac_FULL(92,281) - JVS(596) = B(209) +! JVS(596) = Jac_FULL(86,263) + JVS(596) = B(20) IF (DO_JVS(597)) & -! JVS(597) = Jac_FULL(93,93) - JVS(597) = -B(254)-B(1435) +! JVS(597) = Jac_FULL(86,276) + JVS(597) = B(21)-B(24) IF (DO_JVS(598)) & -! JVS(598) = Jac_FULL(93,253) - JVS(598) = B(172) +! JVS(598) = Jac_FULL(86,286) + JVS(598) = -B(25) IF (DO_JVS(599)) & -! JVS(599) = Jac_FULL(93,269) - JVS(599) = -B(255) +! JVS(599) = Jac_FULL(87,87) + JVS(599) = -B(700)-B(1469) IF (DO_JVS(600)) & -! JVS(600) = Jac_FULL(93,281) - JVS(600) = B(173) +! JVS(600) = Jac_FULL(87,258) + JVS(600) = B(136) IF (DO_JVS(601)) & -! JVS(601) = Jac_FULL(94,94) - JVS(601) = -B(258)-B(1438) +! JVS(601) = Jac_FULL(87,279) + JVS(601) = B(137) IF (DO_JVS(602)) & -! JVS(602) = Jac_FULL(94,250) - JVS(602) = 0.41*B(212) +! JVS(602) = Jac_FULL(87,286) + JVS(602) = -B(701) IF (DO_JVS(603)) & -! JVS(603) = Jac_FULL(94,269) - JVS(603) = -B(259) +! JVS(603) = Jac_FULL(88,88) + JVS(603) = -B(247)-B(1399) IF (DO_JVS(604)) & -! JVS(604) = Jac_FULL(94,281) - JVS(604) = 0.41*B(213) +! JVS(604) = Jac_FULL(88,261) + JVS(604) = 0.37*B(1081) IF (DO_JVS(605)) & -! JVS(605) = Jac_FULL(95,95) - JVS(605) = -B(1207)-B(1208) +! JVS(605) = Jac_FULL(88,284) + JVS(605) = 0.37*B(1082) IF (DO_JVS(606)) & -! JVS(606) = Jac_FULL(95,176) - JVS(606) = B(1203) +! JVS(606) = Jac_FULL(88,286) + JVS(606) = -B(248) IF (DO_JVS(607)) & -! JVS(607) = Jac_FULL(95,269) - JVS(607) = -B(1209) +! JVS(607) = Jac_FULL(89,89) + JVS(607) = -B(696)-B(1467) IF (DO_JVS(608)) & -! JVS(608) = Jac_FULL(95,270) - JVS(608) = B(1204) +! JVS(608) = Jac_FULL(89,266) + JVS(608) = B(51) IF (DO_JVS(609)) & -! JVS(609) = Jac_FULL(96,96) - JVS(609) = -B(741) +! JVS(609) = Jac_FULL(89,279) + JVS(609) = B(52) IF (DO_JVS(610)) & -! JVS(610) = Jac_FULL(96,136) - JVS(610) = B(1388) +! JVS(610) = Jac_FULL(89,286) + JVS(610) = -B(697) IF (DO_JVS(611)) & -! JVS(611) = Jac_FULL(96,137) - JVS(611) = B(1389) +! JVS(611) = Jac_FULL(90,90) + JVS(611) = -B(282)-B(284)-B(286) IF (DO_JVS(612)) & -! JVS(612) = Jac_FULL(96,147) - JVS(612) = B(1392) +! JVS(612) = Jac_FULL(90,281) + JVS(612) = -B(287) IF (DO_JVS(613)) & -! JVS(613) = Jac_FULL(96,171) - JVS(613) = B(1397) +! JVS(613) = Jac_FULL(90,286) + JVS(613) = -B(283)-B(285) IF (DO_JVS(614)) & -! JVS(614) = Jac_FULL(96,177) - JVS(614) = B(1393) +! JVS(614) = Jac_FULL(91,91) + JVS(614) = -B(702)-B(1470) IF (DO_JVS(615)) & -! JVS(615) = Jac_FULL(96,195) - JVS(615) = B(1398) +! JVS(615) = Jac_FULL(91,237) + JVS(615) = B(118) IF (DO_JVS(616)) & -! JVS(616) = Jac_FULL(96,198) - JVS(616) = B(1381) +! JVS(616) = Jac_FULL(91,279) + JVS(616) = B(119) IF (DO_JVS(617)) & -! JVS(617) = Jac_FULL(96,209) - JVS(617) = B(1395) +! JVS(617) = Jac_FULL(91,286) + JVS(617) = -B(703) IF (DO_JVS(618)) & -! JVS(618) = Jac_FULL(96,210) - JVS(618) = B(1390) +! JVS(618) = Jac_FULL(92,42) + JVS(618) = 2*B(565)+2*B(1447) IF (DO_JVS(619)) & -! JVS(619) = Jac_FULL(96,216) - JVS(619) = B(1387) +! JVS(619) = Jac_FULL(92,44) + JVS(619) = 0.996*B(585)+B(1442) IF (DO_JVS(620)) & -! JVS(620) = Jac_FULL(96,237) - JVS(620) = B(1380) +! JVS(620) = Jac_FULL(92,49) + JVS(620) = B(1448) IF (DO_JVS(621)) & -! JVS(621) = Jac_FULL(96,238) - JVS(621) = B(1396) +! JVS(621) = Jac_FULL(92,92) + JVS(621) = -B(562)-2*B(564)-B(566)-B(1438) IF (DO_JVS(622)) & -! JVS(622) = Jac_FULL(96,239) - JVS(622) = B(1394) +! JVS(622) = Jac_FULL(92,227) + JVS(622) = 0.8*B(560)-B(563)+0.4*B(584) IF (DO_JVS(623)) & -! JVS(623) = Jac_FULL(97,97) - JVS(623) = -B(361)-B(437)-B(1449) +! JVS(623) = Jac_FULL(92,274) + JVS(623) = 0.8*B(561) IF (DO_JVS(624)) & -! JVS(624) = Jac_FULL(97,268) - JVS(624) = -B(438) +! JVS(624) = Jac_FULL(92,279) + JVS(624) = -B(567) IF (DO_JVS(625)) & -! JVS(625) = Jac_FULL(97,269) - JVS(625) = -B(362) +! JVS(625) = Jac_FULL(93,93) + JVS(625) = -B(239)-B(1395) IF (DO_JVS(626)) & -! JVS(626) = Jac_FULL(98,98) - JVS(626) = -B(1491) +! JVS(626) = Jac_FULL(93,256) + JVS(626) = B(161) IF (DO_JVS(627)) & -! JVS(627) = Jac_FULL(98,199) - JVS(627) = B(1354)+B(1356) +! JVS(627) = Jac_FULL(93,284) + JVS(627) = B(162) IF (DO_JVS(628)) & -! JVS(628) = Jac_FULL(98,223) - JVS(628) = B(615) +! JVS(628) = Jac_FULL(93,286) + JVS(628) = -B(240) IF (DO_JVS(629)) & -! JVS(629) = Jac_FULL(98,264) - JVS(629) = B(1370)+B(1372) +! JVS(629) = Jac_FULL(94,94) + JVS(629) = -B(235)-B(1393) IF (DO_JVS(630)) & -! JVS(630) = Jac_FULL(98,266) - JVS(630) = B(1362)+B(1364) +! JVS(630) = Jac_FULL(94,237) + JVS(630) = B(203) IF (DO_JVS(631)) & -! JVS(631) = Jac_FULL(98,273) - JVS(631) = B(616) +! JVS(631) = Jac_FULL(94,284) + JVS(631) = B(204) IF (DO_JVS(632)) & -! JVS(632) = Jac_FULL(98,278) - JVS(632) = B(1355)+B(1363)+B(1371) +! JVS(632) = Jac_FULL(94,286) + JVS(632) = -B(236) IF (DO_JVS(633)) & -! JVS(633) = Jac_FULL(98,283) - JVS(633) = B(1357)+B(1365)+B(1373) +! JVS(633) = Jac_FULL(95,95) + JVS(633) = -B(237)-B(1394) IF (DO_JVS(634)) & -! JVS(634) = Jac_FULL(99,76) - JVS(634) = 0.06*B(1167) +! JVS(634) = Jac_FULL(95,258) + JVS(634) = B(169) IF (DO_JVS(635)) & -! JVS(635) = Jac_FULL(99,77) - JVS(635) = 0.06*B(1169) +! JVS(635) = Jac_FULL(95,284) + JVS(635) = B(170) IF (DO_JVS(636)) & -! JVS(636) = Jac_FULL(99,99) - JVS(636) = -B(1195)-B(1197)-B(1553) +! JVS(636) = Jac_FULL(95,286) + JVS(636) = -B(238) IF (DO_JVS(637)) & -! JVS(637) = Jac_FULL(99,269) - JVS(637) = 0.06*B(1168)+0.06*B(1170)-B(1196) +! JVS(637) = Jac_FULL(96,96) + JVS(637) = -B(698)-B(1468) IF (DO_JVS(638)) & -! JVS(638) = Jac_FULL(99,287) - JVS(638) = -B(1198) +! JVS(638) = Jac_FULL(96,217) + JVS(638) = B(108) IF (DO_JVS(639)) & -! JVS(639) = Jac_FULL(100,100) - JVS(639) = -B(487)-B(547)-B(1450) +! JVS(639) = Jac_FULL(96,279) + JVS(639) = B(109) IF (DO_JVS(640)) & -! JVS(640) = Jac_FULL(100,269) - JVS(640) = -B(488) +! JVS(640) = Jac_FULL(96,286) + JVS(640) = -B(699) IF (DO_JVS(641)) & -! JVS(641) = Jac_FULL(100,285) - JVS(641) = -B(548) +! JVS(641) = Jac_FULL(97,97) + JVS(641) = -B(1158)-B(1159) IF (DO_JVS(642)) & -! JVS(642) = Jac_FULL(101,101) - JVS(642) = -B(78)-B(79)-B(1410)-B(1411) +! JVS(642) = Jac_FULL(97,180) + JVS(642) = B(1154) IF (DO_JVS(643)) & -! JVS(643) = Jac_FULL(101,269) - JVS(643) = -B(80) +! JVS(643) = Jac_FULL(97,286) + JVS(643) = -B(1160) IF (DO_JVS(644)) & -! JVS(644) = Jac_FULL(101,270) - JVS(644) = B(76) +! JVS(644) = Jac_FULL(97,291) + JVS(644) = B(1155) IF (DO_JVS(645)) & -! JVS(645) = Jac_FULL(101,281) - JVS(645) = B(77) +! JVS(645) = Jac_FULL(98,98) + JVS(645) = -B(692) IF (DO_JVS(646)) & -! JVS(646) = Jac_FULL(102,102) - JVS(646) = -B(1156)-B(1157) +! JVS(646) = Jac_FULL(98,139) + JVS(646) = B(1347) IF (DO_JVS(647)) & -! JVS(647) = Jac_FULL(102,113) - JVS(647) = B(1552) +! JVS(647) = Jac_FULL(98,140) + JVS(647) = B(1348) IF (DO_JVS(648)) & -! JVS(648) = Jac_FULL(102,175) - JVS(648) = 0.995*B(1150)+B(1152)+0.6*B(1154) +! JVS(648) = Jac_FULL(98,151) + JVS(648) = B(1351) IF (DO_JVS(649)) & -! JVS(649) = Jac_FULL(102,263) - JVS(649) = 0.6*B(1155) +! JVS(649) = Jac_FULL(98,175) + JVS(649) = B(1356) IF (DO_JVS(650)) & -! JVS(650) = Jac_FULL(102,280) - JVS(650) = 0.995*B(1151) +! JVS(650) = Jac_FULL(98,181) + JVS(650) = B(1352) IF (DO_JVS(651)) & -! JVS(651) = Jac_FULL(102,287) - JVS(651) = B(1153) +! JVS(651) = Jac_FULL(98,200) + JVS(651) = B(1357) IF (DO_JVS(652)) & -! JVS(652) = Jac_FULL(103,72) - JVS(652) = B(477)+B(1456) +! JVS(652) = Jac_FULL(98,202) + JVS(652) = B(1340) IF (DO_JVS(653)) & -! JVS(653) = Jac_FULL(103,103) - JVS(653) = -B(530)-B(533)-B(535)-B(1475) +! JVS(653) = Jac_FULL(98,213) + JVS(653) = B(1354) IF (DO_JVS(654)) & -! JVS(654) = Jac_FULL(103,263) - JVS(654) = B(469) +! JVS(654) = Jac_FULL(98,214) + JVS(654) = B(1349) IF (DO_JVS(655)) & -! JVS(655) = Jac_FULL(103,269) - JVS(655) = B(478) +! JVS(655) = Jac_FULL(98,220) + JVS(655) = B(1346) IF (DO_JVS(656)) & -! JVS(656) = Jac_FULL(103,273) - JVS(656) = B(470)+B(526)+B(539) +! JVS(656) = Jac_FULL(98,241) + JVS(656) = B(1339) IF (DO_JVS(657)) & -! JVS(657) = Jac_FULL(103,274) - JVS(657) = B(540) +! JVS(657) = Jac_FULL(98,242) + JVS(657) = B(1355) IF (DO_JVS(658)) & -! JVS(658) = Jac_FULL(103,285) - JVS(658) = B(528)-B(534)-B(536) +! JVS(658) = Jac_FULL(98,243) + JVS(658) = B(1353) IF (DO_JVS(659)) & -! JVS(659) = Jac_FULL(104,104) - JVS(659) = -B(1126)-B(1385)-B(1514) +! JVS(659) = Jac_FULL(99,99) + JVS(659) = -B(1450) IF (DO_JVS(660)) & -! JVS(660) = Jac_FULL(104,160) - JVS(660) = 0.653*B(1064)+0.75*B(1520) +! JVS(660) = Jac_FULL(99,203) + JVS(660) = B(1313)+B(1315) IF (DO_JVS(661)) & -! JVS(661) = Jac_FULL(104,237) - JVS(661) = 0.241*B(1042) +! JVS(661) = Jac_FULL(99,227) + JVS(661) = 0.191*B(568) IF (DO_JVS(662)) & -! JVS(662) = Jac_FULL(104,244) - JVS(662) = 0.075*B(1032) +! JVS(662) = Jac_FULL(99,268) + JVS(662) = B(1329)+B(1331) IF (DO_JVS(663)) & -! JVS(663) = Jac_FULL(104,269) - JVS(663) = 0.241*B(1043)+0.653*B(1065)-B(1127) +! JVS(663) = Jac_FULL(99,270) + JVS(663) = B(1321)+B(1323) IF (DO_JVS(664)) & -! JVS(664) = Jac_FULL(104,277) - JVS(664) = 0.075*B(1033) +! JVS(664) = Jac_FULL(99,280) + JVS(664) = B(1314)+B(1322)+B(1330) IF (DO_JVS(665)) & -! JVS(665) = Jac_FULL(105,95) - JVS(665) = B(1208) +! JVS(665) = Jac_FULL(99,285) + JVS(665) = 0.191*B(569) IF (DO_JVS(666)) & -! JVS(666) = Jac_FULL(105,105) - JVS(666) = -B(1218)-B(1555) +! JVS(666) = Jac_FULL(99,287) + JVS(666) = B(1316)+B(1324)+B(1332) IF (DO_JVS(667)) & -! JVS(667) = Jac_FULL(105,176) - JVS(667) = 0.15*B(1199) +! JVS(667) = Jac_FULL(100,100) + JVS(667) = -B(332)-B(398)-B(1408) IF (DO_JVS(668)) & -! JVS(668) = Jac_FULL(105,187) - JVS(668) = B(1216) +! JVS(668) = Jac_FULL(100,272) + JVS(668) = -B(399) IF (DO_JVS(669)) & -! JVS(669) = Jac_FULL(105,269) - JVS(669) = B(1209)-B(1219) +! JVS(669) = Jac_FULL(100,286) + JVS(669) = -B(333) IF (DO_JVS(670)) & -! JVS(670) = Jac_FULL(105,270) - JVS(670) = 0 +! JVS(670) = Jac_FULL(101,79) + JVS(670) = 0.06*B(1118) IF (DO_JVS(671)) & -! JVS(671) = Jac_FULL(105,281) - JVS(671) = 0.15*B(1200)+B(1217) +! JVS(671) = Jac_FULL(101,80) + JVS(671) = 0.06*B(1120) IF (DO_JVS(672)) & -! JVS(672) = Jac_FULL(106,106) - JVS(672) = -B(819) +! JVS(672) = Jac_FULL(101,101) + JVS(672) = -B(1146)-B(1148)-B(1512) IF (DO_JVS(673)) & -! JVS(673) = Jac_FULL(106,182) - JVS(673) = 0.15*B(807)+0.112*B(1530) +! JVS(673) = Jac_FULL(101,281) + JVS(673) = -B(1149) IF (DO_JVS(674)) & -! JVS(674) = Jac_FULL(106,184) - JVS(674) = 0.15*B(809)+0.182*B(1531) +! JVS(674) = Jac_FULL(101,286) + JVS(674) = 0.06*B(1119)+0.06*B(1121)-B(1147) IF (DO_JVS(675)) & -! JVS(675) = Jac_FULL(106,236) - JVS(675) = 0.161*B(1541) +! JVS(675) = Jac_FULL(102,102) + JVS(675) = -B(75)-B(76)-B(1369)-B(1370) IF (DO_JVS(676)) & -! JVS(676) = Jac_FULL(106,269) - JVS(676) = 0.15*B(808)+0.15*B(810)-B(820) +! JVS(676) = Jac_FULL(102,284) + JVS(676) = B(73) IF (DO_JVS(677)) & -! JVS(677) = Jac_FULL(107,107) - JVS(677) = -B(475)-B(1455) +! JVS(677) = Jac_FULL(102,286) + JVS(677) = -B(77) IF (DO_JVS(678)) & -! JVS(678) = Jac_FULL(107,223) - JVS(678) = B(611) +! JVS(678) = Jac_FULL(102,291) + JVS(678) = B(74) IF (DO_JVS(679)) & -! JVS(679) = Jac_FULL(107,269) - JVS(679) = -B(476) +! JVS(679) = Jac_FULL(103,75) + JVS(679) = B(438)+B(1415) IF (DO_JVS(680)) & -! JVS(680) = Jac_FULL(107,273) - JVS(680) = B(527)+B(537)+B(612) +! JVS(680) = Jac_FULL(103,103) + JVS(680) = -B(491)-B(494)-B(1434) IF (DO_JVS(681)) & -! JVS(681) = Jac_FULL(107,274) - JVS(681) = B(538) +! JVS(681) = Jac_FULL(103,266) + JVS(681) = B(430) IF (DO_JVS(682)) & -! JVS(682) = Jac_FULL(108,108) - JVS(682) = -B(250)-B(1433) +! JVS(682) = Jac_FULL(103,274) + JVS(682) = B(498) IF (DO_JVS(683)) & -! JVS(683) = Jac_FULL(108,213) - JVS(683) = B(204) +! JVS(683) = Jac_FULL(103,285) + JVS(683) = B(431)+B(487)+B(499) IF (DO_JVS(684)) & -! JVS(684) = Jac_FULL(108,235) - JVS(684) = B(206) +! JVS(684) = Jac_FULL(103,286) + JVS(684) = B(439) IF (DO_JVS(685)) & -! JVS(685) = Jac_FULL(108,269) - JVS(685) = -B(251) +! JVS(685) = Jac_FULL(103,290) + JVS(685) = B(489)-B(495) IF (DO_JVS(686)) & -! JVS(686) = Jac_FULL(108,281) - JVS(686) = B(205)+B(207) +! JVS(686) = Jac_FULL(104,104) + JVS(686) = -B(1077)-B(1344)-B(1473) IF (DO_JVS(687)) & -! JVS(687) = Jac_FULL(109,76) - JVS(687) = 0.19*B(1167) +! JVS(687) = Jac_FULL(104,163) + JVS(687) = 0.653*B(1015)+0.75*B(1479) IF (DO_JVS(688)) & -! JVS(688) = Jac_FULL(109,77) - JVS(688) = 0.15*B(1169) +! JVS(688) = Jac_FULL(104,241) + JVS(688) = 0.241*B(993) IF (DO_JVS(689)) & -! JVS(689) = Jac_FULL(109,109) - JVS(689) = -B(1185)-B(1187) +! JVS(689) = Jac_FULL(104,248) + JVS(689) = 0.075*B(983) IF (DO_JVS(690)) & -! JVS(690) = Jac_FULL(109,269) - JVS(690) = 0.19*B(1168)+0.15*B(1170)-B(1186) +! JVS(690) = Jac_FULL(104,282) + JVS(690) = 0.075*B(984) IF (DO_JVS(691)) & -! JVS(691) = Jac_FULL(109,287) - JVS(691) = -B(1188) +! JVS(691) = Jac_FULL(104,286) + JVS(691) = 0.241*B(994)+0.653*B(1016)-B(1078) IF (DO_JVS(692)) & -! JVS(692) = Jac_FULL(110,110) - JVS(692) = -B(260)-B(1437) +! JVS(692) = Jac_FULL(105,105) + JVS(692) = -B(1061)-B(1345) IF (DO_JVS(693)) & -! JVS(693) = Jac_FULL(110,204) - JVS(693) = B(210) +! JVS(693) = Jac_FULL(105,136) + JVS(693) = 0.098*B(1037) IF (DO_JVS(694)) & -! JVS(694) = Jac_FULL(110,269) - JVS(694) = -B(261) +! JVS(694) = Jac_FULL(105,153) + JVS(694) = 0.75*B(1059) IF (DO_JVS(695)) & -! JVS(695) = Jac_FULL(110,281) - JVS(695) = B(211) +! JVS(695) = Jac_FULL(105,286) + JVS(695) = 0.098*B(1038)+0.75*B(1060)-B(1062) IF (DO_JVS(696)) & -! JVS(696) = Jac_FULL(111,111) - JVS(696) = -B(248)-B(1432) +! JVS(696) = Jac_FULL(106,106) + JVS(696) = -B(241)-B(1397) IF (DO_JVS(697)) & -! JVS(697) = Jac_FULL(111,197) - JVS(697) = B(174) +! JVS(697) = Jac_FULL(106,255) + JVS(697) = 0.41*B(207) IF (DO_JVS(698)) & -! JVS(698) = Jac_FULL(111,269) - JVS(698) = -B(249) +! JVS(698) = Jac_FULL(106,284) + JVS(698) = 0.41*B(208) IF (DO_JVS(699)) & -! JVS(699) = Jac_FULL(111,281) - JVS(699) = B(175) +! JVS(699) = Jac_FULL(106,286) + JVS(699) = -B(242) IF (DO_JVS(700)) & -! JVS(700) = Jac_FULL(112,112) - JVS(700) = -B(125)-B(143)-B(579) +! JVS(700) = Jac_FULL(107,97) + JVS(700) = B(1159) IF (DO_JVS(701)) & -! JVS(701) = Jac_FULL(112,269) - JVS(701) = -B(126) +! JVS(701) = Jac_FULL(107,107) + JVS(701) = -B(1169)-B(1514) IF (DO_JVS(702)) & -! JVS(702) = Jac_FULL(112,285) - JVS(702) = -B(580) +! JVS(702) = Jac_FULL(107,180) + JVS(702) = 0.15*B(1150) IF (DO_JVS(703)) & -! JVS(703) = Jac_FULL(112,287) - JVS(703) = -B(144) +! JVS(703) = Jac_FULL(107,191) + JVS(703) = B(1167) IF (DO_JVS(704)) & -! JVS(704) = Jac_FULL(113,113) - JVS(704) = -B(1161)-B(1163)-B(1552) +! JVS(704) = Jac_FULL(107,284) + JVS(704) = 0.15*B(1151)+B(1168) IF (DO_JVS(705)) & -! JVS(705) = Jac_FULL(113,175) - JVS(705) = B(1148)+0.2*B(1154) +! JVS(705) = Jac_FULL(107,286) + JVS(705) = B(1160)-B(1170) IF (DO_JVS(706)) & -! JVS(706) = Jac_FULL(113,263) - JVS(706) = 0.2*B(1155) +! JVS(706) = Jac_FULL(107,291) + JVS(706) = 0 IF (DO_JVS(707)) & -! JVS(707) = Jac_FULL(113,269) - JVS(707) = -B(1162)-B(1164) +! JVS(707) = Jac_FULL(108,108) + JVS(707) = -B(1107)-B(1108) IF (DO_JVS(708)) & -! JVS(708) = Jac_FULL(113,281) - JVS(708) = B(1149) +! JVS(708) = Jac_FULL(108,120) + JVS(708) = B(1511) IF (DO_JVS(709)) & -! JVS(709) = Jac_FULL(114,114) - JVS(709) = -B(858)-B(1378) +! JVS(709) = Jac_FULL(108,179) + JVS(709) = 0.995*B(1101)+B(1103)+0.6*B(1105) IF (DO_JVS(710)) & -! JVS(710) = Jac_FULL(114,161) - JVS(710) = 0.595*B(835) +! JVS(710) = Jac_FULL(108,266) + JVS(710) = 0.6*B(1106) IF (DO_JVS(711)) & -! JVS(711) = Jac_FULL(114,167) - JVS(711) = 0.255*B(833) +! JVS(711) = Jac_FULL(108,279) + JVS(711) = 0.995*B(1102) IF (DO_JVS(712)) & -! JVS(712) = Jac_FULL(114,210) - JVS(712) = B(911) +! JVS(712) = Jac_FULL(108,281) + JVS(712) = B(1104) IF (DO_JVS(713)) & -! JVS(713) = Jac_FULL(114,216) - JVS(713) = B(907) +! JVS(713) = Jac_FULL(109,109) + JVS(713) = -B(770) IF (DO_JVS(714)) & -! JVS(714) = Jac_FULL(114,269) - JVS(714) = 0.255*B(834)+0.595*B(836)-B(859)+B(908)+B(912) +! JVS(714) = Jac_FULL(109,186) + JVS(714) = 0.15*B(758)+0.112*B(1489) IF (DO_JVS(715)) & -! JVS(715) = Jac_FULL(115,115) - JVS(715) = -B(1068) +! JVS(715) = Jac_FULL(109,188) + JVS(715) = 0.15*B(760)+0.182*B(1490) IF (DO_JVS(716)) & -! JVS(716) = Jac_FULL(115,202) - JVS(716) = 0.35*B(1112)+0.35*B(1543) +! JVS(716) = Jac_FULL(109,240) + JVS(716) = 0.161*B(1500) IF (DO_JVS(717)) & -! JVS(717) = Jac_FULL(115,224) - JVS(717) = B(869)+0.13*B(870)+0.2*B(872) +! JVS(717) = Jac_FULL(109,286) + JVS(717) = 0.15*B(759)+0.15*B(761)-B(771) IF (DO_JVS(718)) & -! JVS(718) = Jac_FULL(115,269) - JVS(718) = -B(1069)+0.35*B(1113) +! JVS(718) = Jac_FULL(110,110) + JVS(718) = -B(233)-B(1392) IF (DO_JVS(719)) & -! JVS(719) = Jac_FULL(115,280) - JVS(719) = 0.2*B(873) +! JVS(719) = Jac_FULL(110,217) + JVS(719) = B(199) IF (DO_JVS(720)) & -! JVS(720) = Jac_FULL(115,281) - JVS(720) = 0.13*B(871) +! JVS(720) = Jac_FULL(110,239) + JVS(720) = B(201) IF (DO_JVS(721)) & -! JVS(721) = Jac_FULL(116,116) - JVS(721) = -B(895)-B(897) +! JVS(721) = Jac_FULL(110,284) + JVS(721) = B(200)+B(202) IF (DO_JVS(722)) & -! JVS(722) = Jac_FULL(116,184) - JVS(722) = 0.315*B(809) +! JVS(722) = Jac_FULL(110,286) + JVS(722) = -B(234) IF (DO_JVS(723)) & -! JVS(723) = Jac_FULL(116,269) - JVS(723) = 0.315*B(810) +! JVS(723) = Jac_FULL(111,111) + JVS(723) = -B(436)-B(1414) IF (DO_JVS(724)) & -! JVS(724) = Jac_FULL(116,280) - JVS(724) = -B(896) +! JVS(724) = Jac_FULL(111,227) + JVS(724) = 0.56*B(568) IF (DO_JVS(725)) & -! JVS(725) = Jac_FULL(116,281) - JVS(725) = -B(898) +! JVS(725) = Jac_FULL(111,274) + JVS(725) = B(496) IF (DO_JVS(726)) & -! JVS(726) = Jac_FULL(117,60) - JVS(726) = 0.54*B(1165) +! JVS(726) = Jac_FULL(111,285) + JVS(726) = B(488)+B(497)+0.56*B(569) IF (DO_JVS(727)) & -! JVS(727) = Jac_FULL(117,117) - JVS(727) = -B(1181)-B(1183) +! JVS(727) = Jac_FULL(111,286) + JVS(727) = -B(437) IF (DO_JVS(728)) & -! JVS(728) = Jac_FULL(117,269) - JVS(728) = 0.54*B(1166)-B(1182) +! JVS(728) = Jac_FULL(112,112) + JVS(728) = -B(243)-B(1396) IF (DO_JVS(729)) & -! JVS(729) = Jac_FULL(117,287) - JVS(729) = -B(1184) +! JVS(729) = Jac_FULL(112,209) + JVS(729) = B(205) IF (DO_JVS(730)) & -! JVS(730) = Jac_FULL(118,118) - JVS(730) = -B(705)-B(1499) +! JVS(730) = Jac_FULL(112,284) + JVS(730) = B(206) IF (DO_JVS(731)) & -! JVS(731) = Jac_FULL(118,221) - JVS(731) = B(697) +! JVS(731) = Jac_FULL(112,286) + JVS(731) = -B(244) IF (DO_JVS(732)) & -! JVS(732) = Jac_FULL(118,234) - JVS(732) = B(673) +! JVS(732) = Jac_FULL(113,113) + JVS(732) = -B(231)-B(1391) IF (DO_JVS(733)) & -! JVS(733) = Jac_FULL(118,269) - JVS(733) = -B(706) +! JVS(733) = Jac_FULL(113,201) + JVS(733) = B(171) IF (DO_JVS(734)) & -! JVS(734) = Jac_FULL(118,281) - JVS(734) = B(674)+B(698) +! JVS(734) = Jac_FULL(113,284) + JVS(734) = B(172) IF (DO_JVS(735)) & -! JVS(735) = Jac_FULL(119,85) - JVS(735) = 2*B(23) +! JVS(735) = Jac_FULL(113,286) + JVS(735) = -B(232) IF (DO_JVS(736)) & -! JVS(736) = Jac_FULL(119,119) - JVS(736) = -B(1497) +! JVS(736) = Jac_FULL(114,114) + JVS(736) = -B(122)-B(140)-B(538) IF (DO_JVS(737)) & -! JVS(737) = Jac_FULL(119,144) - JVS(737) = B(1) +! JVS(737) = Jac_FULL(114,281) + JVS(737) = -B(141) IF (DO_JVS(738)) & -! JVS(738) = Jac_FULL(119,191) - JVS(738) = B(661) +! JVS(738) = Jac_FULL(114,286) + JVS(738) = -B(123) IF (DO_JVS(739)) & -! JVS(739) = Jac_FULL(119,208) - JVS(739) = B(15) +! JVS(739) = Jac_FULL(114,290) + JVS(739) = -B(539) IF (DO_JVS(740)) & -! JVS(740) = Jac_FULL(119,230) - JVS(740) = B(653) +! JVS(740) = Jac_FULL(115,79) + JVS(740) = 0.19*B(1118) IF (DO_JVS(741)) & -! JVS(741) = Jac_FULL(119,256) - JVS(741) = B(1326) +! JVS(741) = Jac_FULL(115,80) + JVS(741) = 0.15*B(1120) IF (DO_JVS(742)) & -! JVS(742) = Jac_FULL(119,262) - JVS(742) = 0 +! JVS(742) = Jac_FULL(115,115) + JVS(742) = -B(1136)-B(1138) IF (DO_JVS(743)) & -! JVS(743) = Jac_FULL(119,267) - JVS(743) = B(1312) +! JVS(743) = Jac_FULL(115,281) + JVS(743) = -B(1139) IF (DO_JVS(744)) & -! JVS(744) = Jac_FULL(119,269) - JVS(744) = 2*B(24)+B(317) +! JVS(744) = Jac_FULL(115,286) + JVS(744) = 0.19*B(1119)+0.15*B(1121)-B(1137) IF (DO_JVS(745)) & -! JVS(745) = Jac_FULL(119,277) - JVS(745) = B(2)+B(17) +! JVS(745) = Jac_FULL(116,116) + JVS(745) = -B(809)-B(1337) IF (DO_JVS(746)) & -! JVS(746) = Jac_FULL(119,286) - JVS(746) = B(3)+B(16)+B(18)+B(19)+B(318)+B(654)+B(662)+B(1313)+B(1327) +! JVS(746) = Jac_FULL(116,165) + JVS(746) = 0.595*B(786) IF (DO_JVS(747)) & -! JVS(747) = Jac_FULL(120,120) - JVS(747) = -B(891)-B(893) +! JVS(747) = Jac_FULL(116,171) + JVS(747) = 0.255*B(784) IF (DO_JVS(748)) & -! JVS(748) = Jac_FULL(120,182) - JVS(748) = 0.315*B(807) +! JVS(748) = Jac_FULL(116,214) + JVS(748) = B(862) IF (DO_JVS(749)) & -! JVS(749) = Jac_FULL(120,269) - JVS(749) = 0.315*B(808) +! JVS(749) = Jac_FULL(116,220) + JVS(749) = B(858) IF (DO_JVS(750)) & -! JVS(750) = Jac_FULL(120,280) - JVS(750) = -B(892) +! JVS(750) = Jac_FULL(116,286) + JVS(750) = 0.255*B(785)+0.595*B(787)-B(810)+B(859)+B(863) IF (DO_JVS(751)) & -! JVS(751) = Jac_FULL(120,281) - JVS(751) = -B(894) +! JVS(751) = Jac_FULL(117,117) + JVS(751) = -B(1019) IF (DO_JVS(752)) & -! JVS(752) = Jac_FULL(121,121) - JVS(752) = -B(115)-B(117)-B(351)-B(571)-B(573) +! JVS(752) = Jac_FULL(117,206) + JVS(752) = 0.35*B(1063)+0.35*B(1502) IF (DO_JVS(753)) & -! JVS(753) = Jac_FULL(121,269) - JVS(753) = -B(116)-B(118) +! JVS(753) = Jac_FULL(117,228) + JVS(753) = B(820)+0.13*B(821)+0.2*B(823) IF (DO_JVS(754)) & -! JVS(754) = Jac_FULL(121,282) - JVS(754) = -B(352) +! JVS(754) = Jac_FULL(117,279) + JVS(754) = 0.2*B(824) IF (DO_JVS(755)) & -! JVS(755) = Jac_FULL(121,285) - JVS(755) = -B(572)-B(574) +! JVS(755) = Jac_FULL(117,284) + JVS(755) = 0.13*B(822) IF (DO_JVS(756)) & -! JVS(756) = Jac_FULL(122,122) - JVS(756) = -B(1114)-B(1547) +! JVS(756) = Jac_FULL(117,286) + JVS(756) = -B(1020)+0.35*B(1064) IF (DO_JVS(757)) & -! JVS(757) = Jac_FULL(122,224) - JVS(757) = B(868) +! JVS(757) = Jac_FULL(118,64) + JVS(757) = 0.54*B(1116) IF (DO_JVS(758)) & -! JVS(758) = Jac_FULL(122,225) - JVS(758) = B(876) +! JVS(758) = Jac_FULL(118,118) + JVS(758) = -B(1132)-B(1134) IF (DO_JVS(759)) & -! JVS(759) = Jac_FULL(122,269) - JVS(759) = -B(1115) +! JVS(759) = Jac_FULL(118,281) + JVS(759) = -B(1135) IF (DO_JVS(760)) & -! JVS(760) = Jac_FULL(123,123) - JVS(760) = -B(983)-B(985) +! JVS(760) = Jac_FULL(118,286) + JVS(760) = 0.54*B(1117)-B(1133) IF (DO_JVS(761)) & -! JVS(761) = Jac_FULL(123,147) - JVS(761) = 0.841*B(1539) +! JVS(761) = Jac_FULL(119,119) + JVS(761) = -B(656)-B(1458) IF (DO_JVS(762)) & -! JVS(762) = Jac_FULL(123,239) - JVS(762) = 0.227*B(1542) +! JVS(762) = Jac_FULL(119,225) + JVS(762) = B(648) IF (DO_JVS(763)) & -! JVS(763) = Jac_FULL(123,240) - JVS(763) = 0.474*B(960) +! JVS(763) = Jac_FULL(119,238) + JVS(763) = B(624) IF (DO_JVS(764)) & -! JVS(764) = Jac_FULL(123,241) - JVS(764) = 0.474*B(961)+0.34*B(962)+0.244*B(963)+0.841*B(969)+0.841*B(973)+0.841*B(979) +! JVS(764) = Jac_FULL(119,284) + JVS(764) = B(625)+B(649) IF (DO_JVS(765)) & -! JVS(765) = Jac_FULL(123,257) - JVS(765) = 0.841*B(970) +! JVS(765) = Jac_FULL(119,286) + JVS(765) = -B(657) IF (DO_JVS(766)) & -! JVS(766) = Jac_FULL(123,263) - JVS(766) = 0.244*B(964) +! JVS(766) = Jac_FULL(120,120) + JVS(766) = -B(1112)-B(1114)-B(1511) IF (DO_JVS(767)) & -! JVS(767) = Jac_FULL(123,280) - JVS(767) = 0.841*B(980) +! JVS(767) = Jac_FULL(120,179) + JVS(767) = B(1099)+0.2*B(1105) IF (DO_JVS(768)) & -! JVS(768) = Jac_FULL(123,287) - JVS(768) = 0.841*B(974) +! JVS(768) = Jac_FULL(120,266) + JVS(768) = 0.2*B(1106) IF (DO_JVS(769)) & -! JVS(769) = Jac_FULL(124,124) - JVS(769) = -B(813)-B(1533) +! JVS(769) = Jac_FULL(120,284) + JVS(769) = B(1100) IF (DO_JVS(770)) & -! JVS(770) = Jac_FULL(124,161) - JVS(770) = 0.009*B(835) +! JVS(770) = Jac_FULL(120,286) + JVS(770) = -B(1113)-B(1115) IF (DO_JVS(771)) & -! JVS(771) = Jac_FULL(124,220) - JVS(771) = 0.15*B(761) +! JVS(771) = Jac_FULL(121,121) + JVS(771) = -B(842)-B(844) IF (DO_JVS(772)) & -! JVS(772) = Jac_FULL(124,243) - JVS(772) = 0.15*B(774) +! JVS(772) = Jac_FULL(121,186) + JVS(772) = 0.315*B(758) IF (DO_JVS(773)) & -! JVS(773) = Jac_FULL(124,269) - JVS(773) = 0.15*B(762)-B(814)+0.009*B(836) +! JVS(773) = Jac_FULL(121,279) + JVS(773) = -B(843) IF (DO_JVS(774)) & -! JVS(774) = Jac_FULL(125,125) - JVS(774) = -B(333)-B(1441) +! JVS(774) = Jac_FULL(121,284) + JVS(774) = -B(845) IF (DO_JVS(775)) & -! JVS(775) = Jac_FULL(125,172) - JVS(775) = B(331) +! JVS(775) = Jac_FULL(121,286) + JVS(775) = 0.315*B(759) IF (DO_JVS(776)) & -! JVS(776) = Jac_FULL(125,256) - JVS(776) = B(1314)+B(1322)+B(1324) +! JVS(776) = Jac_FULL(122,86) + JVS(776) = 2*B(23) IF (DO_JVS(777)) & -! JVS(777) = Jac_FULL(125,269) - JVS(777) = -B(334) +! JVS(777) = Jac_FULL(122,122) + JVS(777) = -B(1456) IF (DO_JVS(778)) & -! JVS(778) = Jac_FULL(125,272) - JVS(778) = B(1315) +! JVS(778) = Jac_FULL(122,147) + JVS(778) = B(1) IF (DO_JVS(779)) & -! JVS(779) = Jac_FULL(125,274) - JVS(779) = B(328) +! JVS(779) = Jac_FULL(122,195) + JVS(779) = B(612) IF (DO_JVS(780)) & -! JVS(780) = Jac_FULL(125,275) - JVS(780) = B(1323) +! JVS(780) = Jac_FULL(122,212) + JVS(780) = B(15) IF (DO_JVS(781)) & -! JVS(781) = Jac_FULL(125,276) - JVS(781) = B(1325) +! JVS(781) = Jac_FULL(122,234) + JVS(781) = B(604) IF (DO_JVS(782)) & -! JVS(782) = Jac_FULL(125,282) - JVS(782) = B(332) +! JVS(782) = Jac_FULL(122,260) + JVS(782) = B(1279) IF (DO_JVS(783)) & -! JVS(783) = Jac_FULL(126,126) - JVS(783) = -B(811)-B(1532) +! JVS(783) = Jac_FULL(122,263) + JVS(783) = 0 IF (DO_JVS(784)) & -! JVS(784) = Jac_FULL(126,167) - JVS(784) = 0.009*B(833) +! JVS(784) = Jac_FULL(122,271) + JVS(784) = B(1265) IF (DO_JVS(785)) & -! JVS(785) = Jac_FULL(126,220) - JVS(785) = 0.15*B(759) +! JVS(785) = Jac_FULL(122,276) + JVS(785) = B(2)+B(16)+B(17)+B(19)+2*B(24)+B(288)+B(605)+B(613)+B(1266)+B(1280) IF (DO_JVS(786)) & -! JVS(786) = Jac_FULL(126,242) - JVS(786) = 0.15*B(772) +! JVS(786) = Jac_FULL(122,282) + JVS(786) = B(3)+B(18) IF (DO_JVS(787)) & -! JVS(787) = Jac_FULL(126,269) - JVS(787) = 0.15*B(760)-B(812)+0.009*B(834) +! JVS(787) = Jac_FULL(122,286) + JVS(787) = 2*B(25)+B(289) IF (DO_JVS(788)) & -! JVS(788) = Jac_FULL(127,127) - JVS(788) = -B(860)-B(862)-B(1376) +! JVS(788) = Jac_FULL(123,123) + JVS(788) = -B(846)-B(848) IF (DO_JVS(789)) & -! JVS(789) = Jac_FULL(127,136) - JVS(789) = 0.67*B(901) +! JVS(789) = Jac_FULL(123,188) + JVS(789) = 0.315*B(760) IF (DO_JVS(790)) & -! JVS(790) = Jac_FULL(127,137) - JVS(790) = 0.67*B(905) +! JVS(790) = Jac_FULL(123,279) + JVS(790) = -B(847) IF (DO_JVS(791)) & -! JVS(791) = Jac_FULL(127,153) - JVS(791) = 0.67*B(823) +! JVS(791) = Jac_FULL(123,284) + JVS(791) = -B(849) IF (DO_JVS(792)) & -! JVS(792) = Jac_FULL(127,158) - JVS(792) = 0.68*B(827) +! JVS(792) = Jac_FULL(123,286) + JVS(792) = 0.315*B(761) IF (DO_JVS(793)) & -! JVS(793) = Jac_FULL(127,269) - JVS(793) = 0.67*B(824)+0.68*B(828)-B(861)-B(863)+0.67*B(902)+0.67*B(906) +! JVS(793) = Jac_FULL(124,124) + JVS(793) = -B(112)-B(114)-B(322)-B(530)-B(532) IF (DO_JVS(794)) & -! JVS(794) = Jac_FULL(128,128) - JVS(794) = -B(864)-B(866)-B(1377) +! JVS(794) = Jac_FULL(124,273) + JVS(794) = -B(323) IF (DO_JVS(795)) & -! JVS(795) = Jac_FULL(128,136) - JVS(795) = 0.33*B(901) +! JVS(795) = Jac_FULL(124,286) + JVS(795) = -B(113)-B(115) IF (DO_JVS(796)) & -! JVS(796) = Jac_FULL(128,137) - JVS(796) = 0.33*B(905) +! JVS(796) = Jac_FULL(124,290) + JVS(796) = -B(531)-B(533) IF (DO_JVS(797)) & -! JVS(797) = Jac_FULL(128,153) - JVS(797) = 0.33*B(823) +! JVS(797) = Jac_FULL(125,125) + JVS(797) = -B(1065)-B(1506) IF (DO_JVS(798)) & -! JVS(798) = Jac_FULL(128,158) - JVS(798) = 0.32*B(827) +! JVS(798) = Jac_FULL(125,228) + JVS(798) = B(819) IF (DO_JVS(799)) & -! JVS(799) = Jac_FULL(128,269) - JVS(799) = 0.33*B(824)+0.32*B(828)-B(865)-B(867)+0.33*B(902)+0.33*B(906) +! JVS(799) = Jac_FULL(125,229) + JVS(799) = B(827) IF (DO_JVS(800)) & -! JVS(800) = Jac_FULL(129,129) - JVS(800) = -B(196)-B(567) +! JVS(800) = Jac_FULL(125,286) + JVS(800) = -B(1066) IF (DO_JVS(801)) & -! JVS(801) = Jac_FULL(129,213) - JVS(801) = 0.25*B(178)+B(202) +! JVS(801) = Jac_FULL(126,126) + JVS(801) = -B(934)-B(936) IF (DO_JVS(802)) & -! JVS(802) = Jac_FULL(129,235) - JVS(802) = 0.25*B(180)+B(203) +! JVS(802) = Jac_FULL(126,151) + JVS(802) = 0.841*B(1498) IF (DO_JVS(803)) & -! JVS(803) = Jac_FULL(129,263) - JVS(803) = 0.25*B(179)+0.25*B(181) +! JVS(803) = Jac_FULL(126,243) + JVS(803) = 0.222*B(1501) IF (DO_JVS(804)) & -! JVS(804) = Jac_FULL(129,269) - JVS(804) = -B(197) +! JVS(804) = Jac_FULL(126,246) + JVS(804) = 0.474*B(911)+0.34*B(913)+0.244*B(914)+0.841*B(920)+0.841*B(924)+0.841*B(930) IF (DO_JVS(805)) & -! JVS(805) = Jac_FULL(129,285) - JVS(805) = -B(568) +! JVS(805) = Jac_FULL(126,247) + JVS(805) = 0.474*B(912) IF (DO_JVS(806)) & -! JVS(806) = Jac_FULL(130,130) - JVS(806) = -B(1074) +! JVS(806) = Jac_FULL(126,261) + JVS(806) = 0.841*B(921) IF (DO_JVS(807)) & -! JVS(807) = Jac_FULL(130,202) - JVS(807) = 0.15*B(1112)+0.15*B(1543)+0.122*B(1544) +! JVS(807) = Jac_FULL(126,266) + JVS(807) = 0.244*B(915) IF (DO_JVS(808)) & -! JVS(808) = Jac_FULL(130,225) - JVS(808) = B(877)+0.2*B(878)+0.13*B(882) +! JVS(808) = Jac_FULL(126,279) + JVS(808) = 0.841*B(931) IF (DO_JVS(809)) & -! JVS(809) = Jac_FULL(130,269) - JVS(809) = -B(1075)+0.15*B(1113) +! JVS(809) = Jac_FULL(126,281) + JVS(809) = 0.841*B(925) IF (DO_JVS(810)) & -! JVS(810) = Jac_FULL(130,280) - JVS(810) = 0.2*B(879) +! JVS(810) = Jac_FULL(127,127) + JVS(810) = -B(764)-B(1492) IF (DO_JVS(811)) & -! JVS(811) = Jac_FULL(130,281) - JVS(811) = 0.13*B(883) +! JVS(811) = Jac_FULL(127,165) + JVS(811) = 0.009*B(786) IF (DO_JVS(812)) & -! JVS(812) = Jac_FULL(131,131) - JVS(812) = -B(743)-B(1384)-B(1503) +! JVS(812) = Jac_FULL(127,224) + JVS(812) = 0.15*B(712) IF (DO_JVS(813)) & -! JVS(813) = Jac_FULL(131,174) - JVS(813) = B(731)+B(739) +! JVS(813) = Jac_FULL(127,244) + JVS(813) = 0.15*B(725) IF (DO_JVS(814)) & -! JVS(814) = Jac_FULL(131,196) - JVS(814) = B(733)+B(735)+B(737) +! JVS(814) = Jac_FULL(127,286) + JVS(814) = 0.15*B(713)-B(765)+0.009*B(787) IF (DO_JVS(815)) & -! JVS(815) = Jac_FULL(131,269) - JVS(815) = B(732)+B(734)-B(744) +! JVS(815) = Jac_FULL(128,128) + JVS(815) = -B(304)-B(1400) IF (DO_JVS(816)) & -! JVS(816) = Jac_FULL(131,277) - JVS(816) = B(736) +! JVS(816) = Jac_FULL(128,176) + JVS(816) = B(302) IF (DO_JVS(817)) & -! JVS(817) = Jac_FULL(131,287) - JVS(817) = B(738)+B(740) +! JVS(817) = Jac_FULL(128,260) + JVS(817) = B(1267)+B(1275)+B(1277) IF (DO_JVS(818)) & -! JVS(818) = Jac_FULL(132,132) - JVS(818) = -B(1452) +! JVS(818) = Jac_FULL(128,273) + JVS(818) = B(303) IF (DO_JVS(819)) & -! JVS(819) = Jac_FULL(132,172) - JVS(819) = B(1276) +! JVS(819) = Jac_FULL(128,274) + JVS(819) = B(299) IF (DO_JVS(820)) & -! JVS(820) = Jac_FULL(132,231) - JVS(820) = B(1298)+B(1300)+B(1302) +! JVS(820) = Jac_FULL(128,277) + JVS(820) = B(1278) IF (DO_JVS(821)) & -! JVS(821) = Jac_FULL(132,256) - JVS(821) = B(1316)+B(1318)+B(1320) +! JVS(821) = Jac_FULL(128,283) + JVS(821) = B(1276) IF (DO_JVS(822)) & -! JVS(822) = Jac_FULL(132,259) - JVS(822) = B(1282)+B(1284)+B(1286) +! JVS(822) = Jac_FULL(128,286) + JVS(822) = -B(305) IF (DO_JVS(823)) & -! JVS(823) = Jac_FULL(132,267) - JVS(823) = B(1306) +! JVS(823) = Jac_FULL(128,289) + JVS(823) = B(1268) IF (DO_JVS(824)) & -! JVS(824) = Jac_FULL(132,271) - JVS(824) = B(1277)+B(1317) +! JVS(824) = Jac_FULL(129,129) + JVS(824) = -B(762)-B(1491) IF (DO_JVS(825)) & -! JVS(825) = Jac_FULL(132,272) - JVS(825) = B(1283)+B(1303)+B(1307) +! JVS(825) = Jac_FULL(129,171) + JVS(825) = 0.009*B(784) IF (DO_JVS(826)) & -! JVS(826) = Jac_FULL(132,273) - JVS(826) = B(541) +! JVS(826) = Jac_FULL(129,224) + JVS(826) = 0.15*B(710) IF (DO_JVS(827)) & -! JVS(827) = Jac_FULL(132,274) - JVS(827) = B(542) +! JVS(827) = Jac_FULL(129,245) + JVS(827) = 0.15*B(723) IF (DO_JVS(828)) & -! JVS(828) = Jac_FULL(132,275) - JVS(828) = B(1285)+B(1299) +! JVS(828) = Jac_FULL(129,286) + JVS(828) = 0.15*B(711)-B(763)+0.009*B(785) IF (DO_JVS(829)) & -! JVS(829) = Jac_FULL(132,276) - JVS(829) = B(1287)+B(1301) +! JVS(829) = Jac_FULL(130,130) + JVS(829) = -B(811)-B(813)-B(1335) IF (DO_JVS(830)) & -! JVS(830) = Jac_FULL(132,278) - JVS(830) = B(1319) +! JVS(830) = Jac_FULL(130,139) + JVS(830) = 0.67*B(852) IF (DO_JVS(831)) & -! JVS(831) = Jac_FULL(132,283) - JVS(831) = B(1321) +! JVS(831) = Jac_FULL(130,140) + JVS(831) = 0.67*B(856) IF (DO_JVS(832)) & -! JVS(832) = Jac_FULL(133,133) - JVS(832) = -B(1086)-0.75*B(1522) +! JVS(832) = Jac_FULL(130,157) + JVS(832) = 0.67*B(774) IF (DO_JVS(833)) & -! JVS(833) = Jac_FULL(133,203) - JVS(833) = 0.5*B(1084) +! JVS(833) = Jac_FULL(130,162) + JVS(833) = 0.68*B(778) IF (DO_JVS(834)) & -! JVS(834) = Jac_FULL(133,269) - JVS(834) = -B(1087) +! JVS(834) = Jac_FULL(130,286) + JVS(834) = 0.67*B(775)+0.68*B(779)-B(812)-B(814)+0.67*B(853)+0.67*B(857) IF (DO_JVS(835)) & -! JVS(835) = Jac_FULL(133,281) - JVS(835) = 0.5*B(1085) +! JVS(835) = Jac_FULL(131,131) + JVS(835) = -B(815)-B(817)-B(1336) IF (DO_JVS(836)) & -! JVS(836) = Jac_FULL(134,134) - JVS(836) = -B(58)-B(60)-B(557)-B(1405) +! JVS(836) = Jac_FULL(131,139) + JVS(836) = 0.33*B(852) IF (DO_JVS(837)) & -! JVS(837) = Jac_FULL(134,263) - JVS(837) = B(52) +! JVS(837) = Jac_FULL(131,140) + JVS(837) = 0.33*B(856) IF (DO_JVS(838)) & -! JVS(838) = Jac_FULL(134,269) - JVS(838) = -B(59)-B(61) +! JVS(838) = Jac_FULL(131,157) + JVS(838) = 0.33*B(774) IF (DO_JVS(839)) & -! JVS(839) = Jac_FULL(134,281) - JVS(839) = B(53) +! JVS(839) = Jac_FULL(131,162) + JVS(839) = 0.32*B(778) IF (DO_JVS(840)) & -! JVS(840) = Jac_FULL(134,285) - JVS(840) = -B(558) +! JVS(840) = Jac_FULL(131,286) + JVS(840) = 0.33*B(775)+0.32*B(779)-B(816)-B(818)+0.33*B(853)+0.33*B(857) IF (DO_JVS(841)) & -! JVS(841) = Jac_FULL(135,135) - JVS(841) = -2*B(8)-B(11)-B(13) +! JVS(841) = Jac_FULL(132,132) + JVS(841) = -B(1025) IF (DO_JVS(842)) & -! JVS(842) = Jac_FULL(135,260) - JVS(842) = -B(14) +! JVS(842) = Jac_FULL(132,206) + JVS(842) = 0.15*B(1063)+0.15*B(1502)+0.163*B(1503) IF (DO_JVS(843)) & -! JVS(843) = Jac_FULL(135,271) - JVS(843) = -B(12) +! JVS(843) = Jac_FULL(132,229) + JVS(843) = B(828)+0.2*B(829)+0.13*B(833) IF (DO_JVS(844)) & -! JVS(844) = Jac_FULL(135,277) - JVS(844) = -2*B(9) +! JVS(844) = Jac_FULL(132,279) + JVS(844) = 0.2*B(830) IF (DO_JVS(845)) & -! JVS(845) = Jac_FULL(135,286) - JVS(845) = -2*B(10) +! JVS(845) = Jac_FULL(132,284) + JVS(845) = 0.13*B(834) IF (DO_JVS(846)) & -! JVS(846) = Jac_FULL(136,136) - JVS(846) = -B(899)-B(901)-B(1388)-B(1535) +! JVS(846) = Jac_FULL(132,286) + JVS(846) = -B(1026)+0.15*B(1064) IF (DO_JVS(847)) & -! JVS(847) = Jac_FULL(136,242) - JVS(847) = B(791) +! JVS(847) = Jac_FULL(133,133) + JVS(847) = -B(193)-B(526) IF (DO_JVS(848)) & -! JVS(848) = Jac_FULL(136,269) - JVS(848) = -B(900)-B(902) +! JVS(848) = Jac_FULL(133,217) + JVS(848) = 0.25*B(175)+0.4*B(197) IF (DO_JVS(849)) & -! JVS(849) = Jac_FULL(136,280) - JVS(849) = B(792) +! JVS(849) = Jac_FULL(133,239) + JVS(849) = 0.25*B(177)+0.4*B(198) IF (DO_JVS(850)) & -! JVS(850) = Jac_FULL(137,137) - JVS(850) = -B(903)-B(905)-B(1389)-B(1536) +! JVS(850) = Jac_FULL(133,266) + JVS(850) = 0.25*B(176)+0.25*B(178) IF (DO_JVS(851)) & -! JVS(851) = Jac_FULL(137,243) - JVS(851) = B(799) +! JVS(851) = Jac_FULL(133,286) + JVS(851) = -B(194) IF (DO_JVS(852)) & -! JVS(852) = Jac_FULL(137,269) - JVS(852) = -B(904)-B(906) +! JVS(852) = Jac_FULL(133,290) + JVS(852) = -B(527) IF (DO_JVS(853)) & -! JVS(853) = Jac_FULL(137,280) - JVS(853) = B(800) +! JVS(853) = Jac_FULL(134,134) + JVS(853) = -B(694)-B(1343)-B(1462) IF (DO_JVS(854)) & -! JVS(854) = Jac_FULL(138,109) - JVS(854) = 0.727*B(1185) +! JVS(854) = Jac_FULL(134,178) + JVS(854) = B(682)+B(690) IF (DO_JVS(855)) & -! JVS(855) = Jac_FULL(138,117) - JVS(855) = 0.8*B(1181) +! JVS(855) = Jac_FULL(134,199) + JVS(855) = B(684)+B(686)+B(688) IF (DO_JVS(856)) & -! JVS(856) = Jac_FULL(138,138) - JVS(856) = -B(1189)-B(1191)-B(1193) +! JVS(856) = Jac_FULL(134,281) + JVS(856) = B(689)+B(691) IF (DO_JVS(857)) & -! JVS(857) = Jac_FULL(138,269) - JVS(857) = 0.8*B(1182)+0.727*B(1186)-B(1190) +! JVS(857) = Jac_FULL(134,282) + JVS(857) = B(687) IF (DO_JVS(858)) & -! JVS(858) = Jac_FULL(138,277) - JVS(858) = -B(1192) +! JVS(858) = Jac_FULL(134,286) + JVS(858) = B(683)+B(685)-B(695) IF (DO_JVS(859)) & -! JVS(859) = Jac_FULL(138,287) - JVS(859) = -B(1194) +! JVS(859) = Jac_FULL(135,135) + JVS(859) = -B(1411) IF (DO_JVS(860)) & -! JVS(860) = Jac_FULL(139,139) - JVS(860) = -B(1116)-B(1545) +! JVS(860) = Jac_FULL(135,176) + JVS(860) = B(1229) IF (DO_JVS(861)) & -! JVS(861) = Jac_FULL(139,179) - JVS(861) = 0.725*B(842) +! JVS(861) = Jac_FULL(135,235) + JVS(861) = B(1251)+B(1253)+B(1255) IF (DO_JVS(862)) & -! JVS(862) = Jac_FULL(139,180) - JVS(862) = 0.725*B(849) +! JVS(862) = Jac_FULL(135,260) + JVS(862) = B(1269)+B(1271)+B(1273) IF (DO_JVS(863)) & -! JVS(863) = Jac_FULL(139,183) - JVS(863) = 0.35*B(856) +! JVS(863) = Jac_FULL(135,262) + JVS(863) = B(1235)+B(1237)+B(1239) IF (DO_JVS(864)) & -! JVS(864) = Jac_FULL(139,269) - JVS(864) = -B(1117) +! JVS(864) = Jac_FULL(135,271) + JVS(864) = B(1259) IF (DO_JVS(865)) & -! JVS(865) = Jac_FULL(139,281) - JVS(865) = 0.725*B(843)+0.725*B(850)+0.35*B(857) +! JVS(865) = Jac_FULL(135,274) + JVS(865) = B(500) IF (DO_JVS(866)) & -! JVS(866) = Jac_FULL(140,56) - JVS(866) = B(587) +! JVS(866) = Jac_FULL(135,275) + JVS(866) = B(1230)+B(1270) IF (DO_JVS(867)) & -! JVS(867) = Jac_FULL(140,140) - JVS(867) = -B(592)-B(621)-B(1476) +! JVS(867) = Jac_FULL(135,277) + JVS(867) = B(1240)+B(1254) IF (DO_JVS(868)) & -! JVS(868) = Jac_FULL(140,199) - JVS(868) = B(591) +! JVS(868) = Jac_FULL(135,280) + JVS(868) = B(1272) IF (DO_JVS(869)) & -! JVS(869) = Jac_FULL(140,265) - JVS(869) = B(597) +! JVS(869) = Jac_FULL(135,283) + JVS(869) = B(1238)+B(1252) IF (DO_JVS(870)) & -! JVS(870) = Jac_FULL(140,266) - JVS(870) = B(598) +! JVS(870) = Jac_FULL(135,285) + JVS(870) = B(501) IF (DO_JVS(871)) & -! JVS(871) = Jac_FULL(140,269) - JVS(871) = -B(622) +! JVS(871) = Jac_FULL(135,287) + JVS(871) = B(1274) IF (DO_JVS(872)) & -! JVS(872) = Jac_FULL(140,280) - JVS(872) = 0 +! JVS(872) = Jac_FULL(135,289) + JVS(872) = B(1236)+B(1256)+B(1260) IF (DO_JVS(873)) & -! JVS(873) = Jac_FULL(140,287) - JVS(873) = -B(593) +! JVS(873) = Jac_FULL(136,136) + JVS(873) = -B(1037)-0.75*B(1481) IF (DO_JVS(874)) & -! JVS(874) = Jac_FULL(141,141) - JVS(874) = -B(1052)-B(1054)-B(1056) +! JVS(874) = Jac_FULL(136,207) + JVS(874) = 0.5*B(1035) IF (DO_JVS(875)) & -! JVS(875) = Jac_FULL(141,182) - JVS(875) = 0.224*B(1530) +! JVS(875) = Jac_FULL(136,284) + JVS(875) = 0.5*B(1036) IF (DO_JVS(876)) & -! JVS(876) = Jac_FULL(141,236) - JVS(876) = 0.068*B(1541) +! JVS(876) = Jac_FULL(136,286) + JVS(876) = -B(1038) IF (DO_JVS(877)) & -! JVS(877) = Jac_FULL(141,270) - JVS(877) = -B(1057) +! JVS(877) = Jac_FULL(137,137) + JVS(877) = -B(59)-B(516)-B(1364) IF (DO_JVS(878)) & -! JVS(878) = Jac_FULL(141,280) - JVS(878) = -B(1053) +! JVS(878) = Jac_FULL(137,266) + JVS(878) = B(53) IF (DO_JVS(879)) & -! JVS(879) = Jac_FULL(141,281) - JVS(879) = -B(1055) +! JVS(879) = Jac_FULL(137,284) + JVS(879) = B(54) IF (DO_JVS(880)) & -! JVS(880) = Jac_FULL(142,142) - JVS(880) = -B(1058)-B(1060)-B(1062) +! JVS(880) = Jac_FULL(137,286) + JVS(880) = -B(60) IF (DO_JVS(881)) & -! JVS(881) = Jac_FULL(142,184) - JVS(881) = 0.182*B(1531) +! JVS(881) = Jac_FULL(137,290) + JVS(881) = -B(517) IF (DO_JVS(882)) & -! JVS(882) = Jac_FULL(142,236) - JVS(882) = 0.128*B(1541) +! JVS(882) = Jac_FULL(138,138) + JVS(882) = -2*B(8)-B(11)-B(13) IF (DO_JVS(883)) & -! JVS(883) = Jac_FULL(142,270) - JVS(883) = -B(1063) +! JVS(883) = Jac_FULL(138,265) + JVS(883) = -B(14) IF (DO_JVS(884)) & -! JVS(884) = Jac_FULL(142,280) - JVS(884) = -B(1059) +! JVS(884) = Jac_FULL(138,275) + JVS(884) = -B(12) IF (DO_JVS(885)) & -! JVS(885) = Jac_FULL(142,281) - JVS(885) = -B(1061) +! JVS(885) = Jac_FULL(138,276) + JVS(885) = -2*B(9) IF (DO_JVS(886)) & -! JVS(886) = Jac_FULL(143,143) - JVS(886) = -B(1026)-B(1028) +! JVS(886) = Jac_FULL(138,282) + JVS(886) = -2*B(10) IF (DO_JVS(887)) & -! JVS(887) = Jac_FULL(143,239) - JVS(887) = 0.435*B(1024) +! JVS(887) = Jac_FULL(139,139) + JVS(887) = -B(850)-B(852)-B(1347)-B(1494) IF (DO_JVS(888)) & -! JVS(888) = Jac_FULL(143,269) - JVS(888) = 0.435*B(1025) +! JVS(888) = Jac_FULL(139,245) + JVS(888) = B(742) IF (DO_JVS(889)) & -! JVS(889) = Jac_FULL(143,280) - JVS(889) = -B(1027) +! JVS(889) = Jac_FULL(139,279) + JVS(889) = B(743) IF (DO_JVS(890)) & -! JVS(890) = Jac_FULL(143,281) - JVS(890) = -B(1029) +! JVS(890) = Jac_FULL(139,286) + JVS(890) = -B(851)-B(853) IF (DO_JVS(891)) & -! JVS(891) = Jac_FULL(144,144) - JVS(891) = -2*B(1)-B(4)-B(6) +! JVS(891) = Jac_FULL(140,140) + JVS(891) = -B(854)-B(856)-B(1348)-B(1495) IF (DO_JVS(892)) & -! JVS(892) = Jac_FULL(144,260) - JVS(892) = -B(7) +! JVS(892) = Jac_FULL(140,244) + JVS(892) = B(750) IF (DO_JVS(893)) & -! JVS(893) = Jac_FULL(144,271) - JVS(893) = -B(5) +! JVS(893) = Jac_FULL(140,279) + JVS(893) = B(751) IF (DO_JVS(894)) & -! JVS(894) = Jac_FULL(144,277) - JVS(894) = -2*B(2) +! JVS(894) = Jac_FULL(140,286) + JVS(894) = -B(855)-B(857) IF (DO_JVS(895)) & -! JVS(895) = Jac_FULL(144,286) - JVS(895) = -2*B(3) +! JVS(895) = Jac_FULL(141,141) + JVS(895) = -B(1067)-B(1504) IF (DO_JVS(896)) & -! JVS(896) = Jac_FULL(145,76) - JVS(896) = 0.3*B(1167) +! JVS(896) = Jac_FULL(141,182) + JVS(896) = 0.725*B(793) IF (DO_JVS(897)) & -! JVS(897) = Jac_FULL(145,77) - JVS(897) = 0.56*B(1169) +! JVS(897) = Jac_FULL(141,183) + JVS(897) = 0.725*B(800) IF (DO_JVS(898)) & -! JVS(898) = Jac_FULL(145,109) - JVS(898) = 0.44*B(1185)+0.44*B(1187) +! JVS(898) = Jac_FULL(141,187) + JVS(898) = 0.35*B(807) IF (DO_JVS(899)) & -! JVS(899) = Jac_FULL(145,145) - JVS(899) = -B(1237)-B(1239)-B(1241) +! JVS(899) = Jac_FULL(141,284) + JVS(899) = 0.725*B(794)+0.725*B(801)+0.35*B(808) IF (DO_JVS(900)) & -! JVS(900) = Jac_FULL(145,269) - JVS(900) = 0.3*B(1168)+0.56*B(1170)+0.44*B(1186)-B(1238) +! JVS(900) = Jac_FULL(141,286) + JVS(900) = -B(1068) IF (DO_JVS(901)) & -! JVS(901) = Jac_FULL(145,277) - JVS(901) = -B(1240) +! JVS(901) = Jac_FULL(142,115) + JVS(901) = 0.727*B(1136) IF (DO_JVS(902)) & -! JVS(902) = Jac_FULL(145,287) - JVS(902) = 0.44*B(1188) +! JVS(902) = Jac_FULL(142,118) + JVS(902) = 0.8*B(1132) IF (DO_JVS(903)) & -! JVS(903) = Jac_FULL(146,146) - JVS(903) = -0.33*B(1020)-0.33*B(1022) +! JVS(903) = Jac_FULL(142,142) + JVS(903) = -B(1140)-B(1142)-B(1144) IF (DO_JVS(904)) & -! JVS(904) = Jac_FULL(146,236) - JVS(904) = 0.461*B(1018) +! JVS(904) = Jac_FULL(142,281) + JVS(904) = -B(1145) IF (DO_JVS(905)) & -! JVS(905) = Jac_FULL(146,238) - JVS(905) = 0.041*B(1122) +! JVS(905) = Jac_FULL(142,282) + JVS(905) = -B(1143) IF (DO_JVS(906)) & -! JVS(906) = Jac_FULL(146,269) - JVS(906) = 0.461*B(1019)+0.041*B(1123) +! JVS(906) = Jac_FULL(142,286) + JVS(906) = 0.8*B(1133)+0.727*B(1137)-B(1141) IF (DO_JVS(907)) & -! JVS(907) = Jac_FULL(146,280) - JVS(907) = -0.33*B(1021) +! JVS(907) = Jac_FULL(143,60) + JVS(907) = B(546) IF (DO_JVS(908)) & -! JVS(908) = Jac_FULL(146,281) - JVS(908) = -0.33*B(1023) +! JVS(908) = Jac_FULL(143,143) + JVS(908) = -B(551)-B(574)-B(1435) IF (DO_JVS(909)) & -! JVS(909) = Jac_FULL(147,147) - JVS(909) = -B(988)-B(992)-B(994)-B(998)-B(1000)-B(1392)-B(1539)-B(1540) +! JVS(909) = Jac_FULL(143,203) + JVS(909) = B(550) IF (DO_JVS(910)) & -! JVS(910) = Jac_FULL(147,241) - JVS(910) = B(957) +! JVS(910) = Jac_FULL(143,269) + JVS(910) = B(556) IF (DO_JVS(911)) & -! JVS(911) = Jac_FULL(147,269) - JVS(911) = -B(989)-B(993)-B(995)-B(999)-B(1001) +! JVS(911) = Jac_FULL(143,270) + JVS(911) = B(557) IF (DO_JVS(912)) & -! JVS(912) = Jac_FULL(147,281) - JVS(912) = B(958) +! JVS(912) = Jac_FULL(143,279) + JVS(912) = 0 IF (DO_JVS(913)) & -! JVS(913) = Jac_FULL(148,137) - JVS(913) = B(903) +! JVS(913) = Jac_FULL(143,281) + JVS(913) = -B(552) IF (DO_JVS(914)) & -! JVS(914) = Jac_FULL(148,148) - JVS(914) = -B(926)-B(927)-B(929)-B(931) +! JVS(914) = Jac_FULL(143,286) + JVS(914) = -B(575) IF (DO_JVS(915)) & -! JVS(915) = Jac_FULL(148,243) - JVS(915) = 0 +! JVS(915) = Jac_FULL(144,144) + JVS(915) = -B(1003)-B(1005)-B(1007) IF (DO_JVS(916)) & -! JVS(916) = Jac_FULL(148,269) - JVS(916) = B(904) +! JVS(916) = Jac_FULL(144,186) + JVS(916) = 0.224*B(1489) IF (DO_JVS(917)) & -! JVS(917) = Jac_FULL(148,280) - JVS(917) = -B(930)-B(932) +! JVS(917) = Jac_FULL(144,240) + JVS(917) = 0.068*B(1500) IF (DO_JVS(918)) & -! JVS(918) = Jac_FULL(148,281) - JVS(918) = -B(928) +! JVS(918) = Jac_FULL(144,279) + JVS(918) = -B(1004) IF (DO_JVS(919)) & -! JVS(919) = Jac_FULL(149,149) - JVS(919) = -B(1107)-B(1108) +! JVS(919) = Jac_FULL(144,284) + JVS(919) = -B(1006) IF (DO_JVS(920)) & -! JVS(920) = Jac_FULL(149,203) - JVS(920) = B(1095) +! JVS(920) = Jac_FULL(144,291) + JVS(920) = -B(1008) IF (DO_JVS(921)) & -! JVS(921) = Jac_FULL(149,245) - JVS(921) = B(1101) +! JVS(921) = Jac_FULL(145,145) + JVS(921) = -B(1009)-B(1011)-B(1013) IF (DO_JVS(922)) & -! JVS(922) = Jac_FULL(149,269) - JVS(922) = -B(1109) +! JVS(922) = Jac_FULL(145,188) + JVS(922) = 0.182*B(1490) IF (DO_JVS(923)) & -! JVS(923) = Jac_FULL(149,270) - JVS(923) = B(1096)+B(1102) +! JVS(923) = Jac_FULL(145,240) + JVS(923) = 0.128*B(1500) IF (DO_JVS(924)) & -! JVS(924) = Jac_FULL(150,150) - JVS(924) = -B(667)-B(681)-B(685) +! JVS(924) = Jac_FULL(145,279) + JVS(924) = -B(1010) IF (DO_JVS(925)) & -! JVS(925) = Jac_FULL(150,269) - JVS(925) = -B(668) +! JVS(925) = Jac_FULL(145,284) + JVS(925) = -B(1012) IF (DO_JVS(926)) & -! JVS(926) = Jac_FULL(150,277) - JVS(926) = -B(682) +! JVS(926) = Jac_FULL(145,291) + JVS(926) = -B(1014) IF (DO_JVS(927)) & -! JVS(927) = Jac_FULL(150,287) - JVS(927) = -B(686) +! JVS(927) = Jac_FULL(146,146) + JVS(927) = -B(977)-B(979) IF (DO_JVS(928)) & -! JVS(928) = Jac_FULL(151,151) - JVS(928) = -B(669)-B(683)-B(687) +! JVS(928) = Jac_FULL(146,243) + JVS(928) = 0.435*B(975) IF (DO_JVS(929)) & -! JVS(929) = Jac_FULL(151,269) - JVS(929) = -B(670) +! JVS(929) = Jac_FULL(146,279) + JVS(929) = -B(978) IF (DO_JVS(930)) & -! JVS(930) = Jac_FULL(151,277) - JVS(930) = -B(684) +! JVS(930) = Jac_FULL(146,284) + JVS(930) = -B(980) IF (DO_JVS(931)) & -! JVS(931) = Jac_FULL(151,287) - JVS(931) = -B(688) +! JVS(931) = Jac_FULL(146,286) + JVS(931) = 0.435*B(976) IF (DO_JVS(932)) & -! JVS(932) = Jac_FULL(152,106) - JVS(932) = B(819) +! JVS(932) = Jac_FULL(147,147) + JVS(932) = -2*B(1)-B(4)-B(6) IF (DO_JVS(933)) & -! JVS(933) = Jac_FULL(152,122) - JVS(933) = 0.444*B(1114)+0.454*B(1547) +! JVS(933) = Jac_FULL(147,265) + JVS(933) = -B(7) IF (DO_JVS(934)) & -! JVS(934) = Jac_FULL(152,152) - JVS(934) = -B(1066)-B(1519) +! JVS(934) = Jac_FULL(147,275) + JVS(934) = -B(5) IF (DO_JVS(935)) & -! JVS(935) = Jac_FULL(152,182) - JVS(935) = 0.112*B(1530) +! JVS(935) = Jac_FULL(147,276) + JVS(935) = -2*B(2) IF (DO_JVS(936)) & -! JVS(936) = Jac_FULL(152,184) - JVS(936) = 0.182*B(1531) +! JVS(936) = Jac_FULL(147,282) + JVS(936) = -2*B(3) IF (DO_JVS(937)) & -! JVS(937) = Jac_FULL(152,224) - JVS(937) = 0 +! JVS(937) = Jac_FULL(148,79) + JVS(937) = 0.3*B(1118) IF (DO_JVS(938)) & -! JVS(938) = Jac_FULL(152,225) - JVS(938) = 0 +! JVS(938) = Jac_FULL(148,80) + JVS(938) = 0.56*B(1120) IF (DO_JVS(939)) & -! JVS(939) = Jac_FULL(152,236) - JVS(939) = 0.162*B(1541) +! JVS(939) = Jac_FULL(148,115) + JVS(939) = 0.44*B(1136)+0.44*B(1138) IF (DO_JVS(940)) & -! JVS(940) = Jac_FULL(152,269) - JVS(940) = B(820)-B(1067)+0.444*B(1115) +! JVS(940) = Jac_FULL(148,148) + JVS(940) = -B(1188)-B(1190)-B(1192) IF (DO_JVS(941)) & -! JVS(941) = Jac_FULL(153,153) - JVS(941) = -B(821)-B(823)-B(829)-B(1526) +! JVS(941) = Jac_FULL(148,281) + JVS(941) = 0.44*B(1139) IF (DO_JVS(942)) & -! JVS(942) = Jac_FULL(153,242) - JVS(942) = 0.937*B(763) +! JVS(942) = Jac_FULL(148,282) + JVS(942) = -B(1191) IF (DO_JVS(943)) & -! JVS(943) = Jac_FULL(153,269) - JVS(943) = -B(822)-B(824)-B(830) +! JVS(943) = Jac_FULL(148,286) + JVS(943) = 0.3*B(1119)+0.56*B(1121)+0.44*B(1137)-B(1189) IF (DO_JVS(944)) & -! JVS(944) = Jac_FULL(153,281) - JVS(944) = 0.937*B(764) +! JVS(944) = Jac_FULL(149,149) + JVS(944) = -0.9*B(396)-B(448)-B(506)-B(1409) IF (DO_JVS(945)) & -! JVS(945) = Jac_FULL(154,154) - JVS(945) = -B(198) +! JVS(945) = Jac_FULL(149,272) + JVS(945) = -0.9*B(397) IF (DO_JVS(946)) & -! JVS(946) = Jac_FULL(154,197) - JVS(946) = 0.25*B(194) +! JVS(946) = Jac_FULL(149,286) + JVS(946) = -B(449) IF (DO_JVS(947)) & -! JVS(947) = Jac_FULL(154,204) - JVS(947) = 0.25*B(162) +! JVS(947) = Jac_FULL(149,290) + JVS(947) = -B(507) IF (DO_JVS(948)) & -! JVS(948) = Jac_FULL(154,212) - JVS(948) = 0.25*B(717) +! JVS(948) = Jac_FULL(150,150) + JVS(948) = -0.33*B(971)-0.33*B(973) IF (DO_JVS(949)) & -! JVS(949) = Jac_FULL(154,221) - JVS(949) = 0.25*B(699) +! JVS(949) = Jac_FULL(150,240) + JVS(949) = 0.461*B(969) IF (DO_JVS(950)) & -! JVS(950) = Jac_FULL(154,233) - JVS(950) = 0.25*B(160) +! JVS(950) = Jac_FULL(150,242) + JVS(950) = 0.041*B(1073) IF (DO_JVS(951)) & -! JVS(951) = Jac_FULL(154,234) - JVS(951) = 0.25*B(675) +! JVS(951) = Jac_FULL(150,279) + JVS(951) = -0.33*B(972) IF (DO_JVS(952)) & -! JVS(952) = Jac_FULL(154,249) - JVS(952) = 0.25*B(190) +! JVS(952) = Jac_FULL(150,284) + JVS(952) = -0.33*B(974) IF (DO_JVS(953)) & -! JVS(953) = Jac_FULL(154,251) - JVS(953) = 0.25*B(186) +! JVS(953) = Jac_FULL(150,286) + JVS(953) = 0.461*B(970)+0.041*B(1074) IF (DO_JVS(954)) & -! JVS(954) = Jac_FULL(154,252) - JVS(954) = 0.25*B(184) +! JVS(954) = Jac_FULL(151,151) + JVS(954) = -B(939)-B(943)-B(945)-B(949)-B(951)-B(1351)-B(1498)-B(1499) IF (DO_JVS(955)) & -! JVS(955) = Jac_FULL(154,253) - JVS(955) = 0.25*B(192) +! JVS(955) = Jac_FULL(151,246) + JVS(955) = B(908) IF (DO_JVS(956)) & -! JVS(956) = Jac_FULL(154,263) - JVS(956) = 0.25*B(161)+0.25*B(163)+0.25*B(185)+0.25*B(187)+0.25*B(191)+0.25*B(193)+0.25*B(195)+0.25*B(676)+0.25*B(700)& - &+0.25*B(718) +! JVS(956) = Jac_FULL(151,284) + JVS(956) = B(909) IF (DO_JVS(957)) & -! JVS(957) = Jac_FULL(154,269) - JVS(957) = -B(199) +! JVS(957) = Jac_FULL(151,286) + JVS(957) = -B(940)-B(944)-B(946)-B(950)-B(952) IF (DO_JVS(958)) & -! JVS(958) = Jac_FULL(155,60) - JVS(958) = 0.56*B(1165) +! JVS(958) = Jac_FULL(152,140) + JVS(958) = B(854) IF (DO_JVS(959)) & -! JVS(959) = Jac_FULL(155,76) - JVS(959) = 0.68*B(1167) +! JVS(959) = Jac_FULL(152,152) + JVS(959) = -B(877)-B(878)-B(880)-B(882) IF (DO_JVS(960)) & -! JVS(960) = Jac_FULL(155,77) - JVS(960) = 0.28*B(1169) +! JVS(960) = Jac_FULL(152,244) + JVS(960) = 0 IF (DO_JVS(961)) & -! JVS(961) = Jac_FULL(155,117) - JVS(961) = 0.18*B(1181) +! JVS(961) = Jac_FULL(152,279) + JVS(961) = -B(881)-B(883) IF (DO_JVS(962)) & -! JVS(962) = Jac_FULL(155,138) - JVS(962) = 1.05*B(1189)+B(1191)+0.3*B(1193) +! JVS(962) = Jac_FULL(152,284) + JVS(962) = -B(879) IF (DO_JVS(963)) & -! JVS(963) = Jac_FULL(155,155) - JVS(963) = -B(1232)-B(1234)-B(1236) +! JVS(963) = Jac_FULL(152,286) + JVS(963) = B(855) IF (DO_JVS(964)) & -! JVS(964) = Jac_FULL(155,206) - JVS(964) = B(1224)+B(1226)+B(1556) +! JVS(964) = Jac_FULL(153,153) + JVS(964) = -B(1058)-B(1059) IF (DO_JVS(965)) & -! JVS(965) = Jac_FULL(155,269) - JVS(965) = 0.56*B(1166)+0.68*B(1168)+0.28*B(1170)+0.18*B(1182)+1.05*B(1190)+B(1225)-B(1233) +! JVS(965) = Jac_FULL(153,207) + JVS(965) = B(1046) IF (DO_JVS(966)) & -! JVS(966) = Jac_FULL(155,277) - JVS(966) = B(1192)-B(1235) +! JVS(966) = Jac_FULL(153,249) + JVS(966) = B(1052) IF (DO_JVS(967)) & -! JVS(967) = Jac_FULL(155,287) - JVS(967) = 0.3*B(1194)+B(1227) +! JVS(967) = Jac_FULL(153,286) + JVS(967) = -B(1060) IF (DO_JVS(968)) & -! JVS(968) = Jac_FULL(156,105) - JVS(968) = B(1555) +! JVS(968) = Jac_FULL(153,291) + JVS(968) = B(1047)+B(1053) IF (DO_JVS(969)) & -! JVS(969) = Jac_FULL(156,109) - JVS(969) = 0.073*B(1185)+0.3*B(1187) +! JVS(969) = Jac_FULL(154,154) + JVS(969) = -B(618)-B(632)-B(636) IF (DO_JVS(970)) & -! JVS(970) = Jac_FULL(156,117) - JVS(970) = 0.06*B(1181)+0.742*B(1183) +! JVS(970) = Jac_FULL(154,281) + JVS(970) = -B(637) IF (DO_JVS(971)) & -! JVS(971) = Jac_FULL(156,138) - JVS(971) = 0.3*B(1189)+0.3*B(1193) +! JVS(971) = Jac_FULL(154,282) + JVS(971) = -B(633) IF (DO_JVS(972)) & -! JVS(972) = Jac_FULL(156,156) - JVS(972) = -B(1220)-B(1222) +! JVS(972) = Jac_FULL(154,286) + JVS(972) = -B(619) IF (DO_JVS(973)) & -! JVS(973) = Jac_FULL(156,176) - JVS(973) = 0 +! JVS(973) = Jac_FULL(155,155) + JVS(973) = -B(620)-B(634)-B(638) IF (DO_JVS(974)) & -! JVS(974) = Jac_FULL(156,187) - JVS(974) = B(1210)+B(1212)+B(1214)+B(1228) +! JVS(974) = Jac_FULL(155,281) + JVS(974) = -B(639) IF (DO_JVS(975)) & -! JVS(975) = Jac_FULL(156,263) - JVS(975) = B(1229) +! JVS(975) = Jac_FULL(155,282) + JVS(975) = -B(635) IF (DO_JVS(976)) & -! JVS(976) = Jac_FULL(156,269) - JVS(976) = 0.06*B(1182)+0.073*B(1186)+0.3*B(1190) +! JVS(976) = Jac_FULL(155,286) + JVS(976) = -B(621) IF (DO_JVS(977)) & -! JVS(977) = Jac_FULL(156,270) - JVS(977) = B(1211)-B(1223) +! JVS(977) = Jac_FULL(156,109) + JVS(977) = B(770) IF (DO_JVS(978)) & -! JVS(978) = Jac_FULL(156,277) - JVS(978) = -B(1221) +! JVS(978) = Jac_FULL(156,125) + JVS(978) = 0.444*B(1065)+0.454*B(1506) IF (DO_JVS(979)) & -! JVS(979) = Jac_FULL(156,280) - JVS(979) = B(1213) +! JVS(979) = Jac_FULL(156,156) + JVS(979) = -B(1017)-B(1478) IF (DO_JVS(980)) & -! JVS(980) = Jac_FULL(156,281) - JVS(980) = 0 +! JVS(980) = Jac_FULL(156,186) + JVS(980) = 0.112*B(1489) IF (DO_JVS(981)) & -! JVS(981) = Jac_FULL(156,287) - JVS(981) = 0.742*B(1184)+0.3*B(1188)+0.3*B(1194)+B(1215) +! JVS(981) = Jac_FULL(156,188) + JVS(981) = 0.182*B(1490) IF (DO_JVS(982)) & -! JVS(982) = Jac_FULL(157,157) - JVS(982) = -B(107)-B(266)-B(349)-B(559) +! JVS(982) = Jac_FULL(156,228) + JVS(982) = 0 IF (DO_JVS(983)) & -! JVS(983) = Jac_FULL(157,269) - JVS(983) = -B(108) +! JVS(983) = Jac_FULL(156,229) + JVS(983) = 0 IF (DO_JVS(984)) & -! JVS(984) = Jac_FULL(157,282) - JVS(984) = -B(350) +! JVS(984) = Jac_FULL(156,240) + JVS(984) = 0.162*B(1500) IF (DO_JVS(985)) & -! JVS(985) = Jac_FULL(157,285) - JVS(985) = -B(560) +! JVS(985) = Jac_FULL(156,286) + JVS(985) = B(771)-B(1018)+0.444*B(1066) IF (DO_JVS(986)) & -! JVS(986) = Jac_FULL(157,287) - JVS(986) = -B(267) +! JVS(986) = Jac_FULL(157,157) + JVS(986) = -B(772)-B(774)-B(780)-B(1485) IF (DO_JVS(987)) & -! JVS(987) = Jac_FULL(158,158) - JVS(987) = -B(825)-B(827)-B(831)-B(1527) +! JVS(987) = Jac_FULL(157,245) + JVS(987) = 0.937*B(714) IF (DO_JVS(988)) & -! JVS(988) = Jac_FULL(158,243) - JVS(988) = 0.937*B(767) +! JVS(988) = Jac_FULL(157,284) + JVS(988) = 0.937*B(715) IF (DO_JVS(989)) & -! JVS(989) = Jac_FULL(158,269) - JVS(989) = -B(826)-B(828)-B(832) +! JVS(989) = Jac_FULL(157,286) + JVS(989) = -B(773)-B(775)-B(781) IF (DO_JVS(990)) & -! JVS(990) = Jac_FULL(158,281) - JVS(990) = 0.937*B(768) +! JVS(990) = Jac_FULL(158,158) + JVS(990) = -B(195) IF (DO_JVS(991)) & -! JVS(991) = Jac_FULL(159,139) - JVS(991) = 0.667*B(1116) +! JVS(991) = Jac_FULL(158,201) + JVS(991) = 0.25*B(191) IF (DO_JVS(992)) & -! JVS(992) = Jac_FULL(159,159) - JVS(992) = -B(1118)-B(1546) +! JVS(992) = Jac_FULL(158,209) + JVS(992) = 0.25*B(159) IF (DO_JVS(993)) & -! JVS(993) = Jac_FULL(159,179) - JVS(993) = 0.824*B(837) +! JVS(993) = Jac_FULL(158,216) + JVS(993) = 0.25*B(668) IF (DO_JVS(994)) & -! JVS(994) = Jac_FULL(159,180) - JVS(994) = 0.452*B(844) +! JVS(994) = Jac_FULL(158,225) + JVS(994) = 0.25*B(650) IF (DO_JVS(995)) & -! JVS(995) = Jac_FULL(159,183) - JVS(995) = B(851) +! JVS(995) = Jac_FULL(158,237) + JVS(995) = 0.25*B(157) IF (DO_JVS(996)) & -! JVS(996) = Jac_FULL(159,269) - JVS(996) = 0.667*B(1117)-B(1119) +! JVS(996) = Jac_FULL(158,238) + JVS(996) = 0.25*B(626) IF (DO_JVS(997)) & -! JVS(997) = Jac_FULL(159,281) - JVS(997) = 0 +! JVS(997) = Jac_FULL(158,254) + JVS(997) = 0.25*B(187) IF (DO_JVS(998)) & -! JVS(998) = Jac_FULL(160,160) - JVS(998) = -B(1064)-B(1520) +! JVS(998) = Jac_FULL(158,256) + JVS(998) = 0.38*B(181) IF (DO_JVS(999)) & -! JVS(999) = Jac_FULL(160,182) - JVS(999) = 0.552*B(1530) +! JVS(999) = Jac_FULL(158,257) + JVS(999) = 0.375*B(183) IF (DO_JVS(1000)) & -! JVS(1000) = Jac_FULL(160,184) - JVS(1000) = 0.455*B(1531) +! JVS(1000) = Jac_FULL(158,258) + JVS(1000) = 0.25*B(189) IF (DO_JVS(1001)) & -! JVS(1001) = Jac_FULL(160,236) - JVS(1001) = 0.481*B(1541) +! JVS(1001) = Jac_FULL(158,266) + JVS(1001) = 0.25*B(158)+0.25*B(160)+0.38*B(182)+0.375*B(184)+0.25*B(188)+0.25*B(190)+0.25*B(192)+0.25*B(627)+0.25& + &*B(651)+0.25*B(669) IF (DO_JVS(1002)) & -! JVS(1002) = Jac_FULL(160,238) - JVS(1002) = 0.022*B(1122) +! JVS(1002) = Jac_FULL(158,286) + JVS(1002) = -B(196) IF (DO_JVS(1003)) & -! JVS(1003) = Jac_FULL(160,269) - JVS(1003) = -B(1065)+0.022*B(1123) +! JVS(1003) = Jac_FULL(159,64) + JVS(1003) = 0.55*B(1116) IF (DO_JVS(1004)) & -! JVS(1004) = Jac_FULL(161,161) - JVS(1004) = -B(835)-B(1529) +! JVS(1004) = Jac_FULL(159,79) + JVS(1004) = 0.68*B(1118) IF (DO_JVS(1005)) & -! JVS(1005) = Jac_FULL(161,243) - JVS(1005) = B(769) +! JVS(1005) = Jac_FULL(159,80) + JVS(1005) = 0.28*B(1120) IF (DO_JVS(1006)) & -! JVS(1006) = Jac_FULL(161,269) - JVS(1006) = -B(836) +! JVS(1006) = Jac_FULL(159,118) + JVS(1006) = 0.18*B(1132) IF (DO_JVS(1007)) & -! JVS(1007) = Jac_FULL(161,281) - JVS(1007) = B(770) +! JVS(1007) = Jac_FULL(159,142) + JVS(1007) = 1.05*B(1140)+B(1142)+0.3*B(1144) IF (DO_JVS(1008)) & -! JVS(1008) = Jac_FULL(162,136) - JVS(1008) = B(899) +! JVS(1008) = Jac_FULL(159,159) + JVS(1008) = -B(1183)-B(1185)-B(1187) IF (DO_JVS(1009)) & -! JVS(1009) = Jac_FULL(162,162) - JVS(1009) = -B(919)-B(920)-B(922)-B(924) +! JVS(1009) = Jac_FULL(159,210) + JVS(1009) = 0.9*B(1175)+0.9*B(1177)+B(1515) IF (DO_JVS(1010)) & -! JVS(1010) = Jac_FULL(162,242) - JVS(1010) = 0 +! JVS(1010) = Jac_FULL(159,281) + JVS(1010) = 0.3*B(1145)+0.9*B(1178) IF (DO_JVS(1011)) & -! JVS(1011) = Jac_FULL(162,269) - JVS(1011) = B(900) +! JVS(1011) = Jac_FULL(159,282) + JVS(1011) = B(1143)-B(1186) IF (DO_JVS(1012)) & -! JVS(1012) = Jac_FULL(162,280) - JVS(1012) = -B(923)-B(925) +! JVS(1012) = Jac_FULL(159,286) + JVS(1012) = 0.55*B(1117)+0.68*B(1119)+0.28*B(1121)+0.18*B(1133)+1.05*B(1141)+0.9*B(1176)-B(1184) IF (DO_JVS(1013)) & -! JVS(1013) = Jac_FULL(162,281) - JVS(1013) = -B(921) +! JVS(1013) = Jac_FULL(160,107) + JVS(1013) = B(1514) IF (DO_JVS(1014)) & -! JVS(1014) = Jac_FULL(163,163) - JVS(1014) = -B(934)-B(941)-B(943)-B(945) +! JVS(1014) = Jac_FULL(160,115) + JVS(1014) = 0.073*B(1136)+0.3*B(1138) IF (DO_JVS(1015)) & -! JVS(1015) = Jac_FULL(163,210) - JVS(1015) = B(913) +! JVS(1015) = Jac_FULL(160,118) + JVS(1015) = 0.06*B(1132)+0.742*B(1134) IF (DO_JVS(1016)) & -! JVS(1016) = Jac_FULL(163,269) - JVS(1016) = B(914) +! JVS(1016) = Jac_FULL(160,142) + JVS(1016) = 0.3*B(1140)+0.3*B(1144) IF (DO_JVS(1017)) & -! JVS(1017) = Jac_FULL(163,280) - JVS(1017) = -B(944)-B(946) +! JVS(1017) = Jac_FULL(160,160) + JVS(1017) = -B(1171)-B(1173) IF (DO_JVS(1018)) & -! JVS(1018) = Jac_FULL(163,281) - JVS(1018) = -B(942) +! JVS(1018) = Jac_FULL(160,180) + JVS(1018) = 0 IF (DO_JVS(1019)) & -! JVS(1019) = Jac_FULL(164,164) - JVS(1019) = -B(933)-B(935)-B(937)-B(939) +! JVS(1019) = Jac_FULL(160,191) + JVS(1019) = B(1161)+B(1163)+B(1165)+B(1179) IF (DO_JVS(1020)) & -! JVS(1020) = Jac_FULL(164,216) - JVS(1020) = B(909) +! JVS(1020) = Jac_FULL(160,266) + JVS(1020) = B(1180) IF (DO_JVS(1021)) & -! JVS(1021) = Jac_FULL(164,269) - JVS(1021) = B(910) +! JVS(1021) = Jac_FULL(160,279) + JVS(1021) = B(1164) IF (DO_JVS(1022)) & -! JVS(1022) = Jac_FULL(164,280) - JVS(1022) = -B(938)-B(940) +! JVS(1022) = Jac_FULL(160,281) + JVS(1022) = 0.742*B(1135)+0.3*B(1139)+0.3*B(1145)+B(1166) IF (DO_JVS(1023)) & -! JVS(1023) = Jac_FULL(164,281) - JVS(1023) = -B(936) +! JVS(1023) = Jac_FULL(160,282) + JVS(1023) = -B(1172) IF (DO_JVS(1024)) & -! JVS(1024) = Jac_FULL(165,165) - JVS(1024) = -B(689)-B(691)-B(693) +! JVS(1024) = Jac_FULL(160,284) + JVS(1024) = 0 IF (DO_JVS(1025)) & -! JVS(1025) = Jac_FULL(165,269) - JVS(1025) = -B(690) +! JVS(1025) = Jac_FULL(160,286) + JVS(1025) = 0.06*B(1133)+0.073*B(1137)+0.3*B(1141) IF (DO_JVS(1026)) & -! JVS(1026) = Jac_FULL(165,277) - JVS(1026) = -B(692) +! JVS(1026) = Jac_FULL(160,291) + JVS(1026) = B(1162)-B(1174) IF (DO_JVS(1027)) & -! JVS(1027) = Jac_FULL(165,287) - JVS(1027) = -B(694) +! JVS(1027) = Jac_FULL(161,161) + JVS(1027) = -B(104)-B(249)-B(320)-B(518) IF (DO_JVS(1028)) & -! JVS(1028) = Jac_FULL(166,115) - JVS(1028) = 0.6*B(1068) +! JVS(1028) = Jac_FULL(161,273) + JVS(1028) = -B(321) IF (DO_JVS(1029)) & -! JVS(1029) = Jac_FULL(166,122) - JVS(1029) = 0.318*B(1114)+0.391*B(1547) +! JVS(1029) = Jac_FULL(161,281) + JVS(1029) = -B(250) IF (DO_JVS(1030)) & -! JVS(1030) = Jac_FULL(166,166) - JVS(1030) = -B(1072)-B(1516) +! JVS(1030) = Jac_FULL(161,286) + JVS(1030) = -B(105) IF (DO_JVS(1031)) & -! JVS(1031) = Jac_FULL(166,190) - JVS(1031) = 0.13*B(884)+0.2*B(888) +! JVS(1031) = Jac_FULL(161,290) + JVS(1031) = -B(519) IF (DO_JVS(1032)) & -! JVS(1032) = Jac_FULL(166,200) - JVS(1032) = 0.255*B(1076) +! JVS(1032) = Jac_FULL(162,162) + JVS(1032) = -B(776)-B(778)-B(782)-B(1486) IF (DO_JVS(1033)) & -! JVS(1033) = Jac_FULL(166,202) - JVS(1033) = 0 +! JVS(1033) = Jac_FULL(162,244) + JVS(1033) = 0.937*B(718) IF (DO_JVS(1034)) & -! JVS(1034) = Jac_FULL(166,224) - JVS(1034) = 0 +! JVS(1034) = Jac_FULL(162,284) + JVS(1034) = 0.937*B(719) IF (DO_JVS(1035)) & -! JVS(1035) = Jac_FULL(166,225) - JVS(1035) = 0 +! JVS(1035) = Jac_FULL(162,286) + JVS(1035) = -B(777)-B(779)-B(783) IF (DO_JVS(1036)) & -! JVS(1036) = Jac_FULL(166,226) - JVS(1036) = 0.53*B(1044) +! JVS(1036) = Jac_FULL(163,163) + JVS(1036) = -B(1015)-B(1479) IF (DO_JVS(1037)) & -! JVS(1037) = Jac_FULL(166,269) - JVS(1037) = 0.53*B(1045)+0.6*B(1069)-B(1073)+0.318*B(1115) +! JVS(1037) = Jac_FULL(163,186) + JVS(1037) = 0.552*B(1489) IF (DO_JVS(1038)) & -! JVS(1038) = Jac_FULL(166,280) - JVS(1038) = 0.2*B(889) +! JVS(1038) = Jac_FULL(163,188) + JVS(1038) = 0.454*B(1490) IF (DO_JVS(1039)) & -! JVS(1039) = Jac_FULL(166,281) - JVS(1039) = 0.13*B(885)+0.255*B(1077) +! JVS(1039) = Jac_FULL(163,240) + JVS(1039) = 0.481*B(1500) IF (DO_JVS(1040)) & -! JVS(1040) = Jac_FULL(167,167) - JVS(1040) = -B(833)-B(1528) +! JVS(1040) = Jac_FULL(163,242) + JVS(1040) = 0.022*B(1073) IF (DO_JVS(1041)) & -! JVS(1041) = Jac_FULL(167,242) - JVS(1041) = B(765) +! JVS(1041) = Jac_FULL(163,286) + JVS(1041) = -B(1016)+0.022*B(1074) IF (DO_JVS(1042)) & -! JVS(1042) = Jac_FULL(167,269) - JVS(1042) = -B(834) +! JVS(1042) = Jac_FULL(164,141) + JVS(1042) = 0.667*B(1067) IF (DO_JVS(1043)) & -! JVS(1043) = Jac_FULL(167,281) - JVS(1043) = B(766) +! JVS(1043) = Jac_FULL(164,164) + JVS(1043) = -B(1069)-B(1505) IF (DO_JVS(1044)) & -! JVS(1044) = Jac_FULL(168,167) - JVS(1044) = 0.018*B(833) +! JVS(1044) = Jac_FULL(164,182) + JVS(1044) = 0.824*B(788) IF (DO_JVS(1045)) & -! JVS(1045) = Jac_FULL(168,168) - JVS(1045) = -B(1132)-B(1134)-B(1513) +! JVS(1045) = Jac_FULL(164,183) + JVS(1045) = 0.452*B(795) IF (DO_JVS(1046)) & -! JVS(1046) = Jac_FULL(168,179) - JVS(1046) = 0.284*B(838)+0.135*B(842) +! JVS(1046) = Jac_FULL(164,187) + JVS(1046) = B(802) IF (DO_JVS(1047)) & -! JVS(1047) = Jac_FULL(168,185) - JVS(1047) = 0.471*B(1006)+0.59*B(1012) +! JVS(1047) = Jac_FULL(164,284) + JVS(1047) = 0 IF (DO_JVS(1048)) & -! JVS(1048) = Jac_FULL(168,217) - JVS(1048) = 0.249*B(1004)+0.303*B(1008) +! JVS(1048) = Jac_FULL(164,286) + JVS(1048) = 0.667*B(1068)-B(1070) IF (DO_JVS(1049)) & -! JVS(1049) = Jac_FULL(168,220) - JVS(1049) = 0.3*B(759) +! JVS(1049) = Jac_FULL(165,165) + JVS(1049) = -B(786)-B(1488) IF (DO_JVS(1050)) & -! JVS(1050) = Jac_FULL(168,238) - JVS(1050) = 0.5*B(1549) +! JVS(1050) = Jac_FULL(165,244) + JVS(1050) = B(720) IF (DO_JVS(1051)) & -! JVS(1051) = Jac_FULL(168,242) - JVS(1051) = 0.3*B(772) +! JVS(1051) = Jac_FULL(165,284) + JVS(1051) = B(721) IF (DO_JVS(1052)) & -! JVS(1052) = Jac_FULL(168,269) - JVS(1052) = 0.3*B(760)+0.018*B(834)-B(1133)-B(1135) +! JVS(1052) = Jac_FULL(165,286) + JVS(1052) = -B(787) IF (DO_JVS(1053)) & -! JVS(1053) = Jac_FULL(168,280) - JVS(1053) = 0.284*B(839)+0.303*B(1009)+0.59*B(1013) +! JVS(1053) = Jac_FULL(166,166) + JVS(1053) = -B(884)-B(886)-B(888)-B(890) IF (DO_JVS(1054)) & -! JVS(1054) = Jac_FULL(168,281) - JVS(1054) = 0.135*B(843)+0.249*B(1005)+0.471*B(1007) +! JVS(1054) = Jac_FULL(166,220) + JVS(1054) = B(860) IF (DO_JVS(1055)) & -! JVS(1055) = Jac_FULL(169,169) - JVS(1055) = -B(89)-B(1261)-B(1263)-B(1265)-B(1266)-B(1268)-B(1414) +! JVS(1055) = Jac_FULL(166,279) + JVS(1055) = -B(889)-B(891) IF (DO_JVS(1056)) & -! JVS(1056) = Jac_FULL(169,270) - JVS(1056) = B(87) +! JVS(1056) = Jac_FULL(166,284) + JVS(1056) = -B(887) IF (DO_JVS(1057)) & -! JVS(1057) = Jac_FULL(169,271) - JVS(1057) = -B(1264) +! JVS(1057) = Jac_FULL(166,286) + JVS(1057) = B(861) IF (DO_JVS(1058)) & -! JVS(1058) = Jac_FULL(169,278) - JVS(1058) = -B(1267) +! JVS(1058) = Jac_FULL(167,139) + JVS(1058) = B(850) IF (DO_JVS(1059)) & -! JVS(1059) = Jac_FULL(169,279) - JVS(1059) = -B(1262) +! JVS(1059) = Jac_FULL(167,167) + JVS(1059) = -B(870)-B(871)-B(873)-B(875) IF (DO_JVS(1060)) & -! JVS(1060) = Jac_FULL(169,283) - JVS(1060) = -B(1269) +! JVS(1060) = Jac_FULL(167,245) + JVS(1060) = 0 IF (DO_JVS(1061)) & -! JVS(1061) = Jac_FULL(169,287) - JVS(1061) = B(88) +! JVS(1061) = Jac_FULL(167,279) + JVS(1061) = -B(874)-B(876) IF (DO_JVS(1062)) & -! JVS(1062) = Jac_FULL(170,114) - JVS(1062) = 0.75*B(858) +! JVS(1062) = Jac_FULL(167,284) + JVS(1062) = -B(872) IF (DO_JVS(1063)) & -! JVS(1063) = Jac_FULL(170,124) - JVS(1063) = 0.77*B(813) +! JVS(1063) = Jac_FULL(167,286) + JVS(1063) = B(851) IF (DO_JVS(1064)) & -! JVS(1064) = Jac_FULL(170,126) - JVS(1064) = 0.58*B(811) +! JVS(1064) = Jac_FULL(168,168) + JVS(1064) = -B(885)-B(892)-B(894)-B(896) IF (DO_JVS(1065)) & -! JVS(1065) = Jac_FULL(170,127) - JVS(1065) = B(860) +! JVS(1065) = Jac_FULL(168,214) + JVS(1065) = B(864) IF (DO_JVS(1066)) & -! JVS(1066) = Jac_FULL(170,128) - JVS(1066) = B(864) +! JVS(1066) = Jac_FULL(168,279) + JVS(1066) = -B(895)-B(897) IF (DO_JVS(1067)) & -! JVS(1067) = Jac_FULL(170,136) - JVS(1067) = 0 +! JVS(1067) = Jac_FULL(168,284) + JVS(1067) = -B(893) IF (DO_JVS(1068)) & -! JVS(1068) = Jac_FULL(170,137) - JVS(1068) = 0 +! JVS(1068) = Jac_FULL(168,286) + JVS(1068) = B(865) IF (DO_JVS(1069)) & -! JVS(1069) = Jac_FULL(170,147) - JVS(1069) = B(994) +! JVS(1069) = Jac_FULL(169,117) + JVS(1069) = 0.6*B(1019) IF (DO_JVS(1070)) & -! JVS(1070) = Jac_FULL(170,153) - JVS(1070) = 0 +! JVS(1070) = Jac_FULL(169,125) + JVS(1070) = 0.318*B(1065)+0.391*B(1506) IF (DO_JVS(1071)) & -! JVS(1071) = Jac_FULL(170,158) - JVS(1071) = 0 +! JVS(1071) = Jac_FULL(169,169) + JVS(1071) = -B(1023)-B(1475) IF (DO_JVS(1072)) & -! JVS(1072) = Jac_FULL(170,161) - JVS(1072) = 0 +! JVS(1072) = Jac_FULL(169,194) + JVS(1072) = 0.13*B(835)+0.2*B(839) IF (DO_JVS(1073)) & -! JVS(1073) = Jac_FULL(170,167) - JVS(1073) = 0 +! JVS(1073) = Jac_FULL(169,204) + JVS(1073) = 0.255*B(1027) IF (DO_JVS(1074)) & -! JVS(1074) = Jac_FULL(170,170) - JVS(1074) = -B(817)-B(1391) +! JVS(1074) = Jac_FULL(169,206) + JVS(1074) = 0 IF (DO_JVS(1075)) & -! JVS(1075) = Jac_FULL(170,182) - JVS(1075) = 0.085*B(807) +! JVS(1075) = Jac_FULL(169,228) + JVS(1075) = 0 IF (DO_JVS(1076)) & -! JVS(1076) = Jac_FULL(170,184) - JVS(1076) = 0.165*B(809) +! JVS(1076) = Jac_FULL(169,229) + JVS(1076) = 0 IF (DO_JVS(1077)) & -! JVS(1077) = Jac_FULL(170,210) - JVS(1077) = 0 +! JVS(1077) = Jac_FULL(169,230) + JVS(1077) = 0.53*B(995) IF (DO_JVS(1078)) & -! JVS(1078) = Jac_FULL(170,216) - JVS(1078) = 0 +! JVS(1078) = Jac_FULL(169,279) + JVS(1078) = 0.2*B(840) IF (DO_JVS(1079)) & -! JVS(1079) = Jac_FULL(170,220) - JVS(1079) = 0 +! JVS(1079) = Jac_FULL(169,284) + JVS(1079) = 0.13*B(836)+0.255*B(1028) IF (DO_JVS(1080)) & -! JVS(1080) = Jac_FULL(170,236) - JVS(1080) = B(1016) +! JVS(1080) = Jac_FULL(169,286) + JVS(1080) = 0.53*B(996)+0.6*B(1020)-B(1024)+0.318*B(1066) IF (DO_JVS(1081)) & -! JVS(1081) = Jac_FULL(170,241) - JVS(1081) = 0 +! JVS(1081) = Jac_FULL(170,170) + JVS(1081) = -B(640)-B(642)-B(644) IF (DO_JVS(1082)) & -! JVS(1082) = Jac_FULL(170,242) - JVS(1082) = 0 +! JVS(1082) = Jac_FULL(170,281) + JVS(1082) = -B(645) IF (DO_JVS(1083)) & -! JVS(1083) = Jac_FULL(170,243) - JVS(1083) = 0 +! JVS(1083) = Jac_FULL(170,282) + JVS(1083) = -B(643) IF (DO_JVS(1084)) & -! JVS(1084) = Jac_FULL(170,269) - JVS(1084) = 0.085*B(808)+0.165*B(810)+0.58*B(812)+0.77*B(814)-B(818)+0.75*B(859)+B(861)+B(865)+B(995)+B(1017) +! JVS(1084) = Jac_FULL(170,286) + JVS(1084) = -B(641) IF (DO_JVS(1085)) & -! JVS(1085) = Jac_FULL(170,280) - JVS(1085) = 0 +! JVS(1085) = Jac_FULL(171,171) + JVS(1085) = -B(784)-B(1487) IF (DO_JVS(1086)) & -! JVS(1086) = Jac_FULL(170,281) - JVS(1086) = 0 +! JVS(1086) = Jac_FULL(171,245) + JVS(1086) = B(716) IF (DO_JVS(1087)) & -! JVS(1087) = Jac_FULL(171,164) - JVS(1087) = 0.031*B(935)+0.065*B(937) +! JVS(1087) = Jac_FULL(171,284) + JVS(1087) = B(717) IF (DO_JVS(1088)) & -! JVS(1088) = Jac_FULL(171,171) - JVS(1088) = -B(1050)-B(1397)-B(1525) +! JVS(1088) = Jac_FULL(171,286) + JVS(1088) = -B(785) IF (DO_JVS(1089)) & -! JVS(1089) = Jac_FULL(171,185) - JVS(1089) = 0.073*B(1006)+0.291*B(1012) +! JVS(1089) = Jac_FULL(172,171) + JVS(1089) = 0.018*B(784) IF (DO_JVS(1090)) & -! JVS(1090) = Jac_FULL(171,216) - JVS(1090) = 0.6*B(915) +! JVS(1090) = Jac_FULL(172,172) + JVS(1090) = -B(1083)-B(1085)-B(1472) IF (DO_JVS(1091)) & -! JVS(1091) = Jac_FULL(171,217) - JVS(1091) = 0.06*B(1004)+0.17*B(1008) +! JVS(1091) = Jac_FULL(172,182) + JVS(1091) = 0.284*B(789)+0.135*B(793) IF (DO_JVS(1092)) & -! JVS(1092) = Jac_FULL(171,229) - JVS(1092) = 0.094*B(947)+0.355*B(949) +! JVS(1092) = Jac_FULL(172,189) + JVS(1092) = 0.471*B(957)+0.59*B(963) IF (DO_JVS(1093)) & -! JVS(1093) = Jac_FULL(171,236) - JVS(1093) = 0.378*B(1018) +! JVS(1093) = Jac_FULL(172,222) + JVS(1093) = 0.249*B(955)+0.303*B(959) IF (DO_JVS(1094)) & -! JVS(1094) = Jac_FULL(171,245) - JVS(1094) = 0.13*B(1097)+0.3*B(1105) +! JVS(1094) = Jac_FULL(172,224) + JVS(1094) = 0.3*B(710) IF (DO_JVS(1095)) & -! JVS(1095) = Jac_FULL(171,263) - JVS(1095) = 0.3*B(1106) +! JVS(1095) = Jac_FULL(172,242) + JVS(1095) = 0.5*B(1508) IF (DO_JVS(1096)) & -! JVS(1096) = Jac_FULL(171,269) - JVS(1096) = 0.6*B(916)+0.378*B(1019)-B(1051) +! JVS(1096) = Jac_FULL(172,245) + JVS(1096) = 0.3*B(723) IF (DO_JVS(1097)) & -! JVS(1097) = Jac_FULL(171,280) - JVS(1097) = 0.065*B(938)+0.355*B(950)+0.17*B(1009)+0.291*B(1013) +! JVS(1097) = Jac_FULL(172,279) + JVS(1097) = 0.284*B(790)+0.303*B(960)+0.59*B(964) IF (DO_JVS(1098)) & -! JVS(1098) = Jac_FULL(171,281) - JVS(1098) = 0.031*B(936)+0.094*B(948)+0.06*B(1005)+0.073*B(1007)+0.13*B(1098) +! JVS(1098) = Jac_FULL(172,284) + JVS(1098) = 0.135*B(794)+0.249*B(956)+0.471*B(958) IF (DO_JVS(1099)) & -! JVS(1099) = Jac_FULL(172,172) - JVS(1099) = -B(331)-B(1274)-B(1276)-B(1444)-B(1445) +! JVS(1099) = Jac_FULL(172,286) + JVS(1099) = 0.3*B(711)+0.018*B(785)-B(1084)-B(1086) IF (DO_JVS(1100)) & -! JVS(1100) = Jac_FULL(172,270) - JVS(1100) = B(355) +! JVS(1100) = Jac_FULL(173,173) + JVS(1100) = -B(86)-B(1214)-B(1216)-B(1218)-B(1219)-B(1221)-B(1373) IF (DO_JVS(1101)) & -! JVS(1101) = Jac_FULL(172,271) - JVS(1101) = -B(1277) +! JVS(1101) = Jac_FULL(173,275) + JVS(1101) = -B(1217) IF (DO_JVS(1102)) & -! JVS(1102) = Jac_FULL(172,274) - JVS(1102) = B(356) +! JVS(1102) = Jac_FULL(173,278) + JVS(1102) = -B(1215) IF (DO_JVS(1103)) & -! JVS(1103) = Jac_FULL(172,279) - JVS(1103) = -B(1275) +! JVS(1103) = Jac_FULL(173,280) + JVS(1103) = -B(1220) IF (DO_JVS(1104)) & -! JVS(1104) = Jac_FULL(172,282) - JVS(1104) = -B(332) +! JVS(1104) = Jac_FULL(173,281) + JVS(1104) = B(84) IF (DO_JVS(1105)) & -! JVS(1105) = Jac_FULL(173,173) - JVS(1105) = -B(409)-B(411)-B(413)-B(415)-B(417) +! JVS(1105) = Jac_FULL(173,287) + JVS(1105) = -B(1222) IF (DO_JVS(1106)) & -! JVS(1106) = Jac_FULL(173,186) - JVS(1106) = B(379) +! JVS(1106) = Jac_FULL(173,291) + JVS(1106) = B(85) IF (DO_JVS(1107)) & -! JVS(1107) = Jac_FULL(173,262) - JVS(1107) = B(1406) +! JVS(1107) = Jac_FULL(174,116) + JVS(1107) = 0.75*B(809) IF (DO_JVS(1108)) & -! JVS(1108) = Jac_FULL(173,268) - JVS(1108) = B(369)+B(380)+0.24*B(429)+0.15*B(431) +! JVS(1108) = Jac_FULL(174,127) + JVS(1108) = 0.77*B(764) IF (DO_JVS(1109)) & -! JVS(1109) = Jac_FULL(173,269) - JVS(1109) = B(385)+B(387) +! JVS(1109) = Jac_FULL(174,129) + JVS(1109) = 0.58*B(762) IF (DO_JVS(1110)) & -! JVS(1110) = Jac_FULL(173,271) - JVS(1110) = 0.24*B(430) +! JVS(1110) = Jac_FULL(174,130) + JVS(1110) = B(811) IF (DO_JVS(1111)) & -! JVS(1111) = Jac_FULL(173,272) - JVS(1111) = 0.15*B(432) +! JVS(1111) = Jac_FULL(174,131) + JVS(1111) = B(815) IF (DO_JVS(1112)) & -! JVS(1112) = Jac_FULL(173,277) - JVS(1112) = -B(412) +! JVS(1112) = Jac_FULL(174,139) + JVS(1112) = 0 IF (DO_JVS(1113)) & -! JVS(1113) = Jac_FULL(173,281) - JVS(1113) = -B(414)-B(416)-B(418) +! JVS(1113) = Jac_FULL(174,140) + JVS(1113) = 0 IF (DO_JVS(1114)) & -! JVS(1114) = Jac_FULL(173,284) - JVS(1114) = B(388) +! JVS(1114) = Jac_FULL(174,151) + JVS(1114) = B(945) IF (DO_JVS(1115)) & -! JVS(1115) = Jac_FULL(173,285) - JVS(1115) = B(509) +! JVS(1115) = Jac_FULL(174,157) + JVS(1115) = 0 IF (DO_JVS(1116)) & -! JVS(1116) = Jac_FULL(174,174) - JVS(1116) = -B(731)-B(739)-B(1382)-B(1501) +! JVS(1116) = Jac_FULL(174,162) + JVS(1116) = 0 IF (DO_JVS(1117)) & -! JVS(1117) = Jac_FULL(174,211) - JVS(1117) = B(707)+0.7*B(711)+0.7*B(715)+0.7*B(719)+0.7*B(723)+1.4*B(727)+1.05*B(728) +! JVS(1117) = Jac_FULL(174,165) + JVS(1117) = 0 IF (DO_JVS(1118)) & -! JVS(1118) = Jac_FULL(174,212) - JVS(1118) = 0.7*B(713)+0.35*B(717)+1.05*B(729)+0.7*B(730) +! JVS(1118) = Jac_FULL(174,171) + JVS(1118) = 0 IF (DO_JVS(1119)) & -! JVS(1119) = Jac_FULL(174,234) - JVS(1119) = 0.12*B(671) +! JVS(1119) = Jac_FULL(174,174) + JVS(1119) = -B(768)-B(1350) IF (DO_JVS(1120)) & -! JVS(1120) = Jac_FULL(174,257) - JVS(1120) = 0.7*B(720) +! JVS(1120) = Jac_FULL(174,186) + JVS(1120) = 0.085*B(758) IF (DO_JVS(1121)) & -! JVS(1121) = Jac_FULL(174,263) - JVS(1121) = 0.7*B(716)+0.35*B(718) +! JVS(1121) = Jac_FULL(174,188) + JVS(1121) = 0.165*B(760) IF (DO_JVS(1122)) & -! JVS(1122) = Jac_FULL(174,269) - JVS(1122) = -B(732) +! JVS(1122) = Jac_FULL(174,214) + JVS(1122) = 0 IF (DO_JVS(1123)) & -! JVS(1123) = Jac_FULL(174,280) - JVS(1123) = 0.12*B(672)+B(708) +! JVS(1123) = Jac_FULL(174,220) + JVS(1123) = 0 IF (DO_JVS(1124)) & -! JVS(1124) = Jac_FULL(174,281) - JVS(1124) = 0.7*B(712)+0.7*B(714) +! JVS(1124) = Jac_FULL(174,224) + JVS(1124) = 0 IF (DO_JVS(1125)) & -! JVS(1125) = Jac_FULL(174,287) - JVS(1125) = 0.7*B(724)-B(740) +! JVS(1125) = Jac_FULL(174,240) + JVS(1125) = B(967) IF (DO_JVS(1126)) & -! JVS(1126) = Jac_FULL(175,75) - JVS(1126) = B(1144) +! JVS(1126) = Jac_FULL(174,244) + JVS(1126) = 0 IF (DO_JVS(1127)) & -! JVS(1127) = Jac_FULL(175,113) - JVS(1127) = B(1161) +! JVS(1127) = Jac_FULL(174,245) + JVS(1127) = 0 IF (DO_JVS(1128)) & -! JVS(1128) = Jac_FULL(175,175) - JVS(1128) = -B(1148)-B(1150)-B(1152)-B(1154) +! JVS(1128) = Jac_FULL(174,246) + JVS(1128) = 0 IF (DO_JVS(1129)) & -! JVS(1129) = Jac_FULL(175,263) - JVS(1129) = -B(1155) +! JVS(1129) = Jac_FULL(174,279) + JVS(1129) = 0 IF (DO_JVS(1130)) & -! JVS(1130) = Jac_FULL(175,269) - JVS(1130) = B(1145)+B(1162) +! JVS(1130) = Jac_FULL(174,284) + JVS(1130) = 0 IF (DO_JVS(1131)) & -! JVS(1131) = Jac_FULL(175,277) - JVS(1131) = 0 +! JVS(1131) = Jac_FULL(174,286) + JVS(1131) = 0.085*B(759)+0.165*B(761)+0.58*B(763)+0.77*B(765)-B(769)+0.75*B(810)+B(812)+B(816)+B(946)+B(968) IF (DO_JVS(1132)) & -! JVS(1132) = Jac_FULL(175,280) - JVS(1132) = -B(1151) +! JVS(1132) = Jac_FULL(175,166) + JVS(1132) = 0.031*B(886)+0.065*B(888) IF (DO_JVS(1133)) & -! JVS(1133) = Jac_FULL(175,281) - JVS(1133) = -B(1149) +! JVS(1133) = Jac_FULL(175,175) + JVS(1133) = -B(1001)-B(1356)-B(1484) IF (DO_JVS(1134)) & -! JVS(1134) = Jac_FULL(175,287) - JVS(1134) = -B(1153) +! JVS(1134) = Jac_FULL(175,189) + JVS(1134) = 0.073*B(957)+0.291*B(963) IF (DO_JVS(1135)) & -! JVS(1135) = Jac_FULL(176,67) - JVS(1135) = B(1205) +! JVS(1135) = Jac_FULL(175,220) + JVS(1135) = 0.6*B(866) IF (DO_JVS(1136)) & -! JVS(1136) = Jac_FULL(176,95) - JVS(1136) = B(1207) +! JVS(1136) = Jac_FULL(175,222) + JVS(1136) = 0.06*B(955)+0.17*B(959) IF (DO_JVS(1137)) & -! JVS(1137) = Jac_FULL(176,99) - JVS(1137) = B(1195)+B(1197) +! JVS(1137) = Jac_FULL(175,232) + JVS(1137) = 0.094*B(898)+0.355*B(900) IF (DO_JVS(1138)) & -! JVS(1138) = Jac_FULL(176,176) - JVS(1138) = -B(1199)-B(1201)-B(1203)-B(1230) +! JVS(1138) = Jac_FULL(175,240) + JVS(1138) = 0.378*B(969) IF (DO_JVS(1139)) & -! JVS(1139) = Jac_FULL(176,263) - JVS(1139) = -B(1231) +! JVS(1139) = Jac_FULL(175,249) + JVS(1139) = 0.13*B(1048)+0.3*B(1056) IF (DO_JVS(1140)) & -! JVS(1140) = Jac_FULL(176,269) - JVS(1140) = B(1196)+B(1206) +! JVS(1140) = Jac_FULL(175,266) + JVS(1140) = 0.3*B(1057) IF (DO_JVS(1141)) & -! JVS(1141) = Jac_FULL(176,270) - JVS(1141) = -B(1204) +! JVS(1141) = Jac_FULL(175,279) + JVS(1141) = 0.065*B(889)+0.355*B(901)+0.17*B(960)+0.291*B(964) IF (DO_JVS(1142)) & -! JVS(1142) = Jac_FULL(176,280) - JVS(1142) = -B(1202) +! JVS(1142) = Jac_FULL(175,284) + JVS(1142) = 0.031*B(887)+0.094*B(899)+0.06*B(956)+0.073*B(958)+0.13*B(1049) IF (DO_JVS(1143)) & -! JVS(1143) = Jac_FULL(176,281) - JVS(1143) = -B(1200) +! JVS(1143) = Jac_FULL(175,286) + JVS(1143) = 0.6*B(867)+0.378*B(970)-B(1002) IF (DO_JVS(1144)) & -! JVS(1144) = Jac_FULL(176,287) - JVS(1144) = B(1198) +! JVS(1144) = Jac_FULL(176,176) + JVS(1144) = -B(302)-B(1227)-B(1229)-B(1403)-B(1404) IF (DO_JVS(1145)) & -! JVS(1145) = Jac_FULL(177,177) - JVS(1145) = -B(986)-B(990)-B(996)-B(1393)-B(1538) +! JVS(1145) = Jac_FULL(176,273) + JVS(1145) = -B(303) IF (DO_JVS(1146)) & -! JVS(1146) = Jac_FULL(177,240) - JVS(1146) = 0.473*B(955)+0.07*B(959)+0.399*B(960)+0.355*B(965) +! JVS(1146) = Jac_FULL(176,274) + JVS(1146) = B(326) IF (DO_JVS(1147)) & -! JVS(1147) = Jac_FULL(177,241) - JVS(1147) = 0.399*B(961) +! JVS(1147) = Jac_FULL(176,275) + JVS(1147) = -B(1230) IF (DO_JVS(1148)) & -! JVS(1148) = Jac_FULL(177,263) - JVS(1148) = 0.355*B(966) +! JVS(1148) = Jac_FULL(176,278) + JVS(1148) = -B(1228) IF (DO_JVS(1149)) & -! JVS(1149) = Jac_FULL(177,269) - JVS(1149) = -B(987)-B(991)-B(997) +! JVS(1149) = Jac_FULL(176,291) + JVS(1149) = B(327) IF (DO_JVS(1150)) & -! JVS(1150) = Jac_FULL(177,281) - JVS(1150) = 0.473*B(956) +! JVS(1150) = Jac_FULL(177,149) + JVS(1150) = 0.09*B(396) IF (DO_JVS(1151)) & -! JVS(1151) = Jac_FULL(178,60) - JVS(1151) = 0.46*B(1165) +! JVS(1151) = Jac_FULL(177,177) + JVS(1151) = -B(372)-B(374)-B(376) IF (DO_JVS(1152)) & -! JVS(1152) = Jac_FULL(178,76) - JVS(1152) = 0.81*B(1167) +! JVS(1152) = Jac_FULL(177,190) + JVS(1152) = 0.2*B(344) IF (DO_JVS(1153)) & -! JVS(1153) = Jac_FULL(178,77) - JVS(1153) = 0.85*B(1169) +! JVS(1153) = Jac_FULL(177,263) + JVS(1153) = B(1365) IF (DO_JVS(1154)) & -! JVS(1154) = Jac_FULL(178,109) - JVS(1154) = 0.2*B(1185)+0.2*B(1187) +! JVS(1154) = Jac_FULL(177,272) + JVS(1154) = B(340)+0.2*B(345)+0.22*B(388)+0.2*B(390)+0.09*B(397) IF (DO_JVS(1155)) & -! JVS(1155) = Jac_FULL(178,117) - JVS(1155) = 0.14*B(1181) +! JVS(1155) = Jac_FULL(177,275) + JVS(1155) = 0.22*B(389) IF (DO_JVS(1156)) & -! JVS(1156) = Jac_FULL(178,138) - JVS(1156) = 0.7*B(1189)+0.2*B(1193) +! JVS(1156) = Jac_FULL(177,282) + JVS(1156) = -B(375) IF (DO_JVS(1157)) & -! JVS(1157) = Jac_FULL(178,178) - JVS(1157) = -B(1171)-B(1173)-B(1175)-B(1177)-B(1179) +! JVS(1157) = Jac_FULL(177,284) + JVS(1157) = -B(377) IF (DO_JVS(1158)) & -! JVS(1158) = Jac_FULL(178,257) - JVS(1158) = -B(1180) +! JVS(1158) = Jac_FULL(177,286) + JVS(1158) = B(350)+B(352) IF (DO_JVS(1159)) & -! JVS(1159) = Jac_FULL(178,263) - JVS(1159) = -B(1178) +! JVS(1159) = Jac_FULL(177,288) + JVS(1159) = B(353) IF (DO_JVS(1160)) & -! JVS(1160) = Jac_FULL(178,269) - JVS(1160) = 0.46*B(1166)+0.81*B(1168)+0.85*B(1170)+0.14*B(1182)+0.2*B(1186)+0.7*B(1190) +! JVS(1160) = Jac_FULL(177,289) + JVS(1160) = 0.2*B(391) IF (DO_JVS(1161)) & -! JVS(1161) = Jac_FULL(178,277) - JVS(1161) = 0 +! JVS(1161) = Jac_FULL(177,290) + JVS(1161) = B(470) IF (DO_JVS(1162)) & -! JVS(1162) = Jac_FULL(178,280) - JVS(1162) = -B(1174) +! JVS(1162) = Jac_FULL(178,178) + JVS(1162) = -B(682)-B(690)-B(1341)-B(1460) IF (DO_JVS(1163)) & -! JVS(1163) = Jac_FULL(178,281) - JVS(1163) = -B(1172) +! JVS(1163) = Jac_FULL(178,215) + JVS(1163) = B(658)+0.7*B(662)+0.7*B(666)+0.7*B(670)+0.7*B(674)+1.4*B(678)+1.05*B(679) IF (DO_JVS(1164)) & -! JVS(1164) = Jac_FULL(178,287) - JVS(1164) = -B(1176)+0.2*B(1188)+0.2*B(1194) +! JVS(1164) = Jac_FULL(178,216) + JVS(1164) = 0.7*B(664)+0.35*B(668)+1.05*B(680)+0.7*B(681) IF (DO_JVS(1165)) & -! JVS(1165) = Jac_FULL(179,153) - JVS(1165) = 0.345*B(821) +! JVS(1165) = Jac_FULL(178,238) + JVS(1165) = 0.12*B(622) IF (DO_JVS(1166)) & -! JVS(1166) = Jac_FULL(179,167) - JVS(1166) = 0.595*B(833) +! JVS(1166) = Jac_FULL(178,261) + JVS(1166) = 0.7*B(671) IF (DO_JVS(1167)) & -! JVS(1167) = Jac_FULL(179,179) - JVS(1167) = -B(837)-B(838)-B(840)-B(842) +! JVS(1167) = Jac_FULL(178,266) + JVS(1167) = 0.7*B(667)+0.35*B(669) IF (DO_JVS(1168)) & -! JVS(1168) = Jac_FULL(179,242) - JVS(1168) = 0 +! JVS(1168) = Jac_FULL(178,279) + JVS(1168) = 0.12*B(623)+B(659) IF (DO_JVS(1169)) & -! JVS(1169) = Jac_FULL(179,269) - JVS(1169) = 0.345*B(822)+0.595*B(834) +! JVS(1169) = Jac_FULL(178,281) + JVS(1169) = 0.7*B(675)-B(691) IF (DO_JVS(1170)) & -! JVS(1170) = Jac_FULL(179,280) - JVS(1170) = -B(839)-B(841) +! JVS(1170) = Jac_FULL(178,284) + JVS(1170) = 0.7*B(663)+0.7*B(665) IF (DO_JVS(1171)) & -! JVS(1171) = Jac_FULL(179,281) - JVS(1171) = -B(843) +! JVS(1171) = Jac_FULL(178,286) + JVS(1171) = -B(683) IF (DO_JVS(1172)) & -! JVS(1172) = Jac_FULL(180,158) - JVS(1172) = 0.345*B(825) +! JVS(1172) = Jac_FULL(179,76) + JVS(1172) = B(1095) IF (DO_JVS(1173)) & -! JVS(1173) = Jac_FULL(180,161) - JVS(1173) = 0.255*B(835) +! JVS(1173) = Jac_FULL(179,120) + JVS(1173) = B(1112) IF (DO_JVS(1174)) & -! JVS(1174) = Jac_FULL(180,180) - JVS(1174) = -B(844)-B(845)-B(847)-B(849) +! JVS(1174) = Jac_FULL(179,179) + JVS(1174) = -B(1099)-B(1101)-B(1103)-B(1105) IF (DO_JVS(1175)) & -! JVS(1175) = Jac_FULL(180,243) - JVS(1175) = 0 +! JVS(1175) = Jac_FULL(179,266) + JVS(1175) = -B(1106) IF (DO_JVS(1176)) & -! JVS(1176) = Jac_FULL(180,269) - JVS(1176) = 0.345*B(826)+0.255*B(836) +! JVS(1176) = Jac_FULL(179,279) + JVS(1176) = -B(1102) IF (DO_JVS(1177)) & -! JVS(1177) = Jac_FULL(180,280) - JVS(1177) = -B(846)-B(848) +! JVS(1177) = Jac_FULL(179,281) + JVS(1177) = -B(1104) IF (DO_JVS(1178)) & -! JVS(1178) = Jac_FULL(180,281) - JVS(1178) = -B(850) +! JVS(1178) = Jac_FULL(179,282) + JVS(1178) = 0 IF (DO_JVS(1179)) & -! JVS(1179) = Jac_FULL(181,115) - JVS(1179) = 0.4*B(1068) +! JVS(1179) = Jac_FULL(179,284) + JVS(1179) = -B(1100) IF (DO_JVS(1180)) & -! JVS(1180) = Jac_FULL(181,122) - JVS(1180) = 0.126*B(1114)+0.155*B(1547) +! JVS(1180) = Jac_FULL(179,286) + JVS(1180) = B(1096)+B(1113) IF (DO_JVS(1181)) & -! JVS(1181) = Jac_FULL(181,130) - JVS(1181) = 0.16*B(1074) +! JVS(1181) = Jac_FULL(180,70) + JVS(1181) = B(1156) IF (DO_JVS(1182)) & -! JVS(1182) = Jac_FULL(181,160) - JVS(1182) = 0.063*B(1064) +! JVS(1182) = Jac_FULL(180,97) + JVS(1182) = B(1158) IF (DO_JVS(1183)) & -! JVS(1183) = Jac_FULL(181,181) - JVS(1183) = -B(1070)-B(1517) +! JVS(1183) = Jac_FULL(180,101) + JVS(1183) = B(1146)+B(1148) IF (DO_JVS(1184)) & -! JVS(1184) = Jac_FULL(181,182) - JVS(1184) = 0 +! JVS(1184) = Jac_FULL(180,180) + JVS(1184) = -B(1150)-B(1152)-B(1154)-B(1181) IF (DO_JVS(1185)) & -! JVS(1185) = Jac_FULL(181,184) - JVS(1185) = 0 +! JVS(1185) = Jac_FULL(180,266) + JVS(1185) = -B(1182) IF (DO_JVS(1186)) & -! JVS(1186) = Jac_FULL(181,202) - JVS(1186) = 0.1*B(1544) +! JVS(1186) = Jac_FULL(180,279) + JVS(1186) = -B(1153) IF (DO_JVS(1187)) & -! JVS(1187) = Jac_FULL(181,224) - JVS(1187) = 0 +! JVS(1187) = Jac_FULL(180,281) + JVS(1187) = B(1149) IF (DO_JVS(1188)) & -! JVS(1188) = Jac_FULL(181,225) - JVS(1188) = 0 +! JVS(1188) = Jac_FULL(180,284) + JVS(1188) = -B(1151) IF (DO_JVS(1189)) & -! JVS(1189) = Jac_FULL(181,226) - JVS(1189) = 0.47*B(1044) +! JVS(1189) = Jac_FULL(180,286) + JVS(1189) = B(1147)+B(1157) IF (DO_JVS(1190)) & -! JVS(1190) = Jac_FULL(181,236) - JVS(1190) = 0 +! JVS(1190) = Jac_FULL(180,291) + JVS(1190) = -B(1155) IF (DO_JVS(1191)) & -! JVS(1191) = Jac_FULL(181,237) - JVS(1191) = 0.29*B(1042) +! JVS(1191) = Jac_FULL(181,181) + JVS(1191) = -B(937)-B(941)-B(947)-B(1352)-B(1497) IF (DO_JVS(1192)) & -! JVS(1192) = Jac_FULL(181,238) - JVS(1192) = 0 +! JVS(1192) = Jac_FULL(181,246) + JVS(1192) = 0.399*B(911) IF (DO_JVS(1193)) & -! JVS(1193) = Jac_FULL(181,269) - JVS(1193) = 0.29*B(1043)+0.47*B(1045)+0.063*B(1065)+0.4*B(1069)-B(1071)+0.16*B(1075)+0.126*B(1115) +! JVS(1193) = Jac_FULL(181,247) + JVS(1193) = 0.473*B(906)+0.07*B(910)+0.399*B(912)+0.355*B(916) IF (DO_JVS(1194)) & -! JVS(1194) = Jac_FULL(181,280) - JVS(1194) = 0 +! JVS(1194) = Jac_FULL(181,266) + JVS(1194) = 0.355*B(917) IF (DO_JVS(1195)) & -! JVS(1195) = Jac_FULL(181,281) - JVS(1195) = 0 +! JVS(1195) = Jac_FULL(181,284) + JVS(1195) = 0.473*B(907) IF (DO_JVS(1196)) & -! JVS(1196) = Jac_FULL(182,167) - JVS(1196) = 0.015*B(833) +! JVS(1196) = Jac_FULL(181,286) + JVS(1196) = -B(938)-B(942)-B(948) IF (DO_JVS(1197)) & -! JVS(1197) = Jac_FULL(182,182) - JVS(1197) = -B(807)-B(1530) +! JVS(1197) = Jac_FULL(182,157) + JVS(1197) = 0.345*B(772) IF (DO_JVS(1198)) & -! JVS(1198) = Jac_FULL(182,220) - JVS(1198) = 0.25*B(759) +! JVS(1198) = Jac_FULL(182,171) + JVS(1198) = 0.595*B(784) IF (DO_JVS(1199)) & -! JVS(1199) = Jac_FULL(182,242) - JVS(1199) = 0.25*B(772) +! JVS(1199) = Jac_FULL(182,182) + JVS(1199) = -B(788)-B(789)-B(791)-B(793) IF (DO_JVS(1200)) & -! JVS(1200) = Jac_FULL(182,269) - JVS(1200) = 0.25*B(760)-B(808)+0.015*B(834) +! JVS(1200) = Jac_FULL(182,245) + JVS(1200) = 0 IF (DO_JVS(1201)) & -! JVS(1201) = Jac_FULL(182,281) - JVS(1201) = 0 +! JVS(1201) = Jac_FULL(182,279) + JVS(1201) = -B(790)-B(792) IF (DO_JVS(1202)) & -! JVS(1202) = Jac_FULL(183,153) - JVS(1202) = 0.655*B(821) +! JVS(1202) = Jac_FULL(182,284) + JVS(1202) = -B(794) IF (DO_JVS(1203)) & -! JVS(1203) = Jac_FULL(183,158) - JVS(1203) = 0.655*B(825) +! JVS(1203) = Jac_FULL(182,286) + JVS(1203) = 0.345*B(773)+0.595*B(785) IF (DO_JVS(1204)) & -! JVS(1204) = Jac_FULL(183,183) - JVS(1204) = -B(851)-B(852)-B(854)-B(856) +! JVS(1204) = Jac_FULL(183,162) + JVS(1204) = 0.345*B(776) IF (DO_JVS(1205)) & -! JVS(1205) = Jac_FULL(183,242) - JVS(1205) = 0 +! JVS(1205) = Jac_FULL(183,165) + JVS(1205) = 0.255*B(786) IF (DO_JVS(1206)) & -! JVS(1206) = Jac_FULL(183,243) - JVS(1206) = 0 +! JVS(1206) = Jac_FULL(183,183) + JVS(1206) = -B(795)-B(796)-B(798)-B(800) IF (DO_JVS(1207)) & -! JVS(1207) = Jac_FULL(183,269) - JVS(1207) = 0.655*B(822)+0.655*B(826) +! JVS(1207) = Jac_FULL(183,244) + JVS(1207) = 0 IF (DO_JVS(1208)) & -! JVS(1208) = Jac_FULL(183,280) - JVS(1208) = -B(853)-B(855) +! JVS(1208) = Jac_FULL(183,279) + JVS(1208) = -B(797)-B(799) IF (DO_JVS(1209)) & -! JVS(1209) = Jac_FULL(183,281) - JVS(1209) = -B(857) +! JVS(1209) = Jac_FULL(183,284) + JVS(1209) = -B(801) IF (DO_JVS(1210)) & -! JVS(1210) = Jac_FULL(184,161) - JVS(1210) = 0.015*B(835) +! JVS(1210) = Jac_FULL(183,286) + JVS(1210) = 0.345*B(777)+0.255*B(787) IF (DO_JVS(1211)) & -! JVS(1211) = Jac_FULL(184,184) - JVS(1211) = -B(809)-B(1531) +! JVS(1211) = Jac_FULL(184,64) + JVS(1211) = 0.46*B(1116) IF (DO_JVS(1212)) & -! JVS(1212) = Jac_FULL(184,220) - JVS(1212) = 0.25*B(761) +! JVS(1212) = Jac_FULL(184,79) + JVS(1212) = 0.81*B(1118) IF (DO_JVS(1213)) & -! JVS(1213) = Jac_FULL(184,243) - JVS(1213) = 0.25*B(774) +! JVS(1213) = Jac_FULL(184,80) + JVS(1213) = 0.85*B(1120) IF (DO_JVS(1214)) & -! JVS(1214) = Jac_FULL(184,269) - JVS(1214) = 0.25*B(762)-B(810)+0.015*B(836) +! JVS(1214) = Jac_FULL(184,115) + JVS(1214) = 0.2*B(1136)+0.2*B(1138) IF (DO_JVS(1215)) & -! JVS(1215) = Jac_FULL(184,281) - JVS(1215) = 0 +! JVS(1215) = Jac_FULL(184,118) + JVS(1215) = 0.14*B(1132) IF (DO_JVS(1216)) & -! JVS(1216) = Jac_FULL(185,147) - JVS(1216) = B(988) +! JVS(1216) = Jac_FULL(184,142) + JVS(1216) = 0.7*B(1140)+0.2*B(1144) IF (DO_JVS(1217)) & -! JVS(1217) = Jac_FULL(185,185) - JVS(1217) = -B(1002)-B(1006)-B(1012)-B(1014) +! JVS(1217) = Jac_FULL(184,184) + JVS(1217) = -B(1122)-B(1124)-B(1126)-B(1128)-B(1130) IF (DO_JVS(1218)) & -! JVS(1218) = Jac_FULL(185,241) - JVS(1218) = 0 +! JVS(1218) = Jac_FULL(184,261) + JVS(1218) = -B(1131) IF (DO_JVS(1219)) & -! JVS(1219) = Jac_FULL(185,269) - JVS(1219) = B(989) +! JVS(1219) = Jac_FULL(184,266) + JVS(1219) = -B(1129) IF (DO_JVS(1220)) & -! JVS(1220) = Jac_FULL(185,280) - JVS(1220) = -B(1013)-B(1015) +! JVS(1220) = Jac_FULL(184,279) + JVS(1220) = -B(1125) IF (DO_JVS(1221)) & -! JVS(1221) = Jac_FULL(185,281) - JVS(1221) = -B(1007) +! JVS(1221) = Jac_FULL(184,281) + JVS(1221) = -B(1127)+0.2*B(1139)+0.2*B(1145) IF (DO_JVS(1222)) & -! JVS(1222) = Jac_FULL(186,186) - JVS(1222) = -B(46)-B(375)-B(377)-B(379)-B(503) +! JVS(1222) = Jac_FULL(184,282) + JVS(1222) = 0 IF (DO_JVS(1223)) & -! JVS(1223) = Jac_FULL(186,254) - JVS(1223) = 0.1*B(216) +! JVS(1223) = Jac_FULL(184,284) + JVS(1223) = -B(1123) IF (DO_JVS(1224)) & -! JVS(1224) = Jac_FULL(186,261) - JVS(1224) = B(1416) +! JVS(1224) = Jac_FULL(184,286) + JVS(1224) = 0.46*B(1117)+0.81*B(1119)+0.85*B(1121)+0.14*B(1133)+0.2*B(1137)+0.7*B(1141) IF (DO_JVS(1225)) & -! JVS(1225) = Jac_FULL(186,268) - JVS(1225) = -B(376)-B(378)-B(380) +! JVS(1225) = Jac_FULL(185,117) + JVS(1225) = 0.4*B(1019) IF (DO_JVS(1226)) & -! JVS(1226) = Jac_FULL(186,269) - JVS(1226) = -B(47) +! JVS(1226) = Jac_FULL(185,125) + JVS(1226) = 0.126*B(1065)+0.155*B(1506) IF (DO_JVS(1227)) & -! JVS(1227) = Jac_FULL(186,277) - JVS(1227) = 0.1*B(217) +! JVS(1227) = Jac_FULL(185,132) + JVS(1227) = 0.16*B(1025) IF (DO_JVS(1228)) & -! JVS(1228) = Jac_FULL(186,285) - JVS(1228) = -B(504) +! JVS(1228) = Jac_FULL(185,163) + JVS(1228) = 0.063*B(1015) IF (DO_JVS(1229)) & -! JVS(1229) = Jac_FULL(187,67) - JVS(1229) = B(1554) +! JVS(1229) = Jac_FULL(185,185) + JVS(1229) = -B(1021)-B(1476) IF (DO_JVS(1230)) & -! JVS(1230) = Jac_FULL(187,99) - JVS(1230) = B(1553) +! JVS(1230) = Jac_FULL(185,186) + JVS(1230) = 0 IF (DO_JVS(1231)) & -! JVS(1231) = Jac_FULL(187,105) - JVS(1231) = B(1218) +! JVS(1231) = Jac_FULL(185,188) + JVS(1231) = 0 IF (DO_JVS(1232)) & -! JVS(1232) = Jac_FULL(187,156) - JVS(1232) = B(1220) +! JVS(1232) = Jac_FULL(185,206) + JVS(1232) = 0.133*B(1503) IF (DO_JVS(1233)) & -! JVS(1233) = Jac_FULL(187,176) - JVS(1233) = 0.2*B(1199)+B(1201)+B(1230) +! JVS(1233) = Jac_FULL(185,228) + JVS(1233) = 0 IF (DO_JVS(1234)) & -! JVS(1234) = Jac_FULL(187,187) - JVS(1234) = -B(1210)-B(1212)-B(1214)-B(1216)-B(1228) +! JVS(1234) = Jac_FULL(185,229) + JVS(1234) = 0 IF (DO_JVS(1235)) & -! JVS(1235) = Jac_FULL(187,263) - JVS(1235) = -B(1229)+B(1231) +! JVS(1235) = Jac_FULL(185,230) + JVS(1235) = 0.47*B(995) IF (DO_JVS(1236)) & -! JVS(1236) = Jac_FULL(187,269) - JVS(1236) = B(1219) +! JVS(1236) = Jac_FULL(185,240) + JVS(1236) = 0 IF (DO_JVS(1237)) & -! JVS(1237) = Jac_FULL(187,270) - JVS(1237) = -B(1211) +! JVS(1237) = Jac_FULL(185,241) + JVS(1237) = 0.29*B(993) IF (DO_JVS(1238)) & -! JVS(1238) = Jac_FULL(187,277) - JVS(1238) = B(1221) +! JVS(1238) = Jac_FULL(185,242) + JVS(1238) = 0 IF (DO_JVS(1239)) & -! JVS(1239) = Jac_FULL(187,280) - JVS(1239) = B(1202)-B(1213) +! JVS(1239) = Jac_FULL(185,279) + JVS(1239) = 0 IF (DO_JVS(1240)) & -! JVS(1240) = Jac_FULL(187,281) - JVS(1240) = 0.2*B(1200)-B(1217) +! JVS(1240) = Jac_FULL(185,284) + JVS(1240) = 0 IF (DO_JVS(1241)) & -! JVS(1241) = Jac_FULL(187,287) - JVS(1241) = -B(1215) +! JVS(1241) = Jac_FULL(185,286) + JVS(1241) = 0.29*B(994)+0.47*B(996)+0.063*B(1016)+0.4*B(1020)-B(1022)+0.16*B(1026)+0.126*B(1066) IF (DO_JVS(1242)) & -! JVS(1242) = Jac_FULL(188,58) - JVS(1242) = B(1506) +! JVS(1242) = Jac_FULL(186,171) + JVS(1242) = 0.015*B(784) IF (DO_JVS(1243)) & -! JVS(1243) = Jac_FULL(188,59) - JVS(1243) = B(1504) +! JVS(1243) = Jac_FULL(186,186) + JVS(1243) = -B(758)-B(1489) IF (DO_JVS(1244)) & -! JVS(1244) = Jac_FULL(188,135) - JVS(1244) = 0 +! JVS(1244) = Jac_FULL(186,224) + JVS(1244) = 0.25*B(710) IF (DO_JVS(1245)) & -! JVS(1245) = Jac_FULL(188,144) - JVS(1245) = 0 +! JVS(1245) = Jac_FULL(186,245) + JVS(1245) = 0.25*B(723) IF (DO_JVS(1246)) & -! JVS(1246) = Jac_FULL(188,188) - JVS(1246) = -B(74)-B(1409) +! JVS(1246) = Jac_FULL(186,284) + JVS(1246) = 0 IF (DO_JVS(1247)) & -! JVS(1247) = Jac_FULL(188,199) - JVS(1247) = B(1350)+B(1352)+B(1354)+B(1356) +! JVS(1247) = Jac_FULL(186,286) + JVS(1247) = 0.25*B(711)-B(759)+0.015*B(785) IF (DO_JVS(1248)) & -! JVS(1248) = Jac_FULL(188,206) - JVS(1248) = B(1556) +! JVS(1248) = Jac_FULL(187,157) + JVS(1248) = 0.655*B(772) IF (DO_JVS(1249)) & -! JVS(1249) = Jac_FULL(188,231) - JVS(1249) = B(1292)+B(1294)+B(1296)+B(1298)+B(1300)+B(1302) +! JVS(1249) = Jac_FULL(187,162) + JVS(1249) = 0.655*B(776) IF (DO_JVS(1250)) & -! JVS(1250) = Jac_FULL(188,260) - JVS(1250) = 0 +! JVS(1250) = Jac_FULL(187,187) + JVS(1250) = -B(802)-B(803)-B(805)-B(807) IF (DO_JVS(1251)) & -! JVS(1251) = Jac_FULL(188,269) - JVS(1251) = B(72)-B(75) +! JVS(1251) = Jac_FULL(187,244) + JVS(1251) = 0 IF (DO_JVS(1252)) & -! JVS(1252) = Jac_FULL(188,270) - JVS(1252) = 0.5*B(1257) +! JVS(1252) = Jac_FULL(187,245) + JVS(1252) = 0 IF (DO_JVS(1253)) & -! JVS(1253) = Jac_FULL(188,271) - JVS(1253) = B(1297) +! JVS(1253) = Jac_FULL(187,279) + JVS(1253) = -B(804)-B(806) IF (DO_JVS(1254)) & -! JVS(1254) = Jac_FULL(188,272) - JVS(1254) = B(1303) +! JVS(1254) = Jac_FULL(187,284) + JVS(1254) = -B(808) IF (DO_JVS(1255)) & -! JVS(1255) = Jac_FULL(188,275) - JVS(1255) = B(1299)+B(1351) +! JVS(1255) = Jac_FULL(187,286) + JVS(1255) = 0.655*B(773)+0.655*B(777) IF (DO_JVS(1256)) & -! JVS(1256) = Jac_FULL(188,276) - JVS(1256) = B(1301)+B(1353) +! JVS(1256) = Jac_FULL(188,165) + JVS(1256) = 0.015*B(786) IF (DO_JVS(1257)) & -! JVS(1257) = Jac_FULL(188,277) - JVS(1257) = 0 +! JVS(1257) = Jac_FULL(188,188) + JVS(1257) = -B(760)-B(1490) IF (DO_JVS(1258)) & -! JVS(1258) = Jac_FULL(188,278) - JVS(1258) = B(1293)+B(1355) +! JVS(1258) = Jac_FULL(188,224) + JVS(1258) = 0.25*B(712) IF (DO_JVS(1259)) & -! JVS(1259) = Jac_FULL(188,280) - JVS(1259) = B(73) +! JVS(1259) = Jac_FULL(188,244) + JVS(1259) = 0.25*B(725) IF (DO_JVS(1260)) & -! JVS(1260) = Jac_FULL(188,283) - JVS(1260) = B(1295)+B(1357) +! JVS(1260) = Jac_FULL(188,284) + JVS(1260) = 0 IF (DO_JVS(1261)) & ! JVS(1261) = Jac_FULL(188,286) - JVS(1261) = 0 + JVS(1261) = 0.25*B(713)-B(761)+0.015*B(787) IF (DO_JVS(1262)) & -! JVS(1262) = Jac_FULL(188,287) - JVS(1262) = 0 +! JVS(1262) = Jac_FULL(189,151) + JVS(1262) = B(939) IF (DO_JVS(1263)) & -! JVS(1263) = Jac_FULL(189,161) - JVS(1263) = 0.06*B(835)+B(1529) +! JVS(1263) = Jac_FULL(189,189) + JVS(1263) = -B(953)-B(957)-B(963)-B(965) IF (DO_JVS(1264)) & -! JVS(1264) = Jac_FULL(189,167) - JVS(1264) = 0.06*B(833)+B(1528) +! JVS(1264) = Jac_FULL(189,246) + JVS(1264) = 0 IF (DO_JVS(1265)) & -! JVS(1265) = Jac_FULL(189,189) - JVS(1265) = -B(815) +! JVS(1265) = Jac_FULL(189,279) + JVS(1265) = -B(964)-B(966) IF (DO_JVS(1266)) & -! JVS(1266) = Jac_FULL(189,210) - JVS(1266) = 0.45*B(1537) +! JVS(1266) = Jac_FULL(189,284) + JVS(1266) = -B(958) IF (DO_JVS(1267)) & -! JVS(1267) = Jac_FULL(189,216) - JVS(1267) = 0.45*B(1534) +! JVS(1267) = Jac_FULL(189,286) + JVS(1267) = B(940) IF (DO_JVS(1268)) & -! JVS(1268) = Jac_FULL(189,242) - JVS(1268) = B(779)+B(781)+0.5*B(785)+0.45*B(797) +! JVS(1268) = Jac_FULL(190,190) + JVS(1268) = -B(47)-B(344)-B(464) IF (DO_JVS(1269)) & -! JVS(1269) = Jac_FULL(189,243) - JVS(1269) = B(780)+B(782)+0.5*B(789)+0.45*B(805) +! JVS(1269) = Jac_FULL(190,253) + JVS(1269) = 0.1*B(211) IF (DO_JVS(1270)) & -! JVS(1270) = Jac_FULL(189,263) - JVS(1270) = 0.5*B(786)+0.5*B(790) +! JVS(1270) = Jac_FULL(190,264) + JVS(1270) = B(1375) IF (DO_JVS(1271)) & -! JVS(1271) = Jac_FULL(189,269) - JVS(1271) = -B(816)+0.06*B(834)+0.06*B(836) +! JVS(1271) = Jac_FULL(190,272) + JVS(1271) = -B(345) IF (DO_JVS(1272)) & -! JVS(1272) = Jac_FULL(189,280) - JVS(1272) = 0.45*B(798)+0.45*B(806) +! JVS(1272) = Jac_FULL(190,282) + JVS(1272) = 0.1*B(212) IF (DO_JVS(1273)) & -! JVS(1273) = Jac_FULL(189,281) - JVS(1273) = 0 +! JVS(1273) = Jac_FULL(190,286) + JVS(1273) = -B(48) IF (DO_JVS(1274)) & -! JVS(1274) = Jac_FULL(190,114) - JVS(1274) = 0.25*B(858) +! JVS(1274) = Jac_FULL(190,290) + JVS(1274) = -B(465) IF (DO_JVS(1275)) & -! JVS(1275) = Jac_FULL(190,158) - JVS(1275) = 0.16*B(831) +! JVS(1275) = Jac_FULL(191,70) + JVS(1275) = B(1513) IF (DO_JVS(1276)) & -! JVS(1276) = Jac_FULL(190,161) - JVS(1276) = 0 +! JVS(1276) = Jac_FULL(191,101) + JVS(1276) = B(1512) IF (DO_JVS(1277)) & -! JVS(1277) = Jac_FULL(190,167) - JVS(1277) = 0 +! JVS(1277) = Jac_FULL(191,107) + JVS(1277) = B(1169) IF (DO_JVS(1278)) & -! JVS(1278) = Jac_FULL(190,190) - JVS(1278) = -B(884)-B(886)-B(888)-B(890) +! JVS(1278) = Jac_FULL(191,160) + JVS(1278) = B(1171) IF (DO_JVS(1279)) & -! JVS(1279) = Jac_FULL(190,210) - JVS(1279) = 0 +! JVS(1279) = Jac_FULL(191,180) + JVS(1279) = 0.2*B(1150)+B(1152)+B(1181) IF (DO_JVS(1280)) & -! JVS(1280) = Jac_FULL(190,216) - JVS(1280) = 0 +! JVS(1280) = Jac_FULL(191,191) + JVS(1280) = -B(1161)-B(1163)-B(1165)-B(1167)-B(1179) IF (DO_JVS(1281)) & -! JVS(1281) = Jac_FULL(190,242) - JVS(1281) = 0 +! JVS(1281) = Jac_FULL(191,266) + JVS(1281) = -B(1180)+B(1182) IF (DO_JVS(1282)) & -! JVS(1282) = Jac_FULL(190,243) - JVS(1282) = 0 +! JVS(1282) = Jac_FULL(191,279) + JVS(1282) = B(1153)-B(1164) IF (DO_JVS(1283)) & -! JVS(1283) = Jac_FULL(190,269) - JVS(1283) = 0.16*B(832)+0.25*B(859) +! JVS(1283) = Jac_FULL(191,281) + JVS(1283) = -B(1166) IF (DO_JVS(1284)) & -! JVS(1284) = Jac_FULL(190,280) - JVS(1284) = -B(887)-B(889) +! JVS(1284) = Jac_FULL(191,282) + JVS(1284) = B(1172) IF (DO_JVS(1285)) & -! JVS(1285) = Jac_FULL(190,281) - JVS(1285) = -B(885) +! JVS(1285) = Jac_FULL(191,284) + JVS(1285) = 0.2*B(1151)-B(1168) IF (DO_JVS(1286)) & -! JVS(1286) = Jac_FULL(191,191) - JVS(1286) = -B(655)-B(657)-B(659)-B(661)-B(663)-B(665) +! JVS(1286) = Jac_FULL(191,286) + JVS(1286) = B(1170) IF (DO_JVS(1287)) & -! JVS(1287) = Jac_FULL(191,254) - JVS(1287) = 0.12*B(216) +! JVS(1287) = Jac_FULL(191,291) + JVS(1287) = -B(1162) IF (DO_JVS(1288)) & -! JVS(1288) = Jac_FULL(191,258) - JVS(1288) = -B(656) +! JVS(1288) = Jac_FULL(192,165) + JVS(1288) = 0.06*B(786)+B(1488) IF (DO_JVS(1289)) & -! JVS(1289) = Jac_FULL(191,270) - JVS(1289) = -B(660) +! JVS(1289) = Jac_FULL(192,171) + JVS(1289) = 0.06*B(784)+B(1487) IF (DO_JVS(1290)) & -! JVS(1290) = Jac_FULL(191,277) - JVS(1290) = 0.12*B(217) +! JVS(1290) = Jac_FULL(192,192) + JVS(1290) = -B(766) IF (DO_JVS(1291)) & -! JVS(1291) = Jac_FULL(191,279) - JVS(1291) = -B(664)-B(666) +! JVS(1291) = Jac_FULL(192,214) + JVS(1291) = 0.45*B(1496) IF (DO_JVS(1292)) & -! JVS(1292) = Jac_FULL(191,280) - JVS(1292) = -B(658) +! JVS(1292) = Jac_FULL(192,220) + JVS(1292) = 0.45*B(1493) IF (DO_JVS(1293)) & -! JVS(1293) = Jac_FULL(191,286) - JVS(1293) = -B(662) +! JVS(1293) = Jac_FULL(192,244) + JVS(1293) = B(731)+B(732)+0.5*B(740)+0.45*B(756) IF (DO_JVS(1294)) & -! JVS(1294) = Jac_FULL(192,103) - JVS(1294) = B(533) +! JVS(1294) = Jac_FULL(192,245) + JVS(1294) = B(730)+B(733)+0.5*B(736)+0.45*B(748) IF (DO_JVS(1295)) & -! JVS(1295) = Jac_FULL(192,192) - JVS(1295) = -0.75*B(433)-B(467)-B(1453) +! JVS(1295) = Jac_FULL(192,266) + JVS(1295) = 0.5*B(737)+0.5*B(741) IF (DO_JVS(1296)) & -! JVS(1296) = Jac_FULL(192,231) - JVS(1296) = B(1292)+B(1294)+B(1296) +! JVS(1296) = Jac_FULL(192,279) + JVS(1296) = 0.45*B(749)+0.45*B(757) IF (DO_JVS(1297)) & -! JVS(1297) = Jac_FULL(192,259) - JVS(1297) = B(545)+B(1280)+B(1288)+B(1290) +! JVS(1297) = Jac_FULL(192,284) + JVS(1297) = 0 IF (DO_JVS(1298)) & -! JVS(1298) = Jac_FULL(192,263) - JVS(1298) = 0 +! JVS(1298) = Jac_FULL(192,286) + JVS(1298) = -B(767)+0.06*B(785)+0.06*B(787) IF (DO_JVS(1299)) & -! JVS(1299) = Jac_FULL(192,267) - JVS(1299) = B(1304)+B(1308)+B(1310) +! JVS(1299) = Jac_FULL(193,62) + JVS(1299) = B(1465) IF (DO_JVS(1300)) & -! JVS(1300) = Jac_FULL(192,268) - JVS(1300) = -0.75*B(434) +! JVS(1300) = Jac_FULL(193,63) + JVS(1300) = B(1463) IF (DO_JVS(1301)) & -! JVS(1301) = Jac_FULL(192,269) - JVS(1301) = -B(468)+0.5*B(1270)+0.5*B(1272) +! JVS(1301) = Jac_FULL(193,138) + JVS(1301) = 0 IF (DO_JVS(1302)) & -! JVS(1302) = Jac_FULL(192,271) - JVS(1302) = B(1281)+B(1297)+B(1305) +! JVS(1302) = Jac_FULL(193,147) + JVS(1302) = 0 IF (DO_JVS(1303)) & -! JVS(1303) = Jac_FULL(192,273) - JVS(1303) = B(525) +! JVS(1303) = Jac_FULL(193,193) + JVS(1303) = -B(71)-B(1368) IF (DO_JVS(1304)) & -! JVS(1304) = Jac_FULL(192,274) - JVS(1304) = 0 +! JVS(1304) = Jac_FULL(193,203) + JVS(1304) = B(1303)+B(1304)+B(1309)+B(1311)+B(1313)+B(1315) IF (DO_JVS(1305)) & -! JVS(1305) = Jac_FULL(192,278) - JVS(1305) = 0.5*B(1271)+B(1289)+B(1293)+B(1309) +! JVS(1305) = Jac_FULL(193,210) + JVS(1305) = B(1515) IF (DO_JVS(1306)) & -! JVS(1306) = Jac_FULL(192,283) - JVS(1306) = 0.5*B(1273)+B(1291)+B(1295)+B(1311) +! JVS(1306) = Jac_FULL(193,235) + JVS(1306) = B(1245)+B(1247)+B(1249)+B(1251)+B(1253)+B(1255) IF (DO_JVS(1307)) & -! JVS(1307) = Jac_FULL(192,285) - JVS(1307) = B(534)+B(546) +! JVS(1307) = Jac_FULL(193,265) + JVS(1307) = 0 IF (DO_JVS(1308)) & -! JVS(1308) = Jac_FULL(193,161) - JVS(1308) = 0.018*B(835) +! JVS(1308) = Jac_FULL(193,275) + JVS(1308) = B(1250) IF (DO_JVS(1309)) & -! JVS(1309) = Jac_FULL(193,180) - JVS(1309) = 0.294*B(845)+0.135*B(849) +! JVS(1309) = Jac_FULL(193,276) + JVS(1309) = 0 IF (DO_JVS(1310)) & -! JVS(1310) = Jac_FULL(193,185) - JVS(1310) = 0.054*B(1006)+0.07*B(1012) +! JVS(1310) = Jac_FULL(193,277) + JVS(1310) = B(1254)+B(1312) IF (DO_JVS(1311)) & -! JVS(1311) = Jac_FULL(193,193) - JVS(1311) = -B(62)-B(64)-B(1494) +! JVS(1311) = Jac_FULL(193,279) + JVS(1311) = B(69) IF (DO_JVS(1312)) & -! JVS(1312) = Jac_FULL(193,217) - JVS(1312) = 0.009*B(1004)+0.013*B(1008) +! JVS(1312) = Jac_FULL(193,280) + JVS(1312) = B(1246)+B(1314) IF (DO_JVS(1313)) & -! JVS(1313) = Jac_FULL(193,220) - JVS(1313) = 0.3*B(761) +! JVS(1313) = Jac_FULL(193,281) + JVS(1313) = 0 IF (DO_JVS(1314)) & -! JVS(1314) = Jac_FULL(193,227) - JVS(1314) = 0.23*B(1046) +! JVS(1314) = Jac_FULL(193,282) + JVS(1314) = 0 IF (DO_JVS(1315)) & -! JVS(1315) = Jac_FULL(193,238) - JVS(1315) = 0.05*B(1549) +! JVS(1315) = Jac_FULL(193,283) + JVS(1315) = B(1252)+B(1310) IF (DO_JVS(1316)) & -! JVS(1316) = Jac_FULL(193,241) - JVS(1316) = 0 +! JVS(1316) = Jac_FULL(193,286) + JVS(1316) = B(70)-B(72) IF (DO_JVS(1317)) & -! JVS(1317) = Jac_FULL(193,243) - JVS(1317) = 0.3*B(774) +! JVS(1317) = Jac_FULL(193,287) + JVS(1317) = B(1248)+B(1316) IF (DO_JVS(1318)) & -! JVS(1318) = Jac_FULL(193,247) - JVS(1318) = 0.036*B(1034) +! JVS(1318) = Jac_FULL(193,289) + JVS(1318) = B(1256) IF (DO_JVS(1319)) & -! JVS(1319) = Jac_FULL(193,248) - JVS(1319) = 0.85*B(168) +! JVS(1319) = Jac_FULL(193,291) + JVS(1319) = 0.5*B(1210) IF (DO_JVS(1320)) & -! JVS(1320) = Jac_FULL(193,249) - JVS(1320) = 0.85*B(170) +! JVS(1320) = Jac_FULL(194,116) + JVS(1320) = 0.25*B(809) IF (DO_JVS(1321)) & -! JVS(1321) = Jac_FULL(193,269) - JVS(1321) = -B(63)-B(65)+0.3*B(762)+0.018*B(836)+0.036*B(1035)+0.23*B(1047) +! JVS(1321) = Jac_FULL(194,162) + JVS(1321) = 0.16*B(782) IF (DO_JVS(1322)) & -! JVS(1322) = Jac_FULL(193,280) - JVS(1322) = 0.294*B(846)+0.013*B(1009)+0.07*B(1013) +! JVS(1322) = Jac_FULL(194,165) + JVS(1322) = 0 IF (DO_JVS(1323)) & -! JVS(1323) = Jac_FULL(193,281) - JVS(1323) = 0.85*B(169)+0.85*B(171)+0.135*B(850)+0.009*B(1005)+0.054*B(1007) +! JVS(1323) = Jac_FULL(194,171) + JVS(1323) = 0 IF (DO_JVS(1324)) & -! JVS(1324) = Jac_FULL(194,111) - JVS(1324) = 0.791*B(248) +! JVS(1324) = Jac_FULL(194,194) + JVS(1324) = -B(835)-B(837)-B(839)-B(841) IF (DO_JVS(1325)) & -! JVS(1325) = Jac_FULL(194,143) - JVS(1325) = B(1026)+0.82*B(1028) +! JVS(1325) = Jac_FULL(194,214) + JVS(1325) = 0 IF (DO_JVS(1326)) & -! JVS(1326) = Jac_FULL(194,146) - JVS(1326) = 0.231*B(1020)+0.231*B(1022) +! JVS(1326) = Jac_FULL(194,220) + JVS(1326) = 0 IF (DO_JVS(1327)) & -! JVS(1327) = Jac_FULL(194,164) - JVS(1327) = 0.551*B(935)+0.935*B(937) +! JVS(1327) = Jac_FULL(194,244) + JVS(1327) = 0 IF (DO_JVS(1328)) & -! JVS(1328) = Jac_FULL(194,171) - JVS(1328) = B(1050)+B(1525) +! JVS(1328) = Jac_FULL(194,245) + JVS(1328) = 0 IF (DO_JVS(1329)) & -! JVS(1329) = Jac_FULL(194,185) - JVS(1329) = 0.471*B(1006)+0.59*B(1012) +! JVS(1329) = Jac_FULL(194,279) + JVS(1329) = -B(838)-B(840) IF (DO_JVS(1330)) & -! JVS(1330) = Jac_FULL(194,194) - JVS(1330) = -B(639)-B(1515) +! JVS(1330) = Jac_FULL(194,284) + JVS(1330) = -B(836) IF (DO_JVS(1331)) & -! JVS(1331) = Jac_FULL(194,197) - JVS(1331) = 0 +! JVS(1331) = Jac_FULL(194,286) + JVS(1331) = 0.16*B(783)+0.25*B(810) IF (DO_JVS(1332)) & -! JVS(1332) = Jac_FULL(194,216) - JVS(1332) = 0 +! JVS(1332) = Jac_FULL(195,195) + JVS(1332) = -B(606)-B(608)-B(610)-B(612)-B(614)-B(616) IF (DO_JVS(1333)) & -! JVS(1333) = Jac_FULL(194,217) - JVS(1333) = 0.589*B(1004)+0.687*B(1008) +! JVS(1333) = Jac_FULL(195,253) + JVS(1333) = 0.12*B(211) IF (DO_JVS(1334)) & -! JVS(1334) = Jac_FULL(194,229) - JVS(1334) = 0.242*B(947)+0.546*B(949) +! JVS(1334) = Jac_FULL(195,267) + JVS(1334) = -B(607) IF (DO_JVS(1335)) & -! JVS(1335) = Jac_FULL(194,236) - JVS(1335) = 0 +! JVS(1335) = Jac_FULL(195,276) + JVS(1335) = -B(613) IF (DO_JVS(1336)) & -! JVS(1336) = Jac_FULL(194,238) - JVS(1336) = 0 +! JVS(1336) = Jac_FULL(195,278) + JVS(1336) = -B(615)-B(617) IF (DO_JVS(1337)) & -! JVS(1337) = Jac_FULL(194,239) - JVS(1337) = 0 +! JVS(1337) = Jac_FULL(195,279) + JVS(1337) = -B(609) IF (DO_JVS(1338)) & -! JVS(1338) = Jac_FULL(194,241) - JVS(1338) = 0 +! JVS(1338) = Jac_FULL(195,282) + JVS(1338) = 0.12*B(212) IF (DO_JVS(1339)) & -! JVS(1339) = Jac_FULL(194,245) - JVS(1339) = 0 +! JVS(1339) = Jac_FULL(195,291) + JVS(1339) = -B(611) IF (DO_JVS(1340)) & -! JVS(1340) = Jac_FULL(194,247) - JVS(1340) = 0.68*B(1040) +! JVS(1340) = Jac_FULL(196,165) + JVS(1340) = 0.018*B(786) IF (DO_JVS(1341)) & -! JVS(1341) = Jac_FULL(194,263) - JVS(1341) = 0 +! JVS(1341) = Jac_FULL(196,183) + JVS(1341) = 0.294*B(796)+0.135*B(800) IF (DO_JVS(1342)) & -! JVS(1342) = Jac_FULL(194,269) - JVS(1342) = 0.791*B(249)-B(640)+B(1051) +! JVS(1342) = Jac_FULL(196,189) + JVS(1342) = 0.054*B(957)+0.07*B(963) IF (DO_JVS(1343)) & -! JVS(1343) = Jac_FULL(194,280) - JVS(1343) = 0.935*B(938)+0.546*B(950)+0.687*B(1009)+0.59*B(1013)+0.231*B(1021)+B(1027) +! JVS(1343) = Jac_FULL(196,196) + JVS(1343) = -B(61)-B(1453) IF (DO_JVS(1344)) & -! JVS(1344) = Jac_FULL(194,281) - JVS(1344) = 0.551*B(936)+0.242*B(948)+0.589*B(1005)+0.471*B(1007)+0.231*B(1023)+0.82*B(1029) +! JVS(1344) = Jac_FULL(196,222) + JVS(1344) = 0.009*B(955)+0.013*B(959) IF (DO_JVS(1345)) & -! JVS(1345) = Jac_FULL(194,287) - JVS(1345) = 0.68*B(1041) +! JVS(1345) = Jac_FULL(196,224) + JVS(1345) = 0.3*B(712) IF (DO_JVS(1346)) & -! JVS(1346) = Jac_FULL(195,142) - JVS(1346) = B(1062) +! JVS(1346) = Jac_FULL(196,231) + JVS(1346) = 0.23*B(997) IF (DO_JVS(1347)) & -! JVS(1347) = Jac_FULL(195,162) - JVS(1347) = 0.059*B(920)+0.272*B(922) +! JVS(1347) = Jac_FULL(196,242) + JVS(1347) = 0.05*B(1508) IF (DO_JVS(1348)) & -! JVS(1348) = Jac_FULL(195,184) - JVS(1348) = 0 +! JVS(1348) = Jac_FULL(196,244) + JVS(1348) = 0.3*B(725) IF (DO_JVS(1349)) & -! JVS(1349) = Jac_FULL(195,195) - JVS(1349) = -B(1048)-B(1398)-B(1524) +! JVS(1349) = Jac_FULL(196,246) + JVS(1349) = 0 IF (DO_JVS(1350)) & -! JVS(1350) = Jac_FULL(195,201) - JVS(1350) = B(1091) +! JVS(1350) = Jac_FULL(196,251) + JVS(1350) = 0.036*B(985) IF (DO_JVS(1351)) & -! JVS(1351) = Jac_FULL(195,220) - JVS(1351) = 0 +! JVS(1351) = Jac_FULL(196,252) + JVS(1351) = 0.85*B(165) IF (DO_JVS(1352)) & -! JVS(1352) = Jac_FULL(195,236) - JVS(1352) = 0 +! JVS(1352) = Jac_FULL(196,254) + JVS(1352) = 0.85*B(167) IF (DO_JVS(1353)) & -! JVS(1353) = Jac_FULL(195,238) - JVS(1353) = 0.5*B(1548) +! JVS(1353) = Jac_FULL(196,279) + JVS(1353) = 0.294*B(797)+0.013*B(960)+0.07*B(964) IF (DO_JVS(1354)) & -! JVS(1354) = Jac_FULL(195,242) - JVS(1354) = 0 +! JVS(1354) = Jac_FULL(196,284) + JVS(1354) = 0.85*B(166)+0.85*B(168)+0.135*B(801)+0.009*B(956)+0.054*B(958) IF (DO_JVS(1355)) & -! JVS(1355) = Jac_FULL(195,243) - JVS(1355) = 0 +! JVS(1355) = Jac_FULL(196,286) + JVS(1355) = -B(62)+0.3*B(713)+0.018*B(787)+0.036*B(986)+0.23*B(998) IF (DO_JVS(1356)) & -! JVS(1356) = Jac_FULL(195,245) - JVS(1356) = 0.37*B(1097) +! JVS(1356) = Jac_FULL(197,103) + JVS(1356) = 0.95*B(494) IF (DO_JVS(1357)) & -! JVS(1357) = Jac_FULL(195,269) - JVS(1357) = -B(1049) +! JVS(1357) = Jac_FULL(197,197) + JVS(1357) = -0.75*B(392)-B(428)-B(1412) IF (DO_JVS(1358)) & -! JVS(1358) = Jac_FULL(195,270) - JVS(1358) = B(1063) +! JVS(1358) = Jac_FULL(197,235) + JVS(1358) = B(1245)+B(1247)+B(1249) IF (DO_JVS(1359)) & -! JVS(1359) = Jac_FULL(195,280) - JVS(1359) = 0.272*B(923)+B(1092) +! JVS(1359) = Jac_FULL(197,262) + JVS(1359) = B(504)+B(1233)+B(1241)+B(1243) IF (DO_JVS(1360)) & -! JVS(1360) = Jac_FULL(195,281) - JVS(1360) = 0.059*B(921)+0.37*B(1098) +! JVS(1360) = Jac_FULL(197,266) + JVS(1360) = 0 IF (DO_JVS(1361)) & -! JVS(1361) = Jac_FULL(196,196) - JVS(1361) = -B(733)-B(735)-B(737)-B(1383)-B(1502) +! JVS(1361) = Jac_FULL(197,271) + JVS(1361) = B(1257)+B(1261)+B(1263) IF (DO_JVS(1362)) & -! JVS(1362) = Jac_FULL(196,211) - JVS(1362) = 0.3*B(711)+0.3*B(715)+0.3*B(719)+0.3*B(723)+0.6*B(727)+0.45*B(728) +! JVS(1362) = Jac_FULL(197,272) + JVS(1362) = -0.75*B(393) IF (DO_JVS(1363)) & -! JVS(1363) = Jac_FULL(196,212) - JVS(1363) = 0.3*B(713)+0.15*B(717)+0.45*B(729)+0.3*B(730) +! JVS(1363) = Jac_FULL(197,274) + JVS(1363) = 0 IF (DO_JVS(1364)) & -! JVS(1364) = Jac_FULL(196,221) - JVS(1364) = 0.22*B(695) +! JVS(1364) = Jac_FULL(197,275) + JVS(1364) = B(1234)+B(1250)+B(1258) IF (DO_JVS(1365)) & -! JVS(1365) = Jac_FULL(196,234) - JVS(1365) = 0.06*B(671) +! JVS(1365) = Jac_FULL(197,280) + JVS(1365) = 0.5*B(1223)+B(1242)+B(1246)+B(1262) IF (DO_JVS(1366)) & -! JVS(1366) = Jac_FULL(196,257) - JVS(1366) = 0.3*B(720) +! JVS(1366) = Jac_FULL(197,285) + JVS(1366) = B(486) IF (DO_JVS(1367)) & -! JVS(1367) = Jac_FULL(196,263) - JVS(1367) = 0.3*B(716)+0.15*B(718) +! JVS(1367) = Jac_FULL(197,286) + JVS(1367) = -B(429)+0.5*B(1224)+0.5*B(1225) IF (DO_JVS(1368)) & -! JVS(1368) = Jac_FULL(196,269) - JVS(1368) = -B(734) +! JVS(1368) = Jac_FULL(197,287) + JVS(1368) = 0.5*B(1226)+B(1244)+B(1248)+B(1264) IF (DO_JVS(1369)) & -! JVS(1369) = Jac_FULL(196,277) - JVS(1369) = -B(736) +! JVS(1369) = Jac_FULL(197,290) + JVS(1369) = 0.95*B(495)+B(505) IF (DO_JVS(1370)) & -! JVS(1370) = Jac_FULL(196,280) - JVS(1370) = 0.06*B(672)+0.22*B(696) +! JVS(1370) = Jac_FULL(198,113) + JVS(1370) = 0.791*B(231) IF (DO_JVS(1371)) & -! JVS(1371) = Jac_FULL(196,281) - JVS(1371) = 0.3*B(712)+0.3*B(714) +! JVS(1371) = Jac_FULL(198,146) + JVS(1371) = B(977)+0.82*B(979) IF (DO_JVS(1372)) & -! JVS(1372) = Jac_FULL(196,287) - JVS(1372) = 0.3*B(724)-B(738) +! JVS(1372) = Jac_FULL(198,150) + JVS(1372) = 0.231*B(971)+0.231*B(973) IF (DO_JVS(1373)) & -! JVS(1373) = Jac_FULL(197,111) - JVS(1373) = 0.209*B(248) +! JVS(1373) = Jac_FULL(198,166) + JVS(1373) = 0.551*B(886)+0.935*B(888) IF (DO_JVS(1374)) & -! JVS(1374) = Jac_FULL(197,197) - JVS(1374) = -B(141)-B(174)-B(194)-B(283)-B(293) +! JVS(1374) = Jac_FULL(198,175) + JVS(1374) = B(1001)+B(1484) IF (DO_JVS(1375)) & -! JVS(1375) = Jac_FULL(197,254) - JVS(1375) = B(222) +! JVS(1375) = Jac_FULL(198,189) + JVS(1375) = 0.471*B(957)+0.59*B(963) IF (DO_JVS(1376)) & -! JVS(1376) = Jac_FULL(197,257) - JVS(1376) = -B(284)-B(294) +! JVS(1376) = Jac_FULL(198,198) + JVS(1376) = -B(590)-B(1474) IF (DO_JVS(1377)) & -! JVS(1377) = Jac_FULL(197,263) - JVS(1377) = -B(195) +! JVS(1377) = Jac_FULL(198,201) + JVS(1377) = 0 IF (DO_JVS(1378)) & -! JVS(1378) = Jac_FULL(197,269) - JVS(1378) = 0.209*B(249) +! JVS(1378) = Jac_FULL(198,220) + JVS(1378) = 0 IF (DO_JVS(1379)) & -! JVS(1379) = Jac_FULL(197,280) - JVS(1379) = -B(142) +! JVS(1379) = Jac_FULL(198,222) + JVS(1379) = 0.589*B(955)+0.687*B(959) IF (DO_JVS(1380)) & -! JVS(1380) = Jac_FULL(197,281) - JVS(1380) = -B(175) +! JVS(1380) = Jac_FULL(198,232) + JVS(1380) = 0.242*B(898)+0.546*B(900) IF (DO_JVS(1381)) & -! JVS(1381) = Jac_FULL(197,287) - JVS(1381) = B(223) +! JVS(1381) = Jac_FULL(198,240) + JVS(1381) = 0 IF (DO_JVS(1382)) & -! JVS(1382) = Jac_FULL(198,198) - JVS(1382) = -B(145)-B(1381)-B(1439) +! JVS(1382) = Jac_FULL(198,242) + JVS(1382) = 0 IF (DO_JVS(1383)) & -! JVS(1383) = Jac_FULL(198,249) - JVS(1383) = 0.07*B(135) +! JVS(1383) = Jac_FULL(198,243) + JVS(1383) = 0 IF (DO_JVS(1384)) & -! JVS(1384) = Jac_FULL(198,251) - JVS(1384) = B(166) +! JVS(1384) = Jac_FULL(198,246) + JVS(1384) = 0 IF (DO_JVS(1385)) & -! JVS(1385) = Jac_FULL(198,252) - JVS(1385) = B(129) +! JVS(1385) = Jac_FULL(198,249) + JVS(1385) = 0 IF (DO_JVS(1386)) & -! JVS(1386) = Jac_FULL(198,269) - JVS(1386) = -B(146) +! JVS(1386) = Jac_FULL(198,251) + JVS(1386) = 0.68*B(991) IF (DO_JVS(1387)) & -! JVS(1387) = Jac_FULL(198,280) - JVS(1387) = B(130)+0.07*B(136) +! JVS(1387) = Jac_FULL(198,266) + JVS(1387) = 0 IF (DO_JVS(1388)) & -! JVS(1388) = Jac_FULL(198,281) - JVS(1388) = B(167) +! JVS(1388) = Jac_FULL(198,279) + JVS(1388) = 0.935*B(889)+0.546*B(901)+0.687*B(960)+0.59*B(964)+0.231*B(972)+B(978) IF (DO_JVS(1389)) & -! JVS(1389) = Jac_FULL(199,199) - JVS(1389) = -B(590)-2*B(591)-B(1350)-B(1352)-B(1354)-B(1356)-B(1481) +! JVS(1389) = Jac_FULL(198,281) + JVS(1389) = 0.68*B(992) IF (DO_JVS(1390)) & -! JVS(1390) = Jac_FULL(199,265) - JVS(1390) = B(588) +! JVS(1390) = Jac_FULL(198,284) + JVS(1390) = 0.551*B(887)+0.242*B(899)+0.589*B(956)+0.471*B(958)+0.231*B(974)+0.82*B(980) IF (DO_JVS(1391)) & -! JVS(1391) = Jac_FULL(199,270) - JVS(1391) = B(589) +! JVS(1391) = Jac_FULL(198,286) + JVS(1391) = 0.791*B(232)-B(591)+B(1002) IF (DO_JVS(1392)) & -! JVS(1392) = Jac_FULL(199,275) - JVS(1392) = -B(1351) +! JVS(1392) = Jac_FULL(199,199) + JVS(1392) = -B(684)-B(686)-B(688)-B(1342)-B(1461) IF (DO_JVS(1393)) & -! JVS(1393) = Jac_FULL(199,276) - JVS(1393) = -B(1353) +! JVS(1393) = Jac_FULL(199,215) + JVS(1393) = 0.3*B(662)+0.3*B(666)+0.3*B(670)+0.3*B(674)+0.6*B(678)+0.45*B(679) IF (DO_JVS(1394)) & -! JVS(1394) = Jac_FULL(199,278) - JVS(1394) = -B(1355) +! JVS(1394) = Jac_FULL(199,216) + JVS(1394) = 0.3*B(664)+0.15*B(668)+0.45*B(680)+0.3*B(681) IF (DO_JVS(1395)) & -! JVS(1395) = Jac_FULL(199,283) - JVS(1395) = -B(1357) +! JVS(1395) = Jac_FULL(199,225) + JVS(1395) = 0.22*B(646) IF (DO_JVS(1396)) & -! JVS(1396) = Jac_FULL(200,141) - JVS(1396) = B(1052)+B(1054) +! JVS(1396) = Jac_FULL(199,238) + JVS(1396) = 0.06*B(622) IF (DO_JVS(1397)) & -! JVS(1397) = Jac_FULL(200,182) - JVS(1397) = 0 +! JVS(1397) = Jac_FULL(199,261) + JVS(1397) = 0.3*B(671) IF (DO_JVS(1398)) & -! JVS(1398) = Jac_FULL(200,200) - JVS(1398) = -B(1076)-B(1078)-B(1080) +! JVS(1398) = Jac_FULL(199,266) + JVS(1398) = 0.3*B(667)+0.15*B(669) IF (DO_JVS(1399)) & -! JVS(1399) = Jac_FULL(200,220) - JVS(1399) = 0 +! JVS(1399) = Jac_FULL(199,279) + JVS(1399) = 0.06*B(623)+0.22*B(647) IF (DO_JVS(1400)) & -! JVS(1400) = Jac_FULL(200,236) - JVS(1400) = 0 +! JVS(1400) = Jac_FULL(199,281) + JVS(1400) = 0.3*B(675)-B(689) IF (DO_JVS(1401)) & -! JVS(1401) = Jac_FULL(200,242) - JVS(1401) = 0 +! JVS(1401) = Jac_FULL(199,282) + JVS(1401) = -B(687) IF (DO_JVS(1402)) & -! JVS(1402) = Jac_FULL(200,244) - JVS(1402) = B(1030) +! JVS(1402) = Jac_FULL(199,284) + JVS(1402) = 0.3*B(663)+0.3*B(665) IF (DO_JVS(1403)) & -! JVS(1403) = Jac_FULL(200,269) - JVS(1403) = B(1031) +! JVS(1403) = Jac_FULL(199,286) + JVS(1403) = -B(685) IF (DO_JVS(1404)) & -! JVS(1404) = Jac_FULL(200,270) - JVS(1404) = 0 +! JVS(1404) = Jac_FULL(200,145) + JVS(1404) = B(1013) IF (DO_JVS(1405)) & -! JVS(1405) = Jac_FULL(200,280) - JVS(1405) = B(1053)-B(1079)-B(1081) +! JVS(1405) = Jac_FULL(200,167) + JVS(1405) = 0.059*B(871)+0.272*B(873) IF (DO_JVS(1406)) & -! JVS(1406) = Jac_FULL(200,281) - JVS(1406) = B(1055)-B(1077) +! JVS(1406) = Jac_FULL(200,188) + JVS(1406) = 0 IF (DO_JVS(1407)) & -! JVS(1407) = Jac_FULL(201,142) - JVS(1407) = B(1058)+B(1060) +! JVS(1407) = Jac_FULL(200,200) + JVS(1407) = -B(999)-B(1357)-B(1483) IF (DO_JVS(1408)) & -! JVS(1408) = Jac_FULL(201,184) - JVS(1408) = 0 +! JVS(1408) = Jac_FULL(200,205) + JVS(1408) = B(1042) IF (DO_JVS(1409)) & -! JVS(1409) = Jac_FULL(201,201) - JVS(1409) = -B(1082)-B(1088)-B(1089)-B(1091) +! JVS(1409) = Jac_FULL(200,224) + JVS(1409) = 0 IF (DO_JVS(1410)) & -! JVS(1410) = Jac_FULL(201,220) +! JVS(1410) = Jac_FULL(200,240) JVS(1410) = 0 IF (DO_JVS(1411)) & -! JVS(1411) = Jac_FULL(201,236) - JVS(1411) = 0 +! JVS(1411) = Jac_FULL(200,242) + JVS(1411) = 0.5*B(1507) IF (DO_JVS(1412)) & -! JVS(1412) = Jac_FULL(201,243) +! JVS(1412) = Jac_FULL(200,244) JVS(1412) = 0 IF (DO_JVS(1413)) & -! JVS(1413) = Jac_FULL(201,247) - JVS(1413) = 0.964*B(1034) +! JVS(1413) = Jac_FULL(200,245) + JVS(1413) = 0 IF (DO_JVS(1414)) & -! JVS(1414) = Jac_FULL(201,269) - JVS(1414) = 0.964*B(1035) +! JVS(1414) = Jac_FULL(200,249) + JVS(1414) = 0.37*B(1048) IF (DO_JVS(1415)) & -! JVS(1415) = Jac_FULL(201,270) - JVS(1415) = 0 +! JVS(1415) = Jac_FULL(200,279) + JVS(1415) = 0.272*B(874)+B(1043) IF (DO_JVS(1416)) & -! JVS(1416) = Jac_FULL(201,280) - JVS(1416) = B(1059)-B(1090)-B(1092) +! JVS(1416) = Jac_FULL(200,284) + JVS(1416) = 0.059*B(872)+0.37*B(1049) IF (DO_JVS(1417)) & -! JVS(1417) = Jac_FULL(201,281) - JVS(1417) = B(1061)-B(1083) +! JVS(1417) = Jac_FULL(200,286) + JVS(1417) = -B(1000) IF (DO_JVS(1418)) & -! JVS(1418) = Jac_FULL(202,139) - JVS(1418) = 0.333*B(1116)+0.75*B(1545) +! JVS(1418) = Jac_FULL(200,291) + JVS(1418) = B(1014) IF (DO_JVS(1419)) & -! JVS(1419) = Jac_FULL(202,179) - JVS(1419) = 0.176*B(837) +! JVS(1419) = Jac_FULL(201,113) + JVS(1419) = 0.209*B(231) IF (DO_JVS(1420)) & -! JVS(1420) = Jac_FULL(202,180) - JVS(1420) = 0.548*B(844) +! JVS(1420) = Jac_FULL(201,201) + JVS(1420) = -B(138)-B(171)-B(191)-B(264) IF (DO_JVS(1421)) & -! JVS(1421) = Jac_FULL(202,183) - JVS(1421) = 0 +! JVS(1421) = Jac_FULL(201,253) + JVS(1421) = B(217) IF (DO_JVS(1422)) & -! JVS(1422) = Jac_FULL(202,190) - JVS(1422) = 0.35*B(884) +! JVS(1422) = Jac_FULL(201,261) + JVS(1422) = -B(265) IF (DO_JVS(1423)) & -! JVS(1423) = Jac_FULL(202,202) - JVS(1423) = -B(1112)-B(1543)-B(1544) +! JVS(1423) = Jac_FULL(201,266) + JVS(1423) = -B(192) IF (DO_JVS(1424)) & -! JVS(1424) = Jac_FULL(202,210) - JVS(1424) = 0 +! JVS(1424) = Jac_FULL(201,279) + JVS(1424) = -B(139) IF (DO_JVS(1425)) & -! JVS(1425) = Jac_FULL(202,216) - JVS(1425) = 0 +! JVS(1425) = Jac_FULL(201,281) + JVS(1425) = B(218) IF (DO_JVS(1426)) & -! JVS(1426) = Jac_FULL(202,224) - JVS(1426) = 0.35*B(870) +! JVS(1426) = Jac_FULL(201,284) + JVS(1426) = -B(172) IF (DO_JVS(1427)) & -! JVS(1427) = Jac_FULL(202,225) - JVS(1427) = 0.35*B(882) +! JVS(1427) = Jac_FULL(201,286) + JVS(1427) = 0.209*B(232) IF (DO_JVS(1428)) & -! JVS(1428) = Jac_FULL(202,242) - JVS(1428) = 0 +! JVS(1428) = Jac_FULL(202,202) + JVS(1428) = -B(142)-B(1340)-B(1398) IF (DO_JVS(1429)) & -! JVS(1429) = Jac_FULL(202,243) - JVS(1429) = 0 +! JVS(1429) = Jac_FULL(202,254) + JVS(1429) = 0.072*B(132) IF (DO_JVS(1430)) & -! JVS(1430) = Jac_FULL(202,269) - JVS(1430) = -B(1113)+0.333*B(1117) +! JVS(1430) = Jac_FULL(202,256) + JVS(1430) = B(126) IF (DO_JVS(1431)) & -! JVS(1431) = Jac_FULL(202,280) - JVS(1431) = 0 +! JVS(1431) = Jac_FULL(202,257) + JVS(1431) = B(163) IF (DO_JVS(1432)) & -! JVS(1432) = Jac_FULL(202,281) - JVS(1432) = 0.35*B(871)+0.35*B(883)+0.35*B(885) +! JVS(1432) = Jac_FULL(202,279) + JVS(1432) = B(127)+0.072*B(133) IF (DO_JVS(1433)) & -! JVS(1433) = Jac_FULL(203,133) - JVS(1433) = 0.165*B(1086) +! JVS(1433) = Jac_FULL(202,284) + JVS(1433) = B(164) IF (DO_JVS(1434)) & -! JVS(1434) = Jac_FULL(203,149) - JVS(1434) = B(1107) +! JVS(1434) = Jac_FULL(202,286) + JVS(1434) = -B(143) IF (DO_JVS(1435)) & ! JVS(1435) = Jac_FULL(203,203) - JVS(1435) = -B(1084)-B(1093)-B(1095) + JVS(1435) = -B(549)-2*B(550)-B(1303)-B(1304)-B(1309)-B(1311)-B(1313)-B(1315)-B(1440) IF (DO_JVS(1436)) & -! JVS(1436) = Jac_FULL(203,245) - JVS(1436) = 0 +! JVS(1436) = Jac_FULL(203,269) + JVS(1436) = B(547) IF (DO_JVS(1437)) & -! JVS(1437) = Jac_FULL(203,247) - JVS(1437) = B(1036)+0.32*B(1040) +! JVS(1437) = Jac_FULL(203,277) + JVS(1437) = -B(1312) IF (DO_JVS(1438)) & -! JVS(1438) = Jac_FULL(203,269) - JVS(1438) = B(1037)+0.165*B(1087) +! JVS(1438) = Jac_FULL(203,280) + JVS(1438) = -B(1314) IF (DO_JVS(1439)) & -! JVS(1439) = Jac_FULL(203,270) - JVS(1439) = -B(1096) +! JVS(1439) = Jac_FULL(203,283) + JVS(1439) = -B(1310) IF (DO_JVS(1440)) & -! JVS(1440) = Jac_FULL(203,280) - JVS(1440) = -B(1094) +! JVS(1440) = Jac_FULL(203,287) + JVS(1440) = -B(1316) IF (DO_JVS(1441)) & -! JVS(1441) = Jac_FULL(203,281) - JVS(1441) = -B(1085) +! JVS(1441) = Jac_FULL(203,291) + JVS(1441) = B(548) IF (DO_JVS(1442)) & -! JVS(1442) = Jac_FULL(203,287) - JVS(1442) = 0.32*B(1041) +! JVS(1442) = Jac_FULL(204,144) + JVS(1442) = B(1003)+B(1005) IF (DO_JVS(1443)) & -! JVS(1443) = Jac_FULL(204,110) - JVS(1443) = 0.209*B(260) +! JVS(1443) = Jac_FULL(204,186) + JVS(1443) = 0 IF (DO_JVS(1444)) & ! JVS(1444) = Jac_FULL(204,204) - JVS(1444) = -B(123)-B(162)-B(210)-B(238)-B(242) + JVS(1444) = -B(1027)-B(1029)-B(1031) IF (DO_JVS(1445)) & -! JVS(1445) = Jac_FULL(204,254) - JVS(1445) = B(214)+B(581)+B(583) +! JVS(1445) = Jac_FULL(204,224) + JVS(1445) = 0 IF (DO_JVS(1446)) & -! JVS(1446) = Jac_FULL(204,257) - JVS(1446) = -B(239)-B(243) +! JVS(1446) = Jac_FULL(204,240) + JVS(1446) = 0 IF (DO_JVS(1447)) & -! JVS(1447) = Jac_FULL(204,263) - JVS(1447) = -B(163) +! JVS(1447) = Jac_FULL(204,245) + JVS(1447) = 0 IF (DO_JVS(1448)) & -! JVS(1448) = Jac_FULL(204,269) - JVS(1448) = B(215)+0.209*B(261) +! JVS(1448) = Jac_FULL(204,248) + JVS(1448) = B(981) IF (DO_JVS(1449)) & -! JVS(1449) = Jac_FULL(204,280) - JVS(1449) = -B(124) +! JVS(1449) = Jac_FULL(204,279) + JVS(1449) = B(1004)-B(1030)-B(1032) IF (DO_JVS(1450)) & -! JVS(1450) = Jac_FULL(204,281) - JVS(1450) = -B(211) +! JVS(1450) = Jac_FULL(204,284) + JVS(1450) = B(1006)-B(1028) IF (DO_JVS(1451)) & -! JVS(1451) = Jac_FULL(204,282) - JVS(1451) = B(584) +! JVS(1451) = Jac_FULL(204,286) + JVS(1451) = B(982) IF (DO_JVS(1452)) & -! JVS(1452) = Jac_FULL(204,285) - JVS(1452) = B(582) +! JVS(1452) = Jac_FULL(204,291) + JVS(1452) = 0 IF (DO_JVS(1453)) & -! JVS(1453) = Jac_FULL(205,143) - JVS(1453) = 0.89*B(1026)+0.73*B(1028) +! JVS(1453) = Jac_FULL(205,145) + JVS(1453) = B(1009)+B(1011) IF (DO_JVS(1454)) & -! JVS(1454) = Jac_FULL(205,146) - JVS(1454) = 0.099*B(1020)+0.099*B(1022) +! JVS(1454) = Jac_FULL(205,188) + JVS(1454) = 0 IF (DO_JVS(1455)) & -! JVS(1455) = Jac_FULL(205,163) - JVS(1455) = 0.441*B(941)+0.858*B(943) +! JVS(1455) = Jac_FULL(205,205) + JVS(1455) = -B(1033)-B(1039)-B(1040)-B(1042) IF (DO_JVS(1456)) & -! JVS(1456) = Jac_FULL(205,185) - JVS(1456) = 0.054*B(1006)+0.07*B(1012) +! JVS(1456) = Jac_FULL(205,224) + JVS(1456) = 0 IF (DO_JVS(1457)) & -! JVS(1457) = Jac_FULL(205,205) - JVS(1457) = -B(637)-B(1124)-B(1500) +! JVS(1457) = Jac_FULL(205,240) + JVS(1457) = 0 IF (DO_JVS(1458)) & -! JVS(1458) = Jac_FULL(205,210) +! JVS(1458) = Jac_FULL(205,244) JVS(1458) = 0 IF (DO_JVS(1459)) & -! JVS(1459) = Jac_FULL(205,217) - JVS(1459) = 0.051*B(1004)+0.064*B(1008) +! JVS(1459) = Jac_FULL(205,251) + JVS(1459) = 0.964*B(985) IF (DO_JVS(1460)) & -! JVS(1460) = Jac_FULL(205,229) - JVS(1460) = 0.033*B(947)+0.071*B(949) +! JVS(1460) = Jac_FULL(205,279) + JVS(1460) = B(1010)-B(1041)-B(1043) IF (DO_JVS(1461)) & -! JVS(1461) = Jac_FULL(205,236) - JVS(1461) = 0 +! JVS(1461) = Jac_FULL(205,284) + JVS(1461) = B(1012)-B(1034) IF (DO_JVS(1462)) & -! JVS(1462) = Jac_FULL(205,237) - JVS(1462) = 0.3*B(1523) +! JVS(1462) = Jac_FULL(205,286) + JVS(1462) = 0.964*B(986) IF (DO_JVS(1463)) & -! JVS(1463) = Jac_FULL(205,238) - JVS(1463) = 0.15*B(1548) +! JVS(1463) = Jac_FULL(205,291) + JVS(1463) = 0 IF (DO_JVS(1464)) & -! JVS(1464) = Jac_FULL(205,239) - JVS(1464) = 0 +! JVS(1464) = Jac_FULL(206,141) + JVS(1464) = 0.333*B(1067)+0.75*B(1504) IF (DO_JVS(1465)) & -! JVS(1465) = Jac_FULL(205,241) - JVS(1465) = 0 +! JVS(1465) = Jac_FULL(206,182) + JVS(1465) = 0.176*B(788) IF (DO_JVS(1466)) & -! JVS(1466) = Jac_FULL(205,269) - JVS(1466) = -B(638) +! JVS(1466) = Jac_FULL(206,183) + JVS(1466) = 0.548*B(795) IF (DO_JVS(1467)) & -! JVS(1467) = Jac_FULL(205,280) - JVS(1467) = 0.858*B(944)+0.071*B(950)+0.064*B(1009)+0.07*B(1013)+0.099*B(1021)+0.89*B(1027) +! JVS(1467) = Jac_FULL(206,187) + JVS(1467) = 0 IF (DO_JVS(1468)) & -! JVS(1468) = Jac_FULL(205,281) - JVS(1468) = 0.441*B(942)+0.033*B(948)+0.051*B(1005)+0.054*B(1007)+0.099*B(1023)+0.73*B(1029) +! JVS(1468) = Jac_FULL(206,194) + JVS(1468) = 0.35*B(835) IF (DO_JVS(1469)) & -! JVS(1469) = Jac_FULL(205,287) - JVS(1469) = -B(1125) +! JVS(1469) = Jac_FULL(206,206) + JVS(1469) = -B(1063)-B(1502)-B(1503) IF (DO_JVS(1470)) & -! JVS(1470) = Jac_FULL(206,109) - JVS(1470) = 0.5*B(1187) +! JVS(1470) = Jac_FULL(206,214) + JVS(1470) = 0 IF (DO_JVS(1471)) & -! JVS(1471) = Jac_FULL(206,117) - JVS(1471) = 0.258*B(1183) +! JVS(1471) = Jac_FULL(206,220) + JVS(1471) = 0 IF (DO_JVS(1472)) & -! JVS(1472) = Jac_FULL(206,138) - JVS(1472) = 0.5*B(1193) +! JVS(1472) = Jac_FULL(206,228) + JVS(1472) = 0.35*B(821) IF (DO_JVS(1473)) & -! JVS(1473) = Jac_FULL(206,156) - JVS(1473) = B(1222) +! JVS(1473) = Jac_FULL(206,229) + JVS(1473) = 0.35*B(833) IF (DO_JVS(1474)) & -! JVS(1474) = Jac_FULL(206,176) +! JVS(1474) = Jac_FULL(206,244) JVS(1474) = 0 IF (DO_JVS(1475)) & -! JVS(1475) = Jac_FULL(206,187) +! JVS(1475) = Jac_FULL(206,245) JVS(1475) = 0 IF (DO_JVS(1476)) & -! JVS(1476) = Jac_FULL(206,206) - JVS(1476) = -B(1224)-B(1226)-B(1399)-B(1556) +! JVS(1476) = Jac_FULL(206,279) + JVS(1476) = 0 IF (DO_JVS(1477)) & -! JVS(1477) = Jac_FULL(206,263) - JVS(1477) = 0 +! JVS(1477) = Jac_FULL(206,284) + JVS(1477) = 0.35*B(822)+0.35*B(834)+0.35*B(836) IF (DO_JVS(1478)) & -! JVS(1478) = Jac_FULL(206,269) - JVS(1478) = -B(1225) +! JVS(1478) = Jac_FULL(206,286) + JVS(1478) = -B(1064)+0.333*B(1068) IF (DO_JVS(1479)) & -! JVS(1479) = Jac_FULL(206,270) - JVS(1479) = B(1223) +! JVS(1479) = Jac_FULL(207,136) + JVS(1479) = 0.165*B(1037) IF (DO_JVS(1480)) & -! JVS(1480) = Jac_FULL(206,277) - JVS(1480) = 0 +! JVS(1480) = Jac_FULL(207,153) + JVS(1480) = B(1058) IF (DO_JVS(1481)) & -! JVS(1481) = Jac_FULL(206,280) - JVS(1481) = 0 +! JVS(1481) = Jac_FULL(207,207) + JVS(1481) = -B(1035)-B(1044)-B(1046) IF (DO_JVS(1482)) & -! JVS(1482) = Jac_FULL(206,281) +! JVS(1482) = Jac_FULL(207,249) JVS(1482) = 0 IF (DO_JVS(1483)) & -! JVS(1483) = Jac_FULL(206,287) - JVS(1483) = 0.258*B(1184)+0.5*B(1188)+0.5*B(1194)-B(1227) +! JVS(1483) = Jac_FULL(207,251) + JVS(1483) = B(987)+0.32*B(991) IF (DO_JVS(1484)) & -! JVS(1484) = Jac_FULL(207,54) - JVS(1484) = 0.364*B(1146) +! JVS(1484) = Jac_FULL(207,279) + JVS(1484) = -B(1045) IF (DO_JVS(1485)) & -! JVS(1485) = Jac_FULL(207,83) - JVS(1485) = 0.5*B(1128) +! JVS(1485) = Jac_FULL(207,281) + JVS(1485) = 0.32*B(992) IF (DO_JVS(1486)) & -! JVS(1486) = Jac_FULL(207,84) - JVS(1486) = 0.3*B(1110) +! JVS(1486) = Jac_FULL(207,284) + JVS(1486) = -B(1036) IF (DO_JVS(1487)) & -! JVS(1487) = Jac_FULL(207,133) - JVS(1487) = 0 +! JVS(1487) = Jac_FULL(207,286) + JVS(1487) = B(988)+0.165*B(1038) IF (DO_JVS(1488)) & -! JVS(1488) = Jac_FULL(207,145) - JVS(1488) = 0.1*B(1237)+0.2*B(1239) +! JVS(1488) = Jac_FULL(207,291) + JVS(1488) = -B(1047) IF (DO_JVS(1489)) & -! JVS(1489) = Jac_FULL(207,149) - JVS(1489) = 0 +! JVS(1489) = Jac_FULL(208,146) + JVS(1489) = 0.89*B(977)+0.73*B(979) IF (DO_JVS(1490)) & -! JVS(1490) = Jac_FULL(207,155) - JVS(1490) = 0.25*B(1232)+0.5*B(1234) +! JVS(1490) = Jac_FULL(208,150) + JVS(1490) = 0.099*B(971)+0.099*B(973) IF (DO_JVS(1491)) & -! JVS(1491) = Jac_FULL(207,160) - JVS(1491) = 0.187*B(1064) +! JVS(1491) = Jac_FULL(208,168) + JVS(1491) = 0.441*B(892)+0.858*B(894) IF (DO_JVS(1492)) & -! JVS(1492) = Jac_FULL(207,165) - JVS(1492) = 0.01*B(691) +! JVS(1492) = Jac_FULL(208,189) + JVS(1492) = 0.054*B(957)+0.07*B(963) IF (DO_JVS(1493)) & -! JVS(1493) = Jac_FULL(207,182) - JVS(1493) = 0 +! JVS(1493) = Jac_FULL(208,208) + JVS(1493) = -B(588)-B(1075)-B(1459) IF (DO_JVS(1494)) & -! JVS(1494) = Jac_FULL(207,184) +! JVS(1494) = Jac_FULL(208,214) JVS(1494) = 0 IF (DO_JVS(1495)) & -! JVS(1495) = Jac_FULL(207,203) - JVS(1495) = 0 +! JVS(1495) = Jac_FULL(208,222) + JVS(1495) = 0.051*B(955)+0.064*B(959) IF (DO_JVS(1496)) & -! JVS(1496) = Jac_FULL(207,206) - JVS(1496) = 0 +! JVS(1496) = Jac_FULL(208,232) + JVS(1496) = 0.033*B(898)+0.071*B(900) IF (DO_JVS(1497)) & -! JVS(1497) = Jac_FULL(207,207) - JVS(1497) = -B(90)-B(553) +! JVS(1497) = Jac_FULL(208,240) + JVS(1497) = 0 IF (DO_JVS(1498)) & -! JVS(1498) = Jac_FULL(207,220) - JVS(1498) = 0 +! JVS(1498) = Jac_FULL(208,241) + JVS(1498) = 0.3*B(1482) IF (DO_JVS(1499)) & -! JVS(1499) = Jac_FULL(207,230) - JVS(1499) = 0.21*B(647)+0.54*B(649) +! JVS(1499) = Jac_FULL(208,242) + JVS(1499) = 0.15*B(1507) IF (DO_JVS(1500)) & -! JVS(1500) = Jac_FULL(207,232) - JVS(1500) = 0.134*B(218)+B(220) +! JVS(1500) = Jac_FULL(208,243) + JVS(1500) = 0 IF (DO_JVS(1501)) & -! JVS(1501) = Jac_FULL(207,234) - JVS(1501) = 0.07*B(671) +! JVS(1501) = Jac_FULL(208,246) + JVS(1501) = 0 IF (DO_JVS(1502)) & -! JVS(1502) = Jac_FULL(207,236) - JVS(1502) = 0 +! JVS(1502) = Jac_FULL(208,279) + JVS(1502) = 0.858*B(895)+0.071*B(901)+0.064*B(960)+0.07*B(964)+0.099*B(972)+0.89*B(978) IF (DO_JVS(1503)) & -! JVS(1503) = Jac_FULL(207,237) - JVS(1503) = 0.449*B(1042) +! JVS(1503) = Jac_FULL(208,281) + JVS(1503) = -B(1076) IF (DO_JVS(1504)) & -! JVS(1504) = Jac_FULL(207,238) - JVS(1504) = 0 +! JVS(1504) = Jac_FULL(208,284) + JVS(1504) = 0.441*B(893)+0.033*B(899)+0.051*B(956)+0.054*B(958)+0.099*B(974)+0.73*B(980) IF (DO_JVS(1505)) & -! JVS(1505) = Jac_FULL(207,242) - JVS(1505) = 0 +! JVS(1505) = Jac_FULL(208,286) + JVS(1505) = -B(589) IF (DO_JVS(1506)) & -! JVS(1506) = Jac_FULL(207,243) - JVS(1506) = 0 +! JVS(1506) = Jac_FULL(209,112) + JVS(1506) = 0.209*B(243) IF (DO_JVS(1507)) & -! JVS(1507) = Jac_FULL(207,245) - JVS(1507) = 0 +! JVS(1507) = Jac_FULL(209,209) + JVS(1507) = -B(120)-B(159)-B(205)-B(270) IF (DO_JVS(1508)) & -! JVS(1508) = Jac_FULL(207,246) - JVS(1508) = 0.5*B(234) +! JVS(1508) = Jac_FULL(209,253) + JVS(1508) = B(209)+B(540)+B(542) IF (DO_JVS(1509)) & -! JVS(1509) = Jac_FULL(207,247) - JVS(1509) = 0 +! JVS(1509) = Jac_FULL(209,261) + JVS(1509) = -B(271) IF (DO_JVS(1510)) & -! JVS(1510) = Jac_FULL(207,263) - JVS(1510) = 0 +! JVS(1510) = Jac_FULL(209,266) + JVS(1510) = -B(160) IF (DO_JVS(1511)) & -! JVS(1511) = Jac_FULL(207,269) - JVS(1511) = -B(91)+0.134*B(219)+B(221)+0.5*B(235)+0.449*B(1043)+0.187*B(1065)+0.3*B(1111)+0.5*B(1129)+0.364*B(1147)& - &+0.25*B(1233)+0.1*B(1238) +! JVS(1511) = Jac_FULL(209,273) + JVS(1511) = B(543) IF (DO_JVS(1512)) & -! JVS(1512) = Jac_FULL(207,270) - JVS(1512) = 0 +! JVS(1512) = Jac_FULL(209,279) + JVS(1512) = -B(121) IF (DO_JVS(1513)) & -! JVS(1513) = Jac_FULL(207,277) - JVS(1513) = 0.01*B(692)+0.5*B(1235)+0.2*B(1240) +! JVS(1513) = Jac_FULL(209,284) + JVS(1513) = -B(206) IF (DO_JVS(1514)) & -! JVS(1514) = Jac_FULL(207,279) - JVS(1514) = 0.21*B(648)+0.54*B(650) +! JVS(1514) = Jac_FULL(209,286) + JVS(1514) = B(210)+0.209*B(244) IF (DO_JVS(1515)) & -! JVS(1515) = Jac_FULL(207,280) - JVS(1515) = 0.07*B(672) +! JVS(1515) = Jac_FULL(209,290) + JVS(1515) = B(541) IF (DO_JVS(1516)) & -! JVS(1516) = Jac_FULL(207,281) - JVS(1516) = 0 +! JVS(1516) = Jac_FULL(210,115) + JVS(1516) = 0.5*B(1138) IF (DO_JVS(1517)) & -! JVS(1517) = Jac_FULL(207,285) - JVS(1517) = -B(554) +! JVS(1517) = Jac_FULL(210,118) + JVS(1517) = 0.258*B(1134) IF (DO_JVS(1518)) & -! JVS(1518) = Jac_FULL(207,287) - JVS(1518) = 0 +! JVS(1518) = Jac_FULL(210,142) + JVS(1518) = 0.5*B(1144) IF (DO_JVS(1519)) & -! JVS(1519) = Jac_FULL(208,150) - JVS(1519) = 0.02*B(681) +! JVS(1519) = Jac_FULL(210,160) + JVS(1519) = B(1173) IF (DO_JVS(1520)) & -! JVS(1520) = Jac_FULL(208,151) - JVS(1520) = 0.02*B(683) +! JVS(1520) = Jac_FULL(210,180) + JVS(1520) = 0 IF (DO_JVS(1521)) & -! JVS(1521) = Jac_FULL(208,165) - JVS(1521) = 0.02*B(691) +! JVS(1521) = Jac_FULL(210,191) + JVS(1521) = 0 IF (DO_JVS(1522)) & -! JVS(1522) = Jac_FULL(208,191) - JVS(1522) = B(663) +! JVS(1522) = Jac_FULL(210,210) + JVS(1522) = -B(1175)-B(1177)-B(1358)-B(1515) IF (DO_JVS(1523)) & -! JVS(1523) = Jac_FULL(208,208) - JVS(1523) = -B(15)-B(39)-B(407)-B(511)-B(1404) +! JVS(1523) = Jac_FULL(210,266) + JVS(1523) = 0 IF (DO_JVS(1524)) & -! JVS(1524) = Jac_FULL(208,220) - JVS(1524) = 0.013*B(753) +! JVS(1524) = Jac_FULL(210,279) + JVS(1524) = 0 IF (DO_JVS(1525)) & -! JVS(1525) = Jac_FULL(208,230) - JVS(1525) = 0.06*B(647)+0.06*B(649) +! JVS(1525) = Jac_FULL(210,281) + JVS(1525) = 0.258*B(1135)+0.5*B(1139)+0.5*B(1145)-B(1178) IF (DO_JVS(1526)) & -! JVS(1526) = Jac_FULL(208,244) - JVS(1526) = 0.045*B(1032) +! JVS(1526) = Jac_FULL(210,282) + JVS(1526) = 0 IF (DO_JVS(1527)) & -! JVS(1527) = Jac_FULL(208,254) +! JVS(1527) = Jac_FULL(210,284) JVS(1527) = 0 IF (DO_JVS(1528)) & -! JVS(1528) = Jac_FULL(208,258) - JVS(1528) = 0 +! JVS(1528) = Jac_FULL(210,286) + JVS(1528) = -B(1176) IF (DO_JVS(1529)) & -! JVS(1529) = Jac_FULL(208,269) - JVS(1529) = B(36)-B(40) +! JVS(1529) = Jac_FULL(210,291) + JVS(1529) = B(1174) IF (DO_JVS(1530)) & -! JVS(1530) = Jac_FULL(208,270) - JVS(1530) = 0 +! JVS(1530) = Jac_FULL(211,58) + JVS(1530) = 0.364*B(1097) IF (DO_JVS(1531)) & -! JVS(1531) = Jac_FULL(208,277) - JVS(1531) = 0.02*B(682)+0.02*B(684)+0.02*B(692)+0.013*B(754)+0.045*B(1033) +! JVS(1531) = Jac_FULL(211,85) + JVS(1531) = 0.5*B(1079) IF (DO_JVS(1532)) & -! JVS(1532) = Jac_FULL(208,279) - JVS(1532) = 0.06*B(648)+0.06*B(650)+B(664) +! JVS(1532) = Jac_FULL(211,105) + JVS(1532) = 0.3*B(1061) IF (DO_JVS(1533)) & -! JVS(1533) = Jac_FULL(208,280) +! JVS(1533) = Jac_FULL(211,136) JVS(1533) = 0 IF (DO_JVS(1534)) & -! JVS(1534) = Jac_FULL(208,281) - JVS(1534) = B(43) +! JVS(1534) = Jac_FULL(211,148) + JVS(1534) = 0.1*B(1188)+0.2*B(1190) IF (DO_JVS(1535)) & -! JVS(1535) = Jac_FULL(208,284) - JVS(1535) = -B(408) +! JVS(1535) = Jac_FULL(211,153) + JVS(1535) = 0 IF (DO_JVS(1536)) & -! JVS(1536) = Jac_FULL(208,285) - JVS(1536) = -B(512) +! JVS(1536) = Jac_FULL(211,159) + JVS(1536) = 0.26*B(1183)+0.5*B(1185) IF (DO_JVS(1537)) & -! JVS(1537) = Jac_FULL(208,286) - JVS(1537) = -B(16) +! JVS(1537) = Jac_FULL(211,163) + JVS(1537) = 0.187*B(1015) IF (DO_JVS(1538)) & -! JVS(1538) = Jac_FULL(208,287) - JVS(1538) = 0 +! JVS(1538) = Jac_FULL(211,170) + JVS(1538) = 0.01*B(642) IF (DO_JVS(1539)) & -! JVS(1539) = Jac_FULL(209,148) - JVS(1539) = B(926) +! JVS(1539) = Jac_FULL(211,186) + JVS(1539) = 0 IF (DO_JVS(1540)) & -! JVS(1540) = Jac_FULL(209,162) - JVS(1540) = B(919) +! JVS(1540) = Jac_FULL(211,188) + JVS(1540) = 0 IF (DO_JVS(1541)) & -! JVS(1541) = Jac_FULL(209,163) - JVS(1541) = B(934) +! JVS(1541) = Jac_FULL(211,207) + JVS(1541) = 0 IF (DO_JVS(1542)) & -! JVS(1542) = Jac_FULL(209,164) - JVS(1542) = B(933) +! JVS(1542) = Jac_FULL(211,210) + JVS(1542) = 0 IF (DO_JVS(1543)) & -! JVS(1543) = Jac_FULL(209,185) - JVS(1543) = B(1002) +! JVS(1543) = Jac_FULL(211,211) + JVS(1543) = -B(87)-B(512) IF (DO_JVS(1544)) & -! JVS(1544) = Jac_FULL(209,190) - JVS(1544) = B(886) +! JVS(1544) = Jac_FULL(211,224) + JVS(1544) = 0 IF (DO_JVS(1545)) & -! JVS(1545) = Jac_FULL(209,209) - JVS(1545) = -B(1120)-B(1395)-B(1550)-B(1551) +! JVS(1545) = Jac_FULL(211,234) + JVS(1545) = 0.21*B(598)+0.54*B(600) IF (DO_JVS(1546)) & -! JVS(1546) = Jac_FULL(209,210) - JVS(1546) = 0 +! JVS(1546) = Jac_FULL(211,236) + JVS(1546) = 0.134*B(213)+B(215) IF (DO_JVS(1547)) & -! JVS(1547) = Jac_FULL(209,216) - JVS(1547) = 0 +! JVS(1547) = Jac_FULL(211,238) + JVS(1547) = 0.07*B(622) IF (DO_JVS(1548)) & -! JVS(1548) = Jac_FULL(209,217) - JVS(1548) = 0.5*B(1003) +! JVS(1548) = Jac_FULL(211,240) + JVS(1548) = 0 IF (DO_JVS(1549)) & -! JVS(1549) = Jac_FULL(209,224) - JVS(1549) = B(874) +! JVS(1549) = Jac_FULL(211,241) + JVS(1549) = 0.449*B(993) IF (DO_JVS(1550)) & -! JVS(1550) = Jac_FULL(209,225) - JVS(1550) = B(880) +! JVS(1550) = Jac_FULL(211,242) + JVS(1550) = 0 IF (DO_JVS(1551)) & -! JVS(1551) = Jac_FULL(209,238) - JVS(1551) = 0.92*B(1122) +! JVS(1551) = Jac_FULL(211,244) + JVS(1551) = 0 IF (DO_JVS(1552)) & -! JVS(1552) = Jac_FULL(209,241) +! JVS(1552) = Jac_FULL(211,245) JVS(1552) = 0 IF (DO_JVS(1553)) & -! JVS(1553) = Jac_FULL(209,242) +! JVS(1553) = Jac_FULL(211,249) JVS(1553) = 0 IF (DO_JVS(1554)) & -! JVS(1554) = Jac_FULL(209,243) - JVS(1554) = 0 +! JVS(1554) = Jac_FULL(211,250) + JVS(1554) = 0.5*B(229) IF (DO_JVS(1555)) & -! JVS(1555) = Jac_FULL(209,269) - JVS(1555) = -B(1121)+0.92*B(1123) +! JVS(1555) = Jac_FULL(211,251) + JVS(1555) = 0 IF (DO_JVS(1556)) & -! JVS(1556) = Jac_FULL(209,280) - JVS(1556) = B(875)+B(881)+B(887) +! JVS(1556) = Jac_FULL(211,266) + JVS(1556) = 0 IF (DO_JVS(1557)) & -! JVS(1557) = Jac_FULL(209,281) - JVS(1557) = 0 +! JVS(1557) = Jac_FULL(211,278) + JVS(1557) = 0.21*B(599)+0.54*B(601) IF (DO_JVS(1558)) & -! JVS(1558) = Jac_FULL(210,210) - JVS(1558) = -B(911)-B(913)-B(917)-B(1390)-B(1537) +! JVS(1558) = Jac_FULL(211,279) + JVS(1558) = 0.07*B(623) IF (DO_JVS(1559)) & -! JVS(1559) = Jac_FULL(210,241) - JVS(1559) = 0.127*B(962)+0.057*B(963) +! JVS(1559) = Jac_FULL(211,281) + JVS(1559) = 0 IF (DO_JVS(1560)) & -! JVS(1560) = Jac_FULL(210,242) - JVS(1560) = B(795) +! JVS(1560) = Jac_FULL(211,282) + JVS(1560) = 0.01*B(643)+0.5*B(1186)+0.2*B(1191) IF (DO_JVS(1561)) & -! JVS(1561) = Jac_FULL(210,263) - JVS(1561) = 0.057*B(964) +! JVS(1561) = Jac_FULL(211,284) + JVS(1561) = 0 IF (DO_JVS(1562)) & -! JVS(1562) = Jac_FULL(210,269) - JVS(1562) = -B(912)-B(914)-B(918) +! JVS(1562) = Jac_FULL(211,286) + JVS(1562) = -B(88)+0.134*B(214)+B(216)+0.5*B(230)+0.449*B(994)+0.187*B(1016)+0.3*B(1062)+0.5*B(1080)+0.364*B(1098)& + &+0.26*B(1184)+0.1*B(1189) IF (DO_JVS(1563)) & -! JVS(1563) = Jac_FULL(210,280) - JVS(1563) = B(796) +! JVS(1563) = Jac_FULL(211,290) + JVS(1563) = -B(513) IF (DO_JVS(1564)) & -! JVS(1564) = Jac_FULL(211,150) - JVS(1564) = 0.1*B(685) +! JVS(1564) = Jac_FULL(211,291) + JVS(1564) = 0 IF (DO_JVS(1565)) & -! JVS(1565) = Jac_FULL(211,151) - JVS(1565) = 0.1*B(687) +! JVS(1565) = Jac_FULL(212,154) + JVS(1565) = 0.02*B(632) IF (DO_JVS(1566)) & -! JVS(1566) = Jac_FULL(211,165) - JVS(1566) = 0.5*B(693) +! JVS(1566) = Jac_FULL(212,155) + JVS(1566) = 0.02*B(634) IF (DO_JVS(1567)) & -! JVS(1567) = Jac_FULL(211,211) - JVS(1567) = -B(707)-B(711)-B(715)-B(719)-B(723)-2*B(727)-B(728) +! JVS(1567) = Jac_FULL(212,170) + JVS(1567) = 0.02*B(642) IF (DO_JVS(1568)) & -! JVS(1568) = Jac_FULL(211,212) - JVS(1568) = -B(729) +! JVS(1568) = Jac_FULL(212,195) + JVS(1568) = B(614) IF (DO_JVS(1569)) & -! JVS(1569) = Jac_FULL(211,257) - JVS(1569) = -B(720) +! JVS(1569) = Jac_FULL(212,212) + JVS(1569) = -B(15)-B(40)-B(370)-B(472)-B(1363) IF (DO_JVS(1570)) & -! JVS(1570) = Jac_FULL(211,263) - JVS(1570) = -B(716) +! JVS(1570) = Jac_FULL(212,224) + JVS(1570) = 0.013*B(704) IF (DO_JVS(1571)) & -! JVS(1571) = Jac_FULL(211,269) - JVS(1571) = 0 +! JVS(1571) = Jac_FULL(212,234) + JVS(1571) = 0.06*B(598)+0.06*B(600) IF (DO_JVS(1572)) & -! JVS(1572) = Jac_FULL(211,277) - JVS(1572) = 0 +! JVS(1572) = Jac_FULL(212,248) + JVS(1572) = 0.045*B(983) IF (DO_JVS(1573)) & -! JVS(1573) = Jac_FULL(211,280) - JVS(1573) = -B(708) +! JVS(1573) = Jac_FULL(212,253) + JVS(1573) = 0 IF (DO_JVS(1574)) & -! JVS(1574) = Jac_FULL(211,281) - JVS(1574) = -B(712) +! JVS(1574) = Jac_FULL(212,267) + JVS(1574) = 0 IF (DO_JVS(1575)) & -! JVS(1575) = Jac_FULL(211,287) - JVS(1575) = 0.1*B(686)+0.1*B(688)+0.5*B(694)-B(724) +! JVS(1575) = Jac_FULL(212,276) + JVS(1575) = -B(16) IF (DO_JVS(1576)) & -! JVS(1576) = Jac_FULL(212,150) - JVS(1576) = 0.9*B(685) +! JVS(1576) = Jac_FULL(212,278) + JVS(1576) = 0.06*B(599)+0.06*B(601)+B(615) IF (DO_JVS(1577)) & -! JVS(1577) = Jac_FULL(212,151) - JVS(1577) = 0.9*B(687) +! JVS(1577) = Jac_FULL(212,279) + JVS(1577) = 0 IF (DO_JVS(1578)) & -! JVS(1578) = Jac_FULL(212,165) - JVS(1578) = 0.5*B(693) +! JVS(1578) = Jac_FULL(212,281) + JVS(1578) = 0 IF (DO_JVS(1579)) & -! JVS(1579) = Jac_FULL(212,211) - JVS(1579) = -B(728) +! JVS(1579) = Jac_FULL(212,282) + JVS(1579) = 0.02*B(633)+0.02*B(635)+0.02*B(643)+0.013*B(705)+0.045*B(984) IF (DO_JVS(1580)) & -! JVS(1580) = Jac_FULL(212,212) - JVS(1580) = -B(709)-B(713)-B(717)-B(721)-B(725)-B(729)-2*B(730) +! JVS(1580) = Jac_FULL(212,284) + JVS(1580) = B(44) IF (DO_JVS(1581)) & -! JVS(1581) = Jac_FULL(212,257) - JVS(1581) = -B(722) +! JVS(1581) = Jac_FULL(212,286) + JVS(1581) = B(37)-B(41) IF (DO_JVS(1582)) & -! JVS(1582) = Jac_FULL(212,263) - JVS(1582) = -B(718) +! JVS(1582) = Jac_FULL(212,288) + JVS(1582) = -B(371) IF (DO_JVS(1583)) & -! JVS(1583) = Jac_FULL(212,269) - JVS(1583) = 0 +! JVS(1583) = Jac_FULL(212,290) + JVS(1583) = -B(473) IF (DO_JVS(1584)) & -! JVS(1584) = Jac_FULL(212,277) +! JVS(1584) = Jac_FULL(212,291) JVS(1584) = 0 IF (DO_JVS(1585)) & -! JVS(1585) = Jac_FULL(212,280) - JVS(1585) = -B(710) +! JVS(1585) = Jac_FULL(213,152) + JVS(1585) = B(877) IF (DO_JVS(1586)) & -! JVS(1586) = Jac_FULL(212,281) - JVS(1586) = -B(714) +! JVS(1586) = Jac_FULL(213,166) + JVS(1586) = B(884) IF (DO_JVS(1587)) & -! JVS(1587) = Jac_FULL(212,287) - JVS(1587) = 0.9*B(686)+0.9*B(688)+0.5*B(694)-B(726) +! JVS(1587) = Jac_FULL(213,167) + JVS(1587) = B(870) IF (DO_JVS(1588)) & -! JVS(1588) = Jac_FULL(213,157) - JVS(1588) = B(107)+B(266)+B(349)+B(559) +! JVS(1588) = Jac_FULL(213,168) + JVS(1588) = B(885) IF (DO_JVS(1589)) & -! JVS(1589) = Jac_FULL(213,213) - JVS(1589) = -B(109)-B(111)-B(178)-2*B(200)-2*B(202)-B(204)-B(297)-B(301)-B(561) +! JVS(1589) = Jac_FULL(213,189) + JVS(1589) = B(953) IF (DO_JVS(1590)) & -! JVS(1590) = Jac_FULL(213,257) - JVS(1590) = -B(298)-B(302) +! JVS(1590) = Jac_FULL(213,194) + JVS(1590) = B(837) IF (DO_JVS(1591)) & -! JVS(1591) = Jac_FULL(213,263) - JVS(1591) = -B(179) +! JVS(1591) = Jac_FULL(213,213) + JVS(1591) = -B(1071)-B(1354)-B(1509)-B(1510) IF (DO_JVS(1592)) & -! JVS(1592) = Jac_FULL(213,269) - JVS(1592) = B(108) +! JVS(1592) = Jac_FULL(213,214) + JVS(1592) = 0 IF (DO_JVS(1593)) & -! JVS(1593) = Jac_FULL(213,280) - JVS(1593) = -B(110)-B(112) +! JVS(1593) = Jac_FULL(213,220) + JVS(1593) = 0 IF (DO_JVS(1594)) & -! JVS(1594) = Jac_FULL(213,281) - JVS(1594) = -B(205) +! JVS(1594) = Jac_FULL(213,222) + JVS(1594) = 0.5*B(954) IF (DO_JVS(1595)) & -! JVS(1595) = Jac_FULL(213,282) - JVS(1595) = B(350) +! JVS(1595) = Jac_FULL(213,228) + JVS(1595) = B(825) IF (DO_JVS(1596)) & -! JVS(1596) = Jac_FULL(213,285) - JVS(1596) = B(560)-B(562) +! JVS(1596) = Jac_FULL(213,229) + JVS(1596) = B(831) IF (DO_JVS(1597)) & -! JVS(1597) = Jac_FULL(213,287) - JVS(1597) = B(267) +! JVS(1597) = Jac_FULL(213,242) + JVS(1597) = 0.9*B(1073) IF (DO_JVS(1598)) & -! JVS(1598) = Jac_FULL(214,175) - JVS(1598) = 0.2*B(1154) +! JVS(1598) = Jac_FULL(213,244) + JVS(1598) = 0 IF (DO_JVS(1599)) & -! JVS(1599) = Jac_FULL(214,197) - JVS(1599) = 0.25*B(194) +! JVS(1599) = Jac_FULL(213,245) + JVS(1599) = 0 IF (DO_JVS(1600)) & -! JVS(1600) = Jac_FULL(214,204) - JVS(1600) = 0.25*B(162) +! JVS(1600) = Jac_FULL(213,246) + JVS(1600) = 0 IF (DO_JVS(1601)) & -! JVS(1601) = Jac_FULL(214,212) - JVS(1601) = 0.25*B(717) +! JVS(1601) = Jac_FULL(213,279) + JVS(1601) = B(826)+B(832)+B(838) IF (DO_JVS(1602)) & -! JVS(1602) = Jac_FULL(214,213) - JVS(1602) = 0.25*B(178) +! JVS(1602) = Jac_FULL(213,284) + JVS(1602) = 0 IF (DO_JVS(1603)) & -! JVS(1603) = Jac_FULL(214,214) - JVS(1603) = -B(92)-B(565) +! JVS(1603) = Jac_FULL(213,286) + JVS(1603) = -B(1072)+0.9*B(1074) IF (DO_JVS(1604)) & -! JVS(1604) = Jac_FULL(214,221) - JVS(1604) = 0.25*B(699) +! JVS(1604) = Jac_FULL(214,214) + JVS(1604) = -B(862)-B(864)-B(868)-B(1349)-B(1496) IF (DO_JVS(1605)) & -! JVS(1605) = Jac_FULL(214,232) - JVS(1605) = 0.1*B(1422) +! JVS(1605) = Jac_FULL(214,245) + JVS(1605) = B(746) IF (DO_JVS(1606)) & -! JVS(1606) = Jac_FULL(214,233) - JVS(1606) = 0.25*B(160) +! JVS(1606) = Jac_FULL(214,246) + JVS(1606) = 0.127*B(913)+0.057*B(914) IF (DO_JVS(1607)) & -! JVS(1607) = Jac_FULL(214,234) - JVS(1607) = 0.25*B(675) +! JVS(1607) = Jac_FULL(214,266) + JVS(1607) = 0.057*B(915) IF (DO_JVS(1608)) & -! JVS(1608) = Jac_FULL(214,235) - JVS(1608) = 0.25*B(180) +! JVS(1608) = Jac_FULL(214,279) + JVS(1608) = B(747) IF (DO_JVS(1609)) & -! JVS(1609) = Jac_FULL(214,240) - JVS(1609) = 0.034*B(965) +! JVS(1609) = Jac_FULL(214,286) + JVS(1609) = -B(863)-B(865)-B(869) IF (DO_JVS(1610)) & -! JVS(1610) = Jac_FULL(214,241) - JVS(1610) = 0.355*B(963) +! JVS(1610) = Jac_FULL(215,154) + JVS(1610) = 0.1*B(636) IF (DO_JVS(1611)) & -! JVS(1611) = Jac_FULL(214,248) - JVS(1611) = 0.5*B(188) +! JVS(1611) = Jac_FULL(215,155) + JVS(1611) = 0.1*B(638) IF (DO_JVS(1612)) & -! JVS(1612) = Jac_FULL(214,249) - JVS(1612) = 0.25*B(190) +! JVS(1612) = Jac_FULL(215,170) + JVS(1612) = 0.5*B(644) IF (DO_JVS(1613)) & -! JVS(1613) = Jac_FULL(214,251) - JVS(1613) = 0.25*B(186) +! JVS(1613) = Jac_FULL(215,215) + JVS(1613) = -B(658)-B(662)-B(666)-B(670)-B(674)-2*B(678)-B(679) IF (DO_JVS(1614)) & -! JVS(1614) = Jac_FULL(214,252) - JVS(1614) = 0.25*B(184) +! JVS(1614) = Jac_FULL(215,216) + JVS(1614) = -B(680) IF (DO_JVS(1615)) & -! JVS(1615) = Jac_FULL(214,253) - JVS(1615) = 0.25*B(192) +! JVS(1615) = Jac_FULL(215,261) + JVS(1615) = -B(671) IF (DO_JVS(1616)) & -! JVS(1616) = Jac_FULL(214,254) - JVS(1616) = 0 +! JVS(1616) = Jac_FULL(215,266) + JVS(1616) = -B(667) IF (DO_JVS(1617)) & -! JVS(1617) = Jac_FULL(214,257) - JVS(1617) = 0 +! JVS(1617) = Jac_FULL(215,279) + JVS(1617) = -B(659) IF (DO_JVS(1618)) & -! JVS(1618) = Jac_FULL(214,263) - JVS(1618) = B(54)+0.13*B(56)+0.25*B(161)+0.25*B(163)+0.25*B(179)+0.25*B(181)+0.25*B(185)+0.25*B(187)+0.5*B(189)+0.25& - &*B(191)+0.25*B(193)+0.25*B(195)+0.25*B(676)+0.25*B(700)+0.25*B(718)+0.355*B(964)+0.034*B(966)+0.2*B(1155) +! JVS(1618) = Jac_FULL(215,281) + JVS(1618) = 0.1*B(637)+0.1*B(639)+0.5*B(645)-B(675) IF (DO_JVS(1619)) & -! JVS(1619) = Jac_FULL(214,269) - JVS(1619) = 0.13*B(57)-B(93) +! JVS(1619) = Jac_FULL(215,282) + JVS(1619) = 0 IF (DO_JVS(1620)) & -! JVS(1620) = Jac_FULL(214,277) - JVS(1620) = 0 +! JVS(1620) = Jac_FULL(215,284) + JVS(1620) = -B(663) IF (DO_JVS(1621)) & -! JVS(1621) = Jac_FULL(214,280) +! JVS(1621) = Jac_FULL(215,286) JVS(1621) = 0 IF (DO_JVS(1622)) & -! JVS(1622) = Jac_FULL(214,281) - JVS(1622) = 0 +! JVS(1622) = Jac_FULL(216,154) + JVS(1622) = 0.9*B(636) IF (DO_JVS(1623)) & -! JVS(1623) = Jac_FULL(214,282) - JVS(1623) = 0 +! JVS(1623) = Jac_FULL(216,155) + JVS(1623) = 0.9*B(638) IF (DO_JVS(1624)) & -! JVS(1624) = Jac_FULL(214,285) - JVS(1624) = -B(566) +! JVS(1624) = Jac_FULL(216,170) + JVS(1624) = 0.5*B(644) IF (DO_JVS(1625)) & -! JVS(1625) = Jac_FULL(214,287) - JVS(1625) = 0 +! JVS(1625) = Jac_FULL(216,215) + JVS(1625) = -B(679) IF (DO_JVS(1626)) & -! JVS(1626) = Jac_FULL(215,145) - JVS(1626) = 0.15*B(1237)+0.3*B(1239) +! JVS(1626) = Jac_FULL(216,216) + JVS(1626) = -B(660)-B(664)-B(668)-B(672)-B(676)-B(680)-2*B(681) IF (DO_JVS(1627)) & -! JVS(1627) = Jac_FULL(215,191) - JVS(1627) = B(665) +! JVS(1627) = Jac_FULL(216,261) + JVS(1627) = -B(673) IF (DO_JVS(1628)) & -! JVS(1628) = Jac_FULL(215,197) - JVS(1628) = B(293) +! JVS(1628) = Jac_FULL(216,266) + JVS(1628) = -B(669) IF (DO_JVS(1629)) & -! JVS(1629) = Jac_FULL(215,204) - JVS(1629) = B(242) +! JVS(1629) = Jac_FULL(216,279) + JVS(1629) = -B(661) IF (DO_JVS(1630)) & -! JVS(1630) = Jac_FULL(215,213) - JVS(1630) = B(301) +! JVS(1630) = Jac_FULL(216,281) + JVS(1630) = 0.9*B(637)+0.9*B(639)+0.5*B(645)-B(677) IF (DO_JVS(1631)) & -! JVS(1631) = Jac_FULL(215,215) - JVS(1631) = -B(147)-B(569) +! JVS(1631) = Jac_FULL(216,282) + JVS(1631) = 0 IF (DO_JVS(1632)) & -! JVS(1632) = Jac_FULL(215,233) - JVS(1632) = B(240) +! JVS(1632) = Jac_FULL(216,284) + JVS(1632) = -B(665) IF (DO_JVS(1633)) & -! JVS(1633) = Jac_FULL(215,235) - JVS(1633) = B(303) +! JVS(1633) = Jac_FULL(216,286) + JVS(1633) = 0 IF (DO_JVS(1634)) & -! JVS(1634) = Jac_FULL(215,246) - JVS(1634) = 0.5*B(234) +! JVS(1634) = Jac_FULL(217,161) + JVS(1634) = B(104)+B(249)+B(320)+B(518) IF (DO_JVS(1635)) & -! JVS(1635) = Jac_FULL(215,248) - JVS(1635) = B(287) +! JVS(1635) = Jac_FULL(217,217) + JVS(1635) = -B(106)-B(108)-B(175)-2*B(197)-B(199)-B(266)-B(520) IF (DO_JVS(1636)) & -! JVS(1636) = Jac_FULL(215,249) - JVS(1636) = B(289) +! JVS(1636) = Jac_FULL(217,261) + JVS(1636) = -B(267) IF (DO_JVS(1637)) & -! JVS(1637) = Jac_FULL(215,251) - JVS(1637) = B(291) +! JVS(1637) = Jac_FULL(217,266) + JVS(1637) = -B(176) IF (DO_JVS(1638)) & -! JVS(1638) = Jac_FULL(215,252) - JVS(1638) = B(285) +! JVS(1638) = Jac_FULL(217,273) + JVS(1638) = B(321) IF (DO_JVS(1639)) & -! JVS(1639) = Jac_FULL(215,253) - JVS(1639) = B(295) +! JVS(1639) = Jac_FULL(217,279) + JVS(1639) = -B(107)-B(109) IF (DO_JVS(1640)) & -! JVS(1640) = Jac_FULL(215,254) - JVS(1640) = 0 +! JVS(1640) = Jac_FULL(217,281) + JVS(1640) = B(250) IF (DO_JVS(1641)) & -! JVS(1641) = Jac_FULL(215,257) - JVS(1641) = B(241)+B(243)+B(271)+B(286)+B(288)+B(290)+B(292)+B(294)+B(296)+B(302)+B(304)+0.13*B(1130) +! JVS(1641) = Jac_FULL(217,284) + JVS(1641) = -B(200) IF (DO_JVS(1642)) & -! JVS(1642) = Jac_FULL(215,258) - JVS(1642) = 0 +! JVS(1642) = Jac_FULL(217,286) + JVS(1642) = B(105) IF (DO_JVS(1643)) & -! JVS(1643) = Jac_FULL(215,263) - JVS(1643) = B(272) +! JVS(1643) = Jac_FULL(217,290) + JVS(1643) = B(519)-B(521) IF (DO_JVS(1644)) & -! JVS(1644) = Jac_FULL(215,269) - JVS(1644) = -B(148)+0.5*B(235)+0.15*B(1238) +! JVS(1644) = Jac_FULL(218,179) + JVS(1644) = 0.2*B(1105) IF (DO_JVS(1645)) & -! JVS(1645) = Jac_FULL(215,270) - JVS(1645) = 0 +! JVS(1645) = Jac_FULL(218,201) + JVS(1645) = 0.25*B(191) IF (DO_JVS(1646)) & -! JVS(1646) = Jac_FULL(215,277) - JVS(1646) = 0.3*B(1240) +! JVS(1646) = Jac_FULL(218,209) + JVS(1646) = 0.25*B(159) IF (DO_JVS(1647)) & -! JVS(1647) = Jac_FULL(215,279) - JVS(1647) = B(666) +! JVS(1647) = Jac_FULL(218,216) + JVS(1647) = 0.25*B(668) IF (DO_JVS(1648)) & -! JVS(1648) = Jac_FULL(215,280) - JVS(1648) = 0 +! JVS(1648) = Jac_FULL(218,217) + JVS(1648) = 0.25*B(175) IF (DO_JVS(1649)) & -! JVS(1649) = Jac_FULL(215,281) - JVS(1649) = 0.13*B(1131) +! JVS(1649) = Jac_FULL(218,218) + JVS(1649) = -B(89)-B(524) IF (DO_JVS(1650)) & -! JVS(1650) = Jac_FULL(215,282) - JVS(1650) = 0 +! JVS(1650) = Jac_FULL(218,225) + JVS(1650) = 0.25*B(650) IF (DO_JVS(1651)) & -! JVS(1651) = Jac_FULL(215,285) - JVS(1651) = -B(570) +! JVS(1651) = Jac_FULL(218,236) + JVS(1651) = 0.1*B(1381) IF (DO_JVS(1652)) & -! JVS(1652) = Jac_FULL(215,286) - JVS(1652) = 0 +! JVS(1652) = Jac_FULL(218,237) + JVS(1652) = 0.25*B(157) IF (DO_JVS(1653)) & -! JVS(1653) = Jac_FULL(215,287) - JVS(1653) = 0 +! JVS(1653) = Jac_FULL(218,238) + JVS(1653) = 0.25*B(626) IF (DO_JVS(1654)) & -! JVS(1654) = Jac_FULL(216,216) - JVS(1654) = -B(907)-B(909)-B(915)-B(1387)-B(1534) +! JVS(1654) = Jac_FULL(218,239) + JVS(1654) = 0.25*B(177) IF (DO_JVS(1655)) & -! JVS(1655) = Jac_FULL(216,240) - JVS(1655) = 0.032*B(960) +! JVS(1655) = Jac_FULL(218,246) + JVS(1655) = 0.355*B(914) IF (DO_JVS(1656)) & -! JVS(1656) = Jac_FULL(216,241) - JVS(1656) = 0.032*B(961)+0.671*B(962)+0.298*B(963) +! JVS(1656) = Jac_FULL(218,247) + JVS(1656) = 0.034*B(916) IF (DO_JVS(1657)) & -! JVS(1657) = Jac_FULL(216,243) - JVS(1657) = B(803) +! JVS(1657) = Jac_FULL(218,252) + JVS(1657) = 0.5*B(185) IF (DO_JVS(1658)) & -! JVS(1658) = Jac_FULL(216,263) - JVS(1658) = 0.298*B(964) +! JVS(1658) = Jac_FULL(218,253) + JVS(1658) = 0 IF (DO_JVS(1659)) & -! JVS(1659) = Jac_FULL(216,269) - JVS(1659) = -B(908)-B(910)-B(916) +! JVS(1659) = Jac_FULL(218,254) + JVS(1659) = 0.25*B(187) IF (DO_JVS(1660)) & -! JVS(1660) = Jac_FULL(216,280) - JVS(1660) = B(804) +! JVS(1660) = Jac_FULL(218,256) + JVS(1660) = 0.25*B(181) IF (DO_JVS(1661)) & -! JVS(1661) = Jac_FULL(217,177) - JVS(1661) = 0.67*B(986) +! JVS(1661) = Jac_FULL(218,257) + JVS(1661) = 0.25*B(183) IF (DO_JVS(1662)) & -! JVS(1662) = Jac_FULL(217,217) - JVS(1662) = -B(1003)-B(1004)-B(1008)-B(1010) +! JVS(1662) = Jac_FULL(218,258) + JVS(1662) = 0.25*B(189) IF (DO_JVS(1663)) & -! JVS(1663) = Jac_FULL(217,240) +! JVS(1663) = Jac_FULL(218,261) JVS(1663) = 0 IF (DO_JVS(1664)) & -! JVS(1664) = Jac_FULL(217,241) - JVS(1664) = 0 +! JVS(1664) = Jac_FULL(218,266) + JVS(1664) = B(55)+0.13*B(57)+0.25*B(158)+0.25*B(160)+0.25*B(176)+0.25*B(178)+0.25*B(182)+0.25*B(184)+0.5*B(186)+0.25& + &*B(188)+0.25*B(190)+0.25*B(192)+0.25*B(627)+0.25*B(651)+0.25*B(669)+0.355*B(915)+0.034*B(917)+0.2*B(1106) IF (DO_JVS(1665)) & -! JVS(1665) = Jac_FULL(217,263) +! JVS(1665) = Jac_FULL(218,273) JVS(1665) = 0 IF (DO_JVS(1666)) & -! JVS(1666) = Jac_FULL(217,269) - JVS(1666) = 0.67*B(987) +! JVS(1666) = Jac_FULL(218,279) + JVS(1666) = 0 IF (DO_JVS(1667)) & -! JVS(1667) = Jac_FULL(217,280) - JVS(1667) = -B(1009)-B(1011) +! JVS(1667) = Jac_FULL(218,281) + JVS(1667) = 0 IF (DO_JVS(1668)) & -! JVS(1668) = Jac_FULL(217,281) - JVS(1668) = -B(1005) +! JVS(1668) = Jac_FULL(218,282) + JVS(1668) = 0 IF (DO_JVS(1669)) & -! JVS(1669) = Jac_FULL(218,54) - JVS(1669) = 0.636*B(1146) +! JVS(1669) = Jac_FULL(218,284) + JVS(1669) = 0 IF (DO_JVS(1670)) & -! JVS(1670) = Jac_FULL(218,60) - JVS(1670) = 0.18*B(1165) +! JVS(1670) = Jac_FULL(218,286) + JVS(1670) = 0.13*B(58)-B(90) IF (DO_JVS(1671)) & -! JVS(1671) = Jac_FULL(218,76) - JVS(1671) = 0.12*B(1167) +! JVS(1671) = Jac_FULL(218,290) + JVS(1671) = -B(525) IF (DO_JVS(1672)) & -! JVS(1672) = Jac_FULL(218,77) - JVS(1672) = 0.1*B(1169) +! JVS(1672) = Jac_FULL(219,148) + JVS(1672) = 0.15*B(1188)+0.3*B(1190) IF (DO_JVS(1673)) & -! JVS(1673) = Jac_FULL(218,117) - JVS(1673) = 0.06*B(1181) +! JVS(1673) = Jac_FULL(219,195) + JVS(1673) = B(616) IF (DO_JVS(1674)) & -! JVS(1674) = Jac_FULL(218,152) - JVS(1674) = 0.429*B(1519) +! JVS(1674) = Jac_FULL(219,201) + JVS(1674) = 0.1*B(264) IF (DO_JVS(1675)) & -! JVS(1675) = Jac_FULL(218,155) - JVS(1675) = 0.6*B(1232)+0.6*B(1234)+0.2*B(1236) +! JVS(1675) = Jac_FULL(219,209) + JVS(1675) = 0.1*B(270) IF (DO_JVS(1676)) & -! JVS(1676) = Jac_FULL(218,159) - JVS(1676) = 0.571*B(1546) +! JVS(1676) = Jac_FULL(219,217) + JVS(1676) = 0.1*B(266) IF (DO_JVS(1677)) & -! JVS(1677) = Jac_FULL(218,160) - JVS(1677) = 0.125*B(1520) +! JVS(1677) = Jac_FULL(219,219) + JVS(1677) = -B(144)-B(528) IF (DO_JVS(1678)) & -! JVS(1678) = Jac_FULL(218,168) - JVS(1678) = B(1134) +! JVS(1678) = Jac_FULL(219,237) + JVS(1678) = 0.1*B(272) IF (DO_JVS(1679)) & -! JVS(1679) = Jac_FULL(218,179) - JVS(1679) = 0 +! JVS(1679) = Jac_FULL(219,239) + JVS(1679) = 0.1*B(268) IF (DO_JVS(1680)) & -! JVS(1680) = Jac_FULL(218,180) - JVS(1680) = 0 +! JVS(1680) = Jac_FULL(219,250) + JVS(1680) = 0.5*B(229) IF (DO_JVS(1681)) & -! JVS(1681) = Jac_FULL(218,181) - JVS(1681) = 0.5*B(1517) +! JVS(1681) = Jac_FULL(219,252) + JVS(1681) = 0.1*B(256) IF (DO_JVS(1682)) & -! JVS(1682) = Jac_FULL(218,182) +! JVS(1682) = Jac_FULL(219,253) JVS(1682) = 0 IF (DO_JVS(1683)) & -! JVS(1683) = Jac_FULL(218,183) - JVS(1683) = 0 +! JVS(1683) = Jac_FULL(219,254) + JVS(1683) = 0.1*B(258) IF (DO_JVS(1684)) & -! JVS(1684) = Jac_FULL(218,184) - JVS(1684) = 0 +! JVS(1684) = Jac_FULL(219,256) + JVS(1684) = 0.1*B(254) IF (DO_JVS(1685)) & -! JVS(1685) = Jac_FULL(218,185) - JVS(1685) = 0 +! JVS(1685) = Jac_FULL(219,257) + JVS(1685) = 0.1*B(262) IF (DO_JVS(1686)) & -! JVS(1686) = Jac_FULL(218,202) - JVS(1686) = 0.438*B(1544) +! JVS(1686) = Jac_FULL(219,258) + JVS(1686) = 0.1*B(260) IF (DO_JVS(1687)) & -! JVS(1687) = Jac_FULL(218,206) - JVS(1687) = 0 +! JVS(1687) = Jac_FULL(219,261) + JVS(1687) = 0.1*B(252)+0.1*B(255)+0.1*B(257)+0.1*B(259)+0.1*B(261)+0.1*B(263)+0.1*B(265)+0.1*B(267)+0.1*B(269)+0.1& + &*B(271)+0.1*B(273)+0.13*B(1081) IF (DO_JVS(1688)) & -! JVS(1688) = Jac_FULL(218,210) - JVS(1688) = 0 +! JVS(1688) = Jac_FULL(219,266) + JVS(1688) = 0.1*B(253) IF (DO_JVS(1689)) & -! JVS(1689) = Jac_FULL(218,216) +! JVS(1689) = Jac_FULL(219,267) JVS(1689) = 0 IF (DO_JVS(1690)) & -! JVS(1690) = Jac_FULL(218,217) +! JVS(1690) = Jac_FULL(219,273) JVS(1690) = 0 IF (DO_JVS(1691)) & -! JVS(1691) = Jac_FULL(218,218) - JVS(1691) = -B(224)-B(228)-B(1374)-B(1423)-B(1424)-B(1425) +! JVS(1691) = Jac_FULL(219,276) + JVS(1691) = 0 IF (DO_JVS(1692)) & -! JVS(1692) = Jac_FULL(218,220) - JVS(1692) = 0 +! JVS(1692) = Jac_FULL(219,278) + JVS(1692) = B(617) IF (DO_JVS(1693)) & -! JVS(1693) = Jac_FULL(218,224) +! JVS(1693) = Jac_FULL(219,279) JVS(1693) = 0 IF (DO_JVS(1694)) & -! JVS(1694) = Jac_FULL(218,225) - JVS(1694) = 0.8*B(878)+0.52*B(882) +! JVS(1694) = Jac_FULL(219,281) + JVS(1694) = 0 IF (DO_JVS(1695)) & -! JVS(1695) = Jac_FULL(218,226) - JVS(1695) = 0 +! JVS(1695) = Jac_FULL(219,282) + JVS(1695) = 0.3*B(1191) IF (DO_JVS(1696)) & -! JVS(1696) = Jac_FULL(218,232) - JVS(1696) = 0.134*B(218) +! JVS(1696) = Jac_FULL(219,284) + JVS(1696) = 0.13*B(1082) IF (DO_JVS(1697)) & -! JVS(1697) = Jac_FULL(218,236) - JVS(1697) = 0 +! JVS(1697) = Jac_FULL(219,286) + JVS(1697) = -B(145)+0.5*B(230)+0.15*B(1189) IF (DO_JVS(1698)) & -! JVS(1698) = Jac_FULL(218,237) - JVS(1698) = 0 +! JVS(1698) = Jac_FULL(219,290) + JVS(1698) = -B(529) IF (DO_JVS(1699)) & -! JVS(1699) = Jac_FULL(218,238) +! JVS(1699) = Jac_FULL(219,291) JVS(1699) = 0 IF (DO_JVS(1700)) & -! JVS(1700) = Jac_FULL(218,240) - JVS(1700) = 0 +! JVS(1700) = Jac_FULL(220,220) + JVS(1700) = -B(858)-B(860)-B(866)-B(1346)-B(1493) IF (DO_JVS(1701)) & -! JVS(1701) = Jac_FULL(218,241) - JVS(1701) = 0 +! JVS(1701) = Jac_FULL(220,244) + JVS(1701) = B(754) IF (DO_JVS(1702)) & -! JVS(1702) = Jac_FULL(218,242) - JVS(1702) = 0 +! JVS(1702) = Jac_FULL(220,246) + JVS(1702) = 0.032*B(911)+0.671*B(913)+0.298*B(914) IF (DO_JVS(1703)) & -! JVS(1703) = Jac_FULL(218,243) - JVS(1703) = 0 +! JVS(1703) = Jac_FULL(220,247) + JVS(1703) = 0.032*B(912) IF (DO_JVS(1704)) & -! JVS(1704) = Jac_FULL(218,263) - JVS(1704) = 0 +! JVS(1704) = Jac_FULL(220,266) + JVS(1704) = 0.298*B(915) IF (DO_JVS(1705)) & -! JVS(1705) = Jac_FULL(218,269) - JVS(1705) = 0.134*B(219)-B(225)+B(1135)+0.636*B(1147)+0.18*B(1166)+0.12*B(1168)+0.1*B(1170)+0.06*B(1182)+0.6*B(1233) +! JVS(1705) = Jac_FULL(220,279) + JVS(1705) = B(755) IF (DO_JVS(1706)) & -! JVS(1706) = Jac_FULL(218,270) - JVS(1706) = 0 +! JVS(1706) = Jac_FULL(220,286) + JVS(1706) = -B(859)-B(861)-B(867) IF (DO_JVS(1707)) & -! JVS(1707) = Jac_FULL(218,277) - JVS(1707) = 0.6*B(1235) +! JVS(1707) = Jac_FULL(221,87) + JVS(1707) = B(700)+B(1469) IF (DO_JVS(1708)) & -! JVS(1708) = Jac_FULL(218,280) - JVS(1708) = 0.8*B(879) +! JVS(1708) = Jac_FULL(221,95) + JVS(1708) = 0.791*B(237)+B(1394) IF (DO_JVS(1709)) & -! JVS(1709) = Jac_FULL(218,281) - JVS(1709) = 0.52*B(883) +! JVS(1709) = Jac_FULL(221,202) + JVS(1709) = 0.34*B(1398) IF (DO_JVS(1710)) & -! JVS(1710) = Jac_FULL(218,287) - JVS(1710) = -B(229) +! JVS(1710) = Jac_FULL(221,221) + JVS(1710) = -B(155)-B(318)-B(534)-B(1378)-B(1379) IF (DO_JVS(1711)) & -! JVS(1711) = Jac_FULL(219,86) - JVS(1711) = B(749)+B(1510) +! JVS(1711) = Jac_FULL(221,238) + JVS(1711) = 0.11*B(622) IF (DO_JVS(1712)) & -! JVS(1712) = Jac_FULL(219,93) - JVS(1712) = 0.791*B(254)+B(1435) +! JVS(1712) = Jac_FULL(221,254) + JVS(1712) = 0 IF (DO_JVS(1713)) & -! JVS(1713) = Jac_FULL(219,198) - JVS(1713) = 0.32*B(1439) +! JVS(1713) = Jac_FULL(221,256) + JVS(1713) = 0.34*B(124)+0.16*B(181)+0.29*B(254) IF (DO_JVS(1714)) & -! JVS(1714) = Jac_FULL(219,219) - JVS(1714) = -B(158)-B(347)-B(575)-B(1419)-B(1420) +! JVS(1714) = Jac_FULL(221,257) + JVS(1714) = 0 IF (DO_JVS(1715)) & -! JVS(1715) = Jac_FULL(219,234) - JVS(1715) = 0.11*B(671) +! JVS(1715) = Jac_FULL(221,258) + JVS(1715) = B(134)+0.75*B(189)+B(260) IF (DO_JVS(1716)) & -! JVS(1716) = Jac_FULL(219,249) - JVS(1716) = 0 +! JVS(1716) = Jac_FULL(221,261) + JVS(1716) = 0.29*B(255)+B(261) IF (DO_JVS(1717)) & -! JVS(1717) = Jac_FULL(219,251) - JVS(1717) = 0 +! JVS(1717) = Jac_FULL(221,266) + JVS(1717) = 0.16*B(182)+0.75*B(190) IF (DO_JVS(1718)) & -! JVS(1718) = Jac_FULL(219,252) - JVS(1718) = 0.32*B(127)+0.16*B(184)+0.32*B(273) +! JVS(1718) = Jac_FULL(221,273) + JVS(1718) = -B(319) IF (DO_JVS(1719)) & -! JVS(1719) = Jac_FULL(219,253) - JVS(1719) = B(137)+0.75*B(192)+B(279)+B(295) +! JVS(1719) = Jac_FULL(221,279) + JVS(1719) = 0.34*B(125)+B(135)+0.11*B(623) IF (DO_JVS(1720)) & -! JVS(1720) = Jac_FULL(219,257) - JVS(1720) = 0.32*B(274)+B(280)+B(296) +! JVS(1720) = Jac_FULL(221,284) + JVS(1720) = 0 IF (DO_JVS(1721)) & -! JVS(1721) = Jac_FULL(219,263) - JVS(1721) = 0.16*B(185)+0.75*B(193) +! JVS(1721) = Jac_FULL(221,286) + JVS(1721) = -B(156)+0.791*B(238)+B(701) IF (DO_JVS(1722)) & -! JVS(1722) = Jac_FULL(219,269) - JVS(1722) = -B(159)+0.791*B(255)+B(750) +! JVS(1722) = Jac_FULL(221,290) + JVS(1722) = -B(535) IF (DO_JVS(1723)) & -! JVS(1723) = Jac_FULL(219,280) - JVS(1723) = 0.32*B(128)+B(138)+0.11*B(672) +! JVS(1723) = Jac_FULL(222,181) + JVS(1723) = 0.67*B(937) IF (DO_JVS(1724)) & -! JVS(1724) = Jac_FULL(219,281) - JVS(1724) = 0 +! JVS(1724) = Jac_FULL(222,222) + JVS(1724) = -B(954)-B(955)-B(959)-B(961) IF (DO_JVS(1725)) & -! JVS(1725) = Jac_FULL(219,282) - JVS(1725) = -B(348) +! JVS(1725) = Jac_FULL(222,246) + JVS(1725) = 0 IF (DO_JVS(1726)) & -! JVS(1726) = Jac_FULL(219,285) - JVS(1726) = -B(576) +! JVS(1726) = Jac_FULL(222,247) + JVS(1726) = 0 IF (DO_JVS(1727)) & -! JVS(1727) = Jac_FULL(220,220) - JVS(1727) = -B(577)-B(753)-B(755)-B(757)-B(759)-B(761)-B(953) +! JVS(1727) = Jac_FULL(222,266) + JVS(1727) = 0 IF (DO_JVS(1728)) & -! JVS(1728) = Jac_FULL(220,269) - JVS(1728) = -B(756)-B(758)-B(760)-B(762) +! JVS(1728) = Jac_FULL(222,279) + JVS(1728) = -B(960)-B(962) IF (DO_JVS(1729)) & -! JVS(1729) = Jac_FULL(220,277) - JVS(1729) = -B(754) +! JVS(1729) = Jac_FULL(222,284) + JVS(1729) = -B(956) IF (DO_JVS(1730)) & -! JVS(1730) = Jac_FULL(220,285) - JVS(1730) = -B(578) +! JVS(1730) = Jac_FULL(222,286) + JVS(1730) = 0.67*B(938) IF (DO_JVS(1731)) & -! JVS(1731) = Jac_FULL(220,287) - JVS(1731) = -B(954) +! JVS(1731) = Jac_FULL(223,58) + JVS(1731) = 0.636*B(1097) IF (DO_JVS(1732)) & -! JVS(1732) = Jac_FULL(221,165) - JVS(1732) = B(689) +! JVS(1732) = Jac_FULL(223,64) + JVS(1732) = 0.18*B(1116) IF (DO_JVS(1733)) & -! JVS(1733) = Jac_FULL(221,221) - JVS(1733) = -B(695)-B(697)-B(699)-B(701)-B(703) +! JVS(1733) = Jac_FULL(223,79) + JVS(1733) = 0.12*B(1118) IF (DO_JVS(1734)) & -! JVS(1734) = Jac_FULL(221,257) - JVS(1734) = -B(702) +! JVS(1734) = Jac_FULL(223,80) + JVS(1734) = 0.1*B(1120) IF (DO_JVS(1735)) & -! JVS(1735) = Jac_FULL(221,263) - JVS(1735) = -B(700) +! JVS(1735) = Jac_FULL(223,118) + JVS(1735) = 0.06*B(1132) IF (DO_JVS(1736)) & -! JVS(1736) = Jac_FULL(221,269) - JVS(1736) = B(690) +! JVS(1736) = Jac_FULL(223,156) + JVS(1736) = 0.429*B(1478) IF (DO_JVS(1737)) & -! JVS(1737) = Jac_FULL(221,277) - JVS(1737) = 0 +! JVS(1737) = Jac_FULL(223,159) + JVS(1737) = 0.6*B(1183)+0.6*B(1185)+0.2*B(1187) IF (DO_JVS(1738)) & -! JVS(1738) = Jac_FULL(221,280) - JVS(1738) = -B(696) +! JVS(1738) = Jac_FULL(223,163) + JVS(1738) = 0.125*B(1479) IF (DO_JVS(1739)) & -! JVS(1739) = Jac_FULL(221,281) - JVS(1739) = -B(698) +! JVS(1739) = Jac_FULL(223,164) + JVS(1739) = 0.571*B(1505) IF (DO_JVS(1740)) & -! JVS(1740) = Jac_FULL(221,287) - JVS(1740) = -B(704) +! JVS(1740) = Jac_FULL(223,172) + JVS(1740) = B(1085) IF (DO_JVS(1741)) & -! JVS(1741) = Jac_FULL(222,118) - JVS(1741) = 0.41*B(705) +! JVS(1741) = Jac_FULL(223,182) + JVS(1741) = 0 IF (DO_JVS(1742)) & -! JVS(1742) = Jac_FULL(222,150) - JVS(1742) = 0.53*B(681) +! JVS(1742) = Jac_FULL(223,183) + JVS(1742) = 0 IF (DO_JVS(1743)) & -! JVS(1743) = Jac_FULL(222,151) - JVS(1743) = 0.53*B(683) +! JVS(1743) = Jac_FULL(223,185) + JVS(1743) = 0.5*B(1476) IF (DO_JVS(1744)) & -! JVS(1744) = Jac_FULL(222,174) - JVS(1744) = B(1501) +! JVS(1744) = Jac_FULL(223,186) + JVS(1744) = 0 IF (DO_JVS(1745)) & -! JVS(1745) = Jac_FULL(222,198) - JVS(1745) = 0.19*B(1439) +! JVS(1745) = Jac_FULL(223,187) + JVS(1745) = 0 IF (DO_JVS(1746)) & -! JVS(1746) = Jac_FULL(222,211) - JVS(1746) = 0.149*B(728) +! JVS(1746) = Jac_FULL(223,188) + JVS(1746) = 0 IF (DO_JVS(1747)) & -! JVS(1747) = Jac_FULL(222,212) - JVS(1747) = 0.464*B(709)+0.348*B(717)+0.464*B(721)+0.464*B(725)+0.149*B(729)+0.285*B(730) +! JVS(1747) = Jac_FULL(223,189) + JVS(1747) = 0 IF (DO_JVS(1748)) & -! JVS(1748) = Jac_FULL(222,221) - JVS(1748) = 0.289*B(695) +! JVS(1748) = Jac_FULL(223,206) + JVS(1748) = 0.586*B(1503) IF (DO_JVS(1749)) & -! JVS(1749) = Jac_FULL(222,222) - JVS(1749) = -B(176)-B(182)-B(1421) +! JVS(1749) = Jac_FULL(223,210) + JVS(1749) = 0 IF (DO_JVS(1750)) & -! JVS(1750) = Jac_FULL(222,234) - JVS(1750) = 0.44*B(671)+0.75*B(675)+B(677)+B(679) +! JVS(1750) = Jac_FULL(223,214) + JVS(1750) = 0 IF (DO_JVS(1751)) & -! JVS(1751) = Jac_FULL(222,249) - JVS(1751) = 0.25*B(190)+B(289) +! JVS(1751) = Jac_FULL(223,220) + JVS(1751) = 0 IF (DO_JVS(1752)) & -! JVS(1752) = Jac_FULL(222,251) +! JVS(1752) = Jac_FULL(223,222) JVS(1752) = 0 IF (DO_JVS(1753)) & -! JVS(1753) = Jac_FULL(222,252) - JVS(1753) = 0.19*B(127)+0.35*B(184)+0.19*B(273)+B(285) +! JVS(1753) = Jac_FULL(223,223) + JVS(1753) = -B(219)-B(223)-B(1333)-B(1382)-B(1383)-B(1384) IF (DO_JVS(1754)) & -! JVS(1754) = Jac_FULL(222,257) - JVS(1754) = 0.19*B(274)+B(286)+B(290)+B(678)+0.464*B(722) +! JVS(1754) = Jac_FULL(223,224) + JVS(1754) = 0 IF (DO_JVS(1755)) & -! JVS(1755) = Jac_FULL(222,263) - JVS(1755) = 0.35*B(185)+0.25*B(191)+0.75*B(676)+0.348*B(718) +! JVS(1755) = Jac_FULL(223,228) + JVS(1755) = 0 IF (DO_JVS(1756)) & -! JVS(1756) = Jac_FULL(222,269) - JVS(1756) = -B(177)+0.41*B(706) +! JVS(1756) = Jac_FULL(223,229) + JVS(1756) = 0.8*B(829)+0.52*B(833) IF (DO_JVS(1757)) & -! JVS(1757) = Jac_FULL(222,277) - JVS(1757) = 0.53*B(682)+0.53*B(684) +! JVS(1757) = Jac_FULL(223,230) + JVS(1757) = 0 IF (DO_JVS(1758)) & -! JVS(1758) = Jac_FULL(222,280) - JVS(1758) = 0.19*B(128)+0.44*B(672)+0.289*B(696)+0.464*B(710) +! JVS(1758) = Jac_FULL(223,236) + JVS(1758) = 0.134*B(213) IF (DO_JVS(1759)) & -! JVS(1759) = Jac_FULL(222,281) +! JVS(1759) = Jac_FULL(223,240) JVS(1759) = 0 IF (DO_JVS(1760)) & -! JVS(1760) = Jac_FULL(222,287) - JVS(1760) = -B(183)+B(680)+0.464*B(726) +! JVS(1760) = Jac_FULL(223,241) + JVS(1760) = 0 IF (DO_JVS(1761)) & -! JVS(1761) = Jac_FULL(223,40) - JVS(1761) = 2*B(633) +! JVS(1761) = Jac_FULL(223,242) + JVS(1761) = 0 IF (DO_JVS(1762)) & -! JVS(1762) = Jac_FULL(223,47) - JVS(1762) = B(1489) +! JVS(1762) = Jac_FULL(223,244) + JVS(1762) = 0 IF (DO_JVS(1763)) & -! JVS(1763) = Jac_FULL(223,90) - JVS(1763) = -B(605)+B(609) +! JVS(1763) = Jac_FULL(223,245) + JVS(1763) = 0 IF (DO_JVS(1764)) & -! JVS(1764) = Jac_FULL(223,223) - JVS(1764) = -B(594)-B(601)-B(603)-B(606)-B(611)-B(613)-B(615)-B(627)-B(629)-2*B(631)-2*B(632)-B(1478) +! JVS(1764) = Jac_FULL(223,246) + JVS(1764) = 0 IF (DO_JVS(1765)) & -! JVS(1765) = Jac_FULL(223,264) - JVS(1765) = B(625) +! JVS(1765) = Jac_FULL(223,247) + JVS(1765) = 0 IF (DO_JVS(1766)) & -! JVS(1766) = Jac_FULL(223,265) - JVS(1766) = B(599)+B(617) +! JVS(1766) = Jac_FULL(223,266) + JVS(1766) = 0 IF (DO_JVS(1767)) & -! JVS(1767) = Jac_FULL(223,266) - JVS(1767) = B(596) +! JVS(1767) = Jac_FULL(223,279) + JVS(1767) = 0.8*B(830) IF (DO_JVS(1768)) & -! JVS(1768) = Jac_FULL(223,269) - JVS(1768) = B(626) +! JVS(1768) = Jac_FULL(223,281) + JVS(1768) = -B(224) IF (DO_JVS(1769)) & -! JVS(1769) = Jac_FULL(223,270) - JVS(1769) = -B(595) +! JVS(1769) = Jac_FULL(223,282) + JVS(1769) = 0.6*B(1186) IF (DO_JVS(1770)) & -! JVS(1770) = Jac_FULL(223,273) - JVS(1770) = -B(612)-B(614)-B(616) +! JVS(1770) = Jac_FULL(223,284) + JVS(1770) = 0.52*B(834) IF (DO_JVS(1771)) & -! JVS(1771) = Jac_FULL(223,274) - JVS(1771) = B(600)-B(602)-B(604) +! JVS(1771) = Jac_FULL(223,286) + JVS(1771) = 0.134*B(214)-B(220)+B(1086)+0.636*B(1098)+0.18*B(1117)+0.12*B(1119)+0.1*B(1121)+0.06*B(1133)+0.6*B(1184) IF (DO_JVS(1772)) & -! JVS(1772) = Jac_FULL(223,277) - JVS(1772) = B(618) +! JVS(1772) = Jac_FULL(223,291) + JVS(1772) = 0 IF (DO_JVS(1773)) & -! JVS(1773) = Jac_FULL(223,280) - JVS(1773) = B(610)-B(630) +! JVS(1773) = Jac_FULL(224,224) + JVS(1773) = -B(536)-B(704)-B(706)-B(708)-B(710)-B(712)-B(904) IF (DO_JVS(1774)) & -! JVS(1774) = Jac_FULL(223,281) - JVS(1774) = -B(628) +! JVS(1774) = Jac_FULL(224,281) + JVS(1774) = -B(905) IF (DO_JVS(1775)) & -! JVS(1775) = Jac_FULL(224,122) - JVS(1775) = 0.08*B(1114) +! JVS(1775) = Jac_FULL(224,282) + JVS(1775) = -B(705) IF (DO_JVS(1776)) & -! JVS(1776) = Jac_FULL(224,127) - JVS(1776) = 0.67*B(862) +! JVS(1776) = Jac_FULL(224,286) + JVS(1776) = -B(707)-B(709)-B(711)-B(713) IF (DO_JVS(1777)) & -! JVS(1777) = Jac_FULL(224,128) - JVS(1777) = 0.81*B(866) +! JVS(1777) = Jac_FULL(224,290) + JVS(1777) = -B(537) IF (DO_JVS(1778)) & -! JVS(1778) = Jac_FULL(224,136) - JVS(1778) = 0 +! JVS(1778) = Jac_FULL(225,170) + JVS(1778) = B(640) IF (DO_JVS(1779)) & -! JVS(1779) = Jac_FULL(224,137) - JVS(1779) = 0 +! JVS(1779) = Jac_FULL(225,225) + JVS(1779) = -B(646)-B(648)-B(650)-B(652)-B(654) IF (DO_JVS(1780)) & -! JVS(1780) = Jac_FULL(224,153) - JVS(1780) = 0 +! JVS(1780) = Jac_FULL(225,261) + JVS(1780) = -B(653) IF (DO_JVS(1781)) & -! JVS(1781) = Jac_FULL(224,158) - JVS(1781) = 0 +! JVS(1781) = Jac_FULL(225,266) + JVS(1781) = -B(651) IF (DO_JVS(1782)) & -! JVS(1782) = Jac_FULL(224,189) - JVS(1782) = 0.294*B(815) +! JVS(1782) = Jac_FULL(225,279) + JVS(1782) = -B(647) IF (DO_JVS(1783)) & -! JVS(1783) = Jac_FULL(224,210) - JVS(1783) = 0 +! JVS(1783) = Jac_FULL(225,281) + JVS(1783) = -B(655) IF (DO_JVS(1784)) & -! JVS(1784) = Jac_FULL(224,216) +! JVS(1784) = Jac_FULL(225,282) JVS(1784) = 0 IF (DO_JVS(1785)) & -! JVS(1785) = Jac_FULL(224,224) - JVS(1785) = -B(868)-B(869)-B(870)-B(872)-B(874) +! JVS(1785) = Jac_FULL(225,284) + JVS(1785) = -B(649) IF (DO_JVS(1786)) & -! JVS(1786) = Jac_FULL(224,225) - JVS(1786) = 0 +! JVS(1786) = Jac_FULL(225,286) + JVS(1786) = B(641) IF (DO_JVS(1787)) & -! JVS(1787) = Jac_FULL(224,240) - JVS(1787) = 0 +! JVS(1787) = Jac_FULL(226,119) + JVS(1787) = 0.41*B(656) IF (DO_JVS(1788)) & -! JVS(1788) = Jac_FULL(224,241) - JVS(1788) = 0 +! JVS(1788) = Jac_FULL(226,154) + JVS(1788) = 0.53*B(632) IF (DO_JVS(1789)) & -! JVS(1789) = Jac_FULL(224,242) - JVS(1789) = 0 +! JVS(1789) = Jac_FULL(226,155) + JVS(1789) = 0.53*B(634) IF (DO_JVS(1790)) & -! JVS(1790) = Jac_FULL(224,243) - JVS(1790) = 0 +! JVS(1790) = Jac_FULL(226,178) + JVS(1790) = B(1460) IF (DO_JVS(1791)) & -! JVS(1791) = Jac_FULL(224,263) - JVS(1791) = 0 +! JVS(1791) = Jac_FULL(226,202) + JVS(1791) = 0.19*B(1398) IF (DO_JVS(1792)) & -! JVS(1792) = Jac_FULL(224,269) - JVS(1792) = 0.294*B(816)+0.67*B(863)+0.81*B(867)+0.08*B(1115) +! JVS(1792) = Jac_FULL(226,215) + JVS(1792) = 0.149*B(679) IF (DO_JVS(1793)) & -! JVS(1793) = Jac_FULL(224,280) - JVS(1793) = -B(873)-B(875) +! JVS(1793) = Jac_FULL(226,216) + JVS(1793) = 0.464*B(660)+0.34*B(668)+0.464*B(672)+0.464*B(676)+0.149*B(680)+0.285*B(681) IF (DO_JVS(1794)) & -! JVS(1794) = Jac_FULL(224,281) - JVS(1794) = -B(871) +! JVS(1794) = Jac_FULL(226,225) + JVS(1794) = 0.289*B(646) IF (DO_JVS(1795)) & -! JVS(1795) = Jac_FULL(225,122) - JVS(1795) = 0.032*B(1114) +! JVS(1795) = Jac_FULL(226,226) + JVS(1795) = -B(173)-B(179)-B(1380) IF (DO_JVS(1796)) & -! JVS(1796) = Jac_FULL(225,127) - JVS(1796) = 0.33*B(862) +! JVS(1796) = Jac_FULL(226,238) + JVS(1796) = 0.44*B(622)+0.75*B(626)+1.125*B(628)+B(630) IF (DO_JVS(1797)) & -! JVS(1797) = Jac_FULL(225,128) - JVS(1797) = 0.19*B(866) +! JVS(1797) = Jac_FULL(226,254) + JVS(1797) = 0.25*B(187)+0.1*B(258) IF (DO_JVS(1798)) & -! JVS(1798) = Jac_FULL(225,136) - JVS(1798) = 0 +! JVS(1798) = Jac_FULL(226,256) + JVS(1798) = 0.19*B(124)+0.35*B(181)+0.271*B(254) IF (DO_JVS(1799)) & -! JVS(1799) = Jac_FULL(225,137) +! JVS(1799) = Jac_FULL(226,257) JVS(1799) = 0 IF (DO_JVS(1800)) & -! JVS(1800) = Jac_FULL(225,153) - JVS(1800) = 0 +! JVS(1800) = Jac_FULL(226,261) + JVS(1800) = 0.271*B(255)+0.1*B(259)+1.125*B(629)+0.464*B(673) IF (DO_JVS(1801)) & -! JVS(1801) = Jac_FULL(225,158) - JVS(1801) = 0 +! JVS(1801) = Jac_FULL(226,266) + JVS(1801) = 0.35*B(182)+0.25*B(188)+0.75*B(627)+0.34*B(669) IF (DO_JVS(1802)) & -! JVS(1802) = Jac_FULL(225,189) - JVS(1802) = 0.068*B(815) +! JVS(1802) = Jac_FULL(226,279) + JVS(1802) = 0.19*B(125)+0.44*B(623)+0.289*B(647)+0.464*B(661) IF (DO_JVS(1803)) & -! JVS(1803) = Jac_FULL(225,210) - JVS(1803) = 0 +! JVS(1803) = Jac_FULL(226,281) + JVS(1803) = -B(180)+B(631)+0.464*B(677) IF (DO_JVS(1804)) & -! JVS(1804) = Jac_FULL(225,216) - JVS(1804) = 0 +! JVS(1804) = Jac_FULL(226,282) + JVS(1804) = 0.53*B(633)+0.53*B(635) IF (DO_JVS(1805)) & -! JVS(1805) = Jac_FULL(225,224) +! JVS(1805) = Jac_FULL(226,284) JVS(1805) = 0 IF (DO_JVS(1806)) & -! JVS(1806) = Jac_FULL(225,225) - JVS(1806) = -B(876)-B(877)-B(878)-B(880)-B(882) +! JVS(1806) = Jac_FULL(226,286) + JVS(1806) = -B(174)+0.41*B(657) IF (DO_JVS(1807)) & -! JVS(1807) = Jac_FULL(225,240) - JVS(1807) = 0 +! JVS(1807) = Jac_FULL(227,44) + JVS(1807) = 0.008*B(585) IF (DO_JVS(1808)) & -! JVS(1808) = Jac_FULL(225,241) - JVS(1808) = 0 +! JVS(1808) = Jac_FULL(227,49) + JVS(1808) = B(1448) IF (DO_JVS(1809)) & -! JVS(1809) = Jac_FULL(225,242) - JVS(1809) = 0 +! JVS(1809) = Jac_FULL(227,92) + JVS(1809) = -B(562)+B(566) IF (DO_JVS(1810)) & -! JVS(1810) = Jac_FULL(225,243) - JVS(1810) = 0 +! JVS(1810) = Jac_FULL(227,227) + JVS(1810) = -B(553)-B(560)-B(563)-B(568)-B(580)-B(582)-2*B(584)-B(1437) IF (DO_JVS(1811)) & -! JVS(1811) = Jac_FULL(225,263) - JVS(1811) = 0 +! JVS(1811) = Jac_FULL(227,268) + JVS(1811) = B(578) IF (DO_JVS(1812)) & -! JVS(1812) = Jac_FULL(225,269) - JVS(1812) = 0.068*B(816)+0.33*B(863)+0.19*B(867)+0.032*B(1115) +! JVS(1812) = Jac_FULL(227,269) + JVS(1812) = B(558)+B(570) IF (DO_JVS(1813)) & -! JVS(1813) = Jac_FULL(225,280) - JVS(1813) = -B(879)-B(881) +! JVS(1813) = Jac_FULL(227,270) + JVS(1813) = B(555) IF (DO_JVS(1814)) & -! JVS(1814) = Jac_FULL(225,281) - JVS(1814) = -B(883) +! JVS(1814) = Jac_FULL(227,274) + JVS(1814) = B(559)-B(561) IF (DO_JVS(1815)) & -! JVS(1815) = Jac_FULL(226,126) - JVS(1815) = 0.19*B(811) +! JVS(1815) = Jac_FULL(227,279) + JVS(1815) = B(567)-B(583) IF (DO_JVS(1816)) & -! JVS(1816) = Jac_FULL(226,153) - JVS(1816) = 0.125*B(829) +! JVS(1816) = Jac_FULL(227,282) + JVS(1816) = B(571) IF (DO_JVS(1817)) & -! JVS(1817) = Jac_FULL(226,159) - JVS(1817) = 0.429*B(1118) +! JVS(1817) = Jac_FULL(227,284) + JVS(1817) = -B(581) IF (DO_JVS(1818)) & -! JVS(1818) = Jac_FULL(226,167) - JVS(1818) = 0 +! JVS(1818) = Jac_FULL(227,285) + JVS(1818) = -B(569) IF (DO_JVS(1819)) & -! JVS(1819) = Jac_FULL(226,179) - JVS(1819) = 0 +! JVS(1819) = Jac_FULL(227,286) + JVS(1819) = B(579) IF (DO_JVS(1820)) & -! JVS(1820) = Jac_FULL(226,180) - JVS(1820) = 0.706*B(845)+0.14*B(849) +! JVS(1820) = Jac_FULL(227,291) + JVS(1820) = -B(554) IF (DO_JVS(1821)) & -! JVS(1821) = Jac_FULL(226,182) - JVS(1821) = 0.33*B(807) +! JVS(1821) = Jac_FULL(228,125) + JVS(1821) = 0.08*B(1065) IF (DO_JVS(1822)) & -! JVS(1822) = Jac_FULL(226,183) - JVS(1822) = 0 +! JVS(1822) = Jac_FULL(228,130) + JVS(1822) = 0.67*B(813) IF (DO_JVS(1823)) & -! JVS(1823) = Jac_FULL(226,189) - JVS(1823) = 0.125*B(815) +! JVS(1823) = Jac_FULL(228,131) + JVS(1823) = 0.81*B(817) IF (DO_JVS(1824)) & -! JVS(1824) = Jac_FULL(226,200) - JVS(1824) = 0.335*B(1076) +! JVS(1824) = Jac_FULL(228,139) + JVS(1824) = 0 IF (DO_JVS(1825)) & -! JVS(1825) = Jac_FULL(226,209) - JVS(1825) = 0.75*B(1120)+0.5*B(1551) +! JVS(1825) = Jac_FULL(228,140) + JVS(1825) = 0 IF (DO_JVS(1826)) & -! JVS(1826) = Jac_FULL(226,210) +! JVS(1826) = Jac_FULL(228,157) JVS(1826) = 0 IF (DO_JVS(1827)) & -! JVS(1827) = Jac_FULL(226,216) - JVS(1827) = 0.55*B(1534) +! JVS(1827) = Jac_FULL(228,162) + JVS(1827) = 0 IF (DO_JVS(1828)) & -! JVS(1828) = Jac_FULL(226,217) - JVS(1828) = 0.054*B(1004)+0.059*B(1008) +! JVS(1828) = Jac_FULL(228,192) + JVS(1828) = 0.294*B(766) IF (DO_JVS(1829)) & -! JVS(1829) = Jac_FULL(226,220) +! JVS(1829) = Jac_FULL(228,214) JVS(1829) = 0 IF (DO_JVS(1830)) & -! JVS(1830) = Jac_FULL(226,224) +! JVS(1830) = Jac_FULL(228,220) JVS(1830) = 0 IF (DO_JVS(1831)) & -! JVS(1831) = Jac_FULL(226,225) - JVS(1831) = 0 +! JVS(1831) = Jac_FULL(228,228) + JVS(1831) = -B(819)-B(820)-B(821)-B(823)-B(825) IF (DO_JVS(1832)) & -! JVS(1832) = Jac_FULL(226,226) - JVS(1832) = -B(1044)-B(1518) +! JVS(1832) = Jac_FULL(228,229) + JVS(1832) = 0 IF (DO_JVS(1833)) & -! JVS(1833) = Jac_FULL(226,236) +! JVS(1833) = Jac_FULL(228,244) JVS(1833) = 0 IF (DO_JVS(1834)) & -! JVS(1834) = Jac_FULL(226,238) +! JVS(1834) = Jac_FULL(228,245) JVS(1834) = 0 IF (DO_JVS(1835)) & -! JVS(1835) = Jac_FULL(226,240) +! JVS(1835) = Jac_FULL(228,246) JVS(1835) = 0 IF (DO_JVS(1836)) & -! JVS(1836) = Jac_FULL(226,241) +! JVS(1836) = Jac_FULL(228,247) JVS(1836) = 0 IF (DO_JVS(1837)) & -! JVS(1837) = Jac_FULL(226,242) - JVS(1837) = B(779)+0.5*B(781)+0.5*B(785)+0.55*B(797) +! JVS(1837) = Jac_FULL(228,266) + JVS(1837) = 0 IF (DO_JVS(1838)) & -! JVS(1838) = Jac_FULL(226,243) - JVS(1838) = 0.5*B(782) +! JVS(1838) = Jac_FULL(228,279) + JVS(1838) = -B(824)-B(826) IF (DO_JVS(1839)) & -! JVS(1839) = Jac_FULL(226,244) - JVS(1839) = 0 +! JVS(1839) = Jac_FULL(228,284) + JVS(1839) = -B(822) IF (DO_JVS(1840)) & -! JVS(1840) = Jac_FULL(226,263) - JVS(1840) = 0.5*B(786) +! JVS(1840) = Jac_FULL(228,286) + JVS(1840) = 0.294*B(767)+0.67*B(814)+0.81*B(818)+0.08*B(1066) IF (DO_JVS(1841)) & -! JVS(1841) = Jac_FULL(226,269) - JVS(1841) = 0.33*B(808)+0.19*B(812)+0.125*B(816)+0.125*B(830)-B(1045)+0.429*B(1119)+0.75*B(1121) +! JVS(1841) = Jac_FULL(229,125) + JVS(1841) = 0.032*B(1065) IF (DO_JVS(1842)) & -! JVS(1842) = Jac_FULL(226,270) - JVS(1842) = 0 +! JVS(1842) = Jac_FULL(229,130) + JVS(1842) = 0.33*B(813) IF (DO_JVS(1843)) & -! JVS(1843) = Jac_FULL(226,277) - JVS(1843) = 0 +! JVS(1843) = Jac_FULL(229,131) + JVS(1843) = 0.19*B(817) IF (DO_JVS(1844)) & -! JVS(1844) = Jac_FULL(226,280) - JVS(1844) = 0.55*B(798)+0.706*B(846)+0.059*B(1009) +! JVS(1844) = Jac_FULL(229,139) + JVS(1844) = 0 IF (DO_JVS(1845)) & -! JVS(1845) = Jac_FULL(226,281) - JVS(1845) = 0.14*B(850)+0.054*B(1005)+0.335*B(1077) +! JVS(1845) = Jac_FULL(229,140) + JVS(1845) = 0 IF (DO_JVS(1846)) & -! JVS(1846) = Jac_FULL(226,285) +! JVS(1846) = Jac_FULL(229,157) JVS(1846) = 0 IF (DO_JVS(1847)) & -! JVS(1847) = Jac_FULL(226,287) +! JVS(1847) = Jac_FULL(229,162) JVS(1847) = 0 IF (DO_JVS(1848)) & -! JVS(1848) = Jac_FULL(227,124) - JVS(1848) = 0.09*B(813) +! JVS(1848) = Jac_FULL(229,192) + JVS(1848) = 0.068*B(766) IF (DO_JVS(1849)) & -! JVS(1849) = Jac_FULL(227,158) - JVS(1849) = 0.165*B(831) +! JVS(1849) = Jac_FULL(229,214) + JVS(1849) = 0 IF (DO_JVS(1850)) & -! JVS(1850) = Jac_FULL(227,159) - JVS(1850) = 0.571*B(1118) +! JVS(1850) = Jac_FULL(229,220) + JVS(1850) = 0 IF (DO_JVS(1851)) & -! JVS(1851) = Jac_FULL(227,161) +! JVS(1851) = Jac_FULL(229,228) JVS(1851) = 0 IF (DO_JVS(1852)) & -! JVS(1852) = Jac_FULL(227,179) - JVS(1852) = 0.716*B(838)+0.14*B(842) +! JVS(1852) = Jac_FULL(229,229) + JVS(1852) = -B(827)-B(828)-B(829)-B(831)-B(833) IF (DO_JVS(1853)) & -! JVS(1853) = Jac_FULL(227,180) +! JVS(1853) = Jac_FULL(229,244) JVS(1853) = 0 IF (DO_JVS(1854)) & -! JVS(1854) = Jac_FULL(227,183) +! JVS(1854) = Jac_FULL(229,245) JVS(1854) = 0 IF (DO_JVS(1855)) & -! JVS(1855) = Jac_FULL(227,184) - JVS(1855) = 0.17*B(809) +! JVS(1855) = Jac_FULL(229,246) + JVS(1855) = 0 IF (DO_JVS(1856)) & -! JVS(1856) = Jac_FULL(227,189) - JVS(1856) = 0.158*B(815) +! JVS(1856) = Jac_FULL(229,247) + JVS(1856) = 0 IF (DO_JVS(1857)) & -! JVS(1857) = Jac_FULL(227,201) - JVS(1857) = 0.41*B(1082) +! JVS(1857) = Jac_FULL(229,266) + JVS(1857) = 0 IF (DO_JVS(1858)) & -! JVS(1858) = Jac_FULL(227,202) - JVS(1858) = 0.5*B(1112)+0.5*B(1543) +! JVS(1858) = Jac_FULL(229,279) + JVS(1858) = -B(830)-B(832) IF (DO_JVS(1859)) & -! JVS(1859) = Jac_FULL(227,209) - JVS(1859) = 0.25*B(1120)+0.5*B(1551) +! JVS(1859) = Jac_FULL(229,284) + JVS(1859) = -B(834) IF (DO_JVS(1860)) & -! JVS(1860) = Jac_FULL(227,210) - JVS(1860) = 0.55*B(1537) +! JVS(1860) = Jac_FULL(229,286) + JVS(1860) = 0.068*B(767)+0.33*B(814)+0.19*B(818)+0.032*B(1066) IF (DO_JVS(1861)) & -! JVS(1861) = Jac_FULL(227,216) - JVS(1861) = 0 +! JVS(1861) = Jac_FULL(230,129) + JVS(1861) = 0.19*B(762) IF (DO_JVS(1862)) & -! JVS(1862) = Jac_FULL(227,217) - JVS(1862) = 0.004*B(1004)+0.006*B(1008) +! JVS(1862) = Jac_FULL(230,157) + JVS(1862) = 0.125*B(780) IF (DO_JVS(1863)) & -! JVS(1863) = Jac_FULL(227,220) - JVS(1863) = 0 +! JVS(1863) = Jac_FULL(230,164) + JVS(1863) = 0.429*B(1069) IF (DO_JVS(1864)) & -! JVS(1864) = Jac_FULL(227,224) +! JVS(1864) = Jac_FULL(230,171) JVS(1864) = 0 IF (DO_JVS(1865)) & -! JVS(1865) = Jac_FULL(227,225) +! JVS(1865) = Jac_FULL(230,182) JVS(1865) = 0 IF (DO_JVS(1866)) & -! JVS(1866) = Jac_FULL(227,227) - JVS(1866) = -B(1046)-B(1521) +! JVS(1866) = Jac_FULL(230,183) + JVS(1866) = 0.706*B(796)+0.14*B(800) IF (DO_JVS(1867)) & -! JVS(1867) = Jac_FULL(227,236) - JVS(1867) = 0 +! JVS(1867) = Jac_FULL(230,186) + JVS(1867) = 0.33*B(758) IF (DO_JVS(1868)) & -! JVS(1868) = Jac_FULL(227,238) - JVS(1868) = 0.15*B(1549) +! JVS(1868) = Jac_FULL(230,187) + JVS(1868) = 0 IF (DO_JVS(1869)) & -! JVS(1869) = Jac_FULL(227,240) - JVS(1869) = 0 +! JVS(1869) = Jac_FULL(230,192) + JVS(1869) = 0.125*B(766) IF (DO_JVS(1870)) & -! JVS(1870) = Jac_FULL(227,241) - JVS(1870) = 0 +! JVS(1870) = Jac_FULL(230,204) + JVS(1870) = 0.335*B(1027) IF (DO_JVS(1871)) & -! JVS(1871) = Jac_FULL(227,242) - JVS(1871) = 0.5*B(781) +! JVS(1871) = Jac_FULL(230,213) + JVS(1871) = 0.75*B(1071)+0.5*B(1510) IF (DO_JVS(1872)) & -! JVS(1872) = Jac_FULL(227,243) - JVS(1872) = B(780)+0.5*B(782)+0.5*B(789)+0.55*B(805) +! JVS(1872) = Jac_FULL(230,214) + JVS(1872) = 0 IF (DO_JVS(1873)) & -! JVS(1873) = Jac_FULL(227,247) - JVS(1873) = 0 +! JVS(1873) = Jac_FULL(230,220) + JVS(1873) = 0.55*B(1493) IF (DO_JVS(1874)) & -! JVS(1874) = Jac_FULL(227,263) - JVS(1874) = 0.5*B(790) +! JVS(1874) = Jac_FULL(230,222) + JVS(1874) = 0.054*B(955)+0.059*B(959) IF (DO_JVS(1875)) & -! JVS(1875) = Jac_FULL(227,269) - JVS(1875) = 0.17*B(810)+0.09*B(814)+0.158*B(816)+0.165*B(832)-B(1047)+0.5*B(1113)+0.571*B(1119)+0.25*B(1121) +! JVS(1875) = Jac_FULL(230,224) + JVS(1875) = 0 IF (DO_JVS(1876)) & -! JVS(1876) = Jac_FULL(227,270) +! JVS(1876) = Jac_FULL(230,228) JVS(1876) = 0 IF (DO_JVS(1877)) & -! JVS(1877) = Jac_FULL(227,277) +! JVS(1877) = Jac_FULL(230,229) JVS(1877) = 0 IF (DO_JVS(1878)) & -! JVS(1878) = Jac_FULL(227,280) - JVS(1878) = 0.55*B(806)+0.716*B(839)+0.006*B(1009) +! JVS(1878) = Jac_FULL(230,230) + JVS(1878) = -B(995)-B(1477) IF (DO_JVS(1879)) & -! JVS(1879) = Jac_FULL(227,281) - JVS(1879) = 0.14*B(843)+0.004*B(1005)+0.41*B(1083) +! JVS(1879) = Jac_FULL(230,240) + JVS(1879) = 0 IF (DO_JVS(1880)) & -! JVS(1880) = Jac_FULL(227,285) +! JVS(1880) = Jac_FULL(230,242) JVS(1880) = 0 IF (DO_JVS(1881)) & -! JVS(1881) = Jac_FULL(227,287) - JVS(1881) = 0 +! JVS(1881) = Jac_FULL(230,244) + JVS(1881) = 0.5*B(732) IF (DO_JVS(1882)) & -! JVS(1882) = Jac_FULL(228,76) - JVS(1882) = 0.12*B(1167) +! JVS(1882) = Jac_FULL(230,245) + JVS(1882) = B(730)+0.5*B(733)+0.5*B(736)+0.55*B(748) IF (DO_JVS(1883)) & -! JVS(1883) = Jac_FULL(228,77) - JVS(1883) = 0.2*B(1169) +! JVS(1883) = Jac_FULL(230,246) + JVS(1883) = 0 IF (DO_JVS(1884)) & -! JVS(1884) = Jac_FULL(228,84) - JVS(1884) = 0.7*B(1110) +! JVS(1884) = Jac_FULL(230,247) + JVS(1884) = 0 IF (DO_JVS(1885)) & -! JVS(1885) = Jac_FULL(228,133) +! JVS(1885) = Jac_FULL(230,248) JVS(1885) = 0 IF (DO_JVS(1886)) & -! JVS(1886) = Jac_FULL(228,145) - JVS(1886) = 0.6*B(1237)+0.6*B(1239)+0.2*B(1241) +! JVS(1886) = Jac_FULL(230,266) + JVS(1886) = 0.5*B(737) IF (DO_JVS(1887)) & -! JVS(1887) = Jac_FULL(228,149) - JVS(1887) = 0 +! JVS(1887) = Jac_FULL(230,279) + JVS(1887) = 0.55*B(749)+0.706*B(797)+0.059*B(960) IF (DO_JVS(1888)) & -! JVS(1888) = Jac_FULL(228,152) - JVS(1888) = B(1066)+0.571*B(1519) +! JVS(1888) = Jac_FULL(230,281) + JVS(1888) = 0 IF (DO_JVS(1889)) & -! JVS(1889) = Jac_FULL(228,159) - JVS(1889) = 0.429*B(1546) +! JVS(1889) = Jac_FULL(230,282) + JVS(1889) = 0 IF (DO_JVS(1890)) & -! JVS(1890) = Jac_FULL(228,160) - JVS(1890) = 0.187*B(1064)+0.125*B(1520) +! JVS(1890) = Jac_FULL(230,284) + JVS(1890) = 0.14*B(801)+0.054*B(956)+0.335*B(1028) IF (DO_JVS(1891)) & -! JVS(1891) = Jac_FULL(228,161) - JVS(1891) = 0.018*B(835) +! JVS(1891) = Jac_FULL(230,286) + JVS(1891) = 0.33*B(759)+0.19*B(763)+0.125*B(767)+0.125*B(781)-B(996)+0.429*B(1070)+0.75*B(1072) IF (DO_JVS(1892)) & -! JVS(1892) = Jac_FULL(228,167) - JVS(1892) = 0.018*B(833) +! JVS(1892) = Jac_FULL(230,290) + JVS(1892) = 0 IF (DO_JVS(1893)) & -! JVS(1893) = Jac_FULL(228,170) - JVS(1893) = 0.5*B(817) +! JVS(1893) = Jac_FULL(230,291) + JVS(1893) = 0 IF (DO_JVS(1894)) & -! JVS(1894) = Jac_FULL(228,179) - JVS(1894) = 0 +! JVS(1894) = Jac_FULL(231,127) + JVS(1894) = 0.09*B(764) IF (DO_JVS(1895)) & -! JVS(1895) = Jac_FULL(228,180) - JVS(1895) = 0 +! JVS(1895) = Jac_FULL(231,162) + JVS(1895) = 0.165*B(782) IF (DO_JVS(1896)) & -! JVS(1896) = Jac_FULL(228,181) - JVS(1896) = B(1070)+0.5*B(1517) +! JVS(1896) = Jac_FULL(231,164) + JVS(1896) = 0.571*B(1069) IF (DO_JVS(1897)) & -! JVS(1897) = Jac_FULL(228,182) - JVS(1897) = 0.085*B(807) +! JVS(1897) = Jac_FULL(231,165) + JVS(1897) = 0 IF (DO_JVS(1898)) & -! JVS(1898) = Jac_FULL(228,183) - JVS(1898) = 0 +! JVS(1898) = Jac_FULL(231,182) + JVS(1898) = 0.716*B(789)+0.14*B(793) IF (DO_JVS(1899)) & -! JVS(1899) = Jac_FULL(228,184) - JVS(1899) = 0.165*B(809) +! JVS(1899) = Jac_FULL(231,183) + JVS(1899) = 0 IF (DO_JVS(1900)) & -! JVS(1900) = Jac_FULL(228,189) - JVS(1900) = 0.355*B(815) +! JVS(1900) = Jac_FULL(231,187) + JVS(1900) = 0 IF (DO_JVS(1901)) & -! JVS(1901) = Jac_FULL(228,193) - JVS(1901) = B(64) +! JVS(1901) = Jac_FULL(231,188) + JVS(1901) = 0.17*B(760) IF (DO_JVS(1902)) & -! JVS(1902) = Jac_FULL(228,194) - JVS(1902) = B(639) +! JVS(1902) = Jac_FULL(231,192) + JVS(1902) = 0.158*B(766) IF (DO_JVS(1903)) & -! JVS(1903) = Jac_FULL(228,197) - JVS(1903) = 0 +! JVS(1903) = Jac_FULL(231,205) + JVS(1903) = 0.41*B(1033) IF (DO_JVS(1904)) & -! JVS(1904) = Jac_FULL(228,200) - JVS(1904) = 0.05*B(1076)+0.242*B(1078) +! JVS(1904) = Jac_FULL(231,206) + JVS(1904) = 0.5*B(1063)+0.5*B(1502) IF (DO_JVS(1905)) & -! JVS(1905) = Jac_FULL(228,201) - JVS(1905) = 0.083*B(1082)+0.14*B(1089) +! JVS(1905) = Jac_FULL(231,213) + JVS(1905) = 0.25*B(1071)+0.5*B(1510) IF (DO_JVS(1906)) & -! JVS(1906) = Jac_FULL(228,202) - JVS(1906) = 0.088*B(1544) +! JVS(1906) = Jac_FULL(231,214) + JVS(1906) = 0.55*B(1496) IF (DO_JVS(1907)) & -! JVS(1907) = Jac_FULL(228,203) +! JVS(1907) = Jac_FULL(231,220) JVS(1907) = 0 IF (DO_JVS(1908)) & -! JVS(1908) = Jac_FULL(228,209) - JVS(1908) = B(1550) +! JVS(1908) = Jac_FULL(231,222) + JVS(1908) = 0.004*B(955)+0.006*B(959) IF (DO_JVS(1909)) & -! JVS(1909) = Jac_FULL(228,210) +! JVS(1909) = Jac_FULL(231,224) JVS(1909) = 0 IF (DO_JVS(1910)) & -! JVS(1910) = Jac_FULL(228,216) +! JVS(1910) = Jac_FULL(231,228) JVS(1910) = 0 IF (DO_JVS(1911)) & -! JVS(1911) = Jac_FULL(228,217) +! JVS(1911) = Jac_FULL(231,229) JVS(1911) = 0 IF (DO_JVS(1912)) & -! JVS(1912) = Jac_FULL(228,220) - JVS(1912) = 0.3*B(759)+0.3*B(761) +! JVS(1912) = Jac_FULL(231,231) + JVS(1912) = -B(997)-B(1480) IF (DO_JVS(1913)) & -! JVS(1913) = Jac_FULL(228,224) - JVS(1913) = 0.52*B(870)+0.8*B(872) +! JVS(1913) = Jac_FULL(231,240) + JVS(1913) = 0 IF (DO_JVS(1914)) & -! JVS(1914) = Jac_FULL(228,225) - JVS(1914) = 0 +! JVS(1914) = Jac_FULL(231,242) + JVS(1914) = 0.15*B(1508) IF (DO_JVS(1915)) & -! JVS(1915) = Jac_FULL(228,226) - JVS(1915) = 0.47*B(1518) +! JVS(1915) = Jac_FULL(231,244) + JVS(1915) = B(731)+0.5*B(732)+0.5*B(740)+0.55*B(756) IF (DO_JVS(1916)) & -! JVS(1916) = Jac_FULL(228,227) - JVS(1916) = 0.23*B(1521) +! JVS(1916) = Jac_FULL(231,245) + JVS(1916) = 0.5*B(733) IF (DO_JVS(1917)) & -! JVS(1917) = Jac_FULL(228,228) - JVS(1917) = -B(226)-B(230)-B(1375)-B(1426) +! JVS(1917) = Jac_FULL(231,246) + JVS(1917) = 0 IF (DO_JVS(1918)) & -! JVS(1918) = Jac_FULL(228,229) +! JVS(1918) = Jac_FULL(231,247) JVS(1918) = 0 IF (DO_JVS(1919)) & -! JVS(1919) = Jac_FULL(228,236) +! JVS(1919) = Jac_FULL(231,251) JVS(1919) = 0 IF (DO_JVS(1920)) & -! JVS(1920) = Jac_FULL(228,237) - JVS(1920) = 0.449*B(1042) +! JVS(1920) = Jac_FULL(231,266) + JVS(1920) = 0.5*B(741) IF (DO_JVS(1921)) & -! JVS(1921) = Jac_FULL(228,238) - JVS(1921) = 0 +! JVS(1921) = Jac_FULL(231,279) + JVS(1921) = 0.55*B(757)+0.716*B(790)+0.006*B(960) IF (DO_JVS(1922)) & -! JVS(1922) = Jac_FULL(228,239) +! JVS(1922) = Jac_FULL(231,281) JVS(1922) = 0 IF (DO_JVS(1923)) & -! JVS(1923) = Jac_FULL(228,240) +! JVS(1923) = Jac_FULL(231,282) JVS(1923) = 0 IF (DO_JVS(1924)) & -! JVS(1924) = Jac_FULL(228,241) - JVS(1924) = 0 +! JVS(1924) = Jac_FULL(231,284) + JVS(1924) = 0.14*B(794)+0.004*B(956)+0.41*B(1034) IF (DO_JVS(1925)) & -! JVS(1925) = Jac_FULL(228,242) - JVS(1925) = 0.3*B(772) +! JVS(1925) = Jac_FULL(231,286) + JVS(1925) = 0.17*B(761)+0.09*B(765)+0.158*B(767)+0.165*B(783)-B(998)+0.5*B(1064)+0.571*B(1070)+0.25*B(1072) IF (DO_JVS(1926)) & -! JVS(1926) = Jac_FULL(228,243) - JVS(1926) = 0.3*B(774) +! JVS(1926) = Jac_FULL(231,290) + JVS(1926) = 0 IF (DO_JVS(1927)) & -! JVS(1927) = Jac_FULL(228,244) - JVS(1927) = 0.545*B(1032) +! JVS(1927) = Jac_FULL(231,291) + JVS(1927) = 0 IF (DO_JVS(1928)) & -! JVS(1928) = Jac_FULL(228,245) - JVS(1928) = 0 +! JVS(1928) = Jac_FULL(232,126) + JVS(1928) = B(936) IF (DO_JVS(1929)) & -! JVS(1929) = Jac_FULL(228,246) - JVS(1929) = B(232) +! JVS(1929) = Jac_FULL(232,151) + JVS(1929) = 0 IF (DO_JVS(1930)) & -! JVS(1930) = Jac_FULL(228,247) - JVS(1930) = 0.88*B(1038) +! JVS(1930) = Jac_FULL(232,181) + JVS(1930) = 0.33*B(937) IF (DO_JVS(1931)) & -! JVS(1931) = Jac_FULL(228,248) - JVS(1931) = 0.5*B(188)+B(287) +! JVS(1931) = Jac_FULL(232,232) + JVS(1931) = -B(898)-B(900)-B(902) IF (DO_JVS(1932)) & -! JVS(1932) = Jac_FULL(228,249) - JVS(1932) = 0 +! JVS(1932) = Jac_FULL(232,242) + JVS(1932) = 0.037*B(1073) IF (DO_JVS(1933)) & -! JVS(1933) = Jac_FULL(228,254) +! JVS(1933) = Jac_FULL(232,243) JVS(1933) = 0 IF (DO_JVS(1934)) & -! JVS(1934) = Jac_FULL(228,257) - JVS(1934) = B(288) +! JVS(1934) = Jac_FULL(232,246) + JVS(1934) = 0 IF (DO_JVS(1935)) & -! JVS(1935) = Jac_FULL(228,263) - JVS(1935) = 0.5*B(189) +! JVS(1935) = Jac_FULL(232,247) + JVS(1935) = 0 IF (DO_JVS(1936)) & -! JVS(1936) = Jac_FULL(228,269) - JVS(1936) = B(65)-B(227)+B(233)+B(640)+0.3*B(760)+0.3*B(762)+0.085*B(808)+0.165*B(810)+0.355*B(816)+0.5*B(818)+0.018& - &*B(834)+0.018*B(836)+0.449*B(1043)+0.187*B(1065)+B(1067)+B(1071)+0.7*B(1111)+0.12*B(1168)+0.2*B(1170)+0.6& - &*B(1238) +! JVS(1936) = Jac_FULL(232,261) + JVS(1936) = 0 IF (DO_JVS(1937)) & -! JVS(1937) = Jac_FULL(228,270) +! JVS(1937) = Jac_FULL(232,266) JVS(1937) = 0 IF (DO_JVS(1938)) & -! JVS(1938) = Jac_FULL(228,277) - JVS(1938) = 0.545*B(1033)+0.88*B(1039)+0.6*B(1240) +! JVS(1938) = Jac_FULL(232,279) + JVS(1938) = -B(901)-B(903) IF (DO_JVS(1939)) & -! JVS(1939) = Jac_FULL(228,280) - JVS(1939) = 0.8*B(873)+0.242*B(1079)+0.14*B(1090) +! JVS(1939) = Jac_FULL(232,281) + JVS(1939) = 0 IF (DO_JVS(1940)) & -! JVS(1940) = Jac_FULL(228,281) - JVS(1940) = 0.52*B(871)+0.05*B(1077)+0.083*B(1083) +! JVS(1940) = Jac_FULL(232,284) + JVS(1940) = -B(899) IF (DO_JVS(1941)) & -! JVS(1941) = Jac_FULL(228,285) - JVS(1941) = 0 +! JVS(1941) = Jac_FULL(232,286) + JVS(1941) = 0.33*B(938)+0.037*B(1074) IF (DO_JVS(1942)) & -! JVS(1942) = Jac_FULL(228,287) - JVS(1942) = -B(231) +! JVS(1942) = Jac_FULL(233,79) + JVS(1942) = 0.12*B(1118) IF (DO_JVS(1943)) & -! JVS(1943) = Jac_FULL(229,123) - JVS(1943) = B(985) +! JVS(1943) = Jac_FULL(233,80) + JVS(1943) = 0.2*B(1120) IF (DO_JVS(1944)) & -! JVS(1944) = Jac_FULL(229,147) - JVS(1944) = 0 +! JVS(1944) = Jac_FULL(233,105) + JVS(1944) = 0.7*B(1061) IF (DO_JVS(1945)) & -! JVS(1945) = Jac_FULL(229,177) - JVS(1945) = 0.33*B(986) +! JVS(1945) = Jac_FULL(233,136) + JVS(1945) = 0 IF (DO_JVS(1946)) & -! JVS(1946) = Jac_FULL(229,229) - JVS(1946) = -B(947)-B(949)-B(951) +! JVS(1946) = Jac_FULL(233,148) + JVS(1946) = 0.6*B(1188)+0.6*B(1190)+0.2*B(1192) IF (DO_JVS(1947)) & -! JVS(1947) = Jac_FULL(229,238) - JVS(1947) = 0.037*B(1122) +! JVS(1947) = Jac_FULL(233,153) + JVS(1947) = 0 IF (DO_JVS(1948)) & -! JVS(1948) = Jac_FULL(229,239) - JVS(1948) = 0 +! JVS(1948) = Jac_FULL(233,156) + JVS(1948) = B(1017)+0.571*B(1478) IF (DO_JVS(1949)) & -! JVS(1949) = Jac_FULL(229,240) - JVS(1949) = 0 +! JVS(1949) = Jac_FULL(233,163) + JVS(1949) = 0.187*B(1015)+0.125*B(1479) IF (DO_JVS(1950)) & -! JVS(1950) = Jac_FULL(229,241) - JVS(1950) = 0 +! JVS(1950) = Jac_FULL(233,164) + JVS(1950) = 0.429*B(1505) IF (DO_JVS(1951)) & -! JVS(1951) = Jac_FULL(229,257) - JVS(1951) = 0 +! JVS(1951) = Jac_FULL(233,165) + JVS(1951) = 0.018*B(786) IF (DO_JVS(1952)) & -! JVS(1952) = Jac_FULL(229,263) - JVS(1952) = 0 +! JVS(1952) = Jac_FULL(233,171) + JVS(1952) = 0.018*B(784) IF (DO_JVS(1953)) & -! JVS(1953) = Jac_FULL(229,269) - JVS(1953) = 0.33*B(987)+0.037*B(1123) +! JVS(1953) = Jac_FULL(233,174) + JVS(1953) = 0.5*B(768) IF (DO_JVS(1954)) & -! JVS(1954) = Jac_FULL(229,280) - JVS(1954) = -B(950)-B(952) +! JVS(1954) = Jac_FULL(233,182) + JVS(1954) = 0 IF (DO_JVS(1955)) & -! JVS(1955) = Jac_FULL(229,281) - JVS(1955) = -B(948) +! JVS(1955) = Jac_FULL(233,183) + JVS(1955) = 0 IF (DO_JVS(1956)) & -! JVS(1956) = Jac_FULL(229,287) - JVS(1956) = 0 +! JVS(1956) = Jac_FULL(233,185) + JVS(1956) = B(1021)+0.5*B(1476) IF (DO_JVS(1957)) & -! JVS(1957) = Jac_FULL(230,75) - JVS(1957) = B(1142) +! JVS(1957) = Jac_FULL(233,186) + JVS(1957) = 0.085*B(758) IF (DO_JVS(1958)) & -! JVS(1958) = Jac_FULL(230,220) - JVS(1958) = 0.58*B(753) +! JVS(1958) = Jac_FULL(233,187) + JVS(1958) = 0 IF (DO_JVS(1959)) & -! JVS(1959) = Jac_FULL(230,230) - JVS(1959) = -B(641)-B(643)-B(645)-B(647)-B(649)-B(651)-B(653) +! JVS(1959) = Jac_FULL(233,188) + JVS(1959) = 0.165*B(760) IF (DO_JVS(1960)) & -! JVS(1960) = Jac_FULL(230,244) - JVS(1960) = 0.5*B(1032) +! JVS(1960) = Jac_FULL(233,192) + JVS(1960) = 0.355*B(766) IF (DO_JVS(1961)) & -! JVS(1961) = Jac_FULL(230,247) - JVS(1961) = 0.88*B(1038) +! JVS(1961) = Jac_FULL(233,196) + JVS(1961) = 0.3*B(61) IF (DO_JVS(1962)) & -! JVS(1962) = Jac_FULL(230,254) - JVS(1962) = 0.12*B(216) +! JVS(1962) = Jac_FULL(233,198) + JVS(1962) = B(590) IF (DO_JVS(1963)) & -! JVS(1963) = Jac_FULL(230,258) - JVS(1963) = -B(642) +! JVS(1963) = Jac_FULL(233,201) + JVS(1963) = 0 IF (DO_JVS(1964)) & -! JVS(1964) = Jac_FULL(230,269) - JVS(1964) = 0 +! JVS(1964) = Jac_FULL(233,204) + JVS(1964) = 0.05*B(1027)+0.242*B(1029) IF (DO_JVS(1965)) & -! JVS(1965) = Jac_FULL(230,270) - JVS(1965) = -B(646) +! JVS(1965) = Jac_FULL(233,205) + JVS(1965) = 0.083*B(1033)+0.14*B(1040) IF (DO_JVS(1966)) & -! JVS(1966) = Jac_FULL(230,277) - JVS(1966) = 0.12*B(217)-B(652)+0.58*B(754)+0.5*B(1033)+0.88*B(1039)+B(1143) +! JVS(1966) = Jac_FULL(233,206) + JVS(1966) = 0.118*B(1503) IF (DO_JVS(1967)) & -! JVS(1967) = Jac_FULL(230,279) - JVS(1967) = -B(648)-B(650) +! JVS(1967) = Jac_FULL(233,207) + JVS(1967) = 0 IF (DO_JVS(1968)) & -! JVS(1968) = Jac_FULL(230,280) - JVS(1968) = -B(644) +! JVS(1968) = Jac_FULL(233,213) + JVS(1968) = B(1509) IF (DO_JVS(1969)) & -! JVS(1969) = Jac_FULL(230,285) +! JVS(1969) = Jac_FULL(233,214) JVS(1969) = 0 IF (DO_JVS(1970)) & -! JVS(1970) = Jac_FULL(230,286) - JVS(1970) = -B(654) +! JVS(1970) = Jac_FULL(233,220) + JVS(1970) = 0 IF (DO_JVS(1971)) & -! JVS(1971) = Jac_FULL(230,287) +! JVS(1971) = Jac_FULL(233,222) JVS(1971) = 0 IF (DO_JVS(1972)) & -! JVS(1972) = Jac_FULL(231,169) - JVS(1972) = B(1263)+B(1266)+B(1268) +! JVS(1972) = Jac_FULL(233,224) + JVS(1972) = 0.3*B(710)+0.3*B(712) IF (DO_JVS(1973)) & -! JVS(1973) = Jac_FULL(231,231) - JVS(1973) = -B(483)-B(1292)-B(1294)-B(1296)-B(1298)-B(1300)-B(1302)-B(1457) +! JVS(1973) = Jac_FULL(233,228) + JVS(1973) = 0.52*B(821)+0.8*B(823) IF (DO_JVS(1974)) & -! JVS(1974) = Jac_FULL(231,269) - JVS(1974) = -B(484) +! JVS(1974) = Jac_FULL(233,229) + JVS(1974) = 0 IF (DO_JVS(1975)) & -! JVS(1975) = Jac_FULL(231,270) - JVS(1975) = 0 +! JVS(1975) = Jac_FULL(233,230) + JVS(1975) = 0.47*B(1477) IF (DO_JVS(1976)) & -! JVS(1976) = Jac_FULL(231,271) - JVS(1976) = B(1264)-B(1297) +! JVS(1976) = Jac_FULL(233,231) + JVS(1976) = 0.23*B(1480) IF (DO_JVS(1977)) & -! JVS(1977) = Jac_FULL(231,272) - JVS(1977) = -B(1303) +! JVS(1977) = Jac_FULL(233,232) + JVS(1977) = 0 IF (DO_JVS(1978)) & -! JVS(1978) = Jac_FULL(231,275) - JVS(1978) = -B(1299) +! JVS(1978) = Jac_FULL(233,233) + JVS(1978) = -B(221)-B(225)-B(1334)-B(1385) IF (DO_JVS(1979)) & -! JVS(1979) = Jac_FULL(231,276) - JVS(1979) = -B(1301) +! JVS(1979) = Jac_FULL(233,240) + JVS(1979) = 0 IF (DO_JVS(1980)) & -! JVS(1980) = Jac_FULL(231,278) - JVS(1980) = B(1267)-B(1293) +! JVS(1980) = Jac_FULL(233,241) + JVS(1980) = 0.449*B(993) IF (DO_JVS(1981)) & -! JVS(1981) = Jac_FULL(231,279) +! JVS(1981) = Jac_FULL(233,242) JVS(1981) = 0 IF (DO_JVS(1982)) & -! JVS(1982) = Jac_FULL(231,283) - JVS(1982) = B(1269)-B(1295) +! JVS(1982) = Jac_FULL(233,243) + JVS(1982) = 0 IF (DO_JVS(1983)) & -! JVS(1983) = Jac_FULL(231,287) - JVS(1983) = 0 +! JVS(1983) = Jac_FULL(233,244) + JVS(1983) = 0.3*B(725) IF (DO_JVS(1984)) & -! JVS(1984) = Jac_FULL(232,64) - JVS(1984) = B(1159) +! JVS(1984) = Jac_FULL(233,245) + JVS(1984) = 0.3*B(723) IF (DO_JVS(1985)) & -! JVS(1985) = Jac_FULL(232,102) - JVS(1985) = B(1157) +! JVS(1985) = Jac_FULL(233,246) + JVS(1985) = 0 IF (DO_JVS(1986)) & -! JVS(1986) = Jac_FULL(232,113) - JVS(1986) = B(1163) +! JVS(1986) = Jac_FULL(233,247) + JVS(1986) = 0 IF (DO_JVS(1987)) & -! JVS(1987) = Jac_FULL(232,138) - JVS(1987) = B(1191) +! JVS(1987) = Jac_FULL(233,248) + JVS(1987) = 0.545*B(983) IF (DO_JVS(1988)) & -! JVS(1988) = Jac_FULL(232,139) - JVS(1988) = 0.25*B(1545) +! JVS(1988) = Jac_FULL(233,249) + JVS(1988) = 0 IF (DO_JVS(1989)) & -! JVS(1989) = Jac_FULL(232,143) - JVS(1989) = 0.11*B(1026)+0.09*B(1028) +! JVS(1989) = Jac_FULL(233,250) + JVS(1989) = B(227) IF (DO_JVS(1990)) & -! JVS(1990) = Jac_FULL(232,145) - JVS(1990) = 0.95*B(1239) +! JVS(1990) = Jac_FULL(233,251) + JVS(1990) = 0.88*B(989) IF (DO_JVS(1991)) & -! JVS(1991) = Jac_FULL(232,155) - JVS(1991) = 0.9*B(1234) +! JVS(1991) = Jac_FULL(233,252) + JVS(1991) = 0.5*B(185)+0.1*B(256) IF (DO_JVS(1992)) & -! JVS(1992) = Jac_FULL(232,159) - JVS(1992) = 0.429*B(1546) +! JVS(1992) = Jac_FULL(233,253) + JVS(1992) = 0 IF (DO_JVS(1993)) & -! JVS(1993) = Jac_FULL(232,162) - JVS(1993) = 0.459*B(920)+0.728*B(922) +! JVS(1993) = Jac_FULL(233,254) + JVS(1993) = 0 IF (DO_JVS(1994)) & -! JVS(1994) = Jac_FULL(232,164) - JVS(1994) = 0.551*B(935)+0.935*B(937) +! JVS(1994) = Jac_FULL(233,261) + JVS(1994) = 0.1*B(257) IF (DO_JVS(1995)) & -! JVS(1995) = Jac_FULL(232,175) - JVS(1995) = 0.2*B(1154) +! JVS(1995) = Jac_FULL(233,266) + JVS(1995) = 0.5*B(186) IF (DO_JVS(1996)) & -! JVS(1996) = Jac_FULL(232,179) - JVS(1996) = 0 +! JVS(1996) = Jac_FULL(233,279) + JVS(1996) = 0.8*B(824)+0.242*B(1030)+0.14*B(1041) IF (DO_JVS(1997)) & -! JVS(1997) = Jac_FULL(232,180) - JVS(1997) = 0.294*B(845)+0.135*B(849) +! JVS(1997) = Jac_FULL(233,281) + JVS(1997) = -B(226) IF (DO_JVS(1998)) & -! JVS(1998) = Jac_FULL(232,183) - JVS(1998) = B(852)+0.65*B(856) +! JVS(1998) = Jac_FULL(233,282) + JVS(1998) = 0.545*B(984)+0.88*B(990)+0.6*B(1191) IF (DO_JVS(1999)) & -! JVS(1999) = Jac_FULL(232,200) - JVS(1999) = 0.36*B(1076)+0.758*B(1078) +! JVS(1999) = Jac_FULL(233,284) + JVS(1999) = 0.52*B(822)+0.05*B(1028)+0.083*B(1034) IF (DO_JVS(2000)) & -! JVS(2000) = Jac_FULL(232,202) - JVS(2000) = 0.088*B(1544) +! JVS(2000) = Jac_FULL(233,286) + JVS(2000) = 0.3*B(62)-B(222)+B(228)+B(591)+0.3*B(711)+0.3*B(713)+0.085*B(759)+0.165*B(761)+0.355*B(767)+0.5*B(769)& + &+0.018*B(785)+0.018*B(787)+0.449*B(994)+0.187*B(1016)+B(1018)+B(1022)+0.7*B(1062)+0.12*B(1119)+0.2*B(1121)& + &+0.6*B(1189) IF (DO_JVS(2001)) & -! JVS(2001) = Jac_FULL(232,206) +! JVS(2001) = Jac_FULL(233,290) JVS(2001) = 0 IF (DO_JVS(2002)) & -! JVS(2002) = Jac_FULL(232,209) - JVS(2002) = B(1550) +! JVS(2002) = Jac_FULL(233,291) + JVS(2002) = 0 IF (DO_JVS(2003)) & -! JVS(2003) = Jac_FULL(232,210) - JVS(2003) = 0 +! JVS(2003) = Jac_FULL(234,76) + JVS(2003) = B(1093) IF (DO_JVS(2004)) & -! JVS(2004) = Jac_FULL(232,216) - JVS(2004) = 0 +! JVS(2004) = Jac_FULL(234,224) + JVS(2004) = 0.58*B(704) IF (DO_JVS(2005)) & -! JVS(2005) = Jac_FULL(232,217) - JVS(2005) = 0.34*B(1004)+0.384*B(1008) +! JVS(2005) = Jac_FULL(234,234) + JVS(2005) = -B(592)-B(594)-B(596)-B(598)-B(600)-B(602)-B(604) IF (DO_JVS(2006)) & -! JVS(2006) = Jac_FULL(232,220) - JVS(2006) = 0 +! JVS(2006) = Jac_FULL(234,248) + JVS(2006) = 0.5*B(983) IF (DO_JVS(2007)) & -! JVS(2007) = Jac_FULL(232,224) - JVS(2007) = 0.52*B(870)+0.8*B(872) +! JVS(2007) = Jac_FULL(234,251) + JVS(2007) = 0.88*B(989) IF (DO_JVS(2008)) & -! JVS(2008) = Jac_FULL(232,225) - JVS(2008) = 0 +! JVS(2008) = Jac_FULL(234,253) + JVS(2008) = 0.22*B(211) IF (DO_JVS(2009)) & -! JVS(2009) = Jac_FULL(232,226) - JVS(2009) = 0.53*B(1518) +! JVS(2009) = Jac_FULL(234,267) + JVS(2009) = -B(593) IF (DO_JVS(2010)) & -! JVS(2010) = Jac_FULL(232,229) - JVS(2010) = 0.242*B(947)+0.546*B(949) +! JVS(2010) = Jac_FULL(234,276) + JVS(2010) = -B(605) IF (DO_JVS(2011)) & -! JVS(2011) = Jac_FULL(232,232) - JVS(2011) = -B(218)-B(220)-B(1422) +! JVS(2011) = Jac_FULL(234,278) + JVS(2011) = -B(599)-B(601) IF (DO_JVS(2012)) & -! JVS(2012) = Jac_FULL(232,236) - JVS(2012) = 0 +! JVS(2012) = Jac_FULL(234,279) + JVS(2012) = -B(595) IF (DO_JVS(2013)) & -! JVS(2013) = Jac_FULL(232,237) - JVS(2013) = 0.69*B(1523) +! JVS(2013) = Jac_FULL(234,281) + JVS(2013) = 0 IF (DO_JVS(2014)) & -! JVS(2014) = Jac_FULL(232,238) - JVS(2014) = 0.3*B(1548)+0.35*B(1549) +! JVS(2014) = Jac_FULL(234,282) + JVS(2014) = 0.22*B(212)-B(603)+0.58*B(705)+0.5*B(984)+0.88*B(990)+B(1094) IF (DO_JVS(2015)) & -! JVS(2015) = Jac_FULL(232,239) - JVS(2015) = 0.5*B(1542) +! JVS(2015) = Jac_FULL(234,286) + JVS(2015) = 0 IF (DO_JVS(2016)) & -! JVS(2016) = Jac_FULL(232,240) +! JVS(2016) = Jac_FULL(234,290) JVS(2016) = 0 IF (DO_JVS(2017)) & -! JVS(2017) = Jac_FULL(232,241) - JVS(2017) = 0 +! JVS(2017) = Jac_FULL(234,291) + JVS(2017) = -B(597) IF (DO_JVS(2018)) & -! JVS(2018) = Jac_FULL(232,242) - JVS(2018) = 0 +! JVS(2018) = Jac_FULL(235,173) + JVS(2018) = B(1216)+B(1219)+B(1221) IF (DO_JVS(2019)) & -! JVS(2019) = Jac_FULL(232,243) - JVS(2019) = 0 +! JVS(2019) = Jac_FULL(235,235) + JVS(2019) = -B(444)-B(1245)-B(1247)-B(1249)-B(1251)-B(1253)-B(1255)-B(1416) IF (DO_JVS(2020)) & -! JVS(2020) = Jac_FULL(232,244) - JVS(2020) = 0 +! JVS(2020) = Jac_FULL(235,275) + JVS(2020) = B(1217)-B(1250) IF (DO_JVS(2021)) & -! JVS(2021) = Jac_FULL(232,257) - JVS(2021) = 0 +! JVS(2021) = Jac_FULL(235,277) + JVS(2021) = -B(1254) IF (DO_JVS(2022)) & -! JVS(2022) = Jac_FULL(232,263) - JVS(2022) = 0.2*B(1155) +! JVS(2022) = Jac_FULL(235,278) + JVS(2022) = 0 IF (DO_JVS(2023)) & -! JVS(2023) = Jac_FULL(232,269) - JVS(2023) = -B(219)-B(221)+B(1160)+B(1164) +! JVS(2023) = Jac_FULL(235,280) + JVS(2023) = B(1220)-B(1246) IF (DO_JVS(2024)) & -! JVS(2024) = Jac_FULL(232,270) +! JVS(2024) = Jac_FULL(235,281) JVS(2024) = 0 IF (DO_JVS(2025)) & -! JVS(2025) = Jac_FULL(232,277) - JVS(2025) = B(1192)+0.9*B(1235)+0.95*B(1240) +! JVS(2025) = Jac_FULL(235,283) + JVS(2025) = -B(1252) IF (DO_JVS(2026)) & -! JVS(2026) = Jac_FULL(232,280) - JVS(2026) = 0.294*B(846)+B(853)+0.8*B(873)+0.728*B(923)+0.935*B(938)+0.546*B(950)+0.384*B(1009)+0.11*B(1027)+0.758& - &*B(1079) +! JVS(2026) = Jac_FULL(235,286) + JVS(2026) = -B(445) IF (DO_JVS(2027)) & -! JVS(2027) = Jac_FULL(232,281) - JVS(2027) = 0.135*B(850)+0.65*B(857)+0.52*B(871)+0.459*B(921)+0.551*B(936)+0.242*B(948)+0.34*B(1005)+0.09*B(1029)+0.36& - &*B(1077) +! JVS(2027) = Jac_FULL(235,287) + JVS(2027) = B(1222)-B(1248) IF (DO_JVS(2028)) & -! JVS(2028) = Jac_FULL(232,285) - JVS(2028) = 0 +! JVS(2028) = Jac_FULL(235,289) + JVS(2028) = -B(1256) IF (DO_JVS(2029)) & -! JVS(2029) = Jac_FULL(232,287) +! JVS(2029) = Jac_FULL(235,291) JVS(2029) = 0 IF (DO_JVS(2030)) & -! JVS(2030) = Jac_FULL(233,92) - JVS(2030) = 0.36*B(252) +! JVS(2030) = Jac_FULL(236,68) + JVS(2030) = B(1110) IF (DO_JVS(2031)) & -! JVS(2031) = Jac_FULL(233,121) - JVS(2031) = B(117)+B(351)+B(573) +! JVS(2031) = Jac_FULL(236,108) + JVS(2031) = B(1108) IF (DO_JVS(2032)) & -! JVS(2032) = Jac_FULL(233,198) - JVS(2032) = 0.05*B(1439) +! JVS(2032) = Jac_FULL(236,120) + JVS(2032) = B(1114) IF (DO_JVS(2033)) & -! JVS(2033) = Jac_FULL(233,222) - JVS(2033) = 0.06*B(1421) +! JVS(2033) = Jac_FULL(236,141) + JVS(2033) = 0.25*B(1504) IF (DO_JVS(2034)) & -! JVS(2034) = Jac_FULL(233,233) - JVS(2034) = -B(119)-B(121)-B(160)-B(208)-B(236)-B(240) +! JVS(2034) = Jac_FULL(236,142) + JVS(2034) = B(1142) IF (DO_JVS(2035)) & -! JVS(2035) = Jac_FULL(233,234) - JVS(2035) = 0 +! JVS(2035) = Jac_FULL(236,146) + JVS(2035) = 0.11*B(977)+0.09*B(979) IF (DO_JVS(2036)) & -! JVS(2036) = Jac_FULL(233,249) - JVS(2036) = 0 +! JVS(2036) = Jac_FULL(236,148) + JVS(2036) = 0.95*B(1190) IF (DO_JVS(2037)) & -! JVS(2037) = Jac_FULL(233,250) - JVS(2037) = 0.07*B(154)+0.03*B(212)+0.07*B(244)+0.07*B(305) +! JVS(2037) = Jac_FULL(236,159) + JVS(2037) = 0.9*B(1185) IF (DO_JVS(2038)) & -! JVS(2038) = Jac_FULL(233,251) - JVS(2038) = 0 +! JVS(2038) = Jac_FULL(236,164) + JVS(2038) = 0.429*B(1505) IF (DO_JVS(2039)) & -! JVS(2039) = Jac_FULL(233,252) - JVS(2039) = 0.05*B(127)+0.03*B(184)+0.05*B(273) +! JVS(2039) = Jac_FULL(236,166) + JVS(2039) = 0.551*B(886)+0.935*B(888) IF (DO_JVS(2040)) & -! JVS(2040) = Jac_FULL(233,255) - JVS(2040) = 0.07*B(1418) +! JVS(2040) = Jac_FULL(236,167) + JVS(2040) = 0.459*B(871)+0.728*B(873) IF (DO_JVS(2041)) & -! JVS(2041) = Jac_FULL(233,257) - JVS(2041) = -B(237)-B(241)+0.05*B(274)+0.07*B(306) +! JVS(2041) = Jac_FULL(236,179) + JVS(2041) = 0.2*B(1105) IF (DO_JVS(2042)) & -! JVS(2042) = Jac_FULL(233,263) - JVS(2042) = -B(161)+0.03*B(185)+0.07*B(245) +! JVS(2042) = Jac_FULL(236,182) + JVS(2042) = 0 IF (DO_JVS(2043)) & -! JVS(2043) = Jac_FULL(233,269) - JVS(2043) = B(118)+0.36*B(253) +! JVS(2043) = Jac_FULL(236,183) + JVS(2043) = 0.294*B(796)+0.135*B(800) IF (DO_JVS(2044)) & -! JVS(2044) = Jac_FULL(233,277) - JVS(2044) = 0 +! JVS(2044) = Jac_FULL(236,187) + JVS(2044) = B(803)+0.65*B(807) IF (DO_JVS(2045)) & -! JVS(2045) = Jac_FULL(233,280) - JVS(2045) = -B(120)-B(122)+0.05*B(128)+0.07*B(155) +! JVS(2045) = Jac_FULL(236,204) + JVS(2045) = 0.36*B(1027)+0.758*B(1029) IF (DO_JVS(2046)) & -! JVS(2046) = Jac_FULL(233,281) - JVS(2046) = -B(209)+0.03*B(213) +! JVS(2046) = Jac_FULL(236,206) + JVS(2046) = 0.118*B(1503) IF (DO_JVS(2047)) & -! JVS(2047) = Jac_FULL(233,282) - JVS(2047) = B(352) +! JVS(2047) = Jac_FULL(236,210) + JVS(2047) = 0 IF (DO_JVS(2048)) & -! JVS(2048) = Jac_FULL(233,285) - JVS(2048) = B(574) +! JVS(2048) = Jac_FULL(236,213) + JVS(2048) = B(1509) IF (DO_JVS(2049)) & -! JVS(2049) = Jac_FULL(233,287) +! JVS(2049) = Jac_FULL(236,214) JVS(2049) = 0 IF (DO_JVS(2050)) & -! JVS(2050) = Jac_FULL(234,150) - JVS(2050) = B(667) +! JVS(2050) = Jac_FULL(236,220) + JVS(2050) = 0 IF (DO_JVS(2051)) & -! JVS(2051) = Jac_FULL(234,151) - JVS(2051) = B(669) +! JVS(2051) = Jac_FULL(236,222) + JVS(2051) = 0.34*B(955)+0.384*B(959) IF (DO_JVS(2052)) & -! JVS(2052) = Jac_FULL(234,234) - JVS(2052) = -B(671)-B(673)-B(675)-B(677)-B(679) +! JVS(2052) = Jac_FULL(236,224) + JVS(2052) = 0 IF (DO_JVS(2053)) & -! JVS(2053) = Jac_FULL(234,257) - JVS(2053) = -B(678) +! JVS(2053) = Jac_FULL(236,228) + JVS(2053) = 0.52*B(821)+0.8*B(823) IF (DO_JVS(2054)) & -! JVS(2054) = Jac_FULL(234,263) - JVS(2054) = -B(676) +! JVS(2054) = Jac_FULL(236,229) + JVS(2054) = 0 IF (DO_JVS(2055)) & -! JVS(2055) = Jac_FULL(234,269) - JVS(2055) = B(668)+B(670) +! JVS(2055) = Jac_FULL(236,230) + JVS(2055) = 0.53*B(1477) IF (DO_JVS(2056)) & -! JVS(2056) = Jac_FULL(234,277) - JVS(2056) = 0 +! JVS(2056) = Jac_FULL(236,232) + JVS(2056) = 0.242*B(898)+0.546*B(900) IF (DO_JVS(2057)) & -! JVS(2057) = Jac_FULL(234,280) - JVS(2057) = -B(672) +! JVS(2057) = Jac_FULL(236,236) + JVS(2057) = -B(213)-B(215)-B(1381) IF (DO_JVS(2058)) & -! JVS(2058) = Jac_FULL(234,281) - JVS(2058) = -B(674) +! JVS(2058) = Jac_FULL(236,240) + JVS(2058) = 0 IF (DO_JVS(2059)) & -! JVS(2059) = Jac_FULL(234,287) - JVS(2059) = -B(680) +! JVS(2059) = Jac_FULL(236,241) + JVS(2059) = 0.69*B(1482) IF (DO_JVS(2060)) & -! JVS(2060) = Jac_FULL(235,108) - JVS(2060) = 0.36*B(250) +! JVS(2060) = Jac_FULL(236,242) + JVS(2060) = 0.3*B(1507)+0.35*B(1508) IF (DO_JVS(2061)) & -! JVS(2061) = Jac_FULL(235,165) - JVS(2061) = 0.16*B(691) +! JVS(2061) = Jac_FULL(236,243) + JVS(2061) = 0.5*B(1501) IF (DO_JVS(2062)) & -! JVS(2062) = Jac_FULL(235,198) - JVS(2062) = 0.32*B(1439) +! JVS(2062) = Jac_FULL(236,244) + JVS(2062) = 0 IF (DO_JVS(2063)) & -! JVS(2063) = Jac_FULL(235,213) +! JVS(2063) = Jac_FULL(236,245) JVS(2063) = 0 IF (DO_JVS(2064)) & -! JVS(2064) = Jac_FULL(235,222) - JVS(2064) = 0.425*B(1421) +! JVS(2064) = Jac_FULL(236,246) + JVS(2064) = 0 IF (DO_JVS(2065)) & -! JVS(2065) = Jac_FULL(235,234) +! JVS(2065) = Jac_FULL(236,247) JVS(2065) = 0 IF (DO_JVS(2066)) & -! JVS(2066) = Jac_FULL(235,235) - JVS(2066) = -B(113)-B(180)-2*B(201)-2*B(203)-B(206)-B(299)-B(303)-B(563) +! JVS(2066) = Jac_FULL(236,248) + JVS(2066) = 0 IF (DO_JVS(2067)) & -! JVS(2067) = Jac_FULL(235,249) +! JVS(2067) = Jac_FULL(236,261) JVS(2067) = 0 IF (DO_JVS(2068)) & -! JVS(2068) = Jac_FULL(235,250) - JVS(2068) = 0.5*B(154)+0.22*B(212)+0.5*B(244)+0.5*B(305) +! JVS(2068) = Jac_FULL(236,266) + JVS(2068) = 0.2*B(1106) IF (DO_JVS(2069)) & -! JVS(2069) = Jac_FULL(235,251) - JVS(2069) = 0 +! JVS(2069) = Jac_FULL(236,279) + JVS(2069) = 0.294*B(797)+B(804)+0.8*B(824)+0.728*B(874)+0.935*B(889)+0.546*B(901)+0.384*B(960)+0.11*B(978)+0.758& + &*B(1030) IF (DO_JVS(2070)) & -! JVS(2070) = Jac_FULL(235,252) - JVS(2070) = 0.32*B(127)+0.16*B(184)+0.32*B(273) +! JVS(2070) = Jac_FULL(236,281) + JVS(2070) = 0 IF (DO_JVS(2071)) & -! JVS(2071) = Jac_FULL(235,255) - JVS(2071) = 0.5*B(1418) +! JVS(2071) = Jac_FULL(236,282) + JVS(2071) = B(1143)+0.9*B(1186)+0.95*B(1191) IF (DO_JVS(2072)) & -! JVS(2072) = Jac_FULL(235,257) - JVS(2072) = 0.32*B(274)-B(300)-B(304)+0.5*B(306) +! JVS(2072) = Jac_FULL(236,284) + JVS(2072) = 0.135*B(801)+0.65*B(808)+0.52*B(822)+0.459*B(872)+0.551*B(887)+0.242*B(899)+0.34*B(956)+0.09*B(980)+0.36& + &*B(1028) IF (DO_JVS(2073)) & -! JVS(2073) = Jac_FULL(235,263) - JVS(2073) = -B(181)+0.16*B(185)+0.5*B(245) +! JVS(2073) = Jac_FULL(236,286) + JVS(2073) = -B(214)-B(216)+B(1111)+B(1115) IF (DO_JVS(2074)) & -! JVS(2074) = Jac_FULL(235,269) - JVS(2074) = 0.36*B(251) +! JVS(2074) = Jac_FULL(236,290) + JVS(2074) = 0 IF (DO_JVS(2075)) & -! JVS(2075) = Jac_FULL(235,277) - JVS(2075) = 0.16*B(692) +! JVS(2075) = Jac_FULL(236,291) + JVS(2075) = 0 IF (DO_JVS(2076)) & -! JVS(2076) = Jac_FULL(235,280) - JVS(2076) = -B(114)+0.32*B(128)+0.5*B(155) +! JVS(2076) = Jac_FULL(237,94) + JVS(2076) = 0.36*B(235) IF (DO_JVS(2077)) & -! JVS(2077) = Jac_FULL(235,281) - JVS(2077) = -B(207)+0.22*B(213) +! JVS(2077) = Jac_FULL(237,124) + JVS(2077) = B(114)+B(322)+B(532) IF (DO_JVS(2078)) & -! JVS(2078) = Jac_FULL(235,282) - JVS(2078) = 0 +! JVS(2078) = Jac_FULL(237,202) + JVS(2078) = 0.05*B(1398) IF (DO_JVS(2079)) & -! JVS(2079) = Jac_FULL(235,285) - JVS(2079) = -B(564) +! JVS(2079) = Jac_FULL(237,226) + JVS(2079) = 0.06*B(1380) IF (DO_JVS(2080)) & -! JVS(2080) = Jac_FULL(235,287) - JVS(2080) = 0 +! JVS(2080) = Jac_FULL(237,237) + JVS(2080) = -B(116)-B(118)-B(157)-B(203)-B(272) IF (DO_JVS(2081)) & -! JVS(2081) = Jac_FULL(236,123) - JVS(2081) = B(983) +! JVS(2081) = Jac_FULL(237,238) + JVS(2081) = 0 IF (DO_JVS(2082)) & -! JVS(2082) = Jac_FULL(236,147) - JVS(2082) = B(1000)+0.159*B(1539) +! JVS(2082) = Jac_FULL(237,254) + JVS(2082) = 0 IF (DO_JVS(2083)) & -! JVS(2083) = Jac_FULL(236,210) - JVS(2083) = 0.4*B(917) +! JVS(2083) = Jac_FULL(237,255) + JVS(2083) = 0.07*B(151)+0.03*B(207)+0.07*B(274)+0.07*B(276) IF (DO_JVS(2084)) & -! JVS(2084) = Jac_FULL(236,216) - JVS(2084) = 0.4*B(915) +! JVS(2084) = Jac_FULL(237,256) + JVS(2084) = 0.05*B(124)+0.03*B(181)+0.045*B(254) IF (DO_JVS(2085)) & -! JVS(2085) = Jac_FULL(236,236) - JVS(2085) = -B(1016)-B(1018)-B(1541) +! JVS(2085) = Jac_FULL(237,257) + JVS(2085) = 0 IF (DO_JVS(2086)) & -! JVS(2086) = Jac_FULL(236,239) - JVS(2086) = 0.228*B(1542) +! JVS(2086) = Jac_FULL(237,259) + JVS(2086) = 0.07*B(1377) IF (DO_JVS(2087)) & -! JVS(2087) = Jac_FULL(236,240) - JVS(2087) = 0.07*B(959)+0.532*B(960)+0.034*B(965) +! JVS(2087) = Jac_FULL(237,261) + JVS(2087) = 0.045*B(255)-B(273)+0.07*B(275) IF (DO_JVS(2088)) & -! JVS(2088) = Jac_FULL(236,241) - JVS(2088) = 0.532*B(961)+0.861*B(962)+0.401*B(963)+0.159*B(969)+0.159*B(973)+0.159*B(979) +! JVS(2088) = Jac_FULL(237,266) + JVS(2088) = -B(158)+0.03*B(182)+0.07*B(277) IF (DO_JVS(2089)) & -! JVS(2089) = Jac_FULL(236,242) - JVS(2089) = 0 +! JVS(2089) = Jac_FULL(237,273) + JVS(2089) = B(323) IF (DO_JVS(2090)) & -! JVS(2090) = Jac_FULL(236,243) - JVS(2090) = 0 +! JVS(2090) = Jac_FULL(237,279) + JVS(2090) = -B(117)-B(119)+0.05*B(125)+0.07*B(152) IF (DO_JVS(2091)) & -! JVS(2091) = Jac_FULL(236,257) - JVS(2091) = 0.159*B(970) +! JVS(2091) = Jac_FULL(237,281) + JVS(2091) = 0 IF (DO_JVS(2092)) & -! JVS(2092) = Jac_FULL(236,263) - JVS(2092) = 0.401*B(964)+0.034*B(966) +! JVS(2092) = Jac_FULL(237,282) + JVS(2092) = 0 IF (DO_JVS(2093)) & -! JVS(2093) = Jac_FULL(236,269) - JVS(2093) = 0.4*B(916)+0.4*B(918)+B(1001)-B(1017)-B(1019) +! JVS(2093) = Jac_FULL(237,284) + JVS(2093) = -B(204)+0.03*B(208) IF (DO_JVS(2094)) & -! JVS(2094) = Jac_FULL(236,280) - JVS(2094) = 0.159*B(980) +! JVS(2094) = Jac_FULL(237,286) + JVS(2094) = B(115)+0.36*B(236) IF (DO_JVS(2095)) & -! JVS(2095) = Jac_FULL(236,281) - JVS(2095) = 0 +! JVS(2095) = Jac_FULL(237,290) + JVS(2095) = B(533) IF (DO_JVS(2096)) & -! JVS(2096) = Jac_FULL(236,287) - JVS(2096) = 0.159*B(974) +! JVS(2096) = Jac_FULL(238,154) + JVS(2096) = B(618) IF (DO_JVS(2097)) & -! JVS(2097) = Jac_FULL(237,141) - JVS(2097) = B(1056) +! JVS(2097) = Jac_FULL(238,155) + JVS(2097) = B(620) IF (DO_JVS(2098)) & -! JVS(2098) = Jac_FULL(237,148) - JVS(2098) = 0.599*B(927)+B(929) +! JVS(2098) = Jac_FULL(238,238) + JVS(2098) = -B(622)-B(624)-B(626)-B(628)-B(630) IF (DO_JVS(2099)) & -! JVS(2099) = Jac_FULL(237,163) - JVS(2099) = 0.065*B(941)+0.142*B(943) +! JVS(2099) = Jac_FULL(238,261) + JVS(2099) = -B(629) IF (DO_JVS(2100)) & -! JVS(2100) = Jac_FULL(237,182) - JVS(2100) = 0 +! JVS(2100) = Jac_FULL(238,266) + JVS(2100) = -B(627) IF (DO_JVS(2101)) & -! JVS(2101) = Jac_FULL(237,185) - JVS(2101) = 0.015*B(1006)+0.049*B(1012) +! JVS(2101) = Jac_FULL(238,279) + JVS(2101) = -B(623) IF (DO_JVS(2102)) & -! JVS(2102) = Jac_FULL(237,200) - JVS(2102) = 0.438*B(1080) +! JVS(2102) = Jac_FULL(238,281) + JVS(2102) = -B(631) IF (DO_JVS(2103)) & -! JVS(2103) = Jac_FULL(237,210) - JVS(2103) = 0.6*B(917) +! JVS(2103) = Jac_FULL(238,282) + JVS(2103) = 0 IF (DO_JVS(2104)) & -! JVS(2104) = Jac_FULL(237,217) - JVS(2104) = 0.008*B(1004)+0.014*B(1008) +! JVS(2104) = Jac_FULL(238,284) + JVS(2104) = -B(625) IF (DO_JVS(2105)) & -! JVS(2105) = Jac_FULL(237,220) - JVS(2105) = 0 +! JVS(2105) = Jac_FULL(238,286) + JVS(2105) = B(619)+B(621) IF (DO_JVS(2106)) & -! JVS(2106) = Jac_FULL(237,229) - JVS(2106) = 0.01*B(947)+0.028*B(949) +! JVS(2106) = Jac_FULL(239,110) + JVS(2106) = 0.36*B(233) IF (DO_JVS(2107)) & -! JVS(2107) = Jac_FULL(237,236) - JVS(2107) = 0.161*B(1018) +! JVS(2107) = Jac_FULL(239,170) + JVS(2107) = 0.16*B(642) IF (DO_JVS(2108)) & -! JVS(2108) = Jac_FULL(237,237) - JVS(2108) = -B(1042)-B(1380)-B(1523) +! JVS(2108) = Jac_FULL(239,202) + JVS(2108) = 0.34*B(1398) IF (DO_JVS(2109)) & -! JVS(2109) = Jac_FULL(237,238) - JVS(2109) = 0.05*B(1548) +! JVS(2109) = Jac_FULL(239,217) + JVS(2109) = 0 IF (DO_JVS(2110)) & -! JVS(2110) = Jac_FULL(237,239) - JVS(2110) = 0 +! JVS(2110) = Jac_FULL(239,226) + JVS(2110) = 0.415*B(1380) IF (DO_JVS(2111)) & -! JVS(2111) = Jac_FULL(237,240) +! JVS(2111) = Jac_FULL(239,238) JVS(2111) = 0 IF (DO_JVS(2112)) & -! JVS(2112) = Jac_FULL(237,241) - JVS(2112) = 0 +! JVS(2112) = Jac_FULL(239,239) + JVS(2112) = -B(110)-B(177)-2*B(198)-B(201)-B(268)-B(522) IF (DO_JVS(2113)) & -! JVS(2113) = Jac_FULL(237,242) +! JVS(2113) = Jac_FULL(239,254) JVS(2113) = 0 IF (DO_JVS(2114)) & -! JVS(2114) = Jac_FULL(237,243) - JVS(2114) = 0 +! JVS(2114) = Jac_FULL(239,255) + JVS(2114) = 0.49*B(151)+0.22*B(207)+0.49*B(274)+0.49*B(276) IF (DO_JVS(2115)) & -! JVS(2115) = Jac_FULL(237,244) - JVS(2115) = 0 +! JVS(2115) = Jac_FULL(239,256) + JVS(2115) = 0.34*B(124)+0.16*B(181)+0.29*B(254) IF (DO_JVS(2116)) & -! JVS(2116) = Jac_FULL(237,257) +! JVS(2116) = Jac_FULL(239,257) JVS(2116) = 0 IF (DO_JVS(2117)) & -! JVS(2117) = Jac_FULL(237,263) - JVS(2117) = 0 +! JVS(2117) = Jac_FULL(239,259) + JVS(2117) = 0.49*B(1377) IF (DO_JVS(2118)) & -! JVS(2118) = Jac_FULL(237,269) - JVS(2118) = 0.6*B(918)+0.161*B(1019)-B(1043) +! JVS(2118) = Jac_FULL(239,261) + JVS(2118) = 0.29*B(255)-B(269)+0.49*B(275) IF (DO_JVS(2119)) & -! JVS(2119) = Jac_FULL(237,270) - JVS(2119) = B(1057) +! JVS(2119) = Jac_FULL(239,266) + JVS(2119) = -B(178)+0.16*B(182)+0.49*B(277) IF (DO_JVS(2120)) & -! JVS(2120) = Jac_FULL(237,277) +! JVS(2120) = Jac_FULL(239,273) JVS(2120) = 0 IF (DO_JVS(2121)) & -! JVS(2121) = Jac_FULL(237,280) - JVS(2121) = B(930)+0.142*B(944)+0.028*B(950)+0.014*B(1009)+0.049*B(1013)+0.438*B(1081) +! JVS(2121) = Jac_FULL(239,279) + JVS(2121) = -B(111)+0.34*B(125)+0.49*B(152) IF (DO_JVS(2122)) & -! JVS(2122) = Jac_FULL(237,281) - JVS(2122) = 0.599*B(928)+0.065*B(942)+0.01*B(948)+0.008*B(1005)+0.015*B(1007) +! JVS(2122) = Jac_FULL(239,281) + JVS(2122) = 0 IF (DO_JVS(2123)) & -! JVS(2123) = Jac_FULL(237,285) - JVS(2123) = 0 +! JVS(2123) = Jac_FULL(239,282) + JVS(2123) = 0.16*B(643) IF (DO_JVS(2124)) & -! JVS(2124) = Jac_FULL(237,287) - JVS(2124) = 0 +! JVS(2124) = Jac_FULL(239,284) + JVS(2124) = -B(202)+0.22*B(208) IF (DO_JVS(2125)) & -! JVS(2125) = Jac_FULL(238,147) - JVS(2125) = B(992) +! JVS(2125) = Jac_FULL(239,286) + JVS(2125) = 0.36*B(234) IF (DO_JVS(2126)) & -! JVS(2126) = Jac_FULL(238,148) - JVS(2126) = 0.401*B(927) +! JVS(2126) = Jac_FULL(239,290) + JVS(2126) = -B(523) IF (DO_JVS(2127)) & -! JVS(2127) = Jac_FULL(238,162) - JVS(2127) = 0.482*B(920) +! JVS(2127) = Jac_FULL(240,126) + JVS(2127) = B(934) IF (DO_JVS(2128)) & -! JVS(2128) = Jac_FULL(238,163) - JVS(2128) = 0.494*B(941) +! JVS(2128) = Jac_FULL(240,151) + JVS(2128) = B(951)+0.159*B(1498) IF (DO_JVS(2129)) & -! JVS(2129) = Jac_FULL(238,164) - JVS(2129) = 0.418*B(935) +! JVS(2129) = Jac_FULL(240,214) + JVS(2129) = 0.4*B(868) IF (DO_JVS(2130)) & -! JVS(2130) = Jac_FULL(238,177) - JVS(2130) = B(990) +! JVS(2130) = Jac_FULL(240,220) + JVS(2130) = 0.4*B(866) IF (DO_JVS(2131)) & -! JVS(2131) = Jac_FULL(238,179) - JVS(2131) = B(840) +! JVS(2131) = Jac_FULL(240,240) + JVS(2131) = -B(967)-B(969)-B(1500) IF (DO_JVS(2132)) & -! JVS(2132) = Jac_FULL(238,180) - JVS(2132) = B(847) +! JVS(2132) = Jac_FULL(240,243) + JVS(2132) = 0.223*B(1501) IF (DO_JVS(2133)) & -! JVS(2133) = Jac_FULL(238,183) - JVS(2133) = B(854) +! JVS(2133) = Jac_FULL(240,244) + JVS(2133) = 0 IF (DO_JVS(2134)) & -! JVS(2134) = Jac_FULL(238,185) - JVS(2134) = 0.387*B(1006) +! JVS(2134) = Jac_FULL(240,245) + JVS(2134) = 0 IF (DO_JVS(2135)) & -! JVS(2135) = Jac_FULL(238,210) - JVS(2135) = 0 +! JVS(2135) = Jac_FULL(240,246) + JVS(2135) = 0.532*B(911)+0.862*B(913)+0.401*B(914)+0.159*B(920)+0.159*B(924)+0.159*B(930) IF (DO_JVS(2136)) & -! JVS(2136) = Jac_FULL(238,216) - JVS(2136) = 0 +! JVS(2136) = Jac_FULL(240,247) + JVS(2136) = 0.07*B(910)+0.532*B(912)+0.034*B(916) IF (DO_JVS(2137)) & -! JVS(2137) = Jac_FULL(238,217) - JVS(2137) = 0.5*B(1003)+0.234*B(1004) +! JVS(2137) = Jac_FULL(240,261) + JVS(2137) = 0.159*B(921) IF (DO_JVS(2138)) & -! JVS(2138) = Jac_FULL(238,229) - JVS(2138) = 0.621*B(947) +! JVS(2138) = Jac_FULL(240,266) + JVS(2138) = 0.401*B(915)+0.034*B(917) IF (DO_JVS(2139)) & -! JVS(2139) = Jac_FULL(238,238) - JVS(2139) = -B(1122)-B(1396)-B(1548)-B(1549) +! JVS(2139) = Jac_FULL(240,279) + JVS(2139) = 0.159*B(931) IF (DO_JVS(2140)) & -! JVS(2140) = Jac_FULL(238,239) - JVS(2140) = 0.565*B(1024) +! JVS(2140) = Jac_FULL(240,281) + JVS(2140) = 0.159*B(925) IF (DO_JVS(2141)) & -! JVS(2141) = Jac_FULL(238,240) +! JVS(2141) = Jac_FULL(240,284) JVS(2141) = 0 IF (DO_JVS(2142)) & -! JVS(2142) = Jac_FULL(238,241) - JVS(2142) = 0 +! JVS(2142) = Jac_FULL(240,286) + JVS(2142) = 0.4*B(867)+0.4*B(869)+B(952)-B(968)-B(970) IF (DO_JVS(2143)) & -! JVS(2143) = Jac_FULL(238,242) - JVS(2143) = 0 +! JVS(2143) = Jac_FULL(241,144) + JVS(2143) = B(1007) IF (DO_JVS(2144)) & -! JVS(2144) = Jac_FULL(238,243) - JVS(2144) = 0 +! JVS(2144) = Jac_FULL(241,152) + JVS(2144) = 0.599*B(878)+B(880) IF (DO_JVS(2145)) & -! JVS(2145) = Jac_FULL(238,257) - JVS(2145) = 0 +! JVS(2145) = Jac_FULL(241,168) + JVS(2145) = 0.065*B(892)+0.142*B(894) IF (DO_JVS(2146)) & -! JVS(2146) = Jac_FULL(238,263) +! JVS(2146) = Jac_FULL(241,186) JVS(2146) = 0 IF (DO_JVS(2147)) & -! JVS(2147) = Jac_FULL(238,269) - JVS(2147) = B(991)+B(993)+0.565*B(1025)-B(1123) +! JVS(2147) = Jac_FULL(241,189) + JVS(2147) = 0.015*B(957)+0.049*B(963) IF (DO_JVS(2148)) & -! JVS(2148) = Jac_FULL(238,280) - JVS(2148) = B(841)+B(848)+B(855) +! JVS(2148) = Jac_FULL(241,204) + JVS(2148) = B(1031) IF (DO_JVS(2149)) & -! JVS(2149) = Jac_FULL(238,281) - JVS(2149) = 0.482*B(921)+0.401*B(928)+0.418*B(936)+0.494*B(942)+0.621*B(948)+0.234*B(1005)+0.387*B(1007) +! JVS(2149) = Jac_FULL(241,214) + JVS(2149) = 0.6*B(868) IF (DO_JVS(2150)) & -! JVS(2150) = Jac_FULL(238,287) - JVS(2150) = 0 +! JVS(2150) = Jac_FULL(241,222) + JVS(2150) = 0.008*B(955)+0.014*B(959) IF (DO_JVS(2151)) & -! JVS(2151) = Jac_FULL(239,143) - JVS(2151) = 0.18*B(1028) +! JVS(2151) = Jac_FULL(241,224) + JVS(2151) = 0 IF (DO_JVS(2152)) & -! JVS(2152) = Jac_FULL(239,148) - JVS(2152) = B(931) +! JVS(2152) = Jac_FULL(241,232) + JVS(2152) = 0.01*B(898)+0.028*B(900) IF (DO_JVS(2153)) & -! JVS(2153) = Jac_FULL(239,162) - JVS(2153) = B(924) +! JVS(2153) = Jac_FULL(241,240) + JVS(2153) = 0.161*B(969) IF (DO_JVS(2154)) & -! JVS(2154) = Jac_FULL(239,163) - JVS(2154) = B(945) +! JVS(2154) = Jac_FULL(241,241) + JVS(2154) = -B(993)-B(1339)-B(1482) IF (DO_JVS(2155)) & -! JVS(2155) = Jac_FULL(239,164) - JVS(2155) = B(939) +! JVS(2155) = Jac_FULL(241,242) + JVS(2155) = 0.05*B(1507) IF (DO_JVS(2156)) & -! JVS(2156) = Jac_FULL(239,185) - JVS(2156) = B(1014) +! JVS(2156) = Jac_FULL(241,243) + JVS(2156) = 0 IF (DO_JVS(2157)) & -! JVS(2157) = Jac_FULL(239,210) +! JVS(2157) = Jac_FULL(241,244) JVS(2157) = 0 IF (DO_JVS(2158)) & -! JVS(2158) = Jac_FULL(239,216) +! JVS(2158) = Jac_FULL(241,245) JVS(2158) = 0 IF (DO_JVS(2159)) & -! JVS(2159) = Jac_FULL(239,217) - JVS(2159) = B(1010) +! JVS(2159) = Jac_FULL(241,246) + JVS(2159) = 0 IF (DO_JVS(2160)) & -! JVS(2160) = Jac_FULL(239,229) - JVS(2160) = B(951) +! JVS(2160) = Jac_FULL(241,247) + JVS(2160) = 0 IF (DO_JVS(2161)) & -! JVS(2161) = Jac_FULL(239,238) +! JVS(2161) = Jac_FULL(241,248) JVS(2161) = 0 IF (DO_JVS(2162)) & -! JVS(2162) = Jac_FULL(239,239) - JVS(2162) = -B(1024)-B(1394)-B(1542) +! JVS(2162) = Jac_FULL(241,261) + JVS(2162) = 0 IF (DO_JVS(2163)) & -! JVS(2163) = Jac_FULL(239,240) - JVS(2163) = B(977) +! JVS(2163) = Jac_FULL(241,266) + JVS(2163) = 0 IF (DO_JVS(2164)) & -! JVS(2164) = Jac_FULL(239,241) - JVS(2164) = B(981) +! JVS(2164) = Jac_FULL(241,279) + JVS(2164) = B(881)+0.142*B(895)+0.028*B(901)+0.014*B(960)+0.049*B(964)+B(1032) IF (DO_JVS(2165)) & -! JVS(2165) = Jac_FULL(239,242) +! JVS(2165) = Jac_FULL(241,281) JVS(2165) = 0 IF (DO_JVS(2166)) & -! JVS(2166) = Jac_FULL(239,243) +! JVS(2166) = Jac_FULL(241,282) JVS(2166) = 0 IF (DO_JVS(2167)) & -! JVS(2167) = Jac_FULL(239,257) - JVS(2167) = 0 +! JVS(2167) = Jac_FULL(241,284) + JVS(2167) = 0.599*B(879)+0.065*B(893)+0.01*B(899)+0.008*B(956)+0.015*B(958) IF (DO_JVS(2168)) & -! JVS(2168) = Jac_FULL(239,263) - JVS(2168) = 0 +! JVS(2168) = Jac_FULL(241,286) + JVS(2168) = 0.6*B(869)+0.161*B(970)-B(994) IF (DO_JVS(2169)) & -! JVS(2169) = Jac_FULL(239,269) - JVS(2169) = -B(1025) +! JVS(2169) = Jac_FULL(241,290) + JVS(2169) = 0 IF (DO_JVS(2170)) & -! JVS(2170) = Jac_FULL(239,280) - JVS(2170) = B(925)+B(932)+B(940)+B(946)+B(952)+B(978)+B(982)+B(1011)+B(1015) +! JVS(2170) = Jac_FULL(241,291) + JVS(2170) = B(1008) IF (DO_JVS(2171)) & -! JVS(2171) = Jac_FULL(239,281) - JVS(2171) = 0.18*B(1029) +! JVS(2171) = Jac_FULL(242,151) + JVS(2171) = B(943) IF (DO_JVS(2172)) & -! JVS(2172) = Jac_FULL(239,287) - JVS(2172) = 0 +! JVS(2172) = Jac_FULL(242,152) + JVS(2172) = 0.401*B(878) IF (DO_JVS(2173)) & -! JVS(2173) = Jac_FULL(240,177) - JVS(2173) = B(996) +! JVS(2173) = Jac_FULL(242,166) + JVS(2173) = 0.418*B(886) IF (DO_JVS(2174)) & -! JVS(2174) = Jac_FULL(240,220) - JVS(2174) = 0.465*B(953) +! JVS(2174) = Jac_FULL(242,167) + JVS(2174) = 0.482*B(871) IF (DO_JVS(2175)) & -! JVS(2175) = Jac_FULL(240,240) - JVS(2175) = -B(955)-2*B(959)-B(960)-B(965)-B(967)-B(971)-B(975)-B(977) +! JVS(2175) = Jac_FULL(242,168) + JVS(2175) = 0.494*B(892) IF (DO_JVS(2176)) & -! JVS(2176) = Jac_FULL(240,241) - JVS(2176) = -B(961) +! JVS(2176) = Jac_FULL(242,181) + JVS(2176) = B(941) IF (DO_JVS(2177)) & -! JVS(2177) = Jac_FULL(240,257) - JVS(2177) = -B(968) +! JVS(2177) = Jac_FULL(242,182) + JVS(2177) = B(791) IF (DO_JVS(2178)) & -! JVS(2178) = Jac_FULL(240,263) - JVS(2178) = -B(966) +! JVS(2178) = Jac_FULL(242,183) + JVS(2178) = B(798) IF (DO_JVS(2179)) & -! JVS(2179) = Jac_FULL(240,269) - JVS(2179) = B(997) +! JVS(2179) = Jac_FULL(242,187) + JVS(2179) = B(805) IF (DO_JVS(2180)) & -! JVS(2180) = Jac_FULL(240,277) - JVS(2180) = 0 +! JVS(2180) = Jac_FULL(242,189) + JVS(2180) = 0.387*B(957) IF (DO_JVS(2181)) & -! JVS(2181) = Jac_FULL(240,280) - JVS(2181) = -B(976)-B(978) +! JVS(2181) = Jac_FULL(242,214) + JVS(2181) = 0 IF (DO_JVS(2182)) & -! JVS(2182) = Jac_FULL(240,281) - JVS(2182) = -B(956) +! JVS(2182) = Jac_FULL(242,220) + JVS(2182) = 0 IF (DO_JVS(2183)) & -! JVS(2183) = Jac_FULL(240,285) - JVS(2183) = 0 +! JVS(2183) = Jac_FULL(242,222) + JVS(2183) = 0.5*B(954)+0.234*B(955) IF (DO_JVS(2184)) & -! JVS(2184) = Jac_FULL(240,287) - JVS(2184) = 0.465*B(954)-B(972) +! JVS(2184) = Jac_FULL(242,232) + JVS(2184) = 0.621*B(898) IF (DO_JVS(2185)) & -! JVS(2185) = Jac_FULL(241,147) - JVS(2185) = B(998) +! JVS(2185) = Jac_FULL(242,242) + JVS(2185) = -B(1073)-B(1355)-B(1507)-B(1508) IF (DO_JVS(2186)) & -! JVS(2186) = Jac_FULL(241,220) - JVS(2186) = 0.535*B(953) +! JVS(2186) = Jac_FULL(242,243) + JVS(2186) = 0.565*B(975) IF (DO_JVS(2187)) & -! JVS(2187) = Jac_FULL(241,240) - JVS(2187) = -B(960) +! JVS(2187) = Jac_FULL(242,244) + JVS(2187) = 0 IF (DO_JVS(2188)) & -! JVS(2188) = Jac_FULL(241,241) - JVS(2188) = -B(957)-B(961)-2*B(962)-B(963)-B(969)-B(973)-B(979)-B(981) +! JVS(2188) = Jac_FULL(242,245) + JVS(2188) = 0 IF (DO_JVS(2189)) & -! JVS(2189) = Jac_FULL(241,257) - JVS(2189) = -B(970) +! JVS(2189) = Jac_FULL(242,246) + JVS(2189) = 0 IF (DO_JVS(2190)) & -! JVS(2190) = Jac_FULL(241,263) - JVS(2190) = -B(964) +! JVS(2190) = Jac_FULL(242,247) + JVS(2190) = 0 IF (DO_JVS(2191)) & -! JVS(2191) = Jac_FULL(241,269) - JVS(2191) = B(999) +! JVS(2191) = Jac_FULL(242,261) + JVS(2191) = 0 IF (DO_JVS(2192)) & -! JVS(2192) = Jac_FULL(241,277) +! JVS(2192) = Jac_FULL(242,266) JVS(2192) = 0 IF (DO_JVS(2193)) & -! JVS(2193) = Jac_FULL(241,280) - JVS(2193) = -B(980)-B(982) +! JVS(2193) = Jac_FULL(242,279) + JVS(2193) = B(792)+B(799)+B(806) IF (DO_JVS(2194)) & -! JVS(2194) = Jac_FULL(241,281) - JVS(2194) = -B(958) +! JVS(2194) = Jac_FULL(242,281) + JVS(2194) = 0 IF (DO_JVS(2195)) & -! JVS(2195) = Jac_FULL(241,285) - JVS(2195) = 0 +! JVS(2195) = Jac_FULL(242,284) + JVS(2195) = 0.482*B(872)+0.401*B(879)+0.418*B(887)+0.494*B(893)+0.621*B(899)+0.234*B(956)+0.387*B(958) IF (DO_JVS(2196)) & -! JVS(2196) = Jac_FULL(241,287) - JVS(2196) = 0.535*B(954)-B(974) +! JVS(2196) = Jac_FULL(242,286) + JVS(2196) = B(942)+B(944)+0.565*B(976)-B(1074) IF (DO_JVS(2197)) & -! JVS(2197) = Jac_FULL(242,147) - JVS(2197) = 0.841*B(1540) +! JVS(2197) = Jac_FULL(243,146) + JVS(2197) = 0.18*B(979) IF (DO_JVS(2198)) & -! JVS(2198) = Jac_FULL(242,153) - JVS(2198) = 0.75*B(829) +! JVS(2198) = Jac_FULL(243,152) + JVS(2198) = B(882) IF (DO_JVS(2199)) & -! JVS(2199) = Jac_FULL(242,167) - JVS(2199) = 0.03*B(833) +! JVS(2199) = Jac_FULL(243,166) + JVS(2199) = B(890) IF (DO_JVS(2200)) & -! JVS(2200) = Jac_FULL(242,220) - JVS(2200) = 0.5*B(577)+B(755) +! JVS(2200) = Jac_FULL(243,167) + JVS(2200) = B(875) IF (DO_JVS(2201)) & -! JVS(2201) = Jac_FULL(242,241) - JVS(2201) = 0 +! JVS(2201) = Jac_FULL(243,168) + JVS(2201) = B(896) IF (DO_JVS(2202)) & -! JVS(2202) = Jac_FULL(242,242) - JVS(2202) = -B(763)-B(765)-B(771)-B(772)-2*B(775)-B(777)-2*B(779)-B(781)-B(783)-B(785)-B(791)-B(793)-B(795)-B(797) +! JVS(2202) = Jac_FULL(243,189) + JVS(2202) = B(965) IF (DO_JVS(2203)) & -! JVS(2203) = Jac_FULL(242,243) - JVS(2203) = -B(778)-B(782) +! JVS(2203) = Jac_FULL(243,214) + JVS(2203) = 0 IF (DO_JVS(2204)) & -! JVS(2204) = Jac_FULL(242,257) +! JVS(2204) = Jac_FULL(243,220) JVS(2204) = 0 IF (DO_JVS(2205)) & -! JVS(2205) = Jac_FULL(242,263) - JVS(2205) = -B(784)-B(786) +! JVS(2205) = Jac_FULL(243,222) + JVS(2205) = B(961) IF (DO_JVS(2206)) & -! JVS(2206) = Jac_FULL(242,269) - JVS(2206) = B(756)+0.75*B(830)+0.03*B(834) +! JVS(2206) = Jac_FULL(243,232) + JVS(2206) = B(902) IF (DO_JVS(2207)) & -! JVS(2207) = Jac_FULL(242,277) +! JVS(2207) = Jac_FULL(243,242) JVS(2207) = 0 IF (DO_JVS(2208)) & -! JVS(2208) = Jac_FULL(242,280) - JVS(2208) = -B(792)-B(794)-B(796)-B(798) +! JVS(2208) = Jac_FULL(243,243) + JVS(2208) = -B(975)-B(1353)-B(1501) IF (DO_JVS(2209)) & -! JVS(2209) = Jac_FULL(242,281) - JVS(2209) = -B(764)-B(766) +! JVS(2209) = Jac_FULL(243,244) + JVS(2209) = 0 IF (DO_JVS(2210)) & -! JVS(2210) = Jac_FULL(242,285) - JVS(2210) = 0.5*B(578) +! JVS(2210) = Jac_FULL(243,245) + JVS(2210) = 0 IF (DO_JVS(2211)) & -! JVS(2211) = Jac_FULL(242,287) - JVS(2211) = 0 +! JVS(2211) = Jac_FULL(243,246) + JVS(2211) = B(932) IF (DO_JVS(2212)) & -! JVS(2212) = Jac_FULL(243,147) - JVS(2212) = 0.159*B(1540) +! JVS(2212) = Jac_FULL(243,247) + JVS(2212) = B(928) IF (DO_JVS(2213)) & -! JVS(2213) = Jac_FULL(243,158) - JVS(2213) = 0.51*B(831) +! JVS(2213) = Jac_FULL(243,261) + JVS(2213) = 0 IF (DO_JVS(2214)) & -! JVS(2214) = Jac_FULL(243,161) - JVS(2214) = 0.03*B(835) +! JVS(2214) = Jac_FULL(243,266) + JVS(2214) = 0 IF (DO_JVS(2215)) & -! JVS(2215) = Jac_FULL(243,220) - JVS(2215) = 0.5*B(577)+B(757) +! JVS(2215) = Jac_FULL(243,279) + JVS(2215) = B(876)+B(883)+B(891)+B(897)+B(903)+B(929)+B(933)+B(962)+B(966) IF (DO_JVS(2216)) & -! JVS(2216) = Jac_FULL(243,241) +! JVS(2216) = Jac_FULL(243,281) JVS(2216) = 0 IF (DO_JVS(2217)) & -! JVS(2217) = Jac_FULL(243,242) - JVS(2217) = -B(777)-B(781) +! JVS(2217) = Jac_FULL(243,284) + JVS(2217) = 0.18*B(980) IF (DO_JVS(2218)) & -! JVS(2218) = Jac_FULL(243,243) - JVS(2218) = -B(767)-B(769)-B(773)-B(774)-2*B(776)-B(778)-2*B(780)-B(782)-B(787)-B(789)-B(799)-B(801)-B(803)-B(805) +! JVS(2218) = Jac_FULL(243,286) + JVS(2218) = -B(976) IF (DO_JVS(2219)) & -! JVS(2219) = Jac_FULL(243,257) - JVS(2219) = 0 +! JVS(2219) = Jac_FULL(244,151) + JVS(2219) = 0.159*B(1499) IF (DO_JVS(2220)) & -! JVS(2220) = Jac_FULL(243,263) - JVS(2220) = -B(788)-B(790) +! JVS(2220) = Jac_FULL(244,162) + JVS(2220) = 0.51*B(782) IF (DO_JVS(2221)) & -! JVS(2221) = Jac_FULL(243,269) - JVS(2221) = B(758)+0.51*B(832)+0.03*B(836) +! JVS(2221) = Jac_FULL(244,165) + JVS(2221) = 0.03*B(786) IF (DO_JVS(2222)) & -! JVS(2222) = Jac_FULL(243,277) - JVS(2222) = 0 +! JVS(2222) = Jac_FULL(244,224) + JVS(2222) = 0.5*B(536)+B(708) IF (DO_JVS(2223)) & -! JVS(2223) = Jac_FULL(243,280) - JVS(2223) = -B(800)-B(802)-B(804)-B(806) +! JVS(2223) = Jac_FULL(244,244) + JVS(2223) = -B(718)-B(720)-B(724)-B(725)-2*B(727)-B(728)-2*B(731)-B(732)-B(738)-B(740)-B(750)-B(752)-B(754)-B(756) IF (DO_JVS(2224)) & -! JVS(2224) = Jac_FULL(243,281) - JVS(2224) = -B(768)-B(770) +! JVS(2224) = Jac_FULL(244,245) + JVS(2224) = -B(729)-B(733) IF (DO_JVS(2225)) & -! JVS(2225) = Jac_FULL(243,285) - JVS(2225) = 0.5*B(578) +! JVS(2225) = Jac_FULL(244,246) + JVS(2225) = 0 IF (DO_JVS(2226)) & -! JVS(2226) = Jac_FULL(243,287) - JVS(2226) = 0 +! JVS(2226) = Jac_FULL(244,266) + JVS(2226) = -B(739)-B(741) IF (DO_JVS(2227)) & -! JVS(2227) = Jac_FULL(244,76) - JVS(2227) = 0.04*B(1167) +! JVS(2227) = Jac_FULL(244,279) + JVS(2227) = -B(751)-B(753)-B(755)-B(757) IF (DO_JVS(2228)) & -! JVS(2228) = Jac_FULL(244,77) - JVS(2228) = 0.04*B(1169) +! JVS(2228) = Jac_FULL(244,281) + JVS(2228) = 0 IF (DO_JVS(2229)) & -! JVS(2229) = Jac_FULL(244,120) - JVS(2229) = B(891)+B(893) +! JVS(2229) = Jac_FULL(244,282) + JVS(2229) = 0 IF (DO_JVS(2230)) & -! JVS(2230) = Jac_FULL(244,126) - JVS(2230) = 0.23*B(811)+B(1532) +! JVS(2230) = Jac_FULL(244,284) + JVS(2230) = -B(719)-B(721) IF (DO_JVS(2231)) & -! JVS(2231) = Jac_FULL(244,136) - JVS(2231) = B(1535) +! JVS(2231) = Jac_FULL(244,286) + JVS(2231) = B(709)+0.51*B(783)+0.03*B(787) IF (DO_JVS(2232)) & -! JVS(2232) = Jac_FULL(244,153) - JVS(2232) = 0.125*B(829)+B(1526) +! JVS(2232) = Jac_FULL(244,290) + JVS(2232) = 0.5*B(537) IF (DO_JVS(2233)) & -! JVS(2233) = Jac_FULL(244,167) - JVS(2233) = 0 +! JVS(2233) = Jac_FULL(245,151) + JVS(2233) = 0.841*B(1499) IF (DO_JVS(2234)) & -! JVS(2234) = Jac_FULL(244,177) - JVS(2234) = 0.903*B(1538) +! JVS(2234) = Jac_FULL(245,157) + JVS(2234) = 0.75*B(780) IF (DO_JVS(2235)) & -! JVS(2235) = Jac_FULL(244,182) - JVS(2235) = 0.035*B(807) +! JVS(2235) = Jac_FULL(245,171) + JVS(2235) = 0.03*B(784) IF (DO_JVS(2236)) & -! JVS(2236) = Jac_FULL(244,220) - JVS(2236) = 0.177*B(753) +! JVS(2236) = Jac_FULL(245,224) + JVS(2236) = 0.5*B(536)+B(706) IF (DO_JVS(2237)) & -! JVS(2237) = Jac_FULL(244,239) - JVS(2237) = 0.05*B(1542) +! JVS(2237) = Jac_FULL(245,244) + JVS(2237) = -B(728)-B(732) IF (DO_JVS(2238)) & -! JVS(2238) = Jac_FULL(244,240) - JVS(2238) = 0.479*B(955)+1.737*B(959)+0.544*B(960)+0.583*B(965)+0.903*B(967)+0.903*B(971)+0.904*B(975) +! JVS(2238) = Jac_FULL(245,245) + JVS(2238) = -B(714)-B(716)-B(722)-B(723)-2*B(726)-B(729)-2*B(730)-B(733)-B(734)-B(736)-B(742)-B(744)-B(746)-B(748) IF (DO_JVS(2239)) & -! JVS(2239) = Jac_FULL(244,241) - JVS(2239) = 0.544*B(961) +! JVS(2239) = Jac_FULL(245,246) + JVS(2239) = 0 IF (DO_JVS(2240)) & -! JVS(2240) = Jac_FULL(244,242) - JVS(2240) = 0.063*B(763)+B(771)+2*B(775)+B(777)+B(783)+B(793) +! JVS(2240) = Jac_FULL(245,266) + JVS(2240) = -B(735)-B(737) IF (DO_JVS(2241)) & -! JVS(2241) = Jac_FULL(244,243) - JVS(2241) = B(778) +! JVS(2241) = Jac_FULL(245,279) + JVS(2241) = -B(743)-B(745)-B(747)-B(749) IF (DO_JVS(2242)) & -! JVS(2242) = Jac_FULL(244,244) - JVS(2242) = -B(1030)-B(1032)-B(1427)-B(1428)-B(1429) +! JVS(2242) = Jac_FULL(245,281) + JVS(2242) = 0 IF (DO_JVS(2243)) & -! JVS(2243) = Jac_FULL(244,257) - JVS(2243) = 0.903*B(968) +! JVS(2243) = Jac_FULL(245,282) + JVS(2243) = 0 IF (DO_JVS(2244)) & -! JVS(2244) = Jac_FULL(244,263) - JVS(2244) = B(784)+0.583*B(966) +! JVS(2244) = Jac_FULL(245,284) + JVS(2244) = -B(715)-B(717) IF (DO_JVS(2245)) & -! JVS(2245) = Jac_FULL(244,269) - JVS(2245) = 0.035*B(808)+0.23*B(812)+0.125*B(830)-B(1031)+0.04*B(1168)+0.04*B(1170) +! JVS(2245) = Jac_FULL(245,286) + JVS(2245) = B(707)+0.75*B(781)+0.03*B(785) IF (DO_JVS(2246)) & -! JVS(2246) = Jac_FULL(244,277) - JVS(2246) = 0.177*B(754)-B(1033) +! JVS(2246) = Jac_FULL(245,290) + JVS(2246) = 0.5*B(537) IF (DO_JVS(2247)) & -! JVS(2247) = Jac_FULL(244,280) - JVS(2247) = B(794)+B(892)+0.904*B(976) +! JVS(2247) = Jac_FULL(246,151) + JVS(2247) = B(949) IF (DO_JVS(2248)) & -! JVS(2248) = Jac_FULL(244,281) - JVS(2248) = 0.063*B(764)+B(894)+0.479*B(956) +! JVS(2248) = Jac_FULL(246,224) + JVS(2248) = 0.535*B(904) IF (DO_JVS(2249)) & -! JVS(2249) = Jac_FULL(244,285) - JVS(2249) = 0 +! JVS(2249) = Jac_FULL(246,246) + JVS(2249) = -B(908)-B(911)-2*B(913)-B(914)-B(920)-B(924)-B(930)-B(932) IF (DO_JVS(2250)) & -! JVS(2250) = Jac_FULL(244,287) - JVS(2250) = 0.903*B(972) +! JVS(2250) = Jac_FULL(246,247) + JVS(2250) = -B(912) IF (DO_JVS(2251)) & -! JVS(2251) = Jac_FULL(245,195) - JVS(2251) = B(1048) +! JVS(2251) = Jac_FULL(246,261) + JVS(2251) = -B(921) IF (DO_JVS(2252)) & -! JVS(2252) = Jac_FULL(245,201) - JVS(2252) = 0 +! JVS(2252) = Jac_FULL(246,266) + JVS(2252) = -B(915) IF (DO_JVS(2253)) & -! JVS(2253) = Jac_FULL(245,220) - JVS(2253) = 0 +! JVS(2253) = Jac_FULL(246,279) + JVS(2253) = -B(931)-B(933) IF (DO_JVS(2254)) & -! JVS(2254) = Jac_FULL(245,236) - JVS(2254) = 0 +! JVS(2254) = Jac_FULL(246,281) + JVS(2254) = 0.535*B(905)-B(925) IF (DO_JVS(2255)) & -! JVS(2255) = Jac_FULL(245,238) +! JVS(2255) = Jac_FULL(246,282) JVS(2255) = 0 IF (DO_JVS(2256)) & -! JVS(2256) = Jac_FULL(245,239) - JVS(2256) = 0 +! JVS(2256) = Jac_FULL(246,284) + JVS(2256) = -B(909) IF (DO_JVS(2257)) & -! JVS(2257) = Jac_FULL(245,240) - JVS(2257) = 0 +! JVS(2257) = Jac_FULL(246,286) + JVS(2257) = B(950) IF (DO_JVS(2258)) & -! JVS(2258) = Jac_FULL(245,241) +! JVS(2258) = Jac_FULL(246,290) JVS(2258) = 0 IF (DO_JVS(2259)) & -! JVS(2259) = Jac_FULL(245,242) - JVS(2259) = 0 +! JVS(2259) = Jac_FULL(247,181) + JVS(2259) = B(947) IF (DO_JVS(2260)) & -! JVS(2260) = Jac_FULL(245,243) - JVS(2260) = 0 +! JVS(2260) = Jac_FULL(247,224) + JVS(2260) = 0.465*B(904) IF (DO_JVS(2261)) & -! JVS(2261) = Jac_FULL(245,245) - JVS(2261) = -B(1097)-B(1099)-B(1101)-B(1103)-B(1105) +! JVS(2261) = Jac_FULL(247,246) + JVS(2261) = -B(911) IF (DO_JVS(2262)) & -! JVS(2262) = Jac_FULL(245,247) - JVS(2262) = 0 +! JVS(2262) = Jac_FULL(247,247) + JVS(2262) = -B(906)-2*B(910)-B(912)-B(916)-B(918)-B(922)-B(926)-B(928) IF (DO_JVS(2263)) & -! JVS(2263) = Jac_FULL(245,257) - JVS(2263) = 0 +! JVS(2263) = Jac_FULL(247,261) + JVS(2263) = -B(919) IF (DO_JVS(2264)) & -! JVS(2264) = Jac_FULL(245,263) - JVS(2264) = -B(1106) +! JVS(2264) = Jac_FULL(247,266) + JVS(2264) = -B(917) IF (DO_JVS(2265)) & -! JVS(2265) = Jac_FULL(245,269) - JVS(2265) = B(1049) +! JVS(2265) = Jac_FULL(247,279) + JVS(2265) = -B(927)-B(929) IF (DO_JVS(2266)) & -! JVS(2266) = Jac_FULL(245,270) - JVS(2266) = -B(1102) +! JVS(2266) = Jac_FULL(247,281) + JVS(2266) = 0.465*B(905)-B(923) IF (DO_JVS(2267)) & -! JVS(2267) = Jac_FULL(245,277) +! JVS(2267) = Jac_FULL(247,282) JVS(2267) = 0 IF (DO_JVS(2268)) & -! JVS(2268) = Jac_FULL(245,280) - JVS(2268) = -B(1100) +! JVS(2268) = Jac_FULL(247,284) + JVS(2268) = -B(907) IF (DO_JVS(2269)) & -! JVS(2269) = Jac_FULL(245,281) - JVS(2269) = -B(1098) +! JVS(2269) = Jac_FULL(247,286) + JVS(2269) = B(948) IF (DO_JVS(2270)) & -! JVS(2270) = Jac_FULL(245,285) +! JVS(2270) = Jac_FULL(247,290) JVS(2270) = 0 IF (DO_JVS(2271)) & -! JVS(2271) = Jac_FULL(245,287) - JVS(2271) = -B(1104) +! JVS(2271) = Jac_FULL(248,79) + JVS(2271) = 0.04*B(1118) IF (DO_JVS(2272)) & -! JVS(2272) = Jac_FULL(246,110) - JVS(2272) = 0.791*B(260) +! JVS(2272) = Jac_FULL(248,80) + JVS(2272) = 0.04*B(1120) IF (DO_JVS(2273)) & -! JVS(2273) = Jac_FULL(246,130) - JVS(2273) = 0.84*B(1074) +! JVS(2273) = Jac_FULL(248,121) + JVS(2273) = B(842)+B(844) IF (DO_JVS(2274)) & -! JVS(2274) = Jac_FULL(246,131) - JVS(2274) = B(743)+B(1503) +! JVS(2274) = Jac_FULL(248,129) + JVS(2274) = 0.23*B(762)+B(1491) IF (DO_JVS(2275)) & -! JVS(2275) = Jac_FULL(246,133) - JVS(2275) = 0.488*B(1086) +! JVS(2275) = Jac_FULL(248,139) + JVS(2275) = B(1494) IF (DO_JVS(2276)) & -! JVS(2276) = Jac_FULL(246,139) - JVS(2276) = 0.25*B(1545) +! JVS(2276) = Jac_FULL(248,157) + JVS(2276) = 0.125*B(780)+B(1485) IF (DO_JVS(2277)) & -! JVS(2277) = Jac_FULL(246,149) - JVS(2277) = 0.25*B(1108) +! JVS(2277) = Jac_FULL(248,171) + JVS(2277) = 0 IF (DO_JVS(2278)) & -! JVS(2278) = Jac_FULL(246,159) - JVS(2278) = 0.571*B(1546) +! JVS(2278) = Jac_FULL(248,181) + JVS(2278) = 0.903*B(1497) IF (DO_JVS(2279)) & -! JVS(2279) = Jac_FULL(246,162) - JVS(2279) = 0.459*B(920)+0.728*B(922) +! JVS(2279) = Jac_FULL(248,186) + JVS(2279) = 0.035*B(758) IF (DO_JVS(2280)) & -! JVS(2280) = Jac_FULL(246,163) - JVS(2280) = 0.441*B(941)+0.858*B(943) +! JVS(2280) = Jac_FULL(248,224) + JVS(2280) = 0.177*B(704) IF (DO_JVS(2281)) & -! JVS(2281) = Jac_FULL(246,170) - JVS(2281) = 0.5*B(817) +! JVS(2281) = Jac_FULL(248,243) + JVS(2281) = 0.05*B(1501) IF (DO_JVS(2282)) & -! JVS(2282) = Jac_FULL(246,174) - JVS(2282) = 0 +! JVS(2282) = Jac_FULL(248,244) + JVS(2282) = B(728) IF (DO_JVS(2283)) & -! JVS(2283) = Jac_FULL(246,179) - JVS(2283) = 0.284*B(838)+0.135*B(842) +! JVS(2283) = Jac_FULL(248,245) + JVS(2283) = 0.063*B(714)+B(722)+2*B(726)+B(729)+B(734)+B(744) IF (DO_JVS(2284)) & -! JVS(2284) = Jac_FULL(246,180) - JVS(2284) = 0 +! JVS(2284) = Jac_FULL(248,246) + JVS(2284) = 0.544*B(911) IF (DO_JVS(2285)) & -! JVS(2285) = Jac_FULL(246,182) - JVS(2285) = 0 +! JVS(2285) = Jac_FULL(248,247) + JVS(2285) = 0.479*B(906)+1.737*B(910)+0.544*B(912)+0.583*B(916)+0.903*B(918)+0.903*B(922)+0.904*B(926) IF (DO_JVS(2286)) & -! JVS(2286) = Jac_FULL(246,183) - JVS(2286) = B(852)+0.65*B(856) +! JVS(2286) = Jac_FULL(248,248) + JVS(2286) = -B(981)-B(983)-B(1386)-B(1387)-B(1388) IF (DO_JVS(2287)) & -! JVS(2287) = Jac_FULL(246,184) - JVS(2287) = 0 +! JVS(2287) = Jac_FULL(248,261) + JVS(2287) = 0.903*B(919) IF (DO_JVS(2288)) & -! JVS(2288) = Jac_FULL(246,190) - JVS(2288) = 0.52*B(884)+0.8*B(888)+B(890) +! JVS(2288) = Jac_FULL(248,266) + JVS(2288) = B(735)+0.583*B(917) IF (DO_JVS(2289)) & -! JVS(2289) = Jac_FULL(246,195) - JVS(2289) = B(1524) +! JVS(2289) = Jac_FULL(248,279) + JVS(2289) = B(745)+B(843)+0.904*B(927) IF (DO_JVS(2290)) & -! JVS(2290) = Jac_FULL(246,196) - JVS(2290) = 0 +! JVS(2290) = Jac_FULL(248,281) + JVS(2290) = 0.903*B(923) IF (DO_JVS(2291)) & -! JVS(2291) = Jac_FULL(246,201) - JVS(2291) = 0.507*B(1082)+B(1088)+0.86*B(1089) +! JVS(2291) = Jac_FULL(248,282) + JVS(2291) = 0.177*B(705)-B(984) IF (DO_JVS(2292)) & -! JVS(2292) = Jac_FULL(246,202) - JVS(2292) = 0.438*B(1544) +! JVS(2292) = Jac_FULL(248,284) + JVS(2292) = 0.063*B(715)+B(845)+0.479*B(907) IF (DO_JVS(2293)) & -! JVS(2293) = Jac_FULL(246,203) - JVS(2293) = 0 +! JVS(2293) = Jac_FULL(248,286) + JVS(2293) = 0.035*B(759)+0.23*B(763)+0.125*B(781)-B(982)+0.04*B(1119)+0.04*B(1121) IF (DO_JVS(2294)) & -! JVS(2294) = Jac_FULL(246,204) - JVS(2294) = 0.16*B(162)+0.65*B(242) +! JVS(2294) = Jac_FULL(248,290) + JVS(2294) = 0 IF (DO_JVS(2295)) & -! JVS(2295) = Jac_FULL(246,210) - JVS(2295) = 0 +! JVS(2295) = Jac_FULL(249,200) + JVS(2295) = B(999) IF (DO_JVS(2296)) & -! JVS(2296) = Jac_FULL(246,211) +! JVS(2296) = Jac_FULL(249,205) JVS(2296) = 0 IF (DO_JVS(2297)) & -! JVS(2297) = Jac_FULL(246,212) +! JVS(2297) = Jac_FULL(249,224) JVS(2297) = 0 IF (DO_JVS(2298)) & -! JVS(2298) = Jac_FULL(246,216) +! JVS(2298) = Jac_FULL(249,240) JVS(2298) = 0 IF (DO_JVS(2299)) & -! JVS(2299) = Jac_FULL(246,217) - JVS(2299) = 0.042*B(1004)+0.051*B(1008) +! JVS(2299) = Jac_FULL(249,242) + JVS(2299) = 0 IF (DO_JVS(2300)) & -! JVS(2300) = Jac_FULL(246,220) +! JVS(2300) = Jac_FULL(249,243) JVS(2300) = 0 IF (DO_JVS(2301)) & -! JVS(2301) = Jac_FULL(246,221) - JVS(2301) = 0.058*B(695) +! JVS(2301) = Jac_FULL(249,244) + JVS(2301) = 0 IF (DO_JVS(2302)) & -! JVS(2302) = Jac_FULL(246,224) +! JVS(2302) = Jac_FULL(249,245) JVS(2302) = 0 IF (DO_JVS(2303)) & -! JVS(2303) = Jac_FULL(246,225) - JVS(2303) = 0.8*B(878)+0.52*B(882) +! JVS(2303) = Jac_FULL(249,246) + JVS(2303) = 0 IF (DO_JVS(2304)) & -! JVS(2304) = Jac_FULL(246,227) - JVS(2304) = 0.77*B(1046)+0.77*B(1521) +! JVS(2304) = Jac_FULL(249,247) + JVS(2304) = 0 IF (DO_JVS(2305)) & -! JVS(2305) = Jac_FULL(246,229) - JVS(2305) = 0.033*B(947)+0.071*B(949) +! JVS(2305) = Jac_FULL(249,249) + JVS(2305) = -B(1048)-B(1050)-B(1052)-B(1054)-B(1056) IF (DO_JVS(2306)) & -! JVS(2306) = Jac_FULL(246,234) +! JVS(2306) = Jac_FULL(249,251) JVS(2306) = 0 IF (DO_JVS(2307)) & -! JVS(2307) = Jac_FULL(246,236) +! JVS(2307) = Jac_FULL(249,261) JVS(2307) = 0 IF (DO_JVS(2308)) & -! JVS(2308) = Jac_FULL(246,238) - JVS(2308) = 0.45*B(1548)+0.8*B(1549) +! JVS(2308) = Jac_FULL(249,266) + JVS(2308) = -B(1057) IF (DO_JVS(2309)) & -! JVS(2309) = Jac_FULL(246,239) - JVS(2309) = 0.5*B(1542) +! JVS(2309) = Jac_FULL(249,279) + JVS(2309) = -B(1051) IF (DO_JVS(2310)) & -! JVS(2310) = Jac_FULL(246,240) - JVS(2310) = 0 +! JVS(2310) = Jac_FULL(249,281) + JVS(2310) = -B(1055) IF (DO_JVS(2311)) & -! JVS(2311) = Jac_FULL(246,241) +! JVS(2311) = Jac_FULL(249,282) JVS(2311) = 0 IF (DO_JVS(2312)) & -! JVS(2312) = Jac_FULL(246,242) - JVS(2312) = 0 +! JVS(2312) = Jac_FULL(249,284) + JVS(2312) = -B(1049) IF (DO_JVS(2313)) & -! JVS(2313) = Jac_FULL(246,243) - JVS(2313) = 0 +! JVS(2313) = Jac_FULL(249,286) + JVS(2313) = B(1000) IF (DO_JVS(2314)) & -! JVS(2314) = Jac_FULL(246,245) - JVS(2314) = 0.5*B(1097)+B(1099)+B(1103)+0.7*B(1105) +! JVS(2314) = Jac_FULL(249,290) + JVS(2314) = 0 IF (DO_JVS(2315)) & -! JVS(2315) = Jac_FULL(246,246) - JVS(2315) = -B(232)-B(234)-B(1431) +! JVS(2315) = Jac_FULL(249,291) + JVS(2315) = -B(1053) IF (DO_JVS(2316)) & -! JVS(2316) = Jac_FULL(246,247) - JVS(2316) = 0 +! JVS(2316) = Jac_FULL(250,112) + JVS(2316) = 0.791*B(243) IF (DO_JVS(2317)) & -! JVS(2317) = Jac_FULL(246,248) - JVS(2317) = 0.2*B(188) +! JVS(2317) = Jac_FULL(250,132) + JVS(2317) = 0.84*B(1025) IF (DO_JVS(2318)) & -! JVS(2318) = Jac_FULL(246,254) - JVS(2318) = 0 +! JVS(2318) = Jac_FULL(250,134) + JVS(2318) = B(694)+B(1462) IF (DO_JVS(2319)) & -! JVS(2319) = Jac_FULL(246,257) - JVS(2319) = 0.65*B(243) +! JVS(2319) = Jac_FULL(250,136) + JVS(2319) = 0.488*B(1037) IF (DO_JVS(2320)) & -! JVS(2320) = Jac_FULL(246,263) - JVS(2320) = 0.16*B(163)+0.2*B(189)+0.7*B(1106) +! JVS(2320) = Jac_FULL(250,141) + JVS(2320) = 0.25*B(1504) IF (DO_JVS(2321)) & -! JVS(2321) = Jac_FULL(246,269) - JVS(2321) = -B(233)-B(235)+0.791*B(261)+B(744)+0.5*B(818)+0.77*B(1047)+0.84*B(1075)+0.488*B(1087)+0.25*B(1109) +! JVS(2321) = Jac_FULL(250,153) + JVS(2321) = 0.25*B(1059) IF (DO_JVS(2322)) & -! JVS(2322) = Jac_FULL(246,270) - JVS(2322) = 0 +! JVS(2322) = Jac_FULL(250,164) + JVS(2322) = 0.571*B(1505) IF (DO_JVS(2323)) & -! JVS(2323) = Jac_FULL(246,277) - JVS(2323) = 0 +! JVS(2323) = Jac_FULL(250,167) + JVS(2323) = 0.459*B(871)+0.728*B(873) IF (DO_JVS(2324)) & -! JVS(2324) = Jac_FULL(246,280) - JVS(2324) = 0.058*B(696)+0.284*B(839)+B(853)+0.8*B(879)+0.8*B(889)+0.728*B(923)+0.858*B(944)+0.071*B(950)+0.051& - &*B(1009)+0.86*B(1090)+B(1100) +! JVS(2324) = Jac_FULL(250,168) + JVS(2324) = 0.441*B(892)+0.858*B(894) IF (DO_JVS(2325)) & -! JVS(2325) = Jac_FULL(246,281) - JVS(2325) = 0.135*B(843)+0.65*B(857)+0.52*B(883)+0.52*B(885)+0.459*B(921)+0.441*B(942)+0.033*B(948)+0.042*B(1005)& - &+0.507*B(1083)+0.5*B(1098) +! JVS(2325) = Jac_FULL(250,174) + JVS(2325) = 0.5*B(768) IF (DO_JVS(2326)) & -! JVS(2326) = Jac_FULL(246,282) +! JVS(2326) = Jac_FULL(250,178) JVS(2326) = 0 IF (DO_JVS(2327)) & -! JVS(2327) = Jac_FULL(246,285) - JVS(2327) = 0 +! JVS(2327) = Jac_FULL(250,182) + JVS(2327) = 0.284*B(789)+0.135*B(793) IF (DO_JVS(2328)) & -! JVS(2328) = Jac_FULL(246,287) - JVS(2328) = B(1104) +! JVS(2328) = Jac_FULL(250,183) + JVS(2328) = 0 IF (DO_JVS(2329)) & -! JVS(2329) = Jac_FULL(247,116) - JVS(2329) = B(895)+B(897) +! JVS(2329) = Jac_FULL(250,186) + JVS(2329) = 0 IF (DO_JVS(2330)) & -! JVS(2330) = Jac_FULL(247,124) - JVS(2330) = 0.14*B(813)+B(1533) +! JVS(2330) = Jac_FULL(250,187) + JVS(2330) = B(803)+0.65*B(807) IF (DO_JVS(2331)) & -! JVS(2331) = Jac_FULL(247,137) - JVS(2331) = B(1536) +! JVS(2331) = Jac_FULL(250,188) + JVS(2331) = 0 IF (DO_JVS(2332)) & -! JVS(2332) = Jac_FULL(247,158) - JVS(2332) = 0.165*B(831)+B(1527) +! JVS(2332) = Jac_FULL(250,194) + JVS(2332) = 0.52*B(835)+0.8*B(839)+B(841) IF (DO_JVS(2333)) & -! JVS(2333) = Jac_FULL(247,161) +! JVS(2333) = Jac_FULL(250,199) JVS(2333) = 0 IF (DO_JVS(2334)) & -! JVS(2334) = Jac_FULL(247,165) - JVS(2334) = 0.79*B(691) +! JVS(2334) = Jac_FULL(250,200) + JVS(2334) = B(1483) IF (DO_JVS(2335)) & -! JVS(2335) = Jac_FULL(247,177) - JVS(2335) = 0.097*B(1538) +! JVS(2335) = Jac_FULL(250,205) + JVS(2335) = 0.507*B(1033)+B(1039)+0.86*B(1040) IF (DO_JVS(2336)) & -! JVS(2336) = Jac_FULL(247,184) - JVS(2336) = 0.035*B(809) +! JVS(2336) = Jac_FULL(250,206) + JVS(2336) = 0.586*B(1503) IF (DO_JVS(2337)) & -! JVS(2337) = Jac_FULL(247,220) - JVS(2337) = 0.416*B(753) +! JVS(2337) = Jac_FULL(250,207) + JVS(2337) = 0 IF (DO_JVS(2338)) & -! JVS(2338) = Jac_FULL(247,221) - JVS(2338) = 0.308*B(699)+0.308*B(701)+0.615*B(703) +! JVS(2338) = Jac_FULL(250,209) + JVS(2338) = 0.16*B(159)+0.065*B(270) IF (DO_JVS(2339)) & -! JVS(2339) = Jac_FULL(247,239) - JVS(2339) = 0.005*B(1542) +! JVS(2339) = Jac_FULL(250,214) + JVS(2339) = 0 IF (DO_JVS(2340)) & -! JVS(2340) = Jac_FULL(247,240) - JVS(2340) = 0.048*B(955)+0.123*B(959)+0.019*B(960)+0.028*B(965)+0.097*B(967)+0.097*B(971)+0.096*B(975) +! JVS(2340) = Jac_FULL(250,215) + JVS(2340) = 0 IF (DO_JVS(2341)) & -! JVS(2341) = Jac_FULL(247,241) - JVS(2341) = 0.019*B(961) +! JVS(2341) = Jac_FULL(250,216) + JVS(2341) = 0 IF (DO_JVS(2342)) & -! JVS(2342) = Jac_FULL(247,242) - JVS(2342) = B(777) +! JVS(2342) = Jac_FULL(250,220) + JVS(2342) = 0 IF (DO_JVS(2343)) & -! JVS(2343) = Jac_FULL(247,243) - JVS(2343) = 0.063*B(767)+B(773)+2*B(776)+B(778)+B(787)+B(801) +! JVS(2343) = Jac_FULL(250,222) + JVS(2343) = 0.042*B(955)+0.051*B(959) IF (DO_JVS(2344)) & -! JVS(2344) = Jac_FULL(247,247) - JVS(2344) = -B(1034)-B(1036)-B(1038)-B(1040)-B(1430) +! JVS(2344) = Jac_FULL(250,224) + JVS(2344) = 0 IF (DO_JVS(2345)) & -! JVS(2345) = Jac_FULL(247,257) - JVS(2345) = 0.308*B(702)+0.097*B(968) +! JVS(2345) = Jac_FULL(250,225) + JVS(2345) = 0.058*B(646) IF (DO_JVS(2346)) & -! JVS(2346) = Jac_FULL(247,263) - JVS(2346) = 0.308*B(700)+B(788)+0.028*B(966) +! JVS(2346) = Jac_FULL(250,228) + JVS(2346) = 0 IF (DO_JVS(2347)) & -! JVS(2347) = Jac_FULL(247,269) - JVS(2347) = 0.035*B(810)+0.14*B(814)+0.165*B(832)-B(1035)-B(1037) +! JVS(2347) = Jac_FULL(250,229) + JVS(2347) = 0.8*B(829)+0.52*B(833) IF (DO_JVS(2348)) & -! JVS(2348) = Jac_FULL(247,277) - JVS(2348) = 0.79*B(692)+0.416*B(754)-B(1039) +! JVS(2348) = Jac_FULL(250,231) + JVS(2348) = 0.77*B(997)+0.77*B(1480) IF (DO_JVS(2349)) & -! JVS(2349) = Jac_FULL(247,280) - JVS(2349) = B(802)+B(896)+0.096*B(976) +! JVS(2349) = Jac_FULL(250,232) + JVS(2349) = 0.033*B(898)+0.071*B(900) IF (DO_JVS(2350)) & -! JVS(2350) = Jac_FULL(247,281) - JVS(2350) = 0.063*B(768)+B(898)+0.048*B(956) +! JVS(2350) = Jac_FULL(250,238) + JVS(2350) = 0 IF (DO_JVS(2351)) & -! JVS(2351) = Jac_FULL(247,285) +! JVS(2351) = Jac_FULL(250,240) JVS(2351) = 0 IF (DO_JVS(2352)) & -! JVS(2352) = Jac_FULL(247,287) - JVS(2352) = 0.615*B(704)+0.097*B(972)-B(1041) +! JVS(2352) = Jac_FULL(250,242) + JVS(2352) = 0.45*B(1507)+0.8*B(1508) IF (DO_JVS(2353)) & -! JVS(2353) = Jac_FULL(248,193) - JVS(2353) = B(62) +! JVS(2353) = Jac_FULL(250,243) + JVS(2353) = 0.5*B(1501) IF (DO_JVS(2354)) & -! JVS(2354) = Jac_FULL(248,217) +! JVS(2354) = Jac_FULL(250,244) JVS(2354) = 0 IF (DO_JVS(2355)) & -! JVS(2355) = Jac_FULL(248,219) - JVS(2355) = B(158)+B(347)+B(575) +! JVS(2355) = Jac_FULL(250,245) + JVS(2355) = 0 IF (DO_JVS(2356)) & -! JVS(2356) = Jac_FULL(248,220) +! JVS(2356) = Jac_FULL(250,246) JVS(2356) = 0 IF (DO_JVS(2357)) & -! JVS(2357) = Jac_FULL(248,227) +! JVS(2357) = Jac_FULL(250,247) JVS(2357) = 0 IF (DO_JVS(2358)) & -! JVS(2358) = Jac_FULL(248,234) - JVS(2358) = 0 +! JVS(2358) = Jac_FULL(250,249) + JVS(2358) = 0.5*B(1048)+B(1050)+B(1054)+0.7*B(1056) IF (DO_JVS(2359)) & -! JVS(2359) = Jac_FULL(248,236) - JVS(2359) = 0 +! JVS(2359) = Jac_FULL(250,250) + JVS(2359) = -B(227)-B(229)-B(1390) IF (DO_JVS(2360)) & -! JVS(2360) = Jac_FULL(248,238) +! JVS(2360) = Jac_FULL(250,251) JVS(2360) = 0 IF (DO_JVS(2361)) & -! JVS(2361) = Jac_FULL(248,239) - JVS(2361) = 0 +! JVS(2361) = Jac_FULL(250,252) + JVS(2361) = 0.2*B(185) IF (DO_JVS(2362)) & -! JVS(2362) = Jac_FULL(248,240) +! JVS(2362) = Jac_FULL(250,253) JVS(2362) = 0 IF (DO_JVS(2363)) & -! JVS(2363) = Jac_FULL(248,241) - JVS(2363) = 0 +! JVS(2363) = Jac_FULL(250,261) + JVS(2363) = 0.065*B(271) IF (DO_JVS(2364)) & -! JVS(2364) = Jac_FULL(248,242) - JVS(2364) = 0 +! JVS(2364) = Jac_FULL(250,266) + JVS(2364) = 0.16*B(160)+0.2*B(186)+0.7*B(1057) IF (DO_JVS(2365)) & -! JVS(2365) = Jac_FULL(248,243) +! JVS(2365) = Jac_FULL(250,273) JVS(2365) = 0 IF (DO_JVS(2366)) & -! JVS(2366) = Jac_FULL(248,247) - JVS(2366) = 0 +! JVS(2366) = Jac_FULL(250,279) + JVS(2366) = 0.058*B(647)+0.284*B(790)+B(804)+0.8*B(830)+0.8*B(840)+0.728*B(874)+0.858*B(895)+0.071*B(901)+0.051*B(960)& + &+0.86*B(1041)+B(1051) IF (DO_JVS(2367)) & -! JVS(2367) = Jac_FULL(248,248) - JVS(2367) = -B(133)-B(168)-B(188)-B(275)-B(287) +! JVS(2367) = Jac_FULL(250,281) + JVS(2367) = B(1055) IF (DO_JVS(2368)) & -! JVS(2368) = Jac_FULL(248,249) +! JVS(2368) = Jac_FULL(250,282) JVS(2368) = 0 IF (DO_JVS(2369)) & -! JVS(2369) = Jac_FULL(248,251) - JVS(2369) = 0 +! JVS(2369) = Jac_FULL(250,284) + JVS(2369) = 0.135*B(794)+0.65*B(808)+0.52*B(834)+0.52*B(836)+0.459*B(872)+0.441*B(893)+0.033*B(899)+0.042*B(956)+0.507& + &*B(1034)+0.5*B(1049) IF (DO_JVS(2370)) & -! JVS(2370) = Jac_FULL(248,252) - JVS(2370) = 0 +! JVS(2370) = Jac_FULL(250,286) + JVS(2370) = -B(228)-B(230)+0.791*B(244)+B(695)+0.5*B(769)+0.77*B(998)+0.84*B(1026)+0.488*B(1038)+0.25*B(1060) IF (DO_JVS(2371)) & -! JVS(2371) = Jac_FULL(248,253) +! JVS(2371) = Jac_FULL(250,290) JVS(2371) = 0 IF (DO_JVS(2372)) & -! JVS(2372) = Jac_FULL(248,257) - JVS(2372) = -B(276)-B(288) +! JVS(2372) = Jac_FULL(250,291) + JVS(2372) = 0 IF (DO_JVS(2373)) & -! JVS(2373) = Jac_FULL(248,263) - JVS(2373) = -B(189) +! JVS(2373) = Jac_FULL(251,123) + JVS(2373) = B(846)+B(848) IF (DO_JVS(2374)) & -! JVS(2374) = Jac_FULL(248,269) - JVS(2374) = B(63)+B(159) +! JVS(2374) = Jac_FULL(251,127) + JVS(2374) = 0.14*B(764)+B(1492) IF (DO_JVS(2375)) & -! JVS(2375) = Jac_FULL(248,270) - JVS(2375) = 0 +! JVS(2375) = Jac_FULL(251,140) + JVS(2375) = B(1495) IF (DO_JVS(2376)) & -! JVS(2376) = Jac_FULL(248,277) - JVS(2376) = 0 +! JVS(2376) = Jac_FULL(251,162) + JVS(2376) = 0.165*B(782)+B(1486) IF (DO_JVS(2377)) & -! JVS(2377) = Jac_FULL(248,280) - JVS(2377) = -B(134) +! JVS(2377) = Jac_FULL(251,165) + JVS(2377) = 0 IF (DO_JVS(2378)) & -! JVS(2378) = Jac_FULL(248,281) - JVS(2378) = -B(169) +! JVS(2378) = Jac_FULL(251,170) + JVS(2378) = 0.79*B(642) IF (DO_JVS(2379)) & -! JVS(2379) = Jac_FULL(248,282) - JVS(2379) = B(348) +! JVS(2379) = Jac_FULL(251,181) + JVS(2379) = 0.097*B(1497) IF (DO_JVS(2380)) & -! JVS(2380) = Jac_FULL(248,285) - JVS(2380) = B(576) +! JVS(2380) = Jac_FULL(251,188) + JVS(2380) = 0.035*B(760) IF (DO_JVS(2381)) & -! JVS(2381) = Jac_FULL(248,287) - JVS(2381) = 0 +! JVS(2381) = Jac_FULL(251,224) + JVS(2381) = 0.416*B(704) IF (DO_JVS(2382)) & -! JVS(2382) = Jac_FULL(249,150) - JVS(2382) = 0.62*B(681) +! JVS(2382) = Jac_FULL(251,225) + JVS(2382) = 0.308*B(650)+0.308*B(652)+0.615*B(654) IF (DO_JVS(2383)) & -! JVS(2383) = Jac_FULL(249,151) - JVS(2383) = 0.62*B(683) +! JVS(2383) = Jac_FULL(251,243) + JVS(2383) = 0.005*B(1501) IF (DO_JVS(2384)) & -! JVS(2384) = Jac_FULL(249,165) - JVS(2384) = 0.42*B(691) +! JVS(2384) = Jac_FULL(251,244) + JVS(2384) = 0.063*B(718)+B(724)+2*B(727)+B(728)+B(738)+B(752) IF (DO_JVS(2385)) & -! JVS(2385) = Jac_FULL(249,222) - JVS(2385) = B(176)+B(182) +! JVS(2385) = Jac_FULL(251,245) + JVS(2385) = B(729) IF (DO_JVS(2386)) & -! JVS(2386) = Jac_FULL(249,234) - JVS(2386) = 0 +! JVS(2386) = Jac_FULL(251,246) + JVS(2386) = 0.019*B(911) IF (DO_JVS(2387)) & -! JVS(2387) = Jac_FULL(249,249) - JVS(2387) = -B(135)-B(170)-B(190)-B(277)-B(289) +! JVS(2387) = Jac_FULL(251,247) + JVS(2387) = 0.048*B(906)+0.123*B(910)+0.019*B(912)+0.028*B(916)+0.097*B(918)+0.097*B(922)+0.096*B(926) IF (DO_JVS(2388)) & -! JVS(2388) = Jac_FULL(249,251) - JVS(2388) = 0 +! JVS(2388) = Jac_FULL(251,251) + JVS(2388) = -B(985)-B(987)-B(989)-B(991)-B(1389) IF (DO_JVS(2389)) & -! JVS(2389) = Jac_FULL(249,252) - JVS(2389) = 0 +! JVS(2389) = Jac_FULL(251,261) + JVS(2389) = 0.308*B(653)+0.097*B(919) IF (DO_JVS(2390)) & -! JVS(2390) = Jac_FULL(249,257) - JVS(2390) = -B(278)-B(290) +! JVS(2390) = Jac_FULL(251,266) + JVS(2390) = 0.308*B(651)+B(739)+0.028*B(917) IF (DO_JVS(2391)) & -! JVS(2391) = Jac_FULL(249,263) - JVS(2391) = -B(191) +! JVS(2391) = Jac_FULL(251,279) + JVS(2391) = B(753)+B(847)+0.096*B(927) IF (DO_JVS(2392)) & -! JVS(2392) = Jac_FULL(249,269) - JVS(2392) = B(177) +! JVS(2392) = Jac_FULL(251,281) + JVS(2392) = 0.615*B(655)+0.097*B(923)-B(992) IF (DO_JVS(2393)) & -! JVS(2393) = Jac_FULL(249,277) - JVS(2393) = 0.62*B(682)+0.62*B(684)+0.42*B(692) +! JVS(2393) = Jac_FULL(251,282) + JVS(2393) = 0.79*B(643)+0.416*B(705)-B(990) IF (DO_JVS(2394)) & -! JVS(2394) = Jac_FULL(249,280) - JVS(2394) = -B(136) +! JVS(2394) = Jac_FULL(251,284) + JVS(2394) = 0.063*B(719)+B(849)+0.048*B(907) IF (DO_JVS(2395)) & -! JVS(2395) = Jac_FULL(249,281) - JVS(2395) = -B(171) +! JVS(2395) = Jac_FULL(251,286) + JVS(2395) = 0.035*B(761)+0.14*B(765)+0.165*B(783)-B(986)-B(988) IF (DO_JVS(2396)) & -! JVS(2396) = Jac_FULL(249,287) - JVS(2396) = B(183) +! JVS(2396) = Jac_FULL(251,290) + JVS(2396) = 0 IF (DO_JVS(2397)) & -! JVS(2397) = Jac_FULL(250,49) - JVS(2397) = B(153) +! JVS(2397) = Jac_FULL(252,196) + JVS(2397) = 0.7*B(61) IF (DO_JVS(2398)) & -! JVS(2398) = Jac_FULL(250,94) - JVS(2398) = B(258) +! JVS(2398) = Jac_FULL(252,221) + JVS(2398) = B(155)+B(318)+B(534) IF (DO_JVS(2399)) & -! JVS(2399) = Jac_FULL(250,145) - JVS(2399) = 0.33*B(1237) +! JVS(2399) = Jac_FULL(252,222) + JVS(2399) = 0 IF (DO_JVS(2400)) & -! JVS(2400) = Jac_FULL(250,155) - JVS(2400) = 0.33*B(1232) +! JVS(2400) = Jac_FULL(252,224) + JVS(2400) = 0 IF (DO_JVS(2401)) & -! JVS(2401) = Jac_FULL(250,206) +! JVS(2401) = Jac_FULL(252,231) JVS(2401) = 0 IF (DO_JVS(2402)) & -! JVS(2402) = Jac_FULL(250,222) - JVS(2402) = 0.15*B(1421) +! JVS(2402) = Jac_FULL(252,238) + JVS(2402) = 0 IF (DO_JVS(2403)) & -! JVS(2403) = Jac_FULL(250,234) +! JVS(2403) = Jac_FULL(252,240) JVS(2403) = 0 IF (DO_JVS(2404)) & -! JVS(2404) = Jac_FULL(250,244) - JVS(2404) = B(1429) +! JVS(2404) = Jac_FULL(252,242) + JVS(2404) = 0 IF (DO_JVS(2405)) & -! JVS(2405) = Jac_FULL(250,249) +! JVS(2405) = Jac_FULL(252,243) JVS(2405) = 0 IF (DO_JVS(2406)) & -! JVS(2406) = Jac_FULL(250,250) - JVS(2406) = -B(151)-B(154)-B(212)-B(244)-B(246)-B(305) +! JVS(2406) = Jac_FULL(252,244) + JVS(2406) = 0 IF (DO_JVS(2407)) & -! JVS(2407) = Jac_FULL(250,251) +! JVS(2407) = Jac_FULL(252,245) JVS(2407) = 0 IF (DO_JVS(2408)) & -! JVS(2408) = Jac_FULL(250,252) +! JVS(2408) = Jac_FULL(252,246) JVS(2408) = 0 IF (DO_JVS(2409)) & -! JVS(2409) = Jac_FULL(250,255) - JVS(2409) = B(149)+B(156) +! JVS(2409) = Jac_FULL(252,247) + JVS(2409) = 0 IF (DO_JVS(2410)) & -! JVS(2410) = Jac_FULL(250,257) - JVS(2410) = -B(306) +! JVS(2410) = Jac_FULL(252,251) + JVS(2410) = 0 IF (DO_JVS(2411)) & -! JVS(2411) = Jac_FULL(250,263) - JVS(2411) = -B(245)-B(247) +! JVS(2411) = Jac_FULL(252,252) + JVS(2411) = -B(130)-B(165)-B(185)-B(256) IF (DO_JVS(2412)) & -! JVS(2412) = Jac_FULL(250,269) - JVS(2412) = B(150)+B(259)+0.33*B(1233)+0.33*B(1238) +! JVS(2412) = Jac_FULL(252,254) + JVS(2412) = 0 IF (DO_JVS(2413)) & -! JVS(2413) = Jac_FULL(250,270) - JVS(2413) = -B(152) +! JVS(2413) = Jac_FULL(252,256) + JVS(2413) = 0 IF (DO_JVS(2414)) & -! JVS(2414) = Jac_FULL(250,277) +! JVS(2414) = Jac_FULL(252,257) JVS(2414) = 0 IF (DO_JVS(2415)) & -! JVS(2415) = Jac_FULL(250,280) - JVS(2415) = -B(155) +! JVS(2415) = Jac_FULL(252,258) + JVS(2415) = 0 IF (DO_JVS(2416)) & -! JVS(2416) = Jac_FULL(250,281) - JVS(2416) = -B(213) +! JVS(2416) = Jac_FULL(252,261) + JVS(2416) = -B(257) IF (DO_JVS(2417)) & -! JVS(2417) = Jac_FULL(250,285) - JVS(2417) = 0 +! JVS(2417) = Jac_FULL(252,266) + JVS(2417) = -B(186) IF (DO_JVS(2418)) & -! JVS(2418) = Jac_FULL(250,287) - JVS(2418) = B(157) +! JVS(2418) = Jac_FULL(252,273) + JVS(2418) = B(319) IF (DO_JVS(2419)) & -! JVS(2419) = Jac_FULL(251,198) - JVS(2419) = B(145) +! JVS(2419) = Jac_FULL(252,279) + JVS(2419) = -B(131) IF (DO_JVS(2420)) & -! JVS(2420) = Jac_FULL(251,206) - JVS(2420) = 0.5*B(1224)+0.5*B(1226) +! JVS(2420) = Jac_FULL(252,281) + JVS(2420) = 0 IF (DO_JVS(2421)) & -! JVS(2421) = Jac_FULL(251,249) +! JVS(2421) = Jac_FULL(252,282) JVS(2421) = 0 IF (DO_JVS(2422)) & -! JVS(2422) = Jac_FULL(251,251) - JVS(2422) = -B(131)-B(166)-B(186)-B(281)-B(291) +! JVS(2422) = Jac_FULL(252,284) + JVS(2422) = -B(166) IF (DO_JVS(2423)) & -! JVS(2423) = Jac_FULL(251,252) - JVS(2423) = 0 +! JVS(2423) = Jac_FULL(252,286) + JVS(2423) = 0.7*B(62)+B(156) IF (DO_JVS(2424)) & -! JVS(2424) = Jac_FULL(251,257) - JVS(2424) = -B(282)-B(292) +! JVS(2424) = Jac_FULL(252,290) + JVS(2424) = B(535) IF (DO_JVS(2425)) & -! JVS(2425) = Jac_FULL(251,263) - JVS(2425) = -B(187) +! JVS(2425) = Jac_FULL(252,291) + JVS(2425) = 0 IF (DO_JVS(2426)) & -! JVS(2426) = Jac_FULL(251,269) - JVS(2426) = B(146)+0.5*B(1225) +! JVS(2426) = Jac_FULL(253,170) + JVS(2426) = 0.46*B(642) IF (DO_JVS(2427)) & -! JVS(2427) = Jac_FULL(251,270) - JVS(2427) = 0 +! JVS(2427) = Jac_FULL(253,225) + JVS(2427) = 0.289*B(646)+0.192*B(650)+0.192*B(652)+0.385*B(654) IF (DO_JVS(2428)) & -! JVS(2428) = Jac_FULL(251,277) - JVS(2428) = 0 +! JVS(2428) = Jac_FULL(253,248) + JVS(2428) = B(1386) IF (DO_JVS(2429)) & -! JVS(2429) = Jac_FULL(251,280) - JVS(2429) = -B(132) +! JVS(2429) = Jac_FULL(253,253) + JVS(2429) = -B(209)-B(211)-B(217)-B(540)-B(542) IF (DO_JVS(2430)) & -! JVS(2430) = Jac_FULL(251,281) - JVS(2430) = -B(167) +! JVS(2430) = Jac_FULL(253,261) + JVS(2430) = 0.192*B(653) IF (DO_JVS(2431)) & -! JVS(2431) = Jac_FULL(251,287) - JVS(2431) = 0.5*B(1227) +! JVS(2431) = Jac_FULL(253,266) + JVS(2431) = 0.192*B(651) IF (DO_JVS(2432)) & -! JVS(2432) = Jac_FULL(252,91) - JVS(2432) = 0.209*B(256) +! JVS(2432) = Jac_FULL(253,273) + JVS(2432) = -B(543) IF (DO_JVS(2433)) & -! JVS(2433) = Jac_FULL(252,112) - JVS(2433) = B(125)+B(143)+B(579) +! JVS(2433) = Jac_FULL(253,279) + JVS(2433) = 0.289*B(647) IF (DO_JVS(2434)) & -! JVS(2434) = Jac_FULL(252,118) - JVS(2434) = 0.44*B(705) +! JVS(2434) = Jac_FULL(253,281) + JVS(2434) = -B(218)+0.385*B(655) IF (DO_JVS(2435)) & -! JVS(2435) = Jac_FULL(252,145) - JVS(2435) = 0.2*B(1241) +! JVS(2435) = Jac_FULL(253,282) + JVS(2435) = -B(212)+0.46*B(643) IF (DO_JVS(2436)) & -! JVS(2436) = Jac_FULL(252,221) +! JVS(2436) = Jac_FULL(253,284) JVS(2436) = 0 IF (DO_JVS(2437)) & -! JVS(2437) = Jac_FULL(252,234) - JVS(2437) = 0 +! JVS(2437) = Jac_FULL(253,286) + JVS(2437) = -B(210) IF (DO_JVS(2438)) & -! JVS(2438) = Jac_FULL(252,251) - JVS(2438) = 0.15*B(186)+0.3*B(281) +! JVS(2438) = Jac_FULL(253,290) + JVS(2438) = -B(541) IF (DO_JVS(2439)) & -! JVS(2439) = Jac_FULL(252,252) - JVS(2439) = -B(127)-B(129)-B(164)-B(184)-B(273)-B(285) +! JVS(2439) = Jac_FULL(254,154) + JVS(2439) = 0.62*B(632) IF (DO_JVS(2440)) & -! JVS(2440) = Jac_FULL(252,257) - JVS(2440) = -B(274)+0.3*B(282)-B(286) +! JVS(2440) = Jac_FULL(254,155) + JVS(2440) = 0.62*B(634) IF (DO_JVS(2441)) & -! JVS(2441) = Jac_FULL(252,263) - JVS(2441) = -B(185)+0.15*B(187) +! JVS(2441) = Jac_FULL(254,170) + JVS(2441) = 0.42*B(642) IF (DO_JVS(2442)) & -! JVS(2442) = Jac_FULL(252,269) - JVS(2442) = B(126)+0.209*B(257)+0.44*B(706) +! JVS(2442) = Jac_FULL(254,226) + JVS(2442) = B(173)+B(179) IF (DO_JVS(2443)) & -! JVS(2443) = Jac_FULL(252,270) +! JVS(2443) = Jac_FULL(254,238) JVS(2443) = 0 IF (DO_JVS(2444)) & -! JVS(2444) = Jac_FULL(252,277) - JVS(2444) = 0 +! JVS(2444) = Jac_FULL(254,254) + JVS(2444) = -B(132)-B(167)-B(187)-B(258) IF (DO_JVS(2445)) & -! JVS(2445) = Jac_FULL(252,280) - JVS(2445) = -B(128)-B(130) +! JVS(2445) = Jac_FULL(254,256) + JVS(2445) = 0 IF (DO_JVS(2446)) & -! JVS(2446) = Jac_FULL(252,281) - JVS(2446) = -B(165) +! JVS(2446) = Jac_FULL(254,257) + JVS(2446) = 0 IF (DO_JVS(2447)) & -! JVS(2447) = Jac_FULL(252,285) - JVS(2447) = B(580) +! JVS(2447) = Jac_FULL(254,261) + JVS(2447) = -B(259) IF (DO_JVS(2448)) & -! JVS(2448) = Jac_FULL(252,287) - JVS(2448) = B(144) +! JVS(2448) = Jac_FULL(254,266) + JVS(2448) = -B(188) IF (DO_JVS(2449)) & -! JVS(2449) = Jac_FULL(253,93) - JVS(2449) = 0.209*B(254) +! JVS(2449) = Jac_FULL(254,279) + JVS(2449) = -B(133) IF (DO_JVS(2450)) & -! JVS(2450) = Jac_FULL(253,121) - JVS(2450) = B(115)+B(571) +! JVS(2450) = Jac_FULL(254,281) + JVS(2450) = B(180) IF (DO_JVS(2451)) & -! JVS(2451) = Jac_FULL(253,198) - JVS(2451) = 0.18*B(1439) +! JVS(2451) = Jac_FULL(254,282) + JVS(2451) = 0.62*B(633)+0.62*B(635)+0.42*B(643) IF (DO_JVS(2452)) & -! JVS(2452) = Jac_FULL(253,222) - JVS(2452) = 0.23*B(1421) +! JVS(2452) = Jac_FULL(254,284) + JVS(2452) = -B(168) IF (DO_JVS(2453)) & -! JVS(2453) = Jac_FULL(253,234) - JVS(2453) = 0 +! JVS(2453) = Jac_FULL(254,286) + JVS(2453) = B(174) IF (DO_JVS(2454)) & -! JVS(2454) = Jac_FULL(253,249) - JVS(2454) = 0 +! JVS(2454) = Jac_FULL(255,50) + JVS(2454) = B(150) IF (DO_JVS(2455)) & -! JVS(2455) = Jac_FULL(253,250) - JVS(2455) = 0.27*B(154)+0.12*B(212)+0.27*B(244)+0.27*B(305) +! JVS(2455) = Jac_FULL(255,106) + JVS(2455) = B(241) IF (DO_JVS(2456)) & -! JVS(2456) = Jac_FULL(253,251) - JVS(2456) = 0 +! JVS(2456) = Jac_FULL(255,148) + JVS(2456) = 0.33*B(1188) IF (DO_JVS(2457)) & -! JVS(2457) = Jac_FULL(253,252) - JVS(2457) = 0.18*B(127)+0.09*B(184)+0.18*B(273) +! JVS(2457) = Jac_FULL(255,159) + JVS(2457) = 0.33*B(1183) IF (DO_JVS(2458)) & -! JVS(2458) = Jac_FULL(253,253) - JVS(2458) = -B(137)-B(139)-B(172)-B(192)-B(279)-B(295) +! JVS(2458) = Jac_FULL(255,210) + JVS(2458) = 0 IF (DO_JVS(2459)) & -! JVS(2459) = Jac_FULL(253,255) - JVS(2459) = 0.27*B(1418) +! JVS(2459) = Jac_FULL(255,226) + JVS(2459) = 0.15*B(1380) IF (DO_JVS(2460)) & -! JVS(2460) = Jac_FULL(253,257) - JVS(2460) = 0.18*B(274)-B(280)-B(296)+0.27*B(306) +! JVS(2460) = Jac_FULL(255,238) + JVS(2460) = 0 IF (DO_JVS(2461)) & -! JVS(2461) = Jac_FULL(253,263) - JVS(2461) = 0.09*B(185)-B(193)+0.27*B(245) +! JVS(2461) = Jac_FULL(255,248) + JVS(2461) = B(1388) IF (DO_JVS(2462)) & -! JVS(2462) = Jac_FULL(253,269) - JVS(2462) = B(116)+0.209*B(255) +! JVS(2462) = Jac_FULL(255,254) + JVS(2462) = 0 IF (DO_JVS(2463)) & -! JVS(2463) = Jac_FULL(253,270) - JVS(2463) = 0 +! JVS(2463) = Jac_FULL(255,255) + JVS(2463) = -B(148)-B(151)-B(207)-B(274)-B(276) IF (DO_JVS(2464)) & -! JVS(2464) = Jac_FULL(253,277) +! JVS(2464) = Jac_FULL(255,256) JVS(2464) = 0 IF (DO_JVS(2465)) & -! JVS(2465) = Jac_FULL(253,280) - JVS(2465) = 0.18*B(128)-B(138)-B(140)+0.27*B(155) +! JVS(2465) = Jac_FULL(255,257) + JVS(2465) = 0 IF (DO_JVS(2466)) & -! JVS(2466) = Jac_FULL(253,281) - JVS(2466) = -B(173)+0.12*B(213) +! JVS(2466) = Jac_FULL(255,259) + JVS(2466) = B(146)+B(153) IF (DO_JVS(2467)) & -! JVS(2467) = Jac_FULL(253,282) - JVS(2467) = 0 +! JVS(2467) = Jac_FULL(255,261) + JVS(2467) = -B(275) IF (DO_JVS(2468)) & -! JVS(2468) = Jac_FULL(253,285) - JVS(2468) = B(572) +! JVS(2468) = Jac_FULL(255,266) + JVS(2468) = -B(277) IF (DO_JVS(2469)) & -! JVS(2469) = Jac_FULL(253,287) - JVS(2469) = 0 +! JVS(2469) = Jac_FULL(255,279) + JVS(2469) = -B(152) IF (DO_JVS(2470)) & -! JVS(2470) = Jac_FULL(254,165) - JVS(2470) = 0.46*B(691) +! JVS(2470) = Jac_FULL(255,281) + JVS(2470) = B(154) IF (DO_JVS(2471)) & -! JVS(2471) = Jac_FULL(254,221) - JVS(2471) = 0.289*B(695)+0.192*B(699)+0.192*B(701)+0.385*B(703) +! JVS(2471) = Jac_FULL(255,282) + JVS(2471) = 0 IF (DO_JVS(2472)) & -! JVS(2472) = Jac_FULL(254,244) - JVS(2472) = B(1427) +! JVS(2472) = Jac_FULL(255,284) + JVS(2472) = -B(208) IF (DO_JVS(2473)) & -! JVS(2473) = Jac_FULL(254,254) - JVS(2473) = -B(214)-B(216)-B(222)-B(581)-B(583) +! JVS(2473) = Jac_FULL(255,286) + JVS(2473) = B(147)+B(242)+0.33*B(1184)+0.33*B(1189) IF (DO_JVS(2474)) & -! JVS(2474) = Jac_FULL(254,257) - JVS(2474) = 0.192*B(702) +! JVS(2474) = Jac_FULL(255,290) + JVS(2474) = 0 IF (DO_JVS(2475)) & -! JVS(2475) = Jac_FULL(254,263) - JVS(2475) = 0.192*B(700) +! JVS(2475) = Jac_FULL(255,291) + JVS(2475) = -B(149) IF (DO_JVS(2476)) & -! JVS(2476) = Jac_FULL(254,269) - JVS(2476) = -B(215) +! JVS(2476) = Jac_FULL(256,93) + JVS(2476) = 0.21*B(239) IF (DO_JVS(2477)) & -! JVS(2477) = Jac_FULL(254,277) - JVS(2477) = -B(217)+0.46*B(692) +! JVS(2477) = Jac_FULL(256,114) + JVS(2477) = B(122)+B(140)+B(538) IF (DO_JVS(2478)) & -! JVS(2478) = Jac_FULL(254,280) - JVS(2478) = 0.289*B(696) +! JVS(2478) = Jac_FULL(256,119) + JVS(2478) = 0.44*B(656) IF (DO_JVS(2479)) & -! JVS(2479) = Jac_FULL(254,281) - JVS(2479) = 0 +! JVS(2479) = Jac_FULL(256,148) + JVS(2479) = 0.2*B(1192) IF (DO_JVS(2480)) & -! JVS(2480) = Jac_FULL(254,282) - JVS(2480) = -B(584) +! JVS(2480) = Jac_FULL(256,225) + JVS(2480) = 0 IF (DO_JVS(2481)) & -! JVS(2481) = Jac_FULL(254,285) - JVS(2481) = -B(582) +! JVS(2481) = Jac_FULL(256,238) + JVS(2481) = 0 IF (DO_JVS(2482)) & -! JVS(2482) = Jac_FULL(254,287) - JVS(2482) = -B(223)+0.385*B(704) +! JVS(2482) = Jac_FULL(256,256) + JVS(2482) = -B(124)-B(126)-B(161)-B(181)-B(254) IF (DO_JVS(2483)) & -! JVS(2483) = Jac_FULL(255,89) - JVS(2483) = B(751)+B(1511) +! JVS(2483) = Jac_FULL(256,257) + JVS(2483) = 0.15*B(183)+0.27*B(262) IF (DO_JVS(2484)) & -! JVS(2484) = Jac_FULL(255,91) - JVS(2484) = 0.791*B(256)+B(1436) +! JVS(2484) = Jac_FULL(256,261) + JVS(2484) = -B(255)+0.27*B(263) IF (DO_JVS(2485)) & -! JVS(2485) = Jac_FULL(255,92) - JVS(2485) = 0.64*B(252)+B(1434) +! JVS(2485) = Jac_FULL(256,266) + JVS(2485) = -B(182)+0.15*B(184) IF (DO_JVS(2486)) & -! JVS(2486) = Jac_FULL(255,111) - JVS(2486) = B(1432) +! JVS(2486) = Jac_FULL(256,279) + JVS(2486) = -B(125)-B(127) IF (DO_JVS(2487)) & -! JVS(2487) = Jac_FULL(255,118) - JVS(2487) = 0.08*B(705)+B(1499) +! JVS(2487) = Jac_FULL(256,281) + JVS(2487) = B(141) IF (DO_JVS(2488)) & -! JVS(2488) = Jac_FULL(255,145) - JVS(2488) = 1.2*B(1241) +! JVS(2488) = Jac_FULL(256,282) + JVS(2488) = 0 IF (DO_JVS(2489)) & -! JVS(2489) = Jac_FULL(255,150) - JVS(2489) = 0.65*B(681) +! JVS(2489) = Jac_FULL(256,284) + JVS(2489) = -B(162) IF (DO_JVS(2490)) & -! JVS(2490) = Jac_FULL(255,151) - JVS(2490) = 0.65*B(683) +! JVS(2490) = Jac_FULL(256,286) + JVS(2490) = B(123)+0.21*B(240)+0.44*B(657) IF (DO_JVS(2491)) & -! JVS(2491) = Jac_FULL(255,154) - JVS(2491) = B(198) +! JVS(2491) = Jac_FULL(256,290) + JVS(2491) = B(539) IF (DO_JVS(2492)) & -! JVS(2492) = Jac_FULL(255,155) - JVS(2492) = 1.2*B(1236) +! JVS(2492) = Jac_FULL(257,202) + JVS(2492) = B(142) IF (DO_JVS(2493)) & -! JVS(2493) = Jac_FULL(255,196) - JVS(2493) = B(1502) +! JVS(2493) = Jac_FULL(257,210) + JVS(2493) = 0.5*B(1175)+0.5*B(1177) IF (DO_JVS(2494)) & -! JVS(2494) = Jac_FULL(255,197) - JVS(2494) = 0.25*B(194)+B(293) +! JVS(2494) = Jac_FULL(257,254) + JVS(2494) = 0 IF (DO_JVS(2495)) & -! JVS(2495) = Jac_FULL(255,198) - JVS(2495) = 0.13*B(1439) +! JVS(2495) = Jac_FULL(257,256) + JVS(2495) = 0 IF (DO_JVS(2496)) & -! JVS(2496) = Jac_FULL(255,204) - JVS(2496) = 0.09*B(162)+0.35*B(242) +! JVS(2496) = Jac_FULL(257,257) + JVS(2496) = -B(128)-B(163)-B(183)-B(262) IF (DO_JVS(2497)) & -! JVS(2497) = Jac_FULL(255,206) - JVS(2497) = 0 +! JVS(2497) = Jac_FULL(257,261) + JVS(2497) = -B(263) IF (DO_JVS(2498)) & -! JVS(2498) = Jac_FULL(255,211) - JVS(2498) = 0.64*B(728) +! JVS(2498) = Jac_FULL(257,266) + JVS(2498) = -B(184) IF (DO_JVS(2499)) & -! JVS(2499) = Jac_FULL(255,212) - JVS(2499) = 1.24*B(709)+0.93*B(717)+1.24*B(721)+1.24*B(725)+0.64*B(729)+1.21*B(730) +! JVS(2499) = Jac_FULL(257,279) + JVS(2499) = -B(129) IF (DO_JVS(2500)) & -! JVS(2500) = Jac_FULL(255,221) - JVS(2500) = 0.491*B(695) +! JVS(2500) = Jac_FULL(257,281) + JVS(2500) = 0.5*B(1178) IF (DO_JVS(2501)) & -! JVS(2501) = Jac_FULL(255,233) - JVS(2501) = B(119)+0.75*B(160)+B(236)+B(240) +! JVS(2501) = Jac_FULL(257,282) + JVS(2501) = 0 IF (DO_JVS(2502)) & -! JVS(2502) = Jac_FULL(255,234) - JVS(2502) = 0.43*B(671)+0.75*B(675)+B(677)+B(679) +! JVS(2502) = Jac_FULL(257,284) + JVS(2502) = -B(164) IF (DO_JVS(2503)) & -! JVS(2503) = Jac_FULL(255,249) - JVS(2503) = 0 +! JVS(2503) = Jac_FULL(257,286) + JVS(2503) = B(143)+0.5*B(1176) IF (DO_JVS(2504)) & -! JVS(2504) = Jac_FULL(255,250) +! JVS(2504) = Jac_FULL(257,290) JVS(2504) = 0 IF (DO_JVS(2505)) & -! JVS(2505) = Jac_FULL(255,251) - JVS(2505) = 0.57*B(131)+0.54*B(186)+0.57*B(281)+B(291) +! JVS(2505) = Jac_FULL(257,291) + JVS(2505) = 0 IF (DO_JVS(2506)) & -! JVS(2506) = Jac_FULL(255,252) - JVS(2506) = 0.14*B(127)+0.07*B(184)+0.13*B(273) +! JVS(2506) = Jac_FULL(258,95) + JVS(2506) = 0.209*B(237) IF (DO_JVS(2507)) & -! JVS(2507) = Jac_FULL(255,253) - JVS(2507) = 0 +! JVS(2507) = Jac_FULL(258,124) + JVS(2507) = B(112)+B(530) IF (DO_JVS(2508)) & -! JVS(2508) = Jac_FULL(255,254) - JVS(2508) = 0 +! JVS(2508) = Jac_FULL(258,202) + JVS(2508) = 0.19*B(1398) IF (DO_JVS(2509)) & -! JVS(2509) = Jac_FULL(255,255) - JVS(2509) = -B(149)-B(156)-B(1418) +! JVS(2509) = Jac_FULL(258,226) + JVS(2509) = 0.23*B(1380) IF (DO_JVS(2510)) & -! JVS(2510) = Jac_FULL(255,257) - JVS(2510) = B(237)+B(241)+0.35*B(243)+0.13*B(274)+0.57*B(282)+B(292)+B(294)+B(678)+1.24*B(722) +! JVS(2510) = Jac_FULL(258,238) + JVS(2510) = 0 IF (DO_JVS(2511)) & -! JVS(2511) = Jac_FULL(255,263) - JVS(2511) = 0.75*B(161)+0.09*B(163)+0.07*B(185)+0.54*B(187)+0.25*B(195)+0.75*B(676)+0.93*B(718) +! JVS(2511) = Jac_FULL(258,254) + JVS(2511) = 0 IF (DO_JVS(2512)) & -! JVS(2512) = Jac_FULL(255,269) - JVS(2512) = -B(150)+B(199)+0.64*B(253)+0.791*B(257)+0.08*B(706)+B(752) +! JVS(2512) = Jac_FULL(258,255) + JVS(2512) = 0.27*B(151)+0.12*B(207)+0.27*B(274)+0.27*B(276) IF (DO_JVS(2513)) & -! JVS(2513) = Jac_FULL(255,270) - JVS(2513) = 0 +! JVS(2513) = Jac_FULL(258,256) + JVS(2513) = 0.19*B(124)+0.09*B(181)+0.162*B(254) IF (DO_JVS(2514)) & -! JVS(2514) = Jac_FULL(255,277) - JVS(2514) = 0.65*B(682)+0.65*B(684) +! JVS(2514) = Jac_FULL(258,257) + JVS(2514) = 0 IF (DO_JVS(2515)) & -! JVS(2515) = Jac_FULL(255,280) - JVS(2515) = B(120)+0.14*B(128)+0.57*B(132)+0.43*B(672)+0.491*B(696)+1.24*B(710) +! JVS(2515) = Jac_FULL(258,258) + JVS(2515) = -B(134)-B(136)-B(169)-B(189)-B(260) IF (DO_JVS(2516)) & -! JVS(2516) = Jac_FULL(255,281) - JVS(2516) = 0 +! JVS(2516) = Jac_FULL(258,259) + JVS(2516) = 0.27*B(1377) IF (DO_JVS(2517)) & -! JVS(2517) = Jac_FULL(255,282) - JVS(2517) = 0 +! JVS(2517) = Jac_FULL(258,261) + JVS(2517) = 0.162*B(255)-B(261)+0.27*B(275) IF (DO_JVS(2518)) & -! JVS(2518) = Jac_FULL(255,285) - JVS(2518) = 0 +! JVS(2518) = Jac_FULL(258,266) + JVS(2518) = 0.09*B(182)-B(190)+0.27*B(277) IF (DO_JVS(2519)) & -! JVS(2519) = Jac_FULL(255,287) - JVS(2519) = -B(157)+B(680)+1.24*B(726) +! JVS(2519) = Jac_FULL(258,273) + JVS(2519) = 0 IF (DO_JVS(2520)) & -! JVS(2520) = Jac_FULL(256,125) - JVS(2520) = B(333) +! JVS(2520) = Jac_FULL(258,279) + JVS(2520) = 0.19*B(125)-B(135)-B(137)+0.27*B(152) IF (DO_JVS(2521)) & -! JVS(2521) = Jac_FULL(256,172) - JVS(2521) = B(1274) +! JVS(2521) = Jac_FULL(258,281) + JVS(2521) = 0 IF (DO_JVS(2522)) & -! JVS(2522) = Jac_FULL(256,256) - JVS(2522) = -B(335)-B(1314)-B(1316)-B(1318)-B(1320)-B(1322)-B(1324)-B(1326)-B(1443) +! JVS(2522) = Jac_FULL(258,282) + JVS(2522) = 0 IF (DO_JVS(2523)) & -! JVS(2523) = Jac_FULL(256,269) - JVS(2523) = B(334) +! JVS(2523) = Jac_FULL(258,284) + JVS(2523) = -B(170)+0.12*B(208) IF (DO_JVS(2524)) & -! JVS(2524) = Jac_FULL(256,270) - JVS(2524) = 0 +! JVS(2524) = Jac_FULL(258,286) + JVS(2524) = B(113)+0.209*B(238) IF (DO_JVS(2525)) & -! JVS(2525) = Jac_FULL(256,271) - JVS(2525) = -B(1317) +! JVS(2525) = Jac_FULL(258,290) + JVS(2525) = B(531) IF (DO_JVS(2526)) & -! JVS(2526) = Jac_FULL(256,272) - JVS(2526) = -B(1315)+B(1328) +! JVS(2526) = Jac_FULL(258,291) + JVS(2526) = 0 IF (DO_JVS(2527)) & -! JVS(2527) = Jac_FULL(256,274) - JVS(2527) = B(321) +! JVS(2527) = Jac_FULL(259,91) + JVS(2527) = B(702)+B(1470) IF (DO_JVS(2528)) & -! JVS(2528) = Jac_FULL(256,275) - JVS(2528) = -B(1323)+B(1330) +! JVS(2528) = Jac_FULL(259,93) + JVS(2528) = 1.185*B(239)+1.5*B(1395) IF (DO_JVS(2529)) & -! JVS(2529) = Jac_FULL(256,276) - JVS(2529) = -B(1325)+B(1332) +! JVS(2529) = Jac_FULL(259,94) + JVS(2529) = 0.64*B(235)+B(1393) IF (DO_JVS(2530)) & -! JVS(2530) = Jac_FULL(256,277) - JVS(2530) = B(1329)+B(1331)+B(1333) +! JVS(2530) = Jac_FULL(259,113) + JVS(2530) = B(1391) IF (DO_JVS(2531)) & -! JVS(2531) = Jac_FULL(256,278) - JVS(2531) = -B(1319) +! JVS(2531) = Jac_FULL(259,119) + JVS(2531) = 0.08*B(656)+B(1458) IF (DO_JVS(2532)) & -! JVS(2532) = Jac_FULL(256,279) - JVS(2532) = B(1275) +! JVS(2532) = Jac_FULL(259,148) + JVS(2532) = 1.15*B(1192) IF (DO_JVS(2533)) & -! JVS(2533) = Jac_FULL(256,281) - JVS(2533) = B(322) +! JVS(2533) = Jac_FULL(259,154) + JVS(2533) = 0.65*B(632) IF (DO_JVS(2534)) & -! JVS(2534) = Jac_FULL(256,282) - JVS(2534) = 0 +! JVS(2534) = Jac_FULL(259,155) + JVS(2534) = 0.65*B(634) IF (DO_JVS(2535)) & -! JVS(2535) = Jac_FULL(256,283) - JVS(2535) = -B(1321) +! JVS(2535) = Jac_FULL(259,158) + JVS(2535) = B(195) IF (DO_JVS(2536)) & -! JVS(2536) = Jac_FULL(256,284) - JVS(2536) = -B(336) +! JVS(2536) = Jac_FULL(259,159) + JVS(2536) = 1.2*B(1187) IF (DO_JVS(2537)) & -! JVS(2537) = Jac_FULL(256,286) - JVS(2537) = -B(1327) +! JVS(2537) = Jac_FULL(259,199) + JVS(2537) = B(1461) IF (DO_JVS(2538)) & -! JVS(2538) = Jac_FULL(257,63) - JVS(2538) = B(104)+0.7*B(1417) +! JVS(2538) = Jac_FULL(259,201) + JVS(2538) = 0.25*B(191)+0.1*B(264) IF (DO_JVS(2539)) & -! JVS(2539) = Jac_FULL(257,66) - JVS(2539) = B(264) +! JVS(2539) = Jac_FULL(259,202) + JVS(2539) = 0.15*B(1398) IF (DO_JVS(2540)) & -! JVS(2540) = Jac_FULL(257,84) - JVS(2540) = 0.3*B(1110) +! JVS(2540) = Jac_FULL(259,209) + JVS(2540) = 0.09*B(159)+0.035*B(270) IF (DO_JVS(2541)) & -! JVS(2541) = Jac_FULL(257,104) - JVS(2541) = B(1126)+B(1514) +! JVS(2541) = Jac_FULL(259,210) + JVS(2541) = 0 IF (DO_JVS(2542)) & -! JVS(2542) = Jac_FULL(257,133) - JVS(2542) = 0.087*B(1086)+0.262*B(1522) +! JVS(2542) = Jac_FULL(259,215) + JVS(2542) = 0.64*B(679) IF (DO_JVS(2543)) & -! JVS(2543) = Jac_FULL(257,149) - JVS(2543) = 0 +! JVS(2543) = Jac_FULL(259,216) + JVS(2543) = 1.24*B(660)+0.93*B(668)+1.24*B(672)+1.24*B(676)+0.64*B(680)+1.21*B(681) IF (DO_JVS(2544)) & -! JVS(2544) = Jac_FULL(257,152) - JVS(2544) = 0.429*B(1519) +! JVS(2544) = Jac_FULL(259,225) + JVS(2544) = 0.491*B(646) IF (DO_JVS(2545)) & -! JVS(2545) = Jac_FULL(257,160) - JVS(2545) = 0.097*B(1064)+0.125*B(1520) +! JVS(2545) = Jac_FULL(259,237) + JVS(2545) = B(116)+0.75*B(157)+B(272) IF (DO_JVS(2546)) & -! JVS(2546) = Jac_FULL(257,166) - JVS(2546) = B(1072)+B(1516) +! JVS(2546) = Jac_FULL(259,238) + JVS(2546) = 0.43*B(622)+0.75*B(626)+B(628)+B(630) IF (DO_JVS(2547)) & -! JVS(2547) = Jac_FULL(257,167) - JVS(2547) = 0.018*B(833) +! JVS(2547) = Jac_FULL(259,253) + JVS(2547) = 0 IF (DO_JVS(2548)) & -! JVS(2548) = Jac_FULL(257,178) - JVS(2548) = -B(1179) +! JVS(2548) = Jac_FULL(259,254) + JVS(2548) = 0 IF (DO_JVS(2549)) & -! JVS(2549) = Jac_FULL(257,181) - JVS(2549) = 0.5*B(1517) +! JVS(2549) = Jac_FULL(259,255) + JVS(2549) = 0 IF (DO_JVS(2550)) & -! JVS(2550) = Jac_FULL(257,182) - JVS(2550) = 0 +! JVS(2550) = Jac_FULL(259,256) + JVS(2550) = 0.15*B(124)+0.13*B(181)+0.255*B(254) IF (DO_JVS(2551)) & -! JVS(2551) = Jac_FULL(257,184) - JVS(2551) = 0 +! JVS(2551) = Jac_FULL(259,257) + JVS(2551) = 0.64*B(128)+0.58*B(183)+0.613*B(262) IF (DO_JVS(2552)) & -! JVS(2552) = Jac_FULL(257,190) +! JVS(2552) = Jac_FULL(259,258) JVS(2552) = 0 IF (DO_JVS(2553)) & -! JVS(2553) = Jac_FULL(257,193) - JVS(2553) = B(1494) +! JVS(2553) = Jac_FULL(259,259) + JVS(2553) = -B(146)-B(153)-B(1377) IF (DO_JVS(2554)) & -! JVS(2554) = Jac_FULL(257,194) - JVS(2554) = B(1515) +! JVS(2554) = Jac_FULL(259,261) + JVS(2554) = 0.255*B(255)+0.613*B(263)+0.1*B(265)+0.035*B(271)+B(273)+B(629)+1.24*B(673) IF (DO_JVS(2555)) & -! JVS(2555) = Jac_FULL(257,197) - JVS(2555) = -B(283)-B(293) +! JVS(2555) = Jac_FULL(259,266) + JVS(2555) = 0.75*B(158)+0.09*B(160)+0.13*B(182)+0.58*B(184)+0.25*B(192)+0.75*B(627)+0.93*B(669) IF (DO_JVS(2556)) & -! JVS(2556) = Jac_FULL(257,200) - JVS(2556) = 0.36*B(1076)+0.758*B(1078) +! JVS(2556) = Jac_FULL(259,273) + JVS(2556) = 0 IF (DO_JVS(2557)) & -! JVS(2557) = Jac_FULL(257,202) - JVS(2557) = 0 +! JVS(2557) = Jac_FULL(259,279) + JVS(2557) = B(117)+0.15*B(125)+0.64*B(129)+0.43*B(623)+0.491*B(647)+1.24*B(661) IF (DO_JVS(2558)) & -! JVS(2558) = Jac_FULL(257,203) - JVS(2558) = 0.175*B(1084)+0.35*B(1093) +! JVS(2558) = Jac_FULL(259,281) + JVS(2558) = -B(154)+B(631)+1.24*B(677) IF (DO_JVS(2559)) & -! JVS(2559) = Jac_FULL(257,204) - JVS(2559) = -B(238)-B(242) +! JVS(2559) = Jac_FULL(259,282) + JVS(2559) = 0.65*B(633)+0.65*B(635) IF (DO_JVS(2560)) & -! JVS(2560) = Jac_FULL(257,205) - JVS(2560) = B(1124) +! JVS(2560) = Jac_FULL(259,284) + JVS(2560) = 0 IF (DO_JVS(2561)) & -! JVS(2561) = Jac_FULL(257,210) - JVS(2561) = 0 +! JVS(2561) = Jac_FULL(259,286) + JVS(2561) = -B(147)+B(196)+0.64*B(236)+1.185*B(240)+0.08*B(657)+B(703) IF (DO_JVS(2562)) & -! JVS(2562) = Jac_FULL(257,211) - JVS(2562) = -B(719) +! JVS(2562) = Jac_FULL(259,290) + JVS(2562) = 0 IF (DO_JVS(2563)) & -! JVS(2563) = Jac_FULL(257,212) - JVS(2563) = -B(721) +! JVS(2563) = Jac_FULL(259,291) + JVS(2563) = 0 IF (DO_JVS(2564)) & -! JVS(2564) = Jac_FULL(257,213) - JVS(2564) = -B(297)-B(301) +! JVS(2564) = Jac_FULL(260,128) + JVS(2564) = B(304) IF (DO_JVS(2565)) & -! JVS(2565) = Jac_FULL(257,216) - JVS(2565) = 0 +! JVS(2565) = Jac_FULL(260,176) + JVS(2565) = B(1227) IF (DO_JVS(2566)) & -! JVS(2566) = Jac_FULL(257,217) - JVS(2566) = 0 +! JVS(2566) = Jac_FULL(260,260) + JVS(2566) = -B(306)-B(1267)-B(1269)-B(1271)-B(1273)-B(1275)-B(1277)-B(1279)-B(1402) IF (DO_JVS(2567)) & -! JVS(2567) = Jac_FULL(257,219) - JVS(2567) = B(1419) +! JVS(2567) = Jac_FULL(260,273) + JVS(2567) = 0 IF (DO_JVS(2568)) & -! JVS(2568) = Jac_FULL(257,220) - JVS(2568) = 0.3*B(759) +! JVS(2568) = Jac_FULL(260,274) + JVS(2568) = B(292) IF (DO_JVS(2569)) & -! JVS(2569) = Jac_FULL(257,221) - JVS(2569) = -B(701) +! JVS(2569) = Jac_FULL(260,275) + JVS(2569) = -B(1270) IF (DO_JVS(2570)) & -! JVS(2570) = Jac_FULL(257,222) - JVS(2570) = 0.85*B(1421) +! JVS(2570) = Jac_FULL(260,276) + JVS(2570) = -B(1280) IF (DO_JVS(2571)) & -! JVS(2571) = Jac_FULL(257,224) - JVS(2571) = 0 +! JVS(2571) = Jac_FULL(260,277) + JVS(2571) = -B(1278)+B(1285) IF (DO_JVS(2572)) & -! JVS(2572) = Jac_FULL(257,225) - JVS(2572) = 0 +! JVS(2572) = Jac_FULL(260,278) + JVS(2572) = B(1228) IF (DO_JVS(2573)) & -! JVS(2573) = Jac_FULL(257,226) - JVS(2573) = 0.53*B(1518) +! JVS(2573) = Jac_FULL(260,280) + JVS(2573) = -B(1272) IF (DO_JVS(2574)) & -! JVS(2574) = Jac_FULL(257,227) - JVS(2574) = 0 +! JVS(2574) = Jac_FULL(260,282) + JVS(2574) = B(1281)+B(1283)+B(1286) IF (DO_JVS(2575)) & -! JVS(2575) = Jac_FULL(257,228) - JVS(2575) = B(226)+B(230)+B(1426) +! JVS(2575) = Jac_FULL(260,283) + JVS(2575) = -B(1276)+B(1284) IF (DO_JVS(2576)) & -! JVS(2576) = Jac_FULL(257,229) - JVS(2576) = 0 +! JVS(2576) = Jac_FULL(260,284) + JVS(2576) = B(293) IF (DO_JVS(2577)) & -! JVS(2577) = Jac_FULL(257,233) - JVS(2577) = -B(236)-B(240) +! JVS(2577) = Jac_FULL(260,286) + JVS(2577) = B(305) IF (DO_JVS(2578)) & -! JVS(2578) = Jac_FULL(257,234) - JVS(2578) = -B(677) +! JVS(2578) = Jac_FULL(260,287) + JVS(2578) = -B(1274) IF (DO_JVS(2579)) & -! JVS(2579) = Jac_FULL(257,235) - JVS(2579) = -B(299)-B(303) +! JVS(2579) = Jac_FULL(260,288) + JVS(2579) = -B(307) IF (DO_JVS(2580)) & -! JVS(2580) = Jac_FULL(257,236) - JVS(2580) = 0 +! JVS(2580) = Jac_FULL(260,289) + JVS(2580) = -B(1268)+B(1282) IF (DO_JVS(2581)) & -! JVS(2581) = Jac_FULL(257,237) - JVS(2581) = 0.04*B(1042)+1.01*B(1523) +! JVS(2581) = Jac_FULL(260,291) + JVS(2581) = 0 IF (DO_JVS(2582)) & -! JVS(2582) = Jac_FULL(257,238) - JVS(2582) = 0 +! JVS(2582) = Jac_FULL(261,67) + JVS(2582) = B(101)+0.7*B(1376) IF (DO_JVS(2583)) & -! JVS(2583) = Jac_FULL(257,239) - JVS(2583) = 0 +! JVS(2583) = Jac_FULL(261,88) + JVS(2583) = 0.78*B(247) IF (DO_JVS(2584)) & -! JVS(2584) = Jac_FULL(257,240) - JVS(2584) = -B(967) +! JVS(2584) = Jac_FULL(261,104) + JVS(2584) = B(1077)+B(1473) IF (DO_JVS(2585)) & -! JVS(2585) = Jac_FULL(257,241) - JVS(2585) = -B(969) +! JVS(2585) = Jac_FULL(261,105) + JVS(2585) = 0.3*B(1061) IF (DO_JVS(2586)) & -! JVS(2586) = Jac_FULL(257,242) - JVS(2586) = 0.3*B(772) +! JVS(2586) = Jac_FULL(261,136) + JVS(2586) = 0.087*B(1037)+0.262*B(1481) IF (DO_JVS(2587)) & -! JVS(2587) = Jac_FULL(257,243) +! JVS(2587) = Jac_FULL(261,153) JVS(2587) = 0 IF (DO_JVS(2588)) & -! JVS(2588) = Jac_FULL(257,244) - JVS(2588) = 0.38*B(1032)+B(1428) +! JVS(2588) = Jac_FULL(261,156) + JVS(2588) = 0.429*B(1478) IF (DO_JVS(2589)) & -! JVS(2589) = Jac_FULL(257,245) - JVS(2589) = 0 +! JVS(2589) = Jac_FULL(261,163) + JVS(2589) = 0.097*B(1015)+0.125*B(1479) IF (DO_JVS(2590)) & -! JVS(2590) = Jac_FULL(257,246) - JVS(2590) = B(1431) +! JVS(2590) = Jac_FULL(261,169) + JVS(2590) = B(1023)+B(1475) IF (DO_JVS(2591)) & -! JVS(2591) = Jac_FULL(257,247) - JVS(2591) = 0.12*B(1038)+B(1430) +! JVS(2591) = Jac_FULL(261,171) + JVS(2591) = 0.018*B(784) IF (DO_JVS(2592)) & -! JVS(2592) = Jac_FULL(257,248) - JVS(2592) = B(133)+0.15*B(168)+0.3*B(188)-B(287) +! JVS(2592) = Jac_FULL(261,184) + JVS(2592) = -B(1130) IF (DO_JVS(2593)) & -! JVS(2593) = Jac_FULL(257,249) - JVS(2593) = 0.93*B(135)+0.15*B(170)+0.5*B(190)-B(289) +! JVS(2593) = Jac_FULL(261,185) + JVS(2593) = 0.5*B(1476) IF (DO_JVS(2594)) & -! JVS(2594) = Jac_FULL(257,250) - JVS(2594) = -B(305) +! JVS(2594) = Jac_FULL(261,186) + JVS(2594) = 0 IF (DO_JVS(2595)) & -! JVS(2595) = Jac_FULL(257,251) - JVS(2595) = -B(281)-B(291) +! JVS(2595) = Jac_FULL(261,188) + JVS(2595) = 0 IF (DO_JVS(2596)) & -! JVS(2596) = Jac_FULL(257,252) - JVS(2596) = -B(273)-B(285) +! JVS(2596) = Jac_FULL(261,194) + JVS(2596) = 0 IF (DO_JVS(2597)) & -! JVS(2597) = Jac_FULL(257,253) - JVS(2597) = -B(279)-B(295) +! JVS(2597) = Jac_FULL(261,196) + JVS(2597) = B(1453) IF (DO_JVS(2598)) & -! JVS(2598) = Jac_FULL(257,254) - JVS(2598) = 0 +! JVS(2598) = Jac_FULL(261,198) + JVS(2598) = B(1474) IF (DO_JVS(2599)) & -! JVS(2599) = Jac_FULL(257,255) - JVS(2599) = 0 +! JVS(2599) = Jac_FULL(261,201) + JVS(2599) = -B(264) IF (DO_JVS(2600)) & -! JVS(2600) = Jac_FULL(257,257) - JVS(2600) = -B(102)-B(105)-B(237)-B(239)-B(241)-B(243)-2*B(268)-B(269)-B(271)-B(274)-B(280)-B(282)-B(284)-B(286)& - &-B(288)-B(290)-B(292)-B(294)-B(296)-B(298)-B(300)-B(302)-B(304)-B(306)-B(678)-B(702)-B(720)-B(722)-B(968)& - &-B(970)-B(1130)-B(1180) +! JVS(2600) = Jac_FULL(261,204) + JVS(2600) = 0.36*B(1027)+0.758*B(1029) IF (DO_JVS(2601)) & -! JVS(2601) = Jac_FULL(257,261) - JVS(2601) = 0.95*B(98)+B(100)+B(345)+0.12*B(1415) +! JVS(2601) = Jac_FULL(261,206) + JVS(2601) = 0 IF (DO_JVS(2602)) & -! JVS(2602) = Jac_FULL(257,263) - JVS(2602) = 0.3*B(189)+0.5*B(191)-B(270)-B(272) +! JVS(2602) = Jac_FULL(261,207) + JVS(2602) = 0.175*B(1035)+0.35*B(1044) IF (DO_JVS(2603)) & -! JVS(2603) = Jac_FULL(257,269) - JVS(2603) = 0.95*B(99)+B(227)+B(265)+0.3*B(760)+0.018*B(834)+0.04*B(1043)+0.097*B(1065)+B(1073)+0.087*B(1087)+0.3& - &*B(1111)+B(1127) +! JVS(2603) = Jac_FULL(261,208) + JVS(2603) = B(1075) IF (DO_JVS(2604)) & -! JVS(2604) = Jac_FULL(257,270) - JVS(2604) = -B(103) +! JVS(2604) = Jac_FULL(261,209) + JVS(2604) = -B(270) IF (DO_JVS(2605)) & -! JVS(2605) = Jac_FULL(257,277) - JVS(2605) = 0.38*B(1033)+0.12*B(1039) +! JVS(2605) = Jac_FULL(261,214) + JVS(2605) = 0 IF (DO_JVS(2606)) & -! JVS(2606) = Jac_FULL(257,280) - JVS(2606) = -B(106)+B(134)+0.93*B(136)+0.758*B(1079)+0.35*B(1094) +! JVS(2606) = Jac_FULL(261,215) + JVS(2606) = -B(670) IF (DO_JVS(2607)) & -! JVS(2607) = Jac_FULL(257,281) - JVS(2607) = 0.15*B(169)+0.15*B(171)+0.36*B(1077)+0.175*B(1085)-B(1131) +! JVS(2607) = Jac_FULL(261,216) + JVS(2607) = -B(672) IF (DO_JVS(2608)) & -! JVS(2608) = Jac_FULL(257,282) - JVS(2608) = B(346) +! JVS(2608) = Jac_FULL(261,217) + JVS(2608) = -B(266) IF (DO_JVS(2609)) & -! JVS(2609) = Jac_FULL(257,285) +! JVS(2609) = Jac_FULL(261,220) JVS(2609) = 0 IF (DO_JVS(2610)) & -! JVS(2610) = Jac_FULL(257,287) - JVS(2610) = B(101)+B(231)+B(1125) +! JVS(2610) = Jac_FULL(261,221) + JVS(2610) = B(1378) IF (DO_JVS(2611)) & -! JVS(2611) = Jac_FULL(258,54) - JVS(2611) = 0.364*B(1146) +! JVS(2611) = Jac_FULL(261,222) + JVS(2611) = 0 IF (DO_JVS(2612)) & -! JVS(2612) = Jac_FULL(258,60) - JVS(2612) = 0.2*B(1165) +! JVS(2612) = Jac_FULL(261,224) + JVS(2612) = 0.3*B(710) IF (DO_JVS(2613)) & -! JVS(2613) = Jac_FULL(258,62) - JVS(2613) = B(395)+B(1496) +! JVS(2613) = Jac_FULL(261,225) + JVS(2613) = -B(652) IF (DO_JVS(2614)) & -! JVS(2614) = Jac_FULL(258,68) - JVS(2614) = B(551) +! JVS(2614) = Jac_FULL(261,226) + JVS(2614) = 0.85*B(1380) IF (DO_JVS(2615)) & -! JVS(2615) = Jac_FULL(258,73) - JVS(2615) = B(549) +! JVS(2615) = Jac_FULL(261,228) + JVS(2615) = 0 IF (DO_JVS(2616)) & -! JVS(2616) = Jac_FULL(258,76) - JVS(2616) = 0.27*B(1167) +! JVS(2616) = Jac_FULL(261,229) + JVS(2616) = 0 IF (DO_JVS(2617)) & -! JVS(2617) = Jac_FULL(258,77) - JVS(2617) = 0.3*B(1169) +! JVS(2617) = Jac_FULL(261,230) + JVS(2617) = 0.53*B(1477) IF (DO_JVS(2618)) & -! JVS(2618) = Jac_FULL(258,99) - JVS(2618) = B(1553) +! JVS(2618) = Jac_FULL(261,231) + JVS(2618) = 0 IF (DO_JVS(2619)) & -! JVS(2619) = Jac_FULL(258,100) - JVS(2619) = B(547) +! JVS(2619) = Jac_FULL(261,232) + JVS(2619) = 0 IF (DO_JVS(2620)) & -! JVS(2620) = Jac_FULL(258,106) - JVS(2620) = B(819) +! JVS(2620) = Jac_FULL(261,233) + JVS(2620) = B(221)+B(225)+B(1385) IF (DO_JVS(2621)) & -! JVS(2621) = Jac_FULL(258,122) - JVS(2621) = 0.888*B(1114)+B(1547) +! JVS(2621) = Jac_FULL(261,237) + JVS(2621) = -B(272) IF (DO_JVS(2622)) & -! JVS(2622) = Jac_FULL(258,124) - JVS(2622) = 0.23*B(813)+B(1533) +! JVS(2622) = Jac_FULL(261,238) + JVS(2622) = -B(628) IF (DO_JVS(2623)) & -! JVS(2623) = Jac_FULL(258,126) - JVS(2623) = 0.42*B(811)+B(1532) +! JVS(2623) = Jac_FULL(261,239) + JVS(2623) = -B(268) IF (DO_JVS(2624)) & -! JVS(2624) = Jac_FULL(258,130) - JVS(2624) = 0.84*B(1074) +! JVS(2624) = Jac_FULL(261,240) + JVS(2624) = 0 IF (DO_JVS(2625)) & -! JVS(2625) = Jac_FULL(258,133) - JVS(2625) = 0.488*B(1086) +! JVS(2625) = Jac_FULL(261,241) + JVS(2625) = 0.04*B(993)+1.01*B(1482) IF (DO_JVS(2626)) & -! JVS(2626) = Jac_FULL(258,145) - JVS(2626) = 0.25*B(1237)+0.5*B(1239) +! JVS(2626) = Jac_FULL(261,242) + JVS(2626) = 0 IF (DO_JVS(2627)) & -! JVS(2627) = Jac_FULL(258,146) - JVS(2627) = 0.33*B(1020)+0.33*B(1022) +! JVS(2627) = Jac_FULL(261,243) + JVS(2627) = 0 IF (DO_JVS(2628)) & -! JVS(2628) = Jac_FULL(258,149) - JVS(2628) = 0.25*B(1108) +! JVS(2628) = Jac_FULL(261,244) + JVS(2628) = 0 IF (DO_JVS(2629)) & -! JVS(2629) = Jac_FULL(258,150) - JVS(2629) = 0.14*B(681) +! JVS(2629) = Jac_FULL(261,245) + JVS(2629) = 0.3*B(723) IF (DO_JVS(2630)) & -! JVS(2630) = Jac_FULL(258,151) - JVS(2630) = 0.14*B(683) +! JVS(2630) = Jac_FULL(261,246) + JVS(2630) = -B(920) IF (DO_JVS(2631)) & -! JVS(2631) = Jac_FULL(258,152) - JVS(2631) = B(1066)+0.571*B(1519) +! JVS(2631) = Jac_FULL(261,247) + JVS(2631) = -B(918) IF (DO_JVS(2632)) & -! JVS(2632) = Jac_FULL(258,153) - JVS(2632) = 0.25*B(829) +! JVS(2632) = Jac_FULL(261,248) + JVS(2632) = 0.38*B(983)+B(1387) IF (DO_JVS(2633)) & -! JVS(2633) = Jac_FULL(258,155) - JVS(2633) = 0.25*B(1232)+0.5*B(1234) +! JVS(2633) = Jac_FULL(261,249) + JVS(2633) = 0 IF (DO_JVS(2634)) & -! JVS(2634) = Jac_FULL(258,158) - JVS(2634) = 0.33*B(831) +! JVS(2634) = Jac_FULL(261,250) + JVS(2634) = B(1390) IF (DO_JVS(2635)) & -! JVS(2635) = Jac_FULL(258,160) - JVS(2635) = 0.75*B(1064)+0.875*B(1520) +! JVS(2635) = Jac_FULL(261,251) + JVS(2635) = 0.12*B(989)+B(1389) IF (DO_JVS(2636)) & -! JVS(2636) = Jac_FULL(258,161) - JVS(2636) = 0.054*B(835) +! JVS(2636) = Jac_FULL(261,252) + JVS(2636) = B(130)+0.15*B(165)+0.3*B(185)-0.1*B(256) IF (DO_JVS(2637)) & -! JVS(2637) = Jac_FULL(258,165) - JVS(2637) = 0.14*B(691) +! JVS(2637) = Jac_FULL(261,253) + JVS(2637) = 0 IF (DO_JVS(2638)) & -! JVS(2638) = Jac_FULL(258,166) - JVS(2638) = 2*B(1072)+B(1516) +! JVS(2638) = Jac_FULL(261,254) + JVS(2638) = 0.919*B(132)+0.15*B(167)+0.5*B(187)-0.1*B(258) IF (DO_JVS(2639)) & -! JVS(2639) = Jac_FULL(258,167) - JVS(2639) = 0.036*B(833) +! JVS(2639) = Jac_FULL(261,255) + JVS(2639) = -B(274) IF (DO_JVS(2640)) & -! JVS(2640) = Jac_FULL(258,168) - JVS(2640) = B(1132)+B(1513) +! JVS(2640) = Jac_FULL(261,256) + JVS(2640) = -B(254) IF (DO_JVS(2641)) & -! JVS(2641) = Jac_FULL(258,170) - JVS(2641) = 1.5*B(817) +! JVS(2641) = Jac_FULL(261,257) + JVS(2641) = -B(262) IF (DO_JVS(2642)) & -! JVS(2642) = Jac_FULL(258,171) - JVS(2642) = 0.25*B(1050)+B(1525) +! JVS(2642) = Jac_FULL(261,258) + JVS(2642) = -B(260) IF (DO_JVS(2643)) & -! JVS(2643) = Jac_FULL(258,179) +! JVS(2643) = Jac_FULL(261,259) JVS(2643) = 0 IF (DO_JVS(2644)) & -! JVS(2644) = Jac_FULL(258,181) - JVS(2644) = 0.5*B(1517) +! JVS(2644) = Jac_FULL(261,261) + JVS(2644) = -B(99)-B(102)-2*B(251)-B(252)-B(255)-0.1*B(257)-0.1*B(259)-B(261)-B(263)-B(265)-B(267)-B(269)-B(271)& + &-B(273)-B(275)-B(629)-B(653)-B(671)-B(673)-B(919)-B(921)-B(1081)-B(1131) IF (DO_JVS(2645)) & -! JVS(2645) = Jac_FULL(258,182) - JVS(2645) = 0.45*B(807)+0.888*B(1530) +! JVS(2645) = Jac_FULL(261,264) + JVS(2645) = 0.95*B(95)+B(97)+B(316)+0.12*B(1374) IF (DO_JVS(2646)) & -! JVS(2646) = Jac_FULL(258,184) - JVS(2646) = 0.37*B(809)+0.818*B(1531) +! JVS(2646) = Jac_FULL(261,266) + JVS(2646) = 0.3*B(186)+0.5*B(188)-B(253) IF (DO_JVS(2647)) & -! JVS(2647) = Jac_FULL(258,185) - JVS(2647) = 0 +! JVS(2647) = Jac_FULL(261,273) + JVS(2647) = B(317) IF (DO_JVS(2648)) & -! JVS(2648) = Jac_FULL(258,189) - JVS(2648) = 0.638*B(815) +! JVS(2648) = Jac_FULL(261,279) + JVS(2648) = -B(103)+B(131)+0.919*B(133)+0.758*B(1030)+0.35*B(1045) IF (DO_JVS(2649)) & -! JVS(2649) = Jac_FULL(258,190) - JVS(2649) = 0.52*B(884)+0.8*B(888)+2*B(890) +! JVS(2649) = Jac_FULL(261,281) + JVS(2649) = B(98)+B(226)+B(1076) IF (DO_JVS(2650)) & -! JVS(2650) = Jac_FULL(258,191) - JVS(2650) = -B(655) +! JVS(2650) = Jac_FULL(261,282) + JVS(2650) = 0.38*B(984)+0.12*B(990) IF (DO_JVS(2651)) & -! JVS(2651) = Jac_FULL(258,195) - JVS(2651) = B(1524) +! JVS(2651) = Jac_FULL(261,284) + JVS(2651) = 0.15*B(166)+0.15*B(168)+0.36*B(1028)+0.175*B(1036)-B(1082) IF (DO_JVS(2652)) & -! JVS(2652) = Jac_FULL(258,200) - JVS(2652) = 0 +! JVS(2652) = Jac_FULL(261,286) + JVS(2652) = 0.95*B(96)+B(222)+0.78*B(248)+0.3*B(711)+0.018*B(785)+0.04*B(994)+0.097*B(1016)+B(1024)+0.087*B(1038)+0.3& + &*B(1062)+B(1078) IF (DO_JVS(2653)) & -! JVS(2653) = Jac_FULL(258,201) - JVS(2653) = 0.507*B(1082)+B(1088)+0.86*B(1089) +! JVS(2653) = Jac_FULL(261,290) + JVS(2653) = 0 IF (DO_JVS(2654)) & -! JVS(2654) = Jac_FULL(258,202) - JVS(2654) = B(1112)+B(1543)+0.122*B(1544) +! JVS(2654) = Jac_FULL(261,291) + JVS(2654) = -B(100) IF (DO_JVS(2655)) & -! JVS(2655) = Jac_FULL(258,203) - JVS(2655) = 0.325*B(1084)+0.65*B(1093) +! JVS(2655) = Jac_FULL(262,262) + JVS(2655) = -B(446)-B(502)-B(504)-B(1231)-B(1233)-B(1235)-B(1237)-B(1239)-B(1241)-B(1243)-B(1417)-B(1418) IF (DO_JVS(2656)) & -! JVS(2656) = Jac_FULL(258,205) - JVS(2656) = B(1500) +! JVS(2656) = Jac_FULL(262,275) + JVS(2656) = -B(1234) IF (DO_JVS(2657)) & -! JVS(2657) = Jac_FULL(258,206) - JVS(2657) = B(1556) +! JVS(2657) = Jac_FULL(262,277) + JVS(2657) = -B(1240) IF (DO_JVS(2658)) & -! JVS(2658) = Jac_FULL(258,209) - JVS(2658) = B(1120)+B(1551) +! JVS(2658) = Jac_FULL(262,278) + JVS(2658) = -B(1232) IF (DO_JVS(2659)) & -! JVS(2659) = Jac_FULL(258,210) - JVS(2659) = 0.6*B(917)+0.55*B(1537) +! JVS(2659) = Jac_FULL(262,280) + JVS(2659) = -B(1242) IF (DO_JVS(2660)) & -! JVS(2660) = Jac_FULL(258,216) - JVS(2660) = 0.6*B(915)+0.55*B(1534) +! JVS(2660) = Jac_FULL(262,283) + JVS(2660) = -B(1238) IF (DO_JVS(2661)) & -! JVS(2661) = Jac_FULL(258,217) - JVS(2661) = 0 +! JVS(2661) = Jac_FULL(262,285) + JVS(2661) = B(484) IF (DO_JVS(2662)) & -! JVS(2662) = Jac_FULL(258,218) - JVS(2662) = 2*B(224)+2*B(228)+2*B(1423)+2*B(1424)+B(1425) +! JVS(2662) = Jac_FULL(262,286) + JVS(2662) = -B(447) IF (DO_JVS(2663)) & -! JVS(2663) = Jac_FULL(258,219) - JVS(2663) = B(1420) +! JVS(2663) = Jac_FULL(262,287) + JVS(2663) = -B(1244) IF (DO_JVS(2664)) & -! JVS(2664) = Jac_FULL(258,220) - JVS(2664) = 0.407*B(753)+0.6*B(759)+0.9*B(761) +! JVS(2664) = Jac_FULL(262,288) + JVS(2664) = -B(503) IF (DO_JVS(2665)) & -! JVS(2665) = Jac_FULL(258,224) - JVS(2665) = B(869)+0.13*B(870)+0.2*B(872) +! JVS(2665) = Jac_FULL(262,289) + JVS(2665) = -B(1236) IF (DO_JVS(2666)) & -! JVS(2666) = Jac_FULL(258,225) - JVS(2666) = B(877)+0.2*B(878)+0.13*B(882) +! JVS(2666) = Jac_FULL(262,290) + JVS(2666) = -B(505) IF (DO_JVS(2667)) & -! JVS(2667) = Jac_FULL(258,226) - JVS(2667) = 0 +! JVS(2667) = Jac_FULL(262,291) + JVS(2667) = B(485) IF (DO_JVS(2668)) & -! JVS(2668) = Jac_FULL(258,227) - JVS(2668) = 0.77*B(1046)+0.77*B(1521) +! JVS(2668) = Jac_FULL(263,74) + JVS(2668) = B(1451) IF (DO_JVS(2669)) & -! JVS(2669) = Jac_FULL(258,228) - JVS(2669) = B(226)+B(230)+B(1426) +! JVS(2669) = Jac_FULL(263,76) + JVS(2669) = B(1093) IF (DO_JVS(2670)) & -! JVS(2670) = Jac_FULL(258,229) - JVS(2670) = 0 +! JVS(2670) = Jac_FULL(263,85) + JVS(2670) = 0.5*B(1079)+B(1471) IF (DO_JVS(2671)) & -! JVS(2671) = Jac_FULL(258,230) - JVS(2671) = -B(641) +! JVS(2671) = Jac_FULL(263,86) + JVS(2671) = B(22)+B(23) IF (DO_JVS(2672)) & -! JVS(2672) = Jac_FULL(258,232) - JVS(2672) = 0.505*B(218)+B(220)+B(1422) +! JVS(2672) = Jac_FULL(263,88) + JVS(2672) = 0.22*B(247) IF (DO_JVS(2673)) & -! JVS(2673) = Jac_FULL(258,234) - JVS(2673) = 0 +! JVS(2673) = Jac_FULL(263,89) + JVS(2673) = B(696)+B(1467) IF (DO_JVS(2674)) & -! JVS(2674) = Jac_FULL(258,236) - JVS(2674) = 0.539*B(1018)+0.839*B(1541) +! JVS(2674) = Jac_FULL(263,90) + JVS(2674) = B(282)+B(286) IF (DO_JVS(2675)) & -! JVS(2675) = Jac_FULL(258,237) - JVS(2675) = 0 +! JVS(2675) = Jac_FULL(263,108) + JVS(2675) = 2*B(1107) IF (DO_JVS(2676)) & -! JVS(2676) = Jac_FULL(258,238) - JVS(2676) = 0 +! JVS(2676) = Jac_FULL(263,112) + JVS(2676) = B(1396) IF (DO_JVS(2677)) & -! JVS(2677) = Jac_FULL(258,239) +! JVS(2677) = Jac_FULL(263,120) JVS(2677) = 0 IF (DO_JVS(2678)) & -! JVS(2678) = Jac_FULL(258,240) - JVS(2678) = 0 +! JVS(2678) = Jac_FULL(263,136) + JVS(2678) = 0.25*B(1037)+0.75*B(1481) IF (DO_JVS(2679)) & -! JVS(2679) = Jac_FULL(258,241) - JVS(2679) = 0 +! JVS(2679) = Jac_FULL(263,137) + JVS(2679) = 0.3*B(59)+B(1364) IF (DO_JVS(2680)) & -! JVS(2680) = Jac_FULL(258,242) - JVS(2680) = 0.6*B(772)+B(779)+B(781)+0.5*B(785)+0.55*B(797) +! JVS(2680) = Jac_FULL(263,139) + JVS(2680) = B(1494) IF (DO_JVS(2681)) & -! JVS(2681) = Jac_FULL(258,243) - JVS(2681) = 0.9*B(774)+B(780)+B(782)+0.5*B(789)+0.55*B(805) +! JVS(2681) = Jac_FULL(263,140) + JVS(2681) = B(1495) IF (DO_JVS(2682)) & -! JVS(2682) = Jac_FULL(258,244) - JVS(2682) = 0.18*B(1032)+B(1427)+B(1428) +! JVS(2682) = Jac_FULL(263,152) + JVS(2682) = 0.599*B(878)+B(880) IF (DO_JVS(2683)) & -! JVS(2683) = Jac_FULL(258,245) - JVS(2683) = 0 +! JVS(2683) = Jac_FULL(263,157) + JVS(2683) = B(1485) IF (DO_JVS(2684)) & -! JVS(2684) = Jac_FULL(258,246) - JVS(2684) = 0.5*B(234) +! JVS(2684) = Jac_FULL(263,162) + JVS(2684) = B(1486) IF (DO_JVS(2685)) & -! JVS(2685) = Jac_FULL(258,247) - JVS(2685) = 0.036*B(1034)+0.12*B(1038)+0.68*B(1040)+B(1430) +! JVS(2685) = Jac_FULL(263,165) + JVS(2685) = 0.018*B(786) IF (DO_JVS(2686)) & -! JVS(2686) = Jac_FULL(258,248) - JVS(2686) = 0 +! JVS(2686) = Jac_FULL(263,166) + JVS(2686) = 0.031*B(886)+0.065*B(888) IF (DO_JVS(2687)) & -! JVS(2687) = Jac_FULL(258,249) - JVS(2687) = 0 +! JVS(2687) = Jac_FULL(263,167) + JVS(2687) = 0.059*B(871)+0.272*B(873) IF (DO_JVS(2688)) & -! JVS(2688) = Jac_FULL(258,251) - JVS(2688) = 0 +! JVS(2688) = Jac_FULL(263,168) + JVS(2688) = 0.065*B(892)+0.142*B(894) IF (DO_JVS(2689)) & -! JVS(2689) = Jac_FULL(258,252) - JVS(2689) = 0 +! JVS(2689) = Jac_FULL(263,169) + JVS(2689) = B(1475) IF (DO_JVS(2690)) & -! JVS(2690) = Jac_FULL(258,253) - JVS(2690) = 0 +! JVS(2690) = Jac_FULL(263,170) + JVS(2690) = 0.04*B(642) IF (DO_JVS(2691)) & -! JVS(2691) = Jac_FULL(258,254) - JVS(2691) = 0.56*B(216) +! JVS(2691) = Jac_FULL(263,171) + JVS(2691) = 0.018*B(784) IF (DO_JVS(2692)) & -! JVS(2692) = Jac_FULL(258,255) - JVS(2692) = B(1418) +! JVS(2692) = Jac_FULL(263,172) + JVS(2692) = B(1083)+B(1472) IF (DO_JVS(2693)) & -! JVS(2693) = Jac_FULL(258,257) - JVS(2693) = 0 +! JVS(2693) = Jac_FULL(263,174) + JVS(2693) = 0.5*B(768) IF (DO_JVS(2694)) & -! JVS(2694) = Jac_FULL(258,258) - JVS(2694) = -B(44)-B(642)-B(656) +! JVS(2694) = Jac_FULL(263,179) + JVS(2694) = 0.8*B(1105) IF (DO_JVS(2695)) & -! JVS(2695) = Jac_FULL(258,261) - JVS(2695) = 0.05*B(98)+0.88*B(1415)+B(1416) +! JVS(2695) = Jac_FULL(263,180) + JVS(2695) = B(1181) IF (DO_JVS(2696)) & -! JVS(2696) = Jac_FULL(258,262) - JVS(2696) = B(66)+B(96)+B(343)+B(427)+B(505)+B(1406)+B(1407) +! JVS(2696) = Jac_FULL(263,181) + JVS(2696) = B(1497) IF (DO_JVS(2697)) & -! JVS(2697) = Jac_FULL(258,263) - JVS(2697) = 0.5*B(786)+0.5*B(790) +! JVS(2697) = Jac_FULL(263,182) + JVS(2697) = 0.716*B(789)+0.14*B(793) IF (DO_JVS(2698)) & -! JVS(2698) = Jac_FULL(258,269) - JVS(2698) = -B(45)+B(67)+0.05*B(99)+0.505*B(219)+B(221)+2*B(225)+B(227)+0.5*B(235)+0.6*B(760)+0.9*B(762)+0.45*B(808)& - &+0.37*B(810)+0.42*B(812)+0.23*B(814)+0.638*B(816)+1.5*B(818)+B(820)+0.25*B(830)+0.33*B(832)+0.036*B(834)& - &+0.054*B(836)+0.6*B(916)+0.6*B(918)+0.539*B(1019)+0.036*B(1035)+0.77*B(1047)+0.25*B(1051)+0.75*B(1065)& - &+B(1067)+2*B(1073)+0.84*B(1075)+0.488*B(1087)+0.25*B(1109)+B(1113)+0.888*B(1115)+B(1121)+B(1133)+0.364& - &*B(1147)+0.2*B(1166)+0.27*B(1168)+0.3*B(1170)+0.25*B(1233)+0.25*B(1238) +! JVS(2698) = Jac_FULL(263,183) + JVS(2698) = 0.706*B(796)+0.14*B(800) IF (DO_JVS(2699)) & -! JVS(2699) = Jac_FULL(258,270) - JVS(2699) = 0 +! JVS(2699) = Jac_FULL(263,184) + JVS(2699) = B(1128) IF (DO_JVS(2700)) & -! JVS(2700) = Jac_FULL(258,277) - JVS(2700) = 0.56*B(217)+0.14*B(682)+0.14*B(684)+0.14*B(692)+0.407*B(754)+0.18*B(1033)+0.12*B(1039)+0.5*B(1235)+0.5& - &*B(1240) +! JVS(2700) = Jac_FULL(263,186) + JVS(2700) = 0.085*B(758) IF (DO_JVS(2701)) & -! JVS(2701) = Jac_FULL(258,279) - JVS(2701) = 0 +! JVS(2701) = Jac_FULL(263,188) + JVS(2701) = 0.165*B(760) IF (DO_JVS(2702)) & -! JVS(2702) = Jac_FULL(258,280) - JVS(2702) = 0.55*B(798)+0.55*B(806)+0.2*B(873)+0.2*B(879)+0.8*B(889)+0.33*B(1021)+0.86*B(1090)+0.65*B(1094) +! JVS(2702) = Jac_FULL(263,189) + JVS(2702) = 0.088*B(957)+0.34*B(963) IF (DO_JVS(2703)) & -! JVS(2703) = Jac_FULL(258,281) - JVS(2703) = 0.13*B(871)+0.13*B(883)+0.52*B(885)+0.33*B(1023)+0.507*B(1083)+0.325*B(1085) +! JVS(2703) = Jac_FULL(263,190) + JVS(2703) = 0.25*B(344) IF (DO_JVS(2704)) & -! JVS(2704) = Jac_FULL(258,282) - JVS(2704) = B(344) +! JVS(2704) = Jac_FULL(263,191) + JVS(2704) = B(1179) IF (DO_JVS(2705)) & -! JVS(2705) = Jac_FULL(258,284) - JVS(2705) = B(396)+B(428) +! JVS(2705) = Jac_FULL(263,194) + JVS(2705) = 0.65*B(835)+B(839) IF (DO_JVS(2706)) & -! JVS(2706) = Jac_FULL(258,285) - JVS(2706) = B(506)+B(548)+B(550)+B(552) +! JVS(2706) = Jac_FULL(263,196) + JVS(2706) = B(1453) IF (DO_JVS(2707)) & -! JVS(2707) = Jac_FULL(258,286) - JVS(2707) = 0 +! JVS(2707) = Jac_FULL(263,198) + JVS(2707) = B(1474) IF (DO_JVS(2708)) & -! JVS(2708) = Jac_FULL(258,287) - JVS(2708) = B(97)+2*B(229)+B(231)+0.68*B(1041) +! JVS(2708) = Jac_FULL(263,201) + JVS(2708) = B(138)+1.25*B(191)+0.9*B(264) IF (DO_JVS(2709)) & -! JVS(2709) = Jac_FULL(259,259) - JVS(2709) = -B(485)-B(543)-B(545)-B(1278)-B(1280)-B(1282)-B(1284)-B(1286)-B(1288)-B(1290)-B(1458)-B(1459) +! JVS(2709) = Jac_FULL(263,204) + JVS(2709) = 0.05*B(1027)+0.242*B(1029) IF (DO_JVS(2710)) & -! JVS(2710) = Jac_FULL(259,269) - JVS(2710) = -B(486) +! JVS(2710) = Jac_FULL(263,205) + JVS(2710) = 0.083*B(1033)+0.14*B(1040) IF (DO_JVS(2711)) & -! JVS(2711) = Jac_FULL(259,270) - JVS(2711) = B(523) +! JVS(2711) = Jac_FULL(263,206) + JVS(2711) = 0.133*B(1503) IF (DO_JVS(2712)) & -! JVS(2712) = Jac_FULL(259,271) - JVS(2712) = -B(1281) +! JVS(2712) = Jac_FULL(263,207) + JVS(2712) = 0.5*B(1035)+B(1044) IF (DO_JVS(2713)) & -! JVS(2713) = Jac_FULL(259,272) - JVS(2713) = -B(1283) +! JVS(2713) = Jac_FULL(263,208) + JVS(2713) = B(588)+B(1459) IF (DO_JVS(2714)) & -! JVS(2714) = Jac_FULL(259,273) - JVS(2714) = B(524) +! JVS(2714) = Jac_FULL(263,209) + JVS(2714) = B(120)+1.25*B(159)+0.9*B(270) IF (DO_JVS(2715)) & -! JVS(2715) = Jac_FULL(259,275) - JVS(2715) = -B(1285) +! JVS(2715) = Jac_FULL(263,214) + JVS(2715) = 0 IF (DO_JVS(2716)) & -! JVS(2716) = Jac_FULL(259,276) - JVS(2716) = -B(1287) +! JVS(2716) = Jac_FULL(263,215) + JVS(2716) = B(666)+0.202*B(679) IF (DO_JVS(2717)) & -! JVS(2717) = Jac_FULL(259,278) - JVS(2717) = -B(1289) +! JVS(2717) = Jac_FULL(263,216) + JVS(2717) = 0.287*B(660)+0.85*B(668)+0.287*B(672)+0.287*B(676)+0.202*B(680)+0.504*B(681) IF (DO_JVS(2718)) & -! JVS(2718) = Jac_FULL(259,279) - JVS(2718) = -B(1279) +! JVS(2718) = Jac_FULL(263,217) + JVS(2718) = 0.75*B(175) IF (DO_JVS(2719)) & -! JVS(2719) = Jac_FULL(259,283) - JVS(2719) = -B(1291) +! JVS(2719) = Jac_FULL(263,218) + JVS(2719) = B(89)+B(524) IF (DO_JVS(2720)) & -! JVS(2720) = Jac_FULL(259,284) - JVS(2720) = -B(544) +! JVS(2720) = Jac_FULL(263,220) + JVS(2720) = 0 IF (DO_JVS(2721)) & -! JVS(2721) = Jac_FULL(259,285) - JVS(2721) = -B(546) +! JVS(2721) = Jac_FULL(263,222) + JVS(2721) = 0.126*B(955)+0.249*B(959) IF (DO_JVS(2722)) & -! JVS(2722) = Jac_FULL(260,41) - JVS(2722) = B(742) +! JVS(2722) = Jac_FULL(263,223) + JVS(2722) = B(1384) IF (DO_JVS(2723)) & -! JVS(2723) = Jac_FULL(260,82) - JVS(2723) = B(315) +! JVS(2723) = Jac_FULL(263,224) + JVS(2723) = 0.827*B(704)+0.3*B(710)+0.3*B(712) IF (DO_JVS(2724)) & -! JVS(2724) = Jac_FULL(260,96) - JVS(2724) = B(741) +! JVS(2724) = Jac_FULL(263,225) + JVS(2724) = 0.231*B(646)+1.04*B(650)+0.385*B(652)+0.385*B(654) IF (DO_JVS(2725)) & -! JVS(2725) = Jac_FULL(260,99) - JVS(2725) = B(1197) +! JVS(2725) = Jac_FULL(263,228) + JVS(2725) = 0 IF (DO_JVS(2726)) & -! JVS(2726) = Jac_FULL(260,109) - JVS(2726) = 0.5*B(1187) +! JVS(2726) = Jac_FULL(263,229) + JVS(2726) = 0 IF (DO_JVS(2727)) & -! JVS(2727) = Jac_FULL(260,112) - JVS(2727) = B(143) +! JVS(2727) = Jac_FULL(263,230) + JVS(2727) = 0.47*B(1477) IF (DO_JVS(2728)) & -! JVS(2728) = Jac_FULL(260,117) - JVS(2728) = 0.742*B(1183) +! JVS(2728) = Jac_FULL(263,231) + JVS(2728) = 0.23*B(1480) IF (DO_JVS(2729)) & -! JVS(2729) = Jac_FULL(260,131) - JVS(2729) = 0 +! JVS(2729) = Jac_FULL(263,232) + JVS(2729) = 0.104*B(898)+0.383*B(900) IF (DO_JVS(2730)) & -! JVS(2730) = Jac_FULL(260,135) - JVS(2730) = -B(13) +! JVS(2730) = Jac_FULL(263,234) + JVS(2730) = B(592)+B(594)+B(596)+0.06*B(598)+0.06*B(600)+B(602)+B(604) IF (DO_JVS(2731)) & -! JVS(2731) = Jac_FULL(260,136) - JVS(2731) = 0 +! JVS(2731) = Jac_FULL(263,236) + JVS(2731) = 0.732*B(213)+0.9*B(1381) IF (DO_JVS(2732)) & -! JVS(2732) = Jac_FULL(260,137) - JVS(2732) = 0 +! JVS(2732) = Jac_FULL(263,237) + JVS(2732) = 0.75*B(157) IF (DO_JVS(2733)) & -! JVS(2733) = Jac_FULL(260,138) - JVS(2733) = 0.5*B(1193) +! JVS(2733) = Jac_FULL(263,238) + JVS(2733) = 0.23*B(622)+0.75*B(626) IF (DO_JVS(2734)) & -! JVS(2734) = Jac_FULL(260,144) - JVS(2734) = -B(6) +! JVS(2734) = Jac_FULL(263,239) + JVS(2734) = 0.75*B(177) IF (DO_JVS(2735)) & -! JVS(2735) = Jac_FULL(260,147) +! JVS(2735) = Jac_FULL(263,240) JVS(2735) = 0 IF (DO_JVS(2736)) & -! JVS(2736) = Jac_FULL(260,157) - JVS(2736) = B(266) +! JVS(2736) = Jac_FULL(263,241) + JVS(2736) = 0.241*B(993) IF (DO_JVS(2737)) & -! JVS(2737) = Jac_FULL(260,169) - JVS(2737) = 2*B(1261)+B(1263)+2*B(1265)+B(1266)+B(1268) +! JVS(2737) = Jac_FULL(263,242) + JVS(2737) = 0.022*B(1073)+0.55*B(1507)+0.15*B(1508) IF (DO_JVS(2738)) & -! JVS(2738) = Jac_FULL(260,171) - JVS(2738) = 0 +! JVS(2738) = Jac_FULL(263,243) + JVS(2738) = 0.055*B(1501) IF (DO_JVS(2739)) & -! JVS(2739) = Jac_FULL(260,172) - JVS(2739) = B(1274)+B(1276) +! JVS(2739) = Jac_FULL(263,244) + JVS(2739) = 0.063*B(718)+B(724)+0.3*B(725)+2*B(727)+2*B(728)+2*B(738)+B(740)+B(752) IF (DO_JVS(2740)) & -! JVS(2740) = Jac_FULL(260,174) - JVS(2740) = 0 +! JVS(2740) = Jac_FULL(263,245) + JVS(2740) = 0.063*B(714)+B(722)+0.3*B(723)+2*B(726)+2*B(729)+2*B(734)+B(736)+B(744) IF (DO_JVS(2741)) & -! JVS(2741) = Jac_FULL(260,177) - JVS(2741) = 0 +! JVS(2741) = Jac_FULL(263,246) + JVS(2741) = 0.563*B(911)+0.645*B(914) IF (DO_JVS(2742)) & -! JVS(2742) = Jac_FULL(260,185) - JVS(2742) = 0 +! JVS(2742) = Jac_FULL(263,247) + JVS(2742) = 0.527*B(906)+1.86*B(910)+0.563*B(912)+1.577*B(916)+B(918)+B(922)+B(926) IF (DO_JVS(2743)) & -! JVS(2743) = Jac_FULL(260,195) - JVS(2743) = 0 +! JVS(2743) = Jac_FULL(263,248) + JVS(2743) = 0.6*B(983)+B(1387) IF (DO_JVS(2744)) & -! JVS(2744) = Jac_FULL(260,196) - JVS(2744) = 0 +! JVS(2744) = Jac_FULL(263,249) + JVS(2744) = B(1056) IF (DO_JVS(2745)) & -! JVS(2745) = Jac_FULL(260,198) - JVS(2745) = 0 +! JVS(2745) = Jac_FULL(263,250) + JVS(2745) = B(1390) IF (DO_JVS(2746)) & -! JVS(2746) = Jac_FULL(260,201) - JVS(2746) = 0 +! JVS(2746) = Jac_FULL(263,251) + JVS(2746) = 0.12*B(989)+B(1389) IF (DO_JVS(2747)) & -! JVS(2747) = Jac_FULL(260,205) - JVS(2747) = B(1124) +! JVS(2747) = Jac_FULL(263,252) + JVS(2747) = B(130)+0.15*B(165)+0.5*B(185)+0.9*B(256) IF (DO_JVS(2748)) & -! JVS(2748) = Jac_FULL(260,206) - JVS(2748) = 0.5*B(1226) +! JVS(2748) = Jac_FULL(263,253) + JVS(2748) = 0.5*B(211) IF (DO_JVS(2749)) & -! JVS(2749) = Jac_FULL(260,209) - JVS(2749) = 0 +! JVS(2749) = Jac_FULL(263,254) + JVS(2749) = 0.75*B(187) IF (DO_JVS(2750)) & -! JVS(2750) = Jac_FULL(260,210) - JVS(2750) = 0 +! JVS(2750) = Jac_FULL(263,255) + JVS(2750) = B(276) IF (DO_JVS(2751)) & -! JVS(2751) = Jac_FULL(260,211) - JVS(2751) = 0 +! JVS(2751) = Jac_FULL(263,256) + JVS(2751) = 0.75*B(181) IF (DO_JVS(2752)) & -! JVS(2752) = Jac_FULL(260,212) - JVS(2752) = 0 +! JVS(2752) = Jac_FULL(263,257) + JVS(2752) = 0.64*B(128)+0.95*B(183)+0.351*B(262) IF (DO_JVS(2753)) & -! JVS(2753) = Jac_FULL(260,216) - JVS(2753) = 0 +! JVS(2753) = Jac_FULL(263,258) + JVS(2753) = 0.75*B(189) IF (DO_JVS(2754)) & -! JVS(2754) = Jac_FULL(260,217) +! JVS(2754) = Jac_FULL(263,259) JVS(2754) = 0 IF (DO_JVS(2755)) & -! JVS(2755) = Jac_FULL(260,218) - JVS(2755) = B(228) +! JVS(2755) = Jac_FULL(263,261) + JVS(2755) = B(252)+0.9*B(257)+0.351*B(263)+0.9*B(265)+0.9*B(271)+0.385*B(653)+0.287*B(673)+B(919) IF (DO_JVS(2756)) & -! JVS(2756) = Jac_FULL(260,220) - JVS(2756) = 0 +! JVS(2756) = Jac_FULL(263,263) + JVS(2756) = -B(20)-B(63)-B(93)-B(314)-B(386)-B(466)-B(1365)-B(1366) IF (DO_JVS(2757)) & -! JVS(2757) = Jac_FULL(260,221) - JVS(2757) = 0 +! JVS(2757) = Jac_FULL(263,264) + JVS(2757) = 0.05*B(95) IF (DO_JVS(2758)) & -! JVS(2758) = Jac_FULL(260,222) - JVS(2758) = B(182) +! JVS(2758) = Jac_FULL(263,266) + JVS(2758) = B(34)+B(49)+B(55)+2*B(56)+0.87*B(57)+0.75*B(158)+1.25*B(160)+0.75*B(176)+0.75*B(178)+0.75*B(182)+0.95& + &*B(184)+0.5*B(186)+0.75*B(188)+0.75*B(190)+1.25*B(192)+B(253)+B(277)+B(430)+B(514)+0.75*B(627)+1.04*B(651)& + &+B(667)+0.85*B(669)+2*B(735)+B(737)+2*B(739)+B(741)+0.645*B(915)+1.577*B(917)+B(1057)+0.8*B(1106)+B(1129)& + &+B(1180)+B(1182)+B(1205) IF (DO_JVS(2759)) & -! JVS(2759) = Jac_FULL(260,224) - JVS(2759) = 0 +! JVS(2759) = Jac_FULL(263,267) + JVS(2759) = B(593) IF (DO_JVS(2760)) & -! JVS(2760) = Jac_FULL(260,225) - JVS(2760) = 0 +! JVS(2760) = Jac_FULL(263,272) + JVS(2760) = 0.25*B(345) IF (DO_JVS(2761)) & -! JVS(2761) = Jac_FULL(260,226) - JVS(2761) = 0 +! JVS(2761) = Jac_FULL(263,273) + JVS(2761) = -B(315) IF (DO_JVS(2762)) & -! JVS(2762) = Jac_FULL(260,228) - JVS(2762) = B(230) +! JVS(2762) = Jac_FULL(263,276) + JVS(2762) = -B(21)+B(24)+B(605) IF (DO_JVS(2763)) & -! JVS(2763) = Jac_FULL(260,229) - JVS(2763) = 0 +! JVS(2763) = Jac_FULL(263,278) + JVS(2763) = 0.06*B(599)+0.06*B(601) IF (DO_JVS(2764)) & -! JVS(2764) = Jac_FULL(260,232) - JVS(2764) = 0 +! JVS(2764) = Jac_FULL(263,279) + JVS(2764) = B(50)+B(121)+0.64*B(129)+B(131)+B(139)+B(595)+0.23*B(623)+0.231*B(647)+0.287*B(661)+B(745)+B(753)+0.716& + &*B(790)+0.706*B(797)+B(840)+0.272*B(874)+B(881)+0.065*B(889)+0.142*B(895)+0.383*B(901)+B(927)+0.249*B(960)& + &+0.34*B(964)+0.242*B(1030)+0.14*B(1041)+B(1045) IF (DO_JVS(2765)) & -! JVS(2765) = Jac_FULL(260,234) - JVS(2765) = 0 +! JVS(2765) = Jac_FULL(263,281) + JVS(2765) = -B(94)+B(287)+0.385*B(655)+0.287*B(677)+B(923)+B(1206) IF (DO_JVS(2766)) & -! JVS(2766) = Jac_FULL(260,236) - JVS(2766) = 0 +! JVS(2766) = Jac_FULL(263,282) + JVS(2766) = B(35)+0.5*B(212)+B(603)+0.04*B(643)+0.827*B(705)+0.6*B(984)+0.12*B(990)+B(1094) IF (DO_JVS(2767)) & -! JVS(2767) = Jac_FULL(260,237) - JVS(2767) = 0 +! JVS(2767) = Jac_FULL(263,284) + JVS(2767) = 0.15*B(166)+0.063*B(715)+0.063*B(719)+0.14*B(794)+0.14*B(801)+0.65*B(836)+0.059*B(872)+0.599*B(879)+0.031& + &*B(887)+0.065*B(893)+0.104*B(899)+0.527*B(907)+0.126*B(956)+0.088*B(958)+0.05*B(1028)+0.083*B(1034)+0.5& + &*B(1036) IF (DO_JVS(2768)) & -! JVS(2768) = Jac_FULL(260,238) - JVS(2768) = 0 +! JVS(2768) = Jac_FULL(263,285) + JVS(2768) = B(431) IF (DO_JVS(2769)) & -! JVS(2769) = Jac_FULL(260,239) - JVS(2769) = 0 +! JVS(2769) = Jac_FULL(263,286) + JVS(2769) = B(25)+0.87*B(58)+0.3*B(60)-B(64)+B(90)+0.05*B(96)+0.732*B(214)+0.22*B(248)+B(283)+B(589)+B(697)+0.3*B(711)& + &+0.3*B(713)+0.085*B(759)+0.165*B(761)+0.5*B(769)+0.018*B(785)+0.018*B(787)+0.241*B(994)+0.25*B(1038)+0.022& + &*B(1074)+0.5*B(1080)+B(1084) IF (DO_JVS(2770)) & -! JVS(2770) = Jac_FULL(260,240) - JVS(2770) = 0 +! JVS(2770) = Jac_FULL(263,288) + JVS(2770) = -B(387) IF (DO_JVS(2771)) & -! JVS(2771) = Jac_FULL(260,241) - JVS(2771) = 0 +! JVS(2771) = Jac_FULL(263,290) + JVS(2771) = -B(467)+B(515)+B(525) IF (DO_JVS(2772)) & -! JVS(2772) = Jac_FULL(260,242) - JVS(2772) = 0 +! JVS(2772) = Jac_FULL(263,291) + JVS(2772) = B(597) IF (DO_JVS(2773)) & -! JVS(2773) = Jac_FULL(260,243) - JVS(2773) = 0 +! JVS(2773) = Jac_FULL(264,96) + JVS(2773) = B(698)+B(1468) IF (DO_JVS(2774)) & -! JVS(2774) = Jac_FULL(260,244) - JVS(2774) = 0 +! JVS(2774) = Jac_FULL(264,106) + JVS(2774) = B(1397) IF (DO_JVS(2775)) & -! JVS(2775) = Jac_FULL(260,245) - JVS(2775) = 0 +! JVS(2775) = Jac_FULL(264,110) + JVS(2775) = 0.64*B(233)+B(1392) IF (DO_JVS(2776)) & -! JVS(2776) = Jac_FULL(260,246) - JVS(2776) = 0 +! JVS(2776) = Jac_FULL(264,112) + JVS(2776) = B(1396) IF (DO_JVS(2777)) & -! JVS(2777) = Jac_FULL(260,247) - JVS(2777) = 0.32*B(1040) +! JVS(2777) = Jac_FULL(264,133) + JVS(2777) = B(193)+B(526) IF (DO_JVS(2778)) & -! JVS(2778) = Jac_FULL(260,248) - JVS(2778) = 0 +! JVS(2778) = Jac_FULL(264,195) + JVS(2778) = B(606)+B(608)+B(610)+B(612)+B(614) IF (DO_JVS(2779)) & -! JVS(2779) = Jac_FULL(260,249) - JVS(2779) = 0 +! JVS(2779) = Jac_FULL(264,201) + JVS(2779) = B(138)+0.5*B(191)+0.9*B(264) IF (DO_JVS(2780)) & -! JVS(2780) = Jac_FULL(260,251) - JVS(2780) = 0 +! JVS(2780) = Jac_FULL(264,202) + JVS(2780) = 0.34*B(1398) IF (DO_JVS(2781)) & -! JVS(2781) = Jac_FULL(260,252) - JVS(2781) = 0 +! JVS(2781) = Jac_FULL(264,209) + JVS(2781) = B(120)+0.5*B(159)+0.9*B(270) IF (DO_JVS(2782)) & -! JVS(2782) = Jac_FULL(260,253) - JVS(2782) = 0 +! JVS(2782) = Jac_FULL(264,217) + JVS(2782) = B(106)+0.75*B(175)+1.6*B(197)+B(266)+B(520) IF (DO_JVS(2783)) & -! JVS(2783) = Jac_FULL(260,254) - JVS(2783) = 0 +! JVS(2783) = Jac_FULL(264,239) + JVS(2783) = B(110)+0.75*B(177)+1.6*B(198)+B(268)+B(522) IF (DO_JVS(2784)) & -! JVS(2784) = Jac_FULL(260,255) - JVS(2784) = B(156) +! JVS(2784) = Jac_FULL(264,253) + JVS(2784) = 0.5*B(211) IF (DO_JVS(2785)) & -! JVS(2785) = Jac_FULL(260,257) - JVS(2785) = 0 +! JVS(2785) = Jac_FULL(264,254) + JVS(2785) = 0.919*B(132)+0.15*B(167)+0.5*B(187)+0.9*B(258) IF (DO_JVS(2786)) & -! JVS(2786) = Jac_FULL(260,259) - JVS(2786) = B(1278)+B(1280)+B(1282)+B(1284)+B(1286)+B(1288)+B(1290) +! JVS(2786) = Jac_FULL(264,255) + JVS(2786) = 0 IF (DO_JVS(2787)) & -! JVS(2787) = Jac_FULL(260,260) - JVS(2787) = -B(7)-B(14)-B(70)-B(1408) +! JVS(2787) = Jac_FULL(264,256) + JVS(2787) = 0.34*B(124)+0.16*B(181)+0.29*B(254) IF (DO_JVS(2788)) & -! JVS(2788) = Jac_FULL(260,261) - JVS(2788) = B(100) +! JVS(2788) = Jac_FULL(264,257) + JVS(2788) = 0.97*B(128)+0.38*B(183)+0.675*B(262) IF (DO_JVS(2789)) & -! JVS(2789) = Jac_FULL(260,262) - JVS(2789) = B(96) +! JVS(2789) = Jac_FULL(264,259) + JVS(2789) = 0 IF (DO_JVS(2790)) & -! JVS(2790) = Jac_FULL(260,263) - JVS(2790) = 0 +! JVS(2790) = Jac_FULL(264,261) + JVS(2790) = 0.29*B(255)+0.9*B(259)+0.675*B(263)+0.9*B(265)+B(267)+B(269)+0.9*B(271) IF (DO_JVS(2791)) & -! JVS(2791) = Jac_FULL(260,266) - JVS(2791) = B(1348)+B(1358)+B(1360)+B(1362)+B(1364) +! JVS(2791) = Jac_FULL(264,264) + JVS(2791) = -B(95)-B(97)-B(316)-B(1374)-B(1375) IF (DO_JVS(2792)) & -! JVS(2792) = Jac_FULL(260,269) - JVS(2792) = B(68)-B(71) +! JVS(2792) = Jac_FULL(264,266) + JVS(2792) = 0.5*B(160)+0.75*B(176)+0.75*B(178)+0.16*B(182)+0.38*B(184)+0.5*B(188)+0.5*B(192) IF (DO_JVS(2793)) & -! JVS(2793) = Jac_FULL(260,270) - JVS(2793) = B(69)+0.5*B(1257) +! JVS(2793) = Jac_FULL(264,267) + JVS(2793) = B(607) IF (DO_JVS(2794)) & -! JVS(2794) = Jac_FULL(260,271) - JVS(2794) = B(1264)+B(1277)+B(1281) +! JVS(2794) = Jac_FULL(264,273) + JVS(2794) = -B(317) IF (DO_JVS(2795)) & -! JVS(2795) = Jac_FULL(260,272) - JVS(2795) = B(1283) +! JVS(2795) = Jac_FULL(264,276) + JVS(2795) = B(613) IF (DO_JVS(2796)) & -! JVS(2796) = Jac_FULL(260,273) - JVS(2796) = 0 +! JVS(2796) = Jac_FULL(264,278) + JVS(2796) = B(615) IF (DO_JVS(2797)) & -! JVS(2797) = Jac_FULL(260,274) - JVS(2797) = 0 +! JVS(2797) = Jac_FULL(264,279) + JVS(2797) = B(107)+B(111)+B(121)+0.34*B(125)+0.97*B(129)+0.919*B(133)+B(139)+B(609) IF (DO_JVS(2798)) & -! JVS(2798) = Jac_FULL(260,275) - JVS(2798) = B(1285)+B(1359) +! JVS(2798) = Jac_FULL(264,281) + JVS(2798) = -B(98) IF (DO_JVS(2799)) & -! JVS(2799) = Jac_FULL(260,276) - JVS(2799) = B(1287)+B(1361) +! JVS(2799) = Jac_FULL(264,282) + JVS(2799) = 0.5*B(212) IF (DO_JVS(2800)) & -! JVS(2800) = Jac_FULL(260,277) - JVS(2800) = 0 +! JVS(2800) = Jac_FULL(264,284) + JVS(2800) = 0.15*B(168) IF (DO_JVS(2801)) & -! JVS(2801) = Jac_FULL(260,278) - JVS(2801) = B(1267)+B(1289)+B(1363) +! JVS(2801) = Jac_FULL(264,286) + JVS(2801) = -B(96)+B(194)+0.64*B(234)+B(699) IF (DO_JVS(2802)) & -! JVS(2802) = Jac_FULL(260,279) - JVS(2802) = 2*B(1262)+B(1275)+B(1279)+B(1349) +! JVS(2802) = Jac_FULL(264,290) + JVS(2802) = B(521)+B(523)+B(527) IF (DO_JVS(2803)) & -! JVS(2803) = Jac_FULL(260,280) - JVS(2803) = 0 +! JVS(2803) = Jac_FULL(264,291) + JVS(2803) = B(611) IF (DO_JVS(2804)) & -! JVS(2804) = Jac_FULL(260,281) - JVS(2804) = 0 +! JVS(2804) = Jac_FULL(265,45) + JVS(2804) = B(693) IF (DO_JVS(2805)) & -! JVS(2805) = Jac_FULL(260,282) - JVS(2805) = 0 +! JVS(2805) = Jac_FULL(265,90) + JVS(2805) = B(286) IF (DO_JVS(2806)) & -! JVS(2806) = Jac_FULL(260,283) - JVS(2806) = B(1269)+B(1291)+B(1365) +! JVS(2806) = Jac_FULL(265,98) + JVS(2806) = B(692) IF (DO_JVS(2807)) & -! JVS(2807) = Jac_FULL(260,284) - JVS(2807) = 0 +! JVS(2807) = Jac_FULL(265,101) + JVS(2807) = B(1148) IF (DO_JVS(2808)) & -! JVS(2808) = Jac_FULL(260,285) - JVS(2808) = 0 +! JVS(2808) = Jac_FULL(265,114) + JVS(2808) = B(140) IF (DO_JVS(2809)) & -! JVS(2809) = Jac_FULL(260,286) - JVS(2809) = 0 +! JVS(2809) = Jac_FULL(265,115) + JVS(2809) = 0.5*B(1138) IF (DO_JVS(2810)) & -! JVS(2810) = Jac_FULL(260,287) - JVS(2810) = B(97)+B(101)+B(144)+B(157)+B(183)+B(229)+B(231)+B(267)+B(316)+0.32*B(1041)+B(1125)+0.742*B(1184)+0.5& - &*B(1188)+0.5*B(1194)+B(1198)+0.5*B(1227)+B(1258) +! JVS(2810) = Jac_FULL(265,118) + JVS(2810) = 0.742*B(1134) IF (DO_JVS(2811)) & -! JVS(2811) = Jac_FULL(261,88) - JVS(2811) = B(747)+B(1509) +! JVS(2811) = Jac_FULL(265,134) + JVS(2811) = 0 IF (DO_JVS(2812)) & -! JVS(2812) = Jac_FULL(261,94) - JVS(2812) = B(1438) +! JVS(2812) = Jac_FULL(265,138) + JVS(2812) = -B(13) IF (DO_JVS(2813)) & -! JVS(2813) = Jac_FULL(261,108) - JVS(2813) = 0.64*B(250)+B(1433) +! JVS(2813) = Jac_FULL(265,139) + JVS(2813) = 0 IF (DO_JVS(2814)) & -! JVS(2814) = Jac_FULL(261,110) - JVS(2814) = B(1437) +! JVS(2814) = Jac_FULL(265,140) + JVS(2814) = 0 IF (DO_JVS(2815)) & -! JVS(2815) = Jac_FULL(261,129) - JVS(2815) = B(196)+B(567) +! JVS(2815) = Jac_FULL(265,142) + JVS(2815) = 0.5*B(1144) IF (DO_JVS(2816)) & -! JVS(2816) = Jac_FULL(261,191) - JVS(2816) = B(655)+B(657)+B(659)+B(661)+B(663) +! JVS(2816) = Jac_FULL(265,147) + JVS(2816) = -B(6) IF (DO_JVS(2817)) & -! JVS(2817) = Jac_FULL(261,197) - JVS(2817) = B(141)+0.5*B(194)+B(283) +! JVS(2817) = Jac_FULL(265,151) + JVS(2817) = 0 IF (DO_JVS(2818)) & -! JVS(2818) = Jac_FULL(261,198) - JVS(2818) = 0.32*B(1439) +! JVS(2818) = Jac_FULL(265,161) + JVS(2818) = B(249) IF (DO_JVS(2819)) & -! JVS(2819) = Jac_FULL(261,204) - JVS(2819) = B(123)+0.5*B(162)+B(238) +! JVS(2819) = Jac_FULL(265,173) + JVS(2819) = 2*B(1214)+B(1216)+2*B(1218)+B(1219)+B(1221) IF (DO_JVS(2820)) & -! JVS(2820) = Jac_FULL(261,213) - JVS(2820) = B(109)+0.75*B(178)+2*B(200)+B(202)+B(297)+B(301)+B(561) +! JVS(2820) = Jac_FULL(265,175) + JVS(2820) = 0 IF (DO_JVS(2821)) & -! JVS(2821) = Jac_FULL(261,235) - JVS(2821) = B(113)+0.75*B(180)+2*B(201)+B(203)+B(299)+B(303)+B(563) +! JVS(2821) = Jac_FULL(265,176) + JVS(2821) = B(1227)+B(1229) IF (DO_JVS(2822)) & -! JVS(2822) = Jac_FULL(261,249) - JVS(2822) = 0.93*B(135)+0.15*B(170)+0.5*B(190)+B(277) +! JVS(2822) = Jac_FULL(265,178) + JVS(2822) = 0 IF (DO_JVS(2823)) & -! JVS(2823) = Jac_FULL(261,250) +! JVS(2823) = Jac_FULL(265,181) JVS(2823) = 0 IF (DO_JVS(2824)) & -! JVS(2824) = Jac_FULL(261,251) - JVS(2824) = 0.86*B(131)+0.38*B(186)+0.75*B(281) +! JVS(2824) = Jac_FULL(265,189) + JVS(2824) = 0 IF (DO_JVS(2825)) & -! JVS(2825) = Jac_FULL(261,252) - JVS(2825) = 0.32*B(127)+0.16*B(184)+0.32*B(273) +! JVS(2825) = Jac_FULL(265,199) + JVS(2825) = 0 IF (DO_JVS(2826)) & -! JVS(2826) = Jac_FULL(261,254) - JVS(2826) = 0.5*B(216) +! JVS(2826) = Jac_FULL(265,200) + JVS(2826) = 0 IF (DO_JVS(2827)) & -! JVS(2827) = Jac_FULL(261,255) +! JVS(2827) = Jac_FULL(265,202) JVS(2827) = 0 IF (DO_JVS(2828)) & -! JVS(2828) = Jac_FULL(261,257) - JVS(2828) = B(239)+0.32*B(274)+B(278)+0.75*B(282)+B(284)+B(298)+B(300)+B(302)+B(304) +! JVS(2828) = Jac_FULL(265,205) + JVS(2828) = 0 IF (DO_JVS(2829)) & -! JVS(2829) = Jac_FULL(261,258) - JVS(2829) = B(656) +! JVS(2829) = Jac_FULL(265,208) + JVS(2829) = B(1075) IF (DO_JVS(2830)) & -! JVS(2830) = Jac_FULL(261,261) - JVS(2830) = -B(98)-B(100)-B(345)-B(1415)-B(1416) +! JVS(2830) = Jac_FULL(265,210) + JVS(2830) = 0.5*B(1177) IF (DO_JVS(2831)) & -! JVS(2831) = Jac_FULL(261,262) +! JVS(2831) = Jac_FULL(265,213) JVS(2831) = 0 IF (DO_JVS(2832)) & -! JVS(2832) = Jac_FULL(261,263) - JVS(2832) = 0.5*B(163)+0.75*B(179)+0.75*B(181)+0.16*B(185)+0.38*B(187)+0.5*B(191)+0.5*B(195) +! JVS(2832) = Jac_FULL(265,214) + JVS(2832) = 0 IF (DO_JVS(2833)) & -! JVS(2833) = Jac_FULL(261,269) - JVS(2833) = -B(99)+B(197)+0.64*B(251)+B(748) +! JVS(2833) = Jac_FULL(265,215) + JVS(2833) = 0 IF (DO_JVS(2834)) & -! JVS(2834) = Jac_FULL(261,270) - JVS(2834) = B(660) +! JVS(2834) = Jac_FULL(265,216) + JVS(2834) = 0 IF (DO_JVS(2835)) & -! JVS(2835) = Jac_FULL(261,277) - JVS(2835) = 0.5*B(217) +! JVS(2835) = Jac_FULL(265,220) + JVS(2835) = 0 IF (DO_JVS(2836)) & -! JVS(2836) = Jac_FULL(261,279) - JVS(2836) = B(664) +! JVS(2836) = Jac_FULL(265,222) + JVS(2836) = 0 IF (DO_JVS(2837)) & -! JVS(2837) = Jac_FULL(261,280) - JVS(2837) = B(110)+B(114)+B(124)+0.32*B(128)+0.86*B(132)+0.93*B(136)+B(142)+B(658) +! JVS(2837) = Jac_FULL(265,223) + JVS(2837) = B(223) IF (DO_JVS(2838)) & -! JVS(2838) = Jac_FULL(261,281) - JVS(2838) = 0.15*B(171) +! JVS(2838) = Jac_FULL(265,224) + JVS(2838) = 0 IF (DO_JVS(2839)) & -! JVS(2839) = Jac_FULL(261,282) - JVS(2839) = -B(346) +! JVS(2839) = Jac_FULL(265,225) + JVS(2839) = 0 IF (DO_JVS(2840)) & -! JVS(2840) = Jac_FULL(261,284) - JVS(2840) = 0 +! JVS(2840) = Jac_FULL(265,226) + JVS(2840) = B(179) IF (DO_JVS(2841)) & -! JVS(2841) = Jac_FULL(261,285) - JVS(2841) = B(562)+B(564)+B(568) +! JVS(2841) = Jac_FULL(265,228) + JVS(2841) = 0 IF (DO_JVS(2842)) & -! JVS(2842) = Jac_FULL(261,286) - JVS(2842) = B(662) +! JVS(2842) = Jac_FULL(265,229) + JVS(2842) = 0 IF (DO_JVS(2843)) & -! JVS(2843) = Jac_FULL(261,287) - JVS(2843) = -B(101) +! JVS(2843) = Jac_FULL(265,230) + JVS(2843) = 0 IF (DO_JVS(2844)) & -! JVS(2844) = Jac_FULL(262,71) - JVS(2844) = B(1492) +! JVS(2844) = Jac_FULL(265,232) + JVS(2844) = 0 IF (DO_JVS(2845)) & -! JVS(2845) = Jac_FULL(262,75) - JVS(2845) = B(1142) +! JVS(2845) = Jac_FULL(265,233) + JVS(2845) = B(225) IF (DO_JVS(2846)) & -! JVS(2846) = Jac_FULL(262,82) - JVS(2846) = B(311)+B(315) +! JVS(2846) = Jac_FULL(265,236) + JVS(2846) = 0 IF (DO_JVS(2847)) & -! JVS(2847) = Jac_FULL(262,83) - JVS(2847) = 0.5*B(1128)+B(1512) +! JVS(2847) = Jac_FULL(265,238) + JVS(2847) = 0 IF (DO_JVS(2848)) & -! JVS(2848) = Jac_FULL(262,85) - JVS(2848) = B(22)+B(23) +! JVS(2848) = Jac_FULL(265,240) + JVS(2848) = 0 IF (DO_JVS(2849)) & -! JVS(2849) = Jac_FULL(262,87) - JVS(2849) = B(745)+B(1508) +! JVS(2849) = Jac_FULL(265,241) + JVS(2849) = 0 IF (DO_JVS(2850)) & -! JVS(2850) = Jac_FULL(262,102) - JVS(2850) = 2*B(1156) +! JVS(2850) = Jac_FULL(265,242) + JVS(2850) = 0 IF (DO_JVS(2851)) & -! JVS(2851) = Jac_FULL(262,110) - JVS(2851) = B(1437) +! JVS(2851) = Jac_FULL(265,243) + JVS(2851) = 0 IF (DO_JVS(2852)) & -! JVS(2852) = Jac_FULL(262,113) +! JVS(2852) = Jac_FULL(265,244) JVS(2852) = 0 IF (DO_JVS(2853)) & -! JVS(2853) = Jac_FULL(262,133) - JVS(2853) = 0.25*B(1086)+0.75*B(1522) +! JVS(2853) = Jac_FULL(265,245) + JVS(2853) = 0 IF (DO_JVS(2854)) & -! JVS(2854) = Jac_FULL(262,134) - JVS(2854) = B(60)+B(1405) +! JVS(2854) = Jac_FULL(265,246) + JVS(2854) = 0 IF (DO_JVS(2855)) & -! JVS(2855) = Jac_FULL(262,136) - JVS(2855) = B(1535) +! JVS(2855) = Jac_FULL(265,247) + JVS(2855) = 0 IF (DO_JVS(2856)) & -! JVS(2856) = Jac_FULL(262,137) - JVS(2856) = B(1536) +! JVS(2856) = Jac_FULL(265,248) + JVS(2856) = 0 IF (DO_JVS(2857)) & -! JVS(2857) = Jac_FULL(262,148) - JVS(2857) = 0.599*B(927)+B(929) +! JVS(2857) = Jac_FULL(265,249) + JVS(2857) = 0 IF (DO_JVS(2858)) & -! JVS(2858) = Jac_FULL(262,153) - JVS(2858) = B(1526) +! JVS(2858) = Jac_FULL(265,250) + JVS(2858) = 0 IF (DO_JVS(2859)) & -! JVS(2859) = Jac_FULL(262,158) - JVS(2859) = B(1527) +! JVS(2859) = Jac_FULL(265,251) + JVS(2859) = 0.32*B(991) IF (DO_JVS(2860)) & -! JVS(2860) = Jac_FULL(262,161) - JVS(2860) = 0.018*B(835) +! JVS(2860) = Jac_FULL(265,252) + JVS(2860) = 0 IF (DO_JVS(2861)) & -! JVS(2861) = Jac_FULL(262,162) - JVS(2861) = 0.059*B(920)+0.272*B(922) +! JVS(2861) = Jac_FULL(265,253) + JVS(2861) = 0 IF (DO_JVS(2862)) & -! JVS(2862) = Jac_FULL(262,163) - JVS(2862) = 0.065*B(941)+0.142*B(943) +! JVS(2862) = Jac_FULL(265,254) + JVS(2862) = 0 IF (DO_JVS(2863)) & -! JVS(2863) = Jac_FULL(262,164) - JVS(2863) = 0.031*B(935)+0.065*B(937) +! JVS(2863) = Jac_FULL(265,256) + JVS(2863) = 0 IF (DO_JVS(2864)) & -! JVS(2864) = Jac_FULL(262,165) - JVS(2864) = 0.04*B(691) +! JVS(2864) = Jac_FULL(265,257) + JVS(2864) = 0 IF (DO_JVS(2865)) & -! JVS(2865) = Jac_FULL(262,166) - JVS(2865) = B(1516) +! JVS(2865) = Jac_FULL(265,258) + JVS(2865) = 0 IF (DO_JVS(2866)) & -! JVS(2866) = Jac_FULL(262,167) - JVS(2866) = 0.018*B(833) +! JVS(2866) = Jac_FULL(265,259) + JVS(2866) = B(153) IF (DO_JVS(2867)) & -! JVS(2867) = Jac_FULL(262,168) - JVS(2867) = B(1132)+B(1513) +! JVS(2867) = Jac_FULL(265,261) + JVS(2867) = 0 IF (DO_JVS(2868)) & -! JVS(2868) = Jac_FULL(262,170) - JVS(2868) = 0.5*B(817) +! JVS(2868) = Jac_FULL(265,262) + JVS(2868) = B(1231)+B(1233)+B(1235)+B(1237)+B(1239)+B(1241)+B(1243) IF (DO_JVS(2869)) & -! JVS(2869) = Jac_FULL(262,175) - JVS(2869) = 0.8*B(1154) +! JVS(2869) = Jac_FULL(265,263) + JVS(2869) = B(93) IF (DO_JVS(2870)) & -! JVS(2870) = Jac_FULL(262,176) - JVS(2870) = B(1230) +! JVS(2870) = Jac_FULL(265,264) + JVS(2870) = B(97) IF (DO_JVS(2871)) & -! JVS(2871) = Jac_FULL(262,177) - JVS(2871) = B(1538) +! JVS(2871) = Jac_FULL(265,265) + JVS(2871) = -B(7)-B(14)-B(67)-B(1367) IF (DO_JVS(2872)) & -! JVS(2872) = Jac_FULL(262,178) - JVS(2872) = B(1177) +! JVS(2872) = Jac_FULL(265,266) + JVS(2872) = 0 IF (DO_JVS(2873)) & -! JVS(2873) = Jac_FULL(262,179) - JVS(2873) = 0.716*B(838)+0.14*B(842) +! JVS(2873) = Jac_FULL(265,267) + JVS(2873) = 0 IF (DO_JVS(2874)) & -! JVS(2874) = Jac_FULL(262,180) - JVS(2874) = 0.706*B(845)+0.14*B(849) +! JVS(2874) = Jac_FULL(265,270) + JVS(2874) = B(1305)+B(1306)+B(1307)+B(1317)+B(1319)+B(1321)+B(1323) IF (DO_JVS(2875)) & -! JVS(2875) = Jac_FULL(262,182) - JVS(2875) = 0.085*B(807) +! JVS(2875) = Jac_FULL(265,272) + JVS(2875) = 0 IF (DO_JVS(2876)) & -! JVS(2876) = Jac_FULL(262,184) - JVS(2876) = 0.165*B(809) +! JVS(2876) = Jac_FULL(265,273) + JVS(2876) = 0 IF (DO_JVS(2877)) & -! JVS(2877) = Jac_FULL(262,185) - JVS(2877) = 0.088*B(1006)+0.34*B(1012) +! JVS(2877) = Jac_FULL(265,274) + JVS(2877) = 0 IF (DO_JVS(2878)) & -! JVS(2878) = Jac_FULL(262,186) - JVS(2878) = B(377)+B(379) +! JVS(2878) = Jac_FULL(265,275) + JVS(2878) = B(1217)+B(1230)+B(1234) IF (DO_JVS(2879)) & -! JVS(2879) = Jac_FULL(262,187) - JVS(2879) = B(1228) +! JVS(2879) = Jac_FULL(265,276) + JVS(2879) = 0 IF (DO_JVS(2880)) & -! JVS(2880) = Jac_FULL(262,190) - JVS(2880) = 0.65*B(884)+B(888) +! JVS(2880) = Jac_FULL(265,277) + JVS(2880) = B(1240)+B(1320) IF (DO_JVS(2881)) & -! JVS(2881) = Jac_FULL(262,193) - JVS(2881) = B(1494) +! JVS(2881) = Jac_FULL(265,278) + JVS(2881) = 2*B(1215)+B(1228)+B(1232)+B(1308) IF (DO_JVS(2882)) & -! JVS(2882) = Jac_FULL(262,194) - JVS(2882) = B(1515) +! JVS(2882) = Jac_FULL(265,279) + JVS(2882) = 0 IF (DO_JVS(2883)) & -! JVS(2883) = Jac_FULL(262,197) - JVS(2883) = B(141)+1.25*B(194)+B(283) +! JVS(2883) = Jac_FULL(265,280) + JVS(2883) = B(1220)+B(1242)+B(1322) IF (DO_JVS(2884)) & -! JVS(2884) = Jac_FULL(262,200) - JVS(2884) = 0.05*B(1076)+0.242*B(1078) +! JVS(2884) = Jac_FULL(265,281) + JVS(2884) = B(94)+B(98)+B(141)+B(154)+B(180)+B(224)+B(226)+B(250)+B(287)+0.32*B(992)+B(1076)+0.742*B(1135)+0.5*B(1139)& + &+0.5*B(1145)+B(1149)+0.5*B(1178)+B(1211) IF (DO_JVS(2885)) & -! JVS(2885) = Jac_FULL(262,201) - JVS(2885) = 0.083*B(1082)+0.14*B(1089) +! JVS(2885) = Jac_FULL(265,282) + JVS(2885) = 0 IF (DO_JVS(2886)) & -! JVS(2886) = Jac_FULL(262,202) - JVS(2886) = 0.1*B(1544) +! JVS(2886) = Jac_FULL(265,283) + JVS(2886) = B(1238)+B(1318) IF (DO_JVS(2887)) & -! JVS(2887) = Jac_FULL(262,203) - JVS(2887) = 0.5*B(1084)+B(1093) +! JVS(2887) = Jac_FULL(265,284) + JVS(2887) = 0 IF (DO_JVS(2888)) & -! JVS(2888) = Jac_FULL(262,204) - JVS(2888) = B(123)+1.25*B(162)+B(238) +! JVS(2888) = Jac_FULL(265,285) + JVS(2888) = 0 IF (DO_JVS(2889)) & -! JVS(2889) = Jac_FULL(262,205) - JVS(2889) = B(637)+B(1500) +! JVS(2889) = Jac_FULL(265,286) + JVS(2889) = B(65)-B(68) IF (DO_JVS(2890)) & -! JVS(2890) = Jac_FULL(262,210) - JVS(2890) = 0 +! JVS(2890) = Jac_FULL(265,287) + JVS(2890) = B(1222)+B(1244)+B(1324) IF (DO_JVS(2891)) & -! JVS(2891) = Jac_FULL(262,211) - JVS(2891) = B(715)+0.202*B(728) +! JVS(2891) = Jac_FULL(265,288) + JVS(2891) = 0 IF (DO_JVS(2892)) & -! JVS(2892) = Jac_FULL(262,212) - JVS(2892) = 0.287*B(709)+0.965*B(717)+0.287*B(721)+0.287*B(725)+0.202*B(729)+0.504*B(730) +! JVS(2892) = Jac_FULL(265,289) + JVS(2892) = B(1236) IF (DO_JVS(2893)) & -! JVS(2893) = Jac_FULL(262,213) - JVS(2893) = 0.75*B(178) +! JVS(2893) = Jac_FULL(265,290) + JVS(2893) = 0 IF (DO_JVS(2894)) & -! JVS(2894) = Jac_FULL(262,214) - JVS(2894) = B(92)+B(565) +! JVS(2894) = Jac_FULL(265,291) + JVS(2894) = B(66)+0.5*B(1210) IF (DO_JVS(2895)) & -! JVS(2895) = Jac_FULL(262,216) - JVS(2895) = 0 +! JVS(2895) = Jac_FULL(266,46) + JVS(2895) = B(586) IF (DO_JVS(2896)) & -! JVS(2896) = Jac_FULL(262,217) - JVS(2896) = 0.126*B(1004)+0.249*B(1008) +! JVS(2896) = Jac_FULL(266,67) + JVS(2896) = 0.3*B(1376) IF (DO_JVS(2897)) & -! JVS(2897) = Jac_FULL(262,218) - JVS(2897) = B(1425) +! JVS(2897) = Jac_FULL(266,74) + JVS(2897) = B(281)+B(1452) IF (DO_JVS(2898)) & -! JVS(2898) = Jac_FULL(262,220) - JVS(2898) = 0.827*B(753)+0.3*B(759)+0.3*B(761) +! JVS(2898) = Jac_FULL(266,88) + JVS(2898) = B(1399) IF (DO_JVS(2899)) & -! JVS(2899) = Jac_FULL(262,221) - JVS(2899) = 0.231*B(695)+1.04*B(699)+0.385*B(701)+0.385*B(703) +! JVS(2899) = Jac_FULL(266,90) + JVS(2899) = B(282)+B(284)+B(286) IF (DO_JVS(2900)) & -! JVS(2900) = Jac_FULL(262,224) - JVS(2900) = 0 +! JVS(2900) = Jac_FULL(266,100) + JVS(2900) = B(398)+B(1408) IF (DO_JVS(2901)) & -! JVS(2901) = Jac_FULL(262,225) - JVS(2901) = 0 +! JVS(2901) = Jac_FULL(266,106) + JVS(2901) = B(1397) IF (DO_JVS(2902)) & -! JVS(2902) = Jac_FULL(262,226) - JVS(2902) = 0.47*B(1518) +! JVS(2902) = Jac_FULL(266,136) + JVS(2902) = 0.162*B(1037)+0.488*B(1481) IF (DO_JVS(2903)) & -! JVS(2903) = Jac_FULL(262,227) - JVS(2903) = 0.23*B(1521) +! JVS(2903) = Jac_FULL(266,137) + JVS(2903) = 0.7*B(59)+B(516) IF (DO_JVS(2904)) & -! JVS(2904) = Jac_FULL(262,229) - JVS(2904) = 0.104*B(947)+0.383*B(949) +! JVS(2904) = Jac_FULL(266,149) + JVS(2904) = 0.9*B(396)+B(1409) IF (DO_JVS(2905)) & -! JVS(2905) = Jac_FULL(262,230) - JVS(2905) = B(641)+B(643)+B(645)+0.06*B(647)+0.06*B(649)+B(651)+B(653) +! JVS(2905) = Jac_FULL(266,179) + JVS(2905) = -B(1105) IF (DO_JVS(2906)) & -! JVS(2906) = Jac_FULL(262,232) - JVS(2906) = 0.732*B(218)+0.9*B(1422) +! JVS(2906) = Jac_FULL(266,180) + JVS(2906) = -B(1181) IF (DO_JVS(2907)) & -! JVS(2907) = Jac_FULL(262,233) - JVS(2907) = 0.75*B(160) +! JVS(2907) = Jac_FULL(266,184) + JVS(2907) = -B(1128)+B(1130) IF (DO_JVS(2908)) & -! JVS(2908) = Jac_FULL(262,234) - JVS(2908) = 0.23*B(671)+0.75*B(675) +! JVS(2908) = Jac_FULL(266,190) + JVS(2908) = B(47)+0.75*B(344)+B(464) IF (DO_JVS(2909)) & -! JVS(2909) = Jac_FULL(262,235) - JVS(2909) = 0.75*B(180) +! JVS(2909) = Jac_FULL(266,191) + JVS(2909) = -B(1179) IF (DO_JVS(2910)) & -! JVS(2910) = Jac_FULL(262,236) - JVS(2910) = 0 +! JVS(2910) = Jac_FULL(266,201) + JVS(2910) = -B(191)+0.9*B(264) IF (DO_JVS(2911)) & -! JVS(2911) = Jac_FULL(262,237) - JVS(2911) = 0.241*B(1042) +! JVS(2911) = Jac_FULL(266,202) + JVS(2911) = 0.19*B(1398) IF (DO_JVS(2912)) & -! JVS(2912) = Jac_FULL(262,238) - JVS(2912) = 0.022*B(1122)+0.55*B(1548)+0.15*B(1549) +! JVS(2912) = Jac_FULL(266,207) + JVS(2912) = 0.325*B(1035)+0.65*B(1044) IF (DO_JVS(2913)) & -! JVS(2913) = Jac_FULL(262,239) - JVS(2913) = 0.055*B(1542) +! JVS(2913) = Jac_FULL(266,209) + JVS(2913) = -B(159)+0.9*B(270) IF (DO_JVS(2914)) & -! JVS(2914) = Jac_FULL(262,240) - JVS(2914) = 0.527*B(955)+1.86*B(959)+0.563*B(960)+1.577*B(965)+B(967)+B(971)+B(975) +! JVS(2914) = Jac_FULL(266,215) + JVS(2914) = -B(666)+B(670) IF (DO_JVS(2915)) & -! JVS(2915) = Jac_FULL(262,241) - JVS(2915) = 0.563*B(961)+0.645*B(963) +! JVS(2915) = Jac_FULL(266,216) + JVS(2915) = -B(668)+0.5*B(672) IF (DO_JVS(2916)) & -! JVS(2916) = Jac_FULL(262,242) - JVS(2916) = 0.063*B(763)+B(771)+0.3*B(772)+2*B(775)+2*B(777)+2*B(783)+B(785)+B(793) +! JVS(2916) = Jac_FULL(266,217) + JVS(2916) = -B(175)+0.9*B(266) IF (DO_JVS(2917)) & -! JVS(2917) = Jac_FULL(262,243) - JVS(2917) = 0.063*B(767)+B(773)+0.3*B(774)+2*B(776)+2*B(778)+2*B(787)+B(789)+B(801) +! JVS(2917) = Jac_FULL(266,219) + JVS(2917) = B(144)+B(528) IF (DO_JVS(2918)) & -! JVS(2918) = Jac_FULL(262,244) - JVS(2918) = 0.6*B(1032)+B(1428) +! JVS(2918) = Jac_FULL(266,221) + JVS(2918) = B(1378)+2*B(1379) IF (DO_JVS(2919)) & -! JVS(2919) = Jac_FULL(262,245) - JVS(2919) = B(1105) +! JVS(2919) = Jac_FULL(266,224) + JVS(2919) = 0.407*B(704) IF (DO_JVS(2920)) & -! JVS(2920) = Jac_FULL(262,246) - JVS(2920) = B(1431) +! JVS(2920) = Jac_FULL(266,225) + JVS(2920) = -B(650)+0.5*B(652) IF (DO_JVS(2921)) & -! JVS(2921) = Jac_FULL(262,247) - JVS(2921) = 0.12*B(1038)+B(1430) +! JVS(2921) = Jac_FULL(266,226) + JVS(2921) = 0.15*B(1380) IF (DO_JVS(2922)) & -! JVS(2922) = Jac_FULL(262,248) - JVS(2922) = B(133)+0.15*B(168)+0.5*B(188)+B(275) +! JVS(2922) = Jac_FULL(266,237) + JVS(2922) = -B(157)+0.9*B(272) IF (DO_JVS(2923)) & -! JVS(2923) = Jac_FULL(262,249) - JVS(2923) = 0.75*B(190) +! JVS(2923) = Jac_FULL(266,238) + JVS(2923) = -B(626)+0.5*B(628) IF (DO_JVS(2924)) & -! JVS(2924) = Jac_FULL(262,250) - JVS(2924) = B(244)+B(246) +! JVS(2924) = Jac_FULL(266,239) + JVS(2924) = -B(177)+0.9*B(268) IF (DO_JVS(2925)) & -! JVS(2925) = Jac_FULL(262,251) - JVS(2925) = 0.57*B(131)+0.95*B(186)+0.39*B(281) +! JVS(2925) = Jac_FULL(266,244) + JVS(2925) = -B(738)-B(740) IF (DO_JVS(2926)) & -! JVS(2926) = Jac_FULL(262,252) - JVS(2926) = 0.75*B(184) +! JVS(2926) = Jac_FULL(266,245) + JVS(2926) = -B(734)-B(736) IF (DO_JVS(2927)) & -! JVS(2927) = Jac_FULL(262,253) - JVS(2927) = 0.75*B(192) +! JVS(2927) = Jac_FULL(266,246) + JVS(2927) = -B(914)+B(920) IF (DO_JVS(2928)) & -! JVS(2928) = Jac_FULL(262,254) - JVS(2928) = 0.5*B(216) +! JVS(2928) = Jac_FULL(266,247) + JVS(2928) = -B(916)+B(918) IF (DO_JVS(2929)) & -! JVS(2929) = Jac_FULL(262,255) - JVS(2929) = 0 +! JVS(2929) = Jac_FULL(266,248) + JVS(2929) = B(1388) IF (DO_JVS(2930)) & -! JVS(2930) = Jac_FULL(262,257) - JVS(2930) = B(239)+B(269)+B(271)+B(276)+0.39*B(282)+B(284)+0.385*B(702)+0.287*B(722)+B(968) +! JVS(2930) = Jac_FULL(266,249) + JVS(2930) = -B(1056) IF (DO_JVS(2931)) & -! JVS(2931) = Jac_FULL(262,258) - JVS(2931) = B(642) +! JVS(2931) = Jac_FULL(266,250) + JVS(2931) = 0.5*B(229) IF (DO_JVS(2932)) & -! JVS(2932) = Jac_FULL(262,261) - JVS(2932) = 0.05*B(98) +! JVS(2932) = Jac_FULL(266,251) + JVS(2932) = 0 IF (DO_JVS(2933)) & -! JVS(2933) = Jac_FULL(262,262) - JVS(2933) = -B(20)-B(66)-B(96)-B(343)-B(427)-B(505)-B(1406)-B(1407) +! JVS(2933) = Jac_FULL(266,252) + JVS(2933) = -B(185)+0.9*B(256) IF (DO_JVS(2934)) & -! JVS(2934) = Jac_FULL(262,263) - JVS(2934) = B(33)+B(48)+B(54)+2*B(55)+0.87*B(56)+0.75*B(161)+1.25*B(163)+0.75*B(179)+0.75*B(181)+0.75*B(185)+0.95& - &*B(187)+0.5*B(189)+0.75*B(191)+0.75*B(193)+1.25*B(195)+B(245)+B(247)+B(270)+B(272)+B(469)+B(555)+0.75& - &*B(676)+1.04*B(700)+B(716)+0.965*B(718)+2*B(784)+B(786)+2*B(788)+B(790)+0.645*B(964)+1.577*B(966)+B(1106)& - &+0.8*B(1155)+B(1178)+B(1229)+B(1231)+B(1254) +! JVS(2934) = Jac_FULL(266,253) + JVS(2934) = 0.28*B(211) IF (DO_JVS(2935)) & -! JVS(2935) = Jac_FULL(262,268) - JVS(2935) = B(378)+B(380) +! JVS(2935) = Jac_FULL(266,254) + JVS(2935) = 0.85*B(167)-0.75*B(187)+0.9*B(258) IF (DO_JVS(2936)) & -! JVS(2936) = Jac_FULL(262,269) - JVS(2936) = B(24)+0.87*B(57)+B(61)-B(67)+B(93)+0.05*B(99)+0.732*B(219)+B(312)+B(638)+B(746)+0.3*B(760)+0.3*B(762)& - &+0.085*B(808)+0.165*B(810)+0.5*B(818)+0.018*B(834)+0.018*B(836)+0.241*B(1043)+0.25*B(1087)+0.022*B(1123)& - &+0.5*B(1129)+B(1133) +! JVS(2936) = Jac_FULL(266,255) + JVS(2936) = B(274)-B(276) IF (DO_JVS(2937)) & -! JVS(2937) = Jac_FULL(262,270) - JVS(2937) = B(646) +! JVS(2937) = Jac_FULL(266,256) + JVS(2937) = 0.19*B(124)-0.91*B(181)+0.9*B(254) IF (DO_JVS(2938)) & -! JVS(2938) = Jac_FULL(262,273) - JVS(2938) = B(470) +! JVS(2938) = Jac_FULL(266,257) + JVS(2938) = -B(183)+0.9*B(262) IF (DO_JVS(2939)) & -! JVS(2939) = Jac_FULL(262,277) - JVS(2939) = B(34)+0.5*B(217)+B(652)+0.04*B(692)+0.827*B(754)+0.6*B(1033)+0.12*B(1039)+B(1143) +! JVS(2939) = Jac_FULL(266,258) + JVS(2939) = -B(189)+0.9*B(260) IF (DO_JVS(2940)) & -! JVS(2940) = Jac_FULL(262,279) - JVS(2940) = 0.06*B(648)+0.06*B(650) +! JVS(2940) = Jac_FULL(266,259) + JVS(2940) = 0 IF (DO_JVS(2941)) & -! JVS(2941) = Jac_FULL(262,280) - JVS(2941) = B(49)+B(124)+0.57*B(132)+B(134)+B(142)+B(644)+0.23*B(672)+0.231*B(696)+0.287*B(710)+B(794)+B(802)+0.716& - &*B(839)+0.706*B(846)+B(889)+0.272*B(923)+B(930)+0.065*B(938)+0.142*B(944)+0.383*B(950)+B(976)+0.249*B(1009)& - &+0.34*B(1013)+0.242*B(1079)+0.14*B(1090)+B(1094) +! JVS(2941) = Jac_FULL(266,261) + JVS(2941) = B(102)+2*B(251)-0.1*B(252)+0.9*B(255)+0.9*B(257)+0.9*B(259)+0.9*B(261)+0.9*B(263)+0.9*B(265)+0.9*B(267)& + &+0.9*B(269)+0.9*B(271)+0.9*B(273)+B(275)+0.5*B(629)+0.5*B(653)+B(671)+0.5*B(673)+B(919)+B(921)+0.5*B(1081)& + &+B(1131) IF (DO_JVS(2942)) & -! JVS(2942) = Jac_FULL(262,281) - JVS(2942) = 0.15*B(169)+0.063*B(764)+0.063*B(768)+0.14*B(843)+0.14*B(850)+0.65*B(885)+0.059*B(921)+0.599*B(928)+0.031& - &*B(936)+0.065*B(942)+0.104*B(948)+0.527*B(956)+0.126*B(1005)+0.088*B(1007)+0.05*B(1077)+0.083*B(1083)+0.5& - &*B(1085) +! JVS(2942) = Jac_FULL(266,264) + JVS(2942) = 0.88*B(1374) IF (DO_JVS(2943)) & -! JVS(2943) = Jac_FULL(262,282) - JVS(2943) = -B(344) +! JVS(2943) = Jac_FULL(266,266) + JVS(2943) = -B(34)-B(49)-B(51)-B(53)-2*B(55)-2*B(56)-B(57)-B(158)-B(160)-B(176)-B(178)-0.91*B(182)-B(184)-B(186)-0.75& + &*B(188)-B(190)-B(192)-0.1*B(253)-B(277)-B(279)-B(430)-B(514)-B(627)-B(651)-B(667)-B(669)-B(735)-B(737)& + &-B(739)-B(741)-B(915)-B(917)-B(1057)-B(1106)-B(1129)-B(1180)-B(1182)-B(1205) IF (DO_JVS(2944)) & -! JVS(2944) = Jac_FULL(262,284) - JVS(2944) = -B(428) +! JVS(2944) = Jac_FULL(266,267) + JVS(2944) = 0 IF (DO_JVS(2945)) & -! JVS(2945) = Jac_FULL(262,285) - JVS(2945) = -B(506)+B(556)+B(566) +! JVS(2945) = Jac_FULL(266,272) + JVS(2945) = 0.75*B(345)+0.9*B(397)+B(399) IF (DO_JVS(2946)) & -! JVS(2946) = Jac_FULL(262,286) - JVS(2946) = -B(21)+B(654) +! JVS(2946) = Jac_FULL(266,273) + JVS(2946) = 0 IF (DO_JVS(2947)) & -! JVS(2947) = Jac_FULL(262,287) - JVS(2947) = -B(97)+B(316)+0.385*B(704)+0.287*B(726)+B(972)+B(1255) +! JVS(2947) = Jac_FULL(266,276) + JVS(2947) = 0 IF (DO_JVS(2948)) & -! JVS(2948) = Jac_FULL(263,43) - JVS(2948) = B(635) +! JVS(2948) = Jac_FULL(266,278) + JVS(2948) = 0 IF (DO_JVS(2949)) & -! JVS(2949) = Jac_FULL(263,63) - JVS(2949) = 0.3*B(1417) +! JVS(2949) = Jac_FULL(266,279) + JVS(2949) = -B(50)-B(52)+B(103)+0.19*B(125)+0.65*B(1045) IF (DO_JVS(2950)) & -! JVS(2950) = Jac_FULL(263,66) - JVS(2950) = B(1440) +! JVS(2950) = Jac_FULL(266,281) + JVS(2950) = B(287)-B(1206) IF (DO_JVS(2951)) & -! JVS(2951) = Jac_FULL(263,71) - JVS(2951) = B(310)+B(1493) +! JVS(2951) = Jac_FULL(266,282) + JVS(2951) = -B(35)+0.28*B(212)+0.407*B(705) IF (DO_JVS(2952)) & -! JVS(2952) = Jac_FULL(263,82) - JVS(2952) = B(311)+B(313)+B(315) +! JVS(2952) = Jac_FULL(266,284) + JVS(2952) = -B(54)+0.85*B(168)+0.325*B(1036)+0.5*B(1082) IF (DO_JVS(2953)) & -! JVS(2953) = Jac_FULL(263,97) - JVS(2953) = B(437)+B(1449) +! JVS(2953) = Jac_FULL(266,285) + JVS(2953) = -B(431) IF (DO_JVS(2954)) & -! JVS(2954) = Jac_FULL(263,100) - JVS(2954) = B(1450) +! JVS(2954) = Jac_FULL(266,286) + JVS(2954) = B(48)-B(58)+0.7*B(60)+B(145)+0.5*B(230)+B(283)+B(285)+B(587)+0.162*B(1038) IF (DO_JVS(2955)) & -! JVS(2955) = Jac_FULL(263,133) - JVS(2955) = 0.162*B(1086)+0.488*B(1522) +! JVS(2955) = Jac_FULL(266,290) + JVS(2955) = B(465)-B(515)+B(517)+B(529) IF (DO_JVS(2956)) & -! JVS(2956) = Jac_FULL(263,134) - JVS(2956) = B(58)+B(557) +! JVS(2956) = Jac_FULL(266,291) + JVS(2956) = -B(280) IF (DO_JVS(2957)) & -! JVS(2957) = Jac_FULL(263,175) - JVS(2957) = -B(1154) +! JVS(2957) = Jac_FULL(267,58) + JVS(2957) = 0.364*B(1097) IF (DO_JVS(2958)) & -! JVS(2958) = Jac_FULL(263,176) - JVS(2958) = -B(1230) +! JVS(2958) = Jac_FULL(267,64) + JVS(2958) = 0.2*B(1116) IF (DO_JVS(2959)) & -! JVS(2959) = Jac_FULL(263,178) - JVS(2959) = -B(1177)+B(1179) +! JVS(2959) = Jac_FULL(267,66) + JVS(2959) = B(358)+B(1455) IF (DO_JVS(2960)) & -! JVS(2960) = Jac_FULL(263,186) - JVS(2960) = B(46)+B(375)+B(503) +! JVS(2960) = Jac_FULL(267,72) + JVS(2960) = B(508) IF (DO_JVS(2961)) & -! JVS(2961) = Jac_FULL(263,187) - JVS(2961) = -B(1228) +! JVS(2961) = Jac_FULL(267,78) + JVS(2961) = B(510) IF (DO_JVS(2962)) & -! JVS(2962) = Jac_FULL(263,197) - JVS(2962) = -B(194)+B(283) +! JVS(2962) = Jac_FULL(267,79) + JVS(2962) = 0.27*B(1118) IF (DO_JVS(2963)) & -! JVS(2963) = Jac_FULL(263,198) - JVS(2963) = 0.18*B(1439) +! JVS(2963) = Jac_FULL(267,80) + JVS(2963) = 0.3*B(1120) IF (DO_JVS(2964)) & -! JVS(2964) = Jac_FULL(263,203) - JVS(2964) = 0.325*B(1084)+0.65*B(1093) +! JVS(2964) = Jac_FULL(267,101) + JVS(2964) = B(1512) IF (DO_JVS(2965)) & -! JVS(2965) = Jac_FULL(263,204) - JVS(2965) = -B(162)+B(238) +! JVS(2965) = Jac_FULL(267,105) + JVS(2965) = B(1061) IF (DO_JVS(2966)) & -! JVS(2966) = Jac_FULL(263,211) - JVS(2966) = -B(715)+B(719) +! JVS(2966) = Jac_FULL(267,109) + JVS(2966) = B(770) IF (DO_JVS(2967)) & -! JVS(2967) = Jac_FULL(263,212) - JVS(2967) = -B(717)+0.5*B(721) +! JVS(2967) = Jac_FULL(267,125) + JVS(2967) = 0.888*B(1065)+B(1506) IF (DO_JVS(2968)) & -! JVS(2968) = Jac_FULL(263,213) - JVS(2968) = -B(178)+B(297) +! JVS(2968) = Jac_FULL(267,127) + JVS(2968) = 0.23*B(764)+B(1492) IF (DO_JVS(2969)) & -! JVS(2969) = Jac_FULL(263,215) - JVS(2969) = B(147)+B(569) +! JVS(2969) = Jac_FULL(267,129) + JVS(2969) = 0.42*B(762)+B(1491) IF (DO_JVS(2970)) & -! JVS(2970) = Jac_FULL(263,219) - JVS(2970) = B(1419)+2*B(1420) +! JVS(2970) = Jac_FULL(267,132) + JVS(2970) = 0.84*B(1025) IF (DO_JVS(2971)) & -! JVS(2971) = Jac_FULL(263,220) - JVS(2971) = 0.407*B(753) +! JVS(2971) = Jac_FULL(267,136) + JVS(2971) = 0.488*B(1037) IF (DO_JVS(2972)) & -! JVS(2972) = Jac_FULL(263,221) - JVS(2972) = -B(699)+0.5*B(701) +! JVS(2972) = Jac_FULL(267,148) + JVS(2972) = 0.25*B(1188)+0.5*B(1190)+0.05*B(1192) IF (DO_JVS(2973)) & -! JVS(2973) = Jac_FULL(263,222) - JVS(2973) = 0.15*B(1421) +! JVS(2973) = Jac_FULL(267,149) + JVS(2973) = B(506) IF (DO_JVS(2974)) & -! JVS(2974) = Jac_FULL(263,233) - JVS(2974) = -B(160)+B(236) +! JVS(2974) = Jac_FULL(267,150) + JVS(2974) = 0.33*B(971)+0.33*B(973) IF (DO_JVS(2975)) & -! JVS(2975) = Jac_FULL(263,234) - JVS(2975) = -B(675)+0.5*B(677) +! JVS(2975) = Jac_FULL(267,153) + JVS(2975) = 0.25*B(1059) IF (DO_JVS(2976)) & -! JVS(2976) = Jac_FULL(263,235) - JVS(2976) = -B(180)+B(299) +! JVS(2976) = Jac_FULL(267,154) + JVS(2976) = 0.14*B(632) IF (DO_JVS(2977)) & -! JVS(2977) = Jac_FULL(263,240) - JVS(2977) = -B(965)+B(967) +! JVS(2977) = Jac_FULL(267,155) + JVS(2977) = 0.14*B(634) IF (DO_JVS(2978)) & -! JVS(2978) = Jac_FULL(263,241) - JVS(2978) = -B(963)+B(969) +! JVS(2978) = Jac_FULL(267,156) + JVS(2978) = B(1017)+0.571*B(1478) IF (DO_JVS(2979)) & -! JVS(2979) = Jac_FULL(263,242) - JVS(2979) = -B(783)-B(785) +! JVS(2979) = Jac_FULL(267,157) + JVS(2979) = 0.25*B(780) IF (DO_JVS(2980)) & -! JVS(2980) = Jac_FULL(263,243) - JVS(2980) = -B(787)-B(789) +! JVS(2980) = Jac_FULL(267,159) + JVS(2980) = 0.26*B(1183)+0.5*B(1185) IF (DO_JVS(2981)) & -! JVS(2981) = Jac_FULL(263,244) - JVS(2981) = B(1429) +! JVS(2981) = Jac_FULL(267,162) + JVS(2981) = 0.33*B(782) IF (DO_JVS(2982)) & -! JVS(2982) = Jac_FULL(263,245) - JVS(2982) = -B(1105) +! JVS(2982) = Jac_FULL(267,163) + JVS(2982) = 0.75*B(1015)+0.875*B(1479) IF (DO_JVS(2983)) & -! JVS(2983) = Jac_FULL(263,246) - JVS(2983) = 0.5*B(234) +! JVS(2983) = Jac_FULL(267,165) + JVS(2983) = 0.054*B(786) IF (DO_JVS(2984)) & -! JVS(2984) = Jac_FULL(263,247) - JVS(2984) = 0 +! JVS(2984) = Jac_FULL(267,169) + JVS(2984) = 2*B(1023)+B(1475) IF (DO_JVS(2985)) & -! JVS(2985) = Jac_FULL(263,248) - JVS(2985) = -B(188)+B(275) +! JVS(2985) = Jac_FULL(267,170) + JVS(2985) = 0.14*B(642) IF (DO_JVS(2986)) & -! JVS(2986) = Jac_FULL(263,249) - JVS(2986) = -B(190)+B(277) +! JVS(2986) = Jac_FULL(267,171) + JVS(2986) = 0.036*B(784) IF (DO_JVS(2987)) & -! JVS(2987) = Jac_FULL(263,250) - JVS(2987) = -B(244)-B(246)+B(305) +! JVS(2987) = Jac_FULL(267,172) + JVS(2987) = B(1083)+B(1472) IF (DO_JVS(2988)) & -! JVS(2988) = Jac_FULL(263,251) - JVS(2988) = -B(186)+B(281) +! JVS(2988) = Jac_FULL(267,174) + JVS(2988) = 1.5*B(768) IF (DO_JVS(2989)) & -! JVS(2989) = Jac_FULL(263,252) - JVS(2989) = 0.19*B(127)-0.91*B(184)+B(273) +! JVS(2989) = Jac_FULL(267,175) + JVS(2989) = 0.25*B(1001)+B(1484) IF (DO_JVS(2990)) & -! JVS(2990) = Jac_FULL(263,253) - JVS(2990) = -B(192)+B(279) +! JVS(2990) = Jac_FULL(267,182) + JVS(2990) = 0 IF (DO_JVS(2991)) & -! JVS(2991) = Jac_FULL(263,254) - JVS(2991) = 0.28*B(216) +! JVS(2991) = Jac_FULL(267,185) + JVS(2991) = B(1021)+0.5*B(1476) IF (DO_JVS(2992)) & -! JVS(2992) = Jac_FULL(263,255) - JVS(2992) = 0 +! JVS(2992) = Jac_FULL(267,186) + JVS(2992) = 0.45*B(758)+0.888*B(1489) IF (DO_JVS(2993)) & -! JVS(2993) = Jac_FULL(263,257) - JVS(2993) = B(105)+B(237)+B(239)+2*B(268)-B(271)+B(274)+B(276)+B(278)+B(280)+B(282)+B(284)+B(298)+B(300)+B(306)+0.5& - &*B(678)+0.5*B(702)+B(720)+0.5*B(722)+B(968)+B(970)+0.5*B(1130)+B(1180) +! JVS(2993) = Jac_FULL(267,188) + JVS(2993) = 0.37*B(760)+0.818*B(1490) IF (DO_JVS(2994)) & -! JVS(2994) = Jac_FULL(263,258) +! JVS(2994) = Jac_FULL(267,189) JVS(2994) = 0 IF (DO_JVS(2995)) & -! JVS(2995) = Jac_FULL(263,261) - JVS(2995) = 0.88*B(1415) +! JVS(2995) = Jac_FULL(267,192) + JVS(2995) = 0.638*B(766) IF (DO_JVS(2996)) & -! JVS(2996) = Jac_FULL(263,262) - JVS(2996) = 0 +! JVS(2996) = Jac_FULL(267,194) + JVS(2996) = 0.52*B(835)+0.8*B(839)+2*B(841) IF (DO_JVS(2997)) & -! JVS(2997) = Jac_FULL(263,263) - JVS(2997) = -B(33)-B(48)-B(50)-B(52)-2*B(54)-2*B(55)-B(56)-B(161)-B(163)-B(179)-B(181)-0.91*B(185)-B(187)-B(189)& - &-B(191)-B(193)-B(195)-B(245)-B(247)-B(272)-B(308)-B(469)-B(555)-B(676)-B(700)-B(716)-B(718)-B(784)-B(786)& - &-B(788)-B(790)-B(964)-B(966)-B(1106)-B(1155)-B(1178)-B(1229)-B(1231)-B(1254) +! JVS(2997) = Jac_FULL(267,195) + JVS(2997) = -B(606) IF (DO_JVS(2998)) & -! JVS(2998) = Jac_FULL(263,268) - JVS(2998) = B(376)+B(438) +! JVS(2998) = Jac_FULL(267,200) + JVS(2998) = B(1483) IF (DO_JVS(2999)) & -! JVS(2999) = Jac_FULL(263,269) - JVS(2999) = B(47)-B(57)+B(59)+B(148)+0.5*B(235)+B(312)+B(314)+B(636)+0.162*B(1087) +! JVS(2999) = Jac_FULL(267,204) + JVS(2999) = 0 IF (DO_JVS(3000)) & -! JVS(3000) = Jac_FULL(263,270) - JVS(3000) = -B(309) +! JVS(3000) = Jac_FULL(267,205) + JVS(3000) = 0.507*B(1033)+B(1039)+0.86*B(1040) IF (DO_JVS(3001)) & -! JVS(3001) = Jac_FULL(263,273) - JVS(3001) = -B(470) +! JVS(3001) = Jac_FULL(267,206) + JVS(3001) = B(1063)+B(1502)+0.163*B(1503) IF (DO_JVS(3002)) & -! JVS(3002) = Jac_FULL(263,277) - JVS(3002) = -B(34)+0.28*B(217)+0.407*B(754) +! JVS(3002) = Jac_FULL(267,207) + JVS(3002) = 0.325*B(1035)+0.65*B(1044) IF (DO_JVS(3003)) & -! JVS(3003) = Jac_FULL(263,279) - JVS(3003) = 0 +! JVS(3003) = Jac_FULL(267,208) + JVS(3003) = B(1459) IF (DO_JVS(3004)) & -! JVS(3004) = Jac_FULL(263,280) - JVS(3004) = -B(49)-B(51)+B(106)+0.19*B(128)+0.65*B(1094) +! JVS(3004) = Jac_FULL(267,210) + JVS(3004) = 0.15*B(1175)+0.15*B(1177)+B(1515) IF (DO_JVS(3005)) & -! JVS(3005) = Jac_FULL(263,281) - JVS(3005) = -B(53)+0.325*B(1085)+0.5*B(1131) +! JVS(3005) = Jac_FULL(267,213) + JVS(3005) = B(1071)+B(1510) IF (DO_JVS(3006)) & -! JVS(3006) = Jac_FULL(263,282) - JVS(3006) = 0 +! JVS(3006) = Jac_FULL(267,214) + JVS(3006) = 0.6*B(868)+0.55*B(1496) IF (DO_JVS(3007)) & -! JVS(3007) = Jac_FULL(263,284) - JVS(3007) = 0 +! JVS(3007) = Jac_FULL(267,220) + JVS(3007) = 0.6*B(866)+0.55*B(1493) IF (DO_JVS(3008)) & -! JVS(3008) = Jac_FULL(263,285) - JVS(3008) = B(504)-B(556)+B(558)+B(570) +! JVS(3008) = Jac_FULL(267,221) + JVS(3008) = B(1379) IF (DO_JVS(3009)) & -! JVS(3009) = Jac_FULL(263,286) +! JVS(3009) = Jac_FULL(267,222) JVS(3009) = 0 IF (DO_JVS(3010)) & -! JVS(3010) = Jac_FULL(263,287) - JVS(3010) = B(316)-B(1255) +! JVS(3010) = Jac_FULL(267,223) + JVS(3010) = 2*B(219)+2*B(223)+2*B(1382)+2*B(1383)+B(1384) IF (DO_JVS(3011)) & -! JVS(3011) = Jac_FULL(264,140) - JVS(3011) = B(621) +! JVS(3011) = Jac_FULL(267,224) + JVS(3011) = 0.407*B(704)+0.6*B(710)+0.9*B(712) IF (DO_JVS(3012)) & -! JVS(3012) = Jac_FULL(264,199) - JVS(3012) = 0 +! JVS(3012) = Jac_FULL(267,228) + JVS(3012) = B(820)+0.13*B(821)+0.2*B(823) IF (DO_JVS(3013)) & -! JVS(3013) = Jac_FULL(264,223) - JVS(3013) = B(627) +! JVS(3013) = Jac_FULL(267,229) + JVS(3013) = B(828)+0.2*B(829)+0.13*B(833) IF (DO_JVS(3014)) & -! JVS(3014) = Jac_FULL(264,264) - JVS(3014) = -B(625)-B(1366)-B(1368)-B(1370)-B(1372)-B(1477) +! JVS(3014) = Jac_FULL(267,230) + JVS(3014) = 0 IF (DO_JVS(3015)) & -! JVS(3015) = Jac_FULL(264,265) - JVS(3015) = 0 +! JVS(3015) = Jac_FULL(267,231) + JVS(3015) = 0.77*B(997)+0.77*B(1480) IF (DO_JVS(3016)) & -! JVS(3016) = Jac_FULL(264,266) - JVS(3016) = B(1348) +! JVS(3016) = Jac_FULL(267,232) + JVS(3016) = 0 IF (DO_JVS(3017)) & -! JVS(3017) = Jac_FULL(264,269) - JVS(3017) = B(622)-B(626) +! JVS(3017) = Jac_FULL(267,233) + JVS(3017) = B(221)+B(225)+B(1385) IF (DO_JVS(3018)) & -! JVS(3018) = Jac_FULL(264,270) - JVS(3018) = 0 +! JVS(3018) = Jac_FULL(267,234) + JVS(3018) = -B(592) IF (DO_JVS(3019)) & -! JVS(3019) = Jac_FULL(264,273) - JVS(3019) = 0 +! JVS(3019) = Jac_FULL(267,236) + JVS(3019) = 0.505*B(213)+B(215)+B(1381) IF (DO_JVS(3020)) & -! JVS(3020) = Jac_FULL(264,274) +! JVS(3020) = Jac_FULL(267,238) JVS(3020) = 0 IF (DO_JVS(3021)) & -! JVS(3021) = Jac_FULL(264,275) - JVS(3021) = -B(1367) +! JVS(3021) = Jac_FULL(267,240) + JVS(3021) = 0.539*B(969)+0.839*B(1500) IF (DO_JVS(3022)) & -! JVS(3022) = Jac_FULL(264,276) - JVS(3022) = -B(1369) +! JVS(3022) = Jac_FULL(267,241) + JVS(3022) = 0 IF (DO_JVS(3023)) & -! JVS(3023) = Jac_FULL(264,277) +! JVS(3023) = Jac_FULL(267,242) JVS(3023) = 0 IF (DO_JVS(3024)) & -! JVS(3024) = Jac_FULL(264,278) - JVS(3024) = -B(1371) +! JVS(3024) = Jac_FULL(267,243) + JVS(3024) = 0 IF (DO_JVS(3025)) & -! JVS(3025) = Jac_FULL(264,279) - JVS(3025) = B(1349) +! JVS(3025) = Jac_FULL(267,244) + JVS(3025) = 0.9*B(725)+B(731)+B(732)+0.5*B(740)+0.55*B(756) IF (DO_JVS(3026)) & -! JVS(3026) = Jac_FULL(264,280) - JVS(3026) = 0 +! JVS(3026) = Jac_FULL(267,245) + JVS(3026) = 0.6*B(723)+B(730)+B(733)+0.5*B(736)+0.55*B(748) IF (DO_JVS(3027)) & -! JVS(3027) = Jac_FULL(264,281) - JVS(3027) = B(628) +! JVS(3027) = Jac_FULL(267,246) + JVS(3027) = 0 IF (DO_JVS(3028)) & -! JVS(3028) = Jac_FULL(264,283) - JVS(3028) = -B(1373) +! JVS(3028) = Jac_FULL(267,247) + JVS(3028) = 0 IF (DO_JVS(3029)) & -! JVS(3029) = Jac_FULL(264,287) - JVS(3029) = 0 +! JVS(3029) = Jac_FULL(267,248) + JVS(3029) = 0.28*B(983)+B(1386)+B(1387) IF (DO_JVS(3030)) & -! JVS(3030) = Jac_FULL(265,1) - JVS(3030) = 2*B(1485) +! JVS(3030) = Jac_FULL(267,249) + JVS(3030) = 0 IF (DO_JVS(3031)) & -! JVS(3031) = Jac_FULL(265,2) - JVS(3031) = B(1487) +! JVS(3031) = Jac_FULL(267,250) + JVS(3031) = 0.5*B(229) IF (DO_JVS(3032)) & -! JVS(3032) = Jac_FULL(265,3) - JVS(3032) = B(1486) +! JVS(3032) = Jac_FULL(267,251) + JVS(3032) = 0.036*B(985)+0.12*B(989)+0.68*B(991)+B(1389) IF (DO_JVS(3033)) & -! JVS(3033) = Jac_FULL(265,40) - JVS(3033) = B(634)+B(1483) +! JVS(3033) = Jac_FULL(267,252) + JVS(3033) = 0 IF (DO_JVS(3034)) & -! JVS(3034) = Jac_FULL(265,43) - JVS(3034) = B(635)+B(1484) +! JVS(3034) = Jac_FULL(267,253) + JVS(3034) = 0.56*B(211) IF (DO_JVS(3035)) & -! JVS(3035) = Jac_FULL(265,56) - JVS(3035) = B(1480) +! JVS(3035) = Jac_FULL(267,254) + JVS(3035) = 0 IF (DO_JVS(3036)) & -! JVS(3036) = Jac_FULL(265,65) - JVS(3036) = B(623) +! JVS(3036) = Jac_FULL(267,256) + JVS(3036) = 0 IF (DO_JVS(3037)) & -! JVS(3037) = Jac_FULL(265,69) - JVS(3037) = B(1490) +! JVS(3037) = Jac_FULL(267,257) + JVS(3037) = 0 IF (DO_JVS(3038)) & -! JVS(3038) = Jac_FULL(265,90) - JVS(3038) = B(1479) +! JVS(3038) = Jac_FULL(267,258) + JVS(3038) = 0 IF (DO_JVS(3039)) & -! JVS(3039) = Jac_FULL(265,98) - JVS(3039) = B(1491) +! JVS(3039) = Jac_FULL(267,259) + JVS(3039) = B(1377) IF (DO_JVS(3040)) & -! JVS(3040) = Jac_FULL(265,140) - JVS(3040) = B(592)+B(621)+2*B(1476) +! JVS(3040) = Jac_FULL(267,261) + JVS(3040) = 0 IF (DO_JVS(3041)) & -! JVS(3041) = Jac_FULL(265,199) - JVS(3041) = B(590)+B(1481) +! JVS(3041) = Jac_FULL(267,263) + JVS(3041) = B(63)+B(93)+B(314)+B(386)+B(466)+B(1365)+B(1366) IF (DO_JVS(3042)) & -! JVS(3042) = Jac_FULL(265,223) - JVS(3042) = B(601)+B(611)+B(613)+B(629)+B(631)+B(1478) +! JVS(3042) = Jac_FULL(267,264) + JVS(3042) = 0.05*B(95)+0.88*B(1374)+B(1375) IF (DO_JVS(3043)) & -! JVS(3043) = Jac_FULL(265,264) - JVS(3043) = B(1477) +! JVS(3043) = Jac_FULL(267,266) + JVS(3043) = 0.5*B(737)+0.5*B(741) IF (DO_JVS(3044)) & -! JVS(3044) = Jac_FULL(265,265) - JVS(3044) = -B(585)-B(588)-B(597)-B(599)-B(617)-B(619) +! JVS(3044) = Jac_FULL(267,267) + JVS(3044) = -B(45)-B(593)-B(607) IF (DO_JVS(3045)) & -! JVS(3045) = Jac_FULL(265,266) - JVS(3045) = -B(598)+B(1482) +! JVS(3045) = Jac_FULL(267,272) + JVS(3045) = 0 IF (DO_JVS(3046)) & -! JVS(3046) = Jac_FULL(265,269) - JVS(3046) = B(622)+B(624)+B(636) +! JVS(3046) = Jac_FULL(267,273) + JVS(3046) = B(315) IF (DO_JVS(3047)) & -! JVS(3047) = Jac_FULL(265,270) - JVS(3047) = -B(589) +! JVS(3047) = Jac_FULL(267,276) + JVS(3047) = 0 IF (DO_JVS(3048)) & -! JVS(3048) = Jac_FULL(265,273) - JVS(3048) = B(612)+B(614) +! JVS(3048) = Jac_FULL(267,278) + JVS(3048) = 0 IF (DO_JVS(3049)) & -! JVS(3049) = Jac_FULL(265,274) - JVS(3049) = -B(600)+B(602) +! JVS(3049) = Jac_FULL(267,279) + JVS(3049) = 0.55*B(749)+0.55*B(757)+0.2*B(824)+0.2*B(830)+0.8*B(840)+0.33*B(972)+0.86*B(1041)+0.65*B(1045) IF (DO_JVS(3050)) & -! JVS(3050) = Jac_FULL(265,275) - JVS(3050) = 0 +! JVS(3050) = Jac_FULL(267,281) + JVS(3050) = B(94)+2*B(224)+B(226)+0.68*B(992)+0.15*B(1178) IF (DO_JVS(3051)) & -! JVS(3051) = Jac_FULL(265,276) - JVS(3051) = 0 +! JVS(3051) = Jac_FULL(267,282) + JVS(3051) = 0.56*B(212)+0.14*B(633)+0.14*B(635)+0.14*B(643)+0.407*B(705)+0.28*B(984)+0.12*B(990)+0.5*B(1186)+0.5& + &*B(1191) IF (DO_JVS(3052)) & -! JVS(3052) = Jac_FULL(265,277) - JVS(3052) = -B(618) +! JVS(3052) = Jac_FULL(267,284) + JVS(3052) = 0.13*B(822)+0.13*B(834)+0.52*B(836)+0.33*B(974)+0.507*B(1034)+0.325*B(1036) IF (DO_JVS(3053)) & -! JVS(3053) = Jac_FULL(265,278) +! JVS(3053) = Jac_FULL(267,285) JVS(3053) = 0 IF (DO_JVS(3054)) & -! JVS(3054) = Jac_FULL(265,279) - JVS(3054) = 0 +! JVS(3054) = Jac_FULL(267,286) + JVS(3054) = -B(46)+B(64)+0.05*B(96)+0.505*B(214)+B(216)+2*B(220)+B(222)+0.5*B(230)+0.6*B(711)+0.9*B(713)+0.45*B(759)& + &+0.37*B(761)+0.42*B(763)+0.23*B(765)+0.638*B(767)+1.5*B(769)+B(771)+0.25*B(781)+0.33*B(783)+0.036*B(785)& + &+0.054*B(787)+0.6*B(867)+0.6*B(869)+0.539*B(970)+0.036*B(986)+0.77*B(998)+0.25*B(1002)+0.75*B(1016)+B(1018)& + &+B(1022)+2*B(1024)+0.84*B(1026)+0.488*B(1038)+0.25*B(1060)+B(1062)+B(1064)+0.888*B(1066)+B(1072)+B(1084)& + &+0.364*B(1098)+0.2*B(1117)+0.27*B(1119)+0.3*B(1121)+0.15*B(1176)+0.26*B(1184)+0.25*B(1189) IF (DO_JVS(3055)) & -! JVS(3055) = Jac_FULL(265,280) - JVS(3055) = -B(586)+B(630) +! JVS(3055) = Jac_FULL(267,288) + JVS(3055) = B(359)+B(387) IF (DO_JVS(3056)) & -! JVS(3056) = Jac_FULL(265,281) - JVS(3056) = -B(620) +! JVS(3056) = Jac_FULL(267,290) + JVS(3056) = B(467)+B(507)+B(509)+B(511) IF (DO_JVS(3057)) & -! JVS(3057) = Jac_FULL(265,283) +! JVS(3057) = Jac_FULL(267,291) JVS(3057) = 0 IF (DO_JVS(3058)) & -! JVS(3058) = Jac_FULL(265,287) - JVS(3058) = B(593) +! JVS(3058) = Jac_FULL(268,143) + JVS(3058) = B(574) IF (DO_JVS(3059)) & -! JVS(3059) = Jac_FULL(266,140) - JVS(3059) = B(592) +! JVS(3059) = Jac_FULL(268,203) + JVS(3059) = 0 IF (DO_JVS(3060)) & -! JVS(3060) = Jac_FULL(266,199) - JVS(3060) = 0 +! JVS(3060) = Jac_FULL(268,227) + JVS(3060) = B(580) IF (DO_JVS(3061)) & -! JVS(3061) = Jac_FULL(266,223) - JVS(3061) = B(594) +! JVS(3061) = Jac_FULL(268,268) + JVS(3061) = -B(578)-B(1292)-B(1293)-B(1325)-B(1327)-B(1329)-B(1331)-B(1436) IF (DO_JVS(3062)) & -! JVS(3062) = Jac_FULL(266,264) +! JVS(3062) = Jac_FULL(268,269) JVS(3062) = 0 IF (DO_JVS(3063)) & -! JVS(3063) = Jac_FULL(266,265) - JVS(3063) = -B(597) +! JVS(3063) = Jac_FULL(268,270) + JVS(3063) = B(1307) IF (DO_JVS(3064)) & -! JVS(3064) = Jac_FULL(266,266) - JVS(3064) = -B(596)-B(598)-B(1348)-B(1358)-B(1360)-B(1362)-B(1364)-B(1482) +! JVS(3064) = Jac_FULL(268,274) + JVS(3064) = 0 IF (DO_JVS(3065)) & -! JVS(3065) = Jac_FULL(266,269) - JVS(3065) = 0 +! JVS(3065) = Jac_FULL(268,277) + JVS(3065) = -B(1328) IF (DO_JVS(3066)) & -! JVS(3066) = Jac_FULL(266,270) - JVS(3066) = B(595) +! JVS(3066) = Jac_FULL(268,278) + JVS(3066) = B(1308) IF (DO_JVS(3067)) & -! JVS(3067) = Jac_FULL(266,273) +! JVS(3067) = Jac_FULL(268,279) JVS(3067) = 0 IF (DO_JVS(3068)) & -! JVS(3068) = Jac_FULL(266,274) - JVS(3068) = 0 +! JVS(3068) = Jac_FULL(268,280) + JVS(3068) = -B(1330) IF (DO_JVS(3069)) & -! JVS(3069) = Jac_FULL(266,275) - JVS(3069) = -B(1359) +! JVS(3069) = Jac_FULL(268,281) + JVS(3069) = 0 IF (DO_JVS(3070)) & -! JVS(3070) = Jac_FULL(266,276) - JVS(3070) = -B(1361) +! JVS(3070) = Jac_FULL(268,282) + JVS(3070) = 0 IF (DO_JVS(3071)) & -! JVS(3071) = Jac_FULL(266,277) - JVS(3071) = 0 +! JVS(3071) = Jac_FULL(268,283) + JVS(3071) = -B(1326) IF (DO_JVS(3072)) & -! JVS(3072) = Jac_FULL(266,278) - JVS(3072) = -B(1363) +! JVS(3072) = Jac_FULL(268,284) + JVS(3072) = B(581) IF (DO_JVS(3073)) & -! JVS(3073) = Jac_FULL(266,279) - JVS(3073) = -B(1349) +! JVS(3073) = Jac_FULL(268,285) + JVS(3073) = 0 IF (DO_JVS(3074)) & -! JVS(3074) = Jac_FULL(266,280) - JVS(3074) = 0 +! JVS(3074) = Jac_FULL(268,286) + JVS(3074) = B(575)-B(579) IF (DO_JVS(3075)) & -! JVS(3075) = Jac_FULL(266,281) - JVS(3075) = 0 +! JVS(3075) = Jac_FULL(268,287) + JVS(3075) = -B(1332) IF (DO_JVS(3076)) & -! JVS(3076) = Jac_FULL(266,283) - JVS(3076) = -B(1365) +! JVS(3076) = Jac_FULL(268,291) + JVS(3076) = 0 IF (DO_JVS(3077)) & -! JVS(3077) = Jac_FULL(266,287) - JVS(3077) = B(593) +! JVS(3077) = Jac_FULL(269,1) + JVS(3077) = 2*B(1444) IF (DO_JVS(3078)) & -! JVS(3078) = Jac_FULL(267,72) - JVS(3078) = B(477) +! JVS(3078) = Jac_FULL(269,2) + JVS(3078) = B(1446) IF (DO_JVS(3079)) & -! JVS(3079) = Jac_FULL(267,107) - JVS(3079) = B(475) +! JVS(3079) = Jac_FULL(269,3) + JVS(3079) = B(1445) IF (DO_JVS(3080)) & -! JVS(3080) = Jac_FULL(267,192) - JVS(3080) = B(467) +! JVS(3080) = Jac_FULL(269,44) + JVS(3080) = 0.996*B(585)+B(1442) IF (DO_JVS(3081)) & -! JVS(3081) = Jac_FULL(267,223) - JVS(3081) = 0 +! JVS(3081) = Jac_FULL(269,46) + JVS(3081) = B(586)+B(1443) IF (DO_JVS(3082)) & -! JVS(3082) = Jac_FULL(267,231) - JVS(3082) = B(483) +! JVS(3082) = Jac_FULL(269,60) + JVS(3082) = B(1439) IF (DO_JVS(3083)) & -! JVS(3083) = Jac_FULL(267,259) - JVS(3083) = B(485)+B(1278) +! JVS(3083) = Jac_FULL(269,69) + JVS(3083) = B(576) IF (DO_JVS(3084)) & -! JVS(3084) = Jac_FULL(267,263) - JVS(3084) = 0 +! JVS(3084) = Jac_FULL(269,73) + JVS(3084) = B(1449) IF (DO_JVS(3085)) & -! JVS(3085) = Jac_FULL(267,264) - JVS(3085) = 0 +! JVS(3085) = Jac_FULL(269,92) + JVS(3085) = B(1438) IF (DO_JVS(3086)) & -! JVS(3086) = Jac_FULL(267,265) - JVS(3086) = 0 +! JVS(3086) = Jac_FULL(269,99) + JVS(3086) = B(1450) IF (DO_JVS(3087)) & -! JVS(3087) = Jac_FULL(267,266) - JVS(3087) = 0 +! JVS(3087) = Jac_FULL(269,143) + JVS(3087) = B(551)+B(574)+2*B(1435) IF (DO_JVS(3088)) & -! JVS(3088) = Jac_FULL(267,267) - JVS(3088) = -B(481)-B(1304)-B(1306)-B(1308)-B(1310)-B(1312)-B(1460) +! JVS(3088) = Jac_FULL(269,203) + JVS(3088) = B(549)+B(1440) IF (DO_JVS(3089)) & -! JVS(3089) = Jac_FULL(267,268) - JVS(3089) = 0 +! JVS(3089) = Jac_FULL(269,227) + JVS(3089) = 0.2*B(560)+0.809*B(568)+B(582)+0.4*B(584)+B(1437) IF (DO_JVS(3090)) & -! JVS(3090) = Jac_FULL(267,269) - JVS(3090) = B(468)+B(476)+B(478)-B(482)+B(484)+B(486) +! JVS(3090) = Jac_FULL(269,268) + JVS(3090) = B(1436) IF (DO_JVS(3091)) & -! JVS(3091) = Jac_FULL(267,270) - JVS(3091) = 0 +! JVS(3091) = Jac_FULL(269,269) + JVS(3091) = -B(544)-B(547)-B(556)-B(558)-B(570)-B(572) IF (DO_JVS(3092)) & -! JVS(3092) = Jac_FULL(267,271) - JVS(3092) = -B(1305) +! JVS(3092) = Jac_FULL(269,270) + JVS(3092) = -B(557)+B(1441) IF (DO_JVS(3093)) & -! JVS(3093) = Jac_FULL(267,272) - JVS(3093) = -B(1307) +! JVS(3093) = Jac_FULL(269,274) + JVS(3093) = -B(559)+0.2*B(561) IF (DO_JVS(3094)) & -! JVS(3094) = Jac_FULL(267,273) - JVS(3094) = B(519) +! JVS(3094) = Jac_FULL(269,277) + JVS(3094) = 0 IF (DO_JVS(3095)) & -! JVS(3095) = Jac_FULL(267,274) +! JVS(3095) = Jac_FULL(269,278) JVS(3095) = 0 IF (DO_JVS(3096)) & -! JVS(3096) = Jac_FULL(267,275) - JVS(3096) = 0 +! JVS(3096) = Jac_FULL(269,279) + JVS(3096) = -B(545)+B(583) IF (DO_JVS(3097)) & -! JVS(3097) = Jac_FULL(267,276) +! JVS(3097) = Jac_FULL(269,280) JVS(3097) = 0 IF (DO_JVS(3098)) & -! JVS(3098) = Jac_FULL(267,277) - JVS(3098) = 0 +! JVS(3098) = Jac_FULL(269,281) + JVS(3098) = B(552) IF (DO_JVS(3099)) & -! JVS(3099) = Jac_FULL(267,278) - JVS(3099) = -B(1309) +! JVS(3099) = Jac_FULL(269,282) + JVS(3099) = -B(571) IF (DO_JVS(3100)) & -! JVS(3100) = Jac_FULL(267,279) - JVS(3100) = B(1279) +! JVS(3100) = Jac_FULL(269,283) + JVS(3100) = 0 IF (DO_JVS(3101)) & -! JVS(3101) = Jac_FULL(267,280) - JVS(3101) = 0 +! JVS(3101) = Jac_FULL(269,284) + JVS(3101) = -B(573) IF (DO_JVS(3102)) & -! JVS(3102) = Jac_FULL(267,281) - JVS(3102) = B(520) +! JVS(3102) = Jac_FULL(269,285) + JVS(3102) = 0.809*B(569) IF (DO_JVS(3103)) & -! JVS(3103) = Jac_FULL(267,282) - JVS(3103) = 0 +! JVS(3103) = Jac_FULL(269,286) + JVS(3103) = B(575)+B(577)+B(587) IF (DO_JVS(3104)) & -! JVS(3104) = Jac_FULL(267,283) - JVS(3104) = -B(1311) +! JVS(3104) = Jac_FULL(269,287) + JVS(3104) = 0 IF (DO_JVS(3105)) & -! JVS(3105) = Jac_FULL(267,284) - JVS(3105) = 0 +! JVS(3105) = Jac_FULL(269,291) + JVS(3105) = -B(548) IF (DO_JVS(3106)) & -! JVS(3106) = Jac_FULL(267,285) - JVS(3106) = 0 +! JVS(3106) = Jac_FULL(270,143) + JVS(3106) = B(551) IF (DO_JVS(3107)) & -! JVS(3107) = Jac_FULL(267,286) - JVS(3107) = -B(1313) +! JVS(3107) = Jac_FULL(270,203) + JVS(3107) = 0 IF (DO_JVS(3108)) & -! JVS(3108) = Jac_FULL(267,287) - JVS(3108) = 0 +! JVS(3108) = Jac_FULL(270,227) + JVS(3108) = B(553) IF (DO_JVS(3109)) & -! JVS(3109) = Jac_FULL(268,42) - JVS(3109) = -B(461) +! JVS(3109) = Jac_FULL(270,268) + JVS(3109) = 0 IF (DO_JVS(3110)) & -! JVS(3110) = Jac_FULL(268,44) - JVS(3110) = -B(451) +! JVS(3110) = Jac_FULL(270,269) + JVS(3110) = -B(556) IF (DO_JVS(3111)) & -! JVS(3111) = Jac_FULL(268,45) - JVS(3111) = -B(465) +! JVS(3111) = Jac_FULL(270,270) + JVS(3111) = -B(555)-B(557)-B(1305)-B(1306)-B(1307)-B(1317)-B(1319)-B(1321)-B(1323)-B(1441) IF (DO_JVS(3112)) & -! JVS(3112) = Jac_FULL(268,46) - JVS(3112) = -B(463) +! JVS(3112) = Jac_FULL(270,274) + JVS(3112) = 0 IF (DO_JVS(3113)) & -! JVS(3113) = Jac_FULL(268,48) - JVS(3113) = -B(459) +! JVS(3113) = Jac_FULL(270,277) + JVS(3113) = -B(1320) IF (DO_JVS(3114)) & -! JVS(3114) = Jac_FULL(268,51) - JVS(3114) = -B(435) +! JVS(3114) = Jac_FULL(270,278) + JVS(3114) = -B(1308) IF (DO_JVS(3115)) & -! JVS(3115) = Jac_FULL(268,52) - JVS(3115) = -B(445) +! JVS(3115) = Jac_FULL(270,279) + JVS(3115) = 0 IF (DO_JVS(3116)) & -! JVS(3116) = Jac_FULL(268,53) - JVS(3116) = -B(447) +! JVS(3116) = Jac_FULL(270,280) + JVS(3116) = -B(1322) IF (DO_JVS(3117)) & -! JVS(3117) = Jac_FULL(268,55) - JVS(3117) = -B(449) +! JVS(3117) = Jac_FULL(270,281) + JVS(3117) = B(552) IF (DO_JVS(3118)) & -! JVS(3118) = Jac_FULL(268,57) - JVS(3118) = -B(371)-B(373)+B(1495) +! JVS(3118) = Jac_FULL(270,282) + JVS(3118) = 0 IF (DO_JVS(3119)) & -! JVS(3119) = Jac_FULL(268,61) - JVS(3119) = 0 +! JVS(3119) = Jac_FULL(270,283) + JVS(3119) = -B(1318) IF (DO_JVS(3120)) & -! JVS(3120) = Jac_FULL(268,70) - JVS(3120) = -B(439) +! JVS(3120) = Jac_FULL(270,284) + JVS(3120) = 0 IF (DO_JVS(3121)) & -! JVS(3121) = Jac_FULL(268,74) - JVS(3121) = -B(441) +! JVS(3121) = Jac_FULL(270,285) + JVS(3121) = 0 IF (DO_JVS(3122)) & -! JVS(3122) = Jac_FULL(268,78) - JVS(3122) = -B(457) +! JVS(3122) = Jac_FULL(270,286) + JVS(3122) = 0 IF (DO_JVS(3123)) & -! JVS(3123) = Jac_FULL(268,79) - JVS(3123) = -B(453) +! JVS(3123) = Jac_FULL(270,287) + JVS(3123) = -B(1324) IF (DO_JVS(3124)) & -! JVS(3124) = Jac_FULL(268,80) - JVS(3124) = -B(455) +! JVS(3124) = Jac_FULL(270,291) + JVS(3124) = B(554) IF (DO_JVS(3125)) & -! JVS(3125) = Jac_FULL(268,81) - JVS(3125) = -B(443) +! JVS(3125) = Jac_FULL(271,75) + JVS(3125) = B(438) IF (DO_JVS(3126)) & -! JVS(3126) = Jac_FULL(268,97) - JVS(3126) = -B(437) +! JVS(3126) = Jac_FULL(271,111) + JVS(3126) = B(436) IF (DO_JVS(3127)) & -! JVS(3127) = Jac_FULL(268,186) - JVS(3127) = -B(375)-B(377)-B(379) +! JVS(3127) = Jac_FULL(271,197) + JVS(3127) = B(428) IF (DO_JVS(3128)) & -! JVS(3128) = Jac_FULL(268,192) - JVS(3128) = -B(433) +! JVS(3128) = Jac_FULL(271,227) + JVS(3128) = 0 IF (DO_JVS(3129)) & -! JVS(3129) = Jac_FULL(268,231) - JVS(3129) = 0 +! JVS(3129) = Jac_FULL(271,235) + JVS(3129) = B(444) IF (DO_JVS(3130)) & -! JVS(3130) = Jac_FULL(268,254) - JVS(3130) = 0 +! JVS(3130) = Jac_FULL(271,262) + JVS(3130) = B(446)+B(1231) IF (DO_JVS(3131)) & -! JVS(3131) = Jac_FULL(268,257) +! JVS(3131) = Jac_FULL(271,266) JVS(3131) = 0 IF (DO_JVS(3132)) & -! JVS(3132) = Jac_FULL(268,259) +! JVS(3132) = Jac_FULL(271,267) JVS(3132) = 0 IF (DO_JVS(3133)) & -! JVS(3133) = Jac_FULL(268,261) +! JVS(3133) = Jac_FULL(271,268) JVS(3133) = 0 IF (DO_JVS(3134)) & -! JVS(3134) = Jac_FULL(268,262) +! JVS(3134) = Jac_FULL(271,269) JVS(3134) = 0 IF (DO_JVS(3135)) & -! JVS(3135) = Jac_FULL(268,263) +! JVS(3135) = Jac_FULL(271,270) JVS(3135) = 0 IF (DO_JVS(3136)) & -! JVS(3136) = Jac_FULL(268,267) - JVS(3136) = 0 +! JVS(3136) = Jac_FULL(271,271) + JVS(3136) = -B(442)-B(1257)-B(1259)-B(1261)-B(1263)-B(1265)-B(1419) IF (DO_JVS(3137)) & -! JVS(3137) = Jac_FULL(268,268) - JVS(3137) = -B(363)-B(365)-B(367)-B(369)-B(372)-B(374)-B(376)-B(378)-B(380)-B(391)-B(393)-B(429)-B(431)-B(434)-B(436)& - &-B(438)-B(440)-B(442)-B(444)-B(446)-B(448)-B(450)-B(452)-B(454)-B(456)-B(458)-B(460)-B(462)-B(464)-B(466) +! JVS(3137) = Jac_FULL(271,272) + JVS(3137) = 0 IF (DO_JVS(3138)) & -! JVS(3138) = Jac_FULL(268,269) +! JVS(3138) = Jac_FULL(271,273) JVS(3138) = 0 IF (DO_JVS(3139)) & -! JVS(3139) = Jac_FULL(268,270) +! JVS(3139) = Jac_FULL(271,274) JVS(3139) = 0 IF (DO_JVS(3140)) & -! JVS(3140) = Jac_FULL(268,271) - JVS(3140) = -B(430) +! JVS(3140) = Jac_FULL(271,275) + JVS(3140) = -B(1258) IF (DO_JVS(3141)) & -! JVS(3141) = Jac_FULL(268,272) - JVS(3141) = -B(432) +! JVS(3141) = Jac_FULL(271,276) + JVS(3141) = -B(1266) IF (DO_JVS(3142)) & -! JVS(3142) = Jac_FULL(268,273) +! JVS(3142) = Jac_FULL(271,277) JVS(3142) = 0 IF (DO_JVS(3143)) & -! JVS(3143) = Jac_FULL(268,274) - JVS(3143) = 0 +! JVS(3143) = Jac_FULL(271,278) + JVS(3143) = B(1232) IF (DO_JVS(3144)) & -! JVS(3144) = Jac_FULL(268,275) +! JVS(3144) = Jac_FULL(271,279) JVS(3144) = 0 IF (DO_JVS(3145)) & -! JVS(3145) = Jac_FULL(268,276) - JVS(3145) = 0 +! JVS(3145) = Jac_FULL(271,280) + JVS(3145) = -B(1262) IF (DO_JVS(3146)) & -! JVS(3146) = Jac_FULL(268,277) - JVS(3146) = -B(392)-B(394)+B(1401) +! JVS(3146) = Jac_FULL(271,281) + JVS(3146) = 0 IF (DO_JVS(3147)) & -! JVS(3147) = Jac_FULL(268,278) +! JVS(3147) = Jac_FULL(271,282) JVS(3147) = 0 IF (DO_JVS(3148)) & -! JVS(3148) = Jac_FULL(268,279) - JVS(3148) = -B(364) +! JVS(3148) = Jac_FULL(271,283) + JVS(3148) = 0 IF (DO_JVS(3149)) & -! JVS(3149) = Jac_FULL(268,280) - JVS(3149) = 0 +! JVS(3149) = Jac_FULL(271,284) + JVS(3149) = B(480) IF (DO_JVS(3150)) & -! JVS(3150) = Jac_FULL(268,281) - JVS(3150) = 0 +! JVS(3150) = Jac_FULL(271,285) + JVS(3150) = B(481) IF (DO_JVS(3151)) & -! JVS(3151) = Jac_FULL(268,282) - JVS(3151) = 0 +! JVS(3151) = Jac_FULL(271,286) + JVS(3151) = B(429)+B(437)+B(439)-B(443)+B(445)+B(447) IF (DO_JVS(3152)) & -! JVS(3152) = Jac_FULL(268,283) - JVS(3152) = 0 +! JVS(3152) = Jac_FULL(271,287) + JVS(3152) = -B(1264) IF (DO_JVS(3153)) & -! JVS(3153) = Jac_FULL(268,284) +! JVS(3153) = Jac_FULL(271,288) JVS(3153) = 0 IF (DO_JVS(3154)) & -! JVS(3154) = Jac_FULL(268,285) - JVS(3154) = 0 +! JVS(3154) = Jac_FULL(271,289) + JVS(3154) = -B(1260) IF (DO_JVS(3155)) & -! JVS(3155) = Jac_FULL(268,286) +! JVS(3155) = Jac_FULL(271,290) JVS(3155) = 0 IF (DO_JVS(3156)) & -! JVS(3156) = Jac_FULL(268,287) +! JVS(3156) = Jac_FULL(271,291) JVS(3156) = 0 IF (DO_JVS(3157)) & -! JVS(3157) = Jac_FULL(269,39) - JVS(3157) = -B(493) +! JVS(3157) = Jac_FULL(272,47) + JVS(3157) = -B(412) IF (DO_JVS(3158)) & -! JVS(3158) = Jac_FULL(269,43) - JVS(3158) = -B(635) +! JVS(3158) = Jac_FULL(272,48) + JVS(3158) = -B(426) IF (DO_JVS(3159)) & -! JVS(3159) = Jac_FULL(269,54) - JVS(3159) = -0.364*B(1146) +! JVS(3159) = Jac_FULL(272,52) + JVS(3159) = -B(394) IF (DO_JVS(3160)) & -! JVS(3160) = Jac_FULL(269,60) - JVS(3160) = -B(1165) +! JVS(3160) = Jac_FULL(272,53) + JVS(3160) = -B(406) IF (DO_JVS(3161)) & -! JVS(3161) = Jac_FULL(269,62) - JVS(3161) = -B(397) +! JVS(3161) = Jac_FULL(272,54) + JVS(3161) = -B(408) IF (DO_JVS(3162)) & -! JVS(3162) = Jac_FULL(269,64) - JVS(3162) = -B(1159) +! JVS(3162) = Jac_FULL(272,55) + JVS(3162) = -B(420) IF (DO_JVS(3163)) & -! JVS(3163) = Jac_FULL(269,65) - JVS(3163) = -B(623) +! JVS(3163) = Jac_FULL(272,56) + JVS(3163) = -B(422) IF (DO_JVS(3164)) & -! JVS(3164) = Jac_FULL(269,66) - JVS(3164) = -B(264)+B(1440) +! JVS(3164) = Jac_FULL(272,57) + JVS(3164) = -B(424) IF (DO_JVS(3165)) & -! JVS(3165) = Jac_FULL(269,67) - JVS(3165) = -B(1205)+B(1554) +! JVS(3165) = Jac_FULL(272,59) + JVS(3165) = -B(410) IF (DO_JVS(3166)) & -! JVS(3166) = Jac_FULL(269,68) - JVS(3166) = -B(491) +! JVS(3166) = Jac_FULL(272,61) + JVS(3166) = -B(342)+B(1454) IF (DO_JVS(3167)) & -! JVS(3167) = Jac_FULL(269,70) - JVS(3167) = -B(359) +! JVS(3167) = Jac_FULL(272,65) + JVS(3167) = 0 IF (DO_JVS(3168)) & -! JVS(3168) = Jac_FULL(269,72) - JVS(3168) = -B(477) +! JVS(3168) = Jac_FULL(272,71) + JVS(3168) = -B(400) IF (DO_JVS(3169)) & -! JVS(3169) = Jac_FULL(269,73) - JVS(3169) = -B(489) +! JVS(3169) = Jac_FULL(272,77) + JVS(3169) = -B(402) IF (DO_JVS(3170)) & -! JVS(3170) = Jac_FULL(269,74) - JVS(3170) = -B(357) +! JVS(3170) = Jac_FULL(272,81) + JVS(3170) = -B(418) IF (DO_JVS(3171)) & -! JVS(3171) = Jac_FULL(269,75) - JVS(3171) = -B(1144) +! JVS(3171) = Jac_FULL(272,82) + JVS(3171) = -B(414) IF (DO_JVS(3172)) & -! JVS(3172) = Jac_FULL(269,76) - JVS(3172) = -B(1167) +! JVS(3172) = Jac_FULL(272,83) + JVS(3172) = -B(416) IF (DO_JVS(3173)) & -! JVS(3173) = Jac_FULL(269,77) - JVS(3173) = -B(1169) +! JVS(3173) = Jac_FULL(272,84) + JVS(3173) = -B(404) IF (DO_JVS(3174)) & -! JVS(3174) = Jac_FULL(269,78) - JVS(3174) = -B(501) +! JVS(3174) = Jac_FULL(272,100) + JVS(3174) = -B(398) IF (DO_JVS(3175)) & -! JVS(3175) = Jac_FULL(269,79) - JVS(3175) = -B(497) +! JVS(3175) = Jac_FULL(272,149) + JVS(3175) = -B(396) IF (DO_JVS(3176)) & -! JVS(3176) = Jac_FULL(269,80) - JVS(3176) = -B(499) +! JVS(3176) = Jac_FULL(272,190) + JVS(3176) = -B(344) IF (DO_JVS(3177)) & -! JVS(3177) = Jac_FULL(269,81) - JVS(3177) = -B(495) +! JVS(3177) = Jac_FULL(272,197) + JVS(3177) = -B(392) IF (DO_JVS(3178)) & -! JVS(3178) = Jac_FULL(269,82) - JVS(3178) = -B(311)-B(313) +! JVS(3178) = Jac_FULL(272,235) + JVS(3178) = 0 IF (DO_JVS(3179)) & -! JVS(3179) = Jac_FULL(269,83) - JVS(3179) = -0.5*B(1128)+2*B(1512) +! JVS(3179) = Jac_FULL(272,253) + JVS(3179) = 0 IF (DO_JVS(3180)) & -! JVS(3180) = Jac_FULL(269,84) - JVS(3180) = -0.3*B(1110) +! JVS(3180) = Jac_FULL(272,261) + JVS(3180) = 0 IF (DO_JVS(3181)) & -! JVS(3181) = Jac_FULL(269,85) - JVS(3181) = -B(23) +! JVS(3181) = Jac_FULL(272,262) + JVS(3181) = 0 IF (DO_JVS(3182)) & -! JVS(3182) = Jac_FULL(269,86) - JVS(3182) = -B(749) +! JVS(3182) = Jac_FULL(272,264) + JVS(3182) = 0 IF (DO_JVS(3183)) & -! JVS(3183) = Jac_FULL(269,87) - JVS(3183) = -B(745) +! JVS(3183) = Jac_FULL(272,266) + JVS(3183) = 0 IF (DO_JVS(3184)) & -! JVS(3184) = Jac_FULL(269,88) - JVS(3184) = -B(747) +! JVS(3184) = Jac_FULL(272,267) + JVS(3184) = 0 IF (DO_JVS(3185)) & -! JVS(3185) = Jac_FULL(269,89) - JVS(3185) = -B(751) +! JVS(3185) = Jac_FULL(272,271) + JVS(3185) = 0 IF (DO_JVS(3186)) & -! JVS(3186) = Jac_FULL(269,91) - JVS(3186) = -0.209*B(256)+B(1436) +! JVS(3186) = Jac_FULL(272,272) + JVS(3186) = -B(334)-B(336)-B(338)-B(340)-B(343)-B(345)-B(356)-B(388)-B(390)-B(393)-B(395)-B(397)-B(399)-B(401)-B(403)& + &-B(405)-B(407)-B(409)-B(411)-B(413)-B(415)-B(417)-B(419)-B(421)-B(423)-B(425)-B(427) IF (DO_JVS(3187)) & -! JVS(3187) = Jac_FULL(269,92) - JVS(3187) = -0.36*B(252)+B(1434) +! JVS(3187) = Jac_FULL(272,273) + JVS(3187) = 0 IF (DO_JVS(3188)) & -! JVS(3188) = Jac_FULL(269,93) - JVS(3188) = -0.209*B(254)+B(1435) +! JVS(3188) = Jac_FULL(272,274) + JVS(3188) = 0 IF (DO_JVS(3189)) & -! JVS(3189) = Jac_FULL(269,94) - JVS(3189) = -B(258)+B(1438) +! JVS(3189) = Jac_FULL(272,275) + JVS(3189) = -B(389) IF (DO_JVS(3190)) & -! JVS(3190) = Jac_FULL(269,95) - JVS(3190) = -B(1208) +! JVS(3190) = Jac_FULL(272,276) + JVS(3190) = 0 IF (DO_JVS(3191)) & -! JVS(3191) = Jac_FULL(269,97) - JVS(3191) = -B(361) +! JVS(3191) = Jac_FULL(272,277) + JVS(3191) = 0 IF (DO_JVS(3192)) & -! JVS(3192) = Jac_FULL(269,99) - JVS(3192) = -B(1195) +! JVS(3192) = Jac_FULL(272,278) + JVS(3192) = -B(335) IF (DO_JVS(3193)) & -! JVS(3193) = Jac_FULL(269,100) - JVS(3193) = -B(487) +! JVS(3193) = Jac_FULL(272,279) + JVS(3193) = 0 IF (DO_JVS(3194)) & -! JVS(3194) = Jac_FULL(269,101) - JVS(3194) = -B(79)+B(1410) +! JVS(3194) = Jac_FULL(272,280) + JVS(3194) = 0 IF (DO_JVS(3195)) & -! JVS(3195) = Jac_FULL(269,104) - JVS(3195) = -B(1126) +! JVS(3195) = Jac_FULL(272,281) + JVS(3195) = 0 IF (DO_JVS(3196)) & -! JVS(3196) = Jac_FULL(269,105) - JVS(3196) = -B(1218) +! JVS(3196) = Jac_FULL(272,282) + JVS(3196) = -B(357)+B(1360) IF (DO_JVS(3197)) & -! JVS(3197) = Jac_FULL(269,106) - JVS(3197) = -B(819) +! JVS(3197) = Jac_FULL(272,283) + JVS(3197) = 0 IF (DO_JVS(3198)) & -! JVS(3198) = Jac_FULL(269,107) - JVS(3198) = -B(475) +! JVS(3198) = Jac_FULL(272,284) + JVS(3198) = 0 IF (DO_JVS(3199)) & -! JVS(3199) = Jac_FULL(269,108) - JVS(3199) = -0.36*B(250)+B(1433) +! JVS(3199) = Jac_FULL(272,285) + JVS(3199) = 0 IF (DO_JVS(3200)) & -! JVS(3200) = Jac_FULL(269,109) - JVS(3200) = -B(1185) +! JVS(3200) = Jac_FULL(272,286) + JVS(3200) = 0 IF (DO_JVS(3201)) & -! JVS(3201) = Jac_FULL(269,110) - JVS(3201) = -0.209*B(260)+B(1437) +! JVS(3201) = Jac_FULL(272,287) + JVS(3201) = 0 IF (DO_JVS(3202)) & -! JVS(3202) = Jac_FULL(269,111) - JVS(3202) = -0.209*B(248)+B(1432) +! JVS(3202) = Jac_FULL(272,288) + JVS(3202) = 0 IF (DO_JVS(3203)) & -! JVS(3203) = Jac_FULL(269,112) - JVS(3203) = -B(125) +! JVS(3203) = Jac_FULL(272,289) + JVS(3203) = -B(391) IF (DO_JVS(3204)) & -! JVS(3204) = Jac_FULL(269,113) - JVS(3204) = -B(1161)+B(1552) +! JVS(3204) = Jac_FULL(272,290) + JVS(3204) = 0 IF (DO_JVS(3205)) & -! JVS(3205) = Jac_FULL(269,114) - JVS(3205) = -B(858) +! JVS(3205) = Jac_FULL(272,291) + JVS(3205) = 0 IF (DO_JVS(3206)) & -! JVS(3206) = Jac_FULL(269,115) - JVS(3206) = -B(1068) +! JVS(3206) = Jac_FULL(273,2) + JVS(3206) = B(1446) IF (DO_JVS(3207)) & -! JVS(3207) = Jac_FULL(269,116) - JVS(3207) = B(895)+2*B(897) +! JVS(3207) = Jac_FULL(273,47) + JVS(3207) = B(1431) IF (DO_JVS(3208)) & -! JVS(3208) = Jac_FULL(269,117) - JVS(3208) = -B(1181) +! JVS(3208) = Jac_FULL(273,48) + JVS(3208) = 0.75*B(426)+2*B(1433) IF (DO_JVS(3209)) & -! JVS(3209) = Jac_FULL(269,118) - JVS(3209) = -0.51*B(705)+B(1499) +! JVS(3209) = Jac_FULL(273,51) + JVS(3209) = B(1405) IF (DO_JVS(3210)) & -! JVS(3210) = Jac_FULL(269,119) - JVS(3210) = 2*B(1497) +! JVS(3210) = Jac_FULL(273,59) + JVS(3210) = 0.34*B(410)+B(1432) IF (DO_JVS(3211)) & -! JVS(3211) = Jac_FULL(269,120) - JVS(3211) = B(891)+2*B(893) +! JVS(3211) = Jac_FULL(273,71) + JVS(3211) = 2*B(330)+0.95*B(400)+2*B(1407) IF (DO_JVS(3212)) & -! JVS(3212) = Jac_FULL(269,121) - JVS(3212) = -B(115)-B(117) +! JVS(3212) = Jac_FULL(273,73) + JVS(3212) = B(1449) IF (DO_JVS(3213)) & -! JVS(3213) = Jac_FULL(269,122) - JVS(3213) = -0.556*B(1114)+0.546*B(1547) +! JVS(3213) = Jac_FULL(273,77) + JVS(3213) = 3*B(328)+1.4*B(402)+3*B(1406) IF (DO_JVS(3214)) & -! JVS(3214) = Jac_FULL(269,124) - JVS(3214) = B(1533) +! JVS(3214) = Jac_FULL(273,100) + JVS(3214) = B(332)+0.56*B(398)+B(1408) IF (DO_JVS(3215)) & -! JVS(3215) = Jac_FULL(269,125) - JVS(3215) = -B(333) +! JVS(3215) = Jac_FULL(273,124) + JVS(3215) = -B(322) IF (DO_JVS(3216)) & -! JVS(3216) = Jac_FULL(269,126) - JVS(3216) = B(1532) +! JVS(3216) = Jac_FULL(273,128) + JVS(3216) = B(304)+2*B(1400) IF (DO_JVS(3217)) & -! JVS(3217) = Jac_FULL(269,127) - JVS(3217) = -B(860)-B(862) +! JVS(3217) = Jac_FULL(273,135) + JVS(3217) = B(1411) IF (DO_JVS(3218)) & -! JVS(3218) = Jac_FULL(269,128) - JVS(3218) = -B(864)-B(866) +! JVS(3218) = Jac_FULL(273,161) + JVS(3218) = -B(320) IF (DO_JVS(3219)) & -! JVS(3219) = Jac_FULL(269,129) - JVS(3219) = -B(196) +! JVS(3219) = Jac_FULL(273,176) + JVS(3219) = -B(302)+B(1403) IF (DO_JVS(3220)) & -! JVS(3220) = Jac_FULL(269,130) - JVS(3220) = -B(1074) +! JVS(3220) = Jac_FULL(273,203) + JVS(3220) = 0 IF (DO_JVS(3221)) & -! JVS(3221) = Jac_FULL(269,131) - JVS(3221) = -B(743) +! JVS(3221) = Jac_FULL(273,221) + JVS(3221) = -B(318) IF (DO_JVS(3222)) & -! JVS(3222) = Jac_FULL(269,133) - JVS(3222) = -0.415*B(1086)+0.75*B(1522) +! JVS(3222) = Jac_FULL(273,227) + JVS(3222) = B(560) IF (DO_JVS(3223)) & -! JVS(3223) = Jac_FULL(269,134) - JVS(3223) = -B(58)+B(1405) +! JVS(3223) = Jac_FULL(273,235) + JVS(3223) = 0 IF (DO_JVS(3224)) & -! JVS(3224) = Jac_FULL(269,136) - JVS(3224) = -B(899)-B(901) +! JVS(3224) = Jac_FULL(273,238) + JVS(3224) = 0 IF (DO_JVS(3225)) & -! JVS(3225) = Jac_FULL(269,137) - JVS(3225) = -B(903)-B(905) +! JVS(3225) = Jac_FULL(273,253) + JVS(3225) = -B(542) IF (DO_JVS(3226)) & -! JVS(3226) = Jac_FULL(269,138) - JVS(3226) = -B(1189)+B(1191) +! JVS(3226) = Jac_FULL(273,254) + JVS(3226) = 0 IF (DO_JVS(3227)) & -! JVS(3227) = Jac_FULL(269,139) - JVS(3227) = 1.25*B(1545) +! JVS(3227) = Jac_FULL(273,256) + JVS(3227) = 0 IF (DO_JVS(3228)) & -! JVS(3228) = Jac_FULL(269,140) - JVS(3228) = -B(621) +! JVS(3228) = Jac_FULL(273,257) + JVS(3228) = 0 IF (DO_JVS(3229)) & -! JVS(3229) = Jac_FULL(269,141) - JVS(3229) = B(1054) +! JVS(3229) = Jac_FULL(273,258) + JVS(3229) = 0 IF (DO_JVS(3230)) & -! JVS(3230) = Jac_FULL(269,142) - JVS(3230) = B(1060) +! JVS(3230) = Jac_FULL(273,259) + JVS(3230) = 0 IF (DO_JVS(3231)) & -! JVS(3231) = Jac_FULL(269,143) - JVS(3231) = 0.82*B(1028) +! JVS(3231) = Jac_FULL(273,260) + JVS(3231) = B(1402) IF (DO_JVS(3232)) & -! JVS(3232) = Jac_FULL(269,144) +! JVS(3232) = Jac_FULL(273,261) JVS(3232) = 0 IF (DO_JVS(3233)) & -! JVS(3233) = Jac_FULL(269,145) - JVS(3233) = -0.75*B(1237)+0.1*B(1239) +! JVS(3233) = Jac_FULL(273,262) + JVS(3233) = 0 IF (DO_JVS(3234)) & -! JVS(3234) = Jac_FULL(269,146) - JVS(3234) = B(1022) +! JVS(3234) = Jac_FULL(273,263) + JVS(3234) = -B(314) IF (DO_JVS(3235)) & -! JVS(3235) = Jac_FULL(269,147) - JVS(3235) = -B(988)-B(994)-B(998)+B(1539) +! JVS(3235) = Jac_FULL(273,264) + JVS(3235) = -B(316) IF (DO_JVS(3236)) & -! JVS(3236) = Jac_FULL(269,148) - JVS(3236) = 0.599*B(927) +! JVS(3236) = Jac_FULL(273,266) + JVS(3236) = 0 IF (DO_JVS(3237)) & -! JVS(3237) = Jac_FULL(269,149) - JVS(3237) = -B(1108) +! JVS(3237) = Jac_FULL(273,267) + JVS(3237) = 0 IF (DO_JVS(3238)) & -! JVS(3238) = Jac_FULL(269,150) - JVS(3238) = -B(667)+0.85*B(681) +! JVS(3238) = Jac_FULL(273,268) + JVS(3238) = 0 IF (DO_JVS(3239)) & -! JVS(3239) = Jac_FULL(269,151) - JVS(3239) = -B(669)+0.85*B(683) +! JVS(3239) = Jac_FULL(273,269) + JVS(3239) = B(558) IF (DO_JVS(3240)) & -! JVS(3240) = Jac_FULL(269,152) - JVS(3240) = B(1519) +! JVS(3240) = Jac_FULL(273,270) + JVS(3240) = 0 IF (DO_JVS(3241)) & -! JVS(3241) = Jac_FULL(269,153) - JVS(3241) = -B(821)-B(829)+B(1526) +! JVS(3241) = Jac_FULL(273,271) + JVS(3241) = 0 IF (DO_JVS(3242)) & -! JVS(3242) = Jac_FULL(269,154) - JVS(3242) = -B(198) +! JVS(3242) = Jac_FULL(273,272) + JVS(3242) = 0.6*B(390)+0.56*B(399)+0.95*B(401)+1.4*B(403)+0.34*B(411)+0.75*B(427) IF (DO_JVS(3243)) & -! JVS(3243) = Jac_FULL(269,155) - JVS(3243) = -0.75*B(1232)+0.1*B(1234) +! JVS(3243) = Jac_FULL(273,273) + JVS(3243) = -B(290)-B(294)-B(303)-B(312)-B(315)-B(317)-B(319)-B(321)-B(323)-B(324)-B(543) IF (DO_JVS(3244)) & -! JVS(3244) = Jac_FULL(269,157) - JVS(3244) = -B(107) +! JVS(3244) = Jac_FULL(273,274) + JVS(3244) = 2*B(298)+B(300)+B(310)+B(384)+B(496)+B(498)+B(559)+B(561)+B(1401) IF (DO_JVS(3245)) & -! JVS(3245) = Jac_FULL(269,158) - JVS(3245) = -B(825)-B(831)+B(1527) +! JVS(3245) = Jac_FULL(273,275) + JVS(3245) = 0 IF (DO_JVS(3246)) & -! JVS(3246) = Jac_FULL(269,159) - JVS(3246) = B(1546) +! JVS(3246) = Jac_FULL(273,276) + JVS(3246) = 0 IF (DO_JVS(3247)) & -! JVS(3247) = Jac_FULL(269,160) - JVS(3247) = -0.715*B(1064)+1.75*B(1520) +! JVS(3247) = Jac_FULL(273,277) + JVS(3247) = 0 IF (DO_JVS(3248)) & -! JVS(3248) = Jac_FULL(269,161) - JVS(3248) = -0.255*B(835)+B(1529) +! JVS(3248) = Jac_FULL(273,278) + JVS(3248) = 0 IF (DO_JVS(3249)) & -! JVS(3249) = Jac_FULL(269,162) - JVS(3249) = 0.518*B(920) +! JVS(3249) = Jac_FULL(273,279) + JVS(3249) = B(301) IF (DO_JVS(3250)) & -! JVS(3250) = Jac_FULL(269,163) - JVS(3250) = 0.506*B(941) +! JVS(3250) = Jac_FULL(273,280) + JVS(3250) = 0 IF (DO_JVS(3251)) & -! JVS(3251) = Jac_FULL(269,164) - JVS(3251) = 0.582*B(935) +! JVS(3251) = Jac_FULL(273,281) + JVS(3251) = -B(313) IF (DO_JVS(3252)) & -! JVS(3252) = Jac_FULL(269,165) - JVS(3252) = -B(689)+0.85*B(691) +! JVS(3252) = Jac_FULL(273,282) + JVS(3252) = -B(291) IF (DO_JVS(3253)) & -! JVS(3253) = Jac_FULL(269,166) - JVS(3253) = -B(1072) +! JVS(3253) = Jac_FULL(273,283) + JVS(3253) = 0 IF (DO_JVS(3254)) & -! JVS(3254) = Jac_FULL(269,167) - JVS(3254) = -0.595*B(833)+B(1528) +! JVS(3254) = Jac_FULL(273,284) + JVS(3254) = -B(295) IF (DO_JVS(3255)) & -! JVS(3255) = Jac_FULL(269,168) - JVS(3255) = B(1513) +! JVS(3255) = Jac_FULL(273,285) + JVS(3255) = B(497)+B(499) IF (DO_JVS(3256)) & -! JVS(3256) = Jac_FULL(269,171) - JVS(3256) = B(1525) +! JVS(3256) = Jac_FULL(273,286) + JVS(3256) = B(296)+B(305)+B(311)+3*B(329)+2*B(331)+B(333) IF (DO_JVS(3257)) & -! JVS(3257) = Jac_FULL(269,172) +! JVS(3257) = Jac_FULL(273,287) JVS(3257) = 0 IF (DO_JVS(3258)) & -! JVS(3258) = Jac_FULL(269,173) - JVS(3258) = B(411)+2*B(413) +! JVS(3258) = Jac_FULL(273,288) + JVS(3258) = B(308)+B(385) IF (DO_JVS(3259)) & -! JVS(3259) = Jac_FULL(269,174) - JVS(3259) = -B(731) +! JVS(3259) = Jac_FULL(273,289) + JVS(3259) = B(297)+B(309)+0.6*B(391) IF (DO_JVS(3260)) & -! JVS(3260) = Jac_FULL(269,175) +! JVS(3260) = Jac_FULL(273,290) JVS(3260) = 0 IF (DO_JVS(3261)) & -! JVS(3261) = Jac_FULL(269,176) - JVS(3261) = 0.2*B(1199) +! JVS(3261) = Jac_FULL(273,291) + JVS(3261) = -B(325) IF (DO_JVS(3262)) & -! JVS(3262) = Jac_FULL(269,177) - JVS(3262) = -B(986)-B(996)+0.67*B(1538) +! JVS(3262) = Jac_FULL(274,47) + JVS(3262) = 0.45*B(412) IF (DO_JVS(3263)) & -! JVS(3263) = Jac_FULL(269,178) - JVS(3263) = B(1171) +! JVS(3263) = Jac_FULL(274,48) + JVS(3263) = 0.75*B(426) IF (DO_JVS(3264)) & -! JVS(3264) = Jac_FULL(269,179) - JVS(3264) = B(837)+0.275*B(842) +! JVS(3264) = Jac_FULL(274,59) + JVS(3264) = 0.31*B(410) IF (DO_JVS(3265)) & -! JVS(3265) = Jac_FULL(269,180) - JVS(3265) = B(844)+0.275*B(849) +! JVS(3265) = Jac_FULL(274,71) + JVS(3265) = 0.95*B(400) IF (DO_JVS(3266)) & -! JVS(3266) = Jac_FULL(269,182) - JVS(3266) = 0.085*B(807)+1.662*B(1530) +! JVS(3266) = Jac_FULL(274,77) + JVS(3266) = 0.7*B(402) IF (DO_JVS(3267)) & -! JVS(3267) = Jac_FULL(269,183) - JVS(3267) = B(852)+1.3*B(856) +! JVS(3267) = Jac_FULL(274,100) + JVS(3267) = 0.44*B(398) IF (DO_JVS(3268)) & -! JVS(3268) = Jac_FULL(269,184) - JVS(3268) = 0.165*B(809)+1.637*B(1531) +! JVS(3268) = Jac_FULL(274,176) + JVS(3268) = B(1404) IF (DO_JVS(3269)) & -! JVS(3269) = Jac_FULL(269,185) - JVS(3269) = B(1002)+0.646*B(1006)+0.096*B(1012) +! JVS(3269) = Jac_FULL(274,227) + JVS(3269) = -B(560) IF (DO_JVS(3270)) & -! JVS(3270) = Jac_FULL(269,186) - JVS(3270) = -B(46)+B(375) +! JVS(3270) = Jac_FULL(274,260) + JVS(3270) = B(306) IF (DO_JVS(3271)) & -! JVS(3271) = Jac_FULL(269,187) +! JVS(3271) = Jac_FULL(274,268) JVS(3271) = 0 IF (DO_JVS(3272)) & -! JVS(3272) = Jac_FULL(269,188) - JVS(3272) = -B(74)+B(1409) +! JVS(3272) = Jac_FULL(274,269) + JVS(3272) = -B(558) IF (DO_JVS(3273)) & -! JVS(3273) = Jac_FULL(269,189) - JVS(3273) = 0.065*B(815) +! JVS(3273) = Jac_FULL(274,270) + JVS(3273) = 0 IF (DO_JVS(3274)) & -! JVS(3274) = Jac_FULL(269,190) - JVS(3274) = 0.65*B(884)+B(890) +! JVS(3274) = Jac_FULL(274,272) + JVS(3274) = 0.2*B(390)+0.44*B(399)+0.95*B(401)+0.7*B(403)+0.31*B(411)+0.45*B(413)+0.75*B(427) IF (DO_JVS(3275)) & -! JVS(3275) = Jac_FULL(269,191) - JVS(3275) = 0 +! JVS(3275) = Jac_FULL(274,273) + JVS(3275) = B(290)+B(312) IF (DO_JVS(3276)) & -! JVS(3276) = Jac_FULL(269,192) - JVS(3276) = -B(467) +! JVS(3276) = Jac_FULL(274,274) + JVS(3276) = -B(292)-2*B(298)-2*B(299)-B(300)-B(310)-B(326)-B(384)-B(496)-B(498)-B(500)-B(559)-B(561)-B(1401) IF (DO_JVS(3277)) & -! JVS(3277) = Jac_FULL(269,193) - JVS(3277) = -B(62)+B(1494) +! JVS(3277) = Jac_FULL(274,275) + JVS(3277) = 0 IF (DO_JVS(3278)) & -! JVS(3278) = Jac_FULL(269,194) - JVS(3278) = -B(639) +! JVS(3278) = Jac_FULL(274,276) + JVS(3278) = 0 IF (DO_JVS(3279)) & -! JVS(3279) = Jac_FULL(269,195) - JVS(3279) = -B(1048) +! JVS(3279) = Jac_FULL(274,277) + JVS(3279) = 0 IF (DO_JVS(3280)) & -! JVS(3280) = Jac_FULL(269,196) - JVS(3280) = -B(733) +! JVS(3280) = Jac_FULL(274,278) + JVS(3280) = 0 IF (DO_JVS(3281)) & -! JVS(3281) = Jac_FULL(269,197) - JVS(3281) = 0 +! JVS(3281) = Jac_FULL(274,279) + JVS(3281) = -B(301) IF (DO_JVS(3282)) & -! JVS(3282) = Jac_FULL(269,198) - JVS(3282) = -B(145) +! JVS(3282) = Jac_FULL(274,280) + JVS(3282) = 0 IF (DO_JVS(3283)) & -! JVS(3283) = Jac_FULL(269,199) - JVS(3283) = 0 +! JVS(3283) = Jac_FULL(274,281) + JVS(3283) = B(313) IF (DO_JVS(3284)) & -! JVS(3284) = Jac_FULL(269,200) - JVS(3284) = 0.665*B(1076) +! JVS(3284) = Jac_FULL(274,282) + JVS(3284) = B(291) IF (DO_JVS(3285)) & -! JVS(3285) = Jac_FULL(269,201) - JVS(3285) = 0.59*B(1082)+B(1088) +! JVS(3285) = Jac_FULL(274,283) + JVS(3285) = 0 IF (DO_JVS(3286)) & -! JVS(3286) = Jac_FULL(269,202) - JVS(3286) = -0.5*B(1112)+0.5*B(1543)+B(1544) +! JVS(3286) = Jac_FULL(274,284) + JVS(3286) = -B(293) IF (DO_JVS(3287)) & -! JVS(3287) = Jac_FULL(269,203) - JVS(3287) = 0.5*B(1084) +! JVS(3287) = Jac_FULL(274,285) + JVS(3287) = -B(497)-B(499)-B(501) IF (DO_JVS(3288)) & -! JVS(3288) = Jac_FULL(269,204) - JVS(3288) = 0 +! JVS(3288) = Jac_FULL(274,286) + JVS(3288) = -B(311) IF (DO_JVS(3289)) & -! JVS(3289) = Jac_FULL(269,205) - JVS(3289) = -B(637) +! JVS(3289) = Jac_FULL(274,287) + JVS(3289) = 0 IF (DO_JVS(3290)) & -! JVS(3290) = Jac_FULL(269,206) - JVS(3290) = -B(1224) +! JVS(3290) = Jac_FULL(274,288) + JVS(3290) = B(307)-B(385) IF (DO_JVS(3291)) & -! JVS(3291) = Jac_FULL(269,207) - JVS(3291) = -B(90) +! JVS(3291) = Jac_FULL(274,289) + JVS(3291) = 0.2*B(391) IF (DO_JVS(3292)) & -! JVS(3292) = Jac_FULL(269,208) - JVS(3292) = -B(39)+B(407)+2*B(1404) +! JVS(3292) = Jac_FULL(274,290) + JVS(3292) = 0 IF (DO_JVS(3293)) & -! JVS(3293) = Jac_FULL(269,209) - JVS(3293) = -B(1120)+B(1550) +! JVS(3293) = Jac_FULL(274,291) + JVS(3293) = -B(327) IF (DO_JVS(3294)) & -! JVS(3294) = Jac_FULL(269,210) - JVS(3294) = -B(911)-B(913)-0.4*B(917)+0.55*B(1537) +! JVS(3294) = Jac_FULL(275,72) + JVS(3294) = B(508) IF (DO_JVS(3295)) & -! JVS(3295) = Jac_FULL(269,211) - JVS(3295) = 0 +! JVS(3295) = Jac_FULL(275,78) + JVS(3295) = B(510) IF (DO_JVS(3296)) & -! JVS(3296) = Jac_FULL(269,212) - JVS(3296) = 0 +! JVS(3296) = Jac_FULL(275,114) + JVS(3296) = B(538) IF (DO_JVS(3297)) & -! JVS(3297) = Jac_FULL(269,213) - JVS(3297) = 0 +! JVS(3297) = Jac_FULL(275,124) + JVS(3297) = B(530)+B(532) IF (DO_JVS(3298)) & -! JVS(3298) = Jac_FULL(269,214) - JVS(3298) = -B(92) +! JVS(3298) = Jac_FULL(275,133) + JVS(3298) = B(526) IF (DO_JVS(3299)) & -! JVS(3299) = Jac_FULL(269,215) - JVS(3299) = -B(147) +! JVS(3299) = Jac_FULL(275,137) + JVS(3299) = B(516) IF (DO_JVS(3300)) & -! JVS(3300) = Jac_FULL(269,216) - JVS(3300) = -B(907)-B(909)-0.4*B(915)+0.55*B(1534) +! JVS(3300) = Jac_FULL(275,138) + JVS(3300) = -B(11) IF (DO_JVS(3301)) & -! JVS(3301) = Jac_FULL(269,217) - JVS(3301) = B(1003)+1.147*B(1004)+0.435*B(1008) +! JVS(3301) = Jac_FULL(275,147) + JVS(3301) = -B(4) IF (DO_JVS(3302)) & -! JVS(3302) = Jac_FULL(269,218) - JVS(3302) = -B(224) +! JVS(3302) = Jac_FULL(275,149) + JVS(3302) = 2*B(506) IF (DO_JVS(3303)) & -! JVS(3303) = Jac_FULL(269,219) - JVS(3303) = -B(158) +! JVS(3303) = Jac_FULL(275,161) + JVS(3303) = B(518) IF (DO_JVS(3304)) & -! JVS(3304) = Jac_FULL(269,220) - JVS(3304) = 0.28*B(753)-B(755)-B(757)+0.5*B(759)+0.5*B(761) +! JVS(3304) = Jac_FULL(275,173) + JVS(3304) = -B(1216) IF (DO_JVS(3305)) & -! JVS(3305) = Jac_FULL(269,221) - JVS(3305) = 0 +! JVS(3305) = Jac_FULL(275,176) + JVS(3305) = -B(1229) IF (DO_JVS(3306)) & -! JVS(3306) = Jac_FULL(269,222) - JVS(3306) = -B(176) +! JVS(3306) = Jac_FULL(275,190) + JVS(3306) = B(464) IF (DO_JVS(3307)) & -! JVS(3307) = Jac_FULL(269,223) - JVS(3307) = 0 +! JVS(3307) = Jac_FULL(275,211) + JVS(3307) = B(512) IF (DO_JVS(3308)) & -! JVS(3308) = Jac_FULL(269,224) - JVS(3308) = B(869)+0.65*B(870) +! JVS(3308) = Jac_FULL(275,212) + JVS(3308) = B(472) IF (DO_JVS(3309)) & -! JVS(3309) = Jac_FULL(269,225) - JVS(3309) = B(877)+0.65*B(882) +! JVS(3309) = Jac_FULL(275,217) + JVS(3309) = 0 IF (DO_JVS(3310)) & -! JVS(3310) = Jac_FULL(269,226) - JVS(3310) = B(1518) +! JVS(3310) = Jac_FULL(275,218) + JVS(3310) = B(524) IF (DO_JVS(3311)) & -! JVS(3311) = Jac_FULL(269,227) - JVS(3311) = B(1521) +! JVS(3311) = Jac_FULL(275,219) + JVS(3311) = B(528) IF (DO_JVS(3312)) & -! JVS(3312) = Jac_FULL(269,228) - JVS(3312) = -B(226) +! JVS(3312) = Jac_FULL(275,221) + JVS(3312) = B(534) IF (DO_JVS(3313)) & -! JVS(3313) = Jac_FULL(269,229) - JVS(3313) = 0.379*B(947) +! JVS(3313) = Jac_FULL(275,224) + JVS(3313) = B(536) IF (DO_JVS(3314)) & -! JVS(3314) = Jac_FULL(269,230) +! JVS(3314) = Jac_FULL(275,225) JVS(3314) = 0 IF (DO_JVS(3315)) & -! JVS(3315) = Jac_FULL(269,231) - JVS(3315) = -B(483) +! JVS(3315) = Jac_FULL(275,234) + JVS(3315) = 0 IF (DO_JVS(3316)) & -! JVS(3316) = Jac_FULL(269,232) - JVS(3316) = -0.773*B(218)+0.07*B(1422) +! JVS(3316) = Jac_FULL(275,235) + JVS(3316) = -B(1249) IF (DO_JVS(3317)) & -! JVS(3317) = Jac_FULL(269,233) +! JVS(3317) = Jac_FULL(275,236) JVS(3317) = 0 IF (DO_JVS(3318)) & -! JVS(3318) = Jac_FULL(269,234) +! JVS(3318) = Jac_FULL(275,237) JVS(3318) = 0 IF (DO_JVS(3319)) & -! JVS(3319) = Jac_FULL(269,235) +! JVS(3319) = Jac_FULL(275,238) JVS(3319) = 0 IF (DO_JVS(3320)) & -! JVS(3320) = Jac_FULL(269,236) - JVS(3320) = -B(1016)-0.756*B(1018)+0.645*B(1541) +! JVS(3320) = Jac_FULL(275,239) + JVS(3320) = 0 IF (DO_JVS(3321)) & -! JVS(3321) = Jac_FULL(269,237) - JVS(3321) = -0.98*B(1042)+0.01*B(1523) +! JVS(3321) = Jac_FULL(275,240) + JVS(3321) = 0 IF (DO_JVS(3322)) & -! JVS(3322) = Jac_FULL(269,238) - JVS(3322) = -0.7*B(1122)+B(1548)+0.3*B(1549) +! JVS(3322) = Jac_FULL(275,241) + JVS(3322) = 0 IF (DO_JVS(3323)) & -! JVS(3323) = Jac_FULL(269,239) - JVS(3323) = -B(1024) +! JVS(3323) = Jac_FULL(275,242) + JVS(3323) = 0 IF (DO_JVS(3324)) & -! JVS(3324) = Jac_FULL(269,240) - JVS(3324) = 0.527*B(955) +! JVS(3324) = Jac_FULL(275,243) + JVS(3324) = 0 IF (DO_JVS(3325)) & -! JVS(3325) = Jac_FULL(269,241) +! JVS(3325) = Jac_FULL(275,244) JVS(3325) = 0 IF (DO_JVS(3326)) & -! JVS(3326) = Jac_FULL(269,242) - JVS(3326) = 0.063*B(763)+B(771)+1.5*B(772)+B(779)+B(781)+0.5*B(785)+0.55*B(797) +! JVS(3326) = Jac_FULL(275,245) + JVS(3326) = 0 IF (DO_JVS(3327)) & -! JVS(3327) = Jac_FULL(269,243) - JVS(3327) = 0.063*B(767)+B(773)+1.5*B(774)+B(780)+B(782)+0.5*B(789)+0.55*B(805) +! JVS(3327) = Jac_FULL(275,246) + JVS(3327) = 0 IF (DO_JVS(3328)) & -! JVS(3328) = Jac_FULL(269,244) - JVS(3328) = -B(1030)+0.08*B(1032) +! JVS(3328) = Jac_FULL(275,247) + JVS(3328) = 0 IF (DO_JVS(3329)) & -! JVS(3329) = Jac_FULL(269,245) - JVS(3329) = 0.5*B(1097) +! JVS(3329) = Jac_FULL(275,248) + JVS(3329) = 0 IF (DO_JVS(3330)) & -! JVS(3330) = Jac_FULL(269,246) - JVS(3330) = -B(232) +! JVS(3330) = Jac_FULL(275,249) + JVS(3330) = 0 IF (DO_JVS(3331)) & -! JVS(3331) = Jac_FULL(269,247) - JVS(3331) = -B(1034)-B(1036)+0.12*B(1038)+0.68*B(1040) +! JVS(3331) = Jac_FULL(275,250) + JVS(3331) = 0 IF (DO_JVS(3332)) & -! JVS(3332) = Jac_FULL(269,248) - JVS(3332) = 0.15*B(168) +! JVS(3332) = Jac_FULL(275,251) + JVS(3332) = 0 IF (DO_JVS(3333)) & -! JVS(3333) = Jac_FULL(269,249) - JVS(3333) = 0.15*B(170) +! JVS(3333) = Jac_FULL(275,252) + JVS(3333) = 0 IF (DO_JVS(3334)) & -! JVS(3334) = Jac_FULL(269,250) - JVS(3334) = 0.44*B(212) +! JVS(3334) = Jac_FULL(275,253) + JVS(3334) = B(540) IF (DO_JVS(3335)) & -! JVS(3335) = Jac_FULL(269,251) +! JVS(3335) = Jac_FULL(275,254) JVS(3335) = 0 IF (DO_JVS(3336)) & -! JVS(3336) = Jac_FULL(269,252) +! JVS(3336) = Jac_FULL(275,255) JVS(3336) = 0 IF (DO_JVS(3337)) & -! JVS(3337) = Jac_FULL(269,253) +! JVS(3337) = Jac_FULL(275,256) JVS(3337) = 0 IF (DO_JVS(3338)) & -! JVS(3338) = Jac_FULL(269,254) - JVS(3338) = -B(214)+0.36*B(216) +! JVS(3338) = Jac_FULL(275,257) + JVS(3338) = 0 IF (DO_JVS(3339)) & -! JVS(3339) = Jac_FULL(269,255) - JVS(3339) = -B(149) +! JVS(3339) = Jac_FULL(275,258) + JVS(3339) = 0 IF (DO_JVS(3340)) & -! JVS(3340) = Jac_FULL(269,256) - JVS(3340) = B(335)+B(1443) +! JVS(3340) = Jac_FULL(275,259) + JVS(3340) = 0 IF (DO_JVS(3341)) & -! JVS(3341) = Jac_FULL(269,257) - JVS(3341) = 0.5*B(1130) +! JVS(3341) = Jac_FULL(275,260) + JVS(3341) = -B(1269) IF (DO_JVS(3342)) & -! JVS(3342) = Jac_FULL(269,258) - JVS(3342) = -B(44) +! JVS(3342) = Jac_FULL(275,261) + JVS(3342) = 0 IF (DO_JVS(3343)) & -! JVS(3343) = Jac_FULL(269,259) - JVS(3343) = -B(485) +! JVS(3343) = Jac_FULL(275,262) + JVS(3343) = -B(1233) IF (DO_JVS(3344)) & -! JVS(3344) = Jac_FULL(269,260) - JVS(3344) = -B(70)+B(1408) +! JVS(3344) = Jac_FULL(275,263) + JVS(3344) = B(466) IF (DO_JVS(3345)) & -! JVS(3345) = Jac_FULL(269,261) - JVS(3345) = -B(98) +! JVS(3345) = Jac_FULL(275,264) + JVS(3345) = 0 IF (DO_JVS(3346)) & -! JVS(3346) = Jac_FULL(269,262) - JVS(3346) = -B(66)+B(427) +! JVS(3346) = Jac_FULL(275,265) + JVS(3346) = 0 IF (DO_JVS(3347)) & -! JVS(3347) = Jac_FULL(269,263) - JVS(3347) = -B(56)+0.5*B(786)+0.5*B(790) +! JVS(3347) = Jac_FULL(275,266) + JVS(3347) = 0 IF (DO_JVS(3348)) & -! JVS(3348) = Jac_FULL(269,264) - JVS(3348) = -B(625)+B(1477) +! JVS(3348) = Jac_FULL(275,267) + JVS(3348) = 0 IF (DO_JVS(3349)) & -! JVS(3349) = Jac_FULL(269,265) +! JVS(3349) = Jac_FULL(275,270) JVS(3349) = 0 IF (DO_JVS(3350)) & -! JVS(3350) = Jac_FULL(269,266) - JVS(3350) = 0 +! JVS(3350) = Jac_FULL(275,271) + JVS(3350) = -B(1257)+B(1265) IF (DO_JVS(3351)) & -! JVS(3351) = Jac_FULL(269,267) - JVS(3351) = -B(481)+B(1460) +! JVS(3351) = Jac_FULL(275,272) + JVS(3351) = -0.88*B(388) IF (DO_JVS(3352)) & -! JVS(3352) = Jac_FULL(269,268) - JVS(3352) = 2*B(363)+B(369)+B(376)+0.67*B(429)+0.65*B(431) +! JVS(3352) = Jac_FULL(275,273) + JVS(3352) = 0 IF (DO_JVS(3353)) & -! JVS(3353) = Jac_FULL(269,269) - JVS(3353) = -B(24)-B(27)-2*B(35)-2*B(36)-B(37)-B(40)-B(45)-B(47)-B(57)-B(59)-B(63)-B(67)-B(68)-B(71)-B(72)-B(75)-B(80)& - &-B(85)-B(91)-B(93)-B(99)-B(108)-B(116)-B(118)-B(126)-B(146)-B(148)-B(150)-B(159)-B(177)-B(197)-B(199)& - &-B(215)-0.773*B(219)-B(225)-B(227)-B(233)-0.209*B(249)-0.36*B(251)-0.36*B(253)-0.209*B(255)-0.209*B(257)& - &-B(259)-0.209*B(261)-B(265)-B(312)-B(314)-B(317)-B(325)-B(334)-B(339)-B(358)-B(360)-B(362)-B(385)-B(387)& - &-B(398)-B(468)-B(471)-B(473)-B(476)-B(478)-B(479)-B(482)-B(484)-B(486)-B(488)-B(490)-B(492)-B(494)-B(496)& - &-B(498)-B(500)-B(502)-B(622)-B(624)-B(626)-B(636)-B(638)-B(640)-B(668)-B(670)-B(690)-0.51*B(706)-B(732)& - &-B(734)-B(744)-B(746)-B(748)-B(750)-B(752)-B(756)-B(758)+0.5*B(760)+0.5*B(762)+0.085*B(808)+0.165*B(810)& - &+0.065*B(816)-B(820)-B(822)-B(826)-B(830)-B(832)-0.595*B(834)-0.255*B(836)-B(859)-B(861)-B(863)-B(865)& - &-B(867)-B(900)-B(902)-B(904)-B(906)-B(908)-B(910)-B(912)-B(914)-0.4*B(916)-0.4*B(918)-B(987)-B(989)-B(995)& - &-B(997)-B(999)-B(1017)-0.756*B(1019)-B(1025)-B(1031)-B(1035)-B(1037)-0.98*B(1043)-B(1049)-0.715*B(1065)& - &-B(1069)-B(1073)-B(1075)-0.415*B(1087)-B(1109)-0.3*B(1111)-0.5*B(1113)-0.556*B(1115)-B(1121)-0.7*B(1123)& - &-B(1127)-0.5*B(1129)-B(1145)-0.364*B(1147)-B(1160)-B(1162)-B(1166)-B(1168)-B(1170)-B(1182)-B(1186)-B(1190)& - &-B(1196)-B(1206)-B(1209)-B(1219)-B(1225)-0.75*B(1233)-0.75*B(1238)-B(1270)-B(1272) +! JVS(3353) = Jac_FULL(275,274) + JVS(3353) = 0 IF (DO_JVS(3354)) & -! JVS(3354) = Jac_FULL(269,270) - JVS(3354) = -B(69) +! JVS(3354) = Jac_FULL(275,275) + JVS(3354) = -B(5)-B(12)-0.88*B(389)-B(440)-B(1217)-B(1230)-B(1234)-B(1250)-B(1258)-B(1270) IF (DO_JVS(3355)) & -! JVS(3355) = Jac_FULL(269,271) - JVS(3355) = 0.67*B(430)-B(480) +! JVS(3355) = Jac_FULL(275,276) + JVS(3355) = B(1266) IF (DO_JVS(3356)) & -! JVS(3356) = Jac_FULL(269,272) - JVS(3356) = -B(326)+B(337)+0.65*B(432) +! JVS(3356) = Jac_FULL(275,277) + JVS(3356) = 0 IF (DO_JVS(3357)) & -! JVS(3357) = Jac_FULL(269,273) - JVS(3357) = -B(472)-B(474) +! JVS(3357) = Jac_FULL(275,278) + JVS(3357) = 0 IF (DO_JVS(3358)) & -! JVS(3358) = Jac_FULL(269,274) - JVS(3358) = -B(340) +! JVS(3358) = Jac_FULL(275,279) + JVS(3358) = 0 IF (DO_JVS(3359)) & -! JVS(3359) = Jac_FULL(269,275) +! JVS(3359) = Jac_FULL(275,280) JVS(3359) = 0 IF (DO_JVS(3360)) & -! JVS(3360) = Jac_FULL(269,276) +! JVS(3360) = Jac_FULL(275,281) JVS(3360) = 0 IF (DO_JVS(3361)) & -! JVS(3361) = Jac_FULL(269,277) - JVS(3361) = -B(28)+B(29)+0.36*B(217)+B(412)+0.85*B(682)+0.85*B(684)+0.85*B(692)+0.28*B(754)+0.08*B(1033)+0.12*B(1039)& - &+B(1192)+0.1*B(1235)+0.1*B(1240) +! JVS(3361) = Jac_FULL(275,282) + JVS(3361) = 0 IF (DO_JVS(3362)) & -! JVS(3362) = Jac_FULL(269,278) - JVS(3362) = -B(1271) +! JVS(3362) = Jac_FULL(275,283) + JVS(3362) = 0 IF (DO_JVS(3363)) & -! JVS(3363) = Jac_FULL(269,279) - JVS(3363) = 2*B(364) +! JVS(3363) = Jac_FULL(275,284) + JVS(3363) = B(474) IF (DO_JVS(3364)) & -! JVS(3364) = Jac_FULL(269,280) - JVS(3364) = B(41)-B(73)+0.55*B(798)+0.55*B(806)+B(853)+B(892)+B(896)+0.435*B(1009)+0.096*B(1013) +! JVS(3364) = Jac_FULL(275,285) + JVS(3364) = B(434) IF (DO_JVS(3365)) & -! JVS(3365) = Jac_FULL(269,281) - JVS(3365) = B(30)-B(38)+B(42)+B(81)+0.15*B(169)+0.15*B(171)+0.44*B(213)+B(389)+2*B(414)+B(515)+0.063*B(764)+0.063& - &*B(768)+0.275*B(843)+0.275*B(850)+1.3*B(857)+0.65*B(871)+0.65*B(883)+0.65*B(885)+2*B(894)+2*B(898)+0.518& - &*B(921)+0.599*B(928)+0.582*B(936)+0.506*B(942)+0.379*B(948)+0.527*B(956)+1.147*B(1005)+0.646*B(1007)& - &+B(1023)+0.82*B(1029)+B(1055)+B(1061)+0.665*B(1077)+0.59*B(1083)+0.5*B(1085)+0.5*B(1098)+0.5*B(1131)& - &+B(1172)+0.2*B(1200) +! JVS(3365) = Jac_FULL(275,286) + JVS(3365) = B(435)-B(441) IF (DO_JVS(3366)) & -! JVS(3366) = Jac_FULL(269,282) +! JVS(3366) = Jac_FULL(275,287) JVS(3366) = 0 IF (DO_JVS(3367)) & -! JVS(3367) = Jac_FULL(269,283) - JVS(3367) = -B(1273) +! JVS(3367) = Jac_FULL(275,288) + JVS(3367) = 0 IF (DO_JVS(3368)) & -! JVS(3368) = Jac_FULL(269,284) - JVS(3368) = B(336)+B(338)-B(388)+B(390)+B(408)+B(428) +! JVS(3368) = Jac_FULL(275,289) + JVS(3368) = 0 IF (DO_JVS(3369)) & -! JVS(3369) = Jac_FULL(269,285) - JVS(3369) = B(516) +! JVS(3369) = Jac_FULL(275,290) + JVS(3369) = B(465)+B(467)+B(470)+B(473)+B(475)+2*B(507)+B(509)+B(511)+B(513)+B(517)+B(519)+B(525)+B(527)+B(529)+B(531)& + &+B(533)+B(535)+B(537)+B(539)+B(541) IF (DO_JVS(3370)) & -! JVS(3370) = Jac_FULL(269,286) - JVS(3370) = -B(318) +! JVS(3370) = Jac_FULL(275,291) + JVS(3370) = 0 IF (DO_JVS(3371)) & -! JVS(3371) = Jac_FULL(269,287) - JVS(3371) = B(82)-B(86)+0.68*B(1041) +! JVS(3371) = Jac_FULL(276,66) + JVS(3371) = B(358)+B(360)+B(1455) IF (DO_JVS(3372)) & -! JVS(3372) = Jac_FULL(270,49) - JVS(3372) = B(153) +! JVS(3372) = Jac_FULL(276,86) + JVS(3372) = B(22)-B(23) IF (DO_JVS(3373)) & -! JVS(3373) = Jac_FULL(270,50) - JVS(3373) = B(1446) +! JVS(3373) = Jac_FULL(276,90) + JVS(3373) = B(282)+0.75*B(284)+B(286) IF (DO_JVS(3374)) & -! JVS(3374) = Jac_FULL(270,58) - JVS(3374) = B(1507) +! JVS(3374) = Jac_FULL(276,122) + JVS(3374) = B(1456) IF (DO_JVS(3375)) & -! JVS(3375) = Jac_FULL(270,59) - JVS(3375) = B(1505) +! JVS(3375) = Jac_FULL(276,138) + JVS(3375) = -B(8) IF (DO_JVS(3376)) & -! JVS(3376) = Jac_FULL(270,61) - JVS(3376) = -B(423) +! JVS(3376) = Jac_FULL(276,147) + JVS(3376) = -B(1) IF (DO_JVS(3377)) & -! JVS(3377) = Jac_FULL(270,63) - JVS(3377) = B(104)+0.7*B(1417) +! JVS(3377) = Jac_FULL(276,195) + JVS(3377) = -B(612) IF (DO_JVS(3378)) & -! JVS(3378) = Jac_FULL(270,64) - JVS(3378) = B(1159) +! JVS(3378) = Jac_FULL(276,212) + JVS(3378) = -B(15) IF (DO_JVS(3379)) & -! JVS(3379) = Jac_FULL(270,71) - JVS(3379) = B(310)+B(1493) +! JVS(3379) = Jac_FULL(276,224) + JVS(3379) = 0 IF (DO_JVS(3380)) & -! JVS(3380) = Jac_FULL(270,86) - JVS(3380) = B(749)+B(1510) +! JVS(3380) = Jac_FULL(276,234) + JVS(3380) = -B(604) IF (DO_JVS(3381)) & -! JVS(3381) = Jac_FULL(270,87) - JVS(3381) = B(745)+B(1508) +! JVS(3381) = Jac_FULL(276,248) + JVS(3381) = 0 IF (DO_JVS(3382)) & -! JVS(3382) = Jac_FULL(270,88) - JVS(3382) = B(747)+B(1509) +! JVS(3382) = Jac_FULL(276,251) + JVS(3382) = 0 IF (DO_JVS(3383)) & -! JVS(3383) = Jac_FULL(270,89) - JVS(3383) = B(751)+B(1511) +! JVS(3383) = Jac_FULL(276,253) + JVS(3383) = 0 IF (DO_JVS(3384)) & -! JVS(3384) = Jac_FULL(270,90) - JVS(3384) = B(609) +! JVS(3384) = Jac_FULL(276,260) + JVS(3384) = -B(1279) IF (DO_JVS(3385)) & -! JVS(3385) = Jac_FULL(270,95) - JVS(3385) = B(1207)+B(1208) +! JVS(3385) = Jac_FULL(276,261) + JVS(3385) = 0 IF (DO_JVS(3386)) & -! JVS(3386) = Jac_FULL(270,101) - JVS(3386) = B(78)+B(79)+B(1411) +! JVS(3386) = Jac_FULL(276,263) + JVS(3386) = -B(20) IF (DO_JVS(3387)) & -! JVS(3387) = Jac_FULL(270,111) - JVS(3387) = B(1432) +! JVS(3387) = Jac_FULL(276,264) + JVS(3387) = 0 IF (DO_JVS(3388)) & -! JVS(3388) = Jac_FULL(270,116) - JVS(3388) = B(895) +! JVS(3388) = Jac_FULL(276,265) + JVS(3388) = 0 IF (DO_JVS(3389)) & -! JVS(3389) = Jac_FULL(270,120) - JVS(3389) = B(891) +! JVS(3389) = Jac_FULL(276,266) + JVS(3389) = 0 IF (DO_JVS(3390)) & -! JVS(3390) = Jac_FULL(270,131) - JVS(3390) = B(1503) +! JVS(3390) = Jac_FULL(276,267) + JVS(3390) = 0 IF (DO_JVS(3391)) & -! JVS(3391) = Jac_FULL(270,135) +! JVS(3391) = Jac_FULL(276,270) JVS(3391) = 0 IF (DO_JVS(3392)) & -! JVS(3392) = Jac_FULL(270,136) - JVS(3392) = B(901)+B(1535) +! JVS(3392) = Jac_FULL(276,271) + JVS(3392) = -B(1265) IF (DO_JVS(3393)) & -! JVS(3393) = Jac_FULL(270,137) - JVS(3393) = B(905)+B(1536) +! JVS(3393) = Jac_FULL(276,272) + JVS(3393) = 0 IF (DO_JVS(3394)) & -! JVS(3394) = Jac_FULL(270,141) - JVS(3394) = B(1052)-B(1056) +! JVS(3394) = Jac_FULL(276,273) + JVS(3394) = 0 IF (DO_JVS(3395)) & -! JVS(3395) = Jac_FULL(270,142) - JVS(3395) = B(1058)-B(1062) +! JVS(3395) = Jac_FULL(276,274) + JVS(3395) = 0 IF (DO_JVS(3396)) & -! JVS(3396) = Jac_FULL(270,143) - JVS(3396) = 1.11*B(1026)+0.09*B(1028) +! JVS(3396) = Jac_FULL(276,275) + JVS(3396) = 0 IF (DO_JVS(3397)) & -! JVS(3397) = Jac_FULL(270,144) - JVS(3397) = 0 +! JVS(3397) = Jac_FULL(276,276) + JVS(3397) = -B(2)-B(9)-B(16)-B(17)-B(19)-B(21)-B(24)-B(288)-B(605)-B(613)-B(1266)-B(1280) IF (DO_JVS(3398)) & -! JVS(3398) = Jac_FULL(270,146) - JVS(3398) = B(1020) +! JVS(3398) = Jac_FULL(276,277) + JVS(3398) = 0 IF (DO_JVS(3399)) & -! JVS(3399) = Jac_FULL(270,147) - JVS(3399) = B(994)+B(1540) +! JVS(3399) = Jac_FULL(276,278) + JVS(3399) = 0 IF (DO_JVS(3400)) & -! JVS(3400) = Jac_FULL(270,148) - JVS(3400) = B(929) +! JVS(3400) = Jac_FULL(276,279) + JVS(3400) = 0 IF (DO_JVS(3401)) & -! JVS(3401) = Jac_FULL(270,149) - JVS(3401) = B(1107) +! JVS(3401) = Jac_FULL(276,280) + JVS(3401) = 0 IF (DO_JVS(3402)) & -! JVS(3402) = Jac_FULL(270,156) - JVS(3402) = -B(1222) +! JVS(3402) = Jac_FULL(276,281) + JVS(3402) = B(287) IF (DO_JVS(3403)) & -! JVS(3403) = Jac_FULL(270,162) - JVS(3403) = 0.459*B(920)+1.728*B(922) +! JVS(3403) = Jac_FULL(276,282) + JVS(3403) = -B(3)-B(10)-B(18) IF (DO_JVS(3404)) & -! JVS(3404) = Jac_FULL(270,163) - JVS(3404) = B(943) +! JVS(3404) = Jac_FULL(276,283) + JVS(3404) = 0 IF (DO_JVS(3405)) & -! JVS(3405) = Jac_FULL(270,164) - JVS(3405) = B(937) +! JVS(3405) = Jac_FULL(276,284) + JVS(3405) = 0 IF (DO_JVS(3406)) & -! JVS(3406) = Jac_FULL(270,169) - JVS(3406) = B(89)+B(1414) +! JVS(3406) = Jac_FULL(276,285) + JVS(3406) = 0 IF (DO_JVS(3407)) & -! JVS(3407) = Jac_FULL(270,172) - JVS(3407) = B(1445) +! JVS(3407) = Jac_FULL(276,286) + JVS(3407) = -B(25)+B(283)+0.75*B(285)-B(289)+B(361) IF (DO_JVS(3408)) & -! JVS(3408) = Jac_FULL(270,174) - JVS(3408) = B(1501) +! JVS(3408) = Jac_FULL(276,287) + JVS(3408) = 0 IF (DO_JVS(3409)) & -! JVS(3409) = Jac_FULL(270,175) - JVS(3409) = 0.995*B(1150)+B(1152) +! JVS(3409) = Jac_FULL(276,288) + JVS(3409) = B(359) IF (DO_JVS(3410)) & -! JVS(3410) = Jac_FULL(270,176) - JVS(3410) = B(1201)-B(1203) +! JVS(3410) = Jac_FULL(276,289) + JVS(3410) = 0 IF (DO_JVS(3411)) & -! JVS(3411) = Jac_FULL(270,177) - JVS(3411) = B(1538) +! JVS(3411) = Jac_FULL(276,290) + JVS(3411) = 0 IF (DO_JVS(3412)) & -! JVS(3412) = Jac_FULL(270,178) - JVS(3412) = B(1173)+B(1175) +! JVS(3412) = Jac_FULL(276,291) + JVS(3412) = 0 IF (DO_JVS(3413)) & -! JVS(3413) = Jac_FULL(270,179) - JVS(3413) = B(838) +! JVS(3413) = Jac_FULL(277,203) + JVS(3413) = -B(1311) IF (DO_JVS(3414)) & -! JVS(3414) = Jac_FULL(270,180) - JVS(3414) = B(845) +! JVS(3414) = Jac_FULL(277,235) + JVS(3414) = -B(1253) IF (DO_JVS(3415)) & -! JVS(3415) = Jac_FULL(270,182) - JVS(3415) = 0 +! JVS(3415) = Jac_FULL(277,260) + JVS(3415) = -B(1277) IF (DO_JVS(3416)) & -! JVS(3416) = Jac_FULL(270,183) - JVS(3416) = B(852) +! JVS(3416) = Jac_FULL(277,262) + JVS(3416) = -B(1239) IF (DO_JVS(3417)) & -! JVS(3417) = Jac_FULL(270,184) - JVS(3417) = 0 +! JVS(3417) = Jac_FULL(277,268) + JVS(3417) = -B(1327) IF (DO_JVS(3418)) & -! JVS(3418) = Jac_FULL(270,185) - JVS(3418) = B(1012) +! JVS(3418) = Jac_FULL(277,269) + JVS(3418) = 0 IF (DO_JVS(3419)) & -! JVS(3419) = Jac_FULL(270,187) - JVS(3419) = -B(1210)+B(1212)+B(1214) +! JVS(3419) = Jac_FULL(277,270) + JVS(3419) = -B(1319) IF (DO_JVS(3420)) & -! JVS(3420) = Jac_FULL(270,188) - JVS(3420) = B(74) +! JVS(3420) = Jac_FULL(277,273) + JVS(3420) = 0 IF (DO_JVS(3421)) & -! JVS(3421) = Jac_FULL(270,190) - JVS(3421) = B(888) +! JVS(3421) = Jac_FULL(277,274) + JVS(3421) = 0 IF (DO_JVS(3422)) & -! JVS(3422) = Jac_FULL(270,191) - JVS(3422) = B(657)-B(659) +! JVS(3422) = Jac_FULL(277,275) + JVS(3422) = 0 IF (DO_JVS(3423)) & -! JVS(3423) = Jac_FULL(270,194) - JVS(3423) = B(639)+B(1515) +! JVS(3423) = Jac_FULL(277,276) + JVS(3423) = 0 IF (DO_JVS(3424)) & -! JVS(3424) = Jac_FULL(270,195) - JVS(3424) = B(1524) +! JVS(3424) = Jac_FULL(277,277) + JVS(3424) = -B(1240)-B(1254)-B(1278)-B(1285)-B(1312)-B(1320)-B(1328) IF (DO_JVS(3425)) & -! JVS(3425) = Jac_FULL(270,196) - JVS(3425) = B(1502) +! JVS(3425) = Jac_FULL(277,278) + JVS(3425) = 0 IF (DO_JVS(3426)) & -! JVS(3426) = Jac_FULL(270,197) - JVS(3426) = 2*B(141)+B(194)+B(283)+B(293) +! JVS(3426) = Jac_FULL(277,279) + JVS(3426) = 0 IF (DO_JVS(3427)) & -! JVS(3427) = Jac_FULL(270,198) - JVS(3427) = B(1439) +! JVS(3427) = Jac_FULL(277,280) + JVS(3427) = 0 IF (DO_JVS(3428)) & -! JVS(3428) = Jac_FULL(270,199) - JVS(3428) = B(590)+2*B(591)+B(1481) +! JVS(3428) = Jac_FULL(277,281) + JVS(3428) = 0 IF (DO_JVS(3429)) & -! JVS(3429) = Jac_FULL(270,200) - JVS(3429) = B(1078) +! JVS(3429) = Jac_FULL(277,282) + JVS(3429) = -B(1286) IF (DO_JVS(3430)) & -! JVS(3430) = Jac_FULL(270,201) - JVS(3430) = B(1089) +! JVS(3430) = Jac_FULL(277,283) + JVS(3430) = 0 IF (DO_JVS(3431)) & -! JVS(3431) = Jac_FULL(270,203) - JVS(3431) = B(1093)-B(1095) +! JVS(3431) = Jac_FULL(277,284) + JVS(3431) = 0 IF (DO_JVS(3432)) & -! JVS(3432) = Jac_FULL(270,204) - JVS(3432) = B(123) +! JVS(3432) = Jac_FULL(277,285) + JVS(3432) = 0 IF (DO_JVS(3433)) & -! JVS(3433) = Jac_FULL(270,205) - JVS(3433) = B(637)+B(1124)+B(1500) +! JVS(3433) = Jac_FULL(277,286) + JVS(3433) = 0 IF (DO_JVS(3434)) & -! JVS(3434) = Jac_FULL(270,206) - JVS(3434) = 0.5*B(1224)+B(1226) +! JVS(3434) = Jac_FULL(277,287) + JVS(3434) = 0 IF (DO_JVS(3435)) & -! JVS(3435) = Jac_FULL(270,209) - JVS(3435) = B(1120)+B(1550)+B(1551) +! JVS(3435) = Jac_FULL(277,288) + JVS(3435) = 0 IF (DO_JVS(3436)) & -! JVS(3436) = Jac_FULL(270,210) - JVS(3436) = B(911)+B(1537) +! JVS(3436) = Jac_FULL(277,289) + JVS(3436) = B(1288) IF (DO_JVS(3437)) & -! JVS(3437) = Jac_FULL(270,211) - JVS(3437) = B(707)+B(723)+0.5*B(728) +! JVS(3437) = Jac_FULL(277,290) + JVS(3437) = 0 IF (DO_JVS(3438)) & -! JVS(3438) = Jac_FULL(270,212) - JVS(3438) = 2*B(709)+0.5*B(717)+B(721)+2*B(725)+0.5*B(729)+B(730) +! JVS(3438) = Jac_FULL(277,291) + JVS(3438) = 0 IF (DO_JVS(3439)) & -! JVS(3439) = Jac_FULL(270,213) - JVS(3439) = B(109) +! JVS(3439) = Jac_FULL(278,43) + JVS(3439) = B(454) IF (DO_JVS(3440)) & -! JVS(3440) = Jac_FULL(270,216) - JVS(3440) = B(907)+B(1534) +! JVS(3440) = Jac_FULL(278,46) + JVS(3440) = B(586) IF (DO_JVS(3441)) & -! JVS(3441) = Jac_FULL(270,217) - JVS(3441) = 0.058*B(1004)+1.065*B(1008) +! JVS(3441) = Jac_FULL(278,69) + JVS(3441) = B(576) IF (DO_JVS(3442)) & -! JVS(3442) = Jac_FULL(270,220) - JVS(3442) = 0 +! JVS(3442) = Jac_FULL(278,81) + JVS(3442) = B(462) IF (DO_JVS(3443)) & -! JVS(3443) = Jac_FULL(270,221) - JVS(3443) = 0.78*B(695)+B(703) +! JVS(3443) = Jac_FULL(278,82) + JVS(3443) = B(458) IF (DO_JVS(3444)) & -! JVS(3444) = Jac_FULL(270,223) - JVS(3444) = -B(594)+B(629) +! JVS(3444) = Jac_FULL(278,83) + JVS(3444) = B(460) IF (DO_JVS(3445)) & -! JVS(3445) = Jac_FULL(270,224) - JVS(3445) = B(872) +! JVS(3445) = Jac_FULL(278,84) + JVS(3445) = B(456) IF (DO_JVS(3446)) & -! JVS(3446) = Jac_FULL(270,225) - JVS(3446) = B(878) +! JVS(3446) = Jac_FULL(278,100) + JVS(3446) = B(332) IF (DO_JVS(3447)) & -! JVS(3447) = Jac_FULL(270,229) - JVS(3447) = B(949) +! JVS(3447) = Jac_FULL(278,102) + JVS(3447) = B(76) IF (DO_JVS(3448)) & -! JVS(3448) = Jac_FULL(270,230) - JVS(3448) = B(643)-B(645) +! JVS(3448) = Jac_FULL(278,137) + JVS(3448) = B(59) IF (DO_JVS(3449)) & -! JVS(3449) = Jac_FULL(270,231) - JVS(3449) = B(483)+B(1457) +! JVS(3449) = Jac_FULL(278,149) + JVS(3449) = B(448) IF (DO_JVS(3450)) & -! JVS(3450) = Jac_FULL(270,233) - JVS(3450) = B(119) +! JVS(3450) = Jac_FULL(278,161) + JVS(3450) = B(104) IF (DO_JVS(3451)) & -! JVS(3451) = Jac_FULL(270,234) - JVS(3451) = 0.82*B(671)+B(679) +! JVS(3451) = Jac_FULL(278,173) + JVS(3451) = -B(1214) IF (DO_JVS(3452)) & -! JVS(3452) = Jac_FULL(270,235) - JVS(3452) = B(113) +! JVS(3452) = Jac_FULL(278,176) + JVS(3452) = -B(1227) IF (DO_JVS(3453)) & -! JVS(3453) = Jac_FULL(270,236) - JVS(3453) = B(1016)+B(1541) +! JVS(3453) = Jac_FULL(278,177) + JVS(3453) = 0.02*B(376) IF (DO_JVS(3454)) & -! JVS(3454) = Jac_FULL(270,237) - JVS(3454) = 0.31*B(1042)+0.7*B(1523) +! JVS(3454) = Jac_FULL(278,190) + JVS(3454) = B(47) IF (DO_JVS(3455)) & -! JVS(3455) = Jac_FULL(270,238) - JVS(3455) = 0.022*B(1122)+0.3*B(1548)+B(1549) +! JVS(3455) = Jac_FULL(278,193) + JVS(3455) = B(71) IF (DO_JVS(3456)) & -! JVS(3456) = Jac_FULL(270,239) - JVS(3456) = 0.565*B(1024)+1.555*B(1542) +! JVS(3456) = Jac_FULL(278,195) + JVS(3456) = -B(614)-B(616) IF (DO_JVS(3457)) & -! JVS(3457) = Jac_FULL(270,240) - JVS(3457) = 0.527*B(955)+1.86*B(959)+0.563*B(960)+0.611*B(965)+B(967)+2*B(971)+2*B(975) +! JVS(3457) = Jac_FULL(278,196) + JVS(3457) = B(61) IF (DO_JVS(3458)) & -! JVS(3458) = Jac_FULL(270,241) - JVS(3458) = 0.563*B(961)+B(973)+B(979) +! JVS(3458) = Jac_FULL(278,202) + JVS(3458) = B(142) IF (DO_JVS(3459)) & -! JVS(3459) = Jac_FULL(270,242) - JVS(3459) = B(793)+B(797) +! JVS(3459) = Jac_FULL(278,203) + JVS(3459) = 0 IF (DO_JVS(3460)) & -! JVS(3460) = Jac_FULL(270,243) - JVS(3460) = B(801)+B(805) +! JVS(3460) = Jac_FULL(278,210) + JVS(3460) = 0 IF (DO_JVS(3461)) & -! JVS(3461) = Jac_FULL(270,244) - JVS(3461) = 0 +! JVS(3461) = Jac_FULL(278,211) + JVS(3461) = B(87)+B(512) IF (DO_JVS(3462)) & -! JVS(3462) = Jac_FULL(270,245) - JVS(3462) = 0.5*B(1097)+2*B(1099)+2*B(1103)+0.7*B(1105) +! JVS(3462) = Jac_FULL(278,212) + JVS(3462) = B(40) IF (DO_JVS(3463)) & -! JVS(3463) = Jac_FULL(270,247) - JVS(3463) = 0 +! JVS(3463) = Jac_FULL(278,219) + JVS(3463) = B(144) IF (DO_JVS(3464)) & -! JVS(3464) = Jac_FULL(270,248) - JVS(3464) = B(133) +! JVS(3464) = Jac_FULL(278,221) + JVS(3464) = B(155) IF (DO_JVS(3465)) & -! JVS(3465) = Jac_FULL(270,249) - JVS(3465) = 0.93*B(135) +! JVS(3465) = Jac_FULL(278,222) + JVS(3465) = 0 IF (DO_JVS(3466)) & -! JVS(3466) = Jac_FULL(270,250) - JVS(3466) = -B(151)+B(154) +! JVS(3466) = Jac_FULL(278,224) + JVS(3466) = 0 IF (DO_JVS(3467)) & -! JVS(3467) = Jac_FULL(270,251) - JVS(3467) = 2*B(131)+B(186)+B(281)+B(291) +! JVS(3467) = Jac_FULL(278,226) + JVS(3467) = B(173) IF (DO_JVS(3468)) & -! JVS(3468) = Jac_FULL(270,252) - JVS(3468) = B(127) +! JVS(3468) = Jac_FULL(278,231) + JVS(3468) = 0 IF (DO_JVS(3469)) & -! JVS(3469) = Jac_FULL(270,253) - JVS(3469) = B(137) +! JVS(3469) = Jac_FULL(278,234) + JVS(3469) = -B(598)-2*B(600) IF (DO_JVS(3470)) & -! JVS(3470) = Jac_FULL(270,254) +! JVS(3470) = Jac_FULL(278,235) JVS(3470) = 0 IF (DO_JVS(3471)) & -! JVS(3471) = Jac_FULL(270,255) +! JVS(3471) = Jac_FULL(278,236) JVS(3471) = 0 IF (DO_JVS(3472)) & -! JVS(3472) = Jac_FULL(270,257) - JVS(3472) = -B(102)+B(105)+B(282)+B(284)+B(292)+B(294)+B(722)+B(968) +! JVS(3472) = Jac_FULL(278,237) + JVS(3472) = 0 IF (DO_JVS(3473)) & -! JVS(3473) = Jac_FULL(270,258) +! JVS(3473) = Jac_FULL(278,238) JVS(3473) = 0 IF (DO_JVS(3474)) & -! JVS(3474) = Jac_FULL(270,259) - JVS(3474) = B(1459) +! JVS(3474) = Jac_FULL(278,239) + JVS(3474) = 0 IF (DO_JVS(3475)) & -! JVS(3475) = Jac_FULL(270,260) - JVS(3475) = B(1408) +! JVS(3475) = Jac_FULL(278,240) + JVS(3475) = 0 IF (DO_JVS(3476)) & -! JVS(3476) = Jac_FULL(270,261) +! JVS(3476) = Jac_FULL(278,241) JVS(3476) = 0 IF (DO_JVS(3477)) & -! JVS(3477) = Jac_FULL(270,262) +! JVS(3477) = Jac_FULL(278,242) JVS(3477) = 0 IF (DO_JVS(3478)) & -! JVS(3478) = Jac_FULL(270,263) - JVS(3478) = B(48)+B(187)+B(195)-B(308)+0.5*B(718)+0.611*B(966)+0.7*B(1106)+B(1254) +! JVS(3478) = Jac_FULL(278,243) + JVS(3478) = 0 IF (DO_JVS(3479)) & -! JVS(3479) = Jac_FULL(270,264) +! JVS(3479) = Jac_FULL(278,244) JVS(3479) = 0 IF (DO_JVS(3480)) & -! JVS(3480) = Jac_FULL(270,265) - JVS(3480) = -B(588) +! JVS(3480) = Jac_FULL(278,245) + JVS(3480) = 0 IF (DO_JVS(3481)) & -! JVS(3481) = Jac_FULL(270,266) - JVS(3481) = B(596) +! JVS(3481) = Jac_FULL(278,246) + JVS(3481) = 0 IF (DO_JVS(3482)) & -! JVS(3482) = Jac_FULL(270,268) +! JVS(3482) = Jac_FULL(278,247) JVS(3482) = 0 IF (DO_JVS(3483)) & -! JVS(3483) = Jac_FULL(270,269) - JVS(3483) = -B(68)+B(75)+B(80)+B(85)+B(484)+B(638)+B(640)+B(746)+B(748)+B(750)+B(752)+B(902)+B(906)+B(908)+B(912)& - &+B(995)+B(1017)+0.565*B(1025)+0.31*B(1043)+B(1121)+0.022*B(1123)+B(1160)+B(1209)+0.5*B(1225) +! JVS(3483) = Jac_FULL(278,248) + JVS(3483) = 0 IF (DO_JVS(3484)) & -! JVS(3484) = Jac_FULL(270,270) - JVS(3484) = -B(31)-B(69)-B(76)-B(87)-B(103)-B(152)-B(309)-B(353)-B(355)-B(399)-B(405)-B(424)-B(523)-B(589)-B(595)& - &-B(646)-B(660)-B(1057)-B(1063)-B(1096)-B(1204)-B(1211)-B(1223)-B(1257)-B(1403) +! JVS(3484) = Jac_FULL(278,249) + JVS(3484) = 0 IF (DO_JVS(3485)) & -! JVS(3485) = Jac_FULL(270,271) +! JVS(3485) = Jac_FULL(278,250) JVS(3485) = 0 IF (DO_JVS(3486)) & -! JVS(3486) = Jac_FULL(270,272) +! JVS(3486) = Jac_FULL(278,251) JVS(3486) = 0 IF (DO_JVS(3487)) & -! JVS(3487) = Jac_FULL(270,273) - JVS(3487) = B(521)-B(524) +! JVS(3487) = Jac_FULL(278,252) + JVS(3487) = 0 IF (DO_JVS(3488)) & -! JVS(3488) = Jac_FULL(270,274) - JVS(3488) = B(329)-B(356) +! JVS(3488) = Jac_FULL(278,253) + JVS(3488) = 0 IF (DO_JVS(3489)) & -! JVS(3489) = Jac_FULL(270,275) +! JVS(3489) = Jac_FULL(278,254) JVS(3489) = 0 IF (DO_JVS(3490)) & -! JVS(3490) = Jac_FULL(270,276) +! JVS(3490) = Jac_FULL(278,255) JVS(3490) = 0 IF (DO_JVS(3491)) & -! JVS(3491) = Jac_FULL(270,277) - JVS(3491) = B(25)-B(32) +! JVS(3491) = Jac_FULL(278,256) + JVS(3491) = 0 IF (DO_JVS(3492)) & -! JVS(3492) = Jac_FULL(270,278) +! JVS(3492) = Jac_FULL(278,257) JVS(3492) = 0 IF (DO_JVS(3493)) & -! JVS(3493) = Jac_FULL(270,279) +! JVS(3493) = Jac_FULL(278,258) JVS(3493) = 0 IF (DO_JVS(3494)) & -! JVS(3494) = Jac_FULL(270,280) - JVS(3494) = B(26)+B(41)+B(49)+2*B(83)+B(106)+B(110)+B(114)+B(120)+B(124)+B(128)+2*B(132)+B(134)+0.93*B(136)+B(138)+2& - &*B(142)+B(155)+B(330)+B(403)+B(522)+B(610)+B(630)+B(644)+B(658)+0.82*B(672)+0.78*B(696)+B(708)+2*B(710)& - &+B(794)+B(798)+B(802)+B(806)+B(839)+B(846)+B(853)+B(873)+B(879)+B(889)+B(892)+B(896)+1.728*B(923)+B(930)& - &+B(938)+B(944)+B(950)+2*B(976)+B(980)+1.065*B(1009)+B(1013)+B(1021)+1.11*B(1027)+B(1053)+B(1059)+B(1079)& - &+B(1090)+B(1094)+2*B(1100)+0.995*B(1151)+B(1174)+B(1202)+B(1213) +! JVS(3494) = Jac_FULL(278,259) + JVS(3494) = B(146) IF (DO_JVS(3495)) & -! JVS(3495) = Jac_FULL(270,281) - JVS(3495) = B(42)-B(77)+B(81)+0.459*B(921)+0.527*B(956)+0.058*B(1005)+0.09*B(1029)+0.5*B(1098) +! JVS(3495) = Jac_FULL(278,260) + JVS(3495) = B(1267)+B(1269)+B(1271)+B(1273) IF (DO_JVS(3496)) & -! JVS(3496) = Jac_FULL(270,282) - JVS(3496) = B(341)-B(354) +! JVS(3496) = Jac_FULL(278,261) + JVS(3496) = 0 IF (DO_JVS(3497)) & -! JVS(3497) = Jac_FULL(270,283) - JVS(3497) = 0 +! JVS(3497) = Jac_FULL(278,262) + JVS(3497) = -B(1231) IF (DO_JVS(3498)) & -! JVS(3498) = Jac_FULL(270,284) - JVS(3498) = -B(400)+B(401)+B(404)-B(406) +! JVS(3498) = Jac_FULL(278,263) + JVS(3498) = B(63) IF (DO_JVS(3499)) & -! JVS(3499) = Jac_FULL(270,285) - JVS(3499) = 0 +! JVS(3499) = Jac_FULL(278,264) + JVS(3499) = B(95) IF (DO_JVS(3500)) & -! JVS(3500) = Jac_FULL(270,286) - JVS(3500) = 0 +! JVS(3500) = Jac_FULL(278,265) + JVS(3500) = B(67) IF (DO_JVS(3501)) & -! JVS(3501) = Jac_FULL(270,287) - JVS(3501) = B(82)+2*B(84)+B(86)-B(88)+2*B(307)+B(342)+B(402)+B(680)+B(704)+B(724)+2*B(726)+2*B(972)+B(974)+2*B(1104)& - &+B(1125)+B(1153)+B(1176)+B(1215)+B(1227)+B(1255)+B(1412) +! JVS(3501) = Jac_FULL(278,266) + JVS(3501) = 0 IF (DO_JVS(3502)) & -! JVS(3502) = Jac_FULL(271,68) - JVS(3502) = B(551) +! JVS(3502) = Jac_FULL(278,267) + JVS(3502) = 0 IF (DO_JVS(3503)) & -! JVS(3503) = Jac_FULL(271,73) - JVS(3503) = B(549) +! JVS(3503) = Jac_FULL(278,268) + JVS(3503) = B(578) IF (DO_JVS(3504)) & -! JVS(3504) = Jac_FULL(271,100) - JVS(3504) = 2*B(547) +! JVS(3504) = Jac_FULL(278,269) + JVS(3504) = 0 IF (DO_JVS(3505)) & -! JVS(3505) = Jac_FULL(271,112) - JVS(3505) = B(579) +! JVS(3505) = Jac_FULL(278,270) + JVS(3505) = -B(1307) IF (DO_JVS(3506)) & -! JVS(3506) = Jac_FULL(271,121) - JVS(3506) = B(571)+B(573) +! JVS(3506) = Jac_FULL(278,271) + JVS(3506) = B(442)+B(1257)+B(1259)+B(1261)+B(1263) IF (DO_JVS(3507)) & -! JVS(3507) = Jac_FULL(271,129) - JVS(3507) = B(567) +! JVS(3507) = Jac_FULL(278,272) + JVS(3507) = -B(334) IF (DO_JVS(3508)) & -! JVS(3508) = Jac_FULL(271,134) - JVS(3508) = B(557) +! JVS(3508) = Jac_FULL(278,273) + JVS(3508) = 0 IF (DO_JVS(3509)) & -! JVS(3509) = Jac_FULL(271,135) - JVS(3509) = -B(11) +! JVS(3509) = Jac_FULL(278,274) + JVS(3509) = 0 IF (DO_JVS(3510)) & -! JVS(3510) = Jac_FULL(271,144) - JVS(3510) = -B(4) +! JVS(3510) = Jac_FULL(278,275) + JVS(3510) = B(440)+B(1258)+B(1270) IF (DO_JVS(3511)) & -! JVS(3511) = Jac_FULL(271,157) - JVS(3511) = B(559) +! JVS(3511) = Jac_FULL(278,276) + JVS(3511) = 0 IF (DO_JVS(3512)) & -! JVS(3512) = Jac_FULL(271,169) - JVS(3512) = -B(1263) +! JVS(3512) = Jac_FULL(278,277) + JVS(3512) = 0 IF (DO_JVS(3513)) & -! JVS(3513) = Jac_FULL(271,172) - JVS(3513) = -B(1276) +! JVS(3513) = Jac_FULL(278,278) + JVS(3513) = -B(335)-B(599)-2*B(601)-B(615)-B(617)-B(1215)-B(1228)-B(1232)-B(1308) IF (DO_JVS(3514)) & -! JVS(3514) = Jac_FULL(271,186) - JVS(3514) = B(503) +! JVS(3514) = Jac_FULL(278,279) + JVS(3514) = 0 IF (DO_JVS(3515)) & -! JVS(3515) = Jac_FULL(271,207) - JVS(3515) = B(553) +! JVS(3515) = Jac_FULL(278,280) + JVS(3515) = B(1262)+B(1272) IF (DO_JVS(3516)) & -! JVS(3516) = Jac_FULL(271,208) - JVS(3516) = B(511) +! JVS(3516) = Jac_FULL(278,281) + JVS(3516) = 0 IF (DO_JVS(3517)) & -! JVS(3517) = Jac_FULL(271,213) +! JVS(3517) = Jac_FULL(278,282) JVS(3517) = 0 IF (DO_JVS(3518)) & -! JVS(3518) = Jac_FULL(271,214) - JVS(3518) = B(565) +! JVS(3518) = Jac_FULL(278,283) + JVS(3518) = 0 IF (DO_JVS(3519)) & -! JVS(3519) = Jac_FULL(271,215) - JVS(3519) = B(569) +! JVS(3519) = Jac_FULL(278,284) + JVS(3519) = B(38)+0.02*B(377)+B(1209) IF (DO_JVS(3520)) & -! JVS(3520) = Jac_FULL(271,219) - JVS(3520) = B(575) +! JVS(3520) = Jac_FULL(278,285) + JVS(3520) = 0 IF (DO_JVS(3521)) & -! JVS(3521) = Jac_FULL(271,220) - JVS(3521) = B(577) +! JVS(3521) = Jac_FULL(278,286) + JVS(3521) = B(36)+B(39)+B(41)+B(48)+B(60)+B(62)+B(64)+B(68)+B(72)+B(77)+B(88)+B(96)+B(105)+B(143)+B(145)+B(147)+B(156)& + &+B(174)+B(296)+B(333)+B(350)+B(441)+B(443)+B(449)+B(455)+B(457)+B(459)+B(461)+B(463)+B(577)+B(579)+B(587) IF (DO_JVS(3522)) & -! JVS(3522) = Jac_FULL(271,221) - JVS(3522) = 0 +! JVS(3522) = Jac_FULL(278,287) + JVS(3522) = B(1264)+B(1274) IF (DO_JVS(3523)) & -! JVS(3523) = Jac_FULL(271,230) +! JVS(3523) = Jac_FULL(278,288) JVS(3523) = 0 IF (DO_JVS(3524)) & -! JVS(3524) = Jac_FULL(271,231) - JVS(3524) = -B(1296) +! JVS(3524) = Jac_FULL(278,289) + JVS(3524) = B(297)+B(1260)+B(1268) IF (DO_JVS(3525)) & -! JVS(3525) = Jac_FULL(271,232) - JVS(3525) = 0 +! JVS(3525) = Jac_FULL(278,290) + JVS(3525) = B(513) IF (DO_JVS(3526)) & -! JVS(3526) = Jac_FULL(271,233) +! JVS(3526) = Jac_FULL(278,291) JVS(3526) = 0 IF (DO_JVS(3527)) & -! JVS(3527) = Jac_FULL(271,234) - JVS(3527) = 0 +! JVS(3527) = Jac_FULL(279,60) + JVS(3527) = 2*B(546)+B(1439) IF (DO_JVS(3528)) & -! JVS(3528) = Jac_FULL(271,235) - JVS(3528) = 0 +! JVS(3528) = Jac_FULL(279,61) + JVS(3528) = 1.22*B(342) IF (DO_JVS(3529)) & -! JVS(3529) = Jac_FULL(271,236) - JVS(3529) = 0 +! JVS(3529) = Jac_FULL(279,65) + JVS(3529) = B(378)-B(380) IF (DO_JVS(3530)) & -! JVS(3530) = Jac_FULL(271,237) - JVS(3530) = 0 +! JVS(3530) = Jac_FULL(279,92) + JVS(3530) = -B(566) IF (DO_JVS(3531)) & -! JVS(3531) = Jac_FULL(271,238) - JVS(3531) = 0 +! JVS(3531) = Jac_FULL(279,121) + JVS(3531) = -B(842) IF (DO_JVS(3532)) & -! JVS(3532) = Jac_FULL(271,239) - JVS(3532) = 0 +! JVS(3532) = Jac_FULL(279,123) + JVS(3532) = -B(846) IF (DO_JVS(3533)) & -! JVS(3533) = Jac_FULL(271,240) - JVS(3533) = 0 +! JVS(3533) = Jac_FULL(279,144) + JVS(3533) = -B(1003) IF (DO_JVS(3534)) & -! JVS(3534) = Jac_FULL(271,241) - JVS(3534) = 0 +! JVS(3534) = Jac_FULL(279,145) + JVS(3534) = -B(1009) IF (DO_JVS(3535)) & -! JVS(3535) = Jac_FULL(271,242) - JVS(3535) = 0 +! JVS(3535) = Jac_FULL(279,146) + JVS(3535) = -B(977) IF (DO_JVS(3536)) & -! JVS(3536) = Jac_FULL(271,243) - JVS(3536) = 0 +! JVS(3536) = Jac_FULL(279,150) + JVS(3536) = -B(971) IF (DO_JVS(3537)) & -! JVS(3537) = Jac_FULL(271,244) - JVS(3537) = 0 +! JVS(3537) = Jac_FULL(279,152) + JVS(3537) = -B(880)-B(882) IF (DO_JVS(3538)) & -! JVS(3538) = Jac_FULL(271,245) - JVS(3538) = 0 +! JVS(3538) = Jac_FULL(279,166) + JVS(3538) = -B(888)-B(890) IF (DO_JVS(3539)) & -! JVS(3539) = Jac_FULL(271,246) - JVS(3539) = 0 +! JVS(3539) = Jac_FULL(279,167) + JVS(3539) = -B(873)-B(875) IF (DO_JVS(3540)) & -! JVS(3540) = Jac_FULL(271,247) - JVS(3540) = 0 +! JVS(3540) = Jac_FULL(279,168) + JVS(3540) = -B(894)-B(896) IF (DO_JVS(3541)) & -! JVS(3541) = Jac_FULL(271,248) - JVS(3541) = 0 +! JVS(3541) = Jac_FULL(279,179) + JVS(3541) = -B(1101) IF (DO_JVS(3542)) & -! JVS(3542) = Jac_FULL(271,249) - JVS(3542) = 0 +! JVS(3542) = Jac_FULL(279,180) + JVS(3542) = -B(1152) IF (DO_JVS(3543)) & -! JVS(3543) = Jac_FULL(271,250) - JVS(3543) = 0 +! JVS(3543) = Jac_FULL(279,182) + JVS(3543) = -B(789)-B(791) IF (DO_JVS(3544)) & -! JVS(3544) = Jac_FULL(271,251) - JVS(3544) = 0 +! JVS(3544) = Jac_FULL(279,183) + JVS(3544) = -B(796)-B(798) IF (DO_JVS(3545)) & -! JVS(3545) = Jac_FULL(271,252) - JVS(3545) = 0 +! JVS(3545) = Jac_FULL(279,184) + JVS(3545) = -B(1124) IF (DO_JVS(3546)) & -! JVS(3546) = Jac_FULL(271,253) +! JVS(3546) = Jac_FULL(279,186) JVS(3546) = 0 IF (DO_JVS(3547)) & -! JVS(3547) = Jac_FULL(271,254) - JVS(3547) = B(581) +! JVS(3547) = Jac_FULL(279,187) + JVS(3547) = -B(803)-B(805) IF (DO_JVS(3548)) & -! JVS(3548) = Jac_FULL(271,255) +! JVS(3548) = Jac_FULL(279,188) JVS(3548) = 0 IF (DO_JVS(3549)) & -! JVS(3549) = Jac_FULL(271,256) - JVS(3549) = -B(1316) +! JVS(3549) = Jac_FULL(279,189) + JVS(3549) = -B(963)-B(965) IF (DO_JVS(3550)) & -! JVS(3550) = Jac_FULL(271,257) - JVS(3550) = 0 +! JVS(3550) = Jac_FULL(279,191) + JVS(3550) = -B(1163) IF (DO_JVS(3551)) & -! JVS(3551) = Jac_FULL(271,258) - JVS(3551) = 0 +! JVS(3551) = Jac_FULL(279,193) + JVS(3551) = B(1368) IF (DO_JVS(3552)) & -! JVS(3552) = Jac_FULL(271,259) - JVS(3552) = -B(1280) +! JVS(3552) = Jac_FULL(279,194) + JVS(3552) = -B(837)-B(839) IF (DO_JVS(3553)) & -! JVS(3553) = Jac_FULL(271,260) - JVS(3553) = 0 +! JVS(3553) = Jac_FULL(279,195) + JVS(3553) = -B(608) IF (DO_JVS(3554)) & -! JVS(3554) = Jac_FULL(271,261) - JVS(3554) = 0 +! JVS(3554) = Jac_FULL(279,201) + JVS(3554) = -B(138) IF (DO_JVS(3555)) & -! JVS(3555) = Jac_FULL(271,262) - JVS(3555) = B(505) +! JVS(3555) = Jac_FULL(279,203) + JVS(3555) = 0 IF (DO_JVS(3556)) & -! JVS(3556) = Jac_FULL(271,263) - JVS(3556) = 0 +! JVS(3556) = Jac_FULL(279,204) + JVS(3556) = -B(1029)-B(1031) IF (DO_JVS(3557)) & -! JVS(3557) = Jac_FULL(271,266) - JVS(3557) = 0 +! JVS(3557) = Jac_FULL(279,205) + JVS(3557) = -B(1040)-B(1042) IF (DO_JVS(3558)) & -! JVS(3558) = Jac_FULL(271,267) - JVS(3558) = -B(1304)+B(1312) +! JVS(3558) = Jac_FULL(279,207) + JVS(3558) = -B(1044) IF (DO_JVS(3559)) & -! JVS(3559) = Jac_FULL(271,268) - JVS(3559) = -0.91*B(429) +! JVS(3559) = Jac_FULL(279,209) + JVS(3559) = -B(120) IF (DO_JVS(3560)) & -! JVS(3560) = Jac_FULL(271,269) - JVS(3560) = B(473)-B(479) +! JVS(3560) = Jac_FULL(279,210) + JVS(3560) = 0 IF (DO_JVS(3561)) & -! JVS(3561) = Jac_FULL(271,270) +! JVS(3561) = Jac_FULL(279,214) JVS(3561) = 0 IF (DO_JVS(3562)) & -! JVS(3562) = Jac_FULL(271,271) - JVS(3562) = -B(5)-B(12)-0.91*B(430)-B(480)-B(1264)-B(1277)-B(1281)-B(1297)-B(1305)-B(1317) +! JVS(3562) = Jac_FULL(279,215) + JVS(3562) = -B(658) IF (DO_JVS(3563)) & -! JVS(3563) = Jac_FULL(271,272) - JVS(3563) = 0 +! JVS(3563) = Jac_FULL(279,216) + JVS(3563) = -B(660) IF (DO_JVS(3564)) & -! JVS(3564) = Jac_FULL(271,273) - JVS(3564) = B(474) +! JVS(3564) = Jac_FULL(279,217) + JVS(3564) = -B(106)-B(108) IF (DO_JVS(3565)) & -! JVS(3565) = Jac_FULL(271,274) +! JVS(3565) = Jac_FULL(279,220) JVS(3565) = 0 IF (DO_JVS(3566)) & -! JVS(3566) = Jac_FULL(271,275) - JVS(3566) = 0 +! JVS(3566) = Jac_FULL(279,222) + JVS(3566) = -B(959)-B(961) IF (DO_JVS(3567)) & -! JVS(3567) = Jac_FULL(271,276) +! JVS(3567) = Jac_FULL(279,224) JVS(3567) = 0 IF (DO_JVS(3568)) & -! JVS(3568) = Jac_FULL(271,277) - JVS(3568) = 0 +! JVS(3568) = Jac_FULL(279,225) + JVS(3568) = -B(646) IF (DO_JVS(3569)) & -! JVS(3569) = Jac_FULL(271,278) - JVS(3569) = 0 +! JVS(3569) = Jac_FULL(279,227) + JVS(3569) = -B(582) IF (DO_JVS(3570)) & -! JVS(3570) = Jac_FULL(271,279) - JVS(3570) = 0 +! JVS(3570) = Jac_FULL(279,228) + JVS(3570) = -B(823)-B(825) IF (DO_JVS(3571)) & -! JVS(3571) = Jac_FULL(271,280) - JVS(3571) = 0 +! JVS(3571) = Jac_FULL(279,229) + JVS(3571) = -B(829)-B(831) IF (DO_JVS(3572)) & -! JVS(3572) = Jac_FULL(271,281) - JVS(3572) = B(513) +! JVS(3572) = Jac_FULL(279,232) + JVS(3572) = -B(900)-B(902) IF (DO_JVS(3573)) & -! JVS(3573) = Jac_FULL(271,282) - JVS(3573) = 0 +! JVS(3573) = Jac_FULL(279,234) + JVS(3573) = -B(594) IF (DO_JVS(3574)) & -! JVS(3574) = Jac_FULL(271,283) +! JVS(3574) = Jac_FULL(279,235) JVS(3574) = 0 IF (DO_JVS(3575)) & -! JVS(3575) = Jac_FULL(271,284) - JVS(3575) = 0 +! JVS(3575) = Jac_FULL(279,237) + JVS(3575) = -B(116)-B(118) IF (DO_JVS(3576)) & -! JVS(3576) = Jac_FULL(271,285) - JVS(3576) = B(504)+B(506)+B(509)+B(512)+B(514)+2*B(548)+B(550)+B(552)+B(554)+B(558)+B(560)+B(566)+B(568)+B(570)+B(572)& - &+B(574)+B(576)+B(578)+B(580)+B(582) +! JVS(3576) = Jac_FULL(279,238) + JVS(3576) = -B(622) IF (DO_JVS(3577)) & -! JVS(3577) = Jac_FULL(271,286) - JVS(3577) = B(1313) +! JVS(3577) = Jac_FULL(279,239) + JVS(3577) = -B(110) IF (DO_JVS(3578)) & -! JVS(3578) = Jac_FULL(271,287) +! JVS(3578) = Jac_FULL(279,240) JVS(3578) = 0 IF (DO_JVS(3579)) & -! JVS(3579) = Jac_FULL(272,121) - JVS(3579) = B(351) +! JVS(3579) = Jac_FULL(279,242) + JVS(3579) = 0 IF (DO_JVS(3580)) & -! JVS(3580) = Jac_FULL(272,157) - JVS(3580) = B(349) +! JVS(3580) = Jac_FULL(279,243) + JVS(3580) = 0 IF (DO_JVS(3581)) & -! JVS(3581) = Jac_FULL(272,219) - JVS(3581) = B(347) +! JVS(3581) = Jac_FULL(279,244) + JVS(3581) = -B(750)-B(752)-B(754)-B(756) IF (DO_JVS(3582)) & -! JVS(3582) = Jac_FULL(272,231) - JVS(3582) = -B(1302) +! JVS(3582) = Jac_FULL(279,245) + JVS(3582) = -B(742)-B(744)-B(746)-B(748) IF (DO_JVS(3583)) & -! JVS(3583) = Jac_FULL(272,234) - JVS(3583) = 0 +! JVS(3583) = Jac_FULL(279,246) + JVS(3583) = -B(930)-B(932) IF (DO_JVS(3584)) & -! JVS(3584) = Jac_FULL(272,249) - JVS(3584) = 0 +! JVS(3584) = Jac_FULL(279,247) + JVS(3584) = -B(926)-B(928) IF (DO_JVS(3585)) & -! JVS(3585) = Jac_FULL(272,251) +! JVS(3585) = Jac_FULL(279,248) JVS(3585) = 0 IF (DO_JVS(3586)) & -! JVS(3586) = Jac_FULL(272,252) - JVS(3586) = 0 +! JVS(3586) = Jac_FULL(279,249) + JVS(3586) = -B(1050) IF (DO_JVS(3587)) & -! JVS(3587) = Jac_FULL(272,253) +! JVS(3587) = Jac_FULL(279,251) JVS(3587) = 0 IF (DO_JVS(3588)) & -! JVS(3588) = Jac_FULL(272,254) - JVS(3588) = B(583) +! JVS(3588) = Jac_FULL(279,252) + JVS(3588) = -B(130) IF (DO_JVS(3589)) & -! JVS(3589) = Jac_FULL(272,255) +! JVS(3589) = Jac_FULL(279,253) JVS(3589) = 0 IF (DO_JVS(3590)) & -! JVS(3590) = Jac_FULL(272,256) - JVS(3590) = -B(1314)+B(1326) +! JVS(3590) = Jac_FULL(279,254) + JVS(3590) = -B(132) IF (DO_JVS(3591)) & -! JVS(3591) = Jac_FULL(272,257) - JVS(3591) = 0 +! JVS(3591) = Jac_FULL(279,255) + JVS(3591) = -B(151) IF (DO_JVS(3592)) & -! JVS(3592) = Jac_FULL(272,259) - JVS(3592) = -B(1282) +! JVS(3592) = Jac_FULL(279,256) + JVS(3592) = -B(124)-B(126) IF (DO_JVS(3593)) & -! JVS(3593) = Jac_FULL(272,261) - JVS(3593) = B(345) +! JVS(3593) = Jac_FULL(279,257) + JVS(3593) = -B(128) IF (DO_JVS(3594)) & -! JVS(3594) = Jac_FULL(272,262) - JVS(3594) = B(343) +! JVS(3594) = Jac_FULL(279,258) + JVS(3594) = -B(134)-B(136) IF (DO_JVS(3595)) & -! JVS(3595) = Jac_FULL(272,263) +! JVS(3595) = Jac_FULL(279,259) JVS(3595) = 0 IF (DO_JVS(3596)) & -! JVS(3596) = Jac_FULL(272,267) - JVS(3596) = -B(1306) +! JVS(3596) = Jac_FULL(279,261) + JVS(3596) = -B(102) IF (DO_JVS(3597)) & -! JVS(3597) = Jac_FULL(272,268) - JVS(3597) = -0.8*B(431) +! JVS(3597) = Jac_FULL(279,264) + JVS(3597) = 0 IF (DO_JVS(3598)) & -! JVS(3598) = Jac_FULL(272,269) - JVS(3598) = -B(325) +! JVS(3598) = Jac_FULL(279,265) + JVS(3598) = 0 IF (DO_JVS(3599)) & -! JVS(3599) = Jac_FULL(272,270) - JVS(3599) = 0 +! JVS(3599) = Jac_FULL(279,266) + JVS(3599) = -B(49)-B(51) IF (DO_JVS(3600)) & -! JVS(3600) = Jac_FULL(272,271) +! JVS(3600) = Jac_FULL(279,267) JVS(3600) = 0 IF (DO_JVS(3601)) & -! JVS(3601) = Jac_FULL(272,272) - JVS(3601) = -B(326)-B(337)-0.8*B(432)-B(1283)-B(1303)-B(1307)-B(1315)-B(1328)-B(1334)-B(1335) +! JVS(3601) = Jac_FULL(279,268) + JVS(3601) = 0 IF (DO_JVS(3602)) & -! JVS(3602) = Jac_FULL(272,273) - JVS(3602) = 0 +! JVS(3602) = Jac_FULL(279,269) + JVS(3602) = -B(544) IF (DO_JVS(3603)) & -! JVS(3603) = Jac_FULL(272,274) +! JVS(3603) = Jac_FULL(279,270) JVS(3603) = 0 IF (DO_JVS(3604)) & -! JVS(3604) = Jac_FULL(272,275) - JVS(3604) = 0 +! JVS(3604) = Jac_FULL(279,272) + JVS(3604) = 1.22*B(343) IF (DO_JVS(3605)) & -! JVS(3605) = Jac_FULL(272,276) +! JVS(3605) = Jac_FULL(279,273) JVS(3605) = 0 IF (DO_JVS(3606)) & -! JVS(3606) = Jac_FULL(272,277) - JVS(3606) = -B(1329) +! JVS(3606) = Jac_FULL(279,274) + JVS(3606) = -B(300) IF (DO_JVS(3607)) & -! JVS(3607) = Jac_FULL(272,278) +! JVS(3607) = Jac_FULL(279,275) JVS(3607) = 0 IF (DO_JVS(3608)) & -! JVS(3608) = Jac_FULL(272,279) +! JVS(3608) = Jac_FULL(279,276) JVS(3608) = 0 IF (DO_JVS(3609)) & -! JVS(3609) = Jac_FULL(272,280) +! JVS(3609) = Jac_FULL(279,277) JVS(3609) = 0 IF (DO_JVS(3610)) & -! JVS(3610) = Jac_FULL(272,281) - JVS(3610) = B(323) +! JVS(3610) = Jac_FULL(279,278) + JVS(3610) = 0 IF (DO_JVS(3611)) & -! JVS(3611) = Jac_FULL(272,282) - JVS(3611) = B(324)+B(344)+B(346)+B(348)+B(350)+B(352)+B(584) +! JVS(3611) = Jac_FULL(279,279) + JVS(3611) = -B(26)-B(42)-B(50)-B(52)-B(69)-B(80)-B(103)-B(107)-B(109)-B(111)-B(117)-B(119)-B(121)-B(125)-B(127)-B(129)& + &-B(131)-B(133)-B(135)-B(137)-B(139)-B(152)-B(301)-B(366)-B(381)-B(482)-B(545)-B(567)-B(583)-B(595)-B(609)& + &-B(623)-B(647)-B(659)-B(661)-B(743)-B(745)-B(747)-B(749)-B(751)-B(753)-B(755)-B(757)-B(790)-B(792)-B(797)& + &-B(799)-B(804)-B(806)-B(824)-B(826)-B(830)-B(832)-B(838)-B(840)-B(843)-B(847)-B(874)-B(876)-B(881)-B(883)& + &-B(889)-B(891)-B(895)-B(897)-B(901)-B(903)-B(927)-B(929)-B(931)-B(933)-B(960)-B(962)-B(964)-B(966)-B(972)& + &-B(978)-B(1004)-B(1010)-B(1030)-B(1032)-B(1041)-B(1043)-B(1045)-B(1051)-B(1102)-B(1125)-B(1153)-B(1164)& + &-B(1457) IF (DO_JVS(3612)) & -! JVS(3612) = Jac_FULL(272,283) +! JVS(3612) = Jac_FULL(279,280) JVS(3612) = 0 IF (DO_JVS(3613)) & -! JVS(3613) = Jac_FULL(272,284) - JVS(3613) = -B(338) +! JVS(3613) = Jac_FULL(279,281) + JVS(3613) = -B(81)+B(91)+B(1372) IF (DO_JVS(3614)) & -! JVS(3614) = Jac_FULL(272,285) - JVS(3614) = 0 +! JVS(3614) = Jac_FULL(279,282) + JVS(3614) = -B(27) IF (DO_JVS(3615)) & -! JVS(3615) = Jac_FULL(272,286) - JVS(3615) = B(1327) +! JVS(3615) = Jac_FULL(279,283) + JVS(3615) = 0 IF (DO_JVS(3616)) & -! JVS(3616) = Jac_FULL(272,287) - JVS(3616) = 0 +! JVS(3616) = Jac_FULL(279,284) + JVS(3616) = -B(43) IF (DO_JVS(3617)) & -! JVS(3617) = Jac_FULL(273,42) - JVS(3617) = 0.75*B(461) +! JVS(3617) = Jac_FULL(279,285) + JVS(3617) = -B(483) IF (DO_JVS(3618)) & -! JVS(3618) = Jac_FULL(273,46) - JVS(3618) = 0.3*B(463) +! JVS(3618) = Jac_FULL(279,286) + JVS(3618) = -B(70) IF (DO_JVS(3619)) & -! JVS(3619) = Jac_FULL(273,48) - JVS(3619) = 0.75*B(459) +! JVS(3619) = Jac_FULL(279,287) + JVS(3619) = 0 IF (DO_JVS(3620)) & -! JVS(3620) = Jac_FULL(273,51) - JVS(3620) = 0.86*B(435) +! JVS(3620) = Jac_FULL(279,288) + JVS(3620) = B(362)-B(367) IF (DO_JVS(3621)) & -! JVS(3621) = Jac_FULL(273,52) - JVS(3621) = 0.88*B(445) +! JVS(3621) = Jac_FULL(279,289) + JVS(3621) = 0 IF (DO_JVS(3622)) & -! JVS(3622) = Jac_FULL(273,53) - JVS(3622) = 0.86*B(447) +! JVS(3622) = Jac_FULL(279,290) + JVS(3622) = 0 IF (DO_JVS(3623)) & -! JVS(3623) = Jac_FULL(273,55) - JVS(3623) = 0.33*B(449) +! JVS(3623) = Jac_FULL(279,291) + JVS(3623) = B(92)+B(363)+B(1362) IF (DO_JVS(3624)) & -! JVS(3624) = Jac_FULL(273,72) - JVS(3624) = 2*B(532) +! JVS(3624) = Jac_FULL(280,147) + JVS(3624) = B(4) IF (DO_JVS(3625)) & -! JVS(3625) = Jac_FULL(273,78) - JVS(3625) = 0.79*B(457) +! JVS(3625) = Jac_FULL(280,173) + JVS(3625) = -B(1219) IF (DO_JVS(3626)) & -! JVS(3626) = Jac_FULL(273,79) - JVS(3626) = 0.69*B(453) +! JVS(3626) = Jac_FULL(280,203) + JVS(3626) = -B(1313) IF (DO_JVS(3627)) & -! JVS(3627) = Jac_FULL(273,80) - JVS(3627) = 0.74*B(455) +! JVS(3627) = Jac_FULL(280,235) + JVS(3627) = -B(1245) IF (DO_JVS(3628)) & -! JVS(3628) = Jac_FULL(273,81) - JVS(3628) = 0.55*B(443) +! JVS(3628) = Jac_FULL(280,260) + JVS(3628) = -B(1271) IF (DO_JVS(3629)) & -! JVS(3629) = Jac_FULL(273,103) - JVS(3629) = 2*B(535) +! JVS(3629) = Jac_FULL(280,262) + JVS(3629) = -B(1241) IF (DO_JVS(3630)) & -! JVS(3630) = Jac_FULL(273,107) - JVS(3630) = B(1455) +! JVS(3630) = Jac_FULL(280,265) + JVS(3630) = 0 IF (DO_JVS(3631)) & -! JVS(3631) = Jac_FULL(273,192) - JVS(3631) = 0.75*B(433) +! JVS(3631) = Jac_FULL(280,266) + JVS(3631) = 0 IF (DO_JVS(3632)) & -! JVS(3632) = Jac_FULL(273,213) - JVS(3632) = B(561) +! JVS(3632) = Jac_FULL(280,267) + JVS(3632) = 0 IF (DO_JVS(3633)) & -! JVS(3633) = Jac_FULL(273,223) - JVS(3633) = -B(611)-B(613)-B(615) +! JVS(3633) = Jac_FULL(280,268) + JVS(3633) = -B(1329) IF (DO_JVS(3634)) & -! JVS(3634) = Jac_FULL(273,231) +! JVS(3634) = Jac_FULL(280,269) JVS(3634) = 0 IF (DO_JVS(3635)) & -! JVS(3635) = Jac_FULL(273,235) - JVS(3635) = B(563) +! JVS(3635) = Jac_FULL(280,270) + JVS(3635) = -B(1321) IF (DO_JVS(3636)) & -! JVS(3636) = Jac_FULL(273,249) - JVS(3636) = 0 +! JVS(3636) = Jac_FULL(280,271) + JVS(3636) = -B(1261) IF (DO_JVS(3637)) & -! JVS(3637) = Jac_FULL(273,250) +! JVS(3637) = Jac_FULL(280,272) JVS(3637) = 0 IF (DO_JVS(3638)) & -! JVS(3638) = Jac_FULL(273,251) +! JVS(3638) = Jac_FULL(280,273) JVS(3638) = 0 IF (DO_JVS(3639)) & -! JVS(3639) = Jac_FULL(273,252) +! JVS(3639) = Jac_FULL(280,274) JVS(3639) = 0 IF (DO_JVS(3640)) & -! JVS(3640) = Jac_FULL(273,255) - JVS(3640) = 0 +! JVS(3640) = Jac_FULL(280,275) + JVS(3640) = B(5) IF (DO_JVS(3641)) & -! JVS(3641) = Jac_FULL(273,257) +! JVS(3641) = Jac_FULL(280,276) JVS(3641) = 0 IF (DO_JVS(3642)) & -! JVS(3642) = Jac_FULL(273,259) - JVS(3642) = B(543)+B(1459) +! JVS(3642) = Jac_FULL(280,277) + JVS(3642) = 0 IF (DO_JVS(3643)) & -! JVS(3643) = Jac_FULL(273,261) +! JVS(3643) = Jac_FULL(280,278) JVS(3643) = 0 IF (DO_JVS(3644)) & -! JVS(3644) = Jac_FULL(273,262) +! JVS(3644) = Jac_FULL(280,279) JVS(3644) = 0 IF (DO_JVS(3645)) & -! JVS(3645) = Jac_FULL(273,263) - JVS(3645) = -B(469)+B(555) +! JVS(3645) = Jac_FULL(280,280) + JVS(3645) = -B(1220)-B(1223)-B(1242)-B(1246)-B(1262)-B(1272)-B(1314)-B(1322)-B(1330) IF (DO_JVS(3646)) & -! JVS(3646) = Jac_FULL(273,264) +! JVS(3646) = Jac_FULL(280,281) JVS(3646) = 0 IF (DO_JVS(3647)) & -! JVS(3647) = Jac_FULL(273,265) +! JVS(3647) = Jac_FULL(280,282) JVS(3647) = 0 IF (DO_JVS(3648)) & -! JVS(3648) = Jac_FULL(273,266) +! JVS(3648) = Jac_FULL(280,283) JVS(3648) = 0 IF (DO_JVS(3649)) & -! JVS(3649) = Jac_FULL(273,267) - JVS(3649) = B(481) +! JVS(3649) = Jac_FULL(280,284) + JVS(3649) = 0 IF (DO_JVS(3650)) & -! JVS(3650) = Jac_FULL(273,268) - JVS(3650) = 0.24*B(429)+0.75*B(434)+0.86*B(436)+0.55*B(444)+0.88*B(446)+0.86*B(448)+0.33*B(450)+0.69*B(454)+0.74& - &*B(456)+0.79*B(458)+0.75*B(460)+0.75*B(462)+0.3*B(464) +! JVS(3650) = Jac_FULL(280,285) + JVS(3650) = 0 IF (DO_JVS(3651)) & -! JVS(3651) = Jac_FULL(273,269) - JVS(3651) = -B(471)-B(473)+B(482) +! JVS(3651) = Jac_FULL(280,286) + JVS(3651) = -B(1224) IF (DO_JVS(3652)) & -! JVS(3652) = Jac_FULL(273,270) - JVS(3652) = -B(523) +! JVS(3652) = Jac_FULL(280,287) + JVS(3652) = 0 IF (DO_JVS(3653)) & -! JVS(3653) = Jac_FULL(273,271) - JVS(3653) = 0.24*B(430) +! JVS(3653) = Jac_FULL(280,288) + JVS(3653) = 0 IF (DO_JVS(3654)) & -! JVS(3654) = Jac_FULL(273,272) +! JVS(3654) = Jac_FULL(280,289) JVS(3654) = 0 IF (DO_JVS(3655)) & -! JVS(3655) = Jac_FULL(273,273) - JVS(3655) = -B(470)-B(472)-B(474)-B(517)-B(519)-B(521)-B(524)-2*B(525)-2*B(526)-2*B(527)-2*B(531)-B(537)-B(539)-B(541)& - &-B(612)-B(614)-B(616)-B(1454) +! JVS(3655) = Jac_FULL(280,290) + JVS(3655) = 0 IF (DO_JVS(3656)) & -! JVS(3656) = Jac_FULL(273,274) - JVS(3656) = -B(538)-B(540)-B(542) +! JVS(3656) = Jac_FULL(280,291) + JVS(3656) = 0 IF (DO_JVS(3657)) & -! JVS(3657) = Jac_FULL(273,275) - JVS(3657) = 0 +! JVS(3657) = Jac_FULL(281,67) + JVS(3657) = 0.3*B(1376) IF (DO_JVS(3658)) & -! JVS(3658) = Jac_FULL(273,276) - JVS(3658) = 0 +! JVS(3658) = Jac_FULL(281,74) + JVS(3658) = B(1451) IF (DO_JVS(3659)) & -! JVS(3659) = Jac_FULL(273,277) - JVS(3659) = B(507) +! JVS(3659) = Jac_FULL(281,90) + JVS(3659) = -B(286) IF (DO_JVS(3660)) & -! JVS(3660) = Jac_FULL(273,278) - JVS(3660) = 0 +! JVS(3660) = Jac_FULL(281,101) + JVS(3660) = -B(1148) IF (DO_JVS(3661)) & -! JVS(3661) = Jac_FULL(273,279) - JVS(3661) = 0 +! JVS(3661) = Jac_FULL(281,102) + JVS(3661) = B(1369) IF (DO_JVS(3662)) & -! JVS(3662) = Jac_FULL(273,280) - JVS(3662) = -B(522) +! JVS(3662) = Jac_FULL(281,114) + JVS(3662) = -B(140) IF (DO_JVS(3663)) & -! JVS(3663) = Jac_FULL(273,281) - JVS(3663) = B(515)-B(520) +! JVS(3663) = Jac_FULL(281,115) + JVS(3663) = -B(1138) IF (DO_JVS(3664)) & -! JVS(3664) = Jac_FULL(273,282) - JVS(3664) = 0 +! JVS(3664) = Jac_FULL(281,118) + JVS(3664) = -B(1134) IF (DO_JVS(3665)) & -! JVS(3665) = Jac_FULL(273,283) - JVS(3665) = 0 +! JVS(3665) = Jac_FULL(281,134) + JVS(3665) = B(694) IF (DO_JVS(3666)) & -! JVS(3666) = Jac_FULL(273,284) - JVS(3666) = -B(518)+B(544) +! JVS(3666) = Jac_FULL(281,142) + JVS(3666) = -B(1144) IF (DO_JVS(3667)) & -! JVS(3667) = Jac_FULL(273,285) - JVS(3667) = B(508)+B(516)+2*B(536)+B(556)+B(562)+B(564) +! JVS(3667) = Jac_FULL(281,143) + JVS(3667) = -B(551) IF (DO_JVS(3668)) & -! JVS(3668) = Jac_FULL(273,286) - JVS(3668) = 0 +! JVS(3668) = Jac_FULL(281,153) + JVS(3668) = B(1059) IF (DO_JVS(3669)) & -! JVS(3669) = Jac_FULL(273,287) - JVS(3669) = 0 +! JVS(3669) = Jac_FULL(281,154) + JVS(3669) = -B(636) IF (DO_JVS(3670)) & -! JVS(3670) = Jac_FULL(274,44) - JVS(3670) = 0.41*B(451) +! JVS(3670) = Jac_FULL(281,155) + JVS(3670) = -B(638) IF (DO_JVS(3671)) & -! JVS(3671) = Jac_FULL(274,45) - JVS(3671) = 0.75*B(465) +! JVS(3671) = Jac_FULL(281,161) + JVS(3671) = -B(249) IF (DO_JVS(3672)) & -! JVS(3672) = Jac_FULL(274,55) - JVS(3672) = 0.31*B(449) +! JVS(3672) = Jac_FULL(281,170) + JVS(3672) = -B(644) IF (DO_JVS(3673)) & -! JVS(3673) = Jac_FULL(274,70) - JVS(3673) = 0.95*B(439) +! JVS(3673) = Jac_FULL(281,173) + JVS(3673) = B(86)+B(1373) IF (DO_JVS(3674)) & -! JVS(3674) = Jac_FULL(274,74) - JVS(3674) = 0.68*B(441) +! JVS(3674) = Jac_FULL(281,176) + JVS(3674) = B(302)+B(1403) IF (DO_JVS(3675)) & -! JVS(3675) = Jac_FULL(274,97) - JVS(3675) = 0.44*B(437) +! JVS(3675) = Jac_FULL(281,178) + JVS(3675) = -B(690) IF (DO_JVS(3676)) & -! JVS(3676) = Jac_FULL(274,172) - JVS(3676) = B(1445) +! JVS(3676) = Jac_FULL(281,179) + JVS(3676) = -B(1103) IF (DO_JVS(3677)) & -! JVS(3677) = Jac_FULL(274,223) - JVS(3677) = -B(601)-B(603) +! JVS(3677) = Jac_FULL(281,184) + JVS(3677) = -B(1126) IF (DO_JVS(3678)) & -! JVS(3678) = Jac_FULL(274,256) - JVS(3678) = B(335) +! JVS(3678) = Jac_FULL(281,191) + JVS(3678) = B(1161)-B(1165) IF (DO_JVS(3679)) & -! JVS(3679) = Jac_FULL(274,264) - JVS(3679) = 0 +! JVS(3679) = Jac_FULL(281,195) + JVS(3679) = B(610) IF (DO_JVS(3680)) & -! JVS(3680) = Jac_FULL(274,265) - JVS(3680) = -B(599) +! JVS(3680) = Jac_FULL(281,199) + JVS(3680) = -B(688) IF (DO_JVS(3681)) & -! JVS(3681) = Jac_FULL(274,266) +! JVS(3681) = Jac_FULL(281,203) JVS(3681) = 0 IF (DO_JVS(3682)) & -! JVS(3682) = Jac_FULL(274,268) - JVS(3682) = 0.15*B(431)+0.44*B(438)+0.95*B(440)+0.68*B(442)+0.31*B(450)+0.41*B(452)+0.75*B(466) +! JVS(3682) = Jac_FULL(281,207) + JVS(3682) = 0 IF (DO_JVS(3683)) & -! JVS(3683) = Jac_FULL(274,269) - JVS(3683) = -B(339) +! JVS(3683) = Jac_FULL(281,208) + JVS(3683) = -B(1075) IF (DO_JVS(3684)) & -! JVS(3684) = Jac_FULL(274,270) - JVS(3684) = -B(355) +! JVS(3684) = Jac_FULL(281,210) + JVS(3684) = -B(1177) IF (DO_JVS(3685)) & -! JVS(3685) = Jac_FULL(274,271) +! JVS(3685) = Jac_FULL(281,214) JVS(3685) = 0 IF (DO_JVS(3686)) & -! JVS(3686) = Jac_FULL(274,272) - JVS(3686) = 0.15*B(432) +! JVS(3686) = Jac_FULL(281,215) + JVS(3686) = -B(674) IF (DO_JVS(3687)) & -! JVS(3687) = Jac_FULL(274,273) - JVS(3687) = -B(537)-B(539)-B(541) +! JVS(3687) = Jac_FULL(281,216) + JVS(3687) = -B(676) IF (DO_JVS(3688)) & -! JVS(3688) = Jac_FULL(274,274) - JVS(3688) = -B(321)-2*B(327)-2*B(328)-B(329)-B(340)-B(356)-B(425)-B(538)-B(540)-B(542)-B(600)-B(602)-B(604)-B(1442) +! JVS(3688) = Jac_FULL(281,222) + JVS(3688) = 0 IF (DO_JVS(3689)) & -! JVS(3689) = Jac_FULL(274,275) - JVS(3689) = 0 +! JVS(3689) = Jac_FULL(281,223) + JVS(3689) = -B(223) IF (DO_JVS(3690)) & -! JVS(3690) = Jac_FULL(274,276) - JVS(3690) = 0 +! JVS(3690) = Jac_FULL(281,224) + JVS(3690) = -B(904) IF (DO_JVS(3691)) & -! JVS(3691) = Jac_FULL(274,277) - JVS(3691) = B(319) +! JVS(3691) = Jac_FULL(281,225) + JVS(3691) = -B(654) IF (DO_JVS(3692)) & -! JVS(3692) = Jac_FULL(274,278) - JVS(3692) = 0 +! JVS(3692) = Jac_FULL(281,226) + JVS(3692) = -B(179) IF (DO_JVS(3693)) & -! JVS(3693) = Jac_FULL(274,279) +! JVS(3693) = Jac_FULL(281,228) JVS(3693) = 0 IF (DO_JVS(3694)) & -! JVS(3694) = Jac_FULL(274,280) - JVS(3694) = -B(330) +! JVS(3694) = Jac_FULL(281,229) + JVS(3694) = 0 IF (DO_JVS(3695)) & -! JVS(3695) = Jac_FULL(274,281) - JVS(3695) = -B(322) +! JVS(3695) = Jac_FULL(281,230) + JVS(3695) = 0 IF (DO_JVS(3696)) & -! JVS(3696) = Jac_FULL(274,282) - JVS(3696) = B(320)+B(341) +! JVS(3696) = Jac_FULL(281,232) + JVS(3696) = 0 IF (DO_JVS(3697)) & -! JVS(3697) = Jac_FULL(274,283) - JVS(3697) = 0 +! JVS(3697) = Jac_FULL(281,233) + JVS(3697) = -B(225) IF (DO_JVS(3698)) & -! JVS(3698) = Jac_FULL(274,284) - JVS(3698) = B(336)-B(426) +! JVS(3698) = Jac_FULL(281,234) + JVS(3698) = B(596) IF (DO_JVS(3699)) & -! JVS(3699) = Jac_FULL(274,285) +! JVS(3699) = Jac_FULL(281,236) JVS(3699) = 0 IF (DO_JVS(3700)) & -! JVS(3700) = Jac_FULL(274,286) - JVS(3700) = 0 +! JVS(3700) = Jac_FULL(281,238) + JVS(3700) = -B(630) IF (DO_JVS(3701)) & -! JVS(3701) = Jac_FULL(274,287) - JVS(3701) = B(342) +! JVS(3701) = Jac_FULL(281,240) + JVS(3701) = 0 IF (DO_JVS(3702)) & -! JVS(3702) = Jac_FULL(275,199) - JVS(3702) = -B(1350) +! JVS(3702) = Jac_FULL(281,241) + JVS(3702) = 0.69*B(993) IF (DO_JVS(3703)) & -! JVS(3703) = Jac_FULL(275,231) - JVS(3703) = -B(1298) +! JVS(3703) = Jac_FULL(281,242) + JVS(3703) = 0 IF (DO_JVS(3704)) & -! JVS(3704) = Jac_FULL(275,256) - JVS(3704) = -B(1322) +! JVS(3704) = Jac_FULL(281,243) + JVS(3704) = 0 IF (DO_JVS(3705)) & -! JVS(3705) = Jac_FULL(275,259) - JVS(3705) = -B(1284) +! JVS(3705) = Jac_FULL(281,244) + JVS(3705) = 0 IF (DO_JVS(3706)) & -! JVS(3706) = Jac_FULL(275,264) - JVS(3706) = -B(1366) +! JVS(3706) = Jac_FULL(281,245) + JVS(3706) = 0 IF (DO_JVS(3707)) & -! JVS(3707) = Jac_FULL(275,265) - JVS(3707) = 0 +! JVS(3707) = Jac_FULL(281,246) + JVS(3707) = -B(924) IF (DO_JVS(3708)) & -! JVS(3708) = Jac_FULL(275,266) - JVS(3708) = -B(1358) +! JVS(3708) = Jac_FULL(281,247) + JVS(3708) = -B(922) IF (DO_JVS(3709)) & -! JVS(3709) = Jac_FULL(275,269) +! JVS(3709) = Jac_FULL(281,248) JVS(3709) = 0 IF (DO_JVS(3710)) & -! JVS(3710) = Jac_FULL(275,270) - JVS(3710) = 0 +! JVS(3710) = Jac_FULL(281,249) + JVS(3710) = -B(1054) IF (DO_JVS(3711)) & -! JVS(3711) = Jac_FULL(275,271) +! JVS(3711) = Jac_FULL(281,250) JVS(3711) = 0 IF (DO_JVS(3712)) & -! JVS(3712) = Jac_FULL(275,272) - JVS(3712) = B(1334) +! JVS(3712) = Jac_FULL(281,251) + JVS(3712) = -B(991) IF (DO_JVS(3713)) & -! JVS(3713) = Jac_FULL(275,273) +! JVS(3713) = Jac_FULL(281,252) JVS(3713) = 0 IF (DO_JVS(3714)) & -! JVS(3714) = Jac_FULL(275,274) - JVS(3714) = 0 +! JVS(3714) = Jac_FULL(281,253) + JVS(3714) = -B(217) IF (DO_JVS(3715)) & -! JVS(3715) = Jac_FULL(275,275) - JVS(3715) = -B(1285)-B(1299)-B(1323)-B(1330)-B(1351)-B(1359)-B(1367) +! JVS(3715) = Jac_FULL(281,254) + JVS(3715) = 0 IF (DO_JVS(3716)) & -! JVS(3716) = Jac_FULL(275,276) +! JVS(3716) = Jac_FULL(281,256) JVS(3716) = 0 IF (DO_JVS(3717)) & -! JVS(3717) = Jac_FULL(275,277) - JVS(3717) = -B(1331) +! JVS(3717) = Jac_FULL(281,257) + JVS(3717) = 0 IF (DO_JVS(3718)) & -! JVS(3718) = Jac_FULL(275,278) +! JVS(3718) = Jac_FULL(281,258) JVS(3718) = 0 IF (DO_JVS(3719)) & -! JVS(3719) = Jac_FULL(275,279) - JVS(3719) = 0 +! JVS(3719) = Jac_FULL(281,259) + JVS(3719) = -B(153) IF (DO_JVS(3720)) & -! JVS(3720) = Jac_FULL(275,280) +! JVS(3720) = Jac_FULL(281,261) JVS(3720) = 0 IF (DO_JVS(3721)) & -! JVS(3721) = Jac_FULL(275,281) - JVS(3721) = 0 +! JVS(3721) = Jac_FULL(281,262) + JVS(3721) = B(446)+B(502)+B(504)+B(1417) IF (DO_JVS(3722)) & -! JVS(3722) = Jac_FULL(275,282) - JVS(3722) = 0 +! JVS(3722) = Jac_FULL(281,263) + JVS(3722) = -B(93) IF (DO_JVS(3723)) & -! JVS(3723) = Jac_FULL(275,283) - JVS(3723) = 0 +! JVS(3723) = Jac_FULL(281,264) + JVS(3723) = -B(97) IF (DO_JVS(3724)) & -! JVS(3724) = Jac_FULL(275,284) - JVS(3724) = 0 +! JVS(3724) = Jac_FULL(281,265) + JVS(3724) = B(67) IF (DO_JVS(3725)) & -! JVS(3725) = Jac_FULL(275,285) - JVS(3725) = 0 +! JVS(3725) = Jac_FULL(281,266) + JVS(3725) = -B(1205) IF (DO_JVS(3726)) & -! JVS(3726) = Jac_FULL(275,286) +! JVS(3726) = Jac_FULL(281,267) JVS(3726) = 0 IF (DO_JVS(3727)) & -! JVS(3727) = Jac_FULL(275,287) - JVS(3727) = 0 +! JVS(3727) = Jac_FULL(281,269) + JVS(3727) = B(556) IF (DO_JVS(3728)) & -! JVS(3728) = Jac_FULL(276,199) - JVS(3728) = -B(1352) +! JVS(3728) = Jac_FULL(281,270) + JVS(3728) = B(557)+B(1441) IF (DO_JVS(3729)) & -! JVS(3729) = Jac_FULL(276,231) - JVS(3729) = -B(1300) +! JVS(3729) = Jac_FULL(281,272) + JVS(3729) = 0 IF (DO_JVS(3730)) & -! JVS(3730) = Jac_FULL(276,256) - JVS(3730) = -B(1324) +! JVS(3730) = Jac_FULL(281,273) + JVS(3730) = B(303)-B(312) IF (DO_JVS(3731)) & -! JVS(3731) = Jac_FULL(276,259) - JVS(3731) = -B(1286) +! JVS(3731) = Jac_FULL(281,274) + JVS(3731) = 0 IF (DO_JVS(3732)) & -! JVS(3732) = Jac_FULL(276,264) - JVS(3732) = -B(1368) +! JVS(3732) = Jac_FULL(281,275) + JVS(3732) = 0 IF (DO_JVS(3733)) & -! JVS(3733) = Jac_FULL(276,265) +! JVS(3733) = Jac_FULL(281,276) JVS(3733) = 0 IF (DO_JVS(3734)) & -! JVS(3734) = Jac_FULL(276,266) - JVS(3734) = -B(1360) +! JVS(3734) = Jac_FULL(281,277) + JVS(3734) = 0 IF (DO_JVS(3735)) & -! JVS(3735) = Jac_FULL(276,269) +! JVS(3735) = Jac_FULL(281,278) JVS(3735) = 0 IF (DO_JVS(3736)) & -! JVS(3736) = Jac_FULL(276,270) - JVS(3736) = 0 +! JVS(3736) = Jac_FULL(281,279) + JVS(3736) = -B(80) IF (DO_JVS(3737)) & -! JVS(3737) = Jac_FULL(276,271) +! JVS(3737) = Jac_FULL(281,280) JVS(3737) = 0 IF (DO_JVS(3738)) & -! JVS(3738) = Jac_FULL(276,272) - JVS(3738) = B(1335) +! JVS(3738) = Jac_FULL(281,281) + JVS(3738) = -B(78)-B(81)-B(82)-B(84)-B(91)-B(94)-B(98)-B(141)-B(154)-B(180)-B(218)-B(224)-B(226)-B(250)-2*B(278)& + &-B(287)-B(313)-B(364)-B(552)-B(631)-B(637)-B(639)-B(645)-B(655)-B(675)-B(677)-B(689)-B(691)-B(905)-B(923)& + &-B(925)-B(992)-B(1055)-B(1076)-B(1104)-B(1127)-B(1135)-B(1139)-B(1145)-B(1149)-B(1166)-B(1178)-B(1206)& + &-B(1211)-B(1212)-B(1213)-B(1371)-B(1372) IF (DO_JVS(3739)) & -! JVS(3739) = Jac_FULL(276,273) - JVS(3739) = 0 +! JVS(3739) = Jac_FULL(281,282) + JVS(3739) = B(32) IF (DO_JVS(3740)) & -! JVS(3740) = Jac_FULL(276,274) +! JVS(3740) = Jac_FULL(281,283) JVS(3740) = 0 IF (DO_JVS(3741)) & -! JVS(3741) = Jac_FULL(276,275) - JVS(3741) = 0 +! JVS(3741) = Jac_FULL(281,284) + JVS(3741) = -B(79) IF (DO_JVS(3742)) & -! JVS(3742) = Jac_FULL(276,276) - JVS(3742) = -B(1287)-B(1301)-B(1325)-B(1332)-B(1353)-B(1361)-B(1369) +! JVS(3742) = Jac_FULL(281,285) + JVS(3742) = 0 IF (DO_JVS(3743)) & -! JVS(3743) = Jac_FULL(276,277) - JVS(3743) = -B(1333) +! JVS(3743) = Jac_FULL(281,286) + JVS(3743) = B(68)-B(83)+B(447)+B(695)+0.69*B(994)+B(1060) IF (DO_JVS(3744)) & -! JVS(3744) = Jac_FULL(276,278) +! JVS(3744) = Jac_FULL(281,287) JVS(3744) = 0 IF (DO_JVS(3745)) & -! JVS(3745) = Jac_FULL(276,279) - JVS(3745) = 0 +! JVS(3745) = Jac_FULL(281,288) + JVS(3745) = -B(365)+B(368)+B(503) IF (DO_JVS(3746)) & -! JVS(3746) = Jac_FULL(276,280) +! JVS(3746) = Jac_FULL(281,289) JVS(3746) = 0 IF (DO_JVS(3747)) & -! JVS(3747) = Jac_FULL(276,281) - JVS(3747) = 0 +! JVS(3747) = Jac_FULL(281,290) + JVS(3747) = B(505) IF (DO_JVS(3748)) & -! JVS(3748) = Jac_FULL(276,282) - JVS(3748) = 0 +! JVS(3748) = Jac_FULL(281,291) + JVS(3748) = B(33)-B(85)-B(92)+B(369)+B(597)+B(611)+B(1162) IF (DO_JVS(3749)) & -! JVS(3749) = Jac_FULL(276,283) - JVS(3749) = 0 +! JVS(3749) = Jac_FULL(282,76) + JVS(3749) = -B(1093) IF (DO_JVS(3750)) & -! JVS(3750) = Jac_FULL(276,284) - JVS(3750) = 0 +! JVS(3750) = Jac_FULL(282,138) + JVS(3750) = -B(8) IF (DO_JVS(3751)) & -! JVS(3751) = Jac_FULL(276,285) - JVS(3751) = 0 +! JVS(3751) = Jac_FULL(282,142) + JVS(3751) = -B(1142) IF (DO_JVS(3752)) & -! JVS(3752) = Jac_FULL(276,286) - JVS(3752) = 0 +! JVS(3752) = Jac_FULL(282,147) + JVS(3752) = -B(1) IF (DO_JVS(3753)) & -! JVS(3753) = Jac_FULL(276,287) - JVS(3753) = 0 +! JVS(3753) = Jac_FULL(282,148) + JVS(3753) = -B(1190) IF (DO_JVS(3754)) & -! JVS(3754) = Jac_FULL(277,75) - JVS(3754) = -B(1142) +! JVS(3754) = Jac_FULL(282,154) + JVS(3754) = -B(632) IF (DO_JVS(3755)) & -! JVS(3755) = Jac_FULL(277,135) - JVS(3755) = -B(8) +! JVS(3755) = Jac_FULL(282,155) + JVS(3755) = -B(634) IF (DO_JVS(3756)) & -! JVS(3756) = Jac_FULL(277,138) - JVS(3756) = -B(1191) +! JVS(3756) = Jac_FULL(282,159) + JVS(3756) = -B(1185) IF (DO_JVS(3757)) & -! JVS(3757) = Jac_FULL(277,144) - JVS(3757) = -B(1) +! JVS(3757) = Jac_FULL(282,160) + JVS(3757) = -B(1171) IF (DO_JVS(3758)) & -! JVS(3758) = Jac_FULL(277,145) - JVS(3758) = -B(1239) +! JVS(3758) = Jac_FULL(282,170) + JVS(3758) = -B(642) IF (DO_JVS(3759)) & -! JVS(3759) = Jac_FULL(277,150) - JVS(3759) = -B(681) +! JVS(3759) = Jac_FULL(282,177) + JVS(3759) = -B(374) IF (DO_JVS(3760)) & -! JVS(3760) = Jac_FULL(277,151) - JVS(3760) = -B(683) +! JVS(3760) = Jac_FULL(282,180) + JVS(3760) = 0.15*B(1150) IF (DO_JVS(3761)) & -! JVS(3761) = Jac_FULL(277,155) - JVS(3761) = -B(1234) +! JVS(3761) = Jac_FULL(282,190) + JVS(3761) = 0 IF (DO_JVS(3762)) & -! JVS(3762) = Jac_FULL(277,156) - JVS(3762) = -B(1220) +! JVS(3762) = Jac_FULL(282,191) + JVS(3762) = 0 IF (DO_JVS(3763)) & -! JVS(3763) = Jac_FULL(277,165) - JVS(3763) = -B(691) +! JVS(3763) = Jac_FULL(282,199) + JVS(3763) = -B(686) IF (DO_JVS(3764)) & -! JVS(3764) = Jac_FULL(277,173) - JVS(3764) = -B(411) +! JVS(3764) = Jac_FULL(282,207) + JVS(3764) = 0.13*B(1035) IF (DO_JVS(3765)) & -! JVS(3765) = Jac_FULL(277,176) - JVS(3765) = 0.15*B(1199) +! JVS(3765) = Jac_FULL(282,210) + JVS(3765) = 0 IF (DO_JVS(3766)) & -! JVS(3766) = Jac_FULL(277,186) +! JVS(3766) = Jac_FULL(282,215) JVS(3766) = 0 IF (DO_JVS(3767)) & -! JVS(3767) = Jac_FULL(277,187) +! JVS(3767) = Jac_FULL(282,216) JVS(3767) = 0 IF (DO_JVS(3768)) & -! JVS(3768) = Jac_FULL(277,196) - JVS(3768) = -B(735) +! JVS(3768) = Jac_FULL(282,224) + JVS(3768) = -B(704) IF (DO_JVS(3769)) & -! JVS(3769) = Jac_FULL(277,203) - JVS(3769) = 0.13*B(1084) +! JVS(3769) = Jac_FULL(282,225) + JVS(3769) = 0 IF (DO_JVS(3770)) & -! JVS(3770) = Jac_FULL(277,206) - JVS(3770) = 0 +! JVS(3770) = Jac_FULL(282,234) + JVS(3770) = -B(602) IF (DO_JVS(3771)) & -! JVS(3771) = Jac_FULL(277,211) +! JVS(3771) = Jac_FULL(282,238) JVS(3771) = 0 IF (DO_JVS(3772)) & -! JVS(3772) = Jac_FULL(277,212) - JVS(3772) = 0 +! JVS(3772) = Jac_FULL(282,248) + JVS(3772) = -B(983) IF (DO_JVS(3773)) & -! JVS(3773) = Jac_FULL(277,220) - JVS(3773) = -B(753) +! JVS(3773) = Jac_FULL(282,249) + JVS(3773) = 0.13*B(1048) IF (DO_JVS(3774)) & -! JVS(3774) = Jac_FULL(277,221) - JVS(3774) = 0 +! JVS(3774) = Jac_FULL(282,251) + JVS(3774) = -B(989) IF (DO_JVS(3775)) & -! JVS(3775) = Jac_FULL(277,230) - JVS(3775) = -B(651) +! JVS(3775) = Jac_FULL(282,253) + JVS(3775) = -B(211) IF (DO_JVS(3776)) & -! JVS(3776) = Jac_FULL(277,234) - JVS(3776) = 0 +! JVS(3776) = Jac_FULL(282,255) + JVS(3776) = 0.15*B(207) IF (DO_JVS(3777)) & -! JVS(3777) = Jac_FULL(277,244) - JVS(3777) = -B(1032) +! JVS(3777) = Jac_FULL(282,256) + JVS(3777) = 0 IF (DO_JVS(3778)) & -! JVS(3778) = Jac_FULL(277,245) - JVS(3778) = 0.13*B(1097) +! JVS(3778) = Jac_FULL(282,257) + JVS(3778) = 0 IF (DO_JVS(3779)) & -! JVS(3779) = Jac_FULL(277,247) - JVS(3779) = -B(1038) +! JVS(3779) = Jac_FULL(282,259) + JVS(3779) = 0 IF (DO_JVS(3780)) & -! JVS(3780) = Jac_FULL(277,250) - JVS(3780) = 0.15*B(212) +! JVS(3780) = Jac_FULL(282,261) + JVS(3780) = 0.13*B(1081) IF (DO_JVS(3781)) & -! JVS(3781) = Jac_FULL(277,251) +! JVS(3781) = Jac_FULL(282,263) JVS(3781) = 0 IF (DO_JVS(3782)) & -! JVS(3782) = Jac_FULL(277,252) +! JVS(3782) = Jac_FULL(282,264) JVS(3782) = 0 IF (DO_JVS(3783)) & -! JVS(3783) = Jac_FULL(277,254) - JVS(3783) = -B(216) +! JVS(3783) = Jac_FULL(282,265) + JVS(3783) = 0 IF (DO_JVS(3784)) & -! JVS(3784) = Jac_FULL(277,255) - JVS(3784) = 0 +! JVS(3784) = Jac_FULL(282,266) + JVS(3784) = -B(34) IF (DO_JVS(3785)) & -! JVS(3785) = Jac_FULL(277,257) - JVS(3785) = 0.13*B(1130) +! JVS(3785) = Jac_FULL(282,267) + JVS(3785) = 0 IF (DO_JVS(3786)) & -! JVS(3786) = Jac_FULL(277,258) - JVS(3786) = 0 +! JVS(3786) = Jac_FULL(282,269) + JVS(3786) = -B(570) IF (DO_JVS(3787)) & -! JVS(3787) = Jac_FULL(277,260) +! JVS(3787) = Jac_FULL(282,270) JVS(3787) = 0 IF (DO_JVS(3788)) & -! JVS(3788) = Jac_FULL(277,261) - JVS(3788) = 0 +! JVS(3788) = Jac_FULL(282,272) + JVS(3788) = -B(356) IF (DO_JVS(3789)) & -! JVS(3789) = Jac_FULL(277,262) - JVS(3789) = 0 +! JVS(3789) = Jac_FULL(282,273) + JVS(3789) = -B(290) IF (DO_JVS(3790)) & -! JVS(3790) = Jac_FULL(277,263) - JVS(3790) = -B(33) +! JVS(3790) = Jac_FULL(282,274) + JVS(3790) = 0 IF (DO_JVS(3791)) & -! JVS(3791) = Jac_FULL(277,265) - JVS(3791) = -B(617) +! JVS(3791) = Jac_FULL(282,275) + JVS(3791) = 0 IF (DO_JVS(3792)) & -! JVS(3792) = Jac_FULL(277,266) - JVS(3792) = 0 +! JVS(3792) = Jac_FULL(282,276) + JVS(3792) = -B(2)-B(9)-B(17) IF (DO_JVS(3793)) & -! JVS(3793) = Jac_FULL(277,268) - JVS(3793) = -B(391)-B(393) +! JVS(3793) = Jac_FULL(282,277) + JVS(3793) = -B(1285) IF (DO_JVS(3794)) & -! JVS(3794) = Jac_FULL(277,269) - JVS(3794) = -B(27) +! JVS(3794) = Jac_FULL(282,278) + JVS(3794) = 0 IF (DO_JVS(3795)) & -! JVS(3795) = Jac_FULL(277,270) - JVS(3795) = -B(31) +! JVS(3795) = Jac_FULL(282,279) + JVS(3795) = -B(26) IF (DO_JVS(3796)) & -! JVS(3796) = Jac_FULL(277,271) +! JVS(3796) = Jac_FULL(282,280) JVS(3796) = 0 IF (DO_JVS(3797)) & -! JVS(3797) = Jac_FULL(277,272) - JVS(3797) = -B(1328) +! JVS(3797) = Jac_FULL(282,281) + JVS(3797) = 0 IF (DO_JVS(3798)) & -! JVS(3798) = Jac_FULL(277,273) - JVS(3798) = 0 +! JVS(3798) = Jac_FULL(282,282) + JVS(3798) = -B(3)-B(10)-B(18)-B(27)-B(28)-B(30)-B(32)-B(35)-B(212)-B(291)-B(348)-B(357)-B(375)-B(468)-B(571)-B(603)& + &-B(633)-B(635)-B(643)-B(687)-B(705)-B(984)-B(990)-B(1094)-B(1143)-B(1172)-B(1186)-B(1191)-B(1281)-B(1283)& + &-B(1286)-B(1359)-B(1360) IF (DO_JVS(3799)) & -! JVS(3799) = Jac_FULL(277,274) - JVS(3799) = 0 +! JVS(3799) = Jac_FULL(282,283) + JVS(3799) = -B(1284) IF (DO_JVS(3800)) & -! JVS(3800) = Jac_FULL(277,275) - JVS(3800) = -B(1330) +! JVS(3800) = Jac_FULL(282,284) + JVS(3800) = -B(31)+0.15*B(208)+0.13*B(1036)+0.13*B(1049)+0.13*B(1082)+0.15*B(1151) IF (DO_JVS(3801)) & -! JVS(3801) = Jac_FULL(277,276) - JVS(3801) = -B(1332) +! JVS(3801) = Jac_FULL(282,285) + JVS(3801) = 0 IF (DO_JVS(3802)) & -! JVS(3802) = Jac_FULL(277,277) - JVS(3802) = -B(2)-B(9)-B(17)-B(25)-B(28)-B(29)-B(32)-B(34)-B(217)-B(319)-B(383)-B(392)-B(394)-B(412)-B(507)-B(618)& - &-B(652)-B(682)-B(684)-B(692)-B(736)-B(754)-B(1033)-B(1039)-B(1143)-B(1192)-B(1221)-B(1235)-B(1240)-B(1329)& - &-B(1331)-B(1333)-B(1400)-B(1401) +! JVS(3802) = Jac_FULL(282,286) + JVS(3802) = -B(29) IF (DO_JVS(3803)) & -! JVS(3803) = Jac_FULL(277,278) +! JVS(3803) = Jac_FULL(282,287) JVS(3803) = 0 IF (DO_JVS(3804)) & -! JVS(3804) = Jac_FULL(277,279) - JVS(3804) = 0 +! JVS(3804) = Jac_FULL(282,288) + JVS(3804) = B(346)-B(349) IF (DO_JVS(3805)) & -! JVS(3805) = Jac_FULL(277,280) - JVS(3805) = -B(26) +! JVS(3805) = Jac_FULL(282,289) + JVS(3805) = -B(1282) IF (DO_JVS(3806)) & -! JVS(3806) = Jac_FULL(277,281) - JVS(3806) = -B(30)+0.15*B(213)+0.13*B(1085)+0.13*B(1098)+0.13*B(1131)+0.15*B(1200) +! JVS(3806) = Jac_FULL(282,290) + JVS(3806) = -B(469) IF (DO_JVS(3807)) & -! JVS(3807) = Jac_FULL(277,282) - JVS(3807) = -B(320) +! JVS(3807) = Jac_FULL(282,291) + JVS(3807) = -B(33) IF (DO_JVS(3808)) & -! JVS(3808) = Jac_FULL(277,283) - JVS(3808) = 0 +! JVS(3808) = Jac_FULL(283,203) + JVS(3808) = -B(1309) IF (DO_JVS(3809)) & -! JVS(3809) = Jac_FULL(277,284) - JVS(3809) = B(381)-B(384) +! JVS(3809) = Jac_FULL(283,235) + JVS(3809) = -B(1251) IF (DO_JVS(3810)) & -! JVS(3810) = Jac_FULL(277,285) - JVS(3810) = -B(508) +! JVS(3810) = Jac_FULL(283,260) + JVS(3810) = -B(1275) IF (DO_JVS(3811)) & -! JVS(3811) = Jac_FULL(277,286) - JVS(3811) = -B(3)-B(10)-B(18) +! JVS(3811) = Jac_FULL(283,262) + JVS(3811) = -B(1237) IF (DO_JVS(3812)) & -! JVS(3812) = Jac_FULL(277,287) - JVS(3812) = 0 +! JVS(3812) = Jac_FULL(283,268) + JVS(3812) = -B(1325) IF (DO_JVS(3813)) & -! JVS(3813) = Jac_FULL(278,144) - JVS(3813) = B(4) +! JVS(3813) = Jac_FULL(283,269) + JVS(3813) = 0 IF (DO_JVS(3814)) & -! JVS(3814) = Jac_FULL(278,169) - JVS(3814) = -B(1266) +! JVS(3814) = Jac_FULL(283,270) + JVS(3814) = -B(1317) IF (DO_JVS(3815)) & -! JVS(3815) = Jac_FULL(278,199) - JVS(3815) = -B(1354) +! JVS(3815) = Jac_FULL(283,273) + JVS(3815) = 0 IF (DO_JVS(3816)) & -! JVS(3816) = Jac_FULL(278,231) - JVS(3816) = -B(1292) +! JVS(3816) = Jac_FULL(283,274) + JVS(3816) = 0 IF (DO_JVS(3817)) & -! JVS(3817) = Jac_FULL(278,256) - JVS(3817) = -B(1318) +! JVS(3817) = Jac_FULL(283,275) + JVS(3817) = 0 IF (DO_JVS(3818)) & -! JVS(3818) = Jac_FULL(278,259) - JVS(3818) = -B(1288) +! JVS(3818) = Jac_FULL(283,276) + JVS(3818) = 0 IF (DO_JVS(3819)) & -! JVS(3819) = Jac_FULL(278,260) +! JVS(3819) = Jac_FULL(283,277) JVS(3819) = 0 IF (DO_JVS(3820)) & -! JVS(3820) = Jac_FULL(278,261) +! JVS(3820) = Jac_FULL(283,278) JVS(3820) = 0 IF (DO_JVS(3821)) & -! JVS(3821) = Jac_FULL(278,262) +! JVS(3821) = Jac_FULL(283,279) JVS(3821) = 0 IF (DO_JVS(3822)) & -! JVS(3822) = Jac_FULL(278,263) +! JVS(3822) = Jac_FULL(283,280) JVS(3822) = 0 IF (DO_JVS(3823)) & -! JVS(3823) = Jac_FULL(278,264) - JVS(3823) = -B(1370) +! JVS(3823) = Jac_FULL(283,281) + JVS(3823) = 0 IF (DO_JVS(3824)) & -! JVS(3824) = Jac_FULL(278,265) - JVS(3824) = 0 +! JVS(3824) = Jac_FULL(283,282) + JVS(3824) = -B(1283) IF (DO_JVS(3825)) & -! JVS(3825) = Jac_FULL(278,266) - JVS(3825) = -B(1362) +! JVS(3825) = Jac_FULL(283,283) + JVS(3825) = -B(1238)-B(1252)-B(1276)-B(1284)-B(1310)-B(1318)-B(1326) IF (DO_JVS(3826)) & -! JVS(3826) = Jac_FULL(278,267) - JVS(3826) = -B(1308) +! JVS(3826) = Jac_FULL(283,284) + JVS(3826) = 0 IF (DO_JVS(3827)) & -! JVS(3827) = Jac_FULL(278,268) +! JVS(3827) = Jac_FULL(283,285) JVS(3827) = 0 IF (DO_JVS(3828)) & -! JVS(3828) = Jac_FULL(278,269) - JVS(3828) = -B(1270) +! JVS(3828) = Jac_FULL(283,286) + JVS(3828) = 0 IF (DO_JVS(3829)) & -! JVS(3829) = Jac_FULL(278,270) +! JVS(3829) = Jac_FULL(283,287) JVS(3829) = 0 IF (DO_JVS(3830)) & -! JVS(3830) = Jac_FULL(278,271) - JVS(3830) = B(5) +! JVS(3830) = Jac_FULL(283,288) + JVS(3830) = 0 IF (DO_JVS(3831)) & -! JVS(3831) = Jac_FULL(278,272) - JVS(3831) = 0 +! JVS(3831) = Jac_FULL(283,289) + JVS(3831) = B(1287) IF (DO_JVS(3832)) & -! JVS(3832) = Jac_FULL(278,273) +! JVS(3832) = Jac_FULL(283,290) JVS(3832) = 0 IF (DO_JVS(3833)) & -! JVS(3833) = Jac_FULL(278,274) +! JVS(3833) = Jac_FULL(283,291) JVS(3833) = 0 IF (DO_JVS(3834)) & -! JVS(3834) = Jac_FULL(278,275) - JVS(3834) = 0 +! JVS(3834) = Jac_FULL(284,58) + JVS(3834) = 0.364*B(1097) IF (DO_JVS(3835)) & -! JVS(3835) = Jac_FULL(278,276) - JVS(3835) = 0 +! JVS(3835) = Jac_FULL(284,64) + JVS(3835) = 0.54*B(1116) IF (DO_JVS(3836)) & -! JVS(3836) = Jac_FULL(278,277) - JVS(3836) = 0 +! JVS(3836) = Jac_FULL(284,72) + JVS(3836) = B(450)+B(508) IF (DO_JVS(3837)) & -! JVS(3837) = Jac_FULL(278,278) - JVS(3837) = -B(1267)-B(1271)-B(1289)-B(1293)-B(1309)-B(1319)-B(1355)-B(1363)-B(1371) +! JVS(3837) = Jac_FULL(284,74) + JVS(3837) = B(1451) IF (DO_JVS(3838)) & -! JVS(3838) = Jac_FULL(278,279) - JVS(3838) = 0 +! JVS(3838) = Jac_FULL(284,78) + JVS(3838) = B(452)+B(510) IF (DO_JVS(3839)) & -! JVS(3839) = Jac_FULL(278,280) - JVS(3839) = 0 +! JVS(3839) = Jac_FULL(284,79) + JVS(3839) = 0.19*B(1118) IF (DO_JVS(3840)) & -! JVS(3840) = Jac_FULL(278,281) - JVS(3840) = 0 +! JVS(3840) = Jac_FULL(284,80) + JVS(3840) = 0.15*B(1120) IF (DO_JVS(3841)) & -! JVS(3841) = Jac_FULL(278,282) - JVS(3841) = 0 +! JVS(3841) = Jac_FULL(284,85) + JVS(3841) = 0.5*B(1079) IF (DO_JVS(3842)) & -! JVS(3842) = Jac_FULL(278,283) - JVS(3842) = 0 +! JVS(3842) = Jac_FULL(284,87) + JVS(3842) = B(1469) IF (DO_JVS(3843)) & -! JVS(3843) = Jac_FULL(278,284) - JVS(3843) = 0 +! JVS(3843) = Jac_FULL(284,89) + JVS(3843) = B(1467) IF (DO_JVS(3844)) & -! JVS(3844) = Jac_FULL(278,285) - JVS(3844) = 0 +! JVS(3844) = Jac_FULL(284,91) + JVS(3844) = B(1470) IF (DO_JVS(3845)) & -! JVS(3845) = Jac_FULL(278,286) - JVS(3845) = 0 +! JVS(3845) = Jac_FULL(284,93) + JVS(3845) = B(1395) IF (DO_JVS(3846)) & -! JVS(3846) = Jac_FULL(278,287) - JVS(3846) = 0 +! JVS(3846) = Jac_FULL(284,94) + JVS(3846) = B(1393) IF (DO_JVS(3847)) & -! JVS(3847) = Jac_FULL(279,39) - JVS(3847) = B(493) +! JVS(3847) = Jac_FULL(284,95) + JVS(3847) = B(1394) IF (DO_JVS(3848)) & -! JVS(3848) = Jac_FULL(279,43) - JVS(3848) = B(635) +! JVS(3848) = Jac_FULL(284,96) + JVS(3848) = B(1468) IF (DO_JVS(3849)) & -! JVS(3849) = Jac_FULL(279,65) - JVS(3849) = B(623) +! JVS(3849) = Jac_FULL(284,100) + JVS(3849) = B(332) IF (DO_JVS(3850)) & -! JVS(3850) = Jac_FULL(279,78) - JVS(3850) = B(501) +! JVS(3850) = Jac_FULL(284,101) + JVS(3850) = B(1512) IF (DO_JVS(3851)) & -! JVS(3851) = Jac_FULL(279,79) - JVS(3851) = B(497) +! JVS(3851) = Jac_FULL(284,102) + JVS(3851) = B(75)+B(1370) IF (DO_JVS(3852)) & -! JVS(3852) = Jac_FULL(279,80) - JVS(3852) = B(499) +! JVS(3852) = Jac_FULL(284,104) + JVS(3852) = B(1473) IF (DO_JVS(3853)) & -! JVS(3853) = Jac_FULL(279,81) - JVS(3853) = B(495) +! JVS(3853) = Jac_FULL(284,106) + JVS(3853) = B(1397) IF (DO_JVS(3854)) & -! JVS(3854) = Jac_FULL(279,97) - JVS(3854) = B(361) +! JVS(3854) = Jac_FULL(284,108) + JVS(3854) = B(1107)+B(1108) IF (DO_JVS(3855)) & -! JVS(3855) = Jac_FULL(279,100) - JVS(3855) = B(487) +! JVS(3855) = Jac_FULL(284,109) + JVS(3855) = B(770) IF (DO_JVS(3856)) & -! JVS(3856) = Jac_FULL(279,101) - JVS(3856) = B(79) +! JVS(3856) = Jac_FULL(284,110) + JVS(3856) = B(1392) IF (DO_JVS(3857)) & -! JVS(3857) = Jac_FULL(279,134) - JVS(3857) = B(58)+B(60) +! JVS(3857) = Jac_FULL(284,112) + JVS(3857) = B(1396) IF (DO_JVS(3858)) & -! JVS(3858) = Jac_FULL(279,157) - JVS(3858) = B(107) +! JVS(3858) = Jac_FULL(284,113) + JVS(3858) = B(1391) IF (DO_JVS(3859)) & -! JVS(3859) = Jac_FULL(279,169) - JVS(3859) = -B(1261) +! JVS(3859) = Jac_FULL(284,115) + JVS(3859) = 0.727*B(1136) IF (DO_JVS(3860)) & -! JVS(3860) = Jac_FULL(279,172) - JVS(3860) = -B(1274) +! JVS(3860) = Jac_FULL(284,116) + JVS(3860) = 0.75*B(809) IF (DO_JVS(3861)) & -! JVS(3861) = Jac_FULL(279,173) - JVS(3861) = B(415) +! JVS(3861) = Jac_FULL(284,117) + JVS(3861) = B(1019) IF (DO_JVS(3862)) & -! JVS(3862) = Jac_FULL(279,186) - JVS(3862) = B(46) +! JVS(3862) = Jac_FULL(284,118) + JVS(3862) = 0.8*B(1132) IF (DO_JVS(3863)) & -! JVS(3863) = Jac_FULL(279,188) - JVS(3863) = B(74) +! JVS(3863) = Jac_FULL(284,119) + JVS(3863) = B(1458) IF (DO_JVS(3864)) & -! JVS(3864) = Jac_FULL(279,191) - JVS(3864) = -B(663)-B(665) +! JVS(3864) = Jac_FULL(284,120) + JVS(3864) = 0 IF (DO_JVS(3865)) & -! JVS(3865) = Jac_FULL(279,193) - JVS(3865) = B(62)+B(64) +! JVS(3865) = Jac_FULL(284,121) + JVS(3865) = -B(844) IF (DO_JVS(3866)) & -! JVS(3866) = Jac_FULL(279,198) - JVS(3866) = B(145) +! JVS(3866) = Jac_FULL(284,123) + JVS(3866) = -B(848) IF (DO_JVS(3867)) & -! JVS(3867) = Jac_FULL(279,199) - JVS(3867) = 0 +! JVS(3867) = Jac_FULL(284,125) + JVS(3867) = 0.444*B(1065)+1.454*B(1506) IF (DO_JVS(3868)) & -! JVS(3868) = Jac_FULL(279,206) - JVS(3868) = 0 +! JVS(3868) = Jac_FULL(284,126) + JVS(3868) = B(934) IF (DO_JVS(3869)) & -! JVS(3869) = Jac_FULL(279,207) - JVS(3869) = B(90)+B(553) +! JVS(3869) = Jac_FULL(284,127) + JVS(3869) = B(1492) IF (DO_JVS(3870)) & -! JVS(3870) = Jac_FULL(279,208) - JVS(3870) = B(39) +! JVS(3870) = Jac_FULL(284,129) + JVS(3870) = B(1491) IF (DO_JVS(3871)) & -! JVS(3871) = Jac_FULL(279,215) - JVS(3871) = B(147) +! JVS(3871) = Jac_FULL(284,130) + JVS(3871) = B(811) IF (DO_JVS(3872)) & -! JVS(3872) = Jac_FULL(279,217) - JVS(3872) = 0 +! JVS(3872) = Jac_FULL(284,131) + JVS(3872) = B(815) IF (DO_JVS(3873)) & -! JVS(3873) = Jac_FULL(279,219) - JVS(3873) = B(158) +! JVS(3873) = Jac_FULL(284,132) + JVS(3873) = B(1025) IF (DO_JVS(3874)) & -! JVS(3874) = Jac_FULL(279,220) - JVS(3874) = 0 +! JVS(3874) = Jac_FULL(284,133) + JVS(3874) = B(193) IF (DO_JVS(3875)) & -! JVS(3875) = Jac_FULL(279,222) - JVS(3875) = B(176) +! JVS(3875) = Jac_FULL(284,137) + JVS(3875) = B(1364) IF (DO_JVS(3876)) & -! JVS(3876) = Jac_FULL(279,227) - JVS(3876) = 0 +! JVS(3876) = Jac_FULL(284,139) + JVS(3876) = B(1494) IF (DO_JVS(3877)) & -! JVS(3877) = Jac_FULL(279,230) - JVS(3877) = -B(647)-2*B(649) +! JVS(3877) = Jac_FULL(284,140) + JVS(3877) = B(1495) IF (DO_JVS(3878)) & -! JVS(3878) = Jac_FULL(279,231) - JVS(3878) = 0 +! JVS(3878) = Jac_FULL(284,141) + JVS(3878) = 0.75*B(1504) IF (DO_JVS(3879)) & -! JVS(3879) = Jac_FULL(279,232) - JVS(3879) = 0 +! JVS(3879) = Jac_FULL(284,142) + JVS(3879) = B(1142) IF (DO_JVS(3880)) & -! JVS(3880) = Jac_FULL(279,233) - JVS(3880) = 0 +! JVS(3880) = Jac_FULL(284,144) + JVS(3880) = -B(1005) IF (DO_JVS(3881)) & -! JVS(3881) = Jac_FULL(279,234) - JVS(3881) = 0 +! JVS(3881) = Jac_FULL(284,145) + JVS(3881) = -B(1011) IF (DO_JVS(3882)) & -! JVS(3882) = Jac_FULL(279,235) - JVS(3882) = 0 +! JVS(3882) = Jac_FULL(284,146) + JVS(3882) = 0.89*B(977)-0.27*B(979) IF (DO_JVS(3883)) & -! JVS(3883) = Jac_FULL(279,236) - JVS(3883) = 0 +! JVS(3883) = Jac_FULL(284,148) + JVS(3883) = 0.33*B(1188)+0.1*B(1190)+0.2*B(1192) IF (DO_JVS(3884)) & -! JVS(3884) = Jac_FULL(279,237) - JVS(3884) = 0 +! JVS(3884) = Jac_FULL(284,149) + JVS(3884) = B(448)+B(506) IF (DO_JVS(3885)) & -! JVS(3885) = Jac_FULL(279,238) - JVS(3885) = 0 +! JVS(3885) = Jac_FULL(284,150) + JVS(3885) = 0.33*B(971)-0.67*B(973) IF (DO_JVS(3886)) & -! JVS(3886) = Jac_FULL(279,239) - JVS(3886) = 0 +! JVS(3886) = Jac_FULL(284,151) + JVS(3886) = 0.159*B(1498) IF (DO_JVS(3887)) & -! JVS(3887) = Jac_FULL(279,240) - JVS(3887) = 0 +! JVS(3887) = Jac_FULL(284,152) + JVS(3887) = B(877)-0.401*B(878)+B(880) IF (DO_JVS(3888)) & -! JVS(3888) = Jac_FULL(279,241) - JVS(3888) = 0 +! JVS(3888) = Jac_FULL(284,154) + JVS(3888) = 0.1*B(632) IF (DO_JVS(3889)) & -! JVS(3889) = Jac_FULL(279,242) - JVS(3889) = 0 +! JVS(3889) = Jac_FULL(284,155) + JVS(3889) = 0.1*B(634) IF (DO_JVS(3890)) & -! JVS(3890) = Jac_FULL(279,243) - JVS(3890) = 0 +! JVS(3890) = Jac_FULL(284,156) + JVS(3890) = 0.571*B(1478) IF (DO_JVS(3891)) & -! JVS(3891) = Jac_FULL(279,244) - JVS(3891) = 0 +! JVS(3891) = Jac_FULL(284,157) + JVS(3891) = 0.25*B(780)+B(1485) IF (DO_JVS(3892)) & -! JVS(3892) = Jac_FULL(279,245) - JVS(3892) = 0 +! JVS(3892) = Jac_FULL(284,158) + JVS(3892) = B(195) IF (DO_JVS(3893)) & -! JVS(3893) = Jac_FULL(279,246) - JVS(3893) = 0 +! JVS(3893) = Jac_FULL(284,159) + JVS(3893) = 0.33*B(1183)+0.1*B(1185)+0.2*B(1187) IF (DO_JVS(3894)) & -! JVS(3894) = Jac_FULL(279,247) - JVS(3894) = 0 +! JVS(3894) = Jac_FULL(284,162) + JVS(3894) = 0.33*B(782)+B(1486) IF (DO_JVS(3895)) & -! JVS(3895) = Jac_FULL(279,248) - JVS(3895) = 0 +! JVS(3895) = Jac_FULL(284,163) + JVS(3895) = 0.715*B(1015)+0.125*B(1479) IF (DO_JVS(3896)) & -! JVS(3896) = Jac_FULL(279,249) - JVS(3896) = 0 +! JVS(3896) = Jac_FULL(284,164) + JVS(3896) = B(1505) IF (DO_JVS(3897)) & -! JVS(3897) = Jac_FULL(279,250) - JVS(3897) = 0 +! JVS(3897) = Jac_FULL(284,165) + JVS(3897) = 0.042*B(786)+B(1488) IF (DO_JVS(3898)) & -! JVS(3898) = Jac_FULL(279,251) - JVS(3898) = 0 +! JVS(3898) = Jac_FULL(284,166) + JVS(3898) = B(884)-0.418*B(886)+B(888) IF (DO_JVS(3899)) & -! JVS(3899) = Jac_FULL(279,252) - JVS(3899) = 0 +! JVS(3899) = Jac_FULL(284,167) + JVS(3899) = B(870)-0.941*B(871)+0.272*B(873) IF (DO_JVS(3900)) & -! JVS(3900) = Jac_FULL(279,253) - JVS(3900) = 0 +! JVS(3900) = Jac_FULL(284,168) + JVS(3900) = B(885)-0.494*B(892)+B(894) IF (DO_JVS(3901)) & -! JVS(3901) = Jac_FULL(279,254) - JVS(3901) = 0 +! JVS(3901) = Jac_FULL(284,169) + JVS(3901) = B(1023)+B(1475) IF (DO_JVS(3902)) & -! JVS(3902) = Jac_FULL(279,255) - JVS(3902) = B(149) +! JVS(3902) = Jac_FULL(284,170) + JVS(3902) = 0.1*B(642) IF (DO_JVS(3903)) & -! JVS(3903) = Jac_FULL(279,256) - JVS(3903) = B(1314)+B(1316)+B(1318)+B(1320) +! JVS(3903) = Jac_FULL(284,171) + JVS(3903) = 0.024*B(784)+B(1487) IF (DO_JVS(3904)) & -! JVS(3904) = Jac_FULL(279,257) - JVS(3904) = 0 +! JVS(3904) = Jac_FULL(284,172) + JVS(3904) = B(1472) IF (DO_JVS(3905)) & -! JVS(3905) = Jac_FULL(279,258) - JVS(3905) = 0 +! JVS(3905) = Jac_FULL(284,175) + JVS(3905) = B(1484) IF (DO_JVS(3906)) & -! JVS(3906) = Jac_FULL(279,259) - JVS(3906) = -B(1278) +! JVS(3906) = Jac_FULL(284,177) + JVS(3906) = B(372)-B(376) IF (DO_JVS(3907)) & -! JVS(3907) = Jac_FULL(279,260) - JVS(3907) = B(70) +! JVS(3907) = Jac_FULL(284,179) + JVS(3907) = -B(1099)+0.6*B(1105) IF (DO_JVS(3908)) & -! JVS(3908) = Jac_FULL(279,261) - JVS(3908) = B(98) +! JVS(3908) = Jac_FULL(284,180) + JVS(3908) = -B(1150)+B(1181) IF (DO_JVS(3909)) & -! JVS(3909) = Jac_FULL(279,262) - JVS(3909) = B(66) +! JVS(3909) = Jac_FULL(284,181) + JVS(3909) = 0.33*B(1497) IF (DO_JVS(3910)) & -! JVS(3910) = Jac_FULL(279,263) - JVS(3910) = 0 +! JVS(3910) = Jac_FULL(284,182) + JVS(3910) = B(789)-0.725*B(793) IF (DO_JVS(3911)) & -! JVS(3911) = Jac_FULL(279,264) - JVS(3911) = B(625) +! JVS(3911) = Jac_FULL(284,183) + JVS(3911) = B(796)-0.725*B(800) IF (DO_JVS(3912)) & -! JVS(3912) = Jac_FULL(279,265) - JVS(3912) = 0 +! JVS(3912) = Jac_FULL(284,184) + JVS(3912) = B(1124)+B(1126)+2*B(1128)+B(1130) IF (DO_JVS(3913)) & -! JVS(3913) = Jac_FULL(279,266) - JVS(3913) = -B(1348) +! JVS(3913) = Jac_FULL(284,185) + JVS(3913) = 1.5*B(1476) IF (DO_JVS(3914)) & -! JVS(3914) = Jac_FULL(279,267) - JVS(3914) = B(481)+B(1304)+B(1306)+B(1308)+B(1310) +! JVS(3914) = Jac_FULL(284,186) + JVS(3914) = 0.085*B(758)+0.112*B(1489) IF (DO_JVS(3915)) & -! JVS(3915) = Jac_FULL(279,268) - JVS(3915) = -B(363) +! JVS(3915) = Jac_FULL(284,187) + JVS(3915) = -B(807) IF (DO_JVS(3916)) & -! JVS(3916) = Jac_FULL(279,269) - JVS(3916) = B(35)+B(37)+B(40)+B(47)+B(59)+B(61)+B(63)+B(65)+B(67)+B(71)+B(75)+B(80)+B(91)+B(99)+B(108)+B(146)+B(148)& - &+B(150)+B(159)+B(177)+B(325)+B(362)+B(385)+B(479)+B(482)+B(488)+B(494)+B(496)+B(498)+B(500)+B(502)+B(624)& - &+B(626)+B(636) +! JVS(3916) = Jac_FULL(284,188) + JVS(3916) = 0.165*B(760)+0.182*B(1490) IF (DO_JVS(3917)) & -! JVS(3917) = Jac_FULL(279,270) - JVS(3917) = 0 +! JVS(3917) = Jac_FULL(284,189) + JVS(3917) = -0.42*B(957)+0.904*B(963) IF (DO_JVS(3918)) & -! JVS(3918) = Jac_FULL(279,271) - JVS(3918) = B(480)+B(1305)+B(1317) +! JVS(3918) = Jac_FULL(284,190) + JVS(3918) = 0.2*B(344) IF (DO_JVS(3919)) & -! JVS(3919) = Jac_FULL(279,272) - JVS(3919) = B(326)+B(1307)+B(1315) +! JVS(3919) = Jac_FULL(284,191) + JVS(3919) = -B(1167)+B(1179) IF (DO_JVS(3920)) & -! JVS(3920) = Jac_FULL(279,273) - JVS(3920) = 0 +! JVS(3920) = Jac_FULL(284,192) + JVS(3920) = 0.283*B(766) IF (DO_JVS(3921)) & -! JVS(3921) = Jac_FULL(279,274) - JVS(3921) = 0 +! JVS(3921) = Jac_FULL(284,194) + JVS(3921) = -0.35*B(835)+B(839)+B(841) IF (DO_JVS(3922)) & -! JVS(3922) = Jac_FULL(279,275) - JVS(3922) = 0 +! JVS(3922) = Jac_FULL(284,200) + JVS(3922) = B(1483) IF (DO_JVS(3923)) & -! JVS(3923) = Jac_FULL(279,276) - JVS(3923) = 0 +! JVS(3923) = Jac_FULL(284,201) + JVS(3923) = -B(171)+0.5*B(191) IF (DO_JVS(3924)) & -! JVS(3924) = Jac_FULL(279,277) - JVS(3924) = 0 +! JVS(3924) = Jac_FULL(284,202) + JVS(3924) = 0.27*B(1398) IF (DO_JVS(3925)) & -! JVS(3925) = Jac_FULL(279,278) - JVS(3925) = B(1309)+B(1319) +! JVS(3925) = Jac_FULL(284,204) + JVS(3925) = -0.695*B(1027)+0.242*B(1029) IF (DO_JVS(3926)) & -! JVS(3926) = Jac_FULL(279,279) - JVS(3926) = -B(364)-B(648)-2*B(650)-B(664)-B(666)-B(1262)-B(1275)-B(1279)-B(1349) +! JVS(3926) = Jac_FULL(284,205) + JVS(3926) = -0.493*B(1033)+0.86*B(1040) IF (DO_JVS(3927)) & -! JVS(3927) = Jac_FULL(279,280) - JVS(3927) = 0 +! JVS(3927) = Jac_FULL(284,206) + JVS(3927) = 0.5*B(1063)+1.5*B(1502)+B(1503) IF (DO_JVS(3928)) & -! JVS(3928) = Jac_FULL(279,281) - JVS(3928) = B(38)+B(416)+B(1256) +! JVS(3928) = Jac_FULL(284,207) + JVS(3928) = -B(1035) IF (DO_JVS(3929)) & -! JVS(3929) = Jac_FULL(279,282) - JVS(3929) = 0 +! JVS(3929) = Jac_FULL(284,208) + JVS(3929) = B(1459) IF (DO_JVS(3930)) & -! JVS(3930) = Jac_FULL(279,283) - JVS(3930) = B(1311)+B(1321) +! JVS(3930) = Jac_FULL(284,209) + JVS(3930) = B(120)+B(159)-B(205)+0.9*B(270) IF (DO_JVS(3931)) & -! JVS(3931) = Jac_FULL(279,284) - JVS(3931) = 0 +! JVS(3931) = Jac_FULL(284,210) + JVS(3931) = B(1515) IF (DO_JVS(3932)) & -! JVS(3932) = Jac_FULL(279,285) - JVS(3932) = B(554) +! JVS(3932) = Jac_FULL(284,211) + JVS(3932) = B(87) IF (DO_JVS(3933)) & -! JVS(3933) = Jac_FULL(279,286) - JVS(3933) = 0 +! JVS(3933) = Jac_FULL(284,212) + JVS(3933) = B(40)+B(370)+B(472) IF (DO_JVS(3934)) & -! JVS(3934) = Jac_FULL(279,287) - JVS(3934) = 0 +! JVS(3934) = Jac_FULL(284,213) + JVS(3934) = B(1510) IF (DO_JVS(3935)) & -! JVS(3935) = Jac_FULL(280,56) - JVS(3935) = 2*B(587)+B(1480) +! JVS(3935) = Jac_FULL(284,214) + JVS(3935) = 0.4*B(868)+0.45*B(1496) IF (DO_JVS(3936)) & -! JVS(3936) = Jac_FULL(280,57) - JVS(3936) = 2*B(373) +! JVS(3936) = Jac_FULL(284,215) + JVS(3936) = B(658)-B(662)+2*B(666)+B(670)+B(674)+B(678)+0.5*B(679) IF (DO_JVS(3937)) & -! JVS(3937) = Jac_FULL(280,61) - JVS(3937) = B(419)-B(421) +! JVS(3937) = Jac_FULL(284,216) + JVS(3937) = -B(664)+0.5*B(668)+0.5*B(680) IF (DO_JVS(3938)) & -! JVS(3938) = Jac_FULL(280,90) - JVS(3938) = -B(609) +! JVS(3938) = Jac_FULL(284,217) + JVS(3938) = B(106)+B(175)+1.2*B(197)-B(199)+0.9*B(266)+B(520) IF (DO_JVS(3939)) & -! JVS(3939) = Jac_FULL(280,116) - JVS(3939) = -B(895) +! JVS(3939) = Jac_FULL(284,218) + JVS(3939) = B(89)+B(524) IF (DO_JVS(3940)) & -! JVS(3940) = Jac_FULL(280,120) - JVS(3940) = -B(891) +! JVS(3940) = Jac_FULL(284,220) + JVS(3940) = 0.4*B(866)+0.45*B(1493) IF (DO_JVS(3941)) & -! JVS(3941) = Jac_FULL(280,141) - JVS(3941) = -B(1052) +! JVS(3941) = Jac_FULL(284,222) + JVS(3941) = -0.674*B(955)+0.5*B(959) IF (DO_JVS(3942)) & -! JVS(3942) = Jac_FULL(280,142) - JVS(3942) = -B(1058) +! JVS(3942) = Jac_FULL(284,223) + JVS(3942) = B(219)+B(223)+2*B(1382) IF (DO_JVS(3943)) & -! JVS(3943) = Jac_FULL(280,143) - JVS(3943) = -B(1026) +! JVS(3943) = Jac_FULL(284,224) + JVS(3943) = 0.16*B(704)+0.4*B(710)+0.7*B(712) IF (DO_JVS(3944)) & -! JVS(3944) = Jac_FULL(280,146) - JVS(3944) = -B(1020) +! JVS(3944) = Jac_FULL(284,225) + JVS(3944) = 0.686*B(646)-B(648)+B(650)+0.5*B(652)+B(654) IF (DO_JVS(3945)) & -! JVS(3945) = Jac_FULL(280,148) - JVS(3945) = -B(929)-B(931) +! JVS(3945) = Jac_FULL(284,227) + JVS(3945) = -B(580) IF (DO_JVS(3946)) & -! JVS(3946) = Jac_FULL(280,162) - JVS(3946) = -B(922)-B(924) +! JVS(3946) = Jac_FULL(284,228) + JVS(3946) = B(819)-0.35*B(821)+B(823) IF (DO_JVS(3947)) & -! JVS(3947) = Jac_FULL(280,163) - JVS(3947) = -B(943)-B(945) +! JVS(3947) = Jac_FULL(284,229) + JVS(3947) = B(827)+B(829)-0.35*B(833) IF (DO_JVS(3948)) & -! JVS(3948) = Jac_FULL(280,164) - JVS(3948) = -B(937)-B(939) +! JVS(3948) = Jac_FULL(284,230) + JVS(3948) = 0.47*B(1477) IF (DO_JVS(3949)) & -! JVS(3949) = Jac_FULL(280,175) - JVS(3949) = -B(1150) +! JVS(3949) = Jac_FULL(284,231) + JVS(3949) = B(1480) IF (DO_JVS(3950)) & -! JVS(3950) = Jac_FULL(280,176) - JVS(3950) = -B(1201) +! JVS(3950) = Jac_FULL(284,232) + JVS(3950) = -0.621*B(898)+B(900) IF (DO_JVS(3951)) & -! JVS(3951) = Jac_FULL(280,178) - JVS(3951) = -B(1173) +! JVS(3951) = Jac_FULL(284,233) + JVS(3951) = B(1385) IF (DO_JVS(3952)) & -! JVS(3952) = Jac_FULL(280,179) - JVS(3952) = -B(838)-B(840) +! JVS(3952) = Jac_FULL(284,234) + JVS(3952) = 0 IF (DO_JVS(3953)) & -! JVS(3953) = Jac_FULL(280,180) - JVS(3953) = -B(845)-B(847) +! JVS(3953) = Jac_FULL(284,236) + JVS(3953) = 0.773*B(213)+1.73*B(1381) IF (DO_JVS(3954)) & -! JVS(3954) = Jac_FULL(280,182) - JVS(3954) = 0 +! JVS(3954) = Jac_FULL(284,237) + JVS(3954) = B(116)+B(157)-B(203)+0.9*B(272) IF (DO_JVS(3955)) & -! JVS(3955) = Jac_FULL(280,183) - JVS(3955) = -B(852)-B(854) +! JVS(3955) = Jac_FULL(284,238) + JVS(3955) = 0.82*B(622)-B(624)+B(626)+0.5*B(628)+B(630) IF (DO_JVS(3956)) & -! JVS(3956) = Jac_FULL(280,184) - JVS(3956) = 0 +! JVS(3956) = Jac_FULL(284,239) + JVS(3956) = B(110)+B(177)+1.2*B(198)-B(201)+0.9*B(268)+B(522) IF (DO_JVS(3957)) & -! JVS(3957) = Jac_FULL(280,185) - JVS(3957) = -B(1012)-B(1014) +! JVS(3957) = Jac_FULL(284,240) + JVS(3957) = 0.295*B(969)+0.161*B(1500) IF (DO_JVS(3958)) & -! JVS(3958) = Jac_FULL(280,187) - JVS(3958) = -B(1212) +! JVS(3958) = Jac_FULL(284,241) + JVS(3958) = 0.29*B(1482) IF (DO_JVS(3959)) & -! JVS(3959) = Jac_FULL(280,188) - JVS(3959) = B(1409) +! JVS(3959) = Jac_FULL(284,242) + JVS(3959) = 0.62*B(1073)+0.7*B(1507)+0.7*B(1508) IF (DO_JVS(3960)) & -! JVS(3960) = Jac_FULL(280,190) - JVS(3960) = -B(886)-B(888) +! JVS(3960) = Jac_FULL(284,243) + JVS(3960) = 0.228*B(1501) IF (DO_JVS(3961)) & -! JVS(3961) = Jac_FULL(280,191) - JVS(3961) = -B(657) +! JVS(3961) = Jac_FULL(284,244) + JVS(3961) = -0.937*B(718)-B(720)+0.7*B(725)+2*B(727)+2*B(728)+B(731)+B(732)+2*B(738)+1.5*B(740)+B(752)+0.45*B(756) IF (DO_JVS(3962)) & -! JVS(3962) = Jac_FULL(280,197) - JVS(3962) = -B(141) +! JVS(3962) = Jac_FULL(284,245) + JVS(3962) = -0.937*B(714)-B(716)+0.4*B(723)+2*B(726)+2*B(729)+B(730)+B(733)+2*B(734)+1.5*B(736)+B(744)+0.45*B(748) IF (DO_JVS(3963)) & -! JVS(3963) = Jac_FULL(280,199) - JVS(3963) = 0 +! JVS(3963) = Jac_FULL(284,246) + JVS(3963) = -B(908)+0.089*B(911)+0.064*B(913)+0.336*B(914)+0.159*B(920)+0.159*B(924)+0.159*B(930) IF (DO_JVS(3964)) & -! JVS(3964) = Jac_FULL(280,200) - JVS(3964) = -B(1078)-B(1080) +! JVS(3964) = Jac_FULL(284,247) + JVS(3964) = -B(906)+0.089*B(912)+0.611*B(916) IF (DO_JVS(3965)) & -! JVS(3965) = Jac_FULL(280,201) - JVS(3965) = -B(1089)-B(1091) +! JVS(3965) = Jac_FULL(284,248) + JVS(3965) = 0.1*B(983)+B(1387) IF (DO_JVS(3966)) & -! JVS(3966) = Jac_FULL(280,203) - JVS(3966) = -B(1093) +! JVS(3966) = Jac_FULL(284,249) + JVS(3966) = -B(1048)+0.7*B(1056) IF (DO_JVS(3967)) & -! JVS(3967) = Jac_FULL(280,204) - JVS(3967) = -B(123) +! JVS(3967) = Jac_FULL(284,250) + JVS(3967) = B(227)+B(1390) IF (DO_JVS(3968)) & -! JVS(3968) = Jac_FULL(280,206) - JVS(3968) = 0 +! JVS(3968) = Jac_FULL(284,251) + JVS(3968) = 0.036*B(985)+B(1389) IF (DO_JVS(3969)) & -! JVS(3969) = Jac_FULL(280,210) - JVS(3969) = 0 +! JVS(3969) = Jac_FULL(284,252) + JVS(3969) = -B(165)+0.3*B(185) IF (DO_JVS(3970)) & -! JVS(3970) = Jac_FULL(280,211) - JVS(3970) = -B(707) +! JVS(3970) = Jac_FULL(284,253) + JVS(3970) = 0.28*B(211) IF (DO_JVS(3971)) & -! JVS(3971) = Jac_FULL(280,212) - JVS(3971) = -B(709) +! JVS(3971) = Jac_FULL(284,254) + JVS(3971) = -B(167)+0.5*B(187) IF (DO_JVS(3972)) & -! JVS(3972) = Jac_FULL(280,213) - JVS(3972) = -B(109)-B(111) +! JVS(3972) = Jac_FULL(284,255) + JVS(3972) = -B(207)+B(276) IF (DO_JVS(3973)) & -! JVS(3973) = Jac_FULL(280,216) - JVS(3973) = 0 +! JVS(3973) = Jac_FULL(284,256) + JVS(3973) = 0.27*B(124)-B(161)+0.64*B(181)+0.243*B(254) IF (DO_JVS(3974)) & -! JVS(3974) = Jac_FULL(280,217) - JVS(3974) = -B(1008)-B(1010) +! JVS(3974) = Jac_FULL(284,257) + JVS(3974) = -B(163)+0.5*B(183) IF (DO_JVS(3975)) & -! JVS(3975) = Jac_FULL(280,220) - JVS(3975) = 0 +! JVS(3975) = Jac_FULL(284,258) + JVS(3975) = B(134)-B(169)+B(189)+0.9*B(260) IF (DO_JVS(3976)) & -! JVS(3976) = Jac_FULL(280,221) - JVS(3976) = -B(695) +! JVS(3976) = Jac_FULL(284,259) + JVS(3976) = B(1377) IF (DO_JVS(3977)) & -! JVS(3977) = Jac_FULL(280,223) - JVS(3977) = -B(629) +! JVS(3977) = Jac_FULL(284,261) + JVS(3977) = 0.9*B(252)+0.243*B(255)+0.9*B(261)+0.9*B(267)+0.9*B(269)+0.9*B(271)+0.9*B(273)+0.5*B(629)+0.5*B(653)& + &+B(671)+0.159*B(921)-B(1081)+B(1131) IF (DO_JVS(3978)) & -! JVS(3978) = Jac_FULL(280,224) - JVS(3978) = -B(872)-B(874) +! JVS(3978) = Jac_FULL(284,263) + JVS(3978) = B(63)+B(93)+B(314)+B(386)+B(466)+B(1365) IF (DO_JVS(3979)) & -! JVS(3979) = Jac_FULL(280,225) - JVS(3979) = -B(878)-B(880) +! JVS(3979) = Jac_FULL(284,264) + JVS(3979) = 0.05*B(95)+B(1374) IF (DO_JVS(3980)) & -! JVS(3980) = Jac_FULL(280,229) - JVS(3980) = -B(949)-B(951) +! JVS(3980) = Jac_FULL(284,266) + JVS(3980) = B(34)+B(49)-B(53)+2*B(56)+1.74*B(57)+B(158)+B(160)+B(176)+B(178)+0.64*B(182)+0.5*B(184)+0.3*B(186)+0.5& + &*B(188)+B(190)+0.5*B(192)+0.9*B(253)+B(277)+B(430)+B(514)+B(627)+B(651)+2*B(667)+0.5*B(669)+2*B(735)+1.5& + &*B(737)+2*B(739)+1.5*B(741)+0.336*B(915)+0.611*B(917)+0.7*B(1057)+0.6*B(1106)+2*B(1129)+B(1180)+B(1182)& + &+B(1205) IF (DO_JVS(3981)) & -! JVS(3981) = Jac_FULL(280,230) - JVS(3981) = -B(643) +! JVS(3981) = Jac_FULL(284,267) + JVS(3981) = B(45) IF (DO_JVS(3982)) & -! JVS(3982) = Jac_FULL(280,231) +! JVS(3982) = Jac_FULL(284,268) JVS(3982) = 0 IF (DO_JVS(3983)) & -! JVS(3983) = Jac_FULL(280,233) - JVS(3983) = -B(119)-B(121) +! JVS(3983) = Jac_FULL(284,269) + JVS(3983) = -B(572) IF (DO_JVS(3984)) & -! JVS(3984) = Jac_FULL(280,234) - JVS(3984) = -B(671) +! JVS(3984) = Jac_FULL(284,270) + JVS(3984) = 0 IF (DO_JVS(3985)) & -! JVS(3985) = Jac_FULL(280,235) - JVS(3985) = -B(113) +! JVS(3985) = Jac_FULL(284,272) + JVS(3985) = 0.2*B(345) IF (DO_JVS(3986)) & -! JVS(3986) = Jac_FULL(280,236) - JVS(3986) = 0 +! JVS(3986) = Jac_FULL(284,273) + JVS(3986) = -B(294)+B(315) IF (DO_JVS(3987)) & -! JVS(3987) = Jac_FULL(280,238) - JVS(3987) = 0 +! JVS(3987) = Jac_FULL(284,274) + JVS(3987) = -B(292)+B(310) IF (DO_JVS(3988)) & -! JVS(3988) = Jac_FULL(280,239) +! JVS(3988) = Jac_FULL(284,275) JVS(3988) = 0 IF (DO_JVS(3989)) & -! JVS(3989) = Jac_FULL(280,240) - JVS(3989) = -B(975)-B(977) +! JVS(3989) = Jac_FULL(284,276) + JVS(3989) = B(288) IF (DO_JVS(3990)) & -! JVS(3990) = Jac_FULL(280,241) - JVS(3990) = -B(979)-B(981) +! JVS(3990) = Jac_FULL(284,277) + JVS(3990) = 0 IF (DO_JVS(3991)) & -! JVS(3991) = Jac_FULL(280,242) - JVS(3991) = -B(791)-B(793)-B(795)-B(797) +! JVS(3991) = Jac_FULL(284,278) + JVS(3991) = 0 IF (DO_JVS(3992)) & -! JVS(3992) = Jac_FULL(280,243) - JVS(3992) = -B(799)-B(801)-B(803)-B(805) +! JVS(3992) = Jac_FULL(284,279) + JVS(3992) = -B(42)+B(50)+B(107)+B(111)+B(117)+B(121)+0.27*B(125)+B(135)+0.82*B(623)+0.686*B(647)+B(659)+B(745)+0.45& + &*B(749)+B(753)+0.45*B(757)+B(790)+B(797)+B(824)+B(830)+B(840)+0.272*B(874)+B(881)+B(889)+B(895)+B(901)& + &+0.159*B(931)+0.5*B(960)+0.904*B(964)+0.33*B(972)+0.89*B(978)+0.242*B(1030)+0.86*B(1041)+B(1125) IF (DO_JVS(3993)) & -! JVS(3993) = Jac_FULL(280,244) +! JVS(3993) = Jac_FULL(284,280) JVS(3993) = 0 IF (DO_JVS(3994)) & -! JVS(3994) = Jac_FULL(280,245) - JVS(3994) = -B(1099) +! JVS(3994) = Jac_FULL(284,281) + JVS(3994) = -B(78)+B(82)+B(94)+B(224)+B(631)+B(655)+B(675)+0.159*B(925)+B(1127)+B(1206) IF (DO_JVS(3995)) & -! JVS(3995) = Jac_FULL(280,247) - JVS(3995) = 0 +! JVS(3995) = Jac_FULL(284,282) + JVS(3995) = B(28)-B(30)+B(35)+0.28*B(212)+0.1*B(633)+0.1*B(635)+0.1*B(643)+0.16*B(705)+0.1*B(984)+B(1143)+0.1*B(1186)& + &+0.1*B(1191) IF (DO_JVS(3996)) & -! JVS(3996) = Jac_FULL(280,248) - JVS(3996) = -B(133) +! JVS(3996) = Jac_FULL(284,283) + JVS(3996) = 0 IF (DO_JVS(3997)) & -! JVS(3997) = Jac_FULL(280,249) - JVS(3997) = -B(135) +! JVS(3997) = Jac_FULL(284,284) + JVS(3997) = -B(31)-B(38)-B(43)-2*B(44)-B(54)-B(73)-B(79)-B(162)-B(164)-B(166)-B(168)-B(170)-B(172)-B(200)-B(202)& + &-B(204)-B(206)-B(208)-B(293)-B(295)-B(354)-B(377)-B(474)-B(476)-B(480)-B(573)-B(581)-B(625)-B(649)-B(663)& + &-B(665)-0.937*B(715)-B(717)-0.937*B(719)-B(721)-0.725*B(794)-0.725*B(801)-B(808)-0.35*B(822)-0.35*B(834)& + &-0.35*B(836)-B(845)-B(849)-0.941*B(872)-0.401*B(879)-0.418*B(887)-0.494*B(893)-0.621*B(899)-B(907)-B(909)& + &-0.674*B(956)-0.42*B(958)-0.67*B(974)-0.27*B(980)-B(1006)-B(1012)-0.695*B(1028)-0.493*B(1034)-B(1036)& + &-B(1049)-B(1082)-B(1100)-B(1151)-B(1168)-B(1209) IF (DO_JVS(3998)) & -! JVS(3998) = Jac_FULL(280,250) - JVS(3998) = -B(154) +! JVS(3998) = Jac_FULL(284,285) + JVS(3998) = B(431)+B(432)-B(481) IF (DO_JVS(3999)) & -! JVS(3999) = Jac_FULL(280,251) - JVS(3999) = -B(131) +! JVS(3999) = Jac_FULL(284,286) + JVS(3999) = B(29)-B(39)+B(41)+B(46)+1.74*B(58)+B(64)+B(83)+B(88)+B(90)+0.05*B(96)+B(194)+B(196)+0.773*B(214)+B(220)& + &+B(228)+B(289)+B(311)+B(333)+B(433)+B(449)+B(451)+B(453)+0.4*B(711)+0.7*B(713)+0.085*B(759)+0.165*B(761)& + &+0.283*B(767)+B(771)+0.25*B(781)+0.33*B(783)+0.024*B(785)+0.042*B(787)+0.75*B(810)+B(812)+B(816)+0.4*B(867)& + &+0.4*B(869)+0.295*B(970)+0.036*B(986)+0.715*B(1016)+B(1020)+B(1024)+B(1026)+0.5*B(1064)+0.444*B(1066)+0.62& + &*B(1074)+0.5*B(1080)+0.364*B(1098)+0.54*B(1117)+0.19*B(1119)+0.15*B(1121)+0.8*B(1133)+0.727*B(1137)+0.33& + &*B(1184)+0.33*B(1189) IF (DO_JVS(4000)) & -! JVS(4000) = Jac_FULL(280,252) - JVS(4000) = -B(127)-B(129) +! JVS(4000) = Jac_FULL(284,287) + JVS(4000) = 0 IF (DO_JVS(4001)) & -! JVS(4001) = Jac_FULL(280,253) - JVS(4001) = -B(137)-B(139) +! JVS(4001) = Jac_FULL(284,288) + JVS(4001) = -B(355)+B(371)+B(387) IF (DO_JVS(4002)) & -! JVS(4002) = Jac_FULL(280,254) +! JVS(4002) = Jac_FULL(284,289) JVS(4002) = 0 IF (DO_JVS(4003)) & -! JVS(4003) = Jac_FULL(280,255) - JVS(4003) = 0 +! JVS(4003) = Jac_FULL(284,290) + JVS(4003) = B(467)+B(473)-B(475)-B(477)+B(507)+B(509)+B(511)+B(515)+B(521)+B(523)+B(525) IF (DO_JVS(4004)) & -! JVS(4004) = Jac_FULL(280,257) - JVS(4004) = -B(105) +! JVS(4004) = Jac_FULL(284,291) + JVS(4004) = -B(74) IF (DO_JVS(4005)) & -! JVS(4005) = Jac_FULL(280,258) - JVS(4005) = 0 +! JVS(4005) = Jac_FULL(285,52) + JVS(4005) = 0.79*B(394) IF (DO_JVS(4006)) & -! JVS(4006) = Jac_FULL(280,260) - JVS(4006) = 0 +! JVS(4006) = Jac_FULL(285,53) + JVS(4006) = 0.9*B(406) IF (DO_JVS(4007)) & -! JVS(4007) = Jac_FULL(280,261) - JVS(4007) = 0 +! JVS(4007) = Jac_FULL(285,54) + JVS(4007) = 0.86*B(408) IF (DO_JVS(4008)) & -! JVS(4008) = Jac_FULL(280,262) - JVS(4008) = 0 +! JVS(4008) = Jac_FULL(285,55) + JVS(4008) = 0.8*B(420) IF (DO_JVS(4009)) & -! JVS(4009) = Jac_FULL(280,263) - JVS(4009) = -B(48)-B(50) +! JVS(4009) = Jac_FULL(285,56) + JVS(4009) = 0.85*B(422) IF (DO_JVS(4010)) & -! JVS(4010) = Jac_FULL(280,264) - JVS(4010) = 0 +! JVS(4010) = Jac_FULL(285,57) + JVS(4010) = 0.86*B(424) IF (DO_JVS(4011)) & -! JVS(4011) = Jac_FULL(280,265) - JVS(4011) = -B(585) +! JVS(4011) = Jac_FULL(285,59) + JVS(4011) = 0.34*B(410) IF (DO_JVS(4012)) & -! JVS(4012) = Jac_FULL(280,266) - JVS(4012) = 0 +! JVS(4012) = Jac_FULL(285,75) + JVS(4012) = 2*B(493) IF (DO_JVS(4013)) & -! JVS(4013) = Jac_FULL(280,268) - JVS(4013) = 2*B(374) +! JVS(4013) = Jac_FULL(285,81) + JVS(4013) = 0.79*B(418) IF (DO_JVS(4014)) & -! JVS(4014) = Jac_FULL(280,269) - JVS(4014) = -B(72) +! JVS(4014) = Jac_FULL(285,82) + JVS(4014) = 0.69*B(414) IF (DO_JVS(4015)) & -! JVS(4015) = Jac_FULL(280,270) - JVS(4015) = B(94)+B(399)+B(1403) +! JVS(4015) = Jac_FULL(285,83) + JVS(4015) = 0.65*B(416) IF (DO_JVS(4016)) & -! JVS(4016) = Jac_FULL(280,271) - JVS(4016) = 0 +! JVS(4016) = Jac_FULL(285,84) + JVS(4016) = 0.56*B(404) IF (DO_JVS(4017)) & -! JVS(4017) = Jac_FULL(280,272) - JVS(4017) = 0 +! JVS(4017) = Jac_FULL(285,103) + JVS(4017) = 0.1*B(494) IF (DO_JVS(4018)) & -! JVS(4018) = Jac_FULL(280,273) - JVS(4018) = -B(521) +! JVS(4018) = Jac_FULL(285,111) + JVS(4018) = B(1414) IF (DO_JVS(4019)) & -! JVS(4019) = Jac_FULL(280,274) - JVS(4019) = -B(329) +! JVS(4019) = Jac_FULL(285,149) + JVS(4019) = 0.46*B(396) IF (DO_JVS(4020)) & -! JVS(4020) = Jac_FULL(280,275) - JVS(4020) = 0 +! JVS(4020) = Jac_FULL(285,197) + JVS(4020) = 0.75*B(392) IF (DO_JVS(4021)) & -! JVS(4021) = Jac_FULL(280,276) - JVS(4021) = 0 +! JVS(4021) = Jac_FULL(285,217) + JVS(4021) = B(520) IF (DO_JVS(4022)) & -! JVS(4022) = Jac_FULL(280,277) - JVS(4022) = -B(25) +! JVS(4022) = Jac_FULL(285,227) + JVS(4022) = -B(568) IF (DO_JVS(4023)) & -! JVS(4023) = Jac_FULL(280,278) +! JVS(4023) = Jac_FULL(285,235) JVS(4023) = 0 IF (DO_JVS(4024)) & -! JVS(4024) = Jac_FULL(280,279) - JVS(4024) = 0 +! JVS(4024) = Jac_FULL(285,239) + JVS(4024) = B(522) IF (DO_JVS(4025)) & -! JVS(4025) = Jac_FULL(280,280) - JVS(4025) = -B(26)-B(41)-B(49)-B(51)-B(73)-B(83)-B(106)-B(110)-B(112)-B(114)-B(120)-B(122)-B(124)-B(128)-B(130)-B(132)& - &-B(134)-B(136)-B(138)-B(140)-B(142)-B(155)-B(330)-B(403)-B(422)-B(522)-B(586)-B(610)-B(630)-B(644)-B(658)& - &-B(672)-B(696)-B(708)-B(710)-B(792)-B(794)-B(796)-B(798)-B(800)-B(802)-B(804)-B(806)-B(839)-B(841)-B(846)& - &-B(848)-B(853)-B(855)-B(873)-B(875)-B(879)-B(881)-B(887)-B(889)-B(892)-B(896)-B(923)-B(925)-B(930)-B(932)& - &-B(938)-B(940)-B(944)-B(946)-B(950)-B(952)-B(976)-B(978)-B(980)-B(982)-B(1009)-B(1011)-B(1013)-B(1015)& - &-B(1021)-B(1027)-B(1053)-B(1059)-B(1079)-B(1081)-B(1090)-B(1092)-B(1094)-B(1100)-B(1151)-B(1174)-B(1202)& - &-B(1213)-B(1498) +! JVS(4025) = Jac_FULL(285,254) + JVS(4025) = 0 IF (DO_JVS(4026)) & -! JVS(4026) = Jac_FULL(280,281) - JVS(4026) = -B(42) +! JVS(4026) = Jac_FULL(285,255) + JVS(4026) = 0 IF (DO_JVS(4027)) & -! JVS(4027) = Jac_FULL(280,282) +! JVS(4027) = Jac_FULL(285,256) JVS(4027) = 0 IF (DO_JVS(4028)) & -! JVS(4028) = Jac_FULL(280,283) +! JVS(4028) = Jac_FULL(285,257) JVS(4028) = 0 IF (DO_JVS(4029)) & -! JVS(4029) = Jac_FULL(280,284) - JVS(4029) = B(400)-B(404) +! JVS(4029) = Jac_FULL(285,259) + JVS(4029) = 0 IF (DO_JVS(4030)) & -! JVS(4030) = Jac_FULL(280,285) +! JVS(4030) = Jac_FULL(285,261) JVS(4030) = 0 IF (DO_JVS(4031)) & -! JVS(4031) = Jac_FULL(280,286) - JVS(4031) = 0 +! JVS(4031) = Jac_FULL(285,262) + JVS(4031) = B(502)+B(1418) IF (DO_JVS(4032)) & -! JVS(4032) = Jac_FULL(280,287) - JVS(4032) = -B(84)+B(95)+B(1413) +! JVS(4032) = Jac_FULL(285,264) + JVS(4032) = 0 IF (DO_JVS(4033)) & -! JVS(4033) = Jac_FULL(281,54) - JVS(4033) = 0.364*B(1146) +! JVS(4033) = Jac_FULL(285,266) + JVS(4033) = -B(430)+B(514) IF (DO_JVS(4034)) & -! JVS(4034) = Jac_FULL(281,60) - JVS(4034) = 0.54*B(1165) +! JVS(4034) = Jac_FULL(285,267) + JVS(4034) = 0 IF (DO_JVS(4035)) & -! JVS(4035) = Jac_FULL(281,68) - JVS(4035) = B(491)+B(551) +! JVS(4035) = Jac_FULL(285,268) + JVS(4035) = 0 IF (DO_JVS(4036)) & -! JVS(4036) = Jac_FULL(281,71) - JVS(4036) = B(1492) +! JVS(4036) = Jac_FULL(285,269) + JVS(4036) = 0 IF (DO_JVS(4037)) & -! JVS(4037) = Jac_FULL(281,73) - JVS(4037) = B(489)+B(549) +! JVS(4037) = Jac_FULL(285,270) + JVS(4037) = 0 IF (DO_JVS(4038)) & -! JVS(4038) = Jac_FULL(281,76) - JVS(4038) = 0.19*B(1167) +! JVS(4038) = Jac_FULL(285,271) + JVS(4038) = B(442) IF (DO_JVS(4039)) & -! JVS(4039) = Jac_FULL(281,77) - JVS(4039) = 0.15*B(1169) +! JVS(4039) = Jac_FULL(285,272) + JVS(4039) = 0.22*B(388)+0.75*B(393)+0.79*B(395)+0.46*B(397)+0.56*B(405)+0.9*B(407)+0.86*B(409)+0.34*B(411)+0.69*B(415)& + &+0.65*B(417)+0.79*B(419)+0.8*B(421)+0.85*B(423)+0.86*B(425) IF (DO_JVS(4040)) & -! JVS(4040) = Jac_FULL(281,83) - JVS(4040) = 0.5*B(1128) +! JVS(4040) = Jac_FULL(285,273) + JVS(4040) = 0 IF (DO_JVS(4041)) & -! JVS(4041) = Jac_FULL(281,86) - JVS(4041) = B(1510) +! JVS(4041) = Jac_FULL(285,274) + JVS(4041) = -B(496)-B(498)-B(500) IF (DO_JVS(4042)) & -! JVS(4042) = Jac_FULL(281,87) - JVS(4042) = B(1508) +! JVS(4042) = Jac_FULL(285,275) + JVS(4042) = 0.22*B(389) IF (DO_JVS(4043)) & -! JVS(4043) = Jac_FULL(281,88) - JVS(4043) = B(1509) +! JVS(4043) = Jac_FULL(285,276) + JVS(4043) = 0 IF (DO_JVS(4044)) & -! JVS(4044) = Jac_FULL(281,89) - JVS(4044) = B(1511) +! JVS(4044) = Jac_FULL(285,277) + JVS(4044) = 0 IF (DO_JVS(4045)) & -! JVS(4045) = Jac_FULL(281,91) - JVS(4045) = B(1436) +! JVS(4045) = Jac_FULL(285,278) + JVS(4045) = 0 IF (DO_JVS(4046)) & -! JVS(4046) = Jac_FULL(281,92) - JVS(4046) = B(1434) +! JVS(4046) = Jac_FULL(285,279) + JVS(4046) = -B(482) IF (DO_JVS(4047)) & -! JVS(4047) = Jac_FULL(281,93) - JVS(4047) = B(1435) +! JVS(4047) = Jac_FULL(285,280) + JVS(4047) = 0 IF (DO_JVS(4048)) & -! JVS(4048) = Jac_FULL(281,94) - JVS(4048) = B(1438) +! JVS(4048) = Jac_FULL(285,281) + JVS(4048) = 0 IF (DO_JVS(4049)) & -! JVS(4049) = Jac_FULL(281,97) - JVS(4049) = B(361) +! JVS(4049) = Jac_FULL(285,282) + JVS(4049) = B(468) IF (DO_JVS(4050)) & -! JVS(4050) = Jac_FULL(281,99) - JVS(4050) = B(1553) +! JVS(4050) = Jac_FULL(285,283) + JVS(4050) = 0 IF (DO_JVS(4051)) & -! JVS(4051) = Jac_FULL(281,100) - JVS(4051) = B(487)+B(547) +! JVS(4051) = Jac_FULL(285,284) + JVS(4051) = B(476)-B(480) IF (DO_JVS(4052)) & -! JVS(4052) = Jac_FULL(281,101) - JVS(4052) = B(78)+B(1411) +! JVS(4052) = Jac_FULL(285,285) + JVS(4052) = -B(431)-B(432)-B(434)-B(478)-B(481)-B(483)-B(484)-2*B(486)-2*B(487)-2*B(488)-2*B(492)-B(497)-B(499)-B(501)& + &-B(569)-B(1413) IF (DO_JVS(4053)) & -! JVS(4053) = Jac_FULL(281,102) - JVS(4053) = B(1156)+B(1157) +! JVS(4053) = Jac_FULL(285,286) + JVS(4053) = -B(433)-B(435)+B(443) IF (DO_JVS(4054)) & -! JVS(4054) = Jac_FULL(281,104) - JVS(4054) = B(1514) +! JVS(4054) = Jac_FULL(285,287) + JVS(4054) = 0 IF (DO_JVS(4055)) & -! JVS(4055) = Jac_FULL(281,106) - JVS(4055) = B(819) +! JVS(4055) = Jac_FULL(285,288) + JVS(4055) = -B(479)+B(503) IF (DO_JVS(4056)) & -! JVS(4056) = Jac_FULL(281,108) - JVS(4056) = B(1433) +! JVS(4056) = Jac_FULL(285,289) + JVS(4056) = 0 IF (DO_JVS(4057)) & -! JVS(4057) = Jac_FULL(281,109) - JVS(4057) = 0.727*B(1185) +! JVS(4057) = Jac_FULL(285,290) + JVS(4057) = B(469)+B(477)+0.1*B(495)+B(515)+B(521)+B(523) IF (DO_JVS(4058)) & -! JVS(4058) = Jac_FULL(281,110) - JVS(4058) = B(1437) +! JVS(4058) = Jac_FULL(285,291) + JVS(4058) = -B(485) IF (DO_JVS(4059)) & -! JVS(4059) = Jac_FULL(281,111) - JVS(4059) = B(1432) +! JVS(4059) = Jac_FULL(286,41) + JVS(4059) = -B(1207) IF (DO_JVS(4060)) & -! JVS(4060) = Jac_FULL(281,113) - JVS(4060) = 0 +! JVS(4060) = Jac_FULL(286,43) + JVS(4060) = -B(454) IF (DO_JVS(4061)) & -! JVS(4061) = Jac_FULL(281,114) - JVS(4061) = 0.75*B(858) +! JVS(4061) = Jac_FULL(286,46) + JVS(4061) = -B(586) IF (DO_JVS(4062)) & -! JVS(4062) = Jac_FULL(281,115) - JVS(4062) = B(1068) +! JVS(4062) = Jac_FULL(286,58) + JVS(4062) = -0.364*B(1097) IF (DO_JVS(4063)) & -! JVS(4063) = Jac_FULL(281,116) - JVS(4063) = -B(897) +! JVS(4063) = Jac_FULL(286,64) + JVS(4063) = -B(1116) IF (DO_JVS(4064)) & -! JVS(4064) = Jac_FULL(281,117) - JVS(4064) = 0.8*B(1181) +! JVS(4064) = Jac_FULL(286,66) + JVS(4064) = -B(360) IF (DO_JVS(4065)) & -! JVS(4065) = Jac_FULL(281,118) - JVS(4065) = B(1499) +! JVS(4065) = Jac_FULL(286,68) + JVS(4065) = -B(1110) IF (DO_JVS(4066)) & -! JVS(4066) = Jac_FULL(281,120) - JVS(4066) = -B(893) +! JVS(4066) = Jac_FULL(286,69) + JVS(4066) = -B(576) IF (DO_JVS(4067)) & -! JVS(4067) = Jac_FULL(281,122) - JVS(4067) = 0.444*B(1114)+1.454*B(1547) +! JVS(4067) = Jac_FULL(286,70) + JVS(4067) = -B(1156)+B(1513) IF (DO_JVS(4068)) & -! JVS(4068) = Jac_FULL(281,123) - JVS(4068) = B(983) +! JVS(4068) = Jac_FULL(286,71) + JVS(4068) = -B(330) IF (DO_JVS(4069)) & -! JVS(4069) = Jac_FULL(281,124) - JVS(4069) = B(1533) +! JVS(4069) = Jac_FULL(286,72) + JVS(4069) = -B(450) IF (DO_JVS(4070)) & -! JVS(4070) = Jac_FULL(281,126) - JVS(4070) = B(1532) +! JVS(4070) = Jac_FULL(286,75) + JVS(4070) = -B(438) IF (DO_JVS(4071)) & -! JVS(4071) = Jac_FULL(281,127) - JVS(4071) = B(860) +! JVS(4071) = Jac_FULL(286,76) + JVS(4071) = -B(1095) IF (DO_JVS(4072)) & -! JVS(4072) = Jac_FULL(281,128) - JVS(4072) = B(864) +! JVS(4072) = Jac_FULL(286,77) + JVS(4072) = -B(328) IF (DO_JVS(4073)) & -! JVS(4073) = Jac_FULL(281,129) - JVS(4073) = B(196) +! JVS(4073) = Jac_FULL(286,78) + JVS(4073) = -B(452) IF (DO_JVS(4074)) & -! JVS(4074) = Jac_FULL(281,130) - JVS(4074) = B(1074) +! JVS(4074) = Jac_FULL(286,79) + JVS(4074) = -B(1118) IF (DO_JVS(4075)) & -! JVS(4075) = Jac_FULL(281,134) - JVS(4075) = B(1405) +! JVS(4075) = Jac_FULL(286,80) + JVS(4075) = -B(1120) IF (DO_JVS(4076)) & -! JVS(4076) = Jac_FULL(281,136) - JVS(4076) = B(1535) +! JVS(4076) = Jac_FULL(286,81) + JVS(4076) = -B(462) IF (DO_JVS(4077)) & -! JVS(4077) = Jac_FULL(281,137) - JVS(4077) = B(1536) +! JVS(4077) = Jac_FULL(286,82) + JVS(4077) = -B(458) IF (DO_JVS(4078)) & -! JVS(4078) = Jac_FULL(281,138) - JVS(4078) = B(1191) +! JVS(4078) = Jac_FULL(286,83) + JVS(4078) = -B(460) IF (DO_JVS(4079)) & -! JVS(4079) = Jac_FULL(281,139) - JVS(4079) = 0.75*B(1545) +! JVS(4079) = Jac_FULL(286,84) + JVS(4079) = 0.05*B(404)-B(456) IF (DO_JVS(4080)) & -! JVS(4080) = Jac_FULL(281,141) - JVS(4080) = -B(1054) +! JVS(4080) = Jac_FULL(286,85) + JVS(4080) = -0.5*B(1079)+2*B(1471) IF (DO_JVS(4081)) & -! JVS(4081) = Jac_FULL(281,142) - JVS(4081) = -B(1060) +! JVS(4081) = Jac_FULL(286,86) + JVS(4081) = -B(23) IF (DO_JVS(4082)) & -! JVS(4082) = Jac_FULL(281,143) - JVS(4082) = 0.89*B(1026)-0.27*B(1028) +! JVS(4082) = Jac_FULL(286,87) + JVS(4082) = -B(700) IF (DO_JVS(4083)) & -! JVS(4083) = Jac_FULL(281,145) - JVS(4083) = 0.33*B(1237)+0.1*B(1239)+0.2*B(1241) +! JVS(4083) = Jac_FULL(286,88) + JVS(4083) = -0.78*B(247)+B(1399) IF (DO_JVS(4084)) & -! JVS(4084) = Jac_FULL(281,146) - JVS(4084) = 0.33*B(1020)-0.67*B(1022) +! JVS(4084) = Jac_FULL(286,89) + JVS(4084) = -B(696) IF (DO_JVS(4085)) & -! JVS(4085) = Jac_FULL(281,147) - JVS(4085) = 0.159*B(1539) +! JVS(4085) = Jac_FULL(286,90) + JVS(4085) = -B(282)-B(284) IF (DO_JVS(4086)) & -! JVS(4086) = Jac_FULL(281,148) - JVS(4086) = B(926)-0.401*B(927)+B(929) +! JVS(4086) = Jac_FULL(286,91) + JVS(4086) = -B(702) IF (DO_JVS(4087)) & -! JVS(4087) = Jac_FULL(281,150) - JVS(4087) = 0.1*B(681) +! JVS(4087) = Jac_FULL(286,93) + JVS(4087) = -0.21*B(239)+B(1395) IF (DO_JVS(4088)) & -! JVS(4088) = Jac_FULL(281,151) - JVS(4088) = 0.1*B(683) +! JVS(4088) = Jac_FULL(286,94) + JVS(4088) = -0.36*B(235)+B(1393) IF (DO_JVS(4089)) & -! JVS(4089) = Jac_FULL(281,152) - JVS(4089) = 0.571*B(1519) +! JVS(4089) = Jac_FULL(286,95) + JVS(4089) = -0.209*B(237)+B(1394) IF (DO_JVS(4090)) & -! JVS(4090) = Jac_FULL(281,153) - JVS(4090) = 0.25*B(829)+B(1526) +! JVS(4090) = Jac_FULL(286,96) + JVS(4090) = -B(698) IF (DO_JVS(4091)) & -! JVS(4091) = Jac_FULL(281,154) - JVS(4091) = B(198) +! JVS(4091) = Jac_FULL(286,97) + JVS(4091) = -B(1159) IF (DO_JVS(4092)) & -! JVS(4092) = Jac_FULL(281,155) - JVS(4092) = 0.33*B(1232)+0.1*B(1234)+0.2*B(1236) +! JVS(4092) = Jac_FULL(286,100) + JVS(4092) = -B(332) IF (DO_JVS(4093)) & -! JVS(4093) = Jac_FULL(281,158) - JVS(4093) = 0.33*B(831)+B(1527) +! JVS(4093) = Jac_FULL(286,101) + JVS(4093) = -B(1146) IF (DO_JVS(4094)) & -! JVS(4094) = Jac_FULL(281,159) - JVS(4094) = B(1546) +! JVS(4094) = Jac_FULL(286,102) + JVS(4094) = -B(76)+B(1369) IF (DO_JVS(4095)) & -! JVS(4095) = Jac_FULL(281,160) - JVS(4095) = 0.715*B(1064)+0.125*B(1520) +! JVS(4095) = Jac_FULL(286,104) + JVS(4095) = -B(1077) IF (DO_JVS(4096)) & -! JVS(4096) = Jac_FULL(281,161) - JVS(4096) = 0.042*B(835)+B(1529) +! JVS(4096) = Jac_FULL(286,105) + JVS(4096) = -0.3*B(1061) IF (DO_JVS(4097)) & -! JVS(4097) = Jac_FULL(281,162) - JVS(4097) = B(919)-0.941*B(920)+0.272*B(922) +! JVS(4097) = Jac_FULL(286,106) + JVS(4097) = -B(241)+B(1397) IF (DO_JVS(4098)) & -! JVS(4098) = Jac_FULL(281,163) - JVS(4098) = B(934)-0.494*B(941)+B(943) +! JVS(4098) = Jac_FULL(286,107) + JVS(4098) = -B(1169) IF (DO_JVS(4099)) & -! JVS(4099) = Jac_FULL(281,164) - JVS(4099) = B(933)-0.418*B(935)+B(937) +! JVS(4099) = Jac_FULL(286,109) + JVS(4099) = -B(770) IF (DO_JVS(4100)) & -! JVS(4100) = Jac_FULL(281,165) - JVS(4100) = 0.1*B(691) +! JVS(4100) = Jac_FULL(286,110) + JVS(4100) = -0.36*B(233)+B(1392) IF (DO_JVS(4101)) & -! JVS(4101) = Jac_FULL(281,166) - JVS(4101) = B(1072)+B(1516) +! JVS(4101) = Jac_FULL(286,111) + JVS(4101) = -B(436) IF (DO_JVS(4102)) & -! JVS(4102) = Jac_FULL(281,167) - JVS(4102) = 0.024*B(833)+B(1528) +! JVS(4102) = Jac_FULL(286,112) + JVS(4102) = -0.209*B(243)+B(1396) IF (DO_JVS(4103)) & -! JVS(4103) = Jac_FULL(281,168) - JVS(4103) = B(1513) +! JVS(4103) = Jac_FULL(286,113) + JVS(4103) = -0.209*B(231)+B(1391) IF (DO_JVS(4104)) & -! JVS(4104) = Jac_FULL(281,171) - JVS(4104) = B(1525) +! JVS(4104) = Jac_FULL(286,114) + JVS(4104) = -B(122) IF (DO_JVS(4105)) & -! JVS(4105) = Jac_FULL(281,173) - JVS(4105) = B(409)-B(413)-B(415)-B(417) +! JVS(4105) = Jac_FULL(286,115) + JVS(4105) = -B(1136) IF (DO_JVS(4106)) & -! JVS(4106) = Jac_FULL(281,175) - JVS(4106) = -B(1148)+0.6*B(1154) +! JVS(4106) = Jac_FULL(286,116) + JVS(4106) = -B(809) IF (DO_JVS(4107)) & -! JVS(4107) = Jac_FULL(281,176) - JVS(4107) = -B(1199)+B(1230) +! JVS(4107) = Jac_FULL(286,117) + JVS(4107) = -B(1019) IF (DO_JVS(4108)) & -! JVS(4108) = Jac_FULL(281,177) - JVS(4108) = 0.33*B(1538) +! JVS(4108) = Jac_FULL(286,118) + JVS(4108) = -B(1132) IF (DO_JVS(4109)) & -! JVS(4109) = Jac_FULL(281,178) - JVS(4109) = B(1173)+B(1175)+2*B(1177)+B(1179) +! JVS(4109) = Jac_FULL(286,119) + JVS(4109) = -0.51*B(656)+B(1458) IF (DO_JVS(4110)) & -! JVS(4110) = Jac_FULL(281,179) - JVS(4110) = B(838)-0.725*B(842) +! JVS(4110) = Jac_FULL(286,120) + JVS(4110) = -B(1112)+B(1511) IF (DO_JVS(4111)) & -! JVS(4111) = Jac_FULL(281,180) - JVS(4111) = B(845)-0.725*B(849) +! JVS(4111) = Jac_FULL(286,121) + JVS(4111) = B(842)+2*B(844) IF (DO_JVS(4112)) & -! JVS(4112) = Jac_FULL(281,181) - JVS(4112) = 1.5*B(1517) +! JVS(4112) = Jac_FULL(286,122) + JVS(4112) = 2*B(1456) IF (DO_JVS(4113)) & -! JVS(4113) = Jac_FULL(281,182) - JVS(4113) = 0.085*B(807)+0.112*B(1530) +! JVS(4113) = Jac_FULL(286,123) + JVS(4113) = B(846)+2*B(848) IF (DO_JVS(4114)) & -! JVS(4114) = Jac_FULL(281,183) - JVS(4114) = -B(856) +! JVS(4114) = Jac_FULL(286,124) + JVS(4114) = -B(112)-B(114) IF (DO_JVS(4115)) & -! JVS(4115) = Jac_FULL(281,184) - JVS(4115) = 0.165*B(809)+0.182*B(1531) +! JVS(4115) = Jac_FULL(286,125) + JVS(4115) = -0.556*B(1065)+0.546*B(1506) IF (DO_JVS(4116)) & -! JVS(4116) = Jac_FULL(281,185) - JVS(4116) = -0.42*B(1006)+0.904*B(1012) +! JVS(4116) = Jac_FULL(286,127) + JVS(4116) = B(1492) IF (DO_JVS(4117)) & -! JVS(4117) = Jac_FULL(281,186) - JVS(4117) = B(379) +! JVS(4117) = Jac_FULL(286,128) + JVS(4117) = -B(304) IF (DO_JVS(4118)) & -! JVS(4118) = Jac_FULL(281,187) - JVS(4118) = -B(1216)+B(1228) +! JVS(4118) = Jac_FULL(286,129) + JVS(4118) = B(1491) IF (DO_JVS(4119)) & -! JVS(4119) = Jac_FULL(281,189) - JVS(4119) = 0.283*B(815) +! JVS(4119) = Jac_FULL(286,130) + JVS(4119) = -B(811)-B(813) IF (DO_JVS(4120)) & -! JVS(4120) = Jac_FULL(281,190) - JVS(4120) = -0.35*B(884)+B(888)+B(890) +! JVS(4120) = Jac_FULL(286,131) + JVS(4120) = -B(815)-B(817) IF (DO_JVS(4121)) & -! JVS(4121) = Jac_FULL(281,195) - JVS(4121) = B(1524) +! JVS(4121) = Jac_FULL(286,132) + JVS(4121) = -B(1025) IF (DO_JVS(4122)) & -! JVS(4122) = Jac_FULL(281,197) - JVS(4122) = -B(174)+0.5*B(194) +! JVS(4122) = Jac_FULL(286,133) + JVS(4122) = -B(193) IF (DO_JVS(4123)) & -! JVS(4123) = Jac_FULL(281,198) - JVS(4123) = 0.27*B(1439) +! JVS(4123) = Jac_FULL(286,134) + JVS(4123) = -B(694) IF (DO_JVS(4124)) & -! JVS(4124) = Jac_FULL(281,200) - JVS(4124) = -0.695*B(1076)+0.242*B(1078) +! JVS(4124) = Jac_FULL(286,136) + JVS(4124) = -0.415*B(1037)+0.75*B(1481) IF (DO_JVS(4125)) & -! JVS(4125) = Jac_FULL(281,201) - JVS(4125) = -0.493*B(1082)+0.86*B(1089) +! JVS(4125) = Jac_FULL(286,137) + JVS(4125) = -0.7*B(59)+B(1364) IF (DO_JVS(4126)) & -! JVS(4126) = Jac_FULL(281,202) - JVS(4126) = 0.5*B(1112)+1.5*B(1543)+B(1544) +! JVS(4126) = Jac_FULL(286,139) + JVS(4126) = -B(850)-B(852) IF (DO_JVS(4127)) & -! JVS(4127) = Jac_FULL(281,203) - JVS(4127) = -B(1084) +! JVS(4127) = Jac_FULL(286,140) + JVS(4127) = -B(854)-B(856) IF (DO_JVS(4128)) & -! JVS(4128) = Jac_FULL(281,204) - JVS(4128) = B(123)+B(162)-B(210)+B(238) +! JVS(4128) = Jac_FULL(286,141) + JVS(4128) = 1.25*B(1504) IF (DO_JVS(4129)) & -! JVS(4129) = Jac_FULL(281,205) - JVS(4129) = B(1500) +! JVS(4129) = Jac_FULL(286,142) + JVS(4129) = -B(1140)+B(1142) IF (DO_JVS(4130)) & -! JVS(4130) = Jac_FULL(281,206) - JVS(4130) = B(1556) +! JVS(4130) = Jac_FULL(286,143) + JVS(4130) = -B(574) IF (DO_JVS(4131)) & -! JVS(4131) = Jac_FULL(281,207) - JVS(4131) = B(90) +! JVS(4131) = Jac_FULL(286,144) + JVS(4131) = B(1005) IF (DO_JVS(4132)) & -! JVS(4132) = Jac_FULL(281,208) - JVS(4132) = B(39)+B(407)+B(511) +! JVS(4132) = Jac_FULL(286,145) + JVS(4132) = B(1011) IF (DO_JVS(4133)) & -! JVS(4133) = Jac_FULL(281,209) - JVS(4133) = B(1551) +! JVS(4133) = Jac_FULL(286,146) + JVS(4133) = 0.82*B(979) IF (DO_JVS(4134)) & -! JVS(4134) = Jac_FULL(281,210) - JVS(4134) = 0.4*B(917)+0.45*B(1537) +! JVS(4134) = Jac_FULL(286,147) + JVS(4134) = 0 IF (DO_JVS(4135)) & -! JVS(4135) = Jac_FULL(281,211) - JVS(4135) = B(707)-B(711)+2*B(715)+B(719)+B(723)+B(727)+0.5*B(728) +! JVS(4135) = Jac_FULL(286,148) + JVS(4135) = -0.75*B(1188)+0.1*B(1190) IF (DO_JVS(4136)) & -! JVS(4136) = Jac_FULL(281,212) - JVS(4136) = -B(713)+0.5*B(717)+0.5*B(729) +! JVS(4136) = Jac_FULL(286,149) + JVS(4136) = -B(448) IF (DO_JVS(4137)) & -! JVS(4137) = Jac_FULL(281,213) - JVS(4137) = B(109)+B(178)+2*B(200)-B(204)+B(297)+B(561) +! JVS(4137) = Jac_FULL(286,150) + JVS(4137) = B(973) IF (DO_JVS(4138)) & -! JVS(4138) = Jac_FULL(281,214) - JVS(4138) = B(92)+B(565) +! JVS(4138) = Jac_FULL(286,151) + JVS(4138) = -B(939)-B(945)-B(949)+B(1498) IF (DO_JVS(4139)) & -! JVS(4139) = Jac_FULL(281,216) - JVS(4139) = 0.4*B(915)+0.45*B(1534) +! JVS(4139) = Jac_FULL(286,152) + JVS(4139) = 0.599*B(878) IF (DO_JVS(4140)) & -! JVS(4140) = Jac_FULL(281,217) - JVS(4140) = -0.674*B(1004)+0.5*B(1008) +! JVS(4140) = Jac_FULL(286,153) + JVS(4140) = -B(1059) IF (DO_JVS(4141)) & -! JVS(4141) = Jac_FULL(281,218) - JVS(4141) = B(224)+B(228)+2*B(1423) +! JVS(4141) = Jac_FULL(286,154) + JVS(4141) = -B(618)+0.85*B(632) IF (DO_JVS(4142)) & -! JVS(4142) = Jac_FULL(281,220) - JVS(4142) = 0.16*B(753)+0.4*B(759)+0.7*B(761) +! JVS(4142) = Jac_FULL(286,155) + JVS(4142) = -B(620)+0.85*B(634) IF (DO_JVS(4143)) & -! JVS(4143) = Jac_FULL(281,221) - JVS(4143) = 0.686*B(695)-B(697)+B(699)+0.5*B(701)+B(703) +! JVS(4143) = Jac_FULL(286,156) + JVS(4143) = B(1478) IF (DO_JVS(4144)) & -! JVS(4144) = Jac_FULL(281,223) - JVS(4144) = -B(627) +! JVS(4144) = Jac_FULL(286,157) + JVS(4144) = -B(772)-B(780)+B(1485) IF (DO_JVS(4145)) & -! JVS(4145) = Jac_FULL(281,224) - JVS(4145) = B(868)-0.35*B(870)+B(872) +! JVS(4145) = Jac_FULL(286,158) + JVS(4145) = -B(195) IF (DO_JVS(4146)) & -! JVS(4146) = Jac_FULL(281,225) - JVS(4146) = B(876)+B(878)-0.35*B(882) +! JVS(4146) = Jac_FULL(286,159) + JVS(4146) = -0.75*B(1183)+0.1*B(1185) IF (DO_JVS(4147)) & -! JVS(4147) = Jac_FULL(281,226) - JVS(4147) = 0.47*B(1518) +! JVS(4147) = Jac_FULL(286,161) + JVS(4147) = -B(104) IF (DO_JVS(4148)) & -! JVS(4148) = Jac_FULL(281,227) - JVS(4148) = B(1521) +! JVS(4148) = Jac_FULL(286,162) + JVS(4148) = -B(776)-B(782)+B(1486) IF (DO_JVS(4149)) & -! JVS(4149) = Jac_FULL(281,228) - JVS(4149) = B(1426) +! JVS(4149) = Jac_FULL(286,163) + JVS(4149) = -0.715*B(1015)+1.75*B(1479) IF (DO_JVS(4150)) & -! JVS(4150) = Jac_FULL(281,229) - JVS(4150) = -0.621*B(947)+B(949) +! JVS(4150) = Jac_FULL(286,164) + JVS(4150) = B(1505) IF (DO_JVS(4151)) & -! JVS(4151) = Jac_FULL(281,230) - JVS(4151) = 0 +! JVS(4151) = Jac_FULL(286,165) + JVS(4151) = -0.255*B(786)+B(1488) IF (DO_JVS(4152)) & -! JVS(4152) = Jac_FULL(281,232) - JVS(4152) = 0.773*B(218)+1.73*B(1422) +! JVS(4152) = Jac_FULL(286,166) + JVS(4152) = 0.582*B(886) IF (DO_JVS(4153)) & -! JVS(4153) = Jac_FULL(281,233) - JVS(4153) = B(119)+B(160)-B(208)+B(236) +! JVS(4153) = Jac_FULL(286,167) + JVS(4153) = 0.518*B(871) IF (DO_JVS(4154)) & -! JVS(4154) = Jac_FULL(281,234) - JVS(4154) = 0.82*B(671)-B(673)+B(675)+0.5*B(677)+B(679) +! JVS(4154) = Jac_FULL(286,168) + JVS(4154) = 0.506*B(892) IF (DO_JVS(4155)) & -! JVS(4155) = Jac_FULL(281,235) - JVS(4155) = B(113)+B(180)+2*B(201)-B(206)+B(299)+B(563) +! JVS(4155) = Jac_FULL(286,169) + JVS(4155) = -B(1023) IF (DO_JVS(4156)) & -! JVS(4156) = Jac_FULL(281,236) - JVS(4156) = 0.295*B(1018)+0.161*B(1541) +! JVS(4156) = Jac_FULL(286,170) + JVS(4156) = -B(640)+0.85*B(642) IF (DO_JVS(4157)) & -! JVS(4157) = Jac_FULL(281,237) - JVS(4157) = 0.29*B(1523) +! JVS(4157) = Jac_FULL(286,171) + JVS(4157) = -0.595*B(784)+B(1487) IF (DO_JVS(4158)) & -! JVS(4158) = Jac_FULL(281,238) - JVS(4158) = 0.62*B(1122)+0.7*B(1548)+0.7*B(1549) +! JVS(4158) = Jac_FULL(286,172) + JVS(4158) = B(1472) IF (DO_JVS(4159)) & -! JVS(4159) = Jac_FULL(281,239) - JVS(4159) = 0.228*B(1542) +! JVS(4159) = Jac_FULL(286,175) + JVS(4159) = B(1484) IF (DO_JVS(4160)) & -! JVS(4160) = Jac_FULL(281,240) - JVS(4160) = -B(955)+0.089*B(960)+0.611*B(965) +! JVS(4160) = Jac_FULL(286,176) + JVS(4160) = 0 IF (DO_JVS(4161)) & -! JVS(4161) = Jac_FULL(281,241) - JVS(4161) = -B(957)+0.089*B(961)+0.064*B(962)+0.336*B(963)+0.159*B(969)+0.159*B(973)+0.159*B(979) +! JVS(4161) = Jac_FULL(286,177) + JVS(4161) = B(374)+1.788*B(376) IF (DO_JVS(4162)) & -! JVS(4162) = Jac_FULL(281,242) - JVS(4162) = -0.937*B(763)-B(765)+0.4*B(772)+2*B(775)+2*B(777)+B(779)+B(781)+2*B(783)+1.5*B(785)+B(793)+0.45*B(797) +! JVS(4162) = Jac_FULL(286,178) + JVS(4162) = -B(682) IF (DO_JVS(4163)) & -! JVS(4163) = Jac_FULL(281,243) - JVS(4163) = -0.937*B(767)-B(769)+0.7*B(774)+2*B(776)+2*B(778)+B(780)+B(782)+2*B(787)+1.5*B(789)+B(801)+0.45*B(805) +! JVS(4163) = Jac_FULL(286,179) + JVS(4163) = 0 IF (DO_JVS(4164)) & -! JVS(4164) = Jac_FULL(281,244) - JVS(4164) = 0.1*B(1032)+B(1428) +! JVS(4164) = Jac_FULL(286,180) + JVS(4164) = 0.2*B(1150) IF (DO_JVS(4165)) & -! JVS(4165) = Jac_FULL(281,245) - JVS(4165) = -B(1097)+0.7*B(1105) +! JVS(4165) = Jac_FULL(286,181) + JVS(4165) = -B(937)-B(947)+0.67*B(1497) IF (DO_JVS(4166)) & -! JVS(4166) = Jac_FULL(281,246) - JVS(4166) = B(232)+B(1431) +! JVS(4166) = Jac_FULL(286,182) + JVS(4166) = B(788)+0.275*B(793) IF (DO_JVS(4167)) & -! JVS(4167) = Jac_FULL(281,247) - JVS(4167) = 0.036*B(1034)+B(1430) +! JVS(4167) = Jac_FULL(286,183) + JVS(4167) = B(795)+0.275*B(800) IF (DO_JVS(4168)) & -! JVS(4168) = Jac_FULL(281,248) - JVS(4168) = -B(168)+0.3*B(188) +! JVS(4168) = Jac_FULL(286,184) + JVS(4168) = B(1122) IF (DO_JVS(4169)) & -! JVS(4169) = Jac_FULL(281,249) - JVS(4169) = -B(170)+0.5*B(190) +! JVS(4169) = Jac_FULL(286,186) + JVS(4169) = 0.085*B(758)+1.662*B(1489) IF (DO_JVS(4170)) & -! JVS(4170) = Jac_FULL(281,250) - JVS(4170) = -B(212)+B(244) +! JVS(4170) = Jac_FULL(286,187) + JVS(4170) = B(803)+1.3*B(807) IF (DO_JVS(4171)) & -! JVS(4171) = Jac_FULL(281,251) - JVS(4171) = -B(166)+0.5*B(186) +! JVS(4171) = Jac_FULL(286,188) + JVS(4171) = 0.165*B(760)+1.637*B(1490) IF (DO_JVS(4172)) & -! JVS(4172) = Jac_FULL(281,252) - JVS(4172) = 0.27*B(127)-B(164)+0.64*B(184)+0.27*B(273) +! JVS(4172) = Jac_FULL(286,189) + JVS(4172) = B(953)+0.646*B(957)+0.096*B(963) IF (DO_JVS(4173)) & -! JVS(4173) = Jac_FULL(281,253) - JVS(4173) = B(137)-B(172)+B(192)+B(279) +! JVS(4173) = Jac_FULL(286,190) + JVS(4173) = -B(47)+0.75*B(344) IF (DO_JVS(4174)) & -! JVS(4174) = Jac_FULL(281,254) - JVS(4174) = 0.28*B(216) +! JVS(4174) = Jac_FULL(286,191) + JVS(4174) = 0 IF (DO_JVS(4175)) & -! JVS(4175) = Jac_FULL(281,255) - JVS(4175) = B(1418) +! JVS(4175) = Jac_FULL(286,192) + JVS(4175) = 0.065*B(766) IF (DO_JVS(4176)) & -! JVS(4176) = Jac_FULL(281,257) - JVS(4176) = B(237)+B(239)+B(269)+0.27*B(274)+B(280)+B(298)+B(300)+0.5*B(678)+0.5*B(702)+B(720)+0.159*B(970)-B(1130)& - &+B(1180) +! JVS(4176) = Jac_FULL(286,193) + JVS(4176) = -B(71)+B(1368) IF (DO_JVS(4177)) & -! JVS(4177) = Jac_FULL(281,258) - JVS(4177) = B(44) +! JVS(4177) = Jac_FULL(286,194) + JVS(4177) = 0.65*B(835)+B(841) IF (DO_JVS(4178)) & -! JVS(4178) = Jac_FULL(281,261) - JVS(4178) = 0.05*B(98)+B(1415) +! JVS(4178) = Jac_FULL(286,195) + JVS(4178) = 0 IF (DO_JVS(4179)) & -! JVS(4179) = Jac_FULL(281,262) - JVS(4179) = B(66)+B(96)+B(343)+B(427)+B(505)+B(1406) +! JVS(4179) = Jac_FULL(286,196) + JVS(4179) = -0.7*B(61)+B(1453) IF (DO_JVS(4180)) & -! JVS(4180) = Jac_FULL(281,263) - JVS(4180) = B(33)+B(48)-B(52)+2*B(55)+1.74*B(56)+B(161)+B(163)+B(179)+B(181)+0.64*B(185)+0.5*B(187)+0.3*B(189)+0.5& - &*B(191)+B(193)+0.5*B(195)+B(245)+B(270)+B(469)+B(555)+B(676)+B(700)+2*B(716)+0.5*B(718)+2*B(784)+1.5*B(786)& - &+2*B(788)+1.5*B(790)+0.336*B(964)+0.611*B(966)+0.7*B(1106)+0.6*B(1155)+2*B(1178)+B(1229)+B(1231)+B(1254) +! JVS(4180) = Jac_FULL(286,197) + JVS(4180) = -B(428) IF (DO_JVS(4181)) & -! JVS(4181) = Jac_FULL(281,264) - JVS(4181) = 0 +! JVS(4181) = Jac_FULL(286,198) + JVS(4181) = -B(590) IF (DO_JVS(4182)) & -! JVS(4182) = Jac_FULL(281,265) - JVS(4182) = -B(619) +! JVS(4182) = Jac_FULL(286,199) + JVS(4182) = -B(684) IF (DO_JVS(4183)) & -! JVS(4183) = Jac_FULL(281,266) - JVS(4183) = 0 +! JVS(4183) = Jac_FULL(286,200) + JVS(4183) = -B(999) IF (DO_JVS(4184)) & -! JVS(4184) = Jac_FULL(281,268) - JVS(4184) = B(380) +! JVS(4184) = Jac_FULL(286,201) + JVS(4184) = 0 IF (DO_JVS(4185)) & -! JVS(4185) = Jac_FULL(281,269) - JVS(4185) = B(27)-B(37)+B(40)+B(45)+1.74*B(57)+B(67)+B(85)+B(91)+B(93)+0.05*B(99)+B(197)+B(199)+0.773*B(219)+B(225)& - &+B(233)+B(317)+B(339)+B(362)+B(471)+B(488)+B(490)+B(492)+0.4*B(760)+0.7*B(762)+0.085*B(808)+0.165*B(810)& - &+0.283*B(816)+B(820)+0.25*B(830)+0.33*B(832)+0.024*B(834)+0.042*B(836)+0.75*B(859)+B(861)+B(865)+0.4*B(916)& - &+0.4*B(918)+0.295*B(1019)+0.036*B(1035)+0.715*B(1065)+B(1069)+B(1073)+B(1075)+0.5*B(1113)+0.444*B(1115)& - &+0.62*B(1123)+0.5*B(1129)+0.364*B(1147)+0.54*B(1166)+0.19*B(1168)+0.15*B(1170)+0.8*B(1182)+0.727*B(1186)& - &+0.33*B(1233)+0.33*B(1238) +! JVS(4185) = Jac_FULL(286,202) + JVS(4185) = -B(142) IF (DO_JVS(4186)) & -! JVS(4186) = Jac_FULL(281,270) - JVS(4186) = -B(76) +! JVS(4186) = Jac_FULL(286,203) + JVS(4186) = 0 IF (DO_JVS(4187)) & -! JVS(4187) = Jac_FULL(281,271) - JVS(4187) = 0 +! JVS(4187) = Jac_FULL(286,204) + JVS(4187) = 0.665*B(1027) IF (DO_JVS(4188)) & -! JVS(4188) = Jac_FULL(281,272) - JVS(4188) = 0 +! JVS(4188) = Jac_FULL(286,205) + JVS(4188) = 0.59*B(1033)+B(1039) IF (DO_JVS(4189)) & -! JVS(4189) = Jac_FULL(281,273) - JVS(4189) = B(470)+B(472)-B(519) +! JVS(4189) = Jac_FULL(286,206) + JVS(4189) = -0.5*B(1063)+0.5*B(1502)+B(1503) IF (DO_JVS(4190)) & -! JVS(4190) = Jac_FULL(281,274) - JVS(4190) = -B(321)+B(340) +! JVS(4190) = Jac_FULL(286,207) + JVS(4190) = 0.5*B(1035) IF (DO_JVS(4191)) & -! JVS(4191) = Jac_FULL(281,275) - JVS(4191) = 0 +! JVS(4191) = Jac_FULL(286,208) + JVS(4191) = -B(588) IF (DO_JVS(4192)) & -! JVS(4192) = Jac_FULL(281,276) +! JVS(4192) = Jac_FULL(286,209) JVS(4192) = 0 IF (DO_JVS(4193)) & -! JVS(4193) = Jac_FULL(281,277) - JVS(4193) = B(28)-B(29)+B(34)+0.28*B(217)+0.1*B(682)+0.1*B(684)+0.1*B(692)+0.16*B(754)+0.1*B(1033)+B(1192)+0.1*B(1235)& - &+0.1*B(1240) +! JVS(4193) = Jac_FULL(286,210) + JVS(4193) = -B(1175) IF (DO_JVS(4194)) & -! JVS(4194) = Jac_FULL(281,278) - JVS(4194) = 0 +! JVS(4194) = Jac_FULL(286,211) + JVS(4194) = -B(87) IF (DO_JVS(4195)) & -! JVS(4195) = Jac_FULL(281,279) - JVS(4195) = 0 +! JVS(4195) = Jac_FULL(286,212) + JVS(4195) = -B(40)+B(370)+2*B(1363) IF (DO_JVS(4196)) & -! JVS(4196) = Jac_FULL(281,280) - JVS(4196) = -B(41)+B(49)+B(110)+B(114)+B(120)+B(124)+0.27*B(128)+B(138)+0.82*B(672)+0.686*B(696)+B(708)+B(794)+0.45& - &*B(798)+B(802)+0.45*B(806)+B(839)+B(846)+B(873)+B(879)+B(889)+0.272*B(923)+B(930)+B(938)+B(944)+B(950)& - &+0.159*B(980)+0.5*B(1009)+0.904*B(1013)+0.33*B(1021)+0.89*B(1027)+0.242*B(1079)+0.86*B(1090)+B(1174) +! JVS(4196) = Jac_FULL(286,213) + JVS(4196) = -B(1071)+B(1509) IF (DO_JVS(4197)) & -! JVS(4197) = Jac_FULL(281,281) - JVS(4197) = -B(30)-B(38)-B(42)-2*B(43)-B(53)-B(77)-B(81)-B(165)-B(167)-B(169)-B(171)-B(173)-B(175)-B(205)-B(207)& - &-B(209)-B(211)-B(213)-B(322)-B(323)-B(389)-B(414)-B(416)-B(418)-B(513)-B(515)-B(520)-B(620)-B(628)-B(674)& - &-B(698)-B(712)-B(714)-0.937*B(764)-B(766)-0.937*B(768)-B(770)-0.725*B(843)-0.725*B(850)-B(857)-0.35*B(871)& - &-0.35*B(883)-0.35*B(885)-B(894)-B(898)-0.941*B(921)-0.401*B(928)-0.418*B(936)-0.494*B(942)-0.621*B(948)& - &-B(956)-B(958)-0.674*B(1005)-0.42*B(1007)-0.67*B(1023)-0.27*B(1029)-B(1055)-B(1061)-0.695*B(1077)-0.493& - &*B(1083)-B(1085)-B(1098)-B(1131)-B(1149)-B(1200)-B(1217)-B(1256) +! JVS(4197) = Jac_FULL(286,214) + JVS(4197) = -B(862)-B(864)-0.4*B(868)+0.55*B(1496) IF (DO_JVS(4198)) & -! JVS(4198) = Jac_FULL(281,282) - JVS(4198) = -B(324)+B(344) +! JVS(4198) = Jac_FULL(286,215) + JVS(4198) = 0 IF (DO_JVS(4199)) & -! JVS(4199) = Jac_FULL(281,283) +! JVS(4199) = Jac_FULL(286,216) JVS(4199) = 0 IF (DO_JVS(4200)) & -! JVS(4200) = Jac_FULL(281,284) - JVS(4200) = -B(390)+B(408)+B(428) +! JVS(4200) = Jac_FULL(286,217) + JVS(4200) = 0 IF (DO_JVS(4201)) & -! JVS(4201) = Jac_FULL(281,285) - JVS(4201) = B(506)+B(512)-B(514)-B(516)+B(548)+B(550)+B(552)+B(556)+B(562)+B(564)+B(566) +! JVS(4201) = Jac_FULL(286,218) + JVS(4201) = -B(89) IF (DO_JVS(4202)) & -! JVS(4202) = Jac_FULL(281,286) - JVS(4202) = B(318) +! JVS(4202) = Jac_FULL(286,219) + JVS(4202) = -B(144) IF (DO_JVS(4203)) & -! JVS(4203) = Jac_FULL(281,287) - JVS(4203) = -B(82)+B(86)+B(97)+B(229)+B(680)+B(704)+B(724)+0.159*B(974)+B(1176)+B(1255) +! JVS(4203) = Jac_FULL(286,220) + JVS(4203) = -B(858)-B(860)-0.4*B(866)+0.55*B(1493) IF (DO_JVS(4204)) & -! JVS(4204) = Jac_FULL(282,2) - JVS(4204) = B(1487) +! JVS(4204) = Jac_FULL(286,221) + JVS(4204) = -B(155) IF (DO_JVS(4205)) & -! JVS(4205) = Jac_FULL(282,44) - JVS(4205) = B(1472) +! JVS(4205) = Jac_FULL(286,222) + JVS(4205) = B(954)+1.147*B(955)+0.435*B(959) IF (DO_JVS(4206)) & -! JVS(4206) = Jac_FULL(282,45) - JVS(4206) = 0.75*B(465)+2*B(1474) +! JVS(4206) = Jac_FULL(286,223) + JVS(4206) = -B(219) IF (DO_JVS(4207)) & -! JVS(4207) = Jac_FULL(282,50) - JVS(4207) = B(1446) +! JVS(4207) = Jac_FULL(286,224) + JVS(4207) = 0.28*B(704)-B(706)-B(708)+0.5*B(710)+0.5*B(712) IF (DO_JVS(4208)) & -! JVS(4208) = Jac_FULL(282,55) - JVS(4208) = 0.33*B(449)+B(1473) +! JVS(4208) = Jac_FULL(286,225) + JVS(4208) = 0 IF (DO_JVS(4209)) & -! JVS(4209) = Jac_FULL(282,69) - JVS(4209) = B(1490) +! JVS(4209) = Jac_FULL(286,226) + JVS(4209) = -B(173) IF (DO_JVS(4210)) & -! JVS(4210) = Jac_FULL(282,70) - JVS(4210) = 2*B(359)+0.95*B(439)+2*B(1448) +! JVS(4210) = Jac_FULL(286,227) + JVS(4210) = 0 IF (DO_JVS(4211)) & -! JVS(4211) = Jac_FULL(282,74) - JVS(4211) = 3*B(357)+1.36*B(441)+3*B(1447) +! JVS(4211) = Jac_FULL(286,228) + JVS(4211) = B(820)+0.65*B(821) IF (DO_JVS(4212)) & -! JVS(4212) = Jac_FULL(282,97) - JVS(4212) = B(361)+0.56*B(437)+B(1449) +! JVS(4212) = Jac_FULL(286,229) + JVS(4212) = B(828)+0.65*B(833) IF (DO_JVS(4213)) & -! JVS(4213) = Jac_FULL(282,121) - JVS(4213) = -B(351) +! JVS(4213) = Jac_FULL(286,230) + JVS(4213) = B(1477) IF (DO_JVS(4214)) & -! JVS(4214) = Jac_FULL(282,125) - JVS(4214) = B(333)+2*B(1441) +! JVS(4214) = Jac_FULL(286,231) + JVS(4214) = B(1480) IF (DO_JVS(4215)) & -! JVS(4215) = Jac_FULL(282,132) - JVS(4215) = B(1452) +! JVS(4215) = Jac_FULL(286,232) + JVS(4215) = 0.379*B(898) IF (DO_JVS(4216)) & -! JVS(4216) = Jac_FULL(282,157) - JVS(4216) = -B(349) +! JVS(4216) = Jac_FULL(286,233) + JVS(4216) = -B(221) IF (DO_JVS(4217)) & -! JVS(4217) = Jac_FULL(282,172) - JVS(4217) = -B(331)+B(1444) +! JVS(4217) = Jac_FULL(286,234) + JVS(4217) = 0 IF (DO_JVS(4218)) & -! JVS(4218) = Jac_FULL(282,199) - JVS(4218) = 0 +! JVS(4218) = Jac_FULL(286,235) + JVS(4218) = -B(444) IF (DO_JVS(4219)) & -! JVS(4219) = Jac_FULL(282,219) - JVS(4219) = -B(347) +! JVS(4219) = Jac_FULL(286,236) + JVS(4219) = -0.773*B(213)+0.07*B(1381) IF (DO_JVS(4220)) & -! JVS(4220) = Jac_FULL(282,223) - JVS(4220) = B(601)+B(603) +! JVS(4220) = Jac_FULL(286,237) + JVS(4220) = 0 IF (DO_JVS(4221)) & -! JVS(4221) = Jac_FULL(282,231) +! JVS(4221) = Jac_FULL(286,238) JVS(4221) = 0 IF (DO_JVS(4222)) & -! JVS(4222) = Jac_FULL(282,234) +! JVS(4222) = Jac_FULL(286,239) JVS(4222) = 0 IF (DO_JVS(4223)) & -! JVS(4223) = Jac_FULL(282,249) - JVS(4223) = 0 +! JVS(4223) = Jac_FULL(286,240) + JVS(4223) = -B(967)-0.756*B(969)+0.645*B(1500) IF (DO_JVS(4224)) & -! JVS(4224) = Jac_FULL(282,251) - JVS(4224) = 0 +! JVS(4224) = Jac_FULL(286,241) + JVS(4224) = -0.98*B(993)+0.01*B(1482) IF (DO_JVS(4225)) & -! JVS(4225) = Jac_FULL(282,252) - JVS(4225) = 0 +! JVS(4225) = Jac_FULL(286,242) + JVS(4225) = -0.7*B(1073)+B(1507)+0.3*B(1508) IF (DO_JVS(4226)) & -! JVS(4226) = Jac_FULL(282,253) - JVS(4226) = 0 +! JVS(4226) = Jac_FULL(286,243) + JVS(4226) = -B(975) IF (DO_JVS(4227)) & -! JVS(4227) = Jac_FULL(282,254) - JVS(4227) = -B(583) +! JVS(4227) = Jac_FULL(286,244) + JVS(4227) = 0.063*B(718)+B(724)+1.5*B(725)+B(731)+B(732)+0.5*B(740)+0.55*B(756) IF (DO_JVS(4228)) & -! JVS(4228) = Jac_FULL(282,255) - JVS(4228) = 0 +! JVS(4228) = Jac_FULL(286,245) + JVS(4228) = 0.063*B(714)+B(722)+1.5*B(723)+B(730)+B(733)+0.5*B(736)+0.55*B(748) IF (DO_JVS(4229)) & -! JVS(4229) = Jac_FULL(282,256) - JVS(4229) = B(1443) +! JVS(4229) = Jac_FULL(286,246) + JVS(4229) = 0 IF (DO_JVS(4230)) & -! JVS(4230) = Jac_FULL(282,257) - JVS(4230) = 0 +! JVS(4230) = Jac_FULL(286,247) + JVS(4230) = 0.527*B(906) IF (DO_JVS(4231)) & -! JVS(4231) = Jac_FULL(282,259) - JVS(4231) = 0 +! JVS(4231) = Jac_FULL(286,248) + JVS(4231) = -B(981)+0.08*B(983) IF (DO_JVS(4232)) & -! JVS(4232) = Jac_FULL(282,261) - JVS(4232) = -B(345) +! JVS(4232) = Jac_FULL(286,249) + JVS(4232) = 0.5*B(1048) IF (DO_JVS(4233)) & -! JVS(4233) = Jac_FULL(282,262) - JVS(4233) = -B(343) +! JVS(4233) = Jac_FULL(286,250) + JVS(4233) = -B(227) IF (DO_JVS(4234)) & -! JVS(4234) = Jac_FULL(282,263) - JVS(4234) = 0 +! JVS(4234) = Jac_FULL(286,251) + JVS(4234) = -B(985)-B(987)+0.12*B(989)+0.68*B(991) IF (DO_JVS(4235)) & -! JVS(4235) = Jac_FULL(282,264) - JVS(4235) = 0 +! JVS(4235) = Jac_FULL(286,252) + JVS(4235) = 0.15*B(165) IF (DO_JVS(4236)) & -! JVS(4236) = Jac_FULL(282,265) - JVS(4236) = B(599) +! JVS(4236) = Jac_FULL(286,253) + JVS(4236) = -B(209)+0.36*B(211) IF (DO_JVS(4237)) & -! JVS(4237) = Jac_FULL(282,266) - JVS(4237) = 0 +! JVS(4237) = Jac_FULL(286,254) + JVS(4237) = 0.15*B(167) IF (DO_JVS(4238)) & -! JVS(4238) = Jac_FULL(282,267) - JVS(4238) = 0 +! JVS(4238) = Jac_FULL(286,255) + JVS(4238) = 0.44*B(207) IF (DO_JVS(4239)) & -! JVS(4239) = Jac_FULL(282,268) - JVS(4239) = 0.65*B(431)+0.56*B(438)+0.95*B(440)+1.36*B(442)+0.33*B(450)+0.75*B(466) +! JVS(4239) = Jac_FULL(286,256) + JVS(4239) = 0 IF (DO_JVS(4240)) & -! JVS(4240) = Jac_FULL(282,269) - JVS(4240) = B(325)+B(334)+B(339)+3*B(358)+2*B(360)+B(362) +! JVS(4240) = Jac_FULL(286,257) + JVS(4240) = 0 IF (DO_JVS(4241)) & -! JVS(4241) = Jac_FULL(282,270) - JVS(4241) = -B(353) +! JVS(4241) = Jac_FULL(286,258) + JVS(4241) = 0 IF (DO_JVS(4242)) & -! JVS(4242) = Jac_FULL(282,271) - JVS(4242) = 0 +! JVS(4242) = Jac_FULL(286,259) + JVS(4242) = -B(146) IF (DO_JVS(4243)) & -! JVS(4243) = Jac_FULL(282,272) - JVS(4243) = B(326)+B(337)+0.65*B(432) +! JVS(4243) = Jac_FULL(286,260) + JVS(4243) = B(306)+B(1402) IF (DO_JVS(4244)) & -! JVS(4244) = Jac_FULL(282,273) - JVS(4244) = B(537)+B(539) +! JVS(4244) = Jac_FULL(286,261) + JVS(4244) = 0.5*B(1081) IF (DO_JVS(4245)) & -! JVS(4245) = Jac_FULL(282,274) - JVS(4245) = 2*B(327)+B(329)+B(340)+B(425)+B(538)+B(540)+B(600)+B(602)+B(604)+B(1442) +! JVS(4245) = Jac_FULL(286,262) + JVS(4245) = -B(446) IF (DO_JVS(4246)) & -! JVS(4246) = Jac_FULL(282,275) - JVS(4246) = 0 +! JVS(4246) = Jac_FULL(286,263) + JVS(4246) = -B(63)+B(386) IF (DO_JVS(4247)) & -! JVS(4247) = Jac_FULL(282,276) - JVS(4247) = 0 +! JVS(4247) = Jac_FULL(286,264) + JVS(4247) = -B(95) IF (DO_JVS(4248)) & -! JVS(4248) = Jac_FULL(282,277) - JVS(4248) = -B(319) +! JVS(4248) = Jac_FULL(286,265) + JVS(4248) = -B(67)+B(1367) IF (DO_JVS(4249)) & -! JVS(4249) = Jac_FULL(282,278) - JVS(4249) = 0 +! JVS(4249) = Jac_FULL(286,266) + JVS(4249) = -B(57)+0.5*B(737)+0.5*B(741) IF (DO_JVS(4250)) & -! JVS(4250) = Jac_FULL(282,279) - JVS(4250) = 0 +! JVS(4250) = Jac_FULL(286,267) + JVS(4250) = -B(45) IF (DO_JVS(4251)) & -! JVS(4251) = Jac_FULL(282,280) - JVS(4251) = B(330) +! JVS(4251) = Jac_FULL(286,268) + JVS(4251) = -B(578)+B(1436) IF (DO_JVS(4252)) & -! JVS(4252) = Jac_FULL(282,281) - JVS(4252) = -B(323) +! JVS(4252) = Jac_FULL(286,269) + JVS(4252) = 0 IF (DO_JVS(4253)) & -! JVS(4253) = Jac_FULL(282,282) - JVS(4253) = -B(320)-B(324)-B(332)-B(341)-B(344)-B(346)-B(348)-B(350)-B(352)-B(354)-B(584) +! JVS(4253) = Jac_FULL(286,270) + JVS(4253) = 0 IF (DO_JVS(4254)) & -! JVS(4254) = Jac_FULL(282,283) - JVS(4254) = 0 +! JVS(4254) = Jac_FULL(286,271) + JVS(4254) = -B(442)+B(1419) IF (DO_JVS(4255)) & -! JVS(4255) = Jac_FULL(282,284) - JVS(4255) = B(338)+B(426) +! JVS(4255) = Jac_FULL(286,272) + JVS(4255) = 2*B(334)+B(340)+0.75*B(345)+0.66*B(388)+0.6*B(390)+0.05*B(405) IF (DO_JVS(4256)) & -! JVS(4256) = Jac_FULL(282,285) +! JVS(4256) = Jac_FULL(286,273) JVS(4256) = 0 IF (DO_JVS(4257)) & -! JVS(4257) = Jac_FULL(282,286) - JVS(4257) = 0 +! JVS(4257) = Jac_FULL(286,274) + JVS(4257) = -B(310) IF (DO_JVS(4258)) & -! JVS(4258) = Jac_FULL(282,287) - JVS(4258) = -B(342) +! JVS(4258) = Jac_FULL(286,275) + JVS(4258) = 0.66*B(389)-B(440) IF (DO_JVS(4259)) & -! JVS(4259) = Jac_FULL(283,135) - JVS(4259) = B(11) +! JVS(4259) = Jac_FULL(286,276) + JVS(4259) = -B(24)-B(288) IF (DO_JVS(4260)) & -! JVS(4260) = Jac_FULL(283,169) - JVS(4260) = -B(1268) +! JVS(4260) = Jac_FULL(286,277) + JVS(4260) = 0 IF (DO_JVS(4261)) & -! JVS(4261) = Jac_FULL(283,199) - JVS(4261) = -B(1356) +! JVS(4261) = Jac_FULL(286,278) + JVS(4261) = 2*B(335) IF (DO_JVS(4262)) & -! JVS(4262) = Jac_FULL(283,231) - JVS(4262) = -B(1294) +! JVS(4262) = Jac_FULL(286,279) + JVS(4262) = B(42)-B(69)+0.55*B(749)+0.55*B(757)+B(804)+B(843)+B(847)+0.435*B(960)+0.096*B(964) IF (DO_JVS(4263)) & -! JVS(4263) = Jac_FULL(283,256) - JVS(4263) = -B(1320) +! JVS(4263) = Jac_FULL(286,280) + JVS(4263) = -B(1223) IF (DO_JVS(4264)) & -! JVS(4264) = Jac_FULL(283,259) - JVS(4264) = -B(1290) +! JVS(4264) = Jac_FULL(286,281) + JVS(4264) = B(78)-B(82)+0.68*B(992) IF (DO_JVS(4265)) & -! JVS(4265) = Jac_FULL(283,260) - JVS(4265) = 0 +! JVS(4265) = Jac_FULL(286,282) + JVS(4265) = -B(28)+B(30)+0.36*B(212)+B(375)+0.85*B(633)+0.85*B(635)+0.85*B(643)+0.28*B(705)+0.08*B(984)+0.12*B(990)& + &+B(1143)+0.1*B(1186)+0.1*B(1191) IF (DO_JVS(4266)) & -! JVS(4266) = Jac_FULL(283,261) +! JVS(4266) = Jac_FULL(286,283) JVS(4266) = 0 IF (DO_JVS(4267)) & -! JVS(4267) = Jac_FULL(283,262) - JVS(4267) = 0 +! JVS(4267) = Jac_FULL(286,284) + JVS(4267) = B(31)-B(38)+B(43)+B(79)+0.15*B(166)+0.15*B(168)+0.44*B(208)+B(354)+1.788*B(377)+B(476)+0.063*B(715)+0.063& + &*B(719)+0.275*B(794)+0.275*B(801)+1.3*B(808)+0.65*B(822)+0.65*B(834)+0.65*B(836)+2*B(845)+2*B(849)+0.518& + &*B(872)+0.599*B(879)+0.582*B(887)+0.506*B(893)+0.379*B(899)+0.527*B(907)+1.147*B(956)+0.646*B(958)+B(974)& + &+0.82*B(980)+B(1006)+B(1012)+0.665*B(1028)+0.59*B(1034)+0.5*B(1036)+0.5*B(1049)+0.5*B(1082)+B(1123)+0.2& + &*B(1151) IF (DO_JVS(4268)) & -! JVS(4268) = Jac_FULL(283,263) - JVS(4268) = 0 +! JVS(4268) = Jac_FULL(286,285) + JVS(4268) = -B(432)-B(434) IF (DO_JVS(4269)) & -! JVS(4269) = Jac_FULL(283,264) - JVS(4269) = -B(1372) +! JVS(4269) = Jac_FULL(286,286) + JVS(4269) = -B(25)-B(29)-2*B(36)-2*B(37)-B(39)-B(41)-B(46)-B(48)-B(58)-0.7*B(60)-0.7*B(62)-B(64)-B(65)-B(68)-B(70)& + &-B(72)-B(77)-B(83)-B(88)-B(90)-B(96)-B(105)-B(113)-B(115)-B(123)-B(143)-B(145)-B(147)-B(156)-B(174)-B(194)& + &-B(196)-B(210)-0.773*B(214)-B(220)-B(222)-B(228)-0.209*B(232)-0.36*B(234)-0.36*B(236)-0.209*B(238)-0.21& + &*B(240)-B(242)-0.209*B(244)-0.78*B(248)-B(283)-B(285)-B(289)-B(296)-B(305)-B(311)-B(329)-B(331)-B(333)& + &-B(350)-B(352)-B(361)-B(429)-B(433)-B(435)-B(437)-B(439)-B(441)-B(443)-B(445)-B(447)-B(449)-B(451)-B(453)& + &-B(455)-B(457)-B(459)-B(461)-B(463)-B(575)-B(577)-B(579)-B(587)-B(589)-B(591)-B(619)-B(621)-B(641)-0.51& + &*B(657)-B(683)-B(685)-B(695)-B(697)-B(699)-B(701)-B(703)-B(707)-B(709)+0.5*B(711)+0.5*B(713)+0.085*B(759)& + &+0.165*B(761)+0.065*B(767)-B(771)-B(773)-B(777)-B(781)-B(783)-0.595*B(785)-0.255*B(787)-B(810)-B(812)& + &-B(814)-B(816)-B(818)-B(851)-B(853)-B(855)-B(857)-B(859)-B(861)-B(863)-B(865)-0.4*B(867)-0.4*B(869)-B(938)& + &-B(940)-B(946)-B(948)-B(950)-B(968)-0.756*B(970)-B(976)-B(982)-B(986)-B(988)-0.98*B(994)-B(1000)-0.715& + &*B(1016)-B(1020)-B(1024)-B(1026)-0.415*B(1038)-B(1060)-0.3*B(1062)-0.5*B(1064)-0.556*B(1066)-B(1072)-0.7& + &*B(1074)-B(1078)-0.5*B(1080)-B(1096)-0.364*B(1098)-B(1111)-B(1113)-B(1117)-B(1119)-B(1121)-B(1133)-B(1137)& + &-B(1141)-B(1147)-B(1157)-B(1160)-B(1170)-B(1176)-0.75*B(1184)-0.75*B(1189)-B(1208)-B(1224)-B(1225) IF (DO_JVS(4270)) & -! JVS(4270) = Jac_FULL(283,265) - JVS(4270) = 0 +! JVS(4270) = Jac_FULL(286,287) + JVS(4270) = -B(1226) IF (DO_JVS(4271)) & -! JVS(4271) = Jac_FULL(283,266) - JVS(4271) = -B(1364) +! JVS(4271) = Jac_FULL(286,288) + JVS(4271) = B(307)+B(308)-B(353)+B(355)+B(371)+B(387) IF (DO_JVS(4272)) & -! JVS(4272) = Jac_FULL(283,267) - JVS(4272) = -B(1310) +! JVS(4272) = Jac_FULL(286,289) + JVS(4272) = -B(297)+B(309)+0.6*B(391) IF (DO_JVS(4273)) & -! JVS(4273) = Jac_FULL(283,268) - JVS(4273) = 0 +! JVS(4273) = Jac_FULL(286,290) + JVS(4273) = B(477) IF (DO_JVS(4274)) & -! JVS(4274) = Jac_FULL(283,269) - JVS(4274) = -B(1272) +! JVS(4274) = Jac_FULL(286,291) + JVS(4274) = -B(66) IF (DO_JVS(4275)) & -! JVS(4275) = Jac_FULL(283,270) - JVS(4275) = 0 +! JVS(4275) = Jac_FULL(287,138) + JVS(4275) = B(11) IF (DO_JVS(4276)) & -! JVS(4276) = Jac_FULL(283,271) - JVS(4276) = B(12) +! JVS(4276) = Jac_FULL(287,173) + JVS(4276) = -B(1221) IF (DO_JVS(4277)) & -! JVS(4277) = Jac_FULL(283,272) - JVS(4277) = 0 +! JVS(4277) = Jac_FULL(287,203) + JVS(4277) = -B(1315) IF (DO_JVS(4278)) & -! JVS(4278) = Jac_FULL(283,273) - JVS(4278) = 0 +! JVS(4278) = Jac_FULL(287,235) + JVS(4278) = -B(1247) IF (DO_JVS(4279)) & -! JVS(4279) = Jac_FULL(283,274) - JVS(4279) = 0 +! JVS(4279) = Jac_FULL(287,260) + JVS(4279) = -B(1273) IF (DO_JVS(4280)) & -! JVS(4280) = Jac_FULL(283,275) - JVS(4280) = 0 +! JVS(4280) = Jac_FULL(287,262) + JVS(4280) = -B(1243) IF (DO_JVS(4281)) & -! JVS(4281) = Jac_FULL(283,276) +! JVS(4281) = Jac_FULL(287,265) JVS(4281) = 0 IF (DO_JVS(4282)) & -! JVS(4282) = Jac_FULL(283,277) +! JVS(4282) = Jac_FULL(287,266) JVS(4282) = 0 IF (DO_JVS(4283)) & -! JVS(4283) = Jac_FULL(283,278) +! JVS(4283) = Jac_FULL(287,267) JVS(4283) = 0 IF (DO_JVS(4284)) & -! JVS(4284) = Jac_FULL(283,279) - JVS(4284) = 0 +! JVS(4284) = Jac_FULL(287,268) + JVS(4284) = -B(1331) IF (DO_JVS(4285)) & -! JVS(4285) = Jac_FULL(283,280) +! JVS(4285) = Jac_FULL(287,269) JVS(4285) = 0 IF (DO_JVS(4286)) & -! JVS(4286) = Jac_FULL(283,281) - JVS(4286) = 0 +! JVS(4286) = Jac_FULL(287,270) + JVS(4286) = -B(1323) IF (DO_JVS(4287)) & -! JVS(4287) = Jac_FULL(283,282) - JVS(4287) = 0 +! JVS(4287) = Jac_FULL(287,271) + JVS(4287) = -B(1263) IF (DO_JVS(4288)) & -! JVS(4288) = Jac_FULL(283,283) - JVS(4288) = -B(1269)-B(1273)-B(1291)-B(1295)-B(1311)-B(1321)-B(1357)-B(1365)-B(1373) +! JVS(4288) = Jac_FULL(287,272) + JVS(4288) = 0 IF (DO_JVS(4289)) & -! JVS(4289) = Jac_FULL(283,284) +! JVS(4289) = Jac_FULL(287,273) JVS(4289) = 0 IF (DO_JVS(4290)) & -! JVS(4290) = Jac_FULL(283,285) +! JVS(4290) = Jac_FULL(287,274) JVS(4290) = 0 IF (DO_JVS(4291)) & -! JVS(4291) = Jac_FULL(283,286) - JVS(4291) = 0 +! JVS(4291) = Jac_FULL(287,275) + JVS(4291) = B(12) IF (DO_JVS(4292)) & -! JVS(4292) = Jac_FULL(283,287) +! JVS(4292) = Jac_FULL(287,276) JVS(4292) = 0 IF (DO_JVS(4293)) & -! JVS(4293) = Jac_FULL(284,42) - JVS(4293) = 0.25*B(461) +! JVS(4293) = Jac_FULL(287,277) + JVS(4293) = 0 IF (DO_JVS(4294)) & -! JVS(4294) = Jac_FULL(284,44) - JVS(4294) = 0.59*B(451) +! JVS(4294) = Jac_FULL(287,278) + JVS(4294) = 0 IF (DO_JVS(4295)) & -! JVS(4295) = Jac_FULL(284,45) - JVS(4295) = 0.25*B(465) +! JVS(4295) = Jac_FULL(287,279) + JVS(4295) = 0 IF (DO_JVS(4296)) & -! JVS(4296) = Jac_FULL(284,46) - JVS(4296) = 0.7*B(463) +! JVS(4296) = Jac_FULL(287,280) + JVS(4296) = 0 IF (DO_JVS(4297)) & -! JVS(4297) = Jac_FULL(284,48) - JVS(4297) = 0.25*B(459) +! JVS(4297) = Jac_FULL(287,281) + JVS(4297) = 0 IF (DO_JVS(4298)) & -! JVS(4298) = Jac_FULL(284,51) - JVS(4298) = 0.14*B(435) +! JVS(4298) = Jac_FULL(287,282) + JVS(4298) = 0 IF (DO_JVS(4299)) & -! JVS(4299) = Jac_FULL(284,52) - JVS(4299) = 0.12*B(445) +! JVS(4299) = Jac_FULL(287,283) + JVS(4299) = 0 IF (DO_JVS(4300)) & -! JVS(4300) = Jac_FULL(284,53) - JVS(4300) = 0.14*B(447) +! JVS(4300) = Jac_FULL(287,284) + JVS(4300) = 0 IF (DO_JVS(4301)) & -! JVS(4301) = Jac_FULL(284,55) - JVS(4301) = 0.36*B(449) +! JVS(4301) = Jac_FULL(287,285) + JVS(4301) = 0 IF (DO_JVS(4302)) & -! JVS(4302) = Jac_FULL(284,61) - JVS(4302) = B(419)+B(421)+B(423) +! JVS(4302) = Jac_FULL(287,286) + JVS(4302) = -B(1225) IF (DO_JVS(4303)) & -! JVS(4303) = Jac_FULL(284,62) - JVS(4303) = -B(395) +! JVS(4303) = Jac_FULL(287,287) + JVS(4303) = -B(1222)-B(1226)-B(1244)-B(1248)-B(1264)-B(1274)-B(1316)-B(1324)-B(1332) IF (DO_JVS(4304)) & -! JVS(4304) = Jac_FULL(284,70) - JVS(4304) = 0.05*B(439) +! JVS(4304) = Jac_FULL(287,288) + JVS(4304) = 0 IF (DO_JVS(4305)) & -! JVS(4305) = Jac_FULL(284,74) - JVS(4305) = 0.32*B(441) +! JVS(4305) = Jac_FULL(287,289) + JVS(4305) = 0 IF (DO_JVS(4306)) & -! JVS(4306) = Jac_FULL(284,78) - JVS(4306) = 0.21*B(457) +! JVS(4306) = Jac_FULL(287,290) + JVS(4306) = 0 IF (DO_JVS(4307)) & -! JVS(4307) = Jac_FULL(284,79) - JVS(4307) = 0.31*B(453) +! JVS(4307) = Jac_FULL(287,291) + JVS(4307) = 0 IF (DO_JVS(4308)) & -! JVS(4308) = Jac_FULL(284,80) - JVS(4308) = 0.26*B(455) +! JVS(4308) = Jac_FULL(288,47) + JVS(4308) = 0.55*B(412) IF (DO_JVS(4309)) & -! JVS(4309) = Jac_FULL(284,81) - JVS(4309) = 0.28*B(443) +! JVS(4309) = Jac_FULL(288,48) + JVS(4309) = 0.25*B(426) IF (DO_JVS(4310)) & -! JVS(4310) = Jac_FULL(284,107) - JVS(4310) = B(1455) +! JVS(4310) = Jac_FULL(288,52) + JVS(4310) = 0.21*B(394) IF (DO_JVS(4311)) & -! JVS(4311) = Jac_FULL(284,173) - JVS(4311) = B(415) +! JVS(4311) = Jac_FULL(288,53) + JVS(4311) = 0.1*B(406) IF (DO_JVS(4312)) & -! JVS(4312) = Jac_FULL(284,186) - JVS(4312) = 0 +! JVS(4312) = Jac_FULL(288,54) + JVS(4312) = 0.14*B(408) IF (DO_JVS(4313)) & -! JVS(4313) = Jac_FULL(284,192) - JVS(4313) = 0.25*B(433) +! JVS(4313) = Jac_FULL(288,55) + JVS(4313) = 0.1*B(420) IF (DO_JVS(4314)) & -! JVS(4314) = Jac_FULL(284,208) - JVS(4314) = -B(407) +! JVS(4314) = Jac_FULL(288,56) + JVS(4314) = 0.1*B(422) IF (DO_JVS(4315)) & -! JVS(4315) = Jac_FULL(284,220) - JVS(4315) = 0 +! JVS(4315) = Jac_FULL(288,57) + JVS(4315) = 0.14*B(424) IF (DO_JVS(4316)) & -! JVS(4316) = Jac_FULL(284,223) - JVS(4316) = B(1478) +! JVS(4316) = Jac_FULL(288,59) + JVS(4316) = 0.35*B(410) IF (DO_JVS(4317)) & -! JVS(4317) = Jac_FULL(284,230) - JVS(4317) = 0 +! JVS(4317) = Jac_FULL(288,65) + JVS(4317) = B(378)+B(380)+B(382) IF (DO_JVS(4318)) & -! JVS(4318) = Jac_FULL(284,231) - JVS(4318) = 0 +! JVS(4318) = Jac_FULL(288,66) + JVS(4318) = -B(358) IF (DO_JVS(4319)) & -! JVS(4319) = Jac_FULL(284,244) - JVS(4319) = 0 +! JVS(4319) = Jac_FULL(288,71) + JVS(4319) = 0.05*B(400) IF (DO_JVS(4320)) & -! JVS(4320) = Jac_FULL(284,247) - JVS(4320) = 0 +! JVS(4320) = Jac_FULL(288,77) + JVS(4320) = 0.3*B(402) IF (DO_JVS(4321)) & -! JVS(4321) = Jac_FULL(284,254) - JVS(4321) = 0 +! JVS(4321) = Jac_FULL(288,81) + JVS(4321) = 0.21*B(418) IF (DO_JVS(4322)) & -! JVS(4322) = Jac_FULL(284,256) - JVS(4322) = -B(335) +! JVS(4322) = Jac_FULL(288,82) + JVS(4322) = 0.31*B(414) IF (DO_JVS(4323)) & -! JVS(4323) = Jac_FULL(284,257) - JVS(4323) = 0 +! JVS(4323) = Jac_FULL(288,83) + JVS(4323) = 0.35*B(416) IF (DO_JVS(4324)) & -! JVS(4324) = Jac_FULL(284,258) - JVS(4324) = 0 +! JVS(4324) = Jac_FULL(288,84) + JVS(4324) = 0.25*B(404) IF (DO_JVS(4325)) & -! JVS(4325) = Jac_FULL(284,259) - JVS(4325) = -B(543) +! JVS(4325) = Jac_FULL(288,111) + JVS(4325) = B(1414) IF (DO_JVS(4326)) & -! JVS(4326) = Jac_FULL(284,261) - JVS(4326) = 0 +! JVS(4326) = Jac_FULL(288,149) + JVS(4326) = 0.1*B(396) IF (DO_JVS(4327)) & -! JVS(4327) = Jac_FULL(284,262) - JVS(4327) = -B(427) +! JVS(4327) = Jac_FULL(288,177) + JVS(4327) = 0.02*B(376) IF (DO_JVS(4328)) & -! JVS(4328) = Jac_FULL(284,263) +! JVS(4328) = Jac_FULL(288,190) JVS(4328) = 0 IF (DO_JVS(4329)) & -! JVS(4329) = Jac_FULL(284,264) - JVS(4329) = 0 +! JVS(4329) = Jac_FULL(288,197) + JVS(4329) = 0.25*B(392) IF (DO_JVS(4330)) & -! JVS(4330) = Jac_FULL(284,265) - JVS(4330) = 0 +! JVS(4330) = Jac_FULL(288,212) + JVS(4330) = -B(370) IF (DO_JVS(4331)) & -! JVS(4331) = Jac_FULL(284,266) +! JVS(4331) = Jac_FULL(288,224) JVS(4331) = 0 IF (DO_JVS(4332)) & -! JVS(4332) = Jac_FULL(284,267) - JVS(4332) = 0 +! JVS(4332) = Jac_FULL(288,227) + JVS(4332) = B(1437) IF (DO_JVS(4333)) & -! JVS(4333) = Jac_FULL(284,268) - JVS(4333) = B(365)+B(367)+2*B(393)+0.09*B(429)+0.2*B(431)+0.25*B(434)+0.14*B(436)+0.05*B(440)+0.32*B(442)+0.28*B(444)& - &+0.12*B(446)+0.14*B(448)+0.36*B(450)+0.59*B(452)+0.31*B(454)+0.26*B(456)+0.21*B(458)+0.25*B(460)+0.25& - &*B(462)+0.7*B(464)+0.25*B(466) +! JVS(4333) = Jac_FULL(288,234) + JVS(4333) = 0 IF (DO_JVS(4334)) & -! JVS(4334) = Jac_FULL(284,269) - JVS(4334) = B(35)-B(387) +! JVS(4334) = Jac_FULL(288,235) + JVS(4334) = 0 IF (DO_JVS(4335)) & -! JVS(4335) = Jac_FULL(284,270) - JVS(4335) = -B(399)-B(405)+B(424)+B(1403) +! JVS(4335) = Jac_FULL(288,248) + JVS(4335) = 0 IF (DO_JVS(4336)) & -! JVS(4336) = Jac_FULL(284,271) - JVS(4336) = 0.09*B(430) +! JVS(4336) = Jac_FULL(288,251) + JVS(4336) = 0 IF (DO_JVS(4337)) & -! JVS(4337) = Jac_FULL(284,272) - JVS(4337) = -B(337)+0.2*B(432) +! JVS(4337) = Jac_FULL(288,253) + JVS(4337) = 0 IF (DO_JVS(4338)) & -! JVS(4338) = Jac_FULL(284,273) - JVS(4338) = -B(517)+B(1454) +! JVS(4338) = Jac_FULL(288,260) + JVS(4338) = -B(306) IF (DO_JVS(4339)) & -! JVS(4339) = Jac_FULL(284,274) - JVS(4339) = -B(425)+B(1442) +! JVS(4339) = Jac_FULL(288,261) + JVS(4339) = 0 IF (DO_JVS(4340)) & -! JVS(4340) = Jac_FULL(284,275) - JVS(4340) = 0 +! JVS(4340) = Jac_FULL(288,262) + JVS(4340) = -B(502) IF (DO_JVS(4341)) & -! JVS(4341) = Jac_FULL(284,276) - JVS(4341) = 0 +! JVS(4341) = Jac_FULL(288,263) + JVS(4341) = -B(386) IF (DO_JVS(4342)) & -! JVS(4342) = Jac_FULL(284,277) - JVS(4342) = -B(383)+2*B(394)+B(1400) +! JVS(4342) = Jac_FULL(288,264) + JVS(4342) = 0 IF (DO_JVS(4343)) & -! JVS(4343) = Jac_FULL(284,278) +! JVS(4343) = Jac_FULL(288,266) JVS(4343) = 0 IF (DO_JVS(4344)) & -! JVS(4344) = Jac_FULL(284,279) +! JVS(4344) = Jac_FULL(288,267) JVS(4344) = 0 IF (DO_JVS(4345)) & -! JVS(4345) = Jac_FULL(284,280) - JVS(4345) = -B(403)+B(422)+B(1498) +! JVS(4345) = Jac_FULL(288,268) + JVS(4345) = 0 IF (DO_JVS(4346)) & -! JVS(4346) = Jac_FULL(284,281) - JVS(4346) = -B(389)+B(416) +! JVS(4346) = Jac_FULL(288,269) + JVS(4346) = 0 IF (DO_JVS(4347)) & -! JVS(4347) = Jac_FULL(284,282) +! JVS(4347) = Jac_FULL(288,270) JVS(4347) = 0 IF (DO_JVS(4348)) & -! JVS(4348) = Jac_FULL(284,283) +! JVS(4348) = Jac_FULL(288,271) JVS(4348) = 0 IF (DO_JVS(4349)) & -! JVS(4349) = Jac_FULL(284,284) - JVS(4349) = -B(336)-B(338)-B(381)-B(384)-B(388)-B(390)-B(396)-B(400)-B(401)-B(404)-B(406)-B(408)-B(426)-B(428)-B(518)& - &-B(544) +! JVS(4349) = Jac_FULL(288,272) + JVS(4349) = B(336)+B(338)+B(356)+0.12*B(388)+0.2*B(390)+0.25*B(393)+0.21*B(395)+0.1*B(397)+0.05*B(401)+0.3*B(403)+0.25& + &*B(405)+0.1*B(407)+0.14*B(409)+0.35*B(411)+0.55*B(413)+0.31*B(415)+0.35*B(417)+0.21*B(419)+0.1*B(421)+0.1& + &*B(423)+0.14*B(425)+0.25*B(427) IF (DO_JVS(4350)) & -! JVS(4350) = Jac_FULL(284,285) +! JVS(4350) = Jac_FULL(288,273) JVS(4350) = 0 IF (DO_JVS(4351)) & -! JVS(4351) = Jac_FULL(284,286) - JVS(4351) = 0 +! JVS(4351) = Jac_FULL(288,274) + JVS(4351) = -B(384)+B(1401) IF (DO_JVS(4352)) & -! JVS(4352) = Jac_FULL(284,287) - JVS(4352) = -B(402)+B(1412) +! JVS(4352) = Jac_FULL(288,275) + JVS(4352) = 0.12*B(389) IF (DO_JVS(4353)) & -! JVS(4353) = Jac_FULL(285,3) - JVS(4353) = B(1486) +! JVS(4353) = Jac_FULL(288,276) + JVS(4353) = 0 IF (DO_JVS(4354)) & -! JVS(4354) = Jac_FULL(285,39) - JVS(4354) = 3*B(493)+3*B(1461) +! JVS(4354) = Jac_FULL(288,277) + JVS(4354) = 0 IF (DO_JVS(4355)) & -! JVS(4355) = Jac_FULL(285,42) - JVS(4355) = 0.75*B(461)+2*B(1466) +! JVS(4355) = Jac_FULL(288,278) + JVS(4355) = 0 IF (DO_JVS(4356)) & -! JVS(4356) = Jac_FULL(285,46) - JVS(4356) = B(1467) +! JVS(4356) = Jac_FULL(288,279) + JVS(4356) = -B(366)+B(381)+B(1457) IF (DO_JVS(4357)) & -! JVS(4357) = Jac_FULL(285,48) - JVS(4357) = 1.5*B(459)+3*B(1465) +! JVS(4357) = Jac_FULL(288,280) + JVS(4357) = 0 IF (DO_JVS(4358)) & -! JVS(4358) = Jac_FULL(285,51) - JVS(4358) = 2.58*B(435)+4*B(1462) +! JVS(4358) = Jac_FULL(288,281) + JVS(4358) = -B(364)+B(1371) IF (DO_JVS(4359)) & -! JVS(4359) = Jac_FULL(285,52) - JVS(4359) = 1.76*B(445)+3*B(1463) +! JVS(4359) = Jac_FULL(288,282) + JVS(4359) = -B(348)+B(357)+B(1359) IF (DO_JVS(4360)) & -! JVS(4360) = Jac_FULL(285,53) - JVS(4360) = 0.86*B(447)+2*B(1464) +! JVS(4360) = Jac_FULL(288,283) + JVS(4360) = 0 IF (DO_JVS(4361)) & -! JVS(4361) = Jac_FULL(285,55) - JVS(4361) = 0.31*B(449)+B(1473) +! JVS(4361) = Jac_FULL(288,284) + JVS(4361) = -B(354)+0.02*B(377) IF (DO_JVS(4362)) & -! JVS(4362) = Jac_FULL(285,68) - JVS(4362) = 3*B(491)+2*B(551) +! JVS(4362) = Jac_FULL(288,285) + JVS(4362) = -B(478)+B(1413) IF (DO_JVS(4363)) & -! JVS(4363) = Jac_FULL(285,72) - JVS(4363) = B(1456) +! JVS(4363) = Jac_FULL(288,286) + JVS(4363) = B(36)-B(352) IF (DO_JVS(4364)) & -! JVS(4364) = Jac_FULL(285,73) - JVS(4364) = 2*B(489)+B(549)+2*B(1451) +! JVS(4364) = Jac_FULL(288,287) + JVS(4364) = 0 IF (DO_JVS(4365)) & -! JVS(4365) = Jac_FULL(285,78) - JVS(4365) = 0.79*B(457)+2*B(501)+2*B(1468) +! JVS(4365) = Jac_FULL(288,288) + JVS(4365) = -B(307)-B(308)-B(346)-B(349)-B(353)-B(355)-B(359)-B(362)-B(365)-B(367)-B(368)-B(371)-B(385)-B(387)-B(479)& + &-B(503) IF (DO_JVS(4366)) & -! JVS(4366) = Jac_FULL(285,79) - JVS(4366) = 0.69*B(453)+2*B(497)+2*B(1469) +! JVS(4366) = Jac_FULL(288,289) + JVS(4366) = -B(309)+0.2*B(391) IF (DO_JVS(4367)) & -! JVS(4367) = Jac_FULL(285,80) - JVS(4367) = B(499)+B(1470) +! JVS(4367) = Jac_FULL(288,290) + JVS(4367) = 0 IF (DO_JVS(4368)) & -! JVS(4368) = Jac_FULL(285,81) - JVS(4368) = 0.17*B(443)+B(495)+B(1471) +! JVS(4368) = Jac_FULL(288,291) + JVS(4368) = -B(363)-B(369)+B(383)+B(1362) IF (DO_JVS(4369)) & -! JVS(4369) = Jac_FULL(285,98) - JVS(4369) = B(1491) +! JVS(4369) = Jac_FULL(289,124) + JVS(4369) = B(322) IF (DO_JVS(4370)) & -! JVS(4370) = Jac_FULL(285,100) - JVS(4370) = B(487)-B(547)+B(1450) +! JVS(4370) = Jac_FULL(289,161) + JVS(4370) = B(320) IF (DO_JVS(4371)) & -! JVS(4371) = Jac_FULL(285,103) - JVS(4371) = B(530)-B(533)-B(535)+B(1475) +! JVS(4371) = Jac_FULL(289,221) + JVS(4371) = B(318) IF (DO_JVS(4372)) & -! JVS(4372) = Jac_FULL(285,112) - JVS(4372) = -B(579) +! JVS(4372) = Jac_FULL(289,235) + JVS(4372) = -B(1255) IF (DO_JVS(4373)) & -! JVS(4373) = Jac_FULL(285,121) - JVS(4373) = -B(571)-B(573) +! JVS(4373) = Jac_FULL(289,238) + JVS(4373) = 0 IF (DO_JVS(4374)) & -! JVS(4374) = Jac_FULL(285,129) - JVS(4374) = -B(567) +! JVS(4374) = Jac_FULL(289,253) + JVS(4374) = B(542) IF (DO_JVS(4375)) & -! JVS(4375) = Jac_FULL(285,132) - JVS(4375) = B(1452) +! JVS(4375) = Jac_FULL(289,254) + JVS(4375) = 0 IF (DO_JVS(4376)) & -! JVS(4376) = Jac_FULL(285,134) - JVS(4376) = -B(557) +! JVS(4376) = Jac_FULL(289,256) + JVS(4376) = 0 IF (DO_JVS(4377)) & -! JVS(4377) = Jac_FULL(285,157) - JVS(4377) = -B(559) +! JVS(4377) = Jac_FULL(289,257) + JVS(4377) = 0 IF (DO_JVS(4378)) & -! JVS(4378) = Jac_FULL(285,172) +! JVS(4378) = Jac_FULL(289,258) JVS(4378) = 0 IF (DO_JVS(4379)) & -! JVS(4379) = Jac_FULL(285,186) - JVS(4379) = -B(503) +! JVS(4379) = Jac_FULL(289,259) + JVS(4379) = 0 IF (DO_JVS(4380)) & -! JVS(4380) = Jac_FULL(285,192) - JVS(4380) = 0.75*B(433)+B(467)+2*B(1453) +! JVS(4380) = Jac_FULL(289,260) + JVS(4380) = -B(1267)+B(1279) IF (DO_JVS(4381)) & -! JVS(4381) = Jac_FULL(285,199) +! JVS(4381) = Jac_FULL(289,261) JVS(4381) = 0 IF (DO_JVS(4382)) & -! JVS(4382) = Jac_FULL(285,207) - JVS(4382) = -B(553) +! JVS(4382) = Jac_FULL(289,262) + JVS(4382) = -B(1235) IF (DO_JVS(4383)) & -! JVS(4383) = Jac_FULL(285,208) - JVS(4383) = -B(511) +! JVS(4383) = Jac_FULL(289,263) + JVS(4383) = B(314) IF (DO_JVS(4384)) & -! JVS(4384) = Jac_FULL(285,213) - JVS(4384) = -B(561) +! JVS(4384) = Jac_FULL(289,264) + JVS(4384) = B(316) IF (DO_JVS(4385)) & -! JVS(4385) = Jac_FULL(285,214) - JVS(4385) = -B(565) +! JVS(4385) = Jac_FULL(289,266) + JVS(4385) = 0 IF (DO_JVS(4386)) & -! JVS(4386) = Jac_FULL(285,215) - JVS(4386) = -B(569) +! JVS(4386) = Jac_FULL(289,267) + JVS(4386) = 0 IF (DO_JVS(4387)) & -! JVS(4387) = Jac_FULL(285,219) - JVS(4387) = -B(575) +! JVS(4387) = Jac_FULL(289,271) + JVS(4387) = -B(1259) IF (DO_JVS(4388)) & -! JVS(4388) = Jac_FULL(285,220) - JVS(4388) = -B(577) +! JVS(4388) = Jac_FULL(289,272) + JVS(4388) = -0.8*B(390) IF (DO_JVS(4389)) & -! JVS(4389) = Jac_FULL(285,221) - JVS(4389) = 0 +! JVS(4389) = Jac_FULL(289,273) + JVS(4389) = B(294)+B(315)+B(317)+B(319)+B(321)+B(323)+B(543) IF (DO_JVS(4390)) & -! JVS(4390) = Jac_FULL(285,223) - JVS(4390) = B(613) +! JVS(4390) = Jac_FULL(289,274) + JVS(4390) = 0 IF (DO_JVS(4391)) & -! JVS(4391) = Jac_FULL(285,230) +! JVS(4391) = Jac_FULL(289,275) JVS(4391) = 0 IF (DO_JVS(4392)) & -! JVS(4392) = Jac_FULL(285,231) - JVS(4392) = B(1457) +! JVS(4392) = Jac_FULL(289,276) + JVS(4392) = B(1280) IF (DO_JVS(4393)) & -! JVS(4393) = Jac_FULL(285,232) +! JVS(4393) = Jac_FULL(289,277) JVS(4393) = 0 IF (DO_JVS(4394)) & -! JVS(4394) = Jac_FULL(285,233) +! JVS(4394) = Jac_FULL(289,278) JVS(4394) = 0 IF (DO_JVS(4395)) & -! JVS(4395) = Jac_FULL(285,234) +! JVS(4395) = Jac_FULL(289,279) JVS(4395) = 0 IF (DO_JVS(4396)) & -! JVS(4396) = Jac_FULL(285,235) - JVS(4396) = -B(563) +! JVS(4396) = Jac_FULL(289,280) + JVS(4396) = 0 IF (DO_JVS(4397)) & -! JVS(4397) = Jac_FULL(285,236) +! JVS(4397) = Jac_FULL(289,281) JVS(4397) = 0 IF (DO_JVS(4398)) & -! JVS(4398) = Jac_FULL(285,237) - JVS(4398) = 0 +! JVS(4398) = Jac_FULL(289,282) + JVS(4398) = -B(1281) IF (DO_JVS(4399)) & -! JVS(4399) = Jac_FULL(285,238) +! JVS(4399) = Jac_FULL(289,283) JVS(4399) = 0 IF (DO_JVS(4400)) & -! JVS(4400) = Jac_FULL(285,239) - JVS(4400) = 0 +! JVS(4400) = Jac_FULL(289,284) + JVS(4400) = B(295) IF (DO_JVS(4401)) & -! JVS(4401) = Jac_FULL(285,240) +! JVS(4401) = Jac_FULL(289,285) JVS(4401) = 0 IF (DO_JVS(4402)) & -! JVS(4402) = Jac_FULL(285,241) - JVS(4402) = 0 +! JVS(4402) = Jac_FULL(289,286) + JVS(4402) = -B(296) IF (DO_JVS(4403)) & -! JVS(4403) = Jac_FULL(285,242) +! JVS(4403) = Jac_FULL(289,287) JVS(4403) = 0 IF (DO_JVS(4404)) & -! JVS(4404) = Jac_FULL(285,243) - JVS(4404) = 0 +! JVS(4404) = Jac_FULL(289,288) + JVS(4404) = -B(308) IF (DO_JVS(4405)) & -! JVS(4405) = Jac_FULL(285,244) - JVS(4405) = 0 +! JVS(4405) = Jac_FULL(289,289) + JVS(4405) = -B(297)-B(309)-0.8*B(391)-B(1236)-B(1256)-B(1260)-B(1268)-B(1282)-B(1287)-B(1288) IF (DO_JVS(4406)) & -! JVS(4406) = Jac_FULL(285,245) +! JVS(4406) = Jac_FULL(289,290) JVS(4406) = 0 IF (DO_JVS(4407)) & -! JVS(4407) = Jac_FULL(285,246) +! JVS(4407) = Jac_FULL(289,291) JVS(4407) = 0 IF (DO_JVS(4408)) & -! JVS(4408) = Jac_FULL(285,247) - JVS(4408) = 0 +! JVS(4408) = Jac_FULL(290,3) + JVS(4408) = B(1445) IF (DO_JVS(4409)) & -! JVS(4409) = Jac_FULL(285,248) - JVS(4409) = 0 +! JVS(4409) = Jac_FULL(290,43) + JVS(4409) = 3*B(454)+3*B(1420) IF (DO_JVS(4410)) & -! JVS(4410) = Jac_FULL(285,249) - JVS(4410) = 0 +! JVS(4410) = Jac_FULL(290,52) + JVS(4410) = 2.37*B(394)+4*B(1421) IF (DO_JVS(4411)) & -! JVS(4411) = Jac_FULL(285,250) - JVS(4411) = 0 +! JVS(4411) = Jac_FULL(290,53) + JVS(4411) = 1.8*B(406)+3*B(1422) IF (DO_JVS(4412)) & -! JVS(4412) = Jac_FULL(285,251) - JVS(4412) = 0 +! JVS(4412) = Jac_FULL(290,54) + JVS(4412) = 0.86*B(408)+2*B(1423) IF (DO_JVS(4413)) & -! JVS(4413) = Jac_FULL(285,252) - JVS(4413) = 0 +! JVS(4413) = Jac_FULL(290,55) + JVS(4413) = 1.9*B(420)+3*B(1424) IF (DO_JVS(4414)) & -! JVS(4414) = Jac_FULL(285,253) - JVS(4414) = 0 +! JVS(4414) = Jac_FULL(290,56) + JVS(4414) = 0.95*B(422)+2*B(1425) IF (DO_JVS(4415)) & -! JVS(4415) = Jac_FULL(285,254) - JVS(4415) = -B(581) +! JVS(4415) = Jac_FULL(290,57) + JVS(4415) = B(1426) IF (DO_JVS(4416)) & -! JVS(4416) = Jac_FULL(285,255) - JVS(4416) = 0 +! JVS(4416) = Jac_FULL(290,59) + JVS(4416) = 0.31*B(410)+B(1432) IF (DO_JVS(4417)) & -! JVS(4417) = Jac_FULL(285,256) - JVS(4417) = 0 +! JVS(4417) = Jac_FULL(290,72) + JVS(4417) = 2*B(450)+B(508)+2*B(1410) IF (DO_JVS(4418)) & -! JVS(4418) = Jac_FULL(285,257) - JVS(4418) = 0 +! JVS(4418) = Jac_FULL(290,75) + JVS(4418) = B(1415) IF (DO_JVS(4419)) & -! JVS(4419) = Jac_FULL(285,258) - JVS(4419) = 0 +! JVS(4419) = Jac_FULL(290,78) + JVS(4419) = 3*B(452)+2*B(510) IF (DO_JVS(4420)) & -! JVS(4420) = Jac_FULL(285,259) - JVS(4420) = -B(545)+B(1458) +! JVS(4420) = Jac_FULL(290,81) + JVS(4420) = 0.79*B(418)+2*B(462)+2*B(1427) IF (DO_JVS(4421)) & -! JVS(4421) = Jac_FULL(285,261) - JVS(4421) = 0 +! JVS(4421) = Jac_FULL(290,82) + JVS(4421) = 0.69*B(414)+2*B(458)+2*B(1428) IF (DO_JVS(4422)) & -! JVS(4422) = Jac_FULL(285,262) - JVS(4422) = -B(505) +! JVS(4422) = Jac_FULL(290,83) + JVS(4422) = B(460)+B(1429) IF (DO_JVS(4423)) & -! JVS(4423) = Jac_FULL(285,263) - JVS(4423) = -B(555) +! JVS(4423) = Jac_FULL(290,84) + JVS(4423) = 0.19*B(404)+B(456)+B(1430) IF (DO_JVS(4424)) & -! JVS(4424) = Jac_FULL(285,264) - JVS(4424) = 0 +! JVS(4424) = Jac_FULL(290,99) + JVS(4424) = B(1450) IF (DO_JVS(4425)) & -! JVS(4425) = Jac_FULL(285,265) - JVS(4425) = 0 +! JVS(4425) = Jac_FULL(290,103) + JVS(4425) = B(491)-B(494)+B(1434) IF (DO_JVS(4426)) & -! JVS(4426) = Jac_FULL(285,266) - JVS(4426) = 0 +! JVS(4426) = Jac_FULL(290,114) + JVS(4426) = -B(538) IF (DO_JVS(4427)) & -! JVS(4427) = Jac_FULL(285,267) - JVS(4427) = B(1460) +! JVS(4427) = Jac_FULL(290,124) + JVS(4427) = -B(530)-B(532) IF (DO_JVS(4428)) & -! JVS(4428) = Jac_FULL(285,268) - JVS(4428) = 0.67*B(429)+0.75*B(434)+2.58*B(436)+0.17*B(444)+1.76*B(446)+0.86*B(448)+0.31*B(450)+0.69*B(454)+0.79& - &*B(458)+1.5*B(460)+0.75*B(462) +! JVS(4428) = Jac_FULL(290,133) + JVS(4428) = -B(526) IF (DO_JVS(4429)) & -! JVS(4429) = Jac_FULL(285,269) - JVS(4429) = B(468)+B(471)+B(479)+B(488)+2*B(490)+3*B(492)+3*B(494)+B(496)+2*B(498)+B(500)+2*B(502) +! JVS(4429) = Jac_FULL(290,135) + JVS(4429) = B(1411) IF (DO_JVS(4430)) & -! JVS(4430) = Jac_FULL(285,270) - JVS(4430) = 0 +! JVS(4430) = Jac_FULL(290,137) + JVS(4430) = -B(516) IF (DO_JVS(4431)) & -! JVS(4431) = Jac_FULL(285,271) - JVS(4431) = 0.67*B(430)+B(480) +! JVS(4431) = Jac_FULL(290,149) + JVS(4431) = 0.35*B(396)+B(448)-B(506)+B(1409) IF (DO_JVS(4432)) & -! JVS(4432) = Jac_FULL(285,272) - JVS(4432) = 0 +! JVS(4432) = Jac_FULL(290,161) + JVS(4432) = -B(518) IF (DO_JVS(4433)) & -! JVS(4433) = Jac_FULL(285,273) - JVS(4433) = B(472)+B(517)+B(521)+B(526)+B(527)+B(614)+B(1454) +! JVS(4433) = Jac_FULL(290,176) + JVS(4433) = 0 IF (DO_JVS(4434)) & -! JVS(4434) = Jac_FULL(285,274) - JVS(4434) = 0 +! JVS(4434) = Jac_FULL(290,190) + JVS(4434) = -B(464) IF (DO_JVS(4435)) & -! JVS(4435) = Jac_FULL(285,275) - JVS(4435) = 0 +! JVS(4435) = Jac_FULL(290,197) + JVS(4435) = 0.75*B(392)+B(428)+2*B(1412) IF (DO_JVS(4436)) & -! JVS(4436) = Jac_FULL(285,276) +! JVS(4436) = Jac_FULL(290,203) JVS(4436) = 0 IF (DO_JVS(4437)) & -! JVS(4437) = Jac_FULL(285,277) - JVS(4437) = -B(507) +! JVS(4437) = Jac_FULL(290,211) + JVS(4437) = -B(512) IF (DO_JVS(4438)) & -! JVS(4438) = Jac_FULL(285,278) - JVS(4438) = 0 +! JVS(4438) = Jac_FULL(290,212) + JVS(4438) = -B(472) IF (DO_JVS(4439)) & -! JVS(4439) = Jac_FULL(285,279) - JVS(4439) = 0 +! JVS(4439) = Jac_FULL(290,217) + JVS(4439) = -B(520) IF (DO_JVS(4440)) & -! JVS(4440) = Jac_FULL(285,280) - JVS(4440) = B(522) +! JVS(4440) = Jac_FULL(290,218) + JVS(4440) = -B(524) IF (DO_JVS(4441)) & -! JVS(4441) = Jac_FULL(285,281) - JVS(4441) = -B(513)-B(515) +! JVS(4441) = Jac_FULL(290,219) + JVS(4441) = -B(528) IF (DO_JVS(4442)) & -! JVS(4442) = Jac_FULL(285,282) - JVS(4442) = 0 +! JVS(4442) = Jac_FULL(290,221) + JVS(4442) = -B(534) IF (DO_JVS(4443)) & -! JVS(4443) = Jac_FULL(285,283) - JVS(4443) = 0 +! JVS(4443) = Jac_FULL(290,224) + JVS(4443) = -B(536) IF (DO_JVS(4444)) & -! JVS(4444) = Jac_FULL(285,284) - JVS(4444) = B(518) +! JVS(4444) = Jac_FULL(290,225) + JVS(4444) = 0 IF (DO_JVS(4445)) & -! JVS(4445) = Jac_FULL(285,285) - JVS(4445) = -B(504)-B(506)-B(508)-B(509)-B(512)-B(514)-B(516)-B(528)-B(534)-B(536)-B(546)-B(548)+B(550)+2*B(552)& - &-B(554)-B(556)-B(558)-B(560)-B(562)-B(564)-B(566)-B(568)-B(570)-B(572)-B(574)-B(576)-B(578)-B(580)-B(582) +! JVS(4445) = Jac_FULL(290,227) + JVS(4445) = 0.249*B(568) IF (DO_JVS(4446)) & -! JVS(4446) = Jac_FULL(285,286) +! JVS(4446) = Jac_FULL(290,234) JVS(4446) = 0 IF (DO_JVS(4447)) & -! JVS(4447) = Jac_FULL(285,287) - JVS(4447) = 0 +! JVS(4447) = Jac_FULL(290,235) + JVS(4447) = B(1416) IF (DO_JVS(4448)) & -! JVS(4448) = Jac_FULL(286,62) - JVS(4448) = B(395)+B(397)+B(1496) +! JVS(4448) = Jac_FULL(290,236) + JVS(4448) = 0 IF (DO_JVS(4449)) & -! JVS(4449) = Jac_FULL(286,82) - JVS(4449) = B(311)+0.75*B(313)+B(315) +! JVS(4449) = Jac_FULL(290,237) + JVS(4449) = 0 IF (DO_JVS(4450)) & -! JVS(4450) = Jac_FULL(286,85) - JVS(4450) = B(22)-B(23) +! JVS(4450) = Jac_FULL(290,238) + JVS(4450) = 0 IF (DO_JVS(4451)) & -! JVS(4451) = Jac_FULL(286,119) - JVS(4451) = B(1497) +! JVS(4451) = Jac_FULL(290,239) + JVS(4451) = -B(522) IF (DO_JVS(4452)) & -! JVS(4452) = Jac_FULL(286,135) - JVS(4452) = -B(8) +! JVS(4452) = Jac_FULL(290,240) + JVS(4452) = 0 IF (DO_JVS(4453)) & -! JVS(4453) = Jac_FULL(286,144) - JVS(4453) = -B(1) +! JVS(4453) = Jac_FULL(290,241) + JVS(4453) = 0 IF (DO_JVS(4454)) & -! JVS(4454) = Jac_FULL(286,191) - JVS(4454) = -B(661) +! JVS(4454) = Jac_FULL(290,242) + JVS(4454) = 0 IF (DO_JVS(4455)) & -! JVS(4455) = Jac_FULL(286,208) - JVS(4455) = -B(15) +! JVS(4455) = Jac_FULL(290,243) + JVS(4455) = 0 IF (DO_JVS(4456)) & -! JVS(4456) = Jac_FULL(286,220) +! JVS(4456) = Jac_FULL(290,244) JVS(4456) = 0 IF (DO_JVS(4457)) & -! JVS(4457) = Jac_FULL(286,230) - JVS(4457) = -B(653) +! JVS(4457) = Jac_FULL(290,245) + JVS(4457) = 0 IF (DO_JVS(4458)) & -! JVS(4458) = Jac_FULL(286,244) +! JVS(4458) = Jac_FULL(290,246) JVS(4458) = 0 IF (DO_JVS(4459)) & -! JVS(4459) = Jac_FULL(286,247) +! JVS(4459) = Jac_FULL(290,247) JVS(4459) = 0 IF (DO_JVS(4460)) & -! JVS(4460) = Jac_FULL(286,254) +! JVS(4460) = Jac_FULL(290,248) JVS(4460) = 0 IF (DO_JVS(4461)) & -! JVS(4461) = Jac_FULL(286,256) - JVS(4461) = -B(1326) +! JVS(4461) = Jac_FULL(290,249) + JVS(4461) = 0 IF (DO_JVS(4462)) & -! JVS(4462) = Jac_FULL(286,257) +! JVS(4462) = Jac_FULL(290,250) JVS(4462) = 0 IF (DO_JVS(4463)) & -! JVS(4463) = Jac_FULL(286,258) +! JVS(4463) = Jac_FULL(290,251) JVS(4463) = 0 IF (DO_JVS(4464)) & -! JVS(4464) = Jac_FULL(286,260) +! JVS(4464) = Jac_FULL(290,252) JVS(4464) = 0 IF (DO_JVS(4465)) & -! JVS(4465) = Jac_FULL(286,261) - JVS(4465) = 0 +! JVS(4465) = Jac_FULL(290,253) + JVS(4465) = -B(540) IF (DO_JVS(4466)) & -! JVS(4466) = Jac_FULL(286,262) - JVS(4466) = -B(20) +! JVS(4466) = Jac_FULL(290,254) + JVS(4466) = 0 IF (DO_JVS(4467)) & -! JVS(4467) = Jac_FULL(286,263) +! JVS(4467) = Jac_FULL(290,255) JVS(4467) = 0 IF (DO_JVS(4468)) & -! JVS(4468) = Jac_FULL(286,266) +! JVS(4468) = Jac_FULL(290,256) JVS(4468) = 0 IF (DO_JVS(4469)) & -! JVS(4469) = Jac_FULL(286,267) - JVS(4469) = -B(1312) +! JVS(4469) = Jac_FULL(290,257) + JVS(4469) = 0 IF (DO_JVS(4470)) & -! JVS(4470) = Jac_FULL(286,268) +! JVS(4470) = Jac_FULL(290,258) JVS(4470) = 0 IF (DO_JVS(4471)) & -! JVS(4471) = Jac_FULL(286,269) - JVS(4471) = -B(24)+B(312)+0.75*B(314)-B(317)+B(398) +! JVS(4471) = Jac_FULL(290,259) + JVS(4471) = 0 IF (DO_JVS(4472)) & -! JVS(4472) = Jac_FULL(286,270) +! JVS(4472) = Jac_FULL(290,260) JVS(4472) = 0 IF (DO_JVS(4473)) & -! JVS(4473) = Jac_FULL(286,271) +! JVS(4473) = Jac_FULL(290,261) JVS(4473) = 0 IF (DO_JVS(4474)) & -! JVS(4474) = Jac_FULL(286,272) - JVS(4474) = 0 +! JVS(4474) = Jac_FULL(290,262) + JVS(4474) = -B(504)+B(1417) IF (DO_JVS(4475)) & -! JVS(4475) = Jac_FULL(286,273) - JVS(4475) = 0 +! JVS(4475) = Jac_FULL(290,263) + JVS(4475) = -B(466) IF (DO_JVS(4476)) & -! JVS(4476) = Jac_FULL(286,274) +! JVS(4476) = Jac_FULL(290,264) JVS(4476) = 0 IF (DO_JVS(4477)) & -! JVS(4477) = Jac_FULL(286,275) - JVS(4477) = 0 +! JVS(4477) = Jac_FULL(290,266) + JVS(4477) = -B(514) IF (DO_JVS(4478)) & -! JVS(4478) = Jac_FULL(286,276) +! JVS(4478) = Jac_FULL(290,267) JVS(4478) = 0 IF (DO_JVS(4479)) & -! JVS(4479) = Jac_FULL(286,277) - JVS(4479) = -B(2)-B(9)-B(17) +! JVS(4479) = Jac_FULL(290,268) + JVS(4479) = 0 IF (DO_JVS(4480)) & -! JVS(4480) = Jac_FULL(286,278) +! JVS(4480) = Jac_FULL(290,269) JVS(4480) = 0 IF (DO_JVS(4481)) & -! JVS(4481) = Jac_FULL(286,279) +! JVS(4481) = Jac_FULL(290,270) JVS(4481) = 0 IF (DO_JVS(4482)) & -! JVS(4482) = Jac_FULL(286,280) - JVS(4482) = 0 +! JVS(4482) = Jac_FULL(290,271) + JVS(4482) = B(1419) IF (DO_JVS(4483)) & -! JVS(4483) = Jac_FULL(286,281) - JVS(4483) = 0 +! JVS(4483) = Jac_FULL(290,272) + JVS(4483) = 0.66*B(388)+0.75*B(393)+2.37*B(395)+0.35*B(397)+0.19*B(405)+1.8*B(407)+0.86*B(409)+0.31*B(411)+0.69*B(415)& + &+0.79*B(419)+1.9*B(421)+0.95*B(423) IF (DO_JVS(4484)) & -! JVS(4484) = Jac_FULL(286,282) +! JVS(4484) = Jac_FULL(290,273) JVS(4484) = 0 IF (DO_JVS(4485)) & -! JVS(4485) = Jac_FULL(286,283) +! JVS(4485) = Jac_FULL(290,274) JVS(4485) = 0 IF (DO_JVS(4486)) & -! JVS(4486) = Jac_FULL(286,284) - JVS(4486) = B(396) +! JVS(4486) = Jac_FULL(290,275) + JVS(4486) = 0.66*B(389)+B(440) IF (DO_JVS(4487)) & -! JVS(4487) = Jac_FULL(286,285) +! JVS(4487) = Jac_FULL(290,276) JVS(4487) = 0 IF (DO_JVS(4488)) & -! JVS(4488) = Jac_FULL(286,286) - JVS(4488) = -B(3)-B(10)-B(16)-B(18)-B(19)-B(21)-B(318)-B(654)-B(662)-B(1313)-B(1327) +! JVS(4488) = Jac_FULL(290,277) + JVS(4488) = 0 IF (DO_JVS(4489)) & -! JVS(4489) = Jac_FULL(286,287) - JVS(4489) = B(316) +! JVS(4489) = Jac_FULL(290,278) + JVS(4489) = 0 IF (DO_JVS(4490)) & -! JVS(4490) = Jac_FULL(287,63) - JVS(4490) = 0.3*B(1417) +! JVS(4490) = Jac_FULL(290,279) + JVS(4490) = B(482) IF (DO_JVS(4491)) & -! JVS(4491) = Jac_FULL(287,71) - JVS(4491) = B(1492) +! JVS(4491) = Jac_FULL(290,280) + JVS(4491) = 0 IF (DO_JVS(4492)) & -! JVS(4492) = Jac_FULL(287,82) - JVS(4492) = -B(315) +! JVS(4492) = Jac_FULL(290,281) + JVS(4492) = 0 IF (DO_JVS(4493)) & -! JVS(4493) = Jac_FULL(287,99) - JVS(4493) = -B(1197) +! JVS(4493) = Jac_FULL(290,282) + JVS(4493) = -B(468) IF (DO_JVS(4494)) & -! JVS(4494) = Jac_FULL(287,101) - JVS(4494) = B(1410) +! JVS(4494) = Jac_FULL(290,283) + JVS(4494) = 0 IF (DO_JVS(4495)) & -! JVS(4495) = Jac_FULL(287,109) - JVS(4495) = -B(1187) +! JVS(4495) = Jac_FULL(290,284) + JVS(4495) = -B(474)-B(476) IF (DO_JVS(4496)) & -! JVS(4496) = Jac_FULL(287,112) - JVS(4496) = -B(143) +! JVS(4496) = Jac_FULL(290,285) + JVS(4496) = B(432)+B(478)+B(483)+B(487)+B(488)+0.249*B(569)+B(1413) IF (DO_JVS(4497)) & -! JVS(4497) = Jac_FULL(287,117) - JVS(4497) = -B(1183) +! JVS(4497) = Jac_FULL(290,286) + JVS(4497) = B(429)+B(433)+B(441)+B(449)+2*B(451)+3*B(453)+3*B(455)+B(457)+2*B(459)+B(461)+2*B(463) IF (DO_JVS(4498)) & -! JVS(4498) = Jac_FULL(287,131) - JVS(4498) = B(743) +! JVS(4498) = Jac_FULL(290,287) + JVS(4498) = 0 IF (DO_JVS(4499)) & -! JVS(4499) = Jac_FULL(287,138) - JVS(4499) = -B(1193) +! JVS(4499) = Jac_FULL(290,288) + JVS(4499) = B(479) IF (DO_JVS(4500)) & -! JVS(4500) = Jac_FULL(287,140) - JVS(4500) = -B(592) +! JVS(4500) = Jac_FULL(290,289) + JVS(4500) = 0 IF (DO_JVS(4501)) & -! JVS(4501) = Jac_FULL(287,149) - JVS(4501) = B(1108) +! JVS(4501) = Jac_FULL(290,290) + JVS(4501) = -B(465)-B(467)-B(469)-B(470)-B(473)-B(475)-B(477)-B(489)-B(495)-B(505)-B(507)+B(509)+2*B(511)-B(513)& + &-B(515)-B(517)-B(519)-B(521)-B(523)-B(525)-B(527)-B(529)-B(531)-B(533)-B(535)-B(537)-B(539)-B(541) IF (DO_JVS(4502)) & -! JVS(4502) = Jac_FULL(287,150) - JVS(4502) = -B(685) +! JVS(4502) = Jac_FULL(290,291) + JVS(4502) = 0 IF (DO_JVS(4503)) & -! JVS(4503) = Jac_FULL(287,151) - JVS(4503) = -B(687) +! JVS(4503) = Jac_FULL(291,50) + JVS(4503) = B(150) IF (DO_JVS(4504)) & -! JVS(4504) = Jac_FULL(287,157) - JVS(4504) = -B(266) +! JVS(4504) = Jac_FULL(291,51) + JVS(4504) = B(1405) IF (DO_JVS(4505)) & -! JVS(4505) = Jac_FULL(287,165) - JVS(4505) = -B(693) +! JVS(4505) = Jac_FULL(291,62) + JVS(4505) = B(1466) IF (DO_JVS(4506)) & -! JVS(4506) = Jac_FULL(287,169) - JVS(4506) = B(89)+B(1414) +! JVS(4506) = Jac_FULL(291,63) + JVS(4506) = B(1464) IF (DO_JVS(4507)) & -! JVS(4507) = Jac_FULL(287,172) - JVS(4507) = B(331)+B(1444) +! JVS(4507) = Jac_FULL(291,65) + JVS(4507) = -B(382) IF (DO_JVS(4508)) & -! JVS(4508) = Jac_FULL(287,174) - JVS(4508) = -B(739) +! JVS(4508) = Jac_FULL(291,67) + JVS(4508) = B(101)+0.7*B(1376) IF (DO_JVS(4509)) & -! JVS(4509) = Jac_FULL(287,175) - JVS(4509) = -B(1152) +! JVS(4509) = Jac_FULL(291,68) + JVS(4509) = B(1110) IF (DO_JVS(4510)) & -! JVS(4510) = Jac_FULL(287,178) - JVS(4510) = -B(1175) +! JVS(4510) = Jac_FULL(291,74) + JVS(4510) = B(281)+B(1452) IF (DO_JVS(4511)) & -! JVS(4511) = Jac_FULL(287,187) - JVS(4511) = B(1210)-B(1214) +! JVS(4511) = Jac_FULL(291,87) + JVS(4511) = B(700)+B(1469) IF (DO_JVS(4512)) & -! JVS(4512) = Jac_FULL(287,191) - JVS(4512) = B(659) +! JVS(4512) = Jac_FULL(291,89) + JVS(4512) = B(696)+B(1467) IF (DO_JVS(4513)) & -! JVS(4513) = Jac_FULL(287,196) - JVS(4513) = -B(737) +! JVS(4513) = Jac_FULL(291,91) + JVS(4513) = B(702)+B(1470) IF (DO_JVS(4514)) & -! JVS(4514) = Jac_FULL(287,199) - JVS(4514) = 0 +! JVS(4514) = Jac_FULL(291,92) + JVS(4514) = B(566) IF (DO_JVS(4515)) & -! JVS(4515) = Jac_FULL(287,203) - JVS(4515) = 0 +! JVS(4515) = Jac_FULL(291,96) + JVS(4515) = B(698)+B(1468) IF (DO_JVS(4516)) & -! JVS(4516) = Jac_FULL(287,205) - JVS(4516) = -B(1124) +! JVS(4516) = Jac_FULL(291,97) + JVS(4516) = B(1158)+B(1159) IF (DO_JVS(4517)) & -! JVS(4517) = Jac_FULL(287,206) - JVS(4517) = -B(1226) +! JVS(4517) = Jac_FULL(291,102) + JVS(4517) = B(75)+B(76)+B(1370) IF (DO_JVS(4518)) & -! JVS(4518) = Jac_FULL(287,210) - JVS(4518) = 0 +! JVS(4518) = Jac_FULL(291,113) + JVS(4518) = B(1391) IF (DO_JVS(4519)) & -! JVS(4519) = Jac_FULL(287,211) - JVS(4519) = -B(723) +! JVS(4519) = Jac_FULL(291,121) + JVS(4519) = B(842) IF (DO_JVS(4520)) & -! JVS(4520) = Jac_FULL(287,212) - JVS(4520) = -B(725) +! JVS(4520) = Jac_FULL(291,123) + JVS(4520) = B(846) IF (DO_JVS(4521)) & -! JVS(4521) = Jac_FULL(287,217) - JVS(4521) = 0 +! JVS(4521) = Jac_FULL(291,134) + JVS(4521) = B(1462) IF (DO_JVS(4522)) & -! JVS(4522) = Jac_FULL(287,218) - JVS(4522) = -B(228) +! JVS(4522) = Jac_FULL(291,138) + JVS(4522) = 0 IF (DO_JVS(4523)) & -! JVS(4523) = Jac_FULL(287,220) - JVS(4523) = -B(953) +! JVS(4523) = Jac_FULL(291,139) + JVS(4523) = B(852)+B(1494) IF (DO_JVS(4524)) & -! JVS(4524) = Jac_FULL(287,221) - JVS(4524) = -B(703) +! JVS(4524) = Jac_FULL(291,140) + JVS(4524) = B(856)+B(1495) IF (DO_JVS(4525)) & -! JVS(4525) = Jac_FULL(287,222) - JVS(4525) = -B(182) +! JVS(4525) = Jac_FULL(291,144) + JVS(4525) = B(1003)-B(1007) IF (DO_JVS(4526)) & -! JVS(4526) = Jac_FULL(287,224) - JVS(4526) = 0 +! JVS(4526) = Jac_FULL(291,145) + JVS(4526) = B(1009)-B(1013) IF (DO_JVS(4527)) & -! JVS(4527) = Jac_FULL(287,225) - JVS(4527) = 0 +! JVS(4527) = Jac_FULL(291,146) + JVS(4527) = 1.11*B(977)+0.09*B(979) IF (DO_JVS(4528)) & -! JVS(4528) = Jac_FULL(287,226) +! JVS(4528) = Jac_FULL(291,147) JVS(4528) = 0 IF (DO_JVS(4529)) & -! JVS(4529) = Jac_FULL(287,228) - JVS(4529) = -B(230) +! JVS(4529) = Jac_FULL(291,150) + JVS(4529) = B(971) IF (DO_JVS(4530)) & -! JVS(4530) = Jac_FULL(287,229) - JVS(4530) = 0 +! JVS(4530) = Jac_FULL(291,151) + JVS(4530) = B(945)+B(1499) IF (DO_JVS(4531)) & -! JVS(4531) = Jac_FULL(287,230) - JVS(4531) = B(645) +! JVS(4531) = Jac_FULL(291,152) + JVS(4531) = B(880) IF (DO_JVS(4532)) & -! JVS(4532) = Jac_FULL(287,232) - JVS(4532) = 0 +! JVS(4532) = Jac_FULL(291,153) + JVS(4532) = B(1058) IF (DO_JVS(4533)) & -! JVS(4533) = Jac_FULL(287,234) - JVS(4533) = -B(679) +! JVS(4533) = Jac_FULL(291,160) + JVS(4533) = -B(1173) IF (DO_JVS(4534)) & -! JVS(4534) = Jac_FULL(287,236) - JVS(4534) = 0 +! JVS(4534) = Jac_FULL(291,166) + JVS(4534) = B(888) IF (DO_JVS(4535)) & -! JVS(4535) = Jac_FULL(287,237) - JVS(4535) = 0.69*B(1042) +! JVS(4535) = Jac_FULL(291,167) + JVS(4535) = 0.459*B(871)+1.728*B(873) IF (DO_JVS(4536)) & -! JVS(4536) = Jac_FULL(287,238) - JVS(4536) = 0 +! JVS(4536) = Jac_FULL(291,168) + JVS(4536) = B(894) IF (DO_JVS(4537)) & -! JVS(4537) = Jac_FULL(287,239) - JVS(4537) = 0 +! JVS(4537) = Jac_FULL(291,173) + JVS(4537) = B(86)+B(1373) IF (DO_JVS(4538)) & -! JVS(4538) = Jac_FULL(287,240) - JVS(4538) = -B(971) +! JVS(4538) = Jac_FULL(291,176) + JVS(4538) = B(1404) IF (DO_JVS(4539)) & -! JVS(4539) = Jac_FULL(287,241) - JVS(4539) = -B(973) +! JVS(4539) = Jac_FULL(291,178) + JVS(4539) = B(1460) IF (DO_JVS(4540)) & -! JVS(4540) = Jac_FULL(287,242) - JVS(4540) = 0 +! JVS(4540) = Jac_FULL(291,179) + JVS(4540) = 0.995*B(1101)+B(1103) IF (DO_JVS(4541)) & -! JVS(4541) = Jac_FULL(287,243) - JVS(4541) = 0 +! JVS(4541) = Jac_FULL(291,180) + JVS(4541) = B(1152)-B(1154) IF (DO_JVS(4542)) & -! JVS(4542) = Jac_FULL(287,244) - JVS(4542) = 0 +! JVS(4542) = Jac_FULL(291,181) + JVS(4542) = B(1497) IF (DO_JVS(4543)) & -! JVS(4543) = Jac_FULL(287,245) - JVS(4543) = -B(1103) +! JVS(4543) = Jac_FULL(291,182) + JVS(4543) = B(789) IF (DO_JVS(4544)) & -! JVS(4544) = Jac_FULL(287,246) - JVS(4544) = 0 +! JVS(4544) = Jac_FULL(291,183) + JVS(4544) = B(796) IF (DO_JVS(4545)) & -! JVS(4545) = Jac_FULL(287,247) - JVS(4545) = -B(1040) +! JVS(4545) = Jac_FULL(291,184) + JVS(4545) = B(1124)+B(1126) IF (DO_JVS(4546)) & -! JVS(4546) = Jac_FULL(287,248) +! JVS(4546) = Jac_FULL(291,186) JVS(4546) = 0 IF (DO_JVS(4547)) & -! JVS(4547) = Jac_FULL(287,249) - JVS(4547) = 0 +! JVS(4547) = Jac_FULL(291,187) + JVS(4547) = B(803) IF (DO_JVS(4548)) & -! JVS(4548) = Jac_FULL(287,251) +! JVS(4548) = Jac_FULL(291,188) JVS(4548) = 0 IF (DO_JVS(4549)) & -! JVS(4549) = Jac_FULL(287,252) - JVS(4549) = 0 +! JVS(4549) = Jac_FULL(291,189) + JVS(4549) = B(963) IF (DO_JVS(4550)) & -! JVS(4550) = Jac_FULL(287,253) - JVS(4550) = 0 +! JVS(4550) = Jac_FULL(291,191) + JVS(4550) = -B(1161)+B(1163)+B(1165) IF (DO_JVS(4551)) & -! JVS(4551) = Jac_FULL(287,254) - JVS(4551) = -B(222) +! JVS(4551) = Jac_FULL(291,193) + JVS(4551) = B(71) IF (DO_JVS(4552)) & -! JVS(4552) = Jac_FULL(287,255) - JVS(4552) = -B(156) +! JVS(4552) = Jac_FULL(291,194) + JVS(4552) = B(839) IF (DO_JVS(4553)) & -! JVS(4553) = Jac_FULL(287,257) - JVS(4553) = 0 +! JVS(4553) = Jac_FULL(291,195) + JVS(4553) = B(608)-B(610) IF (DO_JVS(4554)) & -! JVS(4554) = Jac_FULL(287,258) - JVS(4554) = 0 +! JVS(4554) = Jac_FULL(291,198) + JVS(4554) = B(590)+B(1474) IF (DO_JVS(4555)) & -! JVS(4555) = Jac_FULL(287,259) - JVS(4555) = B(485)+B(543)+B(545)+B(1458) +! JVS(4555) = Jac_FULL(291,199) + JVS(4555) = B(1461) IF (DO_JVS(4556)) & -! JVS(4556) = Jac_FULL(287,260) - JVS(4556) = B(70) +! JVS(4556) = Jac_FULL(291,200) + JVS(4556) = B(1483) IF (DO_JVS(4557)) & -! JVS(4557) = Jac_FULL(287,261) - JVS(4557) = -B(100) +! JVS(4557) = Jac_FULL(291,201) + JVS(4557) = 2*B(138)+B(191)+B(264) IF (DO_JVS(4558)) & -! JVS(4558) = Jac_FULL(287,262) - JVS(4558) = -B(96) +! JVS(4558) = Jac_FULL(291,202) + JVS(4558) = B(1398) IF (DO_JVS(4559)) & -! JVS(4559) = Jac_FULL(287,263) - JVS(4559) = -B(1254) +! JVS(4559) = Jac_FULL(291,203) + JVS(4559) = B(549)+2*B(550)+B(1440) IF (DO_JVS(4560)) & -! JVS(4560) = Jac_FULL(287,265) - JVS(4560) = B(597) +! JVS(4560) = Jac_FULL(291,204) + JVS(4560) = B(1029) IF (DO_JVS(4561)) & -! JVS(4561) = Jac_FULL(287,266) - JVS(4561) = B(598)+B(1482) +! JVS(4561) = Jac_FULL(291,205) + JVS(4561) = B(1040) IF (DO_JVS(4562)) & -! JVS(4562) = Jac_FULL(287,268) - JVS(4562) = 0 +! JVS(4562) = Jac_FULL(291,207) + JVS(4562) = B(1044)-B(1046) IF (DO_JVS(4563)) & -! JVS(4563) = Jac_FULL(287,269) - JVS(4563) = B(71)-B(85)+B(486)+B(744)+0.69*B(1043)+B(1109) +! JVS(4563) = Jac_FULL(291,208) + JVS(4563) = B(588)+B(1075)+B(1459) IF (DO_JVS(4564)) & -! JVS(4564) = Jac_FULL(287,270) - JVS(4564) = B(31)-B(87)-B(94)+B(405)+B(646)+B(660)+B(1211) +! JVS(4564) = Jac_FULL(291,209) + JVS(4564) = B(120) IF (DO_JVS(4565)) & -! JVS(4565) = Jac_FULL(287,271) - JVS(4565) = 0 +! JVS(4565) = Jac_FULL(291,210) + JVS(4565) = 0.5*B(1175)+B(1177) IF (DO_JVS(4566)) & -! JVS(4566) = Jac_FULL(287,272) - JVS(4566) = 0 +! JVS(4566) = Jac_FULL(291,213) + JVS(4566) = B(1071)+B(1509)+B(1510) IF (DO_JVS(4567)) & -! JVS(4567) = Jac_FULL(287,273) - JVS(4567) = 0 +! JVS(4567) = Jac_FULL(291,214) + JVS(4567) = B(862)+B(1496) IF (DO_JVS(4568)) & -! JVS(4568) = Jac_FULL(287,274) - JVS(4568) = 0 +! JVS(4568) = Jac_FULL(291,215) + JVS(4568) = B(658)+B(674)+0.5*B(679) IF (DO_JVS(4569)) & -! JVS(4569) = Jac_FULL(287,275) - JVS(4569) = 0 +! JVS(4569) = Jac_FULL(291,216) + JVS(4569) = 2*B(660)+0.5*B(668)+B(672)+2*B(676)+0.5*B(680)+B(681) IF (DO_JVS(4570)) & -! JVS(4570) = Jac_FULL(287,276) - JVS(4570) = 0 +! JVS(4570) = Jac_FULL(291,217) + JVS(4570) = B(106) IF (DO_JVS(4571)) & -! JVS(4571) = Jac_FULL(287,277) - JVS(4571) = B(32) +! JVS(4571) = Jac_FULL(291,220) + JVS(4571) = B(858)+B(1493) IF (DO_JVS(4572)) & -! JVS(4572) = Jac_FULL(287,278) - JVS(4572) = 0 +! JVS(4572) = Jac_FULL(291,222) + JVS(4572) = 0.058*B(955)+1.065*B(959) IF (DO_JVS(4573)) & -! JVS(4573) = Jac_FULL(287,279) +! JVS(4573) = Jac_FULL(291,224) JVS(4573) = 0 IF (DO_JVS(4574)) & -! JVS(4574) = Jac_FULL(287,280) - JVS(4574) = -B(83) +! JVS(4574) = Jac_FULL(291,225) + JVS(4574) = 0.78*B(646)+B(654) IF (DO_JVS(4575)) & -! JVS(4575) = Jac_FULL(287,281) - JVS(4575) = -B(81) +! JVS(4575) = Jac_FULL(291,227) + JVS(4575) = -B(553)+B(582) IF (DO_JVS(4576)) & -! JVS(4576) = Jac_FULL(287,282) - JVS(4576) = B(332)-B(341) +! JVS(4576) = Jac_FULL(291,228) + JVS(4576) = B(823) IF (DO_JVS(4577)) & -! JVS(4577) = Jac_FULL(287,283) - JVS(4577) = 0 +! JVS(4577) = Jac_FULL(291,229) + JVS(4577) = B(829) IF (DO_JVS(4578)) & -! JVS(4578) = Jac_FULL(287,284) - JVS(4578) = -B(401)+B(406)+B(544) +! JVS(4578) = Jac_FULL(291,232) + JVS(4578) = B(900) IF (DO_JVS(4579)) & -! JVS(4579) = Jac_FULL(287,285) - JVS(4579) = B(546) +! JVS(4579) = Jac_FULL(291,234) + JVS(4579) = B(594)-B(596) IF (DO_JVS(4580)) & -! JVS(4580) = Jac_FULL(287,286) - JVS(4580) = 0 +! JVS(4580) = Jac_FULL(291,235) + JVS(4580) = B(444)+B(1416) IF (DO_JVS(4581)) & -! JVS(4581) = Jac_FULL(287,287) - JVS(4581) = -B(82)-B(84)-B(86)-B(88)-B(95)-B(97)-B(101)-B(144)-B(157)-B(183)-B(223)-B(229)-B(231)-B(267)-2*B(307)& - &-B(316)-B(342)-B(402)-B(593)-B(680)-B(686)-B(688)-B(694)-B(704)-B(724)-B(726)-B(738)-B(740)-B(954)-B(972)& - &-B(974)-B(1041)-B(1104)-B(1125)-B(1153)-B(1176)-B(1184)-B(1188)-B(1194)-B(1198)-B(1215)-B(1227)-B(1255)& - &-B(1258)-B(1259)-B(1260)-B(1412)-B(1413) +! JVS(4581) = Jac_FULL(291,237) + JVS(4581) = B(116) +IF (DO_JVS(4582)) & +! JVS(4582) = Jac_FULL(291,238) + JVS(4582) = 0.82*B(622)+B(630) +IF (DO_JVS(4583)) & +! JVS(4583) = Jac_FULL(291,239) + JVS(4583) = B(110) +IF (DO_JVS(4584)) & +! JVS(4584) = Jac_FULL(291,240) + JVS(4584) = B(967)+B(1500) +IF (DO_JVS(4585)) & +! JVS(4585) = Jac_FULL(291,241) + JVS(4585) = 0.31*B(993)+0.7*B(1482) +IF (DO_JVS(4586)) & +! JVS(4586) = Jac_FULL(291,242) + JVS(4586) = 0.022*B(1073)+0.3*B(1507)+B(1508) +IF (DO_JVS(4587)) & +! JVS(4587) = Jac_FULL(291,243) + JVS(4587) = 0.565*B(975)+1.555*B(1501) +IF (DO_JVS(4588)) & +! JVS(4588) = Jac_FULL(291,244) + JVS(4588) = B(752)+B(756) +IF (DO_JVS(4589)) & +! JVS(4589) = Jac_FULL(291,245) + JVS(4589) = B(744)+B(748) +IF (DO_JVS(4590)) & +! JVS(4590) = Jac_FULL(291,246) + JVS(4590) = 0.563*B(911)+B(924)+B(930) +IF (DO_JVS(4591)) & +! JVS(4591) = Jac_FULL(291,247) + JVS(4591) = 0.527*B(906)+1.86*B(910)+0.563*B(912)+0.611*B(916)+B(918)+2*B(922)+2*B(926) +IF (DO_JVS(4592)) & +! JVS(4592) = Jac_FULL(291,248) + JVS(4592) = 0 +IF (DO_JVS(4593)) & +! JVS(4593) = Jac_FULL(291,249) + JVS(4593) = 0.5*B(1048)+2*B(1050)+2*B(1054)+0.7*B(1056) +IF (DO_JVS(4594)) & +! JVS(4594) = Jac_FULL(291,251) + JVS(4594) = 0 +IF (DO_JVS(4595)) & +! JVS(4595) = Jac_FULL(291,252) + JVS(4595) = B(130) +IF (DO_JVS(4596)) & +! JVS(4596) = Jac_FULL(291,253) + JVS(4596) = 0 +IF (DO_JVS(4597)) & +! JVS(4597) = Jac_FULL(291,254) + JVS(4597) = 0.928*B(132) +IF (DO_JVS(4598)) & +! JVS(4598) = Jac_FULL(291,255) + JVS(4598) = -B(148)+B(151) +IF (DO_JVS(4599)) & +! JVS(4599) = Jac_FULL(291,256) + JVS(4599) = B(124) +IF (DO_JVS(4600)) & +! JVS(4600) = Jac_FULL(291,257) + JVS(4600) = 2*B(128)+B(183)+B(262) +IF (DO_JVS(4601)) & +! JVS(4601) = Jac_FULL(291,258) + JVS(4601) = B(134) +IF (DO_JVS(4602)) & +! JVS(4602) = Jac_FULL(291,259) + JVS(4602) = 0 +IF (DO_JVS(4603)) & +! JVS(4603) = Jac_FULL(291,261) + JVS(4603) = -B(99)+B(102)+B(263)+B(265)+B(673)+B(919) +IF (DO_JVS(4604)) & +! JVS(4604) = Jac_FULL(291,262) + JVS(4604) = B(1418) +IF (DO_JVS(4605)) & +! JVS(4605) = Jac_FULL(291,264) + JVS(4605) = 0 +IF (DO_JVS(4606)) & +! JVS(4606) = Jac_FULL(291,265) + JVS(4606) = B(1367) +IF (DO_JVS(4607)) & +! JVS(4607) = Jac_FULL(291,266) + JVS(4607) = B(49)+B(184)+B(192)-B(279)+0.5*B(669)+0.611*B(917)+0.7*B(1057)+B(1205) +IF (DO_JVS(4608)) & +! JVS(4608) = Jac_FULL(291,267) + JVS(4608) = 0 +IF (DO_JVS(4609)) & +! JVS(4609) = Jac_FULL(291,268) + JVS(4609) = 0 +IF (DO_JVS(4610)) & +! JVS(4610) = Jac_FULL(291,269) + JVS(4610) = -B(547) +IF (DO_JVS(4611)) & +! JVS(4611) = Jac_FULL(291,270) + JVS(4611) = B(555) +IF (DO_JVS(4612)) & +! JVS(4612) = Jac_FULL(291,272) + JVS(4612) = 0 +IF (DO_JVS(4613)) & +! JVS(4613) = Jac_FULL(291,273) + JVS(4613) = B(312)-B(324) +IF (DO_JVS(4614)) & +! JVS(4614) = Jac_FULL(291,274) + JVS(4614) = B(300)-B(326) +IF (DO_JVS(4615)) & +! JVS(4615) = Jac_FULL(291,275) + JVS(4615) = 0 +IF (DO_JVS(4616)) & +! JVS(4616) = Jac_FULL(291,276) + JVS(4616) = 0 +IF (DO_JVS(4617)) & +! JVS(4617) = Jac_FULL(291,277) + JVS(4617) = 0 +IF (DO_JVS(4618)) & +! JVS(4618) = Jac_FULL(291,278) + JVS(4618) = 0 +IF (DO_JVS(4619)) & +! JVS(4619) = Jac_FULL(291,279) + JVS(4619) = B(26)+B(42)+B(50)+2*B(80)+B(103)+B(107)+B(111)+B(117)+B(121)+B(125)+2*B(129)+B(131)+0.928*B(133)+B(135)+2& + &*B(139)+B(152)+B(301)+B(366)+B(482)+B(567)+B(583)+B(595)+B(609)+0.82*B(623)+0.78*B(647)+B(659)+2*B(661)& + &+B(745)+B(749)+B(753)+B(757)+B(790)+B(797)+B(804)+B(824)+B(830)+B(840)+B(843)+B(847)+1.728*B(874)+B(881)& + &+B(889)+B(895)+B(901)+2*B(927)+B(931)+1.065*B(960)+B(964)+B(972)+1.11*B(978)+B(1004)+B(1010)+B(1030)& + &+B(1041)+B(1045)+2*B(1051)+0.995*B(1102)+B(1125)+B(1153)+B(1164) +IF (DO_JVS(4620)) & +! JVS(4620) = Jac_FULL(291,280) + JVS(4620) = 0 +IF (DO_JVS(4621)) & +! JVS(4621) = Jac_FULL(291,281) + JVS(4621) = B(78)+2*B(81)+B(82)-B(84)+2*B(278)+B(313)+B(364)+B(631)+B(655)+B(675)+2*B(677)+2*B(923)+B(925)+2*B(1055)& + &+B(1076)+B(1104)+B(1127)+B(1166)+B(1178)+B(1206)+B(1371) +IF (DO_JVS(4622)) & +! JVS(4622) = Jac_FULL(291,282) + JVS(4622) = B(27)-B(32) +IF (DO_JVS(4623)) & +! JVS(4623) = Jac_FULL(291,283) + JVS(4623) = 0 +IF (DO_JVS(4624)) & +! JVS(4624) = Jac_FULL(291,284) + JVS(4624) = B(43)-B(73)+B(79)+0.459*B(872)+0.527*B(907)+0.058*B(956)+0.09*B(980)+0.5*B(1049) +IF (DO_JVS(4625)) & +! JVS(4625) = Jac_FULL(291,285) + JVS(4625) = B(483)-B(484) +IF (DO_JVS(4626)) & +! JVS(4626) = Jac_FULL(291,286) + JVS(4626) = -B(65)+B(72)+B(77)+B(83)+B(445)+B(589)+B(591)+B(697)+B(699)+B(701)+B(703)+B(853)+B(857)+B(859)+B(863)& + &+B(946)+B(968)+0.565*B(976)+0.31*B(994)+B(1072)+0.022*B(1074)+B(1111)+B(1160)+0.5*B(1176) +IF (DO_JVS(4627)) & +! JVS(4627) = Jac_FULL(291,287) + JVS(4627) = 0 +IF (DO_JVS(4628)) & +! JVS(4628) = Jac_FULL(291,288) + JVS(4628) = -B(362)+B(365)+B(367)-B(368) +IF (DO_JVS(4629)) & +! JVS(4629) = Jac_FULL(291,289) + JVS(4629) = 0 +IF (DO_JVS(4630)) & +! JVS(4630) = Jac_FULL(291,290) + JVS(4630) = 0 +IF (DO_JVS(4631)) & +! JVS(4631) = Jac_FULL(291,291) + JVS(4631) = -B(33)-B(66)-B(74)-B(85)-B(100)-B(149)-B(280)-B(325)-B(327)-B(363)-B(369)-B(383)-B(485)-B(548)-B(554)& + &-B(597)-B(611)-B(1008)-B(1014)-B(1047)-B(1155)-B(1162)-B(1174)-B(1210)-B(1362) END SUBROUTINE Jac_SP @@ -17032,694 +17103,704 @@ SUBROUTINE Jac_SP_Vec ( JVS, UV, JUV ) JUV(1) = JVS(1)*UV(1) JUV(2) = JVS(2)*UV(2) JUV(3) = JVS(3)*UV(3) - JUV(4) = JVS(4)*UV(4)+JVS(5)*UV(38)+JVS(6)*UV(40)+JVS(7)*UV(47)+JVS(8)*UV(65) - JUV(5) = JVS(9)*UV(5)+JVS(10)*UV(206) - JUV(6) = JVS(11)*UV(6)+JVS(12)*UV(62)+JVS(13)*UV(67)+JVS(14)*UV(95)+JVS(15)*UV(104)+JVS(16)*UV(116)+JVS(17)*UV(120)& - &+JVS(18)*UV(133)+JVS(19)*UV(146)+JVS(20)*UV(159)+JVS(21)*UV(160)+JVS(22)*UV(171)+JVS(23)*UV(176)+JVS(24)& - &*UV(189)+JVS(25)*UV(203)+JVS(26)*UV(205)+JVS(27)*UV(206)+JVS(28)*UV(207)+JVS(29)*UV(215)+JVS(30)*UV(220)& - &+JVS(31)*UV(227)+JVS(32)*UV(232)+JVS(33)*UV(245)+JVS(34)*UV(246)+JVS(35)*UV(257)+JVS(36)*UV(258)+JVS(37)& - &*UV(263)+JVS(38)*UV(269)+JVS(39)*UV(277)+JVS(40)*UV(280)+JVS(41)*UV(281)+JVS(42)*UV(285)+JVS(43)*UV(287) - JUV(7) = JVS(44)*UV(7)+JVS(45)*UV(41)+JVS(46)*UV(96) - JUV(8) = JVS(47)*UV(8)+JVS(48)*UV(38)+JVS(49)*UV(40)+JVS(50)*UV(47)+JVS(51)*UV(65) - JUV(9) = JVS(52)*UV(9)+JVS(53)*UV(38)+JVS(54)*UV(40)+JVS(55)*UV(47)+JVS(56)*UV(65) - JUV(10) = JVS(57)*UV(10)+JVS(58)*UV(12)+JVS(59)*UV(281) - JUV(11) = JVS(60)*UV(11)+JVS(61)*UV(12)+JVS(62)*UV(280) - JUV(12) = JVS(63)*UV(12)+JVS(64)*UV(60)+JVS(65)*UV(269)+JVS(66)*UV(280)+JVS(67)*UV(281) - JUV(13) = JVS(68)*UV(13)+JVS(69)*UV(220)+JVS(70)*UV(269) - JUV(14) = JVS(71)*UV(14)+JVS(72)*UV(220)+JVS(73)*UV(287) - JUV(15) = JVS(74)*UV(15)+JVS(75)*UV(17)+JVS(76)*UV(281) - JUV(16) = JVS(77)*UV(16)+JVS(78)*UV(17)+JVS(79)*UV(280) - JUV(17) = JVS(80)*UV(17)+JVS(81)*UV(18)+JVS(82)*UV(269)+JVS(83)*UV(280)+JVS(84)*UV(281) - JUV(18) = JVS(85)*UV(18)+JVS(86)*UV(269) - JUV(19) = JVS(87)*UV(19)+JVS(88)*UV(21)+JVS(89)*UV(281) - JUV(20) = JVS(90)*UV(20)+JVS(91)*UV(21)+JVS(92)*UV(280) - JUV(21) = JVS(93)*UV(21)+JVS(94)*UV(76)+JVS(95)*UV(269)+JVS(96)*UV(280)+JVS(97)*UV(281) - JUV(22) = JVS(98)*UV(22)+JVS(99)*UV(23) - JUV(23) = JVS(100)*UV(23)+JVS(101)*UV(153)+JVS(102)*UV(158)+JVS(103)*UV(161)+JVS(104)*UV(167)+JVS(105)*UV(269) - JUV(24) = JVS(106)*UV(24)+JVS(107)*UV(26)+JVS(108)*UV(281) - JUV(25) = JVS(109)*UV(25)+JVS(110)*UV(26)+JVS(111)*UV(280) - JUV(26) = JVS(112)*UV(26)+JVS(113)*UV(77)+JVS(114)*UV(269)+JVS(115)*UV(280)+JVS(116)*UV(281) - JUV(27) = JVS(117)*UV(27)+JVS(118)*UV(82)+JVS(119)*UV(269) - JUV(28) = JVS(120)*UV(28)+JVS(121)*UV(135)+JVS(122)*UV(277)+JVS(123)*UV(286) - JUV(29) = JVS(124)*UV(29)+JVS(125)*UV(104)+JVS(126)*UV(218)+JVS(127)*UV(228) - JUV(30) = JVS(128)*UV(30)+JVS(129)*UV(84)+JVS(130)*UV(114)+JVS(131)*UV(127)+JVS(132)*UV(128)+JVS(133)*UV(170) - JUV(31) = JVS(134)*UV(31)+JVS(135)*UV(41)+JVS(136)*UV(57)+JVS(137)*UV(58)+JVS(138)*UV(59)+JVS(139)*UV(61)+JVS(140)& - &*UV(63)+JVS(141)*UV(64)+JVS(142)*UV(71)+JVS(143)*UV(86)+JVS(144)*UV(87)+JVS(145)*UV(88)+JVS(146)*UV(89)& - &+JVS(147)*UV(95)+JVS(148)*UV(96)+JVS(149)*UV(101)+JVS(150)*UV(103)+JVS(151)*UV(116)+JVS(152)*UV(120)+JVS(153)& - &*UV(125)+JVS(154)*UV(131)+JVS(155)*UV(140)+JVS(156)*UV(141)+JVS(157)*UV(142)+JVS(158)*UV(143)+JVS(159)& - &*UV(146)+JVS(160)*UV(148)+JVS(161)*UV(149)+JVS(162)*UV(162)+JVS(163)*UV(163)+JVS(164)*UV(164)+JVS(165)& - &*UV(173)+JVS(166)*UV(175)+JVS(167)*UV(176)+JVS(168)*UV(178)+JVS(169)*UV(179)+JVS(170)*UV(180)+JVS(171)& - &*UV(183)+JVS(172)*UV(185)+JVS(173)*UV(187)+JVS(174)*UV(188)+JVS(175)*UV(190)+JVS(176)*UV(191)+JVS(177)& - &*UV(192)+JVS(178)*UV(197)+JVS(179)*UV(200)+JVS(180)*UV(201)+JVS(181)*UV(203)+JVS(182)*UV(204)+JVS(183)& - &*UV(206)+JVS(184)*UV(211)+JVS(185)*UV(212)+JVS(186)*UV(213)+JVS(187)*UV(217)+JVS(188)*UV(221)+JVS(189)& - &*UV(224)+JVS(190)*UV(225)+JVS(191)*UV(229)+JVS(192)*UV(230)+JVS(193)*UV(231)+JVS(194)*UV(233)+JVS(195)& - &*UV(234)+JVS(196)*UV(235)+JVS(197)*UV(237)+JVS(198)*UV(238)+JVS(199)*UV(239)+JVS(200)*UV(240)+JVS(201)& - &*UV(241)+JVS(202)*UV(242)+JVS(203)*UV(243)+JVS(204)*UV(245)+JVS(205)*UV(248)+JVS(206)*UV(249)+JVS(207)& - &*UV(250)+JVS(208)*UV(251)+JVS(209)*UV(252)+JVS(210)*UV(253)+JVS(211)*UV(257)+JVS(212)*UV(259)+JVS(213)& - &*UV(260)+JVS(214)*UV(263)+JVS(215)*UV(269)+JVS(216)*UV(270)+JVS(217)*UV(280)+JVS(218)*UV(281)+JVS(219)& - &*UV(285) - JUV(32) = JVS(220)*UV(32)+JVS(221)*UV(38)+JVS(222)*UV(40)+JVS(223)*UV(47)+JVS(224)*UV(57)+JVS(225)*UV(62)+JVS(226)& - &*UV(72)+JVS(227)*UV(75)+JVS(228)*UV(81)+JVS(229)*UV(82)+JVS(230)*UV(90)+JVS(231)*UV(97)+JVS(232)*UV(99)& - &+JVS(233)*UV(107)+JVS(234)*UV(109)+JVS(235)*UV(112)+JVS(236)*UV(117)+JVS(237)*UV(131)+JVS(238)*UV(135)& - &+JVS(239)*UV(136)+JVS(240)*UV(137)+JVS(241)*UV(138)+JVS(242)*UV(144)+JVS(243)*UV(145)+JVS(244)*UV(147)& - &+JVS(245)*UV(150)+JVS(246)*UV(151)+JVS(247)*UV(155)+JVS(248)*UV(156)+JVS(249)*UV(157)+JVS(250)*UV(165)& - &+JVS(251)*UV(169)+JVS(252)*UV(171)+JVS(253)*UV(172)+JVS(254)*UV(173)+JVS(255)*UV(174)+JVS(256)*UV(175)& - &+JVS(257)*UV(176)+JVS(258)*UV(177)+JVS(259)*UV(178)+JVS(260)*UV(186)+JVS(261)*UV(187)+JVS(262)*UV(195)& - &+JVS(263)*UV(196)+JVS(264)*UV(198)+JVS(265)*UV(199)+JVS(266)*UV(205)+JVS(267)*UV(208)+JVS(268)*UV(209)& - &+JVS(269)*UV(210)+JVS(270)*UV(211)+JVS(271)*UV(212)+JVS(272)*UV(216)+JVS(273)*UV(218)+JVS(274)*UV(220)& - &+JVS(275)*UV(221)+JVS(276)*UV(222)+JVS(277)*UV(223)+JVS(278)*UV(228)+JVS(279)*UV(230)+JVS(280)*UV(231)& - &+JVS(281)*UV(234)+JVS(282)*UV(237)+JVS(283)*UV(238)+JVS(284)*UV(239)+JVS(285)*UV(240)+JVS(286)*UV(241)& - &+JVS(287)*UV(244)+JVS(288)*UV(245)+JVS(289)*UV(247)+JVS(290)*UV(254)+JVS(291)*UV(255)+JVS(292)*UV(256)& - &+JVS(293)*UV(259)+JVS(294)*UV(260)+JVS(295)*UV(261)+JVS(296)*UV(262)+JVS(297)*UV(263)+JVS(298)*UV(264)& - &+JVS(299)*UV(266)+JVS(300)*UV(267)+JVS(301)*UV(268)+JVS(302)*UV(269)+JVS(303)*UV(270)+JVS(304)*UV(271)& - &+JVS(305)*UV(272)+JVS(306)*UV(273)+JVS(307)*UV(274)+JVS(308)*UV(275)+JVS(309)*UV(276)+JVS(310)*UV(277)& - &+JVS(311)*UV(278)+JVS(312)*UV(279)+JVS(313)*UV(281)+JVS(314)*UV(283)+JVS(315)*UV(284)+JVS(316)*UV(286)& - &+JVS(317)*UV(287) - JUV(33) = JVS(318)*UV(33)+JVS(319)*UV(54)+JVS(320)*UV(60)+JVS(321)*UV(62)+JVS(322)*UV(68)+JVS(323)*UV(73)+JVS(324)& - &*UV(76)+JVS(325)*UV(77)+JVS(326)*UV(99)+JVS(327)*UV(100)+JVS(328)*UV(106)+JVS(329)*UV(122)+JVS(330)*UV(124)& - &+JVS(331)*UV(126)+JVS(332)*UV(130)+JVS(333)*UV(133)+JVS(334)*UV(145)+JVS(335)*UV(146)+JVS(336)*UV(149)& - &+JVS(337)*UV(150)+JVS(338)*UV(151)+JVS(339)*UV(152)+JVS(340)*UV(153)+JVS(341)*UV(155)+JVS(342)*UV(158)& - &+JVS(343)*UV(160)+JVS(344)*UV(161)+JVS(345)*UV(165)+JVS(346)*UV(166)+JVS(347)*UV(167)+JVS(348)*UV(168)& - &+JVS(349)*UV(170)+JVS(350)*UV(171)+JVS(351)*UV(181)+JVS(352)*UV(182)+JVS(353)*UV(184)+JVS(354)*UV(189)& - &+JVS(355)*UV(190)+JVS(356)*UV(195)+JVS(357)*UV(201)+JVS(358)*UV(202)+JVS(359)*UV(203)+JVS(360)*UV(205)& - &+JVS(361)*UV(206)+JVS(362)*UV(209)+JVS(363)*UV(210)+JVS(364)*UV(216)+JVS(365)*UV(218)+JVS(366)*UV(219)& - &+JVS(367)*UV(220)+JVS(368)*UV(224)+JVS(369)*UV(225)+JVS(370)*UV(227)+JVS(371)*UV(228)+JVS(372)*UV(232)& - &+JVS(373)*UV(236)+JVS(374)*UV(242)+JVS(375)*UV(243)+JVS(376)*UV(244)+JVS(377)*UV(246)+JVS(378)*UV(247)& - &+JVS(379)*UV(254)+JVS(380)*UV(255)+JVS(381)*UV(261)+JVS(382)*UV(262)+JVS(383)*UV(263)+JVS(384)*UV(269)& - &+JVS(385)*UV(277)+JVS(386)*UV(280)+JVS(387)*UV(281)+JVS(388)*UV(282)+JVS(389)*UV(284)+JVS(390)*UV(285)& - &+JVS(391)*UV(287) - JUV(34) = JVS(392)*UV(34)+JVS(393)*UV(191)+JVS(394)*UV(230)+JVS(395)*UV(258)+JVS(396)*UV(269) - JUV(35) = JVS(397)*UV(35)+JVS(398)*UV(85)+JVS(399)*UV(144)+JVS(400)*UV(191)+JVS(401)*UV(208)+JVS(402)*UV(230)+JVS(403)& - &*UV(256)+JVS(404)*UV(267)+JVS(405)*UV(269)+JVS(406)*UV(277)+JVS(407)*UV(286) - JUV(36) = JVS(408)*UV(36)+JVS(409)*UV(186)+JVS(410)*UV(268)+JVS(411)*UV(269)+JVS(412)*UV(285) - JUV(37) = JVS(413)*UV(37)+JVS(414)*UV(150)+JVS(415)*UV(151)+JVS(416)*UV(165)+JVS(417)*UV(191)+JVS(418)*UV(220)& - &+JVS(419)*UV(230)+JVS(420)*UV(244)+JVS(421)*UV(269)+JVS(422)*UV(277)+JVS(423)*UV(279)+JVS(424)*UV(281) - JUV(38) = JVS(425)*UV(38)+JVS(426)*UV(90) - JUV(39) = JVS(427)*UV(39)+JVS(428)*UV(269) - JUV(40) = JVS(429)*UV(40)+JVS(430)*UV(223) - JUV(41) = JVS(431)*UV(41)+JVS(432)*UV(131)+JVS(433)*UV(174)+JVS(434)*UV(196) - JUV(42) = JVS(435)*UV(42)+JVS(436)*UV(268) - JUV(43) = JVS(437)*UV(43)+JVS(438)*UV(269) - JUV(44) = JVS(439)*UV(44)+JVS(440)*UV(268) - JUV(45) = JVS(441)*UV(45)+JVS(442)*UV(268) - JUV(46) = JVS(443)*UV(46)+JVS(444)*UV(268) - JUV(47) = JVS(445)*UV(47)+JVS(446)*UV(90)+JVS(447)*UV(223) - JUV(48) = JVS(448)*UV(48)+JVS(449)*UV(268) - JUV(49) = JVS(450)*UV(49)+JVS(451)*UV(250)+JVS(452)*UV(270) - JUV(50) = JVS(453)*UV(50)+JVS(454)*UV(270)+JVS(455)*UV(282) - JUV(51) = JVS(456)*UV(51)+JVS(457)*UV(268) - JUV(52) = JVS(458)*UV(52)+JVS(459)*UV(268) - JUV(53) = JVS(460)*UV(53)+JVS(461)*UV(268) - JUV(54) = JVS(462)*UV(54)+JVS(463)*UV(269) - JUV(55) = JVS(464)*UV(55)+JVS(465)*UV(268) - JUV(56) = JVS(466)*UV(56)+JVS(467)*UV(265)+JVS(468)*UV(280) - JUV(57) = JVS(469)*UV(57)+JVS(470)*UV(61)+JVS(471)*UV(268)+JVS(472)*UV(270) - JUV(58) = JVS(473)*UV(58)+JVS(474)*UV(144)+JVS(475)*UV(260)+JVS(476)*UV(287) - JUV(59) = JVS(477)*UV(59)+JVS(478)*UV(135)+JVS(479)*UV(260)+JVS(480)*UV(287) - JUV(60) = JVS(481)*UV(60)+JVS(482)*UV(269) - JUV(61) = JVS(483)*UV(61)+JVS(484)*UV(270)+JVS(485)*UV(280) - JUV(62) = JVS(486)*UV(62)+JVS(487)*UV(269)+JVS(488)*UV(284) - JUV(63) = JVS(489)*UV(63)+JVS(490)*UV(257)+JVS(491)*UV(270) - JUV(64) = JVS(492)*UV(64)+JVS(493)*UV(175)+JVS(494)*UV(269)+JVS(495)*UV(280) - JUV(65) = JVS(496)*UV(65)+JVS(497)*UV(265)+JVS(498)*UV(269)+JVS(499)*UV(281) - JUV(66) = JVS(500)*UV(66)+JVS(501)*UV(257)+JVS(502)*UV(269)+JVS(503)*UV(281) - JUV(67) = JVS(504)*UV(67)+JVS(505)*UV(176)+JVS(506)*UV(269)+JVS(507)*UV(281) - JUV(68) = JVS(508)*UV(68)+JVS(509)*UV(269)+JVS(510)*UV(285) - JUV(69) = JVS(511)*UV(69)+JVS(512)*UV(199)+JVS(513)*UV(264)+JVS(514)*UV(266)+JVS(515)*UV(275)+JVS(516)*UV(276) - JUV(70) = JVS(517)*UV(70)+JVS(518)*UV(268)+JVS(519)*UV(269) - JUV(71) = JVS(520)*UV(71)+JVS(521)*UV(263)+JVS(522)*UV(270) - JUV(72) = JVS(523)*UV(72)+JVS(524)*UV(269)+JVS(525)*UV(273) - JUV(73) = JVS(526)*UV(73)+JVS(527)*UV(269)+JVS(528)*UV(285) - JUV(74) = JVS(529)*UV(74)+JVS(530)*UV(268)+JVS(531)*UV(269) - JUV(75) = JVS(532)*UV(75)+JVS(533)*UV(269)+JVS(534)*UV(277) - JUV(76) = JVS(535)*UV(76)+JVS(536)*UV(269) - JUV(77) = JVS(537)*UV(77)+JVS(538)*UV(269) - JUV(78) = JVS(539)*UV(78)+JVS(540)*UV(268)+JVS(541)*UV(269) - JUV(79) = JVS(542)*UV(79)+JVS(543)*UV(268)+JVS(544)*UV(269) - JUV(80) = JVS(545)*UV(80)+JVS(546)*UV(268)+JVS(547)*UV(269) - JUV(81) = JVS(548)*UV(81)+JVS(549)*UV(268)+JVS(550)*UV(269) - JUV(82) = JVS(551)*UV(82)+JVS(552)*UV(269)+JVS(553)*UV(287) - JUV(83) = JVS(554)*UV(83)+JVS(555)*UV(230)+JVS(556)*UV(269)+JVS(557)*UV(279) - JUV(84) = JVS(558)*UV(84)+JVS(559)*UV(133)+JVS(560)*UV(149)+JVS(561)*UV(269) - JUV(85) = JVS(562)*UV(85)+JVS(563)*UV(262)+JVS(564)*UV(269)+JVS(565)*UV(286) - JUV(86) = JVS(566)*UV(86)+JVS(567)*UV(253)+JVS(568)*UV(269)+JVS(569)*UV(280) - JUV(87) = JVS(570)*UV(87)+JVS(571)*UV(263)+JVS(572)*UV(269)+JVS(573)*UV(280) - JUV(88) = JVS(574)*UV(88)+JVS(575)*UV(213)+JVS(576)*UV(269)+JVS(577)*UV(280) - JUV(89) = JVS(578)*UV(89)+JVS(579)*UV(233)+JVS(580)*UV(269)+JVS(581)*UV(280) - JUV(90) = JVS(582)*UV(38)+JVS(583)*UV(40)+JVS(584)*UV(47)+JVS(585)*UV(90)+JVS(586)*UV(223)+JVS(587)*UV(274)+JVS(588)& - &*UV(280) - JUV(91) = JVS(589)*UV(91)+JVS(590)*UV(252)+JVS(591)*UV(269)+JVS(592)*UV(281) - JUV(92) = JVS(593)*UV(92)+JVS(594)*UV(233)+JVS(595)*UV(269)+JVS(596)*UV(281) - JUV(93) = JVS(597)*UV(93)+JVS(598)*UV(253)+JVS(599)*UV(269)+JVS(600)*UV(281) - JUV(94) = JVS(601)*UV(94)+JVS(602)*UV(250)+JVS(603)*UV(269)+JVS(604)*UV(281) - JUV(95) = JVS(605)*UV(95)+JVS(606)*UV(176)+JVS(607)*UV(269)+JVS(608)*UV(270) - JUV(96) = JVS(609)*UV(96)+JVS(610)*UV(136)+JVS(611)*UV(137)+JVS(612)*UV(147)+JVS(613)*UV(171)+JVS(614)*UV(177)& - &+JVS(615)*UV(195)+JVS(616)*UV(198)+JVS(617)*UV(209)+JVS(618)*UV(210)+JVS(619)*UV(216)+JVS(620)*UV(237)& - &+JVS(621)*UV(238)+JVS(622)*UV(239) - JUV(97) = JVS(623)*UV(97)+JVS(624)*UV(268)+JVS(625)*UV(269) - JUV(98) = JVS(626)*UV(98)+JVS(627)*UV(199)+JVS(628)*UV(223)+JVS(629)*UV(264)+JVS(630)*UV(266)+JVS(631)*UV(273)& - &+JVS(632)*UV(278)+JVS(633)*UV(283) - JUV(99) = JVS(634)*UV(76)+JVS(635)*UV(77)+JVS(636)*UV(99)+JVS(637)*UV(269)+JVS(638)*UV(287) - JUV(100) = JVS(639)*UV(100)+JVS(640)*UV(269)+JVS(641)*UV(285) - JUV(101) = JVS(642)*UV(101)+JVS(643)*UV(269)+JVS(644)*UV(270)+JVS(645)*UV(281) - JUV(102) = JVS(646)*UV(102)+JVS(647)*UV(113)+JVS(648)*UV(175)+JVS(649)*UV(263)+JVS(650)*UV(280)+JVS(651)*UV(287) - JUV(103) = JVS(652)*UV(72)+JVS(653)*UV(103)+JVS(654)*UV(263)+JVS(655)*UV(269)+JVS(656)*UV(273)+JVS(657)*UV(274)& - &+JVS(658)*UV(285) - JUV(104) = JVS(659)*UV(104)+JVS(660)*UV(160)+JVS(661)*UV(237)+JVS(662)*UV(244)+JVS(663)*UV(269)+JVS(664)*UV(277) - JUV(105) = JVS(665)*UV(95)+JVS(666)*UV(105)+JVS(667)*UV(176)+JVS(668)*UV(187)+JVS(669)*UV(269)+JVS(671)*UV(281) - JUV(106) = JVS(672)*UV(106)+JVS(673)*UV(182)+JVS(674)*UV(184)+JVS(675)*UV(236)+JVS(676)*UV(269) - JUV(107) = JVS(677)*UV(107)+JVS(678)*UV(223)+JVS(679)*UV(269)+JVS(680)*UV(273)+JVS(681)*UV(274) - JUV(108) = JVS(682)*UV(108)+JVS(683)*UV(213)+JVS(684)*UV(235)+JVS(685)*UV(269)+JVS(686)*UV(281) - JUV(109) = JVS(687)*UV(76)+JVS(688)*UV(77)+JVS(689)*UV(109)+JVS(690)*UV(269)+JVS(691)*UV(287) - JUV(110) = JVS(692)*UV(110)+JVS(693)*UV(204)+JVS(694)*UV(269)+JVS(695)*UV(281) - JUV(111) = JVS(696)*UV(111)+JVS(697)*UV(197)+JVS(698)*UV(269)+JVS(699)*UV(281) - JUV(112) = JVS(700)*UV(112)+JVS(701)*UV(269)+JVS(702)*UV(285)+JVS(703)*UV(287) - JUV(113) = JVS(704)*UV(113)+JVS(705)*UV(175)+JVS(706)*UV(263)+JVS(707)*UV(269)+JVS(708)*UV(281) - JUV(114) = JVS(709)*UV(114)+JVS(710)*UV(161)+JVS(711)*UV(167)+JVS(712)*UV(210)+JVS(713)*UV(216)+JVS(714)*UV(269) - JUV(115) = JVS(715)*UV(115)+JVS(716)*UV(202)+JVS(717)*UV(224)+JVS(718)*UV(269)+JVS(719)*UV(280)+JVS(720)*UV(281) - JUV(116) = JVS(721)*UV(116)+JVS(722)*UV(184)+JVS(723)*UV(269)+JVS(724)*UV(280)+JVS(725)*UV(281) - JUV(117) = JVS(726)*UV(60)+JVS(727)*UV(117)+JVS(728)*UV(269)+JVS(729)*UV(287) - JUV(118) = JVS(730)*UV(118)+JVS(731)*UV(221)+JVS(732)*UV(234)+JVS(733)*UV(269)+JVS(734)*UV(281) - JUV(119) = JVS(735)*UV(85)+JVS(736)*UV(119)+JVS(737)*UV(144)+JVS(738)*UV(191)+JVS(739)*UV(208)+JVS(740)*UV(230)& - &+JVS(741)*UV(256)+JVS(743)*UV(267)+JVS(744)*UV(269)+JVS(745)*UV(277)+JVS(746)*UV(286) - JUV(120) = JVS(747)*UV(120)+JVS(748)*UV(182)+JVS(749)*UV(269)+JVS(750)*UV(280)+JVS(751)*UV(281) - JUV(121) = JVS(752)*UV(121)+JVS(753)*UV(269)+JVS(754)*UV(282)+JVS(755)*UV(285) - JUV(122) = JVS(756)*UV(122)+JVS(757)*UV(224)+JVS(758)*UV(225)+JVS(759)*UV(269) - JUV(123) = JVS(760)*UV(123)+JVS(761)*UV(147)+JVS(762)*UV(239)+JVS(763)*UV(240)+JVS(764)*UV(241)+JVS(765)*UV(257)& - &+JVS(766)*UV(263)+JVS(767)*UV(280)+JVS(768)*UV(287) - JUV(124) = JVS(769)*UV(124)+JVS(770)*UV(161)+JVS(771)*UV(220)+JVS(772)*UV(243)+JVS(773)*UV(269) - JUV(125) = JVS(774)*UV(125)+JVS(775)*UV(172)+JVS(776)*UV(256)+JVS(777)*UV(269)+JVS(778)*UV(272)+JVS(779)*UV(274)& - &+JVS(780)*UV(275)+JVS(781)*UV(276)+JVS(782)*UV(282) - JUV(126) = JVS(783)*UV(126)+JVS(784)*UV(167)+JVS(785)*UV(220)+JVS(786)*UV(242)+JVS(787)*UV(269) - JUV(127) = JVS(788)*UV(127)+JVS(789)*UV(136)+JVS(790)*UV(137)+JVS(791)*UV(153)+JVS(792)*UV(158)+JVS(793)*UV(269) - JUV(128) = JVS(794)*UV(128)+JVS(795)*UV(136)+JVS(796)*UV(137)+JVS(797)*UV(153)+JVS(798)*UV(158)+JVS(799)*UV(269) - JUV(129) = JVS(800)*UV(129)+JVS(801)*UV(213)+JVS(802)*UV(235)+JVS(803)*UV(263)+JVS(804)*UV(269)+JVS(805)*UV(285) - JUV(130) = JVS(806)*UV(130)+JVS(807)*UV(202)+JVS(808)*UV(225)+JVS(809)*UV(269)+JVS(810)*UV(280)+JVS(811)*UV(281) - JUV(131) = JVS(812)*UV(131)+JVS(813)*UV(174)+JVS(814)*UV(196)+JVS(815)*UV(269)+JVS(816)*UV(277)+JVS(817)*UV(287) - JUV(132) = JVS(818)*UV(132)+JVS(819)*UV(172)+JVS(820)*UV(231)+JVS(821)*UV(256)+JVS(822)*UV(259)+JVS(823)*UV(267)& - &+JVS(824)*UV(271)+JVS(825)*UV(272)+JVS(826)*UV(273)+JVS(827)*UV(274)+JVS(828)*UV(275)+JVS(829)*UV(276)& - &+JVS(830)*UV(278)+JVS(831)*UV(283) - JUV(133) = JVS(832)*UV(133)+JVS(833)*UV(203)+JVS(834)*UV(269)+JVS(835)*UV(281) - JUV(134) = JVS(836)*UV(134)+JVS(837)*UV(263)+JVS(838)*UV(269)+JVS(839)*UV(281)+JVS(840)*UV(285) - JUV(135) = JVS(841)*UV(135)+JVS(842)*UV(260)+JVS(843)*UV(271)+JVS(844)*UV(277)+JVS(845)*UV(286) - JUV(136) = JVS(846)*UV(136)+JVS(847)*UV(242)+JVS(848)*UV(269)+JVS(849)*UV(280) - JUV(137) = JVS(850)*UV(137)+JVS(851)*UV(243)+JVS(852)*UV(269)+JVS(853)*UV(280) - JUV(138) = JVS(854)*UV(109)+JVS(855)*UV(117)+JVS(856)*UV(138)+JVS(857)*UV(269)+JVS(858)*UV(277)+JVS(859)*UV(287) - JUV(139) = JVS(860)*UV(139)+JVS(861)*UV(179)+JVS(862)*UV(180)+JVS(863)*UV(183)+JVS(864)*UV(269)+JVS(865)*UV(281) - JUV(140) = JVS(866)*UV(56)+JVS(867)*UV(140)+JVS(868)*UV(199)+JVS(869)*UV(265)+JVS(870)*UV(266)+JVS(871)*UV(269)& - &+JVS(873)*UV(287) - JUV(141) = JVS(874)*UV(141)+JVS(875)*UV(182)+JVS(876)*UV(236)+JVS(877)*UV(270)+JVS(878)*UV(280)+JVS(879)*UV(281) - JUV(142) = JVS(880)*UV(142)+JVS(881)*UV(184)+JVS(882)*UV(236)+JVS(883)*UV(270)+JVS(884)*UV(280)+JVS(885)*UV(281) - JUV(143) = JVS(886)*UV(143)+JVS(887)*UV(239)+JVS(888)*UV(269)+JVS(889)*UV(280)+JVS(890)*UV(281) - JUV(144) = JVS(891)*UV(144)+JVS(892)*UV(260)+JVS(893)*UV(271)+JVS(894)*UV(277)+JVS(895)*UV(286) - JUV(145) = JVS(896)*UV(76)+JVS(897)*UV(77)+JVS(898)*UV(109)+JVS(899)*UV(145)+JVS(900)*UV(269)+JVS(901)*UV(277)& - &+JVS(902)*UV(287) - JUV(146) = JVS(903)*UV(146)+JVS(904)*UV(236)+JVS(905)*UV(238)+JVS(906)*UV(269)+JVS(907)*UV(280)+JVS(908)*UV(281) - JUV(147) = JVS(909)*UV(147)+JVS(910)*UV(241)+JVS(911)*UV(269)+JVS(912)*UV(281) - JUV(148) = JVS(913)*UV(137)+JVS(914)*UV(148)+JVS(916)*UV(269)+JVS(917)*UV(280)+JVS(918)*UV(281) - JUV(149) = JVS(919)*UV(149)+JVS(920)*UV(203)+JVS(921)*UV(245)+JVS(922)*UV(269)+JVS(923)*UV(270) - JUV(150) = JVS(924)*UV(150)+JVS(925)*UV(269)+JVS(926)*UV(277)+JVS(927)*UV(287) - JUV(151) = JVS(928)*UV(151)+JVS(929)*UV(269)+JVS(930)*UV(277)+JVS(931)*UV(287) - JUV(152) = JVS(932)*UV(106)+JVS(933)*UV(122)+JVS(934)*UV(152)+JVS(935)*UV(182)+JVS(936)*UV(184)+JVS(939)*UV(236)& - &+JVS(940)*UV(269) - JUV(153) = JVS(941)*UV(153)+JVS(942)*UV(242)+JVS(943)*UV(269)+JVS(944)*UV(281) - JUV(154) = JVS(945)*UV(154)+JVS(946)*UV(197)+JVS(947)*UV(204)+JVS(948)*UV(212)+JVS(949)*UV(221)+JVS(950)*UV(233)& - &+JVS(951)*UV(234)+JVS(952)*UV(249)+JVS(953)*UV(251)+JVS(954)*UV(252)+JVS(955)*UV(253)+JVS(956)*UV(263)& - &+JVS(957)*UV(269) - JUV(155) = JVS(958)*UV(60)+JVS(959)*UV(76)+JVS(960)*UV(77)+JVS(961)*UV(117)+JVS(962)*UV(138)+JVS(963)*UV(155)+JVS(964)& - &*UV(206)+JVS(965)*UV(269)+JVS(966)*UV(277)+JVS(967)*UV(287) - JUV(156) = JVS(968)*UV(105)+JVS(969)*UV(109)+JVS(970)*UV(117)+JVS(971)*UV(138)+JVS(972)*UV(156)+JVS(974)*UV(187)& - &+JVS(975)*UV(263)+JVS(976)*UV(269)+JVS(977)*UV(270)+JVS(978)*UV(277)+JVS(979)*UV(280)+JVS(981)*UV(287) - JUV(157) = JVS(982)*UV(157)+JVS(983)*UV(269)+JVS(984)*UV(282)+JVS(985)*UV(285)+JVS(986)*UV(287) - JUV(158) = JVS(987)*UV(158)+JVS(988)*UV(243)+JVS(989)*UV(269)+JVS(990)*UV(281) - JUV(159) = JVS(991)*UV(139)+JVS(992)*UV(159)+JVS(993)*UV(179)+JVS(994)*UV(180)+JVS(995)*UV(183)+JVS(996)*UV(269) - JUV(160) = JVS(998)*UV(160)+JVS(999)*UV(182)+JVS(1000)*UV(184)+JVS(1001)*UV(236)+JVS(1002)*UV(238)+JVS(1003)*UV(269) - JUV(161) = JVS(1004)*UV(161)+JVS(1005)*UV(243)+JVS(1006)*UV(269)+JVS(1007)*UV(281) - JUV(162) = JVS(1008)*UV(136)+JVS(1009)*UV(162)+JVS(1011)*UV(269)+JVS(1012)*UV(280)+JVS(1013)*UV(281) - JUV(163) = JVS(1014)*UV(163)+JVS(1015)*UV(210)+JVS(1016)*UV(269)+JVS(1017)*UV(280)+JVS(1018)*UV(281) - JUV(164) = JVS(1019)*UV(164)+JVS(1020)*UV(216)+JVS(1021)*UV(269)+JVS(1022)*UV(280)+JVS(1023)*UV(281) - JUV(165) = JVS(1024)*UV(165)+JVS(1025)*UV(269)+JVS(1026)*UV(277)+JVS(1027)*UV(287) - JUV(166) = JVS(1028)*UV(115)+JVS(1029)*UV(122)+JVS(1030)*UV(166)+JVS(1031)*UV(190)+JVS(1032)*UV(200)+JVS(1036)*UV(226)& - &+JVS(1037)*UV(269)+JVS(1038)*UV(280)+JVS(1039)*UV(281) - JUV(167) = JVS(1040)*UV(167)+JVS(1041)*UV(242)+JVS(1042)*UV(269)+JVS(1043)*UV(281) - JUV(168) = JVS(1044)*UV(167)+JVS(1045)*UV(168)+JVS(1046)*UV(179)+JVS(1047)*UV(185)+JVS(1048)*UV(217)+JVS(1049)*UV(220)& - &+JVS(1050)*UV(238)+JVS(1051)*UV(242)+JVS(1052)*UV(269)+JVS(1053)*UV(280)+JVS(1054)*UV(281) - JUV(169) = JVS(1055)*UV(169)+JVS(1056)*UV(270)+JVS(1057)*UV(271)+JVS(1058)*UV(278)+JVS(1059)*UV(279)+JVS(1060)*UV(283)& - &+JVS(1061)*UV(287) - JUV(170) = JVS(1062)*UV(114)+JVS(1063)*UV(124)+JVS(1064)*UV(126)+JVS(1065)*UV(127)+JVS(1066)*UV(128)+JVS(1069)*UV(147)& - &+JVS(1074)*UV(170)+JVS(1075)*UV(182)+JVS(1076)*UV(184)+JVS(1080)*UV(236)+JVS(1084)*UV(269) - JUV(171) = JVS(1087)*UV(164)+JVS(1088)*UV(171)+JVS(1089)*UV(185)+JVS(1090)*UV(216)+JVS(1091)*UV(217)+JVS(1092)*UV(229)& - &+JVS(1093)*UV(236)+JVS(1094)*UV(245)+JVS(1095)*UV(263)+JVS(1096)*UV(269)+JVS(1097)*UV(280)+JVS(1098)*UV(281) - JUV(172) = JVS(1099)*UV(172)+JVS(1100)*UV(270)+JVS(1101)*UV(271)+JVS(1102)*UV(274)+JVS(1103)*UV(279)+JVS(1104)*UV(282) - JUV(173) = JVS(1105)*UV(173)+JVS(1106)*UV(186)+JVS(1107)*UV(262)+JVS(1108)*UV(268)+JVS(1109)*UV(269)+JVS(1110)*UV(271)& - &+JVS(1111)*UV(272)+JVS(1112)*UV(277)+JVS(1113)*UV(281)+JVS(1114)*UV(284)+JVS(1115)*UV(285) - JUV(174) = JVS(1116)*UV(174)+JVS(1117)*UV(211)+JVS(1118)*UV(212)+JVS(1119)*UV(234)+JVS(1120)*UV(257)+JVS(1121)*UV(263)& - &+JVS(1122)*UV(269)+JVS(1123)*UV(280)+JVS(1124)*UV(281)+JVS(1125)*UV(287) - JUV(175) = JVS(1126)*UV(75)+JVS(1127)*UV(113)+JVS(1128)*UV(175)+JVS(1129)*UV(263)+JVS(1130)*UV(269)+JVS(1132)*UV(280)& - &+JVS(1133)*UV(281)+JVS(1134)*UV(287) - JUV(176) = JVS(1135)*UV(67)+JVS(1136)*UV(95)+JVS(1137)*UV(99)+JVS(1138)*UV(176)+JVS(1139)*UV(263)+JVS(1140)*UV(269)& - &+JVS(1141)*UV(270)+JVS(1142)*UV(280)+JVS(1143)*UV(281)+JVS(1144)*UV(287) - JUV(177) = JVS(1145)*UV(177)+JVS(1146)*UV(240)+JVS(1147)*UV(241)+JVS(1148)*UV(263)+JVS(1149)*UV(269)+JVS(1150)*UV(281) - JUV(178) = JVS(1151)*UV(60)+JVS(1152)*UV(76)+JVS(1153)*UV(77)+JVS(1154)*UV(109)+JVS(1155)*UV(117)+JVS(1156)*UV(138)& - &+JVS(1157)*UV(178)+JVS(1158)*UV(257)+JVS(1159)*UV(263)+JVS(1160)*UV(269)+JVS(1162)*UV(280)+JVS(1163)*UV(281)& - &+JVS(1164)*UV(287) - JUV(179) = JVS(1165)*UV(153)+JVS(1166)*UV(167)+JVS(1167)*UV(179)+JVS(1169)*UV(269)+JVS(1170)*UV(280)+JVS(1171)*UV(281) - JUV(180) = JVS(1172)*UV(158)+JVS(1173)*UV(161)+JVS(1174)*UV(180)+JVS(1176)*UV(269)+JVS(1177)*UV(280)+JVS(1178)*UV(281) - JUV(181) = JVS(1179)*UV(115)+JVS(1180)*UV(122)+JVS(1181)*UV(130)+JVS(1182)*UV(160)+JVS(1183)*UV(181)+JVS(1186)*UV(202)& - &+JVS(1189)*UV(226)+JVS(1191)*UV(237)+JVS(1193)*UV(269) - JUV(182) = JVS(1196)*UV(167)+JVS(1197)*UV(182)+JVS(1198)*UV(220)+JVS(1199)*UV(242)+JVS(1200)*UV(269) - JUV(183) = JVS(1202)*UV(153)+JVS(1203)*UV(158)+JVS(1204)*UV(183)+JVS(1207)*UV(269)+JVS(1208)*UV(280)+JVS(1209)*UV(281) - JUV(184) = JVS(1210)*UV(161)+JVS(1211)*UV(184)+JVS(1212)*UV(220)+JVS(1213)*UV(243)+JVS(1214)*UV(269) - JUV(185) = JVS(1216)*UV(147)+JVS(1217)*UV(185)+JVS(1219)*UV(269)+JVS(1220)*UV(280)+JVS(1221)*UV(281) - JUV(186) = JVS(1222)*UV(186)+JVS(1223)*UV(254)+JVS(1224)*UV(261)+JVS(1225)*UV(268)+JVS(1226)*UV(269)+JVS(1227)*UV(277)& - &+JVS(1228)*UV(285) - JUV(187) = JVS(1229)*UV(67)+JVS(1230)*UV(99)+JVS(1231)*UV(105)+JVS(1232)*UV(156)+JVS(1233)*UV(176)+JVS(1234)*UV(187)& - &+JVS(1235)*UV(263)+JVS(1236)*UV(269)+JVS(1237)*UV(270)+JVS(1238)*UV(277)+JVS(1239)*UV(280)+JVS(1240)*UV(281)& - &+JVS(1241)*UV(287) - JUV(188) = JVS(1242)*UV(58)+JVS(1243)*UV(59)+JVS(1246)*UV(188)+JVS(1247)*UV(199)+JVS(1248)*UV(206)+JVS(1249)*UV(231)& - &+JVS(1251)*UV(269)+JVS(1252)*UV(270)+JVS(1253)*UV(271)+JVS(1254)*UV(272)+JVS(1255)*UV(275)+JVS(1256)*UV(276)& - &+JVS(1258)*UV(278)+JVS(1259)*UV(280)+JVS(1260)*UV(283) - JUV(189) = JVS(1263)*UV(161)+JVS(1264)*UV(167)+JVS(1265)*UV(189)+JVS(1266)*UV(210)+JVS(1267)*UV(216)+JVS(1268)*UV(242)& - &+JVS(1269)*UV(243)+JVS(1270)*UV(263)+JVS(1271)*UV(269)+JVS(1272)*UV(280) - JUV(190) = JVS(1274)*UV(114)+JVS(1275)*UV(158)+JVS(1278)*UV(190)+JVS(1283)*UV(269)+JVS(1284)*UV(280)+JVS(1285)*UV(281) - JUV(191) = JVS(1286)*UV(191)+JVS(1287)*UV(254)+JVS(1288)*UV(258)+JVS(1289)*UV(270)+JVS(1290)*UV(277)+JVS(1291)*UV(279)& - &+JVS(1292)*UV(280)+JVS(1293)*UV(286) - JUV(192) = JVS(1294)*UV(103)+JVS(1295)*UV(192)+JVS(1296)*UV(231)+JVS(1297)*UV(259)+JVS(1299)*UV(267)+JVS(1300)*UV(268)& - &+JVS(1301)*UV(269)+JVS(1302)*UV(271)+JVS(1303)*UV(273)+JVS(1305)*UV(278)+JVS(1306)*UV(283)+JVS(1307)*UV(285) - JUV(193) = JVS(1308)*UV(161)+JVS(1309)*UV(180)+JVS(1310)*UV(185)+JVS(1311)*UV(193)+JVS(1312)*UV(217)+JVS(1313)*UV(220)& - &+JVS(1314)*UV(227)+JVS(1315)*UV(238)+JVS(1317)*UV(243)+JVS(1318)*UV(247)+JVS(1319)*UV(248)+JVS(1320)*UV(249)& - &+JVS(1321)*UV(269)+JVS(1322)*UV(280)+JVS(1323)*UV(281) - JUV(194) = JVS(1324)*UV(111)+JVS(1325)*UV(143)+JVS(1326)*UV(146)+JVS(1327)*UV(164)+JVS(1328)*UV(171)+JVS(1329)*UV(185)& - &+JVS(1330)*UV(194)+JVS(1333)*UV(217)+JVS(1334)*UV(229)+JVS(1340)*UV(247)+JVS(1342)*UV(269)+JVS(1343)*UV(280)& - &+JVS(1344)*UV(281)+JVS(1345)*UV(287) - JUV(195) = JVS(1346)*UV(142)+JVS(1347)*UV(162)+JVS(1349)*UV(195)+JVS(1350)*UV(201)+JVS(1353)*UV(238)+JVS(1356)*UV(245)& - &+JVS(1357)*UV(269)+JVS(1358)*UV(270)+JVS(1359)*UV(280)+JVS(1360)*UV(281) - JUV(196) = JVS(1361)*UV(196)+JVS(1362)*UV(211)+JVS(1363)*UV(212)+JVS(1364)*UV(221)+JVS(1365)*UV(234)+JVS(1366)*UV(257)& - &+JVS(1367)*UV(263)+JVS(1368)*UV(269)+JVS(1369)*UV(277)+JVS(1370)*UV(280)+JVS(1371)*UV(281)+JVS(1372)*UV(287) - JUV(197) = JVS(1373)*UV(111)+JVS(1374)*UV(197)+JVS(1375)*UV(254)+JVS(1376)*UV(257)+JVS(1377)*UV(263)+JVS(1378)*UV(269)& - &+JVS(1379)*UV(280)+JVS(1380)*UV(281)+JVS(1381)*UV(287) - JUV(198) = JVS(1382)*UV(198)+JVS(1383)*UV(249)+JVS(1384)*UV(251)+JVS(1385)*UV(252)+JVS(1386)*UV(269)+JVS(1387)*UV(280)& - &+JVS(1388)*UV(281) - JUV(199) = JVS(1389)*UV(199)+JVS(1390)*UV(265)+JVS(1391)*UV(270)+JVS(1392)*UV(275)+JVS(1393)*UV(276)+JVS(1394)*UV(278)& - &+JVS(1395)*UV(283) - JUV(200) = JVS(1396)*UV(141)+JVS(1398)*UV(200)+JVS(1402)*UV(244)+JVS(1403)*UV(269)+JVS(1405)*UV(280)+JVS(1406)*UV(281) - JUV(201) = JVS(1407)*UV(142)+JVS(1409)*UV(201)+JVS(1413)*UV(247)+JVS(1414)*UV(269)+JVS(1416)*UV(280)+JVS(1417)*UV(281) - JUV(202) = JVS(1418)*UV(139)+JVS(1419)*UV(179)+JVS(1420)*UV(180)+JVS(1422)*UV(190)+JVS(1423)*UV(202)+JVS(1426)*UV(224)& - &+JVS(1427)*UV(225)+JVS(1430)*UV(269)+JVS(1432)*UV(281) - JUV(203) = JVS(1433)*UV(133)+JVS(1434)*UV(149)+JVS(1435)*UV(203)+JVS(1437)*UV(247)+JVS(1438)*UV(269)+JVS(1439)*UV(270)& - &+JVS(1440)*UV(280)+JVS(1441)*UV(281)+JVS(1442)*UV(287) - JUV(204) = JVS(1443)*UV(110)+JVS(1444)*UV(204)+JVS(1445)*UV(254)+JVS(1446)*UV(257)+JVS(1447)*UV(263)+JVS(1448)*UV(269)& - &+JVS(1449)*UV(280)+JVS(1450)*UV(281)+JVS(1451)*UV(282)+JVS(1452)*UV(285) - JUV(205) = JVS(1453)*UV(143)+JVS(1454)*UV(146)+JVS(1455)*UV(163)+JVS(1456)*UV(185)+JVS(1457)*UV(205)+JVS(1459)*UV(217)& - &+JVS(1460)*UV(229)+JVS(1462)*UV(237)+JVS(1463)*UV(238)+JVS(1466)*UV(269)+JVS(1467)*UV(280)+JVS(1468)*UV(281)& - &+JVS(1469)*UV(287) - JUV(206) = JVS(1470)*UV(109)+JVS(1471)*UV(117)+JVS(1472)*UV(138)+JVS(1473)*UV(156)+JVS(1476)*UV(206)+JVS(1478)*UV(269)& - &+JVS(1479)*UV(270)+JVS(1483)*UV(287) - JUV(207) = JVS(1484)*UV(54)+JVS(1485)*UV(83)+JVS(1486)*UV(84)+JVS(1488)*UV(145)+JVS(1490)*UV(155)+JVS(1491)*UV(160)& - &+JVS(1492)*UV(165)+JVS(1497)*UV(207)+JVS(1499)*UV(230)+JVS(1500)*UV(232)+JVS(1501)*UV(234)+JVS(1503)*UV(237)& - &+JVS(1508)*UV(246)+JVS(1511)*UV(269)+JVS(1513)*UV(277)+JVS(1514)*UV(279)+JVS(1515)*UV(280)+JVS(1517)*UV(285) - JUV(208) = JVS(1519)*UV(150)+JVS(1520)*UV(151)+JVS(1521)*UV(165)+JVS(1522)*UV(191)+JVS(1523)*UV(208)+JVS(1524)*UV(220)& - &+JVS(1525)*UV(230)+JVS(1526)*UV(244)+JVS(1529)*UV(269)+JVS(1531)*UV(277)+JVS(1532)*UV(279)+JVS(1534)*UV(281)& - &+JVS(1535)*UV(284)+JVS(1536)*UV(285)+JVS(1537)*UV(286) - JUV(209) = JVS(1539)*UV(148)+JVS(1540)*UV(162)+JVS(1541)*UV(163)+JVS(1542)*UV(164)+JVS(1543)*UV(185)+JVS(1544)*UV(190)& - &+JVS(1545)*UV(209)+JVS(1548)*UV(217)+JVS(1549)*UV(224)+JVS(1550)*UV(225)+JVS(1551)*UV(238)+JVS(1555)*UV(269)& - &+JVS(1556)*UV(280) - JUV(210) = JVS(1558)*UV(210)+JVS(1559)*UV(241)+JVS(1560)*UV(242)+JVS(1561)*UV(263)+JVS(1562)*UV(269)+JVS(1563)*UV(280) - JUV(211) = JVS(1564)*UV(150)+JVS(1565)*UV(151)+JVS(1566)*UV(165)+JVS(1567)*UV(211)+JVS(1568)*UV(212)+JVS(1569)*UV(257)& - &+JVS(1570)*UV(263)+JVS(1573)*UV(280)+JVS(1574)*UV(281)+JVS(1575)*UV(287) - JUV(212) = JVS(1576)*UV(150)+JVS(1577)*UV(151)+JVS(1578)*UV(165)+JVS(1579)*UV(211)+JVS(1580)*UV(212)+JVS(1581)*UV(257)& - &+JVS(1582)*UV(263)+JVS(1585)*UV(280)+JVS(1586)*UV(281)+JVS(1587)*UV(287) - JUV(213) = JVS(1588)*UV(157)+JVS(1589)*UV(213)+JVS(1590)*UV(257)+JVS(1591)*UV(263)+JVS(1592)*UV(269)+JVS(1593)*UV(280)& - &+JVS(1594)*UV(281)+JVS(1595)*UV(282)+JVS(1596)*UV(285)+JVS(1597)*UV(287) - JUV(214) = JVS(1598)*UV(175)+JVS(1599)*UV(197)+JVS(1600)*UV(204)+JVS(1601)*UV(212)+JVS(1602)*UV(213)+JVS(1603)*UV(214)& - &+JVS(1604)*UV(221)+JVS(1605)*UV(232)+JVS(1606)*UV(233)+JVS(1607)*UV(234)+JVS(1608)*UV(235)+JVS(1609)*UV(240)& - &+JVS(1610)*UV(241)+JVS(1611)*UV(248)+JVS(1612)*UV(249)+JVS(1613)*UV(251)+JVS(1614)*UV(252)+JVS(1615)*UV(253)& - &+JVS(1618)*UV(263)+JVS(1619)*UV(269)+JVS(1624)*UV(285) - JUV(215) = JVS(1626)*UV(145)+JVS(1627)*UV(191)+JVS(1628)*UV(197)+JVS(1629)*UV(204)+JVS(1630)*UV(213)+JVS(1631)*UV(215)& - &+JVS(1632)*UV(233)+JVS(1633)*UV(235)+JVS(1634)*UV(246)+JVS(1635)*UV(248)+JVS(1636)*UV(249)+JVS(1637)*UV(251)& - &+JVS(1638)*UV(252)+JVS(1639)*UV(253)+JVS(1641)*UV(257)+JVS(1643)*UV(263)+JVS(1644)*UV(269)+JVS(1646)*UV(277)& - &+JVS(1647)*UV(279)+JVS(1649)*UV(281)+JVS(1651)*UV(285) - JUV(216) = JVS(1654)*UV(216)+JVS(1655)*UV(240)+JVS(1656)*UV(241)+JVS(1657)*UV(243)+JVS(1658)*UV(263)+JVS(1659)*UV(269)& - &+JVS(1660)*UV(280) - JUV(217) = JVS(1661)*UV(177)+JVS(1662)*UV(217)+JVS(1666)*UV(269)+JVS(1667)*UV(280)+JVS(1668)*UV(281) - JUV(218) = JVS(1669)*UV(54)+JVS(1670)*UV(60)+JVS(1671)*UV(76)+JVS(1672)*UV(77)+JVS(1673)*UV(117)+JVS(1674)*UV(152)& - &+JVS(1675)*UV(155)+JVS(1676)*UV(159)+JVS(1677)*UV(160)+JVS(1678)*UV(168)+JVS(1681)*UV(181)+JVS(1686)*UV(202)& - &+JVS(1691)*UV(218)+JVS(1694)*UV(225)+JVS(1696)*UV(232)+JVS(1705)*UV(269)+JVS(1707)*UV(277)+JVS(1708)*UV(280)& - &+JVS(1709)*UV(281)+JVS(1710)*UV(287) - JUV(219) = JVS(1711)*UV(86)+JVS(1712)*UV(93)+JVS(1713)*UV(198)+JVS(1714)*UV(219)+JVS(1715)*UV(234)+JVS(1718)*UV(252)& - &+JVS(1719)*UV(253)+JVS(1720)*UV(257)+JVS(1721)*UV(263)+JVS(1722)*UV(269)+JVS(1723)*UV(280)+JVS(1725)*UV(282)& - &+JVS(1726)*UV(285) - JUV(220) = JVS(1727)*UV(220)+JVS(1728)*UV(269)+JVS(1729)*UV(277)+JVS(1730)*UV(285)+JVS(1731)*UV(287) - JUV(221) = JVS(1732)*UV(165)+JVS(1733)*UV(221)+JVS(1734)*UV(257)+JVS(1735)*UV(263)+JVS(1736)*UV(269)+JVS(1738)*UV(280)& - &+JVS(1739)*UV(281)+JVS(1740)*UV(287) - JUV(222) = JVS(1741)*UV(118)+JVS(1742)*UV(150)+JVS(1743)*UV(151)+JVS(1744)*UV(174)+JVS(1745)*UV(198)+JVS(1746)*UV(211)& - &+JVS(1747)*UV(212)+JVS(1748)*UV(221)+JVS(1749)*UV(222)+JVS(1750)*UV(234)+JVS(1751)*UV(249)+JVS(1753)*UV(252)& - &+JVS(1754)*UV(257)+JVS(1755)*UV(263)+JVS(1756)*UV(269)+JVS(1757)*UV(277)+JVS(1758)*UV(280)+JVS(1760)*UV(287) - JUV(223) = JVS(1761)*UV(40)+JVS(1762)*UV(47)+JVS(1763)*UV(90)+JVS(1764)*UV(223)+JVS(1765)*UV(264)+JVS(1766)*UV(265)& - &+JVS(1767)*UV(266)+JVS(1768)*UV(269)+JVS(1769)*UV(270)+JVS(1770)*UV(273)+JVS(1771)*UV(274)+JVS(1772)*UV(277)& - &+JVS(1773)*UV(280)+JVS(1774)*UV(281) - JUV(224) = JVS(1775)*UV(122)+JVS(1776)*UV(127)+JVS(1777)*UV(128)+JVS(1782)*UV(189)+JVS(1785)*UV(224)+JVS(1792)*UV(269)& - &+JVS(1793)*UV(280)+JVS(1794)*UV(281) - JUV(225) = JVS(1795)*UV(122)+JVS(1796)*UV(127)+JVS(1797)*UV(128)+JVS(1802)*UV(189)+JVS(1806)*UV(225)+JVS(1812)*UV(269)& - &+JVS(1813)*UV(280)+JVS(1814)*UV(281) - JUV(226) = JVS(1815)*UV(126)+JVS(1816)*UV(153)+JVS(1817)*UV(159)+JVS(1820)*UV(180)+JVS(1821)*UV(182)+JVS(1823)*UV(189)& - &+JVS(1824)*UV(200)+JVS(1825)*UV(209)+JVS(1827)*UV(216)+JVS(1828)*UV(217)+JVS(1832)*UV(226)+JVS(1837)*UV(242)& - &+JVS(1838)*UV(243)+JVS(1840)*UV(263)+JVS(1841)*UV(269)+JVS(1844)*UV(280)+JVS(1845)*UV(281) - JUV(227) = JVS(1848)*UV(124)+JVS(1849)*UV(158)+JVS(1850)*UV(159)+JVS(1852)*UV(179)+JVS(1855)*UV(184)+JVS(1856)*UV(189)& - &+JVS(1857)*UV(201)+JVS(1858)*UV(202)+JVS(1859)*UV(209)+JVS(1860)*UV(210)+JVS(1862)*UV(217)+JVS(1866)*UV(227)& - &+JVS(1868)*UV(238)+JVS(1871)*UV(242)+JVS(1872)*UV(243)+JVS(1874)*UV(263)+JVS(1875)*UV(269)+JVS(1878)*UV(280)& - &+JVS(1879)*UV(281) - JUV(228) = JVS(1882)*UV(76)+JVS(1883)*UV(77)+JVS(1884)*UV(84)+JVS(1886)*UV(145)+JVS(1888)*UV(152)+JVS(1889)*UV(159)& - &+JVS(1890)*UV(160)+JVS(1891)*UV(161)+JVS(1892)*UV(167)+JVS(1893)*UV(170)+JVS(1896)*UV(181)+JVS(1897)*UV(182)& - &+JVS(1899)*UV(184)+JVS(1900)*UV(189)+JVS(1901)*UV(193)+JVS(1902)*UV(194)+JVS(1904)*UV(200)+JVS(1905)*UV(201)& - &+JVS(1906)*UV(202)+JVS(1908)*UV(209)+JVS(1912)*UV(220)+JVS(1913)*UV(224)+JVS(1915)*UV(226)+JVS(1916)*UV(227)& - &+JVS(1917)*UV(228)+JVS(1920)*UV(237)+JVS(1925)*UV(242)+JVS(1926)*UV(243)+JVS(1927)*UV(244)+JVS(1929)*UV(246)& - &+JVS(1930)*UV(247)+JVS(1931)*UV(248)+JVS(1934)*UV(257)+JVS(1935)*UV(263)+JVS(1936)*UV(269)+JVS(1938)*UV(277)& - &+JVS(1939)*UV(280)+JVS(1940)*UV(281)+JVS(1942)*UV(287) - JUV(229) = JVS(1943)*UV(123)+JVS(1945)*UV(177)+JVS(1946)*UV(229)+JVS(1947)*UV(238)+JVS(1953)*UV(269)+JVS(1954)*UV(280)& - &+JVS(1955)*UV(281) - JUV(230) = JVS(1957)*UV(75)+JVS(1958)*UV(220)+JVS(1959)*UV(230)+JVS(1960)*UV(244)+JVS(1961)*UV(247)+JVS(1962)*UV(254)& - &+JVS(1963)*UV(258)+JVS(1965)*UV(270)+JVS(1966)*UV(277)+JVS(1967)*UV(279)+JVS(1968)*UV(280)+JVS(1970)*UV(286) - JUV(231) = JVS(1972)*UV(169)+JVS(1973)*UV(231)+JVS(1974)*UV(269)+JVS(1976)*UV(271)+JVS(1977)*UV(272)+JVS(1978)*UV(275)& - &+JVS(1979)*UV(276)+JVS(1980)*UV(278)+JVS(1982)*UV(283) - JUV(232) = JVS(1984)*UV(64)+JVS(1985)*UV(102)+JVS(1986)*UV(113)+JVS(1987)*UV(138)+JVS(1988)*UV(139)+JVS(1989)*UV(143)& - &+JVS(1990)*UV(145)+JVS(1991)*UV(155)+JVS(1992)*UV(159)+JVS(1993)*UV(162)+JVS(1994)*UV(164)+JVS(1995)*UV(175)& - &+JVS(1997)*UV(180)+JVS(1998)*UV(183)+JVS(1999)*UV(200)+JVS(2000)*UV(202)+JVS(2002)*UV(209)+JVS(2005)*UV(217)& - &+JVS(2007)*UV(224)+JVS(2009)*UV(226)+JVS(2010)*UV(229)+JVS(2011)*UV(232)+JVS(2013)*UV(237)+JVS(2014)*UV(238)& - &+JVS(2015)*UV(239)+JVS(2022)*UV(263)+JVS(2023)*UV(269)+JVS(2025)*UV(277)+JVS(2026)*UV(280)+JVS(2027)*UV(281) - JUV(233) = JVS(2030)*UV(92)+JVS(2031)*UV(121)+JVS(2032)*UV(198)+JVS(2033)*UV(222)+JVS(2034)*UV(233)+JVS(2037)*UV(250)& - &+JVS(2039)*UV(252)+JVS(2040)*UV(255)+JVS(2041)*UV(257)+JVS(2042)*UV(263)+JVS(2043)*UV(269)+JVS(2045)*UV(280)& - &+JVS(2046)*UV(281)+JVS(2047)*UV(282)+JVS(2048)*UV(285) - JUV(234) = JVS(2050)*UV(150)+JVS(2051)*UV(151)+JVS(2052)*UV(234)+JVS(2053)*UV(257)+JVS(2054)*UV(263)+JVS(2055)*UV(269)& - &+JVS(2057)*UV(280)+JVS(2058)*UV(281)+JVS(2059)*UV(287) - JUV(235) = JVS(2060)*UV(108)+JVS(2061)*UV(165)+JVS(2062)*UV(198)+JVS(2064)*UV(222)+JVS(2066)*UV(235)+JVS(2068)*UV(250)& - &+JVS(2070)*UV(252)+JVS(2071)*UV(255)+JVS(2072)*UV(257)+JVS(2073)*UV(263)+JVS(2074)*UV(269)+JVS(2075)*UV(277)& - &+JVS(2076)*UV(280)+JVS(2077)*UV(281)+JVS(2079)*UV(285) - JUV(236) = JVS(2081)*UV(123)+JVS(2082)*UV(147)+JVS(2083)*UV(210)+JVS(2084)*UV(216)+JVS(2085)*UV(236)+JVS(2086)*UV(239)& - &+JVS(2087)*UV(240)+JVS(2088)*UV(241)+JVS(2091)*UV(257)+JVS(2092)*UV(263)+JVS(2093)*UV(269)+JVS(2094)*UV(280)& - &+JVS(2096)*UV(287) - JUV(237) = JVS(2097)*UV(141)+JVS(2098)*UV(148)+JVS(2099)*UV(163)+JVS(2101)*UV(185)+JVS(2102)*UV(200)+JVS(2103)*UV(210)& - &+JVS(2104)*UV(217)+JVS(2106)*UV(229)+JVS(2107)*UV(236)+JVS(2108)*UV(237)+JVS(2109)*UV(238)+JVS(2118)*UV(269)& - &+JVS(2119)*UV(270)+JVS(2121)*UV(280)+JVS(2122)*UV(281) - JUV(238) = JVS(2125)*UV(147)+JVS(2126)*UV(148)+JVS(2127)*UV(162)+JVS(2128)*UV(163)+JVS(2129)*UV(164)+JVS(2130)*UV(177)& - &+JVS(2131)*UV(179)+JVS(2132)*UV(180)+JVS(2133)*UV(183)+JVS(2134)*UV(185)+JVS(2137)*UV(217)+JVS(2138)*UV(229)& - &+JVS(2139)*UV(238)+JVS(2140)*UV(239)+JVS(2147)*UV(269)+JVS(2148)*UV(280)+JVS(2149)*UV(281) - JUV(239) = JVS(2151)*UV(143)+JVS(2152)*UV(148)+JVS(2153)*UV(162)+JVS(2154)*UV(163)+JVS(2155)*UV(164)+JVS(2156)*UV(185)& - &+JVS(2159)*UV(217)+JVS(2160)*UV(229)+JVS(2162)*UV(239)+JVS(2163)*UV(240)+JVS(2164)*UV(241)+JVS(2169)*UV(269)& - &+JVS(2170)*UV(280)+JVS(2171)*UV(281) - JUV(240) = JVS(2173)*UV(177)+JVS(2174)*UV(220)+JVS(2175)*UV(240)+JVS(2176)*UV(241)+JVS(2177)*UV(257)+JVS(2178)*UV(263)& - &+JVS(2179)*UV(269)+JVS(2181)*UV(280)+JVS(2182)*UV(281)+JVS(2184)*UV(287) - JUV(241) = JVS(2185)*UV(147)+JVS(2186)*UV(220)+JVS(2187)*UV(240)+JVS(2188)*UV(241)+JVS(2189)*UV(257)+JVS(2190)*UV(263)& - &+JVS(2191)*UV(269)+JVS(2193)*UV(280)+JVS(2194)*UV(281)+JVS(2196)*UV(287) - JUV(242) = JVS(2197)*UV(147)+JVS(2198)*UV(153)+JVS(2199)*UV(167)+JVS(2200)*UV(220)+JVS(2202)*UV(242)+JVS(2203)*UV(243)& - &+JVS(2205)*UV(263)+JVS(2206)*UV(269)+JVS(2208)*UV(280)+JVS(2209)*UV(281)+JVS(2210)*UV(285) - JUV(243) = JVS(2212)*UV(147)+JVS(2213)*UV(158)+JVS(2214)*UV(161)+JVS(2215)*UV(220)+JVS(2217)*UV(242)+JVS(2218)*UV(243)& - &+JVS(2220)*UV(263)+JVS(2221)*UV(269)+JVS(2223)*UV(280)+JVS(2224)*UV(281)+JVS(2225)*UV(285) - JUV(244) = JVS(2227)*UV(76)+JVS(2228)*UV(77)+JVS(2229)*UV(120)+JVS(2230)*UV(126)+JVS(2231)*UV(136)+JVS(2232)*UV(153)& - &+JVS(2234)*UV(177)+JVS(2235)*UV(182)+JVS(2236)*UV(220)+JVS(2237)*UV(239)+JVS(2238)*UV(240)+JVS(2239)*UV(241)& - &+JVS(2240)*UV(242)+JVS(2241)*UV(243)+JVS(2242)*UV(244)+JVS(2243)*UV(257)+JVS(2244)*UV(263)+JVS(2245)*UV(269)& - &+JVS(2246)*UV(277)+JVS(2247)*UV(280)+JVS(2248)*UV(281)+JVS(2250)*UV(287) - JUV(245) = JVS(2251)*UV(195)+JVS(2261)*UV(245)+JVS(2264)*UV(263)+JVS(2265)*UV(269)+JVS(2266)*UV(270)+JVS(2268)*UV(280)& - &+JVS(2269)*UV(281)+JVS(2271)*UV(287) - JUV(246) = JVS(2272)*UV(110)+JVS(2273)*UV(130)+JVS(2274)*UV(131)+JVS(2275)*UV(133)+JVS(2276)*UV(139)+JVS(2277)*UV(149)& - &+JVS(2278)*UV(159)+JVS(2279)*UV(162)+JVS(2280)*UV(163)+JVS(2281)*UV(170)+JVS(2283)*UV(179)+JVS(2286)*UV(183)& - &+JVS(2288)*UV(190)+JVS(2289)*UV(195)+JVS(2291)*UV(201)+JVS(2292)*UV(202)+JVS(2294)*UV(204)+JVS(2299)*UV(217)& - &+JVS(2301)*UV(221)+JVS(2303)*UV(225)+JVS(2304)*UV(227)+JVS(2305)*UV(229)+JVS(2308)*UV(238)+JVS(2309)*UV(239)& - &+JVS(2314)*UV(245)+JVS(2315)*UV(246)+JVS(2317)*UV(248)+JVS(2319)*UV(257)+JVS(2320)*UV(263)+JVS(2321)*UV(269)& - &+JVS(2324)*UV(280)+JVS(2325)*UV(281)+JVS(2328)*UV(287) - JUV(247) = JVS(2329)*UV(116)+JVS(2330)*UV(124)+JVS(2331)*UV(137)+JVS(2332)*UV(158)+JVS(2334)*UV(165)+JVS(2335)*UV(177)& - &+JVS(2336)*UV(184)+JVS(2337)*UV(220)+JVS(2338)*UV(221)+JVS(2339)*UV(239)+JVS(2340)*UV(240)+JVS(2341)*UV(241)& - &+JVS(2342)*UV(242)+JVS(2343)*UV(243)+JVS(2344)*UV(247)+JVS(2345)*UV(257)+JVS(2346)*UV(263)+JVS(2347)*UV(269)& - &+JVS(2348)*UV(277)+JVS(2349)*UV(280)+JVS(2350)*UV(281)+JVS(2352)*UV(287) - JUV(248) = JVS(2353)*UV(193)+JVS(2355)*UV(219)+JVS(2367)*UV(248)+JVS(2372)*UV(257)+JVS(2373)*UV(263)+JVS(2374)*UV(269)& - &+JVS(2377)*UV(280)+JVS(2378)*UV(281)+JVS(2379)*UV(282)+JVS(2380)*UV(285) - JUV(249) = JVS(2382)*UV(150)+JVS(2383)*UV(151)+JVS(2384)*UV(165)+JVS(2385)*UV(222)+JVS(2387)*UV(249)+JVS(2390)*UV(257)& - &+JVS(2391)*UV(263)+JVS(2392)*UV(269)+JVS(2393)*UV(277)+JVS(2394)*UV(280)+JVS(2395)*UV(281)+JVS(2396)*UV(287) - JUV(250) = JVS(2397)*UV(49)+JVS(2398)*UV(94)+JVS(2399)*UV(145)+JVS(2400)*UV(155)+JVS(2402)*UV(222)+JVS(2404)*UV(244)& - &+JVS(2406)*UV(250)+JVS(2409)*UV(255)+JVS(2410)*UV(257)+JVS(2411)*UV(263)+JVS(2412)*UV(269)+JVS(2413)*UV(270)& - &+JVS(2415)*UV(280)+JVS(2416)*UV(281)+JVS(2418)*UV(287) - JUV(251) = JVS(2419)*UV(198)+JVS(2420)*UV(206)+JVS(2422)*UV(251)+JVS(2424)*UV(257)+JVS(2425)*UV(263)+JVS(2426)*UV(269)& - &+JVS(2429)*UV(280)+JVS(2430)*UV(281)+JVS(2431)*UV(287) - JUV(252) = JVS(2432)*UV(91)+JVS(2433)*UV(112)+JVS(2434)*UV(118)+JVS(2435)*UV(145)+JVS(2438)*UV(251)+JVS(2439)*UV(252)& - &+JVS(2440)*UV(257)+JVS(2441)*UV(263)+JVS(2442)*UV(269)+JVS(2445)*UV(280)+JVS(2446)*UV(281)+JVS(2447)*UV(285)& - &+JVS(2448)*UV(287) - JUV(253) = JVS(2449)*UV(93)+JVS(2450)*UV(121)+JVS(2451)*UV(198)+JVS(2452)*UV(222)+JVS(2455)*UV(250)+JVS(2457)*UV(252)& - &+JVS(2458)*UV(253)+JVS(2459)*UV(255)+JVS(2460)*UV(257)+JVS(2461)*UV(263)+JVS(2462)*UV(269)+JVS(2465)*UV(280)& - &+JVS(2466)*UV(281)+JVS(2468)*UV(285) - JUV(254) = JVS(2470)*UV(165)+JVS(2471)*UV(221)+JVS(2472)*UV(244)+JVS(2473)*UV(254)+JVS(2474)*UV(257)+JVS(2475)*UV(263)& - &+JVS(2476)*UV(269)+JVS(2477)*UV(277)+JVS(2478)*UV(280)+JVS(2480)*UV(282)+JVS(2481)*UV(285)+JVS(2482)*UV(287) - JUV(255) = JVS(2483)*UV(89)+JVS(2484)*UV(91)+JVS(2485)*UV(92)+JVS(2486)*UV(111)+JVS(2487)*UV(118)+JVS(2488)*UV(145)& - &+JVS(2489)*UV(150)+JVS(2490)*UV(151)+JVS(2491)*UV(154)+JVS(2492)*UV(155)+JVS(2493)*UV(196)+JVS(2494)*UV(197)& - &+JVS(2495)*UV(198)+JVS(2496)*UV(204)+JVS(2498)*UV(211)+JVS(2499)*UV(212)+JVS(2500)*UV(221)+JVS(2501)*UV(233)& - &+JVS(2502)*UV(234)+JVS(2505)*UV(251)+JVS(2506)*UV(252)+JVS(2509)*UV(255)+JVS(2510)*UV(257)+JVS(2511)*UV(263)& - &+JVS(2512)*UV(269)+JVS(2514)*UV(277)+JVS(2515)*UV(280)+JVS(2519)*UV(287) - JUV(256) = JVS(2520)*UV(125)+JVS(2521)*UV(172)+JVS(2522)*UV(256)+JVS(2523)*UV(269)+JVS(2525)*UV(271)+JVS(2526)*UV(272)& - &+JVS(2527)*UV(274)+JVS(2528)*UV(275)+JVS(2529)*UV(276)+JVS(2530)*UV(277)+JVS(2531)*UV(278)+JVS(2532)*UV(279)& - &+JVS(2533)*UV(281)+JVS(2535)*UV(283)+JVS(2536)*UV(284)+JVS(2537)*UV(286) - JUV(257) = JVS(2538)*UV(63)+JVS(2539)*UV(66)+JVS(2540)*UV(84)+JVS(2541)*UV(104)+JVS(2542)*UV(133)+JVS(2544)*UV(152)& - &+JVS(2545)*UV(160)+JVS(2546)*UV(166)+JVS(2547)*UV(167)+JVS(2548)*UV(178)+JVS(2549)*UV(181)+JVS(2553)*UV(193)& - &+JVS(2554)*UV(194)+JVS(2555)*UV(197)+JVS(2556)*UV(200)+JVS(2558)*UV(203)+JVS(2559)*UV(204)+JVS(2560)*UV(205)& - &+JVS(2562)*UV(211)+JVS(2563)*UV(212)+JVS(2564)*UV(213)+JVS(2567)*UV(219)+JVS(2568)*UV(220)+JVS(2569)*UV(221)& - &+JVS(2570)*UV(222)+JVS(2573)*UV(226)+JVS(2575)*UV(228)+JVS(2577)*UV(233)+JVS(2578)*UV(234)+JVS(2579)*UV(235)& - &+JVS(2581)*UV(237)+JVS(2584)*UV(240)+JVS(2585)*UV(241)+JVS(2586)*UV(242)+JVS(2588)*UV(244)+JVS(2590)*UV(246)& - &+JVS(2591)*UV(247)+JVS(2592)*UV(248)+JVS(2593)*UV(249)+JVS(2594)*UV(250)+JVS(2595)*UV(251)+JVS(2596)*UV(252)& - &+JVS(2597)*UV(253)+JVS(2600)*UV(257)+JVS(2601)*UV(261)+JVS(2602)*UV(263)+JVS(2603)*UV(269)+JVS(2604)*UV(270)& - &+JVS(2605)*UV(277)+JVS(2606)*UV(280)+JVS(2607)*UV(281)+JVS(2608)*UV(282)+JVS(2610)*UV(287) - JUV(258) = JVS(2611)*UV(54)+JVS(2612)*UV(60)+JVS(2613)*UV(62)+JVS(2614)*UV(68)+JVS(2615)*UV(73)+JVS(2616)*UV(76)& - &+JVS(2617)*UV(77)+JVS(2618)*UV(99)+JVS(2619)*UV(100)+JVS(2620)*UV(106)+JVS(2621)*UV(122)+JVS(2622)*UV(124)& - &+JVS(2623)*UV(126)+JVS(2624)*UV(130)+JVS(2625)*UV(133)+JVS(2626)*UV(145)+JVS(2627)*UV(146)+JVS(2628)*UV(149)& - &+JVS(2629)*UV(150)+JVS(2630)*UV(151)+JVS(2631)*UV(152)+JVS(2632)*UV(153)+JVS(2633)*UV(155)+JVS(2634)*UV(158)& - &+JVS(2635)*UV(160)+JVS(2636)*UV(161)+JVS(2637)*UV(165)+JVS(2638)*UV(166)+JVS(2639)*UV(167)+JVS(2640)*UV(168)& - &+JVS(2641)*UV(170)+JVS(2642)*UV(171)+JVS(2644)*UV(181)+JVS(2645)*UV(182)+JVS(2646)*UV(184)+JVS(2648)*UV(189)& - &+JVS(2649)*UV(190)+JVS(2650)*UV(191)+JVS(2651)*UV(195)+JVS(2653)*UV(201)+JVS(2654)*UV(202)+JVS(2655)*UV(203)& - &+JVS(2656)*UV(205)+JVS(2657)*UV(206)+JVS(2658)*UV(209)+JVS(2659)*UV(210)+JVS(2660)*UV(216)+JVS(2662)*UV(218)& - &+JVS(2663)*UV(219)+JVS(2664)*UV(220)+JVS(2665)*UV(224)+JVS(2666)*UV(225)+JVS(2668)*UV(227)+JVS(2669)*UV(228)& - &+JVS(2671)*UV(230)+JVS(2672)*UV(232)+JVS(2674)*UV(236)+JVS(2680)*UV(242)+JVS(2681)*UV(243)+JVS(2682)*UV(244)& - &+JVS(2684)*UV(246)+JVS(2685)*UV(247)+JVS(2691)*UV(254)+JVS(2692)*UV(255)+JVS(2694)*UV(258)+JVS(2695)*UV(261)& - &+JVS(2696)*UV(262)+JVS(2697)*UV(263)+JVS(2698)*UV(269)+JVS(2700)*UV(277)+JVS(2702)*UV(280)+JVS(2703)*UV(281)& - &+JVS(2704)*UV(282)+JVS(2705)*UV(284)+JVS(2706)*UV(285)+JVS(2708)*UV(287) - JUV(259) = JVS(2709)*UV(259)+JVS(2710)*UV(269)+JVS(2711)*UV(270)+JVS(2712)*UV(271)+JVS(2713)*UV(272)+JVS(2714)*UV(273)& - &+JVS(2715)*UV(275)+JVS(2716)*UV(276)+JVS(2717)*UV(278)+JVS(2718)*UV(279)+JVS(2719)*UV(283)+JVS(2720)*UV(284)& - &+JVS(2721)*UV(285) - JUV(260) = JVS(2722)*UV(41)+JVS(2723)*UV(82)+JVS(2724)*UV(96)+JVS(2725)*UV(99)+JVS(2726)*UV(109)+JVS(2727)*UV(112)& - &+JVS(2728)*UV(117)+JVS(2730)*UV(135)+JVS(2733)*UV(138)+JVS(2734)*UV(144)+JVS(2736)*UV(157)+JVS(2737)*UV(169)& - &+JVS(2739)*UV(172)+JVS(2747)*UV(205)+JVS(2748)*UV(206)+JVS(2755)*UV(218)+JVS(2758)*UV(222)+JVS(2762)*UV(228)& - &+JVS(2777)*UV(247)+JVS(2784)*UV(255)+JVS(2786)*UV(259)+JVS(2787)*UV(260)+JVS(2788)*UV(261)+JVS(2789)*UV(262)& - &+JVS(2791)*UV(266)+JVS(2792)*UV(269)+JVS(2793)*UV(270)+JVS(2794)*UV(271)+JVS(2795)*UV(272)+JVS(2798)*UV(275)& - &+JVS(2799)*UV(276)+JVS(2801)*UV(278)+JVS(2802)*UV(279)+JVS(2806)*UV(283)+JVS(2810)*UV(287) - JUV(261) = JVS(2811)*UV(88)+JVS(2812)*UV(94)+JVS(2813)*UV(108)+JVS(2814)*UV(110)+JVS(2815)*UV(129)+JVS(2816)*UV(191)& - &+JVS(2817)*UV(197)+JVS(2818)*UV(198)+JVS(2819)*UV(204)+JVS(2820)*UV(213)+JVS(2821)*UV(235)+JVS(2822)*UV(249)& - &+JVS(2824)*UV(251)+JVS(2825)*UV(252)+JVS(2826)*UV(254)+JVS(2828)*UV(257)+JVS(2829)*UV(258)+JVS(2830)*UV(261)& - &+JVS(2832)*UV(263)+JVS(2833)*UV(269)+JVS(2834)*UV(270)+JVS(2835)*UV(277)+JVS(2836)*UV(279)+JVS(2837)*UV(280)& - &+JVS(2838)*UV(281)+JVS(2839)*UV(282)+JVS(2841)*UV(285)+JVS(2842)*UV(286)+JVS(2843)*UV(287) - JUV(262) = JVS(2844)*UV(71)+JVS(2845)*UV(75)+JVS(2846)*UV(82)+JVS(2847)*UV(83)+JVS(2848)*UV(85)+JVS(2849)*UV(87)& - &+JVS(2850)*UV(102)+JVS(2851)*UV(110)+JVS(2853)*UV(133)+JVS(2854)*UV(134)+JVS(2855)*UV(136)+JVS(2856)*UV(137)& - &+JVS(2857)*UV(148)+JVS(2858)*UV(153)+JVS(2859)*UV(158)+JVS(2860)*UV(161)+JVS(2861)*UV(162)+JVS(2862)*UV(163)& - &+JVS(2863)*UV(164)+JVS(2864)*UV(165)+JVS(2865)*UV(166)+JVS(2866)*UV(167)+JVS(2867)*UV(168)+JVS(2868)*UV(170)& - &+JVS(2869)*UV(175)+JVS(2870)*UV(176)+JVS(2871)*UV(177)+JVS(2872)*UV(178)+JVS(2873)*UV(179)+JVS(2874)*UV(180)& - &+JVS(2875)*UV(182)+JVS(2876)*UV(184)+JVS(2877)*UV(185)+JVS(2878)*UV(186)+JVS(2879)*UV(187)+JVS(2880)*UV(190)& - &+JVS(2881)*UV(193)+JVS(2882)*UV(194)+JVS(2883)*UV(197)+JVS(2884)*UV(200)+JVS(2885)*UV(201)+JVS(2886)*UV(202)& - &+JVS(2887)*UV(203)+JVS(2888)*UV(204)+JVS(2889)*UV(205)+JVS(2891)*UV(211)+JVS(2892)*UV(212)+JVS(2893)*UV(213)& - &+JVS(2894)*UV(214)+JVS(2896)*UV(217)+JVS(2897)*UV(218)+JVS(2898)*UV(220)+JVS(2899)*UV(221)+JVS(2902)*UV(226)& - &+JVS(2903)*UV(227)+JVS(2904)*UV(229)+JVS(2905)*UV(230)+JVS(2906)*UV(232)+JVS(2907)*UV(233)+JVS(2908)*UV(234)& - &+JVS(2909)*UV(235)+JVS(2911)*UV(237)+JVS(2912)*UV(238)+JVS(2913)*UV(239)+JVS(2914)*UV(240)+JVS(2915)*UV(241)& - &+JVS(2916)*UV(242)+JVS(2917)*UV(243)+JVS(2918)*UV(244)+JVS(2919)*UV(245)+JVS(2920)*UV(246)+JVS(2921)*UV(247)& - &+JVS(2922)*UV(248)+JVS(2923)*UV(249)+JVS(2924)*UV(250)+JVS(2925)*UV(251)+JVS(2926)*UV(252)+JVS(2927)*UV(253)& - &+JVS(2928)*UV(254)+JVS(2930)*UV(257)+JVS(2931)*UV(258)+JVS(2932)*UV(261)+JVS(2933)*UV(262)+JVS(2934)*UV(263)& - &+JVS(2935)*UV(268)+JVS(2936)*UV(269)+JVS(2937)*UV(270)+JVS(2938)*UV(273)+JVS(2939)*UV(277)+JVS(2940)*UV(279)& - &+JVS(2941)*UV(280)+JVS(2942)*UV(281)+JVS(2943)*UV(282)+JVS(2944)*UV(284)+JVS(2945)*UV(285)+JVS(2946)*UV(286)& - &+JVS(2947)*UV(287) - JUV(263) = JVS(2948)*UV(43)+JVS(2949)*UV(63)+JVS(2950)*UV(66)+JVS(2951)*UV(71)+JVS(2952)*UV(82)+JVS(2953)*UV(97)& - &+JVS(2954)*UV(100)+JVS(2955)*UV(133)+JVS(2956)*UV(134)+JVS(2957)*UV(175)+JVS(2958)*UV(176)+JVS(2959)*UV(178)& - &+JVS(2960)*UV(186)+JVS(2961)*UV(187)+JVS(2962)*UV(197)+JVS(2963)*UV(198)+JVS(2964)*UV(203)+JVS(2965)*UV(204)& - &+JVS(2966)*UV(211)+JVS(2967)*UV(212)+JVS(2968)*UV(213)+JVS(2969)*UV(215)+JVS(2970)*UV(219)+JVS(2971)*UV(220)& - &+JVS(2972)*UV(221)+JVS(2973)*UV(222)+JVS(2974)*UV(233)+JVS(2975)*UV(234)+JVS(2976)*UV(235)+JVS(2977)*UV(240)& - &+JVS(2978)*UV(241)+JVS(2979)*UV(242)+JVS(2980)*UV(243)+JVS(2981)*UV(244)+JVS(2982)*UV(245)+JVS(2983)*UV(246)& - &+JVS(2985)*UV(248)+JVS(2986)*UV(249)+JVS(2987)*UV(250)+JVS(2988)*UV(251)+JVS(2989)*UV(252)+JVS(2990)*UV(253)& - &+JVS(2991)*UV(254)+JVS(2993)*UV(257)+JVS(2995)*UV(261)+JVS(2997)*UV(263)+JVS(2998)*UV(268)+JVS(2999)*UV(269)& - &+JVS(3000)*UV(270)+JVS(3001)*UV(273)+JVS(3002)*UV(277)+JVS(3004)*UV(280)+JVS(3005)*UV(281)+JVS(3008)*UV(285)& - &+JVS(3010)*UV(287) - JUV(264) = JVS(3011)*UV(140)+JVS(3013)*UV(223)+JVS(3014)*UV(264)+JVS(3016)*UV(266)+JVS(3017)*UV(269)+JVS(3021)*UV(275)& - &+JVS(3022)*UV(276)+JVS(3024)*UV(278)+JVS(3025)*UV(279)+JVS(3027)*UV(281)+JVS(3028)*UV(283) - JUV(265) = JVS(3030)*UV(1)+JVS(3031)*UV(2)+JVS(3032)*UV(3)+JVS(3033)*UV(40)+JVS(3034)*UV(43)+JVS(3035)*UV(56)& - &+JVS(3036)*UV(65)+JVS(3037)*UV(69)+JVS(3038)*UV(90)+JVS(3039)*UV(98)+JVS(3040)*UV(140)+JVS(3041)*UV(199)& - &+JVS(3042)*UV(223)+JVS(3043)*UV(264)+JVS(3044)*UV(265)+JVS(3045)*UV(266)+JVS(3046)*UV(269)+JVS(3047)*UV(270)& - &+JVS(3048)*UV(273)+JVS(3049)*UV(274)+JVS(3052)*UV(277)+JVS(3055)*UV(280)+JVS(3056)*UV(281)+JVS(3058)*UV(287) - JUV(266) = JVS(3059)*UV(140)+JVS(3061)*UV(223)+JVS(3063)*UV(265)+JVS(3064)*UV(266)+JVS(3066)*UV(270)+JVS(3069)*UV(275)& - &+JVS(3070)*UV(276)+JVS(3072)*UV(278)+JVS(3073)*UV(279)+JVS(3076)*UV(283)+JVS(3077)*UV(287) - JUV(267) = JVS(3078)*UV(72)+JVS(3079)*UV(107)+JVS(3080)*UV(192)+JVS(3082)*UV(231)+JVS(3083)*UV(259)+JVS(3088)*UV(267)& - &+JVS(3090)*UV(269)+JVS(3092)*UV(271)+JVS(3093)*UV(272)+JVS(3094)*UV(273)+JVS(3099)*UV(278)+JVS(3100)*UV(279)& - &+JVS(3102)*UV(281)+JVS(3104)*UV(283)+JVS(3107)*UV(286) - JUV(268) = JVS(3109)*UV(42)+JVS(3110)*UV(44)+JVS(3111)*UV(45)+JVS(3112)*UV(46)+JVS(3113)*UV(48)+JVS(3114)*UV(51)& - &+JVS(3115)*UV(52)+JVS(3116)*UV(53)+JVS(3117)*UV(55)+JVS(3118)*UV(57)+JVS(3120)*UV(70)+JVS(3121)*UV(74)& - &+JVS(3122)*UV(78)+JVS(3123)*UV(79)+JVS(3124)*UV(80)+JVS(3125)*UV(81)+JVS(3126)*UV(97)+JVS(3127)*UV(186)& - &+JVS(3128)*UV(192)+JVS(3137)*UV(268)+JVS(3140)*UV(271)+JVS(3141)*UV(272)+JVS(3146)*UV(277)+JVS(3148)*UV(279) - JUV(269) = JVS(3157)*UV(39)+JVS(3158)*UV(43)+JVS(3159)*UV(54)+JVS(3160)*UV(60)+JVS(3161)*UV(62)+JVS(3162)*UV(64)& - &+JVS(3163)*UV(65)+JVS(3164)*UV(66)+JVS(3165)*UV(67)+JVS(3166)*UV(68)+JVS(3167)*UV(70)+JVS(3168)*UV(72)& - &+JVS(3169)*UV(73)+JVS(3170)*UV(74)+JVS(3171)*UV(75)+JVS(3172)*UV(76)+JVS(3173)*UV(77)+JVS(3174)*UV(78)& - &+JVS(3175)*UV(79)+JVS(3176)*UV(80)+JVS(3177)*UV(81)+JVS(3178)*UV(82)+JVS(3179)*UV(83)+JVS(3180)*UV(84)& - &+JVS(3181)*UV(85)+JVS(3182)*UV(86)+JVS(3183)*UV(87)+JVS(3184)*UV(88)+JVS(3185)*UV(89)+JVS(3186)*UV(91)& - &+JVS(3187)*UV(92)+JVS(3188)*UV(93)+JVS(3189)*UV(94)+JVS(3190)*UV(95)+JVS(3191)*UV(97)+JVS(3192)*UV(99)& - &+JVS(3193)*UV(100)+JVS(3194)*UV(101)+JVS(3195)*UV(104)+JVS(3196)*UV(105)+JVS(3197)*UV(106)+JVS(3198)*UV(107)& - &+JVS(3199)*UV(108)+JVS(3200)*UV(109)+JVS(3201)*UV(110)+JVS(3202)*UV(111)+JVS(3203)*UV(112)+JVS(3204)*UV(113)& - &+JVS(3205)*UV(114)+JVS(3206)*UV(115)+JVS(3207)*UV(116)+JVS(3208)*UV(117)+JVS(3209)*UV(118)+JVS(3210)*UV(119)& - &+JVS(3211)*UV(120)+JVS(3212)*UV(121)+JVS(3213)*UV(122)+JVS(3214)*UV(124)+JVS(3215)*UV(125)+JVS(3216)*UV(126)& - &+JVS(3217)*UV(127)+JVS(3218)*UV(128)+JVS(3219)*UV(129)+JVS(3220)*UV(130)+JVS(3221)*UV(131)+JVS(3222)*UV(133)& - &+JVS(3223)*UV(134)+JVS(3224)*UV(136)+JVS(3225)*UV(137)+JVS(3226)*UV(138)+JVS(3227)*UV(139)+JVS(3228)*UV(140)& - &+JVS(3229)*UV(141)+JVS(3230)*UV(142)+JVS(3231)*UV(143)+JVS(3233)*UV(145)+JVS(3234)*UV(146)+JVS(3235)*UV(147)& - &+JVS(3236)*UV(148)+JVS(3237)*UV(149)+JVS(3238)*UV(150)+JVS(3239)*UV(151)+JVS(3240)*UV(152)+JVS(3241)*UV(153)& - &+JVS(3242)*UV(154)+JVS(3243)*UV(155)+JVS(3244)*UV(157)+JVS(3245)*UV(158)+JVS(3246)*UV(159)+JVS(3247)*UV(160)& - &+JVS(3248)*UV(161)+JVS(3249)*UV(162)+JVS(3250)*UV(163)+JVS(3251)*UV(164)+JVS(3252)*UV(165)+JVS(3253)*UV(166)& - &+JVS(3254)*UV(167)+JVS(3255)*UV(168)+JVS(3256)*UV(171)+JVS(3258)*UV(173)+JVS(3259)*UV(174)+JVS(3261)*UV(176)& - &+JVS(3262)*UV(177)+JVS(3263)*UV(178)+JVS(3264)*UV(179)+JVS(3265)*UV(180)+JVS(3266)*UV(182)+JVS(3267)*UV(183)& - &+JVS(3268)*UV(184)+JVS(3269)*UV(185)+JVS(3270)*UV(186)+JVS(3272)*UV(188)+JVS(3273)*UV(189)+JVS(3274)*UV(190)& - &+JVS(3276)*UV(192)+JVS(3277)*UV(193)+JVS(3278)*UV(194)+JVS(3279)*UV(195)+JVS(3280)*UV(196)+JVS(3282)*UV(198)& - &+JVS(3284)*UV(200)+JVS(3285)*UV(201)+JVS(3286)*UV(202)+JVS(3287)*UV(203)+JVS(3289)*UV(205)+JVS(3290)*UV(206)& - &+JVS(3291)*UV(207)+JVS(3292)*UV(208)+JVS(3293)*UV(209)+JVS(3294)*UV(210)+JVS(3298)*UV(214)+JVS(3299)*UV(215)& - &+JVS(3300)*UV(216)+JVS(3301)*UV(217)+JVS(3302)*UV(218)+JVS(3303)*UV(219)+JVS(3304)*UV(220)+JVS(3306)*UV(222)& - &+JVS(3308)*UV(224)+JVS(3309)*UV(225)+JVS(3310)*UV(226)+JVS(3311)*UV(227)+JVS(3312)*UV(228)+JVS(3313)*UV(229)& - &+JVS(3315)*UV(231)+JVS(3316)*UV(232)+JVS(3320)*UV(236)+JVS(3321)*UV(237)+JVS(3322)*UV(238)+JVS(3323)*UV(239)& - &+JVS(3324)*UV(240)+JVS(3326)*UV(242)+JVS(3327)*UV(243)+JVS(3328)*UV(244)+JVS(3329)*UV(245)+JVS(3330)*UV(246)& - &+JVS(3331)*UV(247)+JVS(3332)*UV(248)+JVS(3333)*UV(249)+JVS(3334)*UV(250)+JVS(3338)*UV(254)+JVS(3339)*UV(255)& - &+JVS(3340)*UV(256)+JVS(3341)*UV(257)+JVS(3342)*UV(258)+JVS(3343)*UV(259)+JVS(3344)*UV(260)+JVS(3345)*UV(261)& - &+JVS(3346)*UV(262)+JVS(3347)*UV(263)+JVS(3348)*UV(264)+JVS(3351)*UV(267)+JVS(3352)*UV(268)+JVS(3353)*UV(269)& - &+JVS(3354)*UV(270)+JVS(3355)*UV(271)+JVS(3356)*UV(272)+JVS(3357)*UV(273)+JVS(3358)*UV(274)+JVS(3361)*UV(277)& - &+JVS(3362)*UV(278)+JVS(3363)*UV(279)+JVS(3364)*UV(280)+JVS(3365)*UV(281)+JVS(3367)*UV(283)+JVS(3368)*UV(284)& - &+JVS(3369)*UV(285)+JVS(3370)*UV(286)+JVS(3371)*UV(287) - JUV(270) = JVS(3372)*UV(49)+JVS(3373)*UV(50)+JVS(3374)*UV(58)+JVS(3375)*UV(59)+JVS(3376)*UV(61)+JVS(3377)*UV(63)& - &+JVS(3378)*UV(64)+JVS(3379)*UV(71)+JVS(3380)*UV(86)+JVS(3381)*UV(87)+JVS(3382)*UV(88)+JVS(3383)*UV(89)& - &+JVS(3384)*UV(90)+JVS(3385)*UV(95)+JVS(3386)*UV(101)+JVS(3387)*UV(111)+JVS(3388)*UV(116)+JVS(3389)*UV(120)& - &+JVS(3390)*UV(131)+JVS(3392)*UV(136)+JVS(3393)*UV(137)+JVS(3394)*UV(141)+JVS(3395)*UV(142)+JVS(3396)*UV(143)& - &+JVS(3398)*UV(146)+JVS(3399)*UV(147)+JVS(3400)*UV(148)+JVS(3401)*UV(149)+JVS(3402)*UV(156)+JVS(3403)*UV(162)& - &+JVS(3404)*UV(163)+JVS(3405)*UV(164)+JVS(3406)*UV(169)+JVS(3407)*UV(172)+JVS(3408)*UV(174)+JVS(3409)*UV(175)& - &+JVS(3410)*UV(176)+JVS(3411)*UV(177)+JVS(3412)*UV(178)+JVS(3413)*UV(179)+JVS(3414)*UV(180)+JVS(3416)*UV(183)& - &+JVS(3418)*UV(185)+JVS(3419)*UV(187)+JVS(3420)*UV(188)+JVS(3421)*UV(190)+JVS(3422)*UV(191)+JVS(3423)*UV(194)& - &+JVS(3424)*UV(195)+JVS(3425)*UV(196)+JVS(3426)*UV(197)+JVS(3427)*UV(198)+JVS(3428)*UV(199)+JVS(3429)*UV(200)& - &+JVS(3430)*UV(201)+JVS(3431)*UV(203)+JVS(3432)*UV(204)+JVS(3433)*UV(205)+JVS(3434)*UV(206)+JVS(3435)*UV(209)& - &+JVS(3436)*UV(210)+JVS(3437)*UV(211)+JVS(3438)*UV(212)+JVS(3439)*UV(213)+JVS(3440)*UV(216)+JVS(3441)*UV(217)& - &+JVS(3443)*UV(221)+JVS(3444)*UV(223)+JVS(3445)*UV(224)+JVS(3446)*UV(225)+JVS(3447)*UV(229)+JVS(3448)*UV(230)& - &+JVS(3449)*UV(231)+JVS(3450)*UV(233)+JVS(3451)*UV(234)+JVS(3452)*UV(235)+JVS(3453)*UV(236)+JVS(3454)*UV(237)& - &+JVS(3455)*UV(238)+JVS(3456)*UV(239)+JVS(3457)*UV(240)+JVS(3458)*UV(241)+JVS(3459)*UV(242)+JVS(3460)*UV(243)& - &+JVS(3462)*UV(245)+JVS(3464)*UV(248)+JVS(3465)*UV(249)+JVS(3466)*UV(250)+JVS(3467)*UV(251)+JVS(3468)*UV(252)& - &+JVS(3469)*UV(253)+JVS(3472)*UV(257)+JVS(3474)*UV(259)+JVS(3475)*UV(260)+JVS(3478)*UV(263)+JVS(3480)*UV(265)& - &+JVS(3481)*UV(266)+JVS(3483)*UV(269)+JVS(3484)*UV(270)+JVS(3487)*UV(273)+JVS(3488)*UV(274)+JVS(3491)*UV(277)& - &+JVS(3494)*UV(280)+JVS(3495)*UV(281)+JVS(3496)*UV(282)+JVS(3498)*UV(284)+JVS(3501)*UV(287) - JUV(271) = JVS(3502)*UV(68)+JVS(3503)*UV(73)+JVS(3504)*UV(100)+JVS(3505)*UV(112)+JVS(3506)*UV(121)+JVS(3507)*UV(129)& - &+JVS(3508)*UV(134)+JVS(3509)*UV(135)+JVS(3510)*UV(144)+JVS(3511)*UV(157)+JVS(3512)*UV(169)+JVS(3513)*UV(172)& - &+JVS(3514)*UV(186)+JVS(3515)*UV(207)+JVS(3516)*UV(208)+JVS(3518)*UV(214)+JVS(3519)*UV(215)+JVS(3520)*UV(219)& - &+JVS(3521)*UV(220)+JVS(3524)*UV(231)+JVS(3547)*UV(254)+JVS(3549)*UV(256)+JVS(3552)*UV(259)+JVS(3555)*UV(262)& - &+JVS(3558)*UV(267)+JVS(3559)*UV(268)+JVS(3560)*UV(269)+JVS(3562)*UV(271)+JVS(3564)*UV(273)+JVS(3572)*UV(281)& - &+JVS(3576)*UV(285)+JVS(3577)*UV(286) - JUV(272) = JVS(3579)*UV(121)+JVS(3580)*UV(157)+JVS(3581)*UV(219)+JVS(3582)*UV(231)+JVS(3588)*UV(254)+JVS(3590)*UV(256)& - &+JVS(3592)*UV(259)+JVS(3593)*UV(261)+JVS(3594)*UV(262)+JVS(3596)*UV(267)+JVS(3597)*UV(268)+JVS(3598)*UV(269)& - &+JVS(3601)*UV(272)+JVS(3606)*UV(277)+JVS(3610)*UV(281)+JVS(3611)*UV(282)+JVS(3613)*UV(284)+JVS(3615)*UV(286) - JUV(273) = JVS(3617)*UV(42)+JVS(3618)*UV(46)+JVS(3619)*UV(48)+JVS(3620)*UV(51)+JVS(3621)*UV(52)+JVS(3622)*UV(53)& - &+JVS(3623)*UV(55)+JVS(3624)*UV(72)+JVS(3625)*UV(78)+JVS(3626)*UV(79)+JVS(3627)*UV(80)+JVS(3628)*UV(81)& - &+JVS(3629)*UV(103)+JVS(3630)*UV(107)+JVS(3631)*UV(192)+JVS(3632)*UV(213)+JVS(3633)*UV(223)+JVS(3635)*UV(235)& - &+JVS(3642)*UV(259)+JVS(3645)*UV(263)+JVS(3649)*UV(267)+JVS(3650)*UV(268)+JVS(3651)*UV(269)+JVS(3652)*UV(270)& - &+JVS(3653)*UV(271)+JVS(3655)*UV(273)+JVS(3656)*UV(274)+JVS(3659)*UV(277)+JVS(3662)*UV(280)+JVS(3663)*UV(281)& - &+JVS(3666)*UV(284)+JVS(3667)*UV(285) - JUV(274) = JVS(3670)*UV(44)+JVS(3671)*UV(45)+JVS(3672)*UV(55)+JVS(3673)*UV(70)+JVS(3674)*UV(74)+JVS(3675)*UV(97)& - &+JVS(3676)*UV(172)+JVS(3677)*UV(223)+JVS(3678)*UV(256)+JVS(3680)*UV(265)+JVS(3682)*UV(268)+JVS(3683)*UV(269)& - &+JVS(3684)*UV(270)+JVS(3686)*UV(272)+JVS(3687)*UV(273)+JVS(3688)*UV(274)+JVS(3691)*UV(277)+JVS(3694)*UV(280)& - &+JVS(3695)*UV(281)+JVS(3696)*UV(282)+JVS(3698)*UV(284)+JVS(3701)*UV(287) - JUV(275) = JVS(3702)*UV(199)+JVS(3703)*UV(231)+JVS(3704)*UV(256)+JVS(3705)*UV(259)+JVS(3706)*UV(264)+JVS(3708)*UV(266)& - &+JVS(3712)*UV(272)+JVS(3715)*UV(275)+JVS(3717)*UV(277) - JUV(276) = JVS(3728)*UV(199)+JVS(3729)*UV(231)+JVS(3730)*UV(256)+JVS(3731)*UV(259)+JVS(3732)*UV(264)+JVS(3734)*UV(266)& - &+JVS(3738)*UV(272)+JVS(3742)*UV(276)+JVS(3743)*UV(277) - JUV(277) = JVS(3754)*UV(75)+JVS(3755)*UV(135)+JVS(3756)*UV(138)+JVS(3757)*UV(144)+JVS(3758)*UV(145)+JVS(3759)*UV(150)& - &+JVS(3760)*UV(151)+JVS(3761)*UV(155)+JVS(3762)*UV(156)+JVS(3763)*UV(165)+JVS(3764)*UV(173)+JVS(3765)*UV(176)& - &+JVS(3768)*UV(196)+JVS(3769)*UV(203)+JVS(3773)*UV(220)+JVS(3775)*UV(230)+JVS(3777)*UV(244)+JVS(3778)*UV(245)& - &+JVS(3779)*UV(247)+JVS(3780)*UV(250)+JVS(3783)*UV(254)+JVS(3785)*UV(257)+JVS(3790)*UV(263)+JVS(3791)*UV(265)& - &+JVS(3793)*UV(268)+JVS(3794)*UV(269)+JVS(3795)*UV(270)+JVS(3797)*UV(272)+JVS(3800)*UV(275)+JVS(3801)*UV(276)& - &+JVS(3802)*UV(277)+JVS(3805)*UV(280)+JVS(3806)*UV(281)+JVS(3807)*UV(282)+JVS(3809)*UV(284)+JVS(3810)*UV(285)& - &+JVS(3811)*UV(286) - JUV(278) = JVS(3813)*UV(144)+JVS(3814)*UV(169)+JVS(3815)*UV(199)+JVS(3816)*UV(231)+JVS(3817)*UV(256)+JVS(3818)*UV(259)& - &+JVS(3823)*UV(264)+JVS(3825)*UV(266)+JVS(3826)*UV(267)+JVS(3828)*UV(269)+JVS(3830)*UV(271)+JVS(3837)*UV(278) - JUV(279) = JVS(3847)*UV(39)+JVS(3848)*UV(43)+JVS(3849)*UV(65)+JVS(3850)*UV(78)+JVS(3851)*UV(79)+JVS(3852)*UV(80)& - &+JVS(3853)*UV(81)+JVS(3854)*UV(97)+JVS(3855)*UV(100)+JVS(3856)*UV(101)+JVS(3857)*UV(134)+JVS(3858)*UV(157)& - &+JVS(3859)*UV(169)+JVS(3860)*UV(172)+JVS(3861)*UV(173)+JVS(3862)*UV(186)+JVS(3863)*UV(188)+JVS(3864)*UV(191)& - &+JVS(3865)*UV(193)+JVS(3866)*UV(198)+JVS(3869)*UV(207)+JVS(3870)*UV(208)+JVS(3871)*UV(215)+JVS(3873)*UV(219)& - &+JVS(3875)*UV(222)+JVS(3877)*UV(230)+JVS(3902)*UV(255)+JVS(3903)*UV(256)+JVS(3906)*UV(259)+JVS(3907)*UV(260)& - &+JVS(3908)*UV(261)+JVS(3909)*UV(262)+JVS(3911)*UV(264)+JVS(3913)*UV(266)+JVS(3914)*UV(267)+JVS(3915)*UV(268)& - &+JVS(3916)*UV(269)+JVS(3918)*UV(271)+JVS(3919)*UV(272)+JVS(3925)*UV(278)+JVS(3926)*UV(279)+JVS(3928)*UV(281)& - &+JVS(3930)*UV(283)+JVS(3932)*UV(285) - JUV(280) = JVS(3935)*UV(56)+JVS(3936)*UV(57)+JVS(3937)*UV(61)+JVS(3938)*UV(90)+JVS(3939)*UV(116)+JVS(3940)*UV(120)& - &+JVS(3941)*UV(141)+JVS(3942)*UV(142)+JVS(3943)*UV(143)+JVS(3944)*UV(146)+JVS(3945)*UV(148)+JVS(3946)*UV(162)& - &+JVS(3947)*UV(163)+JVS(3948)*UV(164)+JVS(3949)*UV(175)+JVS(3950)*UV(176)+JVS(3951)*UV(178)+JVS(3952)*UV(179)& - &+JVS(3953)*UV(180)+JVS(3955)*UV(183)+JVS(3957)*UV(185)+JVS(3958)*UV(187)+JVS(3959)*UV(188)+JVS(3960)*UV(190)& - &+JVS(3961)*UV(191)+JVS(3962)*UV(197)+JVS(3964)*UV(200)+JVS(3965)*UV(201)+JVS(3966)*UV(203)+JVS(3967)*UV(204)& - &+JVS(3970)*UV(211)+JVS(3971)*UV(212)+JVS(3972)*UV(213)+JVS(3974)*UV(217)+JVS(3976)*UV(221)+JVS(3977)*UV(223)& - &+JVS(3978)*UV(224)+JVS(3979)*UV(225)+JVS(3980)*UV(229)+JVS(3981)*UV(230)+JVS(3983)*UV(233)+JVS(3984)*UV(234)& - &+JVS(3985)*UV(235)+JVS(3989)*UV(240)+JVS(3990)*UV(241)+JVS(3991)*UV(242)+JVS(3992)*UV(243)+JVS(3994)*UV(245)& - &+JVS(3996)*UV(248)+JVS(3997)*UV(249)+JVS(3998)*UV(250)+JVS(3999)*UV(251)+JVS(4000)*UV(252)+JVS(4001)*UV(253)& - &+JVS(4004)*UV(257)+JVS(4009)*UV(263)+JVS(4011)*UV(265)+JVS(4013)*UV(268)+JVS(4014)*UV(269)+JVS(4015)*UV(270)& - &+JVS(4018)*UV(273)+JVS(4019)*UV(274)+JVS(4022)*UV(277)+JVS(4025)*UV(280)+JVS(4026)*UV(281)+JVS(4029)*UV(284)& - &+JVS(4032)*UV(287) - JUV(281) = JVS(4033)*UV(54)+JVS(4034)*UV(60)+JVS(4035)*UV(68)+JVS(4036)*UV(71)+JVS(4037)*UV(73)+JVS(4038)*UV(76)& - &+JVS(4039)*UV(77)+JVS(4040)*UV(83)+JVS(4041)*UV(86)+JVS(4042)*UV(87)+JVS(4043)*UV(88)+JVS(4044)*UV(89)& - &+JVS(4045)*UV(91)+JVS(4046)*UV(92)+JVS(4047)*UV(93)+JVS(4048)*UV(94)+JVS(4049)*UV(97)+JVS(4050)*UV(99)& - &+JVS(4051)*UV(100)+JVS(4052)*UV(101)+JVS(4053)*UV(102)+JVS(4054)*UV(104)+JVS(4055)*UV(106)+JVS(4056)*UV(108)& - &+JVS(4057)*UV(109)+JVS(4058)*UV(110)+JVS(4059)*UV(111)+JVS(4061)*UV(114)+JVS(4062)*UV(115)+JVS(4063)*UV(116)& - &+JVS(4064)*UV(117)+JVS(4065)*UV(118)+JVS(4066)*UV(120)+JVS(4067)*UV(122)+JVS(4068)*UV(123)+JVS(4069)*UV(124)& - &+JVS(4070)*UV(126)+JVS(4071)*UV(127)+JVS(4072)*UV(128)+JVS(4073)*UV(129)+JVS(4074)*UV(130)+JVS(4075)*UV(134)& - &+JVS(4076)*UV(136)+JVS(4077)*UV(137)+JVS(4078)*UV(138)+JVS(4079)*UV(139)+JVS(4080)*UV(141)+JVS(4081)*UV(142)& - &+JVS(4082)*UV(143)+JVS(4083)*UV(145)+JVS(4084)*UV(146)+JVS(4085)*UV(147)+JVS(4086)*UV(148)+JVS(4087)*UV(150)& - &+JVS(4088)*UV(151)+JVS(4089)*UV(152)+JVS(4090)*UV(153)+JVS(4091)*UV(154)+JVS(4092)*UV(155)+JVS(4093)*UV(158)& - &+JVS(4094)*UV(159)+JVS(4095)*UV(160)+JVS(4096)*UV(161)+JVS(4097)*UV(162)+JVS(4098)*UV(163)+JVS(4099)*UV(164)& - &+JVS(4100)*UV(165)+JVS(4101)*UV(166)+JVS(4102)*UV(167)+JVS(4103)*UV(168)+JVS(4104)*UV(171)+JVS(4105)*UV(173)& - &+JVS(4106)*UV(175)+JVS(4107)*UV(176)+JVS(4108)*UV(177)+JVS(4109)*UV(178)+JVS(4110)*UV(179)+JVS(4111)*UV(180)& - &+JVS(4112)*UV(181)+JVS(4113)*UV(182)+JVS(4114)*UV(183)+JVS(4115)*UV(184)+JVS(4116)*UV(185)+JVS(4117)*UV(186)& - &+JVS(4118)*UV(187)+JVS(4119)*UV(189)+JVS(4120)*UV(190)+JVS(4121)*UV(195)+JVS(4122)*UV(197)+JVS(4123)*UV(198)& - &+JVS(4124)*UV(200)+JVS(4125)*UV(201)+JVS(4126)*UV(202)+JVS(4127)*UV(203)+JVS(4128)*UV(204)+JVS(4129)*UV(205)& - &+JVS(4130)*UV(206)+JVS(4131)*UV(207)+JVS(4132)*UV(208)+JVS(4133)*UV(209)+JVS(4134)*UV(210)+JVS(4135)*UV(211)& - &+JVS(4136)*UV(212)+JVS(4137)*UV(213)+JVS(4138)*UV(214)+JVS(4139)*UV(216)+JVS(4140)*UV(217)+JVS(4141)*UV(218)& - &+JVS(4142)*UV(220)+JVS(4143)*UV(221)+JVS(4144)*UV(223)+JVS(4145)*UV(224)+JVS(4146)*UV(225)+JVS(4147)*UV(226)& - &+JVS(4148)*UV(227)+JVS(4149)*UV(228)+JVS(4150)*UV(229)+JVS(4152)*UV(232)+JVS(4153)*UV(233)+JVS(4154)*UV(234)& - &+JVS(4155)*UV(235)+JVS(4156)*UV(236)+JVS(4157)*UV(237)+JVS(4158)*UV(238)+JVS(4159)*UV(239)+JVS(4160)*UV(240)& - &+JVS(4161)*UV(241)+JVS(4162)*UV(242)+JVS(4163)*UV(243)+JVS(4164)*UV(244)+JVS(4165)*UV(245)+JVS(4166)*UV(246)& - &+JVS(4167)*UV(247)+JVS(4168)*UV(248)+JVS(4169)*UV(249)+JVS(4170)*UV(250)+JVS(4171)*UV(251)+JVS(4172)*UV(252)& - &+JVS(4173)*UV(253)+JVS(4174)*UV(254)+JVS(4175)*UV(255)+JVS(4176)*UV(257)+JVS(4177)*UV(258)+JVS(4178)*UV(261)& - &+JVS(4179)*UV(262)+JVS(4180)*UV(263)+JVS(4182)*UV(265)+JVS(4184)*UV(268)+JVS(4185)*UV(269)+JVS(4186)*UV(270)& - &+JVS(4189)*UV(273)+JVS(4190)*UV(274)+JVS(4193)*UV(277)+JVS(4196)*UV(280)+JVS(4197)*UV(281)+JVS(4198)*UV(282)& - &+JVS(4200)*UV(284)+JVS(4201)*UV(285)+JVS(4202)*UV(286)+JVS(4203)*UV(287) - JUV(282) = JVS(4204)*UV(2)+JVS(4205)*UV(44)+JVS(4206)*UV(45)+JVS(4207)*UV(50)+JVS(4208)*UV(55)+JVS(4209)*UV(69)& - &+JVS(4210)*UV(70)+JVS(4211)*UV(74)+JVS(4212)*UV(97)+JVS(4213)*UV(121)+JVS(4214)*UV(125)+JVS(4215)*UV(132)& - &+JVS(4216)*UV(157)+JVS(4217)*UV(172)+JVS(4219)*UV(219)+JVS(4220)*UV(223)+JVS(4227)*UV(254)+JVS(4229)*UV(256)& - &+JVS(4232)*UV(261)+JVS(4233)*UV(262)+JVS(4236)*UV(265)+JVS(4239)*UV(268)+JVS(4240)*UV(269)+JVS(4241)*UV(270)& - &+JVS(4243)*UV(272)+JVS(4244)*UV(273)+JVS(4245)*UV(274)+JVS(4248)*UV(277)+JVS(4251)*UV(280)+JVS(4252)*UV(281)& - &+JVS(4253)*UV(282)+JVS(4255)*UV(284)+JVS(4258)*UV(287) - JUV(283) = JVS(4259)*UV(135)+JVS(4260)*UV(169)+JVS(4261)*UV(199)+JVS(4262)*UV(231)+JVS(4263)*UV(256)+JVS(4264)*UV(259)& - &+JVS(4269)*UV(264)+JVS(4271)*UV(266)+JVS(4272)*UV(267)+JVS(4274)*UV(269)+JVS(4276)*UV(271)+JVS(4288)*UV(283) - JUV(284) = JVS(4293)*UV(42)+JVS(4294)*UV(44)+JVS(4295)*UV(45)+JVS(4296)*UV(46)+JVS(4297)*UV(48)+JVS(4298)*UV(51)& - &+JVS(4299)*UV(52)+JVS(4300)*UV(53)+JVS(4301)*UV(55)+JVS(4302)*UV(61)+JVS(4303)*UV(62)+JVS(4304)*UV(70)& - &+JVS(4305)*UV(74)+JVS(4306)*UV(78)+JVS(4307)*UV(79)+JVS(4308)*UV(80)+JVS(4309)*UV(81)+JVS(4310)*UV(107)& - &+JVS(4311)*UV(173)+JVS(4313)*UV(192)+JVS(4314)*UV(208)+JVS(4316)*UV(223)+JVS(4322)*UV(256)+JVS(4325)*UV(259)& - &+JVS(4327)*UV(262)+JVS(4333)*UV(268)+JVS(4334)*UV(269)+JVS(4335)*UV(270)+JVS(4336)*UV(271)+JVS(4337)*UV(272)& - &+JVS(4338)*UV(273)+JVS(4339)*UV(274)+JVS(4342)*UV(277)+JVS(4345)*UV(280)+JVS(4346)*UV(281)+JVS(4349)*UV(284)& - &+JVS(4352)*UV(287) - JUV(285) = JVS(4353)*UV(3)+JVS(4354)*UV(39)+JVS(4355)*UV(42)+JVS(4356)*UV(46)+JVS(4357)*UV(48)+JVS(4358)*UV(51)& - &+JVS(4359)*UV(52)+JVS(4360)*UV(53)+JVS(4361)*UV(55)+JVS(4362)*UV(68)+JVS(4363)*UV(72)+JVS(4364)*UV(73)& - &+JVS(4365)*UV(78)+JVS(4366)*UV(79)+JVS(4367)*UV(80)+JVS(4368)*UV(81)+JVS(4369)*UV(98)+JVS(4370)*UV(100)& - &+JVS(4371)*UV(103)+JVS(4372)*UV(112)+JVS(4373)*UV(121)+JVS(4374)*UV(129)+JVS(4375)*UV(132)+JVS(4376)*UV(134)& - &+JVS(4377)*UV(157)+JVS(4379)*UV(186)+JVS(4380)*UV(192)+JVS(4382)*UV(207)+JVS(4383)*UV(208)+JVS(4384)*UV(213)& - &+JVS(4385)*UV(214)+JVS(4386)*UV(215)+JVS(4387)*UV(219)+JVS(4388)*UV(220)+JVS(4390)*UV(223)+JVS(4392)*UV(231)& - &+JVS(4396)*UV(235)+JVS(4415)*UV(254)+JVS(4420)*UV(259)+JVS(4422)*UV(262)+JVS(4423)*UV(263)+JVS(4427)*UV(267)& - &+JVS(4428)*UV(268)+JVS(4429)*UV(269)+JVS(4431)*UV(271)+JVS(4433)*UV(273)+JVS(4437)*UV(277)+JVS(4440)*UV(280)& - &+JVS(4441)*UV(281)+JVS(4444)*UV(284)+JVS(4445)*UV(285) - JUV(286) = JVS(4448)*UV(62)+JVS(4449)*UV(82)+JVS(4450)*UV(85)+JVS(4451)*UV(119)+JVS(4452)*UV(135)+JVS(4453)*UV(144)& - &+JVS(4454)*UV(191)+JVS(4455)*UV(208)+JVS(4457)*UV(230)+JVS(4461)*UV(256)+JVS(4466)*UV(262)+JVS(4469)*UV(267)& - &+JVS(4471)*UV(269)+JVS(4479)*UV(277)+JVS(4486)*UV(284)+JVS(4488)*UV(286)+JVS(4489)*UV(287) - JUV(287) = JVS(4490)*UV(63)+JVS(4491)*UV(71)+JVS(4492)*UV(82)+JVS(4493)*UV(99)+JVS(4494)*UV(101)+JVS(4495)*UV(109)& - &+JVS(4496)*UV(112)+JVS(4497)*UV(117)+JVS(4498)*UV(131)+JVS(4499)*UV(138)+JVS(4500)*UV(140)+JVS(4501)*UV(149)& - &+JVS(4502)*UV(150)+JVS(4503)*UV(151)+JVS(4504)*UV(157)+JVS(4505)*UV(165)+JVS(4506)*UV(169)+JVS(4507)*UV(172)& - &+JVS(4508)*UV(174)+JVS(4509)*UV(175)+JVS(4510)*UV(178)+JVS(4511)*UV(187)+JVS(4512)*UV(191)+JVS(4513)*UV(196)& - &+JVS(4516)*UV(205)+JVS(4517)*UV(206)+JVS(4519)*UV(211)+JVS(4520)*UV(212)+JVS(4522)*UV(218)+JVS(4523)*UV(220)& - &+JVS(4524)*UV(221)+JVS(4525)*UV(222)+JVS(4529)*UV(228)+JVS(4531)*UV(230)+JVS(4533)*UV(234)+JVS(4535)*UV(237)& - &+JVS(4538)*UV(240)+JVS(4539)*UV(241)+JVS(4543)*UV(245)+JVS(4545)*UV(247)+JVS(4551)*UV(254)+JVS(4552)*UV(255)& - &+JVS(4555)*UV(259)+JVS(4556)*UV(260)+JVS(4557)*UV(261)+JVS(4558)*UV(262)+JVS(4559)*UV(263)+JVS(4560)*UV(265)& - &+JVS(4561)*UV(266)+JVS(4563)*UV(269)+JVS(4564)*UV(270)+JVS(4571)*UV(277)+JVS(4574)*UV(280)+JVS(4575)*UV(281)& - &+JVS(4576)*UV(282)+JVS(4578)*UV(284)+JVS(4579)*UV(285)+JVS(4581)*UV(287) + JUV(4) = JVS(4)*UV(4)+JVS(5)*UV(42)+JVS(6)*UV(44)+JVS(7)*UV(49)+JVS(8)*UV(69) + JUV(5) = JVS(9)*UV(5)+JVS(10)*UV(210) + JUV(6) = JVS(11)*UV(6)+JVS(12)*UV(41)+JVS(13)*UV(286) + JUV(7) = JVS(14)*UV(7)+JVS(15)*UV(66)+JVS(16)*UV(67)+JVS(17)*UV(70)+JVS(18)*UV(88)+JVS(19)*UV(97)+JVS(20)*UV(104)& + &+JVS(21)*UV(121)+JVS(22)*UV(123)+JVS(23)*UV(136)+JVS(24)*UV(150)+JVS(25)*UV(163)+JVS(26)*UV(164)+JVS(27)& + &*UV(175)+JVS(28)*UV(180)+JVS(29)*UV(184)+JVS(30)*UV(192)+JVS(31)*UV(195)+JVS(32)*UV(201)+JVS(33)*UV(207)& + &+JVS(34)*UV(208)+JVS(35)*UV(209)+JVS(36)*UV(210)+JVS(37)*UV(211)+JVS(38)*UV(215)+JVS(39)*UV(217)+JVS(40)& + &*UV(219)+JVS(41)*UV(224)+JVS(42)*UV(231)+JVS(43)*UV(234)+JVS(44)*UV(236)+JVS(45)*UV(237)+JVS(46)*UV(238)& + &+JVS(47)*UV(239)+JVS(48)*UV(246)+JVS(49)*UV(247)+JVS(50)*UV(249)+JVS(51)*UV(250)+JVS(52)*UV(252)+JVS(53)& + &*UV(253)+JVS(54)*UV(254)+JVS(55)*UV(255)+JVS(56)*UV(256)+JVS(57)*UV(257)+JVS(58)*UV(258)+JVS(59)*UV(261)& + &+JVS(60)*UV(266)+JVS(61)*UV(267)+JVS(62)*UV(279)+JVS(63)*UV(281)+JVS(64)*UV(282)+JVS(65)*UV(284)+JVS(66)& + &*UV(286)+JVS(67)*UV(290) + JUV(8) = JVS(68)*UV(8)+JVS(69)*UV(45)+JVS(70)*UV(98) + JUV(9) = JVS(71)*UV(9)+JVS(72)*UV(42)+JVS(73)*UV(44)+JVS(74)*UV(49)+JVS(75)*UV(69)+JVS(76)*UV(203)+JVS(77)*UV(268)& + &+JVS(78)*UV(270) + JUV(10) = JVS(79)*UV(10)+JVS(80)*UV(42)+JVS(81)*UV(44)+JVS(82)*UV(49)+JVS(83)*UV(69)+JVS(84)*UV(203)+JVS(85)*UV(268)& + &+JVS(86)*UV(270) + JUV(11) = JVS(87)*UV(11)+JVS(88)*UV(13)+JVS(89)*UV(284) + JUV(12) = JVS(90)*UV(12)+JVS(91)*UV(13)+JVS(92)*UV(279) + JUV(13) = JVS(93)*UV(13)+JVS(94)*UV(64)+JVS(95)*UV(279)+JVS(96)*UV(284)+JVS(97)*UV(286) + JUV(14) = JVS(98)*UV(14)+JVS(99)*UV(224)+JVS(100)*UV(286) + JUV(15) = JVS(101)*UV(15)+JVS(102)*UV(224)+JVS(103)*UV(281) + JUV(16) = JVS(104)*UV(16)+JVS(105)*UV(18)+JVS(106)*UV(284) + JUV(17) = JVS(107)*UV(17)+JVS(108)*UV(18)+JVS(109)*UV(279) + JUV(18) = JVS(110)*UV(18)+JVS(111)*UV(19)+JVS(112)*UV(279)+JVS(113)*UV(284)+JVS(114)*UV(286) + JUV(19) = JVS(115)*UV(19)+JVS(116)*UV(286) + JUV(20) = JVS(117)*UV(20)+JVS(118)*UV(22)+JVS(119)*UV(284) + JUV(21) = JVS(120)*UV(21)+JVS(121)*UV(22)+JVS(122)*UV(279) + JUV(22) = JVS(123)*UV(22)+JVS(124)*UV(79)+JVS(125)*UV(279)+JVS(126)*UV(284)+JVS(127)*UV(286) + JUV(23) = JVS(128)*UV(23)+JVS(129)*UV(24) + JUV(24) = JVS(130)*UV(24)+JVS(131)*UV(157)+JVS(132)*UV(162)+JVS(133)*UV(165)+JVS(134)*UV(171)+JVS(135)*UV(286) + JUV(25) = JVS(136)*UV(25)+JVS(137)*UV(27)+JVS(138)*UV(284) + JUV(26) = JVS(139)*UV(26)+JVS(140)*UV(27)+JVS(141)*UV(279) + JUV(27) = JVS(142)*UV(27)+JVS(143)*UV(80)+JVS(144)*UV(279)+JVS(145)*UV(284)+JVS(146)*UV(286) + JUV(28) = JVS(147)*UV(28)+JVS(148)*UV(90)+JVS(149)*UV(286) + JUV(29) = JVS(150)*UV(29)+JVS(151)*UV(138)+JVS(152)*UV(276)+JVS(153)*UV(282) + JUV(30) = JVS(154)*UV(30)+JVS(155)*UV(104)+JVS(156)*UV(223)+JVS(157)*UV(233) + JUV(31) = JVS(158)*UV(31)+JVS(159)*UV(105)+JVS(160)*UV(116)+JVS(161)*UV(130)+JVS(162)*UV(131)+JVS(163)*UV(174) + JUV(32) = JVS(164)*UV(32)+JVS(165)*UV(195)+JVS(166)*UV(234)+JVS(167)*UV(276)+JVS(168)*UV(286) + JUV(33) = JVS(169)*UV(33)+JVS(170)*UV(86)+JVS(171)*UV(212)+JVS(172)*UV(276)+JVS(173)*UV(282)+JVS(174)*UV(286) + JUV(34) = JVS(175)*UV(34)+JVS(176)*UV(45)+JVS(177)*UV(61)+JVS(178)*UV(65)+JVS(179)*UV(67)+JVS(180)*UV(68)+JVS(181)& + &*UV(74)+JVS(182)*UV(87)+JVS(183)*UV(89)+JVS(184)*UV(91)+JVS(185)*UV(96)+JVS(186)*UV(97)+JVS(187)*UV(98)& + &+JVS(188)*UV(102)+JVS(189)*UV(103)+JVS(190)*UV(121)+JVS(191)*UV(123)+JVS(192)*UV(128)+JVS(193)*UV(134)& + &+JVS(194)*UV(143)+JVS(195)*UV(144)+JVS(196)*UV(145)+JVS(197)*UV(146)+JVS(198)*UV(150)+JVS(199)*UV(152)& + &+JVS(200)*UV(153)+JVS(201)*UV(166)+JVS(202)*UV(167)+JVS(203)*UV(168)+JVS(204)*UV(177)+JVS(205)*UV(179)& + &+JVS(206)*UV(180)+JVS(207)*UV(182)+JVS(208)*UV(183)+JVS(209)*UV(184)+JVS(210)*UV(187)+JVS(211)*UV(189)& + &+JVS(212)*UV(191)+JVS(213)*UV(193)+JVS(214)*UV(194)+JVS(215)*UV(195)+JVS(216)*UV(197)+JVS(217)*UV(201)& + &+JVS(218)*UV(204)+JVS(219)*UV(205)+JVS(220)*UV(207)+JVS(221)*UV(209)+JVS(222)*UV(210)+JVS(223)*UV(215)& + &+JVS(224)*UV(216)+JVS(225)*UV(217)+JVS(226)*UV(222)+JVS(227)*UV(225)+JVS(228)*UV(228)+JVS(229)*UV(229)& + &+JVS(230)*UV(232)+JVS(231)*UV(234)+JVS(232)*UV(235)+JVS(233)*UV(237)+JVS(234)*UV(238)+JVS(235)*UV(239)& + &+JVS(236)*UV(241)+JVS(237)*UV(244)+JVS(238)*UV(245)+JVS(239)*UV(246)+JVS(240)*UV(247)+JVS(241)*UV(249)& + &+JVS(242)*UV(252)+JVS(243)*UV(254)+JVS(244)*UV(255)+JVS(245)*UV(256)+JVS(246)*UV(257)+JVS(247)*UV(258)& + &+JVS(248)*UV(261)+JVS(249)*UV(262)+JVS(250)*UV(265)+JVS(251)*UV(266)+JVS(252)*UV(279)+JVS(253)*UV(284)& + &+JVS(254)*UV(286)+JVS(255)*UV(290)+JVS(256)*UV(291) + JUV(35) = JVS(257)*UV(35)+JVS(258)*UV(42)+JVS(259)*UV(44)+JVS(260)*UV(49)+JVS(261)*UV(55)+JVS(262)*UV(56)+JVS(263)& + &*UV(61)+JVS(264)*UV(62)+JVS(265)*UV(63)+JVS(266)*UV(66)+JVS(267)*UV(75)+JVS(268)*UV(76)+JVS(269)*UV(84)& + &+JVS(270)*UV(90)+JVS(271)*UV(92)+JVS(272)*UV(100)+JVS(273)*UV(101)+JVS(274)*UV(111)+JVS(275)*UV(114)+JVS(276)& + &*UV(115)+JVS(277)*UV(118)+JVS(278)*UV(134)+JVS(279)*UV(138)+JVS(280)*UV(139)+JVS(281)*UV(140)+JVS(282)& + &*UV(142)+JVS(283)*UV(147)+JVS(284)*UV(148)+JVS(285)*UV(149)+JVS(286)*UV(151)+JVS(287)*UV(154)+JVS(288)& + &*UV(155)+JVS(289)*UV(159)+JVS(290)*UV(160)+JVS(291)*UV(161)+JVS(292)*UV(170)+JVS(293)*UV(173)+JVS(294)& + &*UV(175)+JVS(295)*UV(176)+JVS(296)*UV(177)+JVS(297)*UV(178)+JVS(298)*UV(179)+JVS(299)*UV(180)+JVS(300)& + &*UV(181)+JVS(301)*UV(184)+JVS(302)*UV(190)+JVS(303)*UV(191)+JVS(304)*UV(199)+JVS(305)*UV(200)+JVS(306)& + &*UV(202)+JVS(307)*UV(203)+JVS(308)*UV(208)+JVS(309)*UV(212)+JVS(310)*UV(213)+JVS(311)*UV(214)+JVS(312)& + &*UV(215)+JVS(313)*UV(216)+JVS(314)*UV(220)+JVS(315)*UV(223)+JVS(316)*UV(224)+JVS(317)*UV(225)+JVS(318)& + &*UV(226)+JVS(319)*UV(227)+JVS(320)*UV(233)+JVS(321)*UV(234)+JVS(322)*UV(235)+JVS(323)*UV(238)+JVS(324)& + &*UV(241)+JVS(325)*UV(242)+JVS(326)*UV(243)+JVS(327)*UV(246)+JVS(328)*UV(247)+JVS(329)*UV(248)+JVS(330)& + &*UV(249)+JVS(331)*UV(251)+JVS(332)*UV(253)+JVS(333)*UV(259)+JVS(334)*UV(260)+JVS(335)*UV(262)+JVS(336)& + &*UV(263)+JVS(337)*UV(264)+JVS(338)*UV(266)+JVS(339)*UV(268)+JVS(340)*UV(270)+JVS(341)*UV(271)+JVS(342)& + &*UV(272)+JVS(343)*UV(274)+JVS(344)*UV(275)+JVS(345)*UV(276)+JVS(346)*UV(277)+JVS(347)*UV(278)+JVS(348)& + &*UV(280)+JVS(349)*UV(281)+JVS(350)*UV(282)+JVS(351)*UV(283)+JVS(352)*UV(284)+JVS(353)*UV(285)+JVS(354)& + &*UV(286)+JVS(355)*UV(287)+JVS(356)*UV(288)+JVS(357)*UV(289)+JVS(358)*UV(291) + JUV(36) = JVS(359)*UV(36)+JVS(360)*UV(58)+JVS(361)*UV(64)+JVS(362)*UV(66)+JVS(363)*UV(72)+JVS(364)*UV(78)+JVS(365)& + &*UV(79)+JVS(366)*UV(80)+JVS(367)*UV(101)+JVS(368)*UV(105)+JVS(369)*UV(109)+JVS(370)*UV(125)+JVS(371)*UV(127)& + &+JVS(372)*UV(129)+JVS(373)*UV(132)+JVS(374)*UV(136)+JVS(375)*UV(148)+JVS(376)*UV(149)+JVS(377)*UV(150)& + &+JVS(378)*UV(153)+JVS(379)*UV(154)+JVS(380)*UV(155)+JVS(381)*UV(156)+JVS(382)*UV(157)+JVS(383)*UV(159)& + &+JVS(384)*UV(162)+JVS(385)*UV(163)+JVS(386)*UV(165)+JVS(387)*UV(169)+JVS(388)*UV(170)+JVS(389)*UV(171)& + &+JVS(390)*UV(172)+JVS(391)*UV(174)+JVS(392)*UV(175)+JVS(393)*UV(185)+JVS(394)*UV(186)+JVS(395)*UV(188)& + &+JVS(396)*UV(192)+JVS(397)*UV(194)+JVS(398)*UV(200)+JVS(399)*UV(205)+JVS(400)*UV(206)+JVS(401)*UV(207)& + &+JVS(402)*UV(208)+JVS(403)*UV(210)+JVS(404)*UV(213)+JVS(405)*UV(214)+JVS(406)*UV(220)+JVS(407)*UV(221)& + &+JVS(408)*UV(223)+JVS(409)*UV(224)+JVS(410)*UV(228)+JVS(411)*UV(229)+JVS(412)*UV(231)+JVS(413)*UV(233)& + &+JVS(414)*UV(236)+JVS(415)*UV(240)+JVS(416)*UV(244)+JVS(417)*UV(245)+JVS(418)*UV(248)+JVS(419)*UV(250)& + &+JVS(420)*UV(251)+JVS(421)*UV(253)+JVS(422)*UV(259)+JVS(423)*UV(263)+JVS(424)*UV(264)+JVS(425)*UV(266)& + &+JVS(426)*UV(273)+JVS(427)*UV(279)+JVS(428)*UV(281)+JVS(429)*UV(282)+JVS(430)*UV(284)+JVS(431)*UV(286)& + &+JVS(432)*UV(288)+JVS(433)*UV(290) + JUV(37) = JVS(434)*UV(37)+JVS(435)*UV(195)+JVS(436)*UV(234)+JVS(437)*UV(267)+JVS(438)*UV(286) + JUV(38) = JVS(439)*UV(38)+JVS(440)*UV(86)+JVS(441)*UV(147)+JVS(442)*UV(195)+JVS(443)*UV(212)+JVS(444)*UV(234)+JVS(445)& + &*UV(260)+JVS(446)*UV(271)+JVS(447)*UV(276)+JVS(448)*UV(282)+JVS(449)*UV(286) + JUV(39) = JVS(450)*UV(39)+JVS(451)*UV(190)+JVS(452)*UV(272)+JVS(453)*UV(286)+JVS(454)*UV(290) + JUV(40) = JVS(455)*UV(40)+JVS(456)*UV(154)+JVS(457)*UV(155)+JVS(458)*UV(170)+JVS(459)*UV(195)+JVS(460)*UV(224)& + &+JVS(461)*UV(234)+JVS(462)*UV(248)+JVS(463)*UV(278)+JVS(464)*UV(282)+JVS(465)*UV(284)+JVS(466)*UV(286) + JUV(41) = JVS(467)*UV(41)+JVS(468)*UV(286) + JUV(42) = JVS(469)*UV(42)+JVS(470)*UV(92) + JUV(43) = JVS(471)*UV(43)+JVS(472)*UV(286) + JUV(44) = JVS(473)*UV(44)+JVS(474)*UV(227) + JUV(45) = JVS(475)*UV(45)+JVS(476)*UV(134)+JVS(477)*UV(178)+JVS(478)*UV(199) + JUV(46) = JVS(479)*UV(46)+JVS(480)*UV(286) + JUV(47) = JVS(481)*UV(47)+JVS(482)*UV(272) + JUV(48) = JVS(483)*UV(48)+JVS(484)*UV(272) + JUV(49) = JVS(485)*UV(49)+JVS(486)*UV(92)+JVS(487)*UV(227) + JUV(50) = JVS(488)*UV(50)+JVS(489)*UV(255)+JVS(490)*UV(291) + JUV(51) = JVS(491)*UV(51)+JVS(492)*UV(273)+JVS(493)*UV(291) + JUV(52) = JVS(494)*UV(52)+JVS(495)*UV(272) + JUV(53) = JVS(496)*UV(53)+JVS(497)*UV(272) + JUV(54) = JVS(498)*UV(54)+JVS(499)*UV(272) + JUV(55) = JVS(500)*UV(55)+JVS(501)*UV(272) + JUV(56) = JVS(502)*UV(56)+JVS(503)*UV(272) + JUV(57) = JVS(504)*UV(57)+JVS(505)*UV(272) + JUV(58) = JVS(506)*UV(58)+JVS(507)*UV(286) + JUV(59) = JVS(508)*UV(59)+JVS(509)*UV(272) + JUV(60) = JVS(510)*UV(60)+JVS(511)*UV(269)+JVS(512)*UV(279) + JUV(61) = JVS(513)*UV(61)+JVS(514)*UV(65)+JVS(515)*UV(272)+JVS(516)*UV(291) + JUV(62) = JVS(517)*UV(62)+JVS(518)*UV(147)+JVS(519)*UV(265)+JVS(520)*UV(281) + JUV(63) = JVS(521)*UV(63)+JVS(522)*UV(138)+JVS(523)*UV(265)+JVS(524)*UV(281) + JUV(64) = JVS(525)*UV(64)+JVS(526)*UV(286) + JUV(65) = JVS(527)*UV(65)+JVS(528)*UV(279)+JVS(529)*UV(291) + JUV(66) = JVS(530)*UV(66)+JVS(531)*UV(286)+JVS(532)*UV(288) + JUV(67) = JVS(533)*UV(67)+JVS(534)*UV(261)+JVS(535)*UV(291) + JUV(68) = JVS(536)*UV(68)+JVS(537)*UV(179)+JVS(538)*UV(279)+JVS(539)*UV(286) + JUV(69) = JVS(540)*UV(69)+JVS(541)*UV(269)+JVS(542)*UV(284)+JVS(543)*UV(286) + JUV(70) = JVS(544)*UV(70)+JVS(545)*UV(180)+JVS(546)*UV(284)+JVS(547)*UV(286) + JUV(71) = JVS(548)*UV(71)+JVS(549)*UV(272)+JVS(550)*UV(286) + JUV(72) = JVS(551)*UV(72)+JVS(552)*UV(286)+JVS(553)*UV(290) + JUV(73) = JVS(554)*UV(73)+JVS(555)*UV(203)+JVS(556)*UV(268)+JVS(557)*UV(270)+JVS(558)*UV(277)+JVS(559)*UV(283) + JUV(74) = JVS(560)*UV(74)+JVS(561)*UV(266)+JVS(562)*UV(291) + JUV(75) = JVS(563)*UV(75)+JVS(564)*UV(285)+JVS(565)*UV(286) + JUV(76) = JVS(566)*UV(76)+JVS(567)*UV(282)+JVS(568)*UV(286) + JUV(77) = JVS(569)*UV(77)+JVS(570)*UV(272)+JVS(571)*UV(286) + JUV(78) = JVS(572)*UV(78)+JVS(573)*UV(286)+JVS(574)*UV(290) + JUV(79) = JVS(575)*UV(79)+JVS(576)*UV(286) + JUV(80) = JVS(577)*UV(80)+JVS(578)*UV(286) + JUV(81) = JVS(579)*UV(81)+JVS(580)*UV(272)+JVS(581)*UV(286) + JUV(82) = JVS(582)*UV(82)+JVS(583)*UV(272)+JVS(584)*UV(286) + JUV(83) = JVS(585)*UV(83)+JVS(586)*UV(272)+JVS(587)*UV(286) + JUV(84) = JVS(588)*UV(84)+JVS(589)*UV(272)+JVS(590)*UV(286) + JUV(85) = JVS(591)*UV(85)+JVS(592)*UV(234)+JVS(593)*UV(278)+JVS(594)*UV(286) + JUV(86) = JVS(595)*UV(86)+JVS(596)*UV(263)+JVS(597)*UV(276)+JVS(598)*UV(286) + JUV(87) = JVS(599)*UV(87)+JVS(600)*UV(258)+JVS(601)*UV(279)+JVS(602)*UV(286) + JUV(88) = JVS(603)*UV(88)+JVS(604)*UV(261)+JVS(605)*UV(284)+JVS(606)*UV(286) + JUV(89) = JVS(607)*UV(89)+JVS(608)*UV(266)+JVS(609)*UV(279)+JVS(610)*UV(286) + JUV(90) = JVS(611)*UV(90)+JVS(612)*UV(281)+JVS(613)*UV(286) + JUV(91) = JVS(614)*UV(91)+JVS(615)*UV(237)+JVS(616)*UV(279)+JVS(617)*UV(286) + JUV(92) = JVS(618)*UV(42)+JVS(619)*UV(44)+JVS(620)*UV(49)+JVS(621)*UV(92)+JVS(622)*UV(227)+JVS(623)*UV(274)+JVS(624)& + &*UV(279) + JUV(93) = JVS(625)*UV(93)+JVS(626)*UV(256)+JVS(627)*UV(284)+JVS(628)*UV(286) + JUV(94) = JVS(629)*UV(94)+JVS(630)*UV(237)+JVS(631)*UV(284)+JVS(632)*UV(286) + JUV(95) = JVS(633)*UV(95)+JVS(634)*UV(258)+JVS(635)*UV(284)+JVS(636)*UV(286) + JUV(96) = JVS(637)*UV(96)+JVS(638)*UV(217)+JVS(639)*UV(279)+JVS(640)*UV(286) + JUV(97) = JVS(641)*UV(97)+JVS(642)*UV(180)+JVS(643)*UV(286)+JVS(644)*UV(291) + JUV(98) = JVS(645)*UV(98)+JVS(646)*UV(139)+JVS(647)*UV(140)+JVS(648)*UV(151)+JVS(649)*UV(175)+JVS(650)*UV(181)& + &+JVS(651)*UV(200)+JVS(652)*UV(202)+JVS(653)*UV(213)+JVS(654)*UV(214)+JVS(655)*UV(220)+JVS(656)*UV(241)& + &+JVS(657)*UV(242)+JVS(658)*UV(243) + JUV(99) = JVS(659)*UV(99)+JVS(660)*UV(203)+JVS(661)*UV(227)+JVS(662)*UV(268)+JVS(663)*UV(270)+JVS(664)*UV(280)& + &+JVS(665)*UV(285)+JVS(666)*UV(287) + JUV(100) = JVS(667)*UV(100)+JVS(668)*UV(272)+JVS(669)*UV(286) + JUV(101) = JVS(670)*UV(79)+JVS(671)*UV(80)+JVS(672)*UV(101)+JVS(673)*UV(281)+JVS(674)*UV(286) + JUV(102) = JVS(675)*UV(102)+JVS(676)*UV(284)+JVS(677)*UV(286)+JVS(678)*UV(291) + JUV(103) = JVS(679)*UV(75)+JVS(680)*UV(103)+JVS(681)*UV(266)+JVS(682)*UV(274)+JVS(683)*UV(285)+JVS(684)*UV(286)& + &+JVS(685)*UV(290) + JUV(104) = JVS(686)*UV(104)+JVS(687)*UV(163)+JVS(688)*UV(241)+JVS(689)*UV(248)+JVS(690)*UV(282)+JVS(691)*UV(286) + JUV(105) = JVS(692)*UV(105)+JVS(693)*UV(136)+JVS(694)*UV(153)+JVS(695)*UV(286) + JUV(106) = JVS(696)*UV(106)+JVS(697)*UV(255)+JVS(698)*UV(284)+JVS(699)*UV(286) + JUV(107) = JVS(700)*UV(97)+JVS(701)*UV(107)+JVS(702)*UV(180)+JVS(703)*UV(191)+JVS(704)*UV(284)+JVS(705)*UV(286) + JUV(108) = JVS(707)*UV(108)+JVS(708)*UV(120)+JVS(709)*UV(179)+JVS(710)*UV(266)+JVS(711)*UV(279)+JVS(712)*UV(281) + JUV(109) = JVS(713)*UV(109)+JVS(714)*UV(186)+JVS(715)*UV(188)+JVS(716)*UV(240)+JVS(717)*UV(286) + JUV(110) = JVS(718)*UV(110)+JVS(719)*UV(217)+JVS(720)*UV(239)+JVS(721)*UV(284)+JVS(722)*UV(286) + JUV(111) = JVS(723)*UV(111)+JVS(724)*UV(227)+JVS(725)*UV(274)+JVS(726)*UV(285)+JVS(727)*UV(286) + JUV(112) = JVS(728)*UV(112)+JVS(729)*UV(209)+JVS(730)*UV(284)+JVS(731)*UV(286) + JUV(113) = JVS(732)*UV(113)+JVS(733)*UV(201)+JVS(734)*UV(284)+JVS(735)*UV(286) + JUV(114) = JVS(736)*UV(114)+JVS(737)*UV(281)+JVS(738)*UV(286)+JVS(739)*UV(290) + JUV(115) = JVS(740)*UV(79)+JVS(741)*UV(80)+JVS(742)*UV(115)+JVS(743)*UV(281)+JVS(744)*UV(286) + JUV(116) = JVS(745)*UV(116)+JVS(746)*UV(165)+JVS(747)*UV(171)+JVS(748)*UV(214)+JVS(749)*UV(220)+JVS(750)*UV(286) + JUV(117) = JVS(751)*UV(117)+JVS(752)*UV(206)+JVS(753)*UV(228)+JVS(754)*UV(279)+JVS(755)*UV(284)+JVS(756)*UV(286) + JUV(118) = JVS(757)*UV(64)+JVS(758)*UV(118)+JVS(759)*UV(281)+JVS(760)*UV(286) + JUV(119) = JVS(761)*UV(119)+JVS(762)*UV(225)+JVS(763)*UV(238)+JVS(764)*UV(284)+JVS(765)*UV(286) + JUV(120) = JVS(766)*UV(120)+JVS(767)*UV(179)+JVS(768)*UV(266)+JVS(769)*UV(284)+JVS(770)*UV(286) + JUV(121) = JVS(771)*UV(121)+JVS(772)*UV(186)+JVS(773)*UV(279)+JVS(774)*UV(284)+JVS(775)*UV(286) + JUV(122) = JVS(776)*UV(86)+JVS(777)*UV(122)+JVS(778)*UV(147)+JVS(779)*UV(195)+JVS(780)*UV(212)+JVS(781)*UV(234)& + &+JVS(782)*UV(260)+JVS(784)*UV(271)+JVS(785)*UV(276)+JVS(786)*UV(282)+JVS(787)*UV(286) + JUV(123) = JVS(788)*UV(123)+JVS(789)*UV(188)+JVS(790)*UV(279)+JVS(791)*UV(284)+JVS(792)*UV(286) + JUV(124) = JVS(793)*UV(124)+JVS(794)*UV(273)+JVS(795)*UV(286)+JVS(796)*UV(290) + JUV(125) = JVS(797)*UV(125)+JVS(798)*UV(228)+JVS(799)*UV(229)+JVS(800)*UV(286) + JUV(126) = JVS(801)*UV(126)+JVS(802)*UV(151)+JVS(803)*UV(243)+JVS(804)*UV(246)+JVS(805)*UV(247)+JVS(806)*UV(261)& + &+JVS(807)*UV(266)+JVS(808)*UV(279)+JVS(809)*UV(281) + JUV(127) = JVS(810)*UV(127)+JVS(811)*UV(165)+JVS(812)*UV(224)+JVS(813)*UV(244)+JVS(814)*UV(286) + JUV(128) = JVS(815)*UV(128)+JVS(816)*UV(176)+JVS(817)*UV(260)+JVS(818)*UV(273)+JVS(819)*UV(274)+JVS(820)*UV(277)& + &+JVS(821)*UV(283)+JVS(822)*UV(286)+JVS(823)*UV(289) + JUV(129) = JVS(824)*UV(129)+JVS(825)*UV(171)+JVS(826)*UV(224)+JVS(827)*UV(245)+JVS(828)*UV(286) + JUV(130) = JVS(829)*UV(130)+JVS(830)*UV(139)+JVS(831)*UV(140)+JVS(832)*UV(157)+JVS(833)*UV(162)+JVS(834)*UV(286) + JUV(131) = JVS(835)*UV(131)+JVS(836)*UV(139)+JVS(837)*UV(140)+JVS(838)*UV(157)+JVS(839)*UV(162)+JVS(840)*UV(286) + JUV(132) = JVS(841)*UV(132)+JVS(842)*UV(206)+JVS(843)*UV(229)+JVS(844)*UV(279)+JVS(845)*UV(284)+JVS(846)*UV(286) + JUV(133) = JVS(847)*UV(133)+JVS(848)*UV(217)+JVS(849)*UV(239)+JVS(850)*UV(266)+JVS(851)*UV(286)+JVS(852)*UV(290) + JUV(134) = JVS(853)*UV(134)+JVS(854)*UV(178)+JVS(855)*UV(199)+JVS(856)*UV(281)+JVS(857)*UV(282)+JVS(858)*UV(286) + JUV(135) = JVS(859)*UV(135)+JVS(860)*UV(176)+JVS(861)*UV(235)+JVS(862)*UV(260)+JVS(863)*UV(262)+JVS(864)*UV(271)& + &+JVS(865)*UV(274)+JVS(866)*UV(275)+JVS(867)*UV(277)+JVS(868)*UV(280)+JVS(869)*UV(283)+JVS(870)*UV(285)& + &+JVS(871)*UV(287)+JVS(872)*UV(289) + JUV(136) = JVS(873)*UV(136)+JVS(874)*UV(207)+JVS(875)*UV(284)+JVS(876)*UV(286) + JUV(137) = JVS(877)*UV(137)+JVS(878)*UV(266)+JVS(879)*UV(284)+JVS(880)*UV(286)+JVS(881)*UV(290) + JUV(138) = JVS(882)*UV(138)+JVS(883)*UV(265)+JVS(884)*UV(275)+JVS(885)*UV(276)+JVS(886)*UV(282) + JUV(139) = JVS(887)*UV(139)+JVS(888)*UV(245)+JVS(889)*UV(279)+JVS(890)*UV(286) + JUV(140) = JVS(891)*UV(140)+JVS(892)*UV(244)+JVS(893)*UV(279)+JVS(894)*UV(286) + JUV(141) = JVS(895)*UV(141)+JVS(896)*UV(182)+JVS(897)*UV(183)+JVS(898)*UV(187)+JVS(899)*UV(284)+JVS(900)*UV(286) + JUV(142) = JVS(901)*UV(115)+JVS(902)*UV(118)+JVS(903)*UV(142)+JVS(904)*UV(281)+JVS(905)*UV(282)+JVS(906)*UV(286) + JUV(143) = JVS(907)*UV(60)+JVS(908)*UV(143)+JVS(909)*UV(203)+JVS(910)*UV(269)+JVS(911)*UV(270)+JVS(913)*UV(281)& + &+JVS(914)*UV(286) + JUV(144) = JVS(915)*UV(144)+JVS(916)*UV(186)+JVS(917)*UV(240)+JVS(918)*UV(279)+JVS(919)*UV(284)+JVS(920)*UV(291) + JUV(145) = JVS(921)*UV(145)+JVS(922)*UV(188)+JVS(923)*UV(240)+JVS(924)*UV(279)+JVS(925)*UV(284)+JVS(926)*UV(291) + JUV(146) = JVS(927)*UV(146)+JVS(928)*UV(243)+JVS(929)*UV(279)+JVS(930)*UV(284)+JVS(931)*UV(286) + JUV(147) = JVS(932)*UV(147)+JVS(933)*UV(265)+JVS(934)*UV(275)+JVS(935)*UV(276)+JVS(936)*UV(282) + JUV(148) = JVS(937)*UV(79)+JVS(938)*UV(80)+JVS(939)*UV(115)+JVS(940)*UV(148)+JVS(941)*UV(281)+JVS(942)*UV(282)& + &+JVS(943)*UV(286) + JUV(149) = JVS(944)*UV(149)+JVS(945)*UV(272)+JVS(946)*UV(286)+JVS(947)*UV(290) + JUV(150) = JVS(948)*UV(150)+JVS(949)*UV(240)+JVS(950)*UV(242)+JVS(951)*UV(279)+JVS(952)*UV(284)+JVS(953)*UV(286) + JUV(151) = JVS(954)*UV(151)+JVS(955)*UV(246)+JVS(956)*UV(284)+JVS(957)*UV(286) + JUV(152) = JVS(958)*UV(140)+JVS(959)*UV(152)+JVS(961)*UV(279)+JVS(962)*UV(284)+JVS(963)*UV(286) + JUV(153) = JVS(964)*UV(153)+JVS(965)*UV(207)+JVS(966)*UV(249)+JVS(967)*UV(286)+JVS(968)*UV(291) + JUV(154) = JVS(969)*UV(154)+JVS(970)*UV(281)+JVS(971)*UV(282)+JVS(972)*UV(286) + JUV(155) = JVS(973)*UV(155)+JVS(974)*UV(281)+JVS(975)*UV(282)+JVS(976)*UV(286) + JUV(156) = JVS(977)*UV(109)+JVS(978)*UV(125)+JVS(979)*UV(156)+JVS(980)*UV(186)+JVS(981)*UV(188)+JVS(984)*UV(240)& + &+JVS(985)*UV(286) + JUV(157) = JVS(986)*UV(157)+JVS(987)*UV(245)+JVS(988)*UV(284)+JVS(989)*UV(286) + JUV(158) = JVS(990)*UV(158)+JVS(991)*UV(201)+JVS(992)*UV(209)+JVS(993)*UV(216)+JVS(994)*UV(225)+JVS(995)*UV(237)& + &+JVS(996)*UV(238)+JVS(997)*UV(254)+JVS(998)*UV(256)+JVS(999)*UV(257)+JVS(1000)*UV(258)+JVS(1001)*UV(266)& + &+JVS(1002)*UV(286) + JUV(159) = JVS(1003)*UV(64)+JVS(1004)*UV(79)+JVS(1005)*UV(80)+JVS(1006)*UV(118)+JVS(1007)*UV(142)+JVS(1008)*UV(159)& + &+JVS(1009)*UV(210)+JVS(1010)*UV(281)+JVS(1011)*UV(282)+JVS(1012)*UV(286) + JUV(160) = JVS(1013)*UV(107)+JVS(1014)*UV(115)+JVS(1015)*UV(118)+JVS(1016)*UV(142)+JVS(1017)*UV(160)+JVS(1019)*UV(191)& + &+JVS(1020)*UV(266)+JVS(1021)*UV(279)+JVS(1022)*UV(281)+JVS(1023)*UV(282)+JVS(1025)*UV(286)+JVS(1026)*UV(291) + JUV(161) = JVS(1027)*UV(161)+JVS(1028)*UV(273)+JVS(1029)*UV(281)+JVS(1030)*UV(286)+JVS(1031)*UV(290) + JUV(162) = JVS(1032)*UV(162)+JVS(1033)*UV(244)+JVS(1034)*UV(284)+JVS(1035)*UV(286) + JUV(163) = JVS(1036)*UV(163)+JVS(1037)*UV(186)+JVS(1038)*UV(188)+JVS(1039)*UV(240)+JVS(1040)*UV(242)+JVS(1041)*UV(286) + JUV(164) = JVS(1042)*UV(141)+JVS(1043)*UV(164)+JVS(1044)*UV(182)+JVS(1045)*UV(183)+JVS(1046)*UV(187)+JVS(1048)*UV(286) + JUV(165) = JVS(1049)*UV(165)+JVS(1050)*UV(244)+JVS(1051)*UV(284)+JVS(1052)*UV(286) + JUV(166) = JVS(1053)*UV(166)+JVS(1054)*UV(220)+JVS(1055)*UV(279)+JVS(1056)*UV(284)+JVS(1057)*UV(286) + JUV(167) = JVS(1058)*UV(139)+JVS(1059)*UV(167)+JVS(1061)*UV(279)+JVS(1062)*UV(284)+JVS(1063)*UV(286) + JUV(168) = JVS(1064)*UV(168)+JVS(1065)*UV(214)+JVS(1066)*UV(279)+JVS(1067)*UV(284)+JVS(1068)*UV(286) + JUV(169) = JVS(1069)*UV(117)+JVS(1070)*UV(125)+JVS(1071)*UV(169)+JVS(1072)*UV(194)+JVS(1073)*UV(204)+JVS(1077)*UV(230)& + &+JVS(1078)*UV(279)+JVS(1079)*UV(284)+JVS(1080)*UV(286) + JUV(170) = JVS(1081)*UV(170)+JVS(1082)*UV(281)+JVS(1083)*UV(282)+JVS(1084)*UV(286) + JUV(171) = JVS(1085)*UV(171)+JVS(1086)*UV(245)+JVS(1087)*UV(284)+JVS(1088)*UV(286) + JUV(172) = JVS(1089)*UV(171)+JVS(1090)*UV(172)+JVS(1091)*UV(182)+JVS(1092)*UV(189)+JVS(1093)*UV(222)+JVS(1094)*UV(224)& + &+JVS(1095)*UV(242)+JVS(1096)*UV(245)+JVS(1097)*UV(279)+JVS(1098)*UV(284)+JVS(1099)*UV(286) + JUV(173) = JVS(1100)*UV(173)+JVS(1101)*UV(275)+JVS(1102)*UV(278)+JVS(1103)*UV(280)+JVS(1104)*UV(281)+JVS(1105)*UV(287)& + &+JVS(1106)*UV(291) + JUV(174) = JVS(1107)*UV(116)+JVS(1108)*UV(127)+JVS(1109)*UV(129)+JVS(1110)*UV(130)+JVS(1111)*UV(131)+JVS(1114)*UV(151)& + &+JVS(1119)*UV(174)+JVS(1120)*UV(186)+JVS(1121)*UV(188)+JVS(1125)*UV(240)+JVS(1131)*UV(286) + JUV(175) = JVS(1132)*UV(166)+JVS(1133)*UV(175)+JVS(1134)*UV(189)+JVS(1135)*UV(220)+JVS(1136)*UV(222)+JVS(1137)*UV(232)& + &+JVS(1138)*UV(240)+JVS(1139)*UV(249)+JVS(1140)*UV(266)+JVS(1141)*UV(279)+JVS(1142)*UV(284)+JVS(1143)*UV(286) + JUV(176) = JVS(1144)*UV(176)+JVS(1145)*UV(273)+JVS(1146)*UV(274)+JVS(1147)*UV(275)+JVS(1148)*UV(278)+JVS(1149)*UV(291) + JUV(177) = JVS(1150)*UV(149)+JVS(1151)*UV(177)+JVS(1152)*UV(190)+JVS(1153)*UV(263)+JVS(1154)*UV(272)+JVS(1155)*UV(275)& + &+JVS(1156)*UV(282)+JVS(1157)*UV(284)+JVS(1158)*UV(286)+JVS(1159)*UV(288)+JVS(1160)*UV(289)+JVS(1161)*UV(290) + JUV(178) = JVS(1162)*UV(178)+JVS(1163)*UV(215)+JVS(1164)*UV(216)+JVS(1165)*UV(238)+JVS(1166)*UV(261)+JVS(1167)*UV(266)& + &+JVS(1168)*UV(279)+JVS(1169)*UV(281)+JVS(1170)*UV(284)+JVS(1171)*UV(286) + JUV(179) = JVS(1172)*UV(76)+JVS(1173)*UV(120)+JVS(1174)*UV(179)+JVS(1175)*UV(266)+JVS(1176)*UV(279)+JVS(1177)*UV(281)& + &+JVS(1179)*UV(284)+JVS(1180)*UV(286) + JUV(180) = JVS(1181)*UV(70)+JVS(1182)*UV(97)+JVS(1183)*UV(101)+JVS(1184)*UV(180)+JVS(1185)*UV(266)+JVS(1186)*UV(279)& + &+JVS(1187)*UV(281)+JVS(1188)*UV(284)+JVS(1189)*UV(286)+JVS(1190)*UV(291) + JUV(181) = JVS(1191)*UV(181)+JVS(1192)*UV(246)+JVS(1193)*UV(247)+JVS(1194)*UV(266)+JVS(1195)*UV(284)+JVS(1196)*UV(286) + JUV(182) = JVS(1197)*UV(157)+JVS(1198)*UV(171)+JVS(1199)*UV(182)+JVS(1201)*UV(279)+JVS(1202)*UV(284)+JVS(1203)*UV(286) + JUV(183) = JVS(1204)*UV(162)+JVS(1205)*UV(165)+JVS(1206)*UV(183)+JVS(1208)*UV(279)+JVS(1209)*UV(284)+JVS(1210)*UV(286) + JUV(184) = JVS(1211)*UV(64)+JVS(1212)*UV(79)+JVS(1213)*UV(80)+JVS(1214)*UV(115)+JVS(1215)*UV(118)+JVS(1216)*UV(142)& + &+JVS(1217)*UV(184)+JVS(1218)*UV(261)+JVS(1219)*UV(266)+JVS(1220)*UV(279)+JVS(1221)*UV(281)+JVS(1223)*UV(284)& + &+JVS(1224)*UV(286) + JUV(185) = JVS(1225)*UV(117)+JVS(1226)*UV(125)+JVS(1227)*UV(132)+JVS(1228)*UV(163)+JVS(1229)*UV(185)+JVS(1232)*UV(206)& + &+JVS(1235)*UV(230)+JVS(1237)*UV(241)+JVS(1241)*UV(286) + JUV(186) = JVS(1242)*UV(171)+JVS(1243)*UV(186)+JVS(1244)*UV(224)+JVS(1245)*UV(245)+JVS(1247)*UV(286) + JUV(187) = JVS(1248)*UV(157)+JVS(1249)*UV(162)+JVS(1250)*UV(187)+JVS(1253)*UV(279)+JVS(1254)*UV(284)+JVS(1255)*UV(286) + JUV(188) = JVS(1256)*UV(165)+JVS(1257)*UV(188)+JVS(1258)*UV(224)+JVS(1259)*UV(244)+JVS(1261)*UV(286) + JUV(189) = JVS(1262)*UV(151)+JVS(1263)*UV(189)+JVS(1265)*UV(279)+JVS(1266)*UV(284)+JVS(1267)*UV(286) + JUV(190) = JVS(1268)*UV(190)+JVS(1269)*UV(253)+JVS(1270)*UV(264)+JVS(1271)*UV(272)+JVS(1272)*UV(282)+JVS(1273)*UV(286)& + &+JVS(1274)*UV(290) + JUV(191) = JVS(1275)*UV(70)+JVS(1276)*UV(101)+JVS(1277)*UV(107)+JVS(1278)*UV(160)+JVS(1279)*UV(180)+JVS(1280)*UV(191)& + &+JVS(1281)*UV(266)+JVS(1282)*UV(279)+JVS(1283)*UV(281)+JVS(1284)*UV(282)+JVS(1285)*UV(284)+JVS(1286)*UV(286)& + &+JVS(1287)*UV(291) + JUV(192) = JVS(1288)*UV(165)+JVS(1289)*UV(171)+JVS(1290)*UV(192)+JVS(1291)*UV(214)+JVS(1292)*UV(220)+JVS(1293)*UV(244)& + &+JVS(1294)*UV(245)+JVS(1295)*UV(266)+JVS(1296)*UV(279)+JVS(1298)*UV(286) + JUV(193) = JVS(1299)*UV(62)+JVS(1300)*UV(63)+JVS(1303)*UV(193)+JVS(1304)*UV(203)+JVS(1305)*UV(210)+JVS(1306)*UV(235)& + &+JVS(1308)*UV(275)+JVS(1310)*UV(277)+JVS(1311)*UV(279)+JVS(1312)*UV(280)+JVS(1315)*UV(283)+JVS(1316)*UV(286)& + &+JVS(1317)*UV(287)+JVS(1318)*UV(289)+JVS(1319)*UV(291) + JUV(194) = JVS(1320)*UV(116)+JVS(1321)*UV(162)+JVS(1324)*UV(194)+JVS(1329)*UV(279)+JVS(1330)*UV(284)+JVS(1331)*UV(286) + JUV(195) = JVS(1332)*UV(195)+JVS(1333)*UV(253)+JVS(1334)*UV(267)+JVS(1335)*UV(276)+JVS(1336)*UV(278)+JVS(1337)*UV(279)& + &+JVS(1338)*UV(282)+JVS(1339)*UV(291) + JUV(196) = JVS(1340)*UV(165)+JVS(1341)*UV(183)+JVS(1342)*UV(189)+JVS(1343)*UV(196)+JVS(1344)*UV(222)+JVS(1345)*UV(224)& + &+JVS(1346)*UV(231)+JVS(1347)*UV(242)+JVS(1348)*UV(244)+JVS(1350)*UV(251)+JVS(1351)*UV(252)+JVS(1352)*UV(254)& + &+JVS(1353)*UV(279)+JVS(1354)*UV(284)+JVS(1355)*UV(286) + JUV(197) = JVS(1356)*UV(103)+JVS(1357)*UV(197)+JVS(1358)*UV(235)+JVS(1359)*UV(262)+JVS(1361)*UV(271)+JVS(1362)*UV(272)& + &+JVS(1364)*UV(275)+JVS(1365)*UV(280)+JVS(1366)*UV(285)+JVS(1367)*UV(286)+JVS(1368)*UV(287)+JVS(1369)*UV(290) + JUV(198) = JVS(1370)*UV(113)+JVS(1371)*UV(146)+JVS(1372)*UV(150)+JVS(1373)*UV(166)+JVS(1374)*UV(175)+JVS(1375)*UV(189)& + &+JVS(1376)*UV(198)+JVS(1379)*UV(222)+JVS(1380)*UV(232)+JVS(1386)*UV(251)+JVS(1388)*UV(279)+JVS(1389)*UV(281)& + &+JVS(1390)*UV(284)+JVS(1391)*UV(286) + JUV(199) = JVS(1392)*UV(199)+JVS(1393)*UV(215)+JVS(1394)*UV(216)+JVS(1395)*UV(225)+JVS(1396)*UV(238)+JVS(1397)*UV(261)& + &+JVS(1398)*UV(266)+JVS(1399)*UV(279)+JVS(1400)*UV(281)+JVS(1401)*UV(282)+JVS(1402)*UV(284)+JVS(1403)*UV(286) + JUV(200) = JVS(1404)*UV(145)+JVS(1405)*UV(167)+JVS(1407)*UV(200)+JVS(1408)*UV(205)+JVS(1411)*UV(242)+JVS(1414)*UV(249)& + &+JVS(1415)*UV(279)+JVS(1416)*UV(284)+JVS(1417)*UV(286)+JVS(1418)*UV(291) + JUV(201) = JVS(1419)*UV(113)+JVS(1420)*UV(201)+JVS(1421)*UV(253)+JVS(1422)*UV(261)+JVS(1423)*UV(266)+JVS(1424)*UV(279)& + &+JVS(1425)*UV(281)+JVS(1426)*UV(284)+JVS(1427)*UV(286) + JUV(202) = JVS(1428)*UV(202)+JVS(1429)*UV(254)+JVS(1430)*UV(256)+JVS(1431)*UV(257)+JVS(1432)*UV(279)+JVS(1433)*UV(284)& + &+JVS(1434)*UV(286) + JUV(203) = JVS(1435)*UV(203)+JVS(1436)*UV(269)+JVS(1437)*UV(277)+JVS(1438)*UV(280)+JVS(1439)*UV(283)+JVS(1440)*UV(287)& + &+JVS(1441)*UV(291) + JUV(204) = JVS(1442)*UV(144)+JVS(1444)*UV(204)+JVS(1448)*UV(248)+JVS(1449)*UV(279)+JVS(1450)*UV(284)+JVS(1451)*UV(286) + JUV(205) = JVS(1453)*UV(145)+JVS(1455)*UV(205)+JVS(1459)*UV(251)+JVS(1460)*UV(279)+JVS(1461)*UV(284)+JVS(1462)*UV(286) + JUV(206) = JVS(1464)*UV(141)+JVS(1465)*UV(182)+JVS(1466)*UV(183)+JVS(1468)*UV(194)+JVS(1469)*UV(206)+JVS(1472)*UV(228)& + &+JVS(1473)*UV(229)+JVS(1477)*UV(284)+JVS(1478)*UV(286) + JUV(207) = JVS(1479)*UV(136)+JVS(1480)*UV(153)+JVS(1481)*UV(207)+JVS(1483)*UV(251)+JVS(1484)*UV(279)+JVS(1485)*UV(281)& + &+JVS(1486)*UV(284)+JVS(1487)*UV(286)+JVS(1488)*UV(291) + JUV(208) = JVS(1489)*UV(146)+JVS(1490)*UV(150)+JVS(1491)*UV(168)+JVS(1492)*UV(189)+JVS(1493)*UV(208)+JVS(1495)*UV(222)& + &+JVS(1496)*UV(232)+JVS(1498)*UV(241)+JVS(1499)*UV(242)+JVS(1502)*UV(279)+JVS(1503)*UV(281)+JVS(1504)*UV(284)& + &+JVS(1505)*UV(286) + JUV(209) = JVS(1506)*UV(112)+JVS(1507)*UV(209)+JVS(1508)*UV(253)+JVS(1509)*UV(261)+JVS(1510)*UV(266)+JVS(1511)*UV(273)& + &+JVS(1512)*UV(279)+JVS(1513)*UV(284)+JVS(1514)*UV(286)+JVS(1515)*UV(290) + JUV(210) = JVS(1516)*UV(115)+JVS(1517)*UV(118)+JVS(1518)*UV(142)+JVS(1519)*UV(160)+JVS(1522)*UV(210)+JVS(1525)*UV(281)& + &+JVS(1528)*UV(286)+JVS(1529)*UV(291) + JUV(211) = JVS(1530)*UV(58)+JVS(1531)*UV(85)+JVS(1532)*UV(105)+JVS(1534)*UV(148)+JVS(1536)*UV(159)+JVS(1537)*UV(163)& + &+JVS(1538)*UV(170)+JVS(1543)*UV(211)+JVS(1545)*UV(234)+JVS(1546)*UV(236)+JVS(1547)*UV(238)+JVS(1549)*UV(241)& + &+JVS(1554)*UV(250)+JVS(1557)*UV(278)+JVS(1558)*UV(279)+JVS(1560)*UV(282)+JVS(1562)*UV(286)+JVS(1563)*UV(290) + JUV(212) = JVS(1565)*UV(154)+JVS(1566)*UV(155)+JVS(1567)*UV(170)+JVS(1568)*UV(195)+JVS(1569)*UV(212)+JVS(1570)*UV(224)& + &+JVS(1571)*UV(234)+JVS(1572)*UV(248)+JVS(1575)*UV(276)+JVS(1576)*UV(278)+JVS(1579)*UV(282)+JVS(1580)*UV(284)& + &+JVS(1581)*UV(286)+JVS(1582)*UV(288)+JVS(1583)*UV(290) + JUV(213) = JVS(1585)*UV(152)+JVS(1586)*UV(166)+JVS(1587)*UV(167)+JVS(1588)*UV(168)+JVS(1589)*UV(189)+JVS(1590)*UV(194)& + &+JVS(1591)*UV(213)+JVS(1594)*UV(222)+JVS(1595)*UV(228)+JVS(1596)*UV(229)+JVS(1597)*UV(242)+JVS(1601)*UV(279)& + &+JVS(1603)*UV(286) + JUV(214) = JVS(1604)*UV(214)+JVS(1605)*UV(245)+JVS(1606)*UV(246)+JVS(1607)*UV(266)+JVS(1608)*UV(279)+JVS(1609)*UV(286) + JUV(215) = JVS(1610)*UV(154)+JVS(1611)*UV(155)+JVS(1612)*UV(170)+JVS(1613)*UV(215)+JVS(1614)*UV(216)+JVS(1615)*UV(261)& + &+JVS(1616)*UV(266)+JVS(1617)*UV(279)+JVS(1618)*UV(281)+JVS(1620)*UV(284) + JUV(216) = JVS(1622)*UV(154)+JVS(1623)*UV(155)+JVS(1624)*UV(170)+JVS(1625)*UV(215)+JVS(1626)*UV(216)+JVS(1627)*UV(261)& + &+JVS(1628)*UV(266)+JVS(1629)*UV(279)+JVS(1630)*UV(281)+JVS(1632)*UV(284) + JUV(217) = JVS(1634)*UV(161)+JVS(1635)*UV(217)+JVS(1636)*UV(261)+JVS(1637)*UV(266)+JVS(1638)*UV(273)+JVS(1639)*UV(279)& + &+JVS(1640)*UV(281)+JVS(1641)*UV(284)+JVS(1642)*UV(286)+JVS(1643)*UV(290) + JUV(218) = JVS(1644)*UV(179)+JVS(1645)*UV(201)+JVS(1646)*UV(209)+JVS(1647)*UV(216)+JVS(1648)*UV(217)+JVS(1649)*UV(218)& + &+JVS(1650)*UV(225)+JVS(1651)*UV(236)+JVS(1652)*UV(237)+JVS(1653)*UV(238)+JVS(1654)*UV(239)+JVS(1655)*UV(246)& + &+JVS(1656)*UV(247)+JVS(1657)*UV(252)+JVS(1659)*UV(254)+JVS(1660)*UV(256)+JVS(1661)*UV(257)+JVS(1662)*UV(258)& + &+JVS(1664)*UV(266)+JVS(1670)*UV(286)+JVS(1671)*UV(290) + JUV(219) = JVS(1672)*UV(148)+JVS(1673)*UV(195)+JVS(1674)*UV(201)+JVS(1675)*UV(209)+JVS(1676)*UV(217)+JVS(1677)*UV(219)& + &+JVS(1678)*UV(237)+JVS(1679)*UV(239)+JVS(1680)*UV(250)+JVS(1681)*UV(252)+JVS(1683)*UV(254)+JVS(1684)*UV(256)& + &+JVS(1685)*UV(257)+JVS(1686)*UV(258)+JVS(1687)*UV(261)+JVS(1688)*UV(266)+JVS(1692)*UV(278)+JVS(1695)*UV(282)& + &+JVS(1696)*UV(284)+JVS(1697)*UV(286)+JVS(1698)*UV(290) + JUV(220) = JVS(1700)*UV(220)+JVS(1701)*UV(244)+JVS(1702)*UV(246)+JVS(1703)*UV(247)+JVS(1704)*UV(266)+JVS(1705)*UV(279)& + &+JVS(1706)*UV(286) + JUV(221) = JVS(1707)*UV(87)+JVS(1708)*UV(95)+JVS(1709)*UV(202)+JVS(1710)*UV(221)+JVS(1711)*UV(238)+JVS(1713)*UV(256)& + &+JVS(1715)*UV(258)+JVS(1716)*UV(261)+JVS(1717)*UV(266)+JVS(1718)*UV(273)+JVS(1719)*UV(279)+JVS(1721)*UV(286)& + &+JVS(1722)*UV(290) + JUV(222) = JVS(1723)*UV(181)+JVS(1724)*UV(222)+JVS(1728)*UV(279)+JVS(1729)*UV(284)+JVS(1730)*UV(286) + JUV(223) = JVS(1731)*UV(58)+JVS(1732)*UV(64)+JVS(1733)*UV(79)+JVS(1734)*UV(80)+JVS(1735)*UV(118)+JVS(1736)*UV(156)& + &+JVS(1737)*UV(159)+JVS(1738)*UV(163)+JVS(1739)*UV(164)+JVS(1740)*UV(172)+JVS(1743)*UV(185)+JVS(1748)*UV(206)& + &+JVS(1753)*UV(223)+JVS(1756)*UV(229)+JVS(1758)*UV(236)+JVS(1767)*UV(279)+JVS(1768)*UV(281)+JVS(1769)*UV(282)& + &+JVS(1770)*UV(284)+JVS(1771)*UV(286) + JUV(224) = JVS(1773)*UV(224)+JVS(1774)*UV(281)+JVS(1775)*UV(282)+JVS(1776)*UV(286)+JVS(1777)*UV(290) + JUV(225) = JVS(1778)*UV(170)+JVS(1779)*UV(225)+JVS(1780)*UV(261)+JVS(1781)*UV(266)+JVS(1782)*UV(279)+JVS(1783)*UV(281)& + &+JVS(1785)*UV(284)+JVS(1786)*UV(286) + JUV(226) = JVS(1787)*UV(119)+JVS(1788)*UV(154)+JVS(1789)*UV(155)+JVS(1790)*UV(178)+JVS(1791)*UV(202)+JVS(1792)*UV(215)& + &+JVS(1793)*UV(216)+JVS(1794)*UV(225)+JVS(1795)*UV(226)+JVS(1796)*UV(238)+JVS(1797)*UV(254)+JVS(1798)*UV(256)& + &+JVS(1800)*UV(261)+JVS(1801)*UV(266)+JVS(1802)*UV(279)+JVS(1803)*UV(281)+JVS(1804)*UV(282)+JVS(1806)*UV(286) + JUV(227) = JVS(1807)*UV(44)+JVS(1808)*UV(49)+JVS(1809)*UV(92)+JVS(1810)*UV(227)+JVS(1811)*UV(268)+JVS(1812)*UV(269)& + &+JVS(1813)*UV(270)+JVS(1814)*UV(274)+JVS(1815)*UV(279)+JVS(1816)*UV(282)+JVS(1817)*UV(284)+JVS(1818)*UV(285)& + &+JVS(1819)*UV(286)+JVS(1820)*UV(291) + JUV(228) = JVS(1821)*UV(125)+JVS(1822)*UV(130)+JVS(1823)*UV(131)+JVS(1828)*UV(192)+JVS(1831)*UV(228)+JVS(1838)*UV(279)& + &+JVS(1839)*UV(284)+JVS(1840)*UV(286) + JUV(229) = JVS(1841)*UV(125)+JVS(1842)*UV(130)+JVS(1843)*UV(131)+JVS(1848)*UV(192)+JVS(1852)*UV(229)+JVS(1858)*UV(279)& + &+JVS(1859)*UV(284)+JVS(1860)*UV(286) + JUV(230) = JVS(1861)*UV(129)+JVS(1862)*UV(157)+JVS(1863)*UV(164)+JVS(1866)*UV(183)+JVS(1867)*UV(186)+JVS(1869)*UV(192)& + &+JVS(1870)*UV(204)+JVS(1871)*UV(213)+JVS(1873)*UV(220)+JVS(1874)*UV(222)+JVS(1878)*UV(230)+JVS(1881)*UV(244)& + &+JVS(1882)*UV(245)+JVS(1886)*UV(266)+JVS(1887)*UV(279)+JVS(1890)*UV(284)+JVS(1891)*UV(286) + JUV(231) = JVS(1894)*UV(127)+JVS(1895)*UV(162)+JVS(1896)*UV(164)+JVS(1898)*UV(182)+JVS(1901)*UV(188)+JVS(1902)*UV(192)& + &+JVS(1903)*UV(205)+JVS(1904)*UV(206)+JVS(1905)*UV(213)+JVS(1906)*UV(214)+JVS(1908)*UV(222)+JVS(1912)*UV(231)& + &+JVS(1914)*UV(242)+JVS(1915)*UV(244)+JVS(1916)*UV(245)+JVS(1920)*UV(266)+JVS(1921)*UV(279)+JVS(1924)*UV(284)& + &+JVS(1925)*UV(286) + JUV(232) = JVS(1928)*UV(126)+JVS(1930)*UV(181)+JVS(1931)*UV(232)+JVS(1932)*UV(242)+JVS(1938)*UV(279)+JVS(1940)*UV(284)& + &+JVS(1941)*UV(286) + JUV(233) = JVS(1942)*UV(79)+JVS(1943)*UV(80)+JVS(1944)*UV(105)+JVS(1946)*UV(148)+JVS(1948)*UV(156)+JVS(1949)*UV(163)& + &+JVS(1950)*UV(164)+JVS(1951)*UV(165)+JVS(1952)*UV(171)+JVS(1953)*UV(174)+JVS(1956)*UV(185)+JVS(1957)*UV(186)& + &+JVS(1959)*UV(188)+JVS(1960)*UV(192)+JVS(1961)*UV(196)+JVS(1962)*UV(198)+JVS(1964)*UV(204)+JVS(1965)*UV(205)& + &+JVS(1966)*UV(206)+JVS(1968)*UV(213)+JVS(1972)*UV(224)+JVS(1973)*UV(228)+JVS(1975)*UV(230)+JVS(1976)*UV(231)& + &+JVS(1978)*UV(233)+JVS(1980)*UV(241)+JVS(1983)*UV(244)+JVS(1984)*UV(245)+JVS(1987)*UV(248)+JVS(1989)*UV(250)& + &+JVS(1990)*UV(251)+JVS(1991)*UV(252)+JVS(1994)*UV(261)+JVS(1995)*UV(266)+JVS(1996)*UV(279)+JVS(1997)*UV(281)& + &+JVS(1998)*UV(282)+JVS(1999)*UV(284)+JVS(2000)*UV(286) + JUV(234) = JVS(2003)*UV(76)+JVS(2004)*UV(224)+JVS(2005)*UV(234)+JVS(2006)*UV(248)+JVS(2007)*UV(251)+JVS(2008)*UV(253)& + &+JVS(2009)*UV(267)+JVS(2010)*UV(276)+JVS(2011)*UV(278)+JVS(2012)*UV(279)+JVS(2014)*UV(282)+JVS(2017)*UV(291) + JUV(235) = JVS(2018)*UV(173)+JVS(2019)*UV(235)+JVS(2020)*UV(275)+JVS(2021)*UV(277)+JVS(2023)*UV(280)+JVS(2025)*UV(283)& + &+JVS(2026)*UV(286)+JVS(2027)*UV(287)+JVS(2028)*UV(289) + JUV(236) = JVS(2030)*UV(68)+JVS(2031)*UV(108)+JVS(2032)*UV(120)+JVS(2033)*UV(141)+JVS(2034)*UV(142)+JVS(2035)*UV(146)& + &+JVS(2036)*UV(148)+JVS(2037)*UV(159)+JVS(2038)*UV(164)+JVS(2039)*UV(166)+JVS(2040)*UV(167)+JVS(2041)*UV(179)& + &+JVS(2043)*UV(183)+JVS(2044)*UV(187)+JVS(2045)*UV(204)+JVS(2046)*UV(206)+JVS(2048)*UV(213)+JVS(2051)*UV(222)& + &+JVS(2053)*UV(228)+JVS(2055)*UV(230)+JVS(2056)*UV(232)+JVS(2057)*UV(236)+JVS(2059)*UV(241)+JVS(2060)*UV(242)& + &+JVS(2061)*UV(243)+JVS(2068)*UV(266)+JVS(2069)*UV(279)+JVS(2071)*UV(282)+JVS(2072)*UV(284)+JVS(2073)*UV(286) + JUV(237) = JVS(2076)*UV(94)+JVS(2077)*UV(124)+JVS(2078)*UV(202)+JVS(2079)*UV(226)+JVS(2080)*UV(237)+JVS(2083)*UV(255)& + &+JVS(2084)*UV(256)+JVS(2086)*UV(259)+JVS(2087)*UV(261)+JVS(2088)*UV(266)+JVS(2089)*UV(273)+JVS(2090)*UV(279)& + &+JVS(2093)*UV(284)+JVS(2094)*UV(286)+JVS(2095)*UV(290) + JUV(238) = JVS(2096)*UV(154)+JVS(2097)*UV(155)+JVS(2098)*UV(238)+JVS(2099)*UV(261)+JVS(2100)*UV(266)+JVS(2101)*UV(279)& + &+JVS(2102)*UV(281)+JVS(2104)*UV(284)+JVS(2105)*UV(286) + JUV(239) = JVS(2106)*UV(110)+JVS(2107)*UV(170)+JVS(2108)*UV(202)+JVS(2110)*UV(226)+JVS(2112)*UV(239)+JVS(2114)*UV(255)& + &+JVS(2115)*UV(256)+JVS(2117)*UV(259)+JVS(2118)*UV(261)+JVS(2119)*UV(266)+JVS(2121)*UV(279)+JVS(2123)*UV(282)& + &+JVS(2124)*UV(284)+JVS(2125)*UV(286)+JVS(2126)*UV(290) + JUV(240) = JVS(2127)*UV(126)+JVS(2128)*UV(151)+JVS(2129)*UV(214)+JVS(2130)*UV(220)+JVS(2131)*UV(240)+JVS(2132)*UV(243)& + &+JVS(2135)*UV(246)+JVS(2136)*UV(247)+JVS(2137)*UV(261)+JVS(2138)*UV(266)+JVS(2139)*UV(279)+JVS(2140)*UV(281)& + &+JVS(2142)*UV(286) + JUV(241) = JVS(2143)*UV(144)+JVS(2144)*UV(152)+JVS(2145)*UV(168)+JVS(2147)*UV(189)+JVS(2148)*UV(204)+JVS(2149)*UV(214)& + &+JVS(2150)*UV(222)+JVS(2152)*UV(232)+JVS(2153)*UV(240)+JVS(2154)*UV(241)+JVS(2155)*UV(242)+JVS(2164)*UV(279)& + &+JVS(2167)*UV(284)+JVS(2168)*UV(286)+JVS(2170)*UV(291) + JUV(242) = JVS(2171)*UV(151)+JVS(2172)*UV(152)+JVS(2173)*UV(166)+JVS(2174)*UV(167)+JVS(2175)*UV(168)+JVS(2176)*UV(181)& + &+JVS(2177)*UV(182)+JVS(2178)*UV(183)+JVS(2179)*UV(187)+JVS(2180)*UV(189)+JVS(2183)*UV(222)+JVS(2184)*UV(232)& + &+JVS(2185)*UV(242)+JVS(2186)*UV(243)+JVS(2193)*UV(279)+JVS(2195)*UV(284)+JVS(2196)*UV(286) + JUV(243) = JVS(2197)*UV(146)+JVS(2198)*UV(152)+JVS(2199)*UV(166)+JVS(2200)*UV(167)+JVS(2201)*UV(168)+JVS(2202)*UV(189)& + &+JVS(2205)*UV(222)+JVS(2206)*UV(232)+JVS(2208)*UV(243)+JVS(2211)*UV(246)+JVS(2212)*UV(247)+JVS(2215)*UV(279)& + &+JVS(2217)*UV(284)+JVS(2218)*UV(286) + JUV(244) = JVS(2219)*UV(151)+JVS(2220)*UV(162)+JVS(2221)*UV(165)+JVS(2222)*UV(224)+JVS(2223)*UV(244)+JVS(2224)*UV(245)& + &+JVS(2226)*UV(266)+JVS(2227)*UV(279)+JVS(2230)*UV(284)+JVS(2231)*UV(286)+JVS(2232)*UV(290) + JUV(245) = JVS(2233)*UV(151)+JVS(2234)*UV(157)+JVS(2235)*UV(171)+JVS(2236)*UV(224)+JVS(2237)*UV(244)+JVS(2238)*UV(245)& + &+JVS(2240)*UV(266)+JVS(2241)*UV(279)+JVS(2244)*UV(284)+JVS(2245)*UV(286)+JVS(2246)*UV(290) + JUV(246) = JVS(2247)*UV(151)+JVS(2248)*UV(224)+JVS(2249)*UV(246)+JVS(2250)*UV(247)+JVS(2251)*UV(261)+JVS(2252)*UV(266)& + &+JVS(2253)*UV(279)+JVS(2254)*UV(281)+JVS(2256)*UV(284)+JVS(2257)*UV(286) + JUV(247) = JVS(2259)*UV(181)+JVS(2260)*UV(224)+JVS(2261)*UV(246)+JVS(2262)*UV(247)+JVS(2263)*UV(261)+JVS(2264)*UV(266)& + &+JVS(2265)*UV(279)+JVS(2266)*UV(281)+JVS(2268)*UV(284)+JVS(2269)*UV(286) + JUV(248) = JVS(2271)*UV(79)+JVS(2272)*UV(80)+JVS(2273)*UV(121)+JVS(2274)*UV(129)+JVS(2275)*UV(139)+JVS(2276)*UV(157)& + &+JVS(2278)*UV(181)+JVS(2279)*UV(186)+JVS(2280)*UV(224)+JVS(2281)*UV(243)+JVS(2282)*UV(244)+JVS(2283)*UV(245)& + &+JVS(2284)*UV(246)+JVS(2285)*UV(247)+JVS(2286)*UV(248)+JVS(2287)*UV(261)+JVS(2288)*UV(266)+JVS(2289)*UV(279)& + &+JVS(2290)*UV(281)+JVS(2291)*UV(282)+JVS(2292)*UV(284)+JVS(2293)*UV(286) + JUV(249) = JVS(2295)*UV(200)+JVS(2305)*UV(249)+JVS(2308)*UV(266)+JVS(2309)*UV(279)+JVS(2310)*UV(281)+JVS(2312)*UV(284)& + &+JVS(2313)*UV(286)+JVS(2315)*UV(291) + JUV(250) = JVS(2316)*UV(112)+JVS(2317)*UV(132)+JVS(2318)*UV(134)+JVS(2319)*UV(136)+JVS(2320)*UV(141)+JVS(2321)*UV(153)& + &+JVS(2322)*UV(164)+JVS(2323)*UV(167)+JVS(2324)*UV(168)+JVS(2325)*UV(174)+JVS(2327)*UV(182)+JVS(2330)*UV(187)& + &+JVS(2332)*UV(194)+JVS(2334)*UV(200)+JVS(2335)*UV(205)+JVS(2336)*UV(206)+JVS(2338)*UV(209)+JVS(2343)*UV(222)& + &+JVS(2345)*UV(225)+JVS(2347)*UV(229)+JVS(2348)*UV(231)+JVS(2349)*UV(232)+JVS(2352)*UV(242)+JVS(2353)*UV(243)& + &+JVS(2358)*UV(249)+JVS(2359)*UV(250)+JVS(2361)*UV(252)+JVS(2363)*UV(261)+JVS(2364)*UV(266)+JVS(2366)*UV(279)& + &+JVS(2367)*UV(281)+JVS(2369)*UV(284)+JVS(2370)*UV(286) + JUV(251) = JVS(2373)*UV(123)+JVS(2374)*UV(127)+JVS(2375)*UV(140)+JVS(2376)*UV(162)+JVS(2378)*UV(170)+JVS(2379)*UV(181)& + &+JVS(2380)*UV(188)+JVS(2381)*UV(224)+JVS(2382)*UV(225)+JVS(2383)*UV(243)+JVS(2384)*UV(244)+JVS(2385)*UV(245)& + &+JVS(2386)*UV(246)+JVS(2387)*UV(247)+JVS(2388)*UV(251)+JVS(2389)*UV(261)+JVS(2390)*UV(266)+JVS(2391)*UV(279)& + &+JVS(2392)*UV(281)+JVS(2393)*UV(282)+JVS(2394)*UV(284)+JVS(2395)*UV(286) + JUV(252) = JVS(2397)*UV(196)+JVS(2398)*UV(221)+JVS(2411)*UV(252)+JVS(2416)*UV(261)+JVS(2417)*UV(266)+JVS(2418)*UV(273)& + &+JVS(2419)*UV(279)+JVS(2422)*UV(284)+JVS(2423)*UV(286)+JVS(2424)*UV(290) + JUV(253) = JVS(2426)*UV(170)+JVS(2427)*UV(225)+JVS(2428)*UV(248)+JVS(2429)*UV(253)+JVS(2430)*UV(261)+JVS(2431)*UV(266)& + &+JVS(2432)*UV(273)+JVS(2433)*UV(279)+JVS(2434)*UV(281)+JVS(2435)*UV(282)+JVS(2437)*UV(286)+JVS(2438)*UV(290) + JUV(254) = JVS(2439)*UV(154)+JVS(2440)*UV(155)+JVS(2441)*UV(170)+JVS(2442)*UV(226)+JVS(2444)*UV(254)+JVS(2447)*UV(261)& + &+JVS(2448)*UV(266)+JVS(2449)*UV(279)+JVS(2450)*UV(281)+JVS(2451)*UV(282)+JVS(2452)*UV(284)+JVS(2453)*UV(286) + JUV(255) = JVS(2454)*UV(50)+JVS(2455)*UV(106)+JVS(2456)*UV(148)+JVS(2457)*UV(159)+JVS(2459)*UV(226)+JVS(2461)*UV(248)& + &+JVS(2463)*UV(255)+JVS(2466)*UV(259)+JVS(2467)*UV(261)+JVS(2468)*UV(266)+JVS(2469)*UV(279)+JVS(2470)*UV(281)& + &+JVS(2472)*UV(284)+JVS(2473)*UV(286)+JVS(2475)*UV(291) + JUV(256) = JVS(2476)*UV(93)+JVS(2477)*UV(114)+JVS(2478)*UV(119)+JVS(2479)*UV(148)+JVS(2482)*UV(256)+JVS(2483)*UV(257)& + &+JVS(2484)*UV(261)+JVS(2485)*UV(266)+JVS(2486)*UV(279)+JVS(2487)*UV(281)+JVS(2489)*UV(284)+JVS(2490)*UV(286)& + &+JVS(2491)*UV(290) + JUV(257) = JVS(2492)*UV(202)+JVS(2493)*UV(210)+JVS(2496)*UV(257)+JVS(2497)*UV(261)+JVS(2498)*UV(266)+JVS(2499)*UV(279)& + &+JVS(2500)*UV(281)+JVS(2502)*UV(284)+JVS(2503)*UV(286) + JUV(258) = JVS(2506)*UV(95)+JVS(2507)*UV(124)+JVS(2508)*UV(202)+JVS(2509)*UV(226)+JVS(2512)*UV(255)+JVS(2513)*UV(256)& + &+JVS(2515)*UV(258)+JVS(2516)*UV(259)+JVS(2517)*UV(261)+JVS(2518)*UV(266)+JVS(2520)*UV(279)+JVS(2523)*UV(284)& + &+JVS(2524)*UV(286)+JVS(2525)*UV(290) + JUV(259) = JVS(2527)*UV(91)+JVS(2528)*UV(93)+JVS(2529)*UV(94)+JVS(2530)*UV(113)+JVS(2531)*UV(119)+JVS(2532)*UV(148)& + &+JVS(2533)*UV(154)+JVS(2534)*UV(155)+JVS(2535)*UV(158)+JVS(2536)*UV(159)+JVS(2537)*UV(199)+JVS(2538)*UV(201)& + &+JVS(2539)*UV(202)+JVS(2540)*UV(209)+JVS(2542)*UV(215)+JVS(2543)*UV(216)+JVS(2544)*UV(225)+JVS(2545)*UV(237)& + &+JVS(2546)*UV(238)+JVS(2550)*UV(256)+JVS(2551)*UV(257)+JVS(2553)*UV(259)+JVS(2554)*UV(261)+JVS(2555)*UV(266)& + &+JVS(2557)*UV(279)+JVS(2558)*UV(281)+JVS(2559)*UV(282)+JVS(2561)*UV(286) + JUV(260) = JVS(2564)*UV(128)+JVS(2565)*UV(176)+JVS(2566)*UV(260)+JVS(2568)*UV(274)+JVS(2569)*UV(275)+JVS(2570)*UV(276)& + &+JVS(2571)*UV(277)+JVS(2572)*UV(278)+JVS(2573)*UV(280)+JVS(2574)*UV(282)+JVS(2575)*UV(283)+JVS(2576)*UV(284)& + &+JVS(2577)*UV(286)+JVS(2578)*UV(287)+JVS(2579)*UV(288)+JVS(2580)*UV(289) + JUV(261) = JVS(2582)*UV(67)+JVS(2583)*UV(88)+JVS(2584)*UV(104)+JVS(2585)*UV(105)+JVS(2586)*UV(136)+JVS(2588)*UV(156)& + &+JVS(2589)*UV(163)+JVS(2590)*UV(169)+JVS(2591)*UV(171)+JVS(2592)*UV(184)+JVS(2593)*UV(185)+JVS(2597)*UV(196)& + &+JVS(2598)*UV(198)+JVS(2599)*UV(201)+JVS(2600)*UV(204)+JVS(2602)*UV(207)+JVS(2603)*UV(208)+JVS(2604)*UV(209)& + &+JVS(2606)*UV(215)+JVS(2607)*UV(216)+JVS(2608)*UV(217)+JVS(2610)*UV(221)+JVS(2612)*UV(224)+JVS(2613)*UV(225)& + &+JVS(2614)*UV(226)+JVS(2617)*UV(230)+JVS(2620)*UV(233)+JVS(2621)*UV(237)+JVS(2622)*UV(238)+JVS(2623)*UV(239)& + &+JVS(2625)*UV(241)+JVS(2629)*UV(245)+JVS(2630)*UV(246)+JVS(2631)*UV(247)+JVS(2632)*UV(248)+JVS(2634)*UV(250)& + &+JVS(2635)*UV(251)+JVS(2636)*UV(252)+JVS(2638)*UV(254)+JVS(2639)*UV(255)+JVS(2640)*UV(256)+JVS(2641)*UV(257)& + &+JVS(2642)*UV(258)+JVS(2644)*UV(261)+JVS(2645)*UV(264)+JVS(2646)*UV(266)+JVS(2647)*UV(273)+JVS(2648)*UV(279)& + &+JVS(2649)*UV(281)+JVS(2650)*UV(282)+JVS(2651)*UV(284)+JVS(2652)*UV(286)+JVS(2654)*UV(291) + JUV(262) = JVS(2655)*UV(262)+JVS(2656)*UV(275)+JVS(2657)*UV(277)+JVS(2658)*UV(278)+JVS(2659)*UV(280)+JVS(2660)*UV(283)& + &+JVS(2661)*UV(285)+JVS(2662)*UV(286)+JVS(2663)*UV(287)+JVS(2664)*UV(288)+JVS(2665)*UV(289)+JVS(2666)*UV(290)& + &+JVS(2667)*UV(291) + JUV(263) = JVS(2668)*UV(74)+JVS(2669)*UV(76)+JVS(2670)*UV(85)+JVS(2671)*UV(86)+JVS(2672)*UV(88)+JVS(2673)*UV(89)& + &+JVS(2674)*UV(90)+JVS(2675)*UV(108)+JVS(2676)*UV(112)+JVS(2678)*UV(136)+JVS(2679)*UV(137)+JVS(2680)*UV(139)& + &+JVS(2681)*UV(140)+JVS(2682)*UV(152)+JVS(2683)*UV(157)+JVS(2684)*UV(162)+JVS(2685)*UV(165)+JVS(2686)*UV(166)& + &+JVS(2687)*UV(167)+JVS(2688)*UV(168)+JVS(2689)*UV(169)+JVS(2690)*UV(170)+JVS(2691)*UV(171)+JVS(2692)*UV(172)& + &+JVS(2693)*UV(174)+JVS(2694)*UV(179)+JVS(2695)*UV(180)+JVS(2696)*UV(181)+JVS(2697)*UV(182)+JVS(2698)*UV(183)& + &+JVS(2699)*UV(184)+JVS(2700)*UV(186)+JVS(2701)*UV(188)+JVS(2702)*UV(189)+JVS(2703)*UV(190)+JVS(2704)*UV(191)& + &+JVS(2705)*UV(194)+JVS(2706)*UV(196)+JVS(2707)*UV(198)+JVS(2708)*UV(201)+JVS(2709)*UV(204)+JVS(2710)*UV(205)& + &+JVS(2711)*UV(206)+JVS(2712)*UV(207)+JVS(2713)*UV(208)+JVS(2714)*UV(209)+JVS(2716)*UV(215)+JVS(2717)*UV(216)& + &+JVS(2718)*UV(217)+JVS(2719)*UV(218)+JVS(2721)*UV(222)+JVS(2722)*UV(223)+JVS(2723)*UV(224)+JVS(2724)*UV(225)& + &+JVS(2727)*UV(230)+JVS(2728)*UV(231)+JVS(2729)*UV(232)+JVS(2730)*UV(234)+JVS(2731)*UV(236)+JVS(2732)*UV(237)& + &+JVS(2733)*UV(238)+JVS(2734)*UV(239)+JVS(2736)*UV(241)+JVS(2737)*UV(242)+JVS(2738)*UV(243)+JVS(2739)*UV(244)& + &+JVS(2740)*UV(245)+JVS(2741)*UV(246)+JVS(2742)*UV(247)+JVS(2743)*UV(248)+JVS(2744)*UV(249)+JVS(2745)*UV(250)& + &+JVS(2746)*UV(251)+JVS(2747)*UV(252)+JVS(2748)*UV(253)+JVS(2749)*UV(254)+JVS(2750)*UV(255)+JVS(2751)*UV(256)& + &+JVS(2752)*UV(257)+JVS(2753)*UV(258)+JVS(2755)*UV(261)+JVS(2756)*UV(263)+JVS(2757)*UV(264)+JVS(2758)*UV(266)& + &+JVS(2759)*UV(267)+JVS(2760)*UV(272)+JVS(2761)*UV(273)+JVS(2762)*UV(276)+JVS(2763)*UV(278)+JVS(2764)*UV(279)& + &+JVS(2765)*UV(281)+JVS(2766)*UV(282)+JVS(2767)*UV(284)+JVS(2768)*UV(285)+JVS(2769)*UV(286)+JVS(2770)*UV(288)& + &+JVS(2771)*UV(290)+JVS(2772)*UV(291) + JUV(264) = JVS(2773)*UV(96)+JVS(2774)*UV(106)+JVS(2775)*UV(110)+JVS(2776)*UV(112)+JVS(2777)*UV(133)+JVS(2778)*UV(195)& + &+JVS(2779)*UV(201)+JVS(2780)*UV(202)+JVS(2781)*UV(209)+JVS(2782)*UV(217)+JVS(2783)*UV(239)+JVS(2784)*UV(253)& + &+JVS(2785)*UV(254)+JVS(2787)*UV(256)+JVS(2788)*UV(257)+JVS(2790)*UV(261)+JVS(2791)*UV(264)+JVS(2792)*UV(266)& + &+JVS(2793)*UV(267)+JVS(2794)*UV(273)+JVS(2795)*UV(276)+JVS(2796)*UV(278)+JVS(2797)*UV(279)+JVS(2798)*UV(281)& + &+JVS(2799)*UV(282)+JVS(2800)*UV(284)+JVS(2801)*UV(286)+JVS(2802)*UV(290)+JVS(2803)*UV(291) + JUV(265) = JVS(2804)*UV(45)+JVS(2805)*UV(90)+JVS(2806)*UV(98)+JVS(2807)*UV(101)+JVS(2808)*UV(114)+JVS(2809)*UV(115)& + &+JVS(2810)*UV(118)+JVS(2812)*UV(138)+JVS(2815)*UV(142)+JVS(2816)*UV(147)+JVS(2818)*UV(161)+JVS(2819)*UV(173)& + &+JVS(2821)*UV(176)+JVS(2829)*UV(208)+JVS(2830)*UV(210)+JVS(2837)*UV(223)+JVS(2840)*UV(226)+JVS(2845)*UV(233)& + &+JVS(2859)*UV(251)+JVS(2866)*UV(259)+JVS(2868)*UV(262)+JVS(2869)*UV(263)+JVS(2870)*UV(264)+JVS(2871)*UV(265)& + &+JVS(2874)*UV(270)+JVS(2878)*UV(275)+JVS(2880)*UV(277)+JVS(2881)*UV(278)+JVS(2883)*UV(280)+JVS(2884)*UV(281)& + &+JVS(2886)*UV(283)+JVS(2889)*UV(286)+JVS(2890)*UV(287)+JVS(2892)*UV(289)+JVS(2894)*UV(291) + JUV(266) = JVS(2895)*UV(46)+JVS(2896)*UV(67)+JVS(2897)*UV(74)+JVS(2898)*UV(88)+JVS(2899)*UV(90)+JVS(2900)*UV(100)& + &+JVS(2901)*UV(106)+JVS(2902)*UV(136)+JVS(2903)*UV(137)+JVS(2904)*UV(149)+JVS(2905)*UV(179)+JVS(2906)*UV(180)& + &+JVS(2907)*UV(184)+JVS(2908)*UV(190)+JVS(2909)*UV(191)+JVS(2910)*UV(201)+JVS(2911)*UV(202)+JVS(2912)*UV(207)& + &+JVS(2913)*UV(209)+JVS(2914)*UV(215)+JVS(2915)*UV(216)+JVS(2916)*UV(217)+JVS(2917)*UV(219)+JVS(2918)*UV(221)& + &+JVS(2919)*UV(224)+JVS(2920)*UV(225)+JVS(2921)*UV(226)+JVS(2922)*UV(237)+JVS(2923)*UV(238)+JVS(2924)*UV(239)& + &+JVS(2925)*UV(244)+JVS(2926)*UV(245)+JVS(2927)*UV(246)+JVS(2928)*UV(247)+JVS(2929)*UV(248)+JVS(2930)*UV(249)& + &+JVS(2931)*UV(250)+JVS(2933)*UV(252)+JVS(2934)*UV(253)+JVS(2935)*UV(254)+JVS(2936)*UV(255)+JVS(2937)*UV(256)& + &+JVS(2938)*UV(257)+JVS(2939)*UV(258)+JVS(2941)*UV(261)+JVS(2942)*UV(264)+JVS(2943)*UV(266)+JVS(2945)*UV(272)& + &+JVS(2949)*UV(279)+JVS(2950)*UV(281)+JVS(2951)*UV(282)+JVS(2952)*UV(284)+JVS(2953)*UV(285)+JVS(2954)*UV(286)& + &+JVS(2955)*UV(290)+JVS(2956)*UV(291) + JUV(267) = JVS(2957)*UV(58)+JVS(2958)*UV(64)+JVS(2959)*UV(66)+JVS(2960)*UV(72)+JVS(2961)*UV(78)+JVS(2962)*UV(79)& + &+JVS(2963)*UV(80)+JVS(2964)*UV(101)+JVS(2965)*UV(105)+JVS(2966)*UV(109)+JVS(2967)*UV(125)+JVS(2968)*UV(127)& + &+JVS(2969)*UV(129)+JVS(2970)*UV(132)+JVS(2971)*UV(136)+JVS(2972)*UV(148)+JVS(2973)*UV(149)+JVS(2974)*UV(150)& + &+JVS(2975)*UV(153)+JVS(2976)*UV(154)+JVS(2977)*UV(155)+JVS(2978)*UV(156)+JVS(2979)*UV(157)+JVS(2980)*UV(159)& + &+JVS(2981)*UV(162)+JVS(2982)*UV(163)+JVS(2983)*UV(165)+JVS(2984)*UV(169)+JVS(2985)*UV(170)+JVS(2986)*UV(171)& + &+JVS(2987)*UV(172)+JVS(2988)*UV(174)+JVS(2989)*UV(175)+JVS(2991)*UV(185)+JVS(2992)*UV(186)+JVS(2993)*UV(188)& + &+JVS(2995)*UV(192)+JVS(2996)*UV(194)+JVS(2997)*UV(195)+JVS(2998)*UV(200)+JVS(3000)*UV(205)+JVS(3001)*UV(206)& + &+JVS(3002)*UV(207)+JVS(3003)*UV(208)+JVS(3004)*UV(210)+JVS(3005)*UV(213)+JVS(3006)*UV(214)+JVS(3007)*UV(220)& + &+JVS(3008)*UV(221)+JVS(3010)*UV(223)+JVS(3011)*UV(224)+JVS(3012)*UV(228)+JVS(3013)*UV(229)+JVS(3015)*UV(231)& + &+JVS(3017)*UV(233)+JVS(3018)*UV(234)+JVS(3019)*UV(236)+JVS(3021)*UV(240)+JVS(3025)*UV(244)+JVS(3026)*UV(245)& + &+JVS(3029)*UV(248)+JVS(3031)*UV(250)+JVS(3032)*UV(251)+JVS(3034)*UV(253)+JVS(3039)*UV(259)+JVS(3041)*UV(263)& + &+JVS(3042)*UV(264)+JVS(3043)*UV(266)+JVS(3044)*UV(267)+JVS(3046)*UV(273)+JVS(3049)*UV(279)+JVS(3050)*UV(281)& + &+JVS(3051)*UV(282)+JVS(3052)*UV(284)+JVS(3054)*UV(286)+JVS(3055)*UV(288)+JVS(3056)*UV(290) + JUV(268) = JVS(3058)*UV(143)+JVS(3060)*UV(227)+JVS(3061)*UV(268)+JVS(3063)*UV(270)+JVS(3065)*UV(277)+JVS(3066)*UV(278)& + &+JVS(3068)*UV(280)+JVS(3071)*UV(283)+JVS(3072)*UV(284)+JVS(3074)*UV(286)+JVS(3075)*UV(287) + JUV(269) = JVS(3077)*UV(1)+JVS(3078)*UV(2)+JVS(3079)*UV(3)+JVS(3080)*UV(44)+JVS(3081)*UV(46)+JVS(3082)*UV(60)& + &+JVS(3083)*UV(69)+JVS(3084)*UV(73)+JVS(3085)*UV(92)+JVS(3086)*UV(99)+JVS(3087)*UV(143)+JVS(3088)*UV(203)& + &+JVS(3089)*UV(227)+JVS(3090)*UV(268)+JVS(3091)*UV(269)+JVS(3092)*UV(270)+JVS(3093)*UV(274)+JVS(3096)*UV(279)& + &+JVS(3098)*UV(281)+JVS(3099)*UV(282)+JVS(3101)*UV(284)+JVS(3102)*UV(285)+JVS(3103)*UV(286)+JVS(3105)*UV(291) + JUV(270) = JVS(3106)*UV(143)+JVS(3108)*UV(227)+JVS(3110)*UV(269)+JVS(3111)*UV(270)+JVS(3113)*UV(277)+JVS(3114)*UV(278)& + &+JVS(3116)*UV(280)+JVS(3117)*UV(281)+JVS(3119)*UV(283)+JVS(3123)*UV(287)+JVS(3124)*UV(291) + JUV(271) = JVS(3125)*UV(75)+JVS(3126)*UV(111)+JVS(3127)*UV(197)+JVS(3129)*UV(235)+JVS(3130)*UV(262)+JVS(3136)*UV(271)& + &+JVS(3140)*UV(275)+JVS(3141)*UV(276)+JVS(3143)*UV(278)+JVS(3145)*UV(280)+JVS(3149)*UV(284)+JVS(3150)*UV(285)& + &+JVS(3151)*UV(286)+JVS(3152)*UV(287)+JVS(3154)*UV(289) + JUV(272) = JVS(3157)*UV(47)+JVS(3158)*UV(48)+JVS(3159)*UV(52)+JVS(3160)*UV(53)+JVS(3161)*UV(54)+JVS(3162)*UV(55)& + &+JVS(3163)*UV(56)+JVS(3164)*UV(57)+JVS(3165)*UV(59)+JVS(3166)*UV(61)+JVS(3168)*UV(71)+JVS(3169)*UV(77)& + &+JVS(3170)*UV(81)+JVS(3171)*UV(82)+JVS(3172)*UV(83)+JVS(3173)*UV(84)+JVS(3174)*UV(100)+JVS(3175)*UV(149)& + &+JVS(3176)*UV(190)+JVS(3177)*UV(197)+JVS(3186)*UV(272)+JVS(3189)*UV(275)+JVS(3192)*UV(278)+JVS(3196)*UV(282)& + &+JVS(3203)*UV(289) + JUV(273) = JVS(3206)*UV(2)+JVS(3207)*UV(47)+JVS(3208)*UV(48)+JVS(3209)*UV(51)+JVS(3210)*UV(59)+JVS(3211)*UV(71)& + &+JVS(3212)*UV(73)+JVS(3213)*UV(77)+JVS(3214)*UV(100)+JVS(3215)*UV(124)+JVS(3216)*UV(128)+JVS(3217)*UV(135)& + &+JVS(3218)*UV(161)+JVS(3219)*UV(176)+JVS(3221)*UV(221)+JVS(3222)*UV(227)+JVS(3225)*UV(253)+JVS(3231)*UV(260)& + &+JVS(3234)*UV(263)+JVS(3235)*UV(264)+JVS(3239)*UV(269)+JVS(3242)*UV(272)+JVS(3243)*UV(273)+JVS(3244)*UV(274)& + &+JVS(3249)*UV(279)+JVS(3251)*UV(281)+JVS(3252)*UV(282)+JVS(3254)*UV(284)+JVS(3255)*UV(285)+JVS(3256)*UV(286)& + &+JVS(3258)*UV(288)+JVS(3259)*UV(289)+JVS(3261)*UV(291) + JUV(274) = JVS(3262)*UV(47)+JVS(3263)*UV(48)+JVS(3264)*UV(59)+JVS(3265)*UV(71)+JVS(3266)*UV(77)+JVS(3267)*UV(100)& + &+JVS(3268)*UV(176)+JVS(3269)*UV(227)+JVS(3270)*UV(260)+JVS(3272)*UV(269)+JVS(3274)*UV(272)+JVS(3275)*UV(273)& + &+JVS(3276)*UV(274)+JVS(3281)*UV(279)+JVS(3283)*UV(281)+JVS(3284)*UV(282)+JVS(3286)*UV(284)+JVS(3287)*UV(285)& + &+JVS(3288)*UV(286)+JVS(3290)*UV(288)+JVS(3291)*UV(289)+JVS(3293)*UV(291) + JUV(275) = JVS(3294)*UV(72)+JVS(3295)*UV(78)+JVS(3296)*UV(114)+JVS(3297)*UV(124)+JVS(3298)*UV(133)+JVS(3299)*UV(137)& + &+JVS(3300)*UV(138)+JVS(3301)*UV(147)+JVS(3302)*UV(149)+JVS(3303)*UV(161)+JVS(3304)*UV(173)+JVS(3305)*UV(176)& + &+JVS(3306)*UV(190)+JVS(3307)*UV(211)+JVS(3308)*UV(212)+JVS(3310)*UV(218)+JVS(3311)*UV(219)+JVS(3312)*UV(221)& + &+JVS(3313)*UV(224)+JVS(3316)*UV(235)+JVS(3334)*UV(253)+JVS(3341)*UV(260)+JVS(3343)*UV(262)+JVS(3344)*UV(263)& + &+JVS(3350)*UV(271)+JVS(3351)*UV(272)+JVS(3354)*UV(275)+JVS(3355)*UV(276)+JVS(3363)*UV(284)+JVS(3364)*UV(285)& + &+JVS(3365)*UV(286)+JVS(3369)*UV(290) + JUV(276) = JVS(3371)*UV(66)+JVS(3372)*UV(86)+JVS(3373)*UV(90)+JVS(3374)*UV(122)+JVS(3375)*UV(138)+JVS(3376)*UV(147)& + &+JVS(3377)*UV(195)+JVS(3378)*UV(212)+JVS(3380)*UV(234)+JVS(3384)*UV(260)+JVS(3386)*UV(263)+JVS(3392)*UV(271)& + &+JVS(3397)*UV(276)+JVS(3402)*UV(281)+JVS(3403)*UV(282)+JVS(3407)*UV(286)+JVS(3409)*UV(288) + JUV(277) = JVS(3413)*UV(203)+JVS(3414)*UV(235)+JVS(3415)*UV(260)+JVS(3416)*UV(262)+JVS(3417)*UV(268)+JVS(3419)*UV(270)& + &+JVS(3424)*UV(277)+JVS(3429)*UV(282)+JVS(3436)*UV(289) + JUV(278) = JVS(3439)*UV(43)+JVS(3440)*UV(46)+JVS(3441)*UV(69)+JVS(3442)*UV(81)+JVS(3443)*UV(82)+JVS(3444)*UV(83)& + &+JVS(3445)*UV(84)+JVS(3446)*UV(100)+JVS(3447)*UV(102)+JVS(3448)*UV(137)+JVS(3449)*UV(149)+JVS(3450)*UV(161)& + &+JVS(3451)*UV(173)+JVS(3452)*UV(176)+JVS(3453)*UV(177)+JVS(3454)*UV(190)+JVS(3455)*UV(193)+JVS(3456)*UV(195)& + &+JVS(3457)*UV(196)+JVS(3458)*UV(202)+JVS(3461)*UV(211)+JVS(3462)*UV(212)+JVS(3463)*UV(219)+JVS(3464)*UV(221)& + &+JVS(3467)*UV(226)+JVS(3469)*UV(234)+JVS(3494)*UV(259)+JVS(3495)*UV(260)+JVS(3497)*UV(262)+JVS(3498)*UV(263)& + &+JVS(3499)*UV(264)+JVS(3500)*UV(265)+JVS(3503)*UV(268)+JVS(3505)*UV(270)+JVS(3506)*UV(271)+JVS(3507)*UV(272)& + &+JVS(3510)*UV(275)+JVS(3513)*UV(278)+JVS(3515)*UV(280)+JVS(3519)*UV(284)+JVS(3521)*UV(286)+JVS(3522)*UV(287)& + &+JVS(3524)*UV(289)+JVS(3525)*UV(290) + JUV(279) = JVS(3527)*UV(60)+JVS(3528)*UV(61)+JVS(3529)*UV(65)+JVS(3530)*UV(92)+JVS(3531)*UV(121)+JVS(3532)*UV(123)& + &+JVS(3533)*UV(144)+JVS(3534)*UV(145)+JVS(3535)*UV(146)+JVS(3536)*UV(150)+JVS(3537)*UV(152)+JVS(3538)*UV(166)& + &+JVS(3539)*UV(167)+JVS(3540)*UV(168)+JVS(3541)*UV(179)+JVS(3542)*UV(180)+JVS(3543)*UV(182)+JVS(3544)*UV(183)& + &+JVS(3545)*UV(184)+JVS(3547)*UV(187)+JVS(3549)*UV(189)+JVS(3550)*UV(191)+JVS(3551)*UV(193)+JVS(3552)*UV(194)& + &+JVS(3553)*UV(195)+JVS(3554)*UV(201)+JVS(3556)*UV(204)+JVS(3557)*UV(205)+JVS(3558)*UV(207)+JVS(3559)*UV(209)& + &+JVS(3562)*UV(215)+JVS(3563)*UV(216)+JVS(3564)*UV(217)+JVS(3566)*UV(222)+JVS(3568)*UV(225)+JVS(3569)*UV(227)& + &+JVS(3570)*UV(228)+JVS(3571)*UV(229)+JVS(3572)*UV(232)+JVS(3573)*UV(234)+JVS(3575)*UV(237)+JVS(3576)*UV(238)& + &+JVS(3577)*UV(239)+JVS(3581)*UV(244)+JVS(3582)*UV(245)+JVS(3583)*UV(246)+JVS(3584)*UV(247)+JVS(3586)*UV(249)& + &+JVS(3588)*UV(252)+JVS(3590)*UV(254)+JVS(3591)*UV(255)+JVS(3592)*UV(256)+JVS(3593)*UV(257)+JVS(3594)*UV(258)& + &+JVS(3596)*UV(261)+JVS(3599)*UV(266)+JVS(3602)*UV(269)+JVS(3604)*UV(272)+JVS(3606)*UV(274)+JVS(3611)*UV(279)& + &+JVS(3613)*UV(281)+JVS(3614)*UV(282)+JVS(3616)*UV(284)+JVS(3617)*UV(285)+JVS(3618)*UV(286)+JVS(3620)*UV(288)& + &+JVS(3623)*UV(291) + JUV(280) = JVS(3624)*UV(147)+JVS(3625)*UV(173)+JVS(3626)*UV(203)+JVS(3627)*UV(235)+JVS(3628)*UV(260)+JVS(3629)*UV(262)& + &+JVS(3633)*UV(268)+JVS(3635)*UV(270)+JVS(3636)*UV(271)+JVS(3640)*UV(275)+JVS(3645)*UV(280)+JVS(3651)*UV(286) + JUV(281) = JVS(3657)*UV(67)+JVS(3658)*UV(74)+JVS(3659)*UV(90)+JVS(3660)*UV(101)+JVS(3661)*UV(102)+JVS(3662)*UV(114)& + &+JVS(3663)*UV(115)+JVS(3664)*UV(118)+JVS(3665)*UV(134)+JVS(3666)*UV(142)+JVS(3667)*UV(143)+JVS(3668)*UV(153)& + &+JVS(3669)*UV(154)+JVS(3670)*UV(155)+JVS(3671)*UV(161)+JVS(3672)*UV(170)+JVS(3673)*UV(173)+JVS(3674)*UV(176)& + &+JVS(3675)*UV(178)+JVS(3676)*UV(179)+JVS(3677)*UV(184)+JVS(3678)*UV(191)+JVS(3679)*UV(195)+JVS(3680)*UV(199)& + &+JVS(3683)*UV(208)+JVS(3684)*UV(210)+JVS(3686)*UV(215)+JVS(3687)*UV(216)+JVS(3689)*UV(223)+JVS(3690)*UV(224)& + &+JVS(3691)*UV(225)+JVS(3692)*UV(226)+JVS(3697)*UV(233)+JVS(3698)*UV(234)+JVS(3700)*UV(238)+JVS(3702)*UV(241)& + &+JVS(3707)*UV(246)+JVS(3708)*UV(247)+JVS(3710)*UV(249)+JVS(3712)*UV(251)+JVS(3714)*UV(253)+JVS(3719)*UV(259)& + &+JVS(3721)*UV(262)+JVS(3722)*UV(263)+JVS(3723)*UV(264)+JVS(3724)*UV(265)+JVS(3725)*UV(266)+JVS(3727)*UV(269)& + &+JVS(3728)*UV(270)+JVS(3730)*UV(273)+JVS(3736)*UV(279)+JVS(3738)*UV(281)+JVS(3739)*UV(282)+JVS(3741)*UV(284)& + &+JVS(3743)*UV(286)+JVS(3745)*UV(288)+JVS(3747)*UV(290)+JVS(3748)*UV(291) + JUV(282) = JVS(3749)*UV(76)+JVS(3750)*UV(138)+JVS(3751)*UV(142)+JVS(3752)*UV(147)+JVS(3753)*UV(148)+JVS(3754)*UV(154)& + &+JVS(3755)*UV(155)+JVS(3756)*UV(159)+JVS(3757)*UV(160)+JVS(3758)*UV(170)+JVS(3759)*UV(177)+JVS(3760)*UV(180)& + &+JVS(3763)*UV(199)+JVS(3764)*UV(207)+JVS(3768)*UV(224)+JVS(3770)*UV(234)+JVS(3772)*UV(248)+JVS(3773)*UV(249)& + &+JVS(3774)*UV(251)+JVS(3775)*UV(253)+JVS(3776)*UV(255)+JVS(3780)*UV(261)+JVS(3784)*UV(266)+JVS(3786)*UV(269)& + &+JVS(3788)*UV(272)+JVS(3789)*UV(273)+JVS(3792)*UV(276)+JVS(3793)*UV(277)+JVS(3795)*UV(279)+JVS(3798)*UV(282)& + &+JVS(3799)*UV(283)+JVS(3800)*UV(284)+JVS(3802)*UV(286)+JVS(3804)*UV(288)+JVS(3805)*UV(289)+JVS(3806)*UV(290)& + &+JVS(3807)*UV(291) + JUV(283) = JVS(3808)*UV(203)+JVS(3809)*UV(235)+JVS(3810)*UV(260)+JVS(3811)*UV(262)+JVS(3812)*UV(268)+JVS(3814)*UV(270)& + &+JVS(3824)*UV(282)+JVS(3825)*UV(283)+JVS(3831)*UV(289) + JUV(284) = JVS(3834)*UV(58)+JVS(3835)*UV(64)+JVS(3836)*UV(72)+JVS(3837)*UV(74)+JVS(3838)*UV(78)+JVS(3839)*UV(79)& + &+JVS(3840)*UV(80)+JVS(3841)*UV(85)+JVS(3842)*UV(87)+JVS(3843)*UV(89)+JVS(3844)*UV(91)+JVS(3845)*UV(93)& + &+JVS(3846)*UV(94)+JVS(3847)*UV(95)+JVS(3848)*UV(96)+JVS(3849)*UV(100)+JVS(3850)*UV(101)+JVS(3851)*UV(102)& + &+JVS(3852)*UV(104)+JVS(3853)*UV(106)+JVS(3854)*UV(108)+JVS(3855)*UV(109)+JVS(3856)*UV(110)+JVS(3857)*UV(112)& + &+JVS(3858)*UV(113)+JVS(3859)*UV(115)+JVS(3860)*UV(116)+JVS(3861)*UV(117)+JVS(3862)*UV(118)+JVS(3863)*UV(119)& + &+JVS(3865)*UV(121)+JVS(3866)*UV(123)+JVS(3867)*UV(125)+JVS(3868)*UV(126)+JVS(3869)*UV(127)+JVS(3870)*UV(129)& + &+JVS(3871)*UV(130)+JVS(3872)*UV(131)+JVS(3873)*UV(132)+JVS(3874)*UV(133)+JVS(3875)*UV(137)+JVS(3876)*UV(139)& + &+JVS(3877)*UV(140)+JVS(3878)*UV(141)+JVS(3879)*UV(142)+JVS(3880)*UV(144)+JVS(3881)*UV(145)+JVS(3882)*UV(146)& + &+JVS(3883)*UV(148)+JVS(3884)*UV(149)+JVS(3885)*UV(150)+JVS(3886)*UV(151)+JVS(3887)*UV(152)+JVS(3888)*UV(154)& + &+JVS(3889)*UV(155)+JVS(3890)*UV(156)+JVS(3891)*UV(157)+JVS(3892)*UV(158)+JVS(3893)*UV(159)+JVS(3894)*UV(162)& + &+JVS(3895)*UV(163)+JVS(3896)*UV(164)+JVS(3897)*UV(165)+JVS(3898)*UV(166)+JVS(3899)*UV(167)+JVS(3900)*UV(168)& + &+JVS(3901)*UV(169)+JVS(3902)*UV(170)+JVS(3903)*UV(171)+JVS(3904)*UV(172)+JVS(3905)*UV(175)+JVS(3906)*UV(177)& + &+JVS(3907)*UV(179)+JVS(3908)*UV(180)+JVS(3909)*UV(181)+JVS(3910)*UV(182)+JVS(3911)*UV(183)+JVS(3912)*UV(184)& + &+JVS(3913)*UV(185)+JVS(3914)*UV(186)+JVS(3915)*UV(187)+JVS(3916)*UV(188)+JVS(3917)*UV(189)+JVS(3918)*UV(190)& + &+JVS(3919)*UV(191)+JVS(3920)*UV(192)+JVS(3921)*UV(194)+JVS(3922)*UV(200)+JVS(3923)*UV(201)+JVS(3924)*UV(202)& + &+JVS(3925)*UV(204)+JVS(3926)*UV(205)+JVS(3927)*UV(206)+JVS(3928)*UV(207)+JVS(3929)*UV(208)+JVS(3930)*UV(209)& + &+JVS(3931)*UV(210)+JVS(3932)*UV(211)+JVS(3933)*UV(212)+JVS(3934)*UV(213)+JVS(3935)*UV(214)+JVS(3936)*UV(215)& + &+JVS(3937)*UV(216)+JVS(3938)*UV(217)+JVS(3939)*UV(218)+JVS(3940)*UV(220)+JVS(3941)*UV(222)+JVS(3942)*UV(223)& + &+JVS(3943)*UV(224)+JVS(3944)*UV(225)+JVS(3945)*UV(227)+JVS(3946)*UV(228)+JVS(3947)*UV(229)+JVS(3948)*UV(230)& + &+JVS(3949)*UV(231)+JVS(3950)*UV(232)+JVS(3951)*UV(233)+JVS(3953)*UV(236)+JVS(3954)*UV(237)+JVS(3955)*UV(238)& + &+JVS(3956)*UV(239)+JVS(3957)*UV(240)+JVS(3958)*UV(241)+JVS(3959)*UV(242)+JVS(3960)*UV(243)+JVS(3961)*UV(244)& + &+JVS(3962)*UV(245)+JVS(3963)*UV(246)+JVS(3964)*UV(247)+JVS(3965)*UV(248)+JVS(3966)*UV(249)+JVS(3967)*UV(250)& + &+JVS(3968)*UV(251)+JVS(3969)*UV(252)+JVS(3970)*UV(253)+JVS(3971)*UV(254)+JVS(3972)*UV(255)+JVS(3973)*UV(256)& + &+JVS(3974)*UV(257)+JVS(3975)*UV(258)+JVS(3976)*UV(259)+JVS(3977)*UV(261)+JVS(3978)*UV(263)+JVS(3979)*UV(264)& + &+JVS(3980)*UV(266)+JVS(3981)*UV(267)+JVS(3983)*UV(269)+JVS(3985)*UV(272)+JVS(3986)*UV(273)+JVS(3987)*UV(274)& + &+JVS(3989)*UV(276)+JVS(3992)*UV(279)+JVS(3994)*UV(281)+JVS(3995)*UV(282)+JVS(3997)*UV(284)+JVS(3998)*UV(285)& + &+JVS(3999)*UV(286)+JVS(4001)*UV(288)+JVS(4003)*UV(290)+JVS(4004)*UV(291) + JUV(285) = JVS(4005)*UV(52)+JVS(4006)*UV(53)+JVS(4007)*UV(54)+JVS(4008)*UV(55)+JVS(4009)*UV(56)+JVS(4010)*UV(57)& + &+JVS(4011)*UV(59)+JVS(4012)*UV(75)+JVS(4013)*UV(81)+JVS(4014)*UV(82)+JVS(4015)*UV(83)+JVS(4016)*UV(84)& + &+JVS(4017)*UV(103)+JVS(4018)*UV(111)+JVS(4019)*UV(149)+JVS(4020)*UV(197)+JVS(4021)*UV(217)+JVS(4022)*UV(227)& + &+JVS(4024)*UV(239)+JVS(4031)*UV(262)+JVS(4033)*UV(266)+JVS(4038)*UV(271)+JVS(4039)*UV(272)+JVS(4041)*UV(274)& + &+JVS(4042)*UV(275)+JVS(4046)*UV(279)+JVS(4049)*UV(282)+JVS(4051)*UV(284)+JVS(4052)*UV(285)+JVS(4053)*UV(286)& + &+JVS(4055)*UV(288)+JVS(4057)*UV(290)+JVS(4058)*UV(291) + JUV(286) = JVS(4059)*UV(41)+JVS(4060)*UV(43)+JVS(4061)*UV(46)+JVS(4062)*UV(58)+JVS(4063)*UV(64)+JVS(4064)*UV(66)& + &+JVS(4065)*UV(68)+JVS(4066)*UV(69)+JVS(4067)*UV(70)+JVS(4068)*UV(71)+JVS(4069)*UV(72)+JVS(4070)*UV(75)& + &+JVS(4071)*UV(76)+JVS(4072)*UV(77)+JVS(4073)*UV(78)+JVS(4074)*UV(79)+JVS(4075)*UV(80)+JVS(4076)*UV(81)& + &+JVS(4077)*UV(82)+JVS(4078)*UV(83)+JVS(4079)*UV(84)+JVS(4080)*UV(85)+JVS(4081)*UV(86)+JVS(4082)*UV(87)& + &+JVS(4083)*UV(88)+JVS(4084)*UV(89)+JVS(4085)*UV(90)+JVS(4086)*UV(91)+JVS(4087)*UV(93)+JVS(4088)*UV(94)& + &+JVS(4089)*UV(95)+JVS(4090)*UV(96)+JVS(4091)*UV(97)+JVS(4092)*UV(100)+JVS(4093)*UV(101)+JVS(4094)*UV(102)& + &+JVS(4095)*UV(104)+JVS(4096)*UV(105)+JVS(4097)*UV(106)+JVS(4098)*UV(107)+JVS(4099)*UV(109)+JVS(4100)*UV(110)& + &+JVS(4101)*UV(111)+JVS(4102)*UV(112)+JVS(4103)*UV(113)+JVS(4104)*UV(114)+JVS(4105)*UV(115)+JVS(4106)*UV(116)& + &+JVS(4107)*UV(117)+JVS(4108)*UV(118)+JVS(4109)*UV(119)+JVS(4110)*UV(120)+JVS(4111)*UV(121)+JVS(4112)*UV(122)& + &+JVS(4113)*UV(123)+JVS(4114)*UV(124)+JVS(4115)*UV(125)+JVS(4116)*UV(127)+JVS(4117)*UV(128)+JVS(4118)*UV(129)& + &+JVS(4119)*UV(130)+JVS(4120)*UV(131)+JVS(4121)*UV(132)+JVS(4122)*UV(133)+JVS(4123)*UV(134)+JVS(4124)*UV(136)& + &+JVS(4125)*UV(137)+JVS(4126)*UV(139)+JVS(4127)*UV(140)+JVS(4128)*UV(141)+JVS(4129)*UV(142)+JVS(4130)*UV(143)& + &+JVS(4131)*UV(144)+JVS(4132)*UV(145)+JVS(4133)*UV(146)+JVS(4135)*UV(148)+JVS(4136)*UV(149)+JVS(4137)*UV(150)& + &+JVS(4138)*UV(151)+JVS(4139)*UV(152)+JVS(4140)*UV(153)+JVS(4141)*UV(154)+JVS(4142)*UV(155)+JVS(4143)*UV(156)& + &+JVS(4144)*UV(157)+JVS(4145)*UV(158)+JVS(4146)*UV(159)+JVS(4147)*UV(161)+JVS(4148)*UV(162)+JVS(4149)*UV(163)& + &+JVS(4150)*UV(164)+JVS(4151)*UV(165)+JVS(4152)*UV(166)+JVS(4153)*UV(167)+JVS(4154)*UV(168)+JVS(4155)*UV(169)& + &+JVS(4156)*UV(170)+JVS(4157)*UV(171)+JVS(4158)*UV(172)+JVS(4159)*UV(175)+JVS(4161)*UV(177)+JVS(4162)*UV(178)& + &+JVS(4164)*UV(180)+JVS(4165)*UV(181)+JVS(4166)*UV(182)+JVS(4167)*UV(183)+JVS(4168)*UV(184)+JVS(4169)*UV(186)& + &+JVS(4170)*UV(187)+JVS(4171)*UV(188)+JVS(4172)*UV(189)+JVS(4173)*UV(190)+JVS(4175)*UV(192)+JVS(4176)*UV(193)& + &+JVS(4177)*UV(194)+JVS(4179)*UV(196)+JVS(4180)*UV(197)+JVS(4181)*UV(198)+JVS(4182)*UV(199)+JVS(4183)*UV(200)& + &+JVS(4185)*UV(202)+JVS(4187)*UV(204)+JVS(4188)*UV(205)+JVS(4189)*UV(206)+JVS(4190)*UV(207)+JVS(4191)*UV(208)& + &+JVS(4193)*UV(210)+JVS(4194)*UV(211)+JVS(4195)*UV(212)+JVS(4196)*UV(213)+JVS(4197)*UV(214)+JVS(4201)*UV(218)& + &+JVS(4202)*UV(219)+JVS(4203)*UV(220)+JVS(4204)*UV(221)+JVS(4205)*UV(222)+JVS(4206)*UV(223)+JVS(4207)*UV(224)& + &+JVS(4209)*UV(226)+JVS(4211)*UV(228)+JVS(4212)*UV(229)+JVS(4213)*UV(230)+JVS(4214)*UV(231)+JVS(4215)*UV(232)& + &+JVS(4216)*UV(233)+JVS(4218)*UV(235)+JVS(4219)*UV(236)+JVS(4223)*UV(240)+JVS(4224)*UV(241)+JVS(4225)*UV(242)& + &+JVS(4226)*UV(243)+JVS(4227)*UV(244)+JVS(4228)*UV(245)+JVS(4230)*UV(247)+JVS(4231)*UV(248)+JVS(4232)*UV(249)& + &+JVS(4233)*UV(250)+JVS(4234)*UV(251)+JVS(4235)*UV(252)+JVS(4236)*UV(253)+JVS(4237)*UV(254)+JVS(4238)*UV(255)& + &+JVS(4242)*UV(259)+JVS(4243)*UV(260)+JVS(4244)*UV(261)+JVS(4245)*UV(262)+JVS(4246)*UV(263)+JVS(4247)*UV(264)& + &+JVS(4248)*UV(265)+JVS(4249)*UV(266)+JVS(4250)*UV(267)+JVS(4251)*UV(268)+JVS(4254)*UV(271)+JVS(4255)*UV(272)& + &+JVS(4257)*UV(274)+JVS(4258)*UV(275)+JVS(4259)*UV(276)+JVS(4261)*UV(278)+JVS(4262)*UV(279)+JVS(4263)*UV(280)& + &+JVS(4264)*UV(281)+JVS(4265)*UV(282)+JVS(4267)*UV(284)+JVS(4268)*UV(285)+JVS(4269)*UV(286)+JVS(4270)*UV(287)& + &+JVS(4271)*UV(288)+JVS(4272)*UV(289)+JVS(4273)*UV(290)+JVS(4274)*UV(291) + JUV(287) = JVS(4275)*UV(138)+JVS(4276)*UV(173)+JVS(4277)*UV(203)+JVS(4278)*UV(235)+JVS(4279)*UV(260)+JVS(4280)*UV(262)& + &+JVS(4284)*UV(268)+JVS(4286)*UV(270)+JVS(4287)*UV(271)+JVS(4291)*UV(275)+JVS(4302)*UV(286)+JVS(4303)*UV(287) + JUV(288) = JVS(4308)*UV(47)+JVS(4309)*UV(48)+JVS(4310)*UV(52)+JVS(4311)*UV(53)+JVS(4312)*UV(54)+JVS(4313)*UV(55)& + &+JVS(4314)*UV(56)+JVS(4315)*UV(57)+JVS(4316)*UV(59)+JVS(4317)*UV(65)+JVS(4318)*UV(66)+JVS(4319)*UV(71)& + &+JVS(4320)*UV(77)+JVS(4321)*UV(81)+JVS(4322)*UV(82)+JVS(4323)*UV(83)+JVS(4324)*UV(84)+JVS(4325)*UV(111)& + &+JVS(4326)*UV(149)+JVS(4327)*UV(177)+JVS(4329)*UV(197)+JVS(4330)*UV(212)+JVS(4332)*UV(227)+JVS(4338)*UV(260)& + &+JVS(4340)*UV(262)+JVS(4341)*UV(263)+JVS(4349)*UV(272)+JVS(4351)*UV(274)+JVS(4352)*UV(275)+JVS(4356)*UV(279)& + &+JVS(4358)*UV(281)+JVS(4359)*UV(282)+JVS(4361)*UV(284)+JVS(4362)*UV(285)+JVS(4363)*UV(286)+JVS(4365)*UV(288)& + &+JVS(4366)*UV(289)+JVS(4368)*UV(291) + JUV(289) = JVS(4369)*UV(124)+JVS(4370)*UV(161)+JVS(4371)*UV(221)+JVS(4372)*UV(235)+JVS(4374)*UV(253)+JVS(4380)*UV(260)& + &+JVS(4382)*UV(262)+JVS(4383)*UV(263)+JVS(4384)*UV(264)+JVS(4387)*UV(271)+JVS(4388)*UV(272)+JVS(4389)*UV(273)& + &+JVS(4392)*UV(276)+JVS(4398)*UV(282)+JVS(4400)*UV(284)+JVS(4402)*UV(286)+JVS(4404)*UV(288)+JVS(4405)*UV(289) + JUV(290) = JVS(4408)*UV(3)+JVS(4409)*UV(43)+JVS(4410)*UV(52)+JVS(4411)*UV(53)+JVS(4412)*UV(54)+JVS(4413)*UV(55)& + &+JVS(4414)*UV(56)+JVS(4415)*UV(57)+JVS(4416)*UV(59)+JVS(4417)*UV(72)+JVS(4418)*UV(75)+JVS(4419)*UV(78)& + &+JVS(4420)*UV(81)+JVS(4421)*UV(82)+JVS(4422)*UV(83)+JVS(4423)*UV(84)+JVS(4424)*UV(99)+JVS(4425)*UV(103)& + &+JVS(4426)*UV(114)+JVS(4427)*UV(124)+JVS(4428)*UV(133)+JVS(4429)*UV(135)+JVS(4430)*UV(137)+JVS(4431)*UV(149)& + &+JVS(4432)*UV(161)+JVS(4434)*UV(190)+JVS(4435)*UV(197)+JVS(4437)*UV(211)+JVS(4438)*UV(212)+JVS(4439)*UV(217)& + &+JVS(4440)*UV(218)+JVS(4441)*UV(219)+JVS(4442)*UV(221)+JVS(4443)*UV(224)+JVS(4445)*UV(227)+JVS(4447)*UV(235)& + &+JVS(4451)*UV(239)+JVS(4465)*UV(253)+JVS(4474)*UV(262)+JVS(4475)*UV(263)+JVS(4477)*UV(266)+JVS(4482)*UV(271)& + &+JVS(4483)*UV(272)+JVS(4486)*UV(275)+JVS(4490)*UV(279)+JVS(4493)*UV(282)+JVS(4495)*UV(284)+JVS(4496)*UV(285)& + &+JVS(4497)*UV(286)+JVS(4499)*UV(288)+JVS(4501)*UV(290) + JUV(291) = JVS(4503)*UV(50)+JVS(4504)*UV(51)+JVS(4505)*UV(62)+JVS(4506)*UV(63)+JVS(4507)*UV(65)+JVS(4508)*UV(67)& + &+JVS(4509)*UV(68)+JVS(4510)*UV(74)+JVS(4511)*UV(87)+JVS(4512)*UV(89)+JVS(4513)*UV(91)+JVS(4514)*UV(92)& + &+JVS(4515)*UV(96)+JVS(4516)*UV(97)+JVS(4517)*UV(102)+JVS(4518)*UV(113)+JVS(4519)*UV(121)+JVS(4520)*UV(123)& + &+JVS(4521)*UV(134)+JVS(4523)*UV(139)+JVS(4524)*UV(140)+JVS(4525)*UV(144)+JVS(4526)*UV(145)+JVS(4527)*UV(146)& + &+JVS(4529)*UV(150)+JVS(4530)*UV(151)+JVS(4531)*UV(152)+JVS(4532)*UV(153)+JVS(4533)*UV(160)+JVS(4534)*UV(166)& + &+JVS(4535)*UV(167)+JVS(4536)*UV(168)+JVS(4537)*UV(173)+JVS(4538)*UV(176)+JVS(4539)*UV(178)+JVS(4540)*UV(179)& + &+JVS(4541)*UV(180)+JVS(4542)*UV(181)+JVS(4543)*UV(182)+JVS(4544)*UV(183)+JVS(4545)*UV(184)+JVS(4547)*UV(187)& + &+JVS(4549)*UV(189)+JVS(4550)*UV(191)+JVS(4551)*UV(193)+JVS(4552)*UV(194)+JVS(4553)*UV(195)+JVS(4554)*UV(198)& + &+JVS(4555)*UV(199)+JVS(4556)*UV(200)+JVS(4557)*UV(201)+JVS(4558)*UV(202)+JVS(4559)*UV(203)+JVS(4560)*UV(204)& + &+JVS(4561)*UV(205)+JVS(4562)*UV(207)+JVS(4563)*UV(208)+JVS(4564)*UV(209)+JVS(4565)*UV(210)+JVS(4566)*UV(213)& + &+JVS(4567)*UV(214)+JVS(4568)*UV(215)+JVS(4569)*UV(216)+JVS(4570)*UV(217)+JVS(4571)*UV(220)+JVS(4572)*UV(222)& + &+JVS(4574)*UV(225)+JVS(4575)*UV(227)+JVS(4576)*UV(228)+JVS(4577)*UV(229)+JVS(4578)*UV(232)+JVS(4579)*UV(234)& + &+JVS(4580)*UV(235)+JVS(4581)*UV(237)+JVS(4582)*UV(238)+JVS(4583)*UV(239)+JVS(4584)*UV(240)+JVS(4585)*UV(241)& + &+JVS(4586)*UV(242)+JVS(4587)*UV(243)+JVS(4588)*UV(244)+JVS(4589)*UV(245)+JVS(4590)*UV(246)+JVS(4591)*UV(247)& + &+JVS(4593)*UV(249)+JVS(4595)*UV(252)+JVS(4597)*UV(254)+JVS(4598)*UV(255)+JVS(4599)*UV(256)+JVS(4600)*UV(257)& + &+JVS(4601)*UV(258)+JVS(4603)*UV(261)+JVS(4604)*UV(262)+JVS(4606)*UV(265)+JVS(4607)*UV(266)+JVS(4610)*UV(269)& + &+JVS(4611)*UV(270)+JVS(4613)*UV(273)+JVS(4614)*UV(274)+JVS(4619)*UV(279)+JVS(4621)*UV(281)+JVS(4622)*UV(282)& + &+JVS(4624)*UV(284)+JVS(4625)*UV(285)+JVS(4626)*UV(286)+JVS(4628)*UV(288)+JVS(4631)*UV(291) END SUBROUTINE Jac_SP_Vec @@ -17746,750 +17827,763 @@ SUBROUTINE JacTR_SP_Vec ( JVS, UV, JTUV ) ! JTUV - Jacobian transposed times user vector REAL(kind=dp) :: JTUV(NVAR) - JTUV(1) = JVS(1)*UV(1)+JVS(3030)*UV(265) - JTUV(2) = JVS(2)*UV(2)+JVS(3031)*UV(265)+JVS(4204)*UV(282) - JTUV(3) = JVS(3)*UV(3)+JVS(3032)*UV(265)+JVS(4353)*UV(285) + JTUV(1) = JVS(1)*UV(1)+JVS(3077)*UV(269) + JTUV(2) = JVS(2)*UV(2)+JVS(3078)*UV(269)+JVS(3206)*UV(273) + JTUV(3) = JVS(3)*UV(3)+JVS(3079)*UV(269)+JVS(4408)*UV(290) JTUV(4) = JVS(4)*UV(4) JTUV(5) = JVS(9)*UV(5) JTUV(6) = JVS(11)*UV(6) - JTUV(7) = JVS(44)*UV(7) - JTUV(8) = JVS(47)*UV(8) - JTUV(9) = JVS(52)*UV(9) - JTUV(10) = JVS(57)*UV(10) - JTUV(11) = JVS(60)*UV(11) - JTUV(12) = JVS(58)*UV(10)+JVS(61)*UV(11)+JVS(63)*UV(12) - JTUV(13) = JVS(68)*UV(13) - JTUV(14) = JVS(71)*UV(14) - JTUV(15) = JVS(74)*UV(15) - JTUV(16) = JVS(77)*UV(16) - JTUV(17) = JVS(75)*UV(15)+JVS(78)*UV(16)+JVS(80)*UV(17) - JTUV(18) = JVS(81)*UV(17)+JVS(85)*UV(18) - JTUV(19) = JVS(87)*UV(19) - JTUV(20) = JVS(90)*UV(20) - JTUV(21) = JVS(88)*UV(19)+JVS(91)*UV(20)+JVS(93)*UV(21) - JTUV(22) = JVS(98)*UV(22) - JTUV(23) = JVS(99)*UV(22)+JVS(100)*UV(23) - JTUV(24) = JVS(106)*UV(24) - JTUV(25) = JVS(109)*UV(25) - JTUV(26) = JVS(107)*UV(24)+JVS(110)*UV(25)+JVS(112)*UV(26) - JTUV(27) = JVS(117)*UV(27) - JTUV(28) = JVS(120)*UV(28) - JTUV(29) = JVS(124)*UV(29) - JTUV(30) = JVS(128)*UV(30) - JTUV(31) = JVS(134)*UV(31) - JTUV(32) = JVS(220)*UV(32) - JTUV(33) = JVS(318)*UV(33) - JTUV(34) = JVS(392)*UV(34) - JTUV(35) = JVS(397)*UV(35) - JTUV(36) = JVS(408)*UV(36) - JTUV(37) = JVS(413)*UV(37) - JTUV(38) = JVS(5)*UV(4)+JVS(48)*UV(8)+JVS(53)*UV(9)+JVS(221)*UV(32)+JVS(425)*UV(38)+JVS(582)*UV(90) - JTUV(39) = JVS(427)*UV(39)+JVS(3157)*UV(269)+JVS(3847)*UV(279)+JVS(4354)*UV(285) - JTUV(40) = JVS(6)*UV(4)+JVS(49)*UV(8)+JVS(54)*UV(9)+JVS(222)*UV(32)+JVS(429)*UV(40)+JVS(583)*UV(90)+JVS(1761)*UV(223)& - &+JVS(3033)*UV(265) - JTUV(41) = JVS(45)*UV(7)+JVS(135)*UV(31)+JVS(431)*UV(41)+JVS(2722)*UV(260) - JTUV(42) = JVS(435)*UV(42)+JVS(3109)*UV(268)+JVS(3617)*UV(273)+JVS(4293)*UV(284)+JVS(4355)*UV(285) - JTUV(43) = JVS(437)*UV(43)+JVS(2948)*UV(263)+JVS(3034)*UV(265)+JVS(3158)*UV(269)+JVS(3848)*UV(279) - JTUV(44) = JVS(439)*UV(44)+JVS(3110)*UV(268)+JVS(3670)*UV(274)+JVS(4205)*UV(282)+JVS(4294)*UV(284) - JTUV(45) = JVS(441)*UV(45)+JVS(3111)*UV(268)+JVS(3671)*UV(274)+JVS(4206)*UV(282)+JVS(4295)*UV(284) - JTUV(46) = JVS(443)*UV(46)+JVS(3112)*UV(268)+JVS(3618)*UV(273)+JVS(4296)*UV(284)+JVS(4356)*UV(285) - JTUV(47) = JVS(7)*UV(4)+JVS(50)*UV(8)+JVS(55)*UV(9)+JVS(223)*UV(32)+JVS(445)*UV(47)+JVS(584)*UV(90)+JVS(1762)*UV(223) - JTUV(48) = JVS(448)*UV(48)+JVS(3113)*UV(268)+JVS(3619)*UV(273)+JVS(4297)*UV(284)+JVS(4357)*UV(285) - JTUV(49) = JVS(450)*UV(49)+JVS(2397)*UV(250)+JVS(3372)*UV(270) - JTUV(50) = JVS(453)*UV(50)+JVS(3373)*UV(270)+JVS(4207)*UV(282) - JTUV(51) = JVS(456)*UV(51)+JVS(3114)*UV(268)+JVS(3620)*UV(273)+JVS(4298)*UV(284)+JVS(4358)*UV(285) - JTUV(52) = JVS(458)*UV(52)+JVS(3115)*UV(268)+JVS(3621)*UV(273)+JVS(4299)*UV(284)+JVS(4359)*UV(285) - JTUV(53) = JVS(460)*UV(53)+JVS(3116)*UV(268)+JVS(3622)*UV(273)+JVS(4300)*UV(284)+JVS(4360)*UV(285) - JTUV(54) = JVS(319)*UV(33)+JVS(462)*UV(54)+JVS(1484)*UV(207)+JVS(1669)*UV(218)+JVS(2611)*UV(258)+JVS(3159)*UV(269)& - &+JVS(4033)*UV(281) - JTUV(55) = JVS(464)*UV(55)+JVS(3117)*UV(268)+JVS(3623)*UV(273)+JVS(3672)*UV(274)+JVS(4208)*UV(282)+JVS(4301)*UV(284)& - &+JVS(4361)*UV(285) - JTUV(56) = JVS(466)*UV(56)+JVS(866)*UV(140)+JVS(3035)*UV(265)+JVS(3935)*UV(280) - JTUV(57) = JVS(136)*UV(31)+JVS(224)*UV(32)+JVS(469)*UV(57)+JVS(3118)*UV(268)+JVS(3936)*UV(280) - JTUV(58) = JVS(137)*UV(31)+JVS(473)*UV(58)+JVS(1242)*UV(188)+JVS(3374)*UV(270) - JTUV(59) = JVS(138)*UV(31)+JVS(477)*UV(59)+JVS(1243)*UV(188)+JVS(3375)*UV(270) - JTUV(60) = JVS(64)*UV(12)+JVS(320)*UV(33)+JVS(481)*UV(60)+JVS(726)*UV(117)+JVS(958)*UV(155)+JVS(1151)*UV(178)& - &+JVS(1670)*UV(218)+JVS(2612)*UV(258)+JVS(3160)*UV(269)+JVS(4034)*UV(281) - JTUV(61) = JVS(139)*UV(31)+JVS(470)*UV(57)+JVS(483)*UV(61)+JVS(3376)*UV(270)+JVS(3937)*UV(280)+JVS(4302)*UV(284) - JTUV(62) = JVS(12)*UV(6)+JVS(225)*UV(32)+JVS(321)*UV(33)+JVS(486)*UV(62)+JVS(2613)*UV(258)+JVS(3161)*UV(269)+JVS(4303)& - &*UV(284)+JVS(4448)*UV(286) - JTUV(63) = JVS(140)*UV(31)+JVS(489)*UV(63)+JVS(2538)*UV(257)+JVS(2949)*UV(263)+JVS(3377)*UV(270)+JVS(4490)*UV(287) - JTUV(64) = JVS(141)*UV(31)+JVS(492)*UV(64)+JVS(1984)*UV(232)+JVS(3162)*UV(269)+JVS(3378)*UV(270) - JTUV(65) = JVS(8)*UV(4)+JVS(51)*UV(8)+JVS(56)*UV(9)+JVS(496)*UV(65)+JVS(3036)*UV(265)+JVS(3163)*UV(269)+JVS(3849)& - &*UV(279) - JTUV(66) = JVS(500)*UV(66)+JVS(2539)*UV(257)+JVS(2950)*UV(263)+JVS(3164)*UV(269) - JTUV(67) = JVS(13)*UV(6)+JVS(504)*UV(67)+JVS(1135)*UV(176)+JVS(1229)*UV(187)+JVS(3165)*UV(269) - JTUV(68) = JVS(322)*UV(33)+JVS(508)*UV(68)+JVS(2614)*UV(258)+JVS(3166)*UV(269)+JVS(3502)*UV(271)+JVS(4035)*UV(281)& - &+JVS(4362)*UV(285) - JTUV(69) = JVS(511)*UV(69)+JVS(3037)*UV(265)+JVS(4209)*UV(282) - JTUV(70) = JVS(517)*UV(70)+JVS(3120)*UV(268)+JVS(3167)*UV(269)+JVS(3673)*UV(274)+JVS(4210)*UV(282)+JVS(4304)*UV(284) - JTUV(71) = JVS(142)*UV(31)+JVS(520)*UV(71)+JVS(2844)*UV(262)+JVS(2951)*UV(263)+JVS(3379)*UV(270)+JVS(4036)*UV(281)& - &+JVS(4491)*UV(287) - JTUV(72) = JVS(226)*UV(32)+JVS(523)*UV(72)+JVS(652)*UV(103)+JVS(3078)*UV(267)+JVS(3168)*UV(269)+JVS(3624)*UV(273)& - &+JVS(4363)*UV(285) - JTUV(73) = JVS(323)*UV(33)+JVS(526)*UV(73)+JVS(2615)*UV(258)+JVS(3169)*UV(269)+JVS(3503)*UV(271)+JVS(4037)*UV(281)& - &+JVS(4364)*UV(285) - JTUV(74) = JVS(529)*UV(74)+JVS(3121)*UV(268)+JVS(3170)*UV(269)+JVS(3674)*UV(274)+JVS(4211)*UV(282)+JVS(4305)*UV(284) - JTUV(75) = JVS(227)*UV(32)+JVS(532)*UV(75)+JVS(1126)*UV(175)+JVS(1957)*UV(230)+JVS(2845)*UV(262)+JVS(3171)*UV(269)& - &+JVS(3754)*UV(277) - JTUV(76) = JVS(94)*UV(21)+JVS(324)*UV(33)+JVS(535)*UV(76)+JVS(634)*UV(99)+JVS(687)*UV(109)+JVS(896)*UV(145)+JVS(959)& - &*UV(155)+JVS(1152)*UV(178)+JVS(1671)*UV(218)+JVS(1882)*UV(228)+JVS(2227)*UV(244)+JVS(2616)*UV(258)+JVS(3172)& - &*UV(269)+JVS(4038)*UV(281) - JTUV(77) = JVS(113)*UV(26)+JVS(325)*UV(33)+JVS(537)*UV(77)+JVS(635)*UV(99)+JVS(688)*UV(109)+JVS(897)*UV(145)+JVS(960)& - &*UV(155)+JVS(1153)*UV(178)+JVS(1672)*UV(218)+JVS(1883)*UV(228)+JVS(2228)*UV(244)+JVS(2617)*UV(258)+JVS(3173)& - &*UV(269)+JVS(4039)*UV(281) - JTUV(78) = JVS(539)*UV(78)+JVS(3122)*UV(268)+JVS(3174)*UV(269)+JVS(3625)*UV(273)+JVS(3850)*UV(279)+JVS(4306)*UV(284)& - &+JVS(4365)*UV(285) - JTUV(79) = JVS(542)*UV(79)+JVS(3123)*UV(268)+JVS(3175)*UV(269)+JVS(3626)*UV(273)+JVS(3851)*UV(279)+JVS(4307)*UV(284)& - &+JVS(4366)*UV(285) - JTUV(80) = JVS(545)*UV(80)+JVS(3124)*UV(268)+JVS(3176)*UV(269)+JVS(3627)*UV(273)+JVS(3852)*UV(279)+JVS(4308)*UV(284)& - &+JVS(4367)*UV(285) - JTUV(81) = JVS(228)*UV(32)+JVS(548)*UV(81)+JVS(3125)*UV(268)+JVS(3177)*UV(269)+JVS(3628)*UV(273)+JVS(3853)*UV(279)& - &+JVS(4309)*UV(284)+JVS(4368)*UV(285) - JTUV(82) = JVS(118)*UV(27)+JVS(229)*UV(32)+JVS(551)*UV(82)+JVS(2723)*UV(260)+JVS(2846)*UV(262)+JVS(2952)*UV(263)& - &+JVS(3178)*UV(269)+JVS(4449)*UV(286)+JVS(4492)*UV(287) - JTUV(83) = JVS(554)*UV(83)+JVS(1485)*UV(207)+JVS(2847)*UV(262)+JVS(3179)*UV(269)+JVS(4040)*UV(281) - JTUV(84) = JVS(129)*UV(30)+JVS(558)*UV(84)+JVS(1486)*UV(207)+JVS(1884)*UV(228)+JVS(2540)*UV(257)+JVS(3180)*UV(269) - JTUV(85) = JVS(398)*UV(35)+JVS(562)*UV(85)+JVS(735)*UV(119)+JVS(2848)*UV(262)+JVS(3181)*UV(269)+JVS(4450)*UV(286) - JTUV(86) = JVS(143)*UV(31)+JVS(566)*UV(86)+JVS(1711)*UV(219)+JVS(3182)*UV(269)+JVS(3380)*UV(270)+JVS(4041)*UV(281) - JTUV(87) = JVS(144)*UV(31)+JVS(570)*UV(87)+JVS(2849)*UV(262)+JVS(3183)*UV(269)+JVS(3381)*UV(270)+JVS(4042)*UV(281) - JTUV(88) = JVS(145)*UV(31)+JVS(574)*UV(88)+JVS(2811)*UV(261)+JVS(3184)*UV(269)+JVS(3382)*UV(270)+JVS(4043)*UV(281) - JTUV(89) = JVS(146)*UV(31)+JVS(578)*UV(89)+JVS(2483)*UV(255)+JVS(3185)*UV(269)+JVS(3383)*UV(270)+JVS(4044)*UV(281) - JTUV(90) = JVS(230)*UV(32)+JVS(426)*UV(38)+JVS(446)*UV(47)+JVS(585)*UV(90)+JVS(1763)*UV(223)+JVS(3038)*UV(265)& - &+JVS(3384)*UV(270)+JVS(3938)*UV(280) - JTUV(91) = JVS(589)*UV(91)+JVS(2432)*UV(252)+JVS(2484)*UV(255)+JVS(3186)*UV(269)+JVS(4045)*UV(281) - JTUV(92) = JVS(593)*UV(92)+JVS(2030)*UV(233)+JVS(2485)*UV(255)+JVS(3187)*UV(269)+JVS(4046)*UV(281) - JTUV(93) = JVS(597)*UV(93)+JVS(1712)*UV(219)+JVS(2449)*UV(253)+JVS(3188)*UV(269)+JVS(4047)*UV(281) - JTUV(94) = JVS(601)*UV(94)+JVS(2398)*UV(250)+JVS(2812)*UV(261)+JVS(3189)*UV(269)+JVS(4048)*UV(281) - JTUV(95) = JVS(14)*UV(6)+JVS(147)*UV(31)+JVS(605)*UV(95)+JVS(665)*UV(105)+JVS(1136)*UV(176)+JVS(3190)*UV(269)& - &+JVS(3385)*UV(270) - JTUV(96) = JVS(46)*UV(7)+JVS(148)*UV(31)+JVS(609)*UV(96)+JVS(2724)*UV(260) - JTUV(97) = JVS(231)*UV(32)+JVS(623)*UV(97)+JVS(2953)*UV(263)+JVS(3126)*UV(268)+JVS(3191)*UV(269)+JVS(3675)*UV(274)& - &+JVS(3854)*UV(279)+JVS(4049)*UV(281)+JVS(4212)*UV(282) - JTUV(98) = JVS(626)*UV(98)+JVS(3039)*UV(265)+JVS(4369)*UV(285) - JTUV(99) = JVS(232)*UV(32)+JVS(326)*UV(33)+JVS(636)*UV(99)+JVS(1137)*UV(176)+JVS(1230)*UV(187)+JVS(2618)*UV(258)& - &+JVS(2725)*UV(260)+JVS(3192)*UV(269)+JVS(4050)*UV(281)+JVS(4493)*UV(287) - JTUV(100) = JVS(327)*UV(33)+JVS(639)*UV(100)+JVS(2619)*UV(258)+JVS(2954)*UV(263)+JVS(3193)*UV(269)+JVS(3504)*UV(271)& - &+JVS(3855)*UV(279)+JVS(4051)*UV(281)+JVS(4370)*UV(285) - JTUV(101) = JVS(149)*UV(31)+JVS(642)*UV(101)+JVS(3194)*UV(269)+JVS(3386)*UV(270)+JVS(3856)*UV(279)+JVS(4052)*UV(281)& - &+JVS(4494)*UV(287) - JTUV(102) = JVS(646)*UV(102)+JVS(1985)*UV(232)+JVS(2850)*UV(262)+JVS(4053)*UV(281) - JTUV(103) = JVS(150)*UV(31)+JVS(653)*UV(103)+JVS(1294)*UV(192)+JVS(3629)*UV(273)+JVS(4371)*UV(285) - JTUV(104) = JVS(15)*UV(6)+JVS(125)*UV(29)+JVS(659)*UV(104)+JVS(2541)*UV(257)+JVS(3195)*UV(269)+JVS(4054)*UV(281) - JTUV(105) = JVS(666)*UV(105)+JVS(968)*UV(156)+JVS(1231)*UV(187)+JVS(3196)*UV(269) - JTUV(106) = JVS(328)*UV(33)+JVS(672)*UV(106)+JVS(932)*UV(152)+JVS(2620)*UV(258)+JVS(3197)*UV(269)+JVS(4055)*UV(281) - JTUV(107) = JVS(233)*UV(32)+JVS(677)*UV(107)+JVS(3079)*UV(267)+JVS(3198)*UV(269)+JVS(3630)*UV(273)+JVS(4310)*UV(284) - JTUV(108) = JVS(682)*UV(108)+JVS(2060)*UV(235)+JVS(2813)*UV(261)+JVS(3199)*UV(269)+JVS(4056)*UV(281) - JTUV(109) = JVS(234)*UV(32)+JVS(689)*UV(109)+JVS(854)*UV(138)+JVS(898)*UV(145)+JVS(969)*UV(156)+JVS(1154)*UV(178)& - &+JVS(1470)*UV(206)+JVS(2726)*UV(260)+JVS(3200)*UV(269)+JVS(4057)*UV(281)+JVS(4495)*UV(287) - JTUV(110) = JVS(692)*UV(110)+JVS(1443)*UV(204)+JVS(2272)*UV(246)+JVS(2814)*UV(261)+JVS(2851)*UV(262)+JVS(3201)*UV(269)& - &+JVS(4058)*UV(281) - JTUV(111) = JVS(696)*UV(111)+JVS(1324)*UV(194)+JVS(1373)*UV(197)+JVS(2486)*UV(255)+JVS(3202)*UV(269)+JVS(3387)*UV(270)& - &+JVS(4059)*UV(281) - JTUV(112) = JVS(235)*UV(32)+JVS(700)*UV(112)+JVS(2433)*UV(252)+JVS(2727)*UV(260)+JVS(3203)*UV(269)+JVS(3505)*UV(271)& - &+JVS(4372)*UV(285)+JVS(4496)*UV(287) - JTUV(113) = JVS(647)*UV(102)+JVS(704)*UV(113)+JVS(1127)*UV(175)+JVS(1986)*UV(232)+JVS(3204)*UV(269) - JTUV(114) = JVS(130)*UV(30)+JVS(709)*UV(114)+JVS(1062)*UV(170)+JVS(1274)*UV(190)+JVS(3205)*UV(269)+JVS(4061)*UV(281) - JTUV(115) = JVS(715)*UV(115)+JVS(1028)*UV(166)+JVS(1179)*UV(181)+JVS(3206)*UV(269)+JVS(4062)*UV(281) - JTUV(116) = JVS(16)*UV(6)+JVS(151)*UV(31)+JVS(721)*UV(116)+JVS(2329)*UV(247)+JVS(3207)*UV(269)+JVS(3388)*UV(270)& - &+JVS(3939)*UV(280)+JVS(4063)*UV(281) - JTUV(117) = JVS(236)*UV(32)+JVS(727)*UV(117)+JVS(855)*UV(138)+JVS(961)*UV(155)+JVS(970)*UV(156)+JVS(1155)*UV(178)& - &+JVS(1471)*UV(206)+JVS(1673)*UV(218)+JVS(2728)*UV(260)+JVS(3208)*UV(269)+JVS(4064)*UV(281)+JVS(4497)& - &*UV(287) - JTUV(118) = JVS(730)*UV(118)+JVS(1741)*UV(222)+JVS(2434)*UV(252)+JVS(2487)*UV(255)+JVS(3209)*UV(269)+JVS(4065)*UV(281) - JTUV(119) = JVS(736)*UV(119)+JVS(3210)*UV(269)+JVS(4451)*UV(286) - JTUV(120) = JVS(17)*UV(6)+JVS(152)*UV(31)+JVS(747)*UV(120)+JVS(2229)*UV(244)+JVS(3211)*UV(269)+JVS(3389)*UV(270)& - &+JVS(3940)*UV(280)+JVS(4066)*UV(281) - JTUV(121) = JVS(752)*UV(121)+JVS(2031)*UV(233)+JVS(2450)*UV(253)+JVS(3212)*UV(269)+JVS(3506)*UV(271)+JVS(3579)*UV(272)& - &+JVS(4213)*UV(282)+JVS(4373)*UV(285) - JTUV(122) = JVS(329)*UV(33)+JVS(756)*UV(122)+JVS(933)*UV(152)+JVS(1029)*UV(166)+JVS(1180)*UV(181)+JVS(1775)*UV(224)& - &+JVS(1795)*UV(225)+JVS(2621)*UV(258)+JVS(3213)*UV(269)+JVS(4067)*UV(281) - JTUV(123) = JVS(760)*UV(123)+JVS(1943)*UV(229)+JVS(2081)*UV(236)+JVS(4068)*UV(281) - JTUV(124) = JVS(330)*UV(33)+JVS(769)*UV(124)+JVS(1063)*UV(170)+JVS(1848)*UV(227)+JVS(2330)*UV(247)+JVS(2622)*UV(258)& - &+JVS(3214)*UV(269)+JVS(4069)*UV(281) - JTUV(125) = JVS(153)*UV(31)+JVS(774)*UV(125)+JVS(2520)*UV(256)+JVS(3215)*UV(269)+JVS(4214)*UV(282) - JTUV(126) = JVS(331)*UV(33)+JVS(783)*UV(126)+JVS(1064)*UV(170)+JVS(1815)*UV(226)+JVS(2230)*UV(244)+JVS(2623)*UV(258)& - &+JVS(3216)*UV(269)+JVS(4070)*UV(281) - JTUV(127) = JVS(131)*UV(30)+JVS(788)*UV(127)+JVS(1065)*UV(170)+JVS(1776)*UV(224)+JVS(1796)*UV(225)+JVS(3217)*UV(269)& - &+JVS(4071)*UV(281) - JTUV(128) = JVS(132)*UV(30)+JVS(794)*UV(128)+JVS(1066)*UV(170)+JVS(1777)*UV(224)+JVS(1797)*UV(225)+JVS(3218)*UV(269)& - &+JVS(4072)*UV(281) - JTUV(129) = JVS(800)*UV(129)+JVS(2815)*UV(261)+JVS(3219)*UV(269)+JVS(3507)*UV(271)+JVS(4073)*UV(281)+JVS(4374)*UV(285) - JTUV(130) = JVS(332)*UV(33)+JVS(806)*UV(130)+JVS(1181)*UV(181)+JVS(2273)*UV(246)+JVS(2624)*UV(258)+JVS(3220)*UV(269)& - &+JVS(4074)*UV(281) - JTUV(131) = JVS(154)*UV(31)+JVS(237)*UV(32)+JVS(432)*UV(41)+JVS(812)*UV(131)+JVS(2274)*UV(246)+JVS(3221)*UV(269)& - &+JVS(3390)*UV(270)+JVS(4498)*UV(287) - JTUV(132) = JVS(818)*UV(132)+JVS(4215)*UV(282)+JVS(4375)*UV(285) - JTUV(133) = JVS(18)*UV(6)+JVS(333)*UV(33)+JVS(559)*UV(84)+JVS(832)*UV(133)+JVS(1433)*UV(203)+JVS(2275)*UV(246)& - &+JVS(2542)*UV(257)+JVS(2625)*UV(258)+JVS(2853)*UV(262)+JVS(2955)*UV(263)+JVS(3222)*UV(269) - JTUV(134) = JVS(836)*UV(134)+JVS(2854)*UV(262)+JVS(2956)*UV(263)+JVS(3223)*UV(269)+JVS(3508)*UV(271)+JVS(3857)*UV(279)& - &+JVS(4075)*UV(281)+JVS(4376)*UV(285) - JTUV(135) = JVS(121)*UV(28)+JVS(238)*UV(32)+JVS(478)*UV(59)+JVS(841)*UV(135)+JVS(2730)*UV(260)+JVS(3509)*UV(271)& - &+JVS(3755)*UV(277)+JVS(4259)*UV(283)+JVS(4452)*UV(286) - JTUV(136) = JVS(239)*UV(32)+JVS(610)*UV(96)+JVS(789)*UV(127)+JVS(795)*UV(128)+JVS(846)*UV(136)+JVS(1008)*UV(162)& - &+JVS(2231)*UV(244)+JVS(2855)*UV(262)+JVS(3224)*UV(269)+JVS(3392)*UV(270)+JVS(4076)*UV(281) - JTUV(137) = JVS(240)*UV(32)+JVS(611)*UV(96)+JVS(790)*UV(127)+JVS(796)*UV(128)+JVS(850)*UV(137)+JVS(913)*UV(148)& - &+JVS(2331)*UV(247)+JVS(2856)*UV(262)+JVS(3225)*UV(269)+JVS(3393)*UV(270)+JVS(4077)*UV(281) - JTUV(138) = JVS(241)*UV(32)+JVS(856)*UV(138)+JVS(962)*UV(155)+JVS(971)*UV(156)+JVS(1156)*UV(178)+JVS(1472)*UV(206)& - &+JVS(1987)*UV(232)+JVS(2733)*UV(260)+JVS(3226)*UV(269)+JVS(3756)*UV(277)+JVS(4078)*UV(281)+JVS(4499)& - &*UV(287) - JTUV(139) = JVS(860)*UV(139)+JVS(991)*UV(159)+JVS(1418)*UV(202)+JVS(1988)*UV(232)+JVS(2276)*UV(246)+JVS(3227)*UV(269)& - &+JVS(4079)*UV(281) - JTUV(140) = JVS(155)*UV(31)+JVS(867)*UV(140)+JVS(3011)*UV(264)+JVS(3040)*UV(265)+JVS(3059)*UV(266)+JVS(3228)*UV(269)& - &+JVS(4500)*UV(287) - JTUV(141) = JVS(156)*UV(31)+JVS(874)*UV(141)+JVS(1396)*UV(200)+JVS(2097)*UV(237)+JVS(3229)*UV(269)+JVS(3394)*UV(270)& - &+JVS(3941)*UV(280)+JVS(4080)*UV(281) - JTUV(142) = JVS(157)*UV(31)+JVS(880)*UV(142)+JVS(1346)*UV(195)+JVS(1407)*UV(201)+JVS(3230)*UV(269)+JVS(3395)*UV(270)& - &+JVS(3942)*UV(280)+JVS(4081)*UV(281) - JTUV(143) = JVS(158)*UV(31)+JVS(886)*UV(143)+JVS(1325)*UV(194)+JVS(1453)*UV(205)+JVS(1989)*UV(232)+JVS(2151)*UV(239)& - &+JVS(3231)*UV(269)+JVS(3396)*UV(270)+JVS(3943)*UV(280)+JVS(4082)*UV(281) - JTUV(144) = JVS(242)*UV(32)+JVS(399)*UV(35)+JVS(474)*UV(58)+JVS(737)*UV(119)+JVS(891)*UV(144)+JVS(2734)*UV(260)& - &+JVS(3510)*UV(271)+JVS(3757)*UV(277)+JVS(3813)*UV(278)+JVS(4453)*UV(286) - JTUV(145) = JVS(243)*UV(32)+JVS(334)*UV(33)+JVS(899)*UV(145)+JVS(1488)*UV(207)+JVS(1626)*UV(215)+JVS(1886)*UV(228)& - &+JVS(1990)*UV(232)+JVS(2399)*UV(250)+JVS(2435)*UV(252)+JVS(2488)*UV(255)+JVS(2626)*UV(258)+JVS(3233)& - &*UV(269)+JVS(3758)*UV(277)+JVS(4083)*UV(281) - JTUV(146) = JVS(19)*UV(6)+JVS(159)*UV(31)+JVS(335)*UV(33)+JVS(903)*UV(146)+JVS(1326)*UV(194)+JVS(1454)*UV(205)& - &+JVS(2627)*UV(258)+JVS(3234)*UV(269)+JVS(3398)*UV(270)+JVS(3944)*UV(280)+JVS(4084)*UV(281) - JTUV(147) = JVS(244)*UV(32)+JVS(612)*UV(96)+JVS(761)*UV(123)+JVS(909)*UV(147)+JVS(1069)*UV(170)+JVS(1216)*UV(185)& - &+JVS(2082)*UV(236)+JVS(2125)*UV(238)+JVS(2185)*UV(241)+JVS(2197)*UV(242)+JVS(2212)*UV(243)+JVS(3235)& - &*UV(269)+JVS(3399)*UV(270)+JVS(4085)*UV(281) - JTUV(148) = JVS(160)*UV(31)+JVS(914)*UV(148)+JVS(1539)*UV(209)+JVS(2098)*UV(237)+JVS(2126)*UV(238)+JVS(2152)*UV(239)& - &+JVS(2857)*UV(262)+JVS(3236)*UV(269)+JVS(3400)*UV(270)+JVS(3945)*UV(280)+JVS(4086)*UV(281) - JTUV(149) = JVS(161)*UV(31)+JVS(336)*UV(33)+JVS(560)*UV(84)+JVS(919)*UV(149)+JVS(1434)*UV(203)+JVS(2277)*UV(246)& - &+JVS(2628)*UV(258)+JVS(3237)*UV(269)+JVS(3401)*UV(270)+JVS(4501)*UV(287) - JTUV(150) = JVS(245)*UV(32)+JVS(337)*UV(33)+JVS(414)*UV(37)+JVS(924)*UV(150)+JVS(1519)*UV(208)+JVS(1564)*UV(211)& - &+JVS(1576)*UV(212)+JVS(1742)*UV(222)+JVS(2050)*UV(234)+JVS(2382)*UV(249)+JVS(2489)*UV(255)+JVS(2629)& - &*UV(258)+JVS(3238)*UV(269)+JVS(3759)*UV(277)+JVS(4087)*UV(281)+JVS(4502)*UV(287) - JTUV(151) = JVS(246)*UV(32)+JVS(338)*UV(33)+JVS(415)*UV(37)+JVS(928)*UV(151)+JVS(1520)*UV(208)+JVS(1565)*UV(211)& - &+JVS(1577)*UV(212)+JVS(1743)*UV(222)+JVS(2051)*UV(234)+JVS(2383)*UV(249)+JVS(2490)*UV(255)+JVS(2630)& - &*UV(258)+JVS(3239)*UV(269)+JVS(3760)*UV(277)+JVS(4088)*UV(281)+JVS(4503)*UV(287) - JTUV(152) = JVS(339)*UV(33)+JVS(934)*UV(152)+JVS(1674)*UV(218)+JVS(1888)*UV(228)+JVS(2544)*UV(257)+JVS(2631)*UV(258)& - &+JVS(3240)*UV(269)+JVS(4089)*UV(281) - JTUV(153) = JVS(101)*UV(23)+JVS(340)*UV(33)+JVS(791)*UV(127)+JVS(797)*UV(128)+JVS(941)*UV(153)+JVS(1165)*UV(179)& - &+JVS(1202)*UV(183)+JVS(1816)*UV(226)+JVS(2198)*UV(242)+JVS(2232)*UV(244)+JVS(2632)*UV(258)+JVS(2858)& - &*UV(262)+JVS(3241)*UV(269)+JVS(4090)*UV(281) - JTUV(154) = JVS(945)*UV(154)+JVS(2491)*UV(255)+JVS(3242)*UV(269)+JVS(4091)*UV(281) - JTUV(155) = JVS(247)*UV(32)+JVS(341)*UV(33)+JVS(963)*UV(155)+JVS(1490)*UV(207)+JVS(1675)*UV(218)+JVS(1991)*UV(232)& - &+JVS(2400)*UV(250)+JVS(2492)*UV(255)+JVS(2633)*UV(258)+JVS(3243)*UV(269)+JVS(3761)*UV(277)+JVS(4092)& - &*UV(281) - JTUV(156) = JVS(248)*UV(32)+JVS(972)*UV(156)+JVS(1232)*UV(187)+JVS(1473)*UV(206)+JVS(3402)*UV(270)+JVS(3762)*UV(277) - JTUV(157) = JVS(249)*UV(32)+JVS(982)*UV(157)+JVS(1588)*UV(213)+JVS(2736)*UV(260)+JVS(3244)*UV(269)+JVS(3511)*UV(271)& - &+JVS(3580)*UV(272)+JVS(3858)*UV(279)+JVS(4216)*UV(282)+JVS(4377)*UV(285)+JVS(4504)*UV(287) - JTUV(158) = JVS(102)*UV(23)+JVS(342)*UV(33)+JVS(792)*UV(127)+JVS(798)*UV(128)+JVS(987)*UV(158)+JVS(1172)*UV(180)& - &+JVS(1203)*UV(183)+JVS(1275)*UV(190)+JVS(1849)*UV(227)+JVS(2213)*UV(243)+JVS(2332)*UV(247)+JVS(2634)& - &*UV(258)+JVS(2859)*UV(262)+JVS(3245)*UV(269)+JVS(4093)*UV(281) - JTUV(159) = JVS(20)*UV(6)+JVS(992)*UV(159)+JVS(1676)*UV(218)+JVS(1817)*UV(226)+JVS(1850)*UV(227)+JVS(1889)*UV(228)& - &+JVS(1992)*UV(232)+JVS(2278)*UV(246)+JVS(3246)*UV(269)+JVS(4094)*UV(281) - JTUV(160) = JVS(21)*UV(6)+JVS(343)*UV(33)+JVS(660)*UV(104)+JVS(998)*UV(160)+JVS(1182)*UV(181)+JVS(1491)*UV(207)& - &+JVS(1677)*UV(218)+JVS(1890)*UV(228)+JVS(2545)*UV(257)+JVS(2635)*UV(258)+JVS(3247)*UV(269)+JVS(4095)& - &*UV(281) - JTUV(161) = JVS(103)*UV(23)+JVS(344)*UV(33)+JVS(710)*UV(114)+JVS(770)*UV(124)+JVS(1004)*UV(161)+JVS(1173)*UV(180)& - &+JVS(1210)*UV(184)+JVS(1263)*UV(189)+JVS(1308)*UV(193)+JVS(1891)*UV(228)+JVS(2214)*UV(243)+JVS(2636)& - &*UV(258)+JVS(2860)*UV(262)+JVS(3248)*UV(269)+JVS(4096)*UV(281) - JTUV(162) = JVS(162)*UV(31)+JVS(1009)*UV(162)+JVS(1347)*UV(195)+JVS(1540)*UV(209)+JVS(1993)*UV(232)+JVS(2127)*UV(238)& - &+JVS(2153)*UV(239)+JVS(2279)*UV(246)+JVS(2861)*UV(262)+JVS(3249)*UV(269)+JVS(3403)*UV(270)+JVS(3946)& - &*UV(280)+JVS(4097)*UV(281) - JTUV(163) = JVS(163)*UV(31)+JVS(1014)*UV(163)+JVS(1455)*UV(205)+JVS(1541)*UV(209)+JVS(2099)*UV(237)+JVS(2128)*UV(238)& - &+JVS(2154)*UV(239)+JVS(2280)*UV(246)+JVS(2862)*UV(262)+JVS(3250)*UV(269)+JVS(3404)*UV(270)+JVS(3947)& - &*UV(280)+JVS(4098)*UV(281) - JTUV(164) = JVS(164)*UV(31)+JVS(1019)*UV(164)+JVS(1087)*UV(171)+JVS(1327)*UV(194)+JVS(1542)*UV(209)+JVS(1994)*UV(232)& - &+JVS(2129)*UV(238)+JVS(2155)*UV(239)+JVS(2863)*UV(262)+JVS(3251)*UV(269)+JVS(3405)*UV(270)+JVS(3948)& - &*UV(280)+JVS(4099)*UV(281) - JTUV(165) = JVS(250)*UV(32)+JVS(345)*UV(33)+JVS(416)*UV(37)+JVS(1024)*UV(165)+JVS(1492)*UV(207)+JVS(1521)*UV(208)& - &+JVS(1566)*UV(211)+JVS(1578)*UV(212)+JVS(1732)*UV(221)+JVS(2061)*UV(235)+JVS(2334)*UV(247)+JVS(2384)& - &*UV(249)+JVS(2470)*UV(254)+JVS(2637)*UV(258)+JVS(2864)*UV(262)+JVS(3252)*UV(269)+JVS(3763)*UV(277)& - &+JVS(4100)*UV(281)+JVS(4505)*UV(287) - JTUV(166) = JVS(346)*UV(33)+JVS(1030)*UV(166)+JVS(2546)*UV(257)+JVS(2638)*UV(258)+JVS(2865)*UV(262)+JVS(3253)*UV(269)& - &+JVS(4101)*UV(281) - JTUV(167) = JVS(104)*UV(23)+JVS(347)*UV(33)+JVS(711)*UV(114)+JVS(784)*UV(126)+JVS(1040)*UV(167)+JVS(1044)*UV(168)& - &+JVS(1166)*UV(179)+JVS(1196)*UV(182)+JVS(1264)*UV(189)+JVS(1892)*UV(228)+JVS(2199)*UV(242)+JVS(2547)& - &*UV(257)+JVS(2639)*UV(258)+JVS(2866)*UV(262)+JVS(3254)*UV(269)+JVS(4102)*UV(281) - JTUV(168) = JVS(348)*UV(33)+JVS(1045)*UV(168)+JVS(1678)*UV(218)+JVS(2640)*UV(258)+JVS(2867)*UV(262)+JVS(3255)*UV(269)& - &+JVS(4103)*UV(281) - JTUV(169) = JVS(251)*UV(32)+JVS(1055)*UV(169)+JVS(1972)*UV(231)+JVS(2737)*UV(260)+JVS(3406)*UV(270)+JVS(3512)*UV(271)& - &+JVS(3814)*UV(278)+JVS(3859)*UV(279)+JVS(4260)*UV(283)+JVS(4506)*UV(287) - JTUV(170) = JVS(133)*UV(30)+JVS(349)*UV(33)+JVS(1074)*UV(170)+JVS(1893)*UV(228)+JVS(2281)*UV(246)+JVS(2641)*UV(258)& - &+JVS(2868)*UV(262) - JTUV(171) = JVS(22)*UV(6)+JVS(252)*UV(32)+JVS(350)*UV(33)+JVS(613)*UV(96)+JVS(1088)*UV(171)+JVS(1328)*UV(194)& - &+JVS(2642)*UV(258)+JVS(3256)*UV(269)+JVS(4104)*UV(281) - JTUV(172) = JVS(253)*UV(32)+JVS(775)*UV(125)+JVS(819)*UV(132)+JVS(1099)*UV(172)+JVS(2521)*UV(256)+JVS(2739)*UV(260)& - &+JVS(3407)*UV(270)+JVS(3513)*UV(271)+JVS(3676)*UV(274)+JVS(3860)*UV(279)+JVS(4217)*UV(282)+JVS(4507)& - &*UV(287) - JTUV(173) = JVS(165)*UV(31)+JVS(254)*UV(32)+JVS(1105)*UV(173)+JVS(3258)*UV(269)+JVS(3764)*UV(277)+JVS(3861)*UV(279)& - &+JVS(4105)*UV(281)+JVS(4311)*UV(284) - JTUV(174) = JVS(255)*UV(32)+JVS(433)*UV(41)+JVS(813)*UV(131)+JVS(1116)*UV(174)+JVS(1744)*UV(222)+JVS(3259)*UV(269)& - &+JVS(3408)*UV(270)+JVS(4508)*UV(287) - JTUV(175) = JVS(166)*UV(31)+JVS(256)*UV(32)+JVS(493)*UV(64)+JVS(648)*UV(102)+JVS(705)*UV(113)+JVS(1128)*UV(175)& - &+JVS(1598)*UV(214)+JVS(1995)*UV(232)+JVS(2869)*UV(262)+JVS(2957)*UV(263)+JVS(3409)*UV(270)+JVS(3949)& - &*UV(280)+JVS(4106)*UV(281)+JVS(4509)*UV(287) - JTUV(176) = JVS(23)*UV(6)+JVS(167)*UV(31)+JVS(257)*UV(32)+JVS(505)*UV(67)+JVS(606)*UV(95)+JVS(667)*UV(105)+JVS(1138)& - &*UV(176)+JVS(1233)*UV(187)+JVS(2870)*UV(262)+JVS(2958)*UV(263)+JVS(3261)*UV(269)+JVS(3410)*UV(270)& - &+JVS(3765)*UV(277)+JVS(3950)*UV(280)+JVS(4107)*UV(281) - JTUV(177) = JVS(258)*UV(32)+JVS(614)*UV(96)+JVS(1145)*UV(177)+JVS(1661)*UV(217)+JVS(1945)*UV(229)+JVS(2130)*UV(238)& - &+JVS(2173)*UV(240)+JVS(2234)*UV(244)+JVS(2335)*UV(247)+JVS(2871)*UV(262)+JVS(3262)*UV(269)+JVS(3411)& - &*UV(270)+JVS(4108)*UV(281) - JTUV(178) = JVS(168)*UV(31)+JVS(259)*UV(32)+JVS(1157)*UV(178)+JVS(2548)*UV(257)+JVS(2872)*UV(262)+JVS(2959)*UV(263)& - &+JVS(3263)*UV(269)+JVS(3412)*UV(270)+JVS(3951)*UV(280)+JVS(4109)*UV(281)+JVS(4510)*UV(287) - JTUV(179) = JVS(169)*UV(31)+JVS(861)*UV(139)+JVS(993)*UV(159)+JVS(1046)*UV(168)+JVS(1167)*UV(179)+JVS(1419)*UV(202)& - &+JVS(1852)*UV(227)+JVS(2131)*UV(238)+JVS(2283)*UV(246)+JVS(2873)*UV(262)+JVS(3264)*UV(269)+JVS(3413)& - &*UV(270)+JVS(3952)*UV(280)+JVS(4110)*UV(281) - JTUV(180) = JVS(170)*UV(31)+JVS(862)*UV(139)+JVS(994)*UV(159)+JVS(1174)*UV(180)+JVS(1309)*UV(193)+JVS(1420)*UV(202)& - &+JVS(1820)*UV(226)+JVS(1997)*UV(232)+JVS(2132)*UV(238)+JVS(2874)*UV(262)+JVS(3265)*UV(269)+JVS(3414)& - &*UV(270)+JVS(3953)*UV(280)+JVS(4111)*UV(281) - JTUV(181) = JVS(351)*UV(33)+JVS(1183)*UV(181)+JVS(1681)*UV(218)+JVS(1896)*UV(228)+JVS(2549)*UV(257)+JVS(2644)*UV(258)& - &+JVS(4112)*UV(281) - JTUV(182) = JVS(352)*UV(33)+JVS(673)*UV(106)+JVS(748)*UV(120)+JVS(875)*UV(141)+JVS(935)*UV(152)+JVS(999)*UV(160)& - &+JVS(1075)*UV(170)+JVS(1197)*UV(182)+JVS(1821)*UV(226)+JVS(1897)*UV(228)+JVS(2235)*UV(244)+JVS(2645)& - &*UV(258)+JVS(2875)*UV(262)+JVS(3266)*UV(269)+JVS(4113)*UV(281) - JTUV(183) = JVS(171)*UV(31)+JVS(863)*UV(139)+JVS(995)*UV(159)+JVS(1204)*UV(183)+JVS(1998)*UV(232)+JVS(2133)*UV(238)& - &+JVS(2286)*UV(246)+JVS(3267)*UV(269)+JVS(3416)*UV(270)+JVS(3955)*UV(280)+JVS(4114)*UV(281) - JTUV(184) = JVS(353)*UV(33)+JVS(674)*UV(106)+JVS(722)*UV(116)+JVS(881)*UV(142)+JVS(936)*UV(152)+JVS(1000)*UV(160)& - &+JVS(1076)*UV(170)+JVS(1211)*UV(184)+JVS(1855)*UV(227)+JVS(1899)*UV(228)+JVS(2336)*UV(247)+JVS(2646)& - &*UV(258)+JVS(2876)*UV(262)+JVS(3268)*UV(269)+JVS(4115)*UV(281) - JTUV(185) = JVS(172)*UV(31)+JVS(1047)*UV(168)+JVS(1089)*UV(171)+JVS(1217)*UV(185)+JVS(1310)*UV(193)+JVS(1329)*UV(194)& - &+JVS(1456)*UV(205)+JVS(1543)*UV(209)+JVS(2101)*UV(237)+JVS(2134)*UV(238)+JVS(2156)*UV(239)+JVS(2877)& - &*UV(262)+JVS(3269)*UV(269)+JVS(3418)*UV(270)+JVS(3957)*UV(280)+JVS(4116)*UV(281) - JTUV(186) = JVS(260)*UV(32)+JVS(409)*UV(36)+JVS(1106)*UV(173)+JVS(1222)*UV(186)+JVS(2878)*UV(262)+JVS(2960)*UV(263)& - &+JVS(3127)*UV(268)+JVS(3270)*UV(269)+JVS(3514)*UV(271)+JVS(3862)*UV(279)+JVS(4117)*UV(281)+JVS(4379)& - &*UV(285) - JTUV(187) = JVS(173)*UV(31)+JVS(261)*UV(32)+JVS(668)*UV(105)+JVS(974)*UV(156)+JVS(1234)*UV(187)+JVS(2879)*UV(262)& - &+JVS(2961)*UV(263)+JVS(3419)*UV(270)+JVS(3958)*UV(280)+JVS(4118)*UV(281)+JVS(4511)*UV(287) - JTUV(188) = JVS(174)*UV(31)+JVS(1246)*UV(188)+JVS(3272)*UV(269)+JVS(3420)*UV(270)+JVS(3863)*UV(279)+JVS(3959)*UV(280) - JTUV(189) = JVS(24)*UV(6)+JVS(354)*UV(33)+JVS(1265)*UV(189)+JVS(1782)*UV(224)+JVS(1802)*UV(225)+JVS(1823)*UV(226)& - &+JVS(1856)*UV(227)+JVS(1900)*UV(228)+JVS(2648)*UV(258)+JVS(3273)*UV(269)+JVS(4119)*UV(281) - JTUV(190) = JVS(175)*UV(31)+JVS(355)*UV(33)+JVS(1031)*UV(166)+JVS(1278)*UV(190)+JVS(1422)*UV(202)+JVS(1544)*UV(209)& - &+JVS(2288)*UV(246)+JVS(2649)*UV(258)+JVS(2880)*UV(262)+JVS(3274)*UV(269)+JVS(3421)*UV(270)+JVS(3960)& - &*UV(280)+JVS(4120)*UV(281) - JTUV(191) = JVS(176)*UV(31)+JVS(393)*UV(34)+JVS(400)*UV(35)+JVS(417)*UV(37)+JVS(738)*UV(119)+JVS(1286)*UV(191)& - &+JVS(1522)*UV(208)+JVS(1627)*UV(215)+JVS(2650)*UV(258)+JVS(2816)*UV(261)+JVS(3422)*UV(270)+JVS(3864)& - &*UV(279)+JVS(3961)*UV(280)+JVS(4454)*UV(286)+JVS(4512)*UV(287) - JTUV(192) = JVS(177)*UV(31)+JVS(1295)*UV(192)+JVS(3080)*UV(267)+JVS(3128)*UV(268)+JVS(3276)*UV(269)+JVS(3631)*UV(273)& - &+JVS(4313)*UV(284)+JVS(4380)*UV(285) - JTUV(193) = JVS(1311)*UV(193)+JVS(1901)*UV(228)+JVS(2353)*UV(248)+JVS(2553)*UV(257)+JVS(2881)*UV(262)+JVS(3277)& - &*UV(269)+JVS(3865)*UV(279) - JTUV(194) = JVS(1330)*UV(194)+JVS(1902)*UV(228)+JVS(2554)*UV(257)+JVS(2882)*UV(262)+JVS(3278)*UV(269)+JVS(3423)& - &*UV(270) - JTUV(195) = JVS(262)*UV(32)+JVS(356)*UV(33)+JVS(615)*UV(96)+JVS(1349)*UV(195)+JVS(2251)*UV(245)+JVS(2289)*UV(246)& - &+JVS(2651)*UV(258)+JVS(3279)*UV(269)+JVS(3424)*UV(270)+JVS(4121)*UV(281) - JTUV(196) = JVS(263)*UV(32)+JVS(434)*UV(41)+JVS(814)*UV(131)+JVS(1361)*UV(196)+JVS(2493)*UV(255)+JVS(3280)*UV(269)& - &+JVS(3425)*UV(270)+JVS(3768)*UV(277)+JVS(4513)*UV(287) - JTUV(197) = JVS(178)*UV(31)+JVS(697)*UV(111)+JVS(946)*UV(154)+JVS(1374)*UV(197)+JVS(1599)*UV(214)+JVS(1628)*UV(215)& - &+JVS(2494)*UV(255)+JVS(2555)*UV(257)+JVS(2817)*UV(261)+JVS(2883)*UV(262)+JVS(2962)*UV(263)+JVS(3426)& - &*UV(270)+JVS(3962)*UV(280)+JVS(4122)*UV(281) - JTUV(198) = JVS(264)*UV(32)+JVS(616)*UV(96)+JVS(1382)*UV(198)+JVS(1713)*UV(219)+JVS(1745)*UV(222)+JVS(2032)*UV(233)& - &+JVS(2062)*UV(235)+JVS(2419)*UV(251)+JVS(2451)*UV(253)+JVS(2495)*UV(255)+JVS(2818)*UV(261)+JVS(2963)& - &*UV(263)+JVS(3282)*UV(269)+JVS(3427)*UV(270)+JVS(3866)*UV(279)+JVS(4123)*UV(281) - JTUV(199) = JVS(265)*UV(32)+JVS(512)*UV(69)+JVS(627)*UV(98)+JVS(868)*UV(140)+JVS(1247)*UV(188)+JVS(1389)*UV(199)& - &+JVS(3041)*UV(265)+JVS(3428)*UV(270)+JVS(3702)*UV(275)+JVS(3728)*UV(276)+JVS(3815)*UV(278)+JVS(4261)& - &*UV(283) - JTUV(200) = JVS(179)*UV(31)+JVS(1032)*UV(166)+JVS(1398)*UV(200)+JVS(1824)*UV(226)+JVS(1904)*UV(228)+JVS(1999)*UV(232)& - &+JVS(2102)*UV(237)+JVS(2556)*UV(257)+JVS(2884)*UV(262)+JVS(3284)*UV(269)+JVS(3429)*UV(270)+JVS(3964)& - &*UV(280)+JVS(4124)*UV(281) - JTUV(201) = JVS(180)*UV(31)+JVS(357)*UV(33)+JVS(1350)*UV(195)+JVS(1409)*UV(201)+JVS(1857)*UV(227)+JVS(1905)*UV(228)& - &+JVS(2291)*UV(246)+JVS(2653)*UV(258)+JVS(2885)*UV(262)+JVS(3285)*UV(269)+JVS(3430)*UV(270)+JVS(3965)& - &*UV(280)+JVS(4125)*UV(281) - JTUV(202) = JVS(358)*UV(33)+JVS(716)*UV(115)+JVS(807)*UV(130)+JVS(1186)*UV(181)+JVS(1423)*UV(202)+JVS(1686)*UV(218)& - &+JVS(1858)*UV(227)+JVS(1906)*UV(228)+JVS(2000)*UV(232)+JVS(2292)*UV(246)+JVS(2654)*UV(258)+JVS(2886)& - &*UV(262)+JVS(3286)*UV(269)+JVS(4126)*UV(281) - JTUV(203) = JVS(25)*UV(6)+JVS(181)*UV(31)+JVS(359)*UV(33)+JVS(833)*UV(133)+JVS(920)*UV(149)+JVS(1435)*UV(203)& - &+JVS(2558)*UV(257)+JVS(2655)*UV(258)+JVS(2887)*UV(262)+JVS(2964)*UV(263)+JVS(3287)*UV(269)+JVS(3431)& - &*UV(270)+JVS(3769)*UV(277)+JVS(3966)*UV(280)+JVS(4127)*UV(281) - JTUV(204) = JVS(182)*UV(31)+JVS(693)*UV(110)+JVS(947)*UV(154)+JVS(1444)*UV(204)+JVS(1600)*UV(214)+JVS(1629)*UV(215)& - &+JVS(2294)*UV(246)+JVS(2496)*UV(255)+JVS(2559)*UV(257)+JVS(2819)*UV(261)+JVS(2888)*UV(262)+JVS(2965)& - &*UV(263)+JVS(3432)*UV(270)+JVS(3967)*UV(280)+JVS(4128)*UV(281) - JTUV(205) = JVS(26)*UV(6)+JVS(266)*UV(32)+JVS(360)*UV(33)+JVS(1457)*UV(205)+JVS(2560)*UV(257)+JVS(2656)*UV(258)& - &+JVS(2747)*UV(260)+JVS(2889)*UV(262)+JVS(3289)*UV(269)+JVS(3433)*UV(270)+JVS(4129)*UV(281)+JVS(4516)& - &*UV(287) - JTUV(206) = JVS(10)*UV(5)+JVS(27)*UV(6)+JVS(183)*UV(31)+JVS(361)*UV(33)+JVS(964)*UV(155)+JVS(1248)*UV(188)+JVS(1476)& - &*UV(206)+JVS(2420)*UV(251)+JVS(2657)*UV(258)+JVS(2748)*UV(260)+JVS(3290)*UV(269)+JVS(3434)*UV(270)& - &+JVS(4130)*UV(281)+JVS(4517)*UV(287) - JTUV(207) = JVS(28)*UV(6)+JVS(1497)*UV(207)+JVS(3291)*UV(269)+JVS(3515)*UV(271)+JVS(3869)*UV(279)+JVS(4131)*UV(281)& - &+JVS(4382)*UV(285) - JTUV(208) = JVS(267)*UV(32)+JVS(401)*UV(35)+JVS(739)*UV(119)+JVS(1523)*UV(208)+JVS(3292)*UV(269)+JVS(3516)*UV(271)& - &+JVS(3870)*UV(279)+JVS(4132)*UV(281)+JVS(4314)*UV(284)+JVS(4383)*UV(285)+JVS(4455)*UV(286) - JTUV(209) = JVS(268)*UV(32)+JVS(362)*UV(33)+JVS(617)*UV(96)+JVS(1545)*UV(209)+JVS(1825)*UV(226)+JVS(1859)*UV(227)& - &+JVS(1908)*UV(228)+JVS(2002)*UV(232)+JVS(2658)*UV(258)+JVS(3293)*UV(269)+JVS(3435)*UV(270)+JVS(4133)& - &*UV(281) - JTUV(210) = JVS(269)*UV(32)+JVS(363)*UV(33)+JVS(618)*UV(96)+JVS(712)*UV(114)+JVS(1015)*UV(163)+JVS(1266)*UV(189)& - &+JVS(1558)*UV(210)+JVS(1860)*UV(227)+JVS(2083)*UV(236)+JVS(2103)*UV(237)+JVS(2659)*UV(258)+JVS(3294)& - &*UV(269)+JVS(3436)*UV(270)+JVS(4134)*UV(281) - JTUV(211) = JVS(184)*UV(31)+JVS(270)*UV(32)+JVS(1117)*UV(174)+JVS(1362)*UV(196)+JVS(1567)*UV(211)+JVS(1579)*UV(212)& - &+JVS(1746)*UV(222)+JVS(2498)*UV(255)+JVS(2562)*UV(257)+JVS(2891)*UV(262)+JVS(2966)*UV(263)+JVS(3437)& - &*UV(270)+JVS(3970)*UV(280)+JVS(4135)*UV(281)+JVS(4519)*UV(287) - JTUV(212) = JVS(185)*UV(31)+JVS(271)*UV(32)+JVS(948)*UV(154)+JVS(1118)*UV(174)+JVS(1363)*UV(196)+JVS(1568)*UV(211)& - &+JVS(1580)*UV(212)+JVS(1601)*UV(214)+JVS(1747)*UV(222)+JVS(2499)*UV(255)+JVS(2563)*UV(257)+JVS(2892)& - &*UV(262)+JVS(2967)*UV(263)+JVS(3438)*UV(270)+JVS(3971)*UV(280)+JVS(4136)*UV(281)+JVS(4520)*UV(287) - JTUV(213) = JVS(186)*UV(31)+JVS(575)*UV(88)+JVS(683)*UV(108)+JVS(801)*UV(129)+JVS(1589)*UV(213)+JVS(1602)*UV(214)& - &+JVS(1630)*UV(215)+JVS(2564)*UV(257)+JVS(2820)*UV(261)+JVS(2893)*UV(262)+JVS(2968)*UV(263)+JVS(3439)& - &*UV(270)+JVS(3632)*UV(273)+JVS(3972)*UV(280)+JVS(4137)*UV(281)+JVS(4384)*UV(285) - JTUV(214) = JVS(1603)*UV(214)+JVS(2894)*UV(262)+JVS(3298)*UV(269)+JVS(3518)*UV(271)+JVS(4138)*UV(281)+JVS(4385)& - &*UV(285) - JTUV(215) = JVS(29)*UV(6)+JVS(1631)*UV(215)+JVS(2969)*UV(263)+JVS(3299)*UV(269)+JVS(3519)*UV(271)+JVS(3871)*UV(279)& - &+JVS(4386)*UV(285) - JTUV(216) = JVS(272)*UV(32)+JVS(364)*UV(33)+JVS(619)*UV(96)+JVS(713)*UV(114)+JVS(1020)*UV(164)+JVS(1090)*UV(171)& - &+JVS(1267)*UV(189)+JVS(1654)*UV(216)+JVS(1827)*UV(226)+JVS(2084)*UV(236)+JVS(2660)*UV(258)+JVS(3300)& - &*UV(269)+JVS(3440)*UV(270)+JVS(4139)*UV(281) - JTUV(217) = JVS(187)*UV(31)+JVS(1048)*UV(168)+JVS(1091)*UV(171)+JVS(1312)*UV(193)+JVS(1333)*UV(194)+JVS(1459)*UV(205)& - &+JVS(1548)*UV(209)+JVS(1662)*UV(217)+JVS(1828)*UV(226)+JVS(1862)*UV(227)+JVS(2005)*UV(232)+JVS(2104)& - &*UV(237)+JVS(2137)*UV(238)+JVS(2159)*UV(239)+JVS(2299)*UV(246)+JVS(2896)*UV(262)+JVS(3301)*UV(269)& - &+JVS(3441)*UV(270)+JVS(3974)*UV(280)+JVS(4140)*UV(281) - JTUV(218) = JVS(126)*UV(29)+JVS(273)*UV(32)+JVS(365)*UV(33)+JVS(1691)*UV(218)+JVS(2662)*UV(258)+JVS(2755)*UV(260)& - &+JVS(2897)*UV(262)+JVS(3302)*UV(269)+JVS(4141)*UV(281)+JVS(4522)*UV(287) - JTUV(219) = JVS(366)*UV(33)+JVS(1714)*UV(219)+JVS(2355)*UV(248)+JVS(2567)*UV(257)+JVS(2663)*UV(258)+JVS(2970)*UV(263)& - &+JVS(3303)*UV(269)+JVS(3520)*UV(271)+JVS(3581)*UV(272)+JVS(3873)*UV(279)+JVS(4219)*UV(282)+JVS(4387)& - &*UV(285) - JTUV(220) = JVS(30)*UV(6)+JVS(69)*UV(13)+JVS(72)*UV(14)+JVS(274)*UV(32)+JVS(367)*UV(33)+JVS(418)*UV(37)+JVS(771)& - &*UV(124)+JVS(785)*UV(126)+JVS(1049)*UV(168)+JVS(1198)*UV(182)+JVS(1212)*UV(184)+JVS(1313)*UV(193)+JVS(1524)& - &*UV(208)+JVS(1727)*UV(220)+JVS(1912)*UV(228)+JVS(1958)*UV(230)+JVS(2174)*UV(240)+JVS(2186)*UV(241)& - &+JVS(2200)*UV(242)+JVS(2215)*UV(243)+JVS(2236)*UV(244)+JVS(2337)*UV(247)+JVS(2568)*UV(257)+JVS(2664)& - &*UV(258)+JVS(2898)*UV(262)+JVS(2971)*UV(263)+JVS(3304)*UV(269)+JVS(3521)*UV(271)+JVS(3773)*UV(277)& - &+JVS(4142)*UV(281)+JVS(4388)*UV(285)+JVS(4523)*UV(287) - JTUV(221) = JVS(188)*UV(31)+JVS(275)*UV(32)+JVS(731)*UV(118)+JVS(949)*UV(154)+JVS(1364)*UV(196)+JVS(1604)*UV(214)& - &+JVS(1733)*UV(221)+JVS(1748)*UV(222)+JVS(2301)*UV(246)+JVS(2338)*UV(247)+JVS(2471)*UV(254)+JVS(2500)& - &*UV(255)+JVS(2569)*UV(257)+JVS(2899)*UV(262)+JVS(2972)*UV(263)+JVS(3443)*UV(270)+JVS(3976)*UV(280)& - &+JVS(4143)*UV(281)+JVS(4524)*UV(287) - JTUV(222) = JVS(276)*UV(32)+JVS(1749)*UV(222)+JVS(2033)*UV(233)+JVS(2064)*UV(235)+JVS(2385)*UV(249)+JVS(2402)*UV(250)& - &+JVS(2452)*UV(253)+JVS(2570)*UV(257)+JVS(2758)*UV(260)+JVS(2973)*UV(263)+JVS(3306)*UV(269)+JVS(3875)& - &*UV(279)+JVS(4525)*UV(287) - JTUV(223) = JVS(277)*UV(32)+JVS(430)*UV(40)+JVS(447)*UV(47)+JVS(586)*UV(90)+JVS(628)*UV(98)+JVS(678)*UV(107)+JVS(1764)& - &*UV(223)+JVS(3013)*UV(264)+JVS(3042)*UV(265)+JVS(3061)*UV(266)+JVS(3444)*UV(270)+JVS(3633)*UV(273)& - &+JVS(3677)*UV(274)+JVS(3977)*UV(280)+JVS(4144)*UV(281)+JVS(4220)*UV(282)+JVS(4316)*UV(284)+JVS(4390)& - &*UV(285) - JTUV(224) = JVS(189)*UV(31)+JVS(368)*UV(33)+JVS(717)*UV(115)+JVS(757)*UV(122)+JVS(1426)*UV(202)+JVS(1549)*UV(209)& - &+JVS(1785)*UV(224)+JVS(1913)*UV(228)+JVS(2007)*UV(232)+JVS(2665)*UV(258)+JVS(3308)*UV(269)+JVS(3445)& - &*UV(270)+JVS(3978)*UV(280)+JVS(4145)*UV(281) - JTUV(225) = JVS(190)*UV(31)+JVS(369)*UV(33)+JVS(758)*UV(122)+JVS(808)*UV(130)+JVS(1427)*UV(202)+JVS(1550)*UV(209)& - &+JVS(1694)*UV(218)+JVS(1806)*UV(225)+JVS(2303)*UV(246)+JVS(2666)*UV(258)+JVS(3309)*UV(269)+JVS(3446)& - &*UV(270)+JVS(3979)*UV(280)+JVS(4146)*UV(281) - JTUV(226) = JVS(1036)*UV(166)+JVS(1189)*UV(181)+JVS(1832)*UV(226)+JVS(1915)*UV(228)+JVS(2009)*UV(232)+JVS(2573)& - &*UV(257)+JVS(2902)*UV(262)+JVS(3310)*UV(269)+JVS(4147)*UV(281) - JTUV(227) = JVS(31)*UV(6)+JVS(370)*UV(33)+JVS(1314)*UV(193)+JVS(1866)*UV(227)+JVS(1916)*UV(228)+JVS(2304)*UV(246)& - &+JVS(2668)*UV(258)+JVS(2903)*UV(262)+JVS(3311)*UV(269)+JVS(4148)*UV(281) - JTUV(228) = JVS(127)*UV(29)+JVS(278)*UV(32)+JVS(371)*UV(33)+JVS(1917)*UV(228)+JVS(2575)*UV(257)+JVS(2669)*UV(258)& - &+JVS(2762)*UV(260)+JVS(3312)*UV(269)+JVS(4149)*UV(281)+JVS(4529)*UV(287) - JTUV(229) = JVS(191)*UV(31)+JVS(1092)*UV(171)+JVS(1334)*UV(194)+JVS(1460)*UV(205)+JVS(1946)*UV(229)+JVS(2010)*UV(232)& - &+JVS(2106)*UV(237)+JVS(2138)*UV(238)+JVS(2160)*UV(239)+JVS(2305)*UV(246)+JVS(2904)*UV(262)+JVS(3313)& - &*UV(269)+JVS(3447)*UV(270)+JVS(3980)*UV(280)+JVS(4150)*UV(281) - JTUV(230) = JVS(192)*UV(31)+JVS(279)*UV(32)+JVS(394)*UV(34)+JVS(402)*UV(35)+JVS(419)*UV(37)+JVS(555)*UV(83)+JVS(740)& - &*UV(119)+JVS(1499)*UV(207)+JVS(1525)*UV(208)+JVS(1959)*UV(230)+JVS(2671)*UV(258)+JVS(2905)*UV(262)& - &+JVS(3448)*UV(270)+JVS(3775)*UV(277)+JVS(3877)*UV(279)+JVS(3981)*UV(280)+JVS(4457)*UV(286)+JVS(4531)& - &*UV(287) - JTUV(231) = JVS(193)*UV(31)+JVS(280)*UV(32)+JVS(820)*UV(132)+JVS(1249)*UV(188)+JVS(1296)*UV(192)+JVS(1973)*UV(231)& - &+JVS(3082)*UV(267)+JVS(3315)*UV(269)+JVS(3449)*UV(270)+JVS(3524)*UV(271)+JVS(3582)*UV(272)+JVS(3703)& - &*UV(275)+JVS(3729)*UV(276)+JVS(3816)*UV(278)+JVS(4262)*UV(283)+JVS(4392)*UV(285) - JTUV(232) = JVS(32)*UV(6)+JVS(372)*UV(33)+JVS(1500)*UV(207)+JVS(1605)*UV(214)+JVS(1696)*UV(218)+JVS(2011)*UV(232)& - &+JVS(2672)*UV(258)+JVS(2906)*UV(262)+JVS(3316)*UV(269)+JVS(4152)*UV(281) - JTUV(233) = JVS(194)*UV(31)+JVS(579)*UV(89)+JVS(594)*UV(92)+JVS(950)*UV(154)+JVS(1606)*UV(214)+JVS(1632)*UV(215)& - &+JVS(2034)*UV(233)+JVS(2501)*UV(255)+JVS(2577)*UV(257)+JVS(2907)*UV(262)+JVS(2974)*UV(263)+JVS(3450)& - &*UV(270)+JVS(3983)*UV(280)+JVS(4153)*UV(281) - JTUV(234) = JVS(195)*UV(31)+JVS(281)*UV(32)+JVS(732)*UV(118)+JVS(951)*UV(154)+JVS(1119)*UV(174)+JVS(1365)*UV(196)& - &+JVS(1501)*UV(207)+JVS(1607)*UV(214)+JVS(1715)*UV(219)+JVS(1750)*UV(222)+JVS(2052)*UV(234)+JVS(2502)& - &*UV(255)+JVS(2578)*UV(257)+JVS(2908)*UV(262)+JVS(2975)*UV(263)+JVS(3451)*UV(270)+JVS(3984)*UV(280)& - &+JVS(4154)*UV(281)+JVS(4533)*UV(287) - JTUV(235) = JVS(196)*UV(31)+JVS(684)*UV(108)+JVS(802)*UV(129)+JVS(1608)*UV(214)+JVS(1633)*UV(215)+JVS(2066)*UV(235)& - &+JVS(2579)*UV(257)+JVS(2821)*UV(261)+JVS(2909)*UV(262)+JVS(2976)*UV(263)+JVS(3452)*UV(270)+JVS(3635)& - &*UV(273)+JVS(3985)*UV(280)+JVS(4155)*UV(281)+JVS(4396)*UV(285) - JTUV(236) = JVS(373)*UV(33)+JVS(675)*UV(106)+JVS(876)*UV(141)+JVS(882)*UV(142)+JVS(904)*UV(146)+JVS(939)*UV(152)& - &+JVS(1001)*UV(160)+JVS(1080)*UV(170)+JVS(1093)*UV(171)+JVS(2085)*UV(236)+JVS(2107)*UV(237)+JVS(2674)& - &*UV(258)+JVS(3320)*UV(269)+JVS(3453)*UV(270)+JVS(4156)*UV(281) - JTUV(237) = JVS(197)*UV(31)+JVS(282)*UV(32)+JVS(620)*UV(96)+JVS(661)*UV(104)+JVS(1191)*UV(181)+JVS(1462)*UV(205)& - &+JVS(1503)*UV(207)+JVS(1920)*UV(228)+JVS(2013)*UV(232)+JVS(2108)*UV(237)+JVS(2581)*UV(257)+JVS(2911)& - &*UV(262)+JVS(3321)*UV(269)+JVS(3454)*UV(270)+JVS(4157)*UV(281)+JVS(4535)*UV(287) - JTUV(238) = JVS(198)*UV(31)+JVS(283)*UV(32)+JVS(621)*UV(96)+JVS(905)*UV(146)+JVS(1002)*UV(160)+JVS(1050)*UV(168)& - &+JVS(1315)*UV(193)+JVS(1353)*UV(195)+JVS(1463)*UV(205)+JVS(1551)*UV(209)+JVS(1868)*UV(227)+JVS(1947)& - &*UV(229)+JVS(2014)*UV(232)+JVS(2109)*UV(237)+JVS(2139)*UV(238)+JVS(2308)*UV(246)+JVS(2912)*UV(262)& - &+JVS(3322)*UV(269)+JVS(3455)*UV(270)+JVS(4158)*UV(281) - JTUV(239) = JVS(199)*UV(31)+JVS(284)*UV(32)+JVS(622)*UV(96)+JVS(762)*UV(123)+JVS(887)*UV(143)+JVS(2015)*UV(232)& - &+JVS(2086)*UV(236)+JVS(2140)*UV(238)+JVS(2162)*UV(239)+JVS(2237)*UV(244)+JVS(2309)*UV(246)+JVS(2339)& - &*UV(247)+JVS(2913)*UV(262)+JVS(3323)*UV(269)+JVS(3456)*UV(270)+JVS(4159)*UV(281) - JTUV(240) = JVS(200)*UV(31)+JVS(285)*UV(32)+JVS(763)*UV(123)+JVS(1146)*UV(177)+JVS(1609)*UV(214)+JVS(1655)*UV(216)& - &+JVS(2087)*UV(236)+JVS(2163)*UV(239)+JVS(2175)*UV(240)+JVS(2187)*UV(241)+JVS(2238)*UV(244)+JVS(2340)& - &*UV(247)+JVS(2584)*UV(257)+JVS(2914)*UV(262)+JVS(2977)*UV(263)+JVS(3324)*UV(269)+JVS(3457)*UV(270)& - &+JVS(3989)*UV(280)+JVS(4160)*UV(281)+JVS(4538)*UV(287) - JTUV(241) = JVS(201)*UV(31)+JVS(286)*UV(32)+JVS(764)*UV(123)+JVS(910)*UV(147)+JVS(1147)*UV(177)+JVS(1559)*UV(210)& - &+JVS(1610)*UV(214)+JVS(1656)*UV(216)+JVS(2088)*UV(236)+JVS(2164)*UV(239)+JVS(2176)*UV(240)+JVS(2188)& - &*UV(241)+JVS(2239)*UV(244)+JVS(2341)*UV(247)+JVS(2585)*UV(257)+JVS(2915)*UV(262)+JVS(2978)*UV(263)& - &+JVS(3458)*UV(270)+JVS(3990)*UV(280)+JVS(4161)*UV(281)+JVS(4539)*UV(287) - JTUV(242) = JVS(202)*UV(31)+JVS(374)*UV(33)+JVS(786)*UV(126)+JVS(847)*UV(136)+JVS(942)*UV(153)+JVS(1041)*UV(167)& - &+JVS(1051)*UV(168)+JVS(1199)*UV(182)+JVS(1268)*UV(189)+JVS(1560)*UV(210)+JVS(1837)*UV(226)+JVS(1871)& - &*UV(227)+JVS(1925)*UV(228)+JVS(2202)*UV(242)+JVS(2217)*UV(243)+JVS(2240)*UV(244)+JVS(2342)*UV(247)& - &+JVS(2586)*UV(257)+JVS(2680)*UV(258)+JVS(2916)*UV(262)+JVS(2979)*UV(263)+JVS(3326)*UV(269)+JVS(3459)& - &*UV(270)+JVS(3991)*UV(280)+JVS(4162)*UV(281) - JTUV(243) = JVS(203)*UV(31)+JVS(375)*UV(33)+JVS(772)*UV(124)+JVS(851)*UV(137)+JVS(988)*UV(158)+JVS(1005)*UV(161)& - &+JVS(1213)*UV(184)+JVS(1269)*UV(189)+JVS(1317)*UV(193)+JVS(1657)*UV(216)+JVS(1838)*UV(226)+JVS(1872)& - &*UV(227)+JVS(1926)*UV(228)+JVS(2203)*UV(242)+JVS(2218)*UV(243)+JVS(2241)*UV(244)+JVS(2343)*UV(247)& - &+JVS(2681)*UV(258)+JVS(2917)*UV(262)+JVS(2980)*UV(263)+JVS(3327)*UV(269)+JVS(3460)*UV(270)+JVS(3992)& - &*UV(280)+JVS(4163)*UV(281) - JTUV(244) = JVS(287)*UV(32)+JVS(376)*UV(33)+JVS(420)*UV(37)+JVS(662)*UV(104)+JVS(1402)*UV(200)+JVS(1526)*UV(208)& - &+JVS(1927)*UV(228)+JVS(1960)*UV(230)+JVS(2242)*UV(244)+JVS(2404)*UV(250)+JVS(2472)*UV(254)+JVS(2588)& - &*UV(257)+JVS(2682)*UV(258)+JVS(2918)*UV(262)+JVS(2981)*UV(263)+JVS(3328)*UV(269)+JVS(3777)*UV(277)& - &+JVS(4164)*UV(281) - JTUV(245) = JVS(33)*UV(6)+JVS(204)*UV(31)+JVS(288)*UV(32)+JVS(921)*UV(149)+JVS(1094)*UV(171)+JVS(1356)*UV(195)& - &+JVS(2261)*UV(245)+JVS(2314)*UV(246)+JVS(2919)*UV(262)+JVS(2982)*UV(263)+JVS(3329)*UV(269)+JVS(3462)& - &*UV(270)+JVS(3778)*UV(277)+JVS(3994)*UV(280)+JVS(4165)*UV(281)+JVS(4543)*UV(287) - JTUV(246) = JVS(34)*UV(6)+JVS(377)*UV(33)+JVS(1508)*UV(207)+JVS(1634)*UV(215)+JVS(1929)*UV(228)+JVS(2315)*UV(246)& - &+JVS(2590)*UV(257)+JVS(2684)*UV(258)+JVS(2920)*UV(262)+JVS(2983)*UV(263)+JVS(3330)*UV(269)+JVS(4166)& - &*UV(281) - JTUV(247) = JVS(289)*UV(32)+JVS(378)*UV(33)+JVS(1318)*UV(193)+JVS(1340)*UV(194)+JVS(1413)*UV(201)+JVS(1437)*UV(203)& - &+JVS(1930)*UV(228)+JVS(1961)*UV(230)+JVS(2344)*UV(247)+JVS(2591)*UV(257)+JVS(2685)*UV(258)+JVS(2777)& - &*UV(260)+JVS(2921)*UV(262)+JVS(3331)*UV(269)+JVS(3779)*UV(277)+JVS(4167)*UV(281)+JVS(4545)*UV(287) - JTUV(248) = JVS(205)*UV(31)+JVS(1319)*UV(193)+JVS(1611)*UV(214)+JVS(1635)*UV(215)+JVS(1931)*UV(228)+JVS(2317)*UV(246)& - &+JVS(2367)*UV(248)+JVS(2592)*UV(257)+JVS(2922)*UV(262)+JVS(2985)*UV(263)+JVS(3332)*UV(269)+JVS(3464)& - &*UV(270)+JVS(3996)*UV(280)+JVS(4168)*UV(281) - JTUV(249) = JVS(206)*UV(31)+JVS(952)*UV(154)+JVS(1320)*UV(193)+JVS(1383)*UV(198)+JVS(1612)*UV(214)+JVS(1636)*UV(215)& - &+JVS(1751)*UV(222)+JVS(2387)*UV(249)+JVS(2593)*UV(257)+JVS(2822)*UV(261)+JVS(2923)*UV(262)+JVS(2986)& - &*UV(263)+JVS(3333)*UV(269)+JVS(3465)*UV(270)+JVS(3997)*UV(280)+JVS(4169)*UV(281) - JTUV(250) = JVS(207)*UV(31)+JVS(451)*UV(49)+JVS(602)*UV(94)+JVS(2037)*UV(233)+JVS(2068)*UV(235)+JVS(2406)*UV(250)& - &+JVS(2455)*UV(253)+JVS(2594)*UV(257)+JVS(2924)*UV(262)+JVS(2987)*UV(263)+JVS(3334)*UV(269)+JVS(3466)& - &*UV(270)+JVS(3780)*UV(277)+JVS(3998)*UV(280)+JVS(4170)*UV(281) - JTUV(251) = JVS(208)*UV(31)+JVS(953)*UV(154)+JVS(1384)*UV(198)+JVS(1613)*UV(214)+JVS(1637)*UV(215)+JVS(2422)*UV(251)& - &+JVS(2438)*UV(252)+JVS(2505)*UV(255)+JVS(2595)*UV(257)+JVS(2824)*UV(261)+JVS(2925)*UV(262)+JVS(2988)& - &*UV(263)+JVS(3467)*UV(270)+JVS(3999)*UV(280)+JVS(4171)*UV(281) - JTUV(252) = JVS(209)*UV(31)+JVS(590)*UV(91)+JVS(954)*UV(154)+JVS(1385)*UV(198)+JVS(1614)*UV(214)+JVS(1638)*UV(215)& - &+JVS(1718)*UV(219)+JVS(1753)*UV(222)+JVS(2039)*UV(233)+JVS(2070)*UV(235)+JVS(2439)*UV(252)+JVS(2457)& - &*UV(253)+JVS(2506)*UV(255)+JVS(2596)*UV(257)+JVS(2825)*UV(261)+JVS(2926)*UV(262)+JVS(2989)*UV(263)& - &+JVS(3468)*UV(270)+JVS(4000)*UV(280)+JVS(4172)*UV(281) - JTUV(253) = JVS(210)*UV(31)+JVS(567)*UV(86)+JVS(598)*UV(93)+JVS(955)*UV(154)+JVS(1615)*UV(214)+JVS(1639)*UV(215)& - &+JVS(1719)*UV(219)+JVS(2458)*UV(253)+JVS(2597)*UV(257)+JVS(2927)*UV(262)+JVS(2990)*UV(263)+JVS(3469)& - &*UV(270)+JVS(4001)*UV(280)+JVS(4173)*UV(281) - JTUV(254) = JVS(290)*UV(32)+JVS(379)*UV(33)+JVS(1223)*UV(186)+JVS(1287)*UV(191)+JVS(1375)*UV(197)+JVS(1445)*UV(204)& - &+JVS(1962)*UV(230)+JVS(2473)*UV(254)+JVS(2691)*UV(258)+JVS(2826)*UV(261)+JVS(2928)*UV(262)+JVS(2991)& - &*UV(263)+JVS(3338)*UV(269)+JVS(3547)*UV(271)+JVS(3588)*UV(272)+JVS(3783)*UV(277)+JVS(4174)*UV(281)& - &+JVS(4227)*UV(282)+JVS(4415)*UV(285)+JVS(4551)*UV(287) - JTUV(255) = JVS(291)*UV(32)+JVS(380)*UV(33)+JVS(2040)*UV(233)+JVS(2071)*UV(235)+JVS(2409)*UV(250)+JVS(2459)*UV(253)& - &+JVS(2509)*UV(255)+JVS(2692)*UV(258)+JVS(2784)*UV(260)+JVS(3339)*UV(269)+JVS(3902)*UV(279)+JVS(4175)& - &*UV(281)+JVS(4552)*UV(287) - JTUV(256) = JVS(292)*UV(32)+JVS(403)*UV(35)+JVS(741)*UV(119)+JVS(776)*UV(125)+JVS(821)*UV(132)+JVS(2522)*UV(256)& - &+JVS(3340)*UV(269)+JVS(3549)*UV(271)+JVS(3590)*UV(272)+JVS(3678)*UV(274)+JVS(3704)*UV(275)+JVS(3730)& - &*UV(276)+JVS(3817)*UV(278)+JVS(3903)*UV(279)+JVS(4229)*UV(282)+JVS(4263)*UV(283)+JVS(4322)*UV(284)& - &+JVS(4461)*UV(286) - JTUV(257) = JVS(35)*UV(6)+JVS(211)*UV(31)+JVS(490)*UV(63)+JVS(501)*UV(66)+JVS(765)*UV(123)+JVS(1120)*UV(174)+JVS(1158)& - &*UV(178)+JVS(1366)*UV(196)+JVS(1376)*UV(197)+JVS(1446)*UV(204)+JVS(1569)*UV(211)+JVS(1581)*UV(212)& - &+JVS(1590)*UV(213)+JVS(1641)*UV(215)+JVS(1720)*UV(219)+JVS(1734)*UV(221)+JVS(1754)*UV(222)+JVS(1934)& - &*UV(228)+JVS(2041)*UV(233)+JVS(2053)*UV(234)+JVS(2072)*UV(235)+JVS(2091)*UV(236)+JVS(2177)*UV(240)& - &+JVS(2189)*UV(241)+JVS(2243)*UV(244)+JVS(2319)*UV(246)+JVS(2345)*UV(247)+JVS(2372)*UV(248)+JVS(2390)& - &*UV(249)+JVS(2410)*UV(250)+JVS(2424)*UV(251)+JVS(2440)*UV(252)+JVS(2460)*UV(253)+JVS(2474)*UV(254)& - &+JVS(2510)*UV(255)+JVS(2600)*UV(257)+JVS(2828)*UV(261)+JVS(2930)*UV(262)+JVS(2993)*UV(263)+JVS(3341)& - &*UV(269)+JVS(3472)*UV(270)+JVS(3785)*UV(277)+JVS(4004)*UV(280)+JVS(4176)*UV(281) - JTUV(258) = JVS(36)*UV(6)+JVS(395)*UV(34)+JVS(1288)*UV(191)+JVS(1963)*UV(230)+JVS(2694)*UV(258)+JVS(2829)*UV(261)& - &+JVS(2931)*UV(262)+JVS(3342)*UV(269)+JVS(4177)*UV(281) - JTUV(259) = JVS(212)*UV(31)+JVS(293)*UV(32)+JVS(822)*UV(132)+JVS(1297)*UV(192)+JVS(2709)*UV(259)+JVS(2786)*UV(260)& - &+JVS(3083)*UV(267)+JVS(3343)*UV(269)+JVS(3474)*UV(270)+JVS(3552)*UV(271)+JVS(3592)*UV(272)+JVS(3642)& - &*UV(273)+JVS(3705)*UV(275)+JVS(3731)*UV(276)+JVS(3818)*UV(278)+JVS(3906)*UV(279)+JVS(4264)*UV(283)& - &+JVS(4325)*UV(284)+JVS(4420)*UV(285)+JVS(4555)*UV(287) - JTUV(260) = JVS(213)*UV(31)+JVS(294)*UV(32)+JVS(475)*UV(58)+JVS(479)*UV(59)+JVS(842)*UV(135)+JVS(892)*UV(144)& - &+JVS(2787)*UV(260)+JVS(3344)*UV(269)+JVS(3475)*UV(270)+JVS(3907)*UV(279)+JVS(4556)*UV(287) - JTUV(261) = JVS(295)*UV(32)+JVS(381)*UV(33)+JVS(1224)*UV(186)+JVS(2601)*UV(257)+JVS(2695)*UV(258)+JVS(2788)*UV(260)& - &+JVS(2830)*UV(261)+JVS(2932)*UV(262)+JVS(2995)*UV(263)+JVS(3345)*UV(269)+JVS(3593)*UV(272)+JVS(3908)& - &*UV(279)+JVS(4178)*UV(281)+JVS(4232)*UV(282)+JVS(4557)*UV(287) - JTUV(262) = JVS(296)*UV(32)+JVS(382)*UV(33)+JVS(563)*UV(85)+JVS(1107)*UV(173)+JVS(2696)*UV(258)+JVS(2789)*UV(260)& - &+JVS(2933)*UV(262)+JVS(3346)*UV(269)+JVS(3555)*UV(271)+JVS(3594)*UV(272)+JVS(3909)*UV(279)+JVS(4179)& - &*UV(281)+JVS(4233)*UV(282)+JVS(4327)*UV(284)+JVS(4422)*UV(285)+JVS(4466)*UV(286)+JVS(4558)*UV(287) - JTUV(263) = JVS(37)*UV(6)+JVS(214)*UV(31)+JVS(297)*UV(32)+JVS(383)*UV(33)+JVS(521)*UV(71)+JVS(571)*UV(87)+JVS(649)& - &*UV(102)+JVS(654)*UV(103)+JVS(706)*UV(113)+JVS(766)*UV(123)+JVS(803)*UV(129)+JVS(837)*UV(134)+JVS(956)& - &*UV(154)+JVS(975)*UV(156)+JVS(1095)*UV(171)+JVS(1121)*UV(174)+JVS(1129)*UV(175)+JVS(1139)*UV(176)+JVS(1148)& - &*UV(177)+JVS(1159)*UV(178)+JVS(1235)*UV(187)+JVS(1270)*UV(189)+JVS(1367)*UV(196)+JVS(1377)*UV(197)& - &+JVS(1447)*UV(204)+JVS(1561)*UV(210)+JVS(1570)*UV(211)+JVS(1582)*UV(212)+JVS(1591)*UV(213)+JVS(1618)& - &*UV(214)+JVS(1643)*UV(215)+JVS(1658)*UV(216)+JVS(1721)*UV(219)+JVS(1735)*UV(221)+JVS(1755)*UV(222)& - &+JVS(1840)*UV(226)+JVS(1874)*UV(227)+JVS(1935)*UV(228)+JVS(2022)*UV(232)+JVS(2042)*UV(233)+JVS(2054)& - &*UV(234)+JVS(2073)*UV(235)+JVS(2092)*UV(236)+JVS(2178)*UV(240)+JVS(2190)*UV(241)+JVS(2205)*UV(242)& - &+JVS(2220)*UV(243)+JVS(2244)*UV(244)+JVS(2264)*UV(245)+JVS(2320)*UV(246)+JVS(2346)*UV(247)+JVS(2373)& - &*UV(248)+JVS(2391)*UV(249)+JVS(2411)*UV(250)+JVS(2425)*UV(251)+JVS(2441)*UV(252)+JVS(2461)*UV(253)& - &+JVS(2475)*UV(254)+JVS(2511)*UV(255)+JVS(2602)*UV(257)+JVS(2697)*UV(258)+JVS(2832)*UV(261)+JVS(2934)& - &*UV(262)+JVS(2997)*UV(263)+JVS(3347)*UV(269)+JVS(3478)*UV(270)+JVS(3645)*UV(273)+JVS(3790)*UV(277)& - &+JVS(4009)*UV(280)+JVS(4180)*UV(281)+JVS(4423)*UV(285)+JVS(4559)*UV(287) - JTUV(264) = JVS(298)*UV(32)+JVS(513)*UV(69)+JVS(629)*UV(98)+JVS(1765)*UV(223)+JVS(3014)*UV(264)+JVS(3043)*UV(265)& - &+JVS(3348)*UV(269)+JVS(3706)*UV(275)+JVS(3732)*UV(276)+JVS(3823)*UV(278)+JVS(3911)*UV(279)+JVS(4269)& - &*UV(283) - JTUV(265) = JVS(467)*UV(56)+JVS(497)*UV(65)+JVS(869)*UV(140)+JVS(1390)*UV(199)+JVS(1766)*UV(223)+JVS(3044)*UV(265)& - &+JVS(3063)*UV(266)+JVS(3480)*UV(270)+JVS(3680)*UV(274)+JVS(3791)*UV(277)+JVS(4011)*UV(280)+JVS(4182)& - &*UV(281)+JVS(4236)*UV(282)+JVS(4560)*UV(287) - JTUV(266) = JVS(299)*UV(32)+JVS(514)*UV(69)+JVS(630)*UV(98)+JVS(870)*UV(140)+JVS(1767)*UV(223)+JVS(2791)*UV(260)& - &+JVS(3016)*UV(264)+JVS(3045)*UV(265)+JVS(3064)*UV(266)+JVS(3481)*UV(270)+JVS(3708)*UV(275)+JVS(3734)& - &*UV(276)+JVS(3825)*UV(278)+JVS(3913)*UV(279)+JVS(4271)*UV(283)+JVS(4561)*UV(287) - JTUV(267) = JVS(300)*UV(32)+JVS(404)*UV(35)+JVS(743)*UV(119)+JVS(823)*UV(132)+JVS(1299)*UV(192)+JVS(3088)*UV(267)& - &+JVS(3351)*UV(269)+JVS(3558)*UV(271)+JVS(3596)*UV(272)+JVS(3649)*UV(273)+JVS(3826)*UV(278)+JVS(3914)& - &*UV(279)+JVS(4272)*UV(283)+JVS(4427)*UV(285)+JVS(4469)*UV(286) - JTUV(268) = JVS(301)*UV(32)+JVS(410)*UV(36)+JVS(436)*UV(42)+JVS(440)*UV(44)+JVS(442)*UV(45)+JVS(444)*UV(46)+JVS(449)& - &*UV(48)+JVS(457)*UV(51)+JVS(459)*UV(52)+JVS(461)*UV(53)+JVS(465)*UV(55)+JVS(471)*UV(57)+JVS(518)*UV(70)& - &+JVS(530)*UV(74)+JVS(540)*UV(78)+JVS(543)*UV(79)+JVS(546)*UV(80)+JVS(549)*UV(81)+JVS(624)*UV(97)+JVS(1108)& - &*UV(173)+JVS(1225)*UV(186)+JVS(1300)*UV(192)+JVS(2935)*UV(262)+JVS(2998)*UV(263)+JVS(3137)*UV(268)& - &+JVS(3352)*UV(269)+JVS(3559)*UV(271)+JVS(3597)*UV(272)+JVS(3650)*UV(273)+JVS(3682)*UV(274)+JVS(3793)& - &*UV(277)+JVS(3915)*UV(279)+JVS(4013)*UV(280)+JVS(4184)*UV(281)+JVS(4239)*UV(282)+JVS(4333)*UV(284)& - &+JVS(4428)*UV(285) - JTUV(269) = JVS(38)*UV(6)+JVS(65)*UV(12)+JVS(70)*UV(13)+JVS(82)*UV(17)+JVS(86)*UV(18)+JVS(95)*UV(21)+JVS(105)*UV(23)& - &+JVS(114)*UV(26)+JVS(119)*UV(27)+JVS(215)*UV(31)+JVS(302)*UV(32)+JVS(384)*UV(33)+JVS(396)*UV(34)+JVS(405)& - &*UV(35)+JVS(411)*UV(36)+JVS(421)*UV(37)+JVS(428)*UV(39)+JVS(438)*UV(43)+JVS(463)*UV(54)+JVS(482)*UV(60)& - &+JVS(487)*UV(62)+JVS(494)*UV(64)+JVS(498)*UV(65)+JVS(502)*UV(66)+JVS(506)*UV(67)+JVS(509)*UV(68)+JVS(519)& - &*UV(70)+JVS(524)*UV(72)+JVS(527)*UV(73)+JVS(531)*UV(74)+JVS(533)*UV(75)+JVS(536)*UV(76)+JVS(538)*UV(77)& - &+JVS(541)*UV(78)+JVS(544)*UV(79)+JVS(547)*UV(80)+JVS(550)*UV(81)+JVS(552)*UV(82)+JVS(556)*UV(83)+JVS(561)& - &*UV(84)+JVS(564)*UV(85)+JVS(568)*UV(86)+JVS(572)*UV(87)+JVS(576)*UV(88)+JVS(580)*UV(89)+JVS(591)*UV(91)& - &+JVS(595)*UV(92)+JVS(599)*UV(93)+JVS(603)*UV(94)+JVS(607)*UV(95)+JVS(625)*UV(97)+JVS(637)*UV(99)+JVS(640)& - &*UV(100)+JVS(643)*UV(101)+JVS(655)*UV(103)+JVS(663)*UV(104)+JVS(669)*UV(105)+JVS(676)*UV(106)+JVS(679)& - &*UV(107)+JVS(685)*UV(108)+JVS(690)*UV(109)+JVS(694)*UV(110)+JVS(698)*UV(111)+JVS(701)*UV(112)+JVS(707)& - &*UV(113)+JVS(714)*UV(114)+JVS(718)*UV(115)+JVS(723)*UV(116)+JVS(728)*UV(117)+JVS(733)*UV(118)+JVS(744)& - &*UV(119)+JVS(749)*UV(120)+JVS(753)*UV(121)+JVS(759)*UV(122)+JVS(773)*UV(124)+JVS(777)*UV(125)+JVS(787)& - &*UV(126)+JVS(793)*UV(127)+JVS(799)*UV(128)+JVS(804)*UV(129)+JVS(809)*UV(130)+JVS(815)*UV(131)+JVS(834)& - &*UV(133)+JVS(838)*UV(134)+JVS(848)*UV(136)+JVS(852)*UV(137)+JVS(857)*UV(138)+JVS(864)*UV(139)+JVS(871)& - &*UV(140)+JVS(888)*UV(143)+JVS(900)*UV(145)+JVS(906)*UV(146)+JVS(911)*UV(147)+JVS(916)*UV(148)+JVS(922)& - &*UV(149)+JVS(925)*UV(150)+JVS(929)*UV(151)+JVS(940)*UV(152)+JVS(943)*UV(153)+JVS(957)*UV(154)+JVS(965)& - &*UV(155)+JVS(976)*UV(156)+JVS(983)*UV(157)+JVS(989)*UV(158)+JVS(996)*UV(159)+JVS(1003)*UV(160)+JVS(1006)& - &*UV(161)+JVS(1011)*UV(162)+JVS(1016)*UV(163)+JVS(1021)*UV(164)+JVS(1025)*UV(165)+JVS(1037)*UV(166)& - &+JVS(1042)*UV(167)+JVS(1052)*UV(168)+JVS(1084)*UV(170)+JVS(1096)*UV(171)+JVS(1109)*UV(173)+JVS(1122)& - &*UV(174)+JVS(1130)*UV(175)+JVS(1140)*UV(176)+JVS(1149)*UV(177)+JVS(1160)*UV(178)+JVS(1169)*UV(179)& - &+JVS(1176)*UV(180)+JVS(1193)*UV(181)+JVS(1200)*UV(182)+JVS(1207)*UV(183)+JVS(1214)*UV(184)+JVS(1219)& - &*UV(185)+JVS(1226)*UV(186)+JVS(1236)*UV(187)+JVS(1251)*UV(188)+JVS(1271)*UV(189)+JVS(1283)*UV(190)& - &+JVS(1301)*UV(192)+JVS(1321)*UV(193)+JVS(1342)*UV(194)+JVS(1357)*UV(195)+JVS(1368)*UV(196)+JVS(1378)& - &*UV(197)+JVS(1386)*UV(198)+JVS(1403)*UV(200)+JVS(1414)*UV(201)+JVS(1430)*UV(202)+JVS(1438)*UV(203)& - &+JVS(1448)*UV(204)+JVS(1466)*UV(205)+JVS(1478)*UV(206)+JVS(1511)*UV(207)+JVS(1529)*UV(208)+JVS(1555)& - &*UV(209)+JVS(1562)*UV(210)+JVS(1592)*UV(213)+JVS(1619)*UV(214)+JVS(1644)*UV(215)+JVS(1659)*UV(216)& - &+JVS(1666)*UV(217)+JVS(1705)*UV(218)+JVS(1722)*UV(219)+JVS(1728)*UV(220)+JVS(1736)*UV(221)+JVS(1756)& - &*UV(222)+JVS(1768)*UV(223)+JVS(1792)*UV(224)+JVS(1812)*UV(225)+JVS(1841)*UV(226)+JVS(1875)*UV(227)& - &+JVS(1936)*UV(228)+JVS(1953)*UV(229)+JVS(1974)*UV(231)+JVS(2023)*UV(232)+JVS(2043)*UV(233)+JVS(2055)& - &*UV(234)+JVS(2074)*UV(235)+JVS(2093)*UV(236)+JVS(2118)*UV(237)+JVS(2147)*UV(238)+JVS(2169)*UV(239)& - &+JVS(2179)*UV(240)+JVS(2191)*UV(241)+JVS(2206)*UV(242)+JVS(2221)*UV(243)+JVS(2245)*UV(244)+JVS(2265)& - &*UV(245)+JVS(2321)*UV(246)+JVS(2347)*UV(247)+JVS(2374)*UV(248)+JVS(2392)*UV(249)+JVS(2412)*UV(250)& - &+JVS(2426)*UV(251)+JVS(2442)*UV(252)+JVS(2462)*UV(253)+JVS(2476)*UV(254)+JVS(2512)*UV(255)+JVS(2523)& - &*UV(256)+JVS(2603)*UV(257)+JVS(2698)*UV(258)+JVS(2710)*UV(259)+JVS(2792)*UV(260)+JVS(2833)*UV(261)& - &+JVS(2936)*UV(262)+JVS(2999)*UV(263)+JVS(3017)*UV(264)+JVS(3046)*UV(265)+JVS(3090)*UV(267)+JVS(3353)& - &*UV(269)+JVS(3483)*UV(270)+JVS(3560)*UV(271)+JVS(3598)*UV(272)+JVS(3651)*UV(273)+JVS(3683)*UV(274)& - &+JVS(3794)*UV(277)+JVS(3828)*UV(278)+JVS(3916)*UV(279)+JVS(4014)*UV(280)+JVS(4185)*UV(281)+JVS(4240)& - &*UV(282)+JVS(4274)*UV(283)+JVS(4334)*UV(284)+JVS(4429)*UV(285)+JVS(4471)*UV(286)+JVS(4563)*UV(287) - JTUV(270) = JVS(216)*UV(31)+JVS(303)*UV(32)+JVS(452)*UV(49)+JVS(454)*UV(50)+JVS(472)*UV(57)+JVS(484)*UV(61)+JVS(491)& - &*UV(63)+JVS(522)*UV(71)+JVS(608)*UV(95)+JVS(644)*UV(101)+JVS(877)*UV(141)+JVS(883)*UV(142)+JVS(923)*UV(149)& - &+JVS(977)*UV(156)+JVS(1056)*UV(169)+JVS(1100)*UV(172)+JVS(1141)*UV(176)+JVS(1237)*UV(187)+JVS(1252)*UV(188)& - &+JVS(1289)*UV(191)+JVS(1358)*UV(195)+JVS(1391)*UV(199)+JVS(1439)*UV(203)+JVS(1479)*UV(206)+JVS(1769)& - &*UV(223)+JVS(1965)*UV(230)+JVS(2119)*UV(237)+JVS(2266)*UV(245)+JVS(2413)*UV(250)+JVS(2604)*UV(257)& - &+JVS(2711)*UV(259)+JVS(2793)*UV(260)+JVS(2834)*UV(261)+JVS(2937)*UV(262)+JVS(3000)*UV(263)+JVS(3047)& - &*UV(265)+JVS(3066)*UV(266)+JVS(3354)*UV(269)+JVS(3484)*UV(270)+JVS(3652)*UV(273)+JVS(3684)*UV(274)& - &+JVS(3795)*UV(277)+JVS(4015)*UV(280)+JVS(4186)*UV(281)+JVS(4241)*UV(282)+JVS(4335)*UV(284)+JVS(4564)& - &*UV(287) - JTUV(271) = JVS(304)*UV(32)+JVS(824)*UV(132)+JVS(843)*UV(135)+JVS(893)*UV(144)+JVS(1057)*UV(169)+JVS(1101)*UV(172)& - &+JVS(1110)*UV(173)+JVS(1253)*UV(188)+JVS(1302)*UV(192)+JVS(1976)*UV(231)+JVS(2525)*UV(256)+JVS(2712)& - &*UV(259)+JVS(2794)*UV(260)+JVS(3092)*UV(267)+JVS(3140)*UV(268)+JVS(3355)*UV(269)+JVS(3562)*UV(271)& - &+JVS(3653)*UV(273)+JVS(3830)*UV(278)+JVS(3918)*UV(279)+JVS(4276)*UV(283)+JVS(4336)*UV(284)+JVS(4431)& - &*UV(285) - JTUV(272) = JVS(305)*UV(32)+JVS(778)*UV(125)+JVS(825)*UV(132)+JVS(1111)*UV(173)+JVS(1254)*UV(188)+JVS(1977)*UV(231)& - &+JVS(2526)*UV(256)+JVS(2713)*UV(259)+JVS(2795)*UV(260)+JVS(3093)*UV(267)+JVS(3141)*UV(268)+JVS(3356)& - &*UV(269)+JVS(3601)*UV(272)+JVS(3686)*UV(274)+JVS(3712)*UV(275)+JVS(3738)*UV(276)+JVS(3797)*UV(277)& - &+JVS(3919)*UV(279)+JVS(4243)*UV(282)+JVS(4337)*UV(284) - JTUV(273) = JVS(306)*UV(32)+JVS(525)*UV(72)+JVS(631)*UV(98)+JVS(656)*UV(103)+JVS(680)*UV(107)+JVS(826)*UV(132)& - &+JVS(1303)*UV(192)+JVS(1770)*UV(223)+JVS(2714)*UV(259)+JVS(2938)*UV(262)+JVS(3001)*UV(263)+JVS(3048)& - &*UV(265)+JVS(3094)*UV(267)+JVS(3357)*UV(269)+JVS(3487)*UV(270)+JVS(3564)*UV(271)+JVS(3655)*UV(273)& - &+JVS(3687)*UV(274)+JVS(4018)*UV(280)+JVS(4189)*UV(281)+JVS(4244)*UV(282)+JVS(4338)*UV(284)+JVS(4433)& - &*UV(285) - JTUV(274) = JVS(307)*UV(32)+JVS(587)*UV(90)+JVS(657)*UV(103)+JVS(681)*UV(107)+JVS(779)*UV(125)+JVS(827)*UV(132)& - &+JVS(1102)*UV(172)+JVS(1771)*UV(223)+JVS(2527)*UV(256)+JVS(3049)*UV(265)+JVS(3358)*UV(269)+JVS(3488)& - &*UV(270)+JVS(3656)*UV(273)+JVS(3688)*UV(274)+JVS(4019)*UV(280)+JVS(4190)*UV(281)+JVS(4245)*UV(282)& - &+JVS(4339)*UV(284) - JTUV(275) = JVS(308)*UV(32)+JVS(515)*UV(69)+JVS(780)*UV(125)+JVS(828)*UV(132)+JVS(1255)*UV(188)+JVS(1392)*UV(199)& - &+JVS(1978)*UV(231)+JVS(2528)*UV(256)+JVS(2715)*UV(259)+JVS(2798)*UV(260)+JVS(3021)*UV(264)+JVS(3069)& - &*UV(266)+JVS(3715)*UV(275)+JVS(3800)*UV(277) - JTUV(276) = JVS(309)*UV(32)+JVS(516)*UV(69)+JVS(781)*UV(125)+JVS(829)*UV(132)+JVS(1256)*UV(188)+JVS(1393)*UV(199)& - &+JVS(1979)*UV(231)+JVS(2529)*UV(256)+JVS(2716)*UV(259)+JVS(2799)*UV(260)+JVS(3022)*UV(264)+JVS(3070)& - &*UV(266)+JVS(3742)*UV(276)+JVS(3801)*UV(277) - JTUV(277) = JVS(39)*UV(6)+JVS(122)*UV(28)+JVS(310)*UV(32)+JVS(385)*UV(33)+JVS(406)*UV(35)+JVS(422)*UV(37)+JVS(534)& - &*UV(75)+JVS(664)*UV(104)+JVS(745)*UV(119)+JVS(816)*UV(131)+JVS(844)*UV(135)+JVS(858)*UV(138)+JVS(894)& - &*UV(144)+JVS(901)*UV(145)+JVS(926)*UV(150)+JVS(930)*UV(151)+JVS(966)*UV(155)+JVS(978)*UV(156)+JVS(1026)& - &*UV(165)+JVS(1112)*UV(173)+JVS(1227)*UV(186)+JVS(1238)*UV(187)+JVS(1290)*UV(191)+JVS(1369)*UV(196)& - &+JVS(1513)*UV(207)+JVS(1531)*UV(208)+JVS(1646)*UV(215)+JVS(1707)*UV(218)+JVS(1729)*UV(220)+JVS(1757)& - &*UV(222)+JVS(1772)*UV(223)+JVS(1938)*UV(228)+JVS(1966)*UV(230)+JVS(2025)*UV(232)+JVS(2075)*UV(235)& - &+JVS(2246)*UV(244)+JVS(2348)*UV(247)+JVS(2393)*UV(249)+JVS(2477)*UV(254)+JVS(2514)*UV(255)+JVS(2530)& - &*UV(256)+JVS(2605)*UV(257)+JVS(2700)*UV(258)+JVS(2835)*UV(261)+JVS(2939)*UV(262)+JVS(3002)*UV(263)& - &+JVS(3052)*UV(265)+JVS(3146)*UV(268)+JVS(3361)*UV(269)+JVS(3491)*UV(270)+JVS(3606)*UV(272)+JVS(3659)& - &*UV(273)+JVS(3691)*UV(274)+JVS(3717)*UV(275)+JVS(3743)*UV(276)+JVS(3802)*UV(277)+JVS(4022)*UV(280)& - &+JVS(4193)*UV(281)+JVS(4248)*UV(282)+JVS(4342)*UV(284)+JVS(4437)*UV(285)+JVS(4479)*UV(286)+JVS(4571)& - &*UV(287) - JTUV(278) = JVS(311)*UV(32)+JVS(632)*UV(98)+JVS(830)*UV(132)+JVS(1058)*UV(169)+JVS(1258)*UV(188)+JVS(1305)*UV(192)& - &+JVS(1394)*UV(199)+JVS(1980)*UV(231)+JVS(2531)*UV(256)+JVS(2717)*UV(259)+JVS(2801)*UV(260)+JVS(3024)& - &*UV(264)+JVS(3072)*UV(266)+JVS(3099)*UV(267)+JVS(3362)*UV(269)+JVS(3837)*UV(278)+JVS(3925)*UV(279) - JTUV(279) = JVS(312)*UV(32)+JVS(423)*UV(37)+JVS(557)*UV(83)+JVS(1059)*UV(169)+JVS(1103)*UV(172)+JVS(1291)*UV(191)& - &+JVS(1514)*UV(207)+JVS(1532)*UV(208)+JVS(1647)*UV(215)+JVS(1967)*UV(230)+JVS(2532)*UV(256)+JVS(2718)& - &*UV(259)+JVS(2802)*UV(260)+JVS(2836)*UV(261)+JVS(2940)*UV(262)+JVS(3025)*UV(264)+JVS(3073)*UV(266)& - &+JVS(3100)*UV(267)+JVS(3148)*UV(268)+JVS(3363)*UV(269)+JVS(3926)*UV(279) - JTUV(280) = JVS(40)*UV(6)+JVS(62)*UV(11)+JVS(66)*UV(12)+JVS(79)*UV(16)+JVS(83)*UV(17)+JVS(92)*UV(20)+JVS(96)*UV(21)& - &+JVS(111)*UV(25)+JVS(115)*UV(26)+JVS(217)*UV(31)+JVS(386)*UV(33)+JVS(468)*UV(56)+JVS(485)*UV(61)+JVS(495)& - &*UV(64)+JVS(569)*UV(86)+JVS(573)*UV(87)+JVS(577)*UV(88)+JVS(581)*UV(89)+JVS(588)*UV(90)+JVS(650)*UV(102)& - &+JVS(719)*UV(115)+JVS(724)*UV(116)+JVS(750)*UV(120)+JVS(767)*UV(123)+JVS(810)*UV(130)+JVS(849)*UV(136)& - &+JVS(853)*UV(137)+JVS(878)*UV(141)+JVS(884)*UV(142)+JVS(889)*UV(143)+JVS(907)*UV(146)+JVS(917)*UV(148)& - &+JVS(979)*UV(156)+JVS(1012)*UV(162)+JVS(1017)*UV(163)+JVS(1022)*UV(164)+JVS(1038)*UV(166)+JVS(1053)*UV(168)& - &+JVS(1097)*UV(171)+JVS(1123)*UV(174)+JVS(1132)*UV(175)+JVS(1142)*UV(176)+JVS(1162)*UV(178)+JVS(1170)& - &*UV(179)+JVS(1177)*UV(180)+JVS(1208)*UV(183)+JVS(1220)*UV(185)+JVS(1239)*UV(187)+JVS(1259)*UV(188)& - &+JVS(1272)*UV(189)+JVS(1284)*UV(190)+JVS(1292)*UV(191)+JVS(1322)*UV(193)+JVS(1343)*UV(194)+JVS(1359)& - &*UV(195)+JVS(1370)*UV(196)+JVS(1379)*UV(197)+JVS(1387)*UV(198)+JVS(1405)*UV(200)+JVS(1416)*UV(201)& - &+JVS(1440)*UV(203)+JVS(1449)*UV(204)+JVS(1467)*UV(205)+JVS(1515)*UV(207)+JVS(1556)*UV(209)+JVS(1563)& - &*UV(210)+JVS(1573)*UV(211)+JVS(1585)*UV(212)+JVS(1593)*UV(213)+JVS(1660)*UV(216)+JVS(1667)*UV(217)& - &+JVS(1708)*UV(218)+JVS(1723)*UV(219)+JVS(1738)*UV(221)+JVS(1758)*UV(222)+JVS(1773)*UV(223)+JVS(1793)& - &*UV(224)+JVS(1813)*UV(225)+JVS(1844)*UV(226)+JVS(1878)*UV(227)+JVS(1939)*UV(228)+JVS(1954)*UV(229)& - &+JVS(1968)*UV(230)+JVS(2026)*UV(232)+JVS(2045)*UV(233)+JVS(2057)*UV(234)+JVS(2076)*UV(235)+JVS(2094)& - &*UV(236)+JVS(2121)*UV(237)+JVS(2148)*UV(238)+JVS(2170)*UV(239)+JVS(2181)*UV(240)+JVS(2193)*UV(241)& - &+JVS(2208)*UV(242)+JVS(2223)*UV(243)+JVS(2247)*UV(244)+JVS(2268)*UV(245)+JVS(2324)*UV(246)+JVS(2349)& - &*UV(247)+JVS(2377)*UV(248)+JVS(2394)*UV(249)+JVS(2415)*UV(250)+JVS(2429)*UV(251)+JVS(2445)*UV(252)& - &+JVS(2465)*UV(253)+JVS(2478)*UV(254)+JVS(2515)*UV(255)+JVS(2606)*UV(257)+JVS(2702)*UV(258)+JVS(2837)& - &*UV(261)+JVS(2941)*UV(262)+JVS(3004)*UV(263)+JVS(3055)*UV(265)+JVS(3364)*UV(269)+JVS(3494)*UV(270)& - &+JVS(3662)*UV(273)+JVS(3694)*UV(274)+JVS(3805)*UV(277)+JVS(4025)*UV(280)+JVS(4196)*UV(281)+JVS(4251)& - &*UV(282)+JVS(4345)*UV(284)+JVS(4440)*UV(285)+JVS(4574)*UV(287) - JTUV(281) = JVS(41)*UV(6)+JVS(59)*UV(10)+JVS(67)*UV(12)+JVS(76)*UV(15)+JVS(84)*UV(17)+JVS(89)*UV(19)+JVS(97)*UV(21)& - &+JVS(108)*UV(24)+JVS(116)*UV(26)+JVS(218)*UV(31)+JVS(313)*UV(32)+JVS(387)*UV(33)+JVS(424)*UV(37)+JVS(499)& - &*UV(65)+JVS(503)*UV(66)+JVS(507)*UV(67)+JVS(592)*UV(91)+JVS(596)*UV(92)+JVS(600)*UV(93)+JVS(604)*UV(94)& - &+JVS(645)*UV(101)+JVS(671)*UV(105)+JVS(686)*UV(108)+JVS(695)*UV(110)+JVS(699)*UV(111)+JVS(708)*UV(113)& - &+JVS(720)*UV(115)+JVS(725)*UV(116)+JVS(734)*UV(118)+JVS(751)*UV(120)+JVS(811)*UV(130)+JVS(835)*UV(133)& - &+JVS(839)*UV(134)+JVS(865)*UV(139)+JVS(879)*UV(141)+JVS(885)*UV(142)+JVS(890)*UV(143)+JVS(908)*UV(146)& - &+JVS(912)*UV(147)+JVS(918)*UV(148)+JVS(944)*UV(153)+JVS(990)*UV(158)+JVS(1007)*UV(161)+JVS(1013)*UV(162)& - &+JVS(1018)*UV(163)+JVS(1023)*UV(164)+JVS(1039)*UV(166)+JVS(1043)*UV(167)+JVS(1054)*UV(168)+JVS(1098)& - &*UV(171)+JVS(1113)*UV(173)+JVS(1124)*UV(174)+JVS(1133)*UV(175)+JVS(1143)*UV(176)+JVS(1150)*UV(177)& - &+JVS(1163)*UV(178)+JVS(1171)*UV(179)+JVS(1178)*UV(180)+JVS(1209)*UV(183)+JVS(1221)*UV(185)+JVS(1240)& - &*UV(187)+JVS(1285)*UV(190)+JVS(1323)*UV(193)+JVS(1344)*UV(194)+JVS(1360)*UV(195)+JVS(1371)*UV(196)& - &+JVS(1380)*UV(197)+JVS(1388)*UV(198)+JVS(1406)*UV(200)+JVS(1417)*UV(201)+JVS(1432)*UV(202)+JVS(1441)& - &*UV(203)+JVS(1450)*UV(204)+JVS(1468)*UV(205)+JVS(1534)*UV(208)+JVS(1574)*UV(211)+JVS(1586)*UV(212)& - &+JVS(1594)*UV(213)+JVS(1649)*UV(215)+JVS(1668)*UV(217)+JVS(1709)*UV(218)+JVS(1739)*UV(221)+JVS(1774)& - &*UV(223)+JVS(1794)*UV(224)+JVS(1814)*UV(225)+JVS(1845)*UV(226)+JVS(1879)*UV(227)+JVS(1940)*UV(228)& - &+JVS(1955)*UV(229)+JVS(2027)*UV(232)+JVS(2046)*UV(233)+JVS(2058)*UV(234)+JVS(2077)*UV(235)+JVS(2122)& - &*UV(237)+JVS(2149)*UV(238)+JVS(2171)*UV(239)+JVS(2182)*UV(240)+JVS(2194)*UV(241)+JVS(2209)*UV(242)& - &+JVS(2224)*UV(243)+JVS(2248)*UV(244)+JVS(2269)*UV(245)+JVS(2325)*UV(246)+JVS(2350)*UV(247)+JVS(2378)& - &*UV(248)+JVS(2395)*UV(249)+JVS(2416)*UV(250)+JVS(2430)*UV(251)+JVS(2446)*UV(252)+JVS(2466)*UV(253)& - &+JVS(2533)*UV(256)+JVS(2607)*UV(257)+JVS(2703)*UV(258)+JVS(2838)*UV(261)+JVS(2942)*UV(262)+JVS(3005)& - &*UV(263)+JVS(3027)*UV(264)+JVS(3056)*UV(265)+JVS(3102)*UV(267)+JVS(3365)*UV(269)+JVS(3495)*UV(270)& - &+JVS(3572)*UV(271)+JVS(3610)*UV(272)+JVS(3663)*UV(273)+JVS(3695)*UV(274)+JVS(3806)*UV(277)+JVS(3928)& - &*UV(279)+JVS(4026)*UV(280)+JVS(4197)*UV(281)+JVS(4252)*UV(282)+JVS(4346)*UV(284)+JVS(4441)*UV(285)& - &+JVS(4575)*UV(287) - JTUV(282) = JVS(388)*UV(33)+JVS(455)*UV(50)+JVS(754)*UV(121)+JVS(782)*UV(125)+JVS(984)*UV(157)+JVS(1104)*UV(172)& - &+JVS(1451)*UV(204)+JVS(1595)*UV(213)+JVS(1725)*UV(219)+JVS(2047)*UV(233)+JVS(2379)*UV(248)+JVS(2480)& - &*UV(254)+JVS(2608)*UV(257)+JVS(2704)*UV(258)+JVS(2839)*UV(261)+JVS(2943)*UV(262)+JVS(3496)*UV(270)& - &+JVS(3611)*UV(272)+JVS(3696)*UV(274)+JVS(3807)*UV(277)+JVS(4198)*UV(281)+JVS(4253)*UV(282)+JVS(4576)& - &*UV(287) - JTUV(283) = JVS(314)*UV(32)+JVS(633)*UV(98)+JVS(831)*UV(132)+JVS(1060)*UV(169)+JVS(1260)*UV(188)+JVS(1306)*UV(192)& - &+JVS(1395)*UV(199)+JVS(1982)*UV(231)+JVS(2535)*UV(256)+JVS(2719)*UV(259)+JVS(2806)*UV(260)+JVS(3028)& - &*UV(264)+JVS(3076)*UV(266)+JVS(3104)*UV(267)+JVS(3367)*UV(269)+JVS(3930)*UV(279)+JVS(4288)*UV(283) - JTUV(284) = JVS(315)*UV(32)+JVS(389)*UV(33)+JVS(488)*UV(62)+JVS(1114)*UV(173)+JVS(1535)*UV(208)+JVS(2536)*UV(256)& - &+JVS(2705)*UV(258)+JVS(2720)*UV(259)+JVS(2944)*UV(262)+JVS(3368)*UV(269)+JVS(3498)*UV(270)+JVS(3613)& - &*UV(272)+JVS(3666)*UV(273)+JVS(3698)*UV(274)+JVS(3809)*UV(277)+JVS(4029)*UV(280)+JVS(4200)*UV(281)& - &+JVS(4255)*UV(282)+JVS(4349)*UV(284)+JVS(4444)*UV(285)+JVS(4486)*UV(286)+JVS(4578)*UV(287) - JTUV(285) = JVS(42)*UV(6)+JVS(219)*UV(31)+JVS(390)*UV(33)+JVS(412)*UV(36)+JVS(510)*UV(68)+JVS(528)*UV(73)+JVS(641)& - &*UV(100)+JVS(658)*UV(103)+JVS(702)*UV(112)+JVS(755)*UV(121)+JVS(805)*UV(129)+JVS(840)*UV(134)+JVS(985)& - &*UV(157)+JVS(1115)*UV(173)+JVS(1228)*UV(186)+JVS(1307)*UV(192)+JVS(1452)*UV(204)+JVS(1517)*UV(207)& - &+JVS(1536)*UV(208)+JVS(1596)*UV(213)+JVS(1624)*UV(214)+JVS(1651)*UV(215)+JVS(1726)*UV(219)+JVS(1730)& - &*UV(220)+JVS(2048)*UV(233)+JVS(2079)*UV(235)+JVS(2210)*UV(242)+JVS(2225)*UV(243)+JVS(2380)*UV(248)& - &+JVS(2447)*UV(252)+JVS(2468)*UV(253)+JVS(2481)*UV(254)+JVS(2706)*UV(258)+JVS(2721)*UV(259)+JVS(2841)& - &*UV(261)+JVS(2945)*UV(262)+JVS(3008)*UV(263)+JVS(3369)*UV(269)+JVS(3576)*UV(271)+JVS(3667)*UV(273)& - &+JVS(3810)*UV(277)+JVS(3932)*UV(279)+JVS(4201)*UV(281)+JVS(4445)*UV(285)+JVS(4579)*UV(287) - JTUV(286) = JVS(123)*UV(28)+JVS(316)*UV(32)+JVS(407)*UV(35)+JVS(565)*UV(85)+JVS(746)*UV(119)+JVS(845)*UV(135)+JVS(895)& - &*UV(144)+JVS(1293)*UV(191)+JVS(1537)*UV(208)+JVS(1970)*UV(230)+JVS(2537)*UV(256)+JVS(2842)*UV(261)& - &+JVS(2946)*UV(262)+JVS(3107)*UV(267)+JVS(3370)*UV(269)+JVS(3577)*UV(271)+JVS(3615)*UV(272)+JVS(3811)& - &*UV(277)+JVS(4202)*UV(281)+JVS(4488)*UV(286) - JTUV(287) = JVS(43)*UV(6)+JVS(73)*UV(14)+JVS(317)*UV(32)+JVS(391)*UV(33)+JVS(476)*UV(58)+JVS(480)*UV(59)+JVS(553)& - &*UV(82)+JVS(638)*UV(99)+JVS(651)*UV(102)+JVS(691)*UV(109)+JVS(703)*UV(112)+JVS(729)*UV(117)+JVS(768)& - &*UV(123)+JVS(817)*UV(131)+JVS(859)*UV(138)+JVS(873)*UV(140)+JVS(902)*UV(145)+JVS(927)*UV(150)+JVS(931)& - &*UV(151)+JVS(967)*UV(155)+JVS(981)*UV(156)+JVS(986)*UV(157)+JVS(1027)*UV(165)+JVS(1061)*UV(169)+JVS(1125)& - &*UV(174)+JVS(1134)*UV(175)+JVS(1144)*UV(176)+JVS(1164)*UV(178)+JVS(1241)*UV(187)+JVS(1345)*UV(194)& - &+JVS(1372)*UV(196)+JVS(1381)*UV(197)+JVS(1442)*UV(203)+JVS(1469)*UV(205)+JVS(1483)*UV(206)+JVS(1575)& - &*UV(211)+JVS(1587)*UV(212)+JVS(1597)*UV(213)+JVS(1710)*UV(218)+JVS(1731)*UV(220)+JVS(1740)*UV(221)& - &+JVS(1760)*UV(222)+JVS(1942)*UV(228)+JVS(2059)*UV(234)+JVS(2096)*UV(236)+JVS(2184)*UV(240)+JVS(2196)& - &*UV(241)+JVS(2250)*UV(244)+JVS(2271)*UV(245)+JVS(2328)*UV(246)+JVS(2352)*UV(247)+JVS(2396)*UV(249)& - &+JVS(2418)*UV(250)+JVS(2431)*UV(251)+JVS(2448)*UV(252)+JVS(2482)*UV(254)+JVS(2519)*UV(255)+JVS(2610)& - &*UV(257)+JVS(2708)*UV(258)+JVS(2810)*UV(260)+JVS(2843)*UV(261)+JVS(2947)*UV(262)+JVS(3010)*UV(263)& - &+JVS(3058)*UV(265)+JVS(3077)*UV(266)+JVS(3371)*UV(269)+JVS(3501)*UV(270)+JVS(3701)*UV(274)+JVS(4032)& - &*UV(280)+JVS(4203)*UV(281)+JVS(4258)*UV(282)+JVS(4352)*UV(284)+JVS(4489)*UV(286)+JVS(4581)*UV(287) + JTUV(7) = JVS(14)*UV(7) + JTUV(8) = JVS(68)*UV(8) + JTUV(9) = JVS(71)*UV(9) + JTUV(10) = JVS(79)*UV(10) + JTUV(11) = JVS(87)*UV(11) + JTUV(12) = JVS(90)*UV(12) + JTUV(13) = JVS(88)*UV(11)+JVS(91)*UV(12)+JVS(93)*UV(13) + JTUV(14) = JVS(98)*UV(14) + JTUV(15) = JVS(101)*UV(15) + JTUV(16) = JVS(104)*UV(16) + JTUV(17) = JVS(107)*UV(17) + JTUV(18) = JVS(105)*UV(16)+JVS(108)*UV(17)+JVS(110)*UV(18) + JTUV(19) = JVS(111)*UV(18)+JVS(115)*UV(19) + JTUV(20) = JVS(117)*UV(20) + JTUV(21) = JVS(120)*UV(21) + JTUV(22) = JVS(118)*UV(20)+JVS(121)*UV(21)+JVS(123)*UV(22) + JTUV(23) = JVS(128)*UV(23) + JTUV(24) = JVS(129)*UV(23)+JVS(130)*UV(24) + JTUV(25) = JVS(136)*UV(25) + JTUV(26) = JVS(139)*UV(26) + JTUV(27) = JVS(137)*UV(25)+JVS(140)*UV(26)+JVS(142)*UV(27) + JTUV(28) = JVS(147)*UV(28) + JTUV(29) = JVS(150)*UV(29) + JTUV(30) = JVS(154)*UV(30) + JTUV(31) = JVS(158)*UV(31) + JTUV(32) = JVS(164)*UV(32) + JTUV(33) = JVS(169)*UV(33) + JTUV(34) = JVS(175)*UV(34) + JTUV(35) = JVS(257)*UV(35) + JTUV(36) = JVS(359)*UV(36) + JTUV(37) = JVS(434)*UV(37) + JTUV(38) = JVS(439)*UV(38) + JTUV(39) = JVS(450)*UV(39) + JTUV(40) = JVS(455)*UV(40) + JTUV(41) = JVS(12)*UV(6)+JVS(467)*UV(41)+JVS(4059)*UV(286) + JTUV(42) = JVS(5)*UV(4)+JVS(72)*UV(9)+JVS(80)*UV(10)+JVS(258)*UV(35)+JVS(469)*UV(42)+JVS(618)*UV(92) + JTUV(43) = JVS(471)*UV(43)+JVS(3439)*UV(278)+JVS(4060)*UV(286)+JVS(4409)*UV(290) + JTUV(44) = JVS(6)*UV(4)+JVS(73)*UV(9)+JVS(81)*UV(10)+JVS(259)*UV(35)+JVS(473)*UV(44)+JVS(619)*UV(92)+JVS(1807)*UV(227)& + &+JVS(3080)*UV(269) + JTUV(45) = JVS(69)*UV(8)+JVS(176)*UV(34)+JVS(475)*UV(45)+JVS(2804)*UV(265) + JTUV(46) = JVS(479)*UV(46)+JVS(2895)*UV(266)+JVS(3081)*UV(269)+JVS(3440)*UV(278)+JVS(4061)*UV(286) + JTUV(47) = JVS(481)*UV(47)+JVS(3157)*UV(272)+JVS(3207)*UV(273)+JVS(3262)*UV(274)+JVS(4308)*UV(288) + JTUV(48) = JVS(483)*UV(48)+JVS(3158)*UV(272)+JVS(3208)*UV(273)+JVS(3263)*UV(274)+JVS(4309)*UV(288) + JTUV(49) = JVS(7)*UV(4)+JVS(74)*UV(9)+JVS(82)*UV(10)+JVS(260)*UV(35)+JVS(485)*UV(49)+JVS(620)*UV(92)+JVS(1808)*UV(227) + JTUV(50) = JVS(488)*UV(50)+JVS(2454)*UV(255)+JVS(4503)*UV(291) + JTUV(51) = JVS(491)*UV(51)+JVS(3209)*UV(273)+JVS(4504)*UV(291) + JTUV(52) = JVS(494)*UV(52)+JVS(3159)*UV(272)+JVS(4005)*UV(285)+JVS(4310)*UV(288)+JVS(4410)*UV(290) + JTUV(53) = JVS(496)*UV(53)+JVS(3160)*UV(272)+JVS(4006)*UV(285)+JVS(4311)*UV(288)+JVS(4411)*UV(290) + JTUV(54) = JVS(498)*UV(54)+JVS(3161)*UV(272)+JVS(4007)*UV(285)+JVS(4312)*UV(288)+JVS(4412)*UV(290) + JTUV(55) = JVS(261)*UV(35)+JVS(500)*UV(55)+JVS(3162)*UV(272)+JVS(4008)*UV(285)+JVS(4313)*UV(288)+JVS(4413)*UV(290) + JTUV(56) = JVS(262)*UV(35)+JVS(502)*UV(56)+JVS(3163)*UV(272)+JVS(4009)*UV(285)+JVS(4314)*UV(288)+JVS(4414)*UV(290) + JTUV(57) = JVS(504)*UV(57)+JVS(3164)*UV(272)+JVS(4010)*UV(285)+JVS(4315)*UV(288)+JVS(4415)*UV(290) + JTUV(58) = JVS(360)*UV(36)+JVS(506)*UV(58)+JVS(1530)*UV(211)+JVS(1731)*UV(223)+JVS(2957)*UV(267)+JVS(3834)*UV(284)& + &+JVS(4062)*UV(286) + JTUV(59) = JVS(508)*UV(59)+JVS(3165)*UV(272)+JVS(3210)*UV(273)+JVS(3264)*UV(274)+JVS(4011)*UV(285)+JVS(4316)*UV(288)& + &+JVS(4416)*UV(290) + JTUV(60) = JVS(510)*UV(60)+JVS(907)*UV(143)+JVS(3082)*UV(269)+JVS(3527)*UV(279) + JTUV(61) = JVS(177)*UV(34)+JVS(263)*UV(35)+JVS(513)*UV(61)+JVS(3166)*UV(272)+JVS(3528)*UV(279) + JTUV(62) = JVS(264)*UV(35)+JVS(517)*UV(62)+JVS(1299)*UV(193)+JVS(4505)*UV(291) + JTUV(63) = JVS(265)*UV(35)+JVS(521)*UV(63)+JVS(1300)*UV(193)+JVS(4506)*UV(291) + JTUV(64) = JVS(94)*UV(13)+JVS(361)*UV(36)+JVS(525)*UV(64)+JVS(757)*UV(118)+JVS(1003)*UV(159)+JVS(1211)*UV(184)& + &+JVS(1732)*UV(223)+JVS(2958)*UV(267)+JVS(3835)*UV(284)+JVS(4063)*UV(286) + JTUV(65) = JVS(178)*UV(34)+JVS(514)*UV(61)+JVS(527)*UV(65)+JVS(3529)*UV(279)+JVS(4317)*UV(288)+JVS(4507)*UV(291) + JTUV(66) = JVS(15)*UV(7)+JVS(266)*UV(35)+JVS(362)*UV(36)+JVS(530)*UV(66)+JVS(2959)*UV(267)+JVS(3371)*UV(276)+JVS(4064)& + &*UV(286)+JVS(4318)*UV(288) + JTUV(67) = JVS(16)*UV(7)+JVS(179)*UV(34)+JVS(533)*UV(67)+JVS(2582)*UV(261)+JVS(2896)*UV(266)+JVS(3657)*UV(281)& + &+JVS(4508)*UV(291) + JTUV(68) = JVS(180)*UV(34)+JVS(536)*UV(68)+JVS(2030)*UV(236)+JVS(4065)*UV(286)+JVS(4509)*UV(291) + JTUV(69) = JVS(8)*UV(4)+JVS(75)*UV(9)+JVS(83)*UV(10)+JVS(540)*UV(69)+JVS(3083)*UV(269)+JVS(3441)*UV(278)+JVS(4066)& + &*UV(286) + JTUV(70) = JVS(17)*UV(7)+JVS(544)*UV(70)+JVS(1181)*UV(180)+JVS(1275)*UV(191)+JVS(4067)*UV(286) + JTUV(71) = JVS(548)*UV(71)+JVS(3168)*UV(272)+JVS(3211)*UV(273)+JVS(3265)*UV(274)+JVS(4068)*UV(286)+JVS(4319)*UV(288) + JTUV(72) = JVS(363)*UV(36)+JVS(551)*UV(72)+JVS(2960)*UV(267)+JVS(3294)*UV(275)+JVS(3836)*UV(284)+JVS(4069)*UV(286)& + &+JVS(4417)*UV(290) + JTUV(73) = JVS(554)*UV(73)+JVS(3084)*UV(269)+JVS(3212)*UV(273) + JTUV(74) = JVS(181)*UV(34)+JVS(560)*UV(74)+JVS(2668)*UV(263)+JVS(2897)*UV(266)+JVS(3658)*UV(281)+JVS(3837)*UV(284)& + &+JVS(4510)*UV(291) + JTUV(75) = JVS(267)*UV(35)+JVS(563)*UV(75)+JVS(679)*UV(103)+JVS(3125)*UV(271)+JVS(4012)*UV(285)+JVS(4070)*UV(286)& + &+JVS(4418)*UV(290) + JTUV(76) = JVS(268)*UV(35)+JVS(566)*UV(76)+JVS(1172)*UV(179)+JVS(2003)*UV(234)+JVS(2669)*UV(263)+JVS(3749)*UV(282)& + &+JVS(4071)*UV(286) + JTUV(77) = JVS(569)*UV(77)+JVS(3169)*UV(272)+JVS(3213)*UV(273)+JVS(3266)*UV(274)+JVS(4072)*UV(286)+JVS(4320)*UV(288) + JTUV(78) = JVS(364)*UV(36)+JVS(572)*UV(78)+JVS(2961)*UV(267)+JVS(3295)*UV(275)+JVS(3838)*UV(284)+JVS(4073)*UV(286)& + &+JVS(4419)*UV(290) + JTUV(79) = JVS(124)*UV(22)+JVS(365)*UV(36)+JVS(575)*UV(79)+JVS(670)*UV(101)+JVS(740)*UV(115)+JVS(937)*UV(148)& + &+JVS(1004)*UV(159)+JVS(1212)*UV(184)+JVS(1733)*UV(223)+JVS(1942)*UV(233)+JVS(2271)*UV(248)+JVS(2962)*UV(267)& + &+JVS(3839)*UV(284)+JVS(4074)*UV(286) + JTUV(80) = JVS(143)*UV(27)+JVS(366)*UV(36)+JVS(577)*UV(80)+JVS(671)*UV(101)+JVS(741)*UV(115)+JVS(938)*UV(148)& + &+JVS(1005)*UV(159)+JVS(1213)*UV(184)+JVS(1734)*UV(223)+JVS(1943)*UV(233)+JVS(2272)*UV(248)+JVS(2963)*UV(267)& + &+JVS(3840)*UV(284)+JVS(4075)*UV(286) + JTUV(81) = JVS(579)*UV(81)+JVS(3170)*UV(272)+JVS(3442)*UV(278)+JVS(4013)*UV(285)+JVS(4076)*UV(286)+JVS(4321)*UV(288)& + &+JVS(4420)*UV(290) + JTUV(82) = JVS(582)*UV(82)+JVS(3171)*UV(272)+JVS(3443)*UV(278)+JVS(4014)*UV(285)+JVS(4077)*UV(286)+JVS(4322)*UV(288)& + &+JVS(4421)*UV(290) + JTUV(83) = JVS(585)*UV(83)+JVS(3172)*UV(272)+JVS(3444)*UV(278)+JVS(4015)*UV(285)+JVS(4078)*UV(286)+JVS(4323)*UV(288)& + &+JVS(4422)*UV(290) + JTUV(84) = JVS(269)*UV(35)+JVS(588)*UV(84)+JVS(3173)*UV(272)+JVS(3445)*UV(278)+JVS(4016)*UV(285)+JVS(4079)*UV(286)& + &+JVS(4324)*UV(288)+JVS(4423)*UV(290) + JTUV(85) = JVS(591)*UV(85)+JVS(1531)*UV(211)+JVS(2670)*UV(263)+JVS(3841)*UV(284)+JVS(4080)*UV(286) + JTUV(86) = JVS(170)*UV(33)+JVS(440)*UV(38)+JVS(595)*UV(86)+JVS(776)*UV(122)+JVS(2671)*UV(263)+JVS(3372)*UV(276)& + &+JVS(4081)*UV(286) + JTUV(87) = JVS(182)*UV(34)+JVS(599)*UV(87)+JVS(1707)*UV(221)+JVS(3842)*UV(284)+JVS(4082)*UV(286)+JVS(4511)*UV(291) + JTUV(88) = JVS(18)*UV(7)+JVS(603)*UV(88)+JVS(2583)*UV(261)+JVS(2672)*UV(263)+JVS(2898)*UV(266)+JVS(4083)*UV(286) + JTUV(89) = JVS(183)*UV(34)+JVS(607)*UV(89)+JVS(2673)*UV(263)+JVS(3843)*UV(284)+JVS(4084)*UV(286)+JVS(4512)*UV(291) + JTUV(90) = JVS(148)*UV(28)+JVS(270)*UV(35)+JVS(611)*UV(90)+JVS(2674)*UV(263)+JVS(2805)*UV(265)+JVS(2899)*UV(266)& + &+JVS(3373)*UV(276)+JVS(3659)*UV(281)+JVS(4085)*UV(286) + JTUV(91) = JVS(184)*UV(34)+JVS(614)*UV(91)+JVS(2527)*UV(259)+JVS(3844)*UV(284)+JVS(4086)*UV(286)+JVS(4513)*UV(291) + JTUV(92) = JVS(271)*UV(35)+JVS(470)*UV(42)+JVS(486)*UV(49)+JVS(621)*UV(92)+JVS(1809)*UV(227)+JVS(3085)*UV(269)& + &+JVS(3530)*UV(279)+JVS(4514)*UV(291) + JTUV(93) = JVS(625)*UV(93)+JVS(2476)*UV(256)+JVS(2528)*UV(259)+JVS(3845)*UV(284)+JVS(4087)*UV(286) + JTUV(94) = JVS(629)*UV(94)+JVS(2076)*UV(237)+JVS(2529)*UV(259)+JVS(3846)*UV(284)+JVS(4088)*UV(286) + JTUV(95) = JVS(633)*UV(95)+JVS(1708)*UV(221)+JVS(2506)*UV(258)+JVS(3847)*UV(284)+JVS(4089)*UV(286) + JTUV(96) = JVS(185)*UV(34)+JVS(637)*UV(96)+JVS(2773)*UV(264)+JVS(3848)*UV(284)+JVS(4090)*UV(286)+JVS(4515)*UV(291) + JTUV(97) = JVS(19)*UV(7)+JVS(186)*UV(34)+JVS(641)*UV(97)+JVS(700)*UV(107)+JVS(1182)*UV(180)+JVS(4091)*UV(286)& + &+JVS(4516)*UV(291) + JTUV(98) = JVS(70)*UV(8)+JVS(187)*UV(34)+JVS(645)*UV(98)+JVS(2806)*UV(265) + JTUV(99) = JVS(659)*UV(99)+JVS(3086)*UV(269)+JVS(4424)*UV(290) + JTUV(100) = JVS(272)*UV(35)+JVS(667)*UV(100)+JVS(2900)*UV(266)+JVS(3174)*UV(272)+JVS(3214)*UV(273)+JVS(3267)*UV(274)& + &+JVS(3446)*UV(278)+JVS(3849)*UV(284)+JVS(4092)*UV(286) + JTUV(101) = JVS(273)*UV(35)+JVS(367)*UV(36)+JVS(672)*UV(101)+JVS(1183)*UV(180)+JVS(1276)*UV(191)+JVS(2807)*UV(265)& + &+JVS(2964)*UV(267)+JVS(3660)*UV(281)+JVS(3850)*UV(284)+JVS(4093)*UV(286) + JTUV(102) = JVS(188)*UV(34)+JVS(675)*UV(102)+JVS(3447)*UV(278)+JVS(3661)*UV(281)+JVS(3851)*UV(284)+JVS(4094)*UV(286)& + &+JVS(4517)*UV(291) + JTUV(103) = JVS(189)*UV(34)+JVS(680)*UV(103)+JVS(1356)*UV(197)+JVS(4017)*UV(285)+JVS(4425)*UV(290) + JTUV(104) = JVS(20)*UV(7)+JVS(155)*UV(30)+JVS(686)*UV(104)+JVS(2584)*UV(261)+JVS(3852)*UV(284)+JVS(4095)*UV(286) + JTUV(105) = JVS(159)*UV(31)+JVS(368)*UV(36)+JVS(692)*UV(105)+JVS(1532)*UV(211)+JVS(1944)*UV(233)+JVS(2585)*UV(261)& + &+JVS(2965)*UV(267)+JVS(4096)*UV(286) + JTUV(106) = JVS(696)*UV(106)+JVS(2455)*UV(255)+JVS(2774)*UV(264)+JVS(2901)*UV(266)+JVS(3853)*UV(284)+JVS(4097)*UV(286) + JTUV(107) = JVS(701)*UV(107)+JVS(1013)*UV(160)+JVS(1277)*UV(191)+JVS(4098)*UV(286) + JTUV(108) = JVS(707)*UV(108)+JVS(2031)*UV(236)+JVS(2675)*UV(263)+JVS(3854)*UV(284) + JTUV(109) = JVS(369)*UV(36)+JVS(713)*UV(109)+JVS(977)*UV(156)+JVS(2966)*UV(267)+JVS(3855)*UV(284)+JVS(4099)*UV(286) + JTUV(110) = JVS(718)*UV(110)+JVS(2106)*UV(239)+JVS(2775)*UV(264)+JVS(3856)*UV(284)+JVS(4100)*UV(286) + JTUV(111) = JVS(274)*UV(35)+JVS(723)*UV(111)+JVS(3126)*UV(271)+JVS(4018)*UV(285)+JVS(4101)*UV(286)+JVS(4325)*UV(288) + JTUV(112) = JVS(728)*UV(112)+JVS(1506)*UV(209)+JVS(2316)*UV(250)+JVS(2676)*UV(263)+JVS(2776)*UV(264)+JVS(3857)*UV(284)& + &+JVS(4102)*UV(286) + JTUV(113) = JVS(732)*UV(113)+JVS(1370)*UV(198)+JVS(1419)*UV(201)+JVS(2530)*UV(259)+JVS(3858)*UV(284)+JVS(4103)*UV(286)& + &+JVS(4518)*UV(291) + JTUV(114) = JVS(275)*UV(35)+JVS(736)*UV(114)+JVS(2477)*UV(256)+JVS(2808)*UV(265)+JVS(3296)*UV(275)+JVS(3662)*UV(281)& + &+JVS(4104)*UV(286)+JVS(4426)*UV(290) + JTUV(115) = JVS(276)*UV(35)+JVS(742)*UV(115)+JVS(901)*UV(142)+JVS(939)*UV(148)+JVS(1014)*UV(160)+JVS(1214)*UV(184)& + &+JVS(1516)*UV(210)+JVS(2809)*UV(265)+JVS(3663)*UV(281)+JVS(3859)*UV(284)+JVS(4105)*UV(286) + JTUV(116) = JVS(160)*UV(31)+JVS(745)*UV(116)+JVS(1107)*UV(174)+JVS(1320)*UV(194)+JVS(3860)*UV(284)+JVS(4106)*UV(286) + JTUV(117) = JVS(751)*UV(117)+JVS(1069)*UV(169)+JVS(1225)*UV(185)+JVS(3861)*UV(284)+JVS(4107)*UV(286) + JTUV(118) = JVS(277)*UV(35)+JVS(758)*UV(118)+JVS(902)*UV(142)+JVS(1006)*UV(159)+JVS(1015)*UV(160)+JVS(1215)*UV(184)& + &+JVS(1517)*UV(210)+JVS(1735)*UV(223)+JVS(2810)*UV(265)+JVS(3664)*UV(281)+JVS(3862)*UV(284)+JVS(4108)& + &*UV(286) + JTUV(119) = JVS(761)*UV(119)+JVS(1787)*UV(226)+JVS(2478)*UV(256)+JVS(2531)*UV(259)+JVS(3863)*UV(284)+JVS(4109)*UV(286) + JTUV(120) = JVS(708)*UV(108)+JVS(766)*UV(120)+JVS(1173)*UV(179)+JVS(2032)*UV(236)+JVS(4110)*UV(286) + JTUV(121) = JVS(21)*UV(7)+JVS(190)*UV(34)+JVS(771)*UV(121)+JVS(2273)*UV(248)+JVS(3531)*UV(279)+JVS(3865)*UV(284)& + &+JVS(4111)*UV(286)+JVS(4519)*UV(291) + JTUV(122) = JVS(777)*UV(122)+JVS(3374)*UV(276)+JVS(4112)*UV(286) + JTUV(123) = JVS(22)*UV(7)+JVS(191)*UV(34)+JVS(788)*UV(123)+JVS(2373)*UV(251)+JVS(3532)*UV(279)+JVS(3866)*UV(284)& + &+JVS(4113)*UV(286)+JVS(4520)*UV(291) + JTUV(124) = JVS(793)*UV(124)+JVS(2077)*UV(237)+JVS(2507)*UV(258)+JVS(3215)*UV(273)+JVS(3297)*UV(275)+JVS(4114)*UV(286)& + &+JVS(4369)*UV(289)+JVS(4427)*UV(290) + JTUV(125) = JVS(370)*UV(36)+JVS(797)*UV(125)+JVS(978)*UV(156)+JVS(1070)*UV(169)+JVS(1226)*UV(185)+JVS(1821)*UV(228)& + &+JVS(1841)*UV(229)+JVS(2967)*UV(267)+JVS(3867)*UV(284)+JVS(4115)*UV(286) + JTUV(126) = JVS(801)*UV(126)+JVS(1928)*UV(232)+JVS(2127)*UV(240)+JVS(3868)*UV(284) + JTUV(127) = JVS(371)*UV(36)+JVS(810)*UV(127)+JVS(1108)*UV(174)+JVS(1894)*UV(231)+JVS(2374)*UV(251)+JVS(2968)*UV(267)& + &+JVS(3869)*UV(284)+JVS(4116)*UV(286) + JTUV(128) = JVS(192)*UV(34)+JVS(815)*UV(128)+JVS(2564)*UV(260)+JVS(3216)*UV(273)+JVS(4117)*UV(286) + JTUV(129) = JVS(372)*UV(36)+JVS(824)*UV(129)+JVS(1109)*UV(174)+JVS(1861)*UV(230)+JVS(2274)*UV(248)+JVS(2969)*UV(267)& + &+JVS(3870)*UV(284)+JVS(4118)*UV(286) + JTUV(130) = JVS(161)*UV(31)+JVS(829)*UV(130)+JVS(1110)*UV(174)+JVS(1822)*UV(228)+JVS(1842)*UV(229)+JVS(3871)*UV(284)& + &+JVS(4119)*UV(286) + JTUV(131) = JVS(162)*UV(31)+JVS(835)*UV(131)+JVS(1111)*UV(174)+JVS(1823)*UV(228)+JVS(1843)*UV(229)+JVS(3872)*UV(284)& + &+JVS(4120)*UV(286) + JTUV(132) = JVS(373)*UV(36)+JVS(841)*UV(132)+JVS(1227)*UV(185)+JVS(2317)*UV(250)+JVS(2970)*UV(267)+JVS(3873)*UV(284)& + &+JVS(4121)*UV(286) + JTUV(133) = JVS(847)*UV(133)+JVS(2777)*UV(264)+JVS(3298)*UV(275)+JVS(3874)*UV(284)+JVS(4122)*UV(286)+JVS(4428)*UV(290) + JTUV(134) = JVS(193)*UV(34)+JVS(278)*UV(35)+JVS(476)*UV(45)+JVS(853)*UV(134)+JVS(2318)*UV(250)+JVS(3665)*UV(281)& + &+JVS(4123)*UV(286)+JVS(4521)*UV(291) + JTUV(135) = JVS(859)*UV(135)+JVS(3217)*UV(273)+JVS(4429)*UV(290) + JTUV(136) = JVS(23)*UV(7)+JVS(374)*UV(36)+JVS(693)*UV(105)+JVS(873)*UV(136)+JVS(1479)*UV(207)+JVS(2319)*UV(250)& + &+JVS(2586)*UV(261)+JVS(2678)*UV(263)+JVS(2902)*UV(266)+JVS(2971)*UV(267)+JVS(4124)*UV(286) + JTUV(137) = JVS(877)*UV(137)+JVS(2679)*UV(263)+JVS(2903)*UV(266)+JVS(3299)*UV(275)+JVS(3448)*UV(278)+JVS(3875)*UV(284)& + &+JVS(4125)*UV(286)+JVS(4430)*UV(290) + JTUV(138) = JVS(151)*UV(29)+JVS(279)*UV(35)+JVS(522)*UV(63)+JVS(882)*UV(138)+JVS(2812)*UV(265)+JVS(3300)*UV(275)& + &+JVS(3375)*UV(276)+JVS(3750)*UV(282)+JVS(4275)*UV(287) + JTUV(139) = JVS(280)*UV(35)+JVS(646)*UV(98)+JVS(830)*UV(130)+JVS(836)*UV(131)+JVS(887)*UV(139)+JVS(1058)*UV(167)& + &+JVS(2275)*UV(248)+JVS(2680)*UV(263)+JVS(3876)*UV(284)+JVS(4126)*UV(286)+JVS(4523)*UV(291) + JTUV(140) = JVS(281)*UV(35)+JVS(647)*UV(98)+JVS(831)*UV(130)+JVS(837)*UV(131)+JVS(891)*UV(140)+JVS(958)*UV(152)& + &+JVS(2375)*UV(251)+JVS(2681)*UV(263)+JVS(3877)*UV(284)+JVS(4127)*UV(286)+JVS(4524)*UV(291) + JTUV(141) = JVS(895)*UV(141)+JVS(1042)*UV(164)+JVS(1464)*UV(206)+JVS(2033)*UV(236)+JVS(2320)*UV(250)+JVS(3878)*UV(284)& + &+JVS(4128)*UV(286) + JTUV(142) = JVS(282)*UV(35)+JVS(903)*UV(142)+JVS(1007)*UV(159)+JVS(1016)*UV(160)+JVS(1216)*UV(184)+JVS(1518)*UV(210)& + &+JVS(2034)*UV(236)+JVS(2815)*UV(265)+JVS(3666)*UV(281)+JVS(3751)*UV(282)+JVS(3879)*UV(284)+JVS(4129)& + &*UV(286) + JTUV(143) = JVS(194)*UV(34)+JVS(908)*UV(143)+JVS(3058)*UV(268)+JVS(3087)*UV(269)+JVS(3106)*UV(270)+JVS(3667)*UV(281)& + &+JVS(4130)*UV(286) + JTUV(144) = JVS(195)*UV(34)+JVS(915)*UV(144)+JVS(1442)*UV(204)+JVS(2143)*UV(241)+JVS(3533)*UV(279)+JVS(3880)*UV(284)& + &+JVS(4131)*UV(286)+JVS(4525)*UV(291) + JTUV(145) = JVS(196)*UV(34)+JVS(921)*UV(145)+JVS(1404)*UV(200)+JVS(1453)*UV(205)+JVS(3534)*UV(279)+JVS(3881)*UV(284)& + &+JVS(4132)*UV(286)+JVS(4526)*UV(291) + JTUV(146) = JVS(197)*UV(34)+JVS(927)*UV(146)+JVS(1371)*UV(198)+JVS(1489)*UV(208)+JVS(2035)*UV(236)+JVS(2197)*UV(243)& + &+JVS(3535)*UV(279)+JVS(3882)*UV(284)+JVS(4133)*UV(286)+JVS(4527)*UV(291) + JTUV(147) = JVS(283)*UV(35)+JVS(441)*UV(38)+JVS(518)*UV(62)+JVS(778)*UV(122)+JVS(932)*UV(147)+JVS(2816)*UV(265)& + &+JVS(3301)*UV(275)+JVS(3376)*UV(276)+JVS(3624)*UV(280)+JVS(3752)*UV(282) + JTUV(148) = JVS(284)*UV(35)+JVS(375)*UV(36)+JVS(940)*UV(148)+JVS(1534)*UV(211)+JVS(1672)*UV(219)+JVS(1946)*UV(233)& + &+JVS(2036)*UV(236)+JVS(2456)*UV(255)+JVS(2479)*UV(256)+JVS(2532)*UV(259)+JVS(2972)*UV(267)+JVS(3753)& + &*UV(282)+JVS(3883)*UV(284)+JVS(4135)*UV(286) + JTUV(149) = JVS(285)*UV(35)+JVS(376)*UV(36)+JVS(944)*UV(149)+JVS(1150)*UV(177)+JVS(2904)*UV(266)+JVS(2973)*UV(267)& + &+JVS(3175)*UV(272)+JVS(3302)*UV(275)+JVS(3449)*UV(278)+JVS(3884)*UV(284)+JVS(4019)*UV(285)+JVS(4136)& + &*UV(286)+JVS(4326)*UV(288)+JVS(4431)*UV(290) + JTUV(150) = JVS(24)*UV(7)+JVS(198)*UV(34)+JVS(377)*UV(36)+JVS(948)*UV(150)+JVS(1372)*UV(198)+JVS(1490)*UV(208)& + &+JVS(2974)*UV(267)+JVS(3536)*UV(279)+JVS(3885)*UV(284)+JVS(4137)*UV(286)+JVS(4529)*UV(291) + JTUV(151) = JVS(286)*UV(35)+JVS(648)*UV(98)+JVS(802)*UV(126)+JVS(954)*UV(151)+JVS(1114)*UV(174)+JVS(1262)*UV(189)& + &+JVS(2128)*UV(240)+JVS(2171)*UV(242)+JVS(2219)*UV(244)+JVS(2233)*UV(245)+JVS(2247)*UV(246)+JVS(3886)& + &*UV(284)+JVS(4138)*UV(286)+JVS(4530)*UV(291) + JTUV(152) = JVS(199)*UV(34)+JVS(959)*UV(152)+JVS(1585)*UV(213)+JVS(2144)*UV(241)+JVS(2172)*UV(242)+JVS(2198)*UV(243)& + &+JVS(2682)*UV(263)+JVS(3537)*UV(279)+JVS(3887)*UV(284)+JVS(4139)*UV(286)+JVS(4531)*UV(291) + JTUV(153) = JVS(200)*UV(34)+JVS(378)*UV(36)+JVS(694)*UV(105)+JVS(964)*UV(153)+JVS(1480)*UV(207)+JVS(2321)*UV(250)& + &+JVS(2975)*UV(267)+JVS(3668)*UV(281)+JVS(4140)*UV(286)+JVS(4532)*UV(291) + JTUV(154) = JVS(287)*UV(35)+JVS(379)*UV(36)+JVS(456)*UV(40)+JVS(969)*UV(154)+JVS(1565)*UV(212)+JVS(1610)*UV(215)& + &+JVS(1622)*UV(216)+JVS(1788)*UV(226)+JVS(2096)*UV(238)+JVS(2439)*UV(254)+JVS(2533)*UV(259)+JVS(2976)& + &*UV(267)+JVS(3669)*UV(281)+JVS(3754)*UV(282)+JVS(3888)*UV(284)+JVS(4141)*UV(286) + JTUV(155) = JVS(288)*UV(35)+JVS(380)*UV(36)+JVS(457)*UV(40)+JVS(973)*UV(155)+JVS(1566)*UV(212)+JVS(1611)*UV(215)& + &+JVS(1623)*UV(216)+JVS(1789)*UV(226)+JVS(2097)*UV(238)+JVS(2440)*UV(254)+JVS(2534)*UV(259)+JVS(2977)& + &*UV(267)+JVS(3670)*UV(281)+JVS(3755)*UV(282)+JVS(3889)*UV(284)+JVS(4142)*UV(286) + JTUV(156) = JVS(381)*UV(36)+JVS(979)*UV(156)+JVS(1736)*UV(223)+JVS(1948)*UV(233)+JVS(2588)*UV(261)+JVS(2978)*UV(267)& + &+JVS(3890)*UV(284)+JVS(4143)*UV(286) + JTUV(157) = JVS(131)*UV(24)+JVS(382)*UV(36)+JVS(832)*UV(130)+JVS(838)*UV(131)+JVS(986)*UV(157)+JVS(1197)*UV(182)& + &+JVS(1248)*UV(187)+JVS(1862)*UV(230)+JVS(2234)*UV(245)+JVS(2276)*UV(248)+JVS(2683)*UV(263)+JVS(2979)& + &*UV(267)+JVS(3891)*UV(284)+JVS(4144)*UV(286) + JTUV(158) = JVS(990)*UV(158)+JVS(2535)*UV(259)+JVS(3892)*UV(284)+JVS(4145)*UV(286) + JTUV(159) = JVS(289)*UV(35)+JVS(383)*UV(36)+JVS(1008)*UV(159)+JVS(1536)*UV(211)+JVS(1737)*UV(223)+JVS(2037)*UV(236)& + &+JVS(2457)*UV(255)+JVS(2536)*UV(259)+JVS(2980)*UV(267)+JVS(3756)*UV(282)+JVS(3893)*UV(284)+JVS(4146)& + &*UV(286) + JTUV(160) = JVS(290)*UV(35)+JVS(1017)*UV(160)+JVS(1278)*UV(191)+JVS(1519)*UV(210)+JVS(3757)*UV(282)+JVS(4533)*UV(291) + JTUV(161) = JVS(291)*UV(35)+JVS(1027)*UV(161)+JVS(1634)*UV(217)+JVS(2818)*UV(265)+JVS(3218)*UV(273)+JVS(3303)*UV(275)& + &+JVS(3450)*UV(278)+JVS(3671)*UV(281)+JVS(4147)*UV(286)+JVS(4370)*UV(289)+JVS(4432)*UV(290) + JTUV(162) = JVS(132)*UV(24)+JVS(384)*UV(36)+JVS(833)*UV(130)+JVS(839)*UV(131)+JVS(1032)*UV(162)+JVS(1204)*UV(183)& + &+JVS(1249)*UV(187)+JVS(1321)*UV(194)+JVS(1895)*UV(231)+JVS(2220)*UV(244)+JVS(2376)*UV(251)+JVS(2684)& + &*UV(263)+JVS(2981)*UV(267)+JVS(3894)*UV(284)+JVS(4148)*UV(286) + JTUV(163) = JVS(25)*UV(7)+JVS(385)*UV(36)+JVS(687)*UV(104)+JVS(1036)*UV(163)+JVS(1228)*UV(185)+JVS(1537)*UV(211)& + &+JVS(1738)*UV(223)+JVS(1949)*UV(233)+JVS(2589)*UV(261)+JVS(2982)*UV(267)+JVS(3895)*UV(284)+JVS(4149)& + &*UV(286) + JTUV(164) = JVS(26)*UV(7)+JVS(1043)*UV(164)+JVS(1739)*UV(223)+JVS(1863)*UV(230)+JVS(1896)*UV(231)+JVS(1950)*UV(233)& + &+JVS(2038)*UV(236)+JVS(2322)*UV(250)+JVS(3896)*UV(284)+JVS(4150)*UV(286) + JTUV(165) = JVS(133)*UV(24)+JVS(386)*UV(36)+JVS(746)*UV(116)+JVS(811)*UV(127)+JVS(1049)*UV(165)+JVS(1205)*UV(183)& + &+JVS(1256)*UV(188)+JVS(1288)*UV(192)+JVS(1340)*UV(196)+JVS(1951)*UV(233)+JVS(2221)*UV(244)+JVS(2685)& + &*UV(263)+JVS(2983)*UV(267)+JVS(3897)*UV(284)+JVS(4151)*UV(286) + JTUV(166) = JVS(201)*UV(34)+JVS(1053)*UV(166)+JVS(1132)*UV(175)+JVS(1373)*UV(198)+JVS(1586)*UV(213)+JVS(2039)*UV(236)& + &+JVS(2173)*UV(242)+JVS(2199)*UV(243)+JVS(2686)*UV(263)+JVS(3538)*UV(279)+JVS(3898)*UV(284)+JVS(4152)& + &*UV(286)+JVS(4534)*UV(291) + JTUV(167) = JVS(202)*UV(34)+JVS(1059)*UV(167)+JVS(1405)*UV(200)+JVS(1587)*UV(213)+JVS(2040)*UV(236)+JVS(2174)*UV(242)& + &+JVS(2200)*UV(243)+JVS(2323)*UV(250)+JVS(2687)*UV(263)+JVS(3539)*UV(279)+JVS(3899)*UV(284)+JVS(4153)& + &*UV(286)+JVS(4535)*UV(291) + JTUV(168) = JVS(203)*UV(34)+JVS(1064)*UV(168)+JVS(1491)*UV(208)+JVS(1588)*UV(213)+JVS(2145)*UV(241)+JVS(2175)*UV(242)& + &+JVS(2201)*UV(243)+JVS(2324)*UV(250)+JVS(2688)*UV(263)+JVS(3540)*UV(279)+JVS(3900)*UV(284)+JVS(4154)& + &*UV(286)+JVS(4536)*UV(291) + JTUV(169) = JVS(387)*UV(36)+JVS(1071)*UV(169)+JVS(2590)*UV(261)+JVS(2689)*UV(263)+JVS(2984)*UV(267)+JVS(3901)*UV(284)& + &+JVS(4155)*UV(286) + JTUV(170) = JVS(292)*UV(35)+JVS(388)*UV(36)+JVS(458)*UV(40)+JVS(1081)*UV(170)+JVS(1538)*UV(211)+JVS(1567)*UV(212)& + &+JVS(1612)*UV(215)+JVS(1624)*UV(216)+JVS(1778)*UV(225)+JVS(2107)*UV(239)+JVS(2378)*UV(251)+JVS(2426)& + &*UV(253)+JVS(2441)*UV(254)+JVS(2690)*UV(263)+JVS(2985)*UV(267)+JVS(3672)*UV(281)+JVS(3758)*UV(282)& + &+JVS(3902)*UV(284)+JVS(4156)*UV(286) + JTUV(171) = JVS(134)*UV(24)+JVS(389)*UV(36)+JVS(747)*UV(116)+JVS(825)*UV(129)+JVS(1085)*UV(171)+JVS(1089)*UV(172)& + &+JVS(1198)*UV(182)+JVS(1242)*UV(186)+JVS(1289)*UV(192)+JVS(1952)*UV(233)+JVS(2235)*UV(245)+JVS(2591)& + &*UV(261)+JVS(2691)*UV(263)+JVS(2986)*UV(267)+JVS(3903)*UV(284)+JVS(4157)*UV(286) + JTUV(172) = JVS(390)*UV(36)+JVS(1090)*UV(172)+JVS(1740)*UV(223)+JVS(2692)*UV(263)+JVS(2987)*UV(267)+JVS(3904)*UV(284)& + &+JVS(4158)*UV(286) + JTUV(173) = JVS(293)*UV(35)+JVS(1100)*UV(173)+JVS(2018)*UV(235)+JVS(2819)*UV(265)+JVS(3304)*UV(275)+JVS(3451)*UV(278)& + &+JVS(3625)*UV(280)+JVS(3673)*UV(281)+JVS(4276)*UV(287)+JVS(4537)*UV(291) + JTUV(174) = JVS(163)*UV(31)+JVS(391)*UV(36)+JVS(1119)*UV(174)+JVS(1953)*UV(233)+JVS(2325)*UV(250)+JVS(2693)*UV(263)& + &+JVS(2988)*UV(267) + JTUV(175) = JVS(27)*UV(7)+JVS(294)*UV(35)+JVS(392)*UV(36)+JVS(649)*UV(98)+JVS(1133)*UV(175)+JVS(1374)*UV(198)& + &+JVS(2989)*UV(267)+JVS(3905)*UV(284)+JVS(4159)*UV(286) + JTUV(176) = JVS(295)*UV(35)+JVS(816)*UV(128)+JVS(860)*UV(135)+JVS(1144)*UV(176)+JVS(2565)*UV(260)+JVS(2821)*UV(265)& + &+JVS(3219)*UV(273)+JVS(3268)*UV(274)+JVS(3305)*UV(275)+JVS(3452)*UV(278)+JVS(3674)*UV(281)+JVS(4538)& + &*UV(291) + JTUV(177) = JVS(204)*UV(34)+JVS(296)*UV(35)+JVS(1151)*UV(177)+JVS(3453)*UV(278)+JVS(3759)*UV(282)+JVS(3906)*UV(284)& + &+JVS(4161)*UV(286)+JVS(4327)*UV(288) + JTUV(178) = JVS(297)*UV(35)+JVS(477)*UV(45)+JVS(854)*UV(134)+JVS(1162)*UV(178)+JVS(1790)*UV(226)+JVS(3675)*UV(281)& + &+JVS(4162)*UV(286)+JVS(4539)*UV(291) + JTUV(179) = JVS(205)*UV(34)+JVS(298)*UV(35)+JVS(537)*UV(68)+JVS(709)*UV(108)+JVS(767)*UV(120)+JVS(1174)*UV(179)& + &+JVS(1644)*UV(218)+JVS(2041)*UV(236)+JVS(2694)*UV(263)+JVS(2905)*UV(266)+JVS(3541)*UV(279)+JVS(3676)& + &*UV(281)+JVS(3907)*UV(284)+JVS(4540)*UV(291) + JTUV(180) = JVS(28)*UV(7)+JVS(206)*UV(34)+JVS(299)*UV(35)+JVS(545)*UV(70)+JVS(642)*UV(97)+JVS(702)*UV(107)+JVS(1184)& + &*UV(180)+JVS(1279)*UV(191)+JVS(2695)*UV(263)+JVS(2906)*UV(266)+JVS(3542)*UV(279)+JVS(3760)*UV(282)& + &+JVS(3908)*UV(284)+JVS(4164)*UV(286)+JVS(4541)*UV(291) + JTUV(181) = JVS(300)*UV(35)+JVS(650)*UV(98)+JVS(1191)*UV(181)+JVS(1723)*UV(222)+JVS(1930)*UV(232)+JVS(2176)*UV(242)& + &+JVS(2259)*UV(247)+JVS(2278)*UV(248)+JVS(2379)*UV(251)+JVS(2696)*UV(263)+JVS(3909)*UV(284)+JVS(4165)& + &*UV(286)+JVS(4542)*UV(291) + JTUV(182) = JVS(207)*UV(34)+JVS(896)*UV(141)+JVS(1044)*UV(164)+JVS(1091)*UV(172)+JVS(1199)*UV(182)+JVS(1465)*UV(206)& + &+JVS(1898)*UV(231)+JVS(2177)*UV(242)+JVS(2327)*UV(250)+JVS(2697)*UV(263)+JVS(3543)*UV(279)+JVS(3910)& + &*UV(284)+JVS(4166)*UV(286)+JVS(4543)*UV(291) + JTUV(183) = JVS(208)*UV(34)+JVS(897)*UV(141)+JVS(1045)*UV(164)+JVS(1206)*UV(183)+JVS(1341)*UV(196)+JVS(1466)*UV(206)& + &+JVS(1866)*UV(230)+JVS(2043)*UV(236)+JVS(2178)*UV(242)+JVS(2698)*UV(263)+JVS(3544)*UV(279)+JVS(3911)& + &*UV(284)+JVS(4167)*UV(286)+JVS(4544)*UV(291) + JTUV(184) = JVS(29)*UV(7)+JVS(209)*UV(34)+JVS(301)*UV(35)+JVS(1217)*UV(184)+JVS(2592)*UV(261)+JVS(2699)*UV(263)& + &+JVS(2907)*UV(266)+JVS(3545)*UV(279)+JVS(3677)*UV(281)+JVS(3912)*UV(284)+JVS(4168)*UV(286)+JVS(4545)& + &*UV(291) + JTUV(185) = JVS(393)*UV(36)+JVS(1229)*UV(185)+JVS(1743)*UV(223)+JVS(1956)*UV(233)+JVS(2593)*UV(261)+JVS(2991)*UV(267)& + &+JVS(3913)*UV(284) + JTUV(186) = JVS(394)*UV(36)+JVS(714)*UV(109)+JVS(772)*UV(121)+JVS(916)*UV(144)+JVS(980)*UV(156)+JVS(1037)*UV(163)& + &+JVS(1120)*UV(174)+JVS(1243)*UV(186)+JVS(1867)*UV(230)+JVS(1957)*UV(233)+JVS(2279)*UV(248)+JVS(2700)& + &*UV(263)+JVS(2992)*UV(267)+JVS(3914)*UV(284)+JVS(4169)*UV(286) + JTUV(187) = JVS(210)*UV(34)+JVS(898)*UV(141)+JVS(1046)*UV(164)+JVS(1250)*UV(187)+JVS(2044)*UV(236)+JVS(2179)*UV(242)& + &+JVS(2330)*UV(250)+JVS(3547)*UV(279)+JVS(3915)*UV(284)+JVS(4170)*UV(286)+JVS(4547)*UV(291) + JTUV(188) = JVS(395)*UV(36)+JVS(715)*UV(109)+JVS(789)*UV(123)+JVS(922)*UV(145)+JVS(981)*UV(156)+JVS(1038)*UV(163)& + &+JVS(1121)*UV(174)+JVS(1257)*UV(188)+JVS(1901)*UV(231)+JVS(1959)*UV(233)+JVS(2380)*UV(251)+JVS(2701)& + &*UV(263)+JVS(2993)*UV(267)+JVS(3916)*UV(284)+JVS(4171)*UV(286) + JTUV(189) = JVS(211)*UV(34)+JVS(1092)*UV(172)+JVS(1134)*UV(175)+JVS(1263)*UV(189)+JVS(1342)*UV(196)+JVS(1375)*UV(198)& + &+JVS(1492)*UV(208)+JVS(1589)*UV(213)+JVS(2147)*UV(241)+JVS(2180)*UV(242)+JVS(2202)*UV(243)+JVS(2702)& + &*UV(263)+JVS(3549)*UV(279)+JVS(3917)*UV(284)+JVS(4172)*UV(286)+JVS(4549)*UV(291) + JTUV(190) = JVS(302)*UV(35)+JVS(451)*UV(39)+JVS(1152)*UV(177)+JVS(1268)*UV(190)+JVS(2703)*UV(263)+JVS(2908)*UV(266)& + &+JVS(3176)*UV(272)+JVS(3306)*UV(275)+JVS(3454)*UV(278)+JVS(3918)*UV(284)+JVS(4173)*UV(286)+JVS(4434)& + &*UV(290) + JTUV(191) = JVS(212)*UV(34)+JVS(303)*UV(35)+JVS(703)*UV(107)+JVS(1019)*UV(160)+JVS(1280)*UV(191)+JVS(2704)*UV(263)& + &+JVS(2909)*UV(266)+JVS(3550)*UV(279)+JVS(3678)*UV(281)+JVS(3919)*UV(284)+JVS(4550)*UV(291) + JTUV(192) = JVS(30)*UV(7)+JVS(396)*UV(36)+JVS(1290)*UV(192)+JVS(1828)*UV(228)+JVS(1848)*UV(229)+JVS(1869)*UV(230)& + &+JVS(1902)*UV(231)+JVS(1960)*UV(233)+JVS(2995)*UV(267)+JVS(3920)*UV(284)+JVS(4175)*UV(286) + JTUV(193) = JVS(213)*UV(34)+JVS(1303)*UV(193)+JVS(3455)*UV(278)+JVS(3551)*UV(279)+JVS(4176)*UV(286)+JVS(4551)*UV(291) + JTUV(194) = JVS(214)*UV(34)+JVS(397)*UV(36)+JVS(1072)*UV(169)+JVS(1324)*UV(194)+JVS(1468)*UV(206)+JVS(1590)*UV(213)& + &+JVS(2332)*UV(250)+JVS(2705)*UV(263)+JVS(2996)*UV(267)+JVS(3552)*UV(279)+JVS(3921)*UV(284)+JVS(4177)& + &*UV(286)+JVS(4552)*UV(291) + JTUV(195) = JVS(31)*UV(7)+JVS(165)*UV(32)+JVS(215)*UV(34)+JVS(435)*UV(37)+JVS(442)*UV(38)+JVS(459)*UV(40)+JVS(779)& + &*UV(122)+JVS(1332)*UV(195)+JVS(1568)*UV(212)+JVS(1673)*UV(219)+JVS(2778)*UV(264)+JVS(2997)*UV(267)& + &+JVS(3377)*UV(276)+JVS(3456)*UV(278)+JVS(3553)*UV(279)+JVS(3679)*UV(281)+JVS(4553)*UV(291) + JTUV(196) = JVS(1343)*UV(196)+JVS(1961)*UV(233)+JVS(2397)*UV(252)+JVS(2597)*UV(261)+JVS(2706)*UV(263)+JVS(3457)& + &*UV(278)+JVS(4179)*UV(286) + JTUV(197) = JVS(216)*UV(34)+JVS(1357)*UV(197)+JVS(3127)*UV(271)+JVS(3177)*UV(272)+JVS(4020)*UV(285)+JVS(4180)*UV(286)& + &+JVS(4329)*UV(288)+JVS(4435)*UV(290) + JTUV(198) = JVS(1376)*UV(198)+JVS(1962)*UV(233)+JVS(2598)*UV(261)+JVS(2707)*UV(263)+JVS(4181)*UV(286)+JVS(4554)& + &*UV(291) + JTUV(199) = JVS(304)*UV(35)+JVS(478)*UV(45)+JVS(855)*UV(134)+JVS(1392)*UV(199)+JVS(2537)*UV(259)+JVS(3680)*UV(281)& + &+JVS(3763)*UV(282)+JVS(4182)*UV(286)+JVS(4555)*UV(291) + JTUV(200) = JVS(305)*UV(35)+JVS(398)*UV(36)+JVS(651)*UV(98)+JVS(1407)*UV(200)+JVS(2295)*UV(249)+JVS(2334)*UV(250)& + &+JVS(2998)*UV(267)+JVS(3922)*UV(284)+JVS(4183)*UV(286)+JVS(4556)*UV(291) + JTUV(201) = JVS(32)*UV(7)+JVS(217)*UV(34)+JVS(733)*UV(113)+JVS(991)*UV(158)+JVS(1420)*UV(201)+JVS(1645)*UV(218)& + &+JVS(1674)*UV(219)+JVS(2538)*UV(259)+JVS(2599)*UV(261)+JVS(2708)*UV(263)+JVS(2779)*UV(264)+JVS(2910)& + &*UV(266)+JVS(3554)*UV(279)+JVS(3923)*UV(284)+JVS(4557)*UV(291) + JTUV(202) = JVS(306)*UV(35)+JVS(652)*UV(98)+JVS(1428)*UV(202)+JVS(1709)*UV(221)+JVS(1791)*UV(226)+JVS(2078)*UV(237)& + &+JVS(2108)*UV(239)+JVS(2492)*UV(257)+JVS(2508)*UV(258)+JVS(2539)*UV(259)+JVS(2780)*UV(264)+JVS(2911)& + &*UV(266)+JVS(3458)*UV(278)+JVS(3924)*UV(284)+JVS(4185)*UV(286)+JVS(4558)*UV(291) + JTUV(203) = JVS(76)*UV(9)+JVS(84)*UV(10)+JVS(307)*UV(35)+JVS(555)*UV(73)+JVS(660)*UV(99)+JVS(909)*UV(143)+JVS(1304)& + &*UV(193)+JVS(1435)*UV(203)+JVS(3088)*UV(269)+JVS(3413)*UV(277)+JVS(3626)*UV(280)+JVS(3808)*UV(283)& + &+JVS(4277)*UV(287)+JVS(4559)*UV(291) + JTUV(204) = JVS(218)*UV(34)+JVS(1073)*UV(169)+JVS(1444)*UV(204)+JVS(1870)*UV(230)+JVS(1964)*UV(233)+JVS(2045)*UV(236)& + &+JVS(2148)*UV(241)+JVS(2600)*UV(261)+JVS(2709)*UV(263)+JVS(3556)*UV(279)+JVS(3925)*UV(284)+JVS(4187)& + &*UV(286)+JVS(4560)*UV(291) + JTUV(205) = JVS(219)*UV(34)+JVS(399)*UV(36)+JVS(1408)*UV(200)+JVS(1455)*UV(205)+JVS(1903)*UV(231)+JVS(1965)*UV(233)& + &+JVS(2335)*UV(250)+JVS(2710)*UV(263)+JVS(3000)*UV(267)+JVS(3557)*UV(279)+JVS(3926)*UV(284)+JVS(4188)& + &*UV(286)+JVS(4561)*UV(291) + JTUV(206) = JVS(400)*UV(36)+JVS(752)*UV(117)+JVS(842)*UV(132)+JVS(1232)*UV(185)+JVS(1469)*UV(206)+JVS(1748)*UV(223)& + &+JVS(1904)*UV(231)+JVS(1966)*UV(233)+JVS(2046)*UV(236)+JVS(2336)*UV(250)+JVS(2711)*UV(263)+JVS(3001)& + &*UV(267)+JVS(3927)*UV(284)+JVS(4189)*UV(286) + JTUV(207) = JVS(33)*UV(7)+JVS(220)*UV(34)+JVS(401)*UV(36)+JVS(874)*UV(136)+JVS(965)*UV(153)+JVS(1481)*UV(207)& + &+JVS(2602)*UV(261)+JVS(2712)*UV(263)+JVS(2912)*UV(266)+JVS(3002)*UV(267)+JVS(3558)*UV(279)+JVS(3764)& + &*UV(282)+JVS(3928)*UV(284)+JVS(4190)*UV(286)+JVS(4562)*UV(291) + JTUV(208) = JVS(34)*UV(7)+JVS(308)*UV(35)+JVS(402)*UV(36)+JVS(1493)*UV(208)+JVS(2603)*UV(261)+JVS(2713)*UV(263)& + &+JVS(2829)*UV(265)+JVS(3003)*UV(267)+JVS(3683)*UV(281)+JVS(3929)*UV(284)+JVS(4191)*UV(286)+JVS(4563)& + &*UV(291) + JTUV(209) = JVS(35)*UV(7)+JVS(221)*UV(34)+JVS(729)*UV(112)+JVS(992)*UV(158)+JVS(1507)*UV(209)+JVS(1646)*UV(218)& + &+JVS(1675)*UV(219)+JVS(2338)*UV(250)+JVS(2540)*UV(259)+JVS(2604)*UV(261)+JVS(2714)*UV(263)+JVS(2781)& + &*UV(264)+JVS(2913)*UV(266)+JVS(3559)*UV(279)+JVS(3930)*UV(284)+JVS(4564)*UV(291) + JTUV(210) = JVS(10)*UV(5)+JVS(36)*UV(7)+JVS(222)*UV(34)+JVS(403)*UV(36)+JVS(1009)*UV(159)+JVS(1305)*UV(193)+JVS(1522)& + &*UV(210)+JVS(2493)*UV(257)+JVS(2830)*UV(265)+JVS(3004)*UV(267)+JVS(3684)*UV(281)+JVS(3931)*UV(284)& + &+JVS(4193)*UV(286)+JVS(4565)*UV(291) + JTUV(211) = JVS(37)*UV(7)+JVS(1543)*UV(211)+JVS(3307)*UV(275)+JVS(3461)*UV(278)+JVS(3932)*UV(284)+JVS(4194)*UV(286)& + &+JVS(4437)*UV(290) + JTUV(212) = JVS(171)*UV(33)+JVS(309)*UV(35)+JVS(443)*UV(38)+JVS(780)*UV(122)+JVS(1569)*UV(212)+JVS(3308)*UV(275)& + &+JVS(3378)*UV(276)+JVS(3462)*UV(278)+JVS(3933)*UV(284)+JVS(4195)*UV(286)+JVS(4330)*UV(288)+JVS(4438)& + &*UV(290) + JTUV(213) = JVS(310)*UV(35)+JVS(404)*UV(36)+JVS(653)*UV(98)+JVS(1591)*UV(213)+JVS(1871)*UV(230)+JVS(1905)*UV(231)& + &+JVS(1968)*UV(233)+JVS(2048)*UV(236)+JVS(3005)*UV(267)+JVS(3934)*UV(284)+JVS(4196)*UV(286)+JVS(4566)& + &*UV(291) + JTUV(214) = JVS(311)*UV(35)+JVS(405)*UV(36)+JVS(654)*UV(98)+JVS(748)*UV(116)+JVS(1065)*UV(168)+JVS(1291)*UV(192)& + &+JVS(1604)*UV(214)+JVS(1906)*UV(231)+JVS(2129)*UV(240)+JVS(2149)*UV(241)+JVS(3006)*UV(267)+JVS(3935)& + &*UV(284)+JVS(4197)*UV(286)+JVS(4567)*UV(291) + JTUV(215) = JVS(38)*UV(7)+JVS(223)*UV(34)+JVS(312)*UV(35)+JVS(1163)*UV(178)+JVS(1393)*UV(199)+JVS(1613)*UV(215)& + &+JVS(1625)*UV(216)+JVS(1792)*UV(226)+JVS(2542)*UV(259)+JVS(2606)*UV(261)+JVS(2716)*UV(263)+JVS(2914)& + &*UV(266)+JVS(3562)*UV(279)+JVS(3686)*UV(281)+JVS(3936)*UV(284)+JVS(4568)*UV(291) + JTUV(216) = JVS(224)*UV(34)+JVS(313)*UV(35)+JVS(993)*UV(158)+JVS(1164)*UV(178)+JVS(1394)*UV(199)+JVS(1614)*UV(215)& + &+JVS(1626)*UV(216)+JVS(1647)*UV(218)+JVS(1793)*UV(226)+JVS(2543)*UV(259)+JVS(2607)*UV(261)+JVS(2717)& + &*UV(263)+JVS(2915)*UV(266)+JVS(3563)*UV(279)+JVS(3687)*UV(281)+JVS(3937)*UV(284)+JVS(4569)*UV(291) + JTUV(217) = JVS(39)*UV(7)+JVS(225)*UV(34)+JVS(638)*UV(96)+JVS(719)*UV(110)+JVS(848)*UV(133)+JVS(1635)*UV(217)& + &+JVS(1648)*UV(218)+JVS(1676)*UV(219)+JVS(2608)*UV(261)+JVS(2718)*UV(263)+JVS(2782)*UV(264)+JVS(2916)& + &*UV(266)+JVS(3564)*UV(279)+JVS(3938)*UV(284)+JVS(4021)*UV(285)+JVS(4439)*UV(290)+JVS(4570)*UV(291) + JTUV(218) = JVS(1649)*UV(218)+JVS(2719)*UV(263)+JVS(3310)*UV(275)+JVS(3939)*UV(284)+JVS(4201)*UV(286)+JVS(4440)& + &*UV(290) + JTUV(219) = JVS(40)*UV(7)+JVS(1677)*UV(219)+JVS(2917)*UV(266)+JVS(3311)*UV(275)+JVS(3463)*UV(278)+JVS(4202)*UV(286)& + &+JVS(4441)*UV(290) + JTUV(220) = JVS(314)*UV(35)+JVS(406)*UV(36)+JVS(655)*UV(98)+JVS(749)*UV(116)+JVS(1054)*UV(166)+JVS(1135)*UV(175)& + &+JVS(1292)*UV(192)+JVS(1700)*UV(220)+JVS(1873)*UV(230)+JVS(2130)*UV(240)+JVS(3007)*UV(267)+JVS(3940)& + &*UV(284)+JVS(4203)*UV(286)+JVS(4571)*UV(291) + JTUV(221) = JVS(407)*UV(36)+JVS(1710)*UV(221)+JVS(2398)*UV(252)+JVS(2610)*UV(261)+JVS(2918)*UV(266)+JVS(3008)*UV(267)& + &+JVS(3221)*UV(273)+JVS(3312)*UV(275)+JVS(3464)*UV(278)+JVS(4204)*UV(286)+JVS(4371)*UV(289)+JVS(4442)& + &*UV(290) + JTUV(222) = JVS(226)*UV(34)+JVS(1093)*UV(172)+JVS(1136)*UV(175)+JVS(1344)*UV(196)+JVS(1379)*UV(198)+JVS(1495)*UV(208)& + &+JVS(1594)*UV(213)+JVS(1724)*UV(222)+JVS(1874)*UV(230)+JVS(1908)*UV(231)+JVS(2051)*UV(236)+JVS(2150)& + &*UV(241)+JVS(2183)*UV(242)+JVS(2205)*UV(243)+JVS(2343)*UV(250)+JVS(2721)*UV(263)+JVS(3566)*UV(279)& + &+JVS(3941)*UV(284)+JVS(4205)*UV(286)+JVS(4572)*UV(291) + JTUV(223) = JVS(156)*UV(30)+JVS(315)*UV(35)+JVS(408)*UV(36)+JVS(1753)*UV(223)+JVS(2722)*UV(263)+JVS(2837)*UV(265)& + &+JVS(3010)*UV(267)+JVS(3689)*UV(281)+JVS(3942)*UV(284)+JVS(4206)*UV(286) + JTUV(224) = JVS(41)*UV(7)+JVS(99)*UV(14)+JVS(102)*UV(15)+JVS(316)*UV(35)+JVS(409)*UV(36)+JVS(460)*UV(40)+JVS(812)& + &*UV(127)+JVS(826)*UV(129)+JVS(1094)*UV(172)+JVS(1244)*UV(186)+JVS(1258)*UV(188)+JVS(1345)*UV(196)+JVS(1570)& + &*UV(212)+JVS(1773)*UV(224)+JVS(1972)*UV(233)+JVS(2004)*UV(234)+JVS(2222)*UV(244)+JVS(2236)*UV(245)& + &+JVS(2248)*UV(246)+JVS(2260)*UV(247)+JVS(2280)*UV(248)+JVS(2381)*UV(251)+JVS(2612)*UV(261)+JVS(2723)& + &*UV(263)+JVS(2919)*UV(266)+JVS(3011)*UV(267)+JVS(3313)*UV(275)+JVS(3690)*UV(281)+JVS(3768)*UV(282)& + &+JVS(3943)*UV(284)+JVS(4207)*UV(286)+JVS(4443)*UV(290) + JTUV(225) = JVS(227)*UV(34)+JVS(317)*UV(35)+JVS(762)*UV(119)+JVS(994)*UV(158)+JVS(1395)*UV(199)+JVS(1650)*UV(218)& + &+JVS(1779)*UV(225)+JVS(1794)*UV(226)+JVS(2345)*UV(250)+JVS(2382)*UV(251)+JVS(2427)*UV(253)+JVS(2544)& + &*UV(259)+JVS(2613)*UV(261)+JVS(2724)*UV(263)+JVS(2920)*UV(266)+JVS(3568)*UV(279)+JVS(3691)*UV(281)& + &+JVS(3944)*UV(284)+JVS(4574)*UV(291) + JTUV(226) = JVS(318)*UV(35)+JVS(1795)*UV(226)+JVS(2079)*UV(237)+JVS(2110)*UV(239)+JVS(2442)*UV(254)+JVS(2459)*UV(255)& + &+JVS(2509)*UV(258)+JVS(2614)*UV(261)+JVS(2840)*UV(265)+JVS(2921)*UV(266)+JVS(3467)*UV(278)+JVS(3692)& + &*UV(281)+JVS(4209)*UV(286) + JTUV(227) = JVS(319)*UV(35)+JVS(474)*UV(44)+JVS(487)*UV(49)+JVS(622)*UV(92)+JVS(661)*UV(99)+JVS(724)*UV(111)+JVS(1810)& + &*UV(227)+JVS(3060)*UV(268)+JVS(3089)*UV(269)+JVS(3108)*UV(270)+JVS(3222)*UV(273)+JVS(3269)*UV(274)& + &+JVS(3569)*UV(279)+JVS(3945)*UV(284)+JVS(4022)*UV(285)+JVS(4332)*UV(288)+JVS(4445)*UV(290)+JVS(4575)& + &*UV(291) + JTUV(228) = JVS(228)*UV(34)+JVS(410)*UV(36)+JVS(753)*UV(117)+JVS(798)*UV(125)+JVS(1472)*UV(206)+JVS(1595)*UV(213)& + &+JVS(1831)*UV(228)+JVS(1973)*UV(233)+JVS(2053)*UV(236)+JVS(3012)*UV(267)+JVS(3570)*UV(279)+JVS(3946)& + &*UV(284)+JVS(4211)*UV(286)+JVS(4576)*UV(291) + JTUV(229) = JVS(229)*UV(34)+JVS(411)*UV(36)+JVS(799)*UV(125)+JVS(843)*UV(132)+JVS(1473)*UV(206)+JVS(1596)*UV(213)& + &+JVS(1756)*UV(223)+JVS(1852)*UV(229)+JVS(2347)*UV(250)+JVS(3013)*UV(267)+JVS(3571)*UV(279)+JVS(3947)& + &*UV(284)+JVS(4212)*UV(286)+JVS(4577)*UV(291) + JTUV(230) = JVS(1077)*UV(169)+JVS(1235)*UV(185)+JVS(1878)*UV(230)+JVS(1975)*UV(233)+JVS(2055)*UV(236)+JVS(2617)& + &*UV(261)+JVS(2727)*UV(263)+JVS(3948)*UV(284)+JVS(4213)*UV(286) + JTUV(231) = JVS(42)*UV(7)+JVS(412)*UV(36)+JVS(1346)*UV(196)+JVS(1912)*UV(231)+JVS(1976)*UV(233)+JVS(2348)*UV(250)& + &+JVS(2728)*UV(263)+JVS(3015)*UV(267)+JVS(3949)*UV(284)+JVS(4214)*UV(286) + JTUV(232) = JVS(230)*UV(34)+JVS(1137)*UV(175)+JVS(1380)*UV(198)+JVS(1496)*UV(208)+JVS(1931)*UV(232)+JVS(2056)*UV(236)& + &+JVS(2152)*UV(241)+JVS(2184)*UV(242)+JVS(2206)*UV(243)+JVS(2349)*UV(250)+JVS(2729)*UV(263)+JVS(3572)& + &*UV(279)+JVS(3950)*UV(284)+JVS(4215)*UV(286)+JVS(4578)*UV(291) + JTUV(233) = JVS(157)*UV(30)+JVS(320)*UV(35)+JVS(413)*UV(36)+JVS(1978)*UV(233)+JVS(2620)*UV(261)+JVS(2845)*UV(265)& + &+JVS(3017)*UV(267)+JVS(3697)*UV(281)+JVS(3951)*UV(284)+JVS(4216)*UV(286) + JTUV(234) = JVS(43)*UV(7)+JVS(166)*UV(32)+JVS(231)*UV(34)+JVS(321)*UV(35)+JVS(436)*UV(37)+JVS(444)*UV(38)+JVS(461)& + &*UV(40)+JVS(592)*UV(85)+JVS(781)*UV(122)+JVS(1545)*UV(211)+JVS(1571)*UV(212)+JVS(2005)*UV(234)+JVS(2730)& + &*UV(263)+JVS(3018)*UV(267)+JVS(3380)*UV(276)+JVS(3469)*UV(278)+JVS(3573)*UV(279)+JVS(3698)*UV(281)& + &+JVS(3770)*UV(282)+JVS(4579)*UV(291) + JTUV(235) = JVS(232)*UV(34)+JVS(322)*UV(35)+JVS(861)*UV(135)+JVS(1306)*UV(193)+JVS(1358)*UV(197)+JVS(2019)*UV(235)& + &+JVS(3129)*UV(271)+JVS(3316)*UV(275)+JVS(3414)*UV(277)+JVS(3627)*UV(280)+JVS(3809)*UV(283)+JVS(4218)& + &*UV(286)+JVS(4278)*UV(287)+JVS(4372)*UV(289)+JVS(4447)*UV(290)+JVS(4580)*UV(291) + JTUV(236) = JVS(44)*UV(7)+JVS(414)*UV(36)+JVS(1546)*UV(211)+JVS(1651)*UV(218)+JVS(1758)*UV(223)+JVS(2057)*UV(236)& + &+JVS(2731)*UV(263)+JVS(3019)*UV(267)+JVS(3953)*UV(284)+JVS(4219)*UV(286) + JTUV(237) = JVS(45)*UV(7)+JVS(233)*UV(34)+JVS(615)*UV(91)+JVS(630)*UV(94)+JVS(995)*UV(158)+JVS(1652)*UV(218)+JVS(1678)& + &*UV(219)+JVS(2080)*UV(237)+JVS(2545)*UV(259)+JVS(2621)*UV(261)+JVS(2732)*UV(263)+JVS(2922)*UV(266)& + &+JVS(3575)*UV(279)+JVS(3954)*UV(284)+JVS(4581)*UV(291) + JTUV(238) = JVS(46)*UV(7)+JVS(234)*UV(34)+JVS(323)*UV(35)+JVS(763)*UV(119)+JVS(996)*UV(158)+JVS(1165)*UV(178)& + &+JVS(1396)*UV(199)+JVS(1547)*UV(211)+JVS(1653)*UV(218)+JVS(1711)*UV(221)+JVS(1796)*UV(226)+JVS(2098)& + &*UV(238)+JVS(2546)*UV(259)+JVS(2622)*UV(261)+JVS(2733)*UV(263)+JVS(2923)*UV(266)+JVS(3576)*UV(279)& + &+JVS(3700)*UV(281)+JVS(3955)*UV(284)+JVS(4582)*UV(291) + JTUV(239) = JVS(47)*UV(7)+JVS(235)*UV(34)+JVS(720)*UV(110)+JVS(849)*UV(133)+JVS(1654)*UV(218)+JVS(1679)*UV(219)& + &+JVS(2112)*UV(239)+JVS(2623)*UV(261)+JVS(2734)*UV(263)+JVS(2783)*UV(264)+JVS(2924)*UV(266)+JVS(3577)& + &*UV(279)+JVS(3956)*UV(284)+JVS(4024)*UV(285)+JVS(4451)*UV(290)+JVS(4583)*UV(291) + JTUV(240) = JVS(415)*UV(36)+JVS(716)*UV(109)+JVS(917)*UV(144)+JVS(923)*UV(145)+JVS(949)*UV(150)+JVS(984)*UV(156)& + &+JVS(1039)*UV(163)+JVS(1125)*UV(174)+JVS(1138)*UV(175)+JVS(2131)*UV(240)+JVS(2153)*UV(241)+JVS(3021)& + &*UV(267)+JVS(3957)*UV(284)+JVS(4223)*UV(286)+JVS(4584)*UV(291) + JTUV(241) = JVS(236)*UV(34)+JVS(324)*UV(35)+JVS(656)*UV(98)+JVS(688)*UV(104)+JVS(1237)*UV(185)+JVS(1498)*UV(208)& + &+JVS(1549)*UV(211)+JVS(1980)*UV(233)+JVS(2059)*UV(236)+JVS(2154)*UV(241)+JVS(2625)*UV(261)+JVS(2736)& + &*UV(263)+JVS(3702)*UV(281)+JVS(3958)*UV(284)+JVS(4224)*UV(286)+JVS(4585)*UV(291) + JTUV(242) = JVS(325)*UV(35)+JVS(657)*UV(98)+JVS(950)*UV(150)+JVS(1040)*UV(163)+JVS(1095)*UV(172)+JVS(1347)*UV(196)& + &+JVS(1411)*UV(200)+JVS(1499)*UV(208)+JVS(1597)*UV(213)+JVS(1914)*UV(231)+JVS(1932)*UV(232)+JVS(2060)& + &*UV(236)+JVS(2155)*UV(241)+JVS(2185)*UV(242)+JVS(2352)*UV(250)+JVS(2737)*UV(263)+JVS(3959)*UV(284)& + &+JVS(4225)*UV(286)+JVS(4586)*UV(291) + JTUV(243) = JVS(326)*UV(35)+JVS(658)*UV(98)+JVS(803)*UV(126)+JVS(928)*UV(146)+JVS(2061)*UV(236)+JVS(2132)*UV(240)& + &+JVS(2186)*UV(242)+JVS(2208)*UV(243)+JVS(2281)*UV(248)+JVS(2353)*UV(250)+JVS(2383)*UV(251)+JVS(2738)& + &*UV(263)+JVS(3960)*UV(284)+JVS(4226)*UV(286)+JVS(4587)*UV(291) + JTUV(244) = JVS(237)*UV(34)+JVS(416)*UV(36)+JVS(813)*UV(127)+JVS(892)*UV(140)+JVS(1033)*UV(162)+JVS(1050)*UV(165)& + &+JVS(1259)*UV(188)+JVS(1293)*UV(192)+JVS(1348)*UV(196)+JVS(1701)*UV(220)+JVS(1881)*UV(230)+JVS(1915)& + &*UV(231)+JVS(1983)*UV(233)+JVS(2223)*UV(244)+JVS(2237)*UV(245)+JVS(2282)*UV(248)+JVS(2384)*UV(251)& + &+JVS(2739)*UV(263)+JVS(2925)*UV(266)+JVS(3025)*UV(267)+JVS(3581)*UV(279)+JVS(3961)*UV(284)+JVS(4227)& + &*UV(286)+JVS(4588)*UV(291) + JTUV(245) = JVS(238)*UV(34)+JVS(417)*UV(36)+JVS(827)*UV(129)+JVS(888)*UV(139)+JVS(987)*UV(157)+JVS(1086)*UV(171)& + &+JVS(1096)*UV(172)+JVS(1245)*UV(186)+JVS(1294)*UV(192)+JVS(1605)*UV(214)+JVS(1882)*UV(230)+JVS(1916)& + &*UV(231)+JVS(1984)*UV(233)+JVS(2224)*UV(244)+JVS(2238)*UV(245)+JVS(2283)*UV(248)+JVS(2385)*UV(251)& + &+JVS(2629)*UV(261)+JVS(2740)*UV(263)+JVS(2926)*UV(266)+JVS(3026)*UV(267)+JVS(3582)*UV(279)+JVS(3962)& + &*UV(284)+JVS(4228)*UV(286)+JVS(4589)*UV(291) + JTUV(246) = JVS(48)*UV(7)+JVS(239)*UV(34)+JVS(327)*UV(35)+JVS(804)*UV(126)+JVS(955)*UV(151)+JVS(1192)*UV(181)& + &+JVS(1606)*UV(214)+JVS(1655)*UV(218)+JVS(1702)*UV(220)+JVS(2135)*UV(240)+JVS(2211)*UV(243)+JVS(2249)& + &*UV(246)+JVS(2261)*UV(247)+JVS(2284)*UV(248)+JVS(2386)*UV(251)+JVS(2630)*UV(261)+JVS(2741)*UV(263)& + &+JVS(2927)*UV(266)+JVS(3583)*UV(279)+JVS(3707)*UV(281)+JVS(3963)*UV(284)+JVS(4590)*UV(291) + JTUV(247) = JVS(49)*UV(7)+JVS(240)*UV(34)+JVS(328)*UV(35)+JVS(805)*UV(126)+JVS(1193)*UV(181)+JVS(1656)*UV(218)& + &+JVS(1703)*UV(220)+JVS(2136)*UV(240)+JVS(2212)*UV(243)+JVS(2250)*UV(246)+JVS(2262)*UV(247)+JVS(2285)& + &*UV(248)+JVS(2387)*UV(251)+JVS(2631)*UV(261)+JVS(2742)*UV(263)+JVS(2928)*UV(266)+JVS(3584)*UV(279)& + &+JVS(3708)*UV(281)+JVS(3964)*UV(284)+JVS(4230)*UV(286)+JVS(4591)*UV(291) + JTUV(248) = JVS(329)*UV(35)+JVS(418)*UV(36)+JVS(462)*UV(40)+JVS(689)*UV(104)+JVS(1448)*UV(204)+JVS(1572)*UV(212)& + &+JVS(1987)*UV(233)+JVS(2006)*UV(234)+JVS(2286)*UV(248)+JVS(2428)*UV(253)+JVS(2461)*UV(255)+JVS(2632)& + &*UV(261)+JVS(2743)*UV(263)+JVS(2929)*UV(266)+JVS(3029)*UV(267)+JVS(3772)*UV(282)+JVS(3965)*UV(284)& + &+JVS(4231)*UV(286) + JTUV(249) = JVS(50)*UV(7)+JVS(241)*UV(34)+JVS(330)*UV(35)+JVS(966)*UV(153)+JVS(1139)*UV(175)+JVS(1414)*UV(200)& + &+JVS(2305)*UV(249)+JVS(2358)*UV(250)+JVS(2744)*UV(263)+JVS(2930)*UV(266)+JVS(3586)*UV(279)+JVS(3710)& + &*UV(281)+JVS(3773)*UV(282)+JVS(3966)*UV(284)+JVS(4232)*UV(286)+JVS(4593)*UV(291) + JTUV(250) = JVS(51)*UV(7)+JVS(419)*UV(36)+JVS(1554)*UV(211)+JVS(1680)*UV(219)+JVS(1989)*UV(233)+JVS(2359)*UV(250)& + &+JVS(2634)*UV(261)+JVS(2745)*UV(263)+JVS(2931)*UV(266)+JVS(3031)*UV(267)+JVS(3967)*UV(284)+JVS(4233)& + &*UV(286) + JTUV(251) = JVS(331)*UV(35)+JVS(420)*UV(36)+JVS(1350)*UV(196)+JVS(1386)*UV(198)+JVS(1459)*UV(205)+JVS(1483)*UV(207)& + &+JVS(1990)*UV(233)+JVS(2007)*UV(234)+JVS(2388)*UV(251)+JVS(2635)*UV(261)+JVS(2746)*UV(263)+JVS(2859)& + &*UV(265)+JVS(3032)*UV(267)+JVS(3712)*UV(281)+JVS(3774)*UV(282)+JVS(3968)*UV(284)+JVS(4234)*UV(286) + JTUV(252) = JVS(52)*UV(7)+JVS(242)*UV(34)+JVS(1351)*UV(196)+JVS(1657)*UV(218)+JVS(1681)*UV(219)+JVS(1991)*UV(233)& + &+JVS(2361)*UV(250)+JVS(2411)*UV(252)+JVS(2636)*UV(261)+JVS(2747)*UV(263)+JVS(2933)*UV(266)+JVS(3588)& + &*UV(279)+JVS(3969)*UV(284)+JVS(4235)*UV(286)+JVS(4595)*UV(291) + JTUV(253) = JVS(53)*UV(7)+JVS(332)*UV(35)+JVS(421)*UV(36)+JVS(1269)*UV(190)+JVS(1333)*UV(195)+JVS(1421)*UV(201)& + &+JVS(1508)*UV(209)+JVS(2008)*UV(234)+JVS(2429)*UV(253)+JVS(2748)*UV(263)+JVS(2784)*UV(264)+JVS(2934)& + &*UV(266)+JVS(3034)*UV(267)+JVS(3225)*UV(273)+JVS(3334)*UV(275)+JVS(3714)*UV(281)+JVS(3775)*UV(282)& + &+JVS(3970)*UV(284)+JVS(4236)*UV(286)+JVS(4374)*UV(289)+JVS(4465)*UV(290) + JTUV(254) = JVS(54)*UV(7)+JVS(243)*UV(34)+JVS(997)*UV(158)+JVS(1352)*UV(196)+JVS(1429)*UV(202)+JVS(1659)*UV(218)& + &+JVS(1683)*UV(219)+JVS(1797)*UV(226)+JVS(2444)*UV(254)+JVS(2638)*UV(261)+JVS(2749)*UV(263)+JVS(2785)& + &*UV(264)+JVS(2935)*UV(266)+JVS(3590)*UV(279)+JVS(3971)*UV(284)+JVS(4237)*UV(286)+JVS(4597)*UV(291) + JTUV(255) = JVS(55)*UV(7)+JVS(244)*UV(34)+JVS(489)*UV(50)+JVS(697)*UV(106)+JVS(2083)*UV(237)+JVS(2114)*UV(239)& + &+JVS(2463)*UV(255)+JVS(2512)*UV(258)+JVS(2639)*UV(261)+JVS(2750)*UV(263)+JVS(2936)*UV(266)+JVS(3591)& + &*UV(279)+JVS(3776)*UV(282)+JVS(3972)*UV(284)+JVS(4238)*UV(286)+JVS(4598)*UV(291) + JTUV(256) = JVS(56)*UV(7)+JVS(245)*UV(34)+JVS(626)*UV(93)+JVS(998)*UV(158)+JVS(1430)*UV(202)+JVS(1660)*UV(218)& + &+JVS(1684)*UV(219)+JVS(1713)*UV(221)+JVS(1798)*UV(226)+JVS(2084)*UV(237)+JVS(2115)*UV(239)+JVS(2482)& + &*UV(256)+JVS(2513)*UV(258)+JVS(2550)*UV(259)+JVS(2640)*UV(261)+JVS(2751)*UV(263)+JVS(2787)*UV(264)& + &+JVS(2937)*UV(266)+JVS(3592)*UV(279)+JVS(3973)*UV(284)+JVS(4599)*UV(291) + JTUV(257) = JVS(57)*UV(7)+JVS(246)*UV(34)+JVS(999)*UV(158)+JVS(1431)*UV(202)+JVS(1661)*UV(218)+JVS(1685)*UV(219)& + &+JVS(2483)*UV(256)+JVS(2496)*UV(257)+JVS(2551)*UV(259)+JVS(2641)*UV(261)+JVS(2752)*UV(263)+JVS(2788)& + &*UV(264)+JVS(2938)*UV(266)+JVS(3593)*UV(279)+JVS(3974)*UV(284)+JVS(4600)*UV(291) + JTUV(258) = JVS(58)*UV(7)+JVS(247)*UV(34)+JVS(600)*UV(87)+JVS(634)*UV(95)+JVS(1000)*UV(158)+JVS(1662)*UV(218)& + &+JVS(1686)*UV(219)+JVS(1715)*UV(221)+JVS(2515)*UV(258)+JVS(2642)*UV(261)+JVS(2753)*UV(263)+JVS(2939)& + &*UV(266)+JVS(3594)*UV(279)+JVS(3975)*UV(284)+JVS(4601)*UV(291) + JTUV(259) = JVS(333)*UV(35)+JVS(422)*UV(36)+JVS(2086)*UV(237)+JVS(2117)*UV(239)+JVS(2466)*UV(255)+JVS(2516)*UV(258)& + &+JVS(2553)*UV(259)+JVS(2866)*UV(265)+JVS(3039)*UV(267)+JVS(3494)*UV(278)+JVS(3719)*UV(281)+JVS(3976)& + &*UV(284)+JVS(4242)*UV(286) + JTUV(260) = JVS(334)*UV(35)+JVS(445)*UV(38)+JVS(782)*UV(122)+JVS(817)*UV(128)+JVS(862)*UV(135)+JVS(2566)*UV(260)& + &+JVS(3231)*UV(273)+JVS(3270)*UV(274)+JVS(3341)*UV(275)+JVS(3384)*UV(276)+JVS(3415)*UV(277)+JVS(3495)& + &*UV(278)+JVS(3628)*UV(280)+JVS(3810)*UV(283)+JVS(4243)*UV(286)+JVS(4279)*UV(287)+JVS(4338)*UV(288)& + &+JVS(4380)*UV(289) + JTUV(261) = JVS(59)*UV(7)+JVS(248)*UV(34)+JVS(534)*UV(67)+JVS(604)*UV(88)+JVS(806)*UV(126)+JVS(1166)*UV(178)+JVS(1218)& + &*UV(184)+JVS(1397)*UV(199)+JVS(1422)*UV(201)+JVS(1509)*UV(209)+JVS(1615)*UV(215)+JVS(1627)*UV(216)& + &+JVS(1636)*UV(217)+JVS(1687)*UV(219)+JVS(1716)*UV(221)+JVS(1780)*UV(225)+JVS(1800)*UV(226)+JVS(1994)& + &*UV(233)+JVS(2087)*UV(237)+JVS(2099)*UV(238)+JVS(2118)*UV(239)+JVS(2137)*UV(240)+JVS(2251)*UV(246)& + &+JVS(2263)*UV(247)+JVS(2287)*UV(248)+JVS(2363)*UV(250)+JVS(2389)*UV(251)+JVS(2416)*UV(252)+JVS(2430)& + &*UV(253)+JVS(2447)*UV(254)+JVS(2467)*UV(255)+JVS(2484)*UV(256)+JVS(2497)*UV(257)+JVS(2517)*UV(258)& + &+JVS(2554)*UV(259)+JVS(2644)*UV(261)+JVS(2755)*UV(263)+JVS(2790)*UV(264)+JVS(2941)*UV(266)+JVS(3596)& + &*UV(279)+JVS(3780)*UV(282)+JVS(3977)*UV(284)+JVS(4244)*UV(286)+JVS(4603)*UV(291) + JTUV(262) = JVS(249)*UV(34)+JVS(335)*UV(35)+JVS(863)*UV(135)+JVS(1359)*UV(197)+JVS(2655)*UV(262)+JVS(2868)*UV(265)& + &+JVS(3130)*UV(271)+JVS(3343)*UV(275)+JVS(3416)*UV(277)+JVS(3497)*UV(278)+JVS(3629)*UV(280)+JVS(3721)& + &*UV(281)+JVS(3811)*UV(283)+JVS(4031)*UV(285)+JVS(4245)*UV(286)+JVS(4280)*UV(287)+JVS(4340)*UV(288)& + &+JVS(4382)*UV(289)+JVS(4474)*UV(290)+JVS(4604)*UV(291) + JTUV(263) = JVS(336)*UV(35)+JVS(423)*UV(36)+JVS(596)*UV(86)+JVS(1153)*UV(177)+JVS(2756)*UV(263)+JVS(2869)*UV(265)& + &+JVS(3041)*UV(267)+JVS(3234)*UV(273)+JVS(3344)*UV(275)+JVS(3386)*UV(276)+JVS(3498)*UV(278)+JVS(3722)& + &*UV(281)+JVS(3978)*UV(284)+JVS(4246)*UV(286)+JVS(4341)*UV(288)+JVS(4383)*UV(289)+JVS(4475)*UV(290) + JTUV(264) = JVS(337)*UV(35)+JVS(424)*UV(36)+JVS(1270)*UV(190)+JVS(2645)*UV(261)+JVS(2757)*UV(263)+JVS(2791)*UV(264)& + &+JVS(2870)*UV(265)+JVS(2942)*UV(266)+JVS(3042)*UV(267)+JVS(3235)*UV(273)+JVS(3499)*UV(278)+JVS(3723)& + &*UV(281)+JVS(3979)*UV(284)+JVS(4247)*UV(286)+JVS(4384)*UV(289) + JTUV(265) = JVS(250)*UV(34)+JVS(519)*UV(62)+JVS(523)*UV(63)+JVS(883)*UV(138)+JVS(933)*UV(147)+JVS(2871)*UV(265)& + &+JVS(3500)*UV(278)+JVS(3724)*UV(281)+JVS(4248)*UV(286)+JVS(4606)*UV(291) + JTUV(266) = JVS(60)*UV(7)+JVS(251)*UV(34)+JVS(338)*UV(35)+JVS(425)*UV(36)+JVS(561)*UV(74)+JVS(608)*UV(89)+JVS(681)& + &*UV(103)+JVS(710)*UV(108)+JVS(768)*UV(120)+JVS(807)*UV(126)+JVS(850)*UV(133)+JVS(878)*UV(137)+JVS(1001)& + &*UV(158)+JVS(1020)*UV(160)+JVS(1140)*UV(175)+JVS(1167)*UV(178)+JVS(1175)*UV(179)+JVS(1185)*UV(180)& + &+JVS(1194)*UV(181)+JVS(1219)*UV(184)+JVS(1281)*UV(191)+JVS(1295)*UV(192)+JVS(1398)*UV(199)+JVS(1423)& + &*UV(201)+JVS(1510)*UV(209)+JVS(1607)*UV(214)+JVS(1616)*UV(215)+JVS(1628)*UV(216)+JVS(1637)*UV(217)& + &+JVS(1664)*UV(218)+JVS(1688)*UV(219)+JVS(1704)*UV(220)+JVS(1717)*UV(221)+JVS(1781)*UV(225)+JVS(1801)& + &*UV(226)+JVS(1886)*UV(230)+JVS(1920)*UV(231)+JVS(1995)*UV(233)+JVS(2068)*UV(236)+JVS(2088)*UV(237)& + &+JVS(2100)*UV(238)+JVS(2119)*UV(239)+JVS(2138)*UV(240)+JVS(2226)*UV(244)+JVS(2240)*UV(245)+JVS(2252)& + &*UV(246)+JVS(2264)*UV(247)+JVS(2288)*UV(248)+JVS(2308)*UV(249)+JVS(2364)*UV(250)+JVS(2390)*UV(251)& + &+JVS(2417)*UV(252)+JVS(2431)*UV(253)+JVS(2448)*UV(254)+JVS(2468)*UV(255)+JVS(2485)*UV(256)+JVS(2498)& + &*UV(257)+JVS(2518)*UV(258)+JVS(2555)*UV(259)+JVS(2646)*UV(261)+JVS(2758)*UV(263)+JVS(2792)*UV(264)& + &+JVS(2943)*UV(266)+JVS(3043)*UV(267)+JVS(3599)*UV(279)+JVS(3725)*UV(281)+JVS(3784)*UV(282)+JVS(3980)& + &*UV(284)+JVS(4033)*UV(285)+JVS(4249)*UV(286)+JVS(4477)*UV(290)+JVS(4607)*UV(291) + JTUV(267) = JVS(61)*UV(7)+JVS(437)*UV(37)+JVS(1334)*UV(195)+JVS(2009)*UV(234)+JVS(2759)*UV(263)+JVS(2793)*UV(264)& + &+JVS(3044)*UV(267)+JVS(3981)*UV(284)+JVS(4250)*UV(286) + JTUV(268) = JVS(77)*UV(9)+JVS(85)*UV(10)+JVS(339)*UV(35)+JVS(556)*UV(73)+JVS(662)*UV(99)+JVS(1811)*UV(227)+JVS(3061)& + &*UV(268)+JVS(3090)*UV(269)+JVS(3417)*UV(277)+JVS(3503)*UV(278)+JVS(3633)*UV(280)+JVS(3812)*UV(283)& + &+JVS(4251)*UV(286)+JVS(4284)*UV(287) + JTUV(269) = JVS(511)*UV(60)+JVS(541)*UV(69)+JVS(910)*UV(143)+JVS(1436)*UV(203)+JVS(1812)*UV(227)+JVS(3091)*UV(269)& + &+JVS(3110)*UV(270)+JVS(3239)*UV(273)+JVS(3272)*UV(274)+JVS(3602)*UV(279)+JVS(3727)*UV(281)+JVS(3786)& + &*UV(282)+JVS(3983)*UV(284)+JVS(4610)*UV(291) + JTUV(270) = JVS(78)*UV(9)+JVS(86)*UV(10)+JVS(340)*UV(35)+JVS(557)*UV(73)+JVS(663)*UV(99)+JVS(911)*UV(143)+JVS(1813)& + &*UV(227)+JVS(2874)*UV(265)+JVS(3063)*UV(268)+JVS(3092)*UV(269)+JVS(3111)*UV(270)+JVS(3419)*UV(277)& + &+JVS(3505)*UV(278)+JVS(3635)*UV(280)+JVS(3728)*UV(281)+JVS(3814)*UV(283)+JVS(4286)*UV(287)+JVS(4611)& + &*UV(291) + JTUV(271) = JVS(341)*UV(35)+JVS(446)*UV(38)+JVS(784)*UV(122)+JVS(864)*UV(135)+JVS(1361)*UV(197)+JVS(3136)*UV(271)& + &+JVS(3350)*UV(275)+JVS(3392)*UV(276)+JVS(3506)*UV(278)+JVS(3636)*UV(280)+JVS(4038)*UV(285)+JVS(4254)& + &*UV(286)+JVS(4287)*UV(287)+JVS(4387)*UV(289)+JVS(4482)*UV(290) + JTUV(272) = JVS(342)*UV(35)+JVS(452)*UV(39)+JVS(482)*UV(47)+JVS(484)*UV(48)+JVS(495)*UV(52)+JVS(497)*UV(53)+JVS(499)& + &*UV(54)+JVS(501)*UV(55)+JVS(503)*UV(56)+JVS(505)*UV(57)+JVS(509)*UV(59)+JVS(515)*UV(61)+JVS(549)*UV(71)& + &+JVS(570)*UV(77)+JVS(580)*UV(81)+JVS(583)*UV(82)+JVS(586)*UV(83)+JVS(589)*UV(84)+JVS(668)*UV(100)+JVS(945)& + &*UV(149)+JVS(1154)*UV(177)+JVS(1271)*UV(190)+JVS(1362)*UV(197)+JVS(2760)*UV(263)+JVS(2945)*UV(266)& + &+JVS(3186)*UV(272)+JVS(3242)*UV(273)+JVS(3274)*UV(274)+JVS(3351)*UV(275)+JVS(3507)*UV(278)+JVS(3604)& + &*UV(279)+JVS(3788)*UV(282)+JVS(3985)*UV(284)+JVS(4039)*UV(285)+JVS(4255)*UV(286)+JVS(4349)*UV(288)& + &+JVS(4388)*UV(289)+JVS(4483)*UV(290) + JTUV(273) = JVS(426)*UV(36)+JVS(492)*UV(51)+JVS(794)*UV(124)+JVS(818)*UV(128)+JVS(1028)*UV(161)+JVS(1145)*UV(176)& + &+JVS(1511)*UV(209)+JVS(1638)*UV(217)+JVS(1718)*UV(221)+JVS(2089)*UV(237)+JVS(2418)*UV(252)+JVS(2432)& + &*UV(253)+JVS(2647)*UV(261)+JVS(2761)*UV(263)+JVS(2794)*UV(264)+JVS(3046)*UV(267)+JVS(3243)*UV(273)& + &+JVS(3275)*UV(274)+JVS(3730)*UV(281)+JVS(3789)*UV(282)+JVS(3986)*UV(284)+JVS(4389)*UV(289)+JVS(4613)& + &*UV(291) + JTUV(274) = JVS(343)*UV(35)+JVS(623)*UV(92)+JVS(682)*UV(103)+JVS(725)*UV(111)+JVS(819)*UV(128)+JVS(865)*UV(135)& + &+JVS(1146)*UV(176)+JVS(1814)*UV(227)+JVS(2568)*UV(260)+JVS(3093)*UV(269)+JVS(3244)*UV(273)+JVS(3276)& + &*UV(274)+JVS(3606)*UV(279)+JVS(3987)*UV(284)+JVS(4041)*UV(285)+JVS(4257)*UV(286)+JVS(4351)*UV(288)& + &+JVS(4614)*UV(291) + JTUV(275) = JVS(344)*UV(35)+JVS(866)*UV(135)+JVS(884)*UV(138)+JVS(934)*UV(147)+JVS(1101)*UV(173)+JVS(1147)*UV(176)& + &+JVS(1155)*UV(177)+JVS(1308)*UV(193)+JVS(1364)*UV(197)+JVS(2020)*UV(235)+JVS(2569)*UV(260)+JVS(2656)& + &*UV(262)+JVS(2878)*UV(265)+JVS(3140)*UV(271)+JVS(3189)*UV(272)+JVS(3354)*UV(275)+JVS(3510)*UV(278)& + &+JVS(3640)*UV(280)+JVS(4042)*UV(285)+JVS(4258)*UV(286)+JVS(4291)*UV(287)+JVS(4352)*UV(288)+JVS(4486)& + &*UV(290) + JTUV(276) = JVS(152)*UV(29)+JVS(167)*UV(32)+JVS(172)*UV(33)+JVS(345)*UV(35)+JVS(447)*UV(38)+JVS(597)*UV(86)+JVS(785)& + &*UV(122)+JVS(885)*UV(138)+JVS(935)*UV(147)+JVS(1335)*UV(195)+JVS(1575)*UV(212)+JVS(2010)*UV(234)+JVS(2570)& + &*UV(260)+JVS(2762)*UV(263)+JVS(2795)*UV(264)+JVS(3141)*UV(271)+JVS(3355)*UV(275)+JVS(3397)*UV(276)& + &+JVS(3792)*UV(282)+JVS(3989)*UV(284)+JVS(4259)*UV(286)+JVS(4392)*UV(289) + JTUV(277) = JVS(346)*UV(35)+JVS(558)*UV(73)+JVS(820)*UV(128)+JVS(867)*UV(135)+JVS(1310)*UV(193)+JVS(1437)*UV(203)& + &+JVS(2021)*UV(235)+JVS(2571)*UV(260)+JVS(2657)*UV(262)+JVS(2880)*UV(265)+JVS(3065)*UV(268)+JVS(3113)& + &*UV(270)+JVS(3424)*UV(277)+JVS(3793)*UV(282) + JTUV(278) = JVS(347)*UV(35)+JVS(463)*UV(40)+JVS(593)*UV(85)+JVS(1102)*UV(173)+JVS(1148)*UV(176)+JVS(1336)*UV(195)& + &+JVS(1557)*UV(211)+JVS(1576)*UV(212)+JVS(1692)*UV(219)+JVS(2011)*UV(234)+JVS(2572)*UV(260)+JVS(2658)& + &*UV(262)+JVS(2763)*UV(263)+JVS(2796)*UV(264)+JVS(2881)*UV(265)+JVS(3066)*UV(268)+JVS(3114)*UV(270)& + &+JVS(3143)*UV(271)+JVS(3192)*UV(272)+JVS(3513)*UV(278)+JVS(4261)*UV(286) + JTUV(279) = JVS(62)*UV(7)+JVS(92)*UV(12)+JVS(95)*UV(13)+JVS(109)*UV(17)+JVS(112)*UV(18)+JVS(122)*UV(21)+JVS(125)& + &*UV(22)+JVS(141)*UV(26)+JVS(144)*UV(27)+JVS(252)*UV(34)+JVS(427)*UV(36)+JVS(512)*UV(60)+JVS(528)*UV(65)& + &+JVS(538)*UV(68)+JVS(601)*UV(87)+JVS(609)*UV(89)+JVS(616)*UV(91)+JVS(624)*UV(92)+JVS(639)*UV(96)+JVS(711)& + &*UV(108)+JVS(754)*UV(117)+JVS(773)*UV(121)+JVS(790)*UV(123)+JVS(808)*UV(126)+JVS(844)*UV(132)+JVS(889)& + &*UV(139)+JVS(893)*UV(140)+JVS(918)*UV(144)+JVS(924)*UV(145)+JVS(929)*UV(146)+JVS(951)*UV(150)+JVS(961)& + &*UV(152)+JVS(1021)*UV(160)+JVS(1055)*UV(166)+JVS(1061)*UV(167)+JVS(1066)*UV(168)+JVS(1078)*UV(169)& + &+JVS(1097)*UV(172)+JVS(1141)*UV(175)+JVS(1168)*UV(178)+JVS(1176)*UV(179)+JVS(1186)*UV(180)+JVS(1201)& + &*UV(182)+JVS(1208)*UV(183)+JVS(1220)*UV(184)+JVS(1253)*UV(187)+JVS(1265)*UV(189)+JVS(1282)*UV(191)& + &+JVS(1296)*UV(192)+JVS(1311)*UV(193)+JVS(1329)*UV(194)+JVS(1337)*UV(195)+JVS(1353)*UV(196)+JVS(1388)& + &*UV(198)+JVS(1399)*UV(199)+JVS(1415)*UV(200)+JVS(1424)*UV(201)+JVS(1432)*UV(202)+JVS(1449)*UV(204)& + &+JVS(1460)*UV(205)+JVS(1484)*UV(207)+JVS(1502)*UV(208)+JVS(1512)*UV(209)+JVS(1558)*UV(211)+JVS(1601)& + &*UV(213)+JVS(1608)*UV(214)+JVS(1617)*UV(215)+JVS(1629)*UV(216)+JVS(1639)*UV(217)+JVS(1705)*UV(220)& + &+JVS(1719)*UV(221)+JVS(1728)*UV(222)+JVS(1767)*UV(223)+JVS(1782)*UV(225)+JVS(1802)*UV(226)+JVS(1815)& + &*UV(227)+JVS(1838)*UV(228)+JVS(1858)*UV(229)+JVS(1887)*UV(230)+JVS(1921)*UV(231)+JVS(1938)*UV(232)& + &+JVS(1996)*UV(233)+JVS(2012)*UV(234)+JVS(2069)*UV(236)+JVS(2090)*UV(237)+JVS(2101)*UV(238)+JVS(2121)& + &*UV(239)+JVS(2139)*UV(240)+JVS(2164)*UV(241)+JVS(2193)*UV(242)+JVS(2215)*UV(243)+JVS(2227)*UV(244)& + &+JVS(2241)*UV(245)+JVS(2253)*UV(246)+JVS(2265)*UV(247)+JVS(2289)*UV(248)+JVS(2309)*UV(249)+JVS(2366)& + &*UV(250)+JVS(2391)*UV(251)+JVS(2419)*UV(252)+JVS(2433)*UV(253)+JVS(2449)*UV(254)+JVS(2469)*UV(255)& + &+JVS(2486)*UV(256)+JVS(2499)*UV(257)+JVS(2520)*UV(258)+JVS(2557)*UV(259)+JVS(2648)*UV(261)+JVS(2764)& + &*UV(263)+JVS(2797)*UV(264)+JVS(2949)*UV(266)+JVS(3049)*UV(267)+JVS(3096)*UV(269)+JVS(3249)*UV(273)& + &+JVS(3281)*UV(274)+JVS(3611)*UV(279)+JVS(3736)*UV(281)+JVS(3795)*UV(282)+JVS(3992)*UV(284)+JVS(4046)& + &*UV(285)+JVS(4262)*UV(286)+JVS(4356)*UV(288)+JVS(4490)*UV(290)+JVS(4619)*UV(291) + JTUV(280) = JVS(348)*UV(35)+JVS(664)*UV(99)+JVS(868)*UV(135)+JVS(1103)*UV(173)+JVS(1312)*UV(193)+JVS(1365)*UV(197)& + &+JVS(1438)*UV(203)+JVS(2023)*UV(235)+JVS(2573)*UV(260)+JVS(2659)*UV(262)+JVS(2883)*UV(265)+JVS(3068)& + &*UV(268)+JVS(3116)*UV(270)+JVS(3145)*UV(271)+JVS(3515)*UV(278)+JVS(3645)*UV(280)+JVS(4263)*UV(286) + JTUV(281) = JVS(63)*UV(7)+JVS(103)*UV(15)+JVS(349)*UV(35)+JVS(428)*UV(36)+JVS(520)*UV(62)+JVS(524)*UV(63)+JVS(612)& + &*UV(90)+JVS(673)*UV(101)+JVS(712)*UV(108)+JVS(737)*UV(114)+JVS(743)*UV(115)+JVS(759)*UV(118)+JVS(809)& + &*UV(126)+JVS(856)*UV(134)+JVS(904)*UV(142)+JVS(913)*UV(143)+JVS(941)*UV(148)+JVS(970)*UV(154)+JVS(974)& + &*UV(155)+JVS(1010)*UV(159)+JVS(1022)*UV(160)+JVS(1029)*UV(161)+JVS(1082)*UV(170)+JVS(1104)*UV(173)& + &+JVS(1169)*UV(178)+JVS(1177)*UV(179)+JVS(1187)*UV(180)+JVS(1221)*UV(184)+JVS(1283)*UV(191)+JVS(1389)& + &*UV(198)+JVS(1400)*UV(199)+JVS(1425)*UV(201)+JVS(1485)*UV(207)+JVS(1503)*UV(208)+JVS(1525)*UV(210)& + &+JVS(1618)*UV(215)+JVS(1630)*UV(216)+JVS(1640)*UV(217)+JVS(1768)*UV(223)+JVS(1774)*UV(224)+JVS(1783)& + &*UV(225)+JVS(1803)*UV(226)+JVS(1997)*UV(233)+JVS(2102)*UV(238)+JVS(2140)*UV(240)+JVS(2254)*UV(246)& + &+JVS(2266)*UV(247)+JVS(2290)*UV(248)+JVS(2310)*UV(249)+JVS(2367)*UV(250)+JVS(2392)*UV(251)+JVS(2434)& + &*UV(253)+JVS(2450)*UV(254)+JVS(2470)*UV(255)+JVS(2487)*UV(256)+JVS(2500)*UV(257)+JVS(2558)*UV(259)& + &+JVS(2649)*UV(261)+JVS(2765)*UV(263)+JVS(2798)*UV(264)+JVS(2884)*UV(265)+JVS(2950)*UV(266)+JVS(3050)& + &*UV(267)+JVS(3098)*UV(269)+JVS(3117)*UV(270)+JVS(3251)*UV(273)+JVS(3283)*UV(274)+JVS(3402)*UV(276)& + &+JVS(3613)*UV(279)+JVS(3738)*UV(281)+JVS(3994)*UV(284)+JVS(4264)*UV(286)+JVS(4358)*UV(288)+JVS(4621)& + &*UV(291) + JTUV(282) = JVS(64)*UV(7)+JVS(153)*UV(29)+JVS(173)*UV(33)+JVS(350)*UV(35)+JVS(429)*UV(36)+JVS(448)*UV(38)+JVS(464)& + &*UV(40)+JVS(567)*UV(76)+JVS(690)*UV(104)+JVS(786)*UV(122)+JVS(857)*UV(134)+JVS(886)*UV(138)+JVS(905)& + &*UV(142)+JVS(936)*UV(147)+JVS(942)*UV(148)+JVS(971)*UV(154)+JVS(975)*UV(155)+JVS(1011)*UV(159)+JVS(1023)& + &*UV(160)+JVS(1083)*UV(170)+JVS(1156)*UV(177)+JVS(1272)*UV(190)+JVS(1284)*UV(191)+JVS(1338)*UV(195)& + &+JVS(1401)*UV(199)+JVS(1560)*UV(211)+JVS(1579)*UV(212)+JVS(1695)*UV(219)+JVS(1769)*UV(223)+JVS(1775)& + &*UV(224)+JVS(1804)*UV(226)+JVS(1816)*UV(227)+JVS(1998)*UV(233)+JVS(2014)*UV(234)+JVS(2071)*UV(236)& + &+JVS(2123)*UV(239)+JVS(2291)*UV(248)+JVS(2393)*UV(251)+JVS(2435)*UV(253)+JVS(2451)*UV(254)+JVS(2559)& + &*UV(259)+JVS(2574)*UV(260)+JVS(2650)*UV(261)+JVS(2766)*UV(263)+JVS(2799)*UV(264)+JVS(2951)*UV(266)& + &+JVS(3051)*UV(267)+JVS(3099)*UV(269)+JVS(3196)*UV(272)+JVS(3252)*UV(273)+JVS(3284)*UV(274)+JVS(3403)& + &*UV(276)+JVS(3429)*UV(277)+JVS(3614)*UV(279)+JVS(3739)*UV(281)+JVS(3798)*UV(282)+JVS(3824)*UV(283)& + &+JVS(3995)*UV(284)+JVS(4049)*UV(285)+JVS(4265)*UV(286)+JVS(4359)*UV(288)+JVS(4398)*UV(289)+JVS(4493)& + &*UV(290)+JVS(4622)*UV(291) + JTUV(283) = JVS(351)*UV(35)+JVS(559)*UV(73)+JVS(821)*UV(128)+JVS(869)*UV(135)+JVS(1315)*UV(193)+JVS(1439)*UV(203)& + &+JVS(2025)*UV(235)+JVS(2575)*UV(260)+JVS(2660)*UV(262)+JVS(2886)*UV(265)+JVS(3071)*UV(268)+JVS(3119)& + &*UV(270)+JVS(3799)*UV(282)+JVS(3825)*UV(283) + JTUV(284) = JVS(65)*UV(7)+JVS(89)*UV(11)+JVS(96)*UV(13)+JVS(106)*UV(16)+JVS(113)*UV(18)+JVS(119)*UV(20)+JVS(126)& + &*UV(22)+JVS(138)*UV(25)+JVS(145)*UV(27)+JVS(253)*UV(34)+JVS(352)*UV(35)+JVS(430)*UV(36)+JVS(465)*UV(40)& + &+JVS(542)*UV(69)+JVS(546)*UV(70)+JVS(605)*UV(88)+JVS(627)*UV(93)+JVS(631)*UV(94)+JVS(635)*UV(95)+JVS(676)& + &*UV(102)+JVS(698)*UV(106)+JVS(704)*UV(107)+JVS(721)*UV(110)+JVS(730)*UV(112)+JVS(734)*UV(113)+JVS(755)& + &*UV(117)+JVS(764)*UV(119)+JVS(769)*UV(120)+JVS(774)*UV(121)+JVS(791)*UV(123)+JVS(845)*UV(132)+JVS(875)& + &*UV(136)+JVS(879)*UV(137)+JVS(899)*UV(141)+JVS(919)*UV(144)+JVS(925)*UV(145)+JVS(930)*UV(146)+JVS(952)& + &*UV(150)+JVS(956)*UV(151)+JVS(962)*UV(152)+JVS(988)*UV(157)+JVS(1034)*UV(162)+JVS(1051)*UV(165)+JVS(1056)& + &*UV(166)+JVS(1062)*UV(167)+JVS(1067)*UV(168)+JVS(1079)*UV(169)+JVS(1087)*UV(171)+JVS(1098)*UV(172)& + &+JVS(1142)*UV(175)+JVS(1157)*UV(177)+JVS(1170)*UV(178)+JVS(1179)*UV(179)+JVS(1188)*UV(180)+JVS(1195)& + &*UV(181)+JVS(1202)*UV(182)+JVS(1209)*UV(183)+JVS(1223)*UV(184)+JVS(1254)*UV(187)+JVS(1266)*UV(189)& + &+JVS(1285)*UV(191)+JVS(1330)*UV(194)+JVS(1354)*UV(196)+JVS(1390)*UV(198)+JVS(1402)*UV(199)+JVS(1416)& + &*UV(200)+JVS(1426)*UV(201)+JVS(1433)*UV(202)+JVS(1450)*UV(204)+JVS(1461)*UV(205)+JVS(1477)*UV(206)& + &+JVS(1486)*UV(207)+JVS(1504)*UV(208)+JVS(1513)*UV(209)+JVS(1580)*UV(212)+JVS(1620)*UV(215)+JVS(1632)& + &*UV(216)+JVS(1641)*UV(217)+JVS(1696)*UV(219)+JVS(1729)*UV(222)+JVS(1770)*UV(223)+JVS(1785)*UV(225)& + &+JVS(1817)*UV(227)+JVS(1839)*UV(228)+JVS(1859)*UV(229)+JVS(1890)*UV(230)+JVS(1924)*UV(231)+JVS(1940)& + &*UV(232)+JVS(1999)*UV(233)+JVS(2072)*UV(236)+JVS(2093)*UV(237)+JVS(2104)*UV(238)+JVS(2124)*UV(239)& + &+JVS(2167)*UV(241)+JVS(2195)*UV(242)+JVS(2217)*UV(243)+JVS(2230)*UV(244)+JVS(2244)*UV(245)+JVS(2256)& + &*UV(246)+JVS(2268)*UV(247)+JVS(2292)*UV(248)+JVS(2312)*UV(249)+JVS(2369)*UV(250)+JVS(2394)*UV(251)& + &+JVS(2422)*UV(252)+JVS(2452)*UV(254)+JVS(2472)*UV(255)+JVS(2489)*UV(256)+JVS(2502)*UV(257)+JVS(2523)& + &*UV(258)+JVS(2576)*UV(260)+JVS(2651)*UV(261)+JVS(2767)*UV(263)+JVS(2800)*UV(264)+JVS(2952)*UV(266)& + &+JVS(3052)*UV(267)+JVS(3072)*UV(268)+JVS(3101)*UV(269)+JVS(3149)*UV(271)+JVS(3254)*UV(273)+JVS(3286)& + &*UV(274)+JVS(3363)*UV(275)+JVS(3519)*UV(278)+JVS(3616)*UV(279)+JVS(3741)*UV(281)+JVS(3800)*UV(282)& + &+JVS(3997)*UV(284)+JVS(4051)*UV(285)+JVS(4267)*UV(286)+JVS(4361)*UV(288)+JVS(4400)*UV(289)+JVS(4495)& + &*UV(290)+JVS(4624)*UV(291) + JTUV(285) = JVS(353)*UV(35)+JVS(564)*UV(75)+JVS(665)*UV(99)+JVS(683)*UV(103)+JVS(726)*UV(111)+JVS(870)*UV(135)& + &+JVS(1366)*UV(197)+JVS(1818)*UV(227)+JVS(2661)*UV(262)+JVS(2768)*UV(263)+JVS(2953)*UV(266)+JVS(3102)& + &*UV(269)+JVS(3150)*UV(271)+JVS(3255)*UV(273)+JVS(3287)*UV(274)+JVS(3364)*UV(275)+JVS(3617)*UV(279)& + &+JVS(3998)*UV(284)+JVS(4052)*UV(285)+JVS(4268)*UV(286)+JVS(4362)*UV(288)+JVS(4496)*UV(290)+JVS(4625)& + &*UV(291) + JTUV(286) = JVS(13)*UV(6)+JVS(66)*UV(7)+JVS(97)*UV(13)+JVS(100)*UV(14)+JVS(114)*UV(18)+JVS(116)*UV(19)+JVS(127)*UV(22)& + &+JVS(135)*UV(24)+JVS(146)*UV(27)+JVS(149)*UV(28)+JVS(168)*UV(32)+JVS(174)*UV(33)+JVS(254)*UV(34)+JVS(354)& + &*UV(35)+JVS(431)*UV(36)+JVS(438)*UV(37)+JVS(449)*UV(38)+JVS(453)*UV(39)+JVS(466)*UV(40)+JVS(468)*UV(41)& + &+JVS(472)*UV(43)+JVS(480)*UV(46)+JVS(507)*UV(58)+JVS(526)*UV(64)+JVS(531)*UV(66)+JVS(539)*UV(68)+JVS(543)& + &*UV(69)+JVS(547)*UV(70)+JVS(550)*UV(71)+JVS(552)*UV(72)+JVS(565)*UV(75)+JVS(568)*UV(76)+JVS(571)*UV(77)& + &+JVS(573)*UV(78)+JVS(576)*UV(79)+JVS(578)*UV(80)+JVS(581)*UV(81)+JVS(584)*UV(82)+JVS(587)*UV(83)+JVS(590)& + &*UV(84)+JVS(594)*UV(85)+JVS(598)*UV(86)+JVS(602)*UV(87)+JVS(606)*UV(88)+JVS(610)*UV(89)+JVS(613)*UV(90)& + &+JVS(617)*UV(91)+JVS(628)*UV(93)+JVS(632)*UV(94)+JVS(636)*UV(95)+JVS(640)*UV(96)+JVS(643)*UV(97)+JVS(669)& + &*UV(100)+JVS(674)*UV(101)+JVS(677)*UV(102)+JVS(684)*UV(103)+JVS(691)*UV(104)+JVS(695)*UV(105)+JVS(699)& + &*UV(106)+JVS(705)*UV(107)+JVS(717)*UV(109)+JVS(722)*UV(110)+JVS(727)*UV(111)+JVS(731)*UV(112)+JVS(735)& + &*UV(113)+JVS(738)*UV(114)+JVS(744)*UV(115)+JVS(750)*UV(116)+JVS(756)*UV(117)+JVS(760)*UV(118)+JVS(765)& + &*UV(119)+JVS(770)*UV(120)+JVS(775)*UV(121)+JVS(787)*UV(122)+JVS(792)*UV(123)+JVS(795)*UV(124)+JVS(800)& + &*UV(125)+JVS(814)*UV(127)+JVS(822)*UV(128)+JVS(828)*UV(129)+JVS(834)*UV(130)+JVS(840)*UV(131)+JVS(846)& + &*UV(132)+JVS(851)*UV(133)+JVS(858)*UV(134)+JVS(876)*UV(136)+JVS(880)*UV(137)+JVS(890)*UV(139)+JVS(894)& + &*UV(140)+JVS(900)*UV(141)+JVS(906)*UV(142)+JVS(914)*UV(143)+JVS(931)*UV(146)+JVS(943)*UV(148)+JVS(946)& + &*UV(149)+JVS(953)*UV(150)+JVS(957)*UV(151)+JVS(963)*UV(152)+JVS(967)*UV(153)+JVS(972)*UV(154)+JVS(976)& + &*UV(155)+JVS(985)*UV(156)+JVS(989)*UV(157)+JVS(1002)*UV(158)+JVS(1012)*UV(159)+JVS(1025)*UV(160)+JVS(1030)& + &*UV(161)+JVS(1035)*UV(162)+JVS(1041)*UV(163)+JVS(1048)*UV(164)+JVS(1052)*UV(165)+JVS(1057)*UV(166)& + &+JVS(1063)*UV(167)+JVS(1068)*UV(168)+JVS(1080)*UV(169)+JVS(1084)*UV(170)+JVS(1088)*UV(171)+JVS(1099)& + &*UV(172)+JVS(1131)*UV(174)+JVS(1143)*UV(175)+JVS(1158)*UV(177)+JVS(1171)*UV(178)+JVS(1180)*UV(179)& + &+JVS(1189)*UV(180)+JVS(1196)*UV(181)+JVS(1203)*UV(182)+JVS(1210)*UV(183)+JVS(1224)*UV(184)+JVS(1241)& + &*UV(185)+JVS(1247)*UV(186)+JVS(1255)*UV(187)+JVS(1261)*UV(188)+JVS(1267)*UV(189)+JVS(1273)*UV(190)& + &+JVS(1286)*UV(191)+JVS(1298)*UV(192)+JVS(1316)*UV(193)+JVS(1331)*UV(194)+JVS(1355)*UV(196)+JVS(1367)& + &*UV(197)+JVS(1391)*UV(198)+JVS(1403)*UV(199)+JVS(1417)*UV(200)+JVS(1427)*UV(201)+JVS(1434)*UV(202)& + &+JVS(1451)*UV(204)+JVS(1462)*UV(205)+JVS(1478)*UV(206)+JVS(1487)*UV(207)+JVS(1505)*UV(208)+JVS(1514)& + &*UV(209)+JVS(1528)*UV(210)+JVS(1562)*UV(211)+JVS(1581)*UV(212)+JVS(1603)*UV(213)+JVS(1609)*UV(214)& + &+JVS(1642)*UV(217)+JVS(1670)*UV(218)+JVS(1697)*UV(219)+JVS(1706)*UV(220)+JVS(1721)*UV(221)+JVS(1730)& + &*UV(222)+JVS(1771)*UV(223)+JVS(1776)*UV(224)+JVS(1786)*UV(225)+JVS(1806)*UV(226)+JVS(1819)*UV(227)& + &+JVS(1840)*UV(228)+JVS(1860)*UV(229)+JVS(1891)*UV(230)+JVS(1925)*UV(231)+JVS(1941)*UV(232)+JVS(2000)& + &*UV(233)+JVS(2026)*UV(235)+JVS(2073)*UV(236)+JVS(2094)*UV(237)+JVS(2105)*UV(238)+JVS(2125)*UV(239)& + &+JVS(2142)*UV(240)+JVS(2168)*UV(241)+JVS(2196)*UV(242)+JVS(2218)*UV(243)+JVS(2231)*UV(244)+JVS(2245)& + &*UV(245)+JVS(2257)*UV(246)+JVS(2269)*UV(247)+JVS(2293)*UV(248)+JVS(2313)*UV(249)+JVS(2370)*UV(250)& + &+JVS(2395)*UV(251)+JVS(2423)*UV(252)+JVS(2437)*UV(253)+JVS(2453)*UV(254)+JVS(2473)*UV(255)+JVS(2490)& + &*UV(256)+JVS(2503)*UV(257)+JVS(2524)*UV(258)+JVS(2561)*UV(259)+JVS(2577)*UV(260)+JVS(2652)*UV(261)& + &+JVS(2662)*UV(262)+JVS(2769)*UV(263)+JVS(2801)*UV(264)+JVS(2889)*UV(265)+JVS(2954)*UV(266)+JVS(3054)& + &*UV(267)+JVS(3074)*UV(268)+JVS(3103)*UV(269)+JVS(3151)*UV(271)+JVS(3256)*UV(273)+JVS(3288)*UV(274)& + &+JVS(3365)*UV(275)+JVS(3407)*UV(276)+JVS(3521)*UV(278)+JVS(3618)*UV(279)+JVS(3651)*UV(280)+JVS(3743)& + &*UV(281)+JVS(3802)*UV(282)+JVS(3999)*UV(284)+JVS(4053)*UV(285)+JVS(4269)*UV(286)+JVS(4302)*UV(287)& + &+JVS(4363)*UV(288)+JVS(4402)*UV(289)+JVS(4497)*UV(290)+JVS(4626)*UV(291) + JTUV(287) = JVS(355)*UV(35)+JVS(666)*UV(99)+JVS(871)*UV(135)+JVS(1105)*UV(173)+JVS(1317)*UV(193)+JVS(1368)*UV(197)& + &+JVS(1440)*UV(203)+JVS(2027)*UV(235)+JVS(2578)*UV(260)+JVS(2663)*UV(262)+JVS(2890)*UV(265)+JVS(3075)& + &*UV(268)+JVS(3123)*UV(270)+JVS(3152)*UV(271)+JVS(3522)*UV(278)+JVS(4270)*UV(286)+JVS(4303)*UV(287) + JTUV(288) = JVS(356)*UV(35)+JVS(432)*UV(36)+JVS(532)*UV(66)+JVS(1159)*UV(177)+JVS(1582)*UV(212)+JVS(2579)*UV(260)& + &+JVS(2664)*UV(262)+JVS(2770)*UV(263)+JVS(3055)*UV(267)+JVS(3258)*UV(273)+JVS(3290)*UV(274)+JVS(3409)& + &*UV(276)+JVS(3620)*UV(279)+JVS(3745)*UV(281)+JVS(3804)*UV(282)+JVS(4001)*UV(284)+JVS(4055)*UV(285)& + &+JVS(4271)*UV(286)+JVS(4365)*UV(288)+JVS(4404)*UV(289)+JVS(4499)*UV(290)+JVS(4628)*UV(291) + JTUV(289) = JVS(357)*UV(35)+JVS(823)*UV(128)+JVS(872)*UV(135)+JVS(1160)*UV(177)+JVS(1318)*UV(193)+JVS(2028)*UV(235)& + &+JVS(2580)*UV(260)+JVS(2665)*UV(262)+JVS(2892)*UV(265)+JVS(3154)*UV(271)+JVS(3203)*UV(272)+JVS(3259)& + &*UV(273)+JVS(3291)*UV(274)+JVS(3436)*UV(277)+JVS(3524)*UV(278)+JVS(3805)*UV(282)+JVS(3831)*UV(283)& + &+JVS(4272)*UV(286)+JVS(4366)*UV(288)+JVS(4405)*UV(289) + JTUV(290) = JVS(67)*UV(7)+JVS(255)*UV(34)+JVS(433)*UV(36)+JVS(454)*UV(39)+JVS(553)*UV(72)+JVS(574)*UV(78)+JVS(685)& + &*UV(103)+JVS(739)*UV(114)+JVS(796)*UV(124)+JVS(852)*UV(133)+JVS(881)*UV(137)+JVS(947)*UV(149)+JVS(1031)& + &*UV(161)+JVS(1161)*UV(177)+JVS(1274)*UV(190)+JVS(1369)*UV(197)+JVS(1515)*UV(209)+JVS(1563)*UV(211)& + &+JVS(1583)*UV(212)+JVS(1643)*UV(217)+JVS(1671)*UV(218)+JVS(1698)*UV(219)+JVS(1722)*UV(221)+JVS(1777)& + &*UV(224)+JVS(2095)*UV(237)+JVS(2126)*UV(239)+JVS(2232)*UV(244)+JVS(2246)*UV(245)+JVS(2424)*UV(252)& + &+JVS(2438)*UV(253)+JVS(2491)*UV(256)+JVS(2525)*UV(258)+JVS(2666)*UV(262)+JVS(2771)*UV(263)+JVS(2802)& + &*UV(264)+JVS(2955)*UV(266)+JVS(3056)*UV(267)+JVS(3369)*UV(275)+JVS(3525)*UV(278)+JVS(3747)*UV(281)& + &+JVS(3806)*UV(282)+JVS(4003)*UV(284)+JVS(4057)*UV(285)+JVS(4273)*UV(286)+JVS(4501)*UV(290) + JTUV(291) = JVS(256)*UV(34)+JVS(358)*UV(35)+JVS(490)*UV(50)+JVS(493)*UV(51)+JVS(516)*UV(61)+JVS(529)*UV(65)+JVS(535)& + &*UV(67)+JVS(562)*UV(74)+JVS(644)*UV(97)+JVS(678)*UV(102)+JVS(920)*UV(144)+JVS(926)*UV(145)+JVS(968)*UV(153)& + &+JVS(1026)*UV(160)+JVS(1106)*UV(173)+JVS(1149)*UV(176)+JVS(1190)*UV(180)+JVS(1287)*UV(191)+JVS(1319)& + &*UV(193)+JVS(1339)*UV(195)+JVS(1418)*UV(200)+JVS(1441)*UV(203)+JVS(1488)*UV(207)+JVS(1529)*UV(210)& + &+JVS(1820)*UV(227)+JVS(2017)*UV(234)+JVS(2170)*UV(241)+JVS(2315)*UV(249)+JVS(2475)*UV(255)+JVS(2654)& + &*UV(261)+JVS(2667)*UV(262)+JVS(2772)*UV(263)+JVS(2803)*UV(264)+JVS(2894)*UV(265)+JVS(2956)*UV(266)& + &+JVS(3105)*UV(269)+JVS(3124)*UV(270)+JVS(3261)*UV(273)+JVS(3293)*UV(274)+JVS(3623)*UV(279)+JVS(3748)& + &*UV(281)+JVS(3807)*UV(282)+JVS(4004)*UV(284)+JVS(4058)*UV(285)+JVS(4274)*UV(286)+JVS(4368)*UV(288)& + &+JVS(4631)*UV(291) END SUBROUTINE JacTR_SP_Vec diff --git a/KPP/fullchem/gckpp_JacobianSP.F90 b/KPP/fullchem/gckpp_JacobianSP.F90 index 5e822129a..07d0747a8 100644 --- a/KPP/fullchem/gckpp_JacobianSP.F90 +++ b/KPP/fullchem/gckpp_JacobianSP.F90 @@ -2,7 +2,7 @@ ! ! Sparse Jacobian Data Structures File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) @@ -34,855 +34,865 @@ MODULE gckpp_JacobianSP INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_0 = (/ & 1, 2, 3, 4, 4, 4, 4, 4, 5, 5, 6, 6, & ! index 1 - 12 - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, & ! index 13 - 24 - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, & ! index 25 - 36 - 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8, & ! index 37 - 48 - 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 11, & ! index 49 - 60 - 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, & ! index 61 - 72 - 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 17, 17, & ! index 73 - 84 - 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 21, & ! index 85 - 96 - 21, 22, 22, 23, 23, 23, 23, 23, 23, 24, 24, 24, & ! index 97 - 108 - 25, 25, 25, 26, 26, 26, 26, 26, 27, 27, 27, 28, & ! index 109 - 120 - 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 30, & ! index 121 - 132 - 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, & ! index 133 - 144 - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, & ! index 145 - 156 - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, & ! index 157 - 168 - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, & ! index 169 - 180 - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, & ! index 181 - 192 - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, & ! index 193 - 204 - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, & ! index 205 - 216 - 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, & ! index 217 - 228 - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, & ! index 229 - 240 - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, & ! index 241 - 252 - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, & ! index 253 - 264 - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, & ! index 265 - 276 - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, & ! index 277 - 288 - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, & ! index 289 - 300 - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, & ! index 301 - 312 - 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, & ! index 313 - 324 - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, & ! index 325 - 336 - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, & ! index 337 - 348 - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33 /) ! index up to 360 + 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, & ! index 13 - 24 + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, & ! index 25 - 36 + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, & ! index 37 - 48 + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, & ! index 49 - 60 + 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 9, 9, & ! index 61 - 72 + 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, & ! index 73 - 84 + 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, & ! index 85 - 96 + 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, & ! index 97 - 108 + 17, 18, 18, 18, 18, 18, 19, 19, 20, 20, 20, 21, & ! index 109 - 120 + 21, 21, 22, 22, 22, 22, 22, 23, 23, 24, 24, 24, & ! index 121 - 132 + 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, & ! index 133 - 144 + 27, 27, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, & ! index 145 - 156 + 30, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, & ! index 157 - 168 + 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, & ! index 169 - 180 + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, & ! index 181 - 192 + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, & ! index 193 - 204 + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, & ! index 205 - 216 + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, & ! index 217 - 228 + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, & ! index 229 - 240 + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, & ! index 241 - 252 + 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, & ! index 253 - 264 + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, & ! index 265 - 276 + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, & ! index 277 - 288 + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, & ! index 289 - 300 + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, & ! index 301 - 312 + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, & ! index 313 - 324 + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, & ! index 325 - 336 + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, & ! index 337 - 348 + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36 /) ! index up to 360 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_1 = (/ & - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, & ! index 361 - 372 - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, & ! index 373 - 384 - 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, & ! index 385 - 396 - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, & ! index 397 - 408 - 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, & ! index 409 - 420 - 37, 37, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, & ! index 421 - 432 - 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, & ! index 433 - 444 - 47, 47, 47, 48, 48, 49, 49, 49, 50, 50, 50, 51, & ! index 445 - 456 - 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 56, & ! index 457 - 468 - 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59, & ! index 469 - 480 - 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, 64, & ! index 481 - 492 - 64, 64, 64, 65, 65, 65, 65, 66, 66, 66, 66, 67, & ! index 493 - 504 - 67, 67, 67, 68, 68, 68, 69, 69, 69, 69, 69, 69, & ! index 505 - 516 - 70, 70, 70, 71, 71, 71, 72, 72, 72, 73, 73, 73, & ! index 517 - 528 - 74, 74, 74, 75, 75, 75, 76, 76, 77, 77, 78, 78, & ! index 529 - 540 - 78, 79, 79, 79, 80, 80, 80, 81, 81, 81, 82, 82, & ! index 541 - 552 - 82, 83, 83, 83, 83, 84, 84, 84, 84, 85, 85, 85, & ! index 553 - 564 - 85, 86, 86, 86, 86, 87, 87, 87, 87, 88, 88, 88, & ! index 565 - 576 - 88, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, & ! index 577 - 588 - 91, 91, 91, 91, 92, 92, 92, 92, 93, 93, 93, 93, & ! index 589 - 600 - 94, 94, 94, 94, 95, 95, 95, 95, 96, 96, 96, 96, & ! index 601 - 612 - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, & ! index 613 - 624 - 97, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, & ! index 625 - 636 - 99, 99,100,100,100,101,101,101,101,102,102,102, & ! index 637 - 648 - 102,102,102,103,103,103,103,103,103,103,104,104, & ! index 649 - 660 - 104,104,104,104,105,105,105,105,105,105,105,106, & ! index 661 - 672 - 106,106,106,106,107,107,107,107,107,108,108,108, & ! index 673 - 684 - 108,108,109,109,109,109,109,110,110,110,110,111, & ! index 685 - 696 - 111,111,111,112,112,112,112,113,113,113,113,113, & ! index 697 - 708 - 114,114,114,114,114,114,115,115,115,115,115,115 /) ! index up to 720 + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, & ! index 361 - 372 + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, & ! index 373 - 384 + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, & ! index 385 - 396 + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, & ! index 397 - 408 + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, & ! index 409 - 420 + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, & ! index 421 - 432 + 36, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, & ! index 433 - 444 + 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 40, 40, & ! index 445 - 456 + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, & ! index 457 - 468 + 42, 42, 43, 43, 44, 44, 45, 45, 45, 45, 46, 46, & ! index 469 - 480 + 47, 47, 48, 48, 49, 49, 49, 50, 50, 50, 51, 51, & ! index 481 - 492 + 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, & ! index 493 - 504 + 57, 58, 58, 59, 59, 60, 60, 60, 61, 61, 61, 61, & ! index 505 - 516 + 62, 62, 62, 62, 63, 63, 63, 63, 64, 64, 65, 65, & ! index 517 - 528 + 65, 66, 66, 66, 67, 67, 67, 68, 68, 68, 68, 69, & ! index 529 - 540 + 69, 69, 69, 70, 70, 70, 70, 71, 71, 71, 72, 72, & ! index 541 - 552 + 72, 73, 73, 73, 73, 73, 73, 74, 74, 74, 75, 75, & ! index 553 - 564 + 75, 76, 76, 76, 77, 77, 77, 78, 78, 78, 79, 79, & ! index 565 - 576 + 80, 80, 81, 81, 81, 82, 82, 82, 83, 83, 83, 84, & ! index 577 - 588 + 84, 84, 85, 85, 85, 85, 86, 86, 86, 86, 87, 87, & ! index 589 - 600 + 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 90, 90, & ! index 601 - 612 + 90, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 92, & ! index 613 - 624 + 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 95, & ! index 625 - 636 + 96, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, & ! index 637 - 648 + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, & ! index 649 - 660 + 99, 99, 99, 99, 99, 99,100,100,100,101,101,101, & ! index 661 - 672 + 101,101,102,102,102,102,103,103,103,103,103,103, & ! index 673 - 684 + 103,104,104,104,104,104,104,105,105,105,105,106, & ! index 685 - 696 + 106,106,106,107,107,107,107,107,107,107,108,108, & ! index 697 - 708 + 108,108,108,108,109,109,109,109,109,110,110,110 /) ! index up to 720 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_2 = (/ & - 116,116,116,116,116,117,117,117,117,118,118,118, & ! index 721 - 732 - 118,118,119,119,119,119,119,119,119,119,119,119, & ! index 733 - 744 - 119,119,120,120,120,120,120,121,121,121,121,122, & ! index 745 - 756 - 122,122,122,123,123,123,123,123,123,123,123,123, & ! index 757 - 768 - 124,124,124,124,124,125,125,125,125,125,125,125, & ! index 769 - 780 - 125,125,126,126,126,126,126,127,127,127,127,127, & ! index 781 - 792 - 127,128,128,128,128,128,128,129,129,129,129,129, & ! index 793 - 804 - 129,130,130,130,130,130,130,131,131,131,131,131, & ! index 805 - 816 - 131,132,132,132,132,132,132,132,132,132,132,132, & ! index 817 - 828 - 132,132,132,133,133,133,133,134,134,134,134,134, & ! index 829 - 840 - 135,135,135,135,135,136,136,136,136,137,137,137, & ! index 841 - 852 - 137,138,138,138,138,138,138,139,139,139,139,139, & ! index 853 - 864 - 139,140,140,140,140,140,140,140,140,141,141,141, & ! index 865 - 876 - 141,141,141,142,142,142,142,142,142,143,143,143, & ! index 877 - 888 - 143,143,144,144,144,144,144,145,145,145,145,145, & ! index 889 - 900 - 145,145,146,146,146,146,146,146,147,147,147,147, & ! index 901 - 912 - 148,148,148,148,148,148,149,149,149,149,149,150, & ! index 913 - 924 - 150,150,150,151,151,151,151,152,152,152,152,152, & ! index 925 - 936 - 152,152,152,152,153,153,153,153,154,154,154,154, & ! index 937 - 948 - 154,154,154,154,154,154,154,154,154,155,155,155, & ! index 949 - 960 - 155,155,155,155,155,155,155,156,156,156,156,156, & ! index 961 - 972 - 156,156,156,156,156,156,156,156,156,157,157,157, & ! index 973 - 984 - 157,157,158,158,158,158,159,159,159,159,159,159, & ! index 985 - 996 - 159,160,160,160,160,160,160,161,161,161,161,162, & ! index 997 - 1008 - 162,162,162,162,162,163,163,163,163,163,164,164, & ! index 1009 - 1020 - 164,164,164,165,165,165,165,166,166,166,166,166, & ! index 1021 - 1032 - 166,166,166,166,166,166,166,167,167,167,167,168, & ! index 1033 - 1044 - 168,168,168,168,168,168,168,168,168,168,169,169, & ! index 1045 - 1056 - 169,169,169,169,169,170,170,170,170,170,170,170, & ! index 1057 - 1068 - 170,170,170,170,170,170,170,170,170,170,170,170 /) ! index up to 1080 + 110,110,111,111,111,111,111,112,112,112,112,113, & ! index 721 - 732 + 113,113,113,114,114,114,114,115,115,115,115,115, & ! index 733 - 744 + 116,116,116,116,116,116,117,117,117,117,117,117, & ! index 745 - 756 + 118,118,118,118,119,119,119,119,119,120,120,120, & ! index 757 - 768 + 120,120,121,121,121,121,121,122,122,122,122,122, & ! index 769 - 780 + 122,122,122,122,122,122,122,123,123,123,123,123, & ! index 781 - 792 + 124,124,124,124,125,125,125,125,126,126,126,126, & ! index 793 - 804 + 126,126,126,126,126,127,127,127,127,127,128,128, & ! index 805 - 816 + 128,128,128,128,128,128,128,129,129,129,129,129, & ! index 817 - 828 + 130,130,130,130,130,130,131,131,131,131,131,131, & ! index 829 - 840 + 132,132,132,132,132,132,133,133,133,133,133,133, & ! index 841 - 852 + 134,134,134,134,134,134,135,135,135,135,135,135, & ! index 853 - 864 + 135,135,135,135,135,135,135,135,136,136,136,136, & ! index 865 - 876 + 137,137,137,137,137,138,138,138,138,138,139,139, & ! index 877 - 888 + 139,139,140,140,140,140,141,141,141,141,141,141, & ! index 889 - 900 + 142,142,142,142,142,142,143,143,143,143,143,143, & ! index 901 - 912 + 143,143,144,144,144,144,144,144,145,145,145,145, & ! index 913 - 924 + 145,145,146,146,146,146,146,147,147,147,147,147, & ! index 925 - 936 + 148,148,148,148,148,148,148,149,149,149,149,150, & ! index 937 - 948 + 150,150,150,150,150,151,151,151,151,152,152,152, & ! index 949 - 960 + 152,152,152,153,153,153,153,153,154,154,154,154, & ! index 961 - 972 + 155,155,155,155,156,156,156,156,156,156,156,156, & ! index 973 - 984 + 156,157,157,157,157,158,158,158,158,158,158,158, & ! index 985 - 996 + 158,158,158,158,158,158,159,159,159,159,159,159, & ! index 997 - 1008 + 159,159,159,159,160,160,160,160,160,160,160,160, & ! index 1009 - 1020 + 160,160,160,160,160,160,161,161,161,161,161,162, & ! index 1021 - 1032 + 162,162,162,163,163,163,163,163,163,164,164,164, & ! index 1033 - 1044 + 164,164,164,164,165,165,165,165,166,166,166,166, & ! index 1045 - 1056 + 166,167,167,167,167,167,167,168,168,168,168,168, & ! index 1057 - 1068 + 169,169,169,169,169,169,169,169,169,169,169,169 /) ! index up to 1080 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_3 = (/ & - 170,170,170,170,170,170,171,171,171,171,171,171, & ! index 1081 - 1092 - 171,171,171,171,171,171,172,172,172,172,172,172, & ! index 1093 - 1104 - 173,173,173,173,173,173,173,173,173,173,173,174, & ! index 1105 - 1116 - 174,174,174,174,174,174,174,174,174,175,175,175, & ! index 1117 - 1128 - 175,175,175,175,175,175,176,176,176,176,176,176, & ! index 1129 - 1140 - 176,176,176,176,177,177,177,177,177,177,178,178, & ! index 1141 - 1152 - 178,178,178,178,178,178,178,178,178,178,178,178, & ! index 1153 - 1164 - 179,179,179,179,179,179,179,180,180,180,180,180, & ! index 1165 - 1176 - 180,180,181,181,181,181,181,181,181,181,181,181, & ! index 1177 - 1188 - 181,181,181,181,181,181,181,182,182,182,182,182, & ! index 1189 - 1200 - 182,183,183,183,183,183,183,183,183,184,184,184, & ! index 1201 - 1212 - 184,184,184,185,185,185,185,185,185,186,186,186, & ! index 1213 - 1224 - 186,186,186,186,187,187,187,187,187,187,187,187, & ! index 1225 - 1236 - 187,187,187,187,187,188,188,188,188,188,188,188, & ! index 1237 - 1248 - 188,188,188,188,188,188,188,188,188,188,188,188, & ! index 1249 - 1260 - 188,188,189,189,189,189,189,189,189,189,189,189, & ! index 1261 - 1272 - 189,190,190,190,190,190,190,190,190,190,190,190, & ! index 1273 - 1284 - 190,191,191,191,191,191,191,191,191,192,192,192, & ! index 1285 - 1296 - 192,192,192,192,192,192,192,192,192,192,192,193, & ! index 1297 - 1308 - 193,193,193,193,193,193,193,193,193,193,193,193, & ! index 1309 - 1320 - 193,193,193,194,194,194,194,194,194,194,194,194, & ! index 1321 - 1332 - 194,194,194,194,194,194,194,194,194,194,194,194, & ! index 1333 - 1344 - 194,195,195,195,195,195,195,195,195,195,195,195, & ! index 1345 - 1356 - 195,195,195,195,196,196,196,196,196,196,196,196, & ! index 1357 - 1368 - 196,196,196,196,197,197,197,197,197,197,197,197, & ! index 1369 - 1380 - 197,198,198,198,198,198,198,198,199,199,199,199, & ! index 1381 - 1392 - 199,199,199,200,200,200,200,200,200,200,200,200, & ! index 1393 - 1404 - 200,200,201,201,201,201,201,201,201,201,201,201, & ! index 1405 - 1416 - 201,202,202,202,202,202,202,202,202,202,202,202, & ! index 1417 - 1428 - 202,202,202,202,203,203,203,203,203,203,203,203 /) ! index up to 1440 + 170,170,170,170,171,171,171,171,172,172,172,172, & ! index 1081 - 1092 + 172,172,172,172,172,172,172,173,173,173,173,173, & ! index 1093 - 1104 + 173,173,174,174,174,174,174,174,174,174,174,174, & ! index 1105 - 1116 + 174,174,174,174,174,174,174,174,174,174,174,174, & ! index 1117 - 1128 + 174,174,174,175,175,175,175,175,175,175,175,175, & ! index 1129 - 1140 + 175,175,175,176,176,176,176,176,176,177,177,177, & ! index 1141 - 1152 + 177,177,177,177,177,177,177,177,177,178,178,178, & ! index 1153 - 1164 + 178,178,178,178,178,178,178,179,179,179,179,179, & ! index 1165 - 1176 + 179,179,179,179,180,180,180,180,180,180,180,180, & ! index 1177 - 1188 + 180,180,181,181,181,181,181,181,182,182,182,182, & ! index 1189 - 1200 + 182,182,182,183,183,183,183,183,183,183,184,184, & ! index 1201 - 1212 + 184,184,184,184,184,184,184,184,184,184,184,184, & ! index 1213 - 1224 + 185,185,185,185,185,185,185,185,185,185,185,185, & ! index 1225 - 1236 + 185,185,185,185,185,186,186,186,186,186,186,187, & ! index 1237 - 1248 + 187,187,187,187,187,187,187,188,188,188,188,188, & ! index 1249 - 1260 + 188,189,189,189,189,189,189,190,190,190,190,190, & ! index 1261 - 1272 + 190,190,191,191,191,191,191,191,191,191,191,191, & ! index 1273 - 1284 + 191,191,191,192,192,192,192,192,192,192,192,192, & ! index 1285 - 1296 + 192,192,193,193,193,193,193,193,193,193,193,193, & ! index 1297 - 1308 + 193,193,193,193,193,193,193,193,193,193,193,194, & ! index 1309 - 1320 + 194,194,194,194,194,194,194,194,194,194,194,195, & ! index 1321 - 1332 + 195,195,195,195,195,195,195,196,196,196,196,196, & ! index 1333 - 1344 + 196,196,196,196,196,196,196,196,196,196,196,197, & ! index 1345 - 1356 + 197,197,197,197,197,197,197,197,197,197,197,197, & ! index 1357 - 1368 + 197,198,198,198,198,198,198,198,198,198,198,198, & ! index 1369 - 1380 + 198,198,198,198,198,198,198,198,198,198,198,199, & ! index 1381 - 1392 + 199,199,199,199,199,199,199,199,199,199,199,200, & ! index 1393 - 1404 + 200,200,200,200,200,200,200,200,200,200,200,200, & ! index 1405 - 1416 + 200,200,201,201,201,201,201,201,201,201,201,202, & ! index 1417 - 1428 + 202,202,202,202,202,202,203,203,203,203,203,203 /) ! index up to 1440 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_4 = (/ & - 203,203,204,204,204,204,204,204,204,204,204,204, & ! index 1441 - 1452 - 205,205,205,205,205,205,205,205,205,205,205,205, & ! index 1453 - 1464 - 205,205,205,205,205,206,206,206,206,206,206,206, & ! index 1465 - 1476 - 206,206,206,206,206,206,206,207,207,207,207,207, & ! index 1477 - 1488 - 207,207,207,207,207,207,207,207,207,207,207,207, & ! index 1489 - 1500 - 207,207,207,207,207,207,207,207,207,207,207,207, & ! index 1501 - 1512 - 207,207,207,207,207,207,208,208,208,208,208,208, & ! index 1513 - 1524 - 208,208,208,208,208,208,208,208,208,208,208,208, & ! index 1525 - 1536 - 208,208,209,209,209,209,209,209,209,209,209,209, & ! index 1537 - 1548 - 209,209,209,209,209,209,209,209,209,210,210,210, & ! index 1549 - 1560 - 210,210,210,211,211,211,211,211,211,211,211,211, & ! index 1561 - 1572 - 211,211,211,212,212,212,212,212,212,212,212,212, & ! index 1573 - 1584 - 212,212,212,213,213,213,213,213,213,213,213,213, & ! index 1585 - 1596 - 213,214,214,214,214,214,214,214,214,214,214,214, & ! index 1597 - 1608 - 214,214,214,214,214,214,214,214,214,214,214,214, & ! index 1609 - 1620 - 214,214,214,214,214,215,215,215,215,215,215,215, & ! index 1621 - 1632 - 215,215,215,215,215,215,215,215,215,215,215,215, & ! index 1633 - 1644 - 215,215,215,215,215,215,215,215,215,216,216,216, & ! index 1645 - 1656 - 216,216,216,216,217,217,217,217,217,217,217,217, & ! index 1657 - 1668 - 218,218,218,218,218,218,218,218,218,218,218,218, & ! index 1669 - 1680 - 218,218,218,218,218,218,218,218,218,218,218,218, & ! index 1681 - 1692 - 218,218,218,218,218,218,218,218,218,218,218,218, & ! index 1693 - 1704 - 218,218,218,218,218,218,219,219,219,219,219,219, & ! index 1705 - 1716 - 219,219,219,219,219,219,219,219,219,219,220,220, & ! index 1717 - 1728 - 220,220,220,221,221,221,221,221,221,221,221,221, & ! index 1729 - 1740 - 222,222,222,222,222,222,222,222,222,222,222,222, & ! index 1741 - 1752 - 222,222,222,222,222,222,222,222,223,223,223,223, & ! index 1753 - 1764 - 223,223,223,223,223,223,223,223,223,223,224,224, & ! index 1765 - 1776 - 224,224,224,224,224,224,224,224,224,224,224,224, & ! index 1777 - 1788 - 224,224,224,224,224,224,225,225,225,225,225,225 /) ! index up to 1800 + 203,204,204,204,204,204,204,204,204,204,204,204, & ! index 1441 - 1452 + 205,205,205,205,205,205,205,205,205,205,205,206, & ! index 1453 - 1464 + 206,206,206,206,206,206,206,206,206,206,206,206, & ! index 1465 - 1476 + 206,206,207,207,207,207,207,207,207,207,207,207, & ! index 1477 - 1488 + 208,208,208,208,208,208,208,208,208,208,208,208, & ! index 1489 - 1500 + 208,208,208,208,208,209,209,209,209,209,209,209, & ! index 1501 - 1512 + 209,209,209,210,210,210,210,210,210,210,210,210, & ! index 1513 - 1524 + 210,210,210,210,210,211,211,211,211,211,211,211, & ! index 1525 - 1536 + 211,211,211,211,211,211,211,211,211,211,211,211, & ! index 1537 - 1548 + 211,211,211,211,211,211,211,211,211,211,211,211, & ! index 1549 - 1560 + 211,211,211,211,212,212,212,212,212,212,212,212, & ! index 1561 - 1572 + 212,212,212,212,212,212,212,212,212,212,212,212, & ! index 1573 - 1584 + 213,213,213,213,213,213,213,213,213,213,213,213, & ! index 1585 - 1596 + 213,213,213,213,213,213,213,214,214,214,214,214, & ! index 1597 - 1608 + 214,215,215,215,215,215,215,215,215,215,215,215, & ! index 1609 - 1620 + 215,216,216,216,216,216,216,216,216,216,216,216, & ! index 1621 - 1632 + 216,217,217,217,217,217,217,217,217,217,217,218, & ! index 1633 - 1644 + 218,218,218,218,218,218,218,218,218,218,218,218, & ! index 1645 - 1656 + 218,218,218,218,218,218,218,218,218,218,218,218, & ! index 1657 - 1668 + 218,218,218,219,219,219,219,219,219,219,219,219, & ! index 1669 - 1680 + 219,219,219,219,219,219,219,219,219,219,219,219, & ! index 1681 - 1692 + 219,219,219,219,219,219,219,220,220,220,220,220, & ! index 1693 - 1704 + 220,220,221,221,221,221,221,221,221,221,221,221, & ! index 1705 - 1716 + 221,221,221,221,221,221,222,222,222,222,222,222, & ! index 1717 - 1728 + 222,222,223,223,223,223,223,223,223,223,223,223, & ! index 1729 - 1740 + 223,223,223,223,223,223,223,223,223,223,223,223, & ! index 1741 - 1752 + 223,223,223,223,223,223,223,223,223,223,223,223, & ! index 1753 - 1764 + 223,223,223,223,223,223,223,223,224,224,224,224, & ! index 1765 - 1776 + 224,225,225,225,225,225,225,225,225,225,226,226, & ! index 1777 - 1788 + 226,226,226,226,226,226,226,226,226,226,226,226 /) ! index up to 1800 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_5 = (/ & - 225,225,225,225,225,225,225,225,225,225,225,225, & ! index 1801 - 1812 - 225,225,226,226,226,226,226,226,226,226,226,226, & ! index 1813 - 1824 - 226,226,226,226,226,226,226,226,226,226,226,226, & ! index 1825 - 1836 - 226,226,226,226,226,226,226,226,226,226,226,227, & ! index 1837 - 1848 - 227,227,227,227,227,227,227,227,227,227,227,227, & ! index 1849 - 1860 - 227,227,227,227,227,227,227,227,227,227,227,227, & ! index 1861 - 1872 - 227,227,227,227,227,227,227,227,227,228,228,228, & ! index 1873 - 1884 - 228,228,228,228,228,228,228,228,228,228,228,228, & ! index 1885 - 1896 - 228,228,228,228,228,228,228,228,228,228,228,228, & ! index 1897 - 1908 - 228,228,228,228,228,228,228,228,228,228,228,228, & ! index 1909 - 1920 - 228,228,228,228,228,228,228,228,228,228,228,228, & ! index 1921 - 1932 - 228,228,228,228,228,228,228,228,228,228,229,229, & ! index 1933 - 1944 - 229,229,229,229,229,229,229,229,229,229,229,229, & ! index 1945 - 1956 - 230,230,230,230,230,230,230,230,230,230,230,230, & ! index 1957 - 1968 - 230,230,230,231,231,231,231,231,231,231,231,231, & ! index 1969 - 1980 - 231,231,231,232,232,232,232,232,232,232,232,232, & ! index 1981 - 1992 - 232,232,232,232,232,232,232,232,232,232,232,232, & ! index 1993 - 2004 - 232,232,232,232,232,232,232,232,232,232,232,232, & ! index 2005 - 2016 - 232,232,232,232,232,232,232,232,232,232,232,232, & ! index 2017 - 2028 - 232,233,233,233,233,233,233,233,233,233,233,233, & ! index 2029 - 2040 - 233,233,233,233,233,233,233,233,233,234,234,234, & ! index 2041 - 2052 - 234,234,234,234,234,234,234,235,235,235,235,235, & ! index 2053 - 2064 - 235,235,235,235,235,235,235,235,235,235,235,235, & ! index 2065 - 2076 - 235,235,235,235,236,236,236,236,236,236,236,236, & ! index 2077 - 2088 - 236,236,236,236,236,236,236,236,237,237,237,237, & ! index 2089 - 2100 - 237,237,237,237,237,237,237,237,237,237,237,237, & ! index 2101 - 2112 - 237,237,237,237,237,237,237,237,237,237,237,237, & ! index 2113 - 2124 - 238,238,238,238,238,238,238,238,238,238,238,238, & ! index 2125 - 2136 - 238,238,238,238,238,238,238,238,238,238,238,238, & ! index 2137 - 2148 - 238,238,239,239,239,239,239,239,239,239,239,239 /) ! index up to 2160 + 226,226,226,226,226,226,227,227,227,227,227,227, & ! index 1801 - 1812 + 227,227,227,227,227,227,227,227,228,228,228,228, & ! index 1813 - 1824 + 228,228,228,228,228,228,228,228,228,228,228,228, & ! index 1825 - 1836 + 228,228,228,228,229,229,229,229,229,229,229,229, & ! index 1837 - 1848 + 229,229,229,229,229,229,229,229,229,229,229,229, & ! index 1849 - 1860 + 230,230,230,230,230,230,230,230,230,230,230,230, & ! index 1861 - 1872 + 230,230,230,230,230,230,230,230,230,230,230,230, & ! index 1873 - 1884 + 230,230,230,230,230,230,230,230,230,231,231,231, & ! index 1885 - 1896 + 231,231,231,231,231,231,231,231,231,231,231,231, & ! index 1897 - 1908 + 231,231,231,231,231,231,231,231,231,231,231,231, & ! index 1909 - 1920 + 231,231,231,231,231,231,231,232,232,232,232,232, & ! index 1921 - 1932 + 232,232,232,232,232,232,232,232,232,233,233,233, & ! index 1933 - 1944 + 233,233,233,233,233,233,233,233,233,233,233,233, & ! index 1945 - 1956 + 233,233,233,233,233,233,233,233,233,233,233,233, & ! index 1957 - 1968 + 233,233,233,233,233,233,233,233,233,233,233,233, & ! index 1969 - 1980 + 233,233,233,233,233,233,233,233,233,233,233,233, & ! index 1981 - 1992 + 233,233,233,233,233,233,233,233,233,233,234,234, & ! index 1993 - 2004 + 234,234,234,234,234,234,234,234,234,234,234,234, & ! index 2005 - 2016 + 234,235,235,235,235,235,235,235,235,235,235,235, & ! index 2017 - 2028 + 235,236,236,236,236,236,236,236,236,236,236,236, & ! index 2029 - 2040 + 236,236,236,236,236,236,236,236,236,236,236,236, & ! index 2041 - 2052 + 236,236,236,236,236,236,236,236,236,236,236,236, & ! index 2053 - 2064 + 236,236,236,236,236,236,236,236,236,236,236,237, & ! index 2065 - 2076 + 237,237,237,237,237,237,237,237,237,237,237,237, & ! index 2077 - 2088 + 237,237,237,237,237,237,237,238,238,238,238,238, & ! index 2089 - 2100 + 238,238,238,238,238,239,239,239,239,239,239,239, & ! index 2101 - 2112 + 239,239,239,239,239,239,239,239,239,239,239,239, & ! index 2113 - 2124 + 239,239,240,240,240,240,240,240,240,240,240,240, & ! index 2125 - 2136 + 240,240,240,240,240,240,241,241,241,241,241,241, & ! index 2137 - 2148 + 241,241,241,241,241,241,241,241,241,241,241,241 /) ! index up to 2160 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_6 = (/ & - 239,239,239,239,239,239,239,239,239,239,239,239, & ! index 2161 - 2172 - 240,240,240,240,240,240,240,240,240,240,240,240, & ! index 2173 - 2184 - 241,241,241,241,241,241,241,241,241,241,241,241, & ! index 2185 - 2196 - 242,242,242,242,242,242,242,242,242,242,242,242, & ! index 2197 - 2208 - 242,242,242,243,243,243,243,243,243,243,243,243, & ! index 2209 - 2220 - 243,243,243,243,243,243,244,244,244,244,244,244, & ! index 2221 - 2232 - 244,244,244,244,244,244,244,244,244,244,244,244, & ! index 2233 - 2244 - 244,244,244,244,244,244,245,245,245,245,245,245, & ! index 2245 - 2256 - 245,245,245,245,245,245,245,245,245,245,245,245, & ! index 2257 - 2268 - 245,245,245,246,246,246,246,246,246,246,246,246, & ! index 2269 - 2280 - 246,246,246,246,246,246,246,246,246,246,246,246, & ! index 2281 - 2292 - 246,246,246,246,246,246,246,246,246,246,246,246, & ! index 2293 - 2304 - 246,246,246,246,246,246,246,246,246,246,246,246, & ! index 2305 - 2316 - 246,246,246,246,246,246,246,246,246,246,246,246, & ! index 2317 - 2328 - 247,247,247,247,247,247,247,247,247,247,247,247, & ! index 2329 - 2340 - 247,247,247,247,247,247,247,247,247,247,247,247, & ! index 2341 - 2352 - 248,248,248,248,248,248,248,248,248,248,248,248, & ! index 2353 - 2364 - 248,248,248,248,248,248,248,248,248,248,248,248, & ! index 2365 - 2376 - 248,248,248,248,248,249,249,249,249,249,249,249, & ! index 2377 - 2388 - 249,249,249,249,249,249,249,249,250,250,250,250, & ! index 2389 - 2400 - 250,250,250,250,250,250,250,250,250,250,250,250, & ! index 2401 - 2412 - 250,250,250,250,250,250,251,251,251,251,251,251, & ! index 2413 - 2424 - 251,251,251,251,251,251,251,252,252,252,252,252, & ! index 2425 - 2436 - 252,252,252,252,252,252,252,252,252,252,252,252, & ! index 2437 - 2448 - 253,253,253,253,253,253,253,253,253,253,253,253, & ! index 2449 - 2460 - 253,253,253,253,253,253,253,253,253,254,254,254, & ! index 2461 - 2472 - 254,254,254,254,254,254,254,254,254,254,255,255, & ! index 2473 - 2484 - 255,255,255,255,255,255,255,255,255,255,255,255, & ! index 2485 - 2496 - 255,255,255,255,255,255,255,255,255,255,255,255, & ! index 2497 - 2508 - 255,255,255,255,255,255,255,255,255,255,255,256 /) ! index up to 2520 + 241,241,241,241,241,241,241,241,241,241,242,242, & ! index 2161 - 2172 + 242,242,242,242,242,242,242,242,242,242,242,242, & ! index 2173 - 2184 + 242,242,242,242,242,242,242,242,242,242,242,242, & ! index 2185 - 2196 + 243,243,243,243,243,243,243,243,243,243,243,243, & ! index 2197 - 2208 + 243,243,243,243,243,243,243,243,243,243,244,244, & ! index 2209 - 2220 + 244,244,244,244,244,244,244,244,244,244,244,244, & ! index 2221 - 2232 + 245,245,245,245,245,245,245,245,245,245,245,245, & ! index 2233 - 2244 + 245,245,246,246,246,246,246,246,246,246,246,246, & ! index 2245 - 2256 + 246,246,247,247,247,247,247,247,247,247,247,247, & ! index 2257 - 2268 + 247,247,248,248,248,248,248,248,248,248,248,248, & ! index 2269 - 2280 + 248,248,248,248,248,248,248,248,248,248,248,248, & ! index 2281 - 2292 + 248,248,249,249,249,249,249,249,249,249,249,249, & ! index 2293 - 2304 + 249,249,249,249,249,249,249,249,249,249,249,250, & ! index 2305 - 2316 + 250,250,250,250,250,250,250,250,250,250,250,250, & ! index 2317 - 2328 + 250,250,250,250,250,250,250,250,250,250,250,250, & ! index 2329 - 2340 + 250,250,250,250,250,250,250,250,250,250,250,250, & ! index 2341 - 2352 + 250,250,250,250,250,250,250,250,250,250,250,250, & ! index 2353 - 2364 + 250,250,250,250,250,250,250,250,251,251,251,251, & ! index 2365 - 2376 + 251,251,251,251,251,251,251,251,251,251,251,251, & ! index 2377 - 2388 + 251,251,251,251,251,251,251,251,252,252,252,252, & ! index 2389 - 2400 + 252,252,252,252,252,252,252,252,252,252,252,252, & ! index 2401 - 2412 + 252,252,252,252,252,252,252,252,252,252,252,252, & ! index 2413 - 2424 + 252,253,253,253,253,253,253,253,253,253,253,253, & ! index 2425 - 2436 + 253,253,254,254,254,254,254,254,254,254,254,254, & ! index 2437 - 2448 + 254,254,254,254,254,255,255,255,255,255,255,255, & ! index 2449 - 2460 + 255,255,255,255,255,255,255,255,255,255,255,255, & ! index 2461 - 2472 + 255,255,255,256,256,256,256,256,256,256,256,256, & ! index 2473 - 2484 + 256,256,256,256,256,256,256,257,257,257,257,257, & ! index 2485 - 2496 + 257,257,257,257,257,257,257,257,257,258,258,258, & ! index 2497 - 2508 + 258,258,258,258,258,258,258,258,258,258,258,258 /) ! index up to 2520 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_7 = (/ & - 256,256,256,256,256,256,256,256,256,256,256,256, & ! index 2521 - 2532 - 256,256,256,256,256,257,257,257,257,257,257,257, & ! index 2533 - 2544 - 257,257,257,257,257,257,257,257,257,257,257,257, & ! index 2545 - 2556 - 257,257,257,257,257,257,257,257,257,257,257,257, & ! index 2557 - 2568 - 257,257,257,257,257,257,257,257,257,257,257,257, & ! index 2569 - 2580 - 257,257,257,257,257,257,257,257,257,257,257,257, & ! index 2581 - 2592 - 257,257,257,257,257,257,257,257,257,257,257,257, & ! index 2593 - 2604 - 257,257,257,257,257,257,258,258,258,258,258,258, & ! index 2605 - 2616 - 258,258,258,258,258,258,258,258,258,258,258,258, & ! index 2617 - 2628 - 258,258,258,258,258,258,258,258,258,258,258,258, & ! index 2629 - 2640 - 258,258,258,258,258,258,258,258,258,258,258,258, & ! index 2641 - 2652 - 258,258,258,258,258,258,258,258,258,258,258,258, & ! index 2653 - 2664 - 258,258,258,258,258,258,258,258,258,258,258,258, & ! index 2665 - 2676 - 258,258,258,258,258,258,258,258,258,258,258,258, & ! index 2677 - 2688 - 258,258,258,258,258,258,258,258,258,258,258,258, & ! index 2689 - 2700 - 258,258,258,258,258,258,258,258,259,259,259,259, & ! index 2701 - 2712 - 259,259,259,259,259,259,259,259,259,260,260,260, & ! index 2713 - 2724 - 260,260,260,260,260,260,260,260,260,260,260,260, & ! index 2725 - 2736 - 260,260,260,260,260,260,260,260,260,260,260,260, & ! index 2737 - 2748 - 260,260,260,260,260,260,260,260,260,260,260,260, & ! index 2749 - 2760 - 260,260,260,260,260,260,260,260,260,260,260,260, & ! index 2761 - 2772 - 260,260,260,260,260,260,260,260,260,260,260,260, & ! index 2773 - 2784 - 260,260,260,260,260,260,260,260,260,260,260,260, & ! index 2785 - 2796 - 260,260,260,260,260,260,260,260,260,260,260,260, & ! index 2797 - 2808 - 260,260,261,261,261,261,261,261,261,261,261,261, & ! index 2809 - 2820 - 261,261,261,261,261,261,261,261,261,261,261,261, & ! index 2821 - 2832 - 261,261,261,261,261,261,261,261,261,261,261,262, & ! index 2833 - 2844 - 262,262,262,262,262,262,262,262,262,262,262,262, & ! index 2845 - 2856 - 262,262,262,262,262,262,262,262,262,262,262,262, & ! index 2857 - 2868 - 262,262,262,262,262,262,262,262,262,262,262,262 /) ! index up to 2880 + 258,258,258,258,258,258,259,259,259,259,259,259, & ! index 2521 - 2532 + 259,259,259,259,259,259,259,259,259,259,259,259, & ! index 2533 - 2544 + 259,259,259,259,259,259,259,259,259,259,259,259, & ! index 2545 - 2556 + 259,259,259,259,259,259,259,260,260,260,260,260, & ! index 2557 - 2568 + 260,260,260,260,260,260,260,260,260,260,260,260, & ! index 2569 - 2580 + 260,261,261,261,261,261,261,261,261,261,261,261, & ! index 2581 - 2592 + 261,261,261,261,261,261,261,261,261,261,261,261, & ! index 2593 - 2604 + 261,261,261,261,261,261,261,261,261,261,261,261, & ! index 2605 - 2616 + 261,261,261,261,261,261,261,261,261,261,261,261, & ! index 2617 - 2628 + 261,261,261,261,261,261,261,261,261,261,261,261, & ! index 2629 - 2640 + 261,261,261,261,261,261,261,261,261,261,261,261, & ! index 2641 - 2652 + 261,261,262,262,262,262,262,262,262,262,262,262, & ! index 2653 - 2664 + 262,262,262,263,263,263,263,263,263,263,263,263, & ! index 2665 - 2676 + 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2677 - 2688 + 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2689 - 2700 + 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2701 - 2712 + 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2713 - 2724 + 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2725 - 2736 + 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2737 - 2748 + 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2749 - 2760 + 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2761 - 2772 + 264,264,264,264,264,264,264,264,264,264,264,264, & ! index 2773 - 2784 + 264,264,264,264,264,264,264,264,264,264,264,264, & ! index 2785 - 2796 + 264,264,264,264,264,264,264,265,265,265,265,265, & ! index 2797 - 2808 + 265,265,265,265,265,265,265,265,265,265,265,265, & ! index 2809 - 2820 + 265,265,265,265,265,265,265,265,265,265,265,265, & ! index 2821 - 2832 + 265,265,265,265,265,265,265,265,265,265,265,265, & ! index 2833 - 2844 + 265,265,265,265,265,265,265,265,265,265,265,265, & ! index 2845 - 2856 + 265,265,265,265,265,265,265,265,265,265,265,265, & ! index 2857 - 2868 + 265,265,265,265,265,265,265,265,265,265,265,265 /) ! index up to 2880 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_8 = (/ & - 262,262,262,262,262,262,262,262,262,262,262,262, & ! index 2881 - 2892 - 262,262,262,262,262,262,262,262,262,262,262,262, & ! index 2893 - 2904 - 262,262,262,262,262,262,262,262,262,262,262,262, & ! index 2905 - 2916 - 262,262,262,262,262,262,262,262,262,262,262,262, & ! index 2917 - 2928 - 262,262,262,262,262,262,262,262,262,262,262,262, & ! index 2929 - 2940 - 262,262,262,262,262,262,262,263,263,263,263,263, & ! index 2941 - 2952 - 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2953 - 2964 - 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2965 - 2976 - 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2977 - 2988 - 263,263,263,263,263,263,263,263,263,263,263,263, & ! index 2989 - 3000 - 263,263,263,263,263,263,263,263,263,263,264,264, & ! index 3001 - 3012 - 264,264,264,264,264,264,264,264,264,264,264,264, & ! index 3013 - 3024 - 264,264,264,264,264,265,265,265,265,265,265,265, & ! index 3025 - 3036 - 265,265,265,265,265,265,265,265,265,265,265,265, & ! index 3037 - 3048 - 265,265,265,265,265,265,265,265,265,265,266,266, & ! index 3049 - 3060 - 266,266,266,266,266,266,266,266,266,266,266,266, & ! index 3061 - 3072 - 266,266,266,266,266,267,267,267,267,267,267,267, & ! index 3073 - 3084 - 267,267,267,267,267,267,267,267,267,267,267,267, & ! index 3085 - 3096 - 267,267,267,267,267,267,267,267,267,267,267,267, & ! index 3097 - 3108 - 268,268,268,268,268,268,268,268,268,268,268,268, & ! index 3109 - 3120 - 268,268,268,268,268,268,268,268,268,268,268,268, & ! index 3121 - 3132 - 268,268,268,268,268,268,268,268,268,268,268,268, & ! index 3133 - 3144 - 268,268,268,268,268,268,268,268,268,268,268,268, & ! index 3145 - 3156 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3157 - 3168 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3169 - 3180 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3181 - 3192 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3193 - 3204 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3205 - 3216 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3217 - 3228 - 269,269,269,269,269,269,269,269,269,269,269,269 /) ! index up to 3240 + 265,265,265,265,265,265,265,265,265,265,265,265, & ! index 2881 - 2892 + 265,265,266,266,266,266,266,266,266,266,266,266, & ! index 2893 - 2904 + 266,266,266,266,266,266,266,266,266,266,266,266, & ! index 2905 - 2916 + 266,266,266,266,266,266,266,266,266,266,266,266, & ! index 2917 - 2928 + 266,266,266,266,266,266,266,266,266,266,266,266, & ! index 2929 - 2940 + 266,266,266,266,266,266,266,266,266,266,266,266, & ! index 2941 - 2952 + 266,266,266,266,267,267,267,267,267,267,267,267, & ! index 2953 - 2964 + 267,267,267,267,267,267,267,267,267,267,267,267, & ! index 2965 - 2976 + 267,267,267,267,267,267,267,267,267,267,267,267, & ! index 2977 - 2988 + 267,267,267,267,267,267,267,267,267,267,267,267, & ! index 2989 - 3000 + 267,267,267,267,267,267,267,267,267,267,267,267, & ! index 3001 - 3012 + 267,267,267,267,267,267,267,267,267,267,267,267, & ! index 3013 - 3024 + 267,267,267,267,267,267,267,267,267,267,267,267, & ! index 3025 - 3036 + 267,267,267,267,267,267,267,267,267,267,267,267, & ! index 3037 - 3048 + 267,267,267,267,267,267,267,267,267,268,268,268, & ! index 3049 - 3060 + 268,268,268,268,268,268,268,268,268,268,268,268, & ! index 3061 - 3072 + 268,268,268,268,269,269,269,269,269,269,269,269, & ! index 3073 - 3084 + 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3085 - 3096 + 269,269,269,269,269,269,269,269,269,270,270,270, & ! index 3097 - 3108 + 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3109 - 3120 + 270,270,270,270,271,271,271,271,271,271,271,271, & ! index 3121 - 3132 + 271,271,271,271,271,271,271,271,271,271,271,271, & ! index 3133 - 3144 + 271,271,271,271,271,271,271,271,271,271,271,271, & ! index 3145 - 3156 + 272,272,272,272,272,272,272,272,272,272,272,272, & ! index 3157 - 3168 + 272,272,272,272,272,272,272,272,272,272,272,272, & ! index 3169 - 3180 + 272,272,272,272,272,272,272,272,272,272,272,272, & ! index 3181 - 3192 + 272,272,272,272,272,272,272,272,272,272,272,272, & ! index 3193 - 3204 + 272,273,273,273,273,273,273,273,273,273,273,273, & ! index 3205 - 3216 + 273,273,273,273,273,273,273,273,273,273,273,273, & ! index 3217 - 3228 + 273,273,273,273,273,273,273,273,273,273,273,273 /) ! index up to 3240 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_9 = (/ & - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3241 - 3252 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3253 - 3264 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3265 - 3276 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3277 - 3288 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3289 - 3300 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3301 - 3312 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3313 - 3324 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3325 - 3336 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3337 - 3348 - 269,269,269,269,269,269,269,269,269,269,269,269, & ! index 3349 - 3360 - 269,269,269,269,269,269,269,269,269,269,269,270, & ! index 3361 - 3372 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3373 - 3384 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3385 - 3396 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3397 - 3408 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3409 - 3420 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3421 - 3432 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3433 - 3444 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3445 - 3456 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3457 - 3468 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3469 - 3480 - 270,270,270,270,270,270,270,270,270,270,270,270, & ! index 3481 - 3492 - 270,270,270,270,270,270,270,270,270,271,271,271, & ! index 3493 - 3504 - 271,271,271,271,271,271,271,271,271,271,271,271, & ! index 3505 - 3516 - 271,271,271,271,271,271,271,271,271,271,271,271, & ! index 3517 - 3528 - 271,271,271,271,271,271,271,271,271,271,271,271, & ! index 3529 - 3540 - 271,271,271,271,271,271,271,271,271,271,271,271, & ! index 3541 - 3552 - 271,271,271,271,271,271,271,271,271,271,271,271, & ! index 3553 - 3564 - 271,271,271,271,271,271,271,271,271,271,271,271, & ! index 3565 - 3576 - 271,271,272,272,272,272,272,272,272,272,272,272, & ! index 3577 - 3588 - 272,272,272,272,272,272,272,272,272,272,272,272 /) ! index up to 3600 + 273,273,273,273,273,273,273,273,273,273,273,273, & ! index 3241 - 3252 + 273,273,273,273,273,273,273,273,273,274,274,274, & ! index 3253 - 3264 + 274,274,274,274,274,274,274,274,274,274,274,274, & ! index 3265 - 3276 + 274,274,274,274,274,274,274,274,274,274,274,274, & ! index 3277 - 3288 + 274,274,274,274,274,275,275,275,275,275,275,275, & ! index 3289 - 3300 + 275,275,275,275,275,275,275,275,275,275,275,275, & ! index 3301 - 3312 + 275,275,275,275,275,275,275,275,275,275,275,275, & ! index 3313 - 3324 + 275,275,275,275,275,275,275,275,275,275,275,275, & ! index 3325 - 3336 + 275,275,275,275,275,275,275,275,275,275,275,275, & ! index 3337 - 3348 + 275,275,275,275,275,275,275,275,275,275,275,275, & ! index 3349 - 3360 + 275,275,275,275,275,275,275,275,275,275,276,276, & ! index 3361 - 3372 + 276,276,276,276,276,276,276,276,276,276,276,276, & ! index 3373 - 3384 + 276,276,276,276,276,276,276,276,276,276,276,276, & ! index 3385 - 3396 + 276,276,276,276,276,276,276,276,276,276,276,276, & ! index 3397 - 3408 + 276,276,276,276,277,277,277,277,277,277,277,277, & ! index 3409 - 3420 + 277,277,277,277,277,277,277,277,277,277,277,277, & ! index 3421 - 3432 + 277,277,277,277,277,277,278,278,278,278,278,278, & ! index 3433 - 3444 + 278,278,278,278,278,278,278,278,278,278,278,278, & ! index 3445 - 3456 + 278,278,278,278,278,278,278,278,278,278,278,278, & ! index 3457 - 3468 + 278,278,278,278,278,278,278,278,278,278,278,278, & ! index 3469 - 3480 + 278,278,278,278,278,278,278,278,278,278,278,278, & ! index 3481 - 3492 + 278,278,278,278,278,278,278,278,278,278,278,278, & ! index 3493 - 3504 + 278,278,278,278,278,278,278,278,278,278,278,278, & ! index 3505 - 3516 + 278,278,278,278,278,278,278,278,278,278,279,279, & ! index 3517 - 3528 + 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3529 - 3540 + 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3541 - 3552 + 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3553 - 3564 + 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3565 - 3576 + 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3577 - 3588 + 279,279,279,279,279,279,279,279,279,279,279,279 /) ! index up to 3600 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_10 = (/ & - 272,272,272,272,272,272,272,272,272,272,272,272, & ! index 3601 - 3612 - 272,272,272,272,273,273,273,273,273,273,273,273, & ! index 3613 - 3624 - 273,273,273,273,273,273,273,273,273,273,273,273, & ! index 3625 - 3636 - 273,273,273,273,273,273,273,273,273,273,273,273, & ! index 3637 - 3648 - 273,273,273,273,273,273,273,273,273,273,273,273, & ! index 3649 - 3660 - 273,273,273,273,273,273,273,273,273,274,274,274, & ! index 3661 - 3672 - 274,274,274,274,274,274,274,274,274,274,274,274, & ! index 3673 - 3684 - 274,274,274,274,274,274,274,274,274,274,274,274, & ! index 3685 - 3696 - 274,274,274,274,274,275,275,275,275,275,275,275, & ! index 3697 - 3708 - 275,275,275,275,275,275,275,275,275,275,275,275, & ! index 3709 - 3720 - 275,275,275,275,275,275,275,276,276,276,276,276, & ! index 3721 - 3732 - 276,276,276,276,276,276,276,276,276,276,276,276, & ! index 3733 - 3744 - 276,276,276,276,276,276,276,276,276,277,277,277, & ! index 3745 - 3756 - 277,277,277,277,277,277,277,277,277,277,277,277, & ! index 3757 - 3768 - 277,277,277,277,277,277,277,277,277,277,277,277, & ! index 3769 - 3780 - 277,277,277,277,277,277,277,277,277,277,277,277, & ! index 3781 - 3792 - 277,277,277,277,277,277,277,277,277,277,277,277, & ! index 3793 - 3804 - 277,277,277,277,277,277,277,277,278,278,278,278, & ! index 3805 - 3816 - 278,278,278,278,278,278,278,278,278,278,278,278, & ! index 3817 - 3828 - 278,278,278,278,278,278,278,278,278,278,278,278, & ! index 3829 - 3840 - 278,278,278,278,278,278,279,279,279,279,279,279, & ! index 3841 - 3852 - 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3853 - 3864 - 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3865 - 3876 - 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3877 - 3888 - 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3889 - 3900 - 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3901 - 3912 - 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3913 - 3924 - 279,279,279,279,279,279,279,279,279,279,280,280, & ! index 3925 - 3936 - 280,280,280,280,280,280,280,280,280,280,280,280, & ! index 3937 - 3948 - 280,280,280,280,280,280,280,280,280,280,280,280 /) ! index up to 3960 + 279,279,279,279,279,279,279,279,279,279,279,279, & ! index 3601 - 3612 + 279,279,279,279,279,279,279,279,279,279,279,280, & ! index 3613 - 3624 + 280,280,280,280,280,280,280,280,280,280,280,280, & ! index 3625 - 3636 + 280,280,280,280,280,280,280,280,280,280,280,280, & ! index 3637 - 3648 + 280,280,280,280,280,280,280,280,281,281,281,281, & ! index 3649 - 3660 + 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 3661 - 3672 + 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 3673 - 3684 + 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 3685 - 3696 + 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 3697 - 3708 + 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 3709 - 3720 + 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 3721 - 3732 + 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 3733 - 3744 + 281,281,281,281,282,282,282,282,282,282,282,282, & ! index 3745 - 3756 + 282,282,282,282,282,282,282,282,282,282,282,282, & ! index 3757 - 3768 + 282,282,282,282,282,282,282,282,282,282,282,282, & ! index 3769 - 3780 + 282,282,282,282,282,282,282,282,282,282,282,282, & ! index 3781 - 3792 + 282,282,282,282,282,282,282,282,282,282,282,282, & ! index 3793 - 3804 + 282,282,282,283,283,283,283,283,283,283,283,283, & ! index 3805 - 3816 + 283,283,283,283,283,283,283,283,283,283,283,283, & ! index 3817 - 3828 + 283,283,283,283,283,284,284,284,284,284,284,284, & ! index 3829 - 3840 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3841 - 3852 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3853 - 3864 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3865 - 3876 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3877 - 3888 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3889 - 3900 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3901 - 3912 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3913 - 3924 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3925 - 3936 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3937 - 3948 + 284,284,284,284,284,284,284,284,284,284,284,284 /) ! index up to 3960 INTEGER, PARAMETER, DIMENSION(360) :: LU_IROW_11 = (/ & - 280,280,280,280,280,280,280,280,280,280,280,280, & ! index 3961 - 3972 - 280,280,280,280,280,280,280,280,280,280,280,280, & ! index 3973 - 3984 - 280,280,280,280,280,280,280,280,280,280,280,280, & ! index 3985 - 3996 - 280,280,280,280,280,280,280,280,280,280,280,280, & ! index 3997 - 4008 - 280,280,280,280,280,280,280,280,280,280,280,280, & ! index 4009 - 4020 - 280,280,280,280,280,280,280,280,280,280,280,280, & ! index 4021 - 4032 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4033 - 4044 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4045 - 4056 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4057 - 4068 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4069 - 4080 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4081 - 4092 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4093 - 4104 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4105 - 4116 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4117 - 4128 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4129 - 4140 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4141 - 4152 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4153 - 4164 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4165 - 4176 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4177 - 4188 - 281,281,281,281,281,281,281,281,281,281,281,281, & ! index 4189 - 4200 - 281,281,281,282,282,282,282,282,282,282,282,282, & ! index 4201 - 4212 - 282,282,282,282,282,282,282,282,282,282,282,282, & ! index 4213 - 4224 - 282,282,282,282,282,282,282,282,282,282,282,282, & ! index 4225 - 4236 - 282,282,282,282,282,282,282,282,282,282,282,282, & ! index 4237 - 4248 - 282,282,282,282,282,282,282,282,282,282,283,283, & ! index 4249 - 4260 - 283,283,283,283,283,283,283,283,283,283,283,283, & ! index 4261 - 4272 - 283,283,283,283,283,283,283,283,283,283,283,283, & ! index 4273 - 4284 - 283,283,283,283,283,283,283,283,284,284,284,284, & ! index 4285 - 4296 - 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 4297 - 4308 - 284,284,284,284,284,284,284,284,284,284,284,284 /) ! index up to 4320 - INTEGER, PARAMETER, DIMENSION(261) :: LU_IROW_12 = (/ & - 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 4321 - 4332 - 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 4333 - 4344 - 284,284,284,284,284,284,284,284,285,285,285,285, & ! index 4345 - 4356 - 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4357 - 4368 - 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4369 - 4380 - 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4381 - 4392 - 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4393 - 4404 - 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4405 - 4416 - 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4417 - 4428 - 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4429 - 4440 - 285,285,285,285,285,285,285,286,286,286,286,286, & ! index 4441 - 4452 - 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4453 - 4464 - 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4465 - 4476 - 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4477 - 4488 - 286,287,287,287,287,287,287,287,287,287,287,287, & ! index 4489 - 4500 - 287,287,287,287,287,287,287,287,287,287,287,287, & ! index 4501 - 4512 - 287,287,287,287,287,287,287,287,287,287,287,287, & ! index 4513 - 4524 - 287,287,287,287,287,287,287,287,287,287,287,287, & ! index 4525 - 4536 - 287,287,287,287,287,287,287,287,287,287,287,287, & ! index 4537 - 4548 - 287,287,287,287,287,287,287,287,287,287,287,287, & ! index 4549 - 4560 - 287,287,287,287,287,287,287,287,287,287,287,287, & ! index 4561 - 4572 - 287,287,287,287,287,287,287,287,287 /) ! index up to 4581 - INTEGER, PARAMETER, DIMENSION(4581) :: LU_IROW = (/& + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3961 - 3972 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3973 - 3984 + 284,284,284,284,284,284,284,284,284,284,284,284, & ! index 3985 - 3996 + 284,284,284,284,284,284,284,284,285,285,285,285, & ! index 3997 - 4008 + 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4009 - 4020 + 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4021 - 4032 + 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4033 - 4044 + 285,285,285,285,285,285,285,285,285,285,285,285, & ! index 4045 - 4056 + 285,285,286,286,286,286,286,286,286,286,286,286, & ! index 4057 - 4068 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4069 - 4080 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4081 - 4092 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4093 - 4104 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4105 - 4116 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4117 - 4128 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4129 - 4140 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4141 - 4152 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4153 - 4164 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4165 - 4176 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4177 - 4188 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4189 - 4200 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4201 - 4212 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4213 - 4224 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4225 - 4236 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4237 - 4248 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4249 - 4260 + 286,286,286,286,286,286,286,286,286,286,286,286, & ! index 4261 - 4272 + 286,286,287,287,287,287,287,287,287,287,287,287, & ! index 4273 - 4284 + 287,287,287,287,287,287,287,287,287,287,287,287, & ! index 4285 - 4296 + 287,287,287,287,287,287,287,287,287,287,287,288, & ! index 4297 - 4308 + 288,288,288,288,288,288,288,288,288,288,288,288 /) ! index up to 4320 + INTEGER, PARAMETER, DIMENSION(311) :: LU_IROW_12 = (/ & + 288,288,288,288,288,288,288,288,288,288,288,288, & ! index 4321 - 4332 + 288,288,288,288,288,288,288,288,288,288,288,288, & ! index 4333 - 4344 + 288,288,288,288,288,288,288,288,288,288,288,288, & ! index 4345 - 4356 + 288,288,288,288,288,288,288,288,288,288,288,288, & ! index 4357 - 4368 + 289,289,289,289,289,289,289,289,289,289,289,289, & ! index 4369 - 4380 + 289,289,289,289,289,289,289,289,289,289,289,289, & ! index 4381 - 4392 + 289,289,289,289,289,289,289,289,289,289,289,289, & ! index 4393 - 4404 + 289,289,289,290,290,290,290,290,290,290,290,290, & ! index 4405 - 4416 + 290,290,290,290,290,290,290,290,290,290,290,290, & ! index 4417 - 4428 + 290,290,290,290,290,290,290,290,290,290,290,290, & ! index 4429 - 4440 + 290,290,290,290,290,290,290,290,290,290,290,290, & ! index 4441 - 4452 + 290,290,290,290,290,290,290,290,290,290,290,290, & ! index 4453 - 4464 + 290,290,290,290,290,290,290,290,290,290,290,290, & ! index 4465 - 4476 + 290,290,290,290,290,290,290,290,290,290,290,290, & ! index 4477 - 4488 + 290,290,290,290,290,290,290,290,290,290,290,290, & ! index 4489 - 4500 + 290,290,291,291,291,291,291,291,291,291,291,291, & ! index 4501 - 4512 + 291,291,291,291,291,291,291,291,291,291,291,291, & ! index 4513 - 4524 + 291,291,291,291,291,291,291,291,291,291,291,291, & ! index 4525 - 4536 + 291,291,291,291,291,291,291,291,291,291,291,291, & ! index 4537 - 4548 + 291,291,291,291,291,291,291,291,291,291,291,291, & ! index 4549 - 4560 + 291,291,291,291,291,291,291,291,291,291,291,291, & ! index 4561 - 4572 + 291,291,291,291,291,291,291,291,291,291,291,291, & ! index 4573 - 4584 + 291,291,291,291,291,291,291,291,291,291,291,291, & ! index 4585 - 4596 + 291,291,291,291,291,291,291,291,291,291,291,291, & ! index 4597 - 4608 + 291,291,291,291,291,291,291,291,291,291,291,291, & ! index 4609 - 4620 + 291,291,291,291,291,291,291,291,291,291,291 /) ! index up to 4631 + INTEGER, PARAMETER, DIMENSION(4631) :: LU_IROW = (/& LU_IROW_0, LU_IROW_1, LU_IROW_2, LU_IROW_3, LU_IROW_4, & LU_IROW_5, LU_IROW_6, LU_IROW_7, LU_IROW_8, LU_IROW_9, & LU_IROW_10, LU_IROW_11, LU_IROW_12 /) INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_0 = (/ & - 1, 2, 3, 4, 38, 40, 47, 65, 5,206, 6, 62, & ! index 1 - 12 - 67, 95,104,116,120,133,146,159,160,171,176,189, & ! index 13 - 24 - 203,205,206,207,215,220,227,232,245,246,257,258, & ! index 25 - 36 - 263,269,277,280,281,285,287, 7, 41, 96, 8, 38, & ! index 37 - 48 - 40, 47, 65, 9, 38, 40, 47, 65, 10, 12,281, 11, & ! index 49 - 60 - 12,280, 12, 60,269,280,281, 13,220,269, 14,220, & ! index 61 - 72 - 287, 15, 17,281, 16, 17,280, 17, 18,269,280,281, & ! index 73 - 84 - 18,269, 19, 21,281, 20, 21,280, 21, 76,269,280, & ! index 85 - 96 - 281, 22, 23, 23,153,158,161,167,269, 24, 26,281, & ! index 97 - 108 - 25, 26,280, 26, 77,269,280,281, 27, 82,269, 28, & ! index 109 - 120 - 135,277,286, 29,104,218,228, 30, 84,114,127,128, & ! index 121 - 132 - 170, 31, 41, 57, 58, 59, 61, 63, 64, 71, 86, 87, & ! index 133 - 144 - 88, 89, 95, 96,101,103,116,120,125,131,140,141, & ! index 145 - 156 - 142,143,146,148,149,162,163,164,173,175,176,178, & ! index 157 - 168 - 179,180,183,185,187,188,190,191,192,197,200,201, & ! index 169 - 180 - 203,204,206,211,212,213,217,221,224,225,229,230, & ! index 181 - 192 - 231,233,234,235,237,238,239,240,241,242,243,245, & ! index 193 - 204 - 248,249,250,251,252,253,257,259,260,263,269,270, & ! index 205 - 216 - 280,281,285, 32, 38, 40, 47, 57, 62, 72, 75, 81, & ! index 217 - 228 - 82, 90, 97, 99,107,109,112,117,131,135,136,137, & ! index 229 - 240 - 138,144,145,147,150,151,155,156,157,165,169,171, & ! index 241 - 252 - 172,173,174,175,176,177,178,186,187,195,196,198, & ! index 253 - 264 - 199,205,208,209,210,211,212,216,218,220,221,222, & ! index 265 - 276 - 223,228,230,231,234,237,238,239,240,241,244,245, & ! index 277 - 288 - 247,254,255,256,259,260,261,262,263,264,266,267, & ! index 289 - 300 - 268,269,270,271,272,273,274,275,276,277,278,279, & ! index 301 - 312 - 281,283,284,286,287, 33, 54, 60, 62, 68, 73, 76, & ! index 313 - 324 - 77, 99,100,106,122,124,126,130,133,145,146,149, & ! index 325 - 336 - 150,151,152,153,155,158,160,161,165,166,167,168, & ! index 337 - 348 - 170,171,181,182,184,189,190,195,201,202,203,205 /) ! index up to 360 + 1, 2, 3, 4, 42, 44, 49, 69, 5,210, 6, 41, & ! index 1 - 12 + 286, 7, 66, 67, 70, 88, 97,104,121,123,136,150, & ! index 13 - 24 + 163,164,175,180,184,192,195,201,207,208,209,210, & ! index 25 - 36 + 211,215,217,219,224,231,234,236,237,238,239,246, & ! index 37 - 48 + 247,249,250,252,253,254,255,256,257,258,261,266, & ! index 49 - 60 + 267,279,281,282,284,286,290, 8, 45, 98, 9, 42, & ! index 61 - 72 + 44, 49, 69,203,268,270, 10, 42, 44, 49, 69,203, & ! index 73 - 84 + 268,270, 11, 13,284, 12, 13,279, 13, 64,279,284, & ! index 85 - 96 + 286, 14,224,286, 15,224,281, 16, 18,284, 17, 18, & ! index 97 - 108 + 279, 18, 19,279,284,286, 19,286, 20, 22,284, 21, & ! index 109 - 120 + 22,279, 22, 79,279,284,286, 23, 24, 24,157,162, & ! index 121 - 132 + 165,171,286, 25, 27,284, 26, 27,279, 27, 80,279, & ! index 133 - 144 + 284,286, 28, 90,286, 29,138,276,282, 30,104,223, & ! index 145 - 156 + 233, 31,105,116,130,131,174, 32,195,234,276,286, & ! index 157 - 168 + 33, 86,212,276,282,286, 34, 45, 61, 65, 67, 68, & ! index 169 - 180 + 74, 87, 89, 91, 96, 97, 98,102,103,121,123,128, & ! index 181 - 192 + 134,143,144,145,146,150,152,153,166,167,168,177, & ! index 193 - 204 + 179,180,182,183,184,187,189,191,193,194,195,197, & ! index 205 - 216 + 201,204,205,207,209,210,215,216,217,222,225,228, & ! index 217 - 228 + 229,232,234,235,237,238,239,241,244,245,246,247, & ! index 229 - 240 + 249,252,254,255,256,257,258,261,262,265,266,279, & ! index 241 - 252 + 284,286,290,291, 35, 42, 44, 49, 55, 56, 61, 62, & ! index 253 - 264 + 63, 66, 75, 76, 84, 90, 92,100,101,111,114,115, & ! index 265 - 276 + 118,134,138,139,140,142,147,148,149,151,154,155, & ! index 277 - 288 + 159,160,161,170,173,175,176,177,178,179,180,181, & ! index 289 - 300 + 184,190,191,199,200,202,203,208,212,213,214,215, & ! index 301 - 312 + 216,220,223,224,225,226,227,233,234,235,238,241, & ! index 313 - 324 + 242,243,246,247,248,249,251,253,259,260,262,263, & ! index 325 - 336 + 264,266,268,270,271,272,274,275,276,277,278,280, & ! index 337 - 348 + 281,282,283,284,285,286,287,288,289,291, 36, 58 /) ! index up to 360 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_1 = (/ & - 206,209,210,216,218,219,220,224,225,227,228,232, & ! index 361 - 372 - 236,242,243,244,246,247,254,255,261,262,263,269, & ! index 373 - 384 - 277,280,281,282,284,285,287, 34,191,230,258,269, & ! index 385 - 396 - 35, 85,144,191,208,230,256,267,269,277,286, 36, & ! index 397 - 408 - 186,268,269,285, 37,150,151,165,191,220,230,244, & ! index 409 - 420 - 269,277,279,281, 38, 90, 39,269, 40,223, 41,131, & ! index 421 - 432 - 174,196, 42,268, 43,269, 44,268, 45,268, 46,268, & ! index 433 - 444 - 47, 90,223, 48,268, 49,250,270, 50,270,282, 51, & ! index 445 - 456 - 268, 52,268, 53,268, 54,269, 55,268, 56,265,280, & ! index 457 - 468 - 57, 61,268,270, 58,144,260,287, 59,135,260,287, & ! index 469 - 480 - 60,269, 61,270,280, 62,269,284, 63,257,270, 64, & ! index 481 - 492 - 175,269,280, 65,265,269,281, 66,257,269,281, 67, & ! index 493 - 504 - 176,269,281, 68,269,285, 69,199,264,266,275,276, & ! index 505 - 516 - 70,268,269, 71,263,270, 72,269,273, 73,269,285, & ! index 517 - 528 - 74,268,269, 75,269,277, 76,269, 77,269, 78,268, & ! index 529 - 540 - 269, 79,268,269, 80,268,269, 81,268,269, 82,269, & ! index 541 - 552 - 287, 83,230,269,279, 84,133,149,269, 85,262,269, & ! index 553 - 564 - 286, 86,253,269,280, 87,263,269,280, 88,213,269, & ! index 565 - 576 - 280, 89,233,269,280, 38, 40, 47, 90,223,274,280, & ! index 577 - 588 - 91,252,269,281, 92,233,269,281, 93,253,269,281, & ! index 589 - 600 - 94,250,269,281, 95,176,269,270, 96,136,137,147, & ! index 601 - 612 - 171,177,195,198,209,210,216,237,238,239, 97,268, & ! index 613 - 624 - 269, 98,199,223,264,266,273,278,283, 76, 77, 99, & ! index 625 - 636 - 269,287,100,269,285,101,269,270,281,102,113,175, & ! index 637 - 648 - 263,280,287, 72,103,263,269,273,274,285,104,160, & ! index 649 - 660 - 237,244,269,277, 95,105,176,187,269,270,281,106, & ! index 661 - 672 - 182,184,236,269,107,223,269,273,274,108,213,235, & ! index 673 - 684 - 269,281, 76, 77,109,269,287,110,204,269,281,111, & ! index 685 - 696 - 197,269,281,112,269,285,287,113,175,263,269,281, & ! index 697 - 708 - 114,161,167,210,216,269,115,202,224,269,280,281 /) ! index up to 720 + 64, 66, 72, 78, 79, 80,101,105,109,125,127,129, & ! index 361 - 372 + 132,136,148,149,150,153,154,155,156,157,159,162, & ! index 373 - 384 + 163,165,169,170,171,172,174,175,185,186,188,192, & ! index 385 - 396 + 194,200,205,206,207,208,210,213,214,220,221,223, & ! index 397 - 408 + 224,228,229,231,233,236,240,244,245,248,250,251, & ! index 409 - 420 + 253,259,263,264,266,273,279,281,282,284,286,288, & ! index 421 - 432 + 290, 37,195,234,267,286, 38, 86,147,195,212,234, & ! index 433 - 444 + 260,271,276,282,286, 39,190,272,286,290, 40,154, & ! index 445 - 456 + 155,170,195,224,234,248,278,282,284,286, 41,286, & ! index 457 - 468 + 42, 92, 43,286, 44,227, 45,134,178,199, 46,286, & ! index 469 - 480 + 47,272, 48,272, 49, 92,227, 50,255,291, 51,273, & ! index 481 - 492 + 291, 52,272, 53,272, 54,272, 55,272, 56,272, 57, & ! index 493 - 504 + 272, 58,286, 59,272, 60,269,279, 61, 65,272,291, & ! index 505 - 516 + 62,147,265,281, 63,138,265,281, 64,286, 65,279, & ! index 517 - 528 + 291, 66,286,288, 67,261,291, 68,179,279,286, 69, & ! index 529 - 540 + 269,284,286, 70,180,284,286, 71,272,286, 72,286, & ! index 541 - 552 + 290, 73,203,268,270,277,283, 74,266,291, 75,285, & ! index 553 - 564 + 286, 76,282,286, 77,272,286, 78,286,290, 79,286, & ! index 565 - 576 + 80,286, 81,272,286, 82,272,286, 83,272,286, 84, & ! index 577 - 588 + 272,286, 85,234,278,286, 86,263,276,286, 87,258, & ! index 589 - 600 + 279,286, 88,261,284,286, 89,266,279,286, 90,281, & ! index 601 - 612 + 286, 91,237,279,286, 42, 44, 49, 92,227,274,279, & ! index 613 - 624 + 93,256,284,286, 94,237,284,286, 95,258,284,286, & ! index 625 - 636 + 96,217,279,286, 97,180,286,291, 98,139,140,151, & ! index 637 - 648 + 175,181,200,202,213,214,220,241,242,243, 99,203, & ! index 649 - 660 + 227,268,270,280,285,287,100,272,286, 79, 80,101, & ! index 661 - 672 + 281,286,102,284,286,291, 75,103,266,274,285,286, & ! index 673 - 684 + 290,104,163,241,248,282,286,105,136,153,286,106, & ! index 685 - 696 + 255,284,286, 97,107,180,191,284,286,291,108,120, & ! index 697 - 708 + 179,266,279,281,109,186,188,240,286,110,217,239 /) ! index up to 720 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_2 = (/ & - 116,184,269,280,281, 60,117,269,287,118,221,234, & ! index 721 - 732 - 269,281, 85,119,144,191,208,230,256,262,267,269, & ! index 733 - 744 - 277,286,120,182,269,280,281,121,269,282,285,122, & ! index 745 - 756 - 224,225,269,123,147,239,240,241,257,263,280,287, & ! index 757 - 768 - 124,161,220,243,269,125,172,256,269,272,274,275, & ! index 769 - 780 - 276,282,126,167,220,242,269,127,136,137,153,158, & ! index 781 - 792 - 269,128,136,137,153,158,269,129,213,235,263,269, & ! index 793 - 804 - 285,130,202,225,269,280,281,131,174,196,269,277, & ! index 805 - 816 - 287,132,172,231,256,259,267,271,272,273,274,275, & ! index 817 - 828 - 276,278,283,133,203,269,281,134,263,269,281,285, & ! index 829 - 840 - 135,260,271,277,286,136,242,269,280,137,243,269, & ! index 841 - 852 - 280,109,117,138,269,277,287,139,179,180,183,269, & ! index 853 - 864 - 281, 56,140,199,265,266,269,280,287,141,182,236, & ! index 865 - 876 - 270,280,281,142,184,236,270,280,281,143,239,269, & ! index 877 - 888 - 280,281,144,260,271,277,286, 76, 77,109,145,269, & ! index 889 - 900 - 277,287,146,236,238,269,280,281,147,241,269,281, & ! index 901 - 912 - 137,148,243,269,280,281,149,203,245,269,270,150, & ! index 913 - 924 - 269,277,287,151,269,277,287,106,122,152,182,184, & ! index 925 - 936 - 224,225,236,269,153,242,269,281,154,197,204,212, & ! index 937 - 948 - 221,233,234,249,251,252,253,263,269, 60, 76, 77, & ! index 949 - 960 - 117,138,155,206,269,277,287,105,109,117,138,156, & ! index 961 - 972 - 176,187,263,269,270,277,280,281,287,157,269,282, & ! index 973 - 984 - 285,287,158,243,269,281,139,159,179,180,183,269, & ! index 985 - 996 - 281,160,182,184,236,238,269,161,243,269,281,136, & ! index 997 - 1008 - 162,242,269,280,281,163,210,269,280,281,164,216, & ! index 1009 - 1020 - 269,280,281,165,269,277,287,115,122,166,190,200, & ! index 1021 - 1032 - 202,224,225,226,269,280,281,167,242,269,281,167, & ! index 1033 - 1044 - 168,179,185,217,220,238,242,269,280,281,169,270, & ! index 1045 - 1056 - 271,278,279,283,287,114,124,126,127,128,136,137, & ! index 1057 - 1068 - 147,153,158,161,167,170,182,184,210,216,220,236 /) ! index up to 1080 + 284,286,111,227,274,285,286,112,209,284,286,113, & ! index 721 - 732 + 201,284,286,114,281,286,290, 79, 80,115,281,286, & ! index 733 - 744 + 116,165,171,214,220,286,117,206,228,279,284,286, & ! index 745 - 756 + 64,118,281,286,119,225,238,284,286,120,179,266, & ! index 757 - 768 + 284,286,121,186,279,284,286, 86,122,147,195,212, & ! index 769 - 780 + 234,260,263,271,276,282,286,123,188,279,284,286, & ! index 781 - 792 + 124,273,286,290,125,228,229,286,126,151,243,246, & ! index 793 - 804 + 247,261,266,279,281,127,165,224,244,286,128,176, & ! index 805 - 816 + 260,273,274,277,283,286,289,129,171,224,245,286, & ! index 817 - 828 + 130,139,140,157,162,286,131,139,140,157,162,286, & ! index 829 - 840 + 132,206,229,279,284,286,133,217,239,266,286,290, & ! index 841 - 852 + 134,178,199,281,282,286,135,176,235,260,262,271, & ! index 853 - 864 + 274,275,277,280,283,285,287,289,136,207,284,286, & ! index 865 - 876 + 137,266,284,286,290,138,265,275,276,282,139,245, & ! index 877 - 888 + 279,286,140,244,279,286,141,182,183,187,284,286, & ! index 889 - 900 + 115,118,142,281,282,286, 60,143,203,269,270,279, & ! index 901 - 912 + 281,286,144,186,240,279,284,291,145,188,240,279, & ! index 913 - 924 + 284,291,146,243,279,284,286,147,265,275,276,282, & ! index 925 - 936 + 79, 80,115,148,281,282,286,149,272,286,290,150, & ! index 937 - 948 + 240,242,279,284,286,151,246,284,286,140,152,244, & ! index 949 - 960 + 279,284,286,153,207,249,286,291,154,281,282,286, & ! index 961 - 972 + 155,281,282,286,109,125,156,186,188,228,229,240, & ! index 973 - 984 + 286,157,245,284,286,158,201,209,216,225,237,238, & ! index 985 - 996 + 254,256,257,258,266,286, 64, 79, 80,118,142,159, & ! index 997 - 1008 + 210,281,282,286,107,115,118,142,160,180,191,266, & ! index 1009 - 1020 + 279,281,282,284,286,291,161,273,281,286,290,162, & ! index 1021 - 1032 + 244,284,286,163,186,188,240,242,286,141,164,182, & ! index 1033 - 1044 + 183,187,284,286,165,244,284,286,166,220,279,284, & ! index 1045 - 1056 + 286,139,167,245,279,284,286,168,214,279,284,286, & ! index 1057 - 1068 + 117,125,169,194,204,206,228,229,230,279,284,286 /) ! index up to 1080 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_3 = (/ & - 241,242,243,269,280,281,164,171,185,216,217,229, & ! index 1081 - 1092 - 236,245,263,269,280,281,172,270,271,274,279,282, & ! index 1093 - 1104 - 173,186,262,268,269,271,272,277,281,284,285,174, & ! index 1105 - 1116 - 211,212,234,257,263,269,280,281,287, 75,113,175, & ! index 1117 - 1128 - 263,269,277,280,281,287, 67, 95, 99,176,263,269, & ! index 1129 - 1140 - 270,280,281,287,177,240,241,263,269,281, 60, 76, & ! index 1141 - 1152 - 77,109,117,138,178,257,263,269,277,280,281,287, & ! index 1153 - 1164 - 153,167,179,242,269,280,281,158,161,180,243,269, & ! index 1165 - 1176 - 280,281,115,122,130,160,181,182,184,202,224,225, & ! index 1177 - 1188 - 226,236,237,238,269,280,281,167,182,220,242,269, & ! index 1189 - 1200 - 281,153,158,183,242,243,269,280,281,161,184,220, & ! index 1201 - 1212 - 243,269,281,147,185,241,269,280,281,186,254,261, & ! index 1213 - 1224 - 268,269,277,285, 67, 99,105,156,176,187,263,269, & ! index 1225 - 1236 - 270,277,280,281,287, 58, 59,135,144,188,199,206, & ! index 1237 - 1248 - 231,260,269,270,271,272,275,276,277,278,280,283, & ! index 1249 - 1260 - 286,287,161,167,189,210,216,242,243,263,269,280, & ! index 1261 - 1272 - 281,114,158,161,167,190,210,216,242,243,269,280, & ! index 1273 - 1284 - 281,191,254,258,270,277,279,280,286,103,192,231, & ! index 1285 - 1296 - 259,263,267,268,269,271,273,274,278,283,285,161, & ! index 1297 - 1308 - 180,185,193,217,220,227,238,241,243,247,248,249, & ! index 1309 - 1320 - 269,280,281,111,143,146,164,171,185,194,197,216, & ! index 1321 - 1332 - 217,229,236,238,239,241,245,247,263,269,280,281, & ! index 1333 - 1344 - 287,142,162,184,195,201,220,236,238,242,243,245, & ! index 1345 - 1356 - 269,270,280,281,196,211,212,221,234,257,263,269, & ! index 1357 - 1368 - 277,280,281,287,111,197,254,257,263,269,280,281, & ! index 1369 - 1380 - 287,198,249,251,252,269,280,281,199,265,270,275, & ! index 1381 - 1392 - 276,278,283,141,182,200,220,236,242,244,269,270, & ! index 1393 - 1404 - 280,281,142,184,201,220,236,243,247,269,270,280, & ! index 1405 - 1416 - 281,139,179,180,183,190,202,210,216,224,225,242, & ! index 1417 - 1428 - 243,269,280,281,133,149,203,245,247,269,270,280 /) ! index up to 1440 + 170,281,282,286,171,245,284,286,171,172,182,189, & ! index 1081 - 1092 + 222,224,242,245,279,284,286,173,275,278,280,281, & ! index 1093 - 1104 + 287,291,116,127,129,130,131,139,140,151,157,162, & ! index 1105 - 1116 + 165,171,174,186,188,214,220,224,240,244,245,246, & ! index 1117 - 1128 + 279,284,286,166,175,189,220,222,232,240,249,266, & ! index 1129 - 1140 + 279,284,286,176,273,274,275,278,291,149,177,190, & ! index 1141 - 1152 + 263,272,275,282,284,286,288,289,290,178,215,216, & ! index 1153 - 1164 + 238,261,266,279,281,284,286, 76,120,179,266,279, & ! index 1165 - 1176 + 281,282,284,286, 70, 97,101,180,266,279,281,284, & ! index 1177 - 1188 + 286,291,181,246,247,266,284,286,157,171,182,245, & ! index 1189 - 1200 + 279,284,286,162,165,183,244,279,284,286, 64, 79, & ! index 1201 - 1212 + 80,115,118,142,184,261,266,279,281,282,284,286, & ! index 1213 - 1224 + 117,125,132,163,185,186,188,206,228,229,230,240, & ! index 1225 - 1236 + 241,242,279,284,286,171,186,224,245,284,286,157, & ! index 1237 - 1248 + 162,187,244,245,279,284,286,165,188,224,244,284, & ! index 1249 - 1260 + 286,151,189,246,279,284,286,190,253,264,272,282, & ! index 1261 - 1272 + 286,290, 70,101,107,160,180,191,266,279,281,282, & ! index 1273 - 1284 + 284,286,291,165,171,192,214,220,244,245,266,279, & ! index 1285 - 1296 + 284,286, 62, 63,138,147,193,203,210,235,265,275, & ! index 1297 - 1308 + 276,277,279,280,281,282,283,286,287,289,291,116, & ! index 1309 - 1320 + 162,165,171,194,214,220,244,245,279,284,286,195, & ! index 1321 - 1332 + 253,267,276,278,279,282,291,165,183,189,196,222, & ! index 1333 - 1344 + 224,231,242,244,246,251,252,254,279,284,286,103, & ! index 1345 - 1356 + 197,235,262,266,271,272,274,275,280,285,286,287, & ! index 1357 - 1368 + 290,113,146,150,166,175,189,198,201,220,222,232, & ! index 1369 - 1380 + 240,242,243,246,249,251,266,279,281,284,286,199, & ! index 1381 - 1392 + 215,216,225,238,261,266,279,281,282,284,286,145, & ! index 1393 - 1404 + 167,188,200,205,224,240,242,244,245,249,279,284, & ! index 1405 - 1416 + 286,291,113,201,253,261,266,279,281,284,286,202, & ! index 1417 - 1428 + 254,256,257,279,284,286,203,269,277,280,283,287 /) ! index up to 1440 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_4 = (/ & - 281,287,110,204,254,257,263,269,280,281,282,285, & ! index 1441 - 1452 - 143,146,163,185,205,210,217,229,236,237,238,239, & ! index 1453 - 1464 - 241,269,280,281,287,109,117,138,156,176,187,206, & ! index 1465 - 1476 - 263,269,270,277,280,281,287, 54, 83, 84,133,145, & ! index 1477 - 1488 - 149,155,160,165,182,184,203,206,207,220,230,232, & ! index 1489 - 1500 - 234,236,237,238,242,243,245,246,247,263,269,270, & ! index 1501 - 1512 - 277,279,280,281,285,287,150,151,165,191,208,220, & ! index 1513 - 1524 - 230,244,254,258,269,270,277,279,280,281,284,285, & ! index 1525 - 1536 - 286,287,148,162,163,164,185,190,209,210,216,217, & ! index 1537 - 1548 - 224,225,238,241,242,243,269,280,281,210,241,242, & ! index 1549 - 1560 - 263,269,280,150,151,165,211,212,257,263,269,277, & ! index 1561 - 1572 - 280,281,287,150,151,165,211,212,257,263,269,277, & ! index 1573 - 1584 - 280,281,287,157,213,257,263,269,280,281,282,285, & ! index 1585 - 1596 - 287,175,197,204,212,213,214,221,232,233,234,235, & ! index 1597 - 1608 - 240,241,248,249,251,252,253,254,257,263,269,277, & ! index 1609 - 1620 - 280,281,282,285,287,145,191,197,204,213,215,233, & ! index 1621 - 1632 - 235,246,248,249,251,252,253,254,257,258,263,269, & ! index 1633 - 1644 - 270,277,279,280,281,282,285,286,287,216,240,241, & ! index 1645 - 1656 - 243,263,269,280,177,217,240,241,263,269,280,281, & ! index 1657 - 1668 - 54, 60, 76, 77,117,152,155,159,160,168,179,180, & ! index 1669 - 1680 - 181,182,183,184,185,202,206,210,216,217,218,220, & ! index 1681 - 1692 - 224,225,226,232,236,237,238,240,241,242,243,263, & ! index 1693 - 1704 - 269,270,277,280,281,287, 86, 93,198,219,234,249, & ! index 1705 - 1716 - 251,252,253,257,263,269,280,281,282,285,220,269, & ! index 1717 - 1728 - 277,285,287,165,221,257,263,269,277,280,281,287, & ! index 1729 - 1740 - 118,150,151,174,198,211,212,221,222,234,249,251, & ! index 1741 - 1752 - 252,257,263,269,277,280,281,287, 40, 47, 90,223, & ! index 1753 - 1764 - 264,265,266,269,270,273,274,277,280,281,122,127, & ! index 1765 - 1776 - 128,136,137,153,158,189,210,216,224,225,240,241, & ! index 1777 - 1788 - 242,243,263,269,280,281,122,127,128,136,137,153 /) ! index up to 1800 + 291,144,186,204,224,240,245,248,279,284,286,291, & ! index 1441 - 1452 + 145,188,205,224,240,244,251,279,284,286,291,141, & ! index 1453 - 1464 + 182,183,187,194,206,214,220,228,229,244,245,279, & ! index 1465 - 1476 + 284,286,136,153,207,249,251,279,281,284,286,291, & ! index 1477 - 1488 + 146,150,168,189,208,214,222,232,240,241,242,243, & ! index 1489 - 1500 + 246,279,281,284,286,112,209,253,261,266,273,279, & ! index 1501 - 1512 + 284,286,290,115,118,142,160,180,191,210,266,279, & ! index 1513 - 1524 + 281,282,284,286,291, 58, 85,105,136,148,153,159, & ! index 1525 - 1536 + 163,170,186,188,207,210,211,224,234,236,238,240, & ! index 1537 - 1548 + 241,242,244,245,249,250,251,266,278,279,281,282, & ! index 1549 - 1560 + 284,286,290,291,154,155,170,195,212,224,234,248, & ! index 1561 - 1572 + 253,267,276,278,279,281,282,284,286,288,290,291, & ! index 1573 - 1584 + 152,166,167,168,189,194,213,214,220,222,228,229, & ! index 1585 - 1596 + 242,244,245,246,279,284,286,214,245,246,266,279, & ! index 1597 - 1608 + 286,154,155,170,215,216,261,266,279,281,282,284, & ! index 1609 - 1620 + 286,154,155,170,215,216,261,266,279,281,282,284, & ! index 1621 - 1632 + 286,161,217,261,266,273,279,281,284,286,290,179, & ! index 1633 - 1644 + 201,209,216,217,218,225,236,237,238,239,246,247, & ! index 1645 - 1656 + 252,253,254,256,257,258,261,266,273,279,281,282, & ! index 1657 - 1668 + 284,286,290,148,195,201,209,217,219,237,239,250, & ! index 1669 - 1680 + 252,253,254,256,257,258,261,266,267,273,276,278, & ! index 1681 - 1692 + 279,281,282,284,286,290,291,220,244,246,247,266, & ! index 1693 - 1704 + 279,286, 87, 95,202,221,238,254,256,257,258,261, & ! index 1705 - 1716 + 266,273,279,284,286,290,181,222,246,247,266,279, & ! index 1717 - 1728 + 284,286, 58, 64, 79, 80,118,156,159,163,164,172, & ! index 1729 - 1740 + 182,183,185,186,187,188,189,206,210,214,220,222, & ! index 1741 - 1752 + 223,224,228,229,230,236,240,241,242,244,245,246, & ! index 1753 - 1764 + 247,266,279,281,282,284,286,291,224,281,282,286, & ! index 1765 - 1776 + 290,170,225,261,266,279,281,282,284,286,119,154, & ! index 1777 - 1788 + 155,178,202,215,216,225,226,238,254,256,257,261 /) ! index up to 1800 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_5 = (/ & - 158,189,210,216,224,225,240,241,242,243,263,269, & ! index 1801 - 1812 - 280,281,126,153,159,167,179,180,182,183,189,200, & ! index 1813 - 1824 - 209,210,216,217,220,224,225,226,236,238,240,241, & ! index 1825 - 1836 - 242,243,244,263,269,270,277,280,281,285,287,124, & ! index 1837 - 1848 - 158,159,161,179,180,183,184,189,201,202,209,210, & ! index 1849 - 1860 - 216,217,220,224,225,227,236,238,240,241,242,243, & ! index 1861 - 1872 - 247,263,269,270,277,280,281,285,287, 76, 77, 84, & ! index 1873 - 1884 - 133,145,149,152,159,160,161,167,170,179,180,181, & ! index 1885 - 1896 - 182,183,184,189,193,194,197,200,201,202,203,209, & ! index 1897 - 1908 - 210,216,217,220,224,225,226,227,228,229,236,237, & ! index 1909 - 1920 - 238,239,240,241,242,243,244,245,246,247,248,249, & ! index 1921 - 1932 - 254,257,263,269,270,277,280,281,285,287,123,147, & ! index 1933 - 1944 - 177,229,238,239,240,241,257,263,269,280,281,287, & ! index 1945 - 1956 - 75,220,230,244,247,254,258,269,270,277,279,280, & ! index 1957 - 1968 - 285,286,287,169,231,269,270,271,272,275,276,278, & ! index 1969 - 1980 - 279,283,287, 64,102,113,138,139,143,145,155,159, & ! index 1981 - 1992 - 162,164,175,179,180,183,200,202,206,209,210,216, & ! index 1993 - 2004 - 217,220,224,225,226,229,232,236,237,238,239,240, & ! index 2005 - 2016 - 241,242,243,244,257,263,269,270,277,280,281,285, & ! index 2017 - 2028 - 287, 92,121,198,222,233,234,249,250,251,252,255, & ! index 2029 - 2040 - 257,263,269,277,280,281,282,285,287,150,151,234, & ! index 2041 - 2052 - 257,263,269,277,280,281,287,108,165,198,213,222, & ! index 2053 - 2064 - 234,235,249,250,251,252,255,257,263,269,277,280, & ! index 2065 - 2076 - 281,282,285,287,123,147,210,216,236,239,240,241, & ! index 2077 - 2088 - 242,243,257,263,269,280,281,287,141,148,163,182, & ! index 2089 - 2100 - 185,200,210,217,220,229,236,237,238,239,240,241, & ! index 2101 - 2112 - 242,243,244,257,263,269,270,277,280,281,285,287, & ! index 2113 - 2124 - 147,148,162,163,164,177,179,180,183,185,210,216, & ! index 2125 - 2136 - 217,229,238,239,240,241,242,243,257,263,269,280, & ! index 2137 - 2148 - 281,287,143,148,162,163,164,185,210,216,217,229 /) ! index up to 2160 + 266,279,281,282,284,286, 44, 49, 92,227,268,269, & ! index 1801 - 1812 + 270,274,279,282,284,285,286,291,125,130,131,139, & ! index 1813 - 1824 + 140,157,162,192,214,220,228,229,244,245,246,247, & ! index 1825 - 1836 + 266,279,284,286,125,130,131,139,140,157,162,192, & ! index 1837 - 1848 + 214,220,228,229,244,245,246,247,266,279,284,286, & ! index 1849 - 1860 + 129,157,164,171,182,183,186,187,192,204,213,214, & ! index 1861 - 1872 + 220,222,224,228,229,230,240,242,244,245,246,247, & ! index 1873 - 1884 + 248,266,279,281,282,284,286,290,291,127,162,164, & ! index 1885 - 1896 + 165,182,183,187,188,192,205,206,213,214,220,222, & ! index 1897 - 1908 + 224,228,229,231,240,242,244,245,246,247,251,266, & ! index 1909 - 1920 + 279,281,282,284,286,290,291,126,151,181,232,242, & ! index 1921 - 1932 + 243,246,247,261,266,279,281,284,286, 79, 80,105, & ! index 1933 - 1944 + 136,148,153,156,163,164,165,171,174,182,183,185, & ! index 1945 - 1956 + 186,187,188,192,196,198,201,204,205,206,207,213, & ! index 1957 - 1968 + 214,220,222,224,228,229,230,231,232,233,240,241, & ! index 1969 - 1980 + 242,243,244,245,246,247,248,249,250,251,252,253, & ! index 1981 - 1992 + 254,261,266,279,281,282,284,286,290,291, 76,224, & ! index 1993 - 2004 + 234,248,251,253,267,276,278,279,281,282,286,290, & ! index 2005 - 2016 + 291,173,235,275,277,278,280,281,283,286,287,289, & ! index 2017 - 2028 + 291, 68,108,120,141,142,146,148,159,164,166,167, & ! index 2029 - 2040 + 179,182,183,187,204,206,210,213,214,220,222,224, & ! index 2041 - 2052 + 228,229,230,232,236,240,241,242,243,244,245,246, & ! index 2053 - 2064 + 247,248,261,266,279,281,282,284,286,290,291, 94, & ! index 2065 - 2076 + 124,202,226,237,238,254,255,256,257,259,261,266, & ! index 2077 - 2088 + 273,279,281,282,284,286,290,154,155,238,261,266, & ! index 2089 - 2100 + 279,281,282,284,286,110,170,202,217,226,238,239, & ! index 2101 - 2112 + 254,255,256,257,259,261,266,273,279,281,282,284, & ! index 2113 - 2124 + 286,290,126,151,214,220,240,243,244,245,246,247, & ! index 2125 - 2136 + 261,266,279,281,284,286,144,152,168,186,189,204, & ! index 2137 - 2148 + 214,222,224,232,240,241,242,243,244,245,246,247 /) ! index up to 2160 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_6 = (/ & - 238,239,240,241,242,243,257,263,269,280,281,287, & ! index 2161 - 2172 - 177,220,240,241,257,263,269,277,280,281,285,287, & ! index 2173 - 2184 - 147,220,240,241,257,263,269,277,280,281,285,287, & ! index 2185 - 2196 - 147,153,167,220,241,242,243,257,263,269,277,280, & ! index 2197 - 2208 - 281,285,287,147,158,161,220,241,242,243,257,263, & ! index 2209 - 2220 - 269,277,280,281,285,287, 76, 77,120,126,136,153, & ! index 2221 - 2232 - 167,177,182,220,239,240,241,242,243,244,257,263, & ! index 2233 - 2244 - 269,277,280,281,285,287,195,201,220,236,238,239, & ! index 2245 - 2256 - 240,241,242,243,245,247,257,263,269,270,277,280, & ! index 2257 - 2268 - 281,285,287,110,130,131,133,139,149,159,162,163, & ! index 2269 - 2280 - 170,174,179,180,182,183,184,190,195,196,201,202, & ! index 2281 - 2292 - 203,204,210,211,212,216,217,220,221,224,225,227, & ! index 2293 - 2304 - 229,234,236,238,239,240,241,242,243,245,246,247, & ! index 2305 - 2316 - 248,254,257,263,269,270,277,280,281,282,285,287, & ! index 2317 - 2328 - 116,124,137,158,161,165,177,184,220,221,239,240, & ! index 2329 - 2340 - 241,242,243,247,257,263,269,277,280,281,285,287, & ! index 2341 - 2352 - 193,217,219,220,227,234,236,238,239,240,241,242, & ! index 2353 - 2364 - 243,247,248,249,251,252,253,257,263,269,270,277, & ! index 2365 - 2376 - 280,281,282,285,287,150,151,165,222,234,249,251, & ! index 2377 - 2388 - 252,257,263,269,277,280,281,287, 49, 94,145,155, & ! index 2389 - 2400 - 206,222,234,244,249,250,251,252,255,257,263,269, & ! index 2401 - 2412 - 270,277,280,281,285,287,198,206,249,251,252,257, & ! index 2413 - 2424 - 263,269,270,277,280,281,287, 91,112,118,145,221, & ! index 2425 - 2436 - 234,251,252,257,263,269,270,277,280,281,285,287, & ! index 2437 - 2448 - 93,121,198,222,234,249,250,251,252,253,255,257, & ! index 2449 - 2460 - 263,269,270,277,280,281,282,285,287,165,221,244, & ! index 2461 - 2472 - 254,257,263,269,277,280,281,282,285,287, 89, 91, & ! index 2473 - 2484 - 92,111,118,145,150,151,154,155,196,197,198,204, & ! index 2485 - 2496 - 206,211,212,221,233,234,249,250,251,252,253,254, & ! index 2497 - 2508 - 255,257,263,269,270,277,280,281,282,285,287,125 /) ! index up to 2520 + 248,261,266,279,281,282,284,286,290,291,151,152, & ! index 2161 - 2172 + 166,167,168,181,182,183,187,189,214,220,222,232, & ! index 2173 - 2184 + 242,243,244,245,246,247,261,266,279,281,284,286, & ! index 2185 - 2196 + 146,152,166,167,168,189,214,220,222,232,242,243, & ! index 2197 - 2208 + 244,245,246,247,261,266,279,281,284,286,151,162, & ! index 2209 - 2220 + 165,224,244,245,246,266,279,281,282,284,286,290, & ! index 2221 - 2232 + 151,157,171,224,244,245,246,266,279,281,282,284, & ! index 2233 - 2244 + 286,290,151,224,246,247,261,266,279,281,282,284, & ! index 2245 - 2256 + 286,290,181,224,246,247,261,266,279,281,282,284, & ! index 2257 - 2268 + 286,290, 79, 80,121,129,139,157,171,181,186,224, & ! index 2269 - 2280 + 243,244,245,246,247,248,261,266,279,281,282,284, & ! index 2281 - 2292 + 286,290,200,205,224,240,242,243,244,245,246,247, & ! index 2293 - 2304 + 249,251,261,266,279,281,282,284,286,290,291,112, & ! index 2305 - 2316 + 132,134,136,141,153,164,167,168,174,178,182,183, & ! index 2317 - 2328 + 186,187,188,194,199,200,205,206,207,209,214,215, & ! index 2329 - 2340 + 216,220,222,224,225,228,229,231,232,238,240,242, & ! index 2341 - 2352 + 243,244,245,246,247,249,250,251,252,253,261,266, & ! index 2353 - 2364 + 273,279,281,282,284,286,290,291,123,127,140,162, & ! index 2365 - 2376 + 165,170,181,188,224,225,243,244,245,246,247,251, & ! index 2377 - 2388 + 261,266,279,281,282,284,286,290,196,221,222,224, & ! index 2389 - 2400 + 231,238,240,242,243,244,245,246,247,251,252,254, & ! index 2401 - 2412 + 256,257,258,261,266,273,279,281,282,284,286,290, & ! index 2413 - 2424 + 291,170,225,248,253,261,266,273,279,281,282,284, & ! index 2425 - 2436 + 286,290,154,155,170,226,238,254,256,257,261,266, & ! index 2437 - 2448 + 279,281,282,284,286, 50,106,148,159,210,226,238, & ! index 2449 - 2460 + 248,254,255,256,257,259,261,266,279,281,282,284, & ! index 2461 - 2472 + 286,290,291, 93,114,119,148,225,238,256,257,261, & ! index 2473 - 2484 + 266,279,281,282,284,286,290,202,210,254,256,257, & ! index 2485 - 2496 + 261,266,279,281,282,284,286,290,291, 95,124,202, & ! index 2497 - 2508 + 226,238,254,255,256,257,258,259,261,266,273,279 /) ! index up to 2520 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_7 = (/ & - 172,256,269,270,271,272,274,275,276,277,278,279, & ! index 2521 - 2532 - 281,282,283,284,286, 63, 66, 84,104,133,149,152, & ! index 2533 - 2544 - 160,166,167,178,181,182,184,190,193,194,197,200, & ! index 2545 - 2556 - 202,203,204,205,210,211,212,213,216,217,219,220, & ! index 2557 - 2568 - 221,222,224,225,226,227,228,229,233,234,235,236, & ! index 2569 - 2580 - 237,238,239,240,241,242,243,244,245,246,247,248, & ! index 2581 - 2592 - 249,250,251,252,253,254,255,257,261,263,269,270, & ! index 2593 - 2604 - 277,280,281,282,285,287, 54, 60, 62, 68, 73, 76, & ! index 2605 - 2616 - 77, 99,100,106,122,124,126,130,133,145,146,149, & ! index 2617 - 2628 - 150,151,152,153,155,158,160,161,165,166,167,168, & ! index 2629 - 2640 - 170,171,179,181,182,184,185,189,190,191,195,200, & ! index 2641 - 2652 - 201,202,203,205,206,209,210,216,217,218,219,220, & ! index 2653 - 2664 - 224,225,226,227,228,229,230,232,234,236,237,238, & ! index 2665 - 2676 - 239,240,241,242,243,244,245,246,247,248,249,251, & ! index 2677 - 2688 - 252,253,254,255,257,258,261,262,263,269,270,277, & ! index 2689 - 2700 - 279,280,281,282,284,285,286,287,259,269,270,271, & ! index 2701 - 2712 - 272,273,275,276,278,279,283,284,285, 41, 82, 96, & ! index 2713 - 2724 - 99,109,112,117,131,135,136,137,138,144,147,157, & ! index 2725 - 2736 - 169,171,172,174,177,185,195,196,198,201,205,206, & ! index 2737 - 2748 - 209,210,211,212,216,217,218,220,221,222,224,225, & ! index 2749 - 2760 - 226,228,229,232,234,236,237,238,239,240,241,242, & ! index 2761 - 2772 - 243,244,245,246,247,248,249,251,252,253,254,255, & ! index 2773 - 2784 - 257,259,260,261,262,263,266,269,270,271,272,273, & ! index 2785 - 2796 - 274,275,276,277,278,279,280,281,282,283,284,285, & ! index 2797 - 2808 - 286,287, 88, 94,108,110,129,191,197,198,204,213, & ! index 2809 - 2820 - 235,249,250,251,252,254,255,257,258,261,262,263, & ! index 2821 - 2832 - 269,270,277,279,280,281,282,284,285,286,287, 71, & ! index 2833 - 2844 - 75, 82, 83, 85, 87,102,110,113,133,134,136,137, & ! index 2845 - 2856 - 148,153,158,161,162,163,164,165,166,167,168,170, & ! index 2857 - 2868 - 175,176,177,178,179,180,182,184,185,186,187,190 /) ! index up to 2880 + 281,282,284,286,290,291, 91, 93, 94,113,119,148, & ! index 2521 - 2532 + 154,155,158,159,199,201,202,209,210,215,216,225, & ! index 2533 - 2544 + 237,238,253,254,255,256,257,258,259,261,266,273, & ! index 2545 - 2556 + 279,281,282,284,286,290,291,128,176,260,273,274, & ! index 2557 - 2568 + 275,276,277,278,280,282,283,284,286,287,288,289, & ! index 2569 - 2580 + 291, 67, 88,104,105,136,153,156,163,169,171,184, & ! index 2581 - 2592 + 185,186,188,194,196,198,201,204,206,207,208,209, & ! index 2593 - 2604 + 214,215,216,217,220,221,222,224,225,226,228,229, & ! index 2605 - 2616 + 230,231,232,233,237,238,239,240,241,242,243,244, & ! index 2617 - 2628 + 245,246,247,248,249,250,251,252,253,254,255,256, & ! index 2629 - 2640 + 257,258,259,261,264,266,273,279,281,282,284,286, & ! index 2641 - 2652 + 290,291,262,275,277,278,280,283,285,286,287,288, & ! index 2653 - 2664 + 289,290,291, 74, 76, 85, 86, 88, 89, 90,108,112, & ! index 2665 - 2676 + 120,136,137,139,140,152,157,162,165,166,167,168, & ! index 2677 - 2688 + 169,170,171,172,174,179,180,181,182,183,184,186, & ! index 2689 - 2700 + 188,189,190,191,194,196,198,201,204,205,206,207, & ! index 2701 - 2712 + 208,209,214,215,216,217,218,220,222,223,224,225, & ! index 2713 - 2724 + 228,229,230,231,232,234,236,237,238,239,240,241, & ! index 2725 - 2736 + 242,243,244,245,246,247,248,249,250,251,252,253, & ! index 2737 - 2748 + 254,255,256,257,258,259,261,263,264,266,267,272, & ! index 2749 - 2760 + 273,276,278,279,281,282,284,285,286,288,290,291, & ! index 2761 - 2772 + 96,106,110,112,133,195,201,202,209,217,239,253, & ! index 2773 - 2784 + 254,255,256,257,259,261,264,266,267,273,276,278, & ! index 2785 - 2796 + 279,281,282,284,286,290,291, 45, 90, 98,101,114, & ! index 2797 - 2808 + 115,118,134,138,139,140,142,147,151,161,173,175, & ! index 2809 - 2820 + 176,178,181,189,199,200,202,205,208,210,213,214, & ! index 2821 - 2832 + 215,216,220,222,223,224,225,226,228,229,230,232, & ! index 2833 - 2844 + 233,236,238,240,241,242,243,244,245,246,247,248, & ! index 2845 - 2856 + 249,250,251,252,253,254,256,257,258,259,261,262, & ! index 2857 - 2868 + 263,264,265,266,267,270,272,273,274,275,276,277 /) ! index up to 2880 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_8 = (/ & - 193,194,197,200,201,202,203,204,205,210,211,212, & ! index 2881 - 2892 - 213,214,216,217,218,220,221,224,225,226,227,229, & ! index 2893 - 2904 - 230,232,233,234,235,236,237,238,239,240,241,242, & ! index 2905 - 2916 - 243,244,245,246,247,248,249,250,251,252,253,254, & ! index 2917 - 2928 - 255,257,258,261,262,263,268,269,270,273,277,279, & ! index 2929 - 2940 - 280,281,282,284,285,286,287, 43, 63, 66, 71, 82, & ! index 2941 - 2952 - 97,100,133,134,175,176,178,186,187,197,198,203, & ! index 2953 - 2964 - 204,211,212,213,215,219,220,221,222,233,234,235, & ! index 2965 - 2976 - 240,241,242,243,244,245,246,247,248,249,250,251, & ! index 2977 - 2988 - 252,253,254,255,257,258,261,262,263,268,269,270, & ! index 2989 - 3000 - 273,277,279,280,281,282,284,285,286,287,140,199, & ! index 3001 - 3012 - 223,264,265,266,269,270,273,274,275,276,277,278, & ! index 3013 - 3024 - 279,280,281,283,287, 1, 2, 3, 40, 43, 56, 65, & ! index 3025 - 3036 - 69, 90, 98,140,199,223,264,265,266,269,270,273, & ! index 3037 - 3048 - 274,275,276,277,278,279,280,281,283,287,140,199, & ! index 3049 - 3060 - 223,264,265,266,269,270,273,274,275,276,277,278, & ! index 3061 - 3072 - 279,280,281,283,287, 72,107,192,223,231,259,263, & ! index 3073 - 3084 - 264,265,266,267,268,269,270,271,272,273,274,275, & ! index 3085 - 3096 - 276,277,278,279,280,281,282,283,284,285,286,287, & ! index 3097 - 3108 - 42, 44, 45, 46, 48, 51, 52, 53, 55, 57, 61, 70, & ! index 3109 - 3120 - 74, 78, 79, 80, 81, 97,186,192,231,254,257,259, & ! index 3121 - 3132 - 261,262,263,267,268,269,270,271,272,273,274,275, & ! index 3133 - 3144 - 276,277,278,279,280,281,282,283,284,285,286,287, & ! index 3145 - 3156 - 39, 43, 54, 60, 62, 64, 65, 66, 67, 68, 70, 72, & ! index 3157 - 3168 - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, & ! index 3169 - 3180 - 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 97, 99, & ! index 3181 - 3192 - 100,101,104,105,106,107,108,109,110,111,112,113, & ! index 3193 - 3204 - 114,115,116,117,118,119,120,121,122,124,125,126, & ! index 3205 - 3216 - 127,128,129,130,131,133,134,136,137,138,139,140, & ! index 3217 - 3228 - 141,142,143,144,145,146,147,148,149,150,151,152 /) ! index up to 3240 + 278,279,280,281,282,283,284,285,286,287,288,289, & ! index 2881 - 2892 + 290,291, 46, 67, 74, 88, 90,100,106,136,137,149, & ! index 2893 - 2904 + 179,180,184,190,191,201,202,207,209,215,216,217, & ! index 2905 - 2916 + 219,221,224,225,226,237,238,239,244,245,246,247, & ! index 2917 - 2928 + 248,249,250,251,252,253,254,255,256,257,258,259, & ! index 2929 - 2940 + 261,264,266,267,272,273,276,278,279,281,282,284, & ! index 2941 - 2952 + 285,286,290,291, 58, 64, 66, 72, 78, 79, 80,101, & ! index 2953 - 2964 + 105,109,125,127,129,132,136,148,149,150,153,154, & ! index 2965 - 2976 + 155,156,157,159,162,163,165,169,170,171,172,174, & ! index 2977 - 2988 + 175,182,185,186,188,189,192,194,195,200,204,205, & ! index 2989 - 3000 + 206,207,208,210,213,214,220,221,222,223,224,228, & ! index 3001 - 3012 + 229,230,231,232,233,234,236,238,240,241,242,243, & ! index 3013 - 3024 + 244,245,246,247,248,249,250,251,252,253,254,256, & ! index 3025 - 3036 + 257,258,259,261,263,264,266,267,272,273,276,278, & ! index 3037 - 3048 + 279,281,282,284,285,286,288,290,291,143,203,227, & ! index 3049 - 3060 + 268,269,270,274,277,278,279,280,281,282,283,284, & ! index 3061 - 3072 + 285,286,287,291, 1, 2, 3, 44, 46, 60, 69, 73, & ! index 3073 - 3084 + 92, 99,143,203,227,268,269,270,274,277,278,279, & ! index 3085 - 3096 + 280,281,282,283,284,285,286,287,291,143,203,227, & ! index 3097 - 3108 + 268,269,270,274,277,278,279,280,281,282,283,284, & ! index 3109 - 3120 + 285,286,287,291, 75,111,197,227,235,262,266,267, & ! index 3121 - 3132 + 268,269,270,271,272,273,274,275,276,277,278,279, & ! index 3133 - 3144 + 280,281,282,283,284,285,286,287,288,289,290,291, & ! index 3145 - 3156 + 47, 48, 52, 53, 54, 55, 56, 57, 59, 61, 65, 71, & ! index 3157 - 3168 + 77, 81, 82, 83, 84,100,149,190,197,235,253,261, & ! index 3169 - 3180 + 262,264,266,267,271,272,273,274,275,276,277,278, & ! index 3181 - 3192 + 279,280,281,282,283,284,285,286,287,288,289,290, & ! index 3193 - 3204 + 291, 2, 47, 48, 51, 59, 71, 73, 77,100,124,128, & ! index 3205 - 3216 + 135,161,176,203,221,227,235,238,253,254,256,257, & ! index 3217 - 3228 + 258,259,260,261,262,263,264,266,267,268,269,270 /) ! index up to 3240 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_9 = (/ & - 153,154,155,157,158,159,160,161,162,163,164,165, & ! index 3241 - 3252 - 166,167,168,171,172,173,174,175,176,177,178,179, & ! index 3253 - 3264 - 180,182,183,184,185,186,187,188,189,190,191,192, & ! index 3265 - 3276 - 193,194,195,196,197,198,199,200,201,202,203,204, & ! index 3277 - 3288 - 205,206,207,208,209,210,211,212,213,214,215,216, & ! index 3289 - 3300 - 217,218,219,220,221,222,223,224,225,226,227,228, & ! index 3301 - 3312 - 229,230,231,232,233,234,235,236,237,238,239,240, & ! index 3313 - 3324 - 241,242,243,244,245,246,247,248,249,250,251,252, & ! index 3325 - 3336 - 253,254,255,256,257,258,259,260,261,262,263,264, & ! index 3337 - 3348 - 265,266,267,268,269,270,271,272,273,274,275,276, & ! index 3349 - 3360 - 277,278,279,280,281,282,283,284,285,286,287, 49, & ! index 3361 - 3372 - 50, 58, 59, 61, 63, 64, 71, 86, 87, 88, 89, 90, & ! index 3373 - 3384 - 95,101,111,116,120,131,135,136,137,141,142,143, & ! index 3385 - 3396 - 144,146,147,148,149,156,162,163,164,169,172,174, & ! index 3397 - 3408 - 175,176,177,178,179,180,182,183,184,185,187,188, & ! index 3409 - 3420 - 190,191,194,195,196,197,198,199,200,201,203,204, & ! index 3421 - 3432 - 205,206,209,210,211,212,213,216,217,220,221,223, & ! index 3433 - 3444 - 224,225,229,230,231,233,234,235,236,237,238,239, & ! index 3445 - 3456 - 240,241,242,243,244,245,247,248,249,250,251,252, & ! index 3457 - 3468 - 253,254,255,257,258,259,260,261,262,263,264,265, & ! index 3469 - 3480 - 266,268,269,270,271,272,273,274,275,276,277,278, & ! index 3481 - 3492 - 279,280,281,282,283,284,285,286,287, 68, 73,100, & ! index 3493 - 3504 - 112,121,129,134,135,144,157,169,172,186,207,208, & ! index 3505 - 3516 - 213,214,215,219,220,221,230,231,232,233,234,235, & ! index 3517 - 3528 - 236,237,238,239,240,241,242,243,244,245,246,247, & ! index 3529 - 3540 - 248,249,250,251,252,253,254,255,256,257,258,259, & ! index 3541 - 3552 - 260,261,262,263,266,267,268,269,270,271,272,273, & ! index 3553 - 3564 - 274,275,276,277,278,279,280,281,282,283,284,285, & ! index 3565 - 3576 - 286,287,121,157,219,231,234,249,251,252,253,254, & ! index 3577 - 3588 - 255,256,257,259,261,262,263,267,268,269,270,271 /) ! index up to 3600 + 271,272,273,274,275,276,277,278,279,280,281,282, & ! index 3241 - 3252 + 283,284,285,286,287,288,289,290,291, 47, 48, 59, & ! index 3253 - 3264 + 71, 77,100,176,227,260,268,269,270,272,273,274, & ! index 3265 - 3276 + 275,276,277,278,279,280,281,282,283,284,285,286, & ! index 3277 - 3288 + 287,288,289,290,291, 72, 78,114,124,133,137,138, & ! index 3289 - 3300 + 147,149,161,173,176,190,211,212,217,218,219,221, & ! index 3301 - 3312 + 224,225,234,235,236,237,238,239,240,241,242,243, & ! index 3313 - 3324 + 244,245,246,247,248,249,250,251,252,253,254,255, & ! index 3325 - 3336 + 256,257,258,259,260,261,262,263,264,265,266,267, & ! index 3337 - 3348 + 270,271,272,273,274,275,276,277,278,279,280,281, & ! index 3349 - 3360 + 282,283,284,285,286,287,288,289,290,291, 66, 86, & ! index 3361 - 3372 + 90,122,138,147,195,212,224,234,248,251,253,260, & ! index 3373 - 3384 + 261,263,264,265,266,267,270,271,272,273,274,275, & ! index 3385 - 3396 + 276,277,278,279,280,281,282,283,284,285,286,287, & ! index 3397 - 3408 + 288,289,290,291,203,235,260,262,268,269,270,273, & ! index 3409 - 3420 + 274,275,276,277,278,279,280,281,282,283,284,285, & ! index 3421 - 3432 + 286,287,288,289,290,291, 43, 46, 69, 81, 82, 83, & ! index 3433 - 3444 + 84,100,102,137,149,161,173,176,177,190,193,195, & ! index 3445 - 3456 + 196,202,203,210,211,212,219,221,222,224,226,231, & ! index 3457 - 3468 + 234,235,236,237,238,239,240,241,242,243,244,245, & ! index 3469 - 3480 + 246,247,248,249,250,251,252,253,254,255,256,257, & ! index 3481 - 3492 + 258,259,260,261,262,263,264,265,266,267,268,269, & ! index 3493 - 3504 + 270,271,272,273,274,275,276,277,278,279,280,281, & ! index 3505 - 3516 + 282,283,284,285,286,287,288,289,290,291, 60, 61, & ! index 3517 - 3528 + 65, 92,121,123,144,145,146,150,152,166,167,168, & ! index 3529 - 3540 + 179,180,182,183,184,186,187,188,189,191,193,194, & ! index 3541 - 3552 + 195,201,203,204,205,207,209,210,214,215,216,217, & ! index 3553 - 3564 + 220,222,224,225,227,228,229,232,234,235,237,238, & ! index 3565 - 3576 + 239,240,242,243,244,245,246,247,248,249,251,252, & ! index 3577 - 3588 + 253,254,255,256,257,258,259,261,264,265,266,267 /) ! index up to 3600 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_10 = (/ & - 272,273,274,275,276,277,278,279,280,281,282,283, & ! index 3601 - 3612 - 284,285,286,287, 42, 46, 48, 51, 52, 53, 55, 72, & ! index 3613 - 3624 - 78, 79, 80, 81,103,107,192,213,223,231,235,249, & ! index 3625 - 3636 - 250,251,252,255,257,259,261,262,263,264,265,266, & ! index 3637 - 3648 - 267,268,269,270,271,272,273,274,275,276,277,278, & ! index 3649 - 3660 - 279,280,281,282,283,284,285,286,287, 44, 45, 55, & ! index 3661 - 3672 - 70, 74, 97,172,223,256,264,265,266,268,269,270, & ! index 3673 - 3684 - 271,272,273,274,275,276,277,278,279,280,281,282, & ! index 3685 - 3696 - 283,284,285,286,287,199,231,256,259,264,265,266, & ! index 3697 - 3708 - 269,270,271,272,273,274,275,276,277,278,279,280, & ! index 3709 - 3720 - 281,282,283,284,285,286,287,199,231,256,259,264, & ! index 3721 - 3732 - 265,266,269,270,271,272,273,274,275,276,277,278, & ! index 3733 - 3744 - 279,280,281,282,283,284,285,286,287, 75,135,138, & ! index 3745 - 3756 - 144,145,150,151,155,156,165,173,176,186,187,196, & ! index 3757 - 3768 - 203,206,211,212,220,221,230,234,244,245,247,250, & ! index 3769 - 3780 - 251,252,254,255,257,258,260,261,262,263,265,266, & ! index 3781 - 3792 - 268,269,270,271,272,273,274,275,276,277,278,279, & ! index 3793 - 3804 - 280,281,282,283,284,285,286,287,144,169,199,231, & ! index 3805 - 3816 - 256,259,260,261,262,263,264,265,266,267,268,269, & ! index 3817 - 3828 - 270,271,272,273,274,275,276,277,278,279,280,281, & ! index 3829 - 3840 - 282,283,284,285,286,287, 39, 43, 65, 78, 79, 80, & ! index 3841 - 3852 - 81, 97,100,101,134,157,169,172,173,186,188,191, & ! index 3853 - 3864 - 193,198,199,206,207,208,215,217,219,220,222,227, & ! index 3865 - 3876 - 230,231,232,233,234,235,236,237,238,239,240,241, & ! index 3877 - 3888 - 242,243,244,245,246,247,248,249,250,251,252,253, & ! index 3889 - 3900 - 254,255,256,257,258,259,260,261,262,263,264,265, & ! index 3901 - 3912 - 266,267,268,269,270,271,272,273,274,275,276,277, & ! index 3913 - 3924 - 278,279,280,281,282,283,284,285,286,287, 56, 57, & ! index 3925 - 3936 - 61, 90,116,120,141,142,143,146,148,162,163,164, & ! index 3937 - 3948 - 175,176,178,179,180,182,183,184,185,187,188,190 /) ! index up to 3960 + 268,269,270,272,273,274,275,276,277,278,279,280, & ! index 3601 - 3612 + 281,282,283,284,285,286,287,288,289,290,291,147, & ! index 3613 - 3624 + 173,203,235,260,262,265,266,267,268,269,270,271, & ! index 3625 - 3636 + 272,273,274,275,276,277,278,279,280,281,282,283, & ! index 3637 - 3648 + 284,285,286,287,288,289,290,291, 67, 74, 90,101, & ! index 3649 - 3660 + 102,114,115,118,134,142,143,153,154,155,161,170, & ! index 3661 - 3672 + 173,176,178,179,184,191,195,199,203,207,208,210, & ! index 3673 - 3684 + 214,215,216,222,223,224,225,226,228,229,230,232, & ! index 3685 - 3696 + 233,234,236,238,240,241,242,243,244,245,246,247, & ! index 3697 - 3708 + 248,249,250,251,252,253,254,256,257,258,259,261, & ! index 3709 - 3720 + 262,263,264,265,266,267,269,270,272,273,274,275, & ! index 3721 - 3732 + 276,277,278,279,280,281,282,283,284,285,286,287, & ! index 3733 - 3744 + 288,289,290,291, 76,138,142,147,148,154,155,159, & ! index 3745 - 3756 + 160,170,177,180,190,191,199,207,210,215,216,224, & ! index 3757 - 3768 + 225,234,238,248,249,251,253,255,256,257,259,261, & ! index 3769 - 3780 + 263,264,265,266,267,269,270,272,273,274,275,276, & ! index 3781 - 3792 + 277,278,279,280,281,282,283,284,285,286,287,288, & ! index 3793 - 3804 + 289,290,291,203,235,260,262,268,269,270,273,274, & ! index 3805 - 3816 + 275,276,277,278,279,280,281,282,283,284,285,286, & ! index 3817 - 3828 + 287,288,289,290,291, 58, 64, 72, 74, 78, 79, 80, & ! index 3829 - 3840 + 85, 87, 89, 91, 93, 94, 95, 96,100,101,102,104, & ! index 3841 - 3852 + 106,108,109,110,112,113,115,116,117,118,119,120, & ! index 3853 - 3864 + 121,123,125,126,127,129,130,131,132,133,137,139, & ! index 3865 - 3876 + 140,141,142,144,145,146,148,149,150,151,152,154, & ! index 3877 - 3888 + 155,156,157,158,159,162,163,164,165,166,167,168, & ! index 3889 - 3900 + 169,170,171,172,175,177,179,180,181,182,183,184, & ! index 3901 - 3912 + 185,186,187,188,189,190,191,192,194,200,201,202, & ! index 3913 - 3924 + 204,205,206,207,208,209,210,211,212,213,214,215, & ! index 3925 - 3936 + 216,217,218,220,222,223,224,225,227,228,229,230, & ! index 3937 - 3948 + 231,232,233,234,236,237,238,239,240,241,242,243 /) ! index up to 3960 INTEGER, PARAMETER, DIMENSION(360) :: LU_ICOL_11 = (/ & - 191,197,199,200,201,203,204,206,210,211,212,213, & ! index 3961 - 3972 - 216,217,220,221,223,224,225,229,230,231,233,234, & ! index 3973 - 3984 - 235,236,238,239,240,241,242,243,244,245,247,248, & ! index 3985 - 3996 - 249,250,251,252,253,254,255,257,258,260,261,262, & ! index 3997 - 4008 - 263,264,265,266,268,269,270,271,272,273,274,275, & ! index 4009 - 4020 - 276,277,278,279,280,281,282,283,284,285,286,287, & ! index 4021 - 4032 - 54, 60, 68, 71, 73, 76, 77, 83, 86, 87, 88, 89, & ! index 4033 - 4044 - 91, 92, 93, 94, 97, 99,100,101,102,104,106,108, & ! index 4045 - 4056 - 109,110,111,113,114,115,116,117,118,120,122,123, & ! index 4057 - 4068 - 124,126,127,128,129,130,134,136,137,138,139,141, & ! index 4069 - 4080 - 142,143,145,146,147,148,150,151,152,153,154,155, & ! index 4081 - 4092 - 158,159,160,161,162,163,164,165,166,167,168,171, & ! index 4093 - 4104 - 173,175,176,177,178,179,180,181,182,183,184,185, & ! index 4105 - 4116 - 186,187,189,190,195,197,198,200,201,202,203,204, & ! index 4117 - 4128 - 205,206,207,208,209,210,211,212,213,214,216,217, & ! index 4129 - 4140 - 218,220,221,223,224,225,226,227,228,229,230,232, & ! index 4141 - 4152 - 233,234,235,236,237,238,239,240,241,242,243,244, & ! index 4153 - 4164 - 245,246,247,248,249,250,251,252,253,254,255,257, & ! index 4165 - 4176 - 258,261,262,263,264,265,266,268,269,270,271,272, & ! index 4177 - 4188 - 273,274,275,276,277,278,279,280,281,282,283,284, & ! index 4189 - 4200 - 285,286,287, 2, 44, 45, 50, 55, 69, 70, 74, 97, & ! index 4201 - 4212 - 121,125,132,157,172,199,219,223,231,234,249,251, & ! index 4213 - 4224 - 252,253,254,255,256,257,259,261,262,263,264,265, & ! index 4225 - 4236 - 266,267,268,269,270,271,272,273,274,275,276,277, & ! index 4237 - 4248 - 278,279,280,281,282,283,284,285,286,287,135,169, & ! index 4249 - 4260 - 199,231,256,259,260,261,262,263,264,265,266,267, & ! index 4261 - 4272 - 268,269,270,271,272,273,274,275,276,277,278,279, & ! index 4273 - 4284 - 280,281,282,283,284,285,286,287, 42, 44, 45, 46, & ! index 4285 - 4296 - 48, 51, 52, 53, 55, 61, 62, 70, 74, 78, 79, 80, & ! index 4297 - 4308 - 81,107,173,186,192,208,220,223,230,231,244,247 /) ! index up to 4320 - INTEGER, PARAMETER, DIMENSION(261) :: LU_ICOL_12 = (/ & - 254,256,257,258,259,261,262,263,264,265,266,267, & ! index 4321 - 4332 - 268,269,270,271,272,273,274,275,276,277,278,279, & ! index 4333 - 4344 - 280,281,282,283,284,285,286,287, 3, 39, 42, 46, & ! index 4345 - 4356 - 48, 51, 52, 53, 55, 68, 72, 73, 78, 79, 80, 81, & ! index 4357 - 4368 - 98,100,103,112,121,129,132,134,157,172,186,192, & ! index 4369 - 4380 - 199,207,208,213,214,215,219,220,221,223,230,231, & ! index 4381 - 4392 - 232,233,234,235,236,237,238,239,240,241,242,243, & ! index 4393 - 4404 - 244,245,246,247,248,249,250,251,252,253,254,255, & ! index 4405 - 4416 - 256,257,258,259,261,262,263,264,265,266,267,268, & ! index 4417 - 4428 - 269,270,271,272,273,274,275,276,277,278,279,280, & ! index 4429 - 4440 - 281,282,283,284,285,286,287, 62, 82, 85,119,135, & ! index 4441 - 4452 - 144,191,208,220,230,244,247,254,256,257,258,260, & ! index 4453 - 4464 - 261,262,263,266,267,268,269,270,271,272,273,274, & ! index 4465 - 4476 - 275,276,277,278,279,280,281,282,283,284,285,286, & ! index 4477 - 4488 - 287, 63, 71, 82, 99,101,109,112,117,131,138,140, & ! index 4489 - 4500 - 149,150,151,157,165,169,172,174,175,178,187,191, & ! index 4501 - 4512 - 196,199,203,205,206,210,211,212,217,218,220,221, & ! index 4513 - 4524 - 222,224,225,226,228,229,230,232,234,236,237,238, & ! index 4525 - 4536 - 239,240,241,242,243,244,245,246,247,248,249,251, & ! index 4537 - 4548 - 252,253,254,255,257,258,259,260,261,262,263,265, & ! index 4549 - 4560 - 266,268,269,270,271,272,273,274,275,276,277,278, & ! index 4561 - 4572 - 279,280,281,282,283,284,285,286,287 /) ! index up to 4581 - INTEGER, PARAMETER, DIMENSION(4581) :: LU_ICOL = (/& + 244,245,246,247,248,249,250,251,252,253,254,255, & ! index 3961 - 3972 + 256,257,258,259,261,263,264,266,267,268,269,270, & ! index 3973 - 3984 + 272,273,274,275,276,277,278,279,280,281,282,283, & ! index 3985 - 3996 + 284,285,286,287,288,289,290,291, 52, 53, 54, 55, & ! index 3997 - 4008 + 56, 57, 59, 75, 81, 82, 83, 84,103,111,149,197, & ! index 4009 - 4020 + 217,227,235,239,254,255,256,257,259,261,262,264, & ! index 4021 - 4032 + 266,267,268,269,270,271,272,273,274,275,276,277, & ! index 4033 - 4044 + 278,279,280,281,282,283,284,285,286,287,288,289, & ! index 4045 - 4056 + 290,291, 41, 43, 46, 58, 64, 66, 68, 69, 70, 71, & ! index 4057 - 4068 + 72, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, & ! index 4069 - 4080 + 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 97,100, & ! index 4081 - 4092 + 101,102,104,105,106,107,109,110,111,112,113,114, & ! index 4093 - 4104 + 115,116,117,118,119,120,121,122,123,124,125,127, & ! index 4105 - 4116 + 128,129,130,131,132,133,134,136,137,139,140,141, & ! index 4117 - 4128 + 142,143,144,145,146,147,148,149,150,151,152,153, & ! index 4129 - 4140 + 154,155,156,157,158,159,161,162,163,164,165,166, & ! index 4141 - 4152 + 167,168,169,170,171,172,175,176,177,178,179,180, & ! index 4153 - 4164 + 181,182,183,184,186,187,188,189,190,191,192,193, & ! index 4165 - 4176 + 194,195,196,197,198,199,200,201,202,203,204,205, & ! index 4177 - 4188 + 206,207,208,209,210,211,212,213,214,215,216,217, & ! index 4189 - 4200 + 218,219,220,221,222,223,224,225,226,227,228,229, & ! index 4201 - 4212 + 230,231,232,233,234,235,236,237,238,239,240,241, & ! index 4213 - 4224 + 242,243,244,245,246,247,248,249,250,251,252,253, & ! index 4225 - 4236 + 254,255,256,257,258,259,260,261,262,263,264,265, & ! index 4237 - 4248 + 266,267,268,269,270,271,272,273,274,275,276,277, & ! index 4249 - 4260 + 278,279,280,281,282,283,284,285,286,287,288,289, & ! index 4261 - 4272 + 290,291,138,173,203,235,260,262,265,266,267,268, & ! index 4273 - 4284 + 269,270,271,272,273,274,275,276,277,278,279,280, & ! index 4285 - 4296 + 281,282,283,284,285,286,287,288,289,290,291, 47, & ! index 4297 - 4308 + 48, 52, 53, 54, 55, 56, 57, 59, 65, 66, 71, 77 /) ! index up to 4320 + INTEGER, PARAMETER, DIMENSION(311) :: LU_ICOL_12 = (/ & + 81, 82, 83, 84,111,149,177,190,197,212,224,227, & ! index 4321 - 4332 + 234,235,248,251,253,260,261,262,263,264,266,267, & ! index 4333 - 4344 + 268,269,270,271,272,273,274,275,276,277,278,279, & ! index 4345 - 4356 + 280,281,282,283,284,285,286,287,288,289,290,291, & ! index 4357 - 4368 + 124,161,221,235,238,253,254,256,257,258,259,260, & ! index 4369 - 4380 + 261,262,263,264,266,267,271,272,273,274,275,276, & ! index 4381 - 4392 + 277,278,279,280,281,282,283,284,285,286,287,288, & ! index 4393 - 4404 + 289,290,291, 3, 43, 52, 53, 54, 55, 56, 57, 59, & ! index 4405 - 4416 + 72, 75, 78, 81, 82, 83, 84, 99,103,114,124,133, & ! index 4417 - 4428 + 135,137,149,161,176,190,197,203,211,212,217,218, & ! index 4429 - 4440 + 219,221,224,225,227,234,235,236,237,238,239,240, & ! index 4441 - 4452 + 241,242,243,244,245,246,247,248,249,250,251,252, & ! index 4453 - 4464 + 253,254,255,256,257,258,259,260,261,262,263,264, & ! index 4465 - 4476 + 266,267,268,269,270,271,272,273,274,275,276,277, & ! index 4477 - 4488 + 278,279,280,281,282,283,284,285,286,287,288,289, & ! index 4489 - 4500 + 290,291, 50, 51, 62, 63, 65, 67, 68, 74, 87, 89, & ! index 4501 - 4512 + 91, 92, 96, 97,102,113,121,123,134,138,139,140, & ! index 4513 - 4524 + 144,145,146,147,150,151,152,153,160,166,167,168, & ! index 4525 - 4536 + 173,176,178,179,180,181,182,183,184,186,187,188, & ! index 4537 - 4548 + 189,191,193,194,195,198,199,200,201,202,203,204, & ! index 4549 - 4560 + 205,207,208,209,210,213,214,215,216,217,220,222, & ! index 4561 - 4572 + 224,225,227,228,229,232,234,235,237,238,239,240, & ! index 4573 - 4584 + 241,242,243,244,245,246,247,248,249,251,252,253, & ! index 4585 - 4596 + 254,255,256,257,258,259,261,262,264,265,266,267, & ! index 4597 - 4608 + 268,269,270,272,273,274,275,276,277,278,279,280, & ! index 4609 - 4620 + 281,282,283,284,285,286,287,288,289,290,291 /) ! index up to 4631 + INTEGER, PARAMETER, DIMENSION(4631) :: LU_ICOL = (/& LU_ICOL_0, LU_ICOL_1, LU_ICOL_2, LU_ICOL_3, LU_ICOL_4, & LU_ICOL_5, LU_ICOL_6, LU_ICOL_7, LU_ICOL_8, LU_ICOL_9, & LU_ICOL_10, LU_ICOL_11, LU_ICOL_12 /) - INTEGER, PARAMETER, DIMENSION(288) :: LU_CROW = (/ & - 1, 2, 3, 4, 9, 11, 44, 47, 52, 57, 60, 63, & ! index 1 - 12 - 68, 71, 74, 77, 80, 85, 87, 90, 93, 98,100,106, & ! index 13 - 24 - 109,112,117,120,124,128,134,220,318,392,397,408, & ! index 25 - 36 - 413,425,427,429,431,435,437,439,441,443,445,448, & ! index 37 - 48 - 450,453,456,458,460,462,464,466,469,473,477,481, & ! index 49 - 60 - 483,486,489,492,496,500,504,508,511,517,520,523, & ! index 61 - 72 - 526,529,532,535,537,539,542,545,548,551,554,558, & ! index 73 - 84 - 562,566,570,574,578,582,589,593,597,601,605,609, & ! index 85 - 96 - 623,626,634,639,642,646,652,659,665,672,677,682, & ! index 97 - 108 - 687,692,696,700,704,709,715,721,726,730,735,747, & ! index 109 - 120 - 752,756,760,769,774,783,788,794,800,806,812,818, & ! index 121 - 132 - 832,836,841,846,850,854,860,866,874,880,886,891, & ! index 133 - 144 - 896,903,909,913,919,924,928,932,941,945,958,968, & ! index 145 - 156 - 982,987,991,998,1004,1008,1014,1019,1024,1028,1040,1044, & ! index 157 - 168 - 1055,1062,1087,1099,1105,1116,1126,1135,1145,1151,1165,1172, & ! index 169 - 180 - 1179,1196,1202,1210,1216,1222,1229,1242,1263,1274,1286,1294, & ! index 181 - 192 - 1308,1324,1346,1361,1373,1382,1389,1396,1407,1418,1433,1443, & ! index 193 - 204 - 1453,1470,1484,1519,1539,1558,1564,1576,1588,1598,1626,1654, & ! index 205 - 216 - 1661,1669,1711,1727,1732,1741,1761,1775,1795,1815,1848,1882, & ! index 217 - 228 - 1943,1957,1972,1984,2030,2050,2060,2081,2097,2125,2151,2173, & ! index 229 - 240 - 2185,2197,2212,2227,2251,2272,2329,2353,2382,2397,2419,2432, & ! index 241 - 252 - 2449,2470,2483,2520,2538,2611,2709,2722,2811,2844,2948,3011, & ! index 253 - 264 - 3030,3059,3078,3109,3157,3372,3502,3579,3617,3670,3702,3728, & ! index 265 - 276 - 3754,3813,3847,3935,4033,4204,4259,4293,4353,4448,4490,4582 /) ! index up to 288 + INTEGER, PARAMETER, DIMENSION(292) :: LU_CROW = (/ & + 1, 2, 3, 4, 9, 11, 14, 68, 71, 79, 87, 90, & ! index 1 - 12 + 93, 98,101,104,107,110,115,117,120,123,128,130, & ! index 13 - 24 + 136,139,142,147,150,154,158,164,169,175,257,359, & ! index 25 - 36 + 434,439,450,455,467,469,471,473,475,479,481,483, & ! index 37 - 48 + 485,488,491,494,496,498,500,502,504,506,508,510, & ! index 49 - 60 + 513,517,521,525,527,530,533,536,540,544,548,551, & ! index 61 - 72 + 554,560,563,566,569,572,575,577,579,582,585,588, & ! index 73 - 84 + 591,595,599,603,607,611,614,618,625,629,633,637, & ! index 85 - 96 + 641,645,659,667,670,675,679,686,692,696,700,707, & ! index 97 - 108 + 713,718,723,728,732,736,740,745,751,757,761,766, & ! index 109 - 120 + 771,776,788,793,797,801,810,815,824,829,835,841, & ! index 121 - 132 + 847,853,859,873,877,882,887,891,895,901,907,915, & ! index 133 - 144 + 921,927,932,937,944,948,954,958,964,969,973,977, & ! index 145 - 156 + 986,990,1003,1013,1027,1032,1036,1042,1049,1053,1058,1064, & ! index 157 - 168 + 1069,1081,1085,1089,1100,1107,1132,1144,1150,1162,1172,1181, & ! index 169 - 180 + 1191,1197,1204,1211,1225,1242,1248,1256,1262,1268,1275,1288, & ! index 181 - 192 + 1299,1320,1332,1340,1356,1370,1392,1404,1419,1428,1435,1442, & ! index 193 - 204 + 1453,1464,1479,1489,1506,1516,1530,1565,1585,1604,1610,1622, & ! index 205 - 216 + 1634,1644,1672,1700,1707,1723,1731,1773,1778,1787,1807,1821, & ! index 217 - 228 + 1841,1861,1894,1928,1942,2003,2018,2030,2076,2096,2106,2127, & ! index 229 - 240 + 2143,2171,2197,2219,2233,2247,2259,2271,2295,2316,2373,2397, & ! index 241 - 252 + 2426,2439,2454,2476,2492,2506,2527,2564,2582,2655,2668,2773, & ! index 253 - 264 + 2804,2895,2957,3058,3077,3106,3125,3157,3206,3262,3294,3371, & ! index 265 - 276 + 3413,3439,3527,3624,3657,3749,3808,3834,4005,4059,4275,4308, & ! index 277 - 288 + 4369,4408,4503,4632 /) ! index up to 292 - INTEGER, PARAMETER, DIMENSION(288) :: LU_DIAG = (/ & - 1, 2, 3, 4, 9, 11, 44, 47, 52, 57, 60, 63, & ! index 1 - 12 - 68, 71, 74, 77, 80, 85, 87, 90, 93, 98,100,106, & ! index 13 - 24 - 109,112,117,120,124,128,134,220,318,392,397,408, & ! index 25 - 36 - 413,425,427,429,431,435,437,439,441,443,445,448, & ! index 37 - 48 - 450,453,456,458,460,462,464,466,469,473,477,481, & ! index 49 - 60 - 483,486,489,492,496,500,504,508,511,517,520,523, & ! index 61 - 72 - 526,529,532,535,537,539,542,545,548,551,554,558, & ! index 73 - 84 - 562,566,570,574,578,585,589,593,597,601,605,609, & ! index 85 - 96 - 623,626,636,639,642,646,653,659,666,672,677,682, & ! index 97 - 108 - 689,692,696,700,704,709,715,721,727,730,736,747, & ! index 109 - 120 - 752,756,760,769,774,783,788,794,800,806,812,818, & ! index 121 - 132 - 832,836,841,846,850,856,860,867,874,880,886,891, & ! index 133 - 144 - 899,903,909,914,919,924,928,934,941,945,963,972, & ! index 145 - 156 - 982,987,992,998,1004,1009,1014,1019,1024,1030,1040,1045, & ! index 157 - 168 - 1055,1074,1088,1099,1105,1116,1128,1138,1145,1157,1167,1174, & ! index 169 - 180 - 1183,1197,1204,1211,1217,1222,1234,1246,1265,1278,1286,1295, & ! index 181 - 192 - 1311,1330,1349,1361,1374,1382,1389,1398,1409,1423,1435,1444, & ! index 193 - 204 - 1457,1476,1497,1523,1545,1558,1567,1580,1589,1603,1631,1654, & ! index 205 - 216 - 1662,1691,1714,1727,1733,1749,1764,1785,1806,1832,1866,1917, & ! index 217 - 228 - 1946,1959,1973,2011,2034,2052,2066,2085,2108,2139,2162,2175, & ! index 229 - 240 - 2188,2202,2218,2242,2261,2315,2344,2367,2387,2406,2422,2439, & ! index 241 - 252 - 2458,2473,2509,2522,2600,2694,2709,2787,2830,2933,2997,3014, & ! index 253 - 264 - 3044,3064,3088,3137,3353,3484,3562,3601,3655,3688,3715,3742, & ! index 265 - 276 - 3802,3837,3926,4025,4197,4253,4288,4349,4445,4488,4581,4582 /) ! index up to 288 + INTEGER, PARAMETER, DIMENSION(292) :: LU_DIAG = (/ & + 1, 2, 3, 4, 9, 11, 14, 68, 71, 79, 87, 90, & ! index 1 - 12 + 93, 98,101,104,107,110,115,117,120,123,128,130, & ! index 13 - 24 + 136,139,142,147,150,154,158,164,169,175,257,359, & ! index 25 - 36 + 434,439,450,455,467,469,471,473,475,479,481,483, & ! index 37 - 48 + 485,488,491,494,496,498,500,502,504,506,508,510, & ! index 49 - 60 + 513,517,521,525,527,530,533,536,540,544,548,551, & ! index 61 - 72 + 554,560,563,566,569,572,575,577,579,582,585,588, & ! index 73 - 84 + 591,595,599,603,607,611,614,621,625,629,633,637, & ! index 85 - 96 + 641,645,659,667,672,675,680,686,692,696,701,707, & ! index 97 - 108 + 713,718,723,728,732,736,742,745,751,758,761,766, & ! index 109 - 120 + 771,777,788,793,797,801,810,815,824,829,835,841, & ! index 121 - 132 + 847,853,859,873,877,882,887,891,895,903,908,915, & ! index 133 - 144 + 921,927,932,940,944,948,954,959,964,969,973,979, & ! index 145 - 156 + 986,990,1008,1017,1027,1032,1036,1043,1049,1053,1059,1064, & ! index 157 - 168 + 1071,1081,1085,1090,1100,1119,1133,1144,1151,1162,1174,1184, & ! index 169 - 180 + 1191,1199,1206,1217,1229,1243,1250,1257,1263,1268,1280,1290, & ! index 181 - 192 + 1303,1324,1332,1343,1357,1376,1392,1407,1420,1428,1435,1444, & ! index 193 - 204 + 1455,1469,1481,1493,1507,1522,1543,1569,1591,1604,1613,1626, & ! index 205 - 216 + 1635,1649,1677,1700,1710,1724,1753,1773,1779,1795,1810,1831, & ! index 217 - 228 + 1852,1878,1912,1931,1978,2005,2019,2057,2080,2098,2112,2131, & ! index 229 - 240 + 2154,2185,2208,2223,2238,2249,2262,2286,2305,2359,2388,2411, & ! index 241 - 252 + 2429,2444,2463,2482,2496,2515,2553,2566,2644,2655,2756,2791, & ! index 253 - 264 + 2871,2943,3044,3061,3091,3111,3136,3186,3243,3276,3354,3397, & ! index 265 - 276 + 3424,3513,3611,3645,3738,3798,3825,3997,4052,4269,4303,4365, & ! index 277 - 288 + 4405,4501,4631,4632 /) ! index up to 292 END MODULE gckpp_JacobianSP diff --git a/KPP/fullchem/gckpp_LinearAlgebra.F90 b/KPP/fullchem/gckpp_LinearAlgebra.F90 index 67cc7c5c7..c74c948e8 100644 --- a/KPP/fullchem/gckpp_LinearAlgebra.F90 +++ b/KPP/fullchem/gckpp_LinearAlgebra.F90 @@ -2,7 +2,7 @@ ! ! Linear Algebra Data and Routines File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) @@ -648,1340 +648,1356 @@ SUBROUTINE KppSolve ( JVS, X ) ! X - Vector for variables REAL(kind=dp) :: X(NVAR) -IF (DO_SLV(90)) & - X(90) = X(90)-JVS(582)*X(38)-JVS(583)*X(40)-JVS(584)*X(47) -IF (DO_SLV(99)) & - X(99) = X(99)-JVS(634)*X(76)-JVS(635)*X(77) +IF (DO_SLV(92)) & + X(92) = X(92)-JVS(618)*X(42)-JVS(619)*X(44)-JVS(620)*X(49) +IF (DO_SLV(101)) & + X(101) = X(101)-JVS(670)*X(79)-JVS(671)*X(80) IF (DO_SLV(103)) & - X(103) = X(103)-JVS(652)*X(72) -IF (DO_SLV(105)) & - X(105) = X(105)-JVS(665)*X(95) -IF (DO_SLV(109)) & - X(109) = X(109)-JVS(687)*X(76)-JVS(688)*X(77) -IF (DO_SLV(117)) & - X(117) = X(117)-JVS(726)*X(60) -IF (DO_SLV(119)) & - X(119) = X(119)-JVS(735)*X(85) -IF (DO_SLV(138)) & - X(138) = X(138)-JVS(854)*X(109)-JVS(855)*X(117) -IF (DO_SLV(140)) & - X(140) = X(140)-JVS(866)*X(56) -IF (DO_SLV(145)) & - X(145) = X(145)-JVS(896)*X(76)-JVS(897)*X(77)-JVS(898)*X(109) + X(103) = X(103)-JVS(679)*X(75) +IF (DO_SLV(107)) & + X(107) = X(107)-JVS(700)*X(97) +IF (DO_SLV(115)) & + X(115) = X(115)-JVS(740)*X(79)-JVS(741)*X(80) +IF (DO_SLV(118)) & + X(118) = X(118)-JVS(757)*X(64) +IF (DO_SLV(122)) & + X(122) = X(122)-JVS(776)*X(86) +IF (DO_SLV(142)) & + X(142) = X(142)-JVS(901)*X(115)-JVS(902)*X(118) +IF (DO_SLV(143)) & + X(143) = X(143)-JVS(907)*X(60) IF (DO_SLV(148)) & - X(148) = X(148)-JVS(913)*X(137) + X(148) = X(148)-JVS(937)*X(79)-JVS(938)*X(80)-JVS(939)*X(115) IF (DO_SLV(152)) & - X(152) = X(152)-JVS(932)*X(106)-JVS(933)*X(122) -IF (DO_SLV(155)) & - X(155) = X(155)-JVS(958)*X(60)-JVS(959)*X(76)-JVS(960)*X(77)-JVS(961)*X(117)-JVS(962)*X(138) + X(152) = X(152)-JVS(958)*X(140) IF (DO_SLV(156)) & - X(156) = X(156)-JVS(968)*X(105)-JVS(969)*X(109)-JVS(970)*X(117)-JVS(971)*X(138) + X(156) = X(156)-JVS(977)*X(109)-JVS(978)*X(125) IF (DO_SLV(159)) & - X(159) = X(159)-JVS(991)*X(139) -IF (DO_SLV(162)) & - X(162) = X(162)-JVS(1008)*X(136) -IF (DO_SLV(166)) & - X(166) = X(166)-JVS(1028)*X(115)-JVS(1029)*X(122) -IF (DO_SLV(168)) & - X(168) = X(168)-JVS(1044)*X(167) -IF (DO_SLV(170)) & - X(170) = X(170)-JVS(1062)*X(114)-JVS(1063)*X(124)-JVS(1064)*X(126)-JVS(1065)*X(127)-JVS(1066)*X(128)-JVS(1067)*X(136)& - &-JVS(1068)*X(137)-JVS(1069)*X(147)-JVS(1070)*X(153)-JVS(1071)*X(158)-JVS(1072)*X(161)-JVS(1073)*X(167) -IF (DO_SLV(171)) & - X(171) = X(171)-JVS(1087)*X(164) + X(159) = X(159)-JVS(1003)*X(64)-JVS(1004)*X(79)-JVS(1005)*X(80)-JVS(1006)*X(118)-JVS(1007)*X(142) +IF (DO_SLV(160)) & + X(160) = X(160)-JVS(1013)*X(107)-JVS(1014)*X(115)-JVS(1015)*X(118)-JVS(1016)*X(142) +IF (DO_SLV(164)) & + X(164) = X(164)-JVS(1042)*X(141) +IF (DO_SLV(167)) & + X(167) = X(167)-JVS(1058)*X(139) +IF (DO_SLV(169)) & + X(169) = X(169)-JVS(1069)*X(117)-JVS(1070)*X(125) +IF (DO_SLV(172)) & + X(172) = X(172)-JVS(1089)*X(171) +IF (DO_SLV(174)) & + X(174) = X(174)-JVS(1107)*X(116)-JVS(1108)*X(127)-JVS(1109)*X(129)-JVS(1110)*X(130)-JVS(1111)*X(131)-JVS(1112)*X(139)& + &-JVS(1113)*X(140)-JVS(1114)*X(151)-JVS(1115)*X(157)-JVS(1116)*X(162)-JVS(1117)*X(165)-JVS(1118)*X(171) IF (DO_SLV(175)) & - X(175) = X(175)-JVS(1126)*X(75)-JVS(1127)*X(113) -IF (DO_SLV(176)) & - X(176) = X(176)-JVS(1135)*X(67)-JVS(1136)*X(95)-JVS(1137)*X(99) -IF (DO_SLV(178)) & - X(178) = X(178)-JVS(1151)*X(60)-JVS(1152)*X(76)-JVS(1153)*X(77)-JVS(1154)*X(109)-JVS(1155)*X(117)-JVS(1156)*X(138) + X(175) = X(175)-JVS(1132)*X(166) +IF (DO_SLV(177)) & + X(177) = X(177)-JVS(1150)*X(149) IF (DO_SLV(179)) & - X(179) = X(179)-JVS(1165)*X(153)-JVS(1166)*X(167) + X(179) = X(179)-JVS(1172)*X(76)-JVS(1173)*X(120) IF (DO_SLV(180)) & - X(180) = X(180)-JVS(1172)*X(158)-JVS(1173)*X(161) -IF (DO_SLV(181)) & - X(181) = X(181)-JVS(1179)*X(115)-JVS(1180)*X(122)-JVS(1181)*X(130)-JVS(1182)*X(160) + X(180) = X(180)-JVS(1181)*X(70)-JVS(1182)*X(97)-JVS(1183)*X(101) IF (DO_SLV(182)) & - X(182) = X(182)-JVS(1196)*X(167) + X(182) = X(182)-JVS(1197)*X(157)-JVS(1198)*X(171) IF (DO_SLV(183)) & - X(183) = X(183)-JVS(1202)*X(153)-JVS(1203)*X(158) + X(183) = X(183)-JVS(1204)*X(162)-JVS(1205)*X(165) IF (DO_SLV(184)) & - X(184) = X(184)-JVS(1210)*X(161) + X(184) = X(184)-JVS(1211)*X(64)-JVS(1212)*X(79)-JVS(1213)*X(80)-JVS(1214)*X(115)-JVS(1215)*X(118)-JVS(1216)*X(142) IF (DO_SLV(185)) & - X(185) = X(185)-JVS(1216)*X(147) + X(185) = X(185)-JVS(1225)*X(117)-JVS(1226)*X(125)-JVS(1227)*X(132)-JVS(1228)*X(163) +IF (DO_SLV(186)) & + X(186) = X(186)-JVS(1242)*X(171) IF (DO_SLV(187)) & - X(187) = X(187)-JVS(1229)*X(67)-JVS(1230)*X(99)-JVS(1231)*X(105)-JVS(1232)*X(156)-JVS(1233)*X(176) + X(187) = X(187)-JVS(1248)*X(157)-JVS(1249)*X(162) IF (DO_SLV(188)) & - X(188) = X(188)-JVS(1242)*X(58)-JVS(1243)*X(59)-JVS(1244)*X(135)-JVS(1245)*X(144) + X(188) = X(188)-JVS(1256)*X(165) IF (DO_SLV(189)) & - X(189) = X(189)-JVS(1263)*X(161)-JVS(1264)*X(167) -IF (DO_SLV(190)) & - X(190) = X(190)-JVS(1274)*X(114)-JVS(1275)*X(158)-JVS(1276)*X(161)-JVS(1277)*X(167) + X(189) = X(189)-JVS(1262)*X(151) +IF (DO_SLV(191)) & + X(191) = X(191)-JVS(1275)*X(70)-JVS(1276)*X(101)-JVS(1277)*X(107)-JVS(1278)*X(160)-JVS(1279)*X(180) IF (DO_SLV(192)) & - X(192) = X(192)-JVS(1294)*X(103) + X(192) = X(192)-JVS(1288)*X(165)-JVS(1289)*X(171) IF (DO_SLV(193)) & - X(193) = X(193)-JVS(1308)*X(161)-JVS(1309)*X(180)-JVS(1310)*X(185) + X(193) = X(193)-JVS(1299)*X(62)-JVS(1300)*X(63)-JVS(1301)*X(138)-JVS(1302)*X(147) IF (DO_SLV(194)) & - X(194) = X(194)-JVS(1324)*X(111)-JVS(1325)*X(143)-JVS(1326)*X(146)-JVS(1327)*X(164)-JVS(1328)*X(171)-JVS(1329)*X(185) -IF (DO_SLV(195)) & - X(195) = X(195)-JVS(1346)*X(142)-JVS(1347)*X(162)-JVS(1348)*X(184) + X(194) = X(194)-JVS(1320)*X(116)-JVS(1321)*X(162)-JVS(1322)*X(165)-JVS(1323)*X(171) +IF (DO_SLV(196)) & + X(196) = X(196)-JVS(1340)*X(165)-JVS(1341)*X(183)-JVS(1342)*X(189) IF (DO_SLV(197)) & - X(197) = X(197)-JVS(1373)*X(111) + X(197) = X(197)-JVS(1356)*X(103) +IF (DO_SLV(198)) & + X(198) = X(198)-JVS(1370)*X(113)-JVS(1371)*X(146)-JVS(1372)*X(150)-JVS(1373)*X(166)-JVS(1374)*X(175)-JVS(1375)*X(189) IF (DO_SLV(200)) & - X(200) = X(200)-JVS(1396)*X(141)-JVS(1397)*X(182) + X(200) = X(200)-JVS(1404)*X(145)-JVS(1405)*X(167)-JVS(1406)*X(188) IF (DO_SLV(201)) & - X(201) = X(201)-JVS(1407)*X(142)-JVS(1408)*X(184) -IF (DO_SLV(202)) & - X(202) = X(202)-JVS(1418)*X(139)-JVS(1419)*X(179)-JVS(1420)*X(180)-JVS(1421)*X(183)-JVS(1422)*X(190) -IF (DO_SLV(203)) & - X(203) = X(203)-JVS(1433)*X(133)-JVS(1434)*X(149) + X(201) = X(201)-JVS(1419)*X(113) IF (DO_SLV(204)) & - X(204) = X(204)-JVS(1443)*X(110) + X(204) = X(204)-JVS(1442)*X(144)-JVS(1443)*X(186) IF (DO_SLV(205)) & - X(205) = X(205)-JVS(1453)*X(143)-JVS(1454)*X(146)-JVS(1455)*X(163)-JVS(1456)*X(185) + X(205) = X(205)-JVS(1453)*X(145)-JVS(1454)*X(188) IF (DO_SLV(206)) & - X(206) = X(206)-JVS(1470)*X(109)-JVS(1471)*X(117)-JVS(1472)*X(138)-JVS(1473)*X(156)-JVS(1474)*X(176)-JVS(1475)*X(187) + X(206) = X(206)-JVS(1464)*X(141)-JVS(1465)*X(182)-JVS(1466)*X(183)-JVS(1467)*X(187)-JVS(1468)*X(194) IF (DO_SLV(207)) & - X(207) = X(207)-JVS(1484)*X(54)-JVS(1485)*X(83)-JVS(1486)*X(84)-JVS(1487)*X(133)-JVS(1488)*X(145)-JVS(1489)*X(149)& - &-JVS(1490)*X(155)-JVS(1491)*X(160)-JVS(1492)*X(165)-JVS(1493)*X(182)-JVS(1494)*X(184)-JVS(1495)*X(203)& - &-JVS(1496)*X(206) + X(207) = X(207)-JVS(1479)*X(136)-JVS(1480)*X(153) IF (DO_SLV(208)) & - X(208) = X(208)-JVS(1519)*X(150)-JVS(1520)*X(151)-JVS(1521)*X(165)-JVS(1522)*X(191) + X(208) = X(208)-JVS(1489)*X(146)-JVS(1490)*X(150)-JVS(1491)*X(168)-JVS(1492)*X(189) IF (DO_SLV(209)) & - X(209) = X(209)-JVS(1539)*X(148)-JVS(1540)*X(162)-JVS(1541)*X(163)-JVS(1542)*X(164)-JVS(1543)*X(185)-JVS(1544)*X(190) + X(209) = X(209)-JVS(1506)*X(112) +IF (DO_SLV(210)) & + X(210) = X(210)-JVS(1516)*X(115)-JVS(1517)*X(118)-JVS(1518)*X(142)-JVS(1519)*X(160)-JVS(1520)*X(180)-JVS(1521)*X(191) IF (DO_SLV(211)) & - X(211) = X(211)-JVS(1564)*X(150)-JVS(1565)*X(151)-JVS(1566)*X(165) + X(211) = X(211)-JVS(1530)*X(58)-JVS(1531)*X(85)-JVS(1532)*X(105)-JVS(1533)*X(136)-JVS(1534)*X(148)-JVS(1535)*X(153)& + &-JVS(1536)*X(159)-JVS(1537)*X(163)-JVS(1538)*X(170)-JVS(1539)*X(186)-JVS(1540)*X(188)-JVS(1541)*X(207)& + &-JVS(1542)*X(210) IF (DO_SLV(212)) & - X(212) = X(212)-JVS(1576)*X(150)-JVS(1577)*X(151)-JVS(1578)*X(165)-JVS(1579)*X(211) + X(212) = X(212)-JVS(1565)*X(154)-JVS(1566)*X(155)-JVS(1567)*X(170)-JVS(1568)*X(195) IF (DO_SLV(213)) & - X(213) = X(213)-JVS(1588)*X(157) -IF (DO_SLV(214)) & - X(214) = X(214)-JVS(1598)*X(175)-JVS(1599)*X(197)-JVS(1600)*X(204)-JVS(1601)*X(212)-JVS(1602)*X(213) + X(213) = X(213)-JVS(1585)*X(152)-JVS(1586)*X(166)-JVS(1587)*X(167)-JVS(1588)*X(168)-JVS(1589)*X(189)-JVS(1590)*X(194) IF (DO_SLV(215)) & - X(215) = X(215)-JVS(1626)*X(145)-JVS(1627)*X(191)-JVS(1628)*X(197)-JVS(1629)*X(204)-JVS(1630)*X(213) + X(215) = X(215)-JVS(1610)*X(154)-JVS(1611)*X(155)-JVS(1612)*X(170) +IF (DO_SLV(216)) & + X(216) = X(216)-JVS(1622)*X(154)-JVS(1623)*X(155)-JVS(1624)*X(170)-JVS(1625)*X(215) IF (DO_SLV(217)) & - X(217) = X(217)-JVS(1661)*X(177) + X(217) = X(217)-JVS(1634)*X(161) IF (DO_SLV(218)) & - X(218) = X(218)-JVS(1669)*X(54)-JVS(1670)*X(60)-JVS(1671)*X(76)-JVS(1672)*X(77)-JVS(1673)*X(117)-JVS(1674)*X(152)& - &-JVS(1675)*X(155)-JVS(1676)*X(159)-JVS(1677)*X(160)-JVS(1678)*X(168)-JVS(1679)*X(179)-JVS(1680)*X(180)& - &-JVS(1681)*X(181)-JVS(1682)*X(182)-JVS(1683)*X(183)-JVS(1684)*X(184)-JVS(1685)*X(185)-JVS(1686)*X(202)& - &-JVS(1687)*X(206)-JVS(1688)*X(210)-JVS(1689)*X(216)-JVS(1690)*X(217) + X(218) = X(218)-JVS(1644)*X(179)-JVS(1645)*X(201)-JVS(1646)*X(209)-JVS(1647)*X(216)-JVS(1648)*X(217) IF (DO_SLV(219)) & - X(219) = X(219)-JVS(1711)*X(86)-JVS(1712)*X(93)-JVS(1713)*X(198) + X(219) = X(219)-JVS(1672)*X(148)-JVS(1673)*X(195)-JVS(1674)*X(201)-JVS(1675)*X(209)-JVS(1676)*X(217) IF (DO_SLV(221)) & - X(221) = X(221)-JVS(1732)*X(165) + X(221) = X(221)-JVS(1707)*X(87)-JVS(1708)*X(95)-JVS(1709)*X(202) IF (DO_SLV(222)) & - X(222) = X(222)-JVS(1741)*X(118)-JVS(1742)*X(150)-JVS(1743)*X(151)-JVS(1744)*X(174)-JVS(1745)*X(198)-JVS(1746)*X(211)& - &-JVS(1747)*X(212)-JVS(1748)*X(221) + X(222) = X(222)-JVS(1723)*X(181) IF (DO_SLV(223)) & - X(223) = X(223)-JVS(1761)*X(40)-JVS(1762)*X(47)-JVS(1763)*X(90) -IF (DO_SLV(224)) & - X(224) = X(224)-JVS(1775)*X(122)-JVS(1776)*X(127)-JVS(1777)*X(128)-JVS(1778)*X(136)-JVS(1779)*X(137)-JVS(1780)*X(153)& - &-JVS(1781)*X(158)-JVS(1782)*X(189)-JVS(1783)*X(210)-JVS(1784)*X(216) + X(223) = X(223)-JVS(1731)*X(58)-JVS(1732)*X(64)-JVS(1733)*X(79)-JVS(1734)*X(80)-JVS(1735)*X(118)-JVS(1736)*X(156)& + &-JVS(1737)*X(159)-JVS(1738)*X(163)-JVS(1739)*X(164)-JVS(1740)*X(172)-JVS(1741)*X(182)-JVS(1742)*X(183)& + &-JVS(1743)*X(185)-JVS(1744)*X(186)-JVS(1745)*X(187)-JVS(1746)*X(188)-JVS(1747)*X(189)-JVS(1748)*X(206)& + &-JVS(1749)*X(210)-JVS(1750)*X(214)-JVS(1751)*X(220)-JVS(1752)*X(222) IF (DO_SLV(225)) & - X(225) = X(225)-JVS(1795)*X(122)-JVS(1796)*X(127)-JVS(1797)*X(128)-JVS(1798)*X(136)-JVS(1799)*X(137)-JVS(1800)*X(153)& - &-JVS(1801)*X(158)-JVS(1802)*X(189)-JVS(1803)*X(210)-JVS(1804)*X(216)-JVS(1805)*X(224) + X(225) = X(225)-JVS(1778)*X(170) IF (DO_SLV(226)) & - X(226) = X(226)-JVS(1815)*X(126)-JVS(1816)*X(153)-JVS(1817)*X(159)-JVS(1818)*X(167)-JVS(1819)*X(179)-JVS(1820)*X(180)& - &-JVS(1821)*X(182)-JVS(1822)*X(183)-JVS(1823)*X(189)-JVS(1824)*X(200)-JVS(1825)*X(209)-JVS(1826)*X(210)& - &-JVS(1827)*X(216)-JVS(1828)*X(217)-JVS(1829)*X(220)-JVS(1830)*X(224)-JVS(1831)*X(225) + X(226) = X(226)-JVS(1787)*X(119)-JVS(1788)*X(154)-JVS(1789)*X(155)-JVS(1790)*X(178)-JVS(1791)*X(202)-JVS(1792)*X(215)& + &-JVS(1793)*X(216)-JVS(1794)*X(225) IF (DO_SLV(227)) & - X(227) = X(227)-JVS(1848)*X(124)-JVS(1849)*X(158)-JVS(1850)*X(159)-JVS(1851)*X(161)-JVS(1852)*X(179)-JVS(1853)*X(180)& - &-JVS(1854)*X(183)-JVS(1855)*X(184)-JVS(1856)*X(189)-JVS(1857)*X(201)-JVS(1858)*X(202)-JVS(1859)*X(209)& - &-JVS(1860)*X(210)-JVS(1861)*X(216)-JVS(1862)*X(217)-JVS(1863)*X(220)-JVS(1864)*X(224)-JVS(1865)*X(225) + X(227) = X(227)-JVS(1807)*X(44)-JVS(1808)*X(49)-JVS(1809)*X(92) IF (DO_SLV(228)) & - X(228) = X(228)-JVS(1882)*X(76)-JVS(1883)*X(77)-JVS(1884)*X(84)-JVS(1885)*X(133)-JVS(1886)*X(145)-JVS(1887)*X(149)& - &-JVS(1888)*X(152)-JVS(1889)*X(159)-JVS(1890)*X(160)-JVS(1891)*X(161)-JVS(1892)*X(167)-JVS(1893)*X(170)& - &-JVS(1894)*X(179)-JVS(1895)*X(180)-JVS(1896)*X(181)-JVS(1897)*X(182)-JVS(1898)*X(183)-JVS(1899)*X(184)& - &-JVS(1900)*X(189)-JVS(1901)*X(193)-JVS(1902)*X(194)-JVS(1903)*X(197)-JVS(1904)*X(200)-JVS(1905)*X(201)& - &-JVS(1906)*X(202)-JVS(1907)*X(203)-JVS(1908)*X(209)-JVS(1909)*X(210)-JVS(1910)*X(216)-JVS(1911)*X(217)& - &-JVS(1912)*X(220)-JVS(1913)*X(224)-JVS(1914)*X(225)-JVS(1915)*X(226)-JVS(1916)*X(227) + X(228) = X(228)-JVS(1821)*X(125)-JVS(1822)*X(130)-JVS(1823)*X(131)-JVS(1824)*X(139)-JVS(1825)*X(140)-JVS(1826)*X(157)& + &-JVS(1827)*X(162)-JVS(1828)*X(192)-JVS(1829)*X(214)-JVS(1830)*X(220) IF (DO_SLV(229)) & - X(229) = X(229)-JVS(1943)*X(123)-JVS(1944)*X(147)-JVS(1945)*X(177) + X(229) = X(229)-JVS(1841)*X(125)-JVS(1842)*X(130)-JVS(1843)*X(131)-JVS(1844)*X(139)-JVS(1845)*X(140)-JVS(1846)*X(157)& + &-JVS(1847)*X(162)-JVS(1848)*X(192)-JVS(1849)*X(214)-JVS(1850)*X(220)-JVS(1851)*X(228) IF (DO_SLV(230)) & - X(230) = X(230)-JVS(1957)*X(75)-JVS(1958)*X(220) + X(230) = X(230)-JVS(1861)*X(129)-JVS(1862)*X(157)-JVS(1863)*X(164)-JVS(1864)*X(171)-JVS(1865)*X(182)-JVS(1866)*X(183)& + &-JVS(1867)*X(186)-JVS(1868)*X(187)-JVS(1869)*X(192)-JVS(1870)*X(204)-JVS(1871)*X(213)-JVS(1872)*X(214)& + &-JVS(1873)*X(220)-JVS(1874)*X(222)-JVS(1875)*X(224)-JVS(1876)*X(228)-JVS(1877)*X(229) IF (DO_SLV(231)) & - X(231) = X(231)-JVS(1972)*X(169) + X(231) = X(231)-JVS(1894)*X(127)-JVS(1895)*X(162)-JVS(1896)*X(164)-JVS(1897)*X(165)-JVS(1898)*X(182)-JVS(1899)*X(183)& + &-JVS(1900)*X(187)-JVS(1901)*X(188)-JVS(1902)*X(192)-JVS(1903)*X(205)-JVS(1904)*X(206)-JVS(1905)*X(213)& + &-JVS(1906)*X(214)-JVS(1907)*X(220)-JVS(1908)*X(222)-JVS(1909)*X(224)-JVS(1910)*X(228)-JVS(1911)*X(229) IF (DO_SLV(232)) & - X(232) = X(232)-JVS(1984)*X(64)-JVS(1985)*X(102)-JVS(1986)*X(113)-JVS(1987)*X(138)-JVS(1988)*X(139)-JVS(1989)*X(143)& - &-JVS(1990)*X(145)-JVS(1991)*X(155)-JVS(1992)*X(159)-JVS(1993)*X(162)-JVS(1994)*X(164)-JVS(1995)*X(175)& - &-JVS(1996)*X(179)-JVS(1997)*X(180)-JVS(1998)*X(183)-JVS(1999)*X(200)-JVS(2000)*X(202)-JVS(2001)*X(206)& - &-JVS(2002)*X(209)-JVS(2003)*X(210)-JVS(2004)*X(216)-JVS(2005)*X(217)-JVS(2006)*X(220)-JVS(2007)*X(224)& - &-JVS(2008)*X(225)-JVS(2009)*X(226)-JVS(2010)*X(229) + X(232) = X(232)-JVS(1928)*X(126)-JVS(1929)*X(151)-JVS(1930)*X(181) IF (DO_SLV(233)) & - X(233) = X(233)-JVS(2030)*X(92)-JVS(2031)*X(121)-JVS(2032)*X(198)-JVS(2033)*X(222) + X(233) = X(233)-JVS(1942)*X(79)-JVS(1943)*X(80)-JVS(1944)*X(105)-JVS(1945)*X(136)-JVS(1946)*X(148)-JVS(1947)*X(153)& + &-JVS(1948)*X(156)-JVS(1949)*X(163)-JVS(1950)*X(164)-JVS(1951)*X(165)-JVS(1952)*X(171)-JVS(1953)*X(174)& + &-JVS(1954)*X(182)-JVS(1955)*X(183)-JVS(1956)*X(185)-JVS(1957)*X(186)-JVS(1958)*X(187)-JVS(1959)*X(188)& + &-JVS(1960)*X(192)-JVS(1961)*X(196)-JVS(1962)*X(198)-JVS(1963)*X(201)-JVS(1964)*X(204)-JVS(1965)*X(205)& + &-JVS(1966)*X(206)-JVS(1967)*X(207)-JVS(1968)*X(213)-JVS(1969)*X(214)-JVS(1970)*X(220)-JVS(1971)*X(222)& + &-JVS(1972)*X(224)-JVS(1973)*X(228)-JVS(1974)*X(229)-JVS(1975)*X(230)-JVS(1976)*X(231)-JVS(1977)*X(232) IF (DO_SLV(234)) & - X(234) = X(234)-JVS(2050)*X(150)-JVS(2051)*X(151) + X(234) = X(234)-JVS(2003)*X(76)-JVS(2004)*X(224) IF (DO_SLV(235)) & - X(235) = X(235)-JVS(2060)*X(108)-JVS(2061)*X(165)-JVS(2062)*X(198)-JVS(2063)*X(213)-JVS(2064)*X(222)-JVS(2065)*X(234) + X(235) = X(235)-JVS(2018)*X(173) IF (DO_SLV(236)) & - X(236) = X(236)-JVS(2081)*X(123)-JVS(2082)*X(147)-JVS(2083)*X(210)-JVS(2084)*X(216) + X(236) = X(236)-JVS(2030)*X(68)-JVS(2031)*X(108)-JVS(2032)*X(120)-JVS(2033)*X(141)-JVS(2034)*X(142)-JVS(2035)*X(146)& + &-JVS(2036)*X(148)-JVS(2037)*X(159)-JVS(2038)*X(164)-JVS(2039)*X(166)-JVS(2040)*X(167)-JVS(2041)*X(179)& + &-JVS(2042)*X(182)-JVS(2043)*X(183)-JVS(2044)*X(187)-JVS(2045)*X(204)-JVS(2046)*X(206)-JVS(2047)*X(210)& + &-JVS(2048)*X(213)-JVS(2049)*X(214)-JVS(2050)*X(220)-JVS(2051)*X(222)-JVS(2052)*X(224)-JVS(2053)*X(228)& + &-JVS(2054)*X(229)-JVS(2055)*X(230)-JVS(2056)*X(232) IF (DO_SLV(237)) & - X(237) = X(237)-JVS(2097)*X(141)-JVS(2098)*X(148)-JVS(2099)*X(163)-JVS(2100)*X(182)-JVS(2101)*X(185)-JVS(2102)*X(200)& - &-JVS(2103)*X(210)-JVS(2104)*X(217)-JVS(2105)*X(220)-JVS(2106)*X(229)-JVS(2107)*X(236) + X(237) = X(237)-JVS(2076)*X(94)-JVS(2077)*X(124)-JVS(2078)*X(202)-JVS(2079)*X(226) IF (DO_SLV(238)) & - X(238) = X(238)-JVS(2125)*X(147)-JVS(2126)*X(148)-JVS(2127)*X(162)-JVS(2128)*X(163)-JVS(2129)*X(164)-JVS(2130)*X(177)& - &-JVS(2131)*X(179)-JVS(2132)*X(180)-JVS(2133)*X(183)-JVS(2134)*X(185)-JVS(2135)*X(210)-JVS(2136)*X(216)& - &-JVS(2137)*X(217)-JVS(2138)*X(229) + X(238) = X(238)-JVS(2096)*X(154)-JVS(2097)*X(155) IF (DO_SLV(239)) & - X(239) = X(239)-JVS(2151)*X(143)-JVS(2152)*X(148)-JVS(2153)*X(162)-JVS(2154)*X(163)-JVS(2155)*X(164)-JVS(2156)*X(185)& - &-JVS(2157)*X(210)-JVS(2158)*X(216)-JVS(2159)*X(217)-JVS(2160)*X(229)-JVS(2161)*X(238) + X(239) = X(239)-JVS(2106)*X(110)-JVS(2107)*X(170)-JVS(2108)*X(202)-JVS(2109)*X(217)-JVS(2110)*X(226)-JVS(2111)*X(238) IF (DO_SLV(240)) & - X(240) = X(240)-JVS(2173)*X(177)-JVS(2174)*X(220) + X(240) = X(240)-JVS(2127)*X(126)-JVS(2128)*X(151)-JVS(2129)*X(214)-JVS(2130)*X(220) IF (DO_SLV(241)) & - X(241) = X(241)-JVS(2185)*X(147)-JVS(2186)*X(220)-JVS(2187)*X(240) + X(241) = X(241)-JVS(2143)*X(144)-JVS(2144)*X(152)-JVS(2145)*X(168)-JVS(2146)*X(186)-JVS(2147)*X(189)-JVS(2148)*X(204)& + &-JVS(2149)*X(214)-JVS(2150)*X(222)-JVS(2151)*X(224)-JVS(2152)*X(232)-JVS(2153)*X(240) IF (DO_SLV(242)) & - X(242) = X(242)-JVS(2197)*X(147)-JVS(2198)*X(153)-JVS(2199)*X(167)-JVS(2200)*X(220)-JVS(2201)*X(241) + X(242) = X(242)-JVS(2171)*X(151)-JVS(2172)*X(152)-JVS(2173)*X(166)-JVS(2174)*X(167)-JVS(2175)*X(168)-JVS(2176)*X(181)& + &-JVS(2177)*X(182)-JVS(2178)*X(183)-JVS(2179)*X(187)-JVS(2180)*X(189)-JVS(2181)*X(214)-JVS(2182)*X(220)& + &-JVS(2183)*X(222)-JVS(2184)*X(232) IF (DO_SLV(243)) & - X(243) = X(243)-JVS(2212)*X(147)-JVS(2213)*X(158)-JVS(2214)*X(161)-JVS(2215)*X(220)-JVS(2216)*X(241)-JVS(2217)*X(242) + X(243) = X(243)-JVS(2197)*X(146)-JVS(2198)*X(152)-JVS(2199)*X(166)-JVS(2200)*X(167)-JVS(2201)*X(168)-JVS(2202)*X(189)& + &-JVS(2203)*X(214)-JVS(2204)*X(220)-JVS(2205)*X(222)-JVS(2206)*X(232)-JVS(2207)*X(242) IF (DO_SLV(244)) & - X(244) = X(244)-JVS(2227)*X(76)-JVS(2228)*X(77)-JVS(2229)*X(120)-JVS(2230)*X(126)-JVS(2231)*X(136)-JVS(2232)*X(153)& - &-JVS(2233)*X(167)-JVS(2234)*X(177)-JVS(2235)*X(182)-JVS(2236)*X(220)-JVS(2237)*X(239)-JVS(2238)*X(240)& - &-JVS(2239)*X(241)-JVS(2240)*X(242)-JVS(2241)*X(243) + X(244) = X(244)-JVS(2219)*X(151)-JVS(2220)*X(162)-JVS(2221)*X(165)-JVS(2222)*X(224) IF (DO_SLV(245)) & - X(245) = X(245)-JVS(2251)*X(195)-JVS(2252)*X(201)-JVS(2253)*X(220)-JVS(2254)*X(236)-JVS(2255)*X(238)-JVS(2256)*X(239)& - &-JVS(2257)*X(240)-JVS(2258)*X(241)-JVS(2259)*X(242)-JVS(2260)*X(243) + X(245) = X(245)-JVS(2233)*X(151)-JVS(2234)*X(157)-JVS(2235)*X(171)-JVS(2236)*X(224)-JVS(2237)*X(244) IF (DO_SLV(246)) & - X(246) = X(246)-JVS(2272)*X(110)-JVS(2273)*X(130)-JVS(2274)*X(131)-JVS(2275)*X(133)-JVS(2276)*X(139)-JVS(2277)*X(149)& - &-JVS(2278)*X(159)-JVS(2279)*X(162)-JVS(2280)*X(163)-JVS(2281)*X(170)-JVS(2282)*X(174)-JVS(2283)*X(179)& - &-JVS(2284)*X(180)-JVS(2285)*X(182)-JVS(2286)*X(183)-JVS(2287)*X(184)-JVS(2288)*X(190)-JVS(2289)*X(195)& - &-JVS(2290)*X(196)-JVS(2291)*X(201)-JVS(2292)*X(202)-JVS(2293)*X(203)-JVS(2294)*X(204)-JVS(2295)*X(210)& - &-JVS(2296)*X(211)-JVS(2297)*X(212)-JVS(2298)*X(216)-JVS(2299)*X(217)-JVS(2300)*X(220)-JVS(2301)*X(221)& - &-JVS(2302)*X(224)-JVS(2303)*X(225)-JVS(2304)*X(227)-JVS(2305)*X(229)-JVS(2306)*X(234)-JVS(2307)*X(236)& - &-JVS(2308)*X(238)-JVS(2309)*X(239)-JVS(2310)*X(240)-JVS(2311)*X(241)-JVS(2312)*X(242)-JVS(2313)*X(243)& - &-JVS(2314)*X(245) + X(246) = X(246)-JVS(2247)*X(151)-JVS(2248)*X(224) IF (DO_SLV(247)) & - X(247) = X(247)-JVS(2329)*X(116)-JVS(2330)*X(124)-JVS(2331)*X(137)-JVS(2332)*X(158)-JVS(2333)*X(161)-JVS(2334)*X(165)& - &-JVS(2335)*X(177)-JVS(2336)*X(184)-JVS(2337)*X(220)-JVS(2338)*X(221)-JVS(2339)*X(239)-JVS(2340)*X(240)& - &-JVS(2341)*X(241)-JVS(2342)*X(242)-JVS(2343)*X(243) + X(247) = X(247)-JVS(2259)*X(181)-JVS(2260)*X(224)-JVS(2261)*X(246) IF (DO_SLV(248)) & - X(248) = X(248)-JVS(2353)*X(193)-JVS(2354)*X(217)-JVS(2355)*X(219)-JVS(2356)*X(220)-JVS(2357)*X(227)-JVS(2358)*X(234)& - &-JVS(2359)*X(236)-JVS(2360)*X(238)-JVS(2361)*X(239)-JVS(2362)*X(240)-JVS(2363)*X(241)-JVS(2364)*X(242)& - &-JVS(2365)*X(243)-JVS(2366)*X(247) + X(248) = X(248)-JVS(2271)*X(79)-JVS(2272)*X(80)-JVS(2273)*X(121)-JVS(2274)*X(129)-JVS(2275)*X(139)-JVS(2276)*X(157)& + &-JVS(2277)*X(171)-JVS(2278)*X(181)-JVS(2279)*X(186)-JVS(2280)*X(224)-JVS(2281)*X(243)-JVS(2282)*X(244)& + &-JVS(2283)*X(245)-JVS(2284)*X(246)-JVS(2285)*X(247) IF (DO_SLV(249)) & - X(249) = X(249)-JVS(2382)*X(150)-JVS(2383)*X(151)-JVS(2384)*X(165)-JVS(2385)*X(222)-JVS(2386)*X(234) + X(249) = X(249)-JVS(2295)*X(200)-JVS(2296)*X(205)-JVS(2297)*X(224)-JVS(2298)*X(240)-JVS(2299)*X(242)-JVS(2300)*X(243)& + &-JVS(2301)*X(244)-JVS(2302)*X(245)-JVS(2303)*X(246)-JVS(2304)*X(247) IF (DO_SLV(250)) & - X(250) = X(250)-JVS(2397)*X(49)-JVS(2398)*X(94)-JVS(2399)*X(145)-JVS(2400)*X(155)-JVS(2401)*X(206)-JVS(2402)*X(222)& - &-JVS(2403)*X(234)-JVS(2404)*X(244)-JVS(2405)*X(249) + X(250) = X(250)-JVS(2316)*X(112)-JVS(2317)*X(132)-JVS(2318)*X(134)-JVS(2319)*X(136)-JVS(2320)*X(141)-JVS(2321)*X(153)& + &-JVS(2322)*X(164)-JVS(2323)*X(167)-JVS(2324)*X(168)-JVS(2325)*X(174)-JVS(2326)*X(178)-JVS(2327)*X(182)& + &-JVS(2328)*X(183)-JVS(2329)*X(186)-JVS(2330)*X(187)-JVS(2331)*X(188)-JVS(2332)*X(194)-JVS(2333)*X(199)& + &-JVS(2334)*X(200)-JVS(2335)*X(205)-JVS(2336)*X(206)-JVS(2337)*X(207)-JVS(2338)*X(209)-JVS(2339)*X(214)& + &-JVS(2340)*X(215)-JVS(2341)*X(216)-JVS(2342)*X(220)-JVS(2343)*X(222)-JVS(2344)*X(224)-JVS(2345)*X(225)& + &-JVS(2346)*X(228)-JVS(2347)*X(229)-JVS(2348)*X(231)-JVS(2349)*X(232)-JVS(2350)*X(238)-JVS(2351)*X(240)& + &-JVS(2352)*X(242)-JVS(2353)*X(243)-JVS(2354)*X(244)-JVS(2355)*X(245)-JVS(2356)*X(246)-JVS(2357)*X(247)& + &-JVS(2358)*X(249) IF (DO_SLV(251)) & - X(251) = X(251)-JVS(2419)*X(198)-JVS(2420)*X(206)-JVS(2421)*X(249) + X(251) = X(251)-JVS(2373)*X(123)-JVS(2374)*X(127)-JVS(2375)*X(140)-JVS(2376)*X(162)-JVS(2377)*X(165)-JVS(2378)*X(170)& + &-JVS(2379)*X(181)-JVS(2380)*X(188)-JVS(2381)*X(224)-JVS(2382)*X(225)-JVS(2383)*X(243)-JVS(2384)*X(244)& + &-JVS(2385)*X(245)-JVS(2386)*X(246)-JVS(2387)*X(247) IF (DO_SLV(252)) & - X(252) = X(252)-JVS(2432)*X(91)-JVS(2433)*X(112)-JVS(2434)*X(118)-JVS(2435)*X(145)-JVS(2436)*X(221)-JVS(2437)*X(234)& - &-JVS(2438)*X(251) + X(252) = X(252)-JVS(2397)*X(196)-JVS(2398)*X(221)-JVS(2399)*X(222)-JVS(2400)*X(224)-JVS(2401)*X(231)-JVS(2402)*X(238)& + &-JVS(2403)*X(240)-JVS(2404)*X(242)-JVS(2405)*X(243)-JVS(2406)*X(244)-JVS(2407)*X(245)-JVS(2408)*X(246)& + &-JVS(2409)*X(247)-JVS(2410)*X(251) IF (DO_SLV(253)) & - X(253) = X(253)-JVS(2449)*X(93)-JVS(2450)*X(121)-JVS(2451)*X(198)-JVS(2452)*X(222)-JVS(2453)*X(234)-JVS(2454)*X(249)& - &-JVS(2455)*X(250)-JVS(2456)*X(251)-JVS(2457)*X(252) + X(253) = X(253)-JVS(2426)*X(170)-JVS(2427)*X(225)-JVS(2428)*X(248) IF (DO_SLV(254)) & - X(254) = X(254)-JVS(2470)*X(165)-JVS(2471)*X(221)-JVS(2472)*X(244) + X(254) = X(254)-JVS(2439)*X(154)-JVS(2440)*X(155)-JVS(2441)*X(170)-JVS(2442)*X(226)-JVS(2443)*X(238) IF (DO_SLV(255)) & - X(255) = X(255)-JVS(2483)*X(89)-JVS(2484)*X(91)-JVS(2485)*X(92)-JVS(2486)*X(111)-JVS(2487)*X(118)-JVS(2488)*X(145)& - &-JVS(2489)*X(150)-JVS(2490)*X(151)-JVS(2491)*X(154)-JVS(2492)*X(155)-JVS(2493)*X(196)-JVS(2494)*X(197)& - &-JVS(2495)*X(198)-JVS(2496)*X(204)-JVS(2497)*X(206)-JVS(2498)*X(211)-JVS(2499)*X(212)-JVS(2500)*X(221)& - &-JVS(2501)*X(233)-JVS(2502)*X(234)-JVS(2503)*X(249)-JVS(2504)*X(250)-JVS(2505)*X(251)-JVS(2506)*X(252)& - &-JVS(2507)*X(253)-JVS(2508)*X(254) + X(255) = X(255)-JVS(2454)*X(50)-JVS(2455)*X(106)-JVS(2456)*X(148)-JVS(2457)*X(159)-JVS(2458)*X(210)-JVS(2459)*X(226)& + &-JVS(2460)*X(238)-JVS(2461)*X(248)-JVS(2462)*X(254) IF (DO_SLV(256)) & - X(256) = X(256)-JVS(2520)*X(125)-JVS(2521)*X(172) + X(256) = X(256)-JVS(2476)*X(93)-JVS(2477)*X(114)-JVS(2478)*X(119)-JVS(2479)*X(148)-JVS(2480)*X(225)-JVS(2481)*X(238) IF (DO_SLV(257)) & - X(257) = X(257)-JVS(2538)*X(63)-JVS(2539)*X(66)-JVS(2540)*X(84)-JVS(2541)*X(104)-JVS(2542)*X(133)-JVS(2543)*X(149)& - &-JVS(2544)*X(152)-JVS(2545)*X(160)-JVS(2546)*X(166)-JVS(2547)*X(167)-JVS(2548)*X(178)-JVS(2549)*X(181)& - &-JVS(2550)*X(182)-JVS(2551)*X(184)-JVS(2552)*X(190)-JVS(2553)*X(193)-JVS(2554)*X(194)-JVS(2555)*X(197)& - &-JVS(2556)*X(200)-JVS(2557)*X(202)-JVS(2558)*X(203)-JVS(2559)*X(204)-JVS(2560)*X(205)-JVS(2561)*X(210)& - &-JVS(2562)*X(211)-JVS(2563)*X(212)-JVS(2564)*X(213)-JVS(2565)*X(216)-JVS(2566)*X(217)-JVS(2567)*X(219)& - &-JVS(2568)*X(220)-JVS(2569)*X(221)-JVS(2570)*X(222)-JVS(2571)*X(224)-JVS(2572)*X(225)-JVS(2573)*X(226)& - &-JVS(2574)*X(227)-JVS(2575)*X(228)-JVS(2576)*X(229)-JVS(2577)*X(233)-JVS(2578)*X(234)-JVS(2579)*X(235)& - &-JVS(2580)*X(236)-JVS(2581)*X(237)-JVS(2582)*X(238)-JVS(2583)*X(239)-JVS(2584)*X(240)-JVS(2585)*X(241)& - &-JVS(2586)*X(242)-JVS(2587)*X(243)-JVS(2588)*X(244)-JVS(2589)*X(245)-JVS(2590)*X(246)-JVS(2591)*X(247)& - &-JVS(2592)*X(248)-JVS(2593)*X(249)-JVS(2594)*X(250)-JVS(2595)*X(251)-JVS(2596)*X(252)-JVS(2597)*X(253)& - &-JVS(2598)*X(254)-JVS(2599)*X(255) + X(257) = X(257)-JVS(2492)*X(202)-JVS(2493)*X(210)-JVS(2494)*X(254)-JVS(2495)*X(256) IF (DO_SLV(258)) & - X(258) = X(258)-JVS(2611)*X(54)-JVS(2612)*X(60)-JVS(2613)*X(62)-JVS(2614)*X(68)-JVS(2615)*X(73)-JVS(2616)*X(76)& - &-JVS(2617)*X(77)-JVS(2618)*X(99)-JVS(2619)*X(100)-JVS(2620)*X(106)-JVS(2621)*X(122)-JVS(2622)*X(124)-JVS(2623)& - &*X(126)-JVS(2624)*X(130)-JVS(2625)*X(133)-JVS(2626)*X(145)-JVS(2627)*X(146)-JVS(2628)*X(149)-JVS(2629)*X(150)& - &-JVS(2630)*X(151)-JVS(2631)*X(152)-JVS(2632)*X(153)-JVS(2633)*X(155)-JVS(2634)*X(158)-JVS(2635)*X(160)& - &-JVS(2636)*X(161)-JVS(2637)*X(165)-JVS(2638)*X(166)-JVS(2639)*X(167)-JVS(2640)*X(168)-JVS(2641)*X(170)& - &-JVS(2642)*X(171)-JVS(2643)*X(179)-JVS(2644)*X(181)-JVS(2645)*X(182)-JVS(2646)*X(184)-JVS(2647)*X(185)& - &-JVS(2648)*X(189)-JVS(2649)*X(190)-JVS(2650)*X(191)-JVS(2651)*X(195)-JVS(2652)*X(200)-JVS(2653)*X(201)& - &-JVS(2654)*X(202)-JVS(2655)*X(203)-JVS(2656)*X(205)-JVS(2657)*X(206)-JVS(2658)*X(209)-JVS(2659)*X(210)& - &-JVS(2660)*X(216)-JVS(2661)*X(217)-JVS(2662)*X(218)-JVS(2663)*X(219)-JVS(2664)*X(220)-JVS(2665)*X(224)& - &-JVS(2666)*X(225)-JVS(2667)*X(226)-JVS(2668)*X(227)-JVS(2669)*X(228)-JVS(2670)*X(229)-JVS(2671)*X(230)& - &-JVS(2672)*X(232)-JVS(2673)*X(234)-JVS(2674)*X(236)-JVS(2675)*X(237)-JVS(2676)*X(238)-JVS(2677)*X(239)& - &-JVS(2678)*X(240)-JVS(2679)*X(241)-JVS(2680)*X(242)-JVS(2681)*X(243)-JVS(2682)*X(244)-JVS(2683)*X(245)& - &-JVS(2684)*X(246)-JVS(2685)*X(247)-JVS(2686)*X(248)-JVS(2687)*X(249)-JVS(2688)*X(251)-JVS(2689)*X(252)& - &-JVS(2690)*X(253)-JVS(2691)*X(254)-JVS(2692)*X(255)-JVS(2693)*X(257) + X(258) = X(258)-JVS(2506)*X(95)-JVS(2507)*X(124)-JVS(2508)*X(202)-JVS(2509)*X(226)-JVS(2510)*X(238)-JVS(2511)*X(254)& + &-JVS(2512)*X(255)-JVS(2513)*X(256)-JVS(2514)*X(257) +IF (DO_SLV(259)) & + X(259) = X(259)-JVS(2527)*X(91)-JVS(2528)*X(93)-JVS(2529)*X(94)-JVS(2530)*X(113)-JVS(2531)*X(119)-JVS(2532)*X(148)& + &-JVS(2533)*X(154)-JVS(2534)*X(155)-JVS(2535)*X(158)-JVS(2536)*X(159)-JVS(2537)*X(199)-JVS(2538)*X(201)& + &-JVS(2539)*X(202)-JVS(2540)*X(209)-JVS(2541)*X(210)-JVS(2542)*X(215)-JVS(2543)*X(216)-JVS(2544)*X(225)& + &-JVS(2545)*X(237)-JVS(2546)*X(238)-JVS(2547)*X(253)-JVS(2548)*X(254)-JVS(2549)*X(255)-JVS(2550)*X(256)& + &-JVS(2551)*X(257)-JVS(2552)*X(258) IF (DO_SLV(260)) & - X(260) = X(260)-JVS(2722)*X(41)-JVS(2723)*X(82)-JVS(2724)*X(96)-JVS(2725)*X(99)-JVS(2726)*X(109)-JVS(2727)*X(112)& - &-JVS(2728)*X(117)-JVS(2729)*X(131)-JVS(2730)*X(135)-JVS(2731)*X(136)-JVS(2732)*X(137)-JVS(2733)*X(138)& - &-JVS(2734)*X(144)-JVS(2735)*X(147)-JVS(2736)*X(157)-JVS(2737)*X(169)-JVS(2738)*X(171)-JVS(2739)*X(172)& - &-JVS(2740)*X(174)-JVS(2741)*X(177)-JVS(2742)*X(185)-JVS(2743)*X(195)-JVS(2744)*X(196)-JVS(2745)*X(198)& - &-JVS(2746)*X(201)-JVS(2747)*X(205)-JVS(2748)*X(206)-JVS(2749)*X(209)-JVS(2750)*X(210)-JVS(2751)*X(211)& - &-JVS(2752)*X(212)-JVS(2753)*X(216)-JVS(2754)*X(217)-JVS(2755)*X(218)-JVS(2756)*X(220)-JVS(2757)*X(221)& - &-JVS(2758)*X(222)-JVS(2759)*X(224)-JVS(2760)*X(225)-JVS(2761)*X(226)-JVS(2762)*X(228)-JVS(2763)*X(229)& - &-JVS(2764)*X(232)-JVS(2765)*X(234)-JVS(2766)*X(236)-JVS(2767)*X(237)-JVS(2768)*X(238)-JVS(2769)*X(239)& - &-JVS(2770)*X(240)-JVS(2771)*X(241)-JVS(2772)*X(242)-JVS(2773)*X(243)-JVS(2774)*X(244)-JVS(2775)*X(245)& - &-JVS(2776)*X(246)-JVS(2777)*X(247)-JVS(2778)*X(248)-JVS(2779)*X(249)-JVS(2780)*X(251)-JVS(2781)*X(252)& - &-JVS(2782)*X(253)-JVS(2783)*X(254)-JVS(2784)*X(255)-JVS(2785)*X(257)-JVS(2786)*X(259) + X(260) = X(260)-JVS(2564)*X(128)-JVS(2565)*X(176) IF (DO_SLV(261)) & - X(261) = X(261)-JVS(2811)*X(88)-JVS(2812)*X(94)-JVS(2813)*X(108)-JVS(2814)*X(110)-JVS(2815)*X(129)-JVS(2816)*X(191)& - &-JVS(2817)*X(197)-JVS(2818)*X(198)-JVS(2819)*X(204)-JVS(2820)*X(213)-JVS(2821)*X(235)-JVS(2822)*X(249)& - &-JVS(2823)*X(250)-JVS(2824)*X(251)-JVS(2825)*X(252)-JVS(2826)*X(254)-JVS(2827)*X(255)-JVS(2828)*X(257)& - &-JVS(2829)*X(258) -IF (DO_SLV(262)) & - X(262) = X(262)-JVS(2844)*X(71)-JVS(2845)*X(75)-JVS(2846)*X(82)-JVS(2847)*X(83)-JVS(2848)*X(85)-JVS(2849)*X(87)& - &-JVS(2850)*X(102)-JVS(2851)*X(110)-JVS(2852)*X(113)-JVS(2853)*X(133)-JVS(2854)*X(134)-JVS(2855)*X(136)& - &-JVS(2856)*X(137)-JVS(2857)*X(148)-JVS(2858)*X(153)-JVS(2859)*X(158)-JVS(2860)*X(161)-JVS(2861)*X(162)& - &-JVS(2862)*X(163)-JVS(2863)*X(164)-JVS(2864)*X(165)-JVS(2865)*X(166)-JVS(2866)*X(167)-JVS(2867)*X(168)& - &-JVS(2868)*X(170)-JVS(2869)*X(175)-JVS(2870)*X(176)-JVS(2871)*X(177)-JVS(2872)*X(178)-JVS(2873)*X(179)& - &-JVS(2874)*X(180)-JVS(2875)*X(182)-JVS(2876)*X(184)-JVS(2877)*X(185)-JVS(2878)*X(186)-JVS(2879)*X(187)& - &-JVS(2880)*X(190)-JVS(2881)*X(193)-JVS(2882)*X(194)-JVS(2883)*X(197)-JVS(2884)*X(200)-JVS(2885)*X(201)& - &-JVS(2886)*X(202)-JVS(2887)*X(203)-JVS(2888)*X(204)-JVS(2889)*X(205)-JVS(2890)*X(210)-JVS(2891)*X(211)& - &-JVS(2892)*X(212)-JVS(2893)*X(213)-JVS(2894)*X(214)-JVS(2895)*X(216)-JVS(2896)*X(217)-JVS(2897)*X(218)& - &-JVS(2898)*X(220)-JVS(2899)*X(221)-JVS(2900)*X(224)-JVS(2901)*X(225)-JVS(2902)*X(226)-JVS(2903)*X(227)& - &-JVS(2904)*X(229)-JVS(2905)*X(230)-JVS(2906)*X(232)-JVS(2907)*X(233)-JVS(2908)*X(234)-JVS(2909)*X(235)& - &-JVS(2910)*X(236)-JVS(2911)*X(237)-JVS(2912)*X(238)-JVS(2913)*X(239)-JVS(2914)*X(240)-JVS(2915)*X(241)& - &-JVS(2916)*X(242)-JVS(2917)*X(243)-JVS(2918)*X(244)-JVS(2919)*X(245)-JVS(2920)*X(246)-JVS(2921)*X(247)& - &-JVS(2922)*X(248)-JVS(2923)*X(249)-JVS(2924)*X(250)-JVS(2925)*X(251)-JVS(2926)*X(252)-JVS(2927)*X(253)& - &-JVS(2928)*X(254)-JVS(2929)*X(255)-JVS(2930)*X(257)-JVS(2931)*X(258)-JVS(2932)*X(261) + X(261) = X(261)-JVS(2582)*X(67)-JVS(2583)*X(88)-JVS(2584)*X(104)-JVS(2585)*X(105)-JVS(2586)*X(136)-JVS(2587)*X(153)& + &-JVS(2588)*X(156)-JVS(2589)*X(163)-JVS(2590)*X(169)-JVS(2591)*X(171)-JVS(2592)*X(184)-JVS(2593)*X(185)& + &-JVS(2594)*X(186)-JVS(2595)*X(188)-JVS(2596)*X(194)-JVS(2597)*X(196)-JVS(2598)*X(198)-JVS(2599)*X(201)& + &-JVS(2600)*X(204)-JVS(2601)*X(206)-JVS(2602)*X(207)-JVS(2603)*X(208)-JVS(2604)*X(209)-JVS(2605)*X(214)& + &-JVS(2606)*X(215)-JVS(2607)*X(216)-JVS(2608)*X(217)-JVS(2609)*X(220)-JVS(2610)*X(221)-JVS(2611)*X(222)& + &-JVS(2612)*X(224)-JVS(2613)*X(225)-JVS(2614)*X(226)-JVS(2615)*X(228)-JVS(2616)*X(229)-JVS(2617)*X(230)& + &-JVS(2618)*X(231)-JVS(2619)*X(232)-JVS(2620)*X(233)-JVS(2621)*X(237)-JVS(2622)*X(238)-JVS(2623)*X(239)& + &-JVS(2624)*X(240)-JVS(2625)*X(241)-JVS(2626)*X(242)-JVS(2627)*X(243)-JVS(2628)*X(244)-JVS(2629)*X(245)& + &-JVS(2630)*X(246)-JVS(2631)*X(247)-JVS(2632)*X(248)-JVS(2633)*X(249)-JVS(2634)*X(250)-JVS(2635)*X(251)& + &-JVS(2636)*X(252)-JVS(2637)*X(253)-JVS(2638)*X(254)-JVS(2639)*X(255)-JVS(2640)*X(256)-JVS(2641)*X(257)& + &-JVS(2642)*X(258)-JVS(2643)*X(259) IF (DO_SLV(263)) & - X(263) = X(263)-JVS(2948)*X(43)-JVS(2949)*X(63)-JVS(2950)*X(66)-JVS(2951)*X(71)-JVS(2952)*X(82)-JVS(2953)*X(97)& - &-JVS(2954)*X(100)-JVS(2955)*X(133)-JVS(2956)*X(134)-JVS(2957)*X(175)-JVS(2958)*X(176)-JVS(2959)*X(178)& - &-JVS(2960)*X(186)-JVS(2961)*X(187)-JVS(2962)*X(197)-JVS(2963)*X(198)-JVS(2964)*X(203)-JVS(2965)*X(204)& - &-JVS(2966)*X(211)-JVS(2967)*X(212)-JVS(2968)*X(213)-JVS(2969)*X(215)-JVS(2970)*X(219)-JVS(2971)*X(220)& - &-JVS(2972)*X(221)-JVS(2973)*X(222)-JVS(2974)*X(233)-JVS(2975)*X(234)-JVS(2976)*X(235)-JVS(2977)*X(240)& - &-JVS(2978)*X(241)-JVS(2979)*X(242)-JVS(2980)*X(243)-JVS(2981)*X(244)-JVS(2982)*X(245)-JVS(2983)*X(246)& - &-JVS(2984)*X(247)-JVS(2985)*X(248)-JVS(2986)*X(249)-JVS(2987)*X(250)-JVS(2988)*X(251)-JVS(2989)*X(252)& - &-JVS(2990)*X(253)-JVS(2991)*X(254)-JVS(2992)*X(255)-JVS(2993)*X(257)-JVS(2994)*X(258)-JVS(2995)*X(261)& - &-JVS(2996)*X(262) + X(263) = X(263)-JVS(2668)*X(74)-JVS(2669)*X(76)-JVS(2670)*X(85)-JVS(2671)*X(86)-JVS(2672)*X(88)-JVS(2673)*X(89)& + &-JVS(2674)*X(90)-JVS(2675)*X(108)-JVS(2676)*X(112)-JVS(2677)*X(120)-JVS(2678)*X(136)-JVS(2679)*X(137)& + &-JVS(2680)*X(139)-JVS(2681)*X(140)-JVS(2682)*X(152)-JVS(2683)*X(157)-JVS(2684)*X(162)-JVS(2685)*X(165)& + &-JVS(2686)*X(166)-JVS(2687)*X(167)-JVS(2688)*X(168)-JVS(2689)*X(169)-JVS(2690)*X(170)-JVS(2691)*X(171)& + &-JVS(2692)*X(172)-JVS(2693)*X(174)-JVS(2694)*X(179)-JVS(2695)*X(180)-JVS(2696)*X(181)-JVS(2697)*X(182)& + &-JVS(2698)*X(183)-JVS(2699)*X(184)-JVS(2700)*X(186)-JVS(2701)*X(188)-JVS(2702)*X(189)-JVS(2703)*X(190)& + &-JVS(2704)*X(191)-JVS(2705)*X(194)-JVS(2706)*X(196)-JVS(2707)*X(198)-JVS(2708)*X(201)-JVS(2709)*X(204)& + &-JVS(2710)*X(205)-JVS(2711)*X(206)-JVS(2712)*X(207)-JVS(2713)*X(208)-JVS(2714)*X(209)-JVS(2715)*X(214)& + &-JVS(2716)*X(215)-JVS(2717)*X(216)-JVS(2718)*X(217)-JVS(2719)*X(218)-JVS(2720)*X(220)-JVS(2721)*X(222)& + &-JVS(2722)*X(223)-JVS(2723)*X(224)-JVS(2724)*X(225)-JVS(2725)*X(228)-JVS(2726)*X(229)-JVS(2727)*X(230)& + &-JVS(2728)*X(231)-JVS(2729)*X(232)-JVS(2730)*X(234)-JVS(2731)*X(236)-JVS(2732)*X(237)-JVS(2733)*X(238)& + &-JVS(2734)*X(239)-JVS(2735)*X(240)-JVS(2736)*X(241)-JVS(2737)*X(242)-JVS(2738)*X(243)-JVS(2739)*X(244)& + &-JVS(2740)*X(245)-JVS(2741)*X(246)-JVS(2742)*X(247)-JVS(2743)*X(248)-JVS(2744)*X(249)-JVS(2745)*X(250)& + &-JVS(2746)*X(251)-JVS(2747)*X(252)-JVS(2748)*X(253)-JVS(2749)*X(254)-JVS(2750)*X(255)-JVS(2751)*X(256)& + &-JVS(2752)*X(257)-JVS(2753)*X(258)-JVS(2754)*X(259)-JVS(2755)*X(261) IF (DO_SLV(264)) & - X(264) = X(264)-JVS(3011)*X(140)-JVS(3012)*X(199)-JVS(3013)*X(223) + X(264) = X(264)-JVS(2773)*X(96)-JVS(2774)*X(106)-JVS(2775)*X(110)-JVS(2776)*X(112)-JVS(2777)*X(133)-JVS(2778)*X(195)& + &-JVS(2779)*X(201)-JVS(2780)*X(202)-JVS(2781)*X(209)-JVS(2782)*X(217)-JVS(2783)*X(239)-JVS(2784)*X(253)& + &-JVS(2785)*X(254)-JVS(2786)*X(255)-JVS(2787)*X(256)-JVS(2788)*X(257)-JVS(2789)*X(259)-JVS(2790)*X(261) IF (DO_SLV(265)) & - X(265) = X(265)-JVS(3030)*X(1)-JVS(3031)*X(2)-JVS(3032)*X(3)-JVS(3033)*X(40)-JVS(3034)*X(43)-JVS(3035)*X(56)-JVS(3036)& - &*X(65)-JVS(3037)*X(69)-JVS(3038)*X(90)-JVS(3039)*X(98)-JVS(3040)*X(140)-JVS(3041)*X(199)-JVS(3042)*X(223)& - &-JVS(3043)*X(264) + X(265) = X(265)-JVS(2804)*X(45)-JVS(2805)*X(90)-JVS(2806)*X(98)-JVS(2807)*X(101)-JVS(2808)*X(114)-JVS(2809)*X(115)& + &-JVS(2810)*X(118)-JVS(2811)*X(134)-JVS(2812)*X(138)-JVS(2813)*X(139)-JVS(2814)*X(140)-JVS(2815)*X(142)& + &-JVS(2816)*X(147)-JVS(2817)*X(151)-JVS(2818)*X(161)-JVS(2819)*X(173)-JVS(2820)*X(175)-JVS(2821)*X(176)& + &-JVS(2822)*X(178)-JVS(2823)*X(181)-JVS(2824)*X(189)-JVS(2825)*X(199)-JVS(2826)*X(200)-JVS(2827)*X(202)& + &-JVS(2828)*X(205)-JVS(2829)*X(208)-JVS(2830)*X(210)-JVS(2831)*X(213)-JVS(2832)*X(214)-JVS(2833)*X(215)& + &-JVS(2834)*X(216)-JVS(2835)*X(220)-JVS(2836)*X(222)-JVS(2837)*X(223)-JVS(2838)*X(224)-JVS(2839)*X(225)& + &-JVS(2840)*X(226)-JVS(2841)*X(228)-JVS(2842)*X(229)-JVS(2843)*X(230)-JVS(2844)*X(232)-JVS(2845)*X(233)& + &-JVS(2846)*X(236)-JVS(2847)*X(238)-JVS(2848)*X(240)-JVS(2849)*X(241)-JVS(2850)*X(242)-JVS(2851)*X(243)& + &-JVS(2852)*X(244)-JVS(2853)*X(245)-JVS(2854)*X(246)-JVS(2855)*X(247)-JVS(2856)*X(248)-JVS(2857)*X(249)& + &-JVS(2858)*X(250)-JVS(2859)*X(251)-JVS(2860)*X(252)-JVS(2861)*X(253)-JVS(2862)*X(254)-JVS(2863)*X(256)& + &-JVS(2864)*X(257)-JVS(2865)*X(258)-JVS(2866)*X(259)-JVS(2867)*X(261)-JVS(2868)*X(262)-JVS(2869)*X(263)& + &-JVS(2870)*X(264) IF (DO_SLV(266)) & - X(266) = X(266)-JVS(3059)*X(140)-JVS(3060)*X(199)-JVS(3061)*X(223)-JVS(3062)*X(264)-JVS(3063)*X(265) + X(266) = X(266)-JVS(2895)*X(46)-JVS(2896)*X(67)-JVS(2897)*X(74)-JVS(2898)*X(88)-JVS(2899)*X(90)-JVS(2900)*X(100)& + &-JVS(2901)*X(106)-JVS(2902)*X(136)-JVS(2903)*X(137)-JVS(2904)*X(149)-JVS(2905)*X(179)-JVS(2906)*X(180)& + &-JVS(2907)*X(184)-JVS(2908)*X(190)-JVS(2909)*X(191)-JVS(2910)*X(201)-JVS(2911)*X(202)-JVS(2912)*X(207)& + &-JVS(2913)*X(209)-JVS(2914)*X(215)-JVS(2915)*X(216)-JVS(2916)*X(217)-JVS(2917)*X(219)-JVS(2918)*X(221)& + &-JVS(2919)*X(224)-JVS(2920)*X(225)-JVS(2921)*X(226)-JVS(2922)*X(237)-JVS(2923)*X(238)-JVS(2924)*X(239)& + &-JVS(2925)*X(244)-JVS(2926)*X(245)-JVS(2927)*X(246)-JVS(2928)*X(247)-JVS(2929)*X(248)-JVS(2930)*X(249)& + &-JVS(2931)*X(250)-JVS(2932)*X(251)-JVS(2933)*X(252)-JVS(2934)*X(253)-JVS(2935)*X(254)-JVS(2936)*X(255)& + &-JVS(2937)*X(256)-JVS(2938)*X(257)-JVS(2939)*X(258)-JVS(2940)*X(259)-JVS(2941)*X(261)-JVS(2942)*X(264) IF (DO_SLV(267)) & - X(267) = X(267)-JVS(3078)*X(72)-JVS(3079)*X(107)-JVS(3080)*X(192)-JVS(3081)*X(223)-JVS(3082)*X(231)-JVS(3083)*X(259)& - &-JVS(3084)*X(263)-JVS(3085)*X(264)-JVS(3086)*X(265)-JVS(3087)*X(266) + X(267) = X(267)-JVS(2957)*X(58)-JVS(2958)*X(64)-JVS(2959)*X(66)-JVS(2960)*X(72)-JVS(2961)*X(78)-JVS(2962)*X(79)& + &-JVS(2963)*X(80)-JVS(2964)*X(101)-JVS(2965)*X(105)-JVS(2966)*X(109)-JVS(2967)*X(125)-JVS(2968)*X(127)& + &-JVS(2969)*X(129)-JVS(2970)*X(132)-JVS(2971)*X(136)-JVS(2972)*X(148)-JVS(2973)*X(149)-JVS(2974)*X(150)& + &-JVS(2975)*X(153)-JVS(2976)*X(154)-JVS(2977)*X(155)-JVS(2978)*X(156)-JVS(2979)*X(157)-JVS(2980)*X(159)& + &-JVS(2981)*X(162)-JVS(2982)*X(163)-JVS(2983)*X(165)-JVS(2984)*X(169)-JVS(2985)*X(170)-JVS(2986)*X(171)& + &-JVS(2987)*X(172)-JVS(2988)*X(174)-JVS(2989)*X(175)-JVS(2990)*X(182)-JVS(2991)*X(185)-JVS(2992)*X(186)& + &-JVS(2993)*X(188)-JVS(2994)*X(189)-JVS(2995)*X(192)-JVS(2996)*X(194)-JVS(2997)*X(195)-JVS(2998)*X(200)& + &-JVS(2999)*X(204)-JVS(3000)*X(205)-JVS(3001)*X(206)-JVS(3002)*X(207)-JVS(3003)*X(208)-JVS(3004)*X(210)& + &-JVS(3005)*X(213)-JVS(3006)*X(214)-JVS(3007)*X(220)-JVS(3008)*X(221)-JVS(3009)*X(222)-JVS(3010)*X(223)& + &-JVS(3011)*X(224)-JVS(3012)*X(228)-JVS(3013)*X(229)-JVS(3014)*X(230)-JVS(3015)*X(231)-JVS(3016)*X(232)& + &-JVS(3017)*X(233)-JVS(3018)*X(234)-JVS(3019)*X(236)-JVS(3020)*X(238)-JVS(3021)*X(240)-JVS(3022)*X(241)& + &-JVS(3023)*X(242)-JVS(3024)*X(243)-JVS(3025)*X(244)-JVS(3026)*X(245)-JVS(3027)*X(246)-JVS(3028)*X(247)& + &-JVS(3029)*X(248)-JVS(3030)*X(249)-JVS(3031)*X(250)-JVS(3032)*X(251)-JVS(3033)*X(252)-JVS(3034)*X(253)& + &-JVS(3035)*X(254)-JVS(3036)*X(256)-JVS(3037)*X(257)-JVS(3038)*X(258)-JVS(3039)*X(259)-JVS(3040)*X(261)& + &-JVS(3041)*X(263)-JVS(3042)*X(264)-JVS(3043)*X(266) IF (DO_SLV(268)) & - X(268) = X(268)-JVS(3109)*X(42)-JVS(3110)*X(44)-JVS(3111)*X(45)-JVS(3112)*X(46)-JVS(3113)*X(48)-JVS(3114)*X(51)& - &-JVS(3115)*X(52)-JVS(3116)*X(53)-JVS(3117)*X(55)-JVS(3118)*X(57)-JVS(3119)*X(61)-JVS(3120)*X(70)-JVS(3121)& - &*X(74)-JVS(3122)*X(78)-JVS(3123)*X(79)-JVS(3124)*X(80)-JVS(3125)*X(81)-JVS(3126)*X(97)-JVS(3127)*X(186)& - &-JVS(3128)*X(192)-JVS(3129)*X(231)-JVS(3130)*X(254)-JVS(3131)*X(257)-JVS(3132)*X(259)-JVS(3133)*X(261)& - &-JVS(3134)*X(262)-JVS(3135)*X(263)-JVS(3136)*X(267) + X(268) = X(268)-JVS(3058)*X(143)-JVS(3059)*X(203)-JVS(3060)*X(227) IF (DO_SLV(269)) & - X(269) = X(269)-JVS(3157)*X(39)-JVS(3158)*X(43)-JVS(3159)*X(54)-JVS(3160)*X(60)-JVS(3161)*X(62)-JVS(3162)*X(64)& - &-JVS(3163)*X(65)-JVS(3164)*X(66)-JVS(3165)*X(67)-JVS(3166)*X(68)-JVS(3167)*X(70)-JVS(3168)*X(72)-JVS(3169)& - &*X(73)-JVS(3170)*X(74)-JVS(3171)*X(75)-JVS(3172)*X(76)-JVS(3173)*X(77)-JVS(3174)*X(78)-JVS(3175)*X(79)& - &-JVS(3176)*X(80)-JVS(3177)*X(81)-JVS(3178)*X(82)-JVS(3179)*X(83)-JVS(3180)*X(84)-JVS(3181)*X(85)-JVS(3182)& - &*X(86)-JVS(3183)*X(87)-JVS(3184)*X(88)-JVS(3185)*X(89)-JVS(3186)*X(91)-JVS(3187)*X(92)-JVS(3188)*X(93)& - &-JVS(3189)*X(94)-JVS(3190)*X(95)-JVS(3191)*X(97)-JVS(3192)*X(99)-JVS(3193)*X(100)-JVS(3194)*X(101)-JVS(3195)& - &*X(104)-JVS(3196)*X(105)-JVS(3197)*X(106)-JVS(3198)*X(107)-JVS(3199)*X(108)-JVS(3200)*X(109)-JVS(3201)*X(110)& - &-JVS(3202)*X(111)-JVS(3203)*X(112)-JVS(3204)*X(113)-JVS(3205)*X(114)-JVS(3206)*X(115)-JVS(3207)*X(116)& - &-JVS(3208)*X(117)-JVS(3209)*X(118)-JVS(3210)*X(119)-JVS(3211)*X(120)-JVS(3212)*X(121)-JVS(3213)*X(122)& - &-JVS(3214)*X(124)-JVS(3215)*X(125)-JVS(3216)*X(126)-JVS(3217)*X(127)-JVS(3218)*X(128)-JVS(3219)*X(129)& - &-JVS(3220)*X(130)-JVS(3221)*X(131)-JVS(3222)*X(133)-JVS(3223)*X(134)-JVS(3224)*X(136)-JVS(3225)*X(137)& - &-JVS(3226)*X(138)-JVS(3227)*X(139)-JVS(3228)*X(140)-JVS(3229)*X(141)-JVS(3230)*X(142)-JVS(3231)*X(143)& - &-JVS(3232)*X(144)-JVS(3233)*X(145)-JVS(3234)*X(146)-JVS(3235)*X(147)-JVS(3236)*X(148)-JVS(3237)*X(149)& - &-JVS(3238)*X(150)-JVS(3239)*X(151)-JVS(3240)*X(152)-JVS(3241)*X(153)-JVS(3242)*X(154)-JVS(3243)*X(155)& - &-JVS(3244)*X(157)-JVS(3245)*X(158)-JVS(3246)*X(159)-JVS(3247)*X(160)-JVS(3248)*X(161)-JVS(3249)*X(162)& - &-JVS(3250)*X(163)-JVS(3251)*X(164)-JVS(3252)*X(165)-JVS(3253)*X(166)-JVS(3254)*X(167)-JVS(3255)*X(168)& - &-JVS(3256)*X(171)-JVS(3257)*X(172)-JVS(3258)*X(173)-JVS(3259)*X(174)-JVS(3260)*X(175)-JVS(3261)*X(176)& - &-JVS(3262)*X(177)-JVS(3263)*X(178)-JVS(3264)*X(179)-JVS(3265)*X(180)-JVS(3266)*X(182)-JVS(3267)*X(183)& - &-JVS(3268)*X(184)-JVS(3269)*X(185)-JVS(3270)*X(186)-JVS(3271)*X(187)-JVS(3272)*X(188)-JVS(3273)*X(189)& - &-JVS(3274)*X(190)-JVS(3275)*X(191)-JVS(3276)*X(192)-JVS(3277)*X(193)-JVS(3278)*X(194)-JVS(3279)*X(195)& - &-JVS(3280)*X(196)-JVS(3281)*X(197)-JVS(3282)*X(198)-JVS(3283)*X(199)-JVS(3284)*X(200)-JVS(3285)*X(201)& - &-JVS(3286)*X(202)-JVS(3287)*X(203)-JVS(3288)*X(204)-JVS(3289)*X(205)-JVS(3290)*X(206)-JVS(3291)*X(207)& - &-JVS(3292)*X(208)-JVS(3293)*X(209)-JVS(3294)*X(210)-JVS(3295)*X(211)-JVS(3296)*X(212)-JVS(3297)*X(213)& - &-JVS(3298)*X(214)-JVS(3299)*X(215)-JVS(3300)*X(216)-JVS(3301)*X(217)-JVS(3302)*X(218)-JVS(3303)*X(219)& - &-JVS(3304)*X(220)-JVS(3305)*X(221)-JVS(3306)*X(222)-JVS(3307)*X(223)-JVS(3308)*X(224)-JVS(3309)*X(225)& - &-JVS(3310)*X(226)-JVS(3311)*X(227)-JVS(3312)*X(228)-JVS(3313)*X(229)-JVS(3314)*X(230)-JVS(3315)*X(231)& - &-JVS(3316)*X(232)-JVS(3317)*X(233)-JVS(3318)*X(234)-JVS(3319)*X(235)-JVS(3320)*X(236)-JVS(3321)*X(237)& - &-JVS(3322)*X(238)-JVS(3323)*X(239)-JVS(3324)*X(240)-JVS(3325)*X(241)-JVS(3326)*X(242)-JVS(3327)*X(243)& - &-JVS(3328)*X(244)-JVS(3329)*X(245)-JVS(3330)*X(246)-JVS(3331)*X(247)-JVS(3332)*X(248)-JVS(3333)*X(249)& - &-JVS(3334)*X(250)-JVS(3335)*X(251)-JVS(3336)*X(252)-JVS(3337)*X(253)-JVS(3338)*X(254)-JVS(3339)*X(255)& - &-JVS(3340)*X(256)-JVS(3341)*X(257)-JVS(3342)*X(258)-JVS(3343)*X(259)-JVS(3344)*X(260)-JVS(3345)*X(261)& - &-JVS(3346)*X(262)-JVS(3347)*X(263)-JVS(3348)*X(264)-JVS(3349)*X(265)-JVS(3350)*X(266)-JVS(3351)*X(267)& - &-JVS(3352)*X(268) + X(269) = X(269)-JVS(3077)*X(1)-JVS(3078)*X(2)-JVS(3079)*X(3)-JVS(3080)*X(44)-JVS(3081)*X(46)-JVS(3082)*X(60)-JVS(3083)& + &*X(69)-JVS(3084)*X(73)-JVS(3085)*X(92)-JVS(3086)*X(99)-JVS(3087)*X(143)-JVS(3088)*X(203)-JVS(3089)*X(227)& + &-JVS(3090)*X(268) IF (DO_SLV(270)) & - X(270) = X(270)-JVS(3372)*X(49)-JVS(3373)*X(50)-JVS(3374)*X(58)-JVS(3375)*X(59)-JVS(3376)*X(61)-JVS(3377)*X(63)& - &-JVS(3378)*X(64)-JVS(3379)*X(71)-JVS(3380)*X(86)-JVS(3381)*X(87)-JVS(3382)*X(88)-JVS(3383)*X(89)-JVS(3384)& - &*X(90)-JVS(3385)*X(95)-JVS(3386)*X(101)-JVS(3387)*X(111)-JVS(3388)*X(116)-JVS(3389)*X(120)-JVS(3390)*X(131)& - &-JVS(3391)*X(135)-JVS(3392)*X(136)-JVS(3393)*X(137)-JVS(3394)*X(141)-JVS(3395)*X(142)-JVS(3396)*X(143)& - &-JVS(3397)*X(144)-JVS(3398)*X(146)-JVS(3399)*X(147)-JVS(3400)*X(148)-JVS(3401)*X(149)-JVS(3402)*X(156)& - &-JVS(3403)*X(162)-JVS(3404)*X(163)-JVS(3405)*X(164)-JVS(3406)*X(169)-JVS(3407)*X(172)-JVS(3408)*X(174)& - &-JVS(3409)*X(175)-JVS(3410)*X(176)-JVS(3411)*X(177)-JVS(3412)*X(178)-JVS(3413)*X(179)-JVS(3414)*X(180)& - &-JVS(3415)*X(182)-JVS(3416)*X(183)-JVS(3417)*X(184)-JVS(3418)*X(185)-JVS(3419)*X(187)-JVS(3420)*X(188)& - &-JVS(3421)*X(190)-JVS(3422)*X(191)-JVS(3423)*X(194)-JVS(3424)*X(195)-JVS(3425)*X(196)-JVS(3426)*X(197)& - &-JVS(3427)*X(198)-JVS(3428)*X(199)-JVS(3429)*X(200)-JVS(3430)*X(201)-JVS(3431)*X(203)-JVS(3432)*X(204)& - &-JVS(3433)*X(205)-JVS(3434)*X(206)-JVS(3435)*X(209)-JVS(3436)*X(210)-JVS(3437)*X(211)-JVS(3438)*X(212)& - &-JVS(3439)*X(213)-JVS(3440)*X(216)-JVS(3441)*X(217)-JVS(3442)*X(220)-JVS(3443)*X(221)-JVS(3444)*X(223)& - &-JVS(3445)*X(224)-JVS(3446)*X(225)-JVS(3447)*X(229)-JVS(3448)*X(230)-JVS(3449)*X(231)-JVS(3450)*X(233)& - &-JVS(3451)*X(234)-JVS(3452)*X(235)-JVS(3453)*X(236)-JVS(3454)*X(237)-JVS(3455)*X(238)-JVS(3456)*X(239)& - &-JVS(3457)*X(240)-JVS(3458)*X(241)-JVS(3459)*X(242)-JVS(3460)*X(243)-JVS(3461)*X(244)-JVS(3462)*X(245)& - &-JVS(3463)*X(247)-JVS(3464)*X(248)-JVS(3465)*X(249)-JVS(3466)*X(250)-JVS(3467)*X(251)-JVS(3468)*X(252)& - &-JVS(3469)*X(253)-JVS(3470)*X(254)-JVS(3471)*X(255)-JVS(3472)*X(257)-JVS(3473)*X(258)-JVS(3474)*X(259)& - &-JVS(3475)*X(260)-JVS(3476)*X(261)-JVS(3477)*X(262)-JVS(3478)*X(263)-JVS(3479)*X(264)-JVS(3480)*X(265)& - &-JVS(3481)*X(266)-JVS(3482)*X(268)-JVS(3483)*X(269) + X(270) = X(270)-JVS(3106)*X(143)-JVS(3107)*X(203)-JVS(3108)*X(227)-JVS(3109)*X(268)-JVS(3110)*X(269) IF (DO_SLV(271)) & - X(271) = X(271)-JVS(3502)*X(68)-JVS(3503)*X(73)-JVS(3504)*X(100)-JVS(3505)*X(112)-JVS(3506)*X(121)-JVS(3507)*X(129)& - &-JVS(3508)*X(134)-JVS(3509)*X(135)-JVS(3510)*X(144)-JVS(3511)*X(157)-JVS(3512)*X(169)-JVS(3513)*X(172)& - &-JVS(3514)*X(186)-JVS(3515)*X(207)-JVS(3516)*X(208)-JVS(3517)*X(213)-JVS(3518)*X(214)-JVS(3519)*X(215)& - &-JVS(3520)*X(219)-JVS(3521)*X(220)-JVS(3522)*X(221)-JVS(3523)*X(230)-JVS(3524)*X(231)-JVS(3525)*X(232)& - &-JVS(3526)*X(233)-JVS(3527)*X(234)-JVS(3528)*X(235)-JVS(3529)*X(236)-JVS(3530)*X(237)-JVS(3531)*X(238)& - &-JVS(3532)*X(239)-JVS(3533)*X(240)-JVS(3534)*X(241)-JVS(3535)*X(242)-JVS(3536)*X(243)-JVS(3537)*X(244)& - &-JVS(3538)*X(245)-JVS(3539)*X(246)-JVS(3540)*X(247)-JVS(3541)*X(248)-JVS(3542)*X(249)-JVS(3543)*X(250)& - &-JVS(3544)*X(251)-JVS(3545)*X(252)-JVS(3546)*X(253)-JVS(3547)*X(254)-JVS(3548)*X(255)-JVS(3549)*X(256)& - &-JVS(3550)*X(257)-JVS(3551)*X(258)-JVS(3552)*X(259)-JVS(3553)*X(260)-JVS(3554)*X(261)-JVS(3555)*X(262)& - &-JVS(3556)*X(263)-JVS(3557)*X(266)-JVS(3558)*X(267)-JVS(3559)*X(268)-JVS(3560)*X(269)-JVS(3561)*X(270) + X(271) = X(271)-JVS(3125)*X(75)-JVS(3126)*X(111)-JVS(3127)*X(197)-JVS(3128)*X(227)-JVS(3129)*X(235)-JVS(3130)*X(262)& + &-JVS(3131)*X(266)-JVS(3132)*X(267)-JVS(3133)*X(268)-JVS(3134)*X(269)-JVS(3135)*X(270) IF (DO_SLV(272)) & - X(272) = X(272)-JVS(3579)*X(121)-JVS(3580)*X(157)-JVS(3581)*X(219)-JVS(3582)*X(231)-JVS(3583)*X(234)-JVS(3584)*X(249)& - &-JVS(3585)*X(251)-JVS(3586)*X(252)-JVS(3587)*X(253)-JVS(3588)*X(254)-JVS(3589)*X(255)-JVS(3590)*X(256)& - &-JVS(3591)*X(257)-JVS(3592)*X(259)-JVS(3593)*X(261)-JVS(3594)*X(262)-JVS(3595)*X(263)-JVS(3596)*X(267)& - &-JVS(3597)*X(268)-JVS(3598)*X(269)-JVS(3599)*X(270)-JVS(3600)*X(271) + X(272) = X(272)-JVS(3157)*X(47)-JVS(3158)*X(48)-JVS(3159)*X(52)-JVS(3160)*X(53)-JVS(3161)*X(54)-JVS(3162)*X(55)& + &-JVS(3163)*X(56)-JVS(3164)*X(57)-JVS(3165)*X(59)-JVS(3166)*X(61)-JVS(3167)*X(65)-JVS(3168)*X(71)-JVS(3169)& + &*X(77)-JVS(3170)*X(81)-JVS(3171)*X(82)-JVS(3172)*X(83)-JVS(3173)*X(84)-JVS(3174)*X(100)-JVS(3175)*X(149)& + &-JVS(3176)*X(190)-JVS(3177)*X(197)-JVS(3178)*X(235)-JVS(3179)*X(253)-JVS(3180)*X(261)-JVS(3181)*X(262)& + &-JVS(3182)*X(264)-JVS(3183)*X(266)-JVS(3184)*X(267)-JVS(3185)*X(271) IF (DO_SLV(273)) & - X(273) = X(273)-JVS(3617)*X(42)-JVS(3618)*X(46)-JVS(3619)*X(48)-JVS(3620)*X(51)-JVS(3621)*X(52)-JVS(3622)*X(53)& - &-JVS(3623)*X(55)-JVS(3624)*X(72)-JVS(3625)*X(78)-JVS(3626)*X(79)-JVS(3627)*X(80)-JVS(3628)*X(81)-JVS(3629)& - &*X(103)-JVS(3630)*X(107)-JVS(3631)*X(192)-JVS(3632)*X(213)-JVS(3633)*X(223)-JVS(3634)*X(231)-JVS(3635)*X(235)& - &-JVS(3636)*X(249)-JVS(3637)*X(250)-JVS(3638)*X(251)-JVS(3639)*X(252)-JVS(3640)*X(255)-JVS(3641)*X(257)& - &-JVS(3642)*X(259)-JVS(3643)*X(261)-JVS(3644)*X(262)-JVS(3645)*X(263)-JVS(3646)*X(264)-JVS(3647)*X(265)& - &-JVS(3648)*X(266)-JVS(3649)*X(267)-JVS(3650)*X(268)-JVS(3651)*X(269)-JVS(3652)*X(270)-JVS(3653)*X(271)& - &-JVS(3654)*X(272) + X(273) = X(273)-JVS(3206)*X(2)-JVS(3207)*X(47)-JVS(3208)*X(48)-JVS(3209)*X(51)-JVS(3210)*X(59)-JVS(3211)*X(71)& + &-JVS(3212)*X(73)-JVS(3213)*X(77)-JVS(3214)*X(100)-JVS(3215)*X(124)-JVS(3216)*X(128)-JVS(3217)*X(135)-JVS(3218)& + &*X(161)-JVS(3219)*X(176)-JVS(3220)*X(203)-JVS(3221)*X(221)-JVS(3222)*X(227)-JVS(3223)*X(235)-JVS(3224)*X(238)& + &-JVS(3225)*X(253)-JVS(3226)*X(254)-JVS(3227)*X(256)-JVS(3228)*X(257)-JVS(3229)*X(258)-JVS(3230)*X(259)& + &-JVS(3231)*X(260)-JVS(3232)*X(261)-JVS(3233)*X(262)-JVS(3234)*X(263)-JVS(3235)*X(264)-JVS(3236)*X(266)& + &-JVS(3237)*X(267)-JVS(3238)*X(268)-JVS(3239)*X(269)-JVS(3240)*X(270)-JVS(3241)*X(271)-JVS(3242)*X(272) IF (DO_SLV(274)) & - X(274) = X(274)-JVS(3670)*X(44)-JVS(3671)*X(45)-JVS(3672)*X(55)-JVS(3673)*X(70)-JVS(3674)*X(74)-JVS(3675)*X(97)& - &-JVS(3676)*X(172)-JVS(3677)*X(223)-JVS(3678)*X(256)-JVS(3679)*X(264)-JVS(3680)*X(265)-JVS(3681)*X(266)& - &-JVS(3682)*X(268)-JVS(3683)*X(269)-JVS(3684)*X(270)-JVS(3685)*X(271)-JVS(3686)*X(272)-JVS(3687)*X(273) + X(274) = X(274)-JVS(3262)*X(47)-JVS(3263)*X(48)-JVS(3264)*X(59)-JVS(3265)*X(71)-JVS(3266)*X(77)-JVS(3267)*X(100)& + &-JVS(3268)*X(176)-JVS(3269)*X(227)-JVS(3270)*X(260)-JVS(3271)*X(268)-JVS(3272)*X(269)-JVS(3273)*X(270)& + &-JVS(3274)*X(272)-JVS(3275)*X(273) IF (DO_SLV(275)) & - X(275) = X(275)-JVS(3702)*X(199)-JVS(3703)*X(231)-JVS(3704)*X(256)-JVS(3705)*X(259)-JVS(3706)*X(264)-JVS(3707)*X(265)& - &-JVS(3708)*X(266)-JVS(3709)*X(269)-JVS(3710)*X(270)-JVS(3711)*X(271)-JVS(3712)*X(272)-JVS(3713)*X(273)& - &-JVS(3714)*X(274) + X(275) = X(275)-JVS(3294)*X(72)-JVS(3295)*X(78)-JVS(3296)*X(114)-JVS(3297)*X(124)-JVS(3298)*X(133)-JVS(3299)*X(137)& + &-JVS(3300)*X(138)-JVS(3301)*X(147)-JVS(3302)*X(149)-JVS(3303)*X(161)-JVS(3304)*X(173)-JVS(3305)*X(176)& + &-JVS(3306)*X(190)-JVS(3307)*X(211)-JVS(3308)*X(212)-JVS(3309)*X(217)-JVS(3310)*X(218)-JVS(3311)*X(219)& + &-JVS(3312)*X(221)-JVS(3313)*X(224)-JVS(3314)*X(225)-JVS(3315)*X(234)-JVS(3316)*X(235)-JVS(3317)*X(236)& + &-JVS(3318)*X(237)-JVS(3319)*X(238)-JVS(3320)*X(239)-JVS(3321)*X(240)-JVS(3322)*X(241)-JVS(3323)*X(242)& + &-JVS(3324)*X(243)-JVS(3325)*X(244)-JVS(3326)*X(245)-JVS(3327)*X(246)-JVS(3328)*X(247)-JVS(3329)*X(248)& + &-JVS(3330)*X(249)-JVS(3331)*X(250)-JVS(3332)*X(251)-JVS(3333)*X(252)-JVS(3334)*X(253)-JVS(3335)*X(254)& + &-JVS(3336)*X(255)-JVS(3337)*X(256)-JVS(3338)*X(257)-JVS(3339)*X(258)-JVS(3340)*X(259)-JVS(3341)*X(260)& + &-JVS(3342)*X(261)-JVS(3343)*X(262)-JVS(3344)*X(263)-JVS(3345)*X(264)-JVS(3346)*X(265)-JVS(3347)*X(266)& + &-JVS(3348)*X(267)-JVS(3349)*X(270)-JVS(3350)*X(271)-JVS(3351)*X(272)-JVS(3352)*X(273)-JVS(3353)*X(274) IF (DO_SLV(276)) & - X(276) = X(276)-JVS(3728)*X(199)-JVS(3729)*X(231)-JVS(3730)*X(256)-JVS(3731)*X(259)-JVS(3732)*X(264)-JVS(3733)*X(265)& - &-JVS(3734)*X(266)-JVS(3735)*X(269)-JVS(3736)*X(270)-JVS(3737)*X(271)-JVS(3738)*X(272)-JVS(3739)*X(273)& - &-JVS(3740)*X(274)-JVS(3741)*X(275) + X(276) = X(276)-JVS(3371)*X(66)-JVS(3372)*X(86)-JVS(3373)*X(90)-JVS(3374)*X(122)-JVS(3375)*X(138)-JVS(3376)*X(147)& + &-JVS(3377)*X(195)-JVS(3378)*X(212)-JVS(3379)*X(224)-JVS(3380)*X(234)-JVS(3381)*X(248)-JVS(3382)*X(251)& + &-JVS(3383)*X(253)-JVS(3384)*X(260)-JVS(3385)*X(261)-JVS(3386)*X(263)-JVS(3387)*X(264)-JVS(3388)*X(265)& + &-JVS(3389)*X(266)-JVS(3390)*X(267)-JVS(3391)*X(270)-JVS(3392)*X(271)-JVS(3393)*X(272)-JVS(3394)*X(273)& + &-JVS(3395)*X(274)-JVS(3396)*X(275) IF (DO_SLV(277)) & - X(277) = X(277)-JVS(3754)*X(75)-JVS(3755)*X(135)-JVS(3756)*X(138)-JVS(3757)*X(144)-JVS(3758)*X(145)-JVS(3759)*X(150)& - &-JVS(3760)*X(151)-JVS(3761)*X(155)-JVS(3762)*X(156)-JVS(3763)*X(165)-JVS(3764)*X(173)-JVS(3765)*X(176)& - &-JVS(3766)*X(186)-JVS(3767)*X(187)-JVS(3768)*X(196)-JVS(3769)*X(203)-JVS(3770)*X(206)-JVS(3771)*X(211)& - &-JVS(3772)*X(212)-JVS(3773)*X(220)-JVS(3774)*X(221)-JVS(3775)*X(230)-JVS(3776)*X(234)-JVS(3777)*X(244)& - &-JVS(3778)*X(245)-JVS(3779)*X(247)-JVS(3780)*X(250)-JVS(3781)*X(251)-JVS(3782)*X(252)-JVS(3783)*X(254)& - &-JVS(3784)*X(255)-JVS(3785)*X(257)-JVS(3786)*X(258)-JVS(3787)*X(260)-JVS(3788)*X(261)-JVS(3789)*X(262)& - &-JVS(3790)*X(263)-JVS(3791)*X(265)-JVS(3792)*X(266)-JVS(3793)*X(268)-JVS(3794)*X(269)-JVS(3795)*X(270)& - &-JVS(3796)*X(271)-JVS(3797)*X(272)-JVS(3798)*X(273)-JVS(3799)*X(274)-JVS(3800)*X(275)-JVS(3801)*X(276) + X(277) = X(277)-JVS(3413)*X(203)-JVS(3414)*X(235)-JVS(3415)*X(260)-JVS(3416)*X(262)-JVS(3417)*X(268)-JVS(3418)*X(269)& + &-JVS(3419)*X(270)-JVS(3420)*X(273)-JVS(3421)*X(274)-JVS(3422)*X(275)-JVS(3423)*X(276) IF (DO_SLV(278)) & - X(278) = X(278)-JVS(3813)*X(144)-JVS(3814)*X(169)-JVS(3815)*X(199)-JVS(3816)*X(231)-JVS(3817)*X(256)-JVS(3818)*X(259)& - &-JVS(3819)*X(260)-JVS(3820)*X(261)-JVS(3821)*X(262)-JVS(3822)*X(263)-JVS(3823)*X(264)-JVS(3824)*X(265)& - &-JVS(3825)*X(266)-JVS(3826)*X(267)-JVS(3827)*X(268)-JVS(3828)*X(269)-JVS(3829)*X(270)-JVS(3830)*X(271)& - &-JVS(3831)*X(272)-JVS(3832)*X(273)-JVS(3833)*X(274)-JVS(3834)*X(275)-JVS(3835)*X(276)-JVS(3836)*X(277) + X(278) = X(278)-JVS(3439)*X(43)-JVS(3440)*X(46)-JVS(3441)*X(69)-JVS(3442)*X(81)-JVS(3443)*X(82)-JVS(3444)*X(83)& + &-JVS(3445)*X(84)-JVS(3446)*X(100)-JVS(3447)*X(102)-JVS(3448)*X(137)-JVS(3449)*X(149)-JVS(3450)*X(161)& + &-JVS(3451)*X(173)-JVS(3452)*X(176)-JVS(3453)*X(177)-JVS(3454)*X(190)-JVS(3455)*X(193)-JVS(3456)*X(195)& + &-JVS(3457)*X(196)-JVS(3458)*X(202)-JVS(3459)*X(203)-JVS(3460)*X(210)-JVS(3461)*X(211)-JVS(3462)*X(212)& + &-JVS(3463)*X(219)-JVS(3464)*X(221)-JVS(3465)*X(222)-JVS(3466)*X(224)-JVS(3467)*X(226)-JVS(3468)*X(231)& + &-JVS(3469)*X(234)-JVS(3470)*X(235)-JVS(3471)*X(236)-JVS(3472)*X(237)-JVS(3473)*X(238)-JVS(3474)*X(239)& + &-JVS(3475)*X(240)-JVS(3476)*X(241)-JVS(3477)*X(242)-JVS(3478)*X(243)-JVS(3479)*X(244)-JVS(3480)*X(245)& + &-JVS(3481)*X(246)-JVS(3482)*X(247)-JVS(3483)*X(248)-JVS(3484)*X(249)-JVS(3485)*X(250)-JVS(3486)*X(251)& + &-JVS(3487)*X(252)-JVS(3488)*X(253)-JVS(3489)*X(254)-JVS(3490)*X(255)-JVS(3491)*X(256)-JVS(3492)*X(257)& + &-JVS(3493)*X(258)-JVS(3494)*X(259)-JVS(3495)*X(260)-JVS(3496)*X(261)-JVS(3497)*X(262)-JVS(3498)*X(263)& + &-JVS(3499)*X(264)-JVS(3500)*X(265)-JVS(3501)*X(266)-JVS(3502)*X(267)-JVS(3503)*X(268)-JVS(3504)*X(269)& + &-JVS(3505)*X(270)-JVS(3506)*X(271)-JVS(3507)*X(272)-JVS(3508)*X(273)-JVS(3509)*X(274)-JVS(3510)*X(275)& + &-JVS(3511)*X(276)-JVS(3512)*X(277) IF (DO_SLV(279)) & - X(279) = X(279)-JVS(3847)*X(39)-JVS(3848)*X(43)-JVS(3849)*X(65)-JVS(3850)*X(78)-JVS(3851)*X(79)-JVS(3852)*X(80)& - &-JVS(3853)*X(81)-JVS(3854)*X(97)-JVS(3855)*X(100)-JVS(3856)*X(101)-JVS(3857)*X(134)-JVS(3858)*X(157)-JVS(3859)& - &*X(169)-JVS(3860)*X(172)-JVS(3861)*X(173)-JVS(3862)*X(186)-JVS(3863)*X(188)-JVS(3864)*X(191)-JVS(3865)*X(193)& - &-JVS(3866)*X(198)-JVS(3867)*X(199)-JVS(3868)*X(206)-JVS(3869)*X(207)-JVS(3870)*X(208)-JVS(3871)*X(215)& - &-JVS(3872)*X(217)-JVS(3873)*X(219)-JVS(3874)*X(220)-JVS(3875)*X(222)-JVS(3876)*X(227)-JVS(3877)*X(230)& - &-JVS(3878)*X(231)-JVS(3879)*X(232)-JVS(3880)*X(233)-JVS(3881)*X(234)-JVS(3882)*X(235)-JVS(3883)*X(236)& - &-JVS(3884)*X(237)-JVS(3885)*X(238)-JVS(3886)*X(239)-JVS(3887)*X(240)-JVS(3888)*X(241)-JVS(3889)*X(242)& - &-JVS(3890)*X(243)-JVS(3891)*X(244)-JVS(3892)*X(245)-JVS(3893)*X(246)-JVS(3894)*X(247)-JVS(3895)*X(248)& - &-JVS(3896)*X(249)-JVS(3897)*X(250)-JVS(3898)*X(251)-JVS(3899)*X(252)-JVS(3900)*X(253)-JVS(3901)*X(254)& - &-JVS(3902)*X(255)-JVS(3903)*X(256)-JVS(3904)*X(257)-JVS(3905)*X(258)-JVS(3906)*X(259)-JVS(3907)*X(260)& - &-JVS(3908)*X(261)-JVS(3909)*X(262)-JVS(3910)*X(263)-JVS(3911)*X(264)-JVS(3912)*X(265)-JVS(3913)*X(266)& - &-JVS(3914)*X(267)-JVS(3915)*X(268)-JVS(3916)*X(269)-JVS(3917)*X(270)-JVS(3918)*X(271)-JVS(3919)*X(272)& - &-JVS(3920)*X(273)-JVS(3921)*X(274)-JVS(3922)*X(275)-JVS(3923)*X(276)-JVS(3924)*X(277)-JVS(3925)*X(278) + X(279) = X(279)-JVS(3527)*X(60)-JVS(3528)*X(61)-JVS(3529)*X(65)-JVS(3530)*X(92)-JVS(3531)*X(121)-JVS(3532)*X(123)& + &-JVS(3533)*X(144)-JVS(3534)*X(145)-JVS(3535)*X(146)-JVS(3536)*X(150)-JVS(3537)*X(152)-JVS(3538)*X(166)& + &-JVS(3539)*X(167)-JVS(3540)*X(168)-JVS(3541)*X(179)-JVS(3542)*X(180)-JVS(3543)*X(182)-JVS(3544)*X(183)& + &-JVS(3545)*X(184)-JVS(3546)*X(186)-JVS(3547)*X(187)-JVS(3548)*X(188)-JVS(3549)*X(189)-JVS(3550)*X(191)& + &-JVS(3551)*X(193)-JVS(3552)*X(194)-JVS(3553)*X(195)-JVS(3554)*X(201)-JVS(3555)*X(203)-JVS(3556)*X(204)& + &-JVS(3557)*X(205)-JVS(3558)*X(207)-JVS(3559)*X(209)-JVS(3560)*X(210)-JVS(3561)*X(214)-JVS(3562)*X(215)& + &-JVS(3563)*X(216)-JVS(3564)*X(217)-JVS(3565)*X(220)-JVS(3566)*X(222)-JVS(3567)*X(224)-JVS(3568)*X(225)& + &-JVS(3569)*X(227)-JVS(3570)*X(228)-JVS(3571)*X(229)-JVS(3572)*X(232)-JVS(3573)*X(234)-JVS(3574)*X(235)& + &-JVS(3575)*X(237)-JVS(3576)*X(238)-JVS(3577)*X(239)-JVS(3578)*X(240)-JVS(3579)*X(242)-JVS(3580)*X(243)& + &-JVS(3581)*X(244)-JVS(3582)*X(245)-JVS(3583)*X(246)-JVS(3584)*X(247)-JVS(3585)*X(248)-JVS(3586)*X(249)& + &-JVS(3587)*X(251)-JVS(3588)*X(252)-JVS(3589)*X(253)-JVS(3590)*X(254)-JVS(3591)*X(255)-JVS(3592)*X(256)& + &-JVS(3593)*X(257)-JVS(3594)*X(258)-JVS(3595)*X(259)-JVS(3596)*X(261)-JVS(3597)*X(264)-JVS(3598)*X(265)& + &-JVS(3599)*X(266)-JVS(3600)*X(267)-JVS(3601)*X(268)-JVS(3602)*X(269)-JVS(3603)*X(270)-JVS(3604)*X(272)& + &-JVS(3605)*X(273)-JVS(3606)*X(274)-JVS(3607)*X(275)-JVS(3608)*X(276)-JVS(3609)*X(277)-JVS(3610)*X(278) IF (DO_SLV(280)) & - X(280) = X(280)-JVS(3935)*X(56)-JVS(3936)*X(57)-JVS(3937)*X(61)-JVS(3938)*X(90)-JVS(3939)*X(116)-JVS(3940)*X(120)& - &-JVS(3941)*X(141)-JVS(3942)*X(142)-JVS(3943)*X(143)-JVS(3944)*X(146)-JVS(3945)*X(148)-JVS(3946)*X(162)& - &-JVS(3947)*X(163)-JVS(3948)*X(164)-JVS(3949)*X(175)-JVS(3950)*X(176)-JVS(3951)*X(178)-JVS(3952)*X(179)& - &-JVS(3953)*X(180)-JVS(3954)*X(182)-JVS(3955)*X(183)-JVS(3956)*X(184)-JVS(3957)*X(185)-JVS(3958)*X(187)& - &-JVS(3959)*X(188)-JVS(3960)*X(190)-JVS(3961)*X(191)-JVS(3962)*X(197)-JVS(3963)*X(199)-JVS(3964)*X(200)& - &-JVS(3965)*X(201)-JVS(3966)*X(203)-JVS(3967)*X(204)-JVS(3968)*X(206)-JVS(3969)*X(210)-JVS(3970)*X(211)& - &-JVS(3971)*X(212)-JVS(3972)*X(213)-JVS(3973)*X(216)-JVS(3974)*X(217)-JVS(3975)*X(220)-JVS(3976)*X(221)& - &-JVS(3977)*X(223)-JVS(3978)*X(224)-JVS(3979)*X(225)-JVS(3980)*X(229)-JVS(3981)*X(230)-JVS(3982)*X(231)& - &-JVS(3983)*X(233)-JVS(3984)*X(234)-JVS(3985)*X(235)-JVS(3986)*X(236)-JVS(3987)*X(238)-JVS(3988)*X(239)& - &-JVS(3989)*X(240)-JVS(3990)*X(241)-JVS(3991)*X(242)-JVS(3992)*X(243)-JVS(3993)*X(244)-JVS(3994)*X(245)& - &-JVS(3995)*X(247)-JVS(3996)*X(248)-JVS(3997)*X(249)-JVS(3998)*X(250)-JVS(3999)*X(251)-JVS(4000)*X(252)& - &-JVS(4001)*X(253)-JVS(4002)*X(254)-JVS(4003)*X(255)-JVS(4004)*X(257)-JVS(4005)*X(258)-JVS(4006)*X(260)& - &-JVS(4007)*X(261)-JVS(4008)*X(262)-JVS(4009)*X(263)-JVS(4010)*X(264)-JVS(4011)*X(265)-JVS(4012)*X(266)& - &-JVS(4013)*X(268)-JVS(4014)*X(269)-JVS(4015)*X(270)-JVS(4016)*X(271)-JVS(4017)*X(272)-JVS(4018)*X(273)& - &-JVS(4019)*X(274)-JVS(4020)*X(275)-JVS(4021)*X(276)-JVS(4022)*X(277)-JVS(4023)*X(278)-JVS(4024)*X(279) + X(280) = X(280)-JVS(3624)*X(147)-JVS(3625)*X(173)-JVS(3626)*X(203)-JVS(3627)*X(235)-JVS(3628)*X(260)-JVS(3629)*X(262)& + &-JVS(3630)*X(265)-JVS(3631)*X(266)-JVS(3632)*X(267)-JVS(3633)*X(268)-JVS(3634)*X(269)-JVS(3635)*X(270)& + &-JVS(3636)*X(271)-JVS(3637)*X(272)-JVS(3638)*X(273)-JVS(3639)*X(274)-JVS(3640)*X(275)-JVS(3641)*X(276)& + &-JVS(3642)*X(277)-JVS(3643)*X(278)-JVS(3644)*X(279) IF (DO_SLV(281)) & - X(281) = X(281)-JVS(4033)*X(54)-JVS(4034)*X(60)-JVS(4035)*X(68)-JVS(4036)*X(71)-JVS(4037)*X(73)-JVS(4038)*X(76)& - &-JVS(4039)*X(77)-JVS(4040)*X(83)-JVS(4041)*X(86)-JVS(4042)*X(87)-JVS(4043)*X(88)-JVS(4044)*X(89)-JVS(4045)& - &*X(91)-JVS(4046)*X(92)-JVS(4047)*X(93)-JVS(4048)*X(94)-JVS(4049)*X(97)-JVS(4050)*X(99)-JVS(4051)*X(100)& - &-JVS(4052)*X(101)-JVS(4053)*X(102)-JVS(4054)*X(104)-JVS(4055)*X(106)-JVS(4056)*X(108)-JVS(4057)*X(109)& - &-JVS(4058)*X(110)-JVS(4059)*X(111)-JVS(4060)*X(113)-JVS(4061)*X(114)-JVS(4062)*X(115)-JVS(4063)*X(116)& - &-JVS(4064)*X(117)-JVS(4065)*X(118)-JVS(4066)*X(120)-JVS(4067)*X(122)-JVS(4068)*X(123)-JVS(4069)*X(124)& - &-JVS(4070)*X(126)-JVS(4071)*X(127)-JVS(4072)*X(128)-JVS(4073)*X(129)-JVS(4074)*X(130)-JVS(4075)*X(134)& - &-JVS(4076)*X(136)-JVS(4077)*X(137)-JVS(4078)*X(138)-JVS(4079)*X(139)-JVS(4080)*X(141)-JVS(4081)*X(142)& - &-JVS(4082)*X(143)-JVS(4083)*X(145)-JVS(4084)*X(146)-JVS(4085)*X(147)-JVS(4086)*X(148)-JVS(4087)*X(150)& - &-JVS(4088)*X(151)-JVS(4089)*X(152)-JVS(4090)*X(153)-JVS(4091)*X(154)-JVS(4092)*X(155)-JVS(4093)*X(158)& - &-JVS(4094)*X(159)-JVS(4095)*X(160)-JVS(4096)*X(161)-JVS(4097)*X(162)-JVS(4098)*X(163)-JVS(4099)*X(164)& - &-JVS(4100)*X(165)-JVS(4101)*X(166)-JVS(4102)*X(167)-JVS(4103)*X(168)-JVS(4104)*X(171)-JVS(4105)*X(173)& - &-JVS(4106)*X(175)-JVS(4107)*X(176)-JVS(4108)*X(177)-JVS(4109)*X(178)-JVS(4110)*X(179)-JVS(4111)*X(180)& - &-JVS(4112)*X(181)-JVS(4113)*X(182)-JVS(4114)*X(183)-JVS(4115)*X(184)-JVS(4116)*X(185)-JVS(4117)*X(186)& - &-JVS(4118)*X(187)-JVS(4119)*X(189)-JVS(4120)*X(190)-JVS(4121)*X(195)-JVS(4122)*X(197)-JVS(4123)*X(198)& - &-JVS(4124)*X(200)-JVS(4125)*X(201)-JVS(4126)*X(202)-JVS(4127)*X(203)-JVS(4128)*X(204)-JVS(4129)*X(205)& - &-JVS(4130)*X(206)-JVS(4131)*X(207)-JVS(4132)*X(208)-JVS(4133)*X(209)-JVS(4134)*X(210)-JVS(4135)*X(211)& - &-JVS(4136)*X(212)-JVS(4137)*X(213)-JVS(4138)*X(214)-JVS(4139)*X(216)-JVS(4140)*X(217)-JVS(4141)*X(218)& - &-JVS(4142)*X(220)-JVS(4143)*X(221)-JVS(4144)*X(223)-JVS(4145)*X(224)-JVS(4146)*X(225)-JVS(4147)*X(226)& - &-JVS(4148)*X(227)-JVS(4149)*X(228)-JVS(4150)*X(229)-JVS(4151)*X(230)-JVS(4152)*X(232)-JVS(4153)*X(233)& - &-JVS(4154)*X(234)-JVS(4155)*X(235)-JVS(4156)*X(236)-JVS(4157)*X(237)-JVS(4158)*X(238)-JVS(4159)*X(239)& - &-JVS(4160)*X(240)-JVS(4161)*X(241)-JVS(4162)*X(242)-JVS(4163)*X(243)-JVS(4164)*X(244)-JVS(4165)*X(245)& - &-JVS(4166)*X(246)-JVS(4167)*X(247)-JVS(4168)*X(248)-JVS(4169)*X(249)-JVS(4170)*X(250)-JVS(4171)*X(251)& - &-JVS(4172)*X(252)-JVS(4173)*X(253)-JVS(4174)*X(254)-JVS(4175)*X(255)-JVS(4176)*X(257)-JVS(4177)*X(258)& - &-JVS(4178)*X(261)-JVS(4179)*X(262)-JVS(4180)*X(263)-JVS(4181)*X(264)-JVS(4182)*X(265)-JVS(4183)*X(266)& - &-JVS(4184)*X(268)-JVS(4185)*X(269)-JVS(4186)*X(270)-JVS(4187)*X(271)-JVS(4188)*X(272)-JVS(4189)*X(273)& - &-JVS(4190)*X(274)-JVS(4191)*X(275)-JVS(4192)*X(276)-JVS(4193)*X(277)-JVS(4194)*X(278)-JVS(4195)*X(279)& - &-JVS(4196)*X(280) + X(281) = X(281)-JVS(3657)*X(67)-JVS(3658)*X(74)-JVS(3659)*X(90)-JVS(3660)*X(101)-JVS(3661)*X(102)-JVS(3662)*X(114)& + &-JVS(3663)*X(115)-JVS(3664)*X(118)-JVS(3665)*X(134)-JVS(3666)*X(142)-JVS(3667)*X(143)-JVS(3668)*X(153)& + &-JVS(3669)*X(154)-JVS(3670)*X(155)-JVS(3671)*X(161)-JVS(3672)*X(170)-JVS(3673)*X(173)-JVS(3674)*X(176)& + &-JVS(3675)*X(178)-JVS(3676)*X(179)-JVS(3677)*X(184)-JVS(3678)*X(191)-JVS(3679)*X(195)-JVS(3680)*X(199)& + &-JVS(3681)*X(203)-JVS(3682)*X(207)-JVS(3683)*X(208)-JVS(3684)*X(210)-JVS(3685)*X(214)-JVS(3686)*X(215)& + &-JVS(3687)*X(216)-JVS(3688)*X(222)-JVS(3689)*X(223)-JVS(3690)*X(224)-JVS(3691)*X(225)-JVS(3692)*X(226)& + &-JVS(3693)*X(228)-JVS(3694)*X(229)-JVS(3695)*X(230)-JVS(3696)*X(232)-JVS(3697)*X(233)-JVS(3698)*X(234)& + &-JVS(3699)*X(236)-JVS(3700)*X(238)-JVS(3701)*X(240)-JVS(3702)*X(241)-JVS(3703)*X(242)-JVS(3704)*X(243)& + &-JVS(3705)*X(244)-JVS(3706)*X(245)-JVS(3707)*X(246)-JVS(3708)*X(247)-JVS(3709)*X(248)-JVS(3710)*X(249)& + &-JVS(3711)*X(250)-JVS(3712)*X(251)-JVS(3713)*X(252)-JVS(3714)*X(253)-JVS(3715)*X(254)-JVS(3716)*X(256)& + &-JVS(3717)*X(257)-JVS(3718)*X(258)-JVS(3719)*X(259)-JVS(3720)*X(261)-JVS(3721)*X(262)-JVS(3722)*X(263)& + &-JVS(3723)*X(264)-JVS(3724)*X(265)-JVS(3725)*X(266)-JVS(3726)*X(267)-JVS(3727)*X(269)-JVS(3728)*X(270)& + &-JVS(3729)*X(272)-JVS(3730)*X(273)-JVS(3731)*X(274)-JVS(3732)*X(275)-JVS(3733)*X(276)-JVS(3734)*X(277)& + &-JVS(3735)*X(278)-JVS(3736)*X(279)-JVS(3737)*X(280) IF (DO_SLV(282)) & - X(282) = X(282)-JVS(4204)*X(2)-JVS(4205)*X(44)-JVS(4206)*X(45)-JVS(4207)*X(50)-JVS(4208)*X(55)-JVS(4209)*X(69)& - &-JVS(4210)*X(70)-JVS(4211)*X(74)-JVS(4212)*X(97)-JVS(4213)*X(121)-JVS(4214)*X(125)-JVS(4215)*X(132)-JVS(4216)& - &*X(157)-JVS(4217)*X(172)-JVS(4218)*X(199)-JVS(4219)*X(219)-JVS(4220)*X(223)-JVS(4221)*X(231)-JVS(4222)*X(234)& - &-JVS(4223)*X(249)-JVS(4224)*X(251)-JVS(4225)*X(252)-JVS(4226)*X(253)-JVS(4227)*X(254)-JVS(4228)*X(255)& - &-JVS(4229)*X(256)-JVS(4230)*X(257)-JVS(4231)*X(259)-JVS(4232)*X(261)-JVS(4233)*X(262)-JVS(4234)*X(263)& - &-JVS(4235)*X(264)-JVS(4236)*X(265)-JVS(4237)*X(266)-JVS(4238)*X(267)-JVS(4239)*X(268)-JVS(4240)*X(269)& - &-JVS(4241)*X(270)-JVS(4242)*X(271)-JVS(4243)*X(272)-JVS(4244)*X(273)-JVS(4245)*X(274)-JVS(4246)*X(275)& - &-JVS(4247)*X(276)-JVS(4248)*X(277)-JVS(4249)*X(278)-JVS(4250)*X(279)-JVS(4251)*X(280)-JVS(4252)*X(281) + X(282) = X(282)-JVS(3749)*X(76)-JVS(3750)*X(138)-JVS(3751)*X(142)-JVS(3752)*X(147)-JVS(3753)*X(148)-JVS(3754)*X(154)& + &-JVS(3755)*X(155)-JVS(3756)*X(159)-JVS(3757)*X(160)-JVS(3758)*X(170)-JVS(3759)*X(177)-JVS(3760)*X(180)& + &-JVS(3761)*X(190)-JVS(3762)*X(191)-JVS(3763)*X(199)-JVS(3764)*X(207)-JVS(3765)*X(210)-JVS(3766)*X(215)& + &-JVS(3767)*X(216)-JVS(3768)*X(224)-JVS(3769)*X(225)-JVS(3770)*X(234)-JVS(3771)*X(238)-JVS(3772)*X(248)& + &-JVS(3773)*X(249)-JVS(3774)*X(251)-JVS(3775)*X(253)-JVS(3776)*X(255)-JVS(3777)*X(256)-JVS(3778)*X(257)& + &-JVS(3779)*X(259)-JVS(3780)*X(261)-JVS(3781)*X(263)-JVS(3782)*X(264)-JVS(3783)*X(265)-JVS(3784)*X(266)& + &-JVS(3785)*X(267)-JVS(3786)*X(269)-JVS(3787)*X(270)-JVS(3788)*X(272)-JVS(3789)*X(273)-JVS(3790)*X(274)& + &-JVS(3791)*X(275)-JVS(3792)*X(276)-JVS(3793)*X(277)-JVS(3794)*X(278)-JVS(3795)*X(279)-JVS(3796)*X(280)& + &-JVS(3797)*X(281) IF (DO_SLV(283)) & - X(283) = X(283)-JVS(4259)*X(135)-JVS(4260)*X(169)-JVS(4261)*X(199)-JVS(4262)*X(231)-JVS(4263)*X(256)-JVS(4264)*X(259)& - &-JVS(4265)*X(260)-JVS(4266)*X(261)-JVS(4267)*X(262)-JVS(4268)*X(263)-JVS(4269)*X(264)-JVS(4270)*X(265)& - &-JVS(4271)*X(266)-JVS(4272)*X(267)-JVS(4273)*X(268)-JVS(4274)*X(269)-JVS(4275)*X(270)-JVS(4276)*X(271)& - &-JVS(4277)*X(272)-JVS(4278)*X(273)-JVS(4279)*X(274)-JVS(4280)*X(275)-JVS(4281)*X(276)-JVS(4282)*X(277)& - &-JVS(4283)*X(278)-JVS(4284)*X(279)-JVS(4285)*X(280)-JVS(4286)*X(281)-JVS(4287)*X(282) + X(283) = X(283)-JVS(3808)*X(203)-JVS(3809)*X(235)-JVS(3810)*X(260)-JVS(3811)*X(262)-JVS(3812)*X(268)-JVS(3813)*X(269)& + &-JVS(3814)*X(270)-JVS(3815)*X(273)-JVS(3816)*X(274)-JVS(3817)*X(275)-JVS(3818)*X(276)-JVS(3819)*X(277)& + &-JVS(3820)*X(278)-JVS(3821)*X(279)-JVS(3822)*X(280)-JVS(3823)*X(281)-JVS(3824)*X(282) IF (DO_SLV(284)) & - X(284) = X(284)-JVS(4293)*X(42)-JVS(4294)*X(44)-JVS(4295)*X(45)-JVS(4296)*X(46)-JVS(4297)*X(48)-JVS(4298)*X(51)& - &-JVS(4299)*X(52)-JVS(4300)*X(53)-JVS(4301)*X(55)-JVS(4302)*X(61)-JVS(4303)*X(62)-JVS(4304)*X(70)-JVS(4305)& - &*X(74)-JVS(4306)*X(78)-JVS(4307)*X(79)-JVS(4308)*X(80)-JVS(4309)*X(81)-JVS(4310)*X(107)-JVS(4311)*X(173)& - &-JVS(4312)*X(186)-JVS(4313)*X(192)-JVS(4314)*X(208)-JVS(4315)*X(220)-JVS(4316)*X(223)-JVS(4317)*X(230)& - &-JVS(4318)*X(231)-JVS(4319)*X(244)-JVS(4320)*X(247)-JVS(4321)*X(254)-JVS(4322)*X(256)-JVS(4323)*X(257)& - &-JVS(4324)*X(258)-JVS(4325)*X(259)-JVS(4326)*X(261)-JVS(4327)*X(262)-JVS(4328)*X(263)-JVS(4329)*X(264)& - &-JVS(4330)*X(265)-JVS(4331)*X(266)-JVS(4332)*X(267)-JVS(4333)*X(268)-JVS(4334)*X(269)-JVS(4335)*X(270)& - &-JVS(4336)*X(271)-JVS(4337)*X(272)-JVS(4338)*X(273)-JVS(4339)*X(274)-JVS(4340)*X(275)-JVS(4341)*X(276)& - &-JVS(4342)*X(277)-JVS(4343)*X(278)-JVS(4344)*X(279)-JVS(4345)*X(280)-JVS(4346)*X(281)-JVS(4347)*X(282)& - &-JVS(4348)*X(283) + X(284) = X(284)-JVS(3834)*X(58)-JVS(3835)*X(64)-JVS(3836)*X(72)-JVS(3837)*X(74)-JVS(3838)*X(78)-JVS(3839)*X(79)& + &-JVS(3840)*X(80)-JVS(3841)*X(85)-JVS(3842)*X(87)-JVS(3843)*X(89)-JVS(3844)*X(91)-JVS(3845)*X(93)-JVS(3846)& + &*X(94)-JVS(3847)*X(95)-JVS(3848)*X(96)-JVS(3849)*X(100)-JVS(3850)*X(101)-JVS(3851)*X(102)-JVS(3852)*X(104)& + &-JVS(3853)*X(106)-JVS(3854)*X(108)-JVS(3855)*X(109)-JVS(3856)*X(110)-JVS(3857)*X(112)-JVS(3858)*X(113)& + &-JVS(3859)*X(115)-JVS(3860)*X(116)-JVS(3861)*X(117)-JVS(3862)*X(118)-JVS(3863)*X(119)-JVS(3864)*X(120)& + &-JVS(3865)*X(121)-JVS(3866)*X(123)-JVS(3867)*X(125)-JVS(3868)*X(126)-JVS(3869)*X(127)-JVS(3870)*X(129)& + &-JVS(3871)*X(130)-JVS(3872)*X(131)-JVS(3873)*X(132)-JVS(3874)*X(133)-JVS(3875)*X(137)-JVS(3876)*X(139)& + &-JVS(3877)*X(140)-JVS(3878)*X(141)-JVS(3879)*X(142)-JVS(3880)*X(144)-JVS(3881)*X(145)-JVS(3882)*X(146)& + &-JVS(3883)*X(148)-JVS(3884)*X(149)-JVS(3885)*X(150)-JVS(3886)*X(151)-JVS(3887)*X(152)-JVS(3888)*X(154)& + &-JVS(3889)*X(155)-JVS(3890)*X(156)-JVS(3891)*X(157)-JVS(3892)*X(158)-JVS(3893)*X(159)-JVS(3894)*X(162)& + &-JVS(3895)*X(163)-JVS(3896)*X(164)-JVS(3897)*X(165)-JVS(3898)*X(166)-JVS(3899)*X(167)-JVS(3900)*X(168)& + &-JVS(3901)*X(169)-JVS(3902)*X(170)-JVS(3903)*X(171)-JVS(3904)*X(172)-JVS(3905)*X(175)-JVS(3906)*X(177)& + &-JVS(3907)*X(179)-JVS(3908)*X(180)-JVS(3909)*X(181)-JVS(3910)*X(182)-JVS(3911)*X(183)-JVS(3912)*X(184)& + &-JVS(3913)*X(185)-JVS(3914)*X(186)-JVS(3915)*X(187)-JVS(3916)*X(188)-JVS(3917)*X(189)-JVS(3918)*X(190)& + &-JVS(3919)*X(191)-JVS(3920)*X(192)-JVS(3921)*X(194)-JVS(3922)*X(200)-JVS(3923)*X(201)-JVS(3924)*X(202)& + &-JVS(3925)*X(204)-JVS(3926)*X(205)-JVS(3927)*X(206)-JVS(3928)*X(207)-JVS(3929)*X(208)-JVS(3930)*X(209)& + &-JVS(3931)*X(210)-JVS(3932)*X(211)-JVS(3933)*X(212)-JVS(3934)*X(213)-JVS(3935)*X(214)-JVS(3936)*X(215)& + &-JVS(3937)*X(216)-JVS(3938)*X(217)-JVS(3939)*X(218)-JVS(3940)*X(220)-JVS(3941)*X(222)-JVS(3942)*X(223)& + &-JVS(3943)*X(224)-JVS(3944)*X(225)-JVS(3945)*X(227)-JVS(3946)*X(228)-JVS(3947)*X(229)-JVS(3948)*X(230)& + &-JVS(3949)*X(231)-JVS(3950)*X(232)-JVS(3951)*X(233)-JVS(3952)*X(234)-JVS(3953)*X(236)-JVS(3954)*X(237)& + &-JVS(3955)*X(238)-JVS(3956)*X(239)-JVS(3957)*X(240)-JVS(3958)*X(241)-JVS(3959)*X(242)-JVS(3960)*X(243)& + &-JVS(3961)*X(244)-JVS(3962)*X(245)-JVS(3963)*X(246)-JVS(3964)*X(247)-JVS(3965)*X(248)-JVS(3966)*X(249)& + &-JVS(3967)*X(250)-JVS(3968)*X(251)-JVS(3969)*X(252)-JVS(3970)*X(253)-JVS(3971)*X(254)-JVS(3972)*X(255)& + &-JVS(3973)*X(256)-JVS(3974)*X(257)-JVS(3975)*X(258)-JVS(3976)*X(259)-JVS(3977)*X(261)-JVS(3978)*X(263)& + &-JVS(3979)*X(264)-JVS(3980)*X(266)-JVS(3981)*X(267)-JVS(3982)*X(268)-JVS(3983)*X(269)-JVS(3984)*X(270)& + &-JVS(3985)*X(272)-JVS(3986)*X(273)-JVS(3987)*X(274)-JVS(3988)*X(275)-JVS(3989)*X(276)-JVS(3990)*X(277)& + &-JVS(3991)*X(278)-JVS(3992)*X(279)-JVS(3993)*X(280)-JVS(3994)*X(281)-JVS(3995)*X(282)-JVS(3996)*X(283) IF (DO_SLV(285)) & - X(285) = X(285)-JVS(4353)*X(3)-JVS(4354)*X(39)-JVS(4355)*X(42)-JVS(4356)*X(46)-JVS(4357)*X(48)-JVS(4358)*X(51)& - &-JVS(4359)*X(52)-JVS(4360)*X(53)-JVS(4361)*X(55)-JVS(4362)*X(68)-JVS(4363)*X(72)-JVS(4364)*X(73)-JVS(4365)& - &*X(78)-JVS(4366)*X(79)-JVS(4367)*X(80)-JVS(4368)*X(81)-JVS(4369)*X(98)-JVS(4370)*X(100)-JVS(4371)*X(103)& - &-JVS(4372)*X(112)-JVS(4373)*X(121)-JVS(4374)*X(129)-JVS(4375)*X(132)-JVS(4376)*X(134)-JVS(4377)*X(157)& - &-JVS(4378)*X(172)-JVS(4379)*X(186)-JVS(4380)*X(192)-JVS(4381)*X(199)-JVS(4382)*X(207)-JVS(4383)*X(208)& - &-JVS(4384)*X(213)-JVS(4385)*X(214)-JVS(4386)*X(215)-JVS(4387)*X(219)-JVS(4388)*X(220)-JVS(4389)*X(221)& - &-JVS(4390)*X(223)-JVS(4391)*X(230)-JVS(4392)*X(231)-JVS(4393)*X(232)-JVS(4394)*X(233)-JVS(4395)*X(234)& - &-JVS(4396)*X(235)-JVS(4397)*X(236)-JVS(4398)*X(237)-JVS(4399)*X(238)-JVS(4400)*X(239)-JVS(4401)*X(240)& - &-JVS(4402)*X(241)-JVS(4403)*X(242)-JVS(4404)*X(243)-JVS(4405)*X(244)-JVS(4406)*X(245)-JVS(4407)*X(246)& - &-JVS(4408)*X(247)-JVS(4409)*X(248)-JVS(4410)*X(249)-JVS(4411)*X(250)-JVS(4412)*X(251)-JVS(4413)*X(252)& - &-JVS(4414)*X(253)-JVS(4415)*X(254)-JVS(4416)*X(255)-JVS(4417)*X(256)-JVS(4418)*X(257)-JVS(4419)*X(258)& - &-JVS(4420)*X(259)-JVS(4421)*X(261)-JVS(4422)*X(262)-JVS(4423)*X(263)-JVS(4424)*X(264)-JVS(4425)*X(265)& - &-JVS(4426)*X(266)-JVS(4427)*X(267)-JVS(4428)*X(268)-JVS(4429)*X(269)-JVS(4430)*X(270)-JVS(4431)*X(271)& - &-JVS(4432)*X(272)-JVS(4433)*X(273)-JVS(4434)*X(274)-JVS(4435)*X(275)-JVS(4436)*X(276)-JVS(4437)*X(277)& - &-JVS(4438)*X(278)-JVS(4439)*X(279)-JVS(4440)*X(280)-JVS(4441)*X(281)-JVS(4442)*X(282)-JVS(4443)*X(283)& - &-JVS(4444)*X(284) + X(285) = X(285)-JVS(4005)*X(52)-JVS(4006)*X(53)-JVS(4007)*X(54)-JVS(4008)*X(55)-JVS(4009)*X(56)-JVS(4010)*X(57)& + &-JVS(4011)*X(59)-JVS(4012)*X(75)-JVS(4013)*X(81)-JVS(4014)*X(82)-JVS(4015)*X(83)-JVS(4016)*X(84)-JVS(4017)& + &*X(103)-JVS(4018)*X(111)-JVS(4019)*X(149)-JVS(4020)*X(197)-JVS(4021)*X(217)-JVS(4022)*X(227)-JVS(4023)*X(235)& + &-JVS(4024)*X(239)-JVS(4025)*X(254)-JVS(4026)*X(255)-JVS(4027)*X(256)-JVS(4028)*X(257)-JVS(4029)*X(259)& + &-JVS(4030)*X(261)-JVS(4031)*X(262)-JVS(4032)*X(264)-JVS(4033)*X(266)-JVS(4034)*X(267)-JVS(4035)*X(268)& + &-JVS(4036)*X(269)-JVS(4037)*X(270)-JVS(4038)*X(271)-JVS(4039)*X(272)-JVS(4040)*X(273)-JVS(4041)*X(274)& + &-JVS(4042)*X(275)-JVS(4043)*X(276)-JVS(4044)*X(277)-JVS(4045)*X(278)-JVS(4046)*X(279)-JVS(4047)*X(280)& + &-JVS(4048)*X(281)-JVS(4049)*X(282)-JVS(4050)*X(283)-JVS(4051)*X(284) IF (DO_SLV(286)) & - X(286) = X(286)-JVS(4448)*X(62)-JVS(4449)*X(82)-JVS(4450)*X(85)-JVS(4451)*X(119)-JVS(4452)*X(135)-JVS(4453)*X(144)& - &-JVS(4454)*X(191)-JVS(4455)*X(208)-JVS(4456)*X(220)-JVS(4457)*X(230)-JVS(4458)*X(244)-JVS(4459)*X(247)& - &-JVS(4460)*X(254)-JVS(4461)*X(256)-JVS(4462)*X(257)-JVS(4463)*X(258)-JVS(4464)*X(260)-JVS(4465)*X(261)& - &-JVS(4466)*X(262)-JVS(4467)*X(263)-JVS(4468)*X(266)-JVS(4469)*X(267)-JVS(4470)*X(268)-JVS(4471)*X(269)& - &-JVS(4472)*X(270)-JVS(4473)*X(271)-JVS(4474)*X(272)-JVS(4475)*X(273)-JVS(4476)*X(274)-JVS(4477)*X(275)& - &-JVS(4478)*X(276)-JVS(4479)*X(277)-JVS(4480)*X(278)-JVS(4481)*X(279)-JVS(4482)*X(280)-JVS(4483)*X(281)& - &-JVS(4484)*X(282)-JVS(4485)*X(283)-JVS(4486)*X(284)-JVS(4487)*X(285) + X(286) = X(286)-JVS(4059)*X(41)-JVS(4060)*X(43)-JVS(4061)*X(46)-JVS(4062)*X(58)-JVS(4063)*X(64)-JVS(4064)*X(66)& + &-JVS(4065)*X(68)-JVS(4066)*X(69)-JVS(4067)*X(70)-JVS(4068)*X(71)-JVS(4069)*X(72)-JVS(4070)*X(75)-JVS(4071)& + &*X(76)-JVS(4072)*X(77)-JVS(4073)*X(78)-JVS(4074)*X(79)-JVS(4075)*X(80)-JVS(4076)*X(81)-JVS(4077)*X(82)& + &-JVS(4078)*X(83)-JVS(4079)*X(84)-JVS(4080)*X(85)-JVS(4081)*X(86)-JVS(4082)*X(87)-JVS(4083)*X(88)-JVS(4084)& + &*X(89)-JVS(4085)*X(90)-JVS(4086)*X(91)-JVS(4087)*X(93)-JVS(4088)*X(94)-JVS(4089)*X(95)-JVS(4090)*X(96)& + &-JVS(4091)*X(97)-JVS(4092)*X(100)-JVS(4093)*X(101)-JVS(4094)*X(102)-JVS(4095)*X(104)-JVS(4096)*X(105)& + &-JVS(4097)*X(106)-JVS(4098)*X(107)-JVS(4099)*X(109)-JVS(4100)*X(110)-JVS(4101)*X(111)-JVS(4102)*X(112)& + &-JVS(4103)*X(113)-JVS(4104)*X(114)-JVS(4105)*X(115)-JVS(4106)*X(116)-JVS(4107)*X(117)-JVS(4108)*X(118)& + &-JVS(4109)*X(119)-JVS(4110)*X(120)-JVS(4111)*X(121)-JVS(4112)*X(122)-JVS(4113)*X(123)-JVS(4114)*X(124)& + &-JVS(4115)*X(125)-JVS(4116)*X(127)-JVS(4117)*X(128)-JVS(4118)*X(129)-JVS(4119)*X(130)-JVS(4120)*X(131)& + &-JVS(4121)*X(132)-JVS(4122)*X(133)-JVS(4123)*X(134)-JVS(4124)*X(136)-JVS(4125)*X(137)-JVS(4126)*X(139)& + &-JVS(4127)*X(140)-JVS(4128)*X(141)-JVS(4129)*X(142)-JVS(4130)*X(143)-JVS(4131)*X(144)-JVS(4132)*X(145)& + &-JVS(4133)*X(146)-JVS(4134)*X(147)-JVS(4135)*X(148)-JVS(4136)*X(149)-JVS(4137)*X(150)-JVS(4138)*X(151)& + &-JVS(4139)*X(152)-JVS(4140)*X(153)-JVS(4141)*X(154)-JVS(4142)*X(155)-JVS(4143)*X(156)-JVS(4144)*X(157)& + &-JVS(4145)*X(158)-JVS(4146)*X(159)-JVS(4147)*X(161)-JVS(4148)*X(162)-JVS(4149)*X(163)-JVS(4150)*X(164)& + &-JVS(4151)*X(165)-JVS(4152)*X(166)-JVS(4153)*X(167)-JVS(4154)*X(168)-JVS(4155)*X(169)-JVS(4156)*X(170)& + &-JVS(4157)*X(171)-JVS(4158)*X(172)-JVS(4159)*X(175)-JVS(4160)*X(176)-JVS(4161)*X(177)-JVS(4162)*X(178)& + &-JVS(4163)*X(179)-JVS(4164)*X(180)-JVS(4165)*X(181)-JVS(4166)*X(182)-JVS(4167)*X(183)-JVS(4168)*X(184)& + &-JVS(4169)*X(186)-JVS(4170)*X(187)-JVS(4171)*X(188)-JVS(4172)*X(189)-JVS(4173)*X(190)-JVS(4174)*X(191)& + &-JVS(4175)*X(192)-JVS(4176)*X(193)-JVS(4177)*X(194)-JVS(4178)*X(195)-JVS(4179)*X(196)-JVS(4180)*X(197)& + &-JVS(4181)*X(198)-JVS(4182)*X(199)-JVS(4183)*X(200)-JVS(4184)*X(201)-JVS(4185)*X(202)-JVS(4186)*X(203)& + &-JVS(4187)*X(204)-JVS(4188)*X(205)-JVS(4189)*X(206)-JVS(4190)*X(207)-JVS(4191)*X(208)-JVS(4192)*X(209)& + &-JVS(4193)*X(210)-JVS(4194)*X(211)-JVS(4195)*X(212)-JVS(4196)*X(213)-JVS(4197)*X(214)-JVS(4198)*X(215)& + &-JVS(4199)*X(216)-JVS(4200)*X(217)-JVS(4201)*X(218)-JVS(4202)*X(219)-JVS(4203)*X(220)-JVS(4204)*X(221)& + &-JVS(4205)*X(222)-JVS(4206)*X(223)-JVS(4207)*X(224)-JVS(4208)*X(225)-JVS(4209)*X(226)-JVS(4210)*X(227)& + &-JVS(4211)*X(228)-JVS(4212)*X(229)-JVS(4213)*X(230)-JVS(4214)*X(231)-JVS(4215)*X(232)-JVS(4216)*X(233)& + &-JVS(4217)*X(234)-JVS(4218)*X(235)-JVS(4219)*X(236)-JVS(4220)*X(237)-JVS(4221)*X(238)-JVS(4222)*X(239)& + &-JVS(4223)*X(240)-JVS(4224)*X(241)-JVS(4225)*X(242)-JVS(4226)*X(243)-JVS(4227)*X(244)-JVS(4228)*X(245)& + &-JVS(4229)*X(246)-JVS(4230)*X(247)-JVS(4231)*X(248)-JVS(4232)*X(249)-JVS(4233)*X(250)-JVS(4234)*X(251)& + &-JVS(4235)*X(252)-JVS(4236)*X(253)-JVS(4237)*X(254)-JVS(4238)*X(255)-JVS(4239)*X(256)-JVS(4240)*X(257)& + &-JVS(4241)*X(258)-JVS(4242)*X(259)-JVS(4243)*X(260)-JVS(4244)*X(261)-JVS(4245)*X(262)-JVS(4246)*X(263)& + &-JVS(4247)*X(264)-JVS(4248)*X(265)-JVS(4249)*X(266)-JVS(4250)*X(267)-JVS(4251)*X(268)-JVS(4252)*X(269)& + &-JVS(4253)*X(270)-JVS(4254)*X(271)-JVS(4255)*X(272)-JVS(4256)*X(273)-JVS(4257)*X(274)-JVS(4258)*X(275)& + &-JVS(4259)*X(276)-JVS(4260)*X(277)-JVS(4261)*X(278)-JVS(4262)*X(279)-JVS(4263)*X(280)-JVS(4264)*X(281)& + &-JVS(4265)*X(282)-JVS(4266)*X(283)-JVS(4267)*X(284)-JVS(4268)*X(285) IF (DO_SLV(287)) & - X(287) = X(287)-JVS(4490)*X(63)-JVS(4491)*X(71)-JVS(4492)*X(82)-JVS(4493)*X(99)-JVS(4494)*X(101)-JVS(4495)*X(109)& - &-JVS(4496)*X(112)-JVS(4497)*X(117)-JVS(4498)*X(131)-JVS(4499)*X(138)-JVS(4500)*X(140)-JVS(4501)*X(149)& - &-JVS(4502)*X(150)-JVS(4503)*X(151)-JVS(4504)*X(157)-JVS(4505)*X(165)-JVS(4506)*X(169)-JVS(4507)*X(172)& - &-JVS(4508)*X(174)-JVS(4509)*X(175)-JVS(4510)*X(178)-JVS(4511)*X(187)-JVS(4512)*X(191)-JVS(4513)*X(196)& - &-JVS(4514)*X(199)-JVS(4515)*X(203)-JVS(4516)*X(205)-JVS(4517)*X(206)-JVS(4518)*X(210)-JVS(4519)*X(211)& - &-JVS(4520)*X(212)-JVS(4521)*X(217)-JVS(4522)*X(218)-JVS(4523)*X(220)-JVS(4524)*X(221)-JVS(4525)*X(222)& - &-JVS(4526)*X(224)-JVS(4527)*X(225)-JVS(4528)*X(226)-JVS(4529)*X(228)-JVS(4530)*X(229)-JVS(4531)*X(230)& - &-JVS(4532)*X(232)-JVS(4533)*X(234)-JVS(4534)*X(236)-JVS(4535)*X(237)-JVS(4536)*X(238)-JVS(4537)*X(239)& - &-JVS(4538)*X(240)-JVS(4539)*X(241)-JVS(4540)*X(242)-JVS(4541)*X(243)-JVS(4542)*X(244)-JVS(4543)*X(245)& - &-JVS(4544)*X(246)-JVS(4545)*X(247)-JVS(4546)*X(248)-JVS(4547)*X(249)-JVS(4548)*X(251)-JVS(4549)*X(252)& - &-JVS(4550)*X(253)-JVS(4551)*X(254)-JVS(4552)*X(255)-JVS(4553)*X(257)-JVS(4554)*X(258)-JVS(4555)*X(259)& - &-JVS(4556)*X(260)-JVS(4557)*X(261)-JVS(4558)*X(262)-JVS(4559)*X(263)-JVS(4560)*X(265)-JVS(4561)*X(266)& - &-JVS(4562)*X(268)-JVS(4563)*X(269)-JVS(4564)*X(270)-JVS(4565)*X(271)-JVS(4566)*X(272)-JVS(4567)*X(273)& - &-JVS(4568)*X(274)-JVS(4569)*X(275)-JVS(4570)*X(276)-JVS(4571)*X(277)-JVS(4572)*X(278)-JVS(4573)*X(279)& - &-JVS(4574)*X(280)-JVS(4575)*X(281)-JVS(4576)*X(282)-JVS(4577)*X(283)-JVS(4578)*X(284)-JVS(4579)*X(285)& - &-JVS(4580)*X(286) + X(287) = X(287)-JVS(4275)*X(138)-JVS(4276)*X(173)-JVS(4277)*X(203)-JVS(4278)*X(235)-JVS(4279)*X(260)-JVS(4280)*X(262)& + &-JVS(4281)*X(265)-JVS(4282)*X(266)-JVS(4283)*X(267)-JVS(4284)*X(268)-JVS(4285)*X(269)-JVS(4286)*X(270)& + &-JVS(4287)*X(271)-JVS(4288)*X(272)-JVS(4289)*X(273)-JVS(4290)*X(274)-JVS(4291)*X(275)-JVS(4292)*X(276)& + &-JVS(4293)*X(277)-JVS(4294)*X(278)-JVS(4295)*X(279)-JVS(4296)*X(280)-JVS(4297)*X(281)-JVS(4298)*X(282)& + &-JVS(4299)*X(283)-JVS(4300)*X(284)-JVS(4301)*X(285)-JVS(4302)*X(286) +IF (DO_SLV(288)) & + X(288) = X(288)-JVS(4308)*X(47)-JVS(4309)*X(48)-JVS(4310)*X(52)-JVS(4311)*X(53)-JVS(4312)*X(54)-JVS(4313)*X(55)& + &-JVS(4314)*X(56)-JVS(4315)*X(57)-JVS(4316)*X(59)-JVS(4317)*X(65)-JVS(4318)*X(66)-JVS(4319)*X(71)-JVS(4320)& + &*X(77)-JVS(4321)*X(81)-JVS(4322)*X(82)-JVS(4323)*X(83)-JVS(4324)*X(84)-JVS(4325)*X(111)-JVS(4326)*X(149)& + &-JVS(4327)*X(177)-JVS(4328)*X(190)-JVS(4329)*X(197)-JVS(4330)*X(212)-JVS(4331)*X(224)-JVS(4332)*X(227)& + &-JVS(4333)*X(234)-JVS(4334)*X(235)-JVS(4335)*X(248)-JVS(4336)*X(251)-JVS(4337)*X(253)-JVS(4338)*X(260)& + &-JVS(4339)*X(261)-JVS(4340)*X(262)-JVS(4341)*X(263)-JVS(4342)*X(264)-JVS(4343)*X(266)-JVS(4344)*X(267)& + &-JVS(4345)*X(268)-JVS(4346)*X(269)-JVS(4347)*X(270)-JVS(4348)*X(271)-JVS(4349)*X(272)-JVS(4350)*X(273)& + &-JVS(4351)*X(274)-JVS(4352)*X(275)-JVS(4353)*X(276)-JVS(4354)*X(277)-JVS(4355)*X(278)-JVS(4356)*X(279)& + &-JVS(4357)*X(280)-JVS(4358)*X(281)-JVS(4359)*X(282)-JVS(4360)*X(283)-JVS(4361)*X(284)-JVS(4362)*X(285)& + &-JVS(4363)*X(286)-JVS(4364)*X(287) +IF (DO_SLV(289)) & + X(289) = X(289)-JVS(4369)*X(124)-JVS(4370)*X(161)-JVS(4371)*X(221)-JVS(4372)*X(235)-JVS(4373)*X(238)-JVS(4374)*X(253)& + &-JVS(4375)*X(254)-JVS(4376)*X(256)-JVS(4377)*X(257)-JVS(4378)*X(258)-JVS(4379)*X(259)-JVS(4380)*X(260)& + &-JVS(4381)*X(261)-JVS(4382)*X(262)-JVS(4383)*X(263)-JVS(4384)*X(264)-JVS(4385)*X(266)-JVS(4386)*X(267)& + &-JVS(4387)*X(271)-JVS(4388)*X(272)-JVS(4389)*X(273)-JVS(4390)*X(274)-JVS(4391)*X(275)-JVS(4392)*X(276)& + &-JVS(4393)*X(277)-JVS(4394)*X(278)-JVS(4395)*X(279)-JVS(4396)*X(280)-JVS(4397)*X(281)-JVS(4398)*X(282)& + &-JVS(4399)*X(283)-JVS(4400)*X(284)-JVS(4401)*X(285)-JVS(4402)*X(286)-JVS(4403)*X(287)-JVS(4404)*X(288) +IF (DO_SLV(290)) & + X(290) = X(290)-JVS(4408)*X(3)-JVS(4409)*X(43)-JVS(4410)*X(52)-JVS(4411)*X(53)-JVS(4412)*X(54)-JVS(4413)*X(55)& + &-JVS(4414)*X(56)-JVS(4415)*X(57)-JVS(4416)*X(59)-JVS(4417)*X(72)-JVS(4418)*X(75)-JVS(4419)*X(78)-JVS(4420)& + &*X(81)-JVS(4421)*X(82)-JVS(4422)*X(83)-JVS(4423)*X(84)-JVS(4424)*X(99)-JVS(4425)*X(103)-JVS(4426)*X(114)& + &-JVS(4427)*X(124)-JVS(4428)*X(133)-JVS(4429)*X(135)-JVS(4430)*X(137)-JVS(4431)*X(149)-JVS(4432)*X(161)& + &-JVS(4433)*X(176)-JVS(4434)*X(190)-JVS(4435)*X(197)-JVS(4436)*X(203)-JVS(4437)*X(211)-JVS(4438)*X(212)& + &-JVS(4439)*X(217)-JVS(4440)*X(218)-JVS(4441)*X(219)-JVS(4442)*X(221)-JVS(4443)*X(224)-JVS(4444)*X(225)& + &-JVS(4445)*X(227)-JVS(4446)*X(234)-JVS(4447)*X(235)-JVS(4448)*X(236)-JVS(4449)*X(237)-JVS(4450)*X(238)& + &-JVS(4451)*X(239)-JVS(4452)*X(240)-JVS(4453)*X(241)-JVS(4454)*X(242)-JVS(4455)*X(243)-JVS(4456)*X(244)& + &-JVS(4457)*X(245)-JVS(4458)*X(246)-JVS(4459)*X(247)-JVS(4460)*X(248)-JVS(4461)*X(249)-JVS(4462)*X(250)& + &-JVS(4463)*X(251)-JVS(4464)*X(252)-JVS(4465)*X(253)-JVS(4466)*X(254)-JVS(4467)*X(255)-JVS(4468)*X(256)& + &-JVS(4469)*X(257)-JVS(4470)*X(258)-JVS(4471)*X(259)-JVS(4472)*X(260)-JVS(4473)*X(261)-JVS(4474)*X(262)& + &-JVS(4475)*X(263)-JVS(4476)*X(264)-JVS(4477)*X(266)-JVS(4478)*X(267)-JVS(4479)*X(268)-JVS(4480)*X(269)& + &-JVS(4481)*X(270)-JVS(4482)*X(271)-JVS(4483)*X(272)-JVS(4484)*X(273)-JVS(4485)*X(274)-JVS(4486)*X(275)& + &-JVS(4487)*X(276)-JVS(4488)*X(277)-JVS(4489)*X(278)-JVS(4490)*X(279)-JVS(4491)*X(280)-JVS(4492)*X(281)& + &-JVS(4493)*X(282)-JVS(4494)*X(283)-JVS(4495)*X(284)-JVS(4496)*X(285)-JVS(4497)*X(286)-JVS(4498)*X(287)& + &-JVS(4499)*X(288)-JVS(4500)*X(289) +IF (DO_SLV(291)) & + X(291) = X(291)-JVS(4503)*X(50)-JVS(4504)*X(51)-JVS(4505)*X(62)-JVS(4506)*X(63)-JVS(4507)*X(65)-JVS(4508)*X(67)& + &-JVS(4509)*X(68)-JVS(4510)*X(74)-JVS(4511)*X(87)-JVS(4512)*X(89)-JVS(4513)*X(91)-JVS(4514)*X(92)-JVS(4515)& + &*X(96)-JVS(4516)*X(97)-JVS(4517)*X(102)-JVS(4518)*X(113)-JVS(4519)*X(121)-JVS(4520)*X(123)-JVS(4521)*X(134)& + &-JVS(4522)*X(138)-JVS(4523)*X(139)-JVS(4524)*X(140)-JVS(4525)*X(144)-JVS(4526)*X(145)-JVS(4527)*X(146)& + &-JVS(4528)*X(147)-JVS(4529)*X(150)-JVS(4530)*X(151)-JVS(4531)*X(152)-JVS(4532)*X(153)-JVS(4533)*X(160)& + &-JVS(4534)*X(166)-JVS(4535)*X(167)-JVS(4536)*X(168)-JVS(4537)*X(173)-JVS(4538)*X(176)-JVS(4539)*X(178)& + &-JVS(4540)*X(179)-JVS(4541)*X(180)-JVS(4542)*X(181)-JVS(4543)*X(182)-JVS(4544)*X(183)-JVS(4545)*X(184)& + &-JVS(4546)*X(186)-JVS(4547)*X(187)-JVS(4548)*X(188)-JVS(4549)*X(189)-JVS(4550)*X(191)-JVS(4551)*X(193)& + &-JVS(4552)*X(194)-JVS(4553)*X(195)-JVS(4554)*X(198)-JVS(4555)*X(199)-JVS(4556)*X(200)-JVS(4557)*X(201)& + &-JVS(4558)*X(202)-JVS(4559)*X(203)-JVS(4560)*X(204)-JVS(4561)*X(205)-JVS(4562)*X(207)-JVS(4563)*X(208)& + &-JVS(4564)*X(209)-JVS(4565)*X(210)-JVS(4566)*X(213)-JVS(4567)*X(214)-JVS(4568)*X(215)-JVS(4569)*X(216)& + &-JVS(4570)*X(217)-JVS(4571)*X(220)-JVS(4572)*X(222)-JVS(4573)*X(224)-JVS(4574)*X(225)-JVS(4575)*X(227)& + &-JVS(4576)*X(228)-JVS(4577)*X(229)-JVS(4578)*X(232)-JVS(4579)*X(234)-JVS(4580)*X(235)-JVS(4581)*X(237)& + &-JVS(4582)*X(238)-JVS(4583)*X(239)-JVS(4584)*X(240)-JVS(4585)*X(241)-JVS(4586)*X(242)-JVS(4587)*X(243)& + &-JVS(4588)*X(244)-JVS(4589)*X(245)-JVS(4590)*X(246)-JVS(4591)*X(247)-JVS(4592)*X(248)-JVS(4593)*X(249)& + &-JVS(4594)*X(251)-JVS(4595)*X(252)-JVS(4596)*X(253)-JVS(4597)*X(254)-JVS(4598)*X(255)-JVS(4599)*X(256)& + &-JVS(4600)*X(257)-JVS(4601)*X(258)-JVS(4602)*X(259)-JVS(4603)*X(261)-JVS(4604)*X(262)-JVS(4605)*X(264)& + &-JVS(4606)*X(265)-JVS(4607)*X(266)-JVS(4608)*X(267)-JVS(4609)*X(268)-JVS(4610)*X(269)-JVS(4611)*X(270)& + &-JVS(4612)*X(272)-JVS(4613)*X(273)-JVS(4614)*X(274)-JVS(4615)*X(275)-JVS(4616)*X(276)-JVS(4617)*X(277)& + &-JVS(4618)*X(278)-JVS(4619)*X(279)-JVS(4620)*X(280)-JVS(4621)*X(281)-JVS(4622)*X(282)-JVS(4623)*X(283)& + &-JVS(4624)*X(284)-JVS(4625)*X(285)-JVS(4626)*X(286)-JVS(4627)*X(287)-JVS(4628)*X(288)-JVS(4629)*X(289)& + &-JVS(4630)*X(290) +IF (DO_SLV(291)) & + X(291) = X(291)/JVS(4631) +IF (DO_SLV(290)) & + X(290) = (X(290)-JVS(4502)*X(291))/(JVS(4501)) +IF (DO_SLV(289)) & + X(289) = (X(289)-JVS(4406)*X(290)-JVS(4407)*X(291))/(JVS(4405)) +IF (DO_SLV(288)) & + X(288) = (X(288)-JVS(4366)*X(289)-JVS(4367)*X(290)-JVS(4368)*X(291))/(JVS(4365)) IF (DO_SLV(287)) & - X(287) = X(287)/JVS(4581) + X(287) = (X(287)-JVS(4304)*X(288)-JVS(4305)*X(289)-JVS(4306)*X(290)-JVS(4307)*X(291))/(JVS(4303)) IF (DO_SLV(286)) & - X(286) = (X(286)-JVS(4489)*X(287))/(JVS(4488)) + X(286) = (X(286)-JVS(4270)*X(287)-JVS(4271)*X(288)-JVS(4272)*X(289)-JVS(4273)*X(290)-JVS(4274)*X(291))/(JVS(4269)) IF (DO_SLV(285)) & - X(285) = (X(285)-JVS(4446)*X(286)-JVS(4447)*X(287))/(JVS(4445)) + X(285) = (X(285)-JVS(4053)*X(286)-JVS(4054)*X(287)-JVS(4055)*X(288)-JVS(4056)*X(289)-JVS(4057)*X(290)-JVS(4058)& + &*X(291))/(JVS(4052)) IF (DO_SLV(284)) & - X(284) = (X(284)-JVS(4350)*X(285)-JVS(4351)*X(286)-JVS(4352)*X(287))/(JVS(4349)) + X(284) = (X(284)-JVS(3998)*X(285)-JVS(3999)*X(286)-JVS(4000)*X(287)-JVS(4001)*X(288)-JVS(4002)*X(289)-JVS(4003)*X(290)& + &-JVS(4004)*X(291))/(JVS(3997)) IF (DO_SLV(283)) & - X(283) = (X(283)-JVS(4289)*X(284)-JVS(4290)*X(285)-JVS(4291)*X(286)-JVS(4292)*X(287))/(JVS(4288)) + X(283) = (X(283)-JVS(3826)*X(284)-JVS(3827)*X(285)-JVS(3828)*X(286)-JVS(3829)*X(287)-JVS(3830)*X(288)-JVS(3831)*X(289)& + &-JVS(3832)*X(290)-JVS(3833)*X(291))/(JVS(3825)) IF (DO_SLV(282)) & - X(282) = (X(282)-JVS(4254)*X(283)-JVS(4255)*X(284)-JVS(4256)*X(285)-JVS(4257)*X(286)-JVS(4258)*X(287))/(JVS(4253)) + X(282) = (X(282)-JVS(3799)*X(283)-JVS(3800)*X(284)-JVS(3801)*X(285)-JVS(3802)*X(286)-JVS(3803)*X(287)-JVS(3804)*X(288)& + &-JVS(3805)*X(289)-JVS(3806)*X(290)-JVS(3807)*X(291))/(JVS(3798)) IF (DO_SLV(281)) & - X(281) = (X(281)-JVS(4198)*X(282)-JVS(4199)*X(283)-JVS(4200)*X(284)-JVS(4201)*X(285)-JVS(4202)*X(286)-JVS(4203)& - &*X(287))/(JVS(4197)) + X(281) = (X(281)-JVS(3739)*X(282)-JVS(3740)*X(283)-JVS(3741)*X(284)-JVS(3742)*X(285)-JVS(3743)*X(286)-JVS(3744)*X(287)& + &-JVS(3745)*X(288)-JVS(3746)*X(289)-JVS(3747)*X(290)-JVS(3748)*X(291))/(JVS(3738)) IF (DO_SLV(280)) & - X(280) = (X(280)-JVS(4026)*X(281)-JVS(4027)*X(282)-JVS(4028)*X(283)-JVS(4029)*X(284)-JVS(4030)*X(285)-JVS(4031)*X(286)& - &-JVS(4032)*X(287))/(JVS(4025)) + X(280) = (X(280)-JVS(3646)*X(281)-JVS(3647)*X(282)-JVS(3648)*X(283)-JVS(3649)*X(284)-JVS(3650)*X(285)-JVS(3651)*X(286)& + &-JVS(3652)*X(287)-JVS(3653)*X(288)-JVS(3654)*X(289)-JVS(3655)*X(290)-JVS(3656)*X(291))/(JVS(3645)) IF (DO_SLV(279)) & - X(279) = (X(279)-JVS(3927)*X(280)-JVS(3928)*X(281)-JVS(3929)*X(282)-JVS(3930)*X(283)-JVS(3931)*X(284)-JVS(3932)*X(285)& - &-JVS(3933)*X(286)-JVS(3934)*X(287))/(JVS(3926)) + X(279) = (X(279)-JVS(3612)*X(280)-JVS(3613)*X(281)-JVS(3614)*X(282)-JVS(3615)*X(283)-JVS(3616)*X(284)-JVS(3617)*X(285)& + &-JVS(3618)*X(286)-JVS(3619)*X(287)-JVS(3620)*X(288)-JVS(3621)*X(289)-JVS(3622)*X(290)-JVS(3623)*X(291))& + &/(JVS(3611)) IF (DO_SLV(278)) & - X(278) = (X(278)-JVS(3838)*X(279)-JVS(3839)*X(280)-JVS(3840)*X(281)-JVS(3841)*X(282)-JVS(3842)*X(283)-JVS(3843)*X(284)& - &-JVS(3844)*X(285)-JVS(3845)*X(286)-JVS(3846)*X(287))/(JVS(3837)) + X(278) = (X(278)-JVS(3514)*X(279)-JVS(3515)*X(280)-JVS(3516)*X(281)-JVS(3517)*X(282)-JVS(3518)*X(283)-JVS(3519)*X(284)& + &-JVS(3520)*X(285)-JVS(3521)*X(286)-JVS(3522)*X(287)-JVS(3523)*X(288)-JVS(3524)*X(289)-JVS(3525)*X(290)& + &-JVS(3526)*X(291))/(JVS(3513)) IF (DO_SLV(277)) & - X(277) = (X(277)-JVS(3803)*X(278)-JVS(3804)*X(279)-JVS(3805)*X(280)-JVS(3806)*X(281)-JVS(3807)*X(282)-JVS(3808)*X(283)& - &-JVS(3809)*X(284)-JVS(3810)*X(285)-JVS(3811)*X(286)-JVS(3812)*X(287))/(JVS(3802)) + X(277) = (X(277)-JVS(3425)*X(278)-JVS(3426)*X(279)-JVS(3427)*X(280)-JVS(3428)*X(281)-JVS(3429)*X(282)-JVS(3430)*X(283)& + &-JVS(3431)*X(284)-JVS(3432)*X(285)-JVS(3433)*X(286)-JVS(3434)*X(287)-JVS(3435)*X(288)-JVS(3436)*X(289)& + &-JVS(3437)*X(290)-JVS(3438)*X(291))/(JVS(3424)) IF (DO_SLV(276)) & - X(276) = (X(276)-JVS(3743)*X(277)-JVS(3744)*X(278)-JVS(3745)*X(279)-JVS(3746)*X(280)-JVS(3747)*X(281)-JVS(3748)*X(282)& - &-JVS(3749)*X(283)-JVS(3750)*X(284)-JVS(3751)*X(285)-JVS(3752)*X(286)-JVS(3753)*X(287))/(JVS(3742)) + X(276) = (X(276)-JVS(3398)*X(277)-JVS(3399)*X(278)-JVS(3400)*X(279)-JVS(3401)*X(280)-JVS(3402)*X(281)-JVS(3403)*X(282)& + &-JVS(3404)*X(283)-JVS(3405)*X(284)-JVS(3406)*X(285)-JVS(3407)*X(286)-JVS(3408)*X(287)-JVS(3409)*X(288)& + &-JVS(3410)*X(289)-JVS(3411)*X(290)-JVS(3412)*X(291))/(JVS(3397)) IF (DO_SLV(275)) & - X(275) = (X(275)-JVS(3716)*X(276)-JVS(3717)*X(277)-JVS(3718)*X(278)-JVS(3719)*X(279)-JVS(3720)*X(280)-JVS(3721)*X(281)& - &-JVS(3722)*X(282)-JVS(3723)*X(283)-JVS(3724)*X(284)-JVS(3725)*X(285)-JVS(3726)*X(286)-JVS(3727)*X(287))& - &/(JVS(3715)) + X(275) = (X(275)-JVS(3355)*X(276)-JVS(3356)*X(277)-JVS(3357)*X(278)-JVS(3358)*X(279)-JVS(3359)*X(280)-JVS(3360)*X(281)& + &-JVS(3361)*X(282)-JVS(3362)*X(283)-JVS(3363)*X(284)-JVS(3364)*X(285)-JVS(3365)*X(286)-JVS(3366)*X(287)& + &-JVS(3367)*X(288)-JVS(3368)*X(289)-JVS(3369)*X(290)-JVS(3370)*X(291))/(JVS(3354)) IF (DO_SLV(274)) & - X(274) = (X(274)-JVS(3689)*X(275)-JVS(3690)*X(276)-JVS(3691)*X(277)-JVS(3692)*X(278)-JVS(3693)*X(279)-JVS(3694)*X(280)& - &-JVS(3695)*X(281)-JVS(3696)*X(282)-JVS(3697)*X(283)-JVS(3698)*X(284)-JVS(3699)*X(285)-JVS(3700)*X(286)& - &-JVS(3701)*X(287))/(JVS(3688)) + X(274) = (X(274)-JVS(3277)*X(275)-JVS(3278)*X(276)-JVS(3279)*X(277)-JVS(3280)*X(278)-JVS(3281)*X(279)-JVS(3282)*X(280)& + &-JVS(3283)*X(281)-JVS(3284)*X(282)-JVS(3285)*X(283)-JVS(3286)*X(284)-JVS(3287)*X(285)-JVS(3288)*X(286)& + &-JVS(3289)*X(287)-JVS(3290)*X(288)-JVS(3291)*X(289)-JVS(3292)*X(290)-JVS(3293)*X(291))/(JVS(3276)) IF (DO_SLV(273)) & - X(273) = (X(273)-JVS(3656)*X(274)-JVS(3657)*X(275)-JVS(3658)*X(276)-JVS(3659)*X(277)-JVS(3660)*X(278)-JVS(3661)*X(279)& - &-JVS(3662)*X(280)-JVS(3663)*X(281)-JVS(3664)*X(282)-JVS(3665)*X(283)-JVS(3666)*X(284)-JVS(3667)*X(285)& - &-JVS(3668)*X(286)-JVS(3669)*X(287))/(JVS(3655)) + X(273) = (X(273)-JVS(3244)*X(274)-JVS(3245)*X(275)-JVS(3246)*X(276)-JVS(3247)*X(277)-JVS(3248)*X(278)-JVS(3249)*X(279)& + &-JVS(3250)*X(280)-JVS(3251)*X(281)-JVS(3252)*X(282)-JVS(3253)*X(283)-JVS(3254)*X(284)-JVS(3255)*X(285)& + &-JVS(3256)*X(286)-JVS(3257)*X(287)-JVS(3258)*X(288)-JVS(3259)*X(289)-JVS(3260)*X(290)-JVS(3261)*X(291))& + &/(JVS(3243)) IF (DO_SLV(272)) & - X(272) = (X(272)-JVS(3602)*X(273)-JVS(3603)*X(274)-JVS(3604)*X(275)-JVS(3605)*X(276)-JVS(3606)*X(277)-JVS(3607)*X(278)& - &-JVS(3608)*X(279)-JVS(3609)*X(280)-JVS(3610)*X(281)-JVS(3611)*X(282)-JVS(3612)*X(283)-JVS(3613)*X(284)& - &-JVS(3614)*X(285)-JVS(3615)*X(286)-JVS(3616)*X(287))/(JVS(3601)) + X(272) = (X(272)-JVS(3187)*X(273)-JVS(3188)*X(274)-JVS(3189)*X(275)-JVS(3190)*X(276)-JVS(3191)*X(277)-JVS(3192)*X(278)& + &-JVS(3193)*X(279)-JVS(3194)*X(280)-JVS(3195)*X(281)-JVS(3196)*X(282)-JVS(3197)*X(283)-JVS(3198)*X(284)& + &-JVS(3199)*X(285)-JVS(3200)*X(286)-JVS(3201)*X(287)-JVS(3202)*X(288)-JVS(3203)*X(289)-JVS(3204)*X(290)& + &-JVS(3205)*X(291))/(JVS(3186)) IF (DO_SLV(271)) & - X(271) = (X(271)-JVS(3563)*X(272)-JVS(3564)*X(273)-JVS(3565)*X(274)-JVS(3566)*X(275)-JVS(3567)*X(276)-JVS(3568)*X(277)& - &-JVS(3569)*X(278)-JVS(3570)*X(279)-JVS(3571)*X(280)-JVS(3572)*X(281)-JVS(3573)*X(282)-JVS(3574)*X(283)& - &-JVS(3575)*X(284)-JVS(3576)*X(285)-JVS(3577)*X(286)-JVS(3578)*X(287))/(JVS(3562)) + X(271) = (X(271)-JVS(3137)*X(272)-JVS(3138)*X(273)-JVS(3139)*X(274)-JVS(3140)*X(275)-JVS(3141)*X(276)-JVS(3142)*X(277)& + &-JVS(3143)*X(278)-JVS(3144)*X(279)-JVS(3145)*X(280)-JVS(3146)*X(281)-JVS(3147)*X(282)-JVS(3148)*X(283)& + &-JVS(3149)*X(284)-JVS(3150)*X(285)-JVS(3151)*X(286)-JVS(3152)*X(287)-JVS(3153)*X(288)-JVS(3154)*X(289)& + &-JVS(3155)*X(290)-JVS(3156)*X(291))/(JVS(3136)) IF (DO_SLV(270)) & - X(270) = (X(270)-JVS(3485)*X(271)-JVS(3486)*X(272)-JVS(3487)*X(273)-JVS(3488)*X(274)-JVS(3489)*X(275)-JVS(3490)*X(276)& - &-JVS(3491)*X(277)-JVS(3492)*X(278)-JVS(3493)*X(279)-JVS(3494)*X(280)-JVS(3495)*X(281)-JVS(3496)*X(282)& - &-JVS(3497)*X(283)-JVS(3498)*X(284)-JVS(3499)*X(285)-JVS(3500)*X(286)-JVS(3501)*X(287))/(JVS(3484)) + X(270) = (X(270)-JVS(3112)*X(274)-JVS(3113)*X(277)-JVS(3114)*X(278)-JVS(3115)*X(279)-JVS(3116)*X(280)-JVS(3117)*X(281)& + &-JVS(3118)*X(282)-JVS(3119)*X(283)-JVS(3120)*X(284)-JVS(3121)*X(285)-JVS(3122)*X(286)-JVS(3123)*X(287)& + &-JVS(3124)*X(291))/(JVS(3111)) IF (DO_SLV(269)) & - X(269) = (X(269)-JVS(3354)*X(270)-JVS(3355)*X(271)-JVS(3356)*X(272)-JVS(3357)*X(273)-JVS(3358)*X(274)-JVS(3359)*X(275)& - &-JVS(3360)*X(276)-JVS(3361)*X(277)-JVS(3362)*X(278)-JVS(3363)*X(279)-JVS(3364)*X(280)-JVS(3365)*X(281)& - &-JVS(3366)*X(282)-JVS(3367)*X(283)-JVS(3368)*X(284)-JVS(3369)*X(285)-JVS(3370)*X(286)-JVS(3371)*X(287))& - &/(JVS(3353)) + X(269) = (X(269)-JVS(3092)*X(270)-JVS(3093)*X(274)-JVS(3094)*X(277)-JVS(3095)*X(278)-JVS(3096)*X(279)-JVS(3097)*X(280)& + &-JVS(3098)*X(281)-JVS(3099)*X(282)-JVS(3100)*X(283)-JVS(3101)*X(284)-JVS(3102)*X(285)-JVS(3103)*X(286)& + &-JVS(3104)*X(287)-JVS(3105)*X(291))/(JVS(3091)) IF (DO_SLV(268)) & - X(268) = (X(268)-JVS(3138)*X(269)-JVS(3139)*X(270)-JVS(3140)*X(271)-JVS(3141)*X(272)-JVS(3142)*X(273)-JVS(3143)*X(274)& - &-JVS(3144)*X(275)-JVS(3145)*X(276)-JVS(3146)*X(277)-JVS(3147)*X(278)-JVS(3148)*X(279)-JVS(3149)*X(280)& - &-JVS(3150)*X(281)-JVS(3151)*X(282)-JVS(3152)*X(283)-JVS(3153)*X(284)-JVS(3154)*X(285)-JVS(3155)*X(286)& - &-JVS(3156)*X(287))/(JVS(3137)) + X(268) = (X(268)-JVS(3062)*X(269)-JVS(3063)*X(270)-JVS(3064)*X(274)-JVS(3065)*X(277)-JVS(3066)*X(278)-JVS(3067)*X(279)& + &-JVS(3068)*X(280)-JVS(3069)*X(281)-JVS(3070)*X(282)-JVS(3071)*X(283)-JVS(3072)*X(284)-JVS(3073)*X(285)& + &-JVS(3074)*X(286)-JVS(3075)*X(287)-JVS(3076)*X(291))/(JVS(3061)) IF (DO_SLV(267)) & - X(267) = (X(267)-JVS(3089)*X(268)-JVS(3090)*X(269)-JVS(3091)*X(270)-JVS(3092)*X(271)-JVS(3093)*X(272)-JVS(3094)*X(273)& - &-JVS(3095)*X(274)-JVS(3096)*X(275)-JVS(3097)*X(276)-JVS(3098)*X(277)-JVS(3099)*X(278)-JVS(3100)*X(279)& - &-JVS(3101)*X(280)-JVS(3102)*X(281)-JVS(3103)*X(282)-JVS(3104)*X(283)-JVS(3105)*X(284)-JVS(3106)*X(285)& - &-JVS(3107)*X(286)-JVS(3108)*X(287))/(JVS(3088)) + X(267) = (X(267)-JVS(3045)*X(272)-JVS(3046)*X(273)-JVS(3047)*X(276)-JVS(3048)*X(278)-JVS(3049)*X(279)-JVS(3050)*X(281)& + &-JVS(3051)*X(282)-JVS(3052)*X(284)-JVS(3053)*X(285)-JVS(3054)*X(286)-JVS(3055)*X(288)-JVS(3056)*X(290)& + &-JVS(3057)*X(291))/(JVS(3044)) IF (DO_SLV(266)) & - X(266) = (X(266)-JVS(3065)*X(269)-JVS(3066)*X(270)-JVS(3067)*X(273)-JVS(3068)*X(274)-JVS(3069)*X(275)-JVS(3070)*X(276)& - &-JVS(3071)*X(277)-JVS(3072)*X(278)-JVS(3073)*X(279)-JVS(3074)*X(280)-JVS(3075)*X(281)-JVS(3076)*X(283)& - &-JVS(3077)*X(287))/(JVS(3064)) + X(266) = (X(266)-JVS(2944)*X(267)-JVS(2945)*X(272)-JVS(2946)*X(273)-JVS(2947)*X(276)-JVS(2948)*X(278)-JVS(2949)*X(279)& + &-JVS(2950)*X(281)-JVS(2951)*X(282)-JVS(2952)*X(284)-JVS(2953)*X(285)-JVS(2954)*X(286)-JVS(2955)*X(290)& + &-JVS(2956)*X(291))/(JVS(2943)) IF (DO_SLV(265)) & - X(265) = (X(265)-JVS(3045)*X(266)-JVS(3046)*X(269)-JVS(3047)*X(270)-JVS(3048)*X(273)-JVS(3049)*X(274)-JVS(3050)*X(275)& - &-JVS(3051)*X(276)-JVS(3052)*X(277)-JVS(3053)*X(278)-JVS(3054)*X(279)-JVS(3055)*X(280)-JVS(3056)*X(281)& - &-JVS(3057)*X(283)-JVS(3058)*X(287))/(JVS(3044)) + X(265) = (X(265)-JVS(2872)*X(266)-JVS(2873)*X(267)-JVS(2874)*X(270)-JVS(2875)*X(272)-JVS(2876)*X(273)-JVS(2877)*X(274)& + &-JVS(2878)*X(275)-JVS(2879)*X(276)-JVS(2880)*X(277)-JVS(2881)*X(278)-JVS(2882)*X(279)-JVS(2883)*X(280)& + &-JVS(2884)*X(281)-JVS(2885)*X(282)-JVS(2886)*X(283)-JVS(2887)*X(284)-JVS(2888)*X(285)-JVS(2889)*X(286)& + &-JVS(2890)*X(287)-JVS(2891)*X(288)-JVS(2892)*X(289)-JVS(2893)*X(290)-JVS(2894)*X(291))/(JVS(2871)) IF (DO_SLV(264)) & - X(264) = (X(264)-JVS(3015)*X(265)-JVS(3016)*X(266)-JVS(3017)*X(269)-JVS(3018)*X(270)-JVS(3019)*X(273)-JVS(3020)*X(274)& - &-JVS(3021)*X(275)-JVS(3022)*X(276)-JVS(3023)*X(277)-JVS(3024)*X(278)-JVS(3025)*X(279)-JVS(3026)*X(280)& - &-JVS(3027)*X(281)-JVS(3028)*X(283)-JVS(3029)*X(287))/(JVS(3014)) + X(264) = (X(264)-JVS(2792)*X(266)-JVS(2793)*X(267)-JVS(2794)*X(273)-JVS(2795)*X(276)-JVS(2796)*X(278)-JVS(2797)*X(279)& + &-JVS(2798)*X(281)-JVS(2799)*X(282)-JVS(2800)*X(284)-JVS(2801)*X(286)-JVS(2802)*X(290)-JVS(2803)*X(291))& + &/(JVS(2791)) IF (DO_SLV(263)) & - X(263) = (X(263)-JVS(2998)*X(268)-JVS(2999)*X(269)-JVS(3000)*X(270)-JVS(3001)*X(273)-JVS(3002)*X(277)-JVS(3003)*X(279)& - &-JVS(3004)*X(280)-JVS(3005)*X(281)-JVS(3006)*X(282)-JVS(3007)*X(284)-JVS(3008)*X(285)-JVS(3009)*X(286)& - &-JVS(3010)*X(287))/(JVS(2997)) + X(263) = (X(263)-JVS(2757)*X(264)-JVS(2758)*X(266)-JVS(2759)*X(267)-JVS(2760)*X(272)-JVS(2761)*X(273)-JVS(2762)*X(276)& + &-JVS(2763)*X(278)-JVS(2764)*X(279)-JVS(2765)*X(281)-JVS(2766)*X(282)-JVS(2767)*X(284)-JVS(2768)*X(285)& + &-JVS(2769)*X(286)-JVS(2770)*X(288)-JVS(2771)*X(290)-JVS(2772)*X(291))/(JVS(2756)) IF (DO_SLV(262)) & - X(262) = (X(262)-JVS(2934)*X(263)-JVS(2935)*X(268)-JVS(2936)*X(269)-JVS(2937)*X(270)-JVS(2938)*X(273)-JVS(2939)*X(277)& - &-JVS(2940)*X(279)-JVS(2941)*X(280)-JVS(2942)*X(281)-JVS(2943)*X(282)-JVS(2944)*X(284)-JVS(2945)*X(285)& - &-JVS(2946)*X(286)-JVS(2947)*X(287))/(JVS(2933)) + X(262) = (X(262)-JVS(2656)*X(275)-JVS(2657)*X(277)-JVS(2658)*X(278)-JVS(2659)*X(280)-JVS(2660)*X(283)-JVS(2661)*X(285)& + &-JVS(2662)*X(286)-JVS(2663)*X(287)-JVS(2664)*X(288)-JVS(2665)*X(289)-JVS(2666)*X(290)-JVS(2667)*X(291))& + &/(JVS(2655)) IF (DO_SLV(261)) & - X(261) = (X(261)-JVS(2831)*X(262)-JVS(2832)*X(263)-JVS(2833)*X(269)-JVS(2834)*X(270)-JVS(2835)*X(277)-JVS(2836)*X(279)& - &-JVS(2837)*X(280)-JVS(2838)*X(281)-JVS(2839)*X(282)-JVS(2840)*X(284)-JVS(2841)*X(285)-JVS(2842)*X(286)& - &-JVS(2843)*X(287))/(JVS(2830)) + X(261) = (X(261)-JVS(2645)*X(264)-JVS(2646)*X(266)-JVS(2647)*X(273)-JVS(2648)*X(279)-JVS(2649)*X(281)-JVS(2650)*X(282)& + &-JVS(2651)*X(284)-JVS(2652)*X(286)-JVS(2653)*X(290)-JVS(2654)*X(291))/(JVS(2644)) IF (DO_SLV(260)) & - X(260) = (X(260)-JVS(2788)*X(261)-JVS(2789)*X(262)-JVS(2790)*X(263)-JVS(2791)*X(266)-JVS(2792)*X(269)-JVS(2793)*X(270)& - &-JVS(2794)*X(271)-JVS(2795)*X(272)-JVS(2796)*X(273)-JVS(2797)*X(274)-JVS(2798)*X(275)-JVS(2799)*X(276)& - &-JVS(2800)*X(277)-JVS(2801)*X(278)-JVS(2802)*X(279)-JVS(2803)*X(280)-JVS(2804)*X(281)-JVS(2805)*X(282)& - &-JVS(2806)*X(283)-JVS(2807)*X(284)-JVS(2808)*X(285)-JVS(2809)*X(286)-JVS(2810)*X(287))/(JVS(2787)) + X(260) = (X(260)-JVS(2567)*X(273)-JVS(2568)*X(274)-JVS(2569)*X(275)-JVS(2570)*X(276)-JVS(2571)*X(277)-JVS(2572)*X(278)& + &-JVS(2573)*X(280)-JVS(2574)*X(282)-JVS(2575)*X(283)-JVS(2576)*X(284)-JVS(2577)*X(286)-JVS(2578)*X(287)& + &-JVS(2579)*X(288)-JVS(2580)*X(289)-JVS(2581)*X(291))/(JVS(2566)) IF (DO_SLV(259)) & - X(259) = (X(259)-JVS(2710)*X(269)-JVS(2711)*X(270)-JVS(2712)*X(271)-JVS(2713)*X(272)-JVS(2714)*X(273)-JVS(2715)*X(275)& - &-JVS(2716)*X(276)-JVS(2717)*X(278)-JVS(2718)*X(279)-JVS(2719)*X(283)-JVS(2720)*X(284)-JVS(2721)*X(285))& - &/(JVS(2709)) + X(259) = (X(259)-JVS(2554)*X(261)-JVS(2555)*X(266)-JVS(2556)*X(273)-JVS(2557)*X(279)-JVS(2558)*X(281)-JVS(2559)*X(282)& + &-JVS(2560)*X(284)-JVS(2561)*X(286)-JVS(2562)*X(290)-JVS(2563)*X(291))/(JVS(2553)) IF (DO_SLV(258)) & - X(258) = (X(258)-JVS(2695)*X(261)-JVS(2696)*X(262)-JVS(2697)*X(263)-JVS(2698)*X(269)-JVS(2699)*X(270)-JVS(2700)*X(277)& - &-JVS(2701)*X(279)-JVS(2702)*X(280)-JVS(2703)*X(281)-JVS(2704)*X(282)-JVS(2705)*X(284)-JVS(2706)*X(285)& - &-JVS(2707)*X(286)-JVS(2708)*X(287))/(JVS(2694)) + X(258) = (X(258)-JVS(2516)*X(259)-JVS(2517)*X(261)-JVS(2518)*X(266)-JVS(2519)*X(273)-JVS(2520)*X(279)-JVS(2521)*X(281)& + &-JVS(2522)*X(282)-JVS(2523)*X(284)-JVS(2524)*X(286)-JVS(2525)*X(290)-JVS(2526)*X(291))/(JVS(2515)) IF (DO_SLV(257)) & - X(257) = (X(257)-JVS(2601)*X(261)-JVS(2602)*X(263)-JVS(2603)*X(269)-JVS(2604)*X(270)-JVS(2605)*X(277)-JVS(2606)*X(280)& - &-JVS(2607)*X(281)-JVS(2608)*X(282)-JVS(2609)*X(285)-JVS(2610)*X(287))/(JVS(2600)) + X(257) = (X(257)-JVS(2497)*X(261)-JVS(2498)*X(266)-JVS(2499)*X(279)-JVS(2500)*X(281)-JVS(2501)*X(282)-JVS(2502)*X(284)& + &-JVS(2503)*X(286)-JVS(2504)*X(290)-JVS(2505)*X(291))/(JVS(2496)) IF (DO_SLV(256)) & - X(256) = (X(256)-JVS(2523)*X(269)-JVS(2524)*X(270)-JVS(2525)*X(271)-JVS(2526)*X(272)-JVS(2527)*X(274)-JVS(2528)*X(275)& - &-JVS(2529)*X(276)-JVS(2530)*X(277)-JVS(2531)*X(278)-JVS(2532)*X(279)-JVS(2533)*X(281)-JVS(2534)*X(282)& - &-JVS(2535)*X(283)-JVS(2536)*X(284)-JVS(2537)*X(286))/(JVS(2522)) + X(256) = (X(256)-JVS(2483)*X(257)-JVS(2484)*X(261)-JVS(2485)*X(266)-JVS(2486)*X(279)-JVS(2487)*X(281)-JVS(2488)*X(282)& + &-JVS(2489)*X(284)-JVS(2490)*X(286)-JVS(2491)*X(290))/(JVS(2482)) IF (DO_SLV(255)) & - X(255) = (X(255)-JVS(2510)*X(257)-JVS(2511)*X(263)-JVS(2512)*X(269)-JVS(2513)*X(270)-JVS(2514)*X(277)-JVS(2515)*X(280)& - &-JVS(2516)*X(281)-JVS(2517)*X(282)-JVS(2518)*X(285)-JVS(2519)*X(287))/(JVS(2509)) + X(255) = (X(255)-JVS(2464)*X(256)-JVS(2465)*X(257)-JVS(2466)*X(259)-JVS(2467)*X(261)-JVS(2468)*X(266)-JVS(2469)*X(279)& + &-JVS(2470)*X(281)-JVS(2471)*X(282)-JVS(2472)*X(284)-JVS(2473)*X(286)-JVS(2474)*X(290)-JVS(2475)*X(291))& + &/(JVS(2463)) IF (DO_SLV(254)) & - X(254) = (X(254)-JVS(2474)*X(257)-JVS(2475)*X(263)-JVS(2476)*X(269)-JVS(2477)*X(277)-JVS(2478)*X(280)-JVS(2479)*X(281)& - &-JVS(2480)*X(282)-JVS(2481)*X(285)-JVS(2482)*X(287))/(JVS(2473)) + X(254) = (X(254)-JVS(2445)*X(256)-JVS(2446)*X(257)-JVS(2447)*X(261)-JVS(2448)*X(266)-JVS(2449)*X(279)-JVS(2450)*X(281)& + &-JVS(2451)*X(282)-JVS(2452)*X(284)-JVS(2453)*X(286))/(JVS(2444)) IF (DO_SLV(253)) & - X(253) = (X(253)-JVS(2459)*X(255)-JVS(2460)*X(257)-JVS(2461)*X(263)-JVS(2462)*X(269)-JVS(2463)*X(270)-JVS(2464)*X(277)& - &-JVS(2465)*X(280)-JVS(2466)*X(281)-JVS(2467)*X(282)-JVS(2468)*X(285)-JVS(2469)*X(287))/(JVS(2458)) + X(253) = (X(253)-JVS(2430)*X(261)-JVS(2431)*X(266)-JVS(2432)*X(273)-JVS(2433)*X(279)-JVS(2434)*X(281)-JVS(2435)*X(282)& + &-JVS(2436)*X(284)-JVS(2437)*X(286)-JVS(2438)*X(290))/(JVS(2429)) IF (DO_SLV(252)) & - X(252) = (X(252)-JVS(2440)*X(257)-JVS(2441)*X(263)-JVS(2442)*X(269)-JVS(2443)*X(270)-JVS(2444)*X(277)-JVS(2445)*X(280)& - &-JVS(2446)*X(281)-JVS(2447)*X(285)-JVS(2448)*X(287))/(JVS(2439)) + X(252) = (X(252)-JVS(2412)*X(254)-JVS(2413)*X(256)-JVS(2414)*X(257)-JVS(2415)*X(258)-JVS(2416)*X(261)-JVS(2417)*X(266)& + &-JVS(2418)*X(273)-JVS(2419)*X(279)-JVS(2420)*X(281)-JVS(2421)*X(282)-JVS(2422)*X(284)-JVS(2423)*X(286)& + &-JVS(2424)*X(290)-JVS(2425)*X(291))/(JVS(2411)) IF (DO_SLV(251)) & - X(251) = (X(251)-JVS(2423)*X(252)-JVS(2424)*X(257)-JVS(2425)*X(263)-JVS(2426)*X(269)-JVS(2427)*X(270)-JVS(2428)*X(277)& - &-JVS(2429)*X(280)-JVS(2430)*X(281)-JVS(2431)*X(287))/(JVS(2422)) + X(251) = (X(251)-JVS(2389)*X(261)-JVS(2390)*X(266)-JVS(2391)*X(279)-JVS(2392)*X(281)-JVS(2393)*X(282)-JVS(2394)*X(284)& + &-JVS(2395)*X(286)-JVS(2396)*X(290))/(JVS(2388)) IF (DO_SLV(250)) & - X(250) = (X(250)-JVS(2407)*X(251)-JVS(2408)*X(252)-JVS(2409)*X(255)-JVS(2410)*X(257)-JVS(2411)*X(263)-JVS(2412)*X(269)& - &-JVS(2413)*X(270)-JVS(2414)*X(277)-JVS(2415)*X(280)-JVS(2416)*X(281)-JVS(2417)*X(285)-JVS(2418)*X(287))& - &/(JVS(2406)) + X(250) = (X(250)-JVS(2360)*X(251)-JVS(2361)*X(252)-JVS(2362)*X(253)-JVS(2363)*X(261)-JVS(2364)*X(266)-JVS(2365)*X(273)& + &-JVS(2366)*X(279)-JVS(2367)*X(281)-JVS(2368)*X(282)-JVS(2369)*X(284)-JVS(2370)*X(286)-JVS(2371)*X(290)& + &-JVS(2372)*X(291))/(JVS(2359)) IF (DO_SLV(249)) & - X(249) = (X(249)-JVS(2388)*X(251)-JVS(2389)*X(252)-JVS(2390)*X(257)-JVS(2391)*X(263)-JVS(2392)*X(269)-JVS(2393)*X(277)& - &-JVS(2394)*X(280)-JVS(2395)*X(281)-JVS(2396)*X(287))/(JVS(2387)) + X(249) = (X(249)-JVS(2306)*X(251)-JVS(2307)*X(261)-JVS(2308)*X(266)-JVS(2309)*X(279)-JVS(2310)*X(281)-JVS(2311)*X(282)& + &-JVS(2312)*X(284)-JVS(2313)*X(286)-JVS(2314)*X(290)-JVS(2315)*X(291))/(JVS(2305)) IF (DO_SLV(248)) & - X(248) = (X(248)-JVS(2368)*X(249)-JVS(2369)*X(251)-JVS(2370)*X(252)-JVS(2371)*X(253)-JVS(2372)*X(257)-JVS(2373)*X(263)& - &-JVS(2374)*X(269)-JVS(2375)*X(270)-JVS(2376)*X(277)-JVS(2377)*X(280)-JVS(2378)*X(281)-JVS(2379)*X(282)& - &-JVS(2380)*X(285)-JVS(2381)*X(287))/(JVS(2367)) + X(248) = (X(248)-JVS(2287)*X(261)-JVS(2288)*X(266)-JVS(2289)*X(279)-JVS(2290)*X(281)-JVS(2291)*X(282)-JVS(2292)*X(284)& + &-JVS(2293)*X(286)-JVS(2294)*X(290))/(JVS(2286)) IF (DO_SLV(247)) & - X(247) = (X(247)-JVS(2345)*X(257)-JVS(2346)*X(263)-JVS(2347)*X(269)-JVS(2348)*X(277)-JVS(2349)*X(280)-JVS(2350)*X(281)& - &-JVS(2351)*X(285)-JVS(2352)*X(287))/(JVS(2344)) + X(247) = (X(247)-JVS(2263)*X(261)-JVS(2264)*X(266)-JVS(2265)*X(279)-JVS(2266)*X(281)-JVS(2267)*X(282)-JVS(2268)*X(284)& + &-JVS(2269)*X(286)-JVS(2270)*X(290))/(JVS(2262)) IF (DO_SLV(246)) & - X(246) = (X(246)-JVS(2316)*X(247)-JVS(2317)*X(248)-JVS(2318)*X(254)-JVS(2319)*X(257)-JVS(2320)*X(263)-JVS(2321)*X(269)& - &-JVS(2322)*X(270)-JVS(2323)*X(277)-JVS(2324)*X(280)-JVS(2325)*X(281)-JVS(2326)*X(282)-JVS(2327)*X(285)& - &-JVS(2328)*X(287))/(JVS(2315)) + X(246) = (X(246)-JVS(2250)*X(247)-JVS(2251)*X(261)-JVS(2252)*X(266)-JVS(2253)*X(279)-JVS(2254)*X(281)-JVS(2255)*X(282)& + &-JVS(2256)*X(284)-JVS(2257)*X(286)-JVS(2258)*X(290))/(JVS(2249)) IF (DO_SLV(245)) & - X(245) = (X(245)-JVS(2262)*X(247)-JVS(2263)*X(257)-JVS(2264)*X(263)-JVS(2265)*X(269)-JVS(2266)*X(270)-JVS(2267)*X(277)& - &-JVS(2268)*X(280)-JVS(2269)*X(281)-JVS(2270)*X(285)-JVS(2271)*X(287))/(JVS(2261)) + X(245) = (X(245)-JVS(2239)*X(246)-JVS(2240)*X(266)-JVS(2241)*X(279)-JVS(2242)*X(281)-JVS(2243)*X(282)-JVS(2244)*X(284)& + &-JVS(2245)*X(286)-JVS(2246)*X(290))/(JVS(2238)) IF (DO_SLV(244)) & - X(244) = (X(244)-JVS(2243)*X(257)-JVS(2244)*X(263)-JVS(2245)*X(269)-JVS(2246)*X(277)-JVS(2247)*X(280)-JVS(2248)*X(281)& - &-JVS(2249)*X(285)-JVS(2250)*X(287))/(JVS(2242)) + X(244) = (X(244)-JVS(2224)*X(245)-JVS(2225)*X(246)-JVS(2226)*X(266)-JVS(2227)*X(279)-JVS(2228)*X(281)-JVS(2229)*X(282)& + &-JVS(2230)*X(284)-JVS(2231)*X(286)-JVS(2232)*X(290))/(JVS(2223)) IF (DO_SLV(243)) & - X(243) = (X(243)-JVS(2219)*X(257)-JVS(2220)*X(263)-JVS(2221)*X(269)-JVS(2222)*X(277)-JVS(2223)*X(280)-JVS(2224)*X(281)& - &-JVS(2225)*X(285)-JVS(2226)*X(287))/(JVS(2218)) + X(243) = (X(243)-JVS(2209)*X(244)-JVS(2210)*X(245)-JVS(2211)*X(246)-JVS(2212)*X(247)-JVS(2213)*X(261)-JVS(2214)*X(266)& + &-JVS(2215)*X(279)-JVS(2216)*X(281)-JVS(2217)*X(284)-JVS(2218)*X(286))/(JVS(2208)) IF (DO_SLV(242)) & - X(242) = (X(242)-JVS(2203)*X(243)-JVS(2204)*X(257)-JVS(2205)*X(263)-JVS(2206)*X(269)-JVS(2207)*X(277)-JVS(2208)*X(280)& - &-JVS(2209)*X(281)-JVS(2210)*X(285)-JVS(2211)*X(287))/(JVS(2202)) + X(242) = (X(242)-JVS(2186)*X(243)-JVS(2187)*X(244)-JVS(2188)*X(245)-JVS(2189)*X(246)-JVS(2190)*X(247)-JVS(2191)*X(261)& + &-JVS(2192)*X(266)-JVS(2193)*X(279)-JVS(2194)*X(281)-JVS(2195)*X(284)-JVS(2196)*X(286))/(JVS(2185)) IF (DO_SLV(241)) & - X(241) = (X(241)-JVS(2189)*X(257)-JVS(2190)*X(263)-JVS(2191)*X(269)-JVS(2192)*X(277)-JVS(2193)*X(280)-JVS(2194)*X(281)& - &-JVS(2195)*X(285)-JVS(2196)*X(287))/(JVS(2188)) + X(241) = (X(241)-JVS(2155)*X(242)-JVS(2156)*X(243)-JVS(2157)*X(244)-JVS(2158)*X(245)-JVS(2159)*X(246)-JVS(2160)*X(247)& + &-JVS(2161)*X(248)-JVS(2162)*X(261)-JVS(2163)*X(266)-JVS(2164)*X(279)-JVS(2165)*X(281)-JVS(2166)*X(282)& + &-JVS(2167)*X(284)-JVS(2168)*X(286)-JVS(2169)*X(290)-JVS(2170)*X(291))/(JVS(2154)) IF (DO_SLV(240)) & - X(240) = (X(240)-JVS(2176)*X(241)-JVS(2177)*X(257)-JVS(2178)*X(263)-JVS(2179)*X(269)-JVS(2180)*X(277)-JVS(2181)*X(280)& - &-JVS(2182)*X(281)-JVS(2183)*X(285)-JVS(2184)*X(287))/(JVS(2175)) + X(240) = (X(240)-JVS(2132)*X(243)-JVS(2133)*X(244)-JVS(2134)*X(245)-JVS(2135)*X(246)-JVS(2136)*X(247)-JVS(2137)*X(261)& + &-JVS(2138)*X(266)-JVS(2139)*X(279)-JVS(2140)*X(281)-JVS(2141)*X(284)-JVS(2142)*X(286))/(JVS(2131)) IF (DO_SLV(239)) & - X(239) = (X(239)-JVS(2163)*X(240)-JVS(2164)*X(241)-JVS(2165)*X(242)-JVS(2166)*X(243)-JVS(2167)*X(257)-JVS(2168)*X(263)& - &-JVS(2169)*X(269)-JVS(2170)*X(280)-JVS(2171)*X(281)-JVS(2172)*X(287))/(JVS(2162)) + X(239) = (X(239)-JVS(2113)*X(254)-JVS(2114)*X(255)-JVS(2115)*X(256)-JVS(2116)*X(257)-JVS(2117)*X(259)-JVS(2118)*X(261)& + &-JVS(2119)*X(266)-JVS(2120)*X(273)-JVS(2121)*X(279)-JVS(2122)*X(281)-JVS(2123)*X(282)-JVS(2124)*X(284)& + &-JVS(2125)*X(286)-JVS(2126)*X(290))/(JVS(2112)) IF (DO_SLV(238)) & - X(238) = (X(238)-JVS(2140)*X(239)-JVS(2141)*X(240)-JVS(2142)*X(241)-JVS(2143)*X(242)-JVS(2144)*X(243)-JVS(2145)*X(257)& - &-JVS(2146)*X(263)-JVS(2147)*X(269)-JVS(2148)*X(280)-JVS(2149)*X(281)-JVS(2150)*X(287))/(JVS(2139)) + X(238) = (X(238)-JVS(2099)*X(261)-JVS(2100)*X(266)-JVS(2101)*X(279)-JVS(2102)*X(281)-JVS(2103)*X(282)-JVS(2104)*X(284)& + &-JVS(2105)*X(286))/(JVS(2098)) IF (DO_SLV(237)) & - X(237) = (X(237)-JVS(2109)*X(238)-JVS(2110)*X(239)-JVS(2111)*X(240)-JVS(2112)*X(241)-JVS(2113)*X(242)-JVS(2114)*X(243)& - &-JVS(2115)*X(244)-JVS(2116)*X(257)-JVS(2117)*X(263)-JVS(2118)*X(269)-JVS(2119)*X(270)-JVS(2120)*X(277)& - &-JVS(2121)*X(280)-JVS(2122)*X(281)-JVS(2123)*X(285)-JVS(2124)*X(287))/(JVS(2108)) + X(237) = (X(237)-JVS(2081)*X(238)-JVS(2082)*X(254)-JVS(2083)*X(255)-JVS(2084)*X(256)-JVS(2085)*X(257)-JVS(2086)*X(259)& + &-JVS(2087)*X(261)-JVS(2088)*X(266)-JVS(2089)*X(273)-JVS(2090)*X(279)-JVS(2091)*X(281)-JVS(2092)*X(282)& + &-JVS(2093)*X(284)-JVS(2094)*X(286)-JVS(2095)*X(290))/(JVS(2080)) IF (DO_SLV(236)) & - X(236) = (X(236)-JVS(2086)*X(239)-JVS(2087)*X(240)-JVS(2088)*X(241)-JVS(2089)*X(242)-JVS(2090)*X(243)-JVS(2091)*X(257)& - &-JVS(2092)*X(263)-JVS(2093)*X(269)-JVS(2094)*X(280)-JVS(2095)*X(281)-JVS(2096)*X(287))/(JVS(2085)) + X(236) = (X(236)-JVS(2058)*X(240)-JVS(2059)*X(241)-JVS(2060)*X(242)-JVS(2061)*X(243)-JVS(2062)*X(244)-JVS(2063)*X(245)& + &-JVS(2064)*X(246)-JVS(2065)*X(247)-JVS(2066)*X(248)-JVS(2067)*X(261)-JVS(2068)*X(266)-JVS(2069)*X(279)& + &-JVS(2070)*X(281)-JVS(2071)*X(282)-JVS(2072)*X(284)-JVS(2073)*X(286)-JVS(2074)*X(290)-JVS(2075)*X(291))& + &/(JVS(2057)) IF (DO_SLV(235)) & - X(235) = (X(235)-JVS(2067)*X(249)-JVS(2068)*X(250)-JVS(2069)*X(251)-JVS(2070)*X(252)-JVS(2071)*X(255)-JVS(2072)*X(257)& - &-JVS(2073)*X(263)-JVS(2074)*X(269)-JVS(2075)*X(277)-JVS(2076)*X(280)-JVS(2077)*X(281)-JVS(2078)*X(282)& - &-JVS(2079)*X(285)-JVS(2080)*X(287))/(JVS(2066)) + X(235) = (X(235)-JVS(2020)*X(275)-JVS(2021)*X(277)-JVS(2022)*X(278)-JVS(2023)*X(280)-JVS(2024)*X(281)-JVS(2025)*X(283)& + &-JVS(2026)*X(286)-JVS(2027)*X(287)-JVS(2028)*X(289)-JVS(2029)*X(291))/(JVS(2019)) IF (DO_SLV(234)) & - X(234) = (X(234)-JVS(2053)*X(257)-JVS(2054)*X(263)-JVS(2055)*X(269)-JVS(2056)*X(277)-JVS(2057)*X(280)-JVS(2058)*X(281)& - &-JVS(2059)*X(287))/(JVS(2052)) + X(234) = (X(234)-JVS(2006)*X(248)-JVS(2007)*X(251)-JVS(2008)*X(253)-JVS(2009)*X(267)-JVS(2010)*X(276)-JVS(2011)*X(278)& + &-JVS(2012)*X(279)-JVS(2013)*X(281)-JVS(2014)*X(282)-JVS(2015)*X(286)-JVS(2016)*X(290)-JVS(2017)*X(291))& + &/(JVS(2005)) IF (DO_SLV(233)) & - X(233) = (X(233)-JVS(2035)*X(234)-JVS(2036)*X(249)-JVS(2037)*X(250)-JVS(2038)*X(251)-JVS(2039)*X(252)-JVS(2040)*X(255)& - &-JVS(2041)*X(257)-JVS(2042)*X(263)-JVS(2043)*X(269)-JVS(2044)*X(277)-JVS(2045)*X(280)-JVS(2046)*X(281)& - &-JVS(2047)*X(282)-JVS(2048)*X(285)-JVS(2049)*X(287))/(JVS(2034)) + X(233) = (X(233)-JVS(1979)*X(240)-JVS(1980)*X(241)-JVS(1981)*X(242)-JVS(1982)*X(243)-JVS(1983)*X(244)-JVS(1984)*X(245)& + &-JVS(1985)*X(246)-JVS(1986)*X(247)-JVS(1987)*X(248)-JVS(1988)*X(249)-JVS(1989)*X(250)-JVS(1990)*X(251)& + &-JVS(1991)*X(252)-JVS(1992)*X(253)-JVS(1993)*X(254)-JVS(1994)*X(261)-JVS(1995)*X(266)-JVS(1996)*X(279)& + &-JVS(1997)*X(281)-JVS(1998)*X(282)-JVS(1999)*X(284)-JVS(2000)*X(286)-JVS(2001)*X(290)-JVS(2002)*X(291))& + &/(JVS(1978)) IF (DO_SLV(232)) & - X(232) = (X(232)-JVS(2012)*X(236)-JVS(2013)*X(237)-JVS(2014)*X(238)-JVS(2015)*X(239)-JVS(2016)*X(240)-JVS(2017)*X(241)& - &-JVS(2018)*X(242)-JVS(2019)*X(243)-JVS(2020)*X(244)-JVS(2021)*X(257)-JVS(2022)*X(263)-JVS(2023)*X(269)& - &-JVS(2024)*X(270)-JVS(2025)*X(277)-JVS(2026)*X(280)-JVS(2027)*X(281)-JVS(2028)*X(285)-JVS(2029)*X(287))& - &/(JVS(2011)) + X(232) = (X(232)-JVS(1932)*X(242)-JVS(1933)*X(243)-JVS(1934)*X(246)-JVS(1935)*X(247)-JVS(1936)*X(261)-JVS(1937)*X(266)& + &-JVS(1938)*X(279)-JVS(1939)*X(281)-JVS(1940)*X(284)-JVS(1941)*X(286))/(JVS(1931)) IF (DO_SLV(231)) & - X(231) = (X(231)-JVS(1974)*X(269)-JVS(1975)*X(270)-JVS(1976)*X(271)-JVS(1977)*X(272)-JVS(1978)*X(275)-JVS(1979)*X(276)& - &-JVS(1980)*X(278)-JVS(1981)*X(279)-JVS(1982)*X(283)-JVS(1983)*X(287))/(JVS(1973)) + X(231) = (X(231)-JVS(1913)*X(240)-JVS(1914)*X(242)-JVS(1915)*X(244)-JVS(1916)*X(245)-JVS(1917)*X(246)-JVS(1918)*X(247)& + &-JVS(1919)*X(251)-JVS(1920)*X(266)-JVS(1921)*X(279)-JVS(1922)*X(281)-JVS(1923)*X(282)-JVS(1924)*X(284)& + &-JVS(1925)*X(286)-JVS(1926)*X(290)-JVS(1927)*X(291))/(JVS(1912)) IF (DO_SLV(230)) & - X(230) = (X(230)-JVS(1960)*X(244)-JVS(1961)*X(247)-JVS(1962)*X(254)-JVS(1963)*X(258)-JVS(1964)*X(269)-JVS(1965)*X(270)& - &-JVS(1966)*X(277)-JVS(1967)*X(279)-JVS(1968)*X(280)-JVS(1969)*X(285)-JVS(1970)*X(286)-JVS(1971)*X(287))& - &/(JVS(1959)) + X(230) = (X(230)-JVS(1879)*X(240)-JVS(1880)*X(242)-JVS(1881)*X(244)-JVS(1882)*X(245)-JVS(1883)*X(246)-JVS(1884)*X(247)& + &-JVS(1885)*X(248)-JVS(1886)*X(266)-JVS(1887)*X(279)-JVS(1888)*X(281)-JVS(1889)*X(282)-JVS(1890)*X(284)& + &-JVS(1891)*X(286)-JVS(1892)*X(290)-JVS(1893)*X(291))/(JVS(1878)) IF (DO_SLV(229)) & - X(229) = (X(229)-JVS(1947)*X(238)-JVS(1948)*X(239)-JVS(1949)*X(240)-JVS(1950)*X(241)-JVS(1951)*X(257)-JVS(1952)*X(263)& - &-JVS(1953)*X(269)-JVS(1954)*X(280)-JVS(1955)*X(281)-JVS(1956)*X(287))/(JVS(1946)) + X(229) = (X(229)-JVS(1853)*X(244)-JVS(1854)*X(245)-JVS(1855)*X(246)-JVS(1856)*X(247)-JVS(1857)*X(266)-JVS(1858)*X(279)& + &-JVS(1859)*X(284)-JVS(1860)*X(286))/(JVS(1852)) IF (DO_SLV(228)) & - X(228) = (X(228)-JVS(1918)*X(229)-JVS(1919)*X(236)-JVS(1920)*X(237)-JVS(1921)*X(238)-JVS(1922)*X(239)-JVS(1923)*X(240)& - &-JVS(1924)*X(241)-JVS(1925)*X(242)-JVS(1926)*X(243)-JVS(1927)*X(244)-JVS(1928)*X(245)-JVS(1929)*X(246)& - &-JVS(1930)*X(247)-JVS(1931)*X(248)-JVS(1932)*X(249)-JVS(1933)*X(254)-JVS(1934)*X(257)-JVS(1935)*X(263)& - &-JVS(1936)*X(269)-JVS(1937)*X(270)-JVS(1938)*X(277)-JVS(1939)*X(280)-JVS(1940)*X(281)-JVS(1941)*X(285)& - &-JVS(1942)*X(287))/(JVS(1917)) + X(228) = (X(228)-JVS(1832)*X(229)-JVS(1833)*X(244)-JVS(1834)*X(245)-JVS(1835)*X(246)-JVS(1836)*X(247)-JVS(1837)*X(266)& + &-JVS(1838)*X(279)-JVS(1839)*X(284)-JVS(1840)*X(286))/(JVS(1831)) IF (DO_SLV(227)) & - X(227) = (X(227)-JVS(1867)*X(236)-JVS(1868)*X(238)-JVS(1869)*X(240)-JVS(1870)*X(241)-JVS(1871)*X(242)-JVS(1872)*X(243)& - &-JVS(1873)*X(247)-JVS(1874)*X(263)-JVS(1875)*X(269)-JVS(1876)*X(270)-JVS(1877)*X(277)-JVS(1878)*X(280)& - &-JVS(1879)*X(281)-JVS(1880)*X(285)-JVS(1881)*X(287))/(JVS(1866)) + X(227) = (X(227)-JVS(1811)*X(268)-JVS(1812)*X(269)-JVS(1813)*X(270)-JVS(1814)*X(274)-JVS(1815)*X(279)-JVS(1816)*X(282)& + &-JVS(1817)*X(284)-JVS(1818)*X(285)-JVS(1819)*X(286)-JVS(1820)*X(291))/(JVS(1810)) IF (DO_SLV(226)) & - X(226) = (X(226)-JVS(1833)*X(236)-JVS(1834)*X(238)-JVS(1835)*X(240)-JVS(1836)*X(241)-JVS(1837)*X(242)-JVS(1838)*X(243)& - &-JVS(1839)*X(244)-JVS(1840)*X(263)-JVS(1841)*X(269)-JVS(1842)*X(270)-JVS(1843)*X(277)-JVS(1844)*X(280)& - &-JVS(1845)*X(281)-JVS(1846)*X(285)-JVS(1847)*X(287))/(JVS(1832)) + X(226) = (X(226)-JVS(1796)*X(238)-JVS(1797)*X(254)-JVS(1798)*X(256)-JVS(1799)*X(257)-JVS(1800)*X(261)-JVS(1801)*X(266)& + &-JVS(1802)*X(279)-JVS(1803)*X(281)-JVS(1804)*X(282)-JVS(1805)*X(284)-JVS(1806)*X(286))/(JVS(1795)) IF (DO_SLV(225)) & - X(225) = (X(225)-JVS(1807)*X(240)-JVS(1808)*X(241)-JVS(1809)*X(242)-JVS(1810)*X(243)-JVS(1811)*X(263)-JVS(1812)*X(269)& - &-JVS(1813)*X(280)-JVS(1814)*X(281))/(JVS(1806)) + X(225) = (X(225)-JVS(1780)*X(261)-JVS(1781)*X(266)-JVS(1782)*X(279)-JVS(1783)*X(281)-JVS(1784)*X(282)-JVS(1785)*X(284)& + &-JVS(1786)*X(286))/(JVS(1779)) IF (DO_SLV(224)) & - X(224) = (X(224)-JVS(1786)*X(225)-JVS(1787)*X(240)-JVS(1788)*X(241)-JVS(1789)*X(242)-JVS(1790)*X(243)-JVS(1791)*X(263)& - &-JVS(1792)*X(269)-JVS(1793)*X(280)-JVS(1794)*X(281))/(JVS(1785)) + X(224) = (X(224)-JVS(1774)*X(281)-JVS(1775)*X(282)-JVS(1776)*X(286)-JVS(1777)*X(290))/(JVS(1773)) IF (DO_SLV(223)) & - X(223) = (X(223)-JVS(1765)*X(264)-JVS(1766)*X(265)-JVS(1767)*X(266)-JVS(1768)*X(269)-JVS(1769)*X(270)-JVS(1770)*X(273)& - &-JVS(1771)*X(274)-JVS(1772)*X(277)-JVS(1773)*X(280)-JVS(1774)*X(281))/(JVS(1764)) + X(223) = (X(223)-JVS(1754)*X(224)-JVS(1755)*X(228)-JVS(1756)*X(229)-JVS(1757)*X(230)-JVS(1758)*X(236)-JVS(1759)*X(240)& + &-JVS(1760)*X(241)-JVS(1761)*X(242)-JVS(1762)*X(244)-JVS(1763)*X(245)-JVS(1764)*X(246)-JVS(1765)*X(247)& + &-JVS(1766)*X(266)-JVS(1767)*X(279)-JVS(1768)*X(281)-JVS(1769)*X(282)-JVS(1770)*X(284)-JVS(1771)*X(286)& + &-JVS(1772)*X(291))/(JVS(1753)) IF (DO_SLV(222)) & - X(222) = (X(222)-JVS(1750)*X(234)-JVS(1751)*X(249)-JVS(1752)*X(251)-JVS(1753)*X(252)-JVS(1754)*X(257)-JVS(1755)*X(263)& - &-JVS(1756)*X(269)-JVS(1757)*X(277)-JVS(1758)*X(280)-JVS(1759)*X(281)-JVS(1760)*X(287))/(JVS(1749)) + X(222) = (X(222)-JVS(1725)*X(246)-JVS(1726)*X(247)-JVS(1727)*X(266)-JVS(1728)*X(279)-JVS(1729)*X(284)-JVS(1730)& + &*X(286))/(JVS(1724)) IF (DO_SLV(221)) & - X(221) = (X(221)-JVS(1734)*X(257)-JVS(1735)*X(263)-JVS(1736)*X(269)-JVS(1737)*X(277)-JVS(1738)*X(280)-JVS(1739)*X(281)& - &-JVS(1740)*X(287))/(JVS(1733)) + X(221) = (X(221)-JVS(1711)*X(238)-JVS(1712)*X(254)-JVS(1713)*X(256)-JVS(1714)*X(257)-JVS(1715)*X(258)-JVS(1716)*X(261)& + &-JVS(1717)*X(266)-JVS(1718)*X(273)-JVS(1719)*X(279)-JVS(1720)*X(284)-JVS(1721)*X(286)-JVS(1722)*X(290))& + &/(JVS(1710)) IF (DO_SLV(220)) & - X(220) = (X(220)-JVS(1728)*X(269)-JVS(1729)*X(277)-JVS(1730)*X(285)-JVS(1731)*X(287))/(JVS(1727)) + X(220) = (X(220)-JVS(1701)*X(244)-JVS(1702)*X(246)-JVS(1703)*X(247)-JVS(1704)*X(266)-JVS(1705)*X(279)-JVS(1706)& + &*X(286))/(JVS(1700)) IF (DO_SLV(219)) & - X(219) = (X(219)-JVS(1715)*X(234)-JVS(1716)*X(249)-JVS(1717)*X(251)-JVS(1718)*X(252)-JVS(1719)*X(253)-JVS(1720)*X(257)& - &-JVS(1721)*X(263)-JVS(1722)*X(269)-JVS(1723)*X(280)-JVS(1724)*X(281)-JVS(1725)*X(282)-JVS(1726)*X(285))& - &/(JVS(1714)) + X(219) = (X(219)-JVS(1678)*X(237)-JVS(1679)*X(239)-JVS(1680)*X(250)-JVS(1681)*X(252)-JVS(1682)*X(253)-JVS(1683)*X(254)& + &-JVS(1684)*X(256)-JVS(1685)*X(257)-JVS(1686)*X(258)-JVS(1687)*X(261)-JVS(1688)*X(266)-JVS(1689)*X(267)& + &-JVS(1690)*X(273)-JVS(1691)*X(276)-JVS(1692)*X(278)-JVS(1693)*X(279)-JVS(1694)*X(281)-JVS(1695)*X(282)& + &-JVS(1696)*X(284)-JVS(1697)*X(286)-JVS(1698)*X(290)-JVS(1699)*X(291))/(JVS(1677)) IF (DO_SLV(218)) & - X(218) = (X(218)-JVS(1692)*X(220)-JVS(1693)*X(224)-JVS(1694)*X(225)-JVS(1695)*X(226)-JVS(1696)*X(232)-JVS(1697)*X(236)& - &-JVS(1698)*X(237)-JVS(1699)*X(238)-JVS(1700)*X(240)-JVS(1701)*X(241)-JVS(1702)*X(242)-JVS(1703)*X(243)& - &-JVS(1704)*X(263)-JVS(1705)*X(269)-JVS(1706)*X(270)-JVS(1707)*X(277)-JVS(1708)*X(280)-JVS(1709)*X(281)& - &-JVS(1710)*X(287))/(JVS(1691)) + X(218) = (X(218)-JVS(1650)*X(225)-JVS(1651)*X(236)-JVS(1652)*X(237)-JVS(1653)*X(238)-JVS(1654)*X(239)-JVS(1655)*X(246)& + &-JVS(1656)*X(247)-JVS(1657)*X(252)-JVS(1658)*X(253)-JVS(1659)*X(254)-JVS(1660)*X(256)-JVS(1661)*X(257)& + &-JVS(1662)*X(258)-JVS(1663)*X(261)-JVS(1664)*X(266)-JVS(1665)*X(273)-JVS(1666)*X(279)-JVS(1667)*X(281)& + &-JVS(1668)*X(282)-JVS(1669)*X(284)-JVS(1670)*X(286)-JVS(1671)*X(290))/(JVS(1649)) IF (DO_SLV(217)) & - X(217) = (X(217)-JVS(1663)*X(240)-JVS(1664)*X(241)-JVS(1665)*X(263)-JVS(1666)*X(269)-JVS(1667)*X(280)-JVS(1668)& - &*X(281))/(JVS(1662)) + X(217) = (X(217)-JVS(1636)*X(261)-JVS(1637)*X(266)-JVS(1638)*X(273)-JVS(1639)*X(279)-JVS(1640)*X(281)-JVS(1641)*X(284)& + &-JVS(1642)*X(286)-JVS(1643)*X(290))/(JVS(1635)) IF (DO_SLV(216)) & - X(216) = (X(216)-JVS(1655)*X(240)-JVS(1656)*X(241)-JVS(1657)*X(243)-JVS(1658)*X(263)-JVS(1659)*X(269)-JVS(1660)& - &*X(280))/(JVS(1654)) + X(216) = (X(216)-JVS(1627)*X(261)-JVS(1628)*X(266)-JVS(1629)*X(279)-JVS(1630)*X(281)-JVS(1631)*X(282)-JVS(1632)*X(284)& + &-JVS(1633)*X(286))/(JVS(1626)) IF (DO_SLV(215)) & - X(215) = (X(215)-JVS(1632)*X(233)-JVS(1633)*X(235)-JVS(1634)*X(246)-JVS(1635)*X(248)-JVS(1636)*X(249)-JVS(1637)*X(251)& - &-JVS(1638)*X(252)-JVS(1639)*X(253)-JVS(1640)*X(254)-JVS(1641)*X(257)-JVS(1642)*X(258)-JVS(1643)*X(263)& - &-JVS(1644)*X(269)-JVS(1645)*X(270)-JVS(1646)*X(277)-JVS(1647)*X(279)-JVS(1648)*X(280)-JVS(1649)*X(281)& - &-JVS(1650)*X(282)-JVS(1651)*X(285)-JVS(1652)*X(286)-JVS(1653)*X(287))/(JVS(1631)) + X(215) = (X(215)-JVS(1614)*X(216)-JVS(1615)*X(261)-JVS(1616)*X(266)-JVS(1617)*X(279)-JVS(1618)*X(281)-JVS(1619)*X(282)& + &-JVS(1620)*X(284)-JVS(1621)*X(286))/(JVS(1613)) IF (DO_SLV(214)) & - X(214) = (X(214)-JVS(1604)*X(221)-JVS(1605)*X(232)-JVS(1606)*X(233)-JVS(1607)*X(234)-JVS(1608)*X(235)-JVS(1609)*X(240)& - &-JVS(1610)*X(241)-JVS(1611)*X(248)-JVS(1612)*X(249)-JVS(1613)*X(251)-JVS(1614)*X(252)-JVS(1615)*X(253)& - &-JVS(1616)*X(254)-JVS(1617)*X(257)-JVS(1618)*X(263)-JVS(1619)*X(269)-JVS(1620)*X(277)-JVS(1621)*X(280)& - &-JVS(1622)*X(281)-JVS(1623)*X(282)-JVS(1624)*X(285)-JVS(1625)*X(287))/(JVS(1603)) + X(214) = (X(214)-JVS(1605)*X(245)-JVS(1606)*X(246)-JVS(1607)*X(266)-JVS(1608)*X(279)-JVS(1609)*X(286))/(JVS(1604)) IF (DO_SLV(213)) & - X(213) = (X(213)-JVS(1590)*X(257)-JVS(1591)*X(263)-JVS(1592)*X(269)-JVS(1593)*X(280)-JVS(1594)*X(281)-JVS(1595)*X(282)& - &-JVS(1596)*X(285)-JVS(1597)*X(287))/(JVS(1589)) + X(213) = (X(213)-JVS(1592)*X(214)-JVS(1593)*X(220)-JVS(1594)*X(222)-JVS(1595)*X(228)-JVS(1596)*X(229)-JVS(1597)*X(242)& + &-JVS(1598)*X(244)-JVS(1599)*X(245)-JVS(1600)*X(246)-JVS(1601)*X(279)-JVS(1602)*X(284)-JVS(1603)*X(286))& + &/(JVS(1591)) IF (DO_SLV(212)) & - X(212) = (X(212)-JVS(1581)*X(257)-JVS(1582)*X(263)-JVS(1583)*X(269)-JVS(1584)*X(277)-JVS(1585)*X(280)-JVS(1586)*X(281)& - &-JVS(1587)*X(287))/(JVS(1580)) + X(212) = (X(212)-JVS(1570)*X(224)-JVS(1571)*X(234)-JVS(1572)*X(248)-JVS(1573)*X(253)-JVS(1574)*X(267)-JVS(1575)*X(276)& + &-JVS(1576)*X(278)-JVS(1577)*X(279)-JVS(1578)*X(281)-JVS(1579)*X(282)-JVS(1580)*X(284)-JVS(1581)*X(286)& + &-JVS(1582)*X(288)-JVS(1583)*X(290)-JVS(1584)*X(291))/(JVS(1569)) IF (DO_SLV(211)) & - X(211) = (X(211)-JVS(1568)*X(212)-JVS(1569)*X(257)-JVS(1570)*X(263)-JVS(1571)*X(269)-JVS(1572)*X(277)-JVS(1573)*X(280)& - &-JVS(1574)*X(281)-JVS(1575)*X(287))/(JVS(1567)) + X(211) = (X(211)-JVS(1544)*X(224)-JVS(1545)*X(234)-JVS(1546)*X(236)-JVS(1547)*X(238)-JVS(1548)*X(240)-JVS(1549)*X(241)& + &-JVS(1550)*X(242)-JVS(1551)*X(244)-JVS(1552)*X(245)-JVS(1553)*X(249)-JVS(1554)*X(250)-JVS(1555)*X(251)& + &-JVS(1556)*X(266)-JVS(1557)*X(278)-JVS(1558)*X(279)-JVS(1559)*X(281)-JVS(1560)*X(282)-JVS(1561)*X(284)& + &-JVS(1562)*X(286)-JVS(1563)*X(290)-JVS(1564)*X(291))/(JVS(1543)) IF (DO_SLV(210)) & - X(210) = (X(210)-JVS(1559)*X(241)-JVS(1560)*X(242)-JVS(1561)*X(263)-JVS(1562)*X(269)-JVS(1563)*X(280))/(JVS(1558)) + X(210) = (X(210)-JVS(1523)*X(266)-JVS(1524)*X(279)-JVS(1525)*X(281)-JVS(1526)*X(282)-JVS(1527)*X(284)-JVS(1528)*X(286)& + &-JVS(1529)*X(291))/(JVS(1522)) IF (DO_SLV(209)) & - X(209) = (X(209)-JVS(1546)*X(210)-JVS(1547)*X(216)-JVS(1548)*X(217)-JVS(1549)*X(224)-JVS(1550)*X(225)-JVS(1551)*X(238)& - &-JVS(1552)*X(241)-JVS(1553)*X(242)-JVS(1554)*X(243)-JVS(1555)*X(269)-JVS(1556)*X(280)-JVS(1557)*X(281))& - &/(JVS(1545)) + X(209) = (X(209)-JVS(1508)*X(253)-JVS(1509)*X(261)-JVS(1510)*X(266)-JVS(1511)*X(273)-JVS(1512)*X(279)-JVS(1513)*X(284)& + &-JVS(1514)*X(286)-JVS(1515)*X(290))/(JVS(1507)) IF (DO_SLV(208)) & - X(208) = (X(208)-JVS(1524)*X(220)-JVS(1525)*X(230)-JVS(1526)*X(244)-JVS(1527)*X(254)-JVS(1528)*X(258)-JVS(1529)*X(269)& - &-JVS(1530)*X(270)-JVS(1531)*X(277)-JVS(1532)*X(279)-JVS(1533)*X(280)-JVS(1534)*X(281)-JVS(1535)*X(284)& - &-JVS(1536)*X(285)-JVS(1537)*X(286)-JVS(1538)*X(287))/(JVS(1523)) + X(208) = (X(208)-JVS(1494)*X(214)-JVS(1495)*X(222)-JVS(1496)*X(232)-JVS(1497)*X(240)-JVS(1498)*X(241)-JVS(1499)*X(242)& + &-JVS(1500)*X(243)-JVS(1501)*X(246)-JVS(1502)*X(279)-JVS(1503)*X(281)-JVS(1504)*X(284)-JVS(1505)*X(286))& + &/(JVS(1493)) IF (DO_SLV(207)) & - X(207) = (X(207)-JVS(1498)*X(220)-JVS(1499)*X(230)-JVS(1500)*X(232)-JVS(1501)*X(234)-JVS(1502)*X(236)-JVS(1503)*X(237)& - &-JVS(1504)*X(238)-JVS(1505)*X(242)-JVS(1506)*X(243)-JVS(1507)*X(245)-JVS(1508)*X(246)-JVS(1509)*X(247)& - &-JVS(1510)*X(263)-JVS(1511)*X(269)-JVS(1512)*X(270)-JVS(1513)*X(277)-JVS(1514)*X(279)-JVS(1515)*X(280)& - &-JVS(1516)*X(281)-JVS(1517)*X(285)-JVS(1518)*X(287))/(JVS(1497)) + X(207) = (X(207)-JVS(1482)*X(249)-JVS(1483)*X(251)-JVS(1484)*X(279)-JVS(1485)*X(281)-JVS(1486)*X(284)-JVS(1487)*X(286)& + &-JVS(1488)*X(291))/(JVS(1481)) IF (DO_SLV(206)) & - X(206) = (X(206)-JVS(1477)*X(263)-JVS(1478)*X(269)-JVS(1479)*X(270)-JVS(1480)*X(277)-JVS(1481)*X(280)-JVS(1482)*X(281)& - &-JVS(1483)*X(287))/(JVS(1476)) + X(206) = (X(206)-JVS(1470)*X(214)-JVS(1471)*X(220)-JVS(1472)*X(228)-JVS(1473)*X(229)-JVS(1474)*X(244)-JVS(1475)*X(245)& + &-JVS(1476)*X(279)-JVS(1477)*X(284)-JVS(1478)*X(286))/(JVS(1469)) IF (DO_SLV(205)) & - X(205) = (X(205)-JVS(1458)*X(210)-JVS(1459)*X(217)-JVS(1460)*X(229)-JVS(1461)*X(236)-JVS(1462)*X(237)-JVS(1463)*X(238)& - &-JVS(1464)*X(239)-JVS(1465)*X(241)-JVS(1466)*X(269)-JVS(1467)*X(280)-JVS(1468)*X(281)-JVS(1469)*X(287))& - &/(JVS(1457)) + X(205) = (X(205)-JVS(1456)*X(224)-JVS(1457)*X(240)-JVS(1458)*X(244)-JVS(1459)*X(251)-JVS(1460)*X(279)-JVS(1461)*X(284)& + &-JVS(1462)*X(286)-JVS(1463)*X(291))/(JVS(1455)) IF (DO_SLV(204)) & - X(204) = (X(204)-JVS(1445)*X(254)-JVS(1446)*X(257)-JVS(1447)*X(263)-JVS(1448)*X(269)-JVS(1449)*X(280)-JVS(1450)*X(281)& - &-JVS(1451)*X(282)-JVS(1452)*X(285))/(JVS(1444)) + X(204) = (X(204)-JVS(1445)*X(224)-JVS(1446)*X(240)-JVS(1447)*X(245)-JVS(1448)*X(248)-JVS(1449)*X(279)-JVS(1450)*X(284)& + &-JVS(1451)*X(286)-JVS(1452)*X(291))/(JVS(1444)) IF (DO_SLV(203)) & - X(203) = (X(203)-JVS(1436)*X(245)-JVS(1437)*X(247)-JVS(1438)*X(269)-JVS(1439)*X(270)-JVS(1440)*X(280)-JVS(1441)*X(281)& - &-JVS(1442)*X(287))/(JVS(1435)) + X(203) = (X(203)-JVS(1436)*X(269)-JVS(1437)*X(277)-JVS(1438)*X(280)-JVS(1439)*X(283)-JVS(1440)*X(287)-JVS(1441)& + &*X(291))/(JVS(1435)) IF (DO_SLV(202)) & - X(202) = (X(202)-JVS(1424)*X(210)-JVS(1425)*X(216)-JVS(1426)*X(224)-JVS(1427)*X(225)-JVS(1428)*X(242)-JVS(1429)*X(243)& - &-JVS(1430)*X(269)-JVS(1431)*X(280)-JVS(1432)*X(281))/(JVS(1423)) + X(202) = (X(202)-JVS(1429)*X(254)-JVS(1430)*X(256)-JVS(1431)*X(257)-JVS(1432)*X(279)-JVS(1433)*X(284)-JVS(1434)& + &*X(286))/(JVS(1428)) IF (DO_SLV(201)) & - X(201) = (X(201)-JVS(1410)*X(220)-JVS(1411)*X(236)-JVS(1412)*X(243)-JVS(1413)*X(247)-JVS(1414)*X(269)-JVS(1415)*X(270)& - &-JVS(1416)*X(280)-JVS(1417)*X(281))/(JVS(1409)) + X(201) = (X(201)-JVS(1421)*X(253)-JVS(1422)*X(261)-JVS(1423)*X(266)-JVS(1424)*X(279)-JVS(1425)*X(281)-JVS(1426)*X(284)& + &-JVS(1427)*X(286))/(JVS(1420)) IF (DO_SLV(200)) & - X(200) = (X(200)-JVS(1399)*X(220)-JVS(1400)*X(236)-JVS(1401)*X(242)-JVS(1402)*X(244)-JVS(1403)*X(269)-JVS(1404)*X(270)& - &-JVS(1405)*X(280)-JVS(1406)*X(281))/(JVS(1398)) + X(200) = (X(200)-JVS(1408)*X(205)-JVS(1409)*X(224)-JVS(1410)*X(240)-JVS(1411)*X(242)-JVS(1412)*X(244)-JVS(1413)*X(245)& + &-JVS(1414)*X(249)-JVS(1415)*X(279)-JVS(1416)*X(284)-JVS(1417)*X(286)-JVS(1418)*X(291))/(JVS(1407)) IF (DO_SLV(199)) & - X(199) = (X(199)-JVS(1390)*X(265)-JVS(1391)*X(270)-JVS(1392)*X(275)-JVS(1393)*X(276)-JVS(1394)*X(278)-JVS(1395)& - &*X(283))/(JVS(1389)) + X(199) = (X(199)-JVS(1393)*X(215)-JVS(1394)*X(216)-JVS(1395)*X(225)-JVS(1396)*X(238)-JVS(1397)*X(261)-JVS(1398)*X(266)& + &-JVS(1399)*X(279)-JVS(1400)*X(281)-JVS(1401)*X(282)-JVS(1402)*X(284)-JVS(1403)*X(286))/(JVS(1392)) IF (DO_SLV(198)) & - X(198) = (X(198)-JVS(1383)*X(249)-JVS(1384)*X(251)-JVS(1385)*X(252)-JVS(1386)*X(269)-JVS(1387)*X(280)-JVS(1388)& - &*X(281))/(JVS(1382)) + X(198) = (X(198)-JVS(1377)*X(201)-JVS(1378)*X(220)-JVS(1379)*X(222)-JVS(1380)*X(232)-JVS(1381)*X(240)-JVS(1382)*X(242)& + &-JVS(1383)*X(243)-JVS(1384)*X(246)-JVS(1385)*X(249)-JVS(1386)*X(251)-JVS(1387)*X(266)-JVS(1388)*X(279)& + &-JVS(1389)*X(281)-JVS(1390)*X(284)-JVS(1391)*X(286))/(JVS(1376)) IF (DO_SLV(197)) & - X(197) = (X(197)-JVS(1375)*X(254)-JVS(1376)*X(257)-JVS(1377)*X(263)-JVS(1378)*X(269)-JVS(1379)*X(280)-JVS(1380)*X(281)& - &-JVS(1381)*X(287))/(JVS(1374)) + X(197) = (X(197)-JVS(1358)*X(235)-JVS(1359)*X(262)-JVS(1360)*X(266)-JVS(1361)*X(271)-JVS(1362)*X(272)-JVS(1363)*X(274)& + &-JVS(1364)*X(275)-JVS(1365)*X(280)-JVS(1366)*X(285)-JVS(1367)*X(286)-JVS(1368)*X(287)-JVS(1369)*X(290))& + &/(JVS(1357)) IF (DO_SLV(196)) & - X(196) = (X(196)-JVS(1362)*X(211)-JVS(1363)*X(212)-JVS(1364)*X(221)-JVS(1365)*X(234)-JVS(1366)*X(257)-JVS(1367)*X(263)& - &-JVS(1368)*X(269)-JVS(1369)*X(277)-JVS(1370)*X(280)-JVS(1371)*X(281)-JVS(1372)*X(287))/(JVS(1361)) + X(196) = (X(196)-JVS(1344)*X(222)-JVS(1345)*X(224)-JVS(1346)*X(231)-JVS(1347)*X(242)-JVS(1348)*X(244)-JVS(1349)*X(246)& + &-JVS(1350)*X(251)-JVS(1351)*X(252)-JVS(1352)*X(254)-JVS(1353)*X(279)-JVS(1354)*X(284)-JVS(1355)*X(286))& + &/(JVS(1343)) IF (DO_SLV(195)) & - X(195) = (X(195)-JVS(1350)*X(201)-JVS(1351)*X(220)-JVS(1352)*X(236)-JVS(1353)*X(238)-JVS(1354)*X(242)-JVS(1355)*X(243)& - &-JVS(1356)*X(245)-JVS(1357)*X(269)-JVS(1358)*X(270)-JVS(1359)*X(280)-JVS(1360)*X(281))/(JVS(1349)) + X(195) = (X(195)-JVS(1333)*X(253)-JVS(1334)*X(267)-JVS(1335)*X(276)-JVS(1336)*X(278)-JVS(1337)*X(279)-JVS(1338)*X(282)& + &-JVS(1339)*X(291))/(JVS(1332)) IF (DO_SLV(194)) & - X(194) = (X(194)-JVS(1331)*X(197)-JVS(1332)*X(216)-JVS(1333)*X(217)-JVS(1334)*X(229)-JVS(1335)*X(236)-JVS(1336)*X(238)& - &-JVS(1337)*X(239)-JVS(1338)*X(241)-JVS(1339)*X(245)-JVS(1340)*X(247)-JVS(1341)*X(263)-JVS(1342)*X(269)& - &-JVS(1343)*X(280)-JVS(1344)*X(281)-JVS(1345)*X(287))/(JVS(1330)) + X(194) = (X(194)-JVS(1325)*X(214)-JVS(1326)*X(220)-JVS(1327)*X(244)-JVS(1328)*X(245)-JVS(1329)*X(279)-JVS(1330)*X(284)& + &-JVS(1331)*X(286))/(JVS(1324)) IF (DO_SLV(193)) & - X(193) = (X(193)-JVS(1312)*X(217)-JVS(1313)*X(220)-JVS(1314)*X(227)-JVS(1315)*X(238)-JVS(1316)*X(241)-JVS(1317)*X(243)& - &-JVS(1318)*X(247)-JVS(1319)*X(248)-JVS(1320)*X(249)-JVS(1321)*X(269)-JVS(1322)*X(280)-JVS(1323)*X(281))& - &/(JVS(1311)) + X(193) = (X(193)-JVS(1304)*X(203)-JVS(1305)*X(210)-JVS(1306)*X(235)-JVS(1307)*X(265)-JVS(1308)*X(275)-JVS(1309)*X(276)& + &-JVS(1310)*X(277)-JVS(1311)*X(279)-JVS(1312)*X(280)-JVS(1313)*X(281)-JVS(1314)*X(282)-JVS(1315)*X(283)& + &-JVS(1316)*X(286)-JVS(1317)*X(287)-JVS(1318)*X(289)-JVS(1319)*X(291))/(JVS(1303)) IF (DO_SLV(192)) & - X(192) = (X(192)-JVS(1296)*X(231)-JVS(1297)*X(259)-JVS(1298)*X(263)-JVS(1299)*X(267)-JVS(1300)*X(268)-JVS(1301)*X(269)& - &-JVS(1302)*X(271)-JVS(1303)*X(273)-JVS(1304)*X(274)-JVS(1305)*X(278)-JVS(1306)*X(283)-JVS(1307)*X(285))& - &/(JVS(1295)) + X(192) = (X(192)-JVS(1291)*X(214)-JVS(1292)*X(220)-JVS(1293)*X(244)-JVS(1294)*X(245)-JVS(1295)*X(266)-JVS(1296)*X(279)& + &-JVS(1297)*X(284)-JVS(1298)*X(286))/(JVS(1290)) IF (DO_SLV(191)) & - X(191) = (X(191)-JVS(1287)*X(254)-JVS(1288)*X(258)-JVS(1289)*X(270)-JVS(1290)*X(277)-JVS(1291)*X(279)-JVS(1292)*X(280)& - &-JVS(1293)*X(286))/(JVS(1286)) + X(191) = (X(191)-JVS(1281)*X(266)-JVS(1282)*X(279)-JVS(1283)*X(281)-JVS(1284)*X(282)-JVS(1285)*X(284)-JVS(1286)*X(286)& + &-JVS(1287)*X(291))/(JVS(1280)) IF (DO_SLV(190)) & - X(190) = (X(190)-JVS(1279)*X(210)-JVS(1280)*X(216)-JVS(1281)*X(242)-JVS(1282)*X(243)-JVS(1283)*X(269)-JVS(1284)*X(280)& - &-JVS(1285)*X(281))/(JVS(1278)) + X(190) = (X(190)-JVS(1269)*X(253)-JVS(1270)*X(264)-JVS(1271)*X(272)-JVS(1272)*X(282)-JVS(1273)*X(286)-JVS(1274)& + &*X(290))/(JVS(1268)) IF (DO_SLV(189)) & - X(189) = (X(189)-JVS(1266)*X(210)-JVS(1267)*X(216)-JVS(1268)*X(242)-JVS(1269)*X(243)-JVS(1270)*X(263)-JVS(1271)*X(269)& - &-JVS(1272)*X(280)-JVS(1273)*X(281))/(JVS(1265)) + X(189) = (X(189)-JVS(1264)*X(246)-JVS(1265)*X(279)-JVS(1266)*X(284)-JVS(1267)*X(286))/(JVS(1263)) IF (DO_SLV(188)) & - X(188) = (X(188)-JVS(1247)*X(199)-JVS(1248)*X(206)-JVS(1249)*X(231)-JVS(1250)*X(260)-JVS(1251)*X(269)-JVS(1252)*X(270)& - &-JVS(1253)*X(271)-JVS(1254)*X(272)-JVS(1255)*X(275)-JVS(1256)*X(276)-JVS(1257)*X(277)-JVS(1258)*X(278)& - &-JVS(1259)*X(280)-JVS(1260)*X(283)-JVS(1261)*X(286)-JVS(1262)*X(287))/(JVS(1246)) + X(188) = (X(188)-JVS(1258)*X(224)-JVS(1259)*X(244)-JVS(1260)*X(284)-JVS(1261)*X(286))/(JVS(1257)) IF (DO_SLV(187)) & - X(187) = (X(187)-JVS(1235)*X(263)-JVS(1236)*X(269)-JVS(1237)*X(270)-JVS(1238)*X(277)-JVS(1239)*X(280)-JVS(1240)*X(281)& - &-JVS(1241)*X(287))/(JVS(1234)) + X(187) = (X(187)-JVS(1251)*X(244)-JVS(1252)*X(245)-JVS(1253)*X(279)-JVS(1254)*X(284)-JVS(1255)*X(286))/(JVS(1250)) IF (DO_SLV(186)) & - X(186) = (X(186)-JVS(1223)*X(254)-JVS(1224)*X(261)-JVS(1225)*X(268)-JVS(1226)*X(269)-JVS(1227)*X(277)-JVS(1228)& - &*X(285))/(JVS(1222)) + X(186) = (X(186)-JVS(1244)*X(224)-JVS(1245)*X(245)-JVS(1246)*X(284)-JVS(1247)*X(286))/(JVS(1243)) IF (DO_SLV(185)) & - X(185) = (X(185)-JVS(1218)*X(241)-JVS(1219)*X(269)-JVS(1220)*X(280)-JVS(1221)*X(281))/(JVS(1217)) + X(185) = (X(185)-JVS(1230)*X(186)-JVS(1231)*X(188)-JVS(1232)*X(206)-JVS(1233)*X(228)-JVS(1234)*X(229)-JVS(1235)*X(230)& + &-JVS(1236)*X(240)-JVS(1237)*X(241)-JVS(1238)*X(242)-JVS(1239)*X(279)-JVS(1240)*X(284)-JVS(1241)*X(286))& + &/(JVS(1229)) IF (DO_SLV(184)) & - X(184) = (X(184)-JVS(1212)*X(220)-JVS(1213)*X(243)-JVS(1214)*X(269)-JVS(1215)*X(281))/(JVS(1211)) + X(184) = (X(184)-JVS(1218)*X(261)-JVS(1219)*X(266)-JVS(1220)*X(279)-JVS(1221)*X(281)-JVS(1222)*X(282)-JVS(1223)*X(284)& + &-JVS(1224)*X(286))/(JVS(1217)) IF (DO_SLV(183)) & - X(183) = (X(183)-JVS(1205)*X(242)-JVS(1206)*X(243)-JVS(1207)*X(269)-JVS(1208)*X(280)-JVS(1209)*X(281))/(JVS(1204)) + X(183) = (X(183)-JVS(1207)*X(244)-JVS(1208)*X(279)-JVS(1209)*X(284)-JVS(1210)*X(286))/(JVS(1206)) IF (DO_SLV(182)) & - X(182) = (X(182)-JVS(1198)*X(220)-JVS(1199)*X(242)-JVS(1200)*X(269)-JVS(1201)*X(281))/(JVS(1197)) + X(182) = (X(182)-JVS(1200)*X(245)-JVS(1201)*X(279)-JVS(1202)*X(284)-JVS(1203)*X(286))/(JVS(1199)) IF (DO_SLV(181)) & - X(181) = (X(181)-JVS(1184)*X(182)-JVS(1185)*X(184)-JVS(1186)*X(202)-JVS(1187)*X(224)-JVS(1188)*X(225)-JVS(1189)*X(226)& - &-JVS(1190)*X(236)-JVS(1191)*X(237)-JVS(1192)*X(238)-JVS(1193)*X(269)-JVS(1194)*X(280)-JVS(1195)*X(281))& - &/(JVS(1183)) + X(181) = (X(181)-JVS(1192)*X(246)-JVS(1193)*X(247)-JVS(1194)*X(266)-JVS(1195)*X(284)-JVS(1196)*X(286))/(JVS(1191)) IF (DO_SLV(180)) & - X(180) = (X(180)-JVS(1175)*X(243)-JVS(1176)*X(269)-JVS(1177)*X(280)-JVS(1178)*X(281))/(JVS(1174)) + X(180) = (X(180)-JVS(1185)*X(266)-JVS(1186)*X(279)-JVS(1187)*X(281)-JVS(1188)*X(284)-JVS(1189)*X(286)-JVS(1190)& + &*X(291))/(JVS(1184)) IF (DO_SLV(179)) & - X(179) = (X(179)-JVS(1168)*X(242)-JVS(1169)*X(269)-JVS(1170)*X(280)-JVS(1171)*X(281))/(JVS(1167)) + X(179) = (X(179)-JVS(1175)*X(266)-JVS(1176)*X(279)-JVS(1177)*X(281)-JVS(1178)*X(282)-JVS(1179)*X(284)-JVS(1180)& + &*X(286))/(JVS(1174)) IF (DO_SLV(178)) & - X(178) = (X(178)-JVS(1158)*X(257)-JVS(1159)*X(263)-JVS(1160)*X(269)-JVS(1161)*X(277)-JVS(1162)*X(280)-JVS(1163)*X(281)& - &-JVS(1164)*X(287))/(JVS(1157)) + X(178) = (X(178)-JVS(1163)*X(215)-JVS(1164)*X(216)-JVS(1165)*X(238)-JVS(1166)*X(261)-JVS(1167)*X(266)-JVS(1168)*X(279)& + &-JVS(1169)*X(281)-JVS(1170)*X(284)-JVS(1171)*X(286))/(JVS(1162)) IF (DO_SLV(177)) & - X(177) = (X(177)-JVS(1146)*X(240)-JVS(1147)*X(241)-JVS(1148)*X(263)-JVS(1149)*X(269)-JVS(1150)*X(281))/(JVS(1145)) + X(177) = (X(177)-JVS(1152)*X(190)-JVS(1153)*X(263)-JVS(1154)*X(272)-JVS(1155)*X(275)-JVS(1156)*X(282)-JVS(1157)*X(284)& + &-JVS(1158)*X(286)-JVS(1159)*X(288)-JVS(1160)*X(289)-JVS(1161)*X(290))/(JVS(1151)) IF (DO_SLV(176)) & - X(176) = (X(176)-JVS(1139)*X(263)-JVS(1140)*X(269)-JVS(1141)*X(270)-JVS(1142)*X(280)-JVS(1143)*X(281)-JVS(1144)& - &*X(287))/(JVS(1138)) + X(176) = (X(176)-JVS(1145)*X(273)-JVS(1146)*X(274)-JVS(1147)*X(275)-JVS(1148)*X(278)-JVS(1149)*X(291))/(JVS(1144)) IF (DO_SLV(175)) & - X(175) = (X(175)-JVS(1129)*X(263)-JVS(1130)*X(269)-JVS(1131)*X(277)-JVS(1132)*X(280)-JVS(1133)*X(281)-JVS(1134)& - &*X(287))/(JVS(1128)) + X(175) = (X(175)-JVS(1134)*X(189)-JVS(1135)*X(220)-JVS(1136)*X(222)-JVS(1137)*X(232)-JVS(1138)*X(240)-JVS(1139)*X(249)& + &-JVS(1140)*X(266)-JVS(1141)*X(279)-JVS(1142)*X(284)-JVS(1143)*X(286))/(JVS(1133)) IF (DO_SLV(174)) & - X(174) = (X(174)-JVS(1117)*X(211)-JVS(1118)*X(212)-JVS(1119)*X(234)-JVS(1120)*X(257)-JVS(1121)*X(263)-JVS(1122)*X(269)& - &-JVS(1123)*X(280)-JVS(1124)*X(281)-JVS(1125)*X(287))/(JVS(1116)) + X(174) = (X(174)-JVS(1120)*X(186)-JVS(1121)*X(188)-JVS(1122)*X(214)-JVS(1123)*X(220)-JVS(1124)*X(224)-JVS(1125)*X(240)& + &-JVS(1126)*X(244)-JVS(1127)*X(245)-JVS(1128)*X(246)-JVS(1129)*X(279)-JVS(1130)*X(284)-JVS(1131)*X(286))& + &/(JVS(1119)) IF (DO_SLV(173)) & - X(173) = (X(173)-JVS(1106)*X(186)-JVS(1107)*X(262)-JVS(1108)*X(268)-JVS(1109)*X(269)-JVS(1110)*X(271)-JVS(1111)*X(272)& - &-JVS(1112)*X(277)-JVS(1113)*X(281)-JVS(1114)*X(284)-JVS(1115)*X(285))/(JVS(1105)) + X(173) = (X(173)-JVS(1101)*X(275)-JVS(1102)*X(278)-JVS(1103)*X(280)-JVS(1104)*X(281)-JVS(1105)*X(287)-JVS(1106)& + &*X(291))/(JVS(1100)) IF (DO_SLV(172)) & - X(172) = (X(172)-JVS(1100)*X(270)-JVS(1101)*X(271)-JVS(1102)*X(274)-JVS(1103)*X(279)-JVS(1104)*X(282))/(JVS(1099)) + X(172) = (X(172)-JVS(1091)*X(182)-JVS(1092)*X(189)-JVS(1093)*X(222)-JVS(1094)*X(224)-JVS(1095)*X(242)-JVS(1096)*X(245)& + &-JVS(1097)*X(279)-JVS(1098)*X(284)-JVS(1099)*X(286))/(JVS(1090)) IF (DO_SLV(171)) & - X(171) = (X(171)-JVS(1089)*X(185)-JVS(1090)*X(216)-JVS(1091)*X(217)-JVS(1092)*X(229)-JVS(1093)*X(236)-JVS(1094)*X(245)& - &-JVS(1095)*X(263)-JVS(1096)*X(269)-JVS(1097)*X(280)-JVS(1098)*X(281))/(JVS(1088)) + X(171) = (X(171)-JVS(1086)*X(245)-JVS(1087)*X(284)-JVS(1088)*X(286))/(JVS(1085)) IF (DO_SLV(170)) & - X(170) = (X(170)-JVS(1075)*X(182)-JVS(1076)*X(184)-JVS(1077)*X(210)-JVS(1078)*X(216)-JVS(1079)*X(220)-JVS(1080)*X(236)& - &-JVS(1081)*X(241)-JVS(1082)*X(242)-JVS(1083)*X(243)-JVS(1084)*X(269)-JVS(1085)*X(280)-JVS(1086)*X(281))& - &/(JVS(1074)) + X(170) = (X(170)-JVS(1082)*X(281)-JVS(1083)*X(282)-JVS(1084)*X(286))/(JVS(1081)) IF (DO_SLV(169)) & - X(169) = (X(169)-JVS(1056)*X(270)-JVS(1057)*X(271)-JVS(1058)*X(278)-JVS(1059)*X(279)-JVS(1060)*X(283)-JVS(1061)& - &*X(287))/(JVS(1055)) + X(169) = (X(169)-JVS(1072)*X(194)-JVS(1073)*X(204)-JVS(1074)*X(206)-JVS(1075)*X(228)-JVS(1076)*X(229)-JVS(1077)*X(230)& + &-JVS(1078)*X(279)-JVS(1079)*X(284)-JVS(1080)*X(286))/(JVS(1071)) IF (DO_SLV(168)) & - X(168) = (X(168)-JVS(1046)*X(179)-JVS(1047)*X(185)-JVS(1048)*X(217)-JVS(1049)*X(220)-JVS(1050)*X(238)-JVS(1051)*X(242)& - &-JVS(1052)*X(269)-JVS(1053)*X(280)-JVS(1054)*X(281))/(JVS(1045)) + X(168) = (X(168)-JVS(1065)*X(214)-JVS(1066)*X(279)-JVS(1067)*X(284)-JVS(1068)*X(286))/(JVS(1064)) IF (DO_SLV(167)) & - X(167) = (X(167)-JVS(1041)*X(242)-JVS(1042)*X(269)-JVS(1043)*X(281))/(JVS(1040)) + X(167) = (X(167)-JVS(1060)*X(245)-JVS(1061)*X(279)-JVS(1062)*X(284)-JVS(1063)*X(286))/(JVS(1059)) IF (DO_SLV(166)) & - X(166) = (X(166)-JVS(1031)*X(190)-JVS(1032)*X(200)-JVS(1033)*X(202)-JVS(1034)*X(224)-JVS(1035)*X(225)-JVS(1036)*X(226)& - &-JVS(1037)*X(269)-JVS(1038)*X(280)-JVS(1039)*X(281))/(JVS(1030)) + X(166) = (X(166)-JVS(1054)*X(220)-JVS(1055)*X(279)-JVS(1056)*X(284)-JVS(1057)*X(286))/(JVS(1053)) IF (DO_SLV(165)) & - X(165) = (X(165)-JVS(1025)*X(269)-JVS(1026)*X(277)-JVS(1027)*X(287))/(JVS(1024)) + X(165) = (X(165)-JVS(1050)*X(244)-JVS(1051)*X(284)-JVS(1052)*X(286))/(JVS(1049)) IF (DO_SLV(164)) & - X(164) = (X(164)-JVS(1020)*X(216)-JVS(1021)*X(269)-JVS(1022)*X(280)-JVS(1023)*X(281))/(JVS(1019)) + X(164) = (X(164)-JVS(1044)*X(182)-JVS(1045)*X(183)-JVS(1046)*X(187)-JVS(1047)*X(284)-JVS(1048)*X(286))/(JVS(1043)) IF (DO_SLV(163)) & - X(163) = (X(163)-JVS(1015)*X(210)-JVS(1016)*X(269)-JVS(1017)*X(280)-JVS(1018)*X(281))/(JVS(1014)) + X(163) = (X(163)-JVS(1037)*X(186)-JVS(1038)*X(188)-JVS(1039)*X(240)-JVS(1040)*X(242)-JVS(1041)*X(286))/(JVS(1036)) IF (DO_SLV(162)) & - X(162) = (X(162)-JVS(1010)*X(242)-JVS(1011)*X(269)-JVS(1012)*X(280)-JVS(1013)*X(281))/(JVS(1009)) + X(162) = (X(162)-JVS(1033)*X(244)-JVS(1034)*X(284)-JVS(1035)*X(286))/(JVS(1032)) IF (DO_SLV(161)) & - X(161) = (X(161)-JVS(1005)*X(243)-JVS(1006)*X(269)-JVS(1007)*X(281))/(JVS(1004)) + X(161) = (X(161)-JVS(1028)*X(273)-JVS(1029)*X(281)-JVS(1030)*X(286)-JVS(1031)*X(290))/(JVS(1027)) IF (DO_SLV(160)) & - X(160) = (X(160)-JVS(999)*X(182)-JVS(1000)*X(184)-JVS(1001)*X(236)-JVS(1002)*X(238)-JVS(1003)*X(269))/(JVS(998)) + X(160) = (X(160)-JVS(1018)*X(180)-JVS(1019)*X(191)-JVS(1020)*X(266)-JVS(1021)*X(279)-JVS(1022)*X(281)-JVS(1023)*X(282)& + &-JVS(1024)*X(284)-JVS(1025)*X(286)-JVS(1026)*X(291))/(JVS(1017)) IF (DO_SLV(159)) & - X(159) = (X(159)-JVS(993)*X(179)-JVS(994)*X(180)-JVS(995)*X(183)-JVS(996)*X(269)-JVS(997)*X(281))/(JVS(992)) + X(159) = (X(159)-JVS(1009)*X(210)-JVS(1010)*X(281)-JVS(1011)*X(282)-JVS(1012)*X(286))/(JVS(1008)) IF (DO_SLV(158)) & - X(158) = (X(158)-JVS(988)*X(243)-JVS(989)*X(269)-JVS(990)*X(281))/(JVS(987)) + X(158) = (X(158)-JVS(991)*X(201)-JVS(992)*X(209)-JVS(993)*X(216)-JVS(994)*X(225)-JVS(995)*X(237)-JVS(996)*X(238)& + &-JVS(997)*X(254)-JVS(998)*X(256)-JVS(999)*X(257)-JVS(1000)*X(258)-JVS(1001)*X(266)-JVS(1002)*X(286))& + &/(JVS(990)) IF (DO_SLV(157)) & - X(157) = (X(157)-JVS(983)*X(269)-JVS(984)*X(282)-JVS(985)*X(285)-JVS(986)*X(287))/(JVS(982)) + X(157) = (X(157)-JVS(987)*X(245)-JVS(988)*X(284)-JVS(989)*X(286))/(JVS(986)) IF (DO_SLV(156)) & - X(156) = (X(156)-JVS(973)*X(176)-JVS(974)*X(187)-JVS(975)*X(263)-JVS(976)*X(269)-JVS(977)*X(270)-JVS(978)*X(277)& - &-JVS(979)*X(280)-JVS(980)*X(281)-JVS(981)*X(287))/(JVS(972)) + X(156) = (X(156)-JVS(980)*X(186)-JVS(981)*X(188)-JVS(982)*X(228)-JVS(983)*X(229)-JVS(984)*X(240)-JVS(985)*X(286))& + &/(JVS(979)) IF (DO_SLV(155)) & - X(155) = (X(155)-JVS(964)*X(206)-JVS(965)*X(269)-JVS(966)*X(277)-JVS(967)*X(287))/(JVS(963)) + X(155) = (X(155)-JVS(974)*X(281)-JVS(975)*X(282)-JVS(976)*X(286))/(JVS(973)) IF (DO_SLV(154)) & - X(154) = (X(154)-JVS(946)*X(197)-JVS(947)*X(204)-JVS(948)*X(212)-JVS(949)*X(221)-JVS(950)*X(233)-JVS(951)*X(234)& - &-JVS(952)*X(249)-JVS(953)*X(251)-JVS(954)*X(252)-JVS(955)*X(253)-JVS(956)*X(263)-JVS(957)*X(269))/(JVS(945)) + X(154) = (X(154)-JVS(970)*X(281)-JVS(971)*X(282)-JVS(972)*X(286))/(JVS(969)) IF (DO_SLV(153)) & - X(153) = (X(153)-JVS(942)*X(242)-JVS(943)*X(269)-JVS(944)*X(281))/(JVS(941)) + X(153) = (X(153)-JVS(965)*X(207)-JVS(966)*X(249)-JVS(967)*X(286)-JVS(968)*X(291))/(JVS(964)) IF (DO_SLV(152)) & - X(152) = (X(152)-JVS(935)*X(182)-JVS(936)*X(184)-JVS(937)*X(224)-JVS(938)*X(225)-JVS(939)*X(236)-JVS(940)*X(269))& - &/(JVS(934)) + X(152) = (X(152)-JVS(960)*X(244)-JVS(961)*X(279)-JVS(962)*X(284)-JVS(963)*X(286))/(JVS(959)) IF (DO_SLV(151)) & - X(151) = (X(151)-JVS(929)*X(269)-JVS(930)*X(277)-JVS(931)*X(287))/(JVS(928)) + X(151) = (X(151)-JVS(955)*X(246)-JVS(956)*X(284)-JVS(957)*X(286))/(JVS(954)) IF (DO_SLV(150)) & - X(150) = (X(150)-JVS(925)*X(269)-JVS(926)*X(277)-JVS(927)*X(287))/(JVS(924)) + X(150) = (X(150)-JVS(949)*X(240)-JVS(950)*X(242)-JVS(951)*X(279)-JVS(952)*X(284)-JVS(953)*X(286))/(JVS(948)) IF (DO_SLV(149)) & - X(149) = (X(149)-JVS(920)*X(203)-JVS(921)*X(245)-JVS(922)*X(269)-JVS(923)*X(270))/(JVS(919)) + X(149) = (X(149)-JVS(945)*X(272)-JVS(946)*X(286)-JVS(947)*X(290))/(JVS(944)) IF (DO_SLV(148)) & - X(148) = (X(148)-JVS(915)*X(243)-JVS(916)*X(269)-JVS(917)*X(280)-JVS(918)*X(281))/(JVS(914)) + X(148) = (X(148)-JVS(941)*X(281)-JVS(942)*X(282)-JVS(943)*X(286))/(JVS(940)) IF (DO_SLV(147)) & - X(147) = (X(147)-JVS(910)*X(241)-JVS(911)*X(269)-JVS(912)*X(281))/(JVS(909)) + X(147) = (X(147)-JVS(933)*X(265)-JVS(934)*X(275)-JVS(935)*X(276)-JVS(936)*X(282))/(JVS(932)) IF (DO_SLV(146)) & - X(146) = (X(146)-JVS(904)*X(236)-JVS(905)*X(238)-JVS(906)*X(269)-JVS(907)*X(280)-JVS(908)*X(281))/(JVS(903)) + X(146) = (X(146)-JVS(928)*X(243)-JVS(929)*X(279)-JVS(930)*X(284)-JVS(931)*X(286))/(JVS(927)) IF (DO_SLV(145)) & - X(145) = (X(145)-JVS(900)*X(269)-JVS(901)*X(277)-JVS(902)*X(287))/(JVS(899)) + X(145) = (X(145)-JVS(922)*X(188)-JVS(923)*X(240)-JVS(924)*X(279)-JVS(925)*X(284)-JVS(926)*X(291))/(JVS(921)) IF (DO_SLV(144)) & - X(144) = (X(144)-JVS(892)*X(260)-JVS(893)*X(271)-JVS(894)*X(277)-JVS(895)*X(286))/(JVS(891)) + X(144) = (X(144)-JVS(916)*X(186)-JVS(917)*X(240)-JVS(918)*X(279)-JVS(919)*X(284)-JVS(920)*X(291))/(JVS(915)) IF (DO_SLV(143)) & - X(143) = (X(143)-JVS(887)*X(239)-JVS(888)*X(269)-JVS(889)*X(280)-JVS(890)*X(281))/(JVS(886)) + X(143) = (X(143)-JVS(909)*X(203)-JVS(910)*X(269)-JVS(911)*X(270)-JVS(912)*X(279)-JVS(913)*X(281)-JVS(914)*X(286))& + &/(JVS(908)) IF (DO_SLV(142)) & - X(142) = (X(142)-JVS(881)*X(184)-JVS(882)*X(236)-JVS(883)*X(270)-JVS(884)*X(280)-JVS(885)*X(281))/(JVS(880)) + X(142) = (X(142)-JVS(904)*X(281)-JVS(905)*X(282)-JVS(906)*X(286))/(JVS(903)) IF (DO_SLV(141)) & - X(141) = (X(141)-JVS(875)*X(182)-JVS(876)*X(236)-JVS(877)*X(270)-JVS(878)*X(280)-JVS(879)*X(281))/(JVS(874)) + X(141) = (X(141)-JVS(896)*X(182)-JVS(897)*X(183)-JVS(898)*X(187)-JVS(899)*X(284)-JVS(900)*X(286))/(JVS(895)) IF (DO_SLV(140)) & - X(140) = (X(140)-JVS(868)*X(199)-JVS(869)*X(265)-JVS(870)*X(266)-JVS(871)*X(269)-JVS(872)*X(280)-JVS(873)*X(287))& - &/(JVS(867)) + X(140) = (X(140)-JVS(892)*X(244)-JVS(893)*X(279)-JVS(894)*X(286))/(JVS(891)) IF (DO_SLV(139)) & - X(139) = (X(139)-JVS(861)*X(179)-JVS(862)*X(180)-JVS(863)*X(183)-JVS(864)*X(269)-JVS(865)*X(281))/(JVS(860)) + X(139) = (X(139)-JVS(888)*X(245)-JVS(889)*X(279)-JVS(890)*X(286))/(JVS(887)) IF (DO_SLV(138)) & - X(138) = (X(138)-JVS(857)*X(269)-JVS(858)*X(277)-JVS(859)*X(287))/(JVS(856)) + X(138) = (X(138)-JVS(883)*X(265)-JVS(884)*X(275)-JVS(885)*X(276)-JVS(886)*X(282))/(JVS(882)) IF (DO_SLV(137)) & - X(137) = (X(137)-JVS(851)*X(243)-JVS(852)*X(269)-JVS(853)*X(280))/(JVS(850)) + X(137) = (X(137)-JVS(878)*X(266)-JVS(879)*X(284)-JVS(880)*X(286)-JVS(881)*X(290))/(JVS(877)) IF (DO_SLV(136)) & - X(136) = (X(136)-JVS(847)*X(242)-JVS(848)*X(269)-JVS(849)*X(280))/(JVS(846)) + X(136) = (X(136)-JVS(874)*X(207)-JVS(875)*X(284)-JVS(876)*X(286))/(JVS(873)) IF (DO_SLV(135)) & - X(135) = (X(135)-JVS(842)*X(260)-JVS(843)*X(271)-JVS(844)*X(277)-JVS(845)*X(286))/(JVS(841)) + X(135) = (X(135)-JVS(860)*X(176)-JVS(861)*X(235)-JVS(862)*X(260)-JVS(863)*X(262)-JVS(864)*X(271)-JVS(865)*X(274)& + &-JVS(866)*X(275)-JVS(867)*X(277)-JVS(868)*X(280)-JVS(869)*X(283)-JVS(870)*X(285)-JVS(871)*X(287)-JVS(872)& + &*X(289))/(JVS(859)) IF (DO_SLV(134)) & - X(134) = (X(134)-JVS(837)*X(263)-JVS(838)*X(269)-JVS(839)*X(281)-JVS(840)*X(285))/(JVS(836)) + X(134) = (X(134)-JVS(854)*X(178)-JVS(855)*X(199)-JVS(856)*X(281)-JVS(857)*X(282)-JVS(858)*X(286))/(JVS(853)) IF (DO_SLV(133)) & - X(133) = (X(133)-JVS(833)*X(203)-JVS(834)*X(269)-JVS(835)*X(281))/(JVS(832)) + X(133) = (X(133)-JVS(848)*X(217)-JVS(849)*X(239)-JVS(850)*X(266)-JVS(851)*X(286)-JVS(852)*X(290))/(JVS(847)) IF (DO_SLV(132)) & - X(132) = (X(132)-JVS(819)*X(172)-JVS(820)*X(231)-JVS(821)*X(256)-JVS(822)*X(259)-JVS(823)*X(267)-JVS(824)*X(271)& - &-JVS(825)*X(272)-JVS(826)*X(273)-JVS(827)*X(274)-JVS(828)*X(275)-JVS(829)*X(276)-JVS(830)*X(278)-JVS(831)& - &*X(283))/(JVS(818)) + X(132) = (X(132)-JVS(842)*X(206)-JVS(843)*X(229)-JVS(844)*X(279)-JVS(845)*X(284)-JVS(846)*X(286))/(JVS(841)) IF (DO_SLV(131)) & - X(131) = (X(131)-JVS(813)*X(174)-JVS(814)*X(196)-JVS(815)*X(269)-JVS(816)*X(277)-JVS(817)*X(287))/(JVS(812)) + X(131) = (X(131)-JVS(836)*X(139)-JVS(837)*X(140)-JVS(838)*X(157)-JVS(839)*X(162)-JVS(840)*X(286))/(JVS(835)) IF (DO_SLV(130)) & - X(130) = (X(130)-JVS(807)*X(202)-JVS(808)*X(225)-JVS(809)*X(269)-JVS(810)*X(280)-JVS(811)*X(281))/(JVS(806)) + X(130) = (X(130)-JVS(830)*X(139)-JVS(831)*X(140)-JVS(832)*X(157)-JVS(833)*X(162)-JVS(834)*X(286))/(JVS(829)) IF (DO_SLV(129)) & - X(129) = (X(129)-JVS(801)*X(213)-JVS(802)*X(235)-JVS(803)*X(263)-JVS(804)*X(269)-JVS(805)*X(285))/(JVS(800)) + X(129) = (X(129)-JVS(825)*X(171)-JVS(826)*X(224)-JVS(827)*X(245)-JVS(828)*X(286))/(JVS(824)) IF (DO_SLV(128)) & - X(128) = (X(128)-JVS(795)*X(136)-JVS(796)*X(137)-JVS(797)*X(153)-JVS(798)*X(158)-JVS(799)*X(269))/(JVS(794)) + X(128) = (X(128)-JVS(816)*X(176)-JVS(817)*X(260)-JVS(818)*X(273)-JVS(819)*X(274)-JVS(820)*X(277)-JVS(821)*X(283)& + &-JVS(822)*X(286)-JVS(823)*X(289))/(JVS(815)) IF (DO_SLV(127)) & - X(127) = (X(127)-JVS(789)*X(136)-JVS(790)*X(137)-JVS(791)*X(153)-JVS(792)*X(158)-JVS(793)*X(269))/(JVS(788)) + X(127) = (X(127)-JVS(811)*X(165)-JVS(812)*X(224)-JVS(813)*X(244)-JVS(814)*X(286))/(JVS(810)) IF (DO_SLV(126)) & - X(126) = (X(126)-JVS(784)*X(167)-JVS(785)*X(220)-JVS(786)*X(242)-JVS(787)*X(269))/(JVS(783)) + X(126) = (X(126)-JVS(802)*X(151)-JVS(803)*X(243)-JVS(804)*X(246)-JVS(805)*X(247)-JVS(806)*X(261)-JVS(807)*X(266)& + &-JVS(808)*X(279)-JVS(809)*X(281))/(JVS(801)) IF (DO_SLV(125)) & - X(125) = (X(125)-JVS(775)*X(172)-JVS(776)*X(256)-JVS(777)*X(269)-JVS(778)*X(272)-JVS(779)*X(274)-JVS(780)*X(275)& - &-JVS(781)*X(276)-JVS(782)*X(282))/(JVS(774)) + X(125) = (X(125)-JVS(798)*X(228)-JVS(799)*X(229)-JVS(800)*X(286))/(JVS(797)) IF (DO_SLV(124)) & - X(124) = (X(124)-JVS(770)*X(161)-JVS(771)*X(220)-JVS(772)*X(243)-JVS(773)*X(269))/(JVS(769)) + X(124) = (X(124)-JVS(794)*X(273)-JVS(795)*X(286)-JVS(796)*X(290))/(JVS(793)) IF (DO_SLV(123)) & - X(123) = (X(123)-JVS(761)*X(147)-JVS(762)*X(239)-JVS(763)*X(240)-JVS(764)*X(241)-JVS(765)*X(257)-JVS(766)*X(263)& - &-JVS(767)*X(280)-JVS(768)*X(287))/(JVS(760)) + X(123) = (X(123)-JVS(789)*X(188)-JVS(790)*X(279)-JVS(791)*X(284)-JVS(792)*X(286))/(JVS(788)) IF (DO_SLV(122)) & - X(122) = (X(122)-JVS(757)*X(224)-JVS(758)*X(225)-JVS(759)*X(269))/(JVS(756)) + X(122) = (X(122)-JVS(778)*X(147)-JVS(779)*X(195)-JVS(780)*X(212)-JVS(781)*X(234)-JVS(782)*X(260)-JVS(783)*X(263)& + &-JVS(784)*X(271)-JVS(785)*X(276)-JVS(786)*X(282)-JVS(787)*X(286))/(JVS(777)) IF (DO_SLV(121)) & - X(121) = (X(121)-JVS(753)*X(269)-JVS(754)*X(282)-JVS(755)*X(285))/(JVS(752)) + X(121) = (X(121)-JVS(772)*X(186)-JVS(773)*X(279)-JVS(774)*X(284)-JVS(775)*X(286))/(JVS(771)) IF (DO_SLV(120)) & - X(120) = (X(120)-JVS(748)*X(182)-JVS(749)*X(269)-JVS(750)*X(280)-JVS(751)*X(281))/(JVS(747)) + X(120) = (X(120)-JVS(767)*X(179)-JVS(768)*X(266)-JVS(769)*X(284)-JVS(770)*X(286))/(JVS(766)) IF (DO_SLV(119)) & - X(119) = (X(119)-JVS(737)*X(144)-JVS(738)*X(191)-JVS(739)*X(208)-JVS(740)*X(230)-JVS(741)*X(256)-JVS(742)*X(262)& - &-JVS(743)*X(267)-JVS(744)*X(269)-JVS(745)*X(277)-JVS(746)*X(286))/(JVS(736)) + X(119) = (X(119)-JVS(762)*X(225)-JVS(763)*X(238)-JVS(764)*X(284)-JVS(765)*X(286))/(JVS(761)) IF (DO_SLV(118)) & - X(118) = (X(118)-JVS(731)*X(221)-JVS(732)*X(234)-JVS(733)*X(269)-JVS(734)*X(281))/(JVS(730)) + X(118) = (X(118)-JVS(759)*X(281)-JVS(760)*X(286))/(JVS(758)) IF (DO_SLV(117)) & - X(117) = (X(117)-JVS(728)*X(269)-JVS(729)*X(287))/(JVS(727)) + X(117) = (X(117)-JVS(752)*X(206)-JVS(753)*X(228)-JVS(754)*X(279)-JVS(755)*X(284)-JVS(756)*X(286))/(JVS(751)) IF (DO_SLV(116)) & - X(116) = (X(116)-JVS(722)*X(184)-JVS(723)*X(269)-JVS(724)*X(280)-JVS(725)*X(281))/(JVS(721)) + X(116) = (X(116)-JVS(746)*X(165)-JVS(747)*X(171)-JVS(748)*X(214)-JVS(749)*X(220)-JVS(750)*X(286))/(JVS(745)) IF (DO_SLV(115)) & - X(115) = (X(115)-JVS(716)*X(202)-JVS(717)*X(224)-JVS(718)*X(269)-JVS(719)*X(280)-JVS(720)*X(281))/(JVS(715)) + X(115) = (X(115)-JVS(743)*X(281)-JVS(744)*X(286))/(JVS(742)) IF (DO_SLV(114)) & - X(114) = (X(114)-JVS(710)*X(161)-JVS(711)*X(167)-JVS(712)*X(210)-JVS(713)*X(216)-JVS(714)*X(269))/(JVS(709)) + X(114) = (X(114)-JVS(737)*X(281)-JVS(738)*X(286)-JVS(739)*X(290))/(JVS(736)) IF (DO_SLV(113)) & - X(113) = (X(113)-JVS(705)*X(175)-JVS(706)*X(263)-JVS(707)*X(269)-JVS(708)*X(281))/(JVS(704)) + X(113) = (X(113)-JVS(733)*X(201)-JVS(734)*X(284)-JVS(735)*X(286))/(JVS(732)) IF (DO_SLV(112)) & - X(112) = (X(112)-JVS(701)*X(269)-JVS(702)*X(285)-JVS(703)*X(287))/(JVS(700)) + X(112) = (X(112)-JVS(729)*X(209)-JVS(730)*X(284)-JVS(731)*X(286))/(JVS(728)) IF (DO_SLV(111)) & - X(111) = (X(111)-JVS(697)*X(197)-JVS(698)*X(269)-JVS(699)*X(281))/(JVS(696)) + X(111) = (X(111)-JVS(724)*X(227)-JVS(725)*X(274)-JVS(726)*X(285)-JVS(727)*X(286))/(JVS(723)) IF (DO_SLV(110)) & - X(110) = (X(110)-JVS(693)*X(204)-JVS(694)*X(269)-JVS(695)*X(281))/(JVS(692)) + X(110) = (X(110)-JVS(719)*X(217)-JVS(720)*X(239)-JVS(721)*X(284)-JVS(722)*X(286))/(JVS(718)) IF (DO_SLV(109)) & - X(109) = (X(109)-JVS(690)*X(269)-JVS(691)*X(287))/(JVS(689)) + X(109) = (X(109)-JVS(714)*X(186)-JVS(715)*X(188)-JVS(716)*X(240)-JVS(717)*X(286))/(JVS(713)) IF (DO_SLV(108)) & - X(108) = (X(108)-JVS(683)*X(213)-JVS(684)*X(235)-JVS(685)*X(269)-JVS(686)*X(281))/(JVS(682)) + X(108) = (X(108)-JVS(708)*X(120)-JVS(709)*X(179)-JVS(710)*X(266)-JVS(711)*X(279)-JVS(712)*X(281))/(JVS(707)) IF (DO_SLV(107)) & - X(107) = (X(107)-JVS(678)*X(223)-JVS(679)*X(269)-JVS(680)*X(273)-JVS(681)*X(274))/(JVS(677)) + X(107) = (X(107)-JVS(702)*X(180)-JVS(703)*X(191)-JVS(704)*X(284)-JVS(705)*X(286)-JVS(706)*X(291))/(JVS(701)) IF (DO_SLV(106)) & - X(106) = (X(106)-JVS(673)*X(182)-JVS(674)*X(184)-JVS(675)*X(236)-JVS(676)*X(269))/(JVS(672)) + X(106) = (X(106)-JVS(697)*X(255)-JVS(698)*X(284)-JVS(699)*X(286))/(JVS(696)) IF (DO_SLV(105)) & - X(105) = (X(105)-JVS(667)*X(176)-JVS(668)*X(187)-JVS(669)*X(269)-JVS(670)*X(270)-JVS(671)*X(281))/(JVS(666)) + X(105) = (X(105)-JVS(693)*X(136)-JVS(694)*X(153)-JVS(695)*X(286))/(JVS(692)) IF (DO_SLV(104)) & - X(104) = (X(104)-JVS(660)*X(160)-JVS(661)*X(237)-JVS(662)*X(244)-JVS(663)*X(269)-JVS(664)*X(277))/(JVS(659)) + X(104) = (X(104)-JVS(687)*X(163)-JVS(688)*X(241)-JVS(689)*X(248)-JVS(690)*X(282)-JVS(691)*X(286))/(JVS(686)) IF (DO_SLV(103)) & - X(103) = (X(103)-JVS(654)*X(263)-JVS(655)*X(269)-JVS(656)*X(273)-JVS(657)*X(274)-JVS(658)*X(285))/(JVS(653)) + X(103) = (X(103)-JVS(681)*X(266)-JVS(682)*X(274)-JVS(683)*X(285)-JVS(684)*X(286)-JVS(685)*X(290))/(JVS(680)) IF (DO_SLV(102)) & - X(102) = (X(102)-JVS(647)*X(113)-JVS(648)*X(175)-JVS(649)*X(263)-JVS(650)*X(280)-JVS(651)*X(287))/(JVS(646)) + X(102) = (X(102)-JVS(676)*X(284)-JVS(677)*X(286)-JVS(678)*X(291))/(JVS(675)) IF (DO_SLV(101)) & - X(101) = (X(101)-JVS(643)*X(269)-JVS(644)*X(270)-JVS(645)*X(281))/(JVS(642)) + X(101) = (X(101)-JVS(673)*X(281)-JVS(674)*X(286))/(JVS(672)) IF (DO_SLV(100)) & - X(100) = (X(100)-JVS(640)*X(269)-JVS(641)*X(285))/(JVS(639)) + X(100) = (X(100)-JVS(668)*X(272)-JVS(669)*X(286))/(JVS(667)) IF (DO_SLV(99)) & - X(99) = (X(99)-JVS(637)*X(269)-JVS(638)*X(287))/(JVS(636)) + X(99) = (X(99)-JVS(660)*X(203)-JVS(661)*X(227)-JVS(662)*X(268)-JVS(663)*X(270)-JVS(664)*X(280)-JVS(665)*X(285)& + &-JVS(666)*X(287))/(JVS(659)) IF (DO_SLV(98)) & - X(98) = (X(98)-JVS(627)*X(199)-JVS(628)*X(223)-JVS(629)*X(264)-JVS(630)*X(266)-JVS(631)*X(273)-JVS(632)*X(278)& - &-JVS(633)*X(283))/(JVS(626)) + X(98) = (X(98)-JVS(646)*X(139)-JVS(647)*X(140)-JVS(648)*X(151)-JVS(649)*X(175)-JVS(650)*X(181)-JVS(651)*X(200)& + &-JVS(652)*X(202)-JVS(653)*X(213)-JVS(654)*X(214)-JVS(655)*X(220)-JVS(656)*X(241)-JVS(657)*X(242)-JVS(658)& + &*X(243))/(JVS(645)) IF (DO_SLV(97)) & - X(97) = (X(97)-JVS(624)*X(268)-JVS(625)*X(269))/(JVS(623)) + X(97) = (X(97)-JVS(642)*X(180)-JVS(643)*X(286)-JVS(644)*X(291))/(JVS(641)) IF (DO_SLV(96)) & - X(96) = (X(96)-JVS(610)*X(136)-JVS(611)*X(137)-JVS(612)*X(147)-JVS(613)*X(171)-JVS(614)*X(177)-JVS(615)*X(195)& - &-JVS(616)*X(198)-JVS(617)*X(209)-JVS(618)*X(210)-JVS(619)*X(216)-JVS(620)*X(237)-JVS(621)*X(238)-JVS(622)& - &*X(239))/(JVS(609)) + X(96) = (X(96)-JVS(638)*X(217)-JVS(639)*X(279)-JVS(640)*X(286))/(JVS(637)) IF (DO_SLV(95)) & - X(95) = (X(95)-JVS(606)*X(176)-JVS(607)*X(269)-JVS(608)*X(270))/(JVS(605)) + X(95) = (X(95)-JVS(634)*X(258)-JVS(635)*X(284)-JVS(636)*X(286))/(JVS(633)) IF (DO_SLV(94)) & - X(94) = (X(94)-JVS(602)*X(250)-JVS(603)*X(269)-JVS(604)*X(281))/(JVS(601)) + X(94) = (X(94)-JVS(630)*X(237)-JVS(631)*X(284)-JVS(632)*X(286))/(JVS(629)) IF (DO_SLV(93)) & - X(93) = (X(93)-JVS(598)*X(253)-JVS(599)*X(269)-JVS(600)*X(281))/(JVS(597)) + X(93) = (X(93)-JVS(626)*X(256)-JVS(627)*X(284)-JVS(628)*X(286))/(JVS(625)) IF (DO_SLV(92)) & - X(92) = (X(92)-JVS(594)*X(233)-JVS(595)*X(269)-JVS(596)*X(281))/(JVS(593)) + X(92) = (X(92)-JVS(622)*X(227)-JVS(623)*X(274)-JVS(624)*X(279))/(JVS(621)) IF (DO_SLV(91)) & - X(91) = (X(91)-JVS(590)*X(252)-JVS(591)*X(269)-JVS(592)*X(281))/(JVS(589)) + X(91) = (X(91)-JVS(615)*X(237)-JVS(616)*X(279)-JVS(617)*X(286))/(JVS(614)) IF (DO_SLV(90)) & - X(90) = (X(90)-JVS(586)*X(223)-JVS(587)*X(274)-JVS(588)*X(280))/(JVS(585)) + X(90) = (X(90)-JVS(612)*X(281)-JVS(613)*X(286))/(JVS(611)) IF (DO_SLV(89)) & - X(89) = (X(89)-JVS(579)*X(233)-JVS(580)*X(269)-JVS(581)*X(280))/(JVS(578)) + X(89) = (X(89)-JVS(608)*X(266)-JVS(609)*X(279)-JVS(610)*X(286))/(JVS(607)) IF (DO_SLV(88)) & - X(88) = (X(88)-JVS(575)*X(213)-JVS(576)*X(269)-JVS(577)*X(280))/(JVS(574)) + X(88) = (X(88)-JVS(604)*X(261)-JVS(605)*X(284)-JVS(606)*X(286))/(JVS(603)) IF (DO_SLV(87)) & - X(87) = (X(87)-JVS(571)*X(263)-JVS(572)*X(269)-JVS(573)*X(280))/(JVS(570)) + X(87) = (X(87)-JVS(600)*X(258)-JVS(601)*X(279)-JVS(602)*X(286))/(JVS(599)) IF (DO_SLV(86)) & - X(86) = (X(86)-JVS(567)*X(253)-JVS(568)*X(269)-JVS(569)*X(280))/(JVS(566)) + X(86) = (X(86)-JVS(596)*X(263)-JVS(597)*X(276)-JVS(598)*X(286))/(JVS(595)) IF (DO_SLV(85)) & - X(85) = (X(85)-JVS(563)*X(262)-JVS(564)*X(269)-JVS(565)*X(286))/(JVS(562)) + X(85) = (X(85)-JVS(592)*X(234)-JVS(593)*X(278)-JVS(594)*X(286))/(JVS(591)) IF (DO_SLV(84)) & - X(84) = (X(84)-JVS(559)*X(133)-JVS(560)*X(149)-JVS(561)*X(269))/(JVS(558)) + X(84) = (X(84)-JVS(589)*X(272)-JVS(590)*X(286))/(JVS(588)) IF (DO_SLV(83)) & - X(83) = (X(83)-JVS(555)*X(230)-JVS(556)*X(269)-JVS(557)*X(279))/(JVS(554)) + X(83) = (X(83)-JVS(586)*X(272)-JVS(587)*X(286))/(JVS(585)) IF (DO_SLV(82)) & - X(82) = (X(82)-JVS(552)*X(269)-JVS(553)*X(287))/(JVS(551)) + X(82) = (X(82)-JVS(583)*X(272)-JVS(584)*X(286))/(JVS(582)) IF (DO_SLV(81)) & - X(81) = (X(81)-JVS(549)*X(268)-JVS(550)*X(269))/(JVS(548)) + X(81) = (X(81)-JVS(580)*X(272)-JVS(581)*X(286))/(JVS(579)) IF (DO_SLV(80)) & - X(80) = (X(80)-JVS(546)*X(268)-JVS(547)*X(269))/(JVS(545)) + X(80) = (X(80)-JVS(578)*X(286))/(JVS(577)) IF (DO_SLV(79)) & - X(79) = (X(79)-JVS(543)*X(268)-JVS(544)*X(269))/(JVS(542)) + X(79) = (X(79)-JVS(576)*X(286))/(JVS(575)) IF (DO_SLV(78)) & - X(78) = (X(78)-JVS(540)*X(268)-JVS(541)*X(269))/(JVS(539)) + X(78) = (X(78)-JVS(573)*X(286)-JVS(574)*X(290))/(JVS(572)) IF (DO_SLV(77)) & - X(77) = (X(77)-JVS(538)*X(269))/(JVS(537)) + X(77) = (X(77)-JVS(570)*X(272)-JVS(571)*X(286))/(JVS(569)) IF (DO_SLV(76)) & - X(76) = (X(76)-JVS(536)*X(269))/(JVS(535)) + X(76) = (X(76)-JVS(567)*X(282)-JVS(568)*X(286))/(JVS(566)) IF (DO_SLV(75)) & - X(75) = (X(75)-JVS(533)*X(269)-JVS(534)*X(277))/(JVS(532)) + X(75) = (X(75)-JVS(564)*X(285)-JVS(565)*X(286))/(JVS(563)) IF (DO_SLV(74)) & - X(74) = (X(74)-JVS(530)*X(268)-JVS(531)*X(269))/(JVS(529)) + X(74) = (X(74)-JVS(561)*X(266)-JVS(562)*X(291))/(JVS(560)) IF (DO_SLV(73)) & - X(73) = (X(73)-JVS(527)*X(269)-JVS(528)*X(285))/(JVS(526)) + X(73) = (X(73)-JVS(555)*X(203)-JVS(556)*X(268)-JVS(557)*X(270)-JVS(558)*X(277)-JVS(559)*X(283))/(JVS(554)) IF (DO_SLV(72)) & - X(72) = (X(72)-JVS(524)*X(269)-JVS(525)*X(273))/(JVS(523)) + X(72) = (X(72)-JVS(552)*X(286)-JVS(553)*X(290))/(JVS(551)) IF (DO_SLV(71)) & - X(71) = (X(71)-JVS(521)*X(263)-JVS(522)*X(270))/(JVS(520)) + X(71) = (X(71)-JVS(549)*X(272)-JVS(550)*X(286))/(JVS(548)) IF (DO_SLV(70)) & - X(70) = (X(70)-JVS(518)*X(268)-JVS(519)*X(269))/(JVS(517)) + X(70) = (X(70)-JVS(545)*X(180)-JVS(546)*X(284)-JVS(547)*X(286))/(JVS(544)) IF (DO_SLV(69)) & - X(69) = (X(69)-JVS(512)*X(199)-JVS(513)*X(264)-JVS(514)*X(266)-JVS(515)*X(275)-JVS(516)*X(276))/(JVS(511)) + X(69) = (X(69)-JVS(541)*X(269)-JVS(542)*X(284)-JVS(543)*X(286))/(JVS(540)) IF (DO_SLV(68)) & - X(68) = (X(68)-JVS(509)*X(269)-JVS(510)*X(285))/(JVS(508)) + X(68) = (X(68)-JVS(537)*X(179)-JVS(538)*X(279)-JVS(539)*X(286))/(JVS(536)) IF (DO_SLV(67)) & - X(67) = (X(67)-JVS(505)*X(176)-JVS(506)*X(269)-JVS(507)*X(281))/(JVS(504)) + X(67) = (X(67)-JVS(534)*X(261)-JVS(535)*X(291))/(JVS(533)) IF (DO_SLV(66)) & - X(66) = (X(66)-JVS(501)*X(257)-JVS(502)*X(269)-JVS(503)*X(281))/(JVS(500)) + X(66) = (X(66)-JVS(531)*X(286)-JVS(532)*X(288))/(JVS(530)) IF (DO_SLV(65)) & - X(65) = (X(65)-JVS(497)*X(265)-JVS(498)*X(269)-JVS(499)*X(281))/(JVS(496)) + X(65) = (X(65)-JVS(528)*X(279)-JVS(529)*X(291))/(JVS(527)) IF (DO_SLV(64)) & - X(64) = (X(64)-JVS(493)*X(175)-JVS(494)*X(269)-JVS(495)*X(280))/(JVS(492)) + X(64) = (X(64)-JVS(526)*X(286))/(JVS(525)) IF (DO_SLV(63)) & - X(63) = (X(63)-JVS(490)*X(257)-JVS(491)*X(270))/(JVS(489)) + X(63) = (X(63)-JVS(522)*X(138)-JVS(523)*X(265)-JVS(524)*X(281))/(JVS(521)) IF (DO_SLV(62)) & - X(62) = (X(62)-JVS(487)*X(269)-JVS(488)*X(284))/(JVS(486)) + X(62) = (X(62)-JVS(518)*X(147)-JVS(519)*X(265)-JVS(520)*X(281))/(JVS(517)) IF (DO_SLV(61)) & - X(61) = (X(61)-JVS(484)*X(270)-JVS(485)*X(280))/(JVS(483)) + X(61) = (X(61)-JVS(514)*X(65)-JVS(515)*X(272)-JVS(516)*X(291))/(JVS(513)) IF (DO_SLV(60)) & - X(60) = (X(60)-JVS(482)*X(269))/(JVS(481)) + X(60) = (X(60)-JVS(511)*X(269)-JVS(512)*X(279))/(JVS(510)) IF (DO_SLV(59)) & - X(59) = (X(59)-JVS(478)*X(135)-JVS(479)*X(260)-JVS(480)*X(287))/(JVS(477)) + X(59) = (X(59)-JVS(509)*X(272))/(JVS(508)) IF (DO_SLV(58)) & - X(58) = (X(58)-JVS(474)*X(144)-JVS(475)*X(260)-JVS(476)*X(287))/(JVS(473)) + X(58) = (X(58)-JVS(507)*X(286))/(JVS(506)) IF (DO_SLV(57)) & - X(57) = (X(57)-JVS(470)*X(61)-JVS(471)*X(268)-JVS(472)*X(270))/(JVS(469)) + X(57) = (X(57)-JVS(505)*X(272))/(JVS(504)) IF (DO_SLV(56)) & - X(56) = (X(56)-JVS(467)*X(265)-JVS(468)*X(280))/(JVS(466)) + X(56) = (X(56)-JVS(503)*X(272))/(JVS(502)) IF (DO_SLV(55)) & - X(55) = (X(55)-JVS(465)*X(268))/(JVS(464)) + X(55) = (X(55)-JVS(501)*X(272))/(JVS(500)) IF (DO_SLV(54)) & - X(54) = (X(54)-JVS(463)*X(269))/(JVS(462)) + X(54) = (X(54)-JVS(499)*X(272))/(JVS(498)) IF (DO_SLV(53)) & - X(53) = (X(53)-JVS(461)*X(268))/(JVS(460)) + X(53) = (X(53)-JVS(497)*X(272))/(JVS(496)) IF (DO_SLV(52)) & - X(52) = (X(52)-JVS(459)*X(268))/(JVS(458)) + X(52) = (X(52)-JVS(495)*X(272))/(JVS(494)) IF (DO_SLV(51)) & - X(51) = (X(51)-JVS(457)*X(268))/(JVS(456)) + X(51) = (X(51)-JVS(492)*X(273)-JVS(493)*X(291))/(JVS(491)) IF (DO_SLV(50)) & - X(50) = (X(50)-JVS(454)*X(270)-JVS(455)*X(282))/(JVS(453)) + X(50) = (X(50)-JVS(489)*X(255)-JVS(490)*X(291))/(JVS(488)) IF (DO_SLV(49)) & - X(49) = (X(49)-JVS(451)*X(250)-JVS(452)*X(270))/(JVS(450)) + X(49) = (X(49)-JVS(486)*X(92)-JVS(487)*X(227))/(JVS(485)) IF (DO_SLV(48)) & - X(48) = (X(48)-JVS(449)*X(268))/(JVS(448)) + X(48) = (X(48)-JVS(484)*X(272))/(JVS(483)) IF (DO_SLV(47)) & - X(47) = (X(47)-JVS(446)*X(90)-JVS(447)*X(223))/(JVS(445)) + X(47) = (X(47)-JVS(482)*X(272))/(JVS(481)) IF (DO_SLV(46)) & - X(46) = (X(46)-JVS(444)*X(268))/(JVS(443)) + X(46) = (X(46)-JVS(480)*X(286))/(JVS(479)) IF (DO_SLV(45)) & - X(45) = (X(45)-JVS(442)*X(268))/(JVS(441)) + X(45) = (X(45)-JVS(476)*X(134)-JVS(477)*X(178)-JVS(478)*X(199))/(JVS(475)) IF (DO_SLV(44)) & - X(44) = (X(44)-JVS(440)*X(268))/(JVS(439)) + X(44) = (X(44)-JVS(474)*X(227))/(JVS(473)) IF (DO_SLV(43)) & - X(43) = (X(43)-JVS(438)*X(269))/(JVS(437)) + X(43) = (X(43)-JVS(472)*X(286))/(JVS(471)) IF (DO_SLV(42)) & - X(42) = (X(42)-JVS(436)*X(268))/(JVS(435)) + X(42) = (X(42)-JVS(470)*X(92))/(JVS(469)) IF (DO_SLV(41)) & - X(41) = (X(41)-JVS(432)*X(131)-JVS(433)*X(174)-JVS(434)*X(196))/(JVS(431)) + X(41) = (X(41)-JVS(468)*X(286))/(JVS(467)) IF (DO_SLV(40)) & - X(40) = (X(40)-JVS(430)*X(223))/(JVS(429)) + X(40) = (X(40)-JVS(456)*X(154)-JVS(457)*X(155)-JVS(458)*X(170)-JVS(459)*X(195)-JVS(460)*X(224)-JVS(461)*X(234)& + &-JVS(462)*X(248)-JVS(463)*X(278)-JVS(464)*X(282)-JVS(465)*X(284)-JVS(466)*X(286))/(JVS(455)) IF (DO_SLV(39)) & - X(39) = (X(39)-JVS(428)*X(269))/(JVS(427)) + X(39) = (X(39)-JVS(451)*X(190)-JVS(452)*X(272)-JVS(453)*X(286)-JVS(454)*X(290))/(JVS(450)) IF (DO_SLV(38)) & - X(38) = (X(38)-JVS(426)*X(90))/(JVS(425)) + X(38) = (X(38)-JVS(440)*X(86)-JVS(441)*X(147)-JVS(442)*X(195)-JVS(443)*X(212)-JVS(444)*X(234)-JVS(445)*X(260)-JVS(446)& + &*X(271)-JVS(447)*X(276)-JVS(448)*X(282)-JVS(449)*X(286))/(JVS(439)) IF (DO_SLV(37)) & - X(37) = (X(37)-JVS(414)*X(150)-JVS(415)*X(151)-JVS(416)*X(165)-JVS(417)*X(191)-JVS(418)*X(220)-JVS(419)*X(230)& - &-JVS(420)*X(244)-JVS(421)*X(269)-JVS(422)*X(277)-JVS(423)*X(279)-JVS(424)*X(281))/(JVS(413)) + X(37) = (X(37)-JVS(435)*X(195)-JVS(436)*X(234)-JVS(437)*X(267)-JVS(438)*X(286))/(JVS(434)) IF (DO_SLV(36)) & - X(36) = (X(36)-JVS(409)*X(186)-JVS(410)*X(268)-JVS(411)*X(269)-JVS(412)*X(285))/(JVS(408)) + X(36) = (X(36)-JVS(360)*X(58)-JVS(361)*X(64)-JVS(362)*X(66)-JVS(363)*X(72)-JVS(364)*X(78)-JVS(365)*X(79)-JVS(366)& + &*X(80)-JVS(367)*X(101)-JVS(368)*X(105)-JVS(369)*X(109)-JVS(370)*X(125)-JVS(371)*X(127)-JVS(372)*X(129)-JVS(373)& + &*X(132)-JVS(374)*X(136)-JVS(375)*X(148)-JVS(376)*X(149)-JVS(377)*X(150)-JVS(378)*X(153)-JVS(379)*X(154)& + &-JVS(380)*X(155)-JVS(381)*X(156)-JVS(382)*X(157)-JVS(383)*X(159)-JVS(384)*X(162)-JVS(385)*X(163)-JVS(386)& + &*X(165)-JVS(387)*X(169)-JVS(388)*X(170)-JVS(389)*X(171)-JVS(390)*X(172)-JVS(391)*X(174)-JVS(392)*X(175)& + &-JVS(393)*X(185)-JVS(394)*X(186)-JVS(395)*X(188)-JVS(396)*X(192)-JVS(397)*X(194)-JVS(398)*X(200)-JVS(399)& + &*X(205)-JVS(400)*X(206)-JVS(401)*X(207)-JVS(402)*X(208)-JVS(403)*X(210)-JVS(404)*X(213)-JVS(405)*X(214)& + &-JVS(406)*X(220)-JVS(407)*X(221)-JVS(408)*X(223)-JVS(409)*X(224)-JVS(410)*X(228)-JVS(411)*X(229)-JVS(412)& + &*X(231)-JVS(413)*X(233)-JVS(414)*X(236)-JVS(415)*X(240)-JVS(416)*X(244)-JVS(417)*X(245)-JVS(418)*X(248)& + &-JVS(419)*X(250)-JVS(420)*X(251)-JVS(421)*X(253)-JVS(422)*X(259)-JVS(423)*X(263)-JVS(424)*X(264)-JVS(425)& + &*X(266)-JVS(426)*X(273)-JVS(427)*X(279)-JVS(428)*X(281)-JVS(429)*X(282)-JVS(430)*X(284)-JVS(431)*X(286)& + &-JVS(432)*X(288)-JVS(433)*X(290))/(JVS(359)) IF (DO_SLV(35)) & - X(35) = (X(35)-JVS(398)*X(85)-JVS(399)*X(144)-JVS(400)*X(191)-JVS(401)*X(208)-JVS(402)*X(230)-JVS(403)*X(256)-JVS(404)& - &*X(267)-JVS(405)*X(269)-JVS(406)*X(277)-JVS(407)*X(286))/(JVS(397)) + X(35) = (X(35)-JVS(258)*X(42)-JVS(259)*X(44)-JVS(260)*X(49)-JVS(261)*X(55)-JVS(262)*X(56)-JVS(263)*X(61)-JVS(264)& + &*X(62)-JVS(265)*X(63)-JVS(266)*X(66)-JVS(267)*X(75)-JVS(268)*X(76)-JVS(269)*X(84)-JVS(270)*X(90)-JVS(271)*X(92)& + &-JVS(272)*X(100)-JVS(273)*X(101)-JVS(274)*X(111)-JVS(275)*X(114)-JVS(276)*X(115)-JVS(277)*X(118)-JVS(278)& + &*X(134)-JVS(279)*X(138)-JVS(280)*X(139)-JVS(281)*X(140)-JVS(282)*X(142)-JVS(283)*X(147)-JVS(284)*X(148)& + &-JVS(285)*X(149)-JVS(286)*X(151)-JVS(287)*X(154)-JVS(288)*X(155)-JVS(289)*X(159)-JVS(290)*X(160)-JVS(291)& + &*X(161)-JVS(292)*X(170)-JVS(293)*X(173)-JVS(294)*X(175)-JVS(295)*X(176)-JVS(296)*X(177)-JVS(297)*X(178)& + &-JVS(298)*X(179)-JVS(299)*X(180)-JVS(300)*X(181)-JVS(301)*X(184)-JVS(302)*X(190)-JVS(303)*X(191)-JVS(304)& + &*X(199)-JVS(305)*X(200)-JVS(306)*X(202)-JVS(307)*X(203)-JVS(308)*X(208)-JVS(309)*X(212)-JVS(310)*X(213)& + &-JVS(311)*X(214)-JVS(312)*X(215)-JVS(313)*X(216)-JVS(314)*X(220)-JVS(315)*X(223)-JVS(316)*X(224)-JVS(317)& + &*X(225)-JVS(318)*X(226)-JVS(319)*X(227)-JVS(320)*X(233)-JVS(321)*X(234)-JVS(322)*X(235)-JVS(323)*X(238)& + &-JVS(324)*X(241)-JVS(325)*X(242)-JVS(326)*X(243)-JVS(327)*X(246)-JVS(328)*X(247)-JVS(329)*X(248)-JVS(330)& + &*X(249)-JVS(331)*X(251)-JVS(332)*X(253)-JVS(333)*X(259)-JVS(334)*X(260)-JVS(335)*X(262)-JVS(336)*X(263)& + &-JVS(337)*X(264)-JVS(338)*X(266)-JVS(339)*X(268)-JVS(340)*X(270)-JVS(341)*X(271)-JVS(342)*X(272)-JVS(343)& + &*X(274)-JVS(344)*X(275)-JVS(345)*X(276)-JVS(346)*X(277)-JVS(347)*X(278)-JVS(348)*X(280)-JVS(349)*X(281)& + &-JVS(350)*X(282)-JVS(351)*X(283)-JVS(352)*X(284)-JVS(353)*X(285)-JVS(354)*X(286)-JVS(355)*X(287)-JVS(356)& + &*X(288)-JVS(357)*X(289)-JVS(358)*X(291))/(JVS(257)) IF (DO_SLV(34)) & - X(34) = (X(34)-JVS(393)*X(191)-JVS(394)*X(230)-JVS(395)*X(258)-JVS(396)*X(269))/(JVS(392)) + X(34) = (X(34)-JVS(176)*X(45)-JVS(177)*X(61)-JVS(178)*X(65)-JVS(179)*X(67)-JVS(180)*X(68)-JVS(181)*X(74)-JVS(182)& + &*X(87)-JVS(183)*X(89)-JVS(184)*X(91)-JVS(185)*X(96)-JVS(186)*X(97)-JVS(187)*X(98)-JVS(188)*X(102)-JVS(189)& + &*X(103)-JVS(190)*X(121)-JVS(191)*X(123)-JVS(192)*X(128)-JVS(193)*X(134)-JVS(194)*X(143)-JVS(195)*X(144)& + &-JVS(196)*X(145)-JVS(197)*X(146)-JVS(198)*X(150)-JVS(199)*X(152)-JVS(200)*X(153)-JVS(201)*X(166)-JVS(202)& + &*X(167)-JVS(203)*X(168)-JVS(204)*X(177)-JVS(205)*X(179)-JVS(206)*X(180)-JVS(207)*X(182)-JVS(208)*X(183)& + &-JVS(209)*X(184)-JVS(210)*X(187)-JVS(211)*X(189)-JVS(212)*X(191)-JVS(213)*X(193)-JVS(214)*X(194)-JVS(215)& + &*X(195)-JVS(216)*X(197)-JVS(217)*X(201)-JVS(218)*X(204)-JVS(219)*X(205)-JVS(220)*X(207)-JVS(221)*X(209)& + &-JVS(222)*X(210)-JVS(223)*X(215)-JVS(224)*X(216)-JVS(225)*X(217)-JVS(226)*X(222)-JVS(227)*X(225)-JVS(228)& + &*X(228)-JVS(229)*X(229)-JVS(230)*X(232)-JVS(231)*X(234)-JVS(232)*X(235)-JVS(233)*X(237)-JVS(234)*X(238)& + &-JVS(235)*X(239)-JVS(236)*X(241)-JVS(237)*X(244)-JVS(238)*X(245)-JVS(239)*X(246)-JVS(240)*X(247)-JVS(241)& + &*X(249)-JVS(242)*X(252)-JVS(243)*X(254)-JVS(244)*X(255)-JVS(245)*X(256)-JVS(246)*X(257)-JVS(247)*X(258)& + &-JVS(248)*X(261)-JVS(249)*X(262)-JVS(250)*X(265)-JVS(251)*X(266)-JVS(252)*X(279)-JVS(253)*X(284)-JVS(254)& + &*X(286)-JVS(255)*X(290)-JVS(256)*X(291))/(JVS(175)) IF (DO_SLV(33)) & - X(33) = (X(33)-JVS(319)*X(54)-JVS(320)*X(60)-JVS(321)*X(62)-JVS(322)*X(68)-JVS(323)*X(73)-JVS(324)*X(76)-JVS(325)& - &*X(77)-JVS(326)*X(99)-JVS(327)*X(100)-JVS(328)*X(106)-JVS(329)*X(122)-JVS(330)*X(124)-JVS(331)*X(126)-JVS(332)& - &*X(130)-JVS(333)*X(133)-JVS(334)*X(145)-JVS(335)*X(146)-JVS(336)*X(149)-JVS(337)*X(150)-JVS(338)*X(151)& - &-JVS(339)*X(152)-JVS(340)*X(153)-JVS(341)*X(155)-JVS(342)*X(158)-JVS(343)*X(160)-JVS(344)*X(161)-JVS(345)& - &*X(165)-JVS(346)*X(166)-JVS(347)*X(167)-JVS(348)*X(168)-JVS(349)*X(170)-JVS(350)*X(171)-JVS(351)*X(181)& - &-JVS(352)*X(182)-JVS(353)*X(184)-JVS(354)*X(189)-JVS(355)*X(190)-JVS(356)*X(195)-JVS(357)*X(201)-JVS(358)& - &*X(202)-JVS(359)*X(203)-JVS(360)*X(205)-JVS(361)*X(206)-JVS(362)*X(209)-JVS(363)*X(210)-JVS(364)*X(216)& - &-JVS(365)*X(218)-JVS(366)*X(219)-JVS(367)*X(220)-JVS(368)*X(224)-JVS(369)*X(225)-JVS(370)*X(227)-JVS(371)& - &*X(228)-JVS(372)*X(232)-JVS(373)*X(236)-JVS(374)*X(242)-JVS(375)*X(243)-JVS(376)*X(244)-JVS(377)*X(246)& - &-JVS(378)*X(247)-JVS(379)*X(254)-JVS(380)*X(255)-JVS(381)*X(261)-JVS(382)*X(262)-JVS(383)*X(263)-JVS(384)& - &*X(269)-JVS(385)*X(277)-JVS(386)*X(280)-JVS(387)*X(281)-JVS(388)*X(282)-JVS(389)*X(284)-JVS(390)*X(285)& - &-JVS(391)*X(287))/(JVS(318)) + X(33) = (X(33)-JVS(170)*X(86)-JVS(171)*X(212)-JVS(172)*X(276)-JVS(173)*X(282)-JVS(174)*X(286))/(JVS(169)) IF (DO_SLV(32)) & - X(32) = (X(32)-JVS(221)*X(38)-JVS(222)*X(40)-JVS(223)*X(47)-JVS(224)*X(57)-JVS(225)*X(62)-JVS(226)*X(72)-JVS(227)& - &*X(75)-JVS(228)*X(81)-JVS(229)*X(82)-JVS(230)*X(90)-JVS(231)*X(97)-JVS(232)*X(99)-JVS(233)*X(107)-JVS(234)& - &*X(109)-JVS(235)*X(112)-JVS(236)*X(117)-JVS(237)*X(131)-JVS(238)*X(135)-JVS(239)*X(136)-JVS(240)*X(137)& - &-JVS(241)*X(138)-JVS(242)*X(144)-JVS(243)*X(145)-JVS(244)*X(147)-JVS(245)*X(150)-JVS(246)*X(151)-JVS(247)& - &*X(155)-JVS(248)*X(156)-JVS(249)*X(157)-JVS(250)*X(165)-JVS(251)*X(169)-JVS(252)*X(171)-JVS(253)*X(172)& - &-JVS(254)*X(173)-JVS(255)*X(174)-JVS(256)*X(175)-JVS(257)*X(176)-JVS(258)*X(177)-JVS(259)*X(178)-JVS(260)& - &*X(186)-JVS(261)*X(187)-JVS(262)*X(195)-JVS(263)*X(196)-JVS(264)*X(198)-JVS(265)*X(199)-JVS(266)*X(205)& - &-JVS(267)*X(208)-JVS(268)*X(209)-JVS(269)*X(210)-JVS(270)*X(211)-JVS(271)*X(212)-JVS(272)*X(216)-JVS(273)& - &*X(218)-JVS(274)*X(220)-JVS(275)*X(221)-JVS(276)*X(222)-JVS(277)*X(223)-JVS(278)*X(228)-JVS(279)*X(230)& - &-JVS(280)*X(231)-JVS(281)*X(234)-JVS(282)*X(237)-JVS(283)*X(238)-JVS(284)*X(239)-JVS(285)*X(240)-JVS(286)& - &*X(241)-JVS(287)*X(244)-JVS(288)*X(245)-JVS(289)*X(247)-JVS(290)*X(254)-JVS(291)*X(255)-JVS(292)*X(256)& - &-JVS(293)*X(259)-JVS(294)*X(260)-JVS(295)*X(261)-JVS(296)*X(262)-JVS(297)*X(263)-JVS(298)*X(264)-JVS(299)& - &*X(266)-JVS(300)*X(267)-JVS(301)*X(268)-JVS(302)*X(269)-JVS(303)*X(270)-JVS(304)*X(271)-JVS(305)*X(272)& - &-JVS(306)*X(273)-JVS(307)*X(274)-JVS(308)*X(275)-JVS(309)*X(276)-JVS(310)*X(277)-JVS(311)*X(278)-JVS(312)& - &*X(279)-JVS(313)*X(281)-JVS(314)*X(283)-JVS(315)*X(284)-JVS(316)*X(286)-JVS(317)*X(287))/(JVS(220)) + X(32) = (X(32)-JVS(165)*X(195)-JVS(166)*X(234)-JVS(167)*X(276)-JVS(168)*X(286))/(JVS(164)) IF (DO_SLV(31)) & - X(31) = (X(31)-JVS(135)*X(41)-JVS(136)*X(57)-JVS(137)*X(58)-JVS(138)*X(59)-JVS(139)*X(61)-JVS(140)*X(63)-JVS(141)& - &*X(64)-JVS(142)*X(71)-JVS(143)*X(86)-JVS(144)*X(87)-JVS(145)*X(88)-JVS(146)*X(89)-JVS(147)*X(95)-JVS(148)*X(96)& - &-JVS(149)*X(101)-JVS(150)*X(103)-JVS(151)*X(116)-JVS(152)*X(120)-JVS(153)*X(125)-JVS(154)*X(131)-JVS(155)& - &*X(140)-JVS(156)*X(141)-JVS(157)*X(142)-JVS(158)*X(143)-JVS(159)*X(146)-JVS(160)*X(148)-JVS(161)*X(149)& - &-JVS(162)*X(162)-JVS(163)*X(163)-JVS(164)*X(164)-JVS(165)*X(173)-JVS(166)*X(175)-JVS(167)*X(176)-JVS(168)& - &*X(178)-JVS(169)*X(179)-JVS(170)*X(180)-JVS(171)*X(183)-JVS(172)*X(185)-JVS(173)*X(187)-JVS(174)*X(188)& - &-JVS(175)*X(190)-JVS(176)*X(191)-JVS(177)*X(192)-JVS(178)*X(197)-JVS(179)*X(200)-JVS(180)*X(201)-JVS(181)& - &*X(203)-JVS(182)*X(204)-JVS(183)*X(206)-JVS(184)*X(211)-JVS(185)*X(212)-JVS(186)*X(213)-JVS(187)*X(217)& - &-JVS(188)*X(221)-JVS(189)*X(224)-JVS(190)*X(225)-JVS(191)*X(229)-JVS(192)*X(230)-JVS(193)*X(231)-JVS(194)& - &*X(233)-JVS(195)*X(234)-JVS(196)*X(235)-JVS(197)*X(237)-JVS(198)*X(238)-JVS(199)*X(239)-JVS(200)*X(240)& - &-JVS(201)*X(241)-JVS(202)*X(242)-JVS(203)*X(243)-JVS(204)*X(245)-JVS(205)*X(248)-JVS(206)*X(249)-JVS(207)& - &*X(250)-JVS(208)*X(251)-JVS(209)*X(252)-JVS(210)*X(253)-JVS(211)*X(257)-JVS(212)*X(259)-JVS(213)*X(260)& - &-JVS(214)*X(263)-JVS(215)*X(269)-JVS(216)*X(270)-JVS(217)*X(280)-JVS(218)*X(281)-JVS(219)*X(285))/(JVS(134)) + X(31) = (X(31)-JVS(159)*X(105)-JVS(160)*X(116)-JVS(161)*X(130)-JVS(162)*X(131)-JVS(163)*X(174))/(JVS(158)) IF (DO_SLV(30)) & - X(30) = (X(30)-JVS(129)*X(84)-JVS(130)*X(114)-JVS(131)*X(127)-JVS(132)*X(128)-JVS(133)*X(170))/(JVS(128)) + X(30) = (X(30)-JVS(155)*X(104)-JVS(156)*X(223)-JVS(157)*X(233))/(JVS(154)) IF (DO_SLV(29)) & - X(29) = (X(29)-JVS(125)*X(104)-JVS(126)*X(218)-JVS(127)*X(228))/(JVS(124)) + X(29) = (X(29)-JVS(151)*X(138)-JVS(152)*X(276)-JVS(153)*X(282))/(JVS(150)) IF (DO_SLV(28)) & - X(28) = (X(28)-JVS(121)*X(135)-JVS(122)*X(277)-JVS(123)*X(286))/(JVS(120)) + X(28) = (X(28)-JVS(148)*X(90)-JVS(149)*X(286))/(JVS(147)) IF (DO_SLV(27)) & - X(27) = (X(27)-JVS(118)*X(82)-JVS(119)*X(269))/(JVS(117)) + X(27) = (X(27)-JVS(143)*X(80)-JVS(144)*X(279)-JVS(145)*X(284)-JVS(146)*X(286))/(JVS(142)) IF (DO_SLV(26)) & - X(26) = (X(26)-JVS(113)*X(77)-JVS(114)*X(269)-JVS(115)*X(280)-JVS(116)*X(281))/(JVS(112)) + X(26) = (X(26)-JVS(140)*X(27)-JVS(141)*X(279))/(JVS(139)) IF (DO_SLV(25)) & - X(25) = (X(25)-JVS(110)*X(26)-JVS(111)*X(280))/(JVS(109)) + X(25) = (X(25)-JVS(137)*X(27)-JVS(138)*X(284))/(JVS(136)) IF (DO_SLV(24)) & - X(24) = (X(24)-JVS(107)*X(26)-JVS(108)*X(281))/(JVS(106)) + X(24) = (X(24)-JVS(131)*X(157)-JVS(132)*X(162)-JVS(133)*X(165)-JVS(134)*X(171)-JVS(135)*X(286))/(JVS(130)) IF (DO_SLV(23)) & - X(23) = (X(23)-JVS(101)*X(153)-JVS(102)*X(158)-JVS(103)*X(161)-JVS(104)*X(167)-JVS(105)*X(269))/(JVS(100)) + X(23) = (X(23)-JVS(129)*X(24))/(JVS(128)) IF (DO_SLV(22)) & - X(22) = (X(22)-JVS(99)*X(23))/(JVS(98)) + X(22) = (X(22)-JVS(124)*X(79)-JVS(125)*X(279)-JVS(126)*X(284)-JVS(127)*X(286))/(JVS(123)) IF (DO_SLV(21)) & - X(21) = (X(21)-JVS(94)*X(76)-JVS(95)*X(269)-JVS(96)*X(280)-JVS(97)*X(281))/(JVS(93)) + X(21) = (X(21)-JVS(121)*X(22)-JVS(122)*X(279))/(JVS(120)) IF (DO_SLV(20)) & - X(20) = (X(20)-JVS(91)*X(21)-JVS(92)*X(280))/(JVS(90)) + X(20) = (X(20)-JVS(118)*X(22)-JVS(119)*X(284))/(JVS(117)) IF (DO_SLV(19)) & - X(19) = (X(19)-JVS(88)*X(21)-JVS(89)*X(281))/(JVS(87)) + X(19) = (X(19)-JVS(116)*X(286))/(JVS(115)) IF (DO_SLV(18)) & - X(18) = (X(18)-JVS(86)*X(269))/(JVS(85)) + X(18) = (X(18)-JVS(111)*X(19)-JVS(112)*X(279)-JVS(113)*X(284)-JVS(114)*X(286))/(JVS(110)) IF (DO_SLV(17)) & - X(17) = (X(17)-JVS(81)*X(18)-JVS(82)*X(269)-JVS(83)*X(280)-JVS(84)*X(281))/(JVS(80)) + X(17) = (X(17)-JVS(108)*X(18)-JVS(109)*X(279))/(JVS(107)) IF (DO_SLV(16)) & - X(16) = (X(16)-JVS(78)*X(17)-JVS(79)*X(280))/(JVS(77)) + X(16) = (X(16)-JVS(105)*X(18)-JVS(106)*X(284))/(JVS(104)) IF (DO_SLV(15)) & - X(15) = (X(15)-JVS(75)*X(17)-JVS(76)*X(281))/(JVS(74)) + X(15) = (X(15)-JVS(102)*X(224)-JVS(103)*X(281))/(JVS(101)) IF (DO_SLV(14)) & - X(14) = (X(14)-JVS(72)*X(220)-JVS(73)*X(287))/(JVS(71)) + X(14) = (X(14)-JVS(99)*X(224)-JVS(100)*X(286))/(JVS(98)) IF (DO_SLV(13)) & - X(13) = (X(13)-JVS(69)*X(220)-JVS(70)*X(269))/(JVS(68)) + X(13) = (X(13)-JVS(94)*X(64)-JVS(95)*X(279)-JVS(96)*X(284)-JVS(97)*X(286))/(JVS(93)) IF (DO_SLV(12)) & - X(12) = (X(12)-JVS(64)*X(60)-JVS(65)*X(269)-JVS(66)*X(280)-JVS(67)*X(281))/(JVS(63)) + X(12) = (X(12)-JVS(91)*X(13)-JVS(92)*X(279))/(JVS(90)) IF (DO_SLV(11)) & - X(11) = (X(11)-JVS(61)*X(12)-JVS(62)*X(280))/(JVS(60)) + X(11) = (X(11)-JVS(88)*X(13)-JVS(89)*X(284))/(JVS(87)) IF (DO_SLV(10)) & - X(10) = (X(10)-JVS(58)*X(12)-JVS(59)*X(281))/(JVS(57)) + X(10) = (X(10)-JVS(80)*X(42)-JVS(81)*X(44)-JVS(82)*X(49)-JVS(83)*X(69)-JVS(84)*X(203)-JVS(85)*X(268)-JVS(86)*X(270))& + &/(JVS(79)) IF (DO_SLV(9)) & - X(9) = (X(9)-JVS(53)*X(38)-JVS(54)*X(40)-JVS(55)*X(47)-JVS(56)*X(65))/(JVS(52)) + X(9) = (X(9)-JVS(72)*X(42)-JVS(73)*X(44)-JVS(74)*X(49)-JVS(75)*X(69)-JVS(76)*X(203)-JVS(77)*X(268)-JVS(78)*X(270))& + &/(JVS(71)) IF (DO_SLV(8)) & - X(8) = (X(8)-JVS(48)*X(38)-JVS(49)*X(40)-JVS(50)*X(47)-JVS(51)*X(65))/(JVS(47)) + X(8) = (X(8)-JVS(69)*X(45)-JVS(70)*X(98))/(JVS(68)) IF (DO_SLV(7)) & - X(7) = (X(7)-JVS(45)*X(41)-JVS(46)*X(96))/(JVS(44)) + X(7) = (X(7)-JVS(15)*X(66)-JVS(16)*X(67)-JVS(17)*X(70)-JVS(18)*X(88)-JVS(19)*X(97)-JVS(20)*X(104)-JVS(21)*X(121)& + &-JVS(22)*X(123)-JVS(23)*X(136)-JVS(24)*X(150)-JVS(25)*X(163)-JVS(26)*X(164)-JVS(27)*X(175)-JVS(28)*X(180)& + &-JVS(29)*X(184)-JVS(30)*X(192)-JVS(31)*X(195)-JVS(32)*X(201)-JVS(33)*X(207)-JVS(34)*X(208)-JVS(35)*X(209)& + &-JVS(36)*X(210)-JVS(37)*X(211)-JVS(38)*X(215)-JVS(39)*X(217)-JVS(40)*X(219)-JVS(41)*X(224)-JVS(42)*X(231)& + &-JVS(43)*X(234)-JVS(44)*X(236)-JVS(45)*X(237)-JVS(46)*X(238)-JVS(47)*X(239)-JVS(48)*X(246)-JVS(49)*X(247)& + &-JVS(50)*X(249)-JVS(51)*X(250)-JVS(52)*X(252)-JVS(53)*X(253)-JVS(54)*X(254)-JVS(55)*X(255)-JVS(56)*X(256)& + &-JVS(57)*X(257)-JVS(58)*X(258)-JVS(59)*X(261)-JVS(60)*X(266)-JVS(61)*X(267)-JVS(62)*X(279)-JVS(63)*X(281)& + &-JVS(64)*X(282)-JVS(65)*X(284)-JVS(66)*X(286)-JVS(67)*X(290))/(JVS(14)) IF (DO_SLV(6)) & - X(6) = (X(6)-JVS(12)*X(62)-JVS(13)*X(67)-JVS(14)*X(95)-JVS(15)*X(104)-JVS(16)*X(116)-JVS(17)*X(120)-JVS(18)*X(133)& - &-JVS(19)*X(146)-JVS(20)*X(159)-JVS(21)*X(160)-JVS(22)*X(171)-JVS(23)*X(176)-JVS(24)*X(189)-JVS(25)*X(203)& - &-JVS(26)*X(205)-JVS(27)*X(206)-JVS(28)*X(207)-JVS(29)*X(215)-JVS(30)*X(220)-JVS(31)*X(227)-JVS(32)*X(232)& - &-JVS(33)*X(245)-JVS(34)*X(246)-JVS(35)*X(257)-JVS(36)*X(258)-JVS(37)*X(263)-JVS(38)*X(269)-JVS(39)*X(277)& - &-JVS(40)*X(280)-JVS(41)*X(281)-JVS(42)*X(285)-JVS(43)*X(287))/(JVS(11)) + X(6) = (X(6)-JVS(12)*X(41)-JVS(13)*X(286))/(JVS(11)) IF (DO_SLV(5)) & - X(5) = (X(5)-JVS(10)*X(206))/(JVS(9)) + X(5) = (X(5)-JVS(10)*X(210))/(JVS(9)) IF (DO_SLV(4)) & - X(4) = (X(4)-JVS(5)*X(38)-JVS(6)*X(40)-JVS(7)*X(47)-JVS(8)*X(65))/(JVS(4)) + X(4) = (X(4)-JVS(5)*X(42)-JVS(6)*X(44)-JVS(7)*X(49)-JVS(8)*X(69))/(JVS(4)) IF (DO_SLV(3)) & X(3) = X(3)/JVS(3) IF (DO_SLV(2)) & @@ -2020,1062 +2036,1076 @@ SUBROUTINE KppSolveTR ( JVS, X, XX ) XX(4) = X(4)/JVS(4) XX(5) = X(5)/JVS(9) XX(6) = X(6)/JVS(11) - XX(7) = X(7)/JVS(44) - XX(8) = X(8)/JVS(47) - XX(9) = X(9)/JVS(52) - XX(10) = X(10)/JVS(57) - XX(11) = X(11)/JVS(60) - XX(12) = (X(12)-JVS(58)*XX(10)-JVS(61)*XX(11))/(JVS(63)) - XX(13) = X(13)/JVS(68) - XX(14) = X(14)/JVS(71) - XX(15) = X(15)/JVS(74) - XX(16) = X(16)/JVS(77) - XX(17) = (X(17)-JVS(75)*XX(15)-JVS(78)*XX(16))/(JVS(80)) - XX(18) = (X(18)-JVS(81)*XX(17))/(JVS(85)) - XX(19) = X(19)/JVS(87) - XX(20) = X(20)/JVS(90) - XX(21) = (X(21)-JVS(88)*XX(19)-JVS(91)*XX(20))/(JVS(93)) - XX(22) = X(22)/JVS(98) - XX(23) = (X(23)-JVS(99)*XX(22))/(JVS(100)) - XX(24) = X(24)/JVS(106) - XX(25) = X(25)/JVS(109) - XX(26) = (X(26)-JVS(107)*XX(24)-JVS(110)*XX(25))/(JVS(112)) - XX(27) = X(27)/JVS(117) - XX(28) = X(28)/JVS(120) - XX(29) = X(29)/JVS(124) - XX(30) = X(30)/JVS(128) - XX(31) = X(31)/JVS(134) - XX(32) = X(32)/JVS(220) - XX(33) = X(33)/JVS(318) - XX(34) = X(34)/JVS(392) - XX(35) = X(35)/JVS(397) - XX(36) = X(36)/JVS(408) - XX(37) = X(37)/JVS(413) - XX(38) = (X(38)-JVS(5)*XX(4)-JVS(48)*XX(8)-JVS(53)*XX(9)-JVS(221)*XX(32))/(JVS(425)) - XX(39) = X(39)/JVS(427) - XX(40) = (X(40)-JVS(6)*XX(4)-JVS(49)*XX(8)-JVS(54)*XX(9)-JVS(222)*XX(32))/(JVS(429)) - XX(41) = (X(41)-JVS(45)*XX(7)-JVS(135)*XX(31))/(JVS(431)) - XX(42) = X(42)/JVS(435) - XX(43) = X(43)/JVS(437) - XX(44) = X(44)/JVS(439) - XX(45) = X(45)/JVS(441) - XX(46) = X(46)/JVS(443) - XX(47) = (X(47)-JVS(7)*XX(4)-JVS(50)*XX(8)-JVS(55)*XX(9)-JVS(223)*XX(32))/(JVS(445)) - XX(48) = X(48)/JVS(448) - XX(49) = X(49)/JVS(450) - XX(50) = X(50)/JVS(453) - XX(51) = X(51)/JVS(456) - XX(52) = X(52)/JVS(458) - XX(53) = X(53)/JVS(460) - XX(54) = (X(54)-JVS(319)*XX(33))/(JVS(462)) - XX(55) = X(55)/JVS(464) - XX(56) = X(56)/JVS(466) - XX(57) = (X(57)-JVS(136)*XX(31)-JVS(224)*XX(32))/(JVS(469)) - XX(58) = (X(58)-JVS(137)*XX(31))/(JVS(473)) - XX(59) = (X(59)-JVS(138)*XX(31))/(JVS(477)) - XX(60) = (X(60)-JVS(64)*XX(12)-JVS(320)*XX(33))/(JVS(481)) - XX(61) = (X(61)-JVS(139)*XX(31)-JVS(470)*XX(57))/(JVS(483)) - XX(62) = (X(62)-JVS(12)*XX(6)-JVS(225)*XX(32)-JVS(321)*XX(33))/(JVS(486)) - XX(63) = (X(63)-JVS(140)*XX(31))/(JVS(489)) - XX(64) = (X(64)-JVS(141)*XX(31))/(JVS(492)) - XX(65) = (X(65)-JVS(8)*XX(4)-JVS(51)*XX(8)-JVS(56)*XX(9))/(JVS(496)) - XX(66) = X(66)/JVS(500) - XX(67) = (X(67)-JVS(13)*XX(6))/(JVS(504)) - XX(68) = (X(68)-JVS(322)*XX(33))/(JVS(508)) - XX(69) = X(69)/JVS(511) - XX(70) = X(70)/JVS(517) - XX(71) = (X(71)-JVS(142)*XX(31))/(JVS(520)) - XX(72) = (X(72)-JVS(226)*XX(32))/(JVS(523)) - XX(73) = (X(73)-JVS(323)*XX(33))/(JVS(526)) - XX(74) = X(74)/JVS(529) - XX(75) = (X(75)-JVS(227)*XX(32))/(JVS(532)) - XX(76) = (X(76)-JVS(94)*XX(21)-JVS(324)*XX(33))/(JVS(535)) - XX(77) = (X(77)-JVS(113)*XX(26)-JVS(325)*XX(33))/(JVS(537)) - XX(78) = X(78)/JVS(539) - XX(79) = X(79)/JVS(542) - XX(80) = X(80)/JVS(545) - XX(81) = (X(81)-JVS(228)*XX(32))/(JVS(548)) - XX(82) = (X(82)-JVS(118)*XX(27)-JVS(229)*XX(32))/(JVS(551)) - XX(83) = X(83)/JVS(554) - XX(84) = (X(84)-JVS(129)*XX(30))/(JVS(558)) - XX(85) = (X(85)-JVS(398)*XX(35))/(JVS(562)) - XX(86) = (X(86)-JVS(143)*XX(31))/(JVS(566)) - XX(87) = (X(87)-JVS(144)*XX(31))/(JVS(570)) - XX(88) = (X(88)-JVS(145)*XX(31))/(JVS(574)) - XX(89) = (X(89)-JVS(146)*XX(31))/(JVS(578)) - XX(90) = (X(90)-JVS(230)*XX(32)-JVS(426)*XX(38)-JVS(446)*XX(47))/(JVS(585)) - XX(91) = X(91)/JVS(589) - XX(92) = X(92)/JVS(593) - XX(93) = X(93)/JVS(597) - XX(94) = X(94)/JVS(601) - XX(95) = (X(95)-JVS(14)*XX(6)-JVS(147)*XX(31))/(JVS(605)) - XX(96) = (X(96)-JVS(46)*XX(7)-JVS(148)*XX(31))/(JVS(609)) - XX(97) = (X(97)-JVS(231)*XX(32))/(JVS(623)) - XX(98) = X(98)/JVS(626) - XX(99) = (X(99)-JVS(232)*XX(32)-JVS(326)*XX(33))/(JVS(636)) - XX(100) = (X(100)-JVS(327)*XX(33))/(JVS(639)) - XX(101) = (X(101)-JVS(149)*XX(31))/(JVS(642)) - XX(102) = X(102)/JVS(646) - XX(103) = (X(103)-JVS(150)*XX(31))/(JVS(653)) - XX(104) = (X(104)-JVS(15)*XX(6)-JVS(125)*XX(29))/(JVS(659)) - XX(105) = X(105)/JVS(666) - XX(106) = (X(106)-JVS(328)*XX(33))/(JVS(672)) - XX(107) = (X(107)-JVS(233)*XX(32))/(JVS(677)) - XX(108) = X(108)/JVS(682) - XX(109) = (X(109)-JVS(234)*XX(32))/(JVS(689)) - XX(110) = X(110)/JVS(692) - XX(111) = X(111)/JVS(696) - XX(112) = (X(112)-JVS(235)*XX(32))/(JVS(700)) - XX(113) = (X(113)-JVS(647)*XX(102))/(JVS(704)) - XX(114) = (X(114)-JVS(130)*XX(30))/(JVS(709)) - XX(115) = X(115)/JVS(715) - XX(116) = (X(116)-JVS(16)*XX(6)-JVS(151)*XX(31))/(JVS(721)) - XX(117) = (X(117)-JVS(236)*XX(32))/(JVS(727)) - XX(118) = X(118)/JVS(730) - XX(119) = X(119)/JVS(736) - XX(120) = (X(120)-JVS(17)*XX(6)-JVS(152)*XX(31))/(JVS(747)) - XX(121) = X(121)/JVS(752) - XX(122) = (X(122)-JVS(329)*XX(33))/(JVS(756)) - XX(123) = X(123)/JVS(760) - XX(124) = (X(124)-JVS(330)*XX(33))/(JVS(769)) - XX(125) = (X(125)-JVS(153)*XX(31))/(JVS(774)) - XX(126) = (X(126)-JVS(331)*XX(33))/(JVS(783)) - XX(127) = (X(127)-JVS(131)*XX(30))/(JVS(788)) - XX(128) = (X(128)-JVS(132)*XX(30))/(JVS(794)) - XX(129) = X(129)/JVS(800) - XX(130) = (X(130)-JVS(332)*XX(33))/(JVS(806)) - XX(131) = (X(131)-JVS(154)*XX(31)-JVS(237)*XX(32)-JVS(432)*XX(41))/(JVS(812)) - XX(132) = X(132)/JVS(818) - XX(133) = (X(133)-JVS(18)*XX(6)-JVS(333)*XX(33)-JVS(559)*XX(84))/(JVS(832)) - XX(134) = X(134)/JVS(836) - XX(135) = (X(135)-JVS(121)*XX(28)-JVS(238)*XX(32)-JVS(478)*XX(59))/(JVS(841)) - XX(136) = (X(136)-JVS(239)*XX(32)-JVS(610)*XX(96)-JVS(789)*XX(127)-JVS(795)*XX(128))/(JVS(846)) - XX(137) = (X(137)-JVS(240)*XX(32)-JVS(611)*XX(96)-JVS(790)*XX(127)-JVS(796)*XX(128))/(JVS(850)) - XX(138) = (X(138)-JVS(241)*XX(32))/(JVS(856)) - XX(139) = X(139)/JVS(860) - XX(140) = (X(140)-JVS(155)*XX(31))/(JVS(867)) - XX(141) = (X(141)-JVS(156)*XX(31))/(JVS(874)) - XX(142) = (X(142)-JVS(157)*XX(31))/(JVS(880)) - XX(143) = (X(143)-JVS(158)*XX(31))/(JVS(886)) - XX(144) = (X(144)-JVS(242)*XX(32)-JVS(399)*XX(35)-JVS(474)*XX(58)-JVS(737)*XX(119))/(JVS(891)) - XX(145) = (X(145)-JVS(243)*XX(32)-JVS(334)*XX(33))/(JVS(899)) - XX(146) = (X(146)-JVS(19)*XX(6)-JVS(159)*XX(31)-JVS(335)*XX(33))/(JVS(903)) - XX(147) = (X(147)-JVS(244)*XX(32)-JVS(612)*XX(96)-JVS(761)*XX(123))/(JVS(909)) - XX(148) = (X(148)-JVS(160)*XX(31))/(JVS(914)) - XX(149) = (X(149)-JVS(161)*XX(31)-JVS(336)*XX(33)-JVS(560)*XX(84))/(JVS(919)) - XX(150) = (X(150)-JVS(245)*XX(32)-JVS(337)*XX(33)-JVS(414)*XX(37))/(JVS(924)) - XX(151) = (X(151)-JVS(246)*XX(32)-JVS(338)*XX(33)-JVS(415)*XX(37))/(JVS(928)) - XX(152) = (X(152)-JVS(339)*XX(33))/(JVS(934)) - XX(153) = (X(153)-JVS(101)*XX(23)-JVS(340)*XX(33)-JVS(791)*XX(127)-JVS(797)*XX(128))/(JVS(941)) - XX(154) = X(154)/JVS(945) - XX(155) = (X(155)-JVS(247)*XX(32)-JVS(341)*XX(33))/(JVS(963)) - XX(156) = (X(156)-JVS(248)*XX(32))/(JVS(972)) - XX(157) = (X(157)-JVS(249)*XX(32))/(JVS(982)) - XX(158) = (X(158)-JVS(102)*XX(23)-JVS(342)*XX(33)-JVS(792)*XX(127)-JVS(798)*XX(128))/(JVS(987)) - XX(159) = (X(159)-JVS(20)*XX(6))/(JVS(992)) - XX(160) = (X(160)-JVS(21)*XX(6)-JVS(343)*XX(33)-JVS(660)*XX(104))/(JVS(998)) - XX(161) = (X(161)-JVS(103)*XX(23)-JVS(344)*XX(33)-JVS(710)*XX(114)-JVS(770)*XX(124))/(JVS(1004)) - XX(162) = (X(162)-JVS(162)*XX(31))/(JVS(1009)) - XX(163) = (X(163)-JVS(163)*XX(31))/(JVS(1014)) - XX(164) = (X(164)-JVS(164)*XX(31))/(JVS(1019)) - XX(165) = (X(165)-JVS(250)*XX(32)-JVS(345)*XX(33)-JVS(416)*XX(37))/(JVS(1024)) - XX(166) = (X(166)-JVS(346)*XX(33))/(JVS(1030)) - XX(167) = (X(167)-JVS(104)*XX(23)-JVS(347)*XX(33)-JVS(711)*XX(114)-JVS(784)*XX(126))/(JVS(1040)) - XX(168) = (X(168)-JVS(348)*XX(33))/(JVS(1045)) - XX(169) = (X(169)-JVS(251)*XX(32))/(JVS(1055)) - XX(170) = (X(170)-JVS(133)*XX(30)-JVS(349)*XX(33))/(JVS(1074)) - XX(171) = (X(171)-JVS(22)*XX(6)-JVS(252)*XX(32)-JVS(350)*XX(33)-JVS(613)*XX(96))/(JVS(1088)) - XX(172) = (X(172)-JVS(253)*XX(32)-JVS(775)*XX(125)-JVS(819)*XX(132))/(JVS(1099)) - XX(173) = (X(173)-JVS(165)*XX(31)-JVS(254)*XX(32))/(JVS(1105)) - XX(174) = (X(174)-JVS(255)*XX(32)-JVS(433)*XX(41)-JVS(813)*XX(131))/(JVS(1116)) - XX(175) = (X(175)-JVS(166)*XX(31)-JVS(256)*XX(32)-JVS(493)*XX(64)-JVS(648)*XX(102)-JVS(705)*XX(113))/(JVS(1128)) - XX(176) = (X(176)-JVS(23)*XX(6)-JVS(167)*XX(31)-JVS(257)*XX(32)-JVS(505)*XX(67)-JVS(606)*XX(95)-JVS(667)*XX(105)& - &-JVS(973)*XX(156))/(JVS(1138)) - XX(177) = (X(177)-JVS(258)*XX(32)-JVS(614)*XX(96))/(JVS(1145)) - XX(178) = (X(178)-JVS(168)*XX(31)-JVS(259)*XX(32))/(JVS(1157)) - XX(179) = (X(179)-JVS(169)*XX(31)-JVS(861)*XX(139)-JVS(993)*XX(159)-JVS(1046)*XX(168))/(JVS(1167)) - XX(180) = (X(180)-JVS(170)*XX(31)-JVS(862)*XX(139)-JVS(994)*XX(159))/(JVS(1174)) - XX(181) = (X(181)-JVS(351)*XX(33))/(JVS(1183)) - XX(182) = (X(182)-JVS(352)*XX(33)-JVS(673)*XX(106)-JVS(748)*XX(120)-JVS(875)*XX(141)-JVS(935)*XX(152)-JVS(999)*XX(160)& - &-JVS(1075)*XX(170)-JVS(1184)*XX(181))/(JVS(1197)) - XX(183) = (X(183)-JVS(171)*XX(31)-JVS(863)*XX(139)-JVS(995)*XX(159))/(JVS(1204)) - XX(184) = (X(184)-JVS(353)*XX(33)-JVS(674)*XX(106)-JVS(722)*XX(116)-JVS(881)*XX(142)-JVS(936)*XX(152)-JVS(1000)& - &*XX(160)-JVS(1076)*XX(170)-JVS(1185)*XX(181))/(JVS(1211)) - XX(185) = (X(185)-JVS(172)*XX(31)-JVS(1047)*XX(168)-JVS(1089)*XX(171))/(JVS(1217)) - XX(186) = (X(186)-JVS(260)*XX(32)-JVS(409)*XX(36)-JVS(1106)*XX(173))/(JVS(1222)) - XX(187) = (X(187)-JVS(173)*XX(31)-JVS(261)*XX(32)-JVS(668)*XX(105)-JVS(974)*XX(156))/(JVS(1234)) - XX(188) = (X(188)-JVS(174)*XX(31))/(JVS(1246)) - XX(189) = (X(189)-JVS(24)*XX(6)-JVS(354)*XX(33))/(JVS(1265)) - XX(190) = (X(190)-JVS(175)*XX(31)-JVS(355)*XX(33)-JVS(1031)*XX(166))/(JVS(1278)) - XX(191) = (X(191)-JVS(176)*XX(31)-JVS(393)*XX(34)-JVS(400)*XX(35)-JVS(417)*XX(37)-JVS(738)*XX(119))/(JVS(1286)) - XX(192) = (X(192)-JVS(177)*XX(31))/(JVS(1295)) - XX(193) = X(193)/JVS(1311) - XX(194) = X(194)/JVS(1330) - XX(195) = (X(195)-JVS(262)*XX(32)-JVS(356)*XX(33)-JVS(615)*XX(96))/(JVS(1349)) - XX(196) = (X(196)-JVS(263)*XX(32)-JVS(434)*XX(41)-JVS(814)*XX(131))/(JVS(1361)) - XX(197) = (X(197)-JVS(178)*XX(31)-JVS(697)*XX(111)-JVS(946)*XX(154)-JVS(1331)*XX(194))/(JVS(1374)) - XX(198) = (X(198)-JVS(264)*XX(32)-JVS(616)*XX(96))/(JVS(1382)) - XX(199) = (X(199)-JVS(265)*XX(32)-JVS(512)*XX(69)-JVS(627)*XX(98)-JVS(868)*XX(140)-JVS(1247)*XX(188))/(JVS(1389)) - XX(200) = (X(200)-JVS(179)*XX(31)-JVS(1032)*XX(166))/(JVS(1398)) - XX(201) = (X(201)-JVS(180)*XX(31)-JVS(357)*XX(33)-JVS(1350)*XX(195))/(JVS(1409)) - XX(202) = (X(202)-JVS(358)*XX(33)-JVS(716)*XX(115)-JVS(807)*XX(130)-JVS(1033)*XX(166)-JVS(1186)*XX(181))/(JVS(1423)) - XX(203) = (X(203)-JVS(25)*XX(6)-JVS(181)*XX(31)-JVS(359)*XX(33)-JVS(833)*XX(133)-JVS(920)*XX(149))/(JVS(1435)) - XX(204) = (X(204)-JVS(182)*XX(31)-JVS(693)*XX(110)-JVS(947)*XX(154))/(JVS(1444)) - XX(205) = (X(205)-JVS(26)*XX(6)-JVS(266)*XX(32)-JVS(360)*XX(33))/(JVS(1457)) - XX(206) = (X(206)-JVS(10)*XX(5)-JVS(27)*XX(6)-JVS(183)*XX(31)-JVS(361)*XX(33)-JVS(964)*XX(155)-JVS(1248)*XX(188))& - &/(JVS(1476)) - XX(207) = (X(207)-JVS(28)*XX(6))/(JVS(1497)) - XX(208) = (X(208)-JVS(267)*XX(32)-JVS(401)*XX(35)-JVS(739)*XX(119))/(JVS(1523)) - XX(209) = (X(209)-JVS(268)*XX(32)-JVS(362)*XX(33)-JVS(617)*XX(96))/(JVS(1545)) - XX(210) = (X(210)-JVS(269)*XX(32)-JVS(363)*XX(33)-JVS(618)*XX(96)-JVS(712)*XX(114)-JVS(1015)*XX(163)-JVS(1077)*XX(170)& - &-JVS(1266)*XX(189)-JVS(1279)*XX(190)-JVS(1424)*XX(202)-JVS(1458)*XX(205)-JVS(1546)*XX(209))/(JVS(1558)) - XX(211) = (X(211)-JVS(184)*XX(31)-JVS(270)*XX(32)-JVS(1117)*XX(174)-JVS(1362)*XX(196))/(JVS(1567)) - XX(212) = (X(212)-JVS(185)*XX(31)-JVS(271)*XX(32)-JVS(948)*XX(154)-JVS(1118)*XX(174)-JVS(1363)*XX(196)-JVS(1568)& - &*XX(211))/(JVS(1580)) - XX(213) = (X(213)-JVS(186)*XX(31)-JVS(575)*XX(88)-JVS(683)*XX(108)-JVS(801)*XX(129))/(JVS(1589)) - XX(214) = X(214)/JVS(1603) - XX(215) = (X(215)-JVS(29)*XX(6))/(JVS(1631)) - XX(216) = (X(216)-JVS(272)*XX(32)-JVS(364)*XX(33)-JVS(619)*XX(96)-JVS(713)*XX(114)-JVS(1020)*XX(164)-JVS(1078)*XX(170)& - &-JVS(1090)*XX(171)-JVS(1267)*XX(189)-JVS(1280)*XX(190)-JVS(1332)*XX(194)-JVS(1425)*XX(202)-JVS(1547)*XX(209))& - &/(JVS(1654)) - XX(217) = (X(217)-JVS(187)*XX(31)-JVS(1048)*XX(168)-JVS(1091)*XX(171)-JVS(1312)*XX(193)-JVS(1333)*XX(194)-JVS(1459)& - &*XX(205)-JVS(1548)*XX(209))/(JVS(1662)) - XX(218) = (X(218)-JVS(126)*XX(29)-JVS(273)*XX(32)-JVS(365)*XX(33))/(JVS(1691)) - XX(219) = (X(219)-JVS(366)*XX(33))/(JVS(1714)) - XX(220) = (X(220)-JVS(30)*XX(6)-JVS(69)*XX(13)-JVS(72)*XX(14)-JVS(274)*XX(32)-JVS(367)*XX(33)-JVS(418)*XX(37)-JVS(771)& - &*XX(124)-JVS(785)*XX(126)-JVS(1049)*XX(168)-JVS(1079)*XX(170)-JVS(1198)*XX(182)-JVS(1212)*XX(184)-JVS(1313)& - &*XX(193)-JVS(1351)*XX(195)-JVS(1399)*XX(200)-JVS(1410)*XX(201)-JVS(1498)*XX(207)-JVS(1524)*XX(208)-JVS(1692)& - &*XX(218))/(JVS(1727)) - XX(221) = (X(221)-JVS(188)*XX(31)-JVS(275)*XX(32)-JVS(731)*XX(118)-JVS(949)*XX(154)-JVS(1364)*XX(196)-JVS(1604)& - &*XX(214))/(JVS(1733)) - XX(222) = (X(222)-JVS(276)*XX(32))/(JVS(1749)) - XX(223) = (X(223)-JVS(277)*XX(32)-JVS(430)*XX(40)-JVS(447)*XX(47)-JVS(586)*XX(90)-JVS(628)*XX(98)-JVS(678)*XX(107))& - &/(JVS(1764)) - XX(224) = (X(224)-JVS(189)*XX(31)-JVS(368)*XX(33)-JVS(717)*XX(115)-JVS(757)*XX(122)-JVS(937)*XX(152)-JVS(1034)*XX(166)& - &-JVS(1187)*XX(181)-JVS(1426)*XX(202)-JVS(1549)*XX(209)-JVS(1693)*XX(218))/(JVS(1785)) - XX(225) = (X(225)-JVS(190)*XX(31)-JVS(369)*XX(33)-JVS(758)*XX(122)-JVS(808)*XX(130)-JVS(938)*XX(152)-JVS(1035)*XX(166)& - &-JVS(1188)*XX(181)-JVS(1427)*XX(202)-JVS(1550)*XX(209)-JVS(1694)*XX(218)-JVS(1786)*XX(224))/(JVS(1806)) - XX(226) = (X(226)-JVS(1036)*XX(166)-JVS(1189)*XX(181)-JVS(1695)*XX(218))/(JVS(1832)) - XX(227) = (X(227)-JVS(31)*XX(6)-JVS(370)*XX(33)-JVS(1314)*XX(193))/(JVS(1866)) - XX(228) = (X(228)-JVS(127)*XX(29)-JVS(278)*XX(32)-JVS(371)*XX(33))/(JVS(1917)) - XX(229) = (X(229)-JVS(191)*XX(31)-JVS(1092)*XX(171)-JVS(1334)*XX(194)-JVS(1460)*XX(205)-JVS(1918)*XX(228))/(JVS(1946)) - XX(230) = (X(230)-JVS(192)*XX(31)-JVS(279)*XX(32)-JVS(394)*XX(34)-JVS(402)*XX(35)-JVS(419)*XX(37)-JVS(555)*XX(83)& - &-JVS(740)*XX(119)-JVS(1499)*XX(207)-JVS(1525)*XX(208))/(JVS(1959)) - XX(231) = (X(231)-JVS(193)*XX(31)-JVS(280)*XX(32)-JVS(820)*XX(132)-JVS(1249)*XX(188)-JVS(1296)*XX(192))/(JVS(1973)) - XX(232) = (X(232)-JVS(32)*XX(6)-JVS(372)*XX(33)-JVS(1500)*XX(207)-JVS(1605)*XX(214)-JVS(1696)*XX(218))/(JVS(2011)) - XX(233) = (X(233)-JVS(194)*XX(31)-JVS(579)*XX(89)-JVS(594)*XX(92)-JVS(950)*XX(154)-JVS(1606)*XX(214)-JVS(1632)& - &*XX(215))/(JVS(2034)) - XX(234) = (X(234)-JVS(195)*XX(31)-JVS(281)*XX(32)-JVS(732)*XX(118)-JVS(951)*XX(154)-JVS(1119)*XX(174)-JVS(1365)& - &*XX(196)-JVS(1501)*XX(207)-JVS(1607)*XX(214)-JVS(1715)*XX(219)-JVS(1750)*XX(222)-JVS(2035)*XX(233))& - &/(JVS(2052)) - XX(235) = (X(235)-JVS(196)*XX(31)-JVS(684)*XX(108)-JVS(802)*XX(129)-JVS(1608)*XX(214)-JVS(1633)*XX(215))/(JVS(2066)) - XX(236) = (X(236)-JVS(373)*XX(33)-JVS(675)*XX(106)-JVS(876)*XX(141)-JVS(882)*XX(142)-JVS(904)*XX(146)-JVS(939)*XX(152)& - &-JVS(1001)*XX(160)-JVS(1080)*XX(170)-JVS(1093)*XX(171)-JVS(1190)*XX(181)-JVS(1335)*XX(194)-JVS(1352)*XX(195)& - &-JVS(1400)*XX(200)-JVS(1411)*XX(201)-JVS(1461)*XX(205)-JVS(1502)*XX(207)-JVS(1697)*XX(218)-JVS(1833)*XX(226)& - &-JVS(1867)*XX(227)-JVS(1919)*XX(228)-JVS(2012)*XX(232))/(JVS(2085)) - XX(237) = (X(237)-JVS(197)*XX(31)-JVS(282)*XX(32)-JVS(620)*XX(96)-JVS(661)*XX(104)-JVS(1191)*XX(181)-JVS(1462)*XX(205)& - &-JVS(1503)*XX(207)-JVS(1698)*XX(218)-JVS(1920)*XX(228)-JVS(2013)*XX(232))/(JVS(2108)) - XX(238) = (X(238)-JVS(198)*XX(31)-JVS(283)*XX(32)-JVS(621)*XX(96)-JVS(905)*XX(146)-JVS(1002)*XX(160)-JVS(1050)*XX(168)& - &-JVS(1192)*XX(181)-JVS(1315)*XX(193)-JVS(1336)*XX(194)-JVS(1353)*XX(195)-JVS(1463)*XX(205)-JVS(1504)*XX(207)& - &-JVS(1551)*XX(209)-JVS(1699)*XX(218)-JVS(1834)*XX(226)-JVS(1868)*XX(227)-JVS(1921)*XX(228)-JVS(1947)*XX(229)& - &-JVS(2014)*XX(232)-JVS(2109)*XX(237))/(JVS(2139)) - XX(239) = (X(239)-JVS(199)*XX(31)-JVS(284)*XX(32)-JVS(622)*XX(96)-JVS(762)*XX(123)-JVS(887)*XX(143)-JVS(1337)*XX(194)& - &-JVS(1464)*XX(205)-JVS(1922)*XX(228)-JVS(1948)*XX(229)-JVS(2015)*XX(232)-JVS(2086)*XX(236)-JVS(2110)*XX(237)& - &-JVS(2140)*XX(238))/(JVS(2162)) - XX(240) = (X(240)-JVS(200)*XX(31)-JVS(285)*XX(32)-JVS(763)*XX(123)-JVS(1146)*XX(177)-JVS(1609)*XX(214)-JVS(1655)& - &*XX(216)-JVS(1663)*XX(217)-JVS(1700)*XX(218)-JVS(1787)*XX(224)-JVS(1807)*XX(225)-JVS(1835)*XX(226)-JVS(1869)& - &*XX(227)-JVS(1923)*XX(228)-JVS(1949)*XX(229)-JVS(2016)*XX(232)-JVS(2087)*XX(236)-JVS(2111)*XX(237)-JVS(2141)& - &*XX(238)-JVS(2163)*XX(239))/(JVS(2175)) - XX(241) = (X(241)-JVS(201)*XX(31)-JVS(286)*XX(32)-JVS(764)*XX(123)-JVS(910)*XX(147)-JVS(1081)*XX(170)-JVS(1147)& - &*XX(177)-JVS(1218)*XX(185)-JVS(1316)*XX(193)-JVS(1338)*XX(194)-JVS(1465)*XX(205)-JVS(1552)*XX(209)-JVS(1559)& - &*XX(210)-JVS(1610)*XX(214)-JVS(1656)*XX(216)-JVS(1664)*XX(217)-JVS(1701)*XX(218)-JVS(1788)*XX(224)-JVS(1808)& - &*XX(225)-JVS(1836)*XX(226)-JVS(1870)*XX(227)-JVS(1924)*XX(228)-JVS(1950)*XX(229)-JVS(2017)*XX(232)-JVS(2088)& - &*XX(236)-JVS(2112)*XX(237)-JVS(2142)*XX(238)-JVS(2164)*XX(239)-JVS(2176)*XX(240))/(JVS(2188)) - XX(242) = (X(242)-JVS(202)*XX(31)-JVS(374)*XX(33)-JVS(786)*XX(126)-JVS(847)*XX(136)-JVS(942)*XX(153)-JVS(1010)*XX(162)& - &-JVS(1041)*XX(167)-JVS(1051)*XX(168)-JVS(1082)*XX(170)-JVS(1168)*XX(179)-JVS(1199)*XX(182)-JVS(1205)*XX(183)& - &-JVS(1268)*XX(189)-JVS(1281)*XX(190)-JVS(1354)*XX(195)-JVS(1401)*XX(200)-JVS(1428)*XX(202)-JVS(1505)*XX(207)& - &-JVS(1553)*XX(209)-JVS(1560)*XX(210)-JVS(1702)*XX(218)-JVS(1789)*XX(224)-JVS(1809)*XX(225)-JVS(1837)*XX(226)& - &-JVS(1871)*XX(227)-JVS(1925)*XX(228)-JVS(2018)*XX(232)-JVS(2089)*XX(236)-JVS(2113)*XX(237)-JVS(2143)*XX(238)& - &-JVS(2165)*XX(239))/(JVS(2202)) - XX(243) = (X(243)-JVS(203)*XX(31)-JVS(375)*XX(33)-JVS(772)*XX(124)-JVS(851)*XX(137)-JVS(915)*XX(148)-JVS(988)*XX(158)& - &-JVS(1005)*XX(161)-JVS(1083)*XX(170)-JVS(1175)*XX(180)-JVS(1206)*XX(183)-JVS(1213)*XX(184)-JVS(1269)*XX(189)& - &-JVS(1282)*XX(190)-JVS(1317)*XX(193)-JVS(1355)*XX(195)-JVS(1412)*XX(201)-JVS(1429)*XX(202)-JVS(1506)*XX(207)& - &-JVS(1554)*XX(209)-JVS(1657)*XX(216)-JVS(1703)*XX(218)-JVS(1790)*XX(224)-JVS(1810)*XX(225)-JVS(1838)*XX(226)& - &-JVS(1872)*XX(227)-JVS(1926)*XX(228)-JVS(2019)*XX(232)-JVS(2090)*XX(236)-JVS(2114)*XX(237)-JVS(2144)*XX(238)& - &-JVS(2166)*XX(239)-JVS(2203)*XX(242))/(JVS(2218)) - XX(244) = (X(244)-JVS(287)*XX(32)-JVS(376)*XX(33)-JVS(420)*XX(37)-JVS(662)*XX(104)-JVS(1402)*XX(200)-JVS(1526)*XX(208)& - &-JVS(1839)*XX(226)-JVS(1927)*XX(228)-JVS(1960)*XX(230)-JVS(2020)*XX(232)-JVS(2115)*XX(237))/(JVS(2242)) - XX(245) = (X(245)-JVS(33)*XX(6)-JVS(204)*XX(31)-JVS(288)*XX(32)-JVS(921)*XX(149)-JVS(1094)*XX(171)-JVS(1339)*XX(194)& - &-JVS(1356)*XX(195)-JVS(1436)*XX(203)-JVS(1507)*XX(207)-JVS(1928)*XX(228))/(JVS(2261)) - XX(246) = (X(246)-JVS(34)*XX(6)-JVS(377)*XX(33)-JVS(1508)*XX(207)-JVS(1634)*XX(215)-JVS(1929)*XX(228))/(JVS(2315)) - XX(247) = (X(247)-JVS(289)*XX(32)-JVS(378)*XX(33)-JVS(1318)*XX(193)-JVS(1340)*XX(194)-JVS(1413)*XX(201)-JVS(1437)& - &*XX(203)-JVS(1509)*XX(207)-JVS(1873)*XX(227)-JVS(1930)*XX(228)-JVS(1961)*XX(230)-JVS(2262)*XX(245)-JVS(2316)& - &*XX(246))/(JVS(2344)) - XX(248) = (X(248)-JVS(205)*XX(31)-JVS(1319)*XX(193)-JVS(1611)*XX(214)-JVS(1635)*XX(215)-JVS(1931)*XX(228)-JVS(2317)& - &*XX(246))/(JVS(2367)) - XX(249) = (X(249)-JVS(206)*XX(31)-JVS(952)*XX(154)-JVS(1320)*XX(193)-JVS(1383)*XX(198)-JVS(1612)*XX(214)-JVS(1636)& - &*XX(215)-JVS(1716)*XX(219)-JVS(1751)*XX(222)-JVS(1932)*XX(228)-JVS(2036)*XX(233)-JVS(2067)*XX(235)-JVS(2368)& - &*XX(248))/(JVS(2387)) - XX(250) = (X(250)-JVS(207)*XX(31)-JVS(451)*XX(49)-JVS(602)*XX(94)-JVS(2037)*XX(233)-JVS(2068)*XX(235))/(JVS(2406)) - XX(251) = (X(251)-JVS(208)*XX(31)-JVS(953)*XX(154)-JVS(1384)*XX(198)-JVS(1613)*XX(214)-JVS(1637)*XX(215)-JVS(1717)& - &*XX(219)-JVS(1752)*XX(222)-JVS(2038)*XX(233)-JVS(2069)*XX(235)-JVS(2369)*XX(248)-JVS(2388)*XX(249)-JVS(2407)& - &*XX(250))/(JVS(2422)) - XX(252) = (X(252)-JVS(209)*XX(31)-JVS(590)*XX(91)-JVS(954)*XX(154)-JVS(1385)*XX(198)-JVS(1614)*XX(214)-JVS(1638)& - &*XX(215)-JVS(1718)*XX(219)-JVS(1753)*XX(222)-JVS(2039)*XX(233)-JVS(2070)*XX(235)-JVS(2370)*XX(248)-JVS(2389)& - &*XX(249)-JVS(2408)*XX(250)-JVS(2423)*XX(251))/(JVS(2439)) - XX(253) = (X(253)-JVS(210)*XX(31)-JVS(567)*XX(86)-JVS(598)*XX(93)-JVS(955)*XX(154)-JVS(1615)*XX(214)-JVS(1639)*XX(215)& - &-JVS(1719)*XX(219)-JVS(2371)*XX(248))/(JVS(2458)) - XX(254) = (X(254)-JVS(290)*XX(32)-JVS(379)*XX(33)-JVS(1223)*XX(186)-JVS(1287)*XX(191)-JVS(1375)*XX(197)-JVS(1445)& - &*XX(204)-JVS(1527)*XX(208)-JVS(1616)*XX(214)-JVS(1640)*XX(215)-JVS(1933)*XX(228)-JVS(1962)*XX(230)-JVS(2318)& - &*XX(246))/(JVS(2473)) - XX(255) = (X(255)-JVS(291)*XX(32)-JVS(380)*XX(33)-JVS(2040)*XX(233)-JVS(2071)*XX(235)-JVS(2409)*XX(250)-JVS(2459)& - &*XX(253))/(JVS(2509)) - XX(256) = (X(256)-JVS(292)*XX(32)-JVS(403)*XX(35)-JVS(741)*XX(119)-JVS(776)*XX(125)-JVS(821)*XX(132))/(JVS(2522)) - XX(257) = (X(257)-JVS(35)*XX(6)-JVS(211)*XX(31)-JVS(490)*XX(63)-JVS(501)*XX(66)-JVS(765)*XX(123)-JVS(1120)*XX(174)& - &-JVS(1158)*XX(178)-JVS(1366)*XX(196)-JVS(1376)*XX(197)-JVS(1446)*XX(204)-JVS(1569)*XX(211)-JVS(1581)*XX(212)& - &-JVS(1590)*XX(213)-JVS(1617)*XX(214)-JVS(1641)*XX(215)-JVS(1720)*XX(219)-JVS(1734)*XX(221)-JVS(1754)*XX(222)& - &-JVS(1934)*XX(228)-JVS(1951)*XX(229)-JVS(2021)*XX(232)-JVS(2041)*XX(233)-JVS(2053)*XX(234)-JVS(2072)*XX(235)& - &-JVS(2091)*XX(236)-JVS(2116)*XX(237)-JVS(2145)*XX(238)-JVS(2167)*XX(239)-JVS(2177)*XX(240)-JVS(2189)*XX(241)& - &-JVS(2204)*XX(242)-JVS(2219)*XX(243)-JVS(2243)*XX(244)-JVS(2263)*XX(245)-JVS(2319)*XX(246)-JVS(2345)*XX(247)& - &-JVS(2372)*XX(248)-JVS(2390)*XX(249)-JVS(2410)*XX(250)-JVS(2424)*XX(251)-JVS(2440)*XX(252)-JVS(2460)*XX(253)& - &-JVS(2474)*XX(254)-JVS(2510)*XX(255))/(JVS(2600)) - XX(258) = (X(258)-JVS(36)*XX(6)-JVS(395)*XX(34)-JVS(1288)*XX(191)-JVS(1528)*XX(208)-JVS(1642)*XX(215)-JVS(1963)& - &*XX(230))/(JVS(2694)) - XX(259) = (X(259)-JVS(212)*XX(31)-JVS(293)*XX(32)-JVS(822)*XX(132)-JVS(1297)*XX(192))/(JVS(2709)) - XX(260) = (X(260)-JVS(213)*XX(31)-JVS(294)*XX(32)-JVS(475)*XX(58)-JVS(479)*XX(59)-JVS(842)*XX(135)-JVS(892)*XX(144)& - &-JVS(1250)*XX(188))/(JVS(2787)) - XX(261) = (X(261)-JVS(295)*XX(32)-JVS(381)*XX(33)-JVS(1224)*XX(186)-JVS(2601)*XX(257)-JVS(2695)*XX(258)-JVS(2788)& - &*XX(260))/(JVS(2830)) - XX(262) = (X(262)-JVS(296)*XX(32)-JVS(382)*XX(33)-JVS(563)*XX(85)-JVS(742)*XX(119)-JVS(1107)*XX(173)-JVS(2696)*XX(258)& - &-JVS(2789)*XX(260)-JVS(2831)*XX(261))/(JVS(2933)) - XX(263) = (X(263)-JVS(37)*XX(6)-JVS(214)*XX(31)-JVS(297)*XX(32)-JVS(383)*XX(33)-JVS(521)*XX(71)-JVS(571)*XX(87)& - &-JVS(649)*XX(102)-JVS(654)*XX(103)-JVS(706)*XX(113)-JVS(766)*XX(123)-JVS(803)*XX(129)-JVS(837)*XX(134)& - &-JVS(956)*XX(154)-JVS(975)*XX(156)-JVS(1095)*XX(171)-JVS(1121)*XX(174)-JVS(1129)*XX(175)-JVS(1139)*XX(176)& - &-JVS(1148)*XX(177)-JVS(1159)*XX(178)-JVS(1235)*XX(187)-JVS(1270)*XX(189)-JVS(1298)*XX(192)-JVS(1341)*XX(194)& - &-JVS(1367)*XX(196)-JVS(1377)*XX(197)-JVS(1447)*XX(204)-JVS(1477)*XX(206)-JVS(1510)*XX(207)-JVS(1561)*XX(210)& - &-JVS(1570)*XX(211)-JVS(1582)*XX(212)-JVS(1591)*XX(213)-JVS(1618)*XX(214)-JVS(1643)*XX(215)-JVS(1658)*XX(216)& - &-JVS(1665)*XX(217)-JVS(1704)*XX(218)-JVS(1721)*XX(219)-JVS(1735)*XX(221)-JVS(1755)*XX(222)-JVS(1791)*XX(224)& - &-JVS(1811)*XX(225)-JVS(1840)*XX(226)-JVS(1874)*XX(227)-JVS(1935)*XX(228)-JVS(1952)*XX(229)-JVS(2022)*XX(232)& - &-JVS(2042)*XX(233)-JVS(2054)*XX(234)-JVS(2073)*XX(235)-JVS(2092)*XX(236)-JVS(2117)*XX(237)-JVS(2146)*XX(238)& - &-JVS(2168)*XX(239)-JVS(2178)*XX(240)-JVS(2190)*XX(241)-JVS(2205)*XX(242)-JVS(2220)*XX(243)-JVS(2244)*XX(244)& - &-JVS(2264)*XX(245)-JVS(2320)*XX(246)-JVS(2346)*XX(247)-JVS(2373)*XX(248)-JVS(2391)*XX(249)-JVS(2411)*XX(250)& - &-JVS(2425)*XX(251)-JVS(2441)*XX(252)-JVS(2461)*XX(253)-JVS(2475)*XX(254)-JVS(2511)*XX(255)-JVS(2602)*XX(257)& - &-JVS(2697)*XX(258)-JVS(2790)*XX(260)-JVS(2832)*XX(261)-JVS(2934)*XX(262))/(JVS(2997)) - XX(264) = (X(264)-JVS(298)*XX(32)-JVS(513)*XX(69)-JVS(629)*XX(98)-JVS(1765)*XX(223))/(JVS(3014)) - XX(265) = (X(265)-JVS(467)*XX(56)-JVS(497)*XX(65)-JVS(869)*XX(140)-JVS(1390)*XX(199)-JVS(1766)*XX(223)-JVS(3015)& - &*XX(264))/(JVS(3044)) - XX(266) = (X(266)-JVS(299)*XX(32)-JVS(514)*XX(69)-JVS(630)*XX(98)-JVS(870)*XX(140)-JVS(1767)*XX(223)-JVS(2791)*XX(260)& - &-JVS(3016)*XX(264)-JVS(3045)*XX(265))/(JVS(3064)) - XX(267) = (X(267)-JVS(300)*XX(32)-JVS(404)*XX(35)-JVS(743)*XX(119)-JVS(823)*XX(132)-JVS(1299)*XX(192))/(JVS(3088)) - XX(268) = (X(268)-JVS(301)*XX(32)-JVS(410)*XX(36)-JVS(436)*XX(42)-JVS(440)*XX(44)-JVS(442)*XX(45)-JVS(444)*XX(46)& - &-JVS(449)*XX(48)-JVS(457)*XX(51)-JVS(459)*XX(52)-JVS(461)*XX(53)-JVS(465)*XX(55)-JVS(471)*XX(57)-JVS(518)& - &*XX(70)-JVS(530)*XX(74)-JVS(540)*XX(78)-JVS(543)*XX(79)-JVS(546)*XX(80)-JVS(549)*XX(81)-JVS(624)*XX(97)& - &-JVS(1108)*XX(173)-JVS(1225)*XX(186)-JVS(1300)*XX(192)-JVS(2935)*XX(262)-JVS(2998)*XX(263)-JVS(3089)*XX(267))& - &/(JVS(3137)) - XX(269) = (X(269)-JVS(38)*XX(6)-JVS(65)*XX(12)-JVS(70)*XX(13)-JVS(82)*XX(17)-JVS(86)*XX(18)-JVS(95)*XX(21)-JVS(105)& - &*XX(23)-JVS(114)*XX(26)-JVS(119)*XX(27)-JVS(215)*XX(31)-JVS(302)*XX(32)-JVS(384)*XX(33)-JVS(396)*XX(34)& - &-JVS(405)*XX(35)-JVS(411)*XX(36)-JVS(421)*XX(37)-JVS(428)*XX(39)-JVS(438)*XX(43)-JVS(463)*XX(54)-JVS(482)& - &*XX(60)-JVS(487)*XX(62)-JVS(494)*XX(64)-JVS(498)*XX(65)-JVS(502)*XX(66)-JVS(506)*XX(67)-JVS(509)*XX(68)& - &-JVS(519)*XX(70)-JVS(524)*XX(72)-JVS(527)*XX(73)-JVS(531)*XX(74)-JVS(533)*XX(75)-JVS(536)*XX(76)-JVS(538)& - &*XX(77)-JVS(541)*XX(78)-JVS(544)*XX(79)-JVS(547)*XX(80)-JVS(550)*XX(81)-JVS(552)*XX(82)-JVS(556)*XX(83)& - &-JVS(561)*XX(84)-JVS(564)*XX(85)-JVS(568)*XX(86)-JVS(572)*XX(87)-JVS(576)*XX(88)-JVS(580)*XX(89)-JVS(591)& - &*XX(91)-JVS(595)*XX(92)-JVS(599)*XX(93)-JVS(603)*XX(94)-JVS(607)*XX(95)-JVS(625)*XX(97)-JVS(637)*XX(99)& - &-JVS(640)*XX(100)-JVS(643)*XX(101)-JVS(655)*XX(103)-JVS(663)*XX(104)-JVS(669)*XX(105)-JVS(676)*XX(106)& - &-JVS(679)*XX(107)-JVS(685)*XX(108)-JVS(690)*XX(109)-JVS(694)*XX(110)-JVS(698)*XX(111)-JVS(701)*XX(112)& - &-JVS(707)*XX(113)-JVS(714)*XX(114)-JVS(718)*XX(115)-JVS(723)*XX(116)-JVS(728)*XX(117)-JVS(733)*XX(118)& - &-JVS(744)*XX(119)-JVS(749)*XX(120)-JVS(753)*XX(121)-JVS(759)*XX(122)-JVS(773)*XX(124)-JVS(777)*XX(125)& - &-JVS(787)*XX(126)-JVS(793)*XX(127)-JVS(799)*XX(128)-JVS(804)*XX(129)-JVS(809)*XX(130)-JVS(815)*XX(131)& - &-JVS(834)*XX(133)-JVS(838)*XX(134)-JVS(848)*XX(136)-JVS(852)*XX(137)-JVS(857)*XX(138)-JVS(864)*XX(139)& - &-JVS(871)*XX(140)-JVS(888)*XX(143)-JVS(900)*XX(145)-JVS(906)*XX(146)-JVS(911)*XX(147)-JVS(916)*XX(148)& - &-JVS(922)*XX(149)-JVS(925)*XX(150)-JVS(929)*XX(151)-JVS(940)*XX(152)-JVS(943)*XX(153)-JVS(957)*XX(154)& - &-JVS(965)*XX(155)-JVS(976)*XX(156)-JVS(983)*XX(157)-JVS(989)*XX(158)-JVS(996)*XX(159)-JVS(1003)*XX(160)& - &-JVS(1006)*XX(161)-JVS(1011)*XX(162)-JVS(1016)*XX(163)-JVS(1021)*XX(164)-JVS(1025)*XX(165)-JVS(1037)*XX(166)& - &-JVS(1042)*XX(167)-JVS(1052)*XX(168)-JVS(1084)*XX(170)-JVS(1096)*XX(171)-JVS(1109)*XX(173)-JVS(1122)*XX(174)& - &-JVS(1130)*XX(175)-JVS(1140)*XX(176)-JVS(1149)*XX(177)-JVS(1160)*XX(178)-JVS(1169)*XX(179)-JVS(1176)*XX(180)& - &-JVS(1193)*XX(181)-JVS(1200)*XX(182)-JVS(1207)*XX(183)-JVS(1214)*XX(184)-JVS(1219)*XX(185)-JVS(1226)*XX(186)& - &-JVS(1236)*XX(187)-JVS(1251)*XX(188)-JVS(1271)*XX(189)-JVS(1283)*XX(190)-JVS(1301)*XX(192)-JVS(1321)*XX(193)& - &-JVS(1342)*XX(194)-JVS(1357)*XX(195)-JVS(1368)*XX(196)-JVS(1378)*XX(197)-JVS(1386)*XX(198)-JVS(1403)*XX(200)& - &-JVS(1414)*XX(201)-JVS(1430)*XX(202)-JVS(1438)*XX(203)-JVS(1448)*XX(204)-JVS(1466)*XX(205)-JVS(1478)*XX(206)& - &-JVS(1511)*XX(207)-JVS(1529)*XX(208)-JVS(1555)*XX(209)-JVS(1562)*XX(210)-JVS(1571)*XX(211)-JVS(1583)*XX(212)& - &-JVS(1592)*XX(213)-JVS(1619)*XX(214)-JVS(1644)*XX(215)-JVS(1659)*XX(216)-JVS(1666)*XX(217)-JVS(1705)*XX(218)& - &-JVS(1722)*XX(219)-JVS(1728)*XX(220)-JVS(1736)*XX(221)-JVS(1756)*XX(222)-JVS(1768)*XX(223)-JVS(1792)*XX(224)& - &-JVS(1812)*XX(225)-JVS(1841)*XX(226)-JVS(1875)*XX(227)-JVS(1936)*XX(228)-JVS(1953)*XX(229)-JVS(1964)*XX(230)& - &-JVS(1974)*XX(231)-JVS(2023)*XX(232)-JVS(2043)*XX(233)-JVS(2055)*XX(234)-JVS(2074)*XX(235)-JVS(2093)*XX(236)& - &-JVS(2118)*XX(237)-JVS(2147)*XX(238)-JVS(2169)*XX(239)-JVS(2179)*XX(240)-JVS(2191)*XX(241)-JVS(2206)*XX(242)& - &-JVS(2221)*XX(243)-JVS(2245)*XX(244)-JVS(2265)*XX(245)-JVS(2321)*XX(246)-JVS(2347)*XX(247)-JVS(2374)*XX(248)& - &-JVS(2392)*XX(249)-JVS(2412)*XX(250)-JVS(2426)*XX(251)-JVS(2442)*XX(252)-JVS(2462)*XX(253)-JVS(2476)*XX(254)& - &-JVS(2512)*XX(255)-JVS(2523)*XX(256)-JVS(2603)*XX(257)-JVS(2698)*XX(258)-JVS(2710)*XX(259)-JVS(2792)*XX(260)& - &-JVS(2833)*XX(261)-JVS(2936)*XX(262)-JVS(2999)*XX(263)-JVS(3017)*XX(264)-JVS(3046)*XX(265)-JVS(3065)*XX(266)& - &-JVS(3090)*XX(267)-JVS(3138)*XX(268))/(JVS(3353)) - XX(270) = (X(270)-JVS(216)*XX(31)-JVS(303)*XX(32)-JVS(452)*XX(49)-JVS(454)*XX(50)-JVS(472)*XX(57)-JVS(484)*XX(61)& - &-JVS(491)*XX(63)-JVS(522)*XX(71)-JVS(608)*XX(95)-JVS(644)*XX(101)-JVS(670)*XX(105)-JVS(877)*XX(141)-JVS(883)& - &*XX(142)-JVS(923)*XX(149)-JVS(977)*XX(156)-JVS(1056)*XX(169)-JVS(1100)*XX(172)-JVS(1141)*XX(176)-JVS(1237)& - &*XX(187)-JVS(1252)*XX(188)-JVS(1289)*XX(191)-JVS(1358)*XX(195)-JVS(1391)*XX(199)-JVS(1404)*XX(200)-JVS(1415)& - &*XX(201)-JVS(1439)*XX(203)-JVS(1479)*XX(206)-JVS(1512)*XX(207)-JVS(1530)*XX(208)-JVS(1645)*XX(215)-JVS(1706)& - &*XX(218)-JVS(1769)*XX(223)-JVS(1842)*XX(226)-JVS(1876)*XX(227)-JVS(1937)*XX(228)-JVS(1965)*XX(230)-JVS(1975)& - &*XX(231)-JVS(2024)*XX(232)-JVS(2119)*XX(237)-JVS(2266)*XX(245)-JVS(2322)*XX(246)-JVS(2375)*XX(248)-JVS(2413)& - &*XX(250)-JVS(2427)*XX(251)-JVS(2443)*XX(252)-JVS(2463)*XX(253)-JVS(2513)*XX(255)-JVS(2524)*XX(256)-JVS(2604)& - &*XX(257)-JVS(2699)*XX(258)-JVS(2711)*XX(259)-JVS(2793)*XX(260)-JVS(2834)*XX(261)-JVS(2937)*XX(262)-JVS(3000)& - &*XX(263)-JVS(3018)*XX(264)-JVS(3047)*XX(265)-JVS(3066)*XX(266)-JVS(3091)*XX(267)-JVS(3139)*XX(268)-JVS(3354)& - &*XX(269))/(JVS(3484)) - XX(271) = (X(271)-JVS(304)*XX(32)-JVS(824)*XX(132)-JVS(843)*XX(135)-JVS(893)*XX(144)-JVS(1057)*XX(169)-JVS(1101)& - &*XX(172)-JVS(1110)*XX(173)-JVS(1253)*XX(188)-JVS(1302)*XX(192)-JVS(1976)*XX(231)-JVS(2525)*XX(256)-JVS(2712)& - &*XX(259)-JVS(2794)*XX(260)-JVS(3092)*XX(267)-JVS(3140)*XX(268)-JVS(3355)*XX(269)-JVS(3485)*XX(270))& - &/(JVS(3562)) - XX(272) = (X(272)-JVS(305)*XX(32)-JVS(778)*XX(125)-JVS(825)*XX(132)-JVS(1111)*XX(173)-JVS(1254)*XX(188)-JVS(1977)& - &*XX(231)-JVS(2526)*XX(256)-JVS(2713)*XX(259)-JVS(2795)*XX(260)-JVS(3093)*XX(267)-JVS(3141)*XX(268)-JVS(3356)& - &*XX(269)-JVS(3486)*XX(270)-JVS(3563)*XX(271))/(JVS(3601)) - XX(273) = (X(273)-JVS(306)*XX(32)-JVS(525)*XX(72)-JVS(631)*XX(98)-JVS(656)*XX(103)-JVS(680)*XX(107)-JVS(826)*XX(132)& - &-JVS(1303)*XX(192)-JVS(1770)*XX(223)-JVS(2714)*XX(259)-JVS(2796)*XX(260)-JVS(2938)*XX(262)-JVS(3001)*XX(263)& - &-JVS(3019)*XX(264)-JVS(3048)*XX(265)-JVS(3067)*XX(266)-JVS(3094)*XX(267)-JVS(3142)*XX(268)-JVS(3357)*XX(269)& - &-JVS(3487)*XX(270)-JVS(3564)*XX(271)-JVS(3602)*XX(272))/(JVS(3655)) - XX(274) = (X(274)-JVS(307)*XX(32)-JVS(587)*XX(90)-JVS(657)*XX(103)-JVS(681)*XX(107)-JVS(779)*XX(125)-JVS(827)*XX(132)& - &-JVS(1102)*XX(172)-JVS(1304)*XX(192)-JVS(1771)*XX(223)-JVS(2527)*XX(256)-JVS(2797)*XX(260)-JVS(3020)*XX(264)& - &-JVS(3049)*XX(265)-JVS(3068)*XX(266)-JVS(3095)*XX(267)-JVS(3143)*XX(268)-JVS(3358)*XX(269)-JVS(3488)*XX(270)& - &-JVS(3565)*XX(271)-JVS(3603)*XX(272)-JVS(3656)*XX(273))/(JVS(3688)) - XX(275) = (X(275)-JVS(308)*XX(32)-JVS(515)*XX(69)-JVS(780)*XX(125)-JVS(828)*XX(132)-JVS(1255)*XX(188)-JVS(1392)& - &*XX(199)-JVS(1978)*XX(231)-JVS(2528)*XX(256)-JVS(2715)*XX(259)-JVS(2798)*XX(260)-JVS(3021)*XX(264)-JVS(3050)& - &*XX(265)-JVS(3069)*XX(266)-JVS(3096)*XX(267)-JVS(3144)*XX(268)-JVS(3359)*XX(269)-JVS(3489)*XX(270)-JVS(3566)& - &*XX(271)-JVS(3604)*XX(272)-JVS(3657)*XX(273)-JVS(3689)*XX(274))/(JVS(3715)) - XX(276) = (X(276)-JVS(309)*XX(32)-JVS(516)*XX(69)-JVS(781)*XX(125)-JVS(829)*XX(132)-JVS(1256)*XX(188)-JVS(1393)& - &*XX(199)-JVS(1979)*XX(231)-JVS(2529)*XX(256)-JVS(2716)*XX(259)-JVS(2799)*XX(260)-JVS(3022)*XX(264)-JVS(3051)& - &*XX(265)-JVS(3070)*XX(266)-JVS(3097)*XX(267)-JVS(3145)*XX(268)-JVS(3360)*XX(269)-JVS(3490)*XX(270)-JVS(3567)& - &*XX(271)-JVS(3605)*XX(272)-JVS(3658)*XX(273)-JVS(3690)*XX(274)-JVS(3716)*XX(275))/(JVS(3742)) - XX(277) = (X(277)-JVS(39)*XX(6)-JVS(122)*XX(28)-JVS(310)*XX(32)-JVS(385)*XX(33)-JVS(406)*XX(35)-JVS(422)*XX(37)& - &-JVS(534)*XX(75)-JVS(664)*XX(104)-JVS(745)*XX(119)-JVS(816)*XX(131)-JVS(844)*XX(135)-JVS(858)*XX(138)& - &-JVS(894)*XX(144)-JVS(901)*XX(145)-JVS(926)*XX(150)-JVS(930)*XX(151)-JVS(966)*XX(155)-JVS(978)*XX(156)& - &-JVS(1026)*XX(165)-JVS(1112)*XX(173)-JVS(1131)*XX(175)-JVS(1161)*XX(178)-JVS(1227)*XX(186)-JVS(1238)*XX(187)& - &-JVS(1257)*XX(188)-JVS(1290)*XX(191)-JVS(1369)*XX(196)-JVS(1480)*XX(206)-JVS(1513)*XX(207)-JVS(1531)*XX(208)& - &-JVS(1572)*XX(211)-JVS(1584)*XX(212)-JVS(1620)*XX(214)-JVS(1646)*XX(215)-JVS(1707)*XX(218)-JVS(1729)*XX(220)& - &-JVS(1737)*XX(221)-JVS(1757)*XX(222)-JVS(1772)*XX(223)-JVS(1843)*XX(226)-JVS(1877)*XX(227)-JVS(1938)*XX(228)& - &-JVS(1966)*XX(230)-JVS(2025)*XX(232)-JVS(2044)*XX(233)-JVS(2056)*XX(234)-JVS(2075)*XX(235)-JVS(2120)*XX(237)& - &-JVS(2180)*XX(240)-JVS(2192)*XX(241)-JVS(2207)*XX(242)-JVS(2222)*XX(243)-JVS(2246)*XX(244)-JVS(2267)*XX(245)& - &-JVS(2323)*XX(246)-JVS(2348)*XX(247)-JVS(2376)*XX(248)-JVS(2393)*XX(249)-JVS(2414)*XX(250)-JVS(2428)*XX(251)& - &-JVS(2444)*XX(252)-JVS(2464)*XX(253)-JVS(2477)*XX(254)-JVS(2514)*XX(255)-JVS(2530)*XX(256)-JVS(2605)*XX(257)& - &-JVS(2700)*XX(258)-JVS(2800)*XX(260)-JVS(2835)*XX(261)-JVS(2939)*XX(262)-JVS(3002)*XX(263)-JVS(3023)*XX(264)& - &-JVS(3052)*XX(265)-JVS(3071)*XX(266)-JVS(3098)*XX(267)-JVS(3146)*XX(268)-JVS(3361)*XX(269)-JVS(3491)*XX(270)& - &-JVS(3568)*XX(271)-JVS(3606)*XX(272)-JVS(3659)*XX(273)-JVS(3691)*XX(274)-JVS(3717)*XX(275)-JVS(3743)*XX(276))& - &/(JVS(3802)) - XX(278) = (X(278)-JVS(311)*XX(32)-JVS(632)*XX(98)-JVS(830)*XX(132)-JVS(1058)*XX(169)-JVS(1258)*XX(188)-JVS(1305)& - &*XX(192)-JVS(1394)*XX(199)-JVS(1980)*XX(231)-JVS(2531)*XX(256)-JVS(2717)*XX(259)-JVS(2801)*XX(260)-JVS(3024)& - &*XX(264)-JVS(3053)*XX(265)-JVS(3072)*XX(266)-JVS(3099)*XX(267)-JVS(3147)*XX(268)-JVS(3362)*XX(269)-JVS(3492)& - &*XX(270)-JVS(3569)*XX(271)-JVS(3607)*XX(272)-JVS(3660)*XX(273)-JVS(3692)*XX(274)-JVS(3718)*XX(275)-JVS(3744)& - &*XX(276)-JVS(3803)*XX(277))/(JVS(3837)) - XX(279) = (X(279)-JVS(312)*XX(32)-JVS(423)*XX(37)-JVS(557)*XX(83)-JVS(1059)*XX(169)-JVS(1103)*XX(172)-JVS(1291)& - &*XX(191)-JVS(1514)*XX(207)-JVS(1532)*XX(208)-JVS(1647)*XX(215)-JVS(1967)*XX(230)-JVS(1981)*XX(231)-JVS(2532)& - &*XX(256)-JVS(2701)*XX(258)-JVS(2718)*XX(259)-JVS(2802)*XX(260)-JVS(2836)*XX(261)-JVS(2940)*XX(262)-JVS(3003)& - &*XX(263)-JVS(3025)*XX(264)-JVS(3054)*XX(265)-JVS(3073)*XX(266)-JVS(3100)*XX(267)-JVS(3148)*XX(268)-JVS(3363)& - &*XX(269)-JVS(3493)*XX(270)-JVS(3570)*XX(271)-JVS(3608)*XX(272)-JVS(3661)*XX(273)-JVS(3693)*XX(274)-JVS(3719)& - &*XX(275)-JVS(3745)*XX(276)-JVS(3804)*XX(277)-JVS(3838)*XX(278))/(JVS(3926)) - XX(280) = (X(280)-JVS(40)*XX(6)-JVS(62)*XX(11)-JVS(66)*XX(12)-JVS(79)*XX(16)-JVS(83)*XX(17)-JVS(92)*XX(20)-JVS(96)& - &*XX(21)-JVS(111)*XX(25)-JVS(115)*XX(26)-JVS(217)*XX(31)-JVS(386)*XX(33)-JVS(468)*XX(56)-JVS(485)*XX(61)& - &-JVS(495)*XX(64)-JVS(569)*XX(86)-JVS(573)*XX(87)-JVS(577)*XX(88)-JVS(581)*XX(89)-JVS(588)*XX(90)-JVS(650)& - &*XX(102)-JVS(719)*XX(115)-JVS(724)*XX(116)-JVS(750)*XX(120)-JVS(767)*XX(123)-JVS(810)*XX(130)-JVS(849)& - &*XX(136)-JVS(853)*XX(137)-JVS(872)*XX(140)-JVS(878)*XX(141)-JVS(884)*XX(142)-JVS(889)*XX(143)-JVS(907)& - &*XX(146)-JVS(917)*XX(148)-JVS(979)*XX(156)-JVS(1012)*XX(162)-JVS(1017)*XX(163)-JVS(1022)*XX(164)-JVS(1038)& - &*XX(166)-JVS(1053)*XX(168)-JVS(1085)*XX(170)-JVS(1097)*XX(171)-JVS(1123)*XX(174)-JVS(1132)*XX(175)-JVS(1142)& - &*XX(176)-JVS(1162)*XX(178)-JVS(1170)*XX(179)-JVS(1177)*XX(180)-JVS(1194)*XX(181)-JVS(1208)*XX(183)-JVS(1220)& - &*XX(185)-JVS(1239)*XX(187)-JVS(1259)*XX(188)-JVS(1272)*XX(189)-JVS(1284)*XX(190)-JVS(1292)*XX(191)-JVS(1322)& - &*XX(193)-JVS(1343)*XX(194)-JVS(1359)*XX(195)-JVS(1370)*XX(196)-JVS(1379)*XX(197)-JVS(1387)*XX(198)-JVS(1405)& - &*XX(200)-JVS(1416)*XX(201)-JVS(1431)*XX(202)-JVS(1440)*XX(203)-JVS(1449)*XX(204)-JVS(1467)*XX(205)-JVS(1481)& - &*XX(206)-JVS(1515)*XX(207)-JVS(1533)*XX(208)-JVS(1556)*XX(209)-JVS(1563)*XX(210)-JVS(1573)*XX(211)-JVS(1585)& - &*XX(212)-JVS(1593)*XX(213)-JVS(1621)*XX(214)-JVS(1648)*XX(215)-JVS(1660)*XX(216)-JVS(1667)*XX(217)-JVS(1708)& - &*XX(218)-JVS(1723)*XX(219)-JVS(1738)*XX(221)-JVS(1758)*XX(222)-JVS(1773)*XX(223)-JVS(1793)*XX(224)-JVS(1813)& - &*XX(225)-JVS(1844)*XX(226)-JVS(1878)*XX(227)-JVS(1939)*XX(228)-JVS(1954)*XX(229)-JVS(1968)*XX(230)-JVS(2026)& - &*XX(232)-JVS(2045)*XX(233)-JVS(2057)*XX(234)-JVS(2076)*XX(235)-JVS(2094)*XX(236)-JVS(2121)*XX(237)-JVS(2148)& - &*XX(238)-JVS(2170)*XX(239)-JVS(2181)*XX(240)-JVS(2193)*XX(241)-JVS(2208)*XX(242)-JVS(2223)*XX(243)-JVS(2247)& - &*XX(244)-JVS(2268)*XX(245)-JVS(2324)*XX(246)-JVS(2349)*XX(247)-JVS(2377)*XX(248)-JVS(2394)*XX(249)-JVS(2415)& - &*XX(250)-JVS(2429)*XX(251)-JVS(2445)*XX(252)-JVS(2465)*XX(253)-JVS(2478)*XX(254)-JVS(2515)*XX(255)-JVS(2606)& - &*XX(257)-JVS(2702)*XX(258)-JVS(2803)*XX(260)-JVS(2837)*XX(261)-JVS(2941)*XX(262)-JVS(3004)*XX(263)-JVS(3026)& - &*XX(264)-JVS(3055)*XX(265)-JVS(3074)*XX(266)-JVS(3101)*XX(267)-JVS(3149)*XX(268)-JVS(3364)*XX(269)-JVS(3494)& - &*XX(270)-JVS(3571)*XX(271)-JVS(3609)*XX(272)-JVS(3662)*XX(273)-JVS(3694)*XX(274)-JVS(3720)*XX(275)-JVS(3746)& - &*XX(276)-JVS(3805)*XX(277)-JVS(3839)*XX(278)-JVS(3927)*XX(279))/(JVS(4025)) - XX(281) = (X(281)-JVS(41)*XX(6)-JVS(59)*XX(10)-JVS(67)*XX(12)-JVS(76)*XX(15)-JVS(84)*XX(17)-JVS(89)*XX(19)-JVS(97)& - &*XX(21)-JVS(108)*XX(24)-JVS(116)*XX(26)-JVS(218)*XX(31)-JVS(313)*XX(32)-JVS(387)*XX(33)-JVS(424)*XX(37)& - &-JVS(499)*XX(65)-JVS(503)*XX(66)-JVS(507)*XX(67)-JVS(592)*XX(91)-JVS(596)*XX(92)-JVS(600)*XX(93)-JVS(604)& - &*XX(94)-JVS(645)*XX(101)-JVS(671)*XX(105)-JVS(686)*XX(108)-JVS(695)*XX(110)-JVS(699)*XX(111)-JVS(708)*XX(113)& - &-JVS(720)*XX(115)-JVS(725)*XX(116)-JVS(734)*XX(118)-JVS(751)*XX(120)-JVS(811)*XX(130)-JVS(835)*XX(133)& - &-JVS(839)*XX(134)-JVS(865)*XX(139)-JVS(879)*XX(141)-JVS(885)*XX(142)-JVS(890)*XX(143)-JVS(908)*XX(146)& - &-JVS(912)*XX(147)-JVS(918)*XX(148)-JVS(944)*XX(153)-JVS(980)*XX(156)-JVS(990)*XX(158)-JVS(997)*XX(159)& - &-JVS(1007)*XX(161)-JVS(1013)*XX(162)-JVS(1018)*XX(163)-JVS(1023)*XX(164)-JVS(1039)*XX(166)-JVS(1043)*XX(167)& - &-JVS(1054)*XX(168)-JVS(1086)*XX(170)-JVS(1098)*XX(171)-JVS(1113)*XX(173)-JVS(1124)*XX(174)-JVS(1133)*XX(175)& - &-JVS(1143)*XX(176)-JVS(1150)*XX(177)-JVS(1163)*XX(178)-JVS(1171)*XX(179)-JVS(1178)*XX(180)-JVS(1195)*XX(181)& - &-JVS(1201)*XX(182)-JVS(1209)*XX(183)-JVS(1215)*XX(184)-JVS(1221)*XX(185)-JVS(1240)*XX(187)-JVS(1273)*XX(189)& - &-JVS(1285)*XX(190)-JVS(1323)*XX(193)-JVS(1344)*XX(194)-JVS(1360)*XX(195)-JVS(1371)*XX(196)-JVS(1380)*XX(197)& - &-JVS(1388)*XX(198)-JVS(1406)*XX(200)-JVS(1417)*XX(201)-JVS(1432)*XX(202)-JVS(1441)*XX(203)-JVS(1450)*XX(204)& - &-JVS(1468)*XX(205)-JVS(1482)*XX(206)-JVS(1516)*XX(207)-JVS(1534)*XX(208)-JVS(1557)*XX(209)-JVS(1574)*XX(211)& - &-JVS(1586)*XX(212)-JVS(1594)*XX(213)-JVS(1622)*XX(214)-JVS(1649)*XX(215)-JVS(1668)*XX(217)-JVS(1709)*XX(218)& - &-JVS(1724)*XX(219)-JVS(1739)*XX(221)-JVS(1759)*XX(222)-JVS(1774)*XX(223)-JVS(1794)*XX(224)-JVS(1814)*XX(225)& - &-JVS(1845)*XX(226)-JVS(1879)*XX(227)-JVS(1940)*XX(228)-JVS(1955)*XX(229)-JVS(2027)*XX(232)-JVS(2046)*XX(233)& - &-JVS(2058)*XX(234)-JVS(2077)*XX(235)-JVS(2095)*XX(236)-JVS(2122)*XX(237)-JVS(2149)*XX(238)-JVS(2171)*XX(239)& - &-JVS(2182)*XX(240)-JVS(2194)*XX(241)-JVS(2209)*XX(242)-JVS(2224)*XX(243)-JVS(2248)*XX(244)-JVS(2269)*XX(245)& - &-JVS(2325)*XX(246)-JVS(2350)*XX(247)-JVS(2378)*XX(248)-JVS(2395)*XX(249)-JVS(2416)*XX(250)-JVS(2430)*XX(251)& - &-JVS(2446)*XX(252)-JVS(2466)*XX(253)-JVS(2479)*XX(254)-JVS(2516)*XX(255)-JVS(2533)*XX(256)-JVS(2607)*XX(257)& - &-JVS(2703)*XX(258)-JVS(2804)*XX(260)-JVS(2838)*XX(261)-JVS(2942)*XX(262)-JVS(3005)*XX(263)-JVS(3027)*XX(264)& - &-JVS(3056)*XX(265)-JVS(3075)*XX(266)-JVS(3102)*XX(267)-JVS(3150)*XX(268)-JVS(3365)*XX(269)-JVS(3495)*XX(270)& - &-JVS(3572)*XX(271)-JVS(3610)*XX(272)-JVS(3663)*XX(273)-JVS(3695)*XX(274)-JVS(3721)*XX(275)-JVS(3747)*XX(276)& - &-JVS(3806)*XX(277)-JVS(3840)*XX(278)-JVS(3928)*XX(279)-JVS(4026)*XX(280))/(JVS(4197)) - XX(282) = (X(282)-JVS(388)*XX(33)-JVS(455)*XX(50)-JVS(754)*XX(121)-JVS(782)*XX(125)-JVS(984)*XX(157)-JVS(1104)*XX(172)& - &-JVS(1451)*XX(204)-JVS(1595)*XX(213)-JVS(1623)*XX(214)-JVS(1650)*XX(215)-JVS(1725)*XX(219)-JVS(2047)*XX(233)& - &-JVS(2078)*XX(235)-JVS(2326)*XX(246)-JVS(2379)*XX(248)-JVS(2467)*XX(253)-JVS(2480)*XX(254)-JVS(2517)*XX(255)& - &-JVS(2534)*XX(256)-JVS(2608)*XX(257)-JVS(2704)*XX(258)-JVS(2805)*XX(260)-JVS(2839)*XX(261)-JVS(2943)*XX(262)& - &-JVS(3006)*XX(263)-JVS(3103)*XX(267)-JVS(3151)*XX(268)-JVS(3366)*XX(269)-JVS(3496)*XX(270)-JVS(3573)*XX(271)& - &-JVS(3611)*XX(272)-JVS(3664)*XX(273)-JVS(3696)*XX(274)-JVS(3722)*XX(275)-JVS(3748)*XX(276)-JVS(3807)*XX(277)& - &-JVS(3841)*XX(278)-JVS(3929)*XX(279)-JVS(4027)*XX(280)-JVS(4198)*XX(281))/(JVS(4253)) - XX(283) = (X(283)-JVS(314)*XX(32)-JVS(633)*XX(98)-JVS(831)*XX(132)-JVS(1060)*XX(169)-JVS(1260)*XX(188)-JVS(1306)& - &*XX(192)-JVS(1395)*XX(199)-JVS(1982)*XX(231)-JVS(2535)*XX(256)-JVS(2719)*XX(259)-JVS(2806)*XX(260)-JVS(3028)& - &*XX(264)-JVS(3057)*XX(265)-JVS(3076)*XX(266)-JVS(3104)*XX(267)-JVS(3152)*XX(268)-JVS(3367)*XX(269)-JVS(3497)& - &*XX(270)-JVS(3574)*XX(271)-JVS(3612)*XX(272)-JVS(3665)*XX(273)-JVS(3697)*XX(274)-JVS(3723)*XX(275)-JVS(3749)& - &*XX(276)-JVS(3808)*XX(277)-JVS(3842)*XX(278)-JVS(3930)*XX(279)-JVS(4028)*XX(280)-JVS(4199)*XX(281)-JVS(4254)& - &*XX(282))/(JVS(4288)) - XX(284) = (X(284)-JVS(315)*XX(32)-JVS(389)*XX(33)-JVS(488)*XX(62)-JVS(1114)*XX(173)-JVS(1535)*XX(208)-JVS(2536)& - &*XX(256)-JVS(2705)*XX(258)-JVS(2720)*XX(259)-JVS(2807)*XX(260)-JVS(2840)*XX(261)-JVS(2944)*XX(262)-JVS(3007)& - &*XX(263)-JVS(3105)*XX(267)-JVS(3153)*XX(268)-JVS(3368)*XX(269)-JVS(3498)*XX(270)-JVS(3575)*XX(271)-JVS(3613)& - &*XX(272)-JVS(3666)*XX(273)-JVS(3698)*XX(274)-JVS(3724)*XX(275)-JVS(3750)*XX(276)-JVS(3809)*XX(277)-JVS(3843)& - &*XX(278)-JVS(3931)*XX(279)-JVS(4029)*XX(280)-JVS(4200)*XX(281)-JVS(4255)*XX(282)-JVS(4289)*XX(283))& - &/(JVS(4349)) - XX(285) = (X(285)-JVS(42)*XX(6)-JVS(219)*XX(31)-JVS(390)*XX(33)-JVS(412)*XX(36)-JVS(510)*XX(68)-JVS(528)*XX(73)& - &-JVS(641)*XX(100)-JVS(658)*XX(103)-JVS(702)*XX(112)-JVS(755)*XX(121)-JVS(805)*XX(129)-JVS(840)*XX(134)& - &-JVS(985)*XX(157)-JVS(1115)*XX(173)-JVS(1228)*XX(186)-JVS(1307)*XX(192)-JVS(1452)*XX(204)-JVS(1517)*XX(207)& - &-JVS(1536)*XX(208)-JVS(1596)*XX(213)-JVS(1624)*XX(214)-JVS(1651)*XX(215)-JVS(1726)*XX(219)-JVS(1730)*XX(220)& - &-JVS(1846)*XX(226)-JVS(1880)*XX(227)-JVS(1941)*XX(228)-JVS(1969)*XX(230)-JVS(2028)*XX(232)-JVS(2048)*XX(233)& - &-JVS(2079)*XX(235)-JVS(2123)*XX(237)-JVS(2183)*XX(240)-JVS(2195)*XX(241)-JVS(2210)*XX(242)-JVS(2225)*XX(243)& - &-JVS(2249)*XX(244)-JVS(2270)*XX(245)-JVS(2327)*XX(246)-JVS(2351)*XX(247)-JVS(2380)*XX(248)-JVS(2417)*XX(250)& - &-JVS(2447)*XX(252)-JVS(2468)*XX(253)-JVS(2481)*XX(254)-JVS(2518)*XX(255)-JVS(2609)*XX(257)-JVS(2706)*XX(258)& - &-JVS(2721)*XX(259)-JVS(2808)*XX(260)-JVS(2841)*XX(261)-JVS(2945)*XX(262)-JVS(3008)*XX(263)-JVS(3106)*XX(267)& - &-JVS(3154)*XX(268)-JVS(3369)*XX(269)-JVS(3499)*XX(270)-JVS(3576)*XX(271)-JVS(3614)*XX(272)-JVS(3667)*XX(273)& - &-JVS(3699)*XX(274)-JVS(3725)*XX(275)-JVS(3751)*XX(276)-JVS(3810)*XX(277)-JVS(3844)*XX(278)-JVS(3932)*XX(279)& - &-JVS(4030)*XX(280)-JVS(4201)*XX(281)-JVS(4256)*XX(282)-JVS(4290)*XX(283)-JVS(4350)*XX(284))/(JVS(4445)) - XX(286) = (X(286)-JVS(123)*XX(28)-JVS(316)*XX(32)-JVS(407)*XX(35)-JVS(565)*XX(85)-JVS(746)*XX(119)-JVS(845)*XX(135)& - &-JVS(895)*XX(144)-JVS(1261)*XX(188)-JVS(1293)*XX(191)-JVS(1537)*XX(208)-JVS(1652)*XX(215)-JVS(1970)*XX(230)& - &-JVS(2537)*XX(256)-JVS(2707)*XX(258)-JVS(2809)*XX(260)-JVS(2842)*XX(261)-JVS(2946)*XX(262)-JVS(3009)*XX(263)& - &-JVS(3107)*XX(267)-JVS(3155)*XX(268)-JVS(3370)*XX(269)-JVS(3500)*XX(270)-JVS(3577)*XX(271)-JVS(3615)*XX(272)& - &-JVS(3668)*XX(273)-JVS(3700)*XX(274)-JVS(3726)*XX(275)-JVS(3752)*XX(276)-JVS(3811)*XX(277)-JVS(3845)*XX(278)& - &-JVS(3933)*XX(279)-JVS(4031)*XX(280)-JVS(4202)*XX(281)-JVS(4257)*XX(282)-JVS(4291)*XX(283)-JVS(4351)*XX(284)& - &-JVS(4446)*XX(285))/(JVS(4488)) - XX(287) = (X(287)-JVS(43)*XX(6)-JVS(73)*XX(14)-JVS(317)*XX(32)-JVS(391)*XX(33)-JVS(476)*XX(58)-JVS(480)*XX(59)& - &-JVS(553)*XX(82)-JVS(638)*XX(99)-JVS(651)*XX(102)-JVS(691)*XX(109)-JVS(703)*XX(112)-JVS(729)*XX(117)-JVS(768)& - &*XX(123)-JVS(817)*XX(131)-JVS(859)*XX(138)-JVS(873)*XX(140)-JVS(902)*XX(145)-JVS(927)*XX(150)-JVS(931)& - &*XX(151)-JVS(967)*XX(155)-JVS(981)*XX(156)-JVS(986)*XX(157)-JVS(1027)*XX(165)-JVS(1061)*XX(169)-JVS(1125)& - &*XX(174)-JVS(1134)*XX(175)-JVS(1144)*XX(176)-JVS(1164)*XX(178)-JVS(1241)*XX(187)-JVS(1262)*XX(188)-JVS(1345)& - &*XX(194)-JVS(1372)*XX(196)-JVS(1381)*XX(197)-JVS(1442)*XX(203)-JVS(1469)*XX(205)-JVS(1483)*XX(206)-JVS(1518)& - &*XX(207)-JVS(1538)*XX(208)-JVS(1575)*XX(211)-JVS(1587)*XX(212)-JVS(1597)*XX(213)-JVS(1625)*XX(214)-JVS(1653)& - &*XX(215)-JVS(1710)*XX(218)-JVS(1731)*XX(220)-JVS(1740)*XX(221)-JVS(1760)*XX(222)-JVS(1847)*XX(226)-JVS(1881)& - &*XX(227)-JVS(1942)*XX(228)-JVS(1956)*XX(229)-JVS(1971)*XX(230)-JVS(1983)*XX(231)-JVS(2029)*XX(232)-JVS(2049)& - &*XX(233)-JVS(2059)*XX(234)-JVS(2080)*XX(235)-JVS(2096)*XX(236)-JVS(2124)*XX(237)-JVS(2150)*XX(238)-JVS(2172)& - &*XX(239)-JVS(2184)*XX(240)-JVS(2196)*XX(241)-JVS(2211)*XX(242)-JVS(2226)*XX(243)-JVS(2250)*XX(244)-JVS(2271)& - &*XX(245)-JVS(2328)*XX(246)-JVS(2352)*XX(247)-JVS(2381)*XX(248)-JVS(2396)*XX(249)-JVS(2418)*XX(250)-JVS(2431)& - &*XX(251)-JVS(2448)*XX(252)-JVS(2469)*XX(253)-JVS(2482)*XX(254)-JVS(2519)*XX(255)-JVS(2610)*XX(257)-JVS(2708)& - &*XX(258)-JVS(2810)*XX(260)-JVS(2843)*XX(261)-JVS(2947)*XX(262)-JVS(3010)*XX(263)-JVS(3029)*XX(264)-JVS(3058)& - &*XX(265)-JVS(3077)*XX(266)-JVS(3108)*XX(267)-JVS(3156)*XX(268)-JVS(3371)*XX(269)-JVS(3501)*XX(270)-JVS(3578)& - &*XX(271)-JVS(3616)*XX(272)-JVS(3669)*XX(273)-JVS(3701)*XX(274)-JVS(3727)*XX(275)-JVS(3753)*XX(276)-JVS(3812)& - &*XX(277)-JVS(3846)*XX(278)-JVS(3934)*XX(279)-JVS(4032)*XX(280)-JVS(4203)*XX(281)-JVS(4258)*XX(282)-JVS(4292)& - &*XX(283)-JVS(4352)*XX(284)-JVS(4447)*XX(285)-JVS(4489)*XX(286))/(JVS(4581)) - XX(287) = XX(287) - XX(286) = XX(286)-JVS(4580)*XX(287) - XX(285) = XX(285)-JVS(4487)*XX(286)-JVS(4579)*XX(287) - XX(284) = XX(284)-JVS(4444)*XX(285)-JVS(4486)*XX(286)-JVS(4578)*XX(287) - XX(283) = XX(283)-JVS(4348)*XX(284)-JVS(4443)*XX(285)-JVS(4485)*XX(286)-JVS(4577)*XX(287) - XX(282) = XX(282)-JVS(4287)*XX(283)-JVS(4347)*XX(284)-JVS(4442)*XX(285)-JVS(4484)*XX(286)-JVS(4576)*XX(287) - XX(281) = XX(281)-JVS(4252)*XX(282)-JVS(4286)*XX(283)-JVS(4346)*XX(284)-JVS(4441)*XX(285)-JVS(4483)*XX(286)-JVS(4575)& - &*XX(287) - XX(280) = XX(280)-JVS(4196)*XX(281)-JVS(4251)*XX(282)-JVS(4285)*XX(283)-JVS(4345)*XX(284)-JVS(4440)*XX(285)-JVS(4482)& - &*XX(286)-JVS(4574)*XX(287) - XX(279) = XX(279)-JVS(4024)*XX(280)-JVS(4195)*XX(281)-JVS(4250)*XX(282)-JVS(4284)*XX(283)-JVS(4344)*XX(284)-JVS(4439)& - &*XX(285)-JVS(4481)*XX(286)-JVS(4573)*XX(287) - XX(278) = XX(278)-JVS(3925)*XX(279)-JVS(4023)*XX(280)-JVS(4194)*XX(281)-JVS(4249)*XX(282)-JVS(4283)*XX(283)-JVS(4343)& - &*XX(284)-JVS(4438)*XX(285)-JVS(4480)*XX(286)-JVS(4572)*XX(287) - XX(277) = XX(277)-JVS(3836)*XX(278)-JVS(3924)*XX(279)-JVS(4022)*XX(280)-JVS(4193)*XX(281)-JVS(4248)*XX(282)-JVS(4282)& - &*XX(283)-JVS(4342)*XX(284)-JVS(4437)*XX(285)-JVS(4479)*XX(286)-JVS(4571)*XX(287) - XX(276) = XX(276)-JVS(3801)*XX(277)-JVS(3835)*XX(278)-JVS(3923)*XX(279)-JVS(4021)*XX(280)-JVS(4192)*XX(281)-JVS(4247)& - &*XX(282)-JVS(4281)*XX(283)-JVS(4341)*XX(284)-JVS(4436)*XX(285)-JVS(4478)*XX(286)-JVS(4570)*XX(287) - XX(275) = XX(275)-JVS(3741)*XX(276)-JVS(3800)*XX(277)-JVS(3834)*XX(278)-JVS(3922)*XX(279)-JVS(4020)*XX(280)-JVS(4191)& - &*XX(281)-JVS(4246)*XX(282)-JVS(4280)*XX(283)-JVS(4340)*XX(284)-JVS(4435)*XX(285)-JVS(4477)*XX(286)-JVS(4569)& - &*XX(287) - XX(274) = XX(274)-JVS(3714)*XX(275)-JVS(3740)*XX(276)-JVS(3799)*XX(277)-JVS(3833)*XX(278)-JVS(3921)*XX(279)-JVS(4019)& - &*XX(280)-JVS(4190)*XX(281)-JVS(4245)*XX(282)-JVS(4279)*XX(283)-JVS(4339)*XX(284)-JVS(4434)*XX(285)-JVS(4476)& - &*XX(286)-JVS(4568)*XX(287) - XX(273) = XX(273)-JVS(3687)*XX(274)-JVS(3713)*XX(275)-JVS(3739)*XX(276)-JVS(3798)*XX(277)-JVS(3832)*XX(278)-JVS(3920)& - &*XX(279)-JVS(4018)*XX(280)-JVS(4189)*XX(281)-JVS(4244)*XX(282)-JVS(4278)*XX(283)-JVS(4338)*XX(284)-JVS(4433)& - &*XX(285)-JVS(4475)*XX(286)-JVS(4567)*XX(287) - XX(272) = XX(272)-JVS(3654)*XX(273)-JVS(3686)*XX(274)-JVS(3712)*XX(275)-JVS(3738)*XX(276)-JVS(3797)*XX(277)-JVS(3831)& - &*XX(278)-JVS(3919)*XX(279)-JVS(4017)*XX(280)-JVS(4188)*XX(281)-JVS(4243)*XX(282)-JVS(4277)*XX(283)-JVS(4337)& - &*XX(284)-JVS(4432)*XX(285)-JVS(4474)*XX(286)-JVS(4566)*XX(287) - XX(271) = XX(271)-JVS(3600)*XX(272)-JVS(3653)*XX(273)-JVS(3685)*XX(274)-JVS(3711)*XX(275)-JVS(3737)*XX(276)-JVS(3796)& - &*XX(277)-JVS(3830)*XX(278)-JVS(3918)*XX(279)-JVS(4016)*XX(280)-JVS(4187)*XX(281)-JVS(4242)*XX(282)-JVS(4276)& - &*XX(283)-JVS(4336)*XX(284)-JVS(4431)*XX(285)-JVS(4473)*XX(286)-JVS(4565)*XX(287) - XX(270) = XX(270)-JVS(3561)*XX(271)-JVS(3599)*XX(272)-JVS(3652)*XX(273)-JVS(3684)*XX(274)-JVS(3710)*XX(275)-JVS(3736)& - &*XX(276)-JVS(3795)*XX(277)-JVS(3829)*XX(278)-JVS(3917)*XX(279)-JVS(4015)*XX(280)-JVS(4186)*XX(281)-JVS(4241)& - &*XX(282)-JVS(4275)*XX(283)-JVS(4335)*XX(284)-JVS(4430)*XX(285)-JVS(4472)*XX(286)-JVS(4564)*XX(287) - XX(269) = XX(269)-JVS(3483)*XX(270)-JVS(3560)*XX(271)-JVS(3598)*XX(272)-JVS(3651)*XX(273)-JVS(3683)*XX(274)-JVS(3709)& - &*XX(275)-JVS(3735)*XX(276)-JVS(3794)*XX(277)-JVS(3828)*XX(278)-JVS(3916)*XX(279)-JVS(4014)*XX(280)-JVS(4185)& - &*XX(281)-JVS(4240)*XX(282)-JVS(4274)*XX(283)-JVS(4334)*XX(284)-JVS(4429)*XX(285)-JVS(4471)*XX(286)-JVS(4563)& - &*XX(287) - XX(268) = XX(268)-JVS(3352)*XX(269)-JVS(3482)*XX(270)-JVS(3559)*XX(271)-JVS(3597)*XX(272)-JVS(3650)*XX(273)-JVS(3682)& - &*XX(274)-JVS(3793)*XX(277)-JVS(3827)*XX(278)-JVS(3915)*XX(279)-JVS(4013)*XX(280)-JVS(4184)*XX(281)-JVS(4239)& - &*XX(282)-JVS(4273)*XX(283)-JVS(4333)*XX(284)-JVS(4428)*XX(285)-JVS(4470)*XX(286)-JVS(4562)*XX(287) - XX(267) = XX(267)-JVS(3136)*XX(268)-JVS(3351)*XX(269)-JVS(3558)*XX(271)-JVS(3596)*XX(272)-JVS(3649)*XX(273)-JVS(3826)& - &*XX(278)-JVS(3914)*XX(279)-JVS(4238)*XX(282)-JVS(4272)*XX(283)-JVS(4332)*XX(284)-JVS(4427)*XX(285)-JVS(4469)& + XX(7) = X(7)/JVS(14) + XX(8) = X(8)/JVS(68) + XX(9) = X(9)/JVS(71) + XX(10) = X(10)/JVS(79) + XX(11) = X(11)/JVS(87) + XX(12) = X(12)/JVS(90) + XX(13) = (X(13)-JVS(88)*XX(11)-JVS(91)*XX(12))/(JVS(93)) + XX(14) = X(14)/JVS(98) + XX(15) = X(15)/JVS(101) + XX(16) = X(16)/JVS(104) + XX(17) = X(17)/JVS(107) + XX(18) = (X(18)-JVS(105)*XX(16)-JVS(108)*XX(17))/(JVS(110)) + XX(19) = (X(19)-JVS(111)*XX(18))/(JVS(115)) + XX(20) = X(20)/JVS(117) + XX(21) = X(21)/JVS(120) + XX(22) = (X(22)-JVS(118)*XX(20)-JVS(121)*XX(21))/(JVS(123)) + XX(23) = X(23)/JVS(128) + XX(24) = (X(24)-JVS(129)*XX(23))/(JVS(130)) + XX(25) = X(25)/JVS(136) + XX(26) = X(26)/JVS(139) + XX(27) = (X(27)-JVS(137)*XX(25)-JVS(140)*XX(26))/(JVS(142)) + XX(28) = X(28)/JVS(147) + XX(29) = X(29)/JVS(150) + XX(30) = X(30)/JVS(154) + XX(31) = X(31)/JVS(158) + XX(32) = X(32)/JVS(164) + XX(33) = X(33)/JVS(169) + XX(34) = X(34)/JVS(175) + XX(35) = X(35)/JVS(257) + XX(36) = X(36)/JVS(359) + XX(37) = X(37)/JVS(434) + XX(38) = X(38)/JVS(439) + XX(39) = X(39)/JVS(450) + XX(40) = X(40)/JVS(455) + XX(41) = (X(41)-JVS(12)*XX(6))/(JVS(467)) + XX(42) = (X(42)-JVS(5)*XX(4)-JVS(72)*XX(9)-JVS(80)*XX(10)-JVS(258)*XX(35))/(JVS(469)) + XX(43) = X(43)/JVS(471) + XX(44) = (X(44)-JVS(6)*XX(4)-JVS(73)*XX(9)-JVS(81)*XX(10)-JVS(259)*XX(35))/(JVS(473)) + XX(45) = (X(45)-JVS(69)*XX(8)-JVS(176)*XX(34))/(JVS(475)) + XX(46) = X(46)/JVS(479) + XX(47) = X(47)/JVS(481) + XX(48) = X(48)/JVS(483) + XX(49) = (X(49)-JVS(7)*XX(4)-JVS(74)*XX(9)-JVS(82)*XX(10)-JVS(260)*XX(35))/(JVS(485)) + XX(50) = X(50)/JVS(488) + XX(51) = X(51)/JVS(491) + XX(52) = X(52)/JVS(494) + XX(53) = X(53)/JVS(496) + XX(54) = X(54)/JVS(498) + XX(55) = (X(55)-JVS(261)*XX(35))/(JVS(500)) + XX(56) = (X(56)-JVS(262)*XX(35))/(JVS(502)) + XX(57) = X(57)/JVS(504) + XX(58) = (X(58)-JVS(360)*XX(36))/(JVS(506)) + XX(59) = X(59)/JVS(508) + XX(60) = X(60)/JVS(510) + XX(61) = (X(61)-JVS(177)*XX(34)-JVS(263)*XX(35))/(JVS(513)) + XX(62) = (X(62)-JVS(264)*XX(35))/(JVS(517)) + XX(63) = (X(63)-JVS(265)*XX(35))/(JVS(521)) + XX(64) = (X(64)-JVS(94)*XX(13)-JVS(361)*XX(36))/(JVS(525)) + XX(65) = (X(65)-JVS(178)*XX(34)-JVS(514)*XX(61))/(JVS(527)) + XX(66) = (X(66)-JVS(15)*XX(7)-JVS(266)*XX(35)-JVS(362)*XX(36))/(JVS(530)) + XX(67) = (X(67)-JVS(16)*XX(7)-JVS(179)*XX(34))/(JVS(533)) + XX(68) = (X(68)-JVS(180)*XX(34))/(JVS(536)) + XX(69) = (X(69)-JVS(8)*XX(4)-JVS(75)*XX(9)-JVS(83)*XX(10))/(JVS(540)) + XX(70) = (X(70)-JVS(17)*XX(7))/(JVS(544)) + XX(71) = X(71)/JVS(548) + XX(72) = (X(72)-JVS(363)*XX(36))/(JVS(551)) + XX(73) = X(73)/JVS(554) + XX(74) = (X(74)-JVS(181)*XX(34))/(JVS(560)) + XX(75) = (X(75)-JVS(267)*XX(35))/(JVS(563)) + XX(76) = (X(76)-JVS(268)*XX(35))/(JVS(566)) + XX(77) = X(77)/JVS(569) + XX(78) = (X(78)-JVS(364)*XX(36))/(JVS(572)) + XX(79) = (X(79)-JVS(124)*XX(22)-JVS(365)*XX(36))/(JVS(575)) + XX(80) = (X(80)-JVS(143)*XX(27)-JVS(366)*XX(36))/(JVS(577)) + XX(81) = X(81)/JVS(579) + XX(82) = X(82)/JVS(582) + XX(83) = X(83)/JVS(585) + XX(84) = (X(84)-JVS(269)*XX(35))/(JVS(588)) + XX(85) = X(85)/JVS(591) + XX(86) = (X(86)-JVS(170)*XX(33)-JVS(440)*XX(38))/(JVS(595)) + XX(87) = (X(87)-JVS(182)*XX(34))/(JVS(599)) + XX(88) = (X(88)-JVS(18)*XX(7))/(JVS(603)) + XX(89) = (X(89)-JVS(183)*XX(34))/(JVS(607)) + XX(90) = (X(90)-JVS(148)*XX(28)-JVS(270)*XX(35))/(JVS(611)) + XX(91) = (X(91)-JVS(184)*XX(34))/(JVS(614)) + XX(92) = (X(92)-JVS(271)*XX(35)-JVS(470)*XX(42)-JVS(486)*XX(49))/(JVS(621)) + XX(93) = X(93)/JVS(625) + XX(94) = X(94)/JVS(629) + XX(95) = X(95)/JVS(633) + XX(96) = (X(96)-JVS(185)*XX(34))/(JVS(637)) + XX(97) = (X(97)-JVS(19)*XX(7)-JVS(186)*XX(34))/(JVS(641)) + XX(98) = (X(98)-JVS(70)*XX(8)-JVS(187)*XX(34))/(JVS(645)) + XX(99) = X(99)/JVS(659) + XX(100) = (X(100)-JVS(272)*XX(35))/(JVS(667)) + XX(101) = (X(101)-JVS(273)*XX(35)-JVS(367)*XX(36))/(JVS(672)) + XX(102) = (X(102)-JVS(188)*XX(34))/(JVS(675)) + XX(103) = (X(103)-JVS(189)*XX(34))/(JVS(680)) + XX(104) = (X(104)-JVS(20)*XX(7)-JVS(155)*XX(30))/(JVS(686)) + XX(105) = (X(105)-JVS(159)*XX(31)-JVS(368)*XX(36))/(JVS(692)) + XX(106) = X(106)/JVS(696) + XX(107) = X(107)/JVS(701) + XX(108) = X(108)/JVS(707) + XX(109) = (X(109)-JVS(369)*XX(36))/(JVS(713)) + XX(110) = X(110)/JVS(718) + XX(111) = (X(111)-JVS(274)*XX(35))/(JVS(723)) + XX(112) = X(112)/JVS(728) + XX(113) = X(113)/JVS(732) + XX(114) = (X(114)-JVS(275)*XX(35))/(JVS(736)) + XX(115) = (X(115)-JVS(276)*XX(35))/(JVS(742)) + XX(116) = (X(116)-JVS(160)*XX(31))/(JVS(745)) + XX(117) = X(117)/JVS(751) + XX(118) = (X(118)-JVS(277)*XX(35))/(JVS(758)) + XX(119) = X(119)/JVS(761) + XX(120) = (X(120)-JVS(708)*XX(108))/(JVS(766)) + XX(121) = (X(121)-JVS(21)*XX(7)-JVS(190)*XX(34))/(JVS(771)) + XX(122) = X(122)/JVS(777) + XX(123) = (X(123)-JVS(22)*XX(7)-JVS(191)*XX(34))/(JVS(788)) + XX(124) = X(124)/JVS(793) + XX(125) = (X(125)-JVS(370)*XX(36))/(JVS(797)) + XX(126) = X(126)/JVS(801) + XX(127) = (X(127)-JVS(371)*XX(36))/(JVS(810)) + XX(128) = (X(128)-JVS(192)*XX(34))/(JVS(815)) + XX(129) = (X(129)-JVS(372)*XX(36))/(JVS(824)) + XX(130) = (X(130)-JVS(161)*XX(31))/(JVS(829)) + XX(131) = (X(131)-JVS(162)*XX(31))/(JVS(835)) + XX(132) = (X(132)-JVS(373)*XX(36))/(JVS(841)) + XX(133) = X(133)/JVS(847) + XX(134) = (X(134)-JVS(193)*XX(34)-JVS(278)*XX(35)-JVS(476)*XX(45))/(JVS(853)) + XX(135) = X(135)/JVS(859) + XX(136) = (X(136)-JVS(23)*XX(7)-JVS(374)*XX(36)-JVS(693)*XX(105))/(JVS(873)) + XX(137) = X(137)/JVS(877) + XX(138) = (X(138)-JVS(151)*XX(29)-JVS(279)*XX(35)-JVS(522)*XX(63))/(JVS(882)) + XX(139) = (X(139)-JVS(280)*XX(35)-JVS(646)*XX(98)-JVS(830)*XX(130)-JVS(836)*XX(131))/(JVS(887)) + XX(140) = (X(140)-JVS(281)*XX(35)-JVS(647)*XX(98)-JVS(831)*XX(130)-JVS(837)*XX(131))/(JVS(891)) + XX(141) = X(141)/JVS(895) + XX(142) = (X(142)-JVS(282)*XX(35))/(JVS(903)) + XX(143) = (X(143)-JVS(194)*XX(34))/(JVS(908)) + XX(144) = (X(144)-JVS(195)*XX(34))/(JVS(915)) + XX(145) = (X(145)-JVS(196)*XX(34))/(JVS(921)) + XX(146) = (X(146)-JVS(197)*XX(34))/(JVS(927)) + XX(147) = (X(147)-JVS(283)*XX(35)-JVS(441)*XX(38)-JVS(518)*XX(62)-JVS(778)*XX(122))/(JVS(932)) + XX(148) = (X(148)-JVS(284)*XX(35)-JVS(375)*XX(36))/(JVS(940)) + XX(149) = (X(149)-JVS(285)*XX(35)-JVS(376)*XX(36))/(JVS(944)) + XX(150) = (X(150)-JVS(24)*XX(7)-JVS(198)*XX(34)-JVS(377)*XX(36))/(JVS(948)) + XX(151) = (X(151)-JVS(286)*XX(35)-JVS(648)*XX(98)-JVS(802)*XX(126))/(JVS(954)) + XX(152) = (X(152)-JVS(199)*XX(34))/(JVS(959)) + XX(153) = (X(153)-JVS(200)*XX(34)-JVS(378)*XX(36)-JVS(694)*XX(105))/(JVS(964)) + XX(154) = (X(154)-JVS(287)*XX(35)-JVS(379)*XX(36)-JVS(456)*XX(40))/(JVS(969)) + XX(155) = (X(155)-JVS(288)*XX(35)-JVS(380)*XX(36)-JVS(457)*XX(40))/(JVS(973)) + XX(156) = (X(156)-JVS(381)*XX(36))/(JVS(979)) + XX(157) = (X(157)-JVS(131)*XX(24)-JVS(382)*XX(36)-JVS(832)*XX(130)-JVS(838)*XX(131))/(JVS(986)) + XX(158) = X(158)/JVS(990) + XX(159) = (X(159)-JVS(289)*XX(35)-JVS(383)*XX(36))/(JVS(1008)) + XX(160) = (X(160)-JVS(290)*XX(35))/(JVS(1017)) + XX(161) = (X(161)-JVS(291)*XX(35))/(JVS(1027)) + XX(162) = (X(162)-JVS(132)*XX(24)-JVS(384)*XX(36)-JVS(833)*XX(130)-JVS(839)*XX(131))/(JVS(1032)) + XX(163) = (X(163)-JVS(25)*XX(7)-JVS(385)*XX(36)-JVS(687)*XX(104))/(JVS(1036)) + XX(164) = (X(164)-JVS(26)*XX(7))/(JVS(1043)) + XX(165) = (X(165)-JVS(133)*XX(24)-JVS(386)*XX(36)-JVS(746)*XX(116)-JVS(811)*XX(127))/(JVS(1049)) + XX(166) = (X(166)-JVS(201)*XX(34))/(JVS(1053)) + XX(167) = (X(167)-JVS(202)*XX(34))/(JVS(1059)) + XX(168) = (X(168)-JVS(203)*XX(34))/(JVS(1064)) + XX(169) = (X(169)-JVS(387)*XX(36))/(JVS(1071)) + XX(170) = (X(170)-JVS(292)*XX(35)-JVS(388)*XX(36)-JVS(458)*XX(40))/(JVS(1081)) + XX(171) = (X(171)-JVS(134)*XX(24)-JVS(389)*XX(36)-JVS(747)*XX(116)-JVS(825)*XX(129))/(JVS(1085)) + XX(172) = (X(172)-JVS(390)*XX(36))/(JVS(1090)) + XX(173) = (X(173)-JVS(293)*XX(35))/(JVS(1100)) + XX(174) = (X(174)-JVS(163)*XX(31)-JVS(391)*XX(36))/(JVS(1119)) + XX(175) = (X(175)-JVS(27)*XX(7)-JVS(294)*XX(35)-JVS(392)*XX(36)-JVS(649)*XX(98))/(JVS(1133)) + XX(176) = (X(176)-JVS(295)*XX(35)-JVS(816)*XX(128)-JVS(860)*XX(135))/(JVS(1144)) + XX(177) = (X(177)-JVS(204)*XX(34)-JVS(296)*XX(35))/(JVS(1151)) + XX(178) = (X(178)-JVS(297)*XX(35)-JVS(477)*XX(45)-JVS(854)*XX(134))/(JVS(1162)) + XX(179) = (X(179)-JVS(205)*XX(34)-JVS(298)*XX(35)-JVS(537)*XX(68)-JVS(709)*XX(108)-JVS(767)*XX(120))/(JVS(1174)) + XX(180) = (X(180)-JVS(28)*XX(7)-JVS(206)*XX(34)-JVS(299)*XX(35)-JVS(545)*XX(70)-JVS(642)*XX(97)-JVS(702)*XX(107)& + &-JVS(1018)*XX(160))/(JVS(1184)) + XX(181) = (X(181)-JVS(300)*XX(35)-JVS(650)*XX(98))/(JVS(1191)) + XX(182) = (X(182)-JVS(207)*XX(34)-JVS(896)*XX(141)-JVS(1044)*XX(164)-JVS(1091)*XX(172))/(JVS(1199)) + XX(183) = (X(183)-JVS(208)*XX(34)-JVS(897)*XX(141)-JVS(1045)*XX(164))/(JVS(1206)) + XX(184) = (X(184)-JVS(29)*XX(7)-JVS(209)*XX(34)-JVS(301)*XX(35))/(JVS(1217)) + XX(185) = (X(185)-JVS(393)*XX(36))/(JVS(1229)) + XX(186) = (X(186)-JVS(394)*XX(36)-JVS(714)*XX(109)-JVS(772)*XX(121)-JVS(916)*XX(144)-JVS(980)*XX(156)-JVS(1037)& + &*XX(163)-JVS(1120)*XX(174)-JVS(1230)*XX(185))/(JVS(1243)) + XX(187) = (X(187)-JVS(210)*XX(34)-JVS(898)*XX(141)-JVS(1046)*XX(164))/(JVS(1250)) + XX(188) = (X(188)-JVS(395)*XX(36)-JVS(715)*XX(109)-JVS(789)*XX(123)-JVS(922)*XX(145)-JVS(981)*XX(156)-JVS(1038)& + &*XX(163)-JVS(1121)*XX(174)-JVS(1231)*XX(185))/(JVS(1257)) + XX(189) = (X(189)-JVS(211)*XX(34)-JVS(1092)*XX(172)-JVS(1134)*XX(175))/(JVS(1263)) + XX(190) = (X(190)-JVS(302)*XX(35)-JVS(451)*XX(39)-JVS(1152)*XX(177))/(JVS(1268)) + XX(191) = (X(191)-JVS(212)*XX(34)-JVS(303)*XX(35)-JVS(703)*XX(107)-JVS(1019)*XX(160))/(JVS(1280)) + XX(192) = (X(192)-JVS(30)*XX(7)-JVS(396)*XX(36))/(JVS(1290)) + XX(193) = (X(193)-JVS(213)*XX(34))/(JVS(1303)) + XX(194) = (X(194)-JVS(214)*XX(34)-JVS(397)*XX(36)-JVS(1072)*XX(169))/(JVS(1324)) + XX(195) = (X(195)-JVS(31)*XX(7)-JVS(165)*XX(32)-JVS(215)*XX(34)-JVS(435)*XX(37)-JVS(442)*XX(38)-JVS(459)*XX(40)& + &-JVS(779)*XX(122))/(JVS(1332)) + XX(196) = X(196)/JVS(1343) + XX(197) = (X(197)-JVS(216)*XX(34))/(JVS(1357)) + XX(198) = X(198)/JVS(1376) + XX(199) = (X(199)-JVS(304)*XX(35)-JVS(478)*XX(45)-JVS(855)*XX(134))/(JVS(1392)) + XX(200) = (X(200)-JVS(305)*XX(35)-JVS(398)*XX(36)-JVS(651)*XX(98))/(JVS(1407)) + XX(201) = (X(201)-JVS(32)*XX(7)-JVS(217)*XX(34)-JVS(733)*XX(113)-JVS(991)*XX(158)-JVS(1377)*XX(198))/(JVS(1420)) + XX(202) = (X(202)-JVS(306)*XX(35)-JVS(652)*XX(98))/(JVS(1428)) + XX(203) = (X(203)-JVS(76)*XX(9)-JVS(84)*XX(10)-JVS(307)*XX(35)-JVS(555)*XX(73)-JVS(660)*XX(99)-JVS(909)*XX(143)& + &-JVS(1304)*XX(193))/(JVS(1435)) + XX(204) = (X(204)-JVS(218)*XX(34)-JVS(1073)*XX(169))/(JVS(1444)) + XX(205) = (X(205)-JVS(219)*XX(34)-JVS(399)*XX(36)-JVS(1408)*XX(200))/(JVS(1455)) + XX(206) = (X(206)-JVS(400)*XX(36)-JVS(752)*XX(117)-JVS(842)*XX(132)-JVS(1074)*XX(169)-JVS(1232)*XX(185))/(JVS(1469)) + XX(207) = (X(207)-JVS(33)*XX(7)-JVS(220)*XX(34)-JVS(401)*XX(36)-JVS(874)*XX(136)-JVS(965)*XX(153))/(JVS(1481)) + XX(208) = (X(208)-JVS(34)*XX(7)-JVS(308)*XX(35)-JVS(402)*XX(36))/(JVS(1493)) + XX(209) = (X(209)-JVS(35)*XX(7)-JVS(221)*XX(34)-JVS(729)*XX(112)-JVS(992)*XX(158))/(JVS(1507)) + XX(210) = (X(210)-JVS(10)*XX(5)-JVS(36)*XX(7)-JVS(222)*XX(34)-JVS(403)*XX(36)-JVS(1009)*XX(159)-JVS(1305)*XX(193))& + &/(JVS(1522)) + XX(211) = (X(211)-JVS(37)*XX(7))/(JVS(1543)) + XX(212) = (X(212)-JVS(171)*XX(33)-JVS(309)*XX(35)-JVS(443)*XX(38)-JVS(780)*XX(122))/(JVS(1569)) + XX(213) = (X(213)-JVS(310)*XX(35)-JVS(404)*XX(36)-JVS(653)*XX(98))/(JVS(1591)) + XX(214) = (X(214)-JVS(311)*XX(35)-JVS(405)*XX(36)-JVS(654)*XX(98)-JVS(748)*XX(116)-JVS(1065)*XX(168)-JVS(1122)*XX(174)& + &-JVS(1291)*XX(192)-JVS(1325)*XX(194)-JVS(1470)*XX(206)-JVS(1494)*XX(208)-JVS(1592)*XX(213))/(JVS(1604)) + XX(215) = (X(215)-JVS(38)*XX(7)-JVS(223)*XX(34)-JVS(312)*XX(35)-JVS(1163)*XX(178)-JVS(1393)*XX(199))/(JVS(1613)) + XX(216) = (X(216)-JVS(224)*XX(34)-JVS(313)*XX(35)-JVS(993)*XX(158)-JVS(1164)*XX(178)-JVS(1394)*XX(199)-JVS(1614)& + &*XX(215))/(JVS(1626)) + XX(217) = (X(217)-JVS(39)*XX(7)-JVS(225)*XX(34)-JVS(638)*XX(96)-JVS(719)*XX(110)-JVS(848)*XX(133))/(JVS(1635)) + XX(218) = X(218)/JVS(1649) + XX(219) = (X(219)-JVS(40)*XX(7))/(JVS(1677)) + XX(220) = (X(220)-JVS(314)*XX(35)-JVS(406)*XX(36)-JVS(655)*XX(98)-JVS(749)*XX(116)-JVS(1054)*XX(166)-JVS(1123)*XX(174)& + &-JVS(1135)*XX(175)-JVS(1292)*XX(192)-JVS(1326)*XX(194)-JVS(1378)*XX(198)-JVS(1471)*XX(206)-JVS(1593)*XX(213))& + &/(JVS(1700)) + XX(221) = (X(221)-JVS(407)*XX(36))/(JVS(1710)) + XX(222) = (X(222)-JVS(226)*XX(34)-JVS(1093)*XX(172)-JVS(1136)*XX(175)-JVS(1344)*XX(196)-JVS(1379)*XX(198)-JVS(1495)& + &*XX(208)-JVS(1594)*XX(213))/(JVS(1724)) + XX(223) = (X(223)-JVS(156)*XX(30)-JVS(315)*XX(35)-JVS(408)*XX(36))/(JVS(1753)) + XX(224) = (X(224)-JVS(41)*XX(7)-JVS(99)*XX(14)-JVS(102)*XX(15)-JVS(316)*XX(35)-JVS(409)*XX(36)-JVS(460)*XX(40)& + &-JVS(812)*XX(127)-JVS(826)*XX(129)-JVS(1094)*XX(172)-JVS(1124)*XX(174)-JVS(1244)*XX(186)-JVS(1258)*XX(188)& + &-JVS(1345)*XX(196)-JVS(1409)*XX(200)-JVS(1445)*XX(204)-JVS(1456)*XX(205)-JVS(1544)*XX(211)-JVS(1570)*XX(212)& + &-JVS(1754)*XX(223))/(JVS(1773)) + XX(225) = (X(225)-JVS(227)*XX(34)-JVS(317)*XX(35)-JVS(762)*XX(119)-JVS(994)*XX(158)-JVS(1395)*XX(199)-JVS(1650)& + &*XX(218))/(JVS(1779)) + XX(226) = (X(226)-JVS(318)*XX(35))/(JVS(1795)) + XX(227) = (X(227)-JVS(319)*XX(35)-JVS(474)*XX(44)-JVS(487)*XX(49)-JVS(622)*XX(92)-JVS(661)*XX(99)-JVS(724)*XX(111))& + &/(JVS(1810)) + XX(228) = (X(228)-JVS(228)*XX(34)-JVS(410)*XX(36)-JVS(753)*XX(117)-JVS(798)*XX(125)-JVS(982)*XX(156)-JVS(1075)*XX(169)& + &-JVS(1233)*XX(185)-JVS(1472)*XX(206)-JVS(1595)*XX(213)-JVS(1755)*XX(223))/(JVS(1831)) + XX(229) = (X(229)-JVS(229)*XX(34)-JVS(411)*XX(36)-JVS(799)*XX(125)-JVS(843)*XX(132)-JVS(983)*XX(156)-JVS(1076)*XX(169)& + &-JVS(1234)*XX(185)-JVS(1473)*XX(206)-JVS(1596)*XX(213)-JVS(1756)*XX(223)-JVS(1832)*XX(228))/(JVS(1852)) + XX(230) = (X(230)-JVS(1077)*XX(169)-JVS(1235)*XX(185)-JVS(1757)*XX(223))/(JVS(1878)) + XX(231) = (X(231)-JVS(42)*XX(7)-JVS(412)*XX(36)-JVS(1346)*XX(196))/(JVS(1912)) + XX(232) = (X(232)-JVS(230)*XX(34)-JVS(1137)*XX(175)-JVS(1380)*XX(198)-JVS(1496)*XX(208))/(JVS(1931)) + XX(233) = (X(233)-JVS(157)*XX(30)-JVS(320)*XX(35)-JVS(413)*XX(36))/(JVS(1978)) + XX(234) = (X(234)-JVS(43)*XX(7)-JVS(166)*XX(32)-JVS(231)*XX(34)-JVS(321)*XX(35)-JVS(436)*XX(37)-JVS(444)*XX(38)& + &-JVS(461)*XX(40)-JVS(592)*XX(85)-JVS(781)*XX(122)-JVS(1545)*XX(211)-JVS(1571)*XX(212))/(JVS(2005)) + XX(235) = (X(235)-JVS(232)*XX(34)-JVS(322)*XX(35)-JVS(861)*XX(135)-JVS(1306)*XX(193)-JVS(1358)*XX(197))/(JVS(2019)) + XX(236) = (X(236)-JVS(44)*XX(7)-JVS(414)*XX(36)-JVS(1546)*XX(211)-JVS(1651)*XX(218)-JVS(1758)*XX(223))/(JVS(2057)) + XX(237) = (X(237)-JVS(45)*XX(7)-JVS(233)*XX(34)-JVS(615)*XX(91)-JVS(630)*XX(94)-JVS(995)*XX(158)-JVS(1652)*XX(218)& + &-JVS(1678)*XX(219))/(JVS(2080)) + XX(238) = (X(238)-JVS(46)*XX(7)-JVS(234)*XX(34)-JVS(323)*XX(35)-JVS(763)*XX(119)-JVS(996)*XX(158)-JVS(1165)*XX(178)& + &-JVS(1396)*XX(199)-JVS(1547)*XX(211)-JVS(1653)*XX(218)-JVS(1711)*XX(221)-JVS(1796)*XX(226)-JVS(2081)*XX(237))& + &/(JVS(2098)) + XX(239) = (X(239)-JVS(47)*XX(7)-JVS(235)*XX(34)-JVS(720)*XX(110)-JVS(849)*XX(133)-JVS(1654)*XX(218)-JVS(1679)*XX(219))& + &/(JVS(2112)) + XX(240) = (X(240)-JVS(415)*XX(36)-JVS(716)*XX(109)-JVS(917)*XX(144)-JVS(923)*XX(145)-JVS(949)*XX(150)-JVS(984)*XX(156)& + &-JVS(1039)*XX(163)-JVS(1125)*XX(174)-JVS(1138)*XX(175)-JVS(1236)*XX(185)-JVS(1381)*XX(198)-JVS(1410)*XX(200)& + &-JVS(1446)*XX(204)-JVS(1457)*XX(205)-JVS(1497)*XX(208)-JVS(1548)*XX(211)-JVS(1759)*XX(223)-JVS(1879)*XX(230)& + &-JVS(1913)*XX(231)-JVS(1979)*XX(233)-JVS(2058)*XX(236))/(JVS(2131)) + XX(241) = (X(241)-JVS(236)*XX(34)-JVS(324)*XX(35)-JVS(656)*XX(98)-JVS(688)*XX(104)-JVS(1237)*XX(185)-JVS(1498)*XX(208)& + &-JVS(1549)*XX(211)-JVS(1760)*XX(223)-JVS(1980)*XX(233)-JVS(2059)*XX(236))/(JVS(2154)) + XX(242) = (X(242)-JVS(325)*XX(35)-JVS(657)*XX(98)-JVS(950)*XX(150)-JVS(1040)*XX(163)-JVS(1095)*XX(172)-JVS(1238)& + &*XX(185)-JVS(1347)*XX(196)-JVS(1382)*XX(198)-JVS(1411)*XX(200)-JVS(1499)*XX(208)-JVS(1550)*XX(211)-JVS(1597)& + &*XX(213)-JVS(1761)*XX(223)-JVS(1880)*XX(230)-JVS(1914)*XX(231)-JVS(1932)*XX(232)-JVS(1981)*XX(233)-JVS(2060)& + &*XX(236)-JVS(2155)*XX(241))/(JVS(2185)) + XX(243) = (X(243)-JVS(326)*XX(35)-JVS(658)*XX(98)-JVS(803)*XX(126)-JVS(928)*XX(146)-JVS(1383)*XX(198)-JVS(1500)& + &*XX(208)-JVS(1933)*XX(232)-JVS(1982)*XX(233)-JVS(2061)*XX(236)-JVS(2132)*XX(240)-JVS(2156)*XX(241)-JVS(2186)& + &*XX(242))/(JVS(2208)) + XX(244) = (X(244)-JVS(237)*XX(34)-JVS(416)*XX(36)-JVS(813)*XX(127)-JVS(892)*XX(140)-JVS(960)*XX(152)-JVS(1033)*XX(162)& + &-JVS(1050)*XX(165)-JVS(1126)*XX(174)-JVS(1207)*XX(183)-JVS(1251)*XX(187)-JVS(1259)*XX(188)-JVS(1293)*XX(192)& + &-JVS(1327)*XX(194)-JVS(1348)*XX(196)-JVS(1412)*XX(200)-JVS(1458)*XX(205)-JVS(1474)*XX(206)-JVS(1551)*XX(211)& + &-JVS(1598)*XX(213)-JVS(1701)*XX(220)-JVS(1762)*XX(223)-JVS(1833)*XX(228)-JVS(1853)*XX(229)-JVS(1881)*XX(230)& + &-JVS(1915)*XX(231)-JVS(1983)*XX(233)-JVS(2062)*XX(236)-JVS(2133)*XX(240)-JVS(2157)*XX(241)-JVS(2187)*XX(242)& + &-JVS(2209)*XX(243))/(JVS(2223)) + XX(245) = (X(245)-JVS(238)*XX(34)-JVS(417)*XX(36)-JVS(827)*XX(129)-JVS(888)*XX(139)-JVS(987)*XX(157)-JVS(1060)*XX(167)& + &-JVS(1086)*XX(171)-JVS(1096)*XX(172)-JVS(1127)*XX(174)-JVS(1200)*XX(182)-JVS(1245)*XX(186)-JVS(1252)*XX(187)& + &-JVS(1294)*XX(192)-JVS(1328)*XX(194)-JVS(1413)*XX(200)-JVS(1447)*XX(204)-JVS(1475)*XX(206)-JVS(1552)*XX(211)& + &-JVS(1599)*XX(213)-JVS(1605)*XX(214)-JVS(1763)*XX(223)-JVS(1834)*XX(228)-JVS(1854)*XX(229)-JVS(1882)*XX(230)& + &-JVS(1916)*XX(231)-JVS(1984)*XX(233)-JVS(2063)*XX(236)-JVS(2134)*XX(240)-JVS(2158)*XX(241)-JVS(2188)*XX(242)& + &-JVS(2210)*XX(243)-JVS(2224)*XX(244))/(JVS(2238)) + XX(246) = (X(246)-JVS(48)*XX(7)-JVS(239)*XX(34)-JVS(327)*XX(35)-JVS(804)*XX(126)-JVS(955)*XX(151)-JVS(1128)*XX(174)& + &-JVS(1192)*XX(181)-JVS(1264)*XX(189)-JVS(1349)*XX(196)-JVS(1384)*XX(198)-JVS(1501)*XX(208)-JVS(1600)*XX(213)& + &-JVS(1606)*XX(214)-JVS(1655)*XX(218)-JVS(1702)*XX(220)-JVS(1725)*XX(222)-JVS(1764)*XX(223)-JVS(1835)*XX(228)& + &-JVS(1855)*XX(229)-JVS(1883)*XX(230)-JVS(1917)*XX(231)-JVS(1934)*XX(232)-JVS(1985)*XX(233)-JVS(2064)*XX(236)& + &-JVS(2135)*XX(240)-JVS(2159)*XX(241)-JVS(2189)*XX(242)-JVS(2211)*XX(243)-JVS(2225)*XX(244)-JVS(2239)*XX(245))& + &/(JVS(2249)) + XX(247) = (X(247)-JVS(49)*XX(7)-JVS(240)*XX(34)-JVS(328)*XX(35)-JVS(805)*XX(126)-JVS(1193)*XX(181)-JVS(1656)*XX(218)& + &-JVS(1703)*XX(220)-JVS(1726)*XX(222)-JVS(1765)*XX(223)-JVS(1836)*XX(228)-JVS(1856)*XX(229)-JVS(1884)*XX(230)& + &-JVS(1918)*XX(231)-JVS(1935)*XX(232)-JVS(1986)*XX(233)-JVS(2065)*XX(236)-JVS(2136)*XX(240)-JVS(2160)*XX(241)& + &-JVS(2190)*XX(242)-JVS(2212)*XX(243)-JVS(2250)*XX(246))/(JVS(2262)) + XX(248) = (X(248)-JVS(329)*XX(35)-JVS(418)*XX(36)-JVS(462)*XX(40)-JVS(689)*XX(104)-JVS(1448)*XX(204)-JVS(1572)*XX(212)& + &-JVS(1885)*XX(230)-JVS(1987)*XX(233)-JVS(2006)*XX(234)-JVS(2066)*XX(236)-JVS(2161)*XX(241))/(JVS(2286)) + XX(249) = (X(249)-JVS(50)*XX(7)-JVS(241)*XX(34)-JVS(330)*XX(35)-JVS(966)*XX(153)-JVS(1139)*XX(175)-JVS(1385)*XX(198)& + &-JVS(1414)*XX(200)-JVS(1482)*XX(207)-JVS(1553)*XX(211)-JVS(1988)*XX(233))/(JVS(2305)) + XX(250) = (X(250)-JVS(51)*XX(7)-JVS(419)*XX(36)-JVS(1554)*XX(211)-JVS(1680)*XX(219)-JVS(1989)*XX(233))/(JVS(2359)) + XX(251) = (X(251)-JVS(331)*XX(35)-JVS(420)*XX(36)-JVS(1350)*XX(196)-JVS(1386)*XX(198)-JVS(1459)*XX(205)-JVS(1483)& + &*XX(207)-JVS(1555)*XX(211)-JVS(1919)*XX(231)-JVS(1990)*XX(233)-JVS(2007)*XX(234)-JVS(2306)*XX(249)-JVS(2360)& + &*XX(250))/(JVS(2388)) + XX(252) = (X(252)-JVS(52)*XX(7)-JVS(242)*XX(34)-JVS(1351)*XX(196)-JVS(1657)*XX(218)-JVS(1681)*XX(219)-JVS(1991)& + &*XX(233)-JVS(2361)*XX(250))/(JVS(2411)) + XX(253) = (X(253)-JVS(53)*XX(7)-JVS(332)*XX(35)-JVS(421)*XX(36)-JVS(1269)*XX(190)-JVS(1333)*XX(195)-JVS(1421)*XX(201)& + &-JVS(1508)*XX(209)-JVS(1573)*XX(212)-JVS(1658)*XX(218)-JVS(1682)*XX(219)-JVS(1992)*XX(233)-JVS(2008)*XX(234)& + &-JVS(2362)*XX(250))/(JVS(2429)) + XX(254) = (X(254)-JVS(54)*XX(7)-JVS(243)*XX(34)-JVS(997)*XX(158)-JVS(1352)*XX(196)-JVS(1429)*XX(202)-JVS(1659)*XX(218)& + &-JVS(1683)*XX(219)-JVS(1712)*XX(221)-JVS(1797)*XX(226)-JVS(1993)*XX(233)-JVS(2082)*XX(237)-JVS(2113)*XX(239)& + &-JVS(2412)*XX(252))/(JVS(2444)) + XX(255) = (X(255)-JVS(55)*XX(7)-JVS(244)*XX(34)-JVS(489)*XX(50)-JVS(697)*XX(106)-JVS(2083)*XX(237)-JVS(2114)*XX(239))& + &/(JVS(2463)) + XX(256) = (X(256)-JVS(56)*XX(7)-JVS(245)*XX(34)-JVS(626)*XX(93)-JVS(998)*XX(158)-JVS(1430)*XX(202)-JVS(1660)*XX(218)& + &-JVS(1684)*XX(219)-JVS(1713)*XX(221)-JVS(1798)*XX(226)-JVS(2084)*XX(237)-JVS(2115)*XX(239)-JVS(2413)*XX(252)& + &-JVS(2445)*XX(254)-JVS(2464)*XX(255))/(JVS(2482)) + XX(257) = (X(257)-JVS(57)*XX(7)-JVS(246)*XX(34)-JVS(999)*XX(158)-JVS(1431)*XX(202)-JVS(1661)*XX(218)-JVS(1685)*XX(219)& + &-JVS(1714)*XX(221)-JVS(1799)*XX(226)-JVS(2085)*XX(237)-JVS(2116)*XX(239)-JVS(2414)*XX(252)-JVS(2446)*XX(254)& + &-JVS(2465)*XX(255)-JVS(2483)*XX(256))/(JVS(2496)) + XX(258) = (X(258)-JVS(58)*XX(7)-JVS(247)*XX(34)-JVS(600)*XX(87)-JVS(634)*XX(95)-JVS(1000)*XX(158)-JVS(1662)*XX(218)& + &-JVS(1686)*XX(219)-JVS(1715)*XX(221)-JVS(2415)*XX(252))/(JVS(2515)) + XX(259) = (X(259)-JVS(333)*XX(35)-JVS(422)*XX(36)-JVS(2086)*XX(237)-JVS(2117)*XX(239)-JVS(2466)*XX(255)-JVS(2516)& + &*XX(258))/(JVS(2553)) + XX(260) = (X(260)-JVS(334)*XX(35)-JVS(445)*XX(38)-JVS(782)*XX(122)-JVS(817)*XX(128)-JVS(862)*XX(135))/(JVS(2566)) + XX(261) = (X(261)-JVS(59)*XX(7)-JVS(248)*XX(34)-JVS(534)*XX(67)-JVS(604)*XX(88)-JVS(806)*XX(126)-JVS(1166)*XX(178)& + &-JVS(1218)*XX(184)-JVS(1397)*XX(199)-JVS(1422)*XX(201)-JVS(1509)*XX(209)-JVS(1615)*XX(215)-JVS(1627)*XX(216)& + &-JVS(1636)*XX(217)-JVS(1663)*XX(218)-JVS(1687)*XX(219)-JVS(1716)*XX(221)-JVS(1780)*XX(225)-JVS(1800)*XX(226)& + &-JVS(1936)*XX(232)-JVS(1994)*XX(233)-JVS(2067)*XX(236)-JVS(2087)*XX(237)-JVS(2099)*XX(238)-JVS(2118)*XX(239)& + &-JVS(2137)*XX(240)-JVS(2162)*XX(241)-JVS(2191)*XX(242)-JVS(2213)*XX(243)-JVS(2251)*XX(246)-JVS(2263)*XX(247)& + &-JVS(2287)*XX(248)-JVS(2307)*XX(249)-JVS(2363)*XX(250)-JVS(2389)*XX(251)-JVS(2416)*XX(252)-JVS(2430)*XX(253)& + &-JVS(2447)*XX(254)-JVS(2467)*XX(255)-JVS(2484)*XX(256)-JVS(2497)*XX(257)-JVS(2517)*XX(258)-JVS(2554)*XX(259))& + &/(JVS(2644)) + XX(262) = (X(262)-JVS(249)*XX(34)-JVS(335)*XX(35)-JVS(863)*XX(135)-JVS(1359)*XX(197))/(JVS(2655)) + XX(263) = (X(263)-JVS(336)*XX(35)-JVS(423)*XX(36)-JVS(596)*XX(86)-JVS(783)*XX(122)-JVS(1153)*XX(177))/(JVS(2756)) + XX(264) = (X(264)-JVS(337)*XX(35)-JVS(424)*XX(36)-JVS(1270)*XX(190)-JVS(2645)*XX(261)-JVS(2757)*XX(263))/(JVS(2791)) + XX(265) = (X(265)-JVS(250)*XX(34)-JVS(519)*XX(62)-JVS(523)*XX(63)-JVS(883)*XX(138)-JVS(933)*XX(147)-JVS(1307)*XX(193))& + &/(JVS(2871)) + XX(266) = (X(266)-JVS(60)*XX(7)-JVS(251)*XX(34)-JVS(338)*XX(35)-JVS(425)*XX(36)-JVS(561)*XX(74)-JVS(608)*XX(89)& + &-JVS(681)*XX(103)-JVS(710)*XX(108)-JVS(768)*XX(120)-JVS(807)*XX(126)-JVS(850)*XX(133)-JVS(878)*XX(137)& + &-JVS(1001)*XX(158)-JVS(1020)*XX(160)-JVS(1140)*XX(175)-JVS(1167)*XX(178)-JVS(1175)*XX(179)-JVS(1185)*XX(180)& + &-JVS(1194)*XX(181)-JVS(1219)*XX(184)-JVS(1281)*XX(191)-JVS(1295)*XX(192)-JVS(1360)*XX(197)-JVS(1387)*XX(198)& + &-JVS(1398)*XX(199)-JVS(1423)*XX(201)-JVS(1510)*XX(209)-JVS(1523)*XX(210)-JVS(1556)*XX(211)-JVS(1607)*XX(214)& + &-JVS(1616)*XX(215)-JVS(1628)*XX(216)-JVS(1637)*XX(217)-JVS(1664)*XX(218)-JVS(1688)*XX(219)-JVS(1704)*XX(220)& + &-JVS(1717)*XX(221)-JVS(1727)*XX(222)-JVS(1766)*XX(223)-JVS(1781)*XX(225)-JVS(1801)*XX(226)-JVS(1837)*XX(228)& + &-JVS(1857)*XX(229)-JVS(1886)*XX(230)-JVS(1920)*XX(231)-JVS(1937)*XX(232)-JVS(1995)*XX(233)-JVS(2068)*XX(236)& + &-JVS(2088)*XX(237)-JVS(2100)*XX(238)-JVS(2119)*XX(239)-JVS(2138)*XX(240)-JVS(2163)*XX(241)-JVS(2192)*XX(242)& + &-JVS(2214)*XX(243)-JVS(2226)*XX(244)-JVS(2240)*XX(245)-JVS(2252)*XX(246)-JVS(2264)*XX(247)-JVS(2288)*XX(248)& + &-JVS(2308)*XX(249)-JVS(2364)*XX(250)-JVS(2390)*XX(251)-JVS(2417)*XX(252)-JVS(2431)*XX(253)-JVS(2448)*XX(254)& + &-JVS(2468)*XX(255)-JVS(2485)*XX(256)-JVS(2498)*XX(257)-JVS(2518)*XX(258)-JVS(2555)*XX(259)-JVS(2646)*XX(261)& + &-JVS(2758)*XX(263)-JVS(2792)*XX(264)-JVS(2872)*XX(265))/(JVS(2943)) + XX(267) = (X(267)-JVS(61)*XX(7)-JVS(437)*XX(37)-JVS(1334)*XX(195)-JVS(1574)*XX(212)-JVS(1689)*XX(219)-JVS(2009)& + &*XX(234)-JVS(2759)*XX(263)-JVS(2793)*XX(264)-JVS(2873)*XX(265)-JVS(2944)*XX(266))/(JVS(3044)) + XX(268) = (X(268)-JVS(77)*XX(9)-JVS(85)*XX(10)-JVS(339)*XX(35)-JVS(556)*XX(73)-JVS(662)*XX(99)-JVS(1811)*XX(227))& + &/(JVS(3061)) + XX(269) = (X(269)-JVS(511)*XX(60)-JVS(541)*XX(69)-JVS(910)*XX(143)-JVS(1436)*XX(203)-JVS(1812)*XX(227)-JVS(3062)& + &*XX(268))/(JVS(3091)) + XX(270) = (X(270)-JVS(78)*XX(9)-JVS(86)*XX(10)-JVS(340)*XX(35)-JVS(557)*XX(73)-JVS(663)*XX(99)-JVS(911)*XX(143)& + &-JVS(1813)*XX(227)-JVS(2874)*XX(265)-JVS(3063)*XX(268)-JVS(3092)*XX(269))/(JVS(3111)) + XX(271) = (X(271)-JVS(341)*XX(35)-JVS(446)*XX(38)-JVS(784)*XX(122)-JVS(864)*XX(135)-JVS(1361)*XX(197))/(JVS(3136)) + XX(272) = (X(272)-JVS(342)*XX(35)-JVS(452)*XX(39)-JVS(482)*XX(47)-JVS(484)*XX(48)-JVS(495)*XX(52)-JVS(497)*XX(53)& + &-JVS(499)*XX(54)-JVS(501)*XX(55)-JVS(503)*XX(56)-JVS(505)*XX(57)-JVS(509)*XX(59)-JVS(515)*XX(61)-JVS(549)& + &*XX(71)-JVS(570)*XX(77)-JVS(580)*XX(81)-JVS(583)*XX(82)-JVS(586)*XX(83)-JVS(589)*XX(84)-JVS(668)*XX(100)& + &-JVS(945)*XX(149)-JVS(1154)*XX(177)-JVS(1271)*XX(190)-JVS(1362)*XX(197)-JVS(2760)*XX(263)-JVS(2875)*XX(265)& + &-JVS(2945)*XX(266)-JVS(3045)*XX(267)-JVS(3137)*XX(271))/(JVS(3186)) + XX(273) = (X(273)-JVS(426)*XX(36)-JVS(492)*XX(51)-JVS(794)*XX(124)-JVS(818)*XX(128)-JVS(1028)*XX(161)-JVS(1145)& + &*XX(176)-JVS(1511)*XX(209)-JVS(1638)*XX(217)-JVS(1665)*XX(218)-JVS(1690)*XX(219)-JVS(1718)*XX(221)-JVS(2089)& + &*XX(237)-JVS(2120)*XX(239)-JVS(2365)*XX(250)-JVS(2418)*XX(252)-JVS(2432)*XX(253)-JVS(2519)*XX(258)-JVS(2556)& + &*XX(259)-JVS(2567)*XX(260)-JVS(2647)*XX(261)-JVS(2761)*XX(263)-JVS(2794)*XX(264)-JVS(2876)*XX(265)-JVS(2946)& + &*XX(266)-JVS(3046)*XX(267)-JVS(3138)*XX(271)-JVS(3187)*XX(272))/(JVS(3243)) + XX(274) = (X(274)-JVS(343)*XX(35)-JVS(623)*XX(92)-JVS(682)*XX(103)-JVS(725)*XX(111)-JVS(819)*XX(128)-JVS(865)*XX(135)& + &-JVS(1146)*XX(176)-JVS(1363)*XX(197)-JVS(1814)*XX(227)-JVS(2568)*XX(260)-JVS(2877)*XX(265)-JVS(3064)*XX(268)& + &-JVS(3093)*XX(269)-JVS(3112)*XX(270)-JVS(3139)*XX(271)-JVS(3188)*XX(272)-JVS(3244)*XX(273))/(JVS(3276)) + XX(275) = (X(275)-JVS(344)*XX(35)-JVS(866)*XX(135)-JVS(884)*XX(138)-JVS(934)*XX(147)-JVS(1101)*XX(173)-JVS(1147)& + &*XX(176)-JVS(1155)*XX(177)-JVS(1308)*XX(193)-JVS(1364)*XX(197)-JVS(2020)*XX(235)-JVS(2569)*XX(260)-JVS(2656)& + &*XX(262)-JVS(2878)*XX(265)-JVS(3140)*XX(271)-JVS(3189)*XX(272)-JVS(3245)*XX(273)-JVS(3277)*XX(274))& + &/(JVS(3354)) + XX(276) = (X(276)-JVS(152)*XX(29)-JVS(167)*XX(32)-JVS(172)*XX(33)-JVS(345)*XX(35)-JVS(447)*XX(38)-JVS(597)*XX(86)& + &-JVS(785)*XX(122)-JVS(885)*XX(138)-JVS(935)*XX(147)-JVS(1309)*XX(193)-JVS(1335)*XX(195)-JVS(1575)*XX(212)& + &-JVS(1691)*XX(219)-JVS(2010)*XX(234)-JVS(2570)*XX(260)-JVS(2762)*XX(263)-JVS(2795)*XX(264)-JVS(2879)*XX(265)& + &-JVS(2947)*XX(266)-JVS(3047)*XX(267)-JVS(3141)*XX(271)-JVS(3190)*XX(272)-JVS(3246)*XX(273)-JVS(3278)*XX(274)& + &-JVS(3355)*XX(275))/(JVS(3397)) + XX(277) = (X(277)-JVS(346)*XX(35)-JVS(558)*XX(73)-JVS(820)*XX(128)-JVS(867)*XX(135)-JVS(1310)*XX(193)-JVS(1437)& + &*XX(203)-JVS(2021)*XX(235)-JVS(2571)*XX(260)-JVS(2657)*XX(262)-JVS(2880)*XX(265)-JVS(3065)*XX(268)-JVS(3094)& + &*XX(269)-JVS(3113)*XX(270)-JVS(3142)*XX(271)-JVS(3191)*XX(272)-JVS(3247)*XX(273)-JVS(3279)*XX(274)-JVS(3356)& + &*XX(275)-JVS(3398)*XX(276))/(JVS(3424)) + XX(278) = (X(278)-JVS(347)*XX(35)-JVS(463)*XX(40)-JVS(593)*XX(85)-JVS(1102)*XX(173)-JVS(1148)*XX(176)-JVS(1336)& + &*XX(195)-JVS(1557)*XX(211)-JVS(1576)*XX(212)-JVS(1692)*XX(219)-JVS(2011)*XX(234)-JVS(2022)*XX(235)-JVS(2572)& + &*XX(260)-JVS(2658)*XX(262)-JVS(2763)*XX(263)-JVS(2796)*XX(264)-JVS(2881)*XX(265)-JVS(2948)*XX(266)-JVS(3048)& + &*XX(267)-JVS(3066)*XX(268)-JVS(3095)*XX(269)-JVS(3114)*XX(270)-JVS(3143)*XX(271)-JVS(3192)*XX(272)-JVS(3248)& + &*XX(273)-JVS(3280)*XX(274)-JVS(3357)*XX(275)-JVS(3399)*XX(276)-JVS(3425)*XX(277))/(JVS(3513)) + XX(279) = (X(279)-JVS(62)*XX(7)-JVS(92)*XX(12)-JVS(95)*XX(13)-JVS(109)*XX(17)-JVS(112)*XX(18)-JVS(122)*XX(21)-JVS(125)& + &*XX(22)-JVS(141)*XX(26)-JVS(144)*XX(27)-JVS(252)*XX(34)-JVS(427)*XX(36)-JVS(512)*XX(60)-JVS(528)*XX(65)& + &-JVS(538)*XX(68)-JVS(601)*XX(87)-JVS(609)*XX(89)-JVS(616)*XX(91)-JVS(624)*XX(92)-JVS(639)*XX(96)-JVS(711)& + &*XX(108)-JVS(754)*XX(117)-JVS(773)*XX(121)-JVS(790)*XX(123)-JVS(808)*XX(126)-JVS(844)*XX(132)-JVS(889)& + &*XX(139)-JVS(893)*XX(140)-JVS(912)*XX(143)-JVS(918)*XX(144)-JVS(924)*XX(145)-JVS(929)*XX(146)-JVS(951)& + &*XX(150)-JVS(961)*XX(152)-JVS(1021)*XX(160)-JVS(1055)*XX(166)-JVS(1061)*XX(167)-JVS(1066)*XX(168)-JVS(1078)& + &*XX(169)-JVS(1097)*XX(172)-JVS(1129)*XX(174)-JVS(1141)*XX(175)-JVS(1168)*XX(178)-JVS(1176)*XX(179)-JVS(1186)& + &*XX(180)-JVS(1201)*XX(182)-JVS(1208)*XX(183)-JVS(1220)*XX(184)-JVS(1239)*XX(185)-JVS(1253)*XX(187)-JVS(1265)& + &*XX(189)-JVS(1282)*XX(191)-JVS(1296)*XX(192)-JVS(1311)*XX(193)-JVS(1329)*XX(194)-JVS(1337)*XX(195)-JVS(1353)& + &*XX(196)-JVS(1388)*XX(198)-JVS(1399)*XX(199)-JVS(1415)*XX(200)-JVS(1424)*XX(201)-JVS(1432)*XX(202)-JVS(1449)& + &*XX(204)-JVS(1460)*XX(205)-JVS(1476)*XX(206)-JVS(1484)*XX(207)-JVS(1502)*XX(208)-JVS(1512)*XX(209)-JVS(1524)& + &*XX(210)-JVS(1558)*XX(211)-JVS(1577)*XX(212)-JVS(1601)*XX(213)-JVS(1608)*XX(214)-JVS(1617)*XX(215)-JVS(1629)& + &*XX(216)-JVS(1639)*XX(217)-JVS(1666)*XX(218)-JVS(1693)*XX(219)-JVS(1705)*XX(220)-JVS(1719)*XX(221)-JVS(1728)& + &*XX(222)-JVS(1767)*XX(223)-JVS(1782)*XX(225)-JVS(1802)*XX(226)-JVS(1815)*XX(227)-JVS(1838)*XX(228)-JVS(1858)& + &*XX(229)-JVS(1887)*XX(230)-JVS(1921)*XX(231)-JVS(1938)*XX(232)-JVS(1996)*XX(233)-JVS(2012)*XX(234)-JVS(2069)& + &*XX(236)-JVS(2090)*XX(237)-JVS(2101)*XX(238)-JVS(2121)*XX(239)-JVS(2139)*XX(240)-JVS(2164)*XX(241)-JVS(2193)& + &*XX(242)-JVS(2215)*XX(243)-JVS(2227)*XX(244)-JVS(2241)*XX(245)-JVS(2253)*XX(246)-JVS(2265)*XX(247)-JVS(2289)& + &*XX(248)-JVS(2309)*XX(249)-JVS(2366)*XX(250)-JVS(2391)*XX(251)-JVS(2419)*XX(252)-JVS(2433)*XX(253)-JVS(2449)& + &*XX(254)-JVS(2469)*XX(255)-JVS(2486)*XX(256)-JVS(2499)*XX(257)-JVS(2520)*XX(258)-JVS(2557)*XX(259)-JVS(2648)& + &*XX(261)-JVS(2764)*XX(263)-JVS(2797)*XX(264)-JVS(2882)*XX(265)-JVS(2949)*XX(266)-JVS(3049)*XX(267)-JVS(3067)& + &*XX(268)-JVS(3096)*XX(269)-JVS(3115)*XX(270)-JVS(3144)*XX(271)-JVS(3193)*XX(272)-JVS(3249)*XX(273)-JVS(3281)& + &*XX(274)-JVS(3358)*XX(275)-JVS(3400)*XX(276)-JVS(3426)*XX(277)-JVS(3514)*XX(278))/(JVS(3611)) + XX(280) = (X(280)-JVS(348)*XX(35)-JVS(664)*XX(99)-JVS(868)*XX(135)-JVS(1103)*XX(173)-JVS(1312)*XX(193)-JVS(1365)& + &*XX(197)-JVS(1438)*XX(203)-JVS(2023)*XX(235)-JVS(2573)*XX(260)-JVS(2659)*XX(262)-JVS(2883)*XX(265)-JVS(3068)& + &*XX(268)-JVS(3097)*XX(269)-JVS(3116)*XX(270)-JVS(3145)*XX(271)-JVS(3194)*XX(272)-JVS(3250)*XX(273)-JVS(3282)& + &*XX(274)-JVS(3359)*XX(275)-JVS(3401)*XX(276)-JVS(3427)*XX(277)-JVS(3515)*XX(278)-JVS(3612)*XX(279))& + &/(JVS(3645)) + XX(281) = (X(281)-JVS(63)*XX(7)-JVS(103)*XX(15)-JVS(349)*XX(35)-JVS(428)*XX(36)-JVS(520)*XX(62)-JVS(524)*XX(63)& + &-JVS(612)*XX(90)-JVS(673)*XX(101)-JVS(712)*XX(108)-JVS(737)*XX(114)-JVS(743)*XX(115)-JVS(759)*XX(118)& + &-JVS(809)*XX(126)-JVS(856)*XX(134)-JVS(904)*XX(142)-JVS(913)*XX(143)-JVS(941)*XX(148)-JVS(970)*XX(154)& + &-JVS(974)*XX(155)-JVS(1010)*XX(159)-JVS(1022)*XX(160)-JVS(1029)*XX(161)-JVS(1082)*XX(170)-JVS(1104)*XX(173)& + &-JVS(1169)*XX(178)-JVS(1177)*XX(179)-JVS(1187)*XX(180)-JVS(1221)*XX(184)-JVS(1283)*XX(191)-JVS(1313)*XX(193)& + &-JVS(1389)*XX(198)-JVS(1400)*XX(199)-JVS(1425)*XX(201)-JVS(1485)*XX(207)-JVS(1503)*XX(208)-JVS(1525)*XX(210)& + &-JVS(1559)*XX(211)-JVS(1578)*XX(212)-JVS(1618)*XX(215)-JVS(1630)*XX(216)-JVS(1640)*XX(217)-JVS(1667)*XX(218)& + &-JVS(1694)*XX(219)-JVS(1768)*XX(223)-JVS(1774)*XX(224)-JVS(1783)*XX(225)-JVS(1803)*XX(226)-JVS(1888)*XX(230)& + &-JVS(1922)*XX(231)-JVS(1939)*XX(232)-JVS(1997)*XX(233)-JVS(2013)*XX(234)-JVS(2024)*XX(235)-JVS(2070)*XX(236)& + &-JVS(2091)*XX(237)-JVS(2102)*XX(238)-JVS(2122)*XX(239)-JVS(2140)*XX(240)-JVS(2165)*XX(241)-JVS(2194)*XX(242)& + &-JVS(2216)*XX(243)-JVS(2228)*XX(244)-JVS(2242)*XX(245)-JVS(2254)*XX(246)-JVS(2266)*XX(247)-JVS(2290)*XX(248)& + &-JVS(2310)*XX(249)-JVS(2367)*XX(250)-JVS(2392)*XX(251)-JVS(2420)*XX(252)-JVS(2434)*XX(253)-JVS(2450)*XX(254)& + &-JVS(2470)*XX(255)-JVS(2487)*XX(256)-JVS(2500)*XX(257)-JVS(2521)*XX(258)-JVS(2558)*XX(259)-JVS(2649)*XX(261)& + &-JVS(2765)*XX(263)-JVS(2798)*XX(264)-JVS(2884)*XX(265)-JVS(2950)*XX(266)-JVS(3050)*XX(267)-JVS(3069)*XX(268)& + &-JVS(3098)*XX(269)-JVS(3117)*XX(270)-JVS(3146)*XX(271)-JVS(3195)*XX(272)-JVS(3251)*XX(273)-JVS(3283)*XX(274)& + &-JVS(3360)*XX(275)-JVS(3402)*XX(276)-JVS(3428)*XX(277)-JVS(3516)*XX(278)-JVS(3613)*XX(279)-JVS(3646)*XX(280))& + &/(JVS(3738)) + XX(282) = (X(282)-JVS(64)*XX(7)-JVS(153)*XX(29)-JVS(173)*XX(33)-JVS(350)*XX(35)-JVS(429)*XX(36)-JVS(448)*XX(38)& + &-JVS(464)*XX(40)-JVS(567)*XX(76)-JVS(690)*XX(104)-JVS(786)*XX(122)-JVS(857)*XX(134)-JVS(886)*XX(138)-JVS(905)& + &*XX(142)-JVS(936)*XX(147)-JVS(942)*XX(148)-JVS(971)*XX(154)-JVS(975)*XX(155)-JVS(1011)*XX(159)-JVS(1023)& + &*XX(160)-JVS(1083)*XX(170)-JVS(1156)*XX(177)-JVS(1178)*XX(179)-JVS(1222)*XX(184)-JVS(1272)*XX(190)-JVS(1284)& + &*XX(191)-JVS(1314)*XX(193)-JVS(1338)*XX(195)-JVS(1401)*XX(199)-JVS(1526)*XX(210)-JVS(1560)*XX(211)-JVS(1579)& + &*XX(212)-JVS(1619)*XX(215)-JVS(1631)*XX(216)-JVS(1668)*XX(218)-JVS(1695)*XX(219)-JVS(1769)*XX(223)-JVS(1775)& + &*XX(224)-JVS(1784)*XX(225)-JVS(1804)*XX(226)-JVS(1816)*XX(227)-JVS(1889)*XX(230)-JVS(1923)*XX(231)-JVS(1998)& + &*XX(233)-JVS(2014)*XX(234)-JVS(2071)*XX(236)-JVS(2092)*XX(237)-JVS(2103)*XX(238)-JVS(2123)*XX(239)-JVS(2166)& + &*XX(241)-JVS(2229)*XX(244)-JVS(2243)*XX(245)-JVS(2255)*XX(246)-JVS(2267)*XX(247)-JVS(2291)*XX(248)-JVS(2311)& + &*XX(249)-JVS(2368)*XX(250)-JVS(2393)*XX(251)-JVS(2421)*XX(252)-JVS(2435)*XX(253)-JVS(2451)*XX(254)-JVS(2471)& + &*XX(255)-JVS(2488)*XX(256)-JVS(2501)*XX(257)-JVS(2522)*XX(258)-JVS(2559)*XX(259)-JVS(2574)*XX(260)-JVS(2650)& + &*XX(261)-JVS(2766)*XX(263)-JVS(2799)*XX(264)-JVS(2885)*XX(265)-JVS(2951)*XX(266)-JVS(3051)*XX(267)-JVS(3070)& + &*XX(268)-JVS(3099)*XX(269)-JVS(3118)*XX(270)-JVS(3147)*XX(271)-JVS(3196)*XX(272)-JVS(3252)*XX(273)-JVS(3284)& + &*XX(274)-JVS(3361)*XX(275)-JVS(3403)*XX(276)-JVS(3429)*XX(277)-JVS(3517)*XX(278)-JVS(3614)*XX(279)-JVS(3647)& + &*XX(280)-JVS(3739)*XX(281))/(JVS(3798)) + XX(283) = (X(283)-JVS(351)*XX(35)-JVS(559)*XX(73)-JVS(821)*XX(128)-JVS(869)*XX(135)-JVS(1315)*XX(193)-JVS(1439)& + &*XX(203)-JVS(2025)*XX(235)-JVS(2575)*XX(260)-JVS(2660)*XX(262)-JVS(2886)*XX(265)-JVS(3071)*XX(268)-JVS(3100)& + &*XX(269)-JVS(3119)*XX(270)-JVS(3148)*XX(271)-JVS(3197)*XX(272)-JVS(3253)*XX(273)-JVS(3285)*XX(274)-JVS(3362)& + &*XX(275)-JVS(3404)*XX(276)-JVS(3430)*XX(277)-JVS(3518)*XX(278)-JVS(3615)*XX(279)-JVS(3648)*XX(280)-JVS(3740)& + &*XX(281)-JVS(3799)*XX(282))/(JVS(3825)) + XX(284) = (X(284)-JVS(65)*XX(7)-JVS(89)*XX(11)-JVS(96)*XX(13)-JVS(106)*XX(16)-JVS(113)*XX(18)-JVS(119)*XX(20)-JVS(126)& + &*XX(22)-JVS(138)*XX(25)-JVS(145)*XX(27)-JVS(253)*XX(34)-JVS(352)*XX(35)-JVS(430)*XX(36)-JVS(465)*XX(40)& + &-JVS(542)*XX(69)-JVS(546)*XX(70)-JVS(605)*XX(88)-JVS(627)*XX(93)-JVS(631)*XX(94)-JVS(635)*XX(95)-JVS(676)& + &*XX(102)-JVS(698)*XX(106)-JVS(704)*XX(107)-JVS(721)*XX(110)-JVS(730)*XX(112)-JVS(734)*XX(113)-JVS(755)& + &*XX(117)-JVS(764)*XX(119)-JVS(769)*XX(120)-JVS(774)*XX(121)-JVS(791)*XX(123)-JVS(845)*XX(132)-JVS(875)& + &*XX(136)-JVS(879)*XX(137)-JVS(899)*XX(141)-JVS(919)*XX(144)-JVS(925)*XX(145)-JVS(930)*XX(146)-JVS(952)& + &*XX(150)-JVS(956)*XX(151)-JVS(962)*XX(152)-JVS(988)*XX(157)-JVS(1024)*XX(160)-JVS(1034)*XX(162)-JVS(1047)& + &*XX(164)-JVS(1051)*XX(165)-JVS(1056)*XX(166)-JVS(1062)*XX(167)-JVS(1067)*XX(168)-JVS(1079)*XX(169)-JVS(1087)& + &*XX(171)-JVS(1098)*XX(172)-JVS(1130)*XX(174)-JVS(1142)*XX(175)-JVS(1157)*XX(177)-JVS(1170)*XX(178)-JVS(1179)& + &*XX(179)-JVS(1188)*XX(180)-JVS(1195)*XX(181)-JVS(1202)*XX(182)-JVS(1209)*XX(183)-JVS(1223)*XX(184)-JVS(1240)& + &*XX(185)-JVS(1246)*XX(186)-JVS(1254)*XX(187)-JVS(1260)*XX(188)-JVS(1266)*XX(189)-JVS(1285)*XX(191)-JVS(1297)& + &*XX(192)-JVS(1330)*XX(194)-JVS(1354)*XX(196)-JVS(1390)*XX(198)-JVS(1402)*XX(199)-JVS(1416)*XX(200)-JVS(1426)& + &*XX(201)-JVS(1433)*XX(202)-JVS(1450)*XX(204)-JVS(1461)*XX(205)-JVS(1477)*XX(206)-JVS(1486)*XX(207)-JVS(1504)& + &*XX(208)-JVS(1513)*XX(209)-JVS(1527)*XX(210)-JVS(1561)*XX(211)-JVS(1580)*XX(212)-JVS(1602)*XX(213)-JVS(1620)& + &*XX(215)-JVS(1632)*XX(216)-JVS(1641)*XX(217)-JVS(1669)*XX(218)-JVS(1696)*XX(219)-JVS(1720)*XX(221)-JVS(1729)& + &*XX(222)-JVS(1770)*XX(223)-JVS(1785)*XX(225)-JVS(1805)*XX(226)-JVS(1817)*XX(227)-JVS(1839)*XX(228)-JVS(1859)& + &*XX(229)-JVS(1890)*XX(230)-JVS(1924)*XX(231)-JVS(1940)*XX(232)-JVS(1999)*XX(233)-JVS(2072)*XX(236)-JVS(2093)& + &*XX(237)-JVS(2104)*XX(238)-JVS(2124)*XX(239)-JVS(2141)*XX(240)-JVS(2167)*XX(241)-JVS(2195)*XX(242)-JVS(2217)& + &*XX(243)-JVS(2230)*XX(244)-JVS(2244)*XX(245)-JVS(2256)*XX(246)-JVS(2268)*XX(247)-JVS(2292)*XX(248)-JVS(2312)& + &*XX(249)-JVS(2369)*XX(250)-JVS(2394)*XX(251)-JVS(2422)*XX(252)-JVS(2436)*XX(253)-JVS(2452)*XX(254)-JVS(2472)& + &*XX(255)-JVS(2489)*XX(256)-JVS(2502)*XX(257)-JVS(2523)*XX(258)-JVS(2560)*XX(259)-JVS(2576)*XX(260)-JVS(2651)& + &*XX(261)-JVS(2767)*XX(263)-JVS(2800)*XX(264)-JVS(2887)*XX(265)-JVS(2952)*XX(266)-JVS(3052)*XX(267)-JVS(3072)& + &*XX(268)-JVS(3101)*XX(269)-JVS(3120)*XX(270)-JVS(3149)*XX(271)-JVS(3198)*XX(272)-JVS(3254)*XX(273)-JVS(3286)& + &*XX(274)-JVS(3363)*XX(275)-JVS(3405)*XX(276)-JVS(3431)*XX(277)-JVS(3519)*XX(278)-JVS(3616)*XX(279)-JVS(3649)& + &*XX(280)-JVS(3741)*XX(281)-JVS(3800)*XX(282)-JVS(3826)*XX(283))/(JVS(3997)) + XX(285) = (X(285)-JVS(353)*XX(35)-JVS(564)*XX(75)-JVS(665)*XX(99)-JVS(683)*XX(103)-JVS(726)*XX(111)-JVS(870)*XX(135)& + &-JVS(1366)*XX(197)-JVS(1818)*XX(227)-JVS(2661)*XX(262)-JVS(2768)*XX(263)-JVS(2888)*XX(265)-JVS(2953)*XX(266)& + &-JVS(3053)*XX(267)-JVS(3073)*XX(268)-JVS(3102)*XX(269)-JVS(3121)*XX(270)-JVS(3150)*XX(271)-JVS(3199)*XX(272)& + &-JVS(3255)*XX(273)-JVS(3287)*XX(274)-JVS(3364)*XX(275)-JVS(3406)*XX(276)-JVS(3432)*XX(277)-JVS(3520)*XX(278)& + &-JVS(3617)*XX(279)-JVS(3650)*XX(280)-JVS(3742)*XX(281)-JVS(3801)*XX(282)-JVS(3827)*XX(283)-JVS(3998)*XX(284))& + &/(JVS(4052)) + XX(286) = (X(286)-JVS(13)*XX(6)-JVS(66)*XX(7)-JVS(97)*XX(13)-JVS(100)*XX(14)-JVS(114)*XX(18)-JVS(116)*XX(19)-JVS(127)& + &*XX(22)-JVS(135)*XX(24)-JVS(146)*XX(27)-JVS(149)*XX(28)-JVS(168)*XX(32)-JVS(174)*XX(33)-JVS(254)*XX(34)& + &-JVS(354)*XX(35)-JVS(431)*XX(36)-JVS(438)*XX(37)-JVS(449)*XX(38)-JVS(453)*XX(39)-JVS(466)*XX(40)-JVS(468)& + &*XX(41)-JVS(472)*XX(43)-JVS(480)*XX(46)-JVS(507)*XX(58)-JVS(526)*XX(64)-JVS(531)*XX(66)-JVS(539)*XX(68)& + &-JVS(543)*XX(69)-JVS(547)*XX(70)-JVS(550)*XX(71)-JVS(552)*XX(72)-JVS(565)*XX(75)-JVS(568)*XX(76)-JVS(571)& + &*XX(77)-JVS(573)*XX(78)-JVS(576)*XX(79)-JVS(578)*XX(80)-JVS(581)*XX(81)-JVS(584)*XX(82)-JVS(587)*XX(83)& + &-JVS(590)*XX(84)-JVS(594)*XX(85)-JVS(598)*XX(86)-JVS(602)*XX(87)-JVS(606)*XX(88)-JVS(610)*XX(89)-JVS(613)& + &*XX(90)-JVS(617)*XX(91)-JVS(628)*XX(93)-JVS(632)*XX(94)-JVS(636)*XX(95)-JVS(640)*XX(96)-JVS(643)*XX(97)& + &-JVS(669)*XX(100)-JVS(674)*XX(101)-JVS(677)*XX(102)-JVS(684)*XX(103)-JVS(691)*XX(104)-JVS(695)*XX(105)& + &-JVS(699)*XX(106)-JVS(705)*XX(107)-JVS(717)*XX(109)-JVS(722)*XX(110)-JVS(727)*XX(111)-JVS(731)*XX(112)& + &-JVS(735)*XX(113)-JVS(738)*XX(114)-JVS(744)*XX(115)-JVS(750)*XX(116)-JVS(756)*XX(117)-JVS(760)*XX(118)& + &-JVS(765)*XX(119)-JVS(770)*XX(120)-JVS(775)*XX(121)-JVS(787)*XX(122)-JVS(792)*XX(123)-JVS(795)*XX(124)& + &-JVS(800)*XX(125)-JVS(814)*XX(127)-JVS(822)*XX(128)-JVS(828)*XX(129)-JVS(834)*XX(130)-JVS(840)*XX(131)& + &-JVS(846)*XX(132)-JVS(851)*XX(133)-JVS(858)*XX(134)-JVS(876)*XX(136)-JVS(880)*XX(137)-JVS(890)*XX(139)& + &-JVS(894)*XX(140)-JVS(900)*XX(141)-JVS(906)*XX(142)-JVS(914)*XX(143)-JVS(931)*XX(146)-JVS(943)*XX(148)& + &-JVS(946)*XX(149)-JVS(953)*XX(150)-JVS(957)*XX(151)-JVS(963)*XX(152)-JVS(967)*XX(153)-JVS(972)*XX(154)& + &-JVS(976)*XX(155)-JVS(985)*XX(156)-JVS(989)*XX(157)-JVS(1002)*XX(158)-JVS(1012)*XX(159)-JVS(1025)*XX(160)& + &-JVS(1030)*XX(161)-JVS(1035)*XX(162)-JVS(1041)*XX(163)-JVS(1048)*XX(164)-JVS(1052)*XX(165)-JVS(1057)*XX(166)& + &-JVS(1063)*XX(167)-JVS(1068)*XX(168)-JVS(1080)*XX(169)-JVS(1084)*XX(170)-JVS(1088)*XX(171)-JVS(1099)*XX(172)& + &-JVS(1131)*XX(174)-JVS(1143)*XX(175)-JVS(1158)*XX(177)-JVS(1171)*XX(178)-JVS(1180)*XX(179)-JVS(1189)*XX(180)& + &-JVS(1196)*XX(181)-JVS(1203)*XX(182)-JVS(1210)*XX(183)-JVS(1224)*XX(184)-JVS(1241)*XX(185)-JVS(1247)*XX(186)& + &-JVS(1255)*XX(187)-JVS(1261)*XX(188)-JVS(1267)*XX(189)-JVS(1273)*XX(190)-JVS(1286)*XX(191)-JVS(1298)*XX(192)& + &-JVS(1316)*XX(193)-JVS(1331)*XX(194)-JVS(1355)*XX(196)-JVS(1367)*XX(197)-JVS(1391)*XX(198)-JVS(1403)*XX(199)& + &-JVS(1417)*XX(200)-JVS(1427)*XX(201)-JVS(1434)*XX(202)-JVS(1451)*XX(204)-JVS(1462)*XX(205)-JVS(1478)*XX(206)& + &-JVS(1487)*XX(207)-JVS(1505)*XX(208)-JVS(1514)*XX(209)-JVS(1528)*XX(210)-JVS(1562)*XX(211)-JVS(1581)*XX(212)& + &-JVS(1603)*XX(213)-JVS(1609)*XX(214)-JVS(1621)*XX(215)-JVS(1633)*XX(216)-JVS(1642)*XX(217)-JVS(1670)*XX(218)& + &-JVS(1697)*XX(219)-JVS(1706)*XX(220)-JVS(1721)*XX(221)-JVS(1730)*XX(222)-JVS(1771)*XX(223)-JVS(1776)*XX(224)& + &-JVS(1786)*XX(225)-JVS(1806)*XX(226)-JVS(1819)*XX(227)-JVS(1840)*XX(228)-JVS(1860)*XX(229)-JVS(1891)*XX(230)& + &-JVS(1925)*XX(231)-JVS(1941)*XX(232)-JVS(2000)*XX(233)-JVS(2015)*XX(234)-JVS(2026)*XX(235)-JVS(2073)*XX(236)& + &-JVS(2094)*XX(237)-JVS(2105)*XX(238)-JVS(2125)*XX(239)-JVS(2142)*XX(240)-JVS(2168)*XX(241)-JVS(2196)*XX(242)& + &-JVS(2218)*XX(243)-JVS(2231)*XX(244)-JVS(2245)*XX(245)-JVS(2257)*XX(246)-JVS(2269)*XX(247)-JVS(2293)*XX(248)& + &-JVS(2313)*XX(249)-JVS(2370)*XX(250)-JVS(2395)*XX(251)-JVS(2423)*XX(252)-JVS(2437)*XX(253)-JVS(2453)*XX(254)& + &-JVS(2473)*XX(255)-JVS(2490)*XX(256)-JVS(2503)*XX(257)-JVS(2524)*XX(258)-JVS(2561)*XX(259)-JVS(2577)*XX(260)& + &-JVS(2652)*XX(261)-JVS(2662)*XX(262)-JVS(2769)*XX(263)-JVS(2801)*XX(264)-JVS(2889)*XX(265)-JVS(2954)*XX(266)& + &-JVS(3054)*XX(267)-JVS(3074)*XX(268)-JVS(3103)*XX(269)-JVS(3122)*XX(270)-JVS(3151)*XX(271)-JVS(3200)*XX(272)& + &-JVS(3256)*XX(273)-JVS(3288)*XX(274)-JVS(3365)*XX(275)-JVS(3407)*XX(276)-JVS(3433)*XX(277)-JVS(3521)*XX(278)& + &-JVS(3618)*XX(279)-JVS(3651)*XX(280)-JVS(3743)*XX(281)-JVS(3802)*XX(282)-JVS(3828)*XX(283)-JVS(3999)*XX(284)& + &-JVS(4053)*XX(285))/(JVS(4269)) + XX(287) = (X(287)-JVS(355)*XX(35)-JVS(666)*XX(99)-JVS(871)*XX(135)-JVS(1105)*XX(173)-JVS(1317)*XX(193)-JVS(1368)& + &*XX(197)-JVS(1440)*XX(203)-JVS(2027)*XX(235)-JVS(2578)*XX(260)-JVS(2663)*XX(262)-JVS(2890)*XX(265)-JVS(3075)& + &*XX(268)-JVS(3104)*XX(269)-JVS(3123)*XX(270)-JVS(3152)*XX(271)-JVS(3201)*XX(272)-JVS(3257)*XX(273)-JVS(3289)& + &*XX(274)-JVS(3366)*XX(275)-JVS(3408)*XX(276)-JVS(3434)*XX(277)-JVS(3522)*XX(278)-JVS(3619)*XX(279)-JVS(3652)& + &*XX(280)-JVS(3744)*XX(281)-JVS(3803)*XX(282)-JVS(3829)*XX(283)-JVS(4000)*XX(284)-JVS(4054)*XX(285)-JVS(4270)& + &*XX(286))/(JVS(4303)) + XX(288) = (X(288)-JVS(356)*XX(35)-JVS(432)*XX(36)-JVS(532)*XX(66)-JVS(1159)*XX(177)-JVS(1582)*XX(212)-JVS(2579)& + &*XX(260)-JVS(2664)*XX(262)-JVS(2770)*XX(263)-JVS(2891)*XX(265)-JVS(3055)*XX(267)-JVS(3153)*XX(271)-JVS(3202)& + &*XX(272)-JVS(3258)*XX(273)-JVS(3290)*XX(274)-JVS(3367)*XX(275)-JVS(3409)*XX(276)-JVS(3435)*XX(277)-JVS(3523)& + &*XX(278)-JVS(3620)*XX(279)-JVS(3653)*XX(280)-JVS(3745)*XX(281)-JVS(3804)*XX(282)-JVS(3830)*XX(283)-JVS(4001)& + &*XX(284)-JVS(4055)*XX(285)-JVS(4271)*XX(286)-JVS(4304)*XX(287))/(JVS(4365)) + XX(289) = (X(289)-JVS(357)*XX(35)-JVS(823)*XX(128)-JVS(872)*XX(135)-JVS(1160)*XX(177)-JVS(1318)*XX(193)-JVS(2028)& + &*XX(235)-JVS(2580)*XX(260)-JVS(2665)*XX(262)-JVS(2892)*XX(265)-JVS(3154)*XX(271)-JVS(3203)*XX(272)-JVS(3259)& + &*XX(273)-JVS(3291)*XX(274)-JVS(3368)*XX(275)-JVS(3410)*XX(276)-JVS(3436)*XX(277)-JVS(3524)*XX(278)-JVS(3621)& + &*XX(279)-JVS(3654)*XX(280)-JVS(3746)*XX(281)-JVS(3805)*XX(282)-JVS(3831)*XX(283)-JVS(4002)*XX(284)-JVS(4056)& + &*XX(285)-JVS(4272)*XX(286)-JVS(4305)*XX(287)-JVS(4366)*XX(288))/(JVS(4405)) + XX(290) = (X(290)-JVS(67)*XX(7)-JVS(255)*XX(34)-JVS(433)*XX(36)-JVS(454)*XX(39)-JVS(553)*XX(72)-JVS(574)*XX(78)& + &-JVS(685)*XX(103)-JVS(739)*XX(114)-JVS(796)*XX(124)-JVS(852)*XX(133)-JVS(881)*XX(137)-JVS(947)*XX(149)& + &-JVS(1031)*XX(161)-JVS(1161)*XX(177)-JVS(1274)*XX(190)-JVS(1369)*XX(197)-JVS(1515)*XX(209)-JVS(1563)*XX(211)& + &-JVS(1583)*XX(212)-JVS(1643)*XX(217)-JVS(1671)*XX(218)-JVS(1698)*XX(219)-JVS(1722)*XX(221)-JVS(1777)*XX(224)& + &-JVS(1892)*XX(230)-JVS(1926)*XX(231)-JVS(2001)*XX(233)-JVS(2016)*XX(234)-JVS(2074)*XX(236)-JVS(2095)*XX(237)& + &-JVS(2126)*XX(239)-JVS(2169)*XX(241)-JVS(2232)*XX(244)-JVS(2246)*XX(245)-JVS(2258)*XX(246)-JVS(2270)*XX(247)& + &-JVS(2294)*XX(248)-JVS(2314)*XX(249)-JVS(2371)*XX(250)-JVS(2396)*XX(251)-JVS(2424)*XX(252)-JVS(2438)*XX(253)& + &-JVS(2474)*XX(255)-JVS(2491)*XX(256)-JVS(2504)*XX(257)-JVS(2525)*XX(258)-JVS(2562)*XX(259)-JVS(2653)*XX(261)& + &-JVS(2666)*XX(262)-JVS(2771)*XX(263)-JVS(2802)*XX(264)-JVS(2893)*XX(265)-JVS(2955)*XX(266)-JVS(3056)*XX(267)& + &-JVS(3155)*XX(271)-JVS(3204)*XX(272)-JVS(3260)*XX(273)-JVS(3292)*XX(274)-JVS(3369)*XX(275)-JVS(3411)*XX(276)& + &-JVS(3437)*XX(277)-JVS(3525)*XX(278)-JVS(3622)*XX(279)-JVS(3655)*XX(280)-JVS(3747)*XX(281)-JVS(3806)*XX(282)& + &-JVS(3832)*XX(283)-JVS(4003)*XX(284)-JVS(4057)*XX(285)-JVS(4273)*XX(286)-JVS(4306)*XX(287)-JVS(4367)*XX(288)& + &-JVS(4406)*XX(289))/(JVS(4501)) + XX(291) = (X(291)-JVS(256)*XX(34)-JVS(358)*XX(35)-JVS(490)*XX(50)-JVS(493)*XX(51)-JVS(516)*XX(61)-JVS(529)*XX(65)& + &-JVS(535)*XX(67)-JVS(562)*XX(74)-JVS(644)*XX(97)-JVS(678)*XX(102)-JVS(706)*XX(107)-JVS(920)*XX(144)-JVS(926)& + &*XX(145)-JVS(968)*XX(153)-JVS(1026)*XX(160)-JVS(1106)*XX(173)-JVS(1149)*XX(176)-JVS(1190)*XX(180)-JVS(1287)& + &*XX(191)-JVS(1319)*XX(193)-JVS(1339)*XX(195)-JVS(1418)*XX(200)-JVS(1441)*XX(203)-JVS(1452)*XX(204)-JVS(1463)& + &*XX(205)-JVS(1488)*XX(207)-JVS(1529)*XX(210)-JVS(1564)*XX(211)-JVS(1584)*XX(212)-JVS(1699)*XX(219)-JVS(1772)& + &*XX(223)-JVS(1820)*XX(227)-JVS(1893)*XX(230)-JVS(1927)*XX(231)-JVS(2002)*XX(233)-JVS(2017)*XX(234)-JVS(2029)& + &*XX(235)-JVS(2075)*XX(236)-JVS(2170)*XX(241)-JVS(2315)*XX(249)-JVS(2372)*XX(250)-JVS(2425)*XX(252)-JVS(2475)& + &*XX(255)-JVS(2505)*XX(257)-JVS(2526)*XX(258)-JVS(2563)*XX(259)-JVS(2581)*XX(260)-JVS(2654)*XX(261)-JVS(2667)& + &*XX(262)-JVS(2772)*XX(263)-JVS(2803)*XX(264)-JVS(2894)*XX(265)-JVS(2956)*XX(266)-JVS(3057)*XX(267)-JVS(3076)& + &*XX(268)-JVS(3105)*XX(269)-JVS(3124)*XX(270)-JVS(3156)*XX(271)-JVS(3205)*XX(272)-JVS(3261)*XX(273)-JVS(3293)& + &*XX(274)-JVS(3370)*XX(275)-JVS(3412)*XX(276)-JVS(3438)*XX(277)-JVS(3526)*XX(278)-JVS(3623)*XX(279)-JVS(3656)& + &*XX(280)-JVS(3748)*XX(281)-JVS(3807)*XX(282)-JVS(3833)*XX(283)-JVS(4004)*XX(284)-JVS(4058)*XX(285)-JVS(4274)& + &*XX(286)-JVS(4307)*XX(287)-JVS(4368)*XX(288)-JVS(4407)*XX(289)-JVS(4502)*XX(290))/(JVS(4631)) + XX(291) = XX(291) + XX(290) = XX(290)-JVS(4630)*XX(291) + XX(289) = XX(289)-JVS(4500)*XX(290)-JVS(4629)*XX(291) + XX(288) = XX(288)-JVS(4404)*XX(289)-JVS(4499)*XX(290)-JVS(4628)*XX(291) + XX(287) = XX(287)-JVS(4364)*XX(288)-JVS(4403)*XX(289)-JVS(4498)*XX(290)-JVS(4627)*XX(291) + XX(286) = XX(286)-JVS(4302)*XX(287)-JVS(4363)*XX(288)-JVS(4402)*XX(289)-JVS(4497)*XX(290)-JVS(4626)*XX(291) + XX(285) = XX(285)-JVS(4268)*XX(286)-JVS(4301)*XX(287)-JVS(4362)*XX(288)-JVS(4401)*XX(289)-JVS(4496)*XX(290)-JVS(4625)& + &*XX(291) + XX(284) = XX(284)-JVS(4051)*XX(285)-JVS(4267)*XX(286)-JVS(4300)*XX(287)-JVS(4361)*XX(288)-JVS(4400)*XX(289)-JVS(4495)& + &*XX(290)-JVS(4624)*XX(291) + XX(283) = XX(283)-JVS(3996)*XX(284)-JVS(4050)*XX(285)-JVS(4266)*XX(286)-JVS(4299)*XX(287)-JVS(4360)*XX(288)-JVS(4399)& + &*XX(289)-JVS(4494)*XX(290)-JVS(4623)*XX(291) + XX(282) = XX(282)-JVS(3824)*XX(283)-JVS(3995)*XX(284)-JVS(4049)*XX(285)-JVS(4265)*XX(286)-JVS(4298)*XX(287)-JVS(4359)& + &*XX(288)-JVS(4398)*XX(289)-JVS(4493)*XX(290)-JVS(4622)*XX(291) + XX(281) = XX(281)-JVS(3797)*XX(282)-JVS(3823)*XX(283)-JVS(3994)*XX(284)-JVS(4048)*XX(285)-JVS(4264)*XX(286)-JVS(4297)& + &*XX(287)-JVS(4358)*XX(288)-JVS(4397)*XX(289)-JVS(4492)*XX(290)-JVS(4621)*XX(291) + XX(280) = XX(280)-JVS(3737)*XX(281)-JVS(3796)*XX(282)-JVS(3822)*XX(283)-JVS(3993)*XX(284)-JVS(4047)*XX(285)-JVS(4263)& + &*XX(286)-JVS(4296)*XX(287)-JVS(4357)*XX(288)-JVS(4396)*XX(289)-JVS(4491)*XX(290)-JVS(4620)*XX(291) + XX(279) = XX(279)-JVS(3644)*XX(280)-JVS(3736)*XX(281)-JVS(3795)*XX(282)-JVS(3821)*XX(283)-JVS(3992)*XX(284)-JVS(4046)& + &*XX(285)-JVS(4262)*XX(286)-JVS(4295)*XX(287)-JVS(4356)*XX(288)-JVS(4395)*XX(289)-JVS(4490)*XX(290)-JVS(4619)& + &*XX(291) + XX(278) = XX(278)-JVS(3610)*XX(279)-JVS(3643)*XX(280)-JVS(3735)*XX(281)-JVS(3794)*XX(282)-JVS(3820)*XX(283)-JVS(3991)& + &*XX(284)-JVS(4045)*XX(285)-JVS(4261)*XX(286)-JVS(4294)*XX(287)-JVS(4355)*XX(288)-JVS(4394)*XX(289)-JVS(4489)& + &*XX(290)-JVS(4618)*XX(291) + XX(277) = XX(277)-JVS(3512)*XX(278)-JVS(3609)*XX(279)-JVS(3642)*XX(280)-JVS(3734)*XX(281)-JVS(3793)*XX(282)-JVS(3819)& + &*XX(283)-JVS(3990)*XX(284)-JVS(4044)*XX(285)-JVS(4260)*XX(286)-JVS(4293)*XX(287)-JVS(4354)*XX(288)-JVS(4393)& + &*XX(289)-JVS(4488)*XX(290)-JVS(4617)*XX(291) + XX(276) = XX(276)-JVS(3423)*XX(277)-JVS(3511)*XX(278)-JVS(3608)*XX(279)-JVS(3641)*XX(280)-JVS(3733)*XX(281)-JVS(3792)& + &*XX(282)-JVS(3818)*XX(283)-JVS(3989)*XX(284)-JVS(4043)*XX(285)-JVS(4259)*XX(286)-JVS(4292)*XX(287)-JVS(4353)& + &*XX(288)-JVS(4392)*XX(289)-JVS(4487)*XX(290)-JVS(4616)*XX(291) + XX(275) = XX(275)-JVS(3396)*XX(276)-JVS(3422)*XX(277)-JVS(3510)*XX(278)-JVS(3607)*XX(279)-JVS(3640)*XX(280)-JVS(3732)& + &*XX(281)-JVS(3791)*XX(282)-JVS(3817)*XX(283)-JVS(3988)*XX(284)-JVS(4042)*XX(285)-JVS(4258)*XX(286)-JVS(4291)& + &*XX(287)-JVS(4352)*XX(288)-JVS(4391)*XX(289)-JVS(4486)*XX(290)-JVS(4615)*XX(291) + XX(274) = XX(274)-JVS(3353)*XX(275)-JVS(3395)*XX(276)-JVS(3421)*XX(277)-JVS(3509)*XX(278)-JVS(3606)*XX(279)-JVS(3639)& + &*XX(280)-JVS(3731)*XX(281)-JVS(3790)*XX(282)-JVS(3816)*XX(283)-JVS(3987)*XX(284)-JVS(4041)*XX(285)-JVS(4257)& + &*XX(286)-JVS(4290)*XX(287)-JVS(4351)*XX(288)-JVS(4390)*XX(289)-JVS(4485)*XX(290)-JVS(4614)*XX(291) + XX(273) = XX(273)-JVS(3275)*XX(274)-JVS(3352)*XX(275)-JVS(3394)*XX(276)-JVS(3420)*XX(277)-JVS(3508)*XX(278)-JVS(3605)& + &*XX(279)-JVS(3638)*XX(280)-JVS(3730)*XX(281)-JVS(3789)*XX(282)-JVS(3815)*XX(283)-JVS(3986)*XX(284)-JVS(4040)& + &*XX(285)-JVS(4256)*XX(286)-JVS(4289)*XX(287)-JVS(4350)*XX(288)-JVS(4389)*XX(289)-JVS(4484)*XX(290)-JVS(4613)& + &*XX(291) + XX(272) = XX(272)-JVS(3242)*XX(273)-JVS(3274)*XX(274)-JVS(3351)*XX(275)-JVS(3393)*XX(276)-JVS(3507)*XX(278)-JVS(3604)& + &*XX(279)-JVS(3637)*XX(280)-JVS(3729)*XX(281)-JVS(3788)*XX(282)-JVS(3985)*XX(284)-JVS(4039)*XX(285)-JVS(4255)& + &*XX(286)-JVS(4288)*XX(287)-JVS(4349)*XX(288)-JVS(4388)*XX(289)-JVS(4483)*XX(290)-JVS(4612)*XX(291) + XX(271) = XX(271)-JVS(3185)*XX(272)-JVS(3241)*XX(273)-JVS(3350)*XX(275)-JVS(3392)*XX(276)-JVS(3506)*XX(278)-JVS(3636)& + &*XX(280)-JVS(4038)*XX(285)-JVS(4254)*XX(286)-JVS(4287)*XX(287)-JVS(4348)*XX(288)-JVS(4387)*XX(289)-JVS(4482)& + &*XX(290) + XX(270) = XX(270)-JVS(3135)*XX(271)-JVS(3240)*XX(273)-JVS(3273)*XX(274)-JVS(3349)*XX(275)-JVS(3391)*XX(276)-JVS(3419)& + &*XX(277)-JVS(3505)*XX(278)-JVS(3603)*XX(279)-JVS(3635)*XX(280)-JVS(3728)*XX(281)-JVS(3787)*XX(282)-JVS(3814)& + &*XX(283)-JVS(3984)*XX(284)-JVS(4037)*XX(285)-JVS(4253)*XX(286)-JVS(4286)*XX(287)-JVS(4347)*XX(288)-JVS(4481)& + &*XX(290)-JVS(4611)*XX(291) + XX(269) = XX(269)-JVS(3110)*XX(270)-JVS(3134)*XX(271)-JVS(3239)*XX(273)-JVS(3272)*XX(274)-JVS(3418)*XX(277)-JVS(3504)& + &*XX(278)-JVS(3602)*XX(279)-JVS(3634)*XX(280)-JVS(3727)*XX(281)-JVS(3786)*XX(282)-JVS(3813)*XX(283)-JVS(3983)& + &*XX(284)-JVS(4036)*XX(285)-JVS(4252)*XX(286)-JVS(4285)*XX(287)-JVS(4346)*XX(288)-JVS(4480)*XX(290)-JVS(4610)& + &*XX(291) + XX(268) = XX(268)-JVS(3090)*XX(269)-JVS(3109)*XX(270)-JVS(3133)*XX(271)-JVS(3238)*XX(273)-JVS(3271)*XX(274)-JVS(3417)& + &*XX(277)-JVS(3503)*XX(278)-JVS(3601)*XX(279)-JVS(3633)*XX(280)-JVS(3812)*XX(283)-JVS(3982)*XX(284)-JVS(4035)& + &*XX(285)-JVS(4251)*XX(286)-JVS(4284)*XX(287)-JVS(4345)*XX(288)-JVS(4479)*XX(290)-JVS(4609)*XX(291) + XX(267) = XX(267)-JVS(3132)*XX(271)-JVS(3184)*XX(272)-JVS(3237)*XX(273)-JVS(3348)*XX(275)-JVS(3390)*XX(276)-JVS(3502)& + &*XX(278)-JVS(3600)*XX(279)-JVS(3632)*XX(280)-JVS(3726)*XX(281)-JVS(3785)*XX(282)-JVS(3981)*XX(284)-JVS(4034)& + &*XX(285)-JVS(4250)*XX(286)-JVS(4283)*XX(287)-JVS(4344)*XX(288)-JVS(4386)*XX(289)-JVS(4478)*XX(290)-JVS(4608)& + &*XX(291) + XX(266) = XX(266)-JVS(3043)*XX(267)-JVS(3131)*XX(271)-JVS(3183)*XX(272)-JVS(3236)*XX(273)-JVS(3347)*XX(275)-JVS(3389)& + &*XX(276)-JVS(3501)*XX(278)-JVS(3599)*XX(279)-JVS(3631)*XX(280)-JVS(3725)*XX(281)-JVS(3784)*XX(282)-JVS(3980)& + &*XX(284)-JVS(4033)*XX(285)-JVS(4249)*XX(286)-JVS(4282)*XX(287)-JVS(4343)*XX(288)-JVS(4385)*XX(289)-JVS(4477)& + &*XX(290)-JVS(4607)*XX(291) + XX(265) = XX(265)-JVS(3346)*XX(275)-JVS(3388)*XX(276)-JVS(3500)*XX(278)-JVS(3598)*XX(279)-JVS(3630)*XX(280)-JVS(3724)& + &*XX(281)-JVS(3783)*XX(282)-JVS(4248)*XX(286)-JVS(4281)*XX(287)-JVS(4606)*XX(291) + XX(264) = XX(264)-JVS(2870)*XX(265)-JVS(2942)*XX(266)-JVS(3042)*XX(267)-JVS(3182)*XX(272)-JVS(3235)*XX(273)-JVS(3345)& + &*XX(275)-JVS(3387)*XX(276)-JVS(3499)*XX(278)-JVS(3597)*XX(279)-JVS(3723)*XX(281)-JVS(3782)*XX(282)-JVS(3979)& + &*XX(284)-JVS(4032)*XX(285)-JVS(4247)*XX(286)-JVS(4342)*XX(288)-JVS(4384)*XX(289)-JVS(4476)*XX(290)-JVS(4605)& + &*XX(291) + XX(263) = XX(263)-JVS(2869)*XX(265)-JVS(3041)*XX(267)-JVS(3234)*XX(273)-JVS(3344)*XX(275)-JVS(3386)*XX(276)-JVS(3498)& + &*XX(278)-JVS(3722)*XX(281)-JVS(3781)*XX(282)-JVS(3978)*XX(284)-JVS(4246)*XX(286)-JVS(4341)*XX(288)-JVS(4383)& + &*XX(289)-JVS(4475)*XX(290) + XX(262) = XX(262)-JVS(2868)*XX(265)-JVS(3130)*XX(271)-JVS(3181)*XX(272)-JVS(3233)*XX(273)-JVS(3343)*XX(275)-JVS(3416)& + &*XX(277)-JVS(3497)*XX(278)-JVS(3629)*XX(280)-JVS(3721)*XX(281)-JVS(3811)*XX(283)-JVS(4031)*XX(285)-JVS(4245)& + &*XX(286)-JVS(4280)*XX(287)-JVS(4340)*XX(288)-JVS(4382)*XX(289)-JVS(4474)*XX(290)-JVS(4604)*XX(291) + XX(261) = XX(261)-JVS(2755)*XX(263)-JVS(2790)*XX(264)-JVS(2867)*XX(265)-JVS(2941)*XX(266)-JVS(3040)*XX(267)-JVS(3180)& + &*XX(272)-JVS(3232)*XX(273)-JVS(3342)*XX(275)-JVS(3385)*XX(276)-JVS(3496)*XX(278)-JVS(3596)*XX(279)-JVS(3720)& + &*XX(281)-JVS(3780)*XX(282)-JVS(3977)*XX(284)-JVS(4030)*XX(285)-JVS(4244)*XX(286)-JVS(4339)*XX(288)-JVS(4381)& + &*XX(289)-JVS(4473)*XX(290)-JVS(4603)*XX(291) + XX(260) = XX(260)-JVS(3231)*XX(273)-JVS(3270)*XX(274)-JVS(3341)*XX(275)-JVS(3384)*XX(276)-JVS(3415)*XX(277)-JVS(3495)& + &*XX(278)-JVS(3628)*XX(280)-JVS(3810)*XX(283)-JVS(4243)*XX(286)-JVS(4279)*XX(287)-JVS(4338)*XX(288)-JVS(4380)& + &*XX(289)-JVS(4472)*XX(290) + XX(259) = XX(259)-JVS(2643)*XX(261)-JVS(2754)*XX(263)-JVS(2789)*XX(264)-JVS(2866)*XX(265)-JVS(2940)*XX(266)-JVS(3039)& + &*XX(267)-JVS(3230)*XX(273)-JVS(3340)*XX(275)-JVS(3494)*XX(278)-JVS(3595)*XX(279)-JVS(3719)*XX(281)-JVS(3779)& + &*XX(282)-JVS(3976)*XX(284)-JVS(4029)*XX(285)-JVS(4242)*XX(286)-JVS(4379)*XX(289)-JVS(4471)*XX(290)-JVS(4602)& + &*XX(291) + XX(258) = XX(258)-JVS(2552)*XX(259)-JVS(2642)*XX(261)-JVS(2753)*XX(263)-JVS(2865)*XX(265)-JVS(2939)*XX(266)-JVS(3038)& + &*XX(267)-JVS(3229)*XX(273)-JVS(3339)*XX(275)-JVS(3493)*XX(278)-JVS(3594)*XX(279)-JVS(3718)*XX(281)-JVS(3975)& + &*XX(284)-JVS(4241)*XX(286)-JVS(4378)*XX(289)-JVS(4470)*XX(290)-JVS(4601)*XX(291) + XX(257) = XX(257)-JVS(2514)*XX(258)-JVS(2551)*XX(259)-JVS(2641)*XX(261)-JVS(2752)*XX(263)-JVS(2788)*XX(264)-JVS(2864)& + &*XX(265)-JVS(2938)*XX(266)-JVS(3037)*XX(267)-JVS(3228)*XX(273)-JVS(3338)*XX(275)-JVS(3492)*XX(278)-JVS(3593)& + &*XX(279)-JVS(3717)*XX(281)-JVS(3778)*XX(282)-JVS(3974)*XX(284)-JVS(4028)*XX(285)-JVS(4240)*XX(286)-JVS(4377)& + &*XX(289)-JVS(4469)*XX(290)-JVS(4600)*XX(291) + XX(256) = XX(256)-JVS(2495)*XX(257)-JVS(2513)*XX(258)-JVS(2550)*XX(259)-JVS(2640)*XX(261)-JVS(2751)*XX(263)-JVS(2787)& + &*XX(264)-JVS(2863)*XX(265)-JVS(2937)*XX(266)-JVS(3036)*XX(267)-JVS(3227)*XX(273)-JVS(3337)*XX(275)-JVS(3491)& + &*XX(278)-JVS(3592)*XX(279)-JVS(3716)*XX(281)-JVS(3777)*XX(282)-JVS(3973)*XX(284)-JVS(4027)*XX(285)-JVS(4239)& + &*XX(286)-JVS(4376)*XX(289)-JVS(4468)*XX(290)-JVS(4599)*XX(291) + XX(255) = XX(255)-JVS(2512)*XX(258)-JVS(2549)*XX(259)-JVS(2639)*XX(261)-JVS(2750)*XX(263)-JVS(2786)*XX(264)-JVS(2936)& + &*XX(266)-JVS(3336)*XX(275)-JVS(3490)*XX(278)-JVS(3591)*XX(279)-JVS(3776)*XX(282)-JVS(3972)*XX(284)-JVS(4026)& + &*XX(285)-JVS(4238)*XX(286)-JVS(4467)*XX(290)-JVS(4598)*XX(291) + XX(254) = XX(254)-JVS(2462)*XX(255)-JVS(2494)*XX(257)-JVS(2511)*XX(258)-JVS(2548)*XX(259)-JVS(2638)*XX(261)-JVS(2749)& + &*XX(263)-JVS(2785)*XX(264)-JVS(2862)*XX(265)-JVS(2935)*XX(266)-JVS(3035)*XX(267)-JVS(3226)*XX(273)-JVS(3335)& + &*XX(275)-JVS(3489)*XX(278)-JVS(3590)*XX(279)-JVS(3715)*XX(281)-JVS(3971)*XX(284)-JVS(4025)*XX(285)-JVS(4237)& + &*XX(286)-JVS(4375)*XX(289)-JVS(4466)*XX(290)-JVS(4597)*XX(291) + XX(253) = XX(253)-JVS(2547)*XX(259)-JVS(2637)*XX(261)-JVS(2748)*XX(263)-JVS(2784)*XX(264)-JVS(2861)*XX(265)-JVS(2934)& + &*XX(266)-JVS(3034)*XX(267)-JVS(3179)*XX(272)-JVS(3225)*XX(273)-JVS(3334)*XX(275)-JVS(3383)*XX(276)-JVS(3488)& + &*XX(278)-JVS(3589)*XX(279)-JVS(3714)*XX(281)-JVS(3775)*XX(282)-JVS(3970)*XX(284)-JVS(4236)*XX(286)-JVS(4337)& + &*XX(288)-JVS(4374)*XX(289)-JVS(4465)*XX(290)-JVS(4596)*XX(291) + XX(252) = XX(252)-JVS(2636)*XX(261)-JVS(2747)*XX(263)-JVS(2860)*XX(265)-JVS(2933)*XX(266)-JVS(3033)*XX(267)-JVS(3333)& + &*XX(275)-JVS(3487)*XX(278)-JVS(3588)*XX(279)-JVS(3713)*XX(281)-JVS(3969)*XX(284)-JVS(4235)*XX(286)-JVS(4464)& + &*XX(290)-JVS(4595)*XX(291) + XX(251) = XX(251)-JVS(2410)*XX(252)-JVS(2635)*XX(261)-JVS(2746)*XX(263)-JVS(2859)*XX(265)-JVS(2932)*XX(266)-JVS(3032)& + &*XX(267)-JVS(3332)*XX(275)-JVS(3382)*XX(276)-JVS(3486)*XX(278)-JVS(3587)*XX(279)-JVS(3712)*XX(281)-JVS(3774)& + &*XX(282)-JVS(3968)*XX(284)-JVS(4234)*XX(286)-JVS(4336)*XX(288)-JVS(4463)*XX(290)-JVS(4594)*XX(291) + XX(250) = XX(250)-JVS(2634)*XX(261)-JVS(2745)*XX(263)-JVS(2858)*XX(265)-JVS(2931)*XX(266)-JVS(3031)*XX(267)-JVS(3331)& + &*XX(275)-JVS(3485)*XX(278)-JVS(3711)*XX(281)-JVS(3967)*XX(284)-JVS(4233)*XX(286)-JVS(4462)*XX(290) + XX(249) = XX(249)-JVS(2358)*XX(250)-JVS(2633)*XX(261)-JVS(2744)*XX(263)-JVS(2857)*XX(265)-JVS(2930)*XX(266)-JVS(3030)& + &*XX(267)-JVS(3330)*XX(275)-JVS(3484)*XX(278)-JVS(3586)*XX(279)-JVS(3710)*XX(281)-JVS(3773)*XX(282)-JVS(3966)& + &*XX(284)-JVS(4232)*XX(286)-JVS(4461)*XX(290)-JVS(4593)*XX(291) + XX(248) = XX(248)-JVS(2428)*XX(253)-JVS(2461)*XX(255)-JVS(2632)*XX(261)-JVS(2743)*XX(263)-JVS(2856)*XX(265)-JVS(2929)& + &*XX(266)-JVS(3029)*XX(267)-JVS(3329)*XX(275)-JVS(3381)*XX(276)-JVS(3483)*XX(278)-JVS(3585)*XX(279)-JVS(3709)& + &*XX(281)-JVS(3772)*XX(282)-JVS(3965)*XX(284)-JVS(4231)*XX(286)-JVS(4335)*XX(288)-JVS(4460)*XX(290)-JVS(4592)& + &*XX(291) + XX(247) = XX(247)-JVS(2285)*XX(248)-JVS(2304)*XX(249)-JVS(2357)*XX(250)-JVS(2387)*XX(251)-JVS(2409)*XX(252)-JVS(2631)& + &*XX(261)-JVS(2742)*XX(263)-JVS(2855)*XX(265)-JVS(2928)*XX(266)-JVS(3028)*XX(267)-JVS(3328)*XX(275)-JVS(3482)& + &*XX(278)-JVS(3584)*XX(279)-JVS(3708)*XX(281)-JVS(3964)*XX(284)-JVS(4230)*XX(286)-JVS(4459)*XX(290)-JVS(4591)& + &*XX(291) + XX(246) = XX(246)-JVS(2261)*XX(247)-JVS(2284)*XX(248)-JVS(2303)*XX(249)-JVS(2356)*XX(250)-JVS(2386)*XX(251)-JVS(2408)& + &*XX(252)-JVS(2630)*XX(261)-JVS(2741)*XX(263)-JVS(2854)*XX(265)-JVS(2927)*XX(266)-JVS(3027)*XX(267)-JVS(3327)& + &*XX(275)-JVS(3481)*XX(278)-JVS(3583)*XX(279)-JVS(3707)*XX(281)-JVS(3963)*XX(284)-JVS(4229)*XX(286)-JVS(4458)& + &*XX(290)-JVS(4590)*XX(291) + XX(245) = XX(245)-JVS(2283)*XX(248)-JVS(2302)*XX(249)-JVS(2355)*XX(250)-JVS(2385)*XX(251)-JVS(2407)*XX(252)-JVS(2629)& + &*XX(261)-JVS(2740)*XX(263)-JVS(2853)*XX(265)-JVS(2926)*XX(266)-JVS(3026)*XX(267)-JVS(3326)*XX(275)-JVS(3480)& + &*XX(278)-JVS(3582)*XX(279)-JVS(3706)*XX(281)-JVS(3962)*XX(284)-JVS(4228)*XX(286)-JVS(4457)*XX(290)-JVS(4589)& + &*XX(291) + XX(244) = XX(244)-JVS(2237)*XX(245)-JVS(2282)*XX(248)-JVS(2301)*XX(249)-JVS(2354)*XX(250)-JVS(2384)*XX(251)-JVS(2406)& + &*XX(252)-JVS(2628)*XX(261)-JVS(2739)*XX(263)-JVS(2852)*XX(265)-JVS(2925)*XX(266)-JVS(3025)*XX(267)-JVS(3325)& + &*XX(275)-JVS(3479)*XX(278)-JVS(3581)*XX(279)-JVS(3705)*XX(281)-JVS(3961)*XX(284)-JVS(4227)*XX(286)-JVS(4456)& + &*XX(290)-JVS(4588)*XX(291) + XX(243) = XX(243)-JVS(2281)*XX(248)-JVS(2300)*XX(249)-JVS(2353)*XX(250)-JVS(2383)*XX(251)-JVS(2405)*XX(252)-JVS(2627)& + &*XX(261)-JVS(2738)*XX(263)-JVS(2851)*XX(265)-JVS(3024)*XX(267)-JVS(3324)*XX(275)-JVS(3478)*XX(278)-JVS(3580)& + &*XX(279)-JVS(3704)*XX(281)-JVS(3960)*XX(284)-JVS(4226)*XX(286)-JVS(4455)*XX(290)-JVS(4587)*XX(291) + XX(242) = XX(242)-JVS(2207)*XX(243)-JVS(2299)*XX(249)-JVS(2352)*XX(250)-JVS(2404)*XX(252)-JVS(2626)*XX(261)-JVS(2737)& + &*XX(263)-JVS(2850)*XX(265)-JVS(3023)*XX(267)-JVS(3323)*XX(275)-JVS(3477)*XX(278)-JVS(3579)*XX(279)-JVS(3703)& + &*XX(281)-JVS(3959)*XX(284)-JVS(4225)*XX(286)-JVS(4454)*XX(290)-JVS(4586)*XX(291) + XX(241) = XX(241)-JVS(2625)*XX(261)-JVS(2736)*XX(263)-JVS(2849)*XX(265)-JVS(3022)*XX(267)-JVS(3322)*XX(275)-JVS(3476)& + &*XX(278)-JVS(3702)*XX(281)-JVS(3958)*XX(284)-JVS(4224)*XX(286)-JVS(4453)*XX(290)-JVS(4585)*XX(291) + XX(240) = XX(240)-JVS(2153)*XX(241)-JVS(2298)*XX(249)-JVS(2351)*XX(250)-JVS(2403)*XX(252)-JVS(2624)*XX(261)-JVS(2735)& + &*XX(263)-JVS(2848)*XX(265)-JVS(3021)*XX(267)-JVS(3321)*XX(275)-JVS(3475)*XX(278)-JVS(3578)*XX(279)-JVS(3701)& + &*XX(281)-JVS(3957)*XX(284)-JVS(4223)*XX(286)-JVS(4452)*XX(290)-JVS(4584)*XX(291) + XX(239) = XX(239)-JVS(2623)*XX(261)-JVS(2734)*XX(263)-JVS(2783)*XX(264)-JVS(2924)*XX(266)-JVS(3320)*XX(275)-JVS(3474)& + &*XX(278)-JVS(3577)*XX(279)-JVS(3956)*XX(284)-JVS(4024)*XX(285)-JVS(4222)*XX(286)-JVS(4451)*XX(290)-JVS(4583)& + &*XX(291) + XX(238) = XX(238)-JVS(2111)*XX(239)-JVS(2350)*XX(250)-JVS(2402)*XX(252)-JVS(2443)*XX(254)-JVS(2460)*XX(255)-JVS(2481)& + &*XX(256)-JVS(2510)*XX(258)-JVS(2546)*XX(259)-JVS(2622)*XX(261)-JVS(2733)*XX(263)-JVS(2847)*XX(265)-JVS(2923)& + &*XX(266)-JVS(3020)*XX(267)-JVS(3224)*XX(273)-JVS(3319)*XX(275)-JVS(3473)*XX(278)-JVS(3576)*XX(279)-JVS(3700)& + &*XX(281)-JVS(3771)*XX(282)-JVS(3955)*XX(284)-JVS(4221)*XX(286)-JVS(4373)*XX(289)-JVS(4450)*XX(290)-JVS(4582)& + &*XX(291) + XX(237) = XX(237)-JVS(2545)*XX(259)-JVS(2621)*XX(261)-JVS(2732)*XX(263)-JVS(2922)*XX(266)-JVS(3318)*XX(275)-JVS(3472)& + &*XX(278)-JVS(3575)*XX(279)-JVS(3954)*XX(284)-JVS(4220)*XX(286)-JVS(4449)*XX(290)-JVS(4581)*XX(291) + XX(236) = XX(236)-JVS(2731)*XX(263)-JVS(2846)*XX(265)-JVS(3019)*XX(267)-JVS(3317)*XX(275)-JVS(3471)*XX(278)-JVS(3699)& + &*XX(281)-JVS(3953)*XX(284)-JVS(4219)*XX(286)-JVS(4448)*XX(290) + XX(235) = XX(235)-JVS(3129)*XX(271)-JVS(3178)*XX(272)-JVS(3223)*XX(273)-JVS(3316)*XX(275)-JVS(3414)*XX(277)-JVS(3470)& + &*XX(278)-JVS(3574)*XX(279)-JVS(3627)*XX(280)-JVS(3809)*XX(283)-JVS(4023)*XX(285)-JVS(4218)*XX(286)-JVS(4278)& + &*XX(287)-JVS(4334)*XX(288)-JVS(4372)*XX(289)-JVS(4447)*XX(290)-JVS(4580)*XX(291) + XX(234) = XX(234)-JVS(2730)*XX(263)-JVS(3018)*XX(267)-JVS(3315)*XX(275)-JVS(3380)*XX(276)-JVS(3469)*XX(278)-JVS(3573)& + &*XX(279)-JVS(3698)*XX(281)-JVS(3770)*XX(282)-JVS(3952)*XX(284)-JVS(4217)*XX(286)-JVS(4333)*XX(288)-JVS(4446)& + &*XX(290)-JVS(4579)*XX(291) + XX(233) = XX(233)-JVS(2620)*XX(261)-JVS(2845)*XX(265)-JVS(3017)*XX(267)-JVS(3697)*XX(281)-JVS(3951)*XX(284)-JVS(4216)& + &*XX(286) + XX(232) = XX(232)-JVS(1977)*XX(233)-JVS(2056)*XX(236)-JVS(2152)*XX(241)-JVS(2184)*XX(242)-JVS(2206)*XX(243)-JVS(2349)& + &*XX(250)-JVS(2619)*XX(261)-JVS(2729)*XX(263)-JVS(2844)*XX(265)-JVS(3016)*XX(267)-JVS(3572)*XX(279)-JVS(3696)& + &*XX(281)-JVS(3950)*XX(284)-JVS(4215)*XX(286)-JVS(4578)*XX(291) + XX(231) = XX(231)-JVS(1976)*XX(233)-JVS(2348)*XX(250)-JVS(2401)*XX(252)-JVS(2618)*XX(261)-JVS(2728)*XX(263)-JVS(3015)& + &*XX(267)-JVS(3468)*XX(278)-JVS(3949)*XX(284)-JVS(4214)*XX(286) + XX(230) = XX(230)-JVS(1975)*XX(233)-JVS(2055)*XX(236)-JVS(2617)*XX(261)-JVS(2727)*XX(263)-JVS(2843)*XX(265)-JVS(3014)& + &*XX(267)-JVS(3695)*XX(281)-JVS(3948)*XX(284)-JVS(4213)*XX(286) + XX(229) = XX(229)-JVS(1877)*XX(230)-JVS(1911)*XX(231)-JVS(1974)*XX(233)-JVS(2054)*XX(236)-JVS(2347)*XX(250)-JVS(2616)& + &*XX(261)-JVS(2726)*XX(263)-JVS(2842)*XX(265)-JVS(3013)*XX(267)-JVS(3571)*XX(279)-JVS(3694)*XX(281)-JVS(3947)& + &*XX(284)-JVS(4212)*XX(286)-JVS(4577)*XX(291) + XX(228) = XX(228)-JVS(1851)*XX(229)-JVS(1876)*XX(230)-JVS(1910)*XX(231)-JVS(1973)*XX(233)-JVS(2053)*XX(236)-JVS(2346)& + &*XX(250)-JVS(2615)*XX(261)-JVS(2725)*XX(263)-JVS(2841)*XX(265)-JVS(3012)*XX(267)-JVS(3570)*XX(279)-JVS(3693)& + &*XX(281)-JVS(3946)*XX(284)-JVS(4211)*XX(286)-JVS(4576)*XX(291) + XX(227) = XX(227)-JVS(3060)*XX(268)-JVS(3089)*XX(269)-JVS(3108)*XX(270)-JVS(3128)*XX(271)-JVS(3222)*XX(273)-JVS(3269)& + &*XX(274)-JVS(3569)*XX(279)-JVS(3945)*XX(284)-JVS(4022)*XX(285)-JVS(4210)*XX(286)-JVS(4332)*XX(288)-JVS(4445)& + &*XX(290)-JVS(4575)*XX(291) + XX(226) = XX(226)-JVS(2079)*XX(237)-JVS(2110)*XX(239)-JVS(2442)*XX(254)-JVS(2459)*XX(255)-JVS(2509)*XX(258)-JVS(2614)& + &*XX(261)-JVS(2840)*XX(265)-JVS(2921)*XX(266)-JVS(3467)*XX(278)-JVS(3692)*XX(281)-JVS(4209)*XX(286) + XX(225) = XX(225)-JVS(1794)*XX(226)-JVS(2345)*XX(250)-JVS(2382)*XX(251)-JVS(2427)*XX(253)-JVS(2480)*XX(256)-JVS(2544)& + &*XX(259)-JVS(2613)*XX(261)-JVS(2724)*XX(263)-JVS(2839)*XX(265)-JVS(2920)*XX(266)-JVS(3314)*XX(275)-JVS(3568)& + &*XX(279)-JVS(3691)*XX(281)-JVS(3769)*XX(282)-JVS(3944)*XX(284)-JVS(4208)*XX(286)-JVS(4444)*XX(290)-JVS(4574)& + &*XX(291) + XX(224) = XX(224)-JVS(1875)*XX(230)-JVS(1909)*XX(231)-JVS(1972)*XX(233)-JVS(2004)*XX(234)-JVS(2052)*XX(236)-JVS(2151)& + &*XX(241)-JVS(2222)*XX(244)-JVS(2236)*XX(245)-JVS(2248)*XX(246)-JVS(2260)*XX(247)-JVS(2280)*XX(248)-JVS(2297)& + &*XX(249)-JVS(2344)*XX(250)-JVS(2381)*XX(251)-JVS(2400)*XX(252)-JVS(2612)*XX(261)-JVS(2723)*XX(263)-JVS(2838)& + &*XX(265)-JVS(2919)*XX(266)-JVS(3011)*XX(267)-JVS(3313)*XX(275)-JVS(3379)*XX(276)-JVS(3466)*XX(278)-JVS(3567)& + &*XX(279)-JVS(3690)*XX(281)-JVS(3768)*XX(282)-JVS(3943)*XX(284)-JVS(4207)*XX(286)-JVS(4331)*XX(288)-JVS(4443)& + &*XX(290)-JVS(4573)*XX(291) + XX(223) = XX(223)-JVS(2722)*XX(263)-JVS(2837)*XX(265)-JVS(3010)*XX(267)-JVS(3689)*XX(281)-JVS(3942)*XX(284)-JVS(4206)& + &*XX(286) + XX(222) = XX(222)-JVS(1752)*XX(223)-JVS(1874)*XX(230)-JVS(1908)*XX(231)-JVS(1971)*XX(233)-JVS(2051)*XX(236)-JVS(2150)& + &*XX(241)-JVS(2183)*XX(242)-JVS(2205)*XX(243)-JVS(2343)*XX(250)-JVS(2399)*XX(252)-JVS(2611)*XX(261)-JVS(2721)& + &*XX(263)-JVS(2836)*XX(265)-JVS(3009)*XX(267)-JVS(3465)*XX(278)-JVS(3566)*XX(279)-JVS(3688)*XX(281)-JVS(3941)& + &*XX(284)-JVS(4205)*XX(286)-JVS(4572)*XX(291) + XX(221) = XX(221)-JVS(2398)*XX(252)-JVS(2610)*XX(261)-JVS(2918)*XX(266)-JVS(3008)*XX(267)-JVS(3221)*XX(273)-JVS(3312)& + &*XX(275)-JVS(3464)*XX(278)-JVS(4204)*XX(286)-JVS(4371)*XX(289)-JVS(4442)*XX(290) + XX(220) = XX(220)-JVS(1751)*XX(223)-JVS(1830)*XX(228)-JVS(1850)*XX(229)-JVS(1873)*XX(230)-JVS(1907)*XX(231)-JVS(1970)& + &*XX(233)-JVS(2050)*XX(236)-JVS(2130)*XX(240)-JVS(2182)*XX(242)-JVS(2204)*XX(243)-JVS(2342)*XX(250)-JVS(2609)& + &*XX(261)-JVS(2720)*XX(263)-JVS(2835)*XX(265)-JVS(3007)*XX(267)-JVS(3565)*XX(279)-JVS(3940)*XX(284)-JVS(4203)& + &*XX(286)-JVS(4571)*XX(291) + XX(219) = XX(219)-JVS(2917)*XX(266)-JVS(3311)*XX(275)-JVS(3463)*XX(278)-JVS(4202)*XX(286)-JVS(4441)*XX(290) + XX(218) = XX(218)-JVS(2719)*XX(263)-JVS(3310)*XX(275)-JVS(3939)*XX(284)-JVS(4201)*XX(286)-JVS(4440)*XX(290) + XX(217) = XX(217)-JVS(1648)*XX(218)-JVS(1676)*XX(219)-JVS(2109)*XX(239)-JVS(2608)*XX(261)-JVS(2718)*XX(263)-JVS(2782)& + &*XX(264)-JVS(2916)*XX(266)-JVS(3309)*XX(275)-JVS(3564)*XX(279)-JVS(3938)*XX(284)-JVS(4021)*XX(285)-JVS(4200)& + &*XX(286)-JVS(4439)*XX(290)-JVS(4570)*XX(291) + XX(216) = XX(216)-JVS(1647)*XX(218)-JVS(1793)*XX(226)-JVS(2341)*XX(250)-JVS(2543)*XX(259)-JVS(2607)*XX(261)-JVS(2717)& + &*XX(263)-JVS(2834)*XX(265)-JVS(2915)*XX(266)-JVS(3563)*XX(279)-JVS(3687)*XX(281)-JVS(3767)*XX(282)-JVS(3937)& + &*XX(284)-JVS(4199)*XX(286)-JVS(4569)*XX(291) + XX(215) = XX(215)-JVS(1625)*XX(216)-JVS(1792)*XX(226)-JVS(2340)*XX(250)-JVS(2542)*XX(259)-JVS(2606)*XX(261)-JVS(2716)& + &*XX(263)-JVS(2833)*XX(265)-JVS(2914)*XX(266)-JVS(3562)*XX(279)-JVS(3686)*XX(281)-JVS(3766)*XX(282)-JVS(3936)& + &*XX(284)-JVS(4198)*XX(286)-JVS(4568)*XX(291) + XX(214) = XX(214)-JVS(1750)*XX(223)-JVS(1829)*XX(228)-JVS(1849)*XX(229)-JVS(1872)*XX(230)-JVS(1906)*XX(231)-JVS(1969)& + &*XX(233)-JVS(2049)*XX(236)-JVS(2129)*XX(240)-JVS(2149)*XX(241)-JVS(2181)*XX(242)-JVS(2203)*XX(243)-JVS(2339)& + &*XX(250)-JVS(2605)*XX(261)-JVS(2715)*XX(263)-JVS(2832)*XX(265)-JVS(3006)*XX(267)-JVS(3561)*XX(279)-JVS(3685)& + &*XX(281)-JVS(3935)*XX(284)-JVS(4197)*XX(286)-JVS(4567)*XX(291) + XX(213) = XX(213)-JVS(1871)*XX(230)-JVS(1905)*XX(231)-JVS(1968)*XX(233)-JVS(2048)*XX(236)-JVS(2831)*XX(265)-JVS(3005)& + &*XX(267)-JVS(3934)*XX(284)-JVS(4196)*XX(286)-JVS(4566)*XX(291) + XX(212) = XX(212)-JVS(3308)*XX(275)-JVS(3378)*XX(276)-JVS(3462)*XX(278)-JVS(3933)*XX(284)-JVS(4195)*XX(286)-JVS(4330)& + &*XX(288)-JVS(4438)*XX(290) + XX(211) = XX(211)-JVS(3307)*XX(275)-JVS(3461)*XX(278)-JVS(3932)*XX(284)-JVS(4194)*XX(286)-JVS(4437)*XX(290) + XX(210) = XX(210)-JVS(1542)*XX(211)-JVS(1749)*XX(223)-JVS(2047)*XX(236)-JVS(2458)*XX(255)-JVS(2493)*XX(257)-JVS(2541)& + &*XX(259)-JVS(2830)*XX(265)-JVS(3004)*XX(267)-JVS(3460)*XX(278)-JVS(3560)*XX(279)-JVS(3684)*XX(281)-JVS(3765)& + &*XX(282)-JVS(3931)*XX(284)-JVS(4193)*XX(286)-JVS(4565)*XX(291) + XX(209) = XX(209)-JVS(1646)*XX(218)-JVS(1675)*XX(219)-JVS(2338)*XX(250)-JVS(2540)*XX(259)-JVS(2604)*XX(261)-JVS(2714)& + &*XX(263)-JVS(2781)*XX(264)-JVS(2913)*XX(266)-JVS(3559)*XX(279)-JVS(3930)*XX(284)-JVS(4192)*XX(286)-JVS(4564)& + &*XX(291) + XX(208) = XX(208)-JVS(2603)*XX(261)-JVS(2713)*XX(263)-JVS(2829)*XX(265)-JVS(3003)*XX(267)-JVS(3683)*XX(281)-JVS(3929)& + &*XX(284)-JVS(4191)*XX(286)-JVS(4563)*XX(291) + XX(207) = XX(207)-JVS(1541)*XX(211)-JVS(1967)*XX(233)-JVS(2337)*XX(250)-JVS(2602)*XX(261)-JVS(2712)*XX(263)-JVS(2912)& + &*XX(266)-JVS(3002)*XX(267)-JVS(3558)*XX(279)-JVS(3682)*XX(281)-JVS(3764)*XX(282)-JVS(3928)*XX(284)-JVS(4190)& + &*XX(286)-JVS(4562)*XX(291) + XX(206) = XX(206)-JVS(1748)*XX(223)-JVS(1904)*XX(231)-JVS(1966)*XX(233)-JVS(2046)*XX(236)-JVS(2336)*XX(250)-JVS(2601)& + &*XX(261)-JVS(2711)*XX(263)-JVS(3001)*XX(267)-JVS(3927)*XX(284)-JVS(4189)*XX(286) + XX(205) = XX(205)-JVS(1903)*XX(231)-JVS(1965)*XX(233)-JVS(2296)*XX(249)-JVS(2335)*XX(250)-JVS(2710)*XX(263)-JVS(2828)& + &*XX(265)-JVS(3000)*XX(267)-JVS(3557)*XX(279)-JVS(3926)*XX(284)-JVS(4188)*XX(286)-JVS(4561)*XX(291) + XX(204) = XX(204)-JVS(1870)*XX(230)-JVS(1964)*XX(233)-JVS(2045)*XX(236)-JVS(2148)*XX(241)-JVS(2600)*XX(261)-JVS(2709)& + &*XX(263)-JVS(2999)*XX(267)-JVS(3556)*XX(279)-JVS(3925)*XX(284)-JVS(4187)*XX(286)-JVS(4560)*XX(291) + XX(203) = XX(203)-JVS(3059)*XX(268)-JVS(3088)*XX(269)-JVS(3107)*XX(270)-JVS(3220)*XX(273)-JVS(3413)*XX(277)-JVS(3459)& + &*XX(278)-JVS(3555)*XX(279)-JVS(3626)*XX(280)-JVS(3681)*XX(281)-JVS(3808)*XX(283)-JVS(4186)*XX(286)-JVS(4277)& + &*XX(287)-JVS(4436)*XX(290)-JVS(4559)*XX(291) + XX(202) = XX(202)-JVS(1709)*XX(221)-JVS(1791)*XX(226)-JVS(2078)*XX(237)-JVS(2108)*XX(239)-JVS(2492)*XX(257)-JVS(2508)& + &*XX(258)-JVS(2539)*XX(259)-JVS(2780)*XX(264)-JVS(2827)*XX(265)-JVS(2911)*XX(266)-JVS(3458)*XX(278)-JVS(3924)& + &*XX(284)-JVS(4185)*XX(286)-JVS(4558)*XX(291) + XX(201) = XX(201)-JVS(1645)*XX(218)-JVS(1674)*XX(219)-JVS(1963)*XX(233)-JVS(2538)*XX(259)-JVS(2599)*XX(261)-JVS(2708)& + &*XX(263)-JVS(2779)*XX(264)-JVS(2910)*XX(266)-JVS(3554)*XX(279)-JVS(3923)*XX(284)-JVS(4184)*XX(286)-JVS(4557)& + &*XX(291) + XX(200) = XX(200)-JVS(2295)*XX(249)-JVS(2334)*XX(250)-JVS(2826)*XX(265)-JVS(2998)*XX(267)-JVS(3922)*XX(284)-JVS(4183)& + &*XX(286)-JVS(4556)*XX(291) + XX(199) = XX(199)-JVS(2333)*XX(250)-JVS(2537)*XX(259)-JVS(2825)*XX(265)-JVS(3680)*XX(281)-JVS(3763)*XX(282)-JVS(4182)& + &*XX(286)-JVS(4555)*XX(291) + XX(198) = XX(198)-JVS(1962)*XX(233)-JVS(2598)*XX(261)-JVS(2707)*XX(263)-JVS(4181)*XX(286)-JVS(4554)*XX(291) + XX(197) = XX(197)-JVS(3127)*XX(271)-JVS(3177)*XX(272)-JVS(4020)*XX(285)-JVS(4180)*XX(286)-JVS(4329)*XX(288)-JVS(4435)& + &*XX(290) + XX(196) = XX(196)-JVS(1961)*XX(233)-JVS(2397)*XX(252)-JVS(2597)*XX(261)-JVS(2706)*XX(263)-JVS(3457)*XX(278)-JVS(4179)& + &*XX(286) + XX(195) = XX(195)-JVS(1568)*XX(212)-JVS(1673)*XX(219)-JVS(2778)*XX(264)-JVS(2997)*XX(267)-JVS(3377)*XX(276)-JVS(3456)& + &*XX(278)-JVS(3553)*XX(279)-JVS(3679)*XX(281)-JVS(4178)*XX(286)-JVS(4553)*XX(291) + XX(194) = XX(194)-JVS(1468)*XX(206)-JVS(1590)*XX(213)-JVS(2332)*XX(250)-JVS(2596)*XX(261)-JVS(2705)*XX(263)-JVS(2996)& + &*XX(267)-JVS(3552)*XX(279)-JVS(3921)*XX(284)-JVS(4177)*XX(286)-JVS(4552)*XX(291) + XX(193) = XX(193)-JVS(3455)*XX(278)-JVS(3551)*XX(279)-JVS(4176)*XX(286)-JVS(4551)*XX(291) + XX(192) = XX(192)-JVS(1828)*XX(228)-JVS(1848)*XX(229)-JVS(1869)*XX(230)-JVS(1902)*XX(231)-JVS(1960)*XX(233)-JVS(2995)& + &*XX(267)-JVS(3920)*XX(284)-JVS(4175)*XX(286) + XX(191) = XX(191)-JVS(1521)*XX(210)-JVS(2704)*XX(263)-JVS(2909)*XX(266)-JVS(3550)*XX(279)-JVS(3678)*XX(281)-JVS(3762)& + &*XX(282)-JVS(3919)*XX(284)-JVS(4174)*XX(286)-JVS(4550)*XX(291) + XX(190) = XX(190)-JVS(2703)*XX(263)-JVS(2908)*XX(266)-JVS(3176)*XX(272)-JVS(3306)*XX(275)-JVS(3454)*XX(278)-JVS(3761)& + &*XX(282)-JVS(3918)*XX(284)-JVS(4173)*XX(286)-JVS(4328)*XX(288)-JVS(4434)*XX(290) + XX(189) = XX(189)-JVS(1342)*XX(196)-JVS(1375)*XX(198)-JVS(1492)*XX(208)-JVS(1589)*XX(213)-JVS(1747)*XX(223)-JVS(2147)& + &*XX(241)-JVS(2180)*XX(242)-JVS(2202)*XX(243)-JVS(2702)*XX(263)-JVS(2824)*XX(265)-JVS(2994)*XX(267)-JVS(3549)& + &*XX(279)-JVS(3917)*XX(284)-JVS(4172)*XX(286)-JVS(4549)*XX(291) + XX(188) = XX(188)-JVS(1406)*XX(200)-JVS(1454)*XX(205)-JVS(1540)*XX(211)-JVS(1746)*XX(223)-JVS(1901)*XX(231)-JVS(1959)& + &*XX(233)-JVS(2331)*XX(250)-JVS(2380)*XX(251)-JVS(2595)*XX(261)-JVS(2701)*XX(263)-JVS(2993)*XX(267)-JVS(3548)& + &*XX(279)-JVS(3916)*XX(284)-JVS(4171)*XX(286)-JVS(4548)*XX(291) + XX(187) = XX(187)-JVS(1467)*XX(206)-JVS(1745)*XX(223)-JVS(1868)*XX(230)-JVS(1900)*XX(231)-JVS(1958)*XX(233)-JVS(2044)& + &*XX(236)-JVS(2179)*XX(242)-JVS(2330)*XX(250)-JVS(3547)*XX(279)-JVS(3915)*XX(284)-JVS(4170)*XX(286)-JVS(4547)& + &*XX(291) + XX(186) = XX(186)-JVS(1443)*XX(204)-JVS(1539)*XX(211)-JVS(1744)*XX(223)-JVS(1867)*XX(230)-JVS(1957)*XX(233)-JVS(2146)& + &*XX(241)-JVS(2279)*XX(248)-JVS(2329)*XX(250)-JVS(2594)*XX(261)-JVS(2700)*XX(263)-JVS(2992)*XX(267)-JVS(3546)& + &*XX(279)-JVS(3914)*XX(284)-JVS(4169)*XX(286)-JVS(4546)*XX(291) + XX(185) = XX(185)-JVS(1743)*XX(223)-JVS(1956)*XX(233)-JVS(2593)*XX(261)-JVS(2991)*XX(267)-JVS(3913)*XX(284) + XX(184) = XX(184)-JVS(2592)*XX(261)-JVS(2699)*XX(263)-JVS(2907)*XX(266)-JVS(3545)*XX(279)-JVS(3677)*XX(281)-JVS(3912)& + &*XX(284)-JVS(4168)*XX(286)-JVS(4545)*XX(291) + XX(183) = XX(183)-JVS(1341)*XX(196)-JVS(1466)*XX(206)-JVS(1742)*XX(223)-JVS(1866)*XX(230)-JVS(1899)*XX(231)-JVS(1955)& + &*XX(233)-JVS(2043)*XX(236)-JVS(2178)*XX(242)-JVS(2328)*XX(250)-JVS(2698)*XX(263)-JVS(3544)*XX(279)-JVS(3911)& + &*XX(284)-JVS(4167)*XX(286)-JVS(4544)*XX(291) + XX(182) = XX(182)-JVS(1465)*XX(206)-JVS(1741)*XX(223)-JVS(1865)*XX(230)-JVS(1898)*XX(231)-JVS(1954)*XX(233)-JVS(2042)& + &*XX(236)-JVS(2177)*XX(242)-JVS(2327)*XX(250)-JVS(2697)*XX(263)-JVS(2990)*XX(267)-JVS(3543)*XX(279)-JVS(3910)& + &*XX(284)-JVS(4166)*XX(286)-JVS(4543)*XX(291) + XX(181) = XX(181)-JVS(1723)*XX(222)-JVS(1930)*XX(232)-JVS(2176)*XX(242)-JVS(2259)*XX(247)-JVS(2278)*XX(248)-JVS(2379)& + &*XX(251)-JVS(2696)*XX(263)-JVS(2823)*XX(265)-JVS(3909)*XX(284)-JVS(4165)*XX(286)-JVS(4542)*XX(291) + XX(180) = XX(180)-JVS(1279)*XX(191)-JVS(1520)*XX(210)-JVS(2695)*XX(263)-JVS(2906)*XX(266)-JVS(3542)*XX(279)-JVS(3760)& + &*XX(282)-JVS(3908)*XX(284)-JVS(4164)*XX(286)-JVS(4541)*XX(291) + XX(179) = XX(179)-JVS(1644)*XX(218)-JVS(2041)*XX(236)-JVS(2694)*XX(263)-JVS(2905)*XX(266)-JVS(3541)*XX(279)-JVS(3676)& + &*XX(281)-JVS(3907)*XX(284)-JVS(4163)*XX(286)-JVS(4540)*XX(291) + XX(178) = XX(178)-JVS(1790)*XX(226)-JVS(2326)*XX(250)-JVS(2822)*XX(265)-JVS(3675)*XX(281)-JVS(4162)*XX(286)-JVS(4539)& + &*XX(291) + XX(177) = XX(177)-JVS(3453)*XX(278)-JVS(3759)*XX(282)-JVS(3906)*XX(284)-JVS(4161)*XX(286)-JVS(4327)*XX(288) + XX(176) = XX(176)-JVS(2565)*XX(260)-JVS(2821)*XX(265)-JVS(3219)*XX(273)-JVS(3268)*XX(274)-JVS(3305)*XX(275)-JVS(3452)& + &*XX(278)-JVS(3674)*XX(281)-JVS(4160)*XX(286)-JVS(4433)*XX(290)-JVS(4538)*XX(291) + XX(175) = XX(175)-JVS(1374)*XX(198)-JVS(2820)*XX(265)-JVS(2989)*XX(267)-JVS(3905)*XX(284)-JVS(4159)*XX(286) + XX(174) = XX(174)-JVS(1953)*XX(233)-JVS(2325)*XX(250)-JVS(2693)*XX(263)-JVS(2988)*XX(267) + XX(173) = XX(173)-JVS(2018)*XX(235)-JVS(2819)*XX(265)-JVS(3304)*XX(275)-JVS(3451)*XX(278)-JVS(3625)*XX(280)-JVS(3673)& + &*XX(281)-JVS(4276)*XX(287)-JVS(4537)*XX(291) + XX(172) = XX(172)-JVS(1740)*XX(223)-JVS(2692)*XX(263)-JVS(2987)*XX(267)-JVS(3904)*XX(284)-JVS(4158)*XX(286) + XX(171) = XX(171)-JVS(1089)*XX(172)-JVS(1118)*XX(174)-JVS(1198)*XX(182)-JVS(1242)*XX(186)-JVS(1289)*XX(192)-JVS(1323)& + &*XX(194)-JVS(1864)*XX(230)-JVS(1952)*XX(233)-JVS(2235)*XX(245)-JVS(2277)*XX(248)-JVS(2591)*XX(261)-JVS(2691)& + &*XX(263)-JVS(2986)*XX(267)-JVS(3903)*XX(284)-JVS(4157)*XX(286) + XX(170) = XX(170)-JVS(1538)*XX(211)-JVS(1567)*XX(212)-JVS(1612)*XX(215)-JVS(1624)*XX(216)-JVS(1778)*XX(225)-JVS(2107)& + &*XX(239)-JVS(2378)*XX(251)-JVS(2426)*XX(253)-JVS(2441)*XX(254)-JVS(2690)*XX(263)-JVS(2985)*XX(267)-JVS(3672)& + &*XX(281)-JVS(3758)*XX(282)-JVS(3902)*XX(284)-JVS(4156)*XX(286) + XX(169) = XX(169)-JVS(2590)*XX(261)-JVS(2689)*XX(263)-JVS(2984)*XX(267)-JVS(3901)*XX(284)-JVS(4155)*XX(286) + XX(168) = XX(168)-JVS(1491)*XX(208)-JVS(1588)*XX(213)-JVS(2145)*XX(241)-JVS(2175)*XX(242)-JVS(2201)*XX(243)-JVS(2324)& + &*XX(250)-JVS(2688)*XX(263)-JVS(3540)*XX(279)-JVS(3900)*XX(284)-JVS(4154)*XX(286)-JVS(4536)*XX(291) + XX(167) = XX(167)-JVS(1405)*XX(200)-JVS(1587)*XX(213)-JVS(2040)*XX(236)-JVS(2174)*XX(242)-JVS(2200)*XX(243)-JVS(2323)& + &*XX(250)-JVS(2687)*XX(263)-JVS(3539)*XX(279)-JVS(3899)*XX(284)-JVS(4153)*XX(286)-JVS(4535)*XX(291) + XX(166) = XX(166)-JVS(1132)*XX(175)-JVS(1373)*XX(198)-JVS(1586)*XX(213)-JVS(2039)*XX(236)-JVS(2173)*XX(242)-JVS(2199)& + &*XX(243)-JVS(2686)*XX(263)-JVS(3538)*XX(279)-JVS(3898)*XX(284)-JVS(4152)*XX(286)-JVS(4534)*XX(291) + XX(165) = XX(165)-JVS(1117)*XX(174)-JVS(1205)*XX(183)-JVS(1256)*XX(188)-JVS(1288)*XX(192)-JVS(1322)*XX(194)-JVS(1340)& + &*XX(196)-JVS(1897)*XX(231)-JVS(1951)*XX(233)-JVS(2221)*XX(244)-JVS(2377)*XX(251)-JVS(2685)*XX(263)-JVS(2983)& + &*XX(267)-JVS(3897)*XX(284)-JVS(4151)*XX(286) + XX(164) = XX(164)-JVS(1739)*XX(223)-JVS(1863)*XX(230)-JVS(1896)*XX(231)-JVS(1950)*XX(233)-JVS(2038)*XX(236)-JVS(2322)& + &*XX(250)-JVS(3896)*XX(284)-JVS(4150)*XX(286) + XX(163) = XX(163)-JVS(1228)*XX(185)-JVS(1537)*XX(211)-JVS(1738)*XX(223)-JVS(1949)*XX(233)-JVS(2589)*XX(261)-JVS(2982)& + &*XX(267)-JVS(3895)*XX(284)-JVS(4149)*XX(286) + XX(162) = XX(162)-JVS(1116)*XX(174)-JVS(1204)*XX(183)-JVS(1249)*XX(187)-JVS(1321)*XX(194)-JVS(1827)*XX(228)-JVS(1847)& + &*XX(229)-JVS(1895)*XX(231)-JVS(2220)*XX(244)-JVS(2376)*XX(251)-JVS(2684)*XX(263)-JVS(2981)*XX(267)-JVS(3894)& + &*XX(284)-JVS(4148)*XX(286) + XX(161) = XX(161)-JVS(1634)*XX(217)-JVS(2818)*XX(265)-JVS(3218)*XX(273)-JVS(3303)*XX(275)-JVS(3450)*XX(278)-JVS(3671)& + &*XX(281)-JVS(4147)*XX(286)-JVS(4370)*XX(289)-JVS(4432)*XX(290) + XX(160) = XX(160)-JVS(1278)*XX(191)-JVS(1519)*XX(210)-JVS(3757)*XX(282)-JVS(4533)*XX(291) + XX(159) = XX(159)-JVS(1536)*XX(211)-JVS(1737)*XX(223)-JVS(2037)*XX(236)-JVS(2457)*XX(255)-JVS(2536)*XX(259)-JVS(2980)& + &*XX(267)-JVS(3756)*XX(282)-JVS(3893)*XX(284)-JVS(4146)*XX(286) + XX(158) = XX(158)-JVS(2535)*XX(259)-JVS(3892)*XX(284)-JVS(4145)*XX(286) + XX(157) = XX(157)-JVS(1115)*XX(174)-JVS(1197)*XX(182)-JVS(1248)*XX(187)-JVS(1826)*XX(228)-JVS(1846)*XX(229)-JVS(1862)& + &*XX(230)-JVS(2234)*XX(245)-JVS(2276)*XX(248)-JVS(2683)*XX(263)-JVS(2979)*XX(267)-JVS(3891)*XX(284)-JVS(4144)& + &*XX(286) + XX(156) = XX(156)-JVS(1736)*XX(223)-JVS(1948)*XX(233)-JVS(2588)*XX(261)-JVS(2978)*XX(267)-JVS(3890)*XX(284)-JVS(4143)& + &*XX(286) + XX(155) = XX(155)-JVS(1566)*XX(212)-JVS(1611)*XX(215)-JVS(1623)*XX(216)-JVS(1789)*XX(226)-JVS(2097)*XX(238)-JVS(2440)& + &*XX(254)-JVS(2534)*XX(259)-JVS(2977)*XX(267)-JVS(3670)*XX(281)-JVS(3755)*XX(282)-JVS(3889)*XX(284)-JVS(4142)& + &*XX(286) + XX(154) = XX(154)-JVS(1565)*XX(212)-JVS(1610)*XX(215)-JVS(1622)*XX(216)-JVS(1788)*XX(226)-JVS(2096)*XX(238)-JVS(2439)& + &*XX(254)-JVS(2533)*XX(259)-JVS(2976)*XX(267)-JVS(3669)*XX(281)-JVS(3754)*XX(282)-JVS(3888)*XX(284)-JVS(4141)& + &*XX(286) + XX(153) = XX(153)-JVS(1480)*XX(207)-JVS(1535)*XX(211)-JVS(1947)*XX(233)-JVS(2321)*XX(250)-JVS(2587)*XX(261)-JVS(2975)& + &*XX(267)-JVS(3668)*XX(281)-JVS(4140)*XX(286)-JVS(4532)*XX(291) + XX(152) = XX(152)-JVS(1585)*XX(213)-JVS(2144)*XX(241)-JVS(2172)*XX(242)-JVS(2198)*XX(243)-JVS(2682)*XX(263)-JVS(3537)& + &*XX(279)-JVS(3887)*XX(284)-JVS(4139)*XX(286)-JVS(4531)*XX(291) + XX(151) = XX(151)-JVS(1114)*XX(174)-JVS(1262)*XX(189)-JVS(1929)*XX(232)-JVS(2128)*XX(240)-JVS(2171)*XX(242)-JVS(2219)& + &*XX(244)-JVS(2233)*XX(245)-JVS(2247)*XX(246)-JVS(2817)*XX(265)-JVS(3886)*XX(284)-JVS(4138)*XX(286)-JVS(4530)& + &*XX(291) + XX(150) = XX(150)-JVS(1372)*XX(198)-JVS(1490)*XX(208)-JVS(2974)*XX(267)-JVS(3536)*XX(279)-JVS(3885)*XX(284)-JVS(4137)& + &*XX(286)-JVS(4529)*XX(291) + XX(149) = XX(149)-JVS(1150)*XX(177)-JVS(2904)*XX(266)-JVS(2973)*XX(267)-JVS(3175)*XX(272)-JVS(3302)*XX(275)-JVS(3449)& + &*XX(278)-JVS(3884)*XX(284)-JVS(4019)*XX(285)-JVS(4136)*XX(286)-JVS(4326)*XX(288)-JVS(4431)*XX(290) + XX(148) = XX(148)-JVS(1534)*XX(211)-JVS(1672)*XX(219)-JVS(1946)*XX(233)-JVS(2036)*XX(236)-JVS(2456)*XX(255)-JVS(2479)& + &*XX(256)-JVS(2532)*XX(259)-JVS(2972)*XX(267)-JVS(3753)*XX(282)-JVS(3883)*XX(284)-JVS(4135)*XX(286) + XX(147) = XX(147)-JVS(1302)*XX(193)-JVS(2816)*XX(265)-JVS(3301)*XX(275)-JVS(3376)*XX(276)-JVS(3624)*XX(280)-JVS(3752)& + &*XX(282)-JVS(4134)*XX(286)-JVS(4528)*XX(291) + XX(146) = XX(146)-JVS(1371)*XX(198)-JVS(1489)*XX(208)-JVS(2035)*XX(236)-JVS(2197)*XX(243)-JVS(3535)*XX(279)-JVS(3882)& + &*XX(284)-JVS(4133)*XX(286)-JVS(4527)*XX(291) + XX(145) = XX(145)-JVS(1404)*XX(200)-JVS(1453)*XX(205)-JVS(3534)*XX(279)-JVS(3881)*XX(284)-JVS(4132)*XX(286)-JVS(4526)& + &*XX(291) + XX(144) = XX(144)-JVS(1442)*XX(204)-JVS(2143)*XX(241)-JVS(3533)*XX(279)-JVS(3880)*XX(284)-JVS(4131)*XX(286)-JVS(4525)& + &*XX(291) + XX(143) = XX(143)-JVS(3058)*XX(268)-JVS(3087)*XX(269)-JVS(3106)*XX(270)-JVS(3667)*XX(281)-JVS(4130)*XX(286) + XX(142) = XX(142)-JVS(1007)*XX(159)-JVS(1016)*XX(160)-JVS(1216)*XX(184)-JVS(1518)*XX(210)-JVS(2034)*XX(236)-JVS(2815)& + &*XX(265)-JVS(3666)*XX(281)-JVS(3751)*XX(282)-JVS(3879)*XX(284)-JVS(4129)*XX(286) + XX(141) = XX(141)-JVS(1042)*XX(164)-JVS(1464)*XX(206)-JVS(2033)*XX(236)-JVS(2320)*XX(250)-JVS(3878)*XX(284)-JVS(4128)& + &*XX(286) + XX(140) = XX(140)-JVS(958)*XX(152)-JVS(1113)*XX(174)-JVS(1825)*XX(228)-JVS(1845)*XX(229)-JVS(2375)*XX(251)-JVS(2681)& + &*XX(263)-JVS(2814)*XX(265)-JVS(3877)*XX(284)-JVS(4127)*XX(286)-JVS(4524)*XX(291) + XX(139) = XX(139)-JVS(1058)*XX(167)-JVS(1112)*XX(174)-JVS(1824)*XX(228)-JVS(1844)*XX(229)-JVS(2275)*XX(248)-JVS(2680)& + &*XX(263)-JVS(2813)*XX(265)-JVS(3876)*XX(284)-JVS(4126)*XX(286)-JVS(4523)*XX(291) + XX(138) = XX(138)-JVS(1301)*XX(193)-JVS(2812)*XX(265)-JVS(3300)*XX(275)-JVS(3375)*XX(276)-JVS(3750)*XX(282)-JVS(4275)& + &*XX(287)-JVS(4522)*XX(291) + XX(137) = XX(137)-JVS(2679)*XX(263)-JVS(2903)*XX(266)-JVS(3299)*XX(275)-JVS(3448)*XX(278)-JVS(3875)*XX(284)-JVS(4125)& + &*XX(286)-JVS(4430)*XX(290) + XX(136) = XX(136)-JVS(1479)*XX(207)-JVS(1533)*XX(211)-JVS(1945)*XX(233)-JVS(2319)*XX(250)-JVS(2586)*XX(261)-JVS(2678)& + &*XX(263)-JVS(2902)*XX(266)-JVS(2971)*XX(267)-JVS(4124)*XX(286) + XX(135) = XX(135)-JVS(3217)*XX(273)-JVS(4429)*XX(290) + XX(134) = XX(134)-JVS(2318)*XX(250)-JVS(2811)*XX(265)-JVS(3665)*XX(281)-JVS(4123)*XX(286)-JVS(4521)*XX(291) + XX(133) = XX(133)-JVS(2777)*XX(264)-JVS(3298)*XX(275)-JVS(3874)*XX(284)-JVS(4122)*XX(286)-JVS(4428)*XX(290) + XX(132) = XX(132)-JVS(1227)*XX(185)-JVS(2317)*XX(250)-JVS(2970)*XX(267)-JVS(3873)*XX(284)-JVS(4121)*XX(286) + XX(131) = XX(131)-JVS(1111)*XX(174)-JVS(1823)*XX(228)-JVS(1843)*XX(229)-JVS(3872)*XX(284)-JVS(4120)*XX(286) + XX(130) = XX(130)-JVS(1110)*XX(174)-JVS(1822)*XX(228)-JVS(1842)*XX(229)-JVS(3871)*XX(284)-JVS(4119)*XX(286) + XX(129) = XX(129)-JVS(1109)*XX(174)-JVS(1861)*XX(230)-JVS(2274)*XX(248)-JVS(2969)*XX(267)-JVS(3870)*XX(284)-JVS(4118)& + &*XX(286) + XX(128) = XX(128)-JVS(2564)*XX(260)-JVS(3216)*XX(273)-JVS(4117)*XX(286) + XX(127) = XX(127)-JVS(1108)*XX(174)-JVS(1894)*XX(231)-JVS(2374)*XX(251)-JVS(2968)*XX(267)-JVS(3869)*XX(284)-JVS(4116)& + &*XX(286) + XX(126) = XX(126)-JVS(1928)*XX(232)-JVS(2127)*XX(240)-JVS(3868)*XX(284) + XX(125) = XX(125)-JVS(978)*XX(156)-JVS(1070)*XX(169)-JVS(1226)*XX(185)-JVS(1821)*XX(228)-JVS(1841)*XX(229)-JVS(2967)& + &*XX(267)-JVS(3867)*XX(284)-JVS(4115)*XX(286) + XX(124) = XX(124)-JVS(2077)*XX(237)-JVS(2507)*XX(258)-JVS(3215)*XX(273)-JVS(3297)*XX(275)-JVS(4114)*XX(286)-JVS(4369)& + &*XX(289)-JVS(4427)*XX(290) + XX(123) = XX(123)-JVS(2373)*XX(251)-JVS(3532)*XX(279)-JVS(3866)*XX(284)-JVS(4113)*XX(286)-JVS(4520)*XX(291) + XX(122) = XX(122)-JVS(3374)*XX(276)-JVS(4112)*XX(286) + XX(121) = XX(121)-JVS(2273)*XX(248)-JVS(3531)*XX(279)-JVS(3865)*XX(284)-JVS(4111)*XX(286)-JVS(4519)*XX(291) + XX(120) = XX(120)-JVS(1173)*XX(179)-JVS(2032)*XX(236)-JVS(2677)*XX(263)-JVS(3864)*XX(284)-JVS(4110)*XX(286) + XX(119) = XX(119)-JVS(1787)*XX(226)-JVS(2478)*XX(256)-JVS(2531)*XX(259)-JVS(3863)*XX(284)-JVS(4109)*XX(286) + XX(118) = XX(118)-JVS(902)*XX(142)-JVS(1006)*XX(159)-JVS(1015)*XX(160)-JVS(1215)*XX(184)-JVS(1517)*XX(210)-JVS(1735)& + &*XX(223)-JVS(2810)*XX(265)-JVS(3664)*XX(281)-JVS(3862)*XX(284)-JVS(4108)*XX(286) + XX(117) = XX(117)-JVS(1069)*XX(169)-JVS(1225)*XX(185)-JVS(3861)*XX(284)-JVS(4107)*XX(286) + XX(116) = XX(116)-JVS(1107)*XX(174)-JVS(1320)*XX(194)-JVS(3860)*XX(284)-JVS(4106)*XX(286) + XX(115) = XX(115)-JVS(901)*XX(142)-JVS(939)*XX(148)-JVS(1014)*XX(160)-JVS(1214)*XX(184)-JVS(1516)*XX(210)-JVS(2809)& + &*XX(265)-JVS(3663)*XX(281)-JVS(3859)*XX(284)-JVS(4105)*XX(286) + XX(114) = XX(114)-JVS(2477)*XX(256)-JVS(2808)*XX(265)-JVS(3296)*XX(275)-JVS(3662)*XX(281)-JVS(4104)*XX(286)-JVS(4426)& + &*XX(290) + XX(113) = XX(113)-JVS(1370)*XX(198)-JVS(1419)*XX(201)-JVS(2530)*XX(259)-JVS(3858)*XX(284)-JVS(4103)*XX(286)-JVS(4518)& + &*XX(291) + XX(112) = XX(112)-JVS(1506)*XX(209)-JVS(2316)*XX(250)-JVS(2676)*XX(263)-JVS(2776)*XX(264)-JVS(3857)*XX(284)-JVS(4102)& &*XX(286) - XX(266) = XX(266)-JVS(3087)*XX(267)-JVS(3350)*XX(269)-JVS(3481)*XX(270)-JVS(3557)*XX(271)-JVS(3648)*XX(273)-JVS(3681)& - &*XX(274)-JVS(3708)*XX(275)-JVS(3734)*XX(276)-JVS(3792)*XX(277)-JVS(3825)*XX(278)-JVS(3913)*XX(279)-JVS(4012)& - &*XX(280)-JVS(4183)*XX(281)-JVS(4237)*XX(282)-JVS(4271)*XX(283)-JVS(4331)*XX(284)-JVS(4426)*XX(285)-JVS(4468)& - &*XX(286)-JVS(4561)*XX(287) - XX(265) = XX(265)-JVS(3063)*XX(266)-JVS(3086)*XX(267)-JVS(3349)*XX(269)-JVS(3480)*XX(270)-JVS(3647)*XX(273)-JVS(3680)& - &*XX(274)-JVS(3707)*XX(275)-JVS(3733)*XX(276)-JVS(3791)*XX(277)-JVS(3824)*XX(278)-JVS(3912)*XX(279)-JVS(4011)& - &*XX(280)-JVS(4182)*XX(281)-JVS(4236)*XX(282)-JVS(4270)*XX(283)-JVS(4330)*XX(284)-JVS(4425)*XX(285)-JVS(4560)& - &*XX(287) - XX(264) = XX(264)-JVS(3043)*XX(265)-JVS(3062)*XX(266)-JVS(3085)*XX(267)-JVS(3348)*XX(269)-JVS(3479)*XX(270)-JVS(3646)& - &*XX(273)-JVS(3679)*XX(274)-JVS(3706)*XX(275)-JVS(3732)*XX(276)-JVS(3823)*XX(278)-JVS(3911)*XX(279)-JVS(4010)& - &*XX(280)-JVS(4181)*XX(281)-JVS(4235)*XX(282)-JVS(4269)*XX(283)-JVS(4329)*XX(284)-JVS(4424)*XX(285) - XX(263) = XX(263)-JVS(3084)*XX(267)-JVS(3135)*XX(268)-JVS(3347)*XX(269)-JVS(3478)*XX(270)-JVS(3556)*XX(271)-JVS(3595)& - &*XX(272)-JVS(3645)*XX(273)-JVS(3790)*XX(277)-JVS(3822)*XX(278)-JVS(3910)*XX(279)-JVS(4009)*XX(280)-JVS(4180)& - &*XX(281)-JVS(4234)*XX(282)-JVS(4268)*XX(283)-JVS(4328)*XX(284)-JVS(4423)*XX(285)-JVS(4467)*XX(286)-JVS(4559)& - &*XX(287) - XX(262) = XX(262)-JVS(2996)*XX(263)-JVS(3134)*XX(268)-JVS(3346)*XX(269)-JVS(3477)*XX(270)-JVS(3555)*XX(271)-JVS(3594)& - &*XX(272)-JVS(3644)*XX(273)-JVS(3789)*XX(277)-JVS(3821)*XX(278)-JVS(3909)*XX(279)-JVS(4008)*XX(280)-JVS(4179)& - &*XX(281)-JVS(4233)*XX(282)-JVS(4267)*XX(283)-JVS(4327)*XX(284)-JVS(4422)*XX(285)-JVS(4466)*XX(286)-JVS(4558)& - &*XX(287) - XX(261) = XX(261)-JVS(2932)*XX(262)-JVS(2995)*XX(263)-JVS(3133)*XX(268)-JVS(3345)*XX(269)-JVS(3476)*XX(270)-JVS(3554)& - &*XX(271)-JVS(3593)*XX(272)-JVS(3643)*XX(273)-JVS(3788)*XX(277)-JVS(3820)*XX(278)-JVS(3908)*XX(279)-JVS(4007)& - &*XX(280)-JVS(4178)*XX(281)-JVS(4232)*XX(282)-JVS(4266)*XX(283)-JVS(4326)*XX(284)-JVS(4421)*XX(285)-JVS(4465)& - &*XX(286)-JVS(4557)*XX(287) - XX(260) = XX(260)-JVS(3344)*XX(269)-JVS(3475)*XX(270)-JVS(3553)*XX(271)-JVS(3787)*XX(277)-JVS(3819)*XX(278)-JVS(3907)& - &*XX(279)-JVS(4006)*XX(280)-JVS(4265)*XX(283)-JVS(4464)*XX(286)-JVS(4556)*XX(287) - XX(259) = XX(259)-JVS(2786)*XX(260)-JVS(3083)*XX(267)-JVS(3132)*XX(268)-JVS(3343)*XX(269)-JVS(3474)*XX(270)-JVS(3552)& - &*XX(271)-JVS(3592)*XX(272)-JVS(3642)*XX(273)-JVS(3705)*XX(275)-JVS(3731)*XX(276)-JVS(3818)*XX(278)-JVS(3906)& - &*XX(279)-JVS(4231)*XX(282)-JVS(4264)*XX(283)-JVS(4325)*XX(284)-JVS(4420)*XX(285)-JVS(4555)*XX(287) - XX(258) = XX(258)-JVS(2829)*XX(261)-JVS(2931)*XX(262)-JVS(2994)*XX(263)-JVS(3342)*XX(269)-JVS(3473)*XX(270)-JVS(3551)& - &*XX(271)-JVS(3786)*XX(277)-JVS(3905)*XX(279)-JVS(4005)*XX(280)-JVS(4177)*XX(281)-JVS(4324)*XX(284)-JVS(4419)& - &*XX(285)-JVS(4463)*XX(286)-JVS(4554)*XX(287) - XX(257) = XX(257)-JVS(2693)*XX(258)-JVS(2785)*XX(260)-JVS(2828)*XX(261)-JVS(2930)*XX(262)-JVS(2993)*XX(263)-JVS(3131)& - &*XX(268)-JVS(3341)*XX(269)-JVS(3472)*XX(270)-JVS(3550)*XX(271)-JVS(3591)*XX(272)-JVS(3641)*XX(273)-JVS(3785)& - &*XX(277)-JVS(3904)*XX(279)-JVS(4004)*XX(280)-JVS(4176)*XX(281)-JVS(4230)*XX(282)-JVS(4323)*XX(284)-JVS(4418)& - &*XX(285)-JVS(4462)*XX(286)-JVS(4553)*XX(287) - XX(256) = XX(256)-JVS(3340)*XX(269)-JVS(3549)*XX(271)-JVS(3590)*XX(272)-JVS(3678)*XX(274)-JVS(3704)*XX(275)-JVS(3730)& - &*XX(276)-JVS(3817)*XX(278)-JVS(3903)*XX(279)-JVS(4229)*XX(282)-JVS(4263)*XX(283)-JVS(4322)*XX(284)-JVS(4417)& - &*XX(285)-JVS(4461)*XX(286) - XX(255) = XX(255)-JVS(2599)*XX(257)-JVS(2692)*XX(258)-JVS(2784)*XX(260)-JVS(2827)*XX(261)-JVS(2929)*XX(262)-JVS(2992)& - &*XX(263)-JVS(3339)*XX(269)-JVS(3471)*XX(270)-JVS(3548)*XX(271)-JVS(3589)*XX(272)-JVS(3640)*XX(273)-JVS(3784)& - &*XX(277)-JVS(3902)*XX(279)-JVS(4003)*XX(280)-JVS(4175)*XX(281)-JVS(4228)*XX(282)-JVS(4416)*XX(285)-JVS(4552)& - &*XX(287) - XX(254) = XX(254)-JVS(2508)*XX(255)-JVS(2598)*XX(257)-JVS(2691)*XX(258)-JVS(2783)*XX(260)-JVS(2826)*XX(261)-JVS(2928)& - &*XX(262)-JVS(2991)*XX(263)-JVS(3130)*XX(268)-JVS(3338)*XX(269)-JVS(3470)*XX(270)-JVS(3547)*XX(271)-JVS(3588)& - &*XX(272)-JVS(3783)*XX(277)-JVS(3901)*XX(279)-JVS(4002)*XX(280)-JVS(4174)*XX(281)-JVS(4227)*XX(282)-JVS(4321)& - &*XX(284)-JVS(4415)*XX(285)-JVS(4460)*XX(286)-JVS(4551)*XX(287) - XX(253) = XX(253)-JVS(2507)*XX(255)-JVS(2597)*XX(257)-JVS(2690)*XX(258)-JVS(2782)*XX(260)-JVS(2927)*XX(262)-JVS(2990)& - &*XX(263)-JVS(3337)*XX(269)-JVS(3469)*XX(270)-JVS(3546)*XX(271)-JVS(3587)*XX(272)-JVS(3900)*XX(279)-JVS(4001)& - &*XX(280)-JVS(4173)*XX(281)-JVS(4226)*XX(282)-JVS(4414)*XX(285)-JVS(4550)*XX(287) - XX(252) = XX(252)-JVS(2457)*XX(253)-JVS(2506)*XX(255)-JVS(2596)*XX(257)-JVS(2689)*XX(258)-JVS(2781)*XX(260)-JVS(2825)& - &*XX(261)-JVS(2926)*XX(262)-JVS(2989)*XX(263)-JVS(3336)*XX(269)-JVS(3468)*XX(270)-JVS(3545)*XX(271)-JVS(3586)& - &*XX(272)-JVS(3639)*XX(273)-JVS(3782)*XX(277)-JVS(3899)*XX(279)-JVS(4000)*XX(280)-JVS(4172)*XX(281)-JVS(4225)& - &*XX(282)-JVS(4413)*XX(285)-JVS(4549)*XX(287) - XX(251) = XX(251)-JVS(2438)*XX(252)-JVS(2456)*XX(253)-JVS(2505)*XX(255)-JVS(2595)*XX(257)-JVS(2688)*XX(258)-JVS(2780)& - &*XX(260)-JVS(2824)*XX(261)-JVS(2925)*XX(262)-JVS(2988)*XX(263)-JVS(3335)*XX(269)-JVS(3467)*XX(270)-JVS(3544)& - &*XX(271)-JVS(3585)*XX(272)-JVS(3638)*XX(273)-JVS(3781)*XX(277)-JVS(3898)*XX(279)-JVS(3999)*XX(280)-JVS(4171)& - &*XX(281)-JVS(4224)*XX(282)-JVS(4412)*XX(285)-JVS(4548)*XX(287) - XX(250) = XX(250)-JVS(2455)*XX(253)-JVS(2504)*XX(255)-JVS(2594)*XX(257)-JVS(2823)*XX(261)-JVS(2924)*XX(262)-JVS(2987)& - &*XX(263)-JVS(3334)*XX(269)-JVS(3466)*XX(270)-JVS(3543)*XX(271)-JVS(3637)*XX(273)-JVS(3780)*XX(277)-JVS(3897)& - &*XX(279)-JVS(3998)*XX(280)-JVS(4170)*XX(281)-JVS(4411)*XX(285) - XX(249) = XX(249)-JVS(2405)*XX(250)-JVS(2421)*XX(251)-JVS(2454)*XX(253)-JVS(2503)*XX(255)-JVS(2593)*XX(257)-JVS(2687)& - &*XX(258)-JVS(2779)*XX(260)-JVS(2822)*XX(261)-JVS(2923)*XX(262)-JVS(2986)*XX(263)-JVS(3333)*XX(269)-JVS(3465)& - &*XX(270)-JVS(3542)*XX(271)-JVS(3584)*XX(272)-JVS(3636)*XX(273)-JVS(3896)*XX(279)-JVS(3997)*XX(280)-JVS(4169)& - &*XX(281)-JVS(4223)*XX(282)-JVS(4410)*XX(285)-JVS(4547)*XX(287) - XX(248) = XX(248)-JVS(2592)*XX(257)-JVS(2686)*XX(258)-JVS(2778)*XX(260)-JVS(2922)*XX(262)-JVS(2985)*XX(263)-JVS(3332)& - &*XX(269)-JVS(3464)*XX(270)-JVS(3541)*XX(271)-JVS(3895)*XX(279)-JVS(3996)*XX(280)-JVS(4168)*XX(281)-JVS(4409)& - &*XX(285)-JVS(4546)*XX(287) - XX(247) = XX(247)-JVS(2366)*XX(248)-JVS(2591)*XX(257)-JVS(2685)*XX(258)-JVS(2777)*XX(260)-JVS(2921)*XX(262)-JVS(2984)& - &*XX(263)-JVS(3331)*XX(269)-JVS(3463)*XX(270)-JVS(3540)*XX(271)-JVS(3779)*XX(277)-JVS(3894)*XX(279)-JVS(3995)& - &*XX(280)-JVS(4167)*XX(281)-JVS(4320)*XX(284)-JVS(4408)*XX(285)-JVS(4459)*XX(286)-JVS(4545)*XX(287) - XX(246) = XX(246)-JVS(2590)*XX(257)-JVS(2684)*XX(258)-JVS(2776)*XX(260)-JVS(2920)*XX(262)-JVS(2983)*XX(263)-JVS(3330)& - &*XX(269)-JVS(3539)*XX(271)-JVS(3893)*XX(279)-JVS(4166)*XX(281)-JVS(4407)*XX(285)-JVS(4544)*XX(287) - XX(245) = XX(245)-JVS(2314)*XX(246)-JVS(2589)*XX(257)-JVS(2683)*XX(258)-JVS(2775)*XX(260)-JVS(2919)*XX(262)-JVS(2982)& - &*XX(263)-JVS(3329)*XX(269)-JVS(3462)*XX(270)-JVS(3538)*XX(271)-JVS(3778)*XX(277)-JVS(3892)*XX(279)-JVS(3994)& - &*XX(280)-JVS(4165)*XX(281)-JVS(4406)*XX(285)-JVS(4543)*XX(287) - XX(244) = XX(244)-JVS(2404)*XX(250)-JVS(2472)*XX(254)-JVS(2588)*XX(257)-JVS(2682)*XX(258)-JVS(2774)*XX(260)-JVS(2918)& - &*XX(262)-JVS(2981)*XX(263)-JVS(3328)*XX(269)-JVS(3461)*XX(270)-JVS(3537)*XX(271)-JVS(3777)*XX(277)-JVS(3891)& - &*XX(279)-JVS(3993)*XX(280)-JVS(4164)*XX(281)-JVS(4319)*XX(284)-JVS(4405)*XX(285)-JVS(4458)*XX(286)-JVS(4542)& - &*XX(287) - XX(243) = XX(243)-JVS(2241)*XX(244)-JVS(2260)*XX(245)-JVS(2313)*XX(246)-JVS(2343)*XX(247)-JVS(2365)*XX(248)-JVS(2587)& - &*XX(257)-JVS(2681)*XX(258)-JVS(2773)*XX(260)-JVS(2917)*XX(262)-JVS(2980)*XX(263)-JVS(3327)*XX(269)-JVS(3460)& - &*XX(270)-JVS(3536)*XX(271)-JVS(3890)*XX(279)-JVS(3992)*XX(280)-JVS(4163)*XX(281)-JVS(4404)*XX(285)-JVS(4541)& - &*XX(287) - XX(242) = XX(242)-JVS(2217)*XX(243)-JVS(2240)*XX(244)-JVS(2259)*XX(245)-JVS(2312)*XX(246)-JVS(2342)*XX(247)-JVS(2364)& - &*XX(248)-JVS(2586)*XX(257)-JVS(2680)*XX(258)-JVS(2772)*XX(260)-JVS(2916)*XX(262)-JVS(2979)*XX(263)-JVS(3326)& - &*XX(269)-JVS(3459)*XX(270)-JVS(3535)*XX(271)-JVS(3889)*XX(279)-JVS(3991)*XX(280)-JVS(4162)*XX(281)-JVS(4403)& - &*XX(285)-JVS(4540)*XX(287) - XX(241) = XX(241)-JVS(2201)*XX(242)-JVS(2216)*XX(243)-JVS(2239)*XX(244)-JVS(2258)*XX(245)-JVS(2311)*XX(246)-JVS(2341)& - &*XX(247)-JVS(2363)*XX(248)-JVS(2585)*XX(257)-JVS(2679)*XX(258)-JVS(2771)*XX(260)-JVS(2915)*XX(262)-JVS(2978)& - &*XX(263)-JVS(3325)*XX(269)-JVS(3458)*XX(270)-JVS(3534)*XX(271)-JVS(3888)*XX(279)-JVS(3990)*XX(280)-JVS(4161)& - &*XX(281)-JVS(4402)*XX(285)-JVS(4539)*XX(287) - XX(240) = XX(240)-JVS(2187)*XX(241)-JVS(2238)*XX(244)-JVS(2257)*XX(245)-JVS(2310)*XX(246)-JVS(2340)*XX(247)-JVS(2362)& - &*XX(248)-JVS(2584)*XX(257)-JVS(2678)*XX(258)-JVS(2770)*XX(260)-JVS(2914)*XX(262)-JVS(2977)*XX(263)-JVS(3324)& - &*XX(269)-JVS(3457)*XX(270)-JVS(3533)*XX(271)-JVS(3887)*XX(279)-JVS(3989)*XX(280)-JVS(4160)*XX(281)-JVS(4401)& - &*XX(285)-JVS(4538)*XX(287) - XX(239) = XX(239)-JVS(2237)*XX(244)-JVS(2256)*XX(245)-JVS(2309)*XX(246)-JVS(2339)*XX(247)-JVS(2361)*XX(248)-JVS(2583)& - &*XX(257)-JVS(2677)*XX(258)-JVS(2769)*XX(260)-JVS(2913)*XX(262)-JVS(3323)*XX(269)-JVS(3456)*XX(270)-JVS(3532)& - &*XX(271)-JVS(3886)*XX(279)-JVS(3988)*XX(280)-JVS(4159)*XX(281)-JVS(4400)*XX(285)-JVS(4537)*XX(287) - XX(238) = XX(238)-JVS(2161)*XX(239)-JVS(2255)*XX(245)-JVS(2308)*XX(246)-JVS(2360)*XX(248)-JVS(2582)*XX(257)-JVS(2676)& - &*XX(258)-JVS(2768)*XX(260)-JVS(2912)*XX(262)-JVS(3322)*XX(269)-JVS(3455)*XX(270)-JVS(3531)*XX(271)-JVS(3885)& - &*XX(279)-JVS(3987)*XX(280)-JVS(4158)*XX(281)-JVS(4399)*XX(285)-JVS(4536)*XX(287) - XX(237) = XX(237)-JVS(2581)*XX(257)-JVS(2675)*XX(258)-JVS(2767)*XX(260)-JVS(2911)*XX(262)-JVS(3321)*XX(269)-JVS(3454)& - &*XX(270)-JVS(3530)*XX(271)-JVS(3884)*XX(279)-JVS(4157)*XX(281)-JVS(4398)*XX(285)-JVS(4535)*XX(287) - XX(236) = XX(236)-JVS(2107)*XX(237)-JVS(2254)*XX(245)-JVS(2307)*XX(246)-JVS(2359)*XX(248)-JVS(2580)*XX(257)-JVS(2674)& - &*XX(258)-JVS(2766)*XX(260)-JVS(2910)*XX(262)-JVS(3320)*XX(269)-JVS(3453)*XX(270)-JVS(3529)*XX(271)-JVS(3883)& - &*XX(279)-JVS(3986)*XX(280)-JVS(4156)*XX(281)-JVS(4397)*XX(285)-JVS(4534)*XX(287) - XX(235) = XX(235)-JVS(2579)*XX(257)-JVS(2821)*XX(261)-JVS(2909)*XX(262)-JVS(2976)*XX(263)-JVS(3319)*XX(269)-JVS(3452)& - &*XX(270)-JVS(3528)*XX(271)-JVS(3635)*XX(273)-JVS(3882)*XX(279)-JVS(3985)*XX(280)-JVS(4155)*XX(281)-JVS(4396)& - &*XX(285) - XX(234) = XX(234)-JVS(2065)*XX(235)-JVS(2306)*XX(246)-JVS(2358)*XX(248)-JVS(2386)*XX(249)-JVS(2403)*XX(250)-JVS(2437)& - &*XX(252)-JVS(2453)*XX(253)-JVS(2502)*XX(255)-JVS(2578)*XX(257)-JVS(2673)*XX(258)-JVS(2765)*XX(260)-JVS(2908)& - &*XX(262)-JVS(2975)*XX(263)-JVS(3318)*XX(269)-JVS(3451)*XX(270)-JVS(3527)*XX(271)-JVS(3583)*XX(272)-JVS(3776)& - &*XX(277)-JVS(3881)*XX(279)-JVS(3984)*XX(280)-JVS(4154)*XX(281)-JVS(4222)*XX(282)-JVS(4395)*XX(285)-JVS(4533)& - &*XX(287) - XX(233) = XX(233)-JVS(2501)*XX(255)-JVS(2577)*XX(257)-JVS(2907)*XX(262)-JVS(2974)*XX(263)-JVS(3317)*XX(269)-JVS(3450)& - &*XX(270)-JVS(3526)*XX(271)-JVS(3880)*XX(279)-JVS(3983)*XX(280)-JVS(4153)*XX(281)-JVS(4394)*XX(285) - XX(232) = XX(232)-JVS(2672)*XX(258)-JVS(2764)*XX(260)-JVS(2906)*XX(262)-JVS(3316)*XX(269)-JVS(3525)*XX(271)-JVS(3879)& - &*XX(279)-JVS(4152)*XX(281)-JVS(4393)*XX(285)-JVS(4532)*XX(287) - XX(231) = XX(231)-JVS(3082)*XX(267)-JVS(3129)*XX(268)-JVS(3315)*XX(269)-JVS(3449)*XX(270)-JVS(3524)*XX(271)-JVS(3582)& - &*XX(272)-JVS(3634)*XX(273)-JVS(3703)*XX(275)-JVS(3729)*XX(276)-JVS(3816)*XX(278)-JVS(3878)*XX(279)-JVS(3982)& - &*XX(280)-JVS(4221)*XX(282)-JVS(4262)*XX(283)-JVS(4318)*XX(284)-JVS(4392)*XX(285) - XX(230) = XX(230)-JVS(2671)*XX(258)-JVS(2905)*XX(262)-JVS(3314)*XX(269)-JVS(3448)*XX(270)-JVS(3523)*XX(271)-JVS(3775)& - &*XX(277)-JVS(3877)*XX(279)-JVS(3981)*XX(280)-JVS(4151)*XX(281)-JVS(4317)*XX(284)-JVS(4391)*XX(285)-JVS(4457)& - &*XX(286)-JVS(4531)*XX(287) - XX(229) = XX(229)-JVS(2010)*XX(232)-JVS(2106)*XX(237)-JVS(2138)*XX(238)-JVS(2160)*XX(239)-JVS(2305)*XX(246)-JVS(2576)& - &*XX(257)-JVS(2670)*XX(258)-JVS(2763)*XX(260)-JVS(2904)*XX(262)-JVS(3313)*XX(269)-JVS(3447)*XX(270)-JVS(3980)& - &*XX(280)-JVS(4150)*XX(281)-JVS(4530)*XX(287) - XX(228) = XX(228)-JVS(2575)*XX(257)-JVS(2669)*XX(258)-JVS(2762)*XX(260)-JVS(3312)*XX(269)-JVS(4149)*XX(281)-JVS(4529)& - &*XX(287) - XX(227) = XX(227)-JVS(1916)*XX(228)-JVS(2304)*XX(246)-JVS(2357)*XX(248)-JVS(2574)*XX(257)-JVS(2668)*XX(258)-JVS(2903)& - &*XX(262)-JVS(3311)*XX(269)-JVS(3876)*XX(279)-JVS(4148)*XX(281) - XX(226) = XX(226)-JVS(1915)*XX(228)-JVS(2009)*XX(232)-JVS(2573)*XX(257)-JVS(2667)*XX(258)-JVS(2761)*XX(260)-JVS(2902)& - &*XX(262)-JVS(3310)*XX(269)-JVS(4147)*XX(281)-JVS(4528)*XX(287) - XX(225) = XX(225)-JVS(1831)*XX(226)-JVS(1865)*XX(227)-JVS(1914)*XX(228)-JVS(2008)*XX(232)-JVS(2303)*XX(246)-JVS(2572)& - &*XX(257)-JVS(2666)*XX(258)-JVS(2760)*XX(260)-JVS(2901)*XX(262)-JVS(3309)*XX(269)-JVS(3446)*XX(270)-JVS(3979)& - &*XX(280)-JVS(4146)*XX(281)-JVS(4527)*XX(287) - XX(224) = XX(224)-JVS(1805)*XX(225)-JVS(1830)*XX(226)-JVS(1864)*XX(227)-JVS(1913)*XX(228)-JVS(2007)*XX(232)-JVS(2302)& - &*XX(246)-JVS(2571)*XX(257)-JVS(2665)*XX(258)-JVS(2759)*XX(260)-JVS(2900)*XX(262)-JVS(3308)*XX(269)-JVS(3445)& - &*XX(270)-JVS(3978)*XX(280)-JVS(4145)*XX(281)-JVS(4526)*XX(287) - XX(223) = XX(223)-JVS(3013)*XX(264)-JVS(3042)*XX(265)-JVS(3061)*XX(266)-JVS(3081)*XX(267)-JVS(3307)*XX(269)-JVS(3444)& - &*XX(270)-JVS(3633)*XX(273)-JVS(3677)*XX(274)-JVS(3977)*XX(280)-JVS(4144)*XX(281)-JVS(4220)*XX(282)-JVS(4316)& - &*XX(284)-JVS(4390)*XX(285) - XX(222) = XX(222)-JVS(2033)*XX(233)-JVS(2064)*XX(235)-JVS(2385)*XX(249)-JVS(2402)*XX(250)-JVS(2452)*XX(253)-JVS(2570)& - &*XX(257)-JVS(2758)*XX(260)-JVS(2973)*XX(263)-JVS(3306)*XX(269)-JVS(3875)*XX(279)-JVS(4525)*XX(287) - XX(221) = XX(221)-JVS(1748)*XX(222)-JVS(2301)*XX(246)-JVS(2338)*XX(247)-JVS(2436)*XX(252)-JVS(2471)*XX(254)-JVS(2500)& - &*XX(255)-JVS(2569)*XX(257)-JVS(2757)*XX(260)-JVS(2899)*XX(262)-JVS(2972)*XX(263)-JVS(3305)*XX(269)-JVS(3443)& - &*XX(270)-JVS(3522)*XX(271)-JVS(3774)*XX(277)-JVS(3976)*XX(280)-JVS(4143)*XX(281)-JVS(4389)*XX(285)-JVS(4524)& - &*XX(287) - XX(220) = XX(220)-JVS(1829)*XX(226)-JVS(1863)*XX(227)-JVS(1912)*XX(228)-JVS(1958)*XX(230)-JVS(2006)*XX(232)-JVS(2105)& - &*XX(237)-JVS(2174)*XX(240)-JVS(2186)*XX(241)-JVS(2200)*XX(242)-JVS(2215)*XX(243)-JVS(2236)*XX(244)-JVS(2253)& - &*XX(245)-JVS(2300)*XX(246)-JVS(2337)*XX(247)-JVS(2356)*XX(248)-JVS(2568)*XX(257)-JVS(2664)*XX(258)-JVS(2756)& - &*XX(260)-JVS(2898)*XX(262)-JVS(2971)*XX(263)-JVS(3304)*XX(269)-JVS(3442)*XX(270)-JVS(3521)*XX(271)-JVS(3773)& - &*XX(277)-JVS(3874)*XX(279)-JVS(3975)*XX(280)-JVS(4142)*XX(281)-JVS(4315)*XX(284)-JVS(4388)*XX(285)-JVS(4456)& - &*XX(286)-JVS(4523)*XX(287) - XX(219) = XX(219)-JVS(2355)*XX(248)-JVS(2567)*XX(257)-JVS(2663)*XX(258)-JVS(2970)*XX(263)-JVS(3303)*XX(269)-JVS(3520)& - &*XX(271)-JVS(3581)*XX(272)-JVS(3873)*XX(279)-JVS(4219)*XX(282)-JVS(4387)*XX(285) - XX(218) = XX(218)-JVS(2662)*XX(258)-JVS(2755)*XX(260)-JVS(2897)*XX(262)-JVS(3302)*XX(269)-JVS(4141)*XX(281)-JVS(4522)& - &*XX(287) - XX(217) = XX(217)-JVS(1690)*XX(218)-JVS(1828)*XX(226)-JVS(1862)*XX(227)-JVS(1911)*XX(228)-JVS(2005)*XX(232)-JVS(2104)& - &*XX(237)-JVS(2137)*XX(238)-JVS(2159)*XX(239)-JVS(2299)*XX(246)-JVS(2354)*XX(248)-JVS(2566)*XX(257)-JVS(2661)& - &*XX(258)-JVS(2754)*XX(260)-JVS(2896)*XX(262)-JVS(3301)*XX(269)-JVS(3441)*XX(270)-JVS(3872)*XX(279)-JVS(3974)& - &*XX(280)-JVS(4140)*XX(281)-JVS(4521)*XX(287) - XX(216) = XX(216)-JVS(1689)*XX(218)-JVS(1784)*XX(224)-JVS(1804)*XX(225)-JVS(1827)*XX(226)-JVS(1861)*XX(227)-JVS(1910)& - &*XX(228)-JVS(2004)*XX(232)-JVS(2084)*XX(236)-JVS(2136)*XX(238)-JVS(2158)*XX(239)-JVS(2298)*XX(246)-JVS(2565)& - &*XX(257)-JVS(2660)*XX(258)-JVS(2753)*XX(260)-JVS(2895)*XX(262)-JVS(3300)*XX(269)-JVS(3440)*XX(270)-JVS(3973)& - &*XX(280)-JVS(4139)*XX(281) - XX(215) = XX(215)-JVS(2969)*XX(263)-JVS(3299)*XX(269)-JVS(3519)*XX(271)-JVS(3871)*XX(279)-JVS(4386)*XX(285) - XX(214) = XX(214)-JVS(2894)*XX(262)-JVS(3298)*XX(269)-JVS(3518)*XX(271)-JVS(4138)*XX(281)-JVS(4385)*XX(285) - XX(213) = XX(213)-JVS(1602)*XX(214)-JVS(1630)*XX(215)-JVS(2063)*XX(235)-JVS(2564)*XX(257)-JVS(2820)*XX(261)-JVS(2893)& - &*XX(262)-JVS(2968)*XX(263)-JVS(3297)*XX(269)-JVS(3439)*XX(270)-JVS(3517)*XX(271)-JVS(3632)*XX(273)-JVS(3972)& - &*XX(280)-JVS(4137)*XX(281)-JVS(4384)*XX(285) - XX(212) = XX(212)-JVS(1601)*XX(214)-JVS(1747)*XX(222)-JVS(2297)*XX(246)-JVS(2499)*XX(255)-JVS(2563)*XX(257)-JVS(2752)& - &*XX(260)-JVS(2892)*XX(262)-JVS(2967)*XX(263)-JVS(3296)*XX(269)-JVS(3438)*XX(270)-JVS(3772)*XX(277)-JVS(3971)& - &*XX(280)-JVS(4136)*XX(281)-JVS(4520)*XX(287) - XX(211) = XX(211)-JVS(1579)*XX(212)-JVS(1746)*XX(222)-JVS(2296)*XX(246)-JVS(2498)*XX(255)-JVS(2562)*XX(257)-JVS(2751)& - &*XX(260)-JVS(2891)*XX(262)-JVS(2966)*XX(263)-JVS(3295)*XX(269)-JVS(3437)*XX(270)-JVS(3771)*XX(277)-JVS(3970)& - &*XX(280)-JVS(4135)*XX(281)-JVS(4519)*XX(287) - XX(210) = XX(210)-JVS(1688)*XX(218)-JVS(1783)*XX(224)-JVS(1803)*XX(225)-JVS(1826)*XX(226)-JVS(1860)*XX(227)-JVS(1909)& - &*XX(228)-JVS(2003)*XX(232)-JVS(2083)*XX(236)-JVS(2103)*XX(237)-JVS(2135)*XX(238)-JVS(2157)*XX(239)-JVS(2295)& - &*XX(246)-JVS(2561)*XX(257)-JVS(2659)*XX(258)-JVS(2750)*XX(260)-JVS(2890)*XX(262)-JVS(3294)*XX(269)-JVS(3436)& - &*XX(270)-JVS(3969)*XX(280)-JVS(4134)*XX(281)-JVS(4518)*XX(287) - XX(209) = XX(209)-JVS(1825)*XX(226)-JVS(1859)*XX(227)-JVS(1908)*XX(228)-JVS(2002)*XX(232)-JVS(2658)*XX(258)-JVS(2749)& - &*XX(260)-JVS(3293)*XX(269)-JVS(3435)*XX(270)-JVS(4133)*XX(281) - XX(208) = XX(208)-JVS(3292)*XX(269)-JVS(3516)*XX(271)-JVS(3870)*XX(279)-JVS(4132)*XX(281)-JVS(4314)*XX(284)-JVS(4383)& - &*XX(285)-JVS(4455)*XX(286) - XX(207) = XX(207)-JVS(3291)*XX(269)-JVS(3515)*XX(271)-JVS(3869)*XX(279)-JVS(4131)*XX(281)-JVS(4382)*XX(285) - XX(206) = XX(206)-JVS(1496)*XX(207)-JVS(1687)*XX(218)-JVS(2001)*XX(232)-JVS(2401)*XX(250)-JVS(2420)*XX(251)-JVS(2497)& - &*XX(255)-JVS(2657)*XX(258)-JVS(2748)*XX(260)-JVS(3290)*XX(269)-JVS(3434)*XX(270)-JVS(3770)*XX(277)-JVS(3868)& - &*XX(279)-JVS(3968)*XX(280)-JVS(4130)*XX(281)-JVS(4517)*XX(287) - XX(205) = XX(205)-JVS(2560)*XX(257)-JVS(2656)*XX(258)-JVS(2747)*XX(260)-JVS(2889)*XX(262)-JVS(3289)*XX(269)-JVS(3433)& - &*XX(270)-JVS(4129)*XX(281)-JVS(4516)*XX(287) - XX(204) = XX(204)-JVS(1600)*XX(214)-JVS(1629)*XX(215)-JVS(2294)*XX(246)-JVS(2496)*XX(255)-JVS(2559)*XX(257)-JVS(2819)& - &*XX(261)-JVS(2888)*XX(262)-JVS(2965)*XX(263)-JVS(3288)*XX(269)-JVS(3432)*XX(270)-JVS(3967)*XX(280)-JVS(4128)& - &*XX(281) - XX(203) = XX(203)-JVS(1495)*XX(207)-JVS(1907)*XX(228)-JVS(2293)*XX(246)-JVS(2558)*XX(257)-JVS(2655)*XX(258)-JVS(2887)& - &*XX(262)-JVS(2964)*XX(263)-JVS(3287)*XX(269)-JVS(3431)*XX(270)-JVS(3769)*XX(277)-JVS(3966)*XX(280)-JVS(4127)& - &*XX(281)-JVS(4515)*XX(287) - XX(202) = XX(202)-JVS(1686)*XX(218)-JVS(1858)*XX(227)-JVS(1906)*XX(228)-JVS(2000)*XX(232)-JVS(2292)*XX(246)-JVS(2557)& - &*XX(257)-JVS(2654)*XX(258)-JVS(2886)*XX(262)-JVS(3286)*XX(269)-JVS(4126)*XX(281) - XX(201) = XX(201)-JVS(1857)*XX(227)-JVS(1905)*XX(228)-JVS(2252)*XX(245)-JVS(2291)*XX(246)-JVS(2653)*XX(258)-JVS(2746)& - &*XX(260)-JVS(2885)*XX(262)-JVS(3285)*XX(269)-JVS(3430)*XX(270)-JVS(3965)*XX(280)-JVS(4125)*XX(281) - XX(200) = XX(200)-JVS(1824)*XX(226)-JVS(1904)*XX(228)-JVS(1999)*XX(232)-JVS(2102)*XX(237)-JVS(2556)*XX(257)-JVS(2652)& - &*XX(258)-JVS(2884)*XX(262)-JVS(3284)*XX(269)-JVS(3429)*XX(270)-JVS(3964)*XX(280)-JVS(4124)*XX(281) - XX(199) = XX(199)-JVS(3012)*XX(264)-JVS(3041)*XX(265)-JVS(3060)*XX(266)-JVS(3283)*XX(269)-JVS(3428)*XX(270)-JVS(3702)& - &*XX(275)-JVS(3728)*XX(276)-JVS(3815)*XX(278)-JVS(3867)*XX(279)-JVS(3963)*XX(280)-JVS(4218)*XX(282)-JVS(4261)& - &*XX(283)-JVS(4381)*XX(285)-JVS(4514)*XX(287) - XX(198) = XX(198)-JVS(1713)*XX(219)-JVS(1745)*XX(222)-JVS(2032)*XX(233)-JVS(2062)*XX(235)-JVS(2419)*XX(251)-JVS(2451)& - &*XX(253)-JVS(2495)*XX(255)-JVS(2745)*XX(260)-JVS(2818)*XX(261)-JVS(2963)*XX(263)-JVS(3282)*XX(269)-JVS(3427)& - &*XX(270)-JVS(3866)*XX(279)-JVS(4123)*XX(281) - XX(197) = XX(197)-JVS(1599)*XX(214)-JVS(1628)*XX(215)-JVS(1903)*XX(228)-JVS(2494)*XX(255)-JVS(2555)*XX(257)-JVS(2817)& - &*XX(261)-JVS(2883)*XX(262)-JVS(2962)*XX(263)-JVS(3281)*XX(269)-JVS(3426)*XX(270)-JVS(3962)*XX(280)-JVS(4122)& - &*XX(281) - XX(196) = XX(196)-JVS(2290)*XX(246)-JVS(2493)*XX(255)-JVS(2744)*XX(260)-JVS(3280)*XX(269)-JVS(3425)*XX(270)-JVS(3768)& - &*XX(277)-JVS(4513)*XX(287) - XX(195) = XX(195)-JVS(2251)*XX(245)-JVS(2289)*XX(246)-JVS(2651)*XX(258)-JVS(2743)*XX(260)-JVS(3279)*XX(269)-JVS(3424)& - &*XX(270)-JVS(4121)*XX(281) - XX(194) = XX(194)-JVS(1902)*XX(228)-JVS(2554)*XX(257)-JVS(2882)*XX(262)-JVS(3278)*XX(269)-JVS(3423)*XX(270) - XX(193) = XX(193)-JVS(1901)*XX(228)-JVS(2353)*XX(248)-JVS(2553)*XX(257)-JVS(2881)*XX(262)-JVS(3277)*XX(269)-JVS(3865)& - &*XX(279) - XX(192) = XX(192)-JVS(3080)*XX(267)-JVS(3128)*XX(268)-JVS(3276)*XX(269)-JVS(3631)*XX(273)-JVS(4313)*XX(284)-JVS(4380)& - &*XX(285) - XX(191) = XX(191)-JVS(1522)*XX(208)-JVS(1627)*XX(215)-JVS(2650)*XX(258)-JVS(2816)*XX(261)-JVS(3275)*XX(269)-JVS(3422)& - &*XX(270)-JVS(3864)*XX(279)-JVS(3961)*XX(280)-JVS(4454)*XX(286)-JVS(4512)*XX(287) - XX(190) = XX(190)-JVS(1422)*XX(202)-JVS(1544)*XX(209)-JVS(2288)*XX(246)-JVS(2552)*XX(257)-JVS(2649)*XX(258)-JVS(2880)& - &*XX(262)-JVS(3274)*XX(269)-JVS(3421)*XX(270)-JVS(3960)*XX(280)-JVS(4120)*XX(281) - XX(189) = XX(189)-JVS(1782)*XX(224)-JVS(1802)*XX(225)-JVS(1823)*XX(226)-JVS(1856)*XX(227)-JVS(1900)*XX(228)-JVS(2648)& - &*XX(258)-JVS(3273)*XX(269)-JVS(4119)*XX(281) - XX(188) = XX(188)-JVS(3272)*XX(269)-JVS(3420)*XX(270)-JVS(3863)*XX(279)-JVS(3959)*XX(280) - XX(187) = XX(187)-JVS(1475)*XX(206)-JVS(2879)*XX(262)-JVS(2961)*XX(263)-JVS(3271)*XX(269)-JVS(3419)*XX(270)-JVS(3767)& - &*XX(277)-JVS(3958)*XX(280)-JVS(4118)*XX(281)-JVS(4511)*XX(287) - XX(186) = XX(186)-JVS(2878)*XX(262)-JVS(2960)*XX(263)-JVS(3127)*XX(268)-JVS(3270)*XX(269)-JVS(3514)*XX(271)-JVS(3766)& - &*XX(277)-JVS(3862)*XX(279)-JVS(4117)*XX(281)-JVS(4312)*XX(284)-JVS(4379)*XX(285) - XX(185) = XX(185)-JVS(1310)*XX(193)-JVS(1329)*XX(194)-JVS(1456)*XX(205)-JVS(1543)*XX(209)-JVS(1685)*XX(218)-JVS(2101)& - &*XX(237)-JVS(2134)*XX(238)-JVS(2156)*XX(239)-JVS(2647)*XX(258)-JVS(2742)*XX(260)-JVS(2877)*XX(262)-JVS(3269)& - &*XX(269)-JVS(3418)*XX(270)-JVS(3957)*XX(280)-JVS(4116)*XX(281) - XX(184) = XX(184)-JVS(1348)*XX(195)-JVS(1408)*XX(201)-JVS(1494)*XX(207)-JVS(1684)*XX(218)-JVS(1855)*XX(227)-JVS(1899)& - &*XX(228)-JVS(2287)*XX(246)-JVS(2336)*XX(247)-JVS(2551)*XX(257)-JVS(2646)*XX(258)-JVS(2876)*XX(262)-JVS(3268)& - &*XX(269)-JVS(3417)*XX(270)-JVS(3956)*XX(280)-JVS(4115)*XX(281) - XX(183) = XX(183)-JVS(1421)*XX(202)-JVS(1683)*XX(218)-JVS(1822)*XX(226)-JVS(1854)*XX(227)-JVS(1898)*XX(228)-JVS(1998)& - &*XX(232)-JVS(2133)*XX(238)-JVS(2286)*XX(246)-JVS(3267)*XX(269)-JVS(3416)*XX(270)-JVS(3955)*XX(280)-JVS(4114)& - &*XX(281) - XX(182) = XX(182)-JVS(1397)*XX(200)-JVS(1493)*XX(207)-JVS(1682)*XX(218)-JVS(1821)*XX(226)-JVS(1897)*XX(228)-JVS(2100)& - &*XX(237)-JVS(2235)*XX(244)-JVS(2285)*XX(246)-JVS(2550)*XX(257)-JVS(2645)*XX(258)-JVS(2875)*XX(262)-JVS(3266)& - &*XX(269)-JVS(3415)*XX(270)-JVS(3954)*XX(280)-JVS(4113)*XX(281) - XX(181) = XX(181)-JVS(1681)*XX(218)-JVS(1896)*XX(228)-JVS(2549)*XX(257)-JVS(2644)*XX(258)-JVS(4112)*XX(281) - XX(180) = XX(180)-JVS(1309)*XX(193)-JVS(1420)*XX(202)-JVS(1680)*XX(218)-JVS(1820)*XX(226)-JVS(1853)*XX(227)-JVS(1895)& - &*XX(228)-JVS(1997)*XX(232)-JVS(2132)*XX(238)-JVS(2284)*XX(246)-JVS(2874)*XX(262)-JVS(3265)*XX(269)-JVS(3414)& - &*XX(270)-JVS(3953)*XX(280)-JVS(4111)*XX(281) - XX(179) = XX(179)-JVS(1419)*XX(202)-JVS(1679)*XX(218)-JVS(1819)*XX(226)-JVS(1852)*XX(227)-JVS(1894)*XX(228)-JVS(1996)& - &*XX(232)-JVS(2131)*XX(238)-JVS(2283)*XX(246)-JVS(2643)*XX(258)-JVS(2873)*XX(262)-JVS(3264)*XX(269)-JVS(3413)& - &*XX(270)-JVS(3952)*XX(280)-JVS(4110)*XX(281) - XX(178) = XX(178)-JVS(2548)*XX(257)-JVS(2872)*XX(262)-JVS(2959)*XX(263)-JVS(3263)*XX(269)-JVS(3412)*XX(270)-JVS(3951)& - &*XX(280)-JVS(4109)*XX(281)-JVS(4510)*XX(287) - XX(177) = XX(177)-JVS(1661)*XX(217)-JVS(1945)*XX(229)-JVS(2130)*XX(238)-JVS(2173)*XX(240)-JVS(2234)*XX(244)-JVS(2335)& - &*XX(247)-JVS(2741)*XX(260)-JVS(2871)*XX(262)-JVS(3262)*XX(269)-JVS(3411)*XX(270)-JVS(4108)*XX(281) - XX(176) = XX(176)-JVS(1233)*XX(187)-JVS(1474)*XX(206)-JVS(2870)*XX(262)-JVS(2958)*XX(263)-JVS(3261)*XX(269)-JVS(3410)& - &*XX(270)-JVS(3765)*XX(277)-JVS(3950)*XX(280)-JVS(4107)*XX(281) - XX(175) = XX(175)-JVS(1598)*XX(214)-JVS(1995)*XX(232)-JVS(2869)*XX(262)-JVS(2957)*XX(263)-JVS(3260)*XX(269)-JVS(3409)& - &*XX(270)-JVS(3949)*XX(280)-JVS(4106)*XX(281)-JVS(4509)*XX(287) - XX(174) = XX(174)-JVS(1744)*XX(222)-JVS(2282)*XX(246)-JVS(2740)*XX(260)-JVS(3259)*XX(269)-JVS(3408)*XX(270)-JVS(4508)& - &*XX(287) - XX(173) = XX(173)-JVS(3258)*XX(269)-JVS(3764)*XX(277)-JVS(3861)*XX(279)-JVS(4105)*XX(281)-JVS(4311)*XX(284) - XX(172) = XX(172)-JVS(2521)*XX(256)-JVS(2739)*XX(260)-JVS(3257)*XX(269)-JVS(3407)*XX(270)-JVS(3513)*XX(271)-JVS(3676)& - &*XX(274)-JVS(3860)*XX(279)-JVS(4217)*XX(282)-JVS(4378)*XX(285)-JVS(4507)*XX(287) - XX(171) = XX(171)-JVS(1328)*XX(194)-JVS(2642)*XX(258)-JVS(2738)*XX(260)-JVS(3256)*XX(269)-JVS(4104)*XX(281) - XX(170) = XX(170)-JVS(1893)*XX(228)-JVS(2281)*XX(246)-JVS(2641)*XX(258)-JVS(2868)*XX(262) - XX(169) = XX(169)-JVS(1972)*XX(231)-JVS(2737)*XX(260)-JVS(3406)*XX(270)-JVS(3512)*XX(271)-JVS(3814)*XX(278)-JVS(3859)& - &*XX(279)-JVS(4260)*XX(283)-JVS(4506)*XX(287) - XX(168) = XX(168)-JVS(1678)*XX(218)-JVS(2640)*XX(258)-JVS(2867)*XX(262)-JVS(3255)*XX(269)-JVS(4103)*XX(281) - XX(167) = XX(167)-JVS(1044)*XX(168)-JVS(1073)*XX(170)-JVS(1166)*XX(179)-JVS(1196)*XX(182)-JVS(1264)*XX(189)-JVS(1277)& - &*XX(190)-JVS(1818)*XX(226)-JVS(1892)*XX(228)-JVS(2199)*XX(242)-JVS(2233)*XX(244)-JVS(2547)*XX(257)-JVS(2639)& - &*XX(258)-JVS(2866)*XX(262)-JVS(3254)*XX(269)-JVS(4102)*XX(281) - XX(166) = XX(166)-JVS(2546)*XX(257)-JVS(2638)*XX(258)-JVS(2865)*XX(262)-JVS(3253)*XX(269)-JVS(4101)*XX(281) - XX(165) = XX(165)-JVS(1492)*XX(207)-JVS(1521)*XX(208)-JVS(1566)*XX(211)-JVS(1578)*XX(212)-JVS(1732)*XX(221)-JVS(2061)& - &*XX(235)-JVS(2334)*XX(247)-JVS(2384)*XX(249)-JVS(2470)*XX(254)-JVS(2637)*XX(258)-JVS(2864)*XX(262)-JVS(3252)& - &*XX(269)-JVS(3763)*XX(277)-JVS(4100)*XX(281)-JVS(4505)*XX(287) - XX(164) = XX(164)-JVS(1087)*XX(171)-JVS(1327)*XX(194)-JVS(1542)*XX(209)-JVS(1994)*XX(232)-JVS(2129)*XX(238)-JVS(2155)& - &*XX(239)-JVS(2863)*XX(262)-JVS(3251)*XX(269)-JVS(3405)*XX(270)-JVS(3948)*XX(280)-JVS(4099)*XX(281) - XX(163) = XX(163)-JVS(1455)*XX(205)-JVS(1541)*XX(209)-JVS(2099)*XX(237)-JVS(2128)*XX(238)-JVS(2154)*XX(239)-JVS(2280)& - &*XX(246)-JVS(2862)*XX(262)-JVS(3250)*XX(269)-JVS(3404)*XX(270)-JVS(3947)*XX(280)-JVS(4098)*XX(281) - XX(162) = XX(162)-JVS(1347)*XX(195)-JVS(1540)*XX(209)-JVS(1993)*XX(232)-JVS(2127)*XX(238)-JVS(2153)*XX(239)-JVS(2279)& - &*XX(246)-JVS(2861)*XX(262)-JVS(3249)*XX(269)-JVS(3403)*XX(270)-JVS(3946)*XX(280)-JVS(4097)*XX(281) - XX(161) = XX(161)-JVS(1072)*XX(170)-JVS(1173)*XX(180)-JVS(1210)*XX(184)-JVS(1263)*XX(189)-JVS(1276)*XX(190)-JVS(1308)& - &*XX(193)-JVS(1851)*XX(227)-JVS(1891)*XX(228)-JVS(2214)*XX(243)-JVS(2333)*XX(247)-JVS(2636)*XX(258)-JVS(2860)& - &*XX(262)-JVS(3248)*XX(269)-JVS(4096)*XX(281) - XX(160) = XX(160)-JVS(1182)*XX(181)-JVS(1491)*XX(207)-JVS(1677)*XX(218)-JVS(1890)*XX(228)-JVS(2545)*XX(257)-JVS(2635)& - &*XX(258)-JVS(3247)*XX(269)-JVS(4095)*XX(281) - XX(159) = XX(159)-JVS(1676)*XX(218)-JVS(1817)*XX(226)-JVS(1850)*XX(227)-JVS(1889)*XX(228)-JVS(1992)*XX(232)-JVS(2278)& - &*XX(246)-JVS(3246)*XX(269)-JVS(4094)*XX(281) - XX(158) = XX(158)-JVS(1071)*XX(170)-JVS(1172)*XX(180)-JVS(1203)*XX(183)-JVS(1275)*XX(190)-JVS(1781)*XX(224)-JVS(1801)& - &*XX(225)-JVS(1849)*XX(227)-JVS(2213)*XX(243)-JVS(2332)*XX(247)-JVS(2634)*XX(258)-JVS(2859)*XX(262)-JVS(3245)& - &*XX(269)-JVS(4093)*XX(281) - XX(157) = XX(157)-JVS(1588)*XX(213)-JVS(2736)*XX(260)-JVS(3244)*XX(269)-JVS(3511)*XX(271)-JVS(3580)*XX(272)-JVS(3858)& - &*XX(279)-JVS(4216)*XX(282)-JVS(4377)*XX(285)-JVS(4504)*XX(287) - XX(156) = XX(156)-JVS(1232)*XX(187)-JVS(1473)*XX(206)-JVS(3402)*XX(270)-JVS(3762)*XX(277) - XX(155) = XX(155)-JVS(1490)*XX(207)-JVS(1675)*XX(218)-JVS(1991)*XX(232)-JVS(2400)*XX(250)-JVS(2492)*XX(255)-JVS(2633)& - &*XX(258)-JVS(3243)*XX(269)-JVS(3761)*XX(277)-JVS(4092)*XX(281) - XX(154) = XX(154)-JVS(2491)*XX(255)-JVS(3242)*XX(269)-JVS(4091)*XX(281) - XX(153) = XX(153)-JVS(1070)*XX(170)-JVS(1165)*XX(179)-JVS(1202)*XX(183)-JVS(1780)*XX(224)-JVS(1800)*XX(225)-JVS(1816)& - &*XX(226)-JVS(2198)*XX(242)-JVS(2232)*XX(244)-JVS(2632)*XX(258)-JVS(2858)*XX(262)-JVS(3241)*XX(269)-JVS(4090)& - &*XX(281) - XX(152) = XX(152)-JVS(1674)*XX(218)-JVS(1888)*XX(228)-JVS(2544)*XX(257)-JVS(2631)*XX(258)-JVS(3240)*XX(269)-JVS(4089)& - &*XX(281) - XX(151) = XX(151)-JVS(1520)*XX(208)-JVS(1565)*XX(211)-JVS(1577)*XX(212)-JVS(1743)*XX(222)-JVS(2051)*XX(234)-JVS(2383)& - &*XX(249)-JVS(2490)*XX(255)-JVS(2630)*XX(258)-JVS(3239)*XX(269)-JVS(3760)*XX(277)-JVS(4088)*XX(281)-JVS(4503)& - &*XX(287) - XX(150) = XX(150)-JVS(1519)*XX(208)-JVS(1564)*XX(211)-JVS(1576)*XX(212)-JVS(1742)*XX(222)-JVS(2050)*XX(234)-JVS(2382)& - &*XX(249)-JVS(2489)*XX(255)-JVS(2629)*XX(258)-JVS(3238)*XX(269)-JVS(3759)*XX(277)-JVS(4087)*XX(281)-JVS(4502)& - &*XX(287) - XX(149) = XX(149)-JVS(1434)*XX(203)-JVS(1489)*XX(207)-JVS(1887)*XX(228)-JVS(2277)*XX(246)-JVS(2543)*XX(257)-JVS(2628)& - &*XX(258)-JVS(3237)*XX(269)-JVS(3401)*XX(270)-JVS(4501)*XX(287) - XX(148) = XX(148)-JVS(1539)*XX(209)-JVS(2098)*XX(237)-JVS(2126)*XX(238)-JVS(2152)*XX(239)-JVS(2857)*XX(262)-JVS(3236)& - &*XX(269)-JVS(3400)*XX(270)-JVS(3945)*XX(280)-JVS(4086)*XX(281) - XX(147) = XX(147)-JVS(1069)*XX(170)-JVS(1216)*XX(185)-JVS(1944)*XX(229)-JVS(2082)*XX(236)-JVS(2125)*XX(238)-JVS(2185)& - &*XX(241)-JVS(2197)*XX(242)-JVS(2212)*XX(243)-JVS(2735)*XX(260)-JVS(3235)*XX(269)-JVS(3399)*XX(270)-JVS(4085)& - &*XX(281) - XX(146) = XX(146)-JVS(1326)*XX(194)-JVS(1454)*XX(205)-JVS(2627)*XX(258)-JVS(3234)*XX(269)-JVS(3398)*XX(270)-JVS(3944)& - &*XX(280)-JVS(4084)*XX(281) - XX(145) = XX(145)-JVS(1488)*XX(207)-JVS(1626)*XX(215)-JVS(1886)*XX(228)-JVS(1990)*XX(232)-JVS(2399)*XX(250)-JVS(2435)& - &*XX(252)-JVS(2488)*XX(255)-JVS(2626)*XX(258)-JVS(3233)*XX(269)-JVS(3758)*XX(277)-JVS(4083)*XX(281) - XX(144) = XX(144)-JVS(1245)*XX(188)-JVS(2734)*XX(260)-JVS(3232)*XX(269)-JVS(3397)*XX(270)-JVS(3510)*XX(271)-JVS(3757)& - &*XX(277)-JVS(3813)*XX(278)-JVS(4453)*XX(286) - XX(143) = XX(143)-JVS(1325)*XX(194)-JVS(1453)*XX(205)-JVS(1989)*XX(232)-JVS(2151)*XX(239)-JVS(3231)*XX(269)-JVS(3396)& - &*XX(270)-JVS(3943)*XX(280)-JVS(4082)*XX(281) - XX(142) = XX(142)-JVS(1346)*XX(195)-JVS(1407)*XX(201)-JVS(3230)*XX(269)-JVS(3395)*XX(270)-JVS(3942)*XX(280)-JVS(4081)& - &*XX(281) - XX(141) = XX(141)-JVS(1396)*XX(200)-JVS(2097)*XX(237)-JVS(3229)*XX(269)-JVS(3394)*XX(270)-JVS(3941)*XX(280)-JVS(4080)& - &*XX(281) - XX(140) = XX(140)-JVS(3011)*XX(264)-JVS(3040)*XX(265)-JVS(3059)*XX(266)-JVS(3228)*XX(269)-JVS(4500)*XX(287) - XX(139) = XX(139)-JVS(991)*XX(159)-JVS(1418)*XX(202)-JVS(1988)*XX(232)-JVS(2276)*XX(246)-JVS(3227)*XX(269)-JVS(4079)& - &*XX(281) - XX(138) = XX(138)-JVS(962)*XX(155)-JVS(971)*XX(156)-JVS(1156)*XX(178)-JVS(1472)*XX(206)-JVS(1987)*XX(232)-JVS(2733)& - &*XX(260)-JVS(3226)*XX(269)-JVS(3756)*XX(277)-JVS(4078)*XX(281)-JVS(4499)*XX(287) - XX(137) = XX(137)-JVS(913)*XX(148)-JVS(1068)*XX(170)-JVS(1779)*XX(224)-JVS(1799)*XX(225)-JVS(2331)*XX(247)-JVS(2732)& - &*XX(260)-JVS(2856)*XX(262)-JVS(3225)*XX(269)-JVS(3393)*XX(270)-JVS(4077)*XX(281) - XX(136) = XX(136)-JVS(1008)*XX(162)-JVS(1067)*XX(170)-JVS(1778)*XX(224)-JVS(1798)*XX(225)-JVS(2231)*XX(244)-JVS(2731)& - &*XX(260)-JVS(2855)*XX(262)-JVS(3224)*XX(269)-JVS(3392)*XX(270)-JVS(4076)*XX(281) - XX(135) = XX(135)-JVS(1244)*XX(188)-JVS(2730)*XX(260)-JVS(3391)*XX(270)-JVS(3509)*XX(271)-JVS(3755)*XX(277)-JVS(4259)& - &*XX(283)-JVS(4452)*XX(286) - XX(134) = XX(134)-JVS(2854)*XX(262)-JVS(2956)*XX(263)-JVS(3223)*XX(269)-JVS(3508)*XX(271)-JVS(3857)*XX(279)-JVS(4075)& - &*XX(281)-JVS(4376)*XX(285) - XX(133) = XX(133)-JVS(1433)*XX(203)-JVS(1487)*XX(207)-JVS(1885)*XX(228)-JVS(2275)*XX(246)-JVS(2542)*XX(257)-JVS(2625)& - &*XX(258)-JVS(2853)*XX(262)-JVS(2955)*XX(263)-JVS(3222)*XX(269) - XX(132) = XX(132)-JVS(4215)*XX(282)-JVS(4375)*XX(285) - XX(131) = XX(131)-JVS(2274)*XX(246)-JVS(2729)*XX(260)-JVS(3221)*XX(269)-JVS(3390)*XX(270)-JVS(4498)*XX(287) - XX(130) = XX(130)-JVS(1181)*XX(181)-JVS(2273)*XX(246)-JVS(2624)*XX(258)-JVS(3220)*XX(269)-JVS(4074)*XX(281) - XX(129) = XX(129)-JVS(2815)*XX(261)-JVS(3219)*XX(269)-JVS(3507)*XX(271)-JVS(4073)*XX(281)-JVS(4374)*XX(285) - XX(128) = XX(128)-JVS(1066)*XX(170)-JVS(1777)*XX(224)-JVS(1797)*XX(225)-JVS(3218)*XX(269)-JVS(4072)*XX(281) - XX(127) = XX(127)-JVS(1065)*XX(170)-JVS(1776)*XX(224)-JVS(1796)*XX(225)-JVS(3217)*XX(269)-JVS(4071)*XX(281) - XX(126) = XX(126)-JVS(1064)*XX(170)-JVS(1815)*XX(226)-JVS(2230)*XX(244)-JVS(2623)*XX(258)-JVS(3216)*XX(269)-JVS(4070)& - &*XX(281) - XX(125) = XX(125)-JVS(2520)*XX(256)-JVS(3215)*XX(269)-JVS(4214)*XX(282) - XX(124) = XX(124)-JVS(1063)*XX(170)-JVS(1848)*XX(227)-JVS(2330)*XX(247)-JVS(2622)*XX(258)-JVS(3214)*XX(269)-JVS(4069)& - &*XX(281) - XX(123) = XX(123)-JVS(1943)*XX(229)-JVS(2081)*XX(236)-JVS(4068)*XX(281) - XX(122) = XX(122)-JVS(933)*XX(152)-JVS(1029)*XX(166)-JVS(1180)*XX(181)-JVS(1775)*XX(224)-JVS(1795)*XX(225)-JVS(2621)& - &*XX(258)-JVS(3213)*XX(269)-JVS(4067)*XX(281) - XX(121) = XX(121)-JVS(2031)*XX(233)-JVS(2450)*XX(253)-JVS(3212)*XX(269)-JVS(3506)*XX(271)-JVS(3579)*XX(272)-JVS(4213)& - &*XX(282)-JVS(4373)*XX(285) - XX(120) = XX(120)-JVS(2229)*XX(244)-JVS(3211)*XX(269)-JVS(3389)*XX(270)-JVS(3940)*XX(280)-JVS(4066)*XX(281) - XX(119) = XX(119)-JVS(3210)*XX(269)-JVS(4451)*XX(286) - XX(118) = XX(118)-JVS(1741)*XX(222)-JVS(2434)*XX(252)-JVS(2487)*XX(255)-JVS(3209)*XX(269)-JVS(4065)*XX(281) - XX(117) = XX(117)-JVS(855)*XX(138)-JVS(961)*XX(155)-JVS(970)*XX(156)-JVS(1155)*XX(178)-JVS(1471)*XX(206)-JVS(1673)& - &*XX(218)-JVS(2728)*XX(260)-JVS(3208)*XX(269)-JVS(4064)*XX(281)-JVS(4497)*XX(287) - XX(116) = XX(116)-JVS(2329)*XX(247)-JVS(3207)*XX(269)-JVS(3388)*XX(270)-JVS(3939)*XX(280)-JVS(4063)*XX(281) - XX(115) = XX(115)-JVS(1028)*XX(166)-JVS(1179)*XX(181)-JVS(3206)*XX(269)-JVS(4062)*XX(281) - XX(114) = XX(114)-JVS(1062)*XX(170)-JVS(1274)*XX(190)-JVS(3205)*XX(269)-JVS(4061)*XX(281) - XX(113) = XX(113)-JVS(1127)*XX(175)-JVS(1986)*XX(232)-JVS(2852)*XX(262)-JVS(3204)*XX(269)-JVS(4060)*XX(281) - XX(112) = XX(112)-JVS(2433)*XX(252)-JVS(2727)*XX(260)-JVS(3203)*XX(269)-JVS(3505)*XX(271)-JVS(4372)*XX(285)-JVS(4496)& - &*XX(287) - XX(111) = XX(111)-JVS(1324)*XX(194)-JVS(1373)*XX(197)-JVS(2486)*XX(255)-JVS(3202)*XX(269)-JVS(3387)*XX(270)-JVS(4059)& - &*XX(281) - XX(110) = XX(110)-JVS(1443)*XX(204)-JVS(2272)*XX(246)-JVS(2814)*XX(261)-JVS(2851)*XX(262)-JVS(3201)*XX(269)-JVS(4058)& - &*XX(281) - XX(109) = XX(109)-JVS(854)*XX(138)-JVS(898)*XX(145)-JVS(969)*XX(156)-JVS(1154)*XX(178)-JVS(1470)*XX(206)-JVS(2726)& - &*XX(260)-JVS(3200)*XX(269)-JVS(4057)*XX(281)-JVS(4495)*XX(287) - XX(108) = XX(108)-JVS(2060)*XX(235)-JVS(2813)*XX(261)-JVS(3199)*XX(269)-JVS(4056)*XX(281) - XX(107) = XX(107)-JVS(3079)*XX(267)-JVS(3198)*XX(269)-JVS(3630)*XX(273)-JVS(4310)*XX(284) - XX(106) = XX(106)-JVS(932)*XX(152)-JVS(2620)*XX(258)-JVS(3197)*XX(269)-JVS(4055)*XX(281) - XX(105) = XX(105)-JVS(968)*XX(156)-JVS(1231)*XX(187)-JVS(3196)*XX(269) - XX(104) = XX(104)-JVS(2541)*XX(257)-JVS(3195)*XX(269)-JVS(4054)*XX(281) - XX(103) = XX(103)-JVS(1294)*XX(192)-JVS(3629)*XX(273)-JVS(4371)*XX(285) - XX(102) = XX(102)-JVS(1985)*XX(232)-JVS(2850)*XX(262)-JVS(4053)*XX(281) - XX(101) = XX(101)-JVS(3194)*XX(269)-JVS(3386)*XX(270)-JVS(3856)*XX(279)-JVS(4052)*XX(281)-JVS(4494)*XX(287) - XX(100) = XX(100)-JVS(2619)*XX(258)-JVS(2954)*XX(263)-JVS(3193)*XX(269)-JVS(3504)*XX(271)-JVS(3855)*XX(279)-JVS(4051)& - &*XX(281)-JVS(4370)*XX(285) - XX(99) = XX(99)-JVS(1137)*XX(176)-JVS(1230)*XX(187)-JVS(2618)*XX(258)-JVS(2725)*XX(260)-JVS(3192)*XX(269)-JVS(4050)& - &*XX(281)-JVS(4493)*XX(287) - XX(98) = XX(98)-JVS(3039)*XX(265)-JVS(4369)*XX(285) - XX(97) = XX(97)-JVS(2953)*XX(263)-JVS(3126)*XX(268)-JVS(3191)*XX(269)-JVS(3675)*XX(274)-JVS(3854)*XX(279)-JVS(4049)& - &*XX(281)-JVS(4212)*XX(282) - XX(96) = XX(96)-JVS(2724)*XX(260) - XX(95) = XX(95)-JVS(665)*XX(105)-JVS(1136)*XX(176)-JVS(3190)*XX(269)-JVS(3385)*XX(270) - XX(94) = XX(94)-JVS(2398)*XX(250)-JVS(2812)*XX(261)-JVS(3189)*XX(269)-JVS(4048)*XX(281) - XX(93) = XX(93)-JVS(1712)*XX(219)-JVS(2449)*XX(253)-JVS(3188)*XX(269)-JVS(4047)*XX(281) - XX(92) = XX(92)-JVS(2030)*XX(233)-JVS(2485)*XX(255)-JVS(3187)*XX(269)-JVS(4046)*XX(281) - XX(91) = XX(91)-JVS(2432)*XX(252)-JVS(2484)*XX(255)-JVS(3186)*XX(269)-JVS(4045)*XX(281) - XX(90) = XX(90)-JVS(1763)*XX(223)-JVS(3038)*XX(265)-JVS(3384)*XX(270)-JVS(3938)*XX(280) - XX(89) = XX(89)-JVS(2483)*XX(255)-JVS(3185)*XX(269)-JVS(3383)*XX(270)-JVS(4044)*XX(281) - XX(88) = XX(88)-JVS(2811)*XX(261)-JVS(3184)*XX(269)-JVS(3382)*XX(270)-JVS(4043)*XX(281) - XX(87) = XX(87)-JVS(2849)*XX(262)-JVS(3183)*XX(269)-JVS(3381)*XX(270)-JVS(4042)*XX(281) - XX(86) = XX(86)-JVS(1711)*XX(219)-JVS(3182)*XX(269)-JVS(3380)*XX(270)-JVS(4041)*XX(281) - XX(85) = XX(85)-JVS(735)*XX(119)-JVS(2848)*XX(262)-JVS(3181)*XX(269)-JVS(4450)*XX(286) - XX(84) = XX(84)-JVS(1486)*XX(207)-JVS(1884)*XX(228)-JVS(2540)*XX(257)-JVS(3180)*XX(269) - XX(83) = XX(83)-JVS(1485)*XX(207)-JVS(2847)*XX(262)-JVS(3179)*XX(269)-JVS(4040)*XX(281) - XX(82) = XX(82)-JVS(2723)*XX(260)-JVS(2846)*XX(262)-JVS(2952)*XX(263)-JVS(3178)*XX(269)-JVS(4449)*XX(286)-JVS(4492)& - &*XX(287) - XX(81) = XX(81)-JVS(3125)*XX(268)-JVS(3177)*XX(269)-JVS(3628)*XX(273)-JVS(3853)*XX(279)-JVS(4309)*XX(284)-JVS(4368)& - &*XX(285) - XX(80) = XX(80)-JVS(3124)*XX(268)-JVS(3176)*XX(269)-JVS(3627)*XX(273)-JVS(3852)*XX(279)-JVS(4308)*XX(284)-JVS(4367)& - &*XX(285) - XX(79) = XX(79)-JVS(3123)*XX(268)-JVS(3175)*XX(269)-JVS(3626)*XX(273)-JVS(3851)*XX(279)-JVS(4307)*XX(284)-JVS(4366)& - &*XX(285) - XX(78) = XX(78)-JVS(3122)*XX(268)-JVS(3174)*XX(269)-JVS(3625)*XX(273)-JVS(3850)*XX(279)-JVS(4306)*XX(284)-JVS(4365)& - &*XX(285) - XX(77) = XX(77)-JVS(635)*XX(99)-JVS(688)*XX(109)-JVS(897)*XX(145)-JVS(960)*XX(155)-JVS(1153)*XX(178)-JVS(1672)*XX(218)& - &-JVS(1883)*XX(228)-JVS(2228)*XX(244)-JVS(2617)*XX(258)-JVS(3173)*XX(269)-JVS(4039)*XX(281) - XX(76) = XX(76)-JVS(634)*XX(99)-JVS(687)*XX(109)-JVS(896)*XX(145)-JVS(959)*XX(155)-JVS(1152)*XX(178)-JVS(1671)*XX(218)& - &-JVS(1882)*XX(228)-JVS(2227)*XX(244)-JVS(2616)*XX(258)-JVS(3172)*XX(269)-JVS(4038)*XX(281) - XX(75) = XX(75)-JVS(1126)*XX(175)-JVS(1957)*XX(230)-JVS(2845)*XX(262)-JVS(3171)*XX(269)-JVS(3754)*XX(277) - XX(74) = XX(74)-JVS(3121)*XX(268)-JVS(3170)*XX(269)-JVS(3674)*XX(274)-JVS(4211)*XX(282)-JVS(4305)*XX(284) - XX(73) = XX(73)-JVS(2615)*XX(258)-JVS(3169)*XX(269)-JVS(3503)*XX(271)-JVS(4037)*XX(281)-JVS(4364)*XX(285) - XX(72) = XX(72)-JVS(652)*XX(103)-JVS(3078)*XX(267)-JVS(3168)*XX(269)-JVS(3624)*XX(273)-JVS(4363)*XX(285) - XX(71) = XX(71)-JVS(2844)*XX(262)-JVS(2951)*XX(263)-JVS(3379)*XX(270)-JVS(4036)*XX(281)-JVS(4491)*XX(287) - XX(70) = XX(70)-JVS(3120)*XX(268)-JVS(3167)*XX(269)-JVS(3673)*XX(274)-JVS(4210)*XX(282)-JVS(4304)*XX(284) - XX(69) = XX(69)-JVS(3037)*XX(265)-JVS(4209)*XX(282) - XX(68) = XX(68)-JVS(2614)*XX(258)-JVS(3166)*XX(269)-JVS(3502)*XX(271)-JVS(4035)*XX(281)-JVS(4362)*XX(285) - XX(67) = XX(67)-JVS(1135)*XX(176)-JVS(1229)*XX(187)-JVS(3165)*XX(269) - XX(66) = XX(66)-JVS(2539)*XX(257)-JVS(2950)*XX(263)-JVS(3164)*XX(269) - XX(65) = XX(65)-JVS(3036)*XX(265)-JVS(3163)*XX(269)-JVS(3849)*XX(279) - XX(64) = XX(64)-JVS(1984)*XX(232)-JVS(3162)*XX(269)-JVS(3378)*XX(270) - XX(63) = XX(63)-JVS(2538)*XX(257)-JVS(2949)*XX(263)-JVS(3377)*XX(270)-JVS(4490)*XX(287) - XX(62) = XX(62)-JVS(2613)*XX(258)-JVS(3161)*XX(269)-JVS(4303)*XX(284)-JVS(4448)*XX(286) - XX(61) = XX(61)-JVS(3119)*XX(268)-JVS(3376)*XX(270)-JVS(3937)*XX(280)-JVS(4302)*XX(284) - XX(60) = XX(60)-JVS(726)*XX(117)-JVS(958)*XX(155)-JVS(1151)*XX(178)-JVS(1670)*XX(218)-JVS(2612)*XX(258)-JVS(3160)& - &*XX(269)-JVS(4034)*XX(281) - XX(59) = XX(59)-JVS(1243)*XX(188)-JVS(3375)*XX(270) - XX(58) = XX(58)-JVS(1242)*XX(188)-JVS(3374)*XX(270) - XX(57) = XX(57)-JVS(3118)*XX(268)-JVS(3936)*XX(280) - XX(56) = XX(56)-JVS(866)*XX(140)-JVS(3035)*XX(265)-JVS(3935)*XX(280) - XX(55) = XX(55)-JVS(3117)*XX(268)-JVS(3623)*XX(273)-JVS(3672)*XX(274)-JVS(4208)*XX(282)-JVS(4301)*XX(284)-JVS(4361)& - &*XX(285) - XX(54) = XX(54)-JVS(1484)*XX(207)-JVS(1669)*XX(218)-JVS(2611)*XX(258)-JVS(3159)*XX(269)-JVS(4033)*XX(281) - XX(53) = XX(53)-JVS(3116)*XX(268)-JVS(3622)*XX(273)-JVS(4300)*XX(284)-JVS(4360)*XX(285) - XX(52) = XX(52)-JVS(3115)*XX(268)-JVS(3621)*XX(273)-JVS(4299)*XX(284)-JVS(4359)*XX(285) - XX(51) = XX(51)-JVS(3114)*XX(268)-JVS(3620)*XX(273)-JVS(4298)*XX(284)-JVS(4358)*XX(285) - XX(50) = XX(50)-JVS(3373)*XX(270)-JVS(4207)*XX(282) - XX(49) = XX(49)-JVS(2397)*XX(250)-JVS(3372)*XX(270) - XX(48) = XX(48)-JVS(3113)*XX(268)-JVS(3619)*XX(273)-JVS(4297)*XX(284)-JVS(4357)*XX(285) - XX(47) = XX(47)-JVS(584)*XX(90)-JVS(1762)*XX(223) - XX(46) = XX(46)-JVS(3112)*XX(268)-JVS(3618)*XX(273)-JVS(4296)*XX(284)-JVS(4356)*XX(285) - XX(45) = XX(45)-JVS(3111)*XX(268)-JVS(3671)*XX(274)-JVS(4206)*XX(282)-JVS(4295)*XX(284) - XX(44) = XX(44)-JVS(3110)*XX(268)-JVS(3670)*XX(274)-JVS(4205)*XX(282)-JVS(4294)*XX(284) - XX(43) = XX(43)-JVS(2948)*XX(263)-JVS(3034)*XX(265)-JVS(3158)*XX(269)-JVS(3848)*XX(279) - XX(42) = XX(42)-JVS(3109)*XX(268)-JVS(3617)*XX(273)-JVS(4293)*XX(284)-JVS(4355)*XX(285) - XX(41) = XX(41)-JVS(2722)*XX(260) - XX(40) = XX(40)-JVS(583)*XX(90)-JVS(1761)*XX(223)-JVS(3033)*XX(265) - XX(39) = XX(39)-JVS(3157)*XX(269)-JVS(3847)*XX(279)-JVS(4354)*XX(285) - XX(38) = XX(38)-JVS(582)*XX(90) + XX(111) = XX(111)-JVS(3126)*XX(271)-JVS(4018)*XX(285)-JVS(4101)*XX(286)-JVS(4325)*XX(288) + XX(110) = XX(110)-JVS(2106)*XX(239)-JVS(2775)*XX(264)-JVS(3856)*XX(284)-JVS(4100)*XX(286) + XX(109) = XX(109)-JVS(977)*XX(156)-JVS(2966)*XX(267)-JVS(3855)*XX(284)-JVS(4099)*XX(286) + XX(108) = XX(108)-JVS(2031)*XX(236)-JVS(2675)*XX(263)-JVS(3854)*XX(284) + XX(107) = XX(107)-JVS(1013)*XX(160)-JVS(1277)*XX(191)-JVS(4098)*XX(286) + XX(106) = XX(106)-JVS(2455)*XX(255)-JVS(2774)*XX(264)-JVS(2901)*XX(266)-JVS(3853)*XX(284)-JVS(4097)*XX(286) + XX(105) = XX(105)-JVS(1532)*XX(211)-JVS(1944)*XX(233)-JVS(2585)*XX(261)-JVS(2965)*XX(267)-JVS(4096)*XX(286) + XX(104) = XX(104)-JVS(2584)*XX(261)-JVS(3852)*XX(284)-JVS(4095)*XX(286) + XX(103) = XX(103)-JVS(1356)*XX(197)-JVS(4017)*XX(285)-JVS(4425)*XX(290) + XX(102) = XX(102)-JVS(3447)*XX(278)-JVS(3661)*XX(281)-JVS(3851)*XX(284)-JVS(4094)*XX(286)-JVS(4517)*XX(291) + XX(101) = XX(101)-JVS(1183)*XX(180)-JVS(1276)*XX(191)-JVS(2807)*XX(265)-JVS(2964)*XX(267)-JVS(3660)*XX(281)-JVS(3850)& + &*XX(284)-JVS(4093)*XX(286) + XX(100) = XX(100)-JVS(2900)*XX(266)-JVS(3174)*XX(272)-JVS(3214)*XX(273)-JVS(3267)*XX(274)-JVS(3446)*XX(278)-JVS(3849)& + &*XX(284)-JVS(4092)*XX(286) + XX(99) = XX(99)-JVS(3086)*XX(269)-JVS(4424)*XX(290) + XX(98) = XX(98)-JVS(2806)*XX(265) + XX(97) = XX(97)-JVS(700)*XX(107)-JVS(1182)*XX(180)-JVS(4091)*XX(286)-JVS(4516)*XX(291) + XX(96) = XX(96)-JVS(2773)*XX(264)-JVS(3848)*XX(284)-JVS(4090)*XX(286)-JVS(4515)*XX(291) + XX(95) = XX(95)-JVS(1708)*XX(221)-JVS(2506)*XX(258)-JVS(3847)*XX(284)-JVS(4089)*XX(286) + XX(94) = XX(94)-JVS(2076)*XX(237)-JVS(2529)*XX(259)-JVS(3846)*XX(284)-JVS(4088)*XX(286) + XX(93) = XX(93)-JVS(2476)*XX(256)-JVS(2528)*XX(259)-JVS(3845)*XX(284)-JVS(4087)*XX(286) + XX(92) = XX(92)-JVS(1809)*XX(227)-JVS(3085)*XX(269)-JVS(3530)*XX(279)-JVS(4514)*XX(291) + XX(91) = XX(91)-JVS(2527)*XX(259)-JVS(3844)*XX(284)-JVS(4086)*XX(286)-JVS(4513)*XX(291) + XX(90) = XX(90)-JVS(2674)*XX(263)-JVS(2805)*XX(265)-JVS(2899)*XX(266)-JVS(3373)*XX(276)-JVS(3659)*XX(281)-JVS(4085)& + &*XX(286) + XX(89) = XX(89)-JVS(2673)*XX(263)-JVS(3843)*XX(284)-JVS(4084)*XX(286)-JVS(4512)*XX(291) + XX(88) = XX(88)-JVS(2583)*XX(261)-JVS(2672)*XX(263)-JVS(2898)*XX(266)-JVS(4083)*XX(286) + XX(87) = XX(87)-JVS(1707)*XX(221)-JVS(3842)*XX(284)-JVS(4082)*XX(286)-JVS(4511)*XX(291) + XX(86) = XX(86)-JVS(776)*XX(122)-JVS(2671)*XX(263)-JVS(3372)*XX(276)-JVS(4081)*XX(286) + XX(85) = XX(85)-JVS(1531)*XX(211)-JVS(2670)*XX(263)-JVS(3841)*XX(284)-JVS(4080)*XX(286) + XX(84) = XX(84)-JVS(3173)*XX(272)-JVS(3445)*XX(278)-JVS(4016)*XX(285)-JVS(4079)*XX(286)-JVS(4324)*XX(288)-JVS(4423)& + &*XX(290) + XX(83) = XX(83)-JVS(3172)*XX(272)-JVS(3444)*XX(278)-JVS(4015)*XX(285)-JVS(4078)*XX(286)-JVS(4323)*XX(288)-JVS(4422)& + &*XX(290) + XX(82) = XX(82)-JVS(3171)*XX(272)-JVS(3443)*XX(278)-JVS(4014)*XX(285)-JVS(4077)*XX(286)-JVS(4322)*XX(288)-JVS(4421)& + &*XX(290) + XX(81) = XX(81)-JVS(3170)*XX(272)-JVS(3442)*XX(278)-JVS(4013)*XX(285)-JVS(4076)*XX(286)-JVS(4321)*XX(288)-JVS(4420)& + &*XX(290) + XX(80) = XX(80)-JVS(671)*XX(101)-JVS(741)*XX(115)-JVS(938)*XX(148)-JVS(1005)*XX(159)-JVS(1213)*XX(184)-JVS(1734)& + &*XX(223)-JVS(1943)*XX(233)-JVS(2272)*XX(248)-JVS(2963)*XX(267)-JVS(3840)*XX(284)-JVS(4075)*XX(286) + XX(79) = XX(79)-JVS(670)*XX(101)-JVS(740)*XX(115)-JVS(937)*XX(148)-JVS(1004)*XX(159)-JVS(1212)*XX(184)-JVS(1733)& + &*XX(223)-JVS(1942)*XX(233)-JVS(2271)*XX(248)-JVS(2962)*XX(267)-JVS(3839)*XX(284)-JVS(4074)*XX(286) + XX(78) = XX(78)-JVS(2961)*XX(267)-JVS(3295)*XX(275)-JVS(3838)*XX(284)-JVS(4073)*XX(286)-JVS(4419)*XX(290) + XX(77) = XX(77)-JVS(3169)*XX(272)-JVS(3213)*XX(273)-JVS(3266)*XX(274)-JVS(4072)*XX(286)-JVS(4320)*XX(288) + XX(76) = XX(76)-JVS(1172)*XX(179)-JVS(2003)*XX(234)-JVS(2669)*XX(263)-JVS(3749)*XX(282)-JVS(4071)*XX(286) + XX(75) = XX(75)-JVS(679)*XX(103)-JVS(3125)*XX(271)-JVS(4012)*XX(285)-JVS(4070)*XX(286)-JVS(4418)*XX(290) + XX(74) = XX(74)-JVS(2668)*XX(263)-JVS(2897)*XX(266)-JVS(3658)*XX(281)-JVS(3837)*XX(284)-JVS(4510)*XX(291) + XX(73) = XX(73)-JVS(3084)*XX(269)-JVS(3212)*XX(273) + XX(72) = XX(72)-JVS(2960)*XX(267)-JVS(3294)*XX(275)-JVS(3836)*XX(284)-JVS(4069)*XX(286)-JVS(4417)*XX(290) + XX(71) = XX(71)-JVS(3168)*XX(272)-JVS(3211)*XX(273)-JVS(3265)*XX(274)-JVS(4068)*XX(286)-JVS(4319)*XX(288) + XX(70) = XX(70)-JVS(1181)*XX(180)-JVS(1275)*XX(191)-JVS(4067)*XX(286) + XX(69) = XX(69)-JVS(3083)*XX(269)-JVS(3441)*XX(278)-JVS(4066)*XX(286) + XX(68) = XX(68)-JVS(2030)*XX(236)-JVS(4065)*XX(286)-JVS(4509)*XX(291) + XX(67) = XX(67)-JVS(2582)*XX(261)-JVS(2896)*XX(266)-JVS(3657)*XX(281)-JVS(4508)*XX(291) + XX(66) = XX(66)-JVS(2959)*XX(267)-JVS(3371)*XX(276)-JVS(4064)*XX(286)-JVS(4318)*XX(288) + XX(65) = XX(65)-JVS(3167)*XX(272)-JVS(3529)*XX(279)-JVS(4317)*XX(288)-JVS(4507)*XX(291) + XX(64) = XX(64)-JVS(757)*XX(118)-JVS(1003)*XX(159)-JVS(1211)*XX(184)-JVS(1732)*XX(223)-JVS(2958)*XX(267)-JVS(3835)& + &*XX(284)-JVS(4063)*XX(286) + XX(63) = XX(63)-JVS(1300)*XX(193)-JVS(4506)*XX(291) + XX(62) = XX(62)-JVS(1299)*XX(193)-JVS(4505)*XX(291) + XX(61) = XX(61)-JVS(3166)*XX(272)-JVS(3528)*XX(279) + XX(60) = XX(60)-JVS(907)*XX(143)-JVS(3082)*XX(269)-JVS(3527)*XX(279) + XX(59) = XX(59)-JVS(3165)*XX(272)-JVS(3210)*XX(273)-JVS(3264)*XX(274)-JVS(4011)*XX(285)-JVS(4316)*XX(288)-JVS(4416)& + &*XX(290) + XX(58) = XX(58)-JVS(1530)*XX(211)-JVS(1731)*XX(223)-JVS(2957)*XX(267)-JVS(3834)*XX(284)-JVS(4062)*XX(286) + XX(57) = XX(57)-JVS(3164)*XX(272)-JVS(4010)*XX(285)-JVS(4315)*XX(288)-JVS(4415)*XX(290) + XX(56) = XX(56)-JVS(3163)*XX(272)-JVS(4009)*XX(285)-JVS(4314)*XX(288)-JVS(4414)*XX(290) + XX(55) = XX(55)-JVS(3162)*XX(272)-JVS(4008)*XX(285)-JVS(4313)*XX(288)-JVS(4413)*XX(290) + XX(54) = XX(54)-JVS(3161)*XX(272)-JVS(4007)*XX(285)-JVS(4312)*XX(288)-JVS(4412)*XX(290) + XX(53) = XX(53)-JVS(3160)*XX(272)-JVS(4006)*XX(285)-JVS(4311)*XX(288)-JVS(4411)*XX(290) + XX(52) = XX(52)-JVS(3159)*XX(272)-JVS(4005)*XX(285)-JVS(4310)*XX(288)-JVS(4410)*XX(290) + XX(51) = XX(51)-JVS(3209)*XX(273)-JVS(4504)*XX(291) + XX(50) = XX(50)-JVS(2454)*XX(255)-JVS(4503)*XX(291) + XX(49) = XX(49)-JVS(620)*XX(92)-JVS(1808)*XX(227) + XX(48) = XX(48)-JVS(3158)*XX(272)-JVS(3208)*XX(273)-JVS(3263)*XX(274)-JVS(4309)*XX(288) + XX(47) = XX(47)-JVS(3157)*XX(272)-JVS(3207)*XX(273)-JVS(3262)*XX(274)-JVS(4308)*XX(288) + XX(46) = XX(46)-JVS(2895)*XX(266)-JVS(3081)*XX(269)-JVS(3440)*XX(278)-JVS(4061)*XX(286) + XX(45) = XX(45)-JVS(2804)*XX(265) + XX(44) = XX(44)-JVS(619)*XX(92)-JVS(1807)*XX(227)-JVS(3080)*XX(269) + XX(43) = XX(43)-JVS(3439)*XX(278)-JVS(4060)*XX(286)-JVS(4409)*XX(290) + XX(42) = XX(42)-JVS(618)*XX(92) + XX(41) = XX(41)-JVS(4059)*XX(286) + XX(40) = XX(40) + XX(39) = XX(39) + XX(38) = XX(38) XX(37) = XX(37) XX(36) = XX(36) XX(35) = XX(35) @@ -3110,9 +3140,9 @@ SUBROUTINE KppSolveTR ( JVS, X, XX ) XX(6) = XX(6) XX(5) = XX(5) XX(4) = XX(4) - XX(3) = XX(3)-JVS(3032)*XX(265)-JVS(4353)*XX(285) - XX(2) = XX(2)-JVS(3031)*XX(265)-JVS(4204)*XX(282) - XX(1) = XX(1)-JVS(3030)*XX(265) + XX(3) = XX(3)-JVS(3079)*XX(269)-JVS(4408)*XX(290) + XX(2) = XX(2)-JVS(3078)*XX(269)-JVS(3206)*XX(273) + XX(1) = XX(1)-JVS(3077)*XX(269) END SUBROUTINE KppSolveTR diff --git a/KPP/fullchem/gckpp_Monitor.F90 b/KPP/fullchem/gckpp_Monitor.F90 index ec6a65746..bbfc015e4 100644 --- a/KPP/fullchem/gckpp_Monitor.F90 +++ b/KPP/fullchem/gckpp_Monitor.F90 @@ -2,7 +2,7 @@ ! ! Utility Data Module File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) @@ -28,1064 +28,1044 @@ MODULE gckpp_Monitor CHARACTER(LEN=32), PARAMETER, DIMENSION(90) :: SPC_NAMES_0 = (/ & 'CH2I2 ','CH2IBr ','CH2ICl ', & ! index 1 - 3 - 'AERI ','AONITA ','CO2 ', & ! index 4 - 6 - 'INDIOL ','ISALA ','ISALC ', & ! index 7 - 9 - 'LBRO2H ','LBRO2N ','BRO2 ', & ! index 10 - 12 - 'LISOPOH ','LISOPNO3 ','LNRO2H ', & ! index 13 - 15 - 'LNRO2N ','NRO2 ','NAP ', & ! index 16 - 18 - 'LTRO2H ','LTRO2N ','TRO2 ', & ! index 19 - 21 - 'LVOCOA ','LVOC ','LXRO2H ', & ! index 22 - 24 - 'LXRO2N ','XRO2 ','MSA ', & ! index 25 - 27 - 'SO4s ','SOAGX ','SOAIE ', & ! index 28 - 30 - 'POx ','LOx ','PCO ', & ! index 31 - 33 - 'LCO ','PSO4 ','LCH4 ', & ! index 34 - 36 - 'PH2O2 ','I2O4 ','CH3CCl3 ', & ! index 37 - 39 - 'I2O2 ','MONITA ','CFC114 ', & ! index 40 - 42 - 'CH3I ','H1301 ','H2402 ', & ! index 43 - 45 - 'CFC115 ','I2O3 ','CFC113 ', & ! index 46 - 48 - 'PPN ','BrNO2 ','CCl4 ', & ! index 49 - 51 - 'CFC11 ','CFC12 ','C2H2 ', & ! index 52 - 54 - 'H1211 ','INO ','N2O ', & ! index 55 - 57 - 'NIT ','NITs ','BENZ ', & ! index 58 - 60 - 'N ','OCS ','PAN ', & ! index 61 - 63 - 'ETHN ','HI ','MAP ', & ! index 64 - 66 - 'BZCO3H ','CHCl3 ','IBr ', & ! index 67 - 69 - 'CH2Br2 ','MPN ','Cl2O2 ', & ! index 70 - 72 - 'CH2Cl2 ','CHBr3 ','C2H4 ', & ! index 73 - 75 - 'TOLU ','XYLE ','HCFC123 ', & ! index 76 - 78 - 'HCFC141b ','HCFC142b ','HCFC22 ', & ! index 79 - 81 - 'DMS ','HMHP ','HMML ', & ! index 82 - 84 - 'HMS ','IPRNO3 ','MENO3 ', & ! index 85 - 87 - 'ETNO3 ','NPRNO3 ','OIO ' /) ! index up to 90 + 'AERI ','AONITA ','BUTDI ', & ! index 4 - 6 + 'CO2 ','INDIOL ','ISALA ', & ! index 7 - 9 + 'ISALC ','LBRO2H ','LBRO2N ', & ! index 10 - 12 + 'BRO2 ','LISOPOH ','LISOPNO3 ', & ! index 13 - 15 + 'LNRO2H ','LNRO2N ','NRO2 ', & ! index 16 - 18 + 'NAP ','LTRO2H ','LTRO2N ', & ! index 19 - 21 + 'TRO2 ','LVOCOA ','LVOC ', & ! index 22 - 24 + 'LXRO2H ','LXRO2N ','XRO2 ', & ! index 25 - 27 + 'MSA ','SO4s ','SOAGX ', & ! index 28 - 30 + 'SOAIE ','PH2SO4 ','PSO4AQ ', & ! index 31 - 33 + 'POx ','LOx ','PCO ', & ! index 34 - 36 + 'LCO ','PSO4 ','LCH4 ', & ! index 37 - 39 + 'PH2O2 ','FURA ','I2O4 ', & ! index 40 - 42 + 'CH3CCl3 ','I2O2 ','MONITA ', & ! index 43 - 45 + 'CH3I ','H1301 ','H2402 ', & ! index 46 - 48 + 'I2O3 ','PPN ','BrNO2 ', & ! index 49 - 51 + 'CCl4 ','CFC11 ','CFC12 ', & ! index 52 - 54 + 'CFC113 ','CFC114 ','CFC115 ', & ! index 55 - 57 + 'C2H2 ','H1211 ','INO ', & ! index 58 - 60 + 'N2O ','NIT ','NITs ', & ! index 61 - 63 + 'BENZ ','N ','OCS ', & ! index 64 - 66 + 'PAN ','ETHN ','HI ', & ! index 67 - 69 + 'BZCO3H ','CH2Br2 ','CH2Cl2 ', & ! index 70 - 72 + 'IBr ','MPN ','Cl2O2 ', & ! index 73 - 75 + 'C2H4 ','CHBr3 ','CHCl3 ', & ! index 76 - 78 + 'TOLU ','XYLE ','HCFC123 ', & ! index 79 - 81 + 'HCFC141b ','HCFC142b ','HCFC22 ', & ! index 82 - 84 + 'HMHP ','HMS ','IPRNO3 ', & ! index 85 - 87 + 'MAP ','MENO3 ','DMS ' /) ! index up to 90 CHARACTER(LEN=32), PARAMETER, DIMENSION(90) :: SPC_NAMES_1 = (/ & - 'R4P ','RA3P ','RB3P ', & ! index 91 - 93 - 'RP ','BZPAN ','IONITA ', & ! index 94 - 96 - 'CH3Br ','ICl ','BALD ', & ! index 97 - 99 - 'CH3Cl ','HNO4 ','ETO ', & ! index 100 - 102 - 'ClOO ','PYAC ','BENZP ', & ! index 103 - 105 - 'IDC ','OClO ','ETP ', & ! index 106 - 108 - 'CSL ','PP ','PRPN ', & ! index 109 - 111 - 'ALK4 ','ETHP ','IEPOXD ', & ! index 112 - 114 - 'MVKDH ','HPALD2OO ','PHEN ', & ! index 115 - 117 - 'PIP ','SO4 ','HPALD1OO ', & ! index 118 - 120 - 'C3H8 ','IDCHP ','INA ', & ! index 121 - 123 - 'HPALD4 ','Br2 ','HPALD3 ', & ! index 124 - 126 - 'IEPOXA ','IEPOXB ','EOH ', & ! index 127 - 129 - 'MCRDH ','HONIT ','BrCl ', & ! index 130 - 132 - 'MACR1OOH ','MP ','SALCAL ', & ! index 133 - 135 - 'IHN2 ','IHN3 ','MCT ', & ! index 136 - 138 - 'IDHDP ','I2 ','C4HVP1 ', & ! index 139 - 141 - 'C4HVP2 ','IDNOO ','SALAAL ', & ! index 142 - 144 - 'AROMP5 ','ICNOO ','INPD ', & ! index 145 - 147 - 'ISOPNOO2 ','MPAN ','MTPA ', & ! index 148 - 150 - 'MTPO ','MVKPC ','RIPA ', & ! index 151 - 153 - 'ROH ','AROMP4 ','BENZO ', & ! index 154 - 156 - 'C2H6 ','RIPB ','IDHPE ', & ! index 157 - 159 - 'MCRENOL ','RIPD ','ISOPNOO1 ', & ! index 160 - 162 - 'IDHNDOO2 ','IDHNDOO1 ','LIMO ', & ! index 163 - 165 - 'MVKHC ','RIPC ','HPETHNL ', & ! index 166 - 168 - 'N2O5 ','ICHE ','MCRHNB ', & ! index 169 - 171 - 'BrNO3 ','H ','MONITS ', & ! index 172 - 174 - 'ETOO ','BZCO3 ','INPB ', & ! index 175 - 177 - 'AROMRO2 ','IHPOO1 ','IHPOO2 ' /) ! index up to 180 + 'NPRNO3 ','OIO ','R4P ', & ! index 91 - 93 + 'RA3P ','RB3P ','ETNO3 ', & ! index 94 - 96 + 'BZPAN ','IONITA ','ICl ', & ! index 97 - 99 + 'CH3Br ','BALD ','HNO4 ', & ! index 100 - 102 + 'ClOO ','PYAC ','HMML ', & ! index 103 - 105 + 'RP ','BENZP ','ETO ', & ! index 106 - 108 + 'IDC ','ETP ','OClO ', & ! index 109 - 111 + 'PP ','PRPN ','ALK4 ', & ! index 112 - 114 + 'CSL ','IEPOXD ','MVKDH ', & ! index 115 - 117 + 'PHEN ','PIP ','ETHP ', & ! index 118 - 120 + 'HPALD1OO ','SO4 ','HPALD2OO ', & ! index 121 - 123 + 'C3H8 ','IDCHP ','INA ', & ! index 124 - 126 + 'HPALD4 ','Br2 ','HPALD3 ', & ! index 127 - 129 + 'IEPOXA ','IEPOXB ','MCRDH ', & ! index 130 - 132 + 'EOH ','HONIT ','BrCl ', & ! index 133 - 135 + 'MACR1OOH ','MP ','SALCAL ', & ! index 136 - 138 + 'IHN2 ','IHN3 ','IDHDP ', & ! index 139 - 141 + 'MCT ','I2 ','C4HVP1 ', & ! index 142 - 144 + 'C4HVP2 ','IDNOO ','SALAAL ', & ! index 145 - 147 + 'AROMP5 ','CH3Cl ','ICNOO ', & ! index 148 - 150 + 'INPD ','ISOPNOO2 ','MPAN ', & ! index 151 - 153 + 'MTPA ','MTPO ','MVKPC ', & ! index 154 - 156 + 'RIPA ','ROH ','AROMP4 ', & ! index 157 - 159 + 'BENZO ','C2H6 ','RIPB ', & ! index 160 - 162 + 'MCRENOL ','IDHPE ','RIPD ', & ! index 163 - 165 + 'IDHNDOO1 ','ISOPNOO1 ','IDHNDOO2 ', & ! index 166 - 168 + 'MVKHC ','LIMO ','RIPC ', & ! index 169 - 171 + 'HPETHNL ','N2O5 ','ICHE ', & ! index 172 - 174 + 'MCRHNB ','BrNO3 ','H ', & ! index 175 - 177 + 'MONITS ','ETOO ','BZCO3 ' /) ! index up to 180 CHARACTER(LEN=32), PARAMETER, DIMENSION(90) :: SPC_NAMES_2 = (/ & - 'MVKHCB ','HPALD1 ','IHPOO3 ', & ! index 181 - 183 - 'HPALD2 ','IHPNDOO ','CH4 ', & ! index 184 - 186 - 'BENZO2 ','HNO2 ','HC5A ', & ! index 187 - 189 - 'ICHOO ','CH3CHOO ','Cl2 ', & ! index 190 - 192 - 'ATOOH ','PROPNN ','MCRHN ', & ! index 193 - 195 - 'MONITU ','PRN1 ','R4N2 ', & ! index 196 - 198 - 'IONO ','MVKOHOO ','MCROHOO ', & ! index 199 - 201 - 'ICPDH ','MACR1OO ','PO2 ', & ! index 202 - 204 - 'ETHLN ','NPHEN ','HCOOH ', & ! index 205 - 207 - 'H2O2 ','ITCN ','IHN4 ', & ! index 208 - 210 - 'OLNN ','OLND ','ETO2 ', & ! index 211 - 213 - 'MOH ','ACTA ','IHN1 ', & ! index 214 - 216 - 'IHPNBOO ','GLYX ','ACET ', & ! index 217 - 219 - 'ISOP ','LIMO2 ','MEK ', & ! index 220 - 222 - 'IO ','IEPOXAOO ','IEPOXBOO ', & ! index 223 - 225 - 'MVKHP ','MCRHP ','MGLY ', & ! index 226 - 228 - 'IDHNBOO ','CH2OO ','ClNO2 ', & ! index 229 - 231 - 'GLYC ','A3O2 ','PIO2 ', & ! index 232 - 234 - 'OTHRO2 ','ICN ','MVKN ', & ! index 235 - 237 - 'ITHN ','IDN ','INO2B ', & ! index 238 - 240 - 'INO2D ','IHOO1 ','IHOO4 ', & ! index 241 - 243 - 'MVK ','MACRNO2 ','HAC ', & ! index 244 - 246 - 'MACR ','ATO2 ','KO2 ', & ! index 247 - 249 - 'RCO3 ','R4N1 ','R4O2 ', & ! index 250 - 252 - 'B3O2 ','PRPE ','RCHO ', & ! index 253 - 255 - 'HOBr ','MCO3 ','CO ', & ! index 256 - 258 - 'ClNO3 ','HNO3 ','ALD2 ', & ! index 259 - 261 - 'CH2O ','MO2 ','HOI ', & ! index 262 - 264 - 'I ','IONO2 ','HOCl ', & ! index 265 - 267 - 'O1D ','OH ','NO2 ' /) ! index up to 270 - CHARACTER(LEN=32), PARAMETER, DIMENSION(21) :: SPC_NAMES_3 = (/ & - 'HCl ','HBr ','ClO ', & ! index 271 - 273 - 'BrO ','BrSALA ','BrSALC ', & ! index 274 - 276 - 'O3 ','SALACL ','H2O ', & ! index 277 - 279 - 'NO ','HO2 ','Br ', & ! index 280 - 282 - 'SALCCL ','O ','Cl ', & ! index 283 - 285 - 'SO2 ','NO3 ','H2 ', & ! index 286 - 288 - 'N2 ','O2 ','RCOOH ' /) ! index up to 291 - CHARACTER(LEN=32), PARAMETER, DIMENSION(291) :: SPC_NAMES = (/& + 'INPB ','IHPOO1 ','IHPOO2 ', & ! index 181 - 183 + 'AROMRO2 ','MVKHCB ','HPALD1 ', & ! index 184 - 186 + 'IHPOO3 ','HPALD2 ','IHPNDOO ', & ! index 187 - 189 + 'CH4 ','BENZO2 ','HC5A ', & ! index 190 - 192 + 'HNO2 ','ICHOO ','CH3CHOO ', & ! index 193 - 195 + 'ATOOH ','Cl2 ','PROPNN ', & ! index 196 - 198 + 'MONITU ','MCRHN ','PRN1 ', & ! index 199 - 201 + 'R4N2 ','IONO ','MVKOHOO ', & ! index 202 - 204 + 'MCROHOO ','ICPDH ','MACR1OO ', & ! index 205 - 207 + 'ETHLN ','PO2 ','NPHEN ', & ! index 208 - 210 + 'HCOOH ','H2O2 ','ITCN ', & ! index 211 - 213 + 'IHN4 ','OLNN ','OLND ', & ! index 214 - 216 + 'ETO2 ','MOH ','ACTA ', & ! index 217 - 219 + 'IHN1 ','ACET ','IHPNBOO ', & ! index 220 - 222 + 'GLYX ','ISOP ','LIMO2 ', & ! index 223 - 225 + 'MEK ','IO ','IEPOXAOO ', & ! index 226 - 228 + 'IEPOXBOO ','MVKHP ','MCRHP ', & ! index 229 - 231 + 'IDHNBOO ','MGLY ','CH2OO ', & ! index 232 - 234 + 'ClNO2 ','GLYC ','A3O2 ', & ! index 235 - 237 + 'PIO2 ','OTHRO2 ','ICN ', & ! index 238 - 240 + 'MVKN ','ITHN ','IDN ', & ! index 241 - 243 + 'IHOO4 ','IHOO1 ','INO2D ', & ! index 244 - 246 + 'INO2B ','MVK ','MACRNO2 ', & ! index 247 - 249 + 'HAC ','MACR ','ATO2 ', & ! index 250 - 252 + 'PRPE ','KO2 ','RCO3 ', & ! index 253 - 255 + 'R4O2 ','R4N1 ','B3O2 ', & ! index 256 - 258 + 'RCHO ','HOBr ','MCO3 ', & ! index 259 - 261 + 'ClNO3 ','CH2O ','ALD2 ', & ! index 262 - 264 + 'HNO3 ','MO2 ','CO ', & ! index 265 - 267 + 'HOI ','I ','IONO2 ' /) ! index up to 270 + CHARACTER(LEN=32), PARAMETER, DIMENSION(25) :: SPC_NAMES_3 = (/ & + 'HOCl ','O1D ','Br ', & ! index 271 - 273 + 'BrO ','HCl ','SO2 ', & ! index 274 - 276 + 'BrSALC ','H2O ','NO ', & ! index 277 - 279 + 'SALACL ','NO3 ','O3 ', & ! index 280 - 282 + 'BrSALA ','HO2 ','ClO ', & ! index 283 - 285 + 'OH ','SALCCL ','O ', & ! index 286 - 288 + 'HBr ','Cl ','NO2 ', & ! index 289 - 291 + 'H2 ','N2 ','O2 ', & ! index 292 - 294 + 'RCOOH ' /) ! index up to 295 + CHARACTER(LEN=32), PARAMETER, DIMENSION(295) :: SPC_NAMES = (/& SPC_NAMES_0, SPC_NAMES_1, SPC_NAMES_2, SPC_NAMES_3 /) INTEGER, DIMENSION(1) :: LOOKAT INTEGER, DIMENSION(1) :: MONITOR CHARACTER(LEN=32), DIMENSION(1) :: SMASS CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_0 = (/ & - 'SALAAL + O3 + SO2 --> LOx + PSO4 + SO4 - SALAAL ', & ! index 1 + 'SALAAL + SO2 + O3 --> LOx + PSO4 + SO4 - SALAAL ', & ! index 1 ' SALAAL + HCl --> SALACL ', & ! index 2 - ' SALAAL + HNO3 --> LOx + NIT ', & ! index 3 - 'SALCAL + O3 + SO2 --> SO4s + LOx - SALCAL ', & ! index 4 + ' SALAAL + HNO3 --> NIT ', & ! index 3 + 'SALCAL + SO2 + O3 --> SO4s + LOx - SALCAL ', & ! index 4 ' SALCAL + HCl --> SALCCL ', & ! index 5 - ' SALCAL + HNO3 --> LOx + NITs ', & ! index 6 - ' H2O2 + SO2 --> PSO4 + SO4 ', & ! index 7 - ' O3 + SO2 --> LOx + PSO4 + SO4 ', & ! index 8 - ' SO2 --> PSO4 + SO4 ', & ! index 9 + ' SALCAL + HNO3 --> NITs ', & ! index 6 + ' H2O2 + SO2 --> PSO4AQ + PSO4 + SO4 ', & ! index 7 + ' SO2 + O3 --> PSO4AQ + LOx + PSO4 + SO4 ', & ! index 8 + ' SO2 --> PSO4AQ + PSO4 + SO4 ', & ! index 9 ' CH2O + SO2 --> HMS ', & ! index 10 ' HMS --> CH2O + SO2 ', & ! index 11 - ' HMS + OH --> 2 PSO4 + 2 SO4 + CH2O - SO2 ', & ! index 12 - ' O3 + NO --> NO2 + O2 ', & ! index 13 - ' OH + O3 --> LOx + HO2 + O2 ', & ! index 14 + ' HMS + SO2 + OH --> 2 PSO4AQ + 2 PSO4 + 2 SO4 + CH2O ', & ! index 12 + ' NO + O3 --> NO2 + O2 ', & ! index 13 + ' O3 + OH --> LOx + HO2 + O2 ', & ! index 14 ' O3 + HO2 --> LOx + OH + 2 O2 ', & ! index 15 - ' NO2 + O3 --> NO3 + O2 ', & ! index 16 + ' O3 + NO2 --> NO3 + O2 ', & ! index 16 ' MO2 + O3 --> LOx + CH2O + HO2 + O2 ', & ! index 17 ' 2 OH --> POx + H2O + O ', & ! index 18 ' 2 OH --> PH2O2 + H2O2 ', & ! index 19 - ' OH + HO2 --> H2O + O2 ', & ! index 20 + ' HO2 + OH --> H2O + O2 ', & ! index 20 ' H2O2 + OH --> H2O + HO2 ', & ! index 21 ' NO + HO2 --> POx + OH + NO2 ', & ! index 22 ' 2 HO2 --> PH2O2 + H2O2 + O2 ', & ! index 23 ' CO + OH --> CO2 + LCO + HO2 ', & ! index 24 ' CH4 + OH --> LCH4 + MO2 + H2O ', & ! index 25 - ' MO2 + NO --> POx + CH2O + NO2 + HO2 ', & ! index 26 + ' MO2 + NO --> POx + CH2O + HO2 + NO2 ', & ! index 26 ' MO2 + NO --> MENO3 ', & ! index 27 ' MO2 + HO2 --> MP + O2 ', & ! index 28 ' 2 MO2 --> MOH + CH2O + O2 ', & ! index 29 ' 2 MO2 --> 2 CH2O + 2 HO2 ' /) ! index up to 30 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_1 = (/ & ' MO2 + OH --> 0.13 MOH + 0.87 CH2O + 1.74 HO2 ', & ! index 31 - ' MP + OH --> MO2 + H2O ', & ! index 32 - ' MP + OH --> CH2O + OH + H2O ', & ! index 33 - ' ATOOH + OH --> ATO2 + H2O ', & ! index 34 - ' ATOOH + OH --> MGLY + OH + H2O ', & ! index 35 - ' CH2O + OH --> PCO + CO + H2O + HO2 ', & ! index 36 - ' OH + NO2 --> HNO3 ', & ! index 37 - ' HNO3 + OH --> POx + H2O + NO3 ', & ! index 38 - ' OH + NO --> HNO2 ', & ! index 39 - ' HNO2 + OH --> POx + NO2 + H2O ', & ! index 40 - ' NO2 + HO2 --> HNO4 ', & ! index 41 - ' HNO4 --> NO2 + HO2 ', & ! index 42 - ' HNO4 + OH --> NO2 + H2O + O2 ', & ! index 43 - ' HO2 + NO3 --> LOx + OH + NO2 + O2 ', & ! index 44 - ' NO + NO3 --> 2 NO2 ', & ! index 45 - ' OH + NO3 --> LOx + NO2 + HO2 ', & ! index 46 - ' NO2 + NO3 --> N2O5 ', & ! index 47 - ' N2O5 --> NO2 + NO3 ', & ! index 48 - ' HCOOH + OH --> CO2 + H2O + HO2 ', & ! index 49 - ' MOH + OH --> CH2O + HO2 ', & ! index 50 - ' NO2 + NO3 --> 2 LOx + NO2 + NO + O2 ', & ! index 51 - ' CH2O + NO3 --> LOx + PCO + CO + HNO3 + HO2 ', & ! index 52 - ' ALD2 + OH --> 0.05 PCO + 0.95 MCO3 + 0.05 CO + 0.05 CH2O + H2O + 0.05 HO2 ', & ! index 53 - ' ALD2 + NO3 --> LOx + MCO3 + HNO3 ', & ! index 54 - ' MCO3 + NO2 --> PAN ', & ! index 55 - ' PAN --> MCO3 + NO2 ', & ! index 56 - ' MCO3 + NO --> CO2 + POx + MO2 + NO2 ', & ! index 57 - ' C2H6 + OH --> ETO2 + H2O ', & ! index 58 - ' ETO2 + NO --> POx + ALD2 + NO2 + HO2 ', & ! index 59 - ' ETO2 + NO --> ETNO3 ' /) ! index up to 60 + ' MP + OH --> 0.3 CH2O + 0.7 MO2 + H2O + 0.3 OH ', & ! index 32 + ' ATOOH + OH --> 0.3 MGLY + 0.7 ATO2 + H2O + 0.3 OH ', & ! index 33 + ' CH2O + OH --> PCO + CO + H2O + HO2 ', & ! index 34 + ' OH + NO2 --> HNO3 ', & ! index 35 + ' HNO3 + OH --> POx + H2O + NO3 ', & ! index 36 + ' NO + OH --> HNO2 ', & ! index 37 + ' HNO2 + OH --> POx + H2O + NO2 ', & ! index 38 + ' HO2 + NO2 --> HNO4 ', & ! index 39 + ' HNO4 --> HO2 + NO2 ', & ! index 40 + ' HNO4 + OH --> H2O + NO2 + O2 ', & ! index 41 + ' NO3 + HO2 --> LOx + OH + NO2 + O2 ', & ! index 42 + ' NO + NO3 --> 2 NO2 ', & ! index 43 + ' NO3 + OH --> LOx + HO2 + NO2 ', & ! index 44 + ' NO3 + NO2 --> N2O5 ', & ! index 45 + ' N2O5 --> NO3 + NO2 ', & ! index 46 + ' HCOOH + OH --> CO2 + H2O + HO2 ', & ! index 47 + ' MOH + OH --> CH2O + HO2 ', & ! index 48 + ' NO3 + NO2 --> 2 LOx + NO + NO2 + O2 ', & ! index 49 + ' CH2O + NO3 --> LOx + PCO + HNO3 + CO + HO2 ', & ! index 50 + ' ALD2 + OH --> 0.05 PCO + 0.95 MCO3 + 0.05 CH2O + 0.05 CO + H2O + 0.05 HO2 ', & ! index 51 + ' ALD2 + NO3 --> LOx + MCO3 + HNO3 ', & ! index 52 + ' MCO3 + NO2 --> PAN ', & ! index 53 + ' PAN --> MCO3 + NO2 ', & ! index 54 + ' MCO3 + NO --> CO2 + POx + MO2 + NO2 ', & ! index 55 + ' C2H6 + OH --> ETO2 + H2O ', & ! index 56 + ' ETO2 + NO --> POx + ALD2 + HO2 + NO2 ', & ! index 57 + ' ETO2 + NO --> ETNO3 ', & ! index 58 + ' OTHRO2 + NO --> POx + ALD2 + HO2 + NO2 ', & ! index 59 + ' C3H8 + OH --> B3O2 ' /) ! index up to 60 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_2 = (/ & - ' OTHRO2 + NO --> POx + ALD2 + NO2 + HO2 ', & ! index 61 - ' C3H8 + OH --> B3O2 ', & ! index 62 - ' C3H8 + OH --> A3O2 ', & ! index 63 - ' A3O2 + NO --> POx + RCHO + NO2 + HO2 ', & ! index 64 - ' A3O2 + NO --> NPRNO3 ', & ! index 65 - ' PO2 + NO --> POx + ALD2 + CH2O + NO2 + HO2 ', & ! index 66 - ' ALK4 + OH --> R4O2 ', & ! index 67 - ' R4O2 + NO --> POx + 0.32 ACET + 0.19 MEK + 0.05 A3O2 + 0.32 OTHRO2 + 0.18 B3O2 + 0.1... etc.', & ! index 68 - ' R4O2 + NO --> POx + R4N2 ', & ! index 69 - ' R4N1 + NO --> POx + 0.57 RCHO + 0.86 ALD2 + 0.57 CH2O + 2 NO2 ', & ! index 70 - ' ATO2 + NO --> POx + MCO3 + CH2O + NO2 ', & ! index 71 - ' KO2 + NO --> POx + 0.07 R4N2 + 0.93 MCO3 + 0.93 ALD2 + 0.93 NO2 ', & ! index 72 - ' B3O2 + NO --> POx + ACET + NO2 + HO2 ', & ! index 73 - ' B3O2 + NO --> IPRNO3 ', & ! index 74 - ' PRN1 + NO --> POx + ALD2 + CH2O + 2 NO2 ', & ! index 75 - ' ALK4 + NO3 --> LOx + R4O2 + HNO3 ', & ! index 76 - ' R4N2 + OH --> R4N1 + H2O ', & ! index 77 - ' ACTA + OH --> CO2 + MO2 + H2O ', & ! index 78 - ' RCHO + OH --> RCO3 + H2O ', & ! index 79 - ' RCO3 + NO2 --> PPN ', & ! index 80 - ' PPN --> RCO3 + NO2 ', & ! index 81 - ' RCO3 + NO --> POx + 0.07 A3O2 + 0.5 OTHRO2 + 0.27 B3O2 + NO2 ', & ! index 82 - ' RCHO + NO3 --> LOx + RCO3 + HNO3 ', & ! index 83 - ' ACET + OH --> ATO2 + H2O ', & ! index 84 - ' A3O2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.75 RCHO + 0.75 CH2O + HO2 ', & ! index 85 - ' PO2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.16 HAC + 0.09 RCHO + 0.5 ALD2 + 1.25 CH2O + HO2 ', & ! index 86 - ' R4O2 + HO2 --> R4P ', & ! index 87 - ' R4N1 + HO2 --> R4N2 ', & ! index 88 - ' ATO2 + HO2 --> 0.85 ATOOH + 0.15 MCO3 + 0.15 CH2O + 0.15 OH ', & ! index 89 - ' KO2 + HO2 --> 0.85 ATOOH + 0.15 MCO3 + 0.15 ALD2 + 0.15 OH ' /) ! index up to 90 + ' C3H8 + OH --> A3O2 ', & ! index 61 + ' A3O2 + NO --> POx + RCHO + HO2 + NO2 ', & ! index 62 + ' A3O2 + NO --> NPRNO3 ', & ! index 63 + ' PO2 + NO --> POx + CH2O + ALD2 + HO2 + NO2 ', & ! index 64 + ' ALK4 + OH --> R4O2 ', & ! index 65 + ' R4O2 + NO --> POx + 0.34 ACET + 0.19 MEK + 0.05 A3O2 + 0.34 OTHRO2 + 0.19 B3O2 + 0.1... etc.', & ! index 66 + ' R4O2 + NO --> POx + R4N2 ', & ! index 67 + ' R4N1 + NO --> POx + 0.64 RCHO + 0.64 CH2O + 0.97 ALD2 + 2 NO2 ', & ! index 68 + ' ATO2 + NO --> POx + MCO3 + CH2O + NO2 ', & ! index 69 + ' KO2 + NO --> POx + 0.072 R4N2 + 0.919 MCO3 + 0.919 ALD2 + 0.928 NO2 ', & ! index 70 + ' B3O2 + NO --> POx + ACET + HO2 + NO2 ', & ! index 71 + ' B3O2 + NO --> IPRNO3 ', & ! index 72 + ' PRN1 + NO --> POx + CH2O + ALD2 + 2 NO2 ', & ! index 73 + ' ALK4 + NO3 --> LOx + R4O2 + HNO3 ', & ! index 74 + ' R4N2 + OH --> R4N1 + H2O ', & ! index 75 + ' ACTA + OH --> CO2 + MO2 + H2O ', & ! index 76 + ' RCHO + OH --> RCO3 + H2O ', & ! index 77 + ' RCO3 + NO2 --> PPN ', & ! index 78 + ' PPN --> RCO3 + NO2 ', & ! index 79 + ' RCO3 + NO --> CO2 + POx + 0.07 A3O2 + 0.49 OTHRO2 + 0.27 B3O2 + NO2 ', & ! index 80 + ' RCHO + NO3 --> LOx + RCO3 + HNO3 ', & ! index 81 + ' ACET + OH --> ATO2 + H2O ', & ! index 82 + ' A3O2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.75 RCHO + 0.75 CH2O + HO2 ', & ! index 83 + ' PO2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.16 HAC + 0.09 RCHO + 1.25 CH2O + 0.5 ALD2 + HO2 ', & ! index 84 + ' R4O2 + HO2 --> R4P ', & ! index 85 + ' R4N1 + HO2 --> R4N2 ', & ! index 86 + ' ATO2 + HO2 --> 0.85 ATOOH + 0.15 MCO3 + 0.15 CH2O + 0.15 OH ', & ! index 87 + ' KO2 + HO2 --> 0.85 ATOOH + 0.15 MCO3 + 0.15 ALD2 + 0.85 MO2 + 0.15 OH ', & ! index 88 + ' B3O2 + HO2 --> RB3P ', & ! index 89 + ' PRN1 + HO2 --> PRPN ' /) ! index up to 90 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_3 = (/ & - ' B3O2 + HO2 --> RB3P ', & ! index 91 - ' PRN1 + HO2 --> PRPN ', & ! index 92 - ' MEK + OH --> KO2 + H2O ', & ! index 93 - ' ETO2 + MO2 --> 0.25 EOH + 0.25 MOH + 0.75 ALD2 + 0.75 CH2O + HO2 ', & ! index 94 - ' OTHRO2 + MO2 --> 0.25 EOH + 0.25 MOH + 0.75 ALD2 + 0.75 CH2O + HO2 ', & ! index 95 - ' MEK + NO3 --> LOx + KO2 + HNO3 ', & ! index 96 - ' R4O2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.16 ACET + 0.35 MEK + 0.03 A3O2 + 0.16 OTHRO2 +... etc.', & ! index 97 - ' R4N1 + MO2 --> 0.25 ROH + 0.25 MOH + 0.15 R4O2 + 0.54 RCHO + 0.38 ALD2 + 0.95 CH2O + ... etc.', & ! index 98 - ' ATO2 + MO2 --> 0.5 MOH + 0.5 MGLY + 0.2 HAC + 0.3 MCO3 + 0.5 CH2O + 0.3 HO2 ', & ! index 99 - ' KO2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.25 MEK + 0.5 MCO3 + 0.5 ALD2 + 0.75 CH2O + 0.5 HO2 ', & ! index 100 - ' B3O2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.75 ACET + 0.75 CH2O + HO2 ', & ! index 101 - ' PRN1 + MO2 --> 0.25 ROH + 0.25 MOH + 0.25 RCHO + 0.5 ALD2 + 1.25 CH2O + NO2 + 0.5 HO2 ', & ! index 102 - ' EOH + OH --> ALD2 + HO2 ', & ! index 103 - ' ROH + OH --> RCHO + HO2 ', & ! index 104 - ' 2 ETO2 --> 2 ALD2 + 2 HO2 ', & ! index 105 - ' 2 OTHRO2 --> 2 ALD2 + 2 HO2 ', & ! index 106 - ' 2 ETO2 --> EOH + ALD2 ', & ! index 107 - ' 2 OTHRO2 --> EOH + ALD2 ', & ! index 108 - ' ETO2 + HO2 --> ETP ', & ! index 109 - ' OTHRO2 + HO2 --> ETP ', & ! index 110 - ' A3O2 + HO2 --> RA3P ', & ! index 111 - ' PO2 + HO2 --> PP ', & ! index 112 - ' RCO3 + HO2 --> 0.15 POx + 0.41 RP + 0.03 A3O2 + 0.22 OTHRO2 + 0.12 B3O2 + 0.44 OH + 0... etc.', & ! index 113 - ' PRPE + OH --> PO2 ', & ! index 114 - ' PRPE + O3 --> LOx + 0.56 PCO + 0.1 CH4 + 0.12 CH3CHOO + 0.12 CH2OO + 0.56 CO + 0.5 A... etc.', & ! index 115 - ' GLYC + OH --> 0.361 CO2 + 0.505 PCO + 0.134 HCOOH + 0.134 GLYX + 0.505 CO + 0.732 CH... etc.', & ! index 116 - ' GLYC + OH --> PCO + HCOOH + CO + OH ', & ! index 117 - ' PRPE + NO3 --> LOx + PRN1 ', & ! index 118 - ' GLYX + OH --> 2 PCO + 2 CO + HO2 ', & ! index 119 - ' MGLY + OH --> PCO + MCO3 + CO ' /) ! index up to 120 + ' MEK + OH --> KO2 + H2O ', & ! index 91 + ' ETO2 + MO2 --> 0.25 EOH + 0.25 MOH + 0.75 CH2O + 0.75 ALD2 + HO2 ', & ! index 92 + ' OTHRO2 + MO2 --> 0.25 EOH + 0.25 MOH + 0.75 CH2O + 0.75 ALD2 + HO2 ', & ! index 93 + ' MEK + NO3 --> LOx + KO2 + HNO3 ', & ! index 94 + ' R4O2 + MO2 --> 0.38 ROH + 0.25 MOH + 0.16 ACET + 0.35 MEK + 0.03 A3O2 + 0.16 OTHRO2 +... etc.', & ! index 95 + ' R4N1 + MO2 --> 0.375 ROH + 0.25 MOH + 0.15 R4O2 + 0.58 RCHO + 0.95 CH2O + 0.38 ALD2 +... etc.', & ! index 96 + ' ATO2 + MO2 --> 0.3 CO2 + 0.5 MOH + 0.5 MGLY + 0.2 HAC + 0.3 MCO3 + 0.5 CH2O + 0.3 HO2 ', & ! index 97 + ' KO2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.25 MEK + 0.5 MCO3 + 0.75 CH2O + 0.5 ALD2 + 0.2... etc.', & ! index 98 + ' B3O2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.75 ACET + 0.75 CH2O + HO2 ', & ! index 99 + ' PRN1 + MO2 --> 0.25 ROH + 0.25 MOH + 0.25 RCHO + 1.25 CH2O + 0.5 ALD2 + 0.5 HO2 + NO2 ', & ! index 100 + ' EOH + OH --> ALD2 + HO2 ', & ! index 101 + ' ROH + OH --> RCHO + HO2 ', & ! index 102 + ' 2 ETO2 --> 0.4 EOH + 1.6 ALD2 + 1.2 HO2 ', & ! index 103 + ' 2 OTHRO2 --> 0.4 EOH + 1.6 ALD2 + 1.2 HO2 ', & ! index 104 + ' ETO2 + HO2 --> ETP ', & ! index 105 + ' OTHRO2 + HO2 --> ETP ', & ! index 106 + ' A3O2 + HO2 --> RA3P ', & ! index 107 + ' PO2 + HO2 --> PP ', & ! index 108 + ' RCO3 + HO2 --> 0.43 CO2 + 0.15 POx + 0.41 RP + 0.03 A3O2 + 0.22 OTHRO2 + 0.12 B3O2 + ... etc.', & ! index 109 + ' PRPE + OH --> PO2 ', & ! index 110 + ' PRPE + O3 --> 0.1 CO2 + LOx + 0.56 PCO + 0.1 CH4 + 0.12 CH3CHOO + 0.22 CH2OO + 0.5 C... etc.', & ! index 111 + ' GLYC + OH --> 0.361 CO2 + 0.505 PCO + 0.134 HCOOH + 0.134 GLYX + 0.732 CH2O + 0.505 ... etc.', & ! index 112 + ' GLYC + OH --> PCO + HCOOH + CO + OH ', & ! index 113 + ' PRPE + NO3 --> LOx + PRN1 ', & ! index 114 + ' GLYX + OH --> 2 PCO + 2 CO + HO2 ', & ! index 115 + ' MGLY + OH --> PCO + MCO3 + CO ', & ! index 116 + ' GLYX + NO3 --> LOx + 2 PCO + HNO3 + 2 CO + HO2 ', & ! index 117 + ' MGLY + NO3 --> LOx + PCO + MCO3 + HNO3 + CO ', & ! index 118 + ' HAC + OH --> MGLY + HO2 ', & ! index 119 + ' HAC + OH --> 0.5 CO2 + 0.5 PCO + 0.5 HCOOH + 0.5 ACTA + 0.5 MO2 + 0.5 CO + OH ' /) ! index up to 120 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_4 = (/ & - ' GLYX + NO3 --> LOx + 2 PCO + 2 CO + HNO3 + HO2 ', & ! index 121 - ' MGLY + NO3 --> LOx + PCO + MCO3 + CO + HNO3 ', & ! index 122 - ' HAC + OH --> MGLY + HO2 ', & ! index 123 - ' HAC + OH --> 0.5 CO2 + 0.5 PCO + 0.5 HCOOH + 0.5 ACTA + 0.5 CO + 0.5 MO2 + OH ', & ! index 124 - ' A3O2 + MCO3 --> RCHO + MO2 + HO2 ', & ! index 125 - ' PO2 + MCO3 --> ALD2 + CH2O + MO2 + HO2 ', & ! index 126 - ' A3O2 + MCO3 --> ACTA + RCHO ', & ! index 127 - ' PO2 + MCO3 --> ACTA + 0.65 HAC + 0.35 RCHO ', & ! index 128 - ' RCO3 + MO2 --> 0.07 A3O2 + 0.5 OTHRO2 + 0.27 B3O2 + CH2O + HO2 ', & ! index 129 - ' RCO3 + MO2 --> CH2O + RCOOH ', & ! index 130 - ' PRPN + OH --> 0.791 PROPNN + 0.209 PRN1 + 0.791 OH ', & ! index 131 - ' ETP + OH --> 0.36 OTHRO2 + 0.64 ALD2 + 0.64 OH ', & ! index 132 - ' RA3P + OH --> 0.36 A3O2 + 0.64 RCHO + 0.64 OH ', & ! index 133 - ' RB3P + OH --> 0.791 ACET + 0.209 B3O2 + 0.791 OH ', & ! index 134 - ' R4P + OH --> 0.209 R4O2 + 0.791 RCHO + 0.791 OH ', & ! index 135 - ' RP + OH --> RCO3 ', & ! index 136 - ' PP + OH --> 0.209 PO2 + 0.791 HAC + 0.791 OH ', & ! index 137 - ' LVOC + OH --> OH ', & ! index 138 - ' MAP + OH --> MCO3 ', & ! index 139 - ' C2H6 + NO3 --> LOx + ETO2 + HNO3 ', & ! index 140 - ' 2 MCO3 --> 2 MO2 ', & ! index 141 - ' MCO3 + MO2 --> CH2O + MO2 + HO2 ', & ! index 142 - ' MCO3 + MO2 --> ACTA + CH2O ', & ! index 143 - ' R4O2 + MCO3 --> 0.32 ACET + 0.19 MEK + 0.05 A3O2 + 0.32 OTHRO2 + 0.18 B3O2 + 0.13 RCHO... etc.', & ! index 144 - ' ATO2 + MCO3 --> MCO3 + CH2O + MO2 ', & ! index 145 - ' KO2 + MCO3 --> MCO3 + ALD2 + MO2 ', & ! index 146 - ' B3O2 + MCO3 --> ACET + MO2 + HO2 ', & ! index 147 - ' R4N1 + MCO3 --> 0.3 R4O2 + 0.57 RCHO + 0.75 ALD2 + 0.39 CH2O + MO2 + NO2 ', & ! index 148 - ' PRN1 + MCO3 --> ALD2 + CH2O + MO2 + NO2 ', & ! index 149 - ' R4O2 + MCO3 --> ACTA + MEK ' /) ! index up to 150 + ' PRPN + OH --> 0.791 PROPNN + 0.209 PRN1 + 0.791 OH ', & ! index 121 + ' ETP + OH --> 0.36 OTHRO2 + 0.64 ALD2 + 0.64 OH ', & ! index 122 + ' RA3P + OH --> 0.36 A3O2 + 0.64 RCHO + 0.64 OH ', & ! index 123 + ' RB3P + OH --> 0.791 ACET + 0.209 B3O2 + 0.791 OH ', & ! index 124 + ' R4P + OH --> 0.21 R4O2 + 1.185 RCHO + 0.79 OH ', & ! index 125 + ' RP + OH --> RCO3 ', & ! index 126 + ' PP + OH --> 0.209 PO2 + 0.791 HAC + 0.791 OH ', & ! index 127 + ' LVOC + OH --> OH ', & ! index 128 + ' MAP + OH --> 0.22 CO2 + 0.78 MCO3 + 0.22 CH2O + 0.22 OH ', & ! index 129 + ' C2H6 + NO3 --> LOx + ETO2 + HNO3 ', & ! index 130 + ' 2 MCO3 --> 2 CO2 + 2 MO2 ', & ! index 131 + ' MCO3 + MO2 --> 0.9 CO2 + 0.1 ACTA + CH2O + 0.9 MO2 + 0.9 HO2 ', & ! index 132 + ' R4O2 + MCO3 --> 0.9 CO2 + 0.1 ACTA + 0.29 ACET + 0.271 MEK + 0.045 A3O2 + 0.29 OTHRO2 ... etc.', & ! index 133 + ' ATO2 + MCO3 --> 0.9 CO2 + 0.1 ACTA + 0.1 MGLY + 0.9 MCO3 + 0.9 CH2O + 0.9 MO2 ', & ! index 134 + ' KO2 + MCO3 --> 0.9 CO2 + 0.1 ACTA + 0.1 MEK + 0.9 MCO3 + 0.9 ALD2 + 0.9 MO2 ', & ! index 135 + ' B3O2 + MCO3 --> 0.9 CO2 + 0.1 ACTA + ACET + 0.9 MO2 + 0.9 HO2 ', & ! index 136 + ' R4N1 + MCO3 --> 0.645 CO2 + 0.1 ACTA + 0.27 R4O2 + 0.613 RCHO + 0.351 CH2O + 0.675 ALD... etc.', & ! index 137 + ' PRN1 + MCO3 --> 0.9 CO2 + 0.1 ACTA + 0.1 RCHO + 0.9 CH2O + 0.9 ALD2 + 0.9 MO2 + NO2 ', & ! index 138 + ' ETO2 + MCO3 --> 0.9 CO2 + 0.1 ACTA + ALD2 + 0.9 MO2 + 0.9 HO2 ', & ! index 139 + ' OTHRO2 + MCO3 --> 0.9 CO2 + 0.1 ACTA + ALD2 + 0.9 MO2 + 0.9 HO2 ', & ! index 140 + ' PO2 + MCO3 --> 0.9 CO2 + 0.1 ACTA + 0.065 HAC + 0.035 RCHO + 0.9 CH2O + 0.9 ALD2 + 0.... etc.', & ! index 141 + ' A3O2 + MCO3 --> 0.9 CO2 + 0.1 ACTA + RCHO + 0.9 MO2 + 0.9 HO2 ', & ! index 142 + ' RCO3 + MCO3 --> 2 CO2 + 0.07 A3O2 + 0.49 OTHRO2 + 0.27 B3O2 + MO2 ', & ! index 143 + ' RCO3 + MO2 --> CO2 + 0.07 A3O2 + 0.49 OTHRO2 + 0.27 B3O2 + CH2O + HO2 ', & ! index 144 + ' 2 NO3 --> 2 LOx + 2 NO2 + O2 ', & ! index 145 + ' MO2 + NO2 --> MPN ', & ! index 146 + ' MPN --> MO2 + NO2 ', & ! index 147 + ' DMS + OH --> CH2O + MO2 + SO2 ', & ! index 148 + ' DMS + OH --> 0.25 MSA + MO2 + 0.75 SO2 ', & ! index 149 + ' DMS + NO3 --> LOx + CH2O + HNO3 + MO2 + SO2 ' /) ! index up to 150 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_5 = (/ & - ' ATO2 + MCO3 --> ACTA + MGLY ', & ! index 151 - ' KO2 + MCO3 --> ACTA + MEK ', & ! index 152 - ' R4N1 + MCO3 --> ACTA + RCHO + NO2 ', & ! index 153 - ' PRN1 + MCO3 --> ACTA + RCHO + NO2 ', & ! index 154 - ' B3O2 + MCO3 --> ACTA + ACET ', & ! index 155 - ' ETO2 + MCO3 --> ALD2 + MO2 + HO2 ', & ! index 156 - ' OTHRO2 + MCO3 --> ALD2 + MO2 + HO2 ', & ! index 157 - ' ETO2 + MCO3 --> ACTA + ALD2 ', & ! index 158 - ' OTHRO2 + MCO3 --> ACTA + ALD2 ', & ! index 159 - ' RCO3 + MCO3 --> 0.07 A3O2 + 0.5 OTHRO2 + 0.27 B3O2 + MO2 ', & ! index 160 - ' 2 NO3 --> 2 LOx + 2 NO2 + O2 ', & ! index 161 - ' MO2 + NO2 --> MPN ', & ! index 162 - ' MPN --> MO2 + NO2 ', & ! index 163 - ' DMS + OH --> CH2O + MO2 + SO2 ', & ! index 164 - ' DMS + OH --> 0.25 MSA + MO2 + 0.75 SO2 ', & ! index 165 - ' DMS + NO3 --> LOx + HNO3 + CH2O + MO2 + SO2 ', & ! index 166 - ' OH + SO2 --> PSO4 + SO4 + HO2 ', & ! index 167 - ' O3 + Br --> BrO + O2 ', & ! index 168 - ' BrO + HO2 --> HOBr + O2 ', & ! index 169 - ' HO2 + Br --> HBr + O2 ', & ! index 170 - ' OH + HBr --> H2O + Br ', & ! index 171 - ' 2 BrO --> 2 LOx + 2 Br + O2 ', & ! index 172 - ' 2 BrO --> 2 LOx + Br2 + O2 ', & ! index 173 - ' BrO + NO --> NO2 + Br ', & ! index 174 - ' BrNO3 + Br --> Br2 + NO3 ', & ! index 175 - ' Br2 + OH --> POx + HOBr + Br ', & ! index 176 - ' HOBr + O --> LOx + OH + BrO ', & ! index 177 - ' HBr + O --> LOx + OH + Br ', & ! index 178 - ' OH + BrO --> LOx + HO2 + Br ', & ! index 179 - ' Br + NO3 --> NO2 + BrO ' /) ! index up to 180 + ' SO2 + OH --> PH2SO4 + PSO4 + SO4 + HO2 ', & ! index 151 + ' Br + O3 --> BrO + O2 ', & ! index 152 + ' BrO + HO2 --> HOBr + O2 ', & ! index 153 + ' Br + HO2 --> HBr + O2 ', & ! index 154 + ' OH + HBr --> Br + H2O ', & ! index 155 + ' 2 BrO --> 2 LOx + 2 Br + O2 ', & ! index 156 + ' 2 BrO --> 2 LOx + Br2 + O2 ', & ! index 157 + ' BrO + NO --> Br + NO2 ', & ! index 158 + ' BrNO3 + Br --> Br2 + NO3 ', & ! index 159 + ' Br2 + OH --> POx + HOBr + Br ', & ! index 160 + ' HOBr + O --> LOx + BrO + OH ', & ! index 161 + ' O + HBr --> LOx + Br + OH ', & ! index 162 + ' BrO + OH --> LOx + Br + HO2 ', & ! index 163 + ' Br + NO3 --> BrO + NO2 ', & ! index 164 + ' CH2O + Br --> PCO + CO + HO2 + HBr ', & ! index 165 + ' ALD2 + Br --> MCO3 + HBr ', & ! index 166 + ' ACET + Br --> ATO2 + HBr ', & ! index 167 + ' C2H6 + Br --> ETO2 + HBr ', & ! index 168 + ' C3H8 + Br --> A3O2 + HBr ', & ! index 169 + ' Br + NO2 --> BrNO2 ', & ! index 170 + ' BrO + NO2 --> BrNO3 ', & ! index 171 + ' CHBr3 + OH --> 3 Br ', & ! index 172 + ' CH2Br2 + OH --> 2 Br ', & ! index 173 + ' CH3Br + OH --> Br + H2O + HO2 ', & ! index 174 + ' O1D + H2O --> LOx + 2 OH ', & ! index 175 + ' O1D + N2 --> O + N2 ', & ! index 176 + ' O1D + O2 --> O + O2 ', & ! index 177 + ' O1D + H2 --> LOx + H + OH ', & ! index 178 + ' N2O + O1D --> LOx + 1.22 NO + 0.39 N2 + 0.39 O2 ', & ! index 179 + ' CH4 + O1D --> LOx + LCH4 + 0.2 H + 0.25 CH2O + 0.75 MO2 + 0.2 HO2 + 0.75 OH + 0.05 H2 ' /) ! index up to 180 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_6 = (/ & - ' CH2O + Br --> PCO + CO + HBr + HO2 ', & ! index 181 - ' ALD2 + Br --> MCO3 + HBr ', & ! index 182 - ' ACET + Br --> ATO2 + HBr ', & ! index 183 - ' C2H6 + Br --> ETO2 + HBr ', & ! index 184 - ' C3H8 + Br --> A3O2 + HBr ', & ! index 185 - ' NO2 + Br --> BrNO2 ', & ! index 186 - ' NO2 + BrO --> BrNO3 ', & ! index 187 - ' CHBr3 + OH --> 3 Br ', & ! index 188 - ' CH2Br2 + OH --> 2 Br ', & ! index 189 - ' CH3Br + OH --> H2O + HO2 + Br ', & ! index 190 - ' O1D + H2O --> LOx + 2 OH ', & ! index 191 - ' O1D + N2 --> O + N2 ', & ! index 192 - ' O1D + O2 --> O + O2 ', & ! index 193 - ' O1D + H2 --> LOx + H + OH ', & ! index 194 - ' N2O + O1D --> LOx + N2 + O2 ', & ! index 195 - ' N2O + O1D --> LOx + 2 NO ', & ! index 196 - ' CH4 + O1D --> LOx + LCH4 + MO2 + OH ', & ! index 197 - ' CH4 + O1D --> LOx + LCH4 + CH2O + H2 ', & ! index 198 - ' CH4 + O1D --> LOx + LCH4 + H + CH2O + HO2 ', & ! index 199 - ' O + O2 --> O3 ', & ! index 200 - ' O3 + O --> 2 LOx + 2 O2 ', & ! index 201 - ' OH + H2 --> H + H2O ', & ! index 202 - ' OH + O --> LOx + H + O2 ', & ! index 203 - ' HO2 + O --> LOx + OH + O2 ', & ! index 204 - ' O1D + O3 --> 2 LOx + 2 O2 ', & ! index 205 - ' O1D + O3 --> 2 O + O2 ', & ! index 206 - ' OCS + O --> LOx + PCO + CO + SO2 ', & ! index 207 - ' OCS + OH --> CO2 + SO2 ', & ! index 208 - ' NO2 + O --> 2 LOx + NO + O2 ', & ! index 209 - ' O + NO3 --> 2 LOx + NO2 + O2 ' /) ! index up to 210 + ' O + O2 --> O3 ', & ! index 181 + ' O3 + O --> 2 LOx + 2 O2 ', & ! index 182 + ' OH + H2 --> H + H2O ', & ! index 183 + ' OH + O --> LOx + H + O2 ', & ! index 184 + ' HO2 + O --> LOx + OH + O2 ', & ! index 185 + ' O1D + O3 --> LOx + O + 1.5 O2 ', & ! index 186 + ' OCS + O --> LOx + PCO + CO + SO2 ', & ! index 187 + ' OCS + OH --> CO2 + SO2 ', & ! index 188 + ' O + NO2 --> 2 LOx + NO + O2 ', & ! index 189 + ' NO3 + O --> 2 LOx + NO2 + O2 ', & ! index 190 + ' NO + O --> NO2 ', & ! index 191 + ' O + NO2 --> NO3 ', & ! index 192 + ' H2O2 + O --> LOx + HO2 + OH ', & ! index 193 + ' H + O2 --> HO2 ', & ! index 194 + ' H + O3 --> LOx + OH + O2 ', & ! index 195 + ' H + HO2 --> 0.02 POx + 0.02 H2O + 1.788 OH + 0.02 O + 0.086 H2 + 0.086 O2 ', & ! index 196 + ' N + O2 --> POx + NO + O ', & ! index 197 + ' N + NO --> POx + O + N2 ', & ! index 198 + ' N + NO2 --> N2O + O ', & ! index 199 + ' BrO + O --> 2 LOx + Br + O2 ', & ! index 200 + ' CH2O + O --> LOx + PCO + CO + HO2 + OH ', & ! index 201 + ' O1D + HCl --> 0.66 LOx + 0.22 H + 0.12 HCl + 0.22 ClO + 0.66 OH + 0.12 O + 0.66 Cl ', & ! index 202 + ' O1D + HBr --> 0.6 LOx + 0.2 H + 0.6 Br + 0.2 BrO + 0.6 OH + 0.2 O + 0.2 HBr ', & ! index 203 + ' Cl2 + O1D --> 0.25 Cl2 + 0.75 ClO + 0.25 O + 0.75 Cl ', & ! index 204 + ' CCl4 + O1D --> 0.21 CCl4 + 0.79 ClO + 0.21 O + 2.37 Cl ', & ! index 205 + ' CH3Cl + O1D --> 0.44 LOx + 0.1 CH3Cl + 0.09 H + 0.9 MO2 + 0.46 ClO + 0.1 O + 0.35 Cl ', & ! index 206 + ' CH3Br + O1D --> 0.56 LOx + MO2 + 0.56 Br + 0.44 BrO ', & ! index 207 + ' CH2Br2 + O1D --> 0.05 CH2Br2 + 0.95 Br + 0.95 BrO + 0.05 O ', & ! index 208 + ' CHBr3 + O1D --> 0.3 CHBr3 + 1.4 Br + 0.7 BrO + 0.3 O ', & ! index 209 + ' HCFC22 + O1D --> 0.19 LOx + 0.25 HCFC22 + 0.56 ClO + 0.05 OH + 0.25 O + 0.19 Cl ' /) ! index up to 210 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_7 = (/ & - ' NO + O --> NO2 ', & ! index 211 - ' NO2 + O --> NO3 ', & ! index 212 - ' H2O2 + O --> LOx + OH + HO2 ', & ! index 213 - ' H + O2 --> HO2 ', & ! index 214 - ' H + O3 --> LOx + OH + O2 ', & ! index 215 - ' H + HO2 --> 2 OH ', & ! index 216 - ' H + HO2 --> POx + H2O + O ', & ! index 217 - ' H + HO2 --> H2 + O2 ', & ! index 218 - ' N + O2 --> POx + NO + O ', & ! index 219 - ' N + NO --> POx + O + N2 ', & ! index 220 - ' N + NO2 --> N2O + O ', & ! index 221 - ' BrO + O --> 2 LOx + Br + O2 ', & ! index 222 - ' CH2O + O --> LOx + PCO + CO + OH + HO2 ', & ! index 223 - ' O1D + HCl --> 0.67 LOx + 0.24 H + 0.67 OH + 0.09 HCl + 0.24 ClO + 0.09 O + 0.67 Cl ', & ! index 224 - ' O1D + HBr --> 0.65 LOx + 0.15 H + 0.65 OH + 0.2 HBr + 0.15 BrO + 0.65 Br + 0.2 O ', & ! index 225 - ' Cl2 + O1D --> 0.25 Cl2 + 0.75 ClO + 0.25 O + 0.75 Cl ', & ! index 226 - ' CCl4 + O1D --> 0.14 CCl4 + 0.86 ClO + 0.14 O + 2.58 Cl ', & ! index 227 - ' CH3Br + O1D --> 0.56 LOx + MO2 + 0.44 BrO + 0.56 Br ', & ! index 228 - ' CH2Br2 + O1D --> 0.05 CH2Br2 + 0.95 BrO + 0.95 Br + 0.05 O ', & ! index 229 - ' CHBr3 + O1D --> 0.32 CHBr3 + 0.68 BrO + 1.36 Br + 0.32 O ', & ! index 230 - ' HCFC22 + O1D --> 0.17 LOx + 0.28 HCFC22 + 0.55 ClO + 0.28 O + 0.17 Cl ', & ! index 231 - ' CFC11 + O1D --> 0.12 CFC11 + 0.88 ClO + 0.12 O + 1.76 Cl ', & ! index 232 - ' CFC12 + O1D --> 0.14 CFC12 + 0.86 ClO + 0.14 O + 0.86 Cl ', & ! index 233 - ' H1211 + O1D --> 0.36 H1211 + 0.33 ClO + 0.31 BrO + 0.33 Br + 0.36 O + 0.31 Cl ', & ! index 234 - ' H1301 + O1D --> 0.59 H1301 + 0.41 BrO + 0.59 O ', & ! index 235 - ' HCFC141b + O1D --> 0.31 HCFC141b + 0.69 ClO + 0.31 O + 0.69 Cl ', & ! index 236 - ' HCFC142b + O1D --> 0.26 HCFC142b + 0.74 ClO + 0.26 O ', & ! index 237 - ' HCFC123 + O1D --> 0.21 HCFC123 + 0.79 ClO + 0.21 O + 0.79 Cl ', & ! index 238 - ' CFC113 + O1D --> 0.25 CFC113 + 0.75 ClO + 0.25 O + 1.5 Cl ', & ! index 239 - ' CFC114 + O1D --> 0.25 CFC114 + 0.75 ClO + 0.25 O + 0.75 Cl ' /) ! index up to 240 + ' CFC11 + O1D --> 0.1 CFC11 + 0.9 ClO + 0.1 O + 1.8 Cl ', & ! index 211 + ' CFC12 + O1D --> 0.14 CFC12 + 0.86 ClO + 0.14 O + 0.86 Cl ', & ! index 212 + ' H1211 + O1D --> 0.35 H1211 + 0.34 Br + 0.31 BrO + 0.34 ClO + 0.35 O + 0.31 Cl ', & ! index 213 + ' H1301 + O1D --> 0.55 H1301 + 0.45 BrO + 0.55 O ', & ! index 214 + ' HCFC141b + O1D --> 0.31 HCFC141b + 0.69 ClO + 0.31 O + 0.69 Cl ', & ! index 215 + ' HCFC142b + O1D --> 0.35 HCFC142b + 0.65 ClO + 0.35 O ', & ! index 216 + ' HCFC123 + O1D --> 0.21 HCFC123 + 0.79 ClO + 0.21 O + 0.79 Cl ', & ! index 217 + ' CFC113 + O1D --> 0.1 LOx + 0.1 CFC113 + 0.8 ClO + 0.1 O + 1.9 Cl ', & ! index 218 + ' CFC114 + O1D --> 0.05 LOx + 0.1 CFC114 + 0.85 ClO + 0.1 O + 0.95 Cl ', & ! index 219 + ' CFC115 + O1D --> 0.14 CFC115 + 0.86 ClO + 0.14 O ', & ! index 220 + ' H2402 + O1D --> 0.25 H2402 + 0.75 Br + 0.75 BrO + 0.25 O ', & ! index 221 + ' Cl2 + OH --> POx + HOCl + Cl ', & ! index 222 + ' MO2 + ClO --> LOx + ClOO + CH2O + HO2 ', & ! index 223 + ' ClO + OH --> LOx + HO2 + Cl ', & ! index 224 + ' ClO + OH --> LOx + HCl + O2 ', & ! index 225 + ' OClO + OH --> LOx + HOCl + O2 ', & ! index 226 + ' Cl2O2 + OH --> LOx + ClOO + HOCl ', & ! index 227 + ' HCl + OH --> H2O + Cl ', & ! index 228 + ' HOCl + OH --> H2O + ClO ', & ! index 229 + ' ClNO2 + OH --> POx + HOCl + NO2 ', & ! index 230 + ' ClNO3 + OH --> POx + HOCl + NO3 ', & ! index 231 + ' CH3Cl + OH --> H2O + HO2 + Cl ', & ! index 232 + ' CH2Cl2 + OH --> HO2 + 2 Cl ', & ! index 233 + ' CHCl3 + OH --> HO2 + 3 Cl ', & ! index 234 + ' CH3CCl3 + OH --> H2O + 3 Cl ', & ! index 235 + ' HCFC22 + OH --> H2O + Cl ', & ! index 236 + ' HCFC141b + OH --> H2O + 2 Cl ', & ! index 237 + ' HCFC142b + OH --> H2O + Cl ', & ! index 238 + ' HCFC123 + OH --> H2O + 2 Cl ', & ! index 239 + ' CH4 + Cl --> LCH4 + MO2 + HCl ' /) ! index up to 240 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_8 = (/ & - ' CFC115 + O1D --> 0.7 CFC115 + 0.3 ClO + 0.7 O ', & ! index 241 - ' H2402 + O1D --> 0.25 H2402 + 0.75 BrO + 0.75 Br + 0.25 O ', & ! index 242 - ' Cl2 + OH --> POx + HOCl + Cl ', & ! index 243 - ' MO2 + ClO --> LOx + ClOO + CH2O + HO2 ', & ! index 244 - ' OH + ClO --> LOx + HO2 + Cl ', & ! index 245 - ' OH + ClO --> LOx + HCl + O2 ', & ! index 246 - ' OClO + OH --> LOx + HOCl + O2 ', & ! index 247 - ' Cl2O2 + OH --> LOx + ClOO + HOCl ', & ! index 248 - ' OH + HCl --> H2O + Cl ', & ! index 249 - ' HOCl + OH --> ClO + H2O ', & ! index 250 - ' ClNO2 + OH --> POx + HOCl + NO2 ', & ! index 251 - ' ClNO3 + OH --> POx + HOCl + NO3 ', & ! index 252 - ' CH3Cl + OH --> H2O + HO2 + Cl ', & ! index 253 - ' CH2Cl2 + OH --> HO2 + 2 Cl ', & ! index 254 - ' CHCl3 + OH --> HO2 + 3 Cl ', & ! index 255 - ' CH3CCl3 + OH --> H2O + 3 Cl ', & ! index 256 - ' HCFC22 + OH --> H2O + Cl ', & ! index 257 - ' HCFC141b + OH --> H2O + 2 Cl ', & ! index 258 - ' HCFC142b + OH --> H2O + Cl ', & ! index 259 - ' HCFC123 + OH --> H2O + 2 Cl ', & ! index 260 - ' CH4 + Cl --> LCH4 + MO2 + HCl ', & ! index 261 - ' CH2O + Cl --> PCO + CO + HCl + HO2 ', & ! index 262 - ' O3 + Cl --> ClO + O2 ', & ! index 263 - ' Cl + H2 --> H + HCl ', & ! index 264 - ' H2O2 + Cl --> HCl + HO2 ', & ! index 265 - ' HO2 + Cl --> HCl + O2 ', & ! index 266 - ' HO2 + Cl --> POx + OH + ClO ', & ! index 267 - ' ClO + O --> 2 LOx + Cl + O2 ', & ! index 268 - ' ClO + HO2 --> HOCl + O2 ', & ! index 269 - ' ClO + NO --> NO2 + Cl ' /) ! index up to 270 + ' CH2O + Cl --> PCO + CO + HCl + HO2 ', & ! index 241 + ' O3 + Cl --> ClO + O2 ', & ! index 242 + ' Cl + H2 --> H + HCl ', & ! index 243 + ' H2O2 + Cl --> HCl + HO2 ', & ! index 244 + ' HO2 + Cl --> HCl + O2 ', & ! index 245 + ' HO2 + Cl --> POx + ClO + OH ', & ! index 246 + ' ClO + O --> 2 LOx + Cl + O2 ', & ! index 247 + ' HO2 + ClO --> HOCl + O2 ', & ! index 248 + ' NO + ClO --> Cl + NO2 ', & ! index 249 + ' ClO + NO2 --> ClNO3 ', & ! index 250 + ' 2 ClO --> 2 LOx + Cl2 + O2 ', & ! index 251 + ' 2 ClO --> 2 LOx + ClOO + Cl ', & ! index 252 + ' 2 ClO --> OClO + Cl ', & ! index 253 + ' Cl + O2 --> ClOO ', & ! index 254 + ' ClOO --> Cl + O2 ', & ! index 255 + ' 2 ClO --> Cl2O2 ', & ! index 256 + ' Cl2O2 --> 2 ClO ', & ! index 257 + ' ClOO + Cl --> 0.1 POx + 0.95 Cl2 + 0.1 ClO + 0.95 O2 ', & ! index 258 + ' BrO + ClO --> OClO + Br ', & ! index 259 + ' BrO + ClO --> 2 LOx + ClOO + Br ', & ! index 260 + ' BrO + ClO --> 2 LOx + BrCl + O2 ', & ! index 261 + ' ClNO3 + O --> NO3 + ClO ', & ! index 262 + ' ClNO3 + Cl --> Cl2 + NO3 ', & ! index 263 + ' CH3Cl + Cl --> PCO + CO + 2 HCl + HO2 ', & ! index 264 + ' CH2Cl2 + Cl --> PCO + CO + HCl + HO2 + 2 Cl ', & ! index 265 + ' CHCl3 + Cl --> PCO + CO + HCl + HO2 + 3 Cl ', & ! index 266 + ' HCOOH + Cl --> CO2 + HCl + H2O ', & ! index 267 + ' MO2 + Cl --> POx + CH2O + HO2 + ClO ', & ! index 268 + ' MP + Cl --> MO2 + HCl ', & ! index 269 + ' C2H6 + Cl --> ETO2 + HCl ' /) ! index up to 270 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_9 = (/ & - ' NO2 + ClO --> ClNO3 ', & ! index 271 - ' 2 ClO --> 2 LOx + Cl2 + O2 ', & ! index 272 - ' 2 ClO --> 2 LOx + ClOO + Cl ', & ! index 273 - ' 2 ClO --> OClO + Cl ', & ! index 274 - ' Cl + O2 --> ClOO ', & ! index 275 - ' ClOO --> Cl + O2 ', & ! index 276 - ' 2 ClO --> Cl2O2 ', & ! index 277 - ' Cl2O2 --> 2 ClO ', & ! index 278 - ' ClOO + Cl --> Cl2 + O2 ', & ! index 279 - ' ClOO + Cl --> 2 POx + 2 ClO ', & ! index 280 - ' ClO + BrO --> OClO + Br ', & ! index 281 - ' ClO + BrO --> 2 LOx + ClOO + Br ', & ! index 282 - ' ClO + BrO --> 2 LOx + BrCl + O2 ', & ! index 283 - ' ClNO3 + O --> ClO + NO3 ', & ! index 284 - ' ClNO3 + Cl --> Cl2 + NO3 ', & ! index 285 - ' CH3Cl + Cl --> PCO + CO + 2 HCl + HO2 ', & ! index 286 - ' CH2Cl2 + Cl --> PCO + CO + HCl + HO2 + 2 Cl ', & ! index 287 - ' CHCl3 + Cl --> PCO + CO + HCl + HO2 + 3 Cl ', & ! index 288 - ' HCOOH + Cl --> CO2 + HCl + H2O ', & ! index 289 - ' MO2 + Cl --> POx + CH2O + ClO + HO2 ', & ! index 290 - ' MP + Cl --> MO2 + HCl ', & ! index 291 - ' C2H6 + Cl --> ETO2 + HCl ', & ! index 292 - ' ETO2 + Cl --> POx + ALD2 + ClO + HO2 ', & ! index 293 - ' OTHRO2 + Cl --> POx + ALD2 + ClO + HO2 ', & ! index 294 - ' MOH + Cl --> CH2O + HCl + HO2 ', & ! index 295 - ' EOH + Cl --> ALD2 + HCl ', & ! index 296 - ' ACTA + Cl --> CO2 + MO2 + HCl ', & ! index 297 - ' C3H8 + Cl --> B3O2 + HCl ', & ! index 298 - ' C3H8 + Cl --> A3O2 + HCl ', & ! index 299 - ' ACET + Cl --> ATO2 + HCl ' /) ! index up to 300 + ' ETO2 + Cl --> POx + ALD2 + HO2 + ClO ', & ! index 271 + ' OTHRO2 + Cl --> POx + ALD2 + HO2 + ClO ', & ! index 272 + ' MOH + Cl --> CH2O + HCl + HO2 ', & ! index 273 + ' EOH + Cl --> ALD2 + HCl ', & ! index 274 + ' ACTA + Cl --> CO2 + MO2 + HCl ', & ! index 275 + ' C3H8 + Cl --> B3O2 + HCl ', & ! index 276 + ' C3H8 + Cl --> A3O2 + HCl ', & ! index 277 + ' ACET + Cl --> ATO2 + HCl ', & ! index 278 + ' ISOP + Cl --> 0.5 IHOO4 + 0.5 IHOO1 + HCl ', & ! index 279 + ' ALK4 + Cl --> R4O2 + HCl ', & ! index 280 + ' PRPE + Cl --> PO2 + HCl ', & ! index 281 + ' PRPE + Br --> PO2 + HBr ', & ! index 282 + ' I + NO --> INO ', & ! index 283 + ' 2 INO --> I2 + 2 NO ', & ! index 284 + ' I + NO2 --> IONO ', & ! index 285 + ' IONO --> I + NO2 ', & ! index 286 + ' 2 IONO --> I2 + 2 NO2 ', & ! index 287 + ' I2 + NO3 --> I + IONO2 ', & ! index 288 + ' IO + NO2 --> IONO2 ', & ! index 289 + ' IONO2 --> IO + NO2 ', & ! index 290 + ' I + IONO2 --> I2 + NO3 ', & ! index 291 + ' I + BrO --> IO + Br ', & ! index 292 + ' IO + BrO --> 0.4 LOx + 0.8 OIO + 0.2 I + Br + 0.2 O2 ', & ! index 293 + ' OIO + IO --> I2O3 ', & ! index 294 + ' 2 OIO --> I2O4 ', & ! index 295 + ' I2O4 --> 2 OIO ', & ! index 296 + ' OIO + NO --> IO + NO2 ', & ! index 297 + ' IO + ClO --> 0.88 LOx + 0.191 ICl + 0.56 OClO + 0.809 I + 0.249 Cl + 0.44 O2 ', & ! index 298 + ' I + O3 --> IO + O2 ', & ! index 299 + ' I + HO2 --> HI + O2 ' /) ! index up to 300 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_10 = (/ & - ' ISOP + Cl --> 0.5 IHOO1 + 0.5 IHOO4 + HCl ', & ! index 301 - ' ALK4 + Cl --> R4O2 + HCl ', & ! index 302 - ' PRPE + Cl --> PO2 + HCl ', & ! index 303 - ' PRPE + Br --> PO2 + HBr ', & ! index 304 - ' I + NO --> INO ', & ! index 305 - ' 2 INO --> I2 + 2 NO ', & ! index 306 - ' I + NO2 --> IONO ', & ! index 307 - ' IONO --> I + NO2 ', & ! index 308 - ' 2 IONO --> I2 + 2 NO2 ', & ! index 309 - ' I2 + NO3 --> I + IONO2 ', & ! index 310 - ' IO + NO2 --> IONO2 ', & ! index 311 - ' IONO2 --> IO + NO2 ', & ! index 312 - ' I + IONO2 --> I2 + NO3 ', & ! index 313 - ' I + BrO --> IO + Br ', & ! index 314 - ' IO + BrO --> 2 LOx + I + Br + O2 ', & ! index 315 - ' IO + BrO --> OIO + Br ', & ! index 316 - ' OIO + IO --> I2O3 ', & ! index 317 - ' 2 OIO --> I2O4 ', & ! index 318 - ' I2O4 --> 2 OIO ', & ! index 319 - ' OIO + NO --> IO + NO2 ', & ! index 320 - ' IO + ClO --> OClO + I ', & ! index 321 - ' IO + ClO --> 2 LOx + I + Cl + O2 ', & ! index 322 - ' IO + ClO --> 2 LOx + ICl + O2 ', & ! index 323 - ' I + O3 --> IO + O2 ', & ! index 324 - ' I + HO2 --> HI + O2 ', & ! index 325 - ' I2 + OH --> POx + HOI + I ', & ! index 326 - ' HI + OH --> I + H2O ', & ! index 327 - ' HOI + OH --> IO + H2O ', & ! index 328 - ' IO + HO2 --> HOI + O2 ', & ! index 329 - ' IO + NO --> I + NO2 ' /) ! index up to 330 + ' I2 + OH --> POx + HOI + I ', & ! index 301 + ' HI + OH --> I + H2O ', & ! index 302 + ' HOI + OH --> IO + H2O ', & ! index 303 + ' IO + HO2 --> HOI + O2 ', & ! index 304 + ' IO + NO --> I + NO2 ', & ! index 305 + ' 2 IO --> 0.6 I2O2 + 0.4 OIO + 0.4 I ', & ! index 306 + ' I2O2 --> 0.996 OIO + 0.008 IO + 0.996 I ', & ! index 307 + ' CH3I + OH --> MO2 + I + H2O ', & ! index 308 + ' ETHLN + OH --> CO2 + CH2O + NO2 ', & ! index 309 + ' PROPNN + OH --> MGLY + NO2 ', & ! index 310 + ' CH2OO + CO --> CO2 + LCO + CH2O ', & ! index 311 + ' CH2OO + NO --> POx + CH2O + NO2 ', & ! index 312 + ' CH2OO + NO2 --> POx + CH2O + NO3 ', & ! index 313 + ' CH2OO + H2O --> 0.06 PH2O2 + 0.73 HMHP + 0.21 HCOOH + 0.06 H2O2 + 0.06 CH2O ', & ! index 314 + ' CH2OO + 2 H2O --> 0.06 PH2O2 + 0.4 HMHP + 0.54 HCOOH + 0.06 H2O2 + 0.06 CH2O ', & ! index 315 + ' CH2OO + O3 --> LOx + CH2O ', & ! index 316 + ' CH2OO + SO2 --> PH2SO4 + PSO4 + SO4 + CH2O ', & ! index 317 + ' CH3CHOO + CO --> CO2 + LCO + ALD2 ', & ! index 318 + ' CH3CHOO + NO --> POx + ALD2 + NO2 ', & ! index 319 + ' CH3CHOO + NO2 --> POx + ALD2 + NO3 ', & ! index 320 + ' CH3CHOO + SO2 --> PH2SO4 + PSO4 + SO4 + ALD2 ', & ! index 321 + ' CH3CHOO + H2O --> PH2O2 + H2O2 + ALD2 ', & ! index 322 + ' CH3CHOO + H2O --> ACTA ', & ! index 323 + ' MTPA + OH --> PIO2 ', & ! index 324 + ' MTPO + OH --> PIO2 ', & ! index 325 + ' PIO2 + NO --> POx + 0.12 MONITS + 0.06 MONITU + 0.07 HCOOH + 0.11 ACET + 0.44 MEK + ... etc.', & ! index 326 + ' PIO2 + HO2 --> PIP ', & ! index 327 + ' PIO2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.75 MEK + 0.75 RCHO + 0.75 CH2O + HO2 ', & ! index 328 + ' PIO2 + MCO3 --> CO2 + 1.125 MEK + RCHO + 0.5 MO2 + 0.5 HO2 + RCOOH ', & ! index 329 + ' PIO2 + NO3 --> LOx + MEK + RCHO + HO2 + NO2 ' /) ! index up to 330 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_11 = (/ & - ' 2 IO --> OIO + I ', & ! index 331 - ' 2 IO --> I2O2 ', & ! index 332 - ' I2O2 --> 2 IO ', & ! index 333 - ' I2O2 --> OIO + I ', & ! index 334 - ' CH3I + OH --> MO2 + I + H2O ', & ! index 335 - ' ETHLN + OH --> CO2 + CH2O + NO2 ', & ! index 336 - ' PROPNN + OH --> MGLY + NO2 ', & ! index 337 - ' CH2OO + CO --> LCO + CH2O ', & ! index 338 - ' CH2OO + NO --> POx + CH2O + NO2 ', & ! index 339 - ' CH2OO + NO2 --> POx + CH2O + NO3 ', & ! index 340 - ' CH2OO + H2O --> 0.06 PH2O2 + 0.73 HMHP + 0.21 HCOOH + 0.06 H2O2 + 0.06 CH2O ', & ! index 341 - ' CH2OO + 2 H2O --> 0.06 PH2O2 + 0.4 HMHP + 0.54 HCOOH + 0.06 H2O2 + 0.06 CH2O ', & ! index 342 - ' CH2OO + O3 --> LOx + CH2O ', & ! index 343 - ' CH2OO + SO2 --> PSO4 + SO4 + CH2O ', & ! index 344 - ' CH3CHOO + CO --> LCO + ALD2 ', & ! index 345 - ' CH3CHOO + NO --> POx + ALD2 + NO2 ', & ! index 346 - ' CH3CHOO + NO2 --> POx + ALD2 + NO3 ', & ! index 347 - ' CH3CHOO + SO2 --> PSO4 + SO4 + ALD2 ', & ! index 348 - ' CH3CHOO + H2O --> PH2O2 + H2O2 + ALD2 ', & ! index 349 - ' CH3CHOO + H2O --> ACTA ', & ! index 350 - ' MTPA + OH --> PIO2 ', & ! index 351 - ' MTPO + OH --> PIO2 ', & ! index 352 - ' PIO2 + NO --> POx + 0.12 MONITS + 0.06 MONITU + 0.07 HCOOH + 0.11 ACET + 0.44 MEK + ... etc.', & ! index 353 - ' PIO2 + HO2 --> PIP ', & ! index 354 - ' PIO2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.75 MEK + 0.75 RCHO + 0.75 CH2O + HO2 ', & ! index 355 - ' PIO2 + MCO3 --> MEK + RCHO + 0.5 MO2 + 0.5 HO2 + RCOOH ', & ! index 356 - ' PIO2 + NO3 --> LOx + MEK + RCHO + NO2 + HO2 ', & ! index 357 - ' MTPA + O3 --> LOx + 0.14 PCO + 0.02 PH2O2 + 0.02 H2O2 + 0.53 MEK + 0.62 KO2 + 0.65 R... etc.', & ! index 358 - ' MTPO + O3 --> LOx + 0.14 PCO + 0.02 PH2O2 + 0.02 H2O2 + 0.53 MEK + 0.62 KO2 + 0.65 R... etc.', & ! index 359 - ' MTPA + NO3 --> LOx + 0.1 OLNN + 0.9 OLND ' /) ! index up to 360 + ' MTPA + O3 --> LOx + 0.14 PCO + 0.02 PH2O2 + 0.02 H2O2 + 0.53 MEK + 0.62 KO2 + 0.65 R... etc.', & ! index 331 + ' MTPO + O3 --> LOx + 0.14 PCO + 0.02 PH2O2 + 0.02 H2O2 + 0.53 MEK + 0.62 KO2 + 0.65 R... etc.', & ! index 332 + ' MTPA + NO3 --> LOx + 0.1 OLNN + 0.9 OLND ', & ! index 333 + ' MTPO + NO3 --> LOx + 0.1 OLNN + 0.9 OLND ', & ! index 334 + ' LIMO + OH --> LIMO2 ', & ! index 335 + ' LIMO + O3 --> LOx + 0.14 PCO + 0.02 PH2O2 + 0.01 HCOOH + 0.02 H2O2 + 0.16 OTHRO2 + 0... etc.', & ! index 336 + ' LIMO + NO3 --> LOx + 0.5 OLNN + 0.5 OLND ', & ! index 337 + ' LIMO2 + NO --> POx + 0.22 MONITU + 0.289 MEK + 0.058 HAC + 0.289 PRPE + 0.491 RCHO + ... etc.', & ! index 338 + ' LIMO2 + HO2 --> PIP ', & ! index 339 + ' LIMO2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.308 MACR + 0.192 PRPE + 1.04 CH2O + HO2 ', & ! index 340 + ' LIMO2 + MCO3 --> 0.308 MACR + 0.192 PRPE + 0.385 CH2O + 0.5 MO2 + 0.5 HO2 + 0.5 RCOOH ', & ! index 341 + ' LIMO2 + NO3 --> LOx + 0.615 MACR + 0.385 PRPE + 0.385 CH2O + HO2 + NO2 ', & ! index 342 + ' PIP + OH --> 0.41 MEK + 0.44 R4O2 + 0.08 RCHO + 0.49 OH ', & ! index 343 + ' OLNN + NO --> POx + MONITS + HO2 + NO2 ', & ! index 344 + ' OLND + NO --> POx + 0.464 MEK + 1.24 RCHO + 0.287 CH2O + 2 NO2 ', & ! index 345 + ' OLNN + HO2 --> 0.7 MONITS + 0.3 MONITU ', & ! index 346 + ' OLND + HO2 --> 0.7 MONITS + 0.3 MONITU ', & ! index 347 + ' OLNN + MO2 --> 0.7 MONITS + 0.3 MONITU + CH2O + 2 HO2 ', & ! index 348 + ' OLND + MO2 --> 0.25 ROH + 0.35 MONITS + 0.15 MONITU + 0.25 MOH + 0.34 MEK + 0.93 RCHO... etc.', & ! index 349 + ' OLNN + MCO3 --> CO2 + 0.7 MONITS + 0.3 MONITU + MO2 + HO2 ', & ! index 350 + ' OLND + MCO3 --> 0.464 MEK + 1.24 RCHO + 0.287 CH2O + 0.5 MO2 + NO2 + 0.5 RCOOH ', & ! index 351 + ' OLNN + NO3 --> LOx + 0.7 MONITS + 0.3 MONITU + HO2 + NO2 ', & ! index 352 + ' OLND + NO3 --> LOx + 0.464 MEK + 1.24 RCHO + 0.287 CH2O + 2 NO2 ', & ! index 353 + ' 2 OLNN --> 1.4 MONITS + 0.6 MONITU + HO2 ', & ! index 354 + ' OLNN + OLND --> 1.05 MONITS + 0.45 MONITU + 0.149 MEK + 0.64 RCHO + 0.202 CH2O + 0.5 H... etc.', & ! index 355 + ' 2 OLND --> 0.7 MONITS + 0.3 MONITU + 0.285 MEK + 1.21 RCHO + 0.504 CH2O + NO2 ', & ! index 356 + ' MONITS + OH --> HONIT ', & ! index 357 + ' MONITU + OH --> HONIT ', & ! index 358 + ' MONITU + O3 --> LOx + HONIT ', & ! index 359 + ' MONITU + NO3 --> 2 LOx + HONIT ' /) ! index up to 360 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_12 = (/ & - ' MTPO + NO3 --> LOx + 0.1 OLNN + 0.9 OLND ', & ! index 361 - ' LIMO + OH --> LIMO2 ', & ! index 362 - ' LIMO + O3 --> LOx + 0.14 PCO + 0.02 PH2O2 + 0.01 HCOOH + 0.02 H2O2 + 0.16 OTHRO2 + 0... etc.', & ! index 363 - ' LIMO + NO3 --> LOx + 0.5 OLNN + 0.5 OLND ', & ! index 364 - ' LIMO2 + NO --> POx + 0.22 MONITU + 0.289 MEK + 0.058 HAC + 0.289 PRPE + 0.491 RCHO + ... etc.', & ! index 365 - ' LIMO2 + HO2 --> PIP ', & ! index 366 - ' LIMO2 + MO2 --> 0.25 ROH + 0.25 MOH + 0.308 MACR + 0.192 PRPE + 1.04 CH2O + HO2 ', & ! index 367 - ' LIMO2 + MCO3 --> 0.308 MACR + 0.192 PRPE + 0.385 CH2O + 0.5 MO2 + 0.5 HO2 + 0.5 RCOOH ', & ! index 368 - ' LIMO2 + NO3 --> LOx + 0.615 MACR + 0.385 PRPE + 0.385 CH2O + NO2 + HO2 ', & ! index 369 - ' PIP + OH --> 0.41 MEK + 0.44 R4O2 + 0.08 RCHO + 0.49 OH ', & ! index 370 - ' OLNN + NO --> POx + MONITS + NO2 + HO2 ', & ! index 371 - ' OLND + NO --> POx + 0.464 MEK + 1.24 RCHO + 0.287 CH2O + 2 NO2 ', & ! index 372 - ' OLNN + HO2 --> 0.7 MONITS + 0.3 MONITU ', & ! index 373 - ' OLND + HO2 --> 0.7 MONITS + 0.3 MONITU ', & ! index 374 - ' OLNN + MO2 --> 0.7 MONITS + 0.3 MONITU + CH2O + 2 HO2 ', & ! index 375 - ' OLND + MO2 --> 0.25 ROH + 0.35 MONITS + 0.15 MONITU + 0.25 MOH + 0.348 MEK + 0.93 RCH... etc.', & ! index 376 - ' OLNN + MCO3 --> 0.7 MONITS + 0.3 MONITU + MO2 + HO2 ', & ! index 377 - ' OLND + MCO3 --> 0.464 MEK + 1.24 RCHO + 0.287 CH2O + 0.5 MO2 + NO2 + 0.5 RCOOH ', & ! index 378 - ' OLNN + NO3 --> LOx + 0.7 MONITS + 0.3 MONITU + NO2 + HO2 ', & ! index 379 - ' OLND + NO3 --> LOx + 0.464 MEK + 1.24 RCHO + 0.287 CH2O + 2 NO2 ', & ! index 380 - ' 2 OLNN --> 1.4 MONITS + 0.6 MONITU + HO2 ', & ! index 381 - ' OLNN + OLND --> 1.05 MONITS + 0.45 MONITU + 0.149 MEK + 0.64 RCHO + 0.202 CH2O + 0.5 N... etc.', & ! index 382 - ' 2 OLND --> 0.7 MONITS + 0.3 MONITU + 0.285 MEK + 1.21 RCHO + 0.504 CH2O + NO2 ', & ! index 383 - ' MONITS + OH --> HONIT ', & ! index 384 - ' MONITU + OH --> HONIT ', & ! index 385 - ' MONITU + O3 --> LOx + HONIT ', & ! index 386 - ' MONITU + NO3 --> 2 LOx + HONIT ', & ! index 387 - ' MONITS + NO3 --> 2 LOx + HONIT ', & ! index 388 - ' IONITA --> INDIOL + POx + HNO3 ', & ! index 389 - ' MONITA --> INDIOL + POx + HNO3 ' /) ! index up to 390 + ' MONITS + NO3 --> 2 LOx + HONIT ', & ! index 361 + ' IONITA --> INDIOL + POx + HNO3 ', & ! index 362 + ' MONITA --> INDIOL + POx + HNO3 ', & ! index 363 + ' HONIT + OH --> POx + HAC + NO3 ', & ! index 364 + ' MENO3 + OH --> POx + CH2O + NO2 ', & ! index 365 + ' ETNO3 + OH --> POx + ALD2 + NO2 ', & ! index 366 + ' IPRNO3 + OH --> POx + ACET + NO2 ', & ! index 367 + ' NPRNO3 + OH --> POx + RCHO + NO2 ', & ! index 368 + ' ISOP + O3 --> 0.407 CO2 + LOx + 0.407 PCO + 0.013 PH2O2 + 0.013 H2O2 + 0.58 CH2OO + ... etc.', & ! index 369 + ' ISOP + OH --> LISOPOH + IHOO1 ', & ! index 370 + ' ISOP + OH --> LISOPOH + IHOO4 ', & ! index 371 + ' ISOP + OH --> LISOPOH + 0.6 PCO + 0.15 HPALD3 + 0.3 HPETHNL + 0.25 HPALD1 + 0.3 MGLY... etc.', & ! index 372 + ' ISOP + OH --> LISOPOH + 0.9 PCO + 0.15 HPALD4 + 0.25 HPALD2 + 0.3 ATOOH + 0.3 MGLY +... etc.', & ! index 373 + ' IHOO1 + HO2 --> 0.937 RIPA + 0.063 MVK + 0.063 CH2O + 0.063 HO2 + 0.063 OH ', & ! index 374 + ' IHOO1 + HO2 --> RIPC ', & ! index 375 + ' IHOO4 + HO2 --> 0.937 RIPB + 0.063 MACR + 0.063 CH2O + 0.063 HO2 + 0.063 OH ', & ! index 376 + ' IHOO4 + HO2 --> RIPD ', & ! index 377 + ' IHOO1 --> MVK + CH2O + OH ', & ! index 378 + ' IHOO1 --> 0.6 PCO + 0.15 HPALD3 + 0.3 HPETHNL + 0.25 HPALD1 + 0.3 MGLY + 0.3 MCO... etc.', & ! index 379 + ' IHOO4 --> MACR + CH2O + OH ', & ! index 380 + ' IHOO4 --> 0.9 PCO + 0.15 HPALD4 + 0.25 HPALD2 + 0.3 ATOOH + 0.3 MGLY + 0.3 CH2O ... etc.', & ! index 381 + ' 2 IHOO1 --> 2 MVK + 2 CH2O + 2 HO2 ', & ! index 382 + ' 2 IHOO4 --> 2 MACR + 2 CH2O + 2 HO2 ', & ! index 383 + ' IHOO4 + IHOO1 --> MVK + MACR + 2 CH2O + 2 HO2 ', & ! index 384 + ' 2 IHOO1 --> PCO + HC5A + MVKHP + CO + HO2 + OH ', & ! index 385 + ' 2 IHOO4 --> PCO + HC5A + MCRHP + CO + HO2 + OH ', & ! index 386 + ' IHOO4 + IHOO1 --> PCO + HC5A + 0.5 MVKHP + 0.5 MCRHP + CO + HO2 + OH ', & ! index 387 + ' IHOO1 + MO2 --> MVK + 2 CH2O + 2 HO2 ', & ! index 388 + ' IHOO1 + MO2 --> 0.5 PCO + 0.5 HC5A + 0.5 MVKHP + CH2O + 0.5 CO + 1.5 HO2 + 0.5 OH ', & ! index 389 + ' IHOO4 + MO2 --> MACR + 2 CH2O + 2 HO2 ' /) ! index up to 390 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_13 = (/ & - ' HONIT + OH --> POx + HAC + NO3 ', & ! index 391 - ' MENO3 + OH --> POx + CH2O + NO2 ', & ! index 392 - ' ETNO3 + OH --> POx + ALD2 + NO2 ', & ! index 393 - ' IPRNO3 + OH --> POx + ACET + NO2 ', & ! index 394 - ' NPRNO3 + OH --> POx + RCHO + NO2 ', & ! index 395 - ' ISOP + O3 --> 0.407 CO2 + LOx + 0.407 PCO + 0.013 PH2O2 + 0.013 H2O2 + 0.58 CH2OO + ... etc.', & ! index 396 - ' ISOP + OH --> LISOPOH + IHOO1 ', & ! index 397 - ' ISOP + OH --> LISOPOH + IHOO4 ', & ! index 398 - ' ISOP + OH --> LISOPOH + 0.6 PCO + 0.15 HPALD3 + 0.3 HPETHNL + 0.25 HPALD1 + 0.3 MGLY... etc.', & ! index 399 - ' ISOP + OH --> LISOPOH + 0.9 PCO + 0.15 HPALD4 + 0.25 HPALD2 + 0.3 ATOOH + 0.3 MGLY +... etc.', & ! index 400 - ' IHOO1 + HO2 --> 0.937 RIPA + 0.063 MVK + 0.063 CH2O + 0.063 OH + 0.063 HO2 ', & ! index 401 - ' IHOO1 + HO2 --> RIPC ', & ! index 402 - ' IHOO4 + HO2 --> 0.937 RIPB + 0.063 MACR + 0.063 CH2O + 0.063 OH + 0.063 HO2 ', & ! index 403 - ' IHOO4 + HO2 --> RIPD ', & ! index 404 - ' IHOO1 --> MVK + CH2O + OH ', & ! index 405 - ' IHOO1 --> 0.6 PCO + 0.15 HPALD3 + 0.3 HPETHNL + 0.25 HPALD1 + 0.3 MGLY + 0.3 MCO... etc.', & ! index 406 - ' IHOO4 --> MACR + CH2O + OH ', & ! index 407 - ' IHOO4 --> 0.9 PCO + 0.15 HPALD4 + 0.25 HPALD2 + 0.3 ATOOH + 0.3 MGLY + 0.9 CO + ... etc.', & ! index 408 - ' 2 IHOO1 --> 2 MVK + 2 CH2O + 2 HO2 ', & ! index 409 - ' 2 IHOO4 --> 2 MACR + 2 CH2O + 2 HO2 ', & ! index 410 - ' IHOO1 + IHOO4 --> MVK + MACR + 2 CH2O + 2 HO2 ', & ! index 411 - ' 2 IHOO1 --> PCO + HC5A + MVKHP + CO + OH + HO2 ', & ! index 412 - ' 2 IHOO4 --> PCO + HC5A + MCRHP + CO + OH + HO2 ', & ! index 413 - ' IHOO1 + IHOO4 --> PCO + HC5A + 0.5 MVKHP + 0.5 MCRHP + CO + OH + HO2 ', & ! index 414 - ' IHOO1 + MO2 --> MVK + 2 CH2O + 2 HO2 ', & ! index 415 - ' IHOO1 + MO2 --> 0.5 PCO + 0.5 HC5A + 0.5 MVKHP + 0.5 CO + CH2O + 0.5 OH + 1.5 HO2 ', & ! index 416 - ' IHOO4 + MO2 --> MACR + 2 CH2O + 2 HO2 ', & ! index 417 - ' IHOO4 + MO2 --> 0.5 PCO + 0.5 HC5A + 0.5 MCRHP + 0.5 CO + CH2O + 0.5 OH + 1.5 HO2 ', & ! index 418 - ' IHOO1 + NO --> POx + IHN2 ', & ! index 419 - ' IHOO1 + NO --> POx + MVK + CH2O + NO2 + HO2 ' /) ! index up to 420 + ' IHOO4 + MO2 --> 0.5 PCO + 0.5 HC5A + 0.5 MCRHP + CH2O + 0.5 CO + 1.5 HO2 + 0.5 OH ', & ! index 391 + ' IHOO1 + NO --> POx + IHN2 ', & ! index 392 + ' IHOO1 + NO --> POx + MVK + CH2O + HO2 + NO2 ', & ! index 393 + ' IHOO1 + NO --> POx + IHN4 ', & ! index 394 + ' IHOO1 + NO --> POx + 0.55 PCO + 0.45 HC5A + 0.55 MVKHP + 0.55 CO + 0.45 HO2 + 0.55 OH + NO2 ', & ! index 395 + ' IHOO4 + NO --> POx + IHN3 ', & ! index 396 + ' IHOO4 + NO --> POx + MACR + CH2O + HO2 + NO2 ', & ! index 397 + ' IHOO4 + NO --> POx + IHN1 ', & ! index 398 + ' IHOO4 + NO --> POx + 0.55 PCO + 0.45 HC5A + 0.55 MCRHP + 0.55 CO + 0.45 HO2 + 0.55 OH + NO2 ', & ! index 399 + ' HPALD1 + OH --> 0.45 PCO + 0.15 IDC + 0.315 HPALD1OO + 0.085 ICHE + 0.33 MVKHP + 0.085... etc.', & ! index 400 + ' HPALD2 + OH --> 0.37 PCO + 0.15 IDC + 0.315 HPALD2OO + 0.165 ICHE + 0.17 MCRHP + 0.165... etc.', & ! index 401 + ' HPALD3 + OH --> 0.42 PCO + 0.58 ICHE + 0.19 MVKHP + 0.23 MVK + 0.42 CO + OH ', & ! index 402 + ' HPALD4 + OH --> 0.23 PCO + 0.77 ICHE + 0.09 MCRHP + 0.14 MACR + 0.23 CO + OH ', & ! index 403 + ' HC5A + OH --> 0.355 CO2 + 0.638 PCO + 0.294 IEPOXAOO + 0.068 IEPOXBOO + 0.125 MVKHP ... etc.', & ! index 404 + ' ICHE + OH --> 1.5 PCO + 0.5 MGLY + 0.5 HAC + 0.5 CH2O + 1.5 CO + OH ', & ! index 405 + ' IDC + OH --> PCO + MVKPC + CO + HO2 ', & ! index 406 + ' RIPA + OH --> 0.005 LVOC + 0.345 IHPOO1 + 0.655 IHPOO3 ', & ! index 407 + ' RIPA + OH --> 0.005 LVOC + 0.67 IEPOXA + 0.33 IEPOXB + OH ', & ! index 408 + ' RIPB + OH --> 0.005 LVOC + 0.345 IHPOO2 + 0.655 IHPOO3 ', & ! index 409 + ' RIPB + OH --> 0.005 LVOC + 0.68 IEPOXA + 0.32 IEPOXB + OH ', & ! index 410 + ' RIPA + OH --> 0.005 LVOC + 0.25 PCO + 0.125 MVKHP + 0.75 IHOO1 + 0.125 MVK + 0.25 CO... etc.', & ! index 411 + ' RIPB + OH --> 0.005 LVOC + 0.33 PCO + 0.16 ICHOO + 0.165 MCRHP + 0.51 IHOO4 + 0.165 ... etc.', & ! index 412 + ' RIPC + OH --> 0.005 LVOC + 0.036 PCO + 0.255 IEPOXD + 0.009 HPALD3 + 0.018 HPETHNL +... etc.', & ! index 413 + ' RIPD + OH --> 0.005 LVOC + 0.054 PCO + 0.595 IEPOXD + 0.009 HPALD4 + 0.255 IHPOO2 + ... etc.', & ! index 414 + ' IHPOO1 --> 0.824 IDHPE + 0.176 ICPDH + OH ', & ! index 415 + ' IHPOO1 + NO --> POx + 0.284 HPETHNL + 0.716 MCRHP + 0.284 HAC + 0.716 CH2O + HO2 + NO2 ', & ! index 416 + ' IHPOO1 + NO --> POx + ITHN ', & ! index 417 + ' IHPOO1 + HO2 --> 0.725 IDHDP + 0.135 HPETHNL + 0.14 MCRHP + 0.135 HAC + 0.14 CH2O + 0.2... etc.', & ! index 418 + ' IHPOO2 --> 0.452 IDHPE + 0.548 ICPDH + OH ', & ! index 419 + ' IHPOO2 + NO --> POx + 0.294 ATOOH + 0.706 MVKHP + 0.294 GLYC + 0.706 CH2O + HO2 + NO2 ' /) ! index up to 420 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_14 = (/ & - ' IHOO1 + NO --> POx + IHN4 ', & ! index 421 - ' IHOO1 + NO --> POx + 0.55 PCO + 0.45 HC5A + 0.55 MVKHP + 0.55 CO + 0.55 OH + NO2 + 0.45 HO2 ', & ! index 422 - ' IHOO4 + NO --> POx + IHN3 ', & ! index 423 - ' IHOO4 + NO --> POx + MACR + CH2O + NO2 + HO2 ', & ! index 424 - ' IHOO4 + NO --> POx + IHN1 ', & ! index 425 - ' IHOO4 + NO --> POx + 0.55 PCO + 0.45 HC5A + 0.55 MCRHP + 0.55 CO + 0.55 OH + NO2 + 0.45 HO2 ', & ! index 426 - ' HPALD1 + OH --> 0.45 PCO + 0.15 IDC + 0.315 HPALD1OO + 0.085 ICHE + 0.33 MVKHP + 0.085... etc.', & ! index 427 - ' HPALD2 + OH --> 0.37 PCO + 0.15 IDC + 0.315 HPALD2OO + 0.165 ICHE + 0.17 MCRHP + 0.165... etc.', & ! index 428 - ' HPALD3 + OH --> 0.42 PCO + 0.58 ICHE + 0.19 MVKHP + 0.23 MVK + 0.42 CO + OH ', & ! index 429 - ' HPALD4 + OH --> 0.23 PCO + 0.77 ICHE + 0.09 MCRHP + 0.14 MACR + 0.23 CO + OH ', & ! index 430 - ' HC5A + OH --> 0.355 CO2 + 0.638 PCO + 0.294 IEPOXAOO + 0.068 IEPOXBOO + 0.125 MVKHP ... etc.', & ! index 431 - ' ICHE + OH --> 1.5 PCO + 0.5 MGLY + 0.5 HAC + 1.5 CO + 0.5 CH2O + OH ', & ! index 432 - ' IDC + OH --> PCO + MVKPC + CO + HO2 ', & ! index 433 - ' RIPA + OH --> 0.005 LVOC + 0.345 IHPOO1 + 0.655 IHPOO3 ', & ! index 434 - ' RIPA + OH --> 0.005 LVOC + 0.67 IEPOXA + 0.33 IEPOXB + OH ', & ! index 435 - ' RIPB + OH --> 0.005 LVOC + 0.345 IHPOO2 + 0.655 IHPOO3 ', & ! index 436 - ' RIPB + OH --> 0.005 LVOC + 0.68 IEPOXA + 0.32 IEPOXB + OH ', & ! index 437 - ' RIPA + OH --> 0.005 LVOC + 0.25 PCO + 0.125 MVKHP + 0.75 IHOO1 + 0.125 MVK + 0.25 CO... etc.', & ! index 438 - ' RIPB + OH --> 0.005 LVOC + 0.33 PCO + 0.16 ICHOO + 0.165 MCRHP + 0.51 IHOO4 + 0.165 ... etc.', & ! index 439 - ' RIPC + OH --> 0.005 LVOC + 0.036 PCO + 0.255 IEPOXD + 0.009 HPALD3 + 0.018 HPETHNL +... etc.', & ! index 440 - ' RIPD + OH --> 0.005 LVOC + 0.054 PCO + 0.595 IEPOXD + 0.009 HPALD4 + 0.255 IHPOO2 + ... etc.', & ! index 441 - ' IHPOO1 --> 0.824 IDHPE + 0.176 ICPDH + OH ', & ! index 442 - ' IHPOO1 + NO --> POx + 0.284 HPETHNL + 0.716 MCRHP + 0.284 HAC + 0.716 CH2O + NO2 + HO2 ', & ! index 443 - ' IHPOO1 + NO --> POx + ITHN ', & ! index 444 - ' IHPOO1 + HO2 --> 0.725 IDHDP + 0.135 HPETHNL + 0.14 MCRHP + 0.135 HAC + 0.14 CH2O + 0.2... etc.', & ! index 445 - ' IHPOO2 --> 0.452 IDHPE + 0.548 ICPDH + OH ', & ! index 446 - ' IHPOO2 + NO --> POx + 0.294 ATOOH + 0.706 MVKHP + 0.294 GLYC + 0.706 CH2O + NO2 + HO2 ', & ! index 447 - ' IHPOO2 + NO --> POx + ITHN ', & ! index 448 - ' IHPOO2 + HO2 --> 0.725 IDHDP + 0.135 ATOOH + 0.14 MVKHP + 0.135 GLYC + 0.14 CH2O + 0.27... etc.', & ! index 449 - ' IHPOO3 --> IDHPE ' /) ! index up to 450 + ' IHPOO2 + NO --> POx + ITHN ', & ! index 421 + ' IHPOO2 + HO2 --> 0.725 IDHDP + 0.135 ATOOH + 0.14 MVKHP + 0.135 GLYC + 0.14 CH2O + 0.27... etc.', & ! index 422 + ' IHPOO3 --> IDHPE ', & ! index 423 + ' IHPOO3 + NO --> POx + GLYC + HAC + OH + NO2 ', & ! index 424 + ' IHPOO3 + NO --> POx + ITHN ', & ! index 425 + ' IHPOO3 + HO2 --> 0.35 IDHDP + 0.65 GLYC + 0.65 HAC + 1.3 OH ', & ! index 426 + ' IEPOXD + OH --> 0.75 ICHE + 0.25 ICHOO + 0.75 HO2 ', & ! index 427 + ' IEPOXA + OH --> ICHE + HO2 ', & ! index 428 + ' IEPOXA + OH --> 0.67 IEPOXAOO + 0.33 IEPOXBOO ', & ! index 429 + ' IEPOXB + OH --> ICHE + HO2 ', & ! index 430 + ' IEPOXB + OH --> 0.81 IEPOXAOO + 0.19 IEPOXBOO ', & ! index 431 + ' IEPOXAOO --> IDCHP + HO2 ', & ! index 432 + ' IEPOXAOO --> PCO + MVKDH + CO + OH ', & ! index 433 + ' IEPOXAOO + HO2 --> 0.13 PCO + 0.13 MVKDH + 0.35 ICPDH + 0.52 MGLY + 0.52 GLYC + 0.13 CO +... etc.', & ! index 434 + ' IEPOXAOO + NO --> POx + 0.2 PCO + 0.2 MVKDH + 0.8 MGLY + 0.8 GLYC + 0.2 CO + HO2 + NO2 ', & ! index 435 + ' IEPOXAOO + NO --> POx + ITCN ', & ! index 436 + ' IEPOXBOO --> IDCHP + HO2 ', & ! index 437 + ' IEPOXBOO --> PCO + MCRDH + CO + OH ', & ! index 438 + ' IEPOXBOO + NO --> POx + 0.2 PCO + 0.2 MCRDH + 0.8 GLYX + 0.8 HAC + 0.2 CO + HO2 + NO2 ', & ! index 439 + ' IEPOXBOO + NO --> POx + ITCN ', & ! index 440 + ' IEPOXBOO + HO2 --> 0.13 PCO + 0.13 MCRDH + 0.35 ICPDH + 0.52 GLYX + 0.52 HAC + 0.13 CO + ... etc.', & ! index 441 + ' ICHOO + HO2 --> 0.52 PCO + 0.13 MVKHC + 0.35 ICPDH + 0.52 HAC + 0.65 CH2O + 0.52 CO + ... etc.', & ! index 442 + ' ICHOO + NO --> POx + ITCN ', & ! index 443 + ' ICHOO + NO --> POx + 0.8 PCO + 0.2 MVKHC + 0.8 HAC + CH2O + 0.8 CO + HO2 + NO2 ', & ! index 444 + ' ICHOO --> 2 PCO + HAC + 2 CO + HO2 + OH ', & ! index 445 + ' HPALD1OO + NO --> CO2 + POx + MVK + OH + NO2 ', & ! index 446 + ' HPALD1OO + HO2 --> CO2 + MVK + 2 OH ', & ! index 447 + ' HPALD2OO + NO --> CO2 + POx + MACR + OH + NO2 ', & ! index 448 + ' HPALD2OO + HO2 --> CO2 + MACR + 2 OH ', & ! index 449 + ' IHN2 + OH --> ISOPNOO1 ' /) ! index up to 450 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_15 = (/ & - ' IHPOO3 + NO --> POx + GLYC + HAC + OH + NO2 ', & ! index 451 - ' IHPOO3 + NO --> POx + ITHN ', & ! index 452 - ' IHPOO3 + HO2 --> 0.35 IDHDP + 0.65 GLYC + 0.65 HAC + 1.3 OH ', & ! index 453 - ' IEPOXD + OH --> 0.75 ICHE + 0.25 ICHOO + 0.75 HO2 ', & ! index 454 - ' IEPOXA + OH --> ICHE + HO2 ', & ! index 455 - ' IEPOXA + OH --> 0.67 IEPOXAOO + 0.33 IEPOXBOO ', & ! index 456 - ' IEPOXB + OH --> ICHE + HO2 ', & ! index 457 - ' IEPOXB + OH --> 0.81 IEPOXAOO + 0.19 IEPOXBOO ', & ! index 458 - ' IEPOXAOO --> IDCHP + HO2 ', & ! index 459 - ' IEPOXAOO --> PCO + MVKDH + CO + OH ', & ! index 460 - ' IEPOXAOO + HO2 --> 0.13 PCO + 0.13 MVKDH + 0.35 ICPDH + 0.52 MGLY + 0.52 GLYC + 0.13 CO +... etc.', & ! index 461 - ' IEPOXAOO + NO --> POx + 0.2 PCO + 0.2 MVKDH + 0.8 MGLY + 0.8 GLYC + 0.2 CO + NO2 + HO2 ', & ! index 462 - ' IEPOXAOO + NO --> POx + ITCN ', & ! index 463 - ' IEPOXBOO --> IDCHP + HO2 ', & ! index 464 - ' IEPOXBOO --> PCO + MCRDH + CO + OH ', & ! index 465 - ' IEPOXBOO + NO --> POx + 0.2 PCO + 0.2 MCRDH + 0.8 GLYX + 0.8 HAC + 0.2 CO + NO2 + HO2 ', & ! index 466 - ' IEPOXBOO + NO --> POx + ITCN ', & ! index 467 - ' IEPOXBOO + HO2 --> 0.13 PCO + 0.13 MCRDH + 0.35 ICPDH + 0.52 GLYX + 0.52 HAC + 0.13 CO + ... etc.', & ! index 468 - ' ICHOO + HO2 --> 0.52 PCO + 0.13 MVKHC + 0.35 ICPDH + 0.52 HAC + 0.52 CO + 0.65 CH2O + ... etc.', & ! index 469 - ' ICHOO + NO --> POx + ITCN ', & ! index 470 - ' ICHOO + NO --> POx + 0.8 PCO + 0.2 MVKHC + 0.8 HAC + 0.8 CO + CH2O + NO2 + HO2 ', & ! index 471 - ' ICHOO --> 2 PCO + HAC + 2 CO + OH + HO2 ', & ! index 472 - ' HPALD1OO + NO --> CO2 + POx + MVK + OH + NO2 ', & ! index 473 - ' HPALD1OO + HO2 --> CO2 + MVK + 2 OH ', & ! index 474 - ' HPALD2OO + NO --> CO2 + POx + MACR + OH + NO2 ', & ! index 475 - ' HPALD2OO + HO2 --> CO2 + MACR + 2 OH ', & ! index 476 - ' IHN2 + OH --> ISOPNOO1 ', & ! index 477 - ' IHN2 + OH --> 0.67 IEPOXA + 0.33 IEPOXB + NO2 ', & ! index 478 - ' IHN3 + OH --> ISOPNOO2 ', & ! index 479 - ' IHN3 + OH --> 0.67 IEPOXA + 0.33 IEPOXB + NO2 ' /) ! index up to 480 + ' IHN2 + OH --> 0.67 IEPOXA + 0.33 IEPOXB + NO2 ', & ! index 451 + ' IHN3 + OH --> ISOPNOO2 ', & ! index 452 + ' IHN3 + OH --> 0.67 IEPOXA + 0.33 IEPOXB + NO2 ', & ! index 453 + ' IHN1 + OH --> IEPOXD + NO2 ', & ! index 454 + ' IHN1 + OH --> IDHNDOO1 ', & ! index 455 + ' IHN4 + OH --> IEPOXD + NO2 ', & ! index 456 + ' IHN4 + OH --> IDHNDOO2 ', & ! index 457 + ' IHN1 + OH --> 0.6 PCO + 0.6 MCRHNB + 0.4 ICN + 0.6 CO + 0.4 HO2 + 0.6 OH ', & ! index 458 + ' IHN4 + OH --> 0.6 PCO + 0.4 ICN + 0.6 MVKN + 0.6 CO + 0.4 HO2 + 0.6 OH ', & ! index 459 + ' ISOPNOO1 --> ITCN + HO2 ', & ! index 460 + ' ISOPNOO1 + HO2 --> 0.059 MCRHN + 0.459 GLYC + 0.482 ITHN + 0.459 HAC + 0.059 CH2O + 0.059... etc.', & ! index 461 + ' ISOPNOO1 + NO --> POx + 0.272 MCRHN + 0.728 GLYC + 0.728 HAC + 0.272 CH2O + 0.272 HO2 + ... etc.', & ! index 462 + ' ISOPNOO1 + NO --> POx + IDN ', & ! index 463 + ' ISOPNOO2 --> ITCN + HO2 ', & ! index 464 + ' ISOPNOO2 + HO2 --> 0.599 MVKN + 0.401 ITHN + 0.599 CH2O + 0.599 HO2 + 0.599 OH ', & ! index 465 + ' ISOPNOO2 + NO --> POx + MVKN + CH2O + HO2 + NO2 ', & ! index 466 + ' ISOPNOO2 + NO --> POx + IDN ', & ! index 467 + ' IDHNDOO1 --> ITCN + HO2 ', & ! index 468 + ' IDHNDOO2 --> ITCN + HO2 ', & ! index 469 + ' IDHNDOO1 + HO2 --> 0.031 MCRHNB + 0.551 PROPNN + 0.551 GLYC + 0.418 ITHN + 0.031 CH2O + 0... etc.', & ! index 470 + ' IDHNDOO1 + NO --> POx + 0.065 MCRHNB + 0.935 PROPNN + 0.935 GLYC + 0.065 CH2O + HO2 + NO2 ', & ! index 471 + ' IDHNDOO1 + NO --> POx + IDN ', & ! index 472 + ' IDHNDOO2 + HO2 --> 0.441 ETHLN + 0.065 MVKN + 0.494 ITHN + 0.441 HAC + 0.065 CH2O + 0.506... etc.', & ! index 473 + ' IDHNDOO2 + NO --> POx + 0.858 ETHLN + 0.142 MVKN + 0.858 HAC + 0.142 CH2O + HO2 + NO2 ', & ! index 474 + ' IDHNDOO2 + NO --> POx + IDN ', & ! index 475 + ' IDHNBOO + HO2 --> 0.094 MCRHNB + 0.242 PROPNN + 0.033 ETHLN + 0.242 GLYC + 0.01 MVKN + 0... etc.', & ! index 476 + ' IDHNBOO + NO --> POx + 0.355 MCRHNB + 0.546 PROPNN + 0.071 ETHLN + 0.546 GLYC + 0.028 M... etc.', & ! index 477 + ' IDHNBOO + NO --> POx + IDN ', & ! index 478 + ' ISOP + NO3 --> LISOPNO3 + LOx + 0.535 INO2D + 0.465 INO2B ', & ! index 479 + ' INO2B + HO2 --> 0.473 INPB + 0.479 MVK + 0.048 MACR + 0.527 CH2O + 0.527 OH + 0.527 NO2 ' /) ! index up to 480 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_16 = (/ & - ' IHN1 + OH --> IEPOXD + NO2 ', & ! index 481 - ' IHN1 + OH --> IDHNDOO1 ', & ! index 482 - ' IHN4 + OH --> IEPOXD + NO2 ', & ! index 483 - ' IHN4 + OH --> IDHNDOO2 ', & ! index 484 - ' IHN1 + OH --> 0.6 PCO + 0.6 MCRHNB + 0.4 ICN + 0.6 CO + 0.6 OH + 0.4 HO2 ', & ! index 485 - ' IHN4 + OH --> 0.6 PCO + 0.4 ICN + 0.6 MVKN + 0.6 CO + 0.6 OH + 0.4 HO2 ', & ! index 486 - ' ISOPNOO1 --> ITCN + HO2 ', & ! index 487 - ' ISOPNOO1 + HO2 --> 0.059 MCRHN + 0.459 GLYC + 0.482 ITHN + 0.459 HAC + 0.059 CH2O + 0.518... etc.', & ! index 488 - ' ISOPNOO1 + NO --> POx + 0.272 MCRHN + 0.728 GLYC + 0.728 HAC + 0.272 CH2O + 1.728 NO2 + ... etc.', & ! index 489 - ' ISOPNOO1 + NO --> POx + IDN ', & ! index 490 - ' ISOPNOO2 --> ITCN + HO2 ', & ! index 491 - ' ISOPNOO2 + HO2 --> 0.599 MVKN + 0.401 ITHN + 0.599 CH2O + 0.599 OH + 0.599 HO2 ', & ! index 492 - ' ISOPNOO2 + NO --> POx + MVKN + CH2O + NO2 + HO2 ', & ! index 493 - ' ISOPNOO2 + NO --> POx + IDN ', & ! index 494 - ' IDHNDOO1 --> ITCN + HO2 ', & ! index 495 - ' IDHNDOO2 --> ITCN + HO2 ', & ! index 496 - ' IDHNDOO1 + HO2 --> 0.031 MCRHNB + 0.551 PROPNN + 0.551 GLYC + 0.418 ITHN + 0.031 CH2O + 0... etc.', & ! index 497 - ' IDHNDOO1 + NO --> POx + 0.065 MCRHNB + 0.935 PROPNN + 0.935 GLYC + 0.065 CH2O + NO2 + HO2 ', & ! index 498 - ' IDHNDOO1 + NO --> POx + IDN ', & ! index 499 - ' IDHNDOO2 + HO2 --> 0.441 ETHLN + 0.065 MVKN + 0.494 ITHN + 0.441 HAC + 0.065 CH2O + 0.506... etc.', & ! index 500 - ' IDHNDOO2 + NO --> POx + 0.858 ETHLN + 0.142 MVKN + 0.858 HAC + 0.142 CH2O + NO2 + HO2 ', & ! index 501 - ' IDHNDOO2 + NO --> POx + IDN ', & ! index 502 - ' IDHNBOO + HO2 --> 0.094 MCRHNB + 0.242 PROPNN + 0.033 ETHLN + 0.242 GLYC + 0.01 MVKN + 0... etc.', & ! index 503 - ' IDHNBOO + NO --> POx + 0.355 MCRHNB + 0.546 PROPNN + 0.071 ETHLN + 0.546 GLYC + 0.028 M... etc.', & ! index 504 - ' IDHNBOO + NO --> POx + IDN ', & ! index 505 - ' ISOP + NO3 --> LISOPNO3 + LOx + 0.465 INO2B + 0.535 INO2D ', & ! index 506 - ' INO2B + HO2 --> 0.473 INPB + 0.479 MVK + 0.048 MACR + 0.527 CH2O + 0.527 OH + 0.527 NO2 ', & ! index 507 - ' INO2D + HO2 --> INPD ', & ! index 508 - ' 2 INO2B --> 0.07 INPB + 0.07 ICN + 1.737 MVK + 0.123 MACR + 1.86 CH2O + 1.86 NO2 ', & ! index 509 - ' INO2B + INO2D --> 0.474 INA + 0.399 INPB + 0.032 IHN1 + 0.532 ICN + 0.544 MVK + 0.019 MA... etc.' /) ! index up to 510 + ' INO2D + HO2 --> INPD ', & ! index 481 + ' 2 INO2B --> 0.07 INPB + 0.07 ICN + 1.737 MVK + 0.123 MACR + 1.86 CH2O + 1.86 NO2 ', & ! index 482 + ' INO2D + INO2B --> 0.474 INA + 0.399 INPB + 0.032 IHN1 + 0.532 ICN + 0.544 MVK + 0.019 MA... etc.', & ! index 483 + ' 2 INO2D --> 0.34 INA + 0.127 IHN4 + 0.671 IHN1 + 0.862 ICN + 0.064 HO2 ', & ! index 484 + ' INO2D + MO2 --> 0.244 INA + 0.057 IHN4 + 0.355 MOH + 0.298 IHN1 + 0.401 ICN + 0.645 CH... etc.', & ! index 485 + ' INO2B + MO2 --> 0.355 INPB + 0.034 MOH + 0.034 ICN + 0.583 MVK + 0.028 MACR + 1.577 CH... etc.', & ! index 486 + ' INO2B + MCO3 --> CO2 + 0.903 MVK + 0.097 MACR + CH2O + MO2 + NO2 ', & ! index 487 + ' INO2D + MCO3 --> CO2 + 0.841 INA + 0.159 ICN + MO2 + 0.159 HO2 ', & ! index 488 + ' INO2B + NO3 --> LOx + 0.903 MVK + 0.097 MACR + CH2O + 2 NO2 ', & ! index 489 + ' INO2D + NO3 --> LOx + 0.841 INA + 0.159 ICN + 0.159 HO2 + NO2 ', & ! index 490 + ' INO2B + NO --> POx + 0.904 MVK + 0.096 MACR + CH2O + 2 NO2 ', & ! index 491 + ' INO2B + NO --> POx + IDN ', & ! index 492 + ' INO2D + NO --> POx + 0.841 INA + 0.159 ICN + 0.159 HO2 + NO2 ', & ! index 493 + ' INO2D + NO --> POx + IDN ', & ! index 494 + ' INA + O2 --> ICN + HO2 ', & ! index 495 + ' INA --> IDHNBOO ', & ! index 496 + ' INPB + OH --> 0.67 IHPNBOO + 0.33 IDHNBOO ', & ! index 497 + ' INPD + OH --> IHPNDOO ', & ! index 498 + ' INPB + OH --> ITHN + OH ', & ! index 499 + ' INPD + OH --> ITHN + OH ', & ! index 500 + ' INPD + OH --> ICHE + NO2 ', & ! index 501 + ' INPB + OH --> INO2B ', & ! index 502 + ' INPD + OH --> INO2D ', & ! index 503 + ' INPD + OH --> ICN + OH ', & ! index 504 + ' IHPNDOO --> ITCN + OH ', & ! index 505 + ' IHPNBOO --> 0.5 ITCN + 0.5 ITHN + OH ', & ! index 506 + ' IHPNBOO + HO2 --> 0.249 HPETHNL + 0.06 MCRHNB + 0.009 ATOOH + 0.589 PROPNN + 0.051 ETHLN... etc.', & ! index 507 + ' IHPNDOO + HO2 --> 0.471 HPETHNL + 0.073 MCRHNB + 0.054 ATOOH + 0.471 PROPNN + 0.054 ETHL... etc.', & ! index 508 + ' IHPNBOO + NO --> POx + 0.303 HPETHNL + 0.17 MCRHNB + 0.013 ATOOH + 0.687 PROPNN + 0.064... etc.', & ! index 509 + ' IHPNBOO + NO --> POx + IDN ' /) ! index up to 510 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_17 = (/ & - ' 2 INO2D --> 0.001 LOx + 0.34 INA + 0.127 IHN4 + 0.671 IHN1 + 0.861 ICN + 0.064 HO2 ', & ! index 511 - ' INO2D + MO2 --> 0.244 INA + 0.057 IHN4 + 0.355 MOH + 0.298 IHN1 + 0.401 ICN + 0.645 CH... etc.', & ! index 512 - ' INO2B + MO2 --> 0.355 INPB + 0.034 MOH + 0.034 ICN + 0.583 MVK + 0.028 MACR + 1.577 CH... etc.', & ! index 513 - ' INO2B + MCO3 --> 0.903 MVK + 0.097 MACR + CH2O + MO2 + NO2 ', & ! index 514 - ' INO2D + MCO3 --> 0.841 INA + 0.159 ICN + MO2 + 0.159 HO2 ', & ! index 515 - ' INO2B + NO3 --> LOx + 0.903 MVK + 0.097 MACR + CH2O + 2 NO2 ', & ! index 516 - ' INO2D + NO3 --> LOx + 0.841 INA + 0.159 ICN + NO2 + 0.159 HO2 ', & ! index 517 - ' INO2B + NO --> POx + 0.904 MVK + 0.096 MACR + CH2O + 2 NO2 ', & ! index 518 - ' INO2B + NO --> POx + IDN ', & ! index 519 - ' INO2D + NO --> POx + 0.841 INA + 0.159 ICN + NO2 + 0.159 HO2 ', & ! index 520 - ' INO2D + NO --> POx + IDN ', & ! index 521 - ' INA + O2 --> ICN + HO2 ', & ! index 522 - ' INA --> IDHNBOO ', & ! index 523 - ' INPB + OH --> 0.67 IHPNBOO + 0.33 IDHNBOO ', & ! index 524 - ' INPD + OH --> IHPNDOO ', & ! index 525 - ' INPB + OH --> ITHN + OH ', & ! index 526 - ' INPD + OH --> ITHN + OH ', & ! index 527 - ' INPD + OH --> ICHE + NO2 ', & ! index 528 - ' INPB + OH --> INO2B ', & ! index 529 - ' INPD + OH --> INO2D ', & ! index 530 - ' INPD + OH --> ICN + OH ', & ! index 531 - ' IHPNDOO --> ITCN + OH ', & ! index 532 - ' IHPNBOO --> 0.5 ITCN + 0.5 ITHN + OH ', & ! index 533 - ' IHPNBOO + HO2 --> 0.249 HPETHNL + 0.06 MCRHNB + 0.009 ATOOH + 0.589 PROPNN + 0.051 ETHLN... etc.', & ! index 534 - ' IHPNDOO + HO2 --> 0.471 HPETHNL + 0.073 MCRHNB + 0.054 ATOOH + 0.471 PROPNN + 0.054 ETHL... etc.', & ! index 535 - ' IHPNBOO + NO --> POx + 0.303 HPETHNL + 0.17 MCRHNB + 0.013 ATOOH + 0.687 PROPNN + 0.064... etc.', & ! index 536 - ' IHPNBOO + NO --> POx + IDN ', & ! index 537 - ' IHPNDOO + NO --> POx + 0.59 HPETHNL + 0.291 MCRHNB + 0.07 ATOOH + 0.59 PROPNN + 0.07 ET... etc.', & ! index 538 - ' IHPNDOO + NO --> POx + IDN ', & ! index 539 - ' ICN + OH --> ICHE + NO2 ' /) ! index up to 540 + ' IHPNDOO + NO --> POx + 0.59 HPETHNL + 0.291 MCRHNB + 0.07 ATOOH + 0.59 PROPNN + 0.07 ET... etc.', & ! index 511 + ' IHPNDOO + NO --> POx + IDN ', & ! index 512 + ' ICN + OH --> ICHE + NO2 ', & ! index 513 + ' ICN + OH --> 0.539 PCO + 0.461 ICNOO + 0.378 MCRHNB + 0.161 MVKN + 0.539 CO + 0.295... etc.', & ! index 514 + ' ICNOO + NO --> 0.429 CO2 + POx + 0.33 PCO + 0.67 ICNOO + 0.231 PROPNN + 0.099 ETHLN +... etc.', & ! index 515 + ' ICNOO + HO2 --> 0.429 CO2 + 0.33 PCO + 0.67 ICNOO + 0.231 PROPNN + 0.099 ETHLN + 0.33 ... etc.', & ! index 516 + ' IDN + OH --> 0.435 IDNOO + 0.565 ITHN + 0.565 NO2 ', & ! index 517 + ' IDNOO + NO --> POx + PROPNN + 0.89 ETHLN + 0.11 GLYC + 0.89 HO2 + 1.11 NO2 ', & ! index 518 + ' IDNOO + HO2 --> 0.82 PROPNN + 0.73 ETHLN + 0.09 GLYC + 0.18 IDN + 0.73 HO2 + 0.82 OH +... etc.', & ! index 519 + ' MVK + OH --> MVKOHOO ', & ! index 520 + ' MVK + O3 --> LOx + 0.28 PCO + 0.045 PH2O2 + 0.075 PYAC + 0.045 H2O2 + 0.545 MGLY + ... etc.', & ! index 521 + ' MACR + OH --> 0.036 PCO + 0.036 ATOOH + 0.964 MCROHOO + 0.036 CO + 0.036 HO2 ', & ! index 522 + ' MACR + OH --> MACR1OO ', & ! index 523 + ' MACR + O3 --> LOx + 0.12 PCO + 0.88 MGLY + 0.88 CH2OO + 0.12 MCO3 + 0.12 CH2O + 0.12... etc.', & ! index 524 + ' MACR + NO3 --> LOx + 0.68 PCO + 0.68 PROPNN + 0.32 MACR1OO + 0.32 HNO3 + 0.68 CO + 0.68 OH ', & ! index 525 + ' MVKN + OH --> 0.69 POx + 0.241 PYAC + 0.29 MVKHCB + 0.449 HCOOH + 0.449 MGLY + 0.04 ... etc.', & ! index 526 + ' MVKHP + OH --> 0.53 MVKHC + 0.47 MVKHCB + OH ', & ! index 527 + ' MCRHP + OH --> 0.23 CO2 + 0.77 PCO + 0.23 ATOOH + 0.77 HAC + 0.77 CO + OH ', & ! index 528 + ' MCRHN + OH --> MACRNO2 ', & ! index 529 + ' MCRHNB + OH --> 0.75 CO2 + 0.25 PCO + PROPNN + 0.25 CO + OH ', & ! index 530 + ' C4HVP1 + NO --> POx + MVKOHOO + NO2 ', & ! index 531 + ' C4HVP1 + HO2 --> MVKOHOO + OH ', & ! index 532 + ' C4HVP1 + NO2 --> MVKN ', & ! index 533 + ' C4HVP2 + NO --> POx + MCROHOO + NO2 ', & ! index 534 + ' C4HVP2 + HO2 --> MCROHOO + OH ', & ! index 535 + ' C4HVP2 + NO2 --> MCRHN ', & ! index 536 + ' MCRENOL + OH --> 0.097 CO2 + 0.75 PCO + 0.653 PYAC + 0.063 MVKHCB + 0.187 HCOOH + 0.187... etc.', & ! index 537 + ' MVKPC + OH --> PCO + MGLY + CO + OH ', & ! index 538 + ' MVKDH + OH --> 0.6 MVKHC + 0.4 MVKHCB + HO2 ', & ! index 539 + ' MVKHCB + OH --> PCO + MGLY + CO + OH ' /) ! index up to 540 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_18 = (/ & - ' ICN + OH --> 0.539 PCO + 0.461 ICNOO + 0.378 MCRHNB + 0.161 MVKN + 0.539 CO + 0.244... etc.', & ! index 541 - ' ICNOO + NO --> 0.33 CO2 + POx + 0.33 PCO + 0.67 ICNOO + 0.231 PROPNN + 0.099 ETHLN + ... etc.', & ! index 542 - ' ICNOO + HO2 --> 0.33 CO2 + 0.33 PCO + 0.67 ICNOO + 0.231 PROPNN + 0.099 ETHLN + 0.33 C... etc.', & ! index 543 - ' IDN + OH --> 0.435 IDNOO + 0.565 ITHN + 0.565 NO2 ', & ! index 544 - ' IDNOO + NO --> POx + PROPNN + 0.89 ETHLN + 0.11 GLYC + 1.11 NO2 + 0.89 HO2 ', & ! index 545 - ' IDNOO + HO2 --> 0.82 PROPNN + 0.73 ETHLN + 0.09 GLYC + 0.18 IDN + 0.82 OH + 0.09 NO2 +... etc.', & ! index 546 - ' MVK + OH --> MVKOHOO ', & ! index 547 - ' MVK + O3 --> LOx + 0.18 PCO + 0.045 PH2O2 + 0.075 PYAC + 0.045 H2O2 + 0.545 MGLY + ... etc.', & ! index 548 - ' MACR + OH --> 0.036 PCO + 0.036 ATOOH + 0.964 MCROHOO + 0.036 CO + 0.036 HO2 ', & ! index 549 - ' MACR + OH --> MACR1OO ', & ! index 550 - ' MACR + O3 --> LOx + 0.12 PCO + 0.88 MGLY + 0.88 CH2OO + 0.12 MCO3 + 0.12 CO + 0.12 C... etc.', & ! index 551 - ' MACR + NO3 --> LOx + 0.68 PCO + 0.68 PROPNN + 0.32 MACR1OO + 0.68 CO + 0.32 HNO3 + 0.68 OH ', & ! index 552 - ' MVKN + OH --> 0.69 POx + 0.241 PYAC + 0.29 MVKHCB + 0.449 HCOOH + 0.449 MGLY + 0.04 ... etc.', & ! index 553 - ' MVKHP + OH --> 0.53 MVKHC + 0.47 MVKHCB + OH ', & ! index 554 - ' MCRHP + OH --> 0.23 CO2 + 0.77 PCO + 0.23 ATOOH + 0.77 HAC + 0.77 CO + OH ', & ! index 555 - ' MCRHN + OH --> MACRNO2 ', & ! index 556 - ' MCRHNB + OH --> 0.75 CO2 + 0.25 PCO + PROPNN + 0.25 CO + OH ', & ! index 557 - ' C4HVP1 + NO --> POx + MVKOHOO + NO2 ', & ! index 558 - ' C4HVP1 + HO2 --> MVKOHOO + OH ', & ! index 559 - ' C4HVP1 + NO2 --> MVKN ', & ! index 560 - ' C4HVP2 + NO --> POx + MCROHOO + NO2 ', & ! index 561 - ' C4HVP2 + HO2 --> MCROHOO + OH ', & ! index 562 - ' C4HVP2 + NO2 --> MCRHN ', & ! index 563 - ' MCRENOL + OH --> 0.097 CO2 + 0.75 PCO + 0.653 PYAC + 0.063 MVKHCB + 0.187 HCOOH + 0.187... etc.', & ! index 564 - ' MVKPC + OH --> PCO + MGLY + CO + OH ', & ! index 565 - ' MVKDH + OH --> 0.6 MVKHC + 0.4 MVKHCB + HO2 ', & ! index 566 - ' MVKHCB + OH --> MGLY + OH ', & ! index 567 - ' MVKHC + OH --> 2 PCO + MCO3 + 2 CO + HO2 ', & ! index 568 - ' MCRDH + OH --> 0.84 PCO + 0.16 MVKHCB + 0.84 HAC + 0.84 CO + HO2 ', & ! index 569 - ' MVKOHOO + HO2 --> 0.255 MVKHC + 0.335 MVKHP + 0.05 MGLY + 0.36 GLYC + 0.36 MCO3 + 0.05 C... etc.' /) ! index up to 570 + ' MVKHC + OH --> 2 PCO + MCO3 + 2 CO + HO2 ', & ! index 541 + ' MCRDH + OH --> 0.84 PCO + 0.16 MVKHCB + 0.84 HAC + 0.84 CO + HO2 ', & ! index 542 + ' MVKOHOO + HO2 --> 0.255 MVKHC + 0.335 MVKHP + 0.05 MGLY + 0.36 GLYC + 0.36 MCO3 + 0.05 C... etc.', & ! index 543 + ' MVKOHOO + NO --> POx + 0.242 MGLY + 0.758 GLYC + 0.758 MCO3 + 0.242 CH2O + 0.242 HO2 + NO2 ', & ! index 544 + ' MVKOHOO + NO --> POx + MVKN ', & ! index 545 + ' MCROHOO + HO2 --> 0.507 PCO + 0.41 MCRHP + 0.083 MGLY + 0.507 HAC + 0.083 CH2O + 0.507 C... etc.', & ! index 546 + ' MACR1OO + HO2 --> 0.5 CO2 + 0.13 POx + 0.325 PCO + 0.5 MACR1OOH + 0.175 MCO3 + 0.5 CH2O ... etc.', & ! index 547 + ' MACR1OOH + OH --> 0.41 CO2 + 0.488 PCO + 0.098 HMML + 0.165 MACR1OO + 0.488 HAC + 0.087 ... etc.', & ! index 548 + ' MCROHOO --> PCO + HAC + CO + OH ', & ! index 549 + ' MCROHOO + NO --> POx + 0.86 PCO + 0.14 MGLY + 0.86 HAC + 0.14 CH2O + 0.86 CO + 0.86 HO2 + NO2 ', & ! index 550 + ' MCROHOO + NO --> POx + MCRHN ', & ! index 551 + ' MACR1OO + NO --> CO2 + POx + 0.65 PCO + 0.35 MCO3 + CH2O + 0.65 MO2 + 0.65 CO + NO2 ', & ! index 552 + ' MACR1OO + NO2 --> MPAN ', & ! index 553 + ' MACRNO2 + HO2 --> 0.5 CO2 + 0.13 POx + 0.13 MCRHNB + 0.37 MCRHN + 0.5 HAC + 0.13 O3 + 0.... etc.', & ! index 554 + ' MACRNO2 + NO --> CO2 + POx + HAC + 2 NO2 ', & ! index 555 + ' MACRNO2 + NO2 --> MPAN + NO2 ', & ! index 556 + ' MACRNO2 + NO3 --> CO2 + LOx + HAC + 2 NO2 ', & ! index 557 + ' MACRNO2 + MO2 --> 0.7 CO2 + 0.3 MCRHNB + 0.7 HAC + CH2O + 0.7 HO2 + 0.7 NO2 ', & ! index 558 + ' MPAN --> MACR1OO + NO2 ', & ! index 559 + ' MPAN + OH --> POx + 0.25 PCO + 0.75 HMML + 0.25 HAC + 0.25 CO + NO3 ', & ! index 560 + ' HMML + OH --> PCO + 0.3 HCOOH + 0.7 MGLY + 0.3 MCO3 + CO + 0.7 OH ', & ! index 561 + ' ICPDH + OH --> PCO + 0.35 MVKDH + 0.15 MCRDH + 0.5 MCRHP + CO + 0.5 HO2 + 0.5 OH ', & ! index 562 + ' IDCHP + OH --> 0.888 PCO + 0.444 MVKPC + 0.318 MVKHC + 0.126 MVKHCB + 0.08 IEPOXAOO +... etc.', & ! index 563 + ' IDHDP + OH --> 0.667 IDHPE + 0.333 ICPDH + OH ', & ! index 564 + ' IDHPE + OH --> CO2 + 0.429 MVKHP + 0.571 MCRHP + OH ', & ! index 565 + ' ITCN + OH --> PCO + 0.75 MVKHP + 0.25 MCRHP + CO + NO2 ', & ! index 566 + ' ITHN + OH --> 0.041 ICNOO + 0.022 MCRENOL + 0.9 ITCN + 0.037 IDHNBOO + 0.022 CH2O + ... etc.', & ! index 567 + ' ETHLN + NO3 --> LOx + MCO3 + HNO3 + NO2 ', & ! index 568 + ' PYAC + OH --> CO2 + MCO3 ', & ! index 569 + ' HMHP + OH --> 0.5 HCOOH + 0.5 CH2O + 0.5 HO2 + 0.5 OH ' /) ! index up to 570 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_19 = (/ & - ' MVKOHOO + NO --> POx + 0.242 MGLY + 0.758 GLYC + 0.758 MCO3 + 0.242 CH2O + NO2 + 0.242 HO2 ', & ! index 571 - ' MVKOHOO + NO --> 0.438 POx + 0.438 MVKN ', & ! index 572 - ' MCROHOO + HO2 --> 0.507 PCO + 0.41 MCRHP + 0.083 MGLY + 0.507 HAC + 0.507 CO + 0.083 CH2... etc.', & ! index 573 - ' MACR1OO + HO2 --> 0.5 CO2 + 0.13 POx + 0.325 PCO + 0.5 MACR1OOH + 0.175 MCO3 + 0.325 CO ... etc.', & ! index 574 - ' MACR1OOH + OH --> 0.415 CO2 + 0.488 PCO + 0.098 HMML + 0.165 MACR1OO + 0.488 HAC + 0.087... etc.', & ! index 575 - ' MCROHOO --> PCO + HAC + CO + OH ', & ! index 576 - ' MCROHOO + NO --> POx + 0.86 PCO + 0.14 MGLY + 0.86 HAC + 0.86 CO + 0.14 CH2O + NO2 + 0.86 HO2 ', & ! index 577 - ' MCROHOO + NO --> POx + MCRHN ', & ! index 578 - ' MACR1OO + NO --> CO2 + POx + 0.65 PCO + 0.35 MCO3 + 0.65 CO + CH2O + 0.65 MO2 + NO2 ', & ! index 579 - ' MACR1OO + NO2 --> MPAN ', & ! index 580 - ' MACRNO2 + HO2 --> 0.5 CO2 + 0.13 POx + 0.13 MCRHNB + 0.37 MCRHN + 0.5 HAC + 0.5 OH + 0.5... etc.', & ! index 581 - ' MACRNO2 + NO --> CO2 + POx + HAC + 2 NO2 ', & ! index 582 - ' MACRNO2 + NO2 --> MPAN + NO2 ', & ! index 583 - ' MACRNO2 + NO3 --> CO2 + LOx + HAC + 2 NO2 ', & ! index 584 - ' MACRNO2 + MO2 --> 0.7 CO2 + 0.3 MCRHNB + 0.7 HAC + CH2O + 0.7 NO2 + 0.7 HO2 ', & ! index 585 - ' MPAN --> MACR1OO + NO2 ', & ! index 586 - ' MPAN + OH --> POx + 0.25 PCO + 0.75 HMML + 0.25 HAC + 0.25 CO + NO3 ', & ! index 587 - ' HMML + OH --> 0.3 HCOOH + 0.7 MGLY + 0.3 MCO3 + 0.7 OH ', & ! index 588 - ' ICPDH + OH --> PCO + 0.35 MVKDH + 0.15 MCRDH + 0.5 MCRHP + CO + 0.5 OH + 0.5 HO2 ', & ! index 589 - ' IDCHP + OH --> 0.888 PCO + 0.444 MVKPC + 0.318 MVKHC + 0.126 MVKHCB + 0.08 IEPOXAOO +... etc.', & ! index 590 - ' IDHDP + OH --> 0.667 IDHPE + 0.333 ICPDH + OH ', & ! index 591 - ' IDHPE + OH --> CO2 + 0.429 MVKHP + 0.571 MCRHP + OH ', & ! index 592 - ' ITCN + OH --> PCO + 0.75 MVKHP + 0.25 MCRHP + CO + NO2 ', & ! index 593 - ' ITHN + OH --> 0.02 POx + 0.041 ICNOO + 0.022 MCRENOL + 0.92 ITCN + 0.037 IDHNBOO + 0... etc.', & ! index 594 - ' ETHLN + NO3 --> LOx + MCO3 + HNO3 + NO2 ', & ! index 595 - ' PYAC + OH --> CO2 + MCO3 ', & ! index 596 - ' HMHP + OH --> 0.5 HCOOH + 0.5 CH2O + 0.5 OH + 0.5 HO2 ', & ! index 597 - ' MCO3 + HO2 --> 0.5 CO2 + 0.13 POx + 0.37 MAP + 0.13 ACTA + 0.5 MO2 + 0.5 OH + 0.13 O3 ', & ! index 598 - ' HPETHNL + OH --> PCO + CO + CH2O + OH ', & ! index 599 - ' HPETHNL + OH --> GLYX + OH ' /) ! index up to 600 + ' MCO3 + HO2 --> 0.5 CO2 + 0.13 POx + 0.37 MAP + 0.13 ACTA + 0.5 MO2 + 0.13 O3 + 0.5 OH ', & ! index 571 + ' HPETHNL + OH --> PCO + CH2O + CO + OH ', & ! index 572 + ' HPETHNL + OH --> GLYX + OH ', & ! index 573 + ' NAP + OH --> NRO2 + OH ', & ! index 574 + ' NRO2 + HO2 --> LNRO2H + HO2 ', & ! index 575 + ' NRO2 + NO --> LNRO2N + NO ', & ! index 576 + ' C2H4 + O3 --> LOx + CH2OO + CH2O ', & ! index 577 + ' C2H4 + OH --> ETOO ', & ! index 578 + ' C2H2 + OH --> 0.364 PCO + 0.364 HCOOH + 0.636 GLYX + 0.364 CO + 0.364 HO2 + 0.636 OH ', & ! index 579 + ' ETOO + HO2 --> ETHP ', & ! index 580 + ' ETOO + NO --> 0.995 POx + 0.005 ETHN + 0.995 ETO + 0.995 NO2 ', & ! index 581 + ' ETOO + NO3 --> LOx + ETO + NO2 ', & ! index 582 + ' ETOO + MO2 --> 0.6 ETO + 0.2 ETHP + 0.2 MOH + 0.2 GLYC + 0.8 CH2O + 0.6 HO2 ', & ! index 583 + ' ETO --> 2 CH2O + HO2 ', & ! index 584 + ' ETO + O2 --> GLYC + HO2 ', & ! index 585 + ' ETHN + OH --> POx + GLYC + NO2 ', & ! index 586 + ' ETHP + OH --> ETOO ', & ! index 587 + ' ETHP + OH --> GLYC + OH ', & ! index 588 + ' BENZ + OH --> BRO2 + 0.2 PCO + 0.54 PHEN + 0.55 AROMP4 + 0.46 AROMRO2 + 0.18 GLYX + ... etc.', & ! index 589 + ' TOLU + OH --> TRO2 + 0.27 PCO + 0.06 BALD + 0.19 CSL + 0.3 AROMP5 + 0.68 AROMP4 + 0.... etc.', & ! index 590 + ' XYLE + OH --> XRO2 + 0.3 PCO + 0.06 BALD + 0.15 CSL + 0.56 AROMP5 + 0.28 AROMP4 + 0.... etc.', & ! index 591 + ' AROMRO2 + HO2 --> HO2 + OH ', & ! index 592 + ' AROMRO2 + NO --> POx + HO2 + NO2 ', & ! index 593 + ' AROMRO2 + NO3 --> LOx + HO2 + NO2 ', & ! index 594 + ' AROMRO2 + MO2 --> CH2O + 2 HO2 ', & ! index 595 + ' AROMRO2 + MCO3 --> CO2 + MO2 + HO2 ', & ! index 596 + ' PHEN + OH --> 0.8 MCT + 0.18 AROMP4 + 0.06 BENZO + 0.14 AROMRO2 + 0.06 GLYX + 0.8 HO2 ', & ! index 597 + ' PHEN + NO3 --> 1.258 LOx + 0.742 BENZO + 0.258 NPHEN + 0.742 HNO3 ', & ! index 598 + ' CSL + OH --> 0.727 MCT + 0.44 AROMP5 + 0.073 BENZO + 0.2 AROMRO2 + 0.727 HO2 ', & ! index 599 + ' CSL + NO3 --> 1.5 LOx + 0.44 AROMP5 + 0.3 BENZO + 0.2 AROMRO2 + 0.5 NPHEN + 0.5 HNO3 ' /) ! index up to 600 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_20 = (/ & - ' NAP + OH --> NRO2 + OH ', & ! index 601 - ' NRO2 + HO2 --> LNRO2H + HO2 ', & ! index 602 - ' NRO2 + NO --> LNRO2N + NO ', & ! index 603 - ' C2H4 + O3 --> LOx + CH2OO + CH2O ', & ! index 604 - ' C2H4 + OH --> ETOO ', & ! index 605 - ' C2H2 + OH --> 0.364 PCO + 0.364 HCOOH + 0.636 GLYX + 0.364 CO + 0.636 OH + 0.364 HO2 ', & ! index 606 - ' ETOO + HO2 --> ETHP ', & ! index 607 - ' ETOO + NO --> 0.995 POx + 0.005 ETHN + 0.995 ETO + 0.995 NO2 ', & ! index 608 - ' ETOO + NO3 --> LOx + ETO + NO2 ', & ! index 609 - ' ETOO + MO2 --> 0.6 ETO + 0.2 ETHP + 0.2 MOH + 0.2 GLYC + 0.8 CH2O + 0.6 HO2 ', & ! index 610 - ' ETO --> 2 CH2O + HO2 ', & ! index 611 - ' ETO + O2 --> GLYC + HO2 ', & ! index 612 - ' ETHN + OH --> POx + GLYC + NO2 ', & ! index 613 - ' ETHP + OH --> ETOO ', & ! index 614 - ' ETHP + OH --> GLYC + OH ', & ! index 615 - ' BENZ + OH --> BRO2 + 0.2 PCO + 0.54 PHEN + 0.56 AROMP4 + 0.46 AROMRO2 + 0.18 GLYX + ... etc.', & ! index 616 - ' TOLU + OH --> TRO2 + 0.27 PCO + 0.06 BALD + 0.19 CSL + 0.3 AROMP5 + 0.68 AROMP4 + 0.... etc.', & ! index 617 - ' XYLE + OH --> XRO2 + 0.3 PCO + 0.06 BALD + 0.15 CSL + 0.56 AROMP5 + 0.28 AROMP4 + 0.... etc.', & ! index 618 - ' AROMRO2 + HO2 --> OH + HO2 ', & ! index 619 - ' AROMRO2 + NO --> POx + NO2 + HO2 ', & ! index 620 - ' AROMRO2 + NO3 --> LOx + NO2 + HO2 ', & ! index 621 - ' AROMRO2 + MO2 --> CH2O + 2 HO2 ', & ! index 622 - ' AROMRO2 + MCO3 --> MO2 + HO2 ', & ! index 623 - ' PHEN + OH --> 0.8 MCT + 0.18 AROMP4 + 0.06 BENZO + 0.14 AROMRO2 + 0.06 GLYX + 0.8 HO2 ', & ! index 624 - ' PHEN + NO3 --> 1.258 LOx + 0.742 BENZO + 0.258 NPHEN + 0.742 HNO3 ', & ! index 625 - ' CSL + OH --> 0.727 MCT + 0.44 AROMP5 + 0.073 BENZO + 0.2 AROMRO2 + 0.727 HO2 ', & ! index 626 - ' CSL + NO3 --> 1.5 LOx + 0.44 AROMP5 + 0.3 BENZO + 0.2 AROMRO2 + 0.5 NPHEN + 0.5 HNO3 ', & ! index 627 - ' MCT + OH --> 1.05 AROMP4 + 0.3 BENZO + 0.7 AROMRO2 ', & ! index 628 - ' MCT + O3 --> LOx + AROMP4 + GLYC + OH + HO2 ', & ! index 629 - ' MCT + NO3 --> 1.5 LOx + 0.3 AROMP4 + 0.3 BENZO + 0.2 AROMRO2 + 0.5 NPHEN + 0.5 HNO3 ' /) ! index up to 630 + ' MCT + OH --> 1.05 AROMP4 + 0.3 BENZO + 0.7 AROMRO2 ', & ! index 601 + ' MCT + O3 --> LOx + AROMP4 + GLYC + HO2 + OH ', & ! index 602 + ' MCT + NO3 --> 1.5 LOx + 0.3 AROMP4 + 0.3 BENZO + 0.2 AROMRO2 + 0.5 NPHEN + 0.5 HNO3 ', & ! index 603 + ' BALD + OH --> BZCO3 ', & ! index 604 + ' BALD + NO3 --> LOx + BZCO3 + HNO3 ', & ! index 605 + ' BZCO3 + HO2 --> 0.35 CO2 + 0.15 POx + 0.65 BZCO3H + 0.15 BENZP + 0.2 BENZO2 + 0.15 O3 + 0.2 OH', & ! index 606 + ' BZCO3 + NO --> CO2 + POx + BENZO2 + NO2 ', & ! index 607 + ' BZCO3 + NO2 --> LOx + BZPAN ', & ! index 608 + ' BZCO3H + OH --> BZCO3 ', & ! index 609 + ' BZPAN --> POx + BZCO3 + NO2 ', & ! index 610 + ' BZPAN + OH --> CO2 + POx + BENZP + NO2 ', & ! index 611 + ' BENZO2 + NO2 --> POx + BENZO + NO3 ', & ! index 612 + ' BENZO2 + NO --> POx + BENZO + NO2 ', & ! index 613 + ' BENZO2 + NO3 --> LOx + BENZO + NO2 ', & ! index 614 + ' BENZO2 + HO2 --> BENZP ', & ! index 615 + ' BENZP + OH --> BENZO2 ', & ! index 616 + ' BENZO + O3 --> LOx + BENZO2 ', & ! index 617 + ' BENZO + NO2 --> LOx + NPHEN ', & ! index 618 + ' NPHEN + OH --> POx + 0.15 PCO + 0.9 AROMP4 + 0.5 R4N1 + 0.15 CO + 0.5 NO2 ', & ! index 619 + ' NPHEN + NO3 --> 0.15 PCO + 0.9 AROMP4 + 0.5 R4N1 + 0.5 HNO3 + 0.15 CO + NO2 ', & ! index 620 + ' BENZO2 + MO2 --> BENZO + CH2O + HO2 ', & ! index 621 + ' BZCO3 + MO2 --> CO2 + BENZO2 + CH2O + HO2 ', & ! index 622 + ' AROMP4 + OH --> 0.26 PCO + 0.26 HCOOH + 0.6 GLYX + 0.33 RCO3 + 0.26 CO + 0.33 HO2 + 0.... etc.', & ! index 623 + ' AROMP4 + O3 --> LOx + 0.5 PCO + 0.5 HCOOH + 0.6 GLYX + 0.9 GLYC + 0.5 CO + 0.1 HO2 + 0.1 OH ', & ! index 624 + ' AROMP4 --> 0.2 GLYX + 1.2 RCHO + 0.2 HO2 ', & ! index 625 + ' AROMP5 + OH --> 0.25 PCO + 0.1 HCOOH + 0.15 ACTA + 0.6 MGLY + 0.33 RCO3 + 0.25 CO + 0.... etc.', & ! index 626 + ' AROMP5 + O3 --> LOx + 0.5 PCO + 0.2 HCOOH + 0.3 ACTA + 0.6 MGLY + 0.95 GLYC + 0.5 CO +... etc.', & ! index 627 + ' AROMP5 --> 0.05 PCO + 0.2 MGLY + 0.2 R4O2 + 1.15 RCHO + 0.05 CO + 0.2 HO2 ', & ! index 628 + ' BRO2 + HO2 --> LBRO2H + HO2 ', & ! index 629 + ' BRO2 + NO --> LBRO2N + NO ' /) ! index up to 630 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_21 = (/ & - ' BALD + OH --> BZCO3 ', & ! index 631 - ' BALD + NO3 --> LOx + BZCO3 + HNO3 ', & ! index 632 - ' BZCO3 + HO2 --> 0.35 CO2 + 0.15 POx + 0.65 BZCO3H + 0.15 BENZP + 0.2 BENZO2 + 0.2 OH + 0.15 O3', & ! index 633 - ' BZCO3 + NO --> CO2 + POx + BENZO2 + NO2 ', & ! index 634 - ' BZCO3 + NO2 --> LOx + BZPAN ', & ! index 635 - ' BZCO3H + OH --> BZCO3 ', & ! index 636 - ' BZPAN --> POx + BZCO3 + NO2 ', & ! index 637 - ' BZPAN + OH --> CO2 + POx + BENZP + NO2 ', & ! index 638 - ' BENZO2 + NO2 --> POx + BENZO + NO3 ', & ! index 639 - ' BENZO2 + NO --> POx + BENZO + NO2 ', & ! index 640 - ' BENZO2 + NO3 --> LOx + BENZO + NO2 ', & ! index 641 - ' BENZO2 + HO2 --> BENZP ', & ! index 642 - ' BENZP + OH --> BENZO2 ', & ! index 643 - ' BENZO + O3 --> LOx + BENZO2 ', & ! index 644 - ' BENZO + NO2 --> LOx + NPHEN ', & ! index 645 - ' NPHEN + OH --> POx + AROMP4 + 0.5 R4N1 + 0.5 NO2 ', & ! index 646 - ' NPHEN + NO3 --> AROMP4 + 0.5 R4N1 + 0.5 HNO3 + NO2 ', & ! index 647 - ' BENZO2 + MO2 --> BENZO + CH2O + HO2 ', & ! index 648 - ' BZCO3 + MO2 --> CO2 + BENZO2 + CH2O + HO2 ', & ! index 649 - ' AROMP4 + OH --> 0.25 PCO + 0.25 HCOOH + 0.6 GLYX + 0.33 RCO3 + 0.25 CO + 0.25 OH + 0.3... etc.', & ! index 650 - ' AROMP4 + O3 --> LOx + 0.5 PCO + 0.5 HCOOH + 0.6 GLYX + 0.9 GLYC + 0.5 CO + 0.1 OH + 0.1 HO2 ', & ! index 651 - ' AROMP4 --> 0.2 GLYX + 1.2 RCHO + 0.2 HO2 ', & ! index 652 - ' AROMP5 + OH --> 0.25 PCO + 0.1 HCOOH + 0.15 ACTA + 0.6 MGLY + 0.33 RCO3 + 0.25 CO + 0.... etc.', & ! index 653 - ' AROMP5 + O3 --> LOx + 0.5 PCO + 0.2 HCOOH + 0.3 ACTA + 0.6 MGLY + 0.95 GLYC + 0.5 CO +... etc.', & ! index 654 - ' AROMP5 --> 0.2 MGLY + 0.2 R4O2 + 1.2 RCHO + 0.2 HO2 ', & ! index 655 - ' BRO2 + HO2 --> LBRO2H + HO2 ', & ! index 656 - ' BRO2 + NO --> LBRO2N + NO ', & ! index 657 - ' TRO2 + HO2 --> LTRO2H + HO2 ', & ! index 658 - ' TRO2 + NO --> LTRO2N + NO ', & ! index 659 - ' XRO2 + HO2 --> LXRO2H + HO2 ' /) ! index up to 660 + ' TRO2 + HO2 --> LTRO2H + HO2 ', & ! index 631 + ' TRO2 + NO --> LTRO2N + NO ', & ! index 632 + ' XRO2 + HO2 --> LXRO2H + HO2 ', & ! index 633 + ' XRO2 + NO --> LXRO2N + NO ', & ! index 634 + ' MO2 + NO3 --> LOx + CH2O + HO2 + NO2 ', & ! index 635 + ' FURA + OH --> BUTDI ', & ! index 636 + ' HO2 --> H2O ', & ! index 637 + ' NO2 --> 0.5 LOx + 0.5 HNO2 + 0.5 HNO3 ', & ! index 638 + ' NO3 --> LOx + HNO3 ', & ! index 639 + ' NO3 --> LOx + NIT ', & ! index 640 + ' NO3 --> LOx + NITs ', & ! index 641 + ' N2O5 + H2O --> LOx + 2 HNO3 ', & ! index 642 + ' N2O5 + HCl --> LOx + ClNO2 + HNO3 ', & ! index 643 + ' N2O5 --> LOx + 2 HNO3 ', & ! index 644 + ' N2O5 + SALACL --> LOx + ClNO2 + HNO3 ', & ! index 645 + ' N2O5 + SALCCL --> LOx + ClNO2 + HNO3 ', & ! index 646 + ' SALACL + OH --> 0.5 Cl2 ', & ! index 647 + ' OH + SALCCL --> 0.5 Cl2 ', & ! index 648 + ' BrNO3 + H2O --> HOBr + HNO3 ', & ! index 649 + ' BrNO3 + HCl --> LOx + BrCl + HNO3 ', & ! index 650 + ' ClNO3 + H2O --> HNO3 + HOCl ', & ! index 651 + ' ClNO3 + HCl --> LOx + Cl2 + HNO3 ', & ! index 652 + ' ClNO3 + HBr --> LOx + BrCl + HNO3 ', & ! index 653 + ' ClNO3 + BrSALA --> LOx + BrCl + HNO3 ', & ! index 654 + ' ClNO3 + BrSALC --> LOx + BrCl + HNO3 ', & ! index 655 + ' ClNO3 + SALACL --> LOx + Cl2 + HNO3 ', & ! index 656 + ' ClNO3 + SALCCL --> LOx + Cl2 + HNO3 ', & ! index 657 + ' ClNO2 + SALACL --> LOx + HNO2 + Cl2 ', & ! index 658 + ' ClNO2 + SALCCL --> LOx + HNO2 + Cl2 ', & ! index 659 + ' ClNO2 + HCl --> LOx + HNO2 + Cl2 ' /) ! index up to 660 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_22 = (/ & - ' XRO2 + NO --> LXRO2N + NO ', & ! index 661 - ' MO2 + NO3 --> LOx + CH2O + NO2 + HO2 ', & ! index 662 - ' HO2 --> H2O ', & ! index 663 - ' NO2 --> 0.5 LOx + 0.5 HNO2 + 0.5 HNO3 ', & ! index 664 - ' NO3 --> LOx + HNO3 ', & ! index 665 - ' NO3 --> 2 LOx + NIT ', & ! index 666 - ' NO3 --> 2 LOx + NITs ', & ! index 667 - ' N2O5 + H2O --> LOx + 2 HNO3 ', & ! index 668 - ' N2O5 + HCl --> LOx + ClNO2 + HNO3 ', & ! index 669 - ' N2O5 --> LOx + 2 HNO3 ', & ! index 670 - ' N2O5 + SALACL --> LOx + ClNO2 + HNO3 ', & ! index 671 - ' N2O5 + SALCCL --> LOx + ClNO2 + HNO3 ', & ! index 672 - ' OH + SALACL --> 0.5 Cl2 ', & ! index 673 - ' OH + SALCCL --> 0.5 Cl2 ', & ! index 674 - ' BrNO3 + H2O --> HOBr + HNO3 ', & ! index 675 - ' BrNO3 + HCl --> LOx + BrCl + HNO3 ', & ! index 676 - ' ClNO3 + H2O --> HNO3 + HOCl ', & ! index 677 - ' ClNO3 + HCl --> LOx + Cl2 + HNO3 ', & ! index 678 - ' ClNO3 + HBr --> LOx + BrCl + HNO3 ', & ! index 679 - ' ClNO3 + BrSALA --> LOx + BrCl + HNO3 ', & ! index 680 - ' ClNO3 + BrSALC --> LOx + BrCl + HNO3 ', & ! index 681 - ' ClNO3 + SALACL --> LOx + Cl2 + HNO3 ', & ! index 682 - ' ClNO3 + SALCCL --> LOx + Cl2 + HNO3 ', & ! index 683 - ' ClNO2 + SALACL --> LOx + HNO2 + Cl2 ', & ! index 684 - ' ClNO2 + SALCCL --> LOx + HNO2 + Cl2 ', & ! index 685 - ' ClNO2 + HCl --> LOx + HNO2 + Cl2 ', & ! index 686 - ' ClNO2 + BrSALA --> LOx + BrCl + HNO2 ', & ! index 687 - ' ClNO2 + BrSALC --> LOx + BrCl + HNO2 ', & ! index 688 - ' ClNO2 + HBr --> LOx + BrCl + HNO2 ', & ! index 689 - ' HOCl + HCl --> LOx + Cl2 + H2O ' /) ! index up to 690 + ' ClNO2 + BrSALA --> LOx + BrCl + HNO2 ', & ! index 661 + ' ClNO2 + BrSALC --> LOx + BrCl + HNO2 ', & ! index 662 + ' ClNO2 + HBr --> LOx + BrCl + HNO2 ', & ! index 663 + ' HOCl + HCl --> LOx + Cl2 + H2O ', & ! index 664 + ' HOCl + HBr --> LOx + BrCl + H2O ', & ! index 665 + ' HOCl + SALACL --> LOx + Cl2 + H2O ', & ! index 666 + ' HOCl + SALCCL --> LOx + Cl2 + H2O ', & ! index 667 + ' HOCl + SO2 --> LOx + PSO4 + SO4 + HCl ', & ! index 668 + ' HOBr + HBr --> LOx + Br2 + H2O ', & ! index 669 + ' HOBr + HCl --> LOx + BrCl + H2O ', & ! index 670 + ' HOBr + SALACL --> LOx + BrCl + H2O ', & ! index 671 + ' HOBr + SALCCL --> LOx + BrCl + H2O ', & ! index 672 + ' HOBr + BrSALA --> LOx + Br2 ', & ! index 673 + ' HOBr + BrSALC --> LOx + Br2 ', & ! index 674 + ' HOBr + SO2 --> LOx + PSO4 + SO4 + HBr ', & ! index 675 + ' O3 + HBr --> HOBr ', & ! index 676 + ' O3 + BrSALA --> HOBr ', & ! index 677 + ' BrSALC + O3 --> HOBr ', & ! index 678 + ' HBr --> BrSALA ', & ! index 679 + ' HBr --> BrSALC ', & ! index 680 + ' HI --> AERI ', & ! index 681 + ' HI --> ISALA ', & ! index 682 + ' HI --> ISALC ', & ! index 683 + ' HOI --> ISALA + LOx ', & ! index 684 + ' HOI --> ISALC + LOx ', & ! index 685 + ' I2O2 --> 2 AERI + 2 LOx ', & ! index 686 + ' I2O2 --> 2 ISALA + 2 LOx ', & ! index 687 + ' I2O2 --> 2 ISALC + 2 LOx ', & ! index 688 + ' I2O3 --> 2 AERI + 3 LOx ', & ! index 689 + ' I2O3 --> 2 ISALA + 3 LOx ' /) ! index up to 690 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_23 = (/ & - ' HOCl + HBr --> LOx + BrCl + H2O ', & ! index 691 - ' HOCl + SALACL --> LOx + Cl2 + H2O ', & ! index 692 - ' HOCl + SALCCL --> LOx + Cl2 + H2O ', & ! index 693 - ' HOCl + SO2 --> LOx + PSO4 + SO4 + HCl ', & ! index 694 - ' HOBr + HBr --> LOx + Br2 + H2O ', & ! index 695 - ' HOBr + HCl --> LOx + BrCl + H2O ', & ! index 696 - ' HOBr + SALACL --> LOx + BrCl + H2O ', & ! index 697 - ' HOBr + SALCCL --> LOx + BrCl + H2O ', & ! index 698 - ' HOBr + BrSALA --> LOx + Br2 ', & ! index 699 - ' HOBr + BrSALC --> LOx + Br2 ', & ! index 700 - ' HOBr + SO2 --> LOx + PSO4 + SO4 + HBr ', & ! index 701 - ' HBr + O3 --> HOBr ', & ! index 702 - ' BrSALA + O3 --> HOBr ', & ! index 703 - ' BrSALC + O3 --> HOBr ', & ! index 704 - ' HBr --> BrSALA ', & ! index 705 - ' HBr --> BrSALC ', & ! index 706 - ' HI --> AERI ', & ! index 707 - ' HI --> ISALA ', & ! index 708 - ' HI --> ISALC ', & ! index 709 - ' I2O2 --> 2 AERI + 2 LOx ', & ! index 710 - ' I2O2 --> 2 ISALA + 2 LOx ', & ! index 711 - ' I2O2 --> 2 ISALC + 2 LOx ', & ! index 712 - ' I2O3 --> 2 AERI + 3 LOx ', & ! index 713 - ' I2O3 --> 2 ISALA + 3 LOx ', & ! index 714 - ' I2O3 --> 2 ISALC + 3 LOx ', & ! index 715 - ' I2O4 --> 2 AERI + 4 LOx ', & ! index 716 - ' I2O4 --> 2 ISALA + 4 LOx ', & ! index 717 - ' I2O4 --> 2 ISALC + 4 LOx ', & ! index 718 - ' IONO2 + H2O --> HNO3 + HOI ', & ! index 719 - ' IONO + BrSALA --> LOx + IBr + HNO2 ' /) ! index up to 720 + ' I2O3 --> 2 ISALC + 3 LOx ', & ! index 691 + ' I2O4 --> 2 AERI + 4 LOx ', & ! index 692 + ' I2O4 --> 2 ISALA + 4 LOx ', & ! index 693 + ' I2O4 --> 2 ISALC + 4 LOx ', & ! index 694 + ' IONO --> ISALA + LOx + HNO2 ', & ! index 695 + ' IONO --> ISALC + LOx + HNO2 ', & ! index 696 + ' IONO2 --> ISALA + LOx + HNO3 ', & ! index 697 + ' IONO2 --> ISALC + LOx + HNO3 ', & ! index 698 + ' IONO2 + H2O --> HNO3 + HOI ', & ! index 699 + ' IONO + BrSALA --> LOx + IBr + HNO2 ', & ! index 700 + ' IONO + BrSALC --> LOx + IBr + HNO2 ', & ! index 701 + ' IONO + SALACL --> LOx + ICl + HNO2 ', & ! index 702 + ' IONO + SALCCL --> LOx + ICl + HNO2 ', & ! index 703 + ' IONO2 + BrSALA --> LOx + IBr + HNO3 ', & ! index 704 + ' IONO2 + BrSALC --> LOx + IBr + HNO3 ', & ! index 705 + ' IONO2 + SALACL --> LOx + ICl + HNO3 ', & ! index 706 + ' IONO2 + SALCCL --> LOx + ICl + HNO3 ', & ! index 707 + ' HOI + BrSALA --> LOx + IBr ', & ! index 708 + ' HOI + BrSALC --> LOx + IBr ', & ! index 709 + ' HOI + SALACL --> LOx + ICl ', & ! index 710 + ' HOI + SALCCL --> LOx + ICl ', & ! index 711 + ' GLYX --> SOAGX ', & ! index 712 + ' MGLY --> 1.5 SOAGX ', & ! index 713 + ' IEPOXA --> SOAIE ', & ! index 714 + ' IEPOXB --> SOAIE ', & ! index 715 + ' IEPOXD --> SOAIE ', & ! index 716 + ' LVOC --> LVOCOA ', & ! index 717 + ' MVKN --> LOx + IONITA ', & ! index 718 + ' R4N2 --> LOx + IONITA ', & ! index 719 + ' MONITS --> LOx + MONITA ' /) ! index up to 720 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_24 = (/ & - ' IONO + BrSALC --> LOx + IBr + HNO2 ', & ! index 721 - ' IONO + SALACL --> LOx + ICl + HNO2 ', & ! index 722 - ' IONO + SALCCL --> LOx + ICl + HNO2 ', & ! index 723 - ' IONO2 + BrSALA --> LOx + IBr + HNO3 ', & ! index 724 - ' IONO2 + BrSALC --> LOx + IBr + HNO3 ', & ! index 725 - ' IONO2 + SALACL --> LOx + ICl + HNO3 ', & ! index 726 - ' IONO2 + SALCCL --> LOx + ICl + HNO3 ', & ! index 727 - ' HOI + BrSALA --> LOx + IBr ', & ! index 728 - ' HOI + BrSALC --> LOx + IBr ', & ! index 729 - ' HOI + SALACL --> LOx + ICl ', & ! index 730 - ' HOI + SALCCL --> LOx + ICl ', & ! index 731 - ' GLYX --> SOAGX ', & ! index 732 - ' MGLY --> SOAGX ', & ! index 733 - ' IEPOXA --> SOAIE ', & ! index 734 - ' IEPOXB --> SOAIE ', & ! index 735 - ' IEPOXD --> SOAIE ', & ! index 736 - ' LVOC --> LVOCOA ', & ! index 737 - ' MVKN --> LOx + IONITA ', & ! index 738 - ' R4N2 --> LOx + IONITA ', & ! index 739 - ' MONITS --> LOx + MONITA ', & ! index 740 - ' MONITU --> LOx + MONITA ', & ! index 741 - ' HONIT --> LOx + MONITA ', & ! index 742 - ' PYAC --> SOAGX ', & ! index 743 - ' HMML --> SOAIE ', & ! index 744 - ' IHN1 --> LOx + IONITA ', & ! index 745 - ' IHN2 --> LOx + IONITA ', & ! index 746 - ' IHN3 --> LOx + IONITA ', & ! index 747 - ' IHN4 --> LOx + IONITA ', & ! index 748 - ' ICHE --> SOAIE ', & ! index 749 - ' INPD --> LOx + IONITA ' /) ! index up to 750 + ' MONITU --> LOx + MONITA ', & ! index 721 + ' HONIT --> LOx + MONITA ', & ! index 722 + ' PYAC --> 1.5 SOAGX ', & ! index 723 + ' HMML --> 0.8 SOAIE ', & ! index 724 + ' IHN1 --> LOx + IONITA ', & ! index 725 + ' IHN2 --> LOx + IONITA ', & ! index 726 + ' IHN3 --> LOx + IONITA ', & ! index 727 + ' IHN4 --> LOx + IONITA ', & ! index 728 + ' ICHE --> SOAIE ', & ! index 729 + ' INPD --> LOx + IONITA ', & ! index 730 + ' INPB --> LOx + IONITA ', & ! index 731 + ' IDN --> 2 LOx + IONITA ', & ! index 732 + ' ITCN --> LOx + IONITA ', & ! index 733 + ' ITHN --> LOx + IONITA ', & ! index 734 + ' MCRHNB --> LOx + IONITA ', & ! index 735 + ' MCRHN --> LOx + IONITA ', & ! index 736 + ' NPHEN --> AONITA ', & ! index 737 + ' O3 --> O + O2 ', & ! index 738 + ' O3 --> O1D + O2 ', & ! index 739 + ' O2 --> 2 POx + 2 O ', & ! index 740 + ' NO2 --> NO + O ', & ! index 741 + ' H2O2 --> 2 OH ', & ! index 742 + ' MP --> CH2O + HO2 + OH ', & ! index 743 + ' CH2O --> PCO + H + CO + HO2 ', & ! index 744 + ' CH2O --> PCO + CO + H2 ', & ! index 745 + ' HNO3 --> OH + NO2 ', & ! index 746 + ' HNO2 --> NO + OH ', & ! index 747 + ' HNO4 --> POx + NO3 + OH ', & ! index 748 + ' HNO4 --> HO2 + NO2 ', & ! index 749 + ' NO3 --> O + NO2 ' /) ! index up to 750 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_25 = (/ & - ' INPB --> LOx + IONITA ', & ! index 751 - ' IDN --> 2 LOx + IONITA ', & ! index 752 - ' ITCN --> LOx + IONITA ', & ! index 753 - ' ITHN --> LOx + IONITA ', & ! index 754 - ' MCRHNB --> LOx + IONITA ', & ! index 755 - ' MCRHN --> LOx + IONITA ', & ! index 756 - ' NPHEN --> AONITA ', & ! index 757 - ' O3 --> O + O2 ', & ! index 758 - ' O3 --> O1D + O2 ', & ! index 759 - ' O2 --> 2 POx + 2 O ', & ! index 760 - ' NO2 --> NO + O ', & ! index 761 - ' H2O2 --> 2 OH ', & ! index 762 - ' MP --> CH2O + OH + HO2 ', & ! index 763 - ' CH2O --> PCO + H + CO + HO2 ', & ! index 764 - ' CH2O --> PCO + CO + H2 ', & ! index 765 - ' HNO3 --> OH + NO2 ', & ! index 766 - ' HNO2 --> OH + NO ', & ! index 767 - ' HNO4 --> POx + OH + NO3 ', & ! index 768 - ' HNO4 --> NO2 + HO2 ', & ! index 769 - ' NO3 --> NO2 + O ', & ! index 770 - ' NO3 --> 2 LOx + NO + O2 ', & ! index 771 - ' N2O5 --> NO2 + NO3 ', & ! index 772 - ' ALD2 --> 0.88 PCO + 0.12 MCO3 + 0.88 CO + 0.88 MO2 + HO2 ', & ! index 773 - ' ALD2 --> PCO + CH4 + CO ', & ! index 774 - ' PAN --> 0.3 POx + 0.7 MCO3 + 0.3 MO2 + 0.7 NO2 + 0.3 NO3 ', & ! index 775 - ' RCHO --> PCO + 0.07 A3O2 + 0.5 OTHRO2 + 0.27 B3O2 + CO + HO2 ', & ! index 776 - ' ACET --> MCO3 + MO2 ', & ! index 777 - ' ACET --> PCO + CO + 2 MO2 ', & ! index 778 - ' MEK --> 0.06 A3O2 + 0.425 OTHRO2 + 0.15 RCO3 + 0.23 B3O2 + 0.85 MCO3 + 0.15 MO2 ', & ! index 779 - ' GLYC --> PCO + 0.1 MOH + CO + 0.9 CH2O + 0.07 OH + 1.73 HO2 ' /) ! index up to 780 + ' NO3 --> 2 LOx + NO + O2 ', & ! index 751 + ' N2O5 --> NO3 + NO2 ', & ! index 752 + ' ALD2 --> 0.88 PCO + 0.12 MCO3 + 0.88 MO2 + 0.88 CO + HO2 ', & ! index 753 + ' ALD2 --> PCO + CH4 + CO ', & ! index 754 + ' PAN --> 0.3 CO2 + 0.3 POx + 0.7 MCO3 + 0.3 MO2 + 0.3 NO3 + 0.7 NO2 ', & ! index 755 + ' RCHO --> PCO + 0.07 A3O2 + 0.49 OTHRO2 + 0.27 B3O2 + CO + HO2 ', & ! index 756 + ' ACET --> MCO3 + MO2 ', & ! index 757 + ' ACET --> PCO + 2 MO2 + CO ', & ! index 758 + ' MEK --> 0.06 A3O2 + 0.415 OTHRO2 + 0.15 RCO3 + 0.23 B3O2 + 0.85 MCO3 + 0.15 MO2 ', & ! index 759 + ' GLYC --> PCO + 0.1 MOH + 0.9 CH2O + CO + 1.73 HO2 + 0.07 OH ', & ! index 760 + ' GLYX --> 2 PCO + 2 CO + 2 HO2 ', & ! index 761 + ' GLYX --> 2 PCO + 2 CO + H2 ', & ! index 762 + ' GLYX --> PCO + CH2O + CO ', & ! index 763 + ' MGLY --> PCO + MCO3 + CO + HO2 ', & ! index 764 + ' MVK --> PCO + PRPE + CO ', & ! index 765 + ' MVK --> PCO + MCO3 + CH2O + CO + HO2 ', & ! index 766 + ' MVK --> RCO3 + MO2 ', & ! index 767 + ' MACR --> PCO + MCO3 + CH2O + CO + HO2 ', & ! index 768 + ' HAC --> MCO3 + CH2O + HO2 ', & ! index 769 + ' PRPN --> RCHO + HO2 + OH + NO2 ', & ! index 770 + ' ETP --> ALD2 + HO2 + OH ', & ! index 771 + ' RA3P --> RCHO + HO2 + OH ', & ! index 772 + ' RB3P --> ACET + HO2 + OH ', & ! index 773 + ' R4P --> 1.5 RCHO + HO2 + OH ', & ! index 774 + ' PP --> CH2O + ALD2 + HO2 + OH ', & ! index 775 + ' RP --> ALD2 + MO2 + HO2 + OH ', & ! index 776 + ' R4N2 --> 0.34 ACET + 0.19 MEK + 0.05 A3O2 + 0.34 OTHRO2 + 0.19 B3O2 + 0.15 RCHO... etc.', & ! index 777 + ' MAP --> CO2 + MO2 + OH ', & ! index 778 + ' Br2 --> 2 Br ', & ! index 779 + ' BrO --> Br + O ' /) ! index up to 780 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_26 = (/ & - ' GLYX --> 2 PCO + 2 CO + 2 HO2 ', & ! index 781 - ' GLYX --> 2 PCO + 2 CO + H2 ', & ! index 782 - ' GLYX --> PCO + CO + CH2O ', & ! index 783 - ' MGLY --> PCO + MCO3 + CO + HO2 ', & ! index 784 - ' MVK --> PCO + PRPE + CO ', & ! index 785 - ' MVK --> PCO + MCO3 + CO + CH2O + HO2 ', & ! index 786 - ' MVK --> RCO3 + MO2 ', & ! index 787 - ' MACR --> PCO + MCO3 + CO + CH2O + HO2 ', & ! index 788 - ' HAC --> MCO3 + CH2O + HO2 ', & ! index 789 - ' PRPN --> RCHO + OH + NO2 + HO2 ', & ! index 790 - ' ETP --> ALD2 + OH + HO2 ', & ! index 791 - ' RA3P --> RCHO + OH + HO2 ', & ! index 792 - ' RB3P --> ACET + OH + HO2 ', & ! index 793 - ' R4P --> RCHO + OH + HO2 ', & ! index 794 - ' PP --> ALD2 + CH2O + OH + HO2 ', & ! index 795 - ' RP --> ALD2 + OH + HO2 ', & ! index 796 - ' R4N2 --> 0.32 ACET + 0.19 MEK + 0.05 A3O2 + 0.32 OTHRO2 + 0.18 B3O2 + 0.13 RCHO... etc.', & ! index 797 - ' MAP --> MO2 + OH ', & ! index 798 - ' Br2 --> 2 Br ', & ! index 799 - ' BrO --> Br + O ', & ! index 800 - ' HOBr --> LOx + OH + Br ', & ! index 801 - ' BrNO3 --> Br + NO3 ', & ! index 802 - ' BrNO3 --> NO2 + BrO ', & ! index 803 - ' BrNO2 --> NO2 + Br ', & ! index 804 - ' CHBr3 --> 3 Br ', & ! index 805 - ' CH2Br2 --> 2 Br ', & ! index 806 - ' CH3Br --> MO2 + Br ', & ! index 807 - ' CH3Cl --> MO2 + Cl ', & ! index 808 - ' CH2Cl2 --> 2 Cl ', & ! index 809 - ' BrCl --> Br + Cl ' /) ! index up to 810 + ' HOBr --> LOx + Br + OH ', & ! index 781 + ' BrNO3 --> Br + NO3 ', & ! index 782 + ' BrNO3 --> BrO + NO2 ', & ! index 783 + ' BrNO2 --> Br + NO2 ', & ! index 784 + ' CHBr3 --> 3 Br ', & ! index 785 + ' CH2Br2 --> 2 Br ', & ! index 786 + ' CH3Br --> MO2 + Br ', & ! index 787 + ' CH3Cl --> MO2 + Cl ', & ! index 788 + ' CH2Cl2 --> 2 Cl ', & ! index 789 + ' BrCl --> Br + Cl ', & ! index 790 + ' Cl2 --> 2 Cl ', & ! index 791 + ' ClO --> O + Cl ', & ! index 792 + ' OClO --> ClO + O ', & ! index 793 + ' Cl2O2 --> 2 LOx + ClOO + Cl ', & ! index 794 + ' ClNO2 --> Cl + NO2 ', & ! index 795 + ' ClNO3 --> NO3 + Cl ', & ! index 796 + ' ClNO3 --> ClO + NO2 ', & ! index 797 + ' HOCl --> LOx + OH + Cl ', & ! index 798 + ' CH3CCl3 --> 3 Cl ', & ! index 799 + ' CCl4 --> 4 Cl ', & ! index 800 + ' CFC11 --> 3 Cl ', & ! index 801 + ' CFC12 --> 2 Cl ', & ! index 802 + ' CFC113 --> 3 Cl ', & ! index 803 + ' CFC114 --> 2 Cl ', & ! index 804 + ' CFC115 --> Cl ', & ! index 805 + ' HCFC123 --> 2 Cl ', & ! index 806 + ' HCFC141b --> 2 Cl ', & ! index 807 + ' HCFC142b --> Cl ', & ! index 808 + ' HCFC22 --> Cl ', & ! index 809 + ' H1301 --> Br ' /) ! index up to 810 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_27 = (/ & - ' Cl2 --> 2 Cl ', & ! index 811 - ' ClO --> O + Cl ', & ! index 812 - ' OClO --> ClO + O ', & ! index 813 - ' Cl2O2 --> 2 LOx + ClOO + Cl ', & ! index 814 - ' ClNO2 --> NO2 + Cl ', & ! index 815 - ' ClNO3 --> Cl + NO3 ', & ! index 816 - ' ClNO3 --> NO2 + ClO ', & ! index 817 - ' HOCl --> LOx + OH + Cl ', & ! index 818 - ' CH3CCl3 --> 3 Cl ', & ! index 819 - ' CCl4 --> 4 Cl ', & ! index 820 - ' CFC11 --> 3 Cl ', & ! index 821 - ' CFC12 --> 2 Cl ', & ! index 822 - ' CFC113 --> 3 Cl ', & ! index 823 - ' CFC114 --> 2 Cl ', & ! index 824 - ' CFC115 --> Cl ', & ! index 825 - ' HCFC123 --> 2 Cl ', & ! index 826 - ' HCFC141b --> 2 Cl ', & ! index 827 - ' HCFC142b --> Cl ', & ! index 828 - ' HCFC22 --> Cl ', & ! index 829 - ' H1301 --> Br ', & ! index 830 - ' H1211 --> Br + Cl ', & ! index 831 - ' H2402 --> 2 Br ', & ! index 832 - ' ClOO --> Cl + O2 ', & ! index 833 - ' I2 --> 2 I ', & ! index 834 - ' HOI --> LOx + I + OH ', & ! index 835 - ' IO --> I + O ', & ! index 836 - ' OIO --> 2 LOx + I + O2 ', & ! index 837 - ' INO --> I + NO ', & ! index 838 - ' IONO --> I + NO2 ', & ! index 839 - ' IONO2 --> I + NO3 ' /) ! index up to 840 + ' H1211 --> Br + Cl ', & ! index 811 + ' H2402 --> 2 Br ', & ! index 812 + ' ClOO --> Cl + O2 ', & ! index 813 + ' I2 --> 2 I ', & ! index 814 + ' HOI --> LOx + I + OH ', & ! index 815 + ' IO --> I + O ', & ! index 816 + ' OIO --> 2 LOx + I + O2 ', & ! index 817 + ' INO --> I + NO ', & ! index 818 + ' IONO --> I + NO2 ', & ! index 819 + ' IONO2 --> I + NO3 ', & ! index 820 + ' I2O2 --> OIO + I ', & ! index 821 + ' CH3I --> I ', & ! index 822 + ' CH2I2 --> 2 I ', & ! index 823 + ' CH2ICl --> I + Cl ', & ! index 824 + ' CH2IBr --> I + Br ', & ! index 825 + ' I2O4 --> 2 OIO ', & ! index 826 + ' I2O3 --> OIO + IO ', & ! index 827 + ' IBr --> I + Br ', & ! index 828 + ' ICl --> I + Cl ', & ! index 829 + ' MPN --> POx + CH2O + NO3 + HO2 ', & ! index 830 + ' MPN --> MO2 + NO2 ', & ! index 831 + ' ATOOH --> MCO3 + CH2O + OH ', & ! index 832 + ' N2O --> POx + O1D + N2 ', & ! index 833 + ' OCS --> PCO + CO + SO2 ', & ! index 834 + ' SO4 --> SO2 + 2 OH ', & ! index 835 + ' NO --> POx + N + O ', & ! index 836 + ' PIP --> RCHO + HO2 + OH ', & ! index 837 + ' ETHLN --> PCO + CH2O + CO + HO2 + NO2 ', & ! index 838 + ' MONITS --> MEK + NO2 ', & ! index 839 + ' MONITU --> RCHO + NO2 ' /) ! index up to 840 CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_28 = (/ & - ' I2O2 --> OIO + I ', & ! index 841 - ' CH3I --> I ', & ! index 842 - ' CH2I2 --> 2 I ', & ! index 843 - ' CH2ICl --> I + Cl ', & ! index 844 - ' CH2IBr --> I + Br ', & ! index 845 - ' I2O4 --> 2 OIO ', & ! index 846 - ' I2O3 --> OIO + IO ', & ! index 847 - ' IBr --> I + Br ', & ! index 848 - ' ICl --> I + Cl ', & ! index 849 - ' MPN --> POx + CH2O + HO2 + NO3 ', & ! index 850 - ' MPN --> MO2 + NO2 ', & ! index 851 - ' ATOOH --> MCO3 + CH2O + OH ', & ! index 852 - ' N2O --> POx + O1D + N2 ', & ! index 853 - ' OCS --> PCO + CO + SO2 ', & ! index 854 - ' SO4 --> 2 OH + SO2 ', & ! index 855 - ' NO --> POx + N + O ', & ! index 856 - ' PIP --> RCHO + OH + HO2 ', & ! index 857 - ' ETHLN --> PCO + CO + CH2O + NO2 + HO2 ', & ! index 858 - ' MONITS --> MEK + NO2 ', & ! index 859 - ' MONITU --> RCHO + NO2 ', & ! index 860 - ' HONIT --> HAC + NO2 ', & ! index 861 - ' NITs --> HNO2 ', & ! index 862 - ' NITs --> POx + NO2 ', & ! index 863 - ' NIT --> HNO2 ', & ! index 864 - ' NIT --> POx + NO2 ', & ! index 865 - ' MENO3 --> POx + CH2O + NO2 + HO2 ', & ! index 866 - ' ETNO3 --> POx + ALD2 + NO2 + HO2 ', & ! index 867 - ' IPRNO3 --> POx + ACET + NO2 + HO2 ', & ! index 868 - ' NPRNO3 --> POx + RCHO + NO2 + HO2 ', & ! index 869 - ' HMHP --> CH2O + 2 OH ' /) ! index up to 870 - CHARACTER(LEN=100), PARAMETER, DIMENSION(30) :: EQN_NAMES_29 = (/ & - ' HPETHNL --> PCO + CO + CH2O + OH + HO2 ', & ! index 871 - ' PYAC --> CO2 + MCO3 + HO2 ', & ! index 872 - ' PROPNN --> MCO3 + CH2O + NO2 ', & ! index 873 - ' MVKHC --> PCO + MCO3 + CO + CH2O + HO2 ', & ! index 874 - ' MVKHCB --> 0.5 PCO + 0.5 GLYX + 0.5 MGLY + 0.5 MCO3 + 0.5 CO + 1.5 HO2 ', & ! index 875 - ' MVKHP --> 0.47 MGLY + 0.53 GLYC + 0.53 MCO3 + 0.47 CH2O + OH + 0.47 HO2 ', & ! index 876 - ' MVKPC --> 0.571 PCO + 0.429 GLYX + 0.571 MGLY + 0.429 MCO3 + 0.571 CO + OH + 0.571 HO2 ', & ! index 877 - ' MCRENOL --> 0.875 PCO + 0.75 PYAC + 0.125 GLYX + 0.125 MGLY + 0.125 MCO3 + 0.875 C... etc.', & ! index 878 - ' MCRHP --> 0.77 PCO + 0.23 MGLY + 0.77 HAC + 0.77 CO + 0.23 CH2O + OH + HO2 ', & ! index 879 - ' MACR1OOH --> 1.238 CO2 + 0.25 MACR1OOH + 0.262 MCO3 + 0.75 CH2O + 0.488 MO2 + 0.75 OH ', & ! index 880 - ' MVKN --> 0.3 ETHLN + 0.69 GLYC + 1.01 MCO3 + 0.01 OH + 0.7 NO2 + 0.29 HO2 ', & ! index 881 - ' MCRHN --> PCO + HAC + CO + NO2 + HO2 ', & ! index 882 - ' MCRHNB --> PCO + PROPNN + CO + OH + HO2 ', & ! index 883 - ' RIPA --> MVK + CH2O + OH + HO2 ', & ! index 884 - ' RIPB --> MACR + CH2O + OH + HO2 ', & ! index 885 - ' RIPC --> HC5A + OH + HO2 ', & ! index 886 - ' RIPD --> HC5A + OH + HO2 ', & ! index 887 - ' HPALD1 --> 0.888 PCO + 0.112 IDC + 0.224 C4HVP1 + 0.112 MVKPC + 0.552 MCRENOL + 0... etc.', & ! index 888 - ' HPALD2 --> 0.818 PCO + 0.182 IDC + 0.182 C4HVP2 + 0.182 MVKPC + 0.455 MCRENOL + 0... etc.', & ! index 889 - ' HPALD3 --> PCO + MVK + CO + OH + HO2 ', & ! index 890 - ' HPALD4 --> PCO + MACR + CO + OH + HO2 ', & ! index 891 - ' IHN1 --> 0.55 PCO + 0.45 HC5A + 0.55 MVKHP + 0.55 CO + 0.55 OH + NO2 + 0.45 HO2 ', & ! index 892 - ' IHN2 --> MVK + CH2O + NO2 + HO2 ', & ! index 893 - ' IHN3 --> MACR + CH2O + NO2 + HO2 ', & ! index 894 - ' IHN4 --> 0.55 PCO + 0.45 HC5A + 0.55 MCRHP + 0.55 CO + 0.55 OH + NO2 + 0.45 HO2 ', & ! index 895 - ' INPB --> 0.903 MVK + 0.097 MACR + CH2O + 0.67 OH + NO2 + 0.33 HO2 ', & ! index 896 - ' INPD --> 0.841 INA + 0.159 ICN + OH + 0.159 HO2 ', & ! index 897 - ' INPD --> 0.841 IHOO1 + 0.159 IHOO4 + NO2 ', & ! index 898 - ' ICN --> 0.839 PCO + 0.161 IDC + 0.068 C4HVP1 + 0.128 C4HVP2 + 0.162 MVKPC + 0.... etc.', & ! index 899 - ' IDN --> 0.01 POx + 0.227 INA + 0.5 GLYC + 0.228 ICN + 0.05 MVK + 0.5 HAC + 0.0... etc.' /) ! index up to 900 - CHARACTER(LEN=100), PARAMETER, DIMENSION(14) :: EQN_NAMES_30 = (/ & - ' ICPDH --> PCO + 0.35 MVKDH + 0.15 MCRDH + 0.5 MCRHP + CO + 0.5 OH + 1.5 HO2 ', & ! index 901 - ' ICPDH --> 0.122 PCO + 0.122 MCRDH + 0.1 MVKHCB + 0.438 GLYX + 0.088 MGLY + 0.088... etc.', & ! index 902 - ' IDHDP --> 0.75 ICPDH + 0.25 GLYC + 0.25 HAC + 1.25 OH + 0.75 HO2 ', & ! index 903 - ' IDHPE --> 0.571 GLYX + 0.429 MGLY + 0.429 GLYC + 0.571 HAC + OH + HO2 ', & ! index 904 - ' IDCHP --> PCO + 0.454 MVKPC + 0.391 MVKHC + 0.155 MVKHCB + CO + 0.546 OH + 1.454 HO2 ', & ! index 905 - ' ITHN --> 0.5 MCRHN + 0.15 ETHLN + 0.3 GLYC + 0.05 MVKN + 0.45 HAC + 0.55 CH2O +... etc.', & ! index 906 - ' ITHN --> 0.5 HPETHNL + 0.05 ATOOH + 0.15 MCRHP + 0.35 GLYC + 0.8 HAC + 0.15 CH2... etc.', & ! index 907 - ' ITCN --> MGLY + GLYC + OH + NO2 ', & ! index 908 - ' ITCN --> PCO + 0.5 MVKHP + 0.5 MCRHP + CO + NO2 + HO2 ', & ! index 909 - ' ETHP --> ETO + OH ', & ! index 910 - ' BALD --> PCO + BENZO2 + CO + HO2 ', & ! index 911 - ' BZCO3H --> CO2 + BENZO2 + OH ', & ! index 912 - ' BENZP --> BENZO ', & ! index 913 - ' NPHEN --> CO2 + PCO + AROMP4 + HNO2 + CO + HO2 ' /) ! index up to 914 - CHARACTER(LEN=100), PARAMETER, DIMENSION(914) :: EQN_NAMES = (/& + ' HONIT --> HAC + NO2 ', & ! index 841 + ' NITs --> LOx + HNO2 ', & ! index 842 + ' NITs --> NO2 ', & ! index 843 + ' NIT --> LOx + HNO2 ', & ! index 844 + ' NIT --> NO2 ', & ! index 845 + ' MENO3 --> POx + CH2O + HO2 + NO2 ', & ! index 846 + ' ETNO3 --> POx + ALD2 + HO2 + NO2 ', & ! index 847 + ' IPRNO3 --> POx + ACET + HO2 + NO2 ', & ! index 848 + ' NPRNO3 --> POx + RCHO + HO2 + NO2 ', & ! index 849 + ' HMHP --> CH2O + 2 OH ', & ! index 850 + ' HPETHNL --> PCO + CH2O + CO + HO2 + OH ', & ! index 851 + ' PYAC --> CO2 + MCO3 + HO2 ', & ! index 852 + ' PROPNN --> MCO3 + CH2O + NO2 ', & ! index 853 + ' MVKHC --> PCO + MCO3 + CH2O + CO + HO2 ', & ! index 854 + ' MVKHCB --> 0.5 PCO + 0.5 GLYX + 0.5 MGLY + 0.5 MCO3 + 0.5 CO + 1.5 HO2 ', & ! index 855 + ' MVKHP --> 0.47 MGLY + 0.53 GLYC + 0.53 MCO3 + 0.47 CH2O + 0.47 HO2 + OH ', & ! index 856 + ' MVKPC --> 0.571 PCO + 0.429 GLYX + 0.571 MGLY + 0.429 MCO3 + 0.571 CO + 0.571 HO2 + OH ', & ! index 857 + ' MCRENOL --> 0.875 PCO + 0.75 PYAC + 0.125 GLYX + 0.125 MGLY + 0.125 MCO3 + 0.875 C... etc.', & ! index 858 + ' MCRHP --> 0.77 PCO + 0.23 MGLY + 0.77 HAC + 0.23 CH2O + 0.77 CO + HO2 + OH ', & ! index 859 + ' MACR1OOH --> 1.238 CO2 + 0.25 MACR1OOH + 0.262 MCO3 + 0.75 CH2O + 0.488 MO2 + 0.75 OH ', & ! index 860 + ' MVKN --> 0.3 ETHLN + 0.69 GLYC + 1.01 MCO3 + 0.29 HO2 + 0.01 OH + 0.7 NO2 ', & ! index 861 + ' MCRHN --> PCO + HAC + CO + HO2 + NO2 ', & ! index 862 + ' MCRHNB --> PCO + PROPNN + CO + HO2 + OH ', & ! index 863 + ' RIPA --> MVK + CH2O + HO2 + OH ', & ! index 864 + ' RIPB --> MACR + CH2O + HO2 + OH ', & ! index 865 + ' RIPC --> HC5A + HO2 + OH ', & ! index 866 + ' RIPD --> HC5A + HO2 + OH ', & ! index 867 + ' HPALD1 --> 0.888 PCO + 0.112 IDC + 0.224 C4HVP1 + 0.112 MVKPC + 0.552 MCRENOL + 0... etc.', & ! index 868 + ' HPALD2 --> 0.818 PCO + 0.182 IDC + 0.182 C4HVP2 + 0.182 MVKPC + 0.454 MCRENOL + 0... etc.', & ! index 869 + ' HPALD3 --> PCO + MVK + CO + HO2 + OH ' /) ! index up to 870 + CHARACTER(LEN=100), PARAMETER, DIMENSION(24) :: EQN_NAMES_29 = (/ & + ' HPALD4 --> PCO + MACR + CO + HO2 + OH ', & ! index 871 + ' IHN1 --> 0.55 PCO + 0.45 HC5A + 0.55 MVKHP + 0.55 CO + 0.45 HO2 + 0.55 OH + NO2 ', & ! index 872 + ' IHN2 --> MVK + CH2O + HO2 + NO2 ', & ! index 873 + ' IHN3 --> MACR + CH2O + HO2 + NO2 ', & ! index 874 + ' IHN4 --> 0.55 PCO + 0.45 HC5A + 0.55 MCRHP + 0.55 CO + 0.45 HO2 + 0.55 OH + NO2 ', & ! index 875 + ' INPB --> 0.903 MVK + 0.097 MACR + CH2O + 0.33 HO2 + 0.67 OH + NO2 ', & ! index 876 + ' INPD --> 0.841 INA + 0.159 ICN + 0.159 HO2 + OH ', & ! index 877 + ' INPD --> 0.159 IHOO4 + 0.841 IHOO1 + NO2 ', & ! index 878 + ' ICN --> 0.839 PCO + 0.161 IDC + 0.068 C4HVP1 + 0.128 C4HVP2 + 0.162 MVKPC + 0.... etc.', & ! index 879 + ' IDN --> 0.222 INA + 0.5 GLYC + 0.223 ICN + 0.05 MVK + 0.5 HAC + 0.005 MACR + 0... etc.', & ! index 880 + ' ICPDH --> PCO + 0.35 MVKDH + 0.15 MCRDH + 0.5 MCRHP + CO + 1.5 HO2 + 0.5 OH ', & ! index 881 + ' ICPDH --> 0.163 PCO + 0.163 MCRDH + 0.133 MVKHCB + 0.586 GLYX + 0.118 MGLY + 0.1... etc.', & ! index 882 + ' IDHDP --> 0.75 ICPDH + 0.25 GLYC + 0.25 HAC + 0.75 HO2 + 1.25 OH ', & ! index 883 + ' IDHPE --> 0.571 GLYX + 0.429 MGLY + 0.429 GLYC + 0.571 HAC + HO2 + OH ', & ! index 884 + ' IDCHP --> PCO + 0.454 MVKPC + 0.391 MVKHC + 0.155 MVKHCB + CO + 1.454 HO2 + 0.546 OH ', & ! index 885 + ' ITHN --> 0.5 MCRHN + 0.15 ETHLN + 0.3 GLYC + 0.05 MVKN + 0.45 HAC + 0.55 CH2O +... etc.', & ! index 886 + ' ITHN --> 0.5 HPETHNL + 0.05 ATOOH + 0.15 MCRHP + 0.35 GLYC + 0.8 HAC + 0.15 CH2... etc.', & ! index 887 + ' ITCN --> MGLY + GLYC + OH + NO2 ', & ! index 888 + ' ITCN --> PCO + 0.5 MVKHP + 0.5 MCRHP + CO + HO2 + NO2 ', & ! index 889 + ' ETHP --> ETO + OH ', & ! index 890 + ' BALD --> PCO + BENZO2 + CO + HO2 ', & ! index 891 + ' BZCO3H --> CO2 + BENZO2 + OH ', & ! index 892 + ' BENZP --> BENZO ', & ! index 893 + ' NPHEN --> CO2 + PCO + AROMP4 + HNO2 + CO + HO2 ' /) ! index up to 894 + CHARACTER(LEN=100), PARAMETER, DIMENSION(894) :: EQN_NAMES = (/& EQN_NAMES_0, EQN_NAMES_1, EQN_NAMES_2, EQN_NAMES_3, EQN_NAMES_4, & EQN_NAMES_5, EQN_NAMES_6, EQN_NAMES_7, EQN_NAMES_8, EQN_NAMES_9, & EQN_NAMES_10, EQN_NAMES_11, EQN_NAMES_12, EQN_NAMES_13, EQN_NAMES_14, & EQN_NAMES_15, EQN_NAMES_16, EQN_NAMES_17, EQN_NAMES_18, EQN_NAMES_19, & EQN_NAMES_20, EQN_NAMES_21, EQN_NAMES_22, EQN_NAMES_23, EQN_NAMES_24, & - EQN_NAMES_25, EQN_NAMES_26, EQN_NAMES_27, EQN_NAMES_28, EQN_NAMES_29, & - EQN_NAMES_30 /) + EQN_NAMES_25, EQN_NAMES_26, EQN_NAMES_27, EQN_NAMES_28, EQN_NAMES_29 /) CHARACTER(LEN=32), PARAMETER, DIMENSION(7) :: FAM_NAMES = (/ & 'POx ','LOx ','PCO ', & ! index 1 - 3 diff --git a/KPP/fullchem/gckpp_Parameters.F90 b/KPP/fullchem/gckpp_Parameters.F90 index c115a447d..841054377 100644 --- a/KPP/fullchem/gckpp_Parameters.F90 +++ b/KPP/fullchem/gckpp_Parameters.F90 @@ -2,7 +2,7 @@ ! ! Parameter Module File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) @@ -31,27 +31,27 @@ MODULE gckpp_Parameters ! NSPEC - Number of chemical species - INTEGER, PARAMETER :: NSPEC = 291 + INTEGER, PARAMETER :: NSPEC = 295 ! NVAR - Number of Variable species - INTEGER, PARAMETER :: NVAR = 287 + INTEGER, PARAMETER :: NVAR = 291 ! NFAM - Number of Prod/Loss Families INTEGER, PARAMETER :: NFAM = 7 ! NVARACT - Number of Active species - INTEGER, PARAMETER :: NVARACT = 259 + INTEGER, PARAMETER :: NVARACT = 260 ! NFIX - Number of Fixed species INTEGER, PARAMETER :: NFIX = 4 ! NREACT - Number of reactions - INTEGER, PARAMETER :: NREACT = 914 + INTEGER, PARAMETER :: NREACT = 894 ! NVARST - Starting of variables in conc. vect. INTEGER, PARAMETER :: NVARST = 1 ! NFIXST - Starting of fixed in conc. vect. - INTEGER, PARAMETER :: NFIXST = 288 + INTEGER, PARAMETER :: NFIXST = 292 ! NONZERO - Number of nonzero entries in Jacobian - INTEGER, PARAMETER :: NONZERO = 3489 + INTEGER, PARAMETER :: NONZERO = 3542 ! LU_NONZERO - Number of nonzero entries in LU factoriz. of Jacobian - INTEGER, PARAMETER :: LU_NONZERO = 4581 + INTEGER, PARAMETER :: LU_NONZERO = 4631 ! CNVAR - (NVAR+1) Number of elements in compressed row format - INTEGER, PARAMETER :: CNVAR = 288 + INTEGER, PARAMETER :: CNVAR = 292 ! NLOOKAT - Number of species to look at INTEGER, PARAMETER :: NLOOKAT = 0 ! NMONITOR - Number of species to monitor @@ -67,296 +67,300 @@ MODULE gckpp_Parameters INTEGER, PARAMETER :: ind_CH2ICl = 3 INTEGER, PARAMETER :: ind_AERI = 4 INTEGER, PARAMETER :: ind_AONITA = 5 - INTEGER, PARAMETER :: ind_CO2 = 6 - INTEGER, PARAMETER :: ind_INDIOL = 7 - INTEGER, PARAMETER :: ind_ISALA = 8 - INTEGER, PARAMETER :: ind_ISALC = 9 - INTEGER, PARAMETER :: ind_LBRO2H = 10 - INTEGER, PARAMETER :: ind_LBRO2N = 11 - INTEGER, PARAMETER :: ind_BRO2 = 12 - INTEGER, PARAMETER :: ind_LISOPOH = 13 - INTEGER, PARAMETER :: ind_LISOPNO3 = 14 - INTEGER, PARAMETER :: ind_LNRO2H = 15 - INTEGER, PARAMETER :: ind_LNRO2N = 16 - INTEGER, PARAMETER :: ind_NRO2 = 17 - INTEGER, PARAMETER :: ind_NAP = 18 - INTEGER, PARAMETER :: ind_LTRO2H = 19 - INTEGER, PARAMETER :: ind_LTRO2N = 20 - INTEGER, PARAMETER :: ind_TRO2 = 21 - INTEGER, PARAMETER :: ind_LVOCOA = 22 - INTEGER, PARAMETER :: ind_LVOC = 23 - INTEGER, PARAMETER :: ind_LXRO2H = 24 - INTEGER, PARAMETER :: ind_LXRO2N = 25 - INTEGER, PARAMETER :: ind_XRO2 = 26 - INTEGER, PARAMETER :: ind_MSA = 27 - INTEGER, PARAMETER :: ind_SO4s = 28 - INTEGER, PARAMETER :: ind_SOAGX = 29 - INTEGER, PARAMETER :: ind_SOAIE = 30 - INTEGER, PARAMETER :: ind_POx = 31 - INTEGER, PARAMETER :: ind_LOx = 32 - INTEGER, PARAMETER :: ind_PCO = 33 - INTEGER, PARAMETER :: ind_LCO = 34 - INTEGER, PARAMETER :: ind_PSO4 = 35 - INTEGER, PARAMETER :: ind_LCH4 = 36 - INTEGER, PARAMETER :: ind_PH2O2 = 37 - INTEGER, PARAMETER :: ind_I2O4 = 38 - INTEGER, PARAMETER :: ind_CH3CCl3 = 39 - INTEGER, PARAMETER :: ind_I2O2 = 40 - INTEGER, PARAMETER :: ind_MONITA = 41 - INTEGER, PARAMETER :: ind_CFC114 = 42 - INTEGER, PARAMETER :: ind_CH3I = 43 - INTEGER, PARAMETER :: ind_H1301 = 44 - INTEGER, PARAMETER :: ind_H2402 = 45 - INTEGER, PARAMETER :: ind_CFC115 = 46 - INTEGER, PARAMETER :: ind_I2O3 = 47 - INTEGER, PARAMETER :: ind_CFC113 = 48 - INTEGER, PARAMETER :: ind_PPN = 49 - INTEGER, PARAMETER :: ind_BrNO2 = 50 - INTEGER, PARAMETER :: ind_CCl4 = 51 - INTEGER, PARAMETER :: ind_CFC11 = 52 - INTEGER, PARAMETER :: ind_CFC12 = 53 - INTEGER, PARAMETER :: ind_C2H2 = 54 - INTEGER, PARAMETER :: ind_H1211 = 55 - INTEGER, PARAMETER :: ind_INO = 56 - INTEGER, PARAMETER :: ind_N2O = 57 - INTEGER, PARAMETER :: ind_NIT = 58 - INTEGER, PARAMETER :: ind_NITs = 59 - INTEGER, PARAMETER :: ind_BENZ = 60 - INTEGER, PARAMETER :: ind_N = 61 - INTEGER, PARAMETER :: ind_OCS = 62 - INTEGER, PARAMETER :: ind_PAN = 63 - INTEGER, PARAMETER :: ind_ETHN = 64 - INTEGER, PARAMETER :: ind_HI = 65 - INTEGER, PARAMETER :: ind_MAP = 66 - INTEGER, PARAMETER :: ind_BZCO3H = 67 - INTEGER, PARAMETER :: ind_CHCl3 = 68 - INTEGER, PARAMETER :: ind_IBr = 69 - INTEGER, PARAMETER :: ind_CH2Br2 = 70 - INTEGER, PARAMETER :: ind_MPN = 71 - INTEGER, PARAMETER :: ind_Cl2O2 = 72 - INTEGER, PARAMETER :: ind_CH2Cl2 = 73 - INTEGER, PARAMETER :: ind_CHBr3 = 74 - INTEGER, PARAMETER :: ind_C2H4 = 75 - INTEGER, PARAMETER :: ind_TOLU = 76 - INTEGER, PARAMETER :: ind_XYLE = 77 - INTEGER, PARAMETER :: ind_HCFC123 = 78 - INTEGER, PARAMETER :: ind_HCFC141b = 79 - INTEGER, PARAMETER :: ind_HCFC142b = 80 - INTEGER, PARAMETER :: ind_HCFC22 = 81 - INTEGER, PARAMETER :: ind_DMS = 82 - INTEGER, PARAMETER :: ind_HMHP = 83 - INTEGER, PARAMETER :: ind_HMML = 84 - INTEGER, PARAMETER :: ind_HMS = 85 - INTEGER, PARAMETER :: ind_IPRNO3 = 86 - INTEGER, PARAMETER :: ind_MENO3 = 87 - INTEGER, PARAMETER :: ind_ETNO3 = 88 - INTEGER, PARAMETER :: ind_NPRNO3 = 89 - INTEGER, PARAMETER :: ind_OIO = 90 - INTEGER, PARAMETER :: ind_R4P = 91 - INTEGER, PARAMETER :: ind_RA3P = 92 - INTEGER, PARAMETER :: ind_RB3P = 93 - INTEGER, PARAMETER :: ind_RP = 94 - INTEGER, PARAMETER :: ind_BZPAN = 95 - INTEGER, PARAMETER :: ind_IONITA = 96 - INTEGER, PARAMETER :: ind_CH3Br = 97 - INTEGER, PARAMETER :: ind_ICl = 98 - INTEGER, PARAMETER :: ind_BALD = 99 - INTEGER, PARAMETER :: ind_CH3Cl = 100 - INTEGER, PARAMETER :: ind_HNO4 = 101 - INTEGER, PARAMETER :: ind_ETO = 102 + INTEGER, PARAMETER :: ind_BUTDI = 6 + INTEGER, PARAMETER :: ind_CO2 = 7 + INTEGER, PARAMETER :: ind_INDIOL = 8 + INTEGER, PARAMETER :: ind_ISALA = 9 + INTEGER, PARAMETER :: ind_ISALC = 10 + INTEGER, PARAMETER :: ind_LBRO2H = 11 + INTEGER, PARAMETER :: ind_LBRO2N = 12 + INTEGER, PARAMETER :: ind_BRO2 = 13 + INTEGER, PARAMETER :: ind_LISOPOH = 14 + INTEGER, PARAMETER :: ind_LISOPNO3 = 15 + INTEGER, PARAMETER :: ind_LNRO2H = 16 + INTEGER, PARAMETER :: ind_LNRO2N = 17 + INTEGER, PARAMETER :: ind_NRO2 = 18 + INTEGER, PARAMETER :: ind_NAP = 19 + INTEGER, PARAMETER :: ind_LTRO2H = 20 + INTEGER, PARAMETER :: ind_LTRO2N = 21 + INTEGER, PARAMETER :: ind_TRO2 = 22 + INTEGER, PARAMETER :: ind_LVOCOA = 23 + INTEGER, PARAMETER :: ind_LVOC = 24 + INTEGER, PARAMETER :: ind_LXRO2H = 25 + INTEGER, PARAMETER :: ind_LXRO2N = 26 + INTEGER, PARAMETER :: ind_XRO2 = 27 + INTEGER, PARAMETER :: ind_MSA = 28 + INTEGER, PARAMETER :: ind_SO4s = 29 + INTEGER, PARAMETER :: ind_SOAGX = 30 + INTEGER, PARAMETER :: ind_SOAIE = 31 + INTEGER, PARAMETER :: ind_PH2SO4 = 32 + INTEGER, PARAMETER :: ind_PSO4AQ = 33 + INTEGER, PARAMETER :: ind_POx = 34 + INTEGER, PARAMETER :: ind_LOx = 35 + INTEGER, PARAMETER :: ind_PCO = 36 + INTEGER, PARAMETER :: ind_LCO = 37 + INTEGER, PARAMETER :: ind_PSO4 = 38 + INTEGER, PARAMETER :: ind_LCH4 = 39 + INTEGER, PARAMETER :: ind_PH2O2 = 40 + INTEGER, PARAMETER :: ind_FURA = 41 + INTEGER, PARAMETER :: ind_I2O4 = 42 + INTEGER, PARAMETER :: ind_CH3CCl3 = 43 + INTEGER, PARAMETER :: ind_I2O2 = 44 + INTEGER, PARAMETER :: ind_MONITA = 45 + INTEGER, PARAMETER :: ind_CH3I = 46 + INTEGER, PARAMETER :: ind_H1301 = 47 + INTEGER, PARAMETER :: ind_H2402 = 48 + INTEGER, PARAMETER :: ind_I2O3 = 49 + INTEGER, PARAMETER :: ind_PPN = 50 + INTEGER, PARAMETER :: ind_BrNO2 = 51 + INTEGER, PARAMETER :: ind_CCl4 = 52 + INTEGER, PARAMETER :: ind_CFC11 = 53 + INTEGER, PARAMETER :: ind_CFC12 = 54 + INTEGER, PARAMETER :: ind_CFC113 = 55 + INTEGER, PARAMETER :: ind_CFC114 = 56 + INTEGER, PARAMETER :: ind_CFC115 = 57 + INTEGER, PARAMETER :: ind_C2H2 = 58 + INTEGER, PARAMETER :: ind_H1211 = 59 + INTEGER, PARAMETER :: ind_INO = 60 + INTEGER, PARAMETER :: ind_N2O = 61 + INTEGER, PARAMETER :: ind_NIT = 62 + INTEGER, PARAMETER :: ind_NITs = 63 + INTEGER, PARAMETER :: ind_BENZ = 64 + INTEGER, PARAMETER :: ind_N = 65 + INTEGER, PARAMETER :: ind_OCS = 66 + INTEGER, PARAMETER :: ind_PAN = 67 + INTEGER, PARAMETER :: ind_ETHN = 68 + INTEGER, PARAMETER :: ind_HI = 69 + INTEGER, PARAMETER :: ind_BZCO3H = 70 + INTEGER, PARAMETER :: ind_CH2Br2 = 71 + INTEGER, PARAMETER :: ind_CH2Cl2 = 72 + INTEGER, PARAMETER :: ind_IBr = 73 + INTEGER, PARAMETER :: ind_MPN = 74 + INTEGER, PARAMETER :: ind_Cl2O2 = 75 + INTEGER, PARAMETER :: ind_C2H4 = 76 + INTEGER, PARAMETER :: ind_CHBr3 = 77 + INTEGER, PARAMETER :: ind_CHCl3 = 78 + INTEGER, PARAMETER :: ind_TOLU = 79 + INTEGER, PARAMETER :: ind_XYLE = 80 + INTEGER, PARAMETER :: ind_HCFC123 = 81 + INTEGER, PARAMETER :: ind_HCFC141b = 82 + INTEGER, PARAMETER :: ind_HCFC142b = 83 + INTEGER, PARAMETER :: ind_HCFC22 = 84 + INTEGER, PARAMETER :: ind_HMHP = 85 + INTEGER, PARAMETER :: ind_HMS = 86 + INTEGER, PARAMETER :: ind_IPRNO3 = 87 + INTEGER, PARAMETER :: ind_MAP = 88 + INTEGER, PARAMETER :: ind_MENO3 = 89 + INTEGER, PARAMETER :: ind_DMS = 90 + INTEGER, PARAMETER :: ind_NPRNO3 = 91 + INTEGER, PARAMETER :: ind_OIO = 92 + INTEGER, PARAMETER :: ind_R4P = 93 + INTEGER, PARAMETER :: ind_RA3P = 94 + INTEGER, PARAMETER :: ind_RB3P = 95 + INTEGER, PARAMETER :: ind_ETNO3 = 96 + INTEGER, PARAMETER :: ind_BZPAN = 97 + INTEGER, PARAMETER :: ind_IONITA = 98 + INTEGER, PARAMETER :: ind_ICl = 99 + INTEGER, PARAMETER :: ind_CH3Br = 100 + INTEGER, PARAMETER :: ind_BALD = 101 + INTEGER, PARAMETER :: ind_HNO4 = 102 INTEGER, PARAMETER :: ind_ClOO = 103 INTEGER, PARAMETER :: ind_PYAC = 104 - INTEGER, PARAMETER :: ind_BENZP = 105 - INTEGER, PARAMETER :: ind_IDC = 106 - INTEGER, PARAMETER :: ind_OClO = 107 - INTEGER, PARAMETER :: ind_ETP = 108 - INTEGER, PARAMETER :: ind_CSL = 109 - INTEGER, PARAMETER :: ind_PP = 110 - INTEGER, PARAMETER :: ind_PRPN = 111 - INTEGER, PARAMETER :: ind_ALK4 = 112 - INTEGER, PARAMETER :: ind_ETHP = 113 - INTEGER, PARAMETER :: ind_IEPOXD = 114 - INTEGER, PARAMETER :: ind_MVKDH = 115 - INTEGER, PARAMETER :: ind_HPALD2OO = 116 - INTEGER, PARAMETER :: ind_PHEN = 117 - INTEGER, PARAMETER :: ind_PIP = 118 - INTEGER, PARAMETER :: ind_SO4 = 119 - INTEGER, PARAMETER :: ind_HPALD1OO = 120 - INTEGER, PARAMETER :: ind_C3H8 = 121 - INTEGER, PARAMETER :: ind_IDCHP = 122 - INTEGER, PARAMETER :: ind_INA = 123 - INTEGER, PARAMETER :: ind_HPALD4 = 124 - INTEGER, PARAMETER :: ind_Br2 = 125 - INTEGER, PARAMETER :: ind_HPALD3 = 126 - INTEGER, PARAMETER :: ind_IEPOXA = 127 - INTEGER, PARAMETER :: ind_IEPOXB = 128 - INTEGER, PARAMETER :: ind_EOH = 129 - INTEGER, PARAMETER :: ind_MCRDH = 130 - INTEGER, PARAMETER :: ind_HONIT = 131 - INTEGER, PARAMETER :: ind_BrCl = 132 - INTEGER, PARAMETER :: ind_MACR1OOH = 133 - INTEGER, PARAMETER :: ind_MP = 134 - INTEGER, PARAMETER :: ind_SALCAL = 135 - INTEGER, PARAMETER :: ind_IHN2 = 136 - INTEGER, PARAMETER :: ind_IHN3 = 137 - INTEGER, PARAMETER :: ind_MCT = 138 - INTEGER, PARAMETER :: ind_IDHDP = 139 - INTEGER, PARAMETER :: ind_I2 = 140 - INTEGER, PARAMETER :: ind_C4HVP1 = 141 - INTEGER, PARAMETER :: ind_C4HVP2 = 142 - INTEGER, PARAMETER :: ind_IDNOO = 143 - INTEGER, PARAMETER :: ind_SALAAL = 144 - INTEGER, PARAMETER :: ind_AROMP5 = 145 - INTEGER, PARAMETER :: ind_ICNOO = 146 - INTEGER, PARAMETER :: ind_INPD = 147 - INTEGER, PARAMETER :: ind_ISOPNOO2 = 148 - INTEGER, PARAMETER :: ind_MPAN = 149 - INTEGER, PARAMETER :: ind_MTPA = 150 - INTEGER, PARAMETER :: ind_MTPO = 151 - INTEGER, PARAMETER :: ind_MVKPC = 152 - INTEGER, PARAMETER :: ind_RIPA = 153 - INTEGER, PARAMETER :: ind_ROH = 154 - INTEGER, PARAMETER :: ind_AROMP4 = 155 - INTEGER, PARAMETER :: ind_BENZO = 156 - INTEGER, PARAMETER :: ind_C2H6 = 157 - INTEGER, PARAMETER :: ind_RIPB = 158 - INTEGER, PARAMETER :: ind_IDHPE = 159 - INTEGER, PARAMETER :: ind_MCRENOL = 160 - INTEGER, PARAMETER :: ind_RIPD = 161 - INTEGER, PARAMETER :: ind_ISOPNOO1 = 162 - INTEGER, PARAMETER :: ind_IDHNDOO2 = 163 - INTEGER, PARAMETER :: ind_IDHNDOO1 = 164 - INTEGER, PARAMETER :: ind_LIMO = 165 - INTEGER, PARAMETER :: ind_MVKHC = 166 - INTEGER, PARAMETER :: ind_RIPC = 167 - INTEGER, PARAMETER :: ind_HPETHNL = 168 - INTEGER, PARAMETER :: ind_N2O5 = 169 - INTEGER, PARAMETER :: ind_ICHE = 170 - INTEGER, PARAMETER :: ind_MCRHNB = 171 - INTEGER, PARAMETER :: ind_BrNO3 = 172 - INTEGER, PARAMETER :: ind_H = 173 - INTEGER, PARAMETER :: ind_MONITS = 174 - INTEGER, PARAMETER :: ind_ETOO = 175 - INTEGER, PARAMETER :: ind_BZCO3 = 176 - INTEGER, PARAMETER :: ind_INPB = 177 - INTEGER, PARAMETER :: ind_AROMRO2 = 178 - INTEGER, PARAMETER :: ind_IHPOO1 = 179 - INTEGER, PARAMETER :: ind_IHPOO2 = 180 - INTEGER, PARAMETER :: ind_MVKHCB = 181 - INTEGER, PARAMETER :: ind_HPALD1 = 182 - INTEGER, PARAMETER :: ind_IHPOO3 = 183 - INTEGER, PARAMETER :: ind_HPALD2 = 184 - INTEGER, PARAMETER :: ind_IHPNDOO = 185 - INTEGER, PARAMETER :: ind_CH4 = 186 - INTEGER, PARAMETER :: ind_BENZO2 = 187 - INTEGER, PARAMETER :: ind_HNO2 = 188 - INTEGER, PARAMETER :: ind_HC5A = 189 - INTEGER, PARAMETER :: ind_ICHOO = 190 - INTEGER, PARAMETER :: ind_CH3CHOO = 191 - INTEGER, PARAMETER :: ind_Cl2 = 192 - INTEGER, PARAMETER :: ind_ATOOH = 193 - INTEGER, PARAMETER :: ind_PROPNN = 194 - INTEGER, PARAMETER :: ind_MCRHN = 195 - INTEGER, PARAMETER :: ind_MONITU = 196 - INTEGER, PARAMETER :: ind_PRN1 = 197 - INTEGER, PARAMETER :: ind_R4N2 = 198 - INTEGER, PARAMETER :: ind_IONO = 199 - INTEGER, PARAMETER :: ind_MVKOHOO = 200 - INTEGER, PARAMETER :: ind_MCROHOO = 201 - INTEGER, PARAMETER :: ind_ICPDH = 202 - INTEGER, PARAMETER :: ind_MACR1OO = 203 - INTEGER, PARAMETER :: ind_PO2 = 204 - INTEGER, PARAMETER :: ind_ETHLN = 205 - INTEGER, PARAMETER :: ind_NPHEN = 206 - INTEGER, PARAMETER :: ind_HCOOH = 207 - INTEGER, PARAMETER :: ind_H2O2 = 208 - INTEGER, PARAMETER :: ind_ITCN = 209 - INTEGER, PARAMETER :: ind_IHN4 = 210 - INTEGER, PARAMETER :: ind_OLNN = 211 - INTEGER, PARAMETER :: ind_OLND = 212 - INTEGER, PARAMETER :: ind_ETO2 = 213 - INTEGER, PARAMETER :: ind_MOH = 214 - INTEGER, PARAMETER :: ind_ACTA = 215 - INTEGER, PARAMETER :: ind_IHN1 = 216 - INTEGER, PARAMETER :: ind_IHPNBOO = 217 - INTEGER, PARAMETER :: ind_GLYX = 218 - INTEGER, PARAMETER :: ind_ACET = 219 - INTEGER, PARAMETER :: ind_ISOP = 220 - INTEGER, PARAMETER :: ind_LIMO2 = 221 - INTEGER, PARAMETER :: ind_MEK = 222 - INTEGER, PARAMETER :: ind_IO = 223 - INTEGER, PARAMETER :: ind_IEPOXAOO = 224 - INTEGER, PARAMETER :: ind_IEPOXBOO = 225 - INTEGER, PARAMETER :: ind_MVKHP = 226 - INTEGER, PARAMETER :: ind_MCRHP = 227 - INTEGER, PARAMETER :: ind_MGLY = 228 - INTEGER, PARAMETER :: ind_IDHNBOO = 229 - INTEGER, PARAMETER :: ind_CH2OO = 230 - INTEGER, PARAMETER :: ind_ClNO2 = 231 - INTEGER, PARAMETER :: ind_GLYC = 232 - INTEGER, PARAMETER :: ind_A3O2 = 233 - INTEGER, PARAMETER :: ind_PIO2 = 234 - INTEGER, PARAMETER :: ind_OTHRO2 = 235 - INTEGER, PARAMETER :: ind_ICN = 236 - INTEGER, PARAMETER :: ind_MVKN = 237 - INTEGER, PARAMETER :: ind_ITHN = 238 - INTEGER, PARAMETER :: ind_IDN = 239 - INTEGER, PARAMETER :: ind_INO2B = 240 - INTEGER, PARAMETER :: ind_INO2D = 241 - INTEGER, PARAMETER :: ind_IHOO1 = 242 - INTEGER, PARAMETER :: ind_IHOO4 = 243 - INTEGER, PARAMETER :: ind_MVK = 244 - INTEGER, PARAMETER :: ind_MACRNO2 = 245 - INTEGER, PARAMETER :: ind_HAC = 246 - INTEGER, PARAMETER :: ind_MACR = 247 - INTEGER, PARAMETER :: ind_ATO2 = 248 - INTEGER, PARAMETER :: ind_KO2 = 249 - INTEGER, PARAMETER :: ind_RCO3 = 250 - INTEGER, PARAMETER :: ind_R4N1 = 251 - INTEGER, PARAMETER :: ind_R4O2 = 252 - INTEGER, PARAMETER :: ind_B3O2 = 253 - INTEGER, PARAMETER :: ind_PRPE = 254 - INTEGER, PARAMETER :: ind_RCHO = 255 - INTEGER, PARAMETER :: ind_HOBr = 256 - INTEGER, PARAMETER :: ind_MCO3 = 257 - INTEGER, PARAMETER :: ind_CO = 258 - INTEGER, PARAMETER :: ind_ClNO3 = 259 - INTEGER, PARAMETER :: ind_HNO3 = 260 - INTEGER, PARAMETER :: ind_ALD2 = 261 - INTEGER, PARAMETER :: ind_CH2O = 262 - INTEGER, PARAMETER :: ind_MO2 = 263 - INTEGER, PARAMETER :: ind_HOI = 264 - INTEGER, PARAMETER :: ind_I = 265 - INTEGER, PARAMETER :: ind_IONO2 = 266 - INTEGER, PARAMETER :: ind_HOCl = 267 - INTEGER, PARAMETER :: ind_O1D = 268 - INTEGER, PARAMETER :: ind_OH = 269 - INTEGER, PARAMETER :: ind_NO2 = 270 - INTEGER, PARAMETER :: ind_HCl = 271 - INTEGER, PARAMETER :: ind_HBr = 272 - INTEGER, PARAMETER :: ind_ClO = 273 + INTEGER, PARAMETER :: ind_HMML = 105 + INTEGER, PARAMETER :: ind_RP = 106 + INTEGER, PARAMETER :: ind_BENZP = 107 + INTEGER, PARAMETER :: ind_ETO = 108 + INTEGER, PARAMETER :: ind_IDC = 109 + INTEGER, PARAMETER :: ind_ETP = 110 + INTEGER, PARAMETER :: ind_OClO = 111 + INTEGER, PARAMETER :: ind_PP = 112 + INTEGER, PARAMETER :: ind_PRPN = 113 + INTEGER, PARAMETER :: ind_ALK4 = 114 + INTEGER, PARAMETER :: ind_CSL = 115 + INTEGER, PARAMETER :: ind_IEPOXD = 116 + INTEGER, PARAMETER :: ind_MVKDH = 117 + INTEGER, PARAMETER :: ind_PHEN = 118 + INTEGER, PARAMETER :: ind_PIP = 119 + INTEGER, PARAMETER :: ind_ETHP = 120 + INTEGER, PARAMETER :: ind_HPALD1OO = 121 + INTEGER, PARAMETER :: ind_SO4 = 122 + INTEGER, PARAMETER :: ind_HPALD2OO = 123 + INTEGER, PARAMETER :: ind_C3H8 = 124 + INTEGER, PARAMETER :: ind_IDCHP = 125 + INTEGER, PARAMETER :: ind_INA = 126 + INTEGER, PARAMETER :: ind_HPALD4 = 127 + INTEGER, PARAMETER :: ind_Br2 = 128 + INTEGER, PARAMETER :: ind_HPALD3 = 129 + INTEGER, PARAMETER :: ind_IEPOXA = 130 + INTEGER, PARAMETER :: ind_IEPOXB = 131 + INTEGER, PARAMETER :: ind_MCRDH = 132 + INTEGER, PARAMETER :: ind_EOH = 133 + INTEGER, PARAMETER :: ind_HONIT = 134 + INTEGER, PARAMETER :: ind_BrCl = 135 + INTEGER, PARAMETER :: ind_MACR1OOH = 136 + INTEGER, PARAMETER :: ind_MP = 137 + INTEGER, PARAMETER :: ind_SALCAL = 138 + INTEGER, PARAMETER :: ind_IHN2 = 139 + INTEGER, PARAMETER :: ind_IHN3 = 140 + INTEGER, PARAMETER :: ind_IDHDP = 141 + INTEGER, PARAMETER :: ind_MCT = 142 + INTEGER, PARAMETER :: ind_I2 = 143 + INTEGER, PARAMETER :: ind_C4HVP1 = 144 + INTEGER, PARAMETER :: ind_C4HVP2 = 145 + INTEGER, PARAMETER :: ind_IDNOO = 146 + INTEGER, PARAMETER :: ind_SALAAL = 147 + INTEGER, PARAMETER :: ind_AROMP5 = 148 + INTEGER, PARAMETER :: ind_CH3Cl = 149 + INTEGER, PARAMETER :: ind_ICNOO = 150 + INTEGER, PARAMETER :: ind_INPD = 151 + INTEGER, PARAMETER :: ind_ISOPNOO2 = 152 + INTEGER, PARAMETER :: ind_MPAN = 153 + INTEGER, PARAMETER :: ind_MTPA = 154 + INTEGER, PARAMETER :: ind_MTPO = 155 + INTEGER, PARAMETER :: ind_MVKPC = 156 + INTEGER, PARAMETER :: ind_RIPA = 157 + INTEGER, PARAMETER :: ind_ROH = 158 + INTEGER, PARAMETER :: ind_AROMP4 = 159 + INTEGER, PARAMETER :: ind_BENZO = 160 + INTEGER, PARAMETER :: ind_C2H6 = 161 + INTEGER, PARAMETER :: ind_RIPB = 162 + INTEGER, PARAMETER :: ind_MCRENOL = 163 + INTEGER, PARAMETER :: ind_IDHPE = 164 + INTEGER, PARAMETER :: ind_RIPD = 165 + INTEGER, PARAMETER :: ind_IDHNDOO1 = 166 + INTEGER, PARAMETER :: ind_ISOPNOO1 = 167 + INTEGER, PARAMETER :: ind_IDHNDOO2 = 168 + INTEGER, PARAMETER :: ind_MVKHC = 169 + INTEGER, PARAMETER :: ind_LIMO = 170 + INTEGER, PARAMETER :: ind_RIPC = 171 + INTEGER, PARAMETER :: ind_HPETHNL = 172 + INTEGER, PARAMETER :: ind_N2O5 = 173 + INTEGER, PARAMETER :: ind_ICHE = 174 + INTEGER, PARAMETER :: ind_MCRHNB = 175 + INTEGER, PARAMETER :: ind_BrNO3 = 176 + INTEGER, PARAMETER :: ind_H = 177 + INTEGER, PARAMETER :: ind_MONITS = 178 + INTEGER, PARAMETER :: ind_ETOO = 179 + INTEGER, PARAMETER :: ind_BZCO3 = 180 + INTEGER, PARAMETER :: ind_INPB = 181 + INTEGER, PARAMETER :: ind_IHPOO1 = 182 + INTEGER, PARAMETER :: ind_IHPOO2 = 183 + INTEGER, PARAMETER :: ind_AROMRO2 = 184 + INTEGER, PARAMETER :: ind_MVKHCB = 185 + INTEGER, PARAMETER :: ind_HPALD1 = 186 + INTEGER, PARAMETER :: ind_IHPOO3 = 187 + INTEGER, PARAMETER :: ind_HPALD2 = 188 + INTEGER, PARAMETER :: ind_IHPNDOO = 189 + INTEGER, PARAMETER :: ind_CH4 = 190 + INTEGER, PARAMETER :: ind_BENZO2 = 191 + INTEGER, PARAMETER :: ind_HC5A = 192 + INTEGER, PARAMETER :: ind_HNO2 = 193 + INTEGER, PARAMETER :: ind_ICHOO = 194 + INTEGER, PARAMETER :: ind_CH3CHOO = 195 + INTEGER, PARAMETER :: ind_ATOOH = 196 + INTEGER, PARAMETER :: ind_Cl2 = 197 + INTEGER, PARAMETER :: ind_PROPNN = 198 + INTEGER, PARAMETER :: ind_MONITU = 199 + INTEGER, PARAMETER :: ind_MCRHN = 200 + INTEGER, PARAMETER :: ind_PRN1 = 201 + INTEGER, PARAMETER :: ind_R4N2 = 202 + INTEGER, PARAMETER :: ind_IONO = 203 + INTEGER, PARAMETER :: ind_MVKOHOO = 204 + INTEGER, PARAMETER :: ind_MCROHOO = 205 + INTEGER, PARAMETER :: ind_ICPDH = 206 + INTEGER, PARAMETER :: ind_MACR1OO = 207 + INTEGER, PARAMETER :: ind_ETHLN = 208 + INTEGER, PARAMETER :: ind_PO2 = 209 + INTEGER, PARAMETER :: ind_NPHEN = 210 + INTEGER, PARAMETER :: ind_HCOOH = 211 + INTEGER, PARAMETER :: ind_H2O2 = 212 + INTEGER, PARAMETER :: ind_ITCN = 213 + INTEGER, PARAMETER :: ind_IHN4 = 214 + INTEGER, PARAMETER :: ind_OLNN = 215 + INTEGER, PARAMETER :: ind_OLND = 216 + INTEGER, PARAMETER :: ind_ETO2 = 217 + INTEGER, PARAMETER :: ind_MOH = 218 + INTEGER, PARAMETER :: ind_ACTA = 219 + INTEGER, PARAMETER :: ind_IHN1 = 220 + INTEGER, PARAMETER :: ind_ACET = 221 + INTEGER, PARAMETER :: ind_IHPNBOO = 222 + INTEGER, PARAMETER :: ind_GLYX = 223 + INTEGER, PARAMETER :: ind_ISOP = 224 + INTEGER, PARAMETER :: ind_LIMO2 = 225 + INTEGER, PARAMETER :: ind_MEK = 226 + INTEGER, PARAMETER :: ind_IO = 227 + INTEGER, PARAMETER :: ind_IEPOXAOO = 228 + INTEGER, PARAMETER :: ind_IEPOXBOO = 229 + INTEGER, PARAMETER :: ind_MVKHP = 230 + INTEGER, PARAMETER :: ind_MCRHP = 231 + INTEGER, PARAMETER :: ind_IDHNBOO = 232 + INTEGER, PARAMETER :: ind_MGLY = 233 + INTEGER, PARAMETER :: ind_CH2OO = 234 + INTEGER, PARAMETER :: ind_ClNO2 = 235 + INTEGER, PARAMETER :: ind_GLYC = 236 + INTEGER, PARAMETER :: ind_A3O2 = 237 + INTEGER, PARAMETER :: ind_PIO2 = 238 + INTEGER, PARAMETER :: ind_OTHRO2 = 239 + INTEGER, PARAMETER :: ind_ICN = 240 + INTEGER, PARAMETER :: ind_MVKN = 241 + INTEGER, PARAMETER :: ind_ITHN = 242 + INTEGER, PARAMETER :: ind_IDN = 243 + INTEGER, PARAMETER :: ind_IHOO4 = 244 + INTEGER, PARAMETER :: ind_IHOO1 = 245 + INTEGER, PARAMETER :: ind_INO2D = 246 + INTEGER, PARAMETER :: ind_INO2B = 247 + INTEGER, PARAMETER :: ind_MVK = 248 + INTEGER, PARAMETER :: ind_MACRNO2 = 249 + INTEGER, PARAMETER :: ind_HAC = 250 + INTEGER, PARAMETER :: ind_MACR = 251 + INTEGER, PARAMETER :: ind_ATO2 = 252 + INTEGER, PARAMETER :: ind_PRPE = 253 + INTEGER, PARAMETER :: ind_KO2 = 254 + INTEGER, PARAMETER :: ind_RCO3 = 255 + INTEGER, PARAMETER :: ind_R4O2 = 256 + INTEGER, PARAMETER :: ind_R4N1 = 257 + INTEGER, PARAMETER :: ind_B3O2 = 258 + INTEGER, PARAMETER :: ind_RCHO = 259 + INTEGER, PARAMETER :: ind_HOBr = 260 + INTEGER, PARAMETER :: ind_MCO3 = 261 + INTEGER, PARAMETER :: ind_ClNO3 = 262 + INTEGER, PARAMETER :: ind_CH2O = 263 + INTEGER, PARAMETER :: ind_ALD2 = 264 + INTEGER, PARAMETER :: ind_HNO3 = 265 + INTEGER, PARAMETER :: ind_MO2 = 266 + INTEGER, PARAMETER :: ind_CO = 267 + INTEGER, PARAMETER :: ind_HOI = 268 + INTEGER, PARAMETER :: ind_I = 269 + INTEGER, PARAMETER :: ind_IONO2 = 270 + INTEGER, PARAMETER :: ind_HOCl = 271 + INTEGER, PARAMETER :: ind_O1D = 272 + INTEGER, PARAMETER :: ind_Br = 273 INTEGER, PARAMETER :: ind_BrO = 274 - INTEGER, PARAMETER :: ind_BrSALA = 275 - INTEGER, PARAMETER :: ind_BrSALC = 276 - INTEGER, PARAMETER :: ind_O3 = 277 - INTEGER, PARAMETER :: ind_SALACL = 278 - INTEGER, PARAMETER :: ind_H2O = 279 - INTEGER, PARAMETER :: ind_NO = 280 - INTEGER, PARAMETER :: ind_HO2 = 281 - INTEGER, PARAMETER :: ind_Br = 282 - INTEGER, PARAMETER :: ind_SALCCL = 283 - INTEGER, PARAMETER :: ind_O = 284 - INTEGER, PARAMETER :: ind_Cl = 285 - INTEGER, PARAMETER :: ind_SO2 = 286 - INTEGER, PARAMETER :: ind_NO3 = 287 + INTEGER, PARAMETER :: ind_HCl = 275 + INTEGER, PARAMETER :: ind_SO2 = 276 + INTEGER, PARAMETER :: ind_BrSALC = 277 + INTEGER, PARAMETER :: ind_H2O = 278 + INTEGER, PARAMETER :: ind_NO = 279 + INTEGER, PARAMETER :: ind_SALACL = 280 + INTEGER, PARAMETER :: ind_NO3 = 281 + INTEGER, PARAMETER :: ind_O3 = 282 + INTEGER, PARAMETER :: ind_BrSALA = 283 + INTEGER, PARAMETER :: ind_HO2 = 284 + INTEGER, PARAMETER :: ind_ClO = 285 + INTEGER, PARAMETER :: ind_OH = 286 + INTEGER, PARAMETER :: ind_SALCCL = 287 + INTEGER, PARAMETER :: ind_O = 288 + INTEGER, PARAMETER :: ind_HBr = 289 + INTEGER, PARAMETER :: ind_Cl = 290 + INTEGER, PARAMETER :: ind_NO2 = 291 ! Index declaration for fixed species in C ! C(ind_spc) - INTEGER, PARAMETER :: ind_H2 = 288 - INTEGER, PARAMETER :: ind_N2 = 289 - INTEGER, PARAMETER :: ind_O2 = 290 - INTEGER, PARAMETER :: ind_RCOOH = 291 + INTEGER, PARAMETER :: ind_H2 = 292 + INTEGER, PARAMETER :: ind_N2 = 293 + INTEGER, PARAMETER :: ind_O2 = 294 + INTEGER, PARAMETER :: ind_RCOOH = 295 ! Index declaration for fixed species in FIX ! FIX(indf_spc) = C(ind_spc) = C(NVAR+indf_spc) diff --git a/KPP/fullchem/gckpp_Rates.F90 b/KPP/fullchem/gckpp_Rates.F90 index 79df65ec9..abbea8831 100644 --- a/KPP/fullchem/gckpp_Rates.F90 +++ b/KPP/fullchem/gckpp_Rates.F90 @@ -2,7 +2,7 @@ ! ! The Reaction Rates File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) @@ -436,7 +436,7 @@ SUBROUTINE Update_RCONST ( ) RCONST(5) = (K_MT(5)) RCONST(6) = (K_MT(6)) RCONST(7) = (K_CLD(1)) - RCONST(8) = (K_CLD(2)) + RCONST(8) = (K_CLD(2)+SRO3) RCONST(9) = (K_CLD(3)) RCONST(10) = (K_CLD(4)) RCONST(11) = (K_CLD(5)) @@ -450,899 +450,882 @@ SUBROUTINE Update_RCONST ( ) RCONST(19) = (GCJPLPR_aba(6.90d-31,1.0d+00,2.6d-11,0.6d0)) RCONST(20) = (GCARR_ac(4.80d-11,250.0d0)) RCONST(21) = (1.80d-12) - RCONST(22) = (GCARR_ac(3.30d-12,270.0d0)) + RCONST(22) = (GCARR_ac(3.44d-12,260.0d0)) RCONST(23) = (GC_HO2HO2_acac(3.00d-13,460.0d0,2.1d-33,920.0d0)) - RCONST(24) = (GC_OHCO_a(1.50d-13)) + RCONST(24) = (GCJPLPR_abab(6.9d-33,2.1d0,1.1d-12,-1.3d0,0.6d0)+GCJPLAC_ababac(6.9d-33,2.1d0,1.1d-12,-1.3d0,1.85d-13,& + &-6.5d1,0.6d0)) RCONST(25) = (GCARR_ac(2.45d-12,-1775.0d0)) RCONST(26) = (GC_RO2NO_B1_ac(2.80d-12,300.0d0)) RCONST(27) = (GC_RO2NO_A1_ac(2.80d-12,300.0d0)) - RCONST(28) = (GCARR_abc(4.10d-13,0.0d0,750.0d0)) + RCONST(28) = (GCARR_ac(4.10d-13,750.0d0)) RCONST(29) = (GC_TBRANCH_1_acac(9.50d-14,390.0d0,2.62d1,-1130.0d0)) RCONST(30) = (GC_TBRANCH_1_acac(9.50d-14,390.0d0,4.0d-2,1130.0d0)) RCONST(31) = (1.60d-10) - RCONST(32) = (GCARR_ac(2.66d-12,200.0d0)) - RCONST(33) = (GCARR_ac(1.14d-12,200.0d0)) - RCONST(34) = (GCARR_ac(2.66d-12,200.0d0)) - RCONST(35) = (GCARR_ac(1.14d-12,200.0d0)) - RCONST(36) = (GCARR_ac(5.50d-12,125.0d0)) - RCONST(37) = (GCJPLPR_aba(1.80d-30,3.0d+00,2.8d-11,0.6d0)) - RCONST(38) = (GC_OHHNO3_acacac(2.41d-14,460.0d0,2.69d-17,2199.0d0,6.51d-34,1335.0d0)) - RCONST(39) = (GCJPLPR_abab(7.00d-31,2.6d+00,3.60d-11,0.1d0,0.6d0)) - RCONST(40) = (GCARR_ac(1.80d-11,-390.0d0)) - RCONST(41) = (GCJPLPR_abab(1.90d-31,3.4d+00,4.0d-12,0.3d0,0.6d0)) - RCONST(42) = (GCJPLPR_abcabc(9.05d-05,3.4d0,-10900.0d0,1.90d15,0.3d0,-10900.0d0,0.6d0)) - RCONST(43) = (GCARR_ac(1.30d-12,380.0d0)) - RCONST(44) = (3.50d-12) - RCONST(45) = (GCARR_ac(1.50d-11,170.0d0)) - RCONST(46) = (2.20d-11) - RCONST(47) = (GCJPLPR_abab(2.40d-30,3.0d+00,1.6d-12,-0.1d0,0.6d0)) - RCONST(48) = (GCJPLPR_abcabc(4.14d-04,3.0d0,-10840.0d0,2.76d14,-0.1d0,-10840.0d0,0.6d0)) - RCONST(49) = (4.00d-13) - RCONST(50) = (GCARR_ac(2.90d-12,-345.0d0)) - RCONST(51) = (GCARR_ac(4.50d-14,-1260.0d0)) - RCONST(52) = (5.80d-16) - RCONST(53) = (GCARR_ac(4.63d-12,350.0d0)) - RCONST(54) = (GCARR_ac(1.40d-12,-1900.0d0)) - RCONST(55) = (GCJPLPR_abab(9.70d-29,5.6d+00,9.3d-12,1.5d0,0.6d0)) - RCONST(56) = (GCJPLEQ_acabab(9.30d-29,14000.0d0,9.7d-29,5.6d0,9.3d-12,1.5d0,0.6d0)) - RCONST(57) = (GCARR_ac(8.10d-12,270.0d0)) - RCONST(58) = (GCARR_ac(7.66d-12,-1020.0d0)) - RCONST(59) = (GC_RO2NO_B2_aca(2.60d-12,365.0d0,2.0d0)) - RCONST(60) = (GC_RO2NO_A2_aca(2.60d-12,365.0d0,2.0d0)) - RCONST(61) = (GCARR_ac(2.60d-12,365.0d0)) - RCONST(62) = (GC_TBRANCH_2_acabc(7.60d-12,-585.0d0,5.87d0,0.64d0,-816.0d0)) - RCONST(63) = (GC_TBRANCH_2_acabc(7.60d-12,-585.0d0,1.7d-1,-0.64d0,816.0d0)) - RCONST(64) = (GC_RO2NO_B2_aca(2.90d-12,350.0d0,3.0d0)) - RCONST(65) = (GC_RO2NO_A2_aca(2.90d-12,350.0d0,3.0d0)) - RCONST(66) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(67) = (GCARR_ac(9.10d-12,-405.0d0)) - RCONST(68) = (GC_RO2NO_B2_aca(2.70d-12,350.0d0,4.5d0)) - RCONST(69) = (GC_RO2NO_A2_aca(2.70d-12,350.0d0,4.5d0)) + RCONST(32) = (GCARR_ac(3.80d-12,200.0d0)) + RCONST(33) = (GCARR_ac(3.80d-12,200.0d0)) + RCONST(34) = (GCARR_ac(5.50d-12,125.0d0)) + RCONST(35) = (GCJPLPR_aba(1.80d-30,3.0d+00,2.8d-11,0.6d0)) + RCONST(36) = (GCJPLPR_abab(3.9d-31,7.2d0,1.5d-13,4.8d0,0.6d0)+GCJPLAC_ababac(3.9d-31,7.2d0,1.5d-13,4.8d0,3.7d-14,2.4d2,& + &0.6d0)) + RCONST(37) = (GCJPLPR_abab(7.00d-31,2.6d+00,3.60d-11,0.1d0,0.6d0)) + RCONST(38) = (GCARR_ac(3.00d-12,250.0d0)) + RCONST(39) = (GCJPLPR_abab(1.90d-31,3.4d+00,4.0d-12,0.3d0,0.6d0)) + RCONST(40) = (GCJPLPR_abcabc(9.05d-05,3.4d0,-10900.0d0,1.90d15,0.3d0,-10900.0d0,0.6d0)) + RCONST(41) = (GCARR_ac(4.50d-13,610.0d0)) + RCONST(42) = (3.50d-12) + RCONST(43) = (GCARR_ac(1.70d-11,125.0d0)) + RCONST(44) = (2.00d-11) + RCONST(45) = (GCJPLPR_abab(2.40d-30,3.0d+00,1.6d-12,-0.1d0,0.6d0)) + RCONST(46) = (GCJPLPR_abcabc(4.14d-04,3.0d0,-10840.0d0,2.76d14,-0.1d0,-10840.0d0,0.6d0)) + RCONST(47) = (4.00d-13) + RCONST(48) = (GCARR_ac(2.90d-12,-345.0d0)) + RCONST(49) = (GCARR_ac(4.35d-14,-1335.0d0)) + RCONST(50) = (5.80d-16) + RCONST(51) = (GCARR_ac(4.63d-12,350.0d0)) + RCONST(52) = (GCARR_ac(1.40d-12,-1900.0d0)) + RCONST(53) = (GCJPLPR_abab(7.30d-29,4.1d+00,9.5d-12,1.6d0,0.6d0)) + RCONST(54) = (GCJPLEQ_acabab(9.00d-29,14000.0d0,7.3d-29,4.1d0,9.5d-12,1.6d0,0.6d0)) + RCONST(55) = (GCARR_ac(8.10d-12,270.0d0)) + RCONST(56) = (GCARR_ac(7.66d-12,-1020.0d0)) + RCONST(57) = (GC_RO2NO_B2_aca(2.60d-12,365.0d0,2.0d0)) + RCONST(58) = (GC_RO2NO_A2_aca(2.60d-12,365.0d0,2.0d0)) + RCONST(59) = (GCARR_ac(2.60d-12,365.0d0)) + RCONST(60) = (GCARR_abc(8.54d-13,1.54d0,-19.0d0)) + RCONST(61) = (GCARR_abc(1.97d-12,1.23d0,-675.0d0)) + RCONST(62) = (GC_RO2NO_B2_aca(2.90d-12,350.0d0,3.0d0)) + RCONST(63) = (GC_RO2NO_A2_aca(2.90d-12,350.0d0,3.0d0)) + RCONST(64) = (GCARR_ac(2.70d-12,350.0d0)) + RCONST(65) = (GCARR_ac(9.10d-12,-405.0d0)) + RCONST(66) = (GC_RO2NO_B2_aca(2.70d-12,350.0d0,4.5d0)) + RCONST(67) = (GC_RO2NO_A2_aca(2.70d-12,350.0d0,4.5d0)) + RCONST(68) = (GCARR_ac(2.70d-12,350.0d0)) + RCONST(69) = (GCARR_ac(2.90d-12,300.0d0)) RCONST(70) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(71) = (GCARR_ac(2.80d-12,300.0d0)) - RCONST(72) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(73) = (GC_RO2NO_B2_aca(2.70d-12,360.0d0,3.0d0)) - RCONST(74) = (GC_RO2NO_A2_aca(2.70d-12,360.0d0,3.0d0)) - RCONST(75) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(76) = (GCARR_ac(2.80d-12,-3280.0d0)) - RCONST(77) = (1.60d-12) - RCONST(78) = (GCARR_ac(3.15d-14,920.0d0)) - RCONST(79) = (GCARR_ac(6.00d-12,410.0d0)) - RCONST(80) = (GCJPLPR_abab(9.00d-28,8.9d0,7.7d-12,0.2d0,0.6d0)) - RCONST(81) = (GCJPLEQ_acabab(9.00d-29,14000.0d0,9.00d-28,8.9d0,7.7d-12,0.2d0,0.6d0)) - RCONST(82) = (GCARR_ac(6.70d-12,340.0d0)) - RCONST(83) = (6.50d-15) - RCONST(84) = (1.33d-13+3.82d-11*exp(-2000.0d0/TEMP)) - RCONST(85) = (5.92d-13) - RCONST(86) = (5.92d-13) - RCONST(87) = (GCARR_ac(7.40d-13,700.0d0)) - RCONST(88) = (GCARR_ac(7.40d-13,700.0d0)) - RCONST(89) = (GCARR_ac(8.60d-13,700.0d0)) - RCONST(90) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,4.0d0)) - RCONST(91) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,3.0d0)) - RCONST(92) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,3.0d0)) - RCONST(93) = (GCARR_ac(1.30d-12,-25.0d0)) - RCONST(94) = (3.00d-13) - RCONST(95) = (3.00d-13) - RCONST(96) = (8.00d-16) - RCONST(97) = (8.37d-14) + RCONST(71) = (GC_RO2NO_B2_aca(2.70d-12,360.0d0,3.0d0)) + RCONST(72) = (GC_RO2NO_A2_aca(2.70d-12,360.0d0,3.0d0)) + RCONST(73) = (GCARR_ac(2.70d-12,350.0d0)) + RCONST(74) = (GCARR_ac(2.80d-12,-3280.0d0)) + RCONST(75) = (1.60d-12) + RCONST(76) = (GCARR_ac(3.15d-14,920.0d0)) + RCONST(77) = (GCARR_ac(6.00d-12,410.0d0)) + RCONST(78) = (GCJPLPR_abab(9.00d-28,8.9d0,7.7d-12,0.2d0,0.6d0)) + RCONST(79) = (GCJPLEQ_acabab(9.00d-29,14000.0d0,9.00d-28,8.9d0,7.7d-12,0.2d0,0.6d0)) + RCONST(80) = (GCARR_ac(6.70d-12,340.0d0)) + RCONST(81) = (6.50d-15) + RCONST(82) = (1.33d-13+3.82d-11*exp(-2000.0d0/TEMP)) + RCONST(83) = (5.92d-13) + RCONST(84) = (5.92d-13) + RCONST(85) = (GCARR_ac(7.40d-13,700.0d0)) + RCONST(86) = (GCARR_ac(7.40d-13,700.0d0)) + RCONST(87) = (GCARR_ac(8.60d-13,700.0d0)) + RCONST(88) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,4.0d0)) + RCONST(89) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,3.0d0)) + RCONST(90) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,3.0d0)) + RCONST(91) = (GCARR_ac(1.50d-12,-90.0d0)) + RCONST(92) = (3.00d-13) + RCONST(93) = (3.00d-13) + RCONST(94) = (8.00d-16) + RCONST(95) = (8.37d-14) + RCONST(96) = (8.37d-14) + RCONST(97) = (GCARR_ac(7.50d-13,500.0d0)) RCONST(98) = (8.37d-14) - RCONST(99) = (GCARR_ac(7.50d-13,500.0d0)) + RCONST(99) = (8.37d-14) RCONST(100) = (8.37d-14) - RCONST(101) = (8.37d-14) - RCONST(102) = (8.37d-14) - RCONST(103) = (3.35d-12) - RCONST(104) = (GCARR_ac(4.60d-12,70.0d0)) - RCONST(105) = (4.10d-14) - RCONST(106) = (4.10d-14) - RCONST(107) = (2.70d-14) - RCONST(108) = (2.70d-14) - RCONST(109) = (GCARR_ac(7.40d-13,700.0d0)) - RCONST(110) = (GCARR_ac(7.40d-13,700.0d0)) - RCONST(111) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,3.0d0)) - RCONST(112) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,3.0d0)) - RCONST(113) = (GCARR_ac(4.30d-13,1040.0d0)) - RCONST(114) = (GCJPLPR_abab(4.60d-27,4.0d0,2.6d-11,1.3d0,0.5d0)) - RCONST(115) = (GCARR_ac(5.50d-15,-1880.0d0)) - RCONST(116) = (GC_GLYCOH_A_a(8.00d-12)) - RCONST(117) = (GC_GLYCOH_B_a(8.00d-12)) - RCONST(118) = (GCARR_ac(4.59d-13,-1156.0d0)) - RCONST(119) = (GCARR_ac(3.10d-12,340.0d0)) - RCONST(120) = (1.50d-11) - RCONST(121) = (GC_GLYXNO3_ac(1.40d-12,-1860.0d0)) - RCONST(122) = (GCARR_ac(3.36d-12,-1860.0d0)) - RCONST(123) = (GC_HACOH_A_ac(2.15d-12,305.0d0)) - RCONST(124) = (GC_HACOH_B_ac(2.15d-12,305.0d0)) - RCONST(125) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(126) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(127) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(128) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(129) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(130) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(131) = (GCARR_ac(8.78d-12,200.0d0)) - RCONST(132) = (GCARR_ac(5.18d-12,200.0d0)) - RCONST(133) = (GCARR_ac(5.18d-12,200.0d0)) - RCONST(134) = (GCARR_ac(8.78d-12,200.0d0)) - RCONST(135) = (GCARR_ac(8.78d-12,200.0d0)) - RCONST(136) = (GCARR_ac(6.13d-13,200.0d0)) - RCONST(137) = (GCARR_ac(8.78d-12,200.0d0)) - RCONST(138) = (GCARR_ac(4.82d-11,-400.0d0)) - RCONST(139) = (GCARR_ac(6.13d-13,200.0d0)) - RCONST(140) = (1.40d-18) - RCONST(141) = (GCARR_ac(2.50d-12,500.0d0)) - RCONST(142) = (GCARR_ac(1.80d-12,500.0d0)) - RCONST(143) = (GCARR_ac(2.00d-13,500.0d0)) - RCONST(144) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(145) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(146) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(147) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(148) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(149) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(150) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(151) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(152) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(153) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(154) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(155) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(156) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(157) = (GCARR_ac(1.68d-12,500.0d0)) - RCONST(158) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(159) = (GCARR_ac(1.87d-13,500.0d0)) - RCONST(160) = (GCARR_ac(2.50d-12,500.0d0)) - RCONST(161) = (GCARR_ac(8.50d-13,-2450.0d0)) - RCONST(162) = (GCJPLPR_abab(1.00d-30,4.8d+00,7.2d-12,2.1d0,0.6d0)) - RCONST(163) = (GCJPLPR_abcabc(1.05d-02,4.8d+00,-11234.0d0,7.58d16,2.1d0,-11234.0d0,0.6d0)) - RCONST(164) = (GCARR_ac(1.20d-11,-280.0d0)) - RCONST(165) = (GC_DMSOH_acac(8.20d-39,5376.0d0,1.05d-5,3644.0d0)) - RCONST(166) = (GCARR_ac(1.90d-13,530.0d0)) - RCONST(167) = (GCJPLPR_aba(3.30d-31,4.3d+00,1.6d-12,0.6d0)) - RCONST(168) = (GCARR_ac(1.60d-11,-780.0d0)) - RCONST(169) = (GCARR_ac(4.50d-12,460.0d0)) - RCONST(170) = (GCARR_ac(4.80d-12,-310.0d0)) - RCONST(171) = (GCARR_ac(5.50d-12,200.0d0)) - RCONST(172) = (GCARR_ac(2.40d-12,40.0d0)) - RCONST(173) = (GCARR_ac(2.80d-14,860.0d0)) - RCONST(174) = (GCARR_ac(8.80d-12,260.0d0)) - RCONST(175) = (4.90d-11) - RCONST(176) = (GCARR_ac(2.10d-11,240.0d0)) - RCONST(177) = (GCARR_ac(1.20d-10,-430.0d0)) - RCONST(178) = (GCARR_ac(5.80d-12,-1500.0d0)) - RCONST(179) = (GCARR_ac(1.70d-11,250.0d0)) - RCONST(180) = (1.60d-11) - RCONST(181) = (GCARR_ac(1.70d-11,-800.0d0)) - RCONST(182) = (GCARR_ac(1.80d-11,-460.0d0)) - RCONST(183) = (GCARR_ac(1.66d-10,-7000.0d0)) - RCONST(184) = (GCARR_ac(2.36d-10,-6411.0d0)) - RCONST(185) = (GCARR_ac(8.77d-11,-4330.0d0)) - RCONST(186) = (GCJPLPR_aba(4.20d-31,2.4d0,2.7d-11,0.6d0)) - RCONST(187) = (GCJPLPR_abab(5.40d-31,3.1d0,6.5d-12,2.9d0,0.6d0)) - RCONST(188) = (GCARR_ac(9.00d-13,-360.0d0)) - RCONST(189) = (GCARR_ac(2.00d-12,-840.0d0)) - RCONST(190) = (GCARR_ac(1.42d-12,-1150.0d0)) - RCONST(191) = (GCARR_ac(1.63d-10,60.0d0)) - RCONST(192) = (GCARR_ac(2.15d-11,110.0d0)) - RCONST(193) = (GCARR_ac(3.30d-11,55.0d0)) - RCONST(194) = (1.20d-10) - RCONST(195) = (GCARR_ac(4.63d-11,20.0d0)) - RCONST(196) = (GCARR_ac(7.25d-11,20.0d0)) - RCONST(197) = (1.31d-10) - RCONST(198) = (0.09d-10) - RCONST(199) = (0.35d-10) - RCONST(200) = (GCARR_ab(6.00d-34,2.4d0)*NUMDEN) - RCONST(201) = (GCARR_ac(8.00d-12,-2060.0d0)) - RCONST(202) = (GCARR_ac(2.80d-12,-1800.0d0)) - RCONST(203) = (GCARR_ac(1.80d-11,180.0d0)) - RCONST(204) = (GCARR_ac(3.00d-11,200.0d0)) - RCONST(205) = (1.20d-10) - RCONST(206) = (1.20d-10) - RCONST(207) = (GCARR_ac(2.10d-11,-2200.0d0)) - RCONST(208) = (GCARR_ac(1.10d-13,-1200.0d0)) - RCONST(209) = (GCARR_ac(5.10d-12,210.0d0)) - RCONST(210) = (1.00d-11) - RCONST(211) = (GCJPLPR_aba(9.00d-32,1.5d+00,3.0d-11,0.6d0)) - RCONST(212) = (GCJPLPR_abab(2.50d-31,1.8d+00,2.2d-11,0.7d0,0.6d0)) - RCONST(213) = (GCARR_ac(1.40d-12,-2000.0d0)) - RCONST(214) = (GCJPLPR_abab(4.40d-32,1.3d+00,7.5d-11,-0.2d0,0.6d0)) - RCONST(215) = (GCARR_ac(1.40d-10,-470.0d0)) - RCONST(216) = (7.20d-11) - RCONST(217) = (1.60d-12) - RCONST(218) = (6.90d-12) - RCONST(219) = (GCARR_ac(1.50d-11,-3600.0d0)) - RCONST(220) = (GCARR_ac(2.10d-11,100.0d0)) - RCONST(221) = (GCARR_ac(5.80d-12,220.0d0)) - RCONST(222) = (GCARR_ac(1.90d-11,230.0d0)) - RCONST(223) = (GCARR_ac(3.40d-11,-1600.0d0)) - RCONST(224) = (1.50d-10) - RCONST(225) = (1.50d-10) - RCONST(226) = (2.70d-10) - RCONST(227) = (3.30d-10) - RCONST(228) = (1.80d-10) - RCONST(229) = (2.70d-10) - RCONST(230) = (6.60d-10) - RCONST(231) = (1.02d-10) - RCONST(232) = (2.30d-10) - RCONST(233) = (1.40d-10) - RCONST(234) = (1.50d-10) - RCONST(235) = (1.00d-10) - RCONST(236) = (2.60d-10) - RCONST(237) = (2.00d-10) - RCONST(238) = (2.00d-10) - RCONST(239) = (2.32d-10) - RCONST(240) = (GCARR_ac(1.30d-10,-25.0d0)) - RCONST(241) = (GCARR_ac(5.40d-11,-30.0d0)) - RCONST(242) = (GCARR_ac(1.60d-10,0.0d0)) - RCONST(243) = (GCARR_ac(2.60d-12,-1100.0d0)) - RCONST(244) = (GCARR_ac(1.80d-11,-600.0d0)) - RCONST(245) = (GCARR_ac(7.40d-12,270.0d0)) - RCONST(246) = (GCARR_ac(6.00d-13,230.0d0)) - RCONST(247) = (GCARR_ac(1.40d-12,600.0d0)) - RCONST(248) = (GCARR_ac(6.00d-13,670.0d0)) - RCONST(249) = (GCARR_ac(1.80d-12,-250.0d0)) - RCONST(250) = (GCARR_ac(3.00d-12,-500.0d0)) - RCONST(251) = (GCARR_ac(2.40d-12,-1250.0d0)) - RCONST(252) = (GCARR_ac(1.20d-12,-330.0d0)) - RCONST(253) = (GCARR_ac(1.96d-12,-1200.0d0)) - RCONST(254) = (GCARR_ac(2.61d-12,-944.0d0)) - RCONST(255) = (GCARR_ac(4.69d-12,-1134.0d0)) - RCONST(256) = (GCARR_ac(1.64d-12,-1520.0d0)) - RCONST(257) = (GCARR_ac(9.20d-13,-1560.0d0)) - RCONST(258) = (GCARR_ac(1.25d-12,-1600.0d0)) - RCONST(259) = (GCARR_ac(1.30d-12,-1770.0d0)) - RCONST(260) = (GCARR_ac(7.40d-13,-900.0d0)) - RCONST(261) = (GCARR_ac(7.10d-12,-1270.0d0)) - RCONST(262) = (GCARR_ac(7.32d-11,-30.0d0)) - RCONST(263) = (GCARR_ac(2.30d-11,-200.0d0)) - RCONST(264) = (GCARR_ac(3.05d-11,-2270.0d0)) - RCONST(265) = (GCARR_ac(1.10d-11,-980.0d0)) - RCONST(266) = (GCARR_ac(1.40d-11,270.0d0)) - RCONST(267) = (GCARR_ac(3.60d-11,-375.0d0)) - RCONST(268) = (GCARR_ac(2.80d-11,85.0d0)) - RCONST(269) = (GCARR_ac(2.60d-12,290.0d0)) - RCONST(270) = (GCARR_ac(6.40d-12,290.0d0)) - RCONST(271) = (GCJPLPR_abab(1.80d-31,3.4d+00,1.50d-11,1.9d0,0.6d0)) - RCONST(272) = (GCARR_ac(1.00d-12,-1590.0d0)) - RCONST(273) = (GCARR_ac(3.00d-11,-2450.0d0)) - RCONST(274) = (GCARR_ac(3.50d-13,-1370.0d0)) - RCONST(275) = (GCJPLPR_aba(2.20d-33,3.1d+00,1.8d-10,0.6d0)) - RCONST(276) = (GCJPLEQ_acabab(6.60d-25,2502.0d0,2.20d-33,3.1d+00,1.8d-10,0.0d0,0.6d0)) - RCONST(277) = (GCJPLPR_abab(1.90d-32,3.6d+00,3.7d-12,1.6d0,0.6d0)) - RCONST(278) = (GCJPLEQ_acabab(2.16d-27,8537.0d0,1.90d-32,3.6d+00,3.7d-12,1.6d0,0.6d0)) - RCONST(279) = (2.30d-10) - RCONST(280) = (1.20d-11) - RCONST(281) = (GCARR_ac(9.50d-13,550.0d0)) - RCONST(282) = (GCARR_ac(2.30d-12,260.0d0)) - RCONST(283) = (GCARR_ac(4.10d-13,290.0d0)) - RCONST(284) = (GCARR_ac(3.60d-12,-840.0d0)) - RCONST(285) = (GCARR_ac(6.50d-12,135.0d0)) - RCONST(286) = (GCARR_ac(2.17d-11,-1130.0d0)) - RCONST(287) = (GCARR_ac(1.24d-12,-1070.0d0)) - RCONST(288) = (GCARR_ac(3.77d-12,-1011.0d0)) - RCONST(289) = (2.00d-13) - RCONST(290) = (1.60d-10) - RCONST(291) = (5.7d-11) - RCONST(292) = (GCARR_ac(7.2d-11,-70.0d0)) - RCONST(293) = (7.4d-11) - RCONST(294) = (7.4d-11) - RCONST(295) = (5.5d-11) - RCONST(296) = (9.6d-11) - RCONST(297) = (2.8d-14) - RCONST(298) = (GCARR_ac(6.54d-11,60.0d0)) - RCONST(299) = (GCARR_ac(8.12d-11,-90.0d0)) - RCONST(300) = (GCARR_ac(7.70d-11,-1000.0d0)) - RCONST(301) = (GCARR_ac(7.60d-11,500.0d0)) - RCONST(302) = (2.05d-10) - RCONST(303) = (GCJPLPR_aa(4.00d-28,2.8d-10,0.6d0)) - RCONST(304) = (3.60d-12) - RCONST(305) = (GCJPLPR_aba(1.80d-32,1.0d0,1.77d-11,0.6d0)) - RCONST(306) = (GCARR_ac(8.40d-11,-2620.0d0)) - RCONST(307) = (GCJPLPR_aba(3.00d-31,1.0d0,6.6d-11,0.63d0)) - RCONST(308) = (GCARR_ac(9.94d+17,-11859.0d0)) - RCONST(309) = (GCARR_ac(2.90d-11,-2600.0d0)) - RCONST(310) = (1.50d-12) - RCONST(311) = (GCJPLPR_abab(7.50d-31,3.5d0,7.6d-12,1.5d0,0.6d0)) - RCONST(312) = (GCARR_ac(2.10d+15,-13670.0d0)) - RCONST(313) = (GCARR_ac(9.10d-11,-146.0d0)) - RCONST(314) = (1.20d-11) - RCONST(315) = (GCARR_ac(3.00d-12,510.0d0)) - RCONST(316) = (GCARR_ac(1.20d-11,510.0d0)) - RCONST(317) = (1.00d-10) - RCONST(318) = (1.50d-10) - RCONST(319) = (3.80d-02) - RCONST(320) = (GCARR_ac(1.10d-12,542.0d0)) - RCONST(321) = (GCARR_ac(5.10d-12,280.0d0)) - RCONST(322) = (GCARR_ac(2.81d-12,280.0d0)) - RCONST(323) = (GCARR_ac(1.02d-12,280.0d0)) - RCONST(324) = (GCARR_ac(2.30d-11,-870.0d0)) - RCONST(325) = (GCARR_ac(1.50d-11,-1090.0d0)) - RCONST(326) = (1.80d-10) - RCONST(327) = (3.00d-11) - RCONST(328) = (5.00d-12) - RCONST(329) = (GCARR_ac(1.30d-11,570.0d0)) - RCONST(330) = (GCARR_ac(9.10d-12,240.0d0)) - RCONST(331) = (GCARR_ac(6.00d-12,500.0d0)) - RCONST(332) = (GCARR_ac(9.00d-12,500.0d0)) - RCONST(333) = (GCARR_ac(1.00d+12,-9770.0d0)) - RCONST(334) = (GCARR_ac(2.50d+14,-9770.0d0)) - RCONST(335) = (GCARR_ac(2.90d-12,-1100.0d0)) - RCONST(336) = (2.40d-12) - RCONST(337) = (6.70d-13) - RCONST(338) = (1.20d-15) - RCONST(339) = (1.00d-14) - RCONST(340) = (1.00d-15) - RCONST(341) = (1.70d-15) - RCONST(342) = (GCARR_ac(2.88d-35,1391.0d0)) - RCONST(343) = (1.40d-12) - RCONST(344) = (3.70d-11) - RCONST(345) = (1.20d-15) - RCONST(346) = (1.00d-14) - RCONST(347) = (1.00d-15) - RCONST(348) = (7.00d-14) - RCONST(349) = (6.00d-18) - RCONST(350) = (1.00d-17) - RCONST(351) = (GCARR_ac(1.21d-11,440.0d0)) - RCONST(352) = (GCARR_ac(1.21d-11,440.0d0)) - RCONST(353) = (4.00d-12) - RCONST(354) = (1.50d-11) - RCONST(355) = (GCARR_ac(3.56d-14,708.0d0)) - RCONST(356) = (GCARR_ac(7.40d-13,765.0d0)) - RCONST(357) = (1.20d-12) - RCONST(358) = (GCARR_ac(5.00d-16,-530.0d0)) - RCONST(359) = (GCARR_ac(5.00d-16,-530.0d0)) - RCONST(360) = (GCARR_ac(8.33d-13,490.0d0)) - RCONST(361) = (GCARR_ac(8.33d-13,490.0d0)) - RCONST(362) = (GCARR_ac(4.20d-11,401.0d0)) - RCONST(363) = (GCARR_ac(2.95d-15,-783.0d0)) - RCONST(364) = (1.22d-11) - RCONST(365) = (4.00d-12) - RCONST(366) = (1.50d-11) - RCONST(367) = (GCARR_ac(3.56d-14,708.0d0)) - RCONST(368) = (GCARR_ac(7.40d-13,765.0d0)) - RCONST(369) = (1.20d-12) - RCONST(370) = (GCARR_ac(3.40d-12,190.0d0)) - RCONST(371) = (4.00d-12) - RCONST(372) = (4.00d-12) - RCONST(373) = (GCARR_ac(1.66d-13,1300.0d0)) - RCONST(374) = (GCARR_ac(1.66d-13,1300.0d0)) - RCONST(375) = (GCARR_ac(1.60d-13,708.0d0)) - RCONST(376) = (GCARR_ac(9.68d-14,708.0d0)) - RCONST(377) = (GCARR_ac(8.85d-13,765.0d0)) - RCONST(378) = (GCARR_ac(5.37d-13,765.0d0)) - RCONST(379) = (1.20d-12) - RCONST(380) = (1.20d-12) - RCONST(381) = (GCARR_ac(7.00d-14,1000.0d0)) - RCONST(382) = (GCARR_ac(4.25d-14,1000.0d0)) - RCONST(383) = (GCARR_ac(2.96d-14,1000.0d0)) - RCONST(384) = (4.80d-12) - RCONST(385) = (7.29d-11) - RCONST(386) = (1.67d-16) - RCONST(387) = (GCARR_ac(3.15d-13,-448.0d0)) - RCONST(388) = (GCARR_ac(3.15d-13,-448.0d0)) - RCONST(389) = (2.78d-04) - RCONST(390) = (2.78d-04) - RCONST(391) = (GC_OHHNO3_acacac(2.41d-14,460.0d0,2.69d-17,2199.0d0,6.51d-34,1335.0d0)) - RCONST(392) = (GCARR_ac(8.00d-13,-1000.0d0)) - RCONST(393) = (GCARR_ac(1.00d-12,-490.0d0)) - RCONST(394) = (GCARR_ac(1.20d-12,-320.0d0)) - RCONST(395) = (7.10d-13) - RCONST(396) = (1.3d-17) - RCONST(397) = (GC_ISO1(1.7d-11,3.90d2,9.33d-2,5.05d15,-1.22d4,1.79d14,-8.830d3)) - RCONST(398) = (GC_ISO1(1.0d-11,3.90d2,2.26d-1,2.22d9,-7.160d3,1.75d14,-9.054d3)) - RCONST(399) = (GC_ISO2(1.7d-11,3.90d2,9.33d-2,5.05d15,-1.22d4,1.79d14,-8.830d3)) - RCONST(400) = (GC_ISO2(1.0d-11,3.90d2,2.26d-1,2.22d9,-7.160d3,1.75d14,-9.054d3)) - RCONST(401) = (ARRPLUS_abde(2.12d-13,-1300d0,1.1644d0,-7.0485d-4)) - RCONST(402) = (ARRPLUS_abde(2.12d-13,-1300d0,-0.1644d0,7.0485d-4)) - RCONST(403) = (ARRPLUS_abde(2.12d-13,-1300d0,1.2038d0,-9.0435d-4)) - RCONST(404) = (ARRPLUS_abde(2.12d-13,-1300d0,-0.2038d0,9.0435d-4)) - RCONST(405) = (ARRPLUS_abde(1.04d11,9.746d3,1.1644d0,-7.0485d-4)) - RCONST(406) = (TUNPLUS_abcde(5.05d15,-1.22d4,1.0d8,-0.0128d0,5.1242d-5)) - RCONST(407) = (ARRPLUS_abde(1.88d11,9.752d3,1.2038d0,-9.0435d-4)) - RCONST(408) = (TUNPLUS_abcde(2.22d9,-7.160d3,1.0d8,-0.0306d0,1.1346d-4)) - RCONST(409) = (ARRPLUS_ade(6.92d-14,1.1644d0,-7.0485d-4)) - RCONST(410) = (ARRPLUS_ade(5.74d-12,1.2038d0,-9.0435d-4)) - RCONST(411) = (ARRPLUS_ade(1.54d-12,2.3682d0,-1.6092d-3)) - RCONST(412) = (ARRPLUS_ade(2.49d-12,-0.1644d0,7.0485d-4)) - RCONST(413) = (ARRPLUS_ade(3.94d-12,-0.2038d0,9.0435d-4)) - RCONST(414) = (ARRPLUS_ade(1.54d-12,-0.3682d0,1.6092d-3)) - RCONST(415) = (ARRPLUS_ade(2.0d-12,1.1644d0,-7.0485d-4)) - RCONST(416) = (ARRPLUS_ade(2.0d-12,-0.1644d0,7.0485d-4)) - RCONST(417) = (ARRPLUS_ade(2.0d-12,1.2038d0,-9.0435d-4)) - RCONST(418) = (ARRPLUS_ade(2.0d-12,-0.2038d0,9.0435d-4)) - RCONST(419) = (GC_NIT(2.7d-12,3.50d2,1.19d0,6.0d0,1.1644d0,7.05d-4)) - RCONST(420) = (GC_ALK(2.7d-12,3.50d2,1.19d0,6.0d0,1.1644d0,7.05d-4)) - RCONST(421) = (GC_NIT(2.7d-12,3.50d2,1.421d0,6.0d0,-0.1644d0,-7.05d-4)) - RCONST(422) = (GC_ALK(2.7d-12,3.50d2,1.421d0,6.0d0,-0.1644d0,-7.05d-4)) - RCONST(423) = (GC_NIT(2.7d-12,3.50d2,1.297d0,6.0d0,1.2038d0,9.04d-4)) - RCONST(424) = (GC_ALK(2.7d-12,3.50d2,1.297d0,6.0d0,1.2038d0,9.04d-4)) - RCONST(425) = (GC_NIT(2.7d-12,3.50d2,1.421d0,6.0d0,-0.2038d0,-9.04d-4)) - RCONST(426) = (GC_ALK(2.7d-12,3.50d2,1.421d0,6.0d0,-0.2038d0,-9.04d-4)) - RCONST(427) = (GCARR_ac(1.17d-11,450.0d0)) - RCONST(428) = (GCARR_ac(1.17d-11,450.0d0)) - RCONST(429) = (GCARR_ac(2.20d-11,390.0d0)) - RCONST(430) = (GCARR_ac(3.50d-11,390.0d0)) - RCONST(431) = (GCARR_ac(4.64d-12,650.0d0)) - RCONST(432) = (GCARR_ac(9.85d-12,410.0d0)) - RCONST(433) = (GCARR_ac(3.00d-12,650.0d0)) - RCONST(434) = (GCARR_ac(2.47d-12,390.0d0)) - RCONST(435) = (GC_EPO_a(1.62d-11,3.90d2,4.77d-21)) - RCONST(436) = (GCARR_ac(4.35d-12,390.0d0)) - RCONST(437) = (GC_EPO_a(2.85d-11,390.0d0,4.77d-21)) - RCONST(438) = (GCARR_ac(6.10d-12,200.0d0)) - RCONST(439) = (GCARR_ac(4.10d-12,200.0d0)) - RCONST(440) = (GCARR_ac(3.53d-11,390.0d0)) - RCONST(441) = (GCARR_ac(3.53d-11,390.0d0)) - RCONST(442) = (GCARR_ac(1.59d+13,-10000.0d0)) - RCONST(443) = (GC_ALK(2.7d-12,3.50d2,2.1d0,9.0d0,1.0d0,0.0d0)) - RCONST(444) = (GC_NIT(2.7d-12,3.50d2,2.1d0,9.0d0,1.0d0,0.0d0)) - RCONST(445) = (GCARR_ac(2.47d-13,1300.0d0)) - RCONST(446) = (GCARR_ac(2.91d+13,-10000.0d0)) - RCONST(447) = (GC_ALK(2.7d-12,3.50d2,2.315d0,9.0d0,1.0d0,0.0d0)) - RCONST(448) = (GC_NIT(2.7d-12,3.50d2,2.315d0,9.0d0,1.0d0,0.0d0)) - RCONST(449) = (GCARR_ac(2.47d-13,1300.0d0)) - RCONST(450) = (GCARR_ac(1.875d+13,-10000.0d0)) - RCONST(451) = (GC_ALK(2.7d-12,3.50d2,3.079d0,9.0d0,1.0d0,0.0d0)) - RCONST(452) = (GC_NIT(2.7d-12,3.50d2,3.079d0,9.0d0,1.0d0,0.0d0)) - RCONST(453) = (GCARR_ac(2.47d-13,1300.0d0)) - RCONST(454) = (GCARR_ac(3.22d-11,-400.0d0)) - RCONST(455) = (GCARR_ac(1.05d-11,-400.0d0)) - RCONST(456) = (GC_EPO_a(5.82d-11,-4.00d2,1.14d-20)) - RCONST(457) = (GCARR_ac(8.25d-12,-400.0d0)) - RCONST(458) = (GC_EPO_a(3.75d-11,-4.00d2,8.91d-21)) - RCONST(459) = (GCARR_ac(1.875d+13,-10000.0d0)) - RCONST(460) = (GCARR_ac(1.0d+7,-5000.0d0)) - RCONST(461) = (GCARR_ac(2.38d-13,1300.0d0)) - RCONST(462) = (GC_ALK(2.7d-12,3.50d2,13.098d0,8.0d0,1.0d0,0.0d0)) - RCONST(463) = (GC_NIT(2.7d-12,3.50d2,13.098d0,8.0d0,1.0d0,0.0d0)) + RCONST(101) = (3.35d-12) + RCONST(102) = (GCARR_ac(4.40d-12,70.0d0)) + RCONST(103) = (6.80d-14) + RCONST(104) = (6.80d-14) + RCONST(105) = (GCARR_ac(7.50d-13,700.0d0)) + RCONST(106) = (GCARR_ac(7.50d-13,700.0d0)) + RCONST(107) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,3.0d0)) + RCONST(108) = (GC_RO2HO2_aca(2.91d-13,1300.0d0,3.0d0)) + RCONST(109) = (GCARR_ac(4.30d-13,1040.0d0)) + RCONST(110) = (GCJPLPR_abab(4.60d-27,4.0d0,2.6d-11,1.3d0,0.5d0)) + RCONST(111) = (GCARR_ac(6.50d-15,-1900.0d0)) + RCONST(112) = (GC_GLYCOH_A_a(8.00d-12)) + RCONST(113) = (GC_GLYCOH_B_a(8.00d-12)) + RCONST(114) = (GCARR_ac(4.59d-13,-1156.0d0)) + RCONST(115) = (GCARR_ac(3.10d-12,340.0d0)) + RCONST(116) = (GCARR_ac(1.90d-12,575.0d0)) + RCONST(117) = (GC_GLYXNO3_ac(1.40d-12,-1860.0d0)) + RCONST(118) = (GCARR_ac(3.36d-12,-1860.0d0)) + RCONST(119) = (GC_HACOH_A_ac(2.00d-12,320.0d0)) + RCONST(120) = (GC_HACOH_B_ac(2.00d-12,320.0d0)) + RCONST(121) = (GCARR_ac(8.78d-12,200.0d0)) + RCONST(122) = (GCARR_ac(5.18d-12,200.0d0)) + RCONST(123) = (GCARR_ac(5.18d-12,200.0d0)) + RCONST(124) = (GCARR_ac(8.78d-12,200.0d0)) + RCONST(125) = (GCARR_ac(8.78d-12,200.0d0)) + RCONST(126) = (GCARR_ac(6.13d-13,200.0d0)) + RCONST(127) = (GCARR_ac(8.78d-12,200.0d0)) + RCONST(128) = (GCARR_ac(4.82d-11,-400.0d0)) + RCONST(129) = (3.00d-14) + RCONST(130) = (1.40d-18) + RCONST(131) = (GCARR_ac(2.90d-12,500.0d0)) + RCONST(132) = (GCARR_ac(2.00d-12,500.0d0)) + RCONST(133) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(134) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(135) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(136) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(137) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(138) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(139) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(140) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(141) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(142) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(143) = (GCARR_ac(2.50d-12,500.0d0)) + RCONST(144) = (GCARR_ac(1.87d-12,500.0d0)) + RCONST(145) = (GCARR_ac(8.50d-13,-2450.0d0)) + RCONST(146) = (GCJPLPR_abab(1.00d-30,4.8d+00,7.2d-12,2.1d0,0.6d0)) + RCONST(147) = (GCJPLPR_abcabc(1.05d-02,4.8d+00,-11234.0d0,7.58d16,2.1d0,-11234.0d0,0.6d0)) + RCONST(148) = (GCARR_ac(1.20d-11,-280.0d0)) + RCONST(149) = (GC_DMSOH_acac(8.20d-39,5376.0d0,1.05d-5,3644.0d0)) + RCONST(150) = (GCARR_ac(1.90d-13,530.0d0)) + RCONST(151) = (GCJPLPR_abab(2.90d-31,4.1d+00,1.7d-12,-0.2d0,0.6d0)) + RCONST(152) = (GCARR_ac(1.60d-11,-780.0d0)) + RCONST(153) = (GCARR_ac(4.50d-12,460.0d0)) + RCONST(154) = (GCARR_ac(4.80d-12,-310.0d0)) + RCONST(155) = (GCARR_ac(5.50d-12,200.0d0)) + RCONST(156) = (GCARR_ac(2.40d-12,40.0d0)) + RCONST(157) = (GCARR_ac(2.80d-14,860.0d0)) + RCONST(158) = (GCARR_ac(8.80d-12,260.0d0)) + RCONST(159) = (4.90d-11) + RCONST(160) = (GCARR_ac(2.10d-11,240.0d0)) + RCONST(161) = (GCARR_ac(1.20d-10,-430.0d0)) + RCONST(162) = (GCARR_ac(5.80d-12,-1500.0d0)) + RCONST(163) = (GCARR_ac(1.70d-11,250.0d0)) + RCONST(164) = (1.60d-11) + RCONST(165) = (GCARR_ac(1.70d-11,-800.0d0)) + RCONST(166) = (GCARR_ac(1.80d-11,-460.0d0)) + RCONST(167) = (GCARR_ac(1.66d-10,-7000.0d0)) + RCONST(168) = (GCARR_ac(2.36d-10,-6411.0d0)) + RCONST(169) = (GCARR_ac(8.77d-11,-4330.0d0)) + RCONST(170) = (GCJPLPR_aba(4.20d-31,2.4d0,2.7d-11,0.6d0)) + RCONST(171) = (GCJPLPR_abab(5.40d-31,3.1d0,6.5d-12,2.9d0,0.6d0)) + RCONST(172) = (GCARR_ac(9.00d-13,-360.0d0)) + RCONST(173) = (GCARR_ac(2.00d-12,-840.0d0)) + RCONST(174) = (GCARR_ac(1.42d-12,-1150.0d0)) + RCONST(175) = (GCARR_ac(1.63d-10,60.0d0)) + RCONST(176) = (GCARR_ac(2.15d-11,110.0d0)) + RCONST(177) = (GCARR_ac(3.30d-11,55.0d0)) + RCONST(178) = (1.20d-10) + RCONST(179) = (GCARR_ac(1.19d-10,20.0d0)) + RCONST(180) = (1.75d-10) + RCONST(181) = (GCARR_ab(6.00d-34,2.4d0)*NUMDEN) + RCONST(182) = (GCARR_ac(8.00d-12,-2060.0d0)) + RCONST(183) = (GCARR_ac(2.80d-12,-1800.0d0)) + RCONST(184) = (GCARR_ac(1.80d-11,180.0d0)) + RCONST(185) = (GCARR_ac(3.00d-11,200.0d0)) + RCONST(186) = (2.40d-10) + RCONST(187) = (GCARR_ac(2.10d-11,-2200.0d0)) + RCONST(188) = (GCARR_ac(7.20d-14,-1070.0d0)) + RCONST(189) = (GCJPLAC_ababac(3.4d-31,1.6d0,2.3d-11,0.2d0,5.3d-12,2.0d2,0.6d0)) + RCONST(190) = (1.30d-11) + RCONST(191) = (GCJPLPR_aba(9.00d-32,1.5d+00,3.0d-11,0.6d0)) + RCONST(192) = (GCJPLPR_abab(3.4d-31,1.6d0,2.3d-11,0.2d0,0.6d0)) + RCONST(193) = (GCARR_ac(1.40d-12,-2000.0d0)) + RCONST(194) = (GCJPLPR_abab(5.30d-32,1.8d+00,9.5d-11,-0.4d0,0.6d0)) + RCONST(195) = (GCARR_ac(1.40d-10,-470.0d0)) + RCONST(196) = (8.05d-11) + RCONST(197) = (GCARR_ac(3.30d-12,-3150.0d0)) + RCONST(198) = (GCARR_ac(2.10d-11,100.0d0)) + RCONST(199) = (GCARR_ac(5.80d-12,220.0d0)) + RCONST(200) = (GCARR_ac(1.90d-11,230.0d0)) + RCONST(201) = (GCARR_ac(3.40d-11,-1600.0d0)) + RCONST(202) = (1.50d-10) + RCONST(203) = (1.50d-10) + RCONST(204) = (2.70d-10) + RCONST(205) = (3.30d-10) + RCONST(206) = (2.60d-10) + RCONST(207) = (1.80d-10) + RCONST(208) = (2.70d-10) + RCONST(209) = (6.60d-10) + RCONST(210) = (1.02d-10) + RCONST(211) = (2.30d-10) + RCONST(212) = (1.40d-10) + RCONST(213) = (1.50d-10) + RCONST(214) = (1.00d-10) + RCONST(215) = (2.60d-10) + RCONST(216) = (2.00d-10) + RCONST(217) = (2.00d-10) + RCONST(218) = (2.32d-10) + RCONST(219) = (GCARR_ac(1.30d-10,25.0d0)) + RCONST(220) = (GCARR_ac(5.40d-11,30.0d0)) + RCONST(221) = (GCARR_ac(1.60d-10,0.0d0)) + RCONST(222) = (GCARR_ac(2.60d-12,-1100.0d0)) + RCONST(223) = (GCARR_ac(1.80d-11,-600.0d0)) + RCONST(224) = (GCARR_ac(7.40d-12,270.0d0)) + RCONST(225) = (GCARR_ac(6.00d-13,230.0d0)) + RCONST(226) = (GCARR_ac(1.40d-12,600.0d0)) + RCONST(227) = (GCARR_ac(6.00d-13,670.0d0)) + RCONST(228) = (GCARR_ac(1.80d-12,-250.0d0)) + RCONST(229) = (GCARR_ac(3.00d-12,-500.0d0)) + RCONST(230) = (GCARR_ac(2.40d-12,-1250.0d0)) + RCONST(231) = (GCARR_ac(1.20d-12,-330.0d0)) + RCONST(232) = (GCARR_ac(1.96d-12,-1200.0d0)) + RCONST(233) = (GCARR_ac(1.92d-12,-880.0d0)) + RCONST(234) = (GCARR_ac(2.20d-12,-920.0d0)) + RCONST(235) = (GCARR_ac(1.64d-12,-1520.0d0)) + RCONST(236) = (GCARR_ac(9.20d-13,-1560.0d0)) + RCONST(237) = (GCARR_ac(1.25d-12,-1600.0d0)) + RCONST(238) = (GCARR_ac(1.30d-12,-1770.0d0)) + RCONST(239) = (GCARR_ac(7.40d-13,-900.0d0)) + RCONST(240) = (GCARR_ac(7.10d-12,-1270.0d0)) + RCONST(241) = (GCARR_ac(8.10d-11,-30.0d0)) + RCONST(242) = (GCARR_ac(2.30d-11,-200.0d0)) + RCONST(243) = (GCARR_ac(3.05d-11,-2270.0d0)) + RCONST(244) = (GCARR_ac(1.10d-11,-980.0d0)) + RCONST(245) = (GCARR_ac(1.40d-11,270.0d0)) + RCONST(246) = (GCARR_ac(3.60d-11,-375.0d0)) + RCONST(247) = (GCARR_ac(2.80d-11,85.0d0)) + RCONST(248) = (GCARR_ac(2.60d-12,290.0d0)) + RCONST(249) = (GCARR_ac(6.40d-12,290.0d0)) + RCONST(250) = (GCJPLPR_abab(1.80d-31,3.4d+00,1.50d-11,1.9d0,0.6d0)) + RCONST(251) = (GCARR_ac(1.00d-12,-1590.0d0)) + RCONST(252) = (GCARR_ac(3.00d-11,-2450.0d0)) + RCONST(253) = (GCARR_ac(3.50d-13,-1370.0d0)) + RCONST(254) = (GCJPLPR_aba(2.20d-33,3.1d+00,1.8d-10,0.6d0)) + RCONST(255) = (GCJPLEQ_acabab(6.60d-25,2502.0d0,2.20d-33,3.1d+00,1.8d-10,0.0d0,0.6d0)) + RCONST(256) = (GCJPLPR_abab(1.90d-32,3.6d+00,3.7d-12,1.6d0,0.6d0)) + RCONST(257) = (GCJPLEQ_acabab(2.16d-27,8537.0d0,1.90d-32,3.6d+00,3.7d-12,1.6d0,0.6d0)) + RCONST(258) = (2.42d-10) + RCONST(259) = (GCARR_ac(9.50d-13,550.0d0)) + RCONST(260) = (GCARR_ac(2.30d-12,260.0d0)) + RCONST(261) = (GCARR_ac(4.10d-13,290.0d0)) + RCONST(262) = (GCARR_ac(3.60d-12,-840.0d0)) + RCONST(263) = (GCARR_ac(6.50d-12,135.0d0)) + RCONST(264) = (GCARR_ac(2.03d-11,-1110.0d0)) + RCONST(265) = (GCARR_ac(7.40d-12,-910.0d0)) + RCONST(266) = (GCARR_ac(3.30d-12,-990.0d0)) + RCONST(267) = (2.00d-13) + RCONST(268) = (1.60d-10) + RCONST(269) = (5.7d-11) + RCONST(270) = (GCARR_ac(7.2d-11,-70.0d0)) + RCONST(271) = (7.4d-11) + RCONST(272) = (7.4d-11) + RCONST(273) = (5.5d-11) + RCONST(274) = (9.6d-11) + RCONST(275) = (2.8d-14) + RCONST(276) = (GCARR_ac(6.54d-11,60.0d0)) + RCONST(277) = (GCARR_ac(8.12d-11,-90.0d0)) + RCONST(278) = (GCARR_ac(1.63d-11,-610.0d0)) + RCONST(279) = (GCARR_ac(7.60d-11,500.0d0)) + RCONST(280) = (2.05d-10) + RCONST(281) = (GCJPLPR_aa(4.00d-28,2.8d-10,0.6d0)) + RCONST(282) = (3.60d-12) + RCONST(283) = (GCJPLPR_aba(1.80d-32,1.0d0,1.70d-11,0.6d0)) + RCONST(284) = (GCARR_ac(8.40d-11,-2620.0d0)) + RCONST(285) = (GCJPLPR_aba(3.00d-31,1.0d0,6.6d-11,0.6d0)) + RCONST(286) = (GCARR_ac(9.94d+17,-11859.0d0)) + RCONST(287) = (GCARR_ac(2.90d-11,-2600.0d0)) + RCONST(288) = (1.50d-12) + RCONST(289) = (GCJPLPR_abab(7.50d-31,3.5d0,7.6d-12,1.5d0,0.6d0)) + RCONST(290) = (GCARR_ac(2.10d+15,-13670.0d0)) + RCONST(291) = (GCARR_ac(9.10d-11,-146.0d0)) + RCONST(292) = (1.20d-11) + RCONST(293) = (GCARR_ac(5.50d-12,760.0d0)) + RCONST(294) = (1.00d-10) + RCONST(295) = (1.50d-10) + RCONST(296) = (3.80d-02) + RCONST(297) = (GCARR_ac(1.10d-12,542.0d0)) + RCONST(298) = (GCARR_ac(4.82d-12,280.0d0)) + RCONST(299) = (GCARR_ac(2.00d-11,-830.0d0)) + RCONST(300) = (GCARR_ac(1.50d-11,-1090.0d0)) + RCONST(301) = (1.80d-10) + RCONST(302) = (3.00d-11) + RCONST(303) = (5.00d-12) + RCONST(304) = (GCARR_ac(1.30d-11,570.0d0)) + RCONST(305) = (GCARR_ac(8.60d-12,230.0d0)) + RCONST(306) = (GCARR_ac(1.50d-11,500.0d0)) + RCONST(307) = (GCARR_ac(2.51d+14,-9770.0d0)) + RCONST(308) = (GCARR_ac(2.90d-12,-1100.0d0)) + RCONST(309) = (2.40d-12) + RCONST(310) = (6.70d-13) + RCONST(311) = (1.20d-15) + RCONST(312) = (1.00d-14) + RCONST(313) = (4.25d-12) + RCONST(314) = (2.80d-16) + RCONST(315) = (GCARR_ac(2.88d-35,1391.0d0)) + RCONST(316) = (1.40d-12) + RCONST(317) = (3.80d-11) + RCONST(318) = (1.20d-15) + RCONST(319) = (1.00d-14) + RCONST(320) = (4.25d-12) + RCONST(321) = (2.65d-11) + RCONST(322) = (6.00d-18) + RCONST(323) = (1.00d-17) + RCONST(324) = (GCARR_ac(1.21d-11,440.0d0)) + RCONST(325) = (GCARR_ac(1.21d-11,440.0d0)) + RCONST(326) = (4.00d-12) + RCONST(327) = (1.50d-11) + RCONST(328) = (GCARR_ac(3.56d-14,708.0d0)) + RCONST(329) = (GCARR_ac(7.40d-13,765.0d0)) + RCONST(330) = (1.20d-12) + RCONST(331) = (GCARR_ac(5.00d-16,-530.0d0)) + RCONST(332) = (GCARR_ac(5.00d-16,-530.0d0)) + RCONST(333) = (GCARR_ac(8.33d-13,490.0d0)) + RCONST(334) = (GCARR_ac(8.33d-13,490.0d0)) + RCONST(335) = (GCARR_ac(4.20d-11,401.0d0)) + RCONST(336) = (GCARR_ac(2.95d-15,-783.0d0)) + RCONST(337) = (1.22d-11) + RCONST(338) = (4.00d-12) + RCONST(339) = (1.50d-11) + RCONST(340) = (GCARR_ac(3.56d-14,708.0d0)) + RCONST(341) = (GCARR_ac(7.40d-13,765.0d0)) + RCONST(342) = (1.20d-12) + RCONST(343) = (GCARR_ac(3.40d-12,190.0d0)) + RCONST(344) = (4.00d-12) + RCONST(345) = (4.00d-12) + RCONST(346) = (GCARR_ac(1.66d-13,1300.0d0)) + RCONST(347) = (GCARR_ac(1.66d-13,1300.0d0)) + RCONST(348) = (GCARR_ac(1.60d-13,708.0d0)) + RCONST(349) = (GCARR_ac(9.68d-14,708.0d0)) + RCONST(350) = (GCARR_ac(8.85d-13,765.0d0)) + RCONST(351) = (GCARR_ac(5.37d-13,765.0d0)) + RCONST(352) = (1.20d-12) + RCONST(353) = (1.20d-12) + RCONST(354) = (GCARR_ac(7.00d-14,1000.0d0)) + RCONST(355) = (GCARR_ac(4.25d-14,1000.0d0)) + RCONST(356) = (GCARR_ac(2.96d-14,1000.0d0)) + RCONST(357) = (4.80d-12) + RCONST(358) = (7.29d-11) + RCONST(359) = (1.67d-16) + RCONST(360) = (GCARR_ac(3.15d-13,-448.0d0)) + RCONST(361) = (GCARR_ac(3.15d-13,-448.0d0)) + RCONST(362) = (2.78d-04) + RCONST(363) = (2.78d-04) + RCONST(364) = (GCJPLPR_abab(3.9d-31,7.2d0,1.5d-13,4.8d0,0.6d0)+GCJPLAC_ababac(3.9d-31,7.2d0,1.5d-13,4.8d0,3.7d-14,& + &2.4d2,0.6d0)) + RCONST(365) = (GCARR_ac(8.00d-13,-1000.0d0)) + RCONST(366) = (GCARR_ac(1.00d-12,-490.0d0)) + RCONST(367) = (GCARR_ac(1.20d-12,-320.0d0)) + RCONST(368) = (7.10d-13) + RCONST(369) = (GCARR_ac(1.10d-14,-2000.0d0)) + RCONST(370) = (GC_ISO1(1.7d-11,3.90d2,9.33d-2,5.05d15,-1.22d4,1.79d14,-8.830d3)) + RCONST(371) = (GC_ISO1(1.0d-11,3.90d2,2.26d-1,2.22d9,-7.160d3,1.75d14,-9.054d3)) + RCONST(372) = (GC_ISO2(1.7d-11,3.90d2,9.33d-2,5.05d15,-1.22d4,1.79d14,-8.830d3)) + RCONST(373) = (GC_ISO2(1.0d-11,3.90d2,2.26d-1,2.22d9,-7.160d3,1.75d14,-9.054d3)) + RCONST(374) = (ARRPLUS_abde(2.12d-13,-1300d0,1.1644d0,-7.0485d-4)) + RCONST(375) = (ARRPLUS_abde(2.12d-13,-1300d0,-0.1644d0,7.0485d-4)) + RCONST(376) = (ARRPLUS_abde(2.12d-13,-1300d0,1.2038d0,-9.0435d-4)) + RCONST(377) = (ARRPLUS_abde(2.12d-13,-1300d0,-0.2038d0,9.0435d-4)) + RCONST(378) = (ARRPLUS_abde(1.04d11,9.746d3,1.1644d0,-7.0485d-4)) + RCONST(379) = (TUNPLUS_abcde(5.05d15,-1.22d4,1.0d8,-0.0128d0,5.1242d-5)) + RCONST(380) = (ARRPLUS_abde(1.88d11,9.752d3,1.2038d0,-9.0435d-4)) + RCONST(381) = (TUNPLUS_abcde(2.22d9,-7.160d3,1.0d8,-0.0306d0,1.1346d-4)) + RCONST(382) = (ARRPLUS_ade(6.92d-14,1.1644d0,-7.0485d-4)) + RCONST(383) = (ARRPLUS_ade(5.74d-12,1.2038d0,-9.0435d-4)) + RCONST(384) = (ARRPLUS_ade(1.54d-12,2.3682d0,-1.6092d-3)) + RCONST(385) = (ARRPLUS_ade(2.49d-12,-0.1644d0,7.0485d-4)) + RCONST(386) = (ARRPLUS_ade(3.94d-12,-0.2038d0,9.0435d-4)) + RCONST(387) = (ARRPLUS_ade(1.54d-12,-0.3682d0,1.6092d-3)) + RCONST(388) = (ARRPLUS_ade(2.0d-12,1.1644d0,-7.0485d-4)) + RCONST(389) = (ARRPLUS_ade(2.0d-12,-0.1644d0,7.0485d-4)) + RCONST(390) = (ARRPLUS_ade(2.0d-12,1.2038d0,-9.0435d-4)) + RCONST(391) = (ARRPLUS_ade(2.0d-12,-0.2038d0,9.0435d-4)) + RCONST(392) = (GC_NIT(2.7d-12,3.50d2,1.19d0,6.0d0,1.1644d0,7.05d-4)) + RCONST(393) = (GC_ALK(2.7d-12,3.50d2,1.19d0,6.0d0,1.1644d0,7.05d-4)) + RCONST(394) = (GC_NIT(2.7d-12,3.50d2,1.421d0,6.0d0,-0.1644d0,-7.05d-4)) + RCONST(395) = (GC_ALK(2.7d-12,3.50d2,1.421d0,6.0d0,-0.1644d0,-7.05d-4)) + RCONST(396) = (GC_NIT(2.7d-12,3.50d2,1.297d0,6.0d0,1.2038d0,9.04d-4)) + RCONST(397) = (GC_ALK(2.7d-12,3.50d2,1.297d0,6.0d0,1.2038d0,9.04d-4)) + RCONST(398) = (GC_NIT(2.7d-12,3.50d2,1.421d0,6.0d0,-0.2038d0,-9.04d-4)) + RCONST(399) = (GC_ALK(2.7d-12,3.50d2,1.421d0,6.0d0,-0.2038d0,-9.04d-4)) + RCONST(400) = (GCARR_ac(1.17d-11,450.0d0)) + RCONST(401) = (GCARR_ac(1.17d-11,450.0d0)) + RCONST(402) = (GCARR_ac(2.20d-11,390.0d0)) + RCONST(403) = (GCARR_ac(3.50d-11,390.0d0)) + RCONST(404) = (GCARR_ac(4.64d-12,650.0d0)) + RCONST(405) = (GCARR_ac(9.85d-12,410.0d0)) + RCONST(406) = (GCARR_ac(3.00d-12,650.0d0)) + RCONST(407) = (GCARR_ac(2.47d-12,390.0d0)) + RCONST(408) = (GC_EPO_a(1.62d-11,3.90d2,4.77d-21)) + RCONST(409) = (GCARR_ac(4.35d-12,390.0d0)) + RCONST(410) = (GC_EPO_a(2.85d-11,390.0d0,4.77d-21)) + RCONST(411) = (GCARR_ac(6.10d-12,200.0d0)) + RCONST(412) = (GCARR_ac(4.10d-12,200.0d0)) + RCONST(413) = (GCARR_ac(3.53d-11,390.0d0)) + RCONST(414) = (GCARR_ac(3.53d-11,390.0d0)) + RCONST(415) = (GCARR_ac(1.59d+13,-10000.0d0)) + RCONST(416) = (GC_ALK(2.7d-12,3.50d2,2.1d0,9.0d0,1.0d0,0.0d0)) + RCONST(417) = (GC_NIT(2.7d-12,3.50d2,2.1d0,9.0d0,1.0d0,0.0d0)) + RCONST(418) = (GCARR_ac(2.47d-13,1300.0d0)) + RCONST(419) = (GCARR_ac(2.91d+13,-10000.0d0)) + RCONST(420) = (GC_ALK(2.7d-12,3.50d2,2.315d0,9.0d0,1.0d0,0.0d0)) + RCONST(421) = (GC_NIT(2.7d-12,3.50d2,2.315d0,9.0d0,1.0d0,0.0d0)) + RCONST(422) = (GCARR_ac(2.47d-13,1300.0d0)) + RCONST(423) = (GCARR_ac(1.875d+13,-10000.0d0)) + RCONST(424) = (GC_ALK(2.7d-12,3.50d2,3.079d0,9.0d0,1.0d0,0.0d0)) + RCONST(425) = (GC_NIT(2.7d-12,3.50d2,3.079d0,9.0d0,1.0d0,0.0d0)) + RCONST(426) = (GCARR_ac(2.47d-13,1300.0d0)) + RCONST(427) = (GCARR_ac(3.22d-11,-400.0d0)) + RCONST(428) = (GCARR_ac(1.05d-11,-400.0d0)) + RCONST(429) = (GC_EPO_a(5.82d-11,-4.00d2,1.14d-20)) + RCONST(430) = (GCARR_ac(8.25d-12,-400.0d0)) + RCONST(431) = (GC_EPO_a(3.75d-11,-4.00d2,8.91d-21)) + RCONST(432) = (GCARR_ac(1.875d+13,-10000.0d0)) + RCONST(433) = (GCARR_ac(1.0d+7,-5000.0d0)) + RCONST(434) = (GCARR_ac(2.38d-13,1300.0d0)) + RCONST(435) = (GC_ALK(2.7d-12,3.50d2,13.098d0,8.0d0,1.0d0,0.0d0)) + RCONST(436) = (GC_NIT(2.7d-12,3.50d2,13.098d0,8.0d0,1.0d0,0.0d0)) + RCONST(437) = (GCARR_ac(1.875d+13,-10000.0d0)) + RCONST(438) = (GCARR_ac(1.0d+7,-5000.0d0)) + RCONST(439) = (GC_ALK(2.7d-12,3.50d2,16.463d0,8.0d0,1.0d0,0.0d0)) + RCONST(440) = (GC_NIT(2.7d-12,3.50d2,16.463d0,8.0d0,1.0d0,0.0d0)) + RCONST(441) = (GCARR_ac(2.38d-13,1300.0d0)) + RCONST(442) = (GCARR_ac(2.38d-13,1300.0d0)) + RCONST(443) = (GC_NIT(2.7d-12,3.50d2,13.098d0,8.0d0,1.0d0,0.0d0)) + RCONST(444) = (GC_ALK(2.7d-12,3.50d2,13.098d0,8.0d0,1.0d0,0.0d0)) + RCONST(445) = (GCARR_ac(1.875d+13,-10000.0d0)) + RCONST(446) = (GCARR_ac(2.70d-12,350.0d0)) + RCONST(447) = (GCARR_ac(2.38d-13,1300.0d0)) + RCONST(448) = (GCARR_ac(2.70d-12,350.0d0)) + RCONST(449) = (GCARR_ac(2.38d-13,1300.0d0)) + RCONST(450) = (GCARR_ac(7.14d-12,390.0d0)) + RCONST(451) = (GC_EPO_a(6.30d-12,390.0d0,1.62d-19)) + RCONST(452) = (GCARR_ac(1.02d-11,390.0d0)) + RCONST(453) = (GC_EPO_a(1.05d-11,390.0d0,2.49d-19)) + RCONST(454) = (GC_EPO_a(1.55d-11,390.0d0,2.715d-19)) + RCONST(455) = (GCARR_ac(2.04d-11,390.0d0)) + RCONST(456) = (GC_EPO_a(9.52d-12,390.0d0,2.715d-19)) + RCONST(457) = (GCARR_ac(2.95d-11,390.0d0)) + RCONST(458) = (GCARR_ac(7.5d-12,20.0d0)) + RCONST(459) = (GCARR_ac(7.5d-12,20.0d0)) + RCONST(460) = (GCARR_ac(1.875d+13,-10000.0d0)) + RCONST(461) = (GCARR_ac(2.60d-13,1300.0d0)) + RCONST(462) = (GC_ALK(2.7d-12,350.0d0,6.32d0,11.0d0,1.0d0,0.0d0)) + RCONST(463) = (GC_NIT(2.7d-12,350.0d0,6.32d0,11.0d0,1.0d0,0.0d0)) RCONST(464) = (GCARR_ac(1.875d+13,-10000.0d0)) - RCONST(465) = (GCARR_ac(1.0d+7,-5000.0d0)) - RCONST(466) = (GC_ALK(2.7d-12,3.50d2,16.463d0,8.0d0,1.0d0,0.0d0)) - RCONST(467) = (GC_NIT(2.7d-12,3.50d2,16.463d0,8.0d0,1.0d0,0.0d0)) - RCONST(468) = (GCARR_ac(2.38d-13,1300.0d0)) - RCONST(469) = (GCARR_ac(2.38d-13,1300.0d0)) - RCONST(470) = (GC_NIT(2.7d-12,3.50d2,13.098d0,8.0d0,1.0d0,0.0d0)) - RCONST(471) = (GC_ALK(2.7d-12,3.50d2,13.098d0,8.0d0,1.0d0,0.0d0)) - RCONST(472) = (GCARR_ac(1.875d+13,-10000.0d0)) - RCONST(473) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(474) = (GCARR_ac(2.38d-13,1300.0d0)) - RCONST(475) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(476) = (GCARR_ac(2.38d-13,1300.0d0)) - RCONST(477) = (GCARR_ac(7.14d-12,390.0d0)) - RCONST(478) = (GC_EPO_a(6.30d-12,390.0d0,1.62d-19)) - RCONST(479) = (GCARR_ac(1.02d-11,390.0d0)) - RCONST(480) = (GC_EPO_a(1.05d-11,390.0d0,2.49d-19)) - RCONST(481) = (GC_EPO_a(1.55d-11,390.0d0,2.715d-19)) - RCONST(482) = (GCARR_ac(2.04d-11,390.0d0)) - RCONST(483) = (GC_EPO_a(9.52d-12,390.0d0,2.715d-19)) - RCONST(484) = (GCARR_ac(2.95d-11,390.0d0)) - RCONST(485) = (GCARR_ac(7.5d-12,20.0d0)) - RCONST(486) = (GCARR_ac(7.5d-12,20.0d0)) - RCONST(487) = (GCARR_ac(1.875d+13,-10000.0d0)) - RCONST(488) = (GCARR_ac(2.60d-13,1300.0d0)) - RCONST(489) = (GC_ALK(2.7d-12,350.0d0,6.32d0,11.0d0,1.0d0,0.0d0)) - RCONST(490) = (GC_NIT(2.7d-12,350.0d0,6.32d0,11.0d0,1.0d0,0.0d0)) - RCONST(491) = (GCARR_ac(1.875d+13,-10000.0d0)) - RCONST(492) = (GCARR_ac(2.60d-13,1300.0d0)) - RCONST(493) = (GC_ALK(2.7d-12,350.0d0,7.941d0,11.0d0,1.0d0,0.0d0)) - RCONST(494) = (GC_NIT(2.7d-12,350.0d0,7.941d0,11.0d0,1.0d0,0.0d0)) - RCONST(495) = (GCARR_ac(1.256d+13,-10000.0d0)) - RCONST(496) = (GCARR_ac(5.092d+12,-10000.0d0)) - RCONST(497) = (GCARR_ac(2.60d-13,1300.0d0)) - RCONST(498) = (GC_ALK(2.7d-12,350.0d0,4.712d0,11.0d0,1.0d0,0.0d0)) - RCONST(499) = (GC_NIT(2.7d-12,350.0d0,4.712d0,11.0d0,1.0d0,0.0d0)) - RCONST(500) = (GCARR_ac(2.60d-13,1300.0d0)) - RCONST(501) = (GC_ALK(2.7d-12,350.0d0,2.258d0,11.0d0,1.0d0,0.0d0)) - RCONST(502) = (GC_NIT(2.7d-12,350.0d0,2.258d0,11.0d0,1.0d0,0.0d0)) - RCONST(503) = (GCARR_ac(2.60d-13,1300.0d0)) - RCONST(504) = (GC_ALK(2.7d-12,350.0d0,1.851d0,11.0d0,1.0d0,0.0d0)) - RCONST(505) = (GC_NIT(2.7d-12,350.0d0,1.851d0,11.0d0,1.0d0,0.0d0)) - RCONST(506) = (GCARR_ac(2.95d-12,450.0d0)) - RCONST(507) = (GCARR_ac(2.47d-13,1300.0d0)) - RCONST(508) = (GCARR_ac(2.47d-13,1300.0d0)) - RCONST(509) = (1.61d-12) - RCONST(510) = (2.56d-12) - RCONST(511) = (3.71d-12) - RCONST(512) = (1.18d-12) - RCONST(513) = (2.80d-13) - RCONST(514) = (1.92d-12) - RCONST(515) = (7.71d-12) - RCONST(516) = (2.3d-12) - RCONST(517) = (2.3d-12) - RCONST(518) = (GC_ALK(2.7d-12,350.0d0,12.915d0,9.0d0,1.0d0,0.0d0)) - RCONST(519) = (GC_NIT(2.7d-12,350.0d0,12.915d0,9.0d0,1.0d0,0.0d0)) - RCONST(520) = (GC_ALK(2.7d-12,350.0d0,1.412d0,9.0d0,1.0d0,0.0d0)) - RCONST(521) = (GC_NIT(2.7d-12,350.0d0,1.412d0,9.0d0,1.0d0,0.0d0)) - RCONST(522) = (GCARR_ac(2.50d-14,-300.0d0)) - RCONST(523) = (GCARR_ac(1.00d+20,-10000.0d0)) - RCONST(524) = (GCARR_ac(5.88d-12,390.0d0)) - RCONST(525) = (GCARR_ac(1.61d-11,390.0d0)) - RCONST(526) = (GC_EPO_a(4.471d-12,390.0d0,2.28d-20)) - RCONST(527) = (GC_EPO_a(8.77d-12,390.0d0,2.185d-20)) - RCONST(528) = (GC_EPO_a(1.493d-11,390.0d0,2.715d-19)) - RCONST(529) = (GCARR_ac(2.278d-12,200.0d0)) - RCONST(530) = (GCARR_ac(3.40d-12,200.0d0)) - RCONST(531) = (GCARR_ac(7.50d-12,20.0d0)) - RCONST(532) = (GCARR_ac(6.55d+12,-10000.0d0)) - RCONST(533) = (GCARR_ac(8.72d+12,-10000.0d0)) - RCONST(534) = (GCARR_ac(2.64d-13,1300.0d0)) - RCONST(535) = (GCARR_ac(2.64d-13,1300.0d0)) - RCONST(536) = (GC_ALK(2.7d-12,350.0d0,6.092d0,12.0d0,1.0d0,0.0d0)) - RCONST(537) = (GC_NIT(2.7d-12,350.0d0,6.092d0,12.0d0,1.0d0,0.0d0)) - RCONST(538) = (GC_ALK(2.7d-12,350.0d0,4.383d0,12.0d0,1.0d0,0.0d0)) - RCONST(539) = (GC_NIT(2.7d-12,350.0d0,4.383d0,12.0d0,1.0d0,0.0d0)) - RCONST(540) = (GC_EPO_a(2.97d-12,390.0d0,2.715d-19)) - RCONST(541) = (GCARR_ac(9.35d-12,390.0d0)) - RCONST(542) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(543) = (GCARR_ac(2.54d-13,1300.0d0)) - RCONST(544) = (GCARR_ac(1.00d-11,0.0d0)) - RCONST(545) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(546) = (GCARR_ac(2.71d-13,1300.0d0)) - RCONST(547) = (GCARR_ac(2.60d-12,610.0d0)) - RCONST(548) = (GCARR_ac(8.50d-16,-1520.0d0)) - RCONST(549) = (GCARR_ac(4.40d-12,380.0d0)) - RCONST(550) = (GCARR_ac(2.70d-12,470.0d0)) - RCONST(551) = (GCARR_ac(1.40d-15,-2100.0d0)) - RCONST(552) = (GCARR_ac(1.80d-13,-1190.0d0)) - RCONST(553) = (GCARR_ac(1.24d-12,380.0d0)) - RCONST(554) = (5.77d-11) - RCONST(555) = (GCARR_ac(2.70d-12,470.0d0)) - RCONST(556) = (GCARR_ac(1.39d-11,380.0d0)) - RCONST(557) = (GCARR_ac(2.70d-12,470.0d0)) - RCONST(558) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(559) = (GCARR_ac(1.93d-13,1300.0d0)) - RCONST(560) = (9.00d-12) - RCONST(561) = (GCARR_ac(2.70d-12,350.0d0)) - RCONST(562) = (GCARR_ac(1.93d-13,1300.0d0)) - RCONST(563) = (9.00d-12) - RCONST(564) = (GCARR_ac(3.71d-12,983.0d0)) - RCONST(565) = (GCARR_ac(5.00d-12,470.0d0)) - RCONST(566) = (GCARR_ac(8.70d-12,70.0d0)) - RCONST(567) = (GCARR_ac(5.00d-12,470.0d0)) - RCONST(568) = (GCARR_ac(2.00d-12,70.0d0)) - RCONST(569) = (GCARR_ac(2.4d-11,70.0d0)) - RCONST(570) = (GCARR_ac(2.12d-13,1300.0d0)) - RCONST(571) = (GC_ALK(2.7d-12,350.0d0,4.573d0,6.0d0,1.0d0,0.0d0)) - RCONST(572) = (GC_NIT(2.7d-12,350.0d0,4.573d0,6.0d0,1.0d0,0.0d0)) - RCONST(573) = (GCARR_ac(2.12d-13,1300.0d0)) - RCONST(574) = (GCARR_ac(3.14d-12,580.0d0)) - RCONST(575) = (1.66d-11) - RCONST(576) = (GCARR_ac(2.90d+7,-5297.0d0)) - RCONST(577) = (GC_ALK(2.7d-12,350.0d0,2.985d0,6.0d0,1.0d0,0.0d0)) - RCONST(578) = (GC_NIT(2.7d-12,350.0d0,2.985d0,6.0d0,1.0d0,0.0d0)) - RCONST(579) = (GCARR_ac(8.7d-12,290.0d0)) - RCONST(580) = (GC_PAN_acac(2.591d-28,-6.87d0,1.125d-11,-1.105d0,0.3d0)) - RCONST(581) = (GCARR_ac(3.14d-12,580.0d0)) - RCONST(582) = (GCARR_ac(7.50d-12,290.0d0)) - RCONST(583) = (GC_PAN_acac(2.591d-28,-6.87d0,1.125d-11,-1.105d0,0.3d0)) - RCONST(584) = (4.00d-12) - RCONST(585) = (GCARR_ac(2.9d-12,500.0d0)) - RCONST(586) = (GCARR_ac(1.58d+16,-13500.0d0)) - RCONST(587) = (2.90d-11) - RCONST(588) = (4.33d-12) - RCONST(589) = (1.00d-11) - RCONST(590) = (2.25d-11) - RCONST(591) = (3.00d-12) - RCONST(592) = (3.00d-12) - RCONST(593) = (1.00d-11) - RCONST(594) = (3.00d-12) - RCONST(595) = (GCARR_ac(1.40d-12,-1860.0d0)) - RCONST(596) = (8.00d-13) - RCONST(597) = (GCARR_ac(1.30d-12,500.0d0)) - RCONST(598) = (GCARR_ac(3.14d-12,580.0d0)) - RCONST(599) = (GCARR_ac(1.55d-12,340.0d0)) - RCONST(600) = (2.91d-11) - RCONST(601) = (GCARR_ac(1.56d-11,117.0d0)) - RCONST(602) = (GCARR_ac(1.40d-12,700.0d0)) - RCONST(603) = (GCARR_ac(2.60d-12,350.0d0)) - RCONST(604) = (GCARR_abc(9.10d-15,0.0d0,-2580.0d0)) - RCONST(605) = (GCJPLPR_abab(1.10d-28,3.5d+00,8.4d-12,1.75d0,0.5d0)) - RCONST(606) = (GCJPLPR_abab(5.50d-30,0.0d0,8.3d-13,-2.0d0,0.5d0)) - RCONST(607) = (GCARR_abc(1.53d-13,0.0d0,1300.0d0)) - RCONST(608) = (GCARR_abc(2.7d-12,0.0d+00,360.0d0)) - RCONST(609) = (2.3d-12) - RCONST(610) = (6.00d-13) - RCONST(611) = (GCARR_abc(9.5d+13,0.0d0,-5988.0d0)) - RCONST(612) = (GCARR_abc(2.5d-14,0.0d0,-300.0d0)) - RCONST(613) = (8.40d-13) - RCONST(614) = (GCARR_abc(1.90d-12,0.0d+00,190.0d0)) - RCONST(615) = (1.38d-11) - RCONST(616) = (GCARR_abc(2.3d-12,0.0d0,-193.0d0)) - RCONST(617) = (GCARR_abc(1.8d-12,0.0d0,340.0d0)) - RCONST(618) = (1.7d-11) - RCONST(619) = (2.91d-13*EXP(1300.0d0/TEMP)*0.82d0) - RCONST(620) = (GCARR_abc(2.60d-12,0.0d+00,365.0d0)) - RCONST(621) = (2.30d-12) - RCONST(622) = (GCARR_abc(1.70d-14,0.0d0,220.0d0)) - RCONST(623) = (GCARR_abc(4.20d-14,0.0d0,220.0d0)) - RCONST(624) = (GCARR_abc(4.70d-13,0.0d0,1220.0d0)) - RCONST(625) = (3.8d-12) - RCONST(626) = (4.7d-11) - RCONST(627) = (1.4d-11) - RCONST(628) = (2.0d-11) - RCONST(629) = (9.2d-18) - RCONST(630) = (9.9d-11) - RCONST(631) = (GCARR_abc(5.90d-12,0.0d0,225.0d0)) - RCONST(632) = (2.4d-15) - RCONST(633) = (GCARR_abc(1.10d-11,0.0d0,340.0d0)) - RCONST(634) = (GCARR_abc(7.50d-12,0.0d0,290.0d0)) - RCONST(635) = (GC_PAN_acac(3.28d-28,-6.87d0,1.125d-11,-1.105d0,0.3d0)) - RCONST(636) = (4.66d-12) - RCONST(637) = (GC_PAN_abab(1.10d-5,-10100.0d0,1.90d+17,-14100.0d0,0.3d0)*0.67d0) - RCONST(638) = (1.06d-12) - RCONST(639) = (7.00d-12) - RCONST(640) = (GCARR_abc(2.670d-12,0.0d0,365.0d0)) - RCONST(641) = (2.30d-12) - RCONST(642) = (GCARR_abc(2.24d-13,0.0d0,1300.0d0)) - RCONST(643) = (3.60d-12) - RCONST(644) = (2.86d-13) - RCONST(645) = (2.08d-12) - RCONST(646) = (3.47d-12) - RCONST(647) = (2.60d-12) - RCONST(648) = (GCARR_abc(2.670d-13,0.0d0,365.0d0)) - RCONST(649) = (GCARR_abc(2.670d-12,0.0d0,365.0d0)) - RCONST(650) = (5.0d-11) - RCONST(651) = (8.0d-16) - RCONST(652) = (1.5d-3) - RCONST(653) = (5.0d-11) - RCONST(654) = (8.0d-16) - RCONST(655) = (1.5d-3) - RCONST(656) = (GCARR_abc(1.40d-12,0.0d0,700.0d0)) - RCONST(657) = (GCARR_abc(2.60d-12,0.0d0,350.0d0)) - RCONST(658) = (GCARR_abc(1.40d-12,0.0d0,700.0d0)) - RCONST(659) = (GCARR_abc(2.60d-12,0.0d0,350.0d0)) - RCONST(660) = (GCARR_abc(1.40d-12,0.0d0,700.0d0)) - RCONST(661) = (GCARR_abc(2.60d-12,0.0d0,350.0d0)) - RCONST(662) = (1.20d-12) - RCONST(663) = (HO2uptk1stOrd(State_Het)) - RCONST(664) = (NO2uptk1stOrdAndCloud(State_Het)) - RCONST(665) = (NO3uptk1stOrdAndCloud(State_Het)) - RCONST(666) = (NO3hypsisClonSALA(State_Het)) - RCONST(667) = (NO3hypsisClonSALC(State_Het)) - RCONST(668) = (N2O5uptkByH2O(State_Het)) - RCONST(669) = (N2O5uptkByStratHCl(State_Het)) - RCONST(670) = (N2O5uptkByCloud(State_Het)) - RCONST(671) = (N2O5uptkBySALACl(State_Het)) - RCONST(672) = (N2O5uptkBySALCCl(State_Het)) - RCONST(673) = (OHuptkBySALACl(State_Het)) - RCONST(674) = (OHuptkBySALCCl(State_Het)) - RCONST(675) = (BrNO3uptkByH2O(State_Het)) - RCONST(676) = (BrNO3uptkByHCl(State_Het)) - RCONST(677) = (ClNO3uptkByH2O(State_Het)) - RCONST(678) = (ClNO3uptkByHCl(State_Het)) - RCONST(679) = (ClNO3uptkByHBr(State_Het)) - RCONST(680) = (ClNO3uptkByBrSALA(State_Het)) - RCONST(681) = (ClNO3uptkByBrSALC(State_Het)) - RCONST(682) = (ClNO3uptkBySALACL(State_Het)) - RCONST(683) = (ClNO3uptkBySALCCL(State_Het)) - RCONST(684) = (ClNO2uptkBySALACL(State_Het)) - RCONST(685) = (ClNO2uptkBySALCCL(State_Het)) - RCONST(686) = (ClNO2uptkByHCl(State_Het)) - RCONST(687) = (ClNO2uptkByBrSALA(State_Het)) - RCONST(688) = (ClNO2uptkByBrSALC(State_Het)) - RCONST(689) = (ClNO2uptkByHBr(State_Het)) - RCONST(690) = (HOClUptkByHCl(State_Het)) - RCONST(691) = (HOClUptkByHBr(State_Het)) - RCONST(692) = (HOClUptkBySALACL(State_Het)) - RCONST(693) = (HOClUptkBySALCCL(State_Het)) - RCONST(694) = (HOClUptkByHSO3m(State_Het)+HOClUptkBySO3mm(State_Het)) - RCONST(695) = (HOBrUptkByHBr(State_Het)) - RCONST(696) = (HOBrUptkByHCl(State_Het)) - RCONST(697) = (HOBrUptkBySALACL(State_Het)) - RCONST(698) = (HOBrUptkBySALCCL(State_Het)) - RCONST(699) = (HOBrUptkByBrSALA(State_Het)) - RCONST(700) = (HOBrUptkByBrSALC(State_Het)) - RCONST(701) = (HOBrUptkByHSO3m(State_Het)+HOBrUptkBySO3mm(State_Het)) - RCONST(702) = (O3uptkByHBr(State_Het)) - RCONST(703) = (O3uptkByBrSALA(State_Het)) - RCONST(704) = (O3uptkByBrSALC(State_Het)) - RCONST(705) = (HBrUptkBySALA(State_Het)) - RCONST(706) = (HBrUptkBySALC(State_Het)) - RCONST(707) = (IuptkBySulf1stOrd(SR_MW(ind_HI),0.10_dp,State_Het)) - RCONST(708) = (IuptkBySALA1stOrd(SR_MW(ind_HI),0.10_dp,State_Het)) - RCONST(709) = (IuptkBySALC1stOrd(SR_MW(ind_HI),0.10_dp,State_Het)) - RCONST(710) = (IuptkBySulf1stOrd(SR_MW(ind_I2O2),0.02_dp,State_Het)) - RCONST(711) = (IuptkBySALA1stOrd(SR_MW(ind_I2O2),0.02_dp,State_Het)) - RCONST(712) = (IuptkBySALC1stOrd(SR_MW(ind_I2O2),0.02_dp,State_Het)) - RCONST(713) = (IuptkBySulf1stOrd(SR_MW(ind_I2O3),0.02_dp,State_Het)) - RCONST(714) = (IuptkBySALA1stOrd(SR_MW(ind_I2O3),0.02_dp,State_Het)) - RCONST(715) = (IuptkBySALC1stOrd(SR_MW(ind_I2O3),0.02_dp,State_Het)) - RCONST(716) = (IuptkBySulf1stOrd(SR_MW(ind_I2O4),0.02_dp,State_Het)) - RCONST(717) = (IuptkBySALA1stOrd(SR_MW(ind_I2O4),0.02_dp,State_Het)) - RCONST(718) = (IuptkBySALC1stOrd(SR_MW(ind_I2O4),0.02_dp,State_Het)) - RCONST(719) = (IONO2uptkByH2O(State_Het)) - RCONST(720) = (IbrkdnByAcidBrSALA(SR_MW(ind_IONO),C(ind_IONO),0.02_dp,State_Het)) - RCONST(721) = (IbrkdnByAcidBrSALC(SR_MW(ind_IONO),C(ind_IONO),0.02_dp,State_Het)) - RCONST(722) = (IbrkdnByAcidSALACl(SR_MW(ind_IONO),C(ind_IONO),0.02_dp,State_Het)) - RCONST(723) = (IbrkdnByAcidSALCCl(SR_MW(ind_IONO),C(ind_IONO),0.02_dp,State_Het)) - RCONST(724) = (IbrkdnByAcidBrSALA(SR_MW(ind_IONO2),C(ind_IONO2),0.01_dp,State_Het)) - RCONST(725) = (IbrkdnByAcidBrSALC(SR_MW(ind_IONO2),C(ind_IONO2),0.01_dp,State_Het)) - RCONST(726) = (IbrkdnByAcidSALACl(SR_MW(ind_IONO2),C(ind_IONO2),0.01_dp,State_Het)) - RCONST(727) = (IbrkdnByAcidSALCCl(SR_MW(ind_IONO2),C(ind_IONO2),0.01_dp,State_Het)) - RCONST(728) = (IbrkdnByAcidBrSALA(SR_MW(ind_HOI),C(ind_HOI),0.01_dp,State_Het)) - RCONST(729) = (IbrkdnByAcidBrSALC(SR_MW(ind_HOI),C(ind_HOI),0.01_dp,State_Het)) - RCONST(730) = (IbrkdnByAcidSALACl(SR_MW(ind_HOI),C(ind_HOI),0.01_dp,State_Het)) - RCONST(731) = (IbrkdnByAcidSALCCl(SR_MW(ind_HOI),C(ind_HOI),0.01_dp,State_Het)) - RCONST(732) = (GLYXuptk1stOrd(SR_MW(ind_GLYX),State_Het)) - RCONST(733) = (MGLYuptk1stOrd(SR_MW(ind_MGLY),State_Het)) - RCONST(734) = (IEPOXuptk1stOrd(SR_MW(ind_IEPOXA),.FALSE.,State_Het)) - RCONST(735) = (IEPOXuptk1stOrd(SR_MW(ind_IEPOXB),.FALSE.,State_Het)) - RCONST(736) = (IEPOXuptk1stOrd(SR_MW(ind_IEPOXD),.FALSE.,State_Het)) - RCONST(737) = (VOCuptk1stOrd(SR_MW(ind_LVOC),1.0_dp,State_Het)) - RCONST(738) = (VOCuptk1stOrd(SR_MW(ind_MVKN),5.0E-3_dp,State_Het)) - RCONST(739) = (VOCuptk1stOrd(SR_MW(ind_R4N2),5.0E-3_dp,State_Het)) - RCONST(740) = (VOCuptk1stOrd(SR_MW(ind_MONITS),1.0E-2_dp,State_Het)) - RCONST(741) = (VOCuptk1stOrd(SR_MW(ind_MONITU),1.0E-2_dp,State_Het)) - RCONST(742) = (VOCuptk1stOrd(SR_MW(ind_HONIT),1.0E-2_dp,State_Het)) - RCONST(743) = (MGLYuptk1stOrd(SR_MW(ind_PYAC),State_Het)) - RCONST(744) = (IEPOXuptk1stOrd(SR_MW(ind_HMML),.TRUE.,State_Het)) - RCONST(745) = (VOCuptk1stOrd(SR_MW(ind_IHN1),5.0E-3_dp,State_Het)) - RCONST(746) = (VOCuptk1stOrd(SR_MW(ind_IHN2),5.0E-2_dp,State_Het)) - RCONST(747) = (VOCuptk1stOrd(SR_MW(ind_IHN3),5.0E-3_dp,State_Het)) - RCONST(748) = (VOCuptk1stOrd(SR_MW(ind_IHN4),5.0E-3_dp,State_Het)) - RCONST(749) = (IEPOXuptk1stOrd(SR_MW(ind_ICHE),.FALSE.,State_Het)) - RCONST(750) = (VOCuptk1stOrd(SR_MW(ind_INPD),5.0E-3_dp,State_Het)) - RCONST(751) = (VOCuptk1stOrd(SR_MW(ind_INPB),5.0E-3_dp,State_Het)) - RCONST(752) = (VOCuptk1stOrd(SR_MW(ind_IDN),5.0E-3_dp,State_Het)) - RCONST(753) = (VOCuptk1stOrd(SR_MW(ind_ITCN),5.0E-3_dp,State_Het)) - RCONST(754) = (VOCuptk1stOrd(SR_MW(ind_ITHN),5.0E-3_dp,State_Het)) - RCONST(755) = (VOCuptk1stOrd(SR_MW(ind_MCRHNB),5.0E-3_dp,State_Het)) - RCONST(756) = (VOCuptk1stOrd(SR_MW(ind_MCRHN),5.0E-3_dp,State_Het)) - RCONST(757) = (VOCuptk1stOrd(SR_MW(ind_NPHEN),1.0E-2_dp,State_Het)) - RCONST(758) = (PHOTOL(2)) - RCONST(759) = (PHOTOL(3)) - RCONST(760) = (PHOTOL(1)) - RCONST(761) = (PHOTOL(11)) - RCONST(762) = (PHOTOL(9)) - RCONST(763) = (PHOTOL(10)) - RCONST(764) = (PHOTOL(7)) - RCONST(765) = (PHOTOL(8)) - RCONST(766) = (PHOTOL(16)) - RCONST(767) = (PHOTOL(15)) - RCONST(768) = (PHOTOL(17)) - RCONST(769) = (PHOTOL(18)) - RCONST(770) = (PHOTOL(12)) - RCONST(771) = (PHOTOL(13)) - RCONST(772) = (PHOTOL(14)) - RCONST(773) = (PHOTOL(61)) - RCONST(774) = (PHOTOL(62)) - RCONST(775) = (PHOTOL(59)) - RCONST(776) = (PHOTOL(70)) - RCONST(777) = (PHOTOL(76)) - RCONST(778) = (PHOTOL(77)) - RCONST(779) = (PHOTOL(69)) - RCONST(780) = (PHOTOL(68)) - RCONST(781) = (PHOTOL(72)) - RCONST(782) = (PHOTOL(73)) - RCONST(783) = (PHOTOL(74)) - RCONST(784) = (PHOTOL(71)) - RCONST(785) = (PHOTOL(63)) - RCONST(786) = (PHOTOL(64)) - RCONST(787) = (PHOTOL(65)) - RCONST(788) = (PHOTOL(66)) - RCONST(789) = (PHOTOL(75)) - RCONST(790) = (PHOTOL(79)) - RCONST(791) = (PHOTOL(80)) - RCONST(792) = (PHOTOL(81)) - RCONST(793) = (PHOTOL(82)) - RCONST(794) = (PHOTOL(83)) - RCONST(795) = (PHOTOL(84)) - RCONST(796) = (PHOTOL(85)) - RCONST(797) = (PHOTOL(98)) - RCONST(798) = (PHOTOL(99)) - RCONST(799) = (PHOTOL(23)) - RCONST(800) = (PHOTOL(28)) - RCONST(801) = (PHOTOL(32)) - RCONST(802) = (PHOTOL(29)) - RCONST(803) = (PHOTOL(30)) - RCONST(804) = (PHOTOL(31)) - RCONST(805) = (PHOTOL(56)) - RCONST(806) = (PHOTOL(55)) - RCONST(807) = (PHOTOL(50)) - RCONST(808) = (PHOTOL(43)) - RCONST(809) = (PHOTOL(45)) - RCONST(810) = (PHOTOL(33)) - RCONST(811) = (PHOTOL(22)) - RCONST(812) = (PHOTOL(27)) - RCONST(813) = (PHOTOL(25)) - RCONST(814) = (PHOTOL(26)) - RCONST(815) = (PHOTOL(21)) - RCONST(816) = (PHOTOL(19)) - RCONST(817) = (PHOTOL(20)) - RCONST(818) = (PHOTOL(24)) - RCONST(819) = (PHOTOL(44)) - RCONST(820) = (PHOTOL(42)) - RCONST(821) = (PHOTOL(37)) - RCONST(822) = (PHOTOL(38)) - RCONST(823) = (PHOTOL(39)) - RCONST(824) = (PHOTOL(40)) - RCONST(825) = (PHOTOL(41)) - RCONST(826) = (PHOTOL(47)) - RCONST(827) = (PHOTOL(48)) - RCONST(828) = (PHOTOL(49)) - RCONST(829) = (PHOTOL(46)) - RCONST(830) = (PHOTOL(53)) - RCONST(831) = (PHOTOL(51)) - RCONST(832) = (PHOTOL(54)) - RCONST(833) = (PHOTOL(101)) - RCONST(834) = (PHOTOL(114)) - RCONST(835) = (PHOTOL(115)) - RCONST(836) = (PHOTOL(116)) - RCONST(837) = (PHOTOL(117)) - RCONST(838) = (PHOTOL(118)) - RCONST(839) = (PHOTOL(119)) - RCONST(840) = (PHOTOL(120)) - RCONST(841) = (PHOTOL(121)) - RCONST(842) = (PHOTOL(122)) - RCONST(843) = (PHOTOL(123)) - RCONST(844) = (PHOTOL(124)) - RCONST(845) = (PHOTOL(125)) - RCONST(846) = (PHOTOL(126)) - RCONST(847) = (PHOTOL(127)) - RCONST(848) = (PHOTOL(128)) - RCONST(849) = (PHOTOL(129)) - RCONST(850) = (PHOTOL(103)) - RCONST(851) = (PHOTOL(104)) - RCONST(852) = (PHOTOL(97)) - RCONST(853) = (PHOTOL(36)) - RCONST(854) = (PHOTOL(34)) - RCONST(855) = (PHOTOL(100)) - RCONST(856) = (PHOTOL(6)) - RCONST(857) = (PHOTOL(105)) - RCONST(858) = (PHOTOL(107)) - RCONST(859) = (PHOTOL(111)) - RCONST(860) = (PHOTOL(112)) - RCONST(861) = (PHOTOL(113)) - RCONST(862) = (PHOTOL(130)) - RCONST(863) = (PHOTOL(131)) - RCONST(864) = (PHOTOL(132)) - RCONST(865) = (PHOTOL(133)) - RCONST(866) = (PHOTOL(134)) - RCONST(867) = (PHOTOL(135)) - RCONST(868) = (PHOTOL(136)) - RCONST(869) = (PHOTOL(137)) - RCONST(870) = (PHOTOL(86)) - RCONST(871) = (PHOTOL(87)) - RCONST(872) = (PHOTOL(88)) - RCONST(873) = (PHOTOL(89)) - RCONST(874) = (PHOTOL(90)) - RCONST(875) = (PHOTOL(91)) - RCONST(876) = (PHOTOL(92)) - RCONST(877) = (PHOTOL(93)) - RCONST(878) = (PHOTOL(94)) - RCONST(879) = (PHOTOL(95)) - RCONST(880) = (PHOTOL(96)) - RCONST(881) = (PHOTOL(108)) - RCONST(882) = (PHOTOL(109)) - RCONST(883) = (PHOTOL(110)) - RCONST(884) = (PHOTOL(138)) - RCONST(885) = (PHOTOL(139)) - RCONST(886) = (PHOTOL(140)) - RCONST(887) = (PHOTOL(141)) - RCONST(888) = (PHOTOL(142)) - RCONST(889) = (PHOTOL(143)) - RCONST(890) = (PHOTOL(144)) - RCONST(891) = (PHOTOL(145)) - RCONST(892) = (PHOTOL(146)) - RCONST(893) = (PHOTOL(147)) - RCONST(894) = (PHOTOL(148)) - RCONST(895) = (PHOTOL(149)) - RCONST(896) = (PHOTOL(150)) - RCONST(897) = (PHOTOL(151)) - RCONST(898) = (PHOTOL(152)) - RCONST(899) = (PHOTOL(106)) - RCONST(900) = (PHOTOL(78)) - RCONST(901) = (PHOTOL(153)) - RCONST(902) = (PHOTOL(154)) - RCONST(903) = (PHOTOL(155)) - RCONST(904) = (PHOTOL(156)) - RCONST(905) = (PHOTOL(157)) - RCONST(906) = (PHOTOL(158)) - RCONST(907) = (PHOTOL(159)) - RCONST(908) = (PHOTOL(160)) - RCONST(909) = (PHOTOL(161)) - RCONST(910) = (PHOTOL(162)) - RCONST(911) = (PHOTOL(163)) - RCONST(912) = (PHOTOL(164)) - RCONST(913) = (PHOTOL(165)) - RCONST(914) = (PHOTOL(166)) + RCONST(465) = (GCARR_ac(2.60d-13,1300.0d0)) + RCONST(466) = (GC_ALK(2.7d-12,350.0d0,7.941d0,11.0d0,1.0d0,0.0d0)) + RCONST(467) = (GC_NIT(2.7d-12,350.0d0,7.941d0,11.0d0,1.0d0,0.0d0)) + RCONST(468) = (GCARR_ac(1.256d+13,-10000.0d0)) + RCONST(469) = (GCARR_ac(5.092d+12,-10000.0d0)) + RCONST(470) = (GCARR_ac(2.60d-13,1300.0d0)) + RCONST(471) = (GC_ALK(2.7d-12,350.0d0,4.712d0,11.0d0,1.0d0,0.0d0)) + RCONST(472) = (GC_NIT(2.7d-12,350.0d0,4.712d0,11.0d0,1.0d0,0.0d0)) + RCONST(473) = (GCARR_ac(2.60d-13,1300.0d0)) + RCONST(474) = (GC_ALK(2.7d-12,350.0d0,2.258d0,11.0d0,1.0d0,0.0d0)) + RCONST(475) = (GC_NIT(2.7d-12,350.0d0,2.258d0,11.0d0,1.0d0,0.0d0)) + RCONST(476) = (GCARR_ac(2.60d-13,1300.0d0)) + RCONST(477) = (GC_ALK(2.7d-12,350.0d0,1.851d0,11.0d0,1.0d0,0.0d0)) + RCONST(478) = (GC_NIT(2.7d-12,350.0d0,1.851d0,11.0d0,1.0d0,0.0d0)) + RCONST(479) = (GCARR_ac(2.95d-12,-450.0d0)) + RCONST(480) = (GCARR_ac(2.47d-13,1300.0d0)) + RCONST(481) = (GCARR_ac(2.47d-13,1300.0d0)) + RCONST(482) = (1.61d-12) + RCONST(483) = (2.56d-12) + RCONST(484) = (3.71d-12) + RCONST(485) = (1.18d-12) + RCONST(486) = (2.80d-13) + RCONST(487) = (1.92d-12) + RCONST(488) = (7.71d-12) + RCONST(489) = (2.3d-12) + RCONST(490) = (2.3d-12) + RCONST(491) = (GC_ALK(2.7d-12,350.0d0,12.915d0,9.0d0,1.0d0,0.0d0)) + RCONST(492) = (GC_NIT(2.7d-12,350.0d0,12.915d0,9.0d0,1.0d0,0.0d0)) + RCONST(493) = (GC_ALK(2.7d-12,350.0d0,1.412d0,9.0d0,1.0d0,0.0d0)) + RCONST(494) = (GC_NIT(2.7d-12,350.0d0,1.412d0,9.0d0,1.0d0,0.0d0)) + RCONST(495) = (GCARR_ac(2.50d-14,-300.0d0)) + RCONST(496) = (GCARR_ac(1.00d+20,-10000.0d0)) + RCONST(497) = (GCARR_ac(5.88d-12,390.0d0)) + RCONST(498) = (GCARR_ac(1.61d-11,390.0d0)) + RCONST(499) = (GC_EPO_a(4.471d-12,390.0d0,2.28d-20)) + RCONST(500) = (GC_EPO_a(8.77d-12,390.0d0,2.185d-20)) + RCONST(501) = (GC_EPO_a(1.493d-11,390.0d0,2.715d-19)) + RCONST(502) = (GCARR_ac(2.278d-12,200.0d0)) + RCONST(503) = (GCARR_ac(3.40d-12,200.0d0)) + RCONST(504) = (GCARR_ac(7.50d-12,20.0d0)) + RCONST(505) = (GCARR_ac(6.55d+12,-10000.0d0)) + RCONST(506) = (GCARR_ac(8.72d+12,-10000.0d0)) + RCONST(507) = (GCARR_ac(2.64d-13,1300.0d0)) + RCONST(508) = (GCARR_ac(2.64d-13,1300.0d0)) + RCONST(509) = (GC_ALK(2.7d-12,350.0d0,6.092d0,12.0d0,1.0d0,0.0d0)) + RCONST(510) = (GC_NIT(2.7d-12,350.0d0,6.092d0,12.0d0,1.0d0,0.0d0)) + RCONST(511) = (GC_ALK(2.7d-12,350.0d0,4.383d0,12.0d0,1.0d0,0.0d0)) + RCONST(512) = (GC_NIT(2.7d-12,350.0d0,4.383d0,12.0d0,1.0d0,0.0d0)) + RCONST(513) = (GC_EPO_a(2.97d-12,390.0d0,2.715d-19)) + RCONST(514) = (GCARR_ac(9.35d-12,390.0d0)) + RCONST(515) = (GCARR_ac(2.70d-12,350.0d0)) + RCONST(516) = (GCARR_ac(2.54d-13,1300.0d0)) + RCONST(517) = (GCARR_ac(1.00d-11,0.0d0)) + RCONST(518) = (GCARR_ac(2.70d-12,350.0d0)) + RCONST(519) = (GCARR_ac(2.71d-13,1300.0d0)) + RCONST(520) = (GCARR_ac(2.60d-12,610.0d0)) + RCONST(521) = (GCARR_ac(8.50d-16,-1520.0d0)) + RCONST(522) = (GCARR_ac(4.40d-12,380.0d0)) + RCONST(523) = (GCARR_ac(2.70d-12,470.0d0)) + RCONST(524) = (GCARR_ac(1.50d-15,-2110.0d0)) + RCONST(525) = (GCARR_ac(1.80d-13,-1190.0d0)) + RCONST(526) = (GCARR_ac(1.24d-12,380.0d0)) + RCONST(527) = (5.77d-11) + RCONST(528) = (GCARR_ac(2.70d-12,470.0d0)) + RCONST(529) = (GCARR_ac(1.39d-11,380.0d0)) + RCONST(530) = (GCARR_ac(2.70d-12,470.0d0)) + RCONST(531) = (GCARR_ac(2.70d-12,350.0d0)) + RCONST(532) = (GCARR_ac(1.93d-13,1300.0d0)) + RCONST(533) = (9.00d-12) + RCONST(534) = (GCARR_ac(2.70d-12,350.0d0)) + RCONST(535) = (GCARR_ac(1.93d-13,1300.0d0)) + RCONST(536) = (9.00d-12) + RCONST(537) = (GCARR_ac(3.71d-12,983.0d0)) + RCONST(538) = (GCARR_ac(5.00d-12,470.0d0)) + RCONST(539) = (GCARR_ac(8.70d-12,70.0d0)) + RCONST(540) = (GCARR_ac(5.00d-12,470.0d0)) + RCONST(541) = (GCARR_ac(2.00d-12,70.0d0)) + RCONST(542) = (GCARR_ac(2.4d-11,70.0d0)) + RCONST(543) = (GCARR_ac(2.12d-13,1300.0d0)) + RCONST(544) = (GC_ALK(2.7d-12,350.0d0,4.573d0,6.0d0,1.0d0,0.0d0)) + RCONST(545) = (GC_NIT(2.7d-12,350.0d0,4.573d0,6.0d0,1.0d0,0.0d0)) + RCONST(546) = (GCARR_ac(2.12d-13,1300.0d0)) + RCONST(547) = (GCARR_ac(3.14d-12,580.0d0)) + RCONST(548) = (1.66d-11) + RCONST(549) = (GCARR_ac(2.90d+7,-5297.0d0)) + RCONST(550) = (GC_ALK(2.7d-12,350.0d0,2.985d0,6.0d0,1.0d0,0.0d0)) + RCONST(551) = (GC_NIT(2.7d-12,350.0d0,2.985d0,6.0d0,1.0d0,0.0d0)) + RCONST(552) = (GCARR_ac(8.7d-12,290.0d0)) + RCONST(553) = (GC_PAN_acac(2.591d-28,-6.87d0,1.125d-11,-1.105d0,0.3d0)) + RCONST(554) = (GCARR_ac(3.14d-12,580.0d0)) + RCONST(555) = (GCARR_ac(7.50d-12,290.0d0)) + RCONST(556) = (GC_PAN_acac(2.591d-28,-6.87d0,1.125d-11,-1.105d0,0.3d0)) + RCONST(557) = (4.00d-12) + RCONST(558) = (GCARR_ac(2.9d-12,500.0d0)) + RCONST(559) = (GCARR_ac(1.58d+16,-13500.0d0)) + RCONST(560) = (2.90d-11) + RCONST(561) = (4.33d-12) + RCONST(562) = (1.00d-11) + RCONST(563) = (2.25d-11) + RCONST(564) = (3.00d-12) + RCONST(565) = (3.00d-12) + RCONST(566) = (1.00d-11) + RCONST(567) = (3.00d-12) + RCONST(568) = (GCARR_ac(1.40d-12,-1860.0d0)) + RCONST(569) = (8.00d-13) + RCONST(570) = (GCARR_ac(1.30d-12,500.0d0)) + RCONST(571) = (GCARR_ac(3.14d-12,580.0d0)) + RCONST(572) = (GCARR_ac(1.55d-12,340.0d0)) + RCONST(573) = (2.91d-11) + RCONST(574) = (GCARR_ac(1.56d-11,117.0d0)) + RCONST(575) = (GCARR_ac(1.40d-12,700.0d0)) + RCONST(576) = (GCARR_ac(2.60d-12,350.0d0)) + RCONST(577) = (GCARR_ac(1.20d-14,-2630.0d0)) + RCONST(578) = (GCJPLPR_abab(1.10d-28,3.5d+00,8.4d-12,1.75d0,0.5d0)) + RCONST(579) = (GCJPLPR_abab(5.50d-30,0.0d0,8.3d-13,-2.0d0,0.5d0)) + RCONST(580) = (GCARR_ac(1.53d-13,1300.0d0)) + RCONST(581) = (GCARR_ac(2.7d-12,360.0d0)) + RCONST(582) = (2.3d-12) + RCONST(583) = (6.00d-13) + RCONST(584) = (GCARR_ac(9.5d+13,-5988.0d0)) + RCONST(585) = (GCARR_ac(2.5d-14,-300.0d0)) + RCONST(586) = (8.40d-13) + RCONST(587) = (GCARR_ac(1.90d-12,190.0d0)) + RCONST(588) = (1.38d-11) + RCONST(589) = (GCARR_ac(2.3d-12,-193.0d0)) + RCONST(590) = (GCARR_ac(1.8d-12,340.0d0)) + RCONST(591) = (1.7d-11) + RCONST(592) = (2.91d-13*EXP(1300.0d0/TEMP)*0.82d0) + RCONST(593) = (GCARR_ac(2.60d-12,365.0d0)) + RCONST(594) = (2.30d-12) + RCONST(595) = (GCARR_ac(1.70d-14,220.0d0)) + RCONST(596) = (GCARR_ac(4.20d-14,220.0d0)) + RCONST(597) = (GCARR_ac(4.70d-13,1220.0d0)) + RCONST(598) = (3.8d-12) + RCONST(599) = (4.7d-11) + RCONST(600) = (1.4d-11) + RCONST(601) = (2.0d-11) + RCONST(602) = (9.2d-18) + RCONST(603) = (9.9d-11) + RCONST(604) = (GCARR_ac(5.90d-12,225.0d0)) + RCONST(605) = (2.4d-15) + RCONST(606) = (GCARR_ac(1.10d-11,340.0d0)) + RCONST(607) = (GCARR_ac(7.50d-12,290.0d0)) + RCONST(608) = (GC_PAN_acac(3.28d-28,-6.87d0,1.125d-11,-1.105d0,0.3d0)) + RCONST(609) = (4.66d-12) + RCONST(610) = (GC_PAN_abab(1.10d-5,-10100.0d0,1.90d+17,-14100.0d0,0.3d0)*0.67d0) + RCONST(611) = (1.06d-12) + RCONST(612) = (7.00d-12) + RCONST(613) = (GCARR_ac(2.670d-12,365.0d0)) + RCONST(614) = (2.30d-12) + RCONST(615) = (GCARR_ac(2.24d-13,1300.0d0)) + RCONST(616) = (3.60d-12) + RCONST(617) = (2.86d-13) + RCONST(618) = (2.08d-12) + RCONST(619) = (3.47d-12) + RCONST(620) = (2.60d-12) + RCONST(621) = (GCARR_ac(2.670d-13,365.0d0)) + RCONST(622) = (GCARR_ac(2.670d-12,365.0d0)) + RCONST(623) = (5.0d-11) + RCONST(624) = (8.0d-16) + RCONST(625) = (1.5d-3) + RCONST(626) = (5.0d-11) + RCONST(627) = (8.0d-16) + RCONST(628) = (1.5d-3) + RCONST(629) = (GCARR_ac(1.40d-12,700.0d0)) + RCONST(630) = (GCARR_ac(2.60d-12,350.0d0)) + RCONST(631) = (GCARR_ac(1.40d-12,700.0d0)) + RCONST(632) = (GCARR_ac(2.60d-12,350.0d0)) + RCONST(633) = (GCARR_ac(1.40d-12,700.0d0)) + RCONST(634) = (GCARR_ac(2.60d-12,350.0d0)) + RCONST(635) = (1.20d-12) + RCONST(636) = (GCARR_ac(1.32d-11,334.0d0)) + RCONST(637) = (HO2uptk1stOrd(State_Het)) + RCONST(638) = (NO2uptk1stOrdAndCloud(State_Het)) + RCONST(639) = (NO3uptk1stOrdAndCloud(State_Het)) + RCONST(640) = (NO3hypsisClonSALA(State_Het)) + RCONST(641) = (NO3hypsisClonSALC(State_Het)) + RCONST(642) = (N2O5uptkByH2O(State_Het)) + RCONST(643) = (N2O5uptkByStratHCl(State_Het)) + RCONST(644) = (N2O5uptkByCloud(State_Het)) + RCONST(645) = (N2O5uptkBySALACl(State_Het)) + RCONST(646) = (N2O5uptkBySALCCl(State_Het)) + RCONST(647) = (OHuptkBySALACl(State_Het)) + RCONST(648) = (OHuptkBySALCCl(State_Het)) + RCONST(649) = (BrNO3uptkByH2O(State_Het)) + RCONST(650) = (BrNO3uptkByHCl(State_Het)) + RCONST(651) = (ClNO3uptkByH2O(State_Het)) + RCONST(652) = (ClNO3uptkByHCl(State_Het)) + RCONST(653) = (ClNO3uptkByHBr(State_Het)) + RCONST(654) = (ClNO3uptkByBrSALA(State_Het)) + RCONST(655) = (ClNO3uptkByBrSALC(State_Het)) + RCONST(656) = (ClNO3uptkBySALACL(State_Het)) + RCONST(657) = (ClNO3uptkBySALCCL(State_Het)) + RCONST(658) = (ClNO2uptkBySALACL(State_Het)) + RCONST(659) = (ClNO2uptkBySALCCL(State_Het)) + RCONST(660) = (ClNO2uptkByHCl(State_Het)) + RCONST(661) = (ClNO2uptkByBrSALA(State_Het)) + RCONST(662) = (ClNO2uptkByBrSALC(State_Het)) + RCONST(663) = (ClNO2uptkByHBr(State_Het)) + RCONST(664) = (HOClUptkByHCl(State_Het)) + RCONST(665) = (HOClUptkByHBr(State_Het)) + RCONST(666) = (HOClUptkBySALACL(State_Het)) + RCONST(667) = (HOClUptkBySALCCL(State_Het)) + RCONST(668) = (HOClUptkByHSO3m(State_Het)+HOClUptkBySO3mm(State_Het)+SRHOCl) + RCONST(669) = (HOBrUptkByHBr(State_Het)) + RCONST(670) = (HOBrUptkByHCl(State_Het)) + RCONST(671) = (HOBrUptkBySALACL(State_Het)) + RCONST(672) = (HOBrUptkBySALCCL(State_Het)) + RCONST(673) = (HOBrUptkByBrSALA(State_Het)) + RCONST(674) = (HOBrUptkByBrSALC(State_Het)) + RCONST(675) = (HOBrUptkByHSO3m(State_Het)+HOBrUptkBySO3mm(State_Het)+SRHOBr) + RCONST(676) = (O3uptkByHBr(State_Het)) + RCONST(677) = (O3uptkByBrSALA(State_Het)) + RCONST(678) = (O3uptkByBrSALC(State_Het)) + RCONST(679) = (HBrUptkBySALA(State_Het)) + RCONST(680) = (HBrUptkBySALC(State_Het)) + RCONST(681) = (IuptkBySulf1stOrd(SR_MW(ind_HI),0.10_dp,State_Het)) + RCONST(682) = (IuptkBySALA1stOrd(SR_MW(ind_HI),0.10_dp,State_Het)) + RCONST(683) = (IuptkBySALC1stOrd(SR_MW(ind_HI),0.10_dp,State_Het)) + RCONST(684) = (IuptkByAlkSALA1stOrd(SR_MW(ind_HOI),0.01_dp,State_Het)) + RCONST(685) = (IuptkByAlkSALC1stOrd(SR_MW(ind_HOI),0.01_dp,State_Het)) + RCONST(686) = (IuptkBySulf1stOrd(SR_MW(ind_I2O2),0.02_dp,State_Het)) + RCONST(687) = (IuptkBySALA1stOrd(SR_MW(ind_I2O2),0.02_dp,State_Het)) + RCONST(688) = (IuptkBySALC1stOrd(SR_MW(ind_I2O2),0.02_dp,State_Het)) + RCONST(689) = (IuptkBySulf1stOrd(SR_MW(ind_I2O3),0.02_dp,State_Het)) + RCONST(690) = (IuptkBySALA1stOrd(SR_MW(ind_I2O3),0.02_dp,State_Het)) + RCONST(691) = (IuptkBySALC1stOrd(SR_MW(ind_I2O3),0.02_dp,State_Het)) + RCONST(692) = (IuptkBySulf1stOrd(SR_MW(ind_I2O4),0.02_dp,State_Het)) + RCONST(693) = (IuptkBySALA1stOrd(SR_MW(ind_I2O4),0.02_dp,State_Het)) + RCONST(694) = (IuptkBySALC1stOrd(SR_MW(ind_I2O4),0.02_dp,State_Het)) + RCONST(695) = (IuptkByAlkSALA1stOrd(SR_MW(ind_IONO),0.02_dp,State_Het)) + RCONST(696) = (IuptkByAlkSALC1stOrd(SR_MW(ind_IONO),0.02_dp,State_Het)) + RCONST(697) = (IuptkByAlkSALA1stOrd(SR_MW(ind_IONO2),0.01_dp,State_Het)) + RCONST(698) = (IuptkByAlkSALC1stOrd(SR_MW(ind_IONO2),0.01_dp,State_Het)) + RCONST(699) = (IONO2uptkByH2O(State_Het)) + RCONST(700) = (IbrkdnByAcidBrSALA(SR_MW(ind_IONO),C(ind_IONO),0.02_dp,State_Het)) + RCONST(701) = (IbrkdnByAcidBrSALC(SR_MW(ind_IONO),C(ind_IONO),0.02_dp,State_Het)) + RCONST(702) = (IbrkdnByAcidSALACl(SR_MW(ind_IONO),C(ind_IONO),0.02_dp,State_Het)) + RCONST(703) = (IbrkdnByAcidSALCCl(SR_MW(ind_IONO),C(ind_IONO),0.02_dp,State_Het)) + RCONST(704) = (IbrkdnByAcidBrSALA(SR_MW(ind_IONO2),C(ind_IONO2),0.01_dp,State_Het)) + RCONST(705) = (IbrkdnByAcidBrSALC(SR_MW(ind_IONO2),C(ind_IONO2),0.01_dp,State_Het)) + RCONST(706) = (IbrkdnByAcidSALACl(SR_MW(ind_IONO2),C(ind_IONO2),0.01_dp,State_Het)) + RCONST(707) = (IbrkdnByAcidSALCCl(SR_MW(ind_IONO2),C(ind_IONO2),0.01_dp,State_Het)) + RCONST(708) = (IbrkdnByAcidBrSALA(SR_MW(ind_HOI),C(ind_HOI),0.01_dp,State_Het)) + RCONST(709) = (IbrkdnByAcidBrSALC(SR_MW(ind_HOI),C(ind_HOI),0.01_dp,State_Het)) + RCONST(710) = (IbrkdnByAcidSALACl(SR_MW(ind_HOI),C(ind_HOI),0.01_dp,State_Het)) + RCONST(711) = (IbrkdnByAcidSALCCl(SR_MW(ind_HOI),C(ind_HOI),0.01_dp,State_Het)) + RCONST(712) = (GLYXuptk1stOrd(SR_MW(ind_GLYX),State_Het)) + RCONST(713) = (MGLYuptk1stOrd(SR_MW(ind_MGLY),State_Het)) + RCONST(714) = (IEPOXuptk1stOrd(SR_MW(ind_IEPOXA),.FALSE.,State_Het)) + RCONST(715) = (IEPOXuptk1stOrd(SR_MW(ind_IEPOXB),.FALSE.,State_Het)) + RCONST(716) = (IEPOXuptk1stOrd(SR_MW(ind_IEPOXD),.FALSE.,State_Het)) + RCONST(717) = (VOCuptk1stOrd(SR_MW(ind_LVOC),1.0_dp,State_Het)) + RCONST(718) = (VOCuptk1stOrd(SR_MW(ind_MVKN),5.0E-3_dp,State_Het)) + RCONST(719) = (VOCuptk1stOrd(SR_MW(ind_R4N2),5.0E-3_dp,State_Het)) + RCONST(720) = (VOCuptk1stOrd(SR_MW(ind_MONITS),1.0E-2_dp,State_Het)) + RCONST(721) = (VOCuptk1stOrd(SR_MW(ind_MONITU),1.0E-2_dp,State_Het)) + RCONST(722) = (VOCuptk1stOrd(SR_MW(ind_HONIT),1.0E-2_dp,State_Het)) + RCONST(723) = (MGLYuptk1stOrd(SR_MW(ind_PYAC),State_Het)) + RCONST(724) = (IEPOXuptk1stOrd(SR_MW(ind_HMML),.TRUE.,State_Het)) + RCONST(725) = (VOCuptk1stOrd(SR_MW(ind_IHN1),5.0E-3_dp,State_Het)) + RCONST(726) = (VOCuptk1stOrd(SR_MW(ind_IHN2),5.0E-2_dp,State_Het)) + RCONST(727) = (VOCuptk1stOrd(SR_MW(ind_IHN3),5.0E-3_dp,State_Het)) + RCONST(728) = (VOCuptk1stOrd(SR_MW(ind_IHN4),5.0E-3_dp,State_Het)) + RCONST(729) = (IEPOXuptk1stOrd(SR_MW(ind_ICHE),.FALSE.,State_Het)) + RCONST(730) = (VOCuptk1stOrd(SR_MW(ind_INPD),5.0E-3_dp,State_Het)) + RCONST(731) = (VOCuptk1stOrd(SR_MW(ind_INPB),5.0E-3_dp,State_Het)) + RCONST(732) = (VOCuptk1stOrd(SR_MW(ind_IDN),5.0E-3_dp,State_Het)) + RCONST(733) = (VOCuptk1stOrd(SR_MW(ind_ITCN),5.0E-3_dp,State_Het)) + RCONST(734) = (VOCuptk1stOrd(SR_MW(ind_ITHN),5.0E-3_dp,State_Het)) + RCONST(735) = (VOCuptk1stOrd(SR_MW(ind_MCRHNB),5.0E-3_dp,State_Het)) + RCONST(736) = (VOCuptk1stOrd(SR_MW(ind_MCRHN),5.0E-3_dp,State_Het)) + RCONST(737) = (VOCuptk1stOrd(SR_MW(ind_NPHEN),1.0E-2_dp,State_Het)) + RCONST(738) = (PHOTOL(2)) + RCONST(739) = (PHOTOL(3)) + RCONST(740) = (PHOTOL(1)) + RCONST(741) = (PHOTOL(11)) + RCONST(742) = (PHOTOL(9)) + RCONST(743) = (PHOTOL(10)) + RCONST(744) = (PHOTOL(7)) + RCONST(745) = (PHOTOL(8)) + RCONST(746) = (PHOTOL(16)) + RCONST(747) = (PHOTOL(15)) + RCONST(748) = (PHOTOL(17)) + RCONST(749) = (PHOTOL(18)) + RCONST(750) = (PHOTOL(12)) + RCONST(751) = (PHOTOL(13)) + RCONST(752) = (PHOTOL(14)) + RCONST(753) = (PHOTOL(61)) + RCONST(754) = (PHOTOL(62)) + RCONST(755) = (PHOTOL(59)) + RCONST(756) = (PHOTOL(70)) + RCONST(757) = (PHOTOL(76)) + RCONST(758) = (PHOTOL(77)) + RCONST(759) = (PHOTOL(69)) + RCONST(760) = (PHOTOL(68)) + RCONST(761) = (PHOTOL(72)) + RCONST(762) = (PHOTOL(73)) + RCONST(763) = (PHOTOL(74)) + RCONST(764) = (PHOTOL(71)) + RCONST(765) = (PHOTOL(63)) + RCONST(766) = (PHOTOL(64)) + RCONST(767) = (PHOTOL(65)) + RCONST(768) = (PHOTOL(66)) + RCONST(769) = (PHOTOL(75)) + RCONST(770) = (PHOTOL(79)) + RCONST(771) = (PHOTOL(80)) + RCONST(772) = (PHOTOL(81)) + RCONST(773) = (PHOTOL(82)) + RCONST(774) = (PHOTOL(83)) + RCONST(775) = (PHOTOL(84)) + RCONST(776) = (PHOTOL(85)) + RCONST(777) = (PHOTOL(98)) + RCONST(778) = (PHOTOL(99)) + RCONST(779) = (PHOTOL(23)) + RCONST(780) = (PHOTOL(28)) + RCONST(781) = (PHOTOL(32)) + RCONST(782) = (PHOTOL(29)) + RCONST(783) = (PHOTOL(30)) + RCONST(784) = (PHOTOL(31)) + RCONST(785) = (PHOTOL(56)) + RCONST(786) = (PHOTOL(55)) + RCONST(787) = (PHOTOL(50)) + RCONST(788) = (PHOTOL(43)) + RCONST(789) = (PHOTOL(45)) + RCONST(790) = (PHOTOL(33)) + RCONST(791) = (PHOTOL(22)) + RCONST(792) = (PHOTOL(27)) + RCONST(793) = (PHOTOL(25)) + RCONST(794) = (PHOTOL(26)) + RCONST(795) = (PHOTOL(21)) + RCONST(796) = (PHOTOL(19)) + RCONST(797) = (PHOTOL(20)) + RCONST(798) = (PHOTOL(24)) + RCONST(799) = (PHOTOL(44)) + RCONST(800) = (PHOTOL(42)) + RCONST(801) = (PHOTOL(37)) + RCONST(802) = (PHOTOL(38)) + RCONST(803) = (PHOTOL(39)) + RCONST(804) = (PHOTOL(40)) + RCONST(805) = (PHOTOL(41)) + RCONST(806) = (PHOTOL(47)) + RCONST(807) = (PHOTOL(48)) + RCONST(808) = (PHOTOL(49)) + RCONST(809) = (PHOTOL(46)) + RCONST(810) = (PHOTOL(53)) + RCONST(811) = (PHOTOL(51)) + RCONST(812) = (PHOTOL(54)) + RCONST(813) = (PHOTOL(101)) + RCONST(814) = (PHOTOL(114)) + RCONST(815) = (PHOTOL(115)) + RCONST(816) = (PHOTOL(116)) + RCONST(817) = (PHOTOL(117)) + RCONST(818) = (PHOTOL(118)) + RCONST(819) = (PHOTOL(119)) + RCONST(820) = (PHOTOL(120)) + RCONST(821) = (PHOTOL(121)) + RCONST(822) = (PHOTOL(122)) + RCONST(823) = (PHOTOL(123)) + RCONST(824) = (PHOTOL(124)) + RCONST(825) = (PHOTOL(125)) + RCONST(826) = (PHOTOL(126)) + RCONST(827) = (PHOTOL(127)) + RCONST(828) = (PHOTOL(128)) + RCONST(829) = (PHOTOL(129)) + RCONST(830) = (PHOTOL(103)) + RCONST(831) = (PHOTOL(104)) + RCONST(832) = (PHOTOL(97)) + RCONST(833) = (PHOTOL(36)) + RCONST(834) = (PHOTOL(34)) + RCONST(835) = (PHOTOL(100)) + RCONST(836) = (PHOTOL(6)) + RCONST(837) = (PHOTOL(105)) + RCONST(838) = (PHOTOL(107)) + RCONST(839) = (PHOTOL(111)) + RCONST(840) = (PHOTOL(112)) + RCONST(841) = (PHOTOL(113)) + RCONST(842) = (PHOTOL(130)) + RCONST(843) = (PHOTOL(131)) + RCONST(844) = (PHOTOL(132)) + RCONST(845) = (PHOTOL(133)) + RCONST(846) = (PHOTOL(134)) + RCONST(847) = (PHOTOL(135)) + RCONST(848) = (PHOTOL(136)) + RCONST(849) = (PHOTOL(137)) + RCONST(850) = (PHOTOL(86)) + RCONST(851) = (PHOTOL(87)) + RCONST(852) = (PHOTOL(88)) + RCONST(853) = (PHOTOL(89)) + RCONST(854) = (PHOTOL(90)) + RCONST(855) = (PHOTOL(91)) + RCONST(856) = (PHOTOL(92)) + RCONST(857) = (PHOTOL(93)) + RCONST(858) = (PHOTOL(94)) + RCONST(859) = (PHOTOL(95)) + RCONST(860) = (PHOTOL(96)) + RCONST(861) = (PHOTOL(108)) + RCONST(862) = (PHOTOL(109)) + RCONST(863) = (PHOTOL(110)) + RCONST(864) = (PHOTOL(138)) + RCONST(865) = (PHOTOL(139)) + RCONST(866) = (PHOTOL(140)) + RCONST(867) = (PHOTOL(141)) + RCONST(868) = (PHOTOL(142)) + RCONST(869) = (PHOTOL(143)) + RCONST(870) = (PHOTOL(144)) + RCONST(871) = (PHOTOL(145)) + RCONST(872) = (PHOTOL(146)) + RCONST(873) = (PHOTOL(147)) + RCONST(874) = (PHOTOL(148)) + RCONST(875) = (PHOTOL(149)) + RCONST(876) = (PHOTOL(150)) + RCONST(877) = (PHOTOL(151)) + RCONST(878) = (PHOTOL(152)) + RCONST(879) = (PHOTOL(106)) + RCONST(880) = (PHOTOL(78)) + RCONST(881) = (PHOTOL(153)) + RCONST(882) = (PHOTOL(154)) + RCONST(883) = (PHOTOL(155)) + RCONST(884) = (PHOTOL(156)) + RCONST(885) = (PHOTOL(157)) + RCONST(886) = (PHOTOL(158)) + RCONST(887) = (PHOTOL(159)) + RCONST(888) = (PHOTOL(160)) + RCONST(889) = (PHOTOL(161)) + RCONST(890) = (PHOTOL(162)) + RCONST(891) = (PHOTOL(163)) + RCONST(892) = (PHOTOL(164)) + RCONST(893) = (PHOTOL(165)) + RCONST(894) = (PHOTOL(166)) END SUBROUTINE Update_RCONST @@ -1373,163 +1356,163 @@ SUBROUTINE Update_PHOTO ( ) ! End INLINED RCONST - RCONST(758) = (PHOTOL(2)) - RCONST(759) = (PHOTOL(3)) - RCONST(760) = (PHOTOL(1)) - RCONST(761) = (PHOTOL(11)) - RCONST(762) = (PHOTOL(9)) - RCONST(763) = (PHOTOL(10)) - RCONST(764) = (PHOTOL(7)) - RCONST(765) = (PHOTOL(8)) - RCONST(766) = (PHOTOL(16)) - RCONST(767) = (PHOTOL(15)) - RCONST(768) = (PHOTOL(17)) - RCONST(769) = (PHOTOL(18)) - RCONST(770) = (PHOTOL(12)) - RCONST(771) = (PHOTOL(13)) - RCONST(772) = (PHOTOL(14)) - RCONST(773) = (PHOTOL(61)) - RCONST(774) = (PHOTOL(62)) - RCONST(775) = (PHOTOL(59)) - RCONST(776) = (PHOTOL(70)) - RCONST(777) = (PHOTOL(76)) - RCONST(778) = (PHOTOL(77)) - RCONST(779) = (PHOTOL(69)) - RCONST(780) = (PHOTOL(68)) - RCONST(781) = (PHOTOL(72)) - RCONST(782) = (PHOTOL(73)) - RCONST(783) = (PHOTOL(74)) - RCONST(784) = (PHOTOL(71)) - RCONST(785) = (PHOTOL(63)) - RCONST(786) = (PHOTOL(64)) - RCONST(787) = (PHOTOL(65)) - RCONST(788) = (PHOTOL(66)) - RCONST(789) = (PHOTOL(75)) - RCONST(790) = (PHOTOL(79)) - RCONST(791) = (PHOTOL(80)) - RCONST(792) = (PHOTOL(81)) - RCONST(793) = (PHOTOL(82)) - RCONST(794) = (PHOTOL(83)) - RCONST(795) = (PHOTOL(84)) - RCONST(796) = (PHOTOL(85)) - RCONST(797) = (PHOTOL(98)) - RCONST(798) = (PHOTOL(99)) - RCONST(799) = (PHOTOL(23)) - RCONST(800) = (PHOTOL(28)) - RCONST(801) = (PHOTOL(32)) - RCONST(802) = (PHOTOL(29)) - RCONST(803) = (PHOTOL(30)) - RCONST(804) = (PHOTOL(31)) - RCONST(805) = (PHOTOL(56)) - RCONST(806) = (PHOTOL(55)) - RCONST(807) = (PHOTOL(50)) - RCONST(808) = (PHOTOL(43)) - RCONST(809) = (PHOTOL(45)) - RCONST(810) = (PHOTOL(33)) - RCONST(811) = (PHOTOL(22)) - RCONST(812) = (PHOTOL(27)) - RCONST(813) = (PHOTOL(25)) - RCONST(814) = (PHOTOL(26)) - RCONST(815) = (PHOTOL(21)) - RCONST(816) = (PHOTOL(19)) - RCONST(817) = (PHOTOL(20)) - RCONST(818) = (PHOTOL(24)) - RCONST(819) = (PHOTOL(44)) - RCONST(820) = (PHOTOL(42)) - RCONST(821) = (PHOTOL(37)) - RCONST(822) = (PHOTOL(38)) - RCONST(823) = (PHOTOL(39)) - RCONST(824) = (PHOTOL(40)) - RCONST(825) = (PHOTOL(41)) - RCONST(826) = (PHOTOL(47)) - RCONST(827) = (PHOTOL(48)) - RCONST(828) = (PHOTOL(49)) - RCONST(829) = (PHOTOL(46)) - RCONST(830) = (PHOTOL(53)) - RCONST(831) = (PHOTOL(51)) - RCONST(832) = (PHOTOL(54)) - RCONST(833) = (PHOTOL(101)) - RCONST(834) = (PHOTOL(114)) - RCONST(835) = (PHOTOL(115)) - RCONST(836) = (PHOTOL(116)) - RCONST(837) = (PHOTOL(117)) - RCONST(838) = (PHOTOL(118)) - RCONST(839) = (PHOTOL(119)) - RCONST(840) = (PHOTOL(120)) - RCONST(841) = (PHOTOL(121)) - RCONST(842) = (PHOTOL(122)) - RCONST(843) = (PHOTOL(123)) - RCONST(844) = (PHOTOL(124)) - RCONST(845) = (PHOTOL(125)) - RCONST(846) = (PHOTOL(126)) - RCONST(847) = (PHOTOL(127)) - RCONST(848) = (PHOTOL(128)) - RCONST(849) = (PHOTOL(129)) - RCONST(850) = (PHOTOL(103)) - RCONST(851) = (PHOTOL(104)) - RCONST(852) = (PHOTOL(97)) - RCONST(853) = (PHOTOL(36)) - RCONST(854) = (PHOTOL(34)) - RCONST(855) = (PHOTOL(100)) - RCONST(856) = (PHOTOL(6)) - RCONST(857) = (PHOTOL(105)) - RCONST(858) = (PHOTOL(107)) - RCONST(859) = (PHOTOL(111)) - RCONST(860) = (PHOTOL(112)) - RCONST(861) = (PHOTOL(113)) - RCONST(862) = (PHOTOL(130)) - RCONST(863) = (PHOTOL(131)) - RCONST(864) = (PHOTOL(132)) - RCONST(865) = (PHOTOL(133)) - RCONST(866) = (PHOTOL(134)) - RCONST(867) = (PHOTOL(135)) - RCONST(868) = (PHOTOL(136)) - RCONST(869) = (PHOTOL(137)) - RCONST(870) = (PHOTOL(86)) - RCONST(871) = (PHOTOL(87)) - RCONST(872) = (PHOTOL(88)) - RCONST(873) = (PHOTOL(89)) - RCONST(874) = (PHOTOL(90)) - RCONST(875) = (PHOTOL(91)) - RCONST(876) = (PHOTOL(92)) - RCONST(877) = (PHOTOL(93)) - RCONST(878) = (PHOTOL(94)) - RCONST(879) = (PHOTOL(95)) - RCONST(880) = (PHOTOL(96)) - RCONST(881) = (PHOTOL(108)) - RCONST(882) = (PHOTOL(109)) - RCONST(883) = (PHOTOL(110)) - RCONST(884) = (PHOTOL(138)) - RCONST(885) = (PHOTOL(139)) - RCONST(886) = (PHOTOL(140)) - RCONST(887) = (PHOTOL(141)) - RCONST(888) = (PHOTOL(142)) - RCONST(889) = (PHOTOL(143)) - RCONST(890) = (PHOTOL(144)) - RCONST(891) = (PHOTOL(145)) - RCONST(892) = (PHOTOL(146)) - RCONST(893) = (PHOTOL(147)) - RCONST(894) = (PHOTOL(148)) - RCONST(895) = (PHOTOL(149)) - RCONST(896) = (PHOTOL(150)) - RCONST(897) = (PHOTOL(151)) - RCONST(898) = (PHOTOL(152)) - RCONST(899) = (PHOTOL(106)) - RCONST(900) = (PHOTOL(78)) - RCONST(901) = (PHOTOL(153)) - RCONST(902) = (PHOTOL(154)) - RCONST(903) = (PHOTOL(155)) - RCONST(904) = (PHOTOL(156)) - RCONST(905) = (PHOTOL(157)) - RCONST(906) = (PHOTOL(158)) - RCONST(907) = (PHOTOL(159)) - RCONST(908) = (PHOTOL(160)) - RCONST(909) = (PHOTOL(161)) - RCONST(910) = (PHOTOL(162)) - RCONST(911) = (PHOTOL(163)) - RCONST(912) = (PHOTOL(164)) - RCONST(913) = (PHOTOL(165)) - RCONST(914) = (PHOTOL(166)) + RCONST(738) = (PHOTOL(2)) + RCONST(739) = (PHOTOL(3)) + RCONST(740) = (PHOTOL(1)) + RCONST(741) = (PHOTOL(11)) + RCONST(742) = (PHOTOL(9)) + RCONST(743) = (PHOTOL(10)) + RCONST(744) = (PHOTOL(7)) + RCONST(745) = (PHOTOL(8)) + RCONST(746) = (PHOTOL(16)) + RCONST(747) = (PHOTOL(15)) + RCONST(748) = (PHOTOL(17)) + RCONST(749) = (PHOTOL(18)) + RCONST(750) = (PHOTOL(12)) + RCONST(751) = (PHOTOL(13)) + RCONST(752) = (PHOTOL(14)) + RCONST(753) = (PHOTOL(61)) + RCONST(754) = (PHOTOL(62)) + RCONST(755) = (PHOTOL(59)) + RCONST(756) = (PHOTOL(70)) + RCONST(757) = (PHOTOL(76)) + RCONST(758) = (PHOTOL(77)) + RCONST(759) = (PHOTOL(69)) + RCONST(760) = (PHOTOL(68)) + RCONST(761) = (PHOTOL(72)) + RCONST(762) = (PHOTOL(73)) + RCONST(763) = (PHOTOL(74)) + RCONST(764) = (PHOTOL(71)) + RCONST(765) = (PHOTOL(63)) + RCONST(766) = (PHOTOL(64)) + RCONST(767) = (PHOTOL(65)) + RCONST(768) = (PHOTOL(66)) + RCONST(769) = (PHOTOL(75)) + RCONST(770) = (PHOTOL(79)) + RCONST(771) = (PHOTOL(80)) + RCONST(772) = (PHOTOL(81)) + RCONST(773) = (PHOTOL(82)) + RCONST(774) = (PHOTOL(83)) + RCONST(775) = (PHOTOL(84)) + RCONST(776) = (PHOTOL(85)) + RCONST(777) = (PHOTOL(98)) + RCONST(778) = (PHOTOL(99)) + RCONST(779) = (PHOTOL(23)) + RCONST(780) = (PHOTOL(28)) + RCONST(781) = (PHOTOL(32)) + RCONST(782) = (PHOTOL(29)) + RCONST(783) = (PHOTOL(30)) + RCONST(784) = (PHOTOL(31)) + RCONST(785) = (PHOTOL(56)) + RCONST(786) = (PHOTOL(55)) + RCONST(787) = (PHOTOL(50)) + RCONST(788) = (PHOTOL(43)) + RCONST(789) = (PHOTOL(45)) + RCONST(790) = (PHOTOL(33)) + RCONST(791) = (PHOTOL(22)) + RCONST(792) = (PHOTOL(27)) + RCONST(793) = (PHOTOL(25)) + RCONST(794) = (PHOTOL(26)) + RCONST(795) = (PHOTOL(21)) + RCONST(796) = (PHOTOL(19)) + RCONST(797) = (PHOTOL(20)) + RCONST(798) = (PHOTOL(24)) + RCONST(799) = (PHOTOL(44)) + RCONST(800) = (PHOTOL(42)) + RCONST(801) = (PHOTOL(37)) + RCONST(802) = (PHOTOL(38)) + RCONST(803) = (PHOTOL(39)) + RCONST(804) = (PHOTOL(40)) + RCONST(805) = (PHOTOL(41)) + RCONST(806) = (PHOTOL(47)) + RCONST(807) = (PHOTOL(48)) + RCONST(808) = (PHOTOL(49)) + RCONST(809) = (PHOTOL(46)) + RCONST(810) = (PHOTOL(53)) + RCONST(811) = (PHOTOL(51)) + RCONST(812) = (PHOTOL(54)) + RCONST(813) = (PHOTOL(101)) + RCONST(814) = (PHOTOL(114)) + RCONST(815) = (PHOTOL(115)) + RCONST(816) = (PHOTOL(116)) + RCONST(817) = (PHOTOL(117)) + RCONST(818) = (PHOTOL(118)) + RCONST(819) = (PHOTOL(119)) + RCONST(820) = (PHOTOL(120)) + RCONST(821) = (PHOTOL(121)) + RCONST(822) = (PHOTOL(122)) + RCONST(823) = (PHOTOL(123)) + RCONST(824) = (PHOTOL(124)) + RCONST(825) = (PHOTOL(125)) + RCONST(826) = (PHOTOL(126)) + RCONST(827) = (PHOTOL(127)) + RCONST(828) = (PHOTOL(128)) + RCONST(829) = (PHOTOL(129)) + RCONST(830) = (PHOTOL(103)) + RCONST(831) = (PHOTOL(104)) + RCONST(832) = (PHOTOL(97)) + RCONST(833) = (PHOTOL(36)) + RCONST(834) = (PHOTOL(34)) + RCONST(835) = (PHOTOL(100)) + RCONST(836) = (PHOTOL(6)) + RCONST(837) = (PHOTOL(105)) + RCONST(838) = (PHOTOL(107)) + RCONST(839) = (PHOTOL(111)) + RCONST(840) = (PHOTOL(112)) + RCONST(841) = (PHOTOL(113)) + RCONST(842) = (PHOTOL(130)) + RCONST(843) = (PHOTOL(131)) + RCONST(844) = (PHOTOL(132)) + RCONST(845) = (PHOTOL(133)) + RCONST(846) = (PHOTOL(134)) + RCONST(847) = (PHOTOL(135)) + RCONST(848) = (PHOTOL(136)) + RCONST(849) = (PHOTOL(137)) + RCONST(850) = (PHOTOL(86)) + RCONST(851) = (PHOTOL(87)) + RCONST(852) = (PHOTOL(88)) + RCONST(853) = (PHOTOL(89)) + RCONST(854) = (PHOTOL(90)) + RCONST(855) = (PHOTOL(91)) + RCONST(856) = (PHOTOL(92)) + RCONST(857) = (PHOTOL(93)) + RCONST(858) = (PHOTOL(94)) + RCONST(859) = (PHOTOL(95)) + RCONST(860) = (PHOTOL(96)) + RCONST(861) = (PHOTOL(108)) + RCONST(862) = (PHOTOL(109)) + RCONST(863) = (PHOTOL(110)) + RCONST(864) = (PHOTOL(138)) + RCONST(865) = (PHOTOL(139)) + RCONST(866) = (PHOTOL(140)) + RCONST(867) = (PHOTOL(141)) + RCONST(868) = (PHOTOL(142)) + RCONST(869) = (PHOTOL(143)) + RCONST(870) = (PHOTOL(144)) + RCONST(871) = (PHOTOL(145)) + RCONST(872) = (PHOTOL(146)) + RCONST(873) = (PHOTOL(147)) + RCONST(874) = (PHOTOL(148)) + RCONST(875) = (PHOTOL(149)) + RCONST(876) = (PHOTOL(150)) + RCONST(877) = (PHOTOL(151)) + RCONST(878) = (PHOTOL(152)) + RCONST(879) = (PHOTOL(106)) + RCONST(880) = (PHOTOL(78)) + RCONST(881) = (PHOTOL(153)) + RCONST(882) = (PHOTOL(154)) + RCONST(883) = (PHOTOL(155)) + RCONST(884) = (PHOTOL(156)) + RCONST(885) = (PHOTOL(157)) + RCONST(886) = (PHOTOL(158)) + RCONST(887) = (PHOTOL(159)) + RCONST(888) = (PHOTOL(160)) + RCONST(889) = (PHOTOL(161)) + RCONST(890) = (PHOTOL(162)) + RCONST(891) = (PHOTOL(163)) + RCONST(892) = (PHOTOL(164)) + RCONST(893) = (PHOTOL(165)) + RCONST(894) = (PHOTOL(166)) END SUBROUTINE Update_PHOTO diff --git a/KPP/fullchem/gckpp_Util.F90 b/KPP/fullchem/gckpp_Util.F90 index 4d567ad3f..80a309495 100644 --- a/KPP/fullchem/gckpp_Util.F90 +++ b/KPP/fullchem/gckpp_Util.F90 @@ -2,7 +2,7 @@ ! ! Auxiliary Routines File ! -! Generated by KPP-3.0.0 symbolic chemistry Kinetics PreProcessor +! Generated by KPP-3.0.2 symbolic chemistry Kinetics PreProcessor ! (https:/github.com/KineticPreProcessor/KPP ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) @@ -227,286 +227,290 @@ SUBROUTINE Shuffle_user2kpp ( V_USER, V ) ! V - Concentrations of variable species (local) REAL(kind=dp) :: V(NVAR) - V(233) = V_USER(1) - V(219) = V_USER(2) - V(215) = V_USER(3) + V(237) = V_USER(1) + V(221) = V_USER(2) + V(219) = V_USER(3) V(4) = V_USER(4) - V(261) = V_USER(5) - V(112) = V_USER(6) + V(264) = V_USER(5) + V(114) = V_USER(6) V(5) = V_USER(7) - V(178) = V_USER(8) - V(155) = V_USER(9) - V(145) = V_USER(10) - V(248) = V_USER(11) - V(193) = V_USER(12) - V(253) = V_USER(13) - V(99) = V_USER(14) - V(60) = V_USER(15) - V(156) = V_USER(16) - V(187) = V_USER(17) - V(105) = V_USER(18) - V(282) = V_USER(19) - V(125) = V_USER(20) - V(132) = V_USER(21) - V(50) = V_USER(22) - V(172) = V_USER(23) + V(184) = V_USER(8) + V(159) = V_USER(9) + V(148) = V_USER(10) + V(252) = V_USER(11) + V(196) = V_USER(12) + V(258) = V_USER(13) + V(101) = V_USER(14) + V(64) = V_USER(15) + V(160) = V_USER(16) + V(191) = V_USER(17) + V(107) = V_USER(18) + V(273) = V_USER(19) + V(128) = V_USER(20) + V(135) = V_USER(21) + V(51) = V_USER(22) + V(176) = V_USER(23) V(274) = V_USER(24) - V(12) = V_USER(25) - V(275) = V_USER(26) - V(276) = V_USER(27) - V(176) = V_USER(28) - V(67) = V_USER(29) - V(95) = V_USER(30) - V(54) = V_USER(31) - V(75) = V_USER(32) - V(157) = V_USER(33) - V(121) = V_USER(34) - V(141) = V_USER(35) - V(142) = V_USER(36) - V(51) = V_USER(37) + V(13) = V_USER(25) + V(283) = V_USER(26) + V(277) = V_USER(27) + V(6) = V_USER(28) + V(180) = V_USER(29) + V(70) = V_USER(30) + V(97) = V_USER(31) + V(58) = V_USER(32) + V(76) = V_USER(33) + V(161) = V_USER(34) + V(124) = V_USER(35) + V(144) = V_USER(36) + V(145) = V_USER(37) V(52) = V_USER(38) V(53) = V_USER(39) - V(48) = V_USER(40) - V(42) = V_USER(41) - V(46) = V_USER(42) - V(70) = V_USER(43) - V(73) = V_USER(44) - V(1) = V_USER(45) - V(2) = V_USER(46) - V(3) = V_USER(47) - V(262) = V_USER(48) - V(230) = V_USER(49) - V(97) = V_USER(50) - V(39) = V_USER(51) - V(191) = V_USER(52) - V(100) = V_USER(53) - V(43) = V_USER(54) - V(186) = V_USER(55) - V(74) = V_USER(56) - V(68) = V_USER(57) - V(285) = V_USER(58) - V(192) = V_USER(59) - V(72) = V_USER(60) - V(231) = V_USER(61) - V(259) = V_USER(62) - V(273) = V_USER(63) - V(103) = V_USER(64) - V(258) = V_USER(65) - V(6) = V_USER(66) - V(109) = V_USER(67) - V(82) = V_USER(68) - V(129) = V_USER(69) - V(205) = V_USER(70) - V(64) = V_USER(71) - V(113) = V_USER(72) - V(88) = V_USER(73) - V(102) = V_USER(74) - V(175) = V_USER(75) - V(213) = V_USER(76) - V(108) = V_USER(77) - V(232) = V_USER(78) - V(218) = V_USER(79) - V(173) = V_USER(80) - V(55) = V_USER(81) - V(44) = V_USER(82) - V(45) = V_USER(83) - V(279) = V_USER(84) - V(208) = V_USER(85) - V(246) = V_USER(86) - V(272) = V_USER(87) - V(189) = V_USER(88) - V(78) = V_USER(89) - V(79) = V_USER(90) - V(80) = V_USER(91) - V(81) = V_USER(92) - V(271) = V_USER(93) - V(207) = V_USER(94) - V(65) = V_USER(95) - V(83) = V_USER(96) - V(84) = V_USER(97) + V(54) = V_USER(40) + V(55) = V_USER(41) + V(56) = V_USER(42) + V(57) = V_USER(43) + V(71) = V_USER(44) + V(72) = V_USER(45) + V(1) = V_USER(46) + V(2) = V_USER(47) + V(3) = V_USER(48) + V(263) = V_USER(49) + V(234) = V_USER(50) + V(100) = V_USER(51) + V(43) = V_USER(52) + V(195) = V_USER(53) + V(149) = V_USER(54) + V(46) = V_USER(55) + V(190) = V_USER(56) + V(77) = V_USER(57) + V(78) = V_USER(58) + V(290) = V_USER(59) + V(197) = V_USER(60) + V(75) = V_USER(61) + V(235) = V_USER(62) + V(262) = V_USER(63) + V(285) = V_USER(64) + V(103) = V_USER(65) + V(267) = V_USER(66) + V(7) = V_USER(67) + V(115) = V_USER(68) + V(90) = V_USER(69) + V(133) = V_USER(70) + V(208) = V_USER(71) + V(68) = V_USER(72) + V(120) = V_USER(73) + V(96) = V_USER(74) + V(108) = V_USER(75) + V(179) = V_USER(76) + V(217) = V_USER(77) + V(110) = V_USER(78) + V(41) = V_USER(79) + V(236) = V_USER(80) + V(223) = V_USER(81) + V(177) = V_USER(82) + V(59) = V_USER(83) + V(47) = V_USER(84) + V(48) = V_USER(85) + V(278) = V_USER(86) + V(212) = V_USER(87) + V(250) = V_USER(88) + V(289) = V_USER(89) + V(192) = V_USER(90) + V(81) = V_USER(91) + V(82) = V_USER(92) + V(83) = V_USER(93) + V(84) = V_USER(94) + V(275) = V_USER(95) + V(211) = V_USER(96) + V(69) = V_USER(97) V(85) = V_USER(98) - V(188) = V_USER(99) - V(260) = V_USER(100) - V(101) = V_USER(101) - V(281) = V_USER(102) - V(256) = V_USER(103) - V(267) = V_USER(104) - V(264) = V_USER(105) - V(131) = V_USER(106) - V(182) = V_USER(107) - V(120) = V_USER(108) - V(184) = V_USER(109) - V(116) = V_USER(110) - V(126) = V_USER(111) - V(124) = V_USER(112) - V(168) = V_USER(113) - V(265) = V_USER(114) - V(140) = V_USER(115) - V(40) = V_USER(116) - V(47) = V_USER(117) - V(38) = V_USER(118) - V(69) = V_USER(119) - V(170) = V_USER(120) - V(190) = V_USER(121) - V(98) = V_USER(122) - V(236) = V_USER(123) - V(146) = V_USER(124) - V(202) = V_USER(125) - V(106) = V_USER(126) - V(122) = V_USER(127) - V(139) = V_USER(128) - V(229) = V_USER(129) - V(164) = V_USER(130) - V(163) = V_USER(131) - V(159) = V_USER(132) - V(239) = V_USER(133) - V(143) = V_USER(134) - V(127) = V_USER(135) - V(224) = V_USER(136) - V(128) = V_USER(137) - V(225) = V_USER(138) - V(114) = V_USER(139) - V(216) = V_USER(140) - V(136) = V_USER(141) - V(137) = V_USER(142) - V(210) = V_USER(143) - V(242) = V_USER(144) - V(243) = V_USER(145) - V(217) = V_USER(146) - V(185) = V_USER(147) - V(179) = V_USER(148) - V(180) = V_USER(149) - V(183) = V_USER(150) - V(123) = V_USER(151) - V(7) = V_USER(152) - V(56) = V_USER(153) - V(240) = V_USER(154) - V(241) = V_USER(155) - V(177) = V_USER(156) - V(147) = V_USER(157) - V(223) = V_USER(158) - V(96) = V_USER(159) - V(199) = V_USER(160) - V(266) = V_USER(161) - V(86) = V_USER(162) - V(8) = V_USER(163) - V(9) = V_USER(164) - V(220) = V_USER(165) - V(162) = V_USER(166) - V(148) = V_USER(167) - V(209) = V_USER(168) - V(238) = V_USER(169) - V(249) = V_USER(170) - V(10) = V_USER(171) - V(11) = V_USER(172) - V(165) = V_USER(173) - V(221) = V_USER(174) - V(13) = V_USER(175) - V(14) = V_USER(176) - V(15) = V_USER(177) - V(16) = V_USER(178) - V(19) = V_USER(179) - V(20) = V_USER(180) - V(23) = V_USER(181) - V(22) = V_USER(182) + V(105) = V_USER(99) + V(86) = V_USER(100) + V(193) = V_USER(101) + V(265) = V_USER(102) + V(102) = V_USER(103) + V(284) = V_USER(104) + V(260) = V_USER(105) + V(271) = V_USER(106) + V(268) = V_USER(107) + V(134) = V_USER(108) + V(186) = V_USER(109) + V(121) = V_USER(110) + V(188) = V_USER(111) + V(123) = V_USER(112) + V(129) = V_USER(113) + V(127) = V_USER(114) + V(172) = V_USER(115) + V(269) = V_USER(116) + V(143) = V_USER(117) + V(44) = V_USER(118) + V(49) = V_USER(119) + V(42) = V_USER(120) + V(73) = V_USER(121) + V(174) = V_USER(122) + V(194) = V_USER(123) + V(99) = V_USER(124) + V(240) = V_USER(125) + V(150) = V_USER(126) + V(206) = V_USER(127) + V(109) = V_USER(128) + V(125) = V_USER(129) + V(141) = V_USER(130) + V(232) = V_USER(131) + V(166) = V_USER(132) + V(168) = V_USER(133) + V(164) = V_USER(134) + V(243) = V_USER(135) + V(146) = V_USER(136) + V(130) = V_USER(137) + V(228) = V_USER(138) + V(131) = V_USER(139) + V(229) = V_USER(140) + V(116) = V_USER(141) + V(220) = V_USER(142) + V(139) = V_USER(143) + V(140) = V_USER(144) + V(214) = V_USER(145) + V(245) = V_USER(146) + V(244) = V_USER(147) + V(222) = V_USER(148) + V(189) = V_USER(149) + V(182) = V_USER(150) + V(183) = V_USER(151) + V(187) = V_USER(152) + V(126) = V_USER(153) + V(8) = V_USER(154) + V(60) = V_USER(155) + V(247) = V_USER(156) + V(246) = V_USER(157) + V(181) = V_USER(158) + V(151) = V_USER(159) + V(227) = V_USER(160) + V(98) = V_USER(161) + V(203) = V_USER(162) + V(270) = V_USER(163) + V(87) = V_USER(164) + V(9) = V_USER(165) + V(10) = V_USER(166) + V(224) = V_USER(167) + V(167) = V_USER(168) + V(152) = V_USER(169) + V(213) = V_USER(170) + V(242) = V_USER(171) + V(254) = V_USER(172) + V(11) = V_USER(173) + V(12) = V_USER(174) + V(170) = V_USER(175) + V(225) = V_USER(176) + V(14) = V_USER(177) + V(15) = V_USER(178) + V(16) = V_USER(179) + V(17) = V_USER(180) + V(20) = V_USER(181) + V(21) = V_USER(182) V(24) = V_USER(183) - V(25) = V_USER(184) - V(247) = V_USER(185) - V(203) = V_USER(186) - V(133) = V_USER(187) - V(245) = V_USER(188) - V(66) = V_USER(189) - V(257) = V_USER(190) - V(130) = V_USER(191) - V(160) = V_USER(192) - V(195) = V_USER(193) - V(171) = V_USER(194) - V(227) = V_USER(195) - V(201) = V_USER(196) - V(138) = V_USER(197) - V(222) = V_USER(198) - V(87) = V_USER(199) - V(228) = V_USER(200) - V(263) = V_USER(201) - V(214) = V_USER(202) - V(41) = V_USER(203) - V(174) = V_USER(204) - V(196) = V_USER(205) - V(134) = V_USER(206) - V(149) = V_USER(207) - V(71) = V_USER(208) - V(27) = V_USER(209) - V(150) = V_USER(210) - V(151) = V_USER(211) - V(244) = V_USER(212) - V(115) = V_USER(213) - V(166) = V_USER(214) - V(181) = V_USER(215) - V(226) = V_USER(216) - V(237) = V_USER(217) - V(200) = V_USER(218) - V(152) = V_USER(219) - V(61) = V_USER(220) - V(57) = V_USER(221) - V(169) = V_USER(222) - V(18) = V_USER(223) - V(58) = V_USER(224) - V(59) = V_USER(225) - V(280) = V_USER(226) - V(270) = V_USER(227) - V(287) = V_USER(228) - V(206) = V_USER(229) - V(89) = V_USER(230) - V(17) = V_USER(231) - V(284) = V_USER(232) - V(268) = V_USER(233) - V(277) = V_USER(234) - V(107) = V_USER(237) - V(62) = V_USER(238) - V(269) = V_USER(239) - V(90) = V_USER(240) - V(212) = V_USER(241) - V(211) = V_USER(242) - V(235) = V_USER(243) - V(63) = V_USER(244) - V(117) = V_USER(245) - V(234) = V_USER(246) + V(23) = V_USER(184) + V(25) = V_USER(185) + V(26) = V_USER(186) + V(251) = V_USER(187) + V(207) = V_USER(188) + V(136) = V_USER(189) + V(249) = V_USER(190) + V(88) = V_USER(191) + V(261) = V_USER(192) + V(132) = V_USER(193) + V(163) = V_USER(194) + V(200) = V_USER(195) + V(175) = V_USER(196) + V(231) = V_USER(197) + V(205) = V_USER(198) + V(142) = V_USER(199) + V(226) = V_USER(200) + V(89) = V_USER(201) + V(233) = V_USER(202) + V(266) = V_USER(203) + V(218) = V_USER(204) + V(45) = V_USER(205) + V(178) = V_USER(206) + V(199) = V_USER(207) + V(137) = V_USER(208) + V(153) = V_USER(209) + V(74) = V_USER(210) + V(28) = V_USER(211) + V(154) = V_USER(212) + V(155) = V_USER(213) + V(248) = V_USER(214) + V(117) = V_USER(215) + V(169) = V_USER(216) + V(185) = V_USER(217) + V(230) = V_USER(218) + V(241) = V_USER(219) + V(204) = V_USER(220) + V(156) = V_USER(221) + V(65) = V_USER(222) + V(61) = V_USER(223) + V(173) = V_USER(224) + V(19) = V_USER(225) + V(62) = V_USER(226) + V(63) = V_USER(227) + V(279) = V_USER(228) + V(291) = V_USER(229) + V(281) = V_USER(230) + V(210) = V_USER(231) + V(91) = V_USER(232) + V(18) = V_USER(233) + V(288) = V_USER(234) + V(272) = V_USER(235) + V(282) = V_USER(236) + V(111) = V_USER(239) + V(66) = V_USER(240) + V(286) = V_USER(241) + V(92) = V_USER(242) + V(216) = V_USER(243) + V(215) = V_USER(244) + V(239) = V_USER(245) + V(67) = V_USER(246) V(118) = V_USER(247) - V(204) = V_USER(248) - V(110) = V_USER(249) - V(49) = V_USER(250) - V(197) = V_USER(251) - V(194) = V_USER(252) - V(254) = V_USER(253) - V(111) = V_USER(254) - V(104) = V_USER(255) - V(251) = V_USER(256) - V(198) = V_USER(257) - V(252) = V_USER(258) - V(91) = V_USER(259) - V(92) = V_USER(260) + V(238) = V_USER(248) + V(119) = V_USER(249) + V(209) = V_USER(250) + V(112) = V_USER(251) + V(50) = V_USER(252) + V(201) = V_USER(253) + V(198) = V_USER(254) + V(253) = V_USER(255) + V(113) = V_USER(256) + V(104) = V_USER(257) + V(257) = V_USER(258) + V(202) = V_USER(259) + V(256) = V_USER(260) V(93) = V_USER(261) - V(255) = V_USER(262) - V(250) = V_USER(263) - V(153) = V_USER(264) - V(158) = V_USER(265) - V(167) = V_USER(266) - V(161) = V_USER(267) - V(154) = V_USER(268) - V(94) = V_USER(269) - V(144) = V_USER(270) - V(135) = V_USER(271) - V(278) = V_USER(272) - V(283) = V_USER(273) - V(286) = V_USER(278) - V(119) = V_USER(279) - V(28) = V_USER(280) - V(29) = V_USER(281) - V(30) = V_USER(282) - V(76) = V_USER(283) - V(21) = V_USER(284) - V(77) = V_USER(285) - V(26) = V_USER(286) + V(94) = V_USER(262) + V(95) = V_USER(263) + V(259) = V_USER(264) + V(255) = V_USER(265) + V(157) = V_USER(266) + V(162) = V_USER(267) + V(171) = V_USER(268) + V(165) = V_USER(269) + V(158) = V_USER(270) + V(106) = V_USER(271) + V(147) = V_USER(272) + V(138) = V_USER(273) + V(280) = V_USER(274) + V(287) = V_USER(275) + V(276) = V_USER(280) + V(122) = V_USER(281) + V(29) = V_USER(282) + V(30) = V_USER(283) + V(31) = V_USER(284) + V(79) = V_USER(285) + V(22) = V_USER(286) + V(80) = V_USER(287) + V(27) = V_USER(288) + V(32) = V_USER(289) + V(33) = V_USER(290) END SUBROUTINE Shuffle_user2kpp @@ -530,286 +534,290 @@ SUBROUTINE Shuffle_kpp2user ( V, V_USER ) ! V_USER - Concentration of variable species in USER's order REAL(kind=dp) :: V_USER(NVAR) - V_USER(1) = V(233) - V_USER(2) = V(219) - V_USER(3) = V(215) + V_USER(1) = V(237) + V_USER(2) = V(221) + V_USER(3) = V(219) V_USER(4) = V(4) - V_USER(5) = V(261) - V_USER(6) = V(112) + V_USER(5) = V(264) + V_USER(6) = V(114) V_USER(7) = V(5) - V_USER(8) = V(178) - V_USER(9) = V(155) - V_USER(10) = V(145) - V_USER(11) = V(248) - V_USER(12) = V(193) - V_USER(13) = V(253) - V_USER(14) = V(99) - V_USER(15) = V(60) - V_USER(16) = V(156) - V_USER(17) = V(187) - V_USER(18) = V(105) - V_USER(19) = V(282) - V_USER(20) = V(125) - V_USER(21) = V(132) - V_USER(22) = V(50) - V_USER(23) = V(172) + V_USER(8) = V(184) + V_USER(9) = V(159) + V_USER(10) = V(148) + V_USER(11) = V(252) + V_USER(12) = V(196) + V_USER(13) = V(258) + V_USER(14) = V(101) + V_USER(15) = V(64) + V_USER(16) = V(160) + V_USER(17) = V(191) + V_USER(18) = V(107) + V_USER(19) = V(273) + V_USER(20) = V(128) + V_USER(21) = V(135) + V_USER(22) = V(51) + V_USER(23) = V(176) V_USER(24) = V(274) - V_USER(25) = V(12) - V_USER(26) = V(275) - V_USER(27) = V(276) - V_USER(28) = V(176) - V_USER(29) = V(67) - V_USER(30) = V(95) - V_USER(31) = V(54) - V_USER(32) = V(75) - V_USER(33) = V(157) - V_USER(34) = V(121) - V_USER(35) = V(141) - V_USER(36) = V(142) - V_USER(37) = V(51) + V_USER(25) = V(13) + V_USER(26) = V(283) + V_USER(27) = V(277) + V_USER(28) = V(6) + V_USER(29) = V(180) + V_USER(30) = V(70) + V_USER(31) = V(97) + V_USER(32) = V(58) + V_USER(33) = V(76) + V_USER(34) = V(161) + V_USER(35) = V(124) + V_USER(36) = V(144) + V_USER(37) = V(145) V_USER(38) = V(52) V_USER(39) = V(53) - V_USER(40) = V(48) - V_USER(41) = V(42) - V_USER(42) = V(46) - V_USER(43) = V(70) - V_USER(44) = V(73) - V_USER(45) = V(1) - V_USER(46) = V(2) - V_USER(47) = V(3) - V_USER(48) = V(262) - V_USER(49) = V(230) - V_USER(50) = V(97) - V_USER(51) = V(39) - V_USER(52) = V(191) - V_USER(53) = V(100) - V_USER(54) = V(43) - V_USER(55) = V(186) - V_USER(56) = V(74) - V_USER(57) = V(68) - V_USER(58) = V(285) - V_USER(59) = V(192) - V_USER(60) = V(72) - V_USER(61) = V(231) - V_USER(62) = V(259) - V_USER(63) = V(273) - V_USER(64) = V(103) - V_USER(65) = V(258) - V_USER(66) = V(6) - V_USER(67) = V(109) - V_USER(68) = V(82) - V_USER(69) = V(129) - V_USER(70) = V(205) - V_USER(71) = V(64) - V_USER(72) = V(113) - V_USER(73) = V(88) - V_USER(74) = V(102) - V_USER(75) = V(175) - V_USER(76) = V(213) - V_USER(77) = V(108) - V_USER(78) = V(232) - V_USER(79) = V(218) - V_USER(80) = V(173) - V_USER(81) = V(55) - V_USER(82) = V(44) - V_USER(83) = V(45) - V_USER(84) = V(279) - V_USER(85) = V(208) - V_USER(86) = V(246) - V_USER(87) = V(272) - V_USER(88) = V(189) - V_USER(89) = V(78) - V_USER(90) = V(79) - V_USER(91) = V(80) - V_USER(92) = V(81) - V_USER(93) = V(271) - V_USER(94) = V(207) - V_USER(95) = V(65) - V_USER(96) = V(83) - V_USER(97) = V(84) + V_USER(40) = V(54) + V_USER(41) = V(55) + V_USER(42) = V(56) + V_USER(43) = V(57) + V_USER(44) = V(71) + V_USER(45) = V(72) + V_USER(46) = V(1) + V_USER(47) = V(2) + V_USER(48) = V(3) + V_USER(49) = V(263) + V_USER(50) = V(234) + V_USER(51) = V(100) + V_USER(52) = V(43) + V_USER(53) = V(195) + V_USER(54) = V(149) + V_USER(55) = V(46) + V_USER(56) = V(190) + V_USER(57) = V(77) + V_USER(58) = V(78) + V_USER(59) = V(290) + V_USER(60) = V(197) + V_USER(61) = V(75) + V_USER(62) = V(235) + V_USER(63) = V(262) + V_USER(64) = V(285) + V_USER(65) = V(103) + V_USER(66) = V(267) + V_USER(67) = V(7) + V_USER(68) = V(115) + V_USER(69) = V(90) + V_USER(70) = V(133) + V_USER(71) = V(208) + V_USER(72) = V(68) + V_USER(73) = V(120) + V_USER(74) = V(96) + V_USER(75) = V(108) + V_USER(76) = V(179) + V_USER(77) = V(217) + V_USER(78) = V(110) + V_USER(79) = V(41) + V_USER(80) = V(236) + V_USER(81) = V(223) + V_USER(82) = V(177) + V_USER(83) = V(59) + V_USER(84) = V(47) + V_USER(85) = V(48) + V_USER(86) = V(278) + V_USER(87) = V(212) + V_USER(88) = V(250) + V_USER(89) = V(289) + V_USER(90) = V(192) + V_USER(91) = V(81) + V_USER(92) = V(82) + V_USER(93) = V(83) + V_USER(94) = V(84) + V_USER(95) = V(275) + V_USER(96) = V(211) + V_USER(97) = V(69) V_USER(98) = V(85) - V_USER(99) = V(188) - V_USER(100) = V(260) - V_USER(101) = V(101) - V_USER(102) = V(281) - V_USER(103) = V(256) - V_USER(104) = V(267) - V_USER(105) = V(264) - V_USER(106) = V(131) - V_USER(107) = V(182) - V_USER(108) = V(120) - V_USER(109) = V(184) - V_USER(110) = V(116) - V_USER(111) = V(126) - V_USER(112) = V(124) - V_USER(113) = V(168) - V_USER(114) = V(265) - V_USER(115) = V(140) - V_USER(116) = V(40) - V_USER(117) = V(47) - V_USER(118) = V(38) - V_USER(119) = V(69) - V_USER(120) = V(170) - V_USER(121) = V(190) - V_USER(122) = V(98) - V_USER(123) = V(236) - V_USER(124) = V(146) - V_USER(125) = V(202) - V_USER(126) = V(106) - V_USER(127) = V(122) - V_USER(128) = V(139) - V_USER(129) = V(229) - V_USER(130) = V(164) - V_USER(131) = V(163) - V_USER(132) = V(159) - V_USER(133) = V(239) - V_USER(134) = V(143) - V_USER(135) = V(127) - V_USER(136) = V(224) - V_USER(137) = V(128) - V_USER(138) = V(225) - V_USER(139) = V(114) - V_USER(140) = V(216) - V_USER(141) = V(136) - V_USER(142) = V(137) - V_USER(143) = V(210) - V_USER(144) = V(242) - V_USER(145) = V(243) - V_USER(146) = V(217) - V_USER(147) = V(185) - V_USER(148) = V(179) - V_USER(149) = V(180) - V_USER(150) = V(183) - V_USER(151) = V(123) - V_USER(152) = V(7) - V_USER(153) = V(56) - V_USER(154) = V(240) - V_USER(155) = V(241) - V_USER(156) = V(177) - V_USER(157) = V(147) - V_USER(158) = V(223) - V_USER(159) = V(96) - V_USER(160) = V(199) - V_USER(161) = V(266) - V_USER(162) = V(86) - V_USER(163) = V(8) - V_USER(164) = V(9) - V_USER(165) = V(220) - V_USER(166) = V(162) - V_USER(167) = V(148) - V_USER(168) = V(209) - V_USER(169) = V(238) - V_USER(170) = V(249) - V_USER(171) = V(10) - V_USER(172) = V(11) - V_USER(173) = V(165) - V_USER(174) = V(221) - V_USER(175) = V(13) - V_USER(176) = V(14) - V_USER(177) = V(15) - V_USER(178) = V(16) - V_USER(179) = V(19) - V_USER(180) = V(20) - V_USER(181) = V(23) - V_USER(182) = V(22) + V_USER(99) = V(105) + V_USER(100) = V(86) + V_USER(101) = V(193) + V_USER(102) = V(265) + V_USER(103) = V(102) + V_USER(104) = V(284) + V_USER(105) = V(260) + V_USER(106) = V(271) + V_USER(107) = V(268) + V_USER(108) = V(134) + V_USER(109) = V(186) + V_USER(110) = V(121) + V_USER(111) = V(188) + V_USER(112) = V(123) + V_USER(113) = V(129) + V_USER(114) = V(127) + V_USER(115) = V(172) + V_USER(116) = V(269) + V_USER(117) = V(143) + V_USER(118) = V(44) + V_USER(119) = V(49) + V_USER(120) = V(42) + V_USER(121) = V(73) + V_USER(122) = V(174) + V_USER(123) = V(194) + V_USER(124) = V(99) + V_USER(125) = V(240) + V_USER(126) = V(150) + V_USER(127) = V(206) + V_USER(128) = V(109) + V_USER(129) = V(125) + V_USER(130) = V(141) + V_USER(131) = V(232) + V_USER(132) = V(166) + V_USER(133) = V(168) + V_USER(134) = V(164) + V_USER(135) = V(243) + V_USER(136) = V(146) + V_USER(137) = V(130) + V_USER(138) = V(228) + V_USER(139) = V(131) + V_USER(140) = V(229) + V_USER(141) = V(116) + V_USER(142) = V(220) + V_USER(143) = V(139) + V_USER(144) = V(140) + V_USER(145) = V(214) + V_USER(146) = V(245) + V_USER(147) = V(244) + V_USER(148) = V(222) + V_USER(149) = V(189) + V_USER(150) = V(182) + V_USER(151) = V(183) + V_USER(152) = V(187) + V_USER(153) = V(126) + V_USER(154) = V(8) + V_USER(155) = V(60) + V_USER(156) = V(247) + V_USER(157) = V(246) + V_USER(158) = V(181) + V_USER(159) = V(151) + V_USER(160) = V(227) + V_USER(161) = V(98) + V_USER(162) = V(203) + V_USER(163) = V(270) + V_USER(164) = V(87) + V_USER(165) = V(9) + V_USER(166) = V(10) + V_USER(167) = V(224) + V_USER(168) = V(167) + V_USER(169) = V(152) + V_USER(170) = V(213) + V_USER(171) = V(242) + V_USER(172) = V(254) + V_USER(173) = V(11) + V_USER(174) = V(12) + V_USER(175) = V(170) + V_USER(176) = V(225) + V_USER(177) = V(14) + V_USER(178) = V(15) + V_USER(179) = V(16) + V_USER(180) = V(17) + V_USER(181) = V(20) + V_USER(182) = V(21) V_USER(183) = V(24) - V_USER(184) = V(25) - V_USER(185) = V(247) - V_USER(186) = V(203) - V_USER(187) = V(133) - V_USER(188) = V(245) - V_USER(189) = V(66) - V_USER(190) = V(257) - V_USER(191) = V(130) - V_USER(192) = V(160) - V_USER(193) = V(195) - V_USER(194) = V(171) - V_USER(195) = V(227) - V_USER(196) = V(201) - V_USER(197) = V(138) - V_USER(198) = V(222) - V_USER(199) = V(87) - V_USER(200) = V(228) - V_USER(201) = V(263) - V_USER(202) = V(214) - V_USER(203) = V(41) - V_USER(204) = V(174) - V_USER(205) = V(196) - V_USER(206) = V(134) - V_USER(207) = V(149) - V_USER(208) = V(71) - V_USER(209) = V(27) - V_USER(210) = V(150) - V_USER(211) = V(151) - V_USER(212) = V(244) - V_USER(213) = V(115) - V_USER(214) = V(166) - V_USER(215) = V(181) - V_USER(216) = V(226) - V_USER(217) = V(237) - V_USER(218) = V(200) - V_USER(219) = V(152) - V_USER(220) = V(61) - V_USER(221) = V(57) - V_USER(222) = V(169) - V_USER(223) = V(18) - V_USER(224) = V(58) - V_USER(225) = V(59) - V_USER(226) = V(280) - V_USER(227) = V(270) - V_USER(228) = V(287) - V_USER(229) = V(206) - V_USER(230) = V(89) - V_USER(231) = V(17) - V_USER(232) = V(284) - V_USER(233) = V(268) - V_USER(234) = V(277) - V_USER(237) = V(107) - V_USER(238) = V(62) - V_USER(239) = V(269) - V_USER(240) = V(90) - V_USER(241) = V(212) - V_USER(242) = V(211) - V_USER(243) = V(235) - V_USER(244) = V(63) - V_USER(245) = V(117) - V_USER(246) = V(234) + V_USER(184) = V(23) + V_USER(185) = V(25) + V_USER(186) = V(26) + V_USER(187) = V(251) + V_USER(188) = V(207) + V_USER(189) = V(136) + V_USER(190) = V(249) + V_USER(191) = V(88) + V_USER(192) = V(261) + V_USER(193) = V(132) + V_USER(194) = V(163) + V_USER(195) = V(200) + V_USER(196) = V(175) + V_USER(197) = V(231) + V_USER(198) = V(205) + V_USER(199) = V(142) + V_USER(200) = V(226) + V_USER(201) = V(89) + V_USER(202) = V(233) + V_USER(203) = V(266) + V_USER(204) = V(218) + V_USER(205) = V(45) + V_USER(206) = V(178) + V_USER(207) = V(199) + V_USER(208) = V(137) + V_USER(209) = V(153) + V_USER(210) = V(74) + V_USER(211) = V(28) + V_USER(212) = V(154) + V_USER(213) = V(155) + V_USER(214) = V(248) + V_USER(215) = V(117) + V_USER(216) = V(169) + V_USER(217) = V(185) + V_USER(218) = V(230) + V_USER(219) = V(241) + V_USER(220) = V(204) + V_USER(221) = V(156) + V_USER(222) = V(65) + V_USER(223) = V(61) + V_USER(224) = V(173) + V_USER(225) = V(19) + V_USER(226) = V(62) + V_USER(227) = V(63) + V_USER(228) = V(279) + V_USER(229) = V(291) + V_USER(230) = V(281) + V_USER(231) = V(210) + V_USER(232) = V(91) + V_USER(233) = V(18) + V_USER(234) = V(288) + V_USER(235) = V(272) + V_USER(236) = V(282) + V_USER(239) = V(111) + V_USER(240) = V(66) + V_USER(241) = V(286) + V_USER(242) = V(92) + V_USER(243) = V(216) + V_USER(244) = V(215) + V_USER(245) = V(239) + V_USER(246) = V(67) V_USER(247) = V(118) - V_USER(248) = V(204) - V_USER(249) = V(110) - V_USER(250) = V(49) - V_USER(251) = V(197) - V_USER(252) = V(194) - V_USER(253) = V(254) - V_USER(254) = V(111) - V_USER(255) = V(104) - V_USER(256) = V(251) - V_USER(257) = V(198) - V_USER(258) = V(252) - V_USER(259) = V(91) - V_USER(260) = V(92) + V_USER(248) = V(238) + V_USER(249) = V(119) + V_USER(250) = V(209) + V_USER(251) = V(112) + V_USER(252) = V(50) + V_USER(253) = V(201) + V_USER(254) = V(198) + V_USER(255) = V(253) + V_USER(256) = V(113) + V_USER(257) = V(104) + V_USER(258) = V(257) + V_USER(259) = V(202) + V_USER(260) = V(256) V_USER(261) = V(93) - V_USER(262) = V(255) - V_USER(263) = V(250) - V_USER(264) = V(153) - V_USER(265) = V(158) - V_USER(266) = V(167) - V_USER(267) = V(161) - V_USER(268) = V(154) - V_USER(269) = V(94) - V_USER(270) = V(144) - V_USER(271) = V(135) - V_USER(272) = V(278) - V_USER(273) = V(283) - V_USER(278) = V(286) - V_USER(279) = V(119) - V_USER(280) = V(28) - V_USER(281) = V(29) - V_USER(282) = V(30) - V_USER(283) = V(76) - V_USER(284) = V(21) - V_USER(285) = V(77) - V_USER(286) = V(26) + V_USER(262) = V(94) + V_USER(263) = V(95) + V_USER(264) = V(259) + V_USER(265) = V(255) + V_USER(266) = V(157) + V_USER(267) = V(162) + V_USER(268) = V(171) + V_USER(269) = V(165) + V_USER(270) = V(158) + V_USER(271) = V(106) + V_USER(272) = V(147) + V_USER(273) = V(138) + V_USER(274) = V(280) + V_USER(275) = V(287) + V_USER(280) = V(276) + V_USER(281) = V(122) + V_USER(282) = V(29) + V_USER(283) = V(30) + V_USER(284) = V(31) + V_USER(285) = V(79) + V_USER(286) = V(22) + V_USER(287) = V(80) + V_USER(288) = V(27) + V_USER(289) = V(32) + V_USER(290) = V(33) END SUBROUTINE Shuffle_kpp2user @@ -857,44 +865,44 @@ SUBROUTINE Get_OHreactivity ( CC, RR, OHreact ) ! OHreact - OH reactivity [s-1] REAL(kind=dp) :: OHreact - OHreact = RR(12)*CC(85) + RR(14)*CC(277) + 2*RR(18) + 2*RR(19) + RR(20)*CC(281) & - + RR(21)*CC(208) + RR(24)*CC(258) + RR(25)*CC(186) + RR(31)*CC(263) + RR(32)*CC(134) & - + RR(33)*CC(134) + RR(34)*CC(193) + RR(35)*CC(193) + RR(36)*CC(262) + RR(37)*CC(270) & - + RR(38)*CC(260) + RR(39)*CC(280) + RR(40)*CC(188) + RR(43)*CC(101) + RR(46)*CC(287) & - + RR(49)*CC(207) + RR(50)*CC(214) + RR(53)*CC(261) + RR(58)*CC(157) + RR(62)*CC(121) & - + RR(63)*CC(121) + RR(67)*CC(112) + RR(77)*CC(198) + RR(78)*CC(215) + RR(79)*CC(255) & - + RR(84)*CC(219) + RR(93)*CC(222) + RR(103)*CC(129) + RR(104)*CC(154) + RR(114)*CC(254) & - + RR(116)*CC(232) + RR(117)*CC(232) + RR(119)*CC(218) + RR(120)*CC(228) + RR(123)*CC(246) & - + RR(124)*CC(246) + RR(131)*CC(111) + RR(132)*CC(108) + RR(133)*CC(92) + RR(134)*CC(93) & - + RR(135)*CC(91) + RR(136)*CC(94) + RR(137)*CC(110) + RR(138)*CC(23) + RR(139)*CC(66) & - + RR(164)*CC(82) + RR(165)*CC(82) + RR(167)*CC(286) + RR(171)*CC(272) + RR(176)*CC(125) & - + RR(179)*CC(274) + RR(188)*CC(74) + RR(189)*CC(70) + RR(190)*CC(97) + RR(202)*CC(288) & - + RR(203)*CC(284) + RR(208)*CC(62) + RR(243)*CC(192) + RR(245)*CC(273) + RR(246)*CC(273) & - + RR(247)*CC(107) + RR(248)*CC(72) + RR(249)*CC(271) + RR(250)*CC(267) + RR(251)*CC(231) & - + RR(252)*CC(259) + RR(253)*CC(100) + RR(254)*CC(73) + RR(255)*CC(68) + RR(256)*CC(39) & - + RR(257)*CC(81) + RR(258)*CC(79) + RR(259)*CC(80) + RR(260)*CC(78) + RR(326)*CC(140) & - + RR(327)*CC(65) + RR(328)*CC(264) + RR(335)*CC(43) + RR(336)*CC(205) + RR(337)*CC(194) & - + RR(351)*CC(150) + RR(352)*CC(151) + RR(362)*CC(165) + RR(370)*CC(118) + RR(384)*CC(174) & - + RR(385)*CC(196) + RR(391)*CC(131) + RR(392)*CC(87) + RR(393)*CC(88) + RR(394)*CC(86) & - + RR(395)*CC(89) + RR(397)*CC(220) + RR(398)*CC(220) + RR(399)*CC(220) + RR(400)*CC(220) & - + RR(427)*CC(182) + RR(428)*CC(184) + RR(429)*CC(126) + RR(430)*CC(124) + RR(431)*CC(189) & - + RR(432)*CC(170) + RR(433)*CC(106) + RR(434)*CC(153) + RR(435)*CC(153) + RR(436)*CC(158) & - + RR(437)*CC(158) + RR(438)*CC(153) + RR(439)*CC(158) + RR(440)*CC(167) + RR(441)*CC(161) & - + RR(454)*CC(114) + RR(455)*CC(127) + RR(456)*CC(127) + RR(457)*CC(128) + RR(458)*CC(128) & - + RR(477)*CC(136) + RR(478)*CC(136) + RR(479)*CC(137) + RR(480)*CC(137) + RR(481)*CC(216) & - + RR(482)*CC(216) + RR(483)*CC(210) + RR(484)*CC(210) + RR(485)*CC(216) + RR(486)*CC(210) & - + RR(524)*CC(177) + RR(525)*CC(147) + RR(526)*CC(177) + RR(527)*CC(147) + RR(528)*CC(147) & - + RR(529)*CC(177) + RR(530)*CC(147) + RR(531)*CC(147) + RR(540)*CC(236) + RR(541)*CC(236) & - + RR(544)*CC(239) + RR(547)*CC(244) + RR(549)*CC(247) + RR(550)*CC(247) + RR(553)*CC(237) & - + RR(554)*CC(226) + RR(555)*CC(227) + RR(556)*CC(195) + RR(557)*CC(171) + RR(564)*CC(160) & - + RR(565)*CC(152) + RR(566)*CC(115) + RR(567)*CC(181) + RR(568)*CC(166) + RR(569)*CC(130) & - + RR(575)*CC(133) + RR(587)*CC(149) + RR(588)*CC(84) + RR(589)*CC(202) + RR(590)*CC(122) & - + RR(591)*CC(139) + RR(592)*CC(159) + RR(593)*CC(209) + RR(594)*CC(238) + RR(596)*CC(104) & - + RR(597)*CC(83) + RR(599)*CC(168) + RR(600)*CC(168) + RR(601)*CC(18) + RR(605)*CC(75) & - + RR(606)*CC(54) + RR(613)*CC(64) + RR(614)*CC(113) + RR(615)*CC(113) + RR(616)*CC(60) & - + RR(617)*CC(76) + RR(618)*CC(77) + RR(624)*CC(117) + RR(626)*CC(109) + RR(628)*CC(138) & - + RR(631)*CC(99) + RR(636)*CC(67) + RR(638)*CC(95) + RR(643)*CC(105) + RR(646)*CC(206) & - + RR(650)*CC(155) + RR(653)*CC(145) + RR(673)*CC(278) + RR(674)*CC(283) + OHreact = RR(12)*CC(86) + RR(14)*CC(282) + 2*RR(18) + 2*RR(19) + RR(20)*CC(284) & + + RR(21)*CC(212) + RR(24)*CC(267) + RR(25)*CC(190) + RR(31)*CC(266) + RR(32)*CC(137) & + + RR(33)*CC(196) + RR(34)*CC(263) + RR(35)*CC(291) + RR(36)*CC(265) + RR(37)*CC(279) & + + RR(38)*CC(193) + RR(41)*CC(102) + RR(44)*CC(281) + RR(47)*CC(211) + RR(48)*CC(218) & + + RR(51)*CC(264) + RR(56)*CC(161) + RR(60)*CC(124) + RR(61)*CC(124) + RR(65)*CC(114) & + + RR(75)*CC(202) + RR(76)*CC(219) + RR(77)*CC(259) + RR(82)*CC(221) + RR(91)*CC(226) & + + RR(101)*CC(133) + RR(102)*CC(158) + RR(110)*CC(253) + RR(112)*CC(236) + RR(113)*CC(236) & + + RR(115)*CC(223) + RR(116)*CC(233) + RR(119)*CC(250) + RR(120)*CC(250) + RR(121)*CC(113) & + + RR(122)*CC(110) + RR(123)*CC(94) + RR(124)*CC(95) + RR(125)*CC(93) + RR(126)*CC(106) & + + RR(127)*CC(112) + RR(128)*CC(24) + RR(129)*CC(88) + RR(148)*CC(90) + RR(149)*CC(90) & + + RR(151)*CC(276) + RR(155)*CC(289) + RR(160)*CC(128) + RR(163)*CC(274) + RR(172)*CC(77) & + + RR(173)*CC(71) + RR(174)*CC(100) + RR(183)*CC(292) + RR(184)*CC(288) + RR(188)*CC(66) & + + RR(222)*CC(197) + RR(224)*CC(285) + RR(225)*CC(285) + RR(226)*CC(111) + RR(227)*CC(75) & + + RR(228)*CC(275) + RR(229)*CC(271) + RR(230)*CC(235) + RR(231)*CC(262) + RR(232)*CC(149) & + + RR(233)*CC(72) + RR(234)*CC(78) + RR(235)*CC(43) + RR(236)*CC(84) + RR(237)*CC(82) & + + RR(238)*CC(83) + RR(239)*CC(81) + RR(301)*CC(143) + RR(302)*CC(69) + RR(303)*CC(268) & + + RR(308)*CC(46) + RR(309)*CC(208) + RR(310)*CC(198) + RR(324)*CC(154) + RR(325)*CC(155) & + + RR(335)*CC(170) + RR(343)*CC(119) + RR(357)*CC(178) + RR(358)*CC(199) + RR(364)*CC(134) & + + RR(365)*CC(89) + RR(366)*CC(96) + RR(367)*CC(87) + RR(368)*CC(91) + RR(370)*CC(224) & + + RR(371)*CC(224) + RR(372)*CC(224) + RR(373)*CC(224) + RR(400)*CC(186) + RR(401)*CC(188) & + + RR(402)*CC(129) + RR(403)*CC(127) + RR(404)*CC(192) + RR(405)*CC(174) + RR(406)*CC(109) & + + RR(407)*CC(157) + RR(408)*CC(157) + RR(409)*CC(162) + RR(410)*CC(162) + RR(411)*CC(157) & + + RR(412)*CC(162) + RR(413)*CC(171) + RR(414)*CC(165) + RR(427)*CC(116) + RR(428)*CC(130) & + + RR(429)*CC(130) + RR(430)*CC(131) + RR(431)*CC(131) + RR(450)*CC(139) + RR(451)*CC(139) & + + RR(452)*CC(140) + RR(453)*CC(140) + RR(454)*CC(220) + RR(455)*CC(220) + RR(456)*CC(214) & + + RR(457)*CC(214) + RR(458)*CC(220) + RR(459)*CC(214) + RR(497)*CC(181) + RR(498)*CC(151) & + + RR(499)*CC(181) + RR(500)*CC(151) + RR(501)*CC(151) + RR(502)*CC(181) + RR(503)*CC(151) & + + RR(504)*CC(151) + RR(513)*CC(240) + RR(514)*CC(240) + RR(517)*CC(243) + RR(520)*CC(248) & + + RR(522)*CC(251) + RR(523)*CC(251) + RR(526)*CC(241) + RR(527)*CC(230) + RR(528)*CC(231) & + + RR(529)*CC(200) + RR(530)*CC(175) + RR(537)*CC(163) + RR(538)*CC(156) + RR(539)*CC(117) & + + RR(540)*CC(185) + RR(541)*CC(169) + RR(542)*CC(132) + RR(548)*CC(136) + RR(560)*CC(153) & + + RR(561)*CC(105) + RR(562)*CC(206) + RR(563)*CC(125) + RR(564)*CC(141) + RR(565)*CC(164) & + + RR(566)*CC(213) + RR(567)*CC(242) + RR(569)*CC(104) + RR(570)*CC(85) + RR(572)*CC(172) & + + RR(573)*CC(172) + RR(574)*CC(19) + RR(578)*CC(76) + RR(579)*CC(58) + RR(586)*CC(68) & + + RR(587)*CC(120) + RR(588)*CC(120) + RR(589)*CC(64) + RR(590)*CC(79) + RR(591)*CC(80) & + + RR(597)*CC(118) + RR(599)*CC(115) + RR(601)*CC(142) + RR(604)*CC(101) + RR(609)*CC(70) & + + RR(611)*CC(97) + RR(616)*CC(107) + RR(619)*CC(210) + RR(623)*CC(159) + RR(626)*CC(148) & + + RR(636)*CC(41) + RR(647)*CC(280) + RR(648)*CC(287) END SUBROUTINE Get_OHreactivity ! End of Get_OHreactivity subroutine diff --git a/KPP/stubs/stub_carbon_Funcs.F90 b/KPP/stubs/stub_carbon_Funcs.F90 index 96a455e4d..0695beea1 100644 --- a/KPP/stubs/stub_carbon_Funcs.F90 +++ b/KPP/stubs/stub_carbon_Funcs.F90 @@ -62,9 +62,9 @@ SUBROUTINE carbon_ComputeRateConstants( & TYPE(MetState), INTENT(IN) :: State_Met END SUBROUTINE carbon_ComputeRateConstants ! - SUBROUTINE carbon_ConvertMolecCm3ToKg( & - I, J, L, id_CH4, id_CO, & - id_COch4, id_COnmvoc, id_CO2, xnumol_CH4, xnumol_CO2, & + SUBROUTINE carbon_ConvertMolecCm3ToKg( & + I, J, L, id_CH4, & + id_CO, id_CO2, xnumol_CH4, xnumol_CO2, & xnumol_CO, State_Chm, State_Met ) ! ! Stub for carbon_ConvertMolecCm3ToKg, @@ -75,8 +75,6 @@ SUBROUTINE carbon_ConvertMolecCm3ToKg( & ! INTEGER, INTENT(IN) :: id_CH4 INTEGER, INTENT(IN) :: id_CO - INTEGER, INTENT(IN) :: id_COch4 - INTEGER, INTENT(IN) :: id_COnmvoc INTEGER, INTENT(IN) :: id_CO2 REAL(fp), INTENT(IN) :: xnumol_CH4 REAL(fp), INTENT(IN) :: xnumol_CO diff --git a/KPP/stubs/stub_fullchem_HetStateFuncs.F90 b/KPP/stubs/stub_fullchem_HetStateFuncs.F90 index 22b0724c4..a236c46ba 100644 --- a/KPP/stubs/stub_fullchem_HetStateFuncs.F90 +++ b/KPP/stubs/stub_fullchem_HetStateFuncs.F90 @@ -10,9 +10,10 @@ MODULE fullchem_HetStateFuncs ! CONTAINS ! - SUBROUTINE fullchem_SetStateHet( I, J, L, & - Input_Opt, State_Chm, State_Met, & - H, RC ) + SUBROUTINE fullChem_SetStateHet( I, J, L, & + id_SALA, id_SALAAL, id_SALC, & + id_SALCAL, Input_Opt, State_Chm, & + State_Met, H, RC ) ! ! Stub routine to avoid compilation errors ! @@ -25,6 +26,10 @@ SUBROUTINE fullchem_SetStateHet( I, J, L, & INTEGER, INTENT(IN) :: I INTEGER, INTENT(IN) :: J INTEGER, INTENT(IN) :: L + INTEGER, INTENT(IN) :: id_SALA + INTEGER, INTENT(IN) :: id_SALAAL + INTEGER, INTENT(IN) :: id_SALC + INTEGER, INTENT(IN) :: id_SALCAL TYPE(OptInput), INTENT(IN) :: Input_Opt TYPE(ChmState), INTENT(IN) :: State_Chm TYPE(MetState), INTENT(IN) :: State_Met diff --git a/KPP/stubs/stub_fullchem_SulfurChemFuncs.F90 b/KPP/stubs/stub_fullchem_SulfurChemFuncs.F90 index cc026f420..41e56d345 100644 --- a/KPP/stubs/stub_fullchem_SulfurChemFuncs.F90 +++ b/KPP/stubs/stub_fullchem_SulfurChemFuncs.F90 @@ -21,7 +21,7 @@ SUBROUTINE fullchem_ConvertEquivToAlk() ! END SUBROUTINE fullchem_ConvertEquivToAlk ! - SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & + SUBROUTINE fullchem_HetDropChem( I, J, L, & Input_Opt, State_Met, State_Chm ) ! ! Stub for GeosCore/fullchem_mod.F90:fullchem_HetDropChem @@ -35,7 +35,6 @@ SUBROUTINE fullchem_HetDropChem( I, J, L, SR, & TYPE(OptInput), INTENT(IN) :: Input_Opt TYPE(MetState), INTENT(IN) :: State_Met TYPE(ChmState), INTENT(INOUT) :: State_Chm - REAL(dp), INTENT(OUT) :: SR END SUBROUTINE fullchem_HetDropChem ! SUBROUTINE fullchem_InitSulfurChem( RC ) diff --git a/LICENSE.txt b/LICENSE.txt index fee62bda0..98326bf05 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,8 +1,9 @@ -License Agreement for GEOS-Chem, HEMCO, and Related Software -(The MIT "Expat" License, http://opensource.org/licenses/MIT) -============================================================================== +############################################################################ +### License Agreement for GEOS-Chem, HEMCO, and Related Software ### +### (The MIT License, http://opensource.org/licenses/MIT) ### +############################################################################ -Copyright (c) 2017-2021 Developers of GEOS-Chem, HEMCO, and Related Software +Copyright (c) 2017-2023 Developers of GEOS-Chem, HEMCO, and Related Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -22,61 +23,34 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- -NOTE: Please see the AUTHORS.txt file (in this folder) for the list of -Developers of GEOS-Chem, GCPy and Related Software. This list will -be updated frequently, such as at each major GEOS-Chem or GCPy release. ------------------------------------------------------------------------------- - - -License agreements for 3rd-party code packages used by GEOS-Chem: -============================================================================== - -FAST-J, FAST-JX, and developments: - - Fast-J code, including developments such as Cloud-J, is distributed under - GNU General Public License version 3.0 (GPLv3). (A copy of the GNU public - license is here: https://www.gnu.org/licenses/gpl-3.0.en.html) - https://www.ess.uci.edu/researchgrp/prather/scholar_software - - -ISORROPIA: - - COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY, - GEORGIA INSTITUTE OF TECHNOLOGY - WRITTEN BY ATHANASIOS NENES - UPDATED BY CHRISTOS FOUNTOUKIS - - -KPP chemical solver (Kinetic Pre-Processor): - - KPP - symbolic chemistry Kinetics PreProcessor, Version 2.1 - (http://www.cs.vt.edu/~asandu/Software/KPP) - KPP is distributed under GPL, the general public licence - (http://www.gnu.org/copyleft/gpl.html) - (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa - (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech - with contributions from: - R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany + NOTE: Please see the AUTHORS.txt file (in this folder) for the list of + Developers of GEOS-Chem, HEMCO and Related Software. This list will + be updated frequently, such as at each major GEOS-Chem release. +############################################################################# +### License agreements for third-party code packages ### +### used by GEOS-Chem, HEMCO, and Related Software ### +############################################################################# Linked list code (used in v11-02 and later versions): +----------------------------------------------------------------------------- Copyright © 2005 Arjen Markus http://flibs.sourceforge.net/linked_list.html - RRTM/RRTMG Copyright and Disclaimer: +----------------------------------------------------------------------------- - Copyright © 2002-2010, Atmospheric and Environmental Research, Inc. - (AER, Inc.). This software may be used, copied, or redistributed as long - as it is not sold and this copyright notice is reproduced on each copy made. + Copyright © 2002-2010, Atmospheric and Environmental Research, Inc. + (AER, Inc.). This software may be used, copied, or redistributed as long + as it is not sold and this copyright notice is reproduced on each copy made. This model is provided as is without any express or implied warranties. http://rtweb.aer.com/rrtm_frame.html Fortran hash table code (used in 12.7.0 and later): https://github.com/pdebuyl/fortran_hash_table +----------------------------------------------------------------------------- Copyright (c) 2018, Pierre de Buyl @@ -108,19 +82,1189 @@ https://github.com/pdebuyl/fortran_hash_table OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Modular Earth Submodel System (MESSy) tools: +----------------------------------------------------------------------------- + + See https://messy-interface.org/licence/conditions/ + + +QFYAML: Quick Fortran YAML +------------------------------------------------------------------------------ + + See GPLv3 License text under The KineticPreProcessor (KPP). + + +FAST-J, FAST-JX, Cloud-J, and developments: +------------------------------------------------------------------------------ + + Fast-J code, including developments such as Cloud-J, is distributed under + GNU General Public License version 3.0 (GPLv3). + https://www.ess.uci.edu/researchgrp/prather/scholar_software + + See GPLv3 License text under the KPP section. + + +The Kinetic PreProcessor (KPP) +------------------------------------------------------------------------------ + + KPP - symbolic chemistry Kinetics PreProcessor + (http://www.cs.vt.edu/~asandu/Software/KPP) + KPP is distributed under GPL, the general public licence + (http://www.gnu.org/copyleft/gpl.html) + (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa + (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech + with contributions from: + R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for + software and other kinds of works. + + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + the GNU General Public License is intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. We, the Free Software Foundation, use the + GNU General Public License for most of our software; it applies also to + any other work released this way by its authors. You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you + these rights or asking you to surrender the rights. Therefore, you have + certain responsibilities if you distribute copies of the software, or if + you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, receive + or can get the source code. And you must show them these terms so they + know their rights. + + Developers that use the GNU GPL protect your rights with two steps: + (1) assert copyright on the software, and (2) offer you this License + giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains + that there is no warranty for this free software. For both users' and + authors' sake, the GPL requires that modified versions be marked as + changed, so that their problems will not be attributed erroneously to + authors of previous versions. + + Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the manufacturer + can do so. This is fundamentally incompatible with the aim of + protecting users' freedom to change the software. The systematic + pattern of such abuse occurs in the area of products for individuals to + use, which is precisely where it is most unacceptable. Therefore, we + have designed this version of the GPL to prohibit the practice for those + products. If such problems arise substantially in other domains, we + stand ready to extend this provision to those domains in future versions + of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. + States should not allow patents to restrict development and use of + software on general-purpose computers, but in those that do, we wish to + avoid the special danger that patents applied to a free program could + make it effectively proprietary. To prevent this, the GPL assures that + patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and + modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and + "recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a "modified version" of the + earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based + on the Program. + + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work + for making modifications to it. "Object code" means any non-source + form of a work. + + A "Standard Interface" means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + "Major Component", in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + + The Corresponding Source for a work in source code form is that + same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + "aggregate" if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, "normally used" refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further + restrictions" within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, "control" includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To "grant" such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is "discriminatory" if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU Affero General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the special requirements of the GNU Affero General Public License, + section 13, concerning interaction through a network will apply to the + combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short + notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, your program's commands + might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a "copyright disclaimer" for the program, if necessary. + For more information on this, and how to apply and follow the GNU GPL, see + . + + The GNU General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications with + the library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. But first, please read + . + + +MAPL (used by GCHP and the interface to the NASA-GEOS model): +----------------------------------------------------------------------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, and + distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by the copyright + owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all other entities + that control, are controlled by, or are under common control with that entity. + For the purposes of this definition, "control" means (i) the power, direct or + indirect, to cause the direction or management of such entity, whether by + contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity exercising + permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, including + but not limited to software source code, documentation source, and configuration + files. + + "Object" form shall mean any form resulting from mechanical transformation or + translation of a Source form, including but not limited to compiled object code, + generated documentation, and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or Object form, made + available under the License, as indicated by a copyright notice that is included + in or attached to the work (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object form, that + is based on (or derived from) the Work and for which the editorial revisions, + annotations, elaborations, or other modifications represent, as a whole, an + original work of authorship. For the purposes of this License, Derivative Works + shall not include works that remain separable from, or merely link (or bind by + name) to the interfaces of, the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including the original version + of the Work and any modifications or additions to that Work or Derivative Works + thereof, that is intentionally submitted to Licensor for inclusion in the Work + by the copyright owner or by an individual or Legal Entity authorized to submit + on behalf of the copyright owner. For the purposes of this definition, + "submitted" means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, and + issue tracking systems that are managed by, or on behalf of, the Licensor for + the purpose of discussing and improving the Work, but excluding communication + that is conspicuously marked or otherwise designated in writing by the copyright + owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf + of whom a Contribution has been received by Licensor and subsequently + incorporated within the Work. + + 2. Grant of Copyright License. + + Subject to the terms and conditions of this License, each Contributor hereby + grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, + irrevocable copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the Work and such + Derivative Works in Source or Object form. + + 3. Grant of Patent License. + + Subject to the terms and conditions of this License, each Contributor hereby + grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, + irrevocable (except as stated in this section) patent license to make, have + made, use, offer to sell, sell, import, and otherwise transfer the Work, where + such license applies only to those patent claims licensable by such Contributor + that are necessarily infringed by their Contribution(s) alone or by combination + of their Contribution(s) with the Work to which such Contribution(s) was + submitted. If You institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work or a + Contribution incorporated within the Work constitutes direct or contributory + patent infringement, then any patent licenses granted to You under this License + for that Work shall terminate as of the date such litigation is filed. + + 4. Redistribution. + + You may reproduce and distribute copies of the Work or Derivative Works + thereof in any medium, with or without modifications, and in Source or Object + form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a + copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that + You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You + distribute, all copyright, patent, trademark, and attribution notices from + the Source form of the Work, excluding those notices that do not pertain + to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, + then any Derivative Works that You distribute must include a readable copy + of the attribution notices contained within such NOTICE file, excluding + those notices that do not pertain to any part of the Derivative Works, in + at least one of the following places: within a NOTICE text file + distributed as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, within a + display generated by the Derivative Works, if and wherever such + third-party notices normally appear. The contents of the NOTICE file are + for informational purposes only and do not modify the License. You may add + Your own attribution notices within Derivative Works that You distribute, + alongside or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed as modifying + the License. + + You may add Your own copyright statement to Your modifications and may + provide additional or different license terms and conditions for use, + reproduction, or distribution of Your modifications, or for any such + Derivative Works as a whole, provided Your use, reproduction, and + distribution of the Work otherwise complies with the conditions stated in + this License. + + 5. Submission of Contributions. + + Unless You explicitly state otherwise, any Contribution intentionally + submitted for inclusion in the Work by You to the Licensor shall be under the + terms and conditions of this License, without any additional terms or + conditions. Notwithstanding the above, nothing herein shall supersede or + modify the terms of any separate license agreement you may have executed with + Licensor regarding such Contributions. + + 6. Trademarks. + + This License does not grant permission to use the trade names, trademarks, + service marks, or product names of the Licensor, except as required for + reasonable and customary use in describing the origin of the Work and + reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. + + Unless required by applicable law or agreed to in writing, Licensor provides + the Work (and each Contributor provides its Contributions) on an "AS IS" + BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions of + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR + PURPOSE. You are solely responsible for determining the appropriateness of + using or redistributing the Work and assume any risks associated with Your + exercise of permissions under this License. + + 8. Limitation of Liability. + + In no event and under no legal theory, whether in tort (including + negligence), contract, or otherwise, unless required by applicable law (such + as deliberate and grossly negligent acts) or agreed to in writing, shall any + Contributor be liable to You for damages, including any direct, indirect, + special, incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the Work + (including but not limited to damages for loss of goodwill, work stoppage, + computer failure or malfunction, or any and all other commercial damages or + losses), even if such Contributor has been advised of the possibility of such + damages. + + 9. Accepting Warranty or Additional Liability. + + While redistributing the Work or Derivative Works thereof, You may choose to + offer, and charge a fee for, acceptance of support, warranty, indemnity, or + other liability obligations and/or rights consistent with this License. + However, in accepting such obligations, You may act only on Your own behalf + and on Your sole responsibility, not on behalf of any other Contributor, and + only if You agree to indemnify, defend, and hold each Contributor harmless + for any liability incurred by, or claims asserted against, such Contributor + by reason of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work + + To apply the Apache License to your work, attach the following boilerplate + notice with the fields enclosed by brackets "[]" replaced with your own + identifying information. (Don't include the brackets!) The text should be + enclosed in the appropriate comment syntax for the file format. We also + recommend that a file or class name and description of purpose be included on + the same "printed page" as the copyright notice for easier identification within + third-party archives. + + NASA Docket No. GSC-15,354-1, and identified as "GEOS-5 GCM Modeling Software” + + “Copyright © 2008 United States Government as represented by the Administrator + of the National Aeronautics and Space Administration. All Rights Reserved.” + + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed + under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. See the License for the + specific language governing permissions and limitations under + the License. + + + NASA OPEN SOURCE SOFTWARE AGREEMENT + + NASA OPEN SOURCE AGREEMENT VERSION 1.3 + + THIS OPEN SOURCE AGREEMENT ("AGREEMENT") DEFINES THE RIGHTS OF USE, + REPRODUCTION, DISTRIBUTION, MODIFICATION AND REDISTRIBUTION OF CERTAIN + COMPUTER SOFTWARE ORIGINALLY RELEASED BY THE UNITED STATES GOVERNMENT AS + REPRESENTED BY THE GOVERNMENT AGENCY LISTED BELOW ("GOVERNMENT AGENCY"). + THE UNITED STATES GOVERNMENT, AS REPRESENTED BY GOVERNMENT AGENCY, IS AN + INTENDED THIRD-PARTY BENEFICIARY OF ALL SUBSEQUENT DISTRIBUTIONS OR + REDISTRIBUTIONS OF THE SUBJECT SOFTWARE. ANYONE WHO USES, REPRODUCES, + DISTRIBUTES, MODIFIES OR REDISTRIBUTES THE SUBJECT SOFTWARE, AS DEFINED + HEREIN, OR ANY PART THEREOF, IS, BY THAT ACTION, ACCEPTING IN FULL THE + RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN THIS AGREEMENT. + + Government Agency: National Aeronautics and Space Administration + Government Agency Original Software Designation: GSC-15354-1 + Government Agency Original Software Title: GEOS-5 GCM Modeling Software + User Registration Requested. Please Visit http://opensource.gsfc.nasa.gov + Government Agency Point of Contact for Original Software: + Dale Hithon, SRA Assistant, (301) 286-2691 + + 1. DEFINITIONS + + A. "Contributor" means Government Agency, as the developer of the + Original Software, and any entity that makes a Modification. + + B. "Covered Patents" mean patent claims licensable by a Contributor + that are necessarily infringed by the use or sale of its Modification + alone or when combined with the Subject Software. + + C. "Display" means the showing of a copy of the Subject Software, + either directly or by means of an image, or any other device. + + D. "Distribution" means conveyance or transfer of the Subject Software, + regardless of means, to another. + + E. "Larger Work" means computer software that combines Subject + Software, or portions thereof, with software separate from the Subject + Software that is not governed by the terms of this Agreement. + + F. "Modification" means any alteration of, including addition to + or deletion from, the substance or structure of either the Original + Software or Subject Software, and includes derivative works, as that + term is defined in the Copyright Statute, 17 USC 101. However, the act + of including Subject Software as part of a Larger Work does not in and + of itself constitute a Modification. + + G. "Original Software" means the computer software first released under + this Agreement by Government Agency with Government Agency designation + GSC-15354-1 and entitled GEOS-5 GCM Modeling Software, including source + code, object code and accompanying documentation, if any. + + H. "Recipient" means anyone who acquires the Subject Software under + this Agreement, including all Contributors. + + I. "Redistribution" means Distribution of the Subject Software after a + Modification has been made. + + J. "Reproduction" means the making of a counterpart, image or copy of + the Subject Software. + + K. "Sale" means the exchange of the Subject Software for money or + equivalent value. + + L. "Subject Software" means the Original Software, Modifications, or + any respective parts thereof. + + M. "Use" means the application or employment of the Subject Software + for any purpose. + + + + 2. GRANT OF RIGHTS + + A. Under Non-Patent Rights: Subject to the terms and conditions of this + Agreement, each Contributor, with respect to its own contribution to + the Subject Software, hereby grants to each Recipient a non-exclusive, + world-wide, royalty-free license to engage in the following activities + pertaining to the Subject Software: + + 1. Use + 2. Distribution + 3. Reproduction + 4. Modification + 5. Redistribution + 6. Display + + B. Under Patent Rights: Subject to the terms and conditions of this + Agreement, each Contributor, with respect to its own contribution to + the Subject Software, hereby grants to each Recipient under Covered + Patents a non-exclusive, world-wide, royalty-free license to engage in + the following activities pertaining to the Subject Software: + + 1. Use + 2. Distribution + 3. Reproduction + 4. Sale + 5. Offer for Sale + + C. The rights granted under Paragraph B. also apply to the combination + of a Contributor's Modification and the Subject Software if, at the + time the Modification is added by the Contributor, the addition of + such Modification causes the combination to be covered by the Covered + Patents. It does not apply to any other combinations that include a + Modification. + + D. The rights granted in Paragraphs A. and B. allow the Recipient to + sublicense those same rights. Such sublicense must be under the same + terms and conditions of this Agreement. + + + 3. OBLIGATIONS OF RECIPIENT + + A. Distribution or Redistribution of the Subject Software must be made + under this Agreement except for additions covered under paragraph 3H. + + 1. Whenever a Recipient distributes or redistributes the Subject + Software, a copy of this Agreement must be included with each copy of + the Subject Software; and + + 2. If Recipient distributes or redistributes the Subject Software in + any form other than source code, Recipient must also make the source + code freely available, and must provide with each copy of the Subject + Software information on how to obtain the source code in a reasonable + manner on or through a medium customarily used for software exchange. + + B. Each Recipient must ensure that the following copyright notice + appears prominently in the Subject Software: + + Copyright © 2003-2018 United States Government as represented by the + Administrator of the National Aeronautics and Space Administration. All + Rights Reserved. + + C. Each Contributor must characterize its alteration of the Subject + Software as a Modification and must identify itself as the originator + of its Modification in a manner that reasonably allows subsequent + Recipients to identify the originator of the Modification. In + fulfillment of these requirements, Contributor must include a file + (e.g., a change log file) that describes the alterations made and + the date of the alterations, identifies Contributor as originator of + the alterations, and consents to characterization of the alterations + as a Modification, for example, by including a statement that the + Modification is derived, directly or indirectly, from Original Software + provided by Government Agency. Once consent is granted, it may not + thereafter be revoked. + + D. A Contributor may add its own copyright notice to the Subject + Software. Once a copyright notice has been added to the Subject + Software, a Recipient may not remove it without the express permission + of the Contributor who added the notice. + + E. A Recipient may not make any representation in the Subject Software + or in any promotional, advertising or other material that may be + construed as an endorsement by Government Agency or by any prior + Recipient of any product or service provided by Recipient, or that may + seek to obtain commercial advantage by the fact of Government Agency's + or a prior Recipient's participation in this Agreement. + + F. In an effort to track usage and maintain accurate records of + the Subject Software, each Recipient, upon receipt of the Subject + Software, is requested to register with Government Agency by visiting + the following website: http://opensource.gsfc.nasa.gov. Recipient's + name and personal information shall be used for statistical purposes + only. Once a Recipient makes a Modification available, it is requested + that the Recipient inform Government Agency at the web site provided + above how to access the Modification. + + G. Each Contributor represents that its Modification is believed to + be Contributor's original creation and does not violate any existing + agreements, regulations, statutes or rules, and further that Contributor + has sufficient rights to grant the rights conveyed by this Agreement. + + H. A Recipient may choose to offer, and to charge a fee for, warranty, + support, indemnity and/or liability obligations to one or more other + Recipients of the Subject Software. A Recipient may do so, however, + only on its own behalf and not on behalf of Government Agency or any + other Recipient. Such a Recipient must make it absolutely clear that + any such warranty, support, indemnity and/or liability obligation is + offered by that Recipient alone. Further, such Recipient agrees to + indemnify Government Agency and every other Recipient for any liability + incurred by them as a result of warranty, support, indemnity and/or + liability offered by such Recipient. + + I. A Recipient may create a Larger Work by combining Subject Software + with separate software not governed by the terms of this agreement + and distribute the Larger Work as a single product. In such case, the + Recipient must make sure Subject Software, or portions thereof, included + in the Larger Work is subject to this Agreement. + + J. Notwithstanding any provisions contained herein, Recipient is hereby + put on notice that export of any goods or technical data from the United + States may require some form of export license from the U.S. Government. + Failure to obtain necessary export licenses may result in criminal + liability under U.S. laws. Government Agency neither represents that a + license shall not be required nor that, if required, it shall be issued. + Nothing granted herein provides any such export license. + + 4. DISCLAIMER OF WARRANTIES AND LIABILITIES; WAIVER AND INDEMNIFICATION + + A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT + ANY WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, + INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT + SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR FREEDOM FROM + INFRINGEMENT, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL BE ERROR FREE, + OR ANY WARRANTY THAT DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE + SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN ANY MANNER, CONSTITUTE AN + ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR RECIPIENT OF ANY RESULTS, + RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR ANY OTHER APPLICATIONS + RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, GOVERNMENT AGENCY + DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING THIRD-PARTY SOFTWARE, + IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES IT "AS IS." + + B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL + CLAIMS AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND + SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT'S USE + OF THE SUBJECT SOFTWARE RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, + EXPENSES OR LOSSES ARISING FROM SUCH USE, INCLUDING ANY DAMAGES FROM + PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S USE OF THE SUBJECT + SOFTWARE, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE UNITED STATES + GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY PRIOR + RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE REMEDY FOR + ANY SUCH MATTER SHALL BE THE IMMEDIATE, UNILATERAL TERMINATION OF THIS + AGREEMENT. + + 5. GENERAL TERMS + + A. Termination: This Agreement and the rights granted hereunder will + terminate automatically if a Recipient fails to comply with these terms + and conditions, and fails to cure such noncompliance within thirty + (30) days of becoming aware of such noncompliance. Upon termination, + a Recipient agrees to immediately cease use and distribution of the + Subject Software. All sublicenses to the Subject Software properly + granted by the breaching Recipient shall survive any such termination of + this Agreement. + + B. Severability: If any provision of this Agreement is invalid or + unenforceable under applicable law, it shall not affect the validity or + enforceability of the remainder of the terms of this Agreement. + + C. Applicable Law: This Agreement shall be subject to United States + federal law only for all purposes, including, but not limited to, + determining the validity of this Agreement, the meaning of its + provisions and the rights, obligations and remedies of the parties. + + D. Entire Understanding: This Agreement constitutes the entire + understanding and agreement of the parties relating to release of the + Subject Software and may not be superseded, modified or amended except + by further written agreement duly executed by the parties. + + E. Binding Authority: By accepting and using the Subject Software under + this Agreement, a Recipient affirms its authority to bind the Recipient + to all terms and conditions of this Agreement and that that Recipient + hereby agrees to all terms and conditions herein. + + F. Point of Contact: Any Recipient contact with Government Agency is to + be directed to the designated representative as follows: Dale Hithon, + SRA Assistant, (301) 286-2691. + + SMVGEAR chemical solver (used in GEOS-Chem v10-01 and prior versions): - +----------------------------------------------------------------------------- + ********************************************************************* ************ WRITTEN BY MARK JACOBSON (1993) ************ *** (C) COPYRIGHT, 1993 BY MARK Z. JACOBSON *** *** U.S. COPYRIGHT OFFICE REGISTRATION NO. TXu 670-279 *** *** (650) 723-6836 *** ********************************************************************* - - -Licenses for packages used by HEMCO: -============================================================================== - -Modular Earth Submodel System (MESSy) tools: - - https://www.messy-interface.org/current/messy_licence.html diff --git a/NcdfUtil/README.md b/NcdfUtil/README.md new file mode 100644 index 000000000..da0b0c7aa --- /dev/null +++ b/NcdfUtil/README.md @@ -0,0 +1,29 @@ +# NcdfUtil: NetCDF Utility routines for GEOS-Chem + +This folder contains netCDF utiliity routines for GEOS-Chem. + +## Contents + +- `CMakeLists.txt`: CMake build file +- `charpak_mod.F90`: Copy of `Headers/charpak_mod.F90`, used locally. +- `julday_mod.F90`: Copy of `Headers/julday_mod.F90`, used locally. +- `m_do_err_out.F90`: Error handling module +- `m_netcdf_io_checks.F90`: Error checking routines +- `m_netcdf_io_close.F90`: Routines to close netCDF files +- `m_netcdf_io_create.F90`: Routines to create netCDF files +- `m_netcdf_io_define.F90`: Routines to define netCDF variables +- `m_netcdf_io_get_dimlen.F90`: Reoutines +- `m_netcdf_io_handle_err.F90`: Error checking routines +- `m_netcdf_io_open.F90`: Routines for opening netCDF files +- `m_netcdf_io_readattr.F90`: Routines for reading netCDF attributes +- `m_netcdf_io_read.F90`: Routines for reading data to a netCDF file +- `m_netcdf_io_write.F90`: Routines for writing data to a netCDF file +- `ncdf_mod.F90`: Convenience routines for netCDF handling +- `TestNcdfUtil.F90`: Test program + +## Scripts + +We have now moved netCDF utility scripts (such as `isCoards` and `nc_chunk.pl`) to a separate Github repository. You may download them from https://github.com/geoschem/netcdf-scripts. + + + diff --git a/NcdfUtil/m_netcdf_io_checks.F90 b/NcdfUtil/m_netcdf_io_checks.F90 index a580f555c..aa68dc68c 100644 --- a/NcdfUtil/m_netcdf_io_checks.F90 +++ b/NcdfUtil/m_netcdf_io_checks.F90 @@ -45,9 +45,7 @@ module m_netcdf_io_checks ! function Ncdoes_Udim_Exist (ncid) ! - implicit none -! - include "netcdf.inc" + use netCDF ! ! !INPUT PARAMETERS: !! ncid : netCDF file id to check @@ -70,18 +68,11 @@ function Ncdoes_Udim_Exist (ncid) !BOC ! ! !LOCAL VARIABLES: - integer :: ierr - integer :: udimid -! - ierr = Nf_Inq_Unlimdim (ncid, udimid) + integer :: ierr, udim_id - if (ierr == NF_NOERR) then - Ncdoes_Udim_Exist = .true. - else - Ncdoes_Udim_Exist = .false. - end if - - return + Ncdoes_Udim_Exist = .false. + ierr = NF90_Inquire(ncid, unlimitedDimId=udim_id) + IF ( ierr /= NF90_NOERR ) Ncdoes_Udim_Exist = .true. end function Ncdoes_Udim_Exist !EOC @@ -96,9 +87,7 @@ end function Ncdoes_Udim_Exist ! function Ncdoes_Var_Exist (ncid, varname) ! - implicit none -! - include "netcdf.inc" + use netCDF ! ! !INPUT PARAMETERS: !! ncid : netCDF file id to check @@ -126,15 +115,9 @@ function Ncdoes_Var_Exist (ncid, varname) integer :: ierr integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) - - if (ierr == NF_NOERR) then - Ncdoes_Var_Exist = .true. - else - Ncdoes_Var_Exist = .false. - end if - - return + ierr = NF90_Inq_Varid(ncid, varname, varid) + Ncdoes_Var_Exist = .false. + if (ierr == NF90_NOERR) Ncdoes_Var_Exist = .true. end function Ncdoes_Var_Exist !EOC @@ -147,11 +130,9 @@ end function Ncdoes_Var_Exist ! ! !INTERFACE: ! - function Ncdoes_Attr_Exist (ncid, varname, attname, attType) -! - implicit none + function Ncdoes_Attr_Exist(ncid, varname, attname, attType) ! - include "netcdf.inc" + use netCDF ! ! !INPUT PARAMETERS: !! ncid : netCDF file id to check @@ -184,21 +165,20 @@ function Ncdoes_Attr_Exist (ncid, varname, attname, attType) !BOC ! ! !LOCAL VARIABLES: - integer :: ierr - integer :: varid - INTEGER :: attLen + INTEGER :: ierr, varId, attLen, attNum ! Init Ncdoes_Attr_Exist = .false. attType = -1 ! First check the variable - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid (ncid, varname, varid) ! Check the attribute if variable was found - IF ( ierr == NF_NOERR ) THEN - ierr = Nf_Inq_Att( ncId, varId, attName, attType, attLen ) - IF ( ierr == NF_NOERR ) THEN + IF ( ierr == NF90_NOERR ) THEN + ierr = NF90_Inquire_Attribute( ncId, varId, attName, & + attType, attLen, attNum ) + IF ( ierr == NF90_NOERR ) THEN NcDoes_Attr_Exist = .TRUE. ENDIF ENDIF @@ -218,9 +198,7 @@ end function Ncdoes_Attr_Exist ! function Ncdoes_Dim_Exist (ncid, dimname ) ! - implicit none -! - include "netcdf.inc" + use netCDF ! ! !INPUT PARAMETERS: !! ncid : netCDF file id to check @@ -249,14 +227,11 @@ function Ncdoes_Dim_Exist (ncid, dimname ) integer :: dimid ! First check the variable - ierr = Nf_Inq_Dimid (ncid, dimname, dimid) + ierr = NF90_Inq_Dimid(ncid, dimname, dimid) ! Check the attribute if variable was found - if (ierr == NF_NOERR) then - Ncdoes_Dim_Exist = .true. - else - Ncdoes_Dim_Exist = .false. - end if + Ncdoes_Dim_Exist = .false. + if (ierr == NF90_NOERR) Ncdoes_Dim_Exist = .true. return diff --git a/NcdfUtil/m_netcdf_io_create.F90 b/NcdfUtil/m_netcdf_io_create.F90 index 245e4e5bd..8b6189cfb 100644 --- a/NcdfUtil/m_netcdf_io_create.F90 +++ b/NcdfUtil/m_netcdf_io_create.F90 @@ -45,18 +45,15 @@ subroutine Nccr_Wr (ncid, filname, WRITE_NC4) ! ! !USES: ! + use netCDF use m_do_err_out -! - implicit none -! - include "netcdf.inc" ! ! !INPUT PARAMETERS: ! ncid : opened netCDF file id ! filname : name of netCDF file to open for writing - integer , intent(in) :: ncid - character (len=*), intent(in) :: filname - LOGICAL, OPTIONAL, INTENT(IN) :: WRITE_NC4 + integer , intent(INOUT) :: ncid + character (len=*), intent(IN) :: filname + LOGICAL, OPTIONAL, INTENT(IN) :: WRITE_NC4 ! ! !DESCRIPTION: Creates a netCDF file for writing and does some error checking. !\\ @@ -65,10 +62,10 @@ subroutine Nccr_Wr (ncid, filname, WRITE_NC4) ! John Tannahill (LLNL) and Jules Kouatchou ! ! !REMARKS: -! If the netCDF4 library is used, then the NF_CLOBBER flag will write +! If the netCDF4 library is used, then the NF90_CLOBBER flag will write ! a classic (i.e. netCDF3) file. Use OR(NF_NETCDF4,NF_CLASSIC_MODEL) to -! create netCDF-4 file that supports compression and uses "classic" netcdf data model -! (no groups, no user-defined types) +! create netCDF-4 file that supports compression and uses "classic" +! netcdf data model (no groups, no user-defined types) ! ! !REVISION HISTORY: ! See https://github.com/geoschem/ncdfutil for complete history @@ -91,18 +88,18 @@ subroutine Nccr_Wr (ncid, filname, WRITE_NC4) ENDIF IF ( TMP_NC4 ) THEN -#if defined( NC_HAS_COMPRESSION ) - mode = IOR( NF_NETCDF4, NF_CLASSIC_MODEL ) ! netCDF4 file - ierr = Nf_Create (filname, mode, ncid) ! w/ compression +#ifdef NC_HAS_COMPRESSION ) + mode = IOR( NF90_NETCDF4, NF90_CLASSIC_MODEL ) ! netCDF4 file + ierr = NF90_Create(filname, mode, ncid) ! w/ compression #else - ierr = Nf_Create (filname, NF_64BIT_OFFSET, ncid) ! netCDF4 file - ! w/o compression + ierr = NF90_Create(filname, NF90_64BIT_OFFSET, ncid) ! netCDF4 file + ! w/o compression #endif ELSE - ierr = Nf_Create (filname, NF_CLOBBER, ncid) ! netCDF3 file + ierr = NF90_Create(filname, NF90_CLOBBER, ncid) ! netCDF3 file ENDIF - if (ierr /= NF_NOERR) then + if (ierr /= NF90_NOERR) then err_msg = 'In Nccr_Wr, cannot create: ' // Trim (filname) call Do_Err_Out (err_msg, .true., 0, 0, 0, 0 , 0.0d0, 0.0d0) end if @@ -124,11 +121,8 @@ subroutine Ncdo_Sync (ncid) ! ! !USES: ! + use netCDF use m_do_err_out -! - implicit none -! - include "netcdf.inc" ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -150,15 +144,13 @@ subroutine Ncdo_Sync (ncid) character (len=128) :: err_msg integer :: ierr ! - ierr = Nf_Sync (ncid) + ierr = NF90_Sync (ncid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncdo_Sync: ' // Nf_Strerror (ierr) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncdo_Sync: ' // NF90_Strerror (ierr) call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) end if - return - end subroutine Ncdo_Sync !EOC end module m_netcdf_io_create diff --git a/NcdfUtil/m_netcdf_io_define.F90 b/NcdfUtil/m_netcdf_io_define.F90 index 0ad4ddb54..bf25a997e 100644 --- a/NcdfUtil/m_netcdf_io_define.F90 +++ b/NcdfUtil/m_netcdf_io_define.F90 @@ -12,6 +12,7 @@ MODULE m_netcdf_io_define ! !USES: ! IMPLICIT NONE + PRIVATE ! ! !PUBLIC MEMBER FUNCTIONS: ! @@ -68,7 +69,7 @@ MODULE m_netcdf_io_define ! Jules Kouatchou ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -87,11 +88,8 @@ SUBROUTINE NcDef_dimension(ncid,name,len,id,unlimited) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -114,7 +112,7 @@ SUBROUTINE NcDef_dimension(ncid,name,len,id,unlimited) ! Jules Kouatchou and Maharaj Bhat ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -128,14 +126,14 @@ SUBROUTINE NcDef_dimension(ncid,name,len,id,unlimited) len0 = len if (present(unlimited)) then if (unlimited) then - len0 = NF_UNLIMITED + len0 = NF90_UNLIMITED endif endif - ierr = Nf_Def_Dim (ncid, name, len0, id) + ierr = NF90_Def_Dim(ncid, name, len0, id) - IF (ierr.ne.NF_NOERR) then - err_msg = 'Nf_Def_Dim: can not define dimension : '// Trim (name) + IF (ierr.ne.NF90_NOERR) then + err_msg = 'NF90_Def_Dim: can not define dimension : '// Trim (name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) END IF @@ -150,33 +148,31 @@ END SUBROUTINE NcDef_dimension ! ! !INTERFACE: ! - SUBROUTINE NcDef_variable(ncid,name,type,ndims,dims,var_id,compress) + SUBROUTINE NcDef_variable(ncid, name, xtype, ndims, dims, var_id, compress) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: ! !! ncid : netCDF file id !! name : name of the variable !! type : type of the variable -!! (NF_FLOAT, NF_CHAR, NF_INT, NF_DOUBLE, NF_BYTE, NF_SHORT) +!! (NF90_FLOAT, NF90_CHAR, NF90_INT, +!! NF90_DOUBLE, NF90_BYTE, NF90_SHORT) !! ndims : number of dimensions of the variable !! dims : netCDF dimension id of the variable CHARACTER (LEN=*), INTENT(IN) :: name INTEGER, INTENT(IN) :: ncid, ndims INTEGER, INTENT(IN) :: dims(ndims) - INTEGER, INTENT(IN) :: type + INTEGER, INTENT(IN) :: xtype LOGICAL, OPTIONAL, INTENT(IN) :: compress ! ! !OUTPUT PARAMETERS: ! -!! varid : netCDF variable id returned by NF_DEF_VAR +!! varid : netCDF variable id returned by NF90_DEF_VAR INTEGER, INTENT(OUT) :: var_id ! ! !DESCRIPTION: Defines a netCDF variable. @@ -186,66 +182,74 @@ SUBROUTINE NcDef_variable(ncid,name,type,ndims,dims,var_id,compress) ! Jules Kouatchou and Maharaj Bhat ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - logical :: doStop - ! Compression settings - ! choose deflate_level=1 for fast, minimal compression. - ! Informal testing suggests minimal benefit from higher compression level - integer, parameter :: shuffle=1, deflate=1, deflate_level=1 -! - ierr = Nf_Def_Var (ncid, name, type, ndims, dims, var_id) + character(len=512) :: err_msg + integer :: ierr + logical :: doStop - IF (ierr.ne.NF_NOERR) THEN - err_msg = 'Nf_Def_Var: can not define variable : '// Trim (name) - CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) - END IF - -#if defined( NC_HAS_COMPRESSION ) +#ifdef NC_HAS_COMPRESSION !===================================================================== - ! If the optional "compress" variable is used and set to TRUE, - ! then enable variable compression (cdh, 0/17/17) + ! Create a compressed (deflated) netCDF variable ! ! NOTE: We need to block this out with an #ifdef because some - ! netCDF installations might lack the nf_def_var_deflate function + ! netCDF installations might lack the deflation capability, ! which would cause a compile-time error. (bmy, 3/1/17) - ! - ! ALSO NOTE: Newer versions of netCDF balk when you try to compress - ! a scalar variable. This generates an annoying warning message. - ! To avoid this, only compress array variables. (bmy, 11/30/20) - !===================================================================== - if (present(Compress) .and. ndims > 0) then + !======================================================================== + IF ( PRESENT( Compress ) ) then - if (Compress) then + !------------------------------------------------------------------ + ! If COMPRESS is passed as an optional argument, and is TRUE, + ! then define the variable with deflate_level=1. Higher values + ! of deflate_level yield minimal additiional benefit. + ! + ! ALSO NOTE: Newer versions of netCDF balk when you try to compress + ! a scalar variable. This generates an annoying warning message. + ! To avoid this, only compress array variables. (bmy, 11/30/20) + !------------------------------------------------------------------- + IF ( Compress .and. ndims > 0 ) THEN - ! Set compression - ierr = nf_def_var_deflate( ncid, var_id, shuffle, & - deflate, deflate_level ) + ! Create deflated variable + ierr = NF90_Def_Var( ncid, name, xtype, dims, var_id, & + shuffle=.TRUE., deflate_level=1 ) ! Check for errors. ! No message will be generated if the error is simply that the - ! file is not netCDF-4 - ! (i.e. netCDF-3 don't support compression) - IF ( (ierr.ne.NF_NOERR) .and. (ierr.ne.NF_ENOTNC4)) THEN + ! file is not netCDF-4 (as netCDF-3 doesn't support compression) + IF ( (ierr.ne.NF90_NOERR) .and. (ierr.ne.NF90_ENOTNC4)) THEN ! Errors enabling compression will not halt the program doStop = .False. ! Print error - err_msg = 'Nf_Def_Var_Deflate: can not compress variable : '// Trim (name) + err_msg = 'NF90_Def_Var: can not create compressed variable : '//& + Trim(name) CALL Do_Err_Out (err_msg, doStop, 0, 0, 0, 0, 0.0d0, 0.0d0) END IF - endif - endif + ! Return successfully + RETURN + ENDIF + ENDIF #endif + !======================================================================== + ! Create an uncompressed netCDF variable if: + ! (1) COMPRESS is not passed as an optional argument + ! (2) COMPRESS is passed as an optional argument but is FALSE + ! (3) The variable is a scalar (ndims == 0) + !======================================================================== + ierr = NF90_Def_Var( ncid, name, xtype, dims, var_id ) + IF ( ierr /= NF90_NOERR ) THEN + err_msg = 'NF90_Def_Var_Deflate: can not create variable : '// & + Trim (name) + CALL Do_Err_Out (err_msg, doStop, 0, 0, 0, 0, 0.0d0, 0.0d0) + ENDIF + END SUBROUTINE NcDef_variable !EOC !------------------------------------------------------------------------------ @@ -257,14 +261,12 @@ END SUBROUTINE NcDef_variable ! ! !INTERFACE: ! - SUBROUTINE NcDef_var_attributes_c(ncid,var_id,att_name,att_val) + SUBROUTINE NcDef_var_attributes_c(ncid, var_id, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT none - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -272,7 +274,7 @@ SUBROUTINE NcDef_var_attributes_c(ncid,var_id,att_name,att_val) !! att_name: attribute name !! att_val : attribute value CHARACTER (LEN=*), INTENT(IN) :: att_name, att_val - INTEGER, INTENT(IN) :: ncid, var_id + INTEGER, INTENT(IN) :: ncid, var_id ! ! !DESCRIPTION: Defines a netCDF variable attribute of type: CHARACTER. !\\ @@ -281,19 +283,18 @@ SUBROUTINE NcDef_var_attributes_c(ncid,var_id,att_name,att_val) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: CHARACTER (LEN=512) :: err_msg - INTEGER :: mylen, ierr + INTEGER :: ierr ! - mylen = LEN(att_val) - ierr = Nf_Put_Att_Text (ncid, var_id, att_name, mylen, att_val) + ierr = NF90_Put_Att(ncid, var_id, att_name, att_val) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr /= NF90_NOERR) THEN err_msg = 'NcDef_var_attributes_c: can not define attribute : ' // & TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -310,14 +311,12 @@ END SUBROUTINE NcDef_var_attributes_c ! ! !INTERFACE: ! - SUBROUTINE NcDef_var_attributes_i(ncid,var_id,att_name,att_val) + SUBROUTINE NcDef_var_attributes_i(ncid, var_id, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -335,7 +334,7 @@ SUBROUTINE NcDef_var_attributes_i(ncid,var_id,att_name,att_val) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -344,11 +343,9 @@ SUBROUTINE NcDef_var_attributes_i(ncid,var_id,att_name,att_val) character (len=512) :: err_msg integer :: mylen, ierr ! - mylen = 1 - ierr = Nf_Put_Att_Int( ncid, var_id, att_name, & - NF_INT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, var_id, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_var_attributes_i: can not define attribute : ' // & TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -365,14 +362,12 @@ END SUBROUTINE NcDef_var_attributes_i ! ! !INTERFACE: ! - SUBROUTINE NcDef_var_attributes_r4(ncid,var_id,att_name,att_val) + SUBROUTINE NcDef_var_attributes_r4(ncid, var_id, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out - - IMPLICIT NONE - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -390,20 +385,18 @@ SUBROUTINE NcDef_var_attributes_r4(ncid,var_id,att_name,att_val) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: CHARACTER (LEN=512) :: err_msg - INTEGER :: mylen, ierr + INTEGER :: ierr ! - mylen = 1 - ierr = Nf_Put_Att_Real( ncid, var_id, att_name, & - NF_FLOAT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, var_id, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_var_attributes_r4: can not define attribute : ' // & TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -420,14 +413,12 @@ END SUBROUTINE NcDef_var_attributes_r4 ! ! !INTERFACE: ! - SUBROUTINE NcDef_var_attributes_r8(ncid,var_id,att_name,att_val) + SUBROUTINE NcDef_var_attributes_r8(ncid, var_id, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT none - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -445,20 +436,18 @@ SUBROUTINE NcDef_var_attributes_r8(ncid,var_id,att_name,att_val) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: CHARACTER (LEN=512) :: err_msg - INTEGER :: mylen, ierr + INTEGER :: ierr ! - mylen = 1 - ierr = Nf_Put_Att_Double( ncid, var_id, att_name, & - NF_DOUBLE, mylen, att_val ) + ierr = NF90_Put_Att( ncid, var_id, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_var_attributes_r8: can not define attribute : ' // & TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -475,14 +464,12 @@ END SUBROUTINE NcDef_var_attributes_r8 ! ! !INTERFACE: ! - SUBROUTINE NcDef_var_attributes_i_arr(ncid,var_id,att_name,att_val) + SUBROUTINE NcDef_var_attributes_i_arr(ncid, var_id, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT none - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -500,20 +487,19 @@ SUBROUTINE NcDef_var_attributes_i_arr(ncid,var_id,att_name,att_val) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history + +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: CHARACTER (LEN=512) :: err_msg - INTEGER :: mylen, ierr + INTEGER :: ierr ! - mylen = SIZE( att_val ) - ierr = Nf_Put_Att_Int( ncid, var_id, att_name, & - NF_INT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, var_id, att_name, att_val ) - iF (ierr.ne.NF_NOERR) THEN + iF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_var_attributes_i_arr: can not define attribute : ' & // TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -530,14 +516,12 @@ END SUBROUTINE NcDef_var_attributes_i_arr ! ! !INTERFACE: ! - SUBROUTINE NcDef_var_attributes_r4_arr(ncid,var_id,att_name,att_val) + SUBROUTINE NcDef_var_attributes_r4_arr(ncid, var_id, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT none - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -555,20 +539,18 @@ SUBROUTINE NcDef_var_attributes_r4_arr(ncid,var_id,att_name,att_val) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: CHARACTER (LEN=512) :: err_msg - INTEGER :: mylen, ierr + INTEGER :: ierr ! - mylen = SIZE( att_val ) - ierr = Nf_Put_Att_Real( ncid, var_id, att_name, & - NF_FLOAT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, var_id, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_var_attributes_r4_arr: can not define attribute : ' & // TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -585,14 +567,12 @@ END SUBROUTINE NcDef_var_attributes_r4_arr ! ! !INTERFACE: ! - SUBROUTINE NcDef_var_attributes_r8_arr(ncid,var_id,att_name,att_val) + SUBROUTINE NcDef_var_attributes_r8_arr(ncid, var_id, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -610,20 +590,18 @@ SUBROUTINE NcDef_var_attributes_r8_arr(ncid,var_id,att_name,att_val) ! Jules Kouatchou and Maharaj Bhat ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC ! ! !LOCAL VARIABLES: character (len=512) :: err_msg - integer :: mylen, ierr + integer :: ierr ! - mylen = size( att_val ) - ierr = Nf_Put_Att_Double( ncid, var_id, att_name, & - NF_DOUBLE, mylen, att_val ) + ierr = NF90_Put_Att( ncid, var_id, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_var_attributes_r4_arr: can not define attribute : '& // Trim (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -640,15 +618,12 @@ END SUBROUTINE NcDef_var_attributes_r8_arr ! ! !INTERFACE: ! - SUBROUTINE NcDef_glob_attributes_c(ncid,att_name,att_val) + SUBROUTINE NcDef_glob_attributes_c(ncid, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -666,19 +641,18 @@ SUBROUTINE NcDef_glob_attributes_c(ncid,att_name,att_val) ! Bob Yantosca( based on code by Jules Kouatchou) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: CHARACTER (LEN=512) :: err_msg - INTEGER :: mylen, ierr + INTEGER :: ierr ! - mylen = len(att_val) - ierr = Nf_Put_Att_Text (ncid, NF_GLOBAL, att_name, mylen, att_val) + ierr = NF90_Put_Att(ncid, NF90_GLOBAL, att_name, att_val) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_glob_attributes_c: can not define attribute : ' // & TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -695,15 +669,12 @@ END SUBROUTINE NcDef_glob_attributes_c ! ! !INTERFACE: ! - SUBROUTINE NcDef_glob_attributes_i(ncid,att_name,att_val) + SUBROUTINE NcDef_glob_attributes_i(ncid, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT none -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -721,20 +692,18 @@ SUBROUTINE NcDef_glob_attributes_i(ncid,att_name,att_val) ! Bob Yantosca( based on code by Jules Kouatchou) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: CHARACTER (LEN=512) :: err_msg - INTEGER :: mylen, ierr + INTEGER :: ierr ! - mylen = 1 - ierr = Nf_Put_Att_Int( ncid, NF_GLOBAL, att_name, & - NF_INT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_glob_attributes_i: can not define attribute : ' // & TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -751,15 +720,12 @@ END SUBROUTINE NcDef_glob_attributes_i ! ! !INTERFACE: ! - SUBROUTINE NcDef_glob_attributes_r4(ncid,att_name,att_val) + SUBROUTINE NcDef_glob_attributes_r4(ncid, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -777,20 +743,18 @@ SUBROUTINE NcDef_glob_attributes_r4(ncid,att_name,att_val) ! Bob Yantosca( based on code by Jules Kouatchou) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: character (len=512) :: err_msg - integer :: mylen, ierr + integer :: ierr ! - mylen = 1 - ierr = Nf_Put_Att_Real( ncid, NF_GLOBAL, att_name, & - NF_FLOAT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_glob_attributes_r4: can not define attribute : ' // & TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -807,15 +771,12 @@ END SUBROUTINE NcDef_glob_attributes_r4 ! ! !INTERFACE: ! - SUBROUTINE NcDef_glob_attributes_r8(ncid,att_name,att_val) + SUBROUTINE NcDef_glob_attributes_r8(ncid, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -833,20 +794,18 @@ SUBROUTINE NcDef_glob_attributes_r8(ncid,att_name,att_val) ! Bob Yantosca( based on code by Jules Kouatchou) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: character (len=512) :: err_msg - integer :: mylen, ierr + integer :: ierr ! - mylen = 1 - ierr = Nf_Put_Att_Double( ncid, NF_GLOBAL, att_name, & - NF_FLOAT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_glob_attributes_r8: can not define attribute : ' // & TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -863,15 +822,12 @@ END SUBROUTINE NcDef_glob_attributes_r8 ! ! !INTERFACE: ! - SUBROUTINE NcDef_glob_attributes_i_arr(ncid,att_name,att_val) + SUBROUTINE NcDef_glob_attributes_i_arr(ncid, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -889,20 +845,18 @@ SUBROUTINE NcDef_glob_attributes_i_arr(ncid,att_name,att_val) ! Bob Yantosca( based on code by Jules Kouatchou) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: CHARACTER (LEN=512) :: err_msg - INTEGER :: mylen, ierr + INTEGER :: ierr ! - mylen = SIZE( att_val ) - ierr = Nf_Put_Att_Int( ncid, NF_GLOBAL, att_name, & - NF_INT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_glob_attributes_i_arr: can not define attribute : ' & // Trim (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -923,11 +877,8 @@ SUBROUTINE NcDef_glob_attributes_r4_arr(ncid,att_name,att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT none -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -945,20 +896,18 @@ SUBROUTINE NcDef_glob_attributes_r4_arr(ncid,att_name,att_val) ! Bob Yantosca( based on code by Jules Kouatchou) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: character (len=512) :: err_msg - integer :: mylen, ierr + integer :: ierr ! - mylen = SIZE( att_val ) - ierr = Nf_Put_Att_Real( ncid, NF_GLOBAL, att_name, & - NF_FLOAT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_glob_attributes_r4_arr: can not define attribute : ' & // TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -975,15 +924,12 @@ END SUBROUTINE NcDef_glob_attributes_r4_arr ! ! !INTERFACE: ! - SUBROUTINE NcDef_glob_attributes_r8_arr(ncid,att_name,att_val) + SUBROUTINE NcDef_glob_attributes_r8_arr(ncid, att_name, att_val) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT none -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: !! ncid : netCDF file id @@ -1001,20 +947,18 @@ SUBROUTINE NcDef_glob_attributes_r8_arr(ncid,att_name,att_val) ! Bob Yantosca( based on code by Jules Kouatchou) ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: character (len=512) :: err_msg - integer :: mylen, ierr + integer :: ierr ! - mylen = SIZE( att_val ) - ierr = Nf_Put_Att_Double( ncid, NF_GLOBAL, att_name, & - NF_FLOAT, mylen, att_val ) + ierr = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val ) - IF (ierr.ne.NF_NOERR) THEN + IF (ierr.ne.NF90_NOERR) THEN err_msg = 'NcDef_glob_attributes_r8_arr: can not define attribute : ' & // TRIM (att_name) CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) @@ -1031,19 +975,17 @@ END SUBROUTINE NcDef_glob_attributes_r8_arr ! ! !INTERFACE: ! - SUBROUTINE NcSetFill(ncid,ifill,omode) + SUBROUTINE NcSetFill(ncid, ifill, omode) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: ! - INTEGER, INTENT(in) :: ncid, ifill,omode + INTEGER, INTENT(IN ) :: ncid, ifill + INTEGER, INTENT(INOUT) :: omode ! ! !DESCRIPTION: Sets fill method. !\\ @@ -1052,19 +994,19 @@ SUBROUTINE NcSetFill(ncid,ifill,omode) ! Jules Kouatchou ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: character (len=512) :: err_msg - integer :: mylen, ierr + integer :: ierr ! - ierr = Nf_Set_Fill (ncid, NF_NOFILL, omode) + ierr = NF90_Set_Fill(ncid, ifill, omode) - IF (ierr.ne.NF_NOERR) THEN - err_msg = 'Nf_Set_FIll: Error in omode ' + IF (ierr.ne.NF90_NOERR) THEN + err_msg = 'NF90_Set_FIll: Error in omode ' CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) END IF @@ -1083,11 +1025,8 @@ SUBROUTINE NcEnd_Def(ncid) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT NONE -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: ! @@ -1100,19 +1039,19 @@ SUBROUTINE NcEnd_Def(ncid) ! Jules Kouatchou ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: CHARACTER (LEN=512) :: err_msg - INTEGER :: ierr + INTEGER :: ierr ! - ierr = Nf_Enddef (ncid) + ierr = NF90_Enddef(ncid) - IF (ierr.ne.NF_NOERR) THEN - err_msg = 'Nf_EndDef: Error in closing netCDF define mode!' + IF (ierr.ne.NF90_NOERR) THEN + err_msg = 'NF90_EndDef: Error in closing netCDF define mode!' CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) END IF @@ -1131,11 +1070,8 @@ SUBROUTINE NcBegin_Def(ncid) ! ! !USES: ! + USE netCDF USE m_do_err_out -! - IMPLICIT none -! - INCLUDE 'netcdf.inc' ! ! !INPUT PARAMETERS: ! @@ -1149,7 +1085,7 @@ SUBROUTINE NcBegin_Def(ncid) ! Jules Kouatchou ! ! !REVISION HISTORY: -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------- !BOC @@ -1158,10 +1094,10 @@ SUBROUTINE NcBegin_Def(ncid) character (len=512) :: err_msg integer :: ierr ! - ierr = Nf_Redef (ncid) + ierr = NF90_Redef (ncid) - IF (ierr.ne.NF_NOERR) THEN - err_msg = 'Nf_ReDef: Error in opening netCDF define mode!' + IF (ierr.ne.NF90_NOERR) THEN + err_msg = 'NF90_ReDef: Error in opening netCDF define mode!' CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) END IF diff --git a/NcdfUtil/m_netcdf_io_get_dimlen.F90 b/NcdfUtil/m_netcdf_io_get_dimlen.F90 index f177b0b9e..cac4b6d00 100644 --- a/NcdfUtil/m_netcdf_io_get_dimlen.F90 +++ b/NcdfUtil/m_netcdf_io_get_dimlen.F90 @@ -7,14 +7,15 @@ ! ! !INTERFACE: ! -module m_netcdf_io_get_dimlen +MODULE m_netcdf_io_get_dimlen ! - implicit none + IMPLICIT NONE + PRIVATE ! ! !PUBLIC MEMBER FUNCTIONS: ! - public Ncget_Dimlen - public Ncget_Unlim_Dimlen + PUBLIC :: Ncget_Dimlen + PUBLIC :: Ncget_Unlim_Dimlen ! ! !DESCRIPTION: Provides routines to obtain the length of a given dimension. !\\ @@ -41,15 +42,12 @@ module m_netcdf_io_get_dimlen ! ! !INTERFACE: ! - subroutine Ncget_Dimlen (ncid, dim_name, dim_len ) + SUBROUTINE Ncget_Dimlen(ncid, dim_name, dim_len) ! ! !USES: ! + use netCDF use m_do_err_out -! - implicit none -! - include 'netcdf.inc' ! ! !INPUT PARAMETERS: !! dim_name : netCDF dimension name @@ -77,27 +75,26 @@ subroutine Ncget_Dimlen (ncid, dim_name, dim_len ) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: dimid - integer :: ierr + CHARACTER(len=512) :: err_msg + INTEGER :: dimid + INTEGER :: ierr - ierr = Nf_Inq_Dimid (ncid, dim_name, dimid) + ierr = NF90_Inq_Dimid(ncid, dim_name, dimid) - if (ierr /= NF_NOERR ) then - err_msg = 'In Ncget_Dimlen #1: ' // Trim (dim_name) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + IF (ierr /= NF90_NOERR ) THEN + err_msg = 'In Ncget_Dimlen #1: ' // TRIM(dim_name) // & + ', ' // NF90_Strerror (ierr) + CALL Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + ENDIF - ierr = Nf_Inq_Dimlen (ncid, dimid, dim_len) + ierr = NF90_Inquire_Dimension(ncid, dimid, len=dim_len) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncget_Dimlen #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, dimid, 0, 0.0d0, 0.0d0) - end if + IF (ierr /= NF90_NOERR) THEN + err_msg = 'In Ncget_Dimlen #2: ' // NF90_Strerror (ierr) + CALL Do_Err_Out (err_msg, .true., 2, ncid, dimid, 0, 0.0d0, 0.0d0) + ENDIF - return - end subroutine Ncget_Dimlen + END SUBROUTINE Ncget_Dimlen !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -108,23 +105,20 @@ end subroutine Ncget_Dimlen ! ! !INTERFACE: ! - subroutine Ncget_Unlim_Dimlen (ncid, udim_len) + SUBROUTINE Ncget_Unlim_Dimlen (ncid, udim_len) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include 'netcdf.inc' + USE netCDF + USE m_do_err_out ! ! !INPUT PARAMETERS: !! ncid : netCDF file id - integer, intent(in) :: ncid + INTEGER, INTENT(IN) :: ncid ! ! !OUTPUT PARAMETERS: !! udim_len : netCDF unlimited dimension length - integer, intent(out) :: udim_len + INTEGER, INTENT(OUT) :: udim_len ! ! !DESCRIPTION: Returns the length of the unlimited netCDF dimension. !\\ @@ -139,26 +133,15 @@ subroutine Ncget_Unlim_Dimlen (ncid, udim_len) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: udimid -! - ierr = Nf_Inq_Unlimdim (ncid, udimid) - - if (ierr /= NF_NOERR) then - err_msg = 'In Ncget_Unlim_Dimlen #1: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if - - ierr = Nf_Inq_Dimlen (ncid, udimid, udim_len) - - if (ierr /= NF_NOERR) then - err_msg = 'In Ncget_Unlim_Dimlen #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, udimid, 0, 0.0d0, 0.0d0) - end if + CHARACTER(len=512) :: err_msg + INTEGER :: ierr, udim_id - return + udim_len = -1 + ierr = NF90_Inquire(ncid, unlimitedDimId=udim_id) + IF ( ierr /= NF90_NOERR ) THEN + ierr = NF90_Inquire_Dimension( ncid, udim_id, len=udim_len ) + ENDIF - end subroutine Ncget_Unlim_Dimlen + END SUBROUTINE Ncget_Unlim_Dimlen !EOC -end module m_netcdf_io_get_dimlen +END MODULE m_netcdf_io_get_dimlen diff --git a/NcdfUtil/m_netcdf_io_handle_err.F90 b/NcdfUtil/m_netcdf_io_handle_err.F90 index 9cbcd3c93..43a961b29 100644 --- a/NcdfUtil/m_netcdf_io_handle_err.F90 +++ b/NcdfUtil/m_netcdf_io_handle_err.F90 @@ -44,11 +44,8 @@ subroutine Nchandle_Err (ierr) ! ! !USES: ! + use netCDF use m_do_err_out -! - implicit none -! - include "netcdf.inc" ! ! !INPUT PARAMETERS: ! ierr : netCDF error number @@ -69,7 +66,7 @@ subroutine Nchandle_Err (ierr) ! !LOCAL VARIABLES: character (len=512) :: err_msg ! - err_msg = 'In Nchandle_Err: ' // Nf_Strerror (ierr) + err_msg = 'In Nchandle_Err: ' // NF90_Strerror (ierr) call Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) diff --git a/NcdfUtil/m_netcdf_io_open.F90 b/NcdfUtil/m_netcdf_io_open.F90 index cdd630e11..a64158777 100644 --- a/NcdfUtil/m_netcdf_io_open.F90 +++ b/NcdfUtil/m_netcdf_io_open.F90 @@ -45,11 +45,8 @@ subroutine Ncop_Rd (ncid, filname) ! ! !USES: ! + USE netCDF use m_do_err_out -! - implicit none -! - include "netcdf.inc" ! ! !INPUT PARAMETERS: !! filname : name of netCDF file to open for reading @@ -72,18 +69,16 @@ subroutine Ncop_Rd (ncid, filname) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr + character(len=512) :: err_msg + integer :: ierr ! - ierr = Nf_Open (filname, NF_NOWRITE, ncid) + ierr = Nf90_Open( filname, NF90_NOWRITE, ncid ) - if (ierr /= NF_NOERR) then + if (ierr /= NF90_NOERR) then err_msg = 'In Ncop_Rd, cannot open: ' // Trim (filname) call Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) end if - return - end subroutine Ncop_Rd !EOC !------------------------------------------------------------------------------ @@ -99,11 +94,8 @@ subroutine Ncop_Wr (ncid, filname) ! ! !USES: ! + USE netCDF use m_do_err_out -! - implicit none -! - include "netcdf.inc" ! ! !INPUT PARAMETERS: !! filname : name of netCDF file to open for reading @@ -130,9 +122,9 @@ subroutine Ncop_Wr (ncid, filname) character (len=512) :: err_msg integer :: ierr ! - ierr = Nf_Open (filname, NF_WRITE, ncid) + ierr = Nf90_Open (filname, NF90_WRITE, ncid) - if (ierr /= NF_NOERR) then + if (ierr /= NF90_NOERR) then err_msg = 'In Ncop_Rd, cannot open: ' // Trim (filname) call Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0) end if diff --git a/NcdfUtil/m_netcdf_io_read.F90 b/NcdfUtil/m_netcdf_io_read.F90 index dabfdeade..89d6521f6 100644 --- a/NcdfUtil/m_netcdf_io_read.F90 +++ b/NcdfUtil/m_netcdf_io_read.F90 @@ -3,48 +3,48 @@ !------------------------------------------------------------------------------ !BOP ! -! !MODULE: m_netcdf_io_read +! !MODULE: m_netcdf_io_read ! ! !INTERFACE: ! - MODULE m_netcdf_io_read +MODULE m_netcdf_io_read ! ! !USES: ! - IMPLICIT NONE - PRIVATE + IMPLICIT NONE + PRIVATE ! ! !PUBLIC MEMBER FUNCTIONS: ! - ! Public interface - PUBLIC :: NcRd - - ! Private methods overloaded by public interface - ! (see below for info about these routines & the arguments they take) - INTERFACE NcRd - MODULE PROCEDURE Ncrd_Scal - MODULE PROCEDURE Ncrd_Scal_Int - MODULE PROCEDURE Ncrd_1d_R8 - MODULE PROCEDURE Ncrd_1d_R4 - MODULE PROCEDURE Ncrd_1d_Int - MODULE PROCEDURE Ncrd_1d_Char - MODULE PROCEDURE Ncrd_2d_R8 - MODULE PROCEDURE Ncrd_2d_R4 - MODULE PROCEDURE Ncrd_2d_Int - MODULE PROCEDURE Ncrd_2d_Char - MODULE PROCEDURE Ncrd_3d_R8 - MODULE PROCEDURE Ncrd_3d_R4 - MODULE PROCEDURE Ncrd_3d_Int - MODULE PROCEDURE Ncrd_4d_R8 - MODULE PROCEDURE Ncrd_4d_R4 - MODULE PROCEDURE Ncrd_4d_Int - MODULE PROCEDURE Ncrd_5d_R8 - MODULE PROCEDURE Ncrd_5d_R4 - MODULE PROCEDURE Ncrd_6d_R8 - MODULE PROCEDURE Ncrd_6d_R4 - MODULE PROCEDURE Ncrd_7d_R8 - MODULE PROCEDURE Ncrd_7d_R4 - END INTERFACE + ! Public interface + PUBLIC :: NcRd + + ! Private methods overloaded by public interface + ! (see below for info about these routines & the arguments they take) + INTERFACE NcRd + MODULE PROCEDURE Ncrd_Scal + MODULE PROCEDURE Ncrd_Scal_Int + MODULE PROCEDURE Ncrd_1d_R8 + MODULE PROCEDURE Ncrd_1d_R4 + MODULE PROCEDURE Ncrd_1d_Int + MODULE PROCEDURE Ncrd_1d_Char + MODULE PROCEDURE Ncrd_2d_R8 + MODULE PROCEDURE Ncrd_2d_R4 + MODULE PROCEDURE Ncrd_2d_Int + MODULE PROCEDURE Ncrd_2d_Char + MODULE PROCEDURE Ncrd_3d_R8 + MODULE PROCEDURE Ncrd_3d_R4 + MODULE PROCEDURE Ncrd_3d_Int + MODULE PROCEDURE Ncrd_4d_R8 + MODULE PROCEDURE Ncrd_4d_R4 + MODULE PROCEDURE Ncrd_4d_Int + MODULE PROCEDURE Ncrd_5d_R8 + MODULE PROCEDURE Ncrd_5d_R4 + MODULE PROCEDURE Ncrd_6d_R8 + MODULE PROCEDURE Ncrd_6d_R4 + MODULE PROCEDURE Ncrd_7d_R8 + MODULE PROCEDURE Ncrd_7d_R4 + END INTERFACE NcRd ! ! !DESCRIPTION: Routines for reading variables in a netCDF file. !\\ @@ -71,25 +71,22 @@ MODULE m_netcdf_io_read ! ! !INTERFACE: ! - subroutine Ncrd_Scal (varrd_scal, ncid, varname) + subroutine Ncrd_Scal(varrd_scal, ncid, varname) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read variable from -!! varname : netCDF variable name - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname +!! ncid : netCDF file id to read variable from +!! varname : netCDF variable name + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname ! ! !OUTPUT PARAMETERS: -!! varrd_scal : variable to fill - real*8 , intent(out) :: varrd_scal +!! varrd_scal : variable to fill + real*8 , intent(out) :: varrd_scal ! ! !DESCRIPTION: Reads in a netCDF scalar variable. !\\ @@ -104,31 +101,29 @@ subroutine Ncrd_Scal (varrd_scal, ncid, varname) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid - real*4 :: varrd_scal_tmp + character (len=512) :: err_msg + integer :: ierr + integer :: varid + real*4 :: varrd_scal_tmp ! - ierr = Nf_Inq_Varid (ncid, varname, varid) - - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_Scal #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + ierr = NF90_Inq_VarId(ncid, varname, varid) - ierr = Nf_Get_Var_Real (ncid, varid, varrd_scal_tmp) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_Scal #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_Scal #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + ierr = NF90_Get_Var(ncid, varid, varrd_scal_tmp) - varrd_scal = varrd_scal_tmp + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_Scal #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - return + varrd_scal = varrd_scal_tmp - end subroutine Ncrd_Scal + end subroutine Ncrd_Scal !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -139,25 +134,22 @@ end subroutine Ncrd_Scal ! ! !INTERFACE: ! - subroutine Ncrd_Scal_Int (varrd_scali, ncid, varname) + subroutine Ncrd_Scal_Int(varrd_scali, ncid, varname) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read variable from -!! varname : netCDF variable name - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname +!! ncid : netCDF file id to read variable from +!! varname : netCDF variable name + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname ! ! !OUTPUT PARAMETERS: -!! varrd_scali : integer variable to fill - integer , intent(out) :: varrd_scali +!! varrd_scali : integer variable to fill + integer , intent(out) :: varrd_scali ! ! !DESCRIPTION: Reads in a netCDF integer scalar variable. !\\ @@ -172,28 +164,26 @@ subroutine Ncrd_Scal_Int (varrd_scali, ncid, varname) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_Scal_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_Scal_Int #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Var_Int (ncid, varid, varrd_scali) + ierr = NF90_Get_Var(ncid, varid, varrd_scali) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_Scal_Int #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if - - return + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_Scal_Int #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_Scal_Int + end subroutine Ncrd_Scal_Int !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -204,33 +194,29 @@ end subroutine Ncrd_Scal_Int ! ! !INTERFACE: ! - subroutine Ncrd_1d_R8 (varrd_1d, ncid, varname, strt1d, cnt1d, & - err_stop, stat) + subroutine Ncrd_1d_R8(varrd_1d, ncid, varname, strt1d, cnt1d, err_stop, stat) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt1d : vector specifying the index in varrd_1d where -!! the first of the data values will be read -!! cnt1d : varrd_1d dimension - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt1d(1) - integer , intent(in) :: cnt1d (1) - logical, optional, intent(in) :: err_stop +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt1d : vector specifying the index in varrd_1d where +!! the first of the data values will be read +!! cnt1d : varrd_1d dimension + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt1d(1) + integer , intent(in) :: cnt1d (1) + logical, optional, intent(in) :: err_stop ! ! !OUTPUT PARAMETERS: -!! varrd_1d : array to fill - real*8 , intent(out) :: varrd_1d(cnt1d(1)) - integer, optional, intent(out) :: stat +!! varrd_1d : array to fill + real*8 , intent(out) :: varrd_1d(cnt1d(1)) + integer, optional, intent(out) :: stat ! ! !DESCRIPTION: Reads in a 1D netCDF real array and does some error checking. !\\ @@ -246,49 +232,46 @@ subroutine Ncrd_1d_R8 (varrd_1d, ncid, varname, strt1d, cnt1d, & ! ! !LOCAL VARIABLES: ! - character (len=512) :: err_msg - integer :: ierr - integer :: varid - logical :: dostop + character (len=512) :: err_msg + integer :: ierr + integer :: varid + logical :: dostop - ! set dostop flag - if ( present ( err_stop ) ) then - dostop = err_stop - else - dostop = .true. - endif + ! set dostop flag + dostop = .true. + if ( present ( err_stop ) ) dostop = err_stop - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - if ( dostop ) then + if (ierr /= NF90_NOERR) then + if ( dostop ) then err_msg = 'In Ncrd_1d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) + ', ' // NF90_Strerror(ierr) call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - else + else varrd_1d(:) = -999d0 if ( present ( stat ) ) stat = 1 return - end if - end if + end if + end if - ierr = Nf_Get_Vara_Double (ncid, varid, strt1d, cnt1d, varrd_1d) + ierr = NF90_Get_Var(ncid, varid, varrd_1d, start=strt1d, count=cnt1d) - if (ierr /= NF_NOERR) then - if ( dostop ) then - err_msg = 'In Ncrd_1d_R8 #2: ' // Nf_Strerror (ierr) + if (ierr /= NF90_NOERR) then + if ( dostop ) then + err_msg = 'In Ncrd_1d_R8 #2: ' // NF90_Strerror(ierr) call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - else + else varrd_1d(:) = -999d0 if ( present ( stat ) ) stat = 2 return - endif - end if + endif + end if - ! set stat to 0 (= success) - if ( present ( stat ) ) stat = 0 + ! set stat to 0 (= success) + if ( present ( stat ) ) stat = 0 - end subroutine Ncrd_1d_R8 + end subroutine Ncrd_1d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -299,33 +282,29 @@ end subroutine Ncrd_1d_R8 ! ! !INTERFACE: ! - subroutine Ncrd_1d_R4 (varrd_1d, ncid, varname, strt1d, cnt1d, & - err_stop, stat) + subroutine Ncrd_1d_R4(varrd_1d, ncid, varname, strt1d, cnt1d, err_stop, stat) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt1d : vector specifying the index in varrd_1d where -!! the first of the data values will be read -!! cnt1d : varrd_1d dimension - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt1d(1) - integer , intent(in) :: cnt1d (1) - logical, optional, intent(in) :: err_stop +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt1d : vector specifying the index in varrd_1d where +!! the first of the data values will be read +!! cnt1d : varrd_1d dimension + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt1d(1) + integer , intent(in) :: cnt1d (1) + logical, optional, intent(in) :: err_stop ! ! !OUTPUT PARAMETERS: -!! varrd_1d : array to fill - real*4 , intent(out) :: varrd_1d(cnt1d(1)) - integer, optional, intent(out) :: stat +!! varrd_1d : array to fill + real*4 , intent(out) :: varrd_1d(cnt1d(1)) + integer, optional, intent(out) :: stat ! ! !DESCRIPTION: Reads in a 1D netCDF real array and does some error checking. !\\ @@ -341,50 +320,47 @@ subroutine Ncrd_1d_R4 (varrd_1d, ncid, varname, strt1d, cnt1d, & ! ! !LOCAL VARIABLES: ! - character (len=512) :: err_msg - integer :: ierr - integer :: varid - logical :: dostop - - ! set dostop flag - if ( present ( err_stop ) ) then - dostop = err_stop - else - dostop = .true. - endif - - ierr = Nf_Inq_Varid (ncid, varname, varid) - - if (ierr /= NF_NOERR) then - if ( dostop ) then - err_msg = 'In Ncrd_1d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - else + character (len=512) :: err_msg + integer :: ierr + integer :: varid + logical :: dostop + + ! set dostop flag + dostop = .true. + if ( present ( err_stop ) ) dostop = err_stop + + ierr = NF90_Inq_VarId(ncid, varname, varid) + + if (ierr /= NF90_NOERR) then + if ( dostop ) then + err_msg = 'In Ncrd_1d_R4 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + else varrd_1d(:) = -999.0 if ( present ( stat ) ) stat = 1 return - end if - end if + end if + end if - ierr = Nf_Get_Vara_Real (ncid, varid, strt1d, cnt1d, varrd_1d) + ierr = NF90_Get_Var(ncid, varid, varrd_1d, start=strt1d, count=cnt1d) - if (ierr /= NF_NOERR) then - if ( dostop ) then - err_msg = 'In Ncrd_1d_R4 #2: ' // Nf_Strerror (ierr) + if (ierr /= NF90_NOERR) then + if ( dostop ) then + err_msg = 'In Ncrd_1d_R4 #2: ' // NF90_Strerror(ierr) call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - else + else varrd_1d(:) = -999.0 if ( present ( stat ) ) stat = 2 return - endif - end if + endif + end if - ! set stat to 0 (= success) - if ( present ( stat ) ) stat = 0 - return + ! set stat to 0 (= success) + if ( present ( stat ) ) stat = 0 + return - end subroutine Ncrd_1d_R4 + end subroutine Ncrd_1d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -395,34 +371,31 @@ end subroutine Ncrd_1d_R4 ! ! !INTERFACE: ! - subroutine Ncrd_1d_Int (varrd_1di, ncid, varname, strt1d, cnt1d, & - err_stop, stat) + subroutine Ncrd_1d_Int(varrd_1di, ncid, varname, strt1d, & + cnt1d, err_stop, stat) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: ! -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt1d : vector specifying the index in varrd_1di where -!! the first of the data values will be read -!! cnt1d : varrd_1di dimension - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt1d(1) - integer , intent(in) :: cnt1d (1) - logical, optional, intent(in) :: err_stop +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt1d : vector specifying the index in varrd_1di where +!! the first of the data values will be read +!! cnt1d : varrd_1di dimension + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt1d(1) + integer , intent(in) :: cnt1d (1) + logical, optional, intent(in) :: err_stop ! ! !OUTPUT PARAMETERS: -!! varrd_1di : intger array to fill - integer , intent(out) :: varrd_1di(cnt1d(1)) - integer, optional, intent(out) :: stat +!! varrd_1di : intger array to fill + integer , intent(out) :: varrd_1di(cnt1d(1)) + integer, optional, intent(out) :: stat ! ! !DESCRIPTION: Reads in a 1D netCDF integer array and does some error ! checking. @@ -439,51 +412,48 @@ subroutine Ncrd_1d_Int (varrd_1di, ncid, varname, strt1d, cnt1d, & ! ! !LOCAL VARIABLES: ! - character (len=512) :: err_msg - integer :: ierr - integer :: varid - logical :: dostop + character (len=512) :: err_msg + integer :: ierr + integer :: varid + logical :: dostop - ! set dostop flag - if ( present ( err_stop ) ) then - dostop = err_stop - else - dostop = .true. - endif + ! set dostop flag + dostop = .true. + if ( present ( err_stop ) ) dostop = err_stop - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - if ( dostop ) then + if (ierr /= NF90_NOERR) then + if ( dostop ) then err_msg = 'In Ncrd_1d_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) + ', ' // NF90_Strerror(ierr) call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - else + else varrd_1di(:) = -999 if ( present ( stat ) ) stat = 1 return - end if - end if + end if + end if - ierr = Nf_Get_Vara_Int (ncid, varid, strt1d, cnt1d, varrd_1di) + ierr = NF90_Get_Var(ncid, varid, varrd_1di, start=strt1d, count=cnt1d) - if (ierr /= NF_NOERR) then - if ( dostop ) then - err_msg = 'In Ncrd_1d_Int #2: ' // Nf_Strerror (ierr) + if (ierr /= NF90_NOERR) then + if ( dostop ) then + err_msg = 'In Ncrd_1d_Int #2: ' // NF90_Strerror(ierr) call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - else + else varrd_1di(:) = -999 if ( present ( stat ) ) stat = 2 return - endif - end if + endif + end if ! set stat to 0 (= success) if ( present ( stat ) ) stat = 0 - return + return - end subroutine Ncrd_1d_Int + end subroutine Ncrd_1d_Int !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -494,30 +464,26 @@ end subroutine Ncrd_1d_Int ! ! !INTERFACE: ! - subroutine Ncrd_2d_R8 (varrd_2d, ncid, varname, strt2d, cnt2d) + subroutine Ncrd_2d_R8(varrd_2d, ncid, varname, strt2d, cnt2d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" -! -! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt2d : vector specifying the index in varrd_2d where + use netCDF + use m_do_err_out + +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt2d : vector specifying the index in varrd_2d where !! the first of the data values will be read -!! cnt2d : varrd_2d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt2d(2) - integer , intent(in) :: cnt2d (2) +!! cnt2d : varrd_2d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt2d(2) + integer , intent(in) :: cnt2d (2) ! ! !OUTPUT PARAMETERS: -!! varrd_2d : array to fill - real*8 , intent(out) :: varrd_2d(cnt2d(1), cnt2d(2)) +!! varrd_2d : array to fill + real*8 , intent(out) :: varrd_2d(cnt2d(1), cnt2d(2)) ! ! !DESCRIPTION: Reads in a 2D netCDF real array and does some error checking. !\\ @@ -532,26 +498,26 @@ subroutine Ncrd_2d_R8 (varrd_2d, ncid, varname, strt2d, cnt2d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_2d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_2d_R8 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Double (ncid, varid, strt2d, cnt2d, varrd_2d) + ierr = NF90_Get_Var(ncid, varid, varrd_2d, start=strt2d, count=cnt2d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_2d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_2d_R8 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_2d_R8 + end subroutine Ncrd_2d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -562,30 +528,27 @@ end subroutine Ncrd_2d_R8 ! ! !INTERFACE: ! - subroutine Ncrd_2d_R4 (varrd_2d, ncid, varname, strt2d, cnt2d) + subroutine Ncrd_2d_R4(varrd_2d, ncid, varname, strt2d, cnt2d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt2d : vector specifying the index in varrd_2d where -!! the first of the data values will be read -!! cnt2d : varrd_2d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt2d(2) - integer , intent(in) :: cnt2d (2) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt2d : vector specifying the index in varrd_2d where +!! the first of the data values will be read +!! cnt2d : varrd_2d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt2d(2) + integer , intent(in) :: cnt2d (2) ! ! !OUTPUT PARAMETERS: -!! varrd_2d : array to fill - real*4 , intent(out) :: varrd_2d(cnt2d(1), cnt2d(2)) +!! varrd_2d : array to fill + real*4 , intent(out) :: varrd_2d(cnt2d(1), cnt2d(2)) ! ! !DESCRIPTION: Reads in a 2D netCDF real array and does some error checking. !\\ @@ -600,26 +563,26 @@ subroutine Ncrd_2d_R4 (varrd_2d, ncid, varname, strt2d, cnt2d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_2d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_2d_R4 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Real (ncid, varid, strt2d, cnt2d, varrd_2d) + ierr = NF90_Get_Var(ncid, varid, varrd_2d, start=strt2d, count=cnt2d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_2d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_2d_R4 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_2d_R4 + end subroutine Ncrd_2d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -630,30 +593,27 @@ end subroutine Ncrd_2d_R4 ! ! !INTERFACE: ! - subroutine Ncrd_2d_Int (varrd_2di, ncid, varname, strt2d, cnt2d) + subroutine Ncrd_2d_Int(varrd_2di, ncid, varname, strt2d, cnt2d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt2d : vector specifying the index in varrd_2d where -!! the first of the data values will be read -!! cnt2d : varrd_2di dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt2d(2) - integer , intent(in) :: cnt2d (2) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt2d : vector specifying the index in varrd_2d where +!! the first of the data values will be read +!! cnt2d : varrd_2di dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt2d(2) + integer , intent(in) :: cnt2d (2) ! ! !OUTPUT PARAMETERS: -!! varrd_2di : intger array to fill - integer , intent(out) :: varrd_2di(cnt2d(1), cnt2d(2)) +!! varrd_2di : intger array to fill + integer , intent(out) :: varrd_2di(cnt2d(1), cnt2d(2)) ! ! !DESCRIPTION: Reads in a 2D netCDF integer array and does some error ! checking. @@ -669,26 +629,26 @@ subroutine Ncrd_2d_Int (varrd_2di, ncid, varname, strt2d, cnt2d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_2d_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_2d_Int #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Int (ncid, varid, strt2d, cnt2d, varrd_2di) + ierr = NF90_Get_Var(ncid, varid, varrd_2di, start=strt2d, count=cnt2d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_2d_Int #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_2d_Int #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_2d_Int + end subroutine Ncrd_2d_Int !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -699,31 +659,28 @@ end subroutine Ncrd_2d_Int ! ! !INTERFACE: ! - subroutine Ncrd_3d_R8 (varrd_3d, ncid, varname, strt3d, cnt3d) + subroutine Ncrd_3d_R8(varrd_3d, ncid, varname, strt3d, cnt3d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt3d : vector specifying the index in varrd_3d where +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt3d : vector specifying the index in varrd_3d where !! the first of the data values will be read -!! cnt3d : varrd_3d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt3d(3) - integer , intent(in) :: cnt3d (3) +!! cnt3d : varrd_3d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt3d(3) + integer , intent(in) :: cnt3d (3) ! ! !OUTPUT PARAMETERS: -!! varrd_3d : array to fill - real*8 , intent(out) :: varrd_3d(cnt3d(1), cnt3d(2), & - cnt3d(3)) +!! varrd_3d : array to fill + real*8 , intent(out) :: varrd_3d(cnt3d(1), cnt3d(2), & + cnt3d(3)) ! ! !DESCRIPTION: Reads in a 3D netCDF real array and does some error checking. !\\ @@ -738,26 +695,26 @@ subroutine Ncrd_3d_R8 (varrd_3d, ncid, varname, strt3d, cnt3d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_3d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_3d_R8 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Double (ncid, varid, strt3d, cnt3d, varrd_3d) + ierr = NF90_Get_Var(ncid, varid, varrd_3d, start=strt3d, count=cnt3d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_3d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_3d_R8 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_3d_R8 + end subroutine Ncrd_3d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -768,31 +725,28 @@ end subroutine Ncrd_3d_R8 ! ! !INTERFACE: ! - subroutine Ncrd_3d_R4 (varrd_3d, ncid, varname, strt3d, cnt3d) + subroutine Ncrd_3d_R4(varrd_3d, ncid, varname, strt3d, cnt3d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt3d : vector specifying the index in varrd_3d where -!! the first of the data values will be read -!! cnt3d : varrd_3d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt3d(3) - integer , intent(in) :: cnt3d (3) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt3d : vector specifying the index in varrd_3d where +!! the first of the data values will be read +!! cnt3d : varrd_3d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt3d(3) + integer , intent(in) :: cnt3d (3) ! ! !OUTPUT PARAMETERS: -!! varrd_3d : array to fill - real*4 , intent(out) :: varrd_3d(cnt3d(1), cnt3d(2), & - cnt3d(3)) +!! varrd_3d : array to fill + real*4 , intent(out) :: varrd_3d(cnt3d(1), cnt3d(2), & + cnt3d(3)) ! ! !DESCRIPTION: Reads in a 3D netCDF real array and does some error checking. !\\ @@ -807,26 +761,26 @@ subroutine Ncrd_3d_R4 (varrd_3d, ncid, varname, strt3d, cnt3d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_3d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_3d_R4 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Real (ncid, varid, strt3d, cnt3d, varrd_3d) + ierr = NF90_Get_Var(ncid, varid, varrd_3d, start=strt3d, count=cnt3d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_3d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_3d_R4 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_3d_R4 + end subroutine Ncrd_3d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -837,31 +791,28 @@ end subroutine Ncrd_3d_R4 ! ! !INTERFACE: ! - subroutine Ncrd_3d_Int (varrd_3di, ncid, varname, strt3d, cnt3d) + subroutine Ncrd_3d_Int(varrd_3di, ncid, varname, strt3d, cnt3d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt3d : vector specifying the index in varrd_3d where -!! the first of the data values will be read -!! cnt3d : varrd_3di dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt3d(3) - integer , intent(in) :: cnt3d (3) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt3d : vector specifying the index in varrd_3d where +!! the first of the data values will be read +!! cnt3d : varrd_3di dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt3d(3) + integer , intent(in) :: cnt3d (3) ! ! !OUTPUT PARAMETERS: -!! varrd_3di : intger array to fill - integer , intent(out) :: varrd_3di(cnt3d(1), cnt3d(2), & - cnt3d(3)) +!! varrd_3di : intger array to fill + integer , intent(out) :: varrd_3di(cnt3d(1), cnt3d(2), & + cnt3d(3)) ! ! !DESCRIPTION: Reads in a 3D netCDF integer array and does some error ! checking. @@ -877,26 +828,26 @@ subroutine Ncrd_3d_Int (varrd_3di, ncid, varname, strt3d, cnt3d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_3d_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_3d_Int #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Int (ncid, varid, strt3d, cnt3d, varrd_3di) + ierr = NF90_Get_Var(ncid, varid, varrd_3di, start=strt3d, count=cnt3d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_3d_Int #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_3d_Int #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_3d_Int + end subroutine Ncrd_3d_Int !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -907,31 +858,30 @@ end subroutine Ncrd_3d_Int ! ! !INTERFACE: ! - subroutine Ncrd_4d_R8 (varrd_4d, ncid, varname, strt4d, cnt4d) + subroutine Ncrd_4d_R8(varrd_4d, ncid, varname, strt4d, cnt4d) ! ! !USES: ! - use m_do_err_out -! - implicit none + use netCDF + use m_do_err_out ! - include "netcdf.inc" + implicit none ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt4d : vector specifying the index in varrd_4d where -!! the first of the data values will be read -!! cnt4d : varrd_4d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt4d(4) - integer , intent(in) :: cnt4d (4) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt4d : vector specifying the index in varrd_4d where +!! the first of the data values will be read +!! cnt4d : varrd_4d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt4d(4) + integer , intent(in) :: cnt4d (4) ! ! !OUTPUT PARAMETERS: -!! varrd_4d : array to fill - real*8 , intent(out) :: varrd_4d(cnt4d(1), cnt4d(2), & - cnt4d(3), cnt4d(4)) +!! varrd_4d : array to fill + real*8 , intent(out) :: varrd_4d(cnt4d(1), cnt4d(2), & + cnt4d(3), cnt4d(4)) ! ! !DESCRIPTION: Reads in a 4D netCDF real array and does some error checking. !\\ @@ -946,27 +896,26 @@ subroutine Ncrd_4d_R8 (varrd_4d, ncid, varname, strt4d, cnt4d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) - - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_4d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + ierr = NF90_Inq_VarId(ncid, varname, varid) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_4d_R8 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Double (ncid, varid, strt4d, cnt4d, varrd_4d) + ierr = NF90_Get_Var(ncid, varid, varrd_4d, start=strt4d, count=cnt4d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_4d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_4d_R8 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_4d_R8 + end subroutine Ncrd_4d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -977,31 +926,28 @@ end subroutine Ncrd_4d_R8 ! ! !INTERFACE: ! - subroutine Ncrd_4d_R4 (varrd_4d, ncid, varname, strt4d, cnt4d) + subroutine Ncrd_4d_R4(varrd_4d, ncid, varname, strt4d, cnt4d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt4d : vector specifying the index in varrd_4d where -!! the first of the data values will be read -!! cnt4d : varrd_4d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt4d(4) - integer , intent(in) :: cnt4d (4) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt4d : vector specifying the index in varrd_4d where +!! the first of the data values will be read +!! cnt4d : varrd_4d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt4d(4) + integer , intent(in) :: cnt4d (4) ! ! !OUTPUT PARAMETERS: -!! varrd_4d : array to fill - real*4 , intent(out) :: varrd_4d(cnt4d(1), cnt4d(2), & - cnt4d(3), cnt4d(4)) +!! varrd_4d : array to fill + real*4 , intent(out) :: varrd_4d(cnt4d(1), cnt4d(2), & + cnt4d(3), cnt4d(4)) ! ! !DESCRIPTION: Reads in a 4D netCDF real array and does some error checking. !\\ @@ -1016,26 +962,26 @@ subroutine Ncrd_4d_R4 (varrd_4d, ncid, varname, strt4d, cnt4d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_4d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_4d_R4 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Real (ncid, varid, strt4d, cnt4d, varrd_4d) + ierr = NF90_Get_Var(ncid, varid, varrd_4d, start=strt4d, count=cnt4d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_4d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_4d_R4 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_4d_R4 + end subroutine Ncrd_4d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1046,31 +992,28 @@ end subroutine Ncrd_4d_R4 ! ! !INTERFACE: ! - subroutine Ncrd_4d_Int (varrd_4di, ncid, varname, strt4d, cnt4d) + subroutine Ncrd_4d_Int (varrd_4di, ncid, varname, strt4d, cnt4d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt3d : vector specifying the index in varrd_3d where -!! the first of the data values will be read -!! cnt3d : varrd_3di dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt4d(4) - integer , intent(in) :: cnt4d (4) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt3d : vector specifying the index in varrd_3d where +!! the first of the data values will be read +!! cnt3d : varrd_3di dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt4d(4) + integer , intent(in) :: cnt4d (4) ! ! !OUTPUT PARAMETERS: -!! varrd_3di : intger array to fill - integer , intent(out) :: varrd_4di(cnt4d(1), cnt4d(2), & - cnt4d(3), cnt4d(4)) +!! varrd_3di : intger array to fill + integer , intent(out) :: varrd_4di(cnt4d(1), cnt4d(2), & + cnt4d(3), cnt4d(4)) ! ! !DESCRIPTION: Reads in a 3D netCDF integer array and does some error ! checking. @@ -1086,26 +1029,26 @@ subroutine Ncrd_4d_Int (varrd_4di, ncid, varname, strt4d, cnt4d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_3d_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_3d_Int #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Int (ncid, varid, strt4d, cnt4d, varrd_4di) + ierr = NF90_Get_Var(ncid, varid, varrd_4di, start=strt4d, count=cnt4d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_3d_Int #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_3d_Int #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_4d_Int + end subroutine Ncrd_4d_Int !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1116,32 +1059,29 @@ end subroutine Ncrd_4d_Int ! ! !INTERFACE: ! - subroutine Ncrd_5d_R8 (varrd_5d, ncid, varname, strt5d, cnt5d) + subroutine Ncrd_5d_R8(varrd_5d, ncid, varname, strt5d, cnt5d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt5d : vector specifying the index in varrd_5d where -!! the first of the data values will be read -!! cnt5d : varrd_5d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt5d(5) - integer , intent(in) :: cnt5d (5) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt5d : vector specifying the index in varrd_5d where +!! the first of the data values will be read +!! cnt5d : varrd_5d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt5d(5) + integer , intent(in) :: cnt5d (5) ! ! !OUTPUT PARAMETERS: -!! varrd_5d : array to fill - real*8 , intent(out) :: varrd_5d(cnt5d(1), cnt5d(2), & - cnt5d(3), cnt5d(4), & - cnt5d(5)) +!! varrd_5d : array to fill + real*8 , intent(out) :: varrd_5d(cnt5d(1), cnt5d(2), & + cnt5d(3), cnt5d(4), & + cnt5d(5)) ! ! !DESCRIPTION: Reads in a 5D netCDF real array and does some error checking. !\\ @@ -1156,26 +1096,26 @@ subroutine Ncrd_5d_R8 (varrd_5d, ncid, varname, strt5d, cnt5d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then + if (ierr /= NF90_NOERR) then err_msg = 'In Ncrd_5d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) + ', ' // NF90_Strerror(ierr) call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + end if - ierr = Nf_Get_Vara_Double (ncid, varid, strt5d, cnt5d, varrd_5d) + ierr = NF90_Get_Var(ncid, varid, varrd_5d, start=strt5d, count=cnt5d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_5d_R8 #2: ' // Nf_Strerror (ierr) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_5d_R8 #2: ' // NF90_Strerror(ierr) call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + end if - end subroutine Ncrd_5d_R8 + end subroutine Ncrd_5d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1186,30 +1126,27 @@ end subroutine Ncrd_5d_R8 ! ! !INTERFACE: ! - subroutine Ncrd_5d_R4 (varrd_5d, ncid, varname, strt5d, cnt5d) + subroutine Ncrd_5d_R4(varrd_5d, ncid, varname, strt5d, cnt5d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt5d : vector specifying the index in varrd_5d where -!! the first of the data values will be read -!! cnt5d : varrd_5d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt5d(5) - integer , intent(in) :: cnt5d (5) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt5d : vector specifying the index in varrd_5d where +!! the first of the data values will be read +!! cnt5d : varrd_5d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt5d(5) + integer , intent(in) :: cnt5d (5) ! ! !OUTPUT PARAMETERS: -!! varrd_5d : array to fill - real*4 , intent(out) :: varrd_5d(cnt5d(1), cnt5d(2), & +!! varrd_5d : array to fill + real*4 , intent(out) :: varrd_5d(cnt5d(1), cnt5d(2), & cnt5d(3), cnt5d(4), & cnt5d(5)) ! @@ -1226,62 +1163,57 @@ subroutine Ncrd_5d_R4 (varrd_5d, ncid, varname, strt5d, cnt5d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_5d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_5d_R4 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Real (ncid, varid, strt5d, cnt5d, varrd_5d) + ierr = NF90_Get_Var(ncid, varid, varrd_5d, start=strt5d, count=cnt5d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_5d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_5d_R4 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_5d_R4 + end subroutine Ncrd_5d_R4 !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ +!------------------------------------------------------------------------- !BOP ! ! !IROUTINE: Ncrd_6d_R8 ! ! !INTERFACE: ! - subroutine Ncrd_6d_R8 (varrd_6d, ncid, varname, strt6d, cnt6d) + subroutine Ncrd_6d_R8(varrd_6d, ncid, varname, strt6d, cnt6d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt5d : vector specifying the index in varrd_5d where +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt5d : vector specifying the index in varrd_5d where !! the first of the data values will be read -!! cnt5d : varrd_5d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt6d(6) - integer , intent(in) :: cnt6d (6) +!! cnt5d : varrd_5d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt6d(6) + integer , intent(in) :: cnt6d (6) ! ! !OUTPUT PARAMETERS: -!! varrd_5d : array to fill - real*8 , intent(out) :: varrd_6d(cnt6d(1), cnt6d(2), & - cnt6d(3), cnt6d(4), & - cnt6d(5), cnt6d(6)) +!! varrd_5d : array to fill + real*8 , intent(out) :: varrd_6d(cnt6d(1), cnt6d(2), & + cnt6d(3), cnt6d(4), & + cnt6d(5), cnt6d(6)) ! ! !DESCRIPTION: Reads in a 5D netCDF real array and does some error checking. !\\ @@ -1290,33 +1222,32 @@ subroutine Ncrd_6d_R8 (varrd_6d, ncid, varname, strt6d, cnt6d) ! John Tannahill (LLNL) and Jules Kouatchou ! ! !REVISION HISTORY: -! 20 Dec 2011 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_6d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_6d_R8 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Double (ncid, varid, strt6d, cnt6d, varrd_6d) + ierr = NF90_Get_Var(ncid, varid, varrd_6d, start=strt6d, count=cnt6d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_6d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_6d_R8 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_6d_R8 + end subroutine Ncrd_6d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1327,32 +1258,29 @@ end subroutine Ncrd_6d_R8 ! ! !INTERFACE: ! - subroutine Ncrd_6d_R4 (varrd_6d, ncid, varname, strt6d, cnt6d) + subroutine Ncrd_6d_R4(varrd_6d, ncid, varname, strt6d, cnt6d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt5d : vector specifying the index in varrd_5d where -!! the first of the data values will be read -!! cnt5d : varrd_5d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt6d(6) - integer , intent(in) :: cnt6d (6) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt5d : vector specifying the index in varrd_5d where +!! the first of the data values will be read +!! cnt5d : varrd_5d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt6d(6) + integer , intent(in) :: cnt6d (6) ! ! !OUTPUT PARAMETERS: -!! varrd_5d : array to fill - real*4 , intent(out) :: varrd_6d(cnt6d(1), cnt6d(2), & - cnt6d(3), cnt6d(4), & - cnt6d(5), cnt6d(6)) +!! varrd_5d : array to fill + real*4 , intent(out) :: varrd_6d(cnt6d(1), cnt6d(2), & + cnt6d(3), cnt6d(4), & + cnt6d(5), cnt6d(6)) ! ! !DESCRIPTION: Reads in a 5D netCDF real array and does some error checking. !\\ @@ -1367,26 +1295,26 @@ subroutine Ncrd_6d_R4 (varrd_6d, ncid, varname, strt6d, cnt6d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_6d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if ( ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_6d_R4 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Real (ncid, varid, strt6d, cnt6d, varrd_6d) + ierr = NF90_Get_Var(ncid, varid, varrd_6d, start=strt6d, count=cnt6d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_6d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_6d_R4 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_6d_R4 + end subroutine Ncrd_6d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1397,30 +1325,27 @@ end subroutine Ncrd_6d_R4 ! ! !INTERFACE: ! - subroutine Ncrd_7d_R8 (varrd_7d, ncid, varname, strt7d, cnt7d) + subroutine Ncrd_7d_R8(varrd_7d, ncid, varname, strt7d, cnt7d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt7d : vector specifying the index in varrd_7d where -!! the first of the data values will be read -!! cnt7d : varrd_7d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt7d(7) - integer , intent(in) :: cnt7d (7) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt7d : vector specifying the index in varrd_7d where +!! the first of the data values will be read +!! cnt7d : varrd_7d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt7d(7) + integer , intent(in) :: cnt7d (7) ! ! !OUTPUT PARAMETERS: -!! varrd_5d : array to fill - real*8 , intent(out) :: varrd_7d(cnt7d(1), cnt7d(2), & +!! varrd_5d : array to fill + real*8 , intent(out) :: varrd_7d(cnt7d(1), cnt7d(2), & cnt7d(3), cnt7d(4), & cnt7d(5), cnt7d(6), & cnt7d(7)) @@ -1432,33 +1357,32 @@ subroutine Ncrd_7d_R8 (varrd_7d, ncid, varname, strt7d, cnt7d) ! John Tannahill (LLNL) and Jules Kouatchou ! ! !REVISION HISTORY: -! 20 Dec 2011 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_7d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_7d_R8 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Double (ncid, varid, strt7d, cnt7d, varrd_7d) + ierr = NF90_Get_Var(ncid, varid, varrd_7d, start=strt7d, count=cnt7d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_7d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_7d_R8 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_7d_R8 + end subroutine Ncrd_7d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1469,33 +1393,30 @@ end subroutine Ncrd_7d_R8 ! ! !INTERFACE: ! - subroutine Ncrd_7d_R4 (varrd_7d, ncid, varname, strt7d, cnt7d) + subroutine Ncrd_7d_R4(varrd_7d, ncid, varname, strt7d, cnt7d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt7d : vector specifying the index in varrd_7d where -!! the first of the data values will be read -!! cnt7d : varrd_7d dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt7d(7) - integer , intent(in) :: cnt7d (7) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt7d : vector specifying the index in varrd_7d where +!! the first of the data values will be read +!! cnt7d : varrd_7d dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt7d(7) + integer , intent(in) :: cnt7d (7) ! ! !OUTPUT PARAMETERS: -!! varrd_7d : array to fill - real*4 , intent(out) :: varrd_7d(cnt7d(1), cnt7d(2), & - cnt7d(3), cnt7d(4), & - cnt7d(5), cnt7d(6), & - cnt7d(7)) +!! varrd_7d : array to fill + real*4 , intent(out) :: varrd_7d(cnt7d(1), cnt7d(2), & + cnt7d(3), cnt7d(4), & + cnt7d(5), cnt7d(6), & + cnt7d(7)) ! ! !DESCRIPTION: Reads in a 7D netCDF real array and does some error checking. !\\ @@ -1504,33 +1425,32 @@ subroutine Ncrd_7d_R4 (varrd_7d, ncid, varname, strt7d, cnt7d) ! John Tannahill (LLNL) and Jules Kouatchou ! ! !REVISION HISTORY: -! 20 Dec 2011 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------- !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_7d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_7d_R4 #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Real (ncid, varid, strt7d, cnt7d, varrd_7d) + ierr = NF90_Get_Var(ncid, varid, varrd_7d, start=strt7d, count=cnt7d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_7d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_7d_R4 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_7d_R4 + end subroutine Ncrd_7d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1541,31 +1461,28 @@ end subroutine Ncrd_7d_R4 ! ! !INTERFACE: ! - subroutine Ncrd_1d_Char (varrd_1dc, ncid, varname, strt1d, cnt1d) + subroutine Ncrd_1d_Char(varrd_1dc, ncid, varname, strt1d, cnt1d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: ! -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt1d : vector specifying the index in varrd_1dc where -!! the first of the data values will be read -!! cnt1d : varrd_1dc dimension - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt1d(1) - integer , intent(in) :: cnt1d (1) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt1d : vector specifying the index in varrd_1dc where +!! the first of the data values will be read +!! cnt1d : varrd_1dc dimension + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt1d(1) + integer , intent(in) :: cnt1d (1) ! ! !OUTPUT PARAMETERS: -!! varrd_1dc : intger array to fill - character (len=1), intent(out) :: varrd_1dc(cnt1d(1)) +!! varrd_1dc : intger array to fill + character (len=1), intent(out) :: varrd_1dc(cnt1d(1)) ! ! !DESCRIPTION: Reads in a 1D netCDF character array and does some error ! checking. @@ -1580,26 +1497,26 @@ subroutine Ncrd_1d_Char (varrd_1dc, ncid, varname, strt1d, cnt1d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_1d_Char #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_1d_Char #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Text (ncid, varid, strt1d, cnt1d, varrd_1dc) + ierr = NF90_Get_Var(ncid, varid, varrd_1dc, start=strt1d, count=cnt1d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_1d_Char #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_1d_Char #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_1d_Char + end subroutine Ncrd_1d_Char !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1610,30 +1527,27 @@ end subroutine Ncrd_1d_Char ! ! !INTERFACE: ! - subroutine Ncrd_2d_Char (varrd_2dc, ncid, varname, strt2d, cnt2d) + subroutine Ncrd_2d_Char(varrd_2dc, ncid, varname, strt2d, cnt2d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to read array input data from -!! varname : netCDF variable name for array -!! strt2d : vector specifying the index in varrd_2dc where -!! the first of the data values will be read -!! cnt2d : varrd_2dc dimensions - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt2d(2) - integer , intent(in) :: cnt2d (2) +!! ncid : netCDF file id to read array input data from +!! varname : netCDF variable name for array +!! strt2d : vector specifying the index in varrd_2dc where +!! the first of the data values will be read +!! cnt2d : varrd_2dc dimensions + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt2d(2) + integer , intent(in) :: cnt2d (2) ! ! !OUTPUT PARAMETERS: -!! varrd_2dc : charcter array to fill - character , intent(out) :: varrd_2dc(cnt2d(1), cnt2d(2)) +!! varrd_2dc : charcter array to fill + character , intent(out) :: varrd_2dc(cnt2d(1), cnt2d(2)) ! ! !DESCRIPTION: Reads in a 2D netCDF character array and does some error ! checking. @@ -1649,26 +1563,25 @@ subroutine Ncrd_2d_Char (varrd_2dc, ncid, varname, strt2d, cnt2d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character (len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_2d_Char #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_2d_Char #1: ' // Trim (varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Get_Vara_Text (ncid, varid, strt2d, cnt2d, varrd_2dc) + ierr = NF90_Get_Var(ncid, varid, varrd_2dc, start=strt2d, count=cnt2d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncrd_2d_Char #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncrd_2d_Char #2: ' // NF90_Strerror(ierr) + call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncrd_2d_Char + end subroutine Ncrd_2d_Char !EOC end module m_netcdf_io_read - diff --git a/NcdfUtil/m_netcdf_io_readattr.F90 b/NcdfUtil/m_netcdf_io_readattr.F90 index ed96e8b7d..67c35dea8 100644 --- a/NcdfUtil/m_netcdf_io_readattr.F90 +++ b/NcdfUtil/m_netcdf_io_readattr.F90 @@ -10,19 +10,16 @@ MODULE m_netcdf_io_readattr ! ! !USES: - - USE m_do_err_out - +! IMPLICIT NONE PRIVATE - - INCLUDE "netcdf.inc" ! ! !PUBLIC MEMBER FUNCTIONS: ! PUBLIC :: NcGet_Var_Attributes INTERFACE NcGet_Var_Attributes MODULE PROCEDURE NcGet_Var_Attr_C + MODULE PROCEDURE NcGet_Var_Attr_C_nostop MODULE PROCEDURE NcGet_Var_Attr_I4 MODULE PROCEDURE NcGet_Var_Attr_R4 MODULE PROCEDURE NcGet_Var_Attr_R8 @@ -72,8 +69,7 @@ MODULE m_netcdf_io_readattr ! This file is based on code from NASA/GSFC, SIVO, Code 610.3 ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -93,6 +89,11 @@ MODULE m_netcdf_io_readattr ! SUBROUTINE NcGet_Var_Attr_C( fid, varName, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -110,8 +111,7 @@ SUBROUTINE NcGet_Var_Attr_C( fid, varName, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -119,26 +119,26 @@ SUBROUTINE NcGet_Var_Attr_C( fid, varName, attName, attValue ) ! !LOCAL VARIABLES: ! CHARACTER(LEN=512) :: errMsg - INTEGER :: status, vId + INTEGER :: status, vId, EC ! Zero return value attValue = '' ! Check if VARNAME is a valid variable - status = Nf_Inq_Varid ( fId, varName, vId ) + status = NF90_Inq_VarId( fId, varName, vId ) ! Exit w/ error message if VARNAME is not valid - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_C: ' // TRIM( varName ) // & - ', ' // Nf_Strerror( status ) - CALL Do_Err_Out ( errMsg, .TRUE., 1, fId, 0, 0, 0.0d0, 0.0d0) + ', ' // NF90_Strerror( status ) + CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) ENDIF ! Get the attribute - status = Nf_Get_Att_Text( fId, vId, attName, attValue ) + status = NF90_Get_Att( fId, vId, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_C: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -160,6 +160,11 @@ END SUBROUTINE NcGet_Var_Attr_C ! SUBROUTINE NcGet_Var_Attr_I4( fid, varName, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -177,8 +182,7 @@ SUBROUTINE NcGet_Var_Attr_I4( fid, varName, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -192,20 +196,20 @@ SUBROUTINE NcGet_Var_Attr_I4( fid, varName, attName, attValue ) attValue = 0 ! Check if VARNAME is a valid variable - status = Nf_Inq_Varid ( fId, varName, vId ) + status = NF90_Inq_VarId( fId, varName, vId ) ! Exit w/ error message if VARNAME is not valid - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_I4: ' // TRIM( varName ) // & - ', ' // Nf_Strerror( status ) + ', ' // NF90_Strerror( status ) CALL Do_Err_Out ( errMsg, .TRUE., 1, fId, 0, 0, 0.0d0, 0.0d0) ENDIF ! Get the attribute - status = Nf_Get_Att_Int( fId, vId, attName, attValue ) + status = NF90_Get_Att( fId, vId, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_I4: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -227,6 +231,11 @@ END SUBROUTINE NcGet_Var_Attr_I4 ! SUBROUTINE NcGet_Var_Attr_R4( fid, varName, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -244,8 +253,7 @@ SUBROUTINE NcGet_Var_Attr_R4( fid, varName, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -259,20 +267,20 @@ SUBROUTINE NcGet_Var_Attr_R4( fid, varName, attName, attValue ) attValue = 0e0 ! Check if VARNAME is a valid variable - status = Nf_Inq_Varid ( fId, varName, vId ) + status = NF90_Inq_VarId( fId, varName, vId ) ! Exit w/ error message if VARNAME is not valid - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_R4: ' // TRIM( varName ) // & - ', ' // Nf_Strerror( status ) + ', ' // NF90_Strerror( status ) CALL Do_Err_Out ( errMsg, .TRUE., 1, fId, 0, 0, 0.0d0, 0.0d0) ENDIF ! Get the attribute - status = Nf_Get_Att_Real( fId, vId, attName, attValue ) + status = NF90_Get_Att( fId, vId, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_R4: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -294,6 +302,11 @@ END SUBROUTINE NcGet_Var_Attr_R4 ! SUBROUTINE NcGet_Var_Attr_R8( fid, varName, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -311,8 +324,7 @@ SUBROUTINE NcGet_Var_Attr_R8( fid, varName, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -326,20 +338,20 @@ SUBROUTINE NcGet_Var_Attr_R8( fid, varName, attName, attValue ) attValue = 0d0 ! Check if VARNAME is a valid variable - status = Nf_Inq_Varid ( fId, varName, vId ) + status = NF90_Inq_VarId( fId, varName, vId ) ! Exit w/ error message if VARNAME is not valid - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_R8: ' // TRIM( varName ) // & - ', ' // Nf_Strerror( status ) + ', ' // NF90_Strerror( status ) CALL Do_Err_Out ( errMsg, .TRUE., 1, fId, 0, 0, 0.0d0, 0.0d0) ENDIF ! Get the attribute - status = Nf_Get_Att_Double( fId, vId, attName, attValue ) + status = NF90_Get_Att( fId, vId, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_R8: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -361,6 +373,11 @@ END SUBROUTINE NcGet_Var_Attr_R8 ! SUBROUTINE NcGet_Var_Attr_I4_arr( fid, varName, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -378,8 +395,7 @@ SUBROUTINE NcGet_Var_Attr_I4_arr( fid, varName, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -393,20 +409,20 @@ SUBROUTINE NcGet_Var_Attr_I4_arr( fid, varName, attName, attValue ) attValue = 0 ! Check if VARNAME is a valid variable - status = Nf_Inq_Varid ( fId, varName, vId ) + status = NF90_Inq_VarId( fId, varName, vId ) ! Exit w/ error message if VARNAME is not valid - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_I4_arr: ' // TRIM( varName ) // & - ', ' // Nf_Strerror( status ) + ', ' // NF90_Strerror( status ) CALL Do_Err_Out ( errMsg, .TRUE., 1, fId, 0, 0, 0.0d0, 0.0d0) ENDIF ! Get the attribute - status = Nf_Get_Att_Int( fId, vId, attName, attValue ) + status = NF90_Get_Att( fId, vId, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_I4_arr: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -428,6 +444,11 @@ END SUBROUTINE NcGet_Var_Attr_I4_arr ! SUBROUTINE NcGet_Var_Attr_R4_arr( fid, varName, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -445,8 +466,7 @@ SUBROUTINE NcGet_Var_Attr_R4_arr( fid, varName, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -460,20 +480,20 @@ SUBROUTINE NcGet_Var_Attr_R4_arr( fid, varName, attName, attValue ) attValue = 0e0 ! Check if VARNAME is a valid variable - status = Nf_Inq_Varid ( fId, varName, vId ) + status = NF90_Inq_VarId( fId, varName, vId ) ! Exit w/ error message if VARNAME is not valid - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_R4_arr: ' // TRIM( varName ) // & - ', ' // Nf_Strerror( status ) + ', ' // NF90_Strerror( status ) CALL Do_Err_Out ( errMsg, .TRUE., 1, fId, 0, 0, 0.0d0, 0.0d0) ENDIF ! Get the attribute - status = Nf_Get_Att_Real( fId, vId, attName, attValue ) + status = NF90_Get_Att( fId, vId, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_R4_arr: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -495,6 +515,11 @@ END SUBROUTINE NcGet_Var_Attr_R4_arr ! SUBROUTINE NcGet_Var_Attr_R8_arr( fid, varName, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -512,8 +537,7 @@ SUBROUTINE NcGet_Var_Attr_R8_arr( fid, varName, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -527,20 +551,20 @@ SUBROUTINE NcGet_Var_Attr_R8_arr( fid, varName, attName, attValue ) attValue = 0d0 ! Check if VARNAME is a valid variable - status = Nf_Inq_Varid ( fId, varName, vId ) + status = NF90_Inq_VarId( fId, varName, vId ) ! Exit w/ error message if VARNAME is not valid - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_R8_arr: ' // TRIM( varName ) // & - ', ' // Nf_Strerror( status ) + ', ' // NF90_Strerror( status ) CALL Do_Err_Out ( errMsg, .TRUE., 1, fId, 0, 0, 0.0d0, 0.0d0) ENDIF ! Get the attribute - status = Nf_Get_Att_Double( fId, vId, attName, attValue ) + status = NF90_Get_Att( fId, vId, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Var_Attr_R8_arr: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -562,6 +586,11 @@ END SUBROUTINE NcGet_Var_Attr_R8_arr ! SUBROUTINE NcGet_Glob_Attr_C( fid, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -578,8 +607,7 @@ SUBROUTINE NcGet_Glob_Attr_C( fid, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -593,10 +621,10 @@ SUBROUTINE NcGet_Glob_Attr_C( fid, attName, attValue ) attValue = '' ! Get the attribute - status = Nf_Get_Att_Text( fId, NF_GLOBAL, attName, attValue ) + status = NF90_Get_Att( fId, NF90_GLOBAL, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Glob_Attr_C: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -618,6 +646,11 @@ END SUBROUTINE NcGet_Glob_Attr_C ! SUBROUTINE NcGet_Glob_Attr_I4( fid, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -634,8 +667,7 @@ SUBROUTINE NcGet_Glob_Attr_I4( fid, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -649,10 +681,10 @@ SUBROUTINE NcGet_Glob_Attr_I4( fid, attName, attValue ) attValue = 0 ! Get the attribute - status = Nf_Get_Att_Int( fId, NF_GLOBAL, attName, attValue ) + status = NF90_Get_Att( fId, NF90_GLOBAL, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Glob_Attr_I4: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -674,6 +706,11 @@ END SUBROUTINE NcGet_Glob_Attr_I4 ! SUBROUTINE NcGet_Glob_Attr_R4( fid, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -690,8 +727,7 @@ SUBROUTINE NcGet_Glob_Attr_R4( fid, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -705,10 +741,10 @@ SUBROUTINE NcGet_Glob_Attr_R4( fid, attName, attValue ) attValue = 0e0 ! Get the attribute - status = Nf_Get_Att_Real( fId, NF_GLOBAL, attName, attValue ) + status = NF90_Get_Att( fId, NF90_GLOBAL, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Glob_Attr_R4: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -730,6 +766,11 @@ END SUBROUTINE NcGet_Glob_Attr_R4 ! SUBROUTINE NcGet_Glob_Attr_R8( fid, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -746,8 +787,7 @@ SUBROUTINE NcGet_Glob_Attr_R8( fid, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -761,10 +801,10 @@ SUBROUTINE NcGet_Glob_Attr_R8( fid, attName, attValue ) attValue = 0d0 ! Get the attribute - status = Nf_Get_Att_Double( fId, NF_GLOBAL, attName, attValue ) + status = NF90_Get_Att( fId, NF90_GLOBAL, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Glob_Attr_R8: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -786,6 +826,11 @@ END SUBROUTINE NcGet_Glob_Attr_R8 ! SUBROUTINE NcGet_Glob_Attr_I4_arr( fid, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -802,8 +847,7 @@ SUBROUTINE NcGet_Glob_Attr_I4_arr( fid, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -817,10 +861,10 @@ SUBROUTINE NcGet_Glob_Attr_I4_arr( fid, attName, attValue ) attValue = 0 ! Get the attribute - status = Nf_Get_Att_Int( fId, NF_GLOBAL, attName, attValue ) + status = NF90_Get_Att( fId, NF90_GLOBAL, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Glob_Attr_I4_arr: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -842,6 +886,11 @@ END SUBROUTINE NcGet_Glob_Attr_I4_arr ! SUBROUTINE NcGet_Glob_Attr_R4_arr( fid, attName, attValue ) ! +! !USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -858,8 +907,7 @@ SUBROUTINE NcGet_Glob_Attr_R4_arr( fid, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -873,10 +921,10 @@ SUBROUTINE NcGet_Glob_Attr_R4_arr( fid, attName, attValue ) attValue = 0e0 ! Get the attribute - status = Nf_Get_Att_Real( fId, NF_GLOBAL, attName, attValue ) + status = NF90_Get_Att( fId, NF90_GLOBAL, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Glob_Attr_R4_arr: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -898,6 +946,11 @@ END SUBROUTINE NcGet_Glob_Attr_R4_arr ! SUBROUTINE NcGet_Glob_Attr_R8_arr( fid, attName, attValue ) ! +! USES: +! + USE netCDF + USE m_do_err_out +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -914,8 +967,7 @@ SUBROUTINE NcGet_Glob_Attr_R8_arr( fid, attName, attValue ) ! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) ! ! !REVISION HISTORY: -! 25 Jan 2012 - R. Yantosca - Initial version -! See https://github.com/geoschem/ncdfutil for complete history +! See https://github.com/geoschem/geos-chem for complete history !EOP !------------------------------------------------------------------------------ !BOC @@ -929,10 +981,10 @@ SUBROUTINE NcGet_Glob_Attr_R8_arr( fid, attName, attValue ) attValue = 0d0 ! Get the attribute - status = Nf_Get_Att_Double( fId, NF_GLOBAL, attName, attValue ) + status = NF90_Get_Att( fId, NF90_GLOBAL, attName, attValue ) ! Exit w/ error message if unsuccessful - IF ( status /= NF_NOERR ) THEN + IF ( status /= NF90_NOERR ) THEN errMsg = 'In NcGet_Glob_Attr_R8_arr: cannot read attribute : ' // & TRIM( attName ) CALL Do_Err_Out( errMsg, .TRUE., 0, 0, 0, 0, 0.0d0, 0.0d0 ) @@ -940,4 +992,76 @@ SUBROUTINE NcGet_Glob_Attr_R8_arr( fid, attName, attValue ) END SUBROUTINE NcGet_Glob_Attr_R8_arr !EOC +!------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +!------------------------------------------------------------------------------ +!BOP +! +! !IROUTINE: NcGet_Var_Attr_C_nostop +! +! !DESCRIPTION: Returns a variable attribute of type CHARACTER. Similar +! to NcGet_Var_Attr_C, but does not stop upon error, Instead, a status +! flag is passed back to the calling routine. +!\\ +!\\ +! !INTERFACE: +! + SUBROUTINE NcGet_Var_Attr_C_nostop( fId, varName, attName, attValue, RC ) +! +! USES: +! + USE netCDF + USE m_do_err_out +! +! !INPUT PARAMETERS: +! + INTEGER, INTENT(IN) :: fId ! netCDF file ID + CHARACTER(LEN=*), INTENT(IN) :: varName ! netCDF variable name + CHARACTER(LEN=*), INTENT(IN) :: attName ! Name of variable attribute +! +! !OUTPUT PARAMETERS: +! + CHARACTER(LEN=*), INTENT(OUT) :: attValue ! Attribute value + INTEGER, INTENT(OUT) :: RC ! Success or failure? +! +! !DESCRIPTION: Reads a variable attribute (CHARACTER type) from a netCDF file. +!\\ +!\\ +! !AUTHOR: +! Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat) +! +! !REVISION HISTORY: +! See https://github.com/geoschem/geos-chem for complete history +!EOP +!------------------------------------------------------------------------------ +!BOC +! +! !LOCAL VARIABLES: +! + CHARACTER(LEN=512) :: errMsg + INTEGER :: status, vId + + ! Zero return value + attValue = '' + + ! Check if VARNAME is a valid variable + status = NF90_Inq_VarId( fId, varName, vId ) + + ! Exit w/ error message if VARNAME is not valid + IF ( status /= NF90_NOERR ) THEN + RC = status + RETURN + ENDIF + + ! Get the attribute + status = NF90_Get_Att( fId, vId, attName, attValue ) + + ! Exit w/ error message if unsuccessful + IF ( status /= NF90_NOERR ) THEN + RC = status + RETURN + ENDIF + + END SUBROUTINE NcGet_Var_Attr_C_nostop +!EOC END MODULE m_netcdf_io_readattr diff --git a/NcdfUtil/m_netcdf_io_write.F90 b/NcdfUtil/m_netcdf_io_write.F90 index 3f58cfde5..5c4cc2289 100644 --- a/NcdfUtil/m_netcdf_io_write.F90 +++ b/NcdfUtil/m_netcdf_io_write.F90 @@ -7,42 +7,41 @@ ! ! !INTERFACE: ! - module m_netcdf_io_write +MODULE m_netcdf_io_write ! - IMPLICIT NONE - PRIVATE + IMPLICIT NONE + PRIVATE ! ! !PUBLIC MEMBER FUNCTIONS: ! - ! Public interface - PUBLIC :: NcWr - - ! Private methods overloaded by public interface - ! (see below for info about these routines & the arguments they take) - INTERFACE NcWr - MODULE PROCEDURE Ncwr_Scal_R4 - MODULE PROCEDURE Ncwr_Scal_R8 - MODULE PROCEDURE Ncwr_Scal_Int - MODULE PROCEDURE Ncwr_1d_R8 - MODULE PROCEDURE Ncwr_1d_R4 - MODULE PROCEDURE Ncwr_1d_Int - MODULE PROCEDURE Ncwr_1d_Char - MODULE PROCEDURE Ncwr_2d_R8 - MODULE PROCEDURE Ncwr_2d_R4 - MODULE PROCEDURE Ncwr_2d_Int - MODULE PROCEDURE Ncwr_2d_Char - MODULE PROCEDURE Ncwr_3d_R8 - MODULE PROCEDURE Ncwr_3d_R4 - MODULE PROCEDURE Ncwr_3d_Int - MODULE PROCEDURE Ncwr_4d_R8 - MODULE PROCEDURE Ncwr_4d_R4 - MODULE PROCEDURE Ncwr_4d_Int - MODULE PROCEDURE Ncwr_5d_R8 - MODULE PROCEDURE Ncwr_5d_R4 - MODULE PROCEDURE Ncwr_6d_R8 - MODULE PROCEDURE Ncwr_6d_R4 - - END INTERFACE + ! Public interface + PUBLIC :: NcWr + + ! Private methods overloaded by public interface + ! (see below for info about these routines & the arguments they take) + INTERFACE NcWr + MODULE PROCEDURE Ncwr_Scal_R4 + MODULE PROCEDURE Ncwr_Scal_R8 + MODULE PROCEDURE Ncwr_Scal_Int + MODULE PROCEDURE Ncwr_1d_R8 + MODULE PROCEDURE Ncwr_1d_R4 + MODULE PROCEDURE Ncwr_1d_Int + MODULE PROCEDURE Ncwr_1d_Char + MODULE PROCEDURE Ncwr_2d_R8 + MODULE PROCEDURE Ncwr_2d_R4 + MODULE PROCEDURE Ncwr_2d_Int + MODULE PROCEDURE Ncwr_2d_Char + MODULE PROCEDURE Ncwr_3d_R8 + MODULE PROCEDURE Ncwr_3d_R4 + MODULE PROCEDURE Ncwr_3d_Int + MODULE PROCEDURE Ncwr_4d_R8 + MODULE PROCEDURE Ncwr_4d_R4 + MODULE PROCEDURE Ncwr_4d_Int + MODULE PROCEDURE Ncwr_5d_R8 + MODULE PROCEDURE Ncwr_5d_R4 + MODULE PROCEDURE Ncwr_6d_R8 + MODULE PROCEDURE Ncwr_6d_R4 + END INTERFACE NcWr ! ! !DESCRIPTION: Routines for writing variables in a netCDF file. !\\ @@ -69,24 +68,20 @@ module m_netcdf_io_write ! ! !INTERFACE: ! - subroutine Ncwr_Scal_R4(varwr_scal, ncid, varname) + subroutine NcWr_Scal_R4(varwr_scal, ncid, varname) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write variable to -!! varname : netCDF variable name -!! varwr_scal : variable to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - real*4 , intent(in) :: varwr_scal - +!! ncid : netCDF file id to write variable to +!! varname : netCDF variable name +!! varwr_scal : variable to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + real*4 , intent(in) :: varwr_scal ! ! !DESCRIPTION: Writes out a netCDF real scalar variable. !\\ @@ -101,52 +96,48 @@ subroutine Ncwr_Scal_R4(varwr_scal, ncid, varname) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_VarId(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_Scal_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_Scal_R4 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Var_Real (ncid, varid, varwr_scal) + ierr = Nf90_Put_Var(ncid, varid, varwr_scal) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_Scal+R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_Scal+R4 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_Scal_R4 -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ + end subroutine Ncwr_Scal_R4 + +!------------------------------------------------------------------------- !BOP ! ! !IROUTINE: Ncwr_Scal_R8 ! ! !INTERFACE: ! - subroutine Ncwr_Scal_R8 (varwr_scal, ncid, varname) + subroutine Ncwr_Scal_R8(varwr_scal, ncid, varname) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write variable to -!! varname : netCDF variable name -!! varwr_scal : variable to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - real*8 , intent(in) :: varwr_scal +!! ncid : netCDF file id to write variable to +!! varname : netCDF variable name +!! varwr_scal : variable to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + real*8 , intent(in) :: varwr_scal ! ! !DESCRIPTION: Writes out a netCDF real scalar variable. !\\ @@ -161,26 +152,26 @@ subroutine Ncwr_Scal_R8 (varwr_scal, ncid, varname) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_Scal_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_Scal_R8 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Var_Double(ncid, varid, varwr_scal) + ierr = NF90_Put_Var(ncid, varid, varwr_scal) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_Scal_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_Scal_R8 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_Scal_R8 + end subroutine Ncwr_Scal_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -191,23 +182,20 @@ end subroutine Ncwr_Scal_R8 ! ! !INTERFACE: ! - subroutine Ncwr_Scal_Int (varwr_scali, ncid, varname) + subroutine Ncwr_Scal_Int(varwr_scali, ncid, varname) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write variable to -!! varname : netCDF variable name -!! varwr_scali : integer variable to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: varwr_scali +!! ncid : netCDF file id to write variable to +!! varname : netCDF variable name +!! varwr_scali : integer variable to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: varwr_scali ! ! !DESCRIPTION: Writes out a netCDF integer scalar variable. !\\ @@ -222,58 +210,53 @@ subroutine Ncwr_Scal_Int (varwr_scali, ncid, varname) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_Scal_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_Scal_Int #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Var_Int (ncid, varid, varwr_scali) + ierr = NF90_Put_Var(ncid, varid, varwr_scali) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_Scal_Int #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_Scal_Int #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_Scal_Int + end subroutine Ncwr_Scal_Int !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ +!------------------------------------------------------------------------- !BOP ! ! !IROUTINE: Ncwr_1d_R8 ! ! !INTERFACE: ! - subroutine Ncwr_1d_R8 (varwr_1d, ncid, varname, strt1d, cnt1d) + subroutine Ncwr_1d_R8(varwr_1d, ncid, varname, strt1d, cnt1d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt1d : vector specifying the index in varwr_1d where -!! the first of the data values will be written -!! cnt1d : varwr_1d dimension -!! varwr_1d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt1d(1) - integer , intent(in) :: cnt1d (1) - real*8 , intent(in) :: varwr_1d(cnt1d(1)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt1d : vector specifying the index in varwr_1d where +!! the first of the data values will be written +!! cnt1d : varwr_1d dimension +!! varwr_1d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt1d(1) + integer , intent(in) :: cnt1d (1) + real*8 , intent(in) :: varwr_1d(cnt1d(1)) ! ! !DESCRIPTION: Writes out a 1D netCDF real array and does some error ! checking. @@ -289,26 +272,26 @@ subroutine Ncwr_1d_R8 (varwr_1d, ncid, varname, strt1d, cnt1d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_1d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_1d_R8 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Double (ncid, varid, strt1d, cnt1d, varwr_1d) + ierr = NF90_Put_Var(ncid, varid, varwr_1d, start=strt1d, count=cnt1d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_1d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_1d_R8 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_1d_R8 + end subroutine Ncwr_1d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -319,28 +302,25 @@ end subroutine Ncwr_1d_R8 ! ! !INTERFACE: ! - subroutine Ncwr_1d_R4 (varwr_1d, ncid, varname, strt1d, cnt1d) + subroutine Ncwr_1d_R4(varwr_1d, ncid, varname, strt1d, cnt1d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt1d : vector specifying the index in varwr_1d where -!! the first of the data values will be written -!! cnt1d : varwr_1d dimension -!! varwr_1d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt1d(1) - integer , intent(in) :: cnt1d (1) - real*4 , intent(in) :: varwr_1d(cnt1d(1)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt1d : vector specifying the index in varwr_1d where +!! the first of the data values will be written +!! cnt1d : varwr_1d dimension +!! varwr_1d : array to write out + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt1d(1) + integer , intent(in) :: cnt1d (1) + real*4 , intent(in) :: varwr_1d(cnt1d(1)) ! ! !DESCRIPTION: Writes out a 1D netCDF real array and does some error ! checking. @@ -356,26 +336,26 @@ subroutine Ncwr_1d_R4 (varwr_1d, ncid, varname, strt1d, cnt1d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_1d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_1d_R4 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Real (ncid, varid, strt1d, cnt1d, varwr_1d) + ierr = NF90_Put_Var(ncid, varid, varwr_1d, start=strt1d, count=cnt1d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_1d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_1d_R4 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_1d_R4 + end subroutine Ncwr_1d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -386,28 +366,25 @@ end subroutine Ncwr_1d_R4 ! ! !INTERFACE: ! - subroutine Ncwr_1d_Int (varwr_1di, ncid, varname, strt1d, cnt1d) + subroutine Ncwr_1d_Int(varwr_1di, ncid, varname, strt1d, cnt1d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt1d : vector specifying the index in varwr_1di where -!! the first of the data values will be written -!! cnt1d : varwr_1di dimension -!! varwr_1di : intger array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt1d(1) - integer , intent(in) :: cnt1d (1) - integer , intent(in) :: varwr_1di(cnt1d(1)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt1d : vector specifying the index in varwr_1di where +!! the first of the data values will be written +!! cnt1d : varwr_1di dimension +!! varwr_1di : intger array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt1d(1) + integer , intent(in) :: cnt1d (1) + integer , intent(in) :: varwr_1di(cnt1d(1)) ! ! !DESCRIPTION: Writes out a 1D netCDF integer array and does some error ! checking. @@ -423,26 +400,26 @@ subroutine Ncwr_1d_Int (varwr_1di, ncid, varname, strt1d, cnt1d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_1d_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_1d_Int #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Int (ncid, varid, strt1d, cnt1d, varwr_1di) + ierr = NF90_Put_Var(ncid, varid, varwr_1di, start=strt1d, count=cnt1d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_1d_Int #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_1d_Int #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_1d_Int + end subroutine Ncwr_1d_Int !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -453,28 +430,25 @@ end subroutine Ncwr_1d_Int ! ! !INTERFACE: ! - subroutine Ncwr_2d_R8 (varwr_2d, ncid, varname, strt2d, cnt2d) + subroutine Ncwr_2d_R8(varwr_2d, ncid, varname, strt2d, cnt2d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt2d : vector specifying the index in varwr_2d where -!! the first of the data values will be written -!! cnt2d : varwr_2d dimensions -!! varwr_2d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt2d(2) - integer , intent(in) :: cnt2d (2) - real*8 , intent(in) :: varwr_2d(cnt2d(1), cnt2d(2)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt2d : vector specifying the index in varwr_2d where +!! the first of the data values will be written +!! cnt2d : varwr_2d dimensions +!! varwr_2d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt2d(2) + integer , intent(in) :: cnt2d (2) + real*8 , intent(in) :: varwr_2d(cnt2d(1), cnt2d(2)) ! ! !DESCRIPTION: Writes out a 2D netCDF real array and does some error checking. !\\ @@ -489,58 +463,53 @@ subroutine Ncwr_2d_R8 (varwr_2d, ncid, varname, strt2d, cnt2d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid (ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_2d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_2d_R8 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Double (ncid, varid, strt2d, cnt2d, varwr_2d) + ierr = NF90_Put_Var(ncid, varid, varwr_2d, start=strt2d, count=cnt2d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_2d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_2d_R8 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_2d_R8 + end subroutine Ncwr_2d_R8 !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ +!------------------------------------------------------------------------- !BOP ! ! !IROUTINE: Ncwr_2d_R4 ! ! !INTERFACE: ! - subroutine Ncwr_2d_R4 (varwr_2d, ncid, varname, strt2d, cnt2d) + subroutine Ncwr_2d_R4(varwr_2d, ncid, varname, strt2d, cnt2d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt2d : vector specifying the index in varwr_2d where -!! the first of the data values will be written -!! cnt2d : varwr_2d dimensions -!! varwr_2d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt2d(2) - integer , intent(in) :: cnt2d (2) - real*4 , intent(in) :: varwr_2d(cnt2d(1), cnt2d(2)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt2d : vector specifying the index in varwr_2d where +!! the first of the data values will be written +!! cnt2d : varwr_2d dimensions +!! varwr_2d : array to write out + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt2d(2) + integer , intent(in) :: cnt2d (2) + real*4 , intent(in) :: varwr_2d(cnt2d(1), cnt2d(2)) ! ! !DESCRIPTION: Writes out a 2D netCDF real array and does some error checking. !\\ @@ -555,26 +524,26 @@ subroutine Ncwr_2d_R4 (varwr_2d, ncid, varname, strt2d, cnt2d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_2d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_2d_R4 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Real (ncid, varid, strt2d, cnt2d, varwr_2d) + ierr = NF90_Put_Var(ncid, varid, varwr_2d, start=strt2d, count=cnt2d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_2d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_2d_R4 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_2d_R4 + end subroutine Ncwr_2d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -585,28 +554,25 @@ end subroutine Ncwr_2d_R4 ! ! !INTERFACE: ! - subroutine Ncwr_2d_Int (varwr_2di, ncid, varname, strt2d, cnt2d) + subroutine Ncwr_2d_Int(varwr_2di, ncid, varname, strt2d, cnt2d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt2d : vector specifying the index in varwr_2di where -!! the first of the data values will be written -!! cnt2d : varwr_2di dimensions -!! varwr_2di : intger array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt2d(2) - integer , intent(in) :: cnt2d (2) - integer , intent(in) :: varwr_2di(cnt2d(1), cnt2d(2)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt2d : vector specifying the index in varwr_2di where +!! the first of the data values will be written +!! cnt2d : varwr_2di dimensions +!! varwr_2di : intger array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt2d(2) + integer , intent(in) :: cnt2d (2) + integer , intent(in) :: varwr_2di(cnt2d(1), cnt2d(2)) ! ! !DESCRIPTION: Writes out a 2D netCDF integer array and does some error ! checking. @@ -622,26 +588,26 @@ subroutine Ncwr_2d_Int (varwr_2di, ncid, varname, strt2d, cnt2d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_2d_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_2d_Int #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Int (ncid, varid, strt2d, cnt2d, varwr_2di) + ierr = NF90_Put_Var(ncid, varid, varwr_2di, start=strt2d, count=cnt2d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_2d_Int #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_2d_Int #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_2d_Int + end subroutine Ncwr_2d_Int !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -652,28 +618,25 @@ end subroutine Ncwr_2d_Int ! ! !INTERFACE: ! - subroutine Ncwr_3d_R8 (varwr_3d, ncid, varname, strt3d, cnt3d) + subroutine Ncwr_3d_R8(varwr_3d, ncid, varname, strt3d, cnt3d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt3d : vector specifying the index in varwr_3d where -!! the first of the data values will be written -!! cnt3d : varwr_3d dimensions -!! varwr_3d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt3d(3) - integer , intent(in) :: cnt3d (3) - real*8 , intent(in) :: varwr_3d(cnt3d(1), cnt3d(2), cnt3d(3)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt3d : vector specifying the index in varwr_3d where +!! the first of the data values will be written +!! cnt3d : varwr_3d dimensions +!! varwr_3d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt3d(3) + integer , intent(in) :: cnt3d (3) + real*8 , intent(in) :: varwr_3d(cnt3d(1), cnt3d(2), cnt3d(3)) ! ! !DESCRIPTION: Writes out a 3D netCDF real array and does some error checking. !\\ @@ -688,26 +651,26 @@ subroutine Ncwr_3d_R8 (varwr_3d, ncid, varname, strt3d, cnt3d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_3d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_3d_R8 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Double (ncid, varid, strt3d, cnt3d, varwr_3d) + ierr = NF90_Put_Var(ncid, varid, varwr_3d, start=strt3d, count=cnt3d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_3d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_3d_R8 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_3d_R8 + end subroutine Ncwr_3d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -718,28 +681,25 @@ end subroutine Ncwr_3d_R8 ! ! !INTERFACE: ! - subroutine Ncwr_3d_R4 (varwr_3d, ncid, varname, strt3d, cnt3d) + subroutine Ncwr_3d_R4(varwr_3d, ncid, varname, strt3d, cnt3d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt3d : vector specifying the index in varwr_3d where -!! the first of the data values will be written -!! cnt3d : varwr_3d dimensions -!! varwr_3d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt3d(3) - integer , intent(in) :: cnt3d (3) - real*4 , intent(in) :: varwr_3d(cnt3d(1), cnt3d(2), cnt3d(3)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt3d : vector specifying the index in varwr_3d where +!! the first of the data values will be written +!! cnt3d : varwr_3d dimensions +!! varwr_3d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt3d(3) + integer , intent(in) :: cnt3d (3) + real*4 , intent(in) :: varwr_3d(cnt3d(1), cnt3d(2), cnt3d(3)) ! ! !DESCRIPTION: Writes out a 3D netCDF real array and does some error checking. !\\ @@ -754,28 +714,26 @@ subroutine Ncwr_3d_R4 (varwr_3d, ncid, varname, strt3d, cnt3d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) - - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_3d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + ierr = NF90_Inq_Varid(ncid, varname, varid) - ierr = Nf_Put_Vara_Real (ncid, varid, strt3d, cnt3d, varwr_3d) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_3d_R4 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_3d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + ierr = NF90_Put_Var(ncid, varid, varwr_3d, start=strt3d, count=cnt3d) - return + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_3d_R4 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_3d_R4 + end subroutine Ncwr_3d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -786,28 +744,25 @@ end subroutine Ncwr_3d_R4 ! ! !INTERFACE: ! - subroutine Ncwr_3d_Int (varwr_3di, ncid, varname, strt3d, cnt3d) + subroutine Ncwr_3d_Int(varwr_3di, ncid, varname, strt3d, cnt3d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt3d : vector specifying the index in varwr_3di where -!! the first of the data values will be written -!! cnt3d : varwr_3di dimensions -!! varwr_3di : intger array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt3d(3) - integer , intent(in) :: cnt3d (3) - integer , intent(in) :: varwr_3di(cnt3d(1), cnt3d(2), cnt3d(3)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt3d : vector specifying the index in varwr_3di where +!! the first of the data values will be written +!! cnt3d : varwr_3di dimensions +!! varwr_3di : intger array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt3d(3) + integer , intent(in) :: cnt3d (3) + integer , intent(in) :: varwr_3di(cnt3d(1), cnt3d(2), cnt3d(3)) ! ! !DESCRIPTION: Writes out a 3D netCDF integer array and does some error ! checking. @@ -823,29 +778,26 @@ subroutine Ncwr_3d_Int (varwr_3di, ncid, varname, strt3d, cnt3d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_3d_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_3d_Int #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if + ierr = NF90_Put_Var(ncid, varid, varwr_3di, start=strt3d, count=cnt3d) - ierr = Nf_Put_Vara_Int (ncid, varid, strt3d, cnt3d, varwr_3di) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_3d_Int #2: ' // NF90_Strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_3d_Int #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if - - return - - end subroutine Ncwr_3d_Int + end subroutine Ncwr_3d_Int !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -856,29 +808,26 @@ end subroutine Ncwr_3d_Int ! ! !INTERFACE: ! - subroutine Ncwr_4d_R8 (varwr_4d, ncid, varname, strt4d, cnt4d) + subroutine Ncwr_4d_R8(varwr_4d, ncid, varname, strt4d, cnt4d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt4d : vector specifying the index in varwr_4d where -!! the first of the data values will be written -!! cnt4d : varwr_4d dimensions -!! varwr_4d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt4d(4) - integer , intent(in) :: cnt4d (4) - real*8 , intent(in) :: varwr_4d(cnt4d(1), cnt4d(2), & - cnt4d(3), cnt4d(4)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt4d : vector specifying the index in varwr_4d where +!! the first of the data values will be written +!! cnt4d : varwr_4d dimensions +!! varwr_4d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt4d(4) + integer , intent(in) :: cnt4d (4) + real*8 , intent(in) :: varwr_4d(cnt4d(1), cnt4d(2), & + cnt4d(3), cnt4d(4)) ! ! !DESCRIPTION: Writes out a 4D netCDF real array and does some error checking. !\\ @@ -893,27 +842,26 @@ subroutine Ncwr_4d_R8 (varwr_4d, ncid, varname, strt4d, cnt4d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) - - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_4d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + ierr = NF90_Inq_Varid(ncid, varname, varid) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_4d_R8 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Double (ncid, varid, strt4d, cnt4d, varwr_4d) + ierr = NF90_Put_Var(ncid, varid, varwr_4d, start=strt4d, count=cnt4d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_4d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_4d_R8 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_4d_R8 + end subroutine Ncwr_4d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -924,29 +872,26 @@ end subroutine Ncwr_4d_R8 ! ! !INTERFACE: ! - subroutine Ncwr_4d_R4 (varwr_4d, ncid, varname, strt4d, cnt4d) + subroutine Ncwr_4d_R4(varwr_4d, ncid, varname, strt4d, cnt4d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt4d : vector specifying the index in varwr_4d where -!! the first of the data values will be written -!! cnt4d : varwr_4d dimensions -!! varwr_4d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt4d(4) - integer , intent(in) :: cnt4d (4) - real*4 , intent(in) :: varwr_4d(cnt4d(1), cnt4d(2), & - cnt4d(3), cnt4d(4)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt4d : vector specifying the index in varwr_4d where +!! the first of the data values will be written +!! cnt4d : varwr_4d dimensions +!! varwr_4d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt4d(4) + integer , intent(in) :: cnt4d (4) + real*4 , intent(in) :: varwr_4d(cnt4d(1), cnt4d(2), & + cnt4d(3), cnt4d(4)) ! ! !DESCRIPTION: Writes out a 4D netCDF real array and does some error checking. !\\ @@ -961,60 +906,56 @@ subroutine Ncwr_4d_R4 (varwr_4d, ncid, varname, strt4d, cnt4d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) - - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_4d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + ierr = NF90_Inq_Varid(ncid, varname, varid) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_4d_R4 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Real (ncid, varid, strt4d, cnt4d, varwr_4d) + ierr = NF90_Put_Var(ncid, varid, varwr_4d, start=strt4d, count=cnt4d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_4d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_4d_R4 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_4d_R4 + end subroutine Ncwr_4d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: Ncwr_3d_Int +! !IROUTINE: Ncwr_4d_Int ! ! !INTERFACE: ! - subroutine Ncwr_4d_Int (varwr_4di, ncid, varname, strt4d, cnt4d) + subroutine Ncwr_4d_Int(varwr_4di, ncid, varname, strt4d, cnt4d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt3d : vector specifying the index in varwr_3di where -!! the first of the data values will be written -!! cnt3d : varwr_3di dimensions -!! varwr_3di : intger array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt4d(4) - integer , intent(in) :: cnt4d (4) - integer , intent(in) :: varwr_4di(cnt4d(1), cnt4d(2), & - cnt4d(3), cnt4d(4)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt3d : vector specifying the index in varwr_3di where +!! the first of the data values will be written +!! cnt3d : varwr_3di dimensions +!! varwr_3di : intger array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt4d(4) + integer , intent(in) :: cnt4d (4) + integer , intent(in) :: varwr_4di(cnt4d(1), cnt4d(2), & + cnt4d(3), cnt4d(4)) ! ! !DESCRIPTION: Writes out a 3D netCDF integer array and does some error ! checking. @@ -1030,27 +971,26 @@ subroutine Ncwr_4d_Int (varwr_4di, ncid, varname, strt4d, cnt4d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) - - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_4d_Int #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + ierr = NF90_Inq_Varid(ncid, varname, varid) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_4d_Int #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Int (ncid, varid, strt4d, cnt4d, varwr_4di) + ierr = NF90_Put_Var(ncid, varid, varwr_4di, start=strt4d, count=cnt4d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_4d_Int #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_4d_Int #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_4d_Int + end subroutine Ncwr_4d_Int !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1061,30 +1001,27 @@ end subroutine Ncwr_4d_Int ! ! !INTERFACE: ! - subroutine Ncwr_5d_R8 (varwr_5d, ncid, varname, strt5d, cnt5d) + subroutine Ncwr_5d_R8(varwr_5d, ncid, varname, strt5d, cnt5d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt5d : vector specifying the index in varwr_5d where -!! the first of the data values will be written -!! cnt5d : varwr_5d dimensions -!! varwr_5d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt5d(5) - integer , intent(in) :: cnt5d (5) - real*8 , intent(in) :: varwr_5d(cnt5d(1), cnt5d(2), & - cnt5d(3), cnt5d(4), & - cnt5d(5)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt5d : vector specifying the index in varwr_5d where +!! the first of the data values will be written +!! cnt5d : varwr_5d dimensions +!! varwr_5d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt5d(5) + integer , intent(in) :: cnt5d (5) + real*8 , intent(in) :: varwr_5d(cnt5d(1), cnt5d(2), & + cnt5d(3), cnt5d(4), & + cnt5d(5)) ! ! !DESCRIPTION: Writes out a 5D netCDF real array and does some error checking. !\\ @@ -1099,60 +1036,55 @@ subroutine Ncwr_5d_R8 (varwr_5d, ncid, varname, strt5d, cnt5d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_5d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_5d_R8 #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Double (ncid, varid, strt5d, cnt5d, varwr_5d) + ierr = NF90_Put_Var(ncid, varid, varwr_5d, start=strt5d, count=cnt5d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_5d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_5d_R8 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_5d_R8 + end subroutine Ncwr_5d_R8 !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ +!------------------------------------------------------------------------- !BOP ! ! !IROUTINE: Ncwr_5d_R4 ! ! !INTERFACE: ! - subroutine Ncwr_5d_R4 (varwr_5d, ncid, varname, strt5d, cnt5d) + subroutine Ncwr_5d_R4(varwr_5d, ncid, varname, strt5d, cnt5d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt5d : vector specifying the index in varwr_5d where -!! the first of the data values will be written -!! cnt5d : varwr_5d dimensions -!! varwr_5d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt5d(5) - integer , intent(in) :: cnt5d (5) - real*4 , intent(in) :: varwr_5d(cnt5d(1), cnt5d(2), & - cnt5d(3), cnt5d(4), & - cnt5d(5)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt5d : vector specifying the index in varwr_5d where +!! the first of the data values will be written +!! cnt5d : varwr_5d dimensions +!! varwr_5d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt5d(5) + integer , intent(in) :: cnt5d (5) + real*4 , intent(in) :: varwr_5d(cnt5d(1), cnt5d(2), & + cnt5d(3), cnt5d(4), & + cnt5d(5)) ! ! !DESCRIPTION: Writes out a 5D netCDF real array and does some error checking. !\\ @@ -1167,26 +1099,26 @@ subroutine Ncwr_5d_R4 (varwr_5d, ncid, varname, strt5d, cnt5d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid (ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_5d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_5d_R4 #1: ' // Trim(varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Real (ncid, varid, strt5d, cnt5d, varwr_5d) + ierr = NF90_Put_Var(ncid, varid, varwr_5d, start=strt5d, count=cnt5d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_5d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_5d_R4 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_5d_R4 + end subroutine Ncwr_5d_R4 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1197,30 +1129,27 @@ end subroutine Ncwr_5d_R4 ! ! !INTERFACE: ! - subroutine Ncwr_6d_R8 (varwr_6d, ncid, varname, strt6d, cnt6d) + subroutine Ncwr_6d_R8(varwr_6d, ncid, varname, strt6d, cnt6d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt6d : vector specifying the index in varwr_6d where -!! the first of the data values will be written -!! cnt6d : varwr_6d dimensions -!! varwr_6d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt6d(6) - integer , intent(in) :: cnt6d (6) - real*8 , intent(in) :: varwr_6d(cnt6d(1), cnt6d(2), & - cnt6d(3), cnt6d(4), & - cnt6d(5), cnt6d(6)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt6d : vector specifying the index in varwr_6d where +!! the first of the data values will be written +!! cnt6d : varwr_6d dimensions +!! varwr_6d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt6d(6) + integer , intent(in) :: cnt6d (6) + real*8 , intent(in) :: varwr_6d(cnt6d(1), cnt6d(2), & + cnt6d(3), cnt6d(4), & + cnt6d(5), cnt6d(6)) ! ! !DESCRIPTION: Writes out a 6D netCDF real array and does some error checking. !\\ @@ -1235,26 +1164,26 @@ subroutine Ncwr_6d_R8 (varwr_6d, ncid, varname, strt6d, cnt6d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_6d_R8 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_6d_R8 #1: ' // Trim(varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Double (ncid, varid, strt6d, cnt6d, varwr_6d) + ierr = NF90_Put_Var(ncid, varid, varwr_6d, start=strt6d, count=cnt6d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_6d_R8 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_6d_R8 #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_6d_R8 + end subroutine Ncwr_6d_R8 !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -1265,30 +1194,27 @@ end subroutine Ncwr_6d_R8 ! ! !INTERFACE: ! - subroutine Ncwr_6d_R4 (varwr_6d, ncid, varname, strt6d, cnt6d) + subroutine Ncwr_6d_R4(varwr_6d, ncid, varname, strt6d, cnt6d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt6d : vector specifying the index in varwr_6d where -!! the first of the data values will be written -!! cnt6d : varwr_6d dimensions -!! varwr_6d : array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt6d(6) - integer , intent(in) :: cnt6d (6) - real*4 , intent(in) :: varwr_6d(cnt6d(1), cnt6d(2), & - cnt6d(3), cnt6d(4), & - cnt6d(5), cnt6d(6)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt6d : vector specifying the index in varwr_6d where +!! the first of the data values will be written +!! cnt6d : varwr_6d dimensions +!! varwr_6d : array to write out + integer , intent(in) :: ncid + character(len=*), intent(in) :: varname + integer , intent(in) :: strt6d(6) + integer , intent(in) :: cnt6d (6) + real*4 , intent(in) :: varwr_6d(cnt6d(1), cnt6d(2), & + cnt6d(3), cnt6d(4), & + cnt6d(5), cnt6d(6)) ! ! !DESCRIPTION: Writes out a 6D netCDF real array and does some error checking. !\\ @@ -1303,58 +1229,53 @@ subroutine Ncwr_6d_R4 (varwr_6d, ncid, varname, strt6d, cnt6d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_6d_R4 #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_6d_R4 #1: ' // Trim(varname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Real (ncid, varid, strt6d, cnt6d, varwr_6d) + ierr = NF90_Put_Var(ncid, varid, varwr_6d, start=strt6d, count=cnt6d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_6d_R4 #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_6d_R4 #2: ' // NF90_Strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_6d_R4 + end subroutine Ncwr_6d_R4 !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ +!------------------------------------------------------------------------- !BOP ! ! !IROUTINE: Ncwr_1d_Char ! ! !INTERFACE: ! - subroutine Ncwr_1d_Char (varwr_1dc, ncid, varname, strt1d, cnt1d) + subroutine Ncwr_1d_Char(varwr_1dc, ncid, varname, strt1d, cnt1d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write array output data to -!! varname : netCDF variable name for array -!! strt1d : vector specifying the index in varwr_1dc where -!! the first of the data values will be written -!! cnt1d : varwr_1dc dimension -!! varwr_1dc : intger array to write out - integer , intent(in) :: ncid - character (len=*), intent(in) :: varname - integer , intent(in) :: strt1d(1) - integer , intent(in) :: cnt1d (1) - character (len=1), intent(in) :: varwr_1dc(cnt1d(1)) +!! ncid : netCDF file id to write array output data to +!! varname : netCDF variable name for array +!! strt1d : vector specifying the index in varwr_1dc where +!! the first of the data values will be written +!! cnt1d : varwr_1dc dimension +!! varwr_1dc : intger array to write out + integer , intent(in) :: ncid + character (len=*), intent(in) :: varname + integer , intent(in) :: strt1d(1) + integer , intent(in) :: cnt1d (1) + character (len=1), intent(in) :: varwr_1dc(cnt1d(1)) ! ! !DESCRIPTION: Writes out a 1D netCDF character array and does some error ! checking. @@ -1370,58 +1291,53 @@ subroutine Ncwr_1d_Char (varwr_1dc, ncid, varname, strt1d, cnt1d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: varid + character(len=512) :: err_msg + integer :: ierr + integer :: varid ! - ierr = Nf_Inq_Varid (ncid, varname, varid) + ierr = NF90_Inq_Varid(ncid, varname, varid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_1d_Char #1: ' // Trim (varname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_1d_Char #1: ' // Trim(varname) // & + ', ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if - ierr = Nf_Put_Vara_Text (ncid, varid, strt1d, cnt1d, varwr_1dc) + ierr = NF90_Put_Var(ncid, varid, varwr_1dc, start=strt1d, count=cnt1d) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_1d_Char #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_1d_Char #2: ' // NF90_strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, varid, 0, 0.0d0, 0.0d0) + end if - end subroutine Ncwr_1d_Char + end subroutine Ncwr_1d_Char !EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ +!------------------------------------------------------------------------- !BOP ! ! !IROUTINE: Ncwr_2d_Char ! ! !INTERFACE: ! - subroutine Ncwr_2d_Char (char_2d, ncid, tvarname, strt2d, cnt2d) + subroutine Ncwr_2d_Char(char_2d, ncid, tvarname, strt2d, cnt2d) ! ! !USES: ! - use m_do_err_out -! - implicit none -! - include "netcdf.inc" + use netCDF + use m_do_err_out ! ! !INPUT PARAMETERS: -!! ncid : netCDF file id to write text to -!! tvarname : netCDF variable name for text -!! strt2d : vector specifying the index in char_2d where -!! the first of the data values will be written -!! cnt2d : char_2d dimensions -!! char_2d : text to write - integer , intent(in) :: ncid - character (len=*), intent(in) :: tvarname - integer , intent(in) :: strt2d(2) - integer , intent(in) :: cnt2d (2) - character (len=1), intent(in) :: char_2d(cnt2d(1), cnt2d(2)) +!! ncid : netCDF file id to write text to +!! tvarname : netCDF variable name for text +!! strt2d : vector specifying the index in char_2d where +!! the first of the data values will be written +!! cnt2d : char_2d dimensions +!! char_2d : text to write + integer , intent(in) :: ncid + character(len=*), intent(in) :: tvarname + integer , intent(in) :: strt2d(2) + integer , intent(in) :: cnt2d (2) + character(len=1), intent(in) :: char_2d(cnt2d(1), cnt2d(2)) ! ! !DESCRIPTION: Writes out a 2D netCDF character array and does some error ! checking. @@ -1437,27 +1353,25 @@ subroutine Ncwr_2d_Char (char_2d, ncid, tvarname, strt2d, cnt2d) !BOC ! ! !LOCAL VARIABLES: - character (len=512) :: err_msg - integer :: ierr - integer :: tvarid + character(len=512) :: err_msg + integer :: ierr + integer :: tvarid ! - ierr = Nf_Inq_Varid (ncid, tvarname, tvarid) + ierr = NF90_Inq_Varid(ncid, tvarname, tvarid) - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_2d_Char #1: ' // Trim (tvarname) // & - ', ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) - end if + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_2d_Char #1: ' // Trim(tvarname) // & + ', ' // NF90_Strerror(ierr) + call Do_Err_Out(err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0) + end if + ierr = NF90_Put_Var(ncid, tvarid, char_2d, start=strt2d, count=cnt2d) - ierr = Nf_Put_Vara_Text (ncid, tvarid, strt2d, cnt2d, char_2d) + if (ierr /= NF90_NOERR) then + err_msg = 'In Ncwr_2d_Char #2: ' // NF90_Strerror(ierr) + call Do_Err_Out(err_msg, .true., 2, ncid, tvarid, 0, 0.0d0, 0.0d0) + end if - if (ierr /= NF_NOERR) then - err_msg = 'In Ncwr_2d_Char #2: ' // Nf_Strerror (ierr) - call Do_Err_Out (err_msg, .true., 2, ncid, tvarid, 0, 0.0d0, 0.0d0) - end if - - end subroutine Ncwr_2d_Char + end subroutine Ncwr_2d_Char !EOC end module m_netcdf_io_write - diff --git a/NcdfUtil/ncdf_mod.F90 b/NcdfUtil/ncdf_mod.F90 index 55b1e43ab..1e88541b6 100644 --- a/NcdfUtil/ncdf_mod.F90 +++ b/NcdfUtil/ncdf_mod.F90 @@ -15,20 +15,8 @@ MODULE NCDF_MOD ! ! !USES: ! - ! Modules for netCDF read - USE m_netcdf_io_open - USE m_netcdf_io_get_dimlen - USE m_netcdf_io_read - USE m_netcdf_io_readattr - USE m_netcdf_io_close - USE m_netcdf_io_create - USE m_netcdf_io_define - USE m_netcdf_io_write - USE m_netcdf_io_checks - IMPLICIT NONE PRIVATE -# include "netcdf.inc" ! ! !PUBLIC MEMBER FUNCTIONS: ! @@ -80,13 +68,11 @@ MODULE NCDF_MOD PRIVATE :: NC_GET_SIGMA_LEVELS_DP PRIVATE :: NC_GET_SIGMA_LEVELS_C PRIVATE :: NC_GET_SIG_FROM_HYBRID - PRIVATE :: NC_READ_VAR_CORE ! ! !REMARKS: ! This file is based on code from NASA/GSFC, SIVO, Code 610.3 ! ! !REVISION HISTORY: -! 27 Jul 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -148,6 +134,10 @@ MODULE NCDF_MOD ! SUBROUTINE NC_OPEN( FileName, fID ) ! +! !USES: +! + USE m_netcdf_io_open +! ! !INPUT PARAMETERS: ! CHARACTER(LEN=*), INTENT(IN) :: FileName @@ -157,7 +147,6 @@ SUBROUTINE NC_OPEN( FileName, fID ) INTEGER, INTENT(OUT) :: fID ! ! !REVISION HISTORY: -! 04 Nov 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -186,6 +175,11 @@ END SUBROUTINE NC_OPEN ! SUBROUTINE NC_APPEND( FileName, fID, nTime ) ! +! !USES: +! + USE m_netcdf_io_get_dimlen + USE m_netcdf_io_open +! ! !INPUT PARAMETERS: ! CHARACTER(LEN=*), INTENT(IN) :: FileName @@ -196,7 +190,6 @@ SUBROUTINE NC_APPEND( FileName, fID, nTime ) INTEGER, OPTIONAL :: nTime ! ! !REVISION HISTORY: -! 04 Nov 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -211,16 +204,12 @@ SUBROUTINE NC_APPEND( FileName, fID, nTime ) !================================================================= ! Open netCDF file - CALL Ncop_Wr( fId, TRIM(FileName) ) + CALL NcOp_Wr( fId, TRIM(FileName) ) ! Also return the number of time slices so that we can ! append to an existing file w/o clobbering any data IF ( PRESENT( nTime ) ) THEN - nTime = -1 - RC = Nf_Inq_DimId( fId, 'time', vId ) - IF ( RC == NF_NOERR ) THEN - RC = Nf_Inq_DimLen( fId, vId, nTime ) - ENDIF + CALL Ncget_Unlim_Dimlen( fId, nTime ) ENDIF END SUBROUTINE NC_APPEND @@ -239,12 +228,15 @@ END SUBROUTINE NC_APPEND ! SUBROUTINE NC_CLOSE( fID ) ! +! !USES: +! + USE m_netcdf_io_close +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN ) :: fID ! ! !REVISION HISTORY: -! 04 Nov 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -272,6 +264,10 @@ END SUBROUTINE NC_CLOSE ! SUBROUTINE Nc_Set_DefMode( fId, On, Off ) ! +! !USES: +! + USE m_netcdf_io_define +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! netCDF file ID @@ -283,7 +279,6 @@ SUBROUTINE Nc_Set_DefMode( fId, On, Off ) ! NcdfUtil module m_netcdf_define_mod.F90. ! ! !REVISION HISTORY: -! 06 Jan 2015 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -291,26 +286,31 @@ SUBROUTINE Nc_Set_DefMode( fId, On, Off ) ! If the ON switch is passed then ... IF ( PRESENT( On ) ) THEN + + ! Turn define mode on IF ( On ) THEN - CALL NcBegin_Def( fId ) ! Turn define mode on - RETURN - ELSE - CALL NcEnd_Def( fId ) ! Turn define mode off + CALL NcBegin_Def( fId ) RETURN ENDIF + + ! Else turn define mode off + CALL NcEnd_Def( fId ) + RETURN ENDIF ! If the OFF switch is passed then ,,, IF ( PRESENT( Off ) ) THEN + + ! Turn define mode off IF ( Off ) THEN - CALL NcEnd_Def( fId ) ! Turn define mode off - RETURN - ELSE - CALL NcBegin_Def( fId ) ! Turn define mode on + CALL NcEnd_Def( fId ) RETURN ENDIF - ENDIF + ! Else turn define mode on + CALL NcBegin_Def( fId ) + RETURN + ENDIF END SUBROUTINE Nc_Set_DefMode !EOC @@ -330,6 +330,13 @@ END SUBROUTINE Nc_Set_DefMode SUBROUTINE NC_READ_TIME( fID, nTime, timeUnit, & timeVec, timeCalendar, RC ) ! +! !USES: +! + USE m_netcdf_io_checks + USE m_netcdf_io_get_dimlen + USE m_netcdf_io_read + USE m_netcdf_io_readattr +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN ) :: fID @@ -346,7 +353,6 @@ SUBROUTINE NC_READ_TIME( fID, nTime, timeUnit, & INTEGER, INTENT(INOUT) :: RC ! ! !REVISION HISTORY: -! 04 Nov 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -377,19 +383,19 @@ SUBROUTINE NC_READ_TIME( fID, nTime, timeUnit, & v_name = "time" ! Check if dimension "time" exist - hasTime = Ncdoes_Dim_Exist ( fID, TRIM(v_name) ) + hasTime = Ncdoes_Dim_Exist( fID, TRIM(v_name) ) ! If time dim not found, also check for dimension "date" IF ( .NOT. hasTime ) THEN v_name = "date" - hasTime = Ncdoes_Dim_Exist ( fID, TRIM(v_name) ) + hasTime = Ncdoes_Dim_Exist( fID, TRIM(v_name) ) ENDIF ! Return here if no time variable defined IF ( .NOT. hasTime ) RETURN ! Get dimension length - CALL Ncget_Dimlen ( fID, TRIM(v_name), nTime ) + CALL Ncget_Dimlen( fID, TRIM(v_name), nTime ) ! Read time/date units attribute a_name = "units" @@ -410,7 +416,32 @@ SUBROUTINE NC_READ_TIME( fID, nTime, timeUnit, & ! Read calendar attribute IF ( PRESENT( timeCalendar ) ) THEN - CALL NcGet_Var_Attributes( fId, v_name, 'calendar', timeCalendar ) + + ! We now get the status variable RC. This will allow program + ! flow to continue if the "time:calendar" attribute is not found. + CALL NcGet_Var_Attributes( fId, v_name, 'calendar', timeCalendar, RC ) + + ! If "time:calendar" is found, then throw an error for + ! climatological calendars without leap years. + IF ( RC == 0 ) THEN + SELECT CASE( TRIM( v_name ) ) + CASE( '360_day', '365_day', '366_day', 'all_leap', & + 'allleap', 'no_leap', 'noleap' ) + WRITE( 6, '(/,a)' ) REPEAT( '=', 79 ) + WRITE( 6, '(a )' ) 'HEMCO does not support calendar type ' // & + TRIM( v_name ) + WRITE( 6, '(/,a)' ) 'HEMCO supports the following calendars:' + WRITE( 6, '(a)' ) ' - standard (i.e. mixed gregorian/julian)' + WRITE( 6, '(a)' ) ' - gregorian' + WRITE( 6, '(a,/)' ) REPEAT( '=', 79 ) + RC = -1 + CASE DEFAULT + ! Do nothing + END SELECT + ENDIF + + ! Reset RC so that we won't halt execution elsewhere + RC = 0 ENDIF END SUBROUTINE NC_READ_TIME @@ -430,6 +461,13 @@ END SUBROUTINE NC_READ_TIME ! SUBROUTINE NC_READ_VAR_SP( fID, Var, nVar, varUnit, varVec, RC ) ! +! !USES: +! + USE m_netcdf_io_checks + USE m_netcdf_io_get_dimlen + USE m_netcdf_io_read + USE m_netcdf_io_readattr +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN ) :: fID @@ -446,13 +484,68 @@ SUBROUTINE NC_READ_VAR_SP( fID, Var, nVar, varUnit, varVec, RC ) INTEGER, INTENT(INOUT) :: RC ! ! !REVISION HISTORY: -! 04 Nov 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ !BOC +! +! !LOCAL VARIABLES: +! + LOGICAL :: hasVar + CHARACTER(LEN=255) :: v_name ! netCDF variable name + CHARACTER(LEN=255) :: a_name ! netCDF attribute name + CHARACTER(LEN=255) :: a_val ! netCDF attribute value + INTEGER :: a_type ! netCDF attribute type + INTEGER :: st1d(1), ct1d(1) ! For 1D arrays + INTEGER :: I + + ! Init + RC = 0 + nVar = 0 + hasVar = .FALSE. - CALL NC_READ_VAR_CORE( fID, Var, nVar, varUnit, varVecSp=varVec, RC=RC ) + ! Variable name + v_name = var + + ! Check if variable exists + hasVar = Ncdoes_Dim_Exist( fID, TRIM(v_name) ) + + ! Return here if variable not defined + IF ( .NOT. hasVar ) RETURN + + ! Get dimension length + CALL Ncget_Dimlen( fID, TRIM(v_name), nVar ) + + ! Read vector from file. + IF ( ASSOCIATED( VarVec ) ) DEALLOCATE(VarVec) + ALLOCATE ( VarVec(nVar) ) + st1d = (/ 1 /) + ct1d = (/ nVar /) + CALL NcRd( VarVec, fID, TRIM(v_name), st1d, ct1d ) + + ! Read units attribute. If unit attribute does not exist, return + ! empty string (dimensionless vertical coordinates do not require + ! a units attribute). + a_name = "units" + hasVar = Ncdoes_Attr_Exist( fId, TRIM(v_name), TRIM(a_name), a_type ) + IF ( .NOT. hasVar ) THEN + varUnit = '' + ELSE + CALL NcGet_Var_Attributes( fID, TRIM(v_name), & + TRIM(a_name), varUnit ) + + ! Check if the last character of VarUnit is the ASCII null character + ! ("\0", ASCII value = 0), which is used to denote the end of a string. + ! The ASCII null character may be introduced if the netCDF file was + ! written using a language other than Fortran. The compiler might + ! interpret the null character as part of the string instead of as + ! an empty space. If the null space is there, then replace it with + ! a Fortran empty string value (''). (bmy, 7/17/18) + I = LEN_TRIM( VarUnit ) + IF ( ICHAR( VarUnit(I:I) ) == 0 ) THEN + VarUnit(I:I) = '' + ENDIF + ENDIF END SUBROUTINE NC_READ_VAR_SP !EOC @@ -471,46 +564,12 @@ END SUBROUTINE NC_READ_VAR_SP ! SUBROUTINE NC_READ_VAR_DP( fID, Var, nVar, varUnit, varVec, RC ) ! -! !INPUT PARAMETERS: -! - INTEGER, INTENT(IN ) :: fID - CHARACTER(LEN=*), INTENT(IN ) :: var -! -! !OUTPUT PARAMETERS: -! - INTEGER, INTENT( OUT) :: nVar - CHARACTER(LEN=*), INTENT( OUT) :: varUnit - REAL*8, POINTER :: varVec(:) -! -! !INPUT/OUTPUT PARAMETERS: -! - INTEGER, INTENT(INOUT) :: RC -! -! !REVISION HISTORY: -! 04 Nov 2012 - C. Keller - Initial version -! See https://github.com/geoschem/ncdfutil for complete history -!EOP -!------------------------------------------------------------------------------ -!BOC - - CALL NC_READ_VAR_CORE( fID, Var, nVar, varUnit, varVecDp=varVec, RC=RC ) - - END SUBROUTINE NC_READ_VAR_DP -!EOC -!------------------------------------------------------------------------------ -! GEOS-Chem Global Chemical Transport Model ! -!------------------------------------------------------------------------------ -!BOP -! -! !IROUTINE: Nc_Read_Var_Core -! -! !DESCRIPTION: Subroutine NC\_READ\_VAR\_CORE reads the given variable from the -! given fID and returns the corresponding variable values and units. -!\\ -!\\ -! !INTERFACE: +! !USES: ! - SUBROUTINE NC_READ_VAR_CORE( fID, Var, nVar, varUnit, varVecDp, varVecSp, RC ) + USE m_netcdf_io_checks + USE m_netcdf_io_get_dimlen + USE m_netcdf_io_read + USE m_netcdf_io_readattr ! ! !INPUT PARAMETERS: ! @@ -521,15 +580,13 @@ SUBROUTINE NC_READ_VAR_CORE( fID, Var, nVar, varUnit, varVecDp, varVecSp, RC ) ! INTEGER, INTENT( OUT) :: nVar CHARACTER(LEN=*), INTENT( OUT) :: varUnit - REAL*4, POINTER, OPTIONAL :: varVecSp(:) - REAL*8, POINTER, OPTIONAL :: varVecDp(:) + REAL*8, POINTER :: varVec(:) ! ! !INPUT/OUTPUT PARAMETERS: ! INTEGER, INTENT(INOUT) :: RC ! ! !REVISION HISTORY: -! 04 Nov 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -545,10 +602,6 @@ SUBROUTINE NC_READ_VAR_CORE( fID, Var, nVar, varUnit, varVecDp, varVecSp, RC ) INTEGER :: st1d(1), ct1d(1) ! For 1D arrays INTEGER :: I - !================================================================= - ! NC_READ_VAR_CORE begins here - !================================================================= - ! Init RC = 0 nVar = 0 @@ -558,35 +611,26 @@ SUBROUTINE NC_READ_VAR_CORE( fID, Var, nVar, varUnit, varVecDp, varVecSp, RC ) v_name = var ! Check if variable exists - hasVar = Ncdoes_Dim_Exist ( fID, TRIM(v_name) ) + hasVar = Ncdoes_Dim_Exist( fID, TRIM(v_name) ) ! Return here if variable not defined IF ( .NOT. hasVar ) RETURN ! Get dimension length - CALL Ncget_Dimlen ( fID, TRIM(v_name), nVar ) + CALL Ncget_Dimlen( fID, TRIM(v_name), nVar ) ! Read vector from file. - IF ( PRESENT(VarVecSp) ) THEN - IF ( ASSOCIATED( VarVecSp ) ) DEALLOCATE(VarVecSp) - ALLOCATE ( VarVecSp(nVar) ) - st1d = (/ 1 /) - ct1d = (/ nVar /) - CALL NcRd( VarVecSp, fID, TRIM(v_name), st1d, ct1d ) - ENDIF - IF ( PRESENT(VarVecDp) ) THEN - IF ( ASSOCIATED( VarVecDp ) ) DEALLOCATE(VarVecDp) - ALLOCATE ( VarVecDp(nVar) ) - st1d = (/ 1 /) - ct1d = (/ nVar /) - CALL NcRd( VarVecDp, fID, TRIM(v_name), st1d, ct1d ) - ENDIF + IF ( ASSOCIATED( VarVec ) ) DEALLOCATE( VarVec ) + ALLOCATE ( VarVec(nVar) ) + st1d = (/ 1 /) + ct1d = (/ nVar /) + CALL NcRd( VarVec, fID, TRIM(v_name), st1d, ct1d ) ! Read units attribute. If unit attribute does not exist, return ! empty string (dimensionless vertical coordinates do not require ! a units attribute). a_name = "units" - hasVar = Ncdoes_Attr_Exist ( fId, TRIM(v_name), TRIM(a_name), a_type ) + hasVar = Ncdoes_Attr_Exist( fId, TRIM(v_name), TRIM(a_name), a_type ) IF ( .NOT. hasVar ) THEN varUnit = '' ELSE @@ -606,7 +650,7 @@ SUBROUTINE NC_READ_VAR_CORE( fID, Var, nVar, varUnit, varVecDp, varVecSp, RC ) ENDIF ENDIF - END SUBROUTINE NC_READ_VAR_CORE + END SUBROUTINE NC_READ_VAR_DP !EOC !------------------------------------------------------------------------------ ! GEOS-Chem Global Chemical Transport Model ! @@ -651,7 +695,12 @@ SUBROUTINE NC_READ_ARR( fID, ncVar, lon1, lon2, lat1, & ! ! !USES: ! - USE CHARPAK_MOD, ONLY : TRANLC + USE CharPak_Mod, ONLY : TRANLC + USE m_netcdf_io_checks + USE m_netcdf_io_get_dimlen + USE m_netcdf_io_read + USE m_netcdf_io_readattr + USE netCDF ! ! !INPUT PARAMETERS: ! @@ -680,7 +729,6 @@ SUBROUTINE NC_READ_ARR( fID, ncVar, lon1, lon2, lat1, & INTEGER, INTENT(INOUT) :: RC ! ! !REVISION HISTORY: -! 27 Jul 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -1130,7 +1178,7 @@ SUBROUTINE NC_READ_ARR( fID, ncVar, lon1, lon2, lat1, & ! Check for scale factor a_name = "scale_factor" - ReadAtt = Ncdoes_Attr_Exist ( fId, TRIM(v_name), TRIM(a_name), a_type ) + ReadAtt = Ncdoes_Attr_Exist( fId, TRIM(v_name), TRIM(a_name), a_type ) IF ( ReadAtt ) THEN CALL NcGet_Var_Attributes(fId,TRIM(v_name),TRIM(a_name),corr) @@ -1139,7 +1187,7 @@ SUBROUTINE NC_READ_ARR( fID, ncVar, lon1, lon2, lat1, & ! Check for offset factor a_name = "add_offset" - ReadAtt = Ncdoes_Attr_Exist ( fId, TRIM(v_name), TRIM(a_name), a_type ) + ReadAtt = Ncdoes_Attr_Exist( fId, TRIM(v_name), TRIM(a_name), a_type ) IF ( ReadAtt ) THEN CALL NcGet_Var_Attributes(fId,TRIM(v_name),TRIM(a_name),corr) @@ -1160,14 +1208,14 @@ SUBROUTINE NC_READ_ARR( fID, ncVar, lon1, lon2, lat1, & ! 1: 'missing_value' a_name = "missing_value" - ReadAtt = Ncdoes_Attr_Exist ( fId, TRIM(v_name), TRIM(a_name), a_type ) + ReadAtt = Ncdoes_Attr_Exist( fId, TRIM(v_name), TRIM(a_name), a_type ) IF ( ReadAtt ) THEN - IF ( a_type == NF_REAL ) THEN + IF ( a_type == NF90_REAL ) THEN CALL NcGet_Var_Attributes( fId, TRIM(v_name), TRIM(a_name), miss4 ) WHERE ( ncArr == miss4 ) ncArr = MissValue END WHERE - ELSE IF ( a_type == NF_DOUBLE ) THEN + ELSE IF ( a_type == NF90_DOUBLE ) THEN CALL NcGet_Var_Attributes( fId, TRIM(v_name), TRIM(a_name), miss8 ) miss4 = REAL( miss8 ) WHERE ( ncArr == miss4 ) @@ -1178,14 +1226,14 @@ SUBROUTINE NC_READ_ARR( fID, ncVar, lon1, lon2, lat1, & ! 2: '_FillValue' a_name = "_FillValue" - ReadAtt = Ncdoes_Attr_Exist ( fId, TRIM(v_name), TRIM(a_name), a_type ) + ReadAtt = Ncdoes_Attr_Exist( fId, TRIM(v_name), TRIM(a_name), a_type ) IF ( ReadAtt ) THEN - IF ( a_type == NF_REAL ) THEN + IF ( a_type == NF90_REAL ) THEN CALL NcGet_Var_Attributes( fId, TRIM(v_name), TRIM(a_name), miss4 ) WHERE ( ncArr == miss4 ) ncArr = MissValue END WHERE - ELSE IF ( a_type == NF_DOUBLE ) THEN + ELSE IF ( a_type == NF90_DOUBLE ) THEN CALL NcGet_Var_Attributes( fId, TRIM(v_name), TRIM(a_name), miss8 ) miss4 = REAL( miss8 ) WHERE ( ncArr == miss4 ) @@ -1269,7 +1317,6 @@ SUBROUTINE NC_READ_TIME_YYYYMMDDhhmm( fID, nTime, & INTEGER, INTENT(INOUT) :: RC ! ! !REVISION HISTORY: -! 27 Jul 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -1278,7 +1325,7 @@ SUBROUTINE NC_READ_TIME_YYYYMMDDhhmm( fID, nTime, & ! !LOCAL VARIABLES: ! ! Scalars - CHARACTER(LEN=255) :: ncUnit + CHARACTER(LEN=255) :: ncUnit, cal INTEGER :: refYr, refMt, refDy, refHr, refMn, refSc INTEGER :: T, YYYYMMDD, hhmmss REAL*8 :: realrefDy, refJulday, tJulday @@ -1297,8 +1344,14 @@ SUBROUTINE NC_READ_TIME_YYYYMMDDhhmm( fID, nTime, & IF ( PRESENT(refYear ) ) refYear = 0 ! Read time vector - CALL NC_READ_TIME ( fID, nTime, ncUnit, timeVec=tVec, RC=RC ) - IF ( RC/=0 ) RETURN + CALL NC_READ_TIME ( fID, nTime, ncUnit, & + timeVec=tVec, timeCalendar=cal, RC=RC ) + IF ( RC/=0 ) THEN + WRITE( 6, '(/,a)' ) REPEAT( '=', 79 ) + WRITE( 6, '(a)' ) 'Error encountered in NC_READ_TIME (ncdf_mod.F90)' + WRITE( 6, '(a,/)' ) REPEAT( '=', 79 ) + RETURN + ENDIF ! If nTime is zero, return here! IF ( nTime == 0 ) RETURN @@ -1398,7 +1451,6 @@ SUBROUTINE NC_GET_REFDATETIME( tUnit, tYr, tMt, tDy, tHr, tMn, tSc, RC ) ! !REMARKS: ! ! !REVISION HISTORY: -! 18 Jan 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -1615,7 +1667,6 @@ SUBROUTINE GET_TIDX( TDIM, TIMEVEC, TTYPE, TOFFSET, & ! !REMARKS: ! ! !REVISION HISTORY: -! 04 Nov 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -1778,7 +1829,6 @@ SUBROUTINE TIMEUNIT_CHECK( TIMEUNIT, TIMETYPE, TOFFSET, FILENAME, RC ) ! !REMARKS: ! ! !REVISION HISTORY: -! 18 Jan 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -1964,7 +2014,6 @@ SUBROUTINE NC_GET_GRID_EDGES_SP( fID, AXIS, MID, NMID, EDGE, NEDGE, RC ) INTEGER, INTENT(INOUT) :: RC ! Return code ! ! !REVISION HISTORY: -! 16 Jul 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2014,7 +2063,6 @@ SUBROUTINE NC_GET_GRID_EDGES_DP( fID, AXIS, MID, NMID, EDGE, NEDGE, RC ) INTEGER, INTENT(INOUT) :: RC ! Return code ! ! !REVISION HISTORY: -! 16 Jul 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2063,7 +2111,6 @@ SUBROUTINE NC_GET_GRID_EDGES_C( fID, AXIS, NMID, NEDGE, RC, & INTEGER, INTENT(INOUT) :: RC ! Return code ! ! !REVISION HISTORY: -! 16 Jul 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2266,7 +2313,6 @@ SUBROUTINE NC_GET_SIGMA_LEVELS_SP( fID, ncFile, levName, lon1, lon2, lat1, & INTEGER, INTENT(INOUT) :: RC ! Return code ! ! !REVISION HISTORY: -! 03 Oct 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2313,7 +2359,6 @@ SUBROUTINE NC_GET_SIGMA_LEVELS_DP( fID, ncFile, levName, lon1, lon2, lat1, & INTEGER, INTENT(INOUT) :: RC ! Return code ! ! !REVISION HISTORY: -! 03 Oct 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2350,6 +2395,11 @@ SUBROUTINE NC_GET_SIGMA_LEVELS_C( fID, ncFile, levName, lon1, lon2, lat1, & lat2, lev1, lev2, time, dir, RC, & SigLev4, SigLev8 ) ! +! !USES: +! + USE m_netcdf_io_checks + USE m_netcdf_io_readattr +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN ) :: fID ! Ncdf File ID @@ -2371,7 +2421,6 @@ SUBROUTINE NC_GET_SIGMA_LEVELS_C( fID, ncFile, levName, lon1, lon2, lat1, & REAL*8, OPTIONAL, POINTER :: SigLev8(:,:,:) ! specified boundaries ! ! !REVISION HISTORY: -! 03 Oct 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2532,6 +2581,13 @@ SUBROUTINE NC_GET_SIG_FROM_HYBRID ( fID, levName, lon1, lon2, lat1, & lat2, lev1, lev2, time, dir, & RC, sigLev4, sigLev8 ) ! +! !USES: +! + USE m_netcdf_io_checks + USE m_netcdf_io_get_dimlen + USE m_netcdf_io_read + USE m_netcdf_io_readattr +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN ) :: fID ! Ncdf File ID @@ -2552,7 +2608,6 @@ SUBROUTINE NC_GET_SIG_FROM_HYBRID ( fID, levName, lon1, lon2, lat1, & INTEGER, INTENT(INOUT) :: RC ! Return code ! ! !REVISION HISTORY: -! 03 Oct 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2792,7 +2847,6 @@ SUBROUTINE GetVarFromFormula ( formula, inname, outname, RC ) INTEGER, INTENT(INOUT) :: RC ! Return code ! ! !REVISION HISTORY: -! 03 Oct 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2850,6 +2904,13 @@ SUBROUTINE NC_WRITE_3D( ncFile, I, J, T, N, lon, lat, & time, timeUnit, ncVars, ncUnits, & ncLongs, ncShorts, ncArrays ) ! +! !USES: +! + USE m_netcdf_io_close + USE m_netcdf_io_define + USE m_netcdf_io_write + USE netCDF +! ! !INPUT PARAMETERS: ! CHARACTER(LEN=*), INTENT(IN) :: ncFile ! file path+name @@ -2872,7 +2933,6 @@ SUBROUTINE NC_WRITE_3D( ncFile, I, J, T, N, lon, lat, & ! with subsequent hand-editing. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2921,6 +2981,14 @@ SUBROUTINE NC_WRITE_4D (ncFile, I, J, L, T, N, lon, lat, lev, & time, timeUnit, ncVars, ncUnits, & ncLongs, ncShorts, ncArrays ) ! +! !USES: +! + USE m_netcdf_io_create + USE m_netcdf_io_close + USE m_netcdf_io_define + USE m_netcdf_io_write + USE netCDF +! ! !INPUT PARAMETERS: ! CHARACTER(LEN=*), INTENT(IN) :: ncFile ! file path+name @@ -2945,7 +3013,6 @@ SUBROUTINE NC_WRITE_4D (ncFile, I, J, L, T, N, lon, lat, lev, & ! with subsequent hand-editing. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -2990,8 +3057,16 @@ END SUBROUTINE NC_WRITE_4D !\\ ! !INTERFACE: ! - SUBROUTINE NC_DEFINE ( ncFile, nLon, nLat, nLev, nTime,& - timeUnit, ncVars, ncUnits, ncLongs, ncShorts, fId ) + SUBROUTINE NC_DEFINE( ncFile, nLon, nLat, nLev, nTime, & + timeUnit, ncVars, ncUnits, ncLongs, ncShorts, fId ) +! +! !USES: +! + USE m_netcdf_io_close + USE m_netcdf_io_create + USE m_netcdf_io_define + USE m_netcdf_io_write + USE netCDF ! ! !INPUT PARAMETERS: ! @@ -3019,7 +3094,6 @@ SUBROUTINE NC_DEFINE ( ncFile, nLon, nLat, nLev, nTime,& ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -3062,7 +3136,7 @@ SUBROUTINE NC_DEFINE ( ncFile, nLon, nLat, nLev, nTime,& CALL NcCr_Wr( fId, TRIM(ncFile) ) ! Turn filling off - CALL NcSetFill( fId, NF_NOFILL, omode ) + CALL NcSetFill( fId, NF90_NOFILL, omode ) !-------------------------------- ! GLOBAL ATTRIBUTES @@ -3117,7 +3191,7 @@ SUBROUTINE NC_DEFINE ( ncFile, nLon, nLat, nLev, nTime,& ! Define the "lon" variable v_name = "lon" var1d = (/ id_lon /) - CALL NcDef_Variable( fId, TRIM(v_name), NF_FLOAT, 1, var1d, vId ) + CALL NcDef_Variable( fId, TRIM(v_name), NF90_FLOAT, 1, var1d, vId ) ! Define the "lon:long_name" attribute a_name = "long_name" @@ -3136,7 +3210,7 @@ SUBROUTINE NC_DEFINE ( ncFile, nLon, nLat, nLev, nTime,& ! Define the "lat" variable v_name = "lat" var1d = (/ id_lat /) - CALL NcDef_Variable( fId, TRIM(v_name), NF_FLOAT, 1, var1d, vId ) + CALL NcDef_Variable( fId, TRIM(v_name), NF90_FLOAT, 1, var1d, vId ) ! Define the "lat:long_name" attribute a_name = "long_name" @@ -3157,7 +3231,7 @@ SUBROUTINE NC_DEFINE ( ncFile, nLon, nLat, nLev, nTime,& ! Define the "levels" variable v_name = "lev" var1d = (/ id_lev /) - CALL NcDef_Variable( fId, TRIM(v_name), NF_INT, 1, var1d, vId ) + CALL NcDef_Variable( fId, TRIM(v_name), NF90_INT, 1, var1d, vId ) ! Define the "time:long_name" attribute a_name = "long_name" @@ -3177,7 +3251,7 @@ SUBROUTINE NC_DEFINE ( ncFile, nLon, nLat, nLev, nTime,& ! Define the "time" variable v_name = "time" var1d = (/ id_time /) - CALL NcDef_Variable( fId, TRIM(v_name), NF_INT, 1, var1d, vId ) + CALL NcDef_Variable( fId, TRIM(v_name), NF90_INT, 1, var1d, vId ) ! Define the "time:long_name" attribute a_name = "long_name" @@ -3198,10 +3272,10 @@ SUBROUTINE NC_DEFINE ( ncFile, nLon, nLat, nLev, nTime,& v_name = TRIM(ncVars(I)) IF ( PRESENT(nlev) ) THEN var4d = (/ id_lon, id_lat, id_lev, id_time /) - CALL NcDef_Variable(fId,TRIM(v_name),NF_DOUBLE,4,var4d,vId) + CALL NcDef_Variable(fId,TRIM(v_name),NF90_DOUBLE,4,var4d,vId) ELSE var3d = (/ id_lon, id_lat, id_time /) - CALL NcDef_Variable(fId,TRIM(v_name),NF_DOUBLE,3,var3d,vId) + CALL NcDef_Variable(fId,TRIM(v_name),NF90_DOUBLE,3,var3d,vId) ENDIF ! Define the long_name attribute @@ -3241,6 +3315,10 @@ END SUBROUTINE NC_DEFINE ! SUBROUTINE NC_WRITE_DIMS( fID, lon, lat, time, lev ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT/OUTPUT PARAMETERS: ! INTEGER, INTENT(INOUT) :: fId @@ -3261,7 +3339,6 @@ SUBROUTINE NC_WRITE_DIMS( fID, lon, lat, time, lev ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 30 Jan 2012 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -3326,6 +3403,10 @@ END SUBROUTINE NC_WRITE_DIMS ! SUBROUTINE NC_WRITE_DATA_3D ( fID, ncVar, Array ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT/OUTPUT PARAMETERS: ! INTEGER, INTENT(INOUT) :: fId @@ -3344,7 +3425,6 @@ SUBROUTINE NC_WRITE_DATA_3D ( fID, ncVar, Array ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 30 Jan 2012 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -3379,6 +3459,10 @@ END SUBROUTINE NC_WRITE_DATA_3D ! SUBROUTINE NC_WRITE_DATA_4D ( fID, ncVar, Array ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT/OUTPUT PARAMETERS: ! INTEGER, INTENT(INOUT) :: fId @@ -3397,7 +3481,6 @@ SUBROUTINE NC_WRITE_DATA_4D ( fID, ncVar, Array ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 30 Jan 2012 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -3442,6 +3525,12 @@ SUBROUTINE Nc_Create( NcFile, Title, nLon, & iLevId, StartTimeStamp, EndTimeStamp, & nBounds, boundsId ) ! +! !USES: +! + USE m_netcdf_io_create + USE m_netcdf_io_define + USE netCDF +! ! !INPUT PARAMETERS: ! ! Required arguments @@ -3487,7 +3576,6 @@ SUBROUTINE Nc_Create( NcFile, Title, nLon, & ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -3594,7 +3682,7 @@ SUBROUTINE Nc_Create( NcFile, Title, nLon, & CALL NcCr_Wr( fId, TRIM( ncFile ), Save_As_Nc4 ) ! Turn filling off - CALL NcSetFill( fId, NF_NOFILL, omode ) + CALL NcSetFill( fId, NF90_NOFILL, omode ) !======================================================================= ! Set global attributes @@ -3695,6 +3783,12 @@ SUBROUTINE NC_Var_Def( fId, lonId, latId, levId, & Positive, iLevId, nUpdates, boundsId, & bounds ) ! +! !USES: +! + USE m_netcdf_io_create + USE m_netcdf_io_define + USE netCDF +! ! !INPUT PARAMETERS: ! ! Required inputs @@ -3736,7 +3830,6 @@ SUBROUTINE NC_Var_Def( fId, lonId, latId, levId, & ! (2) The NcdfUtilities package (from Bob Yantosca) source code ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -3748,8 +3841,8 @@ SUBROUTINE NC_Var_Def( fId, lonId, latId, levId, & INTEGER, ALLOCATABLE :: VarDims(:) ! Scalars - INTEGER :: nDim, Pos - INTEGER :: NF_TYPE, tmpIlevId, tmpBoundsId + INTEGER :: nDim, Pos + INTEGER :: NF90_TYPE, tmpIlevId, tmpBoundsId LOGICAL :: isDefMode ! Strings @@ -3830,20 +3923,20 @@ SUBROUTINE NC_Var_Def( fId, lonId, latId, levId, & ! Set data type IF ( DataType == 1 ) THEN - NF_TYPE = NF_INT + NF90_TYPE = NF90_INT ELSEIF ( DataType == 4 ) THEN - NF_TYPE = NF_FLOAT + NF90_TYPE = NF90_FLOAT ELSEIF ( DataType == 8 ) THEN - NF_TYPE = NF_DOUBLE + NF90_TYPE = NF90_DOUBLE ELSE - NF_TYPE = NF_FLOAT + NF90_TYPE = NF90_FLOAT ENDIF !----------------------------------------------------------------------- ! Define variable !----------------------------------------------------------------------- - CALL NcDef_Variable( fId, TRIM(VarName), NF_TYPE, & - nDim, VarDims, VarCt, Compress ) + CALL NcDef_Variable( fId, TRIM(VarName), NF90_TYPE, & + nDim, VarDims, VarCt, Compress ) DEALLOCATE( VarDims ) !----------------------------------------------------------------------- @@ -3852,7 +3945,7 @@ SUBROUTINE NC_Var_Def( fId, lonId, latId, levId, & ! long_name (reuired) Att = 'long_name' - CALL NcDef_Var_Attributes( fId, VarCt, TRIM(Att), TRIM(VarLongName) ) + CALL NcDef_Var_Attributes( fId, VarCt, TRIM(Att), TRIM(VarLongName) ) ! units (requited) Att = 'units' @@ -3959,6 +4052,10 @@ END SUBROUTINE NC_Var_Def ! SUBROUTINE Nc_Var_Chunk( fId, vId, ChunkSizes, RC ) ! +! !USES: +! + USE netCDF +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! NetCDF file ID @@ -3976,7 +4073,6 @@ SUBROUTINE Nc_Var_Chunk( fId, vId, ChunkSizes, RC ) ! an error code of -111. ! ! !REVISION HISTORY: -! 28 Aug 2017 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -3988,7 +4084,7 @@ SUBROUTINE Nc_Var_Chunk( fId, vId, ChunkSizes, RC ) ! Turn on chunking for this variable ! But only if the netCDF library supports it - RC = NF_Def_Var_Chunking( fId, vId, NF_CHUNKED, ChunkSizes ) + RC = NF90_Def_Var_Chunking( fId, vId, NF90_CHUNKED, ChunkSizes ) #else @@ -4013,6 +4109,10 @@ END SUBROUTINE Nc_Var_Chunk ! SUBROUTINE NC_VAR_WRITE_R8_0D( fId, VarName, Var ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4028,7 +4128,6 @@ SUBROUTINE NC_VAR_WRITE_R8_0D( fId, VarName, Var ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 25 Aug 2017 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4059,6 +4158,10 @@ END SUBROUTINE NC_VAR_WRITE_R8_0d ! SUBROUTINE NC_VAR_WRITE_R8_1D( fId, VarName, Arr1D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4074,7 +4177,6 @@ SUBROUTINE NC_VAR_WRITE_R8_1D( fId, VarName, Arr1D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4112,6 +4214,10 @@ END SUBROUTINE NC_VAR_WRITE_R8_1D ! SUBROUTINE NC_VAR_WRITE_R8_2D( fId, VarName, Arr2D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4127,7 +4233,6 @@ SUBROUTINE NC_VAR_WRITE_R8_2D( fId, VarName, Arr2D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4171,6 +4276,10 @@ END SUBROUTINE NC_VAR_WRITE_R8_2D ! SUBROUTINE NC_VAR_WRITE_R8_3D( fId, VarName, Arr3D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4186,7 +4295,6 @@ SUBROUTINE NC_VAR_WRITE_R8_3D( fId, VarName, Arr3D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4230,6 +4338,10 @@ END SUBROUTINE NC_VAR_WRITE_R8_3D ! SUBROUTINE NC_VAR_WRITE_R8_4D( fId, VarName, Arr4D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4245,7 +4357,6 @@ SUBROUTINE NC_VAR_WRITE_R8_4D( fId, VarName, Arr4D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4289,6 +4400,10 @@ END SUBROUTINE NC_VAR_WRITE_R8_4D ! SUBROUTINE NC_VAR_WRITE_R4_0d( fId, VarName, Var ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4304,7 +4419,6 @@ SUBROUTINE NC_VAR_WRITE_R4_0d( fId, VarName, Var ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 25 Aug 2017 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4335,6 +4449,10 @@ END SUBROUTINE NC_VAR_WRITE_R4_0D ! SUBROUTINE NC_VAR_WRITE_R4_1D( fId, VarName, Arr1D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4350,7 +4468,6 @@ SUBROUTINE NC_VAR_WRITE_R4_1D( fId, VarName, Arr1D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4388,6 +4505,10 @@ END SUBROUTINE NC_VAR_WRITE_R4_1D ! SUBROUTINE NC_VAR_WRITE_R4_2D( fId, VarName, Arr2D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4403,7 +4524,6 @@ SUBROUTINE NC_VAR_WRITE_R4_2D( fId, VarName, Arr2D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4447,6 +4567,10 @@ END SUBROUTINE NC_VAR_WRITE_R4_2D ! SUBROUTINE NC_VAR_WRITE_R4_3D( fId, VarName, Arr3D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4462,7 +4586,6 @@ SUBROUTINE NC_VAR_WRITE_R4_3D( fId, VarName, Arr3D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4506,6 +4629,10 @@ END SUBROUTINE NC_VAR_WRITE_R4_3D ! SUBROUTINE NC_VAR_WRITE_R4_4D( fId, VarName, Arr4D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4521,7 +4648,6 @@ SUBROUTINE NC_VAR_WRITE_R4_4D( fId, VarName, Arr4D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4564,6 +4690,10 @@ END SUBROUTINE NC_VAR_WRITE_R4_4D ! SUBROUTINE NC_VAR_WRITE_INT_0d( fId, VarName, Var ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4579,7 +4709,6 @@ SUBROUTINE NC_VAR_WRITE_INT_0d( fId, VarName, Var ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 25 Aug 2017 - R. Yantosca - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4610,6 +4739,10 @@ END SUBROUTINE NC_VAR_WRITE_INT_0D ! SUBROUTINE NC_VAR_WRITE_INT_1D( fId, VarName, Arr1D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4625,7 +4758,6 @@ SUBROUTINE NC_VAR_WRITE_INT_1D( fId, VarName, Arr1D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4663,6 +4795,10 @@ END SUBROUTINE NC_VAR_WRITE_INT_1D ! SUBROUTINE NC_VAR_WRITE_INT_2D( fId, VarName, Arr2D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4678,7 +4814,6 @@ SUBROUTINE NC_VAR_WRITE_INT_2D( fId, VarName, Arr2D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4722,6 +4857,10 @@ END SUBROUTINE NC_VAR_WRITE_INT_2D ! SUBROUTINE NC_VAR_WRITE_INT_3D( fId, VarName, Arr3D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4737,7 +4876,6 @@ SUBROUTINE NC_VAR_WRITE_INT_3D( fId, VarName, Arr3D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4781,6 +4919,10 @@ END SUBROUTINE NC_VAR_WRITE_INT_3D ! SUBROUTINE NC_VAR_WRITE_INT_4D( fId, VarName, Arr4D ) ! +! !USES: +! + USE m_netcdf_io_write +! ! !INPUT PARAMETERS: ! INTEGER, INTENT(IN) :: fId ! file ID @@ -4796,7 +4938,6 @@ SUBROUTINE NC_VAR_WRITE_INT_4D( fId, VarName, Arr4D ) ! hand-editing may be required. ! ! !REVISION HISTORY: -! 15 Jun 2012 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -4930,6 +5071,7 @@ FUNCTION GET_TAU0( MONTH, DAY, YEAR, HOUR, MIN, SEC ) RESULT( THIS_TAU0 ) ( TMP_MIN / 60d0 ) + ( TMP_SEC / 3600d0 ) END FUNCTION GET_TAU0 +!EOC !------------------------------------------------------------------------------ ! NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group ! ! and NASA/GFSC, SIVO, Code 610.3 ! @@ -4949,7 +5091,8 @@ FUNCTION NC_IsModelLevel( fID, lev_name ) RESULT ( IsModelLevel ) ! ! !USES: ! -# include "netcdf.inc" + USE m_netcdf_io_checks + USE m_netcdf_io_readattr ! ! !INPUT PARAMETERS: ! @@ -4961,7 +5104,6 @@ FUNCTION NC_IsModelLevel( fID, lev_name ) RESULT ( IsModelLevel ) LOGICAL :: IsModelLevel ! ! !REVISION HISTORY: -! 12 Dec 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ @@ -5016,7 +5158,8 @@ FUNCTION NC_IsSigmaLevel( fID, lev_name ) RESULT ( IsSigmaLevel ) ! ! !USES: ! -# include "netcdf.inc" + USE m_netcdf_io_checks + USE m_netcdf_io_readattr ! ! !INPUT PARAMETERS: ! @@ -5028,7 +5171,6 @@ FUNCTION NC_IsSigmaLevel( fID, lev_name ) RESULT ( IsSigmaLevel ) LOGICAL :: IsSigmaLevel ! ! !REVISION HISTORY: -! 12 Dec 2014 - C. Keller - Initial version ! See https://github.com/geoschem/ncdfutil for complete history !EOP !------------------------------------------------------------------------------ diff --git a/NcdfUtil/perl/.gitignore b/NcdfUtil/perl/.gitignore deleted file mode 100644 index 595a31e4c..000000000 --- a/NcdfUtil/perl/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*.[oax] -*.mod -*.MOD -*~* -geos -geostomas -geosapm -*.nc -*.F \ No newline at end of file diff --git a/NcdfUtil/perl/StrTrim.pm b/NcdfUtil/perl/StrTrim.pm deleted file mode 100755 index 8c10bf7e2..000000000 --- a/NcdfUtil/perl/StrTrim.pm +++ /dev/null @@ -1,188 +0,0 @@ -#!/usr/bin/perl -w - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: StrTrim -# -# !DESCRIPTION: This Perl package contains routines for splitting a line -# into substrings and removing trailing and leading whitespace. Used by -# the ncCode* scripts. -#\\ -#\\ -# !INTERFACE: -# -package StrTrim; -# -# !USES: -# - require 5.003; # Need this version of Perl or newer - use English; # Use English language - use Carp; # Get detailed error messages - use strict; # Force explicit variable declarations (like IMPLICIT NONE) -# -# -# !PUBLIC MEMBER FUNCTIONS: -# &trim($) -# &splitLine($$) -# -# !CALLING SEQUENCE: -# use StrTrim qw( trim splitLine extractFile ); -# -# !REVISION HISTORY: -# 30 Jan 2012 - R. Yantosca - Initial version -# 26 Mar 2012 - R. Yantosca - Add function &extractFile -#EOP -#------------------------------------------------------------------------------ -#BOC -BEGIN { - - #========================================================================= - # The BEGIN method lists the names to export to the calling routine - #========================================================================= - use Exporter (); - use vars qw( $VERSION @ISA @EXPORT_OK ); - - $VERSION = 1.00; # version number - @ISA = qw( Exporter ); # export method - @EXPORT_OK = qw( &trim &splitLine &extractFile ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: trim -# -# !DESCRIPTION: Routine trim removes leading and trailing whitespace from -# a string (analogous to IDL's Strtrim( str, 2 ) command). -#\\ -#\\ -# !INTERFACE: -# -sub trim($) { -# -# !CALLING SEQUENCE: -# $string = &trim( $string ); -# -# !REMARKS: -# Found online at this URL: -# http://www.somacon.com/p114.php -# -# !REVISION HISTORY: -# 27 Jan 2012 - R. Yantosca - Initial version -#EOP -#------------------------------------------------------------------------------ -#BOC - - # Shift the @_ array - my $string = shift; - - # Remove leading whitespace - $string =~ s/^\s+//; - - # Remove trailing whitespace - $string =~ s/\s+$//; - - # Return - return( $string ); -} -#EOP -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: splitLine -# -# !DESCRIPTION: Routine splitLine splits a line on a given delimiter, and -# strips white space. Convenience wrapper for the Perl "split" function. -#\\ -#\\ -# !INTERFACE: -# -sub splitLine($$) { -# -# !INPUT PARAMETERS: -# - # Line to be split, and the delimeter character - # Don't strip the white from $value if $noSplitVal==1 - my( $line, $delim ) = @_; -# -# !CALLING SEQUENCE: -# ( $name, $value ) = &splitLine( $line ); -# -# !REVISION HISTORY: -# 27 Jan 2012 - R. Yantosca - Initial version -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - # Split the line - my @subStr = split( $delim, $line ); - my $name = &trim( $subStr[0] ); - my $value = &trim( $subStr[1] ); - - # Return substrings - return( $name, $value ); -} -#EOP -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: extractFile -# -# !DESCRIPTION: Routine extractFile splits a full Unix path name into a -# directory string and a file name. -#\\ -#\\ -# !INTERFACE: -# -sub extractFile($) { -# -# !INPUT PARAMETERS: -# - # Full Unix path name - my( $path ) = @_; -# -# !CALLING SEQUENCE: -# ( $file, $dir ) = &extractFile( $path ); -# -# !REVISION HISTORY: -# 26 Mar 2012 - R. Yantosca - Initial version -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - my $pos = -1; - my $lastPos = -1; - my $dir = ""; - my $file = ""; - - # Search for the last "/" character in the file path - # This is the place where to split the file & directory - while ( ( $pos = index( $path, '/', $pos ) ) > -1 ) { - $lastPos = $pos; - $pos++; - } - - # Directory part of the path - $dir = substr( $path, 0, $lastPos+1 ); - - # Filename part of the path - $file = substr( $path, $lastPos+1, length( $path ) - $lastPos ); - - # Return substrings - return( $file, $dir ); -} -#EOC -END {} diff --git a/NcdfUtil/perl/definitions_a1.rc b/NcdfUtil/perl/definitions_a1.rc deleted file mode 100644 index 823d2f3d4..000000000 --- a/NcdfUtil/perl/definitions_a1.rc +++ /dev/null @@ -1,264 +0,0 @@ -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: definitions_a1.rc -# -# !DESCRIPTION: Resource file that defines the GEOS-5.7.2 A1 filename, -# variables, and attributes for use with the ncCode* scripts. Also defines -# the names of the files where Fortran code will be written to. -#\\ -#\\ -# !REMARKS: -# This file has been customized to generate GEOS-Chem Fortran code that -# will read data from a GEOS-5.7.2 A1 met field file. -# -# !REVISION HISTORY: -# 27 Jan 2012 - R. Yantosca - Initial version -#------------------------------------------------------------------------------ - -### !FILENAME: -Fortran Read File = a1_read.F -netCDF FileHandle = fId -netCDF FileName = GEOS572.YYYYMMDD.A1.4x5.nc - - -### !DIMENSIONS: -lon = State_Grid%NX -lat = State_Grid%NY -time = 1 - - -### !VARIABLES: -lon = REAL*4::lon -lon:long_name = longitude -lon:units = degrees_east -#- -lat = REAL*4::lat -lat:long_name = latitude -lat:units = degrees_north -#- -time = INTEGER::time -time:long_name = time -time:units = minutes since YYYY-MM-DD 00:00:00.0 -time:delta_t = 0000-00-00 01:00:00 -time:begin_date = YYYYMMDD -time:begin_time = 000000 -time:time_increment = 010000 -#- -ALBEDO = REAL*4::lon,lat,time -ALBEDO:long_name = Surface albedo -ALBEDO:units = fraction -ALBEDO:gamap_category = GMAO-2D -#- -CLDTOT = REAL*4::lon,lat,time -CLDTOT:long_name = Total cloud fraction -CLDTOT:units = fraction -CLDTOT:gamap_category = GMAO-2D -#- -EFLUX = REAL*4::lon,lat,time -EFLUX:long_name = Latent heat flux positive upward -EFLUX:units = W m-2 -EFLUX:gamap_category = GMAO-2D -#- -EVAP = REAL*4::lon,lat,time -EVAP:long_name = Surface evaporation -EVAP:units = kg m-2 s-2 -EVAP:gamap_category = GMAO-2D -#- -FRSEAICE = REAL*4::lon,lat,time -FRSEAICE:long_name = Fraction of sea ice on surface -FRSEAICE:units = fraction -FRSEAICE:gamap_category = GMAO-2D -#- -FRSNO = REAL*4::lon,lat,time -FRSNO:long_name = Fractional snow-covered area -FRSNO:units = fraction -FRSNO:gamap_category = GMAO-2D -#- -GRN = REAL*4::lon,lat,time -GRN:long_name = Vegetation greenness fraction -GRN:units = fraction -GRN:gamap_category = GMAO-2D -#- -GWETROOT = REAL*4::lon,lat,time -GWETROOT:long_name = Root zone soil wetness -GWETROOT:units = fraction -GWETROOT:gamap_category = GMAO-2D -#- -GWETTOP = REAL*4::lon,lat,time -GWETTOP:long_name = Top soil wetness -GWETTOP:units = fraction -GWETTOP:gamap_category = GMAO-2D -#- -HFLUX = REAL*4::lon,lat,time -HFLUX:long_name = Sensible heat flux positive upward -HFLUX:units = W m-2 -HFLUX:gamap_category = GMAO-2D -#- -LAI = REAL*4::lon,lat,time -LAI:long_name = Leaf area index -LAI:units = m2 m-2 -LAI:gamap_category = GMAO-2D -#- -LWGNT = REAL*4::lon,lat,time -LWGNT:long_name = Net longwave flux at the ground -LWGNT:units = W m-2 -LWGNT:gamap_category = GMAO-2D -#- -LWTUP = REAL*4::lon,lat,time -LWTUP:long_name = Upward longwave flux at top of atmosphere TOA -LWTUP:units = W m-2 -LWTUP:gamap_category = GMAO-2D -#- -PARDF = REAL*4::lon,lat,time -PARDF:long_name = Surface downward PAR diffuse flux -PARDF:units = W m-2 -PARDF:gamap_category = GMAO-2D -#- -PARDR = REAL*4::lon,lat,time -PARDR:long_name = Surface downward PAR beam flux -PARDR:units = W m-2 -PARDR:gamap_category = GMAO-2D -#- -PBLH = REAL*4::lon,lat,time -PBLH:long_name = Planetary boundary layer height above surface -PBLH:units = m -PBLH:gamap_category = GMAO-2D -#- -PRECANV = REAL*4::lon,lat,time -PRECANV:long_name = Surface precipitation flux from anvils -PRECANV:units = kg m-2 s-1 -PRECANV:gamap_category = GMAO-2D -#- -PRECCON = REAL*4::lon,lat,time -PRECCON:long_name = Surface precipitation flux from convection -PRECCON:units = kg m-2 s-1 -PRECCON:gamap_category = GMAO-2D -#- -PRECLSC = REAL*4::lon,lat,time -PRECLSC:long_name = Surface precipitation flux from large-scale -PRECLSC:units = kg m-2 s-1 -PRECLSC:gamap_category = GMAO-2D -#- -PRECSNO = REAL*4::lon,lat,time -PRECSNO:long_name = Surface precipitation flux from snow -PRECSNO:units = kg m-2 s-1 -PRECSNO:gamap_category = GMAO-2D -#- -PRECTOT = REAL*4::lon,lat,time -PRECTOT:long_name = Total surface precipitation flux -PRECTOT:units = kg m-2 s-1 -PRECTOT:gamap_category = GMAO-2D -#- -QV2M = REAL*4::lon,lat,time -QV2M:long_name = Specific humidity at 2m above the displacement height -QV2M:units = kg kg-1 -QV2M:gamap_category = GMAO-2D -#- -SEAICE00 = REAL*4::lon,lat,time -SEAICE00:long_name = Fraction of grid box that has 0-10% sea ice coverage -SEAICE00:units = fraction -SEAICE00:gamap_category = GMAO-2D -#- -SEAICE10 = REAL*4::lon,lat,time -SEAICE10:long_name = Fraction of grid box that has 10-20% sea ice coverage -SEAICE10:units = fraction -SEAICE10:gamap_category = GMAO-2D -#- -SEAICE20 = REAL*4::lon,lat,time -SEAICE20:long_name = Fraction of grid box that has 20-30% sea ice coverage -SEAICE20:units = fraction -SEAICE20:gamap_category = GMAO-2D -#- -SEAICE30 = REAL*4::lon,lat,time -SEAICE30:long_name = Fraction of grid box that has 30-40% sea ice coverage -SEAICE30:units = fraction -SEAICE30:gamap_category = GMAO-2D -#- -SEAICE40 = REAL*4::lon,lat,time -SEAICE40:long_name = Fraction of grid box that has 40-50% sea ice coverage -SEAICE40:units = fraction -SEAICE40:gamap_category = GMAO-2D -#- -SEAICE50 = REAL*4::lon,lat,time -SEAICE50:long_name = Fraction of grid box that has 50-60% sea ice coverage -SEAICE50:units = fraction -SEAICE50:gamap_category = GMAO-2D -#- -SEAICE60 = REAL*4::lon,lat,time -SEAICE60:long_name = Fraction of grid box that has 60-70% sea ice coverage -SEAICE60:units = fraction -SEAICE60:gamap_category = GMAO-2D -#- -SEAICE70 = REAL*4::lon,lat,time -SEAICE70:long_name = Fraction of grid box that has 70-80% sea ice coverage -SEAICE70:units = fraction -SEAICE70:gamap_category = GMAO-2D -#- -SEAICE80 = REAL*4::lon,lat,time -SEAICE80:long_name = Fraction of grid box that has 80-90% sea ice coverage -SEAICE80:units = fraction -SEAICE80:gamap_category = GMAO-2D -#- -SEAICE90 = REAL*4::lon,lat,time -SEAICE90:long_name = Fraction of grid box that has 90-100% sea ice coverage -SEAICE90:units = fraction -SEAICE90:gamap_category = GMAO-2D -#- -SLP = REAL*4::lon,lat,time -SLP:long_name = Sea level pressure -SLP:units = hPa -SLP:gamap_category = GMAO-2D -#- -SNODP = REAL*4::lon,lat,time -SNODP:long_name = Snow depth -SNODP:units = m -SNODP:gamap_category = GMAO-2D -#- -SNOMAS = REAL*4::lon,lat,time -SNOMAS:long_name = Snow mass -SNOMAS:units = kg m-2 -#- -SWGDN = REAL*4::lon,lat,time -SWGDN:long_name = Surface incident shortwave flux -SWGDN:units = W m-2 -SWGDN:gamap_category = GMAO-2D -#- -TROPPT = REAL*4::lon,lat,time -TROPPT:long_name = Temperature-based tropopause pressure -TROPPT:units = hPa -TROPPT:gamap_category = GMAO-2D -#- -TS = REAL*4::lon,lat,time -TS:long_name = Surface skin temperature -TS:units = K -TS:gamap_category = GMAO-2D -#- -T2M = REAL*4::lon,lat,time -T2M:long_name = Temperature 2m above displacement height -T2M:units = K -T2M:gamap_category = GMAO-2D -#- -U10M = REAL*4::lon,lat,time -U10M:long_name = Eastward wind 10m above displacement height -U10M:units = m s-1 -U10M:gamap_category = GMAO-2D -#- -USTAR = REAL*4::lon,lat,time -USTAR:long_name = Friction velocity -USTAR:units = m s-1 -USTAR:gamap_category = GMAO-2D -#- -V10M = REAL*4::lon,lat,time -V10M:long_name = Northward wind 10m above displacement height -V10M:units = m s-1 -V10M:gamap_category = GMAO-2D -#- -Z0M = REAL*4::lon,lat,time -Z0M:long_name = Roughness length, momentum -Z0M:units = m -Z0M:gamap_category = GMAO-2D - -#EOP diff --git a/NcdfUtil/perl/definitions_a3cld.rc b/NcdfUtil/perl/definitions_a3cld.rc deleted file mode 100644 index 238e64926..000000000 --- a/NcdfUtil/perl/definitions_a3cld.rc +++ /dev/null @@ -1,83 +0,0 @@ -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: definitions_a3cld.rc -# -# !DESCRIPTION: Resource file that defines the GEOS-5.7.2 A3cld filename, -# variables, and attributes for use with the ncCode* scripts. Also defines -# the names of the files where Fortran code will be written to. -#\\ -#\\ -# !REMARKS: -# This file has been customized to generate GEOS-Chem Fortran code that -# will read data from a GEOS-5.7.2 A3cld met field file. -# -# !REVISION HISTORY: -# 01 Feb 2012 - R. Yantosca - Initial version -#------------------------------------------------------------------------------ - -### !FILENAME: -Fortran Read File = a3cld_read.F -netCDF FileHandle = fId -netCDF FileName = GEOS572.YYYYMMDD.A3cld.4x5.nc - - -### !DIMENSIONS: -lon = State_Grid%NZ -lat = State_Grid%NY -lev = State_Grid%NZ -time = 1 - -### !VARIABLES: -lon = REAL*4::lon -lon:long_name = longitude -lon:units = degrees_east -#- -lat = REAL*4::lat -lat:long_name = latitude -lat:units = degrees_north -#- -lev = REAL*4::lev -lev:long_name = levels -lev:units = unitless -#- -time = INTEGER::time -time:units = minutes since YYYY-MM-DD 00:00:00.0 -time:delta_t = 0000-00-00 03:00:00 -time:begin_date = YYYYMMDD -time:begin_time = 000000 -time:time_increment = 030000 -#- -CLOUD = REAL*4::lon,lat,lev,time -CLOUD:long_name = Total cloud fraction in grid box -CLOUD:units = unitless -CLOUD:gamap_category = GMAO-3D$ -#- -OPTDEPTH = REAL*4::lon,lat,lev,time -OPTDEPTH:long_name = Total in-cloud optical thickness (visible band) -OPTDEPTH:units = unitless -OPTDEPTH:gamap_category = GMAO-3D$ -#- -QI = REAL*4::lon,lat,lev,time -QI:long_name = Cloud ice water mixing ratio -QI:units = kg kg-1 -QI:gamap_category = GMAO-3D$ -#- -QL = REAL*4::lon,lat,lev,time -QL:long_name = Cloud liquid water mixing ratio -QL:units = kg kg-1 -QL:gamap_category = GMAO-3D$ -#- -TAUCLI = REAL*4::lon,lat,lev,time -TAUCLI:long_name = In-cloud ice optical thickness (visible band) -TAUCLI:units = unitless -TAUCLI:gamap_category = GMAO-3D$ -#- -TAUCLW = REAL*4::lon,lat,lev,time -TAUCLW:long_name = In-cloud water optical thickness (visible band) -TAUCLW:units = unitless -TAUCLW:gamap_category = GMAO-3D$ - -#EOP diff --git a/NcdfUtil/perl/definitions_a3dyn.rc b/NcdfUtil/perl/definitions_a3dyn.rc deleted file mode 100644 index 852737b8d..000000000 --- a/NcdfUtil/perl/definitions_a3dyn.rc +++ /dev/null @@ -1,85 +0,0 @@ -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: definitions_a3dyn.rc -# -# !DESCRIPTION: Resource file that defines the GEOS-5.7.2 A3dyn filename, -# variables, and attributes for use with the ncCode* scripts. Also defines -# the names of the files where Fortran code will be written to. -#\\ -#\\ -# !REMARKS: -# This file has been customized to generate GEOS-Chem Fortran code that -# will read data from a GEOS-5.7.2 A3dyn met field file. -# -# !REVISION HISTORY: -# 01 Feb 2012 - R. Yantosca - Initial version -#------------------------------------------------------------------------------ - -### !FILENAME: -Fortran Read File = a3dyn_read.F -netCDF FileHandle = fId -netCDF FileName = GEOS572.YYYYMMDD.A3dyn.4x5.nc - - -### !DIMENSIONS: -lon = State_Grid%NX -lat = State_Grid%NY -lev = State_Grid%NZ -ap = State_Grid%NZ+1 -time = 1 - - -### !VARIABLES: -lon = REAL*4::lon -lon:long_name = longitude -lon:units = degrees_east -#- -lat = REAL*4::lat -lat:long_name = latitude -lat:units = degrees_north -#- -lev = REAL*4::lev -lev:long_name = levels -lev:units = unitless -#- -time = INTEGER::time -time:units = minutes since YYYY-MM-DD 00:00:00.0 -time:delta_t = 0000-00-00 03:00:00 -time:begin_date = YYYYMMDD -time:begin_time = 000000 -time:time_increment = 030000 -#- -CMFMC = REAL*4::lon,lat,ap,time -CMFMC:long_name = Upward moist convective mass flux -CMFMC:units = kg m-2 s-2 -CMFMC:gamap_category = GMAO-3D$ -#- -DTRAIN = REAL*4::lon,lat,lev,time -DTRAIN:long_name = Detrainment cloud mass flux -DTRAIN:units = kg m-2 s-2 -DTRAIN:gamap_category = GMAO-3D$ -#- -OMEGA = REAL*4::lon,lat,lev,time -OMEGA:long_name = Vertical pressure velocity -OMEGA:units = Pa s-1 -OMEGA:gamap_category = GMAO-3D$ -#- -RH = REAL*4::lon,lat,lev,time -RH:long_name = Relative humidity -RH:units = fraction -RH:gamap_category = GMAO-3D$ -#- -U = REAL*4::lon,lat,lev,time -U:long_name = Eastward component of wind -U:units = m s-1 -U:gamap_category = GMAO-3D$ -#- -V = REAL*4::lon,lat,lev,time -V:long_name = Northward component of wind -V:units = m s-1 -V:gamap_category = GMAO-3D$ - -#EOP diff --git a/NcdfUtil/perl/definitions_a3mstc.rc b/NcdfUtil/perl/definitions_a3mstc.rc deleted file mode 100644 index ef314fa6e..000000000 --- a/NcdfUtil/perl/definitions_a3mstc.rc +++ /dev/null @@ -1,74 +0,0 @@ -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: definitions_a3mstc.rc -# -# !DESCRIPTION: Resource file that defines the GEOS-5.7.2 A3mstC filename, -# variables, and attributes for use with the ncCode* scripts. Also defines -# the names of the files where Fortran code will be written to. -#\\ -#\\ -# !REMARKS: -# This file has been customized to generate GEOS-Chem Fortran code that -# will read data from a GEOS-5.7.2 A3mstC met field file. -# -# !REVISION HISTORY: -# 01 Feb 2012 - R. Yantosca - Initial version -#------------------------------------------------------------------------------ - -### !FILENAME: -Fortran Read File = a3mstc_read.F -netCDF FileHandle = fId -netCDF FileName = GEOS572.YYYYMMDD.A3mstC.4x5.nc - - -### !DIMENSIONS: -lon = State_Grid%NX -lat = State_Grid%NY -lev = State_Grid%NZ -time = 1 - - -### !VARIABLES: -lon = REAL*4::lon -lon:long_name = longitude -lon:units = degrees_east -#- -lat = REAL*4::lat -lat:long_name = latitude -lat:units = degrees_north -#- -lev = REAL*4::lev -lev:long_name = levels -lev:units = unitless -#- -time = INTEGER::time -time:units = minutes since YYYY-MM-DD 00:00:00.0 -time:delta_t = 0000-00-00 03:00:00 -time:begin_date = YYYYMMDD -time:begin_time = 000000 -time:time_increment = 030000 -#- -DQRCU = REAL*4::lon,lat,lev,time -DQRCU:long_name = Precipitation production rate -- convective -DQRCU:units = kg kg-1 s-1 -DQRCU:gamap_category = GMAO-3D$ -#- -DQRLSAN = REAL*4::lon,lat,lev,time -DQRLSAN:long_name = Precipitation production rate -- large scale + anvil -DQRLSAN:units = kg kg-1 s-1 -DQRLSAN:gamap_category = GMAO-3D$ -#- -REEVAPCN = REAL*4::lon,lat,lev,time -REEVAPCN:long_name = Evaporation of precipitating convective condensate -REEVAPCN:units = kg kg-1 s-1 -REEVAPCN:gamap_category = GMAO-3D$ -#- -REEVAPLS = REAL*4::lon,lat,lev,time -REEVAPLS:long_name = Evaporation of precipitating large-scale & anvil condensate -REEVAPLS:units = kg kg-1 -REEVAPLS:gamap_category = GMAO-3D$ - -#EOP diff --git a/NcdfUtil/perl/definitions_a3mste.rc b/NcdfUtil/perl/definitions_a3mste.rc deleted file mode 100644 index 2e53b2adf..000000000 --- a/NcdfUtil/perl/definitions_a3mste.rc +++ /dev/null @@ -1,74 +0,0 @@ -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: definitions_a3mste.rc -# -# !DESCRIPTION: Resource file that defines the GEOS-5.7.2 A3mstE filename, -# variables, and attributes for use with the ncCode* scripts. Also defines -# the names of the files where Fortran code will be written to. -#\\ -#\\ -# !REMARKS: -# This file has been customized to generate GEOS-Chem Fortran code that -# will read data from a GEOS-5.7.2 A3mstE met field file. -# -# !REVISION HISTORY: -# 01 Feb 2012 - R. Yantosca - Initial version -#------------------------------------------------------------------------------ - -### !FILENAME: -Fortran Read File = a3mste_read.F -netCDF FileHandle = fId -netCDF FileName = GEOS572.YYYYMMDD.A3mstE.4x5.nc - - -### !DIMENSIONS: -lon = State_Grid%NZ -lat = State_Grid%NY -lev = State_Grid%NZ+1 -time = 1 - - -### !VARIABLES: -lon = REAL*4::lon -lon:long_name = longitude -lon:units = degrees_east -#- -lat = REAL*4::lat -lat:long_name = latitude -lat:units = degrees_north -#- -lev = REAL*4::lev -lev:long_name = levels -lev:units = unitless -#- -time = INTEGER::time -time:units = minutes since YYYY-MM-DD 00:00:00.0 -time:delta_t = 0000-00-00 03:00:00 -time:begin_date = YYYYMMDD -time:begin_time = 000000 -time:time_increment = 030000 -#- -PFICU = REAL*4::lon,lat,lev.time -PFICU:long_name = Downward flux of ice precipitation (convective) -PFICU:units = kg m-2 s-1 -PFICU:gamap_category = GMAO-3D$ -#- -PFILSAN = REAL*4::lon,lat,lev.time -PFILSAN:long_name = Downward flux of ice precipitation (large scale + anvil) -PFILSAN:units = kg m-2 s-1 -PFILSAN:gamap_category = GMAO-3D$ -#- -PFLCU = REAL*4::lon,lat,lev.time -PFLCU:long_name = Downward flux of liquid precipitation (convective) -PFLCU:units = kg m-2 s-1 -PFLCU:gamap_category = GMAO-3D$ -#- -PFLLSAN = REAL*4::lon,lat,lev.time -PFLLSAN:long_name = Downward flux of liquid precipitation (large scale + anvil) -PFLLSAN:units = kg m-2 s-1 -PFLLSAN:gamap_category = GMAO-3D$ - -#EOP diff --git a/NcdfUtil/perl/definitions_cn.rc b/NcdfUtil/perl/definitions_cn.rc deleted file mode 100644 index 526dcc325..000000000 --- a/NcdfUtil/perl/definitions_cn.rc +++ /dev/null @@ -1,79 +0,0 @@ -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: definitions_cn.rc -# -# !DESCRIPTION: Resource file that defines the GEOS-5.7.2 CN filename, -# variables, and attributes for use with the ncCode* scripts. Also defines -# the names of the files where Fortran code will be written to. -#\\ -#\\ -# !REMARKS: -# This file has been customized to generate GEOS-Chem Fortran code that -# will read data from a GEOS-5.7.2 CN met field file. -# -# !REVISION HISTORY: -# 01 Feb 2012 - R. Yantosca - Initial version -#------------------------------------------------------------------------------ - -### !FILENAME: -Fortran Read File = cn_read.F -netCDF FileHandle = fId -netCDF FileName = GEOS572.YYYYMMDD.CN.4x5.nc - - -### !DIMENSIONS: -lon = State_Grid%NX -lat = State_Grid%NY -time = 1 - - -### !VARIABLES: -lon = REAL*4::lon -lon:long_name = longitude -lon:units = degrees_east -#- -lat = REAL*4::lat -lat:long_name = latitude -lat:units = degrees_north -#- -lev = REAL*4::lev -lev:long_name = levels -lev:units = unitless -#- -time = INTEGER::time -time:long_name = time -time:units = minutes since 2011-01-01 00:00:00.0 -time:delta_t = 0000-00-00 00:00:00 -time:begin_date = 20110101 -time:begin_time = 000000 -time:time_increment = 000000 -#- -FRLAKE = REAL*4::lon,lat,time -FRLAKE:long_name = Fraction of lake type in grid box -FRLAKE:units = fraction -FRLAKE:gamap_category = GMAO-2D -#- -FRLAND = REAL*4::lon,lat,time -FRLAND:long_name = Fraction of land in grid box -FRLAND:units = fraction -FRLAND:gamap_category = GMAO-2D -#- -FRLANDIC = REAL*4::lon,lat,time -FRLANDIC:long_name = Fraction of land ice in grid box -FRLANDIC:units = fraction -FRLANDIC:gamap_category = GMAO-2D -#- -FROCEAN = REAL*4::lon,lat,time -FROCEAN:long_name = Fraction of ocean in grid box -FROCEAN:units = fraction -FROCEAN:gamap_category = GMAO-2D -#- -PHIS = REAL*4::lon,lat,time -PHIS:long_name = Surface geopotential -PHIS:units = m -PHIS:gamap_category = GMAO-2D - -#EOP diff --git a/NcdfUtil/perl/definitions_i3.rc b/NcdfUtil/perl/definitions_i3.rc deleted file mode 100644 index 558217d64..000000000 --- a/NcdfUtil/perl/definitions_i3.rc +++ /dev/null @@ -1,75 +0,0 @@ -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: definitions_i3.rc -# -# !DESCRIPTION: Resource file that defines the GEOS-5.7.2 I3 filename, -# variables, and attributes for use with the ncCode* scripts. Also defines -# the names of the files where Fortran code will be written to. -#\\ -#\\ -# !REMARKS: -# This file has been customized to generate GEOS-Chem Fortran code that -# will read data from a GEOS-5.7.2 I3 met field file. -# -# !REVISION HISTORY: -# 01 Feb 2012 - R. Yantosca - Initial version -#------------------------------------------------------------------------------ - -### !FILENAME: -Fortran Read File = i3_read.F -netCDF FileHandle = fId -netCDF FileName = GEOS572.YYYYMMDD.I3.4x5.nc - - -### !DIMENSIONS: -lon = State_Grid%NX -lat = State_Grid%NY -lev = State_Grid%NZ -time = 1 - - -### !VARIABLES: -lon = REAL*4::lon -lon:long_name = longitude -lon:units = degrees_east -#- -lat = REAL*4::lat -lat:long_name = latitude -lat:units = degrees_north -#- -lev = REAL*4::lev -lev:long_name = levels -lev:units = unitless -#- -time = INTEGER::time -time:long_name = time -time:units = minutes since YYYY-MM-DD 00:00:00.0 -time:delta_t = 0000-00-00 03:00:00 -time:begin_date = YYYYMMDD -time:begin_time = 000000 -time:time_increment = 030000 -#- -PS = REAL*4::lon,lat,time -PS:long_name = Surface pressure -PS:units = hPa -PS:gamap_category = GMAO-2D -#- -PV = REAL*4::lon,lat,lev,time -PV:long_name = Ertel potential vorticity -PV:units = K m-2 kg-1 s-1 -PV:gamap_category = GMAO-3D$ - -QV = REAL*4::lon,lat,lev,time -QV:long_name = Specific humidity -QV:units = kg kg-1 -QV:gamap_category = GMAO-3D$ -#- -T = REAL*4::lon,lat,lev,time -T:long_name = Temperature -T:units = K -T:gamap_category = GMAO-3D$ - -#EOP diff --git a/NcdfUtil/perl/isCoards b/NcdfUtil/perl/isCoards deleted file mode 100755 index a13817de8..000000000 --- a/NcdfUtil/perl/isCoards +++ /dev/null @@ -1,1437 +0,0 @@ -#!/usr/bin/perl -w - -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: isCoards -# -# !DESCRIPTION: Scans output of "ncdump" to determine if a netCDF file -# adheres to the COARDS conventions. -#\\ -#\\ -# !USES: -# - require 5.003; # Need this version of Perl or newer - use English; # Use English language - use Carp; # Get detailed error messages - use strict; # Explicitly declare all variables -# -# !PUBLIC DATA MEMBERS: -# - # Scalars - our $zFound = 0; - - # Strings - our $conventions = ""; - our $format = ""; - our $history = ""; - our $inputFile = ""; - our $latitudes = ""; - our $levels = ""; - our $iLevels = ""; - our $longitudes = ""; - our $references = ""; - our $sep = '->'; - our $times = ""; - our $title = ""; - - # Arrays - our @dims = (); - our @vars = (); - our @GOOD = (); - our @BAD = (); - our @OPT = (); - - # Hashes - our %add_offset = (); - our %axis = (); - our %calendar = (); - our %FillValue = (); - our %longName = (); - our %missing_value = (); - our %numDims = (); - our %positive = (); - our %scale_factor = (); - our %units = (); - our %varDims = (); -# -# !PUBLIC MEMBER FUNCTIONS: -# &main() : Driver function -# -# !PRIVATE MEMBER FUNCTIONS: -# &isMonotonic($) : Checks index variables for monotonicity -# &isFirstValueZero($): Checks if the first time point is zero (GCHP req) -# &analyzeTime($) : Checks the "time" variable for COARDS compliance -# &analyzeLev($) : Checks the "lev" variable for COARDS compliance -# &analyzeLat($) : Checks the "lat" variable for COARDS compliance -# &analyzeLon($) : Checks the "lon" variable for COARDS compliance -# &analyzeVar($) : Checks each netCDF" variable for COARDS compliance -# &analyzeGlobAtts() : Checks netCDF global attributes for COARDS compliance -# &analyzeResults() : Calls the &analyze* routines and prints results -# &parseFile($) : Calls ncdump and parses the output into Perl variables -# -# !REMARKS: -# (1) Assumes a version of "ncdump" is installed on your system. -# (2) isCoards may have some limitations. We have written this primarily -# to check COARDS compliance for netCDF files that will be read -# by the HEMCO emissions component (part of GEOS-Chem). -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: isMonotonic -# -# !DESCRIPTION: Checks a list of values to make sure that it is monotonically -# increasing. If it is monotonically increasing, it will return a value -# of 0 (success). If not, it will return a value of -1 (failure). -#\\ -#\\ -# !INTERFACE: -# -sub isMonotonic($) { -# -# !INPUT PARAMETERS: -# - # Comma-separated list of values - my ( $list ) = @_; -# -# !RETURN VALUE: -# - # String to indicate return status - my $result = ""; -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - # Scalars - my $diff = 0; - my $direction = 0; - - # Arrays - my @result = split( /,/, $list ); - - # If there is only one value, then return with success - if ( scalar( @result ) == 1 ) { return( "is a single value" ); } - - # Get the direction of the list, as determined by the 1st 2 elements. - $diff = $result[1] - $result[0]; - if ( $diff > 0 ) { $direction = 1; } - elsif ( $diff == 0 ) { $direction = 0; } - else { $direction = -1; } - - # If the direction is zero then this means we have repeat values - if ( $direction == 0 ) { return( "has repeat values" ); } - - # Loop thru the rest of the array - for ( my $i = 1; $i < scalar( @result ); $i++ ) { - - # Take the difference of this element w/r/t the last element - $diff = $result[$i] - $result[$i-1]; - - # Make sure that the difference is going in the same direction - # as the rest of the index array. If not, then exit with failure. - if ( !( $diff>0 == $direction>0 ) ) { return( "is not monotonic" ); } - } - - # If we have gotten this far, then the list of values is either - # monotonically increasing or decreasing. Return with success. - if ( $direction == 1 ) { return( "is monotonically increasing" ); } - else { return( "is monotonically decreasing" ); } -} -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: isFirstValueZero -# -# !DESCRIPTION: Checks to see if the first value in a list is zero -#\\ -#\\ -# !INTERFACE: -# -sub isFirstValueZero($) { -# -# !INPUT PARAMETERS: -# - # Comma-separated list of values - my ( $list ) = @_; -# -# !RETURN VALUE: -# - # String to indicate return status - my $result = ""; -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - # Arrays - my @result = split( /,/, $list ); - - # Test the first value - if ( $result[0] == "0" ) { return "[0] = 0 (this is required for GCHP)" } - else { return "[0] != 0 (this is required for GCHP)" } -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: analyzeTime -# -# !DESCRIPTION: Checks the attributes of the time variable to see if -# they adhere to the COARDS standard. -#\\ -#\\ -# !INTERFACE: -# -sub analyzeTime($) { -# -# !INPUT PARAMETERS: -# - # Variable name (from ncdump output) - my ( $var ) = @_; -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - # Scalars - my $exists = 0; - - # Strings - my $msg = ""; - my $value = ""; - - # %%%%% Ensure variable is declared w/ the dimension of the same name - if ( $varDims{$var} =~ "$var" ) { - $msg = qq/$sep $var($varDims{$var})\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var needs to be declared with dimension "time\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check if times are monotonic - $value = &isMonotonic( $times ); - if ( $value eq "has repeat values" || $value eq "is not monotonic" ) { - $msg = qq/$sep $var $value\n/; - @BAD = ( @BAD, $msg ); - } else { - $msg = qq/$sep $var $value\n/; - @GOOD = ( @GOOD, $msg ); - } - - # %%%%% Make sure the first time is zero (this is a GCHP req) - $value = &isFirstValueZero( $times ); - if ( $value =~ "!= 0" ) { - $msg = qq/$sep $var$value\n/; - @BAD = ( @BAD, $msg ); - } else { - $msg = qq/$sep $var$value\n/; - @GOOD = ( @GOOD, $msg ); - } - - # %%%%% Check the axis attribute (optional) - $value = $axis{$var}; - if ( defined( $value ) && $value =~ m/[Tt]/ ) { - $msg = qq/$sep $var:axis =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Consider adding $var:axis = "T"\n/; - @OPT = ( @OPT, $msg ); - } - - # %%%%% Check the calendar attribute - $value = $calendar{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/gregorian/ || - $value =~ m/standard/ || - $value =~ m/noleap/ ) { - $msg = qq/$sep $var:calendar =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:calendar should be either "gregorian", "noleap", or "standard"\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:calendar is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check the long_name attribute - $value = $longName{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/[Tt][Ii][Mm][Ee]/ ) { - $msg = qq/$sep $var:long_name =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:long_name (or time:standard_name) should be "Time"\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:long_name (or time:standard_name) is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check the units attribute - $value = $units{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/days since/ || - $value =~ m/hours since/ || - $value =~ m/minutes since/ || - $value =~ m/seconds since/ ) { - $msg = qq/$sep $var:units =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/"$sep $var:units" should be "{days,hours,minutes,seconds} since" a reference date\/time"\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/"$sep $var:units" is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # Return w/ error code - return( $? ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: analyzeLev -# -# !DESCRIPTION: Checks the attributes of the lev variable to see if -# they adhere to the COARDS standard. -#\\ -#\\ -# !INTERFACE: -# -sub analyzeILev($) { -# -# !INPUT PARAMETERS: -# - # Variable name (from ncdump output) - my ( $var ) = @_; -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - my $msg = ""; - my $value = ""; - - # %%%%% Ensure variable is declared with the dimension of the same name - if ( $varDims{$var} = "$var" ) { - $msg = qq/$sep $var($varDims{$var})\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var needs to be declared with dimension "lev"\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check if levels are monotonic - $value = &isMonotonic( $levels ); - if ( $value eq "has repeat values" || $value eq "is not monotonic" ) { - $msg = qq/$sep $var $value\n/; - @BAD = ( @BAD, $msg ); - } else { - $msg = qq/$sep $var $value\n/; - @GOOD = ( @GOOD, $msg ); - } - - # %%%%% Check the axis attribute (optional) - $value = $axis{$var}; - if ( defined( $value ) && $value =~ m/[Zz]/ ) { - $msg = qq/$sep $var:axis =$value\n/; - $zFound = 1; - @GOOD = ( @GOOD, $msg ); - } else { - if ( $zFound == 0 ) { - $msg = qq/$sep Consider adding $var:axis = "Z"\n/; - @OPT = ( @OPT, $msg ); - } - } - - # %%%%% Check the positive attribute (optional) - $value = $positive{$var}; - if ( defined( $value ) && ( $value =~ m/[Uu][Pp]/ || - $value =~ m/[Dd][Oo][Ww][Nn]/ ) ) { - $msg = qq/$sep $var:positive =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Consider adding $var:positive = "up" (or "down", as the case may be)\n/; - @OPT = ( @OPT, $msg ); - } - - # %%%%% Check the long_name attribute - $value = $longName{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/hybrid level at interfaces/ || - $value =~ m/GEOS-Chem levels/ || - $value =~ m/lev/ || - $value =~ m/sigma/ || - $value =~ m/eta/ || - $value =~ m/level/ || - $value =~ m/layer/ ) { - - $msg = qq/$sep $var:long_name =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:long_name should be "ilev" or "hybrid level at interfaces", etc.\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:long_name (or $var:standard_name) is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check the units attribute - $value = $units{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/sigmal/ || $value =~ m/eta/ || - $value =~ m/level/ || $value =~ m/layer/ || - $value =~ m/1/ ) { - $msg = qq/$sep $var:units =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:units should be dimensionless (e.g. "sigma_level", "1")\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:units is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # Return w/ error code - return( $? ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: analyzeLev -# -# !DESCRIPTION: Checks the attributes of the lev variable to see if -# they adhere to the COARDS standard. -#\\ -#\\ -# !INTERFACE: -# -sub analyzeLev($) { -# -# !INPUT PARAMETERS: -# - # Variable name (from ncdump output) - my ( $var ) = @_; -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - my $msg = ""; - my $value = ""; - - # %%%%% Ensure variable is declared with the dimension of the same name - if ( $varDims{$var} = "$var" ) { - $msg = qq/$sep $var($varDims{$var})\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var needs to be declared with dimension "lev"\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check if levels are monotonic - $value = &isMonotonic( $levels ); - if ( $value eq "has repeat values" || $value eq "is not monotonic" ) { - $msg = qq/$sep $var $value\n/; - @BAD = ( @BAD, $msg ); - } else { - $msg = qq/$sep $var $value\n/; - @GOOD = ( @GOOD, $msg ); - } - - # %%%%% Check the axis attribute (optional) - $value = $axis{$var}; - if ( defined( $value ) && $value =~ m/[Zz]/ ) { - $msg = qq/$sep $var:axis =$value\n/; - $zFound = 1; - @GOOD = ( @GOOD, $msg ); - } else { - if ( $zFound == 0 ) { - $msg = qq/$sep Consider adding $var:axis = "Z"\n/; - @OPT = ( @OPT, $msg ); - } - } - - # %%%%% Check the positive attribute (optional) - $value = $positive{$var}; - if ( defined( $value ) && ( $value =~ m/[Uu][Pp]/ || - $value =~ m/[Dd][Oo][Ww][Nn]/ ) ) { - $msg = qq/$sep $var:positive =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Consider adding $var:positive = "up" (or "down", as the case may be)\n/; - @OPT = ( @OPT, $msg ); - } - - # %%%%% Check the long_name attribute - $value = $longName{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/hybrid level at midpoints/ || - $value =~ m/GEOS-Chem levels/ || - $value =~ m/lev/ || - $value =~ m/sigma/ || - $value =~ m/eta/ || - $value =~ m/level/ || - $value =~ m/layer/ ) { - - $msg = qq/$sep $var:long_name =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:long_name should be "lev" or "hybrid level at midpoints", etc.\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:long_name (or $var:standard_name) is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check the units attribute - $value = $units{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/sigmal/ || $value =~ m/eta/ || - $value =~ m/level/ || $value =~ m/layer/ || - $value =~ m/1/ ) { - $msg = qq/$sep $var:units =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:units should be dimensionless (e.g. "sigma_level", "1")\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:units is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # Return w/ error code - return( $? ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: analyzeLat -# -# !DESCRIPTION: Checks the attributes of the lat variable to see if -# they adhere to the COARDS standard. -#\\ -#\\ -# !INTERFACE: -# -sub analyzeLat($) { -# -# !INPUT PARAMETERS: -# - # Variable name (from ncdump output) - my ( $var ) = @_; -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - my $msg = ""; - my $value = ""; - - # %%%%% Ensure variable is declared with the dimension of the same name - if ( $varDims{$var} = "$var" ) { - $msg = qq/$sep $var($varDims{$var})\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var needs to be declared with dimension "lev"\n/; - @BAD = ( @BAD, $msg ); - } - - if ( $var =~ m/[Ll][Aa][Tt]/ ) { - # %%%%% Check if latitudes are monotonic - $value = &isMonotonic( $latitudes ); - if ( $value eq "has repeat values" || $value eq "is not monotonic" ) { - $msg = qq/$sep $var $value\n/; - @BAD = ( @BAD, $msg ); - } else { - $msg = qq/$sep $var $value\n/; - @GOOD = ( @GOOD, $msg ); - } - - # %%%%% Check the axis attribute (optional) - $value = $axis{$var}; - if ( defined( $value) && $value =~ m/[Yy]/ ) { - $msg = qq/$sep $var:axis =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Consider adding $var:axis = "Y"\n/; - @OPT = ( @OPT, $msg ); - } - } - - # %%%%% Check the long_name attribute - $value = $longName{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/[Ll][Aa][Tt][Ii][Tt][Uu][Dd][Ee]/ ) { - $msg = qq/$sep $var:long_name =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:long_name should be "Latitude"\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:long_name (or $var:standard_name) is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check the :units attribute - $value = $units{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/degrees_north/ ) { - $msg = qq/$sep $var:units =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:units should be "degrees_north"\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:units is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # Return w/ error code - return( $? ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: analyzeLon -# -# !DESCRIPTION: Checks the attributes of the lat variable to see if -# they adhere to the COARDS standard. -#\\ -#\\ -# !INTERFACE: -# -sub analyzeLon($) { -# -# !INPUT PARAMETERS: -# - # Variable name (from ncdump output) - my ( $var ) = @_; -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - my $msg = ""; - my $value = ""; - - # %%%%% Ensure variable is declared with the dimension of the same name - if ( $varDims{$var} = "$var" ) { - $msg = qq/$sep $var($varDims{$var})\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var needs to be declared with dimension "lon"\n/; - @BAD = ( @BAD, $msg ); - } - - if ( $var =~ m/[Ll][Oo][Nn]/ ) { - # %%%%% Check if latitudes are monotonic (skip for GCHP) - $value = &isMonotonic( $longitudes ); - if ( $value eq "has repeat values" || $value eq "is not monotonic" ) { - $msg = qq/$sep $var $value\n/; - @BAD = ( @BAD, $msg ); - } else { - $msg = qq/$sep $var $value\n/; - @GOOD = ( @GOOD, $msg ); - } - - # %%%%% Check the axis attribute (optional / skip for GCHP) - $value = $axis{$var}; - if ( defined( $value ) && $value =~ m/[Xx]/ ) { - $msg = qq/$sep $var:axis =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Consider adding $var:axis ="X"\n/; - @OPT = ( @OPT, $msg ); - } - } - - # %%%%% Check the long_name attribute - $value = $longName{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/[Ll][Oo][Nn][Gg][Ii][Tt][Uu][Dd][Ee]/ ) { - $msg = qq/$sep $var:long_name =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:long_name (or $var:standard_name) should be "Longitude"\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:long_name (or $var:standard_name) is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check the units attribute - $value = $units{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/degrees_east/ ) { - $msg = qq/$sep $var:units =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:units should be "degrees_east"\n/; - @BAD = ( @BAD, $msg ); - } - } else { - $msg = qq/$sep $var:units is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # Return w/ error code - return( $? ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: analyzeVar -# -# !DESCRIPTION: Checks the attributes of a (non-index) netCDF variable -# to see if they adhere to the COARDS standard. -#\\ -#\\ -# !INTERFACE: -# -sub analyzeVar($) { -# -# !INPUT PARAMETERS: -# - # Variable name (from ncdump output) - my ( $var ) = @_; -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: - - # Scalars - my $i = 0; - my $foundDims = 0; - - # Strings - my $msg = ""; - my $value = ""; - my $dim = ""; - my $dimsInVar = $varDims{$var}; - - # %%%%% Check to see if each dimension is valid - foreach $dim ( @dims ) { - - # Special handling for hyai and hybi, which have "ilev" as a dimension - # which can easily be confused with "lev". Use a strict equality - # for these variables instead of a pattern match. (bmy, 4/30/18) - if ( $var eq "hyai" || $var eq "hybi" ) { - if ( $dimsInVar eq $dim ) { $foundDims++; } - } else { - if ( $dimsInVar =~ m/$dim/ ) { $foundDims++; } - } - } - - # %%%%% Check if $var has the right # of dimensions - if ( $foundDims == $numDims{$var} ) { - $msg = qq/$sep $var($varDims{$var})\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var needs to be declared with ($varDims{$var})\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check the long_name attribute - $value = $longName{$var}; - if ( defined( $value ) && $value ne "" ) { - $msg = qq/$sep $var:long_name =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep $var:long_name (or $var:standard_name) is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check the units attribute - $value = $units{$var}; - if ( defined( $value ) ) { - if ( $value =~ m/[Uu][Nn][Ii][Tt][Ll][Ee][Ss][Ss]/ || - $value =~ m/[Nn][Aa]/ ) { - $msg = qq/$sep $var:units =$value\n/; - @BAD = ( @BAD, $msg ); - } else { - $msg = qq/$sep $var:units =$value\n/; - @GOOD = ( @GOOD, $msg ); - } - } else { - $msg = qq/$sep $var:units is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # Skip checking certain attributes for index variables that are - # automatically added to the netCDF file - if ( $var eq "hyai" || $var eq "hybi" || - $var eq "hyam" || $var eq "hybm" || - $var eq "AREA" ) { return( $? ); } - - # %%%%% Check the _FillValue attribute (optional) - $value = $FillValue{$var}; - if ( defined( $value ) && $value ne "" ) { - $msg = qq/$sep $var:long_name =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Consider adding $var:_FillValue\n/; - @OPT = ( @OPT, $msg ); - } - - # %%%%% Check the missing_value attribute (optional) - $value = $missing_value{$var}; - if ( defined( $value ) && $value ne "" ) { - $msg = qq/$sep $var:missing_value =$value\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Consider adding $var:missing_value\n/; - @OPT = ( @OPT, $msg ); - } - -# # %%%%% Check the add_offset attribute (optional) -# $value = $add_offset{$var}; -# if ( defined( $value ) && $value ne "" ) { -# $msg = qq/$sep $var:add_offset =$value\n/; -# @GOOD = ( @GOOD, $msg ); -# } else { -# $msg = qq/$sep Consider adding $var:add_offset\n/; -# @OPT = ( @OPT, $msg ); -# } -# -# # %%%%% Check the scale_factor attribute (optional) -# $value = $scale_factor{$var}; -# if ( defined( $value ) && $value ne "" ) { -# $msg = qq/$sep $var:scale_factor =$value\n/; -# @GOOD = ( @GOOD, $msg ); -# } else { -# $msg = qq/$sep Consider adding $var:scale_factor\n/; -# @OPT = ( @OPT, $msg ); -# } - - # Return with error code - return( $? ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: analyzeGlobAtts -# -# !DESCRIPTION: Checks if the global attributes of a netCDF file adhere -# to the COARDS standard. -#\\ -#\\ -# !INTERFACE: -# -sub analyzeGlobAtts() { -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - # Strings - my $msg = ""; - - #------------------------------------------------------------------------- - # Required global attributes: Conventions, History, Title - #------------------------------------------------------------------------- - - # %%%%% Check Conventions - if ( $conventions ne "" ) { - $msg = qq/$sep conventions:$conventions\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep The "conventions" global attribute is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check History - if ( $history ne "" ) { - $msg = qq/$sep history:$history\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep The "history" global attribute is missing\n/; - @BAD = ( @BAD, $msg ); - } - - # %%%%% Check Title - if ( $title ne "" ) { - $msg = qq/$sep title:$title\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep The "title" global attribute is missing\n/; - @BAD = ( @BAD, $msg ); - } - - #------------------------------------------------------------------------- - # Required global attributes: Format, Reference or References - #------------------------------------------------------------------------- - - # %%%%% Check Format - if ( $format ne "" ) { - $msg = qq/$sep format:$format\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Consider adding the "format" global attribute\n/; - @OPT = ( @OPT, $msg ); - } - - # %%%%% Check References - if ( $references ne "" ) { - $msg = qq/$sep references:$references\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Consider adding the "references" global attribute\n/; - @OPT = ( @OPT, $msg ); - } - - # Return with error code - return( $? ); -} -#EOP -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: analyzeResults -# -# !DESCRIPTION: Calls routines to analyze if the given netCDF file -# is COARDS-compliant. Prints results to stdout. -#\\ -#\\ -# !INTERFACE: -# -sub analyzeResults() { -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - # Scalars - my $badDimFound = 0; - - # Strings - my $line = ""; - my $dim = ""; - my $msg = ""; - my $var = ""; - - #========================================================================= - # Loop over the output of ncdump, line by line - #========================================================================= - - # Check dimensions: Only lon, lat, lev, ilev, and time are acceptable; - # Otherwise GCHP simulations will die when reading the file (bmy, 6/14/18) - foreach $dim ( @dims ) { - if ( ( $dim =~ m/[Tt][Ii][Mm][Ee]/ ) || - ( $dim =~ m/[Ii][Ll][Ee][Vv]/ ) || - ( $dim =~ m/[Ll][Ee][Vv]/ ) || - ( $dim =~ m/[Ll][Aa][Tt]/ ) || - ( $dim =~ m/[Ll][Oo][Nn]/ ) || - ( $dim =~ m/[Xx][Dd][Ii][Mm]/ ) || # GCHP only - ( $dim =~ m/[Yy][Dd][Ii][Mm]/ ) || # GCHP only - ( $dim =~ m/nf/ ) || # GCHP only - ( $dim =~ m/ncontact/ ) || # GCHP only - ( $dim =~ m/orientationStrLen/ ) ) { # GCHP only - $msg = qq/$sep Dimension "$dim" adheres to standard usage\n/; - @GOOD = ( @GOOD, $msg ); - } else { - $msg = qq/$sep Dimension "$dim" is non-standard usage,\n which will cause GCHP to fail during file read.\n PLEASE REMOVE THIS DIMENSION AND ALL VARIABLES THAT USE IT!!!\n/; - @BAD = ( @BAD, $msg ); - $badDimFound = 1; - } - } - - # Don't even bother analyzing the rest of the file if one of the dimensions - # is non-standard. Skip to printing the results (bmy, 6/14/18) - if ( $badDimFound == 1 ) { goto printResults; } - - # Check variables - foreach $var ( @vars ) { - - # Si - if ( $var =~ m/anchor/ ) { } - elsif ( $var =~ m/contact/ ) { } - elsif ( $var =~ m/nf/ ) { } - elsif ( $var =~ m/orientation/ ) { } - elsif ( $var =~ m/orientationStrLen/ ) { } - elsif ( $var =~ m/lats/ ) { } - elsif ( $var =~ m/lons/ ) { } - - # Analyze these dimensions for COARDS compliance - elsif ( $var =~ m/[Tt][Ii][Mm][Ee]/ ) { &analyzeTime( $var ); } - elsif ( $var =~ m/[Ii][Ll][Ee][Vv]/ ) { &analyzeILev( $var ); } - elsif ( $var =~ m/[Ll][Ee][Vv]/ ) { &analyzeLev ( $var ); } - elsif ( $var =~ m/[Ll][Aa][Tt]/ ) { &analyzeLat ( $var ); } - elsif ( $var =~ m/[Yy][Dd][Ii][Mm]/ ) { &analyzeLat ( $var ); } - elsif ( $var =~ m/[Ll][Oo][Nn]/ ) { &analyzeLon ( $var ); } - elsif ( $var =~ m/[Xx][Dd][Ii][Mm]/ ) { &analyzeLon ( $var ); } - else { &analyzeVar ( $var ); } - } - - # Check global attributes - &analyzeGlobAtts(); - -printResults: - #========================================================================= - # Report things that are in COARDS compliance - #========================================================================= - print "="x75 . "\n"; - print "Filename: $inputFile\n"; - print "="x75 . "\n"; - print "\nThe following items adhere to the COARDS standard:\n"; - print "-"x75 . "\n"; - foreach $line ( @GOOD ) { print "$line" } - - #========================================================================= - # Report things that are not in COARDS compliance - #========================================================================= - print "\nThe following items DO NOT ADHERE to the COARDS standard:\n"; - print "-"x75 . "\n"; - foreach $line ( @BAD ) { print "$line" } - - - #========================================================================= - # Report things that are not in COARDS compliance - #========================================================================= - print "\nThe following optional items are RECOMMENDED:\n"; - print "-"x75 . "\n"; - foreach $line ( @OPT ) { print "$line" } - - print "\nFor more information how to fix non COARDS-compliant items, see:\n"; - print "http://wiki.geos-chem.org/Preparing_data_files_for_use_with_HEMCO\n"; - - # Return w/ error code - return( $? ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: parseFile -# -# !DESCRIPTION: Runs "ncdump" on a netCDF file and parses the output into -# variables for later analysis. -#\\ -#\\ -# !INTERFACE: -# -sub parseFile($) { -# -# !INPUT PARAMETERS: -# - # netCDF file to scan (from command line) - my ( $fileName ) = @_; -# -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - # Strings - my $dimList = ""; - my $dimName = ""; - my $key = ""; - my $line = ""; - my $value = ""; - my $varName = ""; - - # Scalars - my $inDims = 0; - my $inVars = 0; - my $inAtts = 0; - my $inData = 0; - my $inLon = 0; - my $inLat = 0; - my $inLev = 0; - my $inILev = 0; - my $inTime = 0; - - # Arrays - my @result = (); - my @result2 = (); - my @text = qx( ncdump -c $fileName ); - - #========================================================================= - # Loop over the output of ncdump, line by line - #========================================================================= - foreach $line ( @text ) { - - # Remove newline - chomp( $line ); - - # Find out which section of the ncdump output this line is in - if ( $line =~ m/dimensions:/ ) { $inDims = 1; $inVars = 0; - $inAtts = 0, $inData = 0 } - if ( $line =~ m/variables:/ ) { $inDims = 0; $inVars = 1; - $inAtts = 0, $inData = 0 } - if ( $line =~ m/global attributes:/ ) { $inDims = 0; $inVars = 0; - $inAtts = 1, $inData = 0 } - if ( $line =~ m/data:/ ) { $inDims = 0; $inVars = 0; - $inAtts = 0, $inData = 1 } - - #====================================================================== - # Dimensions section - #====================================================================== - if ( $inDims ) { - - # Look for dimension names (split on the "=" sign) - @result = split( /=/, $line ); - if ( scalar( @result ) == 2 ) { - $dimName = $result[0]; - $dimName =~ s/\s+$//g; - $dimName =~ s/\t//g; - @dims = ( @dims, $dimName ); - } - } - - #====================================================================== - # Variables section - #====================================================================== - if ( $inVars ) { - - #-------------------------------------------------------------------- - # Look for the variable names - # - # In the ncdump output, lines with () are variable names. - # and the dimension list ins contained in parentheses. - #-------------------------------------------------------------------- - - # Variables are - if ( $line =~ m/\(/ && - $line =~ m/\)/ && - !( $line =~ m/long_name/ || $line =~ m/standard_name/ ) ) { - - # Get the variable name (first split on the "(", then on the space) - # and append to the list of variables - @result = split( /\(/, $line ); - @result2 = split( / /, $result[0] ); - $varName = $result2[1]; - @vars = ( @vars, $varName ); - - # Get the dimension list for each variable and save to a hash - $dimList = $result[1]; - $dimList =~ s/\s+$//g; - $dimList =~ s/ //g; - $dimList =~ s/\)//g; - $dimList =~ s/;//g; - $varDims{$varName} = $dimList; - - # Get the # of dimensions for each variable and save to a hash - @result2 = split( /,/, $dimList ); - $numDims{$varName} = scalar( @result2 ); - - } - - #-------------------------------------------------------------------- - # Look for variable attributes and save into hashes - #-------------------------------------------------------------------- - - # add_offset - if ( $line =~ m/$varName:add_offset/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $add_offset{$varName} = $result[1]; - } - - # axis - if ( $line =~ m/$varName:axis/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $axis{$varName} = $result[1]; - } - - # calendar - if ( $line =~ m/$varName:calendar/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $calendar{$varName} = $result[1]; - } - - # _FillValue - if ( $line =~ m/$varName:_FillValue/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $FillValue{$varName} = $result[1]; - } - - # long_name or standard_name - if ( $line =~ m/$varName:long_name/ || - $line =~ m/$varName:standard_name/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $longName{$varName} = $result[1]; - } - - # missing_value - if ( $line =~ m/$varName:missing_value/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $missing_value{$varName} = $result[1]; - } - - # positive - if ( $line =~ m/$varName:positive/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $positive{$varName} = $result[1]; - } - - # scale_factor - if ( $line =~ m/$varName:scale_factor/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $scale_factor{$varName} = $result[1]; - } - - # units - if ( $line =~ m/$varName:units/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $units{$varName} = $result[1]; - } - } - - #====================================================================== - # Global attributes section - #====================================================================== - if ( $inAtts ) { - - # Conventions - if ( $line =~ m/:[Cc][Oo][Nn][Vv][Ee][Nn][Tt][Ii][Oo][Nn][Ss]/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $conventions = $result[1]; - } - - # Format - if ( $line =~ m/:[Ff][Oo][Rr][Mm][Aa][Tt]/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $format = $result[1]; - } - - # History - if ( $line =~ m/:[Hh][Ii][Ss][Tt][Oo][Rr][Yy]/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $history = $result[1]; - } - - # Title - if ( $line =~ m/:[Tt][Ii][Tt][Ll][Ee]/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $title = $result[1]; - } - - # References - if ( $line =~ m/:[Rr][Ee][Ff][Ee][Rr][Ee][Nn][Cc][Ee]/ ) { - @result = split( /=/, $line ); - $result[1] =~ s/\;//g; - $references = $result[1]; - } - } - - #====================================================================== - # Data section - #====================================================================== - if ( $inData ) { - - # Take extra care to distinguish "ilev" from "lev" - if ( $line =~ m/[Ll][Ee][Vv]/ ) { - if ( $line =~ m/[Ii][Ll][Ee][Vv]/ ) { $inILev = 1; $inLev = 0; } - else { $inLev = 1; $inILev = 0; } - } - - # Save level interface values into a string - if ( $inILev ) { $iLevels .= "$line"; } - if ( $inILev && $line =~ m/;/ ) { $inILev = 0; } - - # Save level midpoint values into a string - if ( $inLev ) { $levels .= "$line"; } - if ( $inLev && $line =~ m/;/ ) { $inLev = 0; } - - # Save time values into a string - if ( $line =~ m/[Tt][Ii][Mm][Ee]/ ) { $inTime = 1 } - if ( $inTime ) { $times .= "$line"; } - if ( $inTime && $line =~ m/;/ ) { $inTime = 0; } - - # Save latitude values into a string - if ( $line =~ m/[Ll][Aa][Tt]/ ) { $inLat = 1 } - if ( $inLat ) { $latitudes .= "$line"; } - if ( $inLat && $line =~ m/;/ ) { $inLat = 0; } - - # Save Ydim values into a string (use $latitudes variable) - if ( $line =~ m/[Yy][Dd][Ii][Mm]/ ) { $inLat = 1 } - if ( $inLat ) { $latitudes .= "$line"; } - if ( $inLat && $line =~ m/;/ ) { $inLat = 0; } - - # Save longitude values into a string - if ( $line =~ m/[Ll][Oo][Nn]/ ) { $inLon = 1 } - if ( $inLon ) { $longitudes .= "$line"; } - if ( $inLon && $line =~ m/;/ ) { $inLon = 0; } - - # Save Xdim values into a string (use $longitudes variable) - if ( $line =~ m/[Xx][Dd][Ii][Mm]/ ) { $inLon = 1 } - if ( $inLon ) { $longitudes .= "$line"; } - if ( $inLon && $line =~ m/;/ ) { $inLon = 0; } - } - } - - #========================================================================= - # Post-processing - #========================================================================= - - # Remove extra characters from the times string - if ( $times ne "" ) { - @result = split( /=/, $times ); - $times = $result[1]; - $times =~ s/ //g; - $times =~ s/;//g; - } - - # Remove extra characters from the iLevels string - if ( $iLevels ne "" ) { - @result = split( /=/, $iLevels ); - $iLevels = $result[1]; - $iLevels =~ s/ //g; - $iLevels =~ s/;//g; - } - - # Remove extra characters from the levels string - if ( $levels ne "" ) { - @result = split( /=/, $levels ); - $levels = $result[1]; - $levels =~ s/ //g; - $levels =~ s/;//g; - } - - # Remove extra characters from the latitudes string - if ( $latitudes ne "" ) { - @result = split( /=/, $latitudes ); - $latitudes = $result[1]; - $latitudes =~ s/ //g; - $latitudes =~ s/;//g; - } - - # Remove extra characters from the longitudes string - if ( $longitudes ne "" ) { - @result = split( /=/, $longitudes ); - $longitudes = $result[1]; - $longitudes =~ s/ //g; - $longitudes =~ s/;//g; - } - - # Pass error code back to main program - return( $? ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: main -# -# !DESCRIPTION: Driver program for isCoards. Calls routines &parseFile -# and &analyzeResults. -#\\ -#\\ -# !INTERFACE: -# -sub main() { -# -#EOP -#------------------------------------------------------------------------------ -#BOC - if ( scalar( @ARGV ) == 1 ) { - - # Save filename as a global variable for later use - $inputFile = $ARGV[0]; - - # Scan the output of "ncdump" into Perl variables - &parseFile( $inputFile ); - - # Determine if the file is COARDS-compliant - &analyzeResults(); - - } else { - - # Otherwise exit with error - print "Usage: isCoards FILENAME\n"; - exit( -1 ); - - } - - # Return with error code - return( $? ) -} - -#------------------------------------------------------------------------------ - -# Call main routine -main(); - -# Return error code -exit( $? ); diff --git a/NcdfUtil/perl/ncCodeDef b/NcdfUtil/perl/ncCodeDef deleted file mode 100755 index c7f6df7d6..000000000 --- a/NcdfUtil/perl/ncCodeDef +++ /dev/null @@ -1,790 +0,0 @@ -#!/usr/bin/perl -w - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: ncCodeDef -# -# !DESCRIPTION: This Perl script automatically creates a Fortran subroutine -# that creates a netCDF file and specifies the relevant variables and -# attributes. The Fortran subroutine (named DEFINE\_NETCDF\_FILE) contains -# calls to the proper NcdfUtilities library routines. -#\\ -#\\ -# !USES: -# - require 5.003; # Need this version of Perl or newer - use English; # Use English language - use Carp; # Get detailed error messages - use strict 'refs'; # Do not allow symbolic references - use strict 'subs'; # Treat all barewords as syntax errors - use StrTrim qw( &trim - &splitLine - &extractFile ); # Get string handling routines -# -# !PRIVATE MEMBER FUNCTIONS: -# &readRcFile($) -# &writeFortranVars($@) -# &writeFortranCalls($@) -# &handleFileName($$) -# &handleGlobalAtts($$) -# &handleDimensions($$) -# &handleVariables($$) -# -# !PUBLIC MEMBER FUNCTIONS: -# &main() -# -# !PUBLIC DATA MEMBERS: -# - $F_ID = ""; # netCDF file ID -# -# !CALLING SEQUENCE: -# ncCodeCreate RESOURCE-FILE-NAME -# -# !REMARKS: -# Some hand-editing of the output Fortran subroutine may be necessary. -# -# !REVISION HISTORY: -# 27 Jan 2012 - R. Yantosca - Initial version -# 30 Jan 2012 - R. Yantosca - Now get trim, splitline routines from the -# Perl module "StrTrim.pm" -# 30 Jan 2012 - R. Yantosca - Now write ProTeX comment headers -# 31 Jan 2012 - R. Yantosca - Minor edits for consistency -# 07 Mar 2012 - R. Yantosca - Minor fix, ignore comment lines -#EOP -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: readRcFile -# -# !DESCRIPTION: Routine readRcFile reads the resource file which describes -# the variables, attributes, and dimensions of the netCDF file. -#\\ -#\\ -# !INTERFACE: -# -sub readRcFile($) { -# -# !INPUT PARAMETERS: -# - # $fileName : Input file that describes the netCDF file - my ( $fileName ) = @_; -# -# !CALLING SEQUENCE: -# &readRcFile( RESOURCE-FILE-NAME ); -# -# !REVISION HISTORY: -# 27 Jan 2012 - R. Yantosca - Initial version -# 27 Jan 2012 - R. Yantosca - Now get output filename from the resource file -# 07 Mar 2012 - R. Yantosca - Minor fix, ignore comment lines -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - my $cmdFile = ""; - my $line = ""; - my @lines = (); - my $name = ""; - - #-------------------------------------------------- - # Read variable settings from the resource file - #-------------------------------------------------- - open( I, "<$fileName" ) or die "Cannot open $fileName!\n"; - chomp( @lines = ); - close( I ); - - #-------------------------------------------------- - # Write Fortran commands to the output file - #-------------------------------------------------- - - # Pre-get a few quantities before creating the - # output file with the fortran code - foreach $line ( @lines ) { - - # Skip comment lines - if ( !( substr( $line, 0, 1 ) eq '#' ) ) { - - # Name of output file w/ Fortran code - if ( $line =~ 'Fortran Def File' ) { - ( $name, $cmdFile ) = &splitLine( $line, '=' ); - } - - # NetCDF file ID (aka filehandle) - if ( $line =~ 'netCDF FileHandle' ) { - ( $name, $F_ID ) = &splitLine( $line, '=' ); - } - } - } - - # Open the file that will ho - open( O, ">$cmdFile" ) or die "Cannot open $cmdFile\n"; - - # Pass thru @lines array so that we can declare Fortran variables - &writeFortranVars( \*O, @lines ); - - # Pass thru @lines array again to write - &writeFortranCalls( \*O, @lines ); - - #-------------------------------------------------- - # Cleanup and quit - #-------------------------------------------------- - - # Close output file - close( O ); - - # Return - return( 0 ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: writeFortranVars -# -# !DESCRIPTION: Routine writeFortranVars generates the proper Fortran -# variable declarations that are needed for use with the NcdfUtilities -# library routines. -#\\ -#\\ -# !INTERFACE: -# -sub writeFortranVars($@) { -# -# !INPUT PARAMETERS: -# - # $O : File handle - # @lines : Contents of the resource file - my ( $O, @lines ) = @_; -# -# !CALLING SEQUENCE: -# &writeFortranVars( \*O, @lines ); -# -# !REVISION HISTORY: -# 27 Jan 2012 - R. Yantosca - Initial version -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - my @subStr = (); - my $name = ""; - my $value = ""; - my $txt = ""; - - #------------------------------------------------------- - # Write USE statements - #------------------------------------------------------- - $txt .= < ); - close( I ); - - #-------------------------------------------------- - # Write Fortran commands to the output file - #-------------------------------------------------- - - # Pre-get a few quantities before creating the - # output file with the fortran code - foreach $line ( @lines ) { - - # Skip comment lines - if ( !( substr( $line, 0, 1 ) eq '#' ) ) { - - # Name of output file w/ Fortran code - if ( $line =~ 'Fortran Read File' ) { - ( $name, $cmdFile ) = &splitLine( $line, '=' ); - } - - # NetCDF file ID (aka filehandle) - if ( $line =~ 'netCDF FileHandle' ) { - ( $name, $F_ID ) = &splitLine( $line, '=' ); - } - } - } - - # Open the file that will ho - open( O, ">$cmdFile" ) or die "Cannot open $cmdFile\n"; - - # Pass thru @lines array so that we can declare Fortran variables - &writeFortranVars( \*O, @lines ); - - # Pass thru @lines array again to write - &writeFortranCalls( \*O, @lines ); - - #-------------------------------------------------- - # Cleanup and quit - #-------------------------------------------------- - - # Close output file - close( O ); - - # Return - return( 0 ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: writeFortranVars -# -# !DESCRIPTION: Routine writeFortranVars generates the proper Fortran -# variable declarations that are needed for use with the NcdfUtilities -# library routines. -#\\ -#\\ -# !INTERFACE: -# -sub writeFortranVars($@) { -# -# !INPUT PARAMETERS: -# - # $O : File handle - # @lines : Contents of the resource file - my ( $O, @lines ) = @_; -# -# !CALLING SEQUENCE: -# &writeFortranVars( \*O, @lines ); -# -# !REVISION HISTORY: -# 30 Jan 2012 - R. Yantosca - Initial version -# 31 Jan 2012 - R. Yantosca - Minor edits for consistency -# 01 Feb 2012 - R. Yantosca - Fix typo in output ProTeX header -# 09 Jul 2012 - R. Yantosca - Now make fId a local variable -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - my @subStr = (); - my $name = ""; - my $value = ""; - my $varName = ""; - my $varSize = ""; - my $varType = ""; - my $varDim = ""; - my $nDims = ""; - my @dims = (); - my $dimDef = ""; - my $txt = ""; - - #------------------------------------------------------- - # Write USE statements - #------------------------------------------------------- - $txt .= < ); - close( I ); - - #---------------------------------------------- - # Write Fortran commands to the output file - #---------------------------------------------- - - # Parse the file first to pre-get a few quantities - foreach $line ( @lines ) { - - # Skip comment lines - if ( !( substr( $line, 0, 1 ) eq '#' ) ) { - - # Name of output file w/ Fortran code - if ( $line =~ 'Fortran Write File' ) { - ( $name, $cmdFile ) = &splitLine( $line, '=' ); - } - - # NetCDF file ID (aka filehandle) - if ( $line =~ 'netCDF FileHandle' ) { - ( $name, $F_ID ) = &splitLine( $line, '=' ); - } - } - } - - # Open the file that will ho - open( O, ">$cmdFile" ) or die "Cannot open output file $cmdFile!\n"; - - # Pass thru @lines array so that we can declare Fortran variables - &writeFortranVars( \*O, @lines ); - - # Pass thru @lines array again to write - &writeFortranCalls( \*O, @lines ); - - #---------------------------------------------- - # Cleanup and quit - #---------------------------------------------- - - # Close output file - close( O ); - - # Return - return( 0 ); -} -#EOC -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: writeFortranVars -# -# !DESCRIPTION: Routine writeFortranVars generates the proper Fortran -# variable declarations that are needed for use with the NcdfUtilities -# library routines. -#\\ -#\\ -# !INTERFACE: -# -sub writeFortranVars($@) { -# -# !INPUT PARAMETERS: -# - # $O : File handle - # @lines : Contents of the resource file - my ( $O, @lines ) = @_; -# -# !CALLING SEQUENCE: -# &writeFortranVars( \*O, @lines ); -# -# !REVISION HISTORY: -# 30 Jan 2012 - R. Yantosca - Initial version -#EOP -#------------------------------------------------------------------------------ -#BOC -# -# !LOCAL VARIABLES: -# - my @subStr = (); - my $name = ""; - my $value = ""; - my $varName = ""; - my $varSize = ""; - my $varType = ""; - my $varDim = ""; - my $nDims = ""; - my @dims = (); - my $dimDef = ""; - my $txt = ""; - - #------------------------------------------------------- - # Write USE statements - #------------------------------------------------------- - $txt .= < 0 ) { - - # Create chunking command for lon dimension - # Create the chinking - if ( $line =~ m/[Ll][0o][Nn]/ ) { - $lonCmd = $line; - $lonCmd =~ s/ = /\//g; - $lonCmd =~ s/ ;//g; - $lonCmd =~ s/^\s+|\s+$//g - } - - # Create chunking command for lat dimension - if ( $line =~ m/[Ll][Aa][Tt]/ ) { - $latCmd = $line; - $latCmd =~ s/ = /\//g; - $latCmd =~ s/ ;//g; - $latCmd =~ s/^\s+|\s+$//g - } - - # Create chunking command for level midpoints dimension - if ( $line =~ m/[Ll][Ee][Vv]/ ) { - @subStrs = split( ' = ', $line ); - $levCmd = "$subStrs[0]/1"; - $levCmd =~ s/^\s+|\s+$//g - } - - # Create chunking command for level interfaces dimension - if ( $line =~ m/[Ii][Ll][Ee][Vv]/ ) { - @subStrs = split( ' = ', $line ); - $levCmd = "$subStrs[0]/1"; - $levCmd =~ s/^\s+|\s+$//g - } - - # Create chunking command for time dimension - if ( $line =~ m/[Tt][Ii][Mm][Ee]/ ) { - @subStrs = split( ' = ', $line ); - $timeCmd = "$subStrs[0]/1"; - $timeCmd =~ s/^\s+|\s+$//g - } - - } - - # We have exited the dimensions section - if ( $line =~ m/variables:/ ) { goto quit; } - } - -quit: - - # Chunking command - if ( $levCmd eq "" && $timeCmd eq "" ) - { $cmd = "nccopy -c $lonCmd,$latCmd"; } - elsif ( $levCmd eq "" ) - { $cmd = "nccopy -c $lonCmd,$latCmd,$timeCmd"; } - else - { $cmd = "nccopy -c $lonCmd,$latCmd,$levCmd,$timeCmd"; } - - # Deflation command - if ( $deflate > 0 ) { $cmd .= " -d$deflate" } - - # Add file name to the command - $cmd .= " $ncFile tmp.nc; mv tmp.nc $ncFile"; - print "$cmd\n"; - - # Execute the command - $result = qx/$cmd/; - chomp( $result ); - if ( $result ne "" ) { print "$result\n"; } - - # Exit and pass status code back - return( $? ); -} -#EOP -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !IROUTINE: main -# -# !DESCRIPTION: Driver program for the nc_chunk.pl script. -#\\ -#\\ -# !INTERFACE: -# -sub main(@) { -# -# !REVISION HISTORY: -# 12 Apr 2018 - R. Yantosca - Initial version -#EOP -#------------------------------------------------------------------------------ -#BOC - - # Error message - my $errMsg = "Usage: nc_chunk.pl NETCDF-FILE-NAME"; - - # If the user passes a filename from the command line, use it - # Otherwise, default to "UnitTest.input" - if ( scalar( @ARGV ) == 2 ) { &chunkTheFile( @ARGV, ); } - elsif ( scalar( @ARGV ) == 1 ) { &chunkTheFile( @ARGV, 0 ); } - else { print "$errMsg\n"; exit( -1 ); } - - # Exit and pass status code backq - return( $? ); -} -#EOC - -#------------------------------------------------------------------------------ - -# Call main program -main(); - -# Exit and pass status code back to Unix shell -exit( $? ); diff --git a/NcdfUtil/perl/nc_definitions.rc b/NcdfUtil/perl/nc_definitions.rc deleted file mode 100644 index cb9c91bfa..000000000 --- a/NcdfUtil/perl/nc_definitions.rc +++ /dev/null @@ -1,154 +0,0 @@ -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model # -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: nc_definitions.rc -# -# !DESCRIPTION: Resource file that defines the netCDF filename, variables, -# and attributes for use with the ncCode* scripts. Also defines the names -# of the files where Fortran code will be written to. -#\\ -#\\ -# !REMARKS: -# In the FILENAME section: -# --------------------------------------------------------------------------- -# Fortran Def File : Output file (generated by ncCodeDef) containing the -# Fortran calls to define the netCDF vars and atts -# Fortran Write File : Output file (generated by ncCodeWrite) containing the -# Fortran calls to write data to the netCDF file -# Fortran Read File : Output file (generated by ncCodeRead) containing the -# Fortran calls to read data from the netCDF file -# netCDF FileHandle : netCDF file ID variable (usually fId or nc_id) -# netCDF FileName : Name of the netCDF file that the Fortran code will -# write to and read from -# . -# In the GLOBAL ATTRIBUTES section: -# ---------------------------------------------------------------------------- -# Global attributes are specified with a declaration such as: -# . -# title = netCDF file to contain XYZ data -# . -# Where the name and value of each attribute is separated by an equals sign. -# -# In the DIMENSIONS section: -# ---------------------------------------------------------------------------- -# netCDF dimensions are specified with declarations such as: -# . -# lon = 72 -# lat = 46 -# lev = 72 -# time = 1 -# . -# Each dimension of your Fortran data arrays must have a corresponding -# netCDF dimension. We recommend using lon, lat, lev/press/alt, and -# time as standard dimension names. -# . -# In the VARIABLES section: -# ---------------------------------------------------------------------------- -# You may separate variables from each other for clarity with a "#" or "#-" -# comment. -# . -# netCDF variables are specified with a declaration such as: -# . -# PS = REAL*4::lon,lat,time -# . -# where the variable name is to the left of the equals sign. The variable -# type (in this case, REAL*4) and the variable dimensions are to the right -# of the equals sign, separated by the a double colon "::". -# . -# netCDF variable attributes are specified by a declaration such as: -# . -# PS:long_name = Surface pressure -# . -# where the variable name and attribute name are to the left of the equals -# sign and separated from each other by a single colon ":". -# . -# Guidelines for COARDS compliance: -# ---------------------------------------------------------------------------- -# (1 ) Index array variables must have the same name as the netCDF dimensions -# that are used to declare them. -# (2 ) Index array data should be monotonically increasing (i.e. longitude -# from -180 to 180 or 0 to 360, latitude from -90 to 90, etc.). -# (3 ) All variables should have "long_name" and "units" attributes. -# (4 ) Dimension and attribute names should be in lower case. -# (5 ) Longitude should have units of "degrees_east". -# (6 ) Latitude should have units of "degrees north". -# (6 ) All variables should have a "time" dimension, even if there is only -# one time value. -# (7 ) The "time" dimension should have units of -# "hours since YYYY-MM-DD hh:mm:ss.s GMT", or -# "minutes since YYYY-MM-DD hh:mm:ss.s GMT" -# (8 ) To specify a 3 hour timestep, for example, the "delta_t" attribute of -# "time" variable should have the value "0000-00-00 03:00:00", etc. -# -# Also, for compatibility with the GAMAP visualization package, please add -# the "gamap_category" attribute to each variable. -# -# !REVISION HISTORY: -# 27 Jan 2012 - R. Yantosca - Initial version -#------------------------------------------------------------------------------ - -### !FILENAME: -Fortran Def File = nc_define.F -Fortran Write File = nc_write.F -Fortran Read File = nc_read.F -netCDF FileHandle = fId -netCDF FileName = GEOSCHEM.nc - - -### !GLOBAL ATTRIBUTES: -title = Generated by ncCodeCreate script -history = 27 Jan 2011 -conventions = COARDS -format = netCDF-3 -model = GEOS5 -nlayers = 72 -start_date = 20110101 -start_time = 00:00:00.0 -end_date = 20110101 -end_time = 23:59:59.0 -delta_lon = 5 -delta_lat = 4 -delta_time = 000000 - - -### !DIMENSIONS: -lon = 72 -lat = 46 -lev = 72 -time = 1 - - -### !VARIABLES: -lon = REAL*4::lon -lon:long_name = longitude -lon:units = degrees_east -#- -lat = REAL*4::lat -lat:long_name = latitude -lat:units = degrees_north -#- -lev = REAL*4::lev -lev:long_name = levels -lev:units = unitless -#- -time = INTEGER::time -time:long_name = time -time:units = minutes from 2011-01-01 00:00:00 GMT -time:delta_t = 0000-00-00 00:00:00 -time:begin_date = 20110101 -time:begin_time = 000000 -time:time_increment = 000000 -#- -PS = REAL*4::lon,lat,time -PS:long_name = Surface pressure -PS:units = hPa -PS:gamap_category = GMAO-2D -#- -T = REAL*4::lon,lat,lev,time -T:long_name = Temperature -T:units = K -T:gamap_category = GMAO-3D$ - -#EOP diff --git a/ObsPack/obspack_mod.F90 b/ObsPack/obspack_mod.F90 index 07b6d32cc..690839bd0 100644 --- a/ObsPack/obspack_mod.F90 +++ b/ObsPack/obspack_mod.F90 @@ -20,8 +20,6 @@ MODULE ObsPack_Mod IMPLICIT NONE PRIVATE - -#include "netcdf.inc" ! ! !PUBLIC MEMBER FUNCTIONS: ! @@ -115,7 +113,6 @@ SUBROUTINE ObsPack_Init( yyyymmdd, hhmmss, Input_Opt, State_Diag, RC ) ! !LOCAL VARIABLES: ! ! Scalars - LOGICAL :: prtDebug INTEGER :: N ! Strings @@ -127,14 +124,13 @@ SUBROUTINE ObsPack_Init( yyyymmdd, hhmmss, Input_Opt, State_Diag, RC ) ! Initialize RC = GC_SUCCESS - prtDebug = ( Input_Opt%LPRT .and. Input_Opt%amIRoot ) ErrMsg = '' ThisLoc = ' -> at ObsPack_Init (in module ObsPack/obspack_mod.F90' ! Assume that there are ObsPack data for today State_Diag%Do_ObsPack = .TRUE. - IF ( prtDebug ) THEN + IF ( Input_Opt%Verbose ) THEN CALL DEBUG_MSG( '### OBSPACK_INIT: starting' ) ENDIF @@ -234,10 +230,11 @@ SUBROUTINE ObsPack_Read_Input( Input_Opt, State_Diag, RC ) ! ! !USES: ! - USE CharPak_Mod, ONLY : CStrip + USE CharPak_Mod, ONLY : charArr2Str, cStrip USE ErrCode_Mod USE File_Mod, ONLY : File_Exists USE Input_Opt_Mod, ONLY : OptInput + USE netCDF USE State_Diag_Mod, ONLY : DgnState USE m_netcdf_io_open, ONLY : Ncop_Rd USE m_netcdf_io_get_dimlen, ONLY : Ncget_Dimlen @@ -344,6 +341,12 @@ SUBROUTINE ObsPack_Read_Input( Input_Opt, State_Diag, RC ) !======================================================================= ! Allocate the relevant fields of State_Diag !======================================================================= + + ALLOCATE( State_Diag%ObsPack_CharArray( CHAR_LEN_OBS, nObs ), STAT=RC ) + CALL GC_CheckVar( 'State_Diag%ObsPack_CharArray', 0, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Diag%ObsPack_CharArray = ACHAR(0) ! NULL byte + ALLOCATE( State_Diag%ObsPack_ID( nObs ), STAT=RC ) CALL GC_CheckVar( 'State_Diag%ObsPack_Id', 0, RC ) IF ( RC /= GC_SUCCESS ) RETURN @@ -437,7 +440,7 @@ SUBROUTINE ObsPack_Read_Input( Input_Opt, State_Diag, RC ) ! Read coordinate arrays !---------------------------- st1d = (/ 1 /) - ct1d = (/ nobs /) + ct1d = (/ nObs /) varName = 'latitude' CALL NcRd( State_Diag%ObsPack_Latitude, fId, TRIM(varName), st1d, ct1d ) @@ -462,35 +465,19 @@ SUBROUTINE ObsPack_Read_Input( Input_Opt, State_Diag, RC ) State_Diag%ObsPack_Strategy = 2 ENDIF - !---------------------------- - ! Read ID string - !---------------------------- - st2d = (/ 1, 1 /) - ct2d = (/ CHAR_LEN_OBS, nObs /) - varName = 'obspack_id' - CALL NcRd( State_Diag%ObsPack_Id, fId, TRIM(varName), st2d, ct2d ) - - ! Strip white space (e.g. TABS) from the ObsPack ID strings - DO N = 1, nObs - CALL CStrip( State_Diag%ObsPack_Id(N), KeepSpaces=.TRUE. ) - ENDDO - !---------------------------- ! Read time ! (seconds since 1970) !---------------------------- - st1d = (/ 1 /) - ct1d = (/ nObs /) - varName = 'time' CALL NcRd( tmp_int, fId, TRIM(varName), st1d, ct1d ) ! Look for time:comment string, as this will determine if "time" is ! the start time or midpoint time of the averaging window. ! If the comment is not found, we time = start fo the averaging window. - RC = Nf_Inq_Varid ( fId, varName, vId ) - RC = Nf_Get_Att_Text( fId, vId, "comment", comment ) - IF ( RC == NF_NOERR ) THEN + RC = NF90_Inq_Varid( fId, varName, vId ) + RC = NF90_Get_Att( fId, vId, "comment", comment ) + IF ( RC == NF90_NOERR ) THEN N = INDEX( comment, 'midpoint of the averaging interval' ) IF ( N > 0 ) Window_Start_Time = .FALSE. ENDIF @@ -506,6 +493,23 @@ SUBROUTINE ObsPack_Read_Input( Input_Opt, State_Diag, RC ) ENDIF 50 FORMAT( ' - OBSPACK: "time" indicates ', a, ' of sample window' ) + !---------------------------- + ! Read ID string + !---------------------------- + st2d = (/ 1, 1 /) + ct2d = (/ CHAR_LEN_OBS, nObs /) + + varName = 'obspack_id' + CALL NcRd( State_Diag%ObsPack_CharArray, fId, TRIM(varName), st2d, ct2d ) + + ! Convert character array (needed to read strings from netCDF) + ! to a string. Also strip white space (e.g. tab characters). + DO N = 1, nObs + State_Diag%ObsPack_Id(N) = charArr2Str( & + State_Diag%ObsPack_CharArray(:,N), CHAR_LEN_OBS ) + CALL CStrip( State_Diag%ObsPack_Id(N), KeepSpaces=.TRUE. ) + ENDDO + ! Close input netCDF file CALL NcCl( fId ) State_Diag%ObsPack_fId = fId @@ -703,6 +707,13 @@ SUBROUTINE ObsPack_Cleanup( Input_Opt, State_Diag, RC ) !======================================================================= ! Deallocate ObsPack variables !======================================================================= + IF ( ASSOCIATED( State_Diag%ObsPack_CharArray ) ) THEN + DEALLOCATE( State_Diag%ObsPack_CharArray, STAT=RC ) + CALL GC_CheckVar( 'State_Diag%ObsPack_CharArray', 2, RC ) + IF ( RC /= GC_SUCCESS ) RETURN + State_Diag%ObsPack_CharArray => NULL() + ENDIF + IF ( ASSOCIATED( State_Diag%ObsPack_Id ) ) THEN DEALLOCATE( State_Diag%ObsPack_Id, STAT=RC ) CALL GC_CheckVar( 'State_Diag%ObsPack_Id', 2, RC ) @@ -836,6 +847,7 @@ SUBROUTINE ObsPack_Write_Output( Input_Opt, State_Diag, RC ) ! USE ErrCode_Mod USE Input_Opt_Mod, ONLY : OptInput + USE netCDF USE State_Diag_Mod, ONLY : DgnState USE Time_Mod, ONLY : Get_NHMSb USE Time_Mod, ONLY : Get_NHMSe @@ -994,7 +1006,7 @@ SUBROUTINE ObsPack_Write_Output( Input_Opt, State_Diag, RC ) ENDIF ! Turn filling off - CALL NcSetFill( fId, NF_NOFILL, omode ) + CALL NcSetFill( fId, NF90_NOFILL, omode ) !======================================================================= ! Define dimensions of netCDF variables @@ -1002,7 +1014,7 @@ SUBROUTINE ObsPack_Write_Output( Input_Opt, State_Diag, RC ) ! Number of observations varName = 'obs' - CALL NcDef_Dimension( fId, TRIM(varName), NF_UNLIMITED, dId_obs ) + CALL NcDef_Dimension( fId, TRIM(varName), NF90_UNLIMITED, dId_obs ) ! Number of species varName = 'species' @@ -1056,102 +1068,102 @@ SUBROUTINE ObsPack_Write_Output( Input_Opt, State_Diag, RC ) ! ID varName = 'obspack_id' - CALL NcDef_Variable ( fId, TRIM(varName), NF_CHAR, 2, dims_2d, vId ) - CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'obspack_id' ) - CALL NcDef_Var_Attributes( fId, vId, 'units', '1' ) + CALL NcDef_Variable ( fId, TRIM(varName), NF90_CHAR, 2, dims_2d, vId) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'obspack_id' ) + CALL NcDef_Var_Attributes( fId, vId, 'units', '1' ) ! # of samples varName = 'nsamples' - CALL NcDef_Variable( fId, TRIM(varName), NF_INT, 1, dims_1d, vId ) + CALL NcDef_Variable( fId, TRIM(varName), NF90_INT, 1, dims_1d, vId ) attVal = 'no. of model samples' - CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) - CALL NcDef_Var_Attributes( fId, vId, 'units', '1' ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'units', '1' ) attVal = 'Number of discrete model samples in average' - CALL NcDef_Var_Attributes( fId, vId, 'comment', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'comment', TRIM(attVal) ) ! Averaging interval varName = 'averaging_interval' - CALL NcDef_Variable( fId, TRIM(varName), NF_INT, 1, dims_1d, vId ) + CALL NcDef_Variable( fId, TRIM(varName), NF90_INT, 1, dims_1d, vId ) attVal = 'Amount of model time over which this observation is averaged' - CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) - CALL NcDef_Var_Attributes( fId, vId, 'units', 'seconds' ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'units', 'seconds' ) ! Averaging interval start time varName = 'averaging_interval_start' - CALL NcDef_Variable( fId, TRIM(varName), NF_INT, 1, dims_1d, vId ) + CALL NcDef_Variable( fId, TRIM(varName), NF90_INT, 1, dims_1d, vId ) attVal = 'Start of averaging interval' - CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) attVal = 'seconds since 1970-01-01 00:00:00 UTC' - CALL NcDef_Var_Attributes( fId, vId, 'units', TRIM(attVal) ) - CALL NcDef_Var_Attributes( fId, vId, 'calendar', 'standard' ) + CALL NcDef_Var_Attributes( fId, vId, 'units', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'calendar', 'standard' ) ! Averaging interval end time varName = 'averaging_interval_end' - CALL NcDef_Variable( fId, TRIM(varName), NF_INT, 1, dims_1d, vId ) + CALL NcDef_Variable( fId, TRIM(varName), NF90_INT, 1, dims_1d, vId ) attVal = 'End of averaging interval' - CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) attVal = 'seconds since 1970-01-01 00:00:00 UTC' - CALL NcDef_Var_Attributes( fId, vId, 'units', TRIM(attVal) ) - CALL NcDef_Var_Attributes( fId, vId, 'calendar', 'standard' ) + CALL NcDef_Var_Attributes( fId, vId, 'units', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'calendar', 'standard' ) ! Longitude - CALL NcDef_Variable( fId, 'lon', NF_FLOAT, 1, dims_1d, vId ) - CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'longitude' ) - CALL NcDef_Var_Attributes( fId, vId, 'units', 'degrees_east' ) + CALL NcDef_Variable( fId, 'lon', NF90_FLOAT, 1, dims_1d, vId ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'longitude' ) + CALL NcDef_Var_Attributes( fId, vId, 'units', 'degrees_east' ) ! Latitude - CALL NcDef_Variable( fId, 'lat', NF_FLOAT, 1, dims_1d, vId ) - CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'latitude' ) - CALL NcDef_Var_Attributes( fId, vId, 'units', 'degrees_north' ) + CALL NcDef_Variable( fId, 'lat', NF90_FLOAT, 1, dims_1d, vId ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'latitude' ) + CALL NcDef_Var_Attributes( fId, vId, 'units', 'degrees_north' ) ! ! Altitude -! CALL NcDef_Variable( fId, 'height', NF_FLOAT, 1, dims_1d, vId ) -! CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'longitude' ) -! CALL NcDef_Var_Attributes( fId, vId, 'units', 'degrees_east' ) +! CALL NcDef_Variable( fId, 'height', NF90_FLOAT, 1, dims_1d, vId ) +! CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'longitude' ) +! CALL NcDef_Var_Attributes( fId, vId, 'units', 'degrees_east' ) ! U-wind - CALL NcDef_Variable( fId, 'u', NF_FLOAT, 1, dims_1d, vId ) + CALL NcDef_Variable( fId, 'u', NF90_FLOAT, 1, dims_1d, vId ) attVal = 'Zonal component of wind' - CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) - CALL NcDef_Var_Attributes( fId, vId, 'units', 'm s^-1' ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'units', 'm s^-1' ) ! V-wind - CALL NcDef_Variable( fId, 'v', NF_FLOAT, 1, dims_1d, vId ) + CALL NcDef_Variable( fId, 'v', NF90_FLOAT, 1, dims_1d, vId ) attVal = 'Meridional component of wind' - CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) - CALL NcDef_Var_Attributes( fId, vId, 'units', 'm s^-1' ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'units', 'm s^-1' ) ! Boundary layer height - CALL NcDef_Variable( fId, 'blh', NF_FLOAT, 1, dims_1d, vId ) + CALL NcDef_Variable( fId, 'blh', NF90_FLOAT, 1, dims_1d, vId ) attVal = 'Boundary layer height' - CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) - CALL NcDef_Var_Attributes( fId, vId, 'units', 'm' ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'units', 'm' ) ! Specific humidity - CALL NcDef_Variable( fId, 'q', NF_FLOAT, 1, dims_1d, vId ) + CALL NcDef_Variable( fId, 'q', NF90_FLOAT, 1, dims_1d, vId ) attVal = 'mass_fraction_of_water_inair' - CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) attVal = 'g water (kg air)^-1' - CALL NcDef_Var_Attributes( fId, vId, 'units', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'units', TRIM(attVal) ) ! Pressure - CALL NcDef_Variable( fId, 'pressure', NF_FLOAT, 1, dims_1d, vId ) - CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'pressure' ) - CALL NcDef_Var_Attributes( fId, vId, 'units', 'hPa' ) + CALL NcDef_Variable( fId, 'pressure', NF90_FLOAT, 1, dims_1d, vId ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'pressure' ) + CALL NcDef_Var_Attributes( fId, vId, 'units', 'hPa' ) ! Temperature - CALL NcDef_Variable( fId, 'temperature', NF_FLOAT, 1, dims_1d, vId ) - CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'temperature' ) - CALL NcDef_Var_Attributes( fId, vId, 'units', 'K' ) + CALL NcDef_Variable( fId, 'temperature', NF90_FLOAT, 1, dims_1d, vId ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', 'temperature' ) + CALL NcDef_Var_Attributes( fId, vId, 'units', 'K' ) ! Species concentration DO S = 1, State_Diag%ObsPack_nSpecies varName = State_Diag%ObsPack_Species_Name(S) attVal = State_Diag%ObsPack_Species_LName(S) - CALL NcDef_Variable( fId, TRIM(varName), NF_FLOAT, 1, dims_1d, vId ) - CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) - CALL NcDef_Var_Attributes( fId, vId, 'units', 'mol mol-1' ) - CALL NcDef_Var_Attributes( fId, vId, '_FillValue', -1e34 ) + CALL NcDef_Variable( fId, TRIM(varName), NF90_FLOAT, 1, dims_1d, vId ) + CALL NcDef_Var_Attributes( fId, vId, 'long_name', TRIM(attVal) ) + CALL NcDef_Var_Attributes( fId, vId, 'units', 'mol mol-1' ) + CALL NcDef_Var_Attributes( fId, vId, '_FillValue', -1e34 ) ENDDO @@ -1170,7 +1182,7 @@ SUBROUTINE ObsPack_Write_Output( Input_Opt, State_Diag, RC ) ct2d = (/ CHAR_LEN_OBS, nObs /) varName = 'obspack_id' - CALL NcWr( State_Diag%ObsPack_Id, fId, TRIM(varName), st2d, ct2d ) + CALL NcWr(State_Diag%ObsPack_CharArray, fId, TRIM(varName), st2d, ct2d ) !--------------------------------------- ! Write 1-D variables @@ -1283,7 +1295,8 @@ SUBROUTINE ObsPack_Sample( yyyymmdd, hhmmss, Input_Opt, State_Chm, & USE State_Grid_Mod, ONLY : GrdState USE State_Met_Mod, ONLY : MetState USE Time_Mod, ONLY : Ymd_Extract - USE UnitConv_Mod, ONLY : Convert_Spc_Units + USE Timers_Mod, ONLY : Timer_End, Timer_Start + USE UnitConv_Mod ! ! !INPUT PARAMETERS: ! @@ -1318,13 +1331,14 @@ SUBROUTINE ObsPack_Sample( yyyymmdd, hhmmss, Input_Opt, State_Chm, & ! !LOCAL VARIABLES: ! ! Scalars - LOGICAL :: prtLog, prtDebug, doSample + LOGICAL :: prtLog, doSample INTEGER :: I, J, L, N, R, S INTEGER :: Yr, Mo, Da, Hr, Mn, Sc + INTEGER :: previous_units REAL(f8) :: TsStart, TsEnd ! Strings - CHARACTER(LEN=255) :: PriorUnit, ErrMsg, ThisLoc + CHARACTER(LEN=255) :: ErrMsg, ThisLoc !================================================================= ! ObsPack_Sample begins here @@ -1335,19 +1349,34 @@ SUBROUTINE ObsPack_Sample( yyyymmdd, hhmmss, Input_Opt, State_Chm, & ErrMsg = '' ThisLoc = ' -> at ObsPack_Sample (in module ObsPack/obspack_mod.F90)' prtLog = (Input_Opt%amIRoot .and. ( .not. Input_Opt%ObsPack_Quiet ) ) - prtDebug = (Input_Opt%amIRoot .and. Input_Opt%LPRT ) ! Return if ObsPack sampling is turned off (perhaps ! because there are no data at this time). IF ( .not. State_Diag%Do_ObsPack ) RETURN - ! Ensure that units of species are "v/v dry", which is dry - ! air mole fraction. Capture the InUnit value, this is - ! what the units are prior to this call. After we sample - ! the species, we'll call this again requesting that the - ! species are converted back to the InUnit values. - CALL Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - 'v/v dry', RC, PriorUnit ) + !======================================================================= + ! Unit conversion + !======================================================================= + + ! Halt diags timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Diagnostics", RC ) + ENDIF + + ! Ensure that units of species are [v/v dry], which is dry air mole + ! fraction, aka [mol/mol dry]. Capture the InUnit value, this is what + ! the units are prior to this call. After we sample the species, we'll + ! call this again requesting that the species are converted back to the + ! InUnit values. + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = MOLES_SPECIES_PER_MOLES_DRY_AIR, & + previous_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -1356,6 +1385,11 @@ SUBROUTINE ObsPack_Sample( yyyymmdd, hhmmss, Input_Opt, State_Chm, & RETURN ENDIF + ! Start diags timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Diagnostics", RC ) + ENDIF + !======================================================================= ! Sample the GEOS-CHem data corresponding to this location & time !======================================================================= @@ -1481,10 +1515,21 @@ SUBROUTINE ObsPack_Sample( yyyymmdd, hhmmss, Input_Opt, State_Chm, & ! Cleanup and quit !======================================================================= + ! Halt diags timer (so that unit conv can be timed separately) + IF ( Input_Opt%useTimers ) THEN + CALL Timer_End( "Diagnostics", RC ) + ENDIF + ! Return State_Chm%Species(:)%Conc to whatever units they had ! coming into this routine - call Convert_Spc_Units( Input_Opt, State_Chm, State_Grid, State_Met, & - PriorUnit, RC ) + CALL Convert_Spc_Units( & + Input_Opt = Input_Opt, & + State_Chm = State_Chm, & + State_Grid = State_Grid, & + State_Met = State_Met, & + mapping = State_Chm%Map_Advect, & + new_units = previous_units, & + RC = RC ) ! Trap potential errors IF ( RC /= GC_SUCCESS ) THEN @@ -1493,6 +1538,11 @@ SUBROUTINE ObsPack_Sample( yyyymmdd, hhmmss, Input_Opt, State_Chm, & RETURN ENDIF + ! Start diags timer again + IF ( Input_Opt%useTimers ) THEN + CALL Timer_Start( "Diagnostics", RC ) + ENDIF + END SUBROUTINE ObsPack_Sample !EOC !------------------------------------------------------------------------------ diff --git a/README.md b/README.md index 91b810dcf..1453d29c8 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,10 @@ Each implementation of GEOS-Chem has its own manual page. For more information, * __WRF-GC:__ [http://wrf.geos-chem.org](http:/wrf.geos-chem.org) +* __Other documentation:__ [View related documentation @ Read TheDocs](https://geos-chem.readthedocs.io/en/latest/geos-chem-shared-docs/supplemental-guides/related-docs.html) + ## About GEOS-Chem -GEOS-Chem is a global 3-D model of atmospheric chemistry driven by meteorological input from the Goddard Earth Observing System (GEOS) of the [NASA Global Modeling and Assimilation Office](http://gmao.gsfc.nasa.gov/). It is applied by [research groups around the world](http://acmg.seas.harvard.edu/geos/geos_people.html) to a wide range of atmospheric composition problems. Scientific direction of the model is provided by the international [GEOS-Chem Steering Committee](http://acmg.seas.harvard.edu/geos/geos_steering_cmte.html) and by [User Working Groups](http://acmg.seas.harvard.edu/geos/geos_working_groups.html). The model is managed by the [GEOS-Chem Support Team](http://acmg.seas.harvard.edu/geos/geos_chem_support.html), based at Harvard University and Washington University with support from the US NASA Earth Science Division, the Canadian National and Engineering Research Council, and the Nanjing University of Information Sciences and Technology. +GEOS-Chem is a global 3-D model of atmospheric chemistry driven by meteorological input from the Goddard Earth Observing System (GEOS) of the [NASA Global Modeling and Assimilation Office](http://gmao.gsfc.nasa.gov/). It is applied by [research groups around the world](http://geos-chem.org/people.html) to a wide range of atmospheric composition problems. Scientific direction of the model is provided by the international [GEOS-Chem Steering Committee](http://geos-chem.org/steering-committee.html) and by [User Working Groups](http://geos-chem.org/working-groups.html). The model is managed by the [GEOS-Chem Support Team](http://geos-chem.org/support-team.html), based at Harvard University and Washington University with support from the US NASA Earth Science Division, the Canadian National and Engineering Research Council, and the Nanjing University of Information Sciences and Technology. -GEOS-Chem is a grass-roots open-access model owned by its [users](http://acmg.seas.harvard.edu/geos/geos_people.html), and ownership implies some responsibilities as listed in our [welcome page for new users](http://acmg.seas.harvard.edu/geos/geos_welcome.html). If you are interested in using GEOS-Chem, please contact the [GEOS-Chem Support Team](http://wiki.seas.harvard.edu/geos-chem/index.php/GEOS-Chem_Support_Team) who will send you instructions for joining the user community and accessing the code. +GEOS-Chem is a grass-roots open-access model owned by its [users](http://geos-chem.org/people.html), and ownership implies some responsibilities as listed in our [welcome page for new users](http://geos-chem.org/welcome.html). diff --git a/run/CESM/HEMCO_Config.rc b/run/CESM/HEMCO_Config.rc index 8689c6360..f3fafd6ec 100644 --- a/run/CESM/HEMCO_Config.rc +++ b/run/CESM/HEMCO_Config.rc @@ -23,12 +23,12 @@ #BOC ############################################################################### ### BEGIN SECTION SETTINGS +############################################################################### -ROOT: /glade/p/univ/umit0034/ExtData/HEMCO -METDIR: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData/GEOS_2x2.5/MERRA2 -GCAP2SCENARIO: not_used -GCAP2VERTRES: 47 -Logfile: HEMCO.log +ROOT: /glade/campaign/cesm/cesmdata/cseg/inputdata/atm/cam/geoschem/emis/ExtData/HEMCO +GCAPSCENARIO: not_used +GCAPVERTRES: 47 +Logfile: * DiagnFile: HEMCO_Diagn.rc DiagnPrefix: ./OutputDir/HEMCO_diagnostics DiagnFreq: Monthly @@ -37,8 +37,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -61,7 +61,7 @@ Warnings: 1 --> CEDS_GBDMAPS : false # 1970-2017 --> CEDS_GBDMAPS_byFuelType: false # 1970-2017 --> EDGARv43 : false # 1970-2010 - --> HTAP : false # 2008-2010 + --> HTAPv3 : false # 2000-2018 --> GEIA_NH3 : true # 1990 --> SEABIRD_NH3 : true # 1990 --> POET_EOH : false # 1985 @@ -80,7 +80,7 @@ Warnings: 1 # research purposes. Recommended setting: "AEIC2019_DAILY: false". # # 2. AEIC2019_MONMEAN selects monthly-mean AEIC 2019 emisisons, which will -# incur much less computational overhaead. This options should suffice +# incur much less computational overhaead. This option should suffice # for most simulations. Recommended setting "AEIC2019_MONMEAN: true". # # 3. AEIC_SCALE_1990_2019: If "false", the AEIC 2019 data from the year @@ -109,7 +109,7 @@ Warnings: 1 --> CEDSv2_SHIP : true # 1750-2017 --> CEDS_GBDMAPS_SHIP : false # 1970-2017 --> CEDS_GBDMAPS_SHIP_byFuelType: false # 1970-2017 - --> HTAP_SHIP : false # 2008-2010 + --> HTAPv3_SHIP : false # 2000-2018 --> ICOADS_SHIP : false # 2002 --> ARCTAS_SHIP : false # 2008 --> CORBETT_SHIP : false # 1985 @@ -119,7 +119,7 @@ Warnings: 1 --> RCP_60 : false # 2005-2100 --> RCP_85 : false # 2005-2100 # ----- CMIP6 ANTHRO EMISSIONS / BOUNDARY CONDITIONS -------------------------- -# Set GCAP2SCENARIO (e.g., HIST, SSP585) above in SECTION SETTINGS +# Set GCAPSCENARIO (e.g., HIST, SSP585) above in SECTION SETTINGS --> CMIP6_SFC_BC : false # 1750-2100 --> CMIP6_SFC_LAND_ANTHRO : false # 1850-2100 --> CMIP6_AIRCRAFT : false # 1850-2100 @@ -128,12 +128,12 @@ Warnings: 1 --> QFED2 : false # 2000-2020 --> GFAS : false # 2003-2021 --> BB4MIPS : false # 1850-2100 + --> GFED4_CLIMATOLOGY : false # If true, turn off GFED ext below # ----- OFFLINE EMISSIONS ----------------------------------------------------- # To use online emissions instead set the offline emissions to 'false' and the # corresponding HEMCO extension to 'on': # OFFLINE_DUST - DustDead or DustGinoux # OFFLINE_BIOGENICVOC - MEGAN -# - Note: MEGAN must always be on for species not in OFFLINE_BIOGENICVOC # OFFLINE_SEASALT - SeaSalt # OFFLINE_SOILNOX - SoilNOx # @@ -141,11 +141,11 @@ Warnings: 1 # update ExtNr and Cat in HEMCO_Diagn.rc to properly save out emissions for # any affected species. #------------------------------------------------------------------------------ - --> OFFLINE_DUST : false # 1980-2021 - --> OFFLINE_BIOGENICVOC : false # 1980-2021 - --> OFFLINE_SEASALT : false # 1980-2021 + --> OFFLINE_DUST : false # 1980-2019 + --> OFFLINE_BIOGENICVOC : false # 1980-2020 + --> OFFLINE_SEASALT : false # 1980-2019 --> CalcBrSeasalt : false - --> OFFLINE_SOILNOX : true # 1980-2021 + --> OFFLINE_SOILNOX : true # 1980-2020 # ----- NON-EMISSIONS DATA ---------------------------------------------------- --> UVALBEDO : true # 1985 --> CCM_STRAT_Bry : false # 2007 @@ -162,17 +162,19 @@ Warnings: 1 # ----------------------------------------------------------------------------- 100 Custom : off - 101 SeaFlux : on DMS/ACET/ALD2/MENO3/ETNO3/MOH -102 ParaNOx : on NO/NO2/O3/HNO3 +102 ParaNOx : off NO/NO2/O3/HNO3 --> LUT data format : nc --> LUT source dir : $ROOT/PARANOX/v2015-02 103 LightNOx : off NO + --> LightningClimatology : off --> CDF table : $ROOT/LIGHTNOX/v2014-07/light_dist.ott2010.dat 104 SoilNOx : off NO --> Use fertilizer NOx : true 105 DustDead : off DST1/DST2/DST3/DST4 --> Mass tuning factor : 4.7586e-4 106 DustGinoux : off DST1/DST2/DST3/DST4 -107 SeaSalt : off SALA/SALC/SALACL/SALCCL/SALAAL/SALCAL/BRSALA/BRSALC/MOPO/MOPI +#ewl: Use BRSALA or BrSALA, BrSALC or BRSALC. Did this change in standard model? +107 SeaSalt : off SALA/SALC/SALACL/SALCCL/SALAAL/SALCAL/BrSALA/BrSALC/MOPO/MOPI --> SALA lower radius : 0.01 --> SALA upper radius : 0.5 --> SALC lower radius : 0.5 @@ -186,7 +188,7 @@ Warnings: 1 --> NH snow age : 3.0 --> SH snow age : 1.5 --> N per snowflake : 5.0 - --> Model sea salt Br- : false + --> Model sea salt Br- : true --> Br- mass ratio : 2.11e-3 108 MEGAN : off ISOP/ACET/PRPE/C2H4/ALD2/MOH/EOH/MTPA/MTPO/LIMO/SESQ/SOAP/SOAS --> Isoprene scaling : 1.0 @@ -198,7 +200,9 @@ Warnings: 1 --> Monoterp to SOAS : 0.050 --> Othrterp to SOAP : 0.050 --> Othrterp to SOAS : 0.050 -111 GFED : on NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/bc_a4/pom_a4/POG1/POG2/MTPA/BENZ/TOLU/XYLE/NAP/EOH/MOH/SOAP +# For CESM: (1) use bc_a4 and pom_a4 instead of BCPO, BCPI, OCPO, and OCPI in GFED, and +# (2) add scaling for bc_a4 and pom_a4 +111 GFED : on NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/bc_a4/pom_a4/POG1/POG2/MTPA/BENZ/TOLU/XYLE/NAP/EOH/MOH/SOAP/FURA/PHEN/MVK/ISOP/ACTA/MGLY/GLYX/RCHO --> GFED4 : true --> GFED_daily : false --> GFED_3hourly : false @@ -212,12 +216,10 @@ Warnings: 1 --> CO to SOAP : 0.013 --> GFED_subgrid_coag : false #see the note near scale factor 281 for the source of this emis factor -114 FINN : off NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/bc_a4/pom_a4/GLYC/HAC/SOAP +114 FINN : off NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/BCPI/BCPO/OCPI/OCPO/GLYC/HAC/SOAP --> FINN_daily : false --> Scaling_CO : 1.0 --> Scaling_SOAP : 0.013 - --> Scaling_bc_a4 : 1.0 - --> Scaling_pom_a4 : 1.4 --> hydrophilic BC : 0.2 --> hydrophilic OC : 0.5 --> FINN_subgrid_coag : false @@ -229,8 +231,19 @@ Warnings: 1 120 Inorg_Iodine : on HOI/I2 --> Emit HOI : true --> Emit I2 : true -130 TOMAS_Jeagle : off SS1/SS2/SS3/SS4/SS5/SS6/SS7/SS8/SS9/SS10/SS11/SS12/SS13/SS14/SS15/SS16/SS17/SS18/SS19/SS20/SS21/SS22/SS23/SS24/SS25/SS26/SS27/SS28/SS29/SS30/SS31/SS32/SS33/SS34/SS35/SS36/SS37/SS38/SS39/SS40 -131 TOMAS_DustDead : off DUST1/DUST2/DUST3/DUST4/DUST5/DUST6/DUST7/DUST8/DUST9/DUST10/DUST11/DUST12/DUST13/DUST14/DUST15/DUST16/DUST17/DUST18/DUST19/DUST20/DUST21/DUST22/DUST23/DUST24/DUST25/DUST26/DUST27/DUST28/DUST29/DUST30/DUST31/DUST32/DUST33/DUST34/DUST35/DUST36/DUST37/DUST38/DUST39/DUST40 +130 TOMAS_Jeagle : off SS01/SS02/SS03/SS04/SS05/SS06/SS07/SS08/SS09/SS10/SS11/SS12/SS13/SS14/SS15/SS16/SS17/SS18/SS19/SS20/SS21/SS22/SS23/SS24/SS25/SS26/SS27/SS28/SS29/SS30/SS31/SS32/SS33/SS34/SS35/SS36/SS37/SS38/SS39/SS40 + --> Reduce SS cold water : true + --> Blowing Snow SS : true + --> NH FYI snow salinity : 0.1 + --> NH MYI snow salinity : 0.05 + --> SH FYI snow salinity : 0.03 + --> SH MYI snow salinity : 0.015 + --> NH snow age : 3.0 + --> SH snow age : 1.5 + --> N per snowflake : 1.0 + --> Model sea salt Br- : false + --> Br- mass ratio : 2.11e-3 +131 TOMAS_DustDead : off DUST01/DUST02/DUST03/DUST04/DUST05/DUST06/DUST07/DUST08/DUST09/DUST10/DUST11/DUST12/DUST13/DUST14/DUST15/DUST16/DUST17/DUST18/DUST19/DUST20/DUST21/DUST22/DUST23/DUST24/DUST25/DUST26/DUST27/DUST28/DUST29/DUST30/DUST31/DUST32/DUST33/DUST34/DUST35/DUST36/DUST37/DUST38/DUST39/DUST40 --> Mass tuning factor : 4.7586e-4 ### END SECTION EXTENSION SWITCHES ### @@ -238,7 +251,7 @@ Warnings: 1 ### BEGIN SECTION BASE EMISSIONS ############################################################################### -# ExtNr Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Species ScalIDs Cat Hier +# ExtNr Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Species ScalIDs Cat Hier (((EMISSIONS @@ -280,304 +293,322 @@ Warnings: 1 # aren't included in the Tier 1 CAPS file/ #============================================================================== (((NEI2016_MONMEAN -0 EPA16_BCPI__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__afdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__afdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__afdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_SO4__afdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__agACET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__agALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__agALDX $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__agBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_C2H4__agETH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__agETHA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__agETOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__agFORM $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_PRPE__agIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__agKET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__agMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__agNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_PRPE__agOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__agPAR $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_C3H8__agPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_TOLU__agTOL $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__agXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__airportsACET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__airportsACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__airportsALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__airportsALDX $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__airportsBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_BCPI__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__afdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__afdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__afdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__afdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__afdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_SO4__afdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__agACET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__agALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__agALDX $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__agBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_C2H4__agETH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__agETHA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__agETOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__agFORM $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_PRPE__agIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__agKET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__agMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__agNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_PRPE__agOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__agPAR $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_C3H8__agPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_TOLU__agTOL $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__agXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__airportsACET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__airportsACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__airportsALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__airportsALDX $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__airportsBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__airportsSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__airportsETH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__airportsETHA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__airportsETOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__airportsFORM $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__airportsHONO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__airportsIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__airportsKET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__airportsMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NO__airportsNO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__airportsNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__airportsOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__airportsPAR $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__airportsPNA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__airportsPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__airportsPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__airportsPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__airportsPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__airportsSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__airportsETH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__airportsETHA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__airportsETOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__airportsFORM $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__airportsHONO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__airportsKET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__airportsMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NO__airportsNO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__airportsNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__airportsPAR $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__airportsPNA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__airportsPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__airportsPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__airportsPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__airportsPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__airportsPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__airportsPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__airportsSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__airportspFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__airportsSULF $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__airportsTOL $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__airportsXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__nonptACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__nonptACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__nonptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__nonptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__nonptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__nonptCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__airportsSULF $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__airportsTOL $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__airportsXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonptACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonptACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__nonptCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__nonptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__nonptETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__nonptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__nonptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__nonptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HCl__nonptHCL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HCL 2016/1-12/1/0 R xyz kg/m2/s HCl 1007 1 50 -0 EPA16_HNO2__nonptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__nonptKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__nonptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__nonptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__nonptNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__nonptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__nonptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__nonptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__nonptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__nonptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__nonptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__nonptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__nonptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__nonptETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HCl__nonptHCL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HCL 2016/1-12/1/0 R xy kg/m2/s HCl 1007 1 50 +0 EPA16_HNO2__nonptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonptKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonptNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__nonptPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__nonptPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__nonptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__nonptpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__nonptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__nonptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__nonptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__nonroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__nonroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__nonroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__nonroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__nonroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__nonptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__nonroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__nonroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__nonroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__nonroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__nonroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__nonroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__nonroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__nonroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__nonroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__nonroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__nonroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__nonroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__nonroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__nonroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__nonroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__nonroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__nonroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__nonroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__nonroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__nonroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__nonroadPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__nonroadPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__nonroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__nonroadspFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__nonroadSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__nonroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__nonroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__npogACET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__npogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__npogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__npogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__npogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__npogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__nonroadSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__npogACET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__npogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__npogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__npogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__npogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__npogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__npogSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__npogETH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__npogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__npogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__npogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__npogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__npogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__npogKET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__npogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__npogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__npogNO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__npogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__npogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__npogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__npogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__npogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__npogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__npogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__npogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__npogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__npogETH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__npogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__npogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__npogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__npogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__npogKET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__npogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__npogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__npogNO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__npogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__npogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__npogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__npogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__npogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__npogPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__npogPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__npogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__npogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__npogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__npogpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__npogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__npogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__npogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__npogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__npogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__npogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__onroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__onroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__onroadPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__onroadPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__onroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroadpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_TOLU__onroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_caACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroad_caACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_caALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_caALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_caBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_TOLU__onroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_caACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_caACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_caALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_caALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_caBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP_onroad__caSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_caETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_caETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_caETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_caFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_caHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_caIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_caKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_caMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_caNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_caNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_caNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_caOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_caPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_caPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_caPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_caPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__onroad_caPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_caPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_caSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__onroad_caETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_caETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_caETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_caFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_caHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_caKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_caMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_caNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_caNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_caNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_caPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_caPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_caPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_caPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__onroad_caPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__onroad_caPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__onroad_caPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_caPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_caSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_capFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_TOLU__onroad_caTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_caXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__railACET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__railACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__railALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__railALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__railBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_TOLU__onroad_caTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_caXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__railACET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__railACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__railALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__railALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__railBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__railSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__railETH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__railETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__railETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__railFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__railHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__railIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__railKET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__railMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__railNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__railNO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__railNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__railOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__railPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__railPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__railPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__railPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__railPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__railPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__railSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__railETH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__railETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__railETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__railFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__railHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__railKET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__railMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__railNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__railNO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__railNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__railPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__railPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__railPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__railPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__railPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__railPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__railPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__railPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__railSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__railpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__railSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__railTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__railXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__rwcACET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__rwcACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__rwcALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__rwcALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__rwcBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__rwcCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__rwcCO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__railSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__railTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__railXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__rwcACET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__rwcACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__rwcALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__rwcALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__rwcBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__rwcCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__rwcCO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__rwcSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__rwcETH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__rwcETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__rwcETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__rwcFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__rwcHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__rwcIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__rwcKET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__rwcMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__rwcNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__rwcNO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__rwcNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__rwcOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__rwcPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__rwcPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__rwcPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__rwcPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__rwcPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__rwcPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__rwcSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__rwcETH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__rwcETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__rwcETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__rwcFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__rwcHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__rwcKET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__rwcMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__rwcNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__rwcNO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__rwcNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__rwcPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__rwcPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__rwcPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__rwcPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__rwcPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__rwcPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__rwcPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__rwcPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__rwcSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__rwcpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__rwcSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__rwcTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__rwcXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_SO4__rwcSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__rwcTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__rwcXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 0 EPA16_ACET__c1c2ACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 0 EPA16_ALD2__c1c2ALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 0 EPA16_RCHO__c1c2ALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 @@ -604,6 +635,8 @@ Warnings: 1 0 EPA16_NIT__c1c2PNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 0 EPA16_OCPI__c1c2POC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 0 EPA16_OCPO__c1c2POC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__clc2POC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__clc2POC - - - - - - POG2 26/222/256/1007/74/77 1 50 0 EPA16_C3H8__c1c2PRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 0 EPA16_SO4__c1c2PSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 0 EPA16_SO2__c1c2SO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 @@ -637,6 +670,8 @@ Warnings: 1 0 EPA16_NIT__c3PNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 0 EPA16_OCPI__c3POC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 0 EPA16_OCPO__c3POC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__c3POC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__c3POC - - - - - - POG2 26/222/256/1007/74/77 1 50 0 EPA16_C3H8__c3PRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 0 EPA16_SO4__c3PSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 0 EPA16_SO2__c3SO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 @@ -673,6 +708,8 @@ Warnings: 1 0 EPA16_NIT__pteguPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 0 EPA16_OCPI__pteguPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 0 EPA16_OCPO__pteguPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__pteguPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__pteguPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 0 EPA16_C3H8__pteguPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 0 EPA16_SO4__pteguPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 0 EPA16_SO2__pteguSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 @@ -709,6 +746,8 @@ Warnings: 1 0 EPA16_NIT__ptogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 0 EPA16_OCPI__ptogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 0 EPA16_OCPO__ptogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__ptogPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__ptogPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 0 EPA16_C3H8__ptogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 0 EPA16_SO4__ptogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 0 EPA16_SO2__ptogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 @@ -745,6 +784,8 @@ Warnings: 1 0 EPA16_NIT__ptnonipmPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 0 EPA16_OCPI__ptnonipmPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 0 EPA16_OCPO__ptnonipmPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__ptnonipmPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__ptnonipmPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 0 EPA16_C3H8__ptnonipmPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 0 EPA16_SO4__ptnonipmPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 0 EPA16_SO2__ptnonipmSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 @@ -752,155 +793,167 @@ Warnings: 1 0 EPA16_SO4__ptnonipmSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 0 EPA16_TOLU__ptnonipmTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 0 EPA16_XYLE__ptnonipmXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_canACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_canALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_canALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_canBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_ACET__onroad_canACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_canALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_canALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_canBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroad_canSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_canETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_canETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_canETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_canFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_canHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_canIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_canKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_canMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_canNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_canNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_canNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_canOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_canPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_canPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_canPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_canPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__onroad_canPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_canPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_canSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__onroad_canETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_canETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_canETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_canFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_canHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_canKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_canMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_canNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_canNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_canNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_canPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_canPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_canPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_canPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__onroad_canPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__onroad_canPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__onroad_canPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_canPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_canSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_canpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__onroad_canSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__onroad_canTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_canXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_mexACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroad_mexACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_mexALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_mexALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_mexBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__onroad_canSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_canTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_canXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_mexACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_mexACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_mexALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_mexALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_mexBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroad_mexSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_mexETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_mexETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_mexETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_mexFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_mexHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_mexIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_mexKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_mexMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_mexNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_mexNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_mexNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_mexOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_mexPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_mexPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_mexPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_mexPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__onroad_mexPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_mexPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_mexSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__onroad_mexETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_mexETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_mexETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_mexFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_mexHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_mexKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_mexMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_mexNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_mexNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_mexNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_mexPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_mexPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_mexPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_mexPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__onroad_mexPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__onroad_mexPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__onroad_mexPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_mexPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_mexSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_mexpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__onroad_mexSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__onroad_mexTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_mexXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_BCPI__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othafdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othafdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othafdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_SO4__othafdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__otharACET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__otharALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__otharALDX $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__otharBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__onroad_mexSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_mexTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_mexXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othafdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othafdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othafdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__othafdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__othafdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_SO4__othafdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__otharACET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__otharALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__otharALDX $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__otharBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__otharSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__otharETH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__otharETHA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__otharETOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__otharFORM $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__otharHONO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__otharIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__otharKET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__otharMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__otharNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__otharNO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__otharNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__otharOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__otharPAR $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__otharPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__otharPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__otharPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__otharPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__otharPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__otharSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__otharETH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__otharETHA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__otharETOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__otharFORM $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__otharHONO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__otharKET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__otharMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__otharNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__otharNO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__otharNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__otharPAR $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__otharPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__otharPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__otharPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__otharPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__otharPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__otharPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__otharPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__otharSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__otharpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__otharSULF $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__otharTOL $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__otharXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_BCPI__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othptdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othptdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othptdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_SO4__othptdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__othptACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__othptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__othptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__othptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__otharSULF $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__otharTOL $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__otharXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__othptdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__othptdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_SO4__othptdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__othptACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__othptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__othptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__othptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__othptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__othptETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__othptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__othptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__othptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__othptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__othptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__othptKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__othptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__othptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__othptNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__othptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__othptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__othptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__othptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__othptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__othptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__othptETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__othptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__othptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__othptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__othptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__othptKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__othptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__othptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__othptNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__othptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__othptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__othptPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__othptPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__othptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__othptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__othptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__othptpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__othptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__othptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__othptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_SO4__othptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__othptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__othptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 )))NEI2016_MONMEAN #============================================================================== @@ -950,6 +1003,8 @@ Warnings: 1 0 DICE_CARS_BCPO - - - - - - BCPO 71/1008 1 60 0 DICE_CARS_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008/330 1 60 0 DICE_CARS_OCPO - - - - - - OCPO 73/1008/330 1 60 +0 DICE_CARS_POG1 - - - - - - POG1 74/76/1008/330 1 60 +0 DICE_CARS_POG2 - - - - - - POG2 74/77/1008/330 1 60 # ------------------------ # Motorcycles @@ -971,6 +1026,8 @@ Warnings: 1 0 DICE_MOTORCYCLES_BCPO - - - - - - BCPO 71/1008 1 60 0 DICE_MOTORCYCLES_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 0 DICE_MOTORCYCLES_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_MOTORCYCLES_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_MOTORCYCLES_POG2 - - - - - - POG2 74/77/1008 1 60 # ------------------------ # Backup generators @@ -996,9 +1053,11 @@ Warnings: 1 0 DICE_BACKUPGEN_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008 1 60 0 DICE_BACKUPGEN_XYLE $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc XYLE 2013/1/1/0 C xy g/m2/yr XYLE 26/1008 1 60 0 DICE_BACKUPGEN_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 1 60 -0 DICE_BACKUPGEN_BCPO - - - - - - BCPO 71/1008 1 60 +0 DICE_BACKUPGEN_BCPO - - - - - - BCPO 71/1008 1 60 0 DICE_BACKUPGEN_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 -0 DICE_BACKUPGEN_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_BACKUPGEN_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_BACKUPGEN_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_BACKUPGEN_POG2 - - - - - - POG2 74/77/1008 1 60 # ------------------------ # Charcoal production @@ -1020,6 +1079,8 @@ Warnings: 1 0 DICE_CHARCOALPROD_BCPO - - - - - - BCPO 71/1008/320 1 60 0 DICE_CHARCOALPROD_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008/320 1 60 0 DICE_CHARCOALPROD_OCPO - - - - - - OCPO 73/1008/320 1 60 +0 DICE_CHARCOALPROD_POG1 - - - - - - POG1 74/76/1008/320 1 60 +0 DICE_CHARCOALPROD_POG2 - - - - - - POG2 74/77/1008/320 1 60 # ------------------------ # Flaring of natural gas @@ -1038,6 +1099,8 @@ Warnings: 1 0 DICE_GASFLARE_BCPO - - - - - - BCPO 71/1008 1 60 0 DICE_GASFLARE_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 0 DICE_GASFLARE_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_GASFLARE_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_GASFLARE_POG2 - - - - - - POG2 74/77/1008 1 60 # ------------------------------ # Ag waste burning for energy @@ -1075,7 +1138,9 @@ Warnings: 1 0 DICE_AGBURNING_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 2 60 0 DICE_AGBURNING_BCPO - - - - - g/m2/yr BCPO 71/1008 2 60 0 DICE_AGBURNING_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 2 60 -0 DICE_AGBURNING_OCPO - - - - - g/m2/yr OCPO 73/1008 2 60 +0 DICE_AGBURNING_OCPO - - - - - - OCPO 73/1008 2 60 +0 DICE_AGBURNING_POG1 - - - - - - POG1 74/76/1008 2 60 +0 DICE_AGBURNING_POG2 - - - - - - POG2 74/77/1008 2 60 # ------------------------------ # Charcoal use @@ -1096,6 +1161,8 @@ Warnings: 1 0 DICE_CHARCOALUSE_BCPO - - - - - - BCPO 71/1008 2 60 0 DICE_CHARCOALUSE_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 2 60 0 DICE_CHARCOALUSE_OCPO - - - - - - OCPO 73/1008 2 60 +0 DICE_CHARCOALUSE_POG1 - - - - - - POG1 74/76/1008 2 60 +0 DICE_CHARCOALUSE_POG2 - - - - - - POG2 74/77/1008 2 60 # ------------------------------ # Kerosene use @@ -1106,6 +1173,8 @@ Warnings: 1 0 DICE_KEROSENE_BCPO - - - - - - BCPO 71/1008 1 60 0 DICE_KEROSENE_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-kerosene-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 0 DICE_KEROSENE_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_KEROSENE_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_KEROSENE_POG2 - - - - - - POG2 74/77/1008 1 60 # ------------------------------ # Artisanal oil refining @@ -1131,6 +1200,8 @@ Warnings: 1 0 DICE_OILREFINING_BCPO - - - - - - BCPO 71/1008 1 60 0 DICE_OILREFINING_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 0 DICE_OILREFINING_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_OILREFINING_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_OILREFINING_POG2 - - - - - - POG2 74/77/1008 1 60 # -------------------------- # Household fuelwood use @@ -1166,6 +1237,8 @@ Warnings: 1 0 DICE_HOUSEFUELWOOD_BCPO - - - - - - BCPO 71/1008 2 60 0 DICE_HOUSEFUELWOOD_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 2 60 0 DICE_HOUSEFUELWOOD_OCPO - - - - - - OCPO 73/1008 2 60 +0 DICE_HOUSEFUELWOOD_POG1 - - - - - - POG1 74/76/1008 2 60 +0 DICE_HOUSEFUELWOOD_POG2 - - - - - - POG2 74/77/1008 2 60 # --------------------------------- # Commercial (other) fuelwood use @@ -1201,6 +1274,8 @@ Warnings: 1 0 DICE_OTHERFUELWOOD_BCPO - - - - - - BCPO 71/1008 2 60 0 DICE_OTHERFUELWOOD_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 2 60 0 DICE_OTHERFUELWOOD_OCPO - - - - - - OCPO 73/1008 2 60 +0 DICE_OTHERFUELWOOD_POG1 - - - - - - POG1 74/76/1008 2 60 +0 DICE_OTHERFUELWOOD_POG2 - - - - - - POG2 74/77/1008 2 60 # --------------------------------------------------- # Efficient Combustion Emissions from EDGAR @@ -1253,7 +1328,7 @@ Warnings: 1 0 AF_EDGAR_POG2_POW - - - - - - POG2 1201/1008/74/77 1 60 0 AF_EDGAR_OCPI_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.ENG.0.1x0.1.nc emi_oc 1970-2010/1/1/0 RF xy kg/m2/s OCPI 1202/1008/72 1 60 0 AF_EDGAR_OCPO_ENG - - - - - - OCPO 1202/1008/73 1 60 -0 AF_EDGAR_POG1_ENG - - - - - - POG1 1202/74/1008/76 1 60 +0 AF_EDGAR_POG1_ENG - - - - - - POG1 1202/1008/74/76 1 60 0 AF_EDGAR_POG2_ENG - - - - - - POG2 1202/1008/74/77 1 60 0 AF_EDGAR_OCPI_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.IND.0.1x0.1.nc emi_oc 1970-2010/1/1/0 RF xy kg/m2/s OCPI 1203/1008/72 1 60 0 AF_EDGAR_OCPO_IND - - - - - - OCPO 1203/1008/73 1 60 @@ -1292,287 +1367,295 @@ Warnings: 1 # --- CEDS v2 --- # # %%% This is the default global inventory. You may select either CEDS, -# EDGAR, HTAP or CMIP6_SFC_LAND_ANTHRO for the global base emissions %%% +# EDGAR, HTAPv3 or CMIP6_SFC_LAND_ANTHRO for the global base emissions %%% +# +# Note for CESM: +# Scaling of enegy and industrial sectors is applied the same way +# as in the GEOS-Chem offline model except for aerosols SO2, SO4, +# black and organic carbon. These species use scaling +# for CESM developed by Louisa Emmons. See scaling section titled +# "CEDS to CAM-Chem scale factors" for reference. #============================================================================== (((CEDSv2 -0 CEDS_NO_AGR $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_agr 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_ENE $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ene 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_IND $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ind 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_TRA $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_tra 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_RCO $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_rco 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_SLV $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_slv 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_WST $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_wst 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 - -0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_AGR - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_ENE - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_IND - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_TRA - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_RCO - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_SLV - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_WST - - - - - - SOAP 26/280 1 5 - -0 CEDS_SO2_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_AGR - - - - - - so4_a1 8902 1 5 -0 CEDS_pFe_AGR - - - - - - pFe 66 1 5 -0 CEDS_SO2_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_ENE - - - - xyL=100m:300m - so4_a1 8907 1 5 -0 CEDS_pFe_ENE - - - - - - pFe 66 1 5 -0 CEDS_SO2_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_IND - - - - xyL=100m:300m - so4_a1 8908 1 5 -0 CEDS_pFe_IND - - - - - - pFe 66 1 5 -0 CEDS_SO2_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_TRA - - - - - - so4_a1 8906 1 5 -0 CEDS_pFe_TRA - - - - - - pFe 66 1 5 -0 CEDS_SO2_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_RCO - - - - - - so4_a1 8905 1 5 -0 CEDS_pFe_RCO - - - - - - pFe 66 1 5 -0 CEDS_SO2_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_SLV - - - - - - so4_a1 8904 1 5 -0 CEDS_pFe_SLV - - - - - - pFe 66 1 5 -0 CEDS_SO2_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_WST - - - - - - so4_a1 8903 1 5 -0 CEDS_pFe_WST - - - - - - pFe 66 1 5 - -0 CEDS_NH3_AGR $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_agr 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_ENE $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ene 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_IND $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ind 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_TRA $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_tra 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_RCO $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_rco 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_SLV $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_slv 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_WST $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_wst 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NO_AGR $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_agr 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_ENE $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s NO 25/315 1 5 +0 CEDS_NO_IND $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s NO 25/316 1 5 +0 CEDS_NO_TRA $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_tra 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_RCO $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_rco 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_SLV $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_slv 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_WST $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_wst 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 + +0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_AGR - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 26/315 1 5 +0 CEDS_SOAP_ENE - - - - - - SOAP 26/280/315 1 5 +0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 26/316 1 5 +0 CEDS_SOAP_IND - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_TRA - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_RCO - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_SLV - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_WST - - - - - - SOAP 26/280 1 5 + +0 CEDS_SO2_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_AGR - - - - - - so4_a1 8902 1 5 +0 CEDS_pFe_AGR - - - - - - pFe 66 1 5 +0 CEDS_SO2_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_ENE - - - - xyL=100m:300m - so4_a1 8907 1 5 +0 CEDS_pFe_ENE - - - - - - pFe 66 1 5 +0 CEDS_SO2_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_IND - - - - xyL=100m:300m - so4_a1 8908 1 5 +0 CEDS_pFe_IND - - - - - - pFe 66 1 5 +0 CEDS_SO2_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_TRA - - - - - - so4_a1 8906 1 5 +0 CEDS_pFe_TRA - - - - - - pFe 66 1 5 +0 CEDS_SO2_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_RCO - - - - - - so4_a1 8905 1 5 +0 CEDS_pFe_RCO - - - - - - pFe 66 1 5 +0 CEDS_SO2_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_SLV - - - - - - so4_a1 8904 1 5 +0 CEDS_pFe_SLV - - - - - - pFe 66 1 5 +0 CEDS_SO2_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_WST - - - - - - so4_a1 8903 1 5 +0 CEDS_pFe_WST - - - - - - pFe 66 1 5 + +0 CEDS_NH3_AGR $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_agr 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_ENE $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s NH3 315 1 5 +0 CEDS_NH3_IND $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s NH3 316 1 5 +0 CEDS_NH3_TRA $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_tra 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_RCO $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_rco 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_SLV $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_slv 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_WST $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_wst 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 #----------------------------------------------------- # AEROSOL NUMBER EMISSIONS FOR CEDS in CESM - hplin 8/11/22 # note shp emiss in ship section #----------------------------------------------------- -0 CEDS_SO4n_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s num_a1 8902/8014 1 5 -0 CEDS_SO4n_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s num_a1 8903/8014 1 5 -0 CEDS_SO4n_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s num_a1 8904/8014 1 5 -0 CEDS_SO4n_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s num_a2 8906/8022 1 5 -0 CEDS_SO4n_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s num_a2 8905/8022 1 5 -0 CEDS_SO4n_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xyL=100m:300m kg/m2/s num_a1 8907/8011 1 5 -0 CEDS_SO4n_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xyL=100m:300m kg/m2/s num_a1 8908/8011 1 5 + +0 CEDS_SO4n_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s num_a1 8902/8014 1 5 +0 CEDS_SO4n_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s num_a1 8903/8014 1 5 +0 CEDS_SO4n_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s num_a1 8904/8014 1 5 +0 CEDS_SO4n_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s num_a2 8906/8022 1 5 +0 CEDS_SO4n_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s num_a2 8905/8022 1 5 +0 CEDS_SO4n_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xyL=100m:300m kg/m2/s num_a1 8907/8011 1 5 +0 CEDS_SO4n_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xyL=100m:300m kg/m2/s num_a1 8908/8011 1 5 # BC emiss are classified as a4 for all anthro -0 CEDS_BCn_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 -0 CEDS_BCn_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 -0 CEDS_BCn_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 -0 CEDS_BCn_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 -0 CEDS_BCn_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 -0 CEDS_BCn_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 -0 CEDS_BCn_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 +0 CEDS_BCn_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 +0 CEDS_BCn_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 +0 CEDS_BCn_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 +0 CEDS_BCn_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 +0 CEDS_BCn_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 +0 CEDS_BCn_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 +0 CEDS_BCn_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 # OC emiss are classified as a4 for all anthro -0 CEDS_OCn_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 -0 CEDS_OCn_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 -0 CEDS_OCn_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 -0 CEDS_OCn_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 -0 CEDS_OCn_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 -0 CEDS_OCn_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 -0 CEDS_OCn_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 +0 CEDS_OCn_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 +0 CEDS_OCn_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 +0 CEDS_OCn_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 +0 CEDS_OCn_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 +0 CEDS_OCn_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 +0 CEDS_OCn_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 +0 CEDS_OCn_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8930/8042 1 5 #----------------------------------------------------- # // end AEROSOL NUMBER EMISSIONS FOR CEDS in CESM #----------------------------------------------------- -0 CEDS_BCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 -0 CEDS_BCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 -0 CEDS_BCPI_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 -0 CEDS_BCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 -0 CEDS_BCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 -0 CEDS_BCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 -0 CEDS_BCPI_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 - -0 CEDS_OCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 -0 CEDS_POG1_AGR - - - - - - POG1 73/74/76 1 5 -0 CEDS_POG2_AGR - - - - - - POG2 73/74/77 1 5 -0 CEDS_OCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 -0 CEDS_POG1_ENE - - - - - - POG1 73/74/76 1 5 -0 CEDS_POG2_ENE - - - - - - POG2 73/74/77 1 5 -0 CEDS_OCPI_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 -0 CEDS_POG1_IND - - - - - - POG1 73/74/76 1 5 -0 CEDS_POG2_IND - - - - - - POG2 73/74/77 1 5 -0 CEDS_OCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 -0 CEDS_POG1_TRA - - - - - - POG1 73/74/76 1 5 -0 CEDS_POG2_TRA - - - - - - POG2 73/74/77 1 5 -0 CEDS_OCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 -0 CEDS_POG1_RCO - - - - - - POG1 73/74/76 1 5 -0 CEDS_POG2_RCO - - - - - - POG2 73/74/77 1 5 -0 CEDS_OCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 -0 CEDS_POG1_SLV - - - - - - POG1 73/74/76 1 5 -0 CEDS_POG2_SLV - - - - - - POG2 73/74/77 1 5 -0 CEDS_OCPI_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 -0 CEDS_POG1_WST - - - - - - POG1 73/74/76 1 5 -0 CEDS_POG2_WST - - - - - - POG2 73/74/77 1 5 +0 CEDS_BCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 +0 CEDS_BCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 +0 CEDS_BCPI_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 +0 CEDS_BCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 +0 CEDS_BCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 +0 CEDS_BCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 +0 CEDS_BCPI_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s bc_a4 8920 1 5 + +0 CEDS_OCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 +0 CEDS_POG1_AGR - - - - - - POG1 73/74/76 1 5 +0 CEDS_POG2_AGR - - - - - - POG2 73/74/77 1 5 +0 CEDS_OCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 +0 CEDS_POG1_ENE - - - - - - POG1 73/74/76 1 5 +0 CEDS_POG2_ENE - - - - - - POG2 73/74/77 1 5 +0 CEDS_OCPI_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 +0 CEDS_POG1_IND - - - - - - POG1 73/74/76 1 5 +0 CEDS_POG2_IND - - - - - - POG2 73/74/77 1 5 +0 CEDS_OCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 +0 CEDS_POG1_TRA - - - - - - POG1 73/74/76 1 5 +0 CEDS_POG2_TRA - - - - - - POG2 73/74/77 1 5 +0 CEDS_OCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 +0 CEDS_POG1_RCO - - - - - - POG1 73/74/76 1 5 +0 CEDS_POG2_RCO - - - - - - POG2 73/74/77 1 5 +0 CEDS_OCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 +0 CEDS_POG1_SLV - - - - - - POG1 73/74/76 1 5 +0 CEDS_POG2_SLV - - - - - - POG2 73/74/77 1 5 +0 CEDS_OCPI_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s pom_a4 8930 1 5 +0 CEDS_POG1_WST - - - - - - POG1 73/74/76 1 5 +0 CEDS_POG2_WST - - - - - - POG2 73/74/77 1 5 # Comment out CO2 for fullchem simulations: CO2 not advected -#0 CEDS_CO2_AGR $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_ENE $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_IND $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_TRA $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_RCO $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_SLV $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_WST $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_AGR $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_ENE $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO2 315 1 5 +#0 CEDS_CO2_IND $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO2 316 1 5 +#0 CEDS_CO2_TRA $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_RCO $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_SLV $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_WST $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 # Comment out CH4 for fullchem simulations: do not use CH4 emissions # CEDS CH4 emissions are only available for 1970-2014 -#0 CEDS_CH4_AGR $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_ENE $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_IND $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_TRA $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_RCO $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_SLV $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_WST $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_AGR $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_ENE $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ene 1970-2014/1-12/1/0 C xyL* kg/m2/s CH4 315 1 5 +#0 CEDS_CH4_IND $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ind 1970-2014/1-12/1/0 C xyL* kg/m2/s CH4 316 1 5 +#0 CEDS_CH4_TRA $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_RCO $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_SLV $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_WST $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 # NOTE: EOH files in CEDS/v2021-06 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here -0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_AGR - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_AGR - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_ENE - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_ENE - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_IND - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_IND - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_TRA - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_TRA - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_RCO - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_RCO - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_SLV - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_SLV - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_WST - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_WST - - - - - - ROH 26/92 1 5 - -0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 - -0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 - -0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 - -0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 - -0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 - -0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 - -0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 - -0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 - -0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 - -0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 - -0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 - -0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_AGR - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_AGR - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s MOH 26/90/315 1 5 +0 CEDS_EOH_ENE - - - - - - EOH 26/91/315 1 5 +0 CEDS_ROH_ENE - - - - - - ROH 26/92/315 1 5 +0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s MOH 26/90/316 1 5 +0 CEDS_EOH_IND - - - - - - EOH 26/91/316 1 5 +0 CEDS_ROH_IND - - - - - - ROH 26/92/316 1 5 +0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_TRA - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_TRA - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_RCO - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_RCO - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_SLV - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_SLV - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_WST - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_WST - - - - - - ROH 26/92 1 5 + +0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H6 26/315 1 5 +0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H6 26/316 1 5 +0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 + +0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C3H8 26/315 1 5 +0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C3H8 26/316 1 5 +0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 + +0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 26/315 1 5 +0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 26/316 1 5 +0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 26/315 1 5 +0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 26/316 1 5 +0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 26/315 1 5 +0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 26/316 1 5 +0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H4 26/315 1 5 +0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H4 26/316 1 5 +0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 + +0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s PRPE 26/315 1 5 +0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s PRPE 26/316 1 5 +0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 + +0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H2 26/315 1 5 +0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H2 26/316 1 5 +0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 + +0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s BENZ 26/315 1 5 +0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s BENZ 26/316 1 5 +0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 + +0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s TOLU 26/315 1 5 +0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s TOLU 26/316 1 5 +0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 + +0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s XYLE 26/315 1 5 +0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s XYLE 26/316 1 5 +0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 + +0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CH2O 26/315 1 5 +0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CH2O 26/316 1 5 +0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 + +0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALD2 26/315 1 5 +0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALD2 26/316 1 5 +0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 + +0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s MEK 26/315 1 5 +0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s MEK 26/316 1 5 +0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 + +0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s HCOOH 26/315 1 5 +0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s HCOOH 26/316 1 5 +0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 )))CEDSv2 #============================================================================== @@ -1590,10 +1673,13 @@ Warnings: 1 (((CEDS_GBDMAPS >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS.rc )))CEDS_GBDMAPS + (((CEDS_GBDMAPS_byFuelType -(((.not.CEDS_GBDMAPS.and..not.CEDSv2 +(((.not.CEDS_GBDMAPS +(((.not.CEDSv2 >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS_byFuelType.rc -))).not.CEDS_GBDMAPS.and..not.CEDSv2 +))).not.CEDSv2 +))).not.CEDS_GBDMAPS )))CEDS_GBDMAPS_byFuelType #============================================================================== @@ -1601,296 +1687,299 @@ Warnings: 1 # CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with # the CMIP6 simulation experimental design. # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS # #============================================================================== (((CMIP6_SFC_LAND_ANTHRO -0 CMIP6_NO_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_agr 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_ene 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_ind 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_tra 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_rco 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_slv 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_wst 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 - -0 CMIP6_CO_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_AGR - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_ENE - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_IND - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_TRA - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_RCO - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_SLV - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_WST - - - - - - SOAP 26/280 1 5 - -0 CMIP6_SO2_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_AGR - - - - - - SO4 63 1 5 -0 CMIP6_pFe_AGR - - - - - - pFe 66 1 5 -0 CMIP6_SO2_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_ENE - - - - - - SO4 63 1 5 -0 CMIP6_pFe_ENE - - - - - - pFe 66 1 5 -0 CMIP6_SO2_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_IND - - - - - - SO4 63 1 5 -0 CMIP6_pFe_IND - - - - - - pFe 66 1 5 -0 CMIP6_SO2_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_TRA - - - - - - SO4 63 1 5 -0 CMIP6_pFe_TRA - - - - - - pFe 66 1 5 -0 CMIP6_SO2_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_RCO - - - - - - SO4 63 1 5 -0 CMIP6_pFe_RCO - - - - - - pFe 66 1 5 -0 CMIP6_SO2_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_SLV - - - - - - SO4 63 1 5 -0 CMIP6_pFe_SLV - - - - - - pFe 66 1 5 -0 CMIP6_SO2_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_WST - - - - - - SO4 63 1 5 -0 CMIP6_pFe_WST - - - - - - pFe 66 1 5 - -0 CMIP6_NH3_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_agr 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_ene 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_ind 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_tra 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_rco 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_slv 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_wst 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 - -0 CMIP6_BCPI_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_agr 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_AGR - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_ene 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_ENE - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_ind 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_IND - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_tra 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_TRA - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_rco 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_RCO - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_slv 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_SLV - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_wst 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_WST - - - - - - BCPO 71 1 5 - -0 CMIP6_OCPI_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_agr 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_AGR - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_AGR - - - - - - POG1 73/74/76 1 5 -0 CMIP6_POG2_AGR - - - - - - POG2 73/74/77 1 5 -0 CMIP6_OCPI_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_ene 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_ENE - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_ENE - - - - - - POG1 73/74/76 1 5 -0 CMIP6_POG2_ENE - - - - - - POG2 73/74/77 1 5 -0 CMIP6_OCPI_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_ind 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_IND - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_IND - - - - - - POG1 73/74/76 1 5 -0 CMIP6_POG2_IND - - - - - - POG2 73/74/77 1 5 -0 CMIP6_OCPI_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_tra 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_TRA - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_TRA - - - - - - POG1 73/74/76 1 5 -0 CMIP6_POG2_TRA - - - - - - POG2 73/74/77 1 5 -0 CMIP6_OCPI_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_rco 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_RCO - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_RCO - - - - - - POG1 73/74/76 1 5 -0 CMIP6_POG2_RCO - - - - - - POG2 73/74/77 1 5 -0 CMIP6_OCPI_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_slv 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_SLV - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_SLV - - - - - - POG1 73/74/76 1 5 -0 CMIP6_POG2_SLV - - - - - - POG2 73/74/77 1 5 -0 CMIP6_OCPI_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_wst 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_WST - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_WST - - - - - - POG1 73/74/76 1 5 -0 CMIP6_POG2_WST - - - - - - POG2 73/74/77 1 5 +0 CMIP6_NO_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_agr 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_ene 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_ind 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_tra 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_rco 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_slv 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_wst 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 + +0 CMIP6_CO_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_AGR - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_ENE - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_IND - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_TRA - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_RCO - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_SLV - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_WST - - - - - - SOAP 26/280 1 5 + +0 CMIP6_SO2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_AGR - - - - - - SO4 63 1 5 +0 CMIP6_pFe_AGR - - - - - - pFe 66 1 5 +0 CMIP6_SO2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_ENE - - - - - - SO4 63 1 5 +0 CMIP6_pFe_ENE - - - - - - pFe 66 1 5 +0 CMIP6_SO2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_IND - - - - - - SO4 63 1 5 +0 CMIP6_pFe_IND - - - - - - pFe 66 1 5 +0 CMIP6_SO2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_TRA - - - - - - SO4 63 1 5 +0 CMIP6_pFe_TRA - - - - - - pFe 66 1 5 +0 CMIP6_SO2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_RCO - - - - - - SO4 63 1 5 +0 CMIP6_pFe_RCO - - - - - - pFe 66 1 5 +0 CMIP6_SO2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_SLV - - - - - - SO4 63 1 5 +0 CMIP6_pFe_SLV - - - - - - pFe 66 1 5 +0 CMIP6_SO2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_WST - - - - - - SO4 63 1 5 +0 CMIP6_pFe_WST - - - - - - pFe 66 1 5 + +0 CMIP6_NH3_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_agr 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_ene 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_ind 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_tra 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_rco 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_slv 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_wst 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 + +0 CMIP6_BCPI_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_agr 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_AGR - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_ene 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_ENE - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_ind 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_IND - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_tra 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_TRA - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_rco 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_RCO - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_slv 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_SLV - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_wst 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_WST - - - - - - BCPO 71 1 5 + +0 CMIP6_OCPI_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_agr 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_AGR - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_AGR - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_AGR - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_ene 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_ENE - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_ENE - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_ENE - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_ind 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_IND - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_IND - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_IND - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_tra 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_TRA - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_TRA - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_TRA - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_rco 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_RCO - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_RCO - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_RCO - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_slv 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_SLV - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_SLV - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_SLV - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_wst 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_WST - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_WST - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_WST - - - - - - POG2 74/77 1 5 # Comment out CO2 for fullchem simulations: CO2 not advected -#0 CMIP6_CO2_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 # Comment out CH4 for fullchem simulations: do not use CH4 emissions # CMIP6 CH4 emissions are only available for 1970-2014 -#0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 # NOTE: EOH files in CMIP6/v2021-01 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here -0 CMIP6_MOH_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_AGR - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_AGR - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_ENE - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_ENE - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_IND - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_IND - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_TRA - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_TRA - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_RCO - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_RCO - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_SLV - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_SLV - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_WST - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_WST - - - - - - ROH 26/92 1 5 - -0 CMIP6_C2H6_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 - -0 CMIP6_C3H8_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_agr 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_ene 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_ind 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_tra 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_rco 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_slv 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_wst 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 - -0 CMIP6_C4H10_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CMIP6_C5H12_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CMIP6_C6H14_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CMIP6_C2H4_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 - -0 CMIP6_PRPE_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_agr 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_ene 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_ind 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_tra 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_rco 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_slv 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_wst 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 - -0 CMIP6_C2H2_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 - -0 CMIP6_BENZ_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_agr 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_ene 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_ind 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_tra 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_rco 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_slv 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_wst 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 - -0 CMIP6_TOLU_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_agr 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_ene 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_ind 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_tra 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_rco 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_slv 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_wst 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 - -0 CMIP6_XYLE_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_agr 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_ene 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_ind 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_tra 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_rco 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_slv 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_wst 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 - -0 CMIP6_CH2O_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_agr 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_ene 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_ind 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_tra 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_rco 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_slv 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_wst 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 - -0 CMIP6_ALD2_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 - -0 CMIP6_MEK_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_agr 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_ene 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_ind 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_tra 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_rco 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_slv 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_wst 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 - -0 CMIP6_HCOOH_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_MOH_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_AGR - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_AGR - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_ENE - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_ENE - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_IND - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_IND - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_TRA - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_TRA - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_RCO - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_RCO - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_SLV - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_SLV - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_WST - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_WST - - - - - - ROH 26/92 1 5 + +0 CMIP6_C2H6_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 + +0 CMIP6_C3H8_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_agr 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_ene 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_ind 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_tra 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_rco 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_slv 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_wst 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 + +0 CMIP6_C4H10_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CMIP6_C5H12_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CMIP6_C6H14_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CMIP6_C2H4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 + +0 CMIP6_PRPE_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_agr 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_ene 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_ind 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_tra 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_rco 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_slv 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_wst 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 + +0 CMIP6_C2H2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 + +0 CMIP6_BENZ_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_agr 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_ene 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_ind 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_tra 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_rco 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_slv 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_wst 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 + +0 CMIP6_TOLU_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_agr 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_ene 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_ind 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_tra 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_rco 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_slv 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_wst 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 + +0 CMIP6_XYLE_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_agr 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_ene 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_ind 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_tra 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_rco 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_slv 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_wst 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 + +0 CMIP6_CH2O_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_agr 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_ene 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_ind 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_tra 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_rco 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_slv 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_wst 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 + +0 CMIP6_ALD2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 + +0 CMIP6_MEK_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_agr 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_ene 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_ind 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_tra 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_rco 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_slv 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_wst 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 + +0 CMIP6_HCOOH_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 )))CMIP6_SFC_LAND_ANTHRO #============================================================================== # CEDS (historical) or Shared Socioeconomic Pathways (future) aircraft # emissions, consistent with the CMIP6 simulation experimental design # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS # #============================================================================== (((CMIP6_AIRCRAFT -0 CMIP6_AIR_NO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NO_air 1750-2100/1-12/1/0 C xyz kg/m2/s NO - 20 1 -0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO - 20 1 -0 CMIP6_AIR_SOAP - - - - - - SOAP 280 20 1 -0 CMIP6_AIR_SO2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 SO2_air 1750-2100/1-12/1/0 C xyz kg/m2/s SO2 - 20 1 -0 CMIP6_AIR_SO4 - - - - - - SO4 63 20 1 -0 CMIP6_AIR_ACET - - - - - - ACET 601 20 1 -0 CMIP6_AIR_ALD2 - - - - - - ALD2 602 20 1 -0 CMIP6_AIR_ALK4 - - - - - - ALK4 603 20 1 -0 CMIP6_AIR_C2H6 - - - - - - C2H6 604 20 1 -0 CMIP6_AIR_C3H8 - - - - - - C3H8 605 20 1 -0 CMIP6_AIR_CH2O - - - - - - CH2O 606 20 1 -0 CMIP6_AIR_PRPE - - - - - - PRPE 607 20 1 -0 CMIP6_AIR_MACR - - - - - - MACR 608 20 1 -0 CMIP6_AIR_RCHO - - - - - - RCHO 609 20 1 -0 CMIP6_AIR_NH3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NH3_air 1750-2100/1-12/1/0 C xyz kg/m2/s NH3 - 20 1 +0 CMIP6_AIR_NO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NO_air 1750-2100/1-12/1/0 C xyz kg/m2/s NO - 20 1 +0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO - 20 1 +0 CMIP6_AIR_SOAP - - - - - - SOAP 280 20 1 +0 CMIP6_AIR_SO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 SO2_air 1750-2100/1-12/1/0 C xyz kg/m2/s SO2 - 20 1 +0 CMIP6_AIR_SO4 - - - - - - SO4 63 20 1 +0 CMIP6_AIR_pFe - - - - - - pFe 66 20 1 +0 CMIP6_AIR_ACET - - - - - - ACET 601 20 1 +0 CMIP6_AIR_ALD2 - - - - - - ALD2 602 20 1 +0 CMIP6_AIR_ALK4 - - - - - - ALK4 603 20 1 +0 CMIP6_AIR_C2H6 - - - - - - C2H6 604 20 1 +0 CMIP6_AIR_C3H8 - - - - - - C3H8 605 20 1 +0 CMIP6_AIR_CH2O - - - - - - CH2O 606 20 1 +0 CMIP6_AIR_PRPE - - - - - - PRPE 607 20 1 +0 CMIP6_AIR_MACR - - - - - - MACR 608 20 1 +0 CMIP6_AIR_RCHO - - - - - - RCHO 609 20 1 +0 CMIP6_AIR_NH3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NH3_air 1750-2100/1-12/1/0 C xyz kg/m2/s NH3 - 20 1 # Assume all BC/OC is BCPI/OCPI -0 CMIP6_AIR_BCPI $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 BC_air 1750-2100/1-12/1/0 C xyz kg/m2/s BCPI - 20 1 -0 CMIP6_AIR_OCPI $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 OC_air 1750-2100/1-12/1/0 C xyz kg/m2/s OCPI - 20 1 +0 CMIP6_AIR_BCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 BC_air 1750-2100/1-12/1/0 C xyz kg/m2/s BCPI - 20 1 +0 CMIP6_AIR_OCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 OC_air 1750-2100/1-12/1/0 C xyz kg/m2/s OCPI - 20 1 +0 CMIP6_AIR_POG1 - - - - - - POG1 74/76 20 1 +0 CMIP6_AIR_POG2 - - - - - - POG2 74/77 20 1 )))CMIP6_AIRCRAFT @@ -1898,7 +1987,7 @@ Warnings: 1 # --- EDGAR v4.3 --- # # %%% This is an optional inventory. You may select either CEDS, EDGAR, -# or HTAP for the global base emissions %%% +# or HTAPv3 for the global base emissions %%% # # The following emissions are not included in EDGAR and will be added: # * Wiedinmyer et al. (2014) global trash emissions @@ -2063,6 +2152,8 @@ Warnings: 1 0 TRASH_BCPO - - - - - - BCPO 71 1 2 0 TRASH_OCPI $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc OC 2008/1/1/0 C xy kg/m2/s OCPI 72 1 2 0 TRASH_OCPO - - - - - - OCPO 73 1 2 +0 TRASH_POG1 - - - - - - POG1 74/76 1 2 +0 TRASH_POG2 - - - - - - POG2 74/77 1 2 0 TRASH_NH3 $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc NH3 2008/1/1/0 C xy kg/m2/s NH3 - 1 2 #============================================================================== @@ -2212,63 +2303,235 @@ Warnings: 1 )))EDGARv43 #============================================================================== -# --- HTAP v2 --- +# --- HTAP v3 --- # # %%% This is an optional inventory. You may select either CEDS, EDGAR, -# or HTAP for the global base emissions %%% +# or HTAPv3 for the global base emissions %%% +# +# ==> HTAPv3 ship emissions are listed in the ship emissions section below +#============================================================================== +(((HTAPv3 +0 HTAPv3_NO_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_AGR 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_ENE 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_IND 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_TRA 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_RCO 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_SLV 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_WST 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_CO_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_AGR 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_AGR - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_ENE 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_ENE - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_IND 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_IND - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_TRA 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_TRA - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_RCO 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_RCO - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_SLV 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_SLV - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_WST 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_WST - - - - - - SOAP 26/280 1 4 +0 HTAPv3_SO2_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_AGR 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_AGR - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_AGR - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_ENE 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_ENE - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_ENE - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_IND 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_IND - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_IND - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_TRA 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_TRA - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_TRA - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_RCO 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_RCO - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_RCO - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_SLV 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_SLV - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_SLV - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_WST 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_WST - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_WST - - - - - - pFe 66 1 4 +0 HTAPv3_NH3_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_AGR 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_ENE 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_IND 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_TRA 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_RCO 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_SLV 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_WST 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_BCPI_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_AGR 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_AGR - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_ENE 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_ENE - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_IND 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_IND - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_TRA 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_TRA - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_RCO 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_RCO - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_SLV 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_SLV - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_WST 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_WST - - - - - - BCPO 71 1 4 +0 HTAPv3_OCPI_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_AGR 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_AGR - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_AGR - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_AGR - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_ENE 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_ENE - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_ENE - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_ENE - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_IND 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_IND - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_IND - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_IND - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_TRA 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_TRA - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_TRA - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_TRA - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_RCO 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_RCO - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_RCO - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_RCO - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_SLV 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_SLV - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_SLV - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_SLV - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_WST 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_WST - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_WST - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_WST - - - - - - POG2 73/74/77 1 4 # -# ==> HTAP ship emissions are listed in the ship emissions section below -# ==> Disable aircraft emissions and get them from AEIC instead. -#============================================================================== -(((HTAP -0 HTAP_NO_IND $ROOT/HTAP/v2015-03/NO/EDGAR_HTAP_NO_INDUSTRY.generic.01x01.nc emi_no 2008-2010/1-12/1/0 C xy kg/m2/s NO 1/27/25 1 4 -0 HTAP_NO_POW $ROOT/HTAP/v2015-03/NO/EDGAR_HTAP_NO_ENERGY.generic.01x01.nc emi_no 2008-2010/1-12/1/0 C xy kg/m2/s NO 1/27/25 1 4 -0 HTAP_NO_RES $ROOT/HTAP/v2015-03/NO/EDGAR_HTAP_NO_RESIDENTIAL.generic.01x01.nc emi_no 2008-2010/1-12/1/0 C xy kg/m2/s NO 1/27/25 1 4 -0 HTAP_NO_TRA $ROOT/HTAP/v2015-03/NO/EDGAR_HTAP_NO_TRANSPORT.generic.01x01.nc emi_no 2008-2010/1-12/1/0 C xy kg/m2/s NO 1/27/25 1 4 -#0 HTAP_NO_AIR1 $ROOT/HTAP/v2015-03/NO/EDGAR_HTAP_NO_AIR_LTO.generic.01x01.nc emi_no 2008-2010/1/1/0 C xy kg/m2/s NO 1/27/25 1 4 -#0 HTAP_NO_AIR2 $ROOT/HTAP/v2015-03/NO/EDGAR_HTAP_NO_AIR_CDS.generic.01x01.nc emi_no 2008-2010/1/1/0 C xy kg/m2/s NO 1/27/25 1 4 -#0 HTAP_NO_AIR3 $ROOT/HTAP/v2015-03/NO/EDGAR_HTAP_NO_AIR_CRS.generic.01x01.nc emi_no 2008-2010/1/1/0 C xy kg/m2/s NO 1/27/25 1 4 -0 HTAP_CO_IND $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_INDUSTRY.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s CO 6/28/26 1 4 -0 HTAP_SOAP_IND - - - - - - SOAP 6/28/26/280 1 4 -0 HTAP_CO_POW $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_ENERGY.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s CO 6/28/26 1 4 -0 HTAP_SOAP_POW - - - - - - SOAP 6/28/26/280 1 4 -0 HTAP_CO_RES $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_RESIDENTIAL.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s CO 6/28/26 1 4 -0 HTAP_SOAP_RES - - - - - - SOAP 6/28/26/280 1 4 -0 HTAP_CO_TRA $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_TRANSPORT.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s CO 6/28/26 1 4 -0 HTAP_SOAP_TRA - - - - - - SOAP 6/28/26/280 1 4 -#0 HTAP_CO_AIR1 $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_LTO.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s CO 6/28/26 1 4 -#0 HTAP_SOAP_CO - - - - - - SOAP 6/28/26/280 1 4 -#0 HTAP_CO_AIR2 $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CDS.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s CO 6/28/26 1 4 -#0 HTAP_SOAP_CO - - - - - - SOAP 6/28/26/280 1 4 -#0 HTAP_CO_AIR3 $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CRS.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s CO 6/28/26 1 4 -#0 HTAP_SOAP_CO - - - - - - SOAP 6/28/26/280 1 4 -0 HTAP_SO2_IND $ROOT/HTAP/v2015-03/SO2/EDGAR_HTAP_SO2_INDUSTRY.generic.01x01.nc emi_so2 2008-2010/1-12/1/0 C xy kg/m2/s SO2 11/29 1 4 -0 HTAP_SO4_IND - - - - - - SO4 11/29/63 1 4 -0 HTAP_pFe_IND - - - - - - pFe 11/29/66 1 4 -0 HTAP_SO2_POW $ROOT/HTAP/v2015-03/SO2/EDGAR_HTAP_SO2_ENERGY.generic.01x01.nc emi_so2 2008-2010/1-12/1/0 C xy kg/m2/s SO2 11/29 1 4 -0 HTAP_SO4_POW - - - - - - SO4 11/29/63 1 4 -0 HTAP_pFe_POW - - - - - - pFe 11/29/66 1 4 -0 HTAP_SO2_RES $ROOT/HTAP/v2015-03/SO2/EDGAR_HTAP_SO2_RESIDENTIAL.generic.01x01.nc emi_so2 2008-2010/1-12/1/0 C xy kg/m2/s SO2 11/29 1 4 -0 HTAP_SO4_RES - - - - - - SO4 11/29/63 1 4 -0 HTAP_pFe_RES - - - - - - pFe 11/29/66 1 4 -0 HTAP_SO2_TRA $ROOT/HTAP/v2015-03/SO2/EDGAR_HTAP_SO2_TRANSPORT.generic.01x01.nc emi_so2 2008-2010/1-12/1/0 C xy kg/m2/s SO2 11/29 1 4 -0 HTAP_SO4_TRA - - - - - - SO4 11/29/63 1 4 -0 HTAP_pFe_TRA - - - - - - pFe 11/29/66 1 4 -#0 HTAP_SO2_AIR1 $ROOT/HTAP/v2015-03/SO2/EDGAR_HTAP_SO2_AIR_LTO.generic.01x01.nc emi_so2 2008-2010/1/1/0 C xy kg/m2/s SO2 11/29 1 4 -#0 HTAP_SO4_AIR1 - - - - - - SO4 11/29/63 1 4 -#0 HTAP_pFe_AIR1 - - - - - - pFe 11/29/66 1 4 -#0 HTAP_SO2_AIR2 $ROOT/HTAP/v2015-03/SO2/EDGAR_HTAP_SO2_AIR_CDS.generic.01x01.nc emi_so2 2008-2010/1/1/0 C xy kg/m2/s SO2 11/29 1 4 -#0 HTAP_SO4_AIR2 - - - - - - SO4 11/29/63 1 4 -#0 HTAP_pFe_AIR2 - - - - - - pFe 11/29/66 1 4 -#0 HTAP_SO2_AIR3 $ROOT/HTAP/v2015-03/SO2/EDGAR_HTAP_SO2_AIR_CRS.generic.01x01.nc emi_so2 2008-2010/1/1/0 C xy kg/m2/s SO2 11/29 1 4 -#0 HTAP_SO4_AIR3 - - - - - - SO4 11/29/63 1 4 -#0 HTAP_pFe_AIR3 - - - - - - pFe 11/29/66 1 4 -0 HTAP_NH3_IND $ROOT/HTAP/v2015-03/NH3/EDGAR_HTAP_NH3_INDUSTRY.generic.01x01.nc emi_nh3 2008-2010/1-12/1/0 C xy kg/m2/s NH3 - 1 4 -0 HTAP_NH3_POW $ROOT/HTAP/v2015-03/NH3/EDGAR_HTAP_NH3_ENERGY.generic.01x01.nc emi_nh3 2008-2010/1-12/1/0 C xy kg/m2/s NH3 - 1 4 -0 HTAP_NH3_RES $ROOT/HTAP/v2015-03/NH3/EDGAR_HTAP_NH3_RESIDENTIAL.generic.01x01.nc emi_nh3 2008-2010/1-12/1/0 C xy kg/m2/s NH3 - 1 4 -0 HTAP_NH3_TRA $ROOT/HTAP/v2015-03/NH3/EDGAR_HTAP_NH3_TRANSPORT.generic.01x01.nc emi_nh3 2008-2010/1-12/1/0 C xy kg/m2/s NH3 - 1 4 -0 HTAP_NH3_AGR $ROOT/HTAP/v2015-03/NH3/EDGAR_HTAP_NH3_AGRICULTURE.generic.01x01.nc emi_nh3 2008-2010/1-12/1/0 C xy kg/m2/s NH3 - 1 4 -)))HTAP +# Use CEDSv2 for species that are not in the HTAPv3 inventory +# NOTE: EOH files in CEDS/v2021-06 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here +0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_AGR - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_AGR - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_ENE - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_ENE - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_IND - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_IND - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_TRA - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_TRA - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_RCO - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_RCO - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_SLV - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_SLV - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_WST - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_WST - - - - - - ROH 26/92 1 4 +0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +)))HTAPv3 #============================================================================== # --- GEIA NH3 from natural sources --- @@ -2338,7 +2601,7 @@ Warnings: 1 # # ==> CEDS ship emissions are now the default. # ==> If CEDS_SHIP is turned off above then ARCTAS should be used over ICOADS, -# CORBETT, and HTAP for SO2 and ICOADS should be used for CO and NO. +# CORBETT, and HTAPv3 for SO2 and ICOADS should be used for CO and NO. # ==> Ship NO emissions are used by PARANOx and the extension number must be # adjusted accordingly. If PARANOx is turned off, set the ExtNr back to # zero. @@ -2359,11 +2622,37 @@ Warnings: 1 0 CORBETT_SHIP_SO2 $ROOT/CORBETT_SHIP/v2014-07/CORBETT_ship.geos.1x1.nc SO2_SHIP 1985/1-12/1/0 C xy kg/m2/s SO2 - 10 3 )))CORBETT_SHIP -(((HTAP_SHIP -0 HTAP_SHIP_SO2 $ROOT/HTAP/v2015-03/EDGAR_HTAP_SO2_SHIPS.generic.01x01.nc emi_so2 2008-2010/1/1/0 C xy kg/m2/s SO2 11/29 10 4 -0 HTAP_SHIP_CO $ROOT/HTAP/v2015-03/EDGAR_HTAP_CO_SHIPS.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s CO 6/28 10 4 -0 HTAP_SHIP_SOAP - - - - - - SOAP 6/28/280 10 4 -)))HTAP_SHIP +(((HTAPv3_SHIP +0 HTAPv3_CO_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_SHP 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 10 4 +0 HTAPv3_SOAP_SHP - - - - - - SOAP 26/280 10 4 +0 HTAPv3_SO2_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_SHP 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 10 4 +0 HTAPv3_SO4_SHP - - - - - - SO4 63 10 4 +0 HTAPv3_pFe_SHP - - - - - - pFe 66 10 4 +0 HTAPv3_NH3_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_SHP 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 10 4 +0 HTAPv3_BCPI_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_SHP 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 10 4 +0 HTAPv3_BCPO_SHP - - - - - - BCPO 71 10 4 +0 HTAPv3_OCPI_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_SHP 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 10 4 +0 HTAPv3_OCPO_SHP - - - - - - OCPO 73 10 4 +# Use CEDSv2 ship emissions for species not in HTAPv3 +0 CEDS_MOH_SHP $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_shp 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 10 4 +0 CEDS_EOH_SHP - - - - - - EOH 26/91 10 4 +0 CEDS_ROH_SHP - - - - - - ROH 26/92 10 4 +0 CEDS_C2H6_SHP $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_shp 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 10 4 +0 CEDS_C3H8_SHP $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_shp 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 10 4 +0 CEDS_C4H10_SHP $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 10 4 +0 CEDS_C5H12_SHP $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 10 4 +0 CEDS_C6H14_SHP $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 10 4 +0 CEDS_C2H4_SHP $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_shp 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 10 4 +0 CEDS_PRPE_SHP $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_shp 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 10 4 +0 CEDS_C2H2_SHP $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_shp 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 10 4 +0 CEDS_BENZ_SHP $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_shp 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 10 4 +0 CEDS_TOLU_SHP $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_shp 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 10 4 +0 CEDS_XYLE_SHP $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_shp 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 10 4 +0 CEDS_CH2O_SHP $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_shp 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 10 4 +0 CEDS_ALD2_SHP $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 10 4 +0 CEDS_MEK_SHP $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_shp 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 10 4 +0 CEDS_HCOOH_SHP $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_shp 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 10 4 +)))HTAPv3_SHIP (((CEDSv2_SHIP 0 CEDS_CO_SHP $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_shp 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 10 5 @@ -2376,6 +2665,8 @@ Warnings: 1 0 CEDS_BCPO_SHP - - - - - - BCPO 71 10 5 0 CEDS_OCPI_SHP $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_shp 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 10 5 0 CEDS_OCPO_SHP - - - - - - OCPO 73 10 5 +0 CEDS_POG1_SHP - - - - - - POG1 74/76 10 5 +0 CEDS_POG2_SHP - - - - - - POG2 74/77 10 5 0 CEDS_MOH_SHP $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_shp 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 10 5 0 CEDS_EOH_SHP - - - - - - EOH 26/91 10 5 0 CEDS_ROH_SHP - - - - - - ROH 26/92 10 5 @@ -2398,13 +2689,14 @@ Warnings: 1 #----------------------------------------------------- # AEROSOL NUMBER EMISSIONS FOR CEDS in CESM - hplin 8/11/22 #----------------------------------------------------- -0 CEDS_SO4n_SHP $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_shp 1750-2019/1-12/1/0 C xy kg/m2/s num_a1 8909/8013 1 5 -0 CEDS_BCn_SHP $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_shp 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 -0 CEDS_OCn_SHP $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_shp 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 +0 CEDS_SO4n_SHP $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_shp 1750-2019/1-12/1/0 C xy kg/m2/s num_a1 8909/8013 1 5 +0 CEDS_BCn_SHP $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_shp 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 +0 CEDS_OCn_SHP $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_shp 1750-2019/1-12/1/0 C xy kg/m2/s num_a4 8920/8041 1 5 #----------------------------------------------------- # // end AEROSOL NUMBER EMISSIONS FOR CEDS in CESM #----------------------------------------------------- + )))CEDSv2_SHIP (((CEDS_GBDMAPS_SHIP @@ -2412,9 +2704,11 @@ Warnings: 1 )))CEDS_GBDMAPS_SHIP (((CEDS_SHIP_byFuelType -(((.not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +(((.not.CEDS_GBDMAPS_SHIP +(((.not.CEDSv2_SHIP >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS_SHIP_byFuelType.rc -))).not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +))).not.CEDSv2_SHIP +))).not.CEDS_GBDMAPS_SHIP )))CEDS_SHIP_byFuelType #============================================================================== @@ -2422,39 +2716,41 @@ Warnings: 1 # CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with # the CMIP6 simulation experimental design. # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS # #============================================================================== (((CMIP6_SHIP -0 CMIP6_CO_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_shp 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 10 5 -0 CMIP6_SOAP_SHP - - - - - - SOAP 26/280 10 5 -0 CMIP6_SO2_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_shp 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 10 5 -0 CMIP6_SO4_SHP - - - - - - SO4 63 10 5 -0 CMIP6_pFe_SHP - - - - - - pFe 66 10 5 -0 CMIP6_NH3_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_shp 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 10 5 -0 CMIP6_BCPI_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_shp 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 10 5 -0 CMIP6_BCPO_SHP - - - - - - BCPO 71 10 5 -0 CMIP6_OCPI_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_shp 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 10 5 -0 CMIP6_OCPO_SHP - - - - - - OCPO 73 10 5 +0 CMIP6_CO_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_shp 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 10 5 +0 CMIP6_SOAP_SHP - - - - - - SOAP 26/280 10 5 +0 CMIP6_SO2_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_shp 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 10 5 +0 CMIP6_SO4_SHP - - - - - - SO4 63 10 5 +0 CMIP6_pFe_SHP - - - - - - pFe 66 10 5 +0 CMIP6_NH3_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_shp 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 10 5 +0 CMIP6_BCPI_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_shp 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 10 5 +0 CMIP6_BCPO_SHP - - - - - - BCPO 71 10 5 +0 CMIP6_OCPI_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_shp 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 10 5 +0 CMIP6_OCPO_SHP - - - - - - OCPO 73 10 5 +0 CMIP6_POG1_SHP - - - - - - POG1 74/76 10 5 +0 CMIP6_POG2_SHP - - - - - - POG2 74/77 10 5 # NOTE: EOH files in CMIP6/v2021-01 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here -0 CMIP6_MOH_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 10 5 -0 CMIP6_EOH_SHP - - - - - - EOH 26/91 10 5 -0 CMIP6_ROH_SHP - - - - - - ROH 26/92 10 5 -0 CMIP6_C2H6_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 10 5 -0 CMIP6_C3H8_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_shp 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 10 5 -0 CMIP6_C4H10_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 -0 CMIP6_C5H12_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 -0 CMIP6_C6H14_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 -0 CMIP6_C2H4_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 10 5 -0 CMIP6_PRPE_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_shp 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 10 5 -0 CMIP6_C2H2_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 10 5 -0 CMIP6_BENZ_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_shp 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 10 5 -0 CMIP6_TOLU_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_shp 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 10 5 -0 CMIP6_XYLE_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_shp 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 10 5 -0 CMIP6_CH2O_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_shp 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 10 5 -0 CMIP6_ALD2_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 10 5 -0 CMIP6_MEK_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_shp 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 10 5 -0 CMIP6_HCOOH_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 10 5 +0 CMIP6_MOH_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 10 5 +0 CMIP6_EOH_SHP - - - - - - EOH 26/91 10 5 +0 CMIP6_ROH_SHP - - - - - - ROH 26/92 10 5 +0 CMIP6_C2H6_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 10 5 +0 CMIP6_C3H8_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_shp 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 10 5 +0 CMIP6_C4H10_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CMIP6_C5H12_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CMIP6_C6H14_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CMIP6_C2H4_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 10 5 +0 CMIP6_PRPE_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_shp 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 10 5 +0 CMIP6_C2H2_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 10 5 +0 CMIP6_BENZ_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_shp 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 10 5 +0 CMIP6_TOLU_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_shp 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 10 5 +0 CMIP6_XYLE_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_shp 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 10 5 +0 CMIP6_CH2O_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_shp 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 10 5 +0 CMIP6_ALD2_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 10 5 +0 CMIP6_MEK_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_shp 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 10 5 +0 CMIP6_HCOOH_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 10 5 )))CMIP6_SHIP #------------------------------------------------------------------------------ @@ -2471,9 +2767,9 @@ Warnings: 1 102 ICOADS_SHIP_NO $ROOT/ICOADS_SHIP/v2014-07/ICOADS.generic.1x1.nc NO 2002/1-12/1/0 C xy kg/m2/s NO 1/5 10 1 )))ICOADS_SHIP -(((HTAP_SHIP -102 HTAP_SHIP_NO $ROOT/HTAP/v2015-03/EDGAR_HTAP_NO_SHIPS.generic.01x01.nc emi_no 2008-2010/1/1/0 C xy kg/m2/s NO 1/27 10 2 -)))HTAP_SHIP +(((HTAPv3_SHIP +102 HTAPv3_NO_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_SHP 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 10 4 +)))HTAPv3_SHIP (((CEDSv2_SHIP 102 CEDS_NO_SHP $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_shp 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 10 5 @@ -2497,25 +2793,20 @@ Warnings: 1 0 ICOADS_SHIP_NO $ROOT/ICOADS_SHIP/v2014-07/ICOADS.generic.1x1.nc NO 2002/1-12/1/0 C xy kg/m2/s NO 1/5 10 1 )))ICOADS_SHIP -(((HTAP_SHIP -0 HTAP_SHIP_NO $ROOT/HTAP/v2015-03/EDGAR_HTAP_NO_SHIPS.generic.01x01.nc emi_no 2008-2010/1/1/0 C xy kg/m2/s NO 1/27 10 2 -)))HTAP_SHIP +(((HTAPv3_SHIP +0 HTAPv3_NO_SHIP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_SHP 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 10 4 +)))HTAPv3_SHIP (((CEDSv2_SHIP -0 CEDS_NO_SHP $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_shp 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 10 5 +0 CEDS_NO_SHP $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_shp 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 10 5 )))CEDSv2_SHIP -(((CMIP6_SHIP -102 CMIP6_NO_SHP $ROOT/CMIP6/v2021-01/$SCENARIO/$SCENARIO_$YYYY.nc4 NO_shp 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 10 5 -)))CMIP6_SHIP - -(((NEI2011_SHIP_HOURLY -0 NEI11_C3MARINE_NO $ROOT/NEI2011/v2015-03/$MM/NEI11_0.1x0.1_2011$MM$DD_c3marine.nc NO 2006-2013/1-12/1-31/* C xy kg/m2/s NO 251/1007 10 50 -0 NEI11_C3MARINE_NO2 $ROOT/NEI2011/v2015-03/$MM/NEI11_0.1x0.1_2011$MM$DD_c3marine.nc NO2 2006-2013/1-12/1-31/* C xy kg/m2/s NO2 251/1007 10 50 -)))NEI2011_SHIP_HOURLY +(((CEDS_GBDMAPS_SHIP +0 CEDS_NO_SHP $ROOT/CEDS/v2020-08/$YYYY/NO-em-total-anthro_CEDS_$YYYY.nc NO_shp 1970-2017/1-12/1/0 C xy kg/m2/s NO 25 10 5 +)))CEDS_GBDMAPS_SHIP (((CMIP6_SHIP -102 CMIP6_NO_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_shp 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 10 5 +102 CMIP6_NO_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_shp 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 10 5 )))CMIP6_SHIP ))).not.ParaNOx @@ -2528,6 +2819,12 @@ Warnings: 1 # Data files are for 2019, but scale factors from 1990-2019 can be applied # in order to get year-specific emissions. See the notes in the AEIC2019 # scale factor section below for more information. +# +# Notes for CESM: +# (1) Map to species so4_a1 for SO4 instead of SO4 +# (2) Add SO4n and map to species num_a1 with custom scaling +# (3) Change BCPI/OCPI to BC/OC and map to species bc_a4 and pom_a4 +# (4) Add BCn and OCn and map to num_a4 for both with custom scaling #============================================================================== (((AEIC2019_DAILY 0 AEIC19_DAILY_NO $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc NO 2019/1-12/1-31/0 C xyz kg/m2/s NO 241/240 20 1 @@ -2536,13 +2833,16 @@ Warnings: 1 0 AEIC19_DAILY_CO $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc CO 2019/1-12/1-31/0 C xyz kg/m2/s CO 241 20 1 0 AEIC19_DAILY_SOAP - - - - - - SOAP 241/280 20 1 0 AEIC19_DAILY_SO2 $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc FUELBURN 2019/1-12/1-31/0 C xyz kg/m2/s SO2 241/111 20 1 -0 AEIC19_DAILY_SO4 - - - - - - so4_a1 241/112 20 1 -0 AEIC19_DAILY_SO4n - - - - - - num_a1 8011/241/112 20 1 +0 AEIC19_DAILY_pFe - - - - - - pFe 241/111/66 20 1 +0 AEIC19_DAILY_SO4 - - - - - - so4_a1 241/112 20 1 +0 AEIC19_DAILY_SO4n - - - - - - num_a1 8011/241/112 20 1 0 AEIC19_DAILY_H2O - - - - - - H2O 241/120 20 1 -0 AEIC19_DAILY_BC $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc BC 2019/1-12/1-31/0 C xyz kg/m2/s bc_a4 241 20 1 +0 AEIC19_DAILY_BC $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc BC 2019/1-12/1-31/0 C xyz kg/m2/s bc_a4 241 20 1 0 AEIC19_DAILY_BCn - - - - - - num_a4 8041/241 20 1 0 AEIC19_DAILY_OC $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc OC 2019/1-12/1-31/0 C xyz kg/m2/s pom_a4 241 20 1 0 AEIC19_DAILY_OCn - - - - - - num_a4 8042/241 20 1 +0 AEIC19_DAILY_POG1 - - - - - - POG1 241/74/76 20 1 +0 AEIC19_DAILY_POG2 - - - - - - POG2 241/74/77 20 1 0 AEIC19_DAILY_ACET $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc HC 2019/1-12/1-31/0 C xyz kg/m2/s ACET 241/114/101 20 1 0 AEIC19_DAILY_ALD2 - - - - - - ALD2 241/114/102 20 1 0 AEIC19_DAILY_ALK4 - - - - - - ALK4 241/114/103 20 1 @@ -2560,13 +2860,16 @@ Warnings: 1 0 AEIC19_MONMEAN_CO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc CO 2019/1-12/1/0 C xyz kg/m2/s CO 241 20 1 0 AEIC19_MONMEAN_SOAP - - - - - - SOAP 241/280 20 1 0 AEIC19_MONMEAN_SO2 $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc FUELBURN 2019/1-12/1/0 C xyz kg/m2/s SO2 241/111 20 1 -0 AEIC19_MONMEAN_SO4 - - - - - - so4_a1 241/112 20 1 -0 AEIC19_MONMEAN_SO4n - - - - - - num_a1 8011/241/112 20 1 +0 AEIC19_MONMEAN_pFe - - - - - - pFe 241/111/66 20 1 +0 AEIC19_MONMEAN_SO4 - - - - - - so4_a1 241/112 20 1 +0 AEIC19_MONMEAN_SO4n - - - - - - num_a1 8011/241/112 20 1 0 AEIC19_MONMEAN_H2O - - - - - - H2O 241/120 20 1 -0 AEIC19_MONMEAN_BC $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc BC 2019/1-12/1/0 C xyz kg/m2/s bc_a4 241 20 1 +0 AEIC19_MONMEAN_BC $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc BC 2019/1-12/1/0 C xyz kg/m2/s bc_a4 241 20 1 0 AEIC19_MONMEAN_BCn - - - - - - num_a4 8041/241 20 1 0 AEIC19_MONMEAN_OC $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc OC 2019/1-12/1/0 C xyz kg/m2/s pom_a4 241 20 1 0 AEIC19_MONMEAN_OCn - - - - - - num_a4 8042/241 20 1 +0 AEIC19_MONMEAN_POG1 - - - - - - POG1 241/74/76 20 1 +0 AEIC19_MONMEAN_POG2 - - - - - - POG2 241/74/77 20 1 0 AEIC19_MONMEAN_ACET $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc HC 2019/1-12/1/0 C xyz kg/m2/s ACET 241/114/101 20 1 0 AEIC19_MONMEAN_ALD2 - - - - - - ALD2 241/114/102 20 1 0 AEIC19_MONMEAN_ALK4 - - - - - - ALK4 241/114/103 20 1 @@ -2596,7 +2899,10 @@ Warnings: 1 0 RCP3PD_SOAP - - - - - - SOAP 280 1 1 0 RCP3PD_BCPO $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_BC_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s BCPO - 1 1 0 RCP3PD_OCPO $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_OC_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s OCPO - 1 1 +0 RCP3PD_POG1 - - - - - - POG1 74/76 1 1 +0 RCP3PD_POG2 - - - - - - POG2 74/77 1 1 0 RCP3PD_SO2 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_SO2_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s SO2 - 1 1 +0 RCP3PD_pFe - - - - - - pFe 66 1 1 0 RCP3PD_NH3 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_NH3_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NH3 - 1 1 0 RCP3PD_C2H2 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_acetylene_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H2 59 1 1 0 RCP3PD_CH2O $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_formaldehyde_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH2O - 1 1 @@ -2623,7 +2929,10 @@ Warnings: 1 0 RCP45_SOAP - - - - - - SOAP 280 1 1 0 RCP45_BCPO $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_BC_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s BCPO - 1 1 0 RCP45_OCPO $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_OC_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s OCPO - 1 1 +0 RCP45_POG1 - - - - - - POG1 74/76 1 1 +0 RCP45_POG2 - - - - - - POG2 74/77 1 1 0 RCP45_SO2 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_SO2_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s SO2 - 1 1 +0 RCP45_pFe - - - - - - pFe 66 1 1 0 RCP45_NH3 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_NH3_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NH3 - 1 1 0 RCP45_C2H2 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_acetylene_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H2 59 1 1 0 RCP45_CH2O $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_formaldehyde_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH2O - 1 1 @@ -2650,7 +2959,10 @@ Warnings: 1 0 RCP60_SOAP - - - - - - SOAP 280 1 1 0 RCP60_BCPO $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_BC_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s BCPO - 1 1 0 RCP60_OCPO $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_OC_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s OCPO - 1 1 +0 RCP60_POG1 - - - - - - POG1 74/76 1 1 +0 RCP60_POG2 - - - - - - POG2 74/77 1 1 0 RCP60_SO2 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_SO2_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s SO2 - 1 1 +0 RCP60_pFe - - - - - - pFe 66 1 1 0 RCP60_NH3 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_NH3_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NH3 - 1 1 0 RCP60_C2H2 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_acetylene_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H2 59 1 1 0 RCP60_CH2O $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_formaldehyde_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH2O - 1 1 @@ -2677,7 +2989,10 @@ Warnings: 1 0 RCP85_SOAP - - - - - - SOAP 280 1 1 0 RCP85_BCPO $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_BC_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s BCPO - 1 1 0 RCP85_OCPO $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_OC_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s OCPO - 1 1 +0 RCP85_POG1 - - - - - - POG1 74/76 1 1 +0 RCP85_POG2 - - - - - - POG2 74/77 1 1 0 RCP85_SO2 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_SO2_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s SO2 - 1 1 +0 RCP80_pFe - - - - - - pFe 66 1 1 0 RCP85_NH3 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_NH3_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NH3 - 1 1 0 RCP85_C2H2 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_acetylene_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H2 59 1 1 0 RCP85_CH2O $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_formaldehyde_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH2O - 1 1 @@ -2699,77 +3014,89 @@ Warnings: 1 #============================================================================== # --- QFED2 biomass burning (v2.5r1) --- +# +# Note: Use EF instead of EFY when using CESM #============================================================================== (((QFED2 -0 QFED_ACET_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s ACET 75/311 5 2 -0 QFED_ACET_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s ACET 75/312 5 2 -0 QFED_ALD2_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s ALD2 75/311 5 2 -0 QFED_ALD2_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s ALD2 75/312 5 2 -0 QFED_ALK4_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s ALK4 75/311 5 2 -0 QFED_ALK4_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s ALK4 75/312 5 2 -0 QFED_BCPI_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s BCPI 70/75/311 5 2 -0 QFED_BCPO_PBL - - - - - - BCPO 71/75/311 5 2 -0 QFED_BCPI_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s BCPI 70/75/312 5 2 -0 QFED_BCPO_FT - - - - - - BCPO 71/75/312 5 2 -0 QFED_OCPI_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s OCPI 72/75/311 5 2 -0 QFED_OCPO_PBL - - - - - - OCPO 73/75/311 5 2 -0 QFED_OCPI_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s OCPI 72/75/312 5 2 -0 QFED_OCPO_FT - - - - - - OCPO 73/75/312 5 2 -0 QFED_C2H6_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s C2H6 75/311 5 2 -0 QFED_C2H6_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s C2H6 75/312 5 2 -0 QFED_C3H8_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s C3H8 75/311 5 2 -0 QFED_C3H8_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s C3H8 75/312 5 2 -0 QFED_CH2O_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s CH2O 75/311 5 2 -0 QFED_CH2O_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s CH2O 75/312 5 2 -0 QFED_CH4_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s CH4 75/311 5 2 -0 QFED_CH4_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s CH4 75/312 5 2 -0 QFED_CO_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s CO 54/75/311 5 2 -0 QFED_SOAP_PBL - - - - - - SOAP 54/75/281/311 5 2 -0 QFED_CO_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s CO 54/75/312 5 2 -0 QFED_SOAP_FT - - - - - - SOAP 54/75/281/312 5 2 -0 QFED_CO2_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s CO2 75/311 5 2 -0 QFED_CO2_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s CO2 75/312 5 2 -0 QFED_MEK_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s MEK 75/311 5 2 -0 QFED_MEK_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s MEK 75/312 5 2 -0 QFED_NH3_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s NH3 75/311 5 2 -0 QFED_NH3_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s NH3 75/312 5 2 -0 QFED_NO_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s NO 75/311 5 2 -0 QFED_NO_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s NO 75/312 5 2 -0 QFED_SO2_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s SO2 75/311 5 2 -0 QFED_SO2_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s SO2 75/312 5 2 -0 QFED_C3H6_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s PRPE 75/311 5 2 -0 QFED_C3H6_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s PRPE 75/312 5 2 +0 QFED_ACET_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s ACET 75/311 5 2 +0 QFED_ACET_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s ACET 75/312 5 2 +0 QFED_ALD2_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s ALD2 75/311 5 2 +0 QFED_ALD2_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s ALD2 75/312 5 2 +0 QFED_ALK4_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s ALK4 75/311 5 2 +0 QFED_ALK4_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s ALK4 75/312 5 2 +0 QFED_BCPI_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s BCPI 70/75/311 5 2 +0 QFED_BCPO_PBL - - - - - - BCPO 71/75/311 5 2 +0 QFED_BCPI_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s BCPI 70/75/312 5 2 +0 QFED_BCPO_FT - - - - - - BCPO 71/75/312 5 2 +0 QFED_OCPI_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s OCPI 72/75/311 5 2 +0 QFED_OCPO_PBL - - - - - - OCPO 73/75/311 5 2 +0 QFED_POG1_PBL - - - - - - POG1 74/76/75/311 5 2 +0 QFED_POG2_PBL - - - - - - POG2 74/77/75/311 5 2 +0 QFED_OCPI_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s OCPI 72/75/312 5 2 +0 QFED_OCPO_FT - - - - - - OCPO 73/75/312 5 2 +0 QFED_POG1_FT - - - - - - POG1 74/76/75/312 5 2 +0 QFED_POG2_FT - - - - - - POG2 74/77/75/312 5 2 +0 QFED_C2H6_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s C2H6 75/311 5 2 +0 QFED_C2H6_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s C2H6 75/312 5 2 +0 QFED_C3H8_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s C3H8 75/311 5 2 +0 QFED_C3H8_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s C3H8 75/312 5 2 +0 QFED_CH2O_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s CH2O 75/311 5 2 +0 QFED_CH2O_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s CH2O 75/312 5 2 +0 QFED_CH4_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s CH4 75/311 5 2 +0 QFED_CH4_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s CH4 75/312 5 2 +0 QFED_CO_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s CO 54/75/311 5 2 +0 QFED_SOAP_PBL - - - - - - SOAP 54/75/281/311 5 2 +0 QFED_CO_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s CO 54/75/312 5 2 +0 QFED_SOAP_FT - - - - - - SOAP 54/75/281/312 5 2 +0 QFED_CO2_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s CO2 75/311 5 2 +0 QFED_CO2_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s CO2 75/312 5 2 +0 QFED_MEK_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s MEK 75/311 5 2 +0 QFED_MEK_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s MEK 75/312 5 2 +0 QFED_NH3_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s NH3 75/311 5 2 +0 QFED_NH3_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s NH3 75/312 5 2 +0 QFED_NO_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s NO 75/311 5 2 +0 QFED_NO_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s NO 75/312 5 2 +0 QFED_SO2_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s SO2 75/311 5 2 +0 QFED_pFe_PBL - - - - - - pFe 75/311/66 5 2 +0 QFED_SO2_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s SO2 75/312 5 2 +0 QFED_pFe_FT - - - - - - pF3 75/312/66 5 2 +0 QFED_C3H6_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=1:PBL kg/m2/s PRPE 75/311 5 2 +0 QFED_C3H6_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EF xyL=PBL:5500m kg/m2/s PRPE 75/312 5 2 )))QFED2 #============================================================================== # --- GFAS biomass burning --- #============================================================================== (((GFAS -0 GFAS_CO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO 75 5 3 -0 GFAS_SOAP $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SOAP 75/281 5 3 -0 GFAS_NO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc noxfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NO 75 5 3 -0 GFAS_BCPI $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPI 70/75 5 3 -0 GFAS_BCPO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPO 71/75 5 3 -0 GFAS_OCPI $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ocfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPI 72/75 5 3 -0 GFAS_OCPO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ocfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPO 73/75 5 3 -0 GFAS_CO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc co2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO2 75 5 3 -0 GFAS_CH4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch4fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH4 75 5 3 -0 GFAS_SO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SO2 75 5 3 -0 GFAS_NH3 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc nh3fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NH3 75 5 3 -0 GFAS_ACET $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h6ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ACET 75 5 3 -0 GFAS_ALD2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h4ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALD2 75 5 3 -0 GFAS_ALK4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc hialkanesfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALK4 75 5 3 -0 GFAS_PRPE1 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc hialkenesfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s PRPE 75 5 3 -0 GFAS_PRPE2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h6fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s PRPE 75 5 3 -0 GFAS_C2H6 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h6fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C2H6 75 5 3 -0 GFAS_C3H8 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h8fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C3H8 75 5 3 -0 GFAS_CH2O $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch2ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH2O 75 5 3 -0 GFAS_C2H4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h4fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C2H4 75 5 3 -0 GFAS_ISOP $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c5h8fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ISOP 75 5 3 -0 GFAS_DMS $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h6sfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s DMS 75 5 3 -0 GFAS_TOLU $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c7h8fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s TOLU 75 5 3 -0 GFAS_BENZ $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c6h6fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BENZ 75 5 3 -0 GFAS_XYLE $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c8h10fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s XYLE 75 5 3 +0 GFAS_CO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO 75 5 3 +0 GFAS_SOAP $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SOAP 75/281 5 3 +0 GFAS_CH3OH $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch3ohfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s MOH 75 5 3 +0 GFAS_NO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc noxfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NO 75 5 3 +0 GFAS_BCPI $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPI 70/75 5 3 +0 GFAS_BCPO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPO 71/75 5 3 +0 GFAS_OCPI $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ocfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPI 72/75 5 3 +0 GFAS_OCPO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ocfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPO 73/75 5 3 +0 GFAS_POG1 - - - - - - POG1 74/76/75 5 3 +0 GFAS_POG2 - - - - - - POG2 74/77/75 5 3 +0 GFAS_CO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc co2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO2 75 5 3 +0 GFAS_CH4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch4fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH4 75 5 3 +0 GFAS_SO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SO2 75 5 3 +0 GFAS_pFe $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s pFe 75/66 5 3 +0 GFAS_NH3 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc nh3fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NH3 75 5 3 +0 GFAS_ACET $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h6ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ACET 75 5 3 +0 GFAS_ALD2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h4ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALD2 75 5 3 +0 GFAS_ALK4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc hialkanesfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALK4 75 5 3 +0 GFAS_PRPE1 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc hialkenesfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s PRPE 75 5 3 +0 GFAS_PRPE2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h6fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s PRPE 75 5 3 +0 GFAS_C2H6 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h6fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C2H6 75 5 3 +0 GFAS_C3H8 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h8fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C3H8 75 5 3 +0 GFAS_CH2O $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch2ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH2O 75 5 3 +0 GFAS_C2H4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h4fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C2H4 75 5 3 +0 GFAS_ISOP $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c5h8fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ISOP 75 5 3 +0 GFAS_DMS $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h6sfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s DMS 75 5 3 +0 GFAS_TOLU $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c7h8fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s TOLU 75 5 3 +0 GFAS_BENZ $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c6h6fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BENZ 75 5 3 +0 GFAS_XYLE $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c8h10fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s XYLE 75 5 3 )))GFAS #============================================================================== @@ -2777,41 +3104,73 @@ Warnings: 1 #============================================================================== (((BB4MIPS # 75 is time-of-day scaling -0 CMIP6_BB_CO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CO 75 5 3 -0 CMIP6_BB_SOAP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SOAP 75/281 5 3 -0 CMIP6_BB_NO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NO 75 5 3 -0 CMIP6_BB_BCPI $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPI 70/75 5 3 -0 CMIP6_BB_BCPO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPO 71/75 5 3 -0 CMIP6_BB_OCPI $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPI 72/75 5 3 -0 CMIP6_BB_OCPO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPO 73/75 5 3 -0 CMIP6_BB_SO2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SO2 75 5 3 -0 CMIP6_BB_NH3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NH3 75 5 3 -0 CMIP6_BB_ALD2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALD2 75 5 3 -0 CMIP6_BB_ALK4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALK4 75 5 3 -0 CMIP6_BB_PRPE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s PRPE 75 5 3 -0 CMIP6_BB_C2H6 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H6 75 5 3 -0 CMIP6_BB_C3H8 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C3H8 75 5 3 -0 CMIP6_BB_CH2O $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CH2O 75 5 3 -0 CMIP6_BB_C2H4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H4 75 5 3 -0 CMIP6_BB_ISOP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ISOP_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ISOP 75 5 3 -0 CMIP6_BB_DMS $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 DMS_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s DMS 75 5 3 -0 CMIP6_BB_TOLU $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s TOLU 75 5 3 -0 CMIP6_BB_BENZ $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BENZ 75 5 3 -0 CMIP6_BB_XYLE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s XYLE 75 5 3 -0 CMIP6_BB_H2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 H2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s H2 75 5 3 -0 CMIP6_BB_MTPA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MONOT_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MTPA 75 5 3 -#0 CMIP6_BB_MTPO - - - - - - MTPO 75 5 3 -#0 CMIP6_BB_LIMO - - - - - - LIMO 75 5 3 -0 CMIP6_BB_EOH $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s EOH 75 5 3 -0 CMIP6_BB_MOH $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MOH 75 5 3 -0 CMIP6_BB_ACET - - - - - - ACET 79/75 5 3 -0 CMIP6_BB_MGLY $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MGLY_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MGLY 75 5 3 -0 CMIP6_BB_ACTA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ACTA_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ACTA 75 5 3 -0 CMIP6_BB_HCN $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCN_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCN 75 5 3 -0 CMIP6_BB_HCOOH $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCOOH 75 5 3 -0 CMIP6_BB_MEK $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MEK 75 5 3 +0 CMIP6_BB_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CO 75 5 3 +0 CMIP6_BB_SOAP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SOAP 75/281 5 3 +0 CMIP6_BB_NO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NO 75 5 3 +0 CMIP6_BB_BCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPI 70/75 5 3 +0 CMIP6_BB_BCPO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPO 71/75 5 3 +0 CMIP6_BB_OCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPI 72/75 5 3 +0 CMIP6_BB_OCPO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPO 73/75 5 3 +0 CMIP6_BB_POG1 - - - - - - POG1 74/76/75 5 3 +0 CMIP6_BB_POG2 - - - - - - POG2 74/77/75 5 3 +0 CMIP6_BB_SO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SO2 75 5 3 +0 CMIP6_BB_pFe - - - - - - pFe 75/66 5 3 +0 CMIP6_BB_NH3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NH3 75 5 3 +0 CMIP6_BB_ALD2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALD2 75 5 3 +0 CMIP6_BB_ALK4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALK4 75 5 3 +0 CMIP6_BB_PRPE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s PRPE 75 5 3 +0 CMIP6_BB_C2H6 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H6 75 5 3 +0 CMIP6_BB_C3H8 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C3H8 75 5 3 +0 CMIP6_BB_CH2O $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CH2O 75 5 3 +0 CMIP6_BB_C2H4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H4 75 5 3 +0 CMIP6_BB_ISOP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ISOP_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ISOP 75 5 3 +0 CMIP6_BB_DMS $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 DMS_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s DMS 75 5 3 +0 CMIP6_BB_TOLU $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s TOLU 75 5 3 +0 CMIP6_BB_BENZ $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BENZ 75 5 3 +0 CMIP6_BB_XYLE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s XYLE 75 5 3 +0 CMIP6_BB_H2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 H2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s H2 75 5 3 +0 CMIP6_BB_MTPA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MONOT_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MTPA 75 5 3 +#0 CMIP6_BB_MTPO - - - - - - MTPO 75 5 3 +#0 CMIP6_BB_LIMO - - - - - - LIMO 75 5 3 +0 CMIP6_BB_EOH $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s EOH 75 5 3 +0 CMIP6_BB_MOH $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MOH 75 5 3 +0 CMIP6_BB_ACET - - - - - - ACET 79/75 5 3 +0 CMIP6_BB_MGLY $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MGLY_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MGLY 75 5 3 +0 CMIP6_BB_ACTA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ACTA_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ACTA 75 5 3 +0 CMIP6_BB_HCN $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCN_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCN 75 5 3 +0 CMIP6_BB_HCOOH $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCOOH 75 5 3 +0 CMIP6_BB_MEK $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MEK 75 5 3 )))BB4MIPS +#============================================================================== +# --- GFED4 biomass burning emissions climatology +# NOTE: +# - These emissions were generated for 2010-2019 using the GFED extension +# in a 0.5x0.625 HEMCO 3.6.1 standalone simulation. +#============================================================================== +(((GFED4_CLIMATOLOGY +0 GFED4_CLIM_ACET $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ACET 2019/1-12/1/0 C xy kg/m2/s ACET - 5 1 +0 GFED4_CLIM_ALD2 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ALD2 2019/1-12/1/0 C xy kg/m2/s ALD2 - 5 1 +0 GFED4_CLIM_ALK4 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ALK4 2019/1-12/1/0 C xy kg/m2/s ALK4 - 5 1 +0 GFED4_CLIM_BCPI $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BCPI 2019/1-12/1/0 C xy kg/m2/s BCPI - 5 1 +0 GFED4_CLIM_BCPO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BCPO 2019/1-12/1/0 C xy kg/m2/s BCPO - 5 1 +0 GFED4_CLIM_BENZ $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BENZ 2019/1-12/1/0 C xy kg/m2/s BENZ - 5 1 +0 GFED4_CLIM_C2H6 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_C2H6 2019/1-12/1/0 C xy kg/m2/s C2H6 - 5 1 +0 GFED4_CLIM_C3H8 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_C3H8 2019/1-12/1/0 C xy kg/m2/s C3H8 - 5 1 +0 GFED4_CLIM_CH2O $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ACET 2019/1-12/1/0 C xy kg/m2/s CH2O - 5 1 +0 GFED4_CLIM_CO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_CO 2019/1-12/1/0 C xy kg/m2/s CO - 5 1 +0 GFED4_CLIM_EOH $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_EOH 2019/1-12/1/0 C xy kg/m2/s EOH - 5 1 +0 GFED4_CLIM_MEK $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_MEK 2019/1-12/1/0 C xy kg/m2/s MEK - 5 1 +0 GFED4_CLIM_NO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_NO 2019/1-12/1/0 C xy kg/m2/s NO - 5 1 +0 GFED4_CLIM_OCPI $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_OCPI 2019/1-12/1/0 C xy kg/m2/s OCPI - 5 1 +0 GFED4_CLIM_OCPO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_OCPO 2019/1-12/1/0 C xy kg/m2/s OCPO - 5 1 +0 GFED4_CLIM_PRPE $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_PRPE 2019/1-12/1/0 C xy kg/m2/s PRPE - 5 1 +0 GFED4_CLIM_SO2 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_SO2 2019/1-12/1/0 C xy kg/m2/s SO2 - 5 1 +0 GFED4_CLIM_SOAP $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_SOAP 2019/1-12/1/0 C xy kg/m2/s SOAP - 5 1 +0 GFED4_CLIM_TOLU $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_TOLU 2019/1-12/1/0 C xy kg/m2/s TOLU - 5 1 +0 GFED4_CLIM_XYLE $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_XYLE 2019/1-12/1/0 C xy kg/m2/s XYLE - 5 1 +)))GFED4_CLIMATOLOGY + #============================================================================== # --- Anthropogenic Fugitive, Combustion and Industrial Dust --- # (Philip et al., 2017, ERL) @@ -2824,68 +3183,83 @@ Warnings: 1 #============================================================================== # --- Offline dust emissions --- +# NOTE: Use flag C if running in CESM #============================================================================== (((OFFLINE_DUST (((.not.DustDead.or.DustGinoux -0 EMIS_DST1 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST1 1980-2021/1-12/1-31/* C xy kg/m2/s DST1 - 3 2 -0 EMIS_DST2 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST2 1980-2021/1-12/1-31/* C xy kg/m2/s DST2 - 3 2 -0 EMIS_DST3 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST3 1980-2021/1-12/1-31/* C xy kg/m2/s DST3 - 3 2 -0 EMIS_DST4 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST4 1980-2021/1-12/1-31/* C xy kg/m2/s DST4 - 3 2 +0 EMIS_DST1 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST1 1980-2022/1-12/1-31/* C xy kg/m2/s DST1 - 3 2 +0 EMIS_DST2 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST2 1980-2022/1-12/1-31/* C xy kg/m2/s DST2 - 3 2 +0 EMIS_DST3 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST3 1980-2022/1-12/1-31/* C xy kg/m2/s DST3 - 3 2 +0 EMIS_DST4 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST4 1980-2022/1-12/1-31/* C xy kg/m2/s DST4 - 3 2 ))).not.DustDead.or.DustGinoux )))OFFLINE_DUST #============================================================================== # --- Offline biogenic VOC emissions --- +# NOTE: Use flag C if running in CESM #============================================================================== (((OFFLINE_BIOGENICVOC -0 BIOGENIC_ACET $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc ACET_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s ACET 40 4 2 -0 BIOGENIC_ALD2 $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc ALD2_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s ALD2 41 4 2 -0 BIOGENIC_C2H4 $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc C2H4_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s C2H4 44 4 2 -0 BIOGENIC_EOH $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc EOH_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s EOH 47 4 2 -0 BIOGENIC_ISOP $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc ISOP_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s ISOP 61 4 2 -0 BIOGENIC_ISOP_SOAP - - - - - - SOAP 610 4 2 -0 BIOGENIC_ISOP_SOAS - - - - - - SOAS 610 4 2 -0 BIOGENIC_LIMO $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc LIMO_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s LIMO - 4 2 -0 BIOGENIC_LIMO_SOAP - - - - - - SOAP 611 4 2 -0 BIOGENIC_LIMO_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_MTPA $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc MTPA_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s MTPA - 4 2 -0 BIOGENIC_MTPA_SOAP - - - - - - SOAP 611 4 2 -0 BIOGENIC_MTPA_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_MTPO $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc MTPO_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s MTPO - 4 2 -0 BIOGENIC_MTPO_SOAP - - - - - - SOAP 611 4 2 -0 BIOGENIC_MTPO_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_PRPE $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc PRPE_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s PRPE 49 4 2 -0 BIOGENIC_SESQ $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc SESQ_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s SESQ - 4 2 -0 BIOGENIC_SESQ_SOAP - - - - - - SOAP 612 4 2 -0 BIOGENIC_SESQ_SOAS - - - - - - SOAS 612 4 2 +0 BIOGENIC_ACET $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc ACET_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s ACET - 4 2 +0 BIOGENIC_ALD2 $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc ALD2_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s ALD2 - 4 2 +0 BIOGENIC_C2H4 $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc C2H4_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s C2H4 - 4 2 +0 BIOGENIC_EOH $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc EOH_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s EOH - 4 2 +0 BIOGENIC_ISOP $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc ISOP_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s ISOP - 4 2 +0 BIOGENIC_ISOP_SOAP - - - - - - SOAP 610 4 2 +0 BIOGENIC_ISOP_SOAS - - - - - - SOAS 610 4 2 +0 BIOGENIC_LIMO $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc LIMO_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s LIMO - 4 2 +0 BIOGENIC_LIMO_SOAP - - - - - - SOAP 611 4 2 +0 BIOGENIC_LIMO_SOAS - - - - - - SOAS 611 4 2 +0 BIOGENIC_MOH $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc MOH_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s MOH - 4 2 +0 BIOGENIC_MTPA $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc MTPA_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s MTPA - 4 2 +0 BIOGENIC_MTPA_SOAP - - - - - - SOAP 611 4 2 +0 BIOGENIC_MTPA_SOAS - - - - - - SOAS 611 4 2 +0 BIOGENIC_MTPO $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc MTPO_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s MTPO - 4 2 +0 BIOGENIC_MTPO_SOAP - - - - - - SOAP 611 4 2 +0 BIOGENIC_MTPO_SOAS - - - - - - SOAS 611 4 2 +0 BIOGENIC_PRPE $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc PRPE_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s PRPE - 4 2 +0 BIOGENIC_SESQ $ROOT/OFFLINE_BIOVOC/v2021-12/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc SESQ_MEGAN 1980-2022/1-12/1-31/* C xy kg/m2/s SESQ - 4 2 +0 BIOGENIC_SESQ_SOAP - - - - - - SOAP 612 4 2 +0 BIOGENIC_SESQ_SOAS - - - - - - SOAS 612 4 2 )))OFFLINE_BIOGENICVOC #============================================================================== # --- Offline sea salt emissions --- +# Note: Seasalt emissions in GEOS-Chem within CESM are generally handled by MAM4. +# However, it does not include emissions of SSA alkalinity, chlorine, and bromine. +# +# If OFFLINE_SEASALT is used in GEOS-Chem within CESM, SALA and SALC will not be +# emitted by HEMCO, but the offline emissions will be used to scale for AL/Cl/Br. +# Alternatively, do not use OFFLINE_SEASALT and scale emissions within chemistry.F90. +# The latter approach is preferred but not implemented, so we scale the offline +# emissions for now. +# +# This means that the below entries differ from GEOS-Chem "Classic" and others +# by not having SALA / SALC entries. (hplin, 5/23/23) +# +# NOTE: Use flag C if running in CESM #============================================================================== (((OFFLINE_SEASALT (((.not.SeaSalt -0 SEASALT_SALA $ROOT/OFFLINE_SEASALT/v2019-01/0.5x0.625/$YYYY/$MM/seasalt_05.$YYYY$MM$DD.nc SALA_TOTAL 1980-2021/1-12/1-31/* C xy kg/m2/s SALA - 3 2 -0 SEASALT_SALAAL - - - - - - SALAAL 615 3 2 -0 SEASALT_SALACL - - - - - - SALACL 616 3 2 +0 SEASALT_SALAAL $ROOT/OFFLINE_SEASALT/v2019-01/0.5x0.625/$YYYY/$MM/seasalt_05.$YYYY$MM$DD.nc SALA_TOTAL 1980-2021/1-12/1-31/* C xy kg/m2/s SALAAL 615 3 2 +0 SEASALT_SALACL - - - - - - SALACL 616 3 2 (((CalcBrSeasalt -0 SEASALT_BrSALA - - - - - - BrSALA 617 3 2 +0 SEASALT_BrSALA - - - - - - BrSALA 617 3 2 )))CalcBrSeasalt -0 SEASALT_SALC $ROOT/OFFLINE_SEASALT/v2019-01/0.5x0.625/$YYYY/$MM/seasalt_05.$YYYY$MM$DD.nc SALC_TOTAL 1980-2021/1-12/1-31/* C xy kg/m2/s SALC - 3 2 -0 SEASALT_SALCAL - - - - - - SALCAL 615 3 2 -0 SEASALT_SALCCL - - - - - - SALCCL 616 3 2 +0 SEASALT_SALCAL $ROOT/OFFLINE_SEASALT/v2019-01/0.5x0.625/$YYYY/$MM/seasalt_05.$YYYY$MM$DD.nc SALC_TOTAL 1980-2021/1-12/1-31/* C xy kg/m2/s SALCAL 615 3 2 +0 SEASALT_SALCCL - - - - - - SALCCL 616 3 2 (((CalcBrSeasalt -0 SEASALT_BrSALC - - - - - - BrSALC 617 3 2 +0 SEASALT_BrSALC - - - - - - BrSALC 617 3 2 )))CalcBrSeasalt ))).not.SeaSalt )))OFFLINE_SEASALT #============================================================================== # --- Offline soil NOx emissions --- +# NOTE: Use flag C if running in CESM #============================================================================== (((OFFLINE_SOILNOX (((.not.SoilNOx -0 SOILNOX_NO $ROOT/OFFLINE_SOILNOX/v2019-01/0.5x0.625/$YYYY/$MM/soilnox_05.$YYYY$MM$DD.nc SOIL_NOx 1980-2021/1-12/1-31/* C xy kg/m2/s NO - 3 2 +0 SOILNOX_NO $ROOT/OFFLINE_SOILNOX/v2021-12/0.5x0.625/$YYYY/$MM/soilnox_05.$YYYY$MM$DD.nc SOIL_NOx 1980-2022/1-12/1-31/* C xy kg/m2/s NO - 3 2 ))).not.SoilNOx )))OFFLINE_SOILNOX @@ -2918,10 +3292,10 @@ Warnings: 1 (((SoilNOx 104 DEP_RESERVOIR_DEFAULT $ROOT/SOILNOX/v2014-07/DepReservoirDefault.nc DEP_RESERVOIR 2013/7/1/0 C xy kg/m3 NO - 1 1 (((HEMCO_RESTART -104 PFACTOR ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PFACTOR $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 -104 DRYPERIOD ./HEMCO_restart.$YYYY$MM$DD$HH00.nc DRYPERIOD $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 -104 GWET_PREV ./HEMCO_restart.$YYYY$MM$DD$HH00.nc GWET_PREV $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 -104 DEP_RESERVOIR ./HEMCO_restart.$YYYY$MM$DD$HH00.nc DEP_RESERVOIR $YYYY/$MM/$DD/$HH EY xy kg/m3 NO - 1 1 +104 PFACTOR ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PFACTOR $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 DRYPERIOD ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc DRYPERIOD $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 GWET_PREV ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc GWET_PREV $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 DEP_RESERVOIR ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc DEP_RESERVOIR $YYYY/$MM/$DD/$HH EY xy kg/m3 NO - 1 1 )))HEMCO_RESTART 104 SOILNOX_FERT $ROOT/SOILNOX/v2014-07/soilNOx.fert_res.generic.05x05.nc FERT 2000/1-12/1-31/0 C xy kg/m3 NO - 1 1 104 SOILNOX_LANDK1 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K01 2000/1/1/0 C xy 1 NO - 1 1 @@ -2999,6 +3373,7 @@ Warnings: 1 )))SeaSalt (((TOMAS_Jeagle 130 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.$YYYY.nc MODIS 2005-2014/1-12/1/0 C xy 1 * - 1 1 +130 MULTISEAICE $ROOT/MULTI_ICE/v2021-07/multiyearice.merra2.05x0625.$YYYY.nc FRSEAICE 1984-2017/1-12/1-31/0 C xy 1 * - 1 1 # Climatology CHLR #130 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.Clim.nc MODIS 2007/1-12/1/0 C xy 1 * - 1 1 @@ -3018,11 +3393,11 @@ Warnings: 1 #============================================================================== (((MEGAN (((HEMCO_RESTART -108 T_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 T_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 LAI_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -108 PARDR_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 -108 PARDF_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 T_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 T_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 LAI_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +108 PARDR_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 PARDF_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 )))HEMCO_RESTART 108 MEGAN_AEF_ISOP $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_ISOPRENE 1985/1/1/0 C xy kgC/m2/s * 61 1 1 108 MEGAN_AEF_MBOX $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_MBO 1985/1/1/0 C xy kgC/m2/s * 64 1 1 @@ -3053,26 +3428,28 @@ Warnings: 1 #============================================================================== # --- GFED biomass burning emissions (Extension 111) -# NOTE: These are the base emissions in kgDM/m2/s. +# NOTES: +# - These are the base emissions in kgDM/m2/s +# - If a year is not available, you may use the GFED4_CLIMATOLOGY option instead #============================================================================== (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2022/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2022/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2022/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2022/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2022/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2022/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_subgrid_coag 111 FINN_DAILY_NUMBER $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25_with_num.nc number 2002-2016/1-12/1/0 RF xy unitless * - 1 1 )))GFED_subgrid_coag (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2022/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2022/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 @@ -3523,6 +3900,7 @@ Warnings: 1 # The "XLAI" denotes that the files are prepared in this way. # (2) Units are "cm2 leaf/cm2 grid box". # (3) Data is timestamped every 8 days, starting from the 2nd of the month. +# (4) Use flag C if running in CESM #============================================================================== (((YUAN_MODIS_LAI * XLAI00 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI00 2000-2020/1-12/1-31/0 C xy cm2/cm2 * - 1 1 @@ -3638,12 +4016,12 @@ Warnings: 1 * MODIS_EMISSIVITY_14 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band14 2002/1-12/1-31/0 C xy 1 * - 1 1 * MODIS_EMISSIVITY_15 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band15 2002/1-12/1-31/0 C xy 1 * - 1 1 * MODIS_EMISSIVITY_16 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band16 2002/1-12/1-31/0 C xy 1 * - 1 1 -* TES_CLIM_CCL4 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CCl4 2000/1/1/0 C xyz ppbv * - 1 1 -* TES_CLIM_CFC11 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CFC11 2000/1/1/0 C xyz ppbv * - 1 1 -* TES_CLIM_CFC12 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CFC12 2000/1/1/0 C xyz ppbv * - 1 1 -* TES_CLIM_CFC22 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CFC22 2000/1/1/0 C xyz ppbv * - 1 1 -* TES_CLIM_CH4 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CH4 2000/1/1/0 C xyz ppbv * - 1 1 -* TES_CLIM_N2O $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc N2O 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_CCL4 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CCl4 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_CFC11 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CFC11 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_CFC12 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CFC12 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_CFC22 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CFC22 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_CH4 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CH4 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_N2O $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc N2O 2000/1/1/0 C xyz ppbv * - 1 1 )))RRTMG (((SfcVMR @@ -3692,50 +4070,50 @@ Warnings: 1 #============================================================================== # Commented-out tracers do not exist in GEOS-Chem yet -# * SfcVMR_C2F6 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C2F6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C3F8 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C3F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C4F10 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C4F10 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C5F12 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C5F12 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C6F14 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C6F14 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C7F16 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C7F16 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C8F18 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C8F18 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_CC4F8 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CC4F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -* SfcVMR_CCl4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CCl4 1750-2100/1-12/1/0 RY xy v/v CCl4 802 1 1 -# * SfcVMR_CF4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CF4 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -* SfcVMR_CFC11 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC11 1750-2100/1-12/1/0 RY xy v/v CFC11 802 1 1 -* SfcVMR_CFC113 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC113 1750-2100/1-12/1/0 RY xy v/v CFC113 802 1 1 -* SfcVMR_CFC114 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC114 1750-2100/1-12/1/0 RY xy v/v CFC114 802 1 1 -* SfcVMR_CFC115 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC115 1750-2100/1-12/1/0 RY xy v/v CFC115 802 1 1 -* SfcVMR_CFC12 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC12 1750-2100/1-12/1/0 RY xy v/v CFC12 802 1 1 -* SfcVMR_CH2Cl2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH2Cl2 1750-2100/1-12/1/0 RY xy v/v CH2Cl2 802 1 1 -* SfcVMR_CH3Br $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH3Br 1750-2100/1-12/1/0 RY xy v/v CH3Br 802 1 1 -* SfcVMR_CH3CCl3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH3CCl3 1750-2100/1-12/1/0 RY xy v/v CH3CCl3 802 1 1 -* SfcVMR_CH3Cl $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH3Cl 1750-2100/1-12/1/0 RY xy v/v CH3Cl 802 1 1 -* SfcVMR_CH4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH4 1750-2100/1-12/1/0 RY xy v/v CH4 802 1 1 -* SfcVMR_CHCl3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CHCl3 1750-2100/1-12/1/0 RY xy v/v CHCl3 802 1 1 -# * SfcVMR_CO2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CO2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -* SfcVMR_H1211 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 H1211 1750-2100/1-12/1/0 RY xy v/v H1211 802 1 1 -* SfcVMR_H1301 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 H1301 1750-2100/1-12/1/0 RY xy v/v H1301 802 1 1 -* SfcVMR_H2402 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 H2402 1750-2100/1-12/1/0 RY xy v/v H2402 802 1 1 +# * SfcVMR_C2F6 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C2F6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C3F8 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C3F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C4F10 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C4F10 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C5F12 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C5F12 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C6F14 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C6F14 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C7F16 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C7F16 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C8F18 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C8F18 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_CC4F8 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CC4F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_CCl4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CCl4 1750-2100/1-12/1/0 RY xy v/v CCl4 802 1 1 +# * SfcVMR_CF4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CF4 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_CFC11 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC11 1750-2100/1-12/1/0 RY xy v/v CFC11 802 1 1 +* SfcVMR_CFC113 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC113 1750-2100/1-12/1/0 RY xy v/v CFC113 802 1 1 +* SfcVMR_CFC114 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC114 1750-2100/1-12/1/0 RY xy v/v CFC114 802 1 1 +* SfcVMR_CFC115 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC115 1750-2100/1-12/1/0 RY xy v/v CFC115 802 1 1 +* SfcVMR_CFC12 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC12 1750-2100/1-12/1/0 RY xy v/v CFC12 802 1 1 +* SfcVMR_CH2Cl2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH2Cl2 1750-2100/1-12/1/0 RY xy v/v CH2Cl2 802 1 1 +* SfcVMR_CH3Br $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH3Br 1750-2100/1-12/1/0 RY xy v/v CH3Br 802 1 1 +* SfcVMR_CH3CCl3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH3CCl3 1750-2100/1-12/1/0 RY xy v/v CH3CCl3 802 1 1 +* SfcVMR_CH3Cl $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH3Cl 1750-2100/1-12/1/0 RY xy v/v CH3Cl 802 1 1 +* SfcVMR_CH4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH4 1750-2100/1-12/1/0 RY xy v/v CH4 802 1 1 +* SfcVMR_CHCl3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CHCl3 1750-2100/1-12/1/0 RY xy v/v CHCl3 802 1 1 +# * SfcVMR_CO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CO2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_H1211 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 H1211 1750-2100/1-12/1/0 RY xy v/v H1211 802 1 1 +* SfcVMR_H1301 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 H1301 1750-2100/1-12/1/0 RY xy v/v H1301 802 1 1 +* SfcVMR_H2402 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 H2402 1750-2100/1-12/1/0 RY xy v/v H2402 802 1 1 # SFC_BC_HCFC123 <- exists in UCX with lifetime of 2 years but has no surface boundary conditions; 200-600 pptv in https://doi.org/10.1021/es802308m -* SfcVMR_HCFC141b $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HCFC141b 1750-2100/1-12/1/0 RY xy v/v HCFC141b 802 1 1 -* SfcVMR_HCFC142b $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HCFC142b 1750-2100/1-12/1/0 RY xy v/v HCFC142b 802 1 1 -* SfcVMR_HCFC22 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HCFC22 1750-2100/1-12/1/0 RY xy v/v HCFC22 802 1 1 -# * SfcVMR_HFC125 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC125 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC134a $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC134a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC143a $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC143a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC152a $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC152a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC227ea $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC227ea 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC23 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC23 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC236fa $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC236fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC245fa $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC245fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC32 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC32 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC365mfc $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC365mfc 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC4310mee $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC4310mee 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -* SfcVMR_N2O $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 N2O 1750-2100/1-12/1/0 RY xy v/v N2O 802 1 1 -# * SfcVMR_NF3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 NF3 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_SF6 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 SF6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_SO2F2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 SO2F2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_HCFC141b $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HCFC141b 1750-2100/1-12/1/0 RY xy v/v HCFC141b 802 1 1 +* SfcVMR_HCFC142b $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HCFC142b 1750-2100/1-12/1/0 RY xy v/v HCFC142b 802 1 1 +* SfcVMR_HCFC22 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HCFC22 1750-2100/1-12/1/0 RY xy v/v HCFC22 802 1 1 +# * SfcVMR_HFC125 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC125 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC134a $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC134a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC143a $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC143a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC152a $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC152a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC227ea $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC227ea 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC23 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC23 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC236fa $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC236fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC245fa $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC245fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC32 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC32 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC365mfc $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC365mfc 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC4310mee $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC4310mee 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_N2O $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 N2O 1750-2100/1-12/1/0 RY xy v/v N2O 802 1 1 +# * SfcVMR_NF3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 NF3 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_SF6 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 SF6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_SO2F2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 SO2F2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 #============================================================================== # -- Not part of CMIP6 experimental design; use GEOS-Chem defaults @@ -3769,20 +4147,10 @@ Warnings: 1 #============================================================================== # --- Annual scale factors --- #============================================================================== -(((HTAP.or.XIAO_C3H8 -1 TOTFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc NOxscalar 1985-2010/1/1/0 C xy 1 1 -5 TOTFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc NOxscalar 2002/1/1/0 C xy 1 -1 -27 TOTFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc NOxscalar 2008-2010/1/1/0 C xy 1 -1 +(((XIAO_C3H8 6 LIQFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985-2010/1/1/0 C xy 1 1 7 LIQFUEL_1985 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985/1/1/0 C xy 1 -1 -9 LIQFUEL_2006 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2006/1/1/0 C xy 1 -1 -10 LIQFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2002/1/1/0 C xy 1 -1 -28 LIQFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2008-2010/1/1/0 C xy 1 -1 -11 SOLFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc SO2scalar 1985-2010/1/1/0 C xy 1 1 -15 SOLFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc SO2scalar 2002/1/1/0 C xy 1 -1 -19 SOLFUEL_2008 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc SO2scalar 2008/1/1/0 C xy 1 -1 -29 SOLFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc SO2scalar 2008-2010/1/1/0 C xy 1 -1 -)))HTAP.or.XIAO_C3H8 +)))XIAO_C3H8 #============================================================================== # --- Diurnal scale factors --- @@ -4048,19 +4416,19 @@ Warnings: 1 # --- EPA NEI day-of-week scale factors --- #============================================================================== (((NEI2016_MONMEAN -210 NEI99_DOW_NOX $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc NOX 1999/1-12/WD/0 C xy 1 1 -211 NEI99_DOW_CO $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc CO 1999/1-12/WD/0 C xy 1 1 -212 NEI99_DOW_ALK4 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc ALK4 1999/1-12/WD/0 C xy 1 1 -213 NEI99_DOW_ACET $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc ACET 1999/1-12/WD/0 C xy 1 1 -214 NEI99_DOW_MEK $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc MEK 1999/1-12/WD/0 C xy 1 1 -215 NEI99_DOW_PRPE $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc PRPE 1999/1-12/WD/0 C xy 1 1 -216 NEI99_DOW_C3H8 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc C3H8 1999/1-12/WD/0 C xy 1 1 -217 NEI99_DOW_C2H6 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc C2H6 1999/1-12/WD/0 C xy 1 1 -218 NEI99_DOW_SO2 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc SO2 1999/1-12/WD/0 C xy 1 1 -219 NEI99_DOW_SO4 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc SO4 1999/1-12/WD/0 C xy 1 1 -220 NEI99_DOW_MSA $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc MSA 1999/1-12/WD/0 C xy 1 1 -221 NEI99_DOW_BCPI $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc BCPI 1999/1-12/WD/0 C xy 1 1 -222 NEI99_DOW_OCPI $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc OCPI 1999/1-12/WD/0 C xy 1 1 +210 NEI99_DOW_NOX $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc NOX 1999/1-12/WD/0 C xy 1 1 +211 NEI99_DOW_CO $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc CO 1999/1-12/WD/0 C xy 1 1 +212 NEI99_DOW_ALK4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ALK4 1999/1-12/WD/0 C xy 1 1 +213 NEI99_DOW_ACET $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ACET 1999/1-12/WD/0 C xy 1 1 +214 NEI99_DOW_MEK $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MEK 1999/1-12/WD/0 C xy 1 1 +215 NEI99_DOW_PRPE $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc PRPE 1999/1-12/WD/0 C xy 1 1 +216 NEI99_DOW_C3H8 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C3H8 1999/1-12/WD/0 C xy 1 1 +217 NEI99_DOW_C2H6 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C2H6 1999/1-12/WD/0 C xy 1 1 +218 NEI99_DOW_SO2 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO2 1999/1-12/WD/0 C xy 1 1 +219 NEI99_DOW_SO4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO4 1999/1-12/WD/0 C xy 1 1 +220 NEI99_DOW_MSA $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MSA 1999/1-12/WD/0 C xy 1 1 +221 NEI99_DOW_BCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc BCPI 1999/1-12/WD/0 C xy 1 1 +222 NEI99_DOW_OCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc OCPI 1999/1-12/WD/0 C xy 1 1 )))NEI2016_MONMEAN #============================================================================== diff --git a/run/CESM/HEMCO_Diagn.rc b/run/CESM/HEMCO_Diagn.rc deleted file mode 100644 index 0f2ebc868..000000000 --- a/run/CESM/HEMCO_Diagn.rc +++ /dev/null @@ -1,889 +0,0 @@ -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: HEMCO_Diagn.rc -# -# !DESCRIPTION: Configuration file for netCDF diagnostic output from HEMCO. -#\\ -#\\ -# !REMARKS: -# For more information about scheduling HEMCO diagnostics, see: -# http://wiki.geos-chem.org/The_HEMCO_User%27s_Guide#Diagnostics -# -# For a list of species by inventory, please see: -# http://wiki.geos-chem.org/HEMCO_data_directories#Default_GEOS-Chem_emissions_configurations -# -# All diagnostics will now be saved out in units of kg/m2/s. If necessary, -# you can convert hydrocarbon species to e.g. kg C/m2/s in post-processing. -# -# The INVENTORY DIAGNOSTICS (starting with "Inv") are only needed for -# benchmark simulations, and can be left commented out for production runs. -# -# !REVISION HISTORY: -# 13 Feb 2018 - E. Lundgren - Initial version -# See https://github.com/geoschem/geos-chem for complete history -#EOP -#------------------------------------------------------------------------------ -#BOC -# Name Spec ExtNr Cat Hier Dim OutUnit LongName - -############################################################################### -##### ACET emissions ##### -############################################################################### -EmisACET_Total ACET -1 -1 -1 3 kg/m2/s ACET_emission_flux_from_all_sectors -EmisACET_Anthro ACET 0 1 -1 3 kg/m2/s ACET_emission_flux_from_anthropogenic -EmisACET_BioBurn ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_biomass_burning -EmisACET_Biogenic ACET 0 4 -1 2 kg/m2/s ACET_emission_flux_from_biogenic_sources -EmisACET_Ocean ACET 101 -1 -1 2 kg/m2/s ACET_emission_flux_from_ocean - -############################################################################### -##### ALD2 emissions ##### -############################################################################### -EmisALD2_Total ALD2 -1 -1 -1 3 kg/m2/s ALD2_emission_flux_from_all_sectors -EmisALD2_Anthro ALD2 0 1 -1 3 kg/m2/s ALD2_emission_flux_from_anthropogenic -EmisALD2_BioBurn ALD2 111 -1 -1 2 kg/m2/s ALD2_emission_flux_from_biomass_burning -EmisALD2_Biogenic ALD2 0 4 -1 2 kg/m2/s ALD2_emission_flux_from_biogenic_sources -EmisALD2_Ocean ALD2 101 -1 -1 2 kg/m2/s ALD2_emission_flux_from_ocean -EmisALD2_PlantDecay ALD2 0 3 -1 2 kg/m2/s ALD2_emission_flux_from_decaying_plants -EmisALD2_Ship ALD2 0 10 -1 2 kg/m2/s ALD2_emission_flux_from_ships - -############################################################################### -##### ALK4 emissions ##### -############################################################################### -EmisALK4_Total ALK4 -1 -1 -1 3 kg/m2/s ALK4_emission_flux_from_all_sectors -EmisALK4_Aircraft ALK4 0 20 -1 3 kg/m2/s ALK4_emission_flux_from_aircraft -EmisALK4_Anthro ALK4 0 1 -1 3 kg/m2/s ALK4_emission_flux_from_anthropogenic -EmisALK4_BioBurn ALK4 111 -1 -1 2 kg/m2/s ALK4_emission_flux_from_biomass_burning -EmisALK4_Ship ALK4 0 10 -1 2 kg/m2/s ALK4_emission_flux_from_ships - -############################################################################### -##### BCPI and BCPO emissions ##### -############################################################################### -EmisBCPI_Total BCPI -1 -1 -1 3 kg/m2/s BCPI_emission_flux_from_all_sectors -EmisBCPI_Aircraft BCPI 0 20 -1 3 kg/m2/s BCPI_emission_flux_from_aircraft -EmisBCPI_Anthro BCPI 0 1 -1 3 kg/m2/s BCPI_emission_flux_from_anthropogenic -EmisBCPI_BioBurn BCPI 111 -1 -1 2 kg/m2/s BCPI_emission_flux_from_biomass_burning -EmisBCPI_Ship BCPI 0 10 -1 2 kg/m2/s BCPI_emission_flux_from_ships -EmisBCPO_Total BCPO -1 -1 -1 2 kg/m2/s BCPO_emission_flux_from_all_sectors -EmisBCPO_Anthro BCPO 0 1 -1 2 kg/m2/s BCPO_emission_flux_from_anthropogenic -EmisBCPO_BioBurn BCPO 111 -1 -1 2 kg/m2/s BCPO_emission_flux_from_biomass_burning -EmisBCPO_Ship BCPO 0 10 -1 2 kg/m2/s BCPO_emission_flux_from_ships - -############################################################################### -##### BENZ emissions ##### -############################################################################### -EmisBENZ_Total BENZ -1 -1 -1 3 kg/m2/s BENZ_emission_flux_from_all_sectors -EmisBENZ_Anthro BENZ 0 1 -1 3 kg/m2/s BENZ_emission_flux_from_anthropogenic -EmisBENZ_BioBurn BENZ 111 -1 -1 2 kg/m2/s BENZ_emission_flux_from_biomass_burning -EmisBENZ_Ship BENZ 0 10 -1 2 kg/m2/s BENZ_emission_flux_from_ships - -############################################################################### -##### C2H2 emissions ###### -############################################################################### -# C2H2 is not an active species in GEOS-Chem; disable for now -#EmisC2H2_Total C2H2 -1 -1 -1 3 kg/m2/s C2H2_emission_flux_from_all_sectors -#EmisC2H2_Anthro C2H2 0 1 -1 3 kg/m2/s C2H2_emission_flux_from_anthropogenic -#EmisC2H2_Ship C2H2 0 10 -1 2 kg/m2/s C2H2_emission_flux_from_ships - -############################################################################### -##### C2H4 emissions ###### -############################################################################### -# C2H4 is not an active species in GEOS-Chem; disable for now -#EmisC2H4_Total C2H4 -1 -1 -1 3 kg/m2/s C2H4_emission_flux_from_all_sectors -#EmisC2H4_Anthro C2H4 0 1 -1 3 kg/m2/s C2H4_emission_flux_from_anthropogenic -#EmisC2H4_Biogenic C2H4 0 4 -1 2 kg/m2/s C2H4_emission_flux_from_biogenic_sources -#EmisC2H4_Ship C2H4 0 10 -1 2 kg/m2/s C2H4_emission_flux_from_ships - -############################################################################### -##### C2H6 emissions ###### -############################################################################### -EmisC2H6_Total C2H6 -1 -1 -1 3 kg/m2/s C2H6_emission_flux_from_all_sectors -EmisC2H6_Aircraft C2H6 0 20 -1 3 kg/m2/s C2H6_emission_flux_from_aircraft -EmisC2H6_Anthro C2H6 0 1 -1 3 kg/m2/s C2H6_emission_flux_from_anthropogenic -EmisC2H6_BioBurn C2H6 111 -1 -1 2 kg/m2/s C2H6_emission_flux_from_biomass_burning -EmisC2H6_Ship C2H6 0 10 -1 2 kg/m2/s C2H6_emission_flux_from_ships - -############################################################################### -##### C3H8 emissions ##### -############################################################################### -EmisC3H8_Total C3H8 -1 -1 -1 3 kg/m2/s C3H8_emission_flux_from_all_sectors -EmisC3H8_Aircraft C3H8 0 20 -1 3 kg/m2/s C3H8_emission_flux_from_aircraft -EmisC3H8_Anthro C3H8 0 1 -1 3 kg/m2/s C3H8_emission_flux_from_anthropogenic -EmisC3H8_BioBurn C3H8 111 -1 -1 2 kg/m2/s C3H8_emission_flux_from_biomass_burning -EmisC3H8_Ship C3H8 0 10 -1 2 kg/m2/s C3H8_emission_flux_from_ships - -############################################################################### -##### CH2Br2 emissions ##### -############################################################################### -EmisCH2Br2_Ocean CH2Br2 0 1 -1 2 kg/m2/s CH2Br2_emission_flux_from_ocean - -############################################################################### -##### CH2I2 emissions ##### -############################################################################### -EmisCH2I2_Ocean CH2I2 0 1 -1 2 kg/m2/s CH2I2_emission_flux_from_ocean - -############################################################################### -##### CH2ICl emissions ##### -############################################################################### -EmisCH2ICl_Ocean CH2ICl 0 1 -1 2 kg/m2/s CH2ICl_emission_flux_from_ocean - -############################################################################### -##### CH2IBr emissions ##### -############################################################################### -EmisCH2IBr_Ocean CH2IBr 0 1 -1 2 kg/m2/s CH2IBr_emission_flux_from_ocean - -############################################################################### -##### CH2O emissions ##### -############################################################################### -EmisCH2O_Total CH2O -1 -1 -1 3 kg/m2/s CH2O_emission_flux_from_all_sectors -EmisCH2O_Aircraft CH2O 0 20 -1 3 kg/m2/s CH2O_emission_flux_from_aircraft -EmisCH2O_Anthro CH2O 0 1 -1 3 kg/m2/s CH2O_emission_flux_from_anthropogenic -EmisCH2O_BioBurn CH2O 111 -1 -1 2 kg/m2/s CH2O_emission_flux_from_biomass_burning -EmisCH2O_Ship CH2O 0 10 -1 2 kg/m2/s CH2O_emission_flux_from_ships - -############################################################################### -##### CH3I emissions ##### -############################################################################### -EmisCH3I_Ocean CH3I 0 1 -1 2 kg/m2/s CH3I_emission_flux_from_ocean - -############################################################################### -##### CH4 emissions ##### -############################################################################### -# Zero for now, so comment out -#EmisCH4_Total CH4 -1 -1 -1 3 kg/m2/s CH4_emission_flux_from_all_sectors -#EmisCH4_Anthro CH4 0 1 -1 3 kg/m2/s CH4_emission_flux_from_anthropogenic -#EmisCH4_BioBurn CH4 0 5 -1 2 kg/m2/s CH4_emission_flux_from_biomass_burning -#EmisCH4_Ship CH4 0 10 -1 2 kg/m2/s CH4_emission_flux_from_ships - -############################################################################### -##### CHBr3 emissions ##### -############################################################################### -EmisCHBr3_Ocean CHBr3 0 1 -1 2 kg/m2/s CHBr3_emission_flux_from_ocean - -############################################################################### -##### CO sources ##### -############################################################################### -EmisCO_Total CO -1 -1 -1 3 kg/m2/s CO_emission_flux_from_all_sectors -EmisCO_Aircraft CO 0 20 -1 3 kg/m2/s CO_emission_flux_from_aircraft -EmisCO_Anthro CO 0 1 -1 3 kg/m2/s CO_emission_flux_from_anthropogenic -EmisCO_BioBurn CO 111 -1 -1 2 kg/m2/s CO_emission_flux_from_biomass_burning -EmisCO_Ship CO 0 10 -1 2 kg/m2/s CO_emission_flux_from_ships - -############################################################################### -##### CO2 emissions ##### -############################################################################### -EmisCO2_Total CO2 -1 -1 -1 3 kg/m2/s CO2_emission_flux_from_all_sectors -EmisCO2_Anthro CO2 0 1 -1 3 kg/m2/s CO2_emission_flux_from_anthropogenic -EmisCO2_BioBurn CO2 0 5 -1 2 kg/m2/s CO2_emission_flux_from_biomass_burning -EmisCO2_Ship CO2 0 10 -1 2 kg/m2/s CO2_emission_flux_from_ships - -############################################################################### -##### DMS emissions ##### -############################################################################### -EmisDMS_Ocean DMS 101 -1 -1 2 kg/m2/s DMS_emission_flux_from_ocean - -############################################################################### -##### Dust emissions ##### -############################################################################### -EmisDST1_Total DST1 -1 -1 -1 2 kg/m2/s DST1_emission_flux_from_all_sectors -EmisDST1_Anthro DST1 0 1 -1 2 kg/m2/s DST1_emission_flux_from_anthropogenic -EmisDST1_Natural DST1 0 3 -1 2 kg/m2/s DST1_emission_flux_from_natural_sources -EmisDST2_Natural DST2 0 3 -1 2 kg/m2/s DST2_emission_flux_from_natural_sources -EmisDST3_Natural DST3 0 3 -1 2 kg/m2/s DST3_emission_flux_from_natural_sources -EmisDST4_Natural DST4 0 3 -1 2 kg/m2/s DST4_emission_flux_from_natural_sources - -############################################################################### -##### EOH emissions ##### -############################################################################### -EmisEOH_Total EOH -1 -1 -1 3 kg/m2/s EOH_emission_flux_from_all_sectors -EmisEOH_Anthro EOH 0 1 -1 3 kg/m2/s EOH_emission_flux_from_anthropogenic -EmisEOH_BioBurn EOH 111 -1 -1 2 kg/m2/s EOH_emission_flux_from_biomass_burning -EmisEOH_Biogenic EOH 0 4 -1 2 kg/m2/s EOH_emission_flux_from_biogenic_sources -EmisEOH_PlantDecay EOH 0 3 -1 2 kg/m2/s EOH_emission_flux_from_decaying_plants -EmisEOH_Ship EOH 0 10 -1 2 kg/m2/s EOH_emission_flux_from_ships - -############################################################################### -##### ETNO3 emissions ##### -############################################################################### -EmisETNO3_Ocean ETNO3 101 -1 -1 2 kg/m2/s ETNO3_emission_flux_from_ocean - -############################################################################### -##### HAC emissions ##### -############################################################################### -EmisHAC_Total HAC -1 -1 -1 3 kg/m2/s HAC_emission_flux_from_all_sectors -EmisHAC_Anthro HAC 0 1 -1 3 kg/m2/s HAC_emission_flux_from_anthropogenic - -############################################################################### -##### GLYC emissions ##### -############################################################################### -EmisGLYC_Total GLYC -1 -1 -1 3 kg/m2/s GLYC_emission_flux_from_all_sectors -EmisGLYC_Anthro GLYC 0 1 -1 3 kg/m2/s GLYC_emission_flux_from_anthropogenic - -############################################################################### -##### GLYX emissions ##### -############################################################################### -# Zero for now, so comment out -#EmisGLYX_Total GLYX -1 -1 -1 3 kg/m2/s GLYX_emission_flux_from_all_sectors -#EmisGLYX_Anthro GLYX 0 1 -1 3 kg/m2/s GLYX_emission_flux_from_anthropogenic - -############################################################################### -##### HCOOH sources ##### -############################################################################### -EmisHCOOH_Total HCOOH -1 -1 -1 3 kg/m2/s HCOOH_emission_flux_from_all_sectors -EmisHCOOH_Anthro HCOOH 0 1 -1 3 kg/m2/s HCOOH_emission_flux_from_anthropogenic -EmisHCOOH_Ship HCOOH 0 10 -1 2 kg/m2/s HCOOH_emission_flux_from_ship - -############################################################################### -##### HNO2 emissions ##### -############################################################################### -EmisHNO2_Anthro HNO2 0 1 -1 3 kg/m2/s HNO2_emission_flux_from_anthropogenic - -############################################################################### -##### HNO3 emissions ##### -############################################################################### -EmisHNO3_Ship HNO3 102 -1 -1 2 kg/m2/s HNO3_emission_flux_from_ships - -############################################################################### -##### ISOP emissions ##### -############################################################################### -EmisISOP_Total ISOP -1 -1 -1 3 kg/m2/s ISOP_emission_flux_from_all_sectors -EmisISOP_Anthro ISOP 0 1 -1 3 kg/m2/s ISOP_emission_flux_from_anthropogenic -EmisISOP_Biogenic ISOP 0 4 -1 2 kg/m2/s ISOP_emission_flux_from_biogenic_sources - -############################################################################### -##### LIMO emissions ##### -############################################################################### -EmisLIMO_Biogenic LIMO 0 4 -1 2 kg/m2/s LIMO_emission_flux_from_biogenic_sources - -############################################################################### -##### MACR emissions ##### -############################################################################### -EmisMACR_Total MACR -1 -1 -1 3 kg/m2/s MACR_emission_flux_from_all_sectors -EmisMACR_Aircraft MACR 0 20 -1 3 kg/m2/s MACR_emission_flux_from_anthropogenic -EmisMACR_Anthro MACR 0 1 -1 3 kg/m2/s MACR_emission_flux_from_anthropogenic - -############################################################################### -##### MEK emissions ##### -############################################################################### -EmisMEK_Total MEK -1 -1 -1 3 kg/m2/s MEK_emission_flux_from_all_sectors -EmisMEK_Anthro MEK 0 1 -1 3 kg/m2/s MEK_emission_flux_from_anthropogenic -EmisMEK_BioBurn MEK 111 -1 -1 2 kg/m2/s MEK_emission_flux_from_biomass_burning -EmisMEK_Ship MEK 0 10 -1 2 kg/m2/s MEK_emission_flux_from_ships - -############################################################################### -##### MENO3 emissions ##### -############################################################################### -EmisMENO3_Ocean MENO3 101 -1 -1 2 kg/m2/s MENO3_emission_flux_from_ocean - -############################################################################### -##### MGLY emissions ##### -############################################################################### -# Zero for now, so comment out -#EmisMGLY_Total MGLY -1 -1 -1 3 kg/m2/s MGLY_emission_flux_from_all_sectors -#EmisMGLY_Anthro MGLY 0 1 -1 3 kg/m2/s MGLY_emission_flux_from_anthropogenic - -############################################################################### -##### MOH emissions ##### -############################################################################### -EmisMOH_Total MOH -1 -1 -1 3 kg/m2/s MOH_emission_flux_from_all_sectors -EmisMOH_Anthro MOH 0 1 -1 3 kg/m2/s MOH_emission_flux_from_anthropogenic -EmisMOH_BioBurn MOH 111 -1 -1 2 kg/m2/s MOH_emission_flux_from_biomass_burning -EmisMOH_Biogenic MOH 108 -1 -1 2 kg/m2/s MOH_emission_flux_from_biogenic_sources -EmisMOH_Ocean MOH 101 -1 -1 2 kg/m2/s MOH_emission_flux_from_ocean -EmisMOH_Ship MOH 0 10 -1 2 kg/m2/s MOH_emission_flux_from_ships - -############################################################################### -##### MTPA emissions ##### -############################################################################### -EmisMTPA_Total MTPA -1 -1 -1 3 kg/m2/s MTPA_emission_flux_from_all_sectors -EmisMTPA_BioBurn MTPA 111 -1 -1 2 kg/m2/s MTPA_emission_flux_from_biomass_burning -EmisMTPA_Biogenic MTPA 0 4 -1 2 kg/m2/s MTPA_emission_flux_from_biogenic_sources - -############################################################################### -##### MTPO emissions ##### -############################################################################### -EmisMTPO_Biogenic MTPO 0 4 -1 2 kg/m2/s MTPO_emission_flux_from_biogenic_sources - -############################################################################### -##### MVK emissions ##### -############################################################################### -EmisMVK_Anthro MVK 0 1 -1 3 kg/m2/s MVK_emission_flux_from_anthropogenic - -############################################################################### -##### NAP emissions ##### -############################################################################### -EmisNAP_Total NAP -1 -1 -1 3 kg/m2/s NAP_emission_flux_from_all_sectors -EmisNAP_Anthro NAP 0 1 -1 3 kg/m2/s NAP_emission_flux_from_anthropogenic -EmisNAP_BioBurn NAP 111 -1 -1 2 kg/m2/s NAP_emission_flux_from_biomass_burning - -############################################################################### -##### NH3 emissions ##### -############################################################################### -EmisNH3_Total NH3 -1 -1 -1 3 kg/m2/s NH3_emission_flux_from_all_sectors -EmisNH3_Anthro NH3 0 1 -1 3 kg/m2/s NH3_emission_flux_from_anthropogenic -EmisNH3_BioBurn NH3 111 -1 -1 2 kg/m2/s NH3_emission_flux_from_biomass_burning -EmisNH3_Natural NH3 0 3 -1 2 kg/m2/s NH3_emission_flux_from_natural_sources -EmisNH3_Seabirds NH3 0 30 -1 2 kg/m2/s NH3_emission_flux_from_seabirds -EmisNH3_Ship NH3 0 10 -1 2 kg/m2/s NH3_emission_flux_from_ships - -############################################################################### -##### NO emissions ##### -##### ##### -##### - Separate fertilizer NOx emissions are only available when the ##### -##### SoilNOx extension is enabled ##### -############################################################################### -EmisNO_Total NO -1 -1 -1 3 kg/m2/s NO_emission_flux_from_all_sectors -EmisNO_Aircraft NO 0 20 -1 3 kg/m2/s NO_emission_flux_from_aircraft -EmisNO_Anthro NO 0 1 -1 3 kg/m2/s NO_emission_flux_from_anthropogenic -EmisNO_BioBurn NO 111 -1 -1 2 kg/m2/s NO_emission_flux_from_biomass_burning -EmisNO_Lightning NO 103 -1 -1 3 kg/m2/s NO_emission_flux_from_lightning -EmisNO_Ship NO 102 -1 -1 2 kg/m2/s NO_emission_flux_from_ships -EmisNO_Soil NO 0 3 -1 2 kg/m2/s NO_emission_flux_from_soil_including_fertilizer -#EmisNO_Fert -1 104 -1 -1 2 kg/m2/s NO_emission_flux_from_fertilizer_only - -############################################################################### -##### NO2 emissions ##### -############################################################################### -EmisNO2_Anthro NO2 0 1 -1 3 kg/m2/s NO2_emission_flux_from_anthropogenic -EmisNO2_Ship NO2 102 -1 -1 2 kg/m2/s NO2_emission_flux_from_ships - -############################################################################### -##### O3 emissions ##### -############################################################################### -EmisO3_Ship O3 102 -1 -1 2 kg/m2/s O3_emission_flux_from_ships - -############################################################################### -##### OCPI and OCPO emissions ##### -############################################################################### -EmisOCPI_Total OCPI -1 -1 -1 3 kg/m2/s OCPI_emission_flux_from_all_sectors -EmisOCPI_Aircraft OCPI 0 20 -1 3 kg/m2/s OCPI_emission_flux_from_aircraft -EmisOCPI_Anthro OCPI 0 1 -1 3 kg/m2/s OCPI_emission_flux_from_anthropogenic -EmisOCPI_BioBurn OCPI 111 -1 -1 2 kg/m2/s OCPI_emission_flux_from_biomass_burning -EmisOCPI_Ship OCPI 0 10 -1 2 kg/m2/s OCPI_emission_flux_from_ships -EmisOCPO_Total OCPO -1 -1 -1 2 kg/m2/s OCPO_emission_flux_from_all_sectors -EmisOCPO_Anthro OCPO 0 1 -1 2 kg/m2/s OCPO_emission_flux_from_anthropogenic -EmisOCPO_BioBurn OCPO 111 -1 -1 2 kg/m2/s OCPO_emission_flux_from_biomass_burning -EmisOCPO_Ship OCPO 0 10 -1 2 kg/m2/s OCPO_emission_flux_from_ships - -############################################################################### -##### pFe emissions ##### -############################################################################### -EmispFe_Total pFe -1 -1 -1 3 kg/m2/s pFe_emission_flux_from_all_sectors -EmispFe_Anthro pFe 0 1 -1 3 kg/m2/s pFe_emission_flux_from_anthropogenic -EmispFe_Ship pFe 0 10 -1 2 kg/m2/s pFe_emission_flux_from_ships - -############################################################################### -##### POG1 and POG2 emissions ##### -############################################################################### -EmisPOG1_Total POG1 -1 -1 -1 3 kg/m2/s POG1_emission_flux_from_all_sectors -EmisPOG1_Anthro POG1 0 1 -1 3 kg/m2/s POG1_emission_flux_from_anthropogenic -EmisPOG1_BioBurn POG1 111 -1 -1 2 kg/m2/s POG1_emission_flux_from_GFED_inventory -EmisPOG2_Total POG2 -1 -1 -1 3 kg/m2/s POG2_emission_flux_from_all_sectors -EmisPOG2_Anthro POG2 0 1 -1 3 kg/m2/s POG2_emission_flux_from_anthropogenic -EmisPOG2_BioBurn POG2 111 -1 -1 2 kg/m2/s POG2_emission_flux_from_GFED_inventory - -############################################################################### -##### PRPE emissions ##### -############################################################################### -EmisPRPE_Total PRPE -1 -1 -1 3 kg/m2/s PRPE_emission_flux_from_all_sectors -EmisPRPE_Aircraft PRPE 0 20 -1 3 kg/m2/s PRPE_emission_flux_from_aircraft -EmisPRPE_Anthro PRPE 0 1 -1 3 kg/m2/s PRPE_emission_flux_from_anthropogenic -EmisPRPE_BioBurn PRPE 111 -1 -1 2 kg/m2/s PRPE_emission_flux_from_biomass_burning -EmisPRPE_Biogenic PRPE 0 4 -1 2 kg/m2/s PRPE_emission_flux_from_biogenic_sources -EmisPRPE_Ship PRPE 0 10 -1 2 kg/m2/s PRPE_emission_flux_from_ships - -############################################################################### -##### RCHO emissions ##### -############################################################################### -EmisRCHO_Total RCHO -1 -1 -1 3 kg/m2/s RCHO_emission_flux_from_all_sectors -EmisRCHO_Aircraft RCHO 0 20 -1 3 kg/m2/s RCHO_emission_flux_from_aircraft -EmisRCHO_Anthro RCHO 0 1 -1 3 kg/m2/s RCHO_emission_flux_from_anthropogenic - -############################################################################### -##### SESQ emissions ##### -############################################################################### -# SESQ is not an active species in GEOS-Chem; disable for now -#EmisSESQ_Biogenic SESQ 0 4 -1 2 kg/m2/s SESQ_emission_flux_from_biogenic_sources - -############################################################################### -##### Sea salt emissions ##### -############################################################################### -EmisSALA_Natural SALA 0 3 -1 2 kg/m2/s SALA_emission_flux_from_natural_sources -#EmisBrSALA_Natural BrSALA 0 3 -1 2 kg/m2/s BrSALA_emission_flux_from_natural_sources -EmisSALAAL_Natural SALAAL 0 3 -1 2 kg/m2/s SALAAL_emission_flux_from_natural_sources -EmisSALACL_Natural SALACL 0 3 -1 2 kg/m2/s SALACL_emission_flux_from_natural_sources -EmisSALC_Natural SALC 0 3 -1 2 kg/m2/s SALC_emission_flux_from_natural_sources -#EmisBrSALC_Natural BrSALC 0 3 -1 2 kg/m2/s BrSALC_emission_flux_from_natural_sources -EmisSALCAL_Natural SALCAL 0 3 -1 2 kg/m2/s SALCAL_emission_flux_from_natural_sources -EmisSALCCL_Natural SALCCL 0 3 -1 2 kg/m2/s SALCCL_emission_flux_from_natural_sources - -############################################################################### -##### SO2 emissions ##### -############################################################################### -EmisSO2_Total SO2 -1 -1 -1 3 kg/m2/s SO2_emission_flux_from_all_sectors -EmisSO2_Aircraft SO2 0 20 -1 3 kg/m2/s SO2_emission_flux_from_aircraft -EmisSO2_Anthro SO2 0 1 -1 3 kg/m2/s SO2_emission_flux_from_anthropogenic -EmisSO2_BioBurn SO2 111 -1 -1 2 kg/m2/s SO2_emission_flux_from_biomass_burning -EmisSO2_VolcErupt SO2 117 51 -1 3 kg/m2/s SO2_emission_flux_from_eruptive_volcano -EmisSO2_VolcDegas SO2 117 52 -1 3 kg/m2/s SO2_emission_flux_from_noneruptive_volcano -EmisSO2_Ship SO2 0 10 -1 2 kg/m2/s SO2_emission_flux_from_ships - -############################################################################### -##### SO4 emissions ##### -############################################################################### -EmisSO4_Total SO4 -1 -1 -1 3 kg/m2/s SO4_emission_flux_from_all_sectors -EmisSO4_Aircraft SO4 0 20 -1 3 kg/m2/s SO4_emission_flux_from_aircraft -EmisSO4_Anthro SO4 0 1 -1 3 kg/m2/s SO4_emission_flux_from_anthropogenic -EmisSO4_Ship SO4 0 10 -1 2 kg/m2/s SO4_emission_flux_from_ship - -############################################################################### -##### SOAP sources ##### -############################################################################### -EmisSOAP_Total SOAP -1 -1 -1 3 kg/m2/s SOAP_emission_flux_from_all_sectors -EmisSOAP_Aircraft SOAP 0 20 -1 3 kg/m2/s SOAP_emission_flux_from_aircraft -EmisSOAP_Anthro SOAP 0 1 -1 3 kg/m2/s SOAP_emission_flux_from_anthropogenic -EmisSOAP_Biogenic SOAP 0 4 -1 2 kg/m2/s SOAP_emission_flux_from_biogenic_sources -EmisSOAP_BioBurn SOAP 111 -1 -1 2 kg/m2/s SOAP_emission_flux_from_biomass_burning -EmisSOAP_Ship SOAP 0 10 -1 2 kg/m2/s SOAP_emission_flux_from_ships - -############################################################################### -##### SOAS sources ##### -############################################################################### -EmisSOAS_Biogenic SOAS 0 4 -1 2 kg/m2/s SOAS_emission_flux_from_biogenic_sources - -############################################################################### -##### TOLU emissions ##### -############################################################################### -EmisTOLU_Total TOLU -1 -1 -1 3 kg/m2/s TOLU_emission_flux_from_all_sectors -EmisTOLU_Anthro TOLU 0 1 -1 3 kg/m2/s TOLU_emission_flux_from_anthropogenic -EmisTOLU_BioBurn TOLU 111 -1 -1 2 kg/m2/s TOLU_emission_flux_from_biomass_burning -EmisTOLU_Ship TOLU 0 10 -1 2 kg/m2/s TOLU_emission_flux_from_ships - -############################################################################### -##### XYLE emissions ##### -############################################################################### -EmisXYLE_Total XYLE -1 -1 -1 3 kg/m2/s XYLE_emission_flux_from_all_sectors -EmisXYLE_Anthro XYLE 0 1 -1 3 kg/m2/s XYLE_emission_flux_from_anthropogenic -EmisXYLE_BioBurn XYLE 111 -1 -1 2 kg/m2/s XYLE_emission_flux_from_biomass_burning -EmisXYLE_Ship XYLE 0 10 -1 2 kg/m2/s XYLE_emission_flux_from_ships - -############################################################################### -##### Additional diagnostics saved out via HEMCO extensions ##### -############################################################################### - -#============================= -# LIGHTNOX extension -#============================= -HcoLightningFlashRate_Total -1 103 -1 -1 2 flashes/min/km2 Total_lightning_flash_rate -HcoLightningFlashRate_IntraCld -1 103 -1 -1 2 flashes/min/km2 Intra-cloud_lightning_flash_rate -HcoLightningFlashRate_CldGround -1 103 -1 -1 2 flashes/min/km2 Cloud-ground_lightning_flash_rate -HcoConvectiveCloudTopHeight -1 103 -1 -1 2 level Convective_cloud_top_height - -############################################################################### -##### INVENTORY DIAGNOSTICS, needed for benchmarking simulations only ##### -##### Listed in same order as HEMCO_Config.rc ##### -##### (You can comment these out for production runs, to save memory) ##### -############################################################################### - -#============================= -# APEI -#============================= -#InvAPEI_BCPI BCPI 0 1 30 2 kg/m2/s BCPI_emission_flux_from_APEI_inventory -#InvAPEI_BCPO BCPO 0 1 30 2 kg/m2/s BCPO_emission_flux_from_APEI_inventory -#InvAPEI_CO CO 0 1 30 2 kg/m2/s CO_emission_flux_from_APEI_inventory -#InvAPEI_NH3 NH3 0 1 30 2 kg/m2/s NH3_emission_flux_from_APEI_inventory -#InvAPEI_NO NO 0 1 30 2 kg/m2/s NO_emission_flux_from_APEI_inventory -#InvAPEI_OCPI OCPI 0 1 30 2 kg/m2/s OCPI_emission_flux_from_APEI_inventory -#InvAPEI_OCPO OCPO 0 1 30 2 kg/m2/s OCPO_emission_flux_from_APEI_inventory -#InvAPEI_pFe pFe 0 1 30 2 kg/m2/s pFe_emission_flux_from_APEI_inventory -#InvAPEI_POG1 POG1 0 1 30 2 kg/m2/s POG1_emission_flux_from_APEI_inventory -#InvAPEI_POG2 POG2 0 1 30 2 kg/m2/s POG2_emission_flux_from_APEI_inventory -#InvAPEI_SO2 SO2 0 1 30 2 kg/m2/s SO2_emission_flux_from_APEI_inventory -#InvAPEI_SO4 SO4 0 1 30 2 kg/m2/s SO4_emission_flux_from_APEI_inventory -#InvAPEI_SOAP SOAP 0 1 30 2 kg/m2/s SOAP_emission_flux_from_APEI_inventory - -#============================= -# NEI2011 -#============================= -#InvNEI2011_ACET ACET 0 1 50 3 kg/m2/s ACET_emission_flux_from_NEI2011_inventory -#InvNEI2011_ALD2 ALD2 0 1 50 3 kg/m2/s ALD2_emission_flux_from_NEI2011_inventory -#InvNEI2011_ALK4 ALK4 0 1 50 3 kg/m2/s ALK4_emission_flux_from_NEI2011_inventory -#InvNEI2011_BCPI BCPI 0 1 50 3 kg/m2/s BCPI_emission_flux_from_NEI2011_inventory -#InvNEI2011_BCPO BCPO 0 1 50 3 kg/m2/s BCPO_emission_flux_from_NEI2011_inventory -#InvNEI2011_BENZ BENZ 0 1 50 3 kg/m2/s BENZ_emission_flux_from_NEI2011_inventory -#InvNEI2011_C2H4 C2H4 0 1 50 3 kg/m2/s C2H4_emission_flux_from_NEI2011_inventory -#InvNEI2011_C2H6 C2H6 0 1 50 3 kg/m2/s C2H6_emission_flux_from_NEI2011_inventory -#InvNEI2011_C3H8 C3H8 0 1 50 3 kg/m2/s C3H8_emission_flux_from_NEI2011_inventory -#InvNEI2011_CH2O CH2O 0 1 50 3 kg/m2/s CH2O_emission_flux_from_NEI2011_inventory -#InvNEI2011_CO CO 0 1 50 3 kg/m2/s CO_emission_flux_from_NEI2011_inventory -#InvNEI2011_EOH EOH 0 1 50 3 kg/m2/s EOH_emission_flux_from_NEI2011_inventory -#InvNEI2011_HONO HONO 0 1 50 3 kg/m2/s HONO_emission_flux_from_NEI2011_inventory -#InvNEI2011_MACR MACR 0 1 50 3 kg/m2/s MACR_emission_flux_from_NEI2011_inventory -#InvNEI2011_MEK MEK 0 1 50 3 kg/m2/s MEK_emission_flux_from_NEI2011_inventory -#InvNEI2011_MOH MOH 0 1 50 3 kg/m2/s MOH_emission_flux_from_NEI2011_inventory -#InvNEI2011_NH3 NH3 0 1 50 3 kg/m2/s NH3_emission_flux_from_NEI2011_inventory -#InvNEI2011_NO NO 0 1 50 3 kg/m2/s NO_emission_flux_from_NEI2011_inventory -#InvNEI2011_NO2 NO2 0 1 50 3 kg/m2/s NO2_emission_flux_from_NEI2011_inventory -#InvNEI2011_pFe pFe 0 1 50 3 kg/m2/s pFe_emission_flux_from_NEI2011_inventory -#InvNEI2011_PRPE PRPE 0 1 50 3 kg/m2/s PRPE_emission_flux_from_NEI2011_inventory -#InvNEI2011_OCPI OCPI 0 1 50 3 kg/m2/s OCPI_emission_flux_from_NEI2011_inventory -#InvNEI2011_OCPO OCPO 0 1 50 3 kg/m2/s OCPO_emission_flux_from_NEI2011_inventory -#InvNEI2011_RCHO RCHO 0 1 50 3 kg/m2/s RCHO_emission_flux_from_NEI2011_inventory -#InvNEI2011_SO2 SO2 0 1 50 3 kg/m2/s SO2_emission_flux_from_NEI2011_inventory -#InvNEI2011_SO4 SO4 0 1 50 3 kg/m2/s SO4_emission_flux_from_NEI2011_inventory -#InvNEI2011_SOAP SOAP 0 1 50 3 kg/m2/s SOAP_emission_flux_from_NEI2011_inventory -#InvNEI2011_TOLU TOLU 0 1 50 3 kg/m2/s TOLU_emission_flux_from_NEI2011_inventory -#InvNEI2011_XYLE XYLE 0 1 50 3 kg/m2/s XYLE_emission_flux_from_NEI2011_inventory - -#============================= -# MIX -#============================= -#InvMIX_ACET ACET 0 1 45 2 kg/m2/s ACET_emission_flux_from_MIX_inventory -#InvMIX_ALD2 ALD2 0 1 45 2 kg/m2/s ALD2_emission_flux_from_MIX_inventory -#InvMIX_ALK4 ALK4 0 1 45 2 kg/m2/s ALK4_emission_flux_from_MIX_inventory -#InvMIX_C2H6 C2H6 0 1 45 2 kg/m2/s C2H6_emission_flux_from_MIX_inventory -#InvMIX_C3H8 C3H8 0 1 45 2 kg/m2/s C3H8_emission_flux_from_MIX_inventory -#InvMIX_CH2O CH2O 0 1 45 2 kg/m2/s CH2O_emission_flux_from_MIX_inventory -#InvMIX_CO CO 0 1 45 2 kg/m2/s CO_emission_flux_from_MIX_inventory -#InvMIX_MEK MEK 0 1 45 2 kg/m2/s MEK_emission_flux_from_MIX_inventory -#InvMIX_NH3 NH3 0 1 45 2 kg/m2/s NH3_emission_flux_from_MIX_inventory -#InvMIX_NO NO 0 1 45 2 kg/m2/s NO_emission_flux_from_MIX_inventory -#InvMIX_pFe pFe 0 1 45 2 kg/m2/s pFe_emission_flux_from_MIX_inventory -#InvMIX_PRPE PRPE 0 1 45 2 kg/m2/s PRPE_emission_flux_from_MIX_inventory -#InvMIX_SO2 SO2 0 1 45 2 kg/m2/s SO2_emission_flux_from_MIX_inventory -#InvMIX_SO4 SO4 0 1 45 2 kg/m2/s SO4_emission_flux_from_MIX_inventory -#InvMIX_SOAP SOAP 0 1 45 2 kg/m2/s SOAP_emission_flux_from_MIX_inventory - -#============================= -# DICE-AFRICA -#============================= -#InvDICEAfrica_ACET ACET 0 1 60 2 kg/m2/s ACET_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_ALD2 ALD2 0 1 60 2 kg/m2/s ALD2_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_ALK4 ALK4 0 1 60 2 kg/m2/s ALK4_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_BCPI BCPI 0 1 60 2 kg/m2/s BCPI_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_BCPO BCPO 0 1 60 2 kg/m2/s BCPO_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_BENZ BENZ 0 1 60 2 kg/m2/s BENZ_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_C2H2 C2H2 0 1 60 2 kg/m2/s C2H2_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_C2H4 C2H4 0 1 60 2 kg/m2/s C2H4_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_C2H6 C2H6 0 1 60 2 kg/m2/s C2H6_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_C3H8 C3H8 0 1 60 2 kg/m2/s C2H8_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_CH2O CH2O 0 1 60 2 kg/m2/s CH2O_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_CO CO 0 1 60 2 kg/m2/s CO_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_HAC HAC 0 1 60 2 kg/m2/s HAC_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_HCOOH HCOOH 0 1 60 2 kg/m2/s HCOOH_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_GLYC GLYC 0 1 60 2 kg/m2/s GLYC_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_ISOP ISOP 0 1 60 2 kg/m2/s ISOP_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_MACR MACR 0 1 60 2 kg/m2/s MACR_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_MEK MEK 0 1 60 2 kg/m2/s MEK_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_MOH MOH 0 1 60 2 kg/m2/s MOH_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_MVK MVK 0 1 60 2 kg/m2/s MVK_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_NH3 NH3 0 1 60 2 kg/m2/s NH3_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_NO NO 0 1 60 2 kg/m2/s NO_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_NO2 NO2 0 1 60 2 kg/m2/s NO2_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_OCPI OCPI 0 1 60 2 kg/m2/s OCPI_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_OCPO OCPO 0 1 60 2 kg/m2/s OCPO_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_pFe pFe 0 1 60 2 kg/m2/s pFe_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_PRPE PRPE 0 1 60 2 kg/m2/s PRPE_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_RCHO RCHO 0 1 60 2 kg/m2/s RCHO_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_SO2 SO2 0 1 60 2 kg/m2/s SO2_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_SO4 SO4 0 1 60 2 kg/m2/s SO4_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_SOAP SOAP 0 1 60 2 kg/m2/s SOAP_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_TOLU TOLU 0 1 60 2 kg/m2/s TOLU_emission_flux_from_DICEAfrica_inventory -#InvDICEAfrica_XYLE XYLE 0 1 60 2 kg/m2/s XYLE_emission_flux_from_DICEAfrica_inventory - -#============================= -# CEDS -#============================= -#InvCEDS_ALD2 ALD2 0 1 5 2 kg/m2/s ALD2_emission_flux_from_CEDS_inventory -#InvCEDS_ALK4 ALK4 0 1 5 2 kg/m2/s ALK4_emission_flux_from_CEDS_inventory -#InvCEDS_BCPI BCPI 0 1 5 2 kg/m2/s BCPI_emission_flux_from_CEDS_inventory -#InvCEDS_BCPO BCPO 0 1 5 2 kg/m2/s BCPO_emission_flux_from_CEDS_inventory -#InvCEDS_BENZ BENZ 0 1 5 2 kg/m2/s BENZ_emission_flux_from_CEDS_inventory -#InvCEDS_C2H2 C2H2 0 1 5 2 kg/m2/s C2H2_emission_flux_from_CEDS_inventory -#InvCEDS_C2H4 C2H4 0 1 5 2 kg/m2/s C2H4_emission_flux_from_CEDS_inventory -#InvCEDS_C2H6 C2H6 0 1 5 2 kg/m2/s C2H6_emission_flux_from_CEDS_inventory -#InvCEDS_C3H8 C3H8 0 1 5 2 kg/m2/s C3H8_emission_flux_from_CEDS_inventory -#InvCEDS_CH2O CH2O 0 1 5 2 kg/m2/s CH2O_emission_flux_from_CEDS_inventory -#InvCEDS_CO CO 0 1 5 2 kg/m2/s CO_emission_flux_from_CEDS_inventory -#InvCEDS_MOH MOH 0 1 5 2 kg/m2/s MOH_emission_flux_from_CEDS_inventory -#InvCEDS_EOH EOH 0 1 5 2 kg/m2/s EOH_emission_flux_from_CEDS_inventory -#InvCEDS_ROH ROH 0 1 5 2 kg/m2/s ROH_emission_flux_from_CEDS_inventory -#InvCEDS_HCOOH HCOOH 0 1 5 2 kg/m2/s HCOOH_emission_flux_from_CEDS_inventory -#InvCEDS_MEK MEK 0 1 5 2 kg/m2/s MEK_emission_flux_from_CEDS_inventory -#InvCEDS_NH3 NH3 0 1 5 2 kg/m2/s NH3_emission_flux_from_CEDS_inventory -#InvCEDS_NO NO 0 1 5 2 kg/m2/s NO_emission_flux_from_CEDS_inventory -#InvCEDS_OCPI OCPI 0 1 5 2 kg/m2/s OCPI_emission_flux_from_CEDS_inventory -#InvCEDS_OCPO OCPO 0 1 5 2 kg/m2/s OCPO_emission_flux_from_CEDS_inventory -#InvCEDS_pFe pFe 0 1 5 2 kg/m2/s pFe_emission_flux_from_CEDS_inventory -#InvCEDS_POG1 POG1 0 1 5 2 kg/m2/s POG1_emission_flux_from_CEDS_inventory -#InvCEDS_POG2 POG2 0 1 5 2 kg/m2/s POG2_emission_flux_from_CEDS_inventory -#InvCEDS_PRPE PRPE 0 1 5 2 kg/m2/s PRPE_emission_flux_from_CEDS_inventory -#InvCEDS_SO2 SO2 0 1 5 2 kg/m2/s SO2_emission_flux_from_CEDS_inventory -#InvCEDS_SO4 SO4 0 1 5 2 kg/m2/s SO4_emission_flux_from_CEDS_inventory -#InvCEDS_SOAP SOAP 0 1 5 2 kg/m2/s SOAP_emission_flux_from_CEDS_inventory -#InvCEDS_TOLU TOLU 0 1 5 2 kg/m2/s TOLU_emission_flux_from_CEDS_inventory -#InvCEDS_XYLE XYLE 0 1 5 2 kg/m2/s XYLE_emission_flux_from_CEDS_inventory - -#============================= -# GEIA_NH3 -#============================= -#InvGEIAnatural_NH3 NH3 0 3 1 2 kg/m2/s NH3_emission_flux_from_GEIA_natural_source - -#============================= -# Seabirds -#============================= -#InvSEABIRDS_NH3 NH3 0 30 1 2 kg/m2/s NH3_emission_flux_from_arctic_seabirds - -#============================= -# C2H62010 -#============================= -#InvC2H62010_C2H6 C2H6 0 1 100 2 kg/m2/s C2H6_from_C2H62010_anthropogenic_inventory - -#============================= -# XIAO_C3H8 -#============================= -#InvXIAO_C3H8 C3H8 0 1 10 2 kg/m2/s C3H8_from_XIAO_anthropogenic_inventory - -#============================= -# LIANG_BROMOCARB -#============================= -#InvLIANG_CH2Br2 CH2Br2 0 1 1 2 kg/m2/s CH2Br2_emission_flux_from_LIANG_BROMOCARB_inventory -#InvLIANG_CHBr3 CHBr3 0 1 1 2 kg/m2/s CHBr3_emission_flux_from_LIANG_BROMOCARB_inventory - -#============================= -# ORDONEZ_IODOCARB -#============================= -#InvORDONEZ_CH2I2 CH2I2 0 1 1 2 kg/m2/s CH2I2_emission_flux_from_ORDONEZ_IODOCARB_inventory -#InvORDONEZ_CH2ICl CH2ICl 0 1 1 2 kg/m2/s CH2ICl_emission_flux_from_ORDONEZ_IODOCARB_inventory -#InvORDONEZ_CH2IBr CH2IBr 0 1 1 2 kg/m2/s CH2IBr_emission_flux_from_ORDONEZ_IODOCARB_inventory -#InvORDONEZ_CH3I CH3I 0 1 1 2 kg/m2/s CH3I_emission_flux_from_ORDONEZ_IODOCARB_inventory - -#============================= -# CEDS_SHIP -#============================= -#InvCEDSship_ALD2 ALD2 0 10 5 2 kg/m2/s ALD2_emission_flux_from_CEDSship_inventory -#InvCEDSship_ALK4 ALK4 0 10 5 2 kg/m2/s ALK4_emission_flux_from_CEDSship_inventory -#InvCEDSship_BCPI BCPI 0 10 5 2 kg/m2/s BCPI_emission_flux_from_CEDSship_inventory -#InvCEDSship_BCPO BCPO 0 10 5 2 kg/m2/s BCPO_emission_flux_from_CEDSship_inventory -#InvCEDSship_BENZ BENZ 0 10 5 2 kg/m2/s BENZ_emission_flux_from_CEDSship_inventory -#InvCEDSship_C2H2 C2H2 0 10 5 2 kg/m2/s C2H2_emission_flux_from_CEDSship_inventory -#InvCEDSship_C2H4 C2H4 0 10 5 2 kg/m2/s C2H4_emission_flux_from_CEDSship_inventory -#InvCEDSship_C2H6 C2H6 0 10 5 2 kg/m2/s C2H6_emission_flux_from_CEDSship_inventory -#InvCEDSship_C3H8 C3H8 0 10 5 2 kg/m2/s C3H8_emission_flux_from_CEDSship_inventory -#InvCEDSship_CH2O CH2O 0 10 5 2 kg/m2/s CH2O_emission_flux_from_CEDSship_inventory -#InvCEDSship_CO CO 0 10 5 2 kg/m2/s CO_emission_flux_from_CEDSship_inventory -#InvCEDSship_EOH EOH 0 10 5 2 kg/m2/s EOH_emission_flux_from_CEDSship_inventory -#InvCEDSship_HCOOH HCOOH 0 10 5 2 kg/m2/s HCOOH_emission_flux_from_CEDSship_inventory -#InvCEDSship_MEK MEK 0 10 5 2 kg/m2/s MEK_emission_flux_from_CEDSship_inventory -#InvCEDSship_NH3 NH3 0 10 5 2 kg/m2/s NH3_emission_flux_from_CEDSship_inventory -#InvCEDSship_pFe pFe 0 10 5 2 kg/m2/s pFe_emission_flux_from_CEDSship_inventory -#InvCEDSship_PRPE PRPE 0 10 5 2 kg/m2/s PRPE_emission_flux_from_CEDSship_inventory -#InvCEDSship_OCPI OCPI 0 10 5 2 kg/m2/s OCPI_emission_flux_from_CEDSship_inventory -#InvCEDSship_OCPO OCPO 0 10 5 2 kg/m2/s OCPO_emission_flux_from_CEDSship_inventory -#InvCEDSship_SO2 SO2 0 10 5 2 kg/m2/s SO2_emission_flux_from_CEDSship_inventory -#InvCEDSship_SO4 SO4 0 10 5 2 kg/m2/s SO4_emission_flux_from_CEDSship_inventory -#InvCEDSship_SOAP SOAP 0 10 5 2 kg/m2/s SOAP_emission_flux_from_CEDSship_inventory -#InvCEDSship_TOLU TOLU 0 10 5 2 kg/m2/s TOLU_emission_flux_from_CEDSship_inventory -#InvCEDSship_XYLE XYLE 0 10 5 2 kg/m2/s XYLE_emission_flux_from_CEDSship_inventory - -#============================= -# AEIC -#============================= -#InvAEIC_ACET ACET 0 20 1 3 kg/m2/s ACET_emission_flux_from_AEIC_inventory -#InvAEIC_ALD2 ALD2 0 20 1 3 kg/m2/s ALD2_emission_flux_from_AEIC_inventory -#InvAEIC_ALK4 ALK4 0 20 1 3 kg/m2/s ALK4_emission_flux_from_AEIC_inventory -#InvAEIC_BCPI BCPI 0 20 1 3 kg/m2/s BCPI_emission_flux_from_AEIC_inventory -#InvAEIC_C2H6 C2H6 0 20 1 3 kg/m2/s C2H6_emission_flux_from_AEIC_inventory -#InvAEIC_C3H8 C3H8 0 20 1 3 kg/m2/s C3H8_emission_flux_from_AEIC_inventory -#InvAEIC_CH2O CH2O 0 20 1 3 kg/m2/s CH2O_emission_flux_from_AEIC_inventory -#InvAEIC_CO CO 0 20 1 3 kg/m2/s CO_emission_flux_from_AEIC_inventory -#InvAEIC_MACR MACR 0 20 1 3 kg/m2/s MACR_emission_flux_from_AEIC_inventory -#InvAEIC_NO NO 0 20 1 3 kg/m2/s NO_emission_flux_from_AEIC_inventory -#InvAEIC_OCPI OCPI 0 20 1 3 kg/m2/s OCPI_emission_flux_from_AEIC_inventory -#InvAEIC_PRPE PRPE 0 20 1 3 kg/m2/s PRPE_emission_flux_from_AEIC_inventory -#InvAEIC_RCHO RCHO 0 20 1 3 kg/m2/s RCHO_emission_flux_from_AEIC_inventory -#InvAEIC_SO2 SO2 0 20 1 3 kg/m2/s SO2_emission_flux_from_AEIC_inventory -#InvAEIC_SO4 SO4 0 20 1 3 kg/m2/s SO4_emission_flux_from_AEIC_inventory -#InvAEIC_SOAP SOAP 0 20 1 3 kg/m2/s SOAP_emission_flux_from_AEIC_inventory - -#============================= -# Decaying plants -#============================= -#InvPLANTDECAY_ALD2 ALD2 0 3 1 2 kg/m2/s ALD2_emission_flux_from_PLANTDECAY_inventory -#InvPLANTDECAY_EOH EOH 0 3 1 2 kg/m2/s EOH_emission_flux_from_PLANTDECAY_inventory - -#============================= -# AFCID emissions -#============================= -#InvAFCID_DST1 DST1 0 1 -1 2 kg/m2/s DST1_emission_flux_from_AFCID_inventory - -## Benchmark simulations will use online emissions -## Comment out offline emission inventories, but leave here for ease of switching -###============================= -### Offline dust emissions -###============================= -###InvOFFLINEDUST_DST1 DST1 0 3 -1 2 kg/m2/s DST1_emission_flux_from_offline_model -###InvOFFLINEDUST_DST2 DST2 0 3 -1 2 kg/m2/s DST2_emission_flux_from_offline_model -###InvOFFLINEDUST_DST3 DST3 0 3 -1 2 kg/m2/s DST3_emission_flux_from_offline_model -###InvOFFLINEDUST_DST4 DST4 0 3 -1 2 kg/m2/s DST4_emission_flux_from_offline_model -## -###============================= -### Offline biogenic VOC emissions -###============================= -###InvOFFLINEBIOVOC_ACET ACET 0 4 -1 2 kg/m2/s ACET_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_ALD2 ALD2 0 4 -1 2 kg/m2/s ALD2_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_C2H4 C2H4 0 4 -1 2 kg/m2/s C2H4_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_EOH EOH 0 4 -1 2 kg/m2/s EOH_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_ISOP ISOP 0 4 -1 2 kg/m2/s ISOP_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_LIMO LIMO 0 4 -1 2 kg/m2/s LIMO_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_MTPA MTPA 0 4 -1 2 kg/m2/s MTPA_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_MTPO MTPO 0 4 -1 2 kg/m2/s MTPO_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_PRPE PRPE 0 4 -1 2 kg/m2/s PRPE_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_SESQ SESQ 0 4 -1 2 kg/m2/s SESQ_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_SOAP SOAP 0 4 -1 2 kg/m2/s SOAP_biogenic_emission_flux_from_offline_model -###InvOFFLINEBIOVOC_SOAS SOAS 0 4 -1 2 kg/m2/s SOAS_biogenic_emission_flux_from_offline_model -## -###============================= -### Offline sea salt emissions -###============================= -###InvOFFLINESEASALT_Br2 Br2 0 3 -1 2 kg/m2/s Br2_seasalt_emission_flux_from_offline_model -###InvOFFLINESEASALT_BrSALA BrSALA 0 3 -1 2 kg/m2/s BrSALA_seasalt_emission_flux_from_offline_model -###InvOFFLINESEASALT_BrSALC BrSALC 0 3 -1 2 kg/m2/s BrSALC_seasalt_emission_flux_from_offline_model -###InvOFFLINESEASALT_SALA SALA 0 3 -1 2 kg/m2/s SALA_seasalt_emission_flux_from_offline_model -###InvOFFLINESEASALT_SALC SALC 0 3 -1 2 kg/m2/s SALC_seasalt_emission_flux_from_offline_model -## -###============================= -### Offline soil NOx emissions -###============================= -###InvOFFLINESOILNOX_NO NO 0 3 -1 2 kg/m2/s NO_soil_and_fertilizer_emission_flux_from_offline_model - -#============================= -# Seaflux extension -#============================= -#InvSeaFlux_ACET ACET 101 -1 -1 2 kg/m2/s ACET_emission_flux_from_SeaFlux_extension -#InvSeaFlux_ALD2 ALD2 101 -1 -1 2 kg/m2/s ALD2_emission_flux_from_SeaFlux_extension -#InvSeaFlux_DMS DMS 101 -1 -1 2 kg/m2/s DMS_emission_flux_from_SeaFlux_extension -#InvSeaFlux_CH3I CH3I 101 -1 -1 2 kg/m2/s CH3I_emission_flux_from_SeaFlux_extension -#InvSeaFlux_ETNO3 ETNO3 101 -1 -1 2 kg/m2/s ETNO3_emission_flux_from_SeaFlux_extension -#InvSeaFlux_MENO3 MENO3 101 -1 -1 2 kg/m2/s MENO3_emission_flux_from_SeaFlux_extension -#InvSeaFlux_MOH MOH 101 -1 -1 2 kg/m2/s MOH_emission_flux_from_SeaFlux_extension - -#============================= -# PARANOX extension -#============================= -#InvPARANOX_HNO3 HNO3 102 -1 -1 2 kg/m2/s HNO3_emission_flux_from_PARANOX_extension -#InvPARANOX_NO NO 102 -1 -1 2 kg/m2/s NO_emission_flux_from_PARANOX_extension -#InvPARANOX_NO2 NO2 102 -1 -1 2 kg/m2/s NO2_emission_flux_from_PARANOX_extension -#InvPARANOX_O3 O3 102 -1 -1 2 kg/m2/s O3_emission_flux_from_PARANOX_extension - -#============================= -# LIGHTNOX extension -#============================= -#InvLIGHTNOX_NO NO 103 -1 -1 3 kg/m2/s NO_emission_flux_from_lightning_extension - -#============================= -# SOILNOX extension -#============================= -#InvSOILNOX_NO NO 104 -1 -1 2 kg/m2/s NO_emission_flux_from_SOINOX_extension_including_soil_and_fertilizer_emissions - -#============================= -# DEAD (dust) Extension -#============================= -#InvDEAD_DST1 DST1 105 -1 -1 2 kg/m2/s DST1_emission_flux_from_DEAD_extension -#InvDEAD_DST2 DST2 105 -1 -1 2 kg/m2/s DST2_emission_flux_from_DEAD_extension -#InvDEAD_DST3 DST3 105 -1 -1 2 kg/m2/s DST3_emission_flux_from_DEAD_extension -#InvDEAD_DST4 DST4 105 -1 -1 2 kg/m2/s DST4_emission_flux_from_DEAD_extension - -#============================= -# SeaSalt extension -#============================= -#InvSeaSalt_BrSALA BrSALA 107 -1 -1 2 kg/m2/s BrSALA_emission_flux_from_SeaSalt_extension -#InvSeaSalt_BrSALC BrSALC 107 -1 -1 2 kg/m2/s BrSALC_emission_flux_from_SeaSalt_extension -#InvSeaSalt_SALA SALA 107 -1 -1 2 kg/m2/s SALA_emission_flux_from_SeaSalt_extension -#InvSeaSalt_SALC SALC 107 -1 -1 2 kg/m2/s SALC_emission_flux_from_SeaSalt_extension -#InvSeaSalt_SALAAL SALAAL 107 -1 -1 2 kg/m2/s SALAAL_emission_flux_from_SeaSalt_extension -#InvSeaSalt_SALACL SALACL 107 -1 -1 2 kg/m2/s SALACL_emission_flux_from_SeaSalt_extension -#InvSeaSalt_SALCAL SALCAL 107 -1 -1 2 kg/m2/s SALAAL_emission_flux_from_SeaSalt_extension -#InvSeaSalt_SALCCL SALCCL 107 -1 -1 2 kg/m2/s SALCCL_emission_flux_from_SeaSalt_extension - -#============================= -# MEGAN Extension -#============================= -#InvMEGAN_ALD2 ALD2 108 -1 -1 2 kg/m2/s ALD2_biogenic_emission_flux_from_MEGAN_extension -# C2H4 is not an active species in GEOS-Chem; disable for now -##InvMEGAN_C2H4 C2H4 108 -1 -1 2 kg/m2/s C2H4_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_EOH EOH 108 -1 -1 2 kg/m2/s EOH_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_ISOP ISOP 108 -1 -1 2 kg/m2/s ISOP_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_LIMO LIMO 108 -1 -1 2 kg/m2/s LIMO_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_MTPA MTPA 108 -1 -1 2 kg/m2/s MTPA_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_MTPO MTPO 108 -1 -1 2 kg/m2/s MTPO_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_PRPE PRPE 108 -1 -1 2 kg/m2/s PRPE_biogenic_emission_flux_from_MEGAN_extension -# SESQ is not an active species in GEOS-Chem; disable for now -##InvMEGAN_SESQ SESQ 108 -1 -1 2 kg/m2/s SESQ_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_SOAP SOAP 108 -1 -1 2 kg/m2/s SOAP_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_SOAS SOAS 108 -1 -1 2 kg/m2/s SOAS_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_ACET ACET 108 -1 -1 2 kg/m2/s ACET_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_ACET_MONO -1 108 -1 -1 2 kg/m2/s Acetone_from_monoterpenes_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_ACET_MBOX -1 108 -1 -1 2 kg/m2/s Acetone_from_methyl_butenol_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_ACET_DIRECT -1 108 -1 -1 2 kg/m2/s Direct_acetone_biogenic_emission_flux_from_MEGAN_extension -#InvMEGAN_MOH MOH 108 -1 -1 2 kg/m2/s Methanol_emission_flux_from_MEGAN_extension -#InvMEGAN_APIN -1 108 -1 -1 2 kg/m2/s Alpha_pinene_emission_flux_from_MEGAN_extension -#InvMEGAN_BPIN -1 108 -1 -1 2 kg/m2/s Beta_pinene_acid_emission_flux_from_MEGAN_extension -#InvMEGAN_SABI -1 108 -1 -1 2 kg/m2/s Sabinene_emission_flux_from_MEGAN_extension -#InvMEGAN_MYRC -1 108 -1 -1 2 kg/m2/s Mycrene_emission_flux_from_MEGAN_extension -#InvMEGAN_CARE -1 108 -1 -1 2 kg/m2/s 3_Carene_emission_flux_from_MEGAN_extension -#InvMEGAN_OCIM -1 108 -1 -1 2 kg/m2/s Ocimene_emission_flux_from_MEGAN_extension -#InvMEGAN_OMON -1 108 -1 -1 2 kg/m2/s Other_monoterpene_emission_flux_from_MEGAN_extension -#InvMEGAN_MONX -1 108 -1 -1 2 kg/m2/s Total_monoterpene_emission_flux_from_MEGAN_extension -#InvMEGAN_FARN -1 108 -1 -1 2 kg/m2/s alpha_Farnesene_emission_flux_from_MEGAN_extension -#InvMEGAN_BCAR -1 108 -1 -1 2 kg/m2/s beta_caryophyllene_emission_flux_from_MEGAN_extension -#InvMEGAN_OSQT -1 108 -1 -1 2 kg/m2/s Other_sesquiterpenes_emission_flux_from_MEGAN_extension -#InvMEGAN_MBOX -1 108 -1 -1 2 kg/m2/s Methyl_butenol_emission_flux_from_MEGAN_extension -#InvMEGAN_FAXX -1 108 -1 -1 2 kg/m2/s Formic_acid_emission_flux_from_MEGAN_extension -#InvMEGAN_AAXX -1 108 -1 -1 2 kg/m2/s Acetic_acid_emission_flux_from_MEGAN_extension - -#============================= -# GFED Extension -#============================= -#InvGFED_ACET ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_GFED_extension -#InvGFED_ALD2 ALD2 111 -1 -1 2 kg/m2/s ALD2_emission_flux_from_GFED_extension -#InvGFED_ALK4 ALK4 111 -1 -1 2 kg/m2/s ALK4_emission_flux_from_GFED_extension -#InvGFED_BCPI BCPI 111 -1 -1 2 kg/m2/s BCPI_emission_flux_from_GFED_extension -#InvGFED_BCPO BCPO 111 -1 -1 2 kg/m2/s BCPO_emission_flux_from_GFED_extension -#InvGFED_BENZ BENZ 111 -1 -1 2 kg/m2/s BENZ_emission_flux_from_GFED_extension -#InvGFED_C2H6 C2H6 111 -1 -1 2 kg/m2/s C2H6_emission_flux_from_GFED_extension -#InvGFED_C3H8 C3H8 111 -1 -1 2 kg/m2/s C3H8_emission_flux_from_GFED_extension -#InvGFED_CH2O CH2O 111 -1 -1 2 kg/m2/s CH2O_emission_flux_from_GFED_extension -#InvGFED_CO CO 111 -1 -1 2 kg/m2/s CO_emission_flux_from_GFED_extension -#InvGFED_EOH EOH 111 -1 -1 2 kg/m2/s EOH_emission_flux_from_GFED_extension -#InvGFED_MEK MEK 111 -1 -1 2 kg/m2/s MEK_emission_flux_from_GFED_extension -#InvGFED_MOH MOH 111 -1 -1 2 kg/m2/s MOH_emission_flux_from_GFED_extension -#InvGFED_MTPA MTP 111 -1 -1 2 kg/m2/s MTPA_emission_flux_from_GFED_extension -#InvGFED_NAP NAP 111 -1 -1 2 kg/m2/s NAP_emission_flux_from_GFED_extension -#InvGFED_NH3 NH3 111 -1 -1 2 kg/m2/s NH3_emission_flux_from_GFED_extension -#InvGFED_NO NO 111 -1 -1 2 kg/m2/s NO_emission_flux_from_GFED_extension -#InvGFED_OCPI OCPI 111 -1 -1 2 kg/m2/s OCPI_emission_flux_from_GFED_extension -#InvGFED_OCPO OCPO 111 -1 -1 2 kg/m2/s OCPO_emission_flux_from_GFED_extension -#InvGFED_POG1 POG1 111 -1 -1 2 kg/m2/s POG1_emission_flux_from_GFED_extension -#InvGFED_POG2 POG2 111 -1 -1 2 kg/m2/s POG2_emission_flux_from_GFED_extension -#InvGFED_PRPE PRPE 111 -1 -1 2 kg/m2/s PRPE_emission_flux_from_GFED_extension -#InvGFED_SO2 SO2 111 -1 -1 2 kg/m2/s SO2_emission_flux_from_GFED_extension -#InvGFED_SOAP SOAP 111 -1 -1 2 kg/m2/s SOAP_emission_flux_from_GFED_extension -#InvGFED_TOLU TOLU 111 -1 -1 2 kg/m2/s TOLU_emission_flux_from_GFED_extension -#InvGFED_XYLE ACET 111 -1 -1 2 kg/m2/s XYLE_emission_flux_from_GFED_extension - -#============================= -# Volcano extension -#============================= -#InvVOLCANOerupt_SO2 SO2 117 51 -1 3 kg/m2/s SO2_eruptive_emission_flux_from_Volcano_extension -#InvVOLCANOdegas_SO2 SO2 117 52 -1 3 kg/m2/s SO2_degassing_emission_flux_from_Volcano_extension - -#============================= -# INORG_IODINE Extension -#============================= -#InvIODINE_HOI HOI 120 -1 -1 2 kg/m2/s HOI_emission_flux_from_INORG_IODINE_extension -#InvIODINE_I2 I2 120 -1 -1 2 kg/m2/s I2_emission_flux_from_INORG_IODINE_extension - -#EOC diff --git a/run/CESM/HEMCO_Diagn.rc b/run/CESM/HEMCO_Diagn.rc new file mode 120000 index 000000000..2377e948f --- /dev/null +++ b/run/CESM/HEMCO_Diagn.rc @@ -0,0 +1 @@ +../GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem \ No newline at end of file diff --git a/run/CESM/HISTORY.rc b/run/CESM/HISTORY.rc index d8b573b0a..255bf1481 100644 --- a/run/CESM/HISTORY.rc +++ b/run/CESM/HISTORY.rc @@ -74,11 +74,15 @@ COLLECTIONS: 'Metrics', #'DryDep', 'JValues', #'KppDiags', + #'KppARDiags', #'LevelEdgeDiags', 'ProdLoss', + #'RxnRates', + #'RxnConst', 'StateChm', #'StateMet', #'StratBM', + #'UVFlux', :: ############################################################################### ### The rest of this file consists of collection definitions. ### @@ -88,7 +92,7 @@ COLLECTIONS: 'Metrics', ############################################################################### #============================================================================== -# %%%%% THE Metrics COLLECTION %%%%% +# %%%%% Metrics %%%%% # # Diagnostics for chemistry metrics such as global mean OH concentration, # MCF lifetime, and CH4 lifetime. @@ -99,8 +103,8 @@ COLLECTIONS: 'Metrics', # Available for full-chemistry and CH4 simulations only. #============================================================================== Metrics.template: '%y4%m2%d2_%h2%n2z.nc4', - Metrics.frequency: 'End', - Metrics.duration: 'End', + Metrics.frequency: {FREQUENCY} + Metrics.duration: {DURATION} Metrics.mode: 'time-averaged' Metrics.fields: 'AirMassColumnFull ', 'LossOHbyCH4columnTrop ', @@ -108,7 +112,7 @@ COLLECTIONS: 'Metrics', 'OHwgtByAirMassColumnFull ', :: #============================================================================== -# %%%%% THE AerosolMass COLLECTION %%%%% +# %%%%% AerosolMass %%%%% # # Aerosol and PM2.5 mass # @@ -138,7 +142,7 @@ COLLECTIONS: 'Metrics', 'TotalOC ', :: #============================================================================== -# %%%%% The Aerosols COLLECTION %%%%% +# %%%%% Aerosols %%%%% # # Aerosol optical depth, surface area, number density, and hygroscopic growth # @@ -250,7 +254,7 @@ COLLECTIONS: 'Metrics', 'Chem_KhetiSLAHOBrHBr ', :: #============================================================================== -# %%%%% THE Budget COLLECTION %%%%% +# %%%%% Budget %%%%% # # GEOS-Chem budget diagnostics defined as species kg/s in the column # (full, troposphere, or PBL) due to a single component (e.g. chemistry) @@ -265,9 +269,10 @@ COLLECTIONS: 'Metrics', Budget.fields: 'BudgetChemistryFull_O3 ', 'BudgetChemistryTrop_O3 ', 'BudgetChemistryPBL_O3 ', + 'BudgetChemistryLevs1to35_O3 ', :: #============================================================================== -# %%%%% THE ConcAboveSfc COLLECTION %%%%% +# %%%%% ConcAboveSfc %%%%% # # Concentrations of O3 and HNO3 at a user-specified altitude above # the surface, such as 10m. Set the desired output altitude in meters @@ -289,7 +294,7 @@ COLLECTIONS: 'Metrics', 'SpeciesConcALT1_HNO3 ', :: #============================================================================== -# %%%%% THE ConcAfterChem COLLECTION %%%%% +# %%%%% ConcAfterChem %%%%% # # Concentrations of OH, HO2, O1D, O3P immediately after exiting the KPP solver # or OH after the CH4 specialty-simulation chemistry routine. @@ -308,11 +313,11 @@ COLLECTIONS: 'Metrics', 'O3PconcAfterChem ', :: #============================================================================== -# %%%%% THE JValues COLLECTION %%%%% +# %%%%% JValues %%%%% # -# Photolysis rates and UV fluxes (from the FAST-JX photolysis module) +# Photolysis rates (from the photolysis module) # -# Available for all full-chemistry simulations +# Available for all full-chemistry simulations with photolysis #============================================================================== JValues.template: '%y4%m2%d2_%h2%n2z.nc4', JValues.frequency: {FREQUENCY} @@ -457,7 +462,19 @@ COLLECTIONS: 'Metrics', 'Jval_ATOOH ', 'Jval_ALD2 ', 'Jval_ACET ', - 'UVFluxNet_574nm ', +:: +#============================================================================== +# %%%%% UVFlux %%%%% +# +# UV fluxes (from the photolysis module) +# +# Available for all full-chemistry simulations with photolysis +#============================================================================== + UVFlux.template: '%y4%m2%d2_%h2%n2z.nc4', + UVFlux.frequency: {FREQUENCY} + UVFlux.duration: {DURATION} + UVFlux.mode: 'time-averaged' + UVFlux.fields: 'UVFluxNet_574nm ', 'UVFluxNet_380nm ', 'UVFluxNet_333nm ', 'UVFluxNet_316nm ', @@ -513,7 +530,7 @@ COLLECTIONS: 'Metrics', 'UVFluxDiffuse_187nm ', :: #============================================================================== -# %%%%% THE KppDiags COLLECTION %%%%% +# %%%%% KppDiags %%%%% # # Diagnostics from the KPP solver. # @@ -531,11 +548,30 @@ COLLECTIONS: 'Metrics', 'KppLuDecomps ', 'KppSubsts ', 'KppSmDecomps ', + #'KppNegatives ', + #'KppNegatives0 ', + 'KppTime ', :: #============================================================================== -# %%%%% THE LevelEdgeDiags COLLECTION %%%%% +# %%%%% KppARDiags %%%%% # -# Diagnostics that are defined on grid box level edges +# Diagnostics from the KPP solver when auto-reduction solver is used. +# +# Available for full-chemistry simulations only if auto-reduce is enabled. +#============================================================================== + KppARDiags.template: '%y4%m2%d2_%h2%n2z.nc4', + KppARDiags.frequency: {FREQUENCY} + KppARDiags.duration: {DURATION} + KppARDiags.mode: 'time-averaged' + KppARDiags.fields: 'KppAutoReducerNVAR ', + 'KppAutoReduceThres ', + 'KppcNONZERO ', +:: +#============================================================================== +# %%%%% LevelEdgeDiags %%%%% +# +# Diagnostics that are defined on grid box level edges. Vertical dimension +# size is one more than 3D fields in the StateMet collection. # # Available for all simulations #============================================================================== @@ -552,7 +588,7 @@ COLLECTIONS: 'Metrics', 'Met_PFLLSAN ', :: #============================================================================== -# %%%%% THE ProdLoss COLLECTION %%%%% +# %%%%% ProdLoss %%%%% # # Chemical production and loss rates # @@ -584,7 +620,44 @@ COLLECTIONS: 'Metrics', 'ProdCOfromNMVOC ', :: #============================================================================== -# %%%%% THE StateChm COLLECTION %%%%% +# %%%%% RxnRates %%%%% +# +# Archives chemical reaction rates from the KPP solver. +# It is best to list individual reactions to avoid using too much memory. +# Reactions should be listed as "RxnRate_EQnnn", where nnn is the reaction +# index as listed in KPP/fullchem/gckpp_Monitor.F90 (pad zeroes as needed). +# +# Available for the fullchem simulations. +#============================================================================== + RxnRates.template: '%y4%m2%d2_%h2%n2z.nc4', + RxnRates.frequency: {FREQUENCY} + RxnRates.duration: {DURATION} + RxnRates.mode: 'time-averaged' + RxnRates.fields: 'RxnRate_EQ001 ', + 'RxnRate_EQ002 ', +:: +#============================================================================== +# %%%%% RxnConst %%%%% +# +# Archives chemical reaction rates constants from the KPP solver. +# It is best to list individual reactions to avoid using too much memory. +# Reactions should be listed as "RxnConst_EQnnn", where nnn is the reaction +# index as listed in KPP/fullchem/gckpp_Monitor.F90 (pad zeroes as needed). +# +# The units of reaction rate constants vary according to the number of reactants +# in the reaction. +# +# Available for the fullchem simulations. +#============================================================================== + RxnConst.template: '%y4%m2%d2_%h2%n2z.nc4', + RxnConst.frequency: {FREQUENCY} + RxnConst.duration: {DURATION} + RxnConst.mode: 'time-averaged' + RxnConst.fields: 'RxnConst_EQ001 ', + 'RxnConst_EQ002 ', +:: +#============================================================================== +# %%%%% StateChm %%%%% # # Fields of the State_Chm object (see also Aerosols collection) # @@ -618,9 +691,11 @@ COLLECTIONS: 'Metrics', 'Chem_YieldClNO2fine ', :: #============================================================================== -# %%%%% The StateMet COLLECTION %%%%% +# %%%%% StateMet %%%%% # -# Fields of the State_Met object (also see the LevelEdgeDiags collection) +# Fields of the State_Met object (also see the LevelEdgeDiags collection). All +# 3D fields are centered in the grid box, i.e. not at level edges. Vertical +# dimension size is one more than 3D fields in the LevelEdgeDiags collection. # # Available for all simulations #============================================================================== @@ -649,10 +724,10 @@ COLLECTIONS: 'Metrics', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', @@ -710,23 +785,4 @@ COLLECTIONS: 'Metrics', 'Met_V10M ', 'Met_Z0 ', 'FracOfTimeInTrop ', -:: -#============================================================================== -# %%%%% THE StratBM COLLECTION %%%%% -# -# Fields needed for GEOS-Chem 10-year stratospheric benchmarks -# -# Available for full-chemistry simulations -#============================================================================== - StratBM.template: '%y4%m2%d2_%h2%n2z.nc4', - StratBM.frequency: 00000000 010000 - StratBM.duration: 00000001 000000 - StratBM.mode: 'time-averaged' - StratBM.fields: 'SpeciesConcVV_NO2 ', - 'SpeciesConcVV_O3 ', - 'SpeciesConcVV_ClO ', - 'Met_PSC2WET ', - 'Met_BXHEIGHT ', - 'Met_AIRDEN ', - 'Met_AD ', :: \ No newline at end of file diff --git a/run/CESM/geoschem_config.yml b/run/CESM/geoschem_config.yml index e58ccfd99..be47c127c 100644 --- a/run/CESM/geoschem_config.yml +++ b/run/CESM/geoschem_config.yml @@ -14,7 +14,9 @@ simulation: end_date: 20000101 010000 chem_inputs_dir: ./ species_database_file: ./species_database.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all #============================================================================ # Settings for GEOS-Chem operations @@ -30,9 +32,33 @@ operations: activate: true use_static_bnd_cond: true gamma_HO2: 0.2 + autoreduce_solver: + activate: false + use_target_threshold: + activate: true + oh_tuning_factor: 0.00005 + no2_tuning_factor: 0.0001 + use_absolute_threshold: + scale_by_pressure: true + absolute_threshold: 100.0 + keep_halogens_active: false + append_in_internal_timestep: false - convection: - activate: false + photolysis: + activate: true + input_directories: + fastjx_input_dir: /see/namelist/file + cloudj_input_dir: /see/namelist/file + overhead_O3: + use_online_O3_from_model: true + use_column_O3_from_met: true + use_TOMS_SBUV_O3: false + photolyze_nitrate_aerosol: + activate: true + NITs_Jscale: 100.0 + NIT_Jscale: 100.0 + percent_channel_A_HONO: 66.667 + percent_channel_B_NO2: 33.333 dry_deposition: activate: true @@ -42,22 +68,15 @@ operations: reference_CO2_level: 380.0 diag_alt_above_sfc_in_m: 10 + wet_deposition: + activate: true + pbl_mixing: activate: true use_non_local_pbl: true - photolysis: - input_dir: {DATA_ROOT}/CHEM_INPUTS/FAST_JX/v2020-10/ - overhead_O3: - use_online_O3_from_model: true - use_column_O3_from_met: true - use_TOMS_SBUV_O3: false - photolyze_nitrate_aerosol: - activate: false - NITs_Jscale_JHNO3: 0.0 - NIT_Jscale_JHNO2: 0.0 - percent_channel_A_HONO: 66.667 - percent_channel_B_NO2: 33.333 + convection: + activate: false rrtmg_rad_transfer_model: activate: false @@ -69,13 +88,15 @@ operations: all_sky_flux: false transport: - activate: true transported_species: - ACET - ACTA - AERI - ALD2 - ALK4 + - AONITA + - AROMP4 + - AROMP5 - ASOA1 - ASOA2 - ASOA3 @@ -83,9 +104,6 @@ operations: - ASOG1 - ASOG2 - ASOG3 - - AONITA - - AROMP4 - - AROMP5 - ATOOH - BALD - BCPI @@ -100,6 +118,7 @@ operations: - BrO - BrSALA - BrSALC + - BUTDI - BZCO3H - BZPAN - C2H2 @@ -146,6 +165,7 @@ operations: - ETHP - ETNO3 - ETP + - FURA - GLYC - GLYX - H1211 @@ -305,9 +325,6 @@ operations: - TSOG3 - XYLE - wet_deposition: - activate: true - #============================================================================ # Settings for GEOS-Chem aerosols #============================================================================ diff --git a/run/CESM/util/README b/run/CESM/util/README new file mode 100644 index 000000000..80c339610 --- /dev/null +++ b/run/CESM/util/README @@ -0,0 +1,14 @@ +Use dep_data_file.cdl to generate the netcdf file for inputting Henry's Law coefficients +and molectular weights to CESM for use in deposition. This file must be updated every time +a new wet or dry deposited species is added to GEOS-Chem. Once created, the netcdf file +should be renamed to include GEOS-Chem version number and data created, and then copied +to the location set in cam/bld/namelist_files/namelist_defaults_cam.xml. + +Instructions to using ncgen: +ncgen x.cdl # checks syntax +ncgen -b x.cdl # writes x.nc +ncgen -o y.nc x.cdl # writes y.nc + +Notes: +- Added OX since shr_drydep_mod maps dry deposited species O3 to OX in the deposition file. + Parameters for OX are the same as O3. diff --git a/run/CESM/util/dep_data_file.cdl b/run/CESM/util/dep_data_file.cdl new file mode 100644 index 000000000..8dd5fbd76 --- /dev/null +++ b/run/CESM/util/dep_data_file.cdl @@ -0,0 +1,716 @@ +netcdf drydep_tables { +dimensions: + n_species_table = 168; + NHen = 6; + chars = 16; +variables: + + char species_name_table(n_species_table,chars); + species_name_table:long_name = "names of species in dry deposition tables" ; + double dfoxd(n_species_table); + dfoxd:long_name = "data for foxd (reactivity factor for oxidation)"; + double dheff(n_species_table,NHen); + dheff:long_name = "data for effective Henry's Law coefficient"; + double mol_wghts(n_species_table); + mol_wghts:long_name = "species molecular mass"; + mol_wghts:units = "grams/mole"; + +// global attributes: + + :Created_by = "Elizabeth Lundgren (Harvard University), Haipeng Lin (Harvard University)"; + :Source = "GEOS-Chem version 14.3 gas-phase and aerosol dry or wet deposited species"; + +data: + +// care has been taken to list gas-phase species first and aerosols (including gaseous SOA) +// at the end. + + species_name_table = + "ACET ", + "ACTA ", + "ALD2 ", + "AROMP4 ", + "AROMP5 ", + "ATOOH ", + "BALD ", + "BENZP ", + "BR2 ", + "BRCL ", + "BRNO3 ", + "BZCO3H ", + "BZPAN ", + "CH2O ", + "CL2 ", + "CLNO2 ", + "CLNO3 ", + "CLO ", + "CLOO ", + "CSL ", + "EOH ", + "ETHLN ", + "ETHN ", + "ETHP ", + "ETNO3 ", + "ETP ", + "FURA ", + "GLYC ", + "GLYX ", + "H2O2 ", + "HAC ", + "HBR ", + "HC5A ", + "HCL ", + "HCOOH ", + "HI ", + "HMHP ", + "HMML ", + "HNO3 ", + "HOBR ", + "HOCL ", + "HOI ", + "HONIT ", + "HPALD1 ", + "HPALD2 ", + "HPALD3 ", + "HPALD4 ", + "HPETHNL ", + "I2 ", + "I2O2 ", + "I2O3 ", + "I2O4 ", + "IBR ", + "ICHE ", + "ICL ", + "ICN ", + "ICPDH ", + "IDC ", + "IDCHP ", + "IDHDP ", + "IDHPE ", + "IDN ", + "IEPOXA ", + "IEPOXB ", + "IEPOXD ", + "IHN1 ", + "IHN2 ", + "IHN3 ", + "IHN4 ", + "INPB ", + "INPD ", + "IONO ", + "IONO2 ", + "IPRNO3 ", + "ITCN ", + "ITHN ", + "LIMO ", + "LVOC ", + "LVOCOA ", + "MACR ", + "MACR1OOH ", + "MAP ", + "MCRDH ", + "MCRENOL ", + "MCRHN ", + "MCRHNB ", + "MCRHP ", + "MCT ", + "MEK ", + "MENO3 ", + "MGLY ", + "MOH ", + "MONITS ", + "MONITU ", + "MP ", + "MPAN ", + "MPN ", + "MTPA ", + "MTPO ", + "MVK ", + "MVKDH ", + "MVKHC ", + "MVKHCB ", + "MVKHP ", + "MVKN ", + "MVKPC ", + "N2O5 ", + "NH3 ", + "NO2 ", + "NPHEN ", + "NPRNO3 ", + "O3 ", + "OX ", + "PAN ", + "PHEN ", + "PP ", + "PPN ", + "PROPNN ", + "PRPN ", + "PRPE ", + "PYAC ", + "R4N2 ", + "R4P ", + "RA3P ", + "RB3P ", + "RIPA ", + "RIPB ", + "RIPC ", + "RIPD ", + "RP ", + "SO2 ", + "AERI ", + "AONITA ", + "ASOA1 ", + "ASOA2 ", + "ASOA3 ", + "ASOAN ", + "ASOG1 ", + "ASOG2 ", + "ASOG3 ", + "BRSALA ", + "BRSALC ", + "INDIOL ", + "IONITA ", + "ISALA ", + "ISALC ", + "MONITA ", + "MSA ", + "NH4 ", + "NIT ", + "NITS ", + "SALAAL ", + "SALACL ", + "SALCAL ", + "SALCCL ", + "SO4 ", + "SO4S ", + "SOAGX ", + "SOAIE ", + "TSOA0 ", + "TSOA1 ", + "TSOA2 ", + "TSOA3 ", + "TSOG0 ", + "TSOG1 ", + "TSOG2 ", + "TSOG3 ", + "PFE " ; + +// dfoxd (reactivity factor for oxidation) + + dfoxd = + 1. // ACET + ,1. // ACTA + ,1. // ALD2 + ,1. // AROMP4 + ,1. // AROMP5 + ,1. // ATOOH + ,1. // BALD + ,1. // BENZP + ,1.e-36 // BR2 + ,1.e-36 // BRCL + ,1.e-36 // BRNO3 + ,1. // BZCO3H + ,1. // BZPAN + ,1. // CH2O + ,1.e-36 // CL2 + ,1.e-36 // CLNO2 + ,1.e-36 // CLNO3 + ,1.e-36 // CLO + ,1.e-36 // CLOO + ,1. // CSL + ,1.e-36 // EOH + ,1 // ETHLN + ,.1 // ETHN + ,.1 // ETHP + ,.1 // ETNO3 + ,1. // ETP + ,1. // FURA + ,1. // GLYC + ,1. // GLYX + ,1. // H2O2 + ,1. // HAC + ,1.e-36 // HBR + ,1.e-36 // HC5A + ,1.e-36 // HCL + ,1. // HCOOH + ,1.e-36 // HI + ,1. // HMHP + ,1. // HMML + ,1.e-36 // HNO3 + ,1.e-36 // HOBR + ,1.e-36 // HOCL + ,1.e-36 // HOI + ,1. // HONIT + ,1.e-36 // HPALD1 + ,1.e-36 // HPALD2 + ,1.e-36 // HPALD3 + ,1.e-36 // HPALD4 + ,1. // HPETHNL + ,1.e-36 // I2 + ,1.e-36 // I2O2 + ,1.e-36 // I2O3 + ,1.e-36 // I2O4 + ,1.e-36 // IBR + ,1. // ICHE + ,1.e-36 // ICL + ,1. // ICN + ,1. // ICPDH + ,1.e-36 // IDC + ,1. // IDCHP + ,1. // IDHDP + ,1. // IDHPE + ,1. // IDN + ,1. // IEPOXA + ,1. // IEPOXB + ,1. // IEPOXD + ,1. // IHN1 + ,1. // IHN2 + ,1. // IHN3 + ,1. // IHN4 + ,1. // INPB + ,1. // INPD + ,1.e-36 // IONO + ,1.e-36 // IONO2 + ,.1 // IPRNO3 + ,1. // ITCN + ,1. // ITHN + ,1.e-36 // LIMO + ,1. // LVOC + ,1.e-36 // LVOCOA + ,1 // MACR + ,1 // MACR1OOH + ,1 // MAP + ,1 // MCRDH + ,1 // MCRENOL + ,1 // MCRHN + ,1 // MCRHNB + ,1 // MCRHP + ,1 // MCT + ,1.e-36 // MEK + ,.1 // MENO3 + ,1. // MGLY + ,1. // MOH + ,1. // MONITS + ,1. // MONITU + ,1.e-36 // MP + ,1. // MPAN + ,1.e-36 // MPN + ,1.e-36 // MTPA + ,1.e-36 // MTPO + ,1. // MVK + ,1. // MVKDH + ,1. // MVKHC + ,1. // MVKHCB + ,1. // MVKHP + ,1. // MVKN + ,1. // MVKPC + ,1.e-36 // N2O5 + ,1.e-36 // NH3 + ,.1 // NO2 + ,1. // NPHEN + ,.1 // NPRNO3 + ,1. // O3 + ,1. // OX + ,1. // PAN + ,1. // PHEN + ,1. // PP + ,1. // PPN + ,1. // PROPNN + ,1.e-36 // PRPE + ,1. // PRPN + ,1. // PYAC + ,1. // R4N2 + ,1. // R4P + ,1. // RA3P + ,1. // RB3P + ,1. // RIPA + ,1. // RIPB + ,1. // RIPC + ,1. // RIPD + ,1. // RP + ,1.e-36 // SO2 + ,1.e-36 // AERI + ,1.e-36 // AONITA + ,1.e-36 // ASOA1 + ,1.e-36 // ASOA2 + ,1.e-36 // ASOA3 + ,1.e-36 // ASOAN + ,1.e-36 // ASOG1 + ,1.e-36 // ASOG2 + ,1.e-36 // ASOG3 + ,1.e-36 // BRSALA + ,1.e-36 // BRSALC + ,1.e-36 // INDIOL + ,1.e-36 // IONITA + ,1.e-36 // ISALA + ,1.e-36 // ISALC + ,1.e-36 // MONITA + ,1.e-36 // MSA + ,1.e-36 // NH4 + ,1.e-36 // NIT + ,1.e-36 // NITS + ,1.e-36 // SALAAL + ,1.e-36 // SALACL + ,1.e-36 // SALCAL + ,1.e-36 // SALCCL + ,1.e-36 // SO4 + ,1.e-36 // SO4S + ,1.e-36 // SOAGX + ,1.e-36 // SOAIE + ,1.e-36 // TSOA0 + ,1.e-36 // TSOA1 + ,1.e-36 // TSOA2 + ,1.e-36 // TSOA3 + ,1.e-36 // TSOG0 + ,1.e-36 // TSOG1 + ,1.e-36 // TSOG2 + ,1.e-36 // TSOG3 + ,1.e-36 ; // PFE + +// dheff: Effective Henry Law coefficients. +// Use species_database.yml: Henry_K0, Henry_CR, 0., 0., 0., 0., +// According to Fritz et al. (GMD 2022), aerosols not found will use +// coefficients from HNO3. + + dheff = + 27.399999618530273 , 5500.0, 0., 0., 0., 0., // ACET + 4050.0000000000000 , 6200.0, 0., 0., 0., 0., // ACTA + 13.199999809265137 , 5900.0, 0., 0., 0., 0., // ALD2 + 410000.00000000000 , 7500.0, 0., 0., 0., 0., // AROMP4 + 2000000.0000000000 , 7500.0, 0., 0., 0., 0., // AROMP5 + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // ATOOH + 38.000000000000000 , 5500.0, 0., 0., 0., 0., // BALD + 2900.0000000000000 , 6800.0, 0., 0., 0., 0., // BENZP + 0.75999999046325684 , 3720.0, 0., 0., 0., 0., // BR2 + 0.97000002861022949 , 5600.0, 0., 0., 0., 0., // BRCL + 0.00000000000000 , 0.0, 0., 0., 0., 0., // BRNO3 + 24000.000000000000 , 0.0, 0., 0., 0., 0., // BZCO3H + 70.000000000000000 , 4600.0, 0., 0., 0., 0., // BZPAN + 3240.0000000000000 , 6800.0, 0., 0., 0., 0., // CH2O + 9.2000000178813934E-002 , 2000.0, 0., 0., 0., 0., // CL2 + 0.00000000000000 , 0.0, 0., 0., 0., 0., // CLNO2 + 1.0000000200408773E+020 , 0.0, 0., 0., 0., 0., // CLNO3 + 0.00000000000000 , 0.0, 0., 0., 0., 0., // CLO + 1.0000000000000000 , 3500.0, 0., 0., 0., 0., // CLOO + 420.00000000000000 , 8500.0, 0., 0., 0., 0., // CSL + 193.00000000000000 , 6400.0, 0., 0., 0., 0., // EOH + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // ETHLN + 39000.000000000000 , 8600.0, 0., 0., 0., 0., // ETHN + 650000.00000000000 , 8800.0, 0., 0., 0., 0., // ETHP + 1.6000000238418579 , 5400.0, 0., 0., 0., 0., // ETNO3 + 334.00000000000000 , 6000.0, 0., 0., 0., 0., // ETP + 1.8000000000000000E-001 , 6100.0, 0., 0., 0., 0., // FURA + 41500.000000000000 , 4600.0, 0., 0., 0., 0., // GLYC + 415000.00000000000 , 7500.0, 0., 0., 0., 0., // GLYX + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // H2O2 + 7800.0000000000000 , 0.0, 0., 0., 0., 0., // HAC + 71000003706880.000 , 10200.0, 0., 0., 0., 0., // HBR + 7800.0000000000000 , 0.0, 0., 0., 0., 0., // HC5A + 62999998464.000000 , 9000.0, 0., 0., 0., 0., // HCL + 8920.0000000000000 , 6100.0, 0., 0., 0., 0., // HCOOH + 74299998208000.000 , 3187.2, 0., 0., 0., 0., // HI + 1300000.0000000000 , 5200.0, 0., 0., 0., 0., // HMHP + 120000.00000000000 , 7200.0, 0., 0., 0., 0., // HMML + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // HNO3 + 1300.0000000000000 , 4000.0, 0., 0., 0., 0., // HOBR + 650.00000000000000 , 5900.0, 0., 0., 0., 0., // HOCL + 15400.000000000000 , 8371.0, 0., 0., 0., 0., // HOI + 26900000931840.000 , 5487.0, 0., 0., 0., 0., // HONIT + 40000.000000000000 , 0.0, 0., 0., 0., 0., // HPALD1 + 40000.000000000000 , 0.0, 0., 0., 0., 0., // HPALD2 + 40000.000000000000 , 0.0, 0., 0., 0., 0., // HPALD3 + 40000.000000000000 , 0.0, 0., 0., 0., 0., // HPALD4 + 41000.000000000000 , 4600.0, 0., 0., 0., 0., // HPETHNL + 2.7000000476837158 , 7507.4, 0., 0., 0., 0., // I2 + 1.0000000200408773E+020 , 18900.0, 0., 0., 0., 0., // I2O2 + 1.0000000200408773E+020 , 13400.0, 0., 0., 0., 0., // I2O3 + 1.0000000200408773E+020 , 13400.0, 0., 0., 0., 0., // I2O4 + 24.000000000000000 , 4916.7, 0., 0., 0., 0., // IBR + 80000000.000000000 , 0.0, 0., 0., 0., 0., // ICHE + 111.00000000000000 , 2105.5, 0., 0., 0., 0., // ICL + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // ICN + 100000000.00000000 , 7200.0, 0., 0., 0., 0., // ICPDH + 40000.000000000000 , 0.0, 0., 0., 0., 0., // IDC + 100000000.00000000 , 7200.0, 0., 0., 0., 0., // IDCHP + 100000000.00000000 , 7200.0, 0., 0., 0., 0., // IDHDP + 100000000.00000000 , 7200.0, 0., 0., 0., 0., // IDHPE + 100000000.00000000 , 7200.0, 0., 0., 0., 0., // IDN + 80000000.000000000 , 0.0, 0., 0., 0., 0., // IEPOXA + 80000000.000000000 , 0.0, 0., 0., 0., 0., // IEPOXB + 80000000.000000000 , 0.0, 0., 0., 0., 0., // IEPOXD + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // IHN1 + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // IHN2 + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // IHN3 + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // IHN4 + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // INPB + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // INPD + 0.30000001192092896 , 7240.4, 0., 0., 0., 0., // IONO + 1.0000000200408773E+020 , 3980.0, 0., 0., 0., 0., // IONO2 + 0.79000002145767212 , 5400.0, 0., 0., 0., 0., // IPRNO3 + 100000000.00000000 , 7200.0, 0., 0., 0., 0., // ITCN + 100000000.00000000 , 7200.0, 0., 0., 0., 0., // ITHN + 7.0000000298023224E-002 , 0.0, 0., 0., 0., 0., // LIMO + 100000000.00000000 , 7200.0, 0., 0., 0., 0., // LVOC + 0.00000000000000 , 0.0, 0., 0., 0., 0., // LVOCOA + 4.8600001335144043 , 4300.0, 0., 0., 0., 0., // MACR + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // MACR1OOH + 840.00000000000000 , 5300.0, 0., 0., 0., 0., // MAP + 1400000.0000000000 , 7200.0, 0., 0., 0., 0., // MCRDH + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // MCRENOL + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // MCRHN + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // MCRHNB + 1400000.0000000000 , 7200.0, 0., 0., 0., 0., // MCRHP + 420.00000000000000 , 8500.0, 0., 0., 0., 0., // MCT + 18.200000000000000 , 5700.0, 0., 0., 0., 0., // MEK + 11.000000000000000 , 4700.0, 0., 0., 0., 0., // MENO3 + 32400.000000000000 , 6200.0, 0., 0., 0., 0., // MGLY + 203.00000000000000 , 5600.0, 0., 0., 0., 0., // MOH + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // MONITS + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // MONITU + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // MP + 1.7200000286102295 , 0.0, 0., 0., 0., 0., // MPAN + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // MPN + 4.8999998718500137E-002 , 0.0, 0., 0., 0., 0., // MTPA + 4.8999998718500137E-002 , 0.0, 0., 0., 0., 0., // MTPO + 26.299999237060547 , 4800.0, 0., 0., 0., 0., // MVK + 1400000.0000000000 , 7200.0, 0., 0., 0., 0., // MVKDH + 1400000.0000000000 , 7200.0, 0., 0., 0., 0., // MVKHC + 1400000.0000000000 , 7200.0, 0., 0., 0., 0., // MVKHCB + 1400000.0000000000 , 7200.0, 0., 0., 0., 0., // MVKHP + 17000.000000000000 , 9200.0, 0., 0., 0., 0., // MVKN + 1400000.0000000000 , 7200.0, 0., 0., 0., 0., // MVKPC + 0.0000000000000000 , 0.0, 0., 0., 0., 0., // N2O5 + 3300000.0000000000 , 4100.0, 0., 0., 0., 0., // NH3 + 0.0000000000000000 , 0.0, 0., 0., 0., 0., // NO2 + 2300.0000000000000 , 0.0, 0., 0., 0., 0., // NPHEN + 1.1000000238418579 , 5500.0, 0., 0., 0., 0., // NPRNO3 + 1.0132499970495701E-002 , 2800.0, 0., 0., 0., 0., // O3 + 1.0132499970495701E-002 , 2800.0, 0., 0., 0., 0., // OX + 2.940000572204590 , 5700.0, 0., 0., 0., 0., // PAN + 2800.0000000000000 , 2700.0, 0., 0., 0., 0., // PHEN + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // PP + 2.9400000572204590 , 0.0, 0., 0., 0., 0., // PPN + 1000.0000000000000 , 0.0, 0., 0., 0., 0., // PROPNN + 7.4000000000000000E-003 , 3400.0, 0., 0., 0., 0., // PRPE + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // PRPN + 314000.00000000000 , 5100.0, 0., 0., 0., 0., // PYAC + 1.0000000000000000 , 5800.0, 0., 0., 0., 0., // R4N2 + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // R4P + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // RA3P + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // RB3P + 1700000.0000000000 , 0.0, 0., 0., 0., 0., // RIPA + 1700000.0000000000 , 0.0, 0., 0., 0., 0., // RIPB + 1700000.0000000000 , 0.0, 0., 0., 0., 0., // RIPC + 1700000.0000000000 , 0.0, 0., 0., 0., 0., // RIPD + 294.00000000000000 , 5200.0, 0., 0., 0., 0., // RP + 1.36e+00, 3100., 1.30e-02, 1960., 6.6e-08, 1500., // SO2 - uses CAM-chem params as GC handling is special + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // AERI + 2900.0000000000000 , 6800.0, 0., 0., 0., 0., // AONITA + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // ASOA1 + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // ASOA2 + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // ASOA3 + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // ASOAN + 100000.00000000000 , 6039.0, 0., 0., 0., 0., // ASOG1 + 100000.00000000000 , 6039.0, 0., 0., 0., 0., // ASOG2 + 100000.00000000000 , 6039.0, 0., 0., 0., 0., // ASOG3 + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // BRSALA + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // BRSALC + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // INDIOL + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // IONITA + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // ISALA + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // ISALC + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // MONITA + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // MSA + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // NH4 + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // NIT + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // NITS + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // SALAAL + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // SALACL + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // SALCAL + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // SALCCL + 1.36e+00, 3100., 1.30e-02, 1960., 6.6e-08, 1500., // SO4 + 1.36e+00, 3100., 1.30e-02, 1960., 6.6e-08, 1500., // SO4S + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // SOAGX + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // SOAIE + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // TSOA0 + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // TSOA1 + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // TSOA2 + 83000.000000000000 , 7400.0, 0., 0., 0., 0., // TSOA3 + 100000.00000000000 , 6039.0, 0., 0., 0., 0., // TSOG0 + 100000.00000000000 , 6039.0, 0., 0., 0., 0., // TSOG1 + 100000.00000000000 , 6039.0, 0., 0., 0., 0., // TSOG2 + 100000.00000000000 , 6039.0, 0., 0., 0., 0., // TSOG3 + 83000.000000000000 , 7400.0, 0., 0., 0., 0. ; // PFE + + + mol_wghts = + ,58.090000000000003 // ACET + ,60.060000000000002 // ACTA + ,44.060000000000002 // ALD2 + ,68.079999999999998 // AROMP4 + ,98.099999999999994 // AROMP5 + ,90.090000000000003 // ATOOH + ,106.12000000000000 // BALD + ,110.11000000000000 // BENZP + ,159.80000000000001 // BR2 + ,115.45000000000000 // BRCL + ,141.91000000000000 // BRNO3 + ,138.12000000000000 // BZCO3H + ,183.12000000000000 // BZPAN + ,30.030000000000001 // CH2O + ,70.900000000000006 // CL2 + ,81.450000000000003 // CLNO2 + ,97.450000000000003 // CLNO3 + ,51.450000000000003 // CLO + ,67.450000000000003 // CLOO + ,108.14000000000000 // CSL + ,46.070000000000000 // EOH + ,105.06000000000000 // ETHLN + ,107.06999999999999 // ETHN + ,78.069999999999993 // ETHP + ,91.079999999999998 // ETNO3 + ,62.079999999999998 // ETP + ,68.070000000000000 // FURA + ,60.060000000000002 // GLYC + ,58.039999999999999 // GLYX + ,34.020000000000003 // H2O2 + ,74.079999999999998 // HAC + ,80.909999999999997 // HBR + ,100.13000000000000 // HC5A + ,36.450000000000003 // HCL + ,46.030000000000001 // HCOOH + ,127.91000000000000 // HI + ,64.049999999999997 // HMHP + ,102.09999999999999 // HMML + ,63.009999999999998 // HNO3 + ,96.909999999999997 // HOBR + ,52.450000000000003 // HOCL + ,143.88999999999999 // HOI + ,215.00000000000000 // HONIT + ,116.13000000000000 // HPALD1 + ,116.13000000000000 // HPALD2 + ,116.13000000000000 // HPALD3 + ,116.13000000000000 // HPALD4 + ,76.060000000000002 // HPETHNL + ,253.80000000000001 // I2 + ,285.80000000000001 // I2O2 + ,301.80000000000001 // I2O3 + ,317.80000000000001 // I2O4 + ,206.90000000000001 // IBR + ,116.13000000000000 // ICHE + ,162.44999999999999 // ICL + ,145.13000000000000 // ICN + ,150.15000000000001 // ICPDH + ,98.109999999999999 // IDC + ,148.13000000000000 // IDCHP + ,168.16999999999999 // IDHDP + ,150.15000000000001 // IDHPE + ,192.15000000000001 // IDN + ,106.14000000000000 // IEPOXA + ,106.14000000000000 // IEPOXB + ,106.14000000000000 // IEPOXD + ,147.15000000000001 // IHN1 + ,147.15000000000001 // IHN2 + ,147.15000000000001 // IHN3 + ,147.15000000000001 // IHN4 + ,163.15000000000001 // INPB + ,163.15000000000001 // INPD + ,172.91000000000000 // IONO + ,188.91000000000000 // IONO2 + ,105.11000000000000 // IPRNO3 + ,195.15000000000000 // ITCN + ,197.16999999999999 // ITHN + ,136.25999999999999 // LIMO + ,154.19000000000000 // LVOC + ,154.19000000000000 // LVOCOA + ,70.099999999999994 // MACR + ,102.09999999999999 // MACR1OOH + ,76.060000000000002 // MAP + ,104.12000000000000 // MCRDH + ,86.099999999999994 // MCRENOL + ,149.11000000000001 // MCRHN + ,149.11000000000001 // MCRHNB + ,120.12000000000000 // MCRHP + ,124.00000000000000 // MCT + ,72.110000000000000 // MEK + ,77.049999999999997 // MENO3 + ,72.069999999999993 // MGLY + ,32.049999999999997 // MOH + ,215.28000000000000 // MONITS + ,215.28000000000000 // MONITU + ,48.050000000000000 // MP + ,147.09999999999999 // MPAN + ,93.050000000000000 // MPN + ,136.25999999999999 // MTPA + ,136.25999999999999 // MTPO + ,70.090000000000003 // MVK + ,105.13000000000000 // MVKDH + ,102.09999999999999 // MVKHC + ,102.09999999999999 // MVKHCB + ,120.12000000000000 // MVKHP + ,149.12000000000000 // MVKN + ,118.09999999999999 // MVKPC + ,108.02000000000000 // N2O5 + ,17.039999999999999 // NH3 + ,46.009999999999998 // NO2 + ,139.11000000000001 // NPHEN + ,105.11000000000000 // NPRNO3 + ,48.000000000000000 // O3 + ,48.000000000000000 // OX + ,121.06000000000000 // PAN + ,94.109999999999999 // PHEN + ,92.109999999999999 // PP + ,135.08000000000001 // PPN + ,119.08000000000000 // PROPNN + ,42.090000000000000 // PRPE + ,137.11000000000001 // PRPN + ,88.069999999999993 // PYAC + ,119.09999999999999 // R4N2 + ,90.140000000000001 // R4P + ,76.109999999999999 // RA3P + ,76.109999999999999 // RB3P + ,118.15000000000001 // RIPA + ,118.15000000000001 // RIPB + ,118.15000000000001 // RIPC + ,118.15000000000001 // RIPD + ,90.090000000000003 // RP + ,64.040000000000006 // SO2 + ,126.90000000000000 // AERI + ,189.12000000000000 // AONITA + ,150.00000000000000 // ASOA1 + ,150.00000000000000 // ASOA2 + ,150.00000000000000 // ASOA3 + ,150.00000000000000 // ASOAN + ,150.00000000000000 // ASOG1 + ,150.00000000000000 // ASOG2 + ,150.00000000000000 // ASOG3 + ,79.900000000000000 // BRSALA + ,79.900000000000000 // BRSALC + ,102.00000000000000 // INDIOL + ,14.010000000000000 // IONITA + ,126.90000000000000 // ISALA + ,126.90000000000000 // ISALC + ,14.010000000000000 // MONITA + ,96.100000000000000 // MSA + ,18.050000000000000 // NH4 + ,62.010000000000000 // NIT + ,31.400000000000000 // NITS + ,31.400000000000000 // SALAAL + ,35.450000000000000 // SALACL + ,31.400000000000000 // SALCAL + ,35.450000000000000 // SALCCL + ,31.400000000000000 // SO4 + ,31.400000000000000 // SO4S + ,58.040000000000000 // SOAGX + ,118.15000000000000 // SOAIE + ,150.00000000000000 // TSOA0 + ,150.00000000000000 // TSOA1 + ,150.00000000000000 // TSOA2 + ,150.00000000000000 // TSOA3 + ,150.00000000000000 // TSOG0 + ,150.00000000000000 // TSOG1 + ,150.00000000000000 // TSOG2 + ,150.00000000000000 // TSOG3 + ,55.850000000000000 ; // PFE + +} \ No newline at end of file diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.CH4 b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.CH4 index 1febacc06..2ffe5ac87 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.CH4 +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.CH4 @@ -27,8 +27,8 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} +GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * DiagnFile: HEMCO_Diagn.rc DiagnPrefix: ./OutputDir/HEMCO_diagnostics @@ -38,8 +38,8 @@ Separator: / Unit tolerance: 1 Negative values: 2 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -57,17 +57,18 @@ Warnings: 1 # ----- NESTED GRID FIELDS ---------------------------------------------------- --> GC_BCs : ${RUNDIR_USE_BCs} # ----- REGIONAL INVENTORIES -------------------------------------------------- - --> GEPA : true # 2012 + --> GHGI_v2 : false # 2012-2018 + --> GHGI_v2_Express_Ext : true # 2012-2020 --> Scarpelli_Canada : true # 2018 --> Scarpelli_Mexico : true # 2015 # ----- GLOBAL INVENTORIES ---------------------------------------------------- --> GFEIv2 : true # 2019 - --> EDGARv6 : true # 2000-2018 + --> EDGARv8 : true # 2010-2022 --> QFED2 : false # 2009-2015 - --> UPDATED_GFED4 : true # 2009-2019 --> JPL_WETCHARTS : true # 2009-2017 --> SEEPS : true # 2012 --> LAKES : false # 2009-2015 + --> RESERVOIRS : true # 2022 --> FUNG_TERMITES : true # 1985 --> FUNG_SOIL_ABSORPTION : false # 2009-2015 --> MeMo_SOIL_ABSORPTION : true # 1990-2009 or clim. @@ -82,16 +83,18 @@ Warnings: 1 --> CMIP6_SHIP : false # 1850-2100 --> BB4MIPS : false # 1850-2100 # ----- NON-EMISSIONS DATA ---------------------------------------------------- - --> GMI_CH4_LOSS : true # 1985 + --> CH4_LOSS_FREQ : true # 1985 --> GLOBAL_OH : true # 2010-2019 --> GLOBAL_CL : true # 2010-2019 --> OLSON_LANDMAP : true # 1985 --> YUAN_MODIS_LAI : true # 2000-2020 - --> AnalyticalInv : false - --> Emis_ScaleFactor : false - --> OH_ScaleFactor : false +# ----- OPTIONS FOR ANALYTICAL INVERSIONS ------------------------------------ + --> AnalyticalInversion : false + --> UseTotalPriorEmis : false # Skips global/regional inventories + --> Emis_PosteriorSF : false # Apply posterior scale factors to total emis? + --> OH_PosteriorSF : false # Apply posterior scale factor to global OH? # ----------------------------------------------------------------------------- -111 GFED : off CH4 +111 GFED : on CH4 --> GFED4 : true --> GFED_daily : true --> GFED_3hourly : false @@ -117,104 +120,212 @@ Warnings: 1 (((EMISSIONS #============================================================================== -# --- Gridded EPA (Maasakkers et al., Environ. Sci. Technol., 2016) --- +# ---Total CH4 emissions (all sectors) from prior simulation --- +#============================================================================== +(((UseTotalPriorEmis + +(((Emis_PosteriorSF +0 CH4_Emis_Prior ../../prior_run/OutputDir/HEMCO_sa_diagnostics.$YYYY$MM$DD0000.nc EmisCH4_Total $YYYY/$MM/$DD/0 C xy kg/m2/s CH4 3 1 500 +)))Emis_PosteriorSF + +(((.not.Emis_PosteriorSF +0 CH4_Emis_Prior ../../prior_run/OutputDir/HEMCO_sa_diagnostics.$YYYY$MM$DD0000.nc EmisCH4_Total $YYYY/$MM/$DD/0 C xy kg/m2/s CH4 - 1 500 +))).not.Emis_PosteriorSF + +)))UseTotalPriorEmis + +(((.not.UseTotalPriorEmis +#============================================================================== +# --- Gridded GHGI v2 (Maasakkers et al., submitted to ES&T, 2023) --- # # NOTES: +# - This is the main Gridded GHGI v2 dataset based off the US GHGI +# published in 2020 # - Use Hier=100 to add to Canada and Mexico regional inventories -# - Do not use GEPA forest fire emissions. Use QFED or GFED instead. -# - Apply seasonal scale factors to manure and rice emissions +# - Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, +# Hier=5 to add to GFEI; mask=1009) ### #============================================================================== -(((GEPA +(((GHGI_v2 ### Oil ### -0 GEPA_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1008 1 100 +0 GHGI_OIL_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Exploration 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 51/1008 1 100 +0 GHGI_COAST_OIL_EXPLORATION - - - - - - CH4 51/1009 1 5 +0 GHGI_OIL_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Production 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 52/1008 1 100 +0 GHGI_COAST_OIL_PRODUCTION - - - - - - CH4 52/1009 1 5 +0 GHGI_OIL_REFINING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Refining 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 53/1008 1 100 +0 GHGI_COAST_OIL_REFINING - - - - - - CH4 53/1009 1 5 +0 GHGI_OIL_TRANSPORT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Transport 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 54/1008 1 100 +0 GHGI_COAST_OIL_TRANSPORT - - - - - - CH4 54/1009 1 5 ### Gas ### -0 GEPA_GAS_PRODUCTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_GAS_PROCESSING $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_GAS_TRANSMISSION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_GAS_DISTRIBUTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_GAS_DISTRIBUTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Distribution 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 2 100 +0 GHGI_COAST_GAS_DISTRIBUTION - - - - - - CH4 1009 2 5 +0 GHGI_GAS_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Exploration 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 55/1008 2 100 +0 GHGI_COAST_GAS_EXPLORATION - - - - - - CH4 55/1009 2 5 +0 GHGI_GAS_PROCESSING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Processing 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 2 100 +0 GHGI_COAST_GAS_PROCESSING - - - - - - CH4 1009 2 5 +0 GHGI_GAS_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Production 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 56/1008 2 100 +0 GHGI_COAST_GAS_PRODUCTION - - - - - - CH4 56/1009 2 5 +0 GHGI_GAS_TRANSMISSION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_TransmissionStorage 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 2 100 +0 GHGI_COAST_GAS_TRANSMISSION - - - - - - CH4 1009 2 5 ### Coal ### -0 GEPA_COAL_UNDERGROUND $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 -0 GEPA_COAL_SURFACE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 -0 GEPA_COAL_ABANDONED $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAL_UNDERGROUND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Underground_Coal 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAST_COAL_UNDERGROUND - - - - - - CH4 1009 3 5 +0 GHGI_COAL_SURFACE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Surface_Coal 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAST_COAL_SURFACE - - - - - - CH4 1009 3 5 +0 GHGI_COAL_ABANDONED $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Abandoned_Coal 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAST_COAL_ABANDONED - - - - - - CH4 1009 3 5 + +### Livestock ### +0 GHGI_LIVESTOCK_ENT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3A_Enteric_Fermentation 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 4 100 +0 GHGI_COAST_LIVESTOCK_ENT - - - - - - CH4 1009 4 1 +0 GHGI_LIVESTOCK_MAN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3B_Manure_Management 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 57/1008 4 100 +0 GHGI_COAST_LIVESTOCK_MAN - - - - - - CH4 57/1009 4 1 + +### Landfills ### +0 GHGI_LANDFILLS_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_Industrial 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 5 100 +0 GHGI_COAST_LANDFILLS_IND - - - - - - CH4 1009 5 1 +0 GHGI_LANDFILLS_MSW $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_MSW 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 5 100 +0 GHGI_COAST_LANDFILLS_MSW - - - - - - CH4 1009 5 1 +0 GHGI_LANDFILLS_COMP $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5B1_Composting 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 5 100 +0 GHGI_COAST_LANDFILLS_COMP - - - - - - CH4 1009 5 1 + +### Wastewater ### +0 GHGI_WASTEWATER_DOM $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Domestic 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 6 100 +0 GHGI_COAST_WASTEWATER_DOM - - - - - - CH4 1009 6 1 +0 GHGI_WASTEWATER_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Industrial 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 6 100 +0 GHGI_COAST_WASTEWATER_IND - - - - - - CH4 1009 6 1 + +### Rice ### +0 GHGI_RICE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3C_Rice_Cultivation 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 58/1008 7 100 +0 GHGI_COAST_RICE - - - - - - CH4 58/1009 7 1 + +### Other Anthro ### +0 GHGI_OTHER_MCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Mobile 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_MCOMB - - - - - - CH4 1009 8 1 +0 GHGI_OTHER_SCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Stationary 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 50/1008 8 100 +0 GHGI_COAST_OTHER_SCOMB - - - - - - CH4 50/1009 8 1 +0 GHGI_OTHER_PIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2B8_Industry_Petrochemical 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_PIND - - - - - - CH4 1009 8 1 +0 GHGI_OTHER_FIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2C2_Industry_Ferroalloy 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_FIND - - - - - - CH4 1009 8 1 +0 GHGI_OTHER_BURN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3F_Field_Burning 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 59/1008 8 100 +0 GHGI_COAST_OTHER_BURN - - - - - - CH4 59/1009 8 1 +0 GHGI_OTHER_ABOG $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2ab_Abandoned_Oil_Gas 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_ABOG - - - - - - CH4 1009 8 1 +)))GHGI_v2 + +#======================================================================================= +# --- CH4: Gridded GHGI v2 Express Extension (Maasakkers et al., submitted to ES&T, 2023) --- +# +# NOTES: +# - Based off the US GHGI published in 2022. +# - Uses annual source-specific spatial patterns from 2012-2018 from the main +# dataset to quickly incorporate more recent national methane emission estimates. +# - Emissions for years after 2018 follow the 2018 spatial patterns. +# - Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, +# Hier=5 to add to GFEI; mask=1009) ### +#======================================================================================= +(((GHGI_v2_Express_Ext +(((.not.GHGI_v2 +### Oil ### +0 GHGI_EE_OIL_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Exploration 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 51/1008 1 100 +0 GHGI_EE_COAST_OIL_EXPLORATION - - - - - - CH4 51/1009 1 5 +0 GHGI_EE_OIL_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Production 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 52/1008 1 100 +0 GHGI_EE_COAST_OIL_PRODUCTION - - - - - - CH4 52/1009 1 5 +0 GHGI_EE_OIL_REFINING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Refining 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 53/1008 1 100 +0 GHGI_EE_COAST_OIL_REFINING - - - - - - CH4 53/1009 1 5 +0 GHGI_EE_OIL_TRANSPORT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Transport 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 54/1008 1 100 +0 GHGI_EE_COAST_OIL_TRANSPORT - - - - - - CH4 54/1009 1 5 + +### Gas ### +0 GHGI_EE_GAS_DISTRIBUTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Distribution 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_EE_COAST_GAS_DISTRIBUTION - - - - - - CH4 1009 2 5 +0 GHGI_EE_GAS_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Exploration 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 55/1008 2 100 +0 GHGI_EE_COAST_GAS_EXPLORATION - - - - - - CH4 55/1009 2 5 +0 GHGI_EE_GAS_PROCESSING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Processing 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_EE_COAST_GAS_PROCESSING - - - - - - CH4 1009 2 5 +0 GHGI_EE_GAS_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Production 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 56/1008 2 100 +0 GHGI_EE_COAST_GAS_PRODUCTION - - - - - - CH4 56/1009 2 5 +0 GHGI_EE_GAS_TRANSMISSION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_TransmissionStorage 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_EE_COAST_GAS_TRANSMISSION - - - - - - CH4 1009 2 5 +0 GHGI_EE_GAS_POSTMETER $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_Supp_1B2b_PostMeter 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 + +### Coal ### +0 GHGI_EE_COAL_UNDERGROUND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Underground_Coal 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_EE_COAST_COAL_UNDERGROUND - - - - - - CH4 1009 3 5 +0 GHGI_EE_COAL_SURFACE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Surface_Coal 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_EE_COAST_COAL_SURFACE - - - - - - CH4 1009 3 5 +0 GHGI_EE_COAL_ABANDONED $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Abandoned_Coal 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_EE_COAST_COAL_ABANDONED - - - - - - CH4 1009 3 5 ### Livestock ### -0 GEPA_LIVESTOCK__4A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1008 4 100 -0 GEPA_LIVESTOCK__4B $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1008 4 100 +0 GHGI_EE_LIVESTOCK_ENT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3A_Enteric_Fermentation 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 4 100 +0 GHGI_EE_COAST_LIVESTOCK_ENT - - - - - - CH4 1009 4 1 +0 GHGI_EE_LIVESTOCK_MAN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3B_Manure_Management 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 57/1008 4 100 +0 GHGI_EE_COAST_LIVESTOCK_MAN - - - - - - CH4 57/1009 4 1 ### Landfills ### -0 GEPA_LANDFILLS_MUNI $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 100 -0 GEPA_LANDFILLS_INDU $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_LANDFILLS_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_Industrial 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_COAST_LANDFILLS_IND - - - - - - CH4 1009 5 1 +0 GHGI_EE_LANDFILLS_MSW $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_MSW 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_COAST_LANDFILLS_MSW - - - - - - CH4 1009 5 1 +0 GHGI_EE_LANDFILLS_COMP $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5B1_Composting 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_COAST_LANDFILLS_COMP - - - - - - CH4 1009 5 1 ### Wastewater ### -0 GEPA_WASTEWATER_DOME $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 100 -0 GEPA_WASTEWATER_INDU $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 100 +0 GHGI_EE_WASTEWATER_DOM $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Domestic 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 6 100 +0 GHGI_EE_COAST_WASTEWATER_DOM - - - - - - CH4 1009 6 1 +0 GHGI_EE_WASTEWATER_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Industrial 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 6 100 +0 GHGI_EE_COAST_WASTEWATER_IND - - - - - - CH4 1009 6 1 ### Rice ### -0 GEPA_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1008 7 100 +0 GHGI_EE_RICE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3C_Rice_Cultivation 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 58/1008 7 100 +0 GHGI_EE_COAST_RICE - - - - -y - CH4 58/1009 7 1 ### Other Anthro ### -0 GEPA_OTHER__1A_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__1A_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1008 8 100 -#0 GEPA_OTHER__5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1008 9 100 -0 GEPA_OTHER__6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 - -### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) ### -0 GEPA_COAST_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1009 1 5 -0 GEPA_COAST_GAS_PR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_GAS_PC $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_GAS_TR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_GAS_DS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_COAL_U $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 -0 GEPA_COAST_COAL_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 -0 GEPA_COAST_COAL_A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 -0 GEPA_COAST_LVSTK_F $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1009 4 1 -0 GEPA_COAST_LVSTK_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1009 4 1 -0 GEPA_COAST_LDF_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 1 -0 GEPA_COAST_LDF_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 1 -0 GEPA_COAST_WSTW_D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 1 -0 GEPA_COAST_WSTW_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 1 -0 GEPA_COAST_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1009 7 1 -0 GEPA_COAST_OTH_1AM $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_1AS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1009 8 1 -#0 GEPA_COAST_OTH_5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1009 9 1 -0 GEPA_COAST_OTH_6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -)))GEPA +0 GHGI_EE_OTHER_MCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Mobile 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_MCOMB - - - - - - CH4 1008 8 100 +0 GHGI_EE_OTHER_SCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Stationary 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 50/1008 8 100 +0 GHGI_EE_COAST_OTHER_SCOMB - - - - - - CH4 50/1009 8 1 +0 GHGI_EE_OTHER_PIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2B8_Industry_Petrochemical 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_PIND - - - - - - CH4 1009 8 1 +0 GHGI_EE_OTHER_FIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2C2_Industry_Ferroalloy 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_FIND - - - - - - CH4 1009 8 1 +0 GHGI_EE_OTHER_BURN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3F_Field_Burning 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 59/1008 8 100 +0 GHGI_EE_COAST_OTHER_BURN - - - - - - CH4 59/1009 8 1 +0 GHGI_EE_OTHER_ABOG $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2ab_Abandoned_Oil_Gas 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_ABOG - - - - - - CH4 1009 8 1 +))).not.GHGI_v2 +)))GHGI_v2_Express_Ext #============================================================================== # --- Mexico emissions (Scarpelli et. al, Environ. Res. Lett., 2020) --- # # NOTES: # - Use Hier=100 to add to Canada and USA regional inventories +# - Make sure to include offshore/coastal emissions +# (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) #============================================================================== (((Scarpelli_Mexico -0 MEX_OIL $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 1 100 -0 MEX_GAS $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 2 100 -0 MEX_COAL $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 3 100 -0 MEX_LIVESTOCK_A $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 4 100 -0 MEX_LIVESTOCK_B $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1001 4 100 -0 MEX_LANDFILLS $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 5 100 -0 MEX_WASTEWATER $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 6 100 -0 MEX_RICE $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1001 7 100 -0 MEX_OTHER $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 8 100 - -### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) ### -0 MEX_OIL_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 1 5 -0 MEX_GAS_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 2 5 -0 MEX_COAL_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 3 5 -0 MEX_LIVESTOCK_A_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 4 1 -0 MEX_LIVESTOCK_B_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1010 4 1 -0 MEX_LANDFILLS_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 5 1 -0 MEX_WASTEWATER_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 6 1 -0 MEX_RICE_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1010 7 1 -0 MEX_OTHER_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 8 1 +0 MEX_OIL $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 1 100 +0 MEX_OIL_COAST - - - - - - CH4 1010 1 5 +0 MEX_GAS $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 2 100 +0 MEX_GAS_COAST - - - - - - CH4 1010 2 5 +0 MEX_COAL $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 3 100 +0 MEX_COAL_COAST - - - - - - CH4 1010 3 5 +0 MEX_LIVESTOCK_A $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 4 100 +0 MEX_LIVESTOCK_A_COAST - - - - - - CH4 1010 4 1 +0 MEX_LIVESTOCK_B $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1001 4 100 +0 MEX_LIVESTOCK_B_COAST - - - - - - CH4 10/1010 4 1 +0 MEX_LANDFILLS $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 5 100 +0 MEX_LANDFILLS_COAST - - - - - - CH4 1010 5 1 +0 MEX_WASTEWATER $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 6 100 +0 MEX_WASTEWATER_COAST - - - - - - CH4 1010 6 1 +0 MEX_RICE $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1001 7 100 +0 MEX_RICE_COAST - - - - - - CH4 11/1010 7 1 +0 MEX_OTHER $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 8 100 +0 MEX_OTHER_COAST - - - - - - CH4 1010 8 1 )))Scarpelli_Mexico #============================================================================== @@ -222,26 +333,26 @@ Warnings: 1 # # NOTES: # - Use Hier=100 to add to USA and Mexico regional inventories +# - Make sure to include offshore/coastal emissions +# (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) #============================================================================== (((Scarpelli_Canada -0 CAN_OIL_GAS_COMBUSTION $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_OIL_GAS_LEAKAGE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_OIL_GAS_VENT_FLARE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_COAL $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1002 3 100 -0 CAN_LIVESTOCK $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1002 4 100 -0 CAN_SOLID_WASTE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1002 5 100 -0 CAN_WASTEWATER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1002 6 100 -0 CAN_OTHER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1002 8 100 - -### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) ### -0 CAN_OIL_GAS_COMBUSTION_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 -0 CAN_OIL_GAS_LEAKAGE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 -0 CAN_OIL_GAS_VENT_FLARE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 -0 CAN_COAL_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1011 3 5 -0 CAN_LIVESTOCK_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1011 4 1 -0 CAN_SOLID_WASTE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1011 5 1 -0 CAN_WASTEWATER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1011 6 1 -0 CAN_OTHER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1011 8 1 +0 CAN_OIL_GAS_COMBUSTION $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_COMBUSTION_COAST - - - - - - CH4 1011 1/2 5 +0 CAN_OIL_GAS_LEAKAGE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_LEAKAGE_COAST - - - - - - CH4 1011 1/2 5 +0 CAN_OIL_GAS_VENT_FLARE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_VENT_FLARE_COAST - - - - - - CH4 1011 1/2 5 +0 CAN_COAL $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1002 3 100 +0 CAN_COAL_COAST - - - - - - CH4 1011 3 5 +0 CAN_LIVESTOCK $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1002 4 100 +0 CAN_LIVESTOCK_COAST - - - - - - CH4 1011 4 1 +0 CAN_SOLID_WASTE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1002 5 100 +0 CAN_SOLID_WASTE_COAST - - - - - - CH4 1011 5 1 +0 CAN_WASTEWATER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1002 6 100 +0 CAN_WASTEWATER_COAST - - - - - - CH4 1011 6 1 +0 CAN_OTHER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1002 8 100 +0 CAN_OTHER_COAST - - - - - - CH4 1011 8 1 )))Scarpelli_Canada #============================================================================== @@ -256,69 +367,69 @@ Warnings: 1 )))GFEIv2 #============================================================================== -# --- EDGAR v6.0 emissions, various sectors --- +# --- EDGAR v8.0 emissions --- #============================================================================== -(((EDGARv6 +(((EDGARv8 ### Oil ### -0 CH4_OIL__1B2a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_OIL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 1 1 +0 EDGAR8_CH4_PRO_OIL $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_PRO_OIL_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 1 1 +0 EDGAR8_CH4_REF_TRF $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_REF_TRF_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 1 1 ### Gas ### -0 CH4_OIL__1B2c $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_GAS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 2 1 +0 EDGAR8_CH4_PRO_GAS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_PRO_GAS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 2 1 ### Coal ### -0 CH4_COAL__1B1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_COAL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 3 1 +0 EDGAR8_CH4_PRO_COAL $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_PRO_COAL_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 3 1 ### Livestock ### -0 CH4_LIVESTOCK__4A $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CH4_LIVESTOCK__4B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_MNM.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 +0 EDGAR8_CH4_ENF $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_ENF_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 4 1 +0 EDGAR8_CH4_MNM $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_MNM_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 4 1 ### Landfills ### -0 CH4_LANDFILLS__6A_6D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_LDF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 5 1 +0 EDGAR8_CH4_SWD_LDF $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_SWD_LDF_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 5 1 ### Wastewater ### -0 CH4_WASTEWATER__6B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_WWT.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 6 1 +0 EDGAR8_CH4_WWT $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_WWT_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 6 1 ### Rice ### -0 CH4_RICE__4C_4D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AGS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 7 1 +0 EDGAR8_CH4_AGS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_AGS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 7 1 ### Other Anthro ### -0 CH4_OTHER__1A1_1B1_1B2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_REF_TRF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IND.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_CDS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CDS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_CRS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CRS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_LTO $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_LTO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3b $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TRO_noRES.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3c_1A3e $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Other.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3d_1C2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Ship.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A4 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_RCO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__2B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_CHE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__2C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IRO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__4F $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AWB.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__6C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_INC.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -)))EDGARv6 +0 EDGAR8_CH4_ENE $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_ENE_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_IND $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_IND_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Aviation_CDS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Aviation_CDS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Aviation_CRS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Aviation_CRS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Aviation_LTO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Aviation_LTO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TRO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TRO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Other $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Other_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Ship $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Ship_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_RCO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_RCO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_CHE $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_CHE_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_IRO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_IRO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_AWB $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_AWB_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_SWD_INC $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_SWD_INC_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +)))EDGARv8 #============================================================================== # CEDS (historical) or Shared Socioeconomic Pathways (future) #============================================================================== (((CMIP6_SFC_LAND_ANTHRO -0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 5 1 +0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 4 1 +0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 +0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 +0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 5 1 )))CMIP6_SFC_LAND_ANTHRO (((CMIP6_SHIP -0 CMIP6_CH4_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_shp 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_shp 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 )))CMIP6_SHIP #============================================================================== # BB4MIPs historical / SSP future biomass burning inventories #============================================================================== (((BB4MIPS -0 CMIP6_BB_CH4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_bbn 1750-2015/1-12/1/0 C xyL=1:PBL kg/m2/s CH4 75 9 1 +0 CMIP6_BB_CH4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_bbn 1750-2015/1-12/1/0 C xyL=1:PBL kg/m2/s CH4 75 9 1 )))BB4MIPS #============================================================================== @@ -332,19 +443,12 @@ Warnings: 1 )))QFED2 #============================================================================== -# --- Updated GFED4 biomass burning --- +# --- CH4: JPL WetCHARTs v1.0 (Bloom et al., https://doi.org/10.3334/ORNLDAAC/1502) --- # -# Emissions through 2019 obtained from Yuzhong Zhang -#============================================================================== -(((UPDATED_GFED4 -0 UPDATED_GFED4_CH4 $ROOT/CH4/v2020-09/GFED/GFED4_CH4_FIRE_$YYYY.nc emi_ch4 2009-2019/1-12/1-31/0 C xy molec/cm2/s CH4 - 9 3 -)))UPDATED_GFED4 - -#============================================================================== -# --- JPL WetCHARTs v1.0 (Bloom et al., https://doi.org/10.3334/ORNLDAAC/1502) --- +# # Use updated files (v2024-01); these are COARDS-compliant. #============================================================================== (((JPL_WETCHARTS -0 JPLW_CH4 $ROOT/CH4/v2020-09/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc emi_ch4 2010-2019/1-12/1/0 C xy molec/cm2/s CH4 - 10 1 +0 JPLW_CH4 $ROOT/CH4/v2024-01/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc emi_ch4 2010-2019/1-12/1/0 C xy molec/cm2/s CH4 - 10 1 )))JPL_WETCHARTS #============================================================================== @@ -361,6 +465,16 @@ Warnings: 1 0 CH4_LAKES $ROOT/CH4/v2022-11/Lakes/Maasakkers_Lakes_$YYYY.01x01.nc emi_ch4 $YYYY/1-12/1/0 C xy molec/cm2/s CH4 - 12 1 )))LAKES +#============================================================================== +# --- Emissions from Hydroelectric Reservoirs (Delwich et al., 2022) --- +# +# Use updated files (v2024-01); these are COARDS-compliant. +#============================================================================== +(((RESERVOIRS +0 CH4_RES_DAM $ROOT/CH4/v2024-01/ResME/ResME_Dam_Emissions.0.1x0.1.nc CH4emis 2022/1/1/0 C xy kg/m2/s CH4 - 15 1 +0 CH4_RES_SFC $ROOT/CH4/v2024-01/ResME/ResME_Surface_Emissions.0.1x0.1.nc CH4emis 2022/1/1/0 C xy kg/m2/s CH4 - 15 1 +)))RESERVOIRS + #============================================================================== # --- Soil absorption & termites from Fung et al, 1991 --- # @@ -368,11 +482,9 @@ Warnings: 1 # - Multiply soil absorption by -1 to get a "negative" flux. # (Only apply the scaling factor when adding to the total CH4 simulation) # - Use updated soil absorption emissions with seasonality applied -# - For tagged CH4 simulations soil absorption is treated as a loss and applied -# in mixing_mod.F #============================================================================== (((FUNG_TERMITES -0 CH4_TERMITES $ROOT/CH4/v2014-09/4x5/termites.geos.4x5.nc CH4 1985/1/1/0 C xy kg/m2/s CH4 - 13 1 +0 CH4_TERMITES $ROOT/CH4/v2022-11/4x5/termites.geos.4x5.nc CH4 1985/1/1/0 C xy kg/m2/s CH4 - 13 1 )))FUNG_TERMITES (((FUNG_SOIL_ABSORPTION 0 CH4_SOILABSORB $ROOT/CH4/v2019-10/Fung_SoilAbs/Soil_Absorption_4x5_$YYYY.nc CH4 2009-2015/1-12/1/0 C xy molec/cm2/s CH4 1 14 1 @@ -410,6 +522,8 @@ Warnings: 1 0 RCP85_CH4 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_CH4_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH4 - 1 1 )))RCP_85 +))).not.UseTotalPriorEmis + )))EMISSIONS ############################################################################### @@ -429,19 +543,19 @@ Warnings: 1 # NOTE: These are the base emissions in kgDM/m2/s. #============================================================================== (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2010-2023/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2010-2023/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 @@ -481,7 +595,7 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- @@ -504,22 +618,37 @@ Warnings: 1 # --- GEOS-Chem boundary condition file --- #============================================================================== (((GC_BCs -* BC_ $ROOT/SAMPLE_BCs/v2021-07/CH4/GEOSChem.BoundaryConditions.$YYYY$MM$DD_0000z.nc4 SpeciesBC_?ADV? 1980-2021/1-12/1-31/* EFY xyz 1 * - 1 1 +* BC_ $ROOT/SAMPLE_BCs/v2021-07/CH4/GEOSChem.BoundaryConditions.$YYYY$MM$DD_0000z.nc4 SpeciesBC_?ADV? 1900-2100/1-12/1-31/* EFY xyz 1 * - 1 1 )))GC_BCs #============================================================================== # --- Quantities needed for CH4 chemistry --- #============================================================================== (((CHEMISTRY_INPUT -(((GMI_CH4_LOSS + +# --- Global CH4 loss frequencies [1/s] --- +(((CH4_LOSS_FREQ ${RUNDIR_CH4_LOSS} -)))GMI_CH4_LOSS +)))CH4_LOSS_FREQ + +# --- Global OH from GEOS-Chem v5-07 [kg/m3] --- (((GLOBAL_OH -* GLOBAL_OH $ROOT/OH/v2014-09/v5-07-08/OH_3Dglobal.geos5.47L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * - 1 1 + +(((OH_PosteriorSF +* GLOBAL_OH $ROOT/OH/v2014-09/v5-07-08/OH_3Dglobal.geos5.72L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * 2/4 1 1 +)))OH_PosteriorSF + +(((.not.OH_PosteriorSF +* GLOBAL_OH $ROOT/OH/v2014-09/v5-07-08/OH_3Dglobal.geos5.72L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * 2 1 1 +))).not.OH_PosteriorSF + )))GLOBAL_OH + +# --- Global Cl [mol/mol dry air] --- (((GLOBAL_CL ${RUNDIR_GLOBAL_Cl} )))GLOBAL_CL + )))CHEMISTRY_INPUT #============================================================================== @@ -692,19 +821,33 @@ ${RUNDIR_GLOBAL_Cl} #============================================================================== # --- Files needed for analytical inversion --- -# -# These fields are are only used if analytical_inversion?' is activated in -# geoschem_config.yml. These fields are obtained from HEMCO and applied in -# GEOS-Chem/GeosCore/global_ch4_mod.F90. -# -# Entries below provided for examples only. Add your own here! #============================================================================== -(((AnalyticalInv - -# State vector file +(((AnalyticalInversion * CH4_STATE_VECTOR StateVector.nc StateVector 2009/1/1/0 C xy 1 * - 1 1 +)))AnalyticalInversion + +### END SECTION BASE EMISSIONS ### + +############################################################################### +### BEGIN SECTION SCALE FACTORS +############################################################################### + +# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper + +#============================================================================== +# --- Soil absorption scale factors --- +# +# Multiply soil absorption by -1 to get a "negative" flux. +#============================================================================== +1 NEGATIVE -1.0 - - - xy 1 1 -)))AnalyticalInv +#============================================================================== +# --- Perturbation factors --- +# +# Add factors to perturb OH, emissions, and other fields here for +# analytical inversions. +#============================================================================== +2 OH_pert_factor 1.0 - - - xy 1 1 #============================================================================== # --- Scale factors for posterior run --- @@ -715,38 +858,53 @@ ${RUNDIR_GLOBAL_Cl} # # Entries below are provided for examples only. Add your own here! #============================================================================== -(((Emis_ScaleFactor -* EMIS_SF gridded_posterior.nc ScaleFactor 2000/1/1/0 C xy 1 * - 1 1 -)))Emis_ScaleFactor +(((Emis_PosteriorSF +3 EMIS_SF gridded_posterior.nc ScaleFactor 2000/1/1/0 C xy 1 1 +)))Emis_PosteriorSF -(((OH_ScaleFactor -* OH_SF Post_SF_OH.nc SF_OH 2010-2017/1/1/0 E xy 1 * - 1 1 -)))OH_ScaleFactor +(((OH_PosteriorSF +4 OH_SF Post_SF_OH.nc SF_OH 2010-2017/1/1/0 C xy 1 1 +)))OH_PosteriorSF -### END SECTION BASE EMISSIONS ### +#============================================================================== +# --- Scale factors for analytical inversions --- +#============================================================================== +(((AnalyticalInversion -############################################################################### -### BEGIN SECTION SCALE FACTORS -############################################################################### +# Add perturbations to individual state vector element (N) following this format +# Start scale factor ID at 2000 to avoid conflicts with other SFs/masks +#200N SCALE_ELEM_000N ./Perturbations.txt - - - xy count 1 -# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper +)))AnalyticalInversion (((EMISSIONS - -#============================================================================== -# --- Soil absorption scale factors --- -# -# Multiply soil absorption by -1 to get a "negative" flux. -#============================================================================== -1 NEGATIVE -1.0 - - - xy 1 1 - #============================================================================== # --- Seasonal scaling factors ---- #============================================================================== -(((EDGARv6.or.GEPA + +#------------------------------------------------------------------------------ +# --- GHGI monthly scaling factors --- +#------------------------------------------------------------------------------ +(((GHGI_v2.or.GHGI_v2_Express_Ext +50 GHGI_OTH_STA_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1A_Combustion_Stationary 2012-2018/1-12/1/0 C xy 1 1 +51 GHGI_OIL_EXP_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Exploration 2012-2018/1-12/1/0 C xy 1 1 +52 GHGI_OIL_PRD_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Production 2012-2018/1-12/1/0 C xy 1 1 +53 GHGI_OIL_REF_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Refining 2012-2018/1-12/1/0 C xy 1 1 +54 GHGI_OIL_TRA_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Transport 2012-2018/1-12/1/0 C xy 1 1 +55 GHGI_GAS_EXP_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2b_Natural_Gas_Exploration 2012-2018/1-12/1/0 C xy 1 1 +56 GHGI_GAS_PRD_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2b_Natural_Gas_Production 2012-2018/1-12/1/0 C xy 1 1 +57 GHGI_LIV_MAN_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_3B_Manure_Management 2012-2018/1-12/1/0 C xy 1 1 +58 GHGI_RIC_CUL_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_3C_Rice_Cultivation 2012-2018/1-12/1/0 C xy 1 1 +59 GHGI_OTH_BUR_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_3F_Field_Burning 2012-2018/1-12/1/0 C xy 1 1 +)))GHGI_v2.or.GHGI_v2_Express_Ext + +#------------------------------------------------------------------------------ +# --- Scarpelli_Mexico manure & rice scale factors --- +#------------------------------------------------------------------------------ +(((Scarpelli_Mexico 10 MANURE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Manure_ScalingFactors.WithClimatology.nc sf_ch4 2008-2016/1-12/1/0 C xy 1 1 -11 RICE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Rice_ScalingFactors.SetMissing.nc sf_ch4 2012/1-12/1/0 C xy 1 1 -)))EDGARv6.or.GEPA +11 RICE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Rice_ScalingFactors.SetMissing.nc sf_ch4 2012/1-12/1/0 C xy 1 1 +)))Scarpelli_Mexico #============================================================================== # --- QFED2 diurnal scale factors --- @@ -773,20 +931,22 @@ ${RUNDIR_GLOBAL_Cl} #============================================================================== # Country/region masks #============================================================================== + +# Use updated files (v2024-01); these are COARDS-compliant. (((Scarpelli_Mexico -1001 MEXICO_MASK $ROOT/MASKS/v2018-09/Mexico_Mask.001x001.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 -1010 MEX_MASK_MIRROR $ROOT/MASKS/v2018-09/Mexico_Mask_Mirror.001x001.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 +1001 MEX_MASK $ROOT/MASKS/v2024-04/Mexico_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 +1010 MEX_MASK_MIRROR $ROOT/MASKS/v2024-04/Mexico_Mask_Mirror.01x01.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 )))Scarpelli_Mexico (((Scarpelli_Canada -1002 CANADA_MASK $ROOT/MASKS/v2018-09/Canada_Mask.001x001.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 -1011 CAN_MASK_MIRROR $ROOT/MASKS/v2018-09/Canada_Mask_Mirror.001x001.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 +1002 CAN_MASK $ROOT/MASKS/v2024-04/Canada_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 +1011 CAN_MASK_MIRROR $ROOT/MASKS/v2024-04/Canada_Mask_Mirror.01x01.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 )))Scarpelli_Canada -(((GEPA -1008 CONUS_MASK $ROOT/MASKS/v2018-09/CONUS_Mask.001x001.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 -1009 CONUS_MIRROR $ROOT/MASKS/v2018-09/CONUS_Mask_Mirror.001x001.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 -)))GEPA +(((GHGI_v2.or.GHGI_v2_Express_Ext +1008 CONUS_MASK $ROOT/MASKS/v2024-04/CONUS_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 +1009 CONUS_MASK_MIRROR $ROOT/MASKS/v2024-04/CONUS_Mask_Mirror.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 +)))GHGI_v2.or.GHGI_v2_Express_Ext )))EMISSIONS diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.CO2 b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.CO2 index a47cb784f..82d84883e 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.CO2 +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.CO2 @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * @@ -38,8 +37,8 @@ Separator: / Unit tolerance: 1 Negative values: 2 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -290,19 +289,19 @@ Warnings: 1 # NOTE: These are the base emissions in kgDM/m2/s. #============================================================================== (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2010-2023/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2010-2023/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 @@ -342,7 +341,7 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.Hg b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.Hg index 7ffbd471f..9e7b0b253 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.Hg +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.Hg @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * @@ -39,8 +38,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -419,19 +418,19 @@ Warnings: 1 # NOTE: These are the base emissions in kgDM/m2/s. #============================================================================== (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2016/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2010-2023/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2016/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2010-2023/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 @@ -471,7 +470,7 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- @@ -501,13 +500,13 @@ Warnings: 1 # --- GEOS-Chem boundary condition file --- #============================================================================== (((GC_BCs -* BC_ $ROOT/SAMPLE_BCs/v2019-05/tropchem/GEOSChem.BoundaryConditions.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesBC_?ADV? 1980-2021/1-12/1-31/* EFY xyz 1 * - 1 1 +* BC_ $ROOT/SAMPLE_BCs/v2019-05/tropchem/GEOSChem.BoundaryConditions.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesBC_?ADV? 1900-2100/1-12/1-31/* EFY xyz 1 * - 1 1 )))GC_BCs (((CHEMISTRY_INPUT #============================================================================== -# --- Oxidant fields (from GEOS-Chem 13.0.0 10-yr benchmark output) --- +# --- Oxidant fields (from GEOS-Chem 10-yr benchmark output) --- #============================================================================== (((OXIDANT_FIELDS diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.POPs b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.POPs index dafb5dd17..84406b680 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.POPs +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.POPs @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * @@ -38,8 +37,8 @@ Separator: / Unit tolerance: 2 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -107,7 +106,7 @@ ${RUNDIR_GLOBAL_BC} #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.TransportTracers b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.TransportTracers index adbc676e9..7be1331ea 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.TransportTracers +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.TransportTracers @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * @@ -39,8 +38,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -65,7 +64,7 @@ Warnings: 1 --> OLSON_LANDMAP : true # 1985 --> YUAN_MODIS_LAI : true # 2000-2020 #------------------------------------------------------------------------------ -100 GC_Rn-Pb-Be : on Rn222/Be7/Be7Strat/Be10/Be10Strat +100 GC_Rn-Pb-Be : on Rn222/Be7/Be7s/Be10/Be10s # ----- Always Leave Extension 100 turned on. Furthermore: # ----- Turning on ZHANG_Rn222 will use Zhang et al [2020] Rn222 emissions # ----- Turning off ZHANG_Rn222 will use default emissions (Jacob et al [1997]) @@ -85,14 +84,14 @@ Warnings: 1 # SF6 emissions from EDGAR v4.2 #============================================================================== (((EDGARv42_SF6 -0 EDGAR_SF6 $ROOT/SF6/v2019-01/EDGAR_v42_SF6_IPCC_2.generic.01x01.nc emi_sf6 1970-2008/1/1/0 C xy kg/m2/s SF6Tracer - 1 1 +0 EDGAR_SF6 $ROOT/SF6/v2019-01/EDGAR_v42_SF6_IPCC_2.generic.01x01.nc emi_sf6 1970-2008/1/1/0 C xy kg/m2/s SF6 - 1 1 )))EDGARv42_SF6 #============================================================================== # CH3I emitted over the oceans at rate of 1 molec/cm2/s #============================================================================== (((OCEAN_CH3I -0 SRC_2D_CH3I 1.0 - - - xy molec/cm2/s CH3ITracer 1000 1 1 +0 SRC_2D_CH3I 1.0 - - - xy molec/cm2/s CH3I 1000 1 1 )))OCEAN_CH3I #============================================================================== @@ -101,71 +100,47 @@ Warnings: 1 # Choose CEDS, EDGAR, or HTAP #============================================================================== (((CEDSv2 -0 CEDS_CO25d_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_AGR - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_ENE - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_IND - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_TRA - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_RCO - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_SLV - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_WST - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_SHP $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_shp 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_SHP - - - - - - COAnthroEmis50dayTracer 26 1 5 +0 CEDS_CO_25_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_AGR - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_ENE - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_IND - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_TRA - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_RCO - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_SLV - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_WST - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_SHP $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_shp 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_SHP - - - - - - CO_50 26 1 5 )))CEDSv2 (((EDGARv43 -0 EDGAR_CO25d_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1201/26/52 1/2 2 -0 EDGAR_CO50d_POW - - - - - - COAnthroEmis50dayTracer 1201/26/52 1/2 2 -0 EDGAR_CO25d_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1202/26/52 1/2 2 -0 EDGAR_CO50d_ENG - - - - - - COAnthroEmis50dayTracer 1202/26/52 1/2 2 -0 EDGAR_CO25d_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1203/26/52 1/2 2 -0 EDGAR_CO50d_IND - - - - - - COAnthroEmis50dayTracer 1203/26/52 1/2 2 -0 EDGAR_CO25d_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1204/26/52 1/2 2 -0 EDGAR_CO50d_TRO - - - - - - COAnthroEmis50dayTracer 1204/26/52 1/2 2 -0 EDGAR_CO25d_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1205/26/52 1/2 2 -0 EDGAR_CO50d_TNG - - - - - - COAnthroEmis50dayTracer 1205/26/52 1/2 2 -0 EDGAR_CO25d_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1206/26/52 1/2 2 -0 EDGAR_CO50d_RCO - - - - - - COAnthroEmis50dayTracer 1206/26/52 1/2 2 -0 EDGAR_CO25d_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1207/26/52 1/2 2 -0 EDGAR_CO50d_PPA - - - - - - COAnthroEmis50dayTracer 1207/26/52 1/2 2 -#0 EDGAR_CO25d_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.AWB.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1209/26/52 1/2 2 -#0 EDGAR_CO50d_AWB - - - - - - COAnthroEmis50dayTracer 1209/26/52 1/2 2 -0 EDGAR_CO25d_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1211/26/52 1/2 2 -0 EDGAR_CO50d_SWD - - - - - - COAnthroEmis50dayTracer 1211/26/52 1/2 2 -0 EDGAR_CO25d_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1212/26/52 1/2 2 -0 EDGAR_CO50d_FFF - - - - - - COAnthroEmis50dayTracer 1211/26/52 1/2 2 +0 EDGAR_CO_25_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1201/26/52 1/2 2 +0 EDGAR_CO_50_POW - - - - - - CO_50 1201/26/52 1/2 2 +0 EDGAR_CO_25_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1202/26/52 1/2 2 +0 EDGAR_CO_50_ENG - - - - - - CO_50 1202/26/52 1/2 2 +0 EDGAR_CO_25_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1203/26/52 1/2 2 +0 EDGAR_CO_50_IND - - - - - - CO_50 1203/26/52 1/2 2 +0 EDGAR_CO_25_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1204/26/52 1/2 2 +0 EDGAR_CO_50_TRO - - - - - - CO_50 1204/26/52 1/2 2 +0 EDGAR_CO_25_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1205/26/52 1/2 2 +0 EDGAR_CO_50_TNG - - - - - - CO_50 1205/26/52 1/2 2 +0 EDGAR_CO_25_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1206/26/52 1/2 2 +0 EDGAR_CO_50_RCO - - - - - - CO_50 1206/26/52 1/2 2 +0 EDGAR_CO_25_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1207/26/52 1/2 2 +0 EDGAR_CO_50_PPA - - - - - - CO_50 1207/26/52 1/2 2 +#0 EDGAR_CO_25_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.AWB.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1209/26/52 1/2 2 +#0 EDGAR_CO_50_AWB - - - - - - CO_50 1209/26/52 1/2 2 +0 EDGAR_CO_25_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1211/26/52 1/2 2 +0 EDGAR_CO_50_SWD - - - - - - CO_50 1211/26/52 1/2 2 +0 EDGAR_CO_25_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1212/26/52 1/2 2 +0 EDGAR_CO_50_FFF - - - - - - CO_50 1211/26/52 1/2 2 )))EDGARv43 -(((HTAP -0 HTAP_CO25d_IND $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_INDUSTRY.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -0 HTAP_CO50d_IND - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -0 HTAP_CO25d_POW $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_ENERGY.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -0 HTAP_CO50d_POW - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -0 HTAP_CO25d_RES $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_RESIDENTIAL.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -0 HTAP_CO50d_RES - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -0 HTAP_CO25d_TRA $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_TRANSPORT.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -0 HTAP_CO50d_TRA - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -#0 HTAP_CO25d_AIR1 $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_LTO.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -#0 HTAP_CO50d_AIR1 - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -#0 HTAP_CO25d_AIR2 $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CDS.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -#0 HTAP_CO50d_AIR2 - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -#0 HTAP_CO25d_AIR3 $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CRS.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -#0 HTAP_CO50d_AIR3 - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -)))HTAP - -#============================================================================== -# CO tracer with uniform surface emission of 2400 Tg/yr -#============================================================================== -(((UNIFORM_CO -0 SRC_2D_COUniform25d 1.5e-7 - - - xy kg/m2/s COUniformEmis25dayTracer - 1 1 -)))UNIFORM_CO - ############################################################################### ### EXTENSION DATA (subsection of BASE EMISSIONS SECTION) ### @@ -199,7 +174,7 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.aerosol b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.aerosol index 99ebcb407..e05a6df07 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.aerosol +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.aerosol @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * @@ -39,8 +38,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -99,14 +98,14 @@ Warnings: 1 # See additional notes in the AEIC scale factor section below. #------------------------------------------------------------------------------ --> AEIC2019_DAILY : false # 2019 (daily data) - --> AEIC2019_MONMEAN : true # 2019 (monthly-mean data) - --> AEIC_SCALE_1990_2019 : true # Scale to year in 1990-2019 + --> AEIC2019_MONMEAN : ${RUNDIR_USE_AEIC} # 2019 (monthly-mean data) + --> AEIC_SCALE_1990_2019 : ${RUNDIR_USE_AEIC} # Scale to year in 1990-2019 # ----- SHIP EMISSIONS -------------------------------------------------------- --> SHIP : true --> CEDSv2_SHIP : ${RUNDIR_USE_CEDS} # 1750-2017 --> CEDS_GBDMAPS_SHIP : false # 1970-2017 --> CEDS_GBDMAPS_SHIP_byFuelType: false # 1970-2017 - --> HTAPv3_SHIP : false # 2008-2018 + --> HTAPv3_SHIP : false # 2000-2018 --> ICOADS_SHIP : false # 2002 --> ARCTAS_SHIP : false # 2008 --> CORBETT_SHIP : false # 1985 @@ -121,10 +120,11 @@ Warnings: 1 --> CMIP6_SFC_LAND_ANTHRO : ${RUNDIR_CMIP6_FIELDS} # 1850-2100 --> CMIP6_AIRCRAFT : ${RUNDIR_CMIP6_FIELDS} # 1850-2100 --> CMIP6_SHIP : ${RUNDIR_CMIP6_FIELDS} # 1850-2100 -# ----- BIOMASS BURNING EMISSIONS ----------------------------- +# ----- BIOMASS BURNING EMISSIONS --------------------------------------------- --> QFED2 : false # 2000-2020 --> GFAS : false # 2003-2021 --> BB4MIPS : ${RUNDIR_CMIP6_FIELDS} # 1850-2100 + --> GFED4_CLIMATOLOGY : false # If true, turn off GFED ext below # ----- OFFLINE EMISSIONS ----------------------------------------------------- # To use online emissions instead set the offline emissions to 'false' and the # corresponding HEMCO extension to 'on': @@ -181,7 +181,7 @@ Warnings: 1 --> Monoterp to SOAS : 0.050 --> Othrterp to SOAP : 0.050 --> Othrterp to SOAS : 0.050 -111 GFED : ${RUNDIR_GFED_EXT} NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/BCPO/BCPI/OCPO/OCPI/POG1/POG2/MTPA/BENZ/TOLU/XYLE/NAP/EOH/MOH/SOAP +111 GFED : ${RUNDIR_GFED_EXT} NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/BCPO/BCPI/OCPO/OCPI/POG1/POG2/MTPA/BENZ/TOLU/XYLE/NAP/EOH/MOH/SOAP/FURA/PHEN/MVK/ISOP/ACTA/MGLY/GLYX/RCHO --> GFED4 : true --> GFED_daily : false --> GFED_3hourly : false @@ -211,7 +211,7 @@ Warnings: 1 ### BEGIN SECTION BASE EMISSIONS ############################################################################### -# ExtNr Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Species ScalIDs Cat Hier +# ExtNr Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Species ScalIDs Cat Hier (((EMISSIONS @@ -249,304 +249,304 @@ Warnings: 1 # aren't included in the Tier 1 CAPS file/ #============================================================================== (((NEI2016_MONMEAN -0 EPA16_BCPI__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__afdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__afdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__afdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_SO4__afdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__agACET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__agALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__agALDX $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__agBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_C2H4__agETH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__agETHA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__agETOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__agFORM $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_PRPE__agIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__agKET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__agMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__agNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_PRPE__agOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__agPAR $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_C3H8__agPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_TOLU__agTOL $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__agXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__airportsACET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__airportsACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__airportsALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__airportsALDX $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__airportsBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_BCPI__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__afdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__afdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__afdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_SO4__afdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__agACET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__agALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__agALDX $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__agBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_C2H4__agETH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__agETHA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__agETOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__agFORM $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_PRPE__agIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__agKET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__agMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__agNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_PRPE__agOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__agPAR $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_C3H8__agPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_TOLU__agTOL $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__agXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__airportsACET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__airportsACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__airportsALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__airportsALDX $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__airportsBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__airportsSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__airportsETH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__airportsETHA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__airportsETOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__airportsFORM $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__airportsHONO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__airportsIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__airportsKET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__airportsMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NO__airportsNO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__airportsNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__airportsOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__airportsPAR $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__airportsPNA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__airportsPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__airportsPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__airportsPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__airportsPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__airportsSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__airportsETH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__airportsETHA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__airportsETOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__airportsFORM $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__airportsHONO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__airportsKET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__airportsMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NO__airportsNO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__airportsNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__airportsPAR $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__airportsPNA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__airportsPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__airportsPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__airportsPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__airportsPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__airportsSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__airportspFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__airportsSULF $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__airportsTOL $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__airportsXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__nonptACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__nonptACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__nonptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__nonptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__nonptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__nonptCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__airportsSULF $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__airportsTOL $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__airportsXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonptACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonptACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__nonptCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__nonptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__nonptETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__nonptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__nonptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__nonptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HCl__nonptHCL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HCL 2016/1-12/1/0 R xyz kg/m2/s HCl 1007 1 50 -0 EPA16_HNO2__nonptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__nonptKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__nonptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__nonptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__nonptNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__nonptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__nonptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__nonptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__nonptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__nonptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__nonptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__nonptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__nonptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__nonptETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HCl__nonptHCL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HCL 2016/1-12/1/0 R xy kg/m2/s HCl 1007 1 50 +0 EPA16_HNO2__nonptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonptKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonptNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__nonptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__nonptpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__nonptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__nonptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__nonptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__nonroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__nonroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__nonroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__nonroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__nonroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__nonptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__nonroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__nonroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__nonroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__nonroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__nonroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__nonroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__nonroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__nonroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__nonroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__nonroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__nonroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__nonroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__nonroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__nonroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__nonroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__nonroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__nonroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__nonroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__nonroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__nonroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__nonroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__nonroadspFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__nonroadSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__nonroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__nonroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__npogACET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__npogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__npogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__npogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__npogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__npogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__nonroadSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__npogACET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__npogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__npogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__npogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__npogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__npogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__npogSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__npogETH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__npogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__npogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__npogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__npogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__npogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__npogKET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__npogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__npogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__npogNO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__npogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__npogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__npogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__npogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__npogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__npogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__npogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__npogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__npogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__npogETH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__npogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__npogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__npogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__npogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__npogKET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__npogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__npogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__npogNO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__npogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__npogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__npogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__npogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__npogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__npogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__npogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__npogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__npogpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__npogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__npogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__npogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__npogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__npogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__npogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__onroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__onroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__onroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroadpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_TOLU__onroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_caACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroad_caACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_caALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_caALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_caBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_TOLU__onroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_caACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_caACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_caALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_caALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_caBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP_onroad__caSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_caETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_caETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_caETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_caFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_caHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_caIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_caKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_caMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_caNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_caNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_caNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_caOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_caPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_caPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_caPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_caPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__onroad_caPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_caPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_caSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__onroad_caETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_caETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_caETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_caFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_caHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_caKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_caMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_caNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_caNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_caNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_caPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_caPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_caPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_caPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__onroad_caPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_caPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_caSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_capFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_TOLU__onroad_caTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_caXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__railACET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__railACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__railALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__railALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__railBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_TOLU__onroad_caTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_caXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__railACET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__railACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__railALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__railALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__railBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__railSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__railETH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__railETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__railETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__railFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__railHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__railIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__railKET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__railMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__railNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__railNO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__railNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__railOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__railPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__railPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__railPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__railPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__railPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__railPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__railSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__railETH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__railETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__railETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__railFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__railHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__railKET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__railMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__railNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__railNO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__railNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__railPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__railPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__railPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__railPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__railPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__railPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__railSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__railpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__railSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__railTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__railXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__rwcACET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__rwcACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__rwcALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__rwcALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__rwcBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__rwcCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__rwcCO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__railSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__railTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__railXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__rwcACET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__rwcACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__rwcALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__rwcALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__rwcBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__rwcCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__rwcCO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__rwcSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__rwcETH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__rwcETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__rwcETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__rwcFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__rwcHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__rwcIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__rwcKET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__rwcMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__rwcNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__rwcNO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__rwcNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__rwcOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__rwcPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__rwcPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__rwcPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__rwcPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__rwcPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__rwcPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__rwcSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__rwcETH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__rwcETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__rwcETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__rwcFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__rwcHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__rwcKET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__rwcMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__rwcNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__rwcNO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__rwcNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__rwcPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__rwcPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__rwcPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__rwcPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__rwcPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__rwcPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__rwcSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__rwcpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__rwcSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__rwcTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__rwcXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_SO4__rwcSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__rwcTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__rwcXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 0 EPA16_ACET__c1c2ACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 0 EPA16_ALD2__c1c2ALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 0 EPA16_RCHO__c1c2ALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 @@ -721,155 +721,155 @@ Warnings: 1 0 EPA16_SO4__ptnonipmSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 0 EPA16_TOLU__ptnonipmTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 0 EPA16_XYLE__ptnonipmXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_canACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_canALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_canALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_canBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_ACET__onroad_canACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_canALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_canALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_canBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroad_canSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_canETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_canETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_canETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_canFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_canHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_canIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_canKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_canMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_canNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_canNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_canNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_canOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_canPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_canPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_canPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_canPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__onroad_canPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_canPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_canSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__onroad_canETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_canETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_canETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_canFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_canHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_canKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_canMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_canNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_canNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_canNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_canPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_canPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_canPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_canPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__onroad_canPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_canPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_canSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_canpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__onroad_canSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__onroad_canTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_canXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_mexACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroad_mexACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_mexALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_mexALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_mexBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__onroad_canSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_canTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_canXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_mexACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_mexACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_mexALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_mexALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_mexBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroad_mexSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_mexETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_mexETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_mexETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_mexFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_mexHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_mexIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_mexKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_mexMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_mexNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_mexNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_mexNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_mexOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_mexPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_mexPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_mexPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_mexPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__onroad_mexPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_mexPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_mexSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__onroad_mexETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_mexETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_mexETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_mexFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_mexHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_mexKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_mexMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_mexNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_mexNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_mexNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_mexPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_mexPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_mexPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_mexPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__onroad_mexPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_mexPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_mexSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_mexpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__onroad_mexSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__onroad_mexTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_mexXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_BCPI__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othafdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othafdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othafdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_SO4__othafdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__otharACET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__otharALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__otharALDX $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__otharBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__onroad_mexSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_mexTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_mexXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othafdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othafdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othafdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_SO4__othafdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__otharACET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__otharALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__otharALDX $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__otharBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__otharSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__otharETH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__otharETHA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__otharETOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__otharFORM $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__otharHONO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__otharIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__otharKET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__otharMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__otharNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__otharNO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__otharNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__otharOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__otharPAR $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__otharPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__otharPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__otharPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__otharPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__otharPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__otharSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__otharETH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__otharETHA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__otharETOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__otharFORM $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__otharHONO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__otharKET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__otharMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__otharNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__otharNO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__otharNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__otharPAR $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__otharPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__otharPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__otharPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__otharPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__otharPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__otharSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__otharpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__otharSULF $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__otharTOL $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__otharXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_BCPI__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othptdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othptdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othptdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_SO4__othptdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__othptACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__othptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__othptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__othptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__otharSULF $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__otharTOL $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__otharXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_SO4__othptdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__othptACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__othptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__othptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__othptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__othptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__othptETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__othptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__othptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__othptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__othptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__othptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__othptKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__othptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__othptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__othptNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__othptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__othptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__othptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 -0 EPA16_C3H8__othptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__othptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__othptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C2H4__othptETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__othptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__othptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__othptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__othptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__othptKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__othptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__othptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__othptNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__othptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__othptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C3H8__othptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__othptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__othptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__othptpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__othptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__othptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__othptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_SO4__othptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__othptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__othptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 )))NEI2016_MONMEAN #============================================================================== @@ -1088,72 +1088,73 @@ Warnings: 1 # EDGAR, HTAPv3 or CMIP6_SFC_LAND_ANTHRO for the global base emissions %%% #============================================================================== (((CEDSv2 -0 CEDS_SOAP_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 26/280 1 5 -0 CEDS_SOAP_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 26/280 1 5 -0 CEDS_SOAP_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 26/280 1 5 -0 CEDS_SOAP_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 26/280 1 5 -0 CEDS_SOAP_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 26/280 1 5 -0 CEDS_SOAP_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 26/280 1 5 - -0 CEDS_SO2_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_AGR - - - - - - SO4 63 1 5 -0 CEDS_pFe_AGR - - - - - - pFe 66 1 5 -0 CEDS_SO2_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_ENE - - - - - - SO4 63 1 5 -0 CEDS_pFe_ENE - - - - - - pFe 66 1 5 -0 CEDS_SO2_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_IND - - - - - - SO4 63 1 5 -0 CEDS_pFe_IND - - - - - - pFe 66 1 5 -0 CEDS_SO2_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_TRA - - - - - - SO4 63 1 5 -0 CEDS_pFe_TRA - - - - - - pFe 66 1 5 -0 CEDS_SO2_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_RCO - - - - - - SO4 63 1 5 -0 CEDS_pFe_RCO - - - - - - pFe 66 1 5 -0 CEDS_SO2_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_SLV - - - - - - SO4 63 1 5 -0 CEDS_pFe_SLV - - - - - - pFe 66 1 5 -0 CEDS_SO2_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_WST - - - - - - SO4 63 1 5 -0 CEDS_pFe_WST - - - - - - pFe 66 1 5 - -0 CEDS_NH3_AGR $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_agr 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_ENE $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ene 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_IND $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ind 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_TRA $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_tra 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_RCO $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_rco 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_SLV $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_slv 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_WST $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_wst 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 - -0 CEDS_BCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_AGR - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_ENE - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_IND - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_TRA - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_RCO - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_SLV - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_WST - - - - - - BCPO 71 1 5 - -0 CEDS_OCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_AGR - - - - - - OCPO 73 1 5 -0 CEDS_OCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_ENE - - - - - - OCPO 73 1 5 -0 CEDS_OCPI_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_IND - - - - - - OCPO 73 1 5 -0 CEDS_OCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_TRA - - - - - - OCPO 73 1 5 -0 CEDS_OCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_RCO - - - - - - OCPO 73 1 5 -0 CEDS_OCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_SLV - - - - - - OCPO 73 1 5 -0 CEDS_OCPI_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_WST - - - - - - OCPO 73 1 5 +0 CEDS_SOAP_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 280/2406/706/315 1 5 +0 CEDS_SOAP_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s SOAP 280/2407/707/316 1 5 +0 CEDS_SOAP_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 280/2411/711 1 5 +0 CEDS_SOAP_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 280/2409/709 1 5 +0 CEDS_SOAP_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 280/2407/707 1 5 +0 CEDS_SOAP_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 280/2401 1 5 +0 CEDS_SOAP_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s SOAP 26/280 1 5 + +0 CEDS_SO2_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2401 1 5 +0 CEDS_SO4_AGR - - - - - - SO4 63/2401 1 5 +0 CEDS_pFe_AGR - - - - - - pFe 66/2401 1 5 +0 CEDS_SO2_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s SO2 2406/706/315 1 5 +0 CEDS_SO4_ENE - - - - - - SO4 63/2406/706/315 1 5 +0 CEDS_pFe_ENE - - - - - - pFe 66/2406/706/315 1 5 +0 CEDS_SO2_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s SO2 2407/707/316 1 5 +0 CEDS_SO4_IND - - - - - - SO4 63/2407/707/316 1 5 +0 CEDS_pFe_IND - - - - - - pFe 66/2407/707/316 1 5 +0 CEDS_SO2_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2411/711 1 5 +0 CEDS_SO4_TRA - - - - - - SO4 63/2411/711 1 5 +0 CEDS_pFe_TRA - - - - - - pFe 66/2411/711 1 5 +0 CEDS_SO2_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2409/709 1 5 +0 CEDS_SO4_RCO - - - - - - SO4 63/2409/709 1 5 +0 CEDS_pFe_RCO - - - - - - pFe 66/2409/709 1 5 +0 CEDS_SO2_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2407/707 1 5 +0 CEDS_SO4_SLV - - - - - - SO4 63/2407/707 1 5 +0 CEDS_pFe_SLV - - - - - - pFe 66/2407/707 1 5 +0 CEDS_SO2_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_WST - - - - - - SO4 63 1 5 +0 CEDS_pFe_WST - - - - - - pFe 66 1 5 + +0 CEDS_NH3_AGR $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_agr 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2401 1 5 +0 CEDS_NH3_ENE $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s NH3 2406/706/315 1 5 +0 CEDS_NH3_IND $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s NH3 2407/707/316 1 5 +0 CEDS_NH3_TRA $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_tra 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2411/711 1 5 +0 CEDS_NH3_RCO $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_rco 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2409/709 1 5 +0 CEDS_NH3_SLV $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_slv 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2407/707 1 5 +0 CEDS_NH3_WST $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_wst 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 + +0 CEDS_BCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2401 1 5 +0 CEDS_BCPO_AGR - - - - - - BCPO 71/2401 1 5 +0 CEDS_BCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s BCPI 70/2406/706/315 1 5 +0 CEDS_BCPO_ENE - - - - - - BCPO 71/2406/706/315 1 5 +0 CEDS_BCPI_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s BCPI 70/2407/707/316 1 5 +0 CEDS_BCPO_IND - - - - - - BCPO 71/2407/707/316 1 5 +0 CEDS_BCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2411/711 1 5 +0 CEDS_BCPO_TRA - - - - - - BCPO 71/2411/711 1 5 +0 CEDS_BCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2409/709 1 5 +0 CEDS_BCPO_RCO - - - - - - BCPO 71/2409/709 1 5 +0 CEDS_BCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2407/707 1 5 +0 CEDS_BCPO_SLV - - - - - - BCPO 71/2407/707 1 5 +0 CEDS_BCPI_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_WST - - - - - - BCPO 71 1 5 + +0 CEDS_OCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2401 1 5 +0 CEDS_OCPO_AGR - - - - - - OCPO 73/2401 1 5 +0 CEDS_OCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s OCPI 72/2406/706/315 1 5 +0 CEDS_OCPO_ENE - - - - - - OCPO 73/2406/706/315 1 5 +0 CEDS_OCPI_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s OCPI 72/2407/707/316 1 5 +0 CEDS_OCPO_IND - - - - - - OCPO 73/2407/707/316 1 5 +0 CEDS_OCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2411/711 1 5 +0 CEDS_OCPO_TRA - - - - - - OCPO 73/2411/711 1 5 +0 CEDS_OCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2409/709 1 5 +0 CEDS_OCPO_RCO - - - - - - OCPO 73/2409/709 1 5 +0 CEDS_OCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2407/707 1 5 +0 CEDS_OCPO_SLV - - - - - - OCPO 73/2407/707 1 5 +0 CEDS_OCPI_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_WST - - - - - - OCPO 73 1 5 )))CEDSv2 #============================================================================== @@ -1172,9 +1173,11 @@ Warnings: 1 >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS.rc )))CEDS_GBDMAPS (((CEDS_GBDMAPS_byFuelType -(((.not.CEDS_GBDMAPS.and..not.CEDSv2 +(((.not.CEDS_GBDMAPS +(((.not.CEDSv2 >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS_byFuelType.rc -))).not.CEDS_GBDMAPS.and..not.CEDSv2 +))).not.CEDSv2 +))).not.CEDS_GBDMAPS )))CEDS_GBDMAPS_byFuelType #============================================================================== @@ -1537,9 +1540,11 @@ Warnings: 1 )))CEDS_GBDMAPS_SHIP (((CEDS_SHIP_byFuelType -(((.not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +(((.not.CEDS_GBDMAPS_SHIP +(((.not.CEDSv2_SHIP >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS_SHIP_byFuelType.rc -))).not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +))).not.CEDSv2_SHIP +))).not.CEDS_GBDMAPS_SHIP )))CEDS_SHIP_byFuelType #============================================================================== @@ -1659,7 +1664,7 @@ Warnings: 1 0 GFAS_OCPI $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ocfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPI 72/75 5 3 0 GFAS_OCPO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ocfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPO 73/75 5 3 0 GFAS_SO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SO2 75 5 3 -0 GFAS_pFe - - - - - - pFe 75/66 5 3 +0 GFAS_pFe $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s pFe 75/66 5 3 0 GFAS_NH3 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc nh3fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NH3 75 5 3 0 GFAS_DMS $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h6sfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s DMS 75 5 3 )))GFAS @@ -1680,6 +1685,20 @@ Warnings: 1 0 CMIP6_BB_DMS $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 DMS_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s DMS 75 5 3 )))BB4MIPS +#============================================================================== +# --- GFED4 biomass burning emissions climatology +# NOTE: These emissions were generated for 2010-2019 using the GFED extension +# in a 0.5x0.625 HEMCO 3.6.1 standalone simulation. +#============================================================================== +(((GFED4_CLIMATOLOGY +0 GFED4_CLIM_BCPI $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BCPI 2019/1-12/1/0 C xy kg/m2/s BCPI - 5 1 +0 GFED4_CLIM_BCPO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BCPO 2019/1-12/1/0 C xy kg/m2/s BCPO - 5 1 +0 GFED4_CLIM_OCPI $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_OCPI 2019/1-12/1/0 C xy kg/m2/s OCPI - 5 1 +0 GFED4_CLIM_OCPO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_OCPO 2019/1-12/1/0 C xy kg/m2/s OCPO - 5 1 +0 GFED4_CLIM_SO2 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_SO2 2019/1-12/1/0 C xy kg/m2/s SO2 - 5 1 +0 GFED4_CLIM_SOAP $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_SOAP 2019/1-12/1/0 C xy kg/m2/s SOAP - 5 1 +)))GFED4_CLIMATOLOGY + #============================================================================== # --- Anthropogenic Fugitive, Combustion and Industrial Dust --- # (Philip et al., 2017, ERL) @@ -1695,10 +1714,10 @@ Warnings: 1 #============================================================================== (((OFFLINE_DUST (((.not.DustDead.or.DustGinoux -0 EMIS_DST1 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST1 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST1 - 3 2 -0 EMIS_DST2 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST2 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST2 - 3 2 -0 EMIS_DST3 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST3 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST3 - 3 2 -0 EMIS_DST4 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST4 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST4 - 3 2 +0 EMIS_DST1 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST1 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST1 - 3 2 +0 EMIS_DST2 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST2 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST2 - 3 2 +0 EMIS_DST3 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST3 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST3 - 3 2 +0 EMIS_DST4 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST4 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST4 - 3 2 ))).not.DustDead.or.DustGinoux )))OFFLINE_DUST @@ -1706,25 +1725,25 @@ Warnings: 1 # --- Offline biogenic VOC emissions --- #============================================================================== (((OFFLINE_BIOGENICVOC -0 BIOGENIC_ACET $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc ACET_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ACET - 4 2 -0 BIOGENIC_ALD2 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc ALD2_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ALD2 - 4 2 -0 BIOGENIC_C2H4 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc C2H4_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s C2H4 - 4 2 -0 BIOGENIC_EOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s EOH - 4 2 -0 BIOGENIC_ISOP $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc ISOP_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ISOP - 4 2 +0 BIOGENIC_ACET $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc ACET_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ACET - 4 2 +0 BIOGENIC_ALD2 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc ALD2_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ALD2 - 4 2 +0 BIOGENIC_C2H4 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc C2H4_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s C2H4 - 4 2 +0 BIOGENIC_EOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s EOH - 4 2 +0 BIOGENIC_ISOP $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc ISOP_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ISOP - 4 2 0 BIOGENIC_ISOP_SOAP - - - - - - SOAP 610 4 2 0 BIOGENIC_ISOP_SOAS - - - - - - SOAS 610 4 2 -0 BIOGENIC_LIMO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc LIMO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s LIMO - 4 2 +0 BIOGENIC_LIMO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc LIMO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s LIMO - 4 2 0 BIOGENIC_LIMO_SOAP - - - - - - SOAP 611 4 2 0 BIOGENIC_LIMO_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_MOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc MOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MOH - 4 2 -0 BIOGENIC_MTPA $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc MTPA_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPA - 4 2 +0 BIOGENIC_MOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc MOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MOH - 4 2 +0 BIOGENIC_MTPA $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc MTPA_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPA - 4 2 0 BIOGENIC_MTPA_SOAP - - - - - - SOAP 611 4 2 0 BIOGENIC_MTPA_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_MTPO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc MTPO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPO - 4 2 +0 BIOGENIC_MTPO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc MTPO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPO - 4 2 0 BIOGENIC_MTPO_SOAP - - - - - - SOAP 611 4 2 0 BIOGENIC_MTPO_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_PRPE $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc PRPE_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s PRPE - 4 2 -0 BIOGENIC_SESQ $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SESQ_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s SESQ - 4 2 +0 BIOGENIC_PRPE $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc PRPE_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s PRPE - 4 2 +0 BIOGENIC_SESQ $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SESQ_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s SESQ - 4 2 0 BIOGENIC_SESQ_SOAP - - - - - - SOAP 612 4 2 0 BIOGENIC_SESQ_SOAS - - - - - - SOAS 612 4 2 )))OFFLINE_BIOGENICVOC @@ -1734,13 +1753,13 @@ Warnings: 1 #============================================================================== (((OFFLINE_SEASALT (((.not.SeaSalt -0 SEASALT_SALA $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/seasalt_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SALA_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALA - 3 2 +0 SEASALT_SALA $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SALA_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALA - 3 2 0 SEASALT_SALAAL - - - - - - SALAAL 615 3 2 0 SEASALT_SALACL - - - - - - SALACL 616 3 2 (((CalcBrSeasalt 0 SEASALT_BrSALA - - - - - - BrSALA 617 3 2 )))CalcBrSeasalt -0 SEASALT_SALC $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/seasalt_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SALC_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALC - 3 2 +0 SEASALT_SALC $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SALC_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALC - 3 2 0 SEASALT_SALCAL - - - - - - SALCAL 615 3 2 0 SEASALT_SALCCL - - - - - - SALCCL 616 3 2 (((CalcBrSeasalt @@ -1817,11 +1836,11 @@ Warnings: 1 #============================================================================== (((MEGAN (((HEMCO_RESTART -108 T_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 T_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 LAI_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -108 PARDR_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 -108 PARDF_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 T_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 T_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 LAI_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +108 PARDR_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 PARDF_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 )))HEMCO_RESTART 108 MEGAN_AEF_ISOP $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_ISOPRENE 1985/1/1/0 C xy kgC/m2/s * 61 1 1 108 MEGAN_AEF_MBOX $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_MBO 1985/1/1/0 C xy kgC/m2/s * 64 1 1 @@ -1852,26 +1871,28 @@ Warnings: 1 #============================================================================== # --- GFED biomass burning emissions (Extension 111) -# NOTE: These are the base emissions in kgDM/m2/s. +# NOTES: +# - These are the base emissions in kgDM/m2/s +# - If a year is not available, you may use the GFED4_CLIMATOLOGY option instead #============================================================================== (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_subgrid_coag 111 FINN_DAILY_NUMBER $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25_with_num.nc number 2002-2016/1-12/1/0 RF xy unitless * - 1 1 )))GFED_subgrid_coag (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2010-2023/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2010-2023/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 @@ -1916,7 +1937,7 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- @@ -1946,7 +1967,7 @@ Warnings: 1 # --- GEOS-Chem boundary condition file --- #============================================================================== (((GC_BCs -* BC_ $ROOT/SAMPLE_BCs/v2021-09/fullchem/GEOSChem.BoundaryConditions.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesBC_?ADV? 1980-2021/1-12/1-31/* EFY xyz 1 * - 1 1 +* BC_ $ROOT/SAMPLE_BCs/GC_14.3.0/fullchem/GEOSChem.BoundaryConditions.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesBC_?ADV? 1900-2100/1-12/1-31/* EFY xyz 1 * - 1 1 )))GC_BCs (((CHEMISTRY_INPUT @@ -2442,19 +2463,19 @@ ${RUNDIR_TES_CLIM_N2O} # --- EPA NEI day-of-week scale factors --- #============================================================================== (((NEI2016_MONMEAN -210 NEI99_DOW_NOX $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc NOX 1999/1-12/WD/0 C xy 1 1 -211 NEI99_DOW_CO $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc CO 1999/1-12/WD/0 C xy 1 1 -212 NEI99_DOW_ALK4 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc ALK4 1999/1-12/WD/0 C xy 1 1 -213 NEI99_DOW_ACET $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc ACET 1999/1-12/WD/0 C xy 1 1 -214 NEI99_DOW_MEK $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc MEK 1999/1-12/WD/0 C xy 1 1 -215 NEI99_DOW_PRPE $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc PRPE 1999/1-12/WD/0 C xy 1 1 -216 NEI99_DOW_C3H8 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc C3H8 1999/1-12/WD/0 C xy 1 1 -217 NEI99_DOW_C2H6 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc C2H6 1999/1-12/WD/0 C xy 1 1 -218 NEI99_DOW_SO2 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc SO2 1999/1-12/WD/0 C xy 1 1 -219 NEI99_DOW_SO4 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc SO4 1999/1-12/WD/0 C xy 1 1 -220 NEI99_DOW_MSA $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc MSA 1999/1-12/WD/0 C xy 1 1 -221 NEI99_DOW_BCPI $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc BCPI 1999/1-12/WD/0 C xy 1 1 -222 NEI99_DOW_OCPI $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc OCPI 1999/1-12/WD/0 C xy 1 1 +210 NEI99_DOW_NOX $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc NOX 1999/1-12/WD/0 C xy 1 1 +211 NEI99_DOW_CO $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc CO 1999/1-12/WD/0 C xy 1 1 +212 NEI99_DOW_ALK4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ALK4 1999/1-12/WD/0 C xy 1 1 +213 NEI99_DOW_ACET $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ACET 1999/1-12/WD/0 C xy 1 1 +214 NEI99_DOW_MEK $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MEK 1999/1-12/WD/0 C xy 1 1 +215 NEI99_DOW_PRPE $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc PRPE 1999/1-12/WD/0 C xy 1 1 +216 NEI99_DOW_C3H8 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C3H8 1999/1-12/WD/0 C xy 1 1 +217 NEI99_DOW_C2H6 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C2H6 1999/1-12/WD/0 C xy 1 1 +218 NEI99_DOW_SO2 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO2 1999/1-12/WD/0 C xy 1 1 +219 NEI99_DOW_SO4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO4 1999/1-12/WD/0 C xy 1 1 +220 NEI99_DOW_MSA $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MSA 1999/1-12/WD/0 C xy 1 1 +221 NEI99_DOW_BCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc BCPI 1999/1-12/WD/0 C xy 1 1 +222 NEI99_DOW_OCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc OCPI 1999/1-12/WD/0 C xy 1 1 )))NEI2016_MONMEAN #============================================================================== @@ -2575,6 +2596,27 @@ ${RUNDIR_TES_CLIM_N2O} 1212 FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc FFF 2010/1-12/1/0 C xy unitless 1 )))EDGARv43.or.DICE_Africa +(((CEDSv2 +#========================================================================= +# --- Sector-wise diel scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +2401 TOD_AGRICULTURE 0.599/0.599/0.599/0.599/0.599/0.649/0.748/0.898/1.098/1.247/1.447/1.597/1.796/1.746/1.696/1.547/1.347/1.098/0.898/0.748/0.649/0.599/0.599/0.599 - - - xy unitless 1 +2406 TOD_ENERGY 0.790/0.720/0.720/0.710/0.740/0.800/0.920/1.080/1.190/1.220/1.210/1.210/1.170/1.150/1.140/1.130/1.100/1.070/1.040/1.020/1.020/1.010/0.960/0.880 - - - xy unitless 1 +2407 TOD_INDUSTRY 0.750/0.750/0.780/0.820/0.880/0.950/1.020/1.090/1.160/1.220/1.280/1.300/1.220/1.240/1.250/1.160/1.080/1.010/0.950/0.900/0.850/0.810/0.780/0.750 - - - xy unitless 1 +2409 TOD_RESIDENTIAL 0.393/0.393/0.393/0.393/0.393/0.492/1.180/1.475/1.574/1.574/1.377/1.180/1.082/1.082/0.984/0.984/0.984/1.082/1.377/1.475/1.377/1.377/0.984/0.393 - - - xy unitless 1 +2411 TOD_TRANSPORT 0.190/0.090/0.060/0.050/0.090/0.220/0.860/1.840/1.860/1.410/1.240/1.200/1.320/1.440/1.450/1.590/2.030/2.080/1.510/1.060/0.740/0.620/0.610/0.440 - - - xy unitless 1 + +#========================================================================= +# --- Sector-wise day-of-week scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +706 DOW_ENERGY 0.850/1.060/1.060/1.060/1.060/1.060/0.850 - - - xy unitless 1 +707 DOW_INDUSTRY 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +709 DOW_RESIDENTIAL 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +711 DOW_TRANSPORT 0.790/1.020/1.060/1.080/1.100/1.140/0.810 - - - xy unitless 1 +)))CEDSv2 + ### END SECTION SCALE FACTORS ### ############################################################################### diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon index c1731d646..e3d9f3a9a 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon @@ -27,8 +27,7 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} -GCAP2SCENARIO: ${RUNDIR_GCAP2_SCENARIO} +GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * DiagnFile: HEMCO_Diagn.rc @@ -39,8 +38,8 @@ Separator: / Unit tolerance: 1 Negative values: 2 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all Mask fractions: false ### END SECTION SETTINGS ### @@ -65,16 +64,18 @@ Mask fractions: false --> GC_BCs : ${RUNDIR_USE_BCs} # ----- CH4 INVENTORIES AND DATA ---------------------------------------------- # ..... Regional Inventories ......... - --> GEPA : true # 2012 + --> GHGI_v2 : false # 2012-2018 + --> GHGI_v2_Express_Ext : true # 2012-2020 --> Scarpelli_Canada : true # 2018 --> Scarpelli_Mexico : true # 2015 # ..... Global Inventories ........... --> GFEIv2 : true # 2019 - --> EDGARv6 : true # 2000-2018 - --> UPDATED_GFED4 : true # 2009-2019 + --> EDGARv8 : true # 2010-2022 + --> QFED2 : false # 2009-2015 --> JPL_WETCHARTS : true # 2009-2017 --> SEEPS : true # 2012 --> LAKES : false # 2009-2015 + --> RESERVOIRS : true # 2022 --> FUNG_TERMITES : true # 1985 --> FUNG_SOIL_ABSORPTION : false # 2009-2015 --> MeMo_SOIL_ABSORPTION : true # 1990-2009 or clim. @@ -82,12 +83,8 @@ Mask fractions: false --> CMIP6_SHIP : false # 1850-2100 --> BB4MIPS : false # 1850-2100 # ..... Non-Emissions Data ........... - --> GMI_CH4_LOSS : true # 1985 + --> CH4_LOSS_FREQ : true # 1985 --> GLOBAL_CL : true # 2010-2019 -# ..... Options for the IMI .......... - --> AnalyticalInv : false - --> Emis_ScaleFactor : false - --> OH_ScaleFactor : false # ----- CO and CO2-only INVENTORIES AND DATA ---------------------------------- # ..... Global inventories ........... --> AEIC2019_DAILY : false # 2019 (daily data) @@ -134,8 +131,13 @@ Mask fractions: false # ----- NON-EMISSIONS DATA ---------------------------------------------------- --> OLSON_LANDMAP : true # 1985 --> YUAN_MODIS_LAI : true # 2000-2020 - --> GLOBAL_OH : true # 2010-2019 - --> GLOBAL_OH_GCv5 : false # 1985 (GCv5 OH, need for IMI) + --> GLOBAL_OH_GC14 : false # 2010-2019 + --> GLOBAL_OH_GCv5 : true # 1985 (recommended for CH4) +# ----- Options for analytical inversions ------------------------------------- + --> AnalyticalInversion : false + --> UseTotalPriorEmis : false # Skips global/regional inventories + --> Emis_PosteriorSF : false # Apply posterior scale factors to total emis? + --> OH_PosteriorSF : false # Apply posterior scale factor to global OH? # ----------------------------------------------------------------------------- 111 GFED : on CH4/CO/CO2 --> GFED4 : true @@ -159,87 +161,213 @@ Mask fractions: false (((USE_CH4_DATA #============================================================================== -# --- CH4: Gridded EPA (Maasakkers et al., Environ. Sci. Technol., 2016) --- +# ---Total CH4 emissions (all sectors) from prior simulation --- +#============================================================================== +(((UseTotalPriorEmis + +(((Emis_PosteriorSF +0 CH4_Emis_Prior ../../prior_run/OutputDir/HEMCO_sa_diagnostics.$YYYY$MM$DD0000.nc EmisCH4_Total $YYYY/$MM/$DD/0 C xy kg/m2/s CH4 3 1 500 +)))Emis_PosteriorSF + +(((.not.Emis_PosteriorSF +0 CH4_Emis_Prior ../../prior_run/OutputDir/HEMCO_sa_diagnostics.$YYYY$MM$DD0000.nc EmisCH4_Total $YYYY/$MM/$DD/0 C xy kg/m2/s CH4 - 1 500 +))).not.Emis_PosteriorSF + +)))UseTotalPriorEmis + +(((.not.UseTotalPriorEmis + +#============================================================================== +# --- CH4: Gridded GHGI v2 (Maasakkers et al., submitted to ES&T, 2023) --- # # NOTES: +# - This is the main Gridded GHGI v2 dataset based off the US GHGI +# published in 2020 # - Use Hier=100 to add to Canada and Mexico regional inventories -# - Do not use GEPA forest fire emissions. Use QFED instead. -# - Apply seasonal scale factors to manure and rice emissions -#============================================================================== -(((GEPA -0 GEPA_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1008 1 100 -0 GEPA_GAS_PRODUCTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_GAS_PROCESSING $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_GAS_TRANSMISSION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_GAS_DISTRIBUTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_COAL_UNDERGROUND $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 -0 GEPA_COAL_SURFACE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 -0 GEPA_COAL_ABANDONED $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 -0 GEPA_LIVESTOCK__4A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1008 4 100 -0 GEPA_LIVESTOCK__4B $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1008 4 100 -0 GEPA_LANDFILLS_MUNI $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 100 -0 GEPA_LANDFILLS_INDU $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 100 -0 GEPA_WASTEWATER_DOME $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 100 -0 GEPA_WASTEWATER_INDU $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 100 -0 GEPA_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1008 7 100 -0 GEPA_OTHER__1A_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__1A_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1008 8 100 -#0 GEPA_OTHER__5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1008 9 100 -0 GEPA_OTHER__6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_COAST_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1009 1 5 -0 GEPA_COAST_GAS_PR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_GAS_PC $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_GAS_TR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_GAS_DS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_COAL_U $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 -0 GEPA_COAST_COAL_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 -0 GEPA_COAST_COAL_A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 -0 GEPA_COAST_LVSTK_F $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1009 4 5 -0 GEPA_COAST_LVSTK_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1009 4 5 -0 GEPA_COAST_LDF_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 5 -0 GEPA_COAST_LDF_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 5 -0 GEPA_COAST_WSTW_D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 5 -0 GEPA_COAST_WSTW_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 5 -0 GEPA_COAST_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1009 7 5 -0 GEPA_COAST_OTH_1AM $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 5 -0 GEPA_COAST_OTH_1AS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 5 -0 GEPA_COAST_OTH_2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 5 -0 GEPA_COAST_OTH_2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 5 -0 GEPA_COAST_OTH_4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1009 8 5 -#0 GEPA_COAST_OTH_5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1009 9 5 -0 GEPA_COAST_OTH_6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 5 -)))GEPA +# - Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, +# Hier=5 to add to GFEI; mask=1009) ### +#============================================================================== +(((GHGI_v2 +### Oil ### +0 GHGI_OIL_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Exploration 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 51/1008 1 100 +0 GHGI_COAST_OIL_EXPLORATION - - - - - - CH4 51/1009 1 5 +0 GHGI_OIL_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Production 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 52/1008 1 100 +0 GHGI_COAST_OIL_PRODUCTION - - - - - - CH4 52/1009 1 5 +0 GHGI_OIL_REFINING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Refining 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 53/1008 1 100 +0 GHGI_COAST_OIL_REFINING - - - - - - CH4 53/1009 1 5 +0 GHGI_OIL_TRANSPORT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Transport 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 54/1008 1 100 +0 GHGI_COAST_OIL_TRANSPORT - - - - - - CH4 54/1009 1 5 + +### Gas ### +0 GHGI_GAS_DISTRIBUTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Distribution 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 2 100 +0 GHGI_COAST_GAS_DISTRIBUTION - - - - - - CH4 1009 2 5 +0 GHGI_GAS_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Exploration 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 55/1008 2 100 +0 GHGI_COAST_GAS_EXPLORATION - - - - - - CH4 55/1009 2 5 +0 GHGI_GAS_PROCESSING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Processing 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 2 100 +0 GHGI_COAST_GAS_PROCESSING - - - - - - CH4 1009 2 5 +0 GHGI_GAS_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Production 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 56/1008 2 100 +0 GHGI_COAST_GAS_PRODUCTION - - - - - - CH4 56/1009 2 5 +0 GHGI_GAS_TRANSMISSION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_TransmissionStorage 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 2 100 +0 GHGI_COAST_GAS_TRANSMISSION - - - - - - CH4 1009 2 5 + +### Coal ### +0 GHGI_COAL_UNDERGROUND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Underground_Coal 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAST_COAL_UNDERGROUND - - - - - - CH4 1009 3 5 +0 GHGI_COAL_SURFACE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Surface_Coal 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAST_COAL_SURFACE - - - - - - CH4 1009 3 5 +0 GHGI_COAL_ABANDONED $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Abandoned_Coal 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAST_COAL_ABANDONED - - - - - - CH4 1009 3 5 + +### Livestock ### +0 GHGI_LIVESTOCK_ENT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3A_Enteric_Fermentation 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 4 100 +0 GHGI_COAST_LIVESTOCK_ENT - - - - - - CH4 1009 4 1 +0 GHGI_LIVESTOCK_MAN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3B_Manure_Management 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 57/1008 4 100 +0 GHGI_COAST_LIVESTOCK_MAN - - - - - - CH4 57/1009 4 1 + +### Landfills ### +0 GHGI_LANDFILLS_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_Industrial 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 5 100 +0 GHGI_COAST_LANDFILLS_IND - - - - - - CH4 1009 5 1 +0 GHGI_LANDFILLS_MSW $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_MSW 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 5 100 +0 GHGI_COAST_LANDFILLS_MSW - - - - - - CH4 1009 5 1 +0 GHGI_LANDFILLS_COMP $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5B1_Composting 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 5 100 +0 GHGI_COAST_LANDFILLS_COMP - - - - - - CH4 1009 5 1 + +### Wastewater ### +0 GHGI_WASTEWATER_DOM $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Domestic 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 6 100 +0 GHGI_COAST_WASTEWATER_DOM - - - - - - CH4 1009 6 1 +0 GHGI_WASTEWATER_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Industrial 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 6 100 +0 GHGI_COAST_WASTEWATER_IND - - - - - - CH4 1009 6 1 + +### Rice ### +0 GHGI_RICE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3C_Rice_Cultivation 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 58/1008 7 100 +0 GHGI_COAST_RICE - - - - - - CH4 58/1009 7 1 + +### Other Anthro ### +0 GHGI_OTHER_MCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Mobile 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_MCOMB - - - - - - CH4 1009 8 1 +0 GHGI_OTHER_SCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Stationary 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 50/1008 8 100 +0 GHGI_COAST_OTHER_SCOMB - - - - - - CH4 50/1009 8 1 +0 GHGI_OTHER_PIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2B8_Industry_Petrochemical 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_PIND - - - - - - CH4 1009 8 1 +0 GHGI_OTHER_FIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2C2_Industry_Ferroalloy 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_FIND - - - - - - CH4 1009 8 1 +0 GHGI_OTHER_BURN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3F_Field_Burning 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 59/1008 8 100 +0 GHGI_COAST_OTHER_BURN - - - - - - CH4 59/1009 8 1 +0 GHGI_OTHER_ABOG $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2ab_Abandoned_Oil_Gas 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_ABOG - - - - - - CH4 1009 8 1 +)))GHGI_v2 + +#======================================================================================= +# --- CH4: Gridded GHGI v2 Express Extension (Maasakkers et al., submitted to ES&T, 2023) --- +# +# NOTES: +# - Based off the US GHGI published in 2022. +# - Uses annual source-specific spatial patterns from 2012-2018 from the main +# dataset to quickly incorporate more recent national methane emission estimates. +# - Emissions for years after 2018 follow the 2018 spatial patterns. +# - Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, +# Hier=5 to add to GFEI; mask=1009) ### +#======================================================================================= +(((GHGI_v2_Express_Ext +(((.not.GHGI_v2 +### Oil ### +0 GHGI_EE_OIL_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Exploration 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 51/1008 1 100 +0 GHGI_EE_COAST_OIL_EXPLORATION - - - - - - CH4 51/1009 1 5 +0 GHGI_EE_OIL_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Production 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 52/1008 1 100 +0 GHGI_EE_COAST_OIL_PRODUCTION - - - - - - CH4 52/1009 1 5 +0 GHGI_EE_OIL_REFINING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Refining 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 53/1008 1 100 +0 GHGI_EE_COAST_OIL_REFINING - - - - - - CH4 53/1009 1 5 +0 GHGI_EE_OIL_TRANSPORT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Transport 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 54/1008 1 100 +0 GHGI_EE_COAST_OIL_TRANSPORT - - - - - - CH4 54/1009 1 5 + +### Gas ### +0 GHGI_EE_GAS_DISTRIBUTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Distribution 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_EE_COAST_GAS_DISTRIBUTION - - - - - - CH4 1009 2 5 +0 GHGI_EE_GAS_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Exploration 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 55/1008 2 100 +0 GHGI_EE_COAST_GAS_EXPLORATION - - - - - - CH4 55/1009 2 5 +0 GHGI_EE_GAS_PROCESSING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Processing 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_EE_COAST_GAS_PROCESSING - - - - - - CH4 1009 2 5 +0 GHGI_EE_GAS_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Production 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 56/1008 2 100 +0 GHGI_EE_COAST_GAS_PRODUCTION - - - - - - CH4 56/1009 2 5 +0 GHGI_EE_GAS_TRANSMISSION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_TransmissionStorage 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_EE_COAST_GAS_TRANSMISSION - - - - - - CH4 1009 2 5 +0 GHGI_EE_GAS_POSTMETER $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_Supp_1B2b_PostMeter 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 + +### Coal ### +0 GHGI_EE_COAL_UNDERGROUND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Underground_Coal 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_EE_COAST_COAL_UNDERGROUND - - - - - - CH4 1009 3 5 +0 GHGI_EE_COAL_SURFACE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Surface_Coal 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_EE_COAST_COAL_SURFACE - - - - - - CH4 1009 3 5 +0 GHGI_EE_COAL_ABANDONED $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Abandoned_Coal 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_EE_COAST_COAL_ABANDONED - - - - - - CH4 1009 3 5 + +### Livestock ### +0 GHGI_EE_LIVESTOCK_ENT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3A_Enteric_Fermentation 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 4 100 +0 GHGI_EE_COAST_LIVESTOCK_ENT - - - - - - CH4 1009 4 1 +0 GHGI_EE_LIVESTOCK_MAN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3B_Manure_Management 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 57/1008 4 100 +0 GHGI_EE_COAST_LIVESTOCK_MAN - - - - - - CH4 57/1009 4 1 + +### Landfills ### +0 GHGI_EE_LANDFILLS_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_Industrial 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_COAST_LANDFILLS_IND - - - - - - CH4 1009 5 1 +0 GHGI_EE_LANDFILLS_MSW $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_MSW 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_COAST_LANDFILLS_MSW - - - - - - CH4 1009 5 1 +0 GHGI_EE_LANDFILLS_COMP $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5B1_Composting 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_COAST_LANDFILLS_COMP - - - - - - CH4 1009 5 1 + +### Wastewater ### +0 GHGI_EE_WASTEWATER_DOM $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Domestic 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 6 100 +0 GHGI_EE_COAST_WASTEWATER_DOM - - - - - - CH4 1009 6 1 +0 GHGI_EE_WASTEWATER_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Industrial 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 6 100 +0 GHGI_EE_COAST_WASTEWATER_IND - - - - - - CH4 1009 6 1 + +### Rice ### +0 GHGI_EE_RICE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3C_Rice_Cultivation 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 58/1008 7 100 +0 GHGI_EE_COAST_RICE - - - - - - CH4 58/1009 7 1 + +### Other Anthro ### +0 GHGI_EE_OTHER_MCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Mobile 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_MCOMB - - - - - - CH4 1009 8 1 +0 GHGI_EE_OTHER_SCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Stationary 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 50/1008 8 100 +0 GHGI_EE_COAST_OTHER_SCOMB - - - - - - CH4 50/1009 8 1 +0 GHGI_EE_OTHER_PIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2B8_Industry_Petrochemical 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_PIND - - - - - - CH4 1009 8 1 +0 GHGI_EE_OTHER_FIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2C2_Industry_Ferroalloy 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_FIND - - - - - - CH4 1009 8 1 +0 GHGI_EE_OTHER_BURN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3F_Field_Burning 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 59/1008 8 100 +0 GHGI_EE_COAST_OTHER_BURN - - - - - - CH4 59/1009 8 1 +0 GHGI_EE_OTHER_ABOG $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2ab_Abandoned_Oil_Gas 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_ABOG - - - - - - CH4 1009 8 1 +))).not.GHGI_v2 +)))GHGI_v2_Express_Ext #============================================================================== # --- CH4: Mexico emissions (Scarpelli et. al, Environ. Res. Lett., 2020) --- # # NOTES: # - Use Hier=100 to add to Canada and USA regional inventories +# - Make sure to include offshore/coastal emissions +# (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) #============================================================================== (((Scarpelli_Mexico 0 MEX_OIL $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 1 100 +0 MEX_OIL_COAST - - - - - - CH4 1010 1 5 0 MEX_GAS $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 2 100 +0 MEX_GAS_COAST - - - - - - CH4 1010 2 5 0 MEX_COAL $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 3 100 +0 MEX_COAL_COAST - - - - - - CH4 1010 3 5 0 MEX_LIVESTOCK_A $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 4 100 +0 MEX_LIVESTOCK_A_COAST - - - - - - CH4 1010 4 1 0 MEX_LIVESTOCK_B $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1001 4 100 +0 MEX_LIVESTOCK_B_COAST - - - - - - CH4 10/1010 4 1 0 MEX_LANDFILLS $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 5 100 +0 MEX_LANDFILLS_COAST - - - - - - CH4 1010 5 1 0 MEX_WASTEWATER $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 6 100 +0 MEX_WASTEWATER_COAST - - - - - - CH4 1010 6 1 0 MEX_RICE $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1001 7 100 +0 MEX_RICE_COAST - - - - - - CH4 11/1010 7 1 0 MEX_OTHER $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 8 100 - -### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) ### -0 MEX_OIL_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 1 5 -0 MEX_GAS_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 2 5 -0 MEX_COAL_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 3 5 -0 MEX_LIVESTOCK_A_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 4 1 -0 MEX_LIVESTOCK_B_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1010 4 1 -0 MEX_LANDFILLS_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 5 1 -0 MEX_WASTEWATER_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 6 1 -0 MEX_RICE_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1010 7 1 -0 MEX_OTHER_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 8 1 +0 MEX_OTHER_COAST - - - - - - CH4 1010 8 1 )))Scarpelli_Mexico #============================================================================== @@ -247,26 +375,26 @@ Mask fractions: false # # NOTES: # - Use Hier=100 to add to USA and Mexico regional inventories +# - Make sure to include offshore/coastal emissions +# (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) #============================================================================== (((Scarpelli_Canada -0 CAN_OIL_GAS_COMBUSTION $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_OIL_GAS_LEAKAGE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_OIL_GAS_VENT_FLARE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_COAL $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1002 3 100 -0 CAN_LIVESTOCK $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1002 4 100 -0 CAN_SOLID_WASTE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1002 5 100 -0 CAN_WASTEWATER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1002 6 100 -0 CAN_OTHER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1002 8 100 - -### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) ### -0 CAN_OIL_GAS_COMBUSTION_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 -0 CAN_OIL_GAS_LEAKAGE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 -0 CAN_OIL_GAS_VENT_FLARE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 -0 CAN_COAL_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1011 3 5 -0 CAN_LIVESTOCK_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1011 4 1 -0 CAN_SOLID_WASTE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1011 5 1 -0 CAN_WASTEWATER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1011 6 1 -0 CAN_OTHER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1011 8 1 +0 CAN_OIL_GAS_COMBUSTION $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_COMBUSTION_COAST - - - - - - CH4 1011 1/2 5 +0 CAN_OIL_GAS_LEAKAGE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_LEAKAGE_COAST - - - - - - CH4 1011 1/2 5 +0 CAN_OIL_GAS_VENT_FLARE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_VENT_FLARE_COAST - - - - - - CH4 1011 1/2 5 +0 CAN_COAL $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1002 3 100 +0 CAN_COAL_COAST - - - - - - CH4 1011 3 5 +0 CAN_LIVESTOCK $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1002 4 100 +0 CAN_LIVESTOCK_COAST - - - - - - CH4 1011 4 1 +0 CAN_SOLID_WASTE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1002 5 100 +0 CAN_SOLID_WASTE_COAST - - - - - - CH4 1011 5 1 +0 CAN_WASTEWATER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1002 6 100 +0 CAN_WASTEWATER_COAST - - - - - - CH4 1011 6 1 +0 CAN_OTHER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1002 8 100 +0 CAN_OTHER_COAST - - - - - - CH4 1011 8 1 )))Scarpelli_Canada #============================================================================== @@ -281,54 +409,69 @@ Mask fractions: false )))GFEIv2 #============================================================================== -# --- CH4: EDGAR v6.0 emissions, various sectors --- -#============================================================================== -(((EDGARv6 -0 CH4_OIL__1B2a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_OIL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 1 1 -0 CH4_OIL__1B2c $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_GAS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CH4_COAL__1B1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_COAL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 3 1 -0 CH4_LIVESTOCK__4A $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CH4_LIVESTOCK__4B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_MNM.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CH4_LANDFILLS__6A_6D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_LDF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 5 1 -0 CH4_WASTEWATER__6B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_WWT.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 6 1 -0 CH4_RICE__4C_4D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AGS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 7 1 -0 CH4_OTHER__1A1_1B1_1B2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_REF_TRF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IND.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_CDS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CDS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_CRS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CRS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_LTO $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_LTO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3b $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TRO_noRES.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3c_1A3e $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Other.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3d_1C2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Ship.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A4 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_RCO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__2B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_CHE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__2C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IRO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__4F $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AWB.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__6C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_INC.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -)))EDGARv6 +# --- CH4: EDGAR v8.0 emissions --- +#============================================================================== +(((EDGARv8 +### Oil ### +0 EDGAR8_CH4_PRO_OIL $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_PRO_OIL_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 1 1 +0 EDGAR8_CH4_REF_TRF $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_REF_TRF_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 1 1 + +### Gas ### +0 EDGAR8_CH4_PRO_GAS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_PRO_GAS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 2 1 + +### Coal ### +0 EDGAR8_CH4_PRO_COAL $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_PRO_COAL_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 3 1 + +### Livestock ### +0 EDGAR8_CH4_ENF $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_ENF_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 4 1 +0 EDGAR8_CH4_MNM $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_MNM_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 4 1 + +### Landfills ### +0 EDGAR8_CH4_SWD_LDF $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_SWD_LDF_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 5 1 + +### Wastewater ### +0 EDGAR8_CH4_WWT $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_WWT_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 6 1 + +### Rice ### +0 EDGAR8_CH4_AGS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_AGS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 7 1 + +### Other Anthro ### +0 EDGAR8_CH4_ENE $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_ENE_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_IND $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_IND_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Aviation_CDS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Aviation_CDS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Aviation_CRS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Aviation_CRS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Aviation_LTO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Aviation_LTO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TRO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TRO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Other $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Other_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Ship $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Ship_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_RCO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_RCO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_CHE $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_CHE_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_IRO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_IRO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_AWB $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_AWB_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_SWD_INC $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_SWD_INC_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +)))EDGARv8 #============================================================================== # --- CH4: CEDS (historical) or Shared Socioeconomic Pathways (future) --- #============================================================================== (((CMIP6_SFC_LAND_ANTHRO -0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 5 1 +0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 4 1 +0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 +0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 +0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 5 1 )))CMIP6_SFC_LAND_ANTHRO (((CMIP6_SHIP -0 CMIP6_CH4_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_shp 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_shp 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 )))CMIP6_SHIP #============================================================================== # --- CH4: BB4MIPs historical / SSP future biomass burning inventories --- #============================================================================== (((BB4MIPS -0 CMIP6_BB_CH4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_bbn 1750-2015/1-12/1/0 C xyL=1:PBL kg/m2/s CH4 75 9 1 +0 CMIP6_BB_CH4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_bbn 1750-2015/1-12/1/0 C xyL=1:PBL kg/m2/s CH4 75 9 1 )))BB4MIPS #============================================================================== @@ -341,17 +484,13 @@ Mask fractions: false 0 QFED_CH4 $ROOT/CH4/v2017-10/QFED/QFEDv2.4r8.emis_ch4.$YYYY.nc emi_ch4 2009-2015/1-12/1-31/0 C xy molec/cm2/s CH4 - 9 2 )))QFED2 -# --- Updated GFED4 biomass burning --- -# Emissions thru 2019 (cf Yuzhong Zhang) -(((UPDATED_GFED4 -0 UPDATED_GFED4_CH4 $ROOT/CH4/v2020-09/GFED/GFED4_CH4_FIRE_$YYYY.nc emi_ch4 2009-2019/1-12/1-31/0 C xy molec/cm2/s CH4 - 9 3 -)))UPDATED_GFED4 - #============================================================================== # --- CH4: JPL WetCHARTs v1.0 (Bloom et al., https://doi.org/10.3334/ORNLDAAC/1502) --- +# +# Use updated files (v2024-01); these are COARDS-compliant. #============================================================================== (((JPL_WETCHARTS -0 JPLW_CH4 $ROOT/CH4/v2020-09/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc emi_ch4 2010-2019/1-12/1/0 C xy molec/cm2/s CH4 - 10 1 +0 JPLW_CH4 $ROOT/CH4/v2024-01/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc emi_ch4 2010-2019/1-12/1/0 C xy molec/cm2/s CH4 - 10 1 )))JPL_WETCHARTS #============================================================================== @@ -365,9 +504,19 @@ Mask fractions: false # --- CH4: Emissions from Lakes (Maasakkers et al., 2019) --- #============================================================================== (((LAKES -0 CH4_LAKES $ROOT/CH4/v2017-10/Lakes/Maasakkers_Lakes_$YYYY.01x01.nc emi_ch4 $YYYY/1-12/1/0 C xy molec/cm2/s CH4 - 12 1 +0 CH4_LAKES $ROOT/CH4/v2022-11/Lakes/Maasakkers_Lakes_$YYYY.01x01.nc emi_ch4 $YYYY/1-12/1/0 C xy molec/cm2/s CH4 - 12 1 )))LAKES +#============================================================================== +# --- Emissions from Hydroelectric Reservoirs (Delwich et al., 2022) --- +# +# Use updated files (v2024-01); these are COARDS-compliant. +#============================================================================== +(((RESERVOIRS +0 CH4_RES_DAM $ROOT/CH4/v2024-01/ResME/ResME_Dam_Emissions.0.1x0.1.nc CH4emis 2022/1/1/0 C xy kg/m2/s CH4 - 15 1 +0 CH4_RES_SFC $ROOT/CH4/v2024-01/ResME/ResME_Surface_Emissions.0.1x0.1.nc CH4emis 2022/1/1/0 C xy kg/m2/s CH4 - 15 1 +)))RESERVOIRS + #============================================================================== # --- CH4: Soil absorption & termites from Fung et al, 1991 --- # @@ -375,8 +524,6 @@ Mask fractions: false # - Multiply soil absorption by -1 to get a "negative" flux. # (Only apply the scaling factor when adding to the total CH4 simulation) # - Use updated soil absorption emissions with seasonality applied -# - For tagged CH4 simulations soil absorption is treated as a loss and applied -# in mixing_mod.F #============================================================================== (((FUNG_TERMITES 0 CH4_TERMITES $ROOT/CH4/v2022-11/4x5/termites.geos.4x5.nc CH4 1985/1/1/0 C xy kg/m2/s CH4 - 13 1 @@ -417,6 +564,8 @@ Mask fractions: false 0 RCP85_CH4 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_CH4_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH4 - 1 1 )))RCP_85 +))).not.UseTotalPriorEmis + )))USE_CH4_DATA #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -450,22 +599,22 @@ Mask fractions: false # aren't included in the Tier 1 CAPS file/ #============================================================================== (((NEI2016_MONMEAN -0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__c1c2CO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__c3CO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__pteguCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__ptogCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__ptnonipmCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 )))NEI2016_MONMEAN #============================================================================== @@ -521,13 +670,13 @@ Mask fractions: false # EDGAR, HTAP or CMIP6_SFC_LAND_ANTHRO for the global base emissions %%% #============================================================================== (((CEDSv2 -0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 26/37/35/315 1 5 -0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 26/316 1 5 -0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 2401 1 5 +0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2406/706/315 1 5 +0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2407/707/316 1 5 +0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 2411/711 1 5 +0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 2409/709 1 5 +0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 2407/707 1 5 +0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 )))CEDSv2 #============================================================================== @@ -545,10 +694,13 @@ Mask fractions: false (((CEDS_GBDMAPS >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS.rc )))CEDS_GBDMAPS + (((CEDS_GBDMAPS_byFuelType -(((.not.CEDS_GBDMAPS.and..not.CEDSv2 +(((.not.CEDS_GBDMAPS +(((.not.CEDSv2 >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS_byFuelType.rc -))).not.CEDS_GBDMAPS.and..not.CEDSv2 +))).not.CEDSv2 +))).not.CEDS_GBDMAPS )))CEDS_GBDMAPS_byFuelType #============================================================================== @@ -556,26 +708,26 @@ Mask fractions: false # CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with # the CMIP6 simulation experimental design. # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS #============================================================================== (((CMIP6_SFC_LAND_ANTHRO -0 CMIP6_CO_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 )))CMIP6_SFC_LAND_ANTHRO #============================================================================== # CO: CEDS (historical) or Shared Socioeconomic Pathways (future) aircraft # emissions, consistent with the CMIP6 simulation experimental design # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS #============================================================================== (((CMIP6_AIRCRAFT -0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO 26 20 1 +0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO 26 20 1 )))CMIP6_AIRCRAFT #============================================================================== @@ -625,10 +777,10 @@ Mask fractions: false # CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with # the CMIP6 simulation experimental design. # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS #============================================================================== (((CMIP6_SHIP -0 CMIP6_CO_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_shp 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 10 5 +0 CMIP6_CO_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_shp 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 10 5 )))CMIP6_SHIP )))SHIP @@ -683,7 +835,7 @@ Mask fractions: false # --- BB4MIPs --- (((BB4MIPS -0 CMIP6_BB_CO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CO 75 5 3 +0 CMIP6_BB_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CO 75 5 3 )))BB4MIPS )))USE_CO_DATA @@ -774,7 +926,7 @@ Mask fractions: false )))ICOADS_SHIP (((CEDSv2_SHIP -0 CEDS_CO2_SHP $ROOT/CEDS/v2018-08/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_shp 1750-2014/1-12/1/0 C xy kg/m2/s CO2 - 6 1 +0 CEDS_CO2_SHP $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_shp 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 6 1 )))CEDSv2_SHIP )))SHIP @@ -859,27 +1011,24 @@ Mask fractions: false # --- GFED biomass burning emissions (Extension 111) # NOTE: These are the base emissions in kgDM/m2/s. #============================================================================== -(((USE_CH4_DATA.or.USE_CO2_DATA (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2010-2023/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2010-2023/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 -)))USE_CH4_DATA.or.USE_CO2_DATA - )))EMISSIONS ############################################################################### @@ -895,7 +1044,7 @@ Mask fractions: false #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- @@ -918,7 +1067,7 @@ Mask fractions: false # --- GEOS-Chem boundary condition file --- #============================================================================== (((GC_BCs -* BC_ $ROOT/SAMPLE_BCs/v2021-07/CH4/GEOSChem.BoundaryConditions.$YYYY$MM$DD_0000z.nc4 SpeciesBC_?ADV? 1980-2021/1-12/1-31/* EFY xyz 1 * - 1 1 +* BC_ $ROOT/SAMPLE_BCs/v2021-07/CH4/GEOSChem.BoundaryConditions.$YYYY$MM$DD_0000z.nc4 SpeciesBC_?ADV? 1900-2100/1-12/1-31/* EFY xyz 1 * - 1 1 )))GC_BCs #============================================================================== @@ -1096,36 +1245,10 @@ Mask fractions: false #------------------------------------------------------------------------------ # --- Files needed for analytical inversion --- -# -# These fields are are only used if analytical_inversion?' is activated in -# geoschem_config.yml. These fields are obtained from HEMCO and applied in -# GEOS-Chem/GeosCore/global_ch4_mod.F90. -# -# Entries below provided for examples only. Add your own here! -#------------------------------------------------------------------------------ -(((AnalyticalInv - -# State vector file -* CH4_STATE_VECTOR StateVector.nc StateVector 2009/1/1/0 C xy 1 * - 1 1 - -)))AnalyticalInv - #------------------------------------------------------------------------------ -# --- Scale factors for posterior run --- -# -# Enable emission scale factors by setting the use_emission_scale_factor or -# use_OH_scale_factor options to true in geoschem_config.yml. These fields are -# obtained from HEMCO and applied in GEOS-Chem/GeosCore/global_ch4_mod.F90. -# -# Entries below are provided for examples only. Add your own here! -#------------------------------------------------------------------------------ -(((Emis_ScaleFactor -* EMIS_SF gridded_posterior.nc ScaleFactor 2000/1/1/0 C xy 1 * - 1 1 -)))Emis_ScaleFactor - -(((OH_ScaleFactor -* OH_SF Post_SF_OH.nc SF_OH 2010-2017/1/1/0 E xy 1 * - 1 1 -)))OH_ScaleFactor +(((AnalyticalInversion +* CH4_STATE_VECTOR StateVector.nc StateVector 2009/1/1/0 C xy 1 * - 1 1 +)))AnalyticalInversion )))USE_CH4_DATA @@ -1136,49 +1259,44 @@ Mask fractions: false #------------------------------------------------------------------------------ # --- Global OH fields --- -# -# If GLOBAL_OH_GCv5 is turned on: -# - Use GEOS-Chem v5-07 OH if GLOBAL_OH_GCv5 is turned on. -# - This is the recommended setting for CH4 and the IMI. -# -# If GLOBAL_OH_GCv5 is turned off: -# - Use the OH archived from the last 10-yr benchmark simulation. #------------------------------------------------------------------------------ -(((GLOBAL_OH - -# --- OH from GEOS-Chem v5-07 [kg/m3] --- +# --- OH from GEOS-Chem v5-07 [kg/m3], needed for CH4/IMI --- (((GLOBAL_OH_GCv5 -* GLOBAL_OH $ROOT/OH/v2014-09/v5-07-08/OH_3Dglobal.geos5.47L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * - 1 1 + +(((OH_PosteriorSF +* GLOBAL_OH $ROOT/OH/v2022-11/v5-07-08/OH_3Dglobal.geos5.72L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * 2/4 1 1 +)))OH_PosteriorSF + +(((.not.OH_PosteriorSF +* GLOBAL_OH $ROOT/OH/v2022-11/v5-07-08/OH_3Dglobal.geos5.72L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * 2 1 1 +))).not.OH_PosteriorSF + )))GLOBAL_OH_GCv5 -# --- OH from the last 10-yr benchmark [mol/mol dry air] --- +# --- OH from the last 10-yr benchmark [mol/mol dry] --- +(((GLOBAL_OH_GC14 (((.not.GLOBAL_OH_GCv5 ${RUNDIR_GLOBAL_OH} ))).not.GLOBAL_OH_GCv5 - -)))GLOBAL_OH +)))GLOBAL_OH_GC14 #------------------------------------------------------------------------------ # --- Quantities needed for CH4 chemistry --- #------------------------------------------------------------------------------ -(((USE_CH4_DATA -# --- Global CH4 loss, Cl fields for CH4 simulation [1/s] ----------- -(((GMI_CH4_LOSS +# --- Global CH4 loss frequencies [1/s] ----------- +(((CH4_LOSS_FREQ ${RUNDIR_CH4_LOSS} -)))GMI_CH4_LOSS +)))CH4_LOSS_FREQ -# --- Cl from the last 10-yr benchmark [mol/mol dry air] --- +# --- Global Cl [mol/mol dry air] --- (((GLOBAL_CL ${RUNDIR_GLOBAL_Cl} )))GLOBAL_CL -)))USE_CH4_DATA - #------------------------------------------------------------------------------ # --- Quantities needed for CO chemistry --- #------------------------------------------------------------------------------ -(((USE_CO_DATA # -- P(CO) from CH4 and NMVOC from the last 10-yr benchmark [molec/cm3/s] --- (((PROD_CO_CH4 @@ -1190,13 +1308,21 @@ ${RUNDIR_PCO_NMVOC} # --- GMI chemistry: prod/loss rates (for strato-/mesosphere) --- # --- Units: prod [v/v/s]; loss [1/s] --- +(((USE_CO_DATA (((GMI_PROD_LOSS -${RUNDIR_GMI_LOSS_CO} -${RUNDIR_GMI_PROD_CO} +* GMI_LOSS_CO $ROOT/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CO - 1 1 +* GMI_PROD_CO $ROOT/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CO - 1 1 )))GMI_PROD_LOSS - )))USE_CO_DATA +# If CO is not an advected species, then just read as a chemistry input +(((.not.USE_CO_DATA +(((GMI_PROD_LOSS +* GMI_LOSS_CO $ROOT/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 * - 1 1 +* GMI_PROD_CO $ROOT/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s * - 1 1 +)))GMI_PROD_LOSS +))).not.USE_CO_DATA + #------------------------------------------------------------------------------ # --- Quantities needed for CO2 chemistry --- #------------------------------------------------------------------------------ @@ -1204,12 +1330,11 @@ ${RUNDIR_GMI_PROD_CO} # --- CHEMICAL PRODUCTION FROM CO OXIDATION ------ # --- Recommended for use in forward modelling --- # --- Optional for inversion/assimilation -------- -(((USE_CO2_DATA +(((USE_CO2_DATA (((CO2_COPROD ${RUNDIR_CO2_COPROD} )))CO2_COPROD - )))USE_CO2_DATA )))CHEMISTRY_INPUT @@ -1222,100 +1347,214 @@ ${RUNDIR_CO2_COPROD} # ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper -(((EMISSIONS - -#============================================================================== +#------------------------------------------------------------------------------ # --- Multiply by -1 to get a "negative" flux. -#============================================================================== +#------------------------------------------------------------------------------ 1 NEGATIVE -1.0 - - - xy 1 1 +#------------------------------------------------------------------------------ +# --- Perturbation factors --- +# +# Add factors to perturb OH, emissions, and other fields here for +# analytical inversions. +#------------------------------------------------------------------------------ +2 OH_pert_factor 1.0 - - - xy 1 1 + #============================================================================== -# --- Seasonal scaling factors ---- +# --- Scale factors for posterior run --- +# +# Enable emission scale factors by setting the use_emission_scale_factor or +# use_OH_scale_factor options to true in geoschem_config.yml. These fields are +# obtained from HEMCO and applied in GEOS-Chem/GeosCore/global_ch4_mod.F90. +# +# Entries below are provided for examples only. Add your own here! #============================================================================== -(((EDGARv6.or.GEPA -10 MANURE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Manure_ScalingFactors.WithClimatology.nc sf_ch4 2008-2016/1-12/1/0 C xy 1 1 -11 RICE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Rice_ScalingFactors.SetMissing.nc sf_ch4 2012/1-12/1/0 C xy 1 1 -)))EDGARv6.or.GEPA +(((Emis_PosteriorSF +3 EMIS_SF gridded_posterior.nc ScaleFactor 2000/1/1/0 C xy 1 1 +)))Emis_PosteriorSF + +(((OH_PosteriorSF +4 OH_SF Post_SF_OH.nc SF_OH 2010-2017/1/1/0 C xy 1 1 +)))OH_PosteriorSF #============================================================================== -# --- Diurnal scale factors --- +# --- Scale factors for analytical inversions --- #============================================================================== -26 GEIA_TOD_FOSSIL 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy 1 1 +(((AnalyticalInversion + +# Add perturbations to individual state vector element (N) following this format +# Start scale factor ID at 2000 to avoid conflicts with other SFs/masks +#200N SCALE_ELEM_000N ./Perturbations.txt - - - xy count 1 + +)))AnalyticalInversion +(((EMISSIONS #============================================================================== -# --- Seasonal scale factors --- +# --- Scale factors for CH4 emissions ---- #============================================================================== -(((DICE_Africa -# from GEIA: -30 GEIA_SEASON_NOX $ROOT/GEIA/v2014-07/GEIA_monthscal.generic.1x1.nc NOXrat 1985/1-12/1/0 C xy unitless 1 -31 GEIA_SEASON_SO2 $ROOT/GEIA/v2014-07/GEIA_monthscal.generic.1x1.nc SO2rat 1985/1-12/1/0 C xy unitless 1 -)))DICE_Africa +(((USE_CH4_DATA + +#------------------------------------------------------------------------------ +# --- GHGI monthly scaling factors --- +#------------------------------------------------------------------------------ +(((GHGI_v2.or.GHGI_v2_Express_Ext +50 GHGI_OTH_STA_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1A_Combustion_Stationary 2012-2018/1-12/1/0 C xy 1 1 +51 GHGI_OIL_EXP_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Exploration 2012-2018/1-12/1/0 C xy 1 1 +52 GHGI_OIL_PRD_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Production 2012-2018/1-12/1/0 C xy 1 1 +53 GHGI_OIL_REF_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Refining 2012-2018/1-12/1/0 C xy 1 1 +54 GHGI_OIL_TRA_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Transport 2012-2018/1-12/1/0 C xy 1 1 +55 GHGI_GAS_EXP_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2b_Natural_Gas_Exploration 2012-2018/1-12/1/0 C xy 1 1 +56 GHGI_GAS_PRD_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2b_Natural_Gas_Production 2012-2018/1-12/1/0 C xy 1 1 +57 GHGI_LIV_MAN_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_3B_Manure_Management 2012-2018/1-12/1/0 C xy 1 1 +58 GHGI_RIC_CUL_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_3C_Rice_Cultivation 2012-2018/1-12/1/0 C xy 1 1 +59 GHGI_OTH_BUR_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_3F_Field_Burning 2012-2018/1-12/1/0 C xy 1 1 +)))GHGI_v2.or.GHGI_v2_Express_Ext + +#------------------------------------------------------------------------------ +# --- Scarpelli et al Mexico manure & rice scale factors --- +#------------------------------------------------------------------------------ +(((Scarpelli_Mexico +10 MANURE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Manure_ScalingFactors.WithClimatology.nc sf_ch4 2008-2016/1-12/1/0 C xy 1 1 +11 RICE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Rice_ScalingFactors.SetMissing.nc sf_ch4 2012/1-12/1/0 C xy 1 1 +)))Scarpelli_Mexico + +)))USE_CH4_DATA #============================================================================== -# Diurnal variablity of Chinese power plants from Liu et al. (EST, 2019) +# --- Scale factors for CO2 emissions --- #============================================================================== -33 PKU_pow_NOx 0.94/0.93/0.93/0.92/0.93/0.96/0.98/0.99/0.98/1.00/1.05/1.03/1.01/1.04/1.05/1.05/1.07/1.06/1.05/1.05/1.03/1.01/0.99/0.96 - - - xy unitless 1 1009 -34 PKU_pow_SO2 0.92/0.91/0.90/0.89/0.90/0.93/0.97/0.98/0.99/1.02/1.07/1.04/1.03/1.06/1.06/1.07/1.10/1.10/1.06/1.05/1.03/1.01/0.99/0.93 - - - xy unitless 1 1009 -35 PKU_pow_PM_BC_POC_VOC_CO 0.95/0.93/0.92/0.91/0.90/0.93/0.97/0.97/0.99/1.03/1.04/1.03/1.02/1.03/1.05/1.07/1.07/1.07/1.06/1.04/1.03/1.02/1.00/0.97 - - - xy unitless 1 2009 +(((USE_CO2_DATA -### These scale factors undo (Oper=-1) the global diurnal scale factors over China (Mask=1009) -#36 EDGAR_TODNOX_UNDO $ROOT/EDGARv42/v2015-02/NO/EDGAR_hourly_NOxScal.nc NOXscale 2000/1/1/* C xy unitless -1 2009 -37 GEIA_TOD_FOSSIL_UNDO 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy unitless -1 2009 +#------------------------------------------------------------------------------ +# --- FOSSIL FUEL CO2 SURFACE CORRECTION FACTOR --- +# +# Fossil fuel CO2 emissions must be scaled down to avoid counting emissions +# already accounted for by CO and CH4 oxidation to CO2. +# +# The necssary annual reduction in emissions related to fossil fuels is +# determined as: global C mass from FF (CO+CH4) / global C mass from FF CO2 +# +# Note: GEOS-Chem v8-03-02 to v9-02, assumed: 0.0489 for all years but that +# value seems to correspond to mid-1980s fossil fuel combustion since CO +# emissions have held constant (Granier et al., 2011) while CO2 has risen. +# +# All scale factors for years 2000-2013 lumped into a single entry +#------------------------------------------------------------------------------ +(((CO2CORR +#410 CO2_FOSSFUEL_CORR 0.0489 - - - xy 1 1 + +## CO2 scale factors from CO oxidation by decade (comment out for now) +##410 CO2_FOSSFUEL_CORR 0.052815/0.054486/0.054902/0.055107/0.053166/0.051611/0.050065/0.048803/0.047060/0.046041 - 1980-1989/1/1/0 C xy 1 1 +##410 CO2_FOSSFUEL_CORR 0.045816/0.045153/0.045541/0.045556/0.044800/0.043875/0.042910/0.042206/0.042257/0.042468 - 1990-1999/1/1/0 C xy 1 1 +##410 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118 - 2000-2009/1/1/0 C xy 1 1 +##410 CO2_FOSSFUEL_CORR 0.030622/0.029674/0.029029/0.028355 - 2010-2013/1/1/0 C xy 1 1 + +410 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118/0.030622/0.029674/0.029029/0.028355 - 2000-2013/1/1/0 C xy 1 1 +)))CO2CORR + +# ----------------------------------------------------------------------------- +# --- CO2 conversion factors --- +# ----------------------------------------------------------------------------- +420 CH4TOCO2 2.75 - - - xy 1 1 +421 CTOCO2 3.6667 - - - xy 1 1 +430 NMHCSCALE 0.3333 - - - xy 1 1 + +#------------------------------------------------------------------------------ +# --- National fossil fuel CO2 scale factors (Nassar et al, 2013) --- +#------------------------------------------------------------------------------ +(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +440 CO2_DIURNAL $ROOT/CO2/v2015-04/FOSSIL/TIMES_diurnal_scale_factors.nc diurnal_scale_factors 2006/1/1/1-24 C xy 1 1 +441 CO2_WEEKLY $ROOT/CO2/v2015-04/FOSSIL/TIMES_weekly_scale_factors.nc weekly_scale_factors 2006/1/WD/0 C xy 1 1 +)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR + +#------------------------------------------------------------------------------ +# --- DOMESTIC AVIATION SURFACE CORRECTION FACTOR --- +# +# Regional scale factors slightly less than 1 remove surface contribution from +# domestic aviation in national fossil fuel emisisons, which should instead be +# counted in the air as a 3D field. This scale factor should be applied to the +# main/national fossil fuel emission field if using avaition emissions. +#------------------------------------------------------------------------------ +(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +480 AVIATION_SURF_CORR $ROOT/CO2/v2022-11/FOSSIL/Aviation_SurfCorr_SclFac.1x1.nc CO2 2004/1/1/0 C xy 1 1 +)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR + +)))USE_CO2_DATA #============================================================================== -# --- Scale factors used for species conversions --- +# --- Scale factors for CO emissions --- #============================================================================== +(((USE_CO_DATA -# VOC speciations +#------------------------------------------------------------------------------ +# --- Diurnal scale factors for CO --- +#------------------------------------------------------------------------------ +26 GEIA_TOD_FOSSIL 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy 1 1 + +#------------------------------------------------------------------------------ +# --- Diurnal variablity of Chinese power plants from Liu et al. (EST, 2019) --- +# +# Also need to undo (Oper=-1) the global diurnal scale factors over China +#------------------------------------------------------------------------------ +35 PKU_pow_PM_BC_POC_VOC_CO 0.95/0.93/0.92/0.91/0.90/0.93/0.97/0.97/0.99/1.03/1.04/1.03/1.02/1.03/1.05/1.07/1.07/1.07/1.06/1.04/1.03/1.02/1.00/0.97 - - - xy unitless 1 2009 +37 GEIA_TOD_FOSSIL_UNDO 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy unitless -1 2009 + +#------------------------------------------------------------------------------ +# --- Account for CO production by VOCs --- +#------------------------------------------------------------------------------ (((APEI.or.EDGARv43.or.DICE_Africa.or.QFED2 52 COPROD_FOSSIL 1.02 - - - xy unitless 1 54 COPROD_BIOMASS 1.05 - - - xy unitless 1 )))APEI.or.EDGARv43.or.DICE_Africa.or.QFED2 -# S to OCS ratio -70 StoOCS MATH:60.07/32.06 - - - xy unitless 1 +#------------------------------------------------------------------------------ +# --- DICE-Africa --- +# Charcoal production scale factor to reduce charcoal production +# by a factor of 5 after finding error in implementation of emission factors. +#------------------------------------------------------------------------------ +(((DICE_Africa +320 DICE_CP_SF 0.20 - - - xy 1 1 +)))DICE_Africa -# km-2 to m-2 -71 Km2ToM2 1.0e-6 - - - xy unitless 1 +#------------------------------------------------------------------------------ +# --- CO: HTAP Annual scale factors --- +#------------------------------------------------------------------------------ +(((HTAP +506 LIQFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985-2010/1/1/0 C xy 1 1 +507 LIQFUEL_1985 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985/1/1/0 C xy 1 -1 +509 LIQFUEL_2006 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2006/1/1/0 C xy 1 -1 +510 LIQFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2002/1/1/0 C xy 1 -1 +528 LIQFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2008-2010/1/1/0 C xy 1 -1 +)))HTAP -#============================================================================== -# --- QFED2 diurnal scale factors --- -# -# Fire diurnal scaling factors (% per hour) from WRAP Report to Project -# No. 178-6, July 2005 -#============================================================================== -(((QFED2.or.GFAS.or.BB4MIPS -75 QFED2_TOD 0.1392/0.1392/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.48/0.96/1.68/2.4/3.12/3.84/4.08/2.88/1.68/0.96/0.1368/0.1368/0.1368/0.1368/0.1368 - - - xy unitless 1 -)))QFED2.or.GFAS.or.BB4MIPS +)))USE_CO_DATA #============================================================================== -# --- EPA NEI day-of-week scale factors --- +# --- Scale factors for OCS emissions --- #============================================================================== -(((NEI2016_MONMEAN -211 NEI99_DOW_CO $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc CO 1999/1-12/WD/0 C xy 1 1 -)))NEI2016_MONMEAN +(((USE_OCS_DATA + +#------------------------------------------------------------------------------ +# --- S to OCS ratio --- +#------------------------------------------------------------------------------ +70 StoOCS MATH:60.07/32.06 - - - xy unitless 1 + +#------------------------------------------------------------------------------ +# --- km-2 to m-2 --- +#------------------------------------------------------------------------------ +71 Km2ToM2 1.0e-6 - - - xy unitless 1 + +)))USE_OCS_DATA + #============================================================================== -# --- EPA NEI2016 annual scale factors --- -# -# Annual scale factors were computed from the EPA Trends Report for Tier 1 CAPS -# (obtained 21 Sep 2021) using the "Total without wildfires" field. NH3 and -# PM2.5 only had values for 2002-2020, while the remaining species had yearly -# values for 1990-2020 (we include only 2002-2020 here). -# -# See NEI2016/v2021-06/national_tier1_caps+HEMCOscaling.xlsx for details. +# --- Inventory-specific scale factors --- #============================================================================== -(((NEI2016_MONMEAN -252 NEI2016_CO_YRSCALE 1.817/1.767/1.716/1.666/1.610/1.554/1.393/1.251/1.272/1.261/1.220/1.178/1.137/1.095/1.000/0.973/0.950/0.927/0.904 - 2002-2020/1/1/0 C xy 1 1 -)))NEI2016_MONMEAN -#============================================================================== +#------------------------------------------------------------------------------ # --- AEIC2019 aircraft emissions scale factors --- # # See http://geoschemdata.wustl.edu/ExtData/HEMCO/AEIC2019/v2022-03/AEIC_2019_technical_note.pdf -#============================================================================== -(((AEIC2019_DAILY.or.AEIC2019_MONMEAN - -#------------------------------------------------------------------------------ +# # Scaling factors for 1990-2019 derived from Lee et al. (2021). Lee et al. # (2021) only covers 1990 to 2018, so to get to 2019 it is assumed that the # growth from 2017 to 2018 is the same as that from 2018 to 2019. @@ -1333,6 +1572,9 @@ ${RUNDIR_CO2_COPROD} # # All scaling factors are included in here in HEMCO_Config.rc. #------------------------------------------------------------------------------ +(((AEIC2019_DAILY.or.AEIC2019_MONMEAN + +# If applying 1990-2019 scale factors (((AEIC_SCALE_1990_2019 241 AC_FBMULT 0.506/0.489/0.490/0.493/0.517/0.529/0.553/0.570/0.581/0.600/0.631/0.607/0.608/0.608/0.646/0.678/0.686/0.706/0.703/0.666/0.700/0.721/0.728/0.749/0.773/0.815/0.854/0.905/0.952/1.000 - 1990-2019/1/1/0 C xy 1 1 )))AEIC_SCALE_1990_2019 @@ -1342,116 +1584,84 @@ ${RUNDIR_CO2_COPROD} 241 AC_FBMULT 1.000000e+0 - - - xy 1 1 ))).not.AEIC_SCALE_1990_2019 -#------------------------------------------------------------------------------ # Assume 3.159 kg CO2 from every kg of fuel burned # cf Hileman, Stratton, & Donohoo, _J. Propul. Power_, 26(6), 1184–1196, 2010. -#------------------------------------------------------------------------------ 260 AEIC19_FBtoCO2 3.159 - - - xy unitless 1 )))AEIC2019_DAILY.or.AEIC2019_MONMEAN -#============================================================================== -# --- GFAS scale factors --- -#============================================================================== -(((GFAS -300 GFAS_EMITL $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc mami 2003-2021/1-12/1-31/0 C xy m 1 -)))GFAS - -#============================================================================== -# --- QFED vertical partitioning --- -# Following Fischer et al. (2014) and Travis et al. (2016), emit 35% of QFED -# emissions above the PBL. -#============================================================================== -(((QFED2 -311 QFED_PBL_FRAC 0.65 - - - xy 1 1 -312 QFED_FT_FRAC 0.35 - - - xy 1 1 -)))QFED2 - -#============================================================================== +#------------------------------------------------------------------------------ # --- CEDS vertical partitioning --- -#============================================================================== +#------------------------------------------------------------------------------ (((CEDSv2.or.CEDS_GBDMAPS 315 ENERGY_LEVS $ROOT/VerticalScaleFactors/v2021-05/gc_layers.nc g_energy 2017/1/1/0 C xyz 1 1 316 INDUSTRY_LEVS $ROOT/VerticalScaleFactors/v2021-05/gc_layers.nc g_industry 2017/1/1/0 C xyz 1 1 317 SHIP_LEVS $ROOT/VerticalScaleFactors/v2021-05/gc_layers.nc cmv_c3 2017/1/1/0 C xyz 1 1 )))CEDSv2.or.CEDS_GBDMAPS -#============================================================================== -# --- DICE-Africa --- -#============================================================================== -(((DICE_Africa -# Charcoal production scale factor to reduce charcoal production -# by a factor of 5 after finding error in implementation of emission factors. -320 DICE_CP_SF 0.20 - - - xy 1 1 -)))DICE_Africa - -#============================================================================== -# --- FOSSIL FUEL CO2 SURFACE CORRECTION FACTOR --- -# -# Fossil fuel CO2 emissions must be scaled down to avoid counting emissions -# already accounted for by CO and CH4 oxidation to CO2. -# -# The necssary annual reduction in emissions related to fossil fuels is -# determined as: global C mass from FF (CO+CH4) / global C mass from FF CO2 -# -# Note: GEOS-Chem v8-03-02 to v9-02, assumed: 0.0489 for all years but that -# value seems to correspond to mid-1980s fossil fuel combustion since CO -# emissions have held constant (Granier et al., 2011) while CO2 has risen. -# -# All scale factors for years 2000-2013 lumped into a single entry -#============================================================================== -(((CO2CORR +#------------------------------------------------------------------------------ +# --- GFAS scale factors --- +#------------------------------------------------------------------------------ +(((GFAS +300 GFAS_EMITL $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc mami 2003-2021/1-12/1-31/0 C xy m 1 +)))GFAS -#410 CO2_FOSSFUEL_CORR 0.0489 - - - xy 1 1 +#------------------------------------------------------------------------------ +# --- EPA NEI2016 (monthly-mean inventory) scale factors --- +#------------------------------------------------------------------------------ +(((NEI2016_MONMEAN -## CO2 scale factors from CO oxidation by decade (comment out for now) -##410 CO2_FOSSFUEL_CORR 0.052815/0.054486/0.054902/0.055107/0.053166/0.051611/0.050065/0.048803/0.047060/0.046041 - 1980-1989/1/1/0 C xy 1 1 -##410 CO2_FOSSFUEL_CORR 0.045816/0.045153/0.045541/0.045556/0.044800/0.043875/0.042910/0.042206/0.042257/0.042468 - 1990-1999/1/1/0 C xy 1 1 -##410 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118 - 2000-2009/1/1/0 C xy 1 1 -##410 CO2_FOSSFUEL_CORR 0.030622/0.029674/0.029029/0.028355 - 2010-2013/1/1/0 C xy 1 1 +# Weekday/Weekend scale factors +211 NEI99_DOW_CO $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc CO 1999/1-12/WD/0 C xy 1 1 -410 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118/0.030622/0.029674/0.029029/0.028355 - 2000-2013/1/1/0 C xy 1 1 -)))CO2CORR +# Annual scale factors were computed from the EPA Trends Report for Tier 1 CAPS +# (obtained 21 Sep 2021) using the "Total without wildfires" field. NH3 and +# PM2.5 only had values for 2002-2020, while the remaining species had yearly +# values for 1990-2020 (we include only 2002-2020 here). +# See NEI2016/v2021-06/national_tier1_caps+HEMCOscaling.xlsx for details. +252 NEI2016_CO_YRSCALE 1.817/1.767/1.716/1.666/1.610/1.554/1.393/1.251/1.272/1.261/1.220/1.178/1.137/1.095/1.000/0.973/0.950/0.927/0.904 - 2002-2020/1/1/0 C xy 1 1 -#============================================================================== -# --- CO2 CONVERSION FACTORS --- -#============================================================================== -420 CH4TOCO2 2.75 - - - xy 1 1 -421 CTOCO2 3.6667 - - - xy 1 1 -430 NMHCSCALE 0.3333 - - - xy 1 1 +)))NEI2016_MONMEAN -#============================================================================== -# ---- TIMES diurnal and weekly scale factors for national fossil fuel CO2 --- -# -# These temporal scale factors are described in Nassar et al. (2013) -#============================================================================== -(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR -440 CO2_DIURNAL $ROOT/CO2/v2015-04/FOSSIL/TIMES_diurnal_scale_factors.nc diurnal_scale_factors 2006/1/1/1-24 C xy 1 1 -441 CO2_WEEKLY $ROOT/CO2/v2015-04/FOSSIL/TIMES_weekly_scale_factors.nc weekly_scale_factors 2006/1/WD/0 C xy 1 1 -)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +#------------------------------------------------------------------------------ +# --- QFED2 diurnal scale factors --- +# Fire diurnal scaling factors (% per hour) from WRAP Report to Project +# No. 178-6, July 2005 +#------------------------------------------------------------------------------ +(((QFED2.or.GFAS.or.BB4MIPS +75 QFED2_TOD 0.1392/0.1392/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.48/0.96/1.68/2.4/3.12/3.84/4.08/2.88/1.68/0.96/0.1368/0.1368/0.1368/0.1368/0.1368 - - - xy unitless 1 +)))QFED2.or.GFAS.or.BB4MIPS -#============================================================================== -# --- DOMESTIC AVIATION SURFACE CORRECTION FACTOR --- -# -# Regional scale factors slightly less than 1 remove surface contribution from -# domestic aviation in national fossil fuel emisisons, which should instead be -# counted in the air as a 3D field. This scale factor should be applied to the -# main/national fossil fuel emission field if using avaition emissions. -#============================================================================== -(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR -480 AVIATION_SURF_CORR $ROOT/CO2/v2015-04/FOSSIL/Aviation_SurfCorr_SclFac.1x1.nc CO2 2004/1/1/0 C xy 1 1 -)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +#------------------------------------------------------------------------------ +# --- QFED vertical partitioning --- +# Following Fischer et al. (2014) and Travis et al. (2016), +# emit 35% of QFED emissions above the PBL. +#------------------------------------------------------------------------------ +(((QFED2 +311 QFED_PBL_FRAC 0.65 - - - xy 1 1 +312 QFED_FT_FRAC 0.35 - - - xy 1 1 +)))QFED2 -#============================================================================== -# --- CO: HTAP Annual scale factors --- -#============================================================================== -(((HTAP -506 LIQFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985-2010/1/1/0 C xy 1 1 -507 LIQFUEL_1985 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985/1/1/0 C xy 1 -1 -509 LIQFUEL_2006 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2006/1/1/0 C xy 1 -1 -510 LIQFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2002/1/1/0 C xy 1 -1 -528 LIQFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2008-2010/1/1/0 C xy 1 -1 -)))HTAP +(((CEDSv2 +#========================================================================= +# --- Sector-wise diel scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +2401 TOD_AGRICULTURE 0.599/0.599/0.599/0.599/0.599/0.649/0.748/0.898/1.098/1.247/1.447/1.597/1.796/1.746/1.696/1.547/1.347/1.098/0.898/0.748/0.649/0.599/0.599/0.599 - - - xy unitless 1 +2406 TOD_ENERGY 0.790/0.720/0.720/0.710/0.740/0.800/0.920/1.080/1.190/1.220/1.210/1.210/1.170/1.150/1.140/1.130/1.100/1.070/1.040/1.020/1.020/1.010/0.960/0.880 - - - xy unitless 1 +2407 TOD_INDUSTRY 0.750/0.750/0.780/0.820/0.880/0.950/1.020/1.090/1.160/1.220/1.280/1.300/1.220/1.240/1.250/1.160/1.080/1.010/0.950/0.900/0.850/0.810/0.780/0.750 - - - xy unitless 1 +2409 TOD_RESIDENTIAL 0.393/0.393/0.393/0.393/0.393/0.492/1.180/1.475/1.574/1.574/1.377/1.180/1.082/1.082/0.984/0.984/0.984/1.082/1.377/1.475/1.377/1.377/0.984/0.393 - - - xy unitless 1 +2411 TOD_TRANSPORT 0.190/0.090/0.060/0.050/0.090/0.220/0.860/1.840/1.860/1.410/1.240/1.200/1.320/1.440/1.450/1.590/2.030/2.080/1.510/1.060/0.740/0.620/0.610/0.440 - - - xy unitless 1 + +#========================================================================= +# --- Sector-wise day-of-week scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +706 DOW_ENERGY 0.850/1.060/1.060/1.060/1.060/1.060/0.850 - - - xy unitless 1 +707 DOW_INDUSTRY 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +709 DOW_RESIDENTIAL 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +711 DOW_TRANSPORT 0.790/1.020/1.060/1.080/1.100/1.140/0.810 - - - xy unitless 1 +)))CEDSv2 )))EMISSIONS @@ -1471,19 +1681,19 @@ ${RUNDIR_CO2_COPROD} (((USE_CH4_DATA (((Scarpelli_Mexico -1001 MEX_MASK $ROOT/MASKS/v2018-09/Mexico_Mask.001x001.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 -1010 MEX_MASK_MIRROR $ROOT/MASKS/v2018-09/Mexico_Mask_Mirror.001x001.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 +1001 MEX_MASK $ROOT/MASKS/v2024-04/Mexico_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 +1010 MEX_MASK_MIRROR $ROOT/MASKS/v2024-04/Mexico_Mask_Mirror.01x01.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 )))Scarpelli_Mexico (((Scarpelli_Canada -1002 CAN_MASK $ROOT/MASKS/v2018-09/Canada_Mask.001x001.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 -1011 CAN_MASK_MIRROR $ROOT/MASKS/v2018-09/Canada_Mask_Mirror.001x001.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 +1002 CAN_MASK $ROOT/MASKS/v2024-04/Canada_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 +1011 CAN_MASK_MIRROR $ROOT/MASKS/v2024-04/Canada_Mask_Mirror.01x01.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 )))Scarpelli_Canada -(((GEPA -1008 CONUS_MASK $ROOT/MASKS/v2018-09/CONUS_Mask.001x001.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 -1009 CONUS_MASK_MIRROR $ROOT/MASKS/v2018-09/CONUS_Mask_Mirror.001x001.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 -)))GEPA +(((GHGI_v2.or.GHGI_v2_Express_Ext +1008 CONUS_MASK $ROOT/MASKS/v2024-04/CONUS_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 +1009 CONUS_MASK_MIRROR $ROOT/MASKS/v2024-04/CONUS_Mask_Mirror.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 +)))GHGI_v2.or.GHGI_v2_Express_Ext )))USE_CH4_DATA @@ -1496,20 +1706,24 @@ ${RUNDIR_CO2_COPROD} 2002 CANADA_MASK $ROOT/MASKS/v2018-09/Canada_mask.geos.1x1.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 )))APEI +# Renamed to avoid a namespace collision w/ GHGI mask above!!! (((NEI2016_MONMEAN -2007 CONUS_MASK $ROOT/MASKS/v2018-09/CONUS_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 +2007 NEI_CONUS_MASK $ROOT/MASKS/v2018-09/CONUS_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 )))NEI2016_MONMEAN (((DICE_Africa 2008 AFRICA_MASK $ROOT/MASKS/v2018-09/AF_LANDMASK.geos.05x0666.global.nc LANDMASK 1985/1/1/0 C xy 1 1 -20/-37/54/40 )))DICE_Africa +)))USE_CO_DATA.or.USE_CO2_DATA + +#============================================================================== +# --- Masks used for CH4, CO and CO2 simulation emissions --- +#============================================================================== (((CEDSv2.or.CEDS_GBDMAPS.or.CEDS_GBDMAPS_byFuelType 2009 CHINA_MASK $ROOT/MASKS/v2018-09/China_mask.generic.1x1.nc MASK 2000/1/1/0 C xy 1 1 70/10/150/60 )))CEDSv2.or.CEDS_GBDMAPS.or.CEDS_GBDMAPS_byFuelType -)))USE_CO_DATA.or.USE_CO2_DATA - )))EMISSIONS ### END SECTION MASKS ### diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem index 4fa26558f..b0c5bc5d8 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem @@ -26,7 +26,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * @@ -38,8 +37,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -74,6 +73,7 @@ Warnings: 1 --> XIAO_C3H8 : ${RUNDIR_USE_XIAOC3H8} # 1985 --> LIANG_BROMOCARB : true # 2000 --> ORDONEZ_IODOCARB : true # 2000 + --> GT_Chlorine : true # 1960-2014 --> DECAYING_PLANTS : true # 1985 --> AFCID : true # 2015 # ----- AIRCRAFT EMISSIONS ---------------------------------------------------- @@ -85,7 +85,7 @@ Warnings: 1 # research purposes. Recommended setting: "AEIC2019_DAILY: false". # # 2. AEIC2019_MONMEAN selects monthly-mean AEIC 2019 emisisons, which will -# incur much less computational overhaead. This options should suffice +# incur much less computational overhaead. This option should suffice # for most simulations. Recommended setting "AEIC2019_MONMEAN: true". # # 3. AEIC_SCALE_1990_2019: If "false", the AEIC 2019 data from the year @@ -133,6 +133,7 @@ Warnings: 1 --> QFED2 : false # 2000-2020 --> GFAS : false # 2003-2021 --> BB4MIPS : ${RUNDIR_CMIP6_FIELDS} # 1850-2100 + --> GFED4_CLIMATOLOGY : false # If true, turn off GFED ext below # ----- OFFLINE EMISSIONS ----------------------------------------------------- # To use online emissions instead set the offline emissions to 'false' and the # corresponding HEMCO extension to 'on': @@ -148,7 +149,7 @@ Warnings: 1 --> OFFLINE_DUST : ${RUNDIR_OFFLINE_DUST} # 1980-2019 --> OFFLINE_BIOGENICVOC : ${RUNDIR_OFFLINE_BIOVOC} # 1980-2020 --> OFFLINE_SEASALT : ${RUNDIR_OFFLINE_SEASALT} # 1980-2019 - --> CalcBrSeasalt : false + --> CalcBrSeasalt : true --> OFFLINE_SOILNOX : ${RUNDIR_OFFLINE_SOILNOX} # 1980-2020 # ----- NON-EMISSIONS DATA ---------------------------------------------------- --> UVALBEDO : true # 1985 @@ -156,7 +157,7 @@ Warnings: 1 --> GMI_OH : true # 2005 --> GMI_PROD_LOSS : true # 2005 --> OMOC_RATIO : false # 2010 - --> GMD_SFC_CH4 : ${RUNDIR_USE_GMDCH4} # 1979-2020 + --> GMD_SFC_CH4 : ${RUNDIR_USE_GMDCH4} # 1975-2022 --> CMIP6_SFC_CH4 : false # 1750-1978 --> OLSON_LANDMAP : true # 1985 --> YUAN_MODIS_LAI : true # 2000-2020 @@ -170,6 +171,7 @@ Warnings: 1 --> LUT data format : nc --> LUT source dir : $ROOT/PARANOX/v2015-02 103 LightNOx : on NO + --> LightningClimatology : ${RUNDIR_LIGHTNOX_CLIM} --> CDF table : $ROOT/LIGHTNOX/v2014-07/light_dist.ott2010.dat 104 SoilNOx : ${RUNDIR_SOILNOX_EXT} NO --> Use fertilizer NOx : true @@ -190,7 +192,7 @@ Warnings: 1 --> NH snow age : 3.0 --> SH snow age : 1.5 --> N per snowflake : 5.0 - --> Model sea salt Br- : false + --> Model sea salt Br- : true --> Br- mass ratio : 2.11e-3 108 MEGAN : on ISOP/ACET/PRPE/C2H4/ALD2/MOH/EOH/MTPA/MTPO/LIMO/SESQ/SOAP/SOAS --> Isoprene scaling : 1.0 @@ -202,7 +204,7 @@ Warnings: 1 --> Monoterp to SOAS : 0.050 --> Othrterp to SOAP : 0.050 --> Othrterp to SOAS : 0.050 -111 GFED : ${RUNDIR_GFED_EXT} NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/BCPO/BCPI/OCPO/OCPI/POG1/POG2/MTPA/BENZ/TOLU/XYLE/NAP/EOH/MOH/SOAP +111 GFED : ${RUNDIR_GFED_EXT} NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/BCPO/BCPI/OCPO/OCPI/POG1/POG2/MTPA/BENZ/TOLU/XYLE/NAP/EOH/MOH/SOAP/FURA/PHEN/MVK/ISOP/ACTA/MGLY/GLYX/RCHO --> GFED4 : true --> GFED_daily : false --> GFED_3hourly : false @@ -229,8 +231,19 @@ Warnings: 1 120 Inorg_Iodine : on HOI/I2 --> Emit HOI : true --> Emit I2 : true -130 TOMAS_Jeagle : ${RUNDIR_TOMAS_SEASALT} SS1/SS2/SS3/SS4/SS5/SS6/SS7/SS8/SS9/SS10/SS11/SS12/SS13/SS14/SS15/SS16/SS17/SS18/SS19/SS20/SS21/SS22/SS23/SS24/SS25/SS26/SS27/SS28/SS29/SS30/SS31/SS32/SS33/SS34/SS35/SS36/SS37/SS38/SS39/SS40 -131 TOMAS_DustDead : ${RUNDIR_TOMAS_DUSTDEAD} DUST1/DUST2/DUST3/DUST4/DUST5/DUST6/DUST7/DUST8/DUST9/DUST10/DUST11/DUST12/DUST13/DUST14/DUST15/DUST16/DUST17/DUST18/DUST19/DUST20/DUST21/DUST22/DUST23/DUST24/DUST25/DUST26/DUST27/DUST28/DUST29/DUST30/DUST31/DUST32/DUST33/DUST34/DUST35/DUST36/DUST37/DUST38/DUST39/DUST40 +130 TOMAS_Jeagle : ${RUNDIR_TOMAS_SEASALT} SS01/SS02/SS03/SS04/SS05/SS06/SS07/SS08/SS09/SS10/SS11/SS12/SS13/SS14/SS15/SS16/SS17/SS18/SS19/SS20/SS21/SS22/SS23/SS24/SS25/SS26/SS27/SS28/SS29/SS30/SS31/SS32/SS33/SS34/SS35/SS36/SS37/SS38/SS39/SS40 + --> Reduce SS cold water : true + --> Blowing Snow SS : true + --> NH FYI snow salinity : 0.1 + --> NH MYI snow salinity : 0.05 + --> SH FYI snow salinity : 0.03 + --> SH MYI snow salinity : 0.015 + --> NH snow age : 3.0 + --> SH snow age : 1.5 + --> N per snowflake : 1.0 + --> Model sea salt Br- : false + --> Br- mass ratio : 2.11e-3 +131 TOMAS_DustDead : ${RUNDIR_TOMAS_DUSTDEAD} DUST01/DUST02/DUST03/DUST04/DUST05/DUST06/DUST07/DUST08/DUST09/DUST10/DUST11/DUST12/DUST13/DUST14/DUST15/DUST16/DUST17/DUST18/DUST19/DUST20/DUST21/DUST22/DUST23/DUST24/DUST25/DUST26/DUST27/DUST28/DUST29/DUST30/DUST31/DUST32/DUST33/DUST34/DUST35/DUST36/DUST37/DUST38/DUST39/DUST40 --> Mass tuning factor : ${RUNDIR_DUSTDEAD_TF} ### END SECTION EXTENSION SWITCHES ### @@ -280,322 +293,322 @@ Warnings: 1 # aren't included in the Tier 1 CAPS file/ #============================================================================== (((NEI2016_MONMEAN -0 EPA16_BCPI__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__afdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__afdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__afdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_BCPI__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__afdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__afdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__afdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__afdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__afdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_SO4__afdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__agACET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__agALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__agALDX $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__agBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_C2H4__agETH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__agETHA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__agETOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__agFORM $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_PRPE__agIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__agKET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__agMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__agNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_PRPE__agOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__agPAR $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_C3H8__agPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_TOLU__agTOL $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__agXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__airportsACET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__airportsACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__airportsALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__airportsALDX $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__airportsBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__afdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__agACET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__agALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__agALDX $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__agBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_C2H4__agETH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__agETHA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__agETOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__agFORM $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_PRPE__agIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__agKET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__agMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__agNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_PRPE__agOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__agPAR $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_C3H8__agPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_TOLU__agTOL $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__agXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__airportsACET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__airportsACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__airportsALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__airportsALDX $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__airportsBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__airportsSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__airportsETH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__airportsETHA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__airportsETOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__airportsFORM $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__airportsHONO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__airportsIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__airportsKET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__airportsMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NO__airportsNO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__airportsNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__airportsOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__airportsPAR $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__airportsPNA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__airportsPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__airportsPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__airportsETH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__airportsETHA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__airportsETOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__airportsFORM $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__airportsHONO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__airportsKET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__airportsMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NO__airportsNO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__airportsNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__airportsPAR $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__airportsPNA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__airportsPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__airportsPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__airportsPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__airportsPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__airportsPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__airportsPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__airportsSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__airportsPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__airportsPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__airportsSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__airportspFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__airportsSULF $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__airportsTOL $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__airportsXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__nonptACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__nonptACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__nonptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__nonptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__nonptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__nonptCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__airportsSULF $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__airportsTOL $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__airportsXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonptACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonptACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__nonptCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__nonptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__nonptETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__nonptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__nonptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__nonptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HCl__nonptHCL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HCL 2016/1-12/1/0 R xyz kg/m2/s HCl 1007 1 50 -0 EPA16_HNO2__nonptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__nonptKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__nonptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__nonptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__nonptNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__nonptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__nonptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__nonptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__nonptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__nonptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__nonptETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HCl__nonptHCL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HCL 2016/1-12/1/0 R xy kg/m2/s HCl 1007 1 50 +0 EPA16_HNO2__nonptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonptKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonptNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__nonptPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__nonptPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__nonptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__nonptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__nonptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__nonptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__nonptpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__nonptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__nonptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__nonptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__nonroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__nonroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__nonroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__nonroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__nonroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__nonptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__nonroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__nonroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__nonroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__nonroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__nonroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__nonroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__nonroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__nonroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__nonroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__nonroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__nonroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__nonroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__nonroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__nonroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__nonroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__nonroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__nonroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__nonroadPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__nonroadPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__nonroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__nonroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__nonroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__nonroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__nonroadspFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__nonroadSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__nonroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__nonroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__npogACET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__npogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__npogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__npogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__npogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__npogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__nonroadSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__npogACET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__npogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__npogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__npogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__npogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__npogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__npogSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__npogETH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__npogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__npogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__npogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__npogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__npogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__npogKET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__npogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__npogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__npogNO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__npogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__npogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__npogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__npogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__npogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__npogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__npogETH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__npogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__npogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__npogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__npogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__npogKET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__npogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__npogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__npogNO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__npogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__npogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__npogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__npogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__npogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__npogPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__npogPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__npogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__npogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__npogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__npogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__npogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__npogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__npogpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__npogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__npogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__npogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__npogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__npogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__npogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__onroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__onroadPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__onroadPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__onroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__onroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroadpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_TOLU__onroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_caACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroad_caACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_caALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_caALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_caBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_TOLU__onroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_caACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_caACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_caALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_caALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_caBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP_onroad__caSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_caETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_caETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_caETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_caFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_caHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_caIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_caKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_caMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_caNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_caNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_caNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_caOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_caPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_caPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_caPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_caPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__onroad_caETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_caETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_caETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_caFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_caHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_caKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_caMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_caNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_caNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_caNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_caPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_caPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_caPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_caPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__onroad_caPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__onroad_caPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__onroad_caPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_caPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_caSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__onroad_caPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_caPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_caSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_capFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_TOLU__onroad_caTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_caXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__railACET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__railACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__railALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__railALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__railBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_TOLU__onroad_caTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_caXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__railACET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__railACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__railALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__railALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__railBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__railSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__railETH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__railETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__railETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__railFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__railHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__railIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__railKET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__railMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__railNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__railNO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__railNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__railOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__railPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__railPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__railPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__railPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__railETH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__railETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__railETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__railFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__railHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__railKET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__railMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__railNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__railNO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__railNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__railPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__railPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__railPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__railPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__railPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__railPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__railPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__railPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__railSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__railPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__railPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__railSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__railpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__railSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__railTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__railXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__rwcACET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__rwcACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__rwcALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__rwcALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__rwcBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__rwcCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__rwcCO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__railSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__railTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__railXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__rwcACET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__rwcACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__rwcALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__rwcALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__rwcBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__rwcCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__rwcCO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__rwcSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__rwcETH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__rwcETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__rwcETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__rwcFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__rwcHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__rwcIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__rwcKET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__rwcMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__rwcNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__rwcNO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__rwcNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__rwcOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__rwcPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__rwcPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__rwcPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__rwcPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__rwcETH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__rwcETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__rwcETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__rwcFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__rwcHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__rwcKET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__rwcMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__rwcNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__rwcNO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__rwcNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__rwcPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__rwcPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__rwcPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__rwcPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__rwcPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__rwcPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__rwcPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__rwcPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__rwcSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__rwcPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__rwcPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__rwcSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__rwcpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__rwcSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__rwcTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__rwcXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_SO4__rwcSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__rwcTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__rwcXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 0 EPA16_ACET__c1c2ACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 0 EPA16_ALD2__c1c2ALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 0 EPA16_RCHO__c1c2ALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 @@ -780,167 +793,167 @@ Warnings: 1 0 EPA16_SO4__ptnonipmSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 0 EPA16_TOLU__ptnonipmTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 0 EPA16_XYLE__ptnonipmXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_canACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_canALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_canALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_canBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_ACET__onroad_canACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_canALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_canALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_canBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroad_canSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_canETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_canETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_canETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_canFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_canHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_canIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_canKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_canMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_canNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_canNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_canNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_canOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_canPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_canPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_canPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_canPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__onroad_canETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_canETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_canETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_canFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_canHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_canKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_canMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_canNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_canNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_canNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_canPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_canPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_canPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_canPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__onroad_canPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__onroad_canPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__onroad_canPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_canPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_canSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__onroad_canPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_canPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_canSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_canpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__onroad_canSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__onroad_canTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_canXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_mexACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroad_mexACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_mexALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_mexALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_mexBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__onroad_canSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_canTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_canXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_mexACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_mexACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_mexALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_mexALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_mexBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroad_mexSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_mexETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_mexETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_mexETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_mexFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_mexHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_mexIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_mexKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_mexMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_mexNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_mexNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_mexNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_mexOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_mexPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_mexPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_mexPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_mexPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__onroad_mexETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_mexETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_mexETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_mexFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_mexHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_mexKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_mexMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_mexNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_mexNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_mexNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_mexPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_mexPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_mexPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_mexPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__onroad_mexPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__onroad_mexPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__onroad_mexPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_mexPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_mexSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__onroad_mexPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_mexPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_mexSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_mexpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__onroad_mexSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__onroad_mexTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_mexXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_BCPI__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othafdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othafdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othafdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_SO4__onroad_mexSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_mexTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_mexXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othafdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othafdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othafdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__othafdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__othafdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_SO4__othafdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__otharACET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__otharALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__otharALDX $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__otharBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__othafdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__otharACET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__otharALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__otharALDX $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__otharBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__otharSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__otharETH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__otharETHA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__otharETOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__otharFORM $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__otharHONO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__otharIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__otharKET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__otharMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__otharNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__otharNO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__otharNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__otharOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__otharPAR $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__otharPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__otharPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__otharPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__otharETH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__otharETHA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__otharETOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__otharFORM $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__otharHONO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__otharKET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__otharMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__otharNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__otharNO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__otharNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__otharPAR $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__otharPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__otharPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__otharPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__otharPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__otharPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__otharPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__otharPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__otharSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__otharPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__otharPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__otharSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__otharpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__otharSULF $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__otharTOL $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__otharXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_BCPI__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othptdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othptdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othptdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_SO4__otharSULF $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__otharTOL $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__otharXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__othptdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__othptdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_SO4__othptdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__othptACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__othptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__othptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__othptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__othptdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__othptACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__othptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__othptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__othptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__othptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__othptETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__othptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__othptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__othptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__othptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__othptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__othptKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__othptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__othptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__othptNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__othptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__othptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__othptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__othptETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__othptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__othptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__othptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__othptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__othptKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__othptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__othptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__othptNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__othptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__othptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__othptPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__othptPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__othptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__othptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__othptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__othptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__othptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__othptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__othptpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__othptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__othptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__othptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_SO4__othptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__othptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__othptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 )))NEI2016_MONMEAN #============================================================================== @@ -1357,264 +1370,264 @@ Warnings: 1 # EDGAR, HTAPv3 or CMIP6_SFC_LAND_ANTHRO for the global base emissions %%% #============================================================================== (((CEDSv2 -0 CEDS_NO_AGR $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_agr 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_ENE $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ene 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_IND $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ind 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_TRA $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_tra 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_RCO $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_rco 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_SLV $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_slv 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_WST $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_wst 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 - -0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_AGR - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_ENE - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_IND - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_TRA - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_RCO - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_SLV - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_WST - - - - - - SOAP 26/280 1 5 - -0 CEDS_SO2_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_AGR - - - - - - SO4 63 1 5 -0 CEDS_pFe_AGR - - - - - - pFe 66 1 5 -0 CEDS_SO2_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_ENE - - - - - - SO4 63 1 5 -0 CEDS_pFe_ENE - - - - - - pFe 66 1 5 -0 CEDS_SO2_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_IND - - - - - - SO4 63 1 5 -0 CEDS_pFe_IND - - - - - - pFe 66 1 5 -0 CEDS_SO2_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_TRA - - - - - - SO4 63 1 5 -0 CEDS_pFe_TRA - - - - - - pFe 66 1 5 -0 CEDS_SO2_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_RCO - - - - - - SO4 63 1 5 -0 CEDS_pFe_RCO - - - - - - pFe 66 1 5 -0 CEDS_SO2_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_SLV - - - - - - SO4 63 1 5 -0 CEDS_pFe_SLV - - - - - - pFe 66 1 5 -0 CEDS_SO2_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_WST - - - - - - SO4 63 1 5 -0 CEDS_pFe_WST - - - - - - pFe 66 1 5 - -0 CEDS_NH3_AGR $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_agr 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_ENE $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ene 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_IND $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ind 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_TRA $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_tra 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_RCO $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_rco 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_SLV $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_slv 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_WST $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_wst 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 - -0 CEDS_BCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_AGR - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_ENE - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_IND - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_TRA - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_RCO - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_SLV - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_WST - - - - - - BCPO 71 1 5 - -0 CEDS_OCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_AGR - - - - - - OCPO 73 1 5 -0 CEDS_POG1_AGR - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_AGR - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_ENE - - - - - - OCPO 73 1 5 -0 CEDS_POG1_ENE - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_ENE - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_IND - - - - - - OCPO 73 1 5 -0 CEDS_POG1_IND - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_IND - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_TRA - - - - - - OCPO 73 1 5 -0 CEDS_POG1_TRA - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_TRA - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_RCO - - - - - - OCPO 73 1 5 -0 CEDS_POG1_RCO - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_RCO - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_SLV - - - - - - OCPO 73 1 5 -0 CEDS_POG1_SLV - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_SLV - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_WST - - - - - - OCPO 73 1 5 -0 CEDS_POG1_WST - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_WST - - - - - - POG2 74/77 1 5 +0 CEDS_NO_AGR $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_agr 1750-2019/1-12/1/0 C xy kg/m2/s NO 2401 1 5 +0 CEDS_NO_ENE $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s NO 2406/706/315 1 5 +0 CEDS_NO_IND $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s NO 2407/707/316 1 5 +0 CEDS_NO_TRA $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_tra 1750-2019/1-12/1/0 C xy kg/m2/s NO 2411/711 1 5 +0 CEDS_NO_RCO $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_rco 1750-2019/1-12/1/0 C xy kg/m2/s NO 2409/709 1 5 +0 CEDS_NO_SLV $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_slv 1750-2019/1-12/1/0 C xy kg/m2/s NO 2407/707 1 5 +0 CEDS_NO_WST $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_wst 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 + +0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 2401 1 5 +0 CEDS_SOAP_AGR - - - - - - SOAP 280/2401 1 5 +0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2406/706/315 1 5 +0 CEDS_SOAP_ENE - - - - - - SOAP 280/2406/706/315 1 5 +0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2407/707/316 1 5 +0 CEDS_SOAP_IND - - - - - - SOAP 280/2407/707/316 1 5 +0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 2411/711 1 5 +0 CEDS_SOAP_TRA - - - - - - SOAP 280/2411/711 1 5 +0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 2409/709 1 5 +0 CEDS_SOAP_RCO - - - - - - SOAP 280/2409/709 1 5 +0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 2407/707 1 5 +0 CEDS_SOAP_SLV - - - - - - SOAP 280/2407/707 1 5 +0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_WST - - - - - - SOAP 26/280 1 5 + +0 CEDS_SO2_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2401 1 5 +0 CEDS_SO4_AGR - - - - - - SO4 63/2401 1 5 +0 CEDS_pFe_AGR - - - - - - pFe 66/2401 1 5 +0 CEDS_SO2_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s SO2 2406/706/315 1 5 +0 CEDS_SO4_ENE - - - - - - SO4 63/2406/706/315 1 5 +0 CEDS_pFe_ENE - - - - - - pFe 66/2406/706/315 1 5 +0 CEDS_SO2_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s SO2 2407/707/316 1 5 +0 CEDS_SO4_IND - - - - - - SO4 63/2407/707/316 1 5 +0 CEDS_pFe_IND - - - - - - pFe 66/2407/707/316 1 5 +0 CEDS_SO2_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2411/711 1 5 +0 CEDS_SO4_TRA - - - - - - SO4 63/2411/711 1 5 +0 CEDS_pFe_TRA - - - - - - pFe 66/2411/711 1 5 +0 CEDS_SO2_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2409/709 1 5 +0 CEDS_SO4_RCO - - - - - - SO4 63/2409/709 1 5 +0 CEDS_pFe_RCO - - - - - - pFe 66/2409/709 1 5 +0 CEDS_SO2_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2407/707 1 5 +0 CEDS_SO4_SLV - - - - - - SO4 63/2407/707 1 5 +0 CEDS_pFe_SLV - - - - - - pFe 66/2407/707 1 5 +0 CEDS_SO2_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_WST - - - - - - SO4 63 1 5 +0 CEDS_pFe_WST - - - - - - pFe 66 1 5 + +0 CEDS_NH3_AGR $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_agr 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2401 1 5 +0 CEDS_NH3_ENE $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s NH3 2406/706/315 1 5 +0 CEDS_NH3_IND $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s NH3 2407/707/316 1 5 +0 CEDS_NH3_TRA $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_tra 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2411/711 1 5 +0 CEDS_NH3_RCO $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_rco 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2409/709 1 5 +0 CEDS_NH3_SLV $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_slv 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2407/707 1 5 +0 CEDS_NH3_WST $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_wst 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 + +0 CEDS_BCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2401 1 5 +0 CEDS_BCPO_AGR - - - - - - BCPO 71/2401 1 5 +0 CEDS_BCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s BCPI 70/2406/706/315 1 5 +0 CEDS_BCPO_ENE - - - - - - BCPO 71/2406/706/315 1 5 +0 CEDS_BCPI_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s BCPI 70/2407/707/316 1 5 +0 CEDS_BCPO_IND - - - - - - BCPO 71/2407/707/316 1 5 +0 CEDS_BCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2411/711 1 5 +0 CEDS_BCPO_TRA - - - - - - BCPO 71/2411/711 1 5 +0 CEDS_BCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2409/709 1 5 +0 CEDS_BCPO_RCO - - - - - - BCPO 71/2409/709 1 5 +0 CEDS_BCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2407/707 1 5 +0 CEDS_BCPO_SLV - - - - - - BCPO 71/2407/707 1 5 +0 CEDS_BCPI_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_WST - - - - - - BCPO 71 1 5 + +0 CEDS_OCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2401 1 5 +0 CEDS_OCPO_AGR - - - - - - OCPO 73/2401 1 5 +0 CEDS_POG1_AGR - - - - - - POG1 74/76/2401 1 5 +0 CEDS_POG2_AGR - - - - - - POG2 74/77/2401 1 5 +0 CEDS_OCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s OCPI 72/2406/706/315 1 5 +0 CEDS_OCPO_ENE - - - - - - OCPO 73/2406/706/315 1 5 +0 CEDS_POG1_ENE - - - - - - POG1 74/76/2406/706/315 1 5 +0 CEDS_POG2_ENE - - - - - - POG2 74/77/2406/706/315 1 5 +0 CEDS_OCPI_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s OCPI 72/2407/707/316 1 5 +0 CEDS_OCPO_IND - - - - - - OCPO 73/2407/707/316 1 5 +0 CEDS_POG1_IND - - - - - - POG1 74/76/2407/707/316 1 5 +0 CEDS_POG2_IND - - - - - - POG2 74/77/2407/707/316 1 5 +0 CEDS_OCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2411/711 1 5 +0 CEDS_OCPO_TRA - - - - - - OCPO 73/2411/711 1 5 +0 CEDS_POG1_TRA - - - - - - POG1 74/76/2411/711 1 5 +0 CEDS_POG2_TRA - - - - - - POG2 74/77/2411/711 1 5 +0 CEDS_OCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2409/709 1 5 +0 CEDS_OCPO_RCO - - - - - - OCPO 73/2409/709 1 5 +0 CEDS_POG1_RCO - - - - - - POG1 74/76/2409/709 1 5 +0 CEDS_POG2_RCO - - - - - - POG2 74/77/2409/709 1 5 +0 CEDS_OCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2407/707 1 5 +0 CEDS_OCPO_SLV - - - - - - OCPO 73/2407/707 1 5 +0 CEDS_POG1_SLV - - - - - - POG1 74/76/2407/707 1 5 +0 CEDS_POG2_SLV - - - - - - POG2 74/77/2407/707 1 5 +0 CEDS_OCPI_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_WST - - - - - - OCPO 73 1 5 +0 CEDS_POG1_WST - - - - - - POG1 74/76 1 5 +0 CEDS_POG2_WST - - - - - - POG2 74/77 1 5 # Comment out CO2 for fullchem simulations: CO2 not advected -#0 CEDS_CO2_AGR $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_ENE $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_IND $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_TRA $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_RCO $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_SLV $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_WST $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_AGR $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_ENE $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO2 315 1 5 +#0 CEDS_CO2_IND $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO2 316 1 5 +#0 CEDS_CO2_TRA $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_RCO $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_SLV $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_WST $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 # Comment out CH4 for fullchem simulations: do not use CH4 emissions # CEDS CH4 emissions are only available for 1970-2014 -#0 CEDS_CH4_AGR $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_ENE $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_IND $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_TRA $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_RCO $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_SLV $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_WST $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_AGR $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_ENE $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ene 1970-2014/1-12/1/0 C xyL* kg/m2/s CH4 315 1 5 +#0 CEDS_CH4_IND $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ind 1970-2014/1-12/1/0 C xyL* kg/m2/s CH4 316 1 5 +#0 CEDS_CH4_TRA $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_RCO $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_SLV $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_WST $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 # NOTE: EOH files in CEDS/v2021-06 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here -0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_AGR - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_AGR - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_ENE - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_ENE - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_IND - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_IND - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_TRA - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_TRA - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_RCO - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_RCO - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_SLV - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_SLV - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_WST - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_WST - - - - - - ROH 26/92 1 5 - -0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 - -0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 - -0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 - -0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 - -0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 - -0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 - -0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 - -0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 - -0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 - -0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 - -0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 - -0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 90/2401 1 5 +0 CEDS_EOH_AGR - - - - - - EOH 91/2401 1 5 +0 CEDS_ROH_AGR - - - - - - ROH 92/2401 1 5 +0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s MOH 90/2406/706/315 1 5 +0 CEDS_EOH_ENE - - - - - - EOH 91/2406/706/315 1 5 +0 CEDS_ROH_ENE - - - - - - ROH 92/2406/706/315 1 5 +0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s MOH 90/2407/707/316 1 5 +0 CEDS_EOH_IND - - - - - - EOH 91/2407/707/316 1 5 +0 CEDS_ROH_IND - - - - - - ROH 92/2407/707/316 1 5 +0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 90/2411/711 1 5 +0 CEDS_EOH_TRA - - - - - - EOH 91/2411/711 1 5 +0 CEDS_ROH_TRA - - - - - - ROH 92/2411/711 1 5 +0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 90/2409/709 1 5 +0 CEDS_EOH_RCO - - - - - - EOH 91/2409/709 1 5 +0 CEDS_ROH_RCO - - - - - - ROH 92/2409/709 1 5 +0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 90/2407/707 1 5 +0 CEDS_EOH_SLV - - - - - - EOH 91/2407/707 1 5 +0 CEDS_ROH_SLV - - - - - - ROH 92/2407/707 1 5 +0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_WST - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_WST - - - - - - ROH 26/92 1 5 + +0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 2401 1 5 +0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H6 2406/706/315 1 5 +0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H6 2407/707/316 1 5 +0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 2411/711 1 5 +0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 2409/709 1 5 +0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 2407/707 1 5 +0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 + +0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 2401 1 5 +0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C3H8 2406/706/315 1 5 +0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C3H8 2407/707/316 1 5 +0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 2411/711 1 5 +0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 2409/709 1 5 +0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 2407/707 1 5 +0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 + +0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2401 1 5 +0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2406/706/315 1 5 +0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2407/707/316 1 5 +0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2411/711 1 5 +0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2409/709 1 5 +0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2407/707 1 5 +0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2401 1 5 +0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2406/706/315 1 5 +0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2407/707/316 1 5 +0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2411/711 1 5 +0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2409/709 1 5 +0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2407/707 1 5 +0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2401 1 5 +0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2406/706/315 1 5 +0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2407/707/316 1 5 +0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2411/711 1 5 +0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2409/709 1 5 +0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2407/707 1 5 +0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 2401 1 5 +0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H4 2406/706/315 1 5 +0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H4 2407/707/316 1 5 +0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 2411/711 1 5 +0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 2409/709 1 5 +0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 2407/707 1 5 +0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 + +0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 2401 1 5 +0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s PRPE 2406/706/315 1 5 +0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s PRPE 2407/707/316 1 5 +0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 2411/711 1 5 +0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 2409/709 1 5 +0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 2407/707 1 5 +0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 + +0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 2401 1 5 +0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H2 2406/706/315 1 5 +0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H2 2407/707/316 1 5 +0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 2411/711 1 5 +0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 2409/709 1 5 +0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 2407/707 1 5 +0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 + +0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 2401 1 5 +0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s BENZ 2406/706/315 1 5 +0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s BENZ 2407/707/316 1 5 +0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 2411/711 1 5 +0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 2409/709 1 5 +0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 2407/707 1 5 +0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 + +0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 2401 1 5 +0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s TOLU 2406/706/315 1 5 +0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s TOLU 2407/707/316 1 5 +0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 2411/711 1 5 +0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 2409/709 1 5 +0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 2407/707 1 5 +0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 + +0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 2401 1 5 +0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s XYLE 2406/706/315 1 5 +0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s XYLE 2407/707/316 1 5 +0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 2411/711 1 5 +0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 2409/709 1 5 +0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 2407/707 1 5 +0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 + +0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 2401 1 5 +0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CH2O 2406/706/315 1 5 +0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CH2O 2407/707/316 1 5 +0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 2411/711 1 5 +0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 2409/709 1 5 +0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 2407/707 1 5 +0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 + +0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 2401 1 5 +0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALD2 2406/706/315 1 5 +0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALD2 2407/707/316 1 5 +0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 2411/711 1 5 +0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 2409/709 1 5 +0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 2407/707 1 5 +0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 + +0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 2401 1 5 +0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s MEK 2406/706/315 1 5 +0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s MEK 2407/707/316 1 5 +0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 2411/711 1 5 +0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 2409/709 1 5 +0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 2407/707 1 5 +0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 + +0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 2401 1 5 +0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s HCOOH 2406/706/315 1 5 +0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s HCOOH 2407/707/316 1 5 +0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 2411/711 1 5 +0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 2409/709 1 5 +0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 2407/707 1 5 +0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 )))CEDSv2 #============================================================================== @@ -1632,10 +1645,13 @@ Warnings: 1 (((CEDS_GBDMAPS >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS.rc )))CEDS_GBDMAPS + (((CEDS_GBDMAPS_byFuelType -(((.not.CEDS_GBDMAPS.and..not.CEDSv2 +(((.not.CEDS_GBDMAPS +(((.not.CEDSv2 >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS_byFuelType.rc -))).not.CEDS_GBDMAPS.and..not.CEDSv2 +))).not.CEDSv2 +))).not.CEDS_GBDMAPS )))CEDS_GBDMAPS_byFuelType #============================================================================== @@ -1915,10 +1931,10 @@ Warnings: 1 # #============================================================================== (((CMIP6_AIRCRAFT -0 CMIP6_AIR_NO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NO_air 1750-2100/1-12/1/0 C xyz kg/m2/s NO - 20 1 -0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO - 20 1 +0 CMIP6_AIR_NO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAPVERTRES.nc4 NO_air 1750-2100/1-12/1/0 C xyz kg/m2/s NO - 20 1 +0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAPVERTRES.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO - 20 1 0 CMIP6_AIR_SOAP - - - - - - SOAP 280 20 1 -0 CMIP6_AIR_SO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 SO2_air 1750-2100/1-12/1/0 C xyz kg/m2/s SO2 - 20 1 +0 CMIP6_AIR_SO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAPVERTRES.nc4 SO2_air 1750-2100/1-12/1/0 C xyz kg/m2/s SO2 - 20 1 0 CMIP6_AIR_SO4 - - - - - - SO4 63 20 1 0 CMIP6_AIR_pFe - - - - - - pFe 66 20 1 0 CMIP6_AIR_ACET - - - - - - ACET 601 20 1 @@ -1930,10 +1946,10 @@ Warnings: 1 0 CMIP6_AIR_PRPE - - - - - - PRPE 607 20 1 0 CMIP6_AIR_MACR - - - - - - MACR 608 20 1 0 CMIP6_AIR_RCHO - - - - - - RCHO 609 20 1 -0 CMIP6_AIR_NH3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NH3_air 1750-2100/1-12/1/0 C xyz kg/m2/s NH3 - 20 1 +0 CMIP6_AIR_NH3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAPVERTRES.nc4 NH3_air 1750-2100/1-12/1/0 C xyz kg/m2/s NH3 - 20 1 # Assume all BC/OC is BCPI/OCPI -0 CMIP6_AIR_BCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 BC_air 1750-2100/1-12/1/0 C xyz kg/m2/s BCPI - 20 1 -0 CMIP6_AIR_OCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 OC_air 1750-2100/1-12/1/0 C xyz kg/m2/s OCPI - 20 1 +0 CMIP6_AIR_BCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAPVERTRES.nc4 BC_air 1750-2100/1-12/1/0 C xyz kg/m2/s BCPI - 20 1 +0 CMIP6_AIR_OCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAPVERTRES.nc4 OC_air 1750-2100/1-12/1/0 C xyz kg/m2/s OCPI - 20 1 0 CMIP6_AIR_POG1 - - - - - - POG1 74/76 20 1 0 CMIP6_AIR_POG2 - - - - - - POG2 74/77 20 1 @@ -2552,6 +2568,39 @@ Warnings: 1 0 ORDONEZ_CH2IBR $ROOT/IODINE/v2020-02/CH2IBr_monthly_emissions_Ordonez_2012_COARDS.nc CH2IBr 2000/1-12/1/0 C xy kg/m2/s CH2IBr - 1 1 )))ORDONEZ_IODOCARB +#============================================================================== +# --- GT_Chlorine --- +# +# Emission inventory for HCl and particulate Cl from continental sources +# +# Reference: +# Zhang, B., & Liu, P., et al (2022). Global Emissions of Hydrogen Chloride +# and Particulate Chloride from Continental Sources. Environmental Science & +# Technology, 56(7), 3894-3904. https://doi.org/10.1021/acs.est.1c05634 +# +# Notes: +# - The HCl emission from open biomass burning (HCL_BIO, HCL_AGR) used the same +# activity data for GFED4 (1998-2014) and BB4CMIP (1960-2014). If your +# emission inventory for open biomass burning has already include HCl +# emissions, shut down either of them to avoid the duplicated emission sources +# - Emissions of particulate Cl are added as HCl as ISORROPIA will reparition +# Cl between particle phase and gas phase. +#============================================================================== +(((GT_Chlorine +0 HCL_ENE $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_ene 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 HCL_IND $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_ind 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 HCL_RES $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_res 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 HCL_WST $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_wstop 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 HCL_BIO $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_bbop 1960-2014/1-12/1/0 C xy kg/m2/s HCl 75 1/2 1 +0 HCL_AGR $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_agri 1960-2014/1-12/1/0 C xy kg/m2/s HCl 75 1/2 1 +0 PCL_ENE $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_ene 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 PCL_IND $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_ind 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 PCL_RES $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_res 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 PCL_WST $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_wstop 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 PCL_BIO $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_bbop 1960-2014/1-12/1/0 C xy kg/m2/s HCl 75 1/2 1 +0 PCL_AGR $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_agri 1960-2014/1-12/1/0 C xy kg/m2/s HCl 75 1/2 1 +)))GT_Chlorine + #============================================================================== # --- Ship emissions --- # @@ -2648,9 +2697,11 @@ Warnings: 1 )))CEDS_GBDMAPS_SHIP (((CEDS_SHIP_byFuelType -(((.not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +(((.not.CEDS_GBDMAPS_SHIP +(((.not.CEDSv2_SHIP >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS_SHIP_byFuelType.rc -))).not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +))).not.CEDSv2_SHIP +))).not.CEDS_GBDMAPS_SHIP )))CEDS_SHIP_byFuelType #============================================================================== @@ -2998,6 +3049,7 @@ Warnings: 1 (((GFAS 0 GFAS_CO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO 75 5 3 0 GFAS_SOAP $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SOAP 75/281 5 3 +0 GFAS_CH3OH $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch3ohfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s MOH 75 5 3 0 GFAS_NO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc noxfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NO 75 5 3 0 GFAS_BCPI $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPI 70/75 5 3 0 GFAS_BCPO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPO 71/75 5 3 @@ -3008,7 +3060,7 @@ Warnings: 1 0 GFAS_CO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc co2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO2 75 5 3 0 GFAS_CH4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch4fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH4 75 5 3 0 GFAS_SO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SO2 75 5 3 -0 GFAS_pFe - - - - - - pFe 75/66 5 3 +0 GFAS_pFe $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s pFe 75/66 5 3 0 GFAS_NH3 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc nh3fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NH3 75 5 3 0 GFAS_ACET $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h6ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ACET 75 5 3 0 GFAS_ALD2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h4ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALD2 75 5 3 @@ -3069,6 +3121,35 @@ Warnings: 1 0 CMIP6_BB_MEK $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MEK 75 5 3 )))BB4MIPS +#============================================================================== +# --- GFED4 biomass burning emissions climatology +# NOTE: +# - These emissions were generated for 2010-2019 using the GFED extension +# in a 0.5x0.625 HEMCO 3.6.1 standalone simulation. +#============================================================================== +(((GFED4_CLIMATOLOGY +0 GFED4_CLIM_ACET $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ACET 2019/1-12/1/0 C xy kg/m2/s ACET - 5 1 +0 GFED4_CLIM_ALD2 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ALD2 2019/1-12/1/0 C xy kg/m2/s ALD2 - 5 1 +0 GFED4_CLIM_ALK4 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ALK4 2019/1-12/1/0 C xy kg/m2/s ALK4 - 5 1 +0 GFED4_CLIM_BCPI $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BCPI 2019/1-12/1/0 C xy kg/m2/s BCPI - 5 1 +0 GFED4_CLIM_BCPO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BCPO 2019/1-12/1/0 C xy kg/m2/s BCPO - 5 1 +0 GFED4_CLIM_BENZ $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BENZ 2019/1-12/1/0 C xy kg/m2/s BENZ - 5 1 +0 GFED4_CLIM_C2H6 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_C2H6 2019/1-12/1/0 C xy kg/m2/s C2H6 - 5 1 +0 GFED4_CLIM_C3H8 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_C3H8 2019/1-12/1/0 C xy kg/m2/s C3H8 - 5 1 +0 GFED4_CLIM_CH2O $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ACET 2019/1-12/1/0 C xy kg/m2/s CH2O - 5 1 +0 GFED4_CLIM_CO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_CO 2019/1-12/1/0 C xy kg/m2/s CO - 5 1 +0 GFED4_CLIM_EOH $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_EOH 2019/1-12/1/0 C xy kg/m2/s EOH - 5 1 +0 GFED4_CLIM_MEK $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_MEK 2019/1-12/1/0 C xy kg/m2/s MEK - 5 1 +0 GFED4_CLIM_NO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_NO 2019/1-12/1/0 C xy kg/m2/s NO - 5 1 +0 GFED4_CLIM_OCPI $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_OCPI 2019/1-12/1/0 C xy kg/m2/s OCPI - 5 1 +0 GFED4_CLIM_OCPO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_OCPO 2019/1-12/1/0 C xy kg/m2/s OCPO - 5 1 +0 GFED4_CLIM_PRPE $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_PRPE 2019/1-12/1/0 C xy kg/m2/s PRPE - 5 1 +0 GFED4_CLIM_SO2 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_SO2 2019/1-12/1/0 C xy kg/m2/s SO2 - 5 1 +0 GFED4_CLIM_SOAP $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_SOAP 2019/1-12/1/0 C xy kg/m2/s SOAP - 5 1 +0 GFED4_CLIM_TOLU $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_TOLU 2019/1-12/1/0 C xy kg/m2/s TOLU - 5 1 +0 GFED4_CLIM_XYLE $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_XYLE 2019/1-12/1/0 C xy kg/m2/s XYLE - 5 1 +)))GFED4_CLIMATOLOGY + #============================================================================== # --- Anthropogenic Fugitive, Combustion and Industrial Dust --- # (Philip et al., 2017, ERL) @@ -3084,10 +3165,10 @@ Warnings: 1 #============================================================================== (((OFFLINE_DUST (((.not.DustDead.or.DustGinoux -0 EMIS_DST1 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST1 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST1 - 3 2 -0 EMIS_DST2 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST2 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST2 - 3 2 -0 EMIS_DST3 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST3 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST3 - 3 2 -0 EMIS_DST4 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST4 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST4 - 3 2 +0 EMIS_DST1 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST1 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST1 - 3 2 +0 EMIS_DST2 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST2 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST2 - 3 2 +0 EMIS_DST3 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST3 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST3 - 3 2 +0 EMIS_DST4 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST4 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST4 - 3 2 ))).not.DustDead.or.DustGinoux )))OFFLINE_DUST @@ -3095,25 +3176,25 @@ Warnings: 1 # --- Offline biogenic VOC emissions --- #============================================================================== (((OFFLINE_BIOGENICVOC -0 BIOGENIC_ACET $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc ACET_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ACET - 4 2 -0 BIOGENIC_ALD2 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc ALD2_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ALD2 - 4 2 -0 BIOGENIC_C2H4 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc C2H4_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s C2H4 - 4 2 -0 BIOGENIC_EOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s EOH - 4 2 -0 BIOGENIC_ISOP $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc ISOP_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ISOP - 4 2 +0 BIOGENIC_ACET $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc ACET_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ACET - 4 2 +0 BIOGENIC_ALD2 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc ALD2_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ALD2 - 4 2 +0 BIOGENIC_C2H4 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc C2H4_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s C2H4 - 4 2 +0 BIOGENIC_EOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s EOH - 4 2 +0 BIOGENIC_ISOP $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc ISOP_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ISOP - 4 2 0 BIOGENIC_ISOP_SOAP - - - - - - SOAP 610 4 2 0 BIOGENIC_ISOP_SOAS - - - - - - SOAS 610 4 2 -0 BIOGENIC_LIMO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc LIMO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s LIMO - 4 2 +0 BIOGENIC_LIMO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc LIMO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s LIMO - 4 2 0 BIOGENIC_LIMO_SOAP - - - - - - SOAP 611 4 2 0 BIOGENIC_LIMO_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_MOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc MOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MOH - 4 2 -0 BIOGENIC_MTPA $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc MTPA_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPA - 4 2 +0 BIOGENIC_MOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc MOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MOH - 4 2 +0 BIOGENIC_MTPA $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc MTPA_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPA - 4 2 0 BIOGENIC_MTPA_SOAP - - - - - - SOAP 611 4 2 0 BIOGENIC_MTPA_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_MTPO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc MTPO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPO - 4 2 +0 BIOGENIC_MTPO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc MTPO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPO - 4 2 0 BIOGENIC_MTPO_SOAP - - - - - - SOAP 611 4 2 0 BIOGENIC_MTPO_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_PRPE $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc PRPE_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s PRPE - 4 2 -0 BIOGENIC_SESQ $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SESQ_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s SESQ - 4 2 +0 BIOGENIC_PRPE $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc PRPE_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s PRPE - 4 2 +0 BIOGENIC_SESQ $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SESQ_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s SESQ - 4 2 0 BIOGENIC_SESQ_SOAP - - - - - - SOAP 612 4 2 0 BIOGENIC_SESQ_SOAS - - - - - - SOAS 612 4 2 )))OFFLINE_BIOGENICVOC @@ -3123,13 +3204,13 @@ Warnings: 1 #============================================================================== (((OFFLINE_SEASALT (((.not.SeaSalt -0 SEASALT_SALA $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/seasalt_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SALA_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALA - 3 2 +0 SEASALT_SALA $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SALA_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALA - 3 2 0 SEASALT_SALAAL - - - - - - SALAAL 615 3 2 0 SEASALT_SALACL - - - - - - SALACL 616 3 2 (((CalcBrSeasalt 0 SEASALT_BrSALA - - - - - - BrSALA 617 3 2 )))CalcBrSeasalt -0 SEASALT_SALC $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/seasalt_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SALC_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALC - 3 2 +0 SEASALT_SALC $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SALC_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALC - 3 2 0 SEASALT_SALCAL - - - - - - SALCAL 615 3 2 0 SEASALT_SALCCL - - - - - - SALCCL 616 3 2 (((CalcBrSeasalt @@ -3143,7 +3224,7 @@ Warnings: 1 #============================================================================== (((OFFLINE_SOILNOX (((.not.SoilNOx -0 SOILNOX_NO $ROOT/OFFLINE_SOILNOX/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/soilnox_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SOIL_NOx 1980-2022/1-12/1-31/* EFY xy kg/m2/s NO - 3 2 +0 SOILNOX_NO $ROOT/OFFLINE_SOILNOX/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/soilnox_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SOIL_NOx 1980-2022/1-12/1-31/* EFY xy kg/m2/s NO - 3 2 ))).not.SoilNOx )))OFFLINE_SOILNOX @@ -3176,10 +3257,10 @@ Warnings: 1 (((SoilNOx 104 DEP_RESERVOIR_DEFAULT $ROOT/SOILNOX/v2014-07/DepReservoirDefault.nc DEP_RESERVOIR 2013/7/1/0 C xy kg/m3 NO - 1 1 (((HEMCO_RESTART -104 PFACTOR ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PFACTOR $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 -104 DRYPERIOD ./HEMCO_restart.$YYYY$MM$DD$HH00.nc DRYPERIOD $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 -104 GWET_PREV ./HEMCO_restart.$YYYY$MM$DD$HH00.nc GWET_PREV $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 -104 DEP_RESERVOIR ./HEMCO_restart.$YYYY$MM$DD$HH00.nc DEP_RESERVOIR $YYYY/$MM/$DD/$HH EY xy kg/m3 NO - 1 1 +104 PFACTOR ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PFACTOR $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 DRYPERIOD ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc DRYPERIOD $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 GWET_PREV ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc GWET_PREV $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 DEP_RESERVOIR ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc DEP_RESERVOIR $YYYY/$MM/$DD/$HH EY xy kg/m3 NO - 1 1 )))HEMCO_RESTART 104 SOILNOX_FERT $ROOT/SOILNOX/v2014-07/soilNOx.fert_res.generic.05x05.nc FERT 2000/1-12/1-31/0 C xy kg/m3 NO - 1 1 104 SOILNOX_LANDK1 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K01 2000/1/1/0 C xy 1 NO - 1 1 @@ -3257,6 +3338,7 @@ Warnings: 1 )))SeaSalt (((TOMAS_Jeagle 130 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.$YYYY.nc MODIS 2005-2014/1-12/1/0 C xy 1 * - 1 1 +130 MULTISEAICE $ROOT/MULTI_ICE/v2021-07/multiyearice.merra2.05x0625.$YYYY.nc FRSEAICE 1984-2017/1-12/1-31/0 C xy 1 * - 1 1 # Climatology CHLR #130 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.Clim.nc MODIS 2007/1-12/1/0 C xy 1 * - 1 1 @@ -3276,11 +3358,11 @@ Warnings: 1 #============================================================================== (((MEGAN (((HEMCO_RESTART -108 T_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 T_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 LAI_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -108 PARDR_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 -108 PARDF_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 T_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 T_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 LAI_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +108 PARDR_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 PARDF_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 )))HEMCO_RESTART 108 MEGAN_AEF_ISOP $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_ISOPRENE 1985/1/1/0 C xy kgC/m2/s * 61 1 1 108 MEGAN_AEF_MBOX $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_MBO 1985/1/1/0 C xy kgC/m2/s * 64 1 1 @@ -3311,26 +3393,28 @@ Warnings: 1 #============================================================================== # --- GFED biomass burning emissions (Extension 111) -# NOTE: These are the base emissions in kgDM/m2/s. +# NOTES: +# - These are the base emissions in kgDM/m2/s +# - If a year is not available, you may use the GFED4_CLIMATOLOGY option instead #============================================================================== (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_subgrid_coag 111 FINN_DAILY_NUMBER $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25_with_num.nc number 2002-2016/1-12/1/0 RF xy unitless * - 1 1 )))GFED_subgrid_coag (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2010-2023/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2010-2023/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 @@ -3375,7 +3459,7 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- @@ -3408,7 +3492,7 @@ Warnings: 1 # --- GEOS-Chem boundary condition file --- #============================================================================== (((GC_BCs -* BC_ $ROOT/SAMPLE_BCs/v2021-09/fullchem/GEOSChem.BoundaryConditions.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesBC_?ADV? 1980-2021/1-12/1-31/* EFY xyz 1 * - 1 1 +* BC_ $ROOT/SAMPLE_BCs/GC_14.3.0/fullchem/GEOSChem.BoundaryConditions.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesBC_?ADV? 1900-2100/1-12/1-31/* EFY xyz 1 * - 1 1 )))GC_BCs (((CHEMISTRY_INPUT @@ -3713,7 +3797,7 @@ Warnings: 1 # --- NOAA GMD monthly mean surface CH4 --- #============================================================================== (((GMD_SFC_CH4 -* NOAA_GMD_CH4 $ROOT/NOAA_GMD/v2018-01/monthly.gridded.surface.methane.1979-2020.1x1.nc SFC_CH4 1979-2020/1-12/1/0 RY xy ppbv * - 1 1 +* NOAA_GMD_CH4 $ROOT/NOAA_GMD/v2023-10/monthly.gridded.surface.methane.1975-2022.1x1.nc SFC_CH4 1975-2022/1-12/1/0 RY xy ppbv * - 1 1 )))GMD_SFC_CH4 #============================================================================== @@ -4195,14 +4279,12 @@ ${RUNDIR_TES_CLIM_N2O} 281 COtoSOAP_burn 0.013 - - - xy 1 1 #============================================================================== -# --- QFED2 diurnal scale factors --- +# --- Diurnal scale factors for biomass burning --- # # Fire diurnal scaling factors (% per hour) from WRAP Report to Project # No. 178-6, July 2005 #============================================================================== -(((QFED2.or.GFAS.or.BB4MIPS 75 QFED2_TOD 0.1392/0.1392/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.48/0.96/1.68/2.4/3.12/3.84/4.08/2.88/1.68/0.96/0.1368/0.1368/0.1368/0.1368/0.1368 - - - xy unitless 1 -)))QFED2.or.GFAS.or.BB4MIPS #============================================================================== # --- NAP scale factors --- @@ -4330,19 +4412,19 @@ ${RUNDIR_TES_CLIM_N2O} # --- EPA NEI day-of-week scale factors --- #============================================================================== (((NEI2016_MONMEAN -210 NEI99_DOW_NOX $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc NOX 1999/1-12/WD/0 C xy 1 1 -211 NEI99_DOW_CO $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc CO 1999/1-12/WD/0 C xy 1 1 -212 NEI99_DOW_ALK4 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc ALK4 1999/1-12/WD/0 C xy 1 1 -213 NEI99_DOW_ACET $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc ACET 1999/1-12/WD/0 C xy 1 1 -214 NEI99_DOW_MEK $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc MEK 1999/1-12/WD/0 C xy 1 1 -215 NEI99_DOW_PRPE $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc PRPE 1999/1-12/WD/0 C xy 1 1 -216 NEI99_DOW_C3H8 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc C3H8 1999/1-12/WD/0 C xy 1 1 -217 NEI99_DOW_C2H6 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc C2H6 1999/1-12/WD/0 C xy 1 1 -218 NEI99_DOW_SO2 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc SO2 1999/1-12/WD/0 C xy 1 1 -219 NEI99_DOW_SO4 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc SO4 1999/1-12/WD/0 C xy 1 1 -220 NEI99_DOW_MSA $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc MSA 1999/1-12/WD/0 C xy 1 1 -221 NEI99_DOW_BCPI $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc BCPI 1999/1-12/WD/0 C xy 1 1 -222 NEI99_DOW_OCPI $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc OCPI 1999/1-12/WD/0 C xy 1 1 +210 NEI99_DOW_NOX $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc NOX 1999/1-12/WD/0 C xy 1 1 +211 NEI99_DOW_CO $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc CO 1999/1-12/WD/0 C xy 1 1 +212 NEI99_DOW_ALK4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ALK4 1999/1-12/WD/0 C xy 1 1 +213 NEI99_DOW_ACET $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ACET 1999/1-12/WD/0 C xy 1 1 +214 NEI99_DOW_MEK $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MEK 1999/1-12/WD/0 C xy 1 1 +215 NEI99_DOW_PRPE $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc PRPE 1999/1-12/WD/0 C xy 1 1 +216 NEI99_DOW_C3H8 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C3H8 1999/1-12/WD/0 C xy 1 1 +217 NEI99_DOW_C2H6 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C2H6 1999/1-12/WD/0 C xy 1 1 +218 NEI99_DOW_SO2 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO2 1999/1-12/WD/0 C xy 1 1 +219 NEI99_DOW_SO4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO4 1999/1-12/WD/0 C xy 1 1 +220 NEI99_DOW_MSA $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MSA 1999/1-12/WD/0 C xy 1 1 +221 NEI99_DOW_BCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc BCPI 1999/1-12/WD/0 C xy 1 1 +222 NEI99_DOW_OCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc OCPI 1999/1-12/WD/0 C xy 1 1 )))NEI2016_MONMEAN #============================================================================== @@ -4463,6 +4545,27 @@ ${RUNDIR_TES_CLIM_N2O} 1212 FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc FFF 2010/1-12/1/0 C xy unitless 1 )))EDGARv43.or.DICE_Africa +(((CEDSv2 +#========================================================================= +# --- Sector-wise diel scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +2401 TOD_AGRICULTURE 0.599/0.599/0.599/0.599/0.599/0.649/0.748/0.898/1.098/1.247/1.447/1.597/1.796/1.746/1.696/1.547/1.347/1.098/0.898/0.748/0.649/0.599/0.599/0.599 - - - xy unitless 1 +2406 TOD_ENERGY 0.790/0.720/0.720/0.710/0.740/0.800/0.920/1.080/1.190/1.220/1.210/1.210/1.170/1.150/1.140/1.130/1.100/1.070/1.040/1.020/1.020/1.010/0.960/0.880 - - - xy unitless 1 +2407 TOD_INDUSTRY 0.750/0.750/0.780/0.820/0.880/0.950/1.020/1.090/1.160/1.220/1.280/1.300/1.220/1.240/1.250/1.160/1.080/1.010/0.950/0.900/0.850/0.810/0.780/0.750 - - - xy unitless 1 +2409 TOD_RESIDENTIAL 0.393/0.393/0.393/0.393/0.393/0.492/1.180/1.475/1.574/1.574/1.377/1.180/1.082/1.082/0.984/0.984/0.984/1.082/1.377/1.475/1.377/1.377/0.984/0.393 - - - xy unitless 1 +2411 TOD_TRANSPORT 0.190/0.090/0.060/0.050/0.090/0.220/0.860/1.840/1.860/1.410/1.240/1.200/1.320/1.440/1.450/1.590/2.030/2.080/1.510/1.060/0.740/0.620/0.610/0.440 - - - xy unitless 1 + +#========================================================================= +# --- Sector-wise day-of-week scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +706 DOW_ENERGY 0.850/1.060/1.060/1.060/1.060/1.060/0.850 - - - xy unitless 1 +707 DOW_INDUSTRY 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +709 DOW_RESIDENTIAL 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +711 DOW_TRANSPORT 0.790/1.020/1.060/1.080/1.100/1.140/0.810 - - - xy unitless 1 +)))CEDSv2 + ### END SECTION SCALE FACTORS ### ############################################################################### diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.gcap2_metfields b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.gcap2_metfields index 39c45428f..2ff145fca 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.gcap2_metfields +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.gcap2_metfields @@ -115,7 +115,6 @@ RUNID: ${RUNDIR_GCAP2_RUNID} # --- Not used by GEOS-Chem --- #* EVAP $METDIR/$YYYY/$MM/$YYYY$MM$DD.aijh2$RUNID.nc4 FRSEAICE 1851-2099/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 #* GRN $METDIR/$YYYY/$MM/$YYYY$MM$DD.aijh2$RUNID.nc4 FRSEAICE 1851-2099/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -#* LWGNT $METDIR/$YYYY/$MM/$YYYY$MM$DD.aijh2$RUNID.nc4 FRSEAICE 1851-2099/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 * SEAICE00 $METDIR/$YYYY/$MM/$YYYY$MM$DD.aijh2$RUNID.nc4 FRSEAICE 1851-2099/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 * SEAICE10 $METDIR/$YYYY/$MM/$YYYY$MM$DD.aijh2$RUNID.nc4 FRSEAICE 1851-2099/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 * SEAICE20 $METDIR/$YYYY/$MM/$YYYY$MM$DD.aijh2$RUNID.nc4 FRSEAICE 1851-2099/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.gmao_metfields b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.gmao_metfields index 7da31ed65..92e346dac 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.gmao_metfields +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.gmao_metfields @@ -45,86 +45,85 @@ METDIR: ${RUNDIR_MET_DIR} * PHIS $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC PHIS */1/1/0 C xy 1 * - 1 1 # --- A1 fields --- -* ALBEDO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC ALBEDO 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* CLDTOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC CLDTOT 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* EFLUX $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC EFLUX 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* EVAP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC EVAP 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* FRSEAICE $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC FRSEAICE 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* FRSNO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC FRSNO 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* GRN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GRN 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* GWETROOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GWETROOT 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* GWETTOP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GWETTOP 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* HFLUX $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC HFLUX 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* LAI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC LAI 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* LWGNT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC LWGNT 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* PARDF $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PARDF 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* PARDR $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PARDR 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* PBLH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PBLH 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* PRECANV $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECANV 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* PRECCON $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECCON 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* PRECLSC $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECLSC 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* PRECSNO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECSNO 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* PRECTOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECTOT 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* QV2M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC QV2M 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE00 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE00 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE10 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE10 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE20 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE20 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE30 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE30 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE40 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE40 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE50 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE50 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE60 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE60 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE70 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE70 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE80 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE80 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SEAICE90 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE90 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SLP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SLP 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SNODP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SNODP 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SNOMAS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SNOMAS 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* SWGDN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SWGDN 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* TO3 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TO3 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* TROPPT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TROPPT 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* TS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TS 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* T2M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC T2M 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* U10M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC U10M 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* USTAR $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC USTAR 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* V10M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC V10M 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 -* Z0M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC Z0M 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* ALBEDO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC ALBEDO 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* CLDTOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC CLDTOT 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* EFLUX $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC EFLUX 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* EVAP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC EVAP 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* FRSEAICE $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC FRSEAICE 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* FRSNO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC FRSNO 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* GRN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GRN 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* GWETROOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GWETROOT 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* GWETTOP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GWETTOP 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* HFLUX $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC HFLUX 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* LAI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC LAI 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* PARDF $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PARDF 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* PARDR $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PARDR 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* PBLH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PBLH 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* PRECANV $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECANV 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* PRECCON $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECCON 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* PRECLSC $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECLSC 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* PRECSNO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECSNO 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* PRECTOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECTOT 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* QV2M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC QV2M 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE00 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE00 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE10 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE10 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE20 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE20 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE30 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE30 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE40 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE40 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE50 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE50 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE60 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE60 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE70 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE70 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE80 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE80 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SEAICE90 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE90 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SLP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SLP 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SNODP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SNODP 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SNOMAS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SNOMAS 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* SWGDN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SWGDN 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* TO3 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TO3 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* TROPPT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TROPPT 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* TS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TS 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* T2M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC T2M 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* U10M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC U10M 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* USTAR $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC USTAR 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* V10M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC V10M 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 +* Z0M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC Z0M 1900-2100/1-12/1-31/*/+30minute EFY xy 1 * - 1 1 # --- A3cld fields --- -* CLOUD $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC CLOUD 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* OPTDEPTH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC OPTDEPTH 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* QI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC QI 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* QL $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC QL 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* TAUCLI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC TAUCLI 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* TAUCLW $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC TAUCLW 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* CLOUD $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC CLOUD 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* OPTDEPTH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC OPTDEPTH 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* QI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC QI 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* QL $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC QL 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* TAUCLI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC TAUCLI 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* TAUCLW $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC TAUCLW 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 # --- A3dyn fields --- -* DTRAIN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC DTRAIN 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* OMEGA $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC OMEGA 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* RH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC RH 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* U $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC U 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* V $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC V 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* DTRAIN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC DTRAIN 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* OMEGA $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC OMEGA 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* RH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC RH 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* U $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC U 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* V $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC V 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 # --- A3mstC fields --- -* DQRCU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC DQRCU 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* DQRLSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC DQRLSAN 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* REEVAPCN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC REEVAPCN 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* REEVAPLS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC REEVAPLS 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* DQRCU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC DQRCU 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* DQRLSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC DQRLSAN 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* REEVAPCN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC REEVAPCN 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* REEVAPLS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC REEVAPLS 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 # --- A3mstE fields --- -* CMFMC $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC CMFMC 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* PFICU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFICU 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* PFILSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFILSAN 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* PFLCU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFLCU 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 -* PFLLSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFLLSAN 1980-2021/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* CMFMC $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC CMFMC 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* PFICU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFICU 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* PFILSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFILSAN 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* PFLCU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFLCU 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 +* PFLLSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFLLSAN 1900-2100/1-12/1-31/*/+90minute EFY xyz 1 * - 1 1 # --- I3 fields --- -* PS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC PS 1980-2021/1-12/1-31/* EFY xy 1 * - 1 1 -* SPHU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC QV 1980-2021/1-12/1-31/* EFY xyz 1 * - 1 1 -* TMPU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC T 1980-2021/1-12/1-31/* EFY xyz 1 * - 1 1 +* PS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC PS 1900-2100/1-12/1-31/* EFY xy 1 * - 1 1 +* SPHU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC QV 1900-2100/1-12/1-31/* EFY xyz 1 * - 1 1 +* TMPU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC T 1900-2100/1-12/1-31/* EFY xyz 1 * - 1 1 -* PS_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC PS 1980-2021/1-12/1-31/1/+1day EFY xy 1 * - 1 1 -* SPHU_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC QV 1980-2021/1-12/1-31/1/+1day EFY xyz 1 * - 1 1 -* TMPU_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC T 1980-2021/1-12/1-31/1/+1day EFY xyz 1 * - 1 1 +* PS_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC PS 1900-2100/1-12/1-31/1/+1day EFY xy 1 * - 1 1 +* SPHU_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC QV 1900-2100/1-12/1-31/1/+1day EFY xyz 1 * - 1 1 +* TMPU_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC T 1900-2100/1-12/1-31/1/+1day EFY xyz 1 * - 1 1 #============================================================================== # --- Fields for lightning emissions (Extension 103) --- @@ -134,8 +133,15 @@ METDIR: ${RUNDIR_MET_DIR} # --Lee Murray (16 Jan 2019) #============================================================================== (((LightNOx -* FLASH_DENS $ROOT/OFFLINE_LIGHTNING/v2020-03/$MET/$YYYY/FLASH_CTH_$MET_${RUNDIR_MET_NATIVE_RES}_$YYYY_$MM.nc4 LDENS 1980-2021/1-12/1-31/0-23/+90minute RFY3 xy 1 * - 1 1 -* CONV_DEPTH $ROOT/OFFLINE_LIGHTNING/v2020-03/$MET/$YYYY/FLASH_CTH_$MET_${RUNDIR_MET_NATIVE_RES}_$YYYY_$MM.nc4 CTH 1980-2021/1-12/1-31/0-23/+90minute RFY3 xy 1 * - 1 1 +(((.not.LightningClimatology +* FLASH_DENS $ROOT/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_METLIGHTNING}/$YYYY/FLASH_CTH_${RUNDIR_METLIGHTNING}_${RUNDIR_METLIGHTNING_RES}_$YYYY_$MM.nc4 LDENS 1900-2100/1-12/1-31/0-23/+90minute RFY3 xy 1 * - 1 1 +* CONV_DEPTH $ROOT/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_METLIGHTNING}/$YYYY/FLASH_CTH_${RUNDIR_METLIGHTNING}_${RUNDIR_METLIGHTNING_RES}_$YYYY_$MM.nc4 CTH 1900-2100/1-12/1-31/0-23/+90minute RFY3 xy 1 * - 1 1 +))).not.LightningClimatology + +(((LightningClimatology +* FLASH_DENS $ROOT/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_METLIGHTNING}/CLIM/FLASH_CTH_${RUNDIR_METLIGHTNING}_${RUNDIR_METLIGHTNING_RES}_${RUNDIR_MET_LCLIM}.ymonmean.nc4 LDENS 2019/1-12/1/0 C xy 1 * - 1 1 +* CONV_DEPTH $ROOT/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_METLIGHTNING}/CLIM/FLASH_CTH_${RUNDIR_METLIGHTNING}_${RUNDIR_METLIGHTNING_RES}_${RUNDIR_MET_LCLIM}.ymonmean.nc4 CTH 2019/1-12/1/0 C xy 1 * - 1 1 +)))LightningClimatology )))LightNOx ### END SECTION BASE EMISSIONS ### diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.metals b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.metals index 4ebba7d3e..07017f86b 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.metals +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.metals @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * @@ -39,8 +38,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -255,7 +254,7 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagCO b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagCO index 788119fc8..a9e02c190 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagCO +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagCO @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * @@ -39,8 +38,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all Mask fractions: false ### END SECTION SETTINGS ### @@ -125,7 +124,7 @@ Mask fractions: false --> PROD_CO_CH4 : true # 2010-2019 --> PROD_CO_NMVOC : true # 2010-2019 --> GMI_PROD_LOSS : true # 2005 - --> GMD_SFC_CH4 : true # 1979-2020 + --> GMD_SFC_CH4 : true # 1975-2022 --> CMIP6_SFC_CH4 : false # 1750-1978 --> OLSON_LANDMAP : true # 1985 --> YUAN_MODIS_LAI : true # 2000-2020 @@ -179,25 +178,25 @@ Mask fractions: false # aren't included in the Tier 1 CAPS file/ #============================================================================== (((NEI2016_MONMEAN -0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__airportsCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__airportsCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__nonptCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__nonptCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__nonroadCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__nonroadCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__npogCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__npogCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__onroadCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__onroadCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__onroad_caCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__onroad_caCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__railCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__railCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 0 EPA16_CO__c1c2CO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 @@ -215,16 +214,16 @@ Mask fractions: false 0 EPA16_CO__ptnonipmCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__ptnonipmCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__ptnonipmCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__onroad_canCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__onroad_canCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__onroad_mexCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__onroad_mexCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__otharCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__otharCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 -0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_CO__othptCOus - - - - - - COus 26/211/252/1007/1100 1 50 0 EPA16_CO__othptCOoth - - - - - - COoth 26/211/252/1007/1103 1 50 )))NEI2016_MONMEAN @@ -381,36 +380,36 @@ Mask fractions: false # EDGAR, HTAP or CMIP6_SFC_LAND_ANTHRO for the global base emissions %%% #============================================================================== (((CEDSv2 -0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_AGR_us - - - - - - COus 26/1100 1 5 -0 CEDS_CO_AGR_eur - - - - - - COeur 26/1101 1 5 -0 CEDS_CO_AGR_asia - - - - - - COasia 26/1102 1 5 -0 CEDS_CO_AGR_oth - - - - - - COoth 26/1103 1 5 -0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 26/37/35/315 1 5 -0 CEDS_CO_ENE_us - - - - - - COus 26/1100/315 1 5 -0 CEDS_CO_ENE_eur - - - - - - COeur 26/1101/315 1 5 -0 CEDS_CO_ENE_asia - - - - - - COasia 26/1102/37/35/315 1 5 -0 CEDS_CO_ENE_oth - - - - - - COoth 26/1103/315 1 5 -0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 26/316 1 5 -0 CEDS_CO_IND_us - - - - - - COus 26/1100/316 1 5 -0 CEDS_CO_IND_eur - - - - - - COeur 26/1101/316 1 5 -0 CEDS_CO_IND_asia - - - - - - COasia 26/1102/316 1 5 -0 CEDS_CO_IND_oth - - - - - - COoth 26/1103/316 1 5 -0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_TRA_us - - - - - - COus 26/1100 1 5 -0 CEDS_CO_TRA_eur - - - - - - COeur 26/1101 1 5 -0 CEDS_CO_TRA_asia - - - - - - COasia 26/1102 1 5 -0 CEDS_CO_TRA_oth - - - - - - COoth 26/1103 1 5 -0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_RCO_us - - - - - - COus 26/1100 1 5 -0 CEDS_CO_RCO_eur - - - - - - COeur 26/1101 1 5 -0 CEDS_CO_RCO_asia - - - - - - COasia 26/1102 1 5 -0 CEDS_CO_RCO_oth - - - - - - COoth 26/1103 1 5 -0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_SLV_us - - - - - - COus 26/1100 1 5 -0 CEDS_CO_SLV_eur - - - - - - COeur 26/1101 1 5 -0 CEDS_CO_SLV_asia - - - - - - COasia 26/1102 1 5 -0 CEDS_CO_SLV_oth - - - - - - COoth 26/1103 1 5 +0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 2401 1 5 +0 CEDS_CO_AGR_us - - - - - - COus 2401/1100 1 5 +0 CEDS_CO_AGR_eur - - - - - - COeur 2401/1101 1 5 +0 CEDS_CO_AGR_asia - - - - - - COasia 2401/1102 1 5 +0 CEDS_CO_AGR_oth - - - - - - COoth 2401/1103 1 5 +0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2406/706/315 1 5 +0 CEDS_CO_ENE_us - - - - - - COus 2406/706/315/1100 1 5 +0 CEDS_CO_ENE_eur - - - - - - COeur 2406/706/315/1101 1 5 +0 CEDS_CO_ENE_asia - - - - - - COasia 2406/706/315/1102 1 5 +0 CEDS_CO_ENE_oth - - - - - - COoth 2406/706/315/1103 1 5 +0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2407/707/316 1 5 +0 CEDS_CO_IND_us - - - - - - COus 2407/707/316/1100 1 5 +0 CEDS_CO_IND_eur - - - - - - COeur 2407/707/316/1101 1 5 +0 CEDS_CO_IND_asia - - - - - - COasia 2407/707/316/1102 1 5 +0 CEDS_CO_IND_oth - - - - - - COoth 2407/707/316/1103 1 5 +0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 2411/711 1 5 +0 CEDS_CO_TRA_us - - - - - - COus 2411/711/1100 1 5 +0 CEDS_CO_TRA_eur - - - - - - COeur 2411/711/1101 1 5 +0 CEDS_CO_TRA_asia - - - - - - COasia 2411/711/1102 1 5 +0 CEDS_CO_TRA_oth - - - - - - COoth 2411/711/1103 1 5 +0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 2409/709 1 5 +0 CEDS_CO_RCO_us - - - - - - COus 2409/709/1100 1 5 +0 CEDS_CO_RCO_eur - - - - - - COeur 2409/709/1101 1 5 +0 CEDS_CO_RCO_asia - - - - - - COasia 2409/709/1102 1 5 +0 CEDS_CO_RCO_oth - - - - - - COoth 2409/709/1103 1 5 +0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 2407/707 1 5 +0 CEDS_CO_SLV_us - - - - - - COus 2407/707/1100 1 5 +0 CEDS_CO_SLV_eur - - - - - - COeur 2407/707/1101 1 5 +0 CEDS_CO_SLV_asia - - - - - - COasia 2407/707/1102 1 5 +0 CEDS_CO_SLV_oth - - - - - - COoth 2407/707/1103 1 5 0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 0 CEDS_CO_WST_us - - - - - - COus 26/1100 1 5 0 CEDS_CO_WST_eur - - - - - - COeur 26/1101 1 5 @@ -434,9 +433,11 @@ Mask fractions: false >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS.rc )))CEDS_GBDMAPS (((CEDS_GBDMAPS_byFuelType -(((.not.CEDS_GBDMAPS.and..not.CEDSv2 +(((.not.CEDS_GBDMAPS +(((.not.CEDSv2 >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS_byFuelType.rc -))).not.CEDS_GBDMAPS.and..not.CEDSv2 +))).not.CEDSv2 +))).not.CEDS_GBDMAPS )))CEDS_GBDMAPS_byFuelType #============================================================================== @@ -804,11 +805,11 @@ Mask fractions: false #============================================================================== (((MEGAN (((HEMCO_RESTART -108 T_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 T_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 LAI_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -108 PARDR_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 -108 PARDF_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 T_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 T_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 LAI_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +108 PARDR_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 PARDF_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 )))HEMCO_RESTART 108 MEGAN_AEF_ISOP $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_ISOPRENE 1985/1/1/0 C xy kgC/m2/s * 61 1 1 108 MEGAN_AEF_MBOX $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_MBO 1985/1/1/0 C xy kgC/m2/s * 64 1 1 @@ -852,7 +853,7 @@ Mask fractions: false #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- @@ -900,7 +901,7 @@ ${RUNDIR_GMI_PROD_CO} # --- NOAA GMD monthly mean surface CH4 --- #============================================================================== (((GMD_SFC_CH4 -* NOAA_GMD_CH4 $ROOT/NOAA_GMD/v2018-01/monthly.gridded.surface.methane.1979-2020.1x1.nc SFC_CH4 1979-2020/1-12/1/0 RY xy ppbv * - 1 1 +* NOAA_GMD_CH4 $ROOT/NOAA_GMD/v2023-10/monthly.gridded.surface.methane.1975-2022.1x1.nc SFC_CH4 1975-2022/1-12/1/0 RY xy ppbv * - 1 1 )))GMD_SFC_CH4 #============================================================================== @@ -1209,7 +1210,7 @@ ${RUNDIR_GMI_PROD_CO} #============================================================================== # --- EPA NEI day-of-week scale factors --- #============================================================================== -211 NEI99_DOW_CO $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc CO 1999/1-12/WD/0 C xy 1 1 +211 NEI99_DOW_CO $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc CO 1999/1-12/WD/0 C xy 1 1 )))NEI2016_MONMEAN #============================================================================== @@ -1261,6 +1262,27 @@ ${RUNDIR_GMI_PROD_CO} 320 DICE_CP_SF 0.20 - - - xy 1 1 )))DICE_Africa +(((CEDSv2 +#========================================================================= +# --- Sector-wise diel scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +2401 TOD_AGRICULTURE 0.599/0.599/0.599/0.599/0.599/0.649/0.748/0.898/1.098/1.247/1.447/1.597/1.796/1.746/1.696/1.547/1.347/1.098/0.898/0.748/0.649/0.599/0.599/0.599 - - - xy unitless 1 +2406 TOD_ENERGY 0.790/0.720/0.720/0.710/0.740/0.800/0.920/1.080/1.190/1.220/1.210/1.210/1.170/1.150/1.140/1.130/1.100/1.070/1.040/1.020/1.020/1.010/0.960/0.880 - - - xy unitless 1 +2407 TOD_INDUSTRY 0.750/0.750/0.780/0.820/0.880/0.950/1.020/1.090/1.160/1.220/1.280/1.300/1.220/1.240/1.250/1.160/1.080/1.010/0.950/0.900/0.850/0.810/0.780/0.750 - - - xy unitless 1 +2409 TOD_RESIDENTIAL 0.393/0.393/0.393/0.393/0.393/0.492/1.180/1.475/1.574/1.574/1.377/1.180/1.082/1.082/0.984/0.984/0.984/1.082/1.377/1.475/1.377/1.377/0.984/0.393 - - - xy unitless 1 +2411 TOD_TRANSPORT 0.190/0.090/0.060/0.050/0.090/0.220/0.860/1.840/1.860/1.410/1.240/1.200/1.320/1.440/1.450/1.590/2.030/2.080/1.510/1.060/0.740/0.620/0.610/0.440 - - - xy unitless 1 + +#========================================================================= +# --- Sector-wise day-of-week scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +706 DOW_ENERGY 0.850/1.060/1.060/1.060/1.060/1.060/0.850 - - - xy unitless 1 +707 DOW_INDUSTRY 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +709 DOW_RESIDENTIAL 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +711 DOW_TRANSPORT 0.790/1.020/1.060/1.080/1.100/1.140/0.810 - - - xy unitless 1 +)))CEDSv2 + )))EMISSIONS ### END SECTION SCALE FACTORS ### diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagO3 b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagO3 index 90dc02b35..3aa400992 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagO3 +++ b/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagO3 @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} Logfile: * @@ -38,8 +37,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -91,7 +90,7 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- diff --git a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.CH4 b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.CH4 index 2d17e938d..b5bffe66f 100644 --- a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.CH4 +++ b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.CH4 @@ -27,59 +27,12 @@ EmisCH4_Landfills CH4 0 5 -1 2 kg/m2/s CH4_emissions_from_landfi EmisCH4_Wastewater CH4 0 6 -1 2 kg/m2/s CH4_emissions_from_wastewater EmisCH4_Rice CH4 0 7 -1 2 kg/m2/s CH4_emissions_from_rice EmisCH4_OtherAnth CH4 0 8 -1 2 kg/m2/s CH4_emissions_from_other_anthropogenic_sources -EmisCH4_BiomassBurn CH4 0 9 -1 2 kg/m2/s CH4_emissions_from_biomass_burning +EmisCH4_BiomassBurn CH4 111 -1 -1 2 kg/m2/s CH4_emissions_from_biomass_burning EmisCH4_Wetlands CH4 0 10 -1 2 kg/m2/s CH4_emissions_from_wetlands EmisCH4_Seeps CH4 0 11 -1 2 kg/m2/s CH4_emissions_from_geological_seeps EmisCH4_Lakes CH4 0 12 -1 2 kg/m2/s CH4_emissions_from_lakes EmisCH4_Termites CH4 0 13 -1 2 kg/m2/s CH4_emissions_from_termites EmisCH4_SoilAbsorb CH4 0 14 -1 2 kg/m2/s CH4_emissions_from_soil_absorption +EmisCH4_Reservoirs CH4 0 15 -1 2 kg/m2/s CH4_emissions_from_hydroelectric_reservoirs -############################################################################### -##### Anthropogenic emissions diagnostics by inventory ##### -##### (not needed for other sectors with only one inventory) ##### -############################################################################### -#InvGEPA_CH4_TOTAL CH4 0 -1 50 2 kg/m2/s CH4_total_emissions_from_GEPA_inventory -#InvGEPA_CH4_OIL CH4 0 1 50 2 kg/m2/s CH4_oil_emissions_from_GEPA_inventory -#InvGEPA_CH4_GAS CH4 0 2 50 2 kg/m2/s CH4_gas_emissions_from_GEPA_inventory -#InvGEPA_CH4_COAL CH4 0 3 50 2 kg/m2/s CH4_coal_emissions_from_GEPA_inventory -#InvGEPA_CH4_LIVESTOCK CH4 0 4 50 2 kg/m2/s CH4_livestock_emissions_from_GEPA_inventory -#InvGEPA_CH4_LANDFILLS CH4 0 5 50 2 kg/m2/s CH4_landfills_emissions_from_GEPA_inventory -#InvGEPA_CH4_WASTEWATER CH4 0 6 50 2 kg/m2/s CH4_wastewater_emissions_from_GEPA_inventory -#InvGEPA_CH4_RICE CH4 0 7 50 2 kg/m2/s CH4_rice_emissions_from_GEPA_inventory -#InvGEPA_CH4_OTHER_ANTH CH4 0 8 50 2 kg/m2/s CH4_other_anthro_emissions_from_GEPA_inventory -# -#InvScarpelliMexico_CH4_TOTAL CH4 0 -1 30 2 kg/m2/s CH4_total_emissions_from_ScarpelliMexico_inventory -#InvScarpelliMexico_CH4_OIL CH4 0 1 30 2 kg/m2/s CH4_oil_emissions_from_ScarpelliMexico_inventory -#InvScarpelliMexico_CH4_GAS CH4 0 2 30 2 kg/m2/s CH4_gas_emissions_from_ScarpelliMexico_inventory -#InvScarpelliMexico_CH4_COAL CH4 0 3 30 2 kg/m2/s CH4_coal_emissions_from_ScarpelliMexico_inventory -#InvScarpelliMexico_CH4_LIVESTOCK CH4 0 4 30 2 kg/m2/s CH4_livestock_emissions_from_ScarpelliMexico_inventory -#InvScarpelliMexico_CH4_LANDFILLS CH4 0 5 30 2 kg/m2/s CH4_landfills_emissions_from_ScarpelliMexico_inventory -#InvScarpelliMexico_CH4_WASTEWATER CH4 0 6 30 2 kg/m2/s CH4_wastewater_emissions_from_ScarpelliMexico_inventory -#InvScarpelliMexico_CH4_RICE CH4 0 7 30 2 kg/m2/s CH4_rice_emissions_from_ScarpelliMexico_inventory -#InvScarpelliMexico_CH4_OTHER_ANTH CH4 0 8 30 2 kg/m2/s CH4_other_anthro_emissions_from_ScarpelliMexico_inventory -# -#InvScarpelliCanada_CH4_TOTAL CH4 0 -1 100 2 kg/m2/s CH4_total_emissions_from_ScarpelliCanada_inventory -#InvScarpelliCanada_CH4_OIL CH4 0 1 100 2 kg/m2/s CH4_oil_emissions_from_ScarpelliCanada_inventory -#InvScarpelliCanada_CH4_GAS CH4 0 2 100 2 kg/m2/s CH4_gas_emissions_from_ScarpelliCanada_inventory -#InvScarpelliCanada_CH4_COAL CH4 0 3 100 2 kg/m2/s CH4_coal_emissions_from_ScarpelliCanada_inventory -#InvScarpelliCanada_CH4_LIVESTOCK CH4 0 4 100 2 kg/m2/s CH4_livestock_emissions_from_ScarpelliCanada_inventory -#InvScarpelliCanada_CH4_LANDFILLS CH4 0 5 100 2 kg/m2/s CH4_landfills_emissions_from_ScarpelliCanada_inventory -#InvScarpelliCanada_CH4_WASTEWATER CH4 0 6 100 2 kg/m2/s CH4_wastewater_emissions_from_ScarpelliCanada_inventory -#InvScarpelliCanada_CH4_RICE CH4 0 7 100 2 kg/m2/s CH4_rice_emissions_from_ScarpelliCanada_inventory -#InvScarpelliCanada_CH4_OTHER_ANTH CH4 0 8 100 2 kg/m2/s CH4_other_anthro_emissions_from_ScarpelliCanada_inventory -# -#InvGFEI_CH4_TOTAL CH4 0 -1 5 2 kg/m2/s CH4_total_emissions_from_GFEI_inventory -#InvGFEI_CH4_OIL CH4 0 1 5 2 kg/m2/s CH4_oil_emissions_from_GFEI_inventory -#InvGFEI_CH4_GAS CH4 0 2 5 2 kg/m2/s CH4_gas_emissions_from_GFEI_inventory -#InvGFEI_CH4_COAL CH4 0 3 5 2 kg/m2/s CH4_coal_emissions_from_GFEI_inventory -# -#InvEDGAR_CH4_TOTAL CH4 0 -1 1 2 kg/m2/s CH4_total_emissions_from_EDGAR_inventory -#InvEDGAR_CH4_OIL CH4 0 1 1 2 kg/m2/s CH4_oil_emissions_from_EDGAR_inventory -#InvEDGAR_CH4_GAS CH4 0 2 1 2 kg/m2/s CH4_gas_emissions_from_EDGAR_inventory -#InvEDGAR_CH4_COAL CH4 0 3 1 2 kg/m2/s CH4_coal_emissions_from_EDGAR_inventory -#InvEDGAR_CH4_LIVESTOCK CH4 0 4 1 2 kg/m2/s CH4_livestock_emissions_from_EDGAR_inventory -#InvEDGAR_CH4_LANDFILLS CH4 0 5 1 2 kg/m2/s CH4_landfills_emissions_from_EDGAR_inventory -#InvEDGAR_CH4_WASTEWATER CH4 0 6 1 2 kg/m2/s CH4_wastewater_emissions_from_EDGAR_inventory -#InvEDGAR_CH4_RICE CH4 0 7 1 2 kg/m2/s CH4_rice_emissions_from_EDGAR_inventory -#InvEDGAR_CH4_OTHER_ANTH CH4 0 8 1 2 kg/m2/s CH4_other_anthro_emissions_from_EDGAR_inventory #EOC diff --git a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers index 490deff1e..24b841103 100644 --- a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers +++ b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers @@ -27,17 +27,16 @@ EmisRn_Soil Rn222 100 -1 -1 2 kg/m2/s ##### Be emissions ##### ############################################################################### EmisBe7_Cosmic Be7 100 -1 -1 3 kg/m2/s -EmisBe7Strat_Cosmic Be7Strat 100 -1 -1 3 kg/m2/s +EmisBe7s_Cosmic Be7s 100 -1 -1 3 kg/m2/s EmisBe10_Cosmic Be10 100 -1 -1 3 kg/m2/s -EmisBe10Strat_Cosmic Be10Strat 100 -1 -1 3 kg/m2/s +EmisBe10s_Cosmic Be10s 100 -1 -1 3 kg/m2/s ############################################################################### ##### Transport tracer emissions ##### ############################################################################### -EmisSF6Tracer SF6Tracer -1 -1 -1 2 kg/m2/s -EmisCH3ITracer CH3ITracer -1 -1 -1 2 molec/cm2/s -EmisCOAnthroEmis25dayTracer COAnthroEmis25dayTracer -1 -1 -1 2 kg/m2/s -EmisCOAnthroEmis50dayTracer COAnthroEmis50dayTracer -1 -1 -1 2 kg/m2/s -EmisCOUniformEmis25dayTracer COUniformEmis25dayTracer -1 -1 -1 2 kg/m2/s +EmisSF6 SF6 -1 -1 -1 2 kg/m2/s +EmisCH3I CH3I -1 -1 -1 2 kg/m2/s +EmisCO_25 CO_25 -1 -1 -1 2 kg/m2/s +EmisCO_50 CO_50 -1 -1 -1 2 kg/m2/s #EOC \ No newline at end of file diff --git a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon index f1e5f36ec..47504a22c 100644 --- a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon +++ b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon @@ -16,9 +16,8 @@ # Name Spec ExtNr Cat Hier Dim OutUnit LongName ############################################################################### -##### CH4 sources ##### +##### CH4 sources ##### ############################################################################### - EmisCH4_Total CH4 -1 -1 -1 2 kg/m2/s CH4_emissions_from_all_sectors EmisCH4_Oil CH4 0 1 -1 2 kg/m2/s CH4_emissions_from_oil EmisCH4_Gas CH4 0 2 -1 2 kg/m2/s CH4_emissions_from_gas @@ -28,12 +27,13 @@ EmisCH4_Landfills CH4 0 5 -1 2 kg/m2/s CH4_emissions_from_land EmisCH4_Wastewater CH4 0 6 -1 2 kg/m2/s CH4_emissions_from_wastewater EmisCH4_Rice CH4 0 7 -1 2 kg/m2/s CH4_emissions_from_rice EmisCH4_OtherAnth CH4 0 8 -1 2 kg/m2/s CH4_emissions_from_other_anthropogenic_sources -EmisCH4_BiomassBurn CH4 0 9 -1 2 kg/m2/s CH4_emissions_from_biomass_burning +EmisCH4_BiomassBurn CH4 111 -1 -1 2 kg/m2/s CH4_emissions_from_biomass_burning EmisCH4_Wetlands CH4 0 10 -1 2 kg/m2/s CH4_emissions_from_wetlands EmisCH4_Seeps CH4 0 11 -1 2 kg/m2/s CH4_emissions_from_geological_seeps EmisCH4_Lakes CH4 0 12 -1 2 kg/m2/s CH4_emissions_from_lakes EmisCH4_Termites CH4 0 13 -1 2 kg/m2/s CH4_emissions_from_termites EmisCH4_SoilAbsorb CH4 0 14 -1 2 kg/m2/s CH4_emissions_from_soil_absorption +EmisCH4_Reservoirs CH4 0 15 -1 2 kg/m2/s CH4_emissions_from_hydroelectric_reservoirs ############################################################################### ##### CO sources ##### @@ -41,7 +41,7 @@ EmisCH4_SoilAbsorb CH4 0 14 -1 2 kg/m2/s CH4_emissions_from_soil EmisCO_Total CO -1 -1 -1 3 kg/m2/s CO_emission_flux_from_all_sectors EmisCO_Aircraft CO 0 20 -1 3 kg/m2/s CO_emission_flux_from_aircraft EmisCO_Anthro CO 0 1 -1 3 kg/m2/s CO_emission_flux_from_anthropogenic -EmisCO_BioBurn CO 0 5 -1 2 kg/m2/s CO_emission_flux_from_biomass_burning +EmisCO_BiomassBurn CO 111 -1 -1 2 kg/m2/s CO_emission_flux_from_biomass_burning EmisCO_Ship CO 0 10 -1 2 kg/m2/s CO_emission_flux_from_ships ############################################################################### @@ -55,13 +55,7 @@ EmisCO2_NetTerrExch CO2 0 5 -1 2 kg/m2/s CO2_net_terrestrial_exc EmisCO2_Ship CO2 0 6 -1 2 kg/m2/s CO2_ship_emissions EmisCO2_Aviation CO2 0 7 -1 3 kg/m2/s CO2_aviation_emissions EmisCO2_CO2SurfCorr CO2 0 8 -1 2 kg/m2/s CO2_surface_correction_for_CO_oxidation - -#NOTE: Biomass burning doesn't seem to work. Keep here for now. -# Uncomment this if GFED is used -#EmisCO2_Biomass_GFED CO2 111 1 1 2 kg/m2/s CO2_biomass_burning_emissions_from_GFED4 - -# Uncomment this if FINN is used -#EmisCO2_Biomass_FINN CO2 114 1 1 2 kg/m2/s CO2_biomass_burning_emissions_from_FINN +EmisCO2_BiomassBurn CO2 111 -1 -1 2 kg/m2/s CO2_biomass_burning_emissions_from_GFED4 ############################################################################### ##### OCS sources ##### @@ -71,77 +65,3 @@ EmisOCS_Anthro OCS 0 1 -1 2 kg/m2/s OCS_emission_flux_from_ EmisOCS_Bioburn OCS 0 2 -1 2 kg/m2/s OCS_emission_flux_from_biomass_burning EmisOCS_MissingOcean OCS 0 3 -1 2 kg/m2/s OCS_emission_flux_from_missing_ocean EmisOCS_Ocean OCS 0 4 -1 2 kg/m2/s OCS_emission_flux_from_ocean - -# Tagged CO species, uncomment if needed -# -################################################################################ -###### COus sources ##### -################################################################################ -#EmisCOus_Total COus -1 -1 -1 3 kg/m2/s COus_emission_flux_from_all_sectors -#EmisCOus_Aircraft COus 0 20 -1 3 kg/m2/s COus_emission_flux_from_aircraft -#EmisCOus_Anthro COus 0 1 -1 3 kg/m2/s COus_emission_flux_from_anthropogenic -#EmisCOus_BioBurn COus 0 5 -1 2 kg/m2/s COus_emission_flux_from_biomass_burning -#EmisCOus_Ship COus 0 10 -1 2 kg/m2/s COus_emission_flux_from_ships -# -################################################################################ -###### COeur sources ##### -################################################################################ -#EmisCOeur_Total COeur -1 -1 -1 3 kg/m2/s COeur_emission_flux_from_all_sectors -#EmisCOeur_Aircraft COeur 0 20 -1 3 kg/m2/s COeur_emission_flux_from_aircraft -#EmisCOeur_Anthro COeur 0 1 -1 3 kg/m2/s COeur_emission_flux_from_anthropogenic -#EmisCOeur_BioBurn COeur 0 5 -1 2 kg/m2/s COeur_emission_flux_from_biomass_burning -#EmisCOeur_Ship COeur 0 10 -1 2 kg/m2/s COeur_emission_flux_from_ships -# -################################################################################ -###### COasia sources ##### -################################################################################ -#EmisCOasia_Total COasia -1 -1 -1 3 kg/m2/s COasia_emission_flux_from_all_sectors -#EmisCOasia_Aircraft COasia 0 20 -1 3 kg/m2/s COasia_emission_flux_from_aircraft -#EmisCOasia_Anthro COasia 0 1 -1 3 kg/m2/s COasia_emission_flux_from_anthropogenic -#EmisCOasia_BioBurn COasia 0 5 -1 2 kg/m2/s COasia_emission_flux_from_biomass_burning -#EmisCOasia_Ship COasia 0 10 -1 2 kg/m2/s COasia_emission_flux_from_ships -# -################################################################################ -###### COoth sources ##### -################################################################################ -#EmisCOoth_Total COoth -1 -1 -1 3 kg/m2/s COoth_emission_flux_from_all_sectors -#EmisCOoth_Aircraft COoth 0 20 -1 3 kg/m2/s COoth_emission_flux_from_aircraft -#EmisCOoth_Anthro COoth 0 1 -1 3 kg/m2/s COoth_emission_flux_from_anthropogenic -#EmisCOoth_BioBurn COoth 0 5 -1 2 kg/m2/s COoth_emission_flux_from_biomass_burning -#EmisCOoth_Ship COoth 0 10 -1 2 kg/m2/s COoth_emission_flux_from_ships -# -################################################################################ -###### COus sources ##### -################################################################################ -#EmisCOus_Total COus -1 -1 -1 3 kg/m2/s COus_emission_flux_from_all_sectors -#EmisCOus_Aircraft COus 0 20 -1 3 kg/m2/s COus_emission_flux_from_aircraft -#EmisCOus_Anthro COus 0 1 -1 3 kg/m2/s COus_emission_flux_from_anthropogenic -#EmisCOus_BioBurn COus 0 5 -1 2 kg/m2/s COus_emission_flux_from_biomass_burning -#EmisCOus_Ship COus 0 10 -1 2 kg/m2/s COus_emission_flux_from_ships -# -################################################################################ -###### COeur sources ##### -################################################################################ -#EmisCOeur_Total COeur -1 -1 -1 3 kg/m2/s COeur_emission_flux_from_all_sectors -#EmisCOeur_Aircraft COeur 0 20 -1 3 kg/m2/s COeur_emission_flux_from_aircraft -#EmisCOeur_Anthro COeur 0 1 -1 3 kg/m2/s COeur_emission_flux_from_anthropogenic -#EmisCOeur_BioBurn COeur 0 5 -1 2 kg/m2/s COeur_emission_flux_from_biomass_burning -#EmisCOeur_Ship COeur 0 10 -1 2 kg/m2/s COeur_emission_flux_from_ships -# -################################################################################ -###### COasia sources ##### -################################################################################ -#EmisCOasia_Total COasia -1 -1 -1 3 kg/m2/s COasia_emission_flux_from_all_sectors -#EmisCOasia_Aircraft COasia 0 20 -1 3 kg/m2/s COasia_emission_flux_from_aircraft -#EmisCOasia_Anthro COasia 0 1 -1 3 kg/m2/s COasia_emission_flux_from_anthropogenic -#EmisCOasia_BioBurn COasia 0 5 -1 2 kg/m2/s COasia_emission_flux_from_biomass_burning -#EmisCOasia_Ship COasia 0 10 -1 2 kg/m2/s COasia_emission_flux_from_ships -# -################################################################################ -###### COoth sources ##### -################################################################################ -#EmisCOoth_Total COoth -1 -1 -1 3 kg/m2/s COoth_emission_flux_from_all_sectors -#EmisCOoth_Aircraft COoth 0 20 -1 3 kg/m2/s COoth_emission_flux_from_aircraft -#EmisCOoth_Anthro COoth 0 1 -1 3 kg/m2/s COoth_emission_flux_from_anthropogenic -#EmisCOoth_BioBurn COoth 0 5 -1 2 kg/m2/s COoth_emission_flux_from_biomass_burning -#EmisCOoth_Ship COoth 0 10 -1 2 kg/m2/s COoth_emission_flux_from_ships \ No newline at end of file diff --git a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem index 22b317b93..4826f5a0b 100644 --- a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem +++ b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem @@ -32,10 +32,16 @@ ############################################################################### ##### ACET emissions ##### ############################################################################### -EmisACET_Total ACET -1 -1 -1 3 kg/m2/s ACET_emission_flux_from_all_sectors -EmisACET_BioBurn ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_biomass_burning -EmisACET_Biogenic ACET 0 4 -1 2 kg/m2/s ACET_emission_flux_from_biogenic_sources -EmisACET_Ocean ACET 101 -1 -1 2 kg/m2/s ACET_emission_flux_from_ocean +EmisACET_Total ACET -1 -1 -1 3 kg/m2/s ACET_emission_flux_from_all_sectors +EmisACET_BioBurn ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_biomass_burning +EmisACET_Biogenic ACET 0 4 -1 2 kg/m2/s ACET_emission_flux_from_biogenic_sources +EmisACET_Ocean ACET 101 -1 -1 2 kg/m2/s ACET_emission_flux_from_ocean + +############################################################################### +##### ACTA emissions ##### +############################################################################### +EmisACTA_Total ACTA -1 -1 -1 3 kg/m2/s ACTA_emission_flux_from_all_sectors +EmisACTA_BioBurn ACTA 111 -1 -1 2 kg/m2/s ACTA_emission_flux_from_biomass_burning ############################################################################### ##### ALD2 emissions ##### @@ -208,11 +214,29 @@ EmisEOH_Ship EOH 0 10 -1 2 kg/m2/s EOH_emission_flux_from_sh ############################################################################### EmisETNO3_Ocean ETNO3 101 -1 -1 2 kg/m2/s ETNO3_emission_flux_from_ocean +############################################################################### +##### FURA emissions ##### +############################################################################### +EmisFURA_Total FURA -1 -1 -1 3 kg/m2/s FURA_emission_flux_from_all_sectors +EmisFURA_BioBurn FURA 111 -1 -1 2 kg/m2/s FURA_emission_flux_from_biomass_burning + +############################################################################### +##### GLYX emissions ##### +############################################################################### +EmisGLYX_Total GLYX -1 -1 -1 3 kg/m2/s GLYX_emission_flux_from_all_sectors +EmisGLYX_BioBurn GLYX 111 -1 -1 2 kg/m2/s GLYX_emission_flux_from_biomass_burning + ############################################################################### ##### H2O emissions ##### ############################################################################### EmisH2O_Aircraft H2O 0 20 -1 3 kg/m2/s H2O_emission_flux_from_aircraft +############################################################################### +##### HCl emissions ##### +############################################################################### +EmisHCl_Total HCl 0 -1 -1 3 kg/m2/s HCl_emission_flux_from_all_sectors +EmisHCl_Anthro HCl 0 1 -1 3 kg/m2/s HCl_emission_flux_from_anthropogenic + ############################################################################### ##### HCOOH sources ##### ############################################################################### @@ -234,6 +258,7 @@ EmisHONO_Aircraft HONO 0 20 -1 3 kg/m2/s HONO_emission_flux_from_a ##### ISOP emissions ##### ############################################################################### EmisISOP_Total ISOP -1 -1 -1 3 kg/m2/s ISOP_emission_flux_from_all_sectors +EmisISOP_BioBurn ISOP 111 -1 -1 2 kg/m2/s ISOP_emission_flux_from_biomass_burning EmisISOP_Biogenic ISOP 0 4 -1 2 kg/m2/s ISOP_emission_flux_from_biogenic_sources ############################################################################### @@ -263,9 +288,8 @@ EmisMENO3_Ocean MENO3 101 -1 -1 2 kg/m2/s MENO3_emission_flux_from_ ############################################################################### ##### MGLY emissions ##### ############################################################################### -# Zero for now, so comment out -#EmisMGLY_Total MGLY -1 -1 -1 3 kg/m2/s MGLY_emission_flux_from_all_sectors -#EmisMGLY_Anthro MGLY 0 1 -1 3 kg/m2/s MGLY_emission_flux_from_anthropogenic +EmisMGLY_Total MGLY -1 -1 -1 3 kg/m2/s MGLY_emission_flux_from_all_sectors +EmisMGLY_BioBurn MGLY 111 -1 -1 2 kg/m2/s MGLY_emission_flux_from_biomass_burning ############################################################################### ##### MOH emissions ##### @@ -287,8 +311,15 @@ EmisMTPA_Biogenic MTPA 0 4 -1 2 kg/m2/s MTPA_emission_flux_from_b ############################################################################### ##### MTPO emissions ##### ############################################################################### +EmisMTPO_Total MTPO -1 -1 -1 3 kg/m2/s MTPO_emission_flux_from_all_sectors EmisMTPO_Biogenic MTPO 0 4 -1 2 kg/m2/s MTPO_emission_flux_from_biogenic_sources +############################################################################### +##### MVK emissions ##### +############################################################################### +EmisMVK_Total MVK -1 -1 -1 3 kg/m2/s MVK_emission_flux_from_all_sectors +EmisMVK_BioBurn MVK 111 -1 -1 2 kg/m2/s MVK_emission_flux_from_biomass_burning + ############################################################################### ##### NAP emissions ##### ############################################################################### @@ -353,6 +384,12 @@ EmispFe_Total pFe -1 -1 -1 3 kg/m2/s pFe_emission_flux_from_al EmispFe_Anthro pFe 0 1 -1 3 kg/m2/s pFe_emission_flux_from_anthropogenic EmispFe_Ship pFe 0 10 -1 2 kg/m2/s pFe_emission_flux_from_ships +############################################################################### +##### PHEN emissions ##### +############################################################################### +EmisPHEN_Total PHEN -1 -1 -1 3 kg/m2/s PHEN_emission_flux_from_all_sectors +EmisPHEN_BioBurn PHEN 111 -1 -1 2 kg/m2/s PHEN_emission_flux_from_biomass_burning + ############################################################################### ##### POG1 and POG2 emissions ##### ############################################################################### @@ -378,6 +415,7 @@ EmisPRPE_Ship PRPE 0 10 -1 2 kg/m2/s PRPE_emission_flux_from_s ############################################################################### EmisRCHO_Total RCHO -1 -1 -1 3 kg/m2/s RCHO_emission_flux_from_all_sectors EmisRCHO_Aircraft RCHO 0 20 -1 3 kg/m2/s RCHO_emission_flux_from_aircraft +EmisRCHO_BioBurn RCHO 111 -1 -1 2 kg/m2/s RCHO_emission_flux_from_biomass_burning ############################################################################### ##### SESQ emissions ##### @@ -389,11 +427,11 @@ EmisRCHO_Aircraft RCHO 0 20 -1 3 kg/m2/s RCHO_emission_flux_from_a ##### Sea salt emissions ##### ############################################################################### EmisSALA_Natural SALA 0 3 -1 2 kg/m2/s SALA_emission_flux_from_natural_sources -#EmisBrSALA_Natural BrSALA 0 3 -1 2 kg/m2/s BrSALA_emission_flux_from_natural_sources +EmisBrSALA_Natural BrSALA 0 3 -1 2 kg/m2/s BrSALA_emission_flux_from_natural_sources EmisSALAAL_Natural SALAAL 0 3 -1 2 kg/m2/s SALAAL_emission_flux_from_natural_sources EmisSALACL_Natural SALACL 0 3 -1 2 kg/m2/s SALACL_emission_flux_from_natural_sources EmisSALC_Natural SALC 0 3 -1 2 kg/m2/s SALC_emission_flux_from_natural_sources -#EmisBrSALC_Natural BrSALC 0 3 -1 2 kg/m2/s BrSALC_emission_flux_from_natural_sources +EmisBrSALC_Natural BrSALC 0 3 -1 2 kg/m2/s BrSALC_emission_flux_from_natural_sources EmisSALCAL_Natural SALCAL 0 3 -1 2 kg/m2/s SALCAL_emission_flux_from_natural_sources EmisSALCCL_Natural SALCCL 0 3 -1 2 kg/m2/s SALCCL_emission_flux_from_natural_sources @@ -532,6 +570,11 @@ HcoConvectiveCloudTopHeight -1 103 -1 -1 2 level Convective_cloud_ #InvORDONEZ_CH2IBr CH2IBr 0 1 1 2 kg/m2/s CH2IBr_emission_flux_from_ORDONEZ_IODOCARB_inventory #InvORDONEZ_CH3I CH3I 0 1 1 2 kg/m2/s CH3I_emission_flux_from_ORDONEZ_IODOCARB_inventory +#============================= +# GT_Chlorine +#============================= +#InvGTChlorine_HCl HCl 0 1 1 2 kg/m2/s HCl_emission_flux_from_GT_Chlorine_inventory + #============================= # CEDS_SHIP #============================= @@ -681,6 +724,7 @@ HcoConvectiveCloudTopHeight -1 103 -1 -1 2 level Convective_cloud_ # GFED Extension #============================= #InvGFED_ACET ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_GFED_extension +#InvGFED_ACTA ACTA 111 -1 -1 2 kg/m2/s ACTA_emission_flux_from_GFED_extension #InvGFED_ALD2 ALD2 111 -1 -1 2 kg/m2/s ALD2_emission_flux_from_GFED_extension #InvGFED_ALK4 ALK4 111 -1 -1 2 kg/m2/s ALK4_emission_flux_from_GFED_extension #InvGFED_BCPI BCPI 111 -1 -1 2 kg/m2/s BCPI_emission_flux_from_GFED_extension @@ -691,17 +735,24 @@ HcoConvectiveCloudTopHeight -1 103 -1 -1 2 level Convective_cloud_ #InvGFED_CH2O CH2O 111 -1 -1 2 kg/m2/s CH2O_emission_flux_from_GFED_extension #InvGFED_CO CO 111 -1 -1 2 kg/m2/s CO_emission_flux_from_GFED_extension #InvGFED_EOH EOH 111 -1 -1 2 kg/m2/s EOH_emission_flux_from_GFED_extension +#InvGFED_FURA FURA 111 -1 -1 2 kg/m2/s FURA_emission_flux_from_GFED_extension +#InvGFED_GLYX GLYX 111 -1 -1 2 kg/m2/s GLYX_emission_flux_from_GFED_extension +#InvGFED_ISOP ISOP 111 -1 -1 2 kg/m2/s ISOP_emission_flux_from_GFED_extension #InvGFED_MEK MEK 111 -1 -1 2 kg/m2/s MEK_emission_flux_from_GFED_extension +#InvGFED_MGLY MGLY 111 -1 -1 2 kg/m2/s MGLY_emission_flux_from_GFED_extension #InvGFED_MOH MOH 111 -1 -1 2 kg/m2/s MOH_emission_flux_from_GFED_extension #InvGFED_MTPA MTP 111 -1 -1 2 kg/m2/s MTPA_emission_flux_from_GFED_extension +#InvGFED_MVK MVK 111 -1 -1 2 kg/m2/s MVK_emission_flux_from_GFED_extension #InvGFED_NAP NAP 111 -1 -1 2 kg/m2/s NAP_emission_flux_from_GFED_extension #InvGFED_NH3 NH3 111 -1 -1 2 kg/m2/s NH3_emission_flux_from_GFED_extension #InvGFED_NO NO 111 -1 -1 2 kg/m2/s NO_emission_flux_from_GFED_extension #InvGFED_OCPI OCPI 111 -1 -1 2 kg/m2/s OCPI_emission_flux_from_GFED_extension #InvGFED_OCPO OCPO 111 -1 -1 2 kg/m2/s OCPO_emission_flux_from_GFED_extension +#InvGFED_PHEN PHEN 111 -1 -1 2 kg/m2/s PHEN_emission_flux_from_GFED_extension #InvGFED_POG1 POG1 111 -1 -1 2 kg/m2/s POG1_emission_flux_from_GFED_extension #InvGFED_POG2 POG2 111 -1 -1 2 kg/m2/s POG2_emission_flux_from_GFED_extension #InvGFED_PRPE PRPE 111 -1 -1 2 kg/m2/s PRPE_emission_flux_from_GFED_extension +#InvGFED_RCHO RCHO 111 -1 -1 2 kg/m2/s RCHO_emission_flux_from_GFED_extension #InvGFED_SO2 SO2 111 -1 -1 2 kg/m2/s SO2_emission_flux_from_GFED_extension #InvGFED_SOAP SOAP 111 -1 -1 2 kg/m2/s SOAP_emission_flux_from_GFED_extension #InvGFED_TOLU TOLU 111 -1 -1 2 kg/m2/s TOLU_emission_flux_from_GFED_extension diff --git a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem.onlineE b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem.onlineE index 0bce33ea8..52439a5c0 100644 --- a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem.onlineE +++ b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem.onlineE @@ -386,11 +386,11 @@ EmisRCHO_Aircraft RCHO 0 20 -1 3 kg/m2/s RCHO_emission_flux_from_a ##### Sea salt emissions ##### ############################################################################### EmisSALA_Natural SALA 107 -1 -1 2 kg/m2/s SALA_emission_flux_from_natural_sources -#EmisBrSALA_Natural BrSALA 107 -1 -1 2 kg/m2/s BrSALA_emission_flux_from_natural_sources +EmisBrSALA_Natural BrSALA 107 -1 -1 2 kg/m2/s BrSALA_emission_flux_from_natural_sources EmisSALAAL_Natural SALAAL 107 -1 -1 2 kg/m2/s SALAAL_emission_flux_from_natural_sources EmisSALACL_Natural SALACL 107 -1 -1 2 kg/m2/s SALACL_emission_flux_from_natural_sources EmisSALC_Natural SALC 107 -1 -1 2 kg/m2/s SALC_emission_flux_from_natural_sources -#EmisBrSALC_Natural BrSALC 107 -1 -1 2 kg/m2/s BrSALC_emission_flux_from_natural_sources +EmisBrSALC_Natural BrSALC 107 -1 -1 2 kg/m2/s BrSALC_emission_flux_from_natural_sources EmisSALCAL_Natural SALCAL 107 -1 -1 2 kg/m2/s SALCAL_emission_flux_from_natural_sources EmisSALCCL_Natural SALCCL 107 -1 -1 2 kg/m2/s SALCCL_emission_flux_from_natural_sources diff --git a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.tagCH4 b/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.tagCH4 deleted file mode 100644 index 55cbf34db..000000000 --- a/run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.tagCH4 +++ /dev/null @@ -1,16 +0,0 @@ -# Name Spec ExtNr Cat Hier Dim OutUnit -EMIS_CH4_TOTAL CH4 -1 -1 -1 2 molec/cm2/s -EMIS_CH4_OIL CH4 0 1 -1 2 molec/cm2/s -EMIS_CH4_GAS CH4 0 2 -1 2 molec/cm2/s -EMIS_CH4_COAL CH4 0 3 -1 2 molec/cm2/s -EMIS_CH4_LIVESTOCK CH4 0 4 -1 2 molec/cm2/s -EMIS_CH4_LANDFILLS CH4 0 5 -1 2 molec/cm2/s -EMIS_CH4_WASTEWATER CH4 0 6 -1 2 molec/cm2/s -EMIS_CH4_RICE CH4 0 7 -1 2 molec/cm2/s -EMIS_CH4_OTHERANTH CH4 0 8 -1 2 molec/cm2/s -EMIS_CH4_BIOMASSBURN CH4 0 9 -1 2 molec/cm2/s -EMIS_CH4_WETLANDS CH4 0 10 -1 2 molec/cm2/s -EMIS_CH4_SEEPS CH4 0 11 -1 2 molec/cm2/s -EMIS_CH4_LAKES CH4 0 12 -1 2 molec/cm2/s -EMIS_CH4_TERMITES CH4 0 13 -1 2 molec/cm2/s -EMIS_CH4_SOILABSORB CH4 0 14 -1 2 molec/cm2/s diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.CH4 b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.CH4 index 48c64140a..ffafc62ae 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.CH4 +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.CH4 @@ -35,8 +35,9 @@ COLLECTIONS: 'Restart', #'CloudConvFlux', #'ConcAfterChem', #'LevelEdgeDiags', - #'SatDiagn', - #'StateMet', + #'SatDiagn', + #'SatDiagnEdge', + 'StateMet', #'BoundaryConditions', :: ############################################################################### @@ -100,7 +101,7 @@ COLLECTIONS: 'Restart', SpeciesConc.duration: ${RUNDIR_HIST_TIME_AVG_DUR} SpeciesConc.mode: 'time-averaged' SpeciesConc.fields: 'SpeciesConcVV_?ALL? ', - 'SpeciesConcMND_?ALL? ', + ##'SpeciesConcMND_?ALL? ', :: #============================================================================== # %%%%% THE Budget COLLECTION %%%%% @@ -118,21 +119,23 @@ COLLECTIONS: 'Restart', Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', 'BudgetEmisDryDepTrop_?ADV? ', 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', 'BudgetConvectionPBL_?ADV? ', - 'BudgetWetDepFull_?WET? ', - 'BudgetWetDepTrop_?WET? ', - 'BudgetWetDepPBL_?WET? ', + 'BudgetConvectionLevs1to35_?ADV? ', :: #============================================================================== # %%%%% THE CH4 COLLECTION %%%%% @@ -232,6 +235,21 @@ COLLECTIONS: 'Restart', 'SatDiagnSurfFlux_CH4 ', :: #============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% The StateMet COLLECTION %%%%% # # Fields of the State_Met object (also see the LevelEdgeDiags collection) @@ -260,10 +278,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.CO2 b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.CO2 index d4d18c127..be4672d21 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.CO2 +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.CO2 @@ -34,6 +34,7 @@ COLLECTIONS: 'Restart', #'CloudConvFlux', #'LevelEdgeDiags', #'SatDiagn', + #'SatDiagnEdge', #'StateMet', #'BoundaryConditions', :: @@ -93,21 +94,23 @@ COLLECTIONS: 'Restart', Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', 'BudgetEmisDryDepTrop_?ADV? ', 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', 'BudgetConvectionPBL_?ADV? ', - 'BudgetWetDepFull_?WET? ', - 'BudgetWetDepTrop_?WET? ', - 'BudgetWetDepPBL_?WET? ', + 'BudgetConvectionLevs1to35_?ADV? ', :: #============================================================================== # %%%%% THE CO2 COLLECTION %%%%% @@ -190,6 +193,21 @@ COLLECTIONS: 'Restart', 'SatDiagnSurfFlux_CO2 ', :: #============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% The StateMet COLLECTION %%%%% # # Fields of the State_Met object (also see the LevelEdgeDiags collection) @@ -218,10 +236,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.Hg b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.Hg index 760292910..69d8de0a8 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.Hg +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.Hg @@ -38,6 +38,7 @@ COLLECTIONS: 'Restart', #'LevelEdgeDiags', #'ProdLoss', #'SatDiagn', + #'SatDiagnEdge', #'StateMet', #'WetLossConv', #'WetLossLS', @@ -107,21 +108,27 @@ COLLECTIONS: 'Restart', Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', 'BudgetEmisDryDepTrop_?ADV? ', 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', 'BudgetWetDepFull_?WET? ', 'BudgetWetDepTrop_?WET? ', 'BudgetWetDepPBL_?WET? ', + 'BudgetWetDepLevs1to35_?WET? ', :: #============================================================================== # %%%%% THE CloudConvFlux COLLECTION %%%%% @@ -291,6 +298,21 @@ COLLECTIONS: 'Restart', 'SatDiagnLoss_?LOS? ', :: #============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% The StateMet COLLECTION %%%%% # # Fields of the State_Met object (also see the LevelEdgeDiags collection) @@ -319,10 +341,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.POPs b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.POPs index 67cc67bfc..d88f59159 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.POPs +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.POPs @@ -95,21 +95,27 @@ COLLECTIONS: 'Restart', Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', 'BudgetEmisDryDepTrop_?ADV? ', 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', 'BudgetWetDepFull_?WET? ', 'BudgetWetDepTrop_?WET? ', 'BudgetWetDepPBL_?WET? ', + 'BudgetWetDepLevs1to35_?WET? ', :: #============================================================================== # %%%%% THE CloudConvFlux COLLECTION %%%%% @@ -213,10 +219,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.TransportTracers b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.TransportTracers index 060f364a7..29061c447 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.TransportTracers +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.TransportTracers @@ -30,11 +30,12 @@ EXPID: ./OutputDir/GEOSChem COLLECTIONS: 'Restart', 'RadioNuclide', 'SpeciesConc', - 'Budget', + #'Budget', 'CloudConvFlux', 'DryDep', 'LevelEdgeDiags', #'SatDiagn', + #'SatDiagnEdge', 'StateMet', 'WetLossConv', 'WetLossLS', @@ -96,21 +97,27 @@ COLLECTIONS: 'Restart', Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', 'BudgetEmisDryDepTrop_?ADV? ', 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', 'BudgetWetDepFull_?WET? ', 'BudgetWetDepTrop_?WET? ', 'BudgetWetDepPBL_?WET? ', + 'BudgetWetDepLevs1to35_?WET? ', :: #============================================================================== # %%%%% THE CloudConvFlux COLLECTION %%%%% @@ -171,14 +178,14 @@ COLLECTIONS: 'Restart', RadioNuclide.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} RadioNuclide.duration: ${RUNDIR_HIST_TIME_AVG_DUR} RadioNuclide.mode: 'time-averaged' - RadioNuclide.fields: 'PbFromRnDecay ', - 'RadDecay_Rn222 ', - 'RadDecay_Pb210 ', - 'RadDecay_Pb210Strat ', - 'RadDecay_Be7 ', - 'RadDecay_Be7Strat ', - 'RadDecay_Be10 ', - 'RadDecay_Be10Strat ', + RadioNuclide.fields: 'PbFromRnDecay ', + 'RadDecay_Rn222 ', + 'RadDecay_Pb210 ', + 'RadDecay_Pb210s ', + 'RadDecay_Be7 ', + 'RadDecay_Be7s ', + 'RadDecay_Be10 ', + 'RadDecay_Be10s ', :: #============================================================================== # %%%%% THE SatDiagn COLLECTION %%%%% @@ -231,6 +238,21 @@ COLLECTIONS: 'Restart', 'SatDiagnSurfFlux_Be7 ', :: #============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% The StateMet COLLECTION %%%%% # # Fields of the State_Met object (also see the LevelEdgeDiags collection) @@ -259,10 +281,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.aerosol b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.aerosol index d253977df..2bbcb136d 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.aerosol +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.aerosol @@ -7,7 +7,7 @@ # EXPID allows you to specify the beginning of the file path corresponding # to each diagnostic collection. For example: # -# EXPID: ./GEOSChem +# EXPID: ./GEOSChem # Will create netCDF files whose names begin "GEOSChem", # in this run directory. # @@ -37,8 +37,9 @@ COLLECTIONS: 'Restart', #'LevelEdgeDiags', #'ProdLoss', #'SatDiagn', - #'StateChm', - #'StateMet', + #'SatDiagnEdge', + #'StateChm', + #'StateMet', #'WetLossConv', #'WetLossLS', #'BoundaryConditions', @@ -101,24 +102,30 @@ COLLECTIONS: 'Restart', Budget.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} Budget.duration: ${RUNDIR_HIST_TIME_AVG_DUR} Budget.mode: 'time-averaged' - Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', - 'BudgetEmisDryDepTrop_?ADV? ', - 'BudgetEmisDryDepPBL_?ADV? ', + Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', + 'BudgetEmisDryDepTrop_?ADV? ', + 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', - 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', - 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', - 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', - 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', 'BudgetWetDepFull_?WET? ', 'BudgetWetDepTrop_?WET? ', - 'BudgetWetDepPBL_?WET? ', + 'BudgetWetDepPBL_?WET? ', + 'BudgetWetDepLevs1to35_?WET? ', :: #============================================================================== # %%%%% THE AerosolMass COLLECTION %%%%% @@ -274,7 +281,7 @@ COLLECTIONS: 'Restart', ProdLoss.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} ProdLoss.duration: ${RUNDIR_HIST_TIME_AVG_DUR} ProdLoss.mode: 'time-averaged' - ProdLoss.fields: 'ProdBCPIfromBCPO ', + ProdLoss.fields: 'ProdBCPIfromBCPO ', 'ProdOCPIfromOCPO ', 'ProdSO2fromDMSandOH ', 'ProdSO2fromDMSandNO3 ', @@ -332,6 +339,21 @@ COLLECTIONS: 'Restart', 'SatDiagnLoss_?LOS? ', :: #============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% THE StateChm COLLECTION %%%%% # # Fields of the State_Chm object (see also Aerosols collection) @@ -394,10 +416,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.carbon b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.carbon index eca22d4f2..fc9d39cca 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.carbon +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.carbon @@ -1,4 +1,4 @@ -############################################################################### +b############################################################################### ### HISTORY.rc file for GEOS-Chem carbon simulation ### ### Contact: GEOS-Chem Support Team (geos-chem-support@g.harvard.edu) ### ############################################################################### @@ -35,7 +35,9 @@ COLLECTIONS: 'Restart', #'CloudConvFlux', #'ConcAfterChem', #'LevelEdgeDiags', - #'StateMet', + #'SatDiagn', + #'SatDiagnEdge', + 'StateMet', #'BoundaryConditions', :: ############################################################################### @@ -99,7 +101,7 @@ COLLECTIONS: 'Restart', SpeciesConc.duration: ${RUNDIR_HIST_TIME_AVG_DUR} SpeciesConc.mode: 'time-averaged' SpeciesConc.fields: 'SpeciesConcVV_?ADV? ', - 'SpeciesConcMND_?ADV? ', + ##'SpeciesConcMND_?ADV? ', :: #============================================================================== # %%%%% THE Budget COLLECTION %%%%% @@ -114,24 +116,26 @@ COLLECTIONS: 'Restart', Budget.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} Budget.duration: ${RUNDIR_HIST_TIME_AVG_DUR} Budget.mode: 'time-averaged' - Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', - 'BudgetEmisDryDepTrop_?ADV? ', - 'BudgetEmisDryDepPBL_?ADV? ', - 'BudgetChemistryFull_?ADV? ', - 'BudgetChemistryTrop_?ADV? ', - 'BudgetChemistryPBL_?ADV? ', - 'BudgetTransportFull_?ADV? ', - 'BudgetTransportTrop_?ADV? ', - 'BudgetTransportPBL_?ADV? ', - 'BudgetMixingFull_?ADV? ', - 'BudgetMixingTrop_?ADV? ', - 'BudgetMixingPBL_?ADV? ', - 'BudgetConvectionFull_?ADV? ', - 'BudgetConvectionTrop_?ADV? ', - 'BudgetConvectionPBL_?ADV? ', - 'BudgetWetDepFull_?WET? ', - 'BudgetWetDepTrop_?WET? ', - 'BudgetWetDepPBL_?WET? ', + Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', + 'BudgetEmisDryDepTrop_?ADV? ', + 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', + 'BudgetChemistryFull_?ADV? ', + 'BudgetChemistryTrop_?ADV? ', + 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', + 'BudgetTransportFull_?ADV? ', + 'BudgetTransportTrop_?ADV? ', + 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', + 'BudgetMixingFull_?ADV? ', + 'BudgetMixingTrop_?ADV? ', + 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', + 'BudgetConvectionFull_?ADV? ', + 'BudgetConvectionTrop_?ADV? ', + 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', :: #============================================================================== # %%%%% THE Carbon COLLECTION %%%%% @@ -143,9 +147,9 @@ COLLECTIONS: 'Restart', Carbon.duration: ${RUNDIR_HIST_TIME_AVG_DUR} Carbon.mode: 'time-averaged' Carbon.fields: 'OHconcAfterChem ', - 'ProdCOfromCH4 ', - 'ProdCOfromNMVOC ', - 'ProdCO2fromCO ', + 'ProdCOfromCH4 ', + 'ProdCOfromNMVOC ', + 'ProdCO2fromCO ', :: #============================================================================== # %%%%% THE CloudConvFlux COLLECTION %%%%% @@ -194,6 +198,59 @@ COLLECTIONS: 'Restart', 'Met_PFLLSAN ', :: #============================================================================== +# %%%%% THE SatDiagn COLLECTION %%%%% +# +# GEOS-Chem data during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagn.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagn.format: 'CFIO', + SatDiagn.frequency: 00000001 000000 + SatDiagn.duration: 00000100 000000 + SatDiagn.hrrange: 11.98 15.02 + SatDiagn.mode: 'time-averaged' + SatDiagn.fields: 'SatDiagnConc_CH4 ', + 'SatDiagnConc_CO ', + 'SatDiagnConc_CO2 ', + 'SatDiagnConc_OCS ', + 'SatDiagnRH ', + 'SatDiagnAirDen ', + 'SatDiagnBoxHeight ', + 'SatDiagnPEdge ', + 'SatDiagnTROPP ', + 'SatDiagnPBLHeight ', + 'SatDiagnPBLTop ', + 'SatDiagnTAir ', + 'SatDiagnGWETROOT ', + 'SatDiagnGWETTOP ', + 'SatDiagnPARDR ', + 'SatDiagnPARDF ', + 'SatDiagnPRECTOT ', + 'SatDiagnSLP ', + 'SatDiagnSPHU ', + 'SatDiagnTS ', + 'SatDiagnPBLTOPL ', + 'SatDiagnMODISLAI ', + 'SatDiagnColEmis_CH4 ', + 'SatDiagnSurfFlux_CH4 ', +:: +#============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% The StateMet COLLECTION %%%%% # # Fields of the State_Met object (also see the LevelEdgeDiags collection) @@ -222,15 +279,14 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', 'Met_LAI ', - 'Met_LWI ', 'Met_PARDR ', 'Met_PARDF ', 'Met_PBLTOPL ', diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.fullchem b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.fullchem index 26518ccd1..8b7be3e76 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.fullchem +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.fullchem @@ -1,4 +1,4 @@ -<############################################################################### +############################################################################### ### HISTORY.rc file for GEOS-Chem full chemistry simulations ### ### Contact: GEOS-Chem Support Team (geos-chem-support@g.harvard.edu) ### ############################################################################### @@ -45,10 +45,14 @@ COLLECTIONS: 'Restart', ##'ProdLoss', ##'RRTMG', ##'RxnRates', + ##'RxnConst', ##'SatDiagn', + ##'SatDiagnEdge', ##'StateChm', #'StateMet', ##'StratBM', + ##'Tomas', + ##'UVFlux', ##'WetLossConv', ##'WetLossLS', ##'BoundaryConditions', @@ -121,7 +125,7 @@ COLLECTIONS: 'Restart', SpeciesConc.duration: ${RUNDIR_HIST_TIME_AVG_DUR} SpeciesConc.mode: 'time-averaged' SpeciesConc.fields: 'SpeciesConcVV_?ALL? ', - #'SpeciesConcMND_?ALL? ', + ##'SpeciesConcMND_?ALL? ', :: #============================================================================== # %%%%% THE AdvFluxVert COLLECTION %%%%% @@ -278,21 +282,27 @@ COLLECTIONS: 'Restart', Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', 'BudgetEmisDryDepTrop_?ADV? ', 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', 'BudgetWetDepFull_?WET? ', 'BudgetWetDepTrop_?WET? ', 'BudgetWetDepPBL_?WET? ', + 'BudgetWetDepLevs1to35_?WET? ', :: #============================================================================== # %%%%% THE CloudConvFlux COLLECTION %%%%% @@ -365,9 +375,9 @@ COLLECTIONS: 'Restart', #============================================================================== # %%%%% THE JValues COLLECTION %%%%% # -# Photolysis rates and UV fluxes (from the FAST-JX photolysis module) +# Photolysis rates (from the photolysis module) # -# Available for all full-chemistry simulations +# Available for all full-chemistry simulations with photolysis #============================================================================== JValues.template: '%y4%m2%d2_%h2%n2z.nc4', JValues.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} @@ -376,9 +386,17 @@ COLLECTIONS: 'Restart', JValues.fields: 'Jval_?PHO? ', 'JvalO3O1D ', 'JvalO3O3P ', - 'UVFluxDiffuse_?UVFLX? ', - 'UVFluxDirect_?UVFLX? ', - 'UVFluxNet_?UVFLX? ', +:: +#============================================================================== +# %%%%% THE UVFlux COLLECTION %%%%% +# +# UV fluxes (from the photolysis module) +# +# Available for all full-chemistry simulations with photolysis +#============================================================================== + UVFlux.template: 'UVFluxDiffuse_?UVFLX? ', + 'UVFluxDirect_?UVFLX? ', + 'UVFluxNet_?UVFLX? ', :: #============================================================================== # %%%%% THE KppDiags COLLECTION %%%%% @@ -400,6 +418,8 @@ COLLECTIONS: 'Restart', 'KppSubsts ', 'KppSmDecomps ', 'KppTime ', + #'KppNegatives ', + #'KppNegatives0 ', :: #============================================================================== # %%%%% THE KppARDiags COLLECTION %%%%% @@ -553,6 +573,26 @@ COLLECTIONS: 'Restart', 'RxnRate_EQ002 ', :: #============================================================================== +# %%%%% THE RxnConst COLLECTION %%%%% +# +# Archives chemical reaction rates constants from the KPP solver. +# It is best to list individual reactions to avoid using too much memory. +# Reactions should be listed as "RxnConst_EQnnn", where nnn is the reaction +# index as listed in KPP/fullchem/gckpp_Monitor.F90 (pad zeroes as needed). +# +# The units of reaction rate constants vary according to the number of reactants +# in the reaction. +# +# Available for the fullchem simulations. +#============================================================================== + RxnConst.template: '%y4%m2%d2_%h2%n2z.nc4', + RxnConst.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} + RxnConst.duration: ${RUNDIR_HIST_TIME_AVG_DUR} + RxnConst.mode: 'time-averaged' + RxnConst.fields: 'RxnConst_EQ001 ', + 'RxnConst_EQ002 ', +:: +#============================================================================== # %%%%% THE SatDiagn COLLECTION %%%%% # # GEOS-Chem data during satellite overpass @@ -624,6 +664,21 @@ COLLECTIONS: 'Restart', 'SatDiagnRxnRate_EQ388 ', :: #============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% THE StateChm COLLECTION %%%%% # # Fields of the State_Chm object (see also Aerosols collection) @@ -689,10 +744,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', @@ -771,6 +826,493 @@ COLLECTIONS: 'Restart', 'Met_AD ', :: #============================================================================== +# %%%%% THE Tomas Microphysics Rate COLLECTION %%%%% +# +# Tomas microphysics rates +# +# Available for full-chemistry and aerosol-only simulations +#============================================================================== + Tomas.template: '%y4%m2%d2_%h2%n2z.nc4', + Tomas.format: 'CFIO', + Tomas.timestampStart: .true. + Tomas.monthly: 0 + Tomas.frequency: 010000 + Tomas.duration: 010000 + Tomas.mode: 'time-averaged' + Tomas.fields: 'TomasH2SO4 ', + 'TomasH2SO4mass_bin01 ', + 'TomasH2SO4mass_bin02 ', + 'TomasH2SO4mass_bin03 ', + 'TomasH2SO4mass_bin04 ', + 'TomasH2SO4mass_bin05 ', + 'TomasH2SO4mass_bin06 ', + 'TomasH2SO4mass_bin07 ', + 'TomasH2SO4mass_bin08 ', + 'TomasH2SO4mass_bin09 ', + 'TomasH2SO4mass_bin10 ', + 'TomasH2SO4mass_bin11 ', + 'TomasH2SO4mass_bin12 ', + 'TomasH2SO4mass_bin13 ', + 'TomasH2SO4mass_bin14 ', + 'TomasH2SO4mass_bin15 ', + 'TomasH2SO4number_bin01 ', + 'TomasH2SO4number_bin02 ', + 'TomasH2SO4number_bin03 ', + 'TomasH2SO4number_bin04 ', + 'TomasH2SO4number_bin05 ', + 'TomasH2SO4number_bin06 ', + 'TomasH2SO4number_bin07 ', + 'TomasH2SO4number_bin08 ', + 'TomasH2SO4number_bin09 ', + 'TomasH2SO4number_bin10 ', + 'TomasH2SO4number_bin11 ', + 'TomasH2SO4number_bin12 ', + 'TomasH2SO4number_bin13 ', + 'TomasH2SO4number_bin14 ', + 'TomasH2SO4number_bin15 ', + 'TomasCOAG ', + 'TomasCOAGmass_bin01 ', + 'TomasCOAGmass_bin02 ', + 'TomasCOAGmass_bin03 ', + 'TomasCOAGmass_bin04 ', + 'TomasCOAGmass_bin05 ', + 'TomasCOAGmass_bin06 ', + 'TomasCOAGmass_bin07 ', + 'TomasCOAGmass_bin08 ', + 'TomasCOAGmass_bin09 ', + 'TomasCOAGmass_bin10 ', + 'TomasCOAGmass_bin11 ', + 'TomasCOAGmass_bin12 ', + 'TomasCOAGmass_bin13 ', + 'TomasCOAGmass_bin14 ', + 'TomasCOAGmass_bin15 ', + 'TomasCOAGnumber_bin01 ', + 'TomasCOAGnumber_bin02 ', + 'TomasCOAGnumber_bin03 ', + 'TomasCOAGnumber_bin04 ', + 'TomasCOAGnumber_bin05 ', + 'TomasCOAGnumber_bin06 ', + 'TomasCOAGnumber_bin07 ', + 'TomasCOAGnumber_bin08 ', + 'TomasCOAGnumber_bin09 ', + 'TomasCOAGnumber_bin10 ', + 'TomasCOAGnumber_bin11 ', + 'TomasCOAGnumber_bin12 ', + 'TomasCOAGnumber_bin13 ', + 'TomasCOAGnumber_bin14 ', + 'TomasCOAGnumber_bin15 ', + 'TomasNUCL ', + 'TomasNUCRATEFN ', + 'TomasNUCLmass_bin01 ', + 'TomasNUCLmass_bin02 ', + 'TomasNUCLmass_bin03 ', + 'TomasNUCLmass_bin04 ', + 'TomasNUCLmass_bin05 ', + 'TomasNUCLmass_bin06 ', + 'TomasNUCLmass_bin07 ', + 'TomasNUCLmass_bin08 ', + 'TomasNUCLmass_bin09 ', + 'TomasNUCLmass_bin10 ', + 'TomasNUCLmass_bin11 ', + 'TomasNUCLmass_bin12 ', + 'TomasNUCLmass_bin13 ', + 'TomasNUCLmass_bin14 ', + 'TomasNUCLmass_bin15 ', + 'TomasNUCLnumber_bin01 ', + 'TomasNUCLnumber_bin02 ', + 'TomasNUCLnumber_bin03 ', + 'TomasNUCLnumber_bin04 ', + 'TomasNUCLnumber_bin05 ', + 'TomasNUCLnumber_bin06 ', + 'TomasNUCLnumber_bin07 ', + 'TomasNUCLnumber_bin08 ', + 'TomasNUCLnumber_bin09 ', + 'TomasNUCLnumber_bin10 ', + 'TomasNUCLnumber_bin11 ', + 'TomasNUCLnumber_bin12 ', + 'TomasNUCLnumber_bin13 ', + 'TomasNUCLnumber_bin14 ', + 'TomasNUCLnumber_bin15 ', + 'TomasNUCRATEnumber_bin01 ', + 'TomasNUCRATEnumber_bin02 ', + 'TomasNUCRATEnumber_bin03 ', + 'TomasNUCRATEnumber_bin04 ', + 'TomasNUCRATEnumber_bin05 ', + 'TomasNUCRATEnumber_bin06 ', + 'TomasNUCRATEnumber_bin07 ', + 'TomasNUCRATEnumber_bin08 ', + 'TomasNUCRATEnumber_bin09 ', + 'TomasNUCRATEnumber_bin10 ', + 'TomasNUCRATEnumber_bin11 ', + 'TomasNUCRATEnumber_bin12 ', + 'TomasNUCRATEnumber_bin13 ', + 'TomasNUCRATEnumber_bin14 ', + 'TomasNUCRATEnumber_bin15 ', + 'TomasAQOX ', + 'TomasAQOXmass_bin01 ', + 'TomasAQOXmass_bin02 ', + 'TomasAQOXmass_bin03 ', + 'TomasAQOXmass_bin04 ', + 'TomasAQOXmass_bin05 ', + 'TomasAQOXmass_bin06 ', + 'TomasAQOXmass_bin07 ', + 'TomasAQOXmass_bin08 ', + 'TomasAQOXmass_bin09 ', + 'TomasAQOXmass_bin10 ', + 'TomasAQOXmass_bin11 ', + 'TomasAQOXmass_bin12 ', + 'TomasAQOXmass_bin13 ', + 'TomasAQOXmass_bin14 ', + 'TomasAQOXmass_bin15 ', + 'TomasAQOXnumber_bin01 ', + 'TomasAQOXnumber_bin02 ', + 'TomasAQOXnumber_bin03 ', + 'TomasAQOXnumber_bin04 ', + 'TomasAQOXnumber_bin05 ', + 'TomasAQOXnumber_bin06 ', + 'TomasAQOXnumber_bin07 ', + 'TomasAQOXnumber_bin08 ', + 'TomasAQOXnumber_bin09 ', + 'TomasAQOXnumber_bin10 ', + 'TomasAQOXnumber_bin11 ', + 'TomasAQOXnumber_bin12 ', + 'TomasAQOXnumber_bin13 ', + 'TomasAQOXnumber_bin14 ', + 'TomasAQOXnumber_bin15 ', + 'TomasMNFIX ', + 'TomasMNFIXmass_bin01 ', + 'TomasMNFIXmass_bin02 ', + 'TomasMNFIXmass_bin03 ', + 'TomasMNFIXmass_bin04 ', + 'TomasMNFIXmass_bin05 ', + 'TomasMNFIXmass_bin06 ', + 'TomasMNFIXmass_bin07 ', + 'TomasMNFIXmass_bin08 ', + 'TomasMNFIXmass_bin09 ', + 'TomasMNFIXmass_bin10 ', + 'TomasMNFIXmass_bin11 ', + 'TomasMNFIXmass_bin12 ', + 'TomasMNFIXmass_bin13 ', + 'TomasMNFIXmass_bin14 ', + 'TomasMNFIXmass_bin15 ', + 'TomasMNFIXnumber_bin01 ', + 'TomasMNFIXnumber_bin02 ', + 'TomasMNFIXnumber_bin03 ', + 'TomasMNFIXnumber_bin04 ', + 'TomasMNFIXnumber_bin05 ', + 'TomasMNFIXnumber_bin06 ', + 'TomasMNFIXnumber_bin07 ', + 'TomasMNFIXnumber_bin08 ', + 'TomasMNFIXnumber_bin09 ', + 'TomasMNFIXnumber_bin10 ', + 'TomasMNFIXnumber_bin11 ', + 'TomasMNFIXnumber_bin12 ', + 'TomasMNFIXnumber_bin13 ', + 'TomasMNFIXnumber_bin14 ', + 'TomasMNFIXnumber_bin15 ', + 'TomasMNFIXh2so4mass_bin01 ', + 'TomasMNFIXh2so4mass_bin02 ', + 'TomasMNFIXh2so4mass_bin03 ', + 'TomasMNFIXh2so4mass_bin04 ', + 'TomasMNFIXh2so4mass_bin05 ', + 'TomasMNFIXh2so4mass_bin06 ', + 'TomasMNFIXh2so4mass_bin07 ', + 'TomasMNFIXh2so4mass_bin08 ', + 'TomasMNFIXh2so4mass_bin09 ', + 'TomasMNFIXh2so4mass_bin10 ', + 'TomasMNFIXh2so4mass_bin11 ', + 'TomasMNFIXh2so4mass_bin12 ', + 'TomasMNFIXh2so4mass_bin13 ', + 'TomasMNFIXh2so4mass_bin14 ', + 'TomasMNFIXh2so4mass_bin15 ', + 'TomasMNFIXh2so4number_bin01 ', + 'TomasMNFIXh2so4number_bin02 ', + 'TomasMNFIXh2so4number_bin03 ', + 'TomasMNFIXh2so4number_bin04 ', + 'TomasMNFIXh2so4number_bin05 ', + 'TomasMNFIXh2so4number_bin06 ', + 'TomasMNFIXh2so4number_bin07 ', + 'TomasMNFIXh2so4number_bin08 ', + 'TomasMNFIXh2so4number_bin09 ', + 'TomasMNFIXh2so4number_bin10 ', + 'TomasMNFIXh2so4number_bin11 ', + 'TomasMNFIXh2so4number_bin12 ', + 'TomasMNFIXh2so4number_bin13 ', + 'TomasMNFIXh2so4number_bin14 ', + 'TomasMNFIXh2so4number_bin15 ', + 'TomasMNFIXcoagmass_bin01 ', + 'TomasMNFIXcoagmass_bin02 ', + 'TomasMNFIXcoagmass_bin03 ', + 'TomasMNFIXcoagmass_bin04 ', + 'TomasMNFIXcoagmass_bin05 ', + 'TomasMNFIXcoagmass_bin06 ', + 'TomasMNFIXcoagmass_bin07 ', + 'TomasMNFIXcoagmass_bin08 ', + 'TomasMNFIXcoagmass_bin09 ', + 'TomasMNFIXcoagmass_bin10 ', + 'TomasMNFIXcoagmass_bin11 ', + 'TomasMNFIXcoagmass_bin12 ', + 'TomasMNFIXcoagmass_bin13 ', + 'TomasMNFIXcoagmass_bin14 ', + 'TomasMNFIXcoagmass_bin15 ', + 'TomasMNFIXcoagnumber_bin01 ', + 'TomasMNFIXcoagnumber_bin02 ', + 'TomasMNFIXcoagnumber_bin03 ', + 'TomasMNFIXcoagnumber_bin04 ', + 'TomasMNFIXcoagnumber_bin05 ', + 'TomasMNFIXcoagnumber_bin06 ', + 'TomasMNFIXcoagnumber_bin07 ', + 'TomasMNFIXcoagnumber_bin08 ', + 'TomasMNFIXcoagnumber_bin09 ', + 'TomasMNFIXcoagnumber_bin10 ', + 'TomasMNFIXcoagnumber_bin11 ', + 'TomasMNFIXcoagnumber_bin12 ', + 'TomasMNFIXcoagnumber_bin13 ', + 'TomasMNFIXcoagnumber_bin14 ', + 'TomasMNFIXcoagnumber_bin15 ', + 'TomasMNFIXaqoxmass_bin01 ', + 'TomasMNFIXaqoxmass_bin02 ', + 'TomasMNFIXaqoxmass_bin03 ', + 'TomasMNFIXaqoxmass_bin04 ', + 'TomasMNFIXaqoxmass_bin05 ', + 'TomasMNFIXaqoxmass_bin06 ', + 'TomasMNFIXaqoxmass_bin07 ', + 'TomasMNFIXaqoxmass_bin08 ', + 'TomasMNFIXaqoxmass_bin09 ', + 'TomasMNFIXaqoxmass_bin10 ', + 'TomasMNFIXaqoxmass_bin11 ', + 'TomasMNFIXaqoxmass_bin12 ', + 'TomasMNFIXaqoxmass_bin13 ', + 'TomasMNFIXaqoxmass_bin14 ', + 'TomasMNFIXaqoxmass_bin15 ', + 'TomasMNFIXaqoxnumber_bin01 ', + 'TomasMNFIXaqoxnumber_bin02 ', + 'TomasMNFIXaqoxnumber_bin03 ', + 'TomasMNFIXaqoxnumber_bin04 ', + 'TomasMNFIXaqoxnumber_bin05 ', + 'TomasMNFIXaqoxnumber_bin06 ', + 'TomasMNFIXaqoxnumber_bin07 ', + 'TomasMNFIXaqoxnumber_bin08 ', + 'TomasMNFIXaqoxnumber_bin09 ', + 'TomasMNFIXaqoxnumber_bin10 ', + 'TomasMNFIXaqoxnumber_bin11 ', + 'TomasMNFIXaqoxnumber_bin12 ', + 'TomasMNFIXaqoxnumber_bin13 ', + 'TomasMNFIXaqoxnumber_bin14 ', + 'TomasMNFIXaqoxnumber_bin15 ', + 'TomasMNFIXezwat1mass_bin01 ', + 'TomasMNFIXezwat1mass_bin02 ', + 'TomasMNFIXezwat1mass_bin03 ', + 'TomasMNFIXezwat1mass_bin04 ', + 'TomasMNFIXezwat1mass_bin05 ', + 'TomasMNFIXezwat1mass_bin06 ', + 'TomasMNFIXezwat1mass_bin07 ', + 'TomasMNFIXezwat1mass_bin08 ', + 'TomasMNFIXezwat1mass_bin09 ', + 'TomasMNFIXezwat1mass_bin10 ', + 'TomasMNFIXezwat1mass_bin11 ', + 'TomasMNFIXezwat1mass_bin12 ', + 'TomasMNFIXezwat1mass_bin13 ', + 'TomasMNFIXezwat1mass_bin14 ', + 'TomasMNFIXezwat1mass_bin15 ', + 'TomasMNFIXezwat1number_bin01 ', + 'TomasMNFIXezwat1number_bin02 ', + 'TomasMNFIXezwat1number_bin03 ', + 'TomasMNFIXezwat1number_bin04 ', + 'TomasMNFIXezwat1number_bin05 ', + 'TomasMNFIXezwat1number_bin06 ', + 'TomasMNFIXezwat1number_bin07 ', + 'TomasMNFIXezwat1number_bin08 ', + 'TomasMNFIXezwat1number_bin09 ', + 'TomasMNFIXezwat1number_bin10 ', + 'TomasMNFIXezwat1number_bin11 ', + 'TomasMNFIXezwat1number_bin12 ', + 'TomasMNFIXezwat1number_bin13 ', + 'TomasMNFIXezwat1number_bin14 ', + 'TomasMNFIXezwat1number_bin15 ', + 'TomasMNFIXezwat2mass_bin01 ', + 'TomasMNFIXezwat2mass_bin02 ', + 'TomasMNFIXezwat2mass_bin03 ', + 'TomasMNFIXezwat2mass_bin04 ', + 'TomasMNFIXezwat2mass_bin05 ', + 'TomasMNFIXezwat2mass_bin06 ', + 'TomasMNFIXezwat2mass_bin07 ', + 'TomasMNFIXezwat2mass_bin08 ', + 'TomasMNFIXezwat2mass_bin09 ', + 'TomasMNFIXezwat2mass_bin10 ', + 'TomasMNFIXezwat2mass_bin11 ', + 'TomasMNFIXezwat2mass_bin12 ', + 'TomasMNFIXezwat2mass_bin13 ', + 'TomasMNFIXezwat2mass_bin14 ', + 'TomasMNFIXezwat2mass_bin15 ', + 'TomasMNFIXezwat2number_bin01 ', + 'TomasMNFIXezwat2number_bin02 ', + 'TomasMNFIXezwat2number_bin03 ', + 'TomasMNFIXezwat2number_bin04 ', + 'TomasMNFIXezwat2number_bin05 ', + 'TomasMNFIXezwat2number_bin06 ', + 'TomasMNFIXezwat2number_bin07 ', + 'TomasMNFIXezwat2number_bin08 ', + 'TomasMNFIXezwat2number_bin09 ', + 'TomasMNFIXezwat2number_bin10 ', + 'TomasMNFIXezwat2number_bin11 ', + 'TomasMNFIXezwat2number_bin12 ', + 'TomasMNFIXezwat2number_bin13 ', + 'TomasMNFIXezwat2number_bin14 ', + 'TomasMNFIXezwat2number_bin15 ', + 'TomasMNFIXezwat3mass_bin01 ', + 'TomasMNFIXezwat3mass_bin02 ', + 'TomasMNFIXezwat3mass_bin03 ', + 'TomasMNFIXezwat3mass_bin04 ', + 'TomasMNFIXezwat3mass_bin05 ', + 'TomasMNFIXezwat3mass_bin06 ', + 'TomasMNFIXezwat3mass_bin07 ', + 'TomasMNFIXezwat3mass_bin08 ', + 'TomasMNFIXezwat3mass_bin09 ', + 'TomasMNFIXezwat3mass_bin10 ', + 'TomasMNFIXezwat3mass_bin11 ', + 'TomasMNFIXezwat3mass_bin12 ', + 'TomasMNFIXezwat3mass_bin13 ', + 'TomasMNFIXezwat3mass_bin14 ', + 'TomasMNFIXezwat3mass_bin15 ', + 'TomasMNFIXezwat3number_bin01 ', + 'TomasMNFIXezwat3number_bin02 ', + 'TomasMNFIXezwat3number_bin03 ', + 'TomasMNFIXezwat3number_bin04 ', + 'TomasMNFIXezwat3number_bin05 ', + 'TomasMNFIXezwat3number_bin06 ', + 'TomasMNFIXezwat3number_bin07 ', + 'TomasMNFIXezwat3number_bin08 ', + 'TomasMNFIXezwat3number_bin09 ', + 'TomasMNFIXezwat3number_bin10 ', + 'TomasMNFIXezwat3number_bin11 ', + 'TomasMNFIXezwat3number_bin12 ', + 'TomasMNFIXezwat3number_bin13 ', + 'TomasMNFIXezwat3number_bin14 ', + 'TomasMNFIXezwat3number_bin15 ', + 'TomasMNFIXcheck1mass_bin01 ', + 'TomasMNFIXcheck1mass_bin02 ', + 'TomasMNFIXcheck1mass_bin03 ', + 'TomasMNFIXcheck1mass_bin04 ', + 'TomasMNFIXcheck1mass_bin05 ', + 'TomasMNFIXcheck1mass_bin06 ', + 'TomasMNFIXcheck1mass_bin07 ', + 'TomasMNFIXcheck1mass_bin08 ', + 'TomasMNFIXcheck1mass_bin09 ', + 'TomasMNFIXcheck1mass_bin10 ', + 'TomasMNFIXcheck1mass_bin11 ', + 'TomasMNFIXcheck1mass_bin12 ', + 'TomasMNFIXcheck1mass_bin13 ', + 'TomasMNFIXcheck1mass_bin14 ', + 'TomasMNFIXcheck1mass_bin15 ', + 'TomasMNFIXcheck1number_bin01 ', + 'TomasMNFIXcheck1number_bin02 ', + 'TomasMNFIXcheck1number_bin03 ', + 'TomasMNFIXcheck1number_bin04 ', + 'TomasMNFIXcheck1number_bin05 ', + 'TomasMNFIXcheck1number_bin06 ', + 'TomasMNFIXcheck1number_bin07 ', + 'TomasMNFIXcheck1number_bin08 ', + 'TomasMNFIXcheck1number_bin09 ', + 'TomasMNFIXcheck1number_bin10 ', + 'TomasMNFIXcheck1number_bin11 ', + 'TomasMNFIXcheck1number_bin12 ', + 'TomasMNFIXcheck1number_bin13 ', + 'TomasMNFIXcheck1number_bin14 ', + 'TomasMNFIXcheck1number_bin15 ', + 'TomasMNFIXcheck2mass_bin01 ', + 'TomasMNFIXcheck2mass_bin02 ', + 'TomasMNFIXcheck2mass_bin03 ', + 'TomasMNFIXcheck2mass_bin04 ', + 'TomasMNFIXcheck2mass_bin05 ', + 'TomasMNFIXcheck2mass_bin06 ', + 'TomasMNFIXcheck2mass_bin07 ', + 'TomasMNFIXcheck2mass_bin08 ', + 'TomasMNFIXcheck2mass_bin09 ', + 'TomasMNFIXcheck2mass_bin10 ', + 'TomasMNFIXcheck2mass_bin11 ', + 'TomasMNFIXcheck2mass_bin12 ', + 'TomasMNFIXcheck2mass_bin13 ', + 'TomasMNFIXcheck2mass_bin14 ', + 'TomasMNFIXcheck2mass_bin15 ', + 'TomasMNFIXcheck2number_bin01 ', + 'TomasMNFIXcheck2number_bin02 ', + 'TomasMNFIXcheck2number_bin03 ', + 'TomasMNFIXcheck2number_bin04 ', + 'TomasMNFIXcheck2number_bin05 ', + 'TomasMNFIXcheck2number_bin06 ', + 'TomasMNFIXcheck2number_bin07 ', + 'TomasMNFIXcheck2number_bin08 ', + 'TomasMNFIXcheck2number_bin09 ', + 'TomasMNFIXcheck2number_bin10 ', + 'TomasMNFIXcheck2number_bin11 ', + 'TomasMNFIXcheck2number_bin12 ', + 'TomasMNFIXcheck2number_bin13 ', + 'TomasMNFIXcheck2number_bin14 ', + 'TomasMNFIXcheck2number_bin15 ', + 'TomasMNFIXcheck3mass_bin01 ', + 'TomasMNFIXcheck3mass_bin02 ', + 'TomasMNFIXcheck3mass_bin03 ', + 'TomasMNFIXcheck3mass_bin04 ', + 'TomasMNFIXcheck3mass_bin05 ', + 'TomasMNFIXcheck3mass_bin06 ', + 'TomasMNFIXcheck3mass_bin07 ', + 'TomasMNFIXcheck3mass_bin08 ', + 'TomasMNFIXcheck3mass_bin09 ', + 'TomasMNFIXcheck3mass_bin10 ', + 'TomasMNFIXcheck3mass_bin11 ', + 'TomasMNFIXcheck3mass_bin12 ', + 'TomasMNFIXcheck3mass_bin13 ', + 'TomasMNFIXcheck3mass_bin14 ', + 'TomasMNFIXcheck3mass_bin15 ', + 'TomasMNFIXcheck3number_bin01 ', + 'TomasMNFIXcheck3number_bin02 ', + 'TomasMNFIXcheck3number_bin03 ', + 'TomasMNFIXcheck3number_bin04 ', + 'TomasMNFIXcheck3number_bin05 ', + 'TomasMNFIXcheck3number_bin06 ', + 'TomasMNFIXcheck3number_bin07 ', + 'TomasMNFIXcheck3number_bin08 ', + 'TomasMNFIXcheck3number_bin09 ', + 'TomasMNFIXcheck3number_bin10 ', + 'TomasMNFIXcheck3number_bin11 ', + 'TomasMNFIXcheck3number_bin12 ', + 'TomasMNFIXcheck3number_bin13 ', + 'TomasMNFIXcheck3number_bin14 ', + 'TomasMNFIXcheck3number_bin15 ', + 'TomasSOA ', + 'TomasSOAmass_bin01 ', + 'TomasSOAmass_bin02 ', + 'TomasSOAmass_bin03 ', + 'TomasSOAmass_bin04 ', + 'TomasSOAmass_bin05 ', + 'TomasSOAmass_bin06 ', + 'TomasSOAmass_bin07 ', + 'TomasSOAmass_bin08 ', + 'TomasSOAmass_bin09 ', + 'TomasSOAmass_bin10 ', + 'TomasSOAmass_bin11 ', + 'TomasSOAmass_bin12 ', + 'TomasSOAmass_bin13 ', + 'TomasSOAmass_bin14 ', + 'TomasSOAmass_bin15 ', + 'TomasSOAnumber_bin01 ', + 'TomasSOAnumber_bin02 ', + 'TomasSOAnumber_bin03 ', + 'TomasSOAnumber_bin04 ', + 'TomasSOAnumber_bin05 ', + 'TomasSOAnumber_bin06 ', + 'TomasSOAnumber_bin07 ', + 'TomasSOAnumber_bin08 ', + 'TomasSOAnumber_bin09 ', + 'TomasSOAnumber_bin10 ', + 'TomasSOAnumber_bin11 ', + 'TomasSOAnumber_bin12 ', + 'TomasSOAnumber_bin13 ', + 'TomasSOAnumber_bin14 ', + 'TomasSOAnumber_bin15 ', +:: +#============================================================================== # %%%%% THE WetLossConv COLLECTION %%%%% # # Loss of soluble species in convective updrafts diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.metals b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.metals index 4583c905e..fa813dac3 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.metals +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.metals @@ -34,6 +34,7 @@ COLLECTIONS: 'Restart', #'DryDep', #'LevelEdgeDiags', #'SatDiagn', + #'SatDiagnEdge', #'StateMet', #'WetLossConv', #'WetLossLS', @@ -94,21 +95,27 @@ COLLECTIONS: 'Restart', Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', 'BudgetEmisDryDepTrop_?ADV? ', 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', 'BudgetWetDepFull_?WET? ', 'BudgetWetDepTrop_?WET? ', 'BudgetWetDepPBL_?WET? ', + 'BudgetWetDepLevs1to35_?WET? ', :: #============================================================================== # %%%%% THE CloudConvFlux COLLECTION %%%%% @@ -198,6 +205,21 @@ COLLECTIONS: 'Restart', 'SatDiagnSurfFlux_AlF1 ', :: #============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% The StateMet COLLECTION %%%%% # # Fields of the State_Met object (also see the LevelEdgeDiags collection) @@ -226,10 +248,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagCH4 b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagCH4 deleted file mode 100644 index f726c2cc3..000000000 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagCH4 +++ /dev/null @@ -1,296 +0,0 @@ -############################################################################### -### HISTORY.rc file for GEOS-Chem CH4 specialty simulations ### -### Contact: GEOS-Chem Support Team (geos-chem-support@g.harvard.edu) ### -############################################################################### - -#============================================================================ -# EXPID allows you to specify the beginning of the file path corresponding -# to each diagnostic collection. For example: -# -# EXPID: ./GEOSChem -# Will create netCDF files whose names begin "GEOSChem", -# in this run directory. -# -# EXPID: ./OutputDir/GEOSChem -# Will create netCDF files whose names begin with "GEOSChem" -# in the OutputDir sub-folder of this run directory. -# -# EXPDSC and CoresPerNode are only used by GCHP simulations. -#============================================================================ -EXPID: ./OutputDir/GEOSChem - -#============================================================================== -# %%%%% COLLECTION NAME DECLARATIONS %%%%% -# -# To enable a collection, remove the "#" character in front of its name. The -# Restart collection should always be turned on. -# -# NOTE: These are the "default" collections for GEOS-Chem, but you can create -# your own customized diagnostic collections as well. -#============================================================================== -COLLECTIONS: 'Restart', - 'SpeciesConc', - #'Budget', - #'CloudConvFlux', - #'ConcAfterChem', - #'LevelEdgeDiags', - #'SatDiagn', - #'StateMet', - #'BoundaryConditions', -:: -############################################################################### -### The rest of this file consists of collection definitions. ### -### Above collections whose declarations are commented out will be ignored. ### -### Make sure that each collection definition, as well as the list of ### -### collections above, ends with a double-colon ("::"). ### -############################################################################### - -#============================================================================== -# %%%%% THE Restart COLLECTION %%%%% -# -# GEOS-Chem restart file fields -# -# Available for all simulations -#============================================================================== - Restart.filename: './Restarts/GEOSChem.Restart.%y4%m2%d2_%h2%n2z.nc4', - Restart.frequency: 'End', - Restart.duration: 'End', - Restart.mode: 'instantaneous' - Restart.fields: 'SpeciesRst_?ALL? ', - 'Met_DELPDRY ', - 'Met_BXHEIGHT ', - 'Met_TropLev ', -:: -#============================================================================== -# %%%%% THE SpeciesConc COLLECTION %%%%% -# -# GEOS-Chem species concentrations (default = all species) -# -# Available for all simulations -# -# Concentrations may be saved out as SpeciesConcVV [v/v dry air] or -# SpeciesConcMND [molec/cm3] -#============================================================================== - SpeciesConc.template: '%y4%m2%d2_%h2%n2z.nc4', - SpeciesConc.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} - SpeciesConc.duration: ${RUNDIR_HIST_TIME_AVG_DUR} - SpeciesConc.mode: 'time-averaged' - SpeciesConc.fields: 'SpeciesConcVV_?ADV? ', - 'SpeciesConcMND_?ALL? ', -:: -#============================================================================== -# %%%%% THE Budget COLLECTION %%%%% -# -# GEOS-Chem budget diagnostics defined as species kg/s in the column -# (full, troposphere, or PBL) due to a single component (e.g. chemistry) -# (default = advected species) -# -# Available for all simulations -#============================================================================== - Budget.template: '%y4%m2%d2_%h2%n2z.nc4', - Budget.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} - Budget.duration: ${RUNDIR_HIST_TIME_AVG_DUR} - Budget.mode: 'time-averaged' - Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', - 'BudgetEmisDryDepTrop_?ADV? ', - 'BudgetEmisDryDepPBL_?ADV? ', - 'BudgetChemistryFull_?ADV? ', - 'BudgetChemistryTrop_?ADV? ', - 'BudgetChemistryPBL_?ADV? ', - 'BudgetTransportFull_?ADV? ', - 'BudgetTransportTrop_?ADV? ', - 'BudgetTransportPBL_?ADV? ', - 'BudgetMixingFull_?ADV? ', - 'BudgetMixingTrop_?ADV? ', - 'BudgetMixingPBL_?ADV? ', - 'BudgetConvectionFull_?ADV? ', - 'BudgetConvectionTrop_?ADV? ', - 'BudgetConvectionPBL_?ADV? ', - 'BudgetWetDepFull_?WET? ', - 'BudgetWetDepTrop_?WET? ', - 'BudgetWetDepPBL_?WET? ', -:: -#============================================================================== -# %%%%% THE CloudConvFlux COLLECTION %%%%% -# -# Cloud convective flux (default = advected species) -# -# Available for all simulations -#============================================================================== - CloudConvFlux.template: '%y4%m2%d2_%h2%n2z.nc4', - CloudConvFlux.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} - CloudConvFlux.duration: ${RUNDIR_HIST_TIME_AVG_DUR} - CloudConvFlux.mode: 'time-averaged' - CloudConvFlux.fields: 'CloudConvFlux_?ADV? ', -:: -#============================================================================== -# %%%%% THE ConcAfterChem COLLECTION %%%%% -# -# Concentrations of OH, HO2, O1D, O3P immediately after exiting the KPP solver -# or OH after the CH4 specialty-simulation chemistry routine. -# -# OH: Available for all full-chemistry simulations and CH4 specialty sim -#============================================================================== - ConcAfterChem.template: '%y4%m2%d2_%h2%n2z.nc4', - ConcAfterChem.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} - ConcAfterChem.duration: ${RUNDIR_HIST_TIME_AVG_DUR} - ConcAfterChem.mode: 'time-averaged' - ConcAfterChem.fields: 'OHconcAfterChem ', -:: -#============================================================================== -# %%%%% THE LevelEdgeDiags COLLECTION %%%%% -# -# Diagnostics that are defined on grid box level edges -# -# Available for all simulations -#============================================================================== - LevelEdgeDiags.template: '%y4%m2%d2_%h2%n2z.nc4', - LevelEdgeDiags.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} - LevelEdgeDiags.duration: ${RUNDIR_HIST_TIME_AVG_DUR} - LevelEdgeDiags.mode: 'time-averaged' - LevelEdgeDiags.fields: 'Met_CMFMC ', - 'Met_PEDGE ', - 'Met_PEDGEDRY ', - 'Met_PFICU ', - 'Met_PFILSAN ', - 'Met_PFLCU ', - 'Met_PFLLSAN ', -:: -#============================================================================== -# %%%%% THE SatDiagn COLLECTION %%%%% -# -# GEOS-Chem data during satellite overpass -# -# Available for all simulations -#============================================================================== - SatDiagn.template: '%y4%m2%d2_%h2%n2z.nc4', - SatDiagn.format: 'CFIO', - SatDiagn.frequency: 00000001 000000 - SatDiagn.duration: 00000100 000000 - SatDiagn.hrrange: 11.98 15.02 - SatDiagn.mode: 'time-averaged' - SatDiagn.fields: 'SatDiagnConc_CH4 ', - 'SatDiagnRH ', - 'SatDiagnAirDen ', - 'SatDiagnBoxHeight ', - 'SatDiagnPEdge ', - 'SatDiagnTROPP ', - 'SatDiagnPBLHeight ', - 'SatDiagnPBLTop ', - 'SatDiagnTAir ', - 'SatDiagnGWETROOT ', - 'SatDiagnGWETTOP ', - 'SatDiagnPARDR ', - 'SatDiagnPARDF ', - 'SatDiagnPRECTOT ', - 'SatDiagnSLP ', - 'SatDiagnSPHU ', - 'SatDiagnTS ', - 'SatDiagnPBLTOPL ', - 'SatDiagnMODISLAI ', - 'SatDiagnColEmis_CH4 ', - 'SatDiagnSurfFlux_CH4 ', -:: -#============================================================================== -# %%%%% The StateMet COLLECTION %%%%% -# -# Fields of the State_Met object (also see the LevelEdgeDiags collection) -# -# Available for all simulations -#============================================================================== - StateMet.template: '%y4%m2%d2_%h2%n2z.nc4', - StateMet.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} - StateMet.duration: ${RUNDIR_HIST_TIME_AVG_DUR} - StateMet.mode: 'time-averaged' - StateMet.fields: 'Met_AD ', - 'Met_AIRDEN ', - 'Met_AIRVOL ', - 'Met_ALBD ', - 'Met_AVGW ', - 'Met_BXHEIGHT ', - 'Met_ChemGridLev ', - 'Met_CLDF ', - 'Met_CLDFRC ', - 'Met_CLDTOPS ', - 'Met_DELP ', - 'Met_DQRCU ', - 'Met_DQRLSAN ', - 'Met_DTRAIN ', - 'Met_EFLUX ', - 'Met_FRCLND ', - 'Met_FRLAKE ', - 'Met_FRLAND ', - 'Met_FRLANDIC ', - 'Met_FROCEAN ', - 'Met_FRSEAICE ', - 'Met_FRSNO ', - 'Met_GWETROOT ', - 'Met_GWETTOP ', - 'Met_HFLUX ', - 'Met_LAI ', - 'Met_PARDR ', - 'Met_PARDF ', - 'Met_PBLTOPL ', - 'Met_PBLH ', - 'Met_PHIS ', - 'Met_PMID ', - 'Met_PMIDDRY ', - 'Met_PRECANV ', - 'Met_PRECCON ', - 'Met_PRECLSC ', - 'Met_PRECTOT ', - 'Met_PS1DRY ', - 'Met_PS1WET ', - 'Met_PS2DRY ', - 'Met_PS2WET ', - 'Met_PSC2WET ', - 'Met_PSC2DRY ', - 'Met_QI ', - 'Met_QL ', - 'Met_OMEGA ', - 'Met_OPTD ', - 'Met_REEVAPCN ', - 'Met_REEVAPLS ', - 'Met_SLP ', - 'Met_SNODP ', - 'Met_SNOMAS ', - 'Met_SPHU ', - 'Met_SPHU1 ', - 'Met_SPHU2 ', - 'Met_SUNCOS ', - 'Met_SUNCOSmid ', - 'Met_SWGDN ', - 'Met_T ', - 'Met_TAUCLI ', - 'Met_TAUCLW ', - 'Met_THETA ', - 'Met_TMPU1 ', - 'Met_TMPU2 ', - 'Met_TO3 ', - 'Met_TropHt ', - 'Met_TropLev ', - 'Met_TropP ', - 'Met_TS ', - 'Met_TSKIN ', - 'Met_TV ', - 'Met_U ', - 'Met_U10M ', - 'Met_USTAR ', - 'Met_UVALBEDO ', - 'Met_V ', - 'Met_V10M ', - 'Met_Z0 ', -:: -#============================================================================== -# %%%%% THE BoundaryConditions COLLECTION %%%%% -# -# GEOS-Chem boundary conditions for use in nested grid simulations -# -# Available for all simulations -#============================================================================== - BoundaryConditions.template: '%y4%m2%d2_%h2%n2z.nc4', - BoundaryConditions.frequency: 00000000 030000 - BoundaryConditions.duration: 00000001 000000 - BoundaryConditions.mode: 'instantaneous' - BoundaryConditions.fields: 'SpeciesBC_?ADV? ', -:: \ No newline at end of file diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagCO b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagCO index 7e819805e..b8bd57025 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagCO +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagCO @@ -35,6 +35,7 @@ COLLECTIONS: 'Restart', #'LevelEdgeDiags', #'ProdLoss', #'SatDiagn', + #'SatDiagnEdge', #'StateMet', #'BoundaryConditions', :: @@ -75,7 +76,7 @@ COLLECTIONS: 'Restart', SpeciesConc.frequency: ${RUNDIR_HIST_TIME_AVG_FREQ} SpeciesConc.duration: ${RUNDIR_HIST_TIME_AVG_DUR} SpeciesConc.mode: 'time-averaged' - SpeciesConc.fields: 'SpeciesConcVV_?ALL? ', + SpeciesConc.fields: 'SpeciesConcVV_?ALL? ', #'SpeciesConcMND_?ALL? ', :: #============================================================================== @@ -94,21 +95,23 @@ COLLECTIONS: 'Restart', Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', 'BudgetEmisDryDepTrop_?ADV? ', 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', 'BudgetConvectionPBL_?ADV? ', - 'BudgetWetDepFull_?WET? ', - 'BudgetWetDepTrop_?WET? ', - 'BudgetWetDepPBL_?WET? ', + 'BudgetConvectionLevs1to35_?ADV? ', :: #============================================================================== # %%%%% THE CloudConvFlux COLLECTION %%%%% @@ -205,6 +208,21 @@ COLLECTIONS: 'Restart', 'SatDiagnSurfFlux_CO ', :: #============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% The StateMet COLLECTION %%%%% # # Fields of the State_Met object (also see the LevelEdgeDiags collection) @@ -233,10 +251,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', diff --git a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagO3 b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagO3 index e6274d7a1..891cdb3d9 100644 --- a/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagO3 +++ b/run/GCClassic/HISTORY.rc.templates/HISTORY.rc.tagO3 @@ -36,6 +36,7 @@ COLLECTIONS: 'Restart', #'LevelEdgeDiags', #'ProdLoss', #'SatDiagn', + #'SatDiagnEdge', #'StateMet', #'BoundaryConditions', :: @@ -95,21 +96,23 @@ COLLECTIONS: 'Restart', Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', 'BudgetEmisDryDepTrop_?ADV? ', 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', 'BudgetChemistryFull_?ADV? ', 'BudgetChemistryTrop_?ADV? ', 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', 'BudgetTransportFull_?ADV? ', 'BudgetTransportTrop_?ADV? ', 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', 'BudgetMixingFull_?ADV? ', 'BudgetMixingTrop_?ADV? ', 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', 'BudgetConvectionFull_?ADV? ', 'BudgetConvectionTrop_?ADV? ', 'BudgetConvectionPBL_?ADV? ', - 'BudgetWetDepFull_?WET? ', - 'BudgetWetDepTrop_?WET? ', - 'BudgetWetDepPBL_?WET? ', + 'BudgetConvectionLevs1to35_?ADV? ', :: #============================================================================== # %%%%% THE CloudConvFlux COLLECTION %%%%% @@ -231,6 +234,21 @@ COLLECTIONS: 'Restart', 'SatDiagnSurfFlux_O3 ', :: #============================================================================== +# %%%%% THE SatDiagnEdge COLLECTION %%%%% +# +# GEOS-Chem data (on level edges) during satellite overpass +# +# Available for all simulations +#============================================================================== + SatDiagnEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + SatDiagnEdge.format: 'CFIO', + SatDiagnEdge.frequency: 00000001 000000 + SatDiagnEdge.duration: 00000100 000000 + SatDiagnEdge.hrrange: 11.98 15.02 + SatDiagnEdge.mode: 'time-averaged' + SatDiagnEdge.fields: 'SatDiagnConc_PEDGE ', +:: +#============================================================================== # %%%%% The StateMet COLLECTION %%%%% # # Fields of the State_Met object (also see the LevelEdgeDiags collection) @@ -259,10 +277,10 @@ COLLECTIONS: 'Restart', 'Met_FRCLND ', 'Met_FRLAKE ', 'Met_FRLAND ', - 'Met_FRLANDIC ', + 'Met_FRLANDICE ', 'Met_FROCEAN ', 'Met_FRSEAICE ', - 'Met_FRSNO ', + 'Met_FRSNOW ', 'Met_GWETROOT ', 'Met_GWETTOP ', 'Met_HFLUX ', diff --git a/run/GCClassic/createRunDir.sh b/run/GCClassic/createRunDir.sh index bd2f74395..073f85b17 100755 --- a/run/GCClassic/createRunDir.sh +++ b/run/GCClassic/createRunDir.sh @@ -1,50 +1,50 @@ #!/bin/bash -# createRunDir.sh: Create GEOS-Chem Classic run directory +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP # -# Optional argument: run directory name +# !MODULE: createRunDir.sh # -# If optional run directory name argument is not passed then the user -# will be prompted to enter a name interactively, or choose to use the -# default name gc_{grid_display}_{met}_{sim_name}_{sim_extra_option}. +# !DESCRIPTION: Creates a GEOS-Chem Classic run directory. +#\\ +#\\ +# !CALLING SEQUENCE: +# ./createRunDir.sh [rundirname] # -# Usage: ./createRunDir.sh [rundirname] +# !REMARKS: +# If optional run directory name argument is not passed then the user +# will be prompted to enter a name interactively, or choose to use the +# default name gc_{grid_display}_{met}_{sim_name}_{sim_extra_option}. # -# Initial version: M. Sulprizio, 6/24/2020 (based off GCHP/createRunDir.sh) - -# post registration details to api -function post_registration() { - email="$1" - name="$2" - affiliation="$3" - site="$4" - git_username="$5" - research_interest="$6" - env_type="$7" - curl --location --request POST "https://gc-dashboard.org/registration" \ - --header "Content-Type: text/plain" \ - -d "{ - \"email\": \"${email}\", - \"name\": \"${name}\", - \"affiliation\": \"${affiliation}\", - \"site\": \"${site}\", - \"git_username\": \"${git_username}\", - \"research_interest\": \"${research_interest}\", - \"model_type\": \"gcc\", - \"env_type\": \"${env_type}\" - }" -} - +# !REVISION HISTORY: +# Initial version: M. Sulprizio, 6/24/2020 (based off GCHP/createRunDir.sh) +# See the subsequent Git history with the gitk browser! +#------------------------------------------------------------------------------ +#BOC + +# Directory with GEOS-Chem Classic rundir scripts (i.e. this dir) +# Current directory srcrundir=$(pwd -P) cd ${srcrundir} + +# GEOS-Chem "science codebase" directory cd ../.. gcdir=$(pwd -P) + +# GCClassic "wrapper" directory cd ../../ wrapperdir=$(pwd -P) + +# Return to directory w/ GEOS-Chem Classic rundir scripts cd ${srcrundir} -# Load file with utility functions to setup configuration files -. ${gcdir}/run/shared/setupConfigFiles.sh +# Source common bash functions from scripts in the run/shared folder +. ${gcdir}/run/shared/setupConfigFiles.sh # Config file editing +. ${gcdir}/run/GCClassic/setupForRestarts.sh # Functions for restart files +. ${gcdir}/run/shared/newUserRegistration.sh # 1st-time user registration +. ${gcdir}/run/shared/singleCarbonSpecies.sh # Single carbon species setup # Initialize run directory variables RUNDIR_VARS="" @@ -78,7 +78,7 @@ if [[ -z "${GC_DATA_ROOT}" ]]; then printf "${thinline}Enter path for ExtData:${thinline}" valid_path=0 while [ "$valid_path" -eq 0 ]; do - read -e extdata + read -e -p "${USER_PROMPT}" extdata if [[ ${extdata} = "q" ]]; then printf "\nExiting.\n" exit 1 @@ -97,29 +97,7 @@ RUNDIR_VARS+="RUNDIR_DATA_ROOT=$GC_DATA_ROOT\n" # -------------------------------------------------------------- # registration for first time users # -------------------------------------------------------------- -if [[ -z "${GC_USER_REGISTERED}" ]]; then - printf "\nInitiating User Registration: You will only need to fill this out once.\n" - printf "${thinline}What is your email address?${thinline}" - read email - - if [[ ${email} != "" ]]; then - printf "${thinline}What is your name?${thinline}" - IFS='\n' read -r name - printf "${thinline}What is your research affiliation (University, \nResearch Group, Government Organization, Company)?${thinline}" - IFS='\n' read -r affiliation - printf "${thinline}If available, please provide the url for your affiliated \ninstitution (group website, company website, etc.)?${thinline}" - IFS='\n' read -r site - printf "${thinline}Please provide your github username (if any) so that we \ncan recognize you in submitted issues and pull requests.${thinline}" - IFS='\n' read -r git_username - printf "${thinline}Where do you plan to run GEOS-Chem (e.g. local compute cluster, AWS, other supercomputer)?${thinline}" - IFS='\n' read -r env_type - printf "${thinline}Please briefly describe how you plan on using GEOS-Chem \nso that we can add you to the GEOS-Chem People and Projects \nwebpage (https://geoschem.github.io/geos-chem-people-projects-map/).${thinline}" - IFS='\n' read -r research_interest - post_registration "$email" "$name" "$affiliation" "$site" "$git_username" "$research_interest" "$env_type" - fi - echo "export GC_USER_REGISTERED=true" >> ${HOME}/.geoschem/config - source ${HOME}/.geoschem/config -fi +[[ -z "${GC_USER_REGISTERED}" ]] && registerNewUser "gcc" #----------------------------------------------------------------- # Ask user to select simulation type @@ -127,45 +105,41 @@ fi printf "${thinline}Choose simulation type:${thinline}" printf " 1. Full chemistry\n" printf " 2. Aerosols only\n" -printf " 3. CH4\n" -printf " 4. CO2\n" -printf " 5. Hg\n" -printf " 6. POPs\n" -printf " 7. Tagged CH4\n" -printf " 8. Tagged CO\n" -printf " 9. Tagged O3\n" -printf " 10. TransportTracers\n" -printf " 11. Trace metals\n" -printf " 12. Carbon\n" - +printf " 3. Carbon\n" +printf " 4. Hg\n" +printf " 5. POPs\n" +printf " 6. Tagged O3\n" +printf " 7. TransportTracers\n" +printf " 8. Trace metals\n" +printf " 9. CH4\n" +printf " 10. CO2\n" +printf " 11. Tagged CO\n" valid_sim=0 while [ "${valid_sim}" -eq 0 ]; do - read sim_num + read -p "${USER_PROMPT}" sim_num valid_sim=1 if [[ ${sim_num} = "1" ]]; then sim_name=fullchem elif [[ ${sim_num} = "2" ]]; then sim_name=aerosol elif [[ ${sim_num} = "3" ]]; then - sim_name=CH4 + sim_name=carbon elif [[ ${sim_num} = "4" ]]; then - sim_name=CO2 - elif [[ ${sim_num} = "5" ]]; then sim_name=Hg - elif [[ ${sim_num} = "6" ]]; then + elif [[ ${sim_num} = "5" ]]; then sim_name=POPs + elif [[ ${sim_num} = "6" ]]; then + sim_name=tagO3 elif [[ ${sim_num} = "7" ]]; then - sim_name=tagCH4 + sim_name=TransportTracers elif [[ ${sim_num} = "8" ]]; then - sim_name=tagCO + sim_name=metals elif [[ ${sim_num} = "9" ]]; then - sim_name=tagO3 + sim_name=CH4 elif [[ ${sim_num} = "10" ]]; then - sim_name=TransportTracers + sim_name=CO2 elif [[ ${sim_num} = "11" ]]; then - sim_name=metals - elif [[ ${sim_num} = "12" ]]; then - sim_name=carbon + sim_name=tagCO else valid_sim=0 printf "Invalid simulation option. Try again.\n" @@ -193,7 +167,7 @@ if [[ ${sim_name} = "fullchem" ]]; then printf " 8. RRTMG\n" valid_sim_option=0 while [ "${valid_sim_option}" -eq 0 ]; do - read sim_option + read -p "${USER_PROMPT}" sim_option valid_sim_option=1 if [[ ${sim_option} = "1" ]]; then sim_extra_option=none @@ -205,7 +179,7 @@ if [[ ${sim_name} = "fullchem" ]]; then printf " 2. Complex SOA with semivolatile POA\n" valid_soa=0 while [ "${valid_soa}" -eq 0 ]; do - read soa_option + read -p "${USER_PROMPT}" soa_option valid_soa=1 if [[ ${soa_option} = "1" ]]; then sim_extra_option="complexSOA" @@ -226,7 +200,7 @@ if [[ ${sim_name} = "fullchem" ]]; then printf " 2. TOMAS with 40 bins\n" valid_tomas=0 while [ "${valid_tomas}" -eq 0 ]; do - read tomas_option + read -p "${USER_PROMPT}" tomas_option valid_tomas=1 if [[ ${tomas_option} = "1" ]]; then sim_extra_option="TOMAS15" @@ -241,7 +215,6 @@ if [[ ${sim_name} = "fullchem" ]]; then sim_extra_option="APM" elif [[ ${sim_option} = "8" ]]; then sim_extra_option="RRTMG" - printf "*** IMPORTANT: You must manually specify -DRRTMG=y when compiling the model. ***\n" else valid_sim_option=0 printf "Invalid simulation option. Try again.\n" @@ -260,7 +233,7 @@ elif [[ ${sim_name} = "POPs" ]]; then printf " 3. PYR\n" valid_pops=0 while [ "${valid_pops}" -eq 0 ]; do - read pops_num + read -p "${USER_PROMPT}" pops_num valid_pops=1 if [[ ${pops_num} = "1" ]]; then sim_extra_option="BaP" @@ -273,6 +246,34 @@ elif [[ ${sim_name} = "POPs" ]]; then printf "Invalid POPs type. Try again.\n" fi done + +# Ask user to specify carbon simulation options +elif [[ "x${sim_name}" == "xcarbon" ]]; then + printf "${thinline}Do you wish to use a single advected species?${thinline}" + printf " 1. Use all species\n" + printf " 2. Use CH4 only\n" + printf " 3. Use CO2 only\n" + printf " 4. Use CO only\n" + printf " 5. Use OCS only\n" + valid=0 + while [ "${valid}" -eq 0 ]; do + read -p "${USER_PROMPT}" prompt + valid=1 + if [[ "x${prompt}" == "x1" ]]; then + sim_extra_option="none" + elif [[ "x${prompt}" == "x2" ]]; then + sim_extra_option="CH4" + elif [[ "x${prompt}" == "x3" ]]; then + sim_extra_option="CO2" + elif [[ "x${prompt}" == "x4" ]]; then + sim_extra_option="CO" + elif [[ "x${prompt}" == "x5" ]]; then + sim_extra_option="OCS" + else + valid=0 + printf "Invalid selection. Try again.\n" + fi + done fi RUNDIR_VARS+="RUNDIR_SIM_EXTRA_OPTION=$sim_extra_option\n" @@ -337,23 +338,28 @@ fi printf "${thinline}Choose meteorology source:${thinline}" printf " 1. MERRA-2 (Recommended)\n" printf " 2. GEOS-FP \n" -printf " 3. GISS ModelE2.1 (GCAP 2.0)\n" +printf " 3. GEOS-IT (Beta release)\n" +printf " 4. GISS ModelE2.1 (GCAP 2.0)\n" valid_met=0 while [ "${valid_met}" -eq 0 ]; do - read met_num + read -p "${USER_PROMPT}" met_num valid_met=1 if [[ ${met_num} = "1" ]]; then met="merra2" - shared_met_settings=${gcdir}/run/shared/settings/merra2.txt + shared_met_settings=${gcdir}/run/shared/settings/merra2.txt RUNDIR_VARS+="RUNDIR_MET_FIELD_CONFIG='HEMCO_Config.rc.gmao_metfields'\n" elif [[ ${met_num} = "2" ]]; then met="geosfp" - shared_met_settings=${gcdir}/run/shared/settings/geosfp.txt + shared_met_settings=${gcdir}/run/shared/settings/geosfp/geosfp.preprocessed_ll.txt RUNDIR_VARS+="RUNDIR_MET_FIELD_CONFIG='HEMCO_Config.rc.gmao_metfields'\n" elif [[ ${met_num} = "3" ]]; then + met="geosit" + shared_met_settings=${gcdir}/run/shared/settings/geosit/geosit.preprocessed_ll.txt + RUNDIR_VARS+="RUNDIR_MET_FIELD_CONFIG='HEMCO_Config.rc.gmao_metfields'\n" + elif [[ ${met_num} = "4" ]]; then met="ModelE2.1" - shared_met_settings=${gcdir}/run/shared/settings/modele2.1.txt + shared_met_settings=${gcdir}/run/shared/settings/modele2.1.txt RUNDIR_VARS+="RUNDIR_MET_FIELD_CONFIG='HEMCO_Config.rc.gcap2_metfields'\n" else valid_met=0 @@ -375,7 +381,7 @@ if [[ ${met} = "ModelE2.1" ]]; then valid_scen=0 while [ "${valid_scen}" -eq 0 ]; do - read scen_num + read -p "${USER_PROMPT}" scen_num valid_scen=1 if [[ ${scen_num} = "1" ]]; then scenario="HIST" @@ -447,8 +453,13 @@ if [[ ${met} = "ModelE2.1" ]]; then # NOTE: Benchmark simulations always use the climatological emissions! if [[ "x${sim_name}" == "xfullchem" ]] || \ [[ "x${sim_name}" == "xaerosol" ]]; then - RUNDIR_VARS+="RUNDIR_VOLC_CLIMATOLOGY='\$ROOT/VOLCANO/v2021-09/so2_volcanic_emissions_CARN_v202005.degassing_only.rc'\n" - RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2021-09/so2_volcanic_emissions_CARN_v202005.degassing_only.rc'\n" + RUNDIR_VARS+="RUNDIR_VOLC_CLIMATOLOGY='\$ROOT/VOLCANO/v2024-04/so2_volcanic_emissions_CARN_v202401.degassing_only.rc'\n" + + if [[ "x${sim_extra_option}" == "xbenchmark" ]]; then + RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2024-04/so2_volcanic_emissions_CARN_v202401.degassing_only.rc'\n" + else + RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2024-04/\$YYYY/\$MM/so2_volcanic_emissions_Carns.\$YYYY\$MM\$DD.rc'\n" + fi fi else @@ -464,12 +475,12 @@ else # NOTE: Benchmark simulations always use the climatological emissions! if [[ "x${sim_name}" == "xfullchem" ]] || \ [[ "x${sim_name}" == "xaerosol" ]]; then - RUNDIR_VARS+="RUNDIR_VOLC_CLIMATOLOGY='\$ROOT/VOLCANO/v2021-09/so2_volcanic_emissions_CARN_v202005.degassing_only.rc'\n" + RUNDIR_VARS+="RUNDIR_VOLC_CLIMATOLOGY='\$ROOT/VOLCANO/v2024-04/so2_volcanic_emissions_CARN_v202401.degassing_only.rc'\n" if [[ "x${sim_extra_option}" == "xbenchmark" ]]; then - RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2021-09/so2_volcanic_emissions_CARN_v202005.degassing_only.rc'\n" + RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2024-04/so2_volcanic_emissions_CARN_v202401.degassing_only.rc'\n" else - RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2021-09/\$YYYY/\$MM/so2_volcanic_emissions_Carns.\$YYYY\$MM\$DD.rc'\n" + RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2024-04/\$YYYY/\$MM/so2_volcanic_emissions_Carns.\$YYYY\$MM\$DD.rc'\n" fi fi @@ -479,40 +490,51 @@ else # Ask user to select horizontal resolution #----------------------------------------------------------------- printf "${thinline}Choose horizontal resolution:${thinline}" -if [[ ${met} = "ModelE2.1" ]] || [[ ${met} = "ModelE2.2" ]]; then +if [[ "x${met}" == "xModelE2.1" || "x${met}" == "xModelE2.2" ]]; then printf " 1. 4.0 x 5.0 *\n" printf " 2. 2.0 x 2.5\n" printf " 3. 0.5 x 0.625 *\n" printf " 4. 0.25 x 0.3125 *${thinline}" printf " \n* Will be interpolated online via FlexGrid from native 2.0 x 2.5 resolution\n" +elif [[ ${met} = "geosit" ]]; then + printf " 1. 4.0 x 5.0\n" + printf " 2. 2.0 x 2.5\n" else printf " 1. 4.0 x 5.0\n" printf " 2. 2.0 x 2.5\n" printf " 3. 0.5 x 0.625\n" - if [[ ${met} = "geosfp" ]]; then + if [[ "x${met}" == "xgeosfp" ]]; then printf " 4. 0.25 x 0.3125\n" fi fi valid_res=0 while [ "${valid_res}" -eq 0 ]; do - read res_num + read -p "${USER_PROMPT}" res_num valid_res=1 - if [[ ${res_num} = "1" ]]; then + if [[ "x${res_num}" == "x1" ]]; then grid_res='4x5' RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/4x5.txt)\n" - elif [[ ${res_num} = "2" ]]; then + elif [[ "x${res_num}" == "x2" ]]; then grid_res='2x25' RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/2x25.txt)\n" - elif [[ ${res_num} = "3" ]]; then + elif [[ "x${res_num}" == "x3" ]]; then grid_res='05x0625' RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/05x0625.txt)\n" - elif [[ ${res_num} = "4" ]]; then + elif [[ "x${res_num}" == "x4" ]]; then + # Error check: Don't allow a 0.25 x 0.3125 MERRA-2 rundir. + # -- Melissa Sulprizio, Bob Yantosca (12 Sep 2023) + if [[ "x${met}" == "xmerra2" ]]; then + valid_res=0 + printf "Cannot create a MERRA-2 rundir at 0.25 x 0.3125 " + printf "resolution!\nPlease make another selection.\n" + fi grid_res='025x03125' RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/025x03125.txt)\n" else valid_res=0 - printf "Invalid horizontal resolution option. Try again.\n" + printf "Invalid horizontal resolution option.\n" + printf "Please make another selection.\n" fi done @@ -526,10 +548,11 @@ if [[ ${grid_res} = "05x0625" ]] || [[ ${grid_res} = "025x03125" ]]; then valid_domain=0 while [ "${valid_domain}" -eq 0 ]; do - read domain_num + read -p "${USER_PROMPT}" domain_num valid_domain=1 if [[ ${domain_num} = "1" ]]; then RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/global_grid.txt)\n" + RUNDIR_VARS+="RUNDIR_GRID_HALF_POLAR='true '\n" else RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/nested_grid.txt)\n" if [[ ${domain_num} = "2" ]]; then @@ -654,6 +677,7 @@ if [[ ${met} = "ModelE2.1" ]]; then fi else RUNDIR_VARS+="RUNDIR_GISS_RES='not_used'\n" + # Use GEOS-FP values as placeholders for GEOS-IT until parameters derived if [[ "x${sim_name}" == "xfullchem" || "x${sim_name}" == "xaerosol" ]]; then if [[ "x${met}" == "xgeosfp" && "x${grid_res}" == "x4x5" ]]; then RUNDIR_VARS+="RUNDIR_DUSTDEAD_TF='8.3286e-4'\n" @@ -663,6 +687,10 @@ else RUNDIR_VARS+="RUNDIR_DUSTDEAD_TF='7.8533e-4'\n" elif [[ "x${met}" == "xmerra2" && "x${grid_res}" == "x2x25" ]]; then RUNDIR_VARS+="RUNDIR_DUSTDEAD_TF='4.7586e-4'\n" + elif [[ "x${met}" == "xgeosit" && "x${grid_res}" == "x4x5" ]]; then + RUNDIR_VARS+="RUNDIR_DUSTDEAD_TF='8.3286e-4'\n" + elif [[ "x${met}" == "xgeosit" && "x${grid_res}" == "x2x25" ]]; then + RUNDIR_VARS+="RUNDIR_DUSTDEAD_TF='5.0416e-4'\n" else RUNDIR_VARS+="RUNDIR_DUSTDEAD_TF='-999.0e0'\n" fi @@ -676,13 +704,13 @@ fi #----------------------------------------------------------------- printf "${thinline}Choose number of levels:${thinline}" -if [[ ${met} = "geosfp" ]] || [[ ${met} = "merra2" ]]; then +if [[ ${met} = "geosfp" ]] || [[ ${met} = "merra2" || ${met} = "geosit" ]]; then printf " 1. 72 (native)\n" printf " 2. 47 (reduced)\n" valid_lev=0 while [ "${valid_lev}" -eq 0 ]; do - read lev_num + read -p "${USER_PROMPT}" lev_num valid_lev=1 if [[ ${lev_num} = "1" ]]; then RUNDIR_VARS+="RUNDIR_GRID_NLEV='72'\n" @@ -700,7 +728,7 @@ if [[ ${met} = "ModelE2.1" ]]; then printf " 1. 40 (native)\n" valid_lev=0 while [ "${valid_lev}" -eq 0 ]; do - read lev_num + read -p "${USER_PROMPT}" lev_num valid_lev=1 if [[ ${lev_num} = "1" ]]; then RUNDIR_VARS+="RUNDIR_GRID_NLEV='40'\n" @@ -716,7 +744,7 @@ if [[ ${met} = "ModelE2.2" ]]; then printf " 2. 74 (reduced)\n" valid_lev=0 while [ "${valid_lev}" -eq 0 ]; do - read lev_num + read -p "${USER_PROMPT}" lev_num valid_lev=1 if [[ ${lev_num} = "1" ]]; then RUNDIR_VARS+="RUNDIR_GRID_NLEV='102'\n" @@ -735,7 +763,7 @@ fi printf "${thinline}Enter path where the run directory will be created:${thinline}" valid_path=0 while [ "$valid_path" -eq 0 ]; do - read -e rundir_path + read -e -p "${USER_PROMPT}" rundir_path # Test for quitting if [[ "x${rundir_path}" == "xq" ]]; then @@ -743,19 +771,18 @@ while [ "$valid_path" -eq 0 ]; do exit 1 fi - # Replace ~ with the user's home directory - # NOTE: This is a safe algorithm. - if [[ "${rundir_path}" =~ '~' ]]; then - rundir_path="${rundir_path/#\~/$HOME}" - echo "Expanding to: ${rundir_path}" - fi + # Expand $rundir_path to an absolute path. + # Also replace ~ with $HOME. + rundir_path="${rundir_path/#\~/$HOME}" + rundir_path=$(realpath "${rundir_path}") + echo "Expanding to ${rundir_path}" # If this is just a new directory within an existing one, # give the user the option to proceed if [[ ! -d ${rundir_path} ]]; then if [[ -d $(dirname ${rundir_path} ) ]]; then printf "\nWarning: ${rundir_path} does not exist,\nbut the parent directory does.\nWould you like to make this directory? (y/n/q)\n" - read mk_rundir + read -p "${USER_PROMPT}" mk_rundir if [[ "x${mk_rundir}" == "xy" ]]; then mkdir $rundir_path elif [[ "x${mk_rundir}" == "xq" ]]; then @@ -779,7 +806,7 @@ done if [ -z "$1" ]; then printf "${thinline}Enter run directory name, or press return to use default:\n\n" printf "NOTE: This will be a subfolder of the path you entered above.${thinline}" - read -e rundir_name + read -e -p "${USER_PROMPT}" rundir_name if [[ -z "${rundir_name}" ]]; then grid_display="${grid_res}" [[ "x${grid_nest}" != "x" ]] && grid_display+="_${grid_nest}" @@ -789,7 +816,7 @@ if [ -z "$1" ]; then else rundir_name=gc_${grid_display}_${met}_${sim_name}_${sim_extra_option} fi - printf " -- Using default directory name ${rundir_name}\n" + printf " -- Using default directory name ${rundir_name}" fi else rundir_name=$1 @@ -804,7 +831,7 @@ while [ "${valid_rundir}" -eq 0 ]; do if [[ -d ${rundir} ]]; then printf "\nWARNING: ${rundir} already exists.\n" printf "Enter a different run directory name, or q to quit:\n" - read -e new_rundir + read -e -p "${USER_PROMPT}" new_rundir if [[ ${new_rundir} = "q" ]]; then printf "Exiting.\n" exit 1 @@ -856,7 +883,7 @@ chmod 744 ${rundir}/archiveRun.sh # inactive species that are active in the other simulations, and this # causes a conflict. Work out a better solution later. # -- Bob Yantosca, 10 Dec 2021 -if [[ "x${sim_num}" == "x5" ]]; then +if [[ "x${sim_name}" == "xHg" ]]; then cp -r ${gcdir}/run/shared/species_database_hg.yml ${rundir}/species_database.yml else cp -r ${gcdir}/run/shared/species_database.yml ${rundir} @@ -874,17 +901,14 @@ fi # If benchmark simulation, put run script in directory if [[ "x${sim_extra_option}" == "xbenchmark" ]]; then - cp ./runScriptSamples/geoschem.benchmark.run ${rundir} + scriptDir="./runScriptSamples/operational_examples/harvard_cannon" + cp ${scriptDir}/geoschem.benchmark.run ${rundir} chmod 744 ${rundir}/geoschem.benchmark.run fi # Create symbolic link to code directory ln -s ${wrapperdir} ${rundir}/CodeDir -ln -s ${wrapperdir}/run/GCHP/runScriptSamples ${rundir}/runScriptSamples - -# Create build directory -mkdir ${rundir}/build -printf "To build GEOS-Chem type:\n cmake ../CodeDir\n cmake . -DRUNDIR=..\n make -j\n make install\n" >> ${rundir}/build/README +ln -s ${wrapperdir}/run/GCClassic/runScriptSamples ${rundir}/runScriptSamples #-------------------------------------------------------------------- # Navigate to run directory and set up input files @@ -895,7 +919,6 @@ cd ${rundir} # start year/month/day matches default initial restart file. if [[ "x${sim_name}" == "xHg" || "x${sim_name}" == "xCH4" || - "x${sim_name}" == "xtagCH4" || "x${sim_name}" == "xcarbon" || "x${sim_name}" == "xTransportTracers" ]]; then startdate='20190101' @@ -907,6 +930,7 @@ else startdate='20190701' enddate='20190801' fi + if [[ ${met} = "ModelE2.1" ]] || [[ ${met} = "ModelE2.2" ]]; then if [[ "$scenario" == "HIST" ]]; then startdate='20050701' @@ -998,21 +1022,20 @@ echo -e "$RUNDIR_VARS" > ${rundir_config_log} #sort -o ${rundir_config_log} ${rundir_config_log} # Initialize run directory +# NOTE: This also copies configuration files to the run directory! ${srcrundir}/init_rd.sh ${rundir_config_log} #-------------------------------------------------------------------- # Print run direcory setup info to screen #-------------------------------------------------------------------- -printf "\n See ${rundir_config}/rundir_vars.txt for run directory settings.\n\n" - -printf "\n -- This run directory has been set up to start on $state_date and" -printf "\n restart files for this date are in the Restarts subdirectory.\n" -printf "\n -- Update start and end dates in geoschem_config.yml.\n" - -printf "\n -- Add restart files to Restarts as GEOSChem.Restart.YYYYMMDD_HHmmz.nc4.\n" -printf "\n -- The default frequency and duration of diagnostics is set to monthly." -printf "\n You may modify these settings in HISTORY.rc and HEMCO_Config.rc.\n" +printf "\n -- See rundir_vars.txt for summary of default run directory settings" +printf "\n -- This run directory has been set up to start on ${startdate}" +printf "\n -- A restart file for this date has been copied to the Restarts subdirectory" +printf "\n -- You may add more restart files using format GEOSChem.Restart.YYYYMMDD_HHmmz.nc4" +printf "\n -- Change simulation start and end dates in configuration file geoschem_config.yml" +printf "\n -- Default frequency and duration of diagnostics are set to monthly" +printf "\n -- Modify diagnostic settings in HISTORY.rc and HEMCO_Config.rc\n" if [[ "x${nested_sim}" == "xT" ]]; then printf "\n -- Nested-grid simulations use global high-reoslution met fields" @@ -1023,147 +1046,61 @@ fi #-------------------------------------------------------------------- # Copy sample restart file to run directory +# Bash functions used here are from ./setupForRestarts.sh #-------------------------------------------------------------------- -if [[ ${met} = "merra2" ]] || [[ ${met} = "geosfp" ]]; then - - # Root path for restarts - # Check the Linux Kernel version to see if we are on the AWS cloud. - # If we are, define the command to copy the restart file from s3://gcgrid - is_aws=$(uname -r | grep aws) - if [[ "x${is_aws}" != "x" ]]; then - rst_root="s3://gcgrid/GEOSCHEM_RESTARTS" - s3_cp="aws s3 cp --request-payer=requester" - else - rst_root="${GC_DATA_ROOT}/GEOSCHEM_RESTARTS" - fi - - if [[ "x${sim_name}" == "xfullchem" || - "x${sim_name}" == "xaerosol" || - "x${sim_name}" == "xtagO3" ]]; then - - if [[ "x${sim_extra_option}" == "xTOMAS15" ]]; then - sample_rst=${rst_root}/v2021-12/GEOSChem.Restart.TOMAS15.${startdate}_0000z.nc4 - elif [[ "x${sim_extra_option}" == "xTOMAS40" ]]; then - sample_rst=${rst_root}/v2021-12/GEOSChem.Restart.TOMAS40.${startdate}_0000z.nc4 - else - sample_rst=${rst_root}/GC_14.0.0/GEOSChem.Restart.fullchem.${startdate}_0000z.nc4 - fi - - elif [[ "x${sim_name}" == "xTransportTracers" ]]; then - - # For TransportTracers, use restart from latest benchmark - sample_rst=${rst_root}/GC_14.0.0/GEOSChem.Restart.TransportTracers.${startdate}_0000z.nc4 - - elif [[ "x${sim_name}" == "xHg" ]]; then - - # For Hg, point to the restart file w/ KPP species (in v2021-12) - sample_rst=${rst_root}/v2021-12/GEOSChem.Restart.${sim_name}.${startdate}_0000z.nc4 - - elif [[ "x${sim_name}" == "xPOPs" ]]; then - - # For POPs, the extra option is in the restart file name - sample_rst=${rst_root}/v2020-02/GEOSChem.Restart.${sim_name}_${sim_extra_option}.${startdate}_0000z.nc4 - - elif [[ "x${sim_name}" == "xmetals" ]]; then - - # For metals, use the extra option is in the restart file name - sample_rst=${rst_root}/v2021-06/GEOSChem.Restart.${sim_name}.${startdate}_0000z.nc4 - - elif [[ "x${sim_name}" == "xcarbon" ]]; then - - # For carbon, point to the restarts in v2023-01 - sample_rst=${rst_root}/v2023-01/GEOSChem.Restart.${sim_name}.${startdate}_0000z.nc4 - - else - - # For other specialty simulations, use previoiusly saved restarts - sample_rst=${rst_root}/v2020-02/GEOSChem.Restart.${sim_name}.${startdate}_0000z.nc4 - - fi - -elif [[ ${met} = "ModelE2.1" ]]; then - - # Root path for restarts - # Check the Linux Kernel version to see if we are on the AWS cloud. - # If we are, define the command to copy the restart file from s3://gcgrid - is_aws=$(uname -r | grep aws) - if [[ "x${is_aws}" != "x" ]]; then - rst_root="s3://gcgrid/GCAP2_RESTARTS" - s3_cp="aws s3 cp --request-payer=requester" - else - rst_root="${GC_DATA_ROOT}/GCAP2_RESTARTS" - fi - - if [[ "x${sim_name}" == "xfullchem" ]]; then - - # For TOMAS simulations, use restarts provided by the TOMAS team - # For other fullchem simulations, use restart the latest 1-yr benchmark - if [[ "x${sim_extra_option}" == "xTOMAS15" ]]; then - sample_rst=${rst_root}/v2020-02/${RUNDIR_GRID_NLEV}L/initial_GCAP2_rst.4x5_TOMAS15.nc4 - elif [[ "x${sim_extra_option}" == "xTOMAS40" ]]; then - sample_rst=${rst_root}/v2020-02/${RUNDIR_GRID_NLEV}L/initial_GCAP2_rst.4x5_TOMAS40.nc4 - else - sample_rst=${rst_root}/GC_13.0.0/${RUNDIR_GRID_NLEV}L/GCAP2.Restart.fullchem.20190701_0000z.nc4 - fi - - elif [[ ${sim_name} = "TransportTracers" ]]; then - - # For TransportTracers, use restart from latest 1-year benchmark - sample_rst=${rst_root}/GC_13.0.0/${RUNDIR_GRID_NLEV}L/GEOSChem.Restart.TransportTracers.20190101_0000z.nc4 - - else - - # For other specialty simulations, use previously saved restarts - sample_rst=${rst_root}/v2018-11/${RUNDIR_GRID_NLEV}L/initial_GCAP2_rst.${grid_res}_${sim_name}.nc4 - - fi - -fi - -# Copy the restart file to the run directory (for AWS or on a local server) -if [[ "x${is_aws}" != "x" ]]; then - ${s3_cp} ${sample_rst} ${rundir}/Restarts/GEOSChem.Restart.${startdate}_0000z.nc4 2>/dev/null -elif [[ -f ${sample_rst} ]]; then - cp ${sample_rst} ${rundir}/Restarts/GEOSChem.Restart.${startdate}_0000z.nc4 +# Parse the download_data.yml file, which returns variable declarations +# prefixed by "RUNDIR_", such as: RUNDIR_restarts_root="GEOSCHEM_RESTARTS" +if [[ "x${met}" == "xModelE2.1" || "x${met}" == "xModelE2.2" ]]; then + config_file="${gcdir}/run/shared/download_data.gcap2.40L.yml" else - printf "\n -- The following sample restart provided for this simulation was not found:" - printf "\n ${sample_rst}" - printf "\n You will need to provide this initial restart file or disable" - printf "\n GC_RESTARTS in HEMCO_Config.rc to initialize your simulation" - printf "\n with default background species concentrations.\n" + config_file="${gcdir}/run/shared/download_data.yml" fi +config=$(parseYaml "${config_file}" "RUNDIR_") -# Sample restarts for several simulations do not contain all species. For those -# simulations, print a warning and change the time cycle option in HEMCO config -# so that we do not force an error if not found (i.e. EFYO --> EY) -if [[ "x${sim_extra_option}" == "xaciduptake" || - "x${sim_extra_option}" == "xmarinePOA" || - "x${sim_extra_option}" == "xcomplexSOA_SVPOA" || - "x${sim_extra_option}" == "xAPM" || - "x${sim_name}" == "xPOPs" || - "x${sim_name}" == "xtagCH4" || - "x${sim_name}" == "xtagO3" ]]; then - old="SpeciesRst_?ALL? \$YYYY/\$MM/\$DD/\$HH EFYO" - new="SpeciesRst_?ALL? \$YYYY/\$MM/\$DD/\$HH EY " - sed_ie "s|${old}|${new}|" HEMCO_Config.rc - - printf "\n -- The sample restart provided for this simulation may not" - printf "\n contain all species defined in this simulation. Missing" - printf "\n species will be assigned default background concentrations." - printf "\n Check your GEOS-Chem log file for details. As always, it" - printf "\n is recommended that you spin up your simulation to ensure" - printf "\n proper initial conditions.\n" -fi +# Export environment variables to be used by rundir scripts +for var in ${config[@]}; do + setRestartEnvVar "${var}" +done + +# Root paths for restarts +# Check the Linux Kernel version to see if we are on the AWS cloud. +# If we are, define the command to copy the restart file from s3://gcgrid +is_aws=$(uname -r | grep aws) +rst_root=$(getRemoteRoot "${is_aws}") +s3_cp=$(getS3CopyCmd "${is_aws}") +loc_root="${rundir}/Restarts" + +# Copy the proper restart file to the run directory Restarts/ folder +copyRestartToRunDir "${sim_name}" "${sim_extra_option}" \ + "${rst_root}" "${loc_root}" + +# Change time cycle flags in HEMCO_Config.rc for those simulations +# in which the restart files do not contain all species +setEFYOtoEYinHemcoConfig "${sim_name}" "${sim_extra_option}" + +# Unset environment variables used by rundir scripts +for var in ${config[@]}; do + unsetRestartEnvVar "${var}" +done + +#-------------------------------------------------------------------- +# Other setup tasks +#-------------------------------------------------------------------- # Call function to setup configuration files with settings common between # GEOS-Chem Classic and GCHP. This script mainly now adds species to # input_options.yml and modifies diagnostic output based on simulation type. if [[ "x${sim_name}" = "xfullchem" ]]; then - set_common_settings ${sim_extra_option} -fi + set_common_settings "${sim_extra_option}" "GCClassic" +fi -# +# If necessary, edit config files for a carbon single species simulation +if [[ "x${sim_name}" == "xcarbon" ]]; then + if [[ "x${sim_extra_option}" != "xnone" ]]; then + singleCarbonSpecies "${sim_extra_option}" "${rundir}" + fi +fi #-------------------------------------------------------------------- # Navigate back to source code directory @@ -1202,16 +1139,17 @@ printf "\n Hash: ${commit_hash}\n" >> ${version_log} printf "${thinline}Do you want to track run directory changes with git? (y/n)${thinline}" valid_response=0 while [ "$valid_response" -eq 0 ]; do - read enable_git + read -p "${USER_PROMPT}" enable_git if [[ "x${enable_git}" == "xy" ]]; then cd ${rundir} printf "\n\nChanges to the following run directory files are tracked by git:\n\n" >> ${version_log} printf "\n" git init git add *.rc *.sh *.yml *.py geoschem_config.yml getRunInfo - [[ -f geoschem.benchmark.run ]] && git add geoschem.benchmark.run - [[ -f geoschem.run ]] && git add geoschem.run - [[ -f ${rundir_config_log} ]] && git add ${rundir_config_log} + [[ -f geoschem.benchmark.run ]] && git add geoschem.benchmark.run + [[ -f geoschem.run ]] && git add geoschem.run + [[ -f HEMCO_Config.rc.gmao_metfields ]] && git add HEMCO_Config.rc.gmao_metfields + [[ -f ${rundir_config_log} ]] && git add ${rundir_config_log} printf " " >> ${version_log} git commit -m "Initial run directory" >> ${version_log} cd ${srcrundir} @@ -1223,6 +1161,40 @@ while [ "$valid_response" -eq 0 ]; do fi done +#--------------------------------------------------------------------------- +# Add reminders to compile with CMake options for simulations that need them +#--------------------------------------------------------------------------- +hdr="\n>>>> REMINDER: You must compile with options:" +ftr="<<<<\n" + +EXTRA_CMAKE_OPTIONS="" +[[ "x${sim_name}" == "xcarbon" ]] && EXTRA_CMAKE_OPTIONS="-DMECH=carbon" +[[ "x${sim_name}" == "xHg" ]] && EXTRA_CMAKE_OPTIONS="-DMECH=Hg -DFASTJX=y" +if [[ "x${sim_name}" == "xfullchem" ]]; then + [[ "x${sim_extra_option}" == "xAPM" ]] && EXTRA_CMAKE_OPTIONS="-DAPM=y" + [[ "x${sim_extra_option}" == "xRRTMG" ]] && EXTRA_CMAKE_OPTIONS="-DRRTMG=y" + [[ "x${sim_extra_option}" == "xTOMAS15" ]] && EXTRA_CMAKE_OPTIONS="-DTOMAS=y -DTOMAS_BINS=15" + [[ "x${sim_extra_option}" == "xTOMAS40" ]] && EXTRA_CMAKE_OPTIONS="-DTOMAS=y -DTOMAS_BINS=40" +fi + +# Add to RUNDIR_VARS +RUNDIR_VARS+="EXTRA_CMAKE_OPTIONS=${EXTRA_CMAKE_OPTIONS}" + +# Print a reminder to compile with extra CMake options, if necessary +[[ "x${EXTRA_CMAKE_OPTIONS}" != "x" ]] && printf "${hdr} ${EXTRA_CMAKE_OPTIONS} ${ftr}" + +#--------------------------------------------------------------------------- +# Create build directory README file +#--------------------------------------------------------------------------- +mkdir -p "${rundir}/build" +msg="To build GEOS-Chem, type:\n\n" +msg+="$ cmake ../CodeDir\n" +msg+="$ cmake . -DRUNDIR=.. ${EXTRA_CMAKE_OPTIONS}\n" +msg+="$ make -j\n" +msg+="$ make install\n" +printf "${msg}" > ${rundir}/build/README +unset msg + #----------------------------------------------------------------- # Add the version info to the top of the rundir configuration log #----------------------------------------------------------------- diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.CH4 b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.CH4 index 8144a1487..731590b20 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.CH4 +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.CH4 @@ -1,9 +1,6 @@ --- ### geoschem_config.yml: GEOS-Chem Runtime configuration options. ### Customized for simulations using the CH4 mechanism. -### -### NOTE: Add quotes around nitrogen oxide ('NO'), because YAML -### parsers will confuse this with a negative "no" value. #============================================================================ # Simulation settings @@ -16,7 +13,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ @@ -76,12 +75,9 @@ CH4_simulation_options: TCCON: false analytical_inversion: - activate: false - emission_perturbation: 1.0 - state_vector_element_number: 0 - use_emission_scale_factor: false - use_OH_scale_factors: false - + perturb_CH4_boundary_conditions: false + CH4_boundary_condition_ppb_increase_NSEW: [0.0, 0.0, 0.0, 0.0] + #============================================================================ # Settings for diagnostics (other than HISTORY and HEMCO) #============================================================================ @@ -98,54 +94,4 @@ extra_diagnostics: planeflight: activate: false flight_track_file: Planeflight.dat.YYYYMMDD - output_file: plane.log.YYYYMMDD - - legacy_bpch: # 1 2 3 - output_menu: # 1234567890123456789012345678901 - schedule_output_for_JAN: 3000000000000000000000000000000 - schedule_output_for_FEB: 30000000000000000000000000000 - schedule_output_for_MAR: 3000000000000000000000000000000 - schedule_output_for_APR: 300000000000000000000000000000 - schedule_output_for_MAY: 3000000000000000000000000000000 - schedule_output_for_JUN: 300000000000000000000000000000 - schedule_output_for_JUL: 3000000000000000000000000000000 - schedule_output_for_AUG: 3000000000000000000000000000000 - schedule_output_for_SEP: 300000000000000000000000000000 - schedule_output_for_OCT: 3000000000000000000000000000000 - schedule_output_for_NOV: 300000000000000000000000000000 - schedule_output_for_DEC: 3000000000000000000000000000000 - - gamap: - diaginfo_dat_file: ./diaginfo.dat - tracerinfo_dat_file: ./tracerinfo.dat - - bpch_diagnostics: - TOMAS_aerosol_emissions: "0 all" - TOMAS_rate: "0 all" - TOMAS_3D_rate: "0 all" - - ND51_satellite: - activate: false - output_file: ts_satellite.YYYYMMDD.bpch - tracers: - - 1 - - 2 - - 501 - UTC_hour_for_write: 0 - averaging_period_in_LT: [9, 11] - IMIN_and_IMAX_of_region: [1, 72] - JMIN_and_JMAX_of_region: [1, 46] - LMIN_and_LMAX_of_region: [1, 1] - - ND51b_satellite: - activate: false - output_file: ts_13_15_NA..YYYYMMDD.bpch - tracers: - - 1 - - 2 - - 501 - UTC_hour_for_write: 1 - averaging_period_in_LT: [13, 15] - IMIN_and_IMAX_of_region: [1, 72] - JMIN_and_JMAX_of_region: [1, 46] - LMIN_and_LMAX_of_region: [1, 1] + output_file: plane.log.YYYYMMDD \ No newline at end of file diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.CO2 b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.CO2 index c2144d5e6..dd43be87f 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.CO2 +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.CO2 @@ -16,7 +16,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ @@ -71,20 +73,11 @@ operations: CO2_simulation_options: sources: - fossil_fuel_emissions: true - ocean_exchange: true - balanced_biosphere_exchange: true - net_terrestrial_exchange: true - ship_emissions: true - aviation_emissions: true 3D_chemical_oxidation_source: true tagged_species: - save_fossil_fuel_in_background: false tag_bio_and_ocean_CO2: false - tag_land_fossil_fuel_CO2: - tag_global_ship_CO2: false - tag_global_aircraft_CO2: false + tag_land_fossil_fuel_CO2: false #============================================================================ # Settings for diagnostics (other than HISTORY and HEMCO) diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.Hg b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.Hg index 2e991a5ab..52bb52141 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.Hg +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.Hg @@ -16,7 +16,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ @@ -62,7 +64,10 @@ operations: use_non_local_pbl: ${RUNDIR_USE_NLPBL} photolysis: - input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/FAST_JX/v2022-10-Hg/ + activate: true + input_directories: + fastjx_input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/FAST_JX/v2024-05-Hg/ + cloudj_input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/CLOUD_J/v2024-05/ overhead_O3: use_online_O3_from_model: ${RUNDIR_USE_ONLINE_O3} use_column_O3_from_met: true diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.POPs b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.POPs index c1b3469d2..985d12dab 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.POPs +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.POPs @@ -16,7 +16,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.TransportTracers b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.TransportTracers index 17602d114..6e64ac15b 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.TransportTracers +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.TransportTracers @@ -16,7 +16,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ @@ -68,68 +70,26 @@ operations: transported_species: - Rn222 - Pb210 - - Pb210Strat + - Pb210s - Be7 - - Be7Strat + - Be7s - Be10 - - Be10Strat + - Be10s + - aoa + - aoa_bl + - aoa_nh + - CH3I + - CO_25 + - CO_50 + - e90 + - e90_n + - e90_s + - nh_5 + - nh_50 - PassiveTracer - - CLOCK - - SF6Tracer - - CH3ITracer - - COAnthroEmis25dayTracer - - COAnthroEmis50dayTracer - - COUniformEmis25dayTracer - - GlobEmis90dayTracer - - NHEmis90dayTracer - - SHEmis90dayTracer - passive_species: - PassiveTracer: - long_name: Passive_tracer_for_mass_conservation_evaluation - mol_wt_in_g: 1.0 - lifetime_in_s: -1 - default_bkg_conc_in_vv: 1.0e-7 - SF6Tracer: - long_name: Sulfur_hexafluoride - mol_wt_in_g: 146.0 - lifetime_in_s: -1 - default_bkg_conc_in_vv: 1.0e-20 - CH3ITracer: - long_name: Methyl_iodide - mol_wt_in_g: 142.0 - lifetime_in_s: 4.32e5 - default_bkg_conc_in_vv: 1.0e-20 - COAnthroEmis25dayTracer: - long_name: Anthropogenic_CO_with_25day_lifetime - mol_wt_in_g: 28.0 - lifetime_in_s: 2.16e6 - default_bkg_conc_in_vv: 1.0e-20 - COAnthroEmis50dayTracer: - long_name: Anthropogenic_CO_with_50day_lifetime - mol_wt_in_g: 28.0 - lifetime_in_s: 4.32e6 - default_bkg_conc_in_vv: 1.0e-20 - COUniformEmis25dayTracer: - long_name: CO_with_uniform_emission_and_25day_lifetime - mol_wt_in_g: 28.0 - lifetime_in_s: 2.16e6 - default_bkg_conc_in_vv: 1.0e-20 - GlobEmis90dayTracer: - long_name: Globally_emitted_tracer_with_90day_lifetime_and_100ppbv_maintained_mixing_ratio - mol_wt_in_g: 1.0 - lifetime_in_s: 7.776e6 - default_bkg_conc_in_vv: 1.0e-20 - NHEmis90dayTracer: - long_name: Northern_hemisphere_emitted_tracer_with_90day_lifetime_and_100ppbv_maintained_mixing_ratio - mol_wt_in_g: 1.0 - lifetime_in_s: 7.776e6 - default_bkg_conc_in_vv: 1.0e-20 - SHEmis90dayTracer: - long_name: Southern_hemisphere_emitted_tracer_with_90day_lifetime_and_100ppbv_maintained_mixing_ratio - mol_wt_in_g: 1.0 - lifetime_in_s: 7.776e6 - default_bkg_conc_in_vv: 1.0e-20 - + - SF6 + - st80_25 + wet_deposition: activate: true diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.aerosol b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.aerosol index 03e66d297..c221e620d 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.aerosol +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.aerosol @@ -16,7 +16,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ @@ -62,7 +64,10 @@ operations: use_non_local_pbl: ${RUNDIR_USE_NLPBL} photolysis: - input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/FAST_JX/v2021-10/ + activate: true + input_directories: + fastjx_input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/FAST_JX/v2024-05/ + cloudj_input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/CLOUD_J/v2023-05/ overhead_O3: use_online_O3_from_model: false use_column_O3_from_met: true diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.carbon b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.carbon index f2f4d5556..0a2125d2f 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.carbon +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.carbon @@ -12,7 +12,10 @@ simulation: root_data_dir: ${RUNDIR_DATA_ROOT} met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml - debug_printout: false + species_metadata_output_file: OutputDir/geoschem_species_metadata.yml + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ @@ -75,11 +78,8 @@ CH4_simulation_options: TCCON: false analytical_inversion: - activate: false - emission_perturbation: 1.0 - state_vector_element_number: 0 - use_emission_scale_factor: false - use_OH_scale_factors: false + perturb_CH4_boundary_conditions: false + CH4_boundary_condition_ppb_increase_NSEW: [0.0, 0.0, 0.0, 0.0] #============================================================================ # Options for CO @@ -96,17 +96,28 @@ CO_simulation_options: CO2_simulation_options: sources: - fossil_fuel_emissions: true - ocean_exchange: true - balanced_biosphere_exchange: true - net_terrestrial_exchange: true - ship_emissions: true - aviation_emissions: true 3D_chemical_oxidation_source: true tagged_species: - save_fossil_fuel_in_background: false tag_bio_and_ocean_CO2: false - tag_land_fossil_fuel_CO2: - tag_global_ship_CO2: false - tag_global_aircraft_CO2: false + tag_land_fossil_fuel_CO2: false + +#============================================================================ +# Settings for diagnostics (other than HISTORY and HEMCO) +#============================================================================ +extra_diagnostics: + + obspack: + activate: false + quiet_logfile_output: false + input_file: ./obspack_co2_1_OCO2MIP_2018-11-28.YYYYMMDD.nc + output_file: ./OutputDir/GEOSChem.ObsPack.YYYYMMDD_hhmmz.nc4 + output_species: + - CH4 + - CO + - CO2 + + planeflight: + activate: false + flight_track_file: Planeflight.dat.YYYYMMDD + output_file: plane.log.YYYYMMDD \ No newline at end of file diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.fullchem b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.fullchem index 989407c56..e3ed1fb28 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.fullchem +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.fullchem @@ -16,7 +16,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ @@ -85,15 +87,18 @@ operations: use_non_local_pbl: ${RUNDIR_USE_NLPBL} photolysis: - input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/FAST_JX/v2021-10/ + activate: true + input_directories: + fastjx_input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/FAST_JX/v2024-05/ + cloudj_input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/CLOUD_J/v2023-05/ overhead_O3: use_online_O3_from_model: ${RUNDIR_USE_ONLINE_O3} use_column_O3_from_met: true use_TOMS_SBUV_O3: false photolyze_nitrate_aerosol: - activate: false - NITs_Jscale_JHNO3: 0.0 - NIT_Jscale_JHNO2: 0.0 + activate: true + NITs_Jscale: 100.0 + NIT_Jscale: 100.0 percent_channel_A_HONO: 66.667 percent_channel_B_NO2: 33.333 @@ -105,6 +110,10 @@ operations: shortwave_fluxes: ${RUNDIR_RRTMG_OPTS} clear_sky_flux: ${RUNDIR_RRTMG_OPTS} all_sky_flux: ${RUNDIR_RRTMG_OPTS} + fixed_dyn_heating: false + seasonal_fdh: false + read_dyn_heating: false + co2_ppmv: 390.0 transport: gcclassic_tpcore: # GEOS-Chem Classic only @@ -134,6 +143,7 @@ operations: - BrO - BrSALA - BrSALC + - BUTDI - BZCO3H - BZPAN - C2H2 @@ -180,6 +190,7 @@ operations: - ETHP - ETNO3 - ETP + - FURA - GLYC - GLYX - H1211 @@ -396,56 +407,3 @@ extra_diagnostics: activate: false flight_track_file: Planeflight.dat.YYYYMMDD output_file: plane.log.YYYYMMDD - - legacy_bpch: # 1 2 3 - output_menu: # 1234567890123456789012345678901 - schedule_output_for_JAN: 3000000000000000000000000000000 - schedule_output_for_FEB: 30000000000000000000000000000 - schedule_output_for_MAR: 3000000000000000000000000000000 - schedule_output_for_APR: 300000000000000000000000000000 - schedule_output_for_MAY: 3000000000000000000000000000000 - schedule_output_for_JUN: 300000000000000000000000000000 - schedule_output_for_JUL: 3000000000000000000000000000000 - schedule_output_for_AUG: 3000000000000000000000000000000 - schedule_output_for_SEP: 300000000000000000000000000000 - schedule_output_for_OCT: 3000000000000000000000000000000 - schedule_output_for_NOV: 300000000000000000000000000000 - schedule_output_for_DEC: 3000000000000000000000000000000 - - gamap: - diaginfo_dat_file: ./diaginfo.dat - tracerinfo_dat_file: ./tracerinfo.dat - - bpch_diagnostics: - TOMAS_aerosol_emissions: "0 all" - TOMAS_rate: "0 all" - TOMAS_3D_rate: "0 all" - ND65_prodloss: - activate: true - number_of_levels: 72 - - ND51_satellite: - activate: false - output_file: ts_satellite.YYYYMMDD.bpch - tracers: - - 1 - - 2 - - 501 - UTC_hour_for_write: 0 - averaging_period_in_LT: [9, 11] - IMIN_and_IMAX_of_region: [1, 72] - JMIN_and_JMAX_of_region: [1, 46] - LMIN_and_LMAX_of_region: [1, 1] - - ND51b_satellite: - activate: false - output_file: ts_13_15_NA..YYYYMMDD.bpch - tracers: - - 1 - - 2 - - 501 - UTC_hour_for_write: 1 - averaging_period_in_LT: [13, 15] - IMIN_and_IMAX_of_region: [1, 72] - JMIN_and_JMAX_of_region: [1, 46] - LMIN_and_LMAX_of_region: [1, 1] diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.metals b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.metals index 922446ed0..c00184f02 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.metals +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.metals @@ -16,7 +16,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagCO b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagCO index 004c08aa8..6c318d08d 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagCO +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagCO @@ -16,7 +16,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagO3 b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagO3 index 9853029ed..7b8877272 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagO3 +++ b/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagO3 @@ -16,7 +16,9 @@ simulation: met_field: ${RUNDIR_MET} species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} #============================================================================ diff --git a/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/README b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/README new file mode 100644 index 000000000..c9e3f1d27 --- /dev/null +++ b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/README @@ -0,0 +1,3 @@ +Contact: +GEOS-Chem Support Team at Harvard University +geos-chem-support@g.harvard.edu \ No newline at end of file diff --git a/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/gcclassic.gcc10_cannon_rocky.env b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/gcclassic.gcc10_cannon_rocky.env new file mode 100755 index 000000000..031b9c2ac --- /dev/null +++ b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/gcclassic.gcc10_cannon_rocky.env @@ -0,0 +1,118 @@ +############################################################################### +# gcclassic.rocky+gnu10.minimal.env +# +# Environment file for GCClassic + Rocky Linux + GNU Compiler Collection 10.2.0 +# +# Does not include any Spack-built modules, only FASRC-built modules. +# Useful for running in the Cannon queues, or to start fresh Spack builds. +############################################################################### + +# Display message (if we are in a terminal window) +if [[ $- = *i* ]] ; then + echo "Loading modules for GEOS-Chem Classic, please wait ..." +fi + +#============================================================================== +# Unload all previously-unloaded software +#============================================================================== + +# Unload packages loaded with "module load" +module purge + +# Unload packages loaded with "spack load" +if [[ "x${SPACK_ROOT}" != "x" ]]; then + which spack &> /dev/null || spack unload --all +fi + +#============================================================================== +# Load FASRC-built software packages for Rocky Linux and GNU 10.2.0 +#============================================================================== +if [[ $- = *i* ]] ; then + echo "... Loading FASRC-built software, please wait ..." +fi + +# Load FASRC-built modules +module load gcc/10.2.0-fasrc01 # gcc / g++ / gfortran +module load openmpi/4.1.0-fasrc01 # MPI +module load netcdf-c/4.8.0-fasrc01 # netcdf-c +module load netcdf-fortran/4.5.3-fasrc01 # netcdf-fortran +module load flex/2.6.4-fasrc01 # Flex lexer (needed for KPP) +module load cmake/3.25.2-fasrc01 # CMake (needed to compile) + +# Additional FASRC-built modules +# Uncomment if you need to use these +#module load IDL/8.7.2-fasrc01 # IDL language (needed for GAMAP) +##module load R/4.2.2-fasrc01 # R language +##module load matlab/R2022b-fasrc01 # matlab language + +#============================================================================== +# Environment variables and related settings +# (NOTE: Lmod will define _HOME variables for each loaded module +#============================================================================== + +# Make all files world-readable by default +umask 022 + +# Set number of threads for OpenMP. If running in a SLURM environment, +# use the number of requested cores. Otherwise use 8 cores for OpenMP. +if [[ "x${SLURM_CPUS_PER_TASK}" == "x" ]]; then + export OMP_NUM_THREADS=8 +else + export OMP_NUM_THREADS="${SLURM_CPUS_PER_TASK}" +fi + +# Max out the stacksize memory limit +export OMP_STACKSIZE="500m" + +# Compilers +export CC="gcc" +export CXX="g++" +export FC="gfortran" +export F77="${FC}" + +# netCDF +if [[ "x${NETCDF_HOME}" == "x" ]]; then + export NETCDF_HOME="${NETCDF_C_HOME}" +fi +export NETCDF_C_ROOT="${NETCDF_HOME}" +export NETCDF_FORTRAN_ROOT="${NETCDF_FORTRAN_HOME}" + +# KPP 3.0.0+ +export KPP_FLEX_LIB_DIR="${FLEX_HOME}/lib64" + +# If you are using GEOS-Chem 12.6.0 or earlier, +# uncomment these lines and source this file again. +#export GC_INCLUDE=$NETCDF_INCLUDE +#export GC_BIN=$NETCDF_HOME/bin +#export GC_LIB=$NETCDF_LIB +#export GC_F_INCLUDE=$NETCDF_FORTRAN_INCLUDE +#export GC_F_LIB=$NETCDF_FORTRAN_LIB +#export GC_F_BIN=$NETCDF_FORTRAN_HOME/bin + +#============================================================================== +# Set limits +#============================================================================== + +ulimit -c unlimited # coredumpsize +ulimit -u 50000 # maxproc +ulimit -v unlimited # vmemoryuse +ulimit -s unlimited # stacksize + +#============================================================================== +# Print information +#============================================================================== + +module list + +echo "" +echo "Environment:" +echo "" +echo "CC : ${CC}" +echo "CXX : ${CXX}" +echo "FC : ${FC}" +echo "KPP_FLEX_LIB_DIR : ${KPP_FLEX_LIB_DIR}" +echo "NETCDF_HOME : ${NETCDF_HOME}" +echo "NETCDF_FORTRAN_HOME : ${NETCDF_FORTRAN_HOME}" +echo "OMP_NUM_THREADS : ${OMP_NUM_THREADS}" +echo "" +echo "Done sourcing ${BASH_SOURCE[0]}" diff --git a/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/gcclassic.gcc12_cannon_rocky.env b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/gcclassic.gcc12_cannon_rocky.env new file mode 100755 index 000000000..7f3d7606c --- /dev/null +++ b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/gcclassic.gcc12_cannon_rocky.env @@ -0,0 +1,119 @@ +############################################################################### +# gcclassic.rocky+gnu12.minimal.env +# +# Environment file for GCClassic + Rocky Linux + GNU Compiler Collection 12.2.0 +# +# Does not include any Spack-built modules, only FASRC-built modules. +# Useful for running in the Cannon queues, or to start fresh Spack builds. +############################################################################### + +# Display message (if we are in a terminal window) +if [[ $- = *i* ]] ; then + echo "Loading modules for GEOS-Chem Classic, please wait ..." +fi + +#============================================================================== +# Unload all previously-unloaded software +#============================================================================== + +# Unload packages loaded with "module load" +module purge + +# Unload packages loaded with "spack load" +if [[ "x${SPACK_ROOT}" != "x" ]]; then + which spack &> /dev/null || spack unload --all +fi + +#============================================================================== +# Load FASRC-built software packages for Rocky Linux and GNU 12.2.0 +#============================================================================== +if [[ $- = *i* ]] ; then + echo "... Loading FASRC-built software, please wait ..." +fi + +# FASRC-built modules needed for GEOS-Chem +module load gcc/12.2.0-fasrc01 # gcc / g++ / gfortran +module load openmpi/4.1.4-fasrc01 # MPI +module load netcdf-c/4.9.2-fasrc01 # netcdf-c +module load netcdf-fortran/4.6.0-fasrc02 # netcdf-fortran +module load flex/2.6.4-fasrc01 # Flex lexer (needed for KPP) +module load cmake/3.25.2-fasrc01 # CMake (needed to compile) + +# Additional FASRC-built modules +# Uncomment if you need to use these +#module load IDL/8.7.2-fasrc01 # IDL language (needed for GAMAP) +#module load R/4.2.2-fasrc01 # R language +#module load matlab/R2022b-fasrc01 # matlab language + +#============================================================================== +# Environment variables and related settings +# (NOTE: Lmod will define _HOME variables for each loaded module) +#============================================================================== + +# Make all files world-readable by default +umask 022 + +# Set number of threads for OpenMP. If running in a SLURM environment, +# use the number of requested cores. Otherwise use 8 cores for OpenMP. +if [[ "x${SLURM_CPUS_PER_TASK}" == "x" ]]; then + export OMP_NUM_THREADS=8 +else + export OMP_NUM_THREADS="${SLURM_CPUS_PER_TASK}" +fi + +# Max out the stacksize memory limit +export OMP_STACKSIZE="500m" + +# Compilers +export CC="gcc" +export CXX="g++" +export FC="gfortran" +export F77="${FC}" + +# netCDF +if [[ "x${NETCDF_HOME}" == "x" ]]; then + export NETCDF_HOME="${NETCDF_C_HOME}" +fi +export NETCDF_C_ROOT="${NETCDF_HOME}" +export NETCDF_FORTRAN_ROOT=${NETCDF_FORTRAN_HOME} + +# KPP 3.0.0+ +export KPP_FLEX_LIB_DIR=${FLEX_HOME}/lib64 + +# If you are using GEOS-Chem 12.6.0 or earlier, +# uncomment these lines and source this file again. +#export GC_INCLUDE=$NETCDF_INCLUDE +#export GC_BIN=$NETCDF_HOME/bin +#export GC_LIB=$NETCDF_LIB +#export GC_F_INCLUDE=$NETCDF_FORTRAN_INCLUDE +#export GC_F_LIB=$NETCDF_FORTRAN_LIB +#export GC_F_BIN=$NETCDF_FORTRAN_HOME/bin + +#============================================================================== +# Set limits +#============================================================================== + +ulimit -c unlimited # coredumpsize +ulimit -u 50000 # maxproc +ulimit -v unlimited # vmemoryuse +ulimit -s unlimited # stacksize + +#============================================================================== +# Print information +#============================================================================== + +module list + +echo "" +echo "Environment:" +echo "" +echo "CC : ${CC}" +echo "CXX : ${CXX}" +echo "FC : ${FC}" +echo "KPP_FLEX_LIB_DIR : ${KPP_FLEX_LIB_DIR}" +echo "MPI_HOME : ${MPI_HOME}" +echo "NETCDF_HOME : ${NETCDF_HOME}" +echo "NETCDF_FORTRAN_HOME : ${NETCDF_FORTRAN_HOME}" +echo "OMP_NUM_THREADS : ${OMP_NUM_THREADS}" +echo "" +echo "Done sourcing ${BASH_SOURCE[0]}" diff --git a/run/GCClassic/runScriptSamples/geoschem.benchmark.run b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/geoschem.benchmark.run similarity index 88% rename from run/GCClassic/runScriptSamples/geoschem.benchmark.run rename to run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/geoschem.benchmark.run index d79bac7df..6dfdc0f17 100755 --- a/run/GCClassic/runScriptSamples/geoschem.benchmark.run +++ b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/geoschem.benchmark.run @@ -3,7 +3,7 @@ #SBATCH -c 48 #SBATCH -N 1 #SBATCH -t 0-5:00 -#SBATCH -p seas_compute +#SBATCH -p sapphire,huce_cascade,seas_compute,shared #SBATCH --mem=16000 #SBATCH --mail-type=END @@ -15,12 +15,13 @@ # !MODULE: geoschem.benchmark.run # # !DESCRIPTION: This bash script submits a 1-month benchmark simulation +# to the SLURM scheduler. #\\ #\\ # !REMARKS: -# Designed to be used with the geosfp_4x5_standard run directory created -# by the GEOS-Chem Unit Tester. To use this script, you must first compile -# the GEOS-Chem code with CMake to create the gcclassic executable. +# Designed to be used with the gc_4x5_merra2_fullchem_benchmark folder +# generated by the ./createRunDir.sh script. To use this script, you must +# first compile GEOS-Chem with CMake to create the gcclassic executable. # # NOTES: # (1) This script is customized for the Harvard "Cannon" cluster. If you diff --git a/run/GCClassic/runScriptSamples/geoschem.run b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/geoschem.run similarity index 52% rename from run/GCClassic/runScriptSamples/geoschem.run rename to run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/geoschem.run index bc41b4fde..2a26cb860 100755 --- a/run/GCClassic/runScriptSamples/geoschem.run +++ b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/geoschem.run @@ -3,14 +3,22 @@ #SBATCH -c 8 #SBATCH -N 1 #SBATCH -t 0-12:00 -#SBATCH -p seas_compute +#SBATCH -p sapphire,huce_cascade,seas_compute,shared #SBATCH --mem=15000 #SBATCH --mail-type=END ############################################################################### -### Sample GEOS-Chem run script for SLURM -### You can increase the number of cores with -c and memory with --mem, -### particularly if you are running at very fine resolution (e.g. nested-grid) +### Sample GEOS-Chem Classic run script for Harvard Cannon (using SLURM). +### +### If you are running a nested-grid simulation at fine resolution, you +### will likely need to request additional memory, cores, and time. +### +### -c : Requests this many cores +### -N : Requests a single node +### --mem : Requests this amount of memory in GB +### -p : Requests these partitions where the job can run +### -t : Requests time for the job (days-hours:minutes) +### --exclusive : Reserves entire nodes (i.e. to prevent backfilling jobs) ############################################################################### # Set the proper # of threads for OpenMP @@ -24,4 +32,4 @@ srun -c $OMP_NUM_THREADS time -p ./gcclassic >> GC.log # Exit normally exit 0 -#EOC + diff --git a/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/parallelTest.sh b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/parallelTest.sh new file mode 100755 index 000000000..0390bc258 --- /dev/null +++ b/run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/parallelTest.sh @@ -0,0 +1,225 @@ +#!/bin/bash + +#SBATCH -c 24 +#SBATCH -N 1 +#SBATCH -t 0-03:00 +#SBATCH -p sapphire,huce_cascade,seas_compute,shared +#SBATCH --mem=30000 +#SBATCH --mail-type=END + +############################################################################# +### parallelTest.sh +### +### Performs a 1-hour GCClassic parallel test on Cannon within a +### freshly-created run directory. Uses 24 and 13 cores, which seems +### to reveal most parallelization issues. Useful for when you only +### want to run a single parallel test instead of a whole suite of tests. +############################################################################# + +#============================================================================ +# %%% User-configurable settings %%% +#============================================================================ +allCores=24 # Run w/ same # cores as in #SBATCH -c +fewerCores=13 # Run with fewer cores +hhmm="0100" # Duration of run in hhmm +resultsLog="parallel.results.log" # Logfile for results + +#============================================================================ +# %%% Bash functions %%% +#============================================================================ + +function get_subdir_name() { + #======================================================================== + # Returns the subdirectory of OutputDir (or Restarts) where files + # corresponding to a certain number of cores will be moved. + # + # 1st argument: Number of cores + #======================================================================== + printf "${1}_cores" + return 0 +} + + +function find_restart_file() { + + #======================================================================== + # Returns the path of a GEOS-Chem restart file in a subdirectory + # + # 1st argument: Subdirectory (obtained from get_subdir_name) + #======================================================================== + r=$(ls -1 -tr "Restarts/${1}" | grep "GEOS" | grep "${hhmm}" | head -1) + printf "Restarts/${1}/${r}" + return 0 +} + + +function get_logfile_name() { + #======================================================================== + # Returns the log file name corresponding to the number of cores + # + # 1st argument: Number of cores + #======================================================================== + subdir=$(get_subdir_name "${1}") + printf "parallel.${subdir}.log" + return 0 +} + + +function score_parallel_test() { + #======================================================================== + # Determines if the parallelization test was successful by checking + # that the restart files from both runs are bitwise identical. + # + # 1st argument: Folder where the 24 core restart file is located. + # 2nd argument: Folder where the 13 core restart file is located. + # 3rd argument: Name of the log file to print results + #======================================================================== + + # Arguments + subDir1=$(get_subdir_name "${1}") + subDir2=$(get_subdir_name "${2}") + results="${3}" + + # Restart file names from both parallel test runs + rstFile1=$(find_restart_file "${subDir1}") + rstFile2=$(find_restart_file "${subDir2}") + + # Exit if eiher restart file does not exist + [[ ! -f "${rstFile1}" ]] && return 1 + [[ ! -f "${rstFile2}" ]] && return 1 + + # Remove the results log if it exists + [[ -f "${results}" ]] && rm -f "${results}" + + # If the files are bitwise identical then the pqarallel test is successful + diff "${rstFile1}" "${rstFile2}" + if [[ $? -eq 0 ]]; then + printf "\n\nParallel test result: PASS\n" >> "${results}" + date >> "${results}" + return 0 + fi + printf "\n\nParallel test result: FAIL\n" >> "${results}" + date >> "${results}" + return 1 +} + + +function edit_config_files() { + + #======================================================================== + # Edits start times, end times, frequency, and duration in the various + # run directory configuration files. + #======================================================================== + + # Replace ending time in geoschem_config.yml + sed -i -e "s/20190801, ....../20190701, ${hhmm}00/" geoschem_config.yml + sed -i -e "s/20190201, ....../20190101, ${hhmm}00/" geoschem_config.yml + sed -i -e "s/20190201, ....../20190101, ${hhmm}00/" geoschem_config.yml + sed -i -e "s/20130201, ....../20130101, ${hhmm}00/" geoschem_config.yml + sed -i -e "s/20110201, ....../20110101, ${hhmm}00/" geoschem_config.yml + + # Replace freq & duration in HISTORY.rc + sed -i -e "s/00000100 ....../00000000 ${hhmm}00/" HISTORY.rc + + # Change time cycle flag in HEMCO_Config.rc from EFYO to CYS, + # to allow missing species to be set a default value. + # Also make sure that + sed -i -e "s/EFYO/CYS/" HEMCO_Config.rc # GC_RESTART + sed -i -e "s/EFY xyz 1/CYS xyz 1/" HEMCO_Config.rc # GC_BCs + + # Make sure we get a HEMCO_diagnostics file in the output + sed -i -e "s/DiagnFreq: Monthly/DiagnFreq: End/" HEMCO_Config.rc + + # Return success + return 0 +} + + +function move_files() { + + #======================================================================== + # Moves diagnostic or restart files to a subdirectory + # + # 1st argument: Directory name ("OutputDir" or "Restarts") + #======================================================================== + + # Arguments + dirName="${1}" + subDir="${2}" + runLog="${3}" + + # Make the folder if it does not exist + [[ ! -d "${dirName}/${subDir}" ]] && mkdir -p "${dirName}/${subDir}" + + # Restart files have end timestamp; diagnostics have start timestamp + [[ "x${dirName}" == "xRestarts" ]] && stamp="${hhmm}" || stamp="0000" + + # Move ouptut + for file in ${dirName}/*${stamp}*.nc*; do + file="${file/${dirName}\/}" + srcFile="${dirName}/${file}" + trgFile="${dirName}/${subDir}/${file}" + echo "Moving ${srcFile} to ${trgFile}" >> "${runLog}" + mv "${srcFile}" "${trgFile}" + done +} + + +function run_gcclassic() { + + #======================================================================== + # Runs a GEOS-Chem Classic simulation with the specified number of + # OpenMP cores. Copies diagnostics and restart files to the proper + # subdirectory in order to facilitate comparison. + # + # 1st argument: Number of cores for OpenMP + #======================================================================== + + # Get the log file and subdirectory names from the # of cores + runLog=$(get_logfile_name "${1}") + subDir=$(get_subdir_name "${1}") + + # Remove any leftover files in the run dir + ./cleanRunDir.sh --no-interactive >> "${runLog}" + + # Run GEOS-Chem Classic + export OMP_NUM_THREADS="${1}" + export OMP_STACKSIZE="500m" + echo "Now using ${OMP_NUM_THREADS} cores" >> "${runLog}" + srun -c ${OMP_NUM_THREADS} ./gcclassic >> "${runLog}" + + # Move files to the proper subdirectory for later comparison + move_files "OutputDir" "${subDir}" "${runLog}" + move_files "Restarts" "${subDir}" "${runLog}" + + # Return success + return 0 +} + + +function main() { + + #======================================================================== + # Performs a parallelization test with the settings specified above. + #======================================================================== + + # Error check + if [[ ! -f ./gcclassic ]]; then + echo "Error...Could not find gcclassic executable!" >> $results + exit 1 + fi + + # Perform the Parallel test + edit_config_files + run_gcclassic "${allCores}" + run_gcclassic "${fewerCores}" + score_parallel_test "${allCores}" "${fewerCores}" "${resultsLog}" + return $? +} + + +#============================================================================ +# Call the main program and return its status +#============================================================================ +main $@ +exit $? diff --git a/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/README b/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/README new file mode 100644 index 000000000..c9e3f1d27 --- /dev/null +++ b/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/README @@ -0,0 +1,3 @@ +Contact: +GEOS-Chem Support Team at Harvard University +geos-chem-support@g.harvard.edu \ No newline at end of file diff --git a/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/gcc.discover.build b/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/gcc.discover.build new file mode 100755 index 000000000..aa178206c --- /dev/null +++ b/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/gcc.discover.build @@ -0,0 +1,15 @@ +#!/bin/bash + +# For discover +#SBATCH --time 00:45:00 +#SBATCH --nodes=1 --ntasks-per-node=24 +#SBATCH --job-name=gchp_build +#SBATCH --constraint=sky +#SBATCH --account=s____ + +source gcc.discover.env +cd build +cmake ../CodeDir -DRUNDIR=.. +make -j > build.log +make install >> build.log +cd .. diff --git a/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/gcc.discover.env b/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/gcc.discover.env new file mode 100644 index 000000000..be3c4b038 --- /dev/null +++ b/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/gcc.discover.env @@ -0,0 +1,35 @@ +#!/bin/bash + +module purge +module use /discover/swdev/jcsda/spack-stack/modulefiles +module load miniconda/3.9.7 +module use /discover/swdev/jcsda/spack-stack/spack-stack-v1/envs/skylab-3.0.0-intel-2022.0.1/install/modulefiles/Core +module load stack-intel/2022.0.1 +module load stack-intel-oneapi-mpi/2021.5.0 +module load cmake/3.23.1 +module load git/2.30.2 +module load netcdf-fortran/4.5.4 + +umask 022 + +export CC=icc +export CXX=icpc +export FC=ifort + +# MPI +export MPI_ROOT=${MPI_HOME} + +# For ESMF +export ESMF_COMPILER=intel +export ESMF_COMM=intelmpi +export ESMF_DIR=/gpfsm/dnb06/projects/p113/ewl/GCHP/ESMF +export ESMF_INSTALL_PREFIX=${ESMF_DIR}/INSTALL_discover-spack-stack + +# For GCHP +export ESMF_ROOT=${ESMF_INSTALL_PREFIX} + +ulimit -l unlimited +ulimit -u 50000 +ulimit -v unlimited +ulimit -s unlimited + diff --git a/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/gcc.discover.run b/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/gcc.discover.run new file mode 100755 index 000000000..425860d16 --- /dev/null +++ b/run/GCClassic/runScriptSamples/operational_examples/nasa_discover/gcc.discover.run @@ -0,0 +1,11 @@ +#!/bin/bash + +# For discover +#SBATCH --time 00:45:00 +#SBATCH --nodes=1 --ntasks-per-node=24 +#SBATCH --job-name=gchp_build +#SBATCH --constraint=sky +#SBATCH --account=s____ + +source gcc.discover.env +./gcclassic > gcc.log diff --git a/run/GCClassic/setupForRestarts.sh b/run/GCClassic/setupForRestarts.sh new file mode 100755 index 000000000..61ef8b4a7 --- /dev/null +++ b/run/GCClassic/setupForRestarts.sh @@ -0,0 +1,537 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: setupForRestarts.sh +# +# !DESCRIPTION: Contains bash functions for copying GEOS-Chem Classic +# restart files from a remote location to the run directory. The restart +# file paths are read from the relevant download_data.yml file so that +# these paths can be updated in a single location. +#\\ +#\\ +# !REVISION HISTORY: +# 25 Nov 2023 - Initial version - R. Yantosca +# See the Git history for additional updates +#------------------------------------------------------------------------------ +#BOC + +function parseYaml() { + #======================================================================== + # Portable bash YAML parser by Stefan Farestam + # See: stackoverflow.com/questions/5014632/how-can-i-parse-a-yaml-file-from-a-linux-shell-script + # + # 1st argument: YAML file to be parsed + # + # Usage: list=$(parse_yaml myfile.yaml) + #======================================================================== + local prefix=$2 + local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\):|\1|" \ + -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $1 | + awk -F$fs '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i EY) + # + sim_name="${1}" # 1st argument: Simulation name + sim_extra_option="${2}" # 2nd argument: Simulation extra option + #======================================================================== + + if [[ "x${sim_extra_option}" == "xaciduptake" || + "x${sim_extra_option}" == "xmarinePOA" || + "x${sim_extra_option}" == "xcomplexSOA_SVPOA" || + "x${sim_extra_option}" == "xAPM" || + "x${sim_name}" == "xPOPs" || + "x${sim_name}" == "xtagO3" ]]; then + old="SpeciesRst_?ALL? \$YYYY/\$MM/\$DD/\$HH EFYO" + new="SpeciesRst_?ALL? \$YYYY/\$MM/\$DD/\$HH EY " + sed_ie "s|${old}|${new}|" HEMCO_Config.rc + + printf "\n -- The sample restart provided for this simulation may not" + printf "\n contain all species defined in this simulation. Missing" + printf "\n species will be assigned default background concentrations." + printf "\n Check your GEOS-Chem log file for details. As always, it" + printf "\n is recommended that you spin up your simulation to ensure" + printf "\n proper initial conditions.\n" + fi + return $? +} + + +function copyRestartToRunDir() { + #======================================================================== + # Copies a restart file to a run directory for a given + # GEOS-Chem Classic simulation. + # + sim_name="${1}" # 1st argument: Simulation name + sim_extra_option="${2}" # 2nd argument: Extra option for simulation + rst_root="${3}" # 3rd argument: Remote restart file dir + loc_root="${4}" # 4th argument: Local restart file dir + #======================================================================== + + # Determine the remote and local restart file paths for each simulation + if [[ "x${sim_name}" == "xaerosol" ]]; then + remote_rst=$(getAerosolRemote "${rst_root}") + local_rst=$(getAerosolLocal "${loc_root}") + + elif [[ "x${sim_name}" == "xcarbon" ]]; then + remote_rst=$(getCarbonRemote "${rst_root}") + local_rst=$(getCarbonLocal "${loc_root}") + + elif [[ "x${sim_name}" == "xCH4" ]]; then + remote_rst=$(getCH4Remote "${rst_root}") + local_rst=$(getCH4Local "${loc_root}") + + elif [[ "x${sim_name}" == "xCO2" ]]; then + remote_rst=$(getCO2Remote "${rst_root}") + local_rst=$(getCO2Local "${loc_root}") + + elif [[ "x${sim_name}" == "xfullchem" ]]; then + # NOTE: Also handles TOMAS40 and TOMAS15 + remote_rst=$(getFullchemRemote "${sim_extra_option}" "${rst_root}") + local_rst=$(getFullchemLocal "${sim_extra_option}" "${loc_root}") + + elif [[ "x${sim_name}" == "xmetals" ]]; then + remote_rst=$(getMetalsRemote "${rst_root}") + local_rst=$(getMetalsLocal "${loc_root}") + + elif [[ "x${sim_name}" == "xHg" ]]; then + remote_rst=$(getMercuryRemote "${rst_root}") + local_rst=$(getMercuryLocal "${loc_root}") + + elif [[ "x${sim_name}" == "xPOPs" ]]; then + remote_rst=$(getPOPsRemote "${rst_root}") + local_rst=$(getPOPsLocal "${loc_root}") + + elif [[ "x${sim_name}" == "xtagCO" ]]; then + remote_rst=$(getTagCORemote "${rst_root}") + local_rst=$(getTagCOLocal "${loc_root}") + + elif [[ "x${sim_name}" == "xtagO3" ]]; then + remote_rst=$(getTagO3Remote "${rst_root}") + local_rst=$(getTagO3Local "${loc_root}") + + elif [[ "x${sim_name}" == "xTransportTracers" ]]; then + remote_rst=$(getTracersRemote "${rst_root}") + local_rst=$(getTracersLocal "${loc_root}") + + fi + + # Copy the restart file to the run directory (for AWS or on a local server) + copyRemoteToLocal "${remote_rst}" "${local_rst}" "${is_aws}" "${s3_cp}" + return $? +} diff --git a/run/GCHP/ESMF.rc b/run/GCHP/ESMF.rc new file mode 100644 index 000000000..9fcfdf767 --- /dev/null +++ b/run/GCHP/ESMF.rc @@ -0,0 +1,7 @@ +logKindFlag: ESMF_LOGKIND_NONE + +# ESMF_LOGKIND options for ESMF logging. Options include: +# ESMF_LOGKIND_NONE - no ESMF logging +# ESMF_LOGKIND_SINGLE - one log file (ESMF_LogFile) +# ESMF_LOGKIND_MULTI - one log file per core (PET#.ESMF_LogFile) +# ESMF_LOGKIND_MULTI_ON_ERROR - one log file per core if error (PET#.ESMF_LogFile)) diff --git a/run/GCHP/ExtData.rc.templates/ExtData.rc.CO2 b/run/GCHP/ExtData.rc.templates/ExtData.rc.CO2 index ae73683db..0061e6f72 100644 --- a/run/GCHP/ExtData.rc.templates/ExtData.rc.CO2 +++ b/run/GCHP/ExtData.rc.templates/ExtData.rc.CO2 @@ -27,116 +27,21 @@ PrimaryExports%% ### Meteorology data ### ############################################################################### -# -# --- 2D variables, 1-hr averaged --- -ALBD 1 N Y F0;003000 none none ALBEDO /dev/null -CLDFRC 1 N Y F0;003000 none none CLDTOT /dev/null -EFLUX 1 N Y F0;003000 none none EFLUX /dev/null -EVAP 1 N Y F0;003000 none none EVAP /dev/null -FRSEAICE 1 N Y F0;003000 none none FRSEAICE /dev/null -FRSNO 1 N Y F0;003000 none none FRSNO /dev/null -GRN 1 N Y F0;003000 none none GRN /dev/null -GWETROOT 1 N Y F0;003000 none none GWETROOT /dev/null -GWETTOP 1 N Y F0;003000 none none GWETTOP /dev/null -HFLUX 1 N Y F0;003000 none none HFLUX /dev/null -LAI 1 N Y F0;003000 none none LAI /dev/null -RADLWG 1 N Y F0;003000 none none LWGNT /dev/null -PARDF 1 N Y F0;003000 none none PARDF /dev/null -PARDR 1 N Y F0;003000 none none PARDR /dev/null -PBLH 1 N Y F0;003000 none none PBLH ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A1.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -PRECANV 1 N Y F0;003000 none none PRECANV /dev/null -PRECCON 1 N Y F0;003000 none none PRECCON /dev/null -PRECLSC 1 N Y F0;003000 none none PRECLSC /dev/null -PRECSNO 1 N Y F0;003000 none none PRECSNO /dev/null -PRECTOT 1 N Y F0;003000 none none PRECTOT /dev/null -QV2M 1 N Y F0;003000 none none QV2M /dev/null -SEAICE00 1 N Y F0;003000 none none SEAICE00 /dev/null -SEAICE10 1 N Y F0;003000 none none SEAICE10 /dev/null -SEAICE20 1 N Y F0;003000 none none SEAICE20 /dev/null -SEAICE30 1 N Y F0;003000 none none SEAICE30 /dev/null -SEAICE40 1 N Y F0;003000 none none SEAICE40 /dev/null -SEAICE50 1 N Y F0;003000 none none SEAICE50 /dev/null -SEAICE60 1 N Y F0;003000 none none SEAICE60 /dev/null -SEAICE70 1 N Y F0;003000 none none SEAICE70 /dev/null -SEAICE80 1 N Y F0;003000 none none SEAICE80 /dev/null -SEAICE90 1 N Y F0;003000 none none SEAICE90 /dev/null -# -SLP ${RUNDIR_MET_PRES_UNIT} N Y F0;003000 none ${RUNDIR_MET_PRES_SCALE} SLP ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A1.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -SNODP 1 N Y F0;003000 none none SNODP /dev/null -SNOMAS 1 N Y F0;003000 none none SNOMAS /dev/null -RADSWG 1 N Y F0;003000 none none SWGDN /dev/null -# -TO3 dobson N Y F0;003000 none none TO3 /dev/null -# -TROPP ${RUNDIR_MET_PRES_UNIT} N Y F0;003000 none ${RUNDIR_MET_PRES_SCALE} TROPPT ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A1.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -TSKIN 1 N Y F0;003000 none none TS ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A1.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -TS 1 N Y F0;003000 none none T2M ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A1.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -USTAR 1 N Y F0;003000 none none USTAR ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A1.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -U10M m_s-1 N Y F0;003000 none none U10M /dev/null -V10M m_s-1 N Y F0;003000 none none V10M /dev/null -# -Z0 1 N Y F0;003000 none none Z0M ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A1.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -# --- Surface pressure, 3-hr instantaneous --- -PS1 ${RUNDIR_MET_PRES_UNIT} N Y 0 none ${RUNDIR_MET_PRES_SCALE} PS ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.I3.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -PS2 ${RUNDIR_MET_PRES_UNIT} N Y 0;001000 none ${RUNDIR_MET_PRES_SCALE} PS ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.I3.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -# --- 3D variables, 3-hr instantaneous --- -SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.I3.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.I3.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -TMPU1 K N Y 0 none none T ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.I3.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -TMPU2 K N Y 0;001000 none none T ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.I3.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -# --- 3D variables, 3-hr averaged --- -QI 1 N Y F0;013000 none none QI /dev/null -QL 1 N Y F0;013000 none none QL /dev/null -TAUCLI 1 N Y F0;013000 none none TAUCLI /dev/null -TAUCLW 1 N Y F0;013000 none none TAUCLW /dev/null -OPTDEP 1 N Y F0;013000 none none OPTDEPTH /dev/null -CLDF 1 N Y F0;013000 none none CLOUD /dev/null -DTRAIN 1 N Y F0;013000 none none DTRAIN ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A3dyn.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -OMEGA Pa_s-1 N Y F0;013000 none none OMEGA ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A3dyn.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -RH - N Y F0;013000 none none RH ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A3dyn.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A3dyn.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# -DQRCU 1 N Y F0;013000 none none DQRCU ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A3mstC.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -DQRLSAN 1 N Y F0;013000 none none DQRLSAN /dev/null -REEVAPCN 1 N Y F0;013000 none none REEVAPCN ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A3mstC.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -REEVAPLS 1 N Y F0;013000 none none REEVAPLS /dev/null -CMFMC 1 N Y F0;013000 none none CMFMC ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A3mstE.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -PFICU 1 N Y F0;013000 none none PFICU ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A3mstE.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -PFILSAN 1 N Y F0;013000 none none PFILSAN /dev/null -PFLCU 1 N Y F0;013000 none none PFLCU ./MetDir/%y4/%m2/${RUNDIR_MET}.%y4%m2%d2.A3mstE.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -PFLLSAN 1 N Y F0;013000 none none PFLLSAN /dev/null -# -# --- Fixed variables, from constants file --- -FRLAKE 1 N Y - none none FRLAKE /dev/null -FRLAND 1 N Y - none none FRLAND /dev/null -FRLANDIC 1 N Y - none none FRLANDIC /dev/null -FROCEAN 1 N Y - none none FROCEAN /dev/null -# -PHIS m2_s-2 N Y - none none PHIS ./MetDir/${RUNDIR_MET_CN_YR}/01/${RUNDIR_MET}.${RUNDIR_MET_CN_YR}0101.CN.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} -# +${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS} + #============================================================================== # --- Fields for lightning emissions (Extension 103) --- -# These fields are stored in State_Met, along with the other met fields +# Not used but included in Chem_Registry.rc import list #============================================================================== -FLASH_DENS 1 N Y F0;013000 none none LDENS /dev/null -CONV_DEPTH 1 N Y F0;013000 none none CTH /dev/null -# +FLASH_DENS 1 N N - none none LDENS /dev/null +CONV_DEPTH 1 N N - none none CTH /dev/null + ############################################################################### ### ### Land data (not handled by HEMCO) ### ############################################################################### -# + #============================================================================== # Olson land types #============================================================================== @@ -247,7 +152,7 @@ CMSF_CO2_BN kgC/km2/s N Y F%y4-%m2-01T00:00:00 none 1e-6 CO2_Flux /nobac #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -TIMEZONES count N V - none none UTC_OFFSET ./HcoDir/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc +TIMEZONES count Y V 2017-%m2-01T00:00:00 none none UTC_OFFSET ./HcoDir/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc # ############################################################################### ### diff --git a/run/GCHP/ExtData.rc.templates/ExtData.rc.TransportTracers b/run/GCHP/ExtData.rc.templates/ExtData.rc.TransportTracers index a6243769b..661e96ad9 100644 --- a/run/GCHP/ExtData.rc.templates/ExtData.rc.TransportTracers +++ b/run/GCHP/ExtData.rc.templates/ExtData.rc.TransportTracers @@ -31,11 +31,11 @@ ${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS} # #============================================================================== # --- Fields for lightning emissions (Extension 103) --- -# These fields are stored in State_Met, along with the other met fields +# Not used but included in Chem_Registry.rc import list #============================================================================== -FLASH_DENS 1 N Y F0;013000 none none LDENS ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_MET}/%y4/FLASH_CTH_${RUNDIR_MET}_${RUNDIR_MET_NATIVE_RES}_%y4_%m2.nc4 -CONV_DEPTH 1 N Y F0;013000 none none CTH ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_MET}/%y4/FLASH_CTH_${RUNDIR_MET}_${RUNDIR_MET_NATIVE_RES}_%y4_%m2.nc4 -# +FLASH_DENS 1 N N - none none LDENS /dev/null +CONV_DEPTH 1 N N - none none CTH /dev/null + ############################################################################### ### ### Land data (not handled by HEMCO) @@ -142,40 +142,28 @@ EDGAR_SF6 1 N Y F%y4-01-01T00:00:00 none none emi_sf6 ./HcoDir/SF6/v2019-01/EDGA # --- EDGAR v4.3 (EDGARv4.3) --- # EDGARv4.3 is turned off by default in HEMCO_Config.rc #============================================================================== -EDGAR_CO25d_POW kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc -EDGAR_CO25d_ENG kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc -EDGAR_CO25d_IND kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc -EDGAR_CO25d_TRO kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc -EDGAR_CO25d_TNG kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc -EDGAR_CO25d_RCO kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc -EDGAR_CO25d_PPA kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc -#EDGAR_CO25d_AWB kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.AWB.0.1x0.1.nc -EDGAR_CO25d_SWD kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc -EDGAR_CO25d_FFF kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc -# -#============================================================================== -# --- HTAP v2 (HTAP) --- -# HTAP is off by default in HEMCO_Config.rc -#============================================================================== -HTAP_CO25d_IND kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_INDUSTRY.generic.01x01.nc -HTAP_CO25d_POW kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_ENERGY.generic.01x01.nc -HTAP_CO25d_RES kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_RESIDENTIAL.generic.01x01.nc -HTAP_CO25d_TRA kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_TRANSPORT.generic.01x01.nc -#HTAP_CO25d_AIR1 kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_LTO.generic.01x01.nc -#HTAP_CO25d_AIR2 kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CDS.generic.01x01.nc -#HTAP_CO25d_AIR3 kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CRS.generic.01x01.nc +EDGAR_CO_25_POW kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc +EDGAR_CO_25_ENG kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc +EDGAR_CO_25_IND kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc +EDGAR_CO_25_TRO kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc +EDGAR_CO_25_TNG kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc +EDGAR_CO_25_RCO kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc +EDGAR_CO_25_PPA kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc +#EDGAR_CO_25_AWB kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.AWB.0.1x0.1.nc +EDGAR_CO_25_SWD kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc +EDGAR_CO_25_FFF kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc # #============================================================================== # --- CEDS (CEDSv2) --- #============================================================================== -CEDS_CO25d_AGR kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_agr ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc -CEDS_CO25d_ENE kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_ene ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc -CEDS_CO25d_IND kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_ind ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc -CEDS_CO25d_TRA kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_tra ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc -CEDS_CO25d_RCO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_rco ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc -CEDS_CO25d_SLV kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_slv ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc -CEDS_CO25d_WST kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_wst ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc -CEDS_CO25d_SHP kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_shp ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_AGR kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_agr ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_ENE kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_ene ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_IND kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_ind ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_TRA kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_tra ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_RCO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_rco ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_SLV kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_slv ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_WST kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_wst ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_SHP kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_shp ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc # ############################################################################### ### @@ -194,7 +182,7 @@ ZHANG_Rn222_EMIS kg/m2/s N Y F%y4-%m2-01T00:00:00 none none rnemis ./HcoDir/Z #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -TIMEZONES count N V - none none UTC_OFFSET ./HcoDir/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc +TIMEZONES count Y V 2017-%m2-01T00:00:00 none none UTC_OFFSET ./HcoDir/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc # ############################################################################### ### @@ -234,7 +222,7 @@ FFF 1 Y Y F2010-%m2-01T00:00:00 none none FFF ./HcoDir/EDGARv43/v2016-11/EDGAR_v #============================================================================== # Country/region masks #============================================================================== -OCEAN_MASK 1 N Y - none none FROCEAN ./MetDir/${RUNDIR_MET_CN_YR}/01/${RUNDIR_MET}.${RUNDIR_MET_CN_YR}0101.CN.${RUNDIR_MET_RES}.${RUNDIR_MET_EXT} +# See meteorology section for OCEAN_MASK # %% diff --git a/run/GCHP/ExtData.rc.templates/ExtData.rc.carbon b/run/GCHP/ExtData.rc.templates/ExtData.rc.carbon index 1d0ba04ec..c6f41c1fe 100644 --- a/run/GCHP/ExtData.rc.templates/ExtData.rc.carbon +++ b/run/GCHP/ExtData.rc.templates/ExtData.rc.carbon @@ -28,14 +28,14 @@ PrimaryExports%% ### ############################################################################### ${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS} -# + #============================================================================== # --- Fields for lightning emissions (Extension 103) --- -# These fields are stored in State_Met, along with the other met fields +# Not used but included in Chem_Registry.rc import list #============================================================================== -FLASH_DENS 1 N Y F0;013000 none none LDENS ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_MET}/%y4/FLASH_CTH_${RUNDIR_MET}_${RUNDIR_MET_NATIVE_RES}_%y4_%m2.nc4 -CONV_DEPTH 1 N Y F0;013000 none none CTH ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_MET}/%y4/FLASH_CTH_${RUNDIR_MET}_${RUNDIR_MET_NATIVE_RES}_%y4_%m2.nc4 -# +FLASH_DENS 1 N N - none none LDENS /dev/null +CONV_DEPTH 1 N N - none none CTH /dev/null + ############################################################################### ### ### Land data (not handled by HEMCO) @@ -137,118 +137,85 @@ XLAIMULTI cm2_cm-2 N Y %y4-%m2-%d2T00:00:00 none none XLAIMULTI ./HcoDir/Yuan_XL # %%%%% CH4 emissions %%%%% #============================================================================== -# --- CH4: Gridded EPA (Maasakkers et al., Environ. Sci. Technol., 2016) --- -GEPA_OIL molec/cm2/s N Y - none none emissions_6B_Wastewater_Treatment_Industrial ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_GAS_PRODUCTION molec/cm2/s N Y - none none emissions_1B2b_Natural_Gas_Production ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_GAS_PROCESSING molec/cm2/s N Y - none none emissions_1B2b_Natural_Gas_Processing ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_GAS_TRANSMISSION molec/cm2/s N Y - none none emissions_1B2b_Natural_Gas_Transmission ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_GAS_DISTRIBUTION molec/cm2/s N Y - none none emissions_1B2b_Natural_Gas_Distribution ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAL_UNDERGROUND molec/cm2/s N Y - none none emissions_1B1a_Coal_Mining_Underground ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAL_SURFACE molec/cm2/s N Y - none none emissions_1B1a_Coal_Mining_Surface ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAL_ABANDONED molec/cm2/s N Y - none none emissions_1B1a_Abandoned_Coal ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_LIVESTOCK__4A molec/cm2/s N Y - none none emissions_4A_Enteric_Fermentation ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_LIVESTOCK__4B molec/cm2/s N Y - none none emissions_4B_Manure_Management ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_LANDFILLS_MUNI molec/cm2/s N Y - none none emissions_6A_Landfills_Municipal ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_LANDFILLS_INDU molec/cm2/s N Y - none none emissions_6A_Landfills_Industrial ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_WASTEWATER_DOME molec/cm2/s N Y - none none emissions_6B_Wastewater_Treatment_Domestic ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_WASTEWATER_INDU molec/cm2/s N Y - none none emissions_6B_Wastewater_Treatment_Industrial ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_RICE molec/cm2/s N Y - none none emissions_2C2_Ferroalloy_Production ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_OTHER__1A_M molec/cm2/s N Y - none none emissions_1A_Combustion_Mobile ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_OTHER__1A_S molec/cm2/s N Y - none none emissions_1A_Combustion_Stationary ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_OTHER__2B5 molec/cm2/s N Y - none none emissions_2B5_Petrochemical_Production ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_OTHER__2C2 molec/cm2/s N Y - none none emissions_2C2_Ferroalloy_Production ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_OTHER__4F molec/cm2/s 2012 Y F%y4-%m2-01T00:00:00 none none emissions_4F_Field_Burning ./HcoDir/CH4/v2022-11/GEPA/GEPA_Monthly.nc -#GEPA_OTHER__5 molec/cm2/s 2012 Y F%y4-%m2-%d2T00:00:00 none none emissions_5_Forest_Fires ./HcoDir/CH4/v2022-11/GEPA/GEPA_Daily.nc -GEPA_OTHER__6D molec/cm2/s N Y - none none emissions_6D_Composting ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_OIL molec/cm2/s N Y - none none emissions_1B2a_Petroleum ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_GAS_PR molec/cm2/s N Y - none none emissions_1B2b_Natural_Gas_Production ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_GAS_PC molec/cm2/s N Y - none none emissions_1B2b_Natural_Gas_Processing ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_GAS_TR molec/cm2/s N Y - none none emissions_1B2b_Natural_Gas_Transmission ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_GAS_DS molec/cm2/s N Y - none none emissions_1B2b_Natural_Gas_Distribution ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_COAL_U molec/cm2/s N Y - none none emissions_1B1a_Coal_Mining_Underground ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_COAL_S molec/cm2/s N Y - none none emissions_1B1a_Coal_Mining_Surface ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_COAL_A molec/cm2/s N Y - none none emissions_1B1a_Abandoned_Coal ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_LVSTK_F molec/cm2/s N Y - none none emissions_4A_Enteric_Fermentation ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_LVSTK_M molec/cm2/s N Y - none none emissions_4B_Manure_Management ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_LDF_M molec/cm2/s N Y - none none emissions_6A_Landfills_Municipal ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_LDF_I molec/cm2/s N Y - none none emissions_6A_Landfills_Industrial ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_WSTW_D molec/cm2/s N Y - none none emissions_6B_Wastewater_Treatment_Domestic ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_WSTW_I molec/cm2/s N Y - none none emissions_6B_Wastewater_Treatment_Industrial ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_RICE molec/cm2/s N Y - none none emissions_4C_Rice_Cultivation ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_OTH_1AM molec/cm2/s N Y - none none emissions_1A_Combustion_Mobile ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_OTH_1AS molec/cm2/s N Y - none none emissions_1A_Combustion_Stationary ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_OTH_2B5 molec/cm2/s N Y - none none emissions_2B5_Petrochemical_Production ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_OTH_2C2 molec/cm2/s N Y - none none emissions_2C2_Ferroalloy_Production ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc -GEPA_COAST_OTH_4F molec/cm2/s 2012 Y F%y4-%m2-01T00:00:00 none none emissions_4F_Field_Burning ./HcoDir/CH4/v2022-11/GEPA/GEPA_Monthly.nc -#GEPA_COAST_OTH_5 molec/cm2/s 2012 Y F%y4-%m2-%d2T00:00:00 none none emissions_5_Forest_Fires ./HcoDir/CH4/v2022-11/GEPA/GEPA_Daily.nc -GEPA_COAST_OTH_6D molec/cm2/s N Y - none none emissions_6D_Composting ./HcoDir/CH4/v2022-11/GEPA/GEPA_Annual.nc +# --- Gridded GHGI v2 Express Extension (Maasakkers et al., ES&T, 2023) --- +# +GHGI_EE_OIL_EXPLORATION molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_1B2a_Petroleum_Systems_Exploration ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_OIL_PRODUCTION molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_1B2a_Petroleum_Systems_Production ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_OIL_REFINING molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_1B2a_Petroleum_Systems_Refining ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_OIL_TRANSPORT molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_1B2a_Petroleum_Systems_Transport ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_GAS_DISTRIBUTION molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_1B2b_Natural_Gas_Distribution ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_GAS_EXPLORATION molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_1B2b_Natural_Gas_Exploration ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_GAS_PROCESSING molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_1B2b_Natural_Gas_Processing ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_GAS_PRODUCTION molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_1B2b_Natural_Gas_Production ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_GAS_TRANSMISSION molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_1B2b_Natural_Gas_TransmissionStorage ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_GAS_POSTMETER molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_Supp_1B2b_PostMeter ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_COAL_UNDERGROUND molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_1B1a_Underground_Coal ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_COAL_SURFACE molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_1B1a_Surface_Coal ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_COAL_ABANDONED molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_1B1a_Abandoned_Coal ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_LIVESTOCK_ENT molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_3A_Enteric_Fermentation ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_LIVESTOCK_MAN molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_3B_Manure_Management ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_LANDFILLS_IND molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_5A1_Landfills_Industrial ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_LANDFILLS_MSW molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_5A1_Landfills_MSW ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_LANDFILLS_COMP molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_5B1_Composting ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_WASTEWATER_DOM molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_5D_Wastewater_Treatment_Domestic ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_WASTEWATER_IND molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_5D_Wastewater_Treatment_Industrial ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_RICE molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_3C_Rice_Cultivation ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_OTHER_MCOMB molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_1A_Combustion_Mobile ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_OTHER_SCOMB molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_1A_Combustion_Stationary ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_OTHER_PIND molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_2B8_Industry_Petrochemical ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_OTHER_FIND molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_2C2_Industry_Ferroalloy ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_OTHER_BURN molec/cm2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4_3F_Field_Burning ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc +GHGI_EE_OTHER_ABOG molec/cm2/s N Y F%y4-01-01T00:00:00 none none emi_ch4_1B2ab_Abandoned_Oil_Gas ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_%y4.nc # --- Scarpelli Mexico --- -MEX_OIL kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc -MEX_GAS kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc -MEX_COAL kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc -MEX_LIVESTOCK_A kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc -MEX_LIVESTOCK_B kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc -MEX_LANDFILLS kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc -MEX_WASTEWATER kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc -MEX_RICE kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc -MEX_OTHER kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc -MEX_OIL_COAST kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc -MEX_GAS_COAST kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc -MEX_COAL_COAST kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc -MEX_LIVESTOCK_A_COAST kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc -MEX_LIVESTOCK_B_COAST kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc -MEX_LANDFILLS_COAST kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc -MEX_WASTEWATER_COAST kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc -MEX_RICE_COAST kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc -MEX_OTHER_COAST kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc +MEX_OIL kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc +MEX_GAS kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc +MEX_COAL kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc +MEX_LIVESTOCK_A kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc +MEX_LIVESTOCK_B kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc +MEX_LANDFILLS kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc +MEX_WASTEWATER kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc +MEX_RICE kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc +MEX_OTHER kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc # --- Scarpelli Canada --- -CAN_OIL_GAS_COMBUSTION kg/m2/s N Y - none none oil_gas_combustion_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc -CAN_OIL_GAS_LEAKAGE kg/m2/s N Y - none none oil_gas_leakage_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc -CAN_OIL_GAS_VENT_FLARE kg/m2/s N Y - none none oil_gas_vent_flare_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc -CAN_COAL kg/m2/s N Y - none none coal_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc -CAN_LIVESTOCK kg/m2/s N Y - none none livestock_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc -CAN_SOLID_WASTE kg/m2/s N Y - none none solid_waste_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc -CAN_WASTEWATER kg/m2/s N Y - none none wastewater_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc -CAN_OTHER kg/m2/s N Y - none none other_minor_sources_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc -CAN_OIL_GAS_COMBUSTION_COAST kg/m2/s N Y - none none oil_gas_combustion_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc -CAN_OIL_GAS_LEAKAGE_COAST kg/m2/s N Y - none none oil_gas_leakage_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc -CAN_OIL_GAS_VENT_FLARE_COAST kg/m2/s N Y - none none oil_gas_vent_flare_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc -CAN_COAL_COAST kg/m2/s N Y - none none coal_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc -CAN_LIVESTOCK_COAST kg/m2/s N Y - none none livestock_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc -CAN_SOLID_WASTE_COAST kg/m2/s N Y - none none solid_waste_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc -CAN_WASTEWATER_COAST kg/m2/s N Y - none none wastewater_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc -CAN_OTHER_COAST kg/m2/s N Y - none none other_minor_sources_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc +CAN_OIL_GAS_COMBUSTION kg/m2/s N Y - none none oil_gas_combustion_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc +CAN_OIL_GAS_LEAKAGE kg/m2/s N Y - none none oil_gas_leakage_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc +CAN_OIL_GAS_VENT_FLARE kg/m2/s N Y - none none oil_gas_vent_flare_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc +CAN_COAL kg/m2/s N Y - none none coal_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc +CAN_LIVESTOCK kg/m2/s N Y - none none livestock_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc +CAN_SOLID_WASTE kg/m2/s N Y - none none solid_waste_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc +CAN_WASTEWATER kg/m2/s N Y - none none wastewater_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc +CAN_OTHER kg/m2/s N Y - none none other_minor_sources_total ./HcoDir/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc # --- GFEI --- GFEI_CH4_OIL kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Oil_All.nc GFEI_CH4_GAS kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Gas_All.nc GFEI_CH4_COAL kg/m2/s N Y - none none emis_ch4 ./HcoDir/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Coal.nc -# --- EDGAR v6.0 --- -CH4_OIL__1B2a kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_PRO_OIL.0.1x0.1.nc -CH4_OIL__1B2c kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_PRO_GAS.0.1x0.1.nc -CH4_COAL__1B1a kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_PRO_COAL.0.1x0.1.nc -CH4_LIVESTOCK__4A kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_ENF.0.1x0.1.nc -CH4_LIVESTOCK__4B kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_MNM.0.1x0.1.nc -CH4_LANDFILLS__6A_6D kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_SWD_LDF.0.1x0.1.nc -CH4_WASTEWATER__6B kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_WWT.0.1x0.1.nc -CH4_RICE__4C_4D kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_AGS.0.1x0.1.nc -CH4_OTHER__1A1_1B1_1B2 kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_REF_TRF.0.1x0.1.nc -CH4_OTHER__1A1a kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_ENE.0.1x0.1.nc -CH4_OTHER__1A2 kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_IND.0.1x0.1.nc -CH4_OTHER__1A3a_CDS kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_TNR_Aviation_CDS.0.1x0.1.nc -CH4_OTHER__1A3a_CRS kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_TNR_Aviation_CRS.0.1x0.1.nc -CH4_OTHER__1A3a_LTO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_TNR_Aviation_LTO.0.1x0.1.nc -CH4_OTHER__1A3b kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_TRO_noRES.0.1x0.1.nc -CH4_OTHER__1A3c_1A3e kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_TNR_Other.0.1x0.1.nc -CH4_OTHER__1A3d_1C2 kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_TNR_Ship.0.1x0.1.nc -CH4_OTHER__1A4 kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_RCO.0.1x0.1.nc -CH4_OTHER__2B kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_CHE.0.1x0.1.nc -CH4_OTHER__2C kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_IRO.0.1x0.1.nc -CH4_OTHER__4F kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_AWB.0.1x0.1.nc -CH4_OTHER__6C kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/EDGARv6/%y4/v6.0_CH4_%y4_SWD_INC.0.1x0.1.nc +# --- EDGAR v8.0 --- +EDGAR8_CH4_PRO_OIL kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_PRO_OIL_flx.nc +EDGAR8_CH4_REF_TRF kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_REF_TRF_flx.nc +EDGAR8_CH4_PRO_GAS kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_PRO_GAS_flx.nc +EDGAR8_CH4_PRO_COAL kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_PRO_COAL_flx.nc +EDGAR8_CH4_ENF kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_ENF_flx.nc +EDGAR8_CH4_MNM kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_MNM_flx.nc +EDGAR8_CH4_SWD_LDF kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_SWD_LDF_flx.nc +EDGAR8_CH4_WWT kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_WWT_flx.nc +EDGAR8_CH4_AGS kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_AGS_flx.nc +EDGAR8_CH4_ENE kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_ENE_flx.nc +EDGAR8_CH4_IND kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_IND_flx.nc +EDGAR8_CH4_TNR_Aviation_CDS kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_TNR_Aviation_CDS_flx.nc +EDGAR8_CH4_TNR_Aviation_CRS kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_TNR_Aviation_CRS_flx.nc +EDGAR8_CH4_TNR_Aviation_LTO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_TNR_Aviation_LTO_flx.nc +EDGAR8_CH4_TRO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_TRO_flx.nc +EDGAR8_CH4_TNR_Other kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_TNR_Other_flx.nc +EDGAR8_CH4_TNR_Ship kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_TNR_Ship_flx.nc +EDGAR8_CH4_RCO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_RCO_flx.nc +EDGAR8_CH4_CHE kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_CHE_flx.nc +EDGAR8_CH4_IRO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_IRO_flx.nc +EDGAR8_CH4_AWB kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_AWB_flx.nc +EDGAR8_CH4_SWD_INC kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-02/EDGARv8/%y4/v8.0_FT2022_GHG_CH4_%y4_SWD_INC_flx.nc # --- CH4: CEDS (historical) or Shared Socioeconomic Pathways (future) --- # --- NOTE: This is only for GCAP2 meteorology, so we can comment out --- @@ -264,44 +231,37 @@ CH4_OTHER__6C kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./H # --- CH4: BB4MIPs historical / SSP future biomass burning inventories --- # CMIP6_BB_CH4 %y4-%m2-01T00:00:00 none none CH4_shp ./HcoDir/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_%y4.nc4 -# --- CH4: Updated GFED4 biomass burning (Yuzhong Zhang) --- -UPDATED_GFED4_CH4 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none CH4 ./HcoDir/CH4/v2020-09/GFED/GFED4_CH4_FIRE_%y4.nc - -# --- JPL WetCHARTs v1.0 --- -# --- (Bloom et al., https://doi.org/10.3334/ORNLDAAC/1502) --- -JPLW_CH4 kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2020-09/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc +# --- JPL WetCHARTs v1.0 (Bloom et al., https://doi.org/10.3334/ORNLDAAC/1502) --- +JPLW_CH4 kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2024-01/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc # --- Geological seeps --- CH4_SEEPS kg/m2/s N Y - none none emi_ch4 ./HcoDir/CH4/v2020-04/Seeps/Etiope_CH4GeologicalEmis_ScaledToHmiel.1x1.nc -# --- Emissions from lakes (Maasakkers et al.) --- -# --- NOTE: Superseded by WetCHARTs --- -#CH4_LAKES kg/m2/s N Y F%y4-%m2-01T00:00:00 none none emi_ch4 ./HcoDir/CH4/v2022-11/Lakes/Maasakkers_Lakes_%y4.01x01.nc +# --- Emissions from reservoirs (Delwich et al 2022) --- +CH4_RES_DAM kg/m2/s N Y - none none CH4emis ./HcoDir/CH4/v2024-01/ResME/ResME_Dam_Emissions.0.1x0.1.nc +CH4_RES_SFC kg/m2/s N Y - none none CH4emis ./HcoDir/CH4/v2024-01/ResME/ResME_Surface_Emissions.0.1x0.1.nc # --- Emissions from termites (Fung et al 1991) --- CH4_TERMITES kg/m2/s N Y - none none CH4 ./HcoDir/CH4/v2022-11/4x5/termites.geos.4x5.nc -# --- Soil absoprtion (Fung et al 1991) --- -# --- NOTE: Superseded by MeMo --- -#CH4_SOILABSORB kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CH4 ./HcoDir/CH4/v2019-10/Fung_SoilAbs/Soil_Absorption_4x5_%y4.nc - # --- Soil absorption fro MeMo model (Murguia-Flores et al. 2018, GMD) --- -# --- Note; Use climatology by default --- +# +# Note: Use climatology by default CH4_SOILABSORB kg/m2/s 2009 Y F%y4-%m2-01T00:00:00 none none CH4uptake ./HcoDir/CH4/v2019-10/MeMo_SoilAbs/MeMo_CH4uptake_Climatology.nc +# +# Annual emissions are disabled by default #CH4_SOILABSORB kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CH4uptake ./HcoDir/CH4/v2019-10/MeMo_SoilAbs/MeMo_CH4uptake_1990-2009.nc -# --- RCP future emission scenarios --- -#RCP3PD_CH4 kg/m2/s N Y %y4-01-01T00:00:00T00:00:00 none none CO ACCMIP ./HcoDir/v2020-07/RCP_3PD/RCPs_anthro_CH4_2005-2100_23474.nc -#RCP45_CH4 kg/m2/s N Y %y4-01-01T00:00:00T00:00:00 none none CO ACCMIP ./HcoDir/v2020-07/RCP_45/RCPs_anthro_CH4_2005-2100_27424.nc -#RCP60_CH4 kg/m2/s N Y %y4-01-01T00:00:00T00:00:00 none none CO ACCMIP ./HcoDir/v2020-07/RCP_60/RCPs_anthro_CH4_2005-2100_43190.nc -#RCP85_CH4 kg/m2/s N Y %y4-01-01T00:00:00T00:00:00 none none CO ACCMIP ./HcoDir/v2020-07/RCP_85/RCPs_anthro_CH4_2005-2100_43533.nc - #============================================================================== # %%%%% CO emissions %%%%% #============================================================================== -# --- CEDSv2 emissions --- -# --- Default global inventory --- +# --- AEIC 2019 aircraft (AEIC) --- +AEIC19_MONMEAN_CO kg/m2/s Y Y F2019-%m2-01T00:00:00 none none CO ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc +# +##AEIC19_DAILY_CO kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none CO ./HcoDir/AEIC2019/v2022-03/2019/%m2/AEIC_2019%m2%d2.0.5x0.625.36L.nc + +# --- CEDSv2 emissions --- CEDS_CO_AGR kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_agr ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc CEDS_CO_ENE kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_ene ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc CEDS_CO_IND kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_ind ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc @@ -309,99 +269,29 @@ CEDS_CO_TRA kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_tra ./HcoDir/CEDS/v2 CEDS_CO_RCO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_rco ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc CEDS_CO_SLV kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_slv ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc CEDS_CO_WST kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_wst ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc - -# --- CEDSv2 ship emisisons --- +# CEDS_CO_SHP kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_shp ./HcoDir/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc -# --- APEI Canada (APEI) --- -#APEI_CO kg/m2/s N Y F%y4-01-01T00:00:00 none none CO ./HcoDir/APEI/v2016-11/APEI.0.1x0.1.nc - -# --- EPA NEI2016 USA monthly mean (NEI2016_MONMEAN) --- -#EPA16_CO__airportsCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_%m2.ncf -#EPA16_CO__nonptCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_%m2.ncf -#EPA16_CO__nonroadCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_%m2.ncf -#EPA16_CO__npogCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_%m2.ncf -#EPA16_CO__onroadCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_%m2.ncf -#EPA16_CO__onroad_caCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_%m2.ncf -#EPA16_CO__railCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_%m2.ncf -#EPA16_CO__rwcCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_%m2.ncf -#EPA16_CO__c1c2CO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_%m2.ncf -#EPA16_CO__c3CO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_%m2.ncf -#EPA16_CO__pteguCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_%m2.ncf -#EPA16_CO__ptogCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_%m2.ncf -#EPA16_CO__ptnonipmCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_%m2.ncf -#EPA16_CO__onroad_canCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_%m2.ncf -#EPA16_CO__onroad_mexCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_%m2.ncf -#EPA16_CO__otharCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_%m2.ncf -#EPA16_CO__othptCO kg/m2/s Y Y F2016-%m2-01T00:00:00 none none CO ./HcoDir/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_%m2.ncf - -# --- DICE-Africa emission inventory (DICE_Africa) --- -## Scale factors convert from g/m2/yr to kg/m2/s -#DICE_CARS_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc -#DICE_MOTORCYCLES_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc -#DICE_BACKUPGEN_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc -#DICE_CHARCOALPROD_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc -#DICE_GASFLARE_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc -#DICE_AGBURNING_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc -#DICE_CHARCOALUSE_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc -#DICE_KEROSENE_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-kerosene-use-2013-v01-4Oct2016.nc -#DICE_OILREFINING_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc -#DICE_HOUSEFUELWOOD_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc -#DICE_OTHERFUELWOOD_CO g/m2/yr N Y - none 3.171e-11 CO ./HcoDir/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc -## -## --- Efficient Combusions Emissions from EDGARv43 --- -## --- This covers sectors not included in DICE-Africa --- -#AF_EDGAR_CO_POW kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc -#AF_EDGAR_CO_ENG kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc -#AF_EDGAR_CO_IND kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc -#AF_EDGAR_CO_TNG kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc -#AF_EDGAR_CO_PPA kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc -#AF_EDGAR_CO_SWD kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc - -# --- HTAP v2 (HTAP) --- -#HTAP_CO_IND kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_INDUSTRY.generic.01x01.nc -#HTAP_CO_POW kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_ENERGY.generic.01x01.nc -#HTAP_CO_RES kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_RESIDENTIAL.generic.01x01.nc -#HTAP_CO_TRA kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_TRANSPORT.generic.01x01.nc -##HTAP_CO_AIR1 kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_LTO.generic.01x01.nc -##HTAP_CO_AIR2 kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CDS.generic.01x01.nc -##HTAP_CO_AIR3 kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co ./HcoDir/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CRS.generic.01x01.nc - -# --- AEIC 2019 aircraft (AEIC) --- -#AEIC19_DAILY_CO kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none CO ./HcoDir/AEIC2019/v2022-03/2019/%m2/AEIC_2019%m2%d2.0.5x0.625.36L.nc -AEIC19_MONMEAN_CO kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none CO ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc - -# --- RCP future emissions scenarios --- -#RCP3PD_CO kg/m2/s N Y %y4-01-01T00:00:00 none none ACCMIP ./HcoDir/RCP/v2020-07/RCP_3PD/RCPs_anthro_CO_2005-2100_23474.nc -#RCP45_CO kg/m2/s N Y %y4-01-01T00:00:00 none none ACCMIP ./HcoDir/RCP/v2020-07/RCP_45/RCPs_anthro_CO_2005-2100_27424.nc -#RCP60_CO kg/m2/s N Y %y4-01-01T00:00:00 none none ACCMIP ./HcoDir/RCP/v2020-07/RCP_60/RCPs_anthro_CO_2005-2100_43190.nc -#RCP85_CO kg/m2/s N Y %y4-01-01T00:00:00 none none ACCMIP ./HcoDir/RCP/v2020-07/RCP_85/RCPs_anthro_CO_2005-2100_43533.nc - #============================================================================== # --- CO2 emissions --- #============================================================================== # --- CO2 Fossil Fuel --- -#FOSSILCO2_CDIAC kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO2 ./HcoDir/CO2/v2014-09/FOSSIL/CDIAC_v2014.monthly.generic.1x1.nc -FOSSILCO2_ODIAC kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO2 ./HcoDir/CO2/v2022-11/FOSSIL/ODIAC_CO2.monthly.generic.1x1.nc +FOSSILCO2_ODIAC kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO2 ./HcoDir/CO2/v2022-11/FOSSIL/ODIAC_CO2.monthly.generic.1x1.nc # --- CO2 Ocean Exchange --- -#OCEANCO2_TAKA_ANNUAL kg/m2/s N Y - none none CO2 ./HcoDir/CO2/v2022-11/OCEAN/Taka2009_CO2_Annual.nc OCEANCO2_TAKA_MONTHLY kg/m2/s 2000 Y F%y4-%m2-01T00:00:00 none none CO2 ./HcoDir/CO2/v2022-11/OCEAN/Taka2009_CO2_Monthly.nc # --- Balanced biosphere exchange --- -#BBIOCO2_DIURNAL kg/m2/s N Y F%y4-%m2-%d2T%h2-01-01 none none CO2 ./HcoDir/CO2/v2014-09/BBIO/BBIO_diurnal_CO2.nc SIB_BBIO_CO2 kg/m2/s N Y F%y4-%m2-%d2T%h2-01-01 none none CO2 ./HcoDir/CO2/v2022-11/BIO/SiB3_3hr_NEP.nc # --- Net Terrestrial Exchange --- CO2_NET_TERRESTRIAL kg/m2/s N Y - none none CO2 ./HcoDir/CO2/v2022-11/BIO/Net_terrestrial_exch_5.29Pg.generic.1x1.nc # --- CO2 Ship Emissions --- -#ICOADS_CO2_SHIP kg/m2/s N Y F2004-%m2-01T00:00:00 none none CO2 ./HcoDir/ICOADS_SHIP/v2014-07/ICOADS_ship_CO2_2004.generic.1x1.nc -CEDS_CO2_SHP kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO2_shp ./HcoDir/CEDS/v2018-08/%y4/CO2-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO2_SHP kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO2_shp ./HcoDir/CEDS/v2021-06/%y4/CO2-em-anthro_CMIP_CEDS_%y4.nc # --- CO2: AEIC 2019 aircraft emissions --- -#AEIC19_DAILY_CO2 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none FUELBURN ./HcoDir/AEIC2019/v2022-03/2019/AEIC_2019%m2%d2.0.5x0.625.36L.nc AEIC19_MONMEAN_CO2 kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none FUELBURN ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc # --- CO2: Surface correction for CO oxidation --- @@ -415,16 +305,16 @@ CO2_ISOPRENE kg/m/s 2004 Y F%y4-%m2-01T01:00:00 none none ISOP ./HcoDir/ CO2_MONOTERP kg/m/s 2004 Y F%y4-%m2-01T01:00:00 none none MONOT ./HcoDir/CO2/v2022-11/CHEM/Monoterpene-2004.geos.2x25.nc # --- CO2 production from CO --- -#CO2_COPROD kgC/m3/s N Y F%y2-%m2-01T00:00:00 none none LCO ./HcoDir/CO2/v2022-11/CHEM/CO2_prod_rates.GEOS5.2x25.47L.nc +CO2_COPROD kgC/m3/s N Y F%y2-%m2-01T00:00:00 none none LCO ./HcoDir/CO2/v2024-01/CHEM/CO2_prod_rates.GEOS5.2x25.72L.nc #============================================================================== -# --- OCS flux data ---- +# --- OCS emission fluxes --- #============================================================================== OCS_ANTHRO kgS/km2/s N Y F%y4-%m2-01T00:00:00 none none COS_Flux ./HcoDir/OCS_FLUX/v2022-11/anthro_v3/v3_anthro/%y4/%m2.nc OCS_BIOMASS kgS/km2/s N Y F%y4-%m2-01T00:00:00 none none COS_Flux ./HcoDir/OCS_FLUX/v2022-11/Biomassburn/CMSV2-CO2-GFED3-ZC/%y4/%m2.nc OCS_MISSING_OCEAN kgS/km2/s N Y F%y4-%m2-01T00:00:00 none none COS_Flux ./HcoDir/OCS_FLUX/v2022-11/MissingOcean/LUKAI/%y4/%m2.nc OCS_OCEAN kgS/km2/s N Y F%y4-%m2-01T00:00:00 none none COS_Flux ./HcoDir/OCS_FLUX/v2022-11/OceanCOS/Kettle/%y4/%m2.nc -# + ############################################################################### ### ### HEMCO Extension Data (update if HEMCO_Config.rc changes) @@ -432,18 +322,19 @@ OCS_OCEAN kgS/km2/s N Y F%y4-%m2-01T00:00:00 none none COS_Flux ./HcoDir ############################################################################### # --- GFED4 (Extension 111)--- -GFED_TEMP kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_TEMP ./HcoDir/GFED4/v2022-11/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_AGRI kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_AGRI ./HcoDir/GFED4/v2022-11/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_DEFO kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_DEFO ./HcoDir/GFED4/v2022-11/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_BORF kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_BORF ./HcoDir/GFED4/v2022-11/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_PEAT kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_PEAT ./HcoDir/GFED4/v2022-11/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_SAVA kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_SAVA ./HcoDir/GFED4/v2022-11/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_TEMP kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_TEMP ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_AGRI kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_AGRI ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_DEFO kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_DEFO ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_BORF kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_BORF ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_PEAT kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_PEAT ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_SAVA kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_SAVA ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc # --- GFED_daily scale factors --- -GFED_FRAC_DAY 1 N Y %y4-%m2-%d2T00:00:00 none none GFED_FRACDAY ./HcoDir/GFED4/v2022-11/%y4/GFED4_dailyfrac_gen.025x025.%y4%m2.nc +GFED_FRAC_DAY 1 N Y %y4-%m2-%d2T00:00:00 none none GFED_FRACDAY ./HcoDir/GFED4/v2023-03/%y4/GFED4_dailyfrac_gen.025x025.%y4%m2.nc + +# --- GFED_3hourly -- +#GFED_FRAC_3HOUR 1 N Y %y4-%m2-01T%h2:00:00 none none GFED_FRAC3HR ./HcoDir/GFED4/v2023-03/%y4/GFED4_3hrfrac_gen.025x025.%y4%m2.nc -# --- GFED_3hourly (off by default in HEMCO_Config.rc) --- -#GFED_FRAC_3HOUR 1 N Y %y4-%m2-01T%h2:00:00 none none GFED_FRAC3HR ./HcoDir/GFED4/v2020-02/%y4/GFED4_3hrfrac_gen.025x025.%y4%m2.nc ############################################################################### ### @@ -452,29 +343,25 @@ GFED_FRAC_DAY 1 N Y %y4-%m2-%d2T00:00:00 none none GFED_FRACDAY ./HcoDir/GFED4/v ############################################################################### # --- Time zones (offset to UTC) --- -TIMEZONES count N V - none none UTC_OFFSET ./HcoDir/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc +TIMEZONES count Y V 2017-%m2-01T00:00:00 none none UTC_OFFSET ./HcoDir/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc # --- OH from the latest 10-year benchmark --- -# ** TODO: Update to 14.0.0 ** -#GLOBAL_OH kg/m3 N N %y4-%m2-01T00:00:00 none none SpeciesConc_OH ./HcoDir/GCClassic_Output/13.0.0/%y4/GEOSChem.SpeciesConc.%y4%m2%d2_0000z.nc4 +##GLOBAL_OH kg/m3 N N %y4-%m2-01T00:00:00 none none SpeciesConc_OH ./HcoDir/GCClassic_Output/14.0.0/%y4/GEOSChem.SpeciesConc.%y4%m201_0000z.nc4 -# --- OH from GEOS-Chem v5-07-08 --- -# --- NOTE: Use this for CH4/IMI --- -#GLOBAL_OH kg/m3 1985 Y F%y4-%m2-01T00:00:00 none none OH ./HcoDir/OH/v2022-11/v5-07-08/OH_3Dglobal.geos5.47L.4x5.nc +# --- OH from GEOS-Chem v5-07-08 (used for CH4/IMI) --- +GLOBAL_OH kg/m3 1985 Y F%y4-%m2-01T00:00:00 none none OH ./HcoDir/OH/v2022-11/v5-07-08/OH_3Dglobal.geos5.72L.4x5.nc -# --- Global Cl concentrations -GLOBAL_Cl mol/mol N Y F%y4-%m2-%d2T00:00:00 none none SpeciesConc_Cl ./HcoDir/GCClassic_Output/13.0.0/%y4/GEOSChem.SpeciesConc.%y4%m201_0000z.nc4 +# --- Global Cl concentrations --- +GLOBAL_Cl mol/mol N Y F%y4-%m2-01T00:00:00 none none SpeciesConc_Cl ./HcoDir/CH4/v2024-01/GCC_14_Output/%y4/GEOSChem.SpeciesConc.%y4%m201_0000z.nc4 # --- Stratospheric L(CO) from GMI --- -CH4_LOSS s-1 1985 Y F%y4-%m2-01T00:00:00 none none CH4loss ./HcoDir/CH4/v2022-11/4x5/gmi.ch4loss.geos5_47L.4x5.nc +CH4_LOSS s-1 1985 Y F%y4-%m2-01T00:00:00 none none CH4loss ./HcoDir/CH4/v2024-01/GC_CH4_LOSS/GCC14_72LM.ch4loss.4x5.nc4 # --- P(CO) from CH4 and NMVOC from the last 10-yr benchmark --- -PCO_CH4 molec/cm3/s N Y F%y4-%m2-01T00:00:00 none none ProdCOfromCH4 ./HcoDir/GCClassic_Output/13.0.0/%y4/GEOSChem.ProdLoss.%y4%m201_0000z.nc4 -PCO_NMVOC molec/cm3/s N Y F%y4-%m2-01T00:00:00 none none ProdCOfromNMVOC ./HcoDir/GCClassic_Output/13.0.0/%y4/GEOSChem.ProdLoss.%y4%m201_0000z.nc4 +PCO_CH4 molec/cm3/s N Y F%y4-%m2-01T00:00:00 none none ProdCOfromCH4 ./HcoDir/CH4/v2024-01/GCC_14_Output/%y4/GEOSChem.ProdLoss.%y4%m201_0000z.nc4 +PCO_NMVOC molec/cm3/s N Y F%y4-%m2-01T00:00:00 none none ProdCOfromNMVOC ./HcoDir/CH4/v2024-01/GCC_14_Output/%y4/GEOSChem.ProdLoss.%y4%m201_0000z.nc4 #--- GMI chemistry: prod/loss rates (GMI_PROD_LOSS) --- -GMI_LOSS_CH4 s-1 2000 Y F%y4-%m2-01T00:00:00 none none loss ./HcoDir/GMI/v2022-11/gmi.clim.CH4.geos5.2x25.nc -GMI_PROD_CH4 v/v/s 2000 Y F%y4-%m2-01T00:00:00 none none prod ./HcoDir/GMI/v2022-11/gmi.clim.CH4.geos5.2x25.nc GMI_LOSS_CO s-1 2005 Y F%y4-%m2-01T00:00:00 none none loss ./HcoDir/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc GMI_PROD_CO v/v/s 2005 Y F%y4-%m2-01T00:00:00 none none prod ./HcoDir/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc @@ -484,28 +371,44 @@ GMI_PROD_CO v/v/s 2005 Y F%y4-%m2-01T00:00:00 none none prod ./HcoDir/GMI/v2022 ### ############################################################################### -# --- CO2 diurnal and weekly scale factors --- -CO2_DIURNAL 1 N Y F%y4-%m2-%d2T%h2:00:00 none none diurnal_scale_factors ./HcoDir/CO2/v2015-04/FOSSIL/TIMES_diurnal_scale_factors.nc -CO2_WEEKLY 1 2006 Y F%y4-%m2-%d2T00:00:00 none none weekly_scale_factors ./HcoDir/CO2/v2015-04/FOSSIL/TIMES_weekly_scale_factors.nc +#============================================================================== +# %%%%% Scale factors for CH4 emissions %%%%% +#============================================================================== -# --- CH4 manure and rice scale factors --- +# --- GHGI seasonal scale factors --- +GHGI_OTH_STA_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_1A_Combustion_Stationary ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc +GHGI_OIL_EXP_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_1B2a_Petroleum_Systems_Exploration ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc +GHGI_OIL_PRD_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_1B2a_Petroleum_Systems_Production ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc +GHGI_OIL_REF_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_1B2a_Petroleum_Systems_Refining ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc +GHGI_OIL_TRA_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_1B2a_Petroleum_Systems_Transport ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc +GHGI_GAS_EXP_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_1B2b_Natural_Gas_Exploration ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc +GHGI_GAS_PRD_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_1B2b_Natural_Gas_Production ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc +GHGI_LIV_MAN_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_3B_Manure_Management ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc +GHGI_RIC_CUL_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_3C_Rice_Cultivation ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc +GHGI_OTH_BUR_SF 1 N Y F%y4-%m2-01T00:00:00 none none monthly_scale_factor_3F_Field_Burning ./HcoDir/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_%y4.nc + +# --- Scarpelli_Mexico manure and rice scale factors --- MANURE_SF 1 N Y F%y4-%m2-01T00:00:00 none none sf_ch4 ./HcoDir/CH4/v2017-10/Seasonal_SF/EMICH4_Manure_ScalingFactors.WithClimatology.nc RICE_SF 1 2012 Y F%y4-%m2-01T00:00:00 none none sf_ch4 ./HcoDir/CH4/v2017-10/Seasonal_SF/EMICH4_Rice_ScalingFactors.SetMissing.nc -#--- annual scale factors --- -## Need DC0360xPC0181_CFnnnnx6C.bin -#LIQFUEL_THISYR 1 N Y F%y4-01-01T00:00:00 none none COscalar ./HcoDir/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc -#LIQFUEL_1985 1 N Y F1985-01-01T00:00:00 none none COscalar ./HcoDir/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc -#LIQFUEL_2006 1 N Y F2006-01-01T00:00:00 none none COscalar ./HcoDir/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc -#LIQFUEL_2002 1 N Y F2002-01-01T00:00:00 none none COscalar ./HcoDir/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc -#LIQFUEL_2008_2010 1 N Y F%y4-01-01T00:00:00 none none COscalar ./HcoDir/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc +#============================================================================== +# %%%%% Scale factors for CO emissions %%%%% +#============================================================================== # --- CEDS vertical partitioning --- ENERGY_LEVS 1 N Y - none none g_energy ./HcoDir/VerticalScaleFactors/v2021-05/gc_layers.nc INDUSTRY_LEVS 1 N Y - none none g_industry ./HcoDir/VerticalScaleFactors/v2021-05/gc_layers.nc SHIP_LEVS 1 N Y - none none cmv_c3 ./HcoDir/VerticalScaleFactors/v2021-05/gc_layers.nc -# --- CO2 scale factors +#============================================================================== +# %%%%% Scale factors for CO2 emissions %%%%% +#============================================================================== + +# --- National fossil fuel CO2 scale factors (Nassar et al, 2013) --- +CO2_DIURNAL 1 N Y F%y4-%m2-%d2T%h2:00:00 none none diurnal_scale_factors ./HcoDir/CO2/v2015-04/FOSSIL/TIMES_diurnal_scale_factors.nc +CO2_WEEKLY 1 2006 Y F%y4-%m2-%d2T00:00:00 none none weekly_scale_factors ./HcoDir/CO2/v2015-04/FOSSIL/TIMES_weekly_scale_factors.nc + +# --- Domestic aviation surface correction factor --- AVIATION_SURF_CORR 1 2004 Y F%y2-01-01T00:00:00 none none CO2 ./HcoDir/CO2/v2022-11/FOSSIL/Aviation_SurfCorr_SclFac.1x1.nc OCEANCO2_SCALED_MONTHLY kg/m2/s N Y F%y2-%m2-01T00:00:00 none none CO2 ./HcoDir/CO2/v2022-11/OCEAN/Scaled_Ocean_CO2_monthly.nc @@ -515,14 +418,20 @@ OCEANCO2_SCALED_MONTHLY kg/m2/s N Y F%y2-%m2-01T00:00:00 none none CO2 ./HcoD ### ############################################################################### -CAN_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/Canada_Mask.001x001.nc -CAN_MASK_MIRROR 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/Canada_Mask_Mirror.001x001.nc +# Comment these lines if you are not using Scarpelli_Mexico +MEX_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2024-04/Mexico_Mask.01x01.nc +MEX_MASK_MIRROR 1 N Y - none none MASK ./HcoDir/MASKS/v2024-04/Mexico_Mask_Mirror.01x01.nc + +# Comment these lines if you are not using Scarpelli_Canada +CAN_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2024-04/Canada_Mask.01x01.nc +CAN_MASK_MIRROR 1 N Y - none none MASK ./HcoDir/MASKS/v2024-04/Canada_Mask_Mirror.01x01.nc + +# Comment these lines if you are not using GHGI_v2/GHGIv2_Express_Ext +CONUS_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2024-04/CONUS_Mask.01x01.nc +CONUS_MASK_MIRROR 1 N Y - none none MASK ./HcoDir/MASKS/v2024-04/CONUS_Mask_Mirror.01x01.nc + +# Comment these lines if you are not using any of the CEDS inventories CHINA_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/China_mask.generic.1x1.nc -CONUS_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/CONUS_Mask.001x001.nc -CONUS_MASK_MIRROR 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/CONUS_Mask_Mirror.001x001.nc -MEX_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/Mexico_Mask.001x001.nc -MEX_MASK_MIRROR 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/Mexico_Mask_Mirror.001x001.nc -# %% DerivedExports%% diff --git a/run/GCHP/ExtData.rc.templates/ExtData.rc.fullchem b/run/GCHP/ExtData.rc.templates/ExtData.rc.fullchem index 36f2c22b6..47669b46b 100644 --- a/run/GCHP/ExtData.rc.templates/ExtData.rc.fullchem +++ b/run/GCHP/ExtData.rc.templates/ExtData.rc.fullchem @@ -32,9 +32,23 @@ ${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS} #============================================================================== # --- Fields for lightning emissions (Extension 103) --- # These fields are stored in State_Met, along with the other met fields +# Lines below are commented/uncommented by setCommonRunSettings.sh based +# on setting in HEMCO_Config.rc. #============================================================================== -FLASH_DENS 1 N Y F0;013000 none none LDENS ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_MET}/%y4/FLASH_CTH_${RUNDIR_MET}_${RUNDIR_MET_NATIVE_RES}_%y4_%m2.nc4 -CONV_DEPTH 1 N Y F0;013000 none none CTH ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_MET}/%y4/FLASH_CTH_${RUNDIR_MET}_${RUNDIR_MET_NATIVE_RES}_%y4_%m2.nc4 +#FLASH_DENS 1 N Y F0;013000 none none LDENS ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_METLIGHTNING}/%y4/FLASH_CTH_${RUNDIR_METLIGHTNING}_${RUNDIR_METLIGHTNING_RES}_%y4_%m2.nc4 +#CONV_DEPTH 1 N Y F0;013000 none none CTH ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_METLIGHTNING}/%y4/FLASH_CTH_${RUNDIR_METLIGHTNING}_${RUNDIR_METLIGHTNING_RES}_%y4_%m2.nc4 + +# Climatology option +FLASH_DENS 1 Y Y F1980-%m2-01T00:00:00 none none LDENS ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_METLIGHTNING}/CLIM/FLASH_CTH_${RUNDIR_METLIGHTNING}_${RUNDIR_METLIGHTNING_RES}_${RUNDIR_MET_LCLIM}.ymonmean.nc4 +CONV_DEPTH 1 Y Y F1980-%m2-01T00:00:00 none none CTH ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_METLIGHTNING}/CLIM/FLASH_CTH_${RUNDIR_METLIGHTNING}_${RUNDIR_METLIGHTNING_RES}_${RUNDIR_MET_LCLIM}.ymonmean.nc4 +# +#============================================================================== +# --- Fields for RRTMG --- +# Dynamical heating data is only read in when RRTMG FDH/SEFDH is used and +# must be generated in a reference (companion) run. The time after P at +# the end should be the RRTMG time step (3 hours by default) +#============================================================================== +DynHeating 1 N N F%y4-%m2-%d2T%h2:00:00 none none DynHeating ./DynHeating/GEOSChem.DynHeating.%y4%m2%d2_%h2%n2z.nc4 2000-01-01T00:00:00P03:00 # ############################################################################### ### @@ -1359,6 +1373,22 @@ ORDONEZ_CH2ICL kg/m2/s Y Y F2000-%m2-01T00:00:00 none none CH2ICl ./HcoDir/IODIN ORDONEZ_CH2IBR kg/m2/s Y Y F2000-%m2-01T00:00:00 none none CH2IBr ./HcoDir/IODINE/v2020-02/CH2IBr_monthly_emissions_Ordonez_2012_COARDS.nc # #============================================================================== +# --- GT_Chlorine --- +#============================================================================== +HCL_ENE kg/m2/s N Y F%y4-%m2-01T00:00:00 none none HCl_ene ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +HCL_IND kg/m2/s N Y F%y4-%m2-01T00:00:00 none none HCl_ind ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +HCL_RES kg/m2/s N Y F%y4-%m2-01T00:00:00 none none HCl_res ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +HCL_WST kg/m2/s N Y F%y4-%m2-01T00:00:00 none none HCl_wstop ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +HCL_BIO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none HCl_bbop ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +HCL_AGR kg/m2/s N Y F%y4-%m2-01T00:00:00 none none HCl_agri ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +PCL_ENE kg/m2/s N Y F%y4-%m2-01T00:00:00 none none pCl_ene ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +PCL_IND kg/m2/s N Y F%y4-%m2-01T00:00:00 none none pCl_ind ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +PCL_RES kg/m2/s N Y F%y4-%m2-01T00:00:00 none none pCl_res ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +PCL_WST kg/m2/s N Y F%y4-%m2-01T00:00:00 none none pCl_wstop ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +PCL_BIO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none pCl_bbop ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +PCL_AGR kg/m2/s N Y F%y4-%m2-01T00:00:00 none none pCl_agri ./HcoDir/GT_Chlorine/v2024-05/GT_Chlorine_01_01_%y4_V1.0.0.nc +# +#============================================================================== # --- Ship emissions (SHIP) --- #============================================================================== CEDS_NO_SHP kg/m2/s N Y F%y4-%m2-01T00:00:00 none none NO_shp ./HcoDir/CEDS/v2021-06/%y4/NO-em-anthro_CMIP_CEDS_%y4.nc @@ -1404,14 +1434,14 @@ AEIC19_DAILY_BCPI kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none BC ./Hc AEIC19_DAILY_OCPI kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none OC ./HcoDir/AEIC2019/v2022-03/2019/%m2/AEIC_2019%m2%d2.0.5x0.625.36L.nc AEIC19_DAILY_ACET kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none HC ./HcoDir/AEIC2019/v2022-03/2019/%m2/AEIC_2019%m2%d2.0.5x0.625.36L.nc # Monthly data -AEIC19_MONMEAN_NO kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none NO ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc -AEIC19_MONMEAN_NO2 kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none NO2 ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc -AEIC19_MONMEAN_HONO kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none HONO ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc -AEIC19_MONMEAN_CO kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none CO ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc -AEIC19_MONMEAN_SO2 kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none FUELBURN ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc -AEIC19_MONMEAN_BCPI kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none BC ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc -AEIC19_MONMEAN_OCPI kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none OC ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc -AEIC19_MONMEAN_ACET kg/m2/s 2019 Y F%y4-%m2-%d2T00:00:00 none none HC ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc +AEIC19_MONMEAN_NO kg/m2/s Y Y F2019-%m2-01T00:00:00 none none NO ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc +AEIC19_MONMEAN_NO2 kg/m2/s Y Y F2019-%m2-01T00:00:00 none none NO2 ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc +AEIC19_MONMEAN_HONO kg/m2/s Y Y F2019-%m2-01T00:00:00 none none HONO ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc +AEIC19_MONMEAN_CO kg/m2/s Y Y F2019-%m2-01T00:00:00 none none CO ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc +AEIC19_MONMEAN_SO2 kg/m2/s Y Y F2019-%m2-01T00:00:00 none none FUELBURN ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc +AEIC19_MONMEAN_BCPI kg/m2/s Y Y F2019-%m2-01T00:00:00 none none BC ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc +AEIC19_MONMEAN_OCPI kg/m2/s Y Y F2019-%m2-01T00:00:00 none none OC ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc +AEIC19_MONMEAN_ACET kg/m2/s Y Y F2019-%m2-01T00:00:00 none none HC ./HcoDir/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019%m2.0.5x0.625.36L.nc # #============================================================================== # --- Emissions from decaying plants (DECAYING_PLANTS) --- @@ -1544,6 +1574,38 @@ EOH_PLANTDECAY kgC/m2/s Y Y F1985-%m2-01T00:00:00 none none HET_RESP ./HcoDir/A # --- GFAS biomass burning (GFAS) --- # GFAS is off by default in HEMCO_Config.rc; fill in this section if turning on #============================================================================== +#GFAS_CO kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none cofire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_SOAP kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none cofire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_NO kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none noxfire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_BCPI kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none bcfire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_BCPO kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none bcfire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_OCPI kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none ocfire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_OCPO kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none ocfire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_CO2 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none co2fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_CH4 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none ch4fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_SO2 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none so2fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_pFe kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none so2fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_NH3 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none nh3fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_ACET kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c3h6ofire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_ALD2 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c2h4ofire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_ALK4 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none hialkanesfire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_PRPE1 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none hialkenesfire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_PRPE2 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c3h6fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_C2H6 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c2h6fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_C3H8 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c3h8fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_CH2O kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none ch2ofire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_C2H4 kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c2h4fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_ISOP kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c5h8fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_DMS kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c2h6sfire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_TOLU kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c7h8fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_BENZ kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c6h6fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_XYLE kg/m2/s N Y F%y4-%m2-%d2T00:00:00 none none c8h10fire ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +#GFAS_EMITL m N Y F%y4-%m2-%d2T00:00:00 none none mami ./HcoDir/GFAS/v2018-09/%y4/GFAS_%y4%m2.nc +# +#============================================================================== +# --- GFED4 climatology --- +# GFED4_CLIMATOLOGY is off by default in HEMCO_Config.rc; fill in this section if turning on +#============================================================================== # #============================================================================== # --- Anthropogenic dust emissions (AFCID)--- @@ -1555,42 +1617,42 @@ PM25FINE_3 kg/m2/s Y Y 2013-%m2-01T00:00:00 none none PM25FINE ./HcoDir/AFCID/v2 #============================================================================== # --- Offline dust emissions (OFFLINE_DUST)--- #============================================================================== -EMIS_DST1 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EMIS_DST1 ./HcoDir/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/dust_emissions_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -EMIS_DST2 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EMIS_DST2 ./HcoDir/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/dust_emissions_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -EMIS_DST3 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EMIS_DST3 ./HcoDir/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/dust_emissions_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -EMIS_DST4 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EMIS_DST4 ./HcoDir/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/dust_emissions_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc +EMIS_DST1 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EMIS_DST1 ./HcoDir/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +EMIS_DST2 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EMIS_DST2 ./HcoDir/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +EMIS_DST3 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EMIS_DST3 ./HcoDir/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +EMIS_DST4 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EMIS_DST4 ./HcoDir/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc # #============================================================================== # --- Offline biogenic VOC emissions (OFFLINE_BIOGENICVOC) --- #============================================================================== -BIOGENIC_ACET kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none ACET_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_ALD2 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none ALD2_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_C2H4 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none C2H4_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_EOH kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EOH_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_ISOP kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none ISOP_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_PRPE kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none PRPE_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_SOAP kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SOAP_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_SOAS kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SOAS_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_MOH kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none MOH_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_MTPA kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none MTPA_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_MTPO kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none MTPO_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_LIMO kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none LIMO_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -BIOGENIC_SESQ kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SESQ_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/biovoc_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_ACET kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none ACET_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_ALD2 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none ALD2_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_C2H4 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none C2H4_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_EOH kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none EOH_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_ISOP kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none ISOP_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_PRPE kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none PRPE_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_SOAP kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SOAP_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_SOAS kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SOAS_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_MOH kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none MOH_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_MTPA kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none MTPA_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_MTPO kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none MTPO_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_LIMO kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none LIMO_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +BIOGENIC_SESQ kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SESQ_MEGAN ./HcoDir/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc # #============================================================================== # --- Offline sea salt emissions (OFFLINE_SEASALT) --- #============================================================================== -SEASALT_SALA kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SALA_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/seasalt_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -SEASALT_SALC kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SALC_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/seasalt_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc +SEASALT_SALA kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SALA_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +SEASALT_SALC kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SALC_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc # -#SEASALT_Br2 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none Br2_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/seasalt_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -#SEASALT_BrSALA kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none BrSALA_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/seasalt_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc -#SEASALT_BrSALC kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none BrSALC_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/seasalt_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc +#SEASALT_Br2 kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none Br2_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +#SEASALT_BrSALA kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none BrSALA_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc +#SEASALT_BrSALC kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none BrSALC_TOTAL ./HcoDir/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc # #============================================================================== # --- Offline soil NOx emissions (OFFLINE_SOILNOX) --- #============================================================================== -SOILNOX_NO kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SOIL_NOx ./HcoDir/OFFLINE_SOILNOX/v2021-12/${RUNDIR_MET_NATIVE_RES}/%y4/%m2/soilnox_${RUNDIR_MET_LAT_RES}.%y4%m2%d2.nc +SOILNOX_NO kg/m2/s N Y %y4-%m2-%d2T%h2:00:00 none none SOIL_NOx ./HcoDir/OFFLINE_SOILNOX/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/%y4/%m2/soilnox_${RUNDIR_OFFLINE_EMIS_LAT_RES}.%y4%m2%d2.nc # ############################################################################### ### @@ -1709,18 +1771,18 @@ MEGAN_ORVC 1 Y Y F1990-%m2-01T00:00:00 none none OCPI ./HcoDir/SOA/v2014-07/NVOC # --- GFED biomass burning emissions (Extension 111) #============================================================================== # --- GFED4 --- -GFED_TEMP kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_TEMP ./HcoDir/GFED4/v2020-02/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_AGRI kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_AGRI ./HcoDir/GFED4/v2020-02/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_DEFO kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_DEFO ./HcoDir/GFED4/v2020-02/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_BORF kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_BORF ./HcoDir/GFED4/v2020-02/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_PEAT kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_PEAT ./HcoDir/GFED4/v2020-02/%y4/GFED4_gen.025x025.%y4%m2.nc -GFED_SAVA kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_SAVA ./HcoDir/GFED4/v2020-02/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_TEMP kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_TEMP ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_AGRI kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_AGRI ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_DEFO kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_DEFO ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_BORF kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_BORF ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_PEAT kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_PEAT ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc +GFED_SAVA kgDM/m2/s N Y F%y4-%m2-01T00:00:00 none none DM_SAVA ./HcoDir/GFED4/v2023-03/%y4/GFED4_gen.025x025.%y4%m2.nc # # --- GFED_daily --- GFED_FRAC_DAY 1 N Y %y4-%m2-%d2T00:00:00 none none GFED_FRACDAY ./HcoDir/GFED4/v2015-10/%y4/GFED4_dailyfrac_gen.025x025.%y4%m2.nc # # --- GFED_3hourly --- -GFED_FRAC_3HOUR 1 N Y %y4-%m2-01T%h2:00:00 none none GFED_FRAC3HR ./HcoDir/GFED4/v2020-02/%y4/GFED4_3hrfrac_gen.025x025.%y4%m2.nc +GFED_FRAC_3HOUR 1 N Y %y4-%m2-01T%h2:00:00 none none GFED_FRAC3HR ./HcoDir/GFED4/v2023-03/%y4/GFED4_3hrfrac_gen.025x025.%y4%m2.nc # #============================================================================== # --- FINN v1.5 biomass burning emissions (Extension 114) @@ -1736,7 +1798,7 @@ GFED_FRAC_3HOUR 1 N Y %y4-%m2-01T%h2:00:00 none none GFED_FRAC3HR ./HcoDir/GFED4 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -TIMEZONES count N V - none none UTC_OFFSET ./HcoDir/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc +TIMEZONES count Y V 2017-%m2-01T00:00:00 none none UTC_OFFSET ./HcoDir/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc # #============================================================================== # --- UV albedo (UVALBEDO) --- @@ -2033,7 +2095,7 @@ GMI_PROD_VRP v/v/s Y Y F2000-%m2-01T00:00:00 none none prod ./HcoDir/GMI/v2015- #============================================================================== # --- NOAA GMD monthly mean surface CH4 (GMD_SFC_CH4) --- #============================================================================== -NOAA_GMD_CH4 ppbv N Y F%y4-%m2-01T00:00:00 none none SFC_CH4 ./HcoDir/NOAA_GMD/v2018-01/monthly.gridded.surface.methane.1979-2020.1x1.nc +NOAA_GMD_CH4 ppbv N Y F%y4-%m2-01T00:00:00 none none SFC_CH4 ./HcoDir/NOAA_GMD/v2023-10/monthly.gridded.surface.methane.1975-2022.1x1.nc # #============================================================================== # --- CMIP6 monthly mean surface CH4 (pre 1970) (CMIP6_SFC_CH4) --- @@ -2072,6 +2134,9 @@ TES_CLIM_CFC22 ppbv N Y - none none CFC22 ./HcoDir/RRTMG/v2018-11/species_clim_p TES_CLIM_CH4 ppbv N Y - none none CH4 ./HcoDir/RRTMG/v2018-11/species_clim_profiles.2x25.nc TES_CLIM_N2O ppbv N Y - none none N2O ./HcoDir/RRTMG/v2018-11/species_clim_profiles.2x25.nc # +# Dynamical heating rates from a previous reference (baseline) simulation +DynHeating Kday-1 N N F%y4-%m2-%d2T%h2:00:00 none none DynHeating ./Heating_Baseline/GEOSChem.DynHeating.%y4%m2%d2_%h2%n2z.nc4 2000-01-01T00:00:00P03:00 +# #============================================================================== # --- Surface VMR (SfcVMR) --- #============================================================================== @@ -2151,19 +2216,19 @@ FFF 1 Y Y F2010-%m2-01T00:00:00 none none FFF ./HcoDir/EDGARv43/v2016-11/EDGAR_v #============================================================================== # --- NEI 2005 scale factors --- #============================================================================== -NEI99_DOW_NOX 1 D N F1999-%m2-01T00:00:00 none none NOX ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_CO 1 D N F1999-%m2-01T00:00:00 none none CO ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_ALK4 1 D N F1999-%m2-01T00:00:00 none none ALK4 ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_ACET 1 D N F1999-%m2-01T00:00:00 none none ACET ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_MEK 1 D N F1999-%m2-01T00:00:00 none none MEK ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_PRPE 1 D N F1999-%m2-01T00:00:00 none none PRPE ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_C3H8 1 D N F1999-%m2-01T00:00:00 none none C3H8 ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_C2H6 1 D N F1999-%m2-01T00:00:00 none none C2H6 ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_SO2 1 D N F1999-%m2-01T00:00:00 none none SO2 ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_SO4 1 D N F1999-%m2-01T00:00:00 none none SO4 ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_MSA 1 D N F1999-%m2-01T00:00:00 none none MSA ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_BCPI 1 D N F1999-%m2-01T00:00:00 none none BCPI ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc -NEI99_DOW_OCPI 1 D N F1999-%m2-01T00:00:00 none none OCPI ./HcoDir/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc +NEI99_DOW_NOX 1 D N F1999-%m2-01T00:00:00 none none NOX ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_CO 1 D N F1999-%m2-01T00:00:00 none none CO ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_ALK4 1 D N F1999-%m2-01T00:00:00 none none ALK4 ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_ACET 1 D N F1999-%m2-01T00:00:00 none none ACET ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_MEK 1 D N F1999-%m2-01T00:00:00 none none MEK ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_PRPE 1 D N F1999-%m2-01T00:00:00 none none PRPE ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_C3H8 1 D N F1999-%m2-01T00:00:00 none none C3H8 ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_C2H6 1 D N F1999-%m2-01T00:00:00 none none C2H6 ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_SO2 1 D N F1999-%m2-01T00:00:00 none none SO2 ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_SO4 1 D N F1999-%m2-01T00:00:00 none none SO4 ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_MSA 1 D N F1999-%m2-01T00:00:00 none none MSA ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_BCPI 1 D N F1999-%m2-01T00:00:00 none none BCPI ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc +NEI99_DOW_OCPI 1 D N F1999-%m2-01T00:00:00 none none OCPI ./HcoDir/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc # #============================================================================== # --- CEDS vertical partitioning --- diff --git a/run/GCHP/ExtData.rc.templates/ExtData.rc.tagO3 b/run/GCHP/ExtData.rc.templates/ExtData.rc.tagO3 index 30f786a52..795cf7dae 100644 --- a/run/GCHP/ExtData.rc.templates/ExtData.rc.tagO3 +++ b/run/GCHP/ExtData.rc.templates/ExtData.rc.tagO3 @@ -1,4 +1,3 @@ - Ext_AllowExtrap: .true. # PrimaryExports%% @@ -32,11 +31,11 @@ ${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS} # #============================================================================== # --- Fields for lightning emissions (Extension 103) --- -# These fields are stored in State_Met, along with the other met fields +# Not used but included in Chem_Registry.rc import list #============================================================================== -FLASH_DENS 1 N Y F0;013000 none none LDENS ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_MET}/%y4/FLASH_CTH_${RUNDIR_MET}_${RUNDIR_MET_NATIVE_RES}_%y4_%m2.nc4 -CONV_DEPTH 1 N Y F0;013000 none none CTH ./HcoDir/OFFLINE_LIGHTNING/v2020-03/${RUNDIR_MET}/%y4/FLASH_CTH_${RUNDIR_MET}_${RUNDIR_MET_NATIVE_RES}_%y4_%m2.nc4 -# +FLASH_DENS 1 N N - none none LDENS /dev/null +CONV_DEPTH 1 N N - none none CTH /dev/null + ############################################################################### ### ### Land data (not handled by HEMCO) @@ -212,13 +211,13 @@ XLAIMULTI cm2_cm-2 N Y %y4-%m2-%d2T00:00:00 none none XLAIMULTI ./HcoDir/Yuan_XL #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -TIMEZONES count N V - none none UTC_OFFSET ./HcoDir/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc +TIMEZONES count Y V 2017-%m2-01T00:00:00 none none UTC_OFFSET ./HcoDir/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc # #============================================================================== #--- Prod/Loss rates from the fullchem simulation --- #============================================================================== -O3_PROD 1 N Y F%y4-%m2-01T00:00:00 none none Prod_Ox ./HcoDir/GCClassic_Output/14.0.0/%y4/GEOSChem.ProdLoss.%y4%m2%d2_0000z.nc4 -O3_LOSS 1 N Y F%y4-%m2-01T00:00:00 none none Loss_Ox ./HcoDir/GCClassic_Output/14.0.0/%y4/GEOSChem.ProdLoss.%y4%m2%d2_0000z.nc4 +O3_PROD 1 N Y F%y4-%m2-01T00:00:00 none none Prod_Ox ./HcoDir/GCClassic_Output/14.0.0/%y4/GEOSChem.ProdLoss.%y4%m201_0000z.nc4 +O3_LOSS 1 N Y F%y4-%m2-01T00:00:00 none none Loss_Ox ./HcoDir/GCClassic_Output/14.0.0/%y4/GEOSChem.ProdLoss.%y4%m201_0000z.nc4 # #============================================================================== # --- Oceanic ozone deposition --- diff --git a/run/GCHP/GCHP.rc.template b/run/GCHP/GCHP.rc.template index 0cab954dc..f29f13c73 100644 --- a/run/GCHP/GCHP.rc.template +++ b/run/GCHP/GCHP.rc.template @@ -23,9 +23,31 @@ LM: 72 GEOSChem_CTM: 1 + +# Met-field vertical index is top down if using native fields from GMAO +#-------------------------------------------------------------------------------- METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN: ${RUNDIR_METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN} + +# Toggle to import mass fluxes for use in advection or compute from winds +#----------------------------------------------------------------------- IMPORT_MASS_FLUX_FROM_EXTDATA: ${RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA} +# Toggle to use total pressure (1) or dry pressure (0) in advection +#----------------------------------------------------------------------- +USE_TOTAL_AIR_PRESSURE_IN_ADVECTION: ${RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION} + +# Use native mass fluxes (0) or convert to dry air mass flux (1) +# This switch is ignored if computing mass fluxes from winds. +#----------------------------------------------------------------------- +CORRECT_MASS_FLUX_FOR_HUMIDITY: 1 + +# Use when running a perturbation +# scenario with RRTMG's FDH or SEFDH +# options. Set to 0 to CALCULATE dynamical +# heating rates, set to 1 to READ rates +# calculated from the reference scenario +IMPORT_DYN_HEATING: 0 + AdvCore_Advection: 1 DYCORE: OFF HEARTBEAT_DT: 600 @@ -46,11 +68,18 @@ GCHPchem_REFERENCE_TIME: 121000 #----------------------------------------------------------------- PRINTRC: 0 -# Set the number of parallel I/O processes to use when -# RESTART_TYPE and or CHECKPOINT_TYPE are set to pbinary or pnc4 -#--------------------------------------------------------------- PARALLEL_READFORCING: 0 + +# Set the number of parallel I/O processes to use when reading restarts. +# Try something from 6 to 24 if reading a large restart file and have +# poor performance +#--------------------------------------------------------------- NUM_READERS: 1 + +# Set the number of parallel I/O processes to use when writing restarts. +# Try something from 6 to 24 if writing a large restart file and have +# poor performance +#--------------------------------------------------------------- NUM_WRITERS: 1 # Active observer when desired @@ -61,6 +90,10 @@ BKG_FREQUENCY: 0 #----------------------------------------------------------------- MAPL_ENABLE_BOOTSTRAP: YES +# Require all species in initial restart file (1 = yes; else no) +#----------------------------------------------------------------- +INITIAL_RESTART_SPECIES_REQUIRED: 0 + # Settings for production of restart files #--------------------------------------------------------------- # Record frequency (HHMMSS, or monthly) : Frequency of restart file write @@ -75,13 +108,13 @@ RECORD_REF_TIME: 000000 # ------------------------------------- GCHPchem_INTERNAL_RESTART_FILE: gchp_restart.nc4 GCHPchem_INTERNAL_RESTART_TYPE: pnc4 -GCHPchem_INTERNAL_CHECKPOINT_FILE: gcchem_internal_checkpoint +GCHPchem_INTERNAL_CHECKPOINT_FILE: Restarts/gcchem_internal_checkpoint GCHPchem_INTERNAL_CHECKPOINT_TYPE: pnc4 # GCHP dynamics (FV3) does not use a restart file because its internal state is empty #DYN_INTERNAL_RESTART_FILE: fvcore_internal_rst #DYN_INTERNAL_RESTART_TYPE: pbinary -#DYN_INTERNAL_CHECKPOINT_FILE: fvcore_internal_checkpoint +#DYN_INTERNAL_CHECKPOINT_FILE: Restarts/fvcore_internal_checkpoint #DYN_INTERNAL_CHECKPOINT_TYPE: pbinary #DYN_INTERNAL_HEADER: 1 @@ -105,6 +138,8 @@ MEMORY_DEBUG_LEVEL: 0 # # %%% Option to write restart files via o-server +# %%% This should only be necessary with certain MPI stacks. Try changing +# %%% this to true if writing checkpoints causes the run to hang. # WRITE_RESTART_BY_OSERVER: NO diff --git a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.CO2 b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.CO2 index 37bc6b6c5..848cbf736 100644 --- a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.CO2 +++ b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.CO2 @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: not_used Logfile: * DiagnPrefix: ./OutputDir/HEMCO_diagnostics DiagnFreq: Monthly @@ -36,8 +35,8 @@ Separator: / Unit tolerance: 1 Negative values: 2 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -46,13 +45,13 @@ Warnings: 1 ############################################################################### # ExtNr ExtName on/off Species Years avail. 0 Base : on * -# ----- MAIN SWITCHES ----------------------------------------- +# ----- MAIN SWITCHES --------------------------------------------------------- --> EMISSIONS : true --> METEOROLOGY : false --> CHEMISTRY_INPUT : true -# ----- RESTART FIELDS ---------------------------------------- +# ----- RESTART FIELDS -------------------------------------------------------- --> GC_RESTART : false -# ----- GLOBAL INVENTORIES ------------------------------------ +# ----- GLOBAL INVENTORIES ---------------------------------------------------- --> CMS_FLUX : true --> FOSSIL_ODIAC : false # 2000-2018 --> FOSSIL_CDIAC : false # 1980-2014 @@ -61,17 +60,49 @@ Warnings: 1 --> BBIO_DIURNAL : false # 1985 --> BBIO_SIB3 : false # 2006-2010 --> NET_TERR_EXCH : false # 2000 - --> AVIATION : false # 2005 --> CO2CORR : false # 2000-2018 -# ----- SHIP EMISSIONS ---------------------------------------- +# ----- AIRCRAFT EMISSIONS ---------------------------------------------------- +# There are 3 switches: +# +# 1. AEIC2019_DAILY selects daily AEIC 2019 emissions. For most simulations, +# this is not recommended due to the amount of computational overhead +# that will be incurred in regridding. But this may be useful for +# research purposes. Recommended setting: "AEIC2019_DAILY: false". +# +# 2. AEIC2019_MONMEAN selects monthly-mean AEIC 2019 emisisons, which will +# incur much less computational overhaead. This options should suffice +# for most simulations. Recommended setting "AEIC2019_MONMEAN: true". +# +# 3. AEIC_SCALE_1990_2019: If "false", the AEIC 2019 data from the year +# 2019 alone will be used. This will yield a "best estimate" of +# aviation emisssion. This could be important because simply scaling +# aviation emissions up and down is rather nonphysical. But if +# AEIC_SCALE_1990_2019 is set to true, then aviation emissions for +# 1990 to 2019 are estimated by: +# +# a. Scaling ALL aviation emissions based on the growth in fuelburn +# from 1990 to 2019* estimated by Lee et al. (2021); and +# +# b. Scaling aviation NOx emissions by an additional factor to reflect +# the changes in the NOx emissions index over the same period as +# reported by Lee et al. (2021). +# +# Recommended setting: "AEIC_SCALE_1990_2019: true" +# +# See additional notes in the AEIC scale factor section below. +#------------------------------------------------------------------------------ + --> AEIC2019_DAILY : false # 2019 (daily data) + --> AEIC2019_MONMEAN : true # 2019 (monthly-mean data) + --> AEIC_SCALE_1990_2019 : true # Scale to year in 1990-2019 +# ----- SHIP EMISSIONS -------------------------------------------------------- --> SHIP : false --> CEDS_SHIP : false # 1750-2014 --> ICOADS_SHIP : false # 2004 -# ----- NON-EMISSIONS DATA ------------------------------------ +# ----- NON-EMISSIONS DATA ---------------------------------------------------- --> CO2_COPROD : false # 2004-2009 --> OLSON_LANDMAP : false # 1985 --> YUAN_MODIS_LAI : false # 2000-2020 -# ---------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- 111 GFED : on CO2/CO2bb --> GFED4 : true --> GFED_daily : true @@ -126,7 +157,7 @@ Warnings: 1 )))FOSSIL_CDIAC (((FOSSIL_ODIAC -0 FOSSILCO2_ODIAC $ROOT/CO2/v2019-12/FOSSIL/ODIAC_CO2.monthly.generic.1x1.nc CO2 2000-2018/1-12/1/0 C xy kg/m2/s CO2 40/41/80 1 2 +0 FOSSILCO2_ODIAC $ROOT/CO2/v2022-11/FOSSIL/ODIAC_CO2.monthly.generic.1x1.nc CO2 2000-2018/1-12/1/0 C xy kg/m2/s CO2 40/41/80 1 2 0 FOSSILCO2FF_ODIAC - - - - - - CO2ff 40/41/80 1 2 )))FOSSIL_ODIAC @@ -140,14 +171,14 @@ Warnings: 1 # ---> Recommended option: scaled ocean exchange (set OCEAN_EXCH_SCALED = true) #============================================================================== (((OCEAN_EXCH_TAKA09 -0 OCEANCO2_TAKA_ANNUAL $ROOT/CO2/v2014-09/OCEAN/Taka2009_CO2_Annual.nc CO2 2000/1/1/0 C xy kg/m2/s CO2 - 2 1 +0 OCEANCO2_TAKA_ANNUAL $ROOT/CO2/v2022-11/OCEAN/Taka2009_CO2_Annual.nc CO2 2000/1/1/0 C xy kg/m2/s CO2 - 2 1 0 OCEANCO2OC_TAKA_ANNUAL - - - - - - CO2oc - 2 1 -0 OCEANCO2_TAKA_MONTHLY $ROOT/CO2/v2014-09/OCEAN/Taka2009_CO2_Monthly.nc CO2 2000/1-12/1/0 C xy kg/m2/s CO2 - 2 2 +0 OCEANCO2_TAKA_MONTHLY $ROOT/CO2/v2022-11/OCEAN/Taka2009_CO2_Monthly.nc CO2 2000/1-12/1/0 C xy kg/m2/s CO2 - 2 2 0 OCEANCO2OC_TAKA_MONTHLY - - - - - - CO2oc - 2 2 )))OCEAN_EXCH_TAKA09 (((OCEAN_EXCH_SCALED -0 OCEANCO2_SCALED_MONTHLY $ROOT/CO2/v2015-04/OCEAN/Scaled_Ocean_CO2_monthly.nc CO2 2000-2013/1-12/1/0 C xy kg/m2/s CO2 - 2 3 +0 OCEANCO2_SCALED_MONTHLY $ROOT/CO2/v2022-11/OCEAN/Scaled_Ocean_CO2_monthly.nc CO2 2000-2013/1-12/1/0 C xy kg/m2/s CO2 - 2 3 0 OCEANCO2OC_SCALED_MONTHLY - - - - - - CO2oc - 2 3 )))OCEAN_EXCH_SCALED @@ -169,7 +200,7 @@ Warnings: 1 )))BBIO_DIURNAL (((BBIO_SIB3 -0 SIB_BBIO_CO2 $ROOT/CO2/v2015-04/BIO/SiB3_3hr_NEP.nc CO2 2006-2010/1-12/1-31/0-23 C xy kg/m2/s CO2 - 3 1 +0 SIB_BBIO_CO2 $ROOT/CO2/v2022-11/BIO/SiB3_3hr_NEP.nc CO2 2006-2010/1-12/1-31/0-23 C xy kg/m2/s CO2 - 3 1 0 SIB_BBIO_CO2BAL - - - - - - CO2bal - 3 1 )))BBIO_SIB3 @@ -182,7 +213,7 @@ Warnings: 1 # inversion/assimilation #============================================================================== (((NET_TERR_EXCH -0 CO2_NET_TERRESTRIAL $ROOT/CO2/v2015-04/BIO/Net_terrestrial_exch_5.29Pg.generic.1x1.nc CO2 2000/1/1/0 C xy kg/m2/s CO2nte - 5 1 +0 CO2_NET_TERRESTRIAL $ROOT/CO2/v2022-11/BIO/Net_terrestrial_exch_5.29Pg.generic.1x1.nc CO2 2000/1/1/0 C xy kg/m2/s CO2nte - 5 1 0 CO2NTE_NET_TERRESTRIAL - - - - - - CO2 - 5 1 )))NET_TERR_EXCH @@ -198,23 +229,27 @@ Warnings: 1 )))ICOADS_SHIP (((CEDS_SHIP -0 CEDS_CO2_SHP $ROOT/CEDS/v2018-08/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_shp 1750-2014/1-12/1/0 C xy kg/m2/s CO2 - 6 1 +0 CEDS_CO2_SHP $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_shp 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 6 1 0 CEDS_CO2SE_SHIP - - - - - - CO2se - 6 1 )))CEDS_SHIP )))SHIP #============================================================================== -# --- AVIATION EMISSIONS --- +# --- AEIC 2019 aircraft emissions --- # -# Aviation fuel burn spatial and seaonal distribution from AEIC (Simone et al. -# 2013) scaled with global annual CO2 emission totals calculated from the IEA -# (Olsen et al., 2013) +# Data files are for 2019, but scale factors from 1990-2019 can be applied +# in order to get year-specific emissions. See the notes in the AEIC2019 +# scale factor section below for more information. #============================================================================== -(((AVIATION -0 AEIC_CO2 $ROOT/AEIC/v2015-01/AEIC.47L.gen.1x1.nc FUELBURN 2005/1-12/1/0 C xyz kg/m2/s CO2 60/70 7 1 -0 AEIC_CO2AV - - - - - - CO2av 60/70 7 1 -)))AVIATION +(((AEIC2019_DAILY +0 AEIC19_DAILY_CO2 $ROOT/AEIC2019/v2022-03/2019/AEIC_2019$MM$DD.0.5x0.625.36L.nc FUELBURN 2019/1-12/1-31/0 C xyz kg/m2/s CO2 241/60 20 1 +0 AEIC19_DAILY_CO2AV - - - - - - CO2av 241/60 20 1 +)))AEIC2019_DAILY +(((AEIC2019_MONMEAN +0 AEIC19_MONMEAN_CO2 $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc FUELBURN 2019/1-12/1/0 C xyz kg/m2/s CO2 241/60 20 1 +0 AEIC19_MONMEAN_CO2AV - - - - - - CO2av 241/60 20 1 +)))AEIC2019_MONMEAN #============================================================================== # --- CO2 SURFACE CORRECTION FOR CO OXIDATION --- @@ -231,21 +266,21 @@ Warnings: 1 # to make these emissions negative, so that they will be subtracted. =============================================================================== (((CO2CORR -0 FOSSILCO2_MONTHLY $ROOT/CO2/v2019-12/FOSSIL/ODIAC_CO2.monthly.generic.1x1.nc CO2 2000-2018/1-12/1/0 C xy kg/m2/s CO2 10/40/41/80/90 8 1 +0 FOSSILCO2_MONTHLY $ROOT/CO2/v2022-11/FOSSIL/ODIAC_CO2.monthly.generic.1x1.nc CO2 2000-2018/1-12/1/0 C xy kg/m2/s CO2 10/40/41/80/90 8 1 0 FOSSILCO2CORR_MONTHLY - - - - - - CO2corr 10/40/41/80/90 8 1 -0 CO2_LIVESTOCK $ROOT/CO2/v2015-04/CHEM/CH4_source.geos.2x25.nc CH4_004 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2_LIVESTOCK $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_004 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 0 CO2CORR_LIVESTOCK - - - - - - CO2corr 20/90 8 1 -0 CO2_WASTE $ROOT/CO2/v2015-04/CHEM/CH4_source.geos.2x25.nc CH4_005 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2_WASTE $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_005 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 0 CO2CORR_WASTE - - - - - - CO2corr 20/90 8 1 -0 CO2_RICE $ROOT/CO2/v2015-04/CHEM/CH4_source.geos.2x25.nc CH4_007 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2_RICE $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_007 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 0 CO2CORR_RICE - - - - - - CO2corr 20/90 8 1 -0 CO2_WETLANDS $ROOT/CO2/v2015-04/CHEM/CH4_source.geos.2x25.nc CH4_010 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2_WETLANDS $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_010 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 0 CO2CORR_WETLANDS - - - - - - CO2corr 20/90 8 1 -0 CO2_NATURAL $ROOT/CO2/v2015-04/CHEM/CH4_source.geos.2x25.nc CH4_012 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2_NATURAL $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_012 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 0 CO2CORR_NATURAL - - - - - - CO2corr 20/90 8 1 -0 CO2_ISOPRENE $ROOT/CO2/v2015-04/CHEM/Isoprene-2004.geos.2x25.nc ISOP 2004/1-12/1/0 C xy kg/m2/s CO2 21/30/90 8 1 +0 CO2_ISOPRENE $ROOT/CO2/v2022-11/CHEM/Isoprene-2004.geos.2x25.nc ISOP 2004/1-12/1/0 C xy kg/m2/s CO2 21/30/90 8 1 0 CO2CORR_ISOPRENE - - - - - - CO2corr 21/30/90 8 1 -0 CO2_MONOTERP $ROOT/CO2/v2015-04/CHEM/Monoterpene-2004.geos.2x25.nc MONOT 2004/1-12/1/0 C xy kg/m2/s CO2 21/30/90 8 1 +0 CO2_MONOTERP $ROOT/CO2/v2022-11/CHEM/Monoterpene-2004.geos.2x25.nc MONOT 2004/1-12/1/0 C xy kg/m2/s CO2 21/30/90 8 1 0 CO2CORR_MONOTERP - - - - - - - 21/30/90 8 1 )))CO2CORR @@ -264,19 +299,19 @@ Warnings: 1 # NOTE: These are the base emissions in kgDM/m2/s. #============================================================================== (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2010-2023/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2010-2023/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 @@ -316,109 +351,14 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 - -(((METEOROLOGY - -#============================================================================== -# --- Meteorology fields --- -#============================================================================== -# --- CN fields --- -* FRLAKE $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FRLAKE */1/1/0 C xy 1 * - 1 1 -* FRLAND $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FRLAND */1/1/0 C xy 1 * - 1 1 -* FRLANDIC $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FRLANDIC */1/1/0 C xy 1 * - 1 1 -* FROCEAN $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FROCEAN */1/1/0 C xy 1 * - 1 1 -* PHIS $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC PHIS */1/1/0 C xy 1 * - 1 1 - -# --- A1 fields --- -* ALBEDO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC ALBEDO 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* CLDTOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC CLDTOT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* EFLUX $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC EFLUX 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* EVAP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC EVAP 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* FRSEAICE $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC FRSEAICE 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* FRSNO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC FRSNO 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* GRN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GRN 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* GWETROOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GWETROOT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* GWETTOP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GWETTOP 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* HFLUX $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC HFLUX 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* LAI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC LAI 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* LWGNT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC LWGNT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PARDF $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PARDF 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PARDR $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PARDR 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PBLH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PBLH 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECANV $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECANV 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECCON $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECCON 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECLSC $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECLSC 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECSNO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECSNO 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECTOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECTOT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE00 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE00 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE10 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE10 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE20 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE20 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE30 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE30 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE40 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE40 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE50 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE50 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE60 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE60 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE70 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE70 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE80 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE80 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE90 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE90 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SLP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SLP 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SNODP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SNODP 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SNOMAS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SNOMAS 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SWGDN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SWGDN 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* TO3 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TO3 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* TROPPT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TROPPT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* TS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TS 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* T2M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC T2M 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* U10M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC U10M 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* USTAR $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC USTAR 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* V10M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC V10M 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* Z0M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC Z0M 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 - -# --- A3cld fields --- -* CLOUD $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC CLOUD 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* OPTDEPTH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC OPTDEPTH 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* QI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC QI 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* QL $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC QL 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* TAUCLI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC TAUCLI 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* TAUCLW $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC TAUCLW 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 - -# --- A3dyn fields --- -* DTRAIN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC DTRAIN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* OMEGA $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC OMEGA 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* RH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC RH 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* U $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC U 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* V $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC V 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 - -# --- A3mstC fields --- -* DQRCU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC DQRCU 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* DQRLSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC DQRLSAN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* REEVAPCN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC REEVAPCN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* REEVAPLS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC REEVAPLS 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 - -# --- A3mstE fields --- -* CMFMC $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC CMFMC 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* PFICU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFICU 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* PFILSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFILSAN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* PFLCU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFLCU 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* PFLLSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFLLSAN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 - -# --- I3 fields --- -* PS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC PS 1980-2020/1-12/1-31/* RFY xy 1 * - 1 1 -* SPHU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC QV 1980-2020/1-12/1-31/* RFY xyz 1 * - 1 1 -* TMPU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC T 1980-2020/1-12/1-31/* RFY xyz 1 * - 1 1 - -* PS_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC PS 1980-2020/1-12/1-31/1/+1day RFY xy 1 * - 1 1 -* SPHU_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC QV 1980-2020/1-12/1-31/1/+1day RFY xyz 1 * - 1 1 -* TMPU_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC T 1980-2020/1-12/1-31/1/+1day RFY xyz 1 * - 1 1 - -)))METEOROLOGY +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- GEOS-Chem restart file --- #============================================================================== (((GC_RESTART -* SPC_ ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesRst_?ALL? $YYYY/$MM/$DD/$HH EFYO xyz 1 * - 1 1 -* DELPDRY ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Met_DELPDRY $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 +* SPC_ ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesRst_?ALL? $YYYY/$MM/$DD/$HH EFYO xyz 1 * - 1 1 +* DELPDRY ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Met_DELPDRY $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 )))GC_RESTART #============================================================================== @@ -664,20 +604,45 @@ Warnings: 1 50 CO2_SHIP_SCALE 1.043/1.068/1.094/1.128/1.154/1.180/1.205/1.231/1.265/1.291/1.316/1.342/1.368/1.393/1.427/1.453/1.479/1.504/1.530/1.556/1.590/1.615/1.641/1.667/1.641 - 1985-2009/1/1/0 C xy 1 1 )))ICOADS_SHIP -(((AVIATION #============================================================================== -# --- AVIATION FUEL BURN SCALE FACTOR ( kg C / kg fuel ) --- -#============================================================================== -60 AEIC_CO2_SCALE 3.155 - - - xy unitless 1 - -#============================================================================== -# --- AVIATION GLOBAL ANNUAL EMISSION SCALE FACTOR --- +# --- AEIC2019 aircraft emissions scale factors --- # -# AEIC global annual emissions 0.15574 TgC for 2005 -# IEA values from Olsen et al. (2013) to scale 1990-2008 +# See http://geoschemdata.wustl.edu/ExtData/HEMCO/AEIC2019/v2022-03/AEIC_2019_technical_note.pdf #============================================================================== -70 CO2_AVIATION_SCALE 0.9034/0.8867/0.8923/0.9034/0.9759/1.0038/1.0596/1.0875/1.1154/1.1544/1.1990/1.1711/1.1711/1.1711/1.2492/1.3105/1.3273/1.3496/1.3440 - 1990-2008/1/1/0 C xy 1 1 -)))AVIATION +(((AEIC2019_DAILY.or.AEIC2019_MONMEAN +#------------------------------------------------------------------------------ +# Assume 3.159 kg CO2 from every kg of fuel burned +# cf Hileman, Stratton, & Donohoo, _J. Propul. Power_, 26(6), 1184–1196, 2010. +#------------------------------------------------------------------------------ +60 AEIC19_FBtoCO2 3.159 - - - xy unitless 1 + +#------------------------------------------------------------------------------ +# Scaling factors for 1990-2019 derived from Lee et al. (2021). Lee et al. +# (2021) only covers 1990 to 2018, so to get to 2019 it is assumed that the +# growth from 2017 to 2018 is the same as that from 2018 to 2019. +# So the formula is something like: +# +# Emissions of CO in 2009 = AEIC 2019 emissions of CO +# * (Lee 2017 CO / Lee 2018 fuel burn) +# * (Lee 2009 fuel burn / Lee 2018 fuel burn) +# +# So in this case, we use the Lee 2017/Lee 2018 value to scale AEIC’s +# emissions to the “2018” values, and then scale directly using the Lee et al +# fuel burn. This ensures that, when running with year 2019, you get an +# unadjusted version of the AEIC2019 inventory, and all previous years are +# scaled down. +# +# All scaling factors are included in here in HEMCO_Config.rc. +#------------------------------------------------------------------------------ +(((AEIC_SCALE_1990_2019 +241 AC_FBMULT 0.506/0.489/0.490/0.493/0.517/0.529/0.553/0.570/0.581/0.600/0.631/0.607/0.608/0.608/0.646/0.678/0.686/0.706/0.703/0.666/0.700/0.721/0.728/0.749/0.773/0.815/0.854/0.905/0.952/1.000 - 1990-2019/1/1/0 C xy 1 1 +)))AEIC_SCALE_1990_2019 + +# If not applying 1990-2019 scale factors, use 1.0 +(((.not.AEIC_SCALE_1990_2019 +241 AC_FBMULT 1.000000e+0 - - - xy 1 1 +))).not.AEIC_SCALE_1990_2019 +)))AEIC2019_DAILY.or.AEIC2019_MONMEAN #============================================================================== # --- DOMESTIC AVIATION SURFACE CORRECTION FACTOR --- diff --git a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.TransportTracers b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.TransportTracers index 8ffaa3d2f..e293796a3 100644 --- a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.TransportTracers +++ b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.TransportTracers @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: not_used Logfile: * DiagnFile: HEMCO_Diagn.rc DiagnPrefix: ./OutputDir/HEMCO_diagnostics @@ -37,8 +36,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -50,7 +49,6 @@ Warnings: 1 # ----- MAIN SWITCHES --------------------------------------------------------- --> EMISSIONS : true --> METEOROLOGY : false - --> CHEMISTRY_INPUT : true # ----- RESTART FIELDS -------------------------------------------------------- --> GC_RESTART : false # ----- GLOBAL INVENTORIES ---------------------------------------------------- @@ -64,7 +62,7 @@ Warnings: 1 --> OLSON_LANDMAP : false # 1985 --> YUAN_MODIS_LAI : false # 2000-2020 #------------------------------------------------------------------------------ -100 GC_Rn-Pb-Be : on Rn222/Be7/Be7Strat/Be10/Be10Strat +100 GC_Rn-Pb-Be : on Rn222/Be7/Be7s/Be10/Be10s # ----- Always Leave Extension 100 turned on. Furthermore: # ----- Turning on ZHANG_Rn222 will use Zhang et al [2020] Rn222 emissions # ----- Turning off ZHANG_Rn222 will use default emissions (Jacob et al [1997]) @@ -84,14 +82,14 @@ Warnings: 1 # SF6 emissions from EDGAR v4.2 #============================================================================== (((EDGARv42_SF6 -0 EDGAR_SF6 $ROOT/SF6/v2019-01/EDGAR_v42_SF6_IPCC_2.generic.01x01.nc emi_sf6 1970-2008/1/1/0 C xy kg/m2/s SF6Tracer - 1 1 +0 EDGAR_SF6 $ROOT/SF6/v2019-01/EDGAR_v42_SF6_IPCC_2.generic.01x01.nc emi_sf6 1970-2008/1/1/0 C xy kg/m2/s SF6 - 1 1 )))EDGARv42_SF6 #============================================================================== # CH3I emitted over the oceans at rate of 1 molec/cm2/s #============================================================================== (((OCEAN_CH3I -0 SRC_2D_CH3I 1.0 - - - xy molec/cm2/s CH3ITracer 1000 1 1 +0 SRC_2D_CH3I 1.0 - - - xy molec/cm2/s CH3I 1000 1 1 )))OCEAN_CH3I #============================================================================== @@ -100,71 +98,47 @@ Warnings: 1 # Choose CEDS, EDGAR, or HTAP #============================================================================== (((CEDSv2 -0 CEDS_CO25d_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_AGR - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_ENE - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_IND - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_TRA - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_RCO - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_SLV - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_WST - - - - - - COAnthroEmis50dayTracer 26 1 5 -0 CEDS_CO25d_SHP $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_shp 1750-2019/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 26 1 5 -0 CEDS_CO50d_SHP - - - - - - COAnthroEmis50dayTracer 26 1 5 +0 CEDS_CO_25_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_AGR - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_ENE - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_IND - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_TRA - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_RCO - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_SLV - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_WST - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_SHP $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_shp 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_SHP - - - - - - CO_50 26 1 5 )))CEDSv2 (((EDGARv43 -0 EDGAR_CO25d_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1201/26/52 1/2 2 -0 EDGAR_CO50d_POW - - - - - - COAnthroEmis50dayTracer 1201/26/52 1/2 2 -0 EDGAR_CO25d_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1202/26/52 1/2 2 -0 EDGAR_CO50d_ENG - - - - - - COAnthroEmis50dayTracer 1202/26/52 1/2 2 -0 EDGAR_CO25d_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1203/26/52 1/2 2 -0 EDGAR_CO50d_IND - - - - - - COAnthroEmis50dayTracer 1203/26/52 1/2 2 -0 EDGAR_CO25d_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1204/26/52 1/2 2 -0 EDGAR_CO50d_TRO - - - - - - COAnthroEmis50dayTracer 1204/26/52 1/2 2 -0 EDGAR_CO25d_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1205/26/52 1/2 2 -0 EDGAR_CO50d_TNG - - - - - - COAnthroEmis50dayTracer 1205/26/52 1/2 2 -0 EDGAR_CO25d_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1206/26/52 1/2 2 -0 EDGAR_CO50d_RCO - - - - - - COAnthroEmis50dayTracer 1206/26/52 1/2 2 -0 EDGAR_CO25d_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1207/26/52 1/2 2 -0 EDGAR_CO50d_PPA - - - - - - COAnthroEmis50dayTracer 1207/26/52 1/2 2 -#0 EDGAR_CO25d_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.AWB.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1209/26/52 1/2 2 -#0 EDGAR_CO50d_AWB - - - - - - COAnthroEmis50dayTracer 1209/26/52 1/2 2 -0 EDGAR_CO25d_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1211/26/52 1/2 2 -0 EDGAR_CO50d_SWD - - - - - - COAnthroEmis50dayTracer 1211/26/52 1/2 2 -0 EDGAR_CO25d_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 1212/26/52 1/2 2 -0 EDGAR_CO50d_FFF - - - - - - COAnthroEmis50dayTracer 1211/26/52 1/2 2 +0 EDGAR_CO_25_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1201/26/52 1/2 2 +0 EDGAR_CO_50_POW - - - - - - CO_50 1201/26/52 1/2 2 +0 EDGAR_CO_25_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1202/26/52 1/2 2 +0 EDGAR_CO_50_ENG - - - - - - CO_50 1202/26/52 1/2 2 +0 EDGAR_CO_25_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1203/26/52 1/2 2 +0 EDGAR_CO_50_IND - - - - - - CO_50 1203/26/52 1/2 2 +0 EDGAR_CO_25_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1204/26/52 1/2 2 +0 EDGAR_CO_50_TRO - - - - - - CO_50 1204/26/52 1/2 2 +0 EDGAR_CO_25_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1205/26/52 1/2 2 +0 EDGAR_CO_50_TNG - - - - - - CO_50 1205/26/52 1/2 2 +0 EDGAR_CO_25_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1206/26/52 1/2 2 +0 EDGAR_CO_50_RCO - - - - - - CO_50 1206/26/52 1/2 2 +0 EDGAR_CO_25_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1207/26/52 1/2 2 +0 EDGAR_CO_50_PPA - - - - - - CO_50 1207/26/52 1/2 2 +#0 EDGAR_CO_25_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.AWB.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1209/26/52 1/2 2 +#0 EDGAR_CO_50_AWB - - - - - - CO_50 1209/26/52 1/2 2 +0 EDGAR_CO_25_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1211/26/52 1/2 2 +0 EDGAR_CO_50_SWD - - - - - - CO_50 1211/26/52 1/2 2 +0 EDGAR_CO_25_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1212/26/52 1/2 2 +0 EDGAR_CO_50_FFF - - - - - - CO_50 1211/26/52 1/2 2 )))EDGARv43 -(((HTAP -0 HTAP_CO25d_IND $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_INDUSTRY.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -0 HTAP_CO50d_IND - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -0 HTAP_CO25d_POW $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_ENERGY.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -0 HTAP_CO50d_POW - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -0 HTAP_CO25d_RES $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_RESIDENTIAL.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -0 HTAP_CO50d_RES - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -0 HTAP_CO25d_TRA $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_TRANSPORT.generic.01x01.nc emi_co 2008-2010/1-12/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -0 HTAP_CO50d_TRA - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -#0 HTAP_CO25d_AIR1 $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_LTO.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -#0 HTAP_CO50d_AIR1 - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -#0 HTAP_CO25d_AIR2 $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CDS.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -#0 HTAP_CO50d_AIR2 - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -#0 HTAP_CO25d_AIR3 $ROOT/HTAP/v2015-03/CO/EDGAR_HTAP_CO_AIR_CRS.generic.01x01.nc emi_co 2008-2010/1/1/0 C xy kg/m2/s COAnthroEmis25dayTracer 6/28/26 1/2 4 -#0 HTAP_CO50d_AIR3 - - - - - - COAnthroEmis50dayTracer 6/28/26 1/2 4 -)))HTAP - -#============================================================================== -# CO tracer with uniform surface emission of 2400 Tg/yr -#============================================================================== -(((UNIFORM_CO -0 SRC_2D_COUniform25d 1.5e-7 - - - xy kg/m2/s COUniformEmis25dayTracer - 1 1 -)))UNIFORM_CO - ############################################################################### ### EXTENSION DATA (subsection of BASE EMISSIONS SECTION) ### @@ -198,14 +172,14 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- GEOS-Chem restart file --- #============================================================================== (((GC_RESTART -* SPC_ ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesRst_?ALL? $YYYY/$MM/$DD/$HH EFYO xyz 1 * - 1 1 -* DELPDRY ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Met_DELPDRY $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 +* SPC_ ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesRst_?ALL? $YYYY/$MM/$DD/$HH EFYO xyz 1 * - 1 1 +* DELPDRY ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Met_DELPDRY $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 )))GC_RESTART #============================================================================== @@ -444,7 +418,7 @@ Warnings: 1 (((EMISSIONS (((OCEAN_CH3I -1000 OCEAN_MASK $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FROCEAN 2000/1/1/0 C xy 1 1 -180/-90/180/90 +${RUNDIR_OCEAN_MASK} )))OCEAN_CH3I )))EMISSIONS diff --git a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon index 68bd79c59..334d9c7d3 100644 --- a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon +++ b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon @@ -27,7 +27,8 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: not_used +GCAPSCENARIO: not_used +GCAPVERTRES: not_used Logfile: * DiagnFile: HEMCO_Diagn.rc DiagnPrefix: ./OutputDir/HEMCO_diagnostics @@ -37,8 +38,8 @@ Separator: / Unit tolerance: 1 Negative values: 2 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all Mask fractions: false ### END SECTION SETTINGS ### @@ -58,18 +59,23 @@ Mask fractions: false --> USE_OCS_DATA : true # 2012-2016 # ----- RESTART FIELDS -------------------------------------------------------- --> GC_RESTART : false + --> HEMCO_RESTART : false +# ----- NESTED GRID FIELDS ---------------------------------------------------- + --> GC_BCs : false # ----- CH4 INVENTORIES AND DATA ---------------------------------------------- # ..... Regional Inventories ......... - --> GEPA : true # 2012 + --> GHGI_v2 : false # 2012-2018 + --> GHGI_v2_Express_Ext : true # 2012-2020 --> Scarpelli_Canada : true # 2018 --> Scarpelli_Mexico : true # 2015 # ..... Global Inventories ........... --> GFEIv2 : true # 2019 - --> EDGARv6 : true # 2000-2018 - --> UPDATED_GFED4 : true # 2009-2019 + --> EDGARv8 : true # 2010-2022 + --> QFED2 : false # 2009-2015 --> JPL_WETCHARTS : true # 2009-2017 --> SEEPS : true # 2012 --> LAKES : false # 2009-2015 + --> RESERVOIRS : true # 2022 --> FUNG_TERMITES : true # 1985 --> FUNG_SOIL_ABSORPTION : false # 2009-2015 --> MeMo_SOIL_ABSORPTION : true # 1990-2009 or clim. @@ -77,12 +83,8 @@ Mask fractions: false --> CMIP6_SHIP : false # 1850-2100 --> BB4MIPS : false # 1850-2100 # ..... Non-Emissions Data ........... - --> GMI_CH4_LOSS : true # 1985 + --> CH4_LOSS_FREQ : true # 1985 --> GLOBAL_CL : true # 2010-2019 -# ..... Options for the IMI .......... - --> AnalyticalInv : false - --> Emis_ScaleFactor : false - --> OH_ScaleFactor : false # ----- CO and CO2-only INVENTORIES AND DATA ---------------------------------- # ..... Global inventories ........... --> AEIC2019_DAILY : false # 2019 (daily data) @@ -129,8 +131,13 @@ Mask fractions: false # ----- NON-EMISSIONS DATA ---------------------------------------------------- --> OLSON_LANDMAP : false # 1985 --> YUAN_MODIS_LAI : false # 2000-2020 - --> GLOBAL_OH : true # 2010-2019 - --> GLOBAL_OH_GCv5 : false # 1985 (GCv5 OH, need for IMI) + --> GLOBAL_OH_GC14 : false # 2010-2019 + --> GLOBAL_OH_GCv5 : true # 1985 (recommended for CH4) +# ----- Options for analytical inversions ------------------------------------- + --> AnalyticalInversion : false + --> UseTotalPriorEmis : false # Skips global/regional inventories + --> Emis_PosteriorSF : false # Apply posterior scale factors to total emis? + --> OH_PosteriorSF : false # Apply posterior scale factor to global OH? # ----------------------------------------------------------------------------- 111 GFED : on CH4/CO/CO2 --> GFED4 : true @@ -154,107 +161,240 @@ Mask fractions: false (((USE_CH4_DATA #============================================================================== -# --- CH4: Gridded EPA (Maasakkers et al., Environ. Sci. Technol., 2016) --- +# ---Total CH4 emissions (all sectors) from prior simulation --- +#============================================================================== +(((UseTotalPriorEmis + +(((Emis_PosteriorSF +0 CH4_Emis_Prior ../../prior_run/OutputDir/HEMCO_sa_diagnostics.$YYYY$MM$DD0000.nc EmisCH4_Total $YYYY/$MM/$DD/0 C xy kg/m2/s CH4 3 1 500 +)))Emis_PosteriorSF + +(((.not.Emis_PosteriorSF +0 CH4_Emis_Prior ../../prior_run/OutputDir/HEMCO_sa_diagnostics.$YYYY$MM$DD0000.nc EmisCH4_Total $YYYY/$MM/$DD/0 C xy kg/m2/s CH4 - 1 500 +))).not.Emis_PosteriorSF + +)))UseTotalPriorEmis + +(((.not.UseTotalPriorEmis + +#============================================================================== +# --- CH4: Gridded GHGI v2 (Maasakkers et al., submitted to ES&T, 2023) --- +# +# NOTES: +# - This is the main Gridded GHGI v2 dataset based off the US GHGI +# published in 2020 +# - Use Hier=100 to add to Canada and Mexico regional inventories +# - Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, +# Hier=5 to add to GFEI; mask=1009) ### +#============================================================================== +(((GHGI_v2 +### Oil ### +0 GHGI_OIL_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Exploration 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 51/1008 1 100 +0 GHGI_COAST_OIL_EXPLORATION - - - - - - CH4 51/1009 1 5 +0 GHGI_OIL_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Production 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 52/1008 1 100 +0 GHGI_COAST_OIL_PRODUCTION - - - - - - CH4 52/1009 1 5 +0 GHGI_OIL_REFINING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Refining 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 53/1008 1 100 +0 GHGI_COAST_OIL_REFINING - - - - - - CH4 53/1009 1 5 +0 GHGI_OIL_TRANSPORT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Transport 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 54/1008 1 100 +0 GHGI_COAST_OIL_TRANSPORT - - - - - - CH4 54/1009 1 5 + +### Gas ### +0 GHGI_GAS_DISTRIBUTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Distribution 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 2 100 +0 GHGI_COAST_GAS_DISTRIBUTION - - - - - - CH4 1009 2 5 +0 GHGI_GAS_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Exploration 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 55/1008 2 100 +0 GHGI_COAST_GAS_EXPLORATION - - - - - - CH4 55/1009 2 5 +0 GHGI_GAS_PROCESSING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Processing 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 2 100 +0 GHGI_COAST_GAS_PROCESSING - - - - - - CH4 1009 2 5 +0 GHGI_GAS_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Production 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 56/1008 2 100 +0 GHGI_COAST_GAS_PRODUCTION - - - - - - CH4 56/1009 2 5 +0 GHGI_GAS_TRANSMISSION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_TransmissionStorage 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 2 100 +0 GHGI_COAST_GAS_TRANSMISSION - - - - - - CH4 1009 2 5 + +### Coal ### +0 GHGI_COAL_UNDERGROUND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Underground_Coal 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAST_COAL_UNDERGROUND - - - - - - CH4 1009 3 5 +0 GHGI_COAL_SURFACE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Surface_Coal 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAST_COAL_SURFACE - - - - - - CH4 1009 3 5 +0 GHGI_COAL_ABANDONED $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Abandoned_Coal 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 3 100 +0 GHGI_COAST_COAL_ABANDONED - - - - - - CH4 1009 3 5 + +### Livestock ### +0 GHGI_LIVESTOCK_ENT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3A_Enteric_Fermentation 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 4 100 +0 GHGI_COAST_LIVESTOCK_ENT - - - - - - CH4 1009 4 1 +0 GHGI_LIVESTOCK_MAN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3B_Manure_Management 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 57/1008 4 100 +0 GHGI_COAST_LIVESTOCK_MAN - - - - - - CH4 57/1009 4 1 + +### Landfills ### +0 GHGI_LANDFILLS_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_Industrial 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 5 100 +0 GHGI_COAST_LANDFILLS_IND - - - - - - CH4 1009 5 1 +0 GHGI_LANDFILLS_MSW $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_MSW 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 5 100 +0 GHGI_COAST_LANDFILLS_MSW - - - - - - CH4 1009 5 1 +0 GHGI_LANDFILLS_COMP $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5B1_Composting 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 5 100 +0 GHGI_COAST_LANDFILLS_COMP - - - - - - CH4 1009 5 1 + +### Wastewater ### +0 GHGI_WASTEWATER_DOM $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Domestic 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 6 100 +0 GHGI_COAST_WASTEWATER_DOM - - - - - - CH4 1009 6 1 +0 GHGI_WASTEWATER_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Industrial 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 6 100 +0 GHGI_COAST_WASTEWATER_IND - - - - - - CH4 1009 6 1 + +### Rice ### +0 GHGI_RICE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3C_Rice_Cultivation 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 58/1008 7 100 +0 GHGI_COAST_RICE - - - - - - CH4 58/1009 7 1 + +### Other Anthro ### +0 GHGI_OTHER_MCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Mobile 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_MCOMB - - - - - - CH4 1009 8 1 +0 GHGI_OTHER_SCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Stationary 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 50/1008 8 100 +0 GHGI_COAST_OTHER_SCOMB - - - - - - CH4 50/1009 8 1 +0 GHGI_OTHER_PIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2B8_Industry_Petrochemical 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_PIND - - - - - - CH4 1009 8 1 +0 GHGI_OTHER_FIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2C2_Industry_Ferroalloy 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_FIND - - - - - - CH4 1009 8 1 +0 GHGI_OTHER_BURN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3F_Field_Burning 2012-2018/1-12/1/0 EFY xy molec/cm2/s CH4 59/1008 8 100 +0 GHGI_COAST_OTHER_BURN - - - - - - CH4 59/1009 8 1 +0 GHGI_OTHER_ABOG $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2ab_Abandoned_Oil_Gas 2012-2018/1/1/0 EFY xy molec/cm2/s CH4 1008 8 100 +0 GHGI_COAST_OTHER_ABOG - - - - - - CH4 1009 8 1 +)))GHGI_v2 + +#======================================================================================= +# --- CH4: Gridded GHGI v2 Express Extension (Maasakkers et al., submitted to ES&T, 2023) --- # # NOTES: -# - Do not use GEPA forest fire emissions. Use QFED instead. -# - Apply seasonal scale factors to manure and rice emissions -#============================================================================== -(((GEPA -0 GEPA_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1008 1 50 -0 GEPA_GAS_PRODUCTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 50 -0 GEPA_GAS_PROCESSING $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 50 -0 GEPA_GAS_TRANSMISSION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 50 -0 GEPA_GAS_DISTRIBUTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 50 -0 GEPA_COAL_UNDERGROUND $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 50 -0 GEPA_COAL_SURFACE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 50 -0 GEPA_COAL_ABANDONED $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 50 -0 GEPA_LIVESTOCK__4A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1008 4 50 -0 GEPA_LIVESTOCK__4B $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1008 4 50 -0 GEPA_LANDFILLS_MUNI $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 50 -0 GEPA_LANDFILLS_INDU $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 50 -0 GEPA_WASTEWATER_DOME $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 50 -0 GEPA_WASTEWATER_INDU $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 50 -0 GEPA_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1008 7 50 -0 GEPA_OTHER__1A_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 50 -0 GEPA_OTHER__1A_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 50 -0 GEPA_OTHER__2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 50 -0 GEPA_OTHER__2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 50 -0 GEPA_OTHER__4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1008 8 50 -#0 GEPA_OTHER__5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1008 9 50 -0 GEPA_OTHER__6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 50 -0 GEPA_COAST_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1009 1 1 -0 GEPA_COAST_GAS_PR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 1 -0 GEPA_COAST_GAS_PC $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 1 -0 GEPA_COAST_GAS_TR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 1 -0 GEPA_COAST_GAS_DS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 1 -0 GEPA_COAST_COAL_U $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 1 -0 GEPA_COAST_COAL_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 1 -0 GEPA_COAST_COAL_A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 1 -0 GEPA_COAST_LVSTK_F $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1009 4 1 -0 GEPA_COAST_LVSTK_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1009 4 1 -0 GEPA_COAST_LDF_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 1 -0 GEPA_COAST_LDF_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 1 -0 GEPA_COAST_WSTW_D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 1 -0 GEPA_COAST_WSTW_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 1 -0 GEPA_COAST_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1009 7 1 -0 GEPA_COAST_OTH_1AM $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_1AS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1009 8 1 -#0 GEPA_COAST_OTH_5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1009 9 1 -0 GEPA_COAST_OTH_6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -)))GEPA +# - Based off the US GHGI published in 2022. +# - Uses annual source-specific spatial patterns from 2012-2018 from the main +# dataset to quickly incorporate more recent national methane emission estimates. +# - Emissions for years after 2018 follow the 2018 spatial patterns. +# - Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, +# Hier=5 to add to GFEI; mask=1009) ### +#======================================================================================= +(((GHGI_v2_Express_Ext +(((.not.GHGI_v2 +### Oil ### +0 GHGI_EE_OIL_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Exploration 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 51/1008 1 100 +0 GHGI_EE_COAST_OIL_EXPLORATION - - - - - - CH4 51/1009 1 5 +0 GHGI_EE_OIL_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Production 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 52/1008 1 100 +0 GHGI_EE_COAST_OIL_PRODUCTION - - - - - - CH4 52/1009 1 5 +0 GHGI_EE_OIL_REFINING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Refining 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 53/1008 1 100 +0 GHGI_EE_COAST_OIL_REFINING - - - - - - CH4 53/1009 1 5 +0 GHGI_EE_OIL_TRANSPORT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2a_Petroleum_Systems_Transport 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 54/1008 1 100 +0 GHGI_EE_COAST_OIL_TRANSPORT - - - - - - CH4 54/1009 1 5 + +### Gas ### +0 GHGI_EE_GAS_DISTRIBUTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Distribution 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_EE_COAST_GAS_DISTRIBUTION - - - - - - CH4 1009 2 5 +0 GHGI_EE_GAS_EXPLORATION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Exploration 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 55/1008 2 100 +0 GHGI_EE_COAST_GAS_EXPLORATION - - - - - - CH4 55/1009 2 5 +0 GHGI_EE_GAS_PROCESSING $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Processing 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_EE_COAST_GAS_PROCESSING - - - - - - CH4 1009 2 5 +0 GHGI_EE_GAS_PRODUCTION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_Production 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 56/1008 2 100 +0 GHGI_EE_COAST_GAS_PRODUCTION - - - - - - CH4 56/1009 2 5 +0 GHGI_EE_GAS_TRANSMISSION $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2b_Natural_Gas_TransmissionStorage 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GHGI_EE_COAST_GAS_TRANSMISSION - - - - - - CH4 1009 2 5 +0 GHGI_EE_GAS_POSTMETER $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_Supp_1B2b_PostMeter 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 2 100 + +### Coal ### +0 GHGI_EE_COAL_UNDERGROUND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Underground_Coal 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_EE_COAST_COAL_UNDERGROUND - - - - - - CH4 1009 3 5 +0 GHGI_EE_COAL_SURFACE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Surface_Coal 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_EE_COAST_COAL_SURFACE - - - - - - CH4 1009 3 5 +0 GHGI_EE_COAL_ABANDONED $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B1a_Abandoned_Coal 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GHGI_EE_COAST_COAL_ABANDONED - - - - - - CH4 1009 3 5 + +### Livestock ### +0 GHGI_EE_LIVESTOCK_ENT $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3A_Enteric_Fermentation 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 4 100 +0 GHGI_EE_COAST_LIVESTOCK_ENT - - - - - - CH4 1009 4 1 +0 GHGI_EE_LIVESTOCK_MAN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3B_Manure_Management 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 57/1008 4 100 +0 GHGI_EE_COAST_LIVESTOCK_MAN - - - - - - CH4 57/1009 4 1 + +### Landfills ### +0 GHGI_EE_LANDFILLS_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_Industrial 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_COAST_LANDFILLS_IND - - - - - - CH4 1009 5 1 +0 GHGI_EE_LANDFILLS_MSW $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5A1_Landfills_MSW 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_COAST_LANDFILLS_MSW - - - - - - CH4 1009 5 1 +0 GHGI_EE_LANDFILLS_COMP $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5B1_Composting 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GHGI_EE_COAST_LANDFILLS_COMP - - - - - - CH4 1009 5 1 + +### Wastewater ### +0 GHGI_EE_WASTEWATER_DOM $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Domestic 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 6 100 +0 GHGI_EE_COAST_WASTEWATER_DOM - - - - - - CH4 1009 6 1 +0 GHGI_EE_WASTEWATER_IND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_5D_Wastewater_Treatment_Industrial 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 6 100 +0 GHGI_EE_COAST_WASTEWATER_IND - - - - - - CH4 1009 6 1 + +### Rice ### +0 GHGI_EE_RICE $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3C_Rice_Cultivation 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 58/1008 7 100 +0 GHGI_EE_COAST_RICE - - - - - - CH4 58/1009 7 1 + +### Other Anthro ### +0 GHGI_EE_OTHER_MCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Mobile 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_MCOMB - - - - - - CH4 1009 8 1 +0 GHGI_EE_OTHER_SCOMB $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1A_Combustion_Stationary 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 50/1008 8 100 +0 GHGI_EE_COAST_OTHER_SCOMB - - - - - - CH4 50/1009 8 1 +0 GHGI_EE_OTHER_PIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2B8_Industry_Petrochemical 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_PIND - - - - - - CH4 1009 8 1 +0 GHGI_EE_OTHER_FIND $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_2C2_Industry_Ferroalloy 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_FIND - - - - - - CH4 1009 8 1 +0 GHGI_EE_OTHER_BURN $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_3F_Field_Burning 2012-2020/1-12/1/0 C xy molec/cm2/s CH4 59/1008 8 100 +0 GHGI_EE_COAST_OTHER_BURN - - - - - - CH4 59/1009 8 1 +0 GHGI_EE_OTHER_ABOG $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Express_Extension_Gridded_GHGI_Methane_v2_$YYYY.nc emi_ch4_1B2ab_Abandoned_Oil_Gas 2012-2020/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GHGI_EE_COAST_OTHER_ABOG - - - - - - CH4 1009 8 1 +))).not.GHGI_v2 +)))GHGI_v2_Express_Ext #============================================================================== # --- CH4: Mexico emissions (Scarpelli et. al, Environ. Res. Lett., 2020) --- +# +# NOTES: +# - Use Hier=100 to add to Canada and USA regional inventories +# - Make sure to include offshore/coastal emissions +# (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) #============================================================================== (((Scarpelli_Mexico -0 MEX_OIL $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 1 30 -0 MEX_GAS $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 2 30 -0 MEX_COAL $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 3 30 -0 MEX_LIVESTOCK_A $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 4 30 -0 MEX_LIVESTOCK_B $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1001 4 30 -0 MEX_LANDFILLS $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 5 30 -0 MEX_WASTEWATER $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 6 30 -0 MEX_RICE $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1001 7 30 -0 MEX_OTHER $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 8 30 - -### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR) ### -0 MEX_OIL_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 1 1 -0 MEX_GAS_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 2 1 -0 MEX_COAL_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 3 1 -0 MEX_LIVESTOCK_A_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 4 1 -0 MEX_LIVESTOCK_B_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1010 4 1 -0 MEX_LANDFILLS_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 5 1 -0 MEX_WASTEWATER_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 6 1 -0 MEX_RICE_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1010 7 1 -0 MEX_OTHER_COAST $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 8 1 +0 MEX_OIL $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 1 100 +0 MEX_OIL_COAST - - - - - - CH4 1010 1 5 +0 MEX_GAS $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 2 100 +0 MEX_GAS_COAST - - - - - - CH4 1010 2 5 +0 MEX_COAL $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 3 100 +0 MEX_COAL_COAST - - - - - - CH4 1010 3 5 +0 MEX_LIVESTOCK_A $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 4 100 +0 MEX_LIVESTOCK_A_COAST - - - - - - CH4 1010 4 1 +0 MEX_LIVESTOCK_B $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1001 4 100 +0 MEX_LIVESTOCK_B_COAST - - - - - - CH4 10/1010 4 1 +0 MEX_LANDFILLS $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 5 100 +0 MEX_LANDFILLS_COAST - - - - - - CH4 1010 5 1 +0 MEX_WASTEWATER $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 6 100 +0 MEX_WASTEWATER_COAST - - - - - - CH4 1010 6 1 +0 MEX_RICE $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1001 7 100 +0 MEX_RICE_COAST - - - - - - CH4 11/1010 7 1 +0 MEX_OTHER $ROOT/CH4/v2022-11/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 8 100 +0 MEX_OTHER_COAST - - - - - - CH4 1010 8 1 )))Scarpelli_Mexico #============================================================================== # --- CH4: Canada emissions (Scarpelli et al., Environ. Res. Lett., 2022) --- +# +# NOTES: +# - Use Hier=100 to add to USA and Mexico regional inventories +# - Make sure to include offshore/coastal emissions +# (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) #============================================================================== (((Scarpelli_Canada -0 CAN_OIL_GAS_COMBUSTION $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_OIL_GAS_LEAKAGE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_OIL_GAS_VENT_FLARE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_COAL $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1002 3 100 -0 CAN_LIVESTOCK $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1002 4 100 -0 CAN_SOLID_WASTE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1002 5 100 -0 CAN_WASTEWATER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1002 6 100 -0 CAN_OTHER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1002 8 100 - -### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR) ### -0 CAN_OIL_GAS_COMBUSTION_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 100 -0 CAN_OIL_GAS_LEAKAGE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 100 -0 CAN_OIL_GAS_VENT_FLARE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 100 -0 CAN_COAL_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1011 3 100 -0 CAN_LIVESTOCK_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1011 4 1 -0 CAN_SOLID_WASTE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1011 5 1 -0 CAN_WASTEWATER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1011 6 1 -0 CAN_OTHER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1011 8 1 +0 CAN_OIL_GAS_COMBUSTION $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_COMBUSTION_COAST - - - - - - CH4 1011 1/2 5 +0 CAN_OIL_GAS_LEAKAGE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_LEAKAGE_COAST - - - - - - CH4 1011 1/2 5 +0 CAN_OIL_GAS_VENT_FLARE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_VENT_FLARE_COAST - - - - - - CH4 1011 1/2 5 +0 CAN_COAL $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1002 3 100 +0 CAN_COAL_COAST - - - - - - CH4 1011 3 5 +0 CAN_LIVESTOCK $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1002 4 100 +0 CAN_LIVESTOCK_COAST - - - - - - CH4 1011 4 1 +0 CAN_SOLID_WASTE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1002 5 100 +0 CAN_SOLID_WASTE_COAST - - - - - - CH4 1011 5 1 +0 CAN_WASTEWATER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1002 6 100 +0 CAN_WASTEWATER_COAST - - - - - - CH4 1011 6 1 +0 CAN_OTHER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1002 8 100 +0 CAN_OTHER_COAST - - - - - - CH4 1011 8 1 )))Scarpelli_Canada #============================================================================== @@ -269,54 +409,69 @@ Mask fractions: false )))GFEIv2 #============================================================================== -# --- CH4: EDGAR v6.0 emissions, various sectors --- -#============================================================================== -(((EDGARv6 -0 CH4_OIL__1B2a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_OIL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 1 1 -0 CH4_OIL__1B2c $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_GAS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CH4_COAL__1B1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_COAL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 3 1 -0 CH4_LIVESTOCK__4A $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CH4_LIVESTOCK__4B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_MNM.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CH4_LANDFILLS__6A_6D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_LDF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 5 1 -0 CH4_WASTEWATER__6B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_WWT.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 6 1 -0 CH4_RICE__4C_4D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AGS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 7 1 -0 CH4_OTHER__1A1_1B1_1B2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_REF_TRF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IND.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_CDS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CDS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_CRS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CRS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_LTO $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_LTO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3b $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TRO_noRES.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3c_1A3e $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Other.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3d_1C2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Ship.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A4 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_RCO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__2B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_CHE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__2C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IRO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__4F $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AWB.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__6C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_INC.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -)))EDGARv6 +# --- CH4: EDGAR v8.0 emissions --- +#============================================================================== +(((EDGARv8 +### Oil ### +0 EDGAR8_CH4_PRO_OIL $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_PRO_OIL_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 1 1 +0 EDGAR8_CH4_REF_TRF $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_REF_TRF_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 1 1 + +### Gas ### +0 EDGAR8_CH4_PRO_GAS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_PRO_GAS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 2 1 + +### Coal ### +0 EDGAR8_CH4_PRO_COAL $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_PRO_COAL_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 3 1 + +### Livestock ### +0 EDGAR8_CH4_ENF $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_ENF_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 4 1 +0 EDGAR8_CH4_MNM $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_MNM_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 4 1 + +### Landfills ### +0 EDGAR8_CH4_SWD_LDF $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_SWD_LDF_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 5 1 + +### Wastewater ### +0 EDGAR8_CH4_WWT $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_WWT_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 6 1 + +### Rice ### +0 EDGAR8_CH4_AGS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_AGS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 7 1 + +### Other Anthro ### +0 EDGAR8_CH4_ENE $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_ENE_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_IND $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_IND_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Aviation_CDS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Aviation_CDS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Aviation_CRS $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Aviation_CRS_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Aviation_LTO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Aviation_LTO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TRO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TRO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Other $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Other_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_TNR_Ship $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_TNR_Ship_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_RCO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_RCO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_CHE $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_CHE_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_IRO $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_IRO_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_AWB $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_AWB_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 EDGAR8_CH4_SWD_INC $ROOT/CH4/v2024-02/EDGARv8/$YYYY/v8.0_FT2022_GHG_CH4_$YYYY_SWD_INC_flx.nc emi_ch4 2010-2022/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +)))EDGARv8 #============================================================================== # --- CH4: CEDS (historical) or Shared Socioeconomic Pathways (future) --- #============================================================================== (((CMIP6_SFC_LAND_ANTHRO -0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 5 1 +0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 4 1 +0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 +0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 +0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 5 1 )))CMIP6_SFC_LAND_ANTHRO (((CMIP6_SHIP -0 CMIP6_CH4_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_shp 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CMIP6_CH4_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_shp 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 )))CMIP6_SHIP #============================================================================== # --- CH4: BB4MIPs historical / SSP future biomass burning inventories --- #============================================================================== (((BB4MIPS -0 CMIP6_BB_CH4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_bbn 1750-2015/1-12/1/0 C xyL=1:PBL kg/m2/s CH4 75 9 1 +0 CMIP6_BB_CH4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_bbn 1750-2015/1-12/1/0 C xyL=1:PBL kg/m2/s CH4 75 9 1 )))BB4MIPS #============================================================================== @@ -329,17 +484,13 @@ Mask fractions: false 0 QFED_CH4 $ROOT/CH4/v2017-10/QFED/QFEDv2.4r8.emis_ch4.$YYYY.nc emi_ch4 2009-2015/1-12/1-31/0 C xy molec/cm2/s CH4 - 9 2 )))QFED2 -# --- Updated GFED4 biomass burning --- -# Emissions thru 2019 (cf Yuzhong Zhang) -(((UPDATED_GFED4 -0 UPDATED_GFED4_CH4 $ROOT/CH4/v2020-09/GFED/GFED4_CH4_FIRE_$YYYY.nc emi_ch4 2009-2019/1-12/1-31/0 C xy molec/cm2/s CH4 - 9 3 -)))UPDATED_GFED4 - #============================================================================== # --- CH4: JPL WetCHARTs v1.0 (Bloom et al., https://doi.org/10.3334/ORNLDAAC/1502) --- +# +# Use updated files (v2024-01); these are COARDS-compliant. #============================================================================== (((JPL_WETCHARTS -0 JPLW_CH4 $ROOT/CH4/v2020-09/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc emi_ch4 2010-2019/1-12/1/0 C xy molec/cm2/s CH4 - 10 1 +0 JPLW_CH4 $ROOT/CH4/v2024-01/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc emi_ch4 2010-2019/1-12/1/0 C xy molec/cm2/s CH4 - 10 1 )))JPL_WETCHARTS #============================================================================== @@ -350,12 +501,22 @@ Mask fractions: false )))SEEPS #============================================================================== -# --- CH4: Emissions from Lakes (Maasakkers et al., in prep) --- +# --- CH4: Emissions from Lakes (Maasakkers et al., 2019) --- #============================================================================== (((LAKES -0 CH4_LAKES $ROOT/CH4/v2017-10/Lakes/Maasakkers_Lakes_$YYYY.01x01.nc emi_ch4 $YYYY/1-12/1/0 C xy molec/cm2/s CH4 - 12 1 +0 CH4_LAKES $ROOT/CH4/v2022-11/Lakes/Maasakkers_Lakes_$YYYY.01x01.nc emi_ch4 $YYYY/1-12/1/0 C xy molec/cm2/s CH4 - 12 1 )))LAKES +#============================================================================== +# --- Emissions from Hydroelectric Reservoirs (Delwich et al., 2022) --- +# +# Use updated files (v2024-01); these are COARDS-compliant. +#============================================================================== +(((RESERVOIRS +0 CH4_RES_DAM $ROOT/CH4/v2024-01/ResME/ResME_Dam_Emissions.0.1x0.1.nc CH4emis 2022/1/1/0 C xy kg/m2/s CH4 - 15 1 +0 CH4_RES_SFC $ROOT/CH4/v2024-01/ResME/ResME_Surface_Emissions.0.1x0.1.nc CH4emis 2022/1/1/0 C xy kg/m2/s CH4 - 15 1 +)))RESERVOIRS + #============================================================================== # --- CH4: Soil absorption & termites from Fung et al, 1991 --- # @@ -363,8 +524,6 @@ Mask fractions: false # - Multiply soil absorption by -1 to get a "negative" flux. # (Only apply the scaling factor when adding to the total CH4 simulation) # - Use updated soil absorption emissions with seasonality applied -# - For tagged CH4 simulations soil absorption is treated as a loss and applied -# in mixing_mod.F #============================================================================== (((FUNG_TERMITES 0 CH4_TERMITES $ROOT/CH4/v2022-11/4x5/termites.geos.4x5.nc CH4 1985/1/1/0 C xy kg/m2/s CH4 - 13 1 @@ -405,6 +564,8 @@ Mask fractions: false 0 RCP85_CH4 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_CH4_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH4 - 1 1 )))RCP_85 +))).not.UseTotalPriorEmis + )))USE_CH4_DATA #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -438,22 +599,22 @@ Mask fractions: false # aren't included in the Tier 1 CAPS file/ #============================================================================== (((NEI2016_MONMEAN -0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__c1c2CO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__c3CO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__pteguCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__ptogCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 0 EPA16_CO__ptnonipmCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 -0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 +0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/2007 1 50 )))NEI2016_MONMEAN #============================================================================== @@ -509,13 +670,13 @@ Mask fractions: false # EDGAR, HTAP or CMIP6_SFC_LAND_ANTHRO for the global base emissions %%% #============================================================================== (((CEDSv2 -0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 26/37/35/315 1 5 -0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 26/316 1 5 -0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 2401 1 5 +0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2406/706/315 1 5 +0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2407/707/316 1 5 +0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 2411/711 1 5 +0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 2409/709 1 5 +0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 2407/707 1 5 +0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 )))CEDSv2 #============================================================================== @@ -533,10 +694,13 @@ Mask fractions: false (((CEDS_GBDMAPS >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS.rc )))CEDS_GBDMAPS + (((CEDS_GBDMAPS_byFuelType -(((.not.CEDS_GBDMAPS.and..not.CEDSv2 +(((.not.CEDS_GBDMAPS +(((.not.CEDSv2 >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS_byFuelType.rc -))).not.CEDS_GBDMAPS.and..not.CEDSv2 +))).not.CEDSv2 +))).not.CEDS_GBDMAPS )))CEDS_GBDMAPS_byFuelType #============================================================================== @@ -544,26 +708,26 @@ Mask fractions: false # CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with # the CMIP6 simulation experimental design. # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS #============================================================================== (((CMIP6_SFC_LAND_ANTHRO -0 CMIP6_CO_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_CO_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_CO_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 )))CMIP6_SFC_LAND_ANTHRO #============================================================================== # CO: CEDS (historical) or Shared Socioeconomic Pathways (future) aircraft # emissions, consistent with the CMIP6 simulation experimental design # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS #============================================================================== (((CMIP6_AIRCRAFT -0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO 26 20 1 +0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO 26 20 1 )))CMIP6_AIRCRAFT #============================================================================== @@ -613,10 +777,10 @@ Mask fractions: false # CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with # the CMIP6 simulation experimental design. # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS #============================================================================== (((CMIP6_SHIP -0 CMIP6_CO_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_shp 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 10 5 +0 CMIP6_CO_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_shp 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 10 5 )))CMIP6_SHIP )))SHIP @@ -671,7 +835,7 @@ Mask fractions: false # --- BB4MIPs --- (((BB4MIPS -0 CMIP6_BB_CO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CO 75 5 3 +0 CMIP6_BB_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CO 75 5 3 )))BB4MIPS )))USE_CO_DATA @@ -716,7 +880,7 @@ Mask fractions: false )))OCEAN_EXCH_TAKA09 (((OCEAN_EXCH_SCALED -0 OCEANCO2_SCALED_MONTHLY $ROOT/CO2/v2022-11/OCEAN/Scaled_Ocean_CO2_monthly.nc CO2 2000-2013/1-12/1/0 C xy kg/m2/s CO2 - 2 3 +0 OCEANCO2_SCALED_MONTHLY $ROOT/CO2/v2022-11/OCEAN/Scaled_Ocean_CO2_monthly.nc CO2 2000-2013/1-12/1/0 C xy kg/m2/s CO2 - 2 3 )))OCEAN_EXCH_SCALED #============================================================================== @@ -748,7 +912,7 @@ Mask fractions: false # inversion/assimilation #============================================================================== (((NET_TERR_EXCH -0 CO2_NET_TERRESTRIAL $ROOT/CO2/v2022-11/BIO/Net_terrestrial_exch_5.29Pg.generic.1x1.nc CO2 2000/1/1/0 C xy kg/m2/s CO2 - 5 1 +0 CO2_NET_TERRESTRIAL $ROOT/CO2/v2022-11/BIO/Net_terrestrial_exch_5.29Pg.generic.1x1.nc CO2 2000/1/1/0 C xy kg/m2/s CO2 - 5 1 )))NET_TERR_EXCH #============================================================================== @@ -762,7 +926,7 @@ Mask fractions: false )))ICOADS_SHIP (((CEDSv2_SHIP -0 CEDS_CO2_SHP $ROOT/CEDS/v2018-08/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_shp 1750-2014/1-12/1/0 C xy kg/m2/s CO2 - 6 1 +0 CEDS_CO2_SHP $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_shp 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 6 1 )))CEDSv2_SHIP )))SHIP @@ -847,27 +1011,24 @@ Mask fractions: false # --- GFED biomass burning emissions (Extension 111) # NOTE: These are the base emissions in kgDM/m2/s. #============================================================================== -(((USE_CH4_DATA.or.USE_CO2_DATA (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2022-11/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2022-11/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2022-11/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2022-11/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2022-11/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2022-11/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2022-11/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2010-2023/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2022-11/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2010-2023/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 -)))USE_CH4_DATA.or.USE_CO2_DATA - )))EMISSIONS ############################################################################### @@ -883,104 +1044,14 @@ Mask fractions: false #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- Meteorology fields --- #============================================================================== (((METEOROLOGY -#============================================================================== -# --- Meteorology fields --- -#============================================================================== -# --- CN fields --- -* FRLAKE $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FRLAKE */1/1/0 C xy 1 * - 1 1 -* FRLAND $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FRLAND */1/1/0 C xy 1 * - 1 1 -* FRLANDIC $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FRLANDIC */1/1/0 C xy 1 * - 1 1 -* FROCEAN $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FROCEAN */1/1/0 C xy 1 * - 1 1 -* PHIS $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC PHIS */1/1/0 C xy 1 * - 1 1 - -# --- A1 fields --- -* ALBEDO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC ALBEDO 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* CLDTOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC CLDTOT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* EFLUX $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC EFLUX 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* EVAP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC EVAP 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* FRSEAICE $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC FRSEAICE 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* FRSNO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC FRSNO 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* GRN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GRN 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* GWETROOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GWETROOT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* GWETTOP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC GWETTOP 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* HFLUX $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC HFLUX 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* LAI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC LAI 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* LWI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC LWI 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* LWGNT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC LWGNT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PARDF $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PARDF 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PARDR $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PARDR 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PBLH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PBLH 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECANV $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECANV 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECCON $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECCON 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECLSC $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECLSC 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECSNO $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECSNO 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* PRECTOT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC PRECTOT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE00 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE00 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE10 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE10 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE20 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE20 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE30 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE30 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE40 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE40 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE50 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE50 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE60 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE60 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE70 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE70 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE80 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE80 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SEAICE90 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SEAICE90 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SLP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SLP 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SNODP $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SNODP 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SNOMAS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SNOMAS 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* SWGDN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC SWGDN 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* TO3 $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TO3 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* TROPPT $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TROPPT 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* TS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC TS 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* T2M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC T2M 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* U10M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC U10M 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* USTAR $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC USTAR 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* V10M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC V10M 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 -* Z0M $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.$NC Z0M 1980-2020/1-12/1-31/*/+30minute RFY xy 1 * - 1 1 - -# --- A3cld fields --- -* CLOUD $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC CLOUD 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* OPTDEPTH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC OPTDEPTH 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* QI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC QI 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* QL $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC QL 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* TAUCLI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC TAUCLI 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* TAUCLW $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3cld.$RES.$NC TAUCLW 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 - -# --- A3dyn fields --- -* DTRAIN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC DTRAIN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* OMEGA $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC OMEGA 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* RH $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC RH 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* U $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC U 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* V $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3dyn.$RES.$NC V 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 - -# --- A3mstC fields --- -* DQRCU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC DQRCU 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* DQRLSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC DQRLSAN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* REEVAPCN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC REEVAPCN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* REEVAPLS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstC.$RES.$NC REEVAPLS 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 - -# --- A3mstE fields --- -* CMFMC $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC CMFMC 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* PFICU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFICU 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* PFILSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFILSAN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* PFLCU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFLCU 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 -* PFLLSAN $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A3mstE.$RES.$NC PFLLSAN 1980-2020/1-12/1-31/*/+90minute RFY xyz 1 * - 1 1 - -# --- I3 fields --- -* PS $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC PS 1980-2020/1-12/1-31/* RFY xy 1 * - 1 1 -* SPHU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC QV 1980-2020/1-12/1-31/* RFY xyz 1 * - 1 1 -* TMPU $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC T 1980-2020/1-12/1-31/* RFY xyz 1 * - 1 1 - -* PS_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC PS 1980-2020/1-12/1-31/1/+1day RFY xy 1 * - 1 1 -* SPHU_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC QV 1980-2020/1-12/1-31/1/+1day RFY xyz 1 * - 1 1 -* TMPU_NEXTDAY $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.I3.$RES.$NC T 1980-2020/1-12/1-31/1/+1day RFY xyz 1 * - 1 1 +>>>include ${RUNDIR_MET_FIELD_CONFIG} )))METEOROLOGY @@ -992,6 +1063,13 @@ Mask fractions: false * DELPDRY ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Met_DELPDRY $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 )))GC_RESTART +#============================================================================== +# --- GEOS-Chem boundary condition file --- +#============================================================================== +(((GC_BCs +* BC_ $ROOT/SAMPLE_BCs/v2021-07/CH4/GEOSChem.BoundaryConditions.$YYYY$MM$DD_0000z.nc4 SpeciesBC_?ADV? 1900-2100/1-12/1-31/* EFY xyz 1 * - 1 1 +)))GC_BCs + #============================================================================== # --- Olson land map masks --- #============================================================================== @@ -1167,36 +1245,10 @@ Mask fractions: false #------------------------------------------------------------------------------ # --- Files needed for analytical inversion --- -# -# These fields are are only used if analytical_inversion?' is activated in -# geoschem_config.yml. These fields are obtained from HEMCO and applied in -# GEOS-Chem/GeosCore/global_ch4_mod.F90. -# -# Entries below provided for examples only. Add your own here! #------------------------------------------------------------------------------ -(((AnalyticalInv - -# State vector file -* CH4_STATE_VECTOR StateVector.nc StateVector 2009/1/1/0 C xy 1 * - 1 1 - -)))AnalyticalInv - -#------------------------------------------------------------------------------ -# --- Scale factors for posterior run --- -# -# Enable emission scale factors by setting the use_emission_scale_factor or -# use_OH_scale_factor options to true in geoschem_config.yml. These fields are -# obtained from HEMCO and applied in GEOS-Chem/GeosCore/global_ch4_mod.F90. -# -# Entries below are provided for examples only. Add your own here! -#------------------------------------------------------------------------------ -(((Emis_ScaleFactor -* EMIS_SF gridded_posterior.nc ScaleFactor 2000/1/1/0 C xy 1 * - 1 1 -)))Emis_ScaleFactor - -(((OH_ScaleFactor -* OH_SF Post_SF_OH.nc SF_OH 2010-2017/1/1/0 E xy 1 * - 1 1 -)))OH_ScaleFactor +(((AnalyticalInversion +* CH4_STATE_VECTOR StateVector.nc StateVector 2009/1/1/0 C xy 1 * - 1 1 +)))AnalyticalInversion )))USE_CH4_DATA @@ -1207,50 +1259,44 @@ Mask fractions: false #------------------------------------------------------------------------------ # --- Global OH fields --- -# -# If GLOBAL_OH_GCv5 is turned on: -# - Use GEOS-Chem v5-07 OH if GLOBAL_OH_GCv5 is turned on. -# - This is the recommended setting for CH4 and the IMI. -# -# If GLOBAL_OH_GCv5 is turned off: -# - Use the OH archived from the last 10-yr benchmark simulation. #------------------------------------------------------------------------------ -(((GLOBAL_OH - -# --- OH from GEOS-Chem v5-07 [kg/m3] --- +# --- OH from GEOS-Chem v5-07 [kg/m3], needed for CH4/IMI --- (((GLOBAL_OH_GCv5 -* GLOBAL_OH $ROOT/OH/v2022-11/v5-07-08/OH_3Dglobal.geos5.47L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * - 1 1 + +(((OH_PosteriorSF +* GLOBAL_OH $ROOT/OH/v2022-11/v5-07-08/OH_3Dglobal.geos5.72L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * 2/4 1 1 +)))OH_PosteriorSF + +(((.not.OH_PosteriorSF +* GLOBAL_OH $ROOT/OH/v2022-11/v5-07-08/OH_3Dglobal.geos5.72L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * 2 1 1 +))).not.OH_PosteriorSF + )))GLOBAL_OH_GCv5 -# --- OH from the last 10-yr benchmark [mol/mol dry air] --- +# --- OH from the last 10-yr benchmark [mol/mol dry] --- +(((GLOBAL_OH_GC14 (((.not.GLOBAL_OH_GCv5 ${RUNDIR_GLOBAL_OH} ))).not.GLOBAL_OH_GCv5 - -)))GLOBAL_OH +)))GLOBAL_OH_GC14 #------------------------------------------------------------------------------ # --- Quantities needed for CH4 chemistry --- #------------------------------------------------------------------------------ -(((USE_CH4_DATA -# --- Global CH4 loss, Cl fields for CH4 simulation [1/s] ----------- -# --- NOTE: GCHP must use the 72 layer file!! ----------- -(((GMI_CH4_LOSS -* CH4_LOSS $ROOT/CH4/v2022-11/4x5/gmi.ch4loss.geos5_72L.4x5.nc CH4loss 1985/1-12/1/0 C xyz s-1 * - 1 1 -)))GMI_CH4_LOSS +# --- Global CH4 loss frequencies [1/s] ----------- +(((CH4_LOSS_FREQ +${RUNDIR_CH4_LOSS} +)))CH4_LOSS_FREQ -# --- Cl from the last 10-yr benchmark [mol/mol dry air] --- +# --- Global Cl [mol/mol dry air] --- (((GLOBAL_CL ${RUNDIR_GLOBAL_Cl} )))GLOBAL_CL -)))USE_CH4_DATA - #------------------------------------------------------------------------------ # --- Quantities needed for CO chemistry --- #------------------------------------------------------------------------------ -(((USE_CO_DATA # -- P(CO) from CH4 and NMVOC from the last 10-yr benchmark [molec/cm3/s] --- (((PROD_CO_CH4 @@ -1262,13 +1308,21 @@ ${RUNDIR_PCO_NMVOC} # --- GMI chemistry: prod/loss rates (for strato-/mesosphere) --- # --- Units: prod [v/v/s]; loss [1/s] --- +(((USE_CO_DATA (((GMI_PROD_LOSS -${RUNDIR_GMI_LOSS_CO} -${RUNDIR_GMI_PROD_CO} +* GMI_LOSS_CO $ROOT/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CO - 1 1 +* GMI_PROD_CO $ROOT/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CO - 1 1 )))GMI_PROD_LOSS - )))USE_CO_DATA +# If CO is not an advected species, then just read as a chemistry input +(((.not.USE_CO_DATA +(((GMI_PROD_LOSS +* GMI_LOSS_CO $ROOT/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 * - 1 1 +* GMI_PROD_CO $ROOT/GMI/v2022-11/gmi.clim.CO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s * - 1 1 +)))GMI_PROD_LOSS +))).not.USE_CO_DATA + #------------------------------------------------------------------------------ # --- Quantities needed for CO2 chemistry --- #------------------------------------------------------------------------------ @@ -1276,12 +1330,11 @@ ${RUNDIR_GMI_PROD_CO} # --- CHEMICAL PRODUCTION FROM CO OXIDATION ------ # --- Recommended for use in forward modelling --- # --- Optional for inversion/assimilation -------- -(((USE_CO2_DATA +(((USE_CO2_DATA (((CO2_COPROD ${RUNDIR_CO2_COPROD} )))CO2_COPROD - )))USE_CO2_DATA )))CHEMISTRY_INPUT @@ -1294,100 +1347,214 @@ ${RUNDIR_CO2_COPROD} # ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper -(((EMISSIONS - -#============================================================================== +#------------------------------------------------------------------------------ # --- Multiply by -1 to get a "negative" flux. -#============================================================================== +#------------------------------------------------------------------------------ 1 NEGATIVE -1.0 - - - xy 1 1 +#------------------------------------------------------------------------------ +# --- Perturbation factors --- +# +# Add factors to perturb OH, emissions, and other fields here for +# analytical inversions. +#------------------------------------------------------------------------------ +2 OH_pert_factor 1.0 - - - xy 1 1 + #============================================================================== -# --- Seasonal scaling factors ---- +# --- Scale factors for posterior run --- +# +# Enable emission scale factors by setting the use_emission_scale_factor or +# use_OH_scale_factor options to true in geoschem_config.yml. These fields are +# obtained from HEMCO and applied in GEOS-Chem/GeosCore/global_ch4_mod.F90. +# +# Entries below are provided for examples only. Add your own here! #============================================================================== -(((EDGARv6.or.GEPA -10 MANURE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Manure_ScalingFactors.WithClimatology.nc sf_ch4 2008-2016/1-12/1/0 C xy 1 1 -11 RICE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Rice_ScalingFactors.SetMissing.nc sf_ch4 2012/1-12/1/0 C xy 1 1 -)))EDGARv6.or.GEPA +(((Emis_PosteriorSF +3 EMIS_SF gridded_posterior.nc ScaleFactor 2000/1/1/0 C xy 1 1 +)))Emis_PosteriorSF + +(((OH_PosteriorSF +4 OH_SF Post_SF_OH.nc SF_OH 2010-2017/1/1/0 C xy 1 1 +)))OH_PosteriorSF #============================================================================== -# --- Diurnal scale factors --- +# --- Scale factors for analytical inversions --- #============================================================================== -26 GEIA_TOD_FOSSIL 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy 1 1 +(((AnalyticalInversion + +# Add perturbations to individual state vector element (N) following this format +# Start scale factor ID at 2000 to avoid conflicts with other SFs/masks +#200N SCALE_ELEM_000N ./Perturbations.txt - - - xy count 1 +)))AnalyticalInversion + +(((EMISSIONS #============================================================================== -# --- Seasonal scale factors --- +# --- Scale factors for CH4 emissions ---- #============================================================================== -(((DICE_Africa -# from GEIA: -30 GEIA_SEASON_NOX $ROOT/GEIA/v2014-07/GEIA_monthscal.generic.1x1.nc NOXrat 1985/1-12/1/0 C xy unitless 1 -31 GEIA_SEASON_SO2 $ROOT/GEIA/v2014-07/GEIA_monthscal.generic.1x1.nc SO2rat 1985/1-12/1/0 C xy unitless 1 -)))DICE_Africa +(((USE_CH4_DATA + +#------------------------------------------------------------------------------ +# --- GHGI monthly scaling factors --- +#------------------------------------------------------------------------------ +(((GHGI_v2.or.GHGI_v2_Express_Ext +50 GHGI_OTH_STA_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1A_Combustion_Stationary 2012-2018/1-12/1/0 C xy 1 1 +51 GHGI_OIL_EXP_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Exploration 2012-2018/1-12/1/0 C xy 1 1 +52 GHGI_OIL_PRD_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Production 2012-2018/1-12/1/0 C xy 1 1 +53 GHGI_OIL_REF_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Refining 2012-2018/1-12/1/0 C xy 1 1 +54 GHGI_OIL_TRA_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2a_Petroleum_Systems_Transport 2012-2018/1-12/1/0 C xy 1 1 +55 GHGI_GAS_EXP_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2b_Natural_Gas_Exploration 2012-2018/1-12/1/0 C xy 1 1 +56 GHGI_GAS_PRD_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_1B2b_Natural_Gas_Production 2012-2018/1-12/1/0 C xy 1 1 +57 GHGI_LIV_MAN_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_3B_Manure_Management 2012-2018/1-12/1/0 C xy 1 1 +58 GHGI_RIC_CUL_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_3C_Rice_Cultivation 2012-2018/1-12/1/0 C xy 1 1 +59 GHGI_OTH_BUR_SF $ROOT/CH4/v2023-07/Gridded_GHGI_v2/Gridded_GHGI_Methane_v2_Monthly_Scale_Factors_$YYYY.nc monthly_scale_factor_3F_Field_Burning 2012-2018/1-12/1/0 C xy 1 1 +)))GHGI_v2.or.GHGI_v2_Express_Ext + +#------------------------------------------------------------------------------ +# --- Scarpelli et al Mexico manure & rice scale factors --- +#------------------------------------------------------------------------------ +(((Scarpelli_Mexico +10 MANURE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Manure_ScalingFactors.WithClimatology.nc sf_ch4 2008-2016/1-12/1/0 C xy 1 1 +11 RICE_SF $ROOT/CH4/v2017-10/Seasonal_SF/EMICH4_Rice_ScalingFactors.SetMissing.nc sf_ch4 2012/1-12/1/0 C xy 1 1 +)))Scarpelli_Mexico + +)))USE_CH4_DATA #============================================================================== -# Diurnal variablity of Chinese power plants from Liu et al. (EST, 2019) +# --- Scale factors for CO2 emissions --- #============================================================================== -33 PKU_pow_NOx 0.94/0.93/0.93/0.92/0.93/0.96/0.98/0.99/0.98/1.00/1.05/1.03/1.01/1.04/1.05/1.05/1.07/1.06/1.05/1.05/1.03/1.01/0.99/0.96 - - - xy unitless 1 1009 -34 PKU_pow_SO2 0.92/0.91/0.90/0.89/0.90/0.93/0.97/0.98/0.99/1.02/1.07/1.04/1.03/1.06/1.06/1.07/1.10/1.10/1.06/1.05/1.03/1.01/0.99/0.93 - - - xy unitless 1 1009 -35 PKU_pow_PM_BC_POC_VOC_CO 0.95/0.93/0.92/0.91/0.90/0.93/0.97/0.97/0.99/1.03/1.04/1.03/1.02/1.03/1.05/1.07/1.07/1.07/1.06/1.04/1.03/1.02/1.00/0.97 - - - xy unitless 1 2009 +(((USE_CO2_DATA -### These scale factors undo (Oper=-1) the global diurnal scale factors over China (Mask=1009) -#36 EDGAR_TODNOX_UNDO $ROOT/EDGARv42/v2015-02/NO/EDGAR_hourly_NOxScal.nc NOXscale 2000/1/1/* C xy unitless -1 2009 -37 GEIA_TOD_FOSSIL_UNDO 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy unitless -1 2009 +#------------------------------------------------------------------------------ +# --- FOSSIL FUEL CO2 SURFACE CORRECTION FACTOR --- +# +# Fossil fuel CO2 emissions must be scaled down to avoid counting emissions +# already accounted for by CO and CH4 oxidation to CO2. +# +# The necssary annual reduction in emissions related to fossil fuels is +# determined as: global C mass from FF (CO+CH4) / global C mass from FF CO2 +# +# Note: GEOS-Chem v8-03-02 to v9-02, assumed: 0.0489 for all years but that +# value seems to correspond to mid-1980s fossil fuel combustion since CO +# emissions have held constant (Granier et al., 2011) while CO2 has risen. +# +# All scale factors for years 2000-2013 lumped into a single entry +#------------------------------------------------------------------------------ +(((CO2CORR +#410 CO2_FOSSFUEL_CORR 0.0489 - - - xy 1 1 + +## CO2 scale factors from CO oxidation by decade (comment out for now) +##410 CO2_FOSSFUEL_CORR 0.052815/0.054486/0.054902/0.055107/0.053166/0.051611/0.050065/0.048803/0.047060/0.046041 - 1980-1989/1/1/0 C xy 1 1 +##410 CO2_FOSSFUEL_CORR 0.045816/0.045153/0.045541/0.045556/0.044800/0.043875/0.042910/0.042206/0.042257/0.042468 - 1990-1999/1/1/0 C xy 1 1 +##410 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118 - 2000-2009/1/1/0 C xy 1 1 +##410 CO2_FOSSFUEL_CORR 0.030622/0.029674/0.029029/0.028355 - 2010-2013/1/1/0 C xy 1 1 + +410 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118/0.030622/0.029674/0.029029/0.028355 - 2000-2013/1/1/0 C xy 1 1 +)))CO2CORR + +# ----------------------------------------------------------------------------- +# --- CO2 conversion factors --- +# ----------------------------------------------------------------------------- +420 CH4TOCO2 2.75 - - - xy 1 1 +421 CTOCO2 3.6667 - - - xy 1 1 +430 NMHCSCALE 0.3333 - - - xy 1 1 + +#------------------------------------------------------------------------------ +# --- National fossil fuel CO2 scale factors (Nassar et al, 2013) --- +#------------------------------------------------------------------------------ +(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +440 CO2_DIURNAL $ROOT/CO2/v2015-04/FOSSIL/TIMES_diurnal_scale_factors.nc diurnal_scale_factors 2006/1/1/1-24 C xy 1 1 +441 CO2_WEEKLY $ROOT/CO2/v2015-04/FOSSIL/TIMES_weekly_scale_factors.nc weekly_scale_factors 2006/1/WD/0 C xy 1 1 +)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR + +#------------------------------------------------------------------------------ +# --- DOMESTIC AVIATION SURFACE CORRECTION FACTOR --- +# +# Regional scale factors slightly less than 1 remove surface contribution from +# domestic aviation in national fossil fuel emisisons, which should instead be +# counted in the air as a 3D field. This scale factor should be applied to the +# main/national fossil fuel emission field if using avaition emissions. +#------------------------------------------------------------------------------ +(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +480 AVIATION_SURF_CORR $ROOT/CO2/v2022-11/FOSSIL/Aviation_SurfCorr_SclFac.1x1.nc CO2 2004/1/1/0 C xy 1 1 +)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR + +)))USE_CO2_DATA #============================================================================== -# --- Scale factors used for species conversions --- +# --- Scale factors for CO emissions --- #============================================================================== +(((USE_CO_DATA + +#------------------------------------------------------------------------------ +# --- Diurnal scale factors for CO --- +#------------------------------------------------------------------------------ +26 GEIA_TOD_FOSSIL 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy 1 1 + +#------------------------------------------------------------------------------ +# --- Diurnal variablity of Chinese power plants from Liu et al. (EST, 2019) --- +# +# Also need to undo (Oper=-1) the global diurnal scale factors over China +#------------------------------------------------------------------------------ +35 PKU_pow_PM_BC_POC_VOC_CO 0.95/0.93/0.92/0.91/0.90/0.93/0.97/0.97/0.99/1.03/1.04/1.03/1.02/1.03/1.05/1.07/1.07/1.07/1.06/1.04/1.03/1.02/1.00/0.97 - - - xy unitless 1 2009 +37 GEIA_TOD_FOSSIL_UNDO 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy unitless -1 2009 -# VOC speciations +#------------------------------------------------------------------------------ +# --- Account for CO production by VOCs --- +#------------------------------------------------------------------------------ (((APEI.or.EDGARv43.or.DICE_Africa.or.QFED2 52 COPROD_FOSSIL 1.02 - - - xy unitless 1 54 COPROD_BIOMASS 1.05 - - - xy unitless 1 )))APEI.or.EDGARv43.or.DICE_Africa.or.QFED2 -# S to OCS ratio -70 StoOCS MATH:60.07/32.06 - - - xy unitless 1 +#------------------------------------------------------------------------------ +# --- DICE-Africa --- +# Charcoal production scale factor to reduce charcoal production +# by a factor of 5 after finding error in implementation of emission factors. +#------------------------------------------------------------------------------ +(((DICE_Africa +320 DICE_CP_SF 0.20 - - - xy 1 1 +)))DICE_Africa -# km-2 to m-2 -71 Km2ToM2 1.0e-6 - - - xy unitless 1 +#------------------------------------------------------------------------------ +# --- CO: HTAP Annual scale factors --- +#------------------------------------------------------------------------------ +(((HTAP +506 LIQFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985-2010/1/1/0 C xy 1 1 +507 LIQFUEL_1985 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985/1/1/0 C xy 1 -1 +509 LIQFUEL_2006 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2006/1/1/0 C xy 1 -1 +510 LIQFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2002/1/1/0 C xy 1 -1 +528 LIQFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2008-2010/1/1/0 C xy 1 -1 +)))HTAP -#============================================================================== -# --- QFED2 diurnal scale factors --- -# -# Fire diurnal scaling factors (% per hour) from WRAP Report to Project -# No. 178-6, July 2005 -#============================================================================== -(((QFED2.or.GFAS.or.BB4MIPS -75 QFED2_TOD 0.1392/0.1392/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.48/0.96/1.68/2.4/3.12/3.84/4.08/2.88/1.68/0.96/0.1368/0.1368/0.1368/0.1368/0.1368 - - - xy unitless 1 -)))QFED2.or.GFAS.or.BB4MIPS +)))USE_CO_DATA #============================================================================== -# --- EPA NEI day-of-week scale factors --- +# --- Scale factors for OCS emissions --- #============================================================================== -(((NEI2016_MONMEAN -211 NEI99_DOW_CO $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc CO 1999/1-12/WD/0 C xy 1 1 -)))NEI2016_MONMEAN +(((USE_OCS_DATA + +#------------------------------------------------------------------------------ +# --- S to OCS ratio --- +#------------------------------------------------------------------------------ +70 StoOCS MATH:60.07/32.06 - - - xy unitless 1 + +#------------------------------------------------------------------------------ +# --- km-2 to m-2 --- +#------------------------------------------------------------------------------ +71 Km2ToM2 1.0e-6 - - - xy unitless 1 + +)))USE_OCS_DATA + #============================================================================== -# --- EPA NEI2016 annual scale factors --- -# -# Annual scale factors were computed from the EPA Trends Report for Tier 1 CAPS -# (obtained 21 Sep 2021) using the "Total without wildfires" field. NH3 and -# PM2.5 only had values for 2002-2020, while the remaining species had yearly -# values for 1990-2020 (we include only 2002-2020 here). -# -# See NEI2016/v2021-06/national_tier1_caps+HEMCOscaling.xlsx for details. +# --- Inventory-specific scale factors --- #============================================================================== -(((NEI2016_MONMEAN -252 NEI2016_CO_YRSCALE 1.817/1.767/1.716/1.666/1.610/1.554/1.393/1.251/1.272/1.261/1.220/1.178/1.137/1.095/1.000/0.973/0.950/0.927/0.904 - 2002-2020/1/1/0 C xy 1 1 -)))NEI2016_MONMEAN -#============================================================================== +#------------------------------------------------------------------------------ # --- AEIC2019 aircraft emissions scale factors --- # # See http://geoschemdata.wustl.edu/ExtData/HEMCO/AEIC2019/v2022-03/AEIC_2019_technical_note.pdf -#============================================================================== -(((AEIC2019_DAILY.or.AEIC2019_MONMEAN - -#------------------------------------------------------------------------------ +# # Scaling factors for 1990-2019 derived from Lee et al. (2021). Lee et al. # (2021) only covers 1990 to 2018, so to get to 2019 it is assumed that the # growth from 2017 to 2018 is the same as that from 2018 to 2019. @@ -1405,6 +1572,9 @@ ${RUNDIR_CO2_COPROD} # # All scaling factors are included in here in HEMCO_Config.rc. #------------------------------------------------------------------------------ +(((AEIC2019_DAILY.or.AEIC2019_MONMEAN + +# If applying 1990-2019 scale factors (((AEIC_SCALE_1990_2019 241 AC_FBMULT 0.506/0.489/0.490/0.493/0.517/0.529/0.553/0.570/0.581/0.600/0.631/0.607/0.608/0.608/0.646/0.678/0.686/0.706/0.703/0.666/0.700/0.721/0.728/0.749/0.773/0.815/0.854/0.905/0.952/1.000 - 1990-2019/1/1/0 C xy 1 1 )))AEIC_SCALE_1990_2019 @@ -1414,116 +1584,84 @@ ${RUNDIR_CO2_COPROD} 241 AC_FBMULT 1.000000e+0 - - - xy 1 1 ))).not.AEIC_SCALE_1990_2019 -#------------------------------------------------------------------------------ # Assume 3.159 kg CO2 from every kg of fuel burned # cf Hileman, Stratton, & Donohoo, _J. Propul. Power_, 26(6), 1184–1196, 2010. -#------------------------------------------------------------------------------ 260 AEIC19_FBtoCO2 3.159 - - - xy unitless 1 )))AEIC2019_DAILY.or.AEIC2019_MONMEAN -#============================================================================== -# --- GFAS scale factors --- -#============================================================================== -(((GFAS -300 GFAS_EMITL $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc mami 2003-2021/1-12/1-31/0 C xy m 1 -)))GFAS - -#============================================================================== -# --- QFED vertical partitioning --- -# Following Fischer et al. (2014) and Travis et al. (2016), emit 35% of QFED -# emissions above the PBL. -#============================================================================== -(((QFED2 -311 QFED_PBL_FRAC 0.65 - - - xy 1 1 -312 QFED_FT_FRAC 0.35 - - - xy 1 1 -)))QFED2 - -#============================================================================== +#------------------------------------------------------------------------------ # --- CEDS vertical partitioning --- -#============================================================================== +#------------------------------------------------------------------------------ (((CEDSv2.or.CEDS_GBDMAPS 315 ENERGY_LEVS $ROOT/VerticalScaleFactors/v2021-05/gc_layers.nc g_energy 2017/1/1/0 C xyz 1 1 316 INDUSTRY_LEVS $ROOT/VerticalScaleFactors/v2021-05/gc_layers.nc g_industry 2017/1/1/0 C xyz 1 1 317 SHIP_LEVS $ROOT/VerticalScaleFactors/v2021-05/gc_layers.nc cmv_c3 2017/1/1/0 C xyz 1 1 )))CEDSv2.or.CEDS_GBDMAPS -#============================================================================== -# --- DICE-Africa --- -#============================================================================== -(((DICE_Africa -# Charcoal production scale factor to reduce charcoal production -# by a factor of 5 after finding error in implementation of emission factors. -320 DICE_CP_SF 0.20 - - - xy 1 1 -)))DICE_Africa - -#============================================================================== -# --- FOSSIL FUEL CO2 SURFACE CORRECTION FACTOR --- -# -# Fossil fuel CO2 emissions must be scaled down to avoid counting emissions -# already accounted for by CO and CH4 oxidation to CO2. -# -# The necssary annual reduction in emissions related to fossil fuels is -# determined as: global C mass from FF (CO+CH4) / global C mass from FF CO2 -# -# Note: GEOS-Chem v8-03-02 to v9-02, assumed: 0.0489 for all years but that -# value seems to correspond to mid-1980s fossil fuel combustion since CO -# emissions have held constant (Granier et al., 2011) while CO2 has risen. -# -# All scale factors for years 2000-2013 lumped into a single entry -#============================================================================== -(((CO2CORR +#------------------------------------------------------------------------------ +# --- GFAS scale factors --- +#------------------------------------------------------------------------------ +(((GFAS +300 GFAS_EMITL $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc mami 2003-2021/1-12/1-31/0 C xy m 1 +)))GFAS -#410 CO2_FOSSFUEL_CORR 0.0489 - - - xy 1 1 +#------------------------------------------------------------------------------ +# --- EPA NEI2016 (monthly-mean inventory) scale factors --- +#------------------------------------------------------------------------------ +(((NEI2016_MONMEAN -## CO2 scale factors from CO oxidation by decade (comment out for now) -##410 CO2_FOSSFUEL_CORR 0.052815/0.054486/0.054902/0.055107/0.053166/0.051611/0.050065/0.048803/0.047060/0.046041 - 1980-1989/1/1/0 C xy 1 1 -##410 CO2_FOSSFUEL_CORR 0.045816/0.045153/0.045541/0.045556/0.044800/0.043875/0.042910/0.042206/0.042257/0.042468 - 1990-1999/1/1/0 C xy 1 1 -##410 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118 - 2000-2009/1/1/0 C xy 1 1 -##410 CO2_FOSSFUEL_CORR 0.030622/0.029674/0.029029/0.028355 - 2010-2013/1/1/0 C xy 1 1 +# Weekday/Weekend scale factors +211 NEI99_DOW_CO $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc CO 1999/1-12/WD/0 C xy 1 1 -410 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118/0.030622/0.029674/0.029029/0.028355 - 2000-2013/1/1/0 C xy 1 1 -)))CO2CORR +# Annual scale factors were computed from the EPA Trends Report for Tier 1 CAPS +# (obtained 21 Sep 2021) using the "Total without wildfires" field. NH3 and +# PM2.5 only had values for 2002-2020, while the remaining species had yearly +# values for 1990-2020 (we include only 2002-2020 here). +# See NEI2016/v2021-06/national_tier1_caps+HEMCOscaling.xlsx for details. +252 NEI2016_CO_YRSCALE 1.817/1.767/1.716/1.666/1.610/1.554/1.393/1.251/1.272/1.261/1.220/1.178/1.137/1.095/1.000/0.973/0.950/0.927/0.904 - 2002-2020/1/1/0 C xy 1 1 -#============================================================================== -# --- CO2 CONVERSION FACTORS --- -#============================================================================== -420 CH4TOCO2 2.75 - - - xy 1 1 -421 CTOCO2 3.6667 - - - xy 1 1 -430 NMHCSCALE 0.3333 - - - xy 1 1 +)))NEI2016_MONMEAN -#============================================================================== -# ---- TIMES diurnal and weekly scale factors for national fossil fuel CO2 --- -# -# These temporal scale factors are described in Nassar et al. (2013) -#============================================================================== -(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR -440 CO2_DIURNAL $ROOT/CO2/v2015-04/FOSSIL/TIMES_diurnal_scale_factors.nc diurnal_scale_factors 2006/1/1/1-24 C xy 1 1 -441 CO2_WEEKLY $ROOT/CO2/v2015-04/FOSSIL/TIMES_weekly_scale_factors.nc weekly_scale_factors 2006/1/WD/0 C xy 1 1 -)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +#------------------------------------------------------------------------------ +# --- QFED2 diurnal scale factors --- +# Fire diurnal scaling factors (% per hour) from WRAP Report to Project +# No. 178-6, July 2005 +#------------------------------------------------------------------------------ +(((QFED2.or.GFAS.or.BB4MIPS +75 QFED2_TOD 0.1392/0.1392/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.48/0.96/1.68/2.4/3.12/3.84/4.08/2.88/1.68/0.96/0.1368/0.1368/0.1368/0.1368/0.1368 - - - xy unitless 1 +)))QFED2.or.GFAS.or.BB4MIPS -#============================================================================== -# --- DOMESTIC AVIATION SURFACE CORRECTION FACTOR --- -# -# Regional scale factors slightly less than 1 remove surface contribution from -# domestic aviation in national fossil fuel emisisons, which should instead be -# counted in the air as a 3D field. This scale factor should be applied to the -# main/national fossil fuel emission field if using avaition emissions. -#============================================================================== -(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR -480 AVIATION_SURF_CORR $ROOT/CO2/v2022-11/FOSSIL/Aviation_SurfCorr_SclFac.1x1.nc CO2 2004/1/1/0 C xy 1 1 -)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +#------------------------------------------------------------------------------ +# --- QFED vertical partitioning --- +# Following Fischer et al. (2014) and Travis et al. (2016), +# emit 35% of QFED emissions above the PBL. +#------------------------------------------------------------------------------ +(((QFED2 +311 QFED_PBL_FRAC 0.65 - - - xy 1 1 +312 QFED_FT_FRAC 0.35 - - - xy 1 1 +)))QFED2 -#============================================================================== -# --- CO: HTAP Annual scale factors --- -#============================================================================== -(((HTAP -506 LIQFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985-2010/1/1/0 C xy 1 1 -507 LIQFUEL_1985 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985/1/1/0 C xy 1 -1 -509 LIQFUEL_2006 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2006/1/1/0 C xy 1 -1 -510 LIQFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2002/1/1/0 C xy 1 -1 -528 LIQFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2008-2010/1/1/0 C xy 1 -1 -)))HTAP +(((CEDSv2 +#========================================================================= +# --- Sector-wise diel scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +2401 TOD_AGRICULTURE 0.599/0.599/0.599/0.599/0.599/0.649/0.748/0.898/1.098/1.247/1.447/1.597/1.796/1.746/1.696/1.547/1.347/1.098/0.898/0.748/0.649/0.599/0.599/0.599 - - - xy unitless 1 +2406 TOD_ENERGY 0.790/0.720/0.720/0.710/0.740/0.800/0.920/1.080/1.190/1.220/1.210/1.210/1.170/1.150/1.140/1.130/1.100/1.070/1.040/1.020/1.020/1.010/0.960/0.880 - - - xy unitless 1 +2407 TOD_INDUSTRY 0.750/0.750/0.780/0.820/0.880/0.950/1.020/1.090/1.160/1.220/1.280/1.300/1.220/1.240/1.250/1.160/1.080/1.010/0.950/0.900/0.850/0.810/0.780/0.750 - - - xy unitless 1 +2409 TOD_RESIDENTIAL 0.393/0.393/0.393/0.393/0.393/0.492/1.180/1.475/1.574/1.574/1.377/1.180/1.082/1.082/0.984/0.984/0.984/1.082/1.377/1.475/1.377/1.377/0.984/0.393 - - - xy unitless 1 +2411 TOD_TRANSPORT 0.190/0.090/0.060/0.050/0.090/0.220/0.860/1.840/1.860/1.410/1.240/1.200/1.320/1.440/1.450/1.590/2.030/2.080/1.510/1.060/0.740/0.620/0.610/0.440 - - - xy unitless 1 + +#========================================================================= +# --- Sector-wise day-of-week scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +706 DOW_ENERGY 0.850/1.060/1.060/1.060/1.060/1.060/0.850 - - - xy unitless 1 +707 DOW_INDUSTRY 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +709 DOW_RESIDENTIAL 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +711 DOW_TRANSPORT 0.790/1.020/1.060/1.080/1.100/1.140/0.810 - - - xy unitless 1 +)))CEDSv2 )))EMISSIONS @@ -1543,19 +1681,19 @@ ${RUNDIR_CO2_COPROD} (((USE_CH4_DATA (((Scarpelli_Mexico -1001 MEX_MASK $ROOT/MASKS/v2018-09/Mexico_Mask.001x001.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 -1010 MEX_MASK_MIRROR $ROOT/MASKS/v2018-09/Mexico_Mask_Mirror.001x001.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 +1001 MEX_MASK $ROOT/MASKS/v2024-04/Mexico_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 +1010 MEX_MASK_MIRROR $ROOT/MASKS/v2024-04/Mexico_Mask_Mirror.01x01.nc MASK 2000/1/1/0 C xy 1 1 -118/17/-95/33 )))Scarpelli_Mexico (((Scarpelli_Canada -1002 CAN_MASK $ROOT/MASKS/v2018-09/Canada_Mask.001x001.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 -1011 CAN_MASK_MIRROR $ROOT/MASKS/v2018-09/Canada_Mask_Mirror.001x001.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 +1002 CAN_MASK $ROOT/MASKS/v2024-04/Canada_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 +1011 CAN_MASK_MIRROR $ROOT/MASKS/v2024-04/Canada_Mask_Mirror.01x01.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 )))Scarpelli_Canada -(((GEPA -1008 CONUS_MASK $ROOT/MASKS/v2018-09/CONUS_Mask.001x001.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 -1009 CONUS_MASK_MIRROR $ROOT/MASKS/v2018-09/CONUS_Mask_Mirror.001x001.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 -)))GEPA +(((GHGI_v2.or.GHGI_v2_Express_Ext +1008 CONUS_MASK $ROOT/MASKS/v2024-04/CONUS_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 +1009 CONUS_MASK_MIRROR $ROOT/MASKS/v2024-04/CONUS_Mask_Mirror.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 +)))GHGI_v2.or.GHGI_v2_Express_Ext )))USE_CH4_DATA @@ -1568,20 +1706,24 @@ ${RUNDIR_CO2_COPROD} 2002 CANADA_MASK $ROOT/MASKS/v2018-09/Canada_mask.geos.1x1.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 )))APEI +# Renamed to avoid a namespace collision w/ GHGI mask above!!! (((NEI2016_MONMEAN -2007 CONUS_MASK $ROOT/MASKS/v2018-09/CONUS_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 +2007 NEI_CONUS_MASK $ROOT/MASKS/v2018-09/CONUS_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 )))NEI2016_MONMEAN (((DICE_Africa 2008 AFRICA_MASK $ROOT/MASKS/v2018-09/AF_LANDMASK.geos.05x0666.global.nc LANDMASK 1985/1/1/0 C xy 1 1 -20/-37/54/40 )))DICE_Africa +)))USE_CO_DATA.or.USE_CO2_DATA + +#============================================================================== +# --- Masks used for CH4, CO and CO2 simulation emissions --- +#============================================================================== (((CEDSv2.or.CEDS_GBDMAPS.or.CEDS_GBDMAPS_byFuelType 2009 CHINA_MASK $ROOT/MASKS/v2018-09/China_mask.generic.1x1.nc MASK 2000/1/1/0 C xy 1 1 70/10/150/60 )))CEDSv2.or.CEDS_GBDMAPS.or.CEDS_GBDMAPS_byFuelType -)))USE_CO_DATA.or.USE_CO2_DATA - )))EMISSIONS ### END SECTION MASKS ### diff --git a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem index 7cefb2aed..56eb15950 100644 --- a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem +++ b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem @@ -26,8 +26,7 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: not_used -GCAP2SCENARIO: not_used +GCAPSCENARIO: not_used Logfile: * DiagnFile: HEMCO_Diagn.rc DiagnPrefix: ./OutputDir/HEMCO_diagnostics @@ -37,8 +36,8 @@ Separator: / Unit tolerance: 1 Negative values: 0 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all ### END SECTION SETTINGS ### @@ -73,6 +72,7 @@ Warnings: 1 --> XIAO_C3H8 : ${RUNDIR_USE_XIAOC3H8} # 1985 --> LIANG_BROMOCARB : true # 2000 --> ORDONEZ_IODOCARB : true # 2000 + --> GT_Chlorine : true # 1960-2014 --> DECAYING_PLANTS : true # 1985 --> AFCID : true # 2015 # ----- AIRCRAFT EMISSIONS ---------------------------------------------------- @@ -84,7 +84,7 @@ Warnings: 1 # research purposes. Recommended setting: "AEIC2019_DAILY: false". # # 2. AEIC2019_MONMEAN selects monthly-mean AEIC 2019 emisisons, which will -# incur much less computational overhaead. This options should suffice +# incur much less computational overhaead. This option should suffice # for most simulations. Recommended setting "AEIC2019_MONMEAN: true". # # 3. AEIC_SCALE_1990_2019: If "false", the AEIC 2019 data from the year @@ -106,8 +106,8 @@ Warnings: 1 # See additional notes in the AEIC scale factor section below. #------------------------------------------------------------------------------ --> AEIC2019_DAILY : false # 2019 (daily data) - --> AEIC2019_MONMEAN : true # 2019 (monthly-mean data) - --> AEIC_SCALE_1990_2019 : true # Scale to year in 1990-2019 + --> AEIC2019_MONMEAN : ${RUNDIR_USE_AEIC} # 2019 (monthly-mean data) + --> AEIC_SCALE_1990_2019 : ${RUNDIR_USE_AEIC} # Scale to year in 1990-2019 # ----- SHIP EMISSIONS -------------------------------------------------------- --> SHIP : true --> CEDSv2_SHIP : ${RUNDIR_USE_CEDS} # 1750-2017 @@ -123,7 +123,7 @@ Warnings: 1 --> RCP_60 : false # 2005-2100 --> RCP_85 : false # 2005-2100 # ----- CMIP6 ANTHRO EMISSIONS / BOUNDARY CONDITIONS -------------------------- -# Set GCAP2SCENARIO (e.g., HIST, SSP585) above in SECTION SETTINGS +# Set GCAPSCENARIO (e.g., HIST, SSP585) above in SECTION SETTINGS --> CMIP6_SFC_BC : ${RUNDIR_CMIP6_FIELDS} # 1750-2100 --> CMIP6_SFC_LAND_ANTHRO : ${RUNDIR_CMIP6_FIELDS} # 1850-2100 --> CMIP6_AIRCRAFT : ${RUNDIR_CMIP6_FIELDS} # 1850-2100 @@ -132,6 +132,7 @@ Warnings: 1 --> QFED2 : false # 2000-2020 --> GFAS : false # 2003-2021 --> BB4MIPS : ${RUNDIR_CMIP6_FIELDS} # 1850-2100 + --> GFED4_CLIMATOLOGY : false # If true, turn off GFED ext below # ----- OFFLINE EMISSIONS ----------------------------------------------------- # To use online emissions instead set the offline emissions to 'false' and the # corresponding HEMCO extension to 'on': @@ -147,7 +148,7 @@ Warnings: 1 --> OFFLINE_DUST : ${RUNDIR_OFFLINE_DUST} # 1980-2019 --> OFFLINE_BIOGENICVOC : ${RUNDIR_OFFLINE_BIOVOC} # 1980-2020 --> OFFLINE_SEASALT : ${RUNDIR_OFFLINE_SEASALT} # 1980-2019 - --> CalcBrSeasalt : false + --> CalcBrSeasalt : true --> OFFLINE_SOILNOX : ${RUNDIR_OFFLINE_SOILNOX} # 1980-2020 # ----- NON-EMISSIONS DATA ---------------------------------------------------- --> UVALBEDO : true # 1985 @@ -155,7 +156,7 @@ Warnings: 1 --> GMI_OH : true # 2005 --> GMI_PROD_LOSS : true # 2005 --> OMOC_RATIO : false # 2010 - --> GMD_SFC_CH4 : ${RUNDIR_USE_GMDCH4} # 1979-2020 + --> GMD_SFC_CH4 : ${RUNDIR_USE_GMDCH4} # 1975-2022 --> CMIP6_SFC_CH4 : false # 1750-1978 --> OLSON_LANDMAP : false # 1985 --> YUAN_MODIS_LAI : false # 2000-2020 @@ -169,6 +170,7 @@ Warnings: 1 --> LUT data format : txt --> LUT source dir : $ROOT/PARANOX/v2015-02 103 LightNOx : on NO + --> LightningClimatology : ${RUNDIR_LIGHTNOX_CLIM} --> CDF table : $ROOT/LIGHTNOX/v2014-07/light_dist.ott2010.dat 104 SoilNOx : ${RUNDIR_SOILNOX_EXT} NO --> Use fertilizer NOx : true @@ -189,7 +191,7 @@ Warnings: 1 --> NH snow age : 3.0 --> SH snow age : 1.5 --> N per snowflake : 5.0 - --> Model sea salt Br- : false + --> Model sea salt Br- : true --> Br- mass ratio : 2.11e-3 108 MEGAN : on ISOP/ACET/PRPE/C2H4/ALD2/MOH/EOH/MTPA/MTPO/LIMO/SESQ/SOAP/SOAS --> Isoprene scaling : 1.0 @@ -201,7 +203,7 @@ Warnings: 1 --> Monoterp to SOAS : 0.050 --> Othrterp to SOAP : 0.050 --> Othrterp to SOAS : 0.050 -111 GFED : ${RUNDIR_GFED_EXT} NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/BCPO/BCPI/OCPO/OCPI/POG1/POG2/MTPA/BENZ/TOLU/XYLE/NAP/EOH/MOH/SOAP +111 GFED : ${RUNDIR_GFED_EXT} NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/BCPO/BCPI/OCPO/OCPI/POG1/POG2/MTPA/BENZ/TOLU/XYLE/NAP/EOH/MOH/SOAP/FURA/PHEN/MVK/ISOP/ACTA/MGLY/GLYX/RCHO --> GFED4 : true --> GFED_daily : false --> GFED_3hourly : false @@ -228,8 +230,19 @@ Warnings: 1 120 Inorg_Iodine : on HOI/I2 --> Emit HOI : true --> Emit I2 : true -130 TOMAS_Jeagle : ${RUNDIR_TOMAS_SEASALT} SS1/SS2/SS3/SS4/SS5/SS6/SS7/SS8/SS9/SS10/SS11/SS12/SS13/SS14/SS15/SS16/SS17/SS18/SS19/SS20/SS21/SS22/SS23/SS24/SS25/SS26/SS27/SS28/SS29/SS30/SS31/SS32/SS33/SS34/SS35/SS36/SS37/SS38/SS39/SS40 -131 TOMAS_DustDead : ${RUNDIR_TOMAS_DUSTDEAD} DUST1/DUST2/DUST3/DUST4/DUST5/DUST6/DUST7/DUST8/DUST9/DUST10/DUST11/DUST12/DUST13/DUST14/DUST15/DUST16/DUST17/DUST18/DUST19/DUST20/DUST21/DUST22/DUST23/DUST24/DUST25/DUST26/DUST27/DUST28/DUST29/DUST30/DUST31/DUST32/DUST33/DUST34/DUST35/DUST36/DUST37/DUST38/DUST39/DUST40 +130 TOMAS_Jeagle : ${RUNDIR_TOMAS_SEASALT} SS01/SS02/SS03/SS04/SS05/SS06/SS07/SS08/SS09/SS10/SS11/SS12/SS13/SS14/SS15/SS16/SS17/SS18/SS19/SS20/SS21/SS22/SS23/SS24/SS25/SS26/SS27/SS28/SS29/SS30/SS31/SS32/SS33/SS34/SS35/SS36/SS37/SS38/SS39/SS40 + --> Reduce SS cold water : true + --> Blowing Snow SS : true + --> NH FYI snow salinity : 0.1 + --> NH MYI snow salinity : 0.05 + --> SH FYI snow salinity : 0.03 + --> SH MYI snow salinity : 0.015 + --> NH snow age : 3.0 + --> SH snow age : 1.5 + --> N per snowflake : 1.0 + --> Model sea salt Br- : false + --> Br- mass ratio : 2.11e-3 +131 TOMAS_DustDead : ${RUNDIR_TOMAS_DUSTDEAD} DUST01/DUST02/DUST03/DUST04/DUST05/DUST06/DUST07/DUST08/DUST09/DUST10/DUST11/DUST12/DUST13/DUST14/DUST15/DUST16/DUST17/DUST18/DUST19/DUST20/DUST21/DUST22/DUST23/DUST24/DUST25/DUST26/DUST27/DUST28/DUST29/DUST30/DUST31/DUST32/DUST33/DUST34/DUST35/DUST36/DUST37/DUST38/DUST39/DUST40 --> Mass tuning factor : ${RUNDIR_DUSTDEAD_TF} ### END SECTION EXTENSION SWITCHES ### @@ -279,322 +292,322 @@ Warnings: 1 # aren't included in the Tier 1 CAPS file/ #============================================================================== (((NEI2016_MONMEAN -0 EPA16_BCPI__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__afdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__afdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__afdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_BCPI__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__afdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__afdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__afdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__afdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__afdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_SO4__afdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__agACET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__agALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__agALDX $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__agBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_C2H4__agETH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__agETHA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__agETOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__agFORM $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_PRPE__agIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__agKET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__agMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__agNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_PRPE__agOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__agPAR $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_C3H8__agPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_TOLU__agTOL $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__agXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__airportsACET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__airportsACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__airportsALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__airportsALDX $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__airportsBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__afdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__agACET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__agALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__agALDX $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__agBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_C2H4__agETH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__agETHA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__agETOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__agFORM $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_PRPE__agIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__agKET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__agMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__agNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_PRPE__agOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__agPAR $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_C3H8__agPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_TOLU__agTOL $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__agXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__airportsACET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__airportsACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__airportsALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__airportsALDX $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__airportsBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__airportsSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__airportsETH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__airportsETHA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__airportsETOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__airportsFORM $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__airportsHONO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__airportsIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__airportsKET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__airportsMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NO__airportsNO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__airportsNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__airportsOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__airportsPAR $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__airportsPNA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__airportsPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__airportsPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__airportsETH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__airportsETHA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__airportsETOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__airportsFORM $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__airportsHONO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__airportsKET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__airportsMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NO__airportsNO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__airportsNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__airportsPAR $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__airportsPNA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__airportsPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__airportsPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__airportsPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__airportsPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__airportsPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__airportsPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__airportsSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__airportsPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__airportsPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__airportsSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__airportspFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__airportsSULF $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__airportsTOL $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__airportsXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__nonptACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__nonptACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__nonptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__nonptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__nonptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__nonptCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__airportsSULF $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__airportsTOL $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__airportsXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonptACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonptACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__nonptCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__nonptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__nonptETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__nonptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__nonptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__nonptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HCl__nonptHCL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HCL 2016/1-12/1/0 R xyz kg/m2/s HCl 1007 1 50 -0 EPA16_HNO2__nonptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__nonptKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__nonptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__nonptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__nonptNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__nonptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__nonptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__nonptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__nonptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__nonptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__nonptETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HCl__nonptHCL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HCL 2016/1-12/1/0 R xy kg/m2/s HCl 1007 1 50 +0 EPA16_HNO2__nonptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonptKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonptNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__nonptPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__nonptPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__nonptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__nonptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__nonptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__nonptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__nonptpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__nonptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__nonptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__nonptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__nonroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__nonroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__nonroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__nonroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__nonroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__nonptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__nonroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__nonroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__nonroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__nonroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__nonroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__nonroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__nonroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__nonroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__nonroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__nonroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__nonroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__nonroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__nonroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__nonroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__nonroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__nonroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__nonroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__nonroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__nonroadPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__nonroadPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__nonroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__nonroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__nonroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__nonroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__nonroadspFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__nonroadSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__nonroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__nonroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__npogACET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__npogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__npogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__npogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__npogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__npogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__nonroadSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__npogACET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__npogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__npogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__npogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__npogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__npogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__npogSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__npogETH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__npogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__npogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__npogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__npogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__npogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__npogKET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__npogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__npogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__npogNO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__npogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__npogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__npogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__npogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__npogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__npogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__npogETH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__npogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__npogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__npogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__npogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__npogKET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__npogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__npogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__npogNO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__npogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__npogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__npogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__npogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__npogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__npogPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__npogPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__npogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__npogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__npogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__npogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__npogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__npogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__npogpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__npogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__npogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__npogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__npogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__npogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__npogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__onroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__onroadPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__onroadPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__onroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__onroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroadpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_TOLU__onroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_caACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroad_caACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_caALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_caALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_caBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_TOLU__onroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_caACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_caACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_caALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_caALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_caBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP_onroad__caSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_caETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_caETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_caETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_caFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_caHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_caIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_caKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_caMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_caNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_caNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_caNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_caOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_caPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_caPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_caPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_caPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__onroad_caETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_caETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_caETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_caFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_caHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_caKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_caMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_caNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_caNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_caNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_caPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_caPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_caPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_caPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__onroad_caPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__onroad_caPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__onroad_caPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_caPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_caSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__onroad_caPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_caPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_caSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_capFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_TOLU__onroad_caTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_caXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__railACET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__railACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__railALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__railALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__railBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_TOLU__onroad_caTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_caXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__railACET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__railACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__railALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__railALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__railBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__railSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__railETH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__railETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__railETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__railFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__railHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__railIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__railKET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__railMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__railNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__railNO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__railNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__railOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__railPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__railPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__railPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__railPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__railETH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__railETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__railETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__railFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__railHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__railKET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__railMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__railNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__railNO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__railNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__railPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__railPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__railPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__railPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__railPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__railPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__railPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__railPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__railSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__railPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__railPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__railSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__railpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__railSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__railTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__railXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__rwcACET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__rwcACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__rwcALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__rwcALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__rwcBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_Cl2__rwcCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 -0 EPA16_CO__rwcCO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__railSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__railTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__railXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__rwcACET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__rwcACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__rwcALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__rwcALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__rwcBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__rwcCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__rwcCO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__rwcSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__rwcETH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__rwcETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__rwcETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__rwcFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__rwcHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__rwcIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__rwcKET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__rwcMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__rwcNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__rwcNO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__rwcNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__rwcOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__rwcPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__rwcPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__rwcPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__rwcPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__rwcETH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__rwcETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__rwcETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__rwcFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__rwcHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__rwcKET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__rwcMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__rwcNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__rwcNO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__rwcNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__rwcPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__rwcPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__rwcPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__rwcPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__rwcPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__rwcPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__rwcPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__rwcPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__rwcSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__rwcPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__rwcPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__rwcSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__rwcpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__rwcSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__rwcTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__rwcXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_SO4__rwcSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__rwcTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__rwcXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 0 EPA16_ACET__c1c2ACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 0 EPA16_ALD2__c1c2ALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 0 EPA16_RCHO__c1c2ALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 @@ -779,167 +792,167 @@ Warnings: 1 0 EPA16_SO4__ptnonipmSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 0 EPA16_TOLU__ptnonipmTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 0 EPA16_XYLE__ptnonipmXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_canACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_canALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_canALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_canBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_ACET__onroad_canACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_canALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_canALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_canBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroad_canSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_canETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_canETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_canETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_canFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_canHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_canIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_canKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_canMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_canNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_canNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_canNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_canOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_canPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_canPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_canPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_canPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__onroad_canETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_canETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_canETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_canFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_canHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_canKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_canMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_canNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_canNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_canNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_canPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_canPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_canPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_canPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__onroad_canPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__onroad_canPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__onroad_canPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_canPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_canSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__onroad_canPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_canPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_canSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_canpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__onroad_canSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__onroad_canTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_canXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_ACET__onroad_mexACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_MACR__onroad_mexACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 -0 EPA16_ALD2__onroad_mexALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__onroad_mexALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__onroad_mexBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__onroad_canSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_canTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_canXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_mexACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_mexACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_mexALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_mexALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_mexBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__onroad_mexSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__onroad_mexETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__onroad_mexETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__onroad_mexETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__onroad_mexFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__onroad_mexHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_mexIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__onroad_mexKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__onroad_mexMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__onroad_mexNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__onroad_mexNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__onroad_mexNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__onroad_mexOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__onroad_mexPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__onroad_mexPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__onroad_mexPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__onroad_mexPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__onroad_mexETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_mexETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_mexETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_mexFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_mexHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_mexKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_mexMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_mexNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_mexNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_mexNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_mexPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_mexPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_mexPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_mexPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__onroad_mexPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__onroad_mexPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__onroad_mexPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__onroad_mexPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__onroad_mexSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__onroad_mexPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_mexPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_mexSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__onroad_mexpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__onroad_mexSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__onroad_mexTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__onroad_mexXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_BCPI__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othafdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othafdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othafdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_SO4__onroad_mexSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_mexTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_mexXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othafdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othafdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othafdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__othafdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__othafdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_SO4__othafdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__otharACET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__otharALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__otharALDX $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__otharBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__othafdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__otharACET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__otharALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__otharALDX $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__otharBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__otharSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__otharETH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__otharETHA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__otharETOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__otharFORM $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__otharHONO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__otharIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__otharKET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__otharMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__otharNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__otharNO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__otharNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__otharOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__otharPAR $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__otharPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__otharPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__otharPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__otharETH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__otharETHA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__otharETOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__otharFORM $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__otharHONO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__otharKET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__otharMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__otharNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__otharNO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__otharNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__otharPAR $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__otharPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__otharPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__otharPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__otharPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__otharPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__otharPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__otharPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__otharSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__otharPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__otharPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__otharSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__otharpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__otharSULF $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__otharTOL $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__otharXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 -0 EPA16_BCPI__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othptdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othptdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othptdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_SO4__otharSULF $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__otharTOL $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__otharXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__othptdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__othptdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_SO4__othptdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_ACET__othptACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 -0 EPA16_ALD2__othptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 -0 EPA16_RCHO__othptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 -0 EPA16_BENZ__othptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 -0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SO4__othptdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__othptACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__othptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__othptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__othptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 0 EPA16_SOAP__othptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 -0 EPA16_C2H4__othptETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 -0 EPA16_C2H6__othptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 -0 EPA16_EOH__othptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 -0 EPA16_CH2O__othptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 -0 EPA16_HNO2__othptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 -0 EPA16_PRPE__othptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_MEK__othptKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 -0 EPA16_MOH__othptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 -0 EPA16_NH3__othptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 -0 EPA16_NO__othptNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 -0 EPA16_NO2__othptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 -0 EPA16_PRPE__othptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 -0 EPA16_ALK4__othptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 -0 EPA16_BCPI__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 -0 EPA16_BCPO__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 -0 EPA16_HNO4__othptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 -0 EPA16_NH4__othptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 -0 EPA16_NIT__othptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 -0 EPA16_OCPI__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 -0 EPA16_OCPO__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_C2H4__othptETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__othptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__othptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__othptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__othptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__othptKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__othptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__othptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__othptNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__othptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__othptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 0 EPA16_POG1__othptPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 0 EPA16_POG2__othptPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 -0 EPA16_C3H8__othptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 -0 EPA16_SO4__othptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_SO2__othptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_C3H8__othptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__othptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__othptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 0 EPA16_pFe__othptpFe - - - - - - pFe 26/218/255/1007/69 1 50 -0 EPA16_SO4__othptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 -0 EPA16_TOLU__othptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 -0 EPA16_XYLE__othptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_SO4__othptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__othptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__othptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 )))NEI2016_MONMEAN #============================================================================== @@ -1356,264 +1369,264 @@ Warnings: 1 # EDGAR, HTAPv3 or CMIP6_SFC_LAND_ANTHRO for the global base emissions %%% #============================================================================== (((CEDSv2 -0 CEDS_NO_AGR $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_agr 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_ENE $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ene 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_IND $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ind 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_TRA $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_tra 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_RCO $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_rco 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_SLV $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_slv 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CEDS_NO_WST $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_wst 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 - -0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_AGR - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_ENE - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_IND - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_TRA - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_RCO - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_SLV - - - - - - SOAP 26/280 1 5 -0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CEDS_SOAP_WST - - - - - - SOAP 26/280 1 5 - -0 CEDS_SO2_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_AGR - - - - - - SO4 63 1 5 -0 CEDS_pFe_AGR - - - - - - pFe 66 1 5 -0 CEDS_SO2_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_ENE - - - - - - SO4 63 1 5 -0 CEDS_pFe_ENE - - - - - - pFe 66 1 5 -0 CEDS_SO2_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_IND - - - - - - SO4 63 1 5 -0 CEDS_pFe_IND - - - - - - pFe 66 1 5 -0 CEDS_SO2_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_TRA - - - - - - SO4 63 1 5 -0 CEDS_pFe_TRA - - - - - - pFe 66 1 5 -0 CEDS_SO2_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_RCO - - - - - - SO4 63 1 5 -0 CEDS_pFe_RCO - - - - - - pFe 66 1 5 -0 CEDS_SO2_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_SLV - - - - - - SO4 63 1 5 -0 CEDS_pFe_SLV - - - - - - pFe 66 1 5 -0 CEDS_SO2_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CEDS_SO4_WST - - - - - - SO4 63 1 5 -0 CEDS_pFe_WST - - - - - - pFe 66 1 5 - -0 CEDS_NH3_AGR $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_agr 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_ENE $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ene 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_IND $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ind 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_TRA $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_tra 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_RCO $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_rco 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_SLV $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_slv 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CEDS_NH3_WST $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_wst 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 - -0 CEDS_BCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_AGR - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_ENE - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_IND - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_TRA - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_RCO - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_SLV - - - - - - BCPO 71 1 5 -0 CEDS_BCPI_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CEDS_BCPO_WST - - - - - - BCPO 71 1 5 - -0 CEDS_OCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_AGR - - - - - - OCPO 73 1 5 -0 CEDS_POG1_AGR - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_AGR - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_ENE - - - - - - OCPO 73 1 5 -0 CEDS_POG1_ENE - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_ENE - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_IND - - - - - - OCPO 73 1 5 -0 CEDS_POG1_IND - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_IND - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_TRA - - - - - - OCPO 73 1 5 -0 CEDS_POG1_TRA - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_TRA - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_RCO - - - - - - OCPO 73 1 5 -0 CEDS_POG1_RCO - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_RCO - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_SLV - - - - - - OCPO 73 1 5 -0 CEDS_POG1_SLV - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_SLV - - - - - - POG2 74/77 1 5 -0 CEDS_OCPI_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CEDS_OCPO_WST - - - - - - OCPO 73 1 5 -0 CEDS_POG1_WST - - - - - - POG1 74/76 1 5 -0 CEDS_POG2_WST - - - - - - POG2 74/77 1 5 +0 CEDS_NO_AGR $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_agr 1750-2019/1-12/1/0 C xy kg/m2/s NO 2401 1 5 +0 CEDS_NO_ENE $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s NO 2406/706/315 1 5 +0 CEDS_NO_IND $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s NO 2407/707/316 1 5 +0 CEDS_NO_TRA $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_tra 1750-2019/1-12/1/0 C xy kg/m2/s NO 2411/711 1 5 +0 CEDS_NO_RCO $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_rco 1750-2019/1-12/1/0 C xy kg/m2/s NO 2409/709 1 5 +0 CEDS_NO_SLV $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_slv 1750-2019/1-12/1/0 C xy kg/m2/s NO 2407/707 1 5 +0 CEDS_NO_WST $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_wst 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 + +0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 2401 1 5 +0 CEDS_SOAP_AGR - - - - - - SOAP 280/2401 1 5 +0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2406/706/315 1 5 +0 CEDS_SOAP_ENE - - - - - - SOAP 280/2406/706/315 1 5 +0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO 2407/707/316 1 5 +0 CEDS_SOAP_IND - - - - - - SOAP 280/2407/707/316 1 5 +0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 2411/711 1 5 +0 CEDS_SOAP_TRA - - - - - - SOAP 280/2411/711 1 5 +0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 2409/709 1 5 +0 CEDS_SOAP_RCO - - - - - - SOAP 280/2409/709 1 5 +0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 2407/707 1 5 +0 CEDS_SOAP_SLV - - - - - - SOAP 280/2407/707 1 5 +0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_WST - - - - - - SOAP 26/280 1 5 + +0 CEDS_SO2_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2401 1 5 +0 CEDS_SO4_AGR - - - - - - SO4 63/2401 1 5 +0 CEDS_pFe_AGR - - - - - - pFe 66/2401 1 5 +0 CEDS_SO2_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s SO2 2406/706/315 1 5 +0 CEDS_SO4_ENE - - - - - - SO4 63/2406/706/315 1 5 +0 CEDS_pFe_ENE - - - - - - pFe 66/2406/706/315 1 5 +0 CEDS_SO2_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s SO2 2407/707/316 1 5 +0 CEDS_SO4_IND - - - - - - SO4 63/2407/707/316 1 5 +0 CEDS_pFe_IND - - - - - - pFe 66/2407/707/316 1 5 +0 CEDS_SO2_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2411/711 1 5 +0 CEDS_SO4_TRA - - - - - - SO4 63/2411/711 1 5 +0 CEDS_pFe_TRA - - - - - - pFe 66/2411/711 1 5 +0 CEDS_SO2_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2409/709 1 5 +0 CEDS_SO4_RCO - - - - - - SO4 63/2409/709 1 5 +0 CEDS_pFe_RCO - - - - - - pFe 66/2409/709 1 5 +0 CEDS_SO2_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s SO2 2407/707 1 5 +0 CEDS_SO4_SLV - - - - - - SO4 63/2407/707 1 5 +0 CEDS_pFe_SLV - - - - - - pFe 66/2407/707 1 5 +0 CEDS_SO2_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_WST - - - - - - SO4 63 1 5 +0 CEDS_pFe_WST - - - - - - pFe 66 1 5 + +0 CEDS_NH3_AGR $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_agr 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2401 1 5 +0 CEDS_NH3_ENE $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s NH3 2406/706/315 1 5 +0 CEDS_NH3_IND $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s NH3 2407/707/316 1 5 +0 CEDS_NH3_TRA $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_tra 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2411/711 1 5 +0 CEDS_NH3_RCO $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_rco 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2409/709 1 5 +0 CEDS_NH3_SLV $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_slv 1750-2019/1-12/1/0 C xy kg/m2/s NH3 2407/707 1 5 +0 CEDS_NH3_WST $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_wst 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 + +0 CEDS_BCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2401 1 5 +0 CEDS_BCPO_AGR - - - - - - BCPO 71/2401 1 5 +0 CEDS_BCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s BCPI 70/2406/706/315 1 5 +0 CEDS_BCPO_ENE - - - - - - BCPO 71/2406/706/315 1 5 +0 CEDS_BCPI_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s BCPI 70/2407/707/316 1 5 +0 CEDS_BCPO_IND - - - - - - BCPO 71/2407/707/316 1 5 +0 CEDS_BCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2411/711 1 5 +0 CEDS_BCPO_TRA - - - - - - BCPO 71/2411/711 1 5 +0 CEDS_BCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2409/709 1 5 +0 CEDS_BCPO_RCO - - - - - - BCPO 71/2409/709 1 5 +0 CEDS_BCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70/2407/707 1 5 +0 CEDS_BCPO_SLV - - - - - - BCPO 71/2407/707 1 5 +0 CEDS_BCPI_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_WST - - - - - - BCPO 71 1 5 + +0 CEDS_OCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2401 1 5 +0 CEDS_OCPO_AGR - - - - - - OCPO 73/2401 1 5 +0 CEDS_POG1_AGR - - - - - - POG1 74/76/2401 1 5 +0 CEDS_POG2_AGR - - - - - - POG2 74/77/2401 1 5 +0 CEDS_OCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s OCPI 72/2406/706/315 1 5 +0 CEDS_OCPO_ENE - - - - - - OCPO 73/2406/706/315 1 5 +0 CEDS_POG1_ENE - - - - - - POG1 74/76/2406/706/315 1 5 +0 CEDS_POG2_ENE - - - - - - POG2 74/77/2406/706/315 1 5 +0 CEDS_OCPI_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s OCPI 72/2407/707/316 1 5 +0 CEDS_OCPO_IND - - - - - - OCPO 73/2407/707/316 1 5 +0 CEDS_POG1_IND - - - - - - POG1 74/76/2407/707/316 1 5 +0 CEDS_POG2_IND - - - - - - POG2 74/77/2407/707/316 1 5 +0 CEDS_OCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2411/711 1 5 +0 CEDS_OCPO_TRA - - - - - - OCPO 73/2411/711 1 5 +0 CEDS_POG1_TRA - - - - - - POG1 74/76/2411/711 1 5 +0 CEDS_POG2_TRA - - - - - - POG2 74/77/2411/711 1 5 +0 CEDS_OCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2409/709 1 5 +0 CEDS_OCPO_RCO - - - - - - OCPO 73/2409/709 1 5 +0 CEDS_POG1_RCO - - - - - - POG1 74/76/2409/709 1 5 +0 CEDS_POG2_RCO - - - - - - POG2 74/77/2409/709 1 5 +0 CEDS_OCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72/2407/707 1 5 +0 CEDS_OCPO_SLV - - - - - - OCPO 73/2407/707 1 5 +0 CEDS_POG1_SLV - - - - - - POG1 74/76/2407/707 1 5 +0 CEDS_POG2_SLV - - - - - - POG2 74/77/2407/707 1 5 +0 CEDS_OCPI_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_WST - - - - - - OCPO 73 1 5 +0 CEDS_POG1_WST - - - - - - POG1 74/76 1 5 +0 CEDS_POG2_WST - - - - - - POG2 74/77 1 5 # Comment out CO2 for fullchem simulations: CO2 not advected -#0 CEDS_CO2_AGR $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_ENE $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_IND $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_TRA $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_RCO $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_SLV $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CEDS_CO2_WST $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_AGR $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_ENE $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CO2 315 1 5 +#0 CEDS_CO2_IND $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CO2 316 1 5 +#0 CEDS_CO2_TRA $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_RCO $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_SLV $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_WST $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 # Comment out CH4 for fullchem simulations: do not use CH4 emissions # CEDS CH4 emissions are only available for 1970-2014 -#0 CEDS_CH4_AGR $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_ENE $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_IND $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_TRA $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_RCO $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_SLV $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CEDS_CH4_WST $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_AGR $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_ENE $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ene 1970-2014/1-12/1/0 C xyL* kg/m2/s CH4 315 1 5 +#0 CEDS_CH4_IND $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ind 1970-2014/1-12/1/0 C xyL* kg/m2/s CH4 316 1 5 +#0 CEDS_CH4_TRA $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_RCO $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_SLV $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_WST $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 # NOTE: EOH files in CEDS/v2021-06 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here -0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_AGR - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_AGR - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_ENE - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_ENE - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_IND - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_IND - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_TRA - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_TRA - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_RCO - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_RCO - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_SLV - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_SLV - - - - - - ROH 26/92 1 5 -0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CEDS_EOH_WST - - - - - - EOH 26/91 1 5 -0 CEDS_ROH_WST - - - - - - ROH 26/92 1 5 - -0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 - -0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 - -0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 - -0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 - -0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 - -0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 - -0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 - -0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 - -0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 - -0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 - -0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 - -0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 90/2401 1 5 +0 CEDS_EOH_AGR - - - - - - EOH 91/2401 1 5 +0 CEDS_ROH_AGR - - - - - - ROH 92/2401 1 5 +0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s MOH 90/2406/706/315 1 5 +0 CEDS_EOH_ENE - - - - - - EOH 91/2406/706/315 1 5 +0 CEDS_ROH_ENE - - - - - - ROH 92/2406/706/315 1 5 +0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s MOH 90/2407/707/316 1 5 +0 CEDS_EOH_IND - - - - - - EOH 91/2407/707/316 1 5 +0 CEDS_ROH_IND - - - - - - ROH 92/2407/707/316 1 5 +0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 90/2411/711 1 5 +0 CEDS_EOH_TRA - - - - - - EOH 91/2411/711 1 5 +0 CEDS_ROH_TRA - - - - - - ROH 92/2411/711 1 5 +0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 90/2409/709 1 5 +0 CEDS_EOH_RCO - - - - - - EOH 91/2409/709 1 5 +0 CEDS_ROH_RCO - - - - - - ROH 92/2409/709 1 5 +0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 90/2407/707 1 5 +0 CEDS_EOH_SLV - - - - - - EOH 91/2407/707 1 5 +0 CEDS_ROH_SLV - - - - - - ROH 92/2407/707 1 5 +0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_WST - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_WST - - - - - - ROH 26/92 1 5 + +0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 2401 1 5 +0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H6 2406/706/315 1 5 +0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H6 2407/707/316 1 5 +0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 2411/711 1 5 +0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 2409/709 1 5 +0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 2407/707 1 5 +0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 + +0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 2401 1 5 +0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C3H8 2406/706/315 1 5 +0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C3H8 2407/707/316 1 5 +0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 2411/711 1 5 +0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 2409/709 1 5 +0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 2407/707 1 5 +0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 + +0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2401 1 5 +0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2406/706/315 1 5 +0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2407/707/316 1 5 +0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2411/711 1 5 +0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2409/709 1 5 +0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2407/707 1 5 +0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2401 1 5 +0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2406/706/315 1 5 +0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2407/707/316 1 5 +0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2411/711 1 5 +0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2409/709 1 5 +0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2407/707 1 5 +0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2401 1 5 +0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2406/706/315 1 5 +0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALK4 2407/707/316 1 5 +0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2411/711 1 5 +0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2409/709 1 5 +0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 2407/707 1 5 +0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 2401 1 5 +0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H4 2406/706/315 1 5 +0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H4 2407/707/316 1 5 +0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 2411/711 1 5 +0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 2409/709 1 5 +0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 2407/707 1 5 +0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 + +0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 2401 1 5 +0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s PRPE 2406/706/315 1 5 +0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s PRPE 2407/707/316 1 5 +0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 2411/711 1 5 +0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 2409/709 1 5 +0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 2407/707 1 5 +0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 + +0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 2401 1 5 +0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H2 2406/706/315 1 5 +0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s C2H2 2407/707/316 1 5 +0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 2411/711 1 5 +0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 2409/709 1 5 +0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 2407/707 1 5 +0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 + +0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 2401 1 5 +0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s BENZ 2406/706/315 1 5 +0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s BENZ 2407/707/316 1 5 +0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 2411/711 1 5 +0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 2409/709 1 5 +0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 2407/707 1 5 +0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 + +0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 2401 1 5 +0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s TOLU 2406/706/315 1 5 +0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s TOLU 2407/707/316 1 5 +0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 2411/711 1 5 +0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 2409/709 1 5 +0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 2407/707 1 5 +0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 + +0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 2401 1 5 +0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s XYLE 2406/706/315 1 5 +0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s XYLE 2407/707/316 1 5 +0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 2411/711 1 5 +0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 2409/709 1 5 +0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 2407/707 1 5 +0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 + +0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 2401 1 5 +0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s CH2O 2406/706/315 1 5 +0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s CH2O 2407/707/316 1 5 +0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 2411/711 1 5 +0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 2409/709 1 5 +0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 2407/707 1 5 +0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 + +0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 2401 1 5 +0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s ALD2 2406/706/315 1 5 +0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s ALD2 2407/707/316 1 5 +0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 2411/711 1 5 +0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 2409/709 1 5 +0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 2407/707 1 5 +0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 + +0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 2401 1 5 +0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s MEK 2406/706/315 1 5 +0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s MEK 2407/707/316 1 5 +0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 2411/711 1 5 +0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 2409/709 1 5 +0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 2407/707 1 5 +0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 + +0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 2401 1 5 +0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xyL* kg/m2/s HCOOH 2406/706/315 1 5 +0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xyL* kg/m2/s HCOOH 2407/707/316 1 5 +0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 2411/711 1 5 +0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 2409/709 1 5 +0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 2407/707 1 5 +0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 )))CEDSv2 #============================================================================== @@ -1631,10 +1644,13 @@ Warnings: 1 (((CEDS_GBDMAPS >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS.rc )))CEDS_GBDMAPS + (((CEDS_GBDMAPS_byFuelType -(((.not.CEDS_GBDMAPS.and..not.CEDSv2 +(((.not.CEDS_GBDMAPS +(((.not.CEDSv2 >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS_byFuelType.rc -))).not.CEDS_GBDMAPS.and..not.CEDSv2 +))).not.CEDSv2 +))).not.CEDS_GBDMAPS )))CEDS_GBDMAPS_byFuelType #============================================================================== @@ -1642,299 +1658,299 @@ Warnings: 1 # CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with # the CMIP6 simulation experimental design. # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS # #============================================================================== (((CMIP6_SFC_LAND_ANTHRO -0 CMIP6_NO_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_agr 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_ene 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_ind 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_tra 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_rco 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_slv 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 -0 CMIP6_NO_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_wst 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 - -0 CMIP6_CO_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_AGR - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_ENE - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_IND - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_TRA - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_RCO - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_SLV - - - - - - SOAP 26/280 1 5 -0 CMIP6_CO_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 -0 CMIP6_SOAP_WST - - - - - - SOAP 26/280 1 5 - -0 CMIP6_SO2_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_AGR - - - - - - SO4 63 1 5 -0 CMIP6_pFe_AGR - - - - - - pFe 66 1 5 -0 CMIP6_SO2_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_ENE - - - - - - SO4 63 1 5 -0 CMIP6_pFe_ENE - - - - - - pFe 66 1 5 -0 CMIP6_SO2_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_IND - - - - - - SO4 63 1 5 -0 CMIP6_pFe_IND - - - - - - pFe 66 1 5 -0 CMIP6_SO2_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_TRA - - - - - - SO4 63 1 5 -0 CMIP6_pFe_TRA - - - - - - pFe 66 1 5 -0 CMIP6_SO2_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_RCO - - - - - - SO4 63 1 5 -0 CMIP6_pFe_RCO - - - - - - pFe 66 1 5 -0 CMIP6_SO2_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_SLV - - - - - - SO4 63 1 5 -0 CMIP6_pFe_SLV - - - - - - pFe 66 1 5 -0 CMIP6_SO2_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 -0 CMIP6_SO4_WST - - - - - - SO4 63 1 5 -0 CMIP6_pFe_WST - - - - - - pFe 66 1 5 - -0 CMIP6_NH3_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_agr 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_ene 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_ind 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_tra 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_rco 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_slv 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 -0 CMIP6_NH3_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_wst 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 - -0 CMIP6_BCPI_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_agr 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_AGR - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_ene 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_ENE - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_ind 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_IND - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_tra 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_TRA - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_rco 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_RCO - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_slv 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_SLV - - - - - - BCPO 71 1 5 -0 CMIP6_BCPI_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_wst 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 -0 CMIP6_BCPO_WST - - - - - - BCPO 71 1 5 - -0 CMIP6_OCPI_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_agr 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_AGR - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_AGR - - - - - - POG1 74/76 1 5 -0 CMIP6_POG2_AGR - - - - - - POG2 74/77 1 5 -0 CMIP6_OCPI_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_ene 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_ENE - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_ENE - - - - - - POG1 74/76 1 5 -0 CMIP6_POG2_ENE - - - - - - POG2 74/77 1 5 -0 CMIP6_OCPI_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_ind 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_IND - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_IND - - - - - - POG1 74/76 1 5 -0 CMIP6_POG2_IND - - - - - - POG2 74/77 1 5 -0 CMIP6_OCPI_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_tra 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_TRA - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_TRA - - - - - - POG1 74/76 1 5 -0 CMIP6_POG2_TRA - - - - - - POG2 74/77 1 5 -0 CMIP6_OCPI_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_rco 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_RCO - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_RCO - - - - - - POG1 74/76 1 5 -0 CMIP6_POG2_RCO - - - - - - POG2 74/77 1 5 -0 CMIP6_OCPI_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_slv 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_SLV - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_SLV - - - - - - POG1 74/76 1 5 -0 CMIP6_POG2_SLV - - - - - - POG2 74/77 1 5 -0 CMIP6_OCPI_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_wst 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 -0 CMIP6_OCPO_WST - - - - - - OCPO 73 1 5 -0 CMIP6_POG1_WST - - - - - - POG1 74/76 1 5 -0 CMIP6_POG2_WST - - - - - - POG2 74/77 1 5 +0 CMIP6_NO_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_agr 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_ene 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_ind 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_tra 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_rco 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_slv 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_wst 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 + +0 CMIP6_CO_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_AGR - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_ENE - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_IND - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_TRA - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_RCO - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_SLV - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_WST - - - - - - SOAP 26/280 1 5 + +0 CMIP6_SO2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_AGR - - - - - - SO4 63 1 5 +0 CMIP6_pFe_AGR - - - - - - pFe 66 1 5 +0 CMIP6_SO2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_ENE - - - - - - SO4 63 1 5 +0 CMIP6_pFe_ENE - - - - - - pFe 66 1 5 +0 CMIP6_SO2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_IND - - - - - - SO4 63 1 5 +0 CMIP6_pFe_IND - - - - - - pFe 66 1 5 +0 CMIP6_SO2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_TRA - - - - - - SO4 63 1 5 +0 CMIP6_pFe_TRA - - - - - - pFe 66 1 5 +0 CMIP6_SO2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_RCO - - - - - - SO4 63 1 5 +0 CMIP6_pFe_RCO - - - - - - pFe 66 1 5 +0 CMIP6_SO2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_SLV - - - - - - SO4 63 1 5 +0 CMIP6_pFe_SLV - - - - - - pFe 66 1 5 +0 CMIP6_SO2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_WST - - - - - - SO4 63 1 5 +0 CMIP6_pFe_WST - - - - - - pFe 66 1 5 + +0 CMIP6_NH3_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_agr 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_ene 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_ind 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_tra 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_rco 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_slv 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_wst 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 + +0 CMIP6_BCPI_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_agr 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_AGR - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_ene 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_ENE - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_ind 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_IND - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_tra 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_TRA - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_rco 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_RCO - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_slv 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_SLV - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_wst 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_WST - - - - - - BCPO 71 1 5 + +0 CMIP6_OCPI_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_agr 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_AGR - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_AGR - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_AGR - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_ene 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_ENE - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_ENE - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_ENE - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_ind 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_IND - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_IND - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_IND - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_tra 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_TRA - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_TRA - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_TRA - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_rco 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_RCO - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_RCO - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_RCO - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_slv 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_SLV - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_SLV - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_SLV - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_wst 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_WST - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_WST - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_WST - - - - - - POG2 74/77 1 5 # Comment out CO2 for fullchem simulations: CO2 not advected -#0 CMIP6_CO2_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 -#0 CMIP6_CO2_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 # Comment out CH4 for fullchem simulations: do not use CH4 emissions # CMIP6 CH4 emissions are only available for 1970-2014 -#0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 -#0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 # NOTE: EOH files in CMIP6/v2021-01 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here -0 CMIP6_MOH_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_AGR - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_AGR - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_ENE - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_ENE - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_IND - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_IND - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_TRA - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_TRA - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_RCO - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_RCO - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_SLV - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_SLV - - - - - - ROH 26/92 1 5 -0 CMIP6_MOH_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 -0 CMIP6_EOH_WST - - - - - - EOH 26/91 1 5 -0 CMIP6_ROH_WST - - - - - - ROH 26/92 1 5 - -0 CMIP6_C2H6_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 -0 CMIP6_C2H6_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 - -0 CMIP6_C3H8_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_agr 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_ene 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_ind 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_tra 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_rco 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_slv 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 -0 CMIP6_C3H8_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_wst 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 - -0 CMIP6_C4H10_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C4H10_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CMIP6_C5H12_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C5H12_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CMIP6_C6H14_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 -0 CMIP6_C6H14_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 - -0 CMIP6_C2H4_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 -0 CMIP6_C2H4_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 - -0 CMIP6_PRPE_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_agr 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_ene 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_ind 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_tra 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_rco 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_slv 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 -0 CMIP6_PRPE_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_wst 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 - -0 CMIP6_C2H2_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 -0 CMIP6_C2H2_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 - -0 CMIP6_BENZ_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_agr 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_ene 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_ind 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_tra 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_rco 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_slv 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 -0 CMIP6_BENZ_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_wst 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 - -0 CMIP6_TOLU_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_agr 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_ene 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_ind 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_tra 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_rco 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_slv 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 -0 CMIP6_TOLU_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_wst 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 - -0 CMIP6_XYLE_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_agr 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_ene 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_ind 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_tra 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_rco 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_slv 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 -0 CMIP6_XYLE_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_wst 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 - -0 CMIP6_CH2O_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_agr 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_ene 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_ind 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_tra 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_rco 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_slv 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 -0 CMIP6_CH2O_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_wst 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 - -0 CMIP6_ALD2_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 -0 CMIP6_ALD2_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 - -0 CMIP6_MEK_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_agr 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_ene 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_ind 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_tra 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_rco 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_slv 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 -0 CMIP6_MEK_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_wst 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 - -0 CMIP6_HCOOH_AGR $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_ENE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_IND $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_TRA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_RCO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_SLV $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 -0 CMIP6_HCOOH_WST $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_MOH_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_AGR - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_AGR - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_ENE - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_ENE - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_IND - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_IND - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_TRA - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_TRA - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_RCO - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_RCO - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_SLV - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_SLV - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_WST - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_WST - - - - - - ROH 26/92 1 5 + +0 CMIP6_C2H6_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 + +0 CMIP6_C3H8_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_agr 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_ene 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_ind 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_tra 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_rco 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_slv 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_wst 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 + +0 CMIP6_C4H10_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CMIP6_C5H12_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CMIP6_C6H14_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CMIP6_C2H4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 + +0 CMIP6_PRPE_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_agr 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_ene 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_ind 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_tra 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_rco 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_slv 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_wst 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 + +0 CMIP6_C2H2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 + +0 CMIP6_BENZ_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_agr 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_ene 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_ind 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_tra 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_rco 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_slv 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_wst 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 + +0 CMIP6_TOLU_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_agr 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_ene 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_ind 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_tra 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_rco 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_slv 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_wst 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 + +0 CMIP6_XYLE_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_agr 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_ene 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_ind 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_tra 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_rco 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_slv 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_wst 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 + +0 CMIP6_CH2O_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_agr 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_ene 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_ind 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_tra 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_rco 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_slv 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_wst 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 + +0 CMIP6_ALD2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 + +0 CMIP6_MEK_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_agr 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_ene 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_ind 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_tra 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_rco 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_slv 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_wst 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 + +0 CMIP6_HCOOH_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 )))CMIP6_SFC_LAND_ANTHRO #============================================================================== # CEDS (historical) or Shared Socioeconomic Pathways (future) aircraft # emissions, consistent with the CMIP6 simulation experimental design # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS # #============================================================================== (((CMIP6_AIRCRAFT -0 CMIP6_AIR_NO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NO_air 1750-2100/1-12/1/0 C xyz kg/m2/s NO - 20 1 -0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO - 20 1 -0 CMIP6_AIR_SOAP - - - - - - SOAP 280 20 1 -0 CMIP6_AIR_SO2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 SO2_air 1750-2100/1-12/1/0 C xyz kg/m2/s SO2 - 20 1 -0 CMIP6_AIR_SO4 - - - - - - SO4 63 20 1 -0 CMIP6_AIR_pFe - - - - - - pFe 66 20 1 -0 CMIP6_AIR_ACET - - - - - - ACET 601 20 1 -0 CMIP6_AIR_ALD2 - - - - - - ALD2 602 20 1 -0 CMIP6_AIR_ALK4 - - - - - - ALK4 603 20 1 -0 CMIP6_AIR_C2H6 - - - - - - C2H6 604 20 1 -0 CMIP6_AIR_C3H8 - - - - - - C3H8 605 20 1 -0 CMIP6_AIR_CH2O - - - - - - CH2O 606 20 1 -0 CMIP6_AIR_PRPE - - - - - - PRPE 607 20 1 -0 CMIP6_AIR_MACR - - - - - - MACR 608 20 1 -0 CMIP6_AIR_RCHO - - - - - - RCHO 609 20 1 -0 CMIP6_AIR_NH3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NH3_air 1750-2100/1-12/1/0 C xyz kg/m2/s NH3 - 20 1 +0 CMIP6_AIR_NO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NO_air 1750-2100/1-12/1/0 C xyz kg/m2/s NO - 20 1 +0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO - 20 1 +0 CMIP6_AIR_SOAP - - - - - - SOAP 280 20 1 +0 CMIP6_AIR_SO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 SO2_air 1750-2100/1-12/1/0 C xyz kg/m2/s SO2 - 20 1 +0 CMIP6_AIR_SO4 - - - - - - SO4 63 20 1 +0 CMIP6_AIR_pFe - - - - - - pFe 66 20 1 +0 CMIP6_AIR_ACET - - - - - - ACET 601 20 1 +0 CMIP6_AIR_ALD2 - - - - - - ALD2 602 20 1 +0 CMIP6_AIR_ALK4 - - - - - - ALK4 603 20 1 +0 CMIP6_AIR_C2H6 - - - - - - C2H6 604 20 1 +0 CMIP6_AIR_C3H8 - - - - - - C3H8 605 20 1 +0 CMIP6_AIR_CH2O - - - - - - CH2O 606 20 1 +0 CMIP6_AIR_PRPE - - - - - - PRPE 607 20 1 +0 CMIP6_AIR_MACR - - - - - - MACR 608 20 1 +0 CMIP6_AIR_RCHO - - - - - - RCHO 609 20 1 +0 CMIP6_AIR_NH3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NH3_air 1750-2100/1-12/1/0 C xyz kg/m2/s NH3 - 20 1 # Assume all BC/OC is BCPI/OCPI -0 CMIP6_AIR_BCPI $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 BC_air 1750-2100/1-12/1/0 C xyz kg/m2/s BCPI - 20 1 -0 CMIP6_AIR_OCPI $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 OC_air 1750-2100/1-12/1/0 C xyz kg/m2/s OCPI - 20 1 -0 CMIP6_AIR_POG1 - - - - - - POG1 74/76 20 1 -0 CMIP6_AIR_POG2 - - - - - - POG2 74/77 20 1 +0 CMIP6_AIR_BCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 BC_air 1750-2100/1-12/1/0 C xyz kg/m2/s BCPI - 20 1 +0 CMIP6_AIR_OCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 OC_air 1750-2100/1-12/1/0 C xyz kg/m2/s OCPI - 20 1 +0 CMIP6_AIR_POG1 - - - - - - POG1 74/76 20 1 +0 CMIP6_AIR_POG2 - - - - - - POG2 74/77 20 1 )))CMIP6_AIRCRAFT @@ -2551,6 +2567,39 @@ Warnings: 1 0 ORDONEZ_CH2IBR $ROOT/IODINE/v2020-02/CH2IBr_monthly_emissions_Ordonez_2012_COARDS.nc CH2IBr 2000/1-12/1/0 C xy kg/m2/s CH2IBr - 1 1 )))ORDONEZ_IODOCARB +#============================================================================== +# --- GT_Chlorine --- +# +# Emission inventory for HCl and particulate Cl from continental sources +# +# Reference: +# Zhang, B., & Liu, P., et al (2022). Global Emissions of Hydrogen Chloride +# and Particulate Chloride from Continental Sources. Environmental Science & +# Technology, 56(7), 3894-3904. https://doi.org/10.1021/acs.est.1c05634 +# +# Notes: +# - The HCl emission from open biomass burning (HCL_BIO, HCL_AGR) used the same +# activity data for GFED4 (1998-2014) and BB4CMIP (1960-2014). If your +# emission inventory for open biomass burning has already include HCl +# emissions, shut down either of them to avoid the duplicated emission sources +# - Emissions of particulate Cl are added as HCl as ISORROPIA will reparition +# Cl between particle phase and gas phase. +#============================================================================== +(((GT_Chlorine +0 HCL_ENE $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_ene 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 HCL_IND $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_ind 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 HCL_RES $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_res 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 HCL_WST $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_wstop 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 HCL_BIO $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_bbop 1960-2014/1-12/1/0 C xy kg/m2/s HCl 75 1/2 1 +0 HCL_AGR $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc HCl_agri 1960-2014/1-12/1/0 C xy kg/m2/s HCl 75 1/2 1 +0 PCL_ENE $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_ene 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 PCL_IND $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_ind 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 PCL_RES $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_res 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 PCL_WST $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_wstop 1960-2014/1-12/1/0 C xy kg/m2/s HCl 26 1/2 1 +0 PCL_BIO $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_bbop 1960-2014/1-12/1/0 C xy kg/m2/s HCl 75 1/2 1 +0 PCL_AGR $ROOT/GT_Chlorine/v2024-05/GT_Chlorine_01_01_$YYYY_V1.0.0.nc pCl_agri 1960-2014/1-12/1/0 C xy kg/m2/s HCl 75 1/2 1 +)))GT_Chlorine + #============================================================================== # --- Ship emissions --- # @@ -2647,9 +2696,11 @@ Warnings: 1 )))CEDS_GBDMAPS_SHIP (((CEDS_SHIP_byFuelType -(((.not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +(((.not.CEDS_GBDMAPS_SHIP +(((.not.CEDSv2_SHIP >>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS_SHIP_byFuelType.rc -))).not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +))).not.CEDSv2_SHIP +))).not.CEDS_GBDMAPS_SHIP )))CEDS_SHIP_byFuelType #============================================================================== @@ -2657,41 +2708,41 @@ Warnings: 1 # CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with # the CMIP6 simulation experimental design. # -# Make sure that the desired $GCAP2SCENARIO is set above in SECTION SETTINGS +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS # #============================================================================== (((CMIP6_SHIP -0 CMIP6_CO_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_shp 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 10 5 -0 CMIP6_SOAP_SHP - - - - - - SOAP 26/280 10 5 -0 CMIP6_SO2_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_shp 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 10 5 -0 CMIP6_SO4_SHP - - - - - - SO4 63 10 5 -0 CMIP6_pFe_SHP - - - - - - pFe 66 10 5 -0 CMIP6_NH3_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_shp 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 10 5 -0 CMIP6_BCPI_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_shp 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 10 5 -0 CMIP6_BCPO_SHP - - - - - - BCPO 71 10 5 -0 CMIP6_OCPI_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_shp 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 10 5 -0 CMIP6_OCPO_SHP - - - - - - OCPO 73 10 5 -0 CMIP6_POG1_SHP - - - - - - POG1 74/76 10 5 -0 CMIP6_POG2_SHP - - - - - - POG2 74/77 10 5 +0 CMIP6_CO_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_shp 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 10 5 +0 CMIP6_SOAP_SHP - - - - - - SOAP 26/280 10 5 +0 CMIP6_SO2_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_shp 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 10 5 +0 CMIP6_SO4_SHP - - - - - - SO4 63 10 5 +0 CMIP6_pFe_SHP - - - - - - pFe 66 10 5 +0 CMIP6_NH3_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_shp 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 10 5 +0 CMIP6_BCPI_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_shp 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 10 5 +0 CMIP6_BCPO_SHP - - - - - - BCPO 71 10 5 +0 CMIP6_OCPI_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_shp 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 10 5 +0 CMIP6_OCPO_SHP - - - - - - OCPO 73 10 5 +0 CMIP6_POG1_SHP - - - - - - POG1 74/76 10 5 +0 CMIP6_POG2_SHP - - - - - - POG2 74/77 10 5 # NOTE: EOH files in CMIP6/v2021-01 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here -0 CMIP6_MOH_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 10 5 -0 CMIP6_EOH_SHP - - - - - - EOH 26/91 10 5 -0 CMIP6_ROH_SHP - - - - - - ROH 26/92 10 5 -0 CMIP6_C2H6_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 10 5 -0 CMIP6_C3H8_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_shp 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 10 5 -0 CMIP6_C4H10_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_butanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 -0 CMIP6_C5H12_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_pentanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 -0 CMIP6_C6H14_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_hexanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 -0 CMIP6_C2H4_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 10 5 -0 CMIP6_PRPE_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_shp 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 10 5 -0 CMIP6_C2H2_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H2_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 10 5 -0 CMIP6_BENZ_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_shp 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 10 5 -0 CMIP6_TOLU_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_shp 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 10 5 -0 CMIP6_XYLE_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_shp 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 10 5 -0 CMIP6_CH2O_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_shp 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 10 5 -0 CMIP6_ALD2_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 10 5 -0 CMIP6_MEK_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_shp 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 10 5 -0 CMIP6_HCOOH_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 10 5 +0 CMIP6_MOH_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 10 5 +0 CMIP6_EOH_SHP - - - - - - EOH 26/91 10 5 +0 CMIP6_ROH_SHP - - - - - - ROH 26/92 10 5 +0 CMIP6_C2H6_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 10 5 +0 CMIP6_C3H8_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_shp 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 10 5 +0 CMIP6_C4H10_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CMIP6_C5H12_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CMIP6_C6H14_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CMIP6_C2H4_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 10 5 +0 CMIP6_PRPE_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_shp 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 10 5 +0 CMIP6_C2H2_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 10 5 +0 CMIP6_BENZ_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_shp 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 10 5 +0 CMIP6_TOLU_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_shp 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 10 5 +0 CMIP6_XYLE_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_shp 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 10 5 +0 CMIP6_CH2O_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_shp 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 10 5 +0 CMIP6_ALD2_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 10 5 +0 CMIP6_MEK_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_shp 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 10 5 +0 CMIP6_HCOOH_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 10 5 )))CMIP6_SHIP #------------------------------------------------------------------------------ @@ -2747,7 +2798,7 @@ Warnings: 1 )))CEDS_GBDMAPS_SHIP (((CMIP6_SHIP -102 CMIP6_NO_SHP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_shp 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 10 5 +102 CMIP6_NO_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_shp 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 10 5 )))CMIP6_SHIP ))).not.ParaNOx @@ -2997,6 +3048,7 @@ Warnings: 1 (((GFAS 0 GFAS_CO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO 75 5 3 0 GFAS_SOAP $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SOAP 75/281 5 3 +0 GFAS_CH3OH $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch3ohfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s MOH 75 5 3 0 GFAS_NO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc noxfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NO 75 5 3 0 GFAS_BCPI $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPI 70/75 5 3 0 GFAS_BCPO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPO 71/75 5 3 @@ -3007,7 +3059,7 @@ Warnings: 1 0 GFAS_CO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc co2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO2 75 5 3 0 GFAS_CH4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch4fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH4 75 5 3 0 GFAS_SO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SO2 75 5 3 -0 GFAS_pFe - - - - - - pFe 75/66 5 3 +0 GFAS_pFe $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s pFe 75/66 5 3 0 GFAS_NH3 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc nh3fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NH3 75 5 3 0 GFAS_ACET $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h6ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ACET 75 5 3 0 GFAS_ALD2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h4ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALD2 75 5 3 @@ -3030,44 +3082,73 @@ Warnings: 1 #============================================================================== (((BB4MIPS # 75 is time-of-day scaling -0 CMIP6_BB_CO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CO 75 5 3 -0 CMIP6_BB_SOAP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SOAP 75/281 5 3 -0 CMIP6_BB_NO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NO 75 5 3 -0 CMIP6_BB_BCPI $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPI 70/75 5 3 -0 CMIP6_BB_BCPO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPO 71/75 5 3 -0 CMIP6_BB_OCPI $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPI 72/75 5 3 -0 CMIP6_BB_OCPO $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPO 73/75 5 3 -0 CMIP6_BB_POG1 - - - - - - POG1 74/76/75 5 3 -0 CMIP6_BB_POG2 - - - - - - POG2 74/77/75 5 3 -0 CMIP6_BB_SO2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 SO2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SO2 75 5 3 -0 CMIP6_BB_pFe - - - - - - pFe 75/66 5 3 -0 CMIP6_BB_NH3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 NH3_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NH3 75 5 3 -0 CMIP6_BB_ALD2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALD2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALD2 75 5 3 -0 CMIP6_BB_ALK4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ALK4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALK4 75 5 3 -0 CMIP6_BB_PRPE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 PRPE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s PRPE 75 5 3 -0 CMIP6_BB_C2H6 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H6_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H6 75 5 3 -0 CMIP6_BB_C3H8 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C3H8_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C3H8 75 5 3 -0 CMIP6_BB_CH2O $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 CH2O_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CH2O 75 5 3 -0 CMIP6_BB_C2H4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 C2H4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H4 75 5 3 -0 CMIP6_BB_ISOP $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ISOP_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ISOP 75 5 3 -0 CMIP6_BB_DMS $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 DMS_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s DMS 75 5 3 -0 CMIP6_BB_TOLU $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 TOLU_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s TOLU 75 5 3 -0 CMIP6_BB_BENZ $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 BENZ_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BENZ 75 5 3 -0 CMIP6_BB_XYLE $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 XYLE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s XYLE 75 5 3 -0 CMIP6_BB_H2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 H2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s H2 75 5 3 -0 CMIP6_BB_MTPA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MONOT_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MTPA 75 5 3 -#0 CMIP6_BB_MTPO - - - - - - MTPO 75 5 3 -#0 CMIP6_BB_LIMO - - - - - - LIMO 75 5 3 -0 CMIP6_BB_EOH $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 EOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s EOH 75 5 3 -0 CMIP6_BB_MOH $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MOH 75 5 3 -0 CMIP6_BB_ACET - - - - - - ACET 79/75 5 3 -0 CMIP6_BB_MGLY $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MGLY_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MGLY 75 5 3 -0 CMIP6_BB_ACTA $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 ACTA_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ACTA 75 5 3 -0 CMIP6_BB_HCN $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCN_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCN 75 5 3 -0 CMIP6_BB_HCOOH $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 HCOOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCOOH 75 5 3 -0 CMIP6_BB_MEK $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_$YYYY.nc4 MEK_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MEK 75 5 3 +0 CMIP6_BB_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CO 75 5 3 +0 CMIP6_BB_SOAP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SOAP 75/281 5 3 +0 CMIP6_BB_NO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NO 75 5 3 +0 CMIP6_BB_BCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPI 70/75 5 3 +0 CMIP6_BB_BCPO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPO 71/75 5 3 +0 CMIP6_BB_OCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPI 72/75 5 3 +0 CMIP6_BB_OCPO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPO 73/75 5 3 +0 CMIP6_BB_POG1 - - - - - - POG1 74/76/75 5 3 +0 CMIP6_BB_POG2 - - - - - - POG2 74/77/75 5 3 +0 CMIP6_BB_SO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SO2 75 5 3 +0 CMIP6_BB_pFe - - - - - - pFe 75/66 5 3 +0 CMIP6_BB_NH3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NH3 75 5 3 +0 CMIP6_BB_ALD2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALD2 75 5 3 +0 CMIP6_BB_ALK4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALK4 75 5 3 +0 CMIP6_BB_PRPE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s PRPE 75 5 3 +0 CMIP6_BB_C2H6 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H6 75 5 3 +0 CMIP6_BB_C3H8 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C3H8 75 5 3 +0 CMIP6_BB_CH2O $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CH2O 75 5 3 +0 CMIP6_BB_C2H4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H4 75 5 3 +0 CMIP6_BB_ISOP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ISOP_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ISOP 75 5 3 +0 CMIP6_BB_DMS $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 DMS_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s DMS 75 5 3 +0 CMIP6_BB_TOLU $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s TOLU 75 5 3 +0 CMIP6_BB_BENZ $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BENZ 75 5 3 +0 CMIP6_BB_XYLE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s XYLE 75 5 3 +0 CMIP6_BB_H2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 H2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s H2 75 5 3 +0 CMIP6_BB_MTPA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MONOT_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MTPA 75 5 3 +#0 CMIP6_BB_MTPO - - - - - - MTPO 75 5 3 +#0 CMIP6_BB_LIMO - - - - - - LIMO 75 5 3 +0 CMIP6_BB_EOH $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s EOH 75 5 3 +0 CMIP6_BB_MOH $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MOH 75 5 3 +0 CMIP6_BB_ACET - - - - - - ACET 79/75 5 3 +0 CMIP6_BB_MGLY $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MGLY_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MGLY 75 5 3 +0 CMIP6_BB_ACTA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ACTA_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ACTA 75 5 3 +0 CMIP6_BB_HCN $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCN_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCN 75 5 3 +0 CMIP6_BB_HCOOH $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCOOH 75 5 3 +0 CMIP6_BB_MEK $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MEK 75 5 3 )))BB4MIPS +#============================================================================== +# --- GFED4 biomass burning emissions climatology +# NOTE: +# - These emissions were generated for 2010-2019 using the GFED extension +# in a 0.5x0.625 HEMCO 3.6.1 standalone simulation. +#============================================================================== +(((GFED4_CLIMATOLOGY +0 GFED4_CLIM_ACET $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ACET 2019/1-12/1/0 C xy kg/m2/s ACET - 5 1 +0 GFED4_CLIM_ALD2 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ALD2 2019/1-12/1/0 C xy kg/m2/s ALD2 - 5 1 +0 GFED4_CLIM_ALK4 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ALK4 2019/1-12/1/0 C xy kg/m2/s ALK4 - 5 1 +0 GFED4_CLIM_BCPI $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BCPI 2019/1-12/1/0 C xy kg/m2/s BCPI - 5 1 +0 GFED4_CLIM_BCPO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BCPO 2019/1-12/1/0 C xy kg/m2/s BCPO - 5 1 +0 GFED4_CLIM_BENZ $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_BENZ 2019/1-12/1/0 C xy kg/m2/s BENZ - 5 1 +0 GFED4_CLIM_C2H6 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_C2H6 2019/1-12/1/0 C xy kg/m2/s C2H6 - 5 1 +0 GFED4_CLIM_C3H8 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_C3H8 2019/1-12/1/0 C xy kg/m2/s C3H8 - 5 1 +0 GFED4_CLIM_CH2O $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_ACET 2019/1-12/1/0 C xy kg/m2/s CH2O - 5 1 +0 GFED4_CLIM_CO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_CO 2019/1-12/1/0 C xy kg/m2/s CO - 5 1 +0 GFED4_CLIM_EOH $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_EOH 2019/1-12/1/0 C xy kg/m2/s EOH - 5 1 +0 GFED4_CLIM_MEK $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_MEK 2019/1-12/1/0 C xy kg/m2/s MEK - 5 1 +0 GFED4_CLIM_NO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_NO 2019/1-12/1/0 C xy kg/m2/s NO - 5 1 +0 GFED4_CLIM_OCPI $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_OCPI 2019/1-12/1/0 C xy kg/m2/s OCPI - 5 1 +0 GFED4_CLIM_OCPO $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_OCPO 2019/1-12/1/0 C xy kg/m2/s OCPO - 5 1 +0 GFED4_CLIM_PRPE $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_PRPE 2019/1-12/1/0 C xy kg/m2/s PRPE - 5 1 +0 GFED4_CLIM_SO2 $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_SO2 2019/1-12/1/0 C xy kg/m2/s SO2 - 5 1 +0 GFED4_CLIM_SOAP $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_SOAP 2019/1-12/1/0 C xy kg/m2/s SOAP - 5 1 +0 GFED4_CLIM_TOLU $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_TOLU 2019/1-12/1/0 C xy kg/m2/s TOLU - 5 1 +0 GFED4_CLIM_XYLE $ROOT/GFED4/v2023-03/GFED4_climatology_2010-2019_05x0625.nc GFED4_XYLE 2019/1-12/1/0 C xy kg/m2/s XYLE - 5 1 +)))GFED4_CLIMATOLOGY + #============================================================================== # --- Anthropogenic Fugitive, Combustion and Industrial Dust --- # (Philip et al., 2017, ERL) @@ -3083,10 +3164,10 @@ Warnings: 1 #============================================================================== (((OFFLINE_DUST (((.not.DustDead.or.DustGinoux -0 EMIS_DST1 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST1 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST1 - 3 2 -0 EMIS_DST2 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST2 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST2 - 3 2 -0 EMIS_DST3 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST3 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST3 - 3 2 -0 EMIS_DST4 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST4 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST4 - 3 2 +0 EMIS_DST1 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST1 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST1 - 3 2 +0 EMIS_DST2 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST2 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST2 - 3 2 +0 EMIS_DST3 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST3 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST3 - 3 2 +0 EMIS_DST4 $ROOT/OFFLINE_DUST/v2021-08/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/dust_emissions_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EMIS_DST4 1980-2022/1-12/1-31/* EFY xy kg/m2/s DST4 - 3 2 ))).not.DustDead.or.DustGinoux )))OFFLINE_DUST @@ -3094,25 +3175,25 @@ Warnings: 1 # --- Offline biogenic VOC emissions --- #============================================================================== (((OFFLINE_BIOGENICVOC -0 BIOGENIC_ACET $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc ACET_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ACET - 4 2 -0 BIOGENIC_ALD2 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc ALD2_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ALD2 - 4 2 -0 BIOGENIC_C2H4 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc C2H4_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s C2H4 - 4 2 -0 BIOGENIC_EOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc EOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s EOH - 4 2 -0 BIOGENIC_ISOP $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc ISOP_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ISOP - 4 2 +0 BIOGENIC_ACET $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc ACET_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ACET - 4 2 +0 BIOGENIC_ALD2 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc ALD2_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ALD2 - 4 2 +0 BIOGENIC_C2H4 $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc C2H4_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s C2H4 - 4 2 +0 BIOGENIC_EOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc EOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s EOH - 4 2 +0 BIOGENIC_ISOP $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc ISOP_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s ISOP - 4 2 0 BIOGENIC_ISOP_SOAP - - - - - - SOAP 610 4 2 0 BIOGENIC_ISOP_SOAS - - - - - - SOAS 610 4 2 -0 BIOGENIC_LIMO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc LIMO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s LIMO - 4 2 +0 BIOGENIC_LIMO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc LIMO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s LIMO - 4 2 0 BIOGENIC_LIMO_SOAP - - - - - - SOAP 611 4 2 0 BIOGENIC_LIMO_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_MOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc MOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MOH - 4 2 -0 BIOGENIC_MTPA $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc MTPA_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPA - 4 2 +0 BIOGENIC_MOH $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc MOH_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MOH - 4 2 +0 BIOGENIC_MTPA $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc MTPA_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPA - 4 2 0 BIOGENIC_MTPA_SOAP - - - - - - SOAP 611 4 2 0 BIOGENIC_MTPA_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_MTPO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc MTPO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPO - 4 2 +0 BIOGENIC_MTPO $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc MTPO_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s MTPO - 4 2 0 BIOGENIC_MTPO_SOAP - - - - - - SOAP 611 4 2 0 BIOGENIC_MTPO_SOAS - - - - - - SOAS 611 4 2 -0 BIOGENIC_PRPE $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc PRPE_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s PRPE - 4 2 -0 BIOGENIC_SESQ $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/biovoc_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SESQ_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s SESQ - 4 2 +0 BIOGENIC_PRPE $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc PRPE_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s PRPE - 4 2 +0 BIOGENIC_SESQ $ROOT/OFFLINE_BIOVOC/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/biovoc_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SESQ_MEGAN 1980-2022/1-12/1-31/* EFY xy kg/m2/s SESQ - 4 2 0 BIOGENIC_SESQ_SOAP - - - - - - SOAP 612 4 2 0 BIOGENIC_SESQ_SOAS - - - - - - SOAS 612 4 2 )))OFFLINE_BIOGENICVOC @@ -3122,13 +3203,13 @@ Warnings: 1 #============================================================================== (((OFFLINE_SEASALT (((.not.SeaSalt -0 SEASALT_SALA $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/seasalt_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SALA_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALA - 3 2 +0 SEASALT_SALA $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SALA_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALA - 3 2 0 SEASALT_SALAAL - - - - - - SALAAL 615 3 2 0 SEASALT_SALACL - - - - - - SALACL 616 3 2 (((CalcBrSeasalt 0 SEASALT_BrSALA - - - - - - BrSALA 617 3 2 )))CalcBrSeasalt -0 SEASALT_SALC $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/seasalt_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SALC_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALC - 3 2 +0 SEASALT_SALC $ROOT/OFFLINE_SEASALT/v2019-01/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/seasalt_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SALC_TOTAL 1980-2022/1-12/1-31/* EFY xy kg/m2/s SALC - 3 2 0 SEASALT_SALCAL - - - - - - SALCAL 615 3 2 0 SEASALT_SALCCL - - - - - - SALCCL 616 3 2 (((CalcBrSeasalt @@ -3142,7 +3223,7 @@ Warnings: 1 #============================================================================== (((OFFLINE_SOILNOX (((.not.SoilNOx -0 SOILNOX_NO $ROOT/OFFLINE_SOILNOX/v2021-12/${RUNDIR_MET_NATIVE_RES}/$YYYY/$MM/soilnox_${RUNDIR_MET_LAT_RES}.$YYYY$MM$DD.nc SOIL_NOx 1980-2022/1-12/1-31/* EFY xy kg/m2/s NO - 3 2 +0 SOILNOX_NO $ROOT/OFFLINE_SOILNOX/v2021-12/${RUNDIR_OFFLINE_EMIS_RES}/$YYYY/$MM/soilnox_${RUNDIR_OFFLINE_EMIS_LAT_RES}.$YYYY$MM$DD.nc SOIL_NOx 1980-2022/1-12/1-31/* EFY xy kg/m2/s NO - 3 2 ))).not.SoilNOx )))OFFLINE_SOILNOX @@ -3175,10 +3256,10 @@ Warnings: 1 (((SoilNOx 104 DEP_RESERVOIR_DEFAULT $ROOT/SOILNOX/v2014-07/DepReservoirDefault.nc DEP_RESERVOIR 2013/7/1/0 C xy kg/m3 NO - 1 1 (((HEMCO_RESTART -104 PFACTOR ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PFACTOR $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 -104 DRYPERIOD ./HEMCO_restart.$YYYY$MM$DD$HH00.nc DRYPERIOD $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 -104 GWET_PREV ./HEMCO_restart.$YYYY$MM$DD$HH00.nc GWET_PREV $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 -104 DEP_RESERVOIR ./HEMCO_restart.$YYYY$MM$DD$HH00.nc DEP_RESERVOIR $YYYY/$MM/$DD/$HH EY xy kg/m3 NO - 1 1 +104 PFACTOR ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PFACTOR $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 DRYPERIOD ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc DRYPERIOD $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 GWET_PREV ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc GWET_PREV $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 DEP_RESERVOIR ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc DEP_RESERVOIR $YYYY/$MM/$DD/$HH EY xy kg/m3 NO - 1 1 )))HEMCO_RESTART 104 SOILNOX_FERT $ROOT/SOILNOX/v2014-07/soilNOx.fert_res.generic.05x05.nc FERT 2000/1-12/1-31/0 C xy kg/m3 NO - 1 1 104 SOILNOX_LANDK1 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K01 2000/1/1/0 C xy 1 NO - 1 1 @@ -3256,6 +3337,7 @@ Warnings: 1 )))SeaSalt (((TOMAS_Jeagle 130 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.$YYYY.nc MODIS 2005-2014/1-12/1/0 C xy 1 * - 1 1 +130 MULTISEAICE $ROOT/MULTI_ICE/v2021-07/multiyearice.merra2.05x0625.$YYYY.nc FRSEAICE 1984-2017/1-12/1-31/0 C xy 1 * - 1 1 # Climatology CHLR #130 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.Clim.nc MODIS 2007/1-12/1/0 C xy 1 * - 1 1 @@ -3275,11 +3357,11 @@ Warnings: 1 #============================================================================== (((MEGAN (((HEMCO_RESTART -108 T_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 T_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 LAI_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -108 PARDR_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 -108 PARDF_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 T_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 T_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 LAI_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +108 PARDR_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 PARDF_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 )))HEMCO_RESTART 108 MEGAN_AEF_ISOP $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_ISOPRENE 1985/1/1/0 C xy kgC/m2/s * 61 1 1 108 MEGAN_AEF_MBOX $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_MBO 1985/1/1/0 C xy kgC/m2/s * 64 1 1 @@ -3310,26 +3392,28 @@ Warnings: 1 #============================================================================== # --- GFED biomass burning emissions (Extension 111) -# NOTE: These are the base emissions in kgDM/m2/s. +# NOTES: +# - These are the base emissions in kgDM/m2/s +# - If a year is not available, you may use the GFED4_CLIMATOLOGY option instead #============================================================================== (((GFED4 -111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 -111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_TEMP $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2023-03/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 2010-2023/1-12/01/0 RF xy kgDM/m2/s * - 1 1 (((GFED_subgrid_coag 111 FINN_DAILY_NUMBER $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25_with_num.nc number 2002-2016/1-12/1/0 RF xy unitless * - 1 1 )))GFED_subgrid_coag (((GFED_daily -111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +111 GFED_FRAC_DAY $ROOT/GFED4/v2023-03/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2010-2023/1-12/1-31/0 RF xy 1 * - 1 1 )))GFED_daily (((GFED_3hourly -111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2023-03/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2010-2023/1-12/1/0-23 RF xy 1 * - 1 1 )))GFED_3hourly )))GFED4 @@ -3374,33 +3458,26 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- GEOS-Chem restart file --- #============================================================================== (((GC_RESTART -* SPC_ ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesRst_?ALL? $YYYY/$MM/$DD/$HH EFYO xyz 1 * - 1 1 -* DELPDRY ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Met_DELPDRY $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 -* KPP_HVALUE ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_KPPHvalue $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 -* WETDEP_N ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_WetDepNitrogen $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -* DRYDEP_N ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_DryDepNitrogen $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -* SO2_AFTERCHEM ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_SO2AfterChem $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 -* H2O2_AFTERCHEM ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_H2O2AfterChem $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 -* AEROH2O_SNA ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_AeroH2OSNA $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 -* ORVCSESQ ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_ORVCSESQ $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 -* JOH ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_JOH $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -* JNO2 ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_JNO2 $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -* STATE_PSC ./GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_StatePSC $YYYY/$MM/$DD/$HH EY xyz count * - 1 1 +* SPC_ ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesRst_?ALL? $YYYY/$MM/$DD/$HH EFYO xyz 1 * - 1 1 +* DELPDRY ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Met_DELPDRY $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 +* KPP_HVALUE ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_KPPHvalue $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 +* WETDEP_N ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_WetDepNitrogen $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +* DRYDEP_N ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_DryDepNitrogen $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +* SO2_AFTERCHEM ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_SO2AfterChem $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 +* H2O2_AFTERCHEM ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_H2O2AfterChem $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 +* AEROH2O_SNA ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_AeroH2OSNA $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 +* ORVCSESQ ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_ORVCSESQ $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 +* JOH ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_JOH $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +* JNO2 ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_JNO2 $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +* STATE_PSC ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Chem_StatePSC $YYYY/$MM/$DD/$HH EY xyz count * - 1 1 )))GC_RESTART -#============================================================================== -# --- GEOS-Chem boundary condition file --- -#============================================================================== -(((GC_BCs -* BC_ $ROOT/SAMPLE_BCs/v2021-09/fullchem/GEOSChem.BoundaryConditions.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesBC_?ADV? 1980-2021/1-12/1-31/* EFY xyz 1 * - 1 1 -)))GC_BCs - (((CHEMISTRY_INPUT #============================================================================== @@ -3703,7 +3780,7 @@ Warnings: 1 # --- NOAA GMD monthly mean surface CH4 --- #============================================================================== (((GMD_SFC_CH4 -* NOAA_GMD_CH4 $ROOT/NOAA_GMD/v2018-01/monthly.gridded.surface.methane.1979-2020.1x1.nc SFC_CH4 1979-2020/1-12/1/0 RY xy ppbv * - 1 1 +* NOAA_GMD_CH4 $ROOT/NOAA_GMD/v2023-10/monthly.gridded.surface.methane.1975-2022.1x1.nc SFC_CH4 1975-2022/1-12/1/0 RY xy ppbv * - 1 1 )))GMD_SFC_CH4 #============================================================================== @@ -3974,50 +4051,50 @@ ${RUNDIR_TES_CLIM_N2O} #============================================================================== # Commented-out tracers do not exist in GEOS-Chem yet -# * SfcVMR_C2F6 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C2F6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C3F8 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C3F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C4F10 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C4F10 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C5F12 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C5F12 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C6F14 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C6F14 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C7F16 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C7F16 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_C8F18 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 C8F18 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_CC4F8 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CC4F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -* SfcVMR_CCl4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CCl4 1750-2100/1-12/1/0 RY xy v/v CCl4 802 1 1 -# * SfcVMR_CF4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CF4 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -* SfcVMR_CFC11 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC11 1750-2100/1-12/1/0 RY xy v/v CFC11 802 1 1 -* SfcVMR_CFC113 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC113 1750-2100/1-12/1/0 RY xy v/v CFC113 802 1 1 -* SfcVMR_CFC114 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC114 1750-2100/1-12/1/0 RY xy v/v CFC114 802 1 1 -* SfcVMR_CFC115 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC115 1750-2100/1-12/1/0 RY xy v/v CFC115 802 1 1 -* SfcVMR_CFC12 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CFC12 1750-2100/1-12/1/0 RY xy v/v CFC12 802 1 1 -* SfcVMR_CH2Cl2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH2Cl2 1750-2100/1-12/1/0 RY xy v/v CH2Cl2 802 1 1 -* SfcVMR_CH3Br $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH3Br 1750-2100/1-12/1/0 RY xy v/v CH3Br 802 1 1 -* SfcVMR_CH3CCl3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH3CCl3 1750-2100/1-12/1/0 RY xy v/v CH3CCl3 802 1 1 -* SfcVMR_CH3Cl $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH3Cl 1750-2100/1-12/1/0 RY xy v/v CH3Cl 802 1 1 -* SfcVMR_CH4 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CH4 1750-2100/1-12/1/0 RY xy v/v CH4 802 1 1 -* SfcVMR_CHCl3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CHCl3 1750-2100/1-12/1/0 RY xy v/v CHCl3 802 1 1 -# * SfcVMR_CO2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 CO2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -* SfcVMR_H1211 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 H1211 1750-2100/1-12/1/0 RY xy v/v H1211 802 1 1 -* SfcVMR_H1301 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 H1301 1750-2100/1-12/1/0 RY xy v/v H1301 802 1 1 -* SfcVMR_H2402 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 H2402 1750-2100/1-12/1/0 RY xy v/v H2402 802 1 1 +# * SfcVMR_C2F6 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C2F6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C3F8 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C3F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C4F10 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C4F10 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C5F12 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C5F12 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C6F14 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C6F14 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C7F16 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C7F16 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C8F18 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C8F18 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_CC4F8 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CC4F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_CCl4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CCl4 1750-2100/1-12/1/0 RY xy v/v CCl4 802 1 1 +# * SfcVMR_CF4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CF4 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_CFC11 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC11 1750-2100/1-12/1/0 RY xy v/v CFC11 802 1 1 +* SfcVMR_CFC113 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC113 1750-2100/1-12/1/0 RY xy v/v CFC113 802 1 1 +* SfcVMR_CFC114 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC114 1750-2100/1-12/1/0 RY xy v/v CFC114 802 1 1 +* SfcVMR_CFC115 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC115 1750-2100/1-12/1/0 RY xy v/v CFC115 802 1 1 +* SfcVMR_CFC12 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC12 1750-2100/1-12/1/0 RY xy v/v CFC12 802 1 1 +* SfcVMR_CH2Cl2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH2Cl2 1750-2100/1-12/1/0 RY xy v/v CH2Cl2 802 1 1 +* SfcVMR_CH3Br $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH3Br 1750-2100/1-12/1/0 RY xy v/v CH3Br 802 1 1 +* SfcVMR_CH3CCl3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH3CCl3 1750-2100/1-12/1/0 RY xy v/v CH3CCl3 802 1 1 +* SfcVMR_CH3Cl $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH3Cl 1750-2100/1-12/1/0 RY xy v/v CH3Cl 802 1 1 +* SfcVMR_CH4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH4 1750-2100/1-12/1/0 RY xy v/v CH4 802 1 1 +* SfcVMR_CHCl3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CHCl3 1750-2100/1-12/1/0 RY xy v/v CHCl3 802 1 1 +# * SfcVMR_CO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CO2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_H1211 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 H1211 1750-2100/1-12/1/0 RY xy v/v H1211 802 1 1 +* SfcVMR_H1301 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 H1301 1750-2100/1-12/1/0 RY xy v/v H1301 802 1 1 +* SfcVMR_H2402 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 H2402 1750-2100/1-12/1/0 RY xy v/v H2402 802 1 1 # SFC_BC_HCFC123 <- exists in UCX with lifetime of 2 years but has no surface boundary conditions; 200-600 pptv in https://doi.org/10.1021/es802308m -* SfcVMR_HCFC141b $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HCFC141b 1750-2100/1-12/1/0 RY xy v/v HCFC141b 802 1 1 -* SfcVMR_HCFC142b $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HCFC142b 1750-2100/1-12/1/0 RY xy v/v HCFC142b 802 1 1 -* SfcVMR_HCFC22 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HCFC22 1750-2100/1-12/1/0 RY xy v/v HCFC22 802 1 1 -# * SfcVMR_HFC125 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC125 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC134a $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC134a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC143a $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC143a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC152a $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC152a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC227ea $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC227ea 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC23 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC23 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC236fa $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC236fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC245fa $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC245fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC32 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC32 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC365mfc $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC365mfc 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_HFC4310mee $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 HFC4310mee 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -* SfcVMR_N2O $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 N2O 1750-2100/1-12/1/0 RY xy v/v N2O 802 1 1 -# * SfcVMR_NF3 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 NF3 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_SF6 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 SF6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 -# * SfcVMR_SO2F2 $ROOT/CMIP6/v2021-01/$GCAP2SCENARIO/$GCAP2SCENARIO_BC_$YYYY.nc4 SO2F2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_HCFC141b $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HCFC141b 1750-2100/1-12/1/0 RY xy v/v HCFC141b 802 1 1 +* SfcVMR_HCFC142b $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HCFC142b 1750-2100/1-12/1/0 RY xy v/v HCFC142b 802 1 1 +* SfcVMR_HCFC22 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HCFC22 1750-2100/1-12/1/0 RY xy v/v HCFC22 802 1 1 +# * SfcVMR_HFC125 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC125 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC134a $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC134a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC143a $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC143a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC152a $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC152a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC227ea $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC227ea 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC23 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC23 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC236fa $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC236fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC245fa $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC245fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC32 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC32 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC365mfc $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC365mfc 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC4310mee $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC4310mee 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_N2O $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 N2O 1750-2100/1-12/1/0 RY xy v/v N2O 802 1 1 +# * SfcVMR_NF3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 NF3 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_SF6 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 SF6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_SO2F2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 SO2F2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 #============================================================================== # -- Not part of CMIP6 experimental design; use GEOS-Chem defaults @@ -4185,14 +4262,12 @@ ${RUNDIR_TES_CLIM_N2O} 281 COtoSOAP_burn 0.013 - - - xy 1 1 #============================================================================== -# --- QFED2 diurnal scale factors --- +# --- Diurnal scale factors for biomass burning --- # # Fire diurnal scaling factors (% per hour) from WRAP Report to Project # No. 178-6, July 2005 #============================================================================== -(((QFED2.or.GFAS.or.BB4MIPS 75 QFED2_TOD 0.1392/0.1392/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.48/0.96/1.68/2.4/3.12/3.84/4.08/2.88/1.68/0.96/0.1368/0.1368/0.1368/0.1368/0.1368 - - - xy unitless 1 -)))QFED2.or.GFAS.or.BB4MIPS #============================================================================== # --- NAP scale factors --- @@ -4320,19 +4395,19 @@ ${RUNDIR_TES_CLIM_N2O} # --- EPA NEI day-of-week scale factors --- #============================================================================== (((NEI2016_MONMEAN -210 NEI99_DOW_NOX $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc NOX 1999/1-12/WD/0 C xy 1 1 -211 NEI99_DOW_CO $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc CO 1999/1-12/WD/0 C xy 1 1 -212 NEI99_DOW_ALK4 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc ALK4 1999/1-12/WD/0 C xy 1 1 -213 NEI99_DOW_ACET $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc ACET 1999/1-12/WD/0 C xy 1 1 -214 NEI99_DOW_MEK $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc MEK 1999/1-12/WD/0 C xy 1 1 -215 NEI99_DOW_PRPE $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc PRPE 1999/1-12/WD/0 C xy 1 1 -216 NEI99_DOW_C3H8 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc C3H8 1999/1-12/WD/0 C xy 1 1 -217 NEI99_DOW_C2H6 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc C2H6 1999/1-12/WD/0 C xy 1 1 -218 NEI99_DOW_SO2 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc SO2 1999/1-12/WD/0 C xy 1 1 -219 NEI99_DOW_SO4 $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc SO4 1999/1-12/WD/0 C xy 1 1 -220 NEI99_DOW_MSA $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc MSA 1999/1-12/WD/0 C xy 1 1 -221 NEI99_DOW_BCPI $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc BCPI 1999/1-12/WD/0 C xy 1 1 -222 NEI99_DOW_OCPI $ROOT/NEI2005/v2014-09/scaling/NEI99.dow.geos.1x1.nc OCPI 1999/1-12/WD/0 C xy 1 1 +210 NEI99_DOW_NOX $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc NOX 1999/1-12/WD/0 C xy 1 1 +211 NEI99_DOW_CO $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc CO 1999/1-12/WD/0 C xy 1 1 +212 NEI99_DOW_ALK4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ALK4 1999/1-12/WD/0 C xy 1 1 +213 NEI99_DOW_ACET $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ACET 1999/1-12/WD/0 C xy 1 1 +214 NEI99_DOW_MEK $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MEK 1999/1-12/WD/0 C xy 1 1 +215 NEI99_DOW_PRPE $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc PRPE 1999/1-12/WD/0 C xy 1 1 +216 NEI99_DOW_C3H8 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C3H8 1999/1-12/WD/0 C xy 1 1 +217 NEI99_DOW_C2H6 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C2H6 1999/1-12/WD/0 C xy 1 1 +218 NEI99_DOW_SO2 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO2 1999/1-12/WD/0 C xy 1 1 +219 NEI99_DOW_SO4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO4 1999/1-12/WD/0 C xy 1 1 +220 NEI99_DOW_MSA $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MSA 1999/1-12/WD/0 C xy 1 1 +221 NEI99_DOW_BCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc BCPI 1999/1-12/WD/0 C xy 1 1 +222 NEI99_DOW_OCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc OCPI 1999/1-12/WD/0 C xy 1 1 )))NEI2016_MONMEAN #============================================================================== @@ -4453,6 +4528,27 @@ ${RUNDIR_TES_CLIM_N2O} 1212 FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc FFF 2010/1-12/1/0 C xy unitless 1 )))EDGARv43.or.DICE_Africa +(((CEDSv2 +#========================================================================= +# --- Sector-wise diel scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +2401 TOD_AGRICULTURE 0.599/0.599/0.599/0.599/0.599/0.649/0.748/0.898/1.098/1.247/1.447/1.597/1.796/1.746/1.696/1.547/1.347/1.098/0.898/0.748/0.649/0.599/0.599/0.599 - - - xy unitless 1 +2406 TOD_ENERGY 0.790/0.720/0.720/0.710/0.740/0.800/0.920/1.080/1.190/1.220/1.210/1.210/1.170/1.150/1.140/1.130/1.100/1.070/1.040/1.020/1.020/1.010/0.960/0.880 - - - xy unitless 1 +2407 TOD_INDUSTRY 0.750/0.750/0.780/0.820/0.880/0.950/1.020/1.090/1.160/1.220/1.280/1.300/1.220/1.240/1.250/1.160/1.080/1.010/0.950/0.900/0.850/0.810/0.780/0.750 - - - xy unitless 1 +2409 TOD_RESIDENTIAL 0.393/0.393/0.393/0.393/0.393/0.492/1.180/1.475/1.574/1.574/1.377/1.180/1.082/1.082/0.984/0.984/0.984/1.082/1.377/1.475/1.377/1.377/0.984/0.393 - - - xy unitless 1 +2411 TOD_TRANSPORT 0.190/0.090/0.060/0.050/0.090/0.220/0.860/1.840/1.860/1.410/1.240/1.200/1.320/1.440/1.450/1.590/2.030/2.080/1.510/1.060/0.740/0.620/0.610/0.440 - - - xy unitless 1 + +#========================================================================= +# --- Sector-wise day-of-week scale factors for CEDSv2 --- +# These scale factors could potentially be used for other global base emissions if modified accordingly. +#========================================================================= +706 DOW_ENERGY 0.850/1.060/1.060/1.060/1.060/1.060/0.850 - - - xy unitless 1 +707 DOW_INDUSTRY 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +709 DOW_RESIDENTIAL 0.800/1.080/1.080/1.080/1.080/1.080/0.800 - - - xy unitless 1 +711 DOW_TRANSPORT 0.790/1.020/1.060/1.080/1.100/1.140/0.810 - - - xy unitless 1 +)))CEDSv2 + ### END SECTION SCALE FACTORS ### ############################################################################### diff --git a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagO3 b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagO3 index b3dde5546..ff488ae4b 100644 --- a/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagO3 +++ b/run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagO3 @@ -27,7 +27,6 @@ ############################################################################### ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: not_used Logfile: * DiagnPrefix: ./OutputDir/HEMCO_diagnostics DiagnFreq: Monthly @@ -89,7 +88,7 @@ Warnings: 1 #============================================================================== # --- Time zones (offset to UTC) --- #============================================================================== -* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 +* TIMEZONES $ROOT/TIMEZONES/v2024-02/timezones_vohra_2017_0.1x0.1.nc UTC_OFFSET 2017/1-12/1/0 C xy count * - 1 1 #============================================================================== # --- GEOS-Chem restart file --- diff --git a/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers b/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers index 490deff1e..24b841103 100644 --- a/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers +++ b/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers @@ -27,17 +27,16 @@ EmisRn_Soil Rn222 100 -1 -1 2 kg/m2/s ##### Be emissions ##### ############################################################################### EmisBe7_Cosmic Be7 100 -1 -1 3 kg/m2/s -EmisBe7Strat_Cosmic Be7Strat 100 -1 -1 3 kg/m2/s +EmisBe7s_Cosmic Be7s 100 -1 -1 3 kg/m2/s EmisBe10_Cosmic Be10 100 -1 -1 3 kg/m2/s -EmisBe10Strat_Cosmic Be10Strat 100 -1 -1 3 kg/m2/s +EmisBe10s_Cosmic Be10s 100 -1 -1 3 kg/m2/s ############################################################################### ##### Transport tracer emissions ##### ############################################################################### -EmisSF6Tracer SF6Tracer -1 -1 -1 2 kg/m2/s -EmisCH3ITracer CH3ITracer -1 -1 -1 2 molec/cm2/s -EmisCOAnthroEmis25dayTracer COAnthroEmis25dayTracer -1 -1 -1 2 kg/m2/s -EmisCOAnthroEmis50dayTracer COAnthroEmis50dayTracer -1 -1 -1 2 kg/m2/s -EmisCOUniformEmis25dayTracer COUniformEmis25dayTracer -1 -1 -1 2 kg/m2/s +EmisSF6 SF6 -1 -1 -1 2 kg/m2/s +EmisCH3I CH3I -1 -1 -1 2 kg/m2/s +EmisCO_25 CO_25 -1 -1 -1 2 kg/m2/s +EmisCO_50 CO_50 -1 -1 -1 2 kg/m2/s #EOC \ No newline at end of file diff --git a/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon b/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon index f1e5f36ec..73c1d3129 100644 --- a/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon +++ b/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon @@ -16,9 +16,8 @@ # Name Spec ExtNr Cat Hier Dim OutUnit LongName ############################################################################### -##### CH4 sources ##### +##### CH4 sources ##### ############################################################################### - EmisCH4_Total CH4 -1 -1 -1 2 kg/m2/s CH4_emissions_from_all_sectors EmisCH4_Oil CH4 0 1 -1 2 kg/m2/s CH4_emissions_from_oil EmisCH4_Gas CH4 0 2 -1 2 kg/m2/s CH4_emissions_from_gas @@ -28,12 +27,13 @@ EmisCH4_Landfills CH4 0 5 -1 2 kg/m2/s CH4_emissions_from_land EmisCH4_Wastewater CH4 0 6 -1 2 kg/m2/s CH4_emissions_from_wastewater EmisCH4_Rice CH4 0 7 -1 2 kg/m2/s CH4_emissions_from_rice EmisCH4_OtherAnth CH4 0 8 -1 2 kg/m2/s CH4_emissions_from_other_anthropogenic_sources -EmisCH4_BiomassBurn CH4 0 9 -1 2 kg/m2/s CH4_emissions_from_biomass_burning +EmisCH4_BiomassBurn CH4 111 -1 -1 2 kg/m2/s CH4_emissions_from_biomass_burning EmisCH4_Wetlands CH4 0 10 -1 2 kg/m2/s CH4_emissions_from_wetlands EmisCH4_Seeps CH4 0 11 -1 2 kg/m2/s CH4_emissions_from_geological_seeps EmisCH4_Lakes CH4 0 12 -1 2 kg/m2/s CH4_emissions_from_lakes EmisCH4_Termites CH4 0 13 -1 2 kg/m2/s CH4_emissions_from_termites EmisCH4_SoilAbsorb CH4 0 14 -1 2 kg/m2/s CH4_emissions_from_soil_absorption +EmisCH4_Reservoirs CH4 0 15 -1 2 kg/m2/s CH4_emissions_from_hydroelectric_reservoirs ############################################################################### ##### CO sources ##### @@ -41,7 +41,7 @@ EmisCH4_SoilAbsorb CH4 0 14 -1 2 kg/m2/s CH4_emissions_from_soil EmisCO_Total CO -1 -1 -1 3 kg/m2/s CO_emission_flux_from_all_sectors EmisCO_Aircraft CO 0 20 -1 3 kg/m2/s CO_emission_flux_from_aircraft EmisCO_Anthro CO 0 1 -1 3 kg/m2/s CO_emission_flux_from_anthropogenic -EmisCO_BioBurn CO 0 5 -1 2 kg/m2/s CO_emission_flux_from_biomass_burning +EmisCO_BiomassBurn CO 111 -1 -1 2 kg/m2/s CO_emission_flux_from_biomass_burning EmisCO_Ship CO 0 10 -1 2 kg/m2/s CO_emission_flux_from_ships ############################################################################### @@ -55,13 +55,7 @@ EmisCO2_NetTerrExch CO2 0 5 -1 2 kg/m2/s CO2_net_terrestrial_exc EmisCO2_Ship CO2 0 6 -1 2 kg/m2/s CO2_ship_emissions EmisCO2_Aviation CO2 0 7 -1 3 kg/m2/s CO2_aviation_emissions EmisCO2_CO2SurfCorr CO2 0 8 -1 2 kg/m2/s CO2_surface_correction_for_CO_oxidation - -#NOTE: Biomass burning doesn't seem to work. Keep here for now. -# Uncomment this if GFED is used -#EmisCO2_Biomass_GFED CO2 111 1 1 2 kg/m2/s CO2_biomass_burning_emissions_from_GFED4 - -# Uncomment this if FINN is used -#EmisCO2_Biomass_FINN CO2 114 1 1 2 kg/m2/s CO2_biomass_burning_emissions_from_FINN +EmisCO2_BiomassBurn CO2 111 -1 -1 2 kg/m2/s CO2_biomass_burning_emissions_from_GFED4 ############################################################################### ##### OCS sources ##### @@ -72,76 +66,3 @@ EmisOCS_Bioburn OCS 0 2 -1 2 kg/m2/s OCS_emission_flux_from_ EmisOCS_MissingOcean OCS 0 3 -1 2 kg/m2/s OCS_emission_flux_from_missing_ocean EmisOCS_Ocean OCS 0 4 -1 2 kg/m2/s OCS_emission_flux_from_ocean -# Tagged CO species, uncomment if needed -# -################################################################################ -###### COus sources ##### -################################################################################ -#EmisCOus_Total COus -1 -1 -1 3 kg/m2/s COus_emission_flux_from_all_sectors -#EmisCOus_Aircraft COus 0 20 -1 3 kg/m2/s COus_emission_flux_from_aircraft -#EmisCOus_Anthro COus 0 1 -1 3 kg/m2/s COus_emission_flux_from_anthropogenic -#EmisCOus_BioBurn COus 0 5 -1 2 kg/m2/s COus_emission_flux_from_biomass_burning -#EmisCOus_Ship COus 0 10 -1 2 kg/m2/s COus_emission_flux_from_ships -# -################################################################################ -###### COeur sources ##### -################################################################################ -#EmisCOeur_Total COeur -1 -1 -1 3 kg/m2/s COeur_emission_flux_from_all_sectors -#EmisCOeur_Aircraft COeur 0 20 -1 3 kg/m2/s COeur_emission_flux_from_aircraft -#EmisCOeur_Anthro COeur 0 1 -1 3 kg/m2/s COeur_emission_flux_from_anthropogenic -#EmisCOeur_BioBurn COeur 0 5 -1 2 kg/m2/s COeur_emission_flux_from_biomass_burning -#EmisCOeur_Ship COeur 0 10 -1 2 kg/m2/s COeur_emission_flux_from_ships -# -################################################################################ -###### COasia sources ##### -################################################################################ -#EmisCOasia_Total COasia -1 -1 -1 3 kg/m2/s COasia_emission_flux_from_all_sectors -#EmisCOasia_Aircraft COasia 0 20 -1 3 kg/m2/s COasia_emission_flux_from_aircraft -#EmisCOasia_Anthro COasia 0 1 -1 3 kg/m2/s COasia_emission_flux_from_anthropogenic -#EmisCOasia_BioBurn COasia 0 5 -1 2 kg/m2/s COasia_emission_flux_from_biomass_burning -#EmisCOasia_Ship COasia 0 10 -1 2 kg/m2/s COasia_emission_flux_from_ships -# -################################################################################ -###### COoth sources ##### -################################################################################ -#EmisCOoth_Total COoth -1 -1 -1 3 kg/m2/s COoth_emission_flux_from_all_sectors -#EmisCOoth_Aircraft COoth 0 20 -1 3 kg/m2/s COoth_emission_flux_from_aircraft -#EmisCOoth_Anthro COoth 0 1 -1 3 kg/m2/s COoth_emission_flux_from_anthropogenic -#EmisCOoth_BioBurn COoth 0 5 -1 2 kg/m2/s COoth_emission_flux_from_biomass_burning -#EmisCOoth_Ship COoth 0 10 -1 2 kg/m2/s COoth_emission_flux_from_ships -# -################################################################################ -###### COus sources ##### -################################################################################ -#EmisCOus_Total COus -1 -1 -1 3 kg/m2/s COus_emission_flux_from_all_sectors -#EmisCOus_Aircraft COus 0 20 -1 3 kg/m2/s COus_emission_flux_from_aircraft -#EmisCOus_Anthro COus 0 1 -1 3 kg/m2/s COus_emission_flux_from_anthropogenic -#EmisCOus_BioBurn COus 0 5 -1 2 kg/m2/s COus_emission_flux_from_biomass_burning -#EmisCOus_Ship COus 0 10 -1 2 kg/m2/s COus_emission_flux_from_ships -# -################################################################################ -###### COeur sources ##### -################################################################################ -#EmisCOeur_Total COeur -1 -1 -1 3 kg/m2/s COeur_emission_flux_from_all_sectors -#EmisCOeur_Aircraft COeur 0 20 -1 3 kg/m2/s COeur_emission_flux_from_aircraft -#EmisCOeur_Anthro COeur 0 1 -1 3 kg/m2/s COeur_emission_flux_from_anthropogenic -#EmisCOeur_BioBurn COeur 0 5 -1 2 kg/m2/s COeur_emission_flux_from_biomass_burning -#EmisCOeur_Ship COeur 0 10 -1 2 kg/m2/s COeur_emission_flux_from_ships -# -################################################################################ -###### COasia sources ##### -################################################################################ -#EmisCOasia_Total COasia -1 -1 -1 3 kg/m2/s COasia_emission_flux_from_all_sectors -#EmisCOasia_Aircraft COasia 0 20 -1 3 kg/m2/s COasia_emission_flux_from_aircraft -#EmisCOasia_Anthro COasia 0 1 -1 3 kg/m2/s COasia_emission_flux_from_anthropogenic -#EmisCOasia_BioBurn COasia 0 5 -1 2 kg/m2/s COasia_emission_flux_from_biomass_burning -#EmisCOasia_Ship COasia 0 10 -1 2 kg/m2/s COasia_emission_flux_from_ships -# -################################################################################ -###### COoth sources ##### -################################################################################ -#EmisCOoth_Total COoth -1 -1 -1 3 kg/m2/s COoth_emission_flux_from_all_sectors -#EmisCOoth_Aircraft COoth 0 20 -1 3 kg/m2/s COoth_emission_flux_from_aircraft -#EmisCOoth_Anthro COoth 0 1 -1 3 kg/m2/s COoth_emission_flux_from_anthropogenic -#EmisCOoth_BioBurn COoth 0 5 -1 2 kg/m2/s COoth_emission_flux_from_biomass_burning -#EmisCOoth_Ship COoth 0 10 -1 2 kg/m2/s COoth_emission_flux_from_ships \ No newline at end of file diff --git a/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem b/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem index 22b317b93..4826f5a0b 100644 --- a/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem +++ b/run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem @@ -32,10 +32,16 @@ ############################################################################### ##### ACET emissions ##### ############################################################################### -EmisACET_Total ACET -1 -1 -1 3 kg/m2/s ACET_emission_flux_from_all_sectors -EmisACET_BioBurn ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_biomass_burning -EmisACET_Biogenic ACET 0 4 -1 2 kg/m2/s ACET_emission_flux_from_biogenic_sources -EmisACET_Ocean ACET 101 -1 -1 2 kg/m2/s ACET_emission_flux_from_ocean +EmisACET_Total ACET -1 -1 -1 3 kg/m2/s ACET_emission_flux_from_all_sectors +EmisACET_BioBurn ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_biomass_burning +EmisACET_Biogenic ACET 0 4 -1 2 kg/m2/s ACET_emission_flux_from_biogenic_sources +EmisACET_Ocean ACET 101 -1 -1 2 kg/m2/s ACET_emission_flux_from_ocean + +############################################################################### +##### ACTA emissions ##### +############################################################################### +EmisACTA_Total ACTA -1 -1 -1 3 kg/m2/s ACTA_emission_flux_from_all_sectors +EmisACTA_BioBurn ACTA 111 -1 -1 2 kg/m2/s ACTA_emission_flux_from_biomass_burning ############################################################################### ##### ALD2 emissions ##### @@ -208,11 +214,29 @@ EmisEOH_Ship EOH 0 10 -1 2 kg/m2/s EOH_emission_flux_from_sh ############################################################################### EmisETNO3_Ocean ETNO3 101 -1 -1 2 kg/m2/s ETNO3_emission_flux_from_ocean +############################################################################### +##### FURA emissions ##### +############################################################################### +EmisFURA_Total FURA -1 -1 -1 3 kg/m2/s FURA_emission_flux_from_all_sectors +EmisFURA_BioBurn FURA 111 -1 -1 2 kg/m2/s FURA_emission_flux_from_biomass_burning + +############################################################################### +##### GLYX emissions ##### +############################################################################### +EmisGLYX_Total GLYX -1 -1 -1 3 kg/m2/s GLYX_emission_flux_from_all_sectors +EmisGLYX_BioBurn GLYX 111 -1 -1 2 kg/m2/s GLYX_emission_flux_from_biomass_burning + ############################################################################### ##### H2O emissions ##### ############################################################################### EmisH2O_Aircraft H2O 0 20 -1 3 kg/m2/s H2O_emission_flux_from_aircraft +############################################################################### +##### HCl emissions ##### +############################################################################### +EmisHCl_Total HCl 0 -1 -1 3 kg/m2/s HCl_emission_flux_from_all_sectors +EmisHCl_Anthro HCl 0 1 -1 3 kg/m2/s HCl_emission_flux_from_anthropogenic + ############################################################################### ##### HCOOH sources ##### ############################################################################### @@ -234,6 +258,7 @@ EmisHONO_Aircraft HONO 0 20 -1 3 kg/m2/s HONO_emission_flux_from_a ##### ISOP emissions ##### ############################################################################### EmisISOP_Total ISOP -1 -1 -1 3 kg/m2/s ISOP_emission_flux_from_all_sectors +EmisISOP_BioBurn ISOP 111 -1 -1 2 kg/m2/s ISOP_emission_flux_from_biomass_burning EmisISOP_Biogenic ISOP 0 4 -1 2 kg/m2/s ISOP_emission_flux_from_biogenic_sources ############################################################################### @@ -263,9 +288,8 @@ EmisMENO3_Ocean MENO3 101 -1 -1 2 kg/m2/s MENO3_emission_flux_from_ ############################################################################### ##### MGLY emissions ##### ############################################################################### -# Zero for now, so comment out -#EmisMGLY_Total MGLY -1 -1 -1 3 kg/m2/s MGLY_emission_flux_from_all_sectors -#EmisMGLY_Anthro MGLY 0 1 -1 3 kg/m2/s MGLY_emission_flux_from_anthropogenic +EmisMGLY_Total MGLY -1 -1 -1 3 kg/m2/s MGLY_emission_flux_from_all_sectors +EmisMGLY_BioBurn MGLY 111 -1 -1 2 kg/m2/s MGLY_emission_flux_from_biomass_burning ############################################################################### ##### MOH emissions ##### @@ -287,8 +311,15 @@ EmisMTPA_Biogenic MTPA 0 4 -1 2 kg/m2/s MTPA_emission_flux_from_b ############################################################################### ##### MTPO emissions ##### ############################################################################### +EmisMTPO_Total MTPO -1 -1 -1 3 kg/m2/s MTPO_emission_flux_from_all_sectors EmisMTPO_Biogenic MTPO 0 4 -1 2 kg/m2/s MTPO_emission_flux_from_biogenic_sources +############################################################################### +##### MVK emissions ##### +############################################################################### +EmisMVK_Total MVK -1 -1 -1 3 kg/m2/s MVK_emission_flux_from_all_sectors +EmisMVK_BioBurn MVK 111 -1 -1 2 kg/m2/s MVK_emission_flux_from_biomass_burning + ############################################################################### ##### NAP emissions ##### ############################################################################### @@ -353,6 +384,12 @@ EmispFe_Total pFe -1 -1 -1 3 kg/m2/s pFe_emission_flux_from_al EmispFe_Anthro pFe 0 1 -1 3 kg/m2/s pFe_emission_flux_from_anthropogenic EmispFe_Ship pFe 0 10 -1 2 kg/m2/s pFe_emission_flux_from_ships +############################################################################### +##### PHEN emissions ##### +############################################################################### +EmisPHEN_Total PHEN -1 -1 -1 3 kg/m2/s PHEN_emission_flux_from_all_sectors +EmisPHEN_BioBurn PHEN 111 -1 -1 2 kg/m2/s PHEN_emission_flux_from_biomass_burning + ############################################################################### ##### POG1 and POG2 emissions ##### ############################################################################### @@ -378,6 +415,7 @@ EmisPRPE_Ship PRPE 0 10 -1 2 kg/m2/s PRPE_emission_flux_from_s ############################################################################### EmisRCHO_Total RCHO -1 -1 -1 3 kg/m2/s RCHO_emission_flux_from_all_sectors EmisRCHO_Aircraft RCHO 0 20 -1 3 kg/m2/s RCHO_emission_flux_from_aircraft +EmisRCHO_BioBurn RCHO 111 -1 -1 2 kg/m2/s RCHO_emission_flux_from_biomass_burning ############################################################################### ##### SESQ emissions ##### @@ -389,11 +427,11 @@ EmisRCHO_Aircraft RCHO 0 20 -1 3 kg/m2/s RCHO_emission_flux_from_a ##### Sea salt emissions ##### ############################################################################### EmisSALA_Natural SALA 0 3 -1 2 kg/m2/s SALA_emission_flux_from_natural_sources -#EmisBrSALA_Natural BrSALA 0 3 -1 2 kg/m2/s BrSALA_emission_flux_from_natural_sources +EmisBrSALA_Natural BrSALA 0 3 -1 2 kg/m2/s BrSALA_emission_flux_from_natural_sources EmisSALAAL_Natural SALAAL 0 3 -1 2 kg/m2/s SALAAL_emission_flux_from_natural_sources EmisSALACL_Natural SALACL 0 3 -1 2 kg/m2/s SALACL_emission_flux_from_natural_sources EmisSALC_Natural SALC 0 3 -1 2 kg/m2/s SALC_emission_flux_from_natural_sources -#EmisBrSALC_Natural BrSALC 0 3 -1 2 kg/m2/s BrSALC_emission_flux_from_natural_sources +EmisBrSALC_Natural BrSALC 0 3 -1 2 kg/m2/s BrSALC_emission_flux_from_natural_sources EmisSALCAL_Natural SALCAL 0 3 -1 2 kg/m2/s SALCAL_emission_flux_from_natural_sources EmisSALCCL_Natural SALCCL 0 3 -1 2 kg/m2/s SALCCL_emission_flux_from_natural_sources @@ -532,6 +570,11 @@ HcoConvectiveCloudTopHeight -1 103 -1 -1 2 level Convective_cloud_ #InvORDONEZ_CH2IBr CH2IBr 0 1 1 2 kg/m2/s CH2IBr_emission_flux_from_ORDONEZ_IODOCARB_inventory #InvORDONEZ_CH3I CH3I 0 1 1 2 kg/m2/s CH3I_emission_flux_from_ORDONEZ_IODOCARB_inventory +#============================= +# GT_Chlorine +#============================= +#InvGTChlorine_HCl HCl 0 1 1 2 kg/m2/s HCl_emission_flux_from_GT_Chlorine_inventory + #============================= # CEDS_SHIP #============================= @@ -681,6 +724,7 @@ HcoConvectiveCloudTopHeight -1 103 -1 -1 2 level Convective_cloud_ # GFED Extension #============================= #InvGFED_ACET ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_GFED_extension +#InvGFED_ACTA ACTA 111 -1 -1 2 kg/m2/s ACTA_emission_flux_from_GFED_extension #InvGFED_ALD2 ALD2 111 -1 -1 2 kg/m2/s ALD2_emission_flux_from_GFED_extension #InvGFED_ALK4 ALK4 111 -1 -1 2 kg/m2/s ALK4_emission_flux_from_GFED_extension #InvGFED_BCPI BCPI 111 -1 -1 2 kg/m2/s BCPI_emission_flux_from_GFED_extension @@ -691,17 +735,24 @@ HcoConvectiveCloudTopHeight -1 103 -1 -1 2 level Convective_cloud_ #InvGFED_CH2O CH2O 111 -1 -1 2 kg/m2/s CH2O_emission_flux_from_GFED_extension #InvGFED_CO CO 111 -1 -1 2 kg/m2/s CO_emission_flux_from_GFED_extension #InvGFED_EOH EOH 111 -1 -1 2 kg/m2/s EOH_emission_flux_from_GFED_extension +#InvGFED_FURA FURA 111 -1 -1 2 kg/m2/s FURA_emission_flux_from_GFED_extension +#InvGFED_GLYX GLYX 111 -1 -1 2 kg/m2/s GLYX_emission_flux_from_GFED_extension +#InvGFED_ISOP ISOP 111 -1 -1 2 kg/m2/s ISOP_emission_flux_from_GFED_extension #InvGFED_MEK MEK 111 -1 -1 2 kg/m2/s MEK_emission_flux_from_GFED_extension +#InvGFED_MGLY MGLY 111 -1 -1 2 kg/m2/s MGLY_emission_flux_from_GFED_extension #InvGFED_MOH MOH 111 -1 -1 2 kg/m2/s MOH_emission_flux_from_GFED_extension #InvGFED_MTPA MTP 111 -1 -1 2 kg/m2/s MTPA_emission_flux_from_GFED_extension +#InvGFED_MVK MVK 111 -1 -1 2 kg/m2/s MVK_emission_flux_from_GFED_extension #InvGFED_NAP NAP 111 -1 -1 2 kg/m2/s NAP_emission_flux_from_GFED_extension #InvGFED_NH3 NH3 111 -1 -1 2 kg/m2/s NH3_emission_flux_from_GFED_extension #InvGFED_NO NO 111 -1 -1 2 kg/m2/s NO_emission_flux_from_GFED_extension #InvGFED_OCPI OCPI 111 -1 -1 2 kg/m2/s OCPI_emission_flux_from_GFED_extension #InvGFED_OCPO OCPO 111 -1 -1 2 kg/m2/s OCPO_emission_flux_from_GFED_extension +#InvGFED_PHEN PHEN 111 -1 -1 2 kg/m2/s PHEN_emission_flux_from_GFED_extension #InvGFED_POG1 POG1 111 -1 -1 2 kg/m2/s POG1_emission_flux_from_GFED_extension #InvGFED_POG2 POG2 111 -1 -1 2 kg/m2/s POG2_emission_flux_from_GFED_extension #InvGFED_PRPE PRPE 111 -1 -1 2 kg/m2/s PRPE_emission_flux_from_GFED_extension +#InvGFED_RCHO RCHO 111 -1 -1 2 kg/m2/s RCHO_emission_flux_from_GFED_extension #InvGFED_SO2 SO2 111 -1 -1 2 kg/m2/s SO2_emission_flux_from_GFED_extension #InvGFED_SOAP SOAP 111 -1 -1 2 kg/m2/s SOAP_emission_flux_from_GFED_extension #InvGFED_TOLU TOLU 111 -1 -1 2 kg/m2/s TOLU_emission_flux_from_GFED_extension diff --git a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.CO2 b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.CO2 index 54e5d2b0d..ac455f1c2 100644 --- a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.CO2 +++ b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.CO2 @@ -1,6 +1,7 @@ EXPID: OutputDir/GEOSChem EXPDSC: GEOS-Chem_devel CoresPerNode: 6 +Allow_Overwrite: .true. VERSION: 1 #============================================================================== @@ -12,14 +13,16 @@ VERSION: 1 # in the collections section of this file. # # See the examples below for defining different types of grid at different -# resolutions. +# resolutions. See the collections section later on in this file for +# instructions on using an alternative grid for output. # -# See the collections section later on in this file for instructions on -# using an alternative grid for output. +# Beware that the online regridding is area-conserving. Only diagnostics +# independent of grid cell area should be output on a custom grid. For more +# information see the HISTORY.rc page at gchp.readthedocs.io/. #============================================================================== -GRID_LABELS: PE24x144-CF - PC360x181-DC - REGIONAL1x1 +GRID_LABELS: #PE24x144-CF + #PC360x181-DC + #REGIONAL1x1 :: # Example of cubed-sphere grid at c24 resolution @@ -52,6 +55,9 @@ GRID_LABELS: PE24x144-CF COLLECTIONS: 'Emissions', 'Budget', 'CloudConvFlux', + #'FV3Dynamics', + #'GCHPctmEnvLevCenter', + #'GCHPctmEnvLevEdge', 'LevelEdgeDiags', 'SpeciesConc_avg', 'SpeciesConc_inst', @@ -143,24 +149,32 @@ COLLECTIONS: 'Emissions', Budget.frequency: 010000 Budget.duration: 010000 Budget.mode: 'time-averaged' - Budget.fields: 'BudgetEmisDryDepFull_CO2 ', 'GCHPchem', - 'BudgetEmisDryDepFull_PassiveTracer ', 'GCHPchem', - 'BudgetEmisDryDepTrop_CO2 ', 'GCHPchem', - 'BudgetEmisDryDepTrop_PassiveTracer ', 'GCHPchem', - 'BudgetEmisDryDepPBL_CO2 ', 'GCHPchem', - 'BudgetEmisDryDepPBL_PassiveTracer ', 'GCHPchem', - 'BudgetMixingFull_CO2 ', 'GCHPchem', - 'BudgetMixingFull_PassiveTracer ', 'GCHPchem', - 'BudgetMixingTrop_CO2 ', 'GCHPchem', - 'BudgetMixingTrop_PassiveTracer ', 'GCHPchem', - 'BudgetMixingPBL_CO2 ', 'GCHPchem', - 'BudgetMixingPBL_PassiveTracer ', 'GCHPchem', - 'BudgetConvectionFull_CO2 ', 'GCHPchem', - 'BudgetConvectionFull_PassiveTracer ', 'GCHPchem', - 'BudgetConvectionTrop_CO2 ', 'GCHPchem', - 'BudgetConvectionTrop_PassiveTracer ', 'GCHPchem', - 'BudgetConvectionPBL_CO2 ', 'GCHPchem', - 'BudgetConvectionPBL_PassiveTracer ', 'GCHPchem', + Budget.fields: 'BudgetEmisDryDepFull_CO2 ', 'GCHPchem', + 'BudgetEmisDryDepFull_PassiveTracer ', 'GCHPchem', + 'BudgetEmisDryDepTrop_CO2 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_PassiveTracer ', 'GCHPchem', + 'BudgetEmisDryDepPBL_CO2 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_PassiveTracer ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_CO2 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_PassiveTracer', 'GCHPchem', + # + 'BudgetMixingFull_CO2 ', 'GCHPchem', + 'BudgetMixingFull_PassiveTracer ', 'GCHPchem', + 'BudgetMixingTrop_CO2 ', 'GCHPchem', + 'BudgetMixingTrop_PassiveTracer ', 'GCHPchem', + 'BudgetMixingPBL_CO2 ', 'GCHPchem', + 'BudgetMixingPBL_PassiveTracer ', 'GCHPchem', + 'BudgetMixingLevs1to35_CO2 ', 'GCHPchem', + 'BudgetMixingLevs1to35_PassiveTracer ', 'GCHPchem', + # + 'BudgetConvectionFull_CO2 ', 'GCHPchem', + 'BudgetConvectionFull_PassiveTracer ', 'GCHPchem', + 'BudgetConvectionTrop_CO2 ', 'GCHPchem', + 'BudgetConvectionTrop_PassiveTracer ', 'GCHPchem', + 'BudgetConvectionPBL_CO2 ', 'GCHPchem', + 'BudgetConvectionPBL_PassiveTracer ', 'GCHPchem', + 'BudgetConvectionLevs1to35_CO2 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_PassiveTracer', 'GCHPchem', :: #=============================================================================== CloudConvFlux.template: '%y4%m2%d2_%h2%n2z.nc4', @@ -173,6 +187,46 @@ COLLECTIONS: 'Emissions', CloudConvFlux.fields: 'CloudConvFlux_CO2 ', 'GCHPchem', 'CloudConvFlux_PassiveTracer ', 'GCHPchem', :: +#============================================================================== + FV3Dynamics.template: '%y4%m2%d2_%h2%n2z.nc4', + FV3Dynamics.format: 'CFIO', + FV3Dynamics.timestampStart: .true. + FV3Dynamics.monthly: 1 + FV3Dynamics.frequency: 010000 + FV3Dynamics.duration: 010000 + FV3Dynamics.mode: 'time-averaged' + FV3Dynamics.fields: 'PLE ', 'DYNAMICS', + 'DryPLE ', 'DYNAMICS', + 'PLEadv ', 'DYNAMICS', +:: +#============================================================================== + GCHPctmEnvLevEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + GCHPctmEnvLevEdge.format: 'CFIO', + GCHPctmEnvLevEdge.timestampStart: .true. + GCHPctmEnvLevEdge.monthly: 1 + GCHPctmEnvLevEdge.frequency: 010000 + GCHPctmEnvLevEdge.duration: 010000 + GCHPctmEnvLevEdge.mode: 'time-averaged' + GCHPctmEnvLevEdge.fields: 'UpwardsMassFlux ', 'GCHPctmEnv', + 'PLE0 ', 'GCHPctmEnv', + 'PLE1 ', 'GCHPctmEnv', + 'DryPLE0 ', 'GCHPctmEnv', + 'DryPLE1 ', 'GCHPctmEnv', +:: +#============================================================================== + GCHPctmEnvLevCenter.template: '%y4%m2%d2_%h2%n2z.nc4', + GCHPctmEnvLevCenter.format: 'CFIO', + GCHPctmEnvLevCenter.timestampStart: .true. + GCHPctmEnvLevCenter.monthly: 1 + GCHPctmEnvLevCenter.frequency: 010000 + GCHPctmEnvLevCenter.duration: 010000 + GCHPctmEnvLevCenter.mode: 'time-averaged' + GCHPctmEnvLevCenter.fields: 'SPHU0 ', 'GCHPctmEnv', + 'CX ', 'GCHPctmEnv', + 'CY ', 'GCHPctmEnv', + 'MFX ', 'GCHPctmEnv', + 'MFY ', 'GCHPctmEnv', +:: #============================================================================== LevelEdgeDiags.template: '%y4%m2%d2_%h2%n2z.nc4', LevelEdgeDiags.format: 'CFIO', @@ -249,10 +303,10 @@ COLLECTIONS: 'Emissions', 'Met_FRCLND ', 'GCHPchem', 'Met_FRLAKE ', 'GCHPchem', 'Met_FRLAND ', 'GCHPchem', - 'Met_FRLANDIC ', 'GCHPchem', + 'Met_FRLANDICE ', 'GCHPchem', 'Met_FROCEAN ', 'GCHPchem', 'Met_FRSEAICE ', 'GCHPchem', - 'Met_FRSNO ', 'GCHPchem', + 'Met_FRSNOW ', 'GCHPchem', 'Met_GWETROOT ', 'GCHPchem', 'Met_GWETTOP ', 'GCHPchem', 'Met_HFLUX ', 'GCHPchem', diff --git a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.TransportTracers b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.TransportTracers index 88dea5c60..c0705bd7b 100644 --- a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.TransportTracers +++ b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.TransportTracers @@ -1,6 +1,7 @@ EXPID: OutputDir/GEOSChem EXPDSC: GEOS-Chem_devel CoresPerNode: 6 +Allow_Overwrite: .true. VERSION: 1 #============================================================================== @@ -12,14 +13,16 @@ VERSION: 1 # in the collections section of this file. # # See the examples below for defining different types of grid at different -# resolutions. -# -# See the collections section later on in this file for instructions on +# resolutions. See the collections section later on in this file for instructions on # using an alternative grid for output. +# +# Beware that the online regridding is area-conserving. Only diagnostics +# independent of grid cell area should be output on a custom grid. For more +# information see the HISTORY.rc page at gchp.readthedocs.io/. #============================================================================== -GRID_LABELS: PE24x144-CF - PC360x181-DC - REGIONAL1x1 +GRID_LABELS: #PE24x144-CF + #PC360x181-DC + #REGIONAL1x1 :: # Example of cubed-sphere grid at c24 resolution @@ -52,9 +55,12 @@ GRID_LABELS: PE24x144-CF # You can disable collections by commenting out with # #============================================================================== COLLECTIONS: 'Emissions', - 'Budget', + #'Budget', 'CloudConvFlux', 'DryDep', + 'FV3Dynamics', + 'GCHPctmEnvLevCenter', + 'GCHPctmEnvLevEdge', 'LevelEdgeDiags', 'RadioNuclide', 'SpeciesConc', @@ -113,14 +119,13 @@ COLLECTIONS: 'Emissions', Emissions.mode: 'time-averaged' Emissions.fields: 'EmisRn_Soil ', 'GCHPchem', 'EmisBe7_Cosmic ', 'GCHPchem', - 'EmisBe7Strat_Cosmic ', 'GCHPchem', + 'EmisBe7s_Cosmic ', 'GCHPchem', 'EmisBe10_Cosmic ', 'GCHPchem', - 'EmisBe10Strat_Cosmic ', 'GCHPchem', - 'EmisSF6Tracer ', 'GCHPchem', - 'EmisCH3ITracer ', 'GCHPchem', - 'EmisCOAnthroEmis25dayTracer ', 'GCHPchem', - 'EmisCOAnthroEmis50dayTracer ', 'GCHPchem', - 'EmisCOUniformEmis25dayTracer', 'GCHPchem', + 'EmisBe10s_Cosmic ', 'GCHPchem', + 'EmisSF6 ', 'GCHPchem', + 'EmisCH3I ', 'GCHPchem', + 'EmisCO_25 ', 'GCHPchem', + 'EmisCO_50 ', 'GCHPchem', :: #============================================================================== # Budget defined as species kg/s in the column (full, troposphere, or PBL) @@ -133,180 +138,340 @@ COLLECTIONS: 'Emissions', Budget.frequency: 010000 Budget.duration: 010000 Budget.mode: 'time-averaged' - Budget.fields: 'BudgetChemistryFull_Rn222 ', 'GCHPchem', - 'BudgetChemistryFull_Pb210 ', 'GCHPchem', - 'BudgetChemistryFull_Pb210Strat ', 'GCHPchem', - 'BudgetChemistryFull_Be7 ', 'GCHPchem', - 'BudgetChemistryFull_Be7Strat ', 'GCHPchem', - 'BudgetChemistryFull_Be10 ', 'GCHPchem', - 'BudgetChemistryFull_Be10Strat ', 'GCHPchem', - 'BudgetChemistryFull_PassiveTracer ', 'GCHPchem', - 'BudgetChemistryFull_SF6Tracer ', 'GCHPchem', - 'BudgetChemistryFull_CH3ITracer ', 'GCHPchem', - 'BudgetChemistryFull_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetChemistryFull_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetChemistryFull_COUniformEmis25dayTracer ', 'GCHPchem', - 'BudgetChemistryTrop_Rn222 ', 'GCHPchem', - 'BudgetChemistryTrop_Pb210 ', 'GCHPchem', - 'BudgetChemistryTrop_Pb210Strat ', 'GCHPchem', - 'BudgetChemistryTrop_Be7 ', 'GCHPchem', - 'BudgetChemistryTrop_Be7Strat ', 'GCHPchem', - 'BudgetChemistryTrop_Be10 ', 'GCHPchem', - 'BudgetChemistryTrop_Be10Strat ', 'GCHPchem', - 'BudgetChemistryTrop_PassiveTracer ', 'GCHPchem', - 'BudgetChemistryTrop_SF6Tracer ', 'GCHPchem', - 'BudgetChemistryTrop_CH3ITracer ', 'GCHPchem', - 'BudgetChemistryTrop_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetChemistryTrop_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetChemistryTrop_COUniformEmis25dayTracer ', 'GCHPchem', - 'BudgetChemistryPBL_Rn222 ', 'GCHPchem', - 'BudgetChemistryPBL_Pb210 ', 'GCHPchem', - 'BudgetChemistryPBL_Pb210Strat ', 'GCHPchem', - 'BudgetChemistryPBL_Be7 ', 'GCHPchem', - 'BudgetChemistryPBL_Be7Strat ', 'GCHPchem', - 'BudgetChemistryPBL_Be10 ', 'GCHPchem', - 'BudgetChemistryPBL_Be10Strat ', 'GCHPchem', - 'BudgetChemistryPBL_PassiveTracer ', 'GCHPchem', - 'BudgetChemistryPBL_SF6Tracer ', 'GCHPchem', - 'BudgetChemistryPBL_CH3ITracer ', 'GCHPchem', - 'BudgetChemistryPBL_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetChemistryPBL_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetChemistryPBL_COUniformEmis25dayTracer ', 'GCHPchem', - 'BudgetEmisDryDepFull_Rn222 ', 'GCHPchem', - 'BudgetEmisDryDepFull_Pb210 ', 'GCHPchem', - 'BudgetEmisDryDepFull_Pb210Strat ', 'GCHPchem', - 'BudgetEmisDryDepFull_Be7 ', 'GCHPchem', - 'BudgetEmisDryDepFull_Be7Strat ', 'GCHPchem', - 'BudgetEmisDryDepFull_Be10 ', 'GCHPchem', - 'BudgetEmisDryDepFull_Be10Strat ', 'GCHPchem', - 'BudgetEmisDryDepFull_PassiveTracer ', 'GCHPchem', - 'BudgetEmisDryDepFull_SF6Tracer ', 'GCHPchem', - 'BudgetEmisDryDepFull_CH3ITracer ', 'GCHPchem', - 'BudgetEmisDryDepFull_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetEmisDryDepFull_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetEmisDryDepFull_COUniformEmis25dayTracer', 'GCHPchem', - 'BudgetEmisDryDepTrop_Rn222 ', 'GCHPchem', - 'BudgetEmisDryDepTrop_Pb210 ', 'GCHPchem', - 'BudgetEmisDryDepTrop_Pb210Strat ', 'GCHPchem', - 'BudgetEmisDryDepTrop_Be7 ', 'GCHPchem', - 'BudgetEmisDryDepTrop_Be7Strat ', 'GCHPchem', - 'BudgetEmisDryDepTrop_Be10 ', 'GCHPchem', - 'BudgetEmisDryDepTrop_Be10Strat ', 'GCHPchem', - 'BudgetEmisDryDepTrop_PassiveTracer ', 'GCHPchem', - 'BudgetEmisDryDepTrop_SF6Tracer ', 'GCHPchem', - 'BudgetEmisDryDepTrop_CH3ITracer ', 'GCHPchem', - 'BudgetEmisDryDepTrop_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetEmisDryDepTrop_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetEmisDryDepTrop_COUniformEmis25dayTracer', 'GCHPchem', - 'BudgetEmisDryDepPBL_Rn222 ', 'GCHPchem', - 'BudgetEmisDryDepPBL_Pb210 ', 'GCHPchem', - 'BudgetEmisDryDepPBL_Pb210Strat ', 'GCHPchem', - 'BudgetEmisDryDepPBL_Be7 ', 'GCHPchem', - 'BudgetEmisDryDepPBL_Be7Strat ', 'GCHPchem', - 'BudgetEmisDryDepPBL_Be10 ', 'GCHPchem', - 'BudgetEmisDryDepPBL_Be10Strat ', 'GCHPchem', - 'BudgetEmisDryDepPBL_PassiveTracer ', 'GCHPchem', - 'BudgetEmisDryDepPBL_SF6Tracer ', 'GCHPchem', - 'BudgetEmisDryDepPBL_CH3ITracer ', 'GCHPchem', - 'BudgetEmisDryDepPBL_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetEmisDryDepPBL_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetEmisDryDepPBL_COUniformEmis25dayTracer ', 'GCHPchem', - 'BudgetMixingFull_Rn222 ', 'GCHPchem', - 'BudgetMixingFull_Pb210 ', 'GCHPchem', - 'BudgetMixingFull_Pb210Strat ', 'GCHPchem', - 'BudgetMixingFull_Be7 ', 'GCHPchem', - 'BudgetMixingFull_Be7Strat ', 'GCHPchem', - 'BudgetMixingFull_Be10 ', 'GCHPchem', - 'BudgetMixingFull_Be10Strat ', 'GCHPchem', - 'BudgetMixingFull_PassiveTracer ', 'GCHPchem', - 'BudgetMixingFull_SF6Tracer ', 'GCHPchem', - 'BudgetMixingFull_CH3ITracer ', 'GCHPchem', - 'BudgetMixingFull_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetMixingFull_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetMixingFull_COUniformEmis25dayTracer ', 'GCHPchem', - 'BudgetMixingTrop_Rn222 ', 'GCHPchem', - 'BudgetMixingTrop_Pb210 ', 'GCHPchem', - 'BudgetMixingTrop_Pb210Strat ', 'GCHPchem', - 'BudgetMixingTrop_Be7 ', 'GCHPchem', - 'BudgetMixingTrop_Be7Strat ', 'GCHPchem', - 'BudgetMixingTrop_Be10 ', 'GCHPchem', - 'BudgetMixingTrop_Be10Strat ', 'GCHPchem', - 'BudgetMixingTrop_PassiveTracer ', 'GCHPchem', - 'BudgetMixingTrop_SF6Tracer ', 'GCHPchem', - 'BudgetMixingTrop_CH3ITracer ', 'GCHPchem', - 'BudgetMixingTrop_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetMixingTrop_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetMixingTrop_COUniformEmis25dayTracer ', 'GCHPchem', - 'BudgetMixingPBL_Rn222 ', 'GCHPchem', - 'BudgetMixingPBL_Pb210 ', 'GCHPchem', - 'BudgetMixingPBL_Pb210Strat ', 'GCHPchem', - 'BudgetMixingPBL_Be7 ', 'GCHPchem', - 'BudgetMixingPBL_Be7Strat ', 'GCHPchem', - 'BudgetMixingPBL_Be10 ', 'GCHPchem', - 'BudgetMixingPBL_Be10Strat ', 'GCHPchem', - 'BudgetMixingPBL_PassiveTracer ', 'GCHPchem', - 'BudgetMixingPBL_SF6Tracer ', 'GCHPchem', - 'BudgetMixingPBL_CH3ITracer ', 'GCHPchem', - 'BudgetMixingPBL_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetMixingPBL_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetMixingPBL_COUniformEmis25dayTracer ', 'GCHPchem', - 'BudgetConvectionFull_Rn222 ', 'GCHPchem', - 'BudgetConvectionFull_Pb210 ', 'GCHPchem', - 'BudgetConvectionFull_Pb210Strat ', 'GCHPchem', - 'BudgetConvectionFull_Be7 ', 'GCHPchem', - 'BudgetConvectionFull_Be7Strat ', 'GCHPchem', - 'BudgetConvectionFull_Be10 ', 'GCHPchem', - 'BudgetConvectionFull_Be10Strat ', 'GCHPchem', - 'BudgetConvectionFull_PassiveTracer ', 'GCHPchem', - 'BudgetConvectionFull_SF6Tracer ', 'GCHPchem', - 'BudgetConvectionFull_CH3ITracer ', 'GCHPchem', - 'BudgetConvectionFull_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetConvectionFull_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetConvectionFull_COUniformEmis25dayTracer', 'GCHPchem', - 'BudgetConvectionTrop_Rn222 ', 'GCHPchem', - 'BudgetConvectionTrop_Pb210 ', 'GCHPchem', - 'BudgetConvectionTrop_Pb210Strat ', 'GCHPchem', - 'BudgetConvectionTrop_Be7 ', 'GCHPchem', - 'BudgetConvectionTrop_Be7Strat ', 'GCHPchem', - 'BudgetConvectionTrop_Be10 ', 'GCHPchem', - 'BudgetConvectionTrop_Be10Strat ', 'GCHPchem', - 'BudgetConvectionTrop_PassiveTracer ', 'GCHPchem', - 'BudgetConvectionTrop_CH3ITracer ', 'GCHPchem', - 'BudgetConvectionTrop_SF6Tracer ', 'GCHPchem', - 'BudgetConvectionTrop_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetConvectionTrop_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetConvectionTrop_COUniformEmis25dayTracer', 'GCHPchem', - 'BudgetConvectionPBL_Rn222 ', 'GCHPchem', - 'BudgetConvectionPBL_Pb210 ', 'GCHPchem', - 'BudgetConvectionPBL_Pb210Strat ', 'GCHPchem', - 'BudgetConvectionPBL_Be7 ', 'GCHPchem', - 'BudgetConvectionPBL_Be7Strat ', 'GCHPchem', - 'BudgetConvectionPBL_Be10 ', 'GCHPchem', - 'BudgetConvectionPBL_Be10Strat ', 'GCHPchem', - 'BudgetConvectionPBL_PassiveTracer ', 'GCHPchem', - 'BudgetConvectionPBL_SF6Tracer ', 'GCHPchem', - 'BudgetConvectionPBL_CH3ITracer ', 'GCHPchem', - 'BudgetConvectionPBL_COAnthroEmis25dayTracer ', 'GCHPchem', - 'BudgetConvectionPBL_COAnthroEmis50dayTracer ', 'GCHPchem', - 'BudgetConvectionPBL_COUniformEmis25dayTracer ', 'GCHPchem', - 'BudgetWetDepFull_Pb210 ', 'GCHPchem', - 'BudgetWetDepFull_Pb210Strat ', 'GCHPchem', - 'BudgetWetDepFull_Be7 ', 'GCHPchem', - 'BudgetWetDepFull_Be7Strat ', 'GCHPchem', - 'BudgetWetDepFull_Be10 ', 'GCHPchem', - 'BudgetWetDepFull_Be10Strat ', 'GCHPchem', - 'BudgetWetDepTrop_Pb210 ', 'GCHPchem', - 'BudgetWetDepTrop_Pb210Strat ', 'GCHPchem', - 'BudgetWetDepTrop_Be7 ', 'GCHPchem', - 'BudgetWetDepTrop_Be7Strat ', 'GCHPchem', - 'BudgetWetDepTrop_Be10 ', 'GCHPchem', - 'BudgetWetDepTrop_Be10Strat ', 'GCHPchem', - 'BudgetWetDepPBL_Pb210 ', 'GCHPchem', - 'BudgetWetDepPBL_Pb210Strat ', 'GCHPchem', - 'BudgetWetDepPBL_Be7 ', 'GCHPchem', - 'BudgetWetDepPBL_Be7Strat ', 'GCHPchem', - 'BudgetWetDepPBL_Be10 ', 'GCHPchem', - 'BudgetWetDepPBL_Be10Strat ', 'GCHPchem', + Budget.fields: 'BudgetChemistryFull_Rn222 ', 'GCHPchem', + 'BudgetChemistryFull_Pb210 ', 'GCHPchem', + 'BudgetChemistryFull_Pb210s ', 'GCHPchem', + 'BudgetChemistryFull_Be7 ', 'GCHPchem', + 'BudgetChemistryFull_Be7s ', 'GCHPchem', + 'BudgetChemistryFull_Be10 ', 'GCHPchem', + 'BudgetChemistryFull_Be10s ', 'GCHPchem', + 'BudgetChemistryFull_CH3I ', 'GCHPchem', + 'BudgetChemistryFull_CO_25 ', 'GCHPchem', + 'BudgetChemistryFull_CO_50 ', 'GCHPchem', + 'BudgetChemistryFull_e90 ', 'GCHPchem', + 'BudgetChemistryFull_e90_n ', 'GCHPchem', + 'BudgetChemistryFull_e90_s ', 'GCHPchem', + 'BudgetChemistryFull_nh_5 ', 'GCHPchem', + 'BudgetChemistryFull_nh_50 ', 'GCHPchem', + 'BudgetChemistryFull_PassiveTracer ', 'GCHPchem', + 'BudgetChemistryFull_SF6 ', 'GCHPchem', + 'BudgetChemistryFull_st80_25 ', 'GCHPchem', + # + 'BudgetEmisDryDepFull_Rn222 ', 'GCHPchem', + 'BudgetEmisDryDepFull_Pb210 ', 'GCHPchem', + 'BudgetEmisDryDepFull_Pb210s ', 'GCHPchem', + 'BudgetEmisDryDepFull_Be7 ', 'GCHPchem', + 'BudgetEmisDryDepFull_Be7s ', 'GCHPchem', + 'BudgetEmisDryDepFull_Be10 ', 'GCHPchem', + 'BudgetEmisDryDepFull_Be10s ', 'GCHPchem', + 'BudgetEmisDryDepFull_CH3I ', 'GCHPchem', + 'BudgetEmisDryDepFull_CO_25 ', 'GCHPchem', + 'BudgetEmisDryDepFull_CO_50 ', 'GCHPchem', + 'BudgetEmisDryDepFull_e90 ', 'GCHPchem', + 'BudgetEmisDryDepFull_e90_n ', 'GCHPchem', + 'BudgetEmisDryDepFull_e90_s ', 'GCHPchem', + 'BudgetEmisDryDepFull_nh_5 ', 'GCHPchem', + 'BudgetEmisDryDepFull_nh_50 ', 'GCHPchem', + 'BudgetEmisDryDepFull_PassiveTracer ', 'GCHPchem', + 'BudgetEmisDryDepFull_SF6 ', 'GCHPchem', + 'BudgetEmisDryDepFull_st80_25 ', 'GCHPchem', + # + 'BudgetMixingFull_Rn222 ', 'GCHPchem', + 'BudgetMixingFull_Pb210 ', 'GCHPchem', + 'BudgetMixingFull_Pb210s ', 'GCHPchem', + 'BudgetMixingFull_Be7 ', 'GCHPchem', + 'BudgetMixingFull_Be7s ', 'GCHPchem', + 'BudgetMixingFull_Be10 ', 'GCHPchem', + 'BudgetMixingFull_Be10s ', 'GCHPchem', + 'BudgetMixingFull_CH3I ', 'GCHPchem', + 'BudgetMixingFull_CO_25 ', 'GCHPchem', + 'BudgetMixingFull_CO_50 ', 'GCHPchem', + 'BudgetMixingFull_e90 ', 'GCHPchem', + 'BudgetMixingFull_e90_n ', 'GCHPchem', + 'BudgetMixingFull_e90_s ', 'GCHPchem', + 'BudgetMixingFull_nh_5 ', 'GCHPchem', + 'BudgetMixingFull_nh_50 ', 'GCHPchem', + 'BudgetMixingFull_PassiveTracer ', 'GCHPchem', + 'BudgetMixingFull_SF6 ', 'GCHPchem', + 'BudgetMixingFull_st80_25 ', 'GCHPchem', + # + 'BudgetConvectionFull_Rn222 ', 'GCHPchem', + 'BudgetConvectionFull_Pb210 ', 'GCHPchem', + 'BudgetConvectionFull_Pb210s ', 'GCHPchem', + 'BudgetConvectionFull_Be7 ', 'GCHPchem', + 'BudgetConvectionFull_Be7s ', 'GCHPchem', + 'BudgetConvectionFull_Be10 ', 'GCHPchem', + 'BudgetConvectionFull_Be10s ', 'GCHPchem', + 'BudgetConvectionFull_CH3I ', 'GCHPchem', + 'BudgetConvectionFull_CO_25 ', 'GCHPchem', + 'BudgetConvectionFull_CO_50 ', 'GCHPchem', + 'BudgetConvectionFull_e90 ', 'GCHPchem', + 'BudgetConvectionFull_e90_n ', 'GCHPchem', + 'BudgetConvectionFull_e90_s ', 'GCHPchem', + 'BudgetConvectionFull_nh_5 ', 'GCHPchem', + 'BudgetConvectionFull_nh_50 ', 'GCHPchem', + 'BudgetConvectionFull_PassiveTracer ', 'GCHPchem', + 'BudgetConvectionFull_SF6 ', 'GCHPchem', + 'BudgetConvectionFull_st80_25 ', 'GCHPchem', + # + 'BudgetWetDepFull_Pb210 ', 'GCHPchem', + 'BudgetWetDepFull_Pb210s ', 'GCHPchem', + 'BudgetWetDepFull_Be7 ', 'GCHPchem', + 'BudgetWetDepFull_Be7s ', 'GCHPchem', + 'BudgetWetDepFull_Be10 ', 'GCHPchem', + 'BudgetWetDepFull_Be10s ', 'GCHPchem', + # + # + 'BudgetChemistryLevs1to35_Rn222 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_Pb210 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_Pb210s ', 'GCHPchem', + 'BudgetChemistryLevs1to35_Be7 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_Be7s ', 'GCHPchem', + 'BudgetChemistryLevs1to35_Be10 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_Be10s ', 'GCHPchem', + 'BudgetChemistryLevs1to35_CH3I ', 'GCHPchem', + 'BudgetChemistryLevs1to35_CO_25 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_CO_50 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_e90 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_e90_n ', 'GCHPchem', + 'BudgetChemistryLevs1to35_e90_s ', 'GCHPchem', + 'BudgetChemistryLevs1to35_nh_5 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_nh_50 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_PassiveTracer ', 'GCHPchem', + 'BudgetChemistryLevs1to35_SF6 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_st80_25 ', 'GCHPchem', + # + 'BudgetEmisDryDepLevs1to35_Rn222 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_Pb210 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_Pb210s ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_Be7 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_Be7s ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_Be10 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_Be10s ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_CH3I ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_CO_25 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_CO_50 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_e90 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_e90_n ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_e90_s ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_nh_5 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_nh_50 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_PassiveTracer', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_SF6 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_st80_25 ', 'GCHPchem', + # + 'BudgetMixingLevs1to35_Rn222 ', 'GCHPchem', + 'BudgetMixingLevs1to35_Pb210 ', 'GCHPchem', + 'BudgetMixingLevs1to35_Pb210s ', 'GCHPchem', + 'BudgetMixingLevs1to35_Be7 ', 'GCHPchem', + 'BudgetMixingLevs1to35_Be7s ', 'GCHPchem', + 'BudgetMixingLevs1to35_Be10 ', 'GCHPchem', + 'BudgetMixingLevs1to35_Be10s ', 'GCHPchem', + 'BudgetMixingLevs1to35_CH3I ', 'GCHPchem', + 'BudgetMixingLevs1to35_CO_25 ', 'GCHPchem', + 'BudgetMixingLevs1to35_CO_50 ', 'GCHPchem', + 'BudgetMixingLevs1to35_e90 ', 'GCHPchem', + 'BudgetMixingLevs1to35_e90_n ', 'GCHPchem', + 'BudgetMixingLevs1to35_e90_s ', 'GCHPchem', + 'BudgetMixingLevs1to35_nh_5 ', 'GCHPchem', + 'BudgetMixingLevs1to35_nh_50 ', 'GCHPchem', + 'BudgetMixingLevs1to35_PassiveTracer ', 'GCHPchem', + 'BudgetMixingLevs1to35_SF6 ', 'GCHPchem', + 'BudgetMixingLevs1to35_st80_25 ', 'GCHPchem', + # + 'BudgetConvectionLevs1to35_Rn222 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_Pb210 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_Pb210s ', 'GCHPchem', + 'BudgetConvectionLevs1to35_Be7 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_Be7s ', 'GCHPchem', + 'BudgetConvectionLevs1to35_Be10 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_Be10s ', 'GCHPchem', + 'BudgetConvectionLevs1to35_CH3I ', 'GCHPchem', + 'BudgetConvectionLevs1to35_CO_25 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_CO_50 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_e90 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_e90_n ', 'GCHPchem', + 'BudgetConvectionLevs1to35_e90_s ', 'GCHPchem', + 'BudgetConvectionLevs1to35_nh_5 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_nh_50 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_PassiveTracer', 'GCHPchem', + 'BudgetConvectionLevs1to35_SF6 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_st80_25 ', 'GCHPchem', + # + 'BudgetWetDepLevs1to35_Pb210 ', 'GCHPchem', + 'BudgetWetDepLevs1to35_Pb210s ', 'GCHPchem', + 'BudgetWetDepLevs1to35_Be7 ', 'GCHPchem', + 'BudgetWetDepLevs1to35_Be7s ', 'GCHPchem', + 'BudgetWetDepLevs1to35_Be10 ', 'GCHPchem', + 'BudgetWetDepLevs1to35_Be10s ', 'GCHPchem', + # + # + 'BudgetChemistryTrop_Rn222 ', 'GCHPchem', + 'BudgetChemistryTrop_Pb210 ', 'GCHPchem', + 'BudgetChemistryTrop_Pb210s ', 'GCHPchem', + 'BudgetChemistryTrop_Be7 ', 'GCHPchem', + 'BudgetChemistryTrop_Be7s ', 'GCHPchem', + 'BudgetChemistryTrop_Be10 ', 'GCHPchem', + 'BudgetChemistryTrop_Be10s ', 'GCHPchem', + 'BudgetChemistryTrop_CH3I ', 'GCHPchem', + 'BudgetChemistryTrop_CO_25 ', 'GCHPchem', + 'BudgetChemistryTrop_CO_50 ', 'GCHPchem', + 'BudgetChemistryTrop_e90 ', 'GCHPchem', + 'BudgetChemistryTrop_e90_n ', 'GCHPchem', + 'BudgetChemistryTrop_e90_s ', 'GCHPchem', + 'BudgetChemistryTrop_nh_5 ', 'GCHPchem', + 'BudgetChemistryTrop_nh_50 ', 'GCHPchem', + 'BudgetChemistryTrop_PassiveTracer ', 'GCHPchem', + 'BudgetChemistryTrop_SF6 ', 'GCHPchem', + 'BudgetChemistryTrop_st80_25 ', 'GCHPchem', + # + 'BudgetEmisDryDepTrop_Rn222 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_Pb210 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_Pb210s ', 'GCHPchem', + 'BudgetEmisDryDepTrop_Be7 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_Be7s ', 'GCHPchem', + 'BudgetEmisDryDepTrop_Be10 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_Be10s ', 'GCHPchem', + 'BudgetEmisDryDepTrop_CH3I ', 'GCHPchem', + 'BudgetEmisDryDepTrop_CO_25 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_CO_50 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_e90 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_e90_n ', 'GCHPchem', + 'BudgetEmisDryDepTrop_e90_s ', 'GCHPchem', + 'BudgetEmisDryDepTrop_nh_5 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_nh_50 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_PassiveTracer ', 'GCHPchem', + 'BudgetEmisDryDepTrop_SF6 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_st80_25 ', 'GCHPchem', + # + 'BudgetMixingTrop_Rn222 ', 'GCHPchem', + 'BudgetMixingTrop_Pb210 ', 'GCHPchem', + 'BudgetMixingTrop_Pb210s ', 'GCHPchem', + 'BudgetMixingTrop_Be7 ', 'GCHPchem', + 'BudgetMixingTrop_Be7s ', 'GCHPchem', + 'BudgetMixingTrop_Be10 ', 'GCHPchem', + 'BudgetMixingTrop_Be10s ', 'GCHPchem', + 'BudgetMixingTrop_CH3I ', 'GCHPchem', + 'BudgetMixingTrop_CO_25 ', 'GCHPchem', + 'BudgetMixingTrop_CO_50 ', 'GCHPchem', + 'BudgetMixingTrop_e90 ', 'GCHPchem', + 'BudgetMixingTrop_e90_n ', 'GCHPchem', + 'BudgetMixingTrop_e90_s ', 'GCHPchem', + 'BudgetMixingTrop_nh_5 ', 'GCHPchem', + 'BudgetMixingTrop_nh_50 ', 'GCHPchem', + 'BudgetMixingTrop_PassiveTracer ', 'GCHPchem', + 'BudgetMixingTrop_SF6 ', 'GCHPchem', + 'BudgetMixingTrop_st80_25 ', 'GCHPchem', + # + 'BudgetConvectionTrop_Rn222 ', 'GCHPchem', + 'BudgetConvectionTrop_Pb210 ', 'GCHPchem', + 'BudgetConvectionTrop_Pb210s ', 'GCHPchem', + 'BudgetConvectionTrop_Be7 ', 'GCHPchem', + 'BudgetConvectionTrop_Be7s ', 'GCHPchem', + 'BudgetConvectionTrop_Be10 ', 'GCHPchem', + 'BudgetConvectionTrop_Be10s ', 'GCHPchem', + 'BudgetConvectionTrop_CH3I ', 'GCHPchem', + 'BudgetConvectionTrop_CO_25 ', 'GCHPchem', + 'BudgetConvectionTrop_CO_50 ', 'GCHPchem', + 'BudgetConvectionTrop_e90 ', 'GCHPchem', + 'BudgetConvectionTrop_e90_n ', 'GCHPchem', + 'BudgetConvectionTrop_e90_s ', 'GCHPchem', + 'BudgetConvectionTrop_nh_5 ', 'GCHPchem', + 'BudgetConvectionTrop_nh_50 ', 'GCHPchem', + 'BudgetConvectionTrop_PassiveTracer ', 'GCHPchem', + 'BudgetConvectionTrop_SF6 ', 'GCHPchem', + 'BudgetConvectionTrop_st80_25 ', 'GCHPchem', + # + 'BudgetWetDepTrop_Pb210 ', 'GCHPchem', + 'BudgetWetDepTrop_Pb210s ', 'GCHPchem', + 'BudgetWetDepTrop_Be7 ', 'GCHPchem', + 'BudgetWetDepTrop_Be7s ', 'GCHPchem', + 'BudgetWetDepTrop_Be10 ', 'GCHPchem', + 'BudgetWetDepTrop_Be10s ', 'GCHPchem', + # + # + 'BudgetChemistryPBL_Rn222 ', 'GCHPchem', + 'BudgetChemistryPBL_Pb210 ', 'GCHPchem', + 'BudgetChemistryPBL_Pb210s ', 'GCHPchem', + 'BudgetChemistryPBL_Be7 ', 'GCHPchem', + 'BudgetChemistryPBL_Be7s ', 'GCHPchem', + 'BudgetChemistryPBL_Be10 ', 'GCHPchem', + 'BudgetChemistryPBL_Be10s ', 'GCHPchem', + 'BudgetChemistryPBL_CH3I ', 'GCHPchem', + 'BudgetChemistryPBL_CO_25 ', 'GCHPchem', + 'BudgetChemistryPBL_CO_50 ', 'GCHPchem', + 'BudgetChemistryPBL_e90 ', 'GCHPchem', + 'BudgetChemistryPBL_e90_n ', 'GCHPchem', + 'BudgetChemistryPBL_e90_s ', 'GCHPchem', + 'BudgetChemistryPBL_nh_5 ', 'GCHPchem', + 'BudgetChemistryPBL_nh_50 ', 'GCHPchem', + 'BudgetChemistryPBL_PassiveTracer ', 'GCHPchem', + 'BudgetChemistryPBL_SF6 ', 'GCHPchem', + 'BudgetChemistryPBL_st80_25 ', 'GCHPchem', + # + 'BudgetEmisDryDepPBL_Rn222 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_Pb210 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_Pb210s ', 'GCHPchem', + 'BudgetEmisDryDepPBL_Be7 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_Be7s ', 'GCHPchem', + 'BudgetEmisDryDepPBL_Be10 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_Be10s ', 'GCHPchem', + 'BudgetEmisDryDepPBL_CH3I ', 'GCHPchem', + 'BudgetEmisDryDepPBL_CO_25 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_CO_50 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_e90 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_e90_n ', 'GCHPchem', + 'BudgetEmisDryDepPBL_e90_s ', 'GCHPchem', + 'BudgetEmisDryDepPBL_nh_5 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_nh_50 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_PassiveTracer ', 'GCHPchem', + 'BudgetEmisDryDepPBL_SF6 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_st80_25 ', 'GCHPchem', + # + 'BudgetMixingPBL_Rn222 ', 'GCHPchem', + 'BudgetMixingPBL_Pb210 ', 'GCHPchem', + 'BudgetMixingPBL_Pb210s ', 'GCHPchem', + 'BudgetMixingPBL_Be7 ', 'GCHPchem', + 'BudgetMixingPBL_Be7s ', 'GCHPchem', + 'BudgetMixingPBL_Be10 ', 'GCHPchem', + 'BudgetMixingPBL_Be10s ', 'GCHPchem', + 'BudgetMixingPBL_CH3I ', 'GCHPchem', + 'BudgetMixingPBL_CO_25 ', 'GCHPchem', + 'BudgetMixingPBL_CO_50 ', 'GCHPchem', + 'BudgetMixingPBL_e90 ', 'GCHPchem', + 'BudgetMixingPBL_e90_n ', 'GCHPchem', + 'BudgetMixingPBL_e90_s ', 'GCHPchem', + 'BudgetMixingPBL_nh_5 ', 'GCHPchem', + 'BudgetMixingPBL_nh_50 ', 'GCHPchem', + 'BudgetMixingPBL_PassiveTracer ', 'GCHPchem', + 'BudgetMixingPBL_SF6 ', 'GCHPchem', + 'BudgetMixingPBL_st80_25 ', 'GCHPchem', + # + 'BudgetConvectionPBL_Rn222 ', 'GCHPchem', + 'BudgetConvectionPBL_Pb210 ', 'GCHPchem', + 'BudgetConvectionPBL_Pb210s ', 'GCHPchem', + 'BudgetConvectionPBL_Be7 ', 'GCHPchem', + 'BudgetConvectionPBL_Be7s ', 'GCHPchem', + 'BudgetConvectionPBL_Be10 ', 'GCHPchem', + 'BudgetConvectionPBL_Be10s ', 'GCHPchem', + 'BudgetConvectionPBL_CH3I ', 'GCHPchem', + 'BudgetConvectionPBL_CO_25 ', 'GCHPchem', + 'BudgetConvectionPBL_CO_50 ', 'GCHPchem', + 'BudgetConvectionPBL_e90 ', 'GCHPchem', + 'BudgetConvectionPBL_e90_n ', 'GCHPchem', + 'BudgetConvectionPBL_e90_s ', 'GCHPchem', + 'BudgetConvectionPBL_nh_5 ', 'GCHPchem', + 'BudgetConvectionPBL_nh_50 ', 'GCHPchem', + 'BudgetConvectionPBL_PassiveTracer ', 'GCHPchem', + 'BudgetConvectionPBL_SF6 ', 'GCHPchem', + 'BudgetConvectionPBL_st80_25 ', 'GCHPchem', + # + 'BudgetWetDepPBL_Pb210 ', 'GCHPchem', + 'BudgetWetDepPBL_Pb210s ', 'GCHPchem', + 'BudgetWetDepPBL_Be7 ', 'GCHPchem', + 'BudgetWetDepPBL_Be7s ', 'GCHPchem', + 'BudgetWetDepPBL_Be10 ', 'GCHPchem', + 'BudgetWetDepPBL_Be10s ', 'GCHPchem', :: #=============================================================================== CloudConvFlux.template: '%y4%m2%d2_%h2%n2z.nc4', @@ -316,19 +481,27 @@ COLLECTIONS: 'Emissions', CloudConvFlux.frequency: 010000 CloudConvFlux.duration: 010000 CloudConvFlux.mode: 'time-averaged' - CloudConvFlux.fields: 'CloudConvFlux_Rn222 ', 'GCHPchem', - 'CloudConvFlux_Pb210 ', 'GCHPchem', - 'CloudConvFlux_Pb210Strat ', 'GCHPchem', - 'CloudConvFlux_Be7 ', 'GCHPchem', - 'CloudConvFlux_Be7Strat ', 'GCHPchem', - 'CloudConvFlux_Be10 ', 'GCHPchem', - 'CloudConvFlux_Be10Strat ', 'GCHPchem', - 'CloudConvFlux_PassiveTracer ', 'GCHPchem', - 'CloudConvFlux_SF6Tracer ', 'GCHPchem', - 'CloudConvFlux_CH3ITracer ', 'GCHPchem', - 'CloudConvFlux_COAnthroEmis25dayTracer ', 'GCHPchem', - 'CloudConvFlux_COAnthroEmis50dayTracer ', 'GCHPchem', - 'CloudConvFlux_COUniformEmis25dayTracer', 'GCHPchem', + CloudConvFlux.fields: 'CloudConvFlux_Rn222 ', 'GCHPchem', + 'CloudConvFlux_Pb210 ', 'GCHPchem', + 'CloudConvFlux_Pb210s ', 'GCHPchem', + 'CloudConvFlux_Be7 ', 'GCHPchem', + 'CloudConvFlux_Be7s ', 'GCHPchem', + 'CloudConvFlux_Be10 ', 'GCHPchem', + 'CloudConvFlux_Be10s ', 'GCHPchem', + 'CloudConvFlux_aoa ', 'GCHPchem', + 'CloudConvFlux_aoa_bl ', 'GCHPchem', + 'CloudConvFlux_aoa_nh ', 'GCHPchem', + 'CloudConvFlux_CH3I ', 'GCHPchem', + 'CloudConvFlux_CO_25 ', 'GCHPchem', + 'CloudConvFlux_CO_50 ', 'GCHPchem', + 'CloudConvFlux_e90 ', 'GCHPchem', + 'CloudConvFlux_e90_n ', 'GCHPchem', + 'CloudConvFlux_e90_s ', 'GCHPchem', + 'CloudConvFlux_nh_5 ', 'GCHPchem', + 'CloudConvFlux_nh_50 ', 'GCHPchem', + 'CloudConvFlux_PassiveTracer ', 'GCHPchem', + 'CloudConvFlux_SF6 ', 'GCHPchem', + 'CloudConvFlux_st80_25 ', 'GCHPchem', :: #============================================================================== DryDep.template: '%y4%m2%d2_%h2%n2z.nc4', @@ -338,18 +511,58 @@ COLLECTIONS: 'Emissions', DryDep.frequency: 010000 DryDep.duration: 010000 DryDep.mode: 'time-averaged' - DryDep.fields: 'DryDep_Pb210 ', 'GCHPchem', - 'DryDep_Pb210Strat ', 'GCHPchem', - 'DryDep_Be7 ', 'GCHPchem', - 'DryDep_Be7Strat ', 'GCHPchem', - 'DryDep_Be10 ', 'GCHPchem', - 'DryDep_Be10Strat ', 'GCHPchem', - 'DryDepVel_Pb210 ', 'GCHPchem', - 'DryDepVel_Pb210Strat ', 'GCHPchem', - 'DryDepVel_Be7 ', 'GCHPchem', - 'DryDepVel_Be7Strat ', 'GCHPchem', - 'DryDepVel_Be10 ', 'GCHPchem', - 'DryDepVel_Be10Strat ', 'GCHPchem', + DryDep.fields: 'DryDep_Pb210 ', 'GCHPchem', + 'DryDep_Pb210s ', 'GCHPchem', + 'DryDep_Be7 ', 'GCHPchem', + 'DryDep_Be7s ', 'GCHPchem', + 'DryDep_Be10 ', 'GCHPchem', + 'DryDep_Be10s ', 'GCHPchem', + 'DryDepVel_Pb210 ', 'GCHPchem', + 'DryDepVel_Pb210s ', 'GCHPchem', + 'DryDepVel_Be7 ', 'GCHPchem', + 'DryDepVel_Be7s ', 'GCHPchem', + 'DryDepVel_Be10 ', 'GCHPchem', + 'DryDepVel_Be10s ', 'GCHPchem', +:: +#============================================================================== + FV3Dynamics.template: '%y4%m2%d2_%h2%n2z.nc4', + FV3Dynamics.format: 'CFIO', + FV3Dynamics.timestampStart: .true. + FV3Dynamics.monthly: 1 + FV3Dynamics.frequency: 010000 + FV3Dynamics.duration: 010000 + FV3Dynamics.mode: 'time-averaged' + FV3Dynamics.fields: 'PLE ', 'DYNAMICS', + 'DryPLE ', 'DYNAMICS', + 'PLEadv ', 'DYNAMICS', +:: +#============================================================================== + GCHPctmEnvLevEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + GCHPctmEnvLevEdge.format: 'CFIO', + GCHPctmEnvLevEdge.timestampStart: .true. + GCHPctmEnvLevEdge.monthly: 1 + GCHPctmEnvLevEdge.frequency: 010000 + GCHPctmEnvLevEdge.duration: 010000 + GCHPctmEnvLevEdge.mode: 'time-averaged' + GCHPctmEnvLevEdge.fields: 'UpwardsMassFlux ', 'GCHPctmEnv', + 'PLE0 ', 'GCHPctmEnv', + 'PLE1 ', 'GCHPctmEnv', + 'DryPLE0 ', 'GCHPctmEnv', + 'DryPLE1 ', 'GCHPctmEnv', +:: +#============================================================================== + GCHPctmEnvLevCenter.template: '%y4%m2%d2_%h2%n2z.nc4', + GCHPctmEnvLevCenter.format: 'CFIO', + GCHPctmEnvLevCenter.timestampStart: .true. + GCHPctmEnvLevCenter.monthly: 1 + GCHPctmEnvLevCenter.frequency: 010000 + GCHPctmEnvLevCenter.duration: 010000 + GCHPctmEnvLevCenter.mode: 'time-averaged' + GCHPctmEnvLevCenter.fields: 'SPHU0 ', 'GCHPctmEnv', + 'CX ', 'GCHPctmEnv', + 'CY ', 'GCHPctmEnv', + 'MFX ', 'GCHPctmEnv', + 'MFY ', 'GCHPctmEnv', :: #============================================================================== LevelEdgeDiags.template: '%y4%m2%d2_%h2%n2z.nc4', @@ -379,11 +592,11 @@ COLLECTIONS: 'Emissions', RadioNuclide.fields: 'PbFromRnDecay ', 'GCHPchem', 'RadDecay_Rn222 ', 'GCHPchem', 'RadDecay_Pb210 ', 'GCHPchem', - 'RadDecay_Pb210Strat ', 'GCHPchem', + 'RadDecay_Pb210s ', 'GCHPchem', 'RadDecay_Be7 ', 'GCHPchem', - 'RadDecay_Be7Strat ', 'GCHPchem', + 'RadDecay_Be7s ', 'GCHPchem', 'RadDecay_Be10 ', 'GCHPchem', - 'RadDecay_Be10Strat ', 'GCHPchem', + 'RadDecay_Be10s ', 'GCHPchem', :: #============================================================================== SpeciesConc.template: '%y4%m2%d2_%h2%n2z.nc4', @@ -393,19 +606,27 @@ COLLECTIONS: 'Emissions', SpeciesConc.frequency: 010000 SpeciesConc.duration: 010000 SpeciesConc.mode: 'time-averaged' - SpeciesConc.fields: 'SpeciesConcVV_Rn222 ', 'GCHPchem', - 'SpeciesConcVV_Pb210 ', 'GCHPchem', - 'SpeciesConcVV_Pb210Strat ', 'GCHPchem', - 'SpeciesConcVV_Be7 ', 'GCHPchem', - 'SpeciesConcVV_Be7Strat ', 'GCHPchem', - 'SpeciesConcVV_Be10 ', 'GCHPchem', - 'SpeciesConcVV_Be10Strat ', 'GCHPchem', - 'SpeciesConcVV_PassiveTracer ', 'GCHPchem', - 'SpeciesConcVV_SF6Tracer ', 'GCHPchem', - 'SpeciesConcVV_CH3ITracer ', 'GCHPchem', - 'SpeciesConcVV_COAnthroEmis25dayTracer ', 'GCHPchem', - 'SpeciesConcVV_COAnthroEmis50dayTracer ', 'GCHPchem', - 'SpeciesConcVV_COUniformEmis25dayTracer', 'GCHPchem', + SpeciesConc.fields: 'SpeciesConcVV_Rn222 ', 'GCHPchem', + 'SpeciesConcVV_Pb210 ', 'GCHPchem', + 'SpeciesConcVV_Pb210s ', 'GCHPchem', + 'SpeciesConcVV_Be7 ', 'GCHPchem', + 'SpeciesConcVV_Be7s ', 'GCHPchem', + 'SpeciesConcVV_Be10 ', 'GCHPchem', + 'SpeciesConcVV_Be10s ', 'GCHPchem', + 'SpeciesConcVV_aoa ', 'GCHPchem', + 'SpeciesConcVV_aoa_bl ', 'GCHPchem', + 'SpeciesConcVV_aoa_nh ', 'GCHPchem', + 'SpeciesConcVV_CH3I ', 'GCHPchem', + 'SpeciesConcVV_CO_25 ', 'GCHPchem', + 'SpeciesConcVV_CO_50 ', 'GCHPchem', + 'SpeciesConcVV_e90 ', 'GCHPchem', + 'SpeciesConcVV_e90_n ', 'GCHPchem', + 'SpeciesConcVV_e90_s ', 'GCHPchem', + 'SpeciesConcVV_nh_5 ', 'GCHPchem', + 'SpeciesConcVV_nh_50 ', 'GCHPchem', + 'SpeciesConcVV_PassiveTracer ', 'GCHPchem', + 'SpeciesConcVV_SF6 ', 'GCHPchem', + 'SpeciesConcVV_st80_25 ', 'GCHPchem', :: #============================================================================== StateMet.template: '%y4%m2%d2_%h2%n2z.nc4', @@ -434,10 +655,10 @@ COLLECTIONS: 'Emissions', 'Met_FRCLND ', 'GCHPchem', 'Met_FRLAKE ', 'GCHPchem', 'Met_FRLAND ', 'GCHPchem', - 'Met_FRLANDIC ', 'GCHPchem', + 'Met_FRLANDICE ', 'GCHPchem', 'Met_FROCEAN ', 'GCHPchem', 'Met_FRSEAICE ', 'GCHPchem', - 'Met_FRSNO ', 'GCHPchem', + 'Met_FRSNOW ', 'GCHPchem', 'Met_GWETROOT ', 'GCHPchem', 'Met_GWETTOP ', 'GCHPchem', 'Met_HFLUX ', 'GCHPchem', @@ -503,18 +724,18 @@ COLLECTIONS: 'Emissions', WetLossConv.frequency: 010000 WetLossConv.duration: 010000 WetLossConv.mode: 'time-averaged' - WetLossConv.fields: 'WetLossConv_Pb210 ', 'GCHPchem', - 'WetLossConv_Pb210Strat ', 'GCHPchem', - 'WetLossConv_Be7 ', 'GCHPchem', - 'WetLossConv_Be7Strat ', 'GCHPchem', - 'WetLossConv_Be10 ', 'GCHPchem', - 'WetLossConv_Be10Strat ', 'GCHPchem', - 'WetLossConvFrac_Pb210 ', 'GCHPchem', - 'WetLossConvFrac_Pb210Strat ', 'GCHPchem', - 'WetLossConvFrac_Be7 ', 'GCHPchem', - 'WetLossConvFrac_Be7Strat ', 'GCHPchem', - 'WetLossConvFrac_Be10 ', 'GCHPchem', - 'WetLossConvFrac_Be10Strat ', 'GCHPchem', + WetLossConv.fields: 'WetLossConv_Pb210 ', 'GCHPchem', + 'WetLossConv_Pb210s ', 'GCHPchem', + 'WetLossConv_Be7 ', 'GCHPchem', + 'WetLossConv_Be7s ', 'GCHPchem', + 'WetLossConv_Be10 ', 'GCHPchem', + 'WetLossConv_Be10s ', 'GCHPchem', + 'WetLossConvFrac_Pb210 ', 'GCHPchem', + 'WetLossConvFrac_Pb210s ', 'GCHPchem', + 'WetLossConvFrac_Be7 ', 'GCHPchem', + 'WetLossConvFrac_Be7s ', 'GCHPchem', + 'WetLossConvFrac_Be10 ', 'GCHPchem', + 'WetLossConvFrac_Be10s ', 'GCHPchem', :: #============================================================================== WetLossLS.template: '%y4%m2%d2_%h2%n2z.nc4', @@ -524,10 +745,10 @@ COLLECTIONS: 'Emissions', WetLossLS.frequency: 010000 WetLossLS.duration: 010000 WetLossLS.mode: 'time-averaged' - WetLossLS.fields: 'WetLossLS_Pb210 ', 'GCHPchem', - 'WetLossLS_Pb210Strat ', 'GCHPchem', - 'WetLossLS_Be7 ', 'GCHPchem', - 'WetLossLS_Be7Strat ', 'GCHPchem', - 'WetLossLS_Be10 ', 'GCHPchem', - 'WetLossLS_Be10Strat ', 'GCHPchem', + WetLossLS.fields: 'WetLossLS_Pb210 ', 'GCHPchem', + 'WetLossLS_Pb210s ', 'GCHPchem', + 'WetLossLS_Be7 ', 'GCHPchem', + 'WetLossLS_Be7s ', 'GCHPchem', + 'WetLossLS_Be10 ', 'GCHPchem', + 'WetLossLS_Be10s ', 'GCHPchem', :: diff --git a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.carbon b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.carbon index 644380e76..3b3b09173 100644 --- a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.carbon +++ b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.carbon @@ -1,28 +1,28 @@ EXPID: OutputDir/GEOSChem EXPDSC: GEOS-Chem_devel CoresPerNode: 6 +Allow_Overwrite: .true. VERSION: 1 #============================================================================== -# Define output grids different from the native cubed sphere in this section. -# Each diagnostics collection will be output on the native resolution cubed -# sphere grid unless a different grid is configured. A few examples are -# provided below. -# -# To use a grid for a specific collection, include the 'grid_label' field -# in the collection definition. For example, -# -# SpeciesConc.grid_label: REGIONAL1x1 +# Define grid labels # -# If you are outputting on a lat/lon grid, be sure to specify conservative -# regridding. Otherwise regridding will be bi-linear. +# Define output grids different from the native cubed sphere in this section. +# Each diagnostics collection is output on the native resolution global cubed +# sphere grid unless a different grid defined here is set for that collection +# in the collections section of this file. # -# SpeciesConc.conservative: 1 +# See the examples below for defining different types of grid at different +# resolutions. See the collections section later on in this file for +# instructions on using an alternative grid for output. # +# Beware that the online regridding is area-conserving. Only diagnostics +# independent of grid cell area should be output on a custom grid. For more +# information see the HISTORY.rc page at gchp.readthedocs.io/. #============================================================================== -GRID_LABELS: PE24x144-CF - PC360x181-DC - REGIONAL1x1 +GRID_LABELS: #PE24x144-CF + #PC360x181-DC + #REGIONAL1x1 :: # Example of cubed-sphere grid at c24 resolution @@ -59,22 +59,50 @@ COLLECTIONS: 'Emissions', #'Carbon', #'CloudConvFlux', #'ConcAfterChem', + #'FV3Dynamics', + #'GCHPctmEnvLevCenter', + #'GCHPctmEnvLevEdge', #'LevelEdgeDiags', - #'StateMet', + 'StateMet', :: #============================================================================== # Define collections +# # The rest of this file consists of collection definitions. # Above collections whose declarations are commented out will be ignored. -# You can skip individual diagnostics by commenting them out. +# You can skip individual diagnostics by commenting out their names. # # WARNING: Frequency, duration, and mode will be over-written with -# settings in setCommonRunSettings.sh. Edit those settings there. Add collections -# as needed to that file as needed or edit in place new collections here. +# settings in setCommonRunSettings.sh. Edit settings in that file. You can execute the +# script to update this file and then inspect results before submitting a +# run. Collection names are hard-coded in that file; if you add more +# collections then you must also add them there for auto-update, or manually +# change settings for the new collection in this file. # # NOTES: -# (1) See the GRID_LABELS sections above for details about output grids -# (2) To output a reduced set of levels, use the levels keyword, e.g.: +# (1) Template keyword defines suffix of output filename, appended to +# '{EXPID}.{collection}.'. See top of this file for EXPID definition. +# +# (2) Frequency keyword sets frequency of data in each output file +# +# (3) Duration keyword sets frequency of output file +# +# (4) Mode keyword may be 'time-averaged' or 'instantaneous' +# +# (5) See the GRID_LABELS sections above for details about output grids +# +# (6) To output data on a grid other than native res global cubed sphere +# include the 'grid_label' field. For example, +# +# SpeciesConc.grid_label: REGIONAL1x1 +# +# (7) If you are outputting on a lat/lon grid, be sure to specify +# conservative regridding. Otherwise regridding will be bi-linear. +# +# SpeciesConc.conservative: 1 +# +# (8) To output a reduced set of levels, use the levels keyword, e.g.: +# # SpeciesConc.levels: 1 2 3 # #============================================================================== @@ -101,10 +129,11 @@ COLLECTIONS: 'Emissions', 'EmisCH4_Lakes ', 'GCHPchem', 'EmisCH4_Termites ', 'GCHPchem', 'EmisCH4_SoilAbsorb ', 'GCHPchem', + 'EmisCH4_Reservoirs ', 'GCHPchem', 'EmisCO_Total ', 'GCHPchem', 'EmisCO_Aircraft ', 'GCHPchem', 'EmisCO_Anthro ', 'GCHPchem', - 'EmisCO_BioBurn ', 'GCHPchem', + 'EmisCO_BiomassBurn ', 'GCHPchem', 'EmisCO_Ship ', 'GCHPchem', 'EmisCO2_Total ', 'GCHPchem', 'EmisCO2_FossilFuel ', 'GCHPchem', @@ -114,7 +143,37 @@ COLLECTIONS: 'Emissions', 'EmisCO2_Ship ', 'GCHPchem', 'EmisCO2_Aviation ', 'GCHPchem', 'EmisCO2_CO2SurfCorr ', 'GCHPchem', - #'EmisCO2_Biomass_GFED ', 'GCHPchem', + 'EmisCO2_BiomassBurn ', 'GCHPchem', +:: +#============================================================================== + Metrics.template: '%y4%m2%d2_%h2%n2z.nc4', + Metrics.frequency: 'End', + Metrics.duration: 'End', + Metrics.mode: 'time-averaged' + Metrics.fields: 'AirMassColumnFull ', 'GCHPchem', + 'CH4emission ', 'GCHPchem', + 'CH4massColumnFull ', 'GCHPchem', + 'CH4massColumnTrop ', 'GCHPchem', + 'LossOHbyCH4columnTrop ', 'GCHPchem', + 'LossOHbyMCFcolumnTrop ', 'GCHPchem', + 'OHwgtByAirMassColumnFull ', 'GCHPchem', +:: +#============================================================================== + SpeciesConc.template: '%y4%m2%d2_%h2%n2z.nc4', + SpeciesConc.format: 'CFIO', + SpeciesConc.timestampStart: .true. + SpeciesConc.monthly: 1 + SpeciesConc.frequency: 010000 + SpeciesConc.duration: 240000 + SpeciesConc.mode: 'time-averaged' + SpeciesConc.fields: 'SpeciesConcVV_CH4 ', 'GCHPchem', + 'SpeciesConcVV_CO ', 'GCHPchem', + 'SpeciesConcVV_CO2 ', 'GCHPchem', + 'SpeciesConcVV_OCS ', 'GCHPchem', + ##'SpeciesConcMND_CH4 ', 'GCHPchem', + ##'SpeciesConcMND_CO ', 'GCHPchem', + ##'SpeciesConcMND_CO2 ', 'GCHPchem', + ##'SpeciesConcMND_OCS ', 'GCHPchem', :: #============================================================================== # Budget defined as species kg/s in the column (full, troposphere, or PBL) @@ -127,42 +186,54 @@ COLLECTIONS: 'Emissions', Budget.frequency: 010000 Budget.duration: 010000 Budget.mode: 'time-averaged' - Budget.fields: 'BudgetEmisDryDepFull_CH4', 'GCHPchem', - 'BudgetEmisDryDepTrop_CH4', 'GCHPchem', - 'BudgetEmisDryDepPBL_CH4 ', 'GCHPchem', - 'BudgetMixingFull_CH4 ', 'GCHPchem', - 'BudgetMixingTrop_CH4 ', 'GCHPchem', - 'BudgetMixingPBL_CH4 ', 'GCHPchem', - 'BudgetConvectionFull_CH4', 'GCHPchem', - 'BudgetConvectionTrop_CH4', 'GCHPchem', - 'BudgetConvectionPBL_CH4 ', 'GCHPchem', - 'BudgetEmisDryDepFull_CO ', 'GCHPchem', - 'BudgetEmisDryDepTrop_CO ', 'GCHPchem', - 'BudgetEmisDryDepPBL_CO ', 'GCHPchem', - 'BudgetMixingFull_CO ', 'GCHPchem', - 'BudgetMixingTrop_CO ', 'GCHPchem', - 'BudgetMixingPBL_CO ', 'GCHPchem', - 'BudgetConvectionFull_CO ', 'GCHPchem', - 'BudgetConvectionTrop_CO ', 'GCHPchem', - 'BudgetConvectionPBL_CO ', 'GCHPchem', - 'BudgetEmisDryDepFull_CO2', 'GCHPchem', - 'BudgetEmisDryDepTrop_CO2', 'GCHPchem', - 'BudgetEmisDryDepPBL_CO2 ', 'GCHPchem', - 'BudgetMixingFull_CO2 ', 'GCHPchem', - 'BudgetMixingTrop_CO2 ', 'GCHPchem', - 'BudgetMixingPBL_CO2 ', 'GCHPchem', - 'BudgetConvectionFull_CO2', 'GCHPchem', - 'BudgetConvectionTrop_CO2', 'GCHPchem', - 'BudgetConvectionPBL_CO2 ', 'GCHPchem', - 'BudgetEmisDryDepFull_OCS', 'GCHPchem', - 'BudgetEmisDryDepTrop_OCS', 'GCHPchem', - 'BudgetEmisDryDepPBL_OCS ', 'GCHPchem', - 'BudgetMixingFull_OCS ', 'GCHPchem', - 'BudgetMixingTrop_OCS ', 'GCHPchem', - 'BudgetMixingPBL_OCS ', 'GCHPchem', - 'BudgetConvectionFull_OCS', 'GCHPchem', - 'BudgetConvectionTrop_OCS', 'GCHPchem', - 'BudgetConvectionPBL_OCS ', 'GCHPchem', + Budget.fields: 'BudgetEmisDryDepFull_CH4 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_CH4 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_CH4 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_CH4 ', 'GCHPchem', + 'BudgetMixingFull_CH4 ', 'GCHPchem', + 'BudgetMixingTrop_CH4 ', 'GCHPchem', + 'BudgetMixingPBL_CH4 ', 'GCHPchem', + 'BudgetMixingLevs1to35_CH4 ', 'GCHPchem', + 'BudgetConvectionFull_CH4 ', 'GCHPchem', + 'BudgetConvectionTrop_CH4 ', 'GCHPchem', + 'BudgetConvectionPBL_CH4 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_CH4 ', 'GCHPchem', + 'BudgetEmisDryDepFull_CO ', 'GCHPchem', + 'BudgetEmisDryDepTrop_CO ', 'GCHPchem', + 'BudgetEmisDryDepPBL_CO ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_CO ', 'GCHPchem', + 'BudgetMixingFull_CO ', 'GCHPchem', + 'BudgetMixingTrop_CO ', 'GCHPchem', + 'BudgetMixingPBL_CO ', 'GCHPchem', + 'BudgetMixingLevs1to35_CO ', 'GCHPchem', + 'BudgetConvectionFull_CO ', 'GCHPchem', + 'BudgetConvectionTrop_CO ', 'GCHPchem', + 'BudgetConvectionPBL_CO ', 'GCHPchem', + 'BudgetConvectionLevs1to35_CO ', 'GCHPchem', + 'BudgetEmisDryDepFull_CO2 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_CO2 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_CO2 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_CO2 ', 'GCHPchem', + 'BudgetMixingFull_CO2 ', 'GCHPchem', + 'BudgetMixingTrop_CO2 ', 'GCHPchem', + 'BudgetMixingPBL_CO2 ', 'GCHPchem', + 'BudgetMixingLevs1to35_CO2 ', 'GCHPchem', + 'BudgetConvectionFull_CO2 ', 'GCHPchem', + 'BudgetConvectionTrop_CO2 ', 'GCHPchem', + 'BudgetConvectionPBL_CO2 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_CO2 ', 'GCHPchem', + 'BudgetEmisDryDepFull_OCS ', 'GCHPchem', + 'BudgetEmisDryDepTrop_OCS ', 'GCHPchem', + 'BudgetEmisDryDepPBL_OCS ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_OCS ', 'GCHPchem', + 'BudgetMixingFull_OCS ', 'GCHPchem', + 'BudgetMixingTrop_OCS ', 'GCHPchem', + 'BudgetMixingPBL_OCS ', 'GCHPchem', + 'BudgetMixingLevs1to35_OCS ', 'GCHPchem', + 'BudgetConvectionFull_OCS ', 'GCHPchem', + 'BudgetConvectionTrop_OCS ', 'GCHPchem', + 'BudgetConvectionPBL_OCS ', 'GCHPchem', + 'BudgetConvectionLevs1to35_OCS ', 'GCHPchem', :: #============================================================================== # Prod and loss terms from the carbon simulation (plus OH conc) @@ -187,10 +258,10 @@ COLLECTIONS: 'Emissions', CloudConvFlux.frequency: 010000 CloudConvFlux.duration: 010000 CloudConvFlux.mode: 'time-averaged' - CloudConvFlux.fields: 'CloudConvFlux_CH4', 'GCHPchem', - 'CloudConvFlux_CO ', 'GCHPchem', - 'CloudConvFlux_CO2', 'GCHPchem', - 'CloudConvFlux_OCS', 'GCHPchem', + CloudConvFlux.fields: 'CloudConvFlux_CH4 ', 'GCHPchem', + 'CloudConvFlux_CO ', 'GCHPchem', + 'CloudConvFlux_CO2 ', 'GCHPchem', + 'CloudConvFlux_OCS ', 'GCHPchem', :: #============================================================================== # Concentrations of OH immediately after exiting the KPP solver @@ -203,6 +274,46 @@ COLLECTIONS: 'Emissions', ConcAfterChem.mode: 'time-averaged' ConcAfterChem.fields: 'OHconcAfterChem', 'GCHPchem', :: +#============================================================================== + FV3Dynamics.template: '%y4%m2%d2_%h2%n2z.nc4', + FV3Dynamics.format: 'CFIO', + FV3Dynamics.timestampStart: .true. + FV3Dynamics.monthly: 1 + FV3Dynamics.frequency: 010000 + FV3Dynamics.duration: 010000 + FV3Dynamics.mode: 'time-averaged' + FV3Dynamics.fields: 'PLE ', 'DYNAMICS', + 'DryPLE ', 'DYNAMICS', + 'PLEadv ', 'DYNAMICS', +:: +#============================================================================== + GCHPctmEnvLevEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + GCHPctmEnvLevEdge.format: 'CFIO', + GCHPctmEnvLevEdge.timestampStart: .true. + GCHPctmEnvLevEdge.monthly: 1 + GCHPctmEnvLevEdge.frequency: 010000 + GCHPctmEnvLevEdge.duration: 010000 + GCHPctmEnvLevEdge.mode: 'time-averaged' + GCHPctmEnvLevEdge.fields: 'UpwardsMassFlux ', 'GCHPctmEnv', + 'PLE0 ', 'GCHPctmEnv', + 'PLE1 ', 'GCHPctmEnv', + 'DryPLE0 ', 'GCHPctmEnv', + 'DryPLE1 ', 'GCHPctmEnv', +:: +#============================================================================== + GCHPctmEnvLevCenter.template: '%y4%m2%d2_%h2%n2z.nc4', + GCHPctmEnvLevCenter.format: 'CFIO', + GCHPctmEnvLevCenter.timestampStart: .true. + GCHPctmEnvLevCenter.monthly: 1 + GCHPctmEnvLevCenter.frequency: 010000 + GCHPctmEnvLevCenter.duration: 010000 + GCHPctmEnvLevCenter.mode: 'time-averaged' + GCHPctmEnvLevCenter.fields: 'SPHU0 ', 'GCHPctmEnv', + 'CX ', 'GCHPctmEnv', + 'CY ', 'GCHPctmEnv', + 'MFX ', 'GCHPctmEnv', + 'MFY ', 'GCHPctmEnv', +:: #============================================================================== # Diagnostics on level edges LevelEdgeDiags.template: '%y4%m2%d2_%h2%n2z.nc4', @@ -220,23 +331,6 @@ COLLECTIONS: 'Emissions', 'Met_PFLCU ', 'GCHPchem', 'Met_PFLLSAN ', 'GCHPchem', :: -#============================================================================== - SpeciesConc.template: '%y4%m2%d2_%h2%n2z.nc4', - SpeciesConc.format: 'CFIO', - SpeciesConc.timestampStart: .true. - SpeciesConc.monthly: 1 - SpeciesConc.frequency: 010000 - SpeciesConc.duration: 240000 - SpeciesConc.mode: 'time-averaged' - SpeciesConc.fields: 'SpeciesConcVV_CH4', 'GCHPchem', - 'SpeciesConcVV_CO ', 'GCHPchem', - 'SpeciesConcVV_CO2', 'GCHPchem', - 'SpeciesConcVV_OCS', 'GCHPchem', - 'SpeciesConcMND_CH4', 'GCHPchem', - 'SpeciesConcMND_CO ', 'GCHPchem', - 'SpeciesConcMND_CO2', 'GCHPchem', - 'SpeciesConcMND_OCS', 'GCHPchem', -:: #============================================================================== StateMet.template: '%y4%m2%d2_%h2%n2z.nc4', StateMet.format: 'CFIO', @@ -264,15 +358,14 @@ COLLECTIONS: 'Emissions', 'Met_FRCLND ', 'GCHPchem', 'Met_FRLAKE ', 'GCHPchem', 'Met_FRLAND ', 'GCHPchem', - 'Met_FRLANDIC ', 'GCHPchem', + 'Met_FRLANDICE ', 'GCHPchem', 'Met_FROCEAN ', 'GCHPchem', 'Met_FRSEAICE ', 'GCHPchem', - 'Met_FRSNO ', 'GCHPchem', + 'Met_FRSNOW ', 'GCHPchem', 'Met_GWETROOT ', 'GCHPchem', 'Met_GWETTOP ', 'GCHPchem', 'Met_HFLUX ', 'GCHPchem', 'Met_LAI ', 'GCHPchem', - 'Met_LWI ', 'GCHPchem', 'Met_PARDR ', 'GCHPchem', 'Met_PARDF ', 'GCHPchem', 'Met_PBLTOPL ', 'GCHPchem', diff --git a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem index 95c4d7c28..535a8fb2e 100644 --- a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem +++ b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem @@ -1,7 +1,7 @@ - EXPID: OutputDir/GEOSChem EXPDSC: GEOS-Chem_devel CoresPerNode: 6 +Allow_Overwrite: .true. VERSION: 1 #============================================================================== @@ -13,14 +13,16 @@ VERSION: 1 # in the collections section of this file. # # See the examples below for defining different types of grid at different -# resolutions. +# resolutions. See the collections section later on in this file for +# instructions on using an alternative grid for output. # -# See the collections section later on in this file for instructions on -# using an alternative grid for output. +# Beware that the online regridding is area-conserving. Only diagnostics +# independent of grid cell area should be output on a custom grid. For more +# information see the HISTORY.rc page at gchp.readthedocs.io/. #============================================================================== -GRID_LABELS: PE24x144-CF - PC360x181-DC - REGIONAL1x1 +GRID_LABELS: #PE24x144-CF + #PC360x181-DC + #REGIONAL1x1 :: # Example of cubed-sphere grid at c24 resolution @@ -65,6 +67,9 @@ COLLECTIONS: @#'DefaultCollection', @#'ConcAfterChem', @#'DryDep', #'Emissions', + #'FV3Dynamics', + #'GCHPctmEnvLevCenter', + #'GCHPctmEnvLevEdge', #'JValues', #'Metrics', @#'KppDiags', @@ -72,11 +77,15 @@ COLLECTIONS: @#'DefaultCollection', @#'LevelEdgeDiags', @#'ProdLoss', @##'RRTMG', + @##'DynHeating', @##'RxnRates', + @##'RxnConst', #'SpeciesConc', @#'StateChm', #'StateMet', @#'StratBM', + @##'Tomas', + @#'UVFlux', @#'WetLossConv', @#'WetLossLS', :: @@ -147,7 +156,7 @@ COLLECTIONS: @#'DefaultCollection', 'Met_PBLH ', 'GCHPchem', 'Met_AIRDEN ', 'GCHPchem', 'Met_PMID ', 'GCHPchem', - 'Met_PMIDDRY ', 'GCHPchem', + 'Met_PMIDDRY ', 'GCHPchem', 'Met_TropHt ', 'GCHPchem', 'Met_TropP ', 'GCHPchem', 'Met_BXHEIGHT ', 'GCHPchem', @@ -176,6 +185,8 @@ COLLECTIONS: @#'DefaultCollection', 'EmisACET_BioBurn ', 'GCHPchem', 'EmisACET_Biogenic ', 'GCHPchem', 'EmisACET_Ocean ', 'GCHPchem', + 'EmisACTA_Total ', 'GCHPchem', + 'EmisACTA_BioBurn ', 'GCHPchem', 'EmisALD2_Total ', 'GCHPchem', 'EmisALD2_Anthro ', 'GCHPchem', 'EmisALD2_BioBurn ', 'GCHPchem', @@ -258,13 +269,20 @@ COLLECTIONS: @#'DefaultCollection', 'EmisEOH_PlantDecay ', 'GCHPchem', 'EmisEOH_Ship ', 'GCHPchem', 'EmisETNO3_Ocean ', 'GCHPchem', + 'EmisFURA_Total ', 'GCHPchem', + 'EmisFURA_BioBurn ', 'GCHPchem', + 'EmisGLYX_Total ', 'GCHPchem', + 'EmisGLYX_BioBurn ', 'GCHPchem', 'EmisH2O_Aircraft ', 'GCHPchem', + 'EmisHCl_Total ', 'GCHPchem', + 'EmisHCl_Anthro ', 'GCHPchem', 'EmisHCOOH_Total ', 'GCHPchem', 'EmisHCOOH_Anthro ', 'GCHPchem', 'EmisHCOOH_Ship ', 'GCHPchem', 'EmisHNO3_Ship ', 'GCHPchem', 'EmisHONO_Aircraft ', 'GCHPchem', 'EmisISOP_Total ', 'GCHPchem', + 'EmisISOP_BioBurn ', 'GCHPchem', 'EmisISOP_Biogenic ', 'GCHPchem', 'EmisLIMO_Biogenic ', 'GCHPchem', 'EmisMACR_Total ', 'GCHPchem', @@ -274,8 +292,8 @@ COLLECTIONS: @#'DefaultCollection', 'EmisMEK_BioBurn ', 'GCHPchem', 'EmisMEK_Ship ', 'GCHPchem', 'EmisMENO3_Ocean ', 'GCHPchem', - ##'EmisMGLY_Total ', 'GCHPchem', - ##'EmisMGLY_Anthro ', 'GCHPchem', + 'EmisMGLY_Total ', 'GCHPchem', + 'EmisMGLY_BioBurn ', 'GCHPchem', 'EmisMOH_Total ', 'GCHPchem', 'EmisMOH_Anthro ', 'GCHPchem', 'EmisMOH_BioBurn ', 'GCHPchem', @@ -285,7 +303,10 @@ COLLECTIONS: @#'DefaultCollection', 'EmisMTPA_Total ', 'GCHPchem', 'EmisMTPA_BioBurn ', 'GCHPchem', 'EmisMTPA_Biogenic ', 'GCHPchem', + 'EmisMTPO_Total ', 'GCHPchem', 'EmisMTPO_Biogenic ', 'GCHPchem', + 'EmisMVK_Total ', 'GCHPchem', + 'EmisMVK_BioBurn ', 'GCHPchem', 'EmisNAP_Total ', 'GCHPchem', 'EmisNAP_Anthro ', 'GCHPchem', 'EmisNAP_BioBurn ', 'GCHPchem', @@ -318,6 +339,8 @@ COLLECTIONS: @#'DefaultCollection', 'EmispFe_Total ', 'GCHPchem', 'EmispFe_Anthro ', 'GCHPchem', 'EmispFe_Ship ', 'GCHPchem', + 'EmisPHEN_Total ', 'GCHPchem', + 'EmisPHEN_BioBurn ', 'GCHPchem', 'EmisPOG1_Total ', 'GCHPchem', 'EmisPOG1_Anthro ', 'GCHPchem', 'EmisPOG1_BioBurn ', 'GCHPchem', @@ -332,13 +355,14 @@ COLLECTIONS: @#'DefaultCollection', 'EmisPRPE_Ship ', 'GCHPchem', 'EmisRCHO_Total ', 'GCHPchem', 'EmisRCHO_Aircraft ', 'GCHPchem', + 'EmisRCHO_BioBurn ', 'GCHPchem', ##'EmisSESQ_Biogenic ', 'GCHPchem', 'EmisSALA_Natural ', 'GCHPchem', - ##'EmisBrSALA_Natural ', 'GCHPchem', + 'EmisBrSALA_Natural ', 'GCHPchem', 'EmisSALAAL_Natural ', 'GCHPchem', 'EmisSALACL_Natural ', 'GCHPchem', 'EmisSALC_Natural ', 'GCHPchem', - ##'EmisBrSALC_Natural ', 'GCHPchem', + 'EmisBrSALC_Natural ', 'GCHPchem', 'EmisSALCAL_Natural ', 'GCHPchem', 'EmisSALCCL_Natural ', 'GCHPchem', 'EmisSO2_Total ', 'GCHPchem', @@ -436,8 +460,8 @@ COLLECTIONS: @#'DefaultCollection', #'InvCEDSship_XYLE ', 'GCHPchem', #'InvAEIC_ACET ', 'GCHPchem', #'InvAEIC_ALD2 ', 'GCHPchem', - #'InvAEIC_ALK4 ', 'GCHPchem', - #'InvAEIC_BCPI ', 'GCHPchem', + #'InvAEIC_ALK4 ', 'GCHPchem', + #'InvAEIC_BCPI ', 'GCHPchem', #'InvAEIC_C2H6 ', 'GCHPchem', #'InvAEIC_C3H8 ', 'GCHPchem', #'InvAEIC_CH2O ', 'GCHPchem', @@ -478,7 +502,7 @@ COLLECTIONS: @#'DefaultCollection', #'InvSeaSalt_SALAAL ', 'GCHPchem', #'InvSeaSalt_SALACL ', 'GCHPchem', #'InvSeaSalt_SALCAL ', 'GCHPchem', - #'InvSeaSalt_SALCCL ', 'GCHPchem', + #'InvSeaSalt_SALCCL ', 'GCHPchem', #'InvMEGAN_ALD2 ', 'GCHPchem', ##'InvMEGAN_C2H4 ', 'GCHPchem', #'InvMEGAN_EOH ', 'GCHPchem', @@ -510,6 +534,7 @@ COLLECTIONS: @#'DefaultCollection', #'InvMEGAN_FAXX ', 'GCHPchem', #'InvMEGAN_AAXX ', 'GCHPchem', #'InvGFED_ACET ', 'GCHPchem', + #'InvGFED_ACTA ', 'GCHPchem', #'InvGFED_ALD2 ', 'GCHPchem', #'InvGFED_ALK4 ', 'GCHPchem', #'InvGFED_BCPI ', 'GCHPchem', @@ -520,17 +545,24 @@ COLLECTIONS: @#'DefaultCollection', #'InvGFED_CH2O ', 'GCHPchem', #'InvGFED_CO ', 'GCHPchem', #'InvGFED_EOH ', 'GCHPchem', + #'InvGFED_FURA ', 'GCHPchem', + #'InvGFED_GLYX ', 'GCHPchem', + #'InvGFED_ISOP ', 'GCHPchem', #'InvGFED_MEK ', 'GCHPchem', + #'InvGFED_MGLY ', 'GCHPchem', #'InvGFED_MOH ', 'GCHPchem', #'InvGFED_MTPA ', 'GCHPchem', + #'InvGFED_MVK ', 'GCHPchem', #'InvGFED_NAP ', 'GCHPchem', #'InvGFED_NH3 ', 'GCHPchem', #'InvGFED_NO ', 'GCHPchem', #'InvGFED_OCPI ', 'GCHPchem', #'InvGFED_OCPO ', 'GCHPchem', + #'InvGFED_PHEN ', 'GCHPchem', #'InvGFED_POG1 ', 'GCHPchem', #'InvGFED_POG2 ', 'GCHPchem', #'InvGFED_PRPE ', 'GCHPchem', + #'InvGFED_RCHO ', 'GCHPchem', #'InvGFED_SO2 ', 'GCHPchem', #'InvGFED_SOAP ', 'GCHPchem', #'InvGFED_TOLU ', 'GCHPchem', @@ -540,6 +572,46 @@ COLLECTIONS: @#'DefaultCollection', #'InvIODINE_HOI ', 'GCHPchem', #'InvIODINE_I2 ', 'GCHPchem', :: +#============================================================================== + FV3Dynamics.template: '%y4%m2%d2_%h2%n2z.nc4', + FV3Dynamics.format: 'CFIO', + FV3Dynamics.timestampStart: .true. + FV3Dynamics.monthly: 1 + FV3Dynamics.frequency: 010000 + FV3Dynamics.duration: 010000 + FV3Dynamics.mode: 'time-averaged' + FV3Dynamics.fields: 'PLE ', 'DYNAMICS', + 'DryPLE ', 'DYNAMICS', + 'PLEadv ', 'DYNAMICS', +:: +#============================================================================== + GCHPctmEnvLevEdge.template: '%y4%m2%d2_%h2%n2z.nc4', + GCHPctmEnvLevEdge.format: 'CFIO', + GCHPctmEnvLevEdge.timestampStart: .true. + GCHPctmEnvLevEdge.monthly: 1 + GCHPctmEnvLevEdge.frequency: 010000 + GCHPctmEnvLevEdge.duration: 010000 + GCHPctmEnvLevEdge.mode: 'time-averaged' + GCHPctmEnvLevEdge.fields: 'UpwardsMassFlux ', 'GCHPctmEnv', + 'PLE0 ', 'GCHPctmEnv', + 'PLE1 ', 'GCHPctmEnv', + 'DryPLE0 ', 'GCHPctmEnv', + 'DryPLE1 ', 'GCHPctmEnv', +:: +#============================================================================== + GCHPctmEnvLevCenter.template: '%y4%m2%d2_%h2%n2z.nc4', + GCHPctmEnvLevCenter.format: 'CFIO', + GCHPctmEnvLevCenter.timestampStart: .true. + GCHPctmEnvLevCenter.monthly: 1 + GCHPctmEnvLevCenter.frequency: 010000 + GCHPctmEnvLevCenter.duration: 010000 + GCHPctmEnvLevCenter.mode: 'time-averaged' + GCHPctmEnvLevCenter.fields: 'SPHU0 ', 'GCHPctmEnv', + 'CX ', 'GCHPctmEnv', + 'CY ', 'GCHPctmEnv', + 'MFX ', 'GCHPctmEnv', + 'MFY ', 'GCHPctmEnv', +:: #============================================================================== # %%%%% THE AerosolMass COLLECTION %%%%% # @@ -688,6 +760,7 @@ COLLECTIONS: @#'DefaultCollection', 'Chem_KhetiSLAHOClHBr ', 'GCHPchem', 'Chem_KhetiSLAHOBrHCl ', 'GCHPchem', 'Chem_KhetiSLAHOBrHBr ', 'GCHPchem', + 'PDER ', 'GCHPchem', :: #============================================================================== # Budget defined as species kg/s in the column (full, troposphere, or PBL) @@ -701,3115 +774,29 @@ COLLECTIONS: @#'DefaultCollection', Budget.frequency: 010000 Budget.duration: 010000 Budget.mode: 'time-averaged' - Budget.fields: 'BudgetWetDepPBL_SOAS ', 'GCHPchem', - 'BudgetWetDepPBL_SOAIE ', 'GCHPchem', -# 'BudgetWetDepPBL_SOAGX ', 'GCHPchem', -# 'BudgetWetDepPBL_SO4s ', 'GCHPchem', -# 'BudgetWetDepPBL_SO4 ', 'GCHPchem', -# 'BudgetWetDepPBL_SO2 ', 'GCHPchem', -# 'BudgetWetDepPBL_SALCCL ', 'GCHPchem', -# 'BudgetWetDepPBL_SALCAL ', 'GCHPchem', -# 'BudgetWetDepPBL_SALC ', 'GCHPchem', -# 'BudgetWetDepPBL_SALACL ', 'GCHPchem', -# 'BudgetWetDepPBL_SALAAL ', 'GCHPchem', -# 'BudgetWetDepPBL_SALA ', 'GCHPchem', -# 'BudgetWetDepPBL_RP ', 'GCHPchem', -# 'BudgetWetDepPBL_RIPD ', 'GCHPchem', -# 'BudgetWetDepPBL_RIPC ', 'GCHPchem', -# 'BudgetWetDepPBL_RIPB ', 'GCHPchem', -# 'BudgetWetDepPBL_RIPA ', 'GCHPchem', -# 'BudgetWetDepPBL_RB3P ', 'GCHPchem', -# 'BudgetWetDepPBL_RA3P ', 'GCHPchem', -# 'BudgetWetDepPBL_R4P ', 'GCHPchem', -# 'BudgetWetDepPBL_R4N2 ', 'GCHPchem', -# 'BudgetWetDepPBL_PYAC ', 'GCHPchem', -# 'BudgetWetDepPBL_PRPN ', 'GCHPchem', -# 'BudgetWetDepPBL_PRPE ', 'GCHPchem', -# 'BudgetWetDepPBL_PROPNN ', 'GCHPchem', -# 'BudgetWetDepPBL_PPN ', 'GCHPchem', -# 'BudgetWetDepPBL_PP ', 'GCHPchem', -# 'BudgetWetDepPBL_pFe ', 'GCHPchem', -# 'BudgetWetDepPBL_PAN ', 'GCHPchem', -# 'BudgetWetDepPBL_OCPO ', 'GCHPchem', -# 'BudgetWetDepPBL_OCPI ', 'GCHPchem', -# 'BudgetWetDepPBL_NITs ', 'GCHPchem', -# 'BudgetWetDepPBL_NIT ', 'GCHPchem', -# 'BudgetWetDepPBL_NH4 ', 'GCHPchem', -# 'BudgetWetDepPBL_NH3 ', 'GCHPchem', -# 'BudgetWetDepPBL_MVKPC ', 'GCHPchem', -# 'BudgetWetDepPBL_MVKN ', 'GCHPchem', -# 'BudgetWetDepPBL_MVKHP ', 'GCHPchem', -# 'BudgetWetDepPBL_MVKHCB ', 'GCHPchem', -# 'BudgetWetDepPBL_MVKHC ', 'GCHPchem', -# 'BudgetWetDepPBL_MVKDH ', 'GCHPchem', -# 'BudgetWetDepPBL_MVK ', 'GCHPchem', -# 'BudgetWetDepPBL_MTPO ', 'GCHPchem', -# 'BudgetWetDepPBL_MTPA ', 'GCHPchem', -# 'BudgetWetDepPBL_MSA ', 'GCHPchem', -# 'BudgetWetDepPBL_MPN ', 'GCHPchem', -# 'BudgetWetDepPBL_MPAN ', 'GCHPchem', -# 'BudgetWetDepPBL_MP ', 'GCHPchem', -# 'BudgetWetDepPBL_MONITU ', 'GCHPchem', -# 'BudgetWetDepPBL_MONITS ', 'GCHPchem', -# 'BudgetWetDepPBL_MONITA ', 'GCHPchem', -# 'BudgetWetDepPBL_MOH ', 'GCHPchem', -# 'BudgetWetDepPBL_MGLY ', 'GCHPchem', -# 'BudgetWetDepPBL_MEK ', 'GCHPchem', -# 'BudgetWetDepPBL_MCRHP ', 'GCHPchem', -# 'BudgetWetDepPBL_MCRHNB ', 'GCHPchem', -# 'BudgetWetDepPBL_MCRHN ', 'GCHPchem', -# 'BudgetWetDepPBL_MCRENOL ', 'GCHPchem', -# 'BudgetWetDepPBL_MCRDH ', 'GCHPchem', -# 'BudgetWetDepPBL_MAP ', 'GCHPchem', -# 'BudgetWetDepPBL_MACR1OOH ', 'GCHPchem', -# 'BudgetWetDepPBL_LVOCOA ', 'GCHPchem', -# 'BudgetWetDepPBL_LVOC ', 'GCHPchem', -# 'BudgetWetDepPBL_LIMO ', 'GCHPchem', -# 'BudgetWetDepPBL_ITHN ', 'GCHPchem', -# 'BudgetWetDepPBL_ITCN ', 'GCHPchem', -# 'BudgetWetDepPBL_ISALC ', 'GCHPchem', -# 'BudgetWetDepPBL_ISALA ', 'GCHPchem', -# 'BudgetWetDepPBL_IONO2 ', 'GCHPchem', -# 'BudgetWetDepPBL_IONO ', 'GCHPchem', -# 'BudgetWetDepPBL_IONITA ', 'GCHPchem', -# 'BudgetWetDepPBL_INPD ', 'GCHPchem', -# 'BudgetWetDepPBL_INPB ', 'GCHPchem', -# 'BudgetWetDepPBL_INDIOL ', 'GCHPchem', -# 'BudgetWetDepPBL_IHN4 ', 'GCHPchem', -# 'BudgetWetDepPBL_IHN3 ', 'GCHPchem', -# 'BudgetWetDepPBL_IHN2 ', 'GCHPchem', -# 'BudgetWetDepPBL_IHN1 ', 'GCHPchem', -# 'BudgetWetDepPBL_IEPOXD ', 'GCHPchem', -# 'BudgetWetDepPBL_IEPOXB ', 'GCHPchem', -# 'BudgetWetDepPBL_IEPOXA ', 'GCHPchem', -# 'BudgetWetDepPBL_IDN ', 'GCHPchem', -# 'BudgetWetDepPBL_IDHPE ', 'GCHPchem', -# 'BudgetWetDepPBL_IDHDP ', 'GCHPchem', -# 'BudgetWetDepPBL_IDCHP ', 'GCHPchem', -# 'BudgetWetDepPBL_ICPDH ', 'GCHPchem', -# 'BudgetWetDepPBL_ICN ', 'GCHPchem', -# 'BudgetWetDepPBL_ICl ', 'GCHPchem', -# 'BudgetWetDepPBL_ICHE ', 'GCHPchem', -# 'BudgetWetDepPBL_IBr ', 'GCHPchem', -# 'BudgetWetDepPBL_I2O4 ', 'GCHPchem', -# 'BudgetWetDepPBL_I2O3 ', 'GCHPchem', -# 'BudgetWetDepPBL_I2O2 ', 'GCHPchem', -# 'BudgetWetDepPBL_I2 ', 'GCHPchem', -# 'BudgetWetDepPBL_HPETHNL ', 'GCHPchem', -# 'BudgetWetDepPBL_HONIT ', 'GCHPchem', -# 'BudgetWetDepPBL_HOI ', 'GCHPchem', -# 'BudgetWetDepPBL_HOCl ', 'GCHPchem', -# 'BudgetWetDepPBL_HOBr ', 'GCHPchem', -# 'BudgetWetDepPBL_HNO3 ', 'GCHPchem', -# 'BudgetWetDepPBL_HMML ', 'GCHPchem', -# 'BudgetWetDepPBL_HMS ', 'GCHPchem', -# 'BudgetWetDepPBL_HMHP ', 'GCHPchem', -# 'BudgetWetDepPBL_HI ', 'GCHPchem', -# 'BudgetWetDepPBL_HCOOH ', 'GCHPchem', -# 'BudgetWetDepPBL_HCl ', 'GCHPchem', -# 'BudgetWetDepPBL_HC5A ', 'GCHPchem', -# 'BudgetWetDepPBL_HBr ', 'GCHPchem', -# 'BudgetWetDepPBL_HAC ', 'GCHPchem', -# 'BudgetWetDepPBL_H2O2 ', 'GCHPchem', -# 'BudgetWetDepPBL_GLYX ', 'GCHPchem', -# 'BudgetWetDepPBL_GLYC ', 'GCHPchem', -# 'BudgetWetDepPBL_ETP ', 'GCHPchem', -# 'BudgetWetDepPBL_ETHP ', 'GCHPchem', -# 'BudgetWetDepPBL_ETHN ', 'GCHPchem', -# 'BudgetWetDepPBL_ETHLN ', 'GCHPchem', -# 'BudgetWetDepPBL_EOH ', 'GCHPchem', -# 'BudgetWetDepPBL_DST4 ', 'GCHPchem', -# 'BudgetWetDepPBL_DST3 ', 'GCHPchem', -# 'BudgetWetDepPBL_DST2 ', 'GCHPchem', -# 'BudgetWetDepPBL_DST1 ', 'GCHPchem', -# 'BudgetWetDepPBL_CH2O ', 'GCHPchem', -# 'BudgetWetDepPBL_BrSALC ', 'GCHPchem', -# 'BudgetWetDepPBL_BrSALA ', 'GCHPchem', -# 'BudgetWetDepPBL_BrCl ', 'GCHPchem', -# 'BudgetWetDepPBL_Br2 ', 'GCHPchem', -# 'BudgetWetDepPBL_BCPO ', 'GCHPchem', -# 'BudgetWetDepPBL_BCPI ', 'GCHPchem', -# 'BudgetWetDepPBL_ATOOH ', 'GCHPchem', -# 'BudgetWetDepPBL_ALD2 ', 'GCHPchem', -# 'BudgetWetDepPBL_AERI ', 'GCHPchem', -# 'BudgetWetDepPBL_ACTA ', 'GCHPchem', -# #'BudgetWetDepPBL_TSOG1 ', 'GCHPchem', -# #'BudgetWetDepPBL_TSOG0 ', 'GCHPchem', -# #'BudgetWetDepPBL_TSOA3 ', 'GCHPchem', -# #'BudgetWetDepPBL_TSOA2 ', 'GCHPchem', -# #'BudgetWetDepPBL_TSOA1 ', 'GCHPchem', -# #'BudgetWetDepPBL_TSOA0 ', 'GCHPchem', -# #'BudgetWetDepPBL_ASOG3 ', 'GCHPchem', -# #'BudgetWetDepPBL_ASOG2 ', 'GCHPchem', -# #'BudgetWetDepPBL_ASOG1 ', 'GCHPchem', -# #'BudgetWetDepPBL_ASOAN ', 'GCHPchem', -# #'BudgetWetDepPBL_ASOA3 ', 'GCHPchem', -# #'BudgetWetDepPBL_ASOA2 ', 'GCHPchem', -# #'BudgetWetDepPBL_ASOA1 ', 'GCHPchem', -# 'BudgetWetDepTrop_SOAS ', 'GCHPchem', -# 'BudgetWetDepTrop_SOAIE ', 'GCHPchem', -# 'BudgetWetDepTrop_SOAGX ', 'GCHPchem', -# 'BudgetWetDepTrop_SO4s ', 'GCHPchem', -# 'BudgetWetDepTrop_SO4 ', 'GCHPchem', -# 'BudgetWetDepTrop_SO2 ', 'GCHPchem', -# 'BudgetWetDepTrop_SALCCL ', 'GCHPchem', -# 'BudgetWetDepTrop_SALCAL ', 'GCHPchem', -# 'BudgetWetDepTrop_SALC ', 'GCHPchem', -# 'BudgetWetDepTrop_SALACL ', 'GCHPchem', -# 'BudgetWetDepTrop_SALAAL ', 'GCHPchem', -# 'BudgetWetDepTrop_SALA ', 'GCHPchem', -# 'BudgetWetDepTrop_RP ', 'GCHPchem', -# 'BudgetWetDepTrop_RIPD ', 'GCHPchem', -# 'BudgetWetDepTrop_RIPC ', 'GCHPchem', -# 'BudgetWetDepTrop_RIPB ', 'GCHPchem', -# 'BudgetWetDepTrop_RIPA ', 'GCHPchem', -# 'BudgetWetDepTrop_RB3P ', 'GCHPchem', -# 'BudgetWetDepTrop_RA3P ', 'GCHPchem', -# 'BudgetWetDepTrop_R4P ', 'GCHPchem', -# 'BudgetWetDepTrop_R4N2 ', 'GCHPchem', -# 'BudgetWetDepTrop_PYAC ', 'GCHPchem', -# 'BudgetWetDepTrop_PRPN ', 'GCHPchem', -# 'BudgetWetDepTrop_PRPE ', 'GCHPchem', -# 'BudgetWetDepTrop_PROPNN ', 'GCHPchem', -# 'BudgetWetDepTrop_PPN ', 'GCHPchem', -# 'BudgetWetDepTrop_PP ', 'GCHPchem', -# 'BudgetWetDepTrop_pFe ', 'GCHPchem', -# 'BudgetWetDepTrop_PAN ', 'GCHPchem', -# 'BudgetWetDepTrop_OCPO ', 'GCHPchem', -# 'BudgetWetDepTrop_OCPI ', 'GCHPchem', -# 'BudgetWetDepTrop_NITS ', 'GCHPchem', -# 'BudgetWetDepTrop_NIT ', 'GCHPchem', -# 'BudgetWetDepTrop_NH4 ', 'GCHPchem', -# 'BudgetWetDepTrop_NH3 ', 'GCHPchem', -# 'BudgetWetDepTrop_MVKPC ', 'GCHPchem', -# 'BudgetWetDepTrop_MVKN ', 'GCHPchem', -# 'BudgetWetDepTrop_MVKHP ', 'GCHPchem', -# 'BudgetWetDepTrop_MVKHCB ', 'GCHPchem', -# 'BudgetWetDepTrop_MVKHC ', 'GCHPchem', -# 'BudgetWetDepTrop_MVKDH ', 'GCHPchem', -# 'BudgetWetDepTrop_MVK ', 'GCHPchem', -# 'BudgetWetDepTrop_MTPO ', 'GCHPchem', -# 'BudgetWetDepTrop_MTPA ', 'GCHPchem', -# 'BudgetWetDepTrop_MSA ', 'GCHPchem', -# 'BudgetWetDepTrop_MPN ', 'GCHPchem', -# 'BudgetWetDepTrop_MPAN ', 'GCHPchem', -# 'BudgetWetDepTrop_MP ', 'GCHPchem', -# 'BudgetWetDepTrop_MONITU ', 'GCHPchem', -# 'BudgetWetDepTrop_MONITS ', 'GCHPchem', -# 'BudgetWetDepTrop_MONITA ', 'GCHPchem', -# 'BudgetWetDepTrop_MOH ', 'GCHPchem', -# 'BudgetWetDepTrop_MGLY ', 'GCHPchem', -# 'BudgetWetDepTrop_MEK ', 'GCHPchem', -# 'BudgetWetDepTrop_MCRHP ', 'GCHPchem', -# 'BudgetWetDepTrop_MCRHNB ', 'GCHPchem', -# 'BudgetWetDepTrop_MCRHN ', 'GCHPchem', -# 'BudgetWetDepTrop_MCRENOL ', 'GCHPchem', -# 'BudgetWetDepTrop_MCRDH ', 'GCHPchem', -# 'BudgetWetDepTrop_MAP ', 'GCHPchem', -# 'BudgetWetDepTrop_MACR1OOH ', 'GCHPchem', -# 'BudgetWetDepTrop_LVOCOA ', 'GCHPchem', -# 'BudgetWetDepTrop_LVOC ', 'GCHPchem', -# 'BudgetWetDepTrop_LIMO ', 'GCHPchem', -# 'BudgetWetDepTrop_ITHN ', 'GCHPchem', -# 'BudgetWetDepTrop_ITCN ', 'GCHPchem', -# 'BudgetWetDepTrop_ISALC ', 'GCHPchem', -# 'BudgetWetDepTrop_ISALA ', 'GCHPchem', -# 'BudgetWetDepTrop_IONO2 ', 'GCHPchem', -# 'BudgetWetDepTrop_IONO ', 'GCHPchem', -# 'BudgetWetDepTrop_IONITA ', 'GCHPchem', -# 'BudgetWetDepTrop_INPD ', 'GCHPchem', -# 'BudgetWetDepTrop_INPB ', 'GCHPchem', -# 'BudgetWetDepTrop_INDIOL ', 'GCHPchem', -# 'BudgetWetDepTrop_IHN4 ', 'GCHPchem', -# 'BudgetWetDepTrop_IHN3 ', 'GCHPchem', -# 'BudgetWetDepTrop_IHN2 ', 'GCHPchem', -# 'BudgetWetDepTrop_IHN1 ', 'GCHPchem', -# 'BudgetWetDepTrop_IEPOXD ', 'GCHPchem', -# 'BudgetWetDepTrop_IEPOXB ', 'GCHPchem', -# 'BudgetWetDepTrop_IEPOXA ', 'GCHPchem', -# 'BudgetWetDepTrop_IDN ', 'GCHPchem', -# 'BudgetWetDepTrop_IDHPE ', 'GCHPchem', -# 'BudgetWetDepTrop_IDHDP ', 'GCHPchem', -# 'BudgetWetDepTrop_IDCHP ', 'GCHPchem', -# 'BudgetWetDepTrop_ICPDH ', 'GCHPchem', -# 'BudgetWetDepTrop_ICN ', 'GCHPchem', -# 'BudgetWetDepTrop_ICl ', 'GCHPchem', -# 'BudgetWetDepTrop_ICHE ', 'GCHPchem', -# 'BudgetWetDepTrop_IBr ', 'GCHPchem', -# 'BudgetWetDepTrop_I2O4 ', 'GCHPchem', -# 'BudgetWetDepTrop_I2O3 ', 'GCHPchem', -# 'BudgetWetDepTrop_I2O2 ', 'GCHPchem', -# 'BudgetWetDepTrop_I2 ', 'GCHPchem', -# 'BudgetWetDepTrop_HPETHNL ', 'GCHPchem', -# 'BudgetWetDepTrop_HONIT ', 'GCHPchem', -# 'BudgetWetDepTrop_HOI ', 'GCHPchem', -# 'BudgetWetDepTrop_HOCl ', 'GCHPchem', -# 'BudgetWetDepTrop_HOBr ', 'GCHPchem', -# 'BudgetWetDepTrop_HNO3 ', 'GCHPchem', -# 'BudgetWetDepTrop_HMS ', 'GCHPchem', -# 'BudgetWetDepTrop_HMML ', 'GCHPchem', -# 'BudgetWetDepTrop_HMHP ', 'GCHPchem', -# 'BudgetWetDepTrop_HI ', 'GCHPchem', -# 'BudgetWetDepTrop_HCOOH ', 'GCHPchem', -# 'BudgetWetDepTrop_HCl ', 'GCHPchem', -# 'BudgetWetDepTrop_HC5A ', 'GCHPchem', -# 'BudgetWetDepTrop_HBr ', 'GCHPchem', -# 'BudgetWetDepTrop_HAC ', 'GCHPchem', -# 'BudgetWetDepTrop_H2O2 ', 'GCHPchem', -# 'BudgetWetDepTrop_GLYX ', 'GCHPchem', -# 'BudgetWetDepTrop_GLYC ', 'GCHPchem', -# 'BudgetWetDepTrop_ETP ', 'GCHPchem', -# 'BudgetWetDepTrop_ETHP ', 'GCHPchem', -# 'BudgetWetDepTrop_ETHN ', 'GCHPchem', -# 'BudgetWetDepTrop_ETHLN ', 'GCHPchem', -# 'BudgetWetDepTrop_EOH ', 'GCHPchem', -# 'BudgetWetDepTrop_DST4 ', 'GCHPchem', -# 'BudgetWetDepTrop_DST3 ', 'GCHPchem', -# 'BudgetWetDepTrop_DST2 ', 'GCHPchem', -# 'BudgetWetDepTrop_DST1 ', 'GCHPchem', -# 'BudgetWetDepTrop_CH2O ', 'GCHPchem', -# 'BudgetWetDepTrop_BrSALC ', 'GCHPchem', -# 'BudgetWetDepTrop_BrSALA ', 'GCHPchem', -# 'BudgetWetDepTrop_BrCl ', 'GCHPchem', -# 'BudgetWetDepTrop_Br2 ', 'GCHPchem', -# 'BudgetWetDepTrop_BCPO ', 'GCHPchem', -# 'BudgetWetDepTrop_BCPI ', 'GCHPchem', -# 'BudgetWetDepTrop_ATOOH ', 'GCHPchem', -# 'BudgetWetDepTrop_ALD2 ', 'GCHPchem', -# 'BudgetWetDepTrop_AERI ', 'GCHPchem', -# 'BudgetWetDepTrop_ACTA ', 'GCHPchem', -# #'BudgetWetDepTrop_TSOG3 ', 'GCHPchem', -# #'BudgetWetDepTrop_TSOG2 ', 'GCHPchem', -# #'BudgetWetDepTrop_TSOG1 ', 'GCHPchem', -# #'BudgetWetDepTrop_TSOG0 ', 'GCHPchem', -# #'BudgetWetDepTrop_TSOA3 ', 'GCHPchem', -# #'BudgetWetDepTrop_TSOA2 ', 'GCHPchem', -# #'BudgetWetDepTrop_TSOA1 ', 'GCHPchem', -# #'BudgetWetDepTrop_TSOA0 ', 'GCHPchem', -# #'BudgetWetDepTrop_ASOG3 ', 'GCHPchem', -# #'BudgetWetDepTrop_ASOG2 ', 'GCHPchem', -# #'BudgetWetDepTrop_ASOG1 ', 'GCHPchem', -# #'BudgetWetDepTrop_ASOAN ', 'GCHPchem', -# #'BudgetWetDepTrop_ASOA3 ', 'GCHPchem', -# #'BudgetWetDepTrop_ASOA2 ', 'GCHPchem', -# #'BudgetWetDepTrop_ASOA1 ', 'GCHPchem', -# 'BudgetWetDepFull_SOAS ', 'GCHPchem', -# 'BudgetWetDepFull_SOAIE ', 'GCHPchem', -# 'BudgetWetDepFull_SOAGX ', 'GCHPchem', -# 'BudgetWetDepFull_SO4s ', 'GCHPchem', -# 'BudgetWetDepFull_SO4 ', 'GCHPchem', -# 'BudgetWetDepFull_SO2 ', 'GCHPchem', -# 'BudgetWetDepFull_SALCCL ', 'GCHPchem', -# 'BudgetWetDepFull_SALCAL ', 'GCHPchem', -# 'BudgetWetDepFull_SALC ', 'GCHPchem', -# 'BudgetWetDepFull_SALACL ', 'GCHPchem', -# 'BudgetWetDepFull_SALAAL ', 'GCHPchem', -# 'BudgetWetDepFull_SALA ', 'GCHPchem', -# 'BudgetWetDepFull_RP ', 'GCHPchem', -# 'BudgetWetDepFull_RIPD ', 'GCHPchem', -# 'BudgetWetDepFull_RIPC ', 'GCHPchem', -# 'BudgetWetDepFull_RIPB ', 'GCHPchem', -# 'BudgetWetDepFull_RIPA ', 'GCHPchem', -# 'BudgetWetDepFull_RB3P ', 'GCHPchem', -# 'BudgetWetDepFull_RA3P ', 'GCHPchem', -# 'BudgetWetDepFull_R4P ', 'GCHPchem', -# 'BudgetWetDepFull_R4N2 ', 'GCHPchem', -# 'BudgetWetDepFull_PYAC ', 'GCHPchem', -# 'BudgetWetDepFull_PRPN ', 'GCHPchem', -# 'BudgetWetDepFull_PRPE ', 'GCHPchem', -# 'BudgetWetDepFull_PROPNN ', 'GCHPchem', -# 'BudgetWetDepFull_PPN ', 'GCHPchem', -# 'BudgetWetDepFull_PP ', 'GCHPchem', -# 'BudgetWetDepFull_pFe ', 'GCHPchem', -# 'BudgetWetDepFull_PAN ', 'GCHPchem', -# 'BudgetWetDepFull_OCPO ', 'GCHPchem', -# 'BudgetWetDepFull_OCPI ', 'GCHPchem', -# 'BudgetWetDepFull_NITs ', 'GCHPchem', -# 'BudgetWetDepFull_NIT ', 'GCHPchem', -# 'BudgetWetDepFull_NH4 ', 'GCHPchem', -# 'BudgetWetDepFull_NH3 ', 'GCHPchem', -# 'BudgetWetDepFull_MVKPC ', 'GCHPchem', -# 'BudgetWetDepFull_MVKN ', 'GCHPchem', -# 'BudgetWetDepFull_MVKHP ', 'GCHPchem', -# 'BudgetWetDepFull_MVKHCB ', 'GCHPchem', -# 'BudgetWetDepFull_MVKHC ', 'GCHPchem', -# 'BudgetWetDepFull_MVKDH ', 'GCHPchem', -# 'BudgetWetDepFull_MVK ', 'GCHPchem', -# 'BudgetWetDepFull_MTPO ', 'GCHPchem', -# 'BudgetWetDepFull_MTPA ', 'GCHPchem', -# 'BudgetWetDepFull_MSA ', 'GCHPchem', -# 'BudgetWetDepFull_MPN ', 'GCHPchem', -# 'BudgetWetDepFull_MPAN ', 'GCHPchem', -# 'BudgetWetDepFull_MP ', 'GCHPchem', -# 'BudgetWetDepFull_MONITU ', 'GCHPchem', -# 'BudgetWetDepFull_MONITS ', 'GCHPchem', -# 'BudgetWetDepFull_MONITA ', 'GCHPchem', -# 'BudgetWetDepFull_MOH ', 'GCHPchem', -# 'BudgetWetDepFull_MGLY ', 'GCHPchem', -# 'BudgetWetDepFull_MEK ', 'GCHPchem', -# 'BudgetWetDepFull_MCRHP ', 'GCHPchem', -# 'BudgetWetDepFull_MCRHNB ', 'GCHPchem', -# 'BudgetWetDepFull_MCRHN ', 'GCHPchem', -# 'BudgetWetDepFull_MCRENOL ', 'GCHPchem', -# 'BudgetWetDepFull_MCRDH ', 'GCHPchem', -# 'BudgetWetDepFull_MAP ', 'GCHPchem', -# 'BudgetWetDepFull_MACR1OOH ', 'GCHPchem', -# 'BudgetWetDepFull_LVOCOA ', 'GCHPchem', -# 'BudgetWetDepFull_LVOC ', 'GCHPchem', -# 'BudgetWetDepFull_LIMO ', 'GCHPchem', -# 'BudgetWetDepFull_ITHN ', 'GCHPchem', -# 'BudgetWetDepFull_ITCN ', 'GCHPchem', -# 'BudgetWetDepFull_ISALC ', 'GCHPchem', -# 'BudgetWetDepFull_ISALA ', 'GCHPchem', -# 'BudgetWetDepFull_IONO2 ', 'GCHPchem', -# 'BudgetWetDepFull_IONO ', 'GCHPchem', -# 'BudgetWetDepFull_IONITA ', 'GCHPchem', -# 'BudgetWetDepFull_INPD ', 'GCHPchem', -# 'BudgetWetDepFull_INPB ', 'GCHPchem', -# 'BudgetWetDepFull_INDIOL ', 'GCHPchem', -# 'BudgetWetDepFull_IHN4 ', 'GCHPchem', -# 'BudgetWetDepFull_IHN3 ', 'GCHPchem', -# 'BudgetWetDepFull_IHN2 ', 'GCHPchem', -# 'BudgetWetDepFull_IHN1 ', 'GCHPchem', -# 'BudgetWetDepFull_IEPOXD ', 'GCHPchem', -# 'BudgetWetDepFull_IEPOXB ', 'GCHPchem', -# 'BudgetWetDepFull_IEPOXA ', 'GCHPchem', -# 'BudgetWetDepFull_IDN ', 'GCHPchem', -# 'BudgetWetDepFull_IDHPE ', 'GCHPchem', -# 'BudgetWetDepFull_IDHDP ', 'GCHPchem', -# 'BudgetWetDepFull_IDCHP ', 'GCHPchem', -# 'BudgetWetDepFull_ICPDH ', 'GCHPchem', -# 'BudgetWetDepFull_ICN ', 'GCHPchem', -# 'BudgetWetDepFull_ICl ', 'GCHPchem', -# 'BudgetWetDepFull_ICHE ', 'GCHPchem', -# 'BudgetWetDepFull_IBr ', 'GCHPchem', -# 'BudgetWetDepFull_I2O4 ', 'GCHPchem', -# 'BudgetWetDepFull_I2O3 ', 'GCHPchem', -# 'BudgetWetDepFull_I2O2 ', 'GCHPchem', -# 'BudgetWetDepFull_I2 ', 'GCHPchem', -# 'BudgetWetDepFull_HPETHNL ', 'GCHPchem', -# 'BudgetWetDepFull_HONIT ', 'GCHPchem', -# 'BudgetWetDepFull_HOI ', 'GCHPchem', -# 'BudgetWetDepFull_HOCl ', 'GCHPchem', -# 'BudgetWetDepFull_HOBr ', 'GCHPchem', -# 'BudgetWetDepFull_HNO3 ', 'GCHPchem', -# 'BudgetWetDepFull_HMS ', 'GCHPchem', -# 'BudgetWetDepFull_HMML ', 'GCHPchem', -# 'BudgetWetDepFull_HMHP ', 'GCHPchem', -# 'BudgetWetDepFull_HI ', 'GCHPchem', -# 'BudgetWetDepFull_HCOOH ', 'GCHPchem', -# 'BudgetWetDepFull_HCl ', 'GCHPchem', -# 'BudgetWetDepFull_HC5A ', 'GCHPchem', -# 'BudgetWetDepFull_HBr ', 'GCHPchem', -# 'BudgetWetDepFull_HAC ', 'GCHPchem', -# 'BudgetWetDepFull_H2O2 ', 'GCHPchem', -# 'BudgetWetDepFull_GLYX ', 'GCHPchem', -# 'BudgetWetDepFull_GLYC ', 'GCHPchem', -# 'BudgetWetDepFull_ETP ', 'GCHPchem', -# 'BudgetWetDepFull_ETHP ', 'GCHPchem', -# 'BudgetWetDepFull_ETHN ', 'GCHPchem', -# 'BudgetWetDepFull_ETHLN ', 'GCHPchem', -# 'BudgetWetDepFull_EOH ', 'GCHPchem', -# 'BudgetWetDepFull_DST4 ', 'GCHPchem', -# 'BudgetWetDepFull_DST3 ', 'GCHPchem', -# 'BudgetWetDepFull_DST2 ', 'GCHPchem', -# 'BudgetWetDepFull_DST1 ', 'GCHPchem', -# 'BudgetWetDepFull_CH2O ', 'GCHPchem', -# 'BudgetWetDepFull_BrSALC ', 'GCHPchem', -# 'BudgetWetDepFull_BrSALA ', 'GCHPchem', -# 'BudgetWetDepFull_BrCl ', 'GCHPchem', -# 'BudgetWetDepFull_Br2 ', 'GCHPchem', -# 'BudgetWetDepFull_BCPO ', 'GCHPchem', -# 'BudgetWetDepFull_BCPI ', 'GCHPchem', -# 'BudgetWetDepFull_ATOOH ', 'GCHPchem', -# 'BudgetWetDepFull_ALD2 ', 'GCHPchem', -# 'BudgetWetDepFull_AERI ', 'GCHPchem', -# 'BudgetWetDepFull_ACTA ', 'GCHPchem', -# #'BudgetWetDepFull_TSOG3 ', 'GCHPchem', -# #'BudgetWetDepFull_TSOG2 ', 'GCHPchem', -# #'BudgetWetDepFull_TSOG1 ', 'GCHPchem', -# #'BudgetWetDepFull_TSOG0 ', 'GCHPchem', -# #'BudgetWetDepFull_TSOA3 ', 'GCHPchem', -# #'BudgetWetDepFull_TSOA2 ', 'GCHPchem', -# #'BudgetWetDepFull_TSOA1 ', 'GCHPchem', -# #'BudgetWetDepFull_TSOA0 ', 'GCHPchem', -# #'BudgetWetDepFull_ASOG3 ', 'GCHPchem', -# #'BudgetWetDepFull_ASOG2 ', 'GCHPchem', -# #'BudgetWetDepFull_ASOG1 ', 'GCHPchem', -# #'BudgetWetDepFull_ASOAN ', 'GCHPchem', -# #'BudgetWetDepFull_ASOA3 ', 'GCHPchem', -# #'BudgetWetDepFull_ASOA2 ', 'GCHPchem', -# #'BudgetWetDepFull_ASOA1 ', 'GCHPchem', -# 'BudgetChemistryPBL_XYLE ', 'GCHPchem', -# 'BudgetChemistryPBL_TOLU ', 'GCHPchem', -# 'BudgetChemistryPBL_SOAS ', 'GCHPchem', -# 'BudgetChemistryPBL_SOAP ', 'GCHPchem', -# 'BudgetChemistryPBL_SOAIE ', 'GCHPchem', -# 'BudgetChemistryPBL_SOAGX ', 'GCHPchem', -# 'BudgetChemistryPBL_SO4s ', 'GCHPchem', -# 'BudgetChemistryPBL_SO4 ', 'GCHPchem', -# 'BudgetChemistryPBL_SO2 ', 'GCHPchem', -# 'BudgetChemistryPBL_SALCCL ', 'GCHPchem', -# 'BudgetChemistryPBL_SALCAL ', 'GCHPchem', -# 'BudgetChemistryPBL_SALC ', 'GCHPchem', -# 'BudgetChemistryPBL_SALACL ', 'GCHPchem', -# 'BudgetChemistryPBL_SALAAL ', 'GCHPchem', -# 'BudgetChemistryPBL_SALA ', 'GCHPchem', -# 'BudgetChemistryPBL_RP ', 'GCHPchem', -# 'BudgetChemistryPBL_RIPD ', 'GCHPchem', -# 'BudgetChemistryPBL_RIPC ', 'GCHPchem', -# 'BudgetChemistryPBL_RIPB ', 'GCHPchem', -# 'BudgetChemistryPBL_RIPA ', 'GCHPchem', -# 'BudgetChemistryPBL_RCHO ', 'GCHPchem', -# 'BudgetChemistryPBL_RB3P ', 'GCHPchem', -# 'BudgetChemistryPBL_RA3P ', 'GCHPchem', -# 'BudgetChemistryPBL_R4P ', 'GCHPchem', -# 'BudgetChemistryPBL_R4N2 ', 'GCHPchem', -# 'BudgetChemistryPBL_PYAC ', 'GCHPchem', -# 'BudgetChemistryPBL_PRPN ', 'GCHPchem', -# 'BudgetChemistryPBL_PRPE ', 'GCHPchem', -# 'BudgetChemistryPBL_PROPNN ', 'GCHPchem', -# 'BudgetChemistryPBL_PPN ', 'GCHPchem', -# 'BudgetChemistryPBL_PP ', 'GCHPchem', -# 'BudgetChemistryPBL_PIP ', 'GCHPchem', -# 'BudgetChemistryPBL_pFe ', 'GCHPchem', -# 'BudgetChemistryPBL_PAN ', 'GCHPchem', -# 'BudgetChemistryPBL_OIO ', 'GCHPchem', -# 'BudgetChemistryPBL_OCS ', 'GCHPchem', -# 'BudgetChemistryPBL_OCPO ', 'GCHPchem', -# 'BudgetChemistryPBL_OCPI ', 'GCHPchem', -# 'BudgetChemistryPBL_OClO ', 'GCHPchem', -# 'BudgetChemistryPBL_O3 ', 'GCHPchem', -# 'BudgetChemistryPBL_NPRNO3 ', 'GCHPchem', -# 'BudgetChemistryPBL_NO3 ', 'GCHPchem', -# 'BudgetChemistryPBL_NO2 ', 'GCHPchem', -# 'BudgetChemistryPBL_NO ', 'GCHPchem', -# 'BudgetChemistryPBL_NITs ', 'GCHPchem', -# 'BudgetChemistryPBL_NIT ', 'GCHPchem', -# 'BudgetChemistryPBL_NH4 ', 'GCHPchem', -# 'BudgetChemistryPBL_NH3 ', 'GCHPchem', -# 'BudgetChemistryPBL_N2O5 ', 'GCHPchem', -# 'BudgetChemistryPBL_N2O ', 'GCHPchem', -# 'BudgetChemistryPBL_MVKPC ', 'GCHPchem', -# 'BudgetChemistryPBL_MVKN ', 'GCHPchem', -# 'BudgetChemistryPBL_MVKHP ', 'GCHPchem', -# 'BudgetChemistryPBL_MVKHCB ', 'GCHPchem', -# 'BudgetChemistryPBL_MVKHC ', 'GCHPchem', -# 'BudgetChemistryPBL_MVKDH ', 'GCHPchem', -# 'BudgetChemistryPBL_MVK ', 'GCHPchem', -# 'BudgetChemistryPBL_MTPO ', 'GCHPchem', -# 'BudgetChemistryPBL_MTPA ', 'GCHPchem', -# 'BudgetChemistryPBL_MSA ', 'GCHPchem', -# 'BudgetChemistryPBL_MPN ', 'GCHPchem', -# 'BudgetChemistryPBL_MPAN ', 'GCHPchem', -# 'BudgetChemistryPBL_MP ', 'GCHPchem', -# 'BudgetChemistryPBL_MONITU ', 'GCHPchem', -# 'BudgetChemistryPBL_MONITS ', 'GCHPchem', -# 'BudgetChemistryPBL_MONITA ', 'GCHPchem', -# 'BudgetChemistryPBL_MOH ', 'GCHPchem', -# 'BudgetChemistryPBL_MGLY ', 'GCHPchem', -# 'BudgetChemistryPBL_MENO3 ', 'GCHPchem', -# 'BudgetChemistryPBL_MEK ', 'GCHPchem', -# 'BudgetChemistryPBL_MCRHP ', 'GCHPchem', -# 'BudgetChemistryPBL_MCRHNB ', 'GCHPchem', -# 'BudgetChemistryPBL_MCRHN ', 'GCHPchem', -# 'BudgetChemistryPBL_MCRENOL ', 'GCHPchem', -# 'BudgetChemistryPBL_MCRDH ', 'GCHPchem', -# 'BudgetChemistryPBL_MAP ', 'GCHPchem', -# 'BudgetChemistryPBL_MACR1OOH ', 'GCHPchem', -# 'BudgetChemistryPBL_MACR ', 'GCHPchem', -# 'BudgetChemistryPBL_LVOCOA ', 'GCHPchem', -# 'BudgetChemistryPBL_LVOC ', 'GCHPchem', -# 'BudgetChemistryPBL_LIMO ', 'GCHPchem', -# 'BudgetChemistryPBL_ITHN ', 'GCHPchem', -# 'BudgetChemistryPBL_ITCN ', 'GCHPchem', -# 'BudgetChemistryPBL_ISOP ', 'GCHPchem', -# 'BudgetChemistryPBL_ISALC ', 'GCHPchem', -# 'BudgetChemistryPBL_ISALA ', 'GCHPchem', -# 'BudgetChemistryPBL_IPRNO3 ', 'GCHPchem', -# 'BudgetChemistryPBL_IONO2 ', 'GCHPchem', -# 'BudgetChemistryPBL_IONO ', 'GCHPchem', -# 'BudgetChemistryPBL_IONITA ', 'GCHPchem', -# 'BudgetChemistryPBL_IO ', 'GCHPchem', -# 'BudgetChemistryPBL_INPD ', 'GCHPchem', -# 'BudgetChemistryPBL_INPB ', 'GCHPchem', -# 'BudgetChemistryPBL_INO ', 'GCHPchem', -# 'BudgetChemistryPBL_INDIOL ', 'GCHPchem', -# 'BudgetChemistryPBL_IHN4 ', 'GCHPchem', -# 'BudgetChemistryPBL_IHN3 ', 'GCHPchem', -# 'BudgetChemistryPBL_IHN2 ', 'GCHPchem', -# 'BudgetChemistryPBL_IHN1 ', 'GCHPchem', -# 'BudgetChemistryPBL_IEPOXD ', 'GCHPchem', -# 'BudgetChemistryPBL_IEPOXB ', 'GCHPchem', -# 'BudgetChemistryPBL_IEPOXA ', 'GCHPchem', -# 'BudgetChemistryPBL_IDN ', 'GCHPchem', -# 'BudgetChemistryPBL_IDHPE ', 'GCHPchem', -# 'BudgetChemistryPBL_IDHDP ', 'GCHPchem', -# 'BudgetChemistryPBL_IDCHP ', 'GCHPchem', -# 'BudgetChemistryPBL_IDC ', 'GCHPchem', -# 'BudgetChemistryPBL_ICPDH ', 'GCHPchem', -# 'BudgetChemistryPBL_ICN ', 'GCHPchem', -# 'BudgetChemistryPBL_ICl ', 'GCHPchem', -# 'BudgetChemistryPBL_ICHE ', 'GCHPchem', -# 'BudgetChemistryPBL_IBr ', 'GCHPchem', -# 'BudgetChemistryPBL_I2O4 ', 'GCHPchem', -# 'BudgetChemistryPBL_I2O3 ', 'GCHPchem', -# 'BudgetChemistryPBL_I2O2 ', 'GCHPchem', -# 'BudgetChemistryPBL_I2 ', 'GCHPchem', -# 'BudgetChemistryPBL_I ', 'GCHPchem', -# 'BudgetChemistryPBL_HPETHNL ', 'GCHPchem', -# 'BudgetChemistryPBL_HPALD4 ', 'GCHPchem', -# 'BudgetChemistryPBL_HPALD3 ', 'GCHPchem', -# 'BudgetChemistryPBL_HPALD2 ', 'GCHPchem', -# 'BudgetChemistryPBL_HPALD1 ', 'GCHPchem', -# 'BudgetChemistryPBL_HONIT ', 'GCHPchem', -# 'BudgetChemistryPBL_HOI ', 'GCHPchem', -# 'BudgetChemistryPBL_HOCl ', 'GCHPchem', -# 'BudgetChemistryPBL_HOBr ', 'GCHPchem', -# 'BudgetChemistryPBL_HNO4 ', 'GCHPchem', -# 'BudgetChemistryPBL_HNO3 ', 'GCHPchem', -# 'BudgetChemistryPBL_HNO2 ', 'GCHPchem', -# 'BudgetChemistryPBL_HMML ', 'GCHPchem', -# 'BudgetChemistryPBL_HMHP ', 'GCHPchem', -# 'BudgetChemistryPBL_HMS ', 'GCHPchem', -# 'BudgetChemistryPBL_HI ', 'GCHPchem', -# 'BudgetChemistryPBL_HCOOH ', 'GCHPchem', -# 'BudgetChemistryPBL_HCl ', 'GCHPchem', -# 'BudgetChemistryPBL_HCFC22 ', 'GCHPchem', -# 'BudgetChemistryPBL_HCFC142b ', 'GCHPchem', -# 'BudgetChemistryPBL_HCFC141b ', 'GCHPchem', -# 'BudgetChemistryPBL_HCFC123 ', 'GCHPchem', -# 'BudgetChemistryPBL_HC5A ', 'GCHPchem', -# 'BudgetChemistryPBL_HBr ', 'GCHPchem', -# 'BudgetChemistryPBL_HAC ', 'GCHPchem', -# 'BudgetChemistryPBL_H2O2 ', 'GCHPchem', -# 'BudgetChemistryPBL_H2O ', 'GCHPchem', -# 'BudgetChemistryPBL_H2402 ', 'GCHPchem', -# 'BudgetChemistryPBL_H1301 ', 'GCHPchem', -# 'BudgetChemistryPBL_H1211 ', 'GCHPchem', -# 'BudgetChemistryPBL_GLYX ', 'GCHPchem', -# 'BudgetChemistryPBL_GLYC ', 'GCHPchem', -# 'BudgetChemistryPBL_ETP ', 'GCHPchem', -# 'BudgetChemistryPBL_ETNO3 ', 'GCHPchem', -# 'BudgetChemistryPBL_ETHP ', 'GCHPchem', -# 'BudgetChemistryPBL_ETHN ', 'GCHPchem', -# 'BudgetChemistryPBL_ETHLN ', 'GCHPchem', -# 'BudgetChemistryPBL_EOH ', 'GCHPchem', -# 'BudgetChemistryPBL_DST4 ', 'GCHPchem', -# 'BudgetChemistryPBL_DST3 ', 'GCHPchem', -# 'BudgetChemistryPBL_DST2 ', 'GCHPchem', -# 'BudgetChemistryPBL_DST1 ', 'GCHPchem', -# 'BudgetChemistryPBL_DMS ', 'GCHPchem', -# 'BudgetChemistryPBL_CO ', 'GCHPchem', -# 'BudgetChemistryPBL_ClOO ', 'GCHPchem', -# 'BudgetChemistryPBL_ClO ', 'GCHPchem', -# 'BudgetChemistryPBL_ClNO3 ', 'GCHPchem', -# 'BudgetChemistryPBL_ClNO2 ', 'GCHPchem', -# 'BudgetChemistryPBL_Cl2O2 ', 'GCHPchem', -# 'BudgetChemistryPBL_Cl2 ', 'GCHPchem', -# 'BudgetChemistryPBL_Cl ', 'GCHPchem', -# 'BudgetChemistryPBL_CHCl3 ', 'GCHPchem', -# 'BudgetChemistryPBL_CHBr3 ', 'GCHPchem', -# 'BudgetChemistryPBL_CH4 ', 'GCHPchem', -# 'BudgetChemistryPBL_CH3I ', 'GCHPchem', -# 'BudgetChemistryPBL_CH3Cl ', 'GCHPchem', -# 'BudgetChemistryPBL_CH3CCl3 ', 'GCHPchem', -# 'BudgetChemistryPBL_CH3Br ', 'GCHPchem', -# 'BudgetChemistryPBL_CH2O ', 'GCHPchem', -# 'BudgetChemistryPBL_CH2ICl ', 'GCHPchem', -# 'BudgetChemistryPBL_CH2IBr ', 'GCHPchem', -# 'BudgetChemistryPBL_CH2I2 ', 'GCHPchem', -# 'BudgetChemistryPBL_CH2Cl2 ', 'GCHPchem', -# 'BudgetChemistryPBL_CH2Br2 ', 'GCHPchem', -# 'BudgetChemistryPBL_CFC12 ', 'GCHPchem', -# 'BudgetChemistryPBL_CFC115 ', 'GCHPchem', -# 'BudgetChemistryPBL_CFC114 ', 'GCHPchem', -# 'BudgetChemistryPBL_CFC113 ', 'GCHPchem', -# 'BudgetChemistryPBL_CFC11 ', 'GCHPchem', -# 'BudgetChemistryPBL_CCl4 ', 'GCHPchem', -# 'BudgetChemistryPBL_C3H8 ', 'GCHPchem', -# 'BudgetChemistryPBL_C2H6 ', 'GCHPchem', -# 'BudgetChemistryPBL_C2H4 ', 'GCHPchem', -# 'BudgetChemistryPBL_C2H2 ', 'GCHPchem', -# 'BudgetChemistryPBL_BrSALC ', 'GCHPchem', -# 'BudgetChemistryPBL_BrSALA ', 'GCHPchem', -# 'BudgetChemistryPBL_BrO ', 'GCHPchem', -# 'BudgetChemistryPBL_BrNO3 ', 'GCHPchem', -# 'BudgetChemistryPBL_BrNO2 ', 'GCHPchem', -# 'BudgetChemistryPBL_BrCl ', 'GCHPchem', -# 'BudgetChemistryPBL_Br2 ', 'GCHPchem', -# 'BudgetChemistryPBL_Br ', 'GCHPchem', -# 'BudgetChemistryPBL_BENZ ', 'GCHPchem', -# 'BudgetChemistryPBL_BCPO ', 'GCHPchem', -# 'BudgetChemistryPBL_BCPI ', 'GCHPchem', -# 'BudgetChemistryPBL_ATOOH ', 'GCHPchem', -# 'BudgetChemistryPBL_ALK4 ', 'GCHPchem', -# 'BudgetChemistryPBL_ALD2 ', 'GCHPchem', -# 'BudgetChemistryPBL_AERI ', 'GCHPchem', -# 'BudgetChemistryPBL_ACTA ', 'GCHPchem', -# 'BudgetChemistryPBL_ACET ', 'GCHPchem', -# #'BudgetChemistryPBL_TSOG3 ', 'GCHPchem', -# #'BudgetChemistryPBL_TSOG2 ', 'GCHPchem', -# #'BudgetChemistryPBL_TSOG1 ', 'GCHPchem', -# #'BudgetChemistryPBL_TSOG0 ', 'GCHPchem', -# #'BudgetChemistryPBL_TSOA3 ', 'GCHPchem', -# #'BudgetChemistryPBL_TSOA2 ', 'GCHPchem', -# #'BudgetChemistryPBL_TSOA1 ', 'GCHPchem', -# #'BudgetChemistryPBL_TSOA0 ', 'GCHPchem', -# #'BudgetChemistryPBL_ASOG3 ', 'GCHPchem', -# #'BudgetChemistryPBL_ASOG2 ', 'GCHPchem', -# #'BudgetChemistryPBL_ASOG1 ', 'GCHPchem', -# #'BudgetChemistryPBL_ASOAN ', 'GCHPchem', -# #'BudgetChemistryPBL_ASOA3 ', 'GCHPchem', -# #'BudgetChemistryPBL_ASOA2 ', 'GCHPchem', -# #'BudgetChemistryPBL_ASOA1 ', 'GCHPchem', -# 'BudgetChemistryTrop_XYLE ', 'GCHPchem', -# 'BudgetChemistryTrop_TOLU ', 'GCHPchem', -# 'BudgetChemistryTrop_SOAS ', 'GCHPchem', -# 'BudgetChemistryTrop_SOAP ', 'GCHPchem', -# 'BudgetChemistryTrop_SOAIE ', 'GCHPchem', -# 'BudgetChemistryTrop_SOAGX ', 'GCHPchem', -# 'BudgetChemistryTrop_SO4s ', 'GCHPchem', -# 'BudgetChemistryTrop_SO4 ', 'GCHPchem', -# 'BudgetChemistryTrop_SO2 ', 'GCHPchem', -# 'BudgetChemistryTrop_SALCCL ', 'GCHPchem', -# 'BudgetChemistryTrop_SALCAL ', 'GCHPchem', -# 'BudgetChemistryTrop_SALC ', 'GCHPchem', -# 'BudgetChemistryTrop_SALACL ', 'GCHPchem', -# 'BudgetChemistryTrop_SALAAL ', 'GCHPchem', -# 'BudgetChemistryTrop_SALA ', 'GCHPchem', -# 'BudgetChemistryTrop_RP ', 'GCHPchem', -# 'BudgetChemistryTrop_RIPD ', 'GCHPchem', -# 'BudgetChemistryTrop_RIPC ', 'GCHPchem', -# 'BudgetChemistryTrop_RIPB ', 'GCHPchem', -# 'BudgetChemistryTrop_RIPA ', 'GCHPchem', -# 'BudgetChemistryTrop_RCHO ', 'GCHPchem', -# 'BudgetChemistryTrop_RB3P ', 'GCHPchem', -# 'BudgetChemistryTrop_RA3P ', 'GCHPchem', -# 'BudgetChemistryTrop_R4P ', 'GCHPchem', -# 'BudgetChemistryTrop_R4N2 ', 'GCHPchem', -# 'BudgetChemistryTrop_PYAC ', 'GCHPchem', -# 'BudgetChemistryTrop_PRPN ', 'GCHPchem', -# 'BudgetChemistryTrop_PRPE ', 'GCHPchem', -# 'BudgetChemistryTrop_PROPNN ', 'GCHPchem', -# 'BudgetChemistryTrop_PPN ', 'GCHPchem', -# 'BudgetChemistryTrop_PP ', 'GCHPchem', -# 'BudgetChemistryTrop_PIP ', 'GCHPchem', -# 'BudgetChemistryTrop_pFe ', 'GCHPchem', -# 'BudgetChemistryTrop_PAN ', 'GCHPchem', -# 'BudgetChemistryTrop_OIO ', 'GCHPchem', -# 'BudgetChemistryTrop_OCS ', 'GCHPchem', -# 'BudgetChemistryTrop_OCPO ', 'GCHPchem', -# 'BudgetChemistryTrop_OCPI ', 'GCHPchem', -# 'BudgetChemistryTrop_OClO ', 'GCHPchem', -# 'BudgetChemistryTrop_O3 ', 'GCHPchem', -# 'BudgetChemistryTrop_NPRNO3 ', 'GCHPchem', -# 'BudgetChemistryTrop_NO3 ', 'GCHPchem', -# 'BudgetChemistryTrop_NO2 ', 'GCHPchem', -# 'BudgetChemistryTrop_NO ', 'GCHPchem', -# 'BudgetChemistryTrop_NITs ', 'GCHPchem', -# 'BudgetChemistryTrop_NIT ', 'GCHPchem', -# 'BudgetChemistryTrop_NH4 ', 'GCHPchem', -# 'BudgetChemistryTrop_NH3 ', 'GCHPchem', -# 'BudgetChemistryTrop_N2O5 ', 'GCHPchem', -# 'BudgetChemistryTrop_N2O ', 'GCHPchem', -# 'BudgetChemistryTrop_MVKPC ', 'GCHPchem', -# 'BudgetChemistryTrop_MVKN ', 'GCHPchem', -# 'BudgetChemistryTrop_MVKHP ', 'GCHPchem', -# 'BudgetChemistryTrop_MVKHCB ', 'GCHPchem', -# 'BudgetChemistryTrop_MVKHC ', 'GCHPchem', -# 'BudgetChemistryTrop_MVKDH ', 'GCHPchem', -# 'BudgetChemistryTrop_MVK ', 'GCHPchem', -# 'BudgetChemistryTrop_MTPO ', 'GCHPchem', -# 'BudgetChemistryTrop_MTPA ', 'GCHPchem', -# 'BudgetChemistryTrop_MSA ', 'GCHPchem', -# 'BudgetChemistryTrop_MPN ', 'GCHPchem', -# 'BudgetChemistryTrop_MPAN ', 'GCHPchem', -# 'BudgetChemistryTrop_MP ', 'GCHPchem', -# 'BudgetChemistryTrop_MONITU ', 'GCHPchem', -# 'BudgetChemistryTrop_MONITS ', 'GCHPchem', -# 'BudgetChemistryTrop_MONITA ', 'GCHPchem', -# 'BudgetChemistryTrop_MOH ', 'GCHPchem', -# 'BudgetChemistryTrop_MGLY ', 'GCHPchem', -# 'BudgetChemistryTrop_MENO3 ', 'GCHPchem', -# 'BudgetChemistryTrop_MEK ', 'GCHPchem', -# 'BudgetChemistryTrop_MCRHP ', 'GCHPchem', -# 'BudgetChemistryTrop_MCRHNB ', 'GCHPchem', -# 'BudgetChemistryTrop_MCRHN ', 'GCHPchem', -# 'BudgetChemistryTrop_MCRENOL ', 'GCHPchem', -# 'BudgetChemistryTrop_MCRDH ', 'GCHPchem', -# 'BudgetChemistryTrop_MAP ', 'GCHPchem', -# 'BudgetChemistryTrop_MACR1OOH ', 'GCHPchem', -# 'BudgetChemistryTrop_MACR ', 'GCHPchem', -# 'BudgetChemistryTrop_LVOCOA ', 'GCHPchem', -# 'BudgetChemistryTrop_LVOC ', 'GCHPchem', -# 'BudgetChemistryTrop_LIMO ', 'GCHPchem', -# 'BudgetChemistryTrop_ITHN ', 'GCHPchem', -# 'BudgetChemistryTrop_ITCN ', 'GCHPchem', -# 'BudgetChemistryTrop_ISOP ', 'GCHPchem', -# 'BudgetChemistryTrop_ISALC ', 'GCHPchem', -# 'BudgetChemistryTrop_ISALA ', 'GCHPchem', -# 'BudgetChemistryTrop_IPRNO3 ', 'GCHPchem', -# 'BudgetChemistryTrop_IONO2 ', 'GCHPchem', -# 'BudgetChemistryTrop_IONO ', 'GCHPchem', -# 'BudgetChemistryTrop_IONITA ', 'GCHPchem', -# 'BudgetChemistryTrop_IO ', 'GCHPchem', -# 'BudgetChemistryTrop_INPD ', 'GCHPchem', -# 'BudgetChemistryTrop_INPB ', 'GCHPchem', -# 'BudgetChemistryTrop_INO ', 'GCHPchem', -# 'BudgetChemistryTrop_INDIOL ', 'GCHPchem', -# 'BudgetChemistryTrop_IHN4 ', 'GCHPchem', -# 'BudgetChemistryTrop_IHN3 ', 'GCHPchem', -# 'BudgetChemistryTrop_IHN2 ', 'GCHPchem', -# 'BudgetChemistryTrop_IHN1 ', 'GCHPchem', -# 'BudgetChemistryTrop_IEPOXD ', 'GCHPchem', -# 'BudgetChemistryTrop_IEPOXB ', 'GCHPchem', -# 'BudgetChemistryTrop_IEPOXA ', 'GCHPchem', -# 'BudgetChemistryTrop_IDN ', 'GCHPchem', -# 'BudgetChemistryTrop_IDHPE ', 'GCHPchem', -# 'BudgetChemistryTrop_IDHDP ', 'GCHPchem', -# 'BudgetChemistryTrop_IDCHP ', 'GCHPchem', -# 'BudgetChemistryTrop_IDC ', 'GCHPchem', -# 'BudgetChemistryTrop_ICPDH ', 'GCHPchem', -# 'BudgetChemistryTrop_ICN ', 'GCHPchem', -# 'BudgetChemistryTrop_ICl ', 'GCHPchem', -# 'BudgetChemistryTrop_ICHE ', 'GCHPchem', -# 'BudgetChemistryTrop_IBr ', 'GCHPchem', -# 'BudgetChemistryTrop_I2O4 ', 'GCHPchem', -# 'BudgetChemistryTrop_I2O3 ', 'GCHPchem', -# 'BudgetChemistryTrop_I2O2 ', 'GCHPchem', -# 'BudgetChemistryTrop_I2 ', 'GCHPchem', -# 'BudgetChemistryTrop_I ', 'GCHPchem', -# 'BudgetChemistryTrop_HPETHNL ', 'GCHPchem', -# 'BudgetChemistryTrop_HPALD4 ', 'GCHPchem', -# 'BudgetChemistryTrop_HPALD3 ', 'GCHPchem', -# 'BudgetChemistryTrop_HPALD2 ', 'GCHPchem', -# 'BudgetChemistryTrop_HPALD1 ', 'GCHPchem', -# 'BudgetChemistryTrop_HONIT ', 'GCHPchem', -# 'BudgetChemistryTrop_HOI ', 'GCHPchem', -# 'BudgetChemistryTrop_HOCl ', 'GCHPchem', -# 'BudgetChemistryTrop_HOBr ', 'GCHPchem', -# 'BudgetChemistryTrop_HNO4 ', 'GCHPchem', -# 'BudgetChemistryTrop_HNO3 ', 'GCHPchem', -# 'BudgetChemistryTrop_HNO2 ', 'GCHPchem', -# 'BudgetChemistryTrop_HMS ', 'GCHPchem', -# 'BudgetChemistryTrop_HMML ', 'GCHPchem', -# 'BudgetChemistryTrop_HMHP ', 'GCHPchem', -# 'BudgetChemistryTrop_HI ', 'GCHPchem', -# 'BudgetChemistryTrop_HCOOH ', 'GCHPchem', -# 'BudgetChemistryTrop_HCl ', 'GCHPchem', -# 'BudgetChemistryTrop_HCFC22 ', 'GCHPchem', -# 'BudgetChemistryTrop_HCFC142b ', 'GCHPchem', -# 'BudgetChemistryTrop_HCFC141b ', 'GCHPchem', -# 'BudgetChemistryTrop_HCFC123 ', 'GCHPchem', -# 'BudgetChemistryTrop_HC5A ', 'GCHPchem', -# 'BudgetChemistryTrop_HBr ', 'GCHPchem', -# 'BudgetChemistryTrop_HAC ', 'GCHPchem', -# 'BudgetChemistryTrop_H2O2 ', 'GCHPchem', -# 'BudgetChemistryTrop_H2O ', 'GCHPchem', -# 'BudgetChemistryTrop_H2402 ', 'GCHPchem', -# 'BudgetChemistryTrop_H1301 ', 'GCHPchem', -# 'BudgetChemistryTrop_H1211 ', 'GCHPchem', -# 'BudgetChemistryTrop_GLYX ', 'GCHPchem', -# 'BudgetChemistryTrop_GLYC ', 'GCHPchem', -# 'BudgetChemistryTrop_ETP ', 'GCHPchem', -# 'BudgetChemistryTrop_ETNO3 ', 'GCHPchem', -# 'BudgetChemistryTrop_ETHP ', 'GCHPchem', -# 'BudgetChemistryTrop_ETHN ', 'GCHPchem', -# 'BudgetChemistryTrop_ETHLN ', 'GCHPchem', -# 'BudgetChemistryTrop_EOH ', 'GCHPchem', -# 'BudgetChemistryTrop_DST4 ', 'GCHPchem', -# 'BudgetChemistryTrop_DST3 ', 'GCHPchem', -# 'BudgetChemistryTrop_DST2 ', 'GCHPchem', -# 'BudgetChemistryTrop_DST1 ', 'GCHPchem', -# 'BudgetChemistryTrop_DMS ', 'GCHPchem', -# 'BudgetChemistryTrop_CO ', 'GCHPchem', -# 'BudgetChemistryTrop_ClOO ', 'GCHPchem', -# 'BudgetChemistryTrop_ClO ', 'GCHPchem', -# 'BudgetChemistryTrop_ClNO3 ', 'GCHPchem', -# 'BudgetChemistryTrop_ClNO2 ', 'GCHPchem', -# 'BudgetChemistryTrop_Cl2O2 ', 'GCHPchem', -# 'BudgetChemistryTrop_Cl2 ', 'GCHPchem', -# 'BudgetChemistryTrop_Cl ', 'GCHPchem', -# 'BudgetChemistryTrop_CHCl3 ', 'GCHPchem', -# 'BudgetChemistryTrop_CHBr3 ', 'GCHPchem', -# 'BudgetChemistryTrop_CH4 ', 'GCHPchem', -# 'BudgetChemistryTrop_CH3I ', 'GCHPchem', -# 'BudgetChemistryTrop_CH3Cl ', 'GCHPchem', -# 'BudgetChemistryTrop_CH3CCl3 ', 'GCHPchem', -# 'BudgetChemistryTrop_CH3Br ', 'GCHPchem', -# 'BudgetChemistryTrop_CH2O ', 'GCHPchem', -# 'BudgetChemistryTrop_CH2ICl ', 'GCHPchem', -# 'BudgetChemistryTrop_CH2IBr ', 'GCHPchem', -# 'BudgetChemistryTrop_CH2I2 ', 'GCHPchem', -# 'BudgetChemistryTrop_CH2Cl2 ', 'GCHPchem', -# 'BudgetChemistryTrop_CH2Br2 ', 'GCHPchem', -# 'BudgetChemistryTrop_CFC12 ', 'GCHPchem', -# 'BudgetChemistryTrop_CFC115 ', 'GCHPchem', -# 'BudgetChemistryTrop_CFC114 ', 'GCHPchem', -# 'BudgetChemistryTrop_CFC113 ', 'GCHPchem', -# 'BudgetChemistryTrop_CFC11 ', 'GCHPchem', -# 'BudgetChemistryTrop_CCl4 ', 'GCHPchem', -# 'BudgetChemistryTrop_C3H8 ', 'GCHPchem', -# 'BudgetChemistryTrop_C2H4 ', 'GCHPchem', -# 'BudgetChemistryTrop_C2H2 ', 'GCHPchem', -# 'BudgetChemistryTrop_C2H6 ', 'GCHPchem', -# 'BudgetChemistryTrop_BrSALC ', 'GCHPchem', -# 'BudgetChemistryTrop_BrSALA ', 'GCHPchem', -# 'BudgetChemistryTrop_BrO ', 'GCHPchem', -# 'BudgetChemistryTrop_BrNO3 ', 'GCHPchem', -# 'BudgetChemistryTrop_BrNO2 ', 'GCHPchem', -# 'BudgetChemistryTrop_BrCl ', 'GCHPchem', -# 'BudgetChemistryTrop_Br2 ', 'GCHPchem', -# 'BudgetChemistryTrop_Br ', 'GCHPchem', -# 'BudgetChemistryTrop_BENZ ', 'GCHPchem', -# 'BudgetChemistryTrop_BCPO ', 'GCHPchem', -# 'BudgetChemistryTrop_BCPI ', 'GCHPchem', -# 'BudgetChemistryTrop_ATOOH ', 'GCHPchem', -# 'BudgetChemistryTrop_ALK4 ', 'GCHPchem', -# 'BudgetChemistryTrop_ALD2 ', 'GCHPchem', -# 'BudgetChemistryTrop_AERI ', 'GCHPchem', -# 'BudgetChemistryTrop_ACTA ', 'GCHPchem', -# 'BudgetChemistryTrop_ACET ', 'GCHPchem', -# #'BudgetChemistryTrop_TSOG3 ', 'GCHPchem', -# #'BudgetChemistryTrop_TSOG2 ', 'GCHPchem', -# #'BudgetChemistryTrop_TSOG1 ', 'GCHPchem', -# #'BudgetChemistryTrop_TSOG0 ', 'GCHPchem', -# #'BudgetChemistryTrop_TSOA3 ', 'GCHPchem', -# #'BudgetChemistryTrop_TSOA2 ', 'GCHPchem', -# #'BudgetChemistryTrop_TSOA1 ', 'GCHPchem', -# #'BudgetChemistryTrop_TSOA0 ', 'GCHPchem', -# #'BudgetChemistryTrop_ASOG3 ', 'GCHPchem', -# #'BudgetChemistryTrop_ASOG2 ', 'GCHPchem', -# #'BudgetChemistryTrop_ASOG1 ', 'GCHPchem', -# #'BudgetChemistryTrop_ASOAN ', 'GCHPchem', -# #'BudgetChemistryTrop_ASOA3 ', 'GCHPchem', -# #'BudgetChemistryTrop_ASOA2 ', 'GCHPchem', -# #'BudgetChemistryTrop_ASOA1 ', 'GCHPchem', -# 'BudgetChemistryFull_XYLE ', 'GCHPchem', -# 'BudgetChemistryFull_TOLU ', 'GCHPchem', -# 'BudgetChemistryFull_SOAS ', 'GCHPchem', -# 'BudgetChemistryFull_SOAP ', 'GCHPchem', -# 'BudgetChemistryFull_SOAIE ', 'GCHPchem', -# 'BudgetChemistryFull_SOAGX ', 'GCHPchem', -# 'BudgetChemistryFull_SO4s ', 'GCHPchem', -# 'BudgetChemistryFull_SO4 ', 'GCHPchem', -# 'BudgetChemistryFull_SO2 ', 'GCHPchem', -# 'BudgetChemistryFull_SALCCL ', 'GCHPchem', -# 'BudgetChemistryFull_SALCAL ', 'GCHPchem', -# 'BudgetChemistryFull_SALC ', 'GCHPchem', -# 'BudgetChemistryFull_SALACL ', 'GCHPchem', -# 'BudgetChemistryFull_SALAAL ', 'GCHPchem', -# 'BudgetChemistryFull_SALA ', 'GCHPchem', -# 'BudgetChemistryFull_RP ', 'GCHPchem', -# 'BudgetChemistryFull_RIPD ', 'GCHPchem', -# 'BudgetChemistryFull_RIPC ', 'GCHPchem', -# 'BudgetChemistryFull_RIPB ', 'GCHPchem', -# 'BudgetChemistryFull_RIPA ', 'GCHPchem', -# 'BudgetChemistryFull_RCHO ', 'GCHPchem', -# 'BudgetChemistryFull_RB3P ', 'GCHPchem', -# 'BudgetChemistryFull_RA3P ', 'GCHPchem', -# 'BudgetChemistryFull_R4P ', 'GCHPchem', -# 'BudgetChemistryFull_R4N2 ', 'GCHPchem', -# 'BudgetChemistryFull_PYAC ', 'GCHPchem', -# 'BudgetChemistryFull_PRPN ', 'GCHPchem', -# 'BudgetChemistryFull_PRPE ', 'GCHPchem', -# 'BudgetChemistryFull_PROPNN ', 'GCHPchem', -# 'BudgetChemistryFull_PPN ', 'GCHPchem', -# 'BudgetChemistryFull_PP ', 'GCHPchem', -# 'BudgetChemistryFull_PIP ', 'GCHPchem', -# 'BudgetChemistryFull_pFe ', 'GCHPchem', -# 'BudgetChemistryFull_PAN ', 'GCHPchem', -# 'BudgetChemistryFull_OIO ', 'GCHPchem', -# 'BudgetChemistryFull_OCS ', 'GCHPchem', -# 'BudgetChemistryFull_OCPO ', 'GCHPchem', -# 'BudgetChemistryFull_OCPI ', 'GCHPchem', -# 'BudgetChemistryFull_OClO ', 'GCHPchem', -# 'BudgetChemistryFull_O3 ', 'GCHPchem', -# 'BudgetChemistryFull_NPRNO3 ', 'GCHPchem', -# 'BudgetChemistryFull_NO3 ', 'GCHPchem', -# 'BudgetChemistryFull_NO2 ', 'GCHPchem', -# 'BudgetChemistryFull_NO ', 'GCHPchem', -# 'BudgetChemistryFull_NITs ', 'GCHPchem', -# 'BudgetChemistryFull_NIT ', 'GCHPchem', -# 'BudgetChemistryFull_NH4 ', 'GCHPchem', -# 'BudgetChemistryFull_NH3 ', 'GCHPchem', -# 'BudgetChemistryFull_N2O5 ', 'GCHPchem', -# 'BudgetChemistryFull_N2O ', 'GCHPchem', -# 'BudgetChemistryFull_MVKPC ', 'GCHPchem', -# 'BudgetChemistryFull_MVKN ', 'GCHPchem', -# 'BudgetChemistryFull_MVKHP ', 'GCHPchem', -# 'BudgetChemistryFull_MVKHCB ', 'GCHPchem', -# 'BudgetChemistryFull_MVKHC ', 'GCHPchem', -# 'BudgetChemistryFull_MVKDH ', 'GCHPchem', -# 'BudgetChemistryFull_MVK ', 'GCHPchem', -# 'BudgetChemistryFull_MTPO ', 'GCHPchem', -# 'BudgetChemistryFull_MTPA ', 'GCHPchem', -# 'BudgetChemistryFull_MSA ', 'GCHPchem', -# 'BudgetChemistryFull_MPN ', 'GCHPchem', -# 'BudgetChemistryFull_MPAN ', 'GCHPchem', -# 'BudgetChemistryFull_MP ', 'GCHPchem', -# 'BudgetChemistryFull_MONITU ', 'GCHPchem', -# 'BudgetChemistryFull_MONITS ', 'GCHPchem', -# 'BudgetChemistryFull_MONITA ', 'GCHPchem', -# 'BudgetChemistryFull_MOH ', 'GCHPchem', -# 'BudgetChemistryFull_MGLY ', 'GCHPchem', -# 'BudgetChemistryFull_MENO3 ', 'GCHPchem', -# 'BudgetChemistryFull_MEK ', 'GCHPchem', -# 'BudgetChemistryFull_MCRHP ', 'GCHPchem', -# 'BudgetChemistryFull_MCRHNB ', 'GCHPchem', -# 'BudgetChemistryFull_MCRHN ', 'GCHPchem', -# 'BudgetChemistryFull_MCRENOL ', 'GCHPchem', -# 'BudgetChemistryFull_MCRDH ', 'GCHPchem', -# 'BudgetChemistryFull_MAP ', 'GCHPchem', -# 'BudgetChemistryFull_MACR1OOH ', 'GCHPchem', -# 'BudgetChemistryFull_MACR ', 'GCHPchem', -# 'BudgetChemistryFull_LVOCOA ', 'GCHPchem', -# 'BudgetChemistryFull_LVOC ', 'GCHPchem', -# 'BudgetChemistryFull_LIMO ', 'GCHPchem', -# 'BudgetChemistryFull_ITHN ', 'GCHPchem', -# 'BudgetChemistryFull_ITCN ', 'GCHPchem', -# 'BudgetChemistryFull_ISOP ', 'GCHPchem', -# 'BudgetChemistryFull_ISALC ', 'GCHPchem', -# 'BudgetChemistryFull_ISALA ', 'GCHPchem', -# 'BudgetChemistryFull_IPRNO3 ', 'GCHPchem', -# 'BudgetChemistryFull_IONO2 ', 'GCHPchem', -# 'BudgetChemistryFull_IONO ', 'GCHPchem', -# 'BudgetChemistryFull_IONITA ', 'GCHPchem', -# 'BudgetChemistryFull_IO ', 'GCHPchem', -# 'BudgetChemistryFull_INPD ', 'GCHPchem', -# 'BudgetChemistryFull_INPB ', 'GCHPchem', -# 'BudgetChemistryFull_INO ', 'GCHPchem', -# 'BudgetChemistryFull_INDIOL ', 'GCHPchem', -# 'BudgetChemistryFull_IHN4 ', 'GCHPchem', -# 'BudgetChemistryFull_IHN3 ', 'GCHPchem', -# 'BudgetChemistryFull_IHN2 ', 'GCHPchem', -# 'BudgetChemistryFull_IHN1 ', 'GCHPchem', -# 'BudgetChemistryFull_IEPOXD ', 'GCHPchem', -# 'BudgetChemistryFull_IEPOXB ', 'GCHPchem', -# 'BudgetChemistryFull_IEPOXA ', 'GCHPchem', -# 'BudgetChemistryFull_IDN ', 'GCHPchem', -# 'BudgetChemistryFull_IDHPE ', 'GCHPchem', -# 'BudgetChemistryFull_IDHDP ', 'GCHPchem', -# 'BudgetChemistryFull_IDCHP ', 'GCHPchem', -# 'BudgetChemistryFull_IDC ', 'GCHPchem', -# 'BudgetChemistryFull_ICPDH ', 'GCHPchem', -# 'BudgetChemistryFull_ICN ', 'GCHPchem', -# 'BudgetChemistryFull_ICl ', 'GCHPchem', -# 'BudgetChemistryFull_ICHE ', 'GCHPchem', -# 'BudgetChemistryFull_IBr ', 'GCHPchem', -# 'BudgetChemistryFull_I2O4 ', 'GCHPchem', -# 'BudgetChemistryFull_I2O3 ', 'GCHPchem', -# 'BudgetChemistryFull_I2O2 ', 'GCHPchem', -# 'BudgetChemistryFull_I2 ', 'GCHPchem', -# 'BudgetChemistryFull_I ', 'GCHPchem', -# 'BudgetChemistryFull_HPETHNL ', 'GCHPchem', -# 'BudgetChemistryFull_HPALD4 ', 'GCHPchem', -# 'BudgetChemistryFull_HPALD3 ', 'GCHPchem', -# 'BudgetChemistryFull_HPALD2 ', 'GCHPchem', -# 'BudgetChemistryFull_HPALD1 ', 'GCHPchem', -# 'BudgetChemistryFull_HONIT ', 'GCHPchem', -# 'BudgetChemistryFull_HOI ', 'GCHPchem', -# 'BudgetChemistryFull_HOCl ', 'GCHPchem', -# 'BudgetChemistryFull_HOBr ', 'GCHPchem', -# 'BudgetChemistryFull_HNO4 ', 'GCHPchem', -# 'BudgetChemistryFull_HNO3 ', 'GCHPchem', -# 'BudgetChemistryFull_HNO2 ', 'GCHPchem', -# 'BudgetChemistryFull_HMS ', 'GCHPchem', -# 'BudgetChemistryFull_HMML ', 'GCHPchem', -# 'BudgetChemistryFull_HMHP ', 'GCHPchem', -# 'BudgetChemistryFull_HI ', 'GCHPchem', -# 'BudgetChemistryFull_HCOOH ', 'GCHPchem', -# 'BudgetChemistryFull_HCl ', 'GCHPchem', -# 'BudgetChemistryFull_HCFC22 ', 'GCHPchem', -# 'BudgetChemistryFull_HCFC142b ', 'GCHPchem', -# 'BudgetChemistryFull_HCFC141b ', 'GCHPchem', -# 'BudgetChemistryFull_HCFC123 ', 'GCHPchem', -# 'BudgetChemistryFull_HC5A ', 'GCHPchem', -# 'BudgetChemistryFull_HBr ', 'GCHPchem', -# 'BudgetChemistryFull_HAC ', 'GCHPchem', -# 'BudgetChemistryFull_H2O2 ', 'GCHPchem', -# 'BudgetChemistryFull_H2O ', 'GCHPchem', -# 'BudgetChemistryFull_H2402 ', 'GCHPchem', -# 'BudgetChemistryFull_H1301 ', 'GCHPchem', -# 'BudgetChemistryFull_H1211 ', 'GCHPchem', -# 'BudgetChemistryFull_GLYX ', 'GCHPchem', -# 'BudgetChemistryFull_GLYC ', 'GCHPchem', -# 'BudgetChemistryFull_ETP ', 'GCHPchem', -# 'BudgetChemistryFull_ETNO3 ', 'GCHPchem', -# 'BudgetChemistryFull_ETHP ', 'GCHPchem', -# 'BudgetChemistryFull_ETHN ', 'GCHPchem', -# 'BudgetChemistryFull_ETHLN ', 'GCHPchem', -# 'BudgetChemistryFull_EOH ', 'GCHPchem', -# 'BudgetChemistryFull_DST4 ', 'GCHPchem', -# 'BudgetChemistryFull_DST3 ', 'GCHPchem', -# 'BudgetChemistryFull_DST2 ', 'GCHPchem', -# 'BudgetChemistryFull_DST1 ', 'GCHPchem', -# 'BudgetChemistryFull_DMS ', 'GCHPchem', -# 'BudgetChemistryFull_CO ', 'GCHPchem', -# 'BudgetChemistryFull_ClOO ', 'GCHPchem', -# 'BudgetChemistryFull_ClO ', 'GCHPchem', -# 'BudgetChemistryFull_ClNO3 ', 'GCHPchem', -# 'BudgetChemistryFull_ClNO2 ', 'GCHPchem', -# 'BudgetChemistryFull_Cl2O2 ', 'GCHPchem', -# 'BudgetChemistryFull_Cl2 ', 'GCHPchem', -# 'BudgetChemistryFull_Cl ', 'GCHPchem', -# 'BudgetChemistryFull_CHCl3 ', 'GCHPchem', -# 'BudgetChemistryFull_CHBr3 ', 'GCHPchem', -# 'BudgetChemistryFull_CH4 ', 'GCHPchem', -# 'BudgetChemistryFull_CH3I ', 'GCHPchem', -# 'BudgetChemistryFull_CH3Cl ', 'GCHPchem', -# 'BudgetChemistryFull_CH3CCl3 ', 'GCHPchem', -# 'BudgetChemistryFull_CH3Br ', 'GCHPchem', -# 'BudgetChemistryFull_CH2O ', 'GCHPchem', -# 'BudgetChemistryFull_CH2ICl ', 'GCHPchem', -# 'BudgetChemistryFull_CH2IBr ', 'GCHPchem', -# 'BudgetChemistryFull_CH2I2 ', 'GCHPchem', -# 'BudgetChemistryFull_CH2Cl2 ', 'GCHPchem', -# 'BudgetChemistryFull_CH2Br2 ', 'GCHPchem', -# 'BudgetChemistryFull_CFC12 ', 'GCHPchem', -# 'BudgetChemistryFull_CFC115 ', 'GCHPchem', -# 'BudgetChemistryFull_CFC114 ', 'GCHPchem', -# 'BudgetChemistryFull_CFC113 ', 'GCHPchem', -# 'BudgetChemistryFull_CFC11 ', 'GCHPchem', -# 'BudgetChemistryFull_CCl4 ', 'GCHPchem', -# 'BudgetChemistryFull_C3H8 ', 'GCHPchem', -# 'BudgetChemistryFull_C2H6 ', 'GCHPchem', -# 'BudgetChemistryFull_BrSALC ', 'GCHPchem', -# 'BudgetChemistryFull_BrSALA ', 'GCHPchem', -# 'BudgetChemistryFull_BrO ', 'GCHPchem', -# 'BudgetChemistryFull_BrNO3 ', 'GCHPchem', -# 'BudgetChemistryFull_BrNO2 ', 'GCHPchem', -# 'BudgetChemistryFull_BrCl ', 'GCHPchem', -# 'BudgetChemistryFull_Br2 ', 'GCHPchem', -# 'BudgetChemistryFull_Br ', 'GCHPchem', -# 'BudgetChemistryFull_BENZ ', 'GCHPchem', -# 'BudgetChemistryFull_BCPO ', 'GCHPchem', -# 'BudgetChemistryFull_BCPI ', 'GCHPchem', -# 'BudgetChemistryFull_ATOOH ', 'GCHPchem', -# 'BudgetChemistryFull_ALK4 ', 'GCHPchem', -# 'BudgetChemistryFull_ALD2 ', 'GCHPchem', -# 'BudgetChemistryFull_AERI ', 'GCHPchem', -# 'BudgetChemistryFull_ACTA ', 'GCHPchem', -# 'BudgetChemistryFull_ACET ', 'GCHPchem', -# #'BudgetChemistryFull_TSOG3 ', 'GCHPchem', -# #'BudgetChemistryFull_TSOG2 ', 'GCHPchem', -# #'BudgetChemistryFull_TSOG1 ', 'GCHPchem', -# #'BudgetChemistryFull_TSOG0 ', 'GCHPchem', -# #'BudgetChemistryFull_TSOA3 ', 'GCHPchem', -# #'BudgetChemistryFull_TSOA2 ', 'GCHPchem', -# #'BudgetChemistryFull_TSOA1 ', 'GCHPchem', -# #'BudgetChemistryFull_TSOA0 ', 'GCHPchem', -# #'BudgetChemistryFull_ASOG3 ', 'GCHPchem', -# #'BudgetChemistryFull_ASOG2 ', 'GCHPchem', -# #'BudgetChemistryFull_ASOG1 ', 'GCHPchem', -# #'BudgetChemistryFull_ASOAN ', 'GCHPchem', -# #'BudgetChemistryFull_ASOA3 ', 'GCHPchem', -# #'BudgetChemistryFull_ASOA2 ', 'GCHPchem', -# #'BudgetChemistryFull_ASOA1 ', 'GCHPchem', -# 'BudgetConvectionPBL_XYLE ', 'GCHPchem', -# 'BudgetConvectionPBL_TOLU ', 'GCHPchem', -# 'BudgetConvectionPBL_SOAS ', 'GCHPchem', -# 'BudgetConvectionPBL_SOAP ', 'GCHPchem', -# 'BudgetConvectionPBL_SOAIE ', 'GCHPchem', -# 'BudgetConvectionPBL_SOAGX ', 'GCHPchem', -# 'BudgetConvectionPBL_SO4s ', 'GCHPchem', -# 'BudgetConvectionPBL_SO4 ', 'GCHPchem', -# 'BudgetConvectionPBL_SO2 ', 'GCHPchem', -# 'BudgetConvectionPBL_SALCCl ', 'GCHPchem', -# 'BudgetConvectionPBL_SALCAL ', 'GCHPchem', -# 'BudgetConvectionPBL_SALC ', 'GCHPchem', -# 'BudgetConvectionPBL_SALACl ', 'GCHPchem', -# 'BudgetConvectionPBL_SALAAL ', 'GCHPchem', -# 'BudgetConvectionPBL_SALA ', 'GCHPchem', -# 'BudgetConvectionPBL_RP ', 'GCHPchem', -# 'BudgetConvectionPBL_RIPD ', 'GCHPchem', -# 'BudgetConvectionPBL_RIPC ', 'GCHPchem', -# 'BudgetConvectionPBL_RIPB ', 'GCHPchem', -# 'BudgetConvectionPBL_RIPA ', 'GCHPchem', -# 'BudgetConvectionPBL_RCHO ', 'GCHPchem', -# 'BudgetConvectionPBL_RB3P ', 'GCHPchem', -# 'BudgetConvectionPBL_RA3P ', 'GCHPchem', -# 'BudgetConvectionPBL_R4P ', 'GCHPchem', -# 'BudgetConvectionPBL_R4N2 ', 'GCHPchem', -# 'BudgetConvectionPBL_PYAC ', 'GCHPchem', -# 'BudgetConvectionPBL_PRPN ', 'GCHPchem', -# 'BudgetConvectionPBL_PRPE ', 'GCHPchem', -# 'BudgetConvectionPBL_PROPNN ', 'GCHPchem', -# 'BudgetConvectionPBL_PPN ', 'GCHPchem', -# 'BudgetConvectionPBL_PP ', 'GCHPchem', -# 'BudgetConvectionPBL_PIP ', 'GCHPchem', -# 'BudgetConvectionPBL_pFe ', 'GCHPchem', -# 'BudgetConvectionPBL_PAN ', 'GCHPchem', -# 'BudgetConvectionPBL_OIO ', 'GCHPchem', -# 'BudgetConvectionPBL_OCS ', 'GCHPchem', -# 'BudgetConvectionPBL_OCPO ', 'GCHPchem', -# 'BudgetConvectionPBL_OCPI ', 'GCHPchem', -# 'BudgetConvectionPBL_OClO ', 'GCHPchem', -# 'BudgetConvectionPBL_O3 ', 'GCHPchem', -# 'BudgetConvectionPBL_NPRNO3 ', 'GCHPchem', -# 'BudgetConvectionPBL_NO3 ', 'GCHPchem', -# 'BudgetConvectionPBL_NO2 ', 'GCHPchem', -# 'BudgetConvectionPBL_NO ', 'GCHPchem', -# 'BudgetConvectionPBL_NITs ', 'GCHPchem', -# 'BudgetConvectionPBL_NIT ', 'GCHPchem', -# 'BudgetConvectionPBL_NH4 ', 'GCHPchem', -# 'BudgetConvectionPBL_NH3 ', 'GCHPchem', -# 'BudgetConvectionPBL_N2O5 ', 'GCHPchem', -# 'BudgetConvectionPBL_N2O ', 'GCHPchem', -# 'BudgetConvectionPBL_MVKPC ', 'GCHPchem', -# 'BudgetConvectionPBL_MVKN ', 'GCHPchem', -# 'BudgetConvectionPBL_MVKHP ', 'GCHPchem', -# 'BudgetConvectionPBL_MVKHCB ', 'GCHPchem', -# 'BudgetConvectionPBL_MVKHC ', 'GCHPchem', -# 'BudgetConvectionPBL_MVKDH ', 'GCHPchem', -# 'BudgetConvectionPBL_MVK ', 'GCHPchem', -# 'BudgetConvectionPBL_MTPO ', 'GCHPchem', -# 'BudgetConvectionPBL_MTPA ', 'GCHPchem', -# 'BudgetConvectionPBL_MSA ', 'GCHPchem', -# 'BudgetConvectionPBL_MPN ', 'GCHPchem', -# 'BudgetConvectionPBL_MPAN ', 'GCHPchem', -# 'BudgetConvectionPBL_MP ', 'GCHPchem', -# 'BudgetConvectionPBL_MONITU ', 'GCHPchem', -# 'BudgetConvectionPBL_MONITS ', 'GCHPchem', -# 'BudgetConvectionPBL_MONITA ', 'GCHPchem', -# 'BudgetConvectionPBL_MOH ', 'GCHPchem', -# 'BudgetConvectionPBL_MGLY ', 'GCHPchem', -# 'BudgetConvectionPBL_MENO3 ', 'GCHPchem', -# 'BudgetConvectionPBL_MEK ', 'GCHPchem', -# 'BudgetConvectionPBL_MCRHP ', 'GCHPchem', -# 'BudgetConvectionPBL_MCRHNB ', 'GCHPchem', -# 'BudgetConvectionPBL_MCRHN ', 'GCHPchem', -# 'BudgetConvectionPBL_MCRENOL ', 'GCHPchem', -# 'BudgetConvectionPBL_MCRDH ', 'GCHPchem', -# 'BudgetConvectionPBL_MAP ', 'GCHPchem', -# 'BudgetConvectionPBL_MACR1OOH ', 'GCHPchem', -# 'BudgetConvectionPBL_MACR ', 'GCHPchem', -# 'BudgetConvectionPBL_LVOCOA ', 'GCHPchem', -# 'BudgetConvectionPBL_LVOC ', 'GCHPchem', -# 'BudgetConvectionPBL_LIMO ', 'GCHPchem', -# 'BudgetConvectionPBL_ITHN ', 'GCHPchem', -# 'BudgetConvectionPBL_ITCN ', 'GCHPchem', -# 'BudgetConvectionPBL_ISOP ', 'GCHPchem', -# 'BudgetConvectionPBL_ISALC ', 'GCHPchem', -# 'BudgetConvectionPBL_ISALA ', 'GCHPchem', -# 'BudgetConvectionPBL_IPRNO3 ', 'GCHPchem', -# 'BudgetConvectionPBL_IONO2 ', 'GCHPchem', -# 'BudgetConvectionPBL_IONO ', 'GCHPchem', -# 'BudgetConvectionPBL_IONITA ', 'GCHPchem', -# 'BudgetConvectionPBL_IO ', 'GCHPchem', -# 'BudgetConvectionPBL_INPD ', 'GCHPchem', -# 'BudgetConvectionPBL_INPB ', 'GCHPchem', -# 'BudgetConvectionPBL_INO ', 'GCHPchem', -# 'BudgetConvectionPBL_INDIOL ', 'GCHPchem', -# 'BudgetConvectionPBL_IHN4 ', 'GCHPchem', -# 'BudgetConvectionPBL_IHN3 ', 'GCHPchem', -# 'BudgetConvectionPBL_IHN2 ', 'GCHPchem', -# 'BudgetConvectionPBL_IHN1 ', 'GCHPchem', -# 'BudgetConvectionPBL_IEPOXD ', 'GCHPchem', -# 'BudgetConvectionPBL_IEPOXB ', 'GCHPchem', -# 'BudgetConvectionPBL_IEPOXA ', 'GCHPchem', -# 'BudgetConvectionPBL_IDN ', 'GCHPchem', -# 'BudgetConvectionPBL_IDHPE ', 'GCHPchem', -# 'BudgetConvectionPBL_IDHDP ', 'GCHPchem', -# 'BudgetConvectionPBL_IDCHP ', 'GCHPchem', -# 'BudgetConvectionPBL_IDC ', 'GCHPchem', -# 'BudgetConvectionPBL_ICPDH ', 'GCHPchem', -# 'BudgetConvectionPBL_ICN ', 'GCHPchem', -# 'BudgetConvectionPBL_ICl ', 'GCHPchem', -# 'BudgetConvectionPBL_ICHE ', 'GCHPchem', -# 'BudgetConvectionPBL_IBr ', 'GCHPchem', -# 'BudgetConvectionPBL_I2O4 ', 'GCHPchem', -# 'BudgetConvectionPBL_I2O3 ', 'GCHPchem', -# 'BudgetConvectionPBL_I2O2 ', 'GCHPchem', -# 'BudgetConvectionPBL_I2 ', 'GCHPchem', -# 'BudgetConvectionPBL_I ', 'GCHPchem', -# 'BudgetConvectionPBL_HPETHNL ', 'GCHPchem', -# 'BudgetConvectionPBL_HPALD4 ', 'GCHPchem', -# 'BudgetConvectionPBL_HPALD3 ', 'GCHPchem', -# 'BudgetConvectionPBL_HPALD2 ', 'GCHPchem', -# 'BudgetConvectionPBL_HPALD1 ', 'GCHPchem', -# 'BudgetConvectionPBL_HONIT ', 'GCHPchem', -# 'BudgetConvectionPBL_HOI ', 'GCHPchem', -# 'BudgetConvectionPBL_HOCl ', 'GCHPchem', -# 'BudgetConvectionPBL_HOBr ', 'GCHPchem', -# 'BudgetConvectionPBL_HNO4 ', 'GCHPchem', -# 'BudgetConvectionPBL_HNO3 ', 'GCHPchem', -# 'BudgetConvectionPBL_HNO2 ', 'GCHPchem', -# 'BudgetConvectionPBL_HMS ', 'GCHPchem', -# 'BudgetConvectionPBL_HMML ', 'GCHPchem', -# 'BudgetConvectionPBL_HMHP ', 'GCHPchem', -# 'BudgetConvectionPBL_HI ', 'GCHPchem', -# 'BudgetConvectionPBL_HCOOH ', 'GCHPchem', -# 'BudgetConvectionPBL_HCl ', 'GCHPchem', -# 'BudgetConvectionPBL_HCFC22 ', 'GCHPchem', -# 'BudgetConvectionPBL_HCFC142b ', 'GCHPchem', -# 'BudgetConvectionPBL_HCFC141b ', 'GCHPchem', -# 'BudgetConvectionPBL_HCFC123 ', 'GCHPchem', -# 'BudgetConvectionPBL_HC5A ', 'GCHPchem', -# 'BudgetConvectionPBL_HBr ', 'GCHPchem', -# 'BudgetConvectionPBL_HAC ', 'GCHPchem', -# 'BudgetConvectionPBL_H2O2 ', 'GCHPchem', -# 'BudgetConvectionPBL_H2O ', 'GCHPchem', -# 'BudgetConvectionPBL_H2402 ', 'GCHPchem', -# 'BudgetConvectionPBL_H1301 ', 'GCHPchem', -# 'BudgetConvectionPBL_H1211 ', 'GCHPchem', -# 'BudgetConvectionPBL_GLYX ', 'GCHPchem', -# 'BudgetConvectionPBL_GLYC ', 'GCHPchem', -# 'BudgetConvectionPBL_ETP ', 'GCHPchem', -# 'BudgetConvectionPBL_ETNO3 ', 'GCHPchem', -# 'BudgetConvectionPBL_ETHP ', 'GCHPchem', -# 'BudgetConvectionPBL_ETHN ', 'GCHPchem', -# 'BudgetConvectionPBL_ETHLN ', 'GCHPchem', -# 'BudgetConvectionPBL_EOH ', 'GCHPchem', -# 'BudgetConvectionPBL_DST4 ', 'GCHPchem', -# 'BudgetConvectionPBL_DST3 ', 'GCHPchem', -# 'BudgetConvectionPBL_DST2 ', 'GCHPchem', -# 'BudgetConvectionPBL_DST1 ', 'GCHPchem', -# 'BudgetConvectionPBL_DMS ', 'GCHPchem', -# 'BudgetConvectionPBL_CO ', 'GCHPchem', -# 'BudgetConvectionPBL_ClOO ', 'GCHPchem', -# 'BudgetConvectionPBL_ClO ', 'GCHPchem', -# 'BudgetConvectionPBL_ClNO3 ', 'GCHPchem', -# 'BudgetConvectionPBL_ClNO2 ', 'GCHPchem', -# 'BudgetConvectionPBL_Cl2O2 ', 'GCHPchem', -# 'BudgetConvectionPBL_Cl2 ', 'GCHPchem', -# 'BudgetConvectionPBL_Cl ', 'GCHPchem', -# 'BudgetConvectionPBL_CHCl3 ', 'GCHPchem', -# 'BudgetConvectionPBL_CHBr3 ', 'GCHPchem', -# 'BudgetConvectionPBL_CH4 ', 'GCHPchem', -# 'BudgetConvectionPBL_CH3I ', 'GCHPchem', -# 'BudgetConvectionPBL_CH3Cl ', 'GCHPchem', -# 'BudgetConvectionPBL_CH3CCl3 ', 'GCHPchem', -# 'BudgetConvectionPBL_CH3Br ', 'GCHPchem', -# 'BudgetConvectionPBL_CH2O ', 'GCHPchem', -# 'BudgetConvectionPBL_CH2ICl ', 'GCHPchem', -# 'BudgetConvectionPBL_CH2IBr ', 'GCHPchem', -# 'BudgetConvectionPBL_CH2I2 ', 'GCHPchem', -# 'BudgetConvectionPBL_CH2Cl2 ', 'GCHPchem', -# 'BudgetConvectionPBL_CH2Br2 ', 'GCHPchem', -# 'BudgetConvectionPBL_CFC12 ', 'GCHPchem', -# 'BudgetConvectionPBL_CFC115 ', 'GCHPchem', -# 'BudgetConvectionPBL_CFC114 ', 'GCHPchem', -# 'BudgetConvectionPBL_CFC113 ', 'GCHPchem', -# 'BudgetConvectionPBL_CFC11 ', 'GCHPchem', -# 'BudgetConvectionPBL_CCl4 ', 'GCHPchem', -# 'BudgetConvectionPBL_C3H8 ', 'GCHPchem', -# 'BudgetConvectionPBL_C2H6 ', 'GCHPchem', -# 'BudgetConvectionPBL_C2H4 ', 'GCHPchem', -# 'BudgetConvectionPBL_C2H2 ', 'GCHPchem', -# 'BudgetConvectionPBL_BrSALC ', 'GCHPchem', -# 'BudgetConvectionPBL_BrSALA ', 'GCHPchem', -# 'BudgetConvectionPBL_BrO ', 'GCHPchem', -# 'BudgetConvectionPBL_BrNO3 ', 'GCHPchem', -# 'BudgetConvectionPBL_BrNO2 ', 'GCHPchem', -# 'BudgetConvectionPBL_BrCl ', 'GCHPchem', -# 'BudgetConvectionPBL_Br2 ', 'GCHPchem', -# 'BudgetConvectionPBL_Br ', 'GCHPchem', -# 'BudgetConvectionPBL_BENZ ', 'GCHPchem', -# 'BudgetConvectionPBL_BCPO ', 'GCHPchem', -# 'BudgetConvectionPBL_BCPI ', 'GCHPchem', -# 'BudgetConvectionPBL_ATOOH ', 'GCHPchem', -# 'BudgetConvectionPBL_ALK4 ', 'GCHPchem', -# 'BudgetConvectionPBL_ALD2 ', 'GCHPchem', -# 'BudgetConvectionPBL_AERI ', 'GCHPchem', -# 'BudgetConvectionPBL_ACTA ', 'GCHPchem', -# 'BudgetConvectionPBL_ACET ', 'GCHPchem', -# #'BudgetConvectionPBL_TSOG3 ', 'GCHPchem', -# #'BudgetConvectionPBL_TSOG2 ', 'GCHPchem', -# #'BudgetConvectionPBL_TSOG1 ', 'GCHPchem', -# #'BudgetConvectionPBL_TSOG0 ', 'GCHPchem', -# #'BudgetConvectionPBL_TSOA3 ', 'GCHPchem', -# #'BudgetConvectionPBL_TSOA2 ', 'GCHPchem', -# #'BudgetConvectionPBL_TSOA1 ', 'GCHPchem', -# #'BudgetConvectionPBL_TSOA0 ', 'GCHPchem', -# #'BudgetConvectionPBL_ASOG3 ', 'GCHPchem', -# #'BudgetConvectionPBL_ASOG2 ', 'GCHPchem', -# #'BudgetConvectionPBL_ASOG1 ', 'GCHPchem', -# #'BudgetConvectionPBL_ASOAN ', 'GCHPchem', -# #'BudgetConvectionPBL_ASOA3 ', 'GCHPchem', -# #'BudgetConvectionPBL_ASOA2 ', 'GCHPchem', -# #'BudgetConvectionPBL_ASOA1 ', 'GCHPchem', -# 'BudgetConvectionTrop_XYLE ', 'GCHPchem', -# 'BudgetConvectionTrop_TOLU ', 'GCHPchem', -# 'BudgetConvectionTrop_SOAS ', 'GCHPchem', -# 'BudgetConvectionTrop_SOAP ', 'GCHPchem', -# 'BudgetConvectionTrop_SOAIE ', 'GCHPchem', -# 'BudgetConvectionTrop_SOAGX ', 'GCHPchem', -# 'BudgetConvectionTrop_SO4s ', 'GCHPchem', -# 'BudgetConvectionTrop_SO4 ', 'GCHPchem', -# 'BudgetConvectionTrop_SO2 ', 'GCHPchem', -# 'BudgetConvectionTrop_SALCCL ', 'GCHPchem', -# 'BudgetConvectionTrop_SALCAL ', 'GCHPchem', -# 'BudgetConvectionTrop_SALC ', 'GCHPchem', -# 'BudgetConvectionTrop_SALACL ', 'GCHPchem', -# 'BudgetConvectionTrop_SALAAL ', 'GCHPchem', -# 'BudgetConvectionTrop_SALA ', 'GCHPchem', -# 'BudgetConvectionTrop_RP ', 'GCHPchem', -# 'BudgetConvectionTrop_RIPD ', 'GCHPchem', -# 'BudgetConvectionTrop_RIPC ', 'GCHPchem', -# 'BudgetConvectionTrop_RIPB ', 'GCHPchem', -# 'BudgetConvectionTrop_RIPA ', 'GCHPchem', -# 'BudgetConvectionTrop_RCHO ', 'GCHPchem', -# 'BudgetConvectionTrop_RB3P ', 'GCHPchem', -# 'BudgetConvectionTrop_RA3P ', 'GCHPchem', -# 'BudgetConvectionTrop_R4P ', 'GCHPchem', -# 'BudgetConvectionTrop_R4N2 ', 'GCHPchem', -# 'BudgetConvectionTrop_PYAC ', 'GCHPchem', -# 'BudgetConvectionTrop_PRPN ', 'GCHPchem', -# 'BudgetConvectionTrop_PRPE ', 'GCHPchem', -# 'BudgetConvectionTrop_PROPNN ', 'GCHPchem', -# 'BudgetConvectionTrop_PPN ', 'GCHPchem', -# 'BudgetConvectionTrop_PP ', 'GCHPchem', -# 'BudgetConvectionTrop_PIP ', 'GCHPchem', -# 'BudgetConvectionTrop_pFe ', 'GCHPchem', -# 'BudgetConvectionTrop_PAN ', 'GCHPchem', -# 'BudgetConvectionTrop_OIO ', 'GCHPchem', -# 'BudgetConvectionTrop_OCS ', 'GCHPchem', -# 'BudgetConvectionTrop_OCPO ', 'GCHPchem', -# 'BudgetConvectionTrop_OCPI ', 'GCHPchem', -# 'BudgetConvectionTrop_OClO ', 'GCHPchem', -# 'BudgetConvectionTrop_O3 ', 'GCHPchem', -# 'BudgetConvectionTrop_NPRNO3 ', 'GCHPchem', -# 'BudgetConvectionTrop_NO3 ', 'GCHPchem', -# 'BudgetConvectionTrop_NO2 ', 'GCHPchem', -# 'BudgetConvectionTrop_NO ', 'GCHPchem', -# 'BudgetConvectionTrop_NITs ', 'GCHPchem', -# 'BudgetConvectionTrop_NIT ', 'GCHPchem', -# 'BudgetConvectionTrop_NH4 ', 'GCHPchem', -# 'BudgetConvectionTrop_NH3 ', 'GCHPchem', -# 'BudgetConvectionTrop_N2O5 ', 'GCHPchem', -# 'BudgetConvectionTrop_N2O ', 'GCHPchem', -# 'BudgetConvectionTrop_MVKPC ', 'GCHPchem', -# 'BudgetConvectionTrop_MVKN ', 'GCHPchem', -# 'BudgetConvectionTrop_MVKHP ', 'GCHPchem', -# 'BudgetConvectionTrop_MVKHCB ', 'GCHPchem', -# 'BudgetConvectionTrop_MVKHC ', 'GCHPchem', -# 'BudgetConvectionTrop_MVKDH ', 'GCHPchem', -# 'BudgetConvectionTrop_MVK ', 'GCHPchem', -# 'BudgetConvectionTrop_MTPO ', 'GCHPchem', -# 'BudgetConvectionTrop_MTPA ', 'GCHPchem', -# 'BudgetConvectionTrop_MSA ', 'GCHPchem', -# 'BudgetConvectionTrop_MPN ', 'GCHPchem', -# 'BudgetConvectionTrop_MPAN ', 'GCHPchem', -# 'BudgetConvectionTrop_MP ', 'GCHPchem', -# 'BudgetConvectionTrop_MONITU ', 'GCHPchem', -# 'BudgetConvectionTrop_MONITS ', 'GCHPchem', -# 'BudgetConvectionTrop_MONITA ', 'GCHPchem', -# 'BudgetConvectionTrop_MOH ', 'GCHPchem', -# 'BudgetConvectionTrop_MGLY ', 'GCHPchem', -# 'BudgetConvectionTrop_MENO3 ', 'GCHPchem', -# 'BudgetConvectionTrop_MEK ', 'GCHPchem', -# 'BudgetConvectionTrop_MCRHP ', 'GCHPchem', -# 'BudgetConvectionTrop_MCRHNB ', 'GCHPchem', -# 'BudgetConvectionTrop_MCRHN ', 'GCHPchem', -# 'BudgetConvectionTrop_MCRENOL ', 'GCHPchem', -# 'BudgetConvectionTrop_MCRDH ', 'GCHPchem', -# 'BudgetConvectionTrop_MAP ', 'GCHPchem', -# 'BudgetConvectionTrop_MACR1OOH ', 'GCHPchem', -# 'BudgetConvectionTrop_MACR ', 'GCHPchem', -# 'BudgetConvectionTrop_LVOCOA ', 'GCHPchem', -# 'BudgetConvectionTrop_LVOC ', 'GCHPchem', -# 'BudgetConvectionTrop_LIMO ', 'GCHPchem', -# 'BudgetConvectionTrop_ITHN ', 'GCHPchem', -# 'BudgetConvectionTrop_ITCN ', 'GCHPchem', -# 'BudgetConvectionTrop_ISOP ', 'GCHPchem', -# 'BudgetConvectionTrop_ISALC ', 'GCHPchem', -# 'BudgetConvectionTrop_ISALA ', 'GCHPchem', -# 'BudgetConvectionTrop_IPRNO3 ', 'GCHPchem', -# 'BudgetConvectionTrop_IONO2 ', 'GCHPchem', -# 'BudgetConvectionTrop_IONO ', 'GCHPchem', -# 'BudgetConvectionTrop_IONITA ', 'GCHPchem', -# 'BudgetConvectionTrop_IO ', 'GCHPchem', -# 'BudgetConvectionTrop_INPD ', 'GCHPchem', -# 'BudgetConvectionTrop_INPB ', 'GCHPchem', -# 'BudgetConvectionTrop_INO ', 'GCHPchem', -# 'BudgetConvectionTrop_INDIOL ', 'GCHPchem', -# 'BudgetConvectionTrop_IHN4 ', 'GCHPchem', -# 'BudgetConvectionTrop_IHN3 ', 'GCHPchem', -# 'BudgetConvectionTrop_IHN2 ', 'GCHPchem', -# 'BudgetConvectionTrop_IHN1 ', 'GCHPchem', -# 'BudgetConvectionTrop_IEPOXD ', 'GCHPchem', -# 'BudgetConvectionTrop_IEPOXB ', 'GCHPchem', -# 'BudgetConvectionTrop_IEPOXA ', 'GCHPchem', -# 'BudgetConvectionTrop_IDN ', 'GCHPchem', -# 'BudgetConvectionTrop_IDHPE ', 'GCHPchem', -# 'BudgetConvectionTrop_IDHDP ', 'GCHPchem', -# 'BudgetConvectionTrop_IDCHP ', 'GCHPchem', -# 'BudgetConvectionTrop_IDC ', 'GCHPchem', -# 'BudgetConvectionTrop_ICPDH ', 'GCHPchem', -# 'BudgetConvectionTrop_ICN ', 'GCHPchem', -# 'BudgetConvectionTrop_ICl ', 'GCHPchem', -# 'BudgetConvectionTrop_ICHE ', 'GCHPchem', -# 'BudgetConvectionTrop_IBr ', 'GCHPchem', -# 'BudgetConvectionTrop_I2O4 ', 'GCHPchem', -# 'BudgetConvectionTrop_I2O3 ', 'GCHPchem', -# 'BudgetConvectionTrop_I2O2 ', 'GCHPchem', -# 'BudgetConvectionTrop_I2 ', 'GCHPchem', -# 'BudgetConvectionTrop_I ', 'GCHPchem', -# 'BudgetConvectionTrop_HPETHNL ', 'GCHPchem', -# 'BudgetConvectionTrop_HPALD4 ', 'GCHPchem', -# 'BudgetConvectionTrop_HPALD3 ', 'GCHPchem', -# 'BudgetConvectionTrop_HPALD2 ', 'GCHPchem', -# 'BudgetConvectionTrop_HPALD1 ', 'GCHPchem', -# 'BudgetConvectionTrop_HONIT ', 'GCHPchem', -# 'BudgetConvectionTrop_HOI ', 'GCHPchem', -# 'BudgetConvectionTrop_HOCl ', 'GCHPchem', -# 'BudgetConvectionTrop_HOBr ', 'GCHPchem', -# 'BudgetConvectionTrop_HNO4 ', 'GCHPchem', -# 'BudgetConvectionTrop_HNO3 ', 'GCHPchem', -# 'BudgetConvectionTrop_HNO2 ', 'GCHPchem', -# 'BudgetConvectionTrop_HMS ', 'GCHPchem', -# 'BudgetConvectionTrop_HMML ', 'GCHPchem', -# 'BudgetConvectionTrop_HMHP ', 'GCHPchem', -# 'BudgetConvectionTrop_HI ', 'GCHPchem', -# 'BudgetConvectionTrop_HCOOH ', 'GCHPchem', -# 'BudgetConvectionTrop_HCl ', 'GCHPchem', -# 'BudgetConvectionTrop_HCFC22 ', 'GCHPchem', -# 'BudgetConvectionTrop_HCFC142b ', 'GCHPchem', -# 'BudgetConvectionTrop_HCFC141b ', 'GCHPchem', -# 'BudgetConvectionTrop_HCFC123 ', 'GCHPchem', -# 'BudgetConvectionTrop_HC5A ', 'GCHPchem', -# 'BudgetConvectionTrop_HBr ', 'GCHPchem', -# 'BudgetConvectionTrop_HAC ', 'GCHPchem', -# 'BudgetConvectionTrop_H2O2 ', 'GCHPchem', -# 'BudgetConvectionTrop_H2O ', 'GCHPchem', -# 'BudgetConvectionTrop_H2402 ', 'GCHPchem', -# 'BudgetConvectionTrop_H1301 ', 'GCHPchem', -# 'BudgetConvectionTrop_H1211 ', 'GCHPchem', -# 'BudgetConvectionTrop_GLYX ', 'GCHPchem', -# 'BudgetConvectionTrop_GLYC ', 'GCHPchem', -# 'BudgetConvectionTrop_ETP ', 'GCHPchem', -# 'BudgetConvectionTrop_ETNO3 ', 'GCHPchem', -# 'BudgetConvectionTrop_ETHP ', 'GCHPchem', -# 'BudgetConvectionTrop_ETHN ', 'GCHPchem', -# 'BudgetConvectionTrop_ETHLN ', 'GCHPchem', -# 'BudgetConvectionTrop_EOH ', 'GCHPchem', -# 'BudgetConvectionTrop_DST4 ', 'GCHPchem', -# 'BudgetConvectionTrop_DST3 ', 'GCHPchem', -# 'BudgetConvectionTrop_DST2 ', 'GCHPchem', -# 'BudgetConvectionTrop_DST1 ', 'GCHPchem', -# 'BudgetConvectionTrop_DMS ', 'GCHPchem', -# 'BudgetConvectionTrop_CO ', 'GCHPchem', -# 'BudgetConvectionTrop_ClOO ', 'GCHPchem', -# 'BudgetConvectionTrop_ClO ', 'GCHPchem', -# 'BudgetConvectionTrop_ClNO3 ', 'GCHPchem', -# 'BudgetConvectionTrop_ClNO2 ', 'GCHPchem', -# 'BudgetConvectionTrop_Cl2O2 ', 'GCHPchem', -# 'BudgetConvectionTrop_Cl2 ', 'GCHPchem', -# 'BudgetConvectionTrop_Cl ', 'GCHPchem', -# 'BudgetConvectionTrop_CHCl3 ', 'GCHPchem', -# 'BudgetConvectionTrop_CHBr3 ', 'GCHPchem', -# 'BudgetConvectionTrop_CH4 ', 'GCHPchem', -# 'BudgetConvectionTrop_CH3I ', 'GCHPchem', -# 'BudgetConvectionTrop_CH3Cl ', 'GCHPchem', -# 'BudgetConvectionTrop_CH3CCl3 ', 'GCHPchem', -# 'BudgetConvectionTrop_CH3Br ', 'GCHPchem', -# 'BudgetConvectionTrop_CH2O ', 'GCHPchem', -# 'BudgetConvectionTrop_CH2ICl ', 'GCHPchem', -# 'BudgetConvectionTrop_CH2IBr ', 'GCHPchem', -# 'BudgetConvectionTrop_CH2I2 ', 'GCHPchem', -# 'BudgetConvectionTrop_CH2Cl2 ', 'GCHPchem', -# 'BudgetConvectionTrop_CH2Br2 ', 'GCHPchem', -# 'BudgetConvectionTrop_CFC12 ', 'GCHPchem', -# 'BudgetConvectionTrop_CFC115 ', 'GCHPchem', -# 'BudgetConvectionTrop_CFC114 ', 'GCHPchem', -# 'BudgetConvectionTrop_CFC113 ', 'GCHPchem', -# 'BudgetConvectionTrop_CFC11 ', 'GCHPchem', -# 'BudgetConvectionTrop_CCl4 ', 'GCHPchem', -# 'BudgetConvectionTrop_C3H8 ', 'GCHPchem', -# 'BudgetConvectionTrop_C2H6 ', 'GCHPchem', -# 'BudgetConvectionTrop_C2H4 ', 'GCHPchem', -# 'BudgetConvectionTrop_C2H2 ', 'GCHPchem', -# 'BudgetConvectionTrop_BrSALC ', 'GCHPchem', -# 'BudgetConvectionTrop_BrSALA ', 'GCHPchem', -# 'BudgetConvectionTrop_BrO ', 'GCHPchem', -# 'BudgetConvectionTrop_BrNO3 ', 'GCHPchem', -# 'BudgetConvectionTrop_BrNO2 ', 'GCHPchem', -# 'BudgetConvectionTrop_BrCl ', 'GCHPchem', -# 'BudgetConvectionTrop_Br2 ', 'GCHPchem', -# 'BudgetConvectionTrop_Br ', 'GCHPchem', -# 'BudgetConvectionTrop_BENZ ', 'GCHPchem', -# 'BudgetConvectionTrop_BCPO ', 'GCHPchem', -# 'BudgetConvectionTrop_BCPI ', 'GCHPchem', -# 'BudgetConvectionTrop_ATOOH ', 'GCHPchem', -# 'BudgetConvectionTrop_ALK4 ', 'GCHPchem', -# 'BudgetConvectionTrop_ALD2 ', 'GCHPchem', -# 'BudgetConvectionTrop_AERI ', 'GCHPchem', -# 'BudgetConvectionTrop_ACTA ', 'GCHPchem', -# 'BudgetConvectionTrop_ACET ', 'GCHPchem', -# #'BudgetConvectionTrop_TSOG3 ', 'GCHPchem', -# #'BudgetConvectionTrop_TSOG2 ', 'GCHPchem', -# #'BudgetConvectionTrop_TSOG1 ', 'GCHPchem', -# #'BudgetConvectionTrop_TSOG0 ', 'GCHPchem', -# #'BudgetConvectionTrop_TSOA3 ', 'GCHPchem', -# #'BudgetConvectionTrop_TSOA2 ', 'GCHPchem', -# #'BudgetConvectionTrop_TSOA1 ', 'GCHPchem', -# #'BudgetConvectionTrop_TSOA0 ', 'GCHPchem', -# #'BudgetConvectionTrop_ASOG3 ', 'GCHPchem', -# #'BudgetConvectionTrop_ASOG2 ', 'GCHPchem', -# #'BudgetConvectionTrop_ASOG1 ', 'GCHPchem', -# #'BudgetConvectionTrop_ASOAN ', 'GCHPchem', -# #'BudgetConvectionTrop_ASOA3 ', 'GCHPchem', -# #'BudgetConvectionTrop_ASOA2 ', 'GCHPchem', -# #'BudgetConvectionTrop_ASOA1 ', 'GCHPchem', -# 'BudgetConvectionFull_XYLE ', 'GCHPchem', -# 'BudgetConvectionFull_TOLU ', 'GCHPchem', -# 'BudgetConvectionFull_SOAS ', 'GCHPchem', -# 'BudgetConvectionFull_SOAP ', 'GCHPchem', -# 'BudgetConvectionFull_SOAIE ', 'GCHPchem', -# 'BudgetConvectionFull_SOAGX ', 'GCHPchem', -# 'BudgetConvectionFull_SO4s ', 'GCHPchem', -# 'BudgetConvectionFull_SO4 ', 'GCHPchem', -# 'BudgetConvectionFull_SO2 ', 'GCHPchem', -# 'BudgetConvectionFull_SALCCL ', 'GCHPchem', -# 'BudgetConvectionFull_SALCAL ', 'GCHPchem', -# 'BudgetConvectionFull_SALC ', 'GCHPchem', -# 'BudgetConvectionFull_SALACL ', 'GCHPchem', -# 'BudgetConvectionFull_SALAAL ', 'GCHPchem', -# 'BudgetConvectionFull_SALA ', 'GCHPchem', -# 'BudgetConvectionFull_RP ', 'GCHPchem', -# 'BudgetConvectionFull_RIPD ', 'GCHPchem', -# 'BudgetConvectionFull_RIPC ', 'GCHPchem', -# 'BudgetConvectionFull_RIPB ', 'GCHPchem', -# 'BudgetConvectionFull_RIPA ', 'GCHPchem', -# 'BudgetConvectionFull_RCHO ', 'GCHPchem', -# 'BudgetConvectionFull_RB3P ', 'GCHPchem', -# 'BudgetConvectionFull_RA3P ', 'GCHPchem', -# 'BudgetConvectionFull_R4P ', 'GCHPchem', -# 'BudgetConvectionFull_R4N2 ', 'GCHPchem', -# 'BudgetConvectionFull_PYAC ', 'GCHPchem', -# 'BudgetConvectionFull_PRPN ', 'GCHPchem', -# 'BudgetConvectionFull_PRPE ', 'GCHPchem', -# 'BudgetConvectionFull_PROPNN ', 'GCHPchem', -# 'BudgetConvectionFull_PPN ', 'GCHPchem', -# 'BudgetConvectionFull_PP ', 'GCHPchem', -# 'BudgetConvectionFull_PIP ', 'GCHPchem', -# 'BudgetConvectionFull_pFe ', 'GCHPchem', -# 'BudgetConvectionFull_PAN ', 'GCHPchem', -# 'BudgetConvectionFull_OIO ', 'GCHPchem', -# 'BudgetConvectionFull_OCS ', 'GCHPchem', -# 'BudgetConvectionFull_OCPO ', 'GCHPchem', -# 'BudgetConvectionFull_OCPI ', 'GCHPchem', -# 'BudgetConvectionFull_OClO ', 'GCHPchem', -# 'BudgetConvectionFull_O3 ', 'GCHPchem', -# 'BudgetConvectionFull_NPRNO3 ', 'GCHPchem', -# 'BudgetConvectionFull_NO3 ', 'GCHPchem', -# 'BudgetConvectionFull_NO2 ', 'GCHPchem', -# 'BudgetConvectionFull_NO ', 'GCHPchem', -# 'BudgetConvectionFull_NITs ', 'GCHPchem', -# 'BudgetConvectionFull_NIT ', 'GCHPchem', -# 'BudgetConvectionFull_NH4 ', 'GCHPchem', -# 'BudgetConvectionFull_NH3 ', 'GCHPchem', -# 'BudgetConvectionFull_N2O5 ', 'GCHPchem', -# 'BudgetConvectionFull_N2O ', 'GCHPchem', -# 'BudgetConvectionFull_MVKPC ', 'GCHPchem', -# 'BudgetConvectionFull_MVKN ', 'GCHPchem', -# 'BudgetConvectionFull_MVKHP ', 'GCHPchem', -# 'BudgetConvectionFull_MVKHCB ', 'GCHPchem', -# 'BudgetConvectionFull_MVKHC ', 'GCHPchem', -# 'BudgetConvectionFull_MVKDH ', 'GCHPchem', -# 'BudgetConvectionFull_MVK ', 'GCHPchem', -# 'BudgetConvectionFull_MTPO ', 'GCHPchem', -# 'BudgetConvectionFull_MTPA ', 'GCHPchem', -# 'BudgetConvectionFull_MSA ', 'GCHPchem', -# 'BudgetConvectionFull_MPN ', 'GCHPchem', -# 'BudgetConvectionFull_MPAN ', 'GCHPchem', -# 'BudgetConvectionFull_MP ', 'GCHPchem', -# 'BudgetConvectionFull_MONITU ', 'GCHPchem', -# 'BudgetConvectionFull_MONITS ', 'GCHPchem', -# 'BudgetConvectionFull_MONITA ', 'GCHPchem', -# 'BudgetConvectionFull_MOH ', 'GCHPchem', -# 'BudgetConvectionFull_MGLY ', 'GCHPchem', -# 'BudgetConvectionFull_MENO3 ', 'GCHPchem', -# 'BudgetConvectionFull_MEK ', 'GCHPchem', -# 'BudgetConvectionFull_MCRHP ', 'GCHPchem', -# 'BudgetConvectionFull_MCRHNB ', 'GCHPchem', -# 'BudgetConvectionFull_MCRHN ', 'GCHPchem', -# 'BudgetConvectionFull_MCRENOL ', 'GCHPchem', -# 'BudgetConvectionFull_MCRDH ', 'GCHPchem', -# 'BudgetConvectionFull_MAP ', 'GCHPchem', -# 'BudgetConvectionFull_MACR1OOH ', 'GCHPchem', -# 'BudgetConvectionFull_MACR ', 'GCHPchem', -# 'BudgetConvectionFull_LVOCOA ', 'GCHPchem', -# 'BudgetConvectionFull_LVOC ', 'GCHPchem', -# 'BudgetConvectionFull_LIMO ', 'GCHPchem', -# 'BudgetConvectionFull_ITHN ', 'GCHPchem', -# 'BudgetConvectionFull_ITCN ', 'GCHPchem', -# 'BudgetConvectionFull_ISOP ', 'GCHPchem', -# 'BudgetConvectionFull_ISALC ', 'GCHPchem', -# 'BudgetConvectionFull_ISALA ', 'GCHPchem', -# 'BudgetConvectionFull_IPRNO3 ', 'GCHPchem', -# 'BudgetConvectionFull_IONO2 ', 'GCHPchem', -# 'BudgetConvectionFull_IONO ', 'GCHPchem', -# 'BudgetConvectionFull_IONITA ', 'GCHPchem', -# 'BudgetConvectionFull_IO ', 'GCHPchem', -# 'BudgetConvectionFull_INPD ', 'GCHPchem', -# 'BudgetConvectionFull_INPB ', 'GCHPchem', -# 'BudgetConvectionFull_INO ', 'GCHPchem', -# 'BudgetConvectionFull_INDIOL ', 'GCHPchem', -# 'BudgetConvectionFull_IHN4 ', 'GCHPchem', -# 'BudgetConvectionFull_IHN3 ', 'GCHPchem', -# 'BudgetConvectionFull_IHN2 ', 'GCHPchem', -# 'BudgetConvectionFull_IHN1 ', 'GCHPchem', -# 'BudgetConvectionFull_IEPOXD ', 'GCHPchem', -# 'BudgetConvectionFull_IEPOXB ', 'GCHPchem', -# 'BudgetConvectionFull_IEPOXA ', 'GCHPchem', -# 'BudgetConvectionFull_IDN ', 'GCHPchem', -# 'BudgetConvectionFull_IDHPE ', 'GCHPchem', -# 'BudgetConvectionFull_IDHDP ', 'GCHPchem', -# 'BudgetConvectionFull_IDCHP ', 'GCHPchem', -# 'BudgetConvectionFull_IDC ', 'GCHPchem', -# 'BudgetConvectionFull_ICPDH ', 'GCHPchem', -# 'BudgetConvectionFull_ICN ', 'GCHPchem', -# 'BudgetConvectionFull_ICl ', 'GCHPchem', -# 'BudgetConvectionFull_ICHE ', 'GCHPchem', -# 'BudgetConvectionFull_IBr ', 'GCHPchem', -# 'BudgetConvectionFull_I2O4 ', 'GCHPchem', -# 'BudgetConvectionFull_I2O3 ', 'GCHPchem', -# 'BudgetConvectionFull_I2O2 ', 'GCHPchem', -# 'BudgetConvectionFull_I2 ', 'GCHPchem', -# 'BudgetConvectionFull_I ', 'GCHPchem', -# 'BudgetConvectionFull_HPETHNL ', 'GCHPchem', -# 'BudgetConvectionFull_HPALD4 ', 'GCHPchem', -# 'BudgetConvectionFull_HPALD3 ', 'GCHPchem', -# 'BudgetConvectionFull_HPALD2 ', 'GCHPchem', -# 'BudgetConvectionFull_HPALD1 ', 'GCHPchem', -# 'BudgetConvectionFull_HONIT ', 'GCHPchem', -# 'BudgetConvectionFull_HOI ', 'GCHPchem', -# 'BudgetConvectionFull_HOCl ', 'GCHPchem', -# 'BudgetConvectionFull_HOBr ', 'GCHPchem', -# 'BudgetConvectionFull_HNO4 ', 'GCHPchem', -# 'BudgetConvectionFull_HNO3 ', 'GCHPchem', -# 'BudgetConvectionFull_HNO2 ', 'GCHPchem', -# 'BudgetConvectionFull_HMML ', 'GCHPchem', -# 'BudgetConvectionFull_HMS ', 'GCHPchem', -# 'BudgetConvectionFull_HMHP ', 'GCHPchem', -# 'BudgetConvectionFull_HI ', 'GCHPchem', -# 'BudgetConvectionFull_HCOOH ', 'GCHPchem', -# 'BudgetConvectionFull_HCl ', 'GCHPchem', -# 'BudgetConvectionFull_HCFC22 ', 'GCHPchem', -# 'BudgetConvectionFull_HCFC142b ', 'GCHPchem', -# 'BudgetConvectionFull_HCFC141b ', 'GCHPchem', -# 'BudgetConvectionFull_HCFC123 ', 'GCHPchem', -# 'BudgetConvectionFull_HC5A ', 'GCHPchem', -# 'BudgetConvectionFull_HBr ', 'GCHPchem', -# 'BudgetConvectionFull_HAC ', 'GCHPchem', -# 'BudgetConvectionFull_H2O2 ', 'GCHPchem', -# 'BudgetConvectionFull_H2O ', 'GCHPchem', -# 'BudgetConvectionFull_H2402 ', 'GCHPchem', -# 'BudgetConvectionFull_H1301 ', 'GCHPchem', -# 'BudgetConvectionFull_H1211 ', 'GCHPchem', -# 'BudgetConvectionFull_GLYX ', 'GCHPchem', -# 'BudgetConvectionFull_GLYC ', 'GCHPchem', -# 'BudgetConvectionFull_ETP ', 'GCHPchem', -# 'BudgetConvectionFull_ETNO3 ', 'GCHPchem', -# 'BudgetConvectionFull_ETHP ', 'GCHPchem', -# 'BudgetConvectionFull_ETHN ', 'GCHPchem', -# 'BudgetConvectionFull_ETHLN ', 'GCHPchem', -# 'BudgetConvectionFull_EOH ', 'GCHPchem', -# 'BudgetConvectionFull_DST4 ', 'GCHPchem', -# 'BudgetConvectionFull_DST3 ', 'GCHPchem', -# 'BudgetConvectionFull_DST2 ', 'GCHPchem', -# 'BudgetConvectionFull_DST1 ', 'GCHPchem', -# 'BudgetConvectionFull_DMS ', 'GCHPchem', -# 'BudgetConvectionFull_CO ', 'GCHPchem', -# 'BudgetConvectionFull_ClOO ', 'GCHPchem', -# 'BudgetConvectionFull_ClO ', 'GCHPchem', -# 'BudgetConvectionFull_ClNO3 ', 'GCHPchem', -# 'BudgetConvectionFull_ClNO2 ', 'GCHPchem', -# 'BudgetConvectionFull_Cl2O2 ', 'GCHPchem', -# 'BudgetConvectionFull_Cl2 ', 'GCHPchem', -# 'BudgetConvectionFull_Cl ', 'GCHPchem', -# 'BudgetConvectionFull_CHCl3 ', 'GCHPchem', -# 'BudgetConvectionFull_CHBr3 ', 'GCHPchem', -# 'BudgetConvectionFull_CH4 ', 'GCHPchem', -# 'BudgetConvectionFull_CH3I ', 'GCHPchem', -# 'BudgetConvectionFull_CH3Cl ', 'GCHPchem', -# 'BudgetConvectionFull_CH3CCl3 ', 'GCHPchem', -# 'BudgetConvectionFull_CH3Br ', 'GCHPchem', -# 'BudgetConvectionFull_CH2O ', 'GCHPchem', -# 'BudgetConvectionFull_CH2ICl ', 'GCHPchem', -# 'BudgetConvectionFull_CH2IBr ', 'GCHPchem', -# 'BudgetConvectionFull_CH2I2 ', 'GCHPchem', -# 'BudgetConvectionFull_CH2Cl2 ', 'GCHPchem', -# 'BudgetConvectionFull_CH2Br2 ', 'GCHPchem', -# 'BudgetConvectionFull_CFC12 ', 'GCHPchem', -# 'BudgetConvectionFull_CFC115 ', 'GCHPchem', -# 'BudgetConvectionFull_CFC114 ', 'GCHPchem', -# 'BudgetConvectionFull_CFC113 ', 'GCHPchem', -# 'BudgetConvectionFull_CFC11 ', 'GCHPchem', -# 'BudgetConvectionFull_CCl4 ', 'GCHPchem', -# 'BudgetConvectionFull_C3H8 ', 'GCHPchem', -# 'BudgetConvectionFull_C2H6 ', 'GCHPchem', -# 'BudgetConvectionFull_C2H4 ', 'GCHPchem', -# 'BudgetConvectionFull_C2H2 ', 'GCHPchem', -# 'BudgetConvectionFull_BrSALC ', 'GCHPchem', -# 'BudgetConvectionFull_BrSALA ', 'GCHPchem', -# 'BudgetConvectionFull_BrO ', 'GCHPchem', -# 'BudgetConvectionFull_BrNO3 ', 'GCHPchem', -# 'BudgetConvectionFull_BrNO2 ', 'GCHPchem', -# 'BudgetConvectionFull_BrCl ', 'GCHPchem', -# 'BudgetConvectionFull_Br2 ', 'GCHPchem', -# 'BudgetConvectionFull_Br ', 'GCHPchem', -# 'BudgetConvectionFull_BENZ ', 'GCHPchem', -# 'BudgetConvectionFull_BCPO ', 'GCHPchem', -# 'BudgetConvectionFull_BCPI ', 'GCHPchem', -# 'BudgetConvectionFull_ATOOH ', 'GCHPchem', -# 'BudgetConvectionFull_ALK4 ', 'GCHPchem', -# 'BudgetConvectionFull_ALD2 ', 'GCHPchem', -# 'BudgetConvectionFull_AERI ', 'GCHPchem', -# 'BudgetConvectionFull_ACTA ', 'GCHPchem', -# 'BudgetConvectionFull_ACET ', 'GCHPchem', -# #'BudgetConvectionFull_TSOG3 ', 'GCHPchem', -# #'BudgetConvectionFull_TSOG2 ', 'GCHPchem', -# #'BudgetConvectionFull_TSOG1 ', 'GCHPchem', -# #'BudgetConvectionFull_TSOG0 ', 'GCHPchem', -# #'BudgetConvectionFull_TSOA3 ', 'GCHPchem', -# #'BudgetConvectionFull_TSOA2 ', 'GCHPchem', -# #'BudgetConvectionFull_TSOA1 ', 'GCHPchem', -# #'BudgetConvectionFull_TSOA0 ', 'GCHPchem', -# #'BudgetConvectionFull_ASOG3 ', 'GCHPchem', -# #'BudgetConvectionFull_ASOG2 ', 'GCHPchem', -# #'BudgetConvectionFull_ASOG1 ', 'GCHPchem', -# #'BudgetConvectionFull_ASOAN ', 'GCHPchem', -# #'BudgetConvectionFull_ASOA3 ', 'GCHPchem', -# #'BudgetConvectionFull_ASOA2 ', 'GCHPchem', -# #'BudgetConvectionFull_ASOA1 ', 'GCHPchem', -# 'BudgetMixingPBL_XYLE ', 'GCHPchem', -# 'BudgetMixingPBL_TOLU ', 'GCHPchem', -# 'BudgetMixingPBL_SOAS ', 'GCHPchem', -# 'BudgetMixingPBL_SOAP ', 'GCHPchem', -# 'BudgetMixingPBL_SOAIE ', 'GCHPchem', -# 'BudgetMixingPBL_SOAGX ', 'GCHPchem', -# 'BudgetMixingPBL_SO4s ', 'GCHPchem', -# 'BudgetMixingPBL_SO4 ', 'GCHPchem', -# 'BudgetMixingPBL_SO2 ', 'GCHPchem', -# 'BudgetMixingPBL_SALCCL ', 'GCHPchem', -# 'BudgetMixingPBL_SALCAL ', 'GCHPchem', -# 'BudgetMixingPBL_SALC ', 'GCHPchem', -# 'BudgetMixingPBL_SALACL ', 'GCHPchem', -# 'BudgetMixingPBL_SALAAL ', 'GCHPchem', -# 'BudgetMixingPBL_SALA ', 'GCHPchem', -# 'BudgetMixingPBL_RP ', 'GCHPchem', -# 'BudgetMixingPBL_RIPD ', 'GCHPchem', -# 'BudgetMixingPBL_RIPC ', 'GCHPchem', -# 'BudgetMixingPBL_RIPB ', 'GCHPchem', -# 'BudgetMixingPBL_RIPA ', 'GCHPchem', -# 'BudgetMixingPBL_RCHO ', 'GCHPchem', -# 'BudgetMixingPBL_RB3P ', 'GCHPchem', -# 'BudgetMixingPBL_RA3P ', 'GCHPchem', -# 'BudgetMixingPBL_R4P ', 'GCHPchem', -# 'BudgetMixingPBL_R4N2 ', 'GCHPchem', -# 'BudgetMixingPBL_PYAC ', 'GCHPchem', -# 'BudgetMixingPBL_PRPN ', 'GCHPchem', -# 'BudgetMixingPBL_PRPE ', 'GCHPchem', -# 'BudgetMixingPBL_PROPNN ', 'GCHPchem', -# 'BudgetMixingPBL_PPN ', 'GCHPchem', -# 'BudgetMixingPBL_PP ', 'GCHPchem', -# 'BudgetMixingPBL_PIP ', 'GCHPchem', -# 'BudgetMixingPBL_pFe ', 'GCHPchem', -# 'BudgetMixingPBL_PAN ', 'GCHPchem', -# 'BudgetMixingPBL_OIO ', 'GCHPchem', -# 'BudgetMixingPBL_OCS ', 'GCHPchem', -# 'BudgetMixingPBL_OCPO ', 'GCHPchem', -# 'BudgetMixingPBL_OCPI ', 'GCHPchem', -# 'BudgetMixingPBL_OClO ', 'GCHPchem', -# 'BudgetMixingPBL_O3 ', 'GCHPchem', -# 'BudgetMixingPBL_NPRNO3 ', 'GCHPchem', -# 'BudgetMixingPBL_NO3 ', 'GCHPchem', -# 'BudgetMixingPBL_NO2 ', 'GCHPchem', -# 'BudgetMixingPBL_NO ', 'GCHPchem', -# 'BudgetMixingPBL_NITs ', 'GCHPchem', -# 'BudgetMixingPBL_NIT ', 'GCHPchem', -# 'BudgetMixingPBL_NH4 ', 'GCHPchem', -# 'BudgetMixingPBL_NH3 ', 'GCHPchem', -# 'BudgetMixingPBL_N2O5 ', 'GCHPchem', -# 'BudgetMixingPBL_N2O ', 'GCHPchem', -# 'BudgetMixingPBL_MVKPC ', 'GCHPchem', -# 'BudgetMixingPBL_MVKN ', 'GCHPchem', -# 'BudgetMixingPBL_MVKHP ', 'GCHPchem', -# 'BudgetMixingPBL_MVKHCB ', 'GCHPchem', -# 'BudgetMixingPBL_MVKHC ', 'GCHPchem', -# 'BudgetMixingPBL_MVKDH ', 'GCHPchem', -# 'BudgetMixingPBL_MVK ', 'GCHPchem', -# 'BudgetMixingPBL_MTPO ', 'GCHPchem', -# 'BudgetMixingPBL_MTPA ', 'GCHPchem', -# 'BudgetMixingPBL_MSA ', 'GCHPchem', -# 'BudgetMixingPBL_MPN ', 'GCHPchem', -# 'BudgetMixingPBL_MPAN ', 'GCHPchem', -# 'BudgetMixingPBL_MP ', 'GCHPchem', -# 'BudgetMixingPBL_MONITU ', 'GCHPchem', -# 'BudgetMixingPBL_MONITS ', 'GCHPchem', -# 'BudgetMixingPBL_MONITA ', 'GCHPchem', -# 'BudgetMixingPBL_MOH ', 'GCHPchem', -# 'BudgetMixingPBL_MGLY ', 'GCHPchem', -# 'BudgetMixingPBL_MENO3 ', 'GCHPchem', -# 'BudgetMixingPBL_MEK ', 'GCHPchem', -# 'BudgetMixingPBL_MCRHP ', 'GCHPchem', -# 'BudgetMixingPBL_MCRHNB ', 'GCHPchem', -# 'BudgetMixingPBL_MCRHN ', 'GCHPchem', -# 'BudgetMixingPBL_MCRENOL ', 'GCHPchem', -# 'BudgetMixingPBL_MCRDH ', 'GCHPchem', -# 'BudgetMixingPBL_MAP ', 'GCHPchem', -# 'BudgetMixingPBL_MACR1OOH ', 'GCHPchem', -# 'BudgetMixingPBL_MACR ', 'GCHPchem', -# 'BudgetMixingPBL_LVOCOA ', 'GCHPchem', -# 'BudgetMixingPBL_LVOC ', 'GCHPchem', -# 'BudgetMixingPBL_LIMO ', 'GCHPchem', -# 'BudgetMixingPBL_ITHN ', 'GCHPchem', -# 'BudgetMixingPBL_ITCN ', 'GCHPchem', -# 'BudgetMixingPBL_ISOP ', 'GCHPchem', -# 'BudgetMixingPBL_ISALC ', 'GCHPchem', -# 'BudgetMixingPBL_ISALA ', 'GCHPchem', -# 'BudgetMixingPBL_IPRNO3 ', 'GCHPchem', -# 'BudgetMixingPBL_IONO2 ', 'GCHPchem', -# 'BudgetMixingPBL_IONO ', 'GCHPchem', -# 'BudgetMixingPBL_IONITA ', 'GCHPchem', -# 'BudgetMixingPBL_IO ', 'GCHPchem', -# 'BudgetMixingPBL_INPD ', 'GCHPchem', -# 'BudgetMixingPBL_INPB ', 'GCHPchem', -# 'BudgetMixingPBL_INO ', 'GCHPchem', -# 'BudgetMixingPBL_INDIOL ', 'GCHPchem', -# 'BudgetMixingPBL_IHN4 ', 'GCHPchem', -# 'BudgetMixingPBL_IHN3 ', 'GCHPchem', -# 'BudgetMixingPBL_IHN2 ', 'GCHPchem', -# 'BudgetMixingPBL_IHN1 ', 'GCHPchem', -# 'BudgetMixingPBL_IEPOXD ', 'GCHPchem', -# 'BudgetMixingPBL_IEPOXB ', 'GCHPchem', -# 'BudgetMixingPBL_IEPOXA ', 'GCHPchem', -# 'BudgetMixingPBL_IDN ', 'GCHPchem', -# 'BudgetMixingPBL_IDHPE ', 'GCHPchem', -# 'BudgetMixingPBL_IDHDP ', 'GCHPchem', -# 'BudgetMixingPBL_IDCHP ', 'GCHPchem', -# 'BudgetMixingPBL_IDC ', 'GCHPchem', -# 'BudgetMixingPBL_ICPDH ', 'GCHPchem', -# 'BudgetMixingPBL_ICN ', 'GCHPchem', -# 'BudgetMixingPBL_ICl ', 'GCHPchem', -# 'BudgetMixingPBL_ICHE ', 'GCHPchem', -# 'BudgetMixingPBL_IBr ', 'GCHPchem', -# 'BudgetMixingPBL_I2O4 ', 'GCHPchem', -# 'BudgetMixingPBL_I2O3 ', 'GCHPchem', -# 'BudgetMixingPBL_I2O2 ', 'GCHPchem', -# 'BudgetMixingPBL_I2 ', 'GCHPchem', -# 'BudgetMixingPBL_I ', 'GCHPchem', -# 'BudgetMixingPBL_HPETHNL ', 'GCHPchem', -# 'BudgetMixingPBL_HPALD4 ', 'GCHPchem', -# 'BudgetMixingPBL_HPALD3 ', 'GCHPchem', -# 'BudgetMixingPBL_HPALD2 ', 'GCHPchem', -# 'BudgetMixingPBL_HPALD1 ', 'GCHPchem', -# 'BudgetMixingPBL_HONIT ', 'GCHPchem', -# 'BudgetMixingPBL_HOI ', 'GCHPchem', -# 'BudgetMixingPBL_HOCl ', 'GCHPchem', -# 'BudgetMixingPBL_HOBr ', 'GCHPchem', -# 'BudgetMixingPBL_HNO4 ', 'GCHPchem', -# 'BudgetMixingPBL_HNO3 ', 'GCHPchem', -# 'BudgetMixingPBL_HNO2 ', 'GCHPchem', -# 'BudgetMixingPBL_HMS ', 'GCHPchem', -# 'BudgetMixingPBL_HMML ', 'GCHPchem', -# 'BudgetMixingPBL_HMHP ', 'GCHPchem', -# 'BudgetMixingPBL_HI ', 'GCHPchem', -# 'BudgetMixingPBL_HCOOH ', 'GCHPchem', -# 'BudgetMixingPBL_HCl ', 'GCHPchem', -# 'BudgetMixingPBL_HCFC22 ', 'GCHPchem', -# 'BudgetMixingPBL_HCFC142b ', 'GCHPchem', -# 'BudgetMixingPBL_HCFC141b ', 'GCHPchem', -# 'BudgetMixingPBL_HCFC123 ', 'GCHPchem', -# 'BudgetMixingPBL_HC5A ', 'GCHPchem', -# 'BudgetMixingPBL_HBr ', 'GCHPchem', -# 'BudgetMixingPBL_HAC ', 'GCHPchem', -# 'BudgetMixingPBL_H2O2 ', 'GCHPchem', -# 'BudgetMixingPBL_H2O ', 'GCHPchem', -# 'BudgetMixingPBL_H2402 ', 'GCHPchem', -# 'BudgetMixingPBL_H1301 ', 'GCHPchem', -# 'BudgetMixingPBL_H1211 ', 'GCHPchem', -# 'BudgetMixingPBL_GLYX ', 'GCHPchem', -# 'BudgetMixingPBL_GLYC ', 'GCHPchem', -# 'BudgetMixingPBL_ETP ', 'GCHPchem', -# 'BudgetMixingPBL_ETNO3 ', 'GCHPchem', -# 'BudgetMixingPBL_ETHP ', 'GCHPchem', -# 'BudgetMixingPBL_ETHN ', 'GCHPchem', -# 'BudgetMixingPBL_ETHLN ', 'GCHPchem', -# 'BudgetMixingPBL_EOH ', 'GCHPchem', -# 'BudgetMixingPBL_DST4 ', 'GCHPchem', -# 'BudgetMixingPBL_DST3 ', 'GCHPchem', -# 'BudgetMixingPBL_DST2 ', 'GCHPchem', -# 'BudgetMixingPBL_DST1 ', 'GCHPchem', -# 'BudgetMixingPBL_DMS ', 'GCHPchem', -# 'BudgetMixingPBL_CO ', 'GCHPchem', -# 'BudgetMixingPBL_ClOO ', 'GCHPchem', -# 'BudgetMixingPBL_ClO ', 'GCHPchem', -# 'BudgetMixingPBL_ClNO3 ', 'GCHPchem', -# 'BudgetMixingPBL_ClNO2 ', 'GCHPchem', -# 'BudgetMixingPBL_Cl2O2 ', 'GCHPchem', -# 'BudgetMixingPBL_Cl2 ', 'GCHPchem', -# 'BudgetMixingPBL_Cl ', 'GCHPchem', -# 'BudgetMixingPBL_CHCl3 ', 'GCHPchem', -# 'BudgetMixingPBL_CHBr3 ', 'GCHPchem', -# 'BudgetMixingPBL_CH4 ', 'GCHPchem', -# 'BudgetMixingPBL_CH3I ', 'GCHPchem', -# 'BudgetMixingPBL_CH3Cl ', 'GCHPchem', -# 'BudgetMixingPBL_CH3CCl3 ', 'GCHPchem', -# 'BudgetMixingPBL_CH3Br ', 'GCHPchem', -# 'BudgetMixingPBL_CH2O ', 'GCHPchem', -# 'BudgetMixingPBL_CH2ICl ', 'GCHPchem', -# 'BudgetMixingPBL_CH2IBr ', 'GCHPchem', -# 'BudgetMixingPBL_CH2I2 ', 'GCHPchem', -# 'BudgetMixingPBL_CH2Cl2 ', 'GCHPchem', -# 'BudgetMixingPBL_CH2Br2 ', 'GCHPchem', -# 'BudgetMixingPBL_CFC12 ', 'GCHPchem', -# 'BudgetMixingPBL_CFC115 ', 'GCHPchem', -# 'BudgetMixingPBL_CFC114 ', 'GCHPchem', -# 'BudgetMixingPBL_CFC113 ', 'GCHPchem', -# 'BudgetMixingPBL_CFC11 ', 'GCHPchem', -# 'BudgetMixingPBL_CCl4 ', 'GCHPchem', -# 'BudgetMixingPBL_C3H8 ', 'GCHPchem', -# 'BudgetMixingPBL_C2H6 ', 'GCHPchem', -# 'BudgetMixingPBL_C2H4 ', 'GCHPchem', -# 'BudgetMixingPBL_C2H2 ', 'GCHPchem', -# 'BudgetMixingPBL_BrSALC ', 'GCHPchem', -# 'BudgetMixingPBL_BrSALA ', 'GCHPchem', -# 'BudgetMixingPBL_BrO ', 'GCHPchem', -# 'BudgetMixingPBL_BrNO3 ', 'GCHPchem', -# 'BudgetMixingPBL_BrNO2 ', 'GCHPchem', -# 'BudgetMixingPBL_BrCl ', 'GCHPchem', -# 'BudgetMixingPBL_Br2 ', 'GCHPchem', -# 'BudgetMixingPBL_Br ', 'GCHPchem', -# 'BudgetMixingPBL_BENZ ', 'GCHPchem', -# 'BudgetMixingPBL_BCPO ', 'GCHPchem', -# 'BudgetMixingPBL_BCPI ', 'GCHPchem', -# 'BudgetMixingPBL_ATOOH ', 'GCHPchem', -# 'BudgetMixingPBL_ALK4 ', 'GCHPchem', -# 'BudgetMixingPBL_ALD2 ', 'GCHPchem', -# 'BudgetMixingPBL_AERI ', 'GCHPchem', -# 'BudgetMixingPBL_ACTA ', 'GCHPchem', -# 'BudgetMixingPBL_ACET ', 'GCHPchem', -# #'BudgetMixingPBL_TSOG3 ', 'GCHPchem', -# #'BudgetMixingPBL_TSOG2 ', 'GCHPchem', -# #'BudgetMixingPBL_TSOG1 ', 'GCHPchem', -# #'BudgetMixingPBL_TSOG0 ', 'GCHPchem', -# #'BudgetMixingPBL_TSOA3 ', 'GCHPchem', -# #'BudgetMixingPBL_TSOA2 ', 'GCHPchem', -# #'BudgetMixingPBL_TSOA1 ', 'GCHPchem', -# #'BudgetMixingPBL_TSOA0 ', 'GCHPchem', -# #'BudgetMixingPBL_ASOG3 ', 'GCHPchem', -# #'BudgetMixingPBL_ASOG2 ', 'GCHPchem', -# #'BudgetMixingPBL_ASOG1 ', 'GCHPchem', -# #'BudgetMixingPBL_ASOAN ', 'GCHPchem', -# #'BudgetMixingPBL_ASOA3 ', 'GCHPchem', -# #'BudgetMixingPBL_ASOA2 ', 'GCHPchem', -# #'BudgetMixingPBL_ASOA1 ', 'GCHPchem', -# 'BudgetMixingTrop_XYLE ', 'GCHPchem', -# 'BudgetMixingTrop_TOLU ', 'GCHPchem', -# 'BudgetMixingTrop_SOAS ', 'GCHPchem', -# 'BudgetMixingTrop_SOAP ', 'GCHPchem', -# 'BudgetMixingTrop_SOAIE ', 'GCHPchem', -# 'BudgetMixingTrop_SOAGX ', 'GCHPchem', -# 'BudgetMixingTrop_SO4s ', 'GCHPchem', -# 'BudgetMixingTrop_SO4 ', 'GCHPchem', -# 'BudgetMixingTrop_SO2 ', 'GCHPchem', -# 'BudgetMixingTrop_SALCCL ', 'GCHPchem', -# 'BudgetMixingTrop_SALCAL ', 'GCHPchem', -# 'BudgetMixingTrop_SALC ', 'GCHPchem', -# 'BudgetMixingTrop_SALACL ', 'GCHPchem', -# 'BudgetMixingTrop_SALAAL ', 'GCHPchem', -# 'BudgetMixingTrop_SALA ', 'GCHPchem', -# 'BudgetMixingTrop_RP ', 'GCHPchem', -# 'BudgetMixingTrop_RIPD ', 'GCHPchem', -# 'BudgetMixingTrop_RIPC ', 'GCHPchem', -# 'BudgetMixingTrop_RIPB ', 'GCHPchem', -# 'BudgetMixingTrop_RIPA ', 'GCHPchem', -# 'BudgetMixingTrop_RCHO ', 'GCHPchem', -# 'BudgetMixingTrop_RB3P ', 'GCHPchem', -# 'BudgetMixingTrop_RA3P ', 'GCHPchem', -# 'BudgetMixingTrop_R4P ', 'GCHPchem', -# 'BudgetMixingTrop_R4N2 ', 'GCHPchem', -# 'BudgetMixingTrop_PYAC ', 'GCHPchem', -# 'BudgetMixingTrop_PRPN ', 'GCHPchem', -# 'BudgetMixingTrop_PRPE ', 'GCHPchem', -# 'BudgetMixingTrop_PROPNN ', 'GCHPchem', -# 'BudgetMixingTrop_PPN ', 'GCHPchem', -# 'BudgetMixingTrop_PP ', 'GCHPchem', -# 'BudgetMixingTrop_PIP ', 'GCHPchem', -# 'BudgetMixingTrop_pFe ', 'GCHPchem', -# 'BudgetMixingTrop_PAN ', 'GCHPchem', -# 'BudgetMixingTrop_OIO ', 'GCHPchem', -# 'BudgetMixingTrop_OCS ', 'GCHPchem', -# 'BudgetMixingTrop_OCPO ', 'GCHPchem', -# 'BudgetMixingTrop_OCPI ', 'GCHPchem', -# 'BudgetMixingTrop_OClO ', 'GCHPchem', -# 'BudgetMixingTrop_O3 ', 'GCHPchem', -# 'BudgetMixingTrop_NPRNO3 ', 'GCHPchem', -# 'BudgetMixingTrop_NO3 ', 'GCHPchem', -# 'BudgetMixingTrop_NO2 ', 'GCHPchem', -# 'BudgetMixingTrop_NO ', 'GCHPchem', -# 'BudgetMixingTrop_NITs ', 'GCHPchem', -# 'BudgetMixingTrop_NIT ', 'GCHPchem', -# 'BudgetMixingTrop_NH4 ', 'GCHPchem', -# 'BudgetMixingTrop_NH3 ', 'GCHPchem', -# 'BudgetMixingTrop_N2O5 ', 'GCHPchem', -# 'BudgetMixingTrop_N2O ', 'GCHPchem', -# 'BudgetMixingTrop_MVKPC ', 'GCHPchem', -# 'BudgetMixingTrop_MVKN ', 'GCHPchem', -# 'BudgetMixingTrop_MVKHP ', 'GCHPchem', -# 'BudgetMixingTrop_MVKHCB ', 'GCHPchem', -# 'BudgetMixingTrop_MVKHC ', 'GCHPchem', -# 'BudgetMixingTrop_MVKDH ', 'GCHPchem', -# 'BudgetMixingTrop_MVK ', 'GCHPchem', -# 'BudgetMixingTrop_MTPO ', 'GCHPchem', -# 'BudgetMixingTrop_MTPA ', 'GCHPchem', -# 'BudgetMixingTrop_MSA ', 'GCHPchem', -# 'BudgetMixingTrop_MPN ', 'GCHPchem', -# 'BudgetMixingTrop_MPAN ', 'GCHPchem', -# 'BudgetMixingTrop_MP ', 'GCHPchem', -# 'BudgetMixingTrop_MONITU ', 'GCHPchem', -# 'BudgetMixingTrop_MONITS ', 'GCHPchem', -# 'BudgetMixingTrop_MONITA ', 'GCHPchem', -# 'BudgetMixingTrop_MOH ', 'GCHPchem', -# 'BudgetMixingTrop_MGLY ', 'GCHPchem', -# 'BudgetMixingTrop_MENO3 ', 'GCHPchem', -# 'BudgetMixingTrop_MEK ', 'GCHPchem', -# 'BudgetMixingTrop_MCRHP ', 'GCHPchem', -# 'BudgetMixingTrop_MCRHNB ', 'GCHPchem', -# 'BudgetMixingTrop_MCRHN ', 'GCHPchem', -# 'BudgetMixingTrop_MCRENOL ', 'GCHPchem', -# 'BudgetMixingTrop_MCRDH ', 'GCHPchem', -# 'BudgetMixingTrop_MAP ', 'GCHPchem', -# 'BudgetMixingTrop_MACR1OOH ', 'GCHPchem', -# 'BudgetMixingTrop_MACR ', 'GCHPchem', -# 'BudgetMixingTrop_LVOCOA ', 'GCHPchem', -# 'BudgetMixingTrop_LVOC ', 'GCHPchem', -# 'BudgetMixingTrop_LIMO ', 'GCHPchem', -# 'BudgetMixingTrop_ITHN ', 'GCHPchem', -# 'BudgetMixingTrop_ITCN ', 'GCHPchem', -# 'BudgetMixingTrop_ISOP ', 'GCHPchem', -# 'BudgetMixingTrop_ISALC ', 'GCHPchem', -# 'BudgetMixingTrop_ISALA ', 'GCHPchem', -# 'BudgetMixingTrop_IPRNO3 ', 'GCHPchem', -# 'BudgetMixingTrop_IONO2 ', 'GCHPchem', -# 'BudgetMixingTrop_IONO ', 'GCHPchem', -# 'BudgetMixingTrop_IONITA ', 'GCHPchem', -# 'BudgetMixingTrop_IO ', 'GCHPchem', -# 'BudgetMixingTrop_INPD ', 'GCHPchem', -# 'BudgetMixingTrop_INPB ', 'GCHPchem', -# 'BudgetMixingTrop_INO ', 'GCHPchem', -# 'BudgetMixingTrop_INDIOL ', 'GCHPchem', -# 'BudgetMixingTrop_IHN4 ', 'GCHPchem', -# 'BudgetMixingTrop_IHN3 ', 'GCHPchem', -# 'BudgetMixingTrop_IHN2 ', 'GCHPchem', -# 'BudgetMixingTrop_IHN1 ', 'GCHPchem', -# 'BudgetMixingTrop_IEPOXD ', 'GCHPchem', -# 'BudgetMixingTrop_IEPOXB ', 'GCHPchem', -# 'BudgetMixingTrop_IEPOXA ', 'GCHPchem', -# 'BudgetMixingTrop_IDN ', 'GCHPchem', -# 'BudgetMixingTrop_IDHPE ', 'GCHPchem', -# 'BudgetMixingTrop_IDHDP ', 'GCHPchem', -# 'BudgetMixingTrop_IDCHP ', 'GCHPchem', -# 'BudgetMixingTrop_IDC ', 'GCHPchem', -# 'BudgetMixingTrop_ICPDH ', 'GCHPchem', -# 'BudgetMixingTrop_ICN ', 'GCHPchem', -# 'BudgetMixingTrop_ICl ', 'GCHPchem', -# 'BudgetMixingTrop_ICHE ', 'GCHPchem', -# 'BudgetMixingTrop_IBr ', 'GCHPchem', -# 'BudgetMixingTrop_I2O4 ', 'GCHPchem', -# 'BudgetMixingTrop_I2O3 ', 'GCHPchem', -# 'BudgetMixingTrop_I2O2 ', 'GCHPchem', -# 'BudgetMixingTrop_I2 ', 'GCHPchem', -# 'BudgetMixingTrop_I ', 'GCHPchem', -# 'BudgetMixingTrop_HPETHNL ', 'GCHPchem', -# 'BudgetMixingTrop_HPALD4 ', 'GCHPchem', -# 'BudgetMixingTrop_HPALD3 ', 'GCHPchem', -# 'BudgetMixingTrop_HPALD2 ', 'GCHPchem', -# 'BudgetMixingTrop_HPALD1 ', 'GCHPchem', -# 'BudgetMixingTrop_HONIT ', 'GCHPchem', -# 'BudgetMixingTrop_HOI ', 'GCHPchem', -# 'BudgetMixingTrop_HOCl ', 'GCHPchem', -# 'BudgetMixingTrop_HOBr ', 'GCHPchem', -# 'BudgetMixingTrop_HNO4 ', 'GCHPchem', -# 'BudgetMixingTrop_HNO3 ', 'GCHPchem', -# 'BudgetMixingTrop_HNO2 ', 'GCHPchem', -# 'BudgetMixingTrop_HMS ', 'GCHPchem', -# 'BudgetMixingTrop_HMML ', 'GCHPchem', -# 'BudgetMixingTrop_HMHP ', 'GCHPchem', -# 'BudgetMixingTrop_HI ', 'GCHPchem', -# 'BudgetMixingTrop_HCOOH ', 'GCHPchem', -# 'BudgetMixingTrop_HCl ', 'GCHPchem', -# 'BudgetMixingTrop_HCFC22 ', 'GCHPchem', -# 'BudgetMixingTrop_HCFC142b ', 'GCHPchem', -# 'BudgetMixingTrop_HCFC141b ', 'GCHPchem', -# 'BudgetMixingTrop_HCFC123 ', 'GCHPchem', -# 'BudgetMixingTrop_HC5A ', 'GCHPchem', -# 'BudgetMixingTrop_HBr ', 'GCHPchem', -# 'BudgetMixingTrop_HAC ', 'GCHPchem', -# 'BudgetMixingTrop_H2O2 ', 'GCHPchem', -# 'BudgetMixingTrop_H2O ', 'GCHPchem', -# 'BudgetMixingTrop_H2402 ', 'GCHPchem', -# 'BudgetMixingTrop_H1301 ', 'GCHPchem', -# 'BudgetMixingTrop_H1211 ', 'GCHPchem', -# 'BudgetMixingTrop_GLYX ', 'GCHPchem', -# 'BudgetMixingTrop_GLYC ', 'GCHPchem', -# 'BudgetMixingTrop_ETP ', 'GCHPchem', -# 'BudgetMixingTrop_ETNO3 ', 'GCHPchem', -# 'BudgetMixingTrop_ETHP ', 'GCHPchem', -# 'BudgetMixingTrop_ETHN ', 'GCHPchem', -# 'BudgetMixingTrop_ETHLN ', 'GCHPchem', -# 'BudgetMixingTrop_EOH ', 'GCHPchem', -# 'BudgetMixingTrop_DST4 ', 'GCHPchem', -# 'BudgetMixingTrop_DST3 ', 'GCHPchem', -# 'BudgetMixingTrop_DST2 ', 'GCHPchem', -# 'BudgetMixingTrop_DST1 ', 'GCHPchem', -# 'BudgetMixingTrop_DMS ', 'GCHPchem', -# 'BudgetMixingTrop_CO ', 'GCHPchem', -# 'BudgetMixingTrop_ClOO ', 'GCHPchem', -# 'BudgetMixingTrop_ClO ', 'GCHPchem', -# 'BudgetMixingTrop_ClNO3 ', 'GCHPchem', -# 'BudgetMixingTrop_ClNO2 ', 'GCHPchem', -# 'BudgetMixingTrop_Cl2O2 ', 'GCHPchem', -# 'BudgetMixingTrop_Cl2 ', 'GCHPchem', -# 'BudgetMixingTrop_Cl ', 'GCHPchem', -# 'BudgetMixingTrop_CHCl3 ', 'GCHPchem', -# 'BudgetMixingTrop_CHBr3 ', 'GCHPchem', -# 'BudgetMixingTrop_CH4 ', 'GCHPchem', -# 'BudgetMixingTrop_CH3I ', 'GCHPchem', -# 'BudgetMixingTrop_CH3Cl ', 'GCHPchem', -# 'BudgetMixingTrop_CH3CCl3 ', 'GCHPchem', -# 'BudgetMixingTrop_CH3Br ', 'GCHPchem', -# 'BudgetMixingTrop_CH2O ', 'GCHPchem', -# 'BudgetMixingTrop_CH2ICl ', 'GCHPchem', -# 'BudgetMixingTrop_CH2IBr ', 'GCHPchem', -# 'BudgetMixingTrop_CH2I2 ', 'GCHPchem', -# 'BudgetMixingTrop_CH2Cl2 ', 'GCHPchem', -# 'BudgetMixingTrop_CH2Br2 ', 'GCHPchem', -# 'BudgetMixingTrop_CFC12 ', 'GCHPchem', -# 'BudgetMixingTrop_CFC115 ', 'GCHPchem', -# 'BudgetMixingTrop_CFC114 ', 'GCHPchem', -# 'BudgetMixingTrop_CFC113 ', 'GCHPchem', -# 'BudgetMixingTrop_CFC11 ', 'GCHPchem', -# 'BudgetMixingTrop_CCl4 ', 'GCHPchem', -# 'BudgetMixingTrop_C3H8 ', 'GCHPchem', -# 'BudgetMixingTrop_C2H6 ', 'GCHPchem', -# 'BudgetMixingTrop_C2H4 ', 'GCHPchem', -# 'BudgetMixingTrop_C2H2 ', 'GCHPchem', -# 'BudgetMixingTrop_BrSALC ', 'GCHPchem', -# 'BudgetMixingTrop_BrSALA ', 'GCHPchem', -# 'BudgetMixingTrop_BrO ', 'GCHPchem', -# 'BudgetMixingTrop_BrNO3 ', 'GCHPchem', -# 'BudgetMixingTrop_BrNO2 ', 'GCHPchem', -# 'BudgetMixingTrop_BrCl ', 'GCHPchem', -# 'BudgetMixingTrop_Br2 ', 'GCHPchem', -# 'BudgetMixingTrop_Br ', 'GCHPchem', -# 'BudgetMixingTrop_BENZ ', 'GCHPchem', -# 'BudgetMixingTrop_BCPO ', 'GCHPchem', -# 'BudgetMixingTrop_BCPI ', 'GCHPchem', -# 'BudgetMixingTrop_ATOOH ', 'GCHPchem', -# 'BudgetMixingTrop_ALK4 ', 'GCHPchem', -# 'BudgetMixingTrop_ALD2 ', 'GCHPchem', -# 'BudgetMixingTrop_AERI ', 'GCHPchem', -# 'BudgetMixingTrop_ACTA ', 'GCHPchem', -# 'BudgetMixingTrop_ACET ', 'GCHPchem', -# #'BudgetMixingTrop_TSOG3 ', 'GCHPchem', -# #'BudgetMixingTrop_TSOG2 ', 'GCHPchem', -# #'BudgetMixingTrop_TSOG1 ', 'GCHPchem', -# #'BudgetMixingTrop_TSOG0 ', 'GCHPchem', -# #'BudgetMixingTrop_TSOA3 ', 'GCHPchem', -# #'BudgetMixingTrop_TSOA2 ', 'GCHPchem', -# #'BudgetMixingTrop_TSOA1 ', 'GCHPchem', -# #'BudgetMixingTrop_TSOA0 ', 'GCHPchem', -# #'BudgetMixingTrop_ASOG3 ', 'GCHPchem', -# #'BudgetMixingTrop_ASOG2 ', 'GCHPchem', -# #'BudgetMixingTrop_ASOG1 ', 'GCHPchem', -# #'BudgetMixingTrop_ASOAN ', 'GCHPchem', -# #'BudgetMixingTrop_ASOA3 ', 'GCHPchem', -# #'BudgetMixingTrop_ASOA2 ', 'GCHPchem', -# #'BudgetMixingTrop_ASOA1 ', 'GCHPchem', -# 'BudgetMixingFull_XYLE ', 'GCHPchem', -# 'BudgetMixingFull_TOLU ', 'GCHPchem', -# 'BudgetMixingFull_SOAS ', 'GCHPchem', -# 'BudgetMixingFull_SOAP ', 'GCHPchem', -# 'BudgetMixingFull_SOAIE ', 'GCHPchem', -# 'BudgetMixingFull_SOAGX ', 'GCHPchem', -# 'BudgetMixingFull_SO4s ', 'GCHPchem', -# 'BudgetMixingFull_SO4 ', 'GCHPchem', -# 'BudgetMixingFull_SO2 ', 'GCHPchem', -# 'BudgetMixingFull_SALCCL ', 'GCHPchem', -# 'BudgetMixingFull_SALCAL ', 'GCHPchem', -# 'BudgetMixingFull_SALC ', 'GCHPchem', -# 'BudgetMixingFull_SALACL ', 'GCHPchem', -# 'BudgetMixingFull_SALAAL ', 'GCHPchem', -# 'BudgetMixingFull_SALA ', 'GCHPchem', -# 'BudgetMixingFull_RP ', 'GCHPchem', -# 'BudgetMixingFull_RIPD ', 'GCHPchem', -# 'BudgetMixingFull_RIPC ', 'GCHPchem', -# 'BudgetMixingFull_RIPB ', 'GCHPchem', -# 'BudgetMixingFull_RIPA ', 'GCHPchem', -# 'BudgetMixingFull_RCHO ', 'GCHPchem', -# 'BudgetMixingFull_RB3P ', 'GCHPchem', -# 'BudgetMixingFull_RA3P ', 'GCHPchem', -# 'BudgetMixingFull_R4P ', 'GCHPchem', -# 'BudgetMixingFull_R4N2 ', 'GCHPchem', -# 'BudgetMixingFull_PYAC ', 'GCHPchem', -# 'BudgetMixingFull_PRPN ', 'GCHPchem', -# 'BudgetMixingFull_PRPE ', 'GCHPchem', -# 'BudgetMixingFull_PROPNN ', 'GCHPchem', -# 'BudgetMixingFull_PPN ', 'GCHPchem', -# 'BudgetMixingFull_PP ', 'GCHPchem', -# 'BudgetMixingFull_PIP ', 'GCHPchem', -# 'BudgetMixingFull_pFe ', 'GCHPchem', -# 'BudgetMixingFull_PAN ', 'GCHPchem', -# 'BudgetMixingFull_OIO ', 'GCHPchem', -# 'BudgetMixingFull_OCS ', 'GCHPchem', -# 'BudgetMixingFull_OCPO ', 'GCHPchem', -# 'BudgetMixingFull_OCPI ', 'GCHPchem', -# 'BudgetMixingFull_OClO ', 'GCHPchem', -# 'BudgetMixingFull_O3 ', 'GCHPchem', -# 'BudgetMixingFull_NPRNO3 ', 'GCHPchem', -# 'BudgetMixingFull_NO3 ', 'GCHPchem', -# 'BudgetMixingFull_NO2 ', 'GCHPchem', -# 'BudgetMixingFull_NO ', 'GCHPchem', -# 'BudgetMixingFull_NITs ', 'GCHPchem', -# 'BudgetMixingFull_NIT ', 'GCHPchem', -# 'BudgetMixingFull_NH4 ', 'GCHPchem', -# 'BudgetMixingFull_NH3 ', 'GCHPchem', -# 'BudgetMixingFull_N2O5 ', 'GCHPchem', -# 'BudgetMixingFull_N2O ', 'GCHPchem', -# 'BudgetMixingFull_MVKPC ', 'GCHPchem', -# 'BudgetMixingFull_MVKN ', 'GCHPchem', -# 'BudgetMixingFull_MVKHP ', 'GCHPchem', -# 'BudgetMixingFull_MVKHCB ', 'GCHPchem', -# 'BudgetMixingFull_MVKHC ', 'GCHPchem', -# 'BudgetMixingFull_MVKDH ', 'GCHPchem', -# 'BudgetMixingFull_MVK ', 'GCHPchem', -# 'BudgetMixingFull_MTPO ', 'GCHPchem', -# 'BudgetMixingFull_MTPA ', 'GCHPchem', -# 'BudgetMixingFull_MSA ', 'GCHPchem', -# 'BudgetMixingFull_MPN ', 'GCHPchem', -# 'BudgetMixingFull_MPAN ', 'GCHPchem', -# 'BudgetMixingFull_MP ', 'GCHPchem', -# 'BudgetMixingFull_MONITU ', 'GCHPchem', -# 'BudgetMixingFull_MONITS ', 'GCHPchem', -# 'BudgetMixingFull_MONITA ', 'GCHPchem', -# 'BudgetMixingFull_MOH ', 'GCHPchem', -# 'BudgetMixingFull_MGLY ', 'GCHPchem', -# 'BudgetMixingFull_MENO3 ', 'GCHPchem', -# 'BudgetMixingFull_MEK ', 'GCHPchem', -# 'BudgetMixingFull_MCRHP ', 'GCHPchem', -# 'BudgetMixingFull_MCRHNB ', 'GCHPchem', -# 'BudgetMixingFull_MCRHN ', 'GCHPchem', -# 'BudgetMixingFull_MCRENOL ', 'GCHPchem', -# 'BudgetMixingFull_MCRDH ', 'GCHPchem', -# 'BudgetMixingFull_MAP ', 'GCHPchem', -# 'BudgetMixingFull_MACR1OOH ', 'GCHPchem', -# 'BudgetMixingFull_MACR ', 'GCHPchem', -# 'BudgetMixingFull_LVOCOA ', 'GCHPchem', -# 'BudgetMixingFull_LVOC ', 'GCHPchem', -# 'BudgetMixingFull_LIMO ', 'GCHPchem', -# 'BudgetMixingFull_ITHN ', 'GCHPchem', -# 'BudgetMixingFull_ITCN ', 'GCHPchem', -# 'BudgetMixingFull_ISOP ', 'GCHPchem', -# 'BudgetMixingFull_ISALC ', 'GCHPchem', -# 'BudgetMixingFull_ISALA ', 'GCHPchem', -# 'BudgetMixingFull_IPRNO3 ', 'GCHPchem', -# 'BudgetMixingFull_IONO2 ', 'GCHPchem', -# 'BudgetMixingFull_IONO ', 'GCHPchem', -# 'BudgetMixingFull_IONITA ', 'GCHPchem', -# 'BudgetMixingFull_IO ', 'GCHPchem', -# 'BudgetMixingFull_INPD ', 'GCHPchem', -# 'BudgetMixingFull_INPB ', 'GCHPchem', -# 'BudgetMixingFull_INO ', 'GCHPchem', -# 'BudgetMixingFull_INDIOL ', 'GCHPchem', -# 'BudgetMixingFull_IHN4 ', 'GCHPchem', -# 'BudgetMixingFull_IHN3 ', 'GCHPchem', -# 'BudgetMixingFull_IHN2 ', 'GCHPchem', -# 'BudgetMixingFull_IHN1 ', 'GCHPchem', -# 'BudgetMixingFull_IEPOXD ', 'GCHPchem', -# 'BudgetMixingFull_IEPOXB ', 'GCHPchem', -# 'BudgetMixingFull_IEPOXA ', 'GCHPchem', -# 'BudgetMixingFull_IDN ', 'GCHPchem', -# 'BudgetMixingFull_IDHPE ', 'GCHPchem', -# 'BudgetMixingFull_IDHDP ', 'GCHPchem', -# 'BudgetMixingFull_IDCHP ', 'GCHPchem', -# 'BudgetMixingFull_IDC ', 'GCHPchem', -# 'BudgetMixingFull_ICPDH ', 'GCHPchem', -# 'BudgetMixingFull_ICN ', 'GCHPchem', -# 'BudgetMixingFull_ICl ', 'GCHPchem', -# 'BudgetMixingFull_ICHE ', 'GCHPchem', -# 'BudgetMixingFull_IBr ', 'GCHPchem', -# 'BudgetMixingFull_I2O4 ', 'GCHPchem', -# 'BudgetMixingFull_I2O3 ', 'GCHPchem', -# 'BudgetMixingFull_I2O2 ', 'GCHPchem', -# 'BudgetMixingFull_I2 ', 'GCHPchem', -# 'BudgetMixingFull_I ', 'GCHPchem', -# 'BudgetMixingFull_HPETHNL ', 'GCHPchem', -# 'BudgetMixingFull_HPALD4 ', 'GCHPchem', -# 'BudgetMixingFull_HPALD3 ', 'GCHPchem', -# 'BudgetMixingFull_HPALD2 ', 'GCHPchem', -# 'BudgetMixingFull_HPALD1 ', 'GCHPchem', -# 'BudgetMixingFull_HONIT ', 'GCHPchem', -# 'BudgetMixingFull_HOI ', 'GCHPchem', -# 'BudgetMixingFull_HOCl ', 'GCHPchem', -# 'BudgetMixingFull_HOBr ', 'GCHPchem', -# 'BudgetMixingFull_HNO4 ', 'GCHPchem', -# 'BudgetMixingFull_HNO3 ', 'GCHPchem', -# 'BudgetMixingFull_HNO2 ', 'GCHPchem', -# 'BudgetMixingFull_HMML ', 'GCHPchem', -# 'BudgetMixingFull_HMHP ', 'GCHPchem', -# 'BudgetMixingFull_HI ', 'GCHPchem', -# 'BudgetMixingFull_HCOOH ', 'GCHPchem', -# 'BudgetMixingFull_HCl ', 'GCHPchem', -# 'BudgetMixingFull_HCFC22 ', 'GCHPchem', -# 'BudgetMixingFull_HCFC142b ', 'GCHPchem', -# 'BudgetMixingFull_HCFC141b ', 'GCHPchem', -# 'BudgetMixingFull_HCFC123 ', 'GCHPchem', -# 'BudgetMixingFull_HC5A ', 'GCHPchem', -# 'BudgetMixingFull_HBr ', 'GCHPchem', -# 'BudgetMixingFull_HAC ', 'GCHPchem', -# 'BudgetMixingFull_H2O2 ', 'GCHPchem', -# 'BudgetMixingFull_H2O ', 'GCHPchem', -# 'BudgetMixingFull_H2402 ', 'GCHPchem', -# 'BudgetMixingFull_H1301 ', 'GCHPchem', -# 'BudgetMixingFull_H1211 ', 'GCHPchem', -# 'BudgetMixingFull_GLYX ', 'GCHPchem', -# 'BudgetMixingFull_GLYC ', 'GCHPchem', -# 'BudgetMixingFull_ETP ', 'GCHPchem', -# 'BudgetMixingFull_ETNO3 ', 'GCHPchem', -# 'BudgetMixingFull_ETHP ', 'GCHPchem', -# 'BudgetMixingFull_ETHN ', 'GCHPchem', -# 'BudgetMixingFull_ETHLN ', 'GCHPchem', -# 'BudgetMixingFull_EOH ', 'GCHPchem', -# 'BudgetMixingFull_DST4 ', 'GCHPchem', -# 'BudgetMixingFull_DST3 ', 'GCHPchem', -# 'BudgetMixingFull_DST2 ', 'GCHPchem', -# 'BudgetMixingFull_DST1 ', 'GCHPchem', -# 'BudgetMixingFull_DMS ', 'GCHPchem', -# 'BudgetMixingFull_CO ', 'GCHPchem', -# 'BudgetMixingFull_ClOO ', 'GCHPchem', -# 'BudgetMixingFull_ClO ', 'GCHPchem', -# 'BudgetMixingFull_ClNO3 ', 'GCHPchem', -# 'BudgetMixingFull_ClNO2 ', 'GCHPchem', -# 'BudgetMixingFull_Cl2O2 ', 'GCHPchem', -# 'BudgetMixingFull_Cl2 ', 'GCHPchem', -# 'BudgetMixingFull_Cl ', 'GCHPchem', -# 'BudgetMixingFull_CHCl3 ', 'GCHPchem', -# 'BudgetMixingFull_CHBr3 ', 'GCHPchem', -# 'BudgetMixingFull_CH4 ', 'GCHPchem', -# 'BudgetMixingFull_CH3I ', 'GCHPchem', -# 'BudgetMixingFull_CH3Cl ', 'GCHPchem', -# 'BudgetMixingFull_CH3CCl3 ', 'GCHPchem', -# 'BudgetMixingFull_CH3Br ', 'GCHPchem', -# 'BudgetMixingFull_CH2O ', 'GCHPchem', -# 'BudgetMixingFull_CH2ICl ', 'GCHPchem', -# 'BudgetMixingFull_CH2IBr ', 'GCHPchem', -# 'BudgetMixingFull_CH2I2 ', 'GCHPchem', -# 'BudgetMixingFull_CH2Cl2 ', 'GCHPchem', -# 'BudgetMixingFull_CH2Br2 ', 'GCHPchem', -# 'BudgetMixingFull_CFC12 ', 'GCHPchem', -# 'BudgetMixingFull_CFC115 ', 'GCHPchem', -# 'BudgetMixingFull_CFC114 ', 'GCHPchem', -# 'BudgetMixingFull_CFC113 ', 'GCHPchem', -# 'BudgetMixingFull_CFC11 ', 'GCHPchem', -# 'BudgetMixingFull_CCl4 ', 'GCHPchem', -# 'BudgetMixingFull_C3H8 ', 'GCHPchem', -# 'BudgetMixingFull_C2H6 ', 'GCHPchem', -# 'BudgetMixingFull_C2H4 ', 'GCHPchem', -# 'BudgetMixingFull_C2H2 ', 'GCHPchem', -# 'BudgetMixingFull_BrSALC ', 'GCHPchem', -# 'BudgetMixingFull_BrSALA ', 'GCHPchem', -# 'BudgetMixingFull_BrO ', 'GCHPchem', -# 'BudgetMixingFull_BrNO3 ', 'GCHPchem', -# 'BudgetMixingFull_BrNO2 ', 'GCHPchem', -# 'BudgetMixingFull_BrCl ', 'GCHPchem', -# 'BudgetMixingFull_Br2 ', 'GCHPchem', -# 'BudgetMixingFull_Br ', 'GCHPchem', -# 'BudgetMixingFull_BENZ ', 'GCHPchem', -# 'BudgetMixingFull_BCPO ', 'GCHPchem', -# 'BudgetMixingFull_BCPI ', 'GCHPchem', -# 'BudgetMixingFull_ATOOH ', 'GCHPchem', -# 'BudgetMixingFull_ALK4 ', 'GCHPchem', -# 'BudgetMixingFull_ALD2 ', 'GCHPchem', -# 'BudgetMixingFull_AERI ', 'GCHPchem', -# 'BudgetMixingFull_ACTA ', 'GCHPchem', -# 'BudgetMixingFull_ACET ', 'GCHPchem', -# #'BudgetMixingFull_TSOG3 ', 'GCHPchem', -# #'BudgetMixingFull_TSOG2 ', 'GCHPchem', -# #'BudgetMixingFull_TSOG1 ', 'GCHPchem', -# #'BudgetMixingFull_TSOG0 ', 'GCHPchem', -# #'BudgetMixingFull_TSOA3 ', 'GCHPchem', -# #'BudgetMixingFull_TSOA2 ', 'GCHPchem', -# #'BudgetMixingFull_TSOA1 ', 'GCHPchem', -# #'BudgetMixingFull_TSOA0 ', 'GCHPchem', -# #'BudgetMixingFull_ASOG3 ', 'GCHPchem', -# #'BudgetMixingFull_ASOG2 ', 'GCHPchem', -# #'BudgetMixingFull_ASOG1 ', 'GCHPchem', -# #'BudgetMixingFull_ASOAN ', 'GCHPchem', -# #'BudgetMixingFull_ASOA3 ', 'GCHPchem', -# #'BudgetMixingFull_ASOA2 ', 'GCHPchem', -# #'BudgetMixingFull_ASOA1 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_XYLE ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_TOLU ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SOAS ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SOAP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SOAIE ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SOAGX ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SO4s ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SO4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SO2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SALCCL ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SALCAL ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SALC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SALACL ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SALAAL ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_SALA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_RP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_RIPD ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_RIPC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_RIPB ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_RIPA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_RCHO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_RB3P ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_RA3P ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_R4P ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_R4N2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_PYAC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_PRPN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_PRPE ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_PROPNN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_PPN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_PP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_PIP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_pFe ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_PAN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_OIO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_OCS ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_OCPO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_OCPI ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_OClO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_O3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_NPRNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_NO3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_NO2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_NO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_NITs ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_NIT ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_NH4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_NH3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_N2O5 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_N2O ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MVKPC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MVKN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MVKHP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MVKHCB ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MVKHC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MVKDH ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MVK ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MTPO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MTPA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MSA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MPN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MPAN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MONITU ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MONITS ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MONITA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MOH ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MGLY ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MENO3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MEK ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MCRHP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MCRHNB ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MCRHN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MCRENOL ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MCRDH ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MAP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MACR1OOH ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_MACR ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_LVOCOA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_LVOC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_LIMO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ITHN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ITCN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ISOP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ISALC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ISALA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IPRNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IONO2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IONO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IONITA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_INPD ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_INPB ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_INO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_INDIOL ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IHN4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IHN3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IHN2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IHN1 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IEPOXD ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IEPOXB ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IEPOXA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IDN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IDHPE ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IDHDP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IDCHP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IDC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ICPDH ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ICN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ICl ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ICHE ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_IBr ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_I2O4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_I2O3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_I2O2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_I2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_I ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HPETHNL ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HPALD4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HPALD3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HPALD2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HPALD1 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HONIT ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HOI ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HOCl ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HOBr ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HNO4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HNO2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HMML ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HMHP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HI ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HCOOH ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HCl ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HCFC22 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HCFC142b ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HCFC141b ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HCFC123 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HC5A ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HBr ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_HAC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_H2O2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_H2O ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_H2402 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_H1301 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_H1211 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_GLYX ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_GLYC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ETP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ETNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ETHP ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ETHN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ETHLN ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_EOH ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_DST4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_DST3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_DST2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_DST1 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_DMS ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ClOO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ClO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ClNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ClNO2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_Cl2O2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_Cl2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_Cl ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CHCl3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CHBr3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH3I ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH3Cl ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH3CCl3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH3Br ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH2O ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH2ICl ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH2IBr ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH2I2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH2Cl2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CH2Br2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CFC12 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CFC115 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CFC114 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CFC113 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CFC11 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_CCl4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_C3H8 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_C2H6 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_C2H4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_C2H2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_BrSALC ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_BrSALA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_BrO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_BrNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_BrNO2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_BrCl ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_Br2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_Br ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_BENZ ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_BCPO ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_BCPI ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ATOOH ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ALK4 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ALD2 ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_AERI ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ACTA ', 'GCHPchem', -# 'BudgetEmisDryDepPBL_ACET ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_TSOG3 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_TSOG2 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_TSOG1 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_TSOG0 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_TSOA3 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_TSOA2 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_TSOA1 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_TSOA0 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_ASOG3 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_ASOG2 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_ASOG1 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_ASOAN ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_ASOA3 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_ASOA2 ', 'GCHPchem', -# #'BudgetEmisDryDepPBL_ASOA1 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_XYLE ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_TOLU ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SOAS ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SOAP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SOAIE ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SOAGX ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SO4s ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SO4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SO2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SALCCL ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SALCAL ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SALC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SALACL ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SALAAL ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_SALA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_RP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_RIPD ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_RIPC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_RIPB ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_RIPA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_RCHO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_RB3P ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_RA3P ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_R4P ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_R4N2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_PYAC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_PRPN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_PRPE ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_PROPNN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_PPN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_PP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_PIP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_pFe ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_PAN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_OIO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_OCS ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_OCPO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_OCPI ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_OClO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_O3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_NPRNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_NO3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_NO2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_NO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_NITs ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_NIT ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_NH4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_NH3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_N2O5 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_N2O ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MVKPC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MVKN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MVKHP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MVKHCB ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MVKHC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MVKDH ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MVK ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MTPO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MTPA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MSA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MPN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MPAN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MONITU ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MONITS ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MONITA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MOH ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MGLY ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MENO3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MEK ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MCRHP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MCRHNB ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MCRHN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MCRENOL ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MCRDH ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MAP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MACR1OOH ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_MACR ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_LVOCOA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_LVOC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_LIMO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ITHN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ITCN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ISOP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ISALC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ISALA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IPRNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IONO2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IONO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IONITA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_INPD ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_INPB ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_INO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_INDIOL ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IHN4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IHN3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IHN2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IHN1 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IEPOXD ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IEPOXB ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IEPOXA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IDN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IDHPE ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IDHDP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IDCHP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IDC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ICPDH ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ICN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ICl ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ICHE ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_IBr ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_I2O4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_I2O3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_I2O2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_I2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_I ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HPETHNL ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HPALD4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HPALD3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HPALD2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HPALD1 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HONIT ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HOI ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HOCl ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HOBr ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HNO4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HNO2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HMML ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HMHP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HI ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HCOOH ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HCl ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HCFC22 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HCFC142b ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HCFC141b ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HCFC123 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HC5A ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HBr ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_HAC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_H2O2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_H2O ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_H2402 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_H1301 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_H1211 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_GLYX ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_GLYC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ETP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ETNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ETHP ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ETHN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ETHLN ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_EOH ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_DST4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_DST3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_DST2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_DST1 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_DMS ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ClOO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ClO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ClNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ClNO2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_Cl2O2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_Cl2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_Cl ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CHCl3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CHBr3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH3I ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH3Cl ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH3CCl3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH3Br ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH2O ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH2ICl ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH2IBr ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH2I2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH2Cl2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CH2Br2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CFC12 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CFC115 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CFC114 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CFC113 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CFC11 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_CCl4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_C3H8 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_C2H6 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_C2H4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_C2H2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_BrSALC ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_BrSALA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_BrO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_BrNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_BrNO2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_BrCl ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_Br2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_Br ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_BENZ ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_BCPO ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_BCPI ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ATOOH ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ALK4 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ALD2 ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_AERI ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ACTA ', 'GCHPchem', -# 'BudgetEmisDryDepTrop_ACET ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_TSOG3 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_TSOG2 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_TSOG1 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_TSOG0 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_TSOA3 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_TSOA2 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_TSOA1 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_TSOA0 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_ASOG3 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_ASOG2 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_ASOG1 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_ASOAN ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_ASOA3 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_ASOA2 ', 'GCHPchem', -# #'BudgetEmisDryDepTrop_ASOA1 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_XYLE ', 'GCHPchem', -# 'BudgetEmisDryDepFull_TOLU ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SOAS ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SOAP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SOAIE ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SOAGX ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SO4s ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SO4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SO2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SALCCL ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SALCAL ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SALC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SALACL ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SALAAL ', 'GCHPchem', -# 'BudgetEmisDryDepFull_SALA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_RP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_RIPD ', 'GCHPchem', -# 'BudgetEmisDryDepFull_RIPC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_RIPB ', 'GCHPchem', -# 'BudgetEmisDryDepFull_RIPA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_RCHO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_RB3P ', 'GCHPchem', -# 'BudgetEmisDryDepFull_RA3P ', 'GCHPchem', -# 'BudgetEmisDryDepFull_R4P ', 'GCHPchem', -# 'BudgetEmisDryDepFull_R4N2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_PYAC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_PRPN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_PRPE ', 'GCHPchem', -# 'BudgetEmisDryDepFull_PROPNN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_PPN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_PP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_PIP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_pFe ', 'GCHPchem', -# 'BudgetEmisDryDepFull_PAN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_OIO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_OCS ', 'GCHPchem', -# 'BudgetEmisDryDepFull_OCPO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_OCPI ', 'GCHPchem', -# 'BudgetEmisDryDepFull_OClO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_O3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_NPRNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_NO3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_NO2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_NO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_NITs ', 'GCHPchem', -# 'BudgetEmisDryDepFull_NIT ', 'GCHPchem', -# 'BudgetEmisDryDepFull_NH4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_NH3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_N2O5 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_N2O ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MVKPC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MVKN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MVKHP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MVKHCB ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MVKHC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MVKDH ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MVK ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MTPO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MTPA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MSA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MPN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MPAN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MONITU ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MONITS ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MONITA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MOH ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MGLY ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MENO3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MEK ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MCRHP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MCRHNB ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MCRHN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MCRENOL ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MCRDH ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MAP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MACR1OOH ', 'GCHPchem', -# 'BudgetEmisDryDepFull_MACR ', 'GCHPchem', -# 'BudgetEmisDryDepFull_LVOCOA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_LVOC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_LIMO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ITHN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ITCN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ISOP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ISALC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ISALA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IPRNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IONO2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IONO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IONITA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_INPD ', 'GCHPchem', -# 'BudgetEmisDryDepFull_INPB ', 'GCHPchem', -# 'BudgetEmisDryDepFull_INO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_INDIOL ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IHN4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IHN3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IHN2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IHN1 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IEPOXD ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IEPOXB ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IEPOXA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IDN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IDHPE ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IDHDP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IDCHP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IDC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ICPDH ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ICN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ICl ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ICHE ', 'GCHPchem', -# 'BudgetEmisDryDepFull_IBr ', 'GCHPchem', -# 'BudgetEmisDryDepFull_I2O4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_I2O3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_I2O2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_I2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_I ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HPETHNL ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HPALD4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HPALD3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HPALD2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HPALD1 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HONIT ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HOI ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HOCl ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HOBr ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HNO4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HNO2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HMML ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HMHP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HI ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HCOOH ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HCl ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HCFC22 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HCFC142b ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HCFC141b ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HCFC123 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HC5A ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HBr ', 'GCHPchem', -# 'BudgetEmisDryDepFull_HAC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_H2O2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_H2O ', 'GCHPchem', -# 'BudgetEmisDryDepFull_H2402 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_H1301 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_H1211 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_GLYX ', 'GCHPchem', -# 'BudgetEmisDryDepFull_GLYC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ETP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ETNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ETHP ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ETHN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ETHLN ', 'GCHPchem', -# 'BudgetEmisDryDepFull_EOH ', 'GCHPchem', -# 'BudgetEmisDryDepFull_DST4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_DST3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_DST2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_DST1 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_DMS ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ClOO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ClO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ClNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ClNO2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_Cl2O2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_Cl2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_Cl ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CHCl3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CHBr3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH3I ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH3Cl ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH3CCl3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH3Br ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH2O ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH2ICl ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH2IBr ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH2I2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH2Cl2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CH2Br2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CFC12 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CFC115 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CFC114 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CFC113 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CFC11 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_CCl4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_C3H8 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_C2H6 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_C2H4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_C2H2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_BrSALC ', 'GCHPchem', -# 'BudgetEmisDryDepFull_BrSALA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_BrO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_BrNO3 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_BrNO2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_BrCl ', 'GCHPchem', -# 'BudgetEmisDryDepFull_Br2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_Br ', 'GCHPchem', -# 'BudgetEmisDryDepFull_BENZ ', 'GCHPchem', -# 'BudgetEmisDryDepFull_BCPO ', 'GCHPchem', -# 'BudgetEmisDryDepFull_BCPI ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ATOOH ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ALK4 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ALD2 ', 'GCHPchem', -# 'BudgetEmisDryDepFull_AERI ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ACTA ', 'GCHPchem', -# 'BudgetEmisDryDepFull_ACET ', 'GCHPchem', -# #'BudgetEmisDryDepFull_TSOG3 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_TSOG2 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_TSOG1 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_TSOG0 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_TSOA3 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_TSOA2 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_TSOA1 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_TSOA0 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_ASOG3 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_ASOG2 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_ASOG1 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_ASOAN ', 'GCHPchem', -# #'BudgetEmisDryDepFull_ASOA3 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_ASOA2 ', 'GCHPchem', -# #'BudgetEmisDryDepFull_ASOA1 ', 'GCHPchem', + Budget.fields: 'BudgetWetDepFull_O3 ', 'GCHPchem', + 'BudgetChemistryFull_O3 ', 'GCHPchem', + 'BudgetConvectionFull_O3 ', 'GCHPchem', + 'BudgetMixingFull_O3 ', 'GCHPchem', + 'BudgetEmisDryDepFull_O3 ', 'GCHPchem', + # + 'BudgetWetDepLevs1to35_O3 ', 'GCHPchem', + 'BudgetChemistryLevs1to35_O3 ', 'GCHPchem', + 'BudgetConvectionLevs1to35_O3 ', 'GCHPchem', + 'BudgetMixingLevs1to35_O3 ', 'GCHPchem', + 'BudgetEmisDryDepLevs1to35_O3 ', 'GCHPchem', + # + 'BudgetWetDepTrop_O3 ', 'GCHPchem', + 'BudgetChemistryTrop_O3 ', 'GCHPchem', + 'BudgetConvectionTrop_O3 ', 'GCHPchem', + 'BudgetMixingTrop_O3 ', 'GCHPchem', + 'BudgetEmisDryDepTrop_O3 ', 'GCHPchem', + # + 'BudgetWetDepPBL_O3 ', 'GCHPchem', + 'BudgetChemistryPBL_O3 ', 'GCHPchem', + 'BudgetConvectionPBL_O3 ', 'GCHPchem', + 'BudgetMixingPBL_O3 ', 'GCHPchem', + 'BudgetEmisDryDepPBL_O3 ', 'GCHPchem', :: #============================================================================= #%%%%% THE CloudConvFlux COLLECTION %%%%% @@ -4109,339 +1096,363 @@ COLLECTIONS: @#'DefaultCollection', DryDep.frequency: 010000 DryDep.duration: 010000 DryDep.mode: 'time-averaged' - DryDep.fields: 'DryDep_SOAS ', 'GCHPchem', - 'DryDep_SOAIE ', 'GCHPchem', - 'DryDep_SOAGX ', 'GCHPchem', - 'DryDep_SO4s ', 'GCHPchem', - 'DryDep_SO4 ', 'GCHPchem', - 'DryDep_SO2 ', 'GCHPchem', - 'DryDep_SALCCL ', 'GCHPchem', - 'DryDep_SALCAL ', 'GCHPchem', - 'DryDep_SALC ', 'GCHPchem', - 'DryDep_SALACL ', 'GCHPchem', - 'DryDep_SALAAL ', 'GCHPchem', - 'DryDep_SALA ', 'GCHPchem', - 'DryDep_RP ', 'GCHPchem', - 'DryDep_RIPD ', 'GCHPchem', - 'DryDep_RIPC ', 'GCHPchem', - 'DryDep_RIPB ', 'GCHPchem', - 'DryDep_RIPA ', 'GCHPchem', - 'DryDep_RB3P ', 'GCHPchem', - 'DryDep_RA3P ', 'GCHPchem', - 'DryDep_R4P ', 'GCHPchem', - 'DryDep_R4N2 ', 'GCHPchem', - 'DryDep_PYAC ', 'GCHPchem', - 'DryDep_PRPN ', 'GCHPchem', - 'DryDep_PROPNN ', 'GCHPchem', - 'DryDep_PPN ', 'GCHPchem', - 'DryDep_PP ', 'GCHPchem', - 'DryDep_pFe ', 'GCHPchem', - 'DryDep_PAN ', 'GCHPchem', - 'DryDep_OCPO ', 'GCHPchem', - 'DryDep_OCPI ', 'GCHPchem', - 'DryDep_O3 ', 'GCHPchem', - 'DryDep_NPRNO3 ', 'GCHPchem', - 'DryDep_NO2 ', 'GCHPchem', - 'DryDep_NITs ', 'GCHPchem', - 'DryDep_NIT ', 'GCHPchem', - 'DryDep_NH4 ', 'GCHPchem', - 'DryDep_NH3 ', 'GCHPchem', - 'DryDep_N2O5 ', 'GCHPchem', - 'DryDep_MVKPC ', 'GCHPchem', - 'DryDep_MVKN ', 'GCHPchem', - 'DryDep_MVKHP ', 'GCHPchem', - 'DryDep_MVKHCB ', 'GCHPchem', - 'DryDep_MVKHC ', 'GCHPchem', - 'DryDep_MVKDH ', 'GCHPchem', - 'DryDep_MVK ', 'GCHPchem', - 'DryDep_MTPO ', 'GCHPchem', - 'DryDep_MTPA ', 'GCHPchem', - 'DryDep_MSA ', 'GCHPchem', - 'DryDep_MPAN ', 'GCHPchem', - 'DryDep_MONITU ', 'GCHPchem', - 'DryDep_MONITS ', 'GCHPchem', - 'DryDep_MONITA ', 'GCHPchem', - 'DryDep_MOH ', 'GCHPchem', - 'DryDep_MGLY ', 'GCHPchem', - 'DryDep_MENO3 ', 'GCHPchem', - 'DryDep_MCRHP ', 'GCHPchem', - 'DryDep_MCRHNB ', 'GCHPchem', - 'DryDep_MCRHN ', 'GCHPchem', - 'DryDep_MCRENOL ', 'GCHPchem', - 'DryDep_MCRDH ', 'GCHPchem', - 'DryDep_MAP ', 'GCHPchem', - 'DryDep_MACR1OOH ', 'GCHPchem', - 'DryDep_MACR ', 'GCHPchem', - 'DryDep_LVOCOA ', 'GCHPchem', - 'DryDep_LVOC ', 'GCHPchem', - 'DryDep_LIMO ', 'GCHPchem', - 'DryDep_ITHN ', 'GCHPchem', - 'DryDep_ITCN ', 'GCHPchem', - 'DryDep_ISALC ', 'GCHPchem', - 'DryDep_ISALA ', 'GCHPchem', - 'DryDep_IPRNO3 ', 'GCHPchem', - 'DryDep_IONO2 ', 'GCHPchem', - 'DryDep_IONO ', 'GCHPchem', - 'DryDep_IONITA ', 'GCHPchem', - 'DryDep_INPD ', 'GCHPchem', - 'DryDep_INPB ', 'GCHPchem', - 'DryDep_INDIOL ', 'GCHPchem', - 'DryDep_IHN4 ', 'GCHPchem', - 'DryDep_IHN3 ', 'GCHPchem', - 'DryDep_IHN2 ', 'GCHPchem', - 'DryDep_IHN1 ', 'GCHPchem', - 'DryDep_IEPOXD ', 'GCHPchem', - 'DryDep_IEPOXB ', 'GCHPchem', - 'DryDep_IEPOXA ', 'GCHPchem', - 'DryDep_IDN ', 'GCHPchem', - 'DryDep_IDHPE ', 'GCHPchem', - 'DryDep_IDHDP ', 'GCHPchem', - 'DryDep_IDCHP ', 'GCHPchem', - 'DryDep_IDC ', 'GCHPchem', - 'DryDep_ICPDH ', 'GCHPchem', - 'DryDep_ICN ', 'GCHPchem', - 'DryDep_ICl ', 'GCHPchem', - 'DryDep_ICHE ', 'GCHPchem', - 'DryDep_IBr ', 'GCHPchem', - 'DryDep_I2O4 ', 'GCHPchem', - 'DryDep_I2O3 ', 'GCHPchem', - 'DryDep_I2O2 ', 'GCHPchem', - 'DryDep_I2 ', 'GCHPchem', - 'DryDep_HPETHNL ', 'GCHPchem', - 'DryDep_HPALD4 ', 'GCHPchem', - 'DryDep_HPALD3 ', 'GCHPchem', - 'DryDep_HPALD2 ', 'GCHPchem', - 'DryDep_HPALD1 ', 'GCHPchem', - 'DryDep_HONIT ', 'GCHPchem', - 'DryDep_HOI ', 'GCHPchem', - 'DryDep_HOCl ', 'GCHPchem', - 'DryDep_HOBr ', 'GCHPchem', - 'DryDep_HNO3 ', 'GCHPchem', - 'DryDep_HMS ', 'GCHPchem', - 'DryDep_HMML ', 'GCHPchem', - 'DryDep_HMHP ', 'GCHPchem', - 'DryDep_HI ', 'GCHPchem', - 'DryDep_HCOOH ', 'GCHPchem', - 'DryDep_HCl ', 'GCHPchem', - 'DryDep_HC5A ', 'GCHPchem', - 'DryDep_HBr ', 'GCHPchem', - 'DryDep_HAC ', 'GCHPchem', - 'DryDep_H2O2 ', 'GCHPchem', - 'DryDep_GLYX ', 'GCHPchem', - 'DryDep_GLYC ', 'GCHPchem', - 'DryDep_ETP ', 'GCHPchem', - 'DryDep_ETNO3 ', 'GCHPchem', - 'DryDep_ETHP ', 'GCHPchem', - 'DryDep_ETHN ', 'GCHPchem', - 'DryDep_ETHLN ', 'GCHPchem', - 'DryDep_EOH ', 'GCHPchem', - 'DryDep_DST4 ', 'GCHPchem', - 'DryDep_DST3 ', 'GCHPchem', - 'DryDep_DST2 ', 'GCHPchem', - 'DryDep_DST1 ', 'GCHPchem', - 'DryDep_ClOO ', 'GCHPchem', - 'DryDep_ClO ', 'GCHPchem', - 'DryDep_ClNO3 ', 'GCHPchem', - 'DryDep_ClNO2 ', 'GCHPchem', - 'DryDep_Cl2 ', 'GCHPchem', - 'DryDep_CH2O ', 'GCHPchem', - 'DryDep_BrSALC ', 'GCHPchem', - 'DryDep_BrSALA ', 'GCHPchem', - 'DryDep_BrNO3 ', 'GCHPchem', - 'DryDep_BrCl ', 'GCHPchem', - 'DryDep_Br2 ', 'GCHPchem', - 'DryDep_BCPO ', 'GCHPchem', - 'DryDep_BCPI ', 'GCHPchem', - 'DryDep_ATOOH ', 'GCHPchem', - 'DryDep_ALD2 ', 'GCHPchem', - 'DryDep_AERI ', 'GCHPchem', - 'DryDep_ACTA ', 'GCHPchem', - 'DryDep_ACET ', 'GCHPchem', - #'DryDep_TSOG3 ', 'GCHPchem', - #'DryDep_TSOG2 ', 'GCHPchem', - #'DryDep_TSOG1 ', 'GCHPchem', - #'DryDep_TSOG0 ', 'GCHPchem', - #'DryDep_TSOA3 ', 'GCHPchem', - #'DryDep_TSOA2 ', 'GCHPchem', - #'DryDep_TSOA1 ', 'GCHPchem', - #'DryDep_TSOA0 ', 'GCHPchem', - #'DryDep_ASOG3 ', 'GCHPchem', - #'DryDep_ASOG2 ', 'GCHPchem', - #'DryDep_ASOG1 ', 'GCHPchem', - #'DryDep_ASOAN ', 'GCHPchem', - #'DryDep_ASOA3 ', 'GCHPchem', - #'DryDep_ASOA2 ', 'GCHPchem', - #'DryDep_ASOA1 ', 'GCHPchem', - 'DryDepVel_SOAS ', 'GCHPchem', - 'DryDepVel_SOAIE ', 'GCHPchem', - 'DryDepVel_SOAGX ', 'GCHPchem', - 'DryDepVel_SO4s ', 'GCHPchem', - 'DryDepVel_SO4 ', 'GCHPchem', - 'DryDepVel_SO2 ', 'GCHPchem', - 'DryDepVel_SALCCL ', 'GCHPchem', - 'DryDepVel_SALCAL ', 'GCHPchem', - 'DryDepVel_SALC ', 'GCHPchem', - 'DryDepVel_SALACL ', 'GCHPchem', - 'DryDepVel_SALAAL ', 'GCHPchem', - 'DryDepVel_SALA ', 'GCHPchem', - 'DryDepVel_RP ', 'GCHPchem', - 'DryDepVel_RIPD ', 'GCHPchem', - 'DryDepVel_RIPC ', 'GCHPchem', - 'DryDepVel_RIPB ', 'GCHPchem', - 'DryDepVel_RIPA ', 'GCHPchem', - 'DryDepVel_RB3P ', 'GCHPchem', - 'DryDepVel_RA3P ', 'GCHPchem', - 'DryDepVel_R4P ', 'GCHPchem', - 'DryDepVel_R4N2 ', 'GCHPchem', - 'DryDepVel_PYAC ', 'GCHPchem', - 'DryDepVel_PRPN ', 'GCHPchem', - 'DryDepVel_PROPNN ', 'GCHPchem', - 'DryDepVel_PPN ', 'GCHPchem', - 'DryDepVel_PP ', 'GCHPchem', - 'DryDepVel_pFe ', 'GCHPchem', - 'DryDepVel_PAN ', 'GCHPchem', - 'DryDepVel_OCPO ', 'GCHPchem', - 'DryDepVel_OCPI ', 'GCHPchem', - 'DryDepVel_O3 ', 'GCHPchem', - 'DryDepVel_NPRNO3 ', 'GCHPchem', - 'DryDepVel_NO2 ', 'GCHPchem', - 'DryDepVel_NITs ', 'GCHPchem', - 'DryDepVel_NIT ', 'GCHPchem', - 'DryDepVel_NH4 ', 'GCHPchem', - 'DryDepVel_NH3 ', 'GCHPchem', - 'DryDepVel_N2O5 ', 'GCHPchem', - 'DryDepVel_MVKPC ', 'GCHPchem', - 'DryDepVel_MVKN ', 'GCHPchem', - 'DryDepVel_MVKHP ', 'GCHPchem', - 'DryDepVel_MVKHCB ', 'GCHPchem', - 'DryDepVel_MVKHC ', 'GCHPchem', - 'DryDepVel_MVKDH ', 'GCHPchem', - 'DryDepVel_MVK ', 'GCHPchem', - 'DryDepVel_MTPO ', 'GCHPchem', - 'DryDepVel_MTPA ', 'GCHPchem', - 'DryDepVel_MSA ', 'GCHPchem', - 'DryDepVel_MPAN ', 'GCHPchem', - 'DryDepVel_MONITU ', 'GCHPchem', - 'DryDepVel_MONITS ', 'GCHPchem', - 'DryDepVel_MONITA ', 'GCHPchem', - 'DryDepVel_MOH ', 'GCHPchem', - 'DryDepVel_MGLY ', 'GCHPchem', - 'DryDepVel_MENO3 ', 'GCHPchem', - 'DryDepVel_MCRHP ', 'GCHPchem', - 'DryDepVel_MCRHNB ', 'GCHPchem', - 'DryDepVel_MCRHN ', 'GCHPchem', - 'DryDepVel_MCRENOL ', 'GCHPchem', - 'DryDepVel_MCRDH ', 'GCHPchem', - 'DryDepVel_MAP ', 'GCHPchem', - 'DryDepVel_MACR1OOH ', 'GCHPchem', - 'DryDepVel_MACR ', 'GCHPchem', - 'DryDepVel_LVOCOA ', 'GCHPchem', - 'DryDepVel_LVOC ', 'GCHPchem', - 'DryDepVel_LIMO ', 'GCHPchem', - 'DryDepVel_ITHN ', 'GCHPchem', - 'DryDepVel_ITCN ', 'GCHPchem', - 'DryDepVel_ISALC ', 'GCHPchem', - 'DryDepVel_ISALA ', 'GCHPchem', - 'DryDepVel_IPRNO3 ', 'GCHPchem', - 'DryDepVel_IONO2 ', 'GCHPchem', - 'DryDepVel_IONO ', 'GCHPchem', - 'DryDepVel_IONITA ', 'GCHPchem', - 'DryDepVel_INPD ', 'GCHPchem', - 'DryDepVel_INPB ', 'GCHPchem', - 'DryDepVel_INDIOL ', 'GCHPchem', - 'DryDepVel_IHN4 ', 'GCHPchem', - 'DryDepVel_IHN3 ', 'GCHPchem', - 'DryDepVel_IHN2 ', 'GCHPchem', - 'DryDepVel_IHN1 ', 'GCHPchem', - 'DryDepVel_IEPOXD ', 'GCHPchem', - 'DryDepVel_IEPOXB ', 'GCHPchem', - 'DryDepVel_IEPOXA ', 'GCHPchem', - 'DryDepVel_IDN ', 'GCHPchem', - 'DryDepVel_IDHPE ', 'GCHPchem', - 'DryDepVel_IDHDP ', 'GCHPchem', - 'DryDepVel_IDCHP ', 'GCHPchem', - 'DryDepVel_IDC ', 'GCHPchem', - 'DryDepVel_ICPDH ', 'GCHPchem', - 'DryDepVel_ICN ', 'GCHPchem', - 'DryDepVel_ICl ', 'GCHPchem', - 'DryDepVel_ICHE ', 'GCHPchem', - 'DryDepVel_IBr ', 'GCHPchem', - 'DryDepVel_I2O4 ', 'GCHPchem', - 'DryDepVel_I2O3 ', 'GCHPchem', - 'DryDepVel_I2O2 ', 'GCHPchem', - 'DryDepVel_I2 ', 'GCHPchem', - 'DryDepVel_HPETHNL ', 'GCHPchem', - 'DryDepVel_HPALD4 ', 'GCHPchem', - 'DryDepVel_HPALD3 ', 'GCHPchem', - 'DryDepVel_HPALD2 ', 'GCHPchem', - 'DryDepVel_HPALD1 ', 'GCHPchem', - 'DryDepVel_HONIT ', 'GCHPchem', - 'DryDepVel_HOI ', 'GCHPchem', - 'DryDepVel_HOCl ', 'GCHPchem', - 'DryDepVel_HOBr ', 'GCHPchem', - 'DryDepVel_HNO3 ', 'GCHPchem', - 'DryDepVel_HMS ', 'GCHPchem', - 'DryDepVel_HMML ', 'GCHPchem', - 'DryDepVel_HMHP ', 'GCHPchem', - 'DryDepVel_HI ', 'GCHPchem', - 'DryDepVel_HCOOH ', 'GCHPchem', - 'DryDepVel_HCl ', 'GCHPchem', - 'DryDepVel_HC5A ', 'GCHPchem', - 'DryDepVel_HBr ', 'GCHPchem', - 'DryDepVel_HAC ', 'GCHPchem', - 'DryDepVel_H2O2 ', 'GCHPchem', - 'DryDepVel_GLYX ', 'GCHPchem', - 'DryDepVel_GLYC ', 'GCHPchem', - 'DryDepVel_ETP ', 'GCHPchem', - 'DryDepVel_ETNO3 ', 'GCHPchem', - 'DryDepVel_ETHP ', 'GCHPchem', - 'DryDepVel_ETHN ', 'GCHPchem', - 'DryDepVel_ETHLN ', 'GCHPchem', - 'DryDepVel_EOH ', 'GCHPchem', - 'DryDepVel_DST4 ', 'GCHPchem', - 'DryDepVel_DST3 ', 'GCHPchem', - 'DryDepVel_DST2 ', 'GCHPchem', - 'DryDepVel_DST1 ', 'GCHPchem', - 'DryDepVel_ClOO ', 'GCHPchem', - 'DryDepVel_ClO ', 'GCHPchem', - 'DryDepVel_ClNO3 ', 'GCHPchem', - 'DryDepVel_ClNO2 ', 'GCHPchem', - 'DryDepVel_Cl2 ', 'GCHPchem', - 'DryDepVel_CH2O ', 'GCHPchem', - 'DryDepVel_BrSALC ', 'GCHPchem', - 'DryDepVel_BrSALA ', 'GCHPchem', - 'DryDepVel_BrNO3 ', 'GCHPchem', - 'DryDepVel_BrCl ', 'GCHPchem', - 'DryDepVel_Br2 ', 'GCHPchem', - 'DryDepVel_BCPO ', 'GCHPchem', - 'DryDepVel_BCPI ', 'GCHPchem', - 'DryDepVel_ATOOH ', 'GCHPchem', - 'DryDepVel_ALD2 ', 'GCHPchem', - 'DryDepVel_AERI ', 'GCHPchem', - 'DryDepVel_ACTA ', 'GCHPchem', - 'DryDepVel_ACET ', 'GCHPchem', - #'DryDepVel_TSOG3 ', 'GCHPchem', - #'DryDepVel_TSOG2 ', 'GCHPchem', - #'DryDepVel_TSOG1 ', 'GCHPchem', - #'DryDepVel_TSOG0 ', 'GCHPchem', - #'DryDepVel_TSOA3 ', 'GCHPchem', - #'DryDepVel_TSOA2 ', 'GCHPchem', - #'DryDepVel_TSOA1 ', 'GCHPchem', - #'DryDepVel_TSOA0 ', 'GCHPchem', - #'DryDepVel_ASOG3 ', 'GCHPchem', - #'DryDepVel_ASOG2 ', 'GCHPchem', - #'DryDepVel_ASOG1 ', 'GCHPchem', - #'DryDepVel_ASOAN ', 'GCHPchem', - #'DryDepVel_ASOA3 ', 'GCHPchem', - #'DryDepVel_ASOA2 ', 'GCHPchem', - #'DryDepVel_ASOA1 ', 'GCHPchem', + DryDep.fields: 'DryDepVel_SOAS ', 'GCHPchem', + 'DryDepVel_SOAIE ', 'GCHPchem', + 'DryDepVel_SOAGX ', 'GCHPchem', + 'DryDepVel_SO4s ', 'GCHPchem', + 'DryDepVel_SO4 ', 'GCHPchem', + 'DryDepVel_SO2 ', 'GCHPchem', + 'DryDepVel_SALCCL ', 'GCHPchem', + 'DryDepVel_SALCAL ', 'GCHPchem', + 'DryDepVel_SALC ', 'GCHPchem', + 'DryDepVel_SALACL ', 'GCHPchem', + 'DryDepVel_SALAAL ', 'GCHPchem', + 'DryDepVel_SALA ', 'GCHPchem', + 'DryDepVel_RP ', 'GCHPchem', + 'DryDepVel_RIPD ', 'GCHPchem', + 'DryDepVel_RIPC ', 'GCHPchem', + 'DryDepVel_RIPB ', 'GCHPchem', + 'DryDepVel_RIPA ', 'GCHPchem', + 'DryDepVel_RB3P ', 'GCHPchem', + 'DryDepVel_RA3P ', 'GCHPchem', + 'DryDepVel_R4P ', 'GCHPchem', + 'DryDepVel_R4N2 ', 'GCHPchem', + 'DryDepVel_PYAC ', 'GCHPchem', + 'DryDepVel_PRPN ', 'GCHPchem', + 'DryDepVel_PROPNN ', 'GCHPchem', + 'DryDepVel_PPN ', 'GCHPchem', + 'DryDepVel_PP ', 'GCHPchem', + 'DryDepVel_PHEN ', 'GCHPchem', + 'DryDepVel_pFe ', 'GCHPchem', + 'DryDepVel_PAN ', 'GCHPchem', + 'DryDepVel_OCPO ', 'GCHPchem', + 'DryDepVel_OCPI ', 'GCHPchem', + 'DryDepVel_O3 ', 'GCHPchem', + 'DryDepVel_NPRNO3 ', 'GCHPchem', + 'DryDepVel_NPHEN ', 'GCHPchem', + 'DryDepVel_NO2 ', 'GCHPchem', + 'DryDepVel_NITs ', 'GCHPchem', + 'DryDepVel_NIT ', 'GCHPchem', + 'DryDepVel_NH4 ', 'GCHPchem', + 'DryDepVel_NH3 ', 'GCHPchem', + 'DryDepVel_N2O5 ', 'GCHPchem', + 'DryDepVel_MVKPC ', 'GCHPchem', + 'DryDepVel_MVKN ', 'GCHPchem', + 'DryDepVel_MVKHP ', 'GCHPchem', + 'DryDepVel_MVKHCB ', 'GCHPchem', + 'DryDepVel_MVKHC ', 'GCHPchem', + 'DryDepVel_MVKDH ', 'GCHPchem', + 'DryDepVel_MVK ', 'GCHPchem', + 'DryDepVel_MTPO ', 'GCHPchem', + 'DryDepVel_MTPA ', 'GCHPchem', + 'DryDepVel_MSA ', 'GCHPchem', + 'DryDepVel_MPAN ', 'GCHPchem', + 'DryDepVel_MONITU ', 'GCHPchem', + 'DryDepVel_MONITS ', 'GCHPchem', + 'DryDepVel_MONITA ', 'GCHPchem', + 'DryDepVel_MOH ', 'GCHPchem', + 'DryDepVel_MGLY ', 'GCHPchem', + 'DryDepVel_MENO3 ', 'GCHPchem', + 'DryDepVel_MCT ', 'GCHPchem', + 'DryDepVel_MCRHP ', 'GCHPchem', + 'DryDepVel_MCRHNB ', 'GCHPchem', + 'DryDepVel_MCRHN ', 'GCHPchem', + 'DryDepVel_MCRENOL ', 'GCHPchem', + 'DryDepVel_MCRDH ', 'GCHPchem', + 'DryDepVel_MAP ', 'GCHPchem', + 'DryDepVel_MACR1OOH ', 'GCHPchem', + 'DryDepVel_MACR ', 'GCHPchem', + 'DryDepVel_LVOCOA ', 'GCHPchem', + 'DryDepVel_LVOC ', 'GCHPchem', + 'DryDepVel_LIMO ', 'GCHPchem', + 'DryDepVel_ITHN ', 'GCHPchem', + 'DryDepVel_ITCN ', 'GCHPchem', + 'DryDepVel_ISALC ', 'GCHPchem', + 'DryDepVel_ISALA ', 'GCHPchem', + 'DryDepVel_IPRNO3 ', 'GCHPchem', + 'DryDepVel_IONO2 ', 'GCHPchem', + 'DryDepVel_IONO ', 'GCHPchem', + 'DryDepVel_IONITA ', 'GCHPchem', + 'DryDepVel_INPD ', 'GCHPchem', + 'DryDepVel_INPB ', 'GCHPchem', + 'DryDepVel_INDIOL ', 'GCHPchem', + 'DryDepVel_IHN4 ', 'GCHPchem', + 'DryDepVel_IHN3 ', 'GCHPchem', + 'DryDepVel_IHN2 ', 'GCHPchem', + 'DryDepVel_IHN1 ', 'GCHPchem', + 'DryDepVel_IEPOXD ', 'GCHPchem', + 'DryDepVel_IEPOXB ', 'GCHPchem', + 'DryDepVel_IEPOXA ', 'GCHPchem', + 'DryDepVel_IDN ', 'GCHPchem', + 'DryDepVel_IDHPE ', 'GCHPchem', + 'DryDepVel_IDHDP ', 'GCHPchem', + 'DryDepVel_IDCHP ', 'GCHPchem', + 'DryDepVel_IDC ', 'GCHPchem', + 'DryDepVel_ICPDH ', 'GCHPchem', + 'DryDepVel_ICN ', 'GCHPchem', + 'DryDepVel_ICl ', 'GCHPchem', + 'DryDepVel_ICHE ', 'GCHPchem', + 'DryDepVel_IBr ', 'GCHPchem', + 'DryDepVel_I2O4 ', 'GCHPchem', + 'DryDepVel_I2O3 ', 'GCHPchem', + 'DryDepVel_I2O2 ', 'GCHPchem', + 'DryDepVel_I2 ', 'GCHPchem', + 'DryDepVel_HPETHNL ', 'GCHPchem', + 'DryDepVel_HPALD4 ', 'GCHPchem', + 'DryDepVel_HPALD3 ', 'GCHPchem', + 'DryDepVel_HPALD2 ', 'GCHPchem', + 'DryDepVel_HPALD1 ', 'GCHPchem', + 'DryDepVel_HONIT ', 'GCHPchem', + 'DryDepVel_HOI ', 'GCHPchem', + 'DryDepVel_HOCl ', 'GCHPchem', + 'DryDepVel_HOBr ', 'GCHPchem', + 'DryDepVel_HNO3 ', 'GCHPchem', + 'DryDepVel_HMS ', 'GCHPchem', + 'DryDepVel_HMML ', 'GCHPchem', + 'DryDepVel_HMHP ', 'GCHPchem', + 'DryDepVel_HI ', 'GCHPchem', + 'DryDepVel_HCOOH ', 'GCHPchem', + 'DryDepVel_HCl ', 'GCHPchem', + 'DryDepVel_HC5A ', 'GCHPchem', + 'DryDepVel_HBr ', 'GCHPchem', + 'DryDepVel_HAC ', 'GCHPchem', + 'DryDepVel_H2O2 ', 'GCHPchem', + 'DryDepVel_GLYX ', 'GCHPchem', + 'DryDepVel_GLYC ', 'GCHPchem', + 'DryDepVel_FURA ', 'GCHPchem', + 'DryDepVel_ETP ', 'GCHPchem', + 'DryDepVel_ETNO3 ', 'GCHPchem', + 'DryDepVel_ETHP ', 'GCHPchem', + 'DryDepVel_ETHN ', 'GCHPchem', + 'DryDepVel_ETHLN ', 'GCHPchem', + 'DryDepVel_EOH ', 'GCHPchem', + 'DryDepVel_DST4 ', 'GCHPchem', + 'DryDepVel_DST3 ', 'GCHPchem', + 'DryDepVel_DST2 ', 'GCHPchem', + 'DryDepVel_DST1 ', 'GCHPchem', + 'DryDepVel_CSL ', 'GCHPchem', + 'DryDepVel_ClOO ', 'GCHPchem', + 'DryDepVel_ClO ', 'GCHPchem', + 'DryDepVel_ClNO3 ', 'GCHPchem', + 'DryDepVel_ClNO2 ', 'GCHPchem', + 'DryDepVel_Cl2 ', 'GCHPchem', + 'DryDepVel_CH2O ', 'GCHPchem', + 'DryDepVel_BZPAN ', 'GCHPchem', + 'DryDepVel_BZCO3H ', 'GCHPchem', + 'DryDepVel_BrSALC ', 'GCHPchem', + 'DryDepVel_BrSALA ', 'GCHPchem', + 'DryDepVel_BrNO3 ', 'GCHPchem', + 'DryDepVel_BrCl ', 'GCHPchem', + 'DryDepVel_Br2 ', 'GCHPchem', + 'DryDepVel_BENZP ', 'GCHPchem', + 'DryDepVel_BCPO ', 'GCHPchem', + 'DryDepVel_BCPI ', 'GCHPchem', + 'DryDepVel_BALD ', 'GCHPchem', + 'DryDepVel_ATOOH ', 'GCHPchem', + 'DryDepVel_AROMP5 ', 'GCHPchem', + 'DryDepVel_AROMP4 ', 'GCHPchem', + 'DryDepVel_AONITA ', 'GCHPchem', + 'DryDepVel_ALD2 ', 'GCHPchem', + 'DryDepVel_AERI ', 'GCHPchem', + 'DryDepVel_ACTA ', 'GCHPchem', + 'DryDepVel_ACET ', 'GCHPchem', + #'DryDepVel_TSOG3 ', 'GCHPchem', + #'DryDepVel_TSOG2 ', 'GCHPchem', + #'DryDepVel_TSOG1 ', 'GCHPchem', + #'DryDepVel_TSOG0 ', 'GCHPchem', + #'DryDepVel_TSOA3 ', 'GCHPchem', + #'DryDepVel_TSOA2 ', 'GCHPchem', + #'DryDepVel_TSOA1 ', 'GCHPchem', + #'DryDepVel_TSOA0 ', 'GCHPchem', + #'DryDepVel_ASOG3 ', 'GCHPchem', + #'DryDepVel_ASOG2 ', 'GCHPchem', + #'DryDepVel_ASOG1 ', 'GCHPchem', + #'DryDepVel_ASOAN ', 'GCHPchem', + #'DryDepVel_ASOA3 ', 'GCHPchem', + #'DryDepVel_ASOA2 ', 'GCHPchem', + #'DryDepVel_ASOA1 ', 'GCHPchem', + 'DryDepSOAS ', 'GCHPchem', + 'DryDepSOAIE ', 'GCHPchem', + 'DryDepSOAGX ', 'GCHPchem', + 'DryDepSO4s ', 'GCHPchem', + 'DryDepSO4 ', 'GCHPchem', + 'DryDepSO2 ', 'GCHPchem', + 'DryDepSALCCL ', 'GCHPchem', + 'DryDepSALCAL ', 'GCHPchem', + 'DryDepSALC ', 'GCHPchem', + 'DryDepSALACL ', 'GCHPchem', + 'DryDepSALAAL ', 'GCHPchem', + 'DryDepSALA ', 'GCHPchem', + 'DryDepRP ', 'GCHPchem', + 'DryDepRIPD ', 'GCHPchem', + 'DryDepRIPC ', 'GCHPchem', + 'DryDepRIPB ', 'GCHPchem', + 'DryDepRIPA ', 'GCHPchem', + 'DryDepRB3P ', 'GCHPchem', + 'DryDepRA3P ', 'GCHPchem', + 'DryDepR4P ', 'GCHPchem', + 'DryDepR4N2 ', 'GCHPchem', + 'DryDepPYAC ', 'GCHPchem', + 'DryDepPRPN ', 'GCHPchem', + 'DryDepPROPNN ', 'GCHPchem', + 'DryDepPPN ', 'GCHPchem', + 'DryDepPP ', 'GCHPchem', + 'DryDepPHEN ', 'GCHPchem', + 'DryDeppFe ', 'GCHPchem', + 'DryDepPAN ', 'GCHPchem', + 'DryDepOCPO ', 'GCHPchem', + 'DryDepOCPI ', 'GCHPchem', + 'DryDepO3 ', 'GCHPchem', + 'DryDepNPRNO3 ', 'GCHPchem', + 'DryDepNPHEN ', 'GCHPchem', + 'DryDepNO2 ', 'GCHPchem', + 'DryDepNITs ', 'GCHPchem', + 'DryDepNIT ', 'GCHPchem', + 'DryDepNH4 ', 'GCHPchem', + 'DryDepNH3 ', 'GCHPchem', + 'DryDepN2O5 ', 'GCHPchem', + 'DryDepMVKPC ', 'GCHPchem', + 'DryDepMVKN ', 'GCHPchem', + 'DryDepMVKHP ', 'GCHPchem', + 'DryDepMVKHCB ', 'GCHPchem', + 'DryDepMVKHC ', 'GCHPchem', + 'DryDepMVKDH ', 'GCHPchem', + 'DryDepMVK ', 'GCHPchem', + 'DryDepMTPO ', 'GCHPchem', + 'DryDepMTPA ', 'GCHPchem', + 'DryDepMSA ', 'GCHPchem', + 'DryDepMPAN ', 'GCHPchem', + 'DryDepMONITU ', 'GCHPchem', + 'DryDepMONITS ', 'GCHPchem', + 'DryDepMONITA ', 'GCHPchem', + 'DryDepMOH ', 'GCHPchem', + 'DryDepMGLY ', 'GCHPchem', + 'DryDepMENO3 ', 'GCHPchem', + 'DryDepMCT ', 'GCHPchem', + 'DryDepMCRHP ', 'GCHPchem', + 'DryDepMCRHNB ', 'GCHPchem', + 'DryDepMCRHN ', 'GCHPchem', + 'DryDepMCRENOL ', 'GCHPchem', + 'DryDepMCRDH ', 'GCHPchem', + 'DryDepMAP ', 'GCHPchem', + 'DryDepMACR1OOH ', 'GCHPchem', + 'DryDepMACR ', 'GCHPchem', + 'DryDepLVOCOA ', 'GCHPchem', + 'DryDepLVOC ', 'GCHPchem', + 'DryDepLIMO ', 'GCHPchem', + 'DryDepITHN ', 'GCHPchem', + 'DryDepITCN ', 'GCHPchem', + 'DryDepISALC ', 'GCHPchem', + 'DryDepISALA ', 'GCHPchem', + 'DryDepIPRNO3 ', 'GCHPchem', + 'DryDepIONO2 ', 'GCHPchem', + 'DryDepIONO ', 'GCHPchem', + 'DryDepIONITA ', 'GCHPchem', + 'DryDepINPD ', 'GCHPchem', + 'DryDepINPB ', 'GCHPchem', + 'DryDepINDIOL ', 'GCHPchem', + 'DryDepIHN4 ', 'GCHPchem', + 'DryDepIHN3 ', 'GCHPchem', + 'DryDepIHN2 ', 'GCHPchem', + 'DryDepIHN1 ', 'GCHPchem', + 'DryDepIEPOXD ', 'GCHPchem', + 'DryDepIEPOXB ', 'GCHPchem', + 'DryDepIEPOXA ', 'GCHPchem', + 'DryDepIDN ', 'GCHPchem', + 'DryDepIDHPE ', 'GCHPchem', + 'DryDepIDHDP ', 'GCHPchem', + 'DryDepIDCHP ', 'GCHPchem', + 'DryDepIDC ', 'GCHPchem', + 'DryDepICPDH ', 'GCHPchem', + 'DryDepICN ', 'GCHPchem', + 'DryDepICl ', 'GCHPchem', + 'DryDepICHE ', 'GCHPchem', + 'DryDepIBr ', 'GCHPchem', + 'DryDepI2O4 ', 'GCHPchem', + 'DryDepI2O3 ', 'GCHPchem', + 'DryDepI2O2 ', 'GCHPchem', + 'DryDepI2 ', 'GCHPchem', + 'DryDepHPETHNL ', 'GCHPchem', + 'DryDepHPALD4 ', 'GCHPchem', + 'DryDepHPALD3 ', 'GCHPchem', + 'DryDepHPALD2 ', 'GCHPchem', + 'DryDepHPALD1 ', 'GCHPchem', + 'DryDepHONIT ', 'GCHPchem', + 'DryDepHOI ', 'GCHPchem', + 'DryDepHOCl ', 'GCHPchem', + 'DryDepHOBr ', 'GCHPchem', + 'DryDepHNO3 ', 'GCHPchem', + 'DryDepHMS ', 'GCHPchem', + 'DryDepHMML ', 'GCHPchem', + 'DryDepHMHP ', 'GCHPchem', + 'DryDepHI ', 'GCHPchem', + 'DryDepHCOOH ', 'GCHPchem', + 'DryDepHCl ', 'GCHPchem', + 'DryDepHC5A ', 'GCHPchem', + 'DryDepHBr ', 'GCHPchem', + 'DryDepHAC ', 'GCHPchem', + 'DryDepH2O2 ', 'GCHPchem', + 'DryDepGLYX ', 'GCHPchem', + 'DryDepGLYC ', 'GCHPchem', + 'DryDepFURA ', 'GCHPchem', + 'DryDepETP ', 'GCHPchem', + 'DryDepETNO3 ', 'GCHPchem', + 'DryDepETHP ', 'GCHPchem', + 'DryDepETHN ', 'GCHPchem', + 'DryDepETHLN ', 'GCHPchem', + 'DryDepEOH ', 'GCHPchem', + 'DryDepDST4 ', 'GCHPchem', + 'DryDepDST3 ', 'GCHPchem', + 'DryDepDST2 ', 'GCHPchem', + 'DryDepDST1 ', 'GCHPchem', + 'DryDepCSL ', 'GCHPchem', + 'DryDepClOO ', 'GCHPchem', + 'DryDepClO ', 'GCHPchem', + 'DryDepClNO3 ', 'GCHPchem', + 'DryDepClNO2 ', 'GCHPchem', + 'DryDepCl2 ', 'GCHPchem', + 'DryDepCH2O ', 'GCHPchem', + 'DryDepBZPAN ', 'GCHPchem', + 'DryDepBZCO3H ', 'GCHPchem', + 'DryDepBrSALC ', 'GCHPchem', + 'DryDepBrSALA ', 'GCHPchem', + 'DryDepBrNO3 ', 'GCHPchem', + 'DryDepBrCl ', 'GCHPchem', + 'DryDepBr2 ', 'GCHPchem', + 'DryDepBENZP ', 'GCHPchem', + 'DryDepBCPO ', 'GCHPchem', + 'DryDepBCPI ', 'GCHPchem', + 'DryDepBALD ', 'GCHPchem', + 'DryDepATOOH ', 'GCHPchem', + 'DryDepAROMP5 ', 'GCHPchem', + 'DryDepAROMP4 ', 'GCHPchem', + 'DryDepAONITA ', 'GCHPchem', + 'DryDepALD2 ', 'GCHPchem', + 'DryDepAERI ', 'GCHPchem', + 'DryDepACTA ', 'GCHPchem', + 'DryDepACET ', 'GCHPchem', + #'DryDep_TSOG3 ', 'GCHPchem', + #'DryDep_TSOG2 ', 'GCHPchem', + #'DryDep_TSOG1 ', 'GCHPchem', + #'DryDep_TSOG0 ', 'GCHPchem', + #'DryDep_TSOA3 ', 'GCHPchem', + #'DryDep_TSOA2 ', 'GCHPchem', + #'DryDep_TSOA1 ', 'GCHPchem', + #'DryDep_TSOA0 ', 'GCHPchem', + #'DryDep_ASOG3 ', 'GCHPchem', + #'DryDep_ASOG2 ', 'GCHPchem', + #'DryDep_ASOG1 ', 'GCHPchem', + #'DryDep_ASOAN ', 'GCHPchem', + #'DryDep_ASOA3 ', 'GCHPchem', + #'DryDep_ASOA2 ', 'GCHPchem', + #'DryDep_ASOA1 ', 'GCHPchem', :: #============================================================================== # %%%%% THE JValues COLLECTION %%%%% # -# Photolysis rates (from the FAST-JX photolysis module) +# Photolysis rates (from the photolysis module) # -# Available for all full-chemistry simulations +# Available for all full-chemistry simulations with photolysis #============================================================================== JValues.template: '%y4%m2%d2_%h2%n2z.nc4', JValues.format: 'CFIO', @@ -4593,60 +1604,75 @@ COLLECTIONS: @#'DefaultCollection', 'Jval_ATOOH ', 'GCHPchem', 'Jval_ALD2 ', 'GCHPchem', 'Jval_ACET ', 'GCHPchem', - 'UVFluxNet_574nm ', 'GCHPchem', - 'UVFluxNet_380nm ', 'GCHPchem', - 'UVFluxNet_333nm ', 'GCHPchem', - 'UVFluxNet_316nm ', 'GCHPchem', - 'UVFluxNet_310nm ', 'GCHPchem', - 'UVFluxNet_303nm ', 'GCHPchem', - 'UVFluxNet_295nm ', 'GCHPchem', - 'UVFluxNet_277nm ', 'GCHPchem', - 'UVFluxNet_267nm ', 'GCHPchem', - 'UVFluxNet_261nm ', 'GCHPchem', - 'UVFluxNet_214nm ', 'GCHPchem', - 'UVFluxNet_211nm ', 'GCHPchem', - 'UVFluxNet_208nm ', 'GCHPchem', - 'UVFluxNet_202nm ', 'GCHPchem', - 'UVFluxNet_196nm ', 'GCHPchem', - 'UVFluxNet_193nm ', 'GCHPchem', - 'UVFluxNet_191nm ', 'GCHPchem', - 'UVFluxNet_187nm ', 'GCHPchem', - 'UVFluxDirect_574nm ', 'GCHPchem', - 'UVFluxDirect_380nm ', 'GCHPchem', - 'UVFluxDirect_333nm ', 'GCHPchem', - 'UVFluxDirect_316nm ', 'GCHPchem', - 'UVFluxDirect_310nm ', 'GCHPchem', - 'UVFluxDirect_303nm ', 'GCHPchem', - 'UVFluxDirect_295nm ', 'GCHPchem', - 'UVFluxDirect_277nm ', 'GCHPchem', - 'UVFluxDirect_267nm ', 'GCHPchem', - 'UVFluxDirect_261nm ', 'GCHPchem', - 'UVFluxDirect_214nm ', 'GCHPchem', - 'UVFluxDirect_211nm ', 'GCHPchem', - 'UVFluxDirect_208nm ', 'GCHPchem', - 'UVFluxDirect_202nm ', 'GCHPchem', - 'UVFluxDirect_196nm ', 'GCHPchem', - 'UVFluxDirect_193nm ', 'GCHPchem', - 'UVFluxDirect_191nm ', 'GCHPchem', - 'UVFluxDirect_187nm ', 'GCHPchem', - 'UVFluxDiffuse_574nm ', 'GCHPchem', - 'UVFluxDiffuse_380nm ', 'GCHPchem', - 'UVFluxDiffuse_333nm ', 'GCHPchem', - 'UVFluxDiffuse_316nm ', 'GCHPchem', - 'UVFluxDiffuse_310nm ', 'GCHPchem', - 'UVFluxDiffuse_303nm ', 'GCHPchem', - 'UVFluxDiffuse_295nm ', 'GCHPchem', - 'UVFluxDiffuse_277nm ', 'GCHPchem', - 'UVFluxDiffuse_267nm ', 'GCHPchem', - 'UVFluxDiffuse_261nm ', 'GCHPchem', - 'UVFluxDiffuse_214nm ', 'GCHPchem', - 'UVFluxDiffuse_211nm ', 'GCHPchem', - 'UVFluxDiffuse_208nm ', 'GCHPchem', - 'UVFluxDiffuse_202nm ', 'GCHPchem', - 'UVFluxDiffuse_196nm ', 'GCHPchem', - 'UVFluxDiffuse_193nm ', 'GCHPchem', - 'UVFluxDiffuse_191nm ', 'GCHPchem', - 'UVFluxDiffuse_187nm ', 'GCHPchem', +:: +#============================================================================== +# %%%%% THE UVFlux COLLECTION %%%%% +# +# UV fluxes (from the photolysis module) +# +# Available for all full-chemistry simulations with photolysis +#============================================================================== + UVFlux.template: '%y4%m2%d2_%h2%n2z.nc4', + UVFlux.format: 'CFIO', + UVFlux.timestampStart: .true. + UVFlux.monthly: 1 + UVFlux.frequency: 010000 + UVFlux.duration: 010000 + UVFlux.mode: 'time-averaged' + UVFlux.fields: 'UVFluxNet_574nm ', 'GCHPchem', + 'UVFluxNet_380nm ', 'GCHPchem', + 'UVFluxNet_333nm ', 'GCHPchem', + 'UVFluxNet_316nm ', 'GCHPchem', + 'UVFluxNet_310nm ', 'GCHPchem', + 'UVFluxNet_303nm ', 'GCHPchem', + 'UVFluxNet_295nm ', 'GCHPchem', + 'UVFluxNet_277nm ', 'GCHPchem', + 'UVFluxNet_267nm ', 'GCHPchem', + 'UVFluxNet_261nm ', 'GCHPchem', + 'UVFluxNet_214nm ', 'GCHPchem', + 'UVFluxNet_211nm ', 'GCHPchem', + 'UVFluxNet_208nm ', 'GCHPchem', + 'UVFluxNet_202nm ', 'GCHPchem', + 'UVFluxNet_196nm ', 'GCHPchem', + 'UVFluxNet_193nm ', 'GCHPchem', + 'UVFluxNet_191nm ', 'GCHPchem', + 'UVFluxNet_187nm ', 'GCHPchem', + 'UVFluxDirect_574nm ', 'GCHPchem', + 'UVFluxDirect_380nm ', 'GCHPchem', + 'UVFluxDirect_333nm ', 'GCHPchem', + 'UVFluxDirect_316nm ', 'GCHPchem', + 'UVFluxDirect_310nm ', 'GCHPchem', + 'UVFluxDirect_303nm ', 'GCHPchem', + 'UVFluxDirect_295nm ', 'GCHPchem', + 'UVFluxDirect_277nm ', 'GCHPchem', + 'UVFluxDirect_267nm ', 'GCHPchem', + 'UVFluxDirect_261nm ', 'GCHPchem', + 'UVFluxDirect_214nm ', 'GCHPchem', + 'UVFluxDirect_211nm ', 'GCHPchem', + 'UVFluxDirect_208nm ', 'GCHPchem', + 'UVFluxDirect_202nm ', 'GCHPchem', + 'UVFluxDirect_196nm ', 'GCHPchem', + 'UVFluxDirect_193nm ', 'GCHPchem', + 'UVFluxDirect_191nm ', 'GCHPchem', + 'UVFluxDirect_187nm ', 'GCHPchem', + 'UVFluxDiffuse_574nm ', 'GCHPchem', + 'UVFluxDiffuse_380nm ', 'GCHPchem', + 'UVFluxDiffuse_333nm ', 'GCHPchem', + 'UVFluxDiffuse_316nm ', 'GCHPchem', + 'UVFluxDiffuse_310nm ', 'GCHPchem', + 'UVFluxDiffuse_303nm ', 'GCHPchem', + 'UVFluxDiffuse_295nm ', 'GCHPchem', + 'UVFluxDiffuse_277nm ', 'GCHPchem', + 'UVFluxDiffuse_267nm ', 'GCHPchem', + 'UVFluxDiffuse_261nm ', 'GCHPchem', + 'UVFluxDiffuse_214nm ', 'GCHPchem', + 'UVFluxDiffuse_211nm ', 'GCHPchem', + 'UVFluxDiffuse_208nm ', 'GCHPchem', + 'UVFluxDiffuse_202nm ', 'GCHPchem', + 'UVFluxDiffuse_196nm ', 'GCHPchem', + 'UVFluxDiffuse_193nm ', 'GCHPchem', + 'UVFluxDiffuse_191nm ', 'GCHPchem', + 'UVFluxDiffuse_187nm ', 'GCHPchem', :: #============================================================================= # %%%%% THE KppDiags COLLECTION %%%%% @@ -4670,6 +1696,8 @@ COLLECTIONS: @#'DefaultCollection', 'KppLuDecomps ', 'GCHPchem', 'KppSubsts ', 'GCHPchem', 'KppSmDecomps ', 'GCHPchem', + #'KppNegatives ', 'GCHPchem', + #'KppNegatives0 ', 'GCHPchem', :: #============================================================================== # %%%%% THE KppARDiags COLLECTION %%%%% @@ -4783,12 +1811,17 @@ COLLECTIONS: @#'DefaultCollection', RRTMG.format: 'CFIO', RRTMG.timestampStart: .true. RRTMG.monthly: 1 - RRTMG.frequency: 010000 - RRTMG.duration: 010000 + RRTMG.frequency: 030000 + RRTMG.duration: 030000 RRTMG.mode: 'time-averaged' RRTMG.fields: 'RadAllSkyLWSurf_BASE ', 'GCHPchem', 'RadAllSkyLWSurf_O3 ', 'GCHPchem', + 'RadAllSkyLWSurf_O3T ', 'GCHPchem', 'RadAllSkyLWSurf_ME ', 'GCHPchem', + 'RadAllSkyLWSurf_H2O ', 'GCHPchem', + 'RadAllSkyLWSurf_CO2 ', 'GCHPchem', + 'RadAllSkyLWSurf_CFC ', 'GCHPchem', + 'RadAllSkyLWSurf_N2O ', 'GCHPchem', 'RadAllSkyLWSurf_SU ', 'GCHPchem', 'RadAllSkyLWSurf_NI ', 'GCHPchem', 'RadAllSkyLWSurf_AM ', 'GCHPchem', @@ -4800,7 +1833,12 @@ COLLECTIONS: @#'DefaultCollection', 'RadAllSkyLWSurf_ST ', 'GCHPchem', 'RadAllSkySWSurf_BASE ', 'GCHPchem', 'RadAllSkySWSurf_O3 ', 'GCHPchem', + 'RadAllSkySWSurf_O3T ', 'GCHPchem', 'RadAllSkySWSurf_ME ', 'GCHPchem', + 'RadAllSkySWSurf_H2O ', 'GCHPchem', + 'RadAllSkySWSurf_CO2 ', 'GCHPchem', + 'RadAllSkySWSurf_CFC ', 'GCHPchem', + 'RadAllSkySWSurf_N2O ', 'GCHPchem', 'RadAllSkySWSurf_SU ', 'GCHPchem', 'RadAllSkySWSurf_NI ', 'GCHPchem', 'RadAllSkySWSurf_AM ', 'GCHPchem', @@ -4812,7 +1850,12 @@ COLLECTIONS: @#'DefaultCollection', 'RadAllSkySWSurf_ST ', 'GCHPchem', 'RadClrSkyLWSurf_BASE ', 'GCHPchem', 'RadClrSkyLWSurf_O3 ', 'GCHPchem', + 'RadClrSkyLWSurf_O3T ', 'GCHPchem', 'RadClrSkyLWSurf_ME ', 'GCHPchem', + 'RadClrSkyLWSurf_H2O ', 'GCHPchem', + 'RadClrSkyLWSurf_CO2 ', 'GCHPchem', + 'RadClrSkyLWSurf_CFC ', 'GCHPchem', + 'RadClrSkyLWSurf_N2O ', 'GCHPchem', 'RadClrSkyLWSurf_SU ', 'GCHPchem', 'RadClrSkyLWSurf_NI ', 'GCHPchem', 'RadClrSkyLWSurf_AM ', 'GCHPchem', @@ -4824,7 +1867,12 @@ COLLECTIONS: @#'DefaultCollection', 'RadClrSkyLWSurf_ST ', 'GCHPchem', 'RadClrSkySWSurf_BASE ', 'GCHPchem', 'RadClrSkySWSurf_O3 ', 'GCHPchem', + 'RadClrSkySWSurf_O3T ', 'GCHPchem', 'RadClrSkySWSurf_ME ', 'GCHPchem', + 'RadClrSkySWSurf_H2O ', 'GCHPchem', + 'RadClrSkySWSurf_CO2 ', 'GCHPchem', + 'RadClrSkySWSurf_CFC ', 'GCHPchem', + 'RadClrSkySWSurf_N2O ', 'GCHPchem', 'RadClrSkySWSurf_SU ', 'GCHPchem', 'RadClrSkySWSurf_NI ', 'GCHPchem', 'RadClrSkySWSurf_AM ', 'GCHPchem', @@ -4834,9 +1882,82 @@ COLLECTIONS: @#'DefaultCollection', 'RadClrSkySWSurf_DU ', 'GCHPchem', 'RadClrSkySWSurf_PM ', 'GCHPchem', 'RadClrSkySWSurf_ST ', 'GCHPchem', + 'RadAllSkyLWTrop_BASE ', 'GCHPchem', + 'RadAllSkyLWTrop_O3 ', 'GCHPchem', + 'RadAllSkyLWTrop_O3T ', 'GCHPchem', + 'RadAllSkyLWTrop_ME ', 'GCHPchem', + 'RadAllSkyLWTrop_H2O ', 'GCHPchem', + 'RadAllSkyLWTrop_CO2 ', 'GCHPchem', + 'RadAllSkyLWTrop_CFC ', 'GCHPchem', + 'RadAllSkyLWTrop_N2O ', 'GCHPchem', + 'RadAllSkyLWTrop_SU ', 'GCHPchem', + 'RadAllSkyLWTrop_NI ', 'GCHPchem', + 'RadAllSkyLWTrop_AM ', 'GCHPchem', + 'RadAllSkyLWTrop_BC ', 'GCHPchem', + 'RadAllSkyLWTrop_OA ', 'GCHPchem', + 'RadAllSkyLWTrop_SS ', 'GCHPchem', + 'RadAllSkyLWTrop_DU ', 'GCHPchem', + 'RadAllSkyLWTrop_PM ', 'GCHPchem', + 'RadAllSkyLWTrop_ST ', 'GCHPchem', + 'RadAllSkySWTrop_BASE ', 'GCHPchem', + 'RadAllSkySWTrop_O3 ', 'GCHPchem', + 'RadAllSkySWTrop_O3T ', 'GCHPchem', + 'RadAllSkySWTrop_ME ', 'GCHPchem', + 'RadAllSkySWTrop_H2O ', 'GCHPchem', + 'RadAllSkySWTrop_CO2 ', 'GCHPchem', + 'RadAllSkySWTrop_CFC ', 'GCHPchem', + 'RadAllSkySWTrop_N2O ', 'GCHPchem', + 'RadAllSkySWTrop_SU ', 'GCHPchem', + 'RadAllSkySWTrop_NI ', 'GCHPchem', + 'RadAllSkySWTrop_AM ', 'GCHPchem', + 'RadAllSkySWTrop_BC ', 'GCHPchem', + 'RadAllSkySWTrop_OA ', 'GCHPchem', + 'RadAllSkySWTrop_SS ', 'GCHPchem', + 'RadAllSkySWTrop_DU ', 'GCHPchem', + 'RadAllSkySWTrop_PM ', 'GCHPchem', + 'RadAllSkySWTrop_ST ', 'GCHPchem', + 'RadClrSkyLWTrop_BASE ', 'GCHPchem', + 'RadClrSkyLWTrop_O3 ', 'GCHPchem', + 'RadClrSkyLWTrop_O3T ', 'GCHPchem', + 'RadClrSkyLWTrop_ME ', 'GCHPchem', + 'RadClrSkyLWTrop_H2O ', 'GCHPchem', + 'RadClrSkyLWTrop_CO2 ', 'GCHPchem', + 'RadClrSkyLWTrop_CFC ', 'GCHPchem', + 'RadClrSkyLWTrop_N2O ', 'GCHPchem', + 'RadClrSkyLWTrop_SU ', 'GCHPchem', + 'RadClrSkyLWTrop_NI ', 'GCHPchem', + 'RadClrSkyLWTrop_AM ', 'GCHPchem', + 'RadClrSkyLWTrop_BC ', 'GCHPchem', + 'RadClrSkyLWTrop_OA ', 'GCHPchem', + 'RadClrSkyLWTrop_SS ', 'GCHPchem', + 'RadClrSkyLWTrop_DU ', 'GCHPchem', + 'RadClrSkyLWTrop_PM ', 'GCHPchem', + 'RadClrSkyLWTrop_ST ', 'GCHPchem', + 'RadClrSkySWTrop_BASE ', 'GCHPchem', + 'RadClrSkySWTrop_O3 ', 'GCHPchem', + 'RadClrSkySWTrop_O3T ', 'GCHPchem', + 'RadClrSkySWTrop_ME ', 'GCHPchem', + 'RadClrSkySWTrop_H2O ', 'GCHPchem', + 'RadClrSkySWTrop_CO2 ', 'GCHPchem', + 'RadClrSkySWTrop_CFC ', 'GCHPchem', + 'RadClrSkySWTrop_N2O ', 'GCHPchem', + 'RadClrSkySWTrop_SU ', 'GCHPchem', + 'RadClrSkySWTrop_NI ', 'GCHPchem', + 'RadClrSkySWTrop_AM ', 'GCHPchem', + 'RadClrSkySWTrop_BC ', 'GCHPchem', + 'RadClrSkySWTrop_OA ', 'GCHPchem', + 'RadClrSkySWTrop_SS ', 'GCHPchem', + 'RadClrSkySWTrop_DU ', 'GCHPchem', + 'RadClrSkySWTrop_PM ', 'GCHPchem', + 'RadClrSkySWTrop_ST ', 'GCHPchem', 'RadAllSkyLWTOA_BASE ', 'GCHPchem', 'RadAllSkyLWTOA_O3 ', 'GCHPchem', + 'RadAllSkyLWTOA_O3T ', 'GCHPchem', 'RadAllSkyLWTOA_ME ', 'GCHPchem', + 'RadAllSkyLWTOA_H2O ', 'GCHPchem', + 'RadAllSkyLWTOA_CO2 ', 'GCHPchem', + 'RadAllSkyLWTOA_CFC ', 'GCHPchem', + 'RadAllSkyLWTOA_N2O ', 'GCHPchem', 'RadAllSkyLWTOA_SU ', 'GCHPchem', 'RadAllSkyLWTOA_NI ', 'GCHPchem', 'RadAllSkyLWTOA_AM ', 'GCHPchem', @@ -4848,7 +1969,12 @@ COLLECTIONS: @#'DefaultCollection', 'RadAllSkyLWTOA_ST ', 'GCHPchem', 'RadAllSkySWTOA_BASE ', 'GCHPchem', 'RadAllSkySWTOA_O3 ', 'GCHPchem', + 'RadAllSkySWTOA_O3T ', 'GCHPchem', 'RadAllSkySWTOA_ME ', 'GCHPchem', + 'RadAllSkySWTOA_H2O ', 'GCHPchem', + 'RadAllSkySWTOA_CO2 ', 'GCHPchem', + 'RadAllSkySWTOA_CFC ', 'GCHPchem', + 'RadAllSkySWTOA_N2O ', 'GCHPchem', 'RadAllSkySWTOA_SU ', 'GCHPchem', 'RadAllSkySWTOA_NI ', 'GCHPchem', 'RadAllSkySWTOA_AM ', 'GCHPchem', @@ -4860,7 +1986,12 @@ COLLECTIONS: @#'DefaultCollection', 'RadAllSkySWTOA_ST ', 'GCHPchem', 'RadClrSkyLWTOA_BASE ', 'GCHPchem', 'RadClrSkyLWTOA_O3 ', 'GCHPchem', + 'RadClrSkyLWTOA_O3T ', 'GCHPchem', 'RadClrSkyLWTOA_ME ', 'GCHPchem', + 'RadClrSkyLWTOA_H2O ', 'GCHPchem', + 'RadClrSkyLWTOA_CO2 ', 'GCHPchem', + 'RadClrSkyLWTOA_CFC ', 'GCHPchem', + 'RadClrSkyLWTOA_N2O ', 'GCHPchem', 'RadClrSkyLWTOA_SU ', 'GCHPchem', 'RadClrSkyLWTOA_NI ', 'GCHPchem', 'RadClrSkyLWTOA_AM ', 'GCHPchem', @@ -4872,7 +2003,12 @@ COLLECTIONS: @#'DefaultCollection', 'RadClrSkyLWTOA_ST ', 'GCHPchem', 'RadClrSkySWTOA_BASE ', 'GCHPchem', 'RadClrSkySWTOA_O3 ', 'GCHPchem', + 'RadClrSkySWTOA_O3T ', 'GCHPchem', 'RadClrSkySWTOA_ME ', 'GCHPchem', + 'RadClrSkySWTOA_H2O ', 'GCHPchem', + 'RadClrSkySWTOA_CO2 ', 'GCHPchem', + 'RadClrSkySWTOA_CFC ', 'GCHPchem', + 'RadClrSkySWTOA_N2O ', 'GCHPchem', 'RadClrSkySWTOA_SU ', 'GCHPchem', 'RadClrSkySWTOA_NI ', 'GCHPchem', 'RadClrSkySWTOA_AM ', 'GCHPchem', @@ -4909,6 +2045,28 @@ COLLECTIONS: @#'DefaultCollection', 'RadAsymWL1_DU ', 'GCHPchem', 'RadAsymWL1_PM ', 'GCHPchem', 'RadAsymWL1_ST ', 'GCHPchem', + 'DTRad ', 'GCHPchem', +:: +#============================================================================= +# %%%%% THE DYNHEATING COLLECTION %%%%% +# +# Estimated dynamical heating data from RRTMG. This MUST be output if the user +# intends to use this simulation as the reference for RRTMG (SE)FDH simulations. +# The frequency and duration must also match the RRTMG (radiation) time step, +# which defaults to 3 hours. This must NOT be set to monthly if it is to work +# correctly. +# +# Available for full-chemistry +#============================================================================= + DynHeating.template: '%y4%m2%d2_%h2%n2z.nc4', + DynHeating.format: 'CFIO', + DynHeating.timestampStart: .true. + DynHeating.monthly: 0 + DynHeating.frequency: 030000 + DynHeating.duration: 030000 + DynHeating.mode: 'time-averaged' + DynHeating.fields: 'DynHeating ', 'GCHPchem', + :: #============================================================================== # %%%%% THE RxnRates COLLECTION %%%%% @@ -4931,6 +2089,29 @@ COLLECTIONS: @#'DefaultCollection', 'RxnRate_EQ002 ', 'GCHPchem', :: #============================================================================== +# %%%%% THE RxnConst COLLECTION %%%%% +# +# Archives chemical reaction rates constants from the KPP solver. +# It is best to list individual reactions to avoid using too much memory. +# Reactions should be listed as "RxnConst_EQnnn", where nnn is the reaction +# index as listed in KPP/fullchem/gckpp_Monitor.F90 (pad zeroes as needed). +# +# The units of reaction rate constants vary according to the number of reactants +# in the reaction. +# +# Available for the fullchem simulations. +#============================================================================== + RxnConst.template: '%y4%m2%d2_%h2%n2z.nc4', + RxnConst.format: 'CFIO', + RxnConst.timestampStart: .true. + RxnConst.monthly: 1 + RxnConst.frequency: 010000 + RxnConst.duration: 010000 + RxnConst.mode: 'time-averaged' + RxnConst.fields: 'RxnConst_EQ001 ', 'GCHPchem', + 'RxnConst_EQ002 ', 'GCHPchem', +:: +#============================================================================== # %%%%% THE SpeciesConc COLLECTION %%%%% # # GEOS-Chem species concentrations @@ -5179,6 +2360,7 @@ COLLECTIONS: @#'DefaultCollection', 'SpeciesConcVV_H1211 ', 'GCHPchem', 'SpeciesConcVV_GLYX ', 'GCHPchem', 'SpeciesConcVV_GLYC ', 'GCHPchem', + 'SpeciesConcVV_FURA ', 'GCHPchem', 'SpeciesConcVV_ETP ', 'GCHPchem', 'SpeciesConcVV_ETNO3 ', 'GCHPchem', 'SpeciesConcVV_ETHP ', 'GCHPchem', @@ -5223,6 +2405,7 @@ COLLECTIONS: @#'DefaultCollection', 'SpeciesConcVV_C2H4 ', 'GCHPchem', 'SpeciesConcVV_C2H2 ', 'GCHPchem', 'SpeciesConcVV_BZPAN ', 'GCHPchem', + 'SpeciesConcVV_BUTDI ', 'GCHPchem', 'SpeciesConcVV_BrSALC ', 'GCHPchem', 'SpeciesConcVV_BrSALA ', 'GCHPchem', 'SpeciesConcVV_BrO ', 'GCHPchem', @@ -5329,10 +2512,10 @@ COLLECTIONS: @#'DefaultCollection', #'Met_FRCLND ', 'GCHPchem', #'Met_FRLAKE ', 'GCHPchem', #'Met_FRLAND ', 'GCHPchem', - #'Met_FRLANDIC ', 'GCHPchem', + #'Met_FRLANDICE ', 'GCHPchem', #'Met_FROCEAN ', 'GCHPchem', #'Met_FRSEAICE ', 'GCHPchem', - #'Met_FRSNO ', 'GCHPchem', + #'Met_FRSNOW ', 'GCHPchem', #'Met_GWETROOT ', 'GCHPchem', #'Met_GWETTOP ', 'GCHPchem', #'Met_HFLUX ', 'GCHPchem', @@ -5413,6 +2596,493 @@ COLLECTIONS: @#'DefaultCollection', @ 'Met_AIRDEN ', 'GCHPchem', @ 'Met_AD ', 'GCHPchem', @:: +#============================================================================== +# %%%%% THE Tomas Microphysics Rate COLLECTION %%%%% +# +# Tomas microphysics rates +# +# Available for full-chemistry and aerosol-only simulations +#============================================================================== + Tomas.template: '%y4%m2%d2_%h2%n2z.nc4', + Tomas.format: 'CFIO', + Tomas.timestampStart: .true. + Tomas.monthly: 0 + Tomas.frequency: 010000 + Tomas.duration: 010000 + Tomas.mode: 'time-averaged' + Tomas.fields: 'TomasH2SO4 ', 'GCHPchem', + 'TomasH2SO4mass_bin01 ', 'GCHPchem', + 'TomasH2SO4mass_bin02 ', 'GCHPchem', + 'TomasH2SO4mass_bin03 ', 'GCHPchem', + 'TomasH2SO4mass_bin04 ', 'GCHPchem', + 'TomasH2SO4mass_bin05 ', 'GCHPchem', + 'TomasH2SO4mass_bin06 ', 'GCHPchem', + 'TomasH2SO4mass_bin07 ', 'GCHPchem', + 'TomasH2SO4mass_bin08 ', 'GCHPchem', + 'TomasH2SO4mass_bin09 ', 'GCHPchem', + 'TomasH2SO4mass_bin10 ', 'GCHPchem', + 'TomasH2SO4mass_bin11 ', 'GCHPchem', + 'TomasH2SO4mass_bin12 ', 'GCHPchem', + 'TomasH2SO4mass_bin13 ', 'GCHPchem', + 'TomasH2SO4mass_bin14 ', 'GCHPchem', + 'TomasH2SO4mass_bin15 ', 'GCHPchem', + 'TomasH2SO4number_bin01 ', 'GCHPchem', + 'TomasH2SO4number_bin02 ', 'GCHPchem', + 'TomasH2SO4number_bin03 ', 'GCHPchem', + 'TomasH2SO4number_bin04 ', 'GCHPchem', + 'TomasH2SO4number_bin05 ', 'GCHPchem', + 'TomasH2SO4number_bin06 ', 'GCHPchem', + 'TomasH2SO4number_bin07 ', 'GCHPchem', + 'TomasH2SO4number_bin08 ', 'GCHPchem', + 'TomasH2SO4number_bin09 ', 'GCHPchem', + 'TomasH2SO4number_bin10 ', 'GCHPchem', + 'TomasH2SO4number_bin11 ', 'GCHPchem', + 'TomasH2SO4number_bin12 ', 'GCHPchem', + 'TomasH2SO4number_bin13 ', 'GCHPchem', + 'TomasH2SO4number_bin14 ', 'GCHPchem', + 'TomasH2SO4number_bin15 ', 'GCHPchem', + 'TomasCOAG ', 'GCHPchem', + 'TomasCOAGmass_bin01 ', 'GCHPchem', + 'TomasCOAGmass_bin02 ', 'GCHPchem', + 'TomasCOAGmass_bin03 ', 'GCHPchem', + 'TomasCOAGmass_bin04 ', 'GCHPchem', + 'TomasCOAGmass_bin05 ', 'GCHPchem', + 'TomasCOAGmass_bin06 ', 'GCHPchem', + 'TomasCOAGmass_bin07 ', 'GCHPchem', + 'TomasCOAGmass_bin08 ', 'GCHPchem', + 'TomasCOAGmass_bin09 ', 'GCHPchem', + 'TomasCOAGmass_bin10 ', 'GCHPchem', + 'TomasCOAGmass_bin11 ', 'GCHPchem', + 'TomasCOAGmass_bin12 ', 'GCHPchem', + 'TomasCOAGmass_bin13 ', 'GCHPchem', + 'TomasCOAGmass_bin14 ', 'GCHPchem', + 'TomasCOAGmass_bin15 ', 'GCHPchem', + 'TomasCOAGnumber_bin01 ', 'GCHPchem', + 'TomasCOAGnumber_bin02 ', 'GCHPchem', + 'TomasCOAGnumber_bin03 ', 'GCHPchem', + 'TomasCOAGnumber_bin04 ', 'GCHPchem', + 'TomasCOAGnumber_bin05 ', 'GCHPchem', + 'TomasCOAGnumber_bin06 ', 'GCHPchem', + 'TomasCOAGnumber_bin07 ', 'GCHPchem', + 'TomasCOAGnumber_bin08 ', 'GCHPchem', + 'TomasCOAGnumber_bin09 ', 'GCHPchem', + 'TomasCOAGnumber_bin10 ', 'GCHPchem', + 'TomasCOAGnumber_bin11 ', 'GCHPchem', + 'TomasCOAGnumber_bin12 ', 'GCHPchem', + 'TomasCOAGnumber_bin13 ', 'GCHPchem', + 'TomasCOAGnumber_bin14 ', 'GCHPchem', + 'TomasCOAGnumber_bin15 ', 'GCHPchem', + 'TomasNUCL ', 'GCHPchem', + 'TomasNUCRATEFN ', 'GCHPchem', + 'TomasNUCLmass_bin01 ', 'GCHPchem', + 'TomasNUCLmass_bin02 ', 'GCHPchem', + 'TomasNUCLmass_bin03 ', 'GCHPchem', + 'TomasNUCLmass_bin04 ', 'GCHPchem', + 'TomasNUCLmass_bin05 ', 'GCHPchem', + 'TomasNUCLmass_bin06 ', 'GCHPchem', + 'TomasNUCLmass_bin07 ', 'GCHPchem', + 'TomasNUCLmass_bin08 ', 'GCHPchem', + 'TomasNUCLmass_bin09 ', 'GCHPchem', + 'TomasNUCLmass_bin10 ', 'GCHPchem', + 'TomasNUCLmass_bin11 ', 'GCHPchem', + 'TomasNUCLmass_bin12 ', 'GCHPchem', + 'TomasNUCLmass_bin13 ', 'GCHPchem', + 'TomasNUCLmass_bin14 ', 'GCHPchem', + 'TomasNUCLmass_bin15 ', 'GCHPchem', + 'TomasNUCLnumber_bin01 ', 'GCHPchem', + 'TomasNUCLnumber_bin02 ', 'GCHPchem', + 'TomasNUCLnumber_bin03 ', 'GCHPchem', + 'TomasNUCLnumber_bin04 ', 'GCHPchem', + 'TomasNUCLnumber_bin05 ', 'GCHPchem', + 'TomasNUCLnumber_bin06 ', 'GCHPchem', + 'TomasNUCLnumber_bin07 ', 'GCHPchem', + 'TomasNUCLnumber_bin08 ', 'GCHPchem', + 'TomasNUCLnumber_bin09 ', 'GCHPchem', + 'TomasNUCLnumber_bin10 ', 'GCHPchem', + 'TomasNUCLnumber_bin11 ', 'GCHPchem', + 'TomasNUCLnumber_bin12 ', 'GCHPchem', + 'TomasNUCLnumber_bin13 ', 'GCHPchem', + 'TomasNUCLnumber_bin14 ', 'GCHPchem', + 'TomasNUCLnumber_bin15 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin01 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin02 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin03 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin04 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin05 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin06 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin07 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin08 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin09 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin10 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin11 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin12 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin13 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin14 ', 'GCHPchem', + 'TomasNUCRATEnumber_bin15 ', 'GCHPchem', + 'TomasAQOX ', 'GCHPchem', + 'TomasAQOXmass_bin01 ', 'GCHPchem', + 'TomasAQOXmass_bin02 ', 'GCHPchem', + 'TomasAQOXmass_bin03 ', 'GCHPchem', + 'TomasAQOXmass_bin04 ', 'GCHPchem', + 'TomasAQOXmass_bin05 ', 'GCHPchem', + 'TomasAQOXmass_bin06 ', 'GCHPchem', + 'TomasAQOXmass_bin07 ', 'GCHPchem', + 'TomasAQOXmass_bin08 ', 'GCHPchem', + 'TomasAQOXmass_bin09 ', 'GCHPchem', + 'TomasAQOXmass_bin10 ', 'GCHPchem', + 'TomasAQOXmass_bin11 ', 'GCHPchem', + 'TomasAQOXmass_bin12 ', 'GCHPchem', + 'TomasAQOXmass_bin13 ', 'GCHPchem', + 'TomasAQOXmass_bin14 ', 'GCHPchem', + 'TomasAQOXmass_bin15 ', 'GCHPchem', + 'TomasAQOXnumber_bin01 ', 'GCHPchem', + 'TomasAQOXnumber_bin02 ', 'GCHPchem', + 'TomasAQOXnumber_bin03 ', 'GCHPchem', + 'TomasAQOXnumber_bin04 ', 'GCHPchem', + 'TomasAQOXnumber_bin05 ', 'GCHPchem', + 'TomasAQOXnumber_bin06 ', 'GCHPchem', + 'TomasAQOXnumber_bin07 ', 'GCHPchem', + 'TomasAQOXnumber_bin08 ', 'GCHPchem', + 'TomasAQOXnumber_bin09 ', 'GCHPchem', + 'TomasAQOXnumber_bin10 ', 'GCHPchem', + 'TomasAQOXnumber_bin11 ', 'GCHPchem', + 'TomasAQOXnumber_bin12 ', 'GCHPchem', + 'TomasAQOXnumber_bin13 ', 'GCHPchem', + 'TomasAQOXnumber_bin14 ', 'GCHPchem', + 'TomasAQOXnumber_bin15 ', 'GCHPchem', + 'TomasMNFIX ', 'GCHPchem', + 'TomasMNFIXmass_bin01 ', 'GCHPchem', + 'TomasMNFIXmass_bin02 ', 'GCHPchem', + 'TomasMNFIXmass_bin03 ', 'GCHPchem', + 'TomasMNFIXmass_bin04 ', 'GCHPchem', + 'TomasMNFIXmass_bin05 ', 'GCHPchem', + 'TomasMNFIXmass_bin06 ', 'GCHPchem', + 'TomasMNFIXmass_bin07 ', 'GCHPchem', + 'TomasMNFIXmass_bin08 ', 'GCHPchem', + 'TomasMNFIXmass_bin09 ', 'GCHPchem', + 'TomasMNFIXmass_bin10 ', 'GCHPchem', + 'TomasMNFIXmass_bin11 ', 'GCHPchem', + 'TomasMNFIXmass_bin12 ', 'GCHPchem', + 'TomasMNFIXmass_bin13 ', 'GCHPchem', + 'TomasMNFIXmass_bin14 ', 'GCHPchem', + 'TomasMNFIXmass_bin15 ', 'GCHPchem', + 'TomasMNFIXnumber_bin01 ', 'GCHPchem', + 'TomasMNFIXnumber_bin02 ', 'GCHPchem', + 'TomasMNFIXnumber_bin03 ', 'GCHPchem', + 'TomasMNFIXnumber_bin04 ', 'GCHPchem', + 'TomasMNFIXnumber_bin05 ', 'GCHPchem', + 'TomasMNFIXnumber_bin06 ', 'GCHPchem', + 'TomasMNFIXnumber_bin07 ', 'GCHPchem', + 'TomasMNFIXnumber_bin08 ', 'GCHPchem', + 'TomasMNFIXnumber_bin09 ', 'GCHPchem', + 'TomasMNFIXnumber_bin10 ', 'GCHPchem', + 'TomasMNFIXnumber_bin11 ', 'GCHPchem', + 'TomasMNFIXnumber_bin12 ', 'GCHPchem', + 'TomasMNFIXnumber_bin13 ', 'GCHPchem', + 'TomasMNFIXnumber_bin14 ', 'GCHPchem', + 'TomasMNFIXnumber_bin15 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin01 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin02 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin03 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin04 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin05 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin06 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin07 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin08 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin09 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin10 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin11 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin12 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin13 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin14 ', 'GCHPchem', + 'TomasMNFIXh2so4mass_bin15 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin01 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin02 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin03 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin04 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin05 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin06 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin07 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin08 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin09 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin10 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin11 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin12 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin13 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin14 ', 'GCHPchem', + 'TomasMNFIXh2so4number_bin15 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin01 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin02 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin03 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin04 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin05 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin06 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin07 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin08 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin09 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin10 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin11 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin12 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin13 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin14 ', 'GCHPchem', + 'TomasMNFIXcoagmass_bin15 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin01 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin02 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin03 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin04 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin05 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin06 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin07 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin08 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin09 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin10 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin11 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin12 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin13 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin14 ', 'GCHPchem', + 'TomasMNFIXcoagnumber_bin15 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin01 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin02 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin03 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin04 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin05 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin06 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin07 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin08 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin09 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin10 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin11 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin12 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin13 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin14 ', 'GCHPchem', + 'TomasMNFIXaqoxmass_bin15 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin01 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin02 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin03 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin04 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin05 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin06 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin07 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin08 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin09 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin10 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin11 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin12 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin13 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin14 ', 'GCHPchem', + 'TomasMNFIXaqoxnumber_bin15 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin01 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin02 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin03 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin04 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin05 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin06 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin07 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin08 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin09 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin10 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin11 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin12 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin13 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin14 ', 'GCHPchem', + 'TomasMNFIXezwat1mass_bin15 ', 'GCHPchem', + 'TomasMNFIXezwat1number_bin01', 'GCHPchem', + 'TomasMNFIXezwat1number_bin02', 'GCHPchem', + 'TomasMNFIXezwat1number_bin03', 'GCHPchem', + 'TomasMNFIXezwat1number_bin04', 'GCHPchem', + 'TomasMNFIXezwat1number_bin05', 'GCHPchem', + 'TomasMNFIXezwat1number_bin06', 'GCHPchem', + 'TomasMNFIXezwat1number_bin07', 'GCHPchem', + 'TomasMNFIXezwat1number_bin08', 'GCHPchem', + 'TomasMNFIXezwat1number_bin09', 'GCHPchem', + 'TomasMNFIXezwat1number_bin10', 'GCHPchem', + 'TomasMNFIXezwat1number_bin11', 'GCHPchem', + 'TomasMNFIXezwat1number_bin12', 'GCHPchem', + 'TomasMNFIXezwat1number_bin13', 'GCHPchem', + 'TomasMNFIXezwat1number_bin14', 'GCHPchem', + 'TomasMNFIXezwat1number_bin15', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin01 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin02 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin03 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin04 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin05 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin06 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin07 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin08 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin09 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin10 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin11 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin12 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin13 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin14 ', 'GCHPchem', + 'TomasMNFIXezwat2mass_bin15 ', 'GCHPchem', + 'TomasMNFIXezwat2number_bin01', 'GCHPchem', + 'TomasMNFIXezwat2number_bin02', 'GCHPchem', + 'TomasMNFIXezwat2number_bin03', 'GCHPchem', + 'TomasMNFIXezwat2number_bin04', 'GCHPchem', + 'TomasMNFIXezwat2number_bin05', 'GCHPchem', + 'TomasMNFIXezwat2number_bin06', 'GCHPchem', + 'TomasMNFIXezwat2number_bin07', 'GCHPchem', + 'TomasMNFIXezwat2number_bin08', 'GCHPchem', + 'TomasMNFIXezwat2number_bin09', 'GCHPchem', + 'TomasMNFIXezwat2number_bin10', 'GCHPchem', + 'TomasMNFIXezwat2number_bin11', 'GCHPchem', + 'TomasMNFIXezwat2number_bin12', 'GCHPchem', + 'TomasMNFIXezwat2number_bin13', 'GCHPchem', + 'TomasMNFIXezwat2number_bin14', 'GCHPchem', + 'TomasMNFIXezwat2number_bin15', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin01 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin02 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin03 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin04 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin05 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin06 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin07 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin08 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin09 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin10 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin11 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin12 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin13 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin14 ', 'GCHPchem', + 'TomasMNFIXezwat3mass_bin15 ', 'GCHPchem', + 'TomasMNFIXezwat3number_bin01', 'GCHPchem', + 'TomasMNFIXezwat3number_bin02', 'GCHPchem', + 'TomasMNFIXezwat3number_bin03', 'GCHPchem', + 'TomasMNFIXezwat3number_bin04', 'GCHPchem', + 'TomasMNFIXezwat3number_bin05', 'GCHPchem', + 'TomasMNFIXezwat3number_bin06', 'GCHPchem', + 'TomasMNFIXezwat3number_bin07', 'GCHPchem', + 'TomasMNFIXezwat3number_bin08', 'GCHPchem', + 'TomasMNFIXezwat3number_bin09', 'GCHPchem', + 'TomasMNFIXezwat3number_bin10', 'GCHPchem', + 'TomasMNFIXezwat3number_bin11', 'GCHPchem', + 'TomasMNFIXezwat3number_bin12', 'GCHPchem', + 'TomasMNFIXezwat3number_bin13', 'GCHPchem', + 'TomasMNFIXezwat3number_bin14', 'GCHPchem', + 'TomasMNFIXezwat3number_bin15', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin01 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin02 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin03 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin04 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin05 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin06 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin07 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin08 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin09 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin10 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin11 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin12 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin13 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin14 ', 'GCHPchem', + 'TomasMNFIXcheck1mass_bin15 ', 'GCHPchem', + 'TomasMNFIXcheck1number_bin01', 'GCHPchem', + 'TomasMNFIXcheck1number_bin02', 'GCHPchem', + 'TomasMNFIXcheck1number_bin03', 'GCHPchem', + 'TomasMNFIXcheck1number_bin04', 'GCHPchem', + 'TomasMNFIXcheck1number_bin05', 'GCHPchem', + 'TomasMNFIXcheck1number_bin06', 'GCHPchem', + 'TomasMNFIXcheck1number_bin07', 'GCHPchem', + 'TomasMNFIXcheck1number_bin08', 'GCHPchem', + 'TomasMNFIXcheck1number_bin09', 'GCHPchem', + 'TomasMNFIXcheck1number_bin10', 'GCHPchem', + 'TomasMNFIXcheck1number_bin11', 'GCHPchem', + 'TomasMNFIXcheck1number_bin12', 'GCHPchem', + 'TomasMNFIXcheck1number_bin13', 'GCHPchem', + 'TomasMNFIXcheck1number_bin14', 'GCHPchem', + 'TomasMNFIXcheck1number_bin15', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin01 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin02 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin03 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin04 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin05 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin06 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin07 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin08 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin09 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin10 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin11 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin12 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin13 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin14 ', 'GCHPchem', + 'TomasMNFIXcheck2mass_bin15 ', 'GCHPchem', + 'TomasMNFIXcheck2number_bin01', 'GCHPchem', + 'TomasMNFIXcheck2number_bin02', 'GCHPchem', + 'TomasMNFIXcheck2number_bin03', 'GCHPchem', + 'TomasMNFIXcheck2number_bin04', 'GCHPchem', + 'TomasMNFIXcheck2number_bin05', 'GCHPchem', + 'TomasMNFIXcheck2number_bin06', 'GCHPchem', + 'TomasMNFIXcheck2number_bin07', 'GCHPchem', + 'TomasMNFIXcheck2number_bin08', 'GCHPchem', + 'TomasMNFIXcheck2number_bin09', 'GCHPchem', + 'TomasMNFIXcheck2number_bin10', 'GCHPchem', + 'TomasMNFIXcheck2number_bin11', 'GCHPchem', + 'TomasMNFIXcheck2number_bin12', 'GCHPchem', + 'TomasMNFIXcheck2number_bin13', 'GCHPchem', + 'TomasMNFIXcheck2number_bin14', 'GCHPchem', + 'TomasMNFIXcheck2number_bin15', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin01 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin02 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin03 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin04 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin05 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin06 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin07 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin08 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin09 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin10 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin11 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin12 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin13 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin14 ', 'GCHPchem', + 'TomasMNFIXcheck3mass_bin15 ', 'GCHPchem', + 'TomasMNFIXcheck3number_bin01', 'GCHPchem', + 'TomasMNFIXcheck3number_bin02', 'GCHPchem', + 'TomasMNFIXcheck3number_bin03', 'GCHPchem', + 'TomasMNFIXcheck3number_bin04', 'GCHPchem', + 'TomasMNFIXcheck3number_bin05', 'GCHPchem', + 'TomasMNFIXcheck3number_bin06', 'GCHPchem', + 'TomasMNFIXcheck3number_bin07', 'GCHPchem', + 'TomasMNFIXcheck3number_bin08', 'GCHPchem', + 'TomasMNFIXcheck3number_bin09', 'GCHPchem', + 'TomasMNFIXcheck3number_bin10', 'GCHPchem', + 'TomasMNFIXcheck3number_bin11', 'GCHPchem', + 'TomasMNFIXcheck3number_bin12', 'GCHPchem', + 'TomasMNFIXcheck3number_bin13', 'GCHPchem', + 'TomasMNFIXcheck3number_bin14', 'GCHPchem', + 'TomasMNFIXcheck3number_bin15', 'GCHPchem', + 'TomasSOA ', 'GCHPchem', + 'TomasSOAmass_bin01 ', 'GCHPchem', + 'TomasSOAmass_bin02 ', 'GCHPchem', + 'TomasSOAmass_bin03 ', 'GCHPchem', + 'TomasSOAmass_bin04 ', 'GCHPchem', + 'TomasSOAmass_bin05 ', 'GCHPchem', + 'TomasSOAmass_bin06 ', 'GCHPchem', + 'TomasSOAmass_bin07 ', 'GCHPchem', + 'TomasSOAmass_bin08 ', 'GCHPchem', + 'TomasSOAmass_bin09 ', 'GCHPchem', + 'TomasSOAmass_bin10 ', 'GCHPchem', + 'TomasSOAmass_bin11 ', 'GCHPchem', + 'TomasSOAmass_bin12 ', 'GCHPchem', + 'TomasSOAmass_bin13 ', 'GCHPchem', + 'TomasSOAmass_bin14 ', 'GCHPchem', + 'TomasSOAmass_bin15 ', 'GCHPchem', + 'TomasSOAnumber_bin01 ', 'GCHPchem', + 'TomasSOAnumber_bin02 ', 'GCHPchem', + 'TomasSOAnumber_bin03 ', 'GCHPchem', + 'TomasSOAnumber_bin04 ', 'GCHPchem', + 'TomasSOAnumber_bin05 ', 'GCHPchem', + 'TomasSOAnumber_bin06 ', 'GCHPchem', + 'TomasSOAnumber_bin07 ', 'GCHPchem', + 'TomasSOAnumber_bin08 ', 'GCHPchem', + 'TomasSOAnumber_bin09 ', 'GCHPchem', + 'TomasSOAnumber_bin10 ', 'GCHPchem', + 'TomasSOAnumber_bin11 ', 'GCHPchem', + 'TomasSOAnumber_bin12 ', 'GCHPchem', + 'TomasSOAnumber_bin13 ', 'GCHPchem', + 'TomasSOAnumber_bin14 ', 'GCHPchem', + 'TomasSOAnumber_bin15 ', 'GCHPchem', +:: #============================================================================= # %%%%% THE WetLossConv COLLECTION %%%%% # diff --git a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.tagO3 b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.tagO3 index 1f18c31dd..ae9cb0968 100644 --- a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.tagO3 +++ b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.tagO3 @@ -1,7 +1,7 @@ - EXPID: OutputDir/GEOSChem EXPDSC: GEOS-Chem_devel CoresPerNode: 6 +Allow_Overwrite: .true. VERSION: 1 #============================================================================== @@ -13,14 +13,16 @@ VERSION: 1 # in the collections section of this file. # # See the examples below for defining different types of grid at different -# resolutions. +# resolutions. See the collections section later on in this file for +# instructions on using an alternative grid for output. # -# See the collections section later on in this file for instructions on -# using an alternative grid for output. +# Beware that the online regridding is area-conserving. Only diagnostics +# independent of grid cell area should be output on a custom grid. For more +# information see the HISTORY.rc page at gchp.readthedocs.io/. #============================================================================== -GRID_LABELS: PE24x144-CF - PC360x181-DC - REGIONAL1x1 +GRID_LABELS: #PE24x144-CF + #PC360x181-DC + #REGIONAL1x1 :: # Example of cubed-sphere grid at c24 resolution diff --git a/run/GCHP/createRunDir.sh b/run/GCHP/createRunDir.sh index 922bbcd02..ea3ceecc4 100755 --- a/run/GCHP/createRunDir.sh +++ b/run/GCHP/createRunDir.sh @@ -1,50 +1,48 @@ #!/bin/bash -# createRunDir.sh: Create GCHP run directory +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP # -# Optional argument: run directory name +# !MODULE: createRunDir.sh # -# If optional run directory name argument is not passed then the user -# will be prompted to enter a name interactively, or choose to use the -# default name gchp_{met}_{sim_name}. +# !DESCRIPTION: Creates a GCHP run directory. +#\\ +#\\ +# !CALLING SEQUENCE: +# ./createRunDir.sh [rundirname] # -# Usage: ./createRunDir.sh [rundirname] +# !REMARKS: +# If optional run directory name argument is not passed then the user +# will be prompted to enter a name interactively, or choose to use the +# default name gchp_{met}_{sim_name}_{sim_extra_option}. # -# Initial version: E. Lundgren,10/5/2018 - -# post registration details to api -function post_registration() { - email="$1" - name="$2" - affiliation="$3" - site="$4" - git_username="$5" - research_interest="$6" - env_type="$7" - curl --location --request POST "https://gc-dashboard.org/registration" \ - --header "Content-Type: text/plain" \ - -d "{ - \"email\": \"${email}\", - \"name\": \"${name}\", - \"affiliation\": \"${affiliation}\", - \"site\": \"${site}\", - \"git_username\": \"${git_username}\", - \"research_interest\": \"${research_interest}\", - \"model_type\": \"gchp\", - \"env_type\": \"${env_type}\" - }" -} +# !REVISION HISTORY: +# Initial version: E. Lundgren,10/5/2018 +# See the subsequent Git history with the gitk browser! +#------------------------------------------------------------------------------ +#BOC +# Directory w/ GCHP rundir scripts (i.e. this directory) srcrundir=$(pwd -P) cd ${srcrundir} + +# GEOS-Chem "science codebase" directory cd ../.. gcdir=$(pwd -P) + +# GCHP "wrapper" directory cd ../../../.. wrapperdir=$(pwd -P) + +# Return to cd ${srcrundir} -# Load file with utility functions to setup configuration files -. ${gcdir}/run/shared/setupConfigFiles.sh +# Source common bash functions from scripts in the run/shared folder +. ${gcdir}/run/shared/setupConfigFiles.sh # Config file editing +. ${gcdir}/run/shared/newUserRegistration.sh # 1st-time user registration +. ${gcdir}/run/shared/singleCarbonSpecies.sh # Single carbon species setup # Initialize run directory variables RUNDIR_VARS="" @@ -78,7 +76,7 @@ if [[ -z "${GC_DATA_ROOT}" ]]; then printf "${thinline}Enter path for ExtData:${thinline}" valid_path=0 while [ "$valid_path" -eq 0 ]; do - read -e extdata + read -e -p "${USER_PROMPT}" extdata if [[ ${extdata} = "q" ]]; then printf "\nExiting.\n" exit 1 @@ -97,29 +95,7 @@ RUNDIR_VARS+="RUNDIR_DATA_ROOT=$GC_DATA_ROOT\n" # -------------------------------------------------------------- # registration for first time users # -------------------------------------------------------------- -if [[ -z "${GC_USER_REGISTERED}" ]]; then - printf "\nInitiating User Registration: You will only need to fill this out once.\n" - printf "${thinline}What is your email address?${thinline}" - read email - - if [[ ${email} != "" ]]; then - printf "${thinline}What is your name?${thinline}" - IFS='\n' read -r name - printf "${thinline}What is your research affiliation (University, \nResearch Group, Government Organization, Company)?${thinline}" - IFS='\n' read -r affiliation - printf "${thinline}If available, please provide the url for your affiliated \ninstitution (group website, company website, etc.)?${thinline}" - IFS='\n' read -r site - printf "${thinline}Please provide your github username (if any) so that we \ncan recognize you in submitted issues and pull requests.${thinline}" - IFS='\n' read -r git_username - printf "${thinline}Where do you plan to run GEOS-Chem (e.g. local compute cluster, AWS, other supercomputer)?${thinline}" - IFS='\n' read -r env_type - printf "${thinline}Please briefly describe how you plan on using GEOS-Chem \nso that we can add you to the GEOS-Chem People and Projects \nwebpage (https://geoschem.github.io/geos-chem-people-projects-map/).${thinline}" - IFS='\n' read -r research_interest - post_registration "$email" "$name" "$affiliation" "$site" "$git_username" "$research_interest" "$env_type" - fi - echo "export GC_USER_REGISTERED=true" >> ${HOME}/.geoschem/config - source ${HOME}/.geoschem/config -fi +[[ -z "${GC_USER_REGISTERED}" ]] && registerNewUser "gchp" #----------------------------------------------------------------- # Ask user to select simulation type @@ -133,7 +109,7 @@ printf " 5. Carbon\n" valid_sim=0 while [ "${valid_sim}" -eq 0 ]; do - read sim_num + read -p "${USER_PROMPT}" sim_num valid_sim=1 if [[ ${sim_num} = "1" ]]; then sim_name=fullchem @@ -172,7 +148,7 @@ if [[ ${sim_name} = "fullchem" ]]; then printf " 8. RRTMG\n" valid_sim_option=0 while [ "${valid_sim_option}" -eq 0 ]; do - read sim_option + read -p "${USER_PROMPT}" sim_option valid_sim_option=1 if [[ ${sim_option} = "1" ]]; then sim_extra_option=none @@ -184,7 +160,7 @@ if [[ ${sim_name} = "fullchem" ]]; then printf " 2. Complex SOA with semivolatile POA\n" valid_soa=0 while [ "${valid_soa}" -eq 0 ]; do - read soa_option + read -p "${USER_PROMPT}" soa_option valid_soa=1 if [[ ${soa_option} = "1" ]]; then sim_extra_option="complexSOA" @@ -205,7 +181,7 @@ if [[ ${sim_name} = "fullchem" ]]; then printf " 2. TOMAS with 40 bins\n" valid_tomas=0 while [ "${valid_tomas}" -eq 0 ]; do - read tomas_option + read -p "${USER_PROMPT}" tomas_option valid_tomas=1 if [[ ${tomas_option} = "1" ]]; then sim_extra_option="TOMAS15" @@ -220,7 +196,6 @@ if [[ ${sim_name} = "fullchem" ]]; then sim_extra_option="APM" elif [[ ${sim_option} = "8" ]]; then sim_extra_option="RRTMG" - printf "*** IMPORTANT: You must manually specify -DRRTMG=y when compiling the model. ***\n" else valid_sim_option=0 printf "Invalid simulation option. Try again.\n" @@ -230,6 +205,34 @@ if [[ ${sim_name} = "fullchem" ]]; then # Currently no transport tracer extra options elif [[ ${sim_name} = "TransportTracers" ]]; then sim_extra_option=none + +# Ask user to specify carbon simulation options +elif [[ "x${sim_name}" == "xcarbon" ]]; then + printf "${thinline}Do you wish to use a single advected species?${thinline}" + printf " 1. Use all species\n" + printf " 2. Use CH4 only\n" + printf " 3. Use CO2 only\n" + printf " 4. Use CO only\n" + printf " 5. Use OCS only\n" + valid=0 + while [ "${valid}" -eq 0 ]; do + read -p "${USER_PROMPT}" prompt + valid=1 + if [[ "x${prompt}" == "x1" ]]; then + sim_extra_option="none" + elif [[ "x${prompt}" == "x2" ]]; then + sim_extra_option="CH4" + elif [[ "x${prompt}" == "x3" ]]; then + sim_extra_option="CO2" + elif [[ "x${prompt}" == "x4" ]]; then + sim_extra_option="CO" + elif [[ "x${prompt}" == "x5" ]]; then + sim_extra_option="OCS" + else + valid=0 + printf "Invalid selection. Try again.\n" + fi + done fi RUNDIR_VARS+="RUNDIR_SIM_EXTRA_OPTION=$sim_extra_option\n" @@ -281,12 +284,12 @@ fi # NOTE: Fullchem benchmarks use the climatological volcano emissions! if [[ "x${sim_name}" == "xfullchem" ]]; then - RUNDIR_VARS+="RUNDIR_VOLC_CLIMATOLOGY='\$ROOT/VOLCANO/v2021-09/so2_volcanic_emissions_CARN_v202005.degassing_only.rc'\n" + RUNDIR_VARS+="RUNDIR_VOLC_CLIMATOLOGY='\$ROOT/VOLCANO/v2024-04/so2_volcanic_emissions_CARN_v202401.degassing_only.rc'\n" if [[ "x${sim_extra_option}" == "xbenchmark" ]]; then - RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2021-09/so2_volcanic_emissions_CARN_v202005.degassing_only.rc'\n" + RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2024-04/so2_volcanic_emissions_CARN_v202401.degassing_only.rc'\n" else - RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2021-09/\$YYYY/\$MM/so2_volcanic_emissions_Carns.\$YYYY\$MM\$DD.rc'\n" + RUNDIR_VARS+="RUNDIR_VOLC_TABLE='\$ROOT/VOLCANO/v2024-04/\$YYYY/\$MM/so2_volcanic_emissions_Carns.\$YYYY\$MM\$DD.rc'\n" fi fi @@ -295,36 +298,206 @@ fi #----------------------------------------------------------------- printf "${thinline}Choose meteorology source:${thinline}" printf " 1. MERRA-2 (Recommended)\n" -printf " 2. GEOS-FP \n" -printf " 3. GEOS-FP native data\n" +printf " 2. GEOS-FP\n" +printf " 3. GEOS-IT (Beta release)\n" + +metSettingsDir=${gcdir}/run/shared/settings valid_met=0 while [ "${valid_met}" -eq 0 ]; do - read met_num + read -p "${USER_PROMPT}" met_num valid_met=1 + if [[ ${met_num} = "1" ]]; then + met="merra2" - RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/merra2.txt)\n" + RUNDIR_VARS+="$(cat ${metSettingsDir}/merra2.txt)\n" + elif [[ ${met_num} = "2" ]]; then - met="geosfp" - RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/geosfp.txt)\n" + + met="geosfp" + + # Ask user to specify processed or raw files + printf "${thinline}Choose meteorology file type:${thinline}" + printf " 1. 0.25x0.3125 daily files pre-processed for GEOS-Chem\n" + printf " 2. 0.25x0.3125 hourly and 3-hourly raw files produced by GEOS\n" + valid_response=0 + while [ "${valid_response}" -eq 0 ]; do + valid_response=1 + read -p "${USER_PROMPT}" response + if [[ ${response} = "1" ]]; then + met_file_type="processed_ll" + elif [[ ${response} = "2" ]]; then + met_file_type="raw_ll" + met_desc="raw" + else + valid_response=0 + printf "Invalid option. Try again.\n" + fi + done + + # If using raw files ask user to specify meteoerology for advection. + if [[ ${met_file_type} = "raw_ll" ]]; then + printf "${thinline}Choose meteorology for advection:${thinline}" + printf " 1. 0.25x0.3125 3-hourly winds\n" + printf " 2. C720 1-hourly winds derived from mass fluxes (recommended for stretched grid)\n" + printf " 3. C720 1-hourly mass fluxes\n" + valid_response=0 + while [ "${valid_response}" -eq 0 ]; do + valid_response=1 + read -p "${USER_PROMPT}" response + if [[ ${response} = "1" ]]; then + adv_flux_src="wind" + elif [[ ${response} = "2" ]]; then + adv_flux_src="derived_wind" + elif [[ ${response} = "3" ]]; then + adv_flux_src="mass_flux" + else + valid_response=0 + printf "Invalid option. Try again.\n" + fi + done + fi + + # Set ExtData.rc settings for met data. Different settings based options chosen above. + if [[ ${met_file_type} = "raw_ll" ]]; then + + # config file with advection meteorology + if [[ ${adv_flux_src} = "wind" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosfp/geosfp.raw_3hr_wind_ll.txt)\n" + + elif [[ ${adv_flux_src} = "derived_wind" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosfp/geosfp.derived_1hr_wind_cs.txt)\n" + + elif [[ ${adv_flux_src} = "mass_flux" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosfp/geosfp.raw_1hr_mass_flux_cs.txt)\n" + fi + + # config file with everything else + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosfp/geosfp.raw_ll.txt)\n" + + elif [[ ${met_file_type} = "processed_ll" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosfp/geosfp.preprocessed_ll.txt)\n" + fi + elif [[ ${met_num} = "3" ]]; then - read -p "Do you want to use mass fluxes for advection? (yes/no, default=no): " use_mass_fluxes - if [[ "$use_mass_fluxes" =~ ^[Yy] ]]; then - use_mass_flux_derived_wind=no - else - read -p "Do you want to use mass fluxes derived winds for advection? (yes/no, default=no): " use_mass_flux_derived_wind - fi - - if [[ "$use_mass_fluxes" =~ ^[Yy] ]]; then - RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/native_geosfp_mass_flux.txt)\n" - elif [[ "$use_mass_flux_derived_wind" =~ ^[Yy] ]]; then - RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/native_geosfp_mass_flux_derived_wind.txt)\n" - else - RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/native_geosfp_normal_wind.txt)\n" - fi - met="geosfp" - RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/native_geosfp.txt)\n" + + met="geosit" + + # Ask user to specify processed or raw files + printf "${thinline}Choose meteorology files:${thinline}" + printf " 1. Raw C180 (recommended)\n" + printf " 2. Raw 0.5x0.625 \n" + printf " 3. Pre-processed C180 (not yet available)\n" + printf " 4. Pre-processed 0.5x0.625 \n" + valid_response=0 + while [ "${valid_response}" -eq 0 ]; do + valid_response=1 + read -p "${USER_PROMPT}" response + if [[ ${response} = "1" ]]; then + met_file_type="raw_cs" + met_desc="raw_cs" + elif [[ ${response} = "2" ]]; then + met_file_type="raw_ll" + met_desc="raw_ll" + elif [[ ${response} = "3" ]]; then + met_file_type="processed_cs" + valid_response=0 + printf "Pre-processed GEOS-IT data at C180 resolution is not yet available. Try again.\n" + elif [[ ${response} = "4" ]]; then + met_file_type="processed_ll" + met_desc="processed_ll" + else + valid_response=0 + printf "Invalid option. Try again.\n" + fi + done + + # If using cubed-sphere raw files ask user to specify meteoerology for + # advection. If using raw lat-lon then always use winds. + if [[ ${met_file_type} = "raw_ll" ]]; then + adv_flux_src="wind" + elif [[ ${met_file_type} = "raw_cs" ]]; then + printf "${thinline}Choose meteorology for advection:${thinline}" + printf " 1. C180 1-hourly mass fluxes (recommended)\n" + printf " 2. C180 3-hourly winds\n" + valid_response=0 + while [ "${valid_response}" -eq 0 ]; do + valid_response=1 + read -p "${USER_PROMPT}" response + if [[ ${response} = "1" ]]; then + adv_flux_src="mass_flux" + elif [[ ${response} = "2" ]]; then + adv_flux_src="wind" + else + valid_response=0 + printf "Invalid option. Try again.\n" + fi + done + fi + + # If using raw files, ask user if they are using discover + if [[ ${met_file_type} = "raw_cs" || ${met_file_type} = "raw_ll" ]]; then + printf "${thinline}Are you running on the NASA discover cluster? (y/n)${thinline}" + valid_response=0 + while [ "$valid_response" -eq 0 ]; do + read -p "${USER_PROMPT}" use_discover + if [[ ${use_discover} = "y" ]]; then + valid_response=1 + elif [[ ${use_discover} = "n" ]]; then + valid_response=1 + else + printf "Invalid option. Try again.\n" + fi + done + else + use_discover=n + fi + + # Set text files containing settings for met data. Different settings based options aboves. + if [[ ${met_file_type} = "processed_ll" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/geosit.preprocessed_ll.txt)\n" + + else + if [[ ${use_discover} = "y" ]]; then + + # Settings for advection vars in ExtData.rc, running on discover + if [[ ${adv_flux_src} = "mass_flux" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/discover/geosit.raw_mass_flux.discover.txt)\n" + elif [[ ${adv_flux_src} == "wind" && ${met_file_type} == "raw_cs" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/discover/geosit.raw_wind_cs.discover.txt)\n" + elif [[ ${adv_flux_src} == "wind" && ${met_file_type} == "raw_ll" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/discover/geosit.raw_wind_ll.discover.txt)\n" + fi + + # Settings for all other met vars in ExtData.rc, running on discover + if [[ ${met_file_type} = "raw_cs" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/discover/geosit.raw_cs.discover.txt)\n" + elif [[ ${met_file_type} = "raw_ll" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/discover/geosit.raw_ll.discover.txt)\n" + fi + + elif [[ ${use_discover} = "n" ]]; then + + # Settings for advection vars in ExtData.rc, NOT running on discover + if [[ ${adv_flux_src} = "mass_flux" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/geosit.raw_mass_flux.txt)\n" + elif [[ ${adv_flux_src} == "wind" && ${met_file_type} == "raw_cs" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/geosit.raw_wind_cs.txt)\n" + elif [[ ${adv_flux_src} == "wind" && ${met_file_type} == "raw_ll" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/geosit.raw_wind_ll.txt)\n" + fi + + # Settings for all other met vars in ExtData.rc, NOT running on discover + if [[ ${met_file_type} = "raw_cs" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/geosit.raw_cs.txt)\n" + elif [[ ${met_file_type} = "raw_ll" ]]; then + RUNDIR_VARS+="$(cat ${metSettingsDir}/geosit/geosit.raw_ll.txt)\n" + fi + + fi + fi # end GEOS-IT + else valid_met=0 printf "Invalid meteorology option. Try again.\n" @@ -337,7 +510,7 @@ done printf "${thinline}Enter path where the run directory will be created:${thinline}" valid_path=0 while [ "$valid_path" -eq 0 ]; do - read -e rundir_path + read -e -p "${USER_PROMPT}" rundir_path # Test for quitting if [[ "x${rundir_path}" == "xq" ]]; then @@ -357,7 +530,7 @@ while [ "$valid_path" -eq 0 ]; do if [[ ! -d ${rundir_path} ]]; then if [[ -d $(dirname ${rundir_path} ) ]]; then printf "\nWarning: ${rundir_path} does not exist,\nbut the parent directory does.\nWould you like to make this directory? (y/n/q)\n" - read mk_rundir + read -p "${USER_PROMPT}" mk_rundir if [[ "x${mk_rundir}" == "xy" ]]; then mkdir $rundir_path elif [[ "x${mk_rundir}" == "xq" ]]; then @@ -381,12 +554,17 @@ done if [ -z "$1" ]; then printf "${thinline}Enter run directory name, or press return to use default:\n\n" printf "NOTE: This will be a subfolder of the path you entered above.${thinline}" - read -e rundir_name + read -e -p "${USER_PROMPT}" rundir_name if [[ -z "${rundir_name}" ]]; then - if [[ "${sim_extra_option}" = "none" ]]; then - rundir_name=gchp_${met}_${sim_name} - else - rundir_name=gchp_${met}_${sim_name}_${sim_extra_option} + rundir_name=gchp_${met}_${sim_name} + if [[ "${sim_extra_option}" != "none" ]]; then + rundir_name=${rundir_name}_${sim_extra_option} + fi + if [[ "x${met_desc}" != "x" ]]; then + rundir_name=${rundir_name}_${met_desc} + fi + if [[ "x${adv_flux_src}" != "x" ]]; then + rundir_name=${rundir_name}_using_${adv_flux_src} fi printf " -- Using default directory name ${rundir_name}\n" fi @@ -403,7 +581,7 @@ while [ "${valid_rundir}" -eq 0 ]; do if [[ -d ${rundir} ]]; then printf "\nWARNING: ${rundir} already exists.\n" printf "Enter a different run directory name, or q to quit:\n" - read -e new_rundir + read -e -p "${USER_PROMPT}" new_rundir if [[ ${new_rundir} = "q" ]]; then printf "Exiting.\n" exit 1 @@ -439,7 +617,7 @@ cp ./gitignore ${rundir}/.gitignore # Copy file to auto-update common settings. Use adjoint version for CO2. cp ./setCommonRunSettings.sh.template ${rundir}/setCommonRunSettings.sh -if [[ "x${sim_name}" == "xfullchem" || "x${sim_name}" == "xCH4" ]]; then +if [[ "x${sim_name}" == "xfullchem" || "x${sim_name}" == "xcarbon" ]]; then cp -r ${gcdir}/run/shared/metrics.py ${rundir} chmod 744 ${rundir}/metrics.py fi @@ -467,34 +645,43 @@ fi ln -s ${wrapperdir} ${rundir}/CodeDir ln -s ${wrapperdir}/run/runScriptSamples ${rundir}/runScriptSamples -# Create build directory -mkdir ${rundir}/build -printf "To build GCHP type:\n cmake ../CodeDir\n cmake . -DRUNDIR=..\n make -j\n make install\n" >> ${rundir}/build/README - #-------------------------------------------------------------------- # Link to initial restart files, set start in cap_restart #-------------------------------------------------------------------- restarts=${GC_DATA_ROOT}/GEOSCHEM_RESTARTS if [[ "x${sim_name}" == "xfullchem" ]]; then - start_date='20190701' - restart_dir='GC_14.0.0' - restart_name="${sim_name}" + if [[ ${sim_extra_option} =~ "TOMAS" ]]; then + start_date='20190701' + restart_dir='v2024-01' + restart_name="${sim_extra_option}" + else + start_date='20190701' + restart_dir='GC_14.3.0' + restart_name="${sim_name}" + fi elif [[ "x${sim_name}" == "xtagO3" ]]; then # NOTE: we use the fullchem restart file for tagO3 start_date='20190701' - restart_dir='GC_14.0.0' + restart_dir='GC_14.3.0' restart_name="fullchem" elif [[ "x${sim_name}" == "xTransportTracers" ]]; then start_date='20190101' - restart_dir='GC_14.0.0' + restart_dir='GC_14.2.0' restart_name="${sim_name}" elif [[ ${sim_name} = "carbon" ]]; then start_date='20190101' restart_dir='v2023-01' restart_name="${sim_name}" fi -for N in 24 48 90 180 360 +for N in 24 30 48 90 180 do + # Do not include c24 and c48 if using GEOS-IT mass fluxes. MAPL cannot regrid + # C180 mass fluxes to those grid resolutions. + if [[ "${met}" == "geosit" && "${adv_flux_src}" == "mass_flux" ]]; then + if [[ "$N" == "24" || "$N" == "48" ]]; then + continue + fi + fi old_prefix="GEOSChem.Restart.${restart_name}" new_prefix="GEOSChem.Restart" echo "${start_date} 000000" > ${rundir}/cap_restart @@ -522,7 +709,13 @@ RUNDIR_VARS+="RUNDIR_HIST_MONTHLY_DIAG='1'\n" RUNDIR_VARS+="RUNDIR_NUM_CORES='96'\n" RUNDIR_VARS+="RUNDIR_NUM_NODES='2'\n" RUNDIR_VARS+="RUNDIR_CORES_PER_NODE='48'\n" -RUNDIR_VARS+="RUNDIR_CS_RES='24'\n" + +# Set default grid resolution +if [[ "${met}" == "geosit" && "${adv_flux_src}" == "mass_flux" ]]; then + RUNDIR_VARS+="RUNDIR_CS_RES='30'\n" +else + RUNDIR_VARS+="RUNDIR_CS_RES='24'\n" +fi # Assign appropriate file paths and settings in HEMCO_Config.rc if [[ "${sim_extra_option}" == "benchmark" ]]; then @@ -533,10 +726,13 @@ if [[ "${sim_extra_option}" == "benchmark" ]]; then RUNDIR_VARS+="RUNDIR_OFFLINE_BIOVOC='false'\n" RUNDIR_VARS+="RUNDIR_OFFLINE_SEASALT='false'\n" RUNDIR_VARS+="RUNDIR_OFFLINE_SOILNOX='false'\n" + RUNDIR_VARS+="RUNDIR_TOMAS_SEASALT='off'\n" + RUNDIR_VARS+="RUNDIR_TOMAS_DUSTDEAD='off'\n" else if [[ "${sim_extra_option}" == "marinePOA" ]]; then RUNDIR_VARS+="RUNDIR_SEASALT_EXT='on '\n" RUNDIR_VARS+="RUNDIR_OFFLINE_SEASALT='false'\n" + RUNDIR_VARS+="RUNDIR_TOMAS_SEASALT='off'\n" else RUNDIR_VARS+="RUNDIR_SEASALT_EXT='off'\n" if [[ ${sim_extra_option} =~ "TOMAS" ]]; then @@ -559,7 +755,22 @@ else RUNDIR_VARS+="RUNDIR_OFFLINE_BIOVOC='true '\n" RUNDIR_VARS+="RUNDIR_OFFLINE_SOILNOX='true '\n" fi -RUNDIR_VARS+="$(cat ${gcdir}/run/shared/settings/gmao_hemco.txt)\n" +RUNDIR_VARS+="$(cat ${metSettingsDir}/gmao_hemco.txt)\n" +if [[ "x${sim_extra_option}" == "xbenchmark" || + "x${sim_extra_option}" == "xaciduptake" || + "x${sim_extra_option}" == "xmarinePOA" || + "x${sim_extra_option}" == "xcomplexSOA_SVPOA" || + "x${sim_extra_option}" == "xAPM" || + "x${sim_name}" == "xcarbon" || + "x${sim_extra_option}" == "xTOMAS15" || + "x${sim_extra_option}" == "xTOMAS40" || + "x${sim_name}" == "xPOPs" || + "x${sim_name}" == "xTransportTracers" || + "x${sim_name}" == "xtagO3" ]]; then + RUNDIR_VARS+="RUNDIR_INITIAL_RESTART_SPECIES_REQUIRED='0'\n" +else + RUNDIR_VARS+="RUNDIR_INITIAL_RESTART_SPECIES_REQUIRED='1'\n" +fi #-------------------------------------------------------------------- # Replace settings in config files with RUNDIR variables @@ -576,7 +787,14 @@ ${srcrundir}/init_rd.sh ${rundir_config_log} # GEOS-Chem Classic and GCHP. This script mainly now adds species to # geoschem_config.yml and modifies diagnostic output based on simulation type. if [[ "x${sim_name}" = "xfullchem" ]]; then - set_common_settings ${sim_extra_option} + set_common_settings "${sim_extra_option}" "GCHP" +fi + +# If necessary, edit config files for a carbon single species simulation +if [[ "x${sim_name}" == "xcarbon" ]]; then + if [[ "x${sim_extra_option}" != "xnone" ]]; then + singleCarbonSpecies "${sim_extra_option}" "${rundir}" + fi fi # Call setCommonRunSettings.sh so that all config files are consistent with its @@ -617,13 +835,16 @@ printf "\n Hash: ${commit_hash}" >> ${version_log} printf "${thinline}Do you want to track run directory changes with git? (y/n)${thinline}" valid_response=0 while [ "$valid_response" -eq 0 ]; do - read enable_git + read -p "${USER_PROMPT}" enable_git if [[ ${enable_git} = "y" ]]; then cd ${rundir} printf "\n\nChanges to the following run directory files are tracked by git:\n\n" >> ${version_log} printf "\n" git init git add *.rc *.sh *.yml input.nml + if [[ "x${sim_name}" == "xfullchem" || "x${sim_name}" == "xcarbon" ]]; then + git add *.py + fi printf " " >> ${version_log} git commit -m "Initial run directory" >> ${version_log} cd ${srcrundir} @@ -652,4 +873,38 @@ printf "\n -- Example run scripts are in the runScriptSamples subdirectory" printf "\n -- For more information visit the GCHP user guide at" printf "\n https://readthedocs.org/projects/gchp/\n\n" +#--------------------------------------------------------------------------- +# Add reminders to compile with CMake options for simulations that need them +#--------------------------------------------------------------------------- +hdr="\n>>>> REMINDER: You must compile with options:" +ftr="<<<<\n" + +EXTRA_CMAKE_OPTIONS="" +[[ "x${sim_name}" == "xcarbon" ]] && EXTRA_CMAKE_OPTIONS="-DMECH=carbon" +[[ "x${sim_name}" == "xHg" ]] && EXTRA_CMAKE_OPTIONS="-DMECH=Hg -DFASTJX=y" +if [[ "x${sim_name}" == "xfullchem" ]]; then + [[ "x${sim_extra_option}" == "xAPM" ]] && EXTRA_CMAKE_OPTIONS="-DAPM=y" + [[ "x${sim_extra_option}" == "xRRTMG" ]] && EXTRA_CMAKE_OPTIONS="-DRRTMG=y" + [[ "x${sim_extra_option}" == "xTOMAS15" ]] && EXTRA_CMAKE_OPTIONS="-DTOMAS=y -DTOMAS_BINS=15" + [[ "x${sim_extra_option}" == "xTOMAS40" ]] && EXTRA_CMAKE_OPTIONS="-DTOMAS=y -DTOMAS_BINS=40" +fi + +# Add to RUNDIR_VARS +RUNDIR_VARS+="EXTRA_CMAKE_OPTIONS=${EXTRA_CMAKE_OPTIONS}" + +# Print a reminder to compile with extra CMake options, if necessary +[[ "x${EXTRA_CMAKE_OPTIONS}" != "x" ]] && printf "${hdr} ${EXTRA_CMAKE_OPTIONS} ${ftr}" + +#--------------------------------------------------------------------------- +# Create build directory README file +#--------------------------------------------------------------------------- +mkdir -p "${rundir}/build" +msg="To build GEOS-Chem, type:\n\n" +msg+="$ cmake ../CodeDir\n" +msg+="$ cmake . -DRUNDIR=.. ${EXTRA_CMAKE_OPTIONS}\n" +msg+="$ make -j\n" +msg+="$ make install\n" +printf "${msg}" > ${rundir}/build/README +unset msg + exit 0 diff --git a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.CO2 b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.CO2 index ce386fe38..f76c32020 100644 --- a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.CO2 +++ b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.CO2 @@ -13,7 +13,9 @@ simulation: chem_inputs_dir: ./ChemDir/ species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all #============================================================================ # Timesteps settings diff --git a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.TransportTracers b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.TransportTracers index 468023268..9ec66e0e2 100644 --- a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.TransportTracers +++ b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.TransportTracers @@ -13,7 +13,9 @@ simulation: chem_inputs_dir: ./ChemDir/ species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all #============================================================================ # Timesteps settings @@ -48,49 +50,25 @@ operations: transported_species: - Rn222 - Pb210 - - Pb210Strat + - Pb210s - Be7 - - Be7Strat + - Be7s - Be10 - - Be10Strat + - Be10s + - aoa + - aoa_bl + - aoa_nh + - CH3I + - CO_25 + - CO_50 + - e90 + - e90_n + - e90_s + - nh_5 + - nh_50 - PassiveTracer - - CLOCK - - SF6Tracer - - CH3ITracer - - COAnthroEmis25dayTracer - - COAnthroEmis50dayTracer - - COUniformEmis25dayTracer - passive_species: - PassiveTracer: - long_name: Passive_tracer_for_mass_conservation_evaluation - mol_wt_in_g: 1.0 - lifetime_in_s: -1 - default_bkg_conc_in_vv: 1.0e-7 - SF6Tracer: - long_name: Sulfur_hexafluoride - mol_wt_in_g: 146.0 - lifetime_in_s: -1 - default_bkg_conc_in_vv: 1.0e-20 - CH3ITracer: - long_name: Methyl_iodide - mol_wt_in_g: 142.0 - lifetime_in_s: 4.32e5 - default_bkg_conc_in_vv: 1.0e-20 - COAnthroEmis25dayTracer: - long_name: Anthropogenic_CO_with_25day_lifetime - mol_wt_in_g: 28.0 - lifetime_in_s: 2.16e6 - default_bkg_conc_in_vv: 1.0e-20 - COAnthroEmis50dayTracer: - long_name: Anthropogenic_CO_with_50day_lifetime - mol_wt_in_g: 28.0 - lifetime_in_s: 4.32e6 - default_bkg_conc_in_vv: 1.0e-20 - COUniformEmis25dayTracer: - long_name: CO_with_uniform_emission_and_25day_lifetime - mol_wt_in_g: 28.0 - lifetime_in_s: 2.16e6 - default_bkg_conc_in_vv: 1.0e-20 + - SF6 + - st80_25 wet_deposition: activate: true diff --git a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.carbon b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.carbon index 5e2941c7b..323f4f2d8 100644 --- a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.carbon +++ b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.carbon @@ -9,7 +9,10 @@ simulation: name: ${RUNDIR_SIM_NAME} chem_inputs_dir: ./ChemDir/ species_database_file: ./species_database.yml - debug_printout: false + species_metadata_output_file: OutputDir/geoschem_species_metadata.yml + verbose: + activate: false + on_cores: root # Allowed values: root all #============================================================================ # Settings for GEOS-Chem operations @@ -45,8 +48,11 @@ CH4_simulation_options: analytical_inversion: activate: false - emission_perturbation: 1.0 state_vector_element_number: 0 + emission_perturbation_factor: 1.0 + OH_perturbation_factor: 1.0 + perturb_CH4_boundary_conditions: false + CH4_boundary_condition_ppb_increase_NSEW: [0.0, 0.0, 0.0, 0.0] use_emission_scale_factor: false use_OH_scale_factors: false @@ -65,20 +71,11 @@ CO_simulation_options: CO2_simulation_options: sources: - fossil_fuel_emissions: true - ocean_exchange: true - balanced_biosphere_exchange: true - net_terrestrial_exchange: true - ship_emissions: true - aviation_emissions: true 3D_chemical_oxidation_source: true tagged_species: - save_fossil_fuel_in_background: false tag_bio_and_ocean_CO2: false - tag_land_fossil_fuel_CO2: - tag_global_ship_CO2: false - tag_global_aircraft_CO2: false + tag_land_fossil_fuel_CO2: false #============================================================================ # Settings for diagnostics (other than HISTORY and HEMCO) @@ -98,57 +95,4 @@ extra_diagnostics: planeflight: activate: false flight_track_file: Planeflight.dat.YYYYMMDD - output_file: plane.log.YYYYMMDD - - legacy_bpch: # 1 2 3 - output_menu: # 1234567890123456789012345678901 - schedule_output_for_JAN: 3000000000000000000000000000000 - schedule_output_for_FEB: 30000000000000000000000000000 - schedule_output_for_MAR: 3000000000000000000000000000000 - schedule_output_for_APR: 300000000000000000000000000000 - schedule_output_for_MAY: 3000000000000000000000000000000 - schedule_output_for_JUN: 300000000000000000000000000000 - schedule_output_for_JUL: 3000000000000000000000000000000 - schedule_output_for_AUG: 3000000000000000000000000000000 - schedule_output_for_SEP: 300000000000000000000000000000 - schedule_output_for_OCT: 3000000000000000000000000000000 - schedule_output_for_NOV: 300000000000000000000000000000 - schedule_output_for_DEC: 3000000000000000000000000000000 - - gamap: - diaginfo_dat_file: ./diaginfo.dat - tracerinfo_dat_file: ./tracerinfo.dat - - bpch_diagnostics: - TOMAS_aerosol_emissions: "0 all" - TOMAS_rate: "0 all" - TOMAS_3D_rate: "0 all" - ND65_prodloss: - activate: true - number_of_levels: 72 - - ND51_satellite: - activate: false - output_file: ts_satellite.YYYYMMDD.bpch - tracers: - - 1 - - 2 - - 501 - UTC_hour_for_write: 0 - averaging_period_in_LT: [9, 11] - IMIN_and_IMAX_of_region: [1, 72] - JMIN_and_JMAX_of_region: [1, 46] - LMIN_and_LMAX_of_region: [1, 1] - - ND51b_satellite: - activate: false - output_file: ts_13_15_NA..YYYYMMDD.bpch - tracers: - - 1 - - 2 - - 501 - UTC_hour_for_write: 1 - averaging_period_in_LT: [13, 15] - IMIN_and_IMAX_of_region: [1, 72] - JMIN_and_JMAX_of_region: [1, 46] - LMIN_and_LMAX_of_region: [1, 1] + output_file: plane.log.YYYYMMDD \ No newline at end of file diff --git a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.fullchem b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.fullchem index 0a0ab16d2..f62f202f6 100644 --- a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.fullchem +++ b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.fullchem @@ -13,7 +13,9 @@ simulation: chem_inputs_dir: ./ChemDir/ species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all #============================================================================ # Timesteps settings @@ -68,15 +70,18 @@ operations: use_non_local_pbl: ${RUNDIR_USE_NLPBL} photolysis: - input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/FAST_JX/v2021-10/ + activate: true + input_directories: + fastjx_input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/FAST_JX/v2024-05/ + cloudj_input_dir: ${RUNDIR_DATA_ROOT}/CHEM_INPUTS/CLOUD_J/v2023-05/ overhead_O3: use_online_O3_from_model: ${RUNDIR_USE_ONLINE_O3} use_column_O3_from_met: true use_TOMS_SBUV_O3: false photolyze_nitrate_aerosol: - activate: false - NITs_Jscale_JHNO3: 0.0 - NIT_Jscale_JHNO2: 0.0 + activate: true + NITs_Jscale: 100.0 + NIT_Jscale: 100.0 percent_channel_A_HONO: 66.667 percent_channel_B_NO2: 33.333 @@ -88,6 +93,11 @@ operations: shortwave_fluxes: ${RUNDIR_RRTMG_OPTS} clear_sky_flux: ${RUNDIR_RRTMG_OPTS} all_sky_flux: ${RUNDIR_RRTMG_OPTS} + fixed_dyn_heating: false + seasonal_fdh: false + fdh_to_toa: false + read_dyn_heating: false + co2_ppmv: 390.0 transport: activate: true @@ -114,6 +124,7 @@ operations: - BrO - BrSALA - BrSALC + - BUTDI - BZCO3H - BZPAN - C2H2 @@ -160,6 +171,7 @@ operations: - ETHP - ETNO3 - ETP + - FURA - GLYC - GLYX - H1211 diff --git a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.tagO3 b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.tagO3 index bff13b016..332395a89 100644 --- a/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.tagO3 +++ b/run/GCHP/geoschem_config.yml.templates/geoschem_config.yml.tagO3 @@ -13,7 +13,9 @@ simulation: chem_inputs_dir: ./ChemDir/ species_database_file: ./species_database.yml species_metadata_output_file: OutputDir/geoschem_species_metadata.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all #============================================================================ # Settings for GEOS-Chem operations diff --git a/run/GCHP/init_rd.sh b/run/GCHP/init_rd.sh index 1cf12439e..1f83bd4d5 100755 --- a/run/GCHP/init_rd.sh +++ b/run/GCHP/init_rd.sh @@ -44,6 +44,7 @@ variables=$(echo $variables | sort | uniq) envsubst_list="$(printf '${%s} ' $variables)" COPY_LIST=""" +ESMF.rc input.nml logging.yml HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.${RUNDIR_SIM_NAME} @@ -85,4 +86,4 @@ done [[ -L MetDir ]] && unlink MetDir ln -s ${RUNDIR_DATA_ROOT}/CHEM_INPUTS ChemDir ln -s ${RUNDIR_DATA_ROOT}/HEMCO HcoDir -ln -s ${RUNDIR_MET_DIR_NATIVE} MetDir +ln -s ${RUNDIR_MET_DIR_RAW} MetDir diff --git a/run/GCHP/runScriptSamples/gchp.batch_job.sh b/run/GCHP/runScriptSamples/gchp.batch_job.sh index 368ab2803..7f4168fe4 100755 --- a/run/GCHP/runScriptSamples/gchp.batch_job.sh +++ b/run/GCHP/runScriptSamples/gchp.batch_job.sh @@ -28,18 +28,19 @@ # ----------------- # Example 2: LSF # +#BSUB -G compute-rvmartin #BSUB -q rvmartin -#BSUB -n 72 -#BSUB -W 2:00 -#BSUB -R "rusage[mem=120GB] span[ptile=36] select[mem < 2TB]" -#BSUB -a 'docker(geoschem/gchp:13.0.0-beta.1-13-g924e47f) +#BSUB -n 24 +#BSUB -W 168:00 +#BSUB -R "rusage[mem=300GB] span[ptile=36] select[mem < 2TB]" +#BSUB -a 'docker(geoschem/gchp:14.3.0)' #BSUB -o lsf-%J.txt # # DESCRIPTION Sample GCHP batch job script for Compute1 (Docker-based environments) # SCHEDULER LSF # DATE 2021-02-19 # SIMULATION C90, 2019-01-01 to 2019-01-02 -# RESOURCES 2 nodes, 36 processes per node +# RESOURCES 1 nodes, 24 processes per node # SEE ALSO bsub man pages, http://gchp.rtfd.io/ # # ----------------- @@ -48,7 +49,7 @@ #SBATCH -n 60 #SBATCH -N 2 #SBATCH -t 2:00:00 -#SBATCH -p seas_compute +#SBATCH -p huce_intel,seas_compute,shared #SBATCH --mem=110G #SBATCH --mail-type=ALL # @@ -133,7 +134,11 @@ source checkRunSettings.sh # # Example 2: LSF # -# mpiexec -n 72 ./gchp > ${log} +#/bin/bash +# +# . /etc/bashrc +# +# mpiexec -n 24 ./gchp > ${log} # # Example 3: SLURM # @@ -144,14 +149,32 @@ source checkRunSettings.sh # # POST-RUN COMMANDS # -# If new start time in cap_restart is okay, rename and move restart file + +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done + +# If new start time in cap_restart is okay, rename restart file # and update restart symlink new_start_str=$(sed 's/ /_/g' cap_restart) if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then - echo "ERROR: GCHP failed to run to completion. Check the log file for more information." - exit 1 + echo "ERROR: GCHP failed to run to completion. Check the log file for more information." + rm -f Restarts/gcchem_internal_checkpoint + exit 1 else - N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) - mv gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 source setRestartLink.sh fi diff --git a/run/GCHP/runScriptSamples/gchp.local.run b/run/GCHP/runScriptSamples/gchp.local.run index b90216ba1..1a263951e 100755 --- a/run/GCHP/runScriptSamples/gchp.local.run +++ b/run/GCHP/runScriptSamples/gchp.local.run @@ -6,6 +6,9 @@ # run directory to specify start date. Set grid resolution, number of cores, # and other common settings in setCommonRunSettings.sh prior to running. +# Stop run if errors encountered +set -eo pipefail + # Define log name to include simulation start date start_str=$(sed 's/ /_/g' cap_restart) log=gchp.${start_str:0:13}z.log @@ -19,9 +22,9 @@ else fi # Update config files, set restart symlink, and do sanity checks -source setCommonRunSettings.sh --verbose >> ${log} -source setRestartLink.sh >> ${log} -source checkRunSettings.sh >> ${log} +source setCommonRunSettings.sh --verbose 2>&1 | tee ${log} +source setRestartLink.sh 2>&1 | tee ${log} +source checkRunSettings.sh 2>&1 | tee ${log} # Run GCHP with # processors specified in config file setCommonRunSettings.sh nCores=$( grep -oP 'TOTAL_CORES=\s*\K\d+' setCommonRunSettings.sh ) @@ -31,14 +34,30 @@ nCores=$( grep -oP 'TOTAL_CORES=\s*\K\d+' setCommonRunSettings.sh ) #-------------------------------------------------- time mpirun -np ${nCores} ./gchp 2>&1 | tee -a ${log} -# Rename and move restart file and update restart symlink if new start time ok +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done + +# Rename restart file and update restart symlink if new start time ok new_start_str=$(sed 's/ /_/g' cap_restart) if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then echo "ERROR: GCHP failed to run to completion. Check the log file for more information." + rm Restarts/gcchem_internal_checkpoint exit 1 else N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) - mv gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 source setRestartLink.sh 2>&1 | tee -a ${log} fi - diff --git a/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gcc10_openmpi4_cannon_rocky.env b/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gcc10_openmpi4_cannon_rocky.env new file mode 100755 index 000000000..7532a432c --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gcc10_openmpi4_cannon_rocky.env @@ -0,0 +1,118 @@ +############################################################################### +# gchp.rocky+gnu10.minimal.env +# +# Environment file for GCHP + Rocky Linux + GNU Compiler Collection 10.2.0 +# +# Does not include any Spack-built modules, only FASRC-built modules. +# Useful for running in the Cannon queues, or to start fresh Spack builds. +############################################################################### + +# Display message (if we are in a terminal window) +if [[ $- = *i* ]] ; then + echo "Loading modules for GCHP, please wait ..." +fi + +#============================================================================== +# Unload all previously-unloaded software +#============================================================================== + +# Unload packages loaded with "module load" +module purge + +# Unload packages loaded with "spack load" +if [[ "x${SPACK_ROOT}" != "x" ]]; then + which spack &> /dev/null || spack unload --all +fi + +#============================================================================== +# Load FASRC-built software packages for Rocky Linux and GNU 10.2.0 +#============================================================================== +if [[ $- = *i* ]] ; then + echo "... Loading FASRC-built software, please wait..." +fi + +# Load FASRC-built modules +module load gcc/10.2.0-fasrc01 # gcc / g++ / gfortran +module load openmpi/4.1.0-fasrc01 # MPI +module load netcdf-c/4.8.0-fasrc01 # netcdf-c +module load netcdf-fortran/4.5.3-fasrc01 # netcdf-fortran +module load flex/2.6.4-fasrc01 # Flex lexer (needed for KPP) +module load cmake/3.25.2-fasrc01 # CMake (needed to compile) + +# Additional FASRC-built modules +# Uncomment if you need to use these +##module load IDL/8.7.2-fasrc01 # IDL language (needed for GAMAP) +##module load R/4.2.2-fasrc01 # R language +##module load matlab/R2022b-fasrc01 # matlab language + +#============================================================================== +# Environment variables +# NOTE: _HOME env vars are defined for each loaded +#============================================================================== + +# Make all files world-readable by default +umask 022 + +# Compilers +export CC="gcc" +export CXX="g++" +export FC="gfortran" +export F77="${FC}" + +# MPI +export MPI_ROOT="${MPI_HOME}" + +# netCDF +if [[ "x${NETCDF_HOME}" == "x" ]]; then + export NETCDF_HOME="${NETCDF_C_HOME}" +fi +export NETCDF_ROOT="${NETCDF_HOME}" +export NETCDF_FORTRAN_ROOT="${NETCDF_FORTRAN_HOME}" + +# ESMF +export ESMF_COMPILER="gfortran" +export ESMF_COMM="openmpi" +export ESMF_DIR="/n/jacob_lab/Lab/RockyLinux/ESMF/ESMF_8_4_2" +export ESMF_INSTALL_PREFIX="${ESMF_DIR}/INSTALL_gnu10_openmpi4" +export ESMF_ROOT="${ESMF_INSTALL_PREFIX}" +#--------------------------------------------------------------------------- +# ESMF does not build with GCC10 without the following work-around +# for a type mismatch error (https://trac.macports.org/ticket/60954) +export ESMF_F90COMPILEOPTS="-fallow-argument-mismatch -fallow-invalid-boz" +#--------------------------------------------------------------------------- + +# KPP 3.0.0+ +export KPP_FLEX_LIB_DIR="${FLEX_HOME}/lib64" + +#============================================================================== +# Set limits +#============================================================================== + +ulimit -c unlimited # coredumpsize +ulimit -u 50000 # maxproc +ulimit -v unlimited # vmemoryuse +ulimit -s unlimited # stacksize + +#============================================================================== +# Print information +#============================================================================== + +module list + +echo "" +echo "Environment:" +echo "" +echo "CC : ${CC}" +echo "CXX : ${CXX}" +echo "FC : ${FC}" +echo "ESMF_COMM : ${ESMF_COMM}" +echo "ESMF_COMPILER : ${ESMF_COMPILER}" +echo "ESMF_DIR : ${ESMF_DIR}" +echo "ESMF_INSTALL_PREFIX : ${ESMF_INSTALL_PREFIX}" +echo "ESMF_ROOT : ${ESMF_ROOT}" +echo "KPP_FLEX_LIB_DIR : ${KPP_FLEX_LIB_DIR}" +echo "MPI_HOME : ${MPI_HOME}" +echo "NETCDF_HOME : ${NETCDF_HOME}" +echo "NETCDF_FORTRAN_HOME : ${NETCDF_FORTRAN_HOME}" +echo "" +echo "Done sourcing ${BASH_SOURCE[0]}" diff --git a/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gcc12_openmpi4_cannon_rocky.env b/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gcc12_openmpi4_cannon_rocky.env new file mode 100755 index 000000000..38c7f12e7 --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gcc12_openmpi4_cannon_rocky.env @@ -0,0 +1,117 @@ +################################################################################ +# gchp.rocky+gnu12.minimal.env +# +# Environment file for GCHP + Rocky Linux + GNU Compiler Collection 12.2.0 +# +# Does not include any Spack-built modules, only FASRC-built modules. +# Useful for running in the Cannon queues, or to start fresh Spack builds. +############################################################################### + +# Display message (if we are in a terminal window) +if [[ $- = *i* ]] ; then + echo "Loading modules for GCHP, please wait ..." +fi + +#============================================================================== +# Unload all previously-unloaded software +#============================================================================== + +# Unload packages loaded with "module load" +module purge + +# Unload packages loaded with "spack load" +if [[ "x${SPACK_ROOT}" != "x" ]]; then + which spack &> /dev/null || spack unload --all +fi + +#============================================================================== +# Load FASRC-built software packages for Rocky Linux and GNU 12.2.0 +#============================================================================== +if [[ $- = *i* ]] ; then + echo "... Loading FASRC-built software, please wait ..." +fi + +# FASRC-built modules needed for GEOS-Chem +module load gcc/12.2.0-fasrc01 # gcc / g++ / gfortran +module load openmpi/4.1.4-fasrc01 # MPI +module load netcdf-c/4.9.2-fasrc01 # netcdf-c +module load netcdf-fortran/4.6.0-fasrc02 # netcdf-fortran +module load flex/2.6.4-fasrc01 # Flex lexer (needed for KPP) +module load cmake/3.25.2-fasrc01 # CMake (needed to compile) + +# Additional FASRC-built modules +# Uncomment if you need to use these +#module load IDL/8.7.2-fasrc01 # IDL language (needed for GAMAP) +#module load R/4.2.2-fasrc01 # R language +#module load matlab/R2022b-fasrc01 # matlab language + +#============================================================================== +# Environment variables and related settings +# NOTE: _HOME env vars are defined for each loaded +#============================================================================== + +# Make all files world-readable by default +umask 022 + +# Specify compilers +export CC="gcc" +export CXX="g++" +export FC="gfortran" +export F77="${FC}" + +# MPI +export MPI_ROOT="${MPI_HOME}" + +# netCDF +if [[ "x${NETCDF_HOME}" == "x" ]]; then + export NETCDF_HOME="${NETCDF_C_HOME}" +fi +export NETCDF_FORTRAN_ROOT="${NETCDF_FORTRAN_HOME}" + +# ESMF +export ESMF_COMPILER="gfortran" +export ESMF_COMM="openmpi" +export ESMF_DIR="/n/jacob_lab/Lab/RockyLinux/ESMF/ESMF_8_4_2" +export ESMF_INSTALL_PREFIX="${ESMF_DIR}/INSTALL_gnu12_openmpi4" +export ESMF_ROOT="${ESMF_INSTALL_PREFIX}" +#---------------------------------------------------------------------------- +# ESMF does not build with GCC12 without the following work-around +# for a type mismatch error (https://trac.macports.org/ticket/60954) +export ESMF_F90COMPILEOPTS="-fallow-argument-mismatch -fallow-invalid-boz" +#---------------------------------------------------------------------------- + +# KPP 3.0.0+ +export KPP_FLEX_LIB_DIR="${FLEX_HOME}/lib64" + +#============================================================================== +# Set limits +#============================================================================== + +ulimit -c unlimited # coredumpsize +ulimit -u 50000 # maxproc +ulimit -v unlimited # vmemoryuse +ulimit -s unlimited # stacksize + +#============================================================================== +# Print information +#============================================================================== + +module list + +echo "" +echo "Environment:" +echo "" +echo "CC : ${CC}" +echo "CXX : ${CXX}" +echo "FC : ${FC}" +echo "ESMF_COMM : ${ESMF_COMM}" +echo "ESMF_COMPILER : ${ESMF_COMPILER}" +echo "ESMF_DIR : ${ESMF_DIR}" +echo "ESMF_INSTALL_PREFIX : ${ESMF_INSTALL_PREFIX}" +echo "ESMF_ROOT : ${ESMF_ROOT}" +echo "KPP_FLEX_LIB_DIR : ${KPP_FLEX_LIB_DIR}" +echo "MPI_HOME : ${MPI_HOME}" +echo "NETCDF_HOME : ${NETCDF_HOME}" +echo "NETCDF_FORTRAN_HOME : ${NETCDF_FORTRAN_HOME}" +echo "" +echo "Done sourcing ${BASH_SOURCE[0]}" diff --git a/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gfortran10.2_openmpi4_cannon.env b/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gfortran10.2_openmpi4_cannon.env deleted file mode 100755 index 33497e009..000000000 --- a/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gfortran10.2_openmpi4_cannon.env +++ /dev/null @@ -1,71 +0,0 @@ -if [[ $- = *i* ]] ; then - echo "Loading modules, please wait ..." -fi - -#============================================================================== -# Load modules -#============================================================================== - -module purge -module load git/2.17.0-fasrc01 -module load gcc/10.2.0-fasrc01 -module load openmpi/4.1.0-fasrc01 -module load netcdf-fortran/4.5.3-fasrc03 -module load cmake/3.16.1-fasrc01 - -#============================================================================== -# Environment variables -#============================================================================== - -# Make all files world-readable by default -umask 022 - -# Specify compilers -export CC=gcc -export CXX=g++ -export FC=gfortran - -# MPI -export MPI_ROOT=${MPI_HOME} - -# For ESMF -export ESMF_COMPILER=gfortran -export ESMF_COMM=openmpi -#export ESMF_DIR=/n/jacob_lab/Lab/seasfs01/Lab/ESMF/ESMF_8_0_1 -export ESMF_DIR=/n/jacob_lab/Lab/seasfs01/Lab/ESMF/ESMF_8_1_0 -export ESMF_INSTALL_PREFIX=${ESMF_DIR}/INSTALL_gfortran10_openmpi4 - -# For GCHP -export ESMF_ROOT=${ESMF_INSTALL_PREFIX} - -#============================================================================== -# Set limits -#============================================================================== - -#ulimit -c 0 # coredumpsize -ulimit -l unlimited # memorylocked -ulimit -u 50000 # maxproc -ulimit -v unlimited # vmemoryuse -ulimit -s unlimited # stacksize - -#============================================================================== -# Print information -#============================================================================== - -module list -echo "" -echo "Environment:" -echo "" -echo "CC: ${CC}" -echo "CXX: ${CXX}" -echo "FC: ${FC}" -echo "ESMF_COMM: ${ESMF_COMM}" -echo "ESMF_COMPILER: ${ESMF_COMPILER}" -echo "ESMF_DIR: ${ESMF_DIR}" -echo "ESMF_INSTALL_PREFIX: ${ESMF_INSTALL_PREFIX}" -echo "ESMF_ROOT: ${ESMF_ROOT}" -echo "MPI_HOME: ${MPI_HOME}" -echo "NetCDF C: $(nc-config --prefix)" -#echo "NetCDF Fortran: $(nf-config --prefix)" -echo "" -echo "Done sourcing ${BASH_SOURCE[0]}" \ No newline at end of file diff --git a/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.run b/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.run index cc1253f8a..56269c542 100755 --- a/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.run +++ b/run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.run @@ -2,14 +2,36 @@ #SBATCH -n 96 #SBATCH -N 2 +#SBATCH -c 1 #SBATCH --exclusive +##------------------------------------- +## Use this for 1-month runs (default) #SBATCH -t 0-8:00 -#SBATCH -p seas_compute +##------------------------------------ +## Use this for 1-year runs +##SBATCH -t 1-0:00 +##------------------------------------ +#SBATCH -p sapphire,huce_cascade,seas_compute,shared #SBATCH --mem=180000 #SBATCH --mail-type=END -# Exit if command fails, and log all commands -set -xe +############################################################################### +### Sample GCHP run script for Harvard Cannon cluster (using SLURM). +### +### -n : Requests this many cores (across all nodes) +### -N : Requests this number of nodes +### -c 1 : Forces 1 task per CPU (needed after 2024/03/05 SLURM update) +### --mem : Requests this amount of memory in GB +### -p : Requests these partitions where the job can run +### -t : Requests time for the job (days-hours:minutes) +### --exclusive : Reserves entire nodes (i.e. to prevent backfilling jobs) +############################################################################### + +# Exit if command fails +set -e + +# Debug option to print all commands executed in this script +#set -x # Define log name to include simulation start date start_str=$(sed 's/ /_/g' cap_restart) @@ -31,18 +53,35 @@ NY=$( grep NY GCHP.rc | awk '{print $2}' ) coreCount=$(( ${NX} * ${NY} )) planeCount=$(( ${coreCount} / ${SLURM_NNODES} )) if [[ $(( ${coreCount} % ${SLURM_NNODES} )) > 0 ]]; then - ${planeCount}=$(( ${planeCount} + 1 )) + planeCount=$(( ${planeCount} + 1 )) fi time srun -n ${coreCount} -N ${SLURM_NNODES} -m plane=${planeCount} --mpi=pmix ./gchp >> ${log} -# Rename and move restart file and update restart symlink if new start time ok +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done + +# Rename restart file and update restart symlink if new start time ok new_start_str=$(sed 's/ /_/g' cap_restart) if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then echo "ERROR: GCHP failed to run to completion. Check the log file for more information." + rm -f Restarts/gcchem_internal_checkpoint exit 1 else N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) - mv gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 source setRestartLink.sh fi diff --git a/run/GCHP/runScriptSamples/operational_examples/icl_rcshpc/README b/run/GCHP/runScriptSamples/operational_examples/icl_rcshpc/README new file mode 100644 index 000000000..70db46009 --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/icl_rcshpc/README @@ -0,0 +1,11 @@ +For use with the PBS Pro system at Imperial College London's campus-wide HPC. + +To submit a job, type: + +qsub gchp.run + +Instructions are given to modify node/core/memory requirements in gchp.run. + +Contact: +Sebastian Eastham at Imperial College London +s.eastham@imperial.ac.uk diff --git a/run/GCHP/runScriptSamples/operational_examples/icl_rcshpc/gchp.env b/run/GCHP/runScriptSamples/operational_examples/icl_rcshpc/gchp.env new file mode 100644 index 000000000..d76d952e4 --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/icl_rcshpc/gchp.env @@ -0,0 +1,2 @@ +module load tools/prod +module load ESMF/8.4.2-foss-2022a diff --git a/run/GCHP/runScriptSamples/operational_examples/icl_rcshpc/gchp.run b/run/GCHP/runScriptSamples/operational_examples/icl_rcshpc/gchp.run new file mode 100644 index 000000000..503892db0 --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/icl_rcshpc/gchp.run @@ -0,0 +1,69 @@ +#!/bin/bash +#PBS -N GCHP +#PBS -l select=1:ncpus=6:mem=48gb +#PBS -l walltime=1:00:00 +#PBS -j oe + +# Run script is for use with PBS Pro +# To modify your resource request, change the "-l select..." line to: +# #PBS -l select=X:ncpus=Y:mem=Zgb +# This requests X nodes, EACH of which has Y CPUs and Z GB of memory +# Change the total run time request using the walltime line (H:MM:SS) + +cd $PBS_O_WORKDIR + +# Unlimit resources (to prevent OS killing GCHP due to resource usage) +ulimit -c 0 # coredumpsize +ulimit -l unlimited # memorylocked +ulimit -u 50000 # maxproc +ulimit -v unlimited # vmemoryuse +ulimit -s unlimited # stacksize + +# Exit if command fails, and log all commands +set -xe + +# Define log name to include simulation start date +start_str=$(sed 's/ /_/g' cap_restart) +log=gchp.${start_str:0:13}z.log +echo "Writing output to ${log}" + +# Update config files, set restart symlink, load run env, and do sanity checks +source setCommonRunSettings.sh > ${log} +source setRestartLink.sh >> ${log} +source gchp.env >> ${log} +source checkRunSettings.sh >> ${log} + +# Run the code +mpirun ./gchp >> $log + +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done + +# Rename restart file and update restart symlink if new start time ok +new_start_str=$(sed 's/ /_/g' cap_restart) +if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then + echo "ERROR: GCHP failed to run to completion. Check the log file for more information." + rm -f Restarts/gcchem_internal_checkpoint + exit 1 +else + N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + source setRestartLink.sh +fi + +trap times EXIT + + diff --git a/run/GCHP/runScriptSamples/operational_examples/mit_hex/gchp.run_HEX b/run/GCHP/runScriptSamples/operational_examples/mit_hex/gchp.run_HEX index 602fb2c74..71f4a625a 100755 --- a/run/GCHP/runScriptSamples/operational_examples/mit_hex/gchp.run_HEX +++ b/run/GCHP/runScriptSamples/operational_examples/mit_hex/gchp.run_HEX @@ -33,14 +33,31 @@ coreCount=$(( ${NX} * ${NY} )) mpirun ./gchp >> $log -# Rename and move restart file and update restart symlink if new start time ok +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done + +# Rename restart file and update restart symlink if new start time ok new_start_str=$(sed 's/ /_/g' cap_restart) if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then echo "ERROR: cap_restart either did not change or is empty." + rm -f Restarts/gcchem_internal_checkpoint exit 1 else N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) - mv gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 source setRestartLink.sh fi diff --git a/run/GCHP/runScriptSamples/operational_examples/mit_svante/gchp.run_SVANTE.sh b/run/GCHP/runScriptSamples/operational_examples/mit_svante/gchp.run_SVANTE.sh index 29f9c9bdc..17e6eb425 100755 --- a/run/GCHP/runScriptSamples/operational_examples/mit_svante/gchp.run_SVANTE.sh +++ b/run/GCHP/runScriptSamples/operational_examples/mit_svante/gchp.run_SVANTE.sh @@ -26,14 +26,31 @@ NY=$( grep NY GCHP.rc | awk '{print $2}' ) coreCount=$(( ${NX} * ${NY} )) time mpirun -n ${coreCount} ./gchp >> ${log} -# Rename and move restart file and update restart symlink if new start time ok +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done + +# Rename restart file and update restart symlink if new start time ok new_start_str=$(sed 's/ /_/g' cap_restart) if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then echo "ERROR: cap_restart either did not change or is empty." + rm -f Restarts/gcchem_internal_checkpoint exit 1 else N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) - mv gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 source setRestartLink.sh fi diff --git a/run/GCHP/runScriptSamples/operational_examples/nasa_discover/README b/run/GCHP/runScriptSamples/operational_examples/nasa_discover/README new file mode 100644 index 000000000..c9e3f1d27 --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/nasa_discover/README @@ -0,0 +1,3 @@ +Contact: +GEOS-Chem Support Team at Harvard University +geos-chem-support@g.harvard.edu \ No newline at end of file diff --git a/run/GCHP/runScriptSamples/operational_examples/nasa_discover/gchp.discover.build b/run/GCHP/runScriptSamples/operational_examples/nasa_discover/gchp.discover.build new file mode 100755 index 000000000..fc8ce8484 --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/nasa_discover/gchp.discover.build @@ -0,0 +1,18 @@ +#!/bin/bash + +# For discover +#SBATCH --time 00:45:00 +#SBATCH --nodes=1 --ntasks-per-node=12 +#SBATCH --job-name=gchp_build +#SBATCH --constraint=sky +#SBATCH --account=s1043 + +rundir=$(pwd -P) +blddir=../build + +source ${rundir}/gchp.env +cd ${blddir} +cmake ${rundir}/CodeDir -DRUNDIR=${rundir} +make -j > build.log +make install >> build.log +cd ${rundir} diff --git a/run/GCHP/runScriptSamples/operational_examples/nasa_discover/gchp.discover.env b/run/GCHP/runScriptSamples/operational_examples/nasa_discover/gchp.discover.env new file mode 100644 index 000000000..be3c4b038 --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/nasa_discover/gchp.discover.env @@ -0,0 +1,35 @@ +#!/bin/bash + +module purge +module use /discover/swdev/jcsda/spack-stack/modulefiles +module load miniconda/3.9.7 +module use /discover/swdev/jcsda/spack-stack/spack-stack-v1/envs/skylab-3.0.0-intel-2022.0.1/install/modulefiles/Core +module load stack-intel/2022.0.1 +module load stack-intel-oneapi-mpi/2021.5.0 +module load cmake/3.23.1 +module load git/2.30.2 +module load netcdf-fortran/4.5.4 + +umask 022 + +export CC=icc +export CXX=icpc +export FC=ifort + +# MPI +export MPI_ROOT=${MPI_HOME} + +# For ESMF +export ESMF_COMPILER=intel +export ESMF_COMM=intelmpi +export ESMF_DIR=/gpfsm/dnb06/projects/p113/ewl/GCHP/ESMF +export ESMF_INSTALL_PREFIX=${ESMF_DIR}/INSTALL_discover-spack-stack + +# For GCHP +export ESMF_ROOT=${ESMF_INSTALL_PREFIX} + +ulimit -l unlimited +ulimit -u 50000 +ulimit -v unlimited +ulimit -s unlimited + diff --git a/run/GCHP/runScriptSamples/operational_examples/nasa_discover/gchp.discover.run b/run/GCHP/runScriptSamples/operational_examples/nasa_discover/gchp.discover.run new file mode 100755 index 000000000..651a82132 --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/nasa_discover/gchp.discover.run @@ -0,0 +1,75 @@ +#!/bin/bash + +# For discover +#SBATCH --time 00:30:00 +#SBATCH --nodes=1 --ntasks-per-node=24 +#SBATCH --mem=60G +#SBATCH --job-name=gchp_c30_run +#SBATCH --constraint=sky +#SBATCH --account=s1043 + +# If a subsequent command fails, treat it as fatal (don't continue) +set -e + +# For remainder of script, echo commands to the job's log file +#set -x + +# Unlimit resources to prevent OS killing GCHP due to resource usage/ +# Alternatively you can put this in your environment file. +ulimit -c 0 # coredumpsize +ulimit -l unlimited # memorylocked +ulimit -u 50000 # maxproc +ulimit -v unlimited # vmemoryuse +ulimit -s unlimited # stacksize + +source gchp.discover.env + +# Print loaded modules +module list + +# Define log name to include simulation start date +start_str=$(sed 's/ /_/g' cap_restart) +log=gchp.${start_str:0:13}z.log + +# Update config files, set restart symlink, and do sanity checks +source setCommonRunSettings.sh > ${log} +source setRestartLink.sh >> ${log} +source checkRunSettings.sh >> ${log} + +# Run GCHP and evenly distribute tasks across nodes NX=$( grep NX GCHP.rc | awk '{print $2}' ) +NY=$( grep NY GCHP.rc | awk '{print $2}' ) +coreCount=$(( ${NX} * ${NY} )) +planeCount=$(( ${coreCount} / ${SLURM_NNODES} )) +if [[ $(( ${coreCount} % ${SLURM_NNODES} )) > 0 ]]; then + ${planeCount}=$(( ${planeCount} + 1 )) +fi + +mpirun -np ${coreCount} ./gchp >> ${log} + +# If new start time in cap_restart is okay, rename restart file +# and update restart symlink +new_start_str=$(sed 's/ /_/g' cap_restart) +if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then + echo "ERROR: GCHP failed to run to completion. Check the log file for more information." + exit 1 +else + N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + source setRestartLink.sh +fi + +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done diff --git a/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/README b/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/README index d55b86777..227740835 100644 --- a/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/README +++ b/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/README @@ -1,3 +1,9 @@ Contact: GEOS-Chem Support Team at Washington University in St. Louis -geos-chem-support@g.harvard.edu \ No newline at end of file +geos-chem-support@g.harvard.edu + +Steps to load environment: +module --force purge +module use -a /nobackup/gmao_SIteam/modulefiles +module use -a /path/to/your/module/files/directory # should contain gchp.pleiades.env +module load gchp.pleiades.env diff --git a/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/gchp.pleiades.env b/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/gchp.pleiades.env new file mode 100644 index 000000000..5b35716e6 --- /dev/null +++ b/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/gchp.pleiades.env @@ -0,0 +1,31 @@ +#%Module + +proc ModulesHelp { } { + puts stderr "GEOS-Chem High Performance (GCHP) build and runtime environment." +} + +module-whatis "GCHP build and runtime dependencies" + +module load git/2.30.2 +module load cmake/3.23.1-TOSS4 +module load other/manage_externals +module load other/mepo +module load other/gh +module load ImageMagick/7.0.8-53 + +module load comp-gcc/11.2.0-TOSS4 +module load comp-intel/2020.4.304 +module load mpi-hpe/mpt +module load hdf4/4.2.12 +module load hdf5/1.8.18_mpt +module load netcdf/4.4.1.1_mpt + +setenv COMPILER intel +setenv CC icc +setenv CXX icpc +setenv FC ifort +setenv F90 ifort +setenv F77 ifort +setenv CMAKE_PREFIX_PATH /nobackup/dzhang8/software/esmf-8.3.1/install + +set version 2023.04-intel \ No newline at end of file diff --git a/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/gchp.pleiades.run b/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/gchp.pleiades.run index 167afde78..1cd2c8d3f 100755 --- a/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/gchp.pleiades.run +++ b/run/GCHP/runScriptSamples/operational_examples/nasa_pleiades/gchp.pleiades.run @@ -21,7 +21,21 @@ cd $PBS_O_WORKDIR # Exit if command fails, and log all commands -set -xe +set -e + +# Debug option to print all commands in this script +#set -x + +# Export and unset certain environment variables +export MPI_LAUNCH_TIMEOUT=40 +export PATH=$PATH:/u/scicon/tools/bin +export FOR_IGNORE_EXCEPTIONS=false +export MPI_COLL_REPRODUCIBLE +unset MPI_MEMMAP_OFF +unset MPI_NUM_MEMORY_REGIONS +export MPI_XPMEM_ENABLED=yes +unset SUPPRESS_XPMEM_TRIM_THRESH +unset PMI_RANK # Define log name to include simulation start date start_str=$(sed 's/ /_/g' cap_restart) @@ -53,14 +67,31 @@ tail --pid=$! -f $log #mpiexec dplace -s1 -c 4-11 ./grinder < run_input > output rc=$? -# Rename and move restart file and update restart symlink if new start time ok +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done + +# Rename restart file and update restart symlink if new start time ok new_start_str=$(sed 's/ /_/g' cap_restart) if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then - echo "ERROR: GCHP failed to run to completion. Check the log file for more information." - exit 1 + echo "ERROR: GCHP failed to run to completion. Check the log file for more information." + rm -f Restarts/gcchem_internal_checkpoint + exit 1 else N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) - mv gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 source setRestartLink.sh fi diff --git a/run/GCHP/runScriptSamples/operational_examples/nci_gadi/gchp.pbs.run b/run/GCHP/runScriptSamples/operational_examples/nci_gadi/gchp.pbs.run index 2caca7e7a..1d2420595 100644 --- a/run/GCHP/runScriptSamples/operational_examples/nci_gadi/gchp.pbs.run +++ b/run/GCHP/runScriptSamples/operational_examples/nci_gadi/gchp.pbs.run @@ -17,7 +17,10 @@ ulimit -v unlimited # vmemoryuse ulimit -s unlimited # stacksize # Exit if command fails, and log all commands -set -xe +set -e + +# Debug option to print all commands executed in this script +#set -x # Define log name to include simulation start date start_str=$(sed 's/ /_/g' cap_restart) @@ -33,14 +36,31 @@ source checkRunSettings.sh >> ${log} # Run the code mpirun ./gchp >> $log -# Rename and move restart file and update restart symlink if new start time ok +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done + +# Rename restart file and update restart symlink if new start time ok new_start_str=$(sed 's/ /_/g' cap_restart) if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then echo "ERROR: GCHP failed to run to completion. Check the log file for more information." + rm -f Restarts/gcchem_internal_checkpoint exit 1 else N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) - mv gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 source setRestartLink.sh fi diff --git a/run/GCHP/runScriptSamples/operational_examples/wustl_compute1/gchp.batch_job.sh b/run/GCHP/runScriptSamples/operational_examples/wustl_compute1/gchp.batch_job.sh index f89317d0b..d9405e854 100644 --- a/run/GCHP/runScriptSamples/operational_examples/wustl_compute1/gchp.batch_job.sh +++ b/run/GCHP/runScriptSamples/operational_examples/wustl_compute1/gchp.batch_job.sh @@ -1,14 +1,17 @@ #!/bin/bash +#BSUB -G compute-rvmartin #BSUB -q rvmartin #BSUB -n 24 #BSUB -W 168:00 #BSUB -R "rusage[mem=300GB] span[ptile=36] select[mem < 2TB]" -#BSUB -a 'docker(registry.gsc.wustl.edu/sleong/esm:intel-2021.1.2)' +#BSUB -a 'docker(geoschem/gchp:14.3.0)' #BSUB -o lsf-%J.txt # # # source bashrc +/bin/bash + . /etc/bashrc # @@ -51,21 +54,42 @@ source checkRunSettings.sh # LAUNCH GCHP # # - mpiexec -n 24 ./gchp > ${log} + mpiexec -n 24 ./gchp > ${log} + + # For OpenMPI, enable oversubscription to allow more ranks to be assigned to a host than the number of slots that are available + # mpiexec --oversubscribe -n 24 ./gchp > ${log} # ################################################################# # # POST-RUN COMMANDS # -# If new start time in cap_restart is okay, rename and move restart file + +# Rename mid-run checkpoint files, if any. Discard file if time corresponds +# to run start time since duplicate with initial restart file. +chkpnts=$(ls Restarts) +for chkpnt in ${chkpnts} +do + if [[ "$chkpnt" == *"gcchem_internal_checkpoint."* ]]; then + chkpnt_time=${chkpnt:27:13} + if [[ "${chkpnt_time}" = "${start_str:0:13}" ]]; then + rm ./Restarts/${chkpnt} + else + new_chkpnt=./Restarts/GEOSChem.Restart.${chkpnt_time}z.c${N}.nc4 + mv ./Restarts/${chkpnt} ${new_chkpnt} + fi + fi +done + +# If new start time in cap_restart is okay, rename restart file # and update restart symlink new_start_str=$(sed 's/ /_/g' cap_restart) if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then echo "ERROR: cap_restart either did not change or is empty." + rm -f Restarts/gcchem_internal_checkpoint exit 1 else N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) - mv gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + mv Restarts/gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 source setRestartLink.sh fi diff --git a/run/GCHP/setCommonRunSettings.sh.template b/run/GCHP/setCommonRunSettings.sh.template index 9f2132e8d..9a610e116 100644 --- a/run/GCHP/setCommonRunSettings.sh.template +++ b/run/GCHP/setCommonRunSettings.sh.template @@ -10,6 +10,7 @@ # COMPUTE RESOURCES #------------------------------------------------ # Total cores must be divisible by 6 + TOTAL_CORES=${RUNDIR_NUM_CORES} NUM_NODES=${RUNDIR_NUM_NODES} NUM_CORES_PER_NODE=${RUNDIR_CORES_PER_NODE} @@ -17,7 +18,12 @@ NUM_CORES_PER_NODE=${RUNDIR_CORES_PER_NODE} #------------------------------------------------ # GRID RESOLUTION #------------------------------------------------ -# Integer representing number of grid cells per cubed-sphere face side +# Even integer representing number of grid cells per cubed-sphere face side +# +# NOTE: If using mass flux inputs then grid resolution must be evenly divisible +# by input mass flux resolution, or vice versa. Acceptable resolutions for GEOS-IT +# when using mass fluxes are therefore in set [10,30,90,180,360,540,720,etc] + CS_RES=${RUNDIR_CS_RES} #------------------------------------------------ @@ -26,7 +32,14 @@ CS_RES=${RUNDIR_CS_RES} # Turn stretched grid ON/OFF. Follow these rules if ON: # (1) Minimum STRETCH_FACTOR value is 1.0001 # (2) TARGET_LAT and TARGET_LON are floats containing decimal -# (3) TARGET_LON in range [0,360) +# (3) TARGET_LON in range [0,360) or [-180,180) +# (4) STRETCH_FACTOR, TARGET_LAT, and TARGET_LON exactly match +# the global attribute values of these parameters in the +# initial restart file +# +# NOTE: Running with stretched grid requires using winds in advection. +# Create a new run directory to use winds if this one uses mass fluxes. + STRETCH_GRID=OFF STRETCH_FACTOR=2.0 TARGET_LAT=-45.0 @@ -36,17 +49,19 @@ TARGET_LON=170.0 # SIMULATION DURATION #------------------------------------------------ # Format is "YYYYMMDD HHmmSS". Example: "0000100 000000" for 1 month + Run_Duration="${RUNDIR_SIM_DUR_YYYYMMDD} ${RUNDIR_SIM_DUR_HHmmSS}" #------------------------------------------------------------ # GEOS-CHEM COMPONENTS #------------------------------------------------------------ # Sets values in geoschem_config.yml + Do_Chemistry=true Do_Advection=true Do_Cloud_Conv=true Do_PBL_Mixing=true -Do_Non_Local_Mixing=true +Do_Non_Local_Mixing=${RUNDIR_USE_NLPBL} Do_DryDep=true Do_WetDep=true @@ -54,6 +69,8 @@ Do_WetDep=true # DIAGNOSTICS #--------------------------------------------------------------------- # Auto-update settings in HISTORY.rc for specific collections (enable with ON) +# NOTE: you must add new collections to the list below to auto-update them. + AutoUpdate_Diagnostics=OFF # Instructions to auto-update diagnostics @@ -64,7 +81,7 @@ AutoUpdate_Diagnostics=OFF # 3b. Set Diag_Duration for file write frequency, format "HHmmSS" # *Note that number of hours may exceed 2 digits, e.g. 744 for 744 hrs # 4. Edit Diag_Collections list to specify which collections to update -# + Diag_Monthly="${RUNDIR_HIST_MONTHLY_DIAG}" Diag_Frequency="${RUNDIR_HIST_TIME_AVG_FREQ}" Diag_Duration="${RUNDIR_HIST_TIME_AVG_DUR}" @@ -78,6 +95,9 @@ Diag_Collections=(SpeciesConc \ DryDep \ DefaultCollection \ Emissions \ + FV3Dynamics \ + GCHPctmEnvLevCenter \ + GCHPctmEnvLevEdge \ JValues \ KppDiags \ KppARDiags \ @@ -89,7 +109,9 @@ Diag_Collections=(SpeciesConc \ StateChm \ StateMet \ StratBM \ + Tomas \ Transport \ + UVFlux \ WetLossConv \ WetLossLS \ ) @@ -97,35 +119,82 @@ Diag_Collections=(SpeciesConc \ #------------------------------------------------------------ # MID-RUN CHECKPOINT FILES #------------------------------------------------------------ -Periodic_Checkpoint=OFF -Checkpoint_Freq=monthly - # Instructions for configuring restart output before end of run: -# 1. Set Periodic_Checkpoint=ON +# 1. Set Midrun_Checkpoint=ON # 2. Set Checkpoint_Freq to either monthly or a string of format HHmmss # where HHmmss is frequency hours, minutes, and seconds. # More than 2 digits for hours is permitted, e.g. "1680000" for 7 days. # NOTE: Frequency of output will be measured from start date set in cap_restart. +Midrun_Checkpoint=OFF +Checkpoint_Freq=monthly + +#------------------------------------------------ +# REQUIRE ALL SPECIES IN INITIAL RESTART FILE +#------------------------------------------------ +# Set to 1 to require all species in restart; set to 0 to enable missing species. + +Require_Species_in_Restart=${RUNDIR_INITIAL_RESTART_SPECIES_REQUIRED} + ################################################################### # INFREQUENTLY CHANGED SETTINGS ################################################################### #------------------------------------------------ -# MODEL PHASE +# DOMAIN DECOMPOSITION #------------------------------------------------ -# FORWARD for forward model, ADJOINT for adjoint model -Model_Phase=FORWARD +# Enable auto-update of NX and NY based on core count by setting to ON. This +# will make NX by NY/6 as square as possible to reduce communication overhead +# in GCHP. Only disable this feature if using mass fluxes. + +AutoUpdate_NXNY=ON + +# Specify NX and NY below if not auto-updating. Otherwise leave blank. See rules below. + +NX= +NY= + +# Cores are distributed across each of the six cubed sphere faces using +# configurable parameters NX and NY. Each face is divided into NX by NY/6 +# regions and each of those regions is processed by a single core +# independent of which node it belongs to. +# +# Rules and tips for setting NX and NY manually: +# 1. NY must be an integer and a multiple of 6 +# 2. NX*NY must equal total number of cores (NUM_NODES*NUM_CORES_PER_NODE) +# 3. NX and NY should be as close to equal as possible (maximize squareness) +# Good examples: (NX=4,NY=24) -> 96 cores at 4x4 +# (NX=6,NY=24) -> 144 cores at 6x4 +# Bad examples: (NX=8,NY=12) -> 96 cores at 8x2 +# (NX=12,NY=12) -> 144 cores at 12x2 +# 4. Domain decomposition requires that CS_RES/NX >= 4 and CS_RES*6/NY >= 4, +# which puts an upper limit on total cores per grid resolution. +# c24: 216 cores (NX=6, NY=36 ) +# c48: 864 cores (NX=12, NY=72 ) +# c90: 3174 cores (NX=22, NY=132) +# c180: 12150 cores (NX=45, NY=270) +# c360: 48600 cores (NX=90, NY=540) +# Using fewer cores may still trigger a domain decomposition error, e.g.: +# c48: 768 cores (NX=16, NY=48) --> 48/16=3 will trigger FV3 error +# 5. If using mass flux inputs then both native mass flux resolution and model +# run resolution must be evenly divisible by both NX and NY/6. +# Example of C180 fluxes (e.g. GEOS-IT) run at C90: +# 96 cores, NX=4, NY/6=4 -> fail (90/4=22.5) +# 150 cores, NX=5, NY/6=5 -> success (180/5=36, 90/5=18) +# 216 cores, NX=6, NY/6=6 -> success (180/6=30, 90/6=15) +# 384 cores, NX=8, NY/6=8 -> fail (180/8=22.5) #------------------------------------------------ # TIMESTEPS #------------------------------------------------ -# Timesteps in GCHP are resolution-dependent +# Non-RRTMG timesteps in GCHP are resolution-dependent. +# Stretched grid timesteps are set based on the high-resolution region. + CS_RES_EFFECTIVE=${CS_RES} if [[ ${STRETCH_GRID} == 'ON' ]]; then CS_RES_EFFECTIVE=$( echo $CS_RES $STRETCH_FACTOR | awk '{printf "%.0f",$1*$2}' ) fi -if [[ $CS_RES_EFFECTIVE -lt 180 ]]; then +if [[ $CS_RES_EFFECTIVE -le 180 ]]; then ChemEmiss_Timestep_sec=1200 TransConv_Timestep_sec=600 TransConv_Timestep_HHMMSS=001000 @@ -142,6 +211,7 @@ RRTMG_Timestep_sec=10800 # Mass tuning factor is used in the HEMCO DustDead extenstion for GEOS-Chem # benchmarking and is resolution-dependent. We recommend using offline dust # instead of the online extension for GCHP science runs. + dustEntry=$(grep "105.*DustDead" HEMCO_Config.rc || echo "missing") if [[ ${dustEntry} != "missing" ]]; then dustSetting=(${dustEntry// / }) @@ -151,6 +221,8 @@ if [[ ${dustEntry} != "missing" ]]; then fi if [[ $CS_RES -eq 24 ]]; then Dust_SF=6.0e-4 + elif [[ $CS_RES -eq 30 ]]; then + Dust_SF=5.76e-4 # approximated as linear interpolation between 24 and 48. use for testing only! elif [[ $CS_RES -eq 48 ]]; then Dust_SF=5.0416e-4 elif [[ $CS_RES -eq 90 ]]; then @@ -167,40 +239,45 @@ if [[ ${dustEntry} != "missing" ]]; then fi fi fi +#------------------------------------------------------------------ +# ONLINE DUST MASS TUNING FACTOR (for TOMAS) +#------------------------------------------------------------------ +# Mass tuning factor is used in the HEMCO DustDead extenstion for GEOS-Chem +# benchmarking and is resolution-dependent. We recommend using offline dust +# instead of the online extension for GCHP science runs. + +TomasDustEntry=$(grep "131.*TOMAS_DustDead" HEMCO_Config.rc || echo "missing") +if [[ ${TomasDustEntry} != "missing" ]]; then + TomasDustSetting=(${TomasDustEntry// / }) + if [[ ${TomasDustSetting[3]} = "on" ]]; then + if [[ ${STRETCH_GRID} == 'ON' ]]; then + echo "WARNING: Online dust (TOMAS_DustDead) is not recommended for stretched-grid simulation. Consider using OFFLINE_DUST." + fi + if [[ $CS_RES -eq 24 ]]; then + TomasDust_SF=6.0e-4 + elif [[ $CS_RES -eq 48 ]]; then + TomasDust_SF=5.0416e-4 + elif [[ $CS_RES -eq 90 ]]; then + TomasDust_SF=4.0e-4 + elif [[ $CS_RES -eq 180 ]]; then + TomasDust_SF=3.23e-4 + elif [[ $CS_RES -eq 360 ]]; then + TomasDust_SF=2.35e-4 + elif [[ $CS_RES -eq 720 ]]; then + TomasDust_SF=2.3e-4 + else + echo "Dust scale factor not defined for this resolution. Please add the tuning factor you wish to use for the target resolution above." + exit 1 + fi + fi +fi #------------------------------------------------ -# DOMAIN DECOMPOSITION +# MODEL PHASE #------------------------------------------------ -# Enable auto-update of NX and NY based on core count by setting to ON. This -# will make NX by NY/6 as square as possible to reduce communication overhead -# in GCHP. -AutoUpdate_NXNY=ON +# FORWARD for forward model, ADJOINT for adjoint model -# Specify NX and NY if not auto-updating. See rules below. -NX= -NY= -# Cores are distributed across each of the six cubed sphere faces using -# configurable parameters NX and NY. Each face is divided into NX by NY/6 -# regions and each of those regions is processed by a single core -# independent of which node it belongs to. -# -# Rules and tips for setting NX and NY manually: -# 1. NY must be an integer and a multiple of 6 -# 2. NX*NY must equal total number of cores (NUM_NODES*NUM_CORES_PER_NODE) -# -# Good examples: (NX=4,NY=24) -> 96 cores at 4x4 -# (NX=6,NY=24) -> 144 cores at 6x4 -# Bad examples: (NX=8,NY=12) -> 96 cores at 8x2 -# (NX=12,NY=12) -> 144 cores at 12x2 -# 4. Domain decomposition requires that CS_RES/NX >= 4 and CS_RES*6/NY >= 4, -# which puts an upper limit on total cores per grid resolution. -# c24: 216 cores (NX=6, NY=36 ) -# c48: 864 cores (NX=12, NY=72 ) -# c90: 3174 cores (NX=22, NY=132) -# c180: 12150 cores (NX=45, NY=270) -# c360: 48600 cores (NX=90, NY=540) -# Using fewer cores may still trigger a domain decomposition error, e.g.: -# c48: 768 cores (NX=16, NY=48) --> 48/16=3 will trigger FV3 error +Model_Phase=FORWARD ############################### @@ -221,8 +298,10 @@ fi if [[ ${AutoUpdate_NXNY} == 'ON' ]]; then Z=$(( ${NUM_NODES}*${NUM_CORES_PER_NODE}/6 )) # Use "bash calculator" if available; Python if not; fail otherwise - which bc &> /dev/null; bc_ok=$? - which python &> /dev/null; py_ok=$? + bc_ok=0 + py_ok=0 + which bc &> /dev/null || bc_ok=$? + which python &> /dev/null || py_ok=$? if [[ $bc_ok -eq 0 ]]; then # Use bash calculator SQRT=$(echo "sqrt (${Z})" | bc -l) @@ -256,6 +335,13 @@ if (( ${NY}%6 != 0 )); then exit 1 fi +#### Check grid resolution +if (( (${CS_RES}) % 2 != 0 )); then + echo "ERROR: Cubed-sphere face does not have even number of grid cells per side. Update grid resolution in setCommonRunSettings.sh to be an even number." + exit 1 +fi + + #### Check that domain decomposition will not trigger a FV3 domain error if [[ $(( ${CS_RES}/${NX} )) -lt 4 || $(( ${CS_RES}*6/${NY} )) -lt 4 ]]; then echo "ERROR: NX and NY are set such that face side length divided by NX or NY/6 is less than 4. The cubed sphere compute domain has a minimum requirement of 4 points in NX and NY/6. This problem occurs when grid resolution is too low for core count requested. Edit setCommonRunSettings.sh to loower total number of cores or increase your grid resolution." @@ -298,6 +384,44 @@ if [[ ${STRETCH_GRID} == 'ON' ]]; then fi fi +#### Mass flux checks for grid resolution and domain decomposition +MassFlux_Entry=$(grep "MFXC" ExtData.rc || echo "missing") +if [[ ${MassFlux_Entry} != "missing" ]]; then + + #### Get met grid res (assume GEOS-IT and GEOS-FP are the only options) + C180_Entry=$(grep "MFXC.*C180x180x6" ExtData.rc || echo "missing") + if [[ ${C180_Entry} != "missing" ]]; then + input_res=180 + else + input_res=720 + fi + if (( ${CS_RES} < ${input_res} )); then + lowest_res=${CS_RES} + highest_res=${input_res} + else + lowest_res=${input_res} + highest_res=${CS_RES} + fi + + #### Check that not using stretched grid + if [[ ${STRETCH_GRID} == 'ON' ]]; then + echo "ERROR: Do not use stretched grid when using mass flux inputs. Create a winds run directory for stretched grid simulations." + exit 1 + fi + + #### Check that input and grid resolutions are evenly divisible + if (( (${highest_res}) % (${lowest_res}) != 0 )); then + echo "ERROR: Mass flux input resolution and run grid resolution must be evenly divisible. Input resolution is ${input_res} but grid resolution is ${CS_RES}." + exit 1 + fi + + #### Check that grid/run resolutions are evenly divisible by NX and NY/6 + if (( ${lowest_res} % ${NX} != 0 || ${lowest_res} % (${NY}/6) != 0 )); then + echo "ERROR: Input and run resolutions must divide evenly by NX and NY/6 when using mass flux inputs. Manually set NX and NY in setCommonRunSettings.sh for your simulation. Current settings are input resolution ${input_res}, grid resolution ${CS_RES}, NX ${NX} and NY ${NY}." + exit 1 + fi +fi + ########################################## #### DEFINE FUNCTIONS TO UPDATE FILES ########################################## @@ -363,6 +487,9 @@ function replace_val_yaml() { #### Define function to uncomment line in config file uncomment_line() { + if [[ ${verbose} = "1" ]]; then + echo "--> Uncommenting $1 in $2" + fi if [[ $(grep -c "^[\t ]*$1" $2) == "1" ]]; then return fi @@ -380,6 +507,9 @@ uncomment_line() { #### Define function to comment line in config file comment_line() { + if [[ ${verbose} = "1" ]]; then + echo "--> Commenting out $1 in $2" + fi if [[ $(grep -c "#.*$1" $2) == "1" ]]; then return fi @@ -396,10 +526,11 @@ comment_line() { update_dyn_freq() { # String to search for - str="^[\t ]*$1.*MetDir" + str="^[\t ]*$1*[\t ]" # Check number of matches where first string is start of line, allowing for - # whitespace. # matches should be one; otherwise exit with an error. + # whitespace before and require whitespace after. # matches should be one; + # otherwise exit with an error. numlines=$(grep -c "$str" $2) if [[ ${numlines} == "0" ]]; then echo "ERROR: met-field $1 missing in $2" @@ -445,15 +576,6 @@ replace_val NX ${NX} GCHP.rc replace_val NY ${NY} GCHP.rc replace_val CoresPerNode ${NUM_CORES_PER_NODE} HISTORY.rc -#### If # cores exceeds 1000 then write restart via o-server -if [ ${TOTAL_CORES} -ge 1000 ]; then - print_msg "WARNING: write restarts by o-server is enabled since >=1000 cores" - replace_val WRITE_RESTART_BY_OSERVER YES GCHP.rc -else - print_msg "WARNING: write restarts by o-server is disabled since <1000 cores" - replace_val WRITE_RESTART_BY_OSERVER NO GCHP.rc -fi - ### Make sure adjoint diagnostics (if present) are commented out if using ### forward model, and uncommented if using adjoint. if [[ ${Model_Phase} == "FORWARD" ]]; then @@ -558,13 +680,22 @@ print_msg "---------------" if [[ ${dustSetting[3]} = "on" ]]; then replace_val "--> Mass tuning factor" ${Dust_SF} HEMCO_Config.rc fi +if [[ ${TomasDustSetting[3]} = "on" ]]; then + replace_val "--> Mass tuning factor" ${TomasDust_SF} HEMCO_Config.rc +fi + +### Set initial restart file options +print_msg "" +print_msg "Initial restart settings:" +print_msg "-------------------------" +replace_val INITIAL_RESTART_SPECIES_REQUIRED ${Require_Species_in_Restart} GCHP.rc #### Set frequency of writing restart files # Set to a very large number if turned off print_msg " " -print_msg "Periodic checkpoints:" +print_msg "Mid-run checkpoints:" print_msg "---------------------" -if [[ ${Periodic_Checkpoint} == "ON" ]]; then +if [[ ${Midrun_Checkpoint} == "ON" ]]; then uncomment_line RECORD_FREQUENCY GCHP.rc uncomment_line RECORD_REF_DATE GCHP.rc uncomment_line RECORD_REF_TIME GCHP.rc @@ -574,13 +705,13 @@ if [[ ${Periodic_Checkpoint} == "ON" ]]; then Checkpoint_Ref_Time="${start_str:9:6}" replace_val RECORD_REF_DATE "${Checkpoint_Ref_Date}" GCHP.rc replace_val RECORD_REF_TIME "${Checkpoint_Ref_Time}" GCHP.rc -elif [[ ${Periodic_Checkpoint} == "OFF" ]]; then - print_msg "WARNING: Periodic checkpoints are turned off" +elif [[ ${Midrun_Checkpoint} == "OFF" ]]; then + print_msg "WARNING: Midrun checkpoints are turned off" comment_line RECORD_FREQUENCY GCHP.rc comment_line RECORD_REF_DATE GCHP.rc comment_line RECORD_REF_TIME GCHP.rc else - print_msg "ERROR: unknown setting for Periodic_Checkpoint. Must be ON or OFF." + print_msg "ERROR: unknown setting for Midrun_Checkpoint. Must be ON or OFF." exit 1 fi @@ -600,4 +731,49 @@ else print_msg "Auto-update of diagnostic settings in HISTORY.rc is turned off" fi +#### Auto-update ExtData.rc for lightning climatology based on HEMCO_Config.rc +lightningClimEntry=$(grep "LightningClimatology" HEMCO_Config.rc || echo "missing") +if [[ ${lightningClimEntry} != "missing" ]]; then + + # Current file settings + lightningClimSetting=(${lightningClimEntry// / }) + FlashYearlyEntry=$(grep "FLASH_DENS.*y4/FLASH" ExtData.rc) + ConvYearlyEntry=$(grep "CONV_DEPTH.*y4/FLASH" ExtData.rc) + FlashClimEntry=$(grep "FLASH_DENS.*CLIM" ExtData.rc) + ConvClimEntry=$(grep "CONV_DEPTH.*CLIM" ExtData.rc) + + # Strip leading comment character, if any + if [[ ${FlashYearlyEntry:0:1} == "#" ]];then FlashYearlyEntry=${FlashYearlyEntry:1}; fi + if [[ ${ConvYearlyEntry:0:1} == "#" ]];then ConvYearlyEntry=${ConvYearlyEntry:1}; fi + if [[ ${FlashClimEntry:0:1} == "#" ]];then FlashClimEntry=${FlashClimEntry:1}; fi + if [[ ${ConvClimEntry:0:1} == "#" ]];then ConvClimEntry=${ConvClimEntry:1}; fi + + # Print to log if --verbose passed + if [[ ${verbose} = "1" ]]; then + print_msg " " + print_msg "Lightning climatology:" + print_msg "------------------------" + print_msg "Updating ExtData.rc for HEMCO_Config.rc lightning climatology set to ${lightningClimSetting[3]}" + fi + + # Update ExtData.rc + if [[ ${lightningClimSetting[3]} = "true" ]]; then + comment_line "${FlashYearlyEntry}" ExtData.rc + comment_line "${ConvYearlyEntry}" ExtData.rc + uncomment_line "${FlashClimEntry}" ExtData.rc + uncomment_line "${ConvClimEntry}" ExtData.rc + elif [[ ${lightningClimSetting[3]} = "false" ]]; then + comment_line "${FlashClimEntry}" ExtData.rc + comment_line "${ConvClimEntry}" ExtData.rc + uncomment_line "${FlashYearlyEntry}" ExtData.rc + uncomment_line "${ConvYearlyEntry}" ExtData.rc + else + "ERROR: LightningClimatology must be set to true or false in HEMCO_Config.rc." + exit 1 + fi +fi + +#### Done +print_msg " " +print_msg "setCommonRunSettings.sh done" print_msg " " diff --git a/run/GEOS/GEOSCHEMchem_AnaSettings_NO2.rc b/run/GEOS/GEOSCHEMchem_AnaSettings_NO2.rc deleted file mode 100644 index ffbd0124b..000000000 --- a/run/GEOS/GEOSCHEMchem_AnaSettings_NO2.rc +++ /dev/null @@ -1,29 +0,0 @@ -SpeciesName: NO2 -Active: 1 -AnalysisFreq: 6 -AnalysisHour: 6 -AnalysisMinute: 0 -ForwardLooking: 1 -ReadAnaTime: 1 -FileTemplate: ana_no2.after_gsi.%y4%m2%d2_%h200z.nc4 -FileVarName: ana_no2 -FileVarUnit: v/v -UseObsHour: 1 -ObsHourName: ana_hour -ApplyIncrement: 0 -InStrat: 0 -InTrop: 1 -AnaL1: 1 -AnaL2: 1 -AnaL3: 72 -AnaL4: 72 -AnaFraction: 1.0 -MaxChangeStrat: 0.1 -MaxChangeTrop: -1.0 -HasSpec2: 1 -Spec2Name: NO -Spec2Strat: 0 -Spec2Trop: 1 -Spec2MinRatio: 0.05 -Spec2MaxRatio: 10.0 -ErrorMode: 1 diff --git a/run/GEOS/GEOSCHEMchem_AnaSettings_O3.rc b/run/GEOS/GEOSCHEMchem_AnaSettings_O3.rc deleted file mode 100644 index 7f62a58f4..000000000 --- a/run/GEOS/GEOSCHEMchem_AnaSettings_O3.rc +++ /dev/null @@ -1,25 +0,0 @@ -SpeciesName: O3 -Active: 1 -AnalysisFreq: 3 -AnalysisHour: 1 -AnalysisMinute: 30 -ForwardLooking: 1 -ReadAnaTime: 0 -FileTemplate: /discover/nobackup/projects/gmao/yotc/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg3_3d_asm_Nv.%y4%m2%d2_%h2%n2.V01.nc4 -FileVarName: O3 -FileVarUnit: kg/kg -UseObsHour: 0 -ObsHourName: ana_hour -ApplyIncrement: 0 -InStrat: 1 -InTrop: 0 -AnaL1: 1 -AnaL2: 1 -AnaL3: 72 -AnaL4: 72 -StratSponge: 2 -AnaFraction: 0.2 -MaxChangeStrat: -1.0 -MaxChangeTrop: -1.0 -HasSpec2: 0 -ErrorMode: 1 diff --git a/run/GEOS/GEOSCHEMchem_ExtData.rc b/run/GEOS/GEOSCHEMchem_ExtData.rc index 293cb0842..e4a3c30e5 100644 --- a/run/GEOS/GEOSCHEMchem_ExtData.rc +++ b/run/GEOS/GEOSCHEMchem_ExtData.rc @@ -535,30 +535,30 @@ DEAD_MF_SND '1' N N - none none MF_SND / DEAD_GOC_SRC '1' N N - none none GOC_SRC /discover/nobackup/cakelle2/data/GOCART_src_fn.esmf.2x25.nc DEAD_VAI '1' Y N 1985-%m2-01T00:00:00 none none VAI /discover/nobackup/cakelle2/data/dst_tvbds.esmf.2x25.nc MULTISEAICE '1' N Y F%y4-%m2-%d2T00:00:00 none none FRSEAICE /discover/nobackup/ewlundgr/data/ExtData/MULTI_ICE/v2021-07/multiyearice.merra2.05x0625.%y4.nc -MEGAN_AEF_ISOP 'kgC/m2/s' N Y - none none AEF_ISOPRENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc -MEGAN_AEF_MBOX 'kgC/m2/s' N Y - none none AEF_MBO /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc -MEGAN_AEF_BPIN 'kgC/m2/s' N Y - none none AEF_BETA_PINENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc -MEGAN_AEF_CARE 'kgC/m2/s' N Y - none none AEF_CARENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc -MEGAN_AEF_LIMO 'kgC/m2/s' N Y - none none AEF_LIMONENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc -MEGAN_AEF_OCIM 'kgC/m2/s' N Y - none none AEF_OCIMENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc -MEGAN_AEF_SABI 'kgC/m2/s' N Y - none none AEF_SABINENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc -CLM4_PFT_BARE '1' N N - none none PFT_BARE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_NDLF_EVGN_TMPT_TREE '1' N N - none none PFT_NDLF_EVGN_TMPT_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_NDLF_EVGN_BORL_TREE '1' N N - none none PFT_NDLF_EVGN_BORL_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_NDLF_DECD_BORL_TREE '1' N N - none none PFT_NDLF_DECD_BORL_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_BDLF_EVGN_TROP_TREE '1' N N - none none PFT_BDLF_EVGN_TROP_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_BDLF_EVGN_TMPT_TREE '1' N N - none none PFT_BDLF_EVGN_TMPT_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_BDLF_DECD_TROP_TREE '1' N N - none none PFT_BDLF_DECD_TROP_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_BDLF_DECD_TMPT_TREE '1' N N - none none PFT_BDLF_DECD_TMPT_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_BDLF_DECD_BORL_TREE '1' N N - none none PFT_BDLF_DECD_BORL_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_BDLF_EVGN_SHRB '1' N N - none none PFT_BDLF_EVGN_SHRB /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_BDLF_DECD_TMPT_SHRB '1' N N - none none PFT_BDLF_DECD_TMPT_SHRB /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_BDLF_DECD_BORL_SHRB '1' N N - none none PFT_BDLF_DECD_BORL_SHRB /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_C3_ARCT_GRSS '1' N N - none none PFT_C3_ARCT_GRSS /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_C3_NARC_GRSS '1' N N - none none PFT_C3_NARC_GRSS /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_C4_GRSS '1' N N - none none PFT_C4_GRSS /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -CLM4_PFT_CROP '1' N N - none none PFT_CROP /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc -MEGAN_ORVC 'kgC/m2/s' Y Y 1999-%m2-01T00:00:00 none none OCPI /discover/nobackup/cakelle2/data/NVOC.geos.1x1.esmf.nc +MEGAN_AEF_ISOP_GCC 'kgC/m2/s' N Y - none none AEF_ISOPRENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc +MEGAN_AEF_MBOX_GCC 'kgC/m2/s' N Y - none none AEF_MBO /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc +MEGAN_AEF_BPIN_GCC 'kgC/m2/s' N Y - none none AEF_BETA_PINENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc +MEGAN_AEF_CARE_GCC 'kgC/m2/s' N Y - none none AEF_CARENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc +MEGAN_AEF_LIMO_GCC 'kgC/m2/s' N Y - none none AEF_LIMONENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc +MEGAN_AEF_OCIM_GCC 'kgC/m2/s' N Y - none none AEF_OCIMENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc +MEGAN_AEF_SABI_GCC 'kgC/m2/s' N Y - none none AEF_SABINENE /discover/nobackup/cakelle2/data/MEGAN_20180519/MEGAN2.1_EF.geos.025x03125.esmf.nc +CLM4_PFT_BARE_GCC '1' N N - none none PFT_BARE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_NDLF_EVGN_TMPT_TREE_GCC '1' N N - none none PFT_NDLF_EVGN_TMPT_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_NDLF_EVGN_BORL_TREE_GCC '1' N N - none none PFT_NDLF_EVGN_BORL_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_NDLF_DECD_BORL_TREE_GCC '1' N N - none none PFT_NDLF_DECD_BORL_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_BDLF_EVGN_TROP_TREE_GCC '1' N N - none none PFT_BDLF_EVGN_TROP_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_BDLF_EVGN_TMPT_TREE_GCC '1' N N - none none PFT_BDLF_EVGN_TMPT_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_BDLF_DECD_TROP_TREE_GCC '1' N N - none none PFT_BDLF_DECD_TROP_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_BDLF_DECD_TMPT_TREE_GCC '1' N N - none none PFT_BDLF_DECD_TMPT_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_BDLF_DECD_BORL_TREE_GCC '1' N N - none none PFT_BDLF_DECD_BORL_TREE /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_BDLF_EVGN_SHRB_GCC '1' N N - none none PFT_BDLF_EVGN_SHRB /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_BDLF_DECD_TMPT_SHRB_GCC '1' N N - none none PFT_BDLF_DECD_TMPT_SHRB /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_BDLF_DECD_BORL_SHRB_GCC '1' N N - none none PFT_BDLF_DECD_BORL_SHRB /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_C3_ARCT_GRSS_GCC '1' N N - none none PFT_C3_ARCT_GRSS /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_C3_NARC_GRSS_GCC '1' N N - none none PFT_C3_NARC_GRSS /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_C4_GRSS_GCC '1' N N - none none PFT_C4_GRSS /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +CLM4_PFT_CROP_GCC '1' N N - none none PFT_CROP /discover/nobackup/cakelle2/data/MEGAN_20180519/CLM4_PFT.geos.025x03125.esmf.nc +MEGAN_ORVC_GCC 'kgC/m2/s' Y Y 1999-%m2-01T00:00:00 none none OCPI /discover/nobackup/cakelle2/data/NVOC.geos.1x1.esmf.nc SOILNOX_FERT 'kg/m3' N Y 2000-%m2-%d2T00:00:00 none none FERT /discover/nobackup/cakelle2/data/soilNOx.fert_res.generic.05x05.nc SOILNOX_LANDK1 '1' N N - none none LANDFRAC_K01 /discover/nobackup/cakelle2/data/soilNOx.landtype.generic.025x025.1L.nc SOILNOX_LANDK2 '1' N N - none none LANDFRAC_K02 /discover/nobackup/cakelle2/data/soilNOx.landtype.generic.025x025.1L.nc @@ -672,6 +672,10 @@ ANA_O3 'kg/kg' N N 0 none none O3 /discover/nobackup/projects/gmao/yotc/pub/fp/ QFED2_TEMPERATE '1' N N - none none qfed2_temperate /discover/nobackup/cakelle2/data/qfed2_forest_mask.nc4 QFED2_BOREAL '1' N N - none none qfed2_boreal /discover/nobackup/cakelle2/data/qfed2_forest_mask.nc4 +# GEOS_CH4 +GEOS_CH4 'mol/mol' N N - none none CH4_total_dry /dev/null +#GEOS_CH4 'mol/mol' N N - none none CH4_total_dry /discover/nobackup/projects/gmao/geos_carb/sbasu1/runs/GCM/Jason_10.18.0_carbon_c90/holding/methane_tags/Jason_10.18.0_carbon_c90.methane_tags.%y4%m2%d2_%h200z.nc 2001-01-01T00:00:00P0000-00-00T03:00:00 + # Masks DEAD_SFC_TYP NA N V - none none SFC_TYP /discover/nobackup/cakelle2/data/dst_tibds.esmf.2x25.nc TIMEZONES NA N V - none none UTC_OFFSET /discover/nobackup/cakelle2/data/timezones_esmf.2x25.nc diff --git a/run/GEOS/GEOSCHEMchem_ExtData.yaml b/run/GEOS/GEOSCHEMchem_ExtData.yaml new file mode 100644 index 000000000..0cd64736e --- /dev/null +++ b/run/GEOS/GEOSCHEMchem_ExtData.yaml @@ -0,0 +1,2703 @@ +Samplings: + gcc_persist: {extrapolation: persist_closest} + gcc_daily: {update_reference_time: "0", update_frequency: PT24H, update_offset: PT12H} + gcc_daily_clim: {update_reference_time: "0", update_frequency: PT24H, update_offset: PT12H, time_interpolation: False, extrapolation: clim} + gcc_8day_interp_clim: {update_reference_time: "0", update_frequency: P8D, update_offset: P1D, time_interpolation: False, extrapolation: clim} + gcc_3hr: {time_interpolation: True, extrapolation: clim} + gcc_monthly_clim: {update_reference_time: "0", update_frequency: PT24H, update_offset: PT12H, time_interpolation: False, extrapolation: clim} + +Collections: + GCC_ACET_seawater: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/OCEAN/v0.0.0/sfc/ACET_seawater.generic.1x1.esmf.nc + GCC_ALD2_seawater: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/OCEAN/v0.0.0/sfc/ALD2_seawater_x144_y91_t12.2006.nc + GCC_DMS_lana: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/OCEAN/v0.0.0/sfc/DMS_lana_x360_y180_t12.1985.nc + GEOSCHEMchem_AEIC: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/AEIC/v0.0.0/L72/AEIC_x360_y180_z72_t12.2005.nc + GEOSCHEMchem_AF_LANDMASK: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/Masks/v0.0.0/sfc/AF_LANDMASK.025x025.nc + GEOSCHEMchem_resp: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/PlantDecay/v0.0.0/sfc/resp.geos_x144_y91_t12.1985.nc + GEOSCHEMchem_Bromocarb_Liang2010: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/BromoCarb/Liang/v0.0.0/Bromocarb_Liang2010.gen.1x1.nc + GEOSCHEMchem_BromoCarb_Season: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/ScaleFactors/v0.0.0/sfc/BromoCarb_Season_x360_y180_t12.2000.nc + GEOSCHEMchem_ALD2_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/ALD2_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_ALK4_butanes_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/ALK4_butanes_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_ALK4_hexanes_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/ALK4_hexanes_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_ALK4_pentanes_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/ALK4_pentanes_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_BC_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/BC_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_BENZ_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/BENZ_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_C2H2_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/C2H2_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_C2H4_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/C2H4_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_C2H6_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/C2H6_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_C3H8_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/C3H8_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_CH2O_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/CH2O_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_CO_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/CO_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_EOH_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/EOH_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_HCOOH_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/HCOOH_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_NH3_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/NH3_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_NOx_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/NOx_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_MEK_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/MEK_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_SO2_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/SO2_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_TOLU_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/TOLU_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_XYLE_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/XYLE_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_OC_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/OC_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_PRPE_anthro_CEDS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-04-21/sfc/0.1/PRPE_anthro_CEDS_x3600_y1800_t12.%y4.nc + valid_range: "2000-01-01T00:00/2019-12-01T00:00" + GEOSCHEMchem_CEDS_vertical_emiss_factors: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/ScaleFactors/v0.0.0/L72/CEDS_vertical_emiss_factors.nc + GEOSCHEMchem_CLM4_PFT: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/CLM4_PFT.geos.025x03125.esmf.nc + GEOSCHEMchem_GOCART_src_fn: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/GOCART_src_fn.esmf.2x25.nc + GEOSCHEMchem_dst_tibds: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/dst_tibds.esmf.2x25.nc + GEOSCHEMchem_dst_tvbds: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/dst_tvbds.esmf.2x25.nc + GEOSCHEMchem_TOMS_O3col: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/GCHP_data/TOMS_O3col_2010.a.geos.1x1.nc + GEOSCHEMchem_EDGAR2_1985_FF_IND: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/ScaleFactors/v0.0.0/sfc/EDGAR2_1985_FF_IND.360x180.nc + GEOSCHEMchem_RONO2_seawater: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/OCEAN/v0.0.0/sfc/RONO2_seawater_x144_y91_t12.2006.nc + GEOSCHEMchem_NH3: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEIA/v0.0.0/sfc/NH3.gen.1x1.nc + GEOSCHEMchem_GEOSCCM_Bry_day: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Bry/GEOSCCM_Bry.2007.day.esmf.nc + GEOSCHEMchem_GEOSCCM_Bry_night: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Bry/GEOSCCM_Bry.2007.night.esmf.nc + GEOSCHEMchem_AnnualScalar_1985: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/ScaleFactors/v0.0.0/sfc/AnnualScalar.gen.1x1.1985.nc + GEOSCHEMchem_AnnualScalar_2010: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/ScaleFactors/v0.0.0/sfc/AnnualScalar.gen.1x1.2010.nc + GEOSCHEMchem_NVOC: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/NVOC.geos.1x1.esmf.nc + GEOSCHEMchem_MEGAN2.1_EF: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/MEGAN2.1_EF.geos.025x03125.esmf.nc + GEOSCHEMchem_MOH_seawater: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/OCEAN/v0.0.0/sfc/MOH_seawater.low.kgCm3.generic.1x1.nc + GEOSCHEMchem_multiyearice: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/MULTI_ICE/2021-07/multiyearice.merra2.05x0625.%y4.nc + valid_range: "1980-01-01T00:00/2020-12-31T00:00" + GEOSCHEMchem_monthly.gridded.surface.methane: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/NOAA_GMD/monthly.gridded.surface.methane.1979-2024.1x1.nc + valid_range: "1979-01-01T00:00/2024-12-01T00:00" + GEOSCHEMchem_Olson_2001_Land_Map: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/Masks/v0.0.0/sfc/Olson_2001_Land_Map.2x25.nc + GEOSCHEMchem_CH2I2_monthly_emissions_Ordonez: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/BromoCarb/ORDONEZ/v0.0.0/sfc/CH2I2_monthly_emissions_Ordonez_x360_y180_t12.2000.nc + GEOSCHEMchem_CH2IBr_monthly_emissions_Ordonez: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/BromoCarb/ORDONEZ/v0.0.0/sfc/CH2IBr_monthly_emissions_Ordonez_x360_y180_t12.2000.nc + GEOSCHEMchem_CH2ICl_monthly_emissions_Ordonez: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/BromoCarb/ORDONEZ/v0.0.0/sfc/CH2ICl_monthly_emissions_Ordonez_x360_y180_t12.2000.nc + GEOSCHEMchem_CH3I_monthly_emissions_Ordonez: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/BromoCarb/ORDONEZ/v0.0.0/sfc/CH3I_monthly_emissions_Ordonez_x360_y180_t12.2000.nc + GEOSCHEMchem_PM25FINE_ECLIPSE: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/AFCID/v2018-04/sfc/PM25FINE_ECLIPSE_x144_y91_t12.2015.nc + GEOSCHEMchem_qfed2_forest_mask: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/Masks/v0.0.0/sfc/qfed2_forest_mask.nc4 + GEOSCHEMchem_qfed2.emis_acet_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_acet.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_acet_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_acet.061.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_ald2_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_ald2.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_ald2_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_ald2.061.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_alk4_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_alk4.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_alk4_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_alk4.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_bc_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_bc.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_bc_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_bc.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_c2h6_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_c2h6.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_c2h6_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_c2h6.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_c3h6_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_c3h6.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_c3h6_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_c3h6.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_c3h8_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_c3h8.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_c3h8_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_c3h8.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_ch2o_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_ch2o.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_ch2o_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_ch2o.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_co_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_co.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_co_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_co.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_mek_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_mek.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_mek_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_mek.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_nh3_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_nh3.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_nh3_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_nh3.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_no_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_no.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_no_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_no.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_oc_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_oc.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_oc_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_oc.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_qfed2.emis_so2_006: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_so2.006.%y4%m2%d2.nc4 + valid_range: "2014-12-01T12:00/2021-11-01T12:00" + GEOSCHEMchem_qfed2.emis_so2_061: + template: /discover/nobackup/projects/gmao/share/dao_ops/fvInput_nc3/PIESA/sfc/QFED/NRT/v2.5r1_0.1_deg/Y%y4/M%m2/qfed2.emis_so2.006.%y4%m2%d2.nc4 + valid_range: "2021-11-01T12:00/2025-01-01T12:00" + GEOSCHEMchem_NH3_Arctic_seabirds: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/SEABIRDS/v0.0.0/sfc/NH3_Arctic_seabirds_x1440_y720_t12.1990.nc + GEOSCHEMchem_soilNOx_climate: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/soilNOx.climate.generic.05x05.nc + GEOSCHEMchem_soilNOx_fert_res: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/soilNOx.fert_res.generic.05x05.nc + valid_range: "2000-01-01T00:00/2000-12-31T00:00" + GEOSCHEMchem_soilNOx_landtype: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/soilNOx.landtype.generic.025x025.1L.nc + GEOSCHEMchem_gmi.clim.OH: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/GMI/gmi.clim.OH.geos5.2x25.esmf.nc + GEOSCHEMchem_surface_VMRs_WMO2018: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/surface_VMR/WMO_2018/v2019-12/surface_VMRs_WMO2018_x360_y180_%y4.nc + valid_range: "2010-01-01T00:00/2020-12-01T00:00" + GEOSCHEMchem_CMIP6_GHG_surface_VMR: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/surface_VMR/CMIP6/v2020-03/sfc/CMIP6_GHG_surface_VMR_x360_y180_%y4.nc + valid_range: "2010-01-01T00:00/2014-12-01T00:00" + GEOSCHEMchem_surface_VMR_H2: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/surface_VMR/SfcFix/v2019-12/surface_VMR_H2_x360_y180.nc + GEOSCHEMchem_surface_VMR_OCS: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/surface_VMR/SfcFix/v2019-12/surface_VMR_OCS_x360_y180.nc + GEOSCHEMchem_timezones: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/timezones_esmf.2x25.nc + GEOSCHEMchem_uvalbedo: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/UV_ALBEDO/uvalbedo.geos.2x25.nc + GEOSCHEMchem_Condensed_Yuan_proc_MODIS_XLAI: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Yuan_XLAI/v2021-06/Condensed_Yuan_proc_MODIS_XLAI.025x025.%y4.nc + valid_range: "2000-01-01T00:00/2020-12-31T00:00" + GEOSCHEMchem_Oi_prj_predicted_iodide: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/OCEAN_O3_DRYDEP/v2020-02/orig/Oi_prj_predicted_iodide_0.125x0.125_No_Skagerrak_Just_Ensemble.nc + GEOSCHEMchem_WOA_2013_salinity: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/OCEAN_O3_DRYDEP/v2020-02/orig/WOA_2013_salinity.nc + GEOSCHEMchem_AEIC19_MONMEAN: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/AEIC2019/v2022-03/2019_monmean/72LGEOS/AEIC_monmean_2019_t12.0.5x0.625.72LGEOS.nc + Jason_10.18.0_carbon_c90: + template: /discover/nobackup/projects/gmao/geos_carb/sbasu1/runs/GCM/Jason_10.18.0_carbon_c90/holding/methane_tags/Jason_10.18.0_carbon_c90.methane_tags.%y4%m2%d2_%h200z.nc + ref_time: "2001-01-01T00:00" + freq: "PT3H" + valid_range: "2001-01-01T00:00/2020-12-31T21:00" + Jason_10.18.0_carbon_c90_2023: + template: /discover/nobackup/projects/gmao/geos_carb/sbasu1/runs/GCM/Jason_10.18.0_carbon_c90_2023/holding/methane_tags/Jason_10.18.0_carbon_c90_2023.methane_tags.%y4%m2%d2_%h200z.nc + ref_time: "2001-01-01T00:00" + freq: "PT3H" + valid_range: "2001-01-01T00:00/2021-12-31T21:00" + GEOSCHEMchem_CH4_scaling: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CH4/v0.0.0/ch4_offset_to_2021_x144_y91_%y4%m2.nc + valid_range: "2021-01-01T00:00/2022-12-01T00:00" + ref_time: "2021-01-01T00:00" + freq: "P1M" + GCC_CMAM_CO: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CMAM/v0.0.0/vmrco_monChem_CMAM_CMAM30-SD_r1i1p1.monthly_clim_0.015hPa.1979_2010.nc + +Exports: + ACET_SEAWATER: + collection: GCC_ACET_seawater + regrid: CONSERVE + sample: gcc_persist + variable: ACET + ALD2_SEAWATER: + collection: GCC_ALD2_seawater + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALD2 + DMS_SEAWATER: + collection: GCC_DMS_lana + regrid: CONSERVE + sample: gcc_monthly_clim + variable: DMS_OCEAN + ETNO3_SEAWATER: + collection: GEOSCHEMchem_RONO2_seawater + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ETNO3 + MENO3_SEAWATER: + collection: GEOSCHEMchem_RONO2_seawater + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MENO3 + MOH_SEAWATER: + collection: GEOSCHEMchem_MOH_seawater + regrid: CONSERVE + sample: gcc_persist + variable: MOH + AEIC_ACET: + collection: GEOSCHEMchem_AEIC + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HC + AEIC_CO: + collection: GEOSCHEMchem_AEIC + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO + AEIC_NO: + collection: GEOSCHEMchem_AEIC + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NO2 + AEIC_SO2: + collection: GEOSCHEMchem_AEIC + regrid: CONSERVE + sample: gcc_monthly_clim + variable: FUELBURN + AEIC19_MONMEAN_NO: + collection: GEOSCHEMchem_AEIC19_MONMEAN + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NO + AEIC19_MONMEAN_NO2: + collection: GEOSCHEMchem_AEIC19_MONMEAN + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NO2 + AEIC19_MONMEAN_HONO: + collection: GEOSCHEMchem_AEIC19_MONMEAN + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HONO + AEIC19_MONMEAN_CO: + collection: GEOSCHEMchem_AEIC19_MONMEAN + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO + AEIC19_MONMEAN_SO2: + collection: GEOSCHEMchem_AEIC19_MONMEAN + regrid: CONSERVE + sample: gcc_monthly_clim + variable: FUELBURN + AEIC19_MONMEAN_BCPI: + collection: GEOSCHEMchem_AEIC19_MONMEAN + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BC + AEIC19_MONMEAN_OCPI: + collection: GEOSCHEMchem_AEIC19_MONMEAN + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OC + AEIC19_MONMEAN_ACET: + collection: GEOSCHEMchem_AEIC19_MONMEAN + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HC + AF_MASK: + collection: GEOSCHEMchem_AF_LANDMASK + regrid: VOTE + sample: gcc_persist + variable: LANDMASK + ALD2_PLANTDECAY: + collection: GEOSCHEMchem_resp + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HET_RESP + LIANG_CH2Br2: + collection: GEOSCHEMchem_Bromocarb_Liang2010 + regrid: CONSERVE + sample: gcc_persist + variable: CH2Br2_emission + LIANG_CHBr3: + collection: GEOSCHEMchem_Bromocarb_Liang2010 + regrid: CONSERVE + sample: gcc_persist + variable: CHBr3_emission + BROMOCARB_SEASON: + collection: GEOSCHEMchem_BromoCarb_Season + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CHXBRY_scale + CEDS_ACET_AGR: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_agr + CEDS_ACET_ENE: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_ene + CEDS_ACET_IND: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_ind + CEDS_ACET_RCO: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_rco + CEDS_ACET_SHP: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_shp + CEDS_ACET_SLV: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_slv + CEDS_ACET_TRA: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_tra + CEDS_ACET_WST: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_wst + CEDS_ALD2_AGR: + collection: GEOSCHEMchem_ALD2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALD2_agr + CEDS_ALD2_ENE: + collection: GEOSCHEMchem_ALD2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALD2_ene + CEDS_ALD2_IND: + collection: GEOSCHEMchem_ALD2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALD2_ind + CEDS_ALD2_RCO: + collection: GEOSCHEMchem_ALD2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALD2_rco + CEDS_ALD2_SHP: + collection: GEOSCHEMchem_ALD2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALD2_shp + CEDS_ALD2_SLV: + collection: GEOSCHEMchem_ALD2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALD2_slv + CEDS_ALD2_TRA: + collection: GEOSCHEMchem_ALD2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALD2_tra + CEDS_ALD2_WST: + collection: GEOSCHEMchem_ALD2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALD2_wst + CEDS_BCPI_AGR: + collection: GEOSCHEMchem_BC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BC_agr + CEDS_BCPI_ENE: + collection: GEOSCHEMchem_BC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BC_ene + CEDS_BCPI_IND: + collection: GEOSCHEMchem_BC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BC_ind + CEDS_BCPI_RCO: + collection: GEOSCHEMchem_BC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BC_rco + CEDS_BCPI_SHP: + collection: GEOSCHEMchem_BC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BC_shp + CEDS_BCPI_SLV: + collection: GEOSCHEMchem_BC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BC_slv + CEDS_BCPI_TRA: + collection: GEOSCHEMchem_BC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BC_tra + CEDS_BCPI_WST: + collection: GEOSCHEMchem_BC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BC_wst + CEDS_BENZ_AGR: + collection: GEOSCHEMchem_BENZ_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BENZ_agr + CEDS_BENZ_ENE: + collection: GEOSCHEMchem_BENZ_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BENZ_ene + CEDS_BENZ_IND: + collection: GEOSCHEMchem_BENZ_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BENZ_ind + CEDS_BENZ_RCO: + collection: GEOSCHEMchem_BENZ_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BENZ_rco + CEDS_BENZ_SHP: + collection: GEOSCHEMchem_BENZ_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BENZ_shp + CEDS_BENZ_SLV: + collection: GEOSCHEMchem_BENZ_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BENZ_slv + CEDS_BENZ_TRA: + collection: GEOSCHEMchem_BENZ_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BENZ_tra + CEDS_BENZ_WST: + collection: GEOSCHEMchem_BENZ_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: BENZ_wst + CEDS_C2H2_SHP: + collection: GEOSCHEMchem_C2H2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H2_shp + CEDS_C2H4_AGR: + collection: GEOSCHEMchem_C2H4_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H4_agr + CEDS_C2H4_ENE: + collection: GEOSCHEMchem_C2H4_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H4_ene + CEDS_C2H4_IND: + collection: GEOSCHEMchem_C2H4_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H4_ind + CEDS_C2H4_RCO: + collection: GEOSCHEMchem_C2H4_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H4_rco + CEDS_C2H4_SHP: + collection: GEOSCHEMchem_C2H4_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H4_shp + CEDS_C2H4_SLV: + collection: GEOSCHEMchem_C2H4_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H4_slv + CEDS_C2H4_TRA: + collection: GEOSCHEMchem_C2H4_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H4_tra + CEDS_C2H4_WST: + collection: GEOSCHEMchem_C2H4_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H4_wst + CEDS_C2H6_AGR: + collection: GEOSCHEMchem_C2H6_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H6_agr + CEDS_C2H6_ENE: + collection: GEOSCHEMchem_C2H6_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H6_ene + CEDS_C2H6_IND: + collection: GEOSCHEMchem_C2H6_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H6_ind + CEDS_C2H6_RCO: + collection: GEOSCHEMchem_C2H6_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H6_rco + CEDS_C2H6_SHP: + collection: GEOSCHEMchem_C2H6_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H6_shp + CEDS_C2H6_SLV: + collection: GEOSCHEMchem_C2H6_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H6_slv + CEDS_C2H6_TRA: + collection: GEOSCHEMchem_C2H6_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H6_tra + CEDS_C2H6_WST: + collection: GEOSCHEMchem_C2H6_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C2H6_wst + CEDS_C3H8_AGR: + collection: GEOSCHEMchem_C3H8_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C3H8_agr + CEDS_C3H8_ENE: + collection: GEOSCHEMchem_C3H8_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C3H8_ene + CEDS_C3H8_IND: + collection: GEOSCHEMchem_C3H8_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C3H8_ind + CEDS_C3H8_RCO: + collection: GEOSCHEMchem_C3H8_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C3H8_rco + CEDS_C3H8_SHP: + collection: GEOSCHEMchem_C3H8_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C3H8_shp + CEDS_C3H8_SLV: + collection: GEOSCHEMchem_C3H8_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C3H8_slv + CEDS_C3H8_TRA: + collection: GEOSCHEMchem_C3H8_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C3H8_tra + CEDS_C3H8_WST: + collection: GEOSCHEMchem_C3H8_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: C3H8_wst + CEDS_C4H10_AGR: + collection: GEOSCHEMchem_ALK4_butanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_butanes_agr + CEDS_C4H10_ENE: + collection: GEOSCHEMchem_ALK4_butanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_butanes_ene + CEDS_C4H10_IND: + collection: GEOSCHEMchem_ALK4_butanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_butanes_ind + CEDS_C4H10_RCO: + collection: GEOSCHEMchem_ALK4_butanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_butanes_rco + CEDS_C4H10_SHP: + collection: GEOSCHEMchem_ALK4_butanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_butanes_shp + CEDS_C4H10_SLV: + collection: GEOSCHEMchem_ALK4_butanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_butanes_slv + CEDS_C4H10_TRA: + collection: GEOSCHEMchem_ALK4_butanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_butanes_tra + CEDS_C4H10_WST: + collection: GEOSCHEMchem_ALK4_butanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_butanes_wst + CEDS_C5H12_AGR: + collection: GEOSCHEMchem_ALK4_pentanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_pentanes_agr + CEDS_C5H12_ENE: + collection: GEOSCHEMchem_ALK4_pentanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_pentanes_ene + CEDS_C5H12_IND: + collection: GEOSCHEMchem_ALK4_pentanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_pentanes_ind + CEDS_C5H12_RCO: + collection: GEOSCHEMchem_ALK4_pentanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_pentanes_rco + CEDS_C5H12_SHP: + collection: GEOSCHEMchem_ALK4_pentanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_pentanes_shp + CEDS_C5H12_SLV: + collection: GEOSCHEMchem_ALK4_pentanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_pentanes_slv + CEDS_C5H12_TRA: + collection: GEOSCHEMchem_ALK4_pentanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_pentanes_tra + CEDS_C5H12_WST: + collection: GEOSCHEMchem_ALK4_pentanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_pentanes_wst + CEDS_C6H14_AGR: + collection: GEOSCHEMchem_ALK4_hexanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_hexanes_agr + CEDS_C6H14_ENE: + collection: GEOSCHEMchem_ALK4_hexanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_hexanes_ene + CEDS_C6H14_IND: + collection: GEOSCHEMchem_ALK4_hexanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_hexanes_ind + CEDS_C6H14_RCO: + collection: GEOSCHEMchem_ALK4_hexanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_hexanes_rco + CEDS_C6H14_SHP: + collection: GEOSCHEMchem_ALK4_hexanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_hexanes_shp + CEDS_C6H14_SLV: + collection: GEOSCHEMchem_ALK4_hexanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_hexanes_slv + CEDS_C6H14_TRA: + collection: GEOSCHEMchem_ALK4_hexanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_hexanes_tra + CEDS_C6H14_WST: + collection: GEOSCHEMchem_ALK4_hexanes_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: ALK4_hexanes_wst + CEDS_CH2O_AGR: + collection: GEOSCHEMchem_CH2O_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2O_agr + CEDS_CH2O_ENE: + collection: GEOSCHEMchem_CH2O_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2O_ene + CEDS_CH2O_IND: + collection: GEOSCHEMchem_CH2O_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2O_ind + CEDS_CH2O_RCO: + collection: GEOSCHEMchem_CH2O_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2O_rco + CEDS_CH2O_SHP: + collection: GEOSCHEMchem_CH2O_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2O_shp + CEDS_CH2O_SLV: + collection: GEOSCHEMchem_CH2O_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2O_slv + CEDS_CH2O_TRA: + collection: GEOSCHEMchem_CH2O_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2O_tra + CEDS_CH2O_WST: + collection: GEOSCHEMchem_CH2O_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2O_wst + CEDS_CO_AGR: + collection: GEOSCHEMchem_CO_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO_agr + CEDS_CO_ENE: + collection: GEOSCHEMchem_CO_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO_ene + CEDS_CO_IND: + collection: GEOSCHEMchem_CO_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO_ind + CEDS_CO_RCO: + collection: GEOSCHEMchem_CO_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO_rco + CEDS_CO_SHP: + collection: GEOSCHEMchem_CO_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO_shp + CEDS_CO_SLV: + collection: GEOSCHEMchem_CO_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO_slv + CEDS_CO_TRA: + collection: GEOSCHEMchem_CO_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO_tra + CEDS_CO_WST: + collection: GEOSCHEMchem_CO_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CO_wst + CEDS_HCOOH_AGR: + collection: GEOSCHEMchem_HCOOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HCOOH_agr + CEDS_HCOOH_ENE: + collection: GEOSCHEMchem_HCOOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HCOOH_ene + CEDS_HCOOH_IND: + collection: GEOSCHEMchem_HCOOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HCOOH_ind + CEDS_HCOOH_RCO: + collection: GEOSCHEMchem_HCOOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HCOOH_rco + CEDS_HCOOH_SHP: + collection: GEOSCHEMchem_HCOOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HCOOH_shp + CEDS_HCOOH_SLV: + collection: GEOSCHEMchem_HCOOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HCOOH_slv + CEDS_HCOOH_TRA: + collection: GEOSCHEMchem_HCOOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HCOOH_tra + CEDS_HCOOH_WST: + collection: GEOSCHEMchem_HCOOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: HCOOH_wst + CEDS_MEK_AGR: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_agr + CEDS_MEK_ENE: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_ene + CEDS_MEK_IND: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_ind + CEDS_MEK_RCO: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_rco + CEDS_MEK_SHP: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_shp + CEDS_MEK_SLV: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_slv + CEDS_MEK_TRA: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_tra + CEDS_MEK_WST: + collection: GEOSCHEMchem_MEK_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: MEK_wst + CEDS_MOH_AGR: + collection: GEOSCHEMchem_EOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: EOH_agr + CEDS_MOH_ENE: + collection: GEOSCHEMchem_EOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: EOH_ene + CEDS_MOH_IND: + collection: GEOSCHEMchem_EOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: EOH_ind + CEDS_MOH_RCO: + collection: GEOSCHEMchem_EOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: EOH_rco + CEDS_MOH_SHP: + collection: GEOSCHEMchem_EOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: EOH_shp + CEDS_MOH_SLV: + collection: GEOSCHEMchem_EOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: EOH_slv + CEDS_MOH_TRA: + collection: GEOSCHEMchem_EOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: EOH_tra + CEDS_MOH_WST: + collection: GEOSCHEMchem_EOH_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: EOH_wst + CEDS_NH3_AGR: + collection: GEOSCHEMchem_NH3_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_agr + CEDS_NH3_ENE: + collection: GEOSCHEMchem_NH3_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_ene + CEDS_NH3_IND: + collection: GEOSCHEMchem_NH3_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_ind + CEDS_NH3_RCO: + collection: GEOSCHEMchem_NH3_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_rco + CEDS_NH3_SHP: + collection: GEOSCHEMchem_NH3_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_shp + CEDS_NH3_SLV: + collection: GEOSCHEMchem_NH3_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_slv + CEDS_NH3_TRA: + collection: GEOSCHEMchem_NH3_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_tra + CEDS_NH3_WST: + collection: GEOSCHEMchem_NH3_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_wst + CEDS_NO2_AGR: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_agr + CEDS_NO2_ENE: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_ene + CEDS_NO2_IND: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_ind + CEDS_NO2_RCO: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_rco + CEDS_NO2_SHP: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_shp + CEDS_NO2_SLV: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_slv + CEDS_NO2_TRA: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_tra + CEDS_NO2_WST: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_wst + CEDS_NO_AGR: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_agr + CEDS_NO_ENE: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_ene + CEDS_NO_IND: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_ind + CEDS_NO_RCO: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_rco + CEDS_NO_SHP: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_shp + CEDS_NO_SLV: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_slv + CEDS_NO_TRA: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_tra + CEDS_NO_WST: + collection: GEOSCHEMchem_NOx_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NOx_wst + CEDS_OCPI_AGR: + collection: GEOSCHEMchem_OC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OC_agr + CEDS_OCPI_ENE: + collection: GEOSCHEMchem_OC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OC_ene + CEDS_OCPI_IND: + collection: GEOSCHEMchem_OC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OC_ind + CEDS_OCPI_RCO: + collection: GEOSCHEMchem_OC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OC_rco + CEDS_OCPI_SHP: + collection: GEOSCHEMchem_OC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OC_shp + CEDS_OCPI_SLV: + collection: GEOSCHEMchem_OC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OC_slv + CEDS_OCPI_TRA: + collection: GEOSCHEMchem_OC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OC_tra + CEDS_OCPI_WST: + collection: GEOSCHEMchem_OC_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OC_wst + CEDS_PRPE_AGR: + collection: GEOSCHEMchem_PRPE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: PRPE_agr + CEDS_PRPE_ENE: + collection: GEOSCHEMchem_PRPE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: PRPE_ene + CEDS_PRPE_IND: + collection: GEOSCHEMchem_PRPE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: PRPE_ind + CEDS_PRPE_RCO: + collection: GEOSCHEMchem_PRPE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: PRPE_rco + CEDS_PRPE_SHP: + collection: GEOSCHEMchem_PRPE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: PRPE_shp + CEDS_PRPE_SLV: + collection: GEOSCHEMchem_PRPE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: PRPE_slv + CEDS_PRPE_TRA: + collection: GEOSCHEMchem_PRPE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: PRPE_tra + CEDS_PRPE_WST: + collection: GEOSCHEMchem_PRPE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: PRPE_wst + CEDS_SO2_AGR: + collection: GEOSCHEMchem_SO2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: SO2_agr + CEDS_SO2_ENE: + collection: GEOSCHEMchem_SO2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: SO2_ene + CEDS_SO2_IND: + collection: GEOSCHEMchem_SO2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: SO2_ind + CEDS_SO2_RCO: + collection: GEOSCHEMchem_SO2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: SO2_rco + CEDS_SO2_SHP: + collection: GEOSCHEMchem_SO2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: SO2_shp + CEDS_SO2_SLV: + collection: GEOSCHEMchem_SO2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: SO2_slv + CEDS_SO2_TRA: + collection: GEOSCHEMchem_SO2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: SO2_tra + CEDS_SO2_WST: + collection: GEOSCHEMchem_SO2_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: SO2_wst + CEDS_TOLU_AGR: + collection: GEOSCHEMchem_TOLU_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: TOLU_agr + CEDS_TOLU_ENE: + collection: GEOSCHEMchem_TOLU_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: TOLU_ene + CEDS_TOLU_IND: + collection: GEOSCHEMchem_TOLU_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: TOLU_ind + CEDS_TOLU_RCO: + collection: GEOSCHEMchem_TOLU_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: TOLU_rco + CEDS_TOLU_SHP: + collection: GEOSCHEMchem_TOLU_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: TOLU_shp + CEDS_TOLU_SLV: + collection: GEOSCHEMchem_TOLU_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: TOLU_slv + CEDS_TOLU_TRA: + collection: GEOSCHEMchem_TOLU_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: TOLU_tra + CEDS_TOLU_WST: + collection: GEOSCHEMchem_TOLU_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: TOLU_wst + CEDS_XYLE_AGR: + collection: GEOSCHEMchem_XYLE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: XYLE_agr + CEDS_XYLE_ENE: + collection: GEOSCHEMchem_XYLE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: XYLE_ene + CEDS_XYLE_IND: + collection: GEOSCHEMchem_XYLE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: XYLE_ind + CEDS_XYLE_RCO: + collection: GEOSCHEMchem_XYLE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: XYLE_rco + CEDS_XYLE_SHP: + collection: GEOSCHEMchem_XYLE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: XYLE_shp + CEDS_XYLE_SLV: + collection: GEOSCHEMchem_XYLE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: XYLE_slv + CEDS_XYLE_TRA: + collection: GEOSCHEMchem_XYLE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: XYLE_tra + CEDS_XYLE_WST: + collection: GEOSCHEMchem_XYLE_anthro_CEDS + regrid: CONSERVE + sample: gcc_monthly_clim + variable: XYLE_wst + CEDS_VSCAL_ENERGY: + collection: GEOSCHEMchem_CEDS_vertical_emiss_factors + sample: gcc_monthly_clim + variable: vscal_energy + CEDS_VSCAL_INDUSTRY: + collection: GEOSCHEMchem_CEDS_vertical_emiss_factors + sample: gcc_monthly_clim + variable: vscal_industry + CEDS_VSCAL_SHIP: + collection: GEOSCHEMchem_CEDS_vertical_emiss_factors + sample: gcc_monthly_clim + variable: vscal_ship + CLM4_PFT_BARE_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_BARE + CLM4_PFT_BDLF_DECD_BORL_SHRB_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_BDLF_DECD_BORL_SHRB + CLM4_PFT_BDLF_DECD_BORL_TREE_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_BDLF_DECD_BORL_TREE + CLM4_PFT_BDLF_DECD_TMPT_SHRB_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_BDLF_DECD_TMPT_SHRB + CLM4_PFT_BDLF_DECD_TMPT_TREE_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_BDLF_DECD_TMPT_TREE + CLM4_PFT_BDLF_DECD_TROP_TREE_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_BDLF_DECD_TROP_TREE + CLM4_PFT_BDLF_EVGN_SHRB_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_BDLF_EVGN_SHRB + CLM4_PFT_BDLF_EVGN_TMPT_TREE_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_BDLF_EVGN_TMPT_TREE + CLM4_PFT_BDLF_EVGN_TROP_TREE_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_BDLF_EVGN_TROP_TREE + CLM4_PFT_C3_ARCT_GRSS_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_C3_ARCT_GRSS + CLM4_PFT_C3_NARC_GRSS_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_C3_NARC_GRSS + CLM4_PFT_C4_GRSS_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_C4_GRSS + CLM4_PFT_CROP_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_CROP + CLM4_PFT_NDLF_DECD_BORL_TREE_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_NDLF_DECD_BORL_TREE + CLM4_PFT_NDLF_EVGN_BORL_TREE_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_NDLF_EVGN_BORL_TREE + CLM4_PFT_NDLF_EVGN_TMPT_TREE_GCC: + collection: GEOSCHEMchem_CLM4_PFT + regrid: BILINEAR + sample: gcc_persist + variable: PFT_NDLF_EVGN_TMPT_TREE + DEAD_GOC_SRC: + collection: GEOSCHEMchem_GOCART_src_fn + regrid: BILINEAR + sample: gcc_persist + variable: GOC_SRC + DEAD_EF_GEO: + collection: GEOSCHEMchem_dst_tibds + regrid: BILINEAR + sample: gcc_persist + variable: EF_GEO + DEAD_LF_DRY: + collection: GEOSCHEMchem_dst_tibds + regrid: BILINEAR + sample: gcc_persist + variable: LF_DRY + DEAD_MF_CACO3: + collection: GEOSCHEMchem_dst_tibds + regrid: BILINEAR + sample: gcc_persist + variable: MF_CaCO3 + DEAD_MF_CLY: + collection: GEOSCHEMchem_dst_tibds + regrid: BILINEAR + sample: gcc_persist + variable: MF_CLY + DEAD_MF_SND: + collection: GEOSCHEMchem_dst_tibds + regrid: BILINEAR + sample: gcc_persist + variable: MF_SND + DEAD_SFC_TYP: + collection: GEOSCHEMchem_dst_tibds + regrid: VOTE + sample: gcc_persist + variable: SFC_TYP + DEAD_VAI: + collection: GEOSCHEMchem_dst_tvbds + regrid: BILINEAR + sample: gcc_monthly_clim + variable: VAI + DTOMS1_O3_COL: + collection: GEOSCHEMchem_TOMS_O3col + regrid: CONSERVE + sample: gcc_monthly_clim + variable: DTOMS1 + DTOMS2_O3_COL: + collection: GEOSCHEMchem_TOMS_O3col + regrid: CONSERVE + sample: gcc_monthly_clim + variable: DTOMS2 + TOMS_O3_COL: + collection: GEOSCHEMchem_TOMS_O3col + regrid: CONSERVE + sample: gcc_monthly_clim + variable: TOMS + EDGAR_NAP: + collection: GEOSCHEMchem_EDGAR2_1985_FF_IND + regrid: CONSERVE + sample: gcc_persist + variable: BENZ + GEIA_NH3_NATU: + collection: GEOSCHEMchem_NH3 + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_NATU + GEOSCCM_Br2_DAY: + collection: GEOSCHEMchem_GEOSCCM_Bry_day + regrid: BILINEAR + sample: gcc_monthly_clim + variable: BRCL + GEOSCCM_Br2_NIGHT: + collection: GEOSCHEMchem_GEOSCCM_Bry_night + regrid: BILINEAR + sample: gcc_monthly_clim + variable: BRCL + GEOSCCM_BrNO3_DAY: + collection: GEOSCHEMchem_GEOSCCM_Bry_day + regrid: BILINEAR + sample: gcc_monthly_clim + variable: BRONO2 + GEOSCCM_BrNO3_NIGHT: + collection: GEOSCHEMchem_GEOSCCM_Bry_night + regrid: BILINEAR + sample: gcc_monthly_clim + variable: BRONO2 + GEOSCCM_BrO_DAY: + collection: GEOSCHEMchem_GEOSCCM_Bry_day + regrid: BILINEAR + sample: gcc_monthly_clim + variable: BRO + GEOSCCM_BrO_NIGHT: + collection: GEOSCHEMchem_GEOSCCM_Bry_night + regrid: BILINEAR + sample: gcc_monthly_clim + variable: BRO + GEOSCCM_Br_DAY: + collection: GEOSCHEMchem_GEOSCCM_Bry_day + regrid: BILINEAR + sample: gcc_monthly_clim + variable: BR + GEOSCCM_Br_NIGHT: + collection: GEOSCHEMchem_GEOSCCM_Bry_night + regrid: BILINEAR + sample: gcc_monthly_clim + variable: BR + GEOSCCM_HBr_DAY: + collection: GEOSCHEMchem_GEOSCCM_Bry_day + regrid: BILINEAR + sample: gcc_monthly_clim + variable: HBR + GEOSCCM_HBr_NIGHT: + collection: GEOSCHEMchem_GEOSCCM_Bry_night + regrid: BILINEAR + sample: gcc_monthly_clim + variable: HBR + GEOSCCM_HOBr_DAY: + collection: GEOSCHEMchem_GEOSCCM_Bry_day + regrid: BILINEAR + sample: gcc_monthly_clim + variable: HOBR + GEOSCCM_HOBr_NIGHT: + collection: GEOSCHEMchem_GEOSCCM_Bry_night + regrid: BILINEAR + sample: gcc_monthly_clim + variable: HOBR + LIQFUEL_1985: + collection: GEOSCHEMchem_AnnualScalar_1985 + regrid: BILINEAR + sample: gcc_persist + variable: COscalar + LIQFUEL_THISYR: + collection: GEOSCHEMchem_AnnualScalar_2010 + regrid: BILINEAR + sample: gcc_persist + variable: COscalar + MEGAN_AEF_BPIN_GCC: + collection: GEOSCHEMchem_MEGAN2.1_EF + regrid: CONSERVE + sample: gcc_persist + variable: AEF_BETA_PINENE + MEGAN_AEF_CARE_GCC: + collection: GEOSCHEMchem_MEGAN2.1_EF + regrid: CONSERVE + sample: gcc_persist + variable: AEF_CARENE + MEGAN_AEF_ISOP_GCC: + collection: GEOSCHEMchem_MEGAN2.1_EF + regrid: CONSERVE + sample: gcc_persist + variable: AEF_ISOPRENE + MEGAN_AEF_LIMO_GCC: + collection: GEOSCHEMchem_MEGAN2.1_EF + regrid: CONSERVE + sample: gcc_persist + variable: AEF_LIMONENE + MEGAN_AEF_MBOX_GCC: + collection: GEOSCHEMchem_MEGAN2.1_EF + regrid: CONSERVE + sample: gcc_persist + variable: AEF_MBO + MEGAN_AEF_OCIM_GCC: + collection: GEOSCHEMchem_MEGAN2.1_EF + regrid: CONSERVE + sample: gcc_persist + variable: AEF_OCIMENE + MEGAN_AEF_SABI_GCC: + collection: GEOSCHEMchem_MEGAN2.1_EF + regrid: CONSERVE + sample: gcc_persist + variable: AEF_SABINENE + MEGAN_ORVC_GCC: + collection: GEOSCHEMchem_NVOC + regrid: CONSERVE + sample: gcc_monthly_clim + variable: OCPI + MULTISEAICE: + collection: GEOSCHEMchem_multiyearice + regrid: BILINEAR + sample: gcc_daily_clim + variable: FRSEAICE + NOAA_GMD_CH4: + collection: GEOSCHEMchem_monthly.gridded.surface.methane + regrid: BILINEAR + sample: gcc_monthly_clim + variable: SFC_CH4 + OLSON00: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;0 + sample: gcc_persist + variable: OLSON + OLSON01: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;1 + sample: gcc_persist + variable: OLSON + OLSON02: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;2 + sample: gcc_persist + variable: OLSON + OLSON03: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;3 + sample: gcc_persist + variable: OLSON + OLSON04: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;4 + sample: gcc_persist + variable: OLSON + OLSON05: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;5 + sample: gcc_persist + variable: OLSON + OLSON06: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;6 + sample: gcc_persist + variable: OLSON + OLSON07: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;7 + sample: gcc_persist + variable: OLSON + OLSON08: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;8 + sample: gcc_persist + variable: OLSON + OLSON09: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;9 + sample: gcc_persist + variable: OLSON + OLSON10: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;10 + sample: gcc_persist + variable: OLSON + OLSON11: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;11 + sample: gcc_persist + variable: OLSON + OLSON12: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;12 + sample: gcc_persist + variable: OLSON + OLSON13: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;13 + sample: gcc_persist + variable: OLSON + OLSON14: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;14 + sample: gcc_persist + variable: OLSON + OLSON15: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;15 + sample: gcc_persist + variable: OLSON + OLSON16: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;16 + sample: gcc_persist + variable: OLSON + OLSON17: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;17 + sample: gcc_persist + variable: OLSON + OLSON18: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;18 + sample: gcc_persist + variable: OLSON + OLSON19: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;19 + sample: gcc_persist + variable: OLSON + OLSON20: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;20 + sample: gcc_persist + variable: OLSON + OLSON21: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;21 + sample: gcc_persist + variable: OLSON + OLSON22: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;22 + sample: gcc_persist + variable: OLSON + OLSON23: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;23 + sample: gcc_persist + variable: OLSON + OLSON24: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;24 + sample: gcc_persist + variable: OLSON + OLSON25: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;25 + sample: gcc_persist + variable: OLSON + OLSON26: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;26 + sample: gcc_persist + variable: OLSON + OLSON27: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;27 + sample: gcc_persist + variable: OLSON + OLSON28: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;28 + sample: gcc_persist + variable: OLSON + OLSON29: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;29 + sample: gcc_persist + variable: OLSON + OLSON30: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;30 + sample: gcc_persist + variable: OLSON + OLSON31: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;31 + sample: gcc_persist + variable: OLSON + OLSON32: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;32 + sample: gcc_persist + variable: OLSON + OLSON33: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;33 + sample: gcc_persist + variable: OLSON + OLSON34: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;34 + sample: gcc_persist + variable: OLSON + OLSON35: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;35 + sample: gcc_persist + variable: OLSON + OLSON36: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;36 + sample: gcc_persist + variable: OLSON + OLSON37: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;37 + sample: gcc_persist + variable: OLSON + OLSON38: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;38 + sample: gcc_persist + variable: OLSON + OLSON39: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;39 + sample: gcc_persist + variable: OLSON + OLSON40: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;40 + sample: gcc_persist + variable: OLSON + OLSON41: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;41 + sample: gcc_persist + variable: OLSON + OLSON42: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;42 + sample: gcc_persist + variable: OLSON + OLSON43: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;43 + sample: gcc_persist + variable: OLSON + OLSON44: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;44 + sample: gcc_persist + variable: OLSON + OLSON45: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;45 + sample: gcc_persist + variable: OLSON + OLSON46: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;46 + sample: gcc_persist + variable: OLSON + OLSON47: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;47 + sample: gcc_persist + variable: OLSON + OLSON48: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;48 + sample: gcc_persist + variable: OLSON + OLSON49: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;49 + sample: gcc_persist + variable: OLSON + OLSON50: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;50 + sample: gcc_persist + variable: OLSON + OLSON51: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;51 + sample: gcc_persist + variable: OLSON + OLSON52: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;52 + sample: gcc_persist + variable: OLSON + OLSON53: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;53 + sample: gcc_persist + variable: OLSON + OLSON54: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;54 + sample: gcc_persist + variable: OLSON + OLSON55: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;55 + sample: gcc_persist + variable: OLSON + OLSON56: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;56 + sample: gcc_persist + variable: OLSON + OLSON57: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;57 + sample: gcc_persist + variable: OLSON + OLSON58: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;58 + sample: gcc_persist + variable: OLSON + OLSON59: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;59 + sample: gcc_persist + variable: OLSON + OLSON60: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;60 + sample: gcc_persist + variable: OLSON + OLSON61: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;61 + sample: gcc_persist + variable: OLSON + OLSON62: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;62 + sample: gcc_persist + variable: OLSON + OLSON63: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;63 + sample: gcc_persist + variable: OLSON + OLSON64: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;64 + sample: gcc_persist + variable: OLSON + OLSON65: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;65 + sample: gcc_persist + variable: OLSON + OLSON66: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;66 + sample: gcc_persist + variable: OLSON + OLSON67: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;67 + sample: gcc_persist + variable: OLSON + OLSON68: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;68 + sample: gcc_persist + variable: OLSON + OLSON69: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;69 + sample: gcc_persist + variable: OLSON + OLSON70: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;70 + sample: gcc_persist + variable: OLSON + OLSON71: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;71 + sample: gcc_persist + variable: OLSON + OLSON72: + collection: GEOSCHEMchem_Olson_2001_Land_Map + regrid: FRACTION;72 + sample: gcc_persist + variable: OLSON + ORDONEZ_CH2I2: + collection: GEOSCHEMchem_CH2I2_monthly_emissions_Ordonez + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2I2 + ORDONEZ_CH2IBR: + collection: GEOSCHEMchem_CH2IBr_monthly_emissions_Ordonez + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2IBr + ORDONEZ_CH2ICL: + collection: GEOSCHEMchem_CH2ICl_monthly_emissions_Ordonez + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH2ICl + ORDONEZ_CH3I: + collection: GEOSCHEMchem_CH3I_monthly_emissions_Ordonez + regrid: CONSERVE + sample: gcc_monthly_clim + variable: CH3I + PM25FINE_1: + collection: GEOSCHEMchem_PM25FINE_ECLIPSE + regrid: CONSERVE + sample: gcc_monthly_clim + variable: PM25FINE + QFED2_BOREAL: + collection: GEOSCHEMchem_qfed2_forest_mask + regrid: BILINEAR + sample: gcc_persist + variable: qfed2_boreal + QFED2_TEMPERATE: + collection: GEOSCHEMchem_qfed2_forest_mask + regrid: BILINEAR + sample: gcc_persist + variable: qfed2_temperate + QFED_ACET_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ACET_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ACET_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_ACET_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_ACET_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_ACET_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_ACET_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_ACET_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_ACET_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ACET_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_006, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_acet_061, linear_transformation: [0.0, 0.61984], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ALD2_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ALD2_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ALD2_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_ALD2_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_ALD2_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_ALD2_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_ALD2_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_ALD2_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_ALD2_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ALD2_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_006, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ald2_061, linear_transformation: [0.0, 0.54484], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ALK4_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ALK4_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ALK4_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_ALK4_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_ALK4_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_ALK4_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_ALK4_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_ALK4_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_ALK4_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_ALK4_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_006, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_alk4_061, linear_transformation: [0.0, 0.82588], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_BCPI_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_BCPI_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_BCPI_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_BCPI_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_BCPI_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_BCPI_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_BCPI_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_BCPI_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_BCPI_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_BCPI_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_bc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_C2H6_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_C2H6_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_C2H6_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_C2H6_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_C2H6_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_C2H6_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_C2H6_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_C2H6_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_C2H6_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_C2H6_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_006, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c2h6_061, linear_transformation: [0.0, 0.79814], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_C3H8_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_C3H8_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_C3H8_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_C3H8_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_C3H8_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_C3H8_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_C3H8_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_C3H8_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_C3H8_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_C3H8_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h8_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_CH2O_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_CH2O_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_CH2O_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_CH2O_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_CH2O_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_CH2O_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_CH2O_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_CH2O_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_CH2O_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_CH2O_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_ch2o_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_CO_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_CO_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_CO_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_CO_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_CO_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_CO_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_CO_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_CO_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_CO_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_CO_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_co_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_MEK_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_MEK_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_MEK_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_MEK_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_MEK_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_MEK_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_MEK_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_MEK_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_MEK_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_MEK_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_006, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_mek_061, linear_transformation: [0.0, 0.66565], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_NH3_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_NH3_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_NH3_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_NH3_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_NH3_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_NH3_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_NH3_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_NH3_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_NH3_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_NH3_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_nh3_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_NO_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_NO_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_NO_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_NO_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_NO_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_NO_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_NO_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_NO_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_NO_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_NO_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_no_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_OCPI_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_OCPI_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_OCPI_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_OCPI_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_OCPI_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_OCPI_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_OCPI_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_OCPI_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_OCPI_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_OCPI_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_oc_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_PRPE_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_PRPE_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_PRPE_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_PRPE_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_PRPE_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_PRPE_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_PRPE_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_PRPE_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_PRPE_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_PRPE_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_006, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_c3h6_061, linear_transformation: [0.0, 0.81633], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_SO2_BO_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_SO2_BO_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_SO2_GL_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_SO2_GL_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_gl} + QFED_SO2_SV_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_SO2_SV_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_sv} + QFED_SO2_TF_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_SO2_TF_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_tf} + QFED_SO2_TP_FT: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + QFED_SO2_TP_SFC: + - {starting: "2014-12-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_006, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + - {starting: "2021-11-01T12:00", collection: GEOSCHEMchem_qfed2.emis_so2_061, linear_transformation: [0.0, 1.0], regrid: CONSERVE, sample: gcc_daily, variable: biomass_xf} + SEABIRD_NH3: + collection: GEOSCHEMchem_NH3_Arctic_seabirds + regrid: CONSERVE + sample: gcc_monthly_clim + variable: NH3_SEABIRDS + SOILNOX_ARID: + collection: GEOSCHEMchem_soilNOx_climate + regrid: BILINEAR + sample: gcc_persist + variable: ARID + SOILNOX_NONARID: + collection: GEOSCHEMchem_soilNOx_climate + regrid: BILINEAR + sample: gcc_persist + variable: NON_ARID + SOILNOX_FERT: + collection: GEOSCHEMchem_soilNOx_fert_res + regrid: CONSERVE + sample: gcc_daily_clim + variable: FERT + SOILNOX_LANDK1: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K01 + SOILNOX_LANDK2: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K02 + SOILNOX_LANDK3: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K03 + SOILNOX_LANDK4: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K04 + SOILNOX_LANDK5: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K05 + SOILNOX_LANDK6: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K06 + SOILNOX_LANDK7: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K07 + SOILNOX_LANDK8: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K08 + SOILNOX_LANDK9: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K09 + SOILNOX_LANDK10: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K10 + SOILNOX_LANDK11: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K11 + SOILNOX_LANDK12: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K12 + SOILNOX_LANDK13: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K13 + SOILNOX_LANDK14: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K14 + SOILNOX_LANDK15: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K15 + SOILNOX_LANDK16: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K16 + SOILNOX_LANDK17: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K17 + SOILNOX_LANDK18: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K18 + SOILNOX_LANDK19: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K19 + SOILNOX_LANDK20: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K20 + SOILNOX_LANDK21: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K21 + SOILNOX_LANDK22: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K22 + SOILNOX_LANDK23: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K23 + SOILNOX_LANDK24: + collection: GEOSCHEMchem_soilNOx_landtype + regrid: BILINEAR + sample: gcc_persist + variable: LANDFRAC_K24 + STRAT_OH: + collection: GEOSCHEMchem_gmi.clim.OH + regrid: BILINEAR + sample: gcc_monthly_clim + variable: species + SfcVMR_CCl4: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CCl4 + SfcVMR_CFC11: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CFC11 + SfcVMR_CFC113: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CFC113 + SfcVMR_CFC114: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CFC114 + SfcVMR_CFC115: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CFC115 + SfcVMR_CFC12: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CFC12 + SfcVMR_CH3CCl3: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CH3CCl3 + SfcVMR_H1211: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: H1211 + SfcVMR_H1301: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: H1301 + SfcVMR_H2402: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: C2BR2F4 + SfcVMR_HCFC141b: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: HCFC141b + SfcVMR_HCFC142b: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: HCFC142b + SfcVMR_HCFC22: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: HCFC22 + SfcVMR_N2O: + collection: GEOSCHEMchem_surface_VMRs_WMO2018 + regrid: BILINEAR + sample: gcc_monthly_clim + variable: N2O + SfcVMR_CH2Cl2: + collection: GEOSCHEMchem_CMIP6_GHG_surface_VMR + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CH2Cl2 + SfcVMR_CH3Br: + collection: GEOSCHEMchem_CMIP6_GHG_surface_VMR + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CH3Br + SfcVMR_CH3Cl: + collection: GEOSCHEMchem_CMIP6_GHG_surface_VMR + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CH3Cl + SfcVMR_CHCl3: + collection: GEOSCHEMchem_CMIP6_GHG_surface_VMR + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CHCl3 + SfcVMR_H2: + collection: GEOSCHEMchem_surface_VMR_H2 + regrid: BILINEAR + sample: gcc_persist + variable: H2 + SfcVMR_OCS: + collection: GEOSCHEMchem_surface_VMR_OCS + regrid: BILINEAR + sample: gcc_persist + variable: OCS + TIMEZONES: + collection: GEOSCHEMchem_timezones + regrid: VOTE + sample: gcc_persist + variable: UTC_OFFSET + UV_ALBEDO: + collection: GEOSCHEMchem_uvalbedo + regrid: BILINEAR + sample: gcc_monthly_clim + variable: UVALBD + XLAIMULTI: + collection: GEOSCHEMchem_Condensed_Yuan_proc_MODIS_XLAI + regrid: CONSERVE + sample: gcc_8day_interp_clim + variable: XLAIMULTI + surf_iodide: + collection: GEOSCHEMchem_Oi_prj_predicted_iodide + regrid: CONSERVE + sample: gcc_monthly_clim + variable: Ensemble_Monthly_mean + surf_salinity: + collection: GEOSCHEMchem_WOA_2013_salinity + regrid: CONSERVE + sample: gcc_persist + variable: s_mn + GEOS_CH4: + collection: Jason_10.18.0_carbon_c90_2023 + regrid: BILINEAR + sample: gcc_3hr + variable: CH4_total_dry + CH4_OFFSET: + collection: GEOSCHEMchem_CH4_scaling + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CH4_offset + CO_CMAM: + collection: GCC_CMAM_CO + regrid: BILINEAR + sample: gcc_monthly_clim + variable: CO + diff --git a/run/GEOS/GEOSCHEMchem_GridComp.rc b/run/GEOS/GEOSCHEMchem_GridComp.rc index 414ccb2d4..39617c6a3 100644 --- a/run/GEOS/GEOSCHEMchem_GridComp.rc +++ b/run/GEOS/GEOSCHEMchem_GridComp.rc @@ -14,6 +14,7 @@ # 19 Mar 2013 - R. Yantosca - MAX_TRCS should be 53, not 54 # 01 Aug 2014 - M. Long-sca - MAX_TRCS & MAX_DIAG set to 130 & 80, resp. # 07 Jun 2018 - C.Keller/K.E.Knowland - Change LLSTRAT from 59 to 40, add Calc_VUD_online +# 14 Apr 2024 - P. O. Sturm - Added optional parallelization timing flag #------------------------------------------------------------------------------ # @@ -76,8 +77,16 @@ RUN_PHASES: 2 # # %%% Stop if KPP integration fails (default: 1) %%% # -KPP_STOP_IF_FAIL: 0 +KPP_STOP_IF_FAIL: 0 +# Checks to prevent negative concentrations after KPP integration. These can create +# problems with mass balance. KppCheckNegatives checks for negatives in the N top +# layers. I.e., if set to 5 it will check for negatives in the top 5 model levels. +# If set to 0, it will perform the check in the entire stratosphere and mesosphere. +# If negatives are found, a second integration attempt will be made using HSTART=0 +# and by relaxing the KPP tolerances using the scale factor provided in KppTolScale. +KppCheckNegatives: -1 +KppTolScale: 1.0 # # %%% HEMCO configuration file %%% @@ -102,7 +111,7 @@ ARCHIVED_CONV: 0 # %%% Use MOIST module for convective transport (including washout) # Make species friendly to moist? If turned on, convection must be turned off in in geoschem_config.yml -Species_friendly_to_moist: 0 +Species_friendly_to_moist: 1 # Turn off washout for SO2? TurnOff_SO2_washout: 1 # Calculate CLDLIQ and CLDICE online based on current conditions (use default GEOS-Chem parameterization otherwise)? @@ -110,6 +119,9 @@ Online_CLDLIQ: 1 # Use online vertical updraft velocity or use default GEOS-Chem parameterization? Online_VUD: 1 +# Use GAAS on GEOS-Chem aerosols? +Species_friendly_to_GAAS: 0 + # # %%% Tuning parameter to reduce washout efficiency # %%% of convective large-scale precip. @@ -168,7 +180,7 @@ Use_GMI_O3_PL: 0 # Analysis options ANAPHASE: 2 -Analysis_nSpecies: 0 +Analysis_nSpecies: 2 Analysis_Settings_Spec001: GEOSCHEMchem_AnaSettings_O3.rc Analysis_Settings_Spec002: GEOSCHEMchem_AnaSettings_NO2.rc @@ -210,3 +222,31 @@ TurnOffHetRates: 1 # Bry_Cly_Family_Transport: 1 +# +# CO production from CO2 photolysis +# +CO_production_from_CO2_photolysis: 0 +CO2photolysisFile: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/StratChem/SC.J_20_12_79_72_200_45.jpl15.nc4 + +# +# CO2 coupling with GOCART +# +Import_CO2_from_GOCART: 0 +GOCART_CO2_FieldName: GOCART_CO2 + +# +# Set CO mesosphere upper boundary to external field +# +Set_CO_Mesosphere: 0 +CO_Mesosphere_FieldName: CO_CMAM + +# +# To set CH4 boundary condition from GEOS +# This is not yet implemented. Set to zero for now. If you want GEOS CH4, need to activate GEOS_CH4 in HEMCO_Config.rc +CH4_from_GEOS: 0 + + +# Parallelization barrier for chemistry in GEOS +# Optional VMBarrier at the end of Run2 +# If 1, the VMBarrier is on +GC_VMBarrier_Run2: 0 diff --git a/run/GEOS/GEOSChem_TaggedNOx.rc b/run/GEOS/GEOSChem_TaggedNOx.rc new file mode 100644 index 000000000..d30988847 --- /dev/null +++ b/run/GEOS/GEOSChem_TaggedNOx.rc @@ -0,0 +1,21 @@ +# Resource file for NOx Tagged tracers. Used by geos_TaggedSpecies.F90 +# Added by Pam Wales on Sept 18, 2023 +# Modified for GCv14 by Christph Keller on Mar 21, 2024 + +# The number of NO(x) tagged tracers to include. +# Will be included as NOTAG1, NOTAG2 and NO2TAG1, NO2TAG2, etc. +# If set to 0 (default), no tagged NOx tracers will be used +# If set to higher than 0, the corresponding number of tagged +# NOx tracer need to be present in geoschem_config.yaml and +# species_database.yaml. +nchem_tag: 0 + +# If partner_tag is true (> 0), scale NOx as NO + NO2 +partner_tag: 1 + +# tag names (currently not used - names are hardcoded) +tag_names: NOTAG1 + +# partner names (currently not used - names are hardcoded) +partner_names: NO2TAG1 + diff --git a/run/GEOS/HEMCO_Config.rc b/run/GEOS/HEMCO_Config.rc index 8ff8ab0e6..3d8af40ec 100644 --- a/run/GEOS/HEMCO_Config.rc +++ b/run/GEOS/HEMCO_Config.rc @@ -29,8 +29,8 @@ Separator: / Unit tolerance: 1 Negative values: 2 Only unitless scale factors: false -Verbose: 0 -Warnings: 1 +Verbose: false +VerboseOnCores: root # Accepted values: root all # ### END SECTION SETTINGS @@ -69,6 +69,10 @@ Warnings: 1 --> DICE_AFRICA : false --> TRASH : false --> OMI_HTAP_SO2 : false +# ----- AIRCRAFT EMISSIONS ------------------ + --> AEIC : false + --> AEIC2019_MONMEAN : true + --> AEIC_SCALE_1990_2019 : true # ----- NON-EMISSIONS DATA ------------------ --> UVALBEDO : true --> CCM_STRAT_Bry : true @@ -76,8 +80,9 @@ Warnings: 1 --> GMI_PROD_LOSS : false --> UCX_PROD_LOSS : false --> OMOC_RATIO : false - --> GMD_SFC_CH4 : true + --> GMD_SFC_CH4 : false --> CMIP6_SFC_CH4 : false + --> GEOS_3HR_CH4 : true # OLSON and MODIS read via MAPL not HEMCO in GEOS --> OLSON_LANDMAP : false --> YUAN_MODIS_LAI : false @@ -120,9 +125,10 @@ Warnings: 1 --> NH snow age : 3.0 --> SH snow age : 1.5 --> N per snowflake : 5.0 - --> Model sea salt Br- : false + --> Model sea salt Br- : true --> Br- mass ratio : 2.11e-3 108 MEGAN : on ISOP/ACET/PRPE/C2H4/ALD2/MOH/EOH/MTPA/MTPO/LIMO/SESQ/SOAP/SOAS + --> MEGAN_SUFFIX : _GCC --> Isoprene scaling : 1.0 --> CO2 inhibition : true --> CO2 conc (ppmv) : 390.0 @@ -474,7 +480,7 @@ Warnings: 1 0 CEDS_C2H6_TRA /see/ExtData.rc C2H6_tra 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 3 2 0 CEDS_C2H6_RCO /see/ExtData.rc C2H6_rco 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 4 2 0 CEDS_C2H6_SLV /see/ExtData.rc C2H6_slv 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 1 2 -0 CEDS_C2H6_WST /see/ExtData.rc C2H6_wst 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 4 2 +0 CEDS_C2H6_WST /see/ExtData.rc C2H6_wst 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 9 2 )))CEDS_C2H6 #======================================================================================================================================= @@ -607,6 +613,7 @@ Warnings: 1 #======================================================================================================================================= ## --- AEIC aircraft emissions --- #======================================================================================================================================= +(((AEIC 0 AEIC_NO ~/data/aeic_2005.geos.1x1.72L.nc NO 2005/1-12/1/0 C xyz kg/m2/s NO 110/115 20 1 0 AEIC_CO ~/data/aeic_2005.geos.1x1.72L.nc CO 2005/1-12/1/0 C xyz kg/m2/s CO 110 20 1 0 AEIC_SOAP - - - - - - SOAP 110/280 20 1 @@ -623,6 +630,32 @@ Warnings: 1 0 AEIC_PRPE - - - - - - PRPE 114/107/49 20 1 0 AEIC_MACR - - - - - - MACR 114/108/83 20 1 0 AEIC_RCHO - - - - - - RCHO 114/109/69 20 1 +)))AEIC + +(((AEIC2019_MONMEAN +0 AEIC19_MONMEAN_NO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc NO 2019/1-12/1/0 C xyz kg/m2/s NO 241/240 20 1 +0 AEIC19_MONMEAN_NO2 $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc NO2 2019/1-12/1/0 C xyz kg/m2/s NO2 241/240 20 1 +0 AEIC19_MONMEAN_HONO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc HONO 2019/1-12/1/0 C xyz kg/m2/s HNO2 241/240 20 1 +0 AEIC19_MONMEAN_CO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc CO 2019/1-12/1/0 C xyz kg/m2/s CO 241 20 1 +0 AEIC19_MONMEAN_SOAP - - - - - - SOAP 241/280 20 1 +0 AEIC19_MONMEAN_SO2 $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc FUELBURN 2019/1-12/1/0 C xyz kg/m2/s SO2 241/111 20 1 +0 AEIC19_MONMEAN_pFe - - - - - - pFe 241/111/66 20 1 +0 AEIC19_MONMEAN_SO4 - - - - - - SO4 241/112 20 1 +0 AEIC19_MONMEAN_H2O - - - - - - H2O 241/120 20 1 +0 AEIC19_MONMEAN_BCPI $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc BC 2019/1-12/1/0 C xyz kg/m2/s BCPI 241 20 1 +0 AEIC19_MONMEAN_OCPI $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc OC 2019/1-12/1/0 C xyz kg/m2/s OCPI 241 20 1 +0 AEIC19_MONMEAN_POG1 - - - - - - POG1 241/74/76 20 1 +0 AEIC19_MONMEAN_POG2 - - - - - - POG2 241/74/77 20 1 +0 AEIC19_MONMEAN_ACET $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc HC 2019/1-12/1/0 C xyz kg/m2/s ACET 241/114/101 20 1 +0 AEIC19_MONMEAN_ALD2 - - - - - - ALD2 241/114/102 20 1 +0 AEIC19_MONMEAN_ALK4 - - - - - - ALK4 241/114/103 20 1 +0 AEIC19_MONMEAN_C2H6 - - - - - - C2H6 241/114/104 20 1 +0 AEIC19_MONMEAN_C3H8 - - - - - - C3H8 241/114/105 20 1 +0 AEIC19_MONMEAN_CH2O - - - - - - CH2O 241/114/106 20 1 +0 AEIC19_MONMEAN_PRPE - - - - - - PRPE 241/114/107 20 1 +0 AEIC19_MONMEAN_MACR - - - - - - MACR 241/114/108 20 1 +0 AEIC19_MONMEAN_RCHO - - - - - - RCHO 241/114/109 20 1 +)))AEIC2019_MONMEAN #============================================================================== # --- Emissions from decaying plants --- @@ -854,17 +887,37 @@ Warnings: 1 0 QFED_NH3_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NH3 75/312/315/543 8 1 0 QFED_NH3_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NH3 75/312/544 8 1 0 QFED_NH3_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NH3 75/312/544 8 1 -# NO -0 QFED_NO_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_tf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/545 8 1 -0 QFED_NO_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/314/546 8 1 -0 QFED_NO_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/315/547 8 1 -0 QFED_NO_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_sv 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/548 8 1 -0 QFED_NO_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_gl 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/548 8 1 -0 QFED_NO_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_tf 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/545 8 1 -0 QFED_NO_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/314/546 8 1 -0 QFED_NO_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/315/547 8 1 -0 QFED_NO_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_sv 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/548 8 1 -0 QFED_NO_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_gl 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/548 8 1 +# NO/PAN/HNO3 +0 QFED_NO_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_tf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/545/592 8 1 +0 QFED_PAN_TF_SFC - - - - - - PAN 75/311/545/593 8 1 +0 QFED_HNO3_TF_SFC - - - - - - HNO3 75/311/545/594 8 1 +0 QFED_NO_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/314/546/592 8 1 +0 QFED_PAN_TP_SFC - - - - - - PAN 75/311/314/546/593 8 1 +0 QFED_HNO3_TP_SFC - - - - - - HNO3 75/311/314/546/594 8 1 +0 QFED_NO_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/315/547/592 8 1 +0 QFED_PAN_BO_SFC - - - - - - PAN 75/311/315/547/593 8 1 +0 QFED_HNO3_BO_SFC - - - - - - HNO3 75/311/315/547/594 8 1 +0 QFED_NO_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_sv 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/548/592 8 1 +0 QFED_PAN_SV_SFC - - - - - - PAN 75/311/548/593 8 1 +0 QFED_HNO3_SV_SFC - - - - - - HNO3 75/311/548/594 8 1 +0 QFED_NO_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_gl 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/548/592 8 1 +0 QFED_PAN_GL_SFC - - - - - - PAN 75/311/548/593 8 1 +0 QFED_HNO3_GL_SFC - - - - - - HNO3 75/311/548/594 8 1 +0 QFED_NO_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_tf 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/545/592 8 1 +0 QFED_PAN_TF_FT - - - - - - PAN 75/312/545/593 8 1 +0 QFED_HNO3_TF_FT - - - - - - HNO3 75/312/545/594 8 1 +0 QFED_NO_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/314/546/592 8 1 +0 QFED_PAN_TP_FT - - - - - - PAN 75/312/314/546/593 8 1 +0 QFED_HNO3_TP_FT - - - - - - HNO3 75/312/314/546/594 8 1 +0 QFED_NO_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/315/547/592 8 1 +0 QFED_PAN_BO_FT - - - - - - PAN 75/312/315/547/593 8 1 +0 QFED_HNO3_BO_FT - - - - - - HNO3 75/312/315/547/594 8 1 +0 QFED_NO_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_sv 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/548/592 8 1 +0 QFED_PAN_SV_FT - - - - - - PAN 75/312/548/593 8 1 +0 QFED_HNO3_SV_FT - - - - - - HNO3 75/312/548/594 8 1 +0 QFED_NO_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_gl 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/548/592 8 1 +0 QFED_PAN_GL_FT - - - - - - PAN 75/312/548/593 8 1 +0 QFED_HNO3_GL_FT - - - - - - HNO3 75/312/548/594 8 1 # SO2 0 QFED_SO2_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s SO2 75/311/549 8 1 0 QFED_SO2_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s SO2 75/311/314/550 8 1 @@ -1007,36 +1060,36 @@ Warnings: 1 # with a specified MW of 12g/mol. This is the case for OCPI, ISOP and ACET. (((MEGAN (((HEMCO_RESTART -108 T_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 T_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 -108 LAI_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 -108 PARDR_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 -108 PARDF_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 T_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 T_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 LAI_PREVDAY ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +108 PARDR_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 PARDF_DAVG ./Restarts/HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 )))HEMCO_RESTART -108 MEGAN_AEF_ISOP ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_ISOPRENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 -108 MEGAN_AEF_MBOX ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_MBO 1985/1/1/0 C xy kgC/m2/s * - 1 1 -108 MEGAN_AEF_BPIN ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_BETA_PINENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 -108 MEGAN_AEF_CARE ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_CARENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 -108 MEGAN_AEF_LIMO ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_LIMONENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 -108 MEGAN_AEF_OCIM ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_OCIMENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 -108 MEGAN_AEF_SABI ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_SABINENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 -108 CLM4_PFT_BARE ~/data/CLM4_PFT.geos.1x1.nc PFT_BARE 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_NDLF_EVGN_TMPT_TREE ~/data/CLM4_PFT.geos.1x1.nc PFT_NDLF_EVGN_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_NDLF_EVGN_BORL_TREE ~/data/CLM4_PFT.geos.1x1.nc PFT_NDLF_EVGN_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_NDLF_DECD_BORL_TREE ~/data/CLM4_PFT.geos.1x1.nc PFT_NDLF_DECD_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_BDLF_EVGN_TROP_TREE ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_EVGN_TROP_TREE 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_BDLF_EVGN_TMPT_TREE ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_EVGN_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_BDLF_DECD_TROP_TREE ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_TROP_TREE 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_BDLF_DECD_TMPT_TREE ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_BDLF_DECD_BORL_TREE ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_BDLF_EVGN_SHRB ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_EVGN_SHRB 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_BDLF_DECD_TMPT_SHRB ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_TMPT_SHRB 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_BDLF_DECD_BORL_SHRB ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_BORL_SHRB 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_C3_ARCT_GRSS ~/data/CLM4_PFT.geos.1x1.nc PFT_C3_ARCT_GRSS 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_C3_NARC_GRSS ~/data/CLM4_PFT.geos.1x1.nc PFT_C3_NARC_GRSS 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_C4_GRSS ~/data/CLM4_PFT.geos.1x1.nc PFT_C4_GRSS 2000/1/1/0 C xy 1 * - 1 1 -108 CLM4_PFT_CROP ~/data/CLM4_PFT.geos.1x1.nc PFT_CROP 2000/1/1/0 C xy 1 * - 1 1 -108 MEGAN_ORVC ~/data/NVOC.geos.1x1.nc OCPI 1990/1-12/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_ISOP_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_ISOPRENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_MBOX_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_MBO 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_BPIN_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_BETA_PINENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_CARE_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_CARENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_LIMO_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_LIMONENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_OCIM_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_OCIMENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_SABI_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_SABINENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 CLM4_PFT_BARE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BARE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_NDLF_EVGN_TMPT_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_NDLF_EVGN_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_NDLF_EVGN_BORL_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_NDLF_EVGN_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_NDLF_DECD_BORL_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_NDLF_DECD_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_EVGN_TROP_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_EVGN_TROP_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_EVGN_TMPT_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_EVGN_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_TROP_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_TROP_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_TMPT_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_BORL_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_EVGN_SHRB_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_EVGN_SHRB 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_TMPT_SHRB_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_TMPT_SHRB 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_BORL_SHRB_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_BORL_SHRB 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_C3_ARCT_GRSS_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_C3_ARCT_GRSS 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_C3_NARC_GRSS_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_C3_NARC_GRSS 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_C4_GRSS_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_C4_GRSS 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_CROP_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_CROP 2000/1/1/0 C xy 1 * - 1 1 +108 MEGAN_ORVC_GCC ~/data/NVOC.geos.1x1.nc OCPI 1990/1-12/1/0 C xy kgC/m2/s * - 1 1 )))MEGAN #============================================================================== @@ -1307,6 +1360,14 @@ Warnings: 1 * NOAA_GMD_CH4 $ROOT/NOAA_GMD/v2018-01/monthly.gridded.surface.methane.1979-2020.1x1.nc SFC_CH4 1979-2020/1-12/1/0 C xy ppbv * - 1 1 )))GMD_SFC_CH4 +#============================================================================== +# --- GEOS 3-hourly CH4 (within PBL) --- +#============================================================================== +(((GEOS_3HR_CH4 +* GEOS_CH4 /see/extdata CH4_total_dry 1979-2024/1-12/1-31/0 C xyz v/v * - 1 1 +* CH4_OFFSET /see/extdata CH4_offset 2021-2024/1-12/1/0 C xy v/v * - 1 1 +)))GEOS_3HR_CH4 + (((SfcVMR #============================================================================== # --- CMIP6 files --- @@ -1360,6 +1421,18 @@ Warnings: 1 * surf_iodide $ROOT/OCEAN_O3_DRYDEP/v2020-02/Oi_prj_predicted_iodide_0.125x0.125_No_Skagerrak_Just_Ensemble.nc Ensemble_Monthly_mean 1970/1-12/1/0 C xy 1 * - 1 1 )))OCEAN_O3_DRYDEP + +#============================================================================== +# --- Imports for GEOS handled through HEMCO --- +#============================================================================== +# CH4 boundary conditions +(((GEOS_3HR_CH4 +* GEOS_CH4 /see/extdata CH4_total_dry 1979-2024/1-12/1-31/0 C xyz ppbv * - 1 1 +)))GEOS_3HR_CH4 + +# GEOS analysis fields +#* GEOSIT_O3 /see/extdata ozone 1979-2099/1-12/1-31/0 C xyz ppmv * - 1 1 + ### END SECTION BASE EMISSIONS #################################################################################### @@ -1498,23 +1571,64 @@ Warnings: 1 97 NOXtoNO 0.9 - - - xy 1 1 98 NOXtoNO2 0.1 - - - xy 1 1 -# --- AEIC aircraft emissions --- -101 AEICACET 3.69e-3 - - - xy unitless 1 -102 AEICALD2 4.27e-2 - - - xy unitless 1 -103 AEICALK4 2.14e-1 - - - xy unitless 1 -104 AEICC2H6 5.22e-3 - - - xy unitless 1 -105 AEICC3H8 7.81e-4 - - - xy unitless 1 -106 AEICCH2O 1.23e-1 - - - xy unitless 1 -107 AEICPRPE 1.78e-1 - - - xy unitless 1 -108 AEICMACR 5.36e-2 - - - xy unitless 1 -109 AEICRCHO 3.68e-2 - - - xy unitless 1 -110 AEICNOCO 1.00e-3 - - - xy unitless 1 -111 AEICSO2 1.18e-3 - - - xy unitless 1 -112 AEICSO4 3.60e-5 - - - xy unitless 1 -113 AEICBC 3.00e-5 - - - xy unitless 1 -114 AEICHC 1.16e-3 - - - xy unitless 1 +# Conversion factor from NO2 to NO 115 NO2toNO 6.52e-1 - - - xy unitless 1 +# --- AEIC aircraft emissions --- +# See http://geoschemdata.wustl.edu/ExtData/HEMCO/AEIC2019/v2022-03/AEIC_2019_technical_note.pdf +101 AEICACET 3.693477e-3 - - - xy unitless 1 +102 AEICALD2 4.271822e-2 - - - xy unitless 1 +103 AEICALK4 2.137911e-1 - - - xy unitless 1 +104 AEICC2H6 5.214505e-3 - - - xy unitless 1 +105 AEICC3H8 7.808710e-4 - - - xy unitless 1 +106 AEICCH2O 1.230811e-1 - - - xy unitless 1 +107 AEICPRPE 1.780418e-1 - - - xy unitless 1 +108 AEICMACR 5.362609e-2 - - - xy unitless 1 +109 AEICRCHO 3.676944e-2 - - - xy unitless 1 +111 AEICSO2 1.176000e-3 - - - xy unitless 1 +112 AEICSO4 3.600000e-5 - - - xy unitless 1 +113 AEICBC 3.000000e-5 - - - xy unitless 1 +114 AEICHC 1.160000e+0 - - - xy unitless 1 +120 FB2H2O 1.231000e+0 - - - xy unitless 1 + +#------------------------------------------------------------------------------ +# Scaling factors for 1990-2019 derived from Lee et al. (2021). Increase +# from 2018 to 2019 is estimated based on the growth from 2017 to 2018. +# Lee et al. (2021) only covers 1990 to 2018, so to get to 2019 it is +# assumed that the growth from 2017 to 2018 is the same as that from 2018 +# to 2019. So the formula is something like: +# +# Emissions of CO in 2009 = AEIC 2019 emissions of CO +# * (Lee 2017 CO / Lee 2018 fuel burn) +# * (Lee 2009 fuel burn / Lee 2018 fuel burn) +# +# So in this case, we use the Lee 2017/Lee 2018 value to scale AEIC’s +# emissions to the “2018” values, and then scale directly using the Lee et al +# fuel burn. This ensures that, when running with year 2019, you get an +# unadjusted version of the AEIC2019 inventory, and all previous years are +# scaled down. For NOx, the same procedure is applied but with an additional +# factor to account for changes in NOx EI: +# +# Emissions of NOx in 2009 = [ AEIC 2019 emissions of NOx +# * (Lee 2017 CO / Lee 2018 fuel burn) +# * (Lee 2009 fuel burn / Lee 2018 fuel burn) ] +# * [ (Lee 2017 NOx EI / Lee 2018 NOx EI) +# * (Lee 2009 NOx EI / Lee 2018 NOx EI) ] +# +# In this case though the Lee et al 2018 and 2017 NOx EIs are identical. +# All scaling factors are included in here in HEMCO_Config.rc. +#------------------------------------------------------------------------------ +(((AEIC_SCALE_1990_2019 +240 AC_EINOX 0.852/0.852/0.852/0.859/0.866/0.873/0.881/0.888/0.896/0.903/0.911/0.916/0.922/0.927/0.932/0.937/0.950/0.962/0.974/0.987/1.000/1.000/1.000/1.000/1.000/1.000/1.000/1.000/1.000/1.000 - 1990-2019/1/1/0 C xy 1 1 +241 AC_FBMULT 0.506/0.489/0.490/0.493/0.517/0.529/0.553/0.570/0.581/0.600/0.631/0.607/0.608/0.608/0.646/0.678/0.686/0.706/0.703/0.666/0.700/0.721/0.728/0.749/0.773/0.815/0.854/0.905/0.952/1.000 - 1990-2019/1/1/0 C xy 1 1 +)))AEIC_SCALE_1990_2019 + +# If not applying 1990-2019 scale factors, use 1.0 +(((.not.AEIC_SCALE_1990_2019 +240 AC_EINOX 1.000000e+0 - - - xy 1 1 +241 AC_FBMULT 1.000000e+0 - - - xy 1 1 +))).not.AEIC_SCALE_1990_2019 + # --- SNAP scale factors from TNO report --- # Binning: # SNAP categories 1. 5 (power generation, extract/distribution of fossil fuels ) --> ENERGY @@ -1685,6 +1799,13 @@ Warnings: 1 547 QFED2_NO_BO_SCAL 0.57 - - - xy 1 1 548 QFED2_NO_SV_SCAL 0.64 - - - xy 1 1 +# Partition NO emissions into 40%NO, 40%PAN, and 20%HNO3 (on a N basis). +# For PAN: 0.4 * 121.05 / 30.01 = 1.614 +# For HNO3: 0.2 * 63.012 / 30.01 = 0.420 +592 QFED2_NO_SCAL 0.400 - - - xy 1 1 +593 QFED2_NOtoPAN 1.614 - - - xy 1 1 +594 QFED2_NOtoHNO3 0.420 - - - xy 1 1 + #============================================================================== # Scale the CMIP6 values in pptv to ppbv #============================================================================== diff --git a/run/GEOS/HISTORY_CFv2.rc b/run/GEOS/HISTORY_CFv2.rc new file mode 100644 index 000000000..e55ba9b17 --- /dev/null +++ b/run/GEOS/HISTORY_CFv2.rc @@ -0,0 +1,1508 @@ +VERSION: 1 +EXPID: CFv2_spinup_c90 +EXPDSC: c360_spinup_run_for_GEOS-CF_v2 +EXPSRC: GEOSgcm-v10.23.0 + +COLLECTIONS: 'chm_tavg_1hr_g1440x721_v1' +#### For Science, to be shared ### + 'mls_inst_1hr_g1440x721_p39' + 'chm_inst_1hr_g1440x721_v72' + 'met_inst_1hr_g1440x721_v72' + 'chm_inst_3hr_g1440x721_h35' + 'ems_tavg_1hr_g1440x721_x1' + 'geosgcm_ems' + 'gcc_dev' + 'gcc_all_species' + 'xgc_tavg_1hr_g1440x721_x1' + 'met_tavg_1hr_g1440x721_x1' + 'jdi_inst_1hr_glo_C360x360x6_v72' +## +#### To be used as boundary conditions ### +# 'chm_tavg_1hr_g1440x721_v39' +# 'met_tavg_1hr_g1440x721_v39' +# 'xgc_tavg_1hr_g1440x721_v39' +## +#### Monitoring or R&D, not necessarily for public ### +## 'met_inst_1hr_g1440x721_x1' #debatable if we need to output this as I don't think Larry or I used it much the past few years. +# Dry and Wet Dep Fluxes +# 'flx_tavg_6hr_g1440x721_x1' +# New debug collection + 'dbg_tavg_3hr_g1440x721_v72' + 'exp_tavg_1hr_g1440x721_v72' +# 'trc_tavg_3hr_g1440x721_v72' + 'aer_tavg_24hr_g1440x721_x1' + 'aer_tavg_24hr_g1440x721_p23' +# Only need halogen collection during spin-up/between updates + 'hal_tavg_24hr_g1440x721_p44' + 'hal_tavg_24hr_g1440x721_v1' + 'met_tavg_1hr_g1440x721_p40' + 'chm_tavg_1hr_g1440x721_p40' +## +#### New support collections ### + 'sat_inst_1hr_r1440x361_v72' #TEMPO +## 'ste_inst_1hr_r719x281_p6' #ACCLIP +## +## ACT-America, disabled on 2019-08-21 +# 'act_inst_1hr_r481x201_v72' +## Additional GOCART diagnostics +## 'adg_tavg_24hr_g1440x721_x1' + :: + +################################################## +# The GRID_LABELS section must be after the main # +# list of COLLECTIONS for scripting purposes. # +################################################## + +GRID_LABELS: PC360x181-DC + PC180x91-DC + PC576x361-DC + PC1440x721-DC +:: + +PC1440x721-DC.GRID_TYPE: LatLon +PC1440x721-DC.IM_WORLD: 1440 +PC1440x721-DC.JM_WORLD: 721 +PC1440x721-DC.POLE: PC +PC1440x721-DC.DATELINE: DC +PC1440x721-DC.LM: 72 + +PC360x181-DC.GRID_TYPE: LatLon +PC360x181-DC.IM_WORLD: 360 +PC360x181-DC.JM_WORLD: 181 +PC360x181-DC.POLE: PC +PC360x181-DC.DATELINE: DC +PC360x181-DC.LM: 72 + +PC576x361-DC.GRID_TYPE: LatLon +PC576x361-DC.IM_WORLD: 576 +PC576x361-DC.JM_WORLD: 361 +PC576x361-DC.POLE: PC +PC576x361-DC.DATELINE: DC +PC576x361-DC.LM: 72 + +PC180x91-DC.GRID_TYPE: LatLon +PC180x91-DC.IM_WORLD: 180 +PC180x91-DC.JM_WORLD: 91 +PC180x91-DC.POLE: PC +PC180x91-DC.DATELINE: DC +PC180x91-DC.LM: 72 + + gcc_all_species.template: '%y4%m2%d2_%h2%n2z.nc4', + gcc_all_species.archive: '%c/Y%y4', + gcc_all_species.format: 'CFIO', + gcc_all_species.deflate: 1, + gcc_all_species.mode: 'instantaneous' , + gcc_all_species.frequency: 240000, + gcc_all_species.ref_time: 210000, + gcc_all_species.regrid_method: 'BILINEAR', + gcc_all_species.grid_label: PC180x91-DC, + gcc_all_species.levels: 1, + gcc_all_species.fields: 'SpeciesConc_H1301' , 'GEOSCHEMCHEM' , + 'SpeciesConc_H1211' , 'GEOSCHEMCHEM' , + 'SpeciesConc_H2402' , 'GEOSCHEMCHEM' , + 'SpeciesConc_CHCl3' , 'GEOSCHEMCHEM' , + 'SpeciesConc_HOI' , 'GEOSCHEMCHEM' , + 'SpeciesConc_I' , 'GEOSCHEMCHEM' , + 'SpeciesConc_IONO2' , 'GEOSCHEMCHEM' , + 'SpeciesConc_I2' , 'GEOSCHEMCHEM' , + 'SpeciesConc_OIO' , 'GEOSCHEMCHEM' , + 'SpeciesConc_HI' , 'GEOSCHEMCHEM' , + 'SpeciesConc_INO' , 'GEOSCHEMCHEM' , + 'SpeciesConc_IONO' , 'GEOSCHEMCHEM' , + 'SpeciesConc_I2O2' , 'GEOSCHEMCHEM' , + 'SpeciesConc_I2O3' , 'GEOSCHEMCHEM' , + 'SpeciesConc_I2O4' , 'GEOSCHEMCHEM' , + 'SpeciesConc_IBr' , 'GEOSCHEMCHEM' , + 'SpeciesConc_ICl' , 'GEOSCHEMCHEM' , + 'SpeciesConc_OClO' , 'GEOSCHEMCHEM' , + 'SpeciesConc_HNO2' , 'GEOSCHEMCHEM' , + :: + + gcc_dev.template: '%y4%m2%d2_%h2%n2z.nc4', + gcc_dev.archive: '%c/Y%y4', + gcc_dev.format: 'CFIO', + gcc_dev.deflate: 1, + gcc_dev.mode: 'instantaneous' , + gcc_dev.frequency: 030000, + gcc_dev.ref_time: 210000, + gcc_dev.regrid_method: 'BILINEAR', + gcc_dev.grid_label: PC1440x721-DC + gcc_dev.fields: 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , + 'SpeciesConc_NO' , 'GEOSCHEMCHEM' , + 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , + 'GCCTTO3' , 'GEOSCHEMCHEM' , + 'GCCTO3' , 'GEOSCHEMCHEM' , + 'TotCol_NO2' , 'GEOSCHEMCHEM' , + 'PblCol_NO2' , 'GEOSCHEMCHEM' , + 'TropCol_NO2' , 'GEOSCHEMCHEM' , + 'TotCol_SO2' , 'GEOSCHEMCHEM' , + 'PblCol_SO2' , 'GEOSCHEMCHEM' , + 'TropCol_SO2' , 'GEOSCHEMCHEM' , + 'Met_PBLTOPL' , 'GEOSCHEMCHEM' , 'PBLTOPL' , + 'Met_TropLev' , 'GEOSCHEMCHEM' , 'TROPLEV' , + :: + + htf_inst_15mn_g1440x721_x1.format: 'CFIO' , + htf_inst_15mn_g1440x721_x1.descr: '2d,15-minute,Instantaneous,Single-Level, High Temporal Frequency Chemistry and Meteorology Fields', + htf_inst_15mn_g1440x721_x1.template: '%y4%m2%d2_%h2%n2z.nc4', + htf_inst_15mn_g1440x721_x1.archive: '%c/Y%y4', + htf_inst_15mn_g1440x721_x1.mode: 'instantaneous', + htf_inst_15mn_g1440x721_x1.grid_label: PC1440x721-DC + htf_inst_15mn_g1440x721_x1.conservative: 1, + htf_inst_15mn_g1440x721_x1.frequency: 001500 , + htf_inst_15mn_g1440x721_x1.duration: 001500 , + htf_inst_15mn_g1440x721_x1.ref_time: 150000 , + htf_inst_15mn_g1440x721_x1.levels: 72, +# htf_inst_15mn_g1440x721_x1.nbits: 10, + htf_inst_15mn_g1440x721_x1.fields: 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'PM25_RH35' , 'GOCART2G' , 'PM25_RH35_GOCART' , + 'PM25' , 'GEOSCHEMCHEM' , 'PM25_RH35_GCC' , + :: + + mls_inst_1hr_g1440x721_p39.template: '%y4%m2%d2_%h2%n2z.nc4' , + mls_inst_1hr_g1440x721_p39.archive: '%c/Y%y4', + mls_inst_1hr_g1440x721_p39.mode: 'instantaneous' , + mls_inst_1hr_g1440x721_p39.descr: '3d,1-Hourly,Instantaneous,Pressure-Level,Meteorology and Chemistry Fields on MLS pressure levels', + mls_inst_1hr_g1440x721_p39.format: 'CFIO', + mls_inst_1hr_g1440x721_p39.grid_label: PC1440x721-DC + mls_inst_1hr_g1440x721_p39.frequency: 010000 , + mls_inst_1hr_g1440x721_p39.duration: 010000 , + mls_inst_1hr_g1440x721_p39.ref_time: 150000 , +# mls_inst_1hr_g1440x721_p39.end_date: 0000000, +# mls_inst_1hr_g1440x721_p39.end_time: 150000, + mls_inst_1hr_g1440x721_p39.vscale: 100.0 , + mls_inst_1hr_g1440x721_p39.nbits: 10, + mls_inst_1hr_g1440x721_p39.vunit: 'hPa' , + mls_inst_1hr_g1440x721_p39.vvars: 'log(PLE)' , 'DYN' , + mls_inst_1hr_g1440x721_p39.levels: 316.2 261.0 215.4 177.8 146.8 121.2 100 82.5 68.1 56.2 46.4 38.3 31.6 26.1 21.5 17.8 14.7 12.1 10 8.25 6.81 5.62 4.64 3.83 3.16 2.61 2.15 1.78 1.47 1.21 1 0.68 0.46 0.32 0.215 0.147 0.1 0.046 0.0215, + mls_inst_1hr_g1440x721_p39.fields: 'T' , 'DYN' , + 'ZLE' , 'DYN' , 'H' , + 'TROPP_BLENDED' , 'AGCM' , 'TROPPB' , + 'SpeciesConc_H2O' , 'GEOSCHEMCHEM' , 'H2O' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'SpeciesConc_HNO3' , 'GEOSCHEMCHEM' , 'HNO3' , + 'SpeciesConc_N2O' , 'GEOSCHEMCHEM' , 'N2O' , + 'SpeciesConc_HCl' , 'GEOSCHEMCHEM' , 'HCl' , + 'SpeciesConc_ClO' , 'GEOSCHEMCHEM' , 'ClO' , + 'SpeciesConc_CH3CCl3' , 'GEOSCHEMCHEM' , 'CH3CCl3' , + 'SpeciesConc_CH3Cl' , 'GEOSCHEMCHEM' , 'CH3Cl' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_HOCl' , 'GEOSCHEMCHEM' , 'HOCl' , + 'SpeciesConc_HO2*33.0' , 'GEOSCHEMCHEM' , 'HO2_mmr' , + 'SpeciesConc_OH' , 'GEOSCHEMCHEM' , 'OH' , + 'SpeciesConc_ClNO3' , 'GEOSCHEMCHEM' , 'ClONO2' , +## Not in GCC but measured by MLS +## 'HCN' , 'GEOSCHEMCHEM' , 'HCN' , +## 'CH3CN' , 'GEOSCHEMCHEM' , 'CH3CN' , +## 'CH3OH' , 'GEOSCHEMCHEM' , 'CH3OH' , + :: + +###Add to forecast suite, remove end_date and end_time. + chm_inst_1hr_g1440x721_v72.template: '%y4%m2%d2_%h2%n2z.nc4', + chm_inst_1hr_g1440x721_v72.archive: '%c/Y%y4', + chm_inst_1hr_g1440x721_v72.descr: '3d,1-Hourly,Instantaneous,Model-Level,Chemistry Fields', + chm_inst_1hr_g1440x721_v72.format: 'CFIO', +# chm_inst_1hr_g1440x721_v72.format: 'CFIO', + chm_inst_1hr_g1440x721_v72.mode: 'instantaneous', + chm_inst_1hr_g1440x721_v72.frequency: 010000, + chm_inst_1hr_g1440x721_v72.duration: 010000, + chm_inst_1hr_g1440x721_v72.ref_time: 150000, +# chm_inst_1hr_g1440x721_v72.end_date: 20170202, +# chm_inst_1hr_g1440x721_v72.end_time: 210000, + chm_inst_1hr_g1440x721_v72.nbits: 10, + chm_inst_1hr_g1440x721_v72.grid_label: PC1440x721-DC + chm_inst_1hr_g1440x721_v72.fields: 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_NO' , 'GEOSCHEMCHEM' , 'NO' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'SpeciesConc_CH2O' , 'GEOSCHEMCHEM' , 'HCHO' , + 'SpeciesConc_BrO' , 'GEOSCHEMCHEM' , 'BrO' , + 'SpeciesConc_GLYX' , 'GEOSCHEMCHEM' , 'GLYX' , + 'SpeciesConc_CH4' , 'GEOSCHEMCHEM' , 'CH4' , + 'PM25' , 'GEOSCHEMCHEM' , 'PM25_RH35_GCC' , + 'SpeciesConc_OH' , 'GEOSCHEMCHEM' , 'OH' , +# 'SpeciesConc_OH*17.0' , 'GEOSCHEMCHEM' , 'OH_mmr' , + 'NOxTau' , 'GEOSCHEMCHEM' , + 'AIRDENS' , 'CHEMENV' , +#Question if calculated internally correctly 'GCC_AIRVOL' , 'GEOSCHEMCHEM' , 'AIRVOL_CHEM' , +### if we remove chm _p23 we may want to add the following on model levels: + 'NOy' , 'GEOSCHEMCHEM' , 'NOy' , + 'PM25ni' , 'GEOSCHEMCHEM' , 'PM25ni_RH35_GCC' , + 'PM25su' , 'GEOSCHEMCHEM' , 'PM25su_RH35_GCC' , + 'PM25ss' , 'GEOSCHEMCHEM' , 'PM25ss_RH35_GCC' , + 'PM25du' , 'GEOSCHEMCHEM' , 'PM25du_RH35_GCC' , + 'PM25bc' , 'GEOSCHEMCHEM' , 'PM25bc_RH35_GCC' , + 'PM25oc' , 'GEOSCHEMCHEM' , 'PM25oc_RH35_GCC' , + 'PM25soa' , 'GEOSCHEMCHEM' , 'PM25soa_RH35_GCC' , + :: + +###If removing met _p23, add this to forecast suite. + met_inst_1hr_g1440x721_v72.template: '%y4%m2%d2_%h2%n2z.nc4', + met_inst_1hr_g1440x721_v72.archive: '%c/Y%y4', + met_inst_1hr_g1440x721_v72.descr: '3d,1-Hourly,Instantaneous,Model-Level,Meteorology Fields', + met_inst_1hr_g1440x721_v72.format: 'CFIO', + met_inst_1hr_g1440x721_v72.mode: 'instantaneous', + met_inst_1hr_g1440x721_v72.frequency: 010000, + met_inst_1hr_g1440x721_v72.duration: 010000, + met_inst_1hr_g1440x721_v72.ref_time: 150000, +# met_inst_1hr_g1440x721_v72.end_date: 20170202, +# met_inst_1hr_g1440x721_v72.end_time: 210000, + met_inst_1hr_g1440x721_v72.nbits: 10, + met_inst_1hr_g1440x721_v72.grid_label: PC1440x721-DC + met_inst_1hr_g1440x721_v72.fields: 'Q' , 'MOIST' , + 'U' , 'DYN' , + 'V' , 'DYN' , + 'DELP' , 'DYN' , + 'PS' , 'DYN' , + 'ZL' , 'DYN' , + 'T' , 'DYN' , + 'TH' , 'DYN' , + 'PHIS' , 'AGCM' , + 'QCTOT' , 'AGCM' , +###If removing met _p23 may want to consider adding these fields here: + 'OMEGA' , 'DYN' , + 'RH2' , 'MOIST' , 'RH' , + 'EPV' , 'DYN' , +# 'TH*EXP((2.5e+6)*(Q/(1-Q))/(1004.0*T))' , 'DYN' , 'ETH' , + :: + + chm_inst_3hr_g1440x721_h35.template: '%y4%m2%d2_%h2%n2z.nc4' , + chm_inst_3hr_g1440x721_h35.archive: '%c/Y%y4' , + chm_inst_3hr_g1440x721_h35.descr: '3d,3-Hourly,Instantaneous,Theta-Level,Chemistry and Meteorology Fields' , + chm_inst_3hr_g1440x721_h35.format: 'CFIO' , + chm_inst_3hr_g1440x721_h35.mode: 'instantaneous' , + chm_inst_3hr_g1440x721_h35.nbits: 10 , + chm_inst_3hr_g1440x721_h35.frequency: 030000 , + chm_inst_3hr_g1440x721_h35.duration: 030000 , + chm_inst_3hr_g1440x721_h35.ref_time: 150000 , + chm_inst_3hr_g1440x721_h35.end_date: 20170202, + chm_inst_3hr_g1440x721_h35.end_time: 210000, + chm_inst_3hr_g1440x721_h35.grid_label: PC1440x721-DC + chm_inst_3hr_g1440x721_h35.vunit: 'K' , + chm_inst_3hr_g1440x721_h35.vvars: 'TH' , 'DYN' , + chm_inst_3hr_g1440x721_h35.levels: 270 280 290 300 310 320 330 340 350 360 380 400 450 500 550 600 650 700 750 800 850 900 950 1000 1100 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000, + chm_inst_3hr_g1440x721_h35.fields: 'TROPP_BLENDED' , 'AGCM' , 'TROPPB' , + 'T' , 'DYN' , + 'Q' , 'MOIST' , + 'EPV' , 'DYN' , + 'ZLE' , 'DYN' , + 'PLE' , 'DYN' , + 'COSZ' , 'SOLAR' , + 'NOy' , 'GEOSCHEMCHEM' , 'NOy' , + 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_NO' , 'GEOSCHEMCHEM' , 'NO' , + 'SpeciesConc_N2O' , 'GEOSCHEMCHEM' , 'N2O' , + 'SpeciesConc_N2O5' , 'GEOSCHEMCHEM' , 'N2O5' , + 'SpeciesConc_HNO3' , 'GEOSCHEMCHEM' , 'HNO3' , + 'SpeciesConc_CH4' , 'GEOSCHEMCHEM' , 'CH4' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_O' , 'GEOSCHEMCHEM' , 'O' , + 'SpeciesConc_O1D' , 'GEOSCHEMCHEM' , 'O1D' , +# 'TRC_O3' , 'GEOSCHEMCHEM' , 'O3_mmr' , + 'SpeciesConc_H2O' , 'GEOSCHEMCHEM' , 'H2O' , + 'SpeciesConc_OH' , 'GEOSCHEMCHEM' , 'OH' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_DMS' , 'GEOSCHEMCHEM' , 'DMS' , + 'SpeciesConc_OCS' , 'GEOSCHEMCHEM' , 'OCS' , + 'SpeciesConc_C2H6' , 'GEOSCHEMCHEM' , 'C2H6' , + 'SpeciesConc_C3H8' , 'GEOSCHEMCHEM' , 'C3H8' , + 'SpeciesConc_CH2O' , 'GEOSCHEMCHEM' , 'HCHO' , + 'SpeciesConc_HOCl' , 'GEOSCHEMCHEM' , 'HOCl' , + 'SpeciesConc_HO2' , 'GEOSCHEMCHEM' , 'HO2' , + 'SpeciesConc_HCl' , 'GEOSCHEMCHEM' , 'HCl' , + 'SpeciesConc_ClO' , 'GEOSCHEMCHEM' , 'ClO' , + 'SpeciesConc_Cl2O2' , 'GEOSCHEMCHEM' , 'Cl2O2' , + 'SpeciesConc_ClNO3' , 'GEOSCHEMCHEM' , 'ClONO2' , + 'SpeciesConc_Br' , 'GEOSCHEMCHEM' , 'Br' , + 'SpeciesConc_BrCl' , 'GEOSCHEMCHEM' , 'BrCl' , + 'SpeciesConc_BrO' , 'GEOSCHEMCHEM' , 'BrO' , + 'Bry' , 'GEOSCHEMCHEM' , 'Bry' , + 'SpeciesConc_BrNO3' , 'GEOSCHEMCHEM' , 'BrNO3' , + 'SpeciesConc_CH3Br' , 'GEOSCHEMCHEM' , 'CH3Br' , + 'SpeciesConc_CH2Br2' , 'GEOSCHEMCHEM' , 'CH2Br2' , + 'SpeciesConc_CHBr3' , 'GEOSCHEMCHEM' , 'CHBr3' , + 'SpeciesConc_H1301' , 'GEOSCHEMCHEM' , 'H1301' , + 'SpeciesConc_H1211' , 'GEOSCHEMCHEM' , 'H1211' , + 'SpeciesConc_H2402' , 'GEOSCHEMCHEM' , 'H2402' , + 'SpeciesConc_CH3Br + SpeciesConc_H1301 + SpeciesConc_H1211 + 2*SpeciesConc_H2402 + 3*SpeciesConc_CHBr3 + 2*SpeciesConc_CH2Br2' , 'GEOSCHEMCHEM' , 'Organic_Bromine' , + 'SpeciesConc_Cl' , 'GEOSCHEMCHEM' , 'Cl' , + 'SpeciesConc_Cl2' , 'GEOSCHEMCHEM' , 'Cl2' , + 'SpeciesConc_CH3CCl3' , 'GEOSCHEMCHEM' , 'CH3CCl3' , + 'SpeciesConc_CH3Cl' , 'GEOSCHEMCHEM' , 'CH3Cl' , + 'SpeciesConc_CFC11' , 'GEOSCHEMCHEM' , 'CFC11' , + 'Cly' , 'GEOSCHEMCHEM' , 'Cly' , + 'OrganicCl' , 'GEOSCHEMCHEM' , 'Organic_Chlorine' , +# + 'AerSurfAreaDust' , 'GEOSCHEMCHEM' , 'SfcAreaDust' , + 'AerSurfAreaStratLiquid' , 'GEOSCHEMCHEM' , + 'AerSurfAreaPolarStratCloud' , 'GEOSCHEMCHEM' , + 'AerNumDensityStratLiquid' , 'GEOSCHEMCHEM' , + 'AerNumDensityStratParticulate' , 'GEOSCHEMCHEM' , + :: + + aqc_tavg_1hr_g1440x721_v1.template: '%y4%m2%d2_%h2%n2z.nc4', + aqc_tavg_1hr_g1440x721_v1.archive: '%c/Y%y4', + aqc_tavg_1hr_g1440x721_v1.descr: '2d,1-Hourly,Time-Averaged,Surface-Layer,Air Quality Concentrations', + aqc_tavg_1hr_g1440x721_v1.format: 'CFIO', + aqc_tavg_1hr_g1440x721_v1.mode: 'time-averaged', + aqc_tavg_1hr_g1440x721_v1.frequency: 010000, + aqc_tavg_1hr_g1440x721_v1.duration: 010000, + aqc_tavg_1hr_g1440x721_v1.ref_time: 150000, + aqc_tavg_1hr_g1440x721_v1.nbits: 10, + aqc_tavg_1hr_g1440x721_v1.grid_label: PC1440x721-DC + aqc_tavg_1hr_g1440x721_v1.levels: 72, + aqc_tavg_1hr_g1440x721_v1.fields: 'PM25' , 'GEOSCHEMCHEM' , 'PM25_RH35_GCC' , + 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + :: + + chm_tavg_1hr_g1440x721_p40.template: '%y4%m2%d2_%h2%n2z.nc4', + chm_tavg_1hr_g1440x721_p40.archive: '%c/Y%y4', + chm_tavg_1hr_g1440x721_p40.mode: 'time-averaged', + chm_tavg_1hr_g1440x721_p40.descr: '3d,1-Hourly,Time-Averaged,Pressure-Level,Chemistry Fields', + chm_tavg_1hr_g1440x721_p40.format: 'CFIO', + chm_tavg_1hr_g1440x721_p40.grid_label: PC1440x721-DC + chm_tavg_1hr_g1440x721_p40.frequency: 010000, + chm_tavg_1hr_g1440x721_p40.duration: 010000, + chm_tavg_1hr_g1440x721_p40.ref_time: 150000, + chm_tavg_1hr_g1440x721_p40.vscale: 100.0 , + chm_tavg_1hr_g1440x721_p40.nbits: 10, + chm_tavg_1hr_g1440x721_p40.vunit: 'hPa' , + chm_tavg_1hr_g1440x721_p40.vvars: 'log(PLE)' , 'DYN' , + chm_tavg_1hr_g1440x721_p40.levels: 1000 975 950 925 900 850 800 750 700 650 600 550 500 450 400 350 316 261 215 178 147 121 100 83 68 56 50 46 38 31 26 22 18 15 12 10 8 5 2 1 + chm_tavg_1hr_g1440x721_p40.fields: 'PM25' , 'GEOSCHEMCHEM' , 'PM25_RH35_GCC' , + 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'SpeciesConc_NO2 + SpeciesConc_NO' , 'GEOSCHEMCHEM' , 'NOx' , + :: + + met_tavg_1hr_g1440x721_p40.template: '%y4%m2%d2_%h2%n2z.nc4', + met_tavg_1hr_g1440x721_p40.archive: '%c/Y%y4', + met_tavg_1hr_g1440x721_p40.mode: 'time-averaged', + met_tavg_1hr_g1440x721_p40.descr: '3d,1-Hourly,Time-Averaged,Pressure-Level,Meteorological Fields', + met_tavg_1hr_g1440x721_p40.format: 'CFIO', + met_tavg_1hr_g1440x721_p40.grid_label: PC1440x721-DC + met_tavg_1hr_g1440x721_p40.frequency: 010000, + met_tavg_1hr_g1440x721_p40.duration: 010000, + met_tavg_1hr_g1440x721_p40.ref_time: 150000, + met_tavg_1hr_g1440x721_p40.vscale: 100.0 , + met_tavg_1hr_g1440x721_p40.nbits: 10, + met_tavg_1hr_g1440x721_p40.vunit: 'hPa' , + met_tavg_1hr_g1440x721_p40.vvars: 'log(PLE)' , 'DYN' , + met_tavg_1hr_g1440x721_p40.levels: 1000 975 950 925 900 850 800 750 700 650 600 550 500 450 400 350 316 261 215 178 147 121 100 83 68 56 50 46 38 31 26 22 18 15 12 10 8 5 2 1 + met_tavg_1hr_g1440x721_p40.fields: 'U' , 'DYN' , + 'V' , 'DYN' , + 'T' , 'DYN' , + 'Q' , 'MOIST' , + :: + + chm_tavg_1hr_g1440x721_v1.template: '%y4%m2%d2_%h2%n2z.nc4', + chm_tavg_1hr_g1440x721_v1.archive: '%c/Y%y4', + chm_tavg_1hr_g1440x721_v1.descr: '2d,1-Hourly,Time-Averaged,Surface-Layer,Chemistry Fields', + chm_tavg_1hr_g1440x721_v1.format: 'CFIO', + chm_tavg_1hr_g1440x721_v1.mode: 'time-averaged', + chm_tavg_1hr_g1440x721_v1.frequency: 010000, + chm_tavg_1hr_g1440x721_v1.duration: 010000, + chm_tavg_1hr_g1440x721_v1.ref_time: 150000, + chm_tavg_1hr_g1440x721_v1.nbits: 10, + chm_tavg_1hr_g1440x721_v1.grid_label: PC1440x721-DC + chm_tavg_1hr_g1440x721_v1.levels: 72, + chm_tavg_1hr_g1440x721_v1.fields: 'NOy' , 'GEOSCHEMCHEM' , 'NOy' , + 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_NO' , 'GEOSCHEMCHEM' , 'NO' , + 'SpeciesConc_HNO3' , 'GEOSCHEMCHEM' , 'HNO3' , + 'SpeciesConc_HNO4' , 'GEOSCHEMCHEM' , 'HNO4' , + 'SpeciesConc_N2O5' , 'GEOSCHEMCHEM' , 'N2O5' , + 'SpeciesConc_NH3' , 'GEOSCHEMCHEM' , 'NH3' , + 'SpeciesConc_NH4' , 'GEOSCHEMCHEM' , 'NH4' , + 'SpeciesConc_NIT' , 'GEOSCHEMCHEM' , 'NIT' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'SpeciesConc_PAN' , 'GEOSCHEMCHEM' , 'PAN' , + 'SpeciesConc_MEK' , 'GEOSCHEMCHEM' , 'MEK' , + 'SpeciesConc_MVK' , 'GEOSCHEMCHEM' , 'MVK' , + 'SpeciesConc_CH4' , 'GEOSCHEMCHEM' , 'CH4' , + 'SpeciesConc_C2H6' , 'GEOSCHEMCHEM' , 'C2H6' , + 'SpeciesConc_C3H8' , 'GEOSCHEMCHEM' , 'C3H8' , + 'SpeciesConc_CH2O' , 'GEOSCHEMCHEM' , 'HCHO' , + 'SpeciesConc_ALD2' , 'GEOSCHEMCHEM' , 'ALD2' , + 'SpeciesConc_ALK4' , 'GEOSCHEMCHEM' , 'ALK4' , + 'SpeciesConc_ISOP' , 'GEOSCHEMCHEM' , 'ISOP' , + 'SpeciesConc_SOAS' , 'GEOSCHEMCHEM' , 'SOAS' , + 'SpeciesConc_SOAP' , 'GEOSCHEMCHEM' , 'SOAP' , + 'SpeciesConc_ACET' , 'GEOSCHEMCHEM' , 'ACET' , + 'SpeciesConc_RCHO' , 'GEOSCHEMCHEM' , 'RCHO' , + 'SpeciesConc_H2O2' , 'GEOSCHEMCHEM' , 'H2O2' , + 'SpeciesConc_PRPE' , 'GEOSCHEMCHEM' , 'PRPE' , + 'SpeciesConc_MACR' , 'GEOSCHEMCHEM' , 'MACR' , + 'SpeciesConc_BENZ' , 'GEOSCHEMCHEM' , 'BENZ' , + 'SpeciesConc_TOLU' , 'GEOSCHEMCHEM' , 'TOLU' , + 'SpeciesConc_XYLE' , 'GEOSCHEMCHEM' , 'XYLE' , + 'SpeciesConc_EOH' , 'GEOSCHEMCHEM' , 'EOH' , + 'SpeciesConc_OCPI' , 'GEOSCHEMCHEM' , 'OCPI' , + 'SpeciesConc_OCPO' , 'GEOSCHEMCHEM' , 'OCPO' , + 'SpeciesConc_BCPI' , 'GEOSCHEMCHEM' , 'BCPI' , + 'SpeciesConc_BCPO' , 'GEOSCHEMCHEM' , 'BCPO' , + 'SpeciesConc_DST1' , 'GEOSCHEMCHEM' , 'DST1' , + 'SpeciesConc_DST2' , 'GEOSCHEMCHEM' , 'DST2' , + 'SpeciesConc_DST3' , 'GEOSCHEMCHEM' , 'DST3' , + 'SpeciesConc_DST4' , 'GEOSCHEMCHEM' , 'DST4' , + 'SpeciesConc_SALA' , 'GEOSCHEMCHEM' , 'SALA' , + 'SpeciesConc_SALC' , 'GEOSCHEMCHEM' , 'SALC' , + 'PM25' , 'GEOSCHEMCHEM' , 'PM25_RH35_GCC' , + 'PM25ni' , 'GEOSCHEMCHEM' , 'PM25ni_RH35_GCC' , + 'PM25su' , 'GEOSCHEMCHEM' , 'PM25su_RH35_GCC' , + 'PM25ss' , 'GEOSCHEMCHEM' , 'PM25ss_RH35_GCC' , + 'PM25du' , 'GEOSCHEMCHEM' , 'PM25du_RH35_GCC' , + 'PM25bc' , 'GEOSCHEMCHEM' , 'PM25bc_RH35_GCC' , + 'PM25oc' , 'GEOSCHEMCHEM' , 'PM25oc_RH35_GCC' , + 'PM25soa' , 'GEOSCHEMCHEM' , 'PM25soa_RH35_GCC' , + 'PM25_RH35' , 'GOCART2G' , 'PM25_RH35_GOCART' , + :: + +###Updated for CEDS + ems_tavg_1hr_g1440x721_x1.template: '%y4%m2%d2_%h2%n2z.nc4', + ems_tavg_1hr_g1440x721_x1.archive: '%c/Y%y4', + ems_tavg_1hr_g1440x721_x1.descr: '2d,1-Hourly,Time-Averaged,Model-Level,Emission Fields', + ems_tavg_1hr_g1440x721_x1.format: 'CFIO', + ems_tavg_1hr_g1440x721_x1.mode: 'time-averaged', + ems_tavg_1hr_g1440x721_x1.frequency: 010000, + ems_tavg_1hr_g1440x721_x1.duration: 010000, + ems_tavg_1hr_g1440x721_x1.ref_time: 150000, + ems_tavg_1hr_g1440x721_x1.nbits: 10, + ems_tavg_1hr_g1440x721_x1.levels: 72, + ems_tavg_1hr_g1440x721_x1.grid_label: PC1440x721-DC + ems_tavg_1hr_g1440x721_x1.fields: 'EMIS_NO' , 'GEOSCHEMCHEM' , + 'EMIS_NO_IND+EMIS_NO_POW+EMIS_NO_TRA+EMIS_NO_RES+EMIS_NO_WST' , 'GEOSCHEMCHEM' , 'EMIS_NO_ANTH' , + 'EMIS_NO_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_NO_BB' , 'GEOSCHEMCHEM' , + 'EMIS_NO_LGHT' , 'GEOSCHEMCHEM' , + 'EMIS_NO_SOIL' , 'GEOSCHEMCHEM' , + 'EMIS_NO2' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_IND+EMIS_NO2_POW+EMIS_NO2_TRA+EMIS_NO2_RES+EMIS_NO2_WST' , 'GEOSCHEMCHEM' , 'EMIS_NO2_ANTH' , + 'EMIS_NO2_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_BB' , 'GEOSCHEMCHEM' , + 'EMIS_CO' , 'GEOSCHEMCHEM' , + 'EMIS_CO_IND+EMIS_CO_POW+EMIS_CO_TRA+EMIS_CO_RES+EMIS_CO_WST' , 'GEOSCHEMCHEM' , 'EMIS_CO_ANTH' , + 'EMIS_CO_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_CO_BB' , 'GEOSCHEMCHEM' , +# this is not emitted anymore +## 'EMIS_CO_BG' , 'GEOSCHEMCHEM' , + 'EMIS_NH3' , 'GEOSCHEMCHEM' , + 'EMIS_NH3_IND+EMIS_NH3_POW+EMIS_NH3_TRA+EMIS_NH3_RES+EMIS_NH3_WST' , 'GEOSCHEMCHEM' , 'EMIS_NH3_ANTH' , + 'EMIS_NH3_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_NH3_BB' , 'GEOSCHEMCHEM' , + 'EMIS_SO2' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_IND+EMIS_SO2_POW+EMIS_SO2_TRA+EMIS_SO2_RES' , 'GEOSCHEMCHEM' , 'EMIS_SO2_ANTH' , + 'EMIS_SO2_BB' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_VER+EMIS_SO2_VDG' , 'GEOSCHEMCHEM' , 'EMIS_SO2_VOLC' , + 'EMIS_SO4' , 'GEOSCHEMCHEM' , + 'EMIS_SO4_IND+EMIS_SO4_POW+EMIS_SO4_TRA+EMIS_SO4_RES' , 'GEOSCHEMCHEM' , 'EMIS_SO4_ANTH' , + 'EMIS_SO4_BB' , 'GEOSCHEMCHEM' , + 'EMIS_SO4_VER+EMIS_SO4_VDG' , 'GEOSCHEMCHEM' , 'EMIS_SO4_VOLC' , + 'EMIS_OCPI' , 'GEOSCHEMCHEM' , + 'EMIS_OCPI_IND+EMIS_OCPI_POW+EMIS_OCPI_TRA+EMIS_OCPI_RES' , 'GEOSCHEMCHEM' , 'EMIS_OCPI_ANTH' , + 'EMIS_OCPI_BB' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO_IND+EMIS_OCPO_POW+EMIS_OCPO_TRA+EMIS_OCPO_RES' , 'GEOSCHEMCHEM' , 'EMIS_OCPO_ANTH' , + 'EMIS_OCPO_BB' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI_IND+EMIS_BCPI_POW+EMIS_BCPI_TRA+EMIS_BCPI_RES' , 'GEOSCHEMCHEM' , 'EMIS_BCPI_ANTH' , + 'EMIS_BCPI_BB' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO_IND+EMIS_BCPO_POW+EMIS_BCPO_TRA+EMIS_BCPO_RES' , 'GEOSCHEMCHEM' , 'EMIS_BCPO_ANTH' , + 'EMIS_BCPO_BB' , 'GEOSCHEMCHEM' , + 'EMIS_ISOP' , 'GEOSCHEMCHEM' , + 'EMIS_ACET' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_IND+EMIS_ACET_POW+EMIS_ACET_TRA+EMIS_ACET_RES' , 'GEOSCHEMCHEM' , 'EMIS_ACET_ANTH' , + 'EMIS_ACET_BB' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_OC' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_BG' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_IND+EMIS_PRPE_POW+EMIS_PRPE_TRA+EMIS_PRPE_RES' , 'GEOSCHEMCHEM' , 'EMIS_PRPE_ANTH' , + 'EMIS_PRPE_BB' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_BG' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4_IND+EMIS_ALK4_POW+EMIS_ALK4_TRA+EMIS_ALK4_RES' , 'GEOSCHEMCHEM' , 'EMIS_ALK4_ANTH' , + 'EMIS_ALK4_BB' , 'GEOSCHEMCHEM' , + 'EMIS_MEK' , 'GEOSCHEMCHEM' , + 'EMIS_MEK_IND+EMIS_MEK_POW+EMIS_MEK_TRA+EMIS_MEK_RES' , 'GEOSCHEMCHEM' , 'EMIS_MEK_ANTH' , + 'EMIS_MEK_BB' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_IND+EMIS_ALD2_POW+EMIS_ALD2_TRA+EMIS_ALD2_RES' , 'GEOSCHEMCHEM' , 'EMIS_ALD2_ANTH' , + 'EMIS_ALD2_BB' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_BG' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_OC' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8_IND+EMIS_C3H8_POW+EMIS_C3H8_TRA+EMIS_C3H8_RES' , 'GEOSCHEMCHEM' , 'EMIS_C3H8_ANTH' , + 'EMIS_C3H8_BB' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6_IND+EMIS_C2H6_POW+EMIS_C2H6_TRA+EMIS_C2H6_RES' , 'GEOSCHEMCHEM' , 'EMIS_C2H6_ANTH' , + 'EMIS_C2H6_BB' , 'GEOSCHEMCHEM' , + 'EMIS_CH2O' , 'GEOSCHEMCHEM' , 'EMIS_HCHO' , + 'EMIS_CH2O_IND+EMIS_CH2O_POW+EMIS_CH2O_TRA+EMIS_CH2O_RES' , 'GEOSCHEMCHEM' , 'EMIS_HCHO_ANTH' , + 'EMIS_CH2O_BB' , 'GEOSCHEMCHEM' , 'EMIS_HCHO_BB' , + 'EMIS_BENZ' , 'GEOSCHEMCHEM' , + 'EMIS_TOLU' , 'GEOSCHEMCHEM' , + 'EMIS_XYLE' , 'GEOSCHEMCHEM' , + 'EMIS_EOH' , 'GEOSCHEMCHEM' , + 'EMIS_EOH_IND+EMIS_EOH_POW+EMIS_EOH_TRA+EMIS_EOH_RES' , 'GEOSCHEMCHEM' , 'EMIS_EOH_ANTH' , + 'EMIS_EOH_BG' , 'GEOSCHEMCHEM' , + 'EMIS_HCOOH' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP_BG' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP_IND+EMIS_SOAP_POW+EMIS_SOAP_TRA+EMIS_SOAP_RES' , 'GEOSCHEMCHEM' , 'EMIS_SOAP_ANTH' , + 'EMIS_SOAS' , 'GEOSCHEMCHEM' , + 'EMIS_SOAS_BG' , 'GEOSCHEMCHEM' , + 'EMIS_SALA' , 'GEOSCHEMCHEM' , + 'EMIS_SALC' , 'GEOSCHEMCHEM' , + 'EMIS_DST1' , 'GEOSCHEMCHEM' , + 'EMIS_DST2' , 'GEOSCHEMCHEM' , + 'EMIS_DST3' , 'GEOSCHEMCHEM' , + 'EMIS_DST4' , 'GEOSCHEMCHEM' , + 'EMIS_DMS' , 'GEOSCHEMCHEM' , + 'EMIS_HOI' , 'GEOSCHEMCHEM' , + 'EMIS_I2' , 'GEOSCHEMCHEM' , + 'EMIS_CH3I' , 'GEOSCHEMCHEM' , + 'EMIS_CH2I2' , 'GEOSCHEMCHEM' , + 'EMIS_CH2ICl' , 'GEOSCHEMCHEM' , + 'EMIS_CH2IBr' , 'GEOSCHEMCHEM' , + 'EMIS_CHBr3' , 'GEOSCHEMCHEM' , + 'EMIS_CH2Br2' , 'GEOSCHEMCHEM' , + 'EMIS_pFe' , 'GEOSCHEMCHEM' , + 'EMIS_LIMO_BG' , 'GEOSCHEMCHEM' , + 'EMIS_SESQ_BG' , 'GEOSCHEMCHEM' , + 'EMIS_MTPA_BG' , 'GEOSCHEMCHEM' , + 'EMIS_MTPO_BG' , 'GEOSCHEMCHEM' , + 'LFR_GCC' , 'MOIST' , + 'LFR' , 'CHEMENV' , + :: + + geosgcm_ems.template: '%y4%m2%d2_%h2%n2z.nc4', + geosgcm_ems.archive: '%c/Y%y4', + geosgcm_ems.format: 'CFIO', + geosgcm_ems.mode: 'time-averaged' , + geosgcm_ems.frequency: 240000, + geosgcm_ems.ref_time: 150000, + geosgcm_ems.grid_label: PC1440x721-DC + geosgcm_ems.fields: 'EMIS_NO' , 'GEOSCHEMCHEM' , + 'EMIS_NO_BB' , 'GEOSCHEMCHEM' , + 'EMIS_NO_IND' , 'GEOSCHEMCHEM' , + 'EMIS_NO_POW' , 'GEOSCHEMCHEM' , + 'EMIS_NO_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_NO_RES' , 'GEOSCHEMCHEM' , + 'EMIS_NO_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_NO_WST' , 'GEOSCHEMCHEM' , + 'EMIS_NO_SOIL' , 'GEOSCHEMCHEM' , + 'EMIS_NO_SHIP' , 'GEOSCHEMCHEM' , + 'EMIS_NO_LGHT' , 'GEOSCHEMCHEM' , + 'EMIS_NO2' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_IND' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_POW' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_RES' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_WST' , 'GEOSCHEMCHEM' , + 'EMIS_CO' , 'GEOSCHEMCHEM' , + 'EMIS_CO_BB' , 'GEOSCHEMCHEM' , + 'EMIS_CO_BG' , 'GEOSCHEMCHEM' , + 'EMIS_CO_IND' , 'GEOSCHEMCHEM' , + 'EMIS_CO_POW' , 'GEOSCHEMCHEM' , + 'EMIS_CO_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_CO_RES' , 'GEOSCHEMCHEM' , + 'EMIS_CO_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_CO_WST' , 'GEOSCHEMCHEM' , + 'EMIS_CO_SHIP' , 'GEOSCHEMCHEM' , + 'EMIS_SO2' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_IND' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_POW' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_RES' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_WST' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_SHIP' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_BB' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_VER' , 'GEOSCHEMCHEM' , + 'EMIS_SO2_VDG' , 'GEOSCHEMCHEM' , + 'EMIS_SO4' , 'GEOSCHEMCHEM' , + 'EMIS_SO4_SHIP' , 'GEOSCHEMCHEM' , + 'EMIS_SO4_BB' , 'GEOSCHEMCHEM' , + 'EMIS_NH3' , 'GEOSCHEMCHEM' , + 'EMIS_NH3_IND' , 'GEOSCHEMCHEM' , + 'EMIS_NH3_POW' , 'GEOSCHEMCHEM' , + 'EMIS_NH3_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_NH3_RES' , 'GEOSCHEMCHEM' , + 'EMIS_NH3_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_NH3_WST' , 'GEOSCHEMCHEM' , + 'EMIS_NH3_BB' , 'GEOSCHEMCHEM' , + 'EMIS_OCPI' , 'GEOSCHEMCHEM' , + 'EMIS_OCPI_IND' , 'GEOSCHEMCHEM' , + 'EMIS_OCPI_POW' , 'GEOSCHEMCHEM' , + 'EMIS_OCPI_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_OCPI_RES' , 'GEOSCHEMCHEM' , + 'EMIS_OCPI_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_OCPI_WST' , 'GEOSCHEMCHEM' , + 'EMIS_OCPI_BB' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO_IND' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO_POW' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO_RES' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO_WST' , 'GEOSCHEMCHEM' , + 'EMIS_OCPO_BB' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI_IND' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI_POW' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI_RES' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI_WST' , 'GEOSCHEMCHEM' , + 'EMIS_BCPI_BB' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO_IND' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO_POW' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO_RES' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO_WST' , 'GEOSCHEMCHEM' , + 'EMIS_BCPO_BB' , 'GEOSCHEMCHEM' , + 'EMIS_ISOP' , 'GEOSCHEMCHEM' , + 'EMIS_ACET' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_IND' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_POW' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_RES' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_WST' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_BB' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_OC' , 'GEOSCHEMCHEM' , + 'EMIS_ACET_BG' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_IND' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_POW' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_RES' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_WST' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_BB' , 'GEOSCHEMCHEM' , + 'EMIS_PRPE_BG' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4_IND' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4_POW' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4_RES' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4_WST' , 'GEOSCHEMCHEM' , + 'EMIS_ALK4_BB' , 'GEOSCHEMCHEM' , + 'EMIS_MEK' , 'GEOSCHEMCHEM' , + 'EMIS_MEK_IND' , 'GEOSCHEMCHEM' , + 'EMIS_MEK_POW' , 'GEOSCHEMCHEM' , + 'EMIS_MEK_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_MEK_RES' , 'GEOSCHEMCHEM' , + 'EMIS_MEK_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_MEK_WST' , 'GEOSCHEMCHEM' , + 'EMIS_MEK_BB' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_IND' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_POW' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_RES' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_WST' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_BB' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_BG' , 'GEOSCHEMCHEM' , + 'EMIS_ALD2_OC' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8_IND' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8_POW' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8_RES' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8_WST' , 'GEOSCHEMCHEM' , + 'EMIS_C3H8_BB' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6_IND' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6_POW' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6_RES' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6_WST' , 'GEOSCHEMCHEM' , + 'EMIS_C2H6_BB' , 'GEOSCHEMCHEM' , + 'EMIS_CH2O' , 'GEOSCHEMCHEM' , + 'EMIS_CH2O_IND' , 'GEOSCHEMCHEM' , + 'EMIS_CH2O_POW' , 'GEOSCHEMCHEM' , + 'EMIS_CH2O_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_CH2O_RES' , 'GEOSCHEMCHEM' , + 'EMIS_CH2O_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_CH2O_WST' , 'GEOSCHEMCHEM' , + 'EMIS_CH2O_BB' , 'GEOSCHEMCHEM' , + 'EMIS_BENZ' , 'GEOSCHEMCHEM' , + 'EMIS_TOLU' , 'GEOSCHEMCHEM' , + 'EMIS_XYLE' , 'GEOSCHEMCHEM' , + 'EMIS_MOH' , 'GEOSCHEMCHEM' , + 'EMIS_MOH_BG' , 'GEOSCHEMCHEM' , + 'EMIS_ROH' , 'GEOSCHEMCHEM' , + 'EMIS_EOH' , 'GEOSCHEMCHEM' , + 'EMIS_EOH_BG' , 'GEOSCHEMCHEM' , + 'EMIS_HCOOH' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP_BG' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP_IND' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP_POW' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP_RES' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP_AGR' , 'GEOSCHEMCHEM' , + 'EMIS_SOAP_WST' , 'GEOSCHEMCHEM' , + 'EMIS_SOAS' , 'GEOSCHEMCHEM' , + 'EMIS_SOAS_BG' , 'GEOSCHEMCHEM' , + 'EMIS_SALA' , 'GEOSCHEMCHEM' , + 'EMIS_SALC' , 'GEOSCHEMCHEM' , + 'EMIS_DST1' , 'GEOSCHEMCHEM' , + 'EMIS_DST2' , 'GEOSCHEMCHEM' , + 'EMIS_DST3' , 'GEOSCHEMCHEM' , + 'EMIS_DST4' , 'GEOSCHEMCHEM' , + 'EMIS_DMS' , 'GEOSCHEMCHEM' , + 'EMIS_HOI' , 'GEOSCHEMCHEM' , + 'EMIS_I2' , 'GEOSCHEMCHEM' , + 'EMIS_CH3I' , 'GEOSCHEMCHEM' , + 'EMIS_CH2I2' , 'GEOSCHEMCHEM' , + 'EMIS_CH2ICl' , 'GEOSCHEMCHEM' , + 'EMIS_CH2IBr' , 'GEOSCHEMCHEM' , + 'EMIS_CHBr3' , 'GEOSCHEMCHEM' , + 'EMIS_CH2Br2' , 'GEOSCHEMCHEM' , + 'EMIS_pFe' , 'GEOSCHEMCHEM' , + 'EMIS_LIMO_BG' , 'GEOSCHEMCHEM' , + 'EMIS_SESQ_BG' , 'GEOSCHEMCHEM' , + 'EMIS_MTPA_BG' , 'GEOSCHEMCHEM' , + 'EMIS_MTPO_BG' , 'GEOSCHEMCHEM' , + 'EMIS_Br2' , 'GEOSCHEMCHEM' , + 'EMIS_BrSALA' , 'GEOSCHEMCHEM' , + 'EMIS_BrSALC' , 'GEOSCHEMCHEM' , + :: + + xgc_tavg_1hr_g1440x721_x1.template: '%y4%m2%d2_%h2%n2z.nc4', + xgc_tavg_1hr_g1440x721_x1.archive: '%c/Y%y4', + xgc_tavg_1hr_g1440x721_x1.descr: '2d,1-Hourly,Time-Averaged,Surface-Layer,Extra GEOS-Chem Fields', + xgc_tavg_1hr_g1440x721_x1.format: 'CFIO', + xgc_tavg_1hr_g1440x721_x1.mode: 'time-averaged', + xgc_tavg_1hr_g1440x721_x1.frequency: 010000, + xgc_tavg_1hr_g1440x721_x1.duration: 010000, + xgc_tavg_1hr_g1440x721_x1.ref_time: 150000, + xgc_tavg_1hr_g1440x721_x1.nbits: 10, + xgc_tavg_1hr_g1440x721_x1.grid_label: PC1440x721-DC + xgc_tavg_1hr_g1440x721_x1.levels: 72, + xgc_tavg_1hr_g1440x721_x1.fields: 'GCCTO3' , 'GEOSCHEMCHEM' , 'TOTCOL_O3' , + 'GCCTTO3' , 'GEOSCHEMCHEM' , 'TROPCOL_O3' , + 'TOTCOL_BrO' , 'GEOSCHEMCHEM' , 'TOTCOL_BrO' , + 'TROPCOL_BrO' , 'GEOSCHEMCHEM' , 'TROPCOL_BrO' , + 'TOTCOL_IO' , 'GEOSCHEMCHEM' , 'TOTCOL_IO' , + 'TROPCOL_IO' , 'GEOSCHEMCHEM' , 'TROPCOL_IO' , + 'TOTCOL_NO2' , 'GEOSCHEMCHEM' , 'TOTCOL_NO2' , + 'TROPCOL_NO2' , 'GEOSCHEMCHEM' , 'TROPCOL_NO2' , + 'TOTCOL_SO2' , 'GEOSCHEMCHEM' , 'TOTCOL_SO2' , + 'TROPCOL_SO2' , 'GEOSCHEMCHEM' , 'TROPCOL_SO2' , + 'TOTCOL_CO' , 'GEOSCHEMCHEM' , 'TOTCOL_CO' , + 'TROPCOL_CO' , 'GEOSCHEMCHEM' , 'TROPCOL_CO' , + 'TOTCOL_CH2O' , 'GEOSCHEMCHEM' , 'TOTCOL_HCHO' , + 'TROPCOL_CH2O' , 'GEOSCHEMCHEM' , 'TROPCOL_HCHO' , + 'COSZ' , 'SOLAR' , + 'AODHygWL1_SO4 ', 'GEOSCHEMCHEM', + 'AODHygWL1_BCPI ', 'GEOSCHEMCHEM', + 'AODHygWL1_OCPI ', 'GEOSCHEMCHEM', + 'AODHygWL1_SALA ', 'GEOSCHEMCHEM', + 'AODHygWL1_SALC ', 'GEOSCHEMCHEM', + 'AODDust ', 'GEOSCHEMCHEM', + 'AODDustWL1_bin1 ', 'GEOSCHEMCHEM', + 'AODDustWL1_bin2 ', 'GEOSCHEMCHEM', + 'AODDustWL1_bin3 ', 'GEOSCHEMCHEM', + 'AODDustWL1_bin4 ', 'GEOSCHEMCHEM', + 'AODDustWL1_bin5 ', 'GEOSCHEMCHEM', + 'AODDustWL1_bin6 ', 'GEOSCHEMCHEM', + 'AODDustWL1_bin7 ', 'GEOSCHEMCHEM', + 'AODSOAfromAqIsopreneWL1 ', 'GEOSCHEMCHEM', + 'AODStratLiquidAerWL1 ', 'GEOSCHEMCHEM', + 'AODPolarStratCloudWL1 ', 'GEOSCHEMCHEM', + 'AODANA' , 'GAAS', + 'AODBKG' , 'GAAS', + 'AODBKG_GCC' , 'GAAS', + 'AODANA_GCC' , 'GAAS', + :: + + flx_tavg_6hr_g1440x721_x1.template: '%y4%m2%d2_%h2%n2z.nc4', + flx_tavg_6hr_g1440x721_x1.archive: '%c/Y%y4', + flx_tavg_6hr_g1440x721_x1.descr: '2d,6-Hourly,Time-Averaged,Surface-Layer,GEOS-Chem Dry and Wet Deposition Flux Fields', + flx_tavg_6hr_g1440x721_x1.format: 'CFIO', + flx_tavg_6hr_g1440x721_x1.mode: 'time-averaged', + flx_tavg_6hr_g1440x721_x1.frequency: 060000, + flx_tavg_6hr_g1440x721_x1.duration: 060000, + flx_tavg_6hr_g1440x721_x1.ref_time: 150000, + flx_tavg_6hr_g1440x721_x1.nbits: 10, + flx_tavg_6hr_g1440x721_x1.grid_label: PC1440x721-DC + flx_tavg_6hr_g1440x721_x1.levels: 72, + flx_tavg_6hr_g1440x721_x1.fields: 'DryDep_O3' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_O3' , + 'DryDep_NO2' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_NO2' , + 'DryDep_HNO3' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_HNO3' , + # 'DryDep_NH4' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_NH4' , + 'DryDep_NH3' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_NH3' , + # 'DryDep_NIT' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_NIT' , + # 'DryDep_BCPO' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_BCPO' , + # 'DryDep_BCPI' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_BCPI' , + # 'DryDep_OCPO' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_OCPO' , + # 'DryDep_OCPI' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_OCPI' , + # 'DryDep_DST1' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_DST1' , + # 'DryDep_DST2' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_DST2' , + # 'DryDep_DST3' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_DST3' , + # 'DryDep_DST4' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_DST4' , + # 'DryDep_SALA' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_SALA' , + # 'DryDep_SALC' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_SALC' , + 'DryDep_CH2O' , 'GEOSCHEMCHEM' , 'DRYDEPFLX_HCHO' , + 'GCC_ConvScav_GF_HNO3' , 'MOIST' , + 'GCC_ConvScav_GF_CH2O' , 'MOIST' , + 'GCC_ConvScav_GF_NH3' , 'MOIST' , + 'GCC_ConvScav_GF_HBr' , 'MOIST' , + 'GCC_ConvScav_GF_SO2' , 'MOIST' , + 'GCC_ConvScav_GF_SO4' , 'MOIST' , + 'WetLossLS_HNO3' , 'GEOSCHEMCHEM' , + 'WetLossLS_CH2O' , 'GEOSCHEMCHEM' , + 'WetLossLS_NH3' , 'GEOSCHEMCHEM' , + 'WetLossLS_HBr' , 'GEOSCHEMCHEM' , + 'WetLossLS_SO2' , 'GEOSCHEMCHEM' , + 'WetLossLS_SO4' , 'GEOSCHEMCHEM' , + 'GCC_ConvScav_GF_SALA' , 'MOIST' , 'GCC_ConvScav_GF_SALA' , + 'GCC_ConvScav_GF_SALC' , 'MOIST' , 'GCC_ConvScav_GF_SALC' , + 'GCC_ConvScav_GF_NH4' , 'MOIST' , 'GCC_ConvScav_GF_NH4' , + 'GCC_ConvScav_GF_NIT' , 'MOIST' , 'GCC_ConvScav_GF_NIT' , + 'GCC_ConvScav_GF_BCPO' , 'MOIST' , 'GCC_ConvScav_GF_BCPO' , + 'GCC_ConvScav_GF_BCPI' , 'MOIST' , 'GCC_ConvScav_GF_BCPI' , + 'GCC_ConvScav_GF_OCPO' , 'MOIST' , 'GCC_ConvScav_GF_OCPO' , + 'GCC_ConvScav_GF_OCPI' , 'MOIST' , 'GCC_ConvScav_GF_OCPI' , + 'GCC_ConvScav_GF_DST1' , 'MOIST' , 'GCC_ConvScav_GF_DST1' , + 'GCC_ConvScav_GF_DST2' , 'MOIST' , 'GCC_ConvScav_GF_DST2' , + 'GCC_ConvScav_GF_DST3' , 'MOIST' , 'GCC_ConvScav_GF_DST3' , + 'GCC_ConvScav_GF_DST4' , 'MOIST' , 'GCC_ConvScav_GF_DST4' , + 'WetLossLS_SALA' , 'GEOSCHEMCHEM' , 'WetLossLS_SALA' , + 'WetLossLS_SALC' , 'GEOSCHEMCHEM' , 'WetLossLS_SALC' , + 'WetLossLS_NH4' , 'GEOSCHEMCHEM' , 'WetLossLS_NH4' , + 'WetLossLS_NIT' , 'GEOSCHEMCHEM' , 'WetLossLS_NIT' , + 'WetLossLS_BCPO' , 'GEOSCHEMCHEM' , 'WetLossLS_BCPO' , + 'WetLossLS_BCPI' , 'GEOSCHEMCHEM' , 'WetLossLS_BCPI' , + 'WetLossLS_OCPO' , 'GEOSCHEMCHEM' , 'WetLossLS_OCPO' , + 'WetLossLS_OCPI' , 'GEOSCHEMCHEM' , 'WetLossLS_OCPI' , + 'WetLossLS_DST1' , 'GEOSCHEMCHEM' , 'WetLossLS_DST1' , + 'WetLossLS_DST2' , 'GEOSCHEMCHEM' , 'WetLossLS_DST2' , + 'WetLossLS_DST3' , 'GEOSCHEMCHEM' , 'WetLossLS_DST3' , + 'WetLossLS_DST4' , 'GEOSCHEMCHEM' , 'WetLossLS_DST4' , + :: + + met_tavg_1hr_g1440x721_x1.template: '%y4%m2%d2_%h2%n2z.nc4', + met_tavg_1hr_g1440x721_x1.archive: '%c/Y%y4', + met_tavg_1hr_g1440x721_x1.descr: '2d,1-Hourly,Time-Averaged,Surface-Layer,Meteorological Fields', + met_tavg_1hr_g1440x721_x1.format: 'CFIO', + met_tavg_1hr_g1440x721_x1.mode: 'time-averaged', + met_tavg_1hr_g1440x721_x1.frequency: 010000, + met_tavg_1hr_g1440x721_x1.duration: 010000, + met_tavg_1hr_g1440x721_x1.ref_time: 150000, + met_tavg_1hr_g1440x721_x1.nbits: 10, + met_tavg_1hr_g1440x721_x1.grid_label: PC1440x721-DC + met_tavg_1hr_g1440x721_x1.levels: 72, + met_tavg_1hr_g1440x721_x1.fields: 'U' , 'DYN' , + 'V' , 'DYN' , + 'T' , 'DYN' , + 'TS' , 'SURFACE' , + 'Q' , 'MOIST' , + 'CLDTT' , 'SOLAR' , + 'PS' , 'DYN' , + 'RH2' , 'MOIST' , 'RH' , + 'SLP' , 'DYN' , + 'PHIS' , 'AGCM' , + 'TPREC' , 'MOIST' , + 'ZL' , 'DYN' , + 'ZPBL' , 'TURBULENCE' , + 'TROPP_BLENDED' , 'AGCM' , 'TROPPB' , + :: + + chm_tavg_1hr_g1440x721_v39.template: '%y4%m2%d2_%h2%n2z.nc4' , + chm_tavg_1hr_g1440x721_v39.archive: '%c/Y%y4' , + chm_tavg_1hr_g1440x721_v39.mode: 'time-averaged' , + chm_tavg_1hr_g1440x721_v39.format: 'CFIO', + chm_tavg_1hr_g1440x721_v39.descr: '3d,1-Hourly,Time-Averaged,Model-Level,Chemistry Fields', + chm_tavg_1hr_g1440x721_v39.grid_label: PC1440x721-DC + chm_tavg_1hr_g1440x721_v39.nbits: 10, + chm_tavg_1hr_g1440x721_v39.frequency: 010000 , + chm_tavg_1hr_g1440x721_v39.duration: 010000 , + chm_tavg_1hr_g1440x721_v39.ref_time: 150000 , + chm_tavg_1hr_g1440x721_v39.end_date: 20170202, + chm_tavg_1hr_g1440x721_v39.end_time: 210000, + chm_tavg_1hr_g1440x721_v39.levels: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72, + chm_tavg_1hr_g1440x721_v39.fields: 'NOy' , 'GEOSCHEMCHEM' , 'NOy' , + 'SpeciesConc_NO' , 'GEOSCHEMCHEM' , 'NO' , + 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_PAN' , 'GEOSCHEMCHEM' , 'PAN' , + 'SpeciesConc_N2O5' , 'GEOSCHEMCHEM' , 'N2O5' , + 'SpeciesConc_HNO2' , 'GEOSCHEMCHEM' , 'HNO2' , + 'SpeciesConc_HNO3' , 'GEOSCHEMCHEM' , 'HNO3' , + 'SpeciesConc_HNO4' , 'GEOSCHEMCHEM' , 'HNO4' , + 'SpeciesConc_NH3' , 'GEOSCHEMCHEM' , 'NH3' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_ISOP' , 'GEOSCHEMCHEM' , 'ISOP' , + 'SpeciesConc_C2H6' , 'GEOSCHEMCHEM' , 'C2H6' , + 'SpeciesConc_C3H8' , 'GEOSCHEMCHEM' , 'C3H8' , + 'SpeciesConc_ACET' , 'GEOSCHEMCHEM' , 'ACET' , + 'SpeciesConc_ALD2' , 'GEOSCHEMCHEM' , 'ALD2' , + 'SpeciesConc_ALK4' , 'GEOSCHEMCHEM' , 'ALK4' , + 'SpeciesConc_MEK' , 'GEOSCHEMCHEM' , 'MEK' , + 'SpeciesConc_PRPE' , 'GEOSCHEMCHEM' , 'PRPE' , + 'SpeciesConc_H2O2' , 'GEOSCHEMCHEM' , 'H2O2' , + 'SpeciesConc_RCHO' , 'GEOSCHEMCHEM' , 'RCHO' , + 'SpeciesConc_CH2O' , 'GEOSCHEMCHEM' , 'HCHO' , + 'SpeciesConc_BrO' , 'GEOSCHEMCHEM' , 'BrO' , + 'SpeciesConc_ClO' , 'GEOSCHEMCHEM' , 'ClO' , + 'SpeciesConc_IO' , 'GEOSCHEMCHEM' , 'IO' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'SpeciesConc_CH4' , 'GEOSCHEMCHEM' , 'CH4' , + 'SpeciesConc_DST1' , 'GEOSCHEMCHEM' , 'DST1' , + 'SpeciesConc_DST2' , 'GEOSCHEMCHEM' , 'DST2' , + 'SpeciesConc_DST3' , 'GEOSCHEMCHEM' , 'DST3' , + 'SpeciesConc_DST4' , 'GEOSCHEMCHEM' , 'DST4' , + 'SpeciesConc_SALA' , 'GEOSCHEMCHEM' , 'SALA' , + 'SpeciesConc_SALC' , 'GEOSCHEMCHEM' , 'SALC' , + 'SpeciesConc_OCPI' , 'GEOSCHEMCHEM' , 'OCPI' , + 'SpeciesConc_OCPO' , 'GEOSCHEMCHEM' , 'OCPO' , + 'SpeciesConc_BCPI' , 'GEOSCHEMCHEM' , 'BCPI' , + 'SpeciesConc_BCPO' , 'GEOSCHEMCHEM' , 'BCPO' , + 'SpeciesConc_NIT' , 'GEOSCHEMCHEM' , 'NIT' , + 'SpeciesConc_NITs' , 'GEOSCHEMCHEM' , 'NITs' , + 'SpeciesConc_MSA' , 'GEOSCHEMCHEM' , 'MSA' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_SO4' , 'GEOSCHEMCHEM' , 'SO4' , + 'SpeciesConc_SO4s' , 'GEOSCHEMCHEM' , 'SO4s' , + 'PM25' , 'GEOSCHEMCHEM' , 'PM25_RH35_GCC' , + 'PM25ni' , 'GEOSCHEMCHEM' , 'PM25ni_RH35_GCC' , + 'PM25su' , 'GEOSCHEMCHEM' , 'PM25su_RH35_GCC' , + 'PM25ss' , 'GEOSCHEMCHEM' , 'PM25ss_RH35_GCC' , + 'PM25du' , 'GEOSCHEMCHEM' , 'PM25du_RH35_GCC' , + 'PM25bc' , 'GEOSCHEMCHEM' , 'PM25bc_RH35_GCC' , + 'PM25oc' , 'GEOSCHEMCHEM' , 'PM25oc_RH35_GCC' , + 'PM25soa' , 'GEOSCHEMCHEM' , 'PM25soa_RH35_GCC' , + 'SpeciesConc_H2O' , 'GEOSCHEMCHEM' , 'H2O' , + 'SpeciesConc_OH*17.0' , 'GEOSCHEMCHEM' , 'OH_mmr' , + '33.0*SpeciesConc_HO2' , 'GEOSCHEMCHEM' , 'HO2_mmr' , + :: + + + met_tavg_1hr_g1440x721_v39.template: '%y4%m2%d2_%h2%n2z.nc4' , + met_tavg_1hr_g1440x721_v39.archive: '%c/Y%y4' , + met_tavg_1hr_g1440x721_v39.mode: 'time-averaged' , + met_tavg_1hr_g1440x721_v39.format: 'CFIO', + met_tavg_1hr_g1440x721_v39.descr: '3d,1-Hourly,Time-Averaged,Model-Level,Meteorological Fields', + met_tavg_1hr_g1440x721_v39.grid_label: PC1440x721-DC + met_tavg_1hr_g1440x721_v39.nbits: 10, + met_tavg_1hr_g1440x721_v39.frequency: 010000 , + met_tavg_1hr_g1440x721_v39.duration: 010000 , + met_tavg_1hr_g1440x721_v39.ref_time: 150000 , + met_tavg_1hr_g1440x721_v39.end_date: 20170202, + met_tavg_1hr_g1440x721_v39.end_time: 210000, + met_tavg_1hr_g1440x721_v39.levels: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72, + met_tavg_1hr_g1440x721_v39.fields: 'U' , 'DYN' , + 'V' , 'DYN' , + 'T' , 'DYN' , + 'Q' , 'MOIST' , + 'TH' , 'DYN' , + 'DELP' , 'DYN' , + 'PHIS' , 'AGCM' , + 'PS' , 'DYN' , + 'AIRDENS' , 'CHEMENV' , + 'ZL' , 'DYN' , + 'EPV' , 'DYN' , + 'OMEGA' , 'DYN' , + 'RH2' , 'MOIST' , 'RH' , + 'SLP' , 'DYN' , + 'TROPP_BLENDED' , 'AGCM' , 'TROPPB' , + 'CNV_FREQ' , 'MOIST' , + 'CAPE' , 'MOIST' , + 'BYNCY' , 'MOIST' , + :: + + xgc_tavg_1hr_g1440x721_v39.template: '%y4%m2%d2_%h2%n2z.nc4', + xgc_tavg_1hr_g1440x721_v39.archive: '%c/Y%y4', + xgc_tavg_1hr_g1440x721_v39.mode: 'time-averaged', + xgc_tavg_1hr_g1440x721_v39.format: 'CFIO', + xgc_tavg_1hr_g1440x721_v39.descr: '3d,1-Hourly,Time-Averaged,Model-Level,Extra GEOS-Chem Fields', + xgc_tavg_1hr_g1440x721_v39.frequency: 010000, + xgc_tavg_1hr_g1440x721_v39.duration: 010000, + xgc_tavg_1hr_g1440x721_v39.ref_time: 150000, + xgc_tavg_1hr_g1440x721_v39.end_date: 20170202, + xgc_tavg_1hr_g1440x721_v39.end_time: 210000, + xgc_tavg_1hr_g1440x721_v39.nbits: 10, + xgc_tavg_1hr_g1440x721_v39.grid_label: PC1440x721-DC + xgc_tavg_1hr_g1440x721_v39.levels: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72, + xgc_tavg_1hr_g1440x721_v39.fields: 'SpeciesConc_Cl' , 'GEOSCHEMCHEM' , 'Cl' , + 'SpeciesConc_Cl2' , 'GEOSCHEMCHEM' , 'Cl2' , + 'SpeciesConc_HCl' , 'GEOSCHEMCHEM' , 'HCl' , + 'SpeciesConc_PPN' , 'GEOSCHEMCHEM' , 'PPN' , + 'SpeciesConc_R4N2' , 'GEOSCHEMCHEM' , 'R4N2' , +#### GCC aerosol components ######### + 'SpeciesConc_NH4' , 'GEOSCHEMCHEM' , 'NH4' , + 'SpeciesConc_TSOA0' , 'GEOSCHEMCHEM' , 'TSOA0' , + 'SpeciesConc_TSOA1' , 'GEOSCHEMCHEM' , 'TSOA1' , + 'SpeciesConc_TSOA2' , 'GEOSCHEMCHEM' , 'TSOA2' , + 'SpeciesConc_TSOA3' , 'GEOSCHEMCHEM' , 'TSOA3' , + 'SpeciesConc_ASOAN' , 'GEOSCHEMCHEM' , 'ASOAN' , + 'SpeciesConc_ASOA1' , 'GEOSCHEMCHEM' , 'ASOA1' , + 'SpeciesConc_ASOA2' , 'GEOSCHEMCHEM' , 'ASOA2' , + 'SpeciesConc_ASOA3' , 'GEOSCHEMCHEM' , 'ASOA3' , +#With the new isoprene chemistry, some of these diagnsotics no longer exist +# 'SpeciesConc_IPMN' , 'GEOSCHEMCHEM' , 'IPMN' , +# 'SpeciesConc_NPMN' , 'GEOSCHEMCHEM' , 'NPMN' , +# 'SpeciesConc_R4N1' , 'GEOSCHEMCHEM' , 'R4N1' , +# 'SpeciesConc_ISOA1' , 'GEOSCHEMCHEM' , 'ISOA1' , +# 'SpeciesConc_ISOA2' , 'GEOSCHEMCHEM' , 'ISOA2' , +# 'SpeciesConc_ISOA3' , 'GEOSCHEMCHEM' , 'ISOA3' , + :: + + exp_tavg_1hr_g1440x721_v72.template: '%y4%m2%d2_%h2%n2z.nc4' , + exp_tavg_1hr_g1440x721_v72.archive: '%c/Y%y4' , + exp_tavg_1hr_g1440x721_v72.mode: 'time-averaged' , + exp_tavg_1hr_g1440x721_v72.format: 'CFIO', + exp_tavg_1hr_g1440x721_v72.descr: '3d,1-Hourly,Time-Averaged,Model-Level,Experimental Chemistry Fields', + exp_tavg_1hr_g1440x721_v72.grid_label: PC1440x721-DC + exp_tavg_1hr_g1440x721_v72.nbits: 10, + exp_tavg_1hr_g1440x721_v72.frequency: 010000 , + exp_tavg_1hr_g1440x721_v72.duration: 010000 , + exp_tavg_1hr_g1440x721_v72.ref_time: 150000 , + exp_tavg_1hr_g1440x721_v72.end_date: 20170202, + exp_tavg_1hr_g1440x721_v72.end_time: 210000, + exp_tavg_1hr_g1440x721_v72.fields: 'CH4pseudoFlux' , 'GEOSCHEMCHEM' , 'EMIS_CH4_IMPLIED' , + 'OHreactivity' , 'GEOSCHEMCHEM' , 'OH_reactivity' , + 'AnaInc_O3' , 'GEOSCHEMCHEM' , + 'AnaInc_NO2' , 'GEOSCHEMCHEM' , + 'AnaInc_SO2' , 'GEOSCHEMCHEM' , + 'Prod_Ox' , 'GEOSCHEMCHEM' , + 'Loss_Ox' , 'GEOSCHEMCHEM' , + 'Prod_CO' , 'GEOSCHEMCHEM' , + 'Loss_CO' , 'GEOSCHEMCHEM' , + 'Prod_SO4' , 'GEOSCHEMCHEM' , + 'Loss_CH4' , 'GEOSCHEMCHEM' , + :: + + trc_tavg_3hr_g1440x721_v72.template: '%y4%m2%d2_%h2%n2z.nc4', + trc_tavg_3hr_g1440x721_v72.archive: '%c/Y%y4', + trc_tavg_3hr_g1440x721_v72.descr: '3d,3-Hourly,Time-Averaged,Model-Level,Tracer and Meteorology Fields', + trc_tavg_3hr_g1440x721_v72.format: 'CFIO', + trc_tavg_3hr_g1440x721_v72.mode: 'time-averaged', + trc_tavg_3hr_g1440x721_v72.frequency: 030000, + trc_tavg_3hr_g1440x721_v72.duration: 030000, + trc_tavg_3hr_g1440x721_v72.ref_time: 150000, + trc_tavg_3hr_g1440x721_v72.end_date: 20170202, + trc_tavg_3hr_g1440x721_v72.end_time: 210000, + trc_tavg_3hr_g1440x721_v72.nbits: 10, + trc_tavg_3hr_g1440x721_v72.grid_label: PC1440x721-DC + trc_tavg_3hr_g1440x721_v72.fields: 'U' , 'DYN' , + 'V' , 'DYN' , + 'T' , 'DYN' , + 'Q' , 'MOIST' , + 'TH' , 'DYN' , + 'OMEGA' , 'DYN' , + 'EPV' , 'DYN' , + 'DELP' , 'DYN' , + 'PS' , 'DYN' , + 'RH2' , 'MOIST' , 'RH' , + 'TROPP_BLENDED' , 'AGCM' , 'TROPPB' , + 'TROPP_INTERP' , 'AGCM' , 'TROPPI' , + 'Rn222' , 'TR' , + 'Pb210' , 'TR' , + 'Be7' , 'TR' , + 'Be10' , 'TR' , + 'st80_25' , 'TR' , + 'nh_5' , 'TR' , + 'nh_50' , 'TR' , + 'sh_5' , 'TR' , + 'sh_50' , 'TR' , + 'tr_5' , 'TR' , + 'tr_50' , 'TR' , + 'ntr_5' , 'TR' , + 'ntr_50' , 'TR' , + 'str_5' , 'TR' , + 'str_50' , 'TR' , + 'CO_25_na' , 'TR' , + 'CO_25_ea' , 'TR' , + 'CH3I' , 'TR' , + 'e90' , 'TR' , + 'SpeciesConc_N2O' , 'GEOSCHEMCHEM' , 'N2O' , + :: + + dbg_tavg_3hr_g1440x721_v72.template: '%y4%m2%d2_%h2%n2z.nc4', + dbg_tavg_3hr_g1440x721_v72.archive: '%c/Y%y4', + dbg_tavg_3hr_g1440x721_v72.descr: '3d,3-Hourly,Time-Averaged,Model-Level,Diagnostics for model debugging', + dbg_tavg_3hr_g1440x721_v72.format: 'CFIO', + dbg_tavg_3hr_g1440x721_v72.mode: 'time-averaged', + dbg_tavg_3hr_g1440x721_v72.frequency: 030000, + dbg_tavg_3hr_g1440x721_v72.duration: 030000, + dbg_tavg_3hr_g1440x721_v72.ref_time: 150000, + dbg_tavg_3hr_g1440x721_v72.end_date: 20170202, + dbg_tavg_3hr_g1440x721_v72.end_time: 210000, + dbg_tavg_3hr_g1440x721_v72.nbits: 10, + dbg_tavg_3hr_g1440x721_v72.grid_label: PC1440x721-DC + dbg_tavg_3hr_g1440x721_v72.fields: 'KppError' , 'GEOSCHEMCHEM' , + :: + + aer_tavg_24hr_g1440x721_x1.format: 'CFIO' , + aer_tavg_24hr_g1440x721_x1.descr: '2d,24-Hourly,Time-Averaged,Single-Level,Aerosol Diagnostics from GOCART', + aer_tavg_24hr_g1440x721_x1.template: '%y4%m2%d2_%h2%n2z.nc4', + aer_tavg_24hr_g1440x721_x1.archive: '%c/Y%y4', + aer_tavg_24hr_g1440x721_x1.mode: 'time-averaged', + aer_tavg_24hr_g1440x721_x1.grid_label: PC1440x721-DC + aer_tavg_24hr_g1440x721_x1.conservative: 1, + aer_tavg_24hr_g1440x721_x1.frequency: 240000 , + aer_tavg_24hr_g1440x721_x1.duration: 240000 , + aer_tavg_24hr_g1440x721_x1.ref_time: 150000 , + aer_tavg_24hr_g1440x721_x1.end_date: 20170202, + aer_tavg_24hr_g1440x721_x1.end_time: 210000, + aer_tavg_24hr_g1440x721_x1.nbits: 10, + aer_tavg_24hr_g1440x721_x1.fields: 'CA.bcSMASS' , 'CA.bc' , 'BCSMASS' , + 'CA.bcCMASS' , 'CA.bc' , 'BCCMASS' , + 'CA.bcEXTTAU' , 'CA.bc' , 'BCEXTTAU' , + 'CA.bcSCATAU' , 'CA.bc' , 'BCSCATAU' , + 'CA.bcANGSTR' , 'CA.bc' , 'BCANGSTR' , + 'CA.bcFLUXU' , 'CA.bc' , 'BCFLUXU' , + 'CA.bcFLUXV' , 'CA.bc' , 'BCFLUXV' , +# Dust + 'DUSMASS' , 'DU' , + 'DUCMASS' , 'DU' , + 'DUEXTTAU' , 'DU' , + 'DUSCATAU' , 'DU' , + 'DUANGSTR' , 'DU' , + 'DUSMASS25' , 'DU' , + 'DUCMASS25' , 'DU' , + 'DUEXTT25' , 'DU' , + 'DUSCAT25' , 'DU' , + 'DUFLUXU' , 'DU' , + 'DUFLUXV' , 'DU' , +# Seasalt + 'SSSMASS' , 'SS' , + 'SSCMASS' , 'SS' , + 'SSEXTTAU' , 'SS' , + 'SSSCATAU' , 'SS' , + 'SSANGSTR' , 'SS' , + 'SSSMASS25' , 'SS' , + 'SSCMASS25' , 'SS' , + 'SSEXTT25' , 'SS' , + 'SSSCAT25' , 'SS' , + 'SSFLUXU' , 'SS' , + 'SSFLUXV' , 'SS' , +# Sulfates + 'SO2SMASS' , 'SU' , + 'SO2CMASS' , 'SU' , + 'SO4SMASS' , 'SU' , + 'SO4CMASS' , 'SU' , + 'DMSSMASS' , 'SU' , + 'DMSCMASS' , 'SU' , + 'SUEXTTAU' , 'SU' , + 'SUSCATAU' , 'SU' , + 'SUANGSTR' , 'SU' , + 'SUFLUXU' , 'SU' , + 'SUFLUXV' , 'SU' , +# Organic Carbon + 'CA.ocSMASS' , 'CA.oc' , 'OCSMASS' , + 'CA.ocCMASS' , 'CA.oc' , 'OCCMASS' , + 'CA.ocEXTTAU' , 'CA.oc' , 'OCEXTTAU' , + 'CA.ocSCATAU' , 'CA.oc' , 'OCSCATAU' , + 'CA.ocANGSTR' , 'CA.oc' , 'OCANGSTR' , + 'CA.ocFLUXU' , 'CA.oc' , 'OCFLUXU' , + 'CA.ocFLUXV' , 'CA.oc' , 'OCFLUXV' , +# Nitrate + 'HNO3SMASS' , 'NI' , + 'NH3SMASS' , 'NI' , + 'NH4SMASS' , 'NI' , + 'NISMASS' , 'NI' , + 'NISMASS25' , 'NI' , + 'HNO3CMASS' , 'NI' , + 'NH3CMASS' , 'NI' , + 'NH4CMASS' , 'NI' , + 'NICMASS' , 'NI' , + 'NICMASS25' , 'NI' , + 'NIEXTTFM' , 'NI' , + 'NIEXTTAU' , 'NI' , + 'NISCATAU' , 'NI' , + 'NIANGSTR' , 'NI' , + 'NIFLUXU' , 'NI' , + 'NIFLUXV' , 'NI' , +# Combined Aerosols + 'TOTEXTTAU' , 'GOCART2G' , + 'TOTSCATAU' , 'GOCART2G' , + 'TOTANGSTR' , 'GOCART2G' , +# Particulates + 'PM' , 'GOCART2G' , 'PM_GOCART2G' , + 'PM_RH35' , 'GOCART2G' , 'PM_RH35_GOCART2G' , + 'PM_RH50' , 'GOCART2G' , 'PM_RH50_GOCART2G' , + 'PM25' , 'GOCART2G' , 'PM25_GOCART2G' , + 'PM25_RH35' , 'GOCART2G' , 'PM25_RH35_GOCART2G' , + 'PM25_RH50' , 'GOCART2G' , 'PM25_RH50_GOCART2G' , + :: + + aer_tavg_24hr_g1440x721_p23.format: 'CFIO' , + aer_tavg_24hr_g1440x721_p23.descr: '3d,24-Hourly,Time-Averaged,Pressure-Level,Aerosol Diagnostics from GOCART', + aer_tavg_24hr_g1440x721_p23.template: '%y4%m2%d2_%h2%n2z.nc4', + aer_tavg_24hr_g1440x721_p23.archive: '%c/Y%y4', + aer_tavg_24hr_g1440x721_p23.nbits: 10, + aer_tavg_24hr_g1440x721_p23.frequency: 240000 , + aer_tavg_24hr_g1440x721_p23.duration: 240000 , + aer_tavg_24hr_g1440x721_p23.ref_time: 150000 , + aer_tavg_24hr_g1440x721_p23.end_date: 20170202, + aer_tavg_24hr_g1440x721_p23.end_time: 210000, + aer_tavg_24hr_g1440x721_p23.grid_label: PC1440x721-DC + aer_tavg_24hr_g1440x721_p23.mode: 'time-averaged', + aer_tavg_24hr_g1440x721_p23.vscale: 100.0, + aer_tavg_24hr_g1440x721_p23.vunit: 'hPa', + aer_tavg_24hr_g1440x721_p23.vvars: 'log(PLE)' , 'DYN' , + aer_tavg_24hr_g1440x721_p23.levels: 1000 975 950 925 900 850 800 750 700 650 600 550 500 450 400 350 300 250 200 150 100 50 10, + aer_tavg_24hr_g1440x721_p23.fields: 'PS' , 'DYN' , 'PS' , + 'LWI' , 'SURFACE' , 'LWI' , + 'AIRDENS' , 'CHEMENV' , + 'DUMASS' , 'DU' , 'DU' , + 'SSMASS' , 'SS' , 'SS' , + 'CA.bcMASS' , 'CA.bc' , 'BC' , + 'CA.ocMASS' , 'CA.oc' , 'OC' , + 'CA.brMASS' , 'CA.br' , 'BR' , + 'SO2' , 'SU' , 'SO2_GOCART' , + 'NH3MASS' , 'NI' , 'NH3_NI' , + 'NH4MASS' , 'NI' , 'NH4_NI' , + 'NIMASS' , 'NI' , 'NI' , + 'HNO3CONC' , 'NI' , + 'NICONC' , 'NI' , + :: + + hal_tavg_24hr_g1440x721_v1.format: 'CFIO' , + hal_tavg_24hr_g1440x721_v1.descr: '3d,24-Hourly,Time-Averaged,Surface-Level, Halogen Fields', + hal_tavg_24hr_g1440x721_v1.template: '%y4%m2%d2_%h2%n2z.nc4', + hal_tavg_24hr_g1440x721_v1.archive: '%c/Y%y4', + hal_tavg_24hr_g1440x721_v1.mode: 'time-averaged', + hal_tavg_24hr_g1440x721_v1.grid_label: PC1440x721-DC + hal_tavg_24hr_g1440x721_v1.conservative: 1, + hal_tavg_24hr_g1440x721_v1.frequency: 240000 , + hal_tavg_24hr_g1440x721_v1.duration: 240000 , + hal_tavg_24hr_g1440x721_v1.ref_time: 150000 , + hal_tavg_24hr_g1440x721_v1.end_date: 20170203, + hal_tavg_24hr_g1440x721_v1.end_time: 210000, + hal_tavg_24hr_g1440x721_v1.levels: 72, + hal_tavg_24hr_g1440x721_v1.fields: 'SpeciesConc_CH3Cl' , 'GEOSCHEMCHEM' , 'CH3Cl' , + 'SpeciesConc_CFC11' , 'GEOSCHEMCHEM' , 'CFC11' , + 'SpeciesConc_H1301' , 'GEOSCHEMCHEM' , 'H1301' , + 'SpeciesConc_H1211' , 'GEOSCHEMCHEM' , 'H1211' , + 'SpeciesConc_H2402' , 'GEOSCHEMCHEM' , 'H2402' , + 'SpeciesConc_CHBr3' , 'GEOSCHEMCHEM' , 'CHBr3' , + 'SpeciesConc_CH2Br2' , 'GEOSCHEMCHEM' , 'CH2Br2' , + 'SpeciesConc_CHCl3' , 'GEOSCHEMCHEM' , 'CHCl3' , + 'SpeciesConc_CH2Cl2' , 'GEOSCHEMCHEM' , 'CH2Cl2' , + 'SpeciesConc_I' , 'GEOSCHEMCHEM' , 'I' , + 'SpeciesConc_I2' , 'GEOSCHEMCHEM' , 'I2' , + 'SpeciesConc_HOI' , 'GEOSCHEMCHEM' , 'HOI' , + 'SpeciesConc_IO' , 'GEOSCHEMCHEM' , 'IO' , + 'SpeciesConc_HI' , 'GEOSCHEMCHEM' , 'HI' , + 'SpeciesConc_OIO' , 'GEOSCHEMCHEM' , 'OIO' , + 'SpeciesConc_INO' , 'GEOSCHEMCHEM' , 'INO' , + 'SpeciesConc_IONO' , 'GEOSCHEMCHEM' , 'IONO' , + 'SpeciesConc_IONO2' , 'GEOSCHEMCHEM' , 'IONO2' , + 'SpeciesConc_I2O2' , 'GEOSCHEMCHEM' , 'I2O2' , + 'SpeciesConc_I2O3' , 'GEOSCHEMCHEM' , 'I2O3' , + 'SpeciesConc_I2O4' , 'GEOSCHEMCHEM' , 'I2O4' , + 'SpeciesConc_IBr' , 'GEOSCHEMCHEM' , 'IBr' , + 'SpeciesConc_ICl' , 'GEOSCHEMCHEM' , 'ICl' , + :: + + + + hal_tavg_24hr_g1440x721_p44.format: 'CFIO' , + hal_tavg_24hr_g1440x721_p44.descr: '3d,24-Hourly,Time-Averaged,Pressure-Level, Halogen Family Fields', + hal_tavg_24hr_g1440x721_p44.template: '%y4%m2%d2_%h2%n2z.nc4', + hal_tavg_24hr_g1440x721_p44.archive: '%c/Y%y4', + hal_tavg_24hr_g1440x721_p44.mode: 'time-averaged', + hal_tavg_24hr_g1440x721_p44.grid_label: PC1440x721-DC + hal_tavg_24hr_g1440x721_p44.conservative: 1, + hal_tavg_24hr_g1440x721_p44.frequency: 240000 , + hal_tavg_24hr_g1440x721_p44.duration: 240000 , + hal_tavg_24hr_g1440x721_p44.ref_time: 150000 , + hal_tavg_24hr_g1440x721_p44.end_date: 20170202, + hal_tavg_24hr_g1440x721_p44.end_time: 210000, + hal_tavg_24hr_g1440x721_p44.nbits: 10, + hal_tavg_24hr_g1440x721_p44.vscale: 100.0 , + hal_tavg_24hr_g1440x721_p44.vunit: 'hPa' , + hal_tavg_24hr_g1440x721_p44.vvars: 'log(PLE)' , 'DYN' , +#hal_tavg_24hr_g1440x721_p23.levels: 1000 975 950 925 900 850 800 750 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50, + hal_tavg_24hr_g1440x721_p44.levels: 1000 975 950 925 900 850 800 750 700 650 600 550 500 450 400 350 316 261 215 178 147 121 100 83 68 56 50 46 38 31 26 22 18 15 12 10 8 5 2 1 0.8 0.5 0.2 0.1 + hal_tavg_24hr_g1440x721_p44.fields: 'SpeciesConc_CH3Cl' , 'GEOSCHEMCHEM' , 'CH3Cl' , + 'Cly' , 'GEOSCHEMCHEM' , 'Cly' , + 'OrganicCl' , 'GEOSCHEMCHEM' , 'Organic_Chlorine' , + 'WetLossLS_HCl' , 'GEOSCHEMCHEM' , + 'Bry' , 'GEOSCHEMCHEM' , + 'SpeciesConc_BrSALC' , 'GEOSCHEMCHEM' , 'BrSALC' , + 'SpeciesConc_BrSALA' , 'GEOSCHEMCHEM' , 'BrSALA' , + 'EMIS_Br2' , 'GEOSCHEMCHEM' , + 'EMIS_BrSALA' , 'GEOSCHEMCHEM' , + 'EMIS_BrSALC' , 'GEOSCHEMCHEM' , + 'SpeciesConc_SALCCl' , 'GEOSCHEMCHEM' , 'SALCCl' , + 'SpeciesConc_SALACl' , 'GEOSCHEMCHEM' , 'SALACl' , + 'SpeciesConc_CH3Br' , 'GEOSCHEMCHEM' , 'CH3Br' , + 'DryDep_HBr' , 'GEOSCHEMCHEM' , + 'DryDep_HOBr' , 'GEOSCHEMCHEM' , + 'DryDep_BrNO3' , 'GEOSCHEMCHEM' , + 'GCC_ConvScav_GF_HBr' , 'MOIST' , + 'WetLossLS_HBr' , 'GEOSCHEMCHEM' , + 'WetLossLS_HOBr' , 'GEOSCHEMCHEM' , + '2.0*SpeciesConc_CH2Cl2 + 3.0*SpeciesConc_CHCl3' , 'GEOSCHEMCHEM' , 'VSLSCl' , + '3.0*SpeciesConc_CHBr3 + 2.0*SpeciesConc_CH2Br2' , 'GEOSCHEMCHEM' , 'VSLSBr' , + 'SpeciesConc_H1301 + SpeciesConc_H1211 + 2*SpeciesConc_H2402' , 'GEOSCHEMCHEM' , 'HalonBr' , +# total gas phase inorganic iodine Iy species (2*I2 + HOI + IO + OIO + HI +INO +INO2 +INO3 +2*I2O2 +2*I2O3 +2*I2O4) from Sherwen et al. (2016) +# Does not all fit 'SpeciesConc_IO + SpeciesConc_HOI + SpeciesConc_I + SpeciesConc_INO3 + 2.0*SpeciesConc_I2 + SpeciesConc_OIO + SpeciesConc_HI + SpeciesConc_INO + SpeciesConc_INO2 + 2.0*SpeciesConc_I2O2 + 2.0*SpeciesConc_I2O3 + 2.0*SpeciesConc_I2O4 + SpeciesConc_IBr + SpeciesConc_ICl' , 'GEOSCHEMCHEM' , 'Iy' , + 'SpeciesConc_IO+SpeciesConc_HOI+SpeciesConc_I+SpeciesConc_IONO2+2.0*SpeciesConc_I2+SpeciesConc_OIO+SpeciesConc_INO+SpeciesConc_IONO+2*SpeciesConc_I2O2+2*SpeciesConc_I2O3+2*SpeciesConc_I2O4+SpeciesConc_IBr' , 'GEOSCHEMCHEM' , 'Iy' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_N2O' , 'GEOSCHEMCHEM' , 'N2O' , + 'SpeciesConc_H2O' , 'GEOSCHEMCHEM' , 'H2O' , + 'SpeciesConc_HNO3' , 'GEOSCHEMCHEM' , 'HNO3' , + 'SpeciesConc_HCl' , 'GEOSCHEMCHEM' , 'HCl' , + 'SpeciesConc_ClO' , 'GEOSCHEMCHEM' , 'ClO' , + 'SpeciesConc_HOCl' , 'GEOSCHEMCHEM' , 'HOCl' , + 'SpeciesConc_ClNO3' , 'GEOSCHEMCHEM' , 'ClONO2' , + 'NOy' , 'GEOSCHEMCHEM' , 'NOy' , + 'DELP' , 'DYN' , + 'TH' , 'DYN' , + 'TROPP_BLENDED' , 'AGCM' , 'TROPPB' , + 'ZLE' , 'DYN' , + :: + +##### CAMPAIGN AND SATELLITE COLLECTIONS ############# + + act_inst_1hr_r481x201_v72.format: 'CFIO', + act_inst_1hr_r481x201_v72.descr: '3d,1-Hourly,Instantaneous,Model-Level,Carbon and Trace Gases,North America subset', + act_inst_1hr_r481x201_v72.template: '%y4%m2%d2_%h2%n2z.nc4', + act_inst_1hr_r481x201_v72.archive: '%c/Y%y4', + act_inst_1hr_r481x201_v72.nbits: 10, + act_inst_1hr_r481x201_v72.frequency: 010000, + act_inst_1hr_r481x201_v72.duration: 010000, + act_inst_1hr_r481x201_v72.ref_time: 150000, + act_inst_1hr_r481x201_v72.mode: 'instantaneous', + act_inst_1hr_r481x201_v72.grid_label: PC1440x721-DC + act_inst_1hr_r481x201_v72.subset: -130.0 -60.0 20.0 50.0, + act_inst_1hr_r481x201_v72.fields: 'Q' , 'MOIST' , + 'U' , 'DYN' , + 'V' , 'DYN' , + 'T' , 'DYN' , + 'PS' , 'DYN' , + 'PHIS' , 'AGCM' , + 'ZL' , 'DYN' , +####### May need to add CO2EM001 with GOCART CO2 to other collections for Carbon group to monitor usefulness of GEOS-CF CO2 replay and forecasts.########## + 'GOCART::CO' , 'GOCART' , 'CO_GOCART' , + 'GOCART::CO2' , 'GOCART' , 'CO2_GOCART' , + 'CO2EM001' , 'GOCART' , +####### + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'SpeciesConc_C2H6' , 'GEOSCHEMCHEM' , 'C2H6' , +# If we run again, turn on O3 and DELP. 29Jul20 KEK +# 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'DELP' , 'DYN' , + :: + +#Collection for TEMPO. + + sat_inst_1hr_r1440x361_v72.template: '%y4%m2%d2_%h2%n2z.nc4', + sat_inst_1hr_r1440x361_v72.archive: '%c/Y%y4', + sat_inst_1hr_r1440x361_v72.descr: '3d,1-Hourly,Instantaneous,Model-Level,Chemistry and Meteorology Fields for satellite a priori, TEMPO domain', + sat_inst_1hr_r1440x361_v72.format: 'CFIO', + sat_inst_1hr_r1440x361_v72.mode: 'instantaneous', + sat_inst_1hr_r1440x361_v72.frequency: 010000, + sat_inst_1hr_r1440x361_v72.duration: 010000, + sat_inst_1hr_r1440x361_v72.ref_time: 150000, + sat_inst_1hr_r1440x361_v72.nbits: 10, + sat_inst_1hr_r1440x361_v72.grid_label: PC1440x721-DC + sat_inst_1hr_r1440x361_v72.subset: -180.0 180.0 0.0 90.0, + sat_inst_1hr_r1440x361_v72.fields: 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_CH2O' , 'GEOSCHEMCHEM' , 'HCHO' , + 'SpeciesConc_GLYX' , 'GEOSCHEMCHEM' , 'GLYX' , + 'SpeciesConc_OClO' , 'GEOSCHEMCHEM' , 'OClO' , + 'SpeciesConc_HNO2' , 'GEOSCHEMCHEM' , 'HNO2' , + 'SpeciesConc_BrO' , 'GEOSCHEMCHEM' , 'BrO' , + 'SpeciesConc_IO' , 'GEOSCHEMCHEM' , 'IO' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'U2M' , 'SURFACE' , + 'V2M' , 'SURFACE' , + 'PS' , 'DYN' , + 'T' , 'DYN' , + 'Q' , 'MOIST' , + 'ZPBL' , 'TURBULENCE' , + 'TROPP_BLENDED' , 'AGCM' , 'TROPPB' , + 'ASNOW' , 'SURFACE' , 'FRSNO' , + 'TSLAND' , 'SURFACE' , 'SNOMAS' , + 'SNOWDP' , 'SURFACE' , 'SNODP' , + 'FRACI' , 'SURFACE' , 'FRSEAICE' , + 'PHIS' , 'AGCM' , + :: + +# Collection for ACCLIP field campaign + + ste_inst_1hr_r719x281_p6.template: '%y4%m2%d2_%h2%n2z.nc4' , + ste_inst_1hr_r719x281_p6.archive: '%c/Y%y4', + ste_inst_1hr_r719x281_p6.descr: '3d,1-Hourly,Instantaneous,Pressure-Level,Chemistry and Meteorology Fields for UTLS studies for ASM region' , + ste_inst_1hr_r719x281_p6.format: 'CFIO' , + ste_inst_1hr_r719x281_p6.mode: 'instantaneous' , + ste_inst_1hr_r719x281_p6.nbits: 10 , + ste_inst_1hr_r719x281_p6.frequency: 010000 , + ste_inst_1hr_r719x281_p6.duration: 010000 , + ste_inst_1hr_r719x281_p6.ref_time: 150000, + ste_inst_1hr_r719x281_p6.end_date: 20170202, + ste_inst_1hr_r719x281_p6.end_time: 210000, + ste_inst_1hr_r719x281_p6.grid_label: PC1440x721-DC + ste_inst_1hr_r719x281_p6.subset: -120.0 180.0 -10.0 60.0, + ste_inst_1hr_r719x281_p6.vscale: 100.0 , + ste_inst_1hr_r719x281_p6.vunit: 'hPa' , + ste_inst_1hr_r719x281_p6.vvars: 'log(PLE)' , 'DYN' , + ste_inst_1hr_r719x281_p6.levels: 850 200 150 100 85 70 + ste_inst_1hr_r719x281_p6.fields: 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_NO' , 'GEOSCHEMCHEM' , 'NO' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_CH2O' , 'GEOSCHEMCHEM' , 'HCHO' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'SpeciesConc_C2H6' , 'GEOSCHEMCHEM' , 'C2H6' , + 'SpeciesConc_C3H8' , 'GEOSCHEMCHEM' , 'C3H8' , + 'SpeciesConc_SO2' , 'GEOSCHEMCHEM' , 'SO2' , + 'SpeciesConc_OCPI' , 'GEOSCHEMCHEM' , 'OCPI' , + 'SpeciesConc_OCPO' , 'GEOSCHEMCHEM' , 'OCPO' , + 'SpeciesConc_BCPI' , 'GEOSCHEMCHEM' , 'BCPI' , + 'SpeciesConc_BCPO' , 'GEOSCHEMCHEM' , 'BCPO' , + 'SpeciesConc_SO4' , 'GEOSCHEMCHEM' , 'SO4' , + 'SpeciesConc_SO4s' , 'GEOSCHEMCHEM' , 'SO4s' , + :: + +# Collection on CS, for JEDI applications + jdi_inst_1hr_glo_C360x360x6_v72.template: '%y4%m2%d2_%h2%n2z.nc4', + jdi_inst_1hr_glo_C360x360x6_v72.archive: '%c/Y%y4', + jdi_inst_1hr_glo_C360x360x6_v72.format: 'CFIO', + jdi_inst_1hr_glo_C360x360x6_v72.mode: 'instantaneous' , + jdi_inst_1hr_glo_C360x360x6_v72.frequency: 010000, + jdi_inst_1hr_glo_C360x360x6_v72.ref_time: 210000, + jdi_inst_1hr_glo_C360x360x6_v72.fields: 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_NO' , 'GEOSCHEMCHEM' , 'NO' , + 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'PM25' , 'GEOSCHEMCHEM' , + 'DELP' , 'DYN' , + 'U;V' , 'DYN' , + 'T' , 'DYN' , + 'PS' , 'DYN' , + 'Q' , 'MOIST' , + :: + diff --git a/run/GEOS/TransportTracers/GEOSCHEMchem_ExtData.rc b/run/GEOS/TransportTracers/GEOSCHEMchem_ExtData.rc new file mode 100644 index 000000000..443344a9a --- /dev/null +++ b/run/GEOS/TransportTracers/GEOSCHEMchem_ExtData.rc @@ -0,0 +1,228 @@ +Ext_AllowExtrap: .true. +# +PrimaryExports%% +#--------|-------|------|------------|---------------|--------|-------|---------------------| +# Export | | | |___ Refresh ___|____ Factors ___|___ External File ___| +# Name | Units | Clim |Conservative| Time Template | Offset | Scale | Variable | Template | +#--------|-------|------|------------|---------------|--------|-------|----------|----------| +# +# Notes: +# Units should be in single quotes if they contain whitespace +# Climatology should be Y if the file contains monthly climatology; otherwise it should be N +# Conservative should be Y if units imply mass conservation dependency on regrid method (e.g. value per area) +# Refresh Time Template should be: +# 1. - if the file contains time-invariant constants +# 2. prefixed with F if no time interpolation between data reads (F = fixed) +# 3. 0 if data should be kept up-to-date at all times +# 4. 0:HHMMSS if data occurs in file with frequency HHMMSS and should be updated at that frequency +# 5. %y4-%m2-%d2T%h2:00:00, with any tokens replaced by appropriate constant time value, if multiple time +# values are in the same file. Note that including an F prefix indicates the data should be treated +# as constant until the next refresh time. Omission of the F prefix will time-interpolate between +# the values. +# Minimize whitespace wherever possible to avoid surpassing the ESMF read buffer character limit, +# applicable only for uncommented lines. +# +# +#============================================================================== +# --- Fields for lightning emissions (Extension 103) --- +# These fields are stored in State_Met, along with the other met fields +#============================================================================== +FLASH_DENS 1 N N - none none LDENS /dev/null +CONV_DEPTH 1 N N - none none CTH /dev/null + +############################################################################### +### +### Land data (not handled by HEMCO) +### +############################################################################### +# +#============================================================================== +# Olson land types +#============================================================================== +# Olson land types - conservative frac regridding of OLSON as float +OLSON00 '1' N F;0 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON01 '1' N F;1 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON02 '1' N F;2 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON03 '1' N F;3 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON04 '1' N F;4 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON05 '1' N F;5 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON06 '1' N F;6 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON07 '1' N F;7 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON08 '1' N F;8 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON09 '1' N F;9 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON10 '1' N F;10 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON11 '1' N F;11 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON12 '1' N F;12 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON13 '1' N F;13 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON14 '1' N F;14 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON15 '1' N F;15 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON16 '1' N F;16 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON17 '1' N F;17 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON18 '1' N F;18 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON19 '1' N F;19 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON20 '1' N F;20 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON21 '1' N F;21 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON22 '1' N F;22 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON23 '1' N F;23 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON24 '1' N F;24 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON25 '1' N F;25 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON26 '1' N F;26 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON27 '1' N F;27 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON28 '1' N F;28 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON29 '1' N F;29 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON30 '1' N F;30 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON31 '1' N F;31 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON32 '1' N F;32 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON33 '1' N F;33 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON34 '1' N F;34 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON35 '1' N F;35 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON36 '1' N F;36 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON37 '1' N F;37 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON38 '1' N F;38 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON39 '1' N F;39 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON40 '1' N F;40 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON41 '1' N F;41 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON42 '1' N F;42 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON43 '1' N F;43 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON44 '1' N F;44 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON45 '1' N F;45 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON46 '1' N F;46 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON47 '1' N F;47 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON48 '1' N F;48 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON49 '1' N F;49 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON50 '1' N F;50 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON51 '1' N F;51 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON52 '1' N F;52 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON53 '1' N F;53 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON54 '1' N F;54 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON55 '1' N F;55 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON56 '1' N F;56 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON57 '1' N F;57 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON58 '1' N F;58 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON59 '1' N F;59 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON60 '1' N F;60 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON61 '1' N F;61 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON62 '1' N F;62 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON63 '1' N F;63 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON64 '1' N F;64 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON65 '1' N F;65 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON66 '1' N F;66 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON67 '1' N F;67 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON68 '1' N F;68 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON69 '1' N F;69 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON70 '1' N F;70 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON71 '1' N F;71 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc +OLSON72 '1' N F;72 - none none OLSON /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc + +#============================================================================== +# Yuan-processed MODIS Leaf Area Index +#============================================================================== +# Use file with land type stored as 3rd dimension to speed up file read +XLAIMULTI cm2_cm-2 N Y %y4-%m2-%d2T00:00:00 none none XLAIMULTI /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/Yuan_XLAI/v2019-03/Condensed_Yuan_proc_MODIS_XLAI.025x025.%y4.nc + +############################################################################### +### +### HEMCO Base Emissions (Update if HEMCO_Config.rc changes) +### +############################################################################### + +#============================================================================== +# SF6 emissions from EDGAR v4.2 +#============================================================================== +EDGAR_SF6 1 N Y F%y4-01-01T00:00:00 none none emi_sf6 /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/SF6/v2019-01/EDGAR_v42_SF6_IPCC_2.generic.01x01.nc + +#============================================================================== +# --- EDGAR v4.3 (EDGARv4.3) --- +# EDGARv4.3 is turned off by default in HEMCO_Config.rc +#============================================================================== +EDGAR_CO_25_POW kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc +EDGAR_CO_25_ENG kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc +EDGAR_CO_25_IND kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc +EDGAR_CO_25_TRO kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc +EDGAR_CO_25_TNG kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc +EDGAR_CO_25_RCO kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc +EDGAR_CO_25_PPA kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc +#EDGAR_CO_25_AWB kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.AWB.0.1x0.1.nc +EDGAR_CO_25_SWD kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc +EDGAR_CO_25_FFF kg/m2/s N Y F%y4-01-01T00:00:00 none none emi_co /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc + +#============================================================================== +# --- CEDS (CEDSv2) --- +#============================================================================== +CEDS_CO_25_AGR kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_agr /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_ENE kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_ene /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_IND kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_ind /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_TRA kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_tra /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_RCO kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_rco /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_SLV kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_slv /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_WST kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_wst /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc +CEDS_CO_25_SHP kg/m2/s N Y F%y4-%m2-01T00:00:00 none none CO_shp /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc + +############################################################################### +### +### HEMCO Extensions Data (update if HEMCO_Config.rc changes) +### +############################################################################### + +ZHANG_Rn222_EMIS kg/m2/s N Y F%y4-%m2-01T00:00:00 none none rnemis /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/ZHANG_Rn222/v2021-11/Rn222_Emis_Zhang_Liu_et_al_05x05_mass.nc + +############################################################################### +### +### HEMCO Non-Emissions Data (update if HEMCO_Config.rc changes) +### +############################################################################### + +#============================================================================== +# --- Time zones (offset to UTC) --- +#============================================================================== +TIMEZONES NA N V - none none UTC_OFFSET /discover/nobackup/cakelle2/data/timezones_esmf.2x25.nc + +############################################################################### +### +### HEMCO Scale Factors (update if HEMCO_Config.rc changes) +### +############################################################################### + +#============================================================================== +# --- annual scale factors --- +#============================================================================== +LIQFUEL_THISYR 1 N Y F%y4-01-01T00:00:00 none none COscalar /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc +LIQFUEL_2008_2010 1 N Y F%y4-01-01T00:00:00 none none COscalar /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc + +#============================================================================== +# --- seasonal scale factors --- +#============================================================================== +# --- From EDGAR 4.3.1 --- +POW 1 Y Y F2010-%m2-01T00:00:00 none none POW /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +ENG 1 Y Y F2010-%m2-01T00:00:00 none none ENG /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +IND 1 Y Y F2010-%m2-01T00:00:00 none none IND /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +TRO 1 Y Y F2010-%m2-01T00:00:00 none none TRO /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +TNG 1 Y Y F2010-%m2-01T00:00:00 none none TNG /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +RCO 1 Y Y F2010-%m2-01T00:00:00 none none RCO /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +PPA 1 Y Y F2010-%m2-01T00:00:00 none none PPA /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +AGR 1 Y Y F2010-%m2-01T00:00:00 none none AGR /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +AWB 1 Y Y F2010-%m2-01T00:00:00 none none AWB /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +SOL 1 Y Y F2010-%m2-01T00:00:00 none none SOL /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +SWD 1 Y Y F2010-%m2-01T00:00:00 none none SWD /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc +FFF 1 Y Y F2010-%m2-01T00:00:00 none none FFF /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc + +############################################################################### +### +### Masks (update if HEMCO_Config.rc changes) +### +############################################################################### + +#============================================================================== +# Country/region masks +#============================================================================== +OCEAN_MASK 1 N Y - none none FROCEAN /gpfsm/dnb06/projects/p171/dao_ops/archive/d5294_geosit_jan18/diag/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_C180x180x6_slv.2018-01-01T0300Z.nc4 + +%% + +DerivedExports%% +# ---------|---------|--------------------------------------------| +# Export | Primary |_________________ Mask _____________________| +# Name | Name | Name | Expression | +# ---------|---------|------------|-------------------------------| +# ---------|---------|------------|-------------------------------| +%% diff --git a/run/GEOS/TransportTracers/GEOSCHEMchem_ExtData.yaml b/run/GEOS/TransportTracers/GEOSCHEMchem_ExtData.yaml new file mode 100644 index 000000000..b830e511b --- /dev/null +++ b/run/GEOS/TransportTracers/GEOSCHEMchem_ExtData.yaml @@ -0,0 +1,603 @@ +Collections: + TT_AnnualScalar.geos.1x1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc + TT_CO-em-anthro_CMIP_CEDS_%y4.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/CEDS/v2021-06/%y4/CO-em-anthro_CMIP_CEDS_%y4.nc + TT_Condensed_Yuan_proc_MODIS_XLAI.025x025.%y4.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/Yuan_XLAI/v2019-03/Condensed_Yuan_proc_MODIS_XLAI.025x025.%y4.nc + TT_EDGAR_v42_SF6_IPCC_2.generic.01x01.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/SF6/v2019-01/EDGAR_v42_SF6_IPCC_2.generic.01x01.nc + TT_EDGAR_v43.CO.ENG.0.1x0.1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc + TT_EDGAR_v43.CO.FFF.0.1x0.1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc + TT_EDGAR_v43.CO.IND.0.1x0.1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc + TT_EDGAR_v43.CO.POW.0.1x0.1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc + TT_EDGAR_v43.CO.PPA.0.1x0.1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc + TT_EDGAR_v43.CO.RCO.0.1x0.1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc + TT_EDGAR_v43.CO.SWD.0.1x0.1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc + TT_EDGAR_v43.CO.TNG.0.1x0.1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc + TT_EDGAR_v43.CO.TRO.0.1x0.1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc + TT_EDGAR_v43.Seasonal.1x1.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc + TT_Olson_2001_Land_Map.025x025.generic.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/Olson_Land_Map_201203/Olson_2001_Land_Map.025x025.generic.nc + TT_Rn222_Emis_Zhang_Liu_et_al_05x05_mass.nc: + template: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/ZHANG_Rn222/v2021-11/Rn222_Emis_Zhang_Liu_et_al_05x05_mass.nc + TT_timezones_esmf.2x25.nc: + template: /discover/nobackup/cakelle2/data/timezones_esmf.2x25.nc + +Samplings: + TT_sample_0: + extrapolation: persist_closest + TT_sample_1: + update_frequency: PT24H + update_reference_time: '0' + TT_sample_2: + time_interpolation: 'False' + update_frequency: P1Y + update_reference_time: '0' + TT_sample_3: + time_interpolation: 'False' + update_frequency: P1M + update_reference_time: '0' + TT_sample_4: + extrapolation: clim + time_interpolation: 'False' + update_frequency: P1M + update_reference_time: '0' + +Exports: + AGR: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: AGR + AWB: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: AWB + CEDS_CO_25_AGR: + collection: TT_CO-em-anthro_CMIP_CEDS_%y4.nc + regrid: CONSERVE + sample: TT_sample_3 + variable: CO_agr + CEDS_CO_25_ENE: + collection: TT_CO-em-anthro_CMIP_CEDS_%y4.nc + regrid: CONSERVE + sample: TT_sample_3 + variable: CO_ene + CEDS_CO_25_IND: + collection: TT_CO-em-anthro_CMIP_CEDS_%y4.nc + regrid: CONSERVE + sample: TT_sample_3 + variable: CO_ind + CEDS_CO_25_RCO: + collection: TT_CO-em-anthro_CMIP_CEDS_%y4.nc + regrid: CONSERVE + sample: TT_sample_3 + variable: CO_rco + CEDS_CO_25_SHP: + collection: TT_CO-em-anthro_CMIP_CEDS_%y4.nc + regrid: CONSERVE + sample: TT_sample_3 + variable: CO_shp + CEDS_CO_25_SLV: + collection: TT_CO-em-anthro_CMIP_CEDS_%y4.nc + regrid: CONSERVE + sample: TT_sample_3 + variable: CO_slv + CEDS_CO_25_TRA: + collection: TT_CO-em-anthro_CMIP_CEDS_%y4.nc + regrid: CONSERVE + sample: TT_sample_3 + variable: CO_tra + CEDS_CO_25_WST: + collection: TT_CO-em-anthro_CMIP_CEDS_%y4.nc + regrid: CONSERVE + sample: TT_sample_3 + variable: CO_wst + CONV_DEPTH: + collection: /dev/null + EDGAR_CO_25_ENG: + collection: TT_EDGAR_v43.CO.ENG.0.1x0.1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_co + EDGAR_CO_25_FFF: + collection: TT_EDGAR_v43.CO.FFF.0.1x0.1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_co + EDGAR_CO_25_IND: + collection: TT_EDGAR_v43.CO.IND.0.1x0.1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_co + EDGAR_CO_25_POW: + collection: TT_EDGAR_v43.CO.POW.0.1x0.1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_co + EDGAR_CO_25_PPA: + collection: TT_EDGAR_v43.CO.PPA.0.1x0.1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_co + EDGAR_CO_25_RCO: + collection: TT_EDGAR_v43.CO.RCO.0.1x0.1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_co + EDGAR_CO_25_SWD: + collection: TT_EDGAR_v43.CO.SWD.0.1x0.1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_co + EDGAR_CO_25_TNG: + collection: TT_EDGAR_v43.CO.TNG.0.1x0.1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_co + EDGAR_CO_25_TRO: + collection: TT_EDGAR_v43.CO.TRO.0.1x0.1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_co + EDGAR_SF6: + collection: TT_EDGAR_v42_SF6_IPCC_2.generic.01x01.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: emi_sf6 + ENG: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: ENG + FFF: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: FFF + FLASH_DENS: + collection: /dev/null + IND: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: IND + LIQFUEL_2008_2010: + collection: TT_AnnualScalar.geos.1x1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: COscalar + LIQFUEL_THISYR: + collection: TT_AnnualScalar.geos.1x1.nc + regrid: CONSERVE + sample: TT_sample_2 + variable: COscalar + OLSON00: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;0 + sample: TT_sample_0 + variable: OLSON + OLSON01: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;1 + sample: TT_sample_0 + variable: OLSON + OLSON02: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;2 + sample: TT_sample_0 + variable: OLSON + OLSON03: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;3 + sample: TT_sample_0 + variable: OLSON + OLSON04: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;4 + sample: TT_sample_0 + variable: OLSON + OLSON05: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;5 + sample: TT_sample_0 + variable: OLSON + OLSON06: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;6 + sample: TT_sample_0 + variable: OLSON + OLSON07: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;7 + sample: TT_sample_0 + variable: OLSON + OLSON08: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;8 + sample: TT_sample_0 + variable: OLSON + OLSON09: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;9 + sample: TT_sample_0 + variable: OLSON + OLSON10: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;10 + sample: TT_sample_0 + variable: OLSON + OLSON11: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;11 + sample: TT_sample_0 + variable: OLSON + OLSON12: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;12 + sample: TT_sample_0 + variable: OLSON + OLSON13: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;13 + sample: TT_sample_0 + variable: OLSON + OLSON14: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;14 + sample: TT_sample_0 + variable: OLSON + OLSON15: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;15 + sample: TT_sample_0 + variable: OLSON + OLSON16: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;16 + sample: TT_sample_0 + variable: OLSON + OLSON17: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;17 + sample: TT_sample_0 + variable: OLSON + OLSON18: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;18 + sample: TT_sample_0 + variable: OLSON + OLSON19: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;19 + sample: TT_sample_0 + variable: OLSON + OLSON20: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;20 + sample: TT_sample_0 + variable: OLSON + OLSON21: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;21 + sample: TT_sample_0 + variable: OLSON + OLSON22: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;22 + sample: TT_sample_0 + variable: OLSON + OLSON23: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;23 + sample: TT_sample_0 + variable: OLSON + OLSON24: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;24 + sample: TT_sample_0 + variable: OLSON + OLSON25: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;25 + sample: TT_sample_0 + variable: OLSON + OLSON26: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;26 + sample: TT_sample_0 + variable: OLSON + OLSON27: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;27 + sample: TT_sample_0 + variable: OLSON + OLSON28: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;28 + sample: TT_sample_0 + variable: OLSON + OLSON29: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;29 + sample: TT_sample_0 + variable: OLSON + OLSON30: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;30 + sample: TT_sample_0 + variable: OLSON + OLSON31: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;31 + sample: TT_sample_0 + variable: OLSON + OLSON32: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;32 + sample: TT_sample_0 + variable: OLSON + OLSON33: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;33 + sample: TT_sample_0 + variable: OLSON + OLSON34: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;34 + sample: TT_sample_0 + variable: OLSON + OLSON35: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;35 + sample: TT_sample_0 + variable: OLSON + OLSON36: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;36 + sample: TT_sample_0 + variable: OLSON + OLSON37: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;37 + sample: TT_sample_0 + variable: OLSON + OLSON38: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;38 + sample: TT_sample_0 + variable: OLSON + OLSON39: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;39 + sample: TT_sample_0 + variable: OLSON + OLSON40: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;40 + sample: TT_sample_0 + variable: OLSON + OLSON41: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;41 + sample: TT_sample_0 + variable: OLSON + OLSON42: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;42 + sample: TT_sample_0 + variable: OLSON + OLSON43: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;43 + sample: TT_sample_0 + variable: OLSON + OLSON44: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;44 + sample: TT_sample_0 + variable: OLSON + OLSON45: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;45 + sample: TT_sample_0 + variable: OLSON + OLSON46: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;46 + sample: TT_sample_0 + variable: OLSON + OLSON47: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;47 + sample: TT_sample_0 + variable: OLSON + OLSON48: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;48 + sample: TT_sample_0 + variable: OLSON + OLSON49: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;49 + sample: TT_sample_0 + variable: OLSON + OLSON50: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;50 + sample: TT_sample_0 + variable: OLSON + OLSON51: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;51 + sample: TT_sample_0 + variable: OLSON + OLSON52: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;52 + sample: TT_sample_0 + variable: OLSON + OLSON53: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;53 + sample: TT_sample_0 + variable: OLSON + OLSON54: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;54 + sample: TT_sample_0 + variable: OLSON + OLSON55: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;55 + sample: TT_sample_0 + variable: OLSON + OLSON56: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;56 + sample: TT_sample_0 + variable: OLSON + OLSON57: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;57 + sample: TT_sample_0 + variable: OLSON + OLSON58: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;58 + sample: TT_sample_0 + variable: OLSON + OLSON59: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;59 + sample: TT_sample_0 + variable: OLSON + OLSON60: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;60 + sample: TT_sample_0 + variable: OLSON + OLSON61: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;61 + sample: TT_sample_0 + variable: OLSON + OLSON62: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;62 + sample: TT_sample_0 + variable: OLSON + OLSON63: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;63 + sample: TT_sample_0 + variable: OLSON + OLSON64: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;64 + sample: TT_sample_0 + variable: OLSON + OLSON65: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;65 + sample: TT_sample_0 + variable: OLSON + OLSON66: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;66 + sample: TT_sample_0 + variable: OLSON + OLSON67: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;67 + sample: TT_sample_0 + variable: OLSON + OLSON68: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;68 + sample: TT_sample_0 + variable: OLSON + OLSON69: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;69 + sample: TT_sample_0 + variable: OLSON + OLSON70: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;70 + sample: TT_sample_0 + variable: OLSON + OLSON71: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;71 + sample: TT_sample_0 + variable: OLSON + OLSON72: + collection: TT_Olson_2001_Land_Map.025x025.generic.nc + regrid: FRACTION;72 + sample: TT_sample_0 + variable: OLSON + POW: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: POW + PPA: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: PPA + RCO: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: RCO + SOL: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: SOL + SWD: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: SWD + TIMEZONES: + collection: TT_timezones_esmf.2x25.nc + regrid: VOTE + sample: TT_sample_0 + variable: UTC_OFFSET + TNG: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: TNG + TRO: + collection: TT_EDGAR_v43.Seasonal.1x1.nc + regrid: CONSERVE + sample: TT_sample_4 + variable: TRO + XLAIMULTI: + collection: TT_Condensed_Yuan_proc_MODIS_XLAI.025x025.%y4.nc + regrid: CONSERVE + sample: TT_sample_1 + variable: XLAIMULTI + ZHANG_Rn222_EMIS: + collection: TT_Rn222_Emis_Zhang_Liu_et_al_05x05_mass.nc + regrid: CONSERVE + sample: TT_sample_3 + variable: rnemis + + diff --git a/run/GEOS/TransportTracers/GEOSCHEMchem_GridComp.rc b/run/GEOS/TransportTracers/GEOSCHEMchem_GridComp.rc new file mode 100644 index 000000000..d57443790 --- /dev/null +++ b/run/GEOS/TransportTracers/GEOSCHEMchem_GridComp.rc @@ -0,0 +1,237 @@ +#------------------------------------------------------------------------------ +! GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +# +# !DESCRIPTION: Resource file for the GEOSCHEMchem Gridded Component. +# +# !REVISION HISTORY: +# 06 Oct 2009 - P. Le Sager - Initial +# 06 Dec 2009 - da Silva - Converted from NAMELIST to ESMF Config +# 13 Apr 2010 - R. Yantosca - Added dimension info and tracer names +# 07 Nov 2012 - R. Yantosca - Added placeholder fields for input.geos +# 26 Feb 2013 - R. Yantosca - Added MAX_DEP for Input_Opt +# 19 Mar 2013 - R. Yantosca - Added LINOZ fields for Input_Opt +# 19 Mar 2013 - R. Yantosca - MAX_TRCS should be 53, not 54 +# 01 Aug 2014 - M. Long-sca - MAX_TRCS & MAX_DIAG set to 130 & 80, resp. +# 07 Jun 2018 - C.Keller/K.E.Knowland - Change LLSTRAT from 59 to 40, add Calc_VUD_online +#------------------------------------------------------------------------------ + +# +# %%% Start date/time %%% +# %%% Used by ut_GEOSCHEM in sandbox %%% +# +UTC_START_DATE: 20050701 +UTC_START_TIME: 000000 + +# +# %%% End date/time %%% +# %%% Used by ut_GEOSCHEM in sandbox %%% +# +UTC_END_DATE: 20050702 +UTC_END_TIME: 000000 + +# +# %%% Timesteps [sec] %%% +# +DYNAMICS_TIMESTEP: 1800 +CHEMISTRY_TIMESTEP: 1800 + +# +# %%% Placeholder fields for Input_Opt object %%% +# +MAX_DIAG: 80 +MAX_TRCS: 130 +MAX_MEMB: 15 +MAX_FAMS: 20 +MAX_DEP: 55 +LINOZ_NFIELDS: 7 +LINOZ_NLAT 18 +LINOZ_NLEVELS: 25 +LINOZ_NMONTHS: 12 + +# Maximum level used for chemistry. If not extending to the top of the atmosphere, +# production and loss rates from an offline GMI simulation will be applied to the +# remaining levels (based on GEOS-Chem's linearized stratospheric chemistry scheme). +# It is recommended to do full chemistry over the entire column, so that LLSTRAT = LM. +# This is the default. +#LLSTRAT: 72 + +# +# FAST-JX options: +# LLFASTJX are the number of levels used for FAST-JX. The default value for a simulation +# on 72 model levels is 601, and 1201 if running on 132 model levels. +# FJX_EXTRAL_ITERMAX (defaults: 1 and 5 for 72 and 132 model levels, respectively) and +# FJX_EXTRAL_ERR (default = 1) are fine tuning parameter that can be used +# to get more control over the FAST-JX calculations. Increase FJX_EXTRAL_ITERMAX if +# you encounter problems with FAST-JX, e.g. at 132 model levels. +#LLFASTJX: 601 +#FJX_EXTRAL_ITERMAX: 1 +#FJX_EXTRAL_ERR: 1 + +# +# %%% Run phases (1 or 2. 2 recommended) %%% +# +RUN_PHASES: 2 + +# +# %%% Stop if KPP integration fails (default: 1) %%% +# +KPP_STOP_IF_FAIL: 0 + + +# +# %%% HEMCO configuration file %%% +# +HEMCO_CONFIG: HEMCO_Config.rc + +# +# %%% Log file names for redirecting stdout %%% +# +STDOUT_LOGFILE: PET%%%%%.GEOSCHEMchem.log +STDOUT_LOGLUN: 6 + +# +# %%% Initialize all concentrations to zero? ### +# +INIT_ZERO: 0 + +# +# %%% Use archived convection fields? %%% +# +ARCHIVED_CONV: 0 + +# %%% Use MOIST module for convective transport (including washout) +# Make species friendly to moist? If turned on, convection must be turned off in in geoschem_config.yml +Species_friendly_to_moist: 0 +# Turn off washout for SO2? +TurnOff_SO2_washout: 1 +# Calculate CLDLIQ and CLDICE online based on current conditions (use default GEOS-Chem parameterization otherwise)? +Online_CLDLIQ: 1 +# Use online vertical updraft velocity or use default GEOS-Chem parameterization? +Online_VUD: 1 + +# Use GAAS on GEOS-Chem aerosols? +Species_friendly_to_GAAS: 0 + +# +# %%% Tuning parameter to reduce washout efficiency +# %%% of convective large-scale precip. +# %%% Use at own risk: the effects of setting this +# %%% parameter to a value between 0.0 and 1.0 are +# %%% untested! +# +### cakelle2, 20180828: bug fix, changed from -999.0 to 1.0 +Convective_precip_correction: 1.0 + +# +# %%% Cap polar tropopause at 200hPa (default=yes)? %%% +# +Cap_polar_tropopause: 0 + +# +# %%% Ozonopause value in ppb. If set to <= 0.0, the +# %%% GEOS-5 tropopause will be used (default) +# +Use_ozonopause: -999.0 + +# +# %%% Prescribe stratospheric H2O +# +Prescribe_strat_H2O: 1 + +# %%% Settings for excluding species from being transported +Reduce_transport_species: 0 +Transport_blacklist: CFC115,CFC114,N2O,CFC12,H1301,CFC113,CFC11,CCl4,H2O,H2402,H1211,HCFC142b,HCFC22,HCFC141b,CH3CCl3,CH3Br,CH3Cl,HCFC123 + +# +# %%% Include short-lived species in internal restart file? +# +Shortlived_species_in_restart: 0 + +## +# %%% Read initial conditions from external file +# %%% instead of internal state +# +INIT_SPC_FROM_FILE: 0 +INIT_SPC_FILE: /discover/nobackup/cakelle2/GCC_Restarts/v13.1.0-beta.1/GEOSChem.Restart.20190801_0000z.edit.incHEMCO.nc4 +ONLY_SHORTLIVED_SPECIES: 0 +UNIFORM_IF_MISSING: 1.0e-12 +DATA_IS_IN_PPBV: 1 +ONLY_ON_FIRST_STEP: 1 +DATA_ON_GEOS_LEVELS: 1 +DO_NOT_OVERWRITE_ABOVE_LEVEL: 59 + +USE_GMI_MESO: 0 +GMI_TEMPLATE: /discover/nobackup/cakelle2/data/GMI/gmi.clim.%spc.geos5.2x25.esmf.nc + +# +# %%% Use GMI P/L for O3 (default=no)? %%% +# +Use_GMI_O3_PL: 0 + +# Analysis options +ANAPHASE: 2 +Analysis_nSpecies: 2 +Analysis_Settings_Spec001: GEOSCHEMchem_AnaSettings_O3.rc +Analysis_Settings_Spec002: GEOSCHEMchem_AnaSettings_NO2.rc + +# +# NOx lightning met inputs +# +# Input source for flash rates: If set to 'LFR' or 'LFR_GCC', the corresponding MOIST export is used. If set to any other +# name, will search for that name in the import state. For instance, set it to 'LFR_OFFLINE' and then define an import via +# ExtData to use LFR values from a file. Default is LFR_GCC. All values expected in [flashes km-2 s-1]. +# Scale factors can be defined to adjust the imported LFR field for the southern extratropics (<23S), tropics (23S-23N), and +# the northern extratropics (>23N). In addition, a global scale factor can be set to rescale the overall LFR. +# These factors can be used to better match the expected global annual average flash rate of 46 flashes s-1, and a distribution +# of ~65% in the tropics and ~23% in the N extratropics. +# +LIGHTNING_FLASH_RATE_SOURCE: LFR_GCC +LFR_SCALING_SOUTHERN_TROP: 2.0 +LFR_SCALING_NORTHERN_TROP: 1.1 +LFR_SCALING_TROPICS: 0.4 +LFR_SCALING_GLOBAL: 2.0 + +# +# Input source for convective height: If set to 'CNV_MFC', will compute the convective height from convective mass fluxes +# (default). If set to 'BYNCY', will compute it from the buoyancy and convective fraction. For all other cases, will look +# for the field in import and use that as is. For instance, set it to 'CCTH_OFFLINE' and define an import via ExtData to +# use values from an external file. If read from file, the values must be in [m]. +# +LIGHTNING_CONVECTIVE_TOP_SOURCE: CNV_MFC +# + +# Turn off heterogenous reactions in stratosphere? +# If true, the following heterogeneous reactions are disabled (in the stratosphere): +# ClNO3(g) + HBr(l,s) --> BrCl + HNO3 +# BrNO3(g) + HCl(l,s) --> BrCl + HNO3 +# HOCl(g) + HBr(l,s) --> BrCl + H2O +TurnOffHetRates: 1 + +# +# Enable Bry and Cly family transport +# +Bry_Cly_Family_Transport: 0 + +# +# CO production from CO2 photolysis +# +CO_production_from_CO2_photolysis: 0 +CO2photolysisFile: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/StratChem/SC.J_20_12_79_72_200_45.jpl15.nc4 + +# +# CO2 coupling with GOCART +# +Import_CO2_from_GOCART: 0 +GOCART_CO2_FieldName: GOCART_CO2 + +# +# Set CO mesosphere upper boundary to external field +# +Set_CO_Mesosphere: 0 +CO_Mesosphere_FieldName: CO_CMAM + +# +# To set CH4 boundary condition from GEOS +# Note: if set to 1, need to make sure that an import named 'GEOS_CH4' is set in ExtData. +CH4_from_GEOS: 0 diff --git a/run/GEOS/TransportTracers/HEMCO_Config.rc b/run/GEOS/TransportTracers/HEMCO_Config.rc new file mode 100644 index 000000000..ca21f1f02 --- /dev/null +++ b/run/GEOS/TransportTracers/HEMCO_Config.rc @@ -0,0 +1,430 @@ +#------------------------------------------------------------------------------ +# Harmonized Emissions Component (HEMCO) ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: HEMCO_Config.rc +# +# !DESCRIPTION: Contains configuration information for HEMCO. Define the +# emissions inventories and corresponding file paths here. Entire +# configuration files can be inserted into this configuration file with +# an '>>>include' statement, e.g. '>>>include HEMCO\_Config\_test.rc' +# The settings of include-files will be ignored. +#\\ +#\\ +# !REMARKS: +# This file has been customized for the Transport Tracers simulation. +# See The HEMCO User's Guide for file details: +# http://wiki.geos-chem.org/The_HEMCO_User%27s_Guide +# +# !REVISION HISTORY: +# See https://github.com/geoschem/geos-chem for complete history +#EOP +#------------------------------------------------------------------------------ +#BOC +############################################################################### +### BEGIN SECTION SETTINGS +############################################################################### + +ROOT: /gpfsm/dnb34/ewlundgr/data/HEMCO +METDIR: not_used +Logfile: * +DiagnFile: HEMCO_DiagnFile.rc +DiagnPrefix: ./OutputDir/HEMCO_diagnostics +DiagnFreq: Monthly +Wildcard: * +Separator: / +Unit tolerance: 1 +Negative values: 0 +Only unitless scale factors: false +Verbose: false +VerboseOnCores: root # Accepted values: root all + +### END SECTION SETTINGS ### + +############################################################################### +### BEGIN SECTION EXTENSION SWITCHES +############################################################################### +# ExtNr ExtName on/off Species Years avail. +0 Base : on * +# ----- MAIN SWITCHES --------------------------------------------------------- + --> EMISSIONS : true + --> METEOROLOGY : false +# ----- RESTART FIELDS -------------------------------------------------------- + --> GC_RESTART : false +# ----- GLOBAL INVENTORIES ---------------------------------------------------- + --> EDGARv42_SF6 : true # 1970-2008 + --> OCEAN_CH3I : true + --> CEDSv2 : true # 1750-2019 + --> EDGARv43 : false # 1970-2010 + --> HTAP : false # 2008-2010 + --> UNIFORM_CO : true +# ----- NON-EMISSIONS DATA ---------------------------------------------------- + --> OLSON_LANDMAP : false # 1985 + --> YUAN_MODIS_LAI : false # 2000-2020 +#------------------------------------------------------------------------------ +100 GC_Rn-Pb-Be : on Rn222/Be7/Be7s/Be10/Be10s +# ----- Always Leave Extension 100 turned on. Furthermore: +# ----- Turning on ZHANG_Rn222 will use Zhang et al [2020] Rn222 emissions +# ----- Turning off ZHANG_Rn222 will use default emissions (Jacob et al [1997]) +101 ZHANG_Rn222 : on Rn222 + +### END SECTION EXTENSION SWITCHES ### + +############################################################################### +### BEGIN SECTION BASE EMISSIONS +############################################################################### + +# ExtNr Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Species ScalIDs Cat Hier + +(((EMISSIONS + +#============================================================================== +# SF6 emissions from EDGAR v4.2 +#============================================================================== +(((EDGARv42_SF6 +0 EDGAR_SF6 $ROOT/SF6/v2019-01/EDGAR_v42_SF6_IPCC_2.generic.01x01.nc emi_sf6 1970-2008/1/1/0 C xy kg/m2/s SF6 - 1 1 +)))EDGARv42_SF6 + +#============================================================================== +# CH3I emitted over the oceans at rate of 1 molec/cm2/s +#============================================================================== +(((OCEAN_CH3I +0 SRC_2D_CH3I 1.0 - - - xy molec/cm2/s CH3I 1000 1 1 +)))OCEAN_CH3I + +#============================================================================== +# Anthropogenic CO 25-day and 50-day tracers +# +# Choose CEDS, EDGAR, or HTAP +#============================================================================== +(((CEDSv2 +0 CEDS_CO_25_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_AGR - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_ENE - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_IND - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_TRA - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_RCO - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_SLV - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_WST - - - - - - CO_50 26 1 5 +0 CEDS_CO_25_SHP $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_shp 1750-2019/1-12/1/0 C xy kg/m2/s CO_25 26 1 5 +0 CEDS_CO_50_SHP - - - - - - CO_50 26 1 5 +)))CEDSv2 + +(((EDGARv43 +0 EDGAR_CO_25_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1201/26/52 1/2 2 +0 EDGAR_CO_50_POW - - - - - - CO_50 1201/26/52 1/2 2 +0 EDGAR_CO_25_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1202/26/52 1/2 2 +0 EDGAR_CO_50_ENG - - - - - - CO_50 1202/26/52 1/2 2 +0 EDGAR_CO_25_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1203/26/52 1/2 2 +0 EDGAR_CO_50_IND - - - - - - CO_50 1203/26/52 1/2 2 +0 EDGAR_CO_25_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1204/26/52 1/2 2 +0 EDGAR_CO_50_TRO - - - - - - CO_50 1204/26/52 1/2 2 +0 EDGAR_CO_25_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1205/26/52 1/2 2 +0 EDGAR_CO_50_TNG - - - - - - CO_50 1205/26/52 1/2 2 +0 EDGAR_CO_25_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1206/26/52 1/2 2 +0 EDGAR_CO_50_RCO - - - - - - CO_50 1206/26/52 1/2 2 +0 EDGAR_CO_25_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1207/26/52 1/2 2 +0 EDGAR_CO_50_PPA - - - - - - CO_50 1207/26/52 1/2 2 +#0 EDGAR_CO_25_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.AWB.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1209/26/52 1/2 2 +#0 EDGAR_CO_50_AWB - - - - - - CO_50 1209/26/52 1/2 2 +0 EDGAR_CO_25_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1211/26/52 1/2 2 +0 EDGAR_CO_50_SWD - - - - - - CO_50 1211/26/52 1/2 2 +0 EDGAR_CO_25_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO_25 1212/26/52 1/2 2 +0 EDGAR_CO_50_FFF - - - - - - CO_50 1211/26/52 1/2 2 +)))EDGARv43 + +############################################################################### +### EXTENSION DATA (subsection of BASE EMISSIONS SECTION) +### +### These fields are needed by the extensions listed above. The assigned ExtNr +### must match the ExtNr entry in section 'Extension switches'. These fields +### are only read if the extension is enabled. The fields are imported by the +### extensions by field name. The name given here must match the name used +### in the extension's source code. +############################################################################### + +#============================================================================== +# --- Zhang et al [2021] Rn222 emissions --- +# --- cf https://acp.copernicus.org/articles/21/1861/2021/ --- +#============================================================================== +(((ZHANG_Rn222 +101 ZHANG_Rn222_EMIS $ROOT/ZHANG_Rn222/v2021-11/Rn222_Emis_Zhang_Liu_et_al_05x05_mass.nc rnemis 2001/1-12/1/0 C xy kg/m2/s Rn222 - 1 1 +)))ZHANG_Rn222 + +)))EMISSIONS + +############################################################################### +### NON-EMISSIONS DATA (subsection of BASE EMISSIONS SECTION) +### +### Non-emissions data. The following fields are read through HEMCO but do +### not contain emissions data. The extension number is set to wildcard +### character denoting that these fields will not be considered for emission +### calculation. A given entry is only read if the assigned species name is +### an HEMCO species. +############################################################################### + +#============================================================================== +# --- Time zones (offset to UTC) --- +#============================================================================== +* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 + +#============================================================================== +# --- GEOS-Chem restart file --- +#============================================================================== +(((GC_RESTART +* SPC_ ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesRst_?ALL? $YYYY/$MM/$DD/$HH EFYO xyz 1 * - 1 1 +* DELPDRY ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Met_DELPDRY $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 +)))GC_RESTART + +#============================================================================== +# --- Olson land map masks --- +#============================================================================== +(((OLSON_LANDMAP +* LANDTYPE00 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE00 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE01 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE01 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE02 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE02 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE03 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE03 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE04 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE04 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE05 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE05 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE06 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE06 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE07 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE07 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE08 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE08 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE09 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE09 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE10 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE10 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE11 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE11 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE12 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE12 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE13 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE13 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE14 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE14 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE15 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE15 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE16 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE16 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE17 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE17 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE18 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE18 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE19 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE19 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE20 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE20 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE21 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE21 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE22 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE22 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE23 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE23 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE24 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE24 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE25 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE25 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE26 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE26 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE27 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE27 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE28 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE28 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE29 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE29 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE30 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE30 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE31 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE31 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE32 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE32 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE33 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE33 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE34 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE34 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE35 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE35 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE36 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE36 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE37 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE37 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE38 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE38 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE39 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE39 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE40 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE40 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE41 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE41 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE42 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE42 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE43 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE43 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE44 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE44 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE45 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE45 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE46 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE46 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE47 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE47 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE48 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE48 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE49 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE49 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE50 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE50 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE51 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE51 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE52 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE52 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE53 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE53 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE54 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE54 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE55 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE55 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE56 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE56 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE57 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE57 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE58 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE58 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE59 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE59 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE60 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE60 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE61 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE61 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE62 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE62 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE63 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE63 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE64 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE64 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE65 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE65 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE66 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE66 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE67 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE67 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE68 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE68 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE69 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE69 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE70 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE70 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE71 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE71 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE72 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE72 1985/1/1/0 C xy 1 * - 1 1 +)))OLSON_LANDMAP + +#============================================================================== +# --- Yuan processed MODIS leaf area index data --- +# +# Source: Yuan et al 2011, doi:10.1016/j.rse.2011.01.001 +# http://globalchange.bnu.edu.cn/research/lai +# +# NOTES: +# (1) LAI data corresponding to each Olson land type is stored in +# separate netCDF variables (XLAI00, XLAI01, ... XLAI72). +# The "XLAI" denotes that the files are prepared in this way. +# (2) Units are "cm2 leaf/cm2 grid box". +# (3) Data is timestamped every 8 days, starting from the 2nd of the month. +#============================================================================== +(((YUAN_MODIS_LAI +* XLAI00 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI00 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI01 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI01 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI02 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI02 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI03 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI03 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI04 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI04 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI05 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI05 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI06 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI06 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI07 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI07 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI08 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI08 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI09 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI09 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI10 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI10 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI11 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI11 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI12 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI12 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI13 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI13 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI14 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI14 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI15 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI15 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI16 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI16 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI17 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI17 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI18 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI18 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI19 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI19 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI20 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI20 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI21 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI21 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI22 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI22 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI23 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI23 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI24 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI24 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI25 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI25 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI26 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI26 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI27 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI27 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI28 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI28 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI29 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI29 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI30 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI30 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI31 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI31 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI32 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI32 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI33 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI33 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI34 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI34 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI35 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI35 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI36 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI36 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI37 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI37 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI38 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI38 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI39 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI39 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI40 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI40 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI41 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI41 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI42 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI42 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI43 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI43 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI44 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI44 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI45 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI45 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI46 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI46 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI47 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI47 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI48 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI48 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI49 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI49 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI50 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI50 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI51 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI51 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI52 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI52 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI53 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI53 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI54 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI54 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI55 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI55 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI56 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI56 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI57 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI57 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI58 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI58 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI59 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI59 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI60 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI60 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI61 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI61 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI62 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI62 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI63 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI63 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI64 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI64 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI65 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI65 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI66 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI66 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI67 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI67 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI68 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI68 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI69 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI69 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI70 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI70 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI71 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI71 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI72 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI72 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +)))YUAN_MODIS_LAI + +### END SECTION BASE EMISSIONS ### + +############################################################################### +### BEGIN SECTION SCALE FACTORS +############################################################################### + +# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper + +(((EMISSIONS + +#============================================================================== +# --- Annual scale factors --- +#============================================================================== +(((HTAP +6 LIQFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985-2010/1/1/0 C xy 1 1 +28 LIQFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2008-2010/1/1/0 C xy 1 -1 +)))HTAP + +#============================================================================== +# --- Diurnal scale factors --- +#============================================================================== +26 GEIA_TOD_FOSSIL 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy unitless 1 + +#============================================================================== +# --- VOC speciations --- +#============================================================================== +(((EDGARv43 +52 COPROD_FOSSIL 1.02 - - - xy unitless 1 +)))EDGARv43 + +#============================================================================== +# --- EDGAR 4.3.1 --- +# Using data of 2010, the calculated seasonal ratio for different species in the +# same sector are nearly identical, possibly due to consistent activity data used. +# Therefore we use the seasonal scale factors of CO in 2010 for most sectors, +# except for AGR, AWB and SOL. +# For AGR, the NH3 AGR seasonal scale factors are used. +# For AWB, the CO AGR seasonal scale factors are used. +# For SOL, the NOx AGR seasonal scale factors are used. +#============================================================================== +(((EDGARv43 +1201 POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc POW 2010/1-12/1/0 C xy unitless 1 +1202 ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc ENG 2010/1-12/1/0 C xy unitless 1 +1203 IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc IND 2010/1-12/1/0 C xy unitless 1 +1204 TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc TRO 2010/1-12/1/0 C xy unitless 1 +1205 TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc TNG 2010/1-12/1/0 C xy unitless 1 +1206 RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc RCO 2010/1-12/1/0 C xy unitless 1 +1207 PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc PPA 2010/1-12/1/0 C xy unitless 1 +1208 AGR $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc AGR 2010/1-12/1/0 C xy unitless 1 +1209 AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc AWB 2010/1-12/1/0 C xy unitless 1 +1210 SOL $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc SOL 2010/1-12/1/0 C xy unitless 1 +1211 SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc SWD 2010/1-12/1/0 C xy unitless 1 +1212 FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc FFF 2010/1-12/1/0 C xy unitless 1 +)))EDGARv43 + +)))EMISSIONS + +### END SECTION SCALE FACTORS ### + +############################################################################### +### BEGIN SECTION MASKS +############################################################################### + +# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper Lon1/Lat1/Lon2/Lat2 + +(((EMISSIONS + +(((OCEAN_CH3I +1000 OCEAN_MASK $METDIR/$CNYR/01/$MET.$CNYR0101.CN.$RES.$NC FROCEAN 2000/1/1/0 C xy 1 1 -180/-90/180/90 +)))OCEAN_CH3I + +)))EMISSIONS + +### END SECTION MASKS ### + +### END OF HEMCO INPUT FILE ### +#EOC diff --git a/run/GEOS/TransportTracers/HEMCO_DiagnFile.rc b/run/GEOS/TransportTracers/HEMCO_DiagnFile.rc new file mode 100644 index 000000000..24b841103 --- /dev/null +++ b/run/GEOS/TransportTracers/HEMCO_DiagnFile.rc @@ -0,0 +1,42 @@ +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: HEMCO_Diagn.rc +# +# !DESCRIPTION: Configuration file for netCDF diagnostic output from HEMCO. +#\\ +#\\ +# !REMARKS: +# Customized for the Transport Tracers simulation. +# +# !REVISION HISTORY: +# 13 Feb 2018 - E. Lundgren - Initial version +#EOP +#------------------------------------------------------------------------------ +#BOC +# Name Spec ExtNr Cat Hier Dim OutUnit LongName + +############################################################################### +##### Rn222 emissions ##### +############################################################################### +EmisRn_Soil Rn222 100 -1 -1 2 kg/m2/s + +############################################################################### +##### Be emissions ##### +############################################################################### +EmisBe7_Cosmic Be7 100 -1 -1 3 kg/m2/s +EmisBe7s_Cosmic Be7s 100 -1 -1 3 kg/m2/s +EmisBe10_Cosmic Be10 100 -1 -1 3 kg/m2/s +EmisBe10s_Cosmic Be10s 100 -1 -1 3 kg/m2/s + +############################################################################### +##### Transport tracer emissions ##### +############################################################################### +EmisSF6 SF6 -1 -1 -1 2 kg/m2/s +EmisCH3I CH3I -1 -1 -1 2 kg/m2/s +EmisCO_25 CO_25 -1 -1 -1 2 kg/m2/s +EmisCO_50 CO_50 -1 -1 -1 2 kg/m2/s + +#EOC \ No newline at end of file diff --git a/run/GEOS/TransportTracers/HISTORY.rc b/run/GEOS/TransportTracers/HISTORY.rc new file mode 100644 index 000000000..a71c9ceab --- /dev/null +++ b/run/GEOS/TransportTracers/HISTORY.rc @@ -0,0 +1,1931 @@ +VERSION: 1 +EXPID: GCv14.0_GCMv1.17_c90 +EXPDSC: c90_test_run +EXPSRC: GEOSgcm-v10.23.0 + + +COLLECTIONS: 'Emissions', + 'Budget', + 'CloudConvFlux', + 'DryDep', + #'LevelEdgeDiags', + 'RadioNuclide', + 'SpeciesConc', + 'StateMet', + 'WetLossConv', + 'WetLossLS', + #'geosgcm_prog' + #'prog.eta' + #'geosgcm_surf' + #'geosgcm_ocn' + #'geosgcm_moist' + #'geosgcm_turb' + #'geosgcm_gwd' + #'geosgcm_tend' + #'geosgcm_budi' + #'geosgcm_buda' + #'geosgcm_landice' + #'geosgcm_meltwtr' + #'geosgcm_snowlayer' + #'geosgcm_tracer' + #'tavg2d_aer_x' + #'tavg3d_aer_p' + #'gcc_dev' +# 'geosgcm_iau' +# 'geosgcm_conv' +# 'goswim_catch' +# 'goswim_land' +# 'goswim_landice' +# 'geosgcm_lidar' +# 'geosgcm_parasol' +# 'geosgcm_modis' +# 'geosgcm_radar' +# 'geosgcm_isccp' +# 'geosgcm_misr' + :: + +################################################## +# The GRID_LABELS section must be after the main # +# list of COLLECTIONS for scripting purposes. # +################################################## + +GRID_LABELS: PC360x181-DC +:: + +PC360x181-DC.GRID_TYPE: LatLon +PC360x181-DC.IM_WORLD: 360 +PC360x181-DC.JM_WORLD: 181 +PC360x181-DC.POLE: PC +PC360x181-DC.DATELINE: DC +PC360x181-DC.LM: 72 + + + geosgcm_prog.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_prog.archive: '%c/Y%y4' , + geosgcm_prog.format: 'CFIO' , + geosgcm_prog.deflate: 1 , + geosgcm_prog.grid_label: PC360x181-DC , + geosgcm_prog.regrid_method: 'BILINEAR', + geosgcm_prog.frequency: 060000 , + geosgcm_prog.vscale: 100.0 , + geosgcm_prog.vunit: 'hPa' , + geosgcm_prog.vvars: 'log(PLE)' , 'DYN' , + geosgcm_prog.levels: 1000 975 950 925 900 875 850 825 800 775 750 725 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 40 30 20 10 7 5 4 3 2 1 0.7 0.5 0.4 0.3 0.2 0.1 0.07 0.05 0.04 0.03 0.02 , + geosgcm_prog.fields: 'PHIS' , 'AGCM' , + 'SLP' , 'DYN' , + 'U;V' , 'DYN' , + 'T' , 'DYN' , + 'PS' , 'DYN' , + 'ZLE' , 'DYN' , 'H' , + 'OMEGA' , 'DYN' , + 'Q' , 'MOIST' , 'QV' , + 'QITOT' , 'AGCM' , 'QI' , + 'QLTOT' , 'AGCM' , 'QL' , + 'RH2' , 'MOIST' , 'RH' , + 'O3' , 'CHEMISTRY' , + :: + + gcc_dev.template: '%y4%m2%d2_%h2%n2z.nc4', + gcc_dev.archive: '%c/Y%y4', + gcc_dev.format: 'CFIO', + gcc_dev.deflate: 1, + gcc_dev.mode: 'instantaneous' , + gcc_dev.frequency: 030000, + #gcc_dev.ref_time: 210000, + gcc_dev.regrid_method: 'BILINEAR', + gcc_dev.grid_label: PC360x181-DC + gcc_dev.fields: 'SpeciesConcVV_PassiveTracer' , 'GEOSCHEMCHEM' , + 'SpeciesConcVV_Rn222' , 'GEOSCHEMCHEM' , + :: + + prog.eta.template: '%y4%m2%d2_%h2%n2z.nc4' , + prog.eta.archive: '%c/Y%y4' , + prog.eta.format: 'CFIO' , + prog.eta.deflate: 1 , + prog.eta.grid_label: PC360x181-DC , + prog.eta.regrid_method: 'BILINEAR', + prog.eta.mode: 'instantaneous' , + prog.eta.frequency: 060000 , + prog.eta.duration: 060000 , + prog.eta.ref_time: 000000 , + prog.eta.fields: 'PHIS' , 'AGCM' , 'phis' , + 'SGH' , 'AGCM' , 'hs_stdv' , + 'TS' , 'SURFACE' , 'ts' , + 'FRLAND' , 'SURFACE' , 'frland' , + 'FRLANDICE' , 'SURFACE' , 'frlandice' , + 'FRLAKE' , 'SURFACE' , 'frlake' , + 'FROCEAN' , 'SURFACE' , 'frocean' , + 'FRACI' , 'SURFACE' , 'frseaice' , + 'PS' , 'DYN' , 'ps' , + 'DELP' , 'DYN' , 'delp' , + 'U;V' , 'DYN' , 'u;v' , + 'TV' , 'DYN' , 'tv' , + 'Q' , 'MOIST' , 'sphu' , + 'O3PPMV' , 'CHEMISTRY' , 'ozone' , + 'QITOT' , 'AGCM' , 'qitot' , + 'QLTOT' , 'AGCM' , 'qltot' , + 'QRTOT' , 'MOIST' , 'qrtot' , + 'QSTOT' , 'MOIST' , 'qstot' , + :: + + geosgcm_surf.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_surf.archive: '%c/Y%y4' , + geosgcm_surf.format: 'CFIO' , + geosgcm_surf.deflate: 1 , + geosgcm_surf.grid_label: PC360x181-DC , + geosgcm_surf.regrid_method: 'BILINEAR', + geosgcm_surf.mode: 'time-averaged' , +# geosgcm_surf.monthly: 1 , + geosgcm_surf.frequency: 030000 , + geosgcm_surf.ref_time: 210000 , + geosgcm_surf.fields: 'PHIS' , 'AGCM' , + 'SGH' , 'AGCM' , + 'VARFLT' , 'AGCM' , + 'TROPP_EPV' , 'AGCM' , 'TROPPV' , + 'TROPP_THERMAL' , 'AGCM' , 'TROPPT' , + 'TROPP_BLENDED' , 'AGCM' , 'TROPPB' , + 'TROPT' , 'AGCM' , + 'TROPQ' , 'AGCM' , + 'QVFILL' , 'AGCM' , + 'OXFILL' , 'AGCM' , + 'TA' , 'DYN' , + 'QA' , 'DYN' , + 'US;VS' , 'DYN' , + 'PS' , 'DYN' , + 'SPEED' , 'DYN' , + 'ZPBL' , 'TURBULENCE' , 'PBLH' , + 'TS' , 'SURFACE' , + 'QS' , 'SURFACE' , + 'THAT' , 'SURFACE' , + 'QHAT' , 'SURFACE' , + 'CU2DRAINMOVE' , 'MOIST' , + 'CU2DSNOWMOVE' , 'MOIST' , + 'RAS_TIME' , 'MOIST' , + 'CN_PRCP' , 'MOIST' , 'CNPRCP' , + 'LS_PRCP' , 'MOIST' , 'LSPRCP' , + 'AN_PRCP' , 'MOIST' , 'ANPRCP' , + 'LS_PRCP+CU2DRAINMOVE+CU2DSNOWMOVE' , 'MOIST' , 'LSORIG' , + 'CN_PRCP-CU2DRAINMOVE-CU2DSNOWMOVE' , 'MOIST' , 'CNORIG' , + 'SNO' , 'MOIST' , + 'PLS' , 'MOIST' , + 'PCU' , 'MOIST' , + 'LWP' , 'MOIST' , + 'CCWP' , 'MOIST' , + 'TAUTT' , 'SOLAR' , + 'TAULO' , 'SOLAR' , + 'TAUMD' , 'SOLAR' , + 'TAUHI' , 'SOLAR' , + 'CLDTT' , 'SOLAR' , + 'CLDLO' , 'SOLAR' , + 'CLDMD' , 'SOLAR' , + 'CLDHI' , 'SOLAR' , + 'SPLAND' , 'SURFACE' , + 'SPWATR' , 'SURFACE' , + 'RUNSURF' , 'SURFACE' , 'RUNOFF' , + 'BASEFLOW' , 'SURFACE' , + 'EMIS' , 'SURFACE' , + 'CT' , 'SURFACE' , + 'CQ' , 'SURFACE' , + 'CN' , 'SURFACE' , + 'CM' , 'SURFACE' , + 'RI' , 'SURFACE' , 'RISFC' , + 'LAI' , 'SURFACE' , + 'GRN' , 'SURFACE' , + 'SNOMAS' , 'SURFACE' , + 'ITY' , 'SURFACE' , 'VEGTYPE' , + 'WET1' , 'SURFACE' , + 'WET2' , 'SURFACE' , + 'WET3' , 'SURFACE' , + 'TSOIL1' , 'SURFACE' , + 'TSOIL2' , 'SURFACE' , + 'FRLAND' , 'SURFACE' , + 'FRLANDICE' , 'SURFACE' , + 'FRLAKE' , 'SURFACE' , + 'FRACI' , 'SURFACE' , 'FRSEAICE' , + 'FROCEAN' , 'SURFACE' , + 'USTAR' , 'SURFACE' , + 'Z0' , 'SURFACE' , + 'Z0H' , 'SURFACE' , + 'LHFX' , 'SURFACE' , + 'SH' , 'SURFACE' , 'SHFX' , + 'EVAP' , 'SURFACE' , + 'TAUX;TAUY' , 'SURFACE' , + 'RHOS' , 'SURFACE' , + 'U2M;V2M' , 'SURFACE' , + 'T2M' , 'SURFACE' , + 'Q2M' , 'SURFACE' , + 'U10N;V10N' , 'SURFACE' , + 'U10M;V10M' , 'SURFACE' , + 'T10M' , 'SURFACE' , + 'Q10M' , 'SURFACE' , + 'U50M;V50M' , 'SURFACE' , + 'GUST' , 'SURFACE' , + 'VENT' , 'SURFACE' , + 'ASNOW' , 'SURFACE' , + 'RADSRF' , 'RADIATION' , + 'TBISCCP' , 'SATSIM' , + 'FLNS' , 'IRRAD' , + 'FLNSC' , 'IRRAD' , + 'FLNSA' , 'IRRAD' , 'FLNSCNA' , + 'OLR' , 'IRRAD' , + 'OLC' , 'IRRAD' , 'OLRC' , + 'OLCC5' , 'IRRAD' , 'OLRCC5' , + 'OLA' , 'IRRAD' , 'OLRCNA' , + 'LWS' , 'IRRAD' , + 'LCS' , 'IRRAD' , 'LWSC' , + 'LCSC5' , 'IRRAD' , 'LWSCC5' , + 'LAS' , 'IRRAD' , 'LWSCNA' , + 'SFCEM' , 'IRRAD' , + 'CLDTMP' , 'SOLAR' , 'SWCLDTMP' , + 'CLDPRS' , 'SOLAR' , 'SWCLDPRS' , + 'OSR' , 'SOLAR' , + 'OSRCLR' , 'SOLAR' , + 'RSR' , 'SOLAR' , 'SWTNET' , + 'RSC' , 'SOLAR' , 'SWTNETC' , + 'RSCNA' , 'SOLAR' , 'SWTNETCNA' , + 'RSRNA' , 'SOLAR' , 'SWTNETNA' , + 'SLRTP' , 'SOLAR' , 'RADSWT' , + 'SLRSF' , 'SOLAR' , 'SWGDWN' , + 'SLRSFC' , 'SOLAR' , 'SWGDWNC' , + 'RSRS' , 'SOLAR' , 'SWGNET' , + 'RSCS' , 'SOLAR' , 'SWGNETC' , + 'RSRSNA' , 'SOLAR' , 'SWGNETNA' , + 'RSCSNA' , 'SOLAR' , 'SWGNETCNA' , + 'ALBEDO' , 'SOLAR' , + 'ALBVR' , 'SOLAR' , + 'ALBVF' , 'SOLAR' , + 'ALBNR' , 'SOLAR' , + 'ALBNF' , 'SOLAR' , + 'EVLAND' , 'SURFACE' , + 'LHLAND' , 'SURFACE' , + 'SHLAND' , 'SURFACE' , + 'SWLAND' , 'SURFACE' , + 'LWLAND' , 'SURFACE' , + 'GHLAND' , 'SURFACE' , + 'SMLAND' , 'SURFACE' , + 'TWLAND' , 'SURFACE' , + 'TELAND' , 'SURFACE' , +# additonal exports for skin SST + 'EVAPOUT' , 'SURFACE' , + 'COSZ' , 'SOLAR' , + 'DCOOL' , 'SURFACE' , + 'DWARM' , 'SURFACE' , + 'TDROP' , 'SURFACE' , 'DELT_COOL' , + 'TS_FOUND' , 'SURFACE' , + 'TDEL' , 'SURFACE' , + 'BCOOL' , 'SURFACE' , + 'LCOOL' , 'SURFACE' , + 'TBAR' , 'SURFACE' , + 'USTARW' , 'SURFACE' , + 'SWCOOL' , 'SURFACE' , + 'QCOOL' , 'SURFACE' , + 'DELTS' , 'SURFACE' , + 'QWARM' , 'SURFACE' , + 'SWWARM' , 'SURFACE' , + 'LANGM' , 'SURFACE' , + 'PHIW' , 'SURFACE' , + 'TAUTW' , 'SURFACE' , + 'ZETA_W' , 'SURFACE' , + :: + + geosgcm_ocn.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_ocn.archive: '%c/Y%y4' , + geosgcm_ocn.format: 'CFIO' , + geosgcm_ocn.deflate: 1 , + geosgcm_ocn.grid_label: PC360x181-DC , + geosgcm_ocn.regrid_method: 'BILINEAR', + geosgcm_ocn.mode: 'time-averaged' , + geosgcm_ocn.monthly: 1 , +# geosgcm_ocn.ref_time: 210000 , +# geosgcm_ocn.frequency: 010000 , +# geosgcm_ocn.duration: 010000 , + geosgcm_ocn.fields: 'U10M;V10M' , 'SURFACE' , + 'T10M' , 'SURFACE' , + 'Q10M' , 'SURFACE' , 'QV10M' , + 'SHWTR' , 'SURFACE' , 'HFLUXWTR' , + 'SHICE' , 'SURFACE' , 'HFLUXICE' , + 'HLATWTR' , 'SURFACE' , 'EFLUXWTR' , + 'HLATICE' , 'SURFACE' , 'EFLUXICE' , + 'LWNDWTR' , 'SURFACE' , 'LWGNTWTR' , + 'LWNDICE' , 'SURFACE' , 'LWGNTICE' , + 'SWNDWTR' , 'SURFACE' , 'SWGNTWTR' , + 'SWNDICE' , 'SURFACE' , 'SWGNTICE' , + 'SNOWOCN' , 'SURFACE' , 'PRECSNOOCN' , + 'RAINOCN' , 'SURFACE' , + 'TAUXW;TAUYW' , 'SURFACE' , 'TAUXWTR;TAUYWTR', + 'TAUXI;TAUYI' , 'SURFACE' , 'TAUXICE;TAUYICE', + 'FRACI' , 'SURFACE' , 'FRSEAICE' , + 'TSKINW' , 'SURFACE' , 'TSKINWTR' , + 'TSKINICE' , 'SURFACE' , +# additonal exports for skin SST + 'EVAPOUT' , 'SURFACE' , + 'FRLAND' , 'SURFACE' , + 'FRLANDICE' , 'SURFACE' , + 'FRLAKE' , 'SURFACE' , + 'FROCEAN' , 'SURFACE' , + 'COSZ' , 'SOLAR' , + 'DCOOL' , 'SURFACE' , + 'DWARM' , 'SURFACE' , + 'TDROP' , 'SURFACE' , + 'TS_FOUND' , 'SURFACE' , + 'TDEL' , 'SURFACE' , + 'BCOOL' , 'SURFACE' , + 'LCOOL' , 'SURFACE' , + 'TBAR' , 'SURFACE' , + 'USTARW' , 'SURFACE' , + 'SWCOOL' , 'SURFACE' , + 'QCOOL' , 'SURFACE' , + 'DELTS' , 'SURFACE' , + 'QWARM' , 'SURFACE' , + 'SWWARM' , 'SURFACE' , + 'LANGM' , 'SURFACE' , + 'PHIW' , 'SURFACE' , + 'TAUTW' , 'SURFACE' , + 'ZETA_W' , 'SURFACE' , + 'DTSDT_ANA' , 'AGCM' , + :: + + geosgcm_meltwtr.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_meltwtr.archive: '%c/Y%y4' , + geosgcm_meltwtr.format: 'CFIO' , + geosgcm_meltwtr.deflate: 1 , + geosgcm_meltwtr.regrid_name: 'PE90x540-CF' , + geosgcm_meltwtr.regrid_exch: 'tile.bin' , + geosgcm_meltwtr.grid_label: PC360x181-DC , + geosgcm_meltwtr.regrid_method: 'BILINEAR', + geosgcm_meltwtr.mode: 'time-averaged' , + geosgcm_meltwtr.monthly: 1 , +# geosgcm_meltwtr.frequency: 240000 , +# geosgcm_meltwtr.ref_time: 210000 , + geosgcm_meltwtr.fields: 'MELTWTR' , 'LANDICE' , + :: + + geosgcm_landice.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_landice.archive: '%c/Y%y4' , + geosgcm_landice.format: 'CFIO' , + geosgcm_landice.deflate: 1 , + geosgcm_landice.regrid_name: 'PE90x540-CF' , + geosgcm_landice.regrid_exch: 'tile.bin' , + geosgcm_landice.grid_label: PC360x181-DC , + geosgcm_landice.regrid_method: 'BILINEAR', + geosgcm_landice.mode: 'time-averaged' , + geosgcm_landice.monthly: 1 , +# geosgcm_landice.frequency: 240000 , +# geosgcm_landice.ref_time: 210000 , + geosgcm_landice.fields: 'SNOMAS_GL' , 'LANDICE' , + 'SNOWDP_GL' , 'LANDICE' , + 'TST' , 'LANDICE' , + 'ASNOW_GL' , 'LANDICE' , + 'RUNOFF' , 'LANDICE' , + 'WESNSC' , 'LANDICE' , + 'SNDZSC' , 'LANDICE' , + 'WESNPREC' , 'LANDICE' , + 'SNDZPREC' , 'LANDICE' , + 'SNDZ1PERC' , 'LANDICE' , + 'WESNBOT' , 'LANDICE' , + 'IMELT' , 'LANDICE' , + 'SNOWALB' , 'LANDICE' , + 'SNICEALB' , 'LANDICE' , + 'ACCUM' , 'LANDICE' , + 'RAINRFZ' , 'LANDICE' , + 'SHOUT' , 'LANDICE' , + 'HLATN' , 'LANDICE' , + 'HLWUP' , 'LANDICE' , + 'LWNDSRF' , 'LANDICE' , + 'SWNDSRF' , 'LANDICE' , + :: + + geosgcm_snowlayer.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_snowlayer.archive: '%c/Y%y4' , + geosgcm_snowlayer.format: 'CFIO' , + geosgcm_snowlayer.deflate: 1 , + geosgcm_snowlayer.regrid_name: 'PE90x540-CF' , + geosgcm_snowlayer.regrid_exch: 'tile.bin' , + geosgcm_snowlayer.grid_label: PC360x181-DC , + geosgcm_snowlayer.regrid_method: 'BILINEAR', + geosgcm_snowlayer.mode: 'time-averaged' , + geosgcm_snowlayer.monthly: 1 , +# geosgcm_snowlayer.frequency: 240000 , +# geosgcm_snowlayer.ref_time: 210000 , + geosgcm_snowlayer.fields: 'RHOSNOW' , 'LANDICE' , + 'TSNOW' , 'LANDICE' , + 'WSNOW' , 'LANDICE' , + 'ZSNOW' , 'LANDICE' , + 'DRHOS0' , 'LANDICE' , + 'WESNEX' , 'LANDICE' , + 'WESNPERC' , 'LANDICE' , + 'WESNDENS' , 'LANDICE' , + 'WESNREPAR' , 'LANDICE' , + 'TICE0' , 'LANDICE' , + :: + + geosgcm_moist.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_moist.archive: '%c/Y%y4' , + geosgcm_moist.format: 'CFIO' , + geosgcm_moist.deflate: 1 , + geosgcm_moist.grid_label: PC360x181-DC , + geosgcm_moist.regrid_method: 'BILINEAR', + geosgcm_moist.mode: 'time-averaged' , + geosgcm_moist.monthly: 1 , +# geosgcm_moist.frequency: 240000 , +# geosgcm_moist.ref_time: 210000 , + geosgcm_moist.vscale: 100.0 , + geosgcm_moist.vunit: 'hPa' , + geosgcm_moist.vvars: 'log(PLE)', 'DYN' , + geosgcm_moist.levels: 1000 975 950 925 900 875 850 825 800 775 750 725 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 40 30 20 10 7 5 4 3 2 1 0.7 0.5 0.4 0.3 0.2 0.1 0.07 0.05 0.04 0.03 0.02 , + geosgcm_moist.fields: 'PHIS' , 'AGCM' , + 'QL' , 'MOIST' , + 'QI' , 'MOIST' , + 'QR' , 'MOIST' , + 'RI' , 'MOIST' , 'RICE' , + 'RL' , 'MOIST' , 'RLIQ' , + 'RH1' , 'MOIST' , + 'CNV_MF0' , 'MOIST' , 'CNVMF0' , + 'CNV_MFD' , 'MOIST' , 'CNVMFD' , + 'CNV_MFC' , 'MOIST' , 'CNVMFC' , + 'REV_CN' , 'MOIST' , 'REVCN' , + 'REV_AN' , 'MOIST' , 'REVAN' , + 'REV_LS' , 'MOIST' , 'REVLS' , + 'RSU_CN' , 'MOIST' , 'RSUCN' , + 'RSU_AN' , 'MOIST' , 'RSUAN' , + 'RSU_LS' , 'MOIST' , 'RSULS' , + 'THIM' , 'PHYSICS' , + 'EVAPC' , 'MOIST' , + 'SUBLC' , 'MOIST' , + 'FCLD' , 'MOIST' , + 'CLCN' , 'MOIST' , + 'CLLS' , 'MOIST' , + 'QICN' , 'MOIST' , + 'QILS' , 'MOIST' , + 'QLCN' , 'MOIST' , + 'QLLS' , 'MOIST' , + :: + + geosgcm_turb.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_turb.archive: '%c/Y%y4' , + geosgcm_turb.format: 'CFIO' , + geosgcm_turb.deflate: 1 , + geosgcm_turb.grid_label: PC360x181-DC , + geosgcm_turb.regrid_method: 'BILINEAR', + geosgcm_turb.mode: 'time-averaged' , + geosgcm_turb.monthly: 1 , +# geosgcm_turb.frequency: 240000 , +# geosgcm_turb.ref_time: 210000 , + geosgcm_turb.vscale: 100.0 , + geosgcm_turb.vunit: 'hPa' , + geosgcm_turb.vvars: 'log(PLE)' , 'DYN' , + geosgcm_turb.levels: 1000 975 950 925 900 875 850 825 800 775 750 725 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 40 30 20 10 7 5 4 3 2 1 0.7 0.5 0.4 0.3 0.2 0.1 0.07 0.05 0.04 0.03 0.02 , + geosgcm_turb.fields: 'INTDIS' , 'TURBULENCE' , + 'TOPDIS' , 'TURBULENCE' , + 'SRFDIS' , 'TURBULENCE' , + 'DBUOY' , 'TURBULENCE' , + 'WERAD' , 'TURBULENCE' , + 'KH' , 'TURBULENCE' , + 'KM' , 'TURBULENCE' , + 'KHLS' , 'TURBULENCE' , + 'KMLS' , 'TURBULENCE' , + 'EKH' , 'TURBULENCE' , + 'EKM' , 'TURBULENCE' , + 'KHSFC' , 'TURBULENCE' , + 'KHRAD' , 'TURBULENCE' , + 'RI' , 'TURBULENCE' , + 'DU' , 'TURBULENCE' , + :: + + geosgcm_gwd.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_gwd.archive: '%c/Y%y4' , + geosgcm_gwd.format: 'CFIO' , + geosgcm_gwd.deflate: 1 , + geosgcm_gwd.grid_label: PC360x181-DC , + geosgcm_gwd.regrid_method: 'BILINEAR', + geosgcm_gwd.mode: 'time-averaged' , + geosgcm_gwd.monthly: 1 , +# geosgcm_gwd.frequency: 240000 , +# geosgcm_gwd.ref_time: 210000 , + geosgcm_gwd.vscale: 100.0 , + geosgcm_gwd.vunit: 'hPa' , + geosgcm_gwd.vvars: 'log(PLE)' , 'DYN' , + geosgcm_gwd.levels: 1000 975 950 925 900 875 850 825 800 775 750 725 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 40 30 20 10 7 5 4 3 2 1 0.7 0.5 0.4 0.3 0.2 0.1 0.07 0.05 0.04 0.03 0.02 , + geosgcm_gwd.fields: 'DUDT_ORO;DVDT_ORO' , 'GWD' , 'DUDTORO;DVDTORO' , + 'DUDT_BKG;DVDT_BKG' , 'GWD' , 'DUDTBKG;DVDTBKG' , + 'DUDT_RAY;DVDT_RAY' , 'GWD' , 'DUDTRAY;DVDTRAY' , + 'TAUOROX;TAUOROY' , 'GWD' , + 'TAUBKGX;TAUBKGY' , 'GWD' , + 'DTDT_ORO' , 'GWD' , 'DTDTORO' , + 'DTDT_BKG' , 'GWD' , 'DTDTBKG' , + 'DTDT_RAY' , 'GWD' , 'DTDTRAY' , + :: + + geosgcm_tend.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_tend.archive: '%c/Y%y4' , + geosgcm_tend.format: 'CFIO' , + geosgcm_tend.deflate: 1 , + geosgcm_tend.grid_label: PC360x181-DC , + geosgcm_tend.regrid_method: 'BILINEAR', + geosgcm_tend.mode: 'time-averaged' , + geosgcm_tend.monthly: 1 , +# geosgcm_tend.frequency: 240000 , +# geosgcm_tend.ref_time: 210000 , + geosgcm_tend.vscale: 100.0 , + geosgcm_tend.vunit: 'hPa' , + geosgcm_tend.vvars: 'log(PLE)' , 'DYN' , + geosgcm_tend.levels: 1000 975 950 925 900 875 850 825 800 775 750 725 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 40 30 20 10 7 5 4 3 2 1 0.7 0.5 0.4 0.3 0.2 0.1 0.07 0.05 0.04 0.03 0.02 , + geosgcm_tend.fields: 'DUDTDYN;DVDTDYN' , 'DYN' , + 'UIT;VIT' , 'PHYSICS' , 'DUDTTRB;DVDTTRB' , + 'DUDT;DVDT' , 'MOIST' , 'DUDTMST;DVDTMST' , + 'DUDT;DVDT' , 'GWD' , 'DUDTGWD;DVDTGWD' , + 'DTDTDYN' , 'DYN' , + 'TIM' , 'PHYSICS' , 'DTDTMST' , + 'TIT' , 'PHYSICS' , 'DTDTTRB' , + 'TTMGW' , 'GWD' , 'DTDTGWD' , + 'RADLW' , 'RADIATION' , 'DTDTLW' , + 'RADLWC' , 'RADIATION' , 'DTDTLWC' , + 'RADLWCNA' , 'RADIATION' , 'DTDTLWCNA' , + 'RADSW' , 'RADIATION' , 'DTDTSW' , + 'RADSWC' , 'RADIATION' , 'DTDTSWC' , + 'RADSWNA' , 'RADIATION' , 'DTDTSWNA' , + 'RADSWCNA' , 'RADIATION' , 'DTDTSWCNA' , + 'TIF' , 'PHYSICS' , 'DTDTFRI' , + 'DQVDTDYN' , 'DYN' , + 'DQDT' , 'MOIST' , 'DQVDTMST' , + 'QVIT' , 'PHYSICS' , 'DQVDTTRB' , + 'H2O_TEND' , 'CHEMISTRY' , 'DQVDTCHM' , + 'DPDTPHY' , 'PHYSICS' , + :: + + geosgcm_budi.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_budi.archive: '%c/Y%y4' , + geosgcm_budi.format: 'CFIO' , + geosgcm_budi.deflate: 1 , + geosgcm_budi.grid_label: PC360x181-DC , + geosgcm_budi.regrid_method: 'CONSERVE', + geosgcm_budi.frequency: 030000 , + geosgcm_budi.fields: 'TQV' , 'AGCM' , + 'TQI' , 'AGCM' , + 'TQL' , 'AGCM' , + 'TOX' , 'AGCM' , + 'MASS' , 'AGCM' , + :: + + geosgcm_buda.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_buda.archive: '%c/Y%y4' , + geosgcm_buda.format: 'CFIO' , + geosgcm_buda.deflate: 1 , + geosgcm_buda.grid_label: PC360x181-DC , + geosgcm_buda.regrid_method: 'CONSERVE', + geosgcm_buda.mode: 'time-averaged' , + geosgcm_buda.monthly: 1 , +# geosgcm_buda.frequency: 030000 , + geosgcm_buda.fields: 'DMDTDYN' , 'DYN' , 'DMDTDYN' , + 'DMDTANA' , 'DYN' , 'DMDTANA' , + 'DMDT' , 'PHYSICS' , 'DMDTPHY' , + 'DQVDTDYNINT' , 'DYN' , 'DQVDTDYN' , + 'DQVDTPHYINT' , 'PHYSICS' , 'DQVDTPHY' , + 'DQVDTANAINT' , 'DYN' , 'DQVDTANA' , + 'DQVDTMSTINT' , 'PHYSICS' , 'DQVDTMST' , + 'DQVDTTRBINT' , 'PHYSICS' , 'DQVDTTRB' , + 'DQVDTCHMINT' , 'PHYSICS' , 'DQVDTCHM' , + 'DQLDTDYNINT' , 'DYN' , 'DQLDTDYN' , + 'DQLDTPHYINT' , 'PHYSICS' , 'DQLDTPHY' , + 'DQLDTANAINT' , 'DYN' , 'DQLDTANA' , + 'DQLDTMSTINT' , 'PHYSICS' , 'DQLDTMST' , + 'DQIDTDYNINT' , 'DYN' , 'DQIDTDYN' , + 'DQIDTPHYINT' , 'PHYSICS' , 'DQIDTPHY' , + 'DQIDTANAINT' , 'DYN' , 'DQIDTANA' , + 'DQIDTMSTINT' , 'PHYSICS' , 'DQIDTMST' , + 'DOXDTDYNINT' , 'DYN' , 'DOXDTDYN' , + 'DOXDTPHYINT' , 'PHYSICS' , 'DOXDTPHY' , + 'DOXDTANAINT' , 'DYN' , 'DOXDTANA' , + 'DOXDTCHMINT' , 'PHYSICS' , 'DOXDTCHM' , + :: + + geosgcm_iau.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_iau.archive: '%c/Y%y4' , + geosgcm_iau.format: 'CFIO' , + geosgcm_iau.deflate: 1 , + geosgcm_iau.grid_label: PC360x181-DC , + geosgcm_iau.regrid_method: 'BILINEAR', + geosgcm_iau.mode: 'time-averaged' , +# geosgcm_iau.monthly: 1 , + geosgcm_iau.frequency: 060000 , + geosgcm_iau.ref_time: 030000 , + geosgcm_iau.vscale: 100.0 , + geosgcm_iau.vunit: 'hPa' , + geosgcm_iau.vvars: 'log(PLE)' , 'DYN' , + geosgcm_iau.levels: 1000 975 950 925 900 875 850 825 800 775 750 725 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 40 30 20 10 7 5 4 3 2 1 0.7 0.5 0.4 0.3 0.2 0.1 0.07 0.05 0.04 0.03 0.02 , + geosgcm_iau.fields: 'DUDT_ANA;DVDT_ANA' , 'AGCM' , 'DUDTANA;DVDTANA' , + 'DTDT_ANA' , 'AGCM' , 'DTDTANA' , + 'DQVDT_ANA' , 'AGCM' , 'DQDTANA' , + 'DMDTANA' , 'DYN' , 'DMDTANA' , + 'DPSDT_CON' , 'AGCM' , 'DPDTCON' , + 'DQVDT_CON' , 'AGCM' , 'DQDTCON' , + :: + +# Note: Be Sure to ADD: USE_SATSIM_MODIS: 1 in AGCM.rc for this Collection +# ------------------------------------------------------------------------ + geosgcm_conv.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_conv.archive: '%c/Y%y4' , + geosgcm_conv.format: 'CFIO' , + geosgcm_conv.deflate: 1 , + geosgcm_conv.grid_label: PC360x181-DC , + geosgcm_conv.regrid_method: 'BILINEAR', + geosgcm_conv.frequency: 010000 , + geosgcm_conv.fields: 'TQV' , 'AGCM' , + 'TQI' , 'AGCM' , + 'TQL' , 'AGCM' , + 'CWP' , 'MOIST' , + 'LWP' , 'MOIST' , + 'IWP' , 'MOIST' , + 'SNO' , 'MOIST' , 'PRECSNO' , + 'TPREC' , 'MOIST' , 'PRECTOT' , + 'AN_PRCP' , 'MOIST' , 'PRECANV' , + 'CN_PRCP' , 'MOIST' , 'PRECCON' , + 'LS_PRCP' , 'MOIST' , 'PRECLSC' , + 'CAPE' , 'MOIST' , + 'INHB' , 'MOIST' , 'CIN' , + 'TBISCCP' , 'SATSIM' , + 'MDSCLDSZWTR' , 'SATSIM' , + 'MDSCLDSZICE' , 'SATSIM' , + :: + + geosgcm_bud.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_bud.archive: '%c/Y%y4' , + geosgcm_bud.format: 'CFIO' , + geosgcm_bud.deflate: 1 , + geosgcm_bud.grid_label: PC360x181-DC , + geosgcm_bud.regrid_method: 'BILINEAR', + geosgcm_bud.mode: 'time-averaged' , + geosgcm_bud.frequency: 240000 , + geosgcm_bud.ref_time: 210000 , + geosgcm_bud.fields: 'PHIS' , 'AGCM' , + 'PS' , 'DYN' , + 'KEDYN' , 'DYN' , + 'PEDYN' , 'DYN' , + 'TEDYN' , 'DYN' , + 'KEPHY' , 'DYN' , + 'PEPHY' , 'DYN' , + 'TEPHY' , 'DYN' , + 'KEANA' , 'DYN' , + 'PEANA' , 'DYN' , + 'TEANA' , 'DYN' , + 'KEGEN' , 'DYN' , + 'KEGWD' , 'GWD' , + 'KERAY' , 'GWD' , + 'KEBKG' , 'GWD' , + 'KEORO' , 'GWD' , + 'KETRB' , 'TURBULENCE' , + 'KESRF' , 'TURBULENCE' , + 'KEINT' , 'TURBULENCE' , + 'KETOP' , 'TURBULENCE' , + 'KEMST' , 'MOIST' , + 'KECDCOR' , 'DYN' , + 'PECDCOR' , 'DYN' , + 'TECDCOR' , 'DYN' , + 'KEREMAP' , 'DYN' , + 'PEREMAP' , 'DYN' , + 'TEREMAP' , 'DYN' , + 'CONVKE' , 'DYN' , + 'CONVCPT' , 'DYN' , + 'CONVPHI' , 'DYN' , + 'CONVTHV' , 'DYN' , + 'KEADV' , 'DYN' , + 'KEPG' , 'DYN' , + 'KEDP' , 'DYN' , + 'KEHOT' , 'DYN' , + 'DKERESIN' , 'DYN' , + 'DKERESPG' , 'DYN' , + 'QFIXER' , 'DYN' , + 'DTHVDTREMAP' , 'DYN' , + 'DTHVDTCONSV' , 'DYN' , + :: + + goswim_catch.template: '%y4%m2%d2_%h2%n2z.nc4' , + goswim_catch.archive: '%c/Y%y4' , + goswim_catch.format: 'CFIO' , + goswim_catch.deflate: 1 , + goswim_catch.regrid_name: 'PE90x540-CF' , + goswim_catch.regrid_exch: 'tile.bin' , + goswim_catch.grid_label: PC360x181-DC , + goswim_catch.regrid_method: 'BILINEAR', + goswim_catch.mode: 'time-averaged' , + goswim_catch.frequency: 240000 , + goswim_catch.ref_time: 210000 , + goswim_catch.fields: 'SNDZN1' , 'CATCH' , + 'SNDZN2' , 'CATCH' , + 'SNDZN3' , 'CATCH' , + 'WESNN1' , 'CATCH' , + 'WESNN2' , 'CATCH' , + 'WESNN3' , 'CATCH' , + 'ASNOW' , 'CATCH' , + 'ALBVR' , 'CATCH' , + 'ALBVF' , 'CATCH' , + 'ALBNR' , 'CATCH' , + 'ALBNF' , 'CATCH' , + 'RUNSURF' , 'CATCH' , + 'BASEFLOW' , 'CATCH' , + 'SMELT' , 'CATCH' , + 'SMLAND' , 'CATCH' , + 'TPSNOW' , 'CATCH' , + 'TST' , 'CATCH' , + 'WET1' , 'CATCH' , + 'Z0' , 'CATCH' , + 'SWLAND' , 'CATCH' , + 'SWNDSRF' , 'CATCH' , + :: + + goswim_land.template: '%y4%m2%d2_%h2%n2z.nc4' , + goswim_land.archive: '%c/Y%y4' , + goswim_land.format: 'CFIO' , + goswim_land.deflate: 1 , + goswim_land.grid_label: PC360x181-DC , + goswim_land.regrid_method: 'BILINEAR', + goswim_land.mode: 'time-averaged' , + goswim_land.frequency: 240000 , + goswim_land.ref_time: 210000 , + goswim_land.fields: 'RDU001' , 'SURFACE' , + 'RDU002' , 'SURFACE' , + 'RDU003' , 'SURFACE' , + 'RDU004' , 'SURFACE' , + 'RDU005' , 'SURFACE' , + 'RBC001' , 'SURFACE' , + 'RBC002' , 'SURFACE' , + 'ROC001' , 'SURFACE' , + 'ROC002' , 'SURFACE' , + 'RMELTDU001' , 'SURFACE' , + 'RMELTDU002' , 'SURFACE' , + 'RMELTDU003' , 'SURFACE' , + 'RMELTDU004' , 'SURFACE' , + 'RMELTDU005' , 'SURFACE' , + 'RMELTBC001' , 'SURFACE' , + 'RMELTBC002' , 'SURFACE' , + 'RMELTOC001' , 'SURFACE' , + 'RMELTOC002' , 'SURFACE' , + :: + + goswim_landice.template: '%y4%m2%d2_%h2%n2z.nc4' , + goswim_landice.archive: '%c/Y%y4' , + goswim_landice.format: 'CFIO' , + goswim_landice.deflate: 1 , + goswim_landice.regrid_name: 'PE90x540-CF' + goswim_landice.regrid_exch: 'tile.bin' , + goswim_landice.grid_label: PC360x181-DC , + goswim_landice.regrid_method: 'BILINEAR', + goswim_landice.mode: 'time-averaged' , + goswim_landice.frequency: 240000 , + goswim_landice.ref_time: 210000 , + goswim_landice.fields: 'IRDU001' , 'LANDICE' , + 'IRDU002' , 'LANDICE' , + 'IRDU003' , 'LANDICE' , + 'IRDU004' , 'LANDICE' , + 'IRDU005' , 'LANDICE' , + 'IRBC001' , 'LANDICE' , + 'IRBC002' , 'LANDICE' , + 'IROC001' , 'LANDICE' , + 'IROC002' , 'LANDICE' , + :: + +# --------------------- +# Aerosols/Constituents +# --------------------- +# +# +#### GOCART + + tavg2d_aer_x.template: '%y4%m2%d2_%h2%n2z.nc4', + tavg2d_aer_x.archive: '%c/Y%y4', + tavg2d_aer_x.format: 'CFIO', + tavg2d_aer_x.deflate: 1, + tavg2d_aer_x.grid_label: PC360x181-DC, + tavg2d_aer_x.mode: 'time-averaged', + tavg2d_aer_x.monthly: 1, +# tavg2d_aer_x.frequency: 240000, +# tavg2d_aer_x.ref_time: 210000, + tavg2d_aer_x.regrid_method: 'CONSERVE', + tavg2d_aer_x.splitField: 1, + tavg2d_aer_x.fields: 'LWI' , 'SURFACE' , + 'TOTEXTTAU' , 'GOCART2G' , + 'TOTSCATAU' , 'GOCART2G' , + 'TOTANGSTR' , 'GOCART2G' , + 'TOTSTEXTTAU' , 'GOCART2G' , + 'TOTSTSCATAU' , 'GOCART2G' , + 'DUEM' , 'DU' , 'DUEM001;DUEM002;DUEM003;DUEM004;DUEM005' , + 'DUSD' , 'DU' , 'DUSD001;DUSD002;DUSD003;DUSD004;DUSD005' , + 'DUDP' , 'DU' , 'DUDP001;DUDP002;DUDP003;DUDP004;DUDP005' , + 'DUWT' , 'DU' , 'DUWT001;DUWT002;DUWT003;DUWT004;DUWT005' , + 'DUSMASS' , 'DU' , + 'DUCMASS' , 'DU' , + 'DUEXTTAU' , 'DU' , + 'DUSCATAU' , 'DU' , + 'DUSTEXTTAU' , 'DU' , + 'DUSTSCATAU' , 'DU' , + 'DUANGSTR' , 'DU' , + 'DUEXTTFM' , 'DU' , + 'DUSCATFM' , 'DU' , + 'DUSMASS25' , 'DU' , + 'DUCMASS25' , 'DU' , + 'DUEXTT25' , 'DU' , + 'DUSCAT25' , 'DU' , + 'DUAERIDX' , 'DU' , + 'DUFLUXU' , 'DU' , + 'DUFLUXV' , 'DU' , + 'SSEM' , 'SS' , 'SSEM001;SSEM002;SSEM003;SSEM004;SSEM005' , + 'SSSD' , 'SS' , 'SSSD001;SSSD002;SSSD003;SSSD004;SSSD005' , + 'SSDP' , 'SS' , 'SSDP001;SSDP002;SSDP003;SSDP004;SSDP005' , + 'SSWT' , 'SS' , 'SSWT001;SSWT002;SSWT003;SSWT004;SSWT005' , + 'SSSMASS' , 'SS' , + 'SSCMASS' , 'SS' , + 'SSEXTTAU' , 'SS' , + 'SSSCATAU' , 'SS' , + 'SSSTEXTTAU' , 'SS' , + 'SSSTSCATAU' , 'SS' , + 'SSANGSTR' , 'SS' , + 'SSEXTTFM' , 'SS' , + 'SSSCATFM' , 'SS' , + 'SSSMASS25' , 'SS' , + 'SSCMASS25' , 'SS' , + 'SSEXTT25' , 'SS' , + 'SSSCAT25' , 'SS' , + 'SSAERIDX' , 'SS' , + 'SSFLUXU' , 'SS' , + 'SSFLUXV' , 'SS' , + 'SUEM' , 'SU' , + 'SUDP' , 'SU' , + 'SUWT' , 'SU' , + 'SUSD' , 'SU' , + 'SO2SMASS' , 'SU' , + 'SO2CMASS' , 'SU' , + 'SO4SMASS' , 'SU' , + 'SO4CMASS' , 'SU' , + 'DMSSMASS' , 'SU' , + 'DMSCMASS' , 'SU' , + 'SUPSO2' , 'SU' , + 'SUPSO4G' , 'SU' , + 'SUPSO4AQ' , 'SU' , + 'SUPSO4WT' , 'SU' , + 'SUPMSA' , 'SU' , + 'SUEXTTAU' , 'SU' , + 'SUSCATAU' , 'SU' , + 'SUSTEXTTAU' , 'SU' , + 'SUSTSCATAU' , 'SU' , + 'SUANGSTR' , 'SU' , + 'SO4EMAN' , 'SU' , + 'SO2EMAN' , 'SU' , + 'SO2EMBB' , 'SU' , + 'SO2EMVN' , 'SU' , + 'SO2EMVE' , 'SU' , + 'SUFLUXU' , 'SU' , + 'SUFLUXV' , 'SU' , + 'CA.bcEM' , 'CA.bc' , 'BCEM001;BCEM002' , + 'CA.bcDP' , 'CA.bc' , 'BCDP001;BCDP002' , + 'CA.bcWT' , 'CA.bc' , 'BCWT001;BCWT002' , +# 'CA.bcSD' , 'CA.bc' , 'BCSD001;BCSD002' , + 'CA.bcSMASS' , 'CA.bc' , 'BCSMASS' , + 'CA.bcCMASS' , 'CA.bc' , 'BCCMASS' , + 'CA.bcEXTTAU' , 'CA.bc' , 'BCEXTTAU' , + 'CA.bcSCATAU' , 'CA.bc' , 'BCSCATAU' , + 'CA.bcSTEXTTAU' , 'CA.bc' , 'BCSTEXTTAU' , + 'CA.bcSTSCATAU' , 'CA.bc' , 'BCSTSCATAU' , + 'CA.bcANGSTR' , 'CA.bc' , 'BCANGSTR' , + 'CA.bcHYPHIL' , 'CA.bc' , 'BCHYPHIL' , + 'CA.bcEMBB' , 'CA.bc' , 'BCEMBB' , + 'CA.bcEMBF' , 'CA.bc' , 'BCEMBF' , + 'CA.bcEMAN' , 'CA.bc' , 'BCEMAN' , + 'CA.bcFLUXU' , 'CA.bc' , 'BCFLUXU' , + 'CA.bcFLUXV' , 'CA.bc' , 'BCFLUXV' , + 'CA.ocEM' , 'CA.oc' , 'OCEM001;OCEM002' , + 'CA.ocDP' , 'CA.oc' , 'OCDP001;OCDP002' , + 'CA.ocWT' , 'CA.oc' , 'OCWT001;OCWT002' , +# 'CA.ocSD' , 'CA.oc' , 'OCSD001;OCSD002' , + 'CA.ocSMASS' , 'CA.oc' , 'OCSMASS' , + 'CA.ocCMASS' , 'CA.oc' , 'OCCMASS' , + 'CA.ocEXTTAU' , 'CA.oc' , 'OCEXTTAU' , + 'CA.ocSCATAU' , 'CA.oc' , 'OCSCATAU' , + 'CA.ocSTEXTTAU' , 'CA.oc' , 'OCSTEXTTAU' , + 'CA.ocSTSCATAU' , 'CA.oc' , 'OCSTSCATAU' , + 'CA.ocANGSTR' , 'CA.oc' , 'OCANGSTR' , + 'CA.ocEMBB' , 'CA.oc' , 'OCEMBB' , + 'CA.ocEMBF' , 'CA.oc' , 'OCEMBF' , + 'CA.ocEMAN' , 'CA.oc' , 'OCEMAN' , + 'CA.ocEMBG' , 'CA.oc' , 'OCEMBG' , + 'CA.ocPSOA' , 'CA.oc' , 'OCPSOA' , + 'CA.ocHYPHIL' , 'CA.oc' , 'OCHYPHIL' , + 'CA.ocFLUXU' , 'CA.oc' , 'OCFLUXU' , + 'CA.ocFLUXV' , 'CA.oc' , 'OCFLUXV' , + 'CA.brEM' , 'CA.br' , 'BREM001;BREM002' , + 'CA.brDP' , 'CA.br' , 'BRDP001;BRDP002' , + 'CA.brWT' , 'CA.br' , 'BRWT001;BRWT002' , +# 'CA.brSD' , 'CA.br' , 'BRSD001;BRSD002' , + 'CA.brSMASS' , 'CA.br' , 'BRSMASS' , + 'CA.brCMASS' , 'CA.br' , 'BRCMASS' , + 'CA.brEXTTAU' , 'CA.br' , 'BREXTTAU' , + 'CA.brSCATAU' , 'CA.br' , 'BRSCATAU' , + 'CA.brSTEXTTAU' , 'CA.br' , 'BRSTEXTTAU' , + 'CA.brSTSCATAU' , 'CA.br' , 'BRSTSCATAU' , + 'CA.brANGSTR' , 'CA.br' , 'BRANGSTR' , + 'CA.brPSOA' , 'CA.br' , 'BRPSOA' , + 'CA.brHYPHIL' , 'CA.br' , 'BRHYPHIL' , + 'CA.brEMBB' , 'CA.br' , 'BREMBB' , + 'CA.brEMBF' , 'CA.br' , 'BREMBF' , + 'CA.brEMAN' , 'CA.br' , 'BREMAN' , + 'CA.brFLUXU' , 'CA.br' , 'BRFLUXU' , + 'CA.brFLUXV' , 'CA.br' , 'BRFLUXV' , + 'HNO3SMASS' , 'NI' , + 'NH3SMASS' , 'NI' , + 'NH4SMASS' , 'NI' , + 'NISMASS' , 'NI' , + 'NISMASS25' , 'NI' , + 'HNO3CMASS' , 'NI' , + 'NH3CMASS' , 'NI' , + 'NH4CMASS' , 'NI' , + 'NICMASS' , 'NI' , + 'NICMASS25' , 'NI' , + 'NIEXTTFM' , 'NI' , + 'NISCATFM' , 'NI' , + 'NIEXTTAU' , 'NI' , + 'NISCATAU' , 'NI' , + 'NIANGSTR' , 'NI' , + 'NIPNO3AQ' , 'NI' , + 'NIPNH4AQ' , 'NI' , + 'NIPNH3AQ' , 'NI' , + 'NIHT' , 'NI' , + 'NISD' , 'NI' , + 'NIDP' , 'NI' , + 'NIWT' , 'NI' , + 'NH3EM' , 'NI' , + 'NH3DP' , 'NI' , + 'NH3WT' , 'NI' , + 'NH4SD' , 'NI' , + 'NH4DP' , 'NI' , + 'NH4WT' , 'NI' , + 'NIFLUXU' , 'NI' , + 'NIFLUXV' , 'NI' , + 'DDU2gDT' , 'MOIST' , 'DUSV' , + 'DSS2gDT' , 'MOIST' , 'SSSV' , + 'DOC2gDT' , 'MOIST' , 'OCSV' , + 'DBC2gDT' , 'MOIST' , 'BCSV' , + 'DSU2gDT' , 'MOIST' , 'SUSV' , + 'DNI2gDT' , 'MOIST' , 'NISV' , + 'DBRC2gDT' , 'MOIST' , 'BRSV' , + 'NH3SV' , 'NI' , + 'NH4SV' , 'NI' , + :: + + tavg3d_aer_p.template: '%y4%m2%d2_%h2%n2z.nc4', + tavg3d_aer_p.archive: '%c/Y%y4', + tavg3d_aer_p.format: 'CFIO', + tavg3d_aer_p.deflate: 1, + tavg3d_aer_p.grid_label: PC360x181-DC, + tavg3d_aer_p.mode: 'time-averaged', + tavg3d_aer_p.monthly: 1, +# tavg3d_aer_p.frequency: 240000, +# tavg3d_aer_p.ref_time: 210000, + tavg3d_aer_p.regrid_method: 'CONSERVE', + tavg3d_aer_p.splitField: 1, + tavg3d_aer_p.vscale: 100.0, + tavg3d_aer_p.vunit: 'hPa', + tavg3d_aer_p.vvars: 'log(PLE)' , 'DYN' , + tavg3d_aer_p.levels: 1000 975 950 925 900 850 800 750 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 30 20 10, + tavg3d_aer_p.fields: 'PS' , 'DYN' , 'PS' , + 'LWI' , 'SURFACE' , 'LWI' , + 'AIRDENS' , 'CHEMENV' , + 'ZL' , 'DYN' , 'H' , + 'DUMASS' , 'DU' , 'DU' , + 'SSMASS' , 'SS' , 'SS' , + 'CA.bcMASS' , 'CA.bc' , 'BC' , + 'CA.ocMASS' , 'CA.oc' , 'OC' , + 'CA.brMASS' , 'CA.br' , 'BR' , + 'SO2' , 'SU' , + 'SO4' , 'SU' , + 'NH3MASS' , 'NI' , 'NH3' , + 'NH4MASS' , 'NI' , 'NH4' , + 'NIMASS' , 'NI' , 'NI' , + 'HNO3CONC' , 'NI' , + 'NICONC' , 'NI' , + 'DUEXTCOEF' , 'DU' , + 'SSEXTCOEF' , 'SS' , + 'SUEXTCOEF' , 'SU' , + 'NIEXTCOEF' , 'NI' , + 'CA.bcEXTCOEF' , 'CA.bc' , 'BCEXTCOEF' , + 'CA.brEXTCOEF' , 'CA.br' , 'BREXTCOEF' , + 'CA.ocEXTCOEF' , 'CA.oc' , 'OCEXTCOEF' , + 'ACHEM::VOC' , 'ACHEM' , 'VOC' , + 'ACHEM::VOCbiob' , 'ACHEM' , 'VOCbiob' , + 'pSOA_ANTHRO_VOC' , 'ACHEM', 'pSOA' , + 'pSOA_BIOB_VOC' , 'ACHEM', 'pSOAbiob' , + 'GOCART::CO' , 'GOCART','CO' , + :: + + geosgcm_tracer.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_tracer.archive: '%c/Y%y4' , + geosgcm_tracer.format: 'CFIO' , + geosgcm_tracer.deflate: 1 , + geosgcm_tracer.grid_label: PC360x181-DC , + geosgcm_tracer.regrid_method: 'BILINEAR', + geosgcm_tracer.mode: 'time-averaged' , + geosgcm_tracer.monthly: 1 , +# geosgcm_tracer.frequency: 240000 , +# geosgcm_tracer.ref_time: 210000 , + geosgcm_tracer.vscale: 100.0 , + geosgcm_tracer.vunit: 'hPa' , + geosgcm_tracer.vvars: 'log(PLE)' , 'DYN' , + geosgcm_tracer.levels: 1000 975 950 925 900 850 800 750 700 650 600 550 500 450 400 350 300 250 200 150 100 85 70 50 30 20 10 7 5 3 2 1 0.7 0.5 0.3 0.2 0.1 , + geosgcm_tracer.fields: 'PS' , 'DYN' , + 'AIRDENS' , 'CHEMENV' , + 'aoa' , 'TR' , + 'e90' , 'TR' , + 'Rn222' , 'TR' , + 'CH3I' , 'TR' , +# 'Be7' , 'TR' , +# 'EM_Be7' , 'TR' , +# 'STtend_Be7' , 'TR' , +# 'DDtend_Be7*(-1)' , 'TR' , 'DD_Be7' , +# 'WRtend_Be7' , 'TR' , +# 'WRtendVsum_Be7*(-1)' , 'TR' , 'WD_Be7' , +# 'DKtend_Be7*(-1)' , 'TR' , 'DK_Be7' , +# 'CVtend_Be7' , 'TR' , + :: + + geosgcm_lidar.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_lidar.archive: '%c/Y%y4' , + geosgcm_lidar.format: 'CFIO' , + geosgcm_lidar.deflate: 1 , + geosgcm_lidar.grid_label: PC360x181-DC , + geosgcm_lidar.regrid_method: 'BILINEAR', + geosgcm_lidar.mode: 'time-averaged' , + geosgcm_lidar.frequency: 030000 , + geosgcm_lidar.ref_time: 210000 , + geosgcm_lidar.vunit: 'm' , + geosgcm_lidar.vvars: 'ZL' , 'DYN' , + geosgcm_lidar.levels: 240 720 1200 1680 2160 2640 3120 3600 4080 4560 5040 5520 6000 6480 6960 7440 7920 8400 8880 9360 9840 10320 10800 11280 11760 12240 12720 13200 13680 14160 14640 15120 15600 16080 16560 17040 17520 18000 18480 18960 , + geosgcm_lidar.fields: 'LIDARPMOL' , 'SATSIM' , + 'LIDARPTOT' , 'SATSIM' , + 'LIDARTAUTOT' , 'SATSIM' , + 'CLLS' , 'MOIST' , + 'FCLD' , 'MOIST' , + 'CLCALIPSO2' , 'SATSIM' , + 'CLLCALIPSO' , 'SATSIM' , + 'CLMCALIPSO' , 'SATSIM' , + 'CLHCALIPSO' , 'SATSIM' , + 'CLTCALIPSO' , 'SATSIM' , + 'CFADLIDARSR532_01' , 'SATSIM' , 'CFADLDRSR532_01' , + 'CFADLIDARSR532_02' , 'SATSIM' , 'CFADLDRSR532_02' , + 'CFADLIDARSR532_03' , 'SATSIM' , 'CFADLDRSR532_03' , + 'CFADLIDARSR532_04' , 'SATSIM' , 'CFADLDRSR532_04' , + 'CFADLIDARSR532_05' , 'SATSIM' , 'CFADLDRSR532_05' , + 'CFADLIDARSR532_06' , 'SATSIM' , 'CFADLDRSR532_06' , + 'CFADLIDARSR532_07' , 'SATSIM' , 'CFADLDRSR532_07' , + 'CFADLIDARSR532_08' , 'SATSIM' , 'CFADLDRSR532_08' , + 'CFADLIDARSR532_09' , 'SATSIM' , 'CFADLDRSR532_09' , + 'CFADLIDARSR532_10' , 'SATSIM' , 'CFADLDRSR532_10' , + 'CFADLIDARSR532_11' , 'SATSIM' , 'CFADLDRSR532_11' , + 'CFADLIDARSR532_12' , 'SATSIM' , 'CFADLDRSR532_12' , + 'CFADLIDARSR532_13' , 'SATSIM' , 'CFADLDRSR532_13' , + 'CFADLIDARSR532_14' , 'SATSIM' , 'CFADLDRSR532_14' , + 'CFADLIDARSR532_15' , 'SATSIM' , 'CFADLDRSR532_15' , + 'CLDTMP' , 'SOLAR' , 'SWCLDTMP' , + 'CLDPRS' , 'SOLAR' , 'SWCLDPRS' , + 'OSR' , 'SOLAR' , + 'SLRTP' , 'SOLAR' , 'RADSWT' , + :: + + geosgcm_parasol.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_parasol.archive: '%c/Y%y4' , + geosgcm_parasol.format: 'CFIO' , + geosgcm_parasol.deflate: 1 , + geosgcm_parasol.grid_label: PC360x181-DC , + geosgcm_parasol.regrid_method: 'BILINEAR', + geosgcm_parasol.mode: 'time-averaged' , + geosgcm_parasol.frequency: 030000 , + geosgcm_parasol.ref_time: 210000 , + geosgcm_parasol.fields: 'PARASOLREFL1' , 'SATSIM' , + 'PARASOLREFL2' , 'SATSIM' , + 'PARASOLREFL3' , 'SATSIM' , + 'PARASOLREFL4' , 'SATSIM' , + 'PARASOLREFL5' , 'SATSIM' , + :: + + geosgcm_radar.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_radar.archive: '%c/Y%y4' , + geosgcm_radar.format: 'CFIO' , + geosgcm_radar.deflate: 1 , + geosgcm_radar.grid_label: PC360x181-DC , + geosgcm_radar.regrid_method: 'BILINEAR', + geosgcm_radar.mode: 'time-averaged' , + geosgcm_radar.frequency: 030000 , + geosgcm_radar.ref_time: 210000 , + geosgcm_radar.vunit: 'm' , + geosgcm_radar.vvars: 'ZL' , 'DYN' , + geosgcm_radar.levels: 240 720 1200 1680 2160 2640 3120 3600 4080 4560 5040 5520 6000 6480 6960 7440 7920 8400 8880 9360 9840 10320 10800 11280 11760 12240 12720 13200 13680 14160 14640 15120 15600 16080 16560 17040 17520 18000 18480 18960 , + geosgcm_radar.fields: 'RADARLTCC' , 'SATSIM' , + 'CLCALIPSO2' , 'SATSIM' , + 'CLCALIPSO' , 'SATSIM' , + 'CLOUDSATCFAD01' , 'SATSIM' , + 'CLOUDSATCFAD02' , 'SATSIM' , + 'CLOUDSATCFAD03' , 'SATSIM' , + 'CLOUDSATCFAD04' , 'SATSIM' , + 'CLOUDSATCFAD05' , 'SATSIM' , + 'CLOUDSATCFAD06' , 'SATSIM' , + 'CLOUDSATCFAD07' , 'SATSIM' , + 'CLOUDSATCFAD08' , 'SATSIM' , + 'CLOUDSATCFAD09' , 'SATSIM' , + 'CLOUDSATCFAD10' , 'SATSIM' , + 'CLOUDSATCFAD11' , 'SATSIM' , + 'CLOUDSATCFAD12' , 'SATSIM' , + 'CLOUDSATCFAD13' , 'SATSIM' , + 'CLOUDSATCFAD14' , 'SATSIM' , + 'CLOUDSATCFAD15' , 'SATSIM' , + 'CLLS' , 'MOIST' , + 'FCLD' , 'MOIST' , + 'QLLS' , 'MOIST' , + 'QILS' , 'MOIST' , + 'RI' , 'MOIST' , 'RDFI' , + 'RL' , 'MOIST' , 'RDFL' , + 'SGFCLD' , 'SATSIM' , + 'CLDTMP' , 'SOLAR' , 'SWCLDTMP' , + 'CLDPRS' , 'SOLAR' , 'SWCLDPRS' , + 'OSR' , 'SOLAR' , + 'SLRTP' , 'SOLAR' , 'RADSWT' , + :: + + geosgcm_isccp.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_isccp.archive: '%c/Y%y4' , + geosgcm_isccp.format: 'CFIO' , + geosgcm_isccp.deflate: 1 , + geosgcm_isccp.grid_label: PC360x181-DC , + geosgcm_isccp.regrid_method: 'BILINEAR', + geosgcm_isccp.mode: 'time-averaged' , + geosgcm_isccp.frequency: 030000 , + geosgcm_isccp.ref_time: 210000 , + geosgcm_isccp.fields: 'SGFCLD' , 'SATSIM' , + 'TCLISCCP' , 'SATSIM' , + 'ALBISCCP' , 'SATSIM' , + 'CTPISCCP' , 'SATSIM' , + 'ISCCP_CU_OA' , 'SATSIM' , + 'ISCCP_CU_OB' , 'SATSIM' , + 'ISCCP_CU_UA' , 'SATSIM' , + 'ISCCP_CU_UB' , 'SATSIM' , + 'ISCCP_STCU_OA' , 'SATSIM' , + 'ISCCP_STCU_OB' , 'SATSIM' , + 'ISCCP_STCU_UA' , 'SATSIM' , + 'ISCCP_STCU_UB' , 'SATSIM' , + 'ISCCP_ST_OA' , 'SATSIM' , + 'ISCCP_ST_OB' , 'SATSIM' , + 'ISCCP_ST_UA' , 'SATSIM' , + 'ISCCP_ST_UB' , 'SATSIM' , + 'ISCCP_ACU_OA' , 'SATSIM' , + 'ISCCP_ACU_OB' , 'SATSIM' , + 'ISCCP_ACU_UA' , 'SATSIM' , + 'ISCCP_ACU_UB' , 'SATSIM' , + 'ISCCP_AST_OA' , 'SATSIM' , + 'ISCCP_AST_OB' , 'SATSIM' , + 'ISCCP_AST_UA' , 'SATSIM' , + 'ISCCP_AST_UB' , 'SATSIM' , + 'ISCCP_NST_OA' , 'SATSIM' , + 'ISCCP_NST_OB' , 'SATSIM' , + 'ISCCP_NST_UA' , 'SATSIM' , + 'ISCCP_NST_UB' , 'SATSIM' , + 'ISCCP_CI_OA' , 'SATSIM' , + 'ISCCP_CI_OB' , 'SATSIM' , + 'ISCCP_CI_MA' , 'SATSIM' , + 'ISCCP_CI_MB' , 'SATSIM' , + 'ISCCP_CI_UA' , 'SATSIM' , + 'ISCCP_CI_UB' , 'SATSIM' , + 'ISCCP_CIST_OA' , 'SATSIM' , + 'ISCCP_CIST_OB' , 'SATSIM' , + 'ISCCP_CIST_MA' , 'SATSIM' , + 'ISCCP_CIST_MB' , 'SATSIM' , + 'ISCCP_CIST_UA' , 'SATSIM' , + 'ISCCP_CIST_UB' , 'SATSIM' , + 'ISCCP_CB_OA' , 'SATSIM' , + 'ISCCP_CB_OB' , 'SATSIM' , + 'ISCCP_CB_MA' , 'SATSIM' , + 'ISCCP_CB_MB' , 'SATSIM' , + 'ISCCP_CB_UA' , 'SATSIM' , + 'ISCCP_CB_UB' , 'SATSIM' , + 'ISCCP_SUBV1' , 'SATSIM' , + 'ISCCP_SUBV2' , 'SATSIM' , + 'ISCCP_SUBV3' , 'SATSIM' , + 'ISCCP_SUBV4' , 'SATSIM' , + 'ISCCP_SUBV5' , 'SATSIM' , + 'ISCCP_SUBV6' , 'SATSIM' , + 'ISCCP_SUBV7' , 'SATSIM' , + 'CLLS' , 'MOIST' , + 'FCLD' , 'MOIST' , + 'CLDTMP' , 'SOLAR' , 'SWCLDTMP' , + 'CLDPRS' , 'SOLAR' , 'SWCLDPRS' , + 'OSR' , 'SOLAR' , + 'SLRTP' , 'SOLAR' , 'RADSWT' , + :: + + geosgcm_modis.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_modis.archive: '%c/Y%y4' , + geosgcm_modis.format: 'CFIO' , + geosgcm_modis.deflate: 1 , + geosgcm_modis.grid_label: PC360x181-DC , + geosgcm_modis.regrid_method: 'BILINEAR', + geosgcm_modis.mode: 'time-averaged' , + geosgcm_modis.frequency: 030000 , + geosgcm_modis.ref_time: 210000 , + geosgcm_modis.fields: 'TCLISCCP' , 'SATSIM' , + 'MDSCLDFRCTTL' , 'SATSIM' , + 'MDSCLDFRCWTR' , 'SATSIM' , + 'MDSCLDFRCICE' , 'SATSIM' , + 'MDSCLDFRCHI' , 'SATSIM' , + 'MDSCLDFRCMID' , 'SATSIM' , + 'MDSCLDFRCLO' , 'SATSIM' , + 'MDSOPTHCKTTL' , 'SATSIM' , + 'MDSOPTHCKWTR' , 'SATSIM' , + 'MDSOPTHCKICE' , 'SATSIM' , + 'MDSOPTHCKTTLLG' , 'SATSIM' , + 'MDSOPTHCKWTRLG' , 'SATSIM' , + 'MDSOPTHCKICELG' , 'SATSIM' , + 'MDSCLDSZWTR' , 'SATSIM' , + 'MDSCLDSZICE' , 'SATSIM' , + 'MDSCLDTOPPS' , 'SATSIM' , + 'MDSWTRPATH' , 'SATSIM' , + 'MDSICEPATH' , 'SATSIM' , + 'MDSTAUPRSHIST11' , 'SATSIM' , + 'MDSTAUPRSHIST12' , 'SATSIM' , + 'MDSTAUPRSHIST13' , 'SATSIM' , + 'MDSTAUPRSHIST14' , 'SATSIM' , + 'MDSTAUPRSHIST15' , 'SATSIM' , + 'MDSTAUPRSHIST16' , 'SATSIM' , + 'MDSTAUPRSHIST17' , 'SATSIM' , + 'MDSTAUPRSHIST21' , 'SATSIM' , + 'MDSTAUPRSHIST22' , 'SATSIM' , + 'MDSTAUPRSHIST23' , 'SATSIM' , + 'MDSTAUPRSHIST24' , 'SATSIM' , + 'MDSTAUPRSHIST25' , 'SATSIM' , + 'MDSTAUPRSHIST26' , 'SATSIM' , + 'MDSTAUPRSHIST27' , 'SATSIM' , + 'MDSTAUPRSHIST31' , 'SATSIM' , + 'MDSTAUPRSHIST32' , 'SATSIM' , + 'MDSTAUPRSHIST33' , 'SATSIM' , + 'MDSTAUPRSHIST34' , 'SATSIM' , + 'MDSTAUPRSHIST35' , 'SATSIM' , + 'MDSTAUPRSHIST36' , 'SATSIM' , + 'MDSTAUPRSHIST37' , 'SATSIM' , + 'MDSTAUPRSHIST41' , 'SATSIM' , + 'MDSTAUPRSHIST42' , 'SATSIM' , + 'MDSTAUPRSHIST43' , 'SATSIM' , + 'MDSTAUPRSHIST44' , 'SATSIM' , + 'MDSTAUPRSHIST45' , 'SATSIM' , + 'MDSTAUPRSHIST46' , 'SATSIM' , + 'MDSTAUPRSHIST47' , 'SATSIM' , + 'MDSTAUPRSHIST51' , 'SATSIM' , + 'MDSTAUPRSHIST52' , 'SATSIM' , + 'MDSTAUPRSHIST53' , 'SATSIM' , + 'MDSTAUPRSHIST54' , 'SATSIM' , + 'MDSTAUPRSHIST55' , 'SATSIM' , + 'MDSTAUPRSHIST56' , 'SATSIM' , + 'MDSTAUPRSHIST57' , 'SATSIM' , + 'MDSTAUPRSHIST61' , 'SATSIM' , + 'MDSTAUPRSHIST62' , 'SATSIM' , + 'MDSTAUPRSHIST63' , 'SATSIM' , + 'MDSTAUPRSHIST64' , 'SATSIM' , + 'MDSTAUPRSHIST65' , 'SATSIM' , + 'MDSTAUPRSHIST66' , 'SATSIM' , + 'MDSTAUPRSHIST67' , 'SATSIM' , + 'MDSTAUPRSHIST71' , 'SATSIM' , + 'MDSTAUPRSHIST72' , 'SATSIM' , + 'MDSTAUPRSHIST73' , 'SATSIM' , + 'MDSTAUPRSHIST74' , 'SATSIM' , + 'MDSTAUPRSHIST75' , 'SATSIM' , + 'MDSTAUPRSHIST76' , 'SATSIM' , + 'MDSTAUPRSHIST77' , 'SATSIM' , + 'CLDTMP' , 'SOLAR' , 'SWCLDTMP' , + 'CLDPRS' , 'SOLAR' , 'SWCLDPRS' , + 'OSR' , 'SOLAR' , + 'SLRTP' , 'SOLAR' , 'RADSWT' , + :: + + geosgcm_misr.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_misr.archive: '%c/Y%y4' , + geosgcm_misr.format: 'CFIO' , + geosgcm_misr.deflate: 1 , + geosgcm_misr.grid_label: PC360x181-DC , + geosgcm_misr.regrid_method: 'BILINEAR', + geosgcm_misr.mode: 'time-averaged' , + geosgcm_misr.frequency: 030000 , + geosgcm_misr.ref_time: 210000 , + geosgcm_misr.fields: 'TCLISCCP' , 'SATSIM' , + 'MISRMNCLDTP' , 'SATSIM' , + 'MISRCLDAREA' , 'SATSIM' , + 'MISRLYRTP0' , 'SATSIM' , + 'MISRLYRTP250' , 'SATSIM' , + 'MISRLYRTP750' , 'SATSIM' , + 'MISRLYRTP1250' , 'SATSIM' , + 'MISRLYRTP1750' , 'SATSIM' , + 'MISRLYRTP2250' , 'SATSIM' , + 'MISRLYRTP2750' , 'SATSIM' , + 'MISRLYRTP3500' , 'SATSIM' , + 'MISRLYRTP4500' , 'SATSIM' , + 'MISRLYRTP6000' , 'SATSIM' , + 'MISRLYRTP8000' , 'SATSIM' , + 'MISRLYRTP10000' , 'SATSIM' , + 'MISRLYRTP12000' , 'SATSIM' , + 'MISRLYRTP14000' , 'SATSIM' , + 'MISRLYRTP16000' , 'SATSIM' , + 'MISRLYRTP18000' , 'SATSIM' , + :: +# Emissions (see HEMCO_Diagn.rc for additional config settings) + Emissions.template: '%y4%m2%d2_%h2%n2z.nc4', + Emissions.format: 'CFIO', + Emissions.timestampStart: .true. + Emissions.monthly: 1 + Emissions.frequency: 010000 + Emissions.duration: 010000 + Emissions.mode: 'time-averaged' + Emissions.fields: 'EmisRn_Soil ', 'GEOSCHEMCHEM', + 'EmisBe7_Cosmic ', 'GEOSCHEMCHEM', + 'EmisBe7s_Cosmic ', 'GEOSCHEMCHEM', + 'EmisBe10_Cosmic ', 'GEOSCHEMCHEM', + 'EmisBe10s_Cosmic ', 'GEOSCHEMCHEM', + 'EmisSF6 ', 'GEOSCHEMCHEM', + 'EmisCH3I ', 'GEOSCHEMCHEM', + 'EmisCO_25 ', 'GEOSCHEMCHEM', + 'EmisCO_50 ', 'GEOSCHEMCHEM', +:: +#============================================================================== +# Budget defined as species kg/s in the column (full, troposphere, or PBL) +# due to a single component (e.g. chemistry); default = ozone only; add more +# species as needed to the example below (advected only) + Budget.template: '%y4%m2%d2_%h2%n2z.nc4', + Budget.format: 'CFIO', + Budget.timestampStart: .true. + Budget.monthly: 1 + Budget.frequency: 010000 + Budget.duration: 010000 + Budget.mode: 'time-averaged' + Budget.fields: 'BudgetChemistryFull_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_Be7 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_Be7s ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_Be10 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_Be10s ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_CH3I ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_e90 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_e90_n ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_e90_s ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_SF6 ', 'GEOSCHEMCHEM', + 'BudgetChemistryFull_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetChemistryTrop_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_Be7 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_Be7s ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_Be10 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_Be10s ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_CH3I ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_e90 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_e90_n ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_e90_s ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_SF6 ', 'GEOSCHEMCHEM', + 'BudgetChemistryTrop_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetChemistryPBL_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_Be7 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_Be7s ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_Be10 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_Be10s ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_CH3I ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_e90 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_e90_n ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_e90_s ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_SF6 ', 'GEOSCHEMCHEM', + 'BudgetChemistryPBL_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetChemistryLevs1to35_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_Be7 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_Be7s ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_Be10 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_Be10s ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_CH3I ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_e90 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_e90_n ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_e90_s ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_SF6 ', 'GEOSCHEMCHEM', + 'BudgetChemistryLevs1to35_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetEmisDryDepFull_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_Be7 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_Be7s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_Be10 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_Be10s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_CH3I ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_e90 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_e90_n ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_e90_s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_SF6 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepFull_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetEmisDryDepTrop_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_Be7 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_Be7s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_Be10 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_Be10s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_CH3I ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_e90 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_e90_n ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_e90_s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_SF6 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepTrop_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetEmisDryDepPBL_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_Be7 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_Be7s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_Be10 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_Be10s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_CH3I ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_e90 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_e90_n ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_e90_s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_SF6 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepPBL_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetEmisDryDepLevs1to35_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_Be7 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_Be7s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_Be10 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_Be10s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_CH3I ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_e90 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_e90_n ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_e90_s ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_PassiveTracer', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_SF6 ', 'GEOSCHEMCHEM', + 'BudgetEmisDryDepLevs1to35_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetMixingFull_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_Be7 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_Be7s ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_Be10 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_Be10s ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_CH3I ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_e90 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_e90_n ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_e90_s ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_SF6 ', 'GEOSCHEMCHEM', + 'BudgetMixingFull_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetMixingTrop_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_Be7 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_Be7s ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_Be10 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_Be10s ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_CH3I ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_e90 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_e90_n ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_e90_s ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_SF6 ', 'GEOSCHEMCHEM', + 'BudgetMixingTrop_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetMixingPBL_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_Be7 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_Be7s ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_Be10 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_Be10s ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_CH3I ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_e90 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_e90_n ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_e90_s ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_SF6 ', 'GEOSCHEMCHEM', + 'BudgetMixingPBL_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetMixingLevs1to35_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_Be7 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_Be7s ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_Be10 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_Be10s ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_CH3I ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_e90 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_e90_n ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_e90_s ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_SF6 ', 'GEOSCHEMCHEM', + 'BudgetMixingLevs1to35_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetConvectionFull_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_Be7 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_Be7s ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_Be10 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_Be10s ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_CH3I ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_e90 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_e90_n ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_e90_s ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_SF6 ', 'GEOSCHEMCHEM', + 'BudgetConvectionFull_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetConvectionTrop_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_Be7 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_Be7s ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_Be10 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_Be10s ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_CH3I ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_e90 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_e90_n ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_e90_s ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_SF6 ', 'GEOSCHEMCHEM', + 'BudgetConvectionTrop_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetConvectionPBL_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_Be7 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_Be7s ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_Be10 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_Be10s ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_CH3I ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_e90 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_e90_n ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_e90_s ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_PassiveTracer ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_SF6 ', 'GEOSCHEMCHEM', + 'BudgetConvectionPBL_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetConvectionLevs1to35_Rn222 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_Be7 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_Be7s ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_Be10 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_Be10s ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_CH3I ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_CO_25 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_CO_50 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_e90 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_e90_n ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_e90_s ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_nh_5 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_nh_50 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_PassiveTracer', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_SF6 ', 'GEOSCHEMCHEM', + 'BudgetConvectionLevs1to35_st80_25 ', 'GEOSCHEMCHEM', + # + 'BudgetWetDepFull_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetWetDepFull_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetWetDepFull_Be7 ', 'GEOSCHEMCHEM', + 'BudgetWetDepFull_Be7s ', 'GEOSCHEMCHEM', + 'BudgetWetDepFull_Be10 ', 'GEOSCHEMCHEM', + 'BudgetWetDepFull_Be10s ', 'GEOSCHEMCHEM', + # + 'BudgetWetDepTrop_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetWetDepTrop_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetWetDepTrop_Be7 ', 'GEOSCHEMCHEM', + 'BudgetWetDepTrop_Be7s ', 'GEOSCHEMCHEM', + 'BudgetWetDepTrop_Be10 ', 'GEOSCHEMCHEM', + 'BudgetWetDepTrop_Be10s ', 'GEOSCHEMCHEM', + # + 'BudgetWetDepPBL_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetWetDepPBL_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetWetDepPBL_Be7 ', 'GEOSCHEMCHEM', + 'BudgetWetDepPBL_Be7s ', 'GEOSCHEMCHEM', + 'BudgetWetDepPBL_Be10 ', 'GEOSCHEMCHEM', + 'BudgetWetDepPBL_Be10s ', 'GEOSCHEMCHEM', + # + 'BudgetWetDepLevs1to35_Pb210 ', 'GEOSCHEMCHEM', + 'BudgetWetDepLevs1to35_Pb210s ', 'GEOSCHEMCHEM', + 'BudgetWetDepLevs1to35_Be7 ', 'GEOSCHEMCHEM', + 'BudgetWetDepLevs1to35_Be7s ', 'GEOSCHEMCHEM', + 'BudgetWetDepLevs1to35_Be10 ', 'GEOSCHEMCHEM', + 'BudgetWetDepLevs1to35_Be10s ', 'GEOSCHEMCHEM', +:: +#=============================================================================== + CloudConvFlux.template: '%y4%m2%d2_%h2%n2z.nc4', + CloudConvFlux.format: 'CFIO', + CloudConvFlux.timestampStart: .true. + CloudConvFlux.monthly: 1 + CloudConvFlux.frequency: 010000 + CloudConvFlux.duration: 010000 + CloudConvFlux.mode: 'time-averaged' + CloudConvFlux.fields: 'CloudConvFlux_Rn222 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_Pb210 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_Pb210s ', 'GEOSCHEMCHEM', + 'CloudConvFlux_Be7 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_Be7s ', 'GEOSCHEMCHEM', + 'CloudConvFlux_Be10 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_Be10s ', 'GEOSCHEMCHEM', + 'CloudConvFlux_aoa ', 'GEOSCHEMCHEM', + 'CloudConvFlux_aoa_bl ', 'GEOSCHEMCHEM', + 'CloudConvFlux_aoa_nh ', 'GEOSCHEMCHEM', + 'CloudConvFlux_CH3I ', 'GEOSCHEMCHEM', + 'CloudConvFlux_CO_25 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_CO_50 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_e90 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_e90_n ', 'GEOSCHEMCHEM', + 'CloudConvFlux_e90_s ', 'GEOSCHEMCHEM', + 'CloudConvFlux_nh_5 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_nh_50 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_PassiveTracer ', 'GEOSCHEMCHEM', + 'CloudConvFlux_SF6 ', 'GEOSCHEMCHEM', + 'CloudConvFlux_st80_25 ', 'GEOSCHEMCHEM', +:: +#============================================================================== + DryDep.template: '%y4%m2%d2_%h2%n2z.nc4', + DryDep.format: 'CFIO', + DryDep.timestampStart: .true. + DryDep.monthly: 1 + DryDep.frequency: 010000 + DryDep.duration: 010000 + DryDep.mode: 'time-averaged' + DryDep.fields: 'DryDep_Pb210 ', 'GEOSCHEMCHEM', + 'DryDep_Pb210s ', 'GEOSCHEMCHEM', + 'DryDep_Be7 ', 'GEOSCHEMCHEM', + 'DryDep_Be7s ', 'GEOSCHEMCHEM', + 'DryDep_Be10 ', 'GEOSCHEMCHEM', + 'DryDep_Be10s ', 'GEOSCHEMCHEM', + 'DryDepVel_Pb210 ', 'GEOSCHEMCHEM', + 'DryDepVel_Pb210s ', 'GEOSCHEMCHEM', + 'DryDepVel_Be7 ', 'GEOSCHEMCHEM', + 'DryDepVel_Be7s ', 'GEOSCHEMCHEM', + 'DryDepVel_Be10 ', 'GEOSCHEMCHEM', + 'DryDepVel_Be10s ', 'GEOSCHEMCHEM', +:: +#============================================================================== + LevelEdgeDiags.template: '%y4%m2%d2_%h2%n2z.nc4', + LevelEdgeDiags.format: 'CFIO', + LevelEdgeDiags.timestampStart: .true. + LevelEdgeDiags.monthly: 1 + LevelEdgeDiags.frequency: 010000 + LevelEdgeDiags.duration: 010000 + LevelEdgeDiags.mode: 'time-averaged' + LevelEdgeDiags.fields: 'Met_CMFMC ', 'GEOSCHEMCHEM', + 'Met_PEDGE ', 'GEOSCHEMCHEM', + 'Met_PEDGEDRY ', 'GEOSCHEMCHEM', + 'Met_PFICU ', 'GEOSCHEMCHEM', + 'Met_PFILSAN ', 'GEOSCHEMCHEM', + 'Met_PFLCU ', 'GEOSCHEMCHEM', + 'Met_PFLLSAN ', 'GEOSCHEMCHEM', +:: +#============================================================================== + RadioNuclide.template: '%y4%m2%d2_%h2%n2z.nc4', + RadioNuclide.format: 'CFIO', + RadioNuclide.timestampStart: .true. + RadioNuclide.monthly: 1 + RadioNuclide.frequency: 010000 + RadioNuclide.duration: 010000 + RadioNuclide.mode: 'time-averaged' + RadioNuclide.fields: 'PbFromRnDecay ', 'GEOSCHEMCHEM', + 'RadDecay_Rn222 ', 'GEOSCHEMCHEM', + 'RadDecay_Pb210 ', 'GEOSCHEMCHEM', + 'RadDecay_Pb210s ', 'GEOSCHEMCHEM', + 'RadDecay_Be7 ', 'GEOSCHEMCHEM', + 'RadDecay_Be7s ', 'GEOSCHEMCHEM', + 'RadDecay_Be10 ', 'GEOSCHEMCHEM', + 'RadDecay_Be10s ', 'GEOSCHEMCHEM', +:: +#============================================================================== + SpeciesConc.template: '%y4%m2%d2_%h2%n2z.nc4', + SpeciesConc.format: 'CFIO', + SpeciesConc.timestampStart: .true. + SpeciesConc.monthly: 1 + SpeciesConc.frequency: 010000 + SpeciesConc.duration: 010000 + SpeciesConc.mode: 'time-averaged' + SpeciesConc.fields: 'SpeciesConcVV_Rn222 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_Pb210 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_Pb210s ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_Be7 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_Be7s ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_Be10 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_Be10s ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_aoa ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_aoa_bl ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_aoa_nh ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_CH3I ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_CO_25 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_CO_50 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_e90 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_e90_n ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_e90_s ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_nh_5 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_nh_50 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_PassiveTracer ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_SF6 ', 'GEOSCHEMCHEM', + 'SpeciesConcVV_st80_25 ', 'GEOSCHEMCHEM', +:: +#============================================================================== + StateMet.template: '%y4%m2%d2_%h2%n2z.nc4', + StateMet.format: 'CFIO', + StateMet.timestampStart: .true. + StateMet.monthly: 1 + StateMet.frequency: 010000 + StateMet.duration: 010000 + StateMet.mode: 'time-averaged' + StateMet.fields: 'Met_AD ', 'GEOSCHEMCHEM', + 'Met_AIRDEN ', 'GEOSCHEMCHEM', + 'Met_AIRVOL ', 'GEOSCHEMCHEM', + 'Met_ALBD ', 'GEOSCHEMCHEM', + 'Met_AREAM2 ', 'GEOSCHEMCHEM', + 'Met_AVGW ', 'GEOSCHEMCHEM', + 'Met_BXHEIGHT ', 'GEOSCHEMCHEM', + 'Met_ChemGridLev ', 'GEOSCHEMCHEM', + 'Met_CLDF ', 'GEOSCHEMCHEM', + 'Met_CLDFRC ', 'GEOSCHEMCHEM', + 'Met_CLDTOPS ', 'GEOSCHEMCHEM', + 'Met_DELP ', 'GEOSCHEMCHEM', + 'Met_DQRCU ', 'GEOSCHEMCHEM', + 'Met_DQRLSAN ', 'GEOSCHEMCHEM', + 'Met_DTRAIN ', 'GEOSCHEMCHEM', + 'Met_EFLUX ', 'GEOSCHEMCHEM', + 'Met_FRCLND ', 'GEOSCHEMCHEM', + 'Met_FRLAKE ', 'GEOSCHEMCHEM', + 'Met_FRLAND ', 'GEOSCHEMCHEM', + 'Met_FRLANDICE ', 'GEOSCHEMCHEM', + 'Met_FROCEAN ', 'GEOSCHEMCHEM', + 'Met_FRSEAICE ', 'GEOSCHEMCHEM', + 'Met_FRSNOW ', 'GEOSCHEMCHEM', + 'Met_GWETROOT ', 'GEOSCHEMCHEM', + 'Met_GWETTOP ', 'GEOSCHEMCHEM', + 'Met_HFLUX ', 'GEOSCHEMCHEM', + 'Met_LAI ', 'GEOSCHEMCHEM', + 'Met_PARDR ', 'GEOSCHEMCHEM', + 'Met_PARDF ', 'GEOSCHEMCHEM', + 'Met_PBLTOPL ', 'GEOSCHEMCHEM', + 'Met_PBLH ', 'GEOSCHEMCHEM', + 'Met_PHIS ', 'GEOSCHEMCHEM', + 'Met_PMID ', 'GEOSCHEMCHEM', + 'Met_PMIDDRY ', 'GEOSCHEMCHEM', + 'Met_PRECANV ', 'GEOSCHEMCHEM', + 'Met_PRECCON ', 'GEOSCHEMCHEM', + 'Met_PRECLSC ', 'GEOSCHEMCHEM', + 'Met_PRECTOT ', 'GEOSCHEMCHEM', + 'Met_PS1DRY ', 'GEOSCHEMCHEM', + 'Met_PS1WET ', 'GEOSCHEMCHEM', + 'Met_PS2DRY ', 'GEOSCHEMCHEM', + 'Met_PS2WET ', 'GEOSCHEMCHEM', + 'Met_PSC2WET ', 'GEOSCHEMCHEM', + 'Met_PSC2DRY ', 'GEOSCHEMCHEM', + 'Met_QI ', 'GEOSCHEMCHEM', + 'Met_QL ', 'GEOSCHEMCHEM', + 'Met_OMEGA ', 'GEOSCHEMCHEM', + 'Met_OPTD ', 'GEOSCHEMCHEM', + 'Met_REEVAPCN ', 'GEOSCHEMCHEM', + 'Met_REEVAPLS ', 'GEOSCHEMCHEM', + 'Met_SLP ', 'GEOSCHEMCHEM', + 'Met_SNODP ', 'GEOSCHEMCHEM', + 'Met_SNOMAS ', 'GEOSCHEMCHEM', + 'Met_SPHU ', 'GEOSCHEMCHEM', + 'Met_SPHU1 ', 'GEOSCHEMCHEM', + 'Met_SPHU2 ', 'GEOSCHEMCHEM', + 'Met_SUNCOS ', 'GEOSCHEMCHEM', + 'Met_SUNCOSmid ', 'GEOSCHEMCHEM', + 'Met_SWGDN ', 'GEOSCHEMCHEM', + 'Met_T ', 'GEOSCHEMCHEM', + 'Met_TAUCLI ', 'GEOSCHEMCHEM', + 'Met_TAUCLW ', 'GEOSCHEMCHEM', + 'Met_THETA ', 'GEOSCHEMCHEM', + 'Met_TMPU1 ', 'GEOSCHEMCHEM', + 'Met_TMPU2 ', 'GEOSCHEMCHEM', + 'Met_TO3 ', 'GEOSCHEMCHEM', + 'Met_TropHt ', 'GEOSCHEMCHEM', + 'Met_TropLev ', 'GEOSCHEMCHEM', + 'Met_TropP ', 'GEOSCHEMCHEM', + 'Met_TS ', 'GEOSCHEMCHEM', + 'Met_TSKIN ', 'GEOSCHEMCHEM', + 'Met_TV ', 'GEOSCHEMCHEM', + 'Met_U ', 'GEOSCHEMCHEM', + 'Met_U10M ', 'GEOSCHEMCHEM', + 'Met_USTAR ', 'GEOSCHEMCHEM', + 'Met_UVALBEDO ', 'GEOSCHEMCHEM', + 'Met_V ', 'GEOSCHEMCHEM', + 'Met_V10M ', 'GEOSCHEMCHEM', + 'Met_Z0 ', 'GEOSCHEMCHEM', +:: +#============================================================================== + WetLossConv.template: '%y4%m2%d2_%h2%n2z.nc4', + WetLossConv.format: 'CFIO', + WetLossConv.timestampStart: .true. + WetLossConv.monthly: 1 + WetLossConv.frequency: 010000 + WetLossConv.duration: 010000 + WetLossConv.mode: 'time-averaged' + WetLossConv.fields: 'WetLossConv_Pb210 ', 'GEOSCHEMCHEM', + 'WetLossConv_Pb210s ', 'GEOSCHEMCHEM', + 'WetLossConv_Be7 ', 'GEOSCHEMCHEM', + 'WetLossConv_Be7s ', 'GEOSCHEMCHEM', + 'WetLossConv_Be10 ', 'GEOSCHEMCHEM', + 'WetLossConv_Be10s ', 'GEOSCHEMCHEM', + 'WetLossConvFrac_Pb210 ', 'GEOSCHEMCHEM', + 'WetLossConvFrac_Pb210s ', 'GEOSCHEMCHEM', + 'WetLossConvFrac_Be7 ', 'GEOSCHEMCHEM', + 'WetLossConvFrac_Be7s ', 'GEOSCHEMCHEM', + 'WetLossConvFrac_Be10 ', 'GEOSCHEMCHEM', + 'WetLossConvFrac_Be10s ', 'GEOSCHEMCHEM', +:: +#============================================================================== + WetLossLS.template: '%y4%m2%d2_%h2%n2z.nc4', + WetLossLS.format: 'CFIO', + WetLossLS.timestampStart: .true. + WetLossLS.monthly: 1 + WetLossLS.frequency: 010000 + WetLossLS.duration: 010000 + WetLossLS.mode: 'time-averaged' + WetLossLS.fields: 'WetLossLS_Pb210 ', 'GEOSCHEMCHEM', + 'WetLossLS_Pb210s ', 'GEOSCHEMCHEM', + 'WetLossLS_Be7 ', 'GEOSCHEMCHEM', + 'WetLossLS_Be7s ', 'GEOSCHEMCHEM', + 'WetLossLS_Be10 ', 'GEOSCHEMCHEM', + 'WetLossLS_Be10s ', 'GEOSCHEMCHEM', +:: + + diff --git a/run/GEOS/TransportTracers/geoschem_config.yml b/run/GEOS/TransportTracers/geoschem_config.yml new file mode 100644 index 000000000..900500ace --- /dev/null +++ b/run/GEOS/TransportTracers/geoschem_config.yml @@ -0,0 +1,63 @@ +--- +### geoschem_config.yml: GEOS-Chem Runtime configuration options. +### Customized for GCHP simulations using the TransportTracers mechanism. +### +### NOTE: Add quotes around nitrogen oxide ('NO'), because YAML +### parsers will confuse this with a negative "no" value. + +#============================================================================ +# Simulation settings +#============================================================================ +simulation: + name: TransportTracers + chem_inputs_dir: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/ + species_database_file: ./species_database.yml + verbose: + activate: false + on_cores: root # Allowed values: root all + +#============================================================================ +# Settings for GEOS-Chem operations +#============================================================================ +operations: + + chemistry: + activate: true + + convection: + activate: true + + dry_deposition: + activate: true + + pbl_mixing: + activate: false + use_non_local_pbl: false + + transport: + activate: true + transported_species: + - Rn222 + - Pb210 + - Pb210s + - Be7 + - Be7s + - Be10 + - Be10s + - aoa + - aoa_bl + - aoa_nh + - CH3I + - CO_25 + - CO_50 + - e90 + - e90_n + - e90_s + - nh_5 + - nh_50 + - PassiveTracer + - SF6 + - st80_25 + + wet_deposition: + activate: true diff --git a/run/GEOS/geoschem_analysis_cdas.yml b/run/GEOS/geoschem_analysis_cdas.yml new file mode 100644 index 000000000..91d39abe1 --- /dev/null +++ b/run/GEOS/geoschem_analysis_cdas.yml @@ -0,0 +1,97 @@ +### geoschem_analysis.yml + +#============================================================================ +# General settings +#============================================================================ +general: + runphase: 2 + nspecies: 3 + +#============================================================================ +# List of used analysis species +#============================================================================ +species: + Spc001: + SpeciesName: O3 + Active: true + AnalysisFreq: 6 + AnalysisHour: 0 + AnalysisMinute: 0 + ForwardLooking: false + FileTemplate: >>>EXPID<<<.inc.eta.%y4%m2%d2_%h200z.nc4 + FileVarName: ozone + FileVarUnit: ppmv + DryFlag: 0 + IsIncrement: true + InStrat: true + InTrop: true + IAU: true + AnaL1: 1 + AnaL2: 1 + AnaL3: 72 + AnaL4: 72 + AnaFraction: 1.0 + MaxChangeStrat: -1.0 + MaxChangeTrop: -1.0 + HasSpec2: 0 + ErrorMode: 1 + + Spc002: + SpeciesName: NO2 + Active: true + AnalysisFreq: 6 + AnalysisHour: 0 + AnalysisMinute: 0 + ForwardLooking: false + FileTemplate: >>>EXPID<<<.inc.eta.%y4%m2%d2_%h200z.nc4 + FileVarName: NO2 + FileVarUnit: v/v + DryFlag: 1 + IsIncrement: true + InStrat: true + InTrop: true + IAU: true + AnaL1: 1 + AnaL2: 1 + AnaL3: 72 + AnaL4: 72 + AnaFraction: 1.0 + MaxChangeStrat: -1.0 + MaxChangeTrop: -1.0 + MaxRatioStrat: 10.0 + MinRatioStrat: 0.1 + MaxRatioTrop: 10.0 + MinRatioTrop: 0.1 + MinConc: 1.0e-32 + HasSpec2: 0 + ErrorMode: 1 + + Spc003: + SpeciesName: SO2 + Active: true + AnalysisFreq: 6 + AnalysisHour: 0 + AnalysisMinute: 0 + ForwardLooking: false + FileTemplate: >>>EXPID<<<.inc.eta.%y4%m2%d2_%h200z.nc4 + FileVarName: SO2g + FileVarUnit: v/v + DryFlag: 1 + IsIncrement: true + InStrat: true + InTrop: true + IAU: true + AnaL1: 1 + AnaL2: 1 + AnaL3: 72 + AnaL4: 72 + AnaFraction: 1.0 + MaxChangeStrat: -1.0 + MaxChangeTrop: -1.0 + MaxRatioStrat: 10.0 + MinRatioStrat: 0.1 + MaxRatioTrop: 10.0 + MinRatioTrop: 0.1 + MinConc: 1.0e-32 + HasSpec2: 0 + ErrorMode: 1 diff --git a/run/GEOS/geoschem_analysis_geosit.yml b/run/GEOS/geoschem_analysis_geosit.yml new file mode 100644 index 000000000..f028ddfa5 --- /dev/null +++ b/run/GEOS/geoschem_analysis_geosit.yml @@ -0,0 +1,37 @@ +### geoschem_analysis.yml + +#============================================================================ +# General settings +#============================================================================ +general: + runphase: 2 + nspecies: 1 + +#============================================================================ +# List of used analysis species +#============================================================================ +species: + Spc001: + SpeciesName: O3 + Active: true + AnalysisFreq: 6 + AnalysisHour: 0 + AnalysisMinute: 0 + ForwardLooking: true + FldNameHco: GEOSIT_O3 + FileVarUnit: ppmv + DryFlag: 0 + IsIncrement: false + InStrat: true + InTrop: false + IAU: false + AnaL1: 1 + AnaL2: 1 + AnaL3: 72 + AnaL4: 72 + StratSponge: 2 + AnaFraction: 1.0 + MaxChangeStrat: -1.0 + MaxChangeTrop: -1.0 + HasSpec2: 0 + ErrorMode: 1 diff --git a/run/GEOS/geoschem_config.yml b/run/GEOS/geoschem_config.yml index 2bf26aca5..98d5d6321 100644 --- a/run/GEOS/geoschem_config.yml +++ b/run/GEOS/geoschem_config.yml @@ -12,7 +12,9 @@ simulation: name: fullchem chem_inputs_dir: /discover/nobackup/cakelle2/data/CHEM_INPUTS/ species_database_file: ./species_database.yml - debug_printout: false + verbose: + activate: false + on_cores: root # Allowed values: root all #============================================================================ # Settings for GEOS-Chem operations @@ -41,7 +43,7 @@ operations: append_in_internal_timestep: false convection: - activate: true + activate: false dry_deposition: activate: true @@ -56,15 +58,18 @@ operations: use_non_local_pbl: false photolysis: - input_dir: /discover/nobackup/ewlundgr/data/ExtData/FAST_JX/v2021-10/ + activate: true + input_directories: + fastjx_input_dir: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/FAST_JX/v2023-10/ + cloudj_input_dir: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/CLOUD_J/v2023-05/ overhead_O3: use_online_O3_from_model: true use_column_O3_from_met: true use_TOMS_SBUV_O3: false photolyze_nitrate_aerosol: - activate: false - NITs_Jscale_JHNO3: 0.0 - NIT_Jscale_JHNO2: 0.0 + activate: true + NITs_Jscale: 100.0 + NIT_Jscale: 100.0 percent_channel_A_HONO: 66.667 percent_channel_B_NO2: 33.333 @@ -88,13 +93,6 @@ operations: - AONITA - AROMP4 - AROMP5 - - ASOA1 - - ASOA2 - - ASOA3 - - ASOAN - - ASOG1 - - ASOG2 - - ASOG3 - ATOOH - BALD - BCPI @@ -306,14 +304,6 @@ operations: - SOAP - SOAS - TOLU - - TSOA0 - - TSOA1 - - TSOA2 - - TSOA3 - - TSOG0 - - TSOG1 - - TSOG2 - - TSOG3 - XYLE wet_deposition: @@ -333,7 +323,7 @@ aerosols: hydrophobic: 1.0 complex_SOA: - activate: true + activate: false semivolatile_POA: false dust: diff --git a/run/GEOS/scripts/create_ch4_offset_file.py b/run/GEOS/scripts/create_ch4_offset_file.py new file mode 100755 index 000000000..83778d329 --- /dev/null +++ b/run/GEOS/scripts/create_ch4_offset_file.py @@ -0,0 +1,119 @@ +#!/usr/local/other/python/GEOSpyD/2019.03_py3.7/2019-04-22/bin/python +''' +Script to create uniform CH4 offset file that can be read by GEOS to +add a universal offset to CH4 boundary conditions. +The offset value can be either passed as input argument or calculated +online as the difference between the target year and the reference year. +In case of the latter, the values from the following source are used to +determine the CH4 increase: +- https://gml.noaa.gov/webdata/ccgg/trends/ch4/ch4_mm_gl.txt + +EXAMPLES: +1. Create CH4 growth files relative to 2021 passing explicit values: + +Create y/y offset file for January 2022 relative to 2021, using prescribed offset +python create_ch4_offset_file.py -y 2022 -m 1 -v 17.97e-9 -o 'ch4_offset_to_2021_%Y%m.nc' + +Create y/y offset file for January 2023 relative to 2022, using prescribed offset +python create_ch4_offset_file.py -y 2023 -m 1 -v 14.62e-9 -o 'ch4_offset_to_2022_%Y%m.nc' + +Create y/y offset file for January 2023 relative to 2021 by adding y/y offset to 2022/2021 file +python create_ch4_offset_file.py -y 2023 -m 1 -v 14.62e-9 -i 'ch4_offset_to_2021_2022%m.nc' -o 'ch4_offset_to_2021_%Y%m.nc' + +2. Create CH4 growth file relative to 2021 using online computed offset: +python create_ch4_offset_file.py -y 2023 -m 1 -r 2021 -o 'ch4_offset_to_2021_%Y%m.nc' + +HISTORY: +20240118 - christoph.a.keller@nasa.gov - initial version +''' +import sys +import argparse +import logging +import datetime as dt +import time +import numpy as np +import xarray as xr +import pandas as pd + +# NOAA CH4 data +URL="https://gml.noaa.gov/webdata/ccgg/trends/ch4/ch4_mm_gl.txt" + +def main(args): + ''' + Create a netCDF file with the given offset values. + ''' + log = logging.getLogger(__name__) + # output time + otime = dt.datetime(args.year,args.month,1) + # offset value: read from online table if not provided + offset = np.nan + if args.value is None: + log.info('Reading CH4 trends from {}'.format(URL)) + dat = pd.read_csv(URL,comment="#",header=None,sep='\s+') + # get reference values in ppb + refconc = dat.loc[(dat[0]==args.refyear)&(dat[1]==args.month),3].values[0] + targetconc = dat.loc[(dat[0]==args.year)&(dat[1]==args.month),3].values[0] + offset = (targetconc-refconc)*1.0e-9 + log.info("Calculated offset from URL: {}".format(URL)) + log.info("reference concentration ({}-{}): {}".format(args.refyear,args.month,refconc)) + log.info("target concentration ({}-{}): {}".format(args.year,args.month,targetconc)) + log.info("offset (mol/mol): {}".format(offset)) + else: + offset = args.value + + # define lat/lon coordinates and output array with offsets. + if args.ifile is not None: + # Read input file and inherit coordinates from it. Add offset to values in that file + ifile = otime.strftime(args.ifile) + log.info('reading {}'.format(ifile)) + dsi = xr.open_dataset(ifile) + lons = dsi.lon.values + lats = dsi.lat.values + assert args.varname in dsi,"variable {} not found in {}".format(args.varname,args.ifile) + assert len(dsi[args.varname].shape)==3,"variable {} must have 3 dimensions (time,lat,lon)".format(args.varname) + arr = dsi[args.varname].values[:,:,:] + offset + else: + # Create from scratch + lons = np.arange(-180.,180.,2.5) + lats = np.arange(-90.,90.1,2.) + arr = np.zeros((1,len(lats),len(lons))) + arr[:] = offset + + # Create output dataset + ds = xr.Dataset() + ds[args.varname] = (('time','lat','lon'),arr) + ds[args.varname].attrs = {'standard_name':'CH4_offset','long_name':'CH4_offset','units':"mol/mol"} + ds.coords['lat'] = (('lat'),lats) + ds['lat'].attrs = {'standard_name':'latitude','long_name':'latitude','units':'degrees_north'} + ds.coords['lon'] = (('lon'),lons) + ds['lon'].attrs = {'standard_name':'longitude','long_name':'longitude','units':'degrees_east'} + tunit = otime.strftime('days since %Y-%m-%d %H:%M:%S') + ds.coords['time'] = (('time'),np.zeros((1,))) + ds['time'].attrs = {'standard_name':'time','long_name':'time','units':tunit,'calendar':'standard'} + ofile = otime.strftime(args.ofile) + ds.to_netcdf(ofile) + log.info('file written to {}'.format(ofile)) + ds.close() + return + + +def parse_args(): + p = argparse.ArgumentParser(description='Undef certain variables') + p.add_argument('-y', '--year',type=int,help='output year',default=2023) + p.add_argument('-m', '--month',type=int,help='output month',default=1) + p.add_argument('-v', '--value',type=float,help='CH4 offset, in mol/mol dry',default=None) + p.add_argument('-r', '--refyear',type=int,help='reference year',default=2021) + p.add_argument('-i', '--ifile',type=str,help='input file, will add offset to values in that file',default=None) + p.add_argument('-o', '--ofile',type=str,help='output file',default="ch4_offset_to_2021_x144_y91_%Y%m.nc") + p.add_argument('-n', '--varname',type=str,help='variable name for offset',default="CH4_offset") + return p.parse_args() + + +if __name__ == '__main__': + log = logging.getLogger() + log.setLevel(logging.INFO) + handler = logging.StreamHandler(sys.stdout) + handler.setLevel(logging.INFO) + log.addHandler(handler) + main(parse_args()) + diff --git a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagCH4 b/run/WRF/ch4/HEMCO_Config.rc similarity index 59% rename from run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagCH4 rename to run/WRF/ch4/HEMCO_Config.rc index aa2664f16..d6edc5b85 100644 --- a/run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.tagCH4 +++ b/run/WRF/ch4/HEMCO_Config.rc @@ -17,13 +17,6 @@ # See The HEMCO User's Guide for file details: # http://wiki.geos-chem.org/The_HEMCO_User%27s_Guide # -# NOTE: To avoid duplicate container names, we have appended "_T" to -# the container names that denote one of the tagged CH4 species. -# For example, "CH4_OILGAS_T" denotes the contribution from EDGAR -# oil and gas that goes into tagged species "CH4_OIL", and -# "CH4_OILGAS" is the contribution that goes into the total -# "CH4" species. -# # !REVISION HISTORY: # See https://github.com/geoschem/geos-chem for complete history #EOP @@ -33,13 +26,13 @@ ### BEGIN SECTION SETTINGS ############################################################################### -ROOT: ${RUNDIR_DATA_ROOT}/HEMCO -METDIR: ${RUNDIR_MET_DIR} -GCAPSCENARIO: ${RUNDIR_GCAP2_SCENARIO} -GCAPVERTRES: ${RUNDIR_GCAP2_VERTRES} +ROOT: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData/HEMCO +METDIR: not_used +GCAPSCENARIO: not_used +GCAPVERTRES: 47 Logfile: * DiagnFile: HEMCO_Diagn.rc -DiagnPrefix: ./OutputDir/HEMCO_diagnostics +DiagnPrefix: ./HEMCO_diagnostics DiagnFreq: Monthly Wildcard: * Separator: / @@ -58,12 +51,7 @@ Warnings: 1 0 Base : on * # ----- MAIN SWITCHES --------------------------------------------------------- --> EMISSIONS : true - --> METEOROLOGY : true ${RUNDIR_MET_AVAIL} --> CHEMISTRY_INPUT : true -# ----- RESTART FIELDS -------------------------------------------------------- - --> GC_RESTART : true -# ----- NESTED GRID FIELDS ---------------------------------------------------- - --> GC_BCs : ${RUNDIR_USE_BCs} # ----- REGIONAL INVENTORIES -------------------------------------------------- --> GEPA : true # 2012 --> Scarpelli_Canada : true # 2018 @@ -134,110 +122,66 @@ Warnings: 1 #============================================================================== (((GEPA ### Oil ### -0 GEPA_OIL_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4_OIL 1008 1 100 -0 GEPA_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1008 1 100 +0 GEPA_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1008 1 100 ### Gas ### -0 GEPA_GAS_PRODUCTION_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4_GAS 1008 2 100 -0 GEPA_GAS_PRODUCTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_GAS_PROCESSING_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4_GAS 1008 2 100 -0 GEPA_GAS_PROCESSING $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_GAS_TRANSMISSION_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4_GAS 1008 2 100 -0 GEPA_GAS_TRANSMISSION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 -0 GEPA_GAS_DISTRIBUTION_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4_GAS 1008 2 100 -0 GEPA_GAS_DISTRIBUTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GEPA_GAS_PRODUCTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GEPA_GAS_PROCESSING $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GEPA_GAS_TRANSMISSION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 +0 GEPA_GAS_DISTRIBUTION $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1008 2 100 ### Coal ### -0 GEPA_COAL_UNDERGROUND_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4_COL 1008 3 100 -0 GEPA_COAL_UNDERGROUND $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 -0 GEPA_COAL_SURFACE_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4_COL 1008 3 100 -0 GEPA_COAL_SURFACE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 -0 GEPA_COAL_ABANDONED_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4_COL 1008 3 100 -0 GEPA_COAL_ABANDONED $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GEPA_COAL_UNDERGROUND $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GEPA_COAL_SURFACE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 +0 GEPA_COAL_ABANDONED $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1008 3 100 ### Livestock ### -0 GEPA_LIVESTOCK__4A_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4_LIV 1008 4 100 -0 GEPA_LIVESTOCK__4A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1008 4 100 -0 GEPA_LIVESTOCK__4B_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4_LIV 10/1008 4 100 -0 GEPA_LIVESTOCK__4B $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1008 4 100 +0 GEPA_LIVESTOCK__4A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1008 4 100 +0 GEPA_LIVESTOCK__4B $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1008 4 100 ### Landfills ### -0 GEPA_LANDFILLS_MUN_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4_LDF 1008 5 100 -0 GEPA_LANDFILLS_MUN $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 100 -0 GEPA_LANDFILLS_IND_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4_LDF 1008 5 100 -0 GEPA_LANDFILLS_IND $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GEPA_LANDFILLS_MUNI $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 100 +0 GEPA_LANDFILLS_INDU $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 5 100 ### Wastewater ### -0 GEPA_WASTEWATER_DOM_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4_WST 1008 6 100 -0 GEPA_WASTEWATER_DOM $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 100 -0 GEPA_WASTEWATER_IND_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4_WST 1008 6 100 -0 GEPA_WASTEWATER_IND $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 100 +0 GEPA_WASTEWATER_DOME $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 100 +0 GEPA_WASTEWATER_INDU $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1008 6 100 ### Rice ### -0 GEPA_RICE_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4_RIC 11/1008 7 100 -0 GEPA_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1008 7 100 +0 GEPA_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1008 7 100 ### Other Anthro ### -0 GEPA_OTHER__1A_M_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1008 8 100 -0 GEPA_OTHER__1A_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__1A_S_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1008 8 100 -0 GEPA_OTHER__1A_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__2B5_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1008 8 100 -0 GEPA_OTHER__2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__2C2_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1008 8 100 -0 GEPA_OTHER__2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 -0 GEPA_OTHER__4F_T $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4_OTA 1008 8 100 -0 GEPA_OTHER__4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1008 8 100 -#0 GEPA_OTHER__5_T $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1008 9 100 -#0 GEPA_OTHER__5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1008 9 100 -0 GEPA_OTHER__6D_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1008 8 100 -0 GEPA_OTHER__6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GEPA_OTHER__1A_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GEPA_OTHER__1A_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GEPA_OTHER__2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GEPA_OTHER__2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 +0 GEPA_OTHER__4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1008 8 100 +#0 GEPA_OTHER__5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1008 9 100 +0 GEPA_OTHER__6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1008 8 100 ### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) ### -0 GEPA_COAST_OIL_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4_OIL 1009 1 5 -0 GEPA_COAST_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1009 1 5 -0 GEPA_COAST_GAS_PR_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4_GAS 1009 2 5 -0 GEPA_COAST_GAS_PR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_GAS_PC_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4_GAS 1009 2 5 -0 GEPA_COAST_GAS_PC $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_GAS_TR_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4_GAS 1009 2 5 -0 GEPA_COAST_GAS_TR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_GAS_DS_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4_GAS 1009 2 5 -0 GEPA_COAST_GAS_DS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 -0 GEPA_COAST_COAL_U_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4_COL 1009 3 5 -0 GEPA_COAST_COAL_U $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 -0 GEPA_COAST_COAL_S_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4_COL 1009 3 5 -0 GEPA_COAST_COAL_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 -0 GEPA_COAST_COAL_A_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4_COL 1009 3 5 -0 GEPA_COAST_COAL_A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 -0 GEPA_COAST_LVSTK_F_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4_LIV 1009 4 1 -0 GEPA_COAST_LVSTK_F $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1009 4 1 -0 GEPA_COAST_LVSTK_M_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4_LIV 10/1009 4 1 -0 GEPA_COAST_LVSTK_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1009 4 1 -0 GEPA_COAST_LDF_M_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4_LDF 1009 5 1 -0 GEPA_COAST_LDF_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 1 -0 GEPA_COAST_LDF_I_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4_LDF 1009 5 1 -0 GEPA_COAST_LDF_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 1 -0 GEPA_COAST_WSTW_D_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4_WST 1009 6 1 -0 GEPA_COAST_WSTW_D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 1 -0 GEPA_COAST_WSTW_I_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4_WST 1009 6 1 -0 GEPA_COAST_WSTW_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 1 -0 GEPA_COAST_RICE_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4_RIC 11/1009 7 1 -0 GEPA_COAST_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1009 7 1 -0 GEPA_COAST_OTH_1AM_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1009 8 1 -0 GEPA_COAST_OTH_1AM $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_1AS_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1009 8 1 -0 GEPA_COAST_OTH_1AS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_2B5_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1009 8 1 -0 GEPA_COAST_OTH_2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_2C2_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1009 8 1 -0 GEPA_COAST_OTH_2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 -0 GEPA_COAST_OTH_4F_T $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4_OTA 1009 8 1 -0 GEPA_COAST_OTH_4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1009 8 1 -#0 GEPA_COAST_OTH_5_T $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1009 9 1 -#0 GEPA_COAST_OTH_5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1009 9 1 -0 GEPA_COAST_OTH_6D_T $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4_OTA 1009 8 1 -0 GEPA_COAST_OTH_6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 +0 GEPA_COAST_OIL $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2a_Petroleum 2012/1/1/0 C xy molec/cm2/s CH4 1009 1 5 +0 GEPA_COAST_GAS_PR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 +0 GEPA_COAST_GAS_PC $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Processing 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 +0 GEPA_COAST_GAS_TR $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Transmission 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 +0 GEPA_COAST_GAS_DS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B2b_Natural_Gas_Distribution 2012/1/1/0 C xy molec/cm2/s CH4 1009 2 5 +0 GEPA_COAST_COAL_U $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Underground 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 +0 GEPA_COAST_COAL_S $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Coal_Mining_Surface 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 +0 GEPA_COAST_COAL_A $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1B1a_Abandoned_Coal 2012/1/1/0 C xy molec/cm2/s CH4 1009 3 5 +0 GEPA_COAST_LVSTK_F $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4A_Enteric_Fermentation 2012/1/1/0 C xy molec/cm2/s CH4 1009 4 1 +0 GEPA_COAST_LVSTK_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4B_Manure_Management 2012/1/1/0 C xy molec/cm2/s CH4 10/1009 4 1 +0 GEPA_COAST_LDF_M $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Municipal 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 1 +0 GEPA_COAST_LDF_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6A_Landfills_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 5 1 +0 GEPA_COAST_WSTW_D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Domestic 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 1 +0 GEPA_COAST_WSTW_I $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6B_Wastewater_Treatment_Industrial 2012/1/1/0 C xy molec/cm2/s CH4 1009 6 1 +0 GEPA_COAST_RICE $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_4C_Rice_Cultivation 2012/1/1/0 C xy molec/cm2/s CH4 11/1009 7 1 +0 GEPA_COAST_OTH_1AM $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Mobile 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 +0 GEPA_COAST_OTH_1AS $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_1A_Combustion_Stationary 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 +0 GEPA_COAST_OTH_2B5 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2B5_Petrochemical_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 +0 GEPA_COAST_OTH_2C2 $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_2C2_Ferroalloy_Production 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 +0 GEPA_COAST_OTH_4F $ROOT/CH4/v2022-11/GEPA/GEPA_Monthly.nc emissions_4F_Field_Burning 2012/1-12/1/0 C xy molec/cm2/s CH4 1009 8 1 +#0 GEPA_COAST_OTH_5 $ROOT/CH4/v2022-11/GEPA_Daily.nc emissions_5_Forest_Fires 2012/1/1/0 C xy molec/cm2/s CH4 1009 9 1 +0 GEPA_COAST_OTH_6D $ROOT/CH4/v2022-11/GEPA/GEPA_Annual.nc emissions_6D_Composting 2012/1/1/0 C xy molec/cm2/s CH4 1009 8 1 )))GEPA #============================================================================== @@ -247,44 +191,26 @@ Warnings: 1 # - Use Hier=100 to add to Canada and USA regional inventories #============================================================================== (((Scarpelli_Mexico -0 MEX_OIL_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_OIL 1001 1 100 -0 MEX_OIL $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 1 100 -0 MEX_GAS_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_GAS 1001 2 100 -0 MEX_GAS $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 2 100 -0 MEX_COAL_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_COL 1001 3 100 -0 MEX_COAL $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 3 100 -0 MEX_LIVESTOCK_A_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_LIV 1001 4 100 -0 MEX_LIVESTOCK_A $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 4 100 -0 MEX_LIVESTOCK_B_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_LIV 10/1001 4 100 -0 MEX_LIVESTOCK_B $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1001 4 100 -0 MEX_LANDFILLS_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_LDF 1001 5 100 -0 MEX_LANDFILLS $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 5 100 -0 MEX_WASTEWATER_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_WST 1001 6 100 -0 MEX_WASTEWATER $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 6 100 -0 MEX_RICE_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_RIC 11/1001 7 100 -0 MEX_RICE $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1001 7 100 -0 MEX_OTHER_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_OTA 1001 8 100 -0 MEX_OTHER $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 8 100 +0 MEX_OIL $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 1 100 +0 MEX_GAS $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 2 100 +0 MEX_COAL $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 3 100 +0 MEX_LIVESTOCK_A $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 4 100 +0 MEX_LIVESTOCK_B $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1001 4 100 +0 MEX_LANDFILLS $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 5 100 +0 MEX_WASTEWATER $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 6 100 +0 MEX_RICE $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1001 7 100 +0 MEX_OTHER $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1001 8 100 ### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) ### -0 MEX_OIL_COAST_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_OIL 1010 1 5 -0 MEX_OIL_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 1 5 -0 MEX_GAS_COAST_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_GAS 1010 2 5 -0 MEX_GAS_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 2 5 -0 MEX_COAL_COAST_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_COL 1010 3 5 -0 MEX_COAL_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 3 5 -0 MEX_LIVESTOCK_A_COAST_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_LIV 1010 4 1 -0 MEX_LIVESTOCK_A_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 4 1 -0 MEX_LIVESTOCK_B_COAST_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_LIV 10/1010 4 1 -0 MEX_LIVESTOCK_B_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1010 4 1 -0 MEX_LANDFILLS_COAST_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_LDF 1010 5 1 -0 MEX_LANDFILLS_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 5 1 -0 MEX_WASTEWATER_COAST_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_WST 1010 6 1 -0 MEX_WASTEWATER_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 6 1 -0 MEX_RICE_COAST_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_RIC 11/1010 7 1 -0 MEX_RICE_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1010 7 1 -0 MEX_OTHER_COAST_T $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4_OTA 1010 8 1 -0 MEX_OTHER_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 8 1 +0 MEX_OIL_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_oil_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 1 5 +0 MEX_GAS_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_gas_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 2 5 +0 MEX_COAL_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_coal_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 3 5 +0 MEX_LIVESTOCK_A_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_A_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 4 1 +0 MEX_LIVESTOCK_B_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_livestock_B_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 10/1010 4 1 +0 MEX_LANDFILLS_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_landfill_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 5 1 +0 MEX_WASTEWATER_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_waste_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 6 1 +0 MEX_RICE_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_rice_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 11/1010 7 1 +0 MEX_OTHER_COAST $ROOT/CH4/v2020-09/Scarpelli_Mexico/MEX_Tia2020_other_anthro_2015.nc emis_ch4 2015/1/1/0 C xy molec/cm2/s CH4 1010 8 1 )))Scarpelli_Mexico #============================================================================== @@ -294,40 +220,24 @@ Warnings: 1 # - Use Hier=100 to add to USA and Mexico regional inventories #============================================================================== (((Scarpelli_Canada -0 CAN_OIL_GAS_COMBUSTION_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4_OIL 1002 1/2 100 -0 CAN_OIL_GAS_COMBUSTION $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_OIL_GAS_LEAKAGE_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4_OIL 1002 1/2 100 -0 CAN_OIL_GAS_LEAKAGE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_OIL_GAS_VENT_FLARE_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4_OIL 1002 1/2 100 -0 CAN_OIL_GAS_VENT_FLARE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 -0 CAN_COAL_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4_COL 1002 3 100 -0 CAN_COAL $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1002 3 100 -0 CAN_LIVESTOCK_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4_LIV 1002 4 100 -0 CAN_LIVESTOCK $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1002 4 100 -0 CAN_SOLID_WASTE_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4_LDF 1002 5 100 -0 CAN_SOLID_WASTE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1002 5 100 -0 CAN_WASTEWATER_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4_WST 1002 6 100 -0 CAN_WASTEWATER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1002 6 100 -0 CAN_OTHER_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4_OTA 1002 8 100 -0 CAN_OTHER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1002 8 100 +0 CAN_OIL_GAS_COMBUSTION $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_LEAKAGE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_OIL_GAS_VENT_FLARE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1002 1/2 100 +0 CAN_COAL $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1002 3 100 +0 CAN_LIVESTOCK $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1002 4 100 +0 CAN_SOLID_WASTE $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1002 5 100 +0 CAN_WASTEWATER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1002 6 100 +0 CAN_OTHER $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1002 8 100 ### Make sure to include offshore/coastal emissions (Hier=1 to add to EDGAR, Hier=5 to add to GFEI) ### -0 CAN_OIL_GAS_COMBUSTION_COAST_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4_OIL 1011 1/2 5 -0 CAN_OIL_GAS_COMBUSTION_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 -0 CAN_OIL_GAS_LEAKAGE_COAST_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4_OIL 1011 1/2 5 -0 CAN_OIL_GAS_LEAKAGE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 -0 CAN_OIL_GAS_VENT_FLARE_COAST_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4_OIL 1011 1/2 5 -0 CAN_OIL_GAS_VENT_FLARE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 -0 CAN_COAL_COAST_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4_COL 1011 3 5 -0 CAN_COAL_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1011 3 5 -0 CAN_LIVESTOCK_COAST_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4_LIV 1011 4 1 -0 CAN_LIVESTOCK_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1011 4 1 -0 CAN_SOLID_WASTE_COAST_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4_LDF 1011 5 1 -0 CAN_SOLID_WASTE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1011 5 1 -0 CAN_WASTEWATER_COAST_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4_WST 1011 6 1 -0 CAN_WASTEWATER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1011 6 1 -0 CAN_OTHER_COAST_T $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4_OTA 1011 8 1 -0 CAN_OTHER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1011 8 1 +0 CAN_OIL_GAS_COMBUSTION_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc oil_gas_combustion_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 +0 CAN_OIL_GAS_LEAKAGE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_leakage_2018.nc oil_gas_leakage_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 +0 CAN_OIL_GAS_VENT_FLARE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_vent_flare_2018.nc oil_gas_vent_flare_total 2018/1/1/0 C xy kg/m2/s CH4 1011 1/2 5 +0 CAN_COAL_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_coal_2018.nc coal_total 2018/1/1/0 C xy kg/m2/s CH4 1011 3 5 +0 CAN_LIVESTOCK_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_livestock_2018.nc livestock_total 2018/1/1/0 C xy kg/m2/s CH4 1011 4 1 +0 CAN_SOLID_WASTE_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_solid_waste_2018.nc solid_waste_total 2018/1/1/0 C xy kg/m2/s CH4 1011 5 1 +0 CAN_WASTEWATER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_wastewater_2018.nc wastewater_total 2018/1/1/0 C xy kg/m2/s CH4 1011 6 1 +0 CAN_OTHER_COAST $ROOT/CH4/v2022-01/Scarpelli_Canada/can_emis_other_minor_sources_2018.nc other_minor_sources_total 2018/1/1/0 C xy kg/m2/s CH4 1011 8 1 )))Scarpelli_Canada #============================================================================== @@ -336,12 +246,9 @@ Warnings: 1 # This inventory will replace EDGAR (oil, gas, & coal) #============================================================================== (((GFEIv2 -0 GFEI_CH4_OIL_T $ROOT/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Oil_All.nc emis_ch4 2019/1/1/0 C xy molec/cm2/s CH4_OIL - 1 5 -0 GFEI_CH4_OIL $ROOT/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Oil_All.nc emis_ch4 2019/1/1/0 C xy molec/cm2/s CH4 - 1 5 -0 GFEI_CH4_GAS_T $ROOT/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Gas_All.nc emis_ch4 2019/1/1/0 C xy molec/cm2/s CH4_GAS - 2 5 -0 GFEI_CH4_GAS $ROOT/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Gas_All.nc emis_ch4 2019/1/1/0 C xy molec/cm2/s CH4 - 2 5 -0 GFEI_CH4_COAL_T $ROOT/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Coal.nc emis_ch4 2019/1/1/0 C xy molec/cm2/s CH4_COL - 3 5 -0 GFEI_CH4_COAL $ROOT/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Coal.nc emis_ch4 2019/1/1/0 C xy molec/cm2/s CH4 - 3 5 +0 GFEI_CH4_OIL $ROOT/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Oil_All.nc emis_ch4 2019/1/1/0 C xy molec/cm2/s CH4 - 1 5 +0 GFEI_CH4_GAS $ROOT/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Gas_All.nc emis_ch4 2019/1/1/0 C xy molec/cm2/s CH4 - 2 5 +0 GFEI_CH4_COAL $ROOT/CH4/v2022-01/GFEIv2/Global_Fuel_Exploitation_Inventory_v2_2019_Coal.nc emis_ch4 2019/1/1/0 C xy molec/cm2/s CH4 - 3 5 )))GFEIv2 #============================================================================== @@ -349,64 +256,42 @@ Warnings: 1 #============================================================================== (((EDGARv6 ### Oil ### -0 CH4_OIL__1B2a_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_OIL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OIL - 1 1 -0 CH4_OIL__1B2a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_OIL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 1 1 +0 CH4_OIL__1B2a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_OIL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 1 1 ### Gas ### -0 CH4_OIL__1B2c_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_GAS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_GAS - 2 1 -0 CH4_OIL__1B2c $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_GAS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 2 1 +0 CH4_OIL__1B2c $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_GAS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 2 1 ### Coal ### -0 CH4_COAL__1B1a_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_COAL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_COL - 3 1 -0 CH4_COAL__1B1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_COAL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 3 1 +0 CH4_COAL__1B1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_PRO_COAL.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 3 1 ### Livestock ### -0 CH4_LIVESTOCK__4A_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_LIV - 4 1 -0 CH4_LIVESTOCK__4A $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CH4_LIVESTOCK__4B_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_MNM.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_LIV - 4 1 -0 CH4_LIVESTOCK__4B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_MNM.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 +0 CH4_LIVESTOCK__4A $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 +0 CH4_LIVESTOCK__4B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_MNM.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 4 1 ### Landfills ### -0 CH4_LANDFILLS__6A_6D_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_LDF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_LDF - 5 1 -0 CH4_LANDFILLS__6A_6D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_LDF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 5 1 +0 CH4_LANDFILLS__6A_6D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_LDF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 5 1 ### Wastewater ### -0 CH4_WASTEWATER__6B_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_WWT.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_WST - 6 1 -0 CH4_WASTEWATER__6B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_WWT.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 6 1 +0 CH4_WASTEWATER__6B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_WWT.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 6 1 ### Rice ### -0 CH4_RICE__4C_4D_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AGS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_RIC - 7 1 -0 CH4_RICE__4C_4D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AGS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 7 1 +0 CH4_RICE__4C_4D $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AGS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 7 1 ### Other Anthro ### -0 CH4_OTHER__1A1_1B1_1B2_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_REF_TRF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A1_1B1_1B2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_REF_TRF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A1a_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A2_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IND.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IND.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_CDS_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CDS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A3a_CDS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CDS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_CRS_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CRS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A3a_CRS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CRS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3a_LTO_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_LTO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A3a_LTO $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_LTO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3b_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TRO_noRES.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A3b $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TRO_noRES.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3c_1A3e_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Other.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A3c_1A3e $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Other.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A3d_1C2_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Ship.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A3d_1C2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Ship.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__1A4_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_RCO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__1A4 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_RCO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__2B_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_CHE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__2B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_CHE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__2C_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IRO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__2C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IRO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__4F_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AWB.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__4F $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AWB.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CH4_OTHER__6C_T $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_INC.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 -0 CH4_OTHER__6C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_INC.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A1_1B1_1B2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_REF_TRF.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A1a $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_ENE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IND.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A3a_CDS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CDS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A3a_CRS $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_CRS.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A3a_LTO $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Aviation_LTO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A3b $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TRO_noRES.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A3c_1A3e $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Other.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A3d_1C2 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_TNR_Ship.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__1A4 $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_RCO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__2B $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_CHE.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__2C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_IRO.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__4F $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_AWB.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 +0 CH4_OTHER__6C $ROOT/CH4/v2022-11/EDGARv6/$YYYY/v6.0_CH4_$YYYY_SWD_INC.0.1x0.1.nc emi_ch4 2000-2018/1-12/1/0 C xy kg/m2/s CH4 - 8 1 )))EDGARv6 #============================================================================== @@ -414,23 +299,15 @@ Warnings: 1 #============================================================================== (((CMIP6_SFC_LAND_ANTHRO 0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 4 1 -0 CMIP6_CH4_AGR_T $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4_LIV - 4 1 0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CMIP6_CH4_ENE_T $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4_GAS - 2 1 0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_IND_T $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_TRA_T $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 2 1 -0 CMIP6_CH4_RCO_T $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4_GAS - 2 1 0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_SLV_T $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 5 1 -0 CMIP6_CH4_WST_T $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4_LDF - 5 1 )))CMIP6_SFC_LAND_ANTHRO (((CMIP6_SHIP 0 CMIP6_CH4_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_shp 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 8 1 -0 CMIP6_CH4_SHP_T $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_shp 1970-2014/1-12/1/0 C xy kg/m2/s CH4_OTA - 8 1 )))CMIP6_SHIP #============================================================================== @@ -438,7 +315,6 @@ Warnings: 1 #============================================================================== (((BB4MIPS 0 CMIP6_BB_CH4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_bbn 1750-2015/1-12/1/0 C xyL=1:PBL kg/m2/s CH4 75 9 1 -0 CMIP6_BB_CH4_T $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_bbn 1750-2015/1-12/1/0 C xyL=1:PBL kg/m2/s CH4_BBN 75 9 1 )))BB4MIPS #============================================================================== @@ -448,8 +324,7 @@ Warnings: 1 # been found to be buggy for CH4 (same emissions on each day). #============================================================================== (((QFED2 -0 QFED_CH4_T $ROOT/CH4/v2017-10/QFED/QFEDv2.4r8.emis_ch4.$YYYY.nc emi_ch4 2009-2015/1-12/1-31/0 C xy molec/cm2/s CH4_BBN - 9 2 -0 QFED_CH4 $ROOT/CH4/v2017-10/QFED/QFEDv2.4r8.emis_ch4.$YYYY.nc emi_ch4 2009-2015/1-12/1-31/0 C xy molec/cm2/s CH4 - 9 2 +0 QFED_CH4 $ROOT/CH4/v2017-10/QFED/QFEDv2.4r8.emis_ch4.$YYYY.nc emi_ch4 2009-2015/1-12/1-31/0 C xy molec/cm2/s CH4 - 9 2 )))QFED2 #============================================================================== @@ -458,32 +333,28 @@ Warnings: 1 # Emissions through 2019 obtained from Yuzhong Zhang #============================================================================== (((UPDATED_GFED4 -0 UPDATED_GFED4_CH4_T $ROOT/CH4/v2020-09/GFED/GFED4_CH4_FIRE_$YYYY.nc emi_ch4 2009-2019/1-12/1-31/0 C xy molec/cm2/s CH4_BBN - 9 3 -0 UPDATED_GFED4_CH4 $ROOT/CH4/v2020-09/GFED/GFED4_CH4_FIRE_$YYYY.nc emi_ch4 2009-2019/1-12/1-31/0 C xy molec/cm2/s CH4 - 9 3 +0 UPDATED_GFED4_CH4 $ROOT/CH4/v2020-09/GFED/GFED4_CH4_FIRE_$YYYY.nc emi_ch4 2009-2019/1-12/1-31/0 C xy molec/cm2/s CH4 - 9 3 )))UPDATED_GFED4 #============================================================================== # --- JPL WetCHARTs v1.0 (Bloom et al., https://doi.org/10.3334/ORNLDAAC/1502) --- #============================================================================== (((JPL_WETCHARTS -0 JPLW_CH4_T $ROOT/CH4/v2020-09/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc emi_ch4 2010-2019/1-12/1/0 C xy molec/cm2/s CH4_WTL - 10 1 -0 JPLW_CH4 $ROOT/CH4/v2020-09/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc emi_ch4 2010-2019/1-12/1/0 C xy molec/cm2/s CH4 - 10 1 +0 JPLW_CH4 $ROOT/CH4/v2020-09/JPL_WetCharts/HEensemble/JPL_WetCharts_2010-2019.Ensemble_Mean.0.5x0.5.nc emi_ch4 2010-2019/1-12/1/0 C xy molec/cm2/s CH4 - 10 1 )))JPL_WETCHARTS #============================================================================== # --- Geological Seeps --- #============================================================================== (((SEEPS -0 CH4_SEEPS_T $ROOT/CH4/v2020-04/Seeps/Etiope_CH4GeologicalEmis_ScaledToHmiel.1x1.nc emi_ch4 2012/1/1/0 C xy kg/m2/s CH4_SEE - 11 1 -0 CH4_SEEPS $ROOT/CH4/v2020-04/Seeps/Etiope_CH4GeologicalEmis_ScaledToHmiel.1x1.nc emi_ch4 2012/1/1/0 C xy kg/m2/s CH4 - 11 1 +0 CH4_SEEPS $ROOT/CH4/v2020-04/Seeps/Etiope_CH4GeologicalEmis_ScaledToHmiel.1x1.nc emi_ch4 2012/1/1/0 C xy kg/m2/s CH4 - 11 1 )))SEEPS #============================================================================== # --- Emissions from Lakes (Maasakkers et al., 2019) --- #============================================================================== (((LAKES -0 CH4_LAKES_T $ROOT/CH4/v2022-11/Lakes/Maasakkers_Lakes_$YYYY.01x01.nc emi_ch4 $YYYY/1-12/1/0 C xy molec/cm2/s CH4_LAK - 12 1 -0 CH4_LAKES $ROOT/CH4/v2022-11/Lakes/Maasakkers_Lakes_$YYYY.01x01.nc emi_ch4 $YYYY/1-12/1/0 C xy molec/cm2/s CH4 - 12 1 +0 CH4_LAKES $ROOT/CH4/v2022-11/Lakes/Maasakkers_Lakes_$YYYY.01x01.nc emi_ch4 $YYYY/1-12/1/0 C xy molec/cm2/s CH4 - 12 1 )))LAKES #============================================================================== @@ -493,16 +364,12 @@ Warnings: 1 # - Multiply soil absorption by -1 to get a "negative" flux. # (Only apply the scaling factor when adding to the total CH4 simulation) # - Use updated soil absorption emissions with seasonality applied -# - For tagged CH4 simulations soil absorption is treated as a loss and applied -# in mixing_mod.F #============================================================================== (((FUNG_TERMITES -0 CH4_TERMITES_T $ROOT/CH4/v2014-09/4x5/termites.geos.4x5.nc CH4 1985/1/1/0 C xy kg/m2/s CH4_TER - 13 1 -0 CH4_TERMITES $ROOT/CH4/v2014-09/4x5/termites.geos.4x5.nc CH4 1985/1/1/0 C xy kg/m2/s CH4 - 13 1 +0 CH4_TERMITES $ROOT/CH4/v2014-09/4x5/termites.geos.4x5.nc CH4 1985/1/1/0 C xy kg/m2/s CH4 - 13 1 )))FUNG_TERMITES (((FUNG_SOIL_ABSORPTION -0 CH4_SOILABSORB_T $ROOT/CH4/v2019-10/Fung_SoilAbs/Soil_Absorption_4x5_$YYYY.nc CH4 2009-2015/1-12/1/0 C xy molec/cm2/s CH4_SAB - 14 1 -#0 CH4_SOILABSORB $ROOT/CH4/v2019-10/Fung_SoilAbs/Soil_Absorption_4x5_$YYYY.nc CH4 2009-2015/1-12/1/0 C xy molec/cm2/s CH4 1 14 1 +0 CH4_SOILABSORB $ROOT/CH4/v2019-10/Fung_SoilAbs/Soil_Absorption_4x5_$YYYY.nc CH4 2009-2015/1-12/1/0 C xy molec/cm2/s CH4 1 14 1 )))FUNG_SOIL_ABSORPTION #============================================================================== @@ -512,12 +379,10 @@ Warnings: 1 #============================================================================== (((MeMo_SOIL_ABSORPTION # Climatology -0 CH4_SOILABSORB_T $ROOT/CH4/v2019-10/MeMo_SoilAbs/MeMo_CH4uptake_Climatology.nc CH4uptake 2009/1-12/1/0 C xy kg/m2/s CH4_SAB - 14 2 -#0 CH4_SOILABSORB $ROOT/CH4/v2019-10/MeMo_SoilAbs/MeMo_CH4uptake_Climatology.nc CH4uptake 2009/1-12/1/0 C xy kg/m2/s CH4 1 14 2 +0 CH4_SOILABSORB $ROOT/CH4/v2019-10/MeMo_SoilAbs/MeMo_CH4uptake_Climatology.nc CH4uptake 2009/1-12/1/0 C xy kg/m2/s CH4 1 14 2 # 1990-2009 -#0 CH4_SOILABSORB_T $ROOT/CH4/v2019-10/MeMo_SoilAbs/MeMo_CH4uptake_1990-2009.nc CH4uptake 1990-2009/1-12/1/0 C xy kg/m2/s CH4_SAB - 14 2 -##0 CH4_SOILABSORB $ROOT/CH4/v2019-10/MeMo_SoilAbs/MeMo_CH4uptake_1990-2009.nc CH4uptake 1990-2009/1-12/1/0 C xy kg/m2/s CH4 1 14 2 +#0 CH4_SOILABSORB $ROOT/CH4/v2019-10/MeMo_SoilAbs/MeMo_CH4uptake_1990-2009.nc CH4uptake 1990-2009/1-12/1/0 C xy kg/m2/s CH4 1 14 2 )))MeMo_SOIL_ABSORPTION #============================================================================== @@ -612,42 +477,18 @@ Warnings: 1 #============================================================================== * TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 -#============================================================================== -# --- Meteorology fields --- -#============================================================================== -(((METEOROLOGY - ->>>include ${RUNDIR_MET_FIELD_CONFIG} - -)))METEOROLOGY - -#============================================================================== -# --- GEOS-Chem restart file --- -#============================================================================== -(((GC_RESTART -* SPC_ ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 SpeciesRst_?ALL? $YYYY/$MM/$DD/$HH EFYO xyz 1 * - 1 1 -* DELPDRY ./Restarts/GEOSChem.Restart.$YYYY$MM$DD_$HH$MNz.nc4 Met_DELPDRY $YYYY/$MM/$DD/$HH EY xyz 1 * - 1 1 -)))GC_RESTART - -#============================================================================== -# --- GEOS-Chem boundary condition file --- -#============================================================================== -(((GC_BCs -* BC_ $ROOT/SAMPLE_BCs/v2021-07/CH4/GEOSChem.BoundaryConditions.$YYYY$MM$DD_0000z.nc4 SpeciesBC_?ADV? 1980-2021/1-12/1-31/* EFY xyz 1 * - 1 1 -)))GC_BCs - #============================================================================== # --- Quantities needed for CH4 chemistry --- #============================================================================== (((CHEMISTRY_INPUT (((GMI_CH4_LOSS -${RUNDIR_CH4_LOSS} +* CH4_LOSS $ROOT/CH4/v2014-09/4x5/gmi.ch4loss.geos5_47L.4x5.nc CH4loss 1985/1-12/1/0 C xyz s-1 * - 1 1 )))GMI_CH4_LOSS (((GLOBAL_OH * GLOBAL_OH $ROOT/OH/v2014-09/v5-07-08/OH_3Dglobal.geos5.47L.4x5.nc OH 1985/1-12/1/0 C xyz kg/m3 * - 1 1 )))GLOBAL_OH (((GLOBAL_CL -${RUNDIR_GLOBAL_Cl} +* GLOBAL_Cl $ROOT/GCClassic_Output/13.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_Cl 2010-2019/1-12/1/0 C xyz 1 * - 1 1 )))GLOBAL_CL )))CHEMISTRY_INPUT @@ -831,7 +672,7 @@ ${RUNDIR_GLOBAL_Cl} (((AnalyticalInv # State vector file -* CH4_STATE_VECTOR StateVector.nc StateVector 2009/1/1/0 C xy 1 * - 1 1 +* CH4_STATE_VECTOR StateVector.nc StateVector 2009/1/1/0 C xy 1 * - 1 1 )))AnalyticalInv diff --git a/run/WRF/ch4/HEMCO_Diagn.rc b/run/WRF/ch4/HEMCO_Diagn.rc new file mode 100644 index 000000000..2d17e938d --- /dev/null +++ b/run/WRF/ch4/HEMCO_Diagn.rc @@ -0,0 +1,85 @@ +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: HEMCO_Diagn.rc +# +# !DESCRIPTION: Configuration file for netCDF diagnostic output from HEMCO. +#\\ +#\\ +# !REMARKS: +# Customized for the CH4 simulation. +# +# !REVISION HISTORY: +# 18 Oct 2018 - R. Yantosca - Added comment header and longname metadata. +# Also changed output unit to kg/m2/s. +#EOP +#------------------------------------------------------------------------------ +#BOC +# Name Spec ExtNr Cat Hier Dim OutUnit LongName +EmisCH4_Total CH4 -1 -1 -1 2 kg/m2/s CH4_emissions_from_all_sectors +EmisCH4_Oil CH4 0 1 -1 2 kg/m2/s CH4_emissions_from_oil +EmisCH4_Gas CH4 0 2 -1 2 kg/m2/s CH4_emissions_from_gas +EmisCH4_Coal CH4 0 3 -1 2 kg/m2/s CH4_emissions_from_coal +EmisCH4_Livestock CH4 0 4 -1 2 kg/m2/s CH4_emissions_from_livestock +EmisCH4_Landfills CH4 0 5 -1 2 kg/m2/s CH4_emissions_from_landfills +EmisCH4_Wastewater CH4 0 6 -1 2 kg/m2/s CH4_emissions_from_wastewater +EmisCH4_Rice CH4 0 7 -1 2 kg/m2/s CH4_emissions_from_rice +EmisCH4_OtherAnth CH4 0 8 -1 2 kg/m2/s CH4_emissions_from_other_anthropogenic_sources +EmisCH4_BiomassBurn CH4 0 9 -1 2 kg/m2/s CH4_emissions_from_biomass_burning +EmisCH4_Wetlands CH4 0 10 -1 2 kg/m2/s CH4_emissions_from_wetlands +EmisCH4_Seeps CH4 0 11 -1 2 kg/m2/s CH4_emissions_from_geological_seeps +EmisCH4_Lakes CH4 0 12 -1 2 kg/m2/s CH4_emissions_from_lakes +EmisCH4_Termites CH4 0 13 -1 2 kg/m2/s CH4_emissions_from_termites +EmisCH4_SoilAbsorb CH4 0 14 -1 2 kg/m2/s CH4_emissions_from_soil_absorption + +############################################################################### +##### Anthropogenic emissions diagnostics by inventory ##### +##### (not needed for other sectors with only one inventory) ##### +############################################################################### +#InvGEPA_CH4_TOTAL CH4 0 -1 50 2 kg/m2/s CH4_total_emissions_from_GEPA_inventory +#InvGEPA_CH4_OIL CH4 0 1 50 2 kg/m2/s CH4_oil_emissions_from_GEPA_inventory +#InvGEPA_CH4_GAS CH4 0 2 50 2 kg/m2/s CH4_gas_emissions_from_GEPA_inventory +#InvGEPA_CH4_COAL CH4 0 3 50 2 kg/m2/s CH4_coal_emissions_from_GEPA_inventory +#InvGEPA_CH4_LIVESTOCK CH4 0 4 50 2 kg/m2/s CH4_livestock_emissions_from_GEPA_inventory +#InvGEPA_CH4_LANDFILLS CH4 0 5 50 2 kg/m2/s CH4_landfills_emissions_from_GEPA_inventory +#InvGEPA_CH4_WASTEWATER CH4 0 6 50 2 kg/m2/s CH4_wastewater_emissions_from_GEPA_inventory +#InvGEPA_CH4_RICE CH4 0 7 50 2 kg/m2/s CH4_rice_emissions_from_GEPA_inventory +#InvGEPA_CH4_OTHER_ANTH CH4 0 8 50 2 kg/m2/s CH4_other_anthro_emissions_from_GEPA_inventory +# +#InvScarpelliMexico_CH4_TOTAL CH4 0 -1 30 2 kg/m2/s CH4_total_emissions_from_ScarpelliMexico_inventory +#InvScarpelliMexico_CH4_OIL CH4 0 1 30 2 kg/m2/s CH4_oil_emissions_from_ScarpelliMexico_inventory +#InvScarpelliMexico_CH4_GAS CH4 0 2 30 2 kg/m2/s CH4_gas_emissions_from_ScarpelliMexico_inventory +#InvScarpelliMexico_CH4_COAL CH4 0 3 30 2 kg/m2/s CH4_coal_emissions_from_ScarpelliMexico_inventory +#InvScarpelliMexico_CH4_LIVESTOCK CH4 0 4 30 2 kg/m2/s CH4_livestock_emissions_from_ScarpelliMexico_inventory +#InvScarpelliMexico_CH4_LANDFILLS CH4 0 5 30 2 kg/m2/s CH4_landfills_emissions_from_ScarpelliMexico_inventory +#InvScarpelliMexico_CH4_WASTEWATER CH4 0 6 30 2 kg/m2/s CH4_wastewater_emissions_from_ScarpelliMexico_inventory +#InvScarpelliMexico_CH4_RICE CH4 0 7 30 2 kg/m2/s CH4_rice_emissions_from_ScarpelliMexico_inventory +#InvScarpelliMexico_CH4_OTHER_ANTH CH4 0 8 30 2 kg/m2/s CH4_other_anthro_emissions_from_ScarpelliMexico_inventory +# +#InvScarpelliCanada_CH4_TOTAL CH4 0 -1 100 2 kg/m2/s CH4_total_emissions_from_ScarpelliCanada_inventory +#InvScarpelliCanada_CH4_OIL CH4 0 1 100 2 kg/m2/s CH4_oil_emissions_from_ScarpelliCanada_inventory +#InvScarpelliCanada_CH4_GAS CH4 0 2 100 2 kg/m2/s CH4_gas_emissions_from_ScarpelliCanada_inventory +#InvScarpelliCanada_CH4_COAL CH4 0 3 100 2 kg/m2/s CH4_coal_emissions_from_ScarpelliCanada_inventory +#InvScarpelliCanada_CH4_LIVESTOCK CH4 0 4 100 2 kg/m2/s CH4_livestock_emissions_from_ScarpelliCanada_inventory +#InvScarpelliCanada_CH4_LANDFILLS CH4 0 5 100 2 kg/m2/s CH4_landfills_emissions_from_ScarpelliCanada_inventory +#InvScarpelliCanada_CH4_WASTEWATER CH4 0 6 100 2 kg/m2/s CH4_wastewater_emissions_from_ScarpelliCanada_inventory +#InvScarpelliCanada_CH4_RICE CH4 0 7 100 2 kg/m2/s CH4_rice_emissions_from_ScarpelliCanada_inventory +#InvScarpelliCanada_CH4_OTHER_ANTH CH4 0 8 100 2 kg/m2/s CH4_other_anthro_emissions_from_ScarpelliCanada_inventory +# +#InvGFEI_CH4_TOTAL CH4 0 -1 5 2 kg/m2/s CH4_total_emissions_from_GFEI_inventory +#InvGFEI_CH4_OIL CH4 0 1 5 2 kg/m2/s CH4_oil_emissions_from_GFEI_inventory +#InvGFEI_CH4_GAS CH4 0 2 5 2 kg/m2/s CH4_gas_emissions_from_GFEI_inventory +#InvGFEI_CH4_COAL CH4 0 3 5 2 kg/m2/s CH4_coal_emissions_from_GFEI_inventory +# +#InvEDGAR_CH4_TOTAL CH4 0 -1 1 2 kg/m2/s CH4_total_emissions_from_EDGAR_inventory +#InvEDGAR_CH4_OIL CH4 0 1 1 2 kg/m2/s CH4_oil_emissions_from_EDGAR_inventory +#InvEDGAR_CH4_GAS CH4 0 2 1 2 kg/m2/s CH4_gas_emissions_from_EDGAR_inventory +#InvEDGAR_CH4_COAL CH4 0 3 1 2 kg/m2/s CH4_coal_emissions_from_EDGAR_inventory +#InvEDGAR_CH4_LIVESTOCK CH4 0 4 1 2 kg/m2/s CH4_livestock_emissions_from_EDGAR_inventory +#InvEDGAR_CH4_LANDFILLS CH4 0 5 1 2 kg/m2/s CH4_landfills_emissions_from_EDGAR_inventory +#InvEDGAR_CH4_WASTEWATER CH4 0 6 1 2 kg/m2/s CH4_wastewater_emissions_from_EDGAR_inventory +#InvEDGAR_CH4_RICE CH4 0 7 1 2 kg/m2/s CH4_rice_emissions_from_EDGAR_inventory +#InvEDGAR_CH4_OTHER_ANTH CH4 0 8 1 2 kg/m2/s CH4_other_anthro_emissions_from_EDGAR_inventory +#EOC diff --git a/run/WRF/ch4/HISTORY.rc b/run/WRF/ch4/HISTORY.rc new file mode 100644 index 000000000..de460927b --- /dev/null +++ b/run/WRF/ch4/HISTORY.rc @@ -0,0 +1,156 @@ +############################################################################### +### HISTORY.rc file for GEOS-Chem CH4 specialty simulations ### +### Contact: GEOS-Chem Support Team (geos-chem-support@g.harvard.edu) ### +############################################################################### + +#============================================================================ +# EXPID allows you to specify the beginning of the file path corresponding +# to each diagnostic collection. For example: +# +# EXPID: ./GEOSChem +# Will create netCDF files whose names begin "GEOSChem", +# in this run directory. +# +# EXPID: ./OutputDir/GEOSChem +# Will create netCDF files whose names begin with "GEOSChem" +# in the OutputDir sub-folder of this run directory. +# +#============================================================================ +EXPID: ./WRFGC + +#============================================================================== +# %%%%% COLLECTION NAME DECLARATIONS %%%%% +# +# To enable a collection, remove the "#" character in front of its name. The +# Restart collection should always be turned on. +# +# NOTE: These are the "default" collections for GEOS-Chem, but you can create +# your own customized diagnostic collections as well. +#============================================================================== +COLLECTIONS: 'CH4', + 'Metrics', + 'SpeciesConc', + 'Budget', + #'CloudConvFlux', + #'ConcAfterChem', +:: +############################################################################### +### The rest of this file consists of collection definitions. ### +### Above collections whose declarations are commented out will be ignored. ### +### Make sure that each collection definition, as well as the list of ### +### collections above, ends with a double-colon ("::"). ### +############################################################################### + +#============================================================================== +# %%%%% THE Metrics COLLECTION %%%%% +# +# Diagnostics for chemistry metrics such as global mean OH concentration, +# MCF lifetime, and CH4 lifetime. +# +# This diagnostic collection should always be left on. +# Use the run-directory script ./metrics_ch4.py to print results. +# +# Available for full-chemistry and CH4 simulations only. +#============================================================================== + Metrics.template: '%y4%m2%d2_%h2%n2z.nc4', + Metrics.frequency: 'End', + Metrics.duration: 'End', + Metrics.mode: 'time-averaged' + Metrics.fields: 'AirMassColumnFull ', + 'CH4emission ', + 'CH4massColumnFull ', + 'CH4massColumnTrop ', + 'LossOHbyCH4columnTrop ', + 'LossOHbyMCFcolumnTrop ', + 'OHwgtByAirMassColumnFull ', +:: +#============================================================================== +# %%%%% THE SpeciesConc COLLECTION %%%%% +# +# GEOS-Chem species concentrations (default = advected species) +# +# Available for all simulations +#============================================================================== + SpeciesConc.template: '%y4%m2%d2_%h2%n2z.nc4', + SpeciesConc.frequency: 00000000 010000, + SpeciesConc.duration: 00000000 120000, + SpeciesConc.mode: 'time-averaged' + SpeciesConc.fields: 'SpeciesConc_?ADV? ', +:: +#============================================================================== +# %%%%% THE Budget COLLECTION %%%%% +# +# GEOS-Chem budget diagnostics defined as species kg/s in the column +# (full, troposphere, or PBL) due to a single component (e.g. chemistry) +# (default = advected species) +# +# Available for all simulations +#============================================================================== + Budget.template: '%y4%m2%d2_%h2%n2z.nc4', + Budget.frequency: 00000000 010000, + Budget.duration: 00000000 120000, + Budget.mode: 'time-averaged' + Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', + 'BudgetEmisDryDepTrop_?ADV? ', + 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', + 'BudgetChemistryFull_?ADV? ', + 'BudgetChemistryTrop_?ADV? ', + 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', + 'BudgetTransportFull_?ADV? ', + 'BudgetTransportTrop_?ADV? ', + 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', + 'BudgetMixingFull_?ADV? ', + 'BudgetMixingTrop_?ADV? ', + 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', + 'BudgetConvectionFull_?ADV? ', + 'BudgetConvectionTrop_?ADV? ', + 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', +:: +#============================================================================== +# %%%%% THE CH4 COLLECTION %%%%% +# +# Cloud convective flux (default = advected species) +# +# Available for all simulations +#============================================================================== + CH4.template: '%y4%m2%d2_%h2%n2z.nc4', + CH4.frequency: 00000000 010000, + CH4.duration: 00000000 120000, + CH4.mode: 'time-averaged' + CH4.fields: 'OHconcAfterChem ', + 'LossCH4byClinTrop ', + 'LossCH4byOHinTrop ', + 'LossCH4inStrat ', +:: +#============================================================================== +# %%%%% THE CloudConvFlux COLLECTION %%%%% +# +# Cloud convective flux (default = advected species) +# +# Available for all simulations +#============================================================================== + CloudConvFlux.template: '%y4%m2%d2_%h2%n2z.nc4', + CloudConvFlux.frequency: 00000000 010000, + CloudConvFlux.duration: 00000000 120000, + CloudConvFlux.mode: 'time-averaged' + CloudConvFlux.fields: 'CloudConvFlux_?ADV? ', +:: +#============================================================================== +# %%%%% THE ConcAfterChem COLLECTION %%%%% +# +# Concentrations of OH, HO2, O1D, O3P immediately after exiting the KPP solver +# or OH after the CH4 specialty-simulation chemistry routine. +# +# OH: Available for all full-chemistry simulations and CH4 specialty sim +#============================================================================== + ConcAfterChem.template: '%y4%m2%d2_%h2%n2z.nc4', + ConcAfterChem.frequency: 00000000 010000, + ConcAfterChem.duration: 00000000 120000, + ConcAfterChem.mode: 'time-averaged' + ConcAfterChem.fields: 'OHconcAfterChem ', +:: \ No newline at end of file diff --git a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagCH4 b/run/WRF/ch4/geoschem_config.yml similarity index 54% rename from run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagCH4 rename to run/WRF/ch4/geoschem_config.yml index ddeebbdd5..ffa0bea51 100644 --- a/run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.tagCH4 +++ b/run/WRF/ch4/geoschem_config.yml @@ -1,6 +1,6 @@ --- ### geoschem_config.yml: GEOS-Chem Runtime configuration options. -### Customized for simulations using the tagged CH4 mechanism. +### Customized for simulations using the CH4 mechanism. ### ### NOTE: Add quotes around nitrogen oxide ('NO'), because YAML ### parsers will confuse this with a negative "no" value. @@ -9,38 +9,15 @@ # Simulation settings #============================================================================ simulation: - name: ${RUNDIR_SIM_NAME} - start_date: [${RUNDIR_SIM_START_DATE}, ${RUNDIR_SIM_START_TIME}] - end_date: [${RUNDIR_SIM_END_DATE}, ${RUNDIR_SIM_END_TIME}] - root_data_dir: ${RUNDIR_DATA_ROOT} - met_field: ${RUNDIR_MET} + name: ch4 + start_date: [19970215, 031100] + end_date: [20180415, 040000] + root_data_dir: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData + chem_inputs_dir: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData/CHEM_INPUTS/ + met_field: GEOSFP species_database_file: ./species_database.yml - species_metadata_output_file: OutputDir/geoschem_species_metadata.yml debug_printout: false - use_gcclassic_timers: ${RUNDIR_USE_GCCLASSIC_TIMERS} - -#============================================================================ -# Grid settings -#============================================================================ -grid: - resolution: ${RUNDIR_GRID_RES_LONG} - number_of_levels: ${RUNDIR_GRID_NLEV} - longitude: - range: ${RUNDIR_GRID_LON_RANGE} - center_at_180: ${RUNDIR_CENTER_LON_180} - latitude: - range: ${RUNDIR_GRID_LAT_RANGE} - half_size_polar_boxes: ${RUNDIR_GRID_HALF_POLAR} - nested_grid_simulation: - activate: ${RUNDIR_GRID_NESTED_SIM} - buffer_zone_NSEW: ${RUNDIR_GRID_BUFFER_ZONE} - -#============================================================================ -# Timesteps settings -#============================================================================ -timesteps: - transport_timestep_in_s: ${RUNDIR_TRANSPORT_TS} - chemistry_timestep_in_s: ${RUNDIR_CHEMISTRY_TS} + use_gcclassic_timers: false #============================================================================ # Settings for GEOS-Chem operations @@ -55,7 +32,7 @@ operations: pbl_mixing: activate: true - use_non_local_pbl: ${RUNDIR_USE_NLPBL} + use_non_local_pbl: true transport: gcclassic_tpcore: # GEOS-Chem Classic only @@ -64,25 +41,11 @@ operations: iord_jord_kord: [3, 3, 7] # GEOS-Chem Classic only transported_species: - CH4 - - CH4_OIL - - CH4_GAS - - CH4_COL - - CH4_LIV - - CH4_LDF - - CH4_WST - - CH4_RIC - - CH4_OTA - - CH4_BBN - - CH4_WTL - - CH4_SEE - - CH4_LAK - - CH4_TER - - CH4_SAB #============================================================================ -# Settings specific to the CH4 simulation / Integrated Methane Inversion +# Options for CH4 #============================================================================ -ch4_simulation_options: +CH4_simulation_options: use_observational_operators: AIRS: false @@ -95,9 +58,10 @@ ch4_simulation_options: state_vector_element_number: 0 use_emission_scale_factor: false use_OH_scale_factors: false - + #============================================================================ # Settings for diagnostics (other than HISTORY and HEMCO) +# These options are currently unsupported for WRF-GC! #============================================================================ extra_diagnostics: @@ -112,4 +76,4 @@ extra_diagnostics: planeflight: activate: false flight_track_file: Planeflight.dat.YYYYMMDD - output_file: plane.log.YYYYMMDD \ No newline at end of file + output_file: plane.log.YYYYMMDD diff --git a/run/WRF/co2/HEMCO_Config.rc b/run/WRF/co2/HEMCO_Config.rc new file mode 100644 index 000000000..ab7fd6c0d --- /dev/null +++ b/run/WRF/co2/HEMCO_Config.rc @@ -0,0 +1,723 @@ +#------------------------------------------------------------------------------ +# Harmonized Emissions Component (HEMCO) ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: HEMCO_Config.rc +# +# !DESCRIPTION: Contains configuration information for HEMCO. Define the +# emissions inventories and corresponding file paths here. Entire +# configuration files can be inserted into this configuration file with +# an '>>>include' statement, e.g. '>>>include HEMCO\_Config\_test.rc' +# The settings of include-files will be ignored. +#\\ +#\\ +# !REMARKS: +# This file has been customized for the CO2 simulation. +# See The HEMCO User's Guide for file details: +# http://wiki.geos-chem.org/The_HEMCO_User%27s_Guide +# +# !REVISION HISTORY: +# See https://github.com/geoschem/geos-chem for complete history +#EOP +#------------------------------------------------------------------------------ +#BOC +############################################################################### +### BEGIN SECTION SETTINGS +############################################################################### + +ROOT: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData/HEMCO +METDIR: not_used +GCAPSCENARIO: not_used +GCAPVERTRES: 47 +Logfile: * +DiagnFile: HEMCO_Diagn.rc +DiagnPrefix: ./HEMCO_diagnostics +DiagnFreq: Monthly +Wildcard: * +Separator: / +Unit tolerance: 1 +Negative values: 2 +Only unitless scale factors: false +Verbose: 0 +Warnings: 1 + +### END SECTION SETTINGS ### + +############################################################################### +### BEGIN SECTION EXTENSION SWITCHES +############################################################################### +# ExtNr ExtName on/off Species Years avail. +0 Base : on * +# ----- MAIN SWITCHES --------------------------------------------------------- + --> EMISSIONS : true + --> CHEMISTRY_INPUT : true +# ----- GLOBAL INVENTORIES ---------------------------------------------------- + --> FOSSIL_ODIAC : true # 2000-2018 + --> FOSSIL_CDIAC : false # 1980-2014 + --> OCEAN_EXCH_TAKA09 : false # 2000 + --> OCEAN_EXCH_SCALED : true # 2000-2013 + --> BBIO_DIURNAL : false # 1985 + --> BBIO_SIB3 : true # 2006-2010 + --> NET_TERR_EXCH : true # 2000 + --> CO2CORR : true # 2000-2018 +# ----- AIRCRAFT EMISSIONS ---------------------------------------------------- +# There are 3 switches: +# +# 1. AEIC2019_DAILY selects daily AEIC 2019 emissions. For most simulations, +# this is not recommended due to the amount of computational overhead +# that will be incurred in regridding. But this may be useful for +# research purposes. Recommended setting: "AEIC2019_DAILY: false". +# +# 2. AEIC2019_MONMEAN selects monthly-mean AEIC 2019 emisisons, which will +# incur much less computational overhaead. This options should suffice +# for most simulations. Recommended setting "AEIC2019_MONMEAN: true". +# +# 3. AEIC_SCALE_1990_2019: If "false", the AEIC 2019 data from the year +# 2019 alone will be used. This will yield a "best estimate" of +# aviation emisssion. This could be important because simply scaling +# aviation emissions up and down is rather nonphysical. But if +# AEIC_SCALE_1990_2019 is set to true, then aviation emissions for +# 1990 to 2019 are estimated by: +# +# a. Scaling ALL aviation emissions based on the growth in fuelburn +# from 1990 to 2019* estimated by Lee et al. (2021); and +# +# b. Scaling aviation NOx emissions by an additional factor to reflect +# the changes in the NOx emissions index over the same period as +# reported by Lee et al. (2021). +# +# Recommended setting: "AEIC_SCALE_1990_2019: true" +# +# See additional notes in the AEIC scale factor section below. +#------------------------------------------------------------------------------ + --> AEIC2019_DAILY : false # 2019 (daily data) + --> AEIC2019_MONMEAN : true # 2019 (monthly-mean data) + --> AEIC_SCALE_1990_2019 : true # Scale to year in 1990-2019 +# ----- SHIP EMISSIONS -------------------------------------------------------- + --> SHIP : true + --> CEDS_SHIP : true # 1750-2014 + --> ICOADS_SHIP : false # 2004 +# ----- NON-EMISSIONS DATA ---------------------------------------------------- + --> CO2_COPROD : true # 2004-2009 + --> OLSON_LANDMAP : true # 1985 + --> YUAN_MODIS_LAI : true # 2000-2020 +# ----------------------------------------------------------------------------- +111 GFED : on CO2/CO2bb + --> GFED4 : true + --> GFED_daily : true + --> GFED_3hourly : false + --> Scaling_CO : 1.05 + --> Scaling_NAP : 2.75e-4 + --> hydrophilic BC : 0.2 + --> hydrophilic OC : 0.5 + --> fraction POG1 : 0.49 +114 FINN : off CO2/CO2bb + --> FINN_daily : true + --> Scaling_CO : 1.0 + --> hydrophilic BC : 0.2 + --> hydrophilic OC : 0.5 + +### END SECTION EXTENSION SWITCHES ### + +############################################################################### +### BEGIN SECTION BASE EMISSIONS +############################################################################### + +# ExtNr Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Species ScalIDs Cat Hier + +(((EMISSIONS + +#============================================================================== +# --- FOSSIL FUEL EMISSIONS --- +# +# National CO2 fossil fuel emissions exclude international shipping and aviation +# Carbon Dioxide Information Analysis Center (CDIAC) 1x1 national emissions +# (Andres et al., 2011) +# Open-source Data Inventory of Anthropogenic CO2 (ODIAC) 1x1 national emissions +# (Oda & Maksyutov, 2011) +# +# ---> Recommended option: ODIAC (set FOSSIL_ODIAC = true) +# ODIAC updated to v2019 by J. Fisher and Y. Cao, 12/2019 +#============================================================================== +(((FOSSIL_CDIAC +0 FOSSILCO2_CDIAC $ROOT/CO2/v2014-09/FOSSIL/CDIAC_v2014.monthly.generic.1x1.nc CO2 1980-2014/1-12/1/0 C xy kg/m2/s CO2 40/41/80 1 1 +0 FOSSILCO2FF_CDIAC - - - - - - CO2ff 40/41/80 1 1 +)))FOSSIL_CDIAC + +(((FOSSIL_ODIAC +0 FOSSILCO2_ODIAC $ROOT/CO2/v2022-11/FOSSIL/ODIAC_CO2.monthly.generic.1x1.nc CO2 2000-2018/1-12/1/0 C xy kg/m2/s CO2 40/41/80 1 2 +0 FOSSILCO2FF_ODIAC - - - - - - CO2ff 40/41/80 1 2 +)))FOSSIL_ODIAC + +#============================================================================== +# --- OCEAN EXCHANGE EMISSIONS --- +# +# Ocean uptake/emission from Takahashi et al. (2009) and earlier works. +# Climatological exchange for 2000 (-1.4 PgC/yr) or scaled ocean exchange, which +# accounts for changing atmospheric CO2 (as in the paper) are now available. +# +# ---> Recommended option: scaled ocean exchange (set OCEAN_EXCH_SCALED = true) +#============================================================================== +(((OCEAN_EXCH_TAKA09 +0 OCEANCO2_TAKA_ANNUAL $ROOT/CO2/v2022-11/OCEAN/Taka2009_CO2_Annual.nc CO2 2000/1/1/0 C xy kg/m2/s CO2 - 2 1 +0 OCEANCO2OC_TAKA_ANNUAL - - - - - - CO2oc - 2 1 +0 OCEANCO2_TAKA_MONTHLY $ROOT/CO2/v2022-11/OCEAN/Taka2009_CO2_Monthly.nc CO2 2000/1-12/1/0 C xy kg/m2/s CO2 - 2 2 +0 OCEANCO2OC_TAKA_MONTHLY - - - - - - CO2oc - 2 2 +)))OCEAN_EXCH_TAKA09 + +(((OCEAN_EXCH_SCALED +0 OCEANCO2_SCALED_MONTHLY $ROOT/CO2/v2022-11/OCEAN/Scaled_Ocean_CO2_monthly.nc CO2 2000-2013/1-12/1/0 C xy kg/m2/s CO2 - 2 3 +0 OCEANCO2OC_SCALED_MONTHLY - - - - - - CO2oc - 2 3 +)))OCEAN_EXCH_SCALED + +#============================================================================== +# --- BALANCED BIOSPHERE EXCHANGE --- +# +# These emissions have a seasonal cycle of uptake/emission but have a net +# annual uptake of close to zero (balanced). +# CASA model daily emissions for a single year at coarse resolution have a +# diurnal cycle imposed (Olsen & Randerson, 2004) +# SiB3 emissions are from Nick Parazoo (Messerschmidt et al., 2011) for +# 2006-2010. +# +# ---> Recommended option: SiB3 (set BBIO_SIB3 = true) +#============================================================================== +(((BBIO_DIURNAL +0 BBIOCO2_DIURNAL $ROOT/CO2/v2014-09/BBIO/BBIO_diurnal_CO2.nc CO2 1985/1-12/1-31/0-23 C xy kg/m2/s CO2 - 3 1 +0 BBIOCO2BAL_DIURNAL - - - - - - CO2bal - 3 1 +)))BBIO_DIURNAL + +(((BBIO_SIB3 +0 SIB_BBIO_CO2 $ROOT/CO2/v2022-11/BIO/SiB3_3hr_NEP.nc CO2 2006-2010/1-12/1-31/0-23 C xy kg/m2/s CO2 - 3 1 +0 SIB_BBIO_CO2BAL - - - - - - CO2bal - 3 1 +)))BBIO_SIB3 + +#============================================================================== +# --- NET TERRESTRIAL EXCHANGE --- +# +# TransCom annual net/residual terrestrial biosperhic CO2 (Baker et al., 2006) +# +# ---> Recommended for use in forward modelling, optional for +# inversion/assimilation +#============================================================================== +(((NET_TERR_EXCH +0 CO2_NET_TERRESTRIAL $ROOT/CO2/v2022-11/BIO/Net_terrestrial_exch_5.29Pg.generic.1x1.nc CO2 2000/1/1/0 C xy kg/m2/s CO2nte - 5 1 +0 CO2NTE_NET_TERRESTRIAL - - - - - - CO2 - 5 1 +)))NET_TERR_EXCH + +#============================================================================== +# --- SHIP EMISSIONS --- +#============================================================================== +(((SHIP + +(((ICOADS_SHIP +# The spatial distribution is scaled with global annual scale factors #50 +0 ICOADS_CO2_SHIP $ROOT/ICOADS_SHIP/v2014-07/ICOADS_ship_CO2_2004.generic.1x1.nc CO2 2004/1-12/1/0 C xy kg/m2/s CO2 50 6 1 +0 ICOADS_CO2SE_SHIP - - - - - - CO2se 50 6 1 +)))ICOADS_SHIP + +(((CEDS_SHIP +0 CEDS_CO2_SHP $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_shp 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 6 1 +0 CEDS_CO2SE_SHIP - - - - - - CO2se - 6 1 +)))CEDS_SHIP + +)))SHIP + +#============================================================================== +# --- AEIC 2019 aircraft emissions --- +# +# Data files are for 2019, but scale factors from 1990-2019 can be applied +# in order to get year-specific emissions. See the notes in the AEIC2019 +# scale factor section below for more information. +#============================================================================== +(((AEIC2019_DAILY +0 AEIC19_DAILY_CO2 $ROOT/AEIC2019/v2022-03/2019/AEIC_2019$MM$DD.0.5x0.625.36L.nc FUELBURN 2019/1-12/1-31/0 C xyz kg/m2/s CO2 241/60 20 1 +0 AEIC19_DAILY_CO2AV - - - - - - CO2av 241/60 20 1 +)))AEIC2019_DAILY +(((AEIC2019_MONMEAN +0 AEIC19_MONMEAN_CO2 $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc FUELBURN 2019/1-12/1/0 C xyz kg/m2/s CO2 241/60 20 1 +0 AEIC19_MONMEAN_CO2AV - - - - - - CO2av 241/60 20 1 +)))AEIC2019_MONMEAN + +#============================================================================== +# --- CO2 SURFACE CORRECTION FOR CO OXIDATION --- +# +# These emissions will be subtracted! +# Fossil fuel CO and CH4 are based on the national distribution scaled with #10. +# Biogenic CH4 data is converted to CO2 using scale factor #20. +# Isoprene and monoterpene are converted from kgC to kgCO2 by scale factor #21. +# Approach is described in Nassar et al. (2010) +# +# ---> Recommended for use if chemical production (above) is turned on +# +# Now multiply by scale factor of -1.0 (#90 in scale factor section below) +# to make these emissions negative, so that they will be subtracted. +=============================================================================== +(((CO2CORR +0 FOSSILCO2_MONTHLY $ROOT/CO2/v2022-11/FOSSIL/ODIAC_CO2.monthly.generic.1x1.nc CO2 2000-2018/1-12/1/0 C xy kg/m2/s CO2 10/40/41/80/90 8 1 +0 FOSSILCO2CORR_MONTHLY - - - - - - CO2corr 10/40/41/80/90 8 1 +0 CO2_LIVESTOCK $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_004 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2CORR_LIVESTOCK - - - - - - CO2corr 20/90 8 1 +0 CO2_WASTE $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_005 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2CORR_WASTE - - - - - - CO2corr 20/90 8 1 +0 CO2_RICE $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_007 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2CORR_RICE - - - - - - CO2corr 20/90 8 1 +0 CO2_WETLANDS $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_010 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2CORR_WETLANDS - - - - - - CO2corr 20/90 8 1 +0 CO2_NATURAL $ROOT/CO2/v2022-11/CHEM/CH4_source.geos.2x25.nc CH4_012 2004/1-12/1/0 C xy kg/m2/s CO2 20/90 8 1 +0 CO2CORR_NATURAL - - - - - - CO2corr 20/90 8 1 +0 CO2_ISOPRENE $ROOT/CO2/v2022-11/CHEM/Isoprene-2004.geos.2x25.nc ISOP 2004/1-12/1/0 C xy kg/m2/s CO2 21/30/90 8 1 +0 CO2CORR_ISOPRENE - - - - - - CO2corr 21/30/90 8 1 +0 CO2_MONOTERP $ROOT/CO2/v2022-11/CHEM/Monoterpene-2004.geos.2x25.nc MONOT 2004/1-12/1/0 C xy kg/m2/s CO2 21/30/90 8 1 +0 CO2CORR_MONOTERP - - - - - - - 21/30/90 8 1 +)))CO2CORR + +############################################################################### +### EXTENSION DATA (subsection of BASE EMISSIONS SECTION) +### +### These fields are needed by the extensions listed above. The assigned ExtNr +### must match the ExtNr entry in section 'Extension switches'. These fields +### are only read if the extension is enabled. The fields are imported by the +### extensions by field name. The name given here must match the name used +### in the extension's source code. +############################################################################### + +#============================================================================== +# --- GFED biomass burning emissions (Extension 111) +# NOTE: These are the base emissions in kgDM/m2/s. +#============================================================================== +(((GFED4 +111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 + +(((GFED_daily +111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +)))GFED_daily + +(((GFED_3hourly +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +)))GFED_3hourly +)))GFED4 + +#============================================================================== +# --- FINN v1.5 biomass burning emissions (Extension 114) +#============================================================================== +(((.not.FINN_daily +114 FINN_VEGTYP1 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype1 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP2 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype2 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP3 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype3 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP4 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype4 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP5 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype5 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP9 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype9 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +))).not.FINN_daily + +(((FINN_daily +114 FINN_DAILY_VEGTYP1 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype1 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP2 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype2 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP3 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype3 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP4 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype4 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP5 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype5 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP9 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype9 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +)))FINN_daily + +)))EMISSIONS + +############################################################################### +### NON-EMISSIONS DATA (subsection of BASE EMISSIONS SECTION) +### +### Non-emissions data. The following fields are read through HEMCO but do +### not contain emissions data. The extension number is set to wildcard +### character denoting that these fields will not be considered for emission +### calculation. A given entry is only read if the assigned species name is +### an HEMCO species. +############################################################################### + +#============================================================================== +# --- Time zones (offset to UTC) --- +#============================================================================== +* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 + +#============================================================================== +# --- CHEMICAL PRODUCTION FROM CO OXIDATION --- +# +# ---> Recommended for use in forward modelling, optional for +# inversion/assimilation +#============================================================================== +(((CHEMISTRY_INPUT +(((CO2_COPROD +* CO2_COPROD $ROOT/CO2/v2019-02/CHEM/CO2_prod_rates.GEOS5.2x25.47L.nc LCO 2004-2009/1-12/1/0 C xyz kgC/m3/s * - 1 1 +)))CO2_COPROD +)))CHEMISTRY_INPUT + +#============================================================================== +# --- Olson land map masks --- +#============================================================================== +(((OLSON_LANDMAP +* LANDTYPE00 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE00 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE01 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE01 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE02 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE02 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE03 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE03 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE04 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE04 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE05 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE05 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE06 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE06 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE07 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE07 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE08 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE08 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE09 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE09 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE10 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE10 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE11 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE11 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE12 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE12 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE13 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE13 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE14 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE14 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE15 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE15 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE16 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE16 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE17 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE17 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE18 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE18 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE19 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE19 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE20 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE20 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE21 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE21 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE22 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE22 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE23 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE23 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE24 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE24 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE25 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE25 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE26 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE26 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE27 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE27 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE28 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE28 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE29 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE29 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE30 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE30 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE31 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE31 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE32 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE32 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE33 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE33 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE34 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE34 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE35 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE35 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE36 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE36 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE37 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE37 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE38 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE38 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE39 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE39 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE40 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE40 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE41 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE41 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE42 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE42 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE43 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE43 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE44 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE44 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE45 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE45 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE46 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE46 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE47 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE47 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE48 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE48 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE49 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE49 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE50 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE50 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE51 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE51 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE52 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE52 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE53 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE53 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE54 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE54 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE55 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE55 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE56 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE56 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE57 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE57 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE58 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE58 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE59 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE59 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE60 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE60 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE61 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE61 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE62 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE62 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE63 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE63 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE64 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE64 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE65 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE65 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE66 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE66 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE67 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE67 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE68 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE68 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE69 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE69 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE70 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE70 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE71 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE71 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE72 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE72 1985/1/1/0 C xy 1 * - 1 1 +)))OLSON_LANDMAP + +#============================================================================== +# --- Yuan processed MODIS leaf area index data --- +# +# Source: Yuan et al 2011, doi:10.1016/j.rse.2011.01.001 +# http://globalchange.bnu.edu.cn/research/lai +# +# NOTES: +# (1) LAI data corresponding to each Olson land type is stored in +# separate netCDF variables (XLAI00, XLAI01, ... XLAI72). +# The "XLAI" denotes that the files are prepared in this way. +# (2) Units are "cm2 leaf/cm2 grid box". +# (3) Data is timestamped every 8 days, starting from the 2nd of the month. +#============================================================================== +(((YUAN_MODIS_LAI +* XLAI00 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI00 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI01 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI01 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI02 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI02 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI03 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI03 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI04 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI04 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI05 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI05 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI06 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI06 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI07 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI07 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI08 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI08 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI09 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI09 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI10 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI10 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI11 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI11 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI12 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI12 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI13 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI13 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI14 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI14 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI15 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI15 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI16 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI16 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI17 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI17 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI18 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI18 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI19 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI19 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI20 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI20 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI21 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI21 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI22 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI22 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI23 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI23 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI24 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI24 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI25 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI25 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI26 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI26 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI27 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI27 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI28 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI28 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI29 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI29 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI30 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI30 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI31 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI31 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI32 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI32 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI33 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI33 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI34 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI34 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI35 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI35 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI36 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI36 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI37 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI37 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI38 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI38 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI39 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI39 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI40 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI40 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI41 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI41 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI42 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI42 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI43 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI43 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI44 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI44 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI45 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI45 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI46 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI46 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI47 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI47 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI48 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI48 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI49 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI49 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI50 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI50 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI51 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI51 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI52 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI52 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI53 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI53 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI54 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI54 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI55 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI55 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI56 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI56 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI57 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI57 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI58 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI58 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI59 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI59 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI60 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI60 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI61 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI61 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI62 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI62 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI63 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI63 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI64 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI64 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI65 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI65 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI66 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI66 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI67 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI67 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI68 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI68 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI69 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI69 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI70 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI70 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI71 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI71 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI72 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI72 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +)))YUAN_MODIS_LAI + +### END SECTION BASE EMISSIONS ### + +############################################################################### +### BEGIN SECTION SCALE FACTORS +############################################################################### + +# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper + +(((EMISSIONS + +#============================================================================== +# --- FOSSIL FUEL CO2 SURFACE CORRECTION FACTOR --- +# +# Fossil fuel CO2 emissions must be scaled down to avoid counting emissions +# already accounted for by CO and CH4 oxidation to CO2. +# +# The necssary annual reduction in emissions related to fossil fuels is +# determined as: global C mass from FF (CO+CH4) / global C mass from FF CO2 +# +# Note: GEOS-Chem v8-03-02 to v9-02, assumed: 0.0489 for all years but that +# value seems to correspond to mid-1980s fossil fuel combustion since CO +# emissions have held constant (Granier et al., 2011) while CO2 has risen. +# +#============================================================================== +(((CO2CORR +#10 CO2_FOSSFUEL_CORR 0.0489 - - - xy 1 1 + +## CO2 scale factors from CO oxidation by decade (comment out for now) +##10 CO2_FOSSFUEL_CORR 0.052815/0.054486/0.054902/0.055107/0.053166/0.051611/0.050065/0.048803/0.047060/0.046041 - 1980-1989/1/1/0 C xy 1 1 +##10 CO2_FOSSFUEL_CORR 0.045816/0.045153/0.045541/0.045556/0.044800/0.043875/0.042910/0.042206/0.042257/0.042468 - 1990-1999/1/1/0 C xy 1 1 +##10 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118 - 2000-2009/1/1/0 C xy 1 1 +##10 CO2_FOSSFUEL_CORR 0.030622/0.029674/0.029029/0.028355 - 2010-2013/1/1/0 C xy 1 1 + +# All scale factors for years 2000-2013 lumped into a single entry +10 CO2_FOSSFUEL_CORR 0.041495/0.040525/0.040125/0.037853/0.035957/0.034686/0.033538/0.032771/0.031961/0.032118/0.030622/0.029674/0.029029/0.028355 - 2000-2013/1/1/0 C xy 1 1 +)))CO2CORR + +#============================================================================== +# --- CO2 CONVERSION FACTORS --- +#============================================================================== +20 CH4TOCO2 2.75 - - - xy 1 1 +21 CTOCO2 3.6667 - - - xy 1 1 +30 NMHCSCALE 0.3333 - - - xy 1 1 + +#============================================================================== +# ---- TIMES diurnal and weekly scale factors for national fossil fuel CO2 --- +# +# These temporal scale factors are described in Nassar et al. (2013) +#============================================================================== +(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +40 CO2_DIURNAL $ROOT/CO2/v2015-04/FOSSIL/TIMES_diurnal_scale_factors.nc diurnal_scale_factors 2006/1/1/1-24 C xy 1 1 +41 CO2_WEEKLY $ROOT/CO2/v2015-04/FOSSIL/TIMES_weekly_scale_factors.nc weekly_scale_factors 2006/1/WD/0 C xy 1 1 +)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR + +#============================================================================== +# --- SHIP ANNUAL SCALE FACTOR --- +# +# Based on a linear fit of 1985-2002 values from Endresen et al. (2007). +#============================================================================== +(((ICOADS_SHIP +50 CO2_SHIP_SCALE 1.043/1.068/1.094/1.128/1.154/1.180/1.205/1.231/1.265/1.291/1.316/1.342/1.368/1.393/1.427/1.453/1.479/1.504/1.530/1.556/1.590/1.615/1.641/1.667/1.641 - 1985-2009/1/1/0 C xy 1 1 +)))ICOADS_SHIP + +#============================================================================== +# --- AEIC2019 aircraft emissions scale factors --- +# +# See http://geoschemdata.wustl.edu/ExtData/HEMCO/AEIC2019/v2022-03/AEIC_2019_technical_note.pdf +#============================================================================== +(((AEIC2019_DAILY.or.AEIC2019_MONMEAN +#------------------------------------------------------------------------------ +# Assume 3.159 kg CO2 from every kg of fuel burned +# cf Hileman, Stratton, & Donohoo, _J. Propul. Power_, 26(6), 1184–1196, 2010. +#------------------------------------------------------------------------------ +60 AEIC19_FBtoCO2 3.159 - - - xy unitless 1 + +#------------------------------------------------------------------------------ +# Scaling factors for 1990-2019 derived from Lee et al. (2021). Lee et al. +# (2021) only covers 1990 to 2018, so to get to 2019 it is assumed that the +# growth from 2017 to 2018 is the same as that from 2018 to 2019. +# So the formula is something like: +# +# Emissions of CO in 2009 = AEIC 2019 emissions of CO +# * (Lee 2017 CO / Lee 2018 fuel burn) +# * (Lee 2009 fuel burn / Lee 2018 fuel burn) +# +# So in this case, we use the Lee 2017/Lee 2018 value to scale AEIC’s +# emissions to the “2018” values, and then scale directly using the Lee et al +# fuel burn. This ensures that, when running with year 2019, you get an +# unadjusted version of the AEIC2019 inventory, and all previous years are +# scaled down. +# +# All scaling factors are included in here in HEMCO_Config.rc. +#------------------------------------------------------------------------------ +(((AEIC_SCALE_1990_2019 +241 AC_FBMULT 0.506/0.489/0.490/0.493/0.517/0.529/0.553/0.570/0.581/0.600/0.631/0.607/0.608/0.608/0.646/0.678/0.686/0.706/0.703/0.666/0.700/0.721/0.728/0.749/0.773/0.815/0.854/0.905/0.952/1.000 - 1990-2019/1/1/0 C xy 1 1 +)))AEIC_SCALE_1990_2019 + +# If not applying 1990-2019 scale factors, use 1.0 +(((.not.AEIC_SCALE_1990_2019 +241 AC_FBMULT 1.000000e+0 - - - xy 1 1 +))).not.AEIC_SCALE_1990_2019 +)))AEIC2019_DAILY.or.AEIC2019_MONMEAN + +#============================================================================== +# --- DOMESTIC AVIATION SURFACE CORRECTION FACTOR --- +# +# Regional scale factors slightly less than 1 remove surface contribution from +# domestic aviation in national fossil fuel emisisons, which should instead be +# counted in the air as a 3D field. This scale factor should be applied to the +# main/national fossil fuel emission field if using avaition emissions. +#============================================================================== +(((FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR +80 AVIATION_SURF_CORR $ROOT/CO2/v2015-04/FOSSIL/Aviation_SurfCorr_SclFac.1x1.nc CO2 2004/1/1/0 C xy 1 1 +)))FOSSIL_CDIAC.or.FOSSIL_ODIAC.or.CO2CORR + +#============================================================================== +# Scale factor to make emissions negative +#============================================================================== +(((CO2CORR +90 CO2_NEGATIVE -1.0 - 2000/1/1/0 C xy 1 1 +)))CO2CORR + +)))EMISSIONS + +### END SECTION SCALE FACTORS ### + +############################################################################### +### BEGIN SECTION MASKS +############################################################################### + +# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper Lon1/Lat1/Lon2/Lat2 + +### END SECTION MASKS ### + +############################################################################### +### REFERNCES +############################################################################### +# +# Andres. R.J., J.S Gregg, L. Losey, G. Marland, T.A. Boden (2011), Montly, +# global emissions of carbon dioxide from fossil fuel consumption, Tellus 63B, +# 309-327. +# +# Baker, D.F. et al. (2006) TransCom3 inversion intercomparison: Impact of +# transport model errors on the interannual variability of regional CO2 fluxes, +# 1998-2003, Global Biogeochem., Cy., 20, GB1002, doi:10.29/2004GB002439. +# +# Endresen, O. et al. (2007), A historical reconstuctino of ships fuel +# consuption and emissions, J. Geophys. Res., 112, D12301, +# doi:10.1029/2006JD007630. +# +# Granier, C. et al. (2011), Evolution of anthropogenic and biomass burning +# emissions of air pollutants at global and regional scales during the 1980-2010 +# period, Climatic Change, 109:163-190, doi:10.1007/s10584-011-0154-1. +# +# Keller, C.A., M.S. Long, R.M. Yantosca, A.M. DaSilva, S. Pawson, D.J. Jacob +# (2014), HEMCO v1.0: a versatile, ESMF-compliant component for calculating +# emissions in atmospheric models, Geosci., Model Dev., 7, 1409?1417, +# doi:10.5194/gmd-7-1409-2014. +# +# Messerschmidt, J., N. Parazoo, N.M. Deutscher, C. Roehl, T. Warneke, P.O. +# Wennberg, and D. Wunch (2012) Evaluation of atmosphere-biosphere exchange +# estimations with TCCON measurements, Atmos. Chem. Phys. Discussions, 12, +# 12759-12800, doi:10.5194/acpd-12-12759-2012. +# +# Nassar, R., D.B.A. Jones, P. Suntharalingam, J.M. Chen, R.J. Andres, K.J. +# Wecht, R.M. Yantosca, S.S. Kulawik, K.W. Bowman, J.R. Worden, T. Machida and +# H. Matsueda (2010), Modeling global atmospheric CO2 with improved emission +# inventories and CO2 production from the oxidation of other carbon species, +# Geoscientific Model Development, 3, 689-716. +# +# Nassar, R., L. Napier-Linton, K.R. Gurney, R.J. Andres, T. Oda, F.R. Vogel, +# F. Deng (2013), Improving the temporal and spatial distribution of CO2 +# emissions from global fossil fuel emission datasets, Journal of Geophysical +# Research: Atmospheres, 118, 917-933, doi:10.1029/2012JD018196. +# +# Oda, T. and S. Maksyutov (2011), A very high-resolution (1 km x 1 km) global +# fossil fuel CO2 emission inventory derived using a point source database and +# satellite observations of nighttime lights, Atmos. Chem. Phys., 11, 543?556, +# doi:10.5194/acp-11-543-2011. +# +# Olsen, S.C. and J.T. Randerson (2004), Differences between surface and column +# atmospheric CO2 and implications for carbon cycle research, J. Geophys. Res. +# 109, D02301, doi:10.1029/2003JD003968. +# +# Olsen, S.C., D.J. Weubbles, B. Owen (2013) Comparison of global 3-D aviation +# datasets, Atmos. Chem. Phys., 13, 429?441, doi:10.5194/acp-13-429-2013. +# +# Simone, N., M. Stettler, S. Eastham, S. Barrett, Aviation Emissions Inventory +# Code (AEIC ) User Manual (R1), Laboratory for Aviation and the Environment, +# Massachusetts Institute of Technology, January 2013, Report No: +# LAE-2013-001-N, +# www.LAE.MIT.edu. +# +# Takahashi, T., et al. (2009), Climatological mean and decadal change in +# surface ocean pCO2, and net sea-air CO2 flux over the global oceans, Deep-Sea +# Res. II, 56(8?10), 554?577, doi:10.1016/j.dsr2.2008.12.009. +# +### END OF HEMCO INPUT FILE ### +#EOC diff --git a/run/WRF/co2/HEMCO_Diagn.rc b/run/WRF/co2/HEMCO_Diagn.rc new file mode 100644 index 000000000..994441863 --- /dev/null +++ b/run/WRF/co2/HEMCO_Diagn.rc @@ -0,0 +1,37 @@ +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: HEMCO_Diagn.rc +# +# !DESCRIPTION: Configuration file for netCDF diagnostic output from HEMCO. +#\\ +#\\ +# !REMARKS: +# Customized for the CO2 simulation. +# +# !REVISION HISTORY: +# 18 Oct 2018 - R. Yantosca - Initial version +#EOP +#------------------------------------------------------------------------------ +#BOC +# Name Spec ExtNr Cat Hier Dim OutUnit LongName + +EmisCO2_Total CO2 0 -1 -1 3 kg/m2/s CO2_total_emissions +EmisCO2_FossilFuel CO2 0 1 -1 2 kg/m2/s CO2_anthropogenic_emissions +EmisCO2_Ocean CO2 0 2 -1 2 kg/m2/s CO2_ocean_emissions +EmisCO2_BalBiosph CO2 0 3 -1 2 kg/m2/s CO2_balanced_biosphere +EmisCO2_NetTerrExch CO2 0 5 -1 2 kg/m2/s CO2_net_terrestrial_exchange +EmisCO2_Ship CO2 0 6 -1 2 kg/m2/s CO2_ship_emissions +EmisCO2_Aviation CO2 0 7 -1 3 kg/m2/s CO2_aviation_emissions +EmisCO2_CO2SurfCorr CO2 0 8 -1 2 kg/m2/s CO2_surface_correction_for_CO_oxidation + +#NOTE: Biomass burning doesn't seem to work. Keep here for now. +# Uncomment this if GFED is used +#EmisCO2_Biomass_GFED CO2 111 1 1 2 kg/m2/s CO2_biomass_burning_emissions_from_GFED4 + +# Uncomment this if FINN is used +#EmisCO2_Biomass_FINN CO2 114 1 1 2 kg/m2/s CO2_biomass_burning_emissions_from_FINN + + diff --git a/run/WRF/co2/HISTORY.rc b/run/WRF/co2/HISTORY.rc new file mode 100644 index 000000000..9d2f30834 --- /dev/null +++ b/run/WRF/co2/HISTORY.rc @@ -0,0 +1,137 @@ +############################################################################### +### HISTORY.rc file for GEOS-Chem CO2 specialty simulations ### +### Contact: GEOS-Chem Support Team (geos-chem-support@g.harvard.edu) ### +############################################################################### + +#============================================================================ +# EXPID allows you to specify the beginning of the file path corresponding +# to each diagnostic collection. For example: +# +# EXPID: ./GEOSChem +# Will create netCDF files whose names begin "GEOSChem", +# in this run directory. +# +# EXPID: ./OutputDir/GEOSChem +# Will create netCDF files whose names begin with "GEOSChem" +# in the OutputDir sub-folder of this run directory. +# +#============================================================================ +EXPID: ./WRFGC + +#============================================================================== +# %%%%% COLLECTION NAME DECLARATIONS %%%%% +# +# To enable a collection, remove the "#" character in front of its name. The +# Restart collection should always be turned on. +# +# NOTE: These are the "default" collections for GEOS-Chem, but you can create +# your own customized diagnostic collections as well. +#============================================================================== +COLLECTIONS: 'CO2', + 'SpeciesConc', + #'Budget', + #'CloudConvFlux', + #'LevelEdgeDiags', + #'StateMet', + #'BoundaryConditions', +:: +############################################################################### +### The rest of this file consists of collection definitions. ### +### Above collections whose declarations are commented out will be ignored. ### +### Make sure that each collection definition, as well as the list of ### +### collections above, ends with a double-colon ("::"). ### +############################################################################### + +#============================================================================== +# %%%%% THE SpeciesConc COLLECTION %%%%% +# +# GEOS-Chem species concentrations (default = advected species) +# +# Available for all simulations +#============================================================================== + SpeciesConc.template: '%y4%m2%d2_%h2%n2z.nc4', + SpeciesConc.frequency: 00000000 010000, + SpeciesConc.duration: 00000000 120000, + SpeciesConc.mode: 'time-averaged' + SpeciesConc.fields: 'SpeciesConc_?ADV? ', +:: +#============================================================================== +# %%%%% THE Budget COLLECTION %%%%% +# +# GEOS-Chem budget diagnostics defined as species kg/s in the column +# (full, troposphere, or PBL) due to a single component (e.g. chemistry) +# (default = advected species) +# +# Available for all simulations +#============================================================================== + Budget.template: '%y4%m2%d2_%h2%n2z.nc4', + Budget.frequency: 00000000 010000, + Budget.duration: 00000000 120000, + Budget.mode: 'time-averaged' + Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', + 'BudgetEmisDryDepTrop_?ADV? ', + 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', + 'BudgetChemistryFull_?ADV? ', + 'BudgetChemistryTrop_?ADV? ', + 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', + 'BudgetTransportFull_?ADV? ', + 'BudgetTransportTrop_?ADV? ', + 'BudgetTransportPBL_?ADV? ', + 'BudgetTransportLevs1to35_?ADV? ', + 'BudgetMixingFull_?ADV? ', + 'BudgetMixingTrop_?ADV? ', + 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', + 'BudgetConvectionFull_?ADV? ', + 'BudgetConvectionTrop_?ADV? ', + 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', +:: +#============================================================================== +# %%%%% THE CO2 COLLECTION %%%%% +# +# Diagnostics for the CO2 specialty simulation. (NOTE: Several other relevant +# CO2 specialty-simulation diagnostics are sent to the HEMCO diagnostics.) +# +# Only available for the CO2 specialty simulation only +#============================================================================== + CO2.template: '%y4%m2%d2_%h2%n2z.nc4', + CO2.frequency: 00000000 010000, + CO2.duration: 00000000 120000, + CO2.mode: 'time-averaged' + CO2.fields: 'ProdCO2fromCO ', +:: +#============================================================================== +# %%%%% THE CloudConvFlux COLLECTION %%%%% +# +# Cloud convective flux (default = advected species) +# +# Available for all simulations +#============================================================================== + CloudConvFlux.template: '%y4%m2%d2_%h2%n2z.nc4', + CloudConvFlux.frequency: 00000000 010000, + CloudConvFlux.duration: 00000000 120000, + CloudConvFlux.mode: 'time-averaged' + CloudConvFlux.fields: 'CloudConvFlux_?ADV? ', +:: +#============================================================================== +# %%%%% THE LevelEdgeDiags COLLECTION %%%%% +# +# Diagnostics that are defined on grid box level edges +# +# Available for all simulations +#============================================================================== + LevelEdgeDiags.template: '%y4%m2%d2_%h2%n2z.nc4', + LevelEdgeDiags.frequency: 00000000 010000, + LevelEdgeDiags.duration: 00000000 120000, + LevelEdgeDiags.mode: 'time-averaged' + LevelEdgeDiags.fields: 'Met_CMFMC ', + 'Met_PEDGE ', + 'Met_PEDGEDRY ', + 'Met_PFICU ', + 'Met_PFILSAN ', + 'Met_PFLCU ', + 'Met_PFLLSAN ', +:: \ No newline at end of file diff --git a/run/WRF/co2/geoschem_config.yml b/run/WRF/co2/geoschem_config.yml new file mode 100644 index 000000000..1b9c89f9d --- /dev/null +++ b/run/WRF/co2/geoschem_config.yml @@ -0,0 +1,80 @@ +--- +### geoschem_config.yml: GEOS-Chem Runtime configuration options. +### Customized for simulations using the CO2 mechanism. +### +### NOTE: Add quotes around nitrogen oxide ('NO'), because YAML +### parsers will confuse this with a negative "no" value. +### +### Customized for WRF-GC, Haipeng Lin, August 2022 +### Note: Most of configuration options here do not need to be changed +### when running in the WRF-GC environment! + +#============================================================================ +# Simulation settings +#============================================================================ +simulation: + name: co2 + start_date: [19970215, 031100] + end_date: [20180415, 040000] + root_data_dir: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData + chem_inputs_dir: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData/CHEM_INPUTS/ + met_field: GEOSFP + species_database_file: ./species_database.yml + debug_printout: false + use_gcclassic_timers: false + +#============================================================================ +# Settings for GEOS-Chem operations +#============================================================================ +operations: + + chemistry: + activate: true + + convection: + activate: true + + pbl_mixing: + activate: true + use_non_local_pbl: true + + transport: + gcclassic_tpcore: # GEOS-Chem Classic only + activate: true # GEOS-Chem Classic only + fill_negative_values: true # GEOS-Chem Classic only + iord_jord_kord: [3, 3, 7] # GEOS-Chem Classic only + transported_species: + - CO2 + +#============================================================================ +# Options for CO2 +#============================================================================ +CO2_simulation_options: + + sources: + 3D_chemical_oxidation_source: true + + tagged_species: + tag_bio_and_ocean_CO2: false + tag_land_fossil_fuel_CO2: + +#============================================================================ +# Settings for diagnostics (other than HISTORY and HEMCO) +# These options are currently unsupported for WRF-GC! +#============================================================================ +extra_diagnostics: + + obspack: + activate: false + quiet_logfile_output: false + input_file: ./obspack_co2_1_OCO2MIP_2018-11-28.YYYYMMDD.nc + output_file: ./OutputDir/GEOSChem.ObsPack.YYYYMMDD_hhmmz.nc4 + output_species: + - CO + - 'NO' + - O3 + + planeflight: + activate: false + flight_track_file: Planeflight.dat.YYYYMMDD + output_file: plane.log.YYYYMMDD \ No newline at end of file diff --git a/run/WRF/fullchem/HEMCO_Config.rc b/run/WRF/fullchem/HEMCO_Config.rc new file mode 100644 index 000000000..e95b0472d --- /dev/null +++ b/run/WRF/fullchem/HEMCO_Config.rc @@ -0,0 +1,4479 @@ +#------------------------------------------------------------------------------ +# Harmonized Emissions Component (HEMCO) ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: HEMCO_Config.rc +# +# !DESCRIPTION: Contains configuration information for HEMCO. Define the +# emissions inventories and corresponding file paths here. Entire +# configuration files can be inserted into this configuration file with +# an '>>>include' statement, e.g. '>>>include HEMCO\_Config\_test.rc' +# The settings of include-files will be ignored. +#\\ +#\\ +# !REMARKS: +# See The HEMCO User's Guide for file details: +# http://wiki.geos-chem.org/The_HEMCO_User%27s_Guide +# +# !REVISION HISTORY: +# See https://github.com/geoschem/geos-chem for complete history +#EOP +#------------------------------------------------------------------------------ +#BOC +############################################################################### +### BEGIN SECTION SETTINGS +############################################################################### + +ROOT: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData/HEMCO +METDIR: not_used +GCAPSCENARIO: not_used +GCAPVERTRES: 47 +Logfile: * +DiagnFile: HEMCO_Diagn.rc +DiagnPrefix: ./HEMCO_diagnostics +DiagnFreq: Monthly +Wildcard: * +Separator: / +Unit tolerance: 1 +Negative values: 0 +Only unitless scale factors: false +Verbose: 0 +Warnings: 1 + +### END SECTION SETTINGS ### + +############################################################################### +### BEGIN SECTION EXTENSION SWITCHES +############################################################################### +# ExtNr ExtName on/off Species Years avail. +0 Base : on * +# ----- MAIN SWITCHES --------------------------------------------------------- + --> EMISSIONS : true + --> CHEMISTRY_INPUT : true +# ----- RESTART FIELDS -------------------------------------------------------- + --> HEMCO_RESTART : true +# ----- REGIONAL INVENTORIES -------------------------------------------------- + --> APEI : false # 1989-2014 + --> NEI2016_MONMEAN : false # 2002-2020 + --> DICE_Africa : false # 2013 +# ----- GLOBAL INVENTORIES ---------------------------------------------------- + --> CEDSv2 : true # 1750-2019 + --> CEDS_GBDMAPS : false # 1970-2017 + --> CEDS_GBDMAPS_byFuelType: false # 1970-2017 + --> EDGARv43 : false # 1970-2010 + --> HTAPv3 : false # 2000-2018 + --> GEIA_NH3 : true # 1990 + --> SEABIRD_NH3 : true # 1990 + --> POET_EOH : false # 1985 + --> TZOMPASOSA_C2H6 : true # 2010 + --> XIAO_C3H8 : true # 1985 + --> LIANG_BROMOCARB : true # 2000 + --> ORDONEZ_IODOCARB : true # 2000 + --> DECAYING_PLANTS : true # 1985 + --> AFCID : true # 2015 +# ----- AIRCRAFT EMISSIONS ---------------------------------------------------- +# There are 3 switches: +# +# 1. AEIC2019_DAILY selects daily AEIC 2019 emissions. For most simulations, +# this is not recommended due to the amount of computational overhead +# that will be incurred in regridding. But this may be useful for +# research purposes. Recommended setting: "AEIC2019_DAILY: false". +# +# 2. AEIC2019_MONMEAN selects monthly-mean AEIC 2019 emisisons, which will +# incur much less computational overhaead. This options should suffice +# for most simulations. Recommended setting "AEIC2019_MONMEAN: true". +# +# 3. AEIC_SCALE_1990_2019: If "false", the AEIC 2019 data from the year +# 2019 alone will be used. This will yield a "best estimate" of +# aviation emisssion. This could be important because simply scaling +# aviation emissions up and down is rather nonphysical. But if +# AEIC_SCALE_1990_2019 is set to true, then aviation emissions for +# 1990 to 2019 are estimated by: +# +# a. Scaling ALL aviation emissions based on the growth in fuelburn +# from 1990 to 2019* estimated by Lee et al. (2021); and +# +# b. Scaling aviation NOx emissions by an additional factor to reflect +# the changes in the NOx emissions index over the same period as +# reported by Lee et al. (2021). +# +# Recommended setting: "AEIC_SCALE_1990_2019: true" +# +# See additional notes in the AEIC scale factor section below. +#------------------------------------------------------------------------------ + --> AEIC2019_DAILY : false # 2019 (daily data) + --> AEIC2019_MONMEAN : true # 2019 (monthly-mean data) + --> AEIC_SCALE_1990_2019 : true # Scale to year in 1990-2019 +# ----- SHIP EMISSIONS -------------------------------------------------------- + --> SHIP : true + --> CEDSv2_SHIP : true # 1750-2017 + --> CEDS_GBDMAPS_SHIP : false # 1970-2017 + --> CEDS_GBDMAPS_SHIP_byFuelType: false # 1970-2017 + --> HTAPv3_SHIP : false # 2000-2018 + --> ICOADS_SHIP : false # 2002 + --> ARCTAS_SHIP : false # 2008 + --> CORBETT_SHIP : false # 1985 +# ----- RCP FUTURE EMISSIONS -------------------------------------------------- + --> RCP_3PD : false # 2005-2100 + --> RCP_45 : false # 2005-2100 + --> RCP_60 : false # 2005-2100 + --> RCP_85 : false # 2005-2100 +# ----- CMIP6 ANTHRO EMISSIONS / BOUNDARY CONDITIONS -------------------------- +# Set GCAPSCENARIO (e.g., HIST, SSP585) above in SECTION SETTINGS + --> CMIP6_SFC_BC : false # 1750-2100 + --> CMIP6_SFC_LAND_ANTHRO : false # 1850-2100 + --> CMIP6_AIRCRAFT : false # 1850-2100 + --> CMIP6_SHIP : false # 1850-2100 +# ----- BIOMASS BURNING EMISSIONS --------------------------------------------- + --> QFED2 : false # 2000-2020 + --> GFAS : false # 2003-2021 + --> BB4MIPS : false # 1850-2100 +# ----- OFFLINE EMISSIONS ----------------------------------------------------- +# To use online emissions instead set the offline emissions to 'false' and the +# corresponding HEMCO extension to 'on': +# OFFLINE_DUST - DustDead or DustGinoux +# OFFLINE_BIOGENICVOC - MEGAN +# - Note: MEGAN must always be on for species not in OFFLINE_BIOGENICVOC +# OFFLINE_SEASALT - SeaSalt +# OFFLINE_SOILNOX - SoilNOx +# +# NOTE: When switching between offline and online emissions, make sure to also +# update ExtNr and Cat in HEMCO_Diagn.rc to properly save out emissions for +# any affected species. +#------------------------------------------------------------------------------ + --> OFFLINE_DUST : false # 1980-2021 + --> OFFLINE_BIOGENICVOC : false # 1980-2021 + --> OFFLINE_SEASALT : false # 1980-2021 + --> CalcBrSeasalt : false + --> OFFLINE_SOILNOX : false # 1980-2021 +# ----- NON-EMISSIONS DATA ---------------------------------------------------- + --> UVALBEDO : true # 1985 + --> CCM_STRAT_Bry : true # 2007 + --> GMI_OH : true # 2005 + --> GMI_PROD_LOSS : true # 2005 + --> OMOC_RATIO : false # 2010 + --> GMD_SFC_CH4 : true # 1979-2020 + --> CMIP6_SFC_CH4 : false # 1750-1978 + --> OLSON_LANDMAP : true # 1985 + --> YUAN_MODIS_LAI : true # 2000-2020 + --> RRTMG : false # 2002 + --> SfcVMR : true # 1750-2014 + --> OCEAN_O3_DRYDEP : true # 1985 +# ----------------------------------------------------------------------------- +100 Custom : off - +101 SeaFlux : on DMS/ACET/ALD2/MENO3/ETNO3/MOH +102 ParaNOx : off NO/NO2/O3/HNO3 + --> LUT data format : nc + --> LUT source dir : $ROOT/PARANOX/v2015-02 +103 LightNOx : on NO + --> CDF table : $ROOT/LIGHTNOX/v2014-07/light_dist.ott2010.dat +104 SoilNOx : on NO + --> Use fertilizer NOx : true +105 DustDead : on DST1/DST2/DST3/DST4 +# Replace @MASS_TUNING_FACTOR with value matching run resolution +#C24 --> Mass tuning factor : 6.0e-4 +#C48 --> Mass tuning factor : 5.0416e-4 +#C90 --> Mass tuning factor : 4.0e-4 +#C180 --> Mass tuning factor : 3.23e-4 +#C360 --> Mass tuning factor : 2.35e-4 +#C720 --> Mass tuning factor : 2.3e-4 + --> Mass tuning factor : 2.35e-4 +106 DustGinoux : off DST1/DST2/DST3/DST4 +107 SeaSalt : on SALA/SALC/SALACL/SALCCL/SALAAL/SALCAL/BrSALA/BrSALC/MOPO/MOPI + --> SALA lower radius : 0.01 + --> SALA upper radius : 0.5 + --> SALC lower radius : 0.5 + --> SALC upper radius : 8.0 + --> Reduce SS cold water : true + --> Blowing Snow SS : true + --> NH FYI snow salinity : 0.1 + --> NH MYI snow salinity : 0.05 + --> SH FYI snow salinity : 0.03 + --> SH MYI snow salinity : 0.015 + --> NH snow age : 3.0 + --> SH snow age : 1.5 + --> N per snowflake : 5.0 + --> Model sea salt Br- : false + --> Br- mass ratio : 2.11e-3 +108 MEGAN : on ISOP/ACET/PRPE/C2H4/ALD2/MOH/EOH/MTPA/MTPO/LIMO/SESQ/SOAP/SOAS + --> Isoprene scaling : 1.0 + --> CO2 inhibition : true + --> CO2 conc (ppmv) : 390.0 + --> Isoprene to SOAP : 0.015 + --> Isoprene to SOAS : 0.015 + --> Monoterp to SOAP : 0.050 + --> Monoterp to SOAS : 0.050 + --> Othrterp to SOAP : 0.050 + --> Othrterp to SOAS : 0.050 +111 GFED : on NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/BCPO/BCPI/OCPO/OCPI/POG1/POG2/MTPA/BENZ/TOLU/XYLE/NAP/EOH/MOH/SOAP + --> GFED4 : true + --> GFED_daily : false + --> GFED_3hourly : false + --> Scaling_CO : 1.05 + --> Scaling_NAP : 2.75e-4 + --> hydrophilic BC : 0.2 + --> hydrophilic OC : 0.5 + --> fraction POG1 : 0.49 + --> CO to SOAP : 0.013 + --> GFED_subgrid_coag : false +#see the note near scale factor 281 for the source of this emis factor +114 FINN : off NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C2H2/C2H4/C3H8/CH2O/C2H6/SO2/NH3/BCPI/BCPO/OCPI/OCPO/GLYC/HAC/SOAP + --> FINN_daily : false + --> Scaling_CO : 1.0 + --> Scaling_SOAP : 0.013 + --> hydrophilic BC : 0.2 + --> hydrophilic OC : 0.5 + --> FINN_subgrid_coag : false +115 DustAlk : off DSTAL1/DSTAL2/DSTAL3/DSTAL4 +117 Volcano : on SO2 + --> Volcano_Source : AeroCom + --> Volcano_Table : $ROOT/VOLCANO/v2021-09/$YYYY/$MM/so2_volcanic_emissions_Carns.$YYYY$MM$DD.rc + --> Volcano_Climatology : $ROOT/VOLCANO/v2021-09/so2_volcanic_emissions_CARN_v202005.degassing_only.rc +120 Inorg_Iodine : on HOI/I2 + --> Emit HOI : true + --> Emit I2 : true +130 TOMAS_Jeagle : off SS01/SS02/SS03/SS04/SS05/SS06/SS07/SS08/SS09/SS10/SS11/SS12/SS13/SS14/SS15/SS16/SS17/SS18/SS19/SS20/SS21/SS22/SS23/SS24/SS25/SS26/SS27/SS28/SS29/SS30/SS31/SS32/SS33/SS34/SS35/SS36/SS37/SS38/SS39/SS40 +131 TOMAS_DustDead : off DUST01/DUST02/DUST03/DUST04/DUST05/DUST06/DUST07/DUST08/DUST09/DUST10/DUST11/DUST12/DUST13/DUST14/DUST15/DUST16/DUST17/DUST18/DUST19/DUST20/DUST21/DUST22/DUST23/DUST24/DUST25/DUST26/DUST27/DUST28/DUST29/DUST30/DUST31/DUST32/DUST33/DUST34/DUST35/DUST36/DUST37/DUST38/DUST39/DUST40 + --> Mass tuning factor : 4.7586e-4 +### END SECTION EXTENSION SWITCHES ### + +############################################################################### +### BEGIN SECTION BASE EMISSIONS +############################################################################### + +# ExtNr Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Species ScalIDs Cat Hier + +(((EMISSIONS + +#============================================================================== +# --- APEI (Canada) --- +#============================================================================== +(((APEI +0 APEI_NO $ROOT/APEI/v2016-11/APEI.0.1x0.1.nc NOx 1989-2014/1/1/0 RF xy kg/m2/s NO 25/1002/115 1 30 +0 APEI_CO $ROOT/APEI/v2016-11/APEI.0.1x0.1.nc CO 1989-2014/1/1/0 RF xy kg/m2/s CO 26/52/1002 1 30 +0 APEI_SOAP - - - - - - SOAP 26/52/1002/280 1 30 +0 APEI_SO2 $ROOT/APEI/v2016-11/APEI.0.1x0.1.nc SOx 1989-2014/1/1/0 RF xy kg/m2/s SO2 60/1002 1 30 +0 APEI_SO4 - - - - - - SO4 60/65/1002 1 30 +0 APEI_pFe - - - - - - pFe 60/68/1002 1 30 +0 APEI_NH3 $ROOT/APEI/v2016-11/APEI.0.1x0.1.nc NH3 1989-2014/1/1/0 RF xy kg/m2/s NH3 1002 1 30 +0 APEI_BCPI $ROOT/APEI/v2016-11/APEI.0.1x0.1.nc EC 1989-2014/1/1/0 RF xy kg/m2/s BCPI 70/1002 1 30 +0 APEI_BCPO $ROOT/APEI/v2016-11/APEI.0.1x0.1.nc EC 1989-2014/1/1/0 RF xy kg/m2/s BCPO 71/1002 1 30 +0 APEI_OCPI $ROOT/APEI/v2016-11/APEI.0.1x0.1.nc OC 1989-2014/1/1/0 RF xy kg/m2/s OCPI 72/1002 1 30 +0 APEI_OCPO $ROOT/APEI/v2016-11/APEI.0.1x0.1.nc OC 1989-2014/1/1/0 RF xy kg/m2/s OCPO 73/1002 1 30 +0 APEI_POG1 - - - - - - POG1 74/76/1002 1 30 +0 APEI_POG2 - - - - - - POG2 74/77/1002 1 30 +)))APEI + +#============================================================================== +# --- EPA NEI2016 v1 (USA) --- +# +# NOTES: +# * Barron Henderson wrote, "The EPA emission modeling platform always +# includes our best estimate of that year's emissions for Canada and Mexico +# (othpt, othar, ptfire_oth). Using that estimate is likely good. However, +# that can lead to a discontinuity in Mexico and Canada." +# - By default only emissions over the CONUS are used (via Mask #1007) +# - To include emissions over Canada and Mexico, users may revert to the old +# US mask file $ROOT/MASKS/v2018-09/USA_LANDMASK_NEI2011_0.1x0.1.20160921.nc +# * The base year of these emissions is 2016 and emissions are scaled to +# 2002-2020 using data from the EPA Trends Report for Tier 1 CAPS (obtained +# 21 Sep 2021). +# - See NEI2016/v2021-06/national_tier1_caps+HEMCOscaling.xlsx for details. +# - Cl2 and HCl emissions are only available for 2016 because those species +# aren't included in the Tier 1 CAPS file/ +#============================================================================== +(((NEI2016_MONMEAN +0 EPA16_BCPI__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__afdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__afdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__afdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__afdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__afdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__afdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__afdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_SO4__afdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_afdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__agACET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__agALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__agALDX $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__agBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_C2H4__agETH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__agETHA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__agETOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__agFORM $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_PRPE__agIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__agKET $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__agMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__agNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_PRPE__agOLE $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__agPAR $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_C3H8__agPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_TOLU__agTOL $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__agXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_ag_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__airportsACET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__airportsACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__airportsALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__airportsALDX $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__airportsBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__airportsCO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__airportsSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__airportsETH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__airportsETHA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__airportsETOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__airportsFORM $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__airportsHONO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__airportsKET $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__airportsMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NO__airportsNO $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__airportsNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__airportsOLE $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__airportsPAR $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__airportsPEC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__airportsPNA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__airportsPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__airportsPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__airportsPOC $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__airportsPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__airportsPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__airportsPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__airportsPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__airportsSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__airportspFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__airportsSULF $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__airportsTOL $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__airportsXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_airports_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonptACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonptACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__nonptCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__nonptCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__nonptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__nonptETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HCl__nonptHCL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HCL 2016/1-12/1/0 R xy kg/m2/s HCl 1007 1 50 +0 EPA16_HNO2__nonptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonptKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonptNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__nonptPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__nonptPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__nonptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__nonptpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__nonptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__nonroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__nonroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__nonroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__nonroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__nonroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__nonroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__nonroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__nonroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__nonroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__nonroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__nonroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__nonroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__nonroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__nonroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__nonroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__nonroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__nonroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__nonroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__nonroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__nonroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__nonroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__nonroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__nonroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__nonroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__nonroadPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__nonroadPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__nonroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__nonroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__nonroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__nonroadspFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__nonroadSULF $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__nonroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__nonroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_nonroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__npogACET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__npogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__npogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__npogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__npogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__npogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__npogCO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__npogSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__npogETH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__npogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__npogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__npogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__npogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__npogKET $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__npogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__npogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__npogNO $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__npogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__npogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__npogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__npogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__npogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__npogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__npogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__npogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__npogPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__npogPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__npogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__npogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__npogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__npogpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__npogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__npogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__npogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_np_oilgas_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroadACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroadACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroadALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroadALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroadBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroadCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__onroadSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__onroadETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroadETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroadETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroadFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroadHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroadKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroadMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroadNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroadNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroadNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroadOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroadPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroadPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroadPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroadPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroadPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroadPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__onroadPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__onroadPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__onroadPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroadPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroadSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__onroadpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_TOLU__onroadTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroadXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_caACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_caACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_caALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_caALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_caBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_caCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP_onroad__caSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__onroad_caETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_caETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_caETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_caFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_caHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_caKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_caMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_caNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_caNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_caNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_caOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_caPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_caPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_caPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_caPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_caPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_caPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__onroad_caPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__onroad_caPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__onroad_caPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_caPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_caSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__onroad_capFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_TOLU__onroad_caTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_caXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_ca_adj_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__railACET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__railACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__railALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__railALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__railBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__railCO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__railSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__railETH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__railETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__railETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__railFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__railHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__railKET $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__railMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__railNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__railNO $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__railNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__railOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__railPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__railPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__railPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__railPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__railPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__railPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__railPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__railPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__railPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__railPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__railSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__railpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__railSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__railTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__railXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rail_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__rwcACET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__rwcACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__rwcALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__rwcALDX $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__rwcBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__rwcCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CL2 2016/1-12/1/0 R xy kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__rwcCO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__rwcSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__rwcETH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__rwcETHA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__rwcETOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__rwcFORM $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__rwcHONO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__rwcKET $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__rwcMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__rwcNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__rwcNO $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__rwcNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__rwcOLE $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__rwcPAR $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__rwcPEC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__rwcPNA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__rwcPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__rwcPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__rwcPOC $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__rwcPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__rwcPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__rwcPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__rwcPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__rwcSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__rwcpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__rwcSULF $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__rwcTOL $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__rwcXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_rwc_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__c1c2ACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__c1c2ALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__c1c2ALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__c1c2BENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__c1c2CO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__clc2SOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__c1c2ETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__c1c2ETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__c1c2ETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__c1c2FORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__c1c2HONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__c1c2IOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__c1c2KET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__c1c2MEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__c1c2NH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__c1c2NO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__c1c2NO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__c1c2OLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__c1c2PAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__c1c2PEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__c1c2PEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__c1c2PNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__c1c2PNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__c1c2PNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__c1c2POC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__c1c2POC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__clc2POC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__clc2POC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__c1c2PRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__c1c2PSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__c1c2SO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__clcpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__c1c2SULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__c1c2TOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__c1c2XYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c1c2_12_0pt1degree_3D_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__c3ACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__c3ALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__c3ALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__c3BENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__c3CO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__c3SOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__c3ETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__c3ETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__c3ETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__c3FORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__c3HONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__c3IOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__c3KET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__c3MEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__c3NH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__c3NO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__c3NO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__c3OLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__c3PAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__c3PEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__c3PEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__c3PNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__c3PNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__c3PNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__c3POC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__c3POC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__c3POC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__c3POC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__c3PRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__c3PSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__c3SO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__c2pFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__c3SULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__c3TOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__c3XYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_cmv_c3_12_0pt1degree_3D_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__pteguACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__pteguACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__pteguALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__pteguALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__pteguBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__pteguCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__pteguCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__pteguSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__pteguETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__pteguETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__pteguETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__pteguFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HCl__pteguHCL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf HCL 2016/1-12/1/0 R xyz kg/m2/s HCl 1007 1 50 +0 EPA16_HNO2__pteguHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__pteguIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__pteguKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__pteguMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__pteguNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__pteguNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__pteguNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__pteguOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__pteguPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__pteguPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__pteguPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__pteguPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__pteguPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__pteguPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__pteguPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__pteguPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__pteguPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__pteguPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__pteguPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__pteguPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__pteguSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__ptegupFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__pteguSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__pteguTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__pteguXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptegu_0pt1degree_3D_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__ptogACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__ptogACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__ptogALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__ptogALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__ptogBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__ptogCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf CL2 2016/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__ptogCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__ptogSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__ptogETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__ptogETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__ptogETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__ptogFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HCl__ptogHCL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf HCL 2016/1-12/1/0 R xyz kg/m2/s HCl 1007 1 50 +0 EPA16_HNO2__ptogHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__ptogIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__ptogKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__ptogMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__ptogNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__ptogNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kgNO2/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__ptogNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__ptogOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__ptogPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__ptogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__ptogPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__ptogPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__ptogPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__ptogPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__ptogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__ptogPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__ptogPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__ptogPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__ptogPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__ptogPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__ptogSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__ptogpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__ptogSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__ptogTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__ptogXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_pt_oilgas_allinln_0pt1degree_3D_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__ptnonipmACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xyz kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__ptnonipmACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xyz kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__ptnonipmALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xyz kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__ptnonipmALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xyz kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__ptnonipmBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xyz kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_Cl2__ptnonipmCL2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf CL2 2002-2020/1-12/1/0 R xyz kg/m2/s Cl2 1007 1 50 +0 EPA16_CO__ptnonipmCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xyz kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__ptnonipmSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__ptnonipmETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__ptnonipmETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xyz kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__ptnonipmETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xyz kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__ptnonipmFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xyz kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HCl__ptnonipmHCL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf HCL 2002-2020/1-12/1/0 R xyz kg/m2/s HCl 1007 1 50 +0 EPA16_HNO2__ptnonipmHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__ptnonipmIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__ptnonipmKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xyz kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__ptnonipmMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xyz kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__ptnonipmNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xyz kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__ptnonipmNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xyz kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__ptnonipmNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xyz kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__ptnonipmOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xyz kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__ptnonipmPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xyz kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__ptnonipmPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__ptnonipmPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xyz kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__ptnonipmPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xyz kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__ptnonipmPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xyz kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__ptnonipmPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xyz kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__ptnonipmPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__ptnonipmPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xyz kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__ptnonipmPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__ptnonipmPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__ptnonipmPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xyz kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__ptnonipmPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__ptnonipmSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xyz kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__ptnonipmpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__ptnonipmSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xyz kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__ptnonipmTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xyz kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__ptnonipmXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_ptnonipm_allinln_0pt1degree_3D_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xyz kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_canACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_canALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_canALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_canBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_canCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__onroad_canSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__onroad_canETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_canETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_canETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_canFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_canHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_canKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_canMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_canNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_canNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_canNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_canOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_canPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_canPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_canPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_canPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_canPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_canPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__onroad_canPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__onroad_canPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__onroad_canPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_canPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_canSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__onroad_canpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__onroad_canSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_canTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_canXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_can_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_ACET__onroad_mexACET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_MACR__onroad_mexACROLEIN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ACROLEIN 2002-2020/1-12/1/0 RF xy kg/m2/s MACR 26/213/254/1007 1 50 +0 EPA16_ALD2__onroad_mexALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__onroad_mexALDX $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__onroad_mexBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__onroad_mexCO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__onroad_mexSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__onroad_mexETH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__onroad_mexETHA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__onroad_mexETOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__onroad_mexFORM $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__onroad_mexHONO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__onroad_mexKET $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__onroad_mexMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__onroad_mexNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__onroad_mexNO $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__onroad_mexNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__onroad_mexOLE $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__onroad_mexPAR $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__onroad_mexPEC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__onroad_mexPNA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__onroad_mexPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__onroad_mexPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__onroad_mexPOC $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__onroad_mexPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__onroad_mexPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__onroad_mexPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__onroad_mexPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__onroad_mexSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__onroad_mexpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__onroad_mexSULF $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__onroad_mexTOL $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__onroad_mexXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_onroad_mex_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othafdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othafdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othafdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othafdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othafdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__othafdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__othafdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_SO4__othafdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othafdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__otharACET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__otharALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__otharALDX $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__otharBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__otharCO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__otharSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__otharETH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__otharETHA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__otharETOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__otharFORM $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__otharHONO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__otharKET $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__otharMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__otharNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__otharNO $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__otharNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__otharOLE $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__otharPAR $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__otharPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__otharPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__otharPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__otharPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__otharPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__otharPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__otharPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__otharPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__otharPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__otharSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__otharpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__otharSULF $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__otharTOL $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__otharXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_othar_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +0 EPA16_BCPI__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptdustPEC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptdustPNA $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptdustPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptdustPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptdustPOC $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__othptdustPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__othptdustPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_SO4__othptdustPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_othptdust_adj_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_ACET__othptACET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ACET 2002-2020/1-12/1/0 RF xy kg/m2/s ACET 26/213/254/1007 1 50 +0 EPA16_ALD2__othptALD2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALD2 2002-2020/1-12/1/0 RF xy kg/m2/s ALD2 26/213/254/1007 1 50 +0 EPA16_RCHO__othptALDX $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ALDX 2002-2020/1-12/1/0 RF xy kg/m2/s RCHO 26/213/254/1007 1 50 +0 EPA16_BENZ__othptBENZ $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf BENZ 2002-2020/1-12/1/0 RF xy kg/m2/s BENZ 26/213/254/1007 1 50 +0 EPA16_CO__othptCO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf CO 2002-2020/1-12/1/0 RF xy kg/m2/s CO 26/211/252/1007 1 50 +0 EPA16_SOAP__othptSOAP - - - - - - SOAP 26/211/252/1007/280 1 50 +0 EPA16_C2H4__othptETH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETH 2002-2020/1-12/1/0 RF xy kg/m2/s C2H4 26/213/254/1007 1 50 +0 EPA16_C2H6__othptETHA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETHA 2002-2020/1-12/1/0 RF xy kg/m2/s C2H6 26/217/254/1007 1 50 +0 EPA16_EOH__othptETOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf ETOH 2002-2020/1-12/1/0 RF xy kg/m2/s EOH 26/213/254/1007 1 50 +0 EPA16_CH2O__othptFORM $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf FORM 2002-2020/1-12/1/0 RF xy kg/m2/s CH2O 26/213/254/1007 1 50 +0 EPA16_HNO2__othptHONO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf HONO 2002-2020/1-12/1/0 RF xy kg/m2/s HNO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptIOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf IOLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_MEK__othptKET $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf KET 2002-2020/1-12/1/0 RF xy kg/m2/s MEK 26/214/254/1007 1 50 +0 EPA16_MOH__othptMEOH $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf MEOH 2002-2020/1-12/1/0 RF xy kg/m2/s MOH 26/213/254/1007 1 50 +0 EPA16_NH3__othptNH3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NH3 2002-2020/1-12/1/0 RF xy kg/m2/s NH3 26/213/253/1007 1 50 +0 EPA16_NO__othptNO $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO 2002-2020/1-12/1/0 RF xy kg/m2/s NO 115/25/210/251/1007 1 50 +0 EPA16_NO2__othptNO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf NO2 2002-2020/1-12/1/0 RF xy kg/m2/s NO2 25/210/251/1007 1 50 +0 EPA16_PRPE__othptOLE $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf OLE 2002-2020/1-12/1/0 RF xy kg/m2/s PRPE 26/215/254/1007 1 50 +0 EPA16_ALK4__othptPAR $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PAR 2002-2020/1-12/1/0 RF xy kg/m2/s ALK4 26/212/254/1007 1 50 +0 EPA16_BCPI__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPI 26/221/256/1007/70 1 50 +0 EPA16_BCPO__othptPEC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PEC 2002-2020/1-12/1/0 RF xy kg/m2/s BCPO 26/221/256/1007/71 1 50 +0 EPA16_HNO4__othptPNA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNA 2002-2020/1-12/1/0 RF xy kg/m2/s HNO4 26/213/251/1007 1 50 +0 EPA16_NH4__othptPNH4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNH4 2002-2020/1-12/1/0 RF xy kg/m2/s NH4 26/218/255/1007 1 50 +0 EPA16_NIT__othptPNO3 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PNO3 2002-2020/1-12/1/0 RF xy kg/m2/s NIT 26/218/255/1007 1 50 +0 EPA16_OCPI__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPI 26/222/256/1007/72 1 50 +0 EPA16_OCPO__othptPOC $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf POC 2002-2020/1-12/1/0 RF xy kg/m2/s OCPO 26/222/256/1007/73 1 50 +0 EPA16_POG1__othptPOC - - - - - - POG1 26/222/256/1007/74/76 1 50 +0 EPA16_POG2__othptPOC - - - - - - POG2 26/222/256/1007/74/77 1 50 +0 EPA16_C3H8__othptPRPA $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PRPA 2002-2020/1-12/1/0 RF xy kg/m2/s C3H8 26/216/254/1007 1 50 +0 EPA16_SO4__othptPSO4 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf PSO4 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_SO2__othptSO2 $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SO2 2002-2020/1-12/1/0 RF xy kg/m2/s SO2 26/218/255/1007 1 50 +0 EPA16_pFe__othptpFe - - - - - - pFe 26/218/255/1007/69 1 50 +0 EPA16_SO4__othptSULF $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf SULF 2002-2020/1-12/1/0 RF xy kg/m2/s SO4 26/219/255/1007 1 50 +0 EPA16_TOLU__othptTOL $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf TOL 2002-2020/1-12/1/0 RF xy kg/m2/s TOLU 26/213/254/1007 1 50 +0 EPA16_XYLE__othptXYLMN $ROOT/NEI2016/v2021-06/2016fh_16j_emln_othpt_0pt1degree_month_$MM.ncf XYLMN 2002-2020/1-12/1/0 RF xy kg/m2/s XYLE 26/213/254/1007 1 50 +)))NEI2016_MONMEAN + +#============================================================================== +# --- DICE-Africa emission inventory (Marais and Wiedinmyer, ES&T, 2016) --- +# +# DICE-Africa includes regional (Africa) emissions of biofuel and diffuse +# anthropogenic emissions from cars and motorcycles, biofuels, charcoal making +# and use, backup generators, agricultural waste burning for cooking, gas +# flares, and ad-hoc/informal oil refining. +# +# Other pollution sources (formal industry, power generation using fossil +# fuels) are from the EDGAR v4.3 inventory for CO, SO2, NH3, NOx BC, and OC. +# +# NMVOCs from sources not accounted for in DICE-Africa aren't included here, +# as these emissions are likely to be low compared to the DICE pollution +# sources and RETRO v1 as implemented in GEOS-Chem doesn't distinguish +# emissions by sector/activity. +# +# Emissions for 2013 are defined below, but DICE-Africa also includes +# emissions for 2006. Developers recommend using population change to +# estimate emissions, if users want to use annual trends in pollutant +# emissions to estimate in other years. +#============================================================================== +(((DICE_Africa +# ------------------------ +# Cars +# ------------------------ +0 DICE_CARS_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 1 60 +0 DICE_CARS_SOAP - - - - - - SOAP 26/1008/280 1 60 +0 DICE_CARS_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008 1 60 +0 DICE_CARS_ALK4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc ALK4 2013/1/1/0 C xy g/m2/yr ALK4 26/1008 1 60 +0 DICE_CARS_ISOP $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc ISOP 2013/1/1/0 C xy g/m2/yr ISOP 26/1008 1 60 +0 DICE_CARS_ACET $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc ACET 2013/1/1/0 C xy g/m2/yr ACET 26/1008 1 60 +0 DICE_CARS_MEK $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc MEK 2013/1/1/0 C xy g/m2/yr MEK 26/1008 1 60 +0 DICE_CARS_ALD2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc ALD2 2013/1/1/0 C xy g/m2/yr ALD2 26/1008 1 60 +0 DICE_CARS_RCHO $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc RCHO 2013/1/1/0 C xy g/m2/yr RCHO 26/1008 1 60 +0 DICE_CARS_PRPE $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc PRPE 2013/1/1/0 C xy g/m2/yr PRPE 26/1008 1 60 +0 DICE_CARS_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008 1 60 +0 DICE_CARS_SO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc SO2 2013/1/1/0 C xy g/m2/yr SO2 31/78/1008 1 60 +0 DICE_CARS_SO4 - - - - - - SO4 31/63/1008 1 60 +0 DICE_CARS_pFe - - - - - - pFe 31/78/66/1008 1 60 +0 DICE_CARS_C2H4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc C2H4 2013/1/1/0 C xy g/m2/yr C2H4 26/1008 1 60 +0 DICE_CARS_BENZ $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc BENZ 2013/1/1/0 C xy g/m2/yr BENZ 26/1008 1 60 +0 DICE_CARS_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008 1 60 +0 DICE_CARS_XYLE $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc XYLE 2013/1/1/0 C xy g/m2/yr XYLE 26/1008 1 60 +0 DICE_CARS_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 1 60 +0 DICE_CARS_BCPO - - - - - - BCPO 71/1008 1 60 +0 DICE_CARS_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-cars-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008/330 1 60 +0 DICE_CARS_OCPO - - - - - - OCPO 73/1008/330 1 60 +0 DICE_CARS_POG1 - - - - - - POG1 74/76/1008/330 1 60 +0 DICE_CARS_POG2 - - - - - - POG2 74/77/1008/330 1 60 + +# ------------------------ +# Motorcycles +# ------------------------ +0 DICE_MOTORCYCLES_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 1 60 +0 DICE_MOTORCYCLES_SOAP - - - - - - SOAP 26/1008/280 1 60 +0 DICE_MOTORCYCLES_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008 1 60 +0 DICE_MOTORCYCLES_SO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc SO2 2013/1/1/0 C xy g/m2/yr SO2 31/78/1008 1 60 +0 DICE_MOTORCYCLES_SO4 - - - - - - SO4 31/63/1008 1 60 +0 DICE_MOTORCYCLES_pFe - - - - - - pFe 31/78/66/1008 1 60 +0 DICE_MOTORCYCLES_ALK4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc ALK4 2013/1/1/0 C xy g/m2/yr ALK4 26/1008 1 60 +0 DICE_MOTORCYCLES_MEK $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc MEK 2013/1/1/0 C xy g/m2/yr MEK 26/1008 1 60 +0 DICE_MOTORCYCLES_ALD2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc ALD2 2013/1/1/0 C xy g/m2/yr ALD2 26/1008 1 60 +0 DICE_MOTORCYCLES_PRPE $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc PRPE 2013/1/1/0 C xy g/m2/yr PRPE 26/1008 1 60 +0 DICE_MOTORCYCLES_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008 1 60 +0 DICE_MOTORCYCLES_BENZ $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc BENZ 2013/1/1/0 C xy g/m2/yr BENZ 26/1008 1 60 +0 DICE_MOTORCYCLES_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008 1 60 +0 DICE_MOTORCYCLES_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 1 60 +0 DICE_MOTORCYCLES_BCPO - - - - - - BCPO 71/1008 1 60 +0 DICE_MOTORCYCLES_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-motorcycles-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 +0 DICE_MOTORCYCLES_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_MOTORCYCLES_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_MOTORCYCLES_POG2 - - - - - - POG2 74/77/1008 1 60 + +# ------------------------ +# Backup generators +# ------------------------ +0 DICE_BACKUPGEN_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 1 60 +0 DICE_BACKUPGEN_SOAP - - - - - - SOAP 26/1008/280 1 60 +0 DICE_BACKUPGEN_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008 1 60 +0 DICE_BACKUPGEN_NO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc NO2 2013/1/1/0 C xy g/m2/yr NO2 25/30/1008 1 60 +0 DICE_BACKUPGEN_SO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc SO2 2013/1/1/0 C xy g/m2/yr SO2 31/78/1008 1 60 +0 DICE_BACKUPGEN_SO4 - - - - - - SO4 31/63/1008 1 60 +0 DICE_BACKUPGEN_pFe - - - - - - pFe 31/78/66/1008 1 60 +0 DICE_BACKUPGEN_ACET $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc ACET 2013/1/1/0 C xy g/m2/yr ACET 26/1008 1 60 +0 DICE_BACKUPGEN_MEK $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc MEK 2013/1/1/0 C xy g/m2/yr MEK 26/1008 1 60 +0 DICE_BACKUPGEN_ALD2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc ALD2 2013/1/1/0 C xy g/m2/yr ALD2 26/1008 1 60 +0 DICE_BACKUPGEN_RCHO $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc RCHO 2013/1/1/0 C xy g/m2/yr RCHO 26/1008 1 60 +0 DICE_BACKUPGEN_MVK $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc MVK 2013/1/1/0 C xy g/m2/yr MVK 26/1008 1 60 +0 DICE_BACKUPGEN_MACR $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc MACR 2013/1/1/0 C xy g/m2/yr MACR 26/1008 1 60 +0 DICE_BACKUPGEN_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008 1 60 +#0 DICE_BACKUPGEN_MGLY $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc MGLY 2013/1/1/0 C xy g/m2/yr MGLY 26/1008 1 60 +#0 DICE_BACKUPGEN_GLYX $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc GLYX 2013/1/1/0 C xy g/m2/yr GLYX 26/1008 1 60 +0 DICE_BACKUPGEN_C2H4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc C2H4 2013/1/1/0 C xy g/m2/yr C2H4 26/1008 1 60 +0 DICE_BACKUPGEN_BENZ $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc BENZ 2013/1/1/0 C xy g/m2/yr BENZ 26/1008 1 60 +0 DICE_BACKUPGEN_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008 1 60 +0 DICE_BACKUPGEN_XYLE $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc XYLE 2013/1/1/0 C xy g/m2/yr XYLE 26/1008 1 60 +0 DICE_BACKUPGEN_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 1 60 +0 DICE_BACKUPGEN_BCPO - - - - - - BCPO 71/1008 1 60 +0 DICE_BACKUPGEN_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-generator-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 +0 DICE_BACKUPGEN_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_BACKUPGEN_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_BACKUPGEN_POG2 - - - - - - POG2 74/77/1008 1 60 + +# ------------------------ +# Charcoal production +# ------------------------ +0 DICE_CHARCOALPROD_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008/320 1 60 +0 DICE_CHARCOALPROD_SOAP - - - - - - SOAP 26/1008/280/320 1 60 +0 DICE_CHARCOALPROD_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008/320 1 60 +0 DICE_CHARCOALPROD_NH3 $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc NH3 2013/1/1/0 C xy g/m2/yr NH3 1008/320 1 60 +0 DICE_CHARCOALPROD_PRPE $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc PRPE 2013/1/1/0 C xy g/m2/yr PRPE 26/1008/320 1 60 +0 DICE_CHARCOALPROD_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008/320 1 60 +0 DICE_CHARCOALPROD_C2H6 $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc C2H6 2013/1/1/0 C xy g/m2/yr C2H6 26/1008/320 1 60 +0 DICE_CHARCOALPROD_HAC $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc HAC 2013/1/1/0 C xy g/m2/yr HAC 26/1008/320 1 60 +0 DICE_CHARCOALPROD_C2H2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc C2H2 2013/1/1/0 C xy g/m2/yr C2H2 26/1008/320 1 60 +0 DICE_CHARCOALPROD_C2H4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc C2H4 2013/1/1/0 C xy g/m2/yr C2H4 26/1008/320 1 60 +0 DICE_CHARCOALPROD_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008/320 1 60 +0 DICE_CHARCOALPROD_HCOOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc HCOOH 2013/1/1/0 C xy g/m2/yr HCOOH 26/1008/320 1 60 +0 DICE_CHARCOALPROD_MOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc MOH 2013/1/1/0 C xy g/m2/yr MOH 26/1008/320 1 60 +0 DICE_CHARCOALPROD_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008/320 1 60 +0 DICE_CHARCOALPROD_BCPO - - - - - - BCPO 71/1008/320 1 60 +0 DICE_CHARCOALPROD_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-production-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008/320 1 60 +0 DICE_CHARCOALPROD_OCPO - - - - - - OCPO 73/1008/320 1 60 +0 DICE_CHARCOALPROD_POG1 - - - - - - POG1 74/76/1008/320 1 60 +0 DICE_CHARCOALPROD_POG2 - - - - - - POG2 74/77/1008/320 1 60 + +# ------------------------ +# Flaring of natural gas +# ------------------------ +0 DICE_GASFLARE_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 1 60 +0 DICE_GASFLARE_SOAP - - - - - - SOAP 26/1008/280 1 60 +0 DICE_GASFLARE_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008 1 60 +0 DICE_GASFLARE_ALK4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc ALK4 2013/1/1/0 C xy g/m2/yr ALK4 26/1008 1 60 +0 DICE_GASFLARE_ALD2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc ALD2 2013/1/1/0 C xy g/m2/yr ALD2 26/1008 1 60 +0 DICE_GASFLARE_PRPE $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc PRPE 2013/1/1/0 C xy g/m2/yr PRPE 26/1008 1 60 +0 DICE_GASFLARE_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008 1 60 +0 DICE_GASFLARE_BENZ $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc BENZ 2013/1/1/0 C xy g/m2/yr BENZ 26/1008 1 60 +0 DICE_GASFLARE_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008 1 60 +0 DICE_GASFLARE_XYLE $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc XYLE 2013/1/1/0 C xy g/m2/yr XYLE 26/1008 1 60 +0 DICE_GASFLARE_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 1 60 +0 DICE_GASFLARE_BCPO - - - - - - BCPO 71/1008 1 60 +0 DICE_GASFLARE_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-gas-flares-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 +0 DICE_GASFLARE_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_GASFLARE_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_GASFLARE_POG2 - - - - - - POG2 74/77/1008 1 60 + +# ------------------------------ +# Ag waste burning for energy +# ------------------------------ +0 DICE_AGBURNING_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 2 60 +0 DICE_AGBURNING_SOAP - - - - - - SOAP 26/1008/280 2 60 +0 DICE_AGBURNING_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008 2 60 +0 DICE_AGBURNING_NO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc NO2 2013/1/1/0 C xy g/m2/yr NO2 25/30/1008 2 60 +0 DICE_AGBURNING_SO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc SO2 2013/1/1/0 C xy g/m2/yr SO2 31/78/1008 2 60 +0 DICE_AGBURNING_SO4 - - - - - - SO4 31/63/1008 2 60 +0 DICE_AGBURNING_pFe - - - - - - pFe 31/78/66/1008 2 60 +0 DICE_AGBURNING_NH3 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc NH3 2013/1/1/0 C xy g/m2/yr NH3 1008 2 60 +0 DICE_AGBURNING_ALK4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc ALK4 2013/1/1/0 C xy g/m2/yr ALK4 26/1008 2 60 +0 DICE_AGBURNING_ISOP $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc ISOP 2013/1/1/0 C xy g/m2/yr ISOP 26/1008 2 60 +0 DICE_AGBURNING_ACET $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc ACET 2013/1/1/0 C xy g/m2/yr ACET 26/1008 2 60 +0 DICE_AGBURNING_MEK $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc MEK 2013/1/1/0 C xy g/m2/yr MEK 26/1008 2 60 +0 DICE_AGBURNING_ALD2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc ALD2 2013/1/1/0 C xy g/m2/yr ALD2 26/1008 2 60 +0 DICE_AGBURNING_MVK $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc MVK 2013/1/1/0 C xy g/m2/yr MVK 26/1008 2 60 +0 DICE_AGBURNING_MACR $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc MACR 2013/1/1/0 C xy g/m2/yr MACR 26/1008 2 60 +0 DICE_AGBURNING_PRPE $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc PRPE 2013/1/1/0 C xy g/m2/yr PRPE 26/1008 2 60 +0 DICE_AGBURNING_C3H8 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc C3H8 2013/1/1/0 C xy g/m2/yr C3H8 26/1008 2 60 +0 DICE_AGBURNING_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008 2 60 +0 DICE_AGBURNING_C2H6 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc C2H6 2013/1/1/0 C xy g/m2/yr C2H6 26/1008 2 60 +0 DICE_AGBURNING_HAC $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc HAC 2013/1/1/0 C xy g/m2/yr HAC 26/1008 2 60 +0 DICE_AGBURNING_GLYC $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc GLYC 2013/1/1/0 C xy g/m2/yr GLYC 26/1008 2 60 +0 DICE_AGBURNING_MOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc MOH 2013/1/1/0 C xy g/m2/yr MOH 26/1008 2 60 +#0 DICE_AGBURNING_MGLY $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc MGLY 2013/1/1/0 C xy g/m2/yr MGLY 26/1008 2 60 +#0 DICE_AGBURNING_APIN $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc APIN 2013/1/1/0 C xy g/m2/yr APIN 26/1008 2 60 +0 DICE_AGBURNING_C2H2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc C2H2 2013/1/1/0 C xy g/m2/yr C2H2 26/1008 2 60 +0 DICE_AGBURNING_C2H4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc C2H4 2013/1/1/0 C xy g/m2/yr C2H4 26/1008 2 60 +0 DICE_AGBURNING_BENZ $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc BENZ 2013/1/1/0 C xy g/m2/yr BENZ 26/1008 2 60 +0 DICE_AGBURNING_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008 2 60 +0 DICE_AGBURNING_XYLE $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc XYLE 2013/1/1/0 C xy g/m2/yr XYLE 26/1008 2 60 +0 DICE_AGBURNING_HCOOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc HCOOH 2013/1/1/0 C xy g/m2/yr HCOOH 26/1008 2 60 +0 DICE_AGBURNING_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 2 60 +0 DICE_AGBURNING_BCPO - - - - - g/m2/yr BCPO 71/1008 2 60 +0 DICE_AGBURNING_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-crop-residue-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 2 60 +0 DICE_AGBURNING_OCPO - - - - - - OCPO 73/1008 2 60 +0 DICE_AGBURNING_POG1 - - - - - - POG1 74/76/1008 2 60 +0 DICE_AGBURNING_POG2 - - - - - - POG2 74/77/1008 2 60 + +# ------------------------------ +# Charcoal use +# ------------------------------ +0 DICE_CHARCOALUSE_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 2 60 +0 DICE_CHARCOALUSE_SOAP - - - - - - SOAP 26/1008/280 2 60 +0 DICE_CHARCOALUSE_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008 2 60 +0 DICE_CHARCOALUSE_ALK4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc ALK4 2013/1/1/0 C xy g/m2/yr ALK4 26/1008 2 60 +0 DICE_CHARCOALUSE_NH3 $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc NH3 2013/1/1/0 C xy g/m2/yr NH3 1008 2 60 +0 DICE_CHARCOALUSE_PRPE $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc PRPE 2013/1/1/0 C xy g/m2/yr PRPE 26/1008 2 60 +0 DICE_CHARCOALUSE_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008 2 60 +0 DICE_CHARCOALUSE_C2H6 $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc C2H6 2013/1/1/0 C xy g/m2/yr C2H6 26/1008 2 60 +0 DICE_CHARCOALUSE_C2H2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc C2H2 2013/1/1/0 C xy g/m2/yr C2H2 26/1008 2 60 +0 DICE_CHARCOALUSE_C2H4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc C2H4 2013/1/1/0 C xy g/m2/yr C2H4 26/1008 2 60 +0 DICE_CHARCOALUSE_HCOOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc HCOOH 2013/1/1/0 C xy g/m2/yr HCOOH 26/1008 2 60 +0 DICE_CHARCOALUSE_MOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc MOH 2013/1/1/0 C xy g/m2/yr MOH 26/1008 2 60 +0 DICE_CHARCOALUSE_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 2 60 +0 DICE_CHARCOALUSE_BCPO - - - - - - BCPO 71/1008 2 60 +0 DICE_CHARCOALUSE_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-charcoal-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 2 60 +0 DICE_CHARCOALUSE_OCPO - - - - - - OCPO 73/1008 2 60 +0 DICE_CHARCOALUSE_POG1 - - - - - - POG1 74/76/1008 2 60 +0 DICE_CHARCOALUSE_POG2 - - - - - - POG2 74/77/1008 2 60 + +# ------------------------------ +# Kerosene use +# ------------------------------ +0 DICE_KEROSENE_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-kerosene-use-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 1 60 +0 DICE_KEROSENE_SOAP - - - - - - SOAP 26/1008/280 1 60 +0 DICE_KEROSENE_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-kerosene-use-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 1 60 +0 DICE_KEROSENE_BCPO - - - - - - BCPO 71/1008 1 60 +0 DICE_KEROSENE_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-kerosene-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 +0 DICE_KEROSENE_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_KEROSENE_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_KEROSENE_POG2 - - - - - - POG2 74/77/1008 1 60 + +# ------------------------------ +# Artisanal oil refining +# ------------------------------ +0 DICE_OILREFINING_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 1 60 +0 DICE_OILREFINING_SOAP - - - - - - SOAP 26/1008/280 1 60 +0 DICE_OILREFINING_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008 1 60 +0 DICE_OILREFINING_SO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc SO2 2013/1/1/0 C xy g/m2/yr SO2 31/78/1008 1 60 +0 DICE_OILREFINING_SO4 - - - - - - SO4 31/63/1008 1 60 +0 DICE_OILREFINING_pFe - - - - - - pFe 31/78/66/1008 1 60 +0 DICE_OILREFINING_ALK4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc ALK4 2013/1/1/0 C xy g/m2/yr ALK4 26/1008 1 60 +0 DICE_OILREFINING_ACET $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc ACET 2013/1/1/0 C xy g/m2/yr ACET 26/1008 1 60 +0 DICE_OILREFINING_MEK $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc MEK 2013/1/1/0 C xy g/m2/yr MEK 26/1008 1 60 +0 DICE_OILREFINING_ALD2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc ALD2 2013/1/1/0 C xy g/m2/yr ALD2 26/1008 1 60 +0 DICE_OILREFINING_RCHO $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc RCHO 2013/1/1/0 C xy g/m2/yr RCHO 26/1008 1 60 +0 DICE_OILREFINING_C3H8 $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc C3H8 2013/1/1/0 C xy g/m2/yr C3H8 26/1008 1 60 +0 DICE_OILREFINING_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008 1 60 +0 DICE_OILREFINING_C2H6 $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc C2H6 2013/1/1/0 C xy g/m2/yr C2H6 26/1008 1 60 +0 DICE_OILREFINING_BENZ $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc BENZ 2013/1/1/0 C xy g/m2/yr BENZ 26/1008 1 60 +0 DICE_OILREFINING_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008 1 60 +0 DICE_OILREFINING_XYLE $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc XYLE 2013/1/1/0 C xy g/m2/yr XYLE 26/1008 1 60 +0 DICE_OILREFINING_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 1 60 +0 DICE_OILREFINING_BCPO - - - - - - BCPO 71/1008 1 60 +0 DICE_OILREFINING_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-adhoc-oil-refining-2006-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 1 60 +0 DICE_OILREFINING_OCPO - - - - - - OCPO 73/1008 1 60 +0 DICE_OILREFINING_POG1 - - - - - - POG1 74/76/1008 1 60 +0 DICE_OILREFINING_POG2 - - - - - - POG2 74/77/1008 1 60 + +# -------------------------- +# Household fuelwood use +# -------------------------- +0 DICE_HOUSEFUELWOOD_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_SOAP - - - - - - SOAP 26/1008/280 2 60 +0 DICE_HOUSEFUELWOOD_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008 2 60 +0 DICE_HOUSEFUELWOOD_NO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc NO2 2013/1/1/0 C xy g/m2/yr NO2 25/30/1008 2 60 +0 DICE_HOUSEFUELWOOD_SO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc SO2 2013/1/1/0 C xy g/m2/yr SO2 31/78/1008 2 60 +0 DICE_HOUSEFUELWOOD_SO4 - - - - - - SO4 31/63/1008 2 60 +0 DICE_HOUSEFUELWOOD_pFe - - - - - - pFe 31/78/66/1008 2 60 +0 DICE_HOUSEFUELWOOD_NH3 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc NH3 2013/1/1/0 C xy g/m2/yr NH3 1008 2 60 +0 DICE_HOUSEFUELWOOD_ALK4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc ALK4 2013/1/1/0 C xy g/m2/yr ALK4 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_ISOP $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc ISOP 2013/1/1/0 C xy g/m2/yr ISOP 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_MEK $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc MEK 2013/1/1/0 C xy g/m2/yr MEK 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_ALD2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc ALD2 2013/1/1/0 C xy g/m2/yr ALD2 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_MVK $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc MVK 2013/1/1/0 C xy g/m2/yr MVK 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_PRPE $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc PRPE 2013/1/1/0 C xy g/m2/yr PRPE 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_C2H6 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc C2H6 2013/1/1/0 C xy g/m2/yr C2H6 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_HAC $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc HAC 2013/1/1/0 C xy g/m2/yr HAC 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_GLYC $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc GLYC 2013/1/1/0 C xy g/m2/yr GLYC 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_MOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc MOH 2013/1/1/0 C xy g/m2/yr MOH 26/1008 2 60 +#0 DICE_HOUSEFUELWOOD_MGLY $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc MGLY 2013/1/1/0 C xy g/m2/yr MGLY 26/1008 2 60 +#0 DICE_HOUSEFUELWOOD_APIN $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc APIN 2013/1/1/0 C xy g/m2/yr APIN 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_C2H2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc C2H2 2013/1/1/0 C xy g/m2/yr C2H2 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_C2H4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc C2H4 2013/1/1/0 C xy g/m2/yr C2H4 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_BENZ $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc BENZ 2013/1/1/0 C xy g/m2/yr BENZ 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_XYLE $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc XYLE 2013/1/1/0 C xy g/m2/yr XYLE 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_HCOOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc HCOOH 2013/1/1/0 C xy g/m2/yr HCOOH 26/1008 2 60 +0 DICE_HOUSEFUELWOOD_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 2 60 +0 DICE_HOUSEFUELWOOD_BCPO - - - - - - BCPO 71/1008 2 60 +0 DICE_HOUSEFUELWOOD_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-household-fuelwood-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 2 60 +0 DICE_HOUSEFUELWOOD_OCPO - - - - - - OCPO 73/1008 2 60 +0 DICE_HOUSEFUELWOOD_POG1 - - - - - - POG1 74/76/1008 2 60 +0 DICE_HOUSEFUELWOOD_POG2 - - - - - - POG2 74/77/1008 2 60 + +# --------------------------------- +# Commercial (other) fuelwood use +# --------------------------------- +0 DICE_OTHERFUELWOOD_CO $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc CO 2013/1/1/0 C xy g/m2/yr CO 26/1008 2 60 +0 DICE_OTHERFUELWOOD_SOAP - - - - - - SOAP 26/1008/280 2 60 +0 DICE_OTHERFUELWOOD_NO $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc NO 2013/1/1/0 C xy g/m2/yr NO 25/30/1008 2 60 +0 DICE_OTHERFUELWOOD_NO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc NO2 2013/1/1/0 C xy g/m2/yr NO2 25/30/1008 2 60 +0 DICE_OTHERFUELWOOD_SO2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc SO2 2013/1/1/0 C xy g/m2/yr SO2 31/78/1008 2 60 +0 DICE_OTHERFUELWOOD_SO4 - - - - - - SO4 31/63/1008 2 60 +0 DICE_OTHERFUELWOOD_pFe - - - - - - pFe 31/78/66/1008 2 60 +0 DICE_OTHERFUELWOOD_NH3 $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc NH3 2013/1/1/0 C xy g/m2/yr NH3 1008 2 60 +0 DICE_OTHERFUELWOOD_ALK4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc ALK4 2013/1/1/0 C xy g/m2/yr ALK4 26/1008 2 60 +0 DICE_OTHERFUELWOOD_ISOP $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc ISOP 2013/1/1/0 C xy g/m2/yr ISOP 26/1008 2 60 +0 DICE_OTHERFUELWOOD_MEK $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc MEK 2013/1/1/0 C xy g/m2/yr MEK 26/1008 2 60 +0 DICE_OTHERFUELWOOD_ALD2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc ALD2 2013/1/1/0 C xy g/m2/yr ALD2 26/1008 2 60 +0 DICE_OTHERFUELWOOD_MVK $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc MVK 2013/1/1/0 C xy g/m2/yr MVK 26/1008 2 60 +0 DICE_OTHERFUELWOOD_PRPE $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc PRPE 2013/1/1/0 C xy g/m2/yr PRPE 26/1008 2 60 +0 DICE_OTHERFUELWOOD_CH2O $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc CH2O 2013/1/1/0 C xy g/m2/yr CH2O 26/1008 2 60 +0 DICE_OTHERFUELWOOD_C2H6 $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc C2H6 2013/1/1/0 C xy g/m2/yr C2H6 26/1008 2 60 +0 DICE_OTHERFUELWOOD_HAC $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc HAC 2013/1/1/0 C xy g/m2/yr HAC 26/1008 2 60 +0 DICE_OTHERFUELWOOD_GLYC $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc GLYC 2013/1/1/0 C xy g/m2/yr GLYC 26/1008 2 60 +0 DICE_OTHERFUELWOOD_MOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc MOH 2013/1/1/0 C xy g/m2/yr MOH 26/1008 2 60 +#0 DICE_OTHERFUELWOOD_MGLY $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc MGLY 2013/1/1/0 C xy g/m2/yr MGLY 26/1008 2 60 +#0 DICE_OTHERFUELWOOD_APIN $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc APIN 2013/1/1/0 C xy g/m2/yr APIN 26/1008 2 60 +0 DICE_OTHERFUELWOOD_C2H2 $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc C2H2 2013/1/1/0 C xy g/m2/yr C2H2 26/1008 2 60 +0 DICE_OTHERFUELWOOD_C2H4 $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc C2H4 2013/1/1/0 C xy g/m2/yr C2H4 26/1008 2 60 +0 DICE_OTHERFUELWOOD_BENZ $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc BENZ 2013/1/1/0 C xy g/m2/yr BENZ 26/1008 2 60 +0 DICE_OTHERFUELWOOD_TOLU $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc TOLU 2013/1/1/0 C xy g/m2/yr TOLU 26/1008 2 60 +0 DICE_OTHERFUELWOOD_XYLE $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc XYLE 2013/1/1/0 C xy g/m2/yr XYLE 26/1008 2 60 +0 DICE_OTHERFUELWOOD_HCOOH $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc HCOOH 2013/1/1/0 C xy g/m2/yr HCOOH 26/1008 2 60 +0 DICE_OTHERFUELWOOD_BCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc BC 2013/1/1/0 C xy g/m2/yr BCPI 70/1008 2 60 +0 DICE_OTHERFUELWOOD_BCPO - - - - - - BCPO 71/1008 2 60 +0 DICE_OTHERFUELWOOD_OCPI $ROOT/DICE_Africa/v2016-10/DICE-Africa-other-fuelwood-use-2013-v01-4Oct2016.nc OC 2013/1/1/0 C xy g/m2/yr OCPI 72/1008 2 60 +0 DICE_OTHERFUELWOOD_OCPO - - - - - - OCPO 73/1008 2 60 +0 DICE_OTHERFUELWOOD_POG1 - - - - - - POG1 74/76/1008 2 60 +0 DICE_OTHERFUELWOOD_POG2 - - - - - - POG2 74/77/1008 2 60 + +# --------------------------------------------------- +# Efficient Combustion Emissions from EDGAR +# This makes up for sources that DICE-Africa lacks +# --------------------------------------------------- +0 AF_EDGAR_BCPI_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.POW.0.1x0.1.nc emi_bc 1970-2010/1/1/0 RF xy kg/m2/s BCPI 1201/1008/70 1 60 +0 AF_EDGAR_BCPO_POW - - - - - - BCPO 1201/1008/71 1 60 +0 AF_EDGAR_BCPI_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.ENG.0.1x0.1.nc emi_bc 1970-2010/1/1/0 RF xy kg/m2/s BCPI 1202/1008/70 1 60 +0 AF_EDGAR_BCPO_ENG - - - - - - BCPO 1202/1008/71 1 60 +0 AF_EDGAR_BCPI_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.IND.0.1x0.1.nc emi_bc 1970-2010/1/1/0 RF xy kg/m2/s BCPI 1203/1008/70 1 60 +0 AF_EDGAR_BCPO_IND - - - - - - BCPO 1203/1008/71 1 60 +0 AF_EDGAR_BCPI_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.TNG.0.1x0.1.nc emi_bc 1970-2010/1/1/0 RF xy kg/m2/s BCPI 1205/1008/70 1 60 +0 AF_EDGAR_BCPO_TNG - - - - - - BCPO 1205/1008/71 1 60 +0 AF_EDGAR_BCPI_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.SWD.0.1x0.1.nc emi_bc 1970-2010/1/1/0 RF xy kg/m2/s BCPI 1211/1008/70 1 60 +0 AF_EDGAR_BCPO_SWD - - - - - - BCPO 1211/1008/71 1 60 + +0 AF_EDGAR_CO_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc emi_co 1970-2010/1/1/0 RF xy kg/m2/s CO 1201/26/52/1008 1 60 +0 AF_EDGAR_SOAP_POW - - - - - - SOAP 1201/26/52/1008/280 1 60 +0 AF_EDGAR_CO_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc emi_co 1970-2010/1/1/0 RF xy kg/m2/s CO 1202/26/52/1008 1 60 +0 AF_EDGAR_SOAP_ENG - - - - - - SOAP 1202/26/52/1008/280 1 60 +0 AF_EDGAR_CO_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc emi_co 1970-2010/1/1/0 RF xy kg/m2/s CO 1203/26/52/1008 1 60 +0 AF_EDGAR_SOAP_IND - - - - - - SOAP 1203/26/52/1008/280 1 60 +0 AF_EDGAR_CO_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc emi_co 1970-2010/1/1/0 RF xy kg/m2/s CO 1205/26/52/1008 1 60 +0 AF_EDGAR_SOAP_TNG - - - - - - SOAP 1205/26/52/1008/280 1 60 +0 AF_EDGAR_CO_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc emi_co 1970-2010/1/1/0 RF xy kg/m2/s CO 1207/26/52/1008 1 60 +0 AF_EDGAR_SOAP_PPA - - - - - - SOAP 1207/26/52/1008/280 1 60 +0 AF_EDGAR_CO_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc emi_co 1970-2010/1/1/0 RF xy kg/m2/s CO 1211/26/52/1008 1 60 +0 AF_EDGAR_SOAP_SWD - - - - - - SOAP 1211/26/52/1008/280 1 60 + +0 AF_EDGAR_NO_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.POW.0.1x0.1.nc emi_nox 1970-2010/1/1/0 RF xy kg/m2/s NO 1201/25/115/1008 1 60 +0 AF_EDGAR_NO_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.ENG.0.1x0.1.nc emi_nox 1970-2010/1/1/0 RF xy kg/m2/s NO 1202/25/115/1008 1 60 +0 AF_EDGAR_NO_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.IND.0.1x0.1.nc emi_nox 1970-2010/1/1/0 RF xy kg/m2/s NO 1203/25/115/1008 1 60 +0 AF_EDGAR_NO_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.TNG.0.1x0.1.nc emi_nox 1970-2010/1/1/0 RF xy kg/m2/s NO 1205/25/115/1008 1 60 +0 AF_EDGAR_NO_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.PPA.0.1x0.1.nc emi_nox 1970-2010/1/1/0 RF xy kg/m2/s NO 1207/25/115/1008 1 60 +0 AF_EDGAR_NO_AGR $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.AGR.0.1x0.1.nc emi_nox 1970-2010/1/1/0 RF xy kg/m2/s NO 1208/25/115/1008 1 60 +0 AF_EDGAR_NO_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.SWD.0.1x0.1.nc emi_nox 1970-2010/1/1/0 RF xy kg/m2/s NO 1211/25/115/1008 1 60 + +0 AF_EDGAR_NH3_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.POW.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 RF xy kg/m2/s NH3 1201/1008 1 60 +0 AF_EDGAR_NH3_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.ENG.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 RF xy kg/m2/s NH3 1202/1008 1 60 +0 AF_EDGAR_NH3_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.IND.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 RF xy kg/m2/s NH3 1203/1008 1 60 +0 AF_EDGAR_NH3_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.TNG.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 RF xy kg/m2/s NH3 1205/1008 1 60 +0 AF_EDGAR_NH3_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.PPA.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 RF xy kg/m2/s NH3 1207/1008 1 60 +0 AF_EDGAR_NH3_AGR $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.AGR.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 RF xy kg/m2/s NH3 1208/1008 1 60 +0 AF_EDGAR_NH3_SOL $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.SOL.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 RF xy kg/m2/s NH3 1210/1008 1 60 +0 AF_EDGAR_NH3_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.SWD.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 RF xy kg/m2/s NH3 1211/1008 1 60 + +0 AF_EDGAR_OCPI_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.POW.0.1x0.1.nc emi_oc 1970-2010/1/1/0 RF xy kg/m2/s OCPI 1201/1008/72 1 60 +0 AF_EDGAR_OCPO_POW - - - - - - OCPO 1201/1008/73 1 60 +0 AF_EDGAR_POG1_POW - - - - - - POG1 1201/1008/74/76 1 60 +0 AF_EDGAR_POG2_POW - - - - - - POG2 1201/1008/74/77 1 60 +0 AF_EDGAR_OCPI_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.ENG.0.1x0.1.nc emi_oc 1970-2010/1/1/0 RF xy kg/m2/s OCPI 1202/1008/72 1 60 +0 AF_EDGAR_OCPO_ENG - - - - - - OCPO 1202/1008/73 1 60 +0 AF_EDGAR_POG1_ENG - - - - - - POG1 1202/1008/74/76 1 60 +0 AF_EDGAR_POG2_ENG - - - - - - POG2 1202/1008/74/77 1 60 +0 AF_EDGAR_OCPI_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.IND.0.1x0.1.nc emi_oc 1970-2010/1/1/0 RF xy kg/m2/s OCPI 1203/1008/72 1 60 +0 AF_EDGAR_OCPO_IND - - - - - - OCPO 1203/1008/73 1 60 +0 AF_EDGAR_POG1_IND - - - - - - POG1 1203/1008/74/76 1 60 +0 AF_EDGAR_POG2_IND - - - - - - POG2 1203/1008/74/77 1 60 +0 AF_EDGAR_OCPI_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.TNG.0.1x0.1.nc emi_oc 1970-2010/1/1/0 RF xy kg/m2/s OCPI 1205/1008/72 1 60 +0 AF_EDGAR_OCPO_TNG - - - - - - OCPO 1205/1008/73 1 60 +0 AF_EDGAR_POG1_TNG - - - - - - POG1 1205/1008/74/76 1 60 +0 AF_EDGAR_POG2_TNG - - - - - - POG2 1205/1008/74/77 1 60 +0 AF_EDGAR_OCPI_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.SWD.0.1x0.1.nc emi_oc 1970-2010/1/1/0 RF xy kg/m2/s OCPI 1211/1008/72 1 60 +0 AF_EDGAR_OCPO_SWD - - - - - - OCPO 1211/1008/73 1 60 +0 AF_EDGAR_POG1_SWD - - - - - - POG1 1211/1008/74/76 1 60 +0 AF_EDGAR_POG2_SWD - - - - - - POG2 1211/1008/74/77 1 60 + +0 AF_EDGAR_SO2_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.POW.0.1x0.1.nc emi_so2 1970-2010/1/1/0 RF xy kg/m2/s SO2 1201/1008 1 60 +0 AF_EDGAR_SO4_POW - - - - - - SO4 1201/1008/63 1 60 +0 AF_EDGAR_pFe_POW - - - - - - pFe 1201/1008/66 1 60 +0 AF_EDGAR_SO2_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.ENG.0.1x0.1.nc emi_so2 1970-2010/1/1/0 RF xy kg/m2/s SO2 1202/1008 1 60 +0 AF_EDGAR_SO4_ENG - - - - - - SO4 1202/1008/63 1 60 +0 AF_EDGAR_pFe_ENG - - - - - - pFe 1202/1008/66 1 60 +0 AF_EDGAR_SO2_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.IND.0.1x0.1.nc emi_so2 1970-2010/1/1/0 RF xy kg/m2/s SO2 1203/1008 1 60 +0 AF_EDGAR_SO4_IND - - - - - - SO4 1203/1008/63 1 60 +0 AF_EDGAR_pFe_IND - - - - - - pFe 1203/1008/66 1 60 +0 AF_EDGAR_SO2_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.TNG.0.1x0.1.nc emi_so2 1970-2010/1/1/0 RF xy kg/m2/s SO2 1205/1008 1 60 +0 AF_EDGAR_SO4_TNG - - - - - - SO4 1205/1008/63 1 60 +0 AF_EDGAR_pFe_TNG - - - - - - pFe 1205/1008/66 1 60 +0 AF_EDGAR_SO2_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.PPA.0.1x0.1.nc emi_so2 1970-2010/1/1/0 RF xy kg/m2/s SO2 1207/1008 1 60 +0 AF_EDGAR_SO4_PPA - - - - - - SO4 1207/1008/63 1 60 +0 AF_EDGAR_pFe_PPA - - - - - - pFe 1207/1008/66 1 60 +0 AF_EDGAR_SO2_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.SWD.0.1x0.1.nc emi_so2 1970-2010/1/1/0 RF xy kg/m2/s SO2 1211/1008 1 60 +0 AF_EDGAR_SO4_SWD - - - - - - SO4 1211/1008/63 1 60 +0 AF_EDGAR_pFe_SWD - - - - - - pFe 1211/1008/66 1 60 +)))DICE_Africa + +#============================================================================== +# --- CEDS v2 --- +# +# %%% This is the default global inventory. You may select either CEDS, +# EDGAR, HTAPv3 or CMIP6_SFC_LAND_ANTHRO for the global base emissions %%% +#============================================================================== +(((CEDSv2 +0 CEDS_NO_AGR $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_agr 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_ENE $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ene 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_IND $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_ind 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_TRA $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_tra 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_RCO $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_rco 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_SLV $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_slv 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CEDS_NO_WST $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_wst 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 1 5 + +0 CEDS_CO_AGR $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_AGR - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_ENE $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_ENE - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_IND $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_IND - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_TRA $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_TRA - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_RCO $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_RCO - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_SLV $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_SLV - - - - - - SOAP 26/280 1 5 +0 CEDS_CO_WST $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CEDS_SOAP_WST - - - - - - SOAP 26/280 1 5 + +0 CEDS_SO2_AGR $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_AGR - - - - - - SO4 63 1 5 +0 CEDS_pFe_AGR - - - - - - pFe 66 1 5 +0 CEDS_SO2_ENE $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_ENE - - - - - - SO4 63 1 5 +0 CEDS_pFe_ENE - - - - - - pFe 66 1 5 +0 CEDS_SO2_IND $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_IND - - - - - - SO4 63 1 5 +0 CEDS_pFe_IND - - - - - - pFe 66 1 5 +0 CEDS_SO2_TRA $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_TRA - - - - - - SO4 63 1 5 +0 CEDS_pFe_TRA - - - - - - pFe 66 1 5 +0 CEDS_SO2_RCO $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_RCO - - - - - - SO4 63 1 5 +0 CEDS_pFe_RCO - - - - - - pFe 66 1 5 +0 CEDS_SO2_SLV $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_SLV - - - - - - SO4 63 1 5 +0 CEDS_pFe_SLV - - - - - - pFe 66 1 5 +0 CEDS_SO2_WST $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CEDS_SO4_WST - - - - - - SO4 63 1 5 +0 CEDS_pFe_WST - - - - - - pFe 66 1 5 + +0 CEDS_NH3_AGR $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_agr 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_ENE $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ene 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_IND $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_ind 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_TRA $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_tra 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_RCO $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_rco 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_SLV $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_slv 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CEDS_NH3_WST $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_wst 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 1 5 + +0 CEDS_BCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_agr 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_AGR - - - - - - BCPO 71 1 5 +0 CEDS_BCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ene 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_ENE - - - - - - BCPO 71 1 5 +0 CEDS_BCPI_IND $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_ind 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_IND - - - - - - BCPO 71 1 5 +0 CEDS_BCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_tra 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_TRA - - - - - - BCPO 71 1 5 +0 CEDS_BCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_rco 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_RCO - - - - - - BCPO 71 1 5 +0 CEDS_BCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_slv 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_SLV - - - - - - BCPO 71 1 5 +0 CEDS_BCPI_WST $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_wst 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CEDS_BCPO_WST - - - - - - BCPO 71 1 5 + +0 CEDS_OCPI_AGR $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_agr 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_AGR - - - - - - OCPO 73 1 5 +0 CEDS_POG1_AGR - - - - - - POG1 74/76 1 5 +0 CEDS_POG2_AGR - - - - - - POG2 74/77 1 5 +0 CEDS_OCPI_ENE $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ene 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_ENE - - - - - - OCPO 73 1 5 +0 CEDS_POG1_ENE - - - - - - POG1 74/76 1 5 +0 CEDS_POG2_ENE - - - - - - POG2 74/77 1 5 +0 CEDS_OCPI_IND $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_ind 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_IND - - - - - - OCPO 73 1 5 +0 CEDS_POG1_IND - - - - - - POG1 74/76 1 5 +0 CEDS_POG2_IND - - - - - - POG2 74/77 1 5 +0 CEDS_OCPI_TRA $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_tra 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_TRA - - - - - - OCPO 73 1 5 +0 CEDS_POG1_TRA - - - - - - POG1 74/76 1 5 +0 CEDS_POG2_TRA - - - - - - POG2 74/77 1 5 +0 CEDS_OCPI_RCO $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_rco 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_RCO - - - - - - OCPO 73 1 5 +0 CEDS_POG1_RCO - - - - - - POG1 74/76 1 5 +0 CEDS_POG2_RCO - - - - - - POG2 74/77 1 5 +0 CEDS_OCPI_SLV $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_slv 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_SLV - - - - - - OCPO 73 1 5 +0 CEDS_POG1_SLV - - - - - - POG1 74/76 1 5 +0 CEDS_POG2_SLV - - - - - - POG2 74/77 1 5 +0 CEDS_OCPI_WST $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_wst 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CEDS_OCPO_WST - - - - - - OCPO 73 1 5 +0 CEDS_POG1_WST - - - - - - POG1 74/76 1 5 +0 CEDS_POG2_WST - - - - - - POG2 74/77 1 5 + +# Comment out CO2 for fullchem simulations: CO2 not advected +#0 CEDS_CO2_AGR $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_agr 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_ENE $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ene 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_IND $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_ind 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_TRA $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_tra 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_RCO $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_rco 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_SLV $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_slv 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CEDS_CO2_WST $ROOT/CEDS/v2021-06/$YYYY/CO2-em-anthro_CMIP_CEDS_$YYYY.nc CO2_wst 1750-2019/1-12/1/0 C xy kg/m2/s CO2 - 1 5 + +# Comment out CH4 for fullchem simulations: do not use CH4 emissions +# CEDS CH4 emissions are only available for 1970-2014 +#0 CEDS_CH4_AGR $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_ENE $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_IND $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_TRA $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_RCO $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_SLV $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CEDS_CH4_WST $ROOT/CEDS/v2021-06/$YYYY/CH4-em-anthro_CMIP_CEDS_$YYYY.nc CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 + +# NOTE: EOH files in CEDS/v2021-06 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here +0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_AGR - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_AGR - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_ENE - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_ENE - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_IND - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_IND - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_TRA - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_TRA - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_RCO - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_RCO - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_SLV - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_SLV - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_WST - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_WST - - - - - - ROH 26/92 1 5 + +0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 + +0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 + +0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 + +0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 + +0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 + +0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 + +0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 + +0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 + +0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 + +0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 + +0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 + +0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +)))CEDSv2 + +#============================================================================== +# --- CEDS GBD-MAPS --- +# +# NOTES: +# -- Reference: McDuffie et al. (2020, Earth System Science Data) +# -- Anthropogenic source sectors: agriculture, energy, industry, road transport, +# non-road/off-road transport, residential, commercial, other energy use, +# solvents, waste, international shipping +# -- Fuel categories: the combustion of total coal, solid biofuel, liquid oil +# and gas, and all remaining sources +# **To use, enable CEDS_byFuelType and CEDS_SHIP_byFuelType** +#============================================================================== +(((CEDS_GBDMAPS +>>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS.rc +)))CEDS_GBDMAPS +(((CEDS_GBDMAPS_byFuelType +(((.not.CEDS_GBDMAPS.and..not.CEDSv2 +>>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS_byFuelType.rc +))).not.CEDS_GBDMAPS.and..not.CEDSv2 +)))CEDS_GBDMAPS_byFuelType + +#============================================================================== +# --- CMIP6_SFC_LAND_ANTHRO --- +# CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with +# the CMIP6 simulation experimental design. +# +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS +# +#============================================================================== +(((CMIP6_SFC_LAND_ANTHRO +0 CMIP6_NO_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_agr 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_ene 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_ind 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_tra 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_rco 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_slv 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 +0 CMIP6_NO_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_wst 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 1 5 + +0 CMIP6_CO_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_AGR - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_ENE - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_IND - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_TRA - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_RCO - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_SLV - - - - - - SOAP 26/280 1 5 +0 CMIP6_CO_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 1 5 +0 CMIP6_SOAP_WST - - - - - - SOAP 26/280 1 5 + +0 CMIP6_SO2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_AGR - - - - - - SO4 63 1 5 +0 CMIP6_pFe_AGR - - - - - - pFe 66 1 5 +0 CMIP6_SO2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_ENE - - - - - - SO4 63 1 5 +0 CMIP6_pFe_ENE - - - - - - pFe 66 1 5 +0 CMIP6_SO2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_IND - - - - - - SO4 63 1 5 +0 CMIP6_pFe_IND - - - - - - pFe 66 1 5 +0 CMIP6_SO2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_TRA - - - - - - SO4 63 1 5 +0 CMIP6_pFe_TRA - - - - - - pFe 66 1 5 +0 CMIP6_SO2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_RCO - - - - - - SO4 63 1 5 +0 CMIP6_pFe_RCO - - - - - - pFe 66 1 5 +0 CMIP6_SO2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_SLV - - - - - - SO4 63 1 5 +0 CMIP6_pFe_SLV - - - - - - pFe 66 1 5 +0 CMIP6_SO2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 1 5 +0 CMIP6_SO4_WST - - - - - - SO4 63 1 5 +0 CMIP6_pFe_WST - - - - - - pFe 66 1 5 + +0 CMIP6_NH3_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_agr 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_ene 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_ind 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_tra 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_rco 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_slv 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 +0 CMIP6_NH3_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_wst 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 1 5 + +0 CMIP6_BCPI_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_agr 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_AGR - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_ene 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_ENE - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_ind 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_IND - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_tra 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_TRA - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_rco 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_RCO - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_slv 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_SLV - - - - - - BCPO 71 1 5 +0 CMIP6_BCPI_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_wst 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 1 5 +0 CMIP6_BCPO_WST - - - - - - BCPO 71 1 5 + +0 CMIP6_OCPI_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_agr 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_AGR - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_AGR - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_AGR - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_ene 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_ENE - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_ENE - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_ENE - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_ind 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_IND - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_IND - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_IND - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_tra 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_TRA - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_TRA - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_TRA - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_rco 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_RCO - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_RCO - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_RCO - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_slv 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_SLV - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_SLV - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_SLV - - - - - - POG2 74/77 1 5 +0 CMIP6_OCPI_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_wst 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 1 5 +0 CMIP6_OCPO_WST - - - - - - OCPO 73 1 5 +0 CMIP6_POG1_WST - - - - - - POG1 74/76 1 5 +0 CMIP6_POG2_WST - - - - - - POG2 74/77 1 5 + +# Comment out CO2 for fullchem simulations: CO2 not advected +#0 CMIP6_CO2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_agr 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_ene 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_ind 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_tra 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_rco 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_slv 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 +#0 CMIP6_CO2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO2_wst 1750-2100/1-12/1/0 C xy kg/m2/s CO2 - 1 5 + +# Comment out CH4 for fullchem simulations: do not use CH4 emissions +# CMIP6 CH4 emissions are only available for 1970-2014 +#0 CMIP6_CH4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_agr 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ene 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_ind 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_tra 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_rco 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_slv 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 +#0 CMIP6_CH4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH4_wst 1970-2014/1-12/1/0 C xy kg/m2/s CH4 - 1 5 + +# NOTE: EOH files in CMIP6/v2021-01 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here +0 CMIP6_MOH_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_AGR - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_AGR - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_ENE - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_ENE - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_IND - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_IND - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_TRA - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_TRA - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_RCO - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_RCO - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_SLV - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_SLV - - - - - - ROH 26/92 1 5 +0 CMIP6_MOH_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CMIP6_EOH_WST - - - - - - EOH 26/91 1 5 +0 CMIP6_ROH_WST - - - - - - ROH 26/92 1 5 + +0 CMIP6_C2H6_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CMIP6_C2H6_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 + +0 CMIP6_C3H8_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_agr 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_ene 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_ind 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_tra 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_rco 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_slv 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CMIP6_C3H8_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_wst 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 + +0 CMIP6_C4H10_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C4H10_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CMIP6_C5H12_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C5H12_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CMIP6_C6H14_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CMIP6_C6H14_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CMIP6_C2H4_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CMIP6_C2H4_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 + +0 CMIP6_PRPE_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_agr 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_ene 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_ind 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_tra 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_rco 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_slv 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CMIP6_PRPE_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_wst 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 + +0 CMIP6_C2H2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_agr 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_ene 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_ind 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_tra 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_rco 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_slv 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CMIP6_C2H2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_wst 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 + +0 CMIP6_BENZ_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_agr 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_ene 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_ind 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_tra 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_rco 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_slv 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CMIP6_BENZ_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_wst 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 + +0 CMIP6_TOLU_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_agr 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_ene 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_ind 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_tra 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_rco 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_slv 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CMIP6_TOLU_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_wst 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 + +0 CMIP6_XYLE_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_agr 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_ene 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_ind 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_tra 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_rco 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_slv 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CMIP6_XYLE_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_wst 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 + +0 CMIP6_CH2O_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_agr 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_ene 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_ind 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_tra 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_rco 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_slv 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CMIP6_CH2O_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_wst 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 + +0 CMIP6_ALD2_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_agr 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_ene 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_ind 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_tra 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_rco 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_slv 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CMIP6_ALD2_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_wst 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 + +0 CMIP6_MEK_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_agr 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_ene 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_ind 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_tra 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_rco 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_slv 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CMIP6_MEK_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_wst 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 1 5 + +0 CMIP6_HCOOH_AGR $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_agr 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_ENE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_ene 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_IND $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_ind 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_TRA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_tra 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_RCO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_rco 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_SLV $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_slv 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CMIP6_HCOOH_WST $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_wst 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +)))CMIP6_SFC_LAND_ANTHRO + +#============================================================================== +# CEDS (historical) or Shared Socioeconomic Pathways (future) aircraft +# emissions, consistent with the CMIP6 simulation experimental design +# +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS +# +#============================================================================== +(((CMIP6_AIRCRAFT +0 CMIP6_AIR_NO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NO_air 1750-2100/1-12/1/0 C xyz kg/m2/s NO - 20 1 +0 CMIP6_AIR_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 CO_air 1750-2100/1-12/1/0 C xyz kg/m2/s CO - 20 1 +0 CMIP6_AIR_SOAP - - - - - - SOAP 280 20 1 +0 CMIP6_AIR_SO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 SO2_air 1750-2100/1-12/1/0 C xyz kg/m2/s SO2 - 20 1 +0 CMIP6_AIR_SO4 - - - - - - SO4 63 20 1 +0 CMIP6_AIR_pFe - - - - - - pFe 66 20 1 +0 CMIP6_AIR_ACET - - - - - - ACET 601 20 1 +0 CMIP6_AIR_ALD2 - - - - - - ALD2 602 20 1 +0 CMIP6_AIR_ALK4 - - - - - - ALK4 603 20 1 +0 CMIP6_AIR_C2H6 - - - - - - C2H6 604 20 1 +0 CMIP6_AIR_C3H8 - - - - - - C3H8 605 20 1 +0 CMIP6_AIR_CH2O - - - - - - CH2O 606 20 1 +0 CMIP6_AIR_PRPE - - - - - - PRPE 607 20 1 +0 CMIP6_AIR_MACR - - - - - - MACR 608 20 1 +0 CMIP6_AIR_RCHO - - - - - - RCHO 609 20 1 +0 CMIP6_AIR_NH3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 NH3_air 1750-2100/1-12/1/0 C xyz kg/m2/s NH3 - 20 1 +# Assume all BC/OC is BCPI/OCPI +0 CMIP6_AIR_BCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 BC_air 1750-2100/1-12/1/0 C xyz kg/m2/s BCPI - 20 1 +0 CMIP6_AIR_OCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY_AIR.$GCAP2VERTRESL.nc4 OC_air 1750-2100/1-12/1/0 C xyz kg/m2/s OCPI - 20 1 +0 CMIP6_AIR_POG1 - - - - - - POG1 74/76 20 1 +0 CMIP6_AIR_POG2 - - - - - - POG2 74/77 20 1 + +)))CMIP6_AIRCRAFT + +#============================================================================== +# --- EDGAR v4.3 --- +# +# %%% This is an optional inventory. You may select either CEDS, EDGAR, +# or HTAPv3 for the global base emissions %%% +# +# The following emissions are not included in EDGAR and will be added: +# * Wiedinmyer et al. (2014) global trash emissions +# * CEDS VOC emissions +# +# Aviation and shipping emissions from EDGAR are not included here. +# We also do not include the following sources: +# - Soil emissions of NOx (SOL). These emissions are calculated via the +# SoilNOx extension. +# - Open biomass burning (AWB). These emissions are obtained from +# GFED, QFED, FINN, or GFAS. +#============================================================================== +(((EDGARv43 +0 EDGAR_BCPI_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.POW.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1201/70 1 2 +0 EDGAR_BCPO_POW - - - - - - BCPO 1201/71 1 2 +0 EDGAR_BCPI_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.ENG.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1202/70 1 2 +0 EDGAR_BCPO_ENG - - - - - - BCPO 1202/71 1 2 +0 EDGAR_BCPI_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.IND.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1203/70 1 2 +0 EDGAR_BCPO_IND - - - - - - BCPO 1203/71 1 2 +0 EDGAR_BCPI_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.TRO.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1204/70 1 2 +0 EDGAR_BCPO_TRO - - - - - - BCPO 1204/71 1 2 +0 EDGAR_BCPI_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.TNG.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1205/70 1 2 +0 EDGAR_BCPO_TNG - - - - - - BCPO 1205/71 1 2 +0 EDGAR_BCPI_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.RCO.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1206/70 1 2 +0 EDGAR_BCPO_RCO - - - - - - BCPO 1206/71 1 2 +0 EDGAR_BCPI_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.PPA.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1207/70 1 2 +0 EDGAR_BCPO_PPA - - - - - - BCPO 1207/71 1 2 +#0 EDGAR_BCPI_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.AWB.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1209/70 1 2 +#0 EDGAR_BCPO_AWB - - - - - - BCPO 1209/71 1 2 +0 EDGAR_BCPI_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.SWD.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1211/70 1 2 +0 EDGAR_BCPO_SWD - - - - - - BCPO 1211/71 1 2 +0 EDGAR_BCPI_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.BC.FFF.0.1x0.1.nc emi_bc 1970-2010/1/1/0 C xy kg/m2/s BCPI 1212/70 1 2 +0 EDGAR_BCPO_FFF - - - - - - BCPO 1212/71 1 2 +0 EDGAR_CO_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.POW.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1201/26/52 1 2 +0 EDGAR_SOAP_POW - - - - - - SOAP 1201/26/52/280 1 2 +0 EDGAR_CO_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.ENG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1202/26/52 1 2 +0 EDGAR_SOAP_ENG - - - - - - SOAP 1202/26/52/280 1 2 +0 EDGAR_CO_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.IND.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1203/26/52 1 2 +0 EDGAR_SOAP_IND - - - - - - SOAP 1203/26/52/280 1 2 +0 EDGAR_CO_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TRO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1204/26/52 1 2 +0 EDGAR_SOAP_TRO - - - - - - SOAP 1204/26/52/280 1 2 +0 EDGAR_CO_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.TNG.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1205/26/52 1 2 +0 EDGAR_SOAP_TNG - - - - - - SOAP 1205/26/52/280 1 2 +0 EDGAR_CO_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.RCO.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1206/26/52 1 2 +0 EDGAR_SOAP_RCO - - - - - - SOAP 1206/26/52/280 1 2 +0 EDGAR_CO_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.PPA.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1207/26/52 1 2 +0 EDGAR_SOAP_PPA - - - - - - SOAP 1207/26/52/280 1 2 +#0 EDGAR_CO_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.AWB.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1209/26/52 1 2 +#0 EDGAR_SOAP_AWB - - - - - - SOAP 1209/26/52/280 1 2 +0 EDGAR_CO_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.SWD.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1211/26/52 1 2 +0 EDGAR_SOAP_SWD - - - - - - SOAP 1211/26/52/280 1 2 +0 EDGAR_CO_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.CO.FFF.0.1x0.1.nc emi_co 1970-2010/1/1/0 C xy kg/m2/s CO 1212/26/52 1 2 +0 EDGAR_SOAP_FFF - - - - - - SOAP 1212/26/52/280 1 2 +0 EDGAR_NH3_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.POW.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1201 1 2 +0 EDGAR_NH3_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.ENG.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1202 1 2 +0 EDGAR_NH3_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.IND.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1203 1 2 +0 EDGAR_NH3_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.TRO.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1204 1 2 +0 EDGAR_NH3_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.TNG.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1205 1 2 +0 EDGAR_NH3_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.RCO.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1206 1 2 +0 EDGAR_NH3_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.PPA.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1207 1 2 +0 EDGAR_NH3_AGR $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.AGR.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1208 1 2 +#0 EDGAR_NH3_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.AWB.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1209 1 2 +0 EDGAR_NH3_SOL $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.SOL.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1210 1 2 +0 EDGAR_NH3_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.NH3.SWD.0.1x0.1.nc emi_nh3 1970-2010/1/1/0 C xy kg/m2/s NH3 1211 1 2 +0 EDGAR_NO_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.POW.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1201/25/115 1 2 +0 EDGAR_NO_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.ENG.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1202/25/115 1 2 +0 EDGAR_NO_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.IND.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1203/25/115 1 2 +0 EDGAR_NO_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.TRO.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1204/25/115 1 2 +0 EDGAR_NO_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.TNG.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1205/25/115 1 2 +0 EDGAR_NO_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.RCO.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1206/25/115 1 2 +0 EDGAR_NO_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.PPA.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1207/25/115 1 2 +0 EDGAR_NO_AGR $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.AGR.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1208/25/115 1 2 +#0 EDGAR_NO_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.AWB.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1209/25/115 1 2 +#0 EDGAR_NO_SOL $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.SOL.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1210/25/115 1 2 +0 EDGAR_NO_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.SWD.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1211/25/115 1 2 +0 EDGAR_NO_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.NOx.FFF.0.1x0.1.nc emi_nox 1970-2010/1/1/0 C xy kg/m2/s NO 1212/25/115 1 2 +0 EDGAR_OCPI_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.POW.0.1x0.1.nc emi_oc 1970-2010/1/1/0 C xy kg/m2/s OCPI 1201/72 1 2 +0 EDGAR_OCPO_POW - - - - - - OCPO 1201/73 1 2 +0 EDGAR_POG1_POW - - - - - - POG1 1201/74/76 1 2 +0 EDGAR_POG2_POW - - - - - - POG2 1201/74/77 1 2 +0 EDGAR_OCPI_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.ENG.0.1x0.1.nc emi_oc 1970-2010/1/1/0 C xy kg/m2/s OCPI 1202/72 1 2 +0 EDGAR_OCPO_ENG - - - - - - OCPO 1202/73 1 2 +0 EDGAR_POG1_ENG - - - - - - POG1 1202/74/76 1 2 +0 EDGAR_POG2_ENG - - - - - - POG2 1202/74/77 1 2 +0 EDGAR_OCPI_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.IND.0.1x0.1.nc emi_oc 1970-2010/1/1/0 C xy kg/m2/s OCPI 1203/72 1 2 +0 EDGAR_OCPO_IND - - - - - - OCPO 1203/73 1 2 +0 EDGAR_POG1_IND - - - - - - POG1 1203/74/76 1 2 +0 EDGAR_POG2_IND - - - - - - POG2 1203/74/77 1 2 +0 EDGAR_OCPI_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.TRO.0.1x0.1.nc emi_oc 1970-2010/1/1/0 C xy kg/m2/s OCPI 1204/72 1 2 +0 EDGAR_OCPO_TRO - - - - - - OCPO 1204/73 1 2 +0 EDGAR_POG1_TRO - - - - - - POG1 1204/74/76 1 2 +0 EDGAR_POG2_TRO - - - - - - POG2 1204/74/77 1 2 +0 EDGAR_OCPI_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.TNG.0.1x0.1.nc emi_oc 1970-2010/1/1/0 C xy kg/m2/s OCPI 1205/72 1 2 +0 EDGAR_OCPO_TNG - - - - - - OCPO 1205/73 1 2 +0 EDGAR_POG1_TNG - - - - - - POG1 1205/74/76 1 2 +0 EDGAR_POG2_TNG - - - - - - POG2 1205/74/77 1 2 +0 EDGAR_OCPI_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.RCO.0.1x0.1.nc emi_oc 1970-2010/1/1/0 C xy kg/m2/s OCPI 1206/72 1 2 +0 EDGAR_OCPO_RCO - - - - - - OCPO 1206/73 1 2 +0 EDGAR_POG1_RCO - - - - - - POG1 1206/74/76 1 2 +0 EDGAR_POG2_RCO - - - - - - POG2 1206/74/77 1 2 +#0 EDGAR_OCPI_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.AWB.0.1x0.1.nc emi_oc 1970-2010/1/1/0 C xy kg/m2/s OCPI 1209/72 1 2 +#0 EDGAR_OCPO_AWB - - - - - - OCPO 1209/73 1 2 +#0 EDGAR_POG1_AWB - - - - - - POG1 1209/74/76 1 2 +#0 EDGAR_POG2_AWB - - - - - - POG2 1209/74/77 1 2 +0 EDGAR_OCPI_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.SWD.0.1x0.1.nc emi_oc 1970-2010/1/1/0 C xy kg/m2/s OCPI 1211/72 1 2 +0 EDGAR_OCPO_SWD - - - - - - OCPO 1211/73 1 2 +0 EDGAR_POG1_SWD - - - - - - POG1 1211/74/76 1 2 +0 EDGAR_POG2_SWD - - - - - - POG2 1211/74/77 1 2 +0 EDGAR_OCPI_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.OC.FFF.0.1x0.1.nc emi_oc 1970-2010/1/1/0 C xy kg/m2/s OCPI 1212/72 1 2 +0 EDGAR_OCPO_FFF - - - - - - OCPO 1212/73 1 2 +0 EDGAR_POG1_FFF - - - - - - POG1 1212/74/76 1 2 +0 EDGAR_POG2_FFF - - - - - - POG2 1212/74/77 1 2 +0 EDGAR_SO2_POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.POW.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1201 1 2 +0 EDGAR_SO4_POW - - - - - - SO4 1201/63 1 2 +0 EDGAR_pFe_POW - - - - - - pFe 1201/66 1 2 +0 EDGAR_SO2_ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.ENG.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1202 1 2 +0 EDGAR_SO4_ENG - - - - - - SO4 1202/63 1 2 +0 EDGAR_pFe_ENG - - - - - - pFe 1202/66 1 2 +0 EDGAR_SO2_IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.IND.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1203 1 2 +0 EDGAR_SO4_IND - - - - - - SO4 1203/63 1 2 +0 EDGAR_pFe_IND - - - - - - pFe 1203/66 1 2 +0 EDGAR_SO2_TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.TRO.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1204 1 2 +0 EDGAR_SO4_TRO - - - - - - SO4 1204/63 1 2 +0 EDGAR_pFe_TRO - - - - - - pFe 1204/66 1 2 +0 EDGAR_SO2_TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.TNG.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1205 1 2 +0 EDGAR_SO4_TNG - - - - - - SO4 1205/63 1 2 +0 EDGAR_pFe_TNG - - - - - - pFe 1205/66 1 2 +0 EDGAR_SO2_RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.RCO.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1206 1 2 +0 EDGAR_SO4_RCO - - - - - - SO4 1206/63 1 2 +0 EDGAR_pFe_RCO - - - - - - pFe 1206/66 1 2 +0 EDGAR_SO2_PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.PPA.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1207 1 2 +0 EDGAR_SO4_PPA - - - - - - SO4 1207/63 1 2 +0 EDGAR_pFe_PPA - - - - - - pFe 1207/66 1 2 +#0 EDGAR_SO2_AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.AWB.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1209 1 2 +#0 EDGAR_SO4_AWB - - - - - - SO4 1209/63 1 2 +#0 EDGAR_pFe_AWB - - - - - - pFe 1209/66 1 2 +0 EDGAR_SO2_SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.SWD.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1211 1 2 +0 EDGAR_SO4_SWD - - - - - - SO4 1211/63 1 2 +0 EDGAR_pFe_SWD - - - - - - pFe 1211/66 1 2 +0 EDGAR_SO2_FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.SO2.FFF.0.1x0.1.nc emi_so2 1970-2010/1/1/0 C xy kg/m2/s SO2 1212 1 2 +0 EDGAR_SO4_FFF - - - - - - SO4 1212/63 1 2 +0 EDGAR_pFe_FFF - - - - - - pFe 1212/66 1 2 + +#============================================================================== +# --- NAP ANTHROPOGENIC EMISSIONS: approximate from EDGAR BENZ --- +# +# NOTE: Although this data comes from EDGAR version 2, we are storing it +# in the EDGARv42 data path for convenience. +#============================================================================== +0 EDGAR_NAP $ROOT/EDGARv42/v2015-02/VOCv2/EDGAR2_1985_FF_IND.1x1geos.nc BENZ 1985/1/1/0 C xy kgC/m2/s NAP 80/81/82/43 1 2 + +#============================================================================== +# --- Wiedinmyer et al. (2014) global trash emissions to be added to EDGAR --- +#============================================================================== +0 TRASH_CO $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc CO 2008/1/1/0 C xy kg/m2/s CO - 1 2 +0 TRASH_SOAP - - - - - - SOAP 280 1 2 +0 TRASH_NO $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc NO 2008/1/1/0 C xy kg/m2/s NO - 1 2 +0 TRASH_SO2 $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc SO2 2008/1/1/0 C xy kg/m2/s SO2 78 1 2 +0 TRASH_SO4 - - - - - - SO4 63 1 2 +0 TRASH_pFe - - - - - - pFe 78/66 1 2 +0 TRASH_BCPI $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc BC 2008/1/1/0 C xy kg/m2/s BCPI 70 1 2 +0 TRASH_BCPO - - - - - - BCPO 71 1 2 +0 TRASH_OCPI $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc OC 2008/1/1/0 C xy kg/m2/s OCPI 72 1 2 +0 TRASH_OCPO - - - - - - OCPO 73 1 2 +0 TRASH_POG1 - - - - - - POG1 74/76 1 2 +0 TRASH_POG2 - - - - - - POG2 74/77 1 2 +0 TRASH_NH3 $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc NH3 2008/1/1/0 C xy kg/m2/s NH3 - 1 2 + +#============================================================================== +# --- CEDS VOC emissions to be added to EDGAR --- +#============================================================================== +0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_AGR - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_AGR - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_ENE - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_ENE - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_IND - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_IND - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_TRA - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_TRA - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_RCO - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_RCO - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_SLV - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_SLV - - - - - - ROH 26/92 1 5 +0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 5 +0 CEDS_EOH_WST - - - - - - EOH 26/91 1 5 +0 CEDS_ROH_WST - - - - - - ROH 26/92 1 5 + +0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 +0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 5 + +0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 +0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 5 + +0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 +0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 5 + +0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 +0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 5 + +0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 +0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 5 + +0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 +0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 5 + +0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 +0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 5 + +0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 +0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 5 + +0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 +0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 5 + +0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 +0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 5 + +0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 +0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 5 + +0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 +0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 5 + +0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 5 +)))EDGARv43 + +#============================================================================== +# --- HTAP v3 --- +# +# %%% This is an optional inventory. You may select either CEDS, EDGAR, +# or HTAPv3 for the global base emissions %%% +# +# ==> HTAPv3 ship emissions are listed in the ship emissions section below +#============================================================================== +(((HTAPv3 +0 HTAPv3_NO_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_AGR 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_ENE 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_IND 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_TRA 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_RCO 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_SLV 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_NO_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_WST 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 1 4 +0 HTAPv3_CO_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_AGR 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_AGR - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_ENE 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_ENE - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_IND 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_IND - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_TRA 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_TRA - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_RCO 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_RCO - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_SLV 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_SLV - - - - - - SOAP 26/280 1 4 +0 HTAPv3_CO_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_WST 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 1 4 +0 HTAPv3_SOAP_WST - - - - - - SOAP 26/280 1 4 +0 HTAPv3_SO2_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_AGR 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_AGR - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_AGR - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_ENE 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_ENE - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_ENE - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_IND 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_IND - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_IND - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_TRA 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_TRA - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_TRA - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_RCO 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_RCO - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_RCO - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_SLV 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_SLV - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_SLV - - - - - - pFe 66 1 4 +0 HTAPv3_SO2_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_WST 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 1 4 +0 HTAPv3_SO4_WST - - - - - - SO4 63 1 4 +0 HTAPv3_pFe_WST - - - - - - pFe 66 1 4 +0 HTAPv3_NH3_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_AGR 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_ENE 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_IND 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_TRA 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_RCO 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_SLV 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_NH3_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_WST 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 1 4 +0 HTAPv3_BCPI_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_AGR 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_AGR - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_ENE 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_ENE - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_IND 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_IND - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_TRA 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_TRA - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_RCO 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_RCO - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_SLV 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_SLV - - - - - - BCPO 71 1 4 +0 HTAPv3_BCPI_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_WST 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 1 4 +0 HTAPv3_BCPO_WST - - - - - - BCPO 71 1 4 +0 HTAPv3_OCPI_AGR $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_AGR 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_AGR - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_AGR - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_AGR - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_ENE $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_ENE 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_ENE - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_ENE - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_ENE - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_IND $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_IND 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_IND - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_IND - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_IND - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_TRA $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_TRA 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_TRA - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_TRA - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_TRA - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_RCO $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_RCO 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_RCO - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_RCO - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_RCO - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_SLV $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_SLV 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_SLV - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_SLV - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_SLV - - - - - - POG2 73/74/77 1 4 +0 HTAPv3_OCPI_WST $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_WST 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 1 4 +0 HTAPv3_OCPO_WST - - - - - - OCPO 73 1 4 +0 HTAPv3_POG1_WST - - - - - - POG1 73/74/76 1 4 +0 HTAPv3_POG2_WST - - - - - - POG2 73/74/77 1 4 +# +# Use CEDSv2 for species that are not in the HTAPv3 inventory +# NOTE: EOH files in CEDS/v2021-06 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here +0 CEDS_MOH_AGR $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_AGR - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_AGR - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_ENE $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_ENE - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_ENE - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_IND $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_IND - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_IND - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_TRA $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_TRA - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_TRA - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_RCO $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_RCO - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_RCO - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_SLV $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_SLV - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_SLV - - - - - - ROH 26/92 1 4 +0 CEDS_MOH_WST $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 1 4 +0 CEDS_EOH_WST - - - - - - EOH 26/91 1 4 +0 CEDS_ROH_WST - - - - - - ROH 26/92 1 4 +0 CEDS_C2H6_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_IND $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C2H6_WST $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 1 4 +0 CEDS_C3H8_AGR $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_ENE $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_IND $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_TRA $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_RCO $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_SLV $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C3H8_WST $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 1 4 +0 CEDS_C4H10_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C4H10_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C5H12_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_AGR $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_ENE $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_IND $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_TRA $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_RCO $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_SLV $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C6H14_WST $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 1 4 +0 CEDS_C2H4_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_IND $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_C2H4_WST $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 1 4 +0 CEDS_PRPE_AGR $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_ENE $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_IND $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_TRA $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_RCO $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_SLV $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_PRPE_WST $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 1 4 +0 CEDS_C2H2_AGR $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_ENE $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_IND $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_TRA $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_RCO $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_SLV $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_C2H2_WST $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 1 4 +0 CEDS_BENZ_AGR $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_ENE $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_IND $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_TRA $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_RCO $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_SLV $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_BENZ_WST $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 1 4 +0 CEDS_TOLU_AGR $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_ENE $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_IND $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_TRA $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_RCO $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_SLV $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_TOLU_WST $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 1 4 +0 CEDS_XYLE_AGR $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_ENE $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_IND $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_TRA $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_RCO $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_SLV $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_XYLE_WST $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 1 4 +0 CEDS_CH2O_AGR $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_ENE $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_IND $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_TRA $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_RCO $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_SLV $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_CH2O_WST $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 1 4 +0 CEDS_ALD2_AGR $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_ENE $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_IND $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_TRA $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_RCO $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_SLV $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_ALD2_WST $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 1 4 +0 CEDS_MEK_AGR $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_ENE $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_IND $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_TRA $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_RCO $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_SLV $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_MEK_WST $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 1 4 +0 CEDS_HCOOH_AGR $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_ENE $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_IND $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_TRA $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_RCO $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_SLV $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +0 CEDS_HCOOH_WST $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 1 4 +)))HTAPv3 + +#============================================================================== +# --- GEIA NH3 from natural sources --- +#============================================================================== +(((GEIA_NH3 +0 GEIA_NH3_NATU $ROOT/NH3/v2019-08/NH3_geos.2x25.nc NH3_NATU 1990/1-12/1/0 C xy kg/m2/s NH3 - 3 1 +)))GEIA_NH3 + +#============================================================================== +# --- NH3 from arctic seabirds --- +# Source: Riddick et al., 2012, NERC Environmental Information Data Centre +#============================================================================== +(((SEABIRD_NH3 +0 SEABIRD_NH3 $ROOT/NH3/v2018-04/NH3_Arctic_seabirds.nc NH3_SEABIRDS 1990/1-12/1/0 C xy kg/m2/s NH3 - 30 1 +)))SEABIRD_NH3 + +#============================================================================== +# --- POET EOH --- +#============================================================================== +(((POET_EOH +0 POET_EOH $ROOT/POET/v2017-03/POET_EOH.geos.2x25.nc EOH 1985/1/1/0 C xy kgC/m2/s EOH 26/47 1 1 +)))POET_EOH + +#============================================================================== +# --- 2010 Global fossil fuel and biofuel emissions of C2H6 (Tzompa-Sosa et al. (2017) --- +# +# NOTES: +# - These C2H6 emissions are used in place of CEDS +#============================================================================== +(((TZOMPASOSA_C2H6 +0 C2H6_2010_oilgas $ROOT/C2H6_2010/v2019-06/C2H6_global_anth_biof.2010$MM.2x25.nc ANTHR_C2H6 2010/1-12/1/0 C xy kgC/m2/s C2H6 45 1 100 +0 C2H6_2010_biofuel $ROOT/C2H6_2010/v2019-06/C2H6_global_anth_biof.2010$MM.2x25.nc BIOFUEL_C2H6 2010/1-12/1/0 C xy kgC/m2/s C2H6 45 1 100 +)))TZOMPASOSA_C2H6 + +#============================================================================== +# --- Xiao et al., JGR, 2008 --- +# +# NOTES: +# - Xiao et al. C3H8 emissions are used in place of CEDS +# - Priority is set to 10 to overwrite CEDS, but not newer regional inventories (e.g. EPA/NEI) +#============================================================================== +(((XIAO_C3H8 +0 XIAO_C3H8 $ROOT/XIAO/v2014-09/C3H8_C2H6_ngas.geos.1x1.nc C3H8 1985/1/1/0 C xy kgC/m2/s C3H8 6/7/26/22/46 1 10 +0 BIOFUEL_C3H8 $ROOT/BIOFUEL/v2019-08/biofuel.geos.2x25.nc BIOFUEL_C3H8 1985/1/1/0 C xy kgC/m2/s C3H8 46 1 10 +)))XIAO_C3H8 + +#============================================================================== +# --- Very-short-lived (VSL) bromocarbon emissions (cf. Qing Liang) --- +#============================================================================== +(((LIANG_BROMOCARB +0 LIANG_CHBR3 $ROOT/BROMINE/v2015-02/Bromocarb_Liang2010.nc CHBr3_emission 2000/1/1/0 C xy kg/m2/s CHBr3 39 1 1 +0 LIANG_CH2BR2 $ROOT/BROMINE/v2015-02/Bromocarb_Liang2010.nc CH2Br2_emission 2000/1/1/0 C xy kg/m2/s CH2Br2 - 1 1 +)))LIANG_BROMOCARB + +#============================================================================== +# --- Very-short-lived (VSL) iodocarbon emissions (cf. Carlos Ordonez) --- +#============================================================================== +(((ORDONEZ_IODOCARB +0 ORDONEZ_CH3I $ROOT/IODINE/v2020-02/CH3I_monthly_emissions_Ordonez_2012_COARDS.nc CH3I 2000/1-12/1/0 C xy kg/m2/s CH3I - 1 1 +0 ORDONEZ_CH2I2 $ROOT/IODINE/v2020-02/CH2I2_monthly_emissions_Ordonez_2012_COARDS.nc CH2I2 2000/1-12/1/0 C xy kg/m2/s CH2I2 - 1 1 +0 ORDONEZ_CH2ICL $ROOT/IODINE/v2020-02/CH2ICl_monthly_emissions_Ordonez_2012_COARDS.nc CH2ICl 2000/1-12/1/0 C xy kg/m2/s CH2ICl - 1 1 +0 ORDONEZ_CH2IBR $ROOT/IODINE/v2020-02/CH2IBr_monthly_emissions_Ordonez_2012_COARDS.nc CH2IBr 2000/1-12/1/0 C xy kg/m2/s CH2IBr - 1 1 +)))ORDONEZ_IODOCARB + +#============================================================================== +# --- Ship emissions --- +# +# ==> CEDS ship emissions are now the default. +# ==> If CEDS_SHIP is turned off above then ARCTAS should be used over ICOADS, +# CORBETT, and HTAPv3 for SO2 and ICOADS should be used for CO and NO. +# ==> Ship NO emissions are used by PARANOx and the extension number must be +# adjusted accordingly. If PARANOx is turned off, set the ExtNr back to +# zero. +#============================================================================== +(((SHIP + +(((ARCTAS_SHIP +0 ARCTAS_SHIP_SO2 $ROOT/ARCTAS_SHIP/v2014-07/ARCTAS_ship.generic.1x1.nc SO2 2008/1/1/0 C xy kg/m2/s SO2 11/19 10 1 +)))ARCTAS_SHIP + +(((ICOADS_SHIP +0 ICOADS_SHIP_SO2 $ROOT/ICOADS_SHIP/v2014-07/ICOADS.generic.1x1.nc SO2 2002/1-12/1/0 C xy kg/m2/s SO2 11/15/60 10 2 +0 ICOADS_SHIP_CO $ROOT/ICOADS_SHIP/v2014-07/ICOADS.generic.1x1.nc CO 2002/1-12/1/0 C xy kg/m2/s CO 6/10 10 2 +0 ICOADS_SHIP_SOAP - - - - - - SOAP 6/10/280 10 2 +)))ICOADS_SHIP + +(((CORBETT_SHIP +0 CORBETT_SHIP_SO2 $ROOT/CORBETT_SHIP/v2014-07/CORBETT_ship.geos.1x1.nc SO2_SHIP 1985/1-12/1/0 C xy kg/m2/s SO2 - 10 3 +)))CORBETT_SHIP + +(((HTAPv3_SHIP +0 HTAPv3_CO_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_CO_0.1x0.1_$YYYY.nc CO_SHP 2000-2018/1-12/1/0 C xy kg/m2/s CO 26 10 4 +0 HTAPv3_SOAP_SHP - - - - - - SOAP 26/280 10 4 +0 HTAPv3_SO2_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_SO2_0.1x0.1_$YYYY.nc SO2_SHP 2000-2018/1-12/1/0 C xy kg/m2/s SO2 - 10 4 +0 HTAPv3_SO4_SHP - - - - - - SO4 63 10 4 +0 HTAPv3_pFe_SHP - - - - - - pFe 66 10 4 +0 HTAPv3_NH3_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NH3_0.1x0.1_$YYYY.nc NH3_SHP 2000-2018/1-12/1/0 C xy kg/m2/s NH3 - 10 4 +0 HTAPv3_BCPI_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_BC_0.1x0.1_$YYYY.nc BC_SHP 2000-2018/1-12/1/0 C xy kg/m2/s BCPI 70 10 4 +0 HTAPv3_BCPO_SHP - - - - - - BCPO 71 10 4 +0 HTAPv3_OCPI_SHP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_OC_0.1x0.1_$YYYY.nc OC_SHP 2000-2018/1-12/1/0 C xy kg/m2/s OCPI 72 10 4 +0 HTAPv3_OCPO_SHP - - - - - - OCPO 73 10 4 +# Use CEDSv2 ship emissions for species not in HTAPv3 +0 CEDS_MOH_SHP $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_shp 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 10 4 +0 CEDS_EOH_SHP - - - - - - EOH 26/91 10 4 +0 CEDS_ROH_SHP - - - - - - ROH 26/92 10 4 +0 CEDS_C2H6_SHP $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_shp 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 10 4 +0 CEDS_C3H8_SHP $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_shp 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 10 4 +0 CEDS_C4H10_SHP $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 10 4 +0 CEDS_C5H12_SHP $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 10 4 +0 CEDS_C6H14_SHP $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 10 4 +0 CEDS_C2H4_SHP $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_shp 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 10 4 +0 CEDS_PRPE_SHP $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_shp 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 10 4 +0 CEDS_C2H2_SHP $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_shp 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 10 4 +0 CEDS_BENZ_SHP $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_shp 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 10 4 +0 CEDS_TOLU_SHP $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_shp 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 10 4 +0 CEDS_XYLE_SHP $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_shp 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 10 4 +0 CEDS_CH2O_SHP $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_shp 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 10 4 +0 CEDS_ALD2_SHP $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 10 4 +0 CEDS_MEK_SHP $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_shp 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 10 4 +0 CEDS_HCOOH_SHP $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_shp 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 10 4 +)))HTAPv3_SHIP + +(((CEDSv2_SHIP +0 CEDS_CO_SHP $ROOT/CEDS/v2021-06/$YYYY/CO-em-anthro_CMIP_CEDS_$YYYY.nc CO_shp 1750-2019/1-12/1/0 C xy kg/m2/s CO 26 10 5 +0 CEDS_SOAP_SHP - - - - - - SOAP 26/280 10 5 +0 CEDS_SO2_SHP $ROOT/CEDS/v2021-06/$YYYY/SO2-em-anthro_CMIP_CEDS_$YYYY.nc SO2_shp 1750-2019/1-12/1/0 C xy kg/m2/s SO2 - 10 5 +0 CEDS_SO4_SHP - - - - - - SO4 63 10 5 +0 CEDS_pFe_SHP - - - - - - pFe 66 10 5 +0 CEDS_NH3_SHP $ROOT/CEDS/v2021-06/$YYYY/NH3-em-anthro_CMIP_CEDS_$YYYY.nc NH3_shp 1750-2019/1-12/1/0 C xy kg/m2/s NH3 - 10 5 +0 CEDS_BCPI_SHP $ROOT/CEDS/v2021-06/$YYYY/BC-em-anthro_CMIP_CEDS_$YYYY.nc BC_shp 1750-2019/1-12/1/0 C xy kg/m2/s BCPI 70 10 5 +0 CEDS_BCPO_SHP - - - - - - BCPO 71 10 5 +0 CEDS_OCPI_SHP $ROOT/CEDS/v2021-06/$YYYY/OC-em-anthro_CMIP_CEDS_$YYYY.nc OC_shp 1750-2019/1-12/1/0 C xy kg/m2/s OCPI 72 10 5 +0 CEDS_OCPO_SHP - - - - - - OCPO 73 10 5 +0 CEDS_POG1_SHP - - - - - - POG1 74/76 10 5 +0 CEDS_POG2_SHP - - - - - - POG2 74/77 10 5 +0 CEDS_MOH_SHP $ROOT/CEDS/v2021-06/$YYYY/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_shp 1750-2019/1-12/1/0 C xy kg/m2/s MOH 26/90 10 5 +0 CEDS_EOH_SHP - - - - - - EOH 26/91 10 5 +0 CEDS_ROH_SHP - - - - - - ROH 26/92 10 5 +0 CEDS_C2H6_SHP $ROOT/CEDS/v2021-06/$YYYY/C2H6-em-anthro_CMIP_CEDS_$YYYY.nc C2H6_shp 1750-2019/1-12/1/0 C xy kg/m2/s C2H6 26 10 5 +0 CEDS_C3H8_SHP $ROOT/CEDS/v2021-06/$YYYY/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_shp 1750-2019/1-12/1/0 C xy kg/m2/s C3H8 26 10 5 +0 CEDS_C4H10_SHP $ROOT/CEDS/v2021-06/$YYYY/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CEDS_C5H12_SHP $ROOT/CEDS/v2021-06/$YYYY/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CEDS_C6H14_SHP $ROOT/CEDS/v2021-06/$YYYY/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CEDS_C2H4_SHP $ROOT/CEDS/v2021-06/$YYYY/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_shp 1750-2019/1-12/1/0 C xy kg/m2/s C2H4 26 10 5 +0 CEDS_PRPE_SHP $ROOT/CEDS/v2021-06/$YYYY/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_shp 1750-2019/1-12/1/0 C xy kg/m2/s PRPE 26 10 5 +0 CEDS_C2H2_SHP $ROOT/CEDS/v2021-06/$YYYY/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_shp 1750-2019/1-12/1/0 C xy kg/m2/s C2H2 26 10 5 +0 CEDS_BENZ_SHP $ROOT/CEDS/v2021-06/$YYYY/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_shp 1750-2019/1-12/1/0 C xy kg/m2/s BENZ 26 10 5 +0 CEDS_TOLU_SHP $ROOT/CEDS/v2021-06/$YYYY/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_shp 1750-2019/1-12/1/0 C xy kg/m2/s TOLU 26 10 5 +0 CEDS_XYLE_SHP $ROOT/CEDS/v2021-06/$YYYY/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_shp 1750-2019/1-12/1/0 C xy kg/m2/s XYLE 26 10 5 +0 CEDS_CH2O_SHP $ROOT/CEDS/v2021-06/$YYYY/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_shp 1750-2019/1-12/1/0 C xy kg/m2/s CH2O 26 10 5 +0 CEDS_ALD2_SHP $ROOT/CEDS/v2021-06/$YYYY/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_shp 1750-2019/1-12/1/0 C xy kg/m2/s ALD2 26 10 5 +0 CEDS_MEK_SHP $ROOT/CEDS/v2021-06/$YYYY/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_shp 1750-2019/1-12/1/0 C xy kg/m2/s MEK 26 10 5 +0 CEDS_HCOOH_SHP $ROOT/CEDS/v2021-06/$YYYY/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_shp 1750-2019/1-12/1/0 C xy kg/m2/s HCOOH 26 10 5 +)))CEDSv2_SHIP + +(((CEDS_GBDMAPS_SHIP +>>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS_SHIP.rc +)))CEDS_GBDMAPS_SHIP + +(((CEDS_SHIP_byFuelType +(((.not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +>>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBD-MAPS_SHIP_byFuelType.rc +))).not.CEDS_GBDMAPS_SHIP.and..not.CEDSv2_SHIP +)))CEDS_SHIP_byFuelType + +#============================================================================== +# --- CMIP6_SHIP --- +# CEDS (historical) or Shared Socioeconomic Pathways (future), consistent with +# the CMIP6 simulation experimental design. +# +# Make sure that the desired $GCAPSCENARIO is set above in SECTION SETTINGS +# +#============================================================================== +(((CMIP6_SHIP +0 CMIP6_CO_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_shp 1750-2100/1-12/1/0 C xy kg/m2/s CO 26 10 5 +0 CMIP6_SOAP_SHP - - - - - - SOAP 26/280 10 5 +0 CMIP6_SO2_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_shp 1750-2100/1-12/1/0 C xy kg/m2/s SO2 - 10 5 +0 CMIP6_SO4_SHP - - - - - - SO4 63 10 5 +0 CMIP6_pFe_SHP - - - - - - pFe 66 10 5 +0 CMIP6_NH3_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_shp 1750-2100/1-12/1/0 C xy kg/m2/s NH3 - 10 5 +0 CMIP6_BCPI_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_shp 1750-2100/1-12/1/0 C xy kg/m2/s BCPI 70 10 5 +0 CMIP6_BCPO_SHP - - - - - - BCPO 71 10 5 +0 CMIP6_OCPI_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_shp 1750-2100/1-12/1/0 C xy kg/m2/s OCPI 72 10 5 +0 CMIP6_OCPO_SHP - - - - - - OCPO 73 10 5 +# NOTE: EOH files in CMIP6/v2021-01 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here +0 CMIP6_MOH_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s MOH 26/90 10 5 +0 CMIP6_EOH_SHP - - - - - - EOH 26/91 10 5 +0 CMIP6_ROH_SHP - - - - - - ROH 26/92 10 5 +0 CMIP6_C2H6_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H6 26 10 5 +0 CMIP6_C3H8_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_shp 1750-2100/1-12/1/0 C xy kg/m2/s C3H8 26 10 5 +0 CMIP6_C4H10_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_butanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CMIP6_C5H12_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_pentanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CMIP6_C6H14_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_hexanes_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALK4 26 10 5 +0 CMIP6_C2H4_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H4 26 10 5 +0 CMIP6_PRPE_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_shp 1750-2100/1-12/1/0 C xy kg/m2/s PRPE 26 10 5 +0 CMIP6_C2H2_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H2_shp 1750-2100/1-12/1/0 C xy kg/m2/s C2H2 26 10 5 +0 CMIP6_BENZ_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_shp 1750-2100/1-12/1/0 C xy kg/m2/s BENZ 26 10 5 +0 CMIP6_TOLU_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_shp 1750-2100/1-12/1/0 C xy kg/m2/s TOLU 26 10 5 +0 CMIP6_XYLE_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_shp 1750-2100/1-12/1/0 C xy kg/m2/s XYLE 26 10 5 +0 CMIP6_CH2O_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_shp 1750-2100/1-12/1/0 C xy kg/m2/s CH2O 26 10 5 +0 CMIP6_ALD2_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_shp 1750-2100/1-12/1/0 C xy kg/m2/s ALD2 26 10 5 +0 CMIP6_MEK_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_shp 1750-2100/1-12/1/0 C xy kg/m2/s MEK 26 10 5 +0 CMIP6_HCOOH_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_shp 1750-2100/1-12/1/0 C xy kg/m2/s HCOOH 26 10 5 +)))CMIP6_SHIP + +#------------------------------------------------------------------------------ +# ### IF THE PARANOX EXTENSION IS TURNED ON ### +# +# Cosine(SZA) will be read from the restart file. Use the PARANOX extension +# number (# 102) to specify these quantities and the NEI emissions. +# This will make sure everything will be passed to the HEMCO PARANOX extension +# rather than sending them into the base emissions. +#------------------------------------------------------------------------------ +(((ParaNOx + +(((ICOADS_SHIP +102 ICOADS_SHIP_NO $ROOT/ICOADS_SHIP/v2014-07/ICOADS.generic.1x1.nc NO 2002/1-12/1/0 C xy kg/m2/s NO 1/5 10 1 +)))ICOADS_SHIP + +(((HTAPv3_SHIP +0 HTAPv3_NO_SHIP $ROOT/HTAPv3/v2022-12/$YYYY/HTAPv3_NO_0.1x0.1_$YYYY.nc NO_SHP 2000-2018/1-12/1/0 C xy kg/m2/s NO 25 10 4 +)))HTAPv3_SHIP + +(((CEDSv2_SHIP +0 CEDS_NO_SHP $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_shp 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 10 5 +)))CEDSv2_SHIP + +(((CEDS_GBDMAPS_SHIP +102 CEDS_NO_SHP $ROOT/CEDS/v2020-08/$YYYY/NO-em-total-anthro_CEDS_$YYYY.nc NO_shp 1970-2017/1-12/1/0 C xy kg/m2/s NO 25 10 5 +)))CEDS_GBDMAPS_SHIP + +)))ParaNOx + +#------------------------------------------------------------------------------ +# ### IF THE PARANOX EXTENSION IS TURNED OFF ### +# +# Use extension # 0 to specify these emissions. This will put them +# into the base emissions rather than sending them through PARANOX. +#------------------------------------------------------------------------------ +(((.not.ParaNOx + +(((ICOADS_SHIP +0 ICOADS_SHIP_NO $ROOT/ICOADS_SHIP/v2014-07/ICOADS.generic.1x1.nc NO 2002/1-12/1/0 C xy kg/m2/s NO 1/5 10 1 +)))ICOADS_SHIP + +(((HTAP_SHIP +0 HTAP_SHIP_NO $ROOT/HTAP/v2015-03/EDGAR_HTAP_NO_SHIPS.generic.01x01.nc emi_no 2008-2010/1/1/0 C xy kg/m2/s NO 1/27 10 2 +)))HTAP_SHIP + +(((CEDSv2_SHIP +0 CEDS_NO_SHP $ROOT/CEDS/v2021-06/$YYYY/NO-em-anthro_CMIP_CEDS_$YYYY.nc NO_shp 1750-2019/1-12/1/0 C xy kg/m2/s NO 25 10 5 +)))CEDSv2_SHIP + +(((CEDS_GBDMAPS_SHIP +0 CEDS_NO_SHP $ROOT/CEDS/v2020-08/$YYYY/NO-em-total-anthro_CEDS_$YYYY.nc NO_shp 1970-2017/1-12/1/0 C xy kg/m2/s NO 25 10 5 +)))CEDS_GBDMAPS_SHIP + +(((CMIP6_SHIP +102 CMIP6_NO_SHP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_shp 1750-2100/1-12/1/0 C xy kg/m2/s NO 25 10 5 +)))CMIP6_SHIP + +))).not.ParaNOx + +)))SHIP + +#============================================================================== +# --- AEIC 2019 aircraft emissions (daily & monthly mean) --- +# +# Data files are for 2019, but scale factors from 1990-2019 can be applied +# in order to get year-specific emissions. See the notes in the AEIC2019 +# scale factor section below for more information. +#============================================================================== +(((AEIC2019_DAILY +0 AEIC19_DAILY_NO $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc NO 2019/1-12/1-31/0 C xyz kg/m2/s NO 241/240 20 1 +0 AEIC19_DAILY_NO2 $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc NO2 2019/1-12/1-31/0 C xyz kg/m2/s NO2 241/240 20 1 +0 AEIC19_DAILY_HONO $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc HONO 2019/1-12/1-31/0 C xyz kg/m2/s HNO2 241/240 20 1 +0 AEIC19_DAILY_CO $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc CO 2019/1-12/1-31/0 C xyz kg/m2/s CO 241 20 1 +0 AEIC19_DAILY_SOAP - - - - - - SOAP 241/280 20 1 +0 AEIC19_DAILY_SO2 $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc FUELBURN 2019/1-12/1-31/0 C xyz kg/m2/s SO2 241/111 20 1 +0 AEIC19_DAILY_pFe - - - - - - pFe 241/111/66 20 1 +0 AEIC19_DAILY_SO4 - - - - - - SO4 241/112 20 1 +0 AEIC19_DAILY_H2O - - - - - - H2O 241/120 20 1 +0 AEIC19_DAILY_BCPI $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc BC 2019/1-12/1-31/0 C xyz kg/m2/s BCPI 241 20 1 +0 AEIC19_DAILY_OCPI $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc OC 2019/1-12/1-31/0 C xyz kg/m2/s OCPI 241 20 1 +0 AEIC19_DAILY_POG1 - - - - - - POG1 241/74/76 20 1 +0 AEIC19_DAILY_POG2 - - - - - - POG2 241/74/77 20 1 +0 AEIC19_DAILY_ACET $ROOT/AEIC2019/v2022-03/2019/$MM/AEIC_2019$MM$DD.0.5x0.625.36L.nc HC 2019/1-12/1-31/0 C xyz kg/m2/s ACET 241/114/101 20 1 +0 AEIC19_DAILY_ALD2 - - - - - - ALD2 241/114/102 20 1 +0 AEIC19_DAILY_ALK4 - - - - - - ALK4 241/114/103 20 1 +0 AEIC19_DAILY_C2H6 - - - - - - C2H6 241/114/104 20 1 +0 AEIC19_DAILY_C3H8 - - - - - - C3H8 241/114/105 20 1 +0 AEIC19_DAILY_CH2O - - - - - - CH2O 241/114/106 20 1 +0 AEIC19_DAILY_PRPE - - - - - - PRPE 241/114/107 20 1 +0 AEIC19_DAILY_MACR - - - - - - MACR 241/114/108 20 1 +0 AEIC19_DAILY_RCHO - - - - - - RCHO 241/114/109 20 1 +)))AEIC2019_DAILY +(((AEIC2019_MONMEAN +0 AEIC19_MONMEAN_NO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc NO 2019/1-12/1/0 C xyz kg/m2/s NO 241/240 20 1 +0 AEIC19_MONMEAN_NO2 $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc NO2 2019/1-12/1/0 C xyz kg/m2/s NO2 241/240 20 1 +0 AEIC19_MONMEAN_HONO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc HONO 2019/1-12/1/0 C xyz kg/m2/s HNO2 241/240 20 1 +0 AEIC19_MONMEAN_CO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc CO 2019/1-12/1/0 C xyz kg/m2/s CO 241 20 1 +0 AEIC19_MONMEAN_SOAP - - - - - - SOAP 241/280 20 1 +0 AEIC19_MONMEAN_SO2 $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc FUELBURN 2019/1-12/1/0 C xyz kg/m2/s SO2 241/111 20 1 +0 AEIC19_MONMEAN_pFe - - - - - - pFe 241/111/66 20 1 +0 AEIC19_MONMEAN_SO4 - - - - - - SO4 241/112 20 1 +0 AEIC19_MONMEAN_H2O - - - - - - H2O 241/120 20 1 +0 AEIC19_MONMEAN_BCPI $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc BC 2019/1-12/1/0 C xyz kg/m2/s BCPI 241 20 1 +0 AEIC19_MONMEAN_OCPI $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc OC 2019/1-12/1/0 C xyz kg/m2/s OCPI 241 20 1 +0 AEIC19_MONMEAN_POG1 - - - - - - POG1 241/74/76 20 1 +0 AEIC19_MONMEAN_POG2 - - - - - - POG2 241/74/77 20 1 +0 AEIC19_MONMEAN_ACET $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc HC 2019/1-12/1/0 C xyz kg/m2/s ACET 241/114/101 20 1 +0 AEIC19_MONMEAN_ALD2 - - - - - - ALD2 241/114/102 20 1 +0 AEIC19_MONMEAN_ALK4 - - - - - - ALK4 241/114/103 20 1 +0 AEIC19_MONMEAN_C2H6 - - - - - - C2H6 241/114/104 20 1 +0 AEIC19_MONMEAN_C3H8 - - - - - - C3H8 241/114/105 20 1 +0 AEIC19_MONMEAN_CH2O - - - - - - CH2O 241/114/106 20 1 +0 AEIC19_MONMEAN_PRPE - - - - - - PRPE 241/114/107 20 1 +0 AEIC19_MONMEAN_MACR - - - - - - MACR 241/114/108 20 1 +0 AEIC19_MONMEAN_RCHO - - - - - - RCHO 241/114/109 20 1 +)))AEIC2019_MONMEAN + +#============================================================================== +# --- Emissions from decaying plants --- +#============================================================================== +(((DECAYING_PLANTS +0 ALD2_PLANTDECAY $ROOT/ALD2/v2017-03/resp.geos.2x25.nc HET_RESP 1985/1-12/1/0 C xy kgC/m2/s ALD2 85/41 3 1 +0 EOH_PLANTDECAY - - - - - - EOH 86/47 3 1 +)))DECAYING_PLANTS + +#============================================================================== +# --- RCP future emissions scenarios --- +#============================================================================== +(((RCP_3PD +0 RCP3PD_CH4 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_CH4_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH4 - 1 1 +0 RCP3PD_NOx $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_NOx_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NO - 1 1 +0 RCP3PD_CO $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_CO_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CO - 1 1 +0 RCP3PD_SOAP - - - - - - SOAP 280 1 1 +0 RCP3PD_BCPO $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_BC_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s BCPO - 1 1 +0 RCP3PD_OCPO $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_OC_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s OCPO - 1 1 +0 RCP3PD_POG1 - - - - - - POG1 74/76 1 1 +0 RCP3PD_POG2 - - - - - - POG2 74/77 1 1 +0 RCP3PD_SO2 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_SO2_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s SO2 - 1 1 +0 RCP3PD_pFe - - - - - - pFe 66 1 1 +0 RCP3PD_NH3 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_NH3_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NH3 - 1 1 +0 RCP3PD_C2H2 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_acetylene_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H2 59 1 1 +0 RCP3PD_CH2O $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_formaldehyde_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH2O - 1 1 +0 RCP3PD_BENZ $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_benzene_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s BENZ 43 1 1 +0 RCP3PD_TOLU $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_toluene_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s TOLU 55 1 1 +0 RCP3PD_XYLE $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_xylene_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s XYLE 56 1 1 +0 RCP3PD_ALD2 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_other_aldehydes_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALD2 41 1 1 +0 RCP3PD_ALK4__A $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_butanes_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP3PD_ALK4__B $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_pentanes_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP3PD_ALK4__C $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_hexanes_and_higher_alkanes_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP3PD_ACET $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_total_ketones_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ACET 51/40 1 1 +0 RCP3PD_MEK - - - - - - MEK 50/48 1 1 +0 RCP3PD_C2H6 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_ethane_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H6 45 1 1 +0 RCP3PD_C2H4 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_ethene_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H4 44 1 1 +0 RCP3PD_C3H8 $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_propane_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C3H8 46 1 1 +0 RCP3PD_PRPE $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_propene_2005-2100_23474_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s PRPE 49 1 1 +0 RCP3PD_HCOOH $ROOT/RCP/v2020-07/RCP_3PD/RCPs_anthro_total_acids_2005-2100_23474.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s HCOOH 57/58 1 1 +)))RCP_3PD + +(((RCP_45 +0 RCP45_CH4 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_CH4_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH4 - 1 1 +0 RCP45_NOx $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_NOx_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NO - 1 1 +0 RCP45_CO $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_CO_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CO - 1 1 +0 RCP45_SOAP - - - - - - SOAP 280 1 1 +0 RCP45_BCPO $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_BC_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s BCPO - 1 1 +0 RCP45_OCPO $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_OC_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s OCPO - 1 1 +0 RCP45_POG1 - - - - - - POG1 74/76 1 1 +0 RCP45_POG2 - - - - - - POG2 74/77 1 1 +0 RCP45_SO2 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_SO2_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s SO2 - 1 1 +0 RCP45_pFe - - - - - - pFe 66 1 1 +0 RCP45_NH3 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_NH3_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NH3 - 1 1 +0 RCP45_C2H2 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_acetylene_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H2 59 1 1 +0 RCP45_CH2O $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_formaldehyde_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH2O - 1 1 +0 RCP45_BENZ $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_benzene_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s BENZ 43 1 1 +0 RCP45_TOLU $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_toluene_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s TOLU 55 1 1 +0 RCP45_XYLE $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_xylene_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s XYLE 56 1 1 +0 RCP45_ALD2 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_other_aldehydes_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALD2 41 1 1 +0 RCP45_ALK4__A $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_butanes_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP45_ALK4__B $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_pentanes_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP45_ALK4__C $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_hexanes_and_higher_alkanes_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP45_ACET $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_total_ketones_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ACET 51/40 1 1 +0 RCP45_MEK - - - - - - MEK 50/48 1 1 +0 RCP45_C2H6 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_ethane_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H6 45 1 1 +0 RCP45_C2H4 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_ethene_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H4 44 1 1 +0 RCP45_C3H8 $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_propane_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C3H8 46 1 1 +0 RCP45_PRPE $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_propene_2005-2100_27424_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s PRPE 49 1 1 +0 RCP45_HCOOH $ROOT/RCP/v2020-07/RCP_45/RCPs_anthro_total_acids_2005-2100_27424.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s HCOOH 57/58 1 1 +)))RCP_45 + +(((RCP_60 +0 RCP60_CH4 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_CH4_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH4 - 1 1 +0 RCP60_NOx $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_NOx_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NO - 1 1 +0 RCP60_CO $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_CO_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CO - 1 1 +0 RCP60_SOAP - - - - - - SOAP 280 1 1 +0 RCP60_BCPO $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_BC_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s BCPO - 1 1 +0 RCP60_OCPO $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_OC_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s OCPO - 1 1 +0 RCP60_POG1 - - - - - - POG1 74/76 1 1 +0 RCP60_POG2 - - - - - - POG2 74/77 1 1 +0 RCP60_SO2 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_SO2_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s SO2 - 1 1 +0 RCP60_pFe - - - - - - pFe 66 1 1 +0 RCP60_NH3 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_NH3_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NH3 - 1 1 +0 RCP60_C2H2 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_acetylene_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H2 59 1 1 +0 RCP60_CH2O $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_formaldehyde_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH2O - 1 1 +0 RCP60_BENZ $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_benzene_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s BENZ 43 1 1 +0 RCP60_TOLU $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_toluene_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s TOLU 55 1 1 +0 RCP60_XYLE $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_xylene_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s XYLE 56 1 1 +0 RCP60_ALD2 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_other_aldehydes_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALD2 41 1 1 +0 RCP60_ALK4__A $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_butanes_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP60_ALK4__B $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_pentanes_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP60_ALK4__C $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_hexanes_and_higher_alkanes_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP60_ACET $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_total_ketones_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ACET 51/40 1 1 +0 RCP60_MEK - - - - - - MEK 50/48 1 1 +0 RCP60_C2H6 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_ethane_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H6 45 1 1 +0 RCP60_C2H4 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_ethene_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H4 44 1 1 +0 RCP60_C3H8 $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_propane_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C3H8 46 1 1 +0 RCP60_PRPE $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_propene_2005-2100_43190_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s PRPE 49 1 1 +0 RCP60_HCOOH $ROOT/RCP/v2020-07/RCP_60/RCPs_anthro_total_acids_2005-2100_43190.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s HCOOH 57/58 1 1 +)))RCP_60 + +(((RCP_85 +0 RCP85_CH4 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_CH4_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH4 - 1 1 +0 RCP85_NOx $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_NOx_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NO - 1 1 +0 RCP85_CO $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_CO_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CO - 1 1 +0 RCP85_SOAP - - - - - - SOAP 280 1 1 +0 RCP85_BCPO $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_BC_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s BCPO - 1 1 +0 RCP85_OCPO $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_OC_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s OCPO - 1 1 +0 RCP85_POG1 - - - - - - POG1 74/76 1 1 +0 RCP85_POG2 - - - - - - POG2 74/77 1 1 +0 RCP85_SO2 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_SO2_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s SO2 - 1 1 +0 RCP80_pFe - - - - - - pFe 66 1 1 +0 RCP85_NH3 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_NH3_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s NH3 - 1 1 +0 RCP85_C2H2 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_acetylene_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H2 59 1 1 +0 RCP85_CH2O $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_formaldehyde_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s CH2O - 1 1 +0 RCP85_BENZ $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_benzene_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s BENZ 43 1 1 +0 RCP85_TOLU $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_toluene_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s TOLU 55 1 1 +0 RCP85_XYLE $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_xylene_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s XYLE 56 1 1 +0 RCP85_ALD2 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_other_aldehydes_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALD2 41 1 1 +0 RCP85_ALK4__A $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_butanes_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP85_ALK4__B $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_pentanes_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP85_ALK4__C $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_hexanes_and_higher_alkanes_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ALK4 42 1 1 +0 RCP85_ACET $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_total_ketones_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s ACET 51/40 1 1 +0 RCP85_MEK - - - - - - MEK 50/48 1 1 +0 RCP85_C2H6 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_ethane_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H6 45 1 1 +0 RCP85_C2H4 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_ethene_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C2H4 44 1 1 +0 RCP85_C3H8 $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_propane_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s C3H8 46 1 1 +0 RCP85_PRPE $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_propene_2005-2100_43533_kgC.nc ACCMIP 2005-2100/1/1/0 ID xy kgC/m2/s PRPE 49 1 1 +0 RCP85_HCOOH $ROOT/RCP/v2020-07/RCP_85/RCPs_anthro_total_acids_2005-2100_43533.nc ACCMIP 2005-2100/1/1/0 ID xy kg/m2/s HCOOH 57/58 1 1 +)))RCP_85 + +#============================================================================== +# --- QFED2 biomass burning (v2.5r1) --- +#============================================================================== +(((QFED2 +0 QFED_ACET_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s ACET 75/311 5 2 +0 QFED_ACET_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s ACET 75/312 5 2 +0 QFED_ALD2_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s ALD2 75/311 5 2 +0 QFED_ALD2_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s ALD2 75/312 5 2 +0 QFED_ALK4_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s ALK4 75/311 5 2 +0 QFED_ALK4_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s ALK4 75/312 5 2 +0 QFED_BCPI_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s BCPI 70/75/311 5 2 +0 QFED_BCPO_PBL - - - - - - BCPO 71/75/311 5 2 +0 QFED_BCPI_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s BCPI 70/75/312 5 2 +0 QFED_BCPO_FT - - - - - - BCPO 71/75/312 5 2 +0 QFED_OCPI_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s OCPI 72/75/311 5 2 +0 QFED_OCPO_PBL - - - - - - OCPO 73/75/311 5 2 +0 QFED_POG1_PBL - - - - - - POG1 74/76/75/311 5 2 +0 QFED_POG2_PBL - - - - - - POG2 74/77/75/311 5 2 +0 QFED_OCPI_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s OCPI 72/75/312 5 2 +0 QFED_OCPO_FT - - - - - - OCPO 73/75/312 5 2 +0 QFED_POG1_FT - - - - - - POG1 74/76/75/312 5 2 +0 QFED_POG2_FT - - - - - - POG2 74/77/75/312 5 2 +0 QFED_C2H6_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s C2H6 75/311 5 2 +0 QFED_C2H6_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s C2H6 75/312 5 2 +0 QFED_C3H8_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s C3H8 75/311 5 2 +0 QFED_C3H8_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s C3H8 75/312 5 2 +0 QFED_CH2O_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s CH2O 75/311 5 2 +0 QFED_CH2O_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s CH2O 75/312 5 2 +0 QFED_CH4_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s CH4 75/311 5 2 +0 QFED_CH4_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_ch4.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s CH4 75/312 5 2 +0 QFED_CO_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s CO 54/75/311 5 2 +0 QFED_SOAP_PBL - - - - - - SOAP 54/75/281/311 5 2 +0 QFED_CO_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s CO 54/75/312 5 2 +0 QFED_SOAP_FT - - - - - - SOAP 54/75/281/312 5 2 +0 QFED_CO2_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s CO2 75/311 5 2 +0 QFED_CO2_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_co2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s CO2 75/312 5 2 +0 QFED_MEK_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s MEK 75/311 5 2 +0 QFED_MEK_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s MEK 75/312 5 2 +0 QFED_NH3_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s NH3 75/311 5 2 +0 QFED_NH3_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s NH3 75/312 5 2 +0 QFED_NO_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s NO 75/311 5 2 +0 QFED_NO_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s NO 75/312 5 2 +0 QFED_SO2_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s SO2 75/311 5 2 +0 QFED_pFe_PBL - - - - - - pFe 75/311/66 5 2 +0 QFED_SO2_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s SO2 75/312 5 2 +0 QFED_pFe_FT - - - - - - pF3 75/312/66 5 2 +0 QFED_C3H6_PBL $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=1:PBL kg/m2/s PRPE 75/311 5 2 +0 QFED_C3H6_FT $ROOT/QFED/v2018-07/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2022/1-12/1-31/0/+12hour EFY xyL=PBL:5500m kg/m2/s PRPE 75/312 5 2 +)))QFED2 +#============================================================================== +# --- GFAS biomass burning --- +#============================================================================== +(((GFAS +0 GFAS_CO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO 75 5 3 +0 GFAS_SOAP $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc cofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SOAP 75/281 5 3 +0 GFAS_CH3OH $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch3ohfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s MOH 75 5 3 +0 GFAS_NO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc noxfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NO 75 5 3 +0 GFAS_BCPI $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPI 70/75 5 3 +0 GFAS_BCPO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc bcfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPO 71/75 5 3 +0 GFAS_OCPI $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ocfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPI 72/75 5 3 +0 GFAS_OCPO $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ocfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPO 73/75 5 3 +0 GFAS_POG1 - - - - - - POG1 74/76/75 5 3 +0 GFAS_POG2 - - - - - - POG2 74/77/75 5 3 +0 GFAS_CO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc co2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO2 75 5 3 +0 GFAS_CH4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch4fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH4 75 5 3 +0 GFAS_SO2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SO2 75 5 3 +0 GFAS_pFe $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc so2fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s pFe 75/66 5 3 +0 GFAS_NH3 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc nh3fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NH3 75 5 3 +0 GFAS_ACET $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h6ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ACET 75 5 3 +0 GFAS_ALD2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h4ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALD2 75 5 3 +0 GFAS_ALK4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc hialkanesfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALK4 75 5 3 +0 GFAS_PRPE1 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc hialkenesfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s PRPE 75 5 3 +0 GFAS_PRPE2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h6fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s PRPE 75 5 3 +0 GFAS_C2H6 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h6fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C2H6 75 5 3 +0 GFAS_C3H8 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c3h8fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C3H8 75 5 3 +0 GFAS_CH2O $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc ch2ofire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH2O 75 5 3 +0 GFAS_C2H4 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h4fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C2H4 75 5 3 +0 GFAS_ISOP $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c5h8fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ISOP 75 5 3 +0 GFAS_DMS $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c2h6sfire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s DMS 75 5 3 +0 GFAS_TOLU $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c7h8fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s TOLU 75 5 3 +0 GFAS_BENZ $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c6h6fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BENZ 75 5 3 +0 GFAS_XYLE $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc c8h10fire 2003-2021/1-12/1-31/0 C xyL=1:scal300 kg/m2/s XYLE 75 5 3 +)))GFAS + +#============================================================================== +# --- BB4MIPs biomass burning --- +#============================================================================== +(((BB4MIPS +# 75 is time-of-day scaling +0 CMIP6_BB_CO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CO 75 5 3 +0 CMIP6_BB_SOAP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SOAP 75/281 5 3 +0 CMIP6_BB_NO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NO_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NO 75 5 3 +0 CMIP6_BB_BCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPI 70/75 5 3 +0 CMIP6_BB_BCPO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BCPO 71/75 5 3 +0 CMIP6_BB_OCPI $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPI 72/75 5 3 +0 CMIP6_BB_OCPO $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 OC_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s OCPO 73/75 5 3 +0 CMIP6_BB_POG1 - - - - - - POG1 74/76/75 5 3 +0 CMIP6_BB_POG2 - - - - - - POG2 74/77/75 5 3 +0 CMIP6_BB_SO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 SO2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s SO2 75 5 3 +0 CMIP6_BB_pFe - - - - - - pFe 75/66 5 3 +0 CMIP6_BB_NH3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 NH3_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s NH3 75 5 3 +0 CMIP6_BB_ALD2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALD2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALD2 75 5 3 +0 CMIP6_BB_ALK4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ALK4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ALK4 75 5 3 +0 CMIP6_BB_PRPE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 PRPE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s PRPE 75 5 3 +0 CMIP6_BB_C2H6 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H6_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H6 75 5 3 +0 CMIP6_BB_C3H8 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C3H8_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C3H8 75 5 3 +0 CMIP6_BB_CH2O $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 CH2O_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s CH2O 75 5 3 +0 CMIP6_BB_C2H4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 C2H4_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s C2H4 75 5 3 +0 CMIP6_BB_ISOP $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ISOP_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ISOP 75 5 3 +0 CMIP6_BB_DMS $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 DMS_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s DMS 75 5 3 +0 CMIP6_BB_TOLU $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 TOLU_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s TOLU 75 5 3 +0 CMIP6_BB_BENZ $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 BENZ_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s BENZ 75 5 3 +0 CMIP6_BB_XYLE $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 XYLE_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s XYLE 75 5 3 +0 CMIP6_BB_H2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 H2_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s H2 75 5 3 +0 CMIP6_BB_MTPA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MONOT_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MTPA 75 5 3 +#0 CMIP6_BB_MTPO - - - - - - MTPO 75 5 3 +#0 CMIP6_BB_LIMO - - - - - - LIMO 75 5 3 +0 CMIP6_BB_EOH $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 EOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s EOH 75 5 3 +0 CMIP6_BB_MOH $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MOH 75 5 3 +0 CMIP6_BB_ACET - - - - - - ACET 79/75 5 3 +0 CMIP6_BB_MGLY $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MGLY_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MGLY 75 5 3 +0 CMIP6_BB_ACTA $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 ACTA_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s ACTA 75 5 3 +0 CMIP6_BB_HCN $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCN_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCN 75 5 3 +0 CMIP6_BB_HCOOH $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 HCOOH_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s HCOOH 75 5 3 +0 CMIP6_BB_MEK $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_$YYYY.nc4 MEK_bbn 1750-2100/1-12/1/0 C xyL=1:PBL kg/m2/s MEK 75 5 3 +)))BB4MIPS + +#============================================================================== +# --- Anthropogenic Fugitive, Combustion and Industrial Dust --- +# (Philip et al., 2017, ERL) +#============================================================================== +(((AFCID +0 PM25FINE_1 $ROOT/AFCID/v2018-04/PM25FINE_ECLIPSE_2015.geos.2x25.nc PM25FINE 2015/1-12/1/0 C xy kg/m2/s DST1 - 1 1 +0 PM25FINE_2 $ROOT/AFCID/v2018-04/PM25FINE_MEIC_2012.generic.025x025.nc PM25FINE 2012/1-12/1/0 C xy kg/m2/s DST1 1009 1 2 +0 PM25FINE_3 $ROOT/AFCID/v2018-04/PM25FINE_IITB_2013.generic.025x025.nc PM25FINE 2013/1-12/1/0 C xy kg/m2/s DST1 1010 1 3 +)))AFCID + +#============================================================================== +# --- Offline dust emissions --- +#============================================================================== +(((OFFLINE_DUST +(((.not.DustDead.or.DustGinoux +0 EMIS_DST1 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST1 1980-2021/1-12/1-31/* C xy kg/m2/s DST1 - 3 2 +0 EMIS_DST2 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST2 1980-2021/1-12/1-31/* C xy kg/m2/s DST2 - 3 2 +0 EMIS_DST3 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST3 1980-2021/1-12/1-31/* C xy kg/m2/s DST3 - 3 2 +0 EMIS_DST4 $ROOT/OFFLINE_DUST/v2021-08/0.5x0.625/$YYYY/$MM/dust_emissions_05.$YYYY$MM$DD.nc EMIS_DST4 1980-2021/1-12/1-31/* C xy kg/m2/s DST4 - 3 2 +))).not.DustDead.or.DustGinoux +)))OFFLINE_DUST + +#============================================================================== +# --- Offline biogenic VOC emissions --- +#============================================================================== +(((OFFLINE_BIOGENICVOC +0 BIOGENIC_ACET $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc ACET_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s ACET 40 4 2 +0 BIOGENIC_ALD2 $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc ALD2_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s ALD2 41 4 2 +0 BIOGENIC_C2H4 $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc C2H4_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s C2H4 44 4 2 +0 BIOGENIC_EOH $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc EOH_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s EOH 47 4 2 +0 BIOGENIC_ISOP $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc ISOP_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s ISOP 61 4 2 +0 BIOGENIC_ISOP_SOAP - - - - - - SOAP 610 4 2 +0 BIOGENIC_ISOP_SOAS - - - - - - SOAS 610 4 2 +0 BIOGENIC_LIMO $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc LIMO_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s LIMO - 4 2 +0 BIOGENIC_LIMO_SOAP - - - - - - SOAP 611 4 2 +0 BIOGENIC_LIMO_SOAS - - - - - - SOAS 611 4 2 +0 BIOGENIC_MTPA $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc MTPA_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s MTPA - 4 2 +0 BIOGENIC_MTPA_SOAP - - - - - - SOAP 611 4 2 +0 BIOGENIC_MTPA_SOAS - - - - - - SOAS 611 4 2 +0 BIOGENIC_MTPO $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc MTPO_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s MTPO - 4 2 +0 BIOGENIC_MTPO_SOAP - - - - - - SOAP 611 4 2 +0 BIOGENIC_MTPO_SOAS - - - - - - SOAS 611 4 2 +0 BIOGENIC_PRPE $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc PRPE_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s PRPE 49 4 2 +0 BIOGENIC_SESQ $ROOT/OFFLINE_BIOVOC/v2019-10/0.5x0.625/$YYYY/$MM/biovoc_05.$YYYY$MM$DD.nc SESQ_MEGAN 1980-2021/1-12/1-31/* C xy kgC/m2/s SESQ - 4 2 +0 BIOGENIC_SESQ_SOAP - - - - - - SOAP 612 4 2 +0 BIOGENIC_SESQ_SOAS - - - - - - SOAS 612 4 2 +)))OFFLINE_BIOGENICVOC + +#============================================================================== +# --- Offline sea salt emissions --- +#============================================================================== +(((OFFLINE_SEASALT +(((.not.SeaSalt +0 SEASALT_SALA $ROOT/OFFLINE_SEASALT/v2019-01/0.5x0.625/$YYYY/$MM/seasalt_05.$YYYY$MM$DD.nc SALA_TOTAL 1980-2021/1-12/1-31/* C xy kg/m2/s SALA - 3 2 +0 SEASALT_SALAAL - - - - - - SALAAL 615 3 2 +0 SEASALT_SALACL - - - - - - SALACL 616 3 2 +(((CalcBrSeasalt +0 SEASALT_BrSALA - - - - - - BrSALA 617 3 2 +)))CalcBrSeasalt +0 SEASALT_SALC $ROOT/OFFLINE_SEASALT/v2019-01/0.5x0.625/$YYYY/$MM/seasalt_05.$YYYY$MM$DD.nc SALC_TOTAL 1980-2021/1-12/1-31/* C xy kg/m2/s SALC - 3 2 +0 SEASALT_SALCAL - - - - - - SALCAL 615 3 2 +0 SEASALT_SALCCL - - - - - - SALCCL 616 3 2 +(((CalcBrSeasalt +0 SEASALT_BrSALC - - - - - - BrSALC 617 3 2 +)))CalcBrSeasalt +))).not.SeaSalt +)))OFFLINE_SEASALT + +#============================================================================== +# --- Offline soil NOx emissions --- +#============================================================================== +(((OFFLINE_SOILNOX +(((.not.SoilNOx +0 SOILNOX_NO $ROOT/OFFLINE_SOILNOX/v2019-01/0.5x0.625/$YYYY/$MM/soilnox_05.$YYYY$MM$DD.nc SOIL_NOx 1980-2021/1-12/1-31/* C xy kg/m2/s NO - 3 2 +))).not.SoilNOx +)))OFFLINE_SOILNOX + +############################################################################### +### EXTENSION DATA (subsection of BASE EMISSIONS SECTION) +### +### These fields are needed by the extensions listed above. The assigned ExtNr +### must match the ExtNr entry in section 'Extension switches'. These fields +### are only read if the extension is enabled. The fields are imported by the +### extensions by field name. The name given here must match the name used +### in the extension's source code. +############################################################################### + +#============================================================================== +# --- Seawater concentrations for oceanic emissions (Extension 101) --- +#============================================================================== +(((SeaFlux +#101 CH3I_SEAWATER $ROOT/CH3I/v2014-07/ocean_ch3i.geos.4x5.nc CH3I_OCEAN 1985/1-12/1/0 C xy kg/m3 CH3I - 1 1 +101 DMS_SEAWATER $ROOT/DMS/v2015-07/DMS_lana.geos.1x1.nc DMS_OCEAN 1985/1-12/1/0 C xy kg/m3 DMS - 1 1 +101 ACET_SEAWATER $ROOT/ACET/v2014-07/ACET_seawater.generic.1x1.nc ACET 2005/1/1/0 C xy kgC/m3 ACET 40 1 1 +101 ALD2_SEAWATER $ROOT/ALD2/v2017-03/ALD2_seawater.geos.2x25.nc ALD2 2006/1-12/1/0 C xy kgC/m3 ALD2 41 1 1 +101 MENO3_SEAWATER $ROOT/RONO2/v2019-05/RONO2_seawater.geos.2x25.nc MENO3 2006/1-12/1/0 C xy kg/m3 MENO3 - 1 1 +101 ETNO3_SEAWATER $ROOT/RONO2/v2019-05/RONO2_seawater.geos.2x25.nc ETNO3 2006/1-12/1/0 C xy kg/m3 ETNO3 - 1 1 +101 MOH_SEAWATER $ROOT/MOH/v2019-12/MOH_seawater.low.kgCm3.generic.1x1.nc MOH 2005/1/1/0 C xy kg/m3 MOH - 1 1 +)))SeaFlux + +#============================================================================== +# --- SOILNOX emissions (Extension 104) --- +#============================================================================== +(((SoilNOx +104 DEP_RESERVOIR_DEFAULT $ROOT/SOILNOX/v2014-07/DepReservoirDefault.nc DEP_RESERVOIR 2013/7/1/0 C xy kg/m3 NO - 1 1 +(((HEMCO_RESTART +104 PFACTOR ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PFACTOR $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 DRYPERIOD ./HEMCO_restart.$YYYY$MM$DD$HH00.nc DRYPERIOD $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 GWET_PREV ./HEMCO_restart.$YYYY$MM$DD$HH00.nc GWET_PREV $YYYY/$MM/$DD/$HH EY xy 1 NO - 1 1 +104 DEP_RESERVOIR ./HEMCO_restart.$YYYY$MM$DD$HH00.nc DEP_RESERVOIR $YYYY/$MM/$DD/$HH EY xy kg/m3 NO - 1 1 +)))HEMCO_RESTART +104 SOILNOX_FERT $ROOT/SOILNOX/v2014-07/soilNOx.fert_res.generic.05x05.nc FERT 2000/1-12/1-31/0 C xy kg/m3 NO - 1 1 +104 SOILNOX_LANDK1 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K01 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK2 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K02 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK3 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K03 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK4 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K04 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK5 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K05 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK6 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K06 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK7 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K07 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK8 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K08 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK9 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K09 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK10 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K10 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK11 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K11 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK12 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K12 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK13 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K13 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK14 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K14 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK15 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K15 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK16 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K16 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK17 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K17 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK18 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K18 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK19 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K19 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK20 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K20 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK21 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K21 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK22 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K22 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK23 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K23 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_LANDK24 $ROOT/SOILNOX/v2014-07/soilNOx.landtype.generic.025x025.1L.nc LANDFRAC_K24 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_ARID $ROOT/SOILNOX/v2014-07/soilNOx.climate.generic.05x05.nc ARID 2000/1/1/0 C xy 1 NO - 1 1 +104 SOILNOX_NONARID $ROOT/SOILNOX/v2014-07/soilNOx.climate.generic.05x05.nc NON_ARID 2000/1/1/0 C xy 1 NO - 1 1 +)))SoilNOx + +#============================================================================== +# --- Dust emissions using DEAD model (Extensions 105 and 131) --- +#============================================================================== +(((DustDead +105 DEAD_EF_GEO $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc EF_GEO 1985/1/1/0 C xy factor * - 1 1 +105 DEAD_LF_DRY $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc LF_DRY 1985/1/1/0 C xy factor * - 1 1 +105 DEAD_MF_CACO3 $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc MF_CaCO3 1985/1/1/0 C xy fraction * - 1 1 +105 DEAD_MF_CLY $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc MF_CLY 1985/1/1/0 C xy fraction * - 1 1 +105 DEAD_MF_SND $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc MF_SND 1985/1/1/0 C xy fraction * - 1 1 +105 DEAD_SFC_TYP $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc SFC_TYP 1985/1/1/0 C xy unitless * - 1 1 +105 DEAD_GOC_SRC $ROOT/DUST_DEAD/v2019-06/GOCART_src_fn.geos.2x25.nc GOC_SRC 1985/1/1/0 C xy unitless * - 1 1 +105 DEAD_VAI $ROOT/DUST_DEAD/v2019-06/dst_tvbds.geos.2x25.nc VAI 1985/1-12/1/0 C xy unitless * - 1 1 +)))DustDead +(((TOMAS_DustDead +131 DEAD_EF_GEO $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc EF_GEO 1985/1/1/0 C xy factor * - 1 1 +131 DEAD_LF_DRY $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc LF_DRY 1985/1/1/0 C xy factor * - 1 1 +131 DEAD_MF_CACO3 $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc MF_CaCO3 1985/1/1/0 C xy fraction * - 1 1 +131 DEAD_MF_CLY $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc MF_CLY 1985/1/1/0 C xy fraction * - 1 1 +131 DEAD_MF_SND $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc MF_SND 1985/1/1/0 C xy fraction * - 1 1 +131 DEAD_SFC_TYP $ROOT/DUST_DEAD/v2019-06/dst_tibds.geos.2x25.nc SFC_TYP 1985/1/1/0 C xy unitless * - 1 1 +131 DEAD_GOC_SRC $ROOT/DUST_DEAD/v2019-06/GOCART_src_fn.geos.2x25.nc GOC_SRC 1985/1/1/0 C xy unitless * - 1 1 +131 DEAD_VAI $ROOT/DUST_DEAD/v2019-06/dst_tvbds.geos.2x25.nc VAI 1985/1-12/1/0 C xy unitless * - 1 1 +)))TOMAS_DustDead + +#============================================================================== +# --- Dust emissions using Paul Ginoux's mechanism (Extension 106) +#============================================================================== +(((DustGinoux +106 GINOUX_SAND $ROOT/DUST_GINOUX/v2014-07/NSP.dust.geos.4x5.nc SAND 1985/1/1/0 C xy unitless * - 1 1 +106 GINOUX_SILT $ROOT/DUST_GINOUX/v2014-07/NSP.dust.geos.4x5.nc SILT 1985/1/1/0 C xy unitless * - 1 1 +106 GINOUX_CLAY $ROOT/DUST_GINOUX/v2014-07/NSP.dust.geos.4x5.nc CLAY 1985/1/1/0 C xy unitless * - 1 1 +)))DustGinoux + +#============================================================================== +# --- Sea salt emissions (Extensions 107 and 130) +# +# MODIS Chlorophyll-A fields used for emissions of marine organic aerosols +#============================================================================== +(((SeaSalt +107 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.$YYYY.nc MODIS 2005-2014/1-12/1/0 C xy 1 * - 1 1 +107 MULTISEAICE $ROOT/MULTI_ICE/v2021-07/multiyearice.merra2.05x0625.$YYYY.nc FRSEAICE 1980-2020/1-12/1-31/0 C xy 1 * - 1 1 + +# Climatology CHLR +#107 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.Clim.nc MODIS 2007/1-12/1/0 C xy 1 * - 1 1 +)))SeaSalt +(((TOMAS_Jeagle +130 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.$YYYY.nc MODIS 2005-2014/1-12/1/0 C xy 1 * - 1 1 + +# Climatology CHLR +#130 MODIS_CHLR $ROOT/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.Clim.nc MODIS 2007/1-12/1/0 C xy 1 * - 1 1 +)))TOMAS_Jeagle + +#============================================================================== +# --- MEGAN biogenic emissions (Extension 108) +# +# NOTE: These are the base emissions, which will be converted to kgC/m2/s by +# HEMCO. The specified species (OCPI/ISOP/ACET) are required for proper unit +# conversion. Since netCDF files are already in mass carbon (ug(C)), the only +# important thing is to specify a VOC with a specified MW of 12g/mol. +# This is the case for OCPI, ISOP and ACET. +# +# We don't need to read EF maps for acetone, a-pinene or myrcene. We now +# compute those values in the MEGAN extension. +#============================================================================== +(((MEGAN +(((HEMCO_RESTART +108 T_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 T_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 LAI_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +108 PARDR_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 PARDF_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +)))HEMCO_RESTART +108 MEGAN_AEF_ISOP $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_ISOPRENE 1985/1/1/0 C xy kgC/m2/s * 61 1 1 +108 MEGAN_AEF_MBOX $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_MBO 1985/1/1/0 C xy kgC/m2/s * 64 1 1 +#108 MEGAN_AEF_APIN $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_ALPHA_PINENE 1985/1/1/0 C xy kgC/m2/s * 62 1 1 +108 MEGAN_AEF_BPIN $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_BETA_PINENE 1985/1/1/0 C xy kgC/m2/s * 62 1 1 +108 MEGAN_AEF_CARE $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_CARENE 1985/1/1/0 C xy kgC/m2/s * 62 1 1 +108 MEGAN_AEF_LIMO $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_LIMONENE 1985/1/1/0 C xy kgC/m2/s * 62 1 1 +#108 MEGAN_AEF_MYRC $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_MYRCENE 1985/1/1/0 C xy kgC/m2/s * 62 1 1 +108 MEGAN_AEF_OCIM $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_OCIMENE 1985/1/1/0 C xy kgC/m2/s * 62 1 1 +108 MEGAN_AEF_SABI $ROOT/MEGAN/v2018-05/MEGAN2.1_EF.geos.025x03125.nc AEF_SABINENE 1985/1/1/0 C xy kgC/m2/s * 62 1 1 +108 CLM4_PFT_BARE $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_BARE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_NDLF_EVGN_TMPT_TREE $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_NDLF_EVGN_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_NDLF_EVGN_BORL_TREE $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_NDLF_EVGN_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_NDLF_DECD_BORL_TREE $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_NDLF_DECD_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_EVGN_TROP_TREE $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_BDLF_EVGN_TROP_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_EVGN_TMPT_TREE $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_BDLF_EVGN_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_TROP_TREE $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_BDLF_DECD_TROP_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_TMPT_TREE $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_BDLF_DECD_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_BORL_TREE $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_BDLF_DECD_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_EVGN_SHRB $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_BDLF_EVGN_SHRB 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_TMPT_SHRB $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_BDLF_DECD_TMPT_SHRB 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_BORL_SHRB $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_BDLF_DECD_BORL_SHRB 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_C3_ARCT_GRSS $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_C3_ARCT_GRSS 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_C3_NARC_GRSS $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_C3_NARC_GRSS 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_C4_GRSS $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_C4_GRSS 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_CROP $ROOT/MEGAN/v2018-05/CLM4_PFT.geos.025x03125.v201805.nc PFT_CROP 2000/1/1/0 C xy 1 * - 1 1 +)))MEGAN + +#============================================================================== +# --- GFED biomass burning emissions (Extension 111) +# NOTE: These are the base emissions in kgDM/m2/s. +#============================================================================== +(((GFED4 +111 GFED_TEMP $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2020-02/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2019/1-12/01/0 RF xy kgDM/m2/s * - 1 1 + +(((GFED_subgrid_coag +111 FINN_DAILY_NUMBER $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25_with_num.nc number 2002-2016/1-12/1/0 RF xy unitless * - 1 1 +)))GFED_subgrid_coag + +(((GFED_daily +111 GFED_FRAC_DAY $ROOT/GFED4/v2020-02/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2019/1-12/1-31/0 RF xy 1 * - 1 1 +)))GFED_daily + +(((GFED_3hourly +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2020-02/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2019/1-12/1/0-23 RF xy 1 * - 1 1 +)))GFED_3hourly +)))GFED4 + +#============================================================================== +# --- FINN v1.5 biomass burning emissions (Extension 114) +#============================================================================== +(((.not.FINN_daily +114 FINN_VEGTYP1 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype1 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP2 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype2 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP3 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype3 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP4 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype4 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP5 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype5 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_VEGTYP9 $ROOT/FINN/v2015-02/FINN_monthly_$YYYY_0.25x0.25.compressed.nc fire_vegtype9 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +))).not.FINN_daily + +(((FINN_daily +114 FINN_DAILY_VEGTYP1 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype1 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP2 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype2 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP3 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype3 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP4 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype4 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP5 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype5 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 +114 FINN_DAILY_VEGTYP9 $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25.compressed.nc fire_vegtype9 2002-2016/1-12/1/0 RF xy kg/m2/s * - 1 1 + +(((FINN_subgrid_coag +114 FINN_DAILY_NUMBER $ROOT/FINN/v2015-02/FINN_daily_$YYYY_0.25x0.25_with_num.nc number 2002-2016/1-12/1/0 RF xy unitless * - 1 1 +)))FINN_subgrid_coag + +)))FINN_daily + +)))EMISSIONS + +############################################################################### +### NON-EMISSIONS DATA (subsection of BASE EMISSIONS SECTION) +### +### Non-emissions data. The following fields are read through HEMCO but do +### not contain emissions data. The extension number is set to wildcard +### character denoting that these fields will not be considered for emission +### calculation. A given entry is only read if the assigned species name is +### an HEMCO species. +############################################################################### + +#============================================================================== +# --- Time zones (offset to UTC) --- +#============================================================================== +* TIMEZONES $ROOT/TIMEZONES/v2015-02/timezones_voronoi_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 + +(((CHEMISTRY_INPUT + +#============================================================================== +# --- UV albedo, for photolysis (cf Hermann & Celarier, 1997) --- +#============================================================================== +(((UVALBEDO +* UV_ALBEDO $ROOT/UVALBEDO/v2019-06/uvalbedo.geos.2x25.nc UVALBD 1985/1-12/1/0 C xy percent * - 1 1 +)))UVALBEDO + +#============================================================================== +# --- Stratospheric Bry data from the CCM model --- +#============================================================================== +(((CCM_STRAT_Bry +* GEOSCCM_Br_DAY $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc BR 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_Br2_DAY $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc BRCL 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_BrO_DAY $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc BRO 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_BrNO3_DAY $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc BRONO2 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_HBr_DAY $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc HBR 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_HOBr_DAY $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc HOBR 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_Br_NIGHT $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc BR 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_Br2_NIGHT $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc BRCL 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_BrO_NIGHT $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc BRO 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_BrNO3_NIGHT $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc BRONO2 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_HBr_NIGHT $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc HBR 2007/1-12/1/0 C xyz pptv * - 60 1 +* GEOSCCM_HOBr_NIGHT $ROOT/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc HOBR 2007/1-12/1/0 C xyz pptv * - 60 1 +)))CCM_STRAT_Bry + +#============================================================================== +#--- Archived GMI OH concentrations --- +#============================================================================== +(((GMI_OH +* GMI_OH $ROOT/GMI/v2015-02/gmi.clim.OH.geos5.2x25.nc species 2005/1-12/1/0 C xyz v/v * - 1 1 +)))GMI_OH + +#============================================================================== +#--- GMI chemistry: prod/loss rates --- +# +# Used for linearized mesospheric chemistry +#============================================================================== +(((GMI_PROD_LOSS +* GMI_LOSS_A3O2 $ROOT/GMI/v2015-02/gmi.clim.A3O2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 A3O2 - 1 1 +* GMI_PROD_A3O2 $ROOT/GMI/v2015-02/gmi.clim.A3O2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s A3O2 - 1 1 +* GMI_LOSS_ACET $ROOT/GMI/v2015-02/gmi.clim.ACET.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ACET - 1 1 +* GMI_PROD_ACET $ROOT/GMI/v2015-02/gmi.clim.ACET.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ACET - 1 1 +* GMI_LOSS_ACTA $ROOT/GMI/v2015-02/gmi.clim.ACTA.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ACTA - 1 1 +* GMI_PROD_ACTA $ROOT/GMI/v2015-02/gmi.clim.ACTA.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ACTA - 1 1 +* GMI_LOSS_ALD2 $ROOT/GMI/v2015-02/gmi.clim.ALD2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ALD2 - 1 1 +* GMI_PROD_ALD2 $ROOT/GMI/v2015-02/gmi.clim.ALD2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ALD2 - 1 1 +* GMI_LOSS_ALK4 $ROOT/GMI/v2015-02/gmi.clim.ALK4.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ALK4 - 1 1 +* GMI_PROD_ALK4 $ROOT/GMI/v2015-02/gmi.clim.ALK4.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ALK4 - 1 1 +* GMI_LOSS_ATO2 $ROOT/GMI/v2015-02/gmi.clim.ATO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ATO2 - 1 1 +* GMI_PROD_ATO2 $ROOT/GMI/v2015-02/gmi.clim.ATO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ATO2 - 1 1 +* GMI_LOSS_B3O2 $ROOT/GMI/v2015-02/gmi.clim.B3O2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 B3O2 - 1 1 +* GMI_PROD_B3O2 $ROOT/GMI/v2015-02/gmi.clim.B3O2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s B3O2 - 1 1 +#* GMI_LOSS_Br $ROOT/GMI/v2015-02/gmi.clim.Br.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 Br - 1 1 +#* GMI_PROD_Br $ROOT/GMI/v2015-02/gmi.clim.Br.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s Br - 1 1 +#* GMI_LOSS_BrCl $ROOT/GMI/v2015-02/gmi.clim.BrCl.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 BrCl - 1 1 +#* GMI_PROD_BrCl $ROOT/GMI/v2015-02/gmi.clim.BrCl.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s BrCl - 1 1 +#* GMI_LOSS_BrO $ROOT/GMI/v2015-02/gmi.clim.BrO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 BrO - 1 1 +#* GMI_PROD_BrO $ROOT/GMI/v2015-02/gmi.clim.BrO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s BrO - 1 1 +#* GMI_LOSS_BrNO3 $ROOT/GMI/v2015-02/gmi.clim.BrONO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 BrNO3 - 1 1 +#* GMI_PROD_BrNO3 $ROOT/GMI/v2015-02/gmi.clim.BrONO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s BrNO3 - 1 1 +* GMI_LOSS_C2H6 $ROOT/GMI/v2015-02/gmi.clim.C2H6.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 C2H6 - 1 1 +* GMI_PROD_C2H6 $ROOT/GMI/v2015-02/gmi.clim.C2H6.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s C2H6 - 1 1 +* GMI_LOSS_C3H8 $ROOT/GMI/v2015-02/gmi.clim.C3H8.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 C3H8 - 1 1 +* GMI_PROD_C3H8 $ROOT/GMI/v2015-02/gmi.clim.C3H8.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s C3H8 - 1 1 +* GMI_LOSS_CCl4 $ROOT/GMI/v2015-02/gmi.clim.CCl4.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CCl4 - 1 1 +* GMI_PROD_CCl4 $ROOT/GMI/v2015-02/gmi.clim.CCl4.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CCl4 - 1 1 +#* GMI_LOSS_H1202 $ROOT/GMI/v2015-02/gmi.clim.CF2Br2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 H1202 - 1 1 +#* GMI_PROD_H1202 $ROOT/GMI/v2015-02/gmi.clim.CF2Br2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s H1202 - 1 1 +* GMI_LOSS_CFC12 $ROOT/GMI/v2015-02/gmi.clim.CF2Cl2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CFC12 - 1 1 +* GMI_PROD_CFC12 $ROOT/GMI/v2015-02/gmi.clim.CF2Cl2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CFC12 - 1 1 +* GMI_LOSS_H1211 $ROOT/GMI/v2015-02/gmi.clim.CF2ClBr.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 H1211 - 1 1 +* GMI_PROD_H1211 $ROOT/GMI/v2015-02/gmi.clim.CF2ClBr.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s H1211 - 1 1 +#* GMI_LOSS_H1311 $ROOT/GMI/v2015-02/gmi.clim.CF3Br.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 H1311 - 1 1 +#* GMI_PROD_H1311 $ROOT/GMI/v2015-02/gmi.clim.CF3Br.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s H1311 - 1 1 +* GMI_LOSS_CFC113 $ROOT/GMI/v2015-02/gmi.clim.CFC113.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CFC113 - 1 1 +* GMI_PROD_CFC113 $ROOT/GMI/v2015-02/gmi.clim.CFC113.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CFC113 - 1 1 +* GMI_LOSS_CFC114 $ROOT/GMI/v2015-02/gmi.clim.CFC114.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CFC114 - 1 1 +* GMI_PROD_CFC114 $ROOT/GMI/v2015-02/gmi.clim.CFC114.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CFC114 - 1 1 +* GMI_LOSS_CFC115 $ROOT/GMI/v2015-02/gmi.clim.CFC115.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CFC115 - 1 1 +* GMI_PROD_CFC115 $ROOT/GMI/v2015-02/gmi.clim.CFC115.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CFC115 - 1 1 +* GMI_LOSS_CFC11 $ROOT/GMI/v2015-02/gmi.clim.CFCl3.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CFC11 - 1 1 +* GMI_PROD_CFC11 $ROOT/GMI/v2015-02/gmi.clim.CFCl3.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CFC11 - 1 1 +* GMI_LOSS_CH2O $ROOT/GMI/v2015-02/gmi.clim.CH2O.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CH2O - 1 1 +* GMI_PROD_CH2O $ROOT/GMI/v2015-02/gmi.clim.CH2O.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CH2O - 1 1 +#* GMI_LOSS_CH3Br $ROOT/GMI/v2015-02/gmi.clim.CH3Br.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CH3Br - 1 1 +#* GMI_PROD_CH3Br $ROOT/GMI/v2015-02/gmi.clim.CH3Br.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CH3Br - 1 1 +* GMI_LOSS_CH3CCl3 $ROOT/GMI/v2015-02/gmi.clim.CH3CCl3.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CH3CCl3 - 1 1 +* GMI_PROD_CH3CCl3 $ROOT/GMI/v2015-02/gmi.clim.CH3CCl3.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CH3CCl3 - 1 1 +* GMI_LOSS_CH3Cl $ROOT/GMI/v2015-02/gmi.clim.CH3Cl.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CH3Cl - 1 1 +* GMI_PROD_CH3Cl $ROOT/GMI/v2015-02/gmi.clim.CH3Cl.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CH3Cl - 1 1 +* GMI_LOSS_CH4 $ROOT/GMI/v2015-02/gmi.clim.CH4.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CH4 - 1 1 +* GMI_PROD_CH4 $ROOT/GMI/v2015-02/gmi.clim.CH4.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CH4 - 1 1 +* GMI_LOSS_CO $ROOT/GMI/v2015-02/gmi.clim.CO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 CO - 1 1 +* GMI_PROD_CO $ROOT/GMI/v2015-02/gmi.clim.CO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s CO - 1 1 +* GMI_LOSS_Cl $ROOT/GMI/v2015-02/gmi.clim.Cl.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 Cl - 1 1 +* GMI_PROD_Cl $ROOT/GMI/v2015-02/gmi.clim.Cl.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s Cl - 1 1 +* GMI_LOSS_Cl2 $ROOT/GMI/v2015-02/gmi.clim.Cl2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 Cl2 - 1 1 +* GMI_PROD_Cl2 $ROOT/GMI/v2015-02/gmi.clim.Cl2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s Cl2 - 1 1 +* GMI_LOSS_Cl2O2 $ROOT/GMI/v2015-02/gmi.clim.Cl2O2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 Cl2O2 - 1 1 +* GMI_PROD_Cl2O2 $ROOT/GMI/v2015-02/gmi.clim.Cl2O2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s Cl2O2 - 1 1 +* GMI_LOSS_ClO $ROOT/GMI/v2015-02/gmi.clim.ClO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ClO - 1 1 +* GMI_PROD_ClO $ROOT/GMI/v2015-02/gmi.clim.ClO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ClO - 1 1 +* GMI_LOSS_ClONO2 $ROOT/GMI/v2015-02/gmi.clim.ClONO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ClONO2 - 1 1 +* GMI_PROD_ClONO2 $ROOT/GMI/v2015-02/gmi.clim.ClONO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ClONO2 - 1 1 +* GMI_LOSS_EOH $ROOT/GMI/v2015-02/gmi.clim.EOH.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 EOH - 1 1 +* GMI_PROD_EOH $ROOT/GMI/v2015-02/gmi.clim.EOH.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s EOH - 1 1 +* GMI_LOSS_ETO2 $ROOT/GMI/v2015-02/gmi.clim.ETO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ETO2 - 1 1 +* GMI_PROD_ETO2 $ROOT/GMI/v2015-02/gmi.clim.ETO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ETO2 - 1 1 +* GMI_LOSS_ETP $ROOT/GMI/v2015-02/gmi.clim.ETP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ETP - 1 1 +* GMI_PROD_ETP $ROOT/GMI/v2015-02/gmi.clim.ETP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ETP - 1 1 +* GMI_LOSS_GCO3 $ROOT/GMI/v2015-02/gmi.clim.GCO3.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 GCO3 - 1 1 +* GMI_PROD_GCO3 $ROOT/GMI/v2015-02/gmi.clim.GCO3.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s GCO3 - 1 1 +* GMI_LOSS_GLYC $ROOT/GMI/v2015-02/gmi.clim.GLYC.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 GLYC - 1 1 +* GMI_PROD_GLYC $ROOT/GMI/v2015-02/gmi.clim.GLYC.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s GLYC - 1 1 +* GMI_LOSS_GLYX $ROOT/GMI/v2015-02/gmi.clim.GLYX.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 GLYX - 1 1 +* GMI_PROD_GLYX $ROOT/GMI/v2015-02/gmi.clim.GLYX.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s GLYX - 1 1 +* GMI_LOSS_GP $ROOT/GMI/v2015-02/gmi.clim.GP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 GP - 1 1 +* GMI_PROD_GP $ROOT/GMI/v2015-02/gmi.clim.GP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s GP - 1 1 +* GMI_LOSS_GPAN $ROOT/GMI/v2015-02/gmi.clim.GPAN.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 GPAN - 1 1 +* GMI_PROD_GPAN $ROOT/GMI/v2015-02/gmi.clim.GPAN.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s GPAN - 1 1 +* GMI_LOSS_H $ROOT/GMI/v2015-02/gmi.clim.H.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 H - 1 1 +* GMI_PROD_H $ROOT/GMI/v2015-02/gmi.clim.H.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s H - 1 1 +* GMI_LOSS_H2 $ROOT/GMI/v2015-02/gmi.clim.H2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 H2 - 1 1 +* GMI_PROD_H2 $ROOT/GMI/v2015-02/gmi.clim.H2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s H2 - 1 1 +* GMI_LOSS_H2402 $ROOT/GMI/v2015-02/gmi.clim.H2402.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 H2402 - 1 1 +* GMI_PROD_H2402 $ROOT/GMI/v2015-02/gmi.clim.H2402.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s H2402 - 1 1 +* GMI_LOSS_H2O $ROOT/GMI/v2015-02/gmi.clim.H2O.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 H2O - 1 1 +* GMI_PROD_H2O $ROOT/GMI/v2015-02/gmi.clim.H2O.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s H2O - 1 1 +* GMI_LOSS_H2O2 $ROOT/GMI/v2015-02/gmi.clim.H2O2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 H2O2 - 1 1 +* GMI_PROD_H2O2 $ROOT/GMI/v2015-02/gmi.clim.H2O2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s H2O2 - 1 1 +* GMI_LOSS_HAC $ROOT/GMI/v2015-02/gmi.clim.HAC.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HAC - 1 1 +* GMI_PROD_HAC $ROOT/GMI/v2015-02/gmi.clim.HAC.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HAC - 1 1 +#* GMI_LOSS_HBr $ROOT/GMI/v2015-02/gmi.clim.HBr.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HBr - 1 1 +#* GMI_PROD_HBr $ROOT/GMI/v2015-02/gmi.clim.HBr.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HBr - 1 1 +* GMI_LOSS_HCFC141b $ROOT/GMI/v2015-02/gmi.clim.HCFC141b.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HCFC141b - 1 1 +* GMI_PROD_HCFC141b $ROOT/GMI/v2015-02/gmi.clim.HCFC141b.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HCFC141b - 1 1 +* GMI_LOSS_HCFC142b $ROOT/GMI/v2015-02/gmi.clim.HCFC142b.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HCFC142b - 1 1 +* GMI_PROD_HCFC142b $ROOT/GMI/v2015-02/gmi.clim.HCFC142b.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HCFC142b - 1 1 +* GMI_LOSS_HCFC22 $ROOT/GMI/v2015-02/gmi.clim.HCFC22.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HCFC22 - 1 1 +* GMI_PROD_HCFC22 $ROOT/GMI/v2015-02/gmi.clim.HCFC22.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HCFC22 - 1 1 +* GMI_LOSS_HCOOH $ROOT/GMI/v2015-02/gmi.clim.HCOOH.geos5.2x25.20170108.nc loss 2005/1-12/1/0 C xyz s-1 HCOOH - 1 1 +* GMI_PROD_HCOOH $ROOT/GMI/v2015-02/gmi.clim.HCOOH.geos5.2x25.20170108.nc prod 2005/1-12/1/0 C xyz v/v/s HCOOH - 1 1 +* GMI_LOSS_HCl $ROOT/GMI/v2015-02/gmi.clim.HCl.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HCl - 1 1 +* GMI_PROD_HCl $ROOT/GMI/v2015-02/gmi.clim.HCl.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HCl - 1 1 +* GMI_LOSS_HNO2 $ROOT/GMI/v2015-02/gmi.clim.HNO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HNO2 - 1 1 +* GMI_PROD_HNO2 $ROOT/GMI/v2015-02/gmi.clim.HNO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HNO2 - 1 1 +* GMI_LOSS_HNO3 $ROOT/GMI/v2015-02/gmi.clim.HNO3.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HNO3 - 1 1 +* GMI_PROD_HNO3 $ROOT/GMI/v2015-02/gmi.clim.HNO3.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HNO3 - 1 1 +* GMI_LOSS_HNO4 $ROOT/GMI/v2015-02/gmi.clim.HNO4.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HNO4 - 1 1 +* GMI_PROD_HNO4 $ROOT/GMI/v2015-02/gmi.clim.HNO4.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HNO4 - 1 1 +* GMI_LOSS_HO2 $ROOT/GMI/v2015-02/gmi.clim.HO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HO2 - 1 1 +* GMI_PROD_HO2 $ROOT/GMI/v2015-02/gmi.clim.HO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HO2 - 1 1 +#* GMI_LOSS_HOBr $ROOT/GMI/v2015-02/gmi.clim.HOBr.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HOBr - 1 1 +#* GMI_PROD_HOBr $ROOT/GMI/v2015-02/gmi.clim.HOBr.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HOBr - 1 1 +* GMI_LOSS_HOCl $ROOT/GMI/v2015-02/gmi.clim.HOCl.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 HOCl - 1 1 +* GMI_PROD_HOCl $ROOT/GMI/v2015-02/gmi.clim.HOCl.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s HOCl - 1 1 +* GMI_LOSS_IALD $ROOT/GMI/v2015-02/gmi.clim.IALD.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 IALD - 1 1 +* GMI_PROD_IALD $ROOT/GMI/v2015-02/gmi.clim.IALD.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s IALD - 1 1 +* GMI_LOSS_IAO2 $ROOT/GMI/v2015-02/gmi.clim.IAO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 IAO2 - 1 1 +* GMI_PROD_IAO2 $ROOT/GMI/v2015-02/gmi.clim.IAO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s IAO2 - 1 1 +* GMI_LOSS_IAP $ROOT/GMI/v2015-02/gmi.clim.IAP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 IAP - 1 1 +* GMI_PROD_IAP $ROOT/GMI/v2015-02/gmi.clim.IAP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s IAP - 1 1 +* GMI_LOSS_INO2 $ROOT/GMI/v2015-02/gmi.clim.INO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 INO2 - 1 1 +* GMI_PROD_INO2 $ROOT/GMI/v2015-02/gmi.clim.INO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s INO2 - 1 1 +* GMI_LOSS_INPN $ROOT/GMI/v2015-02/gmi.clim.INPN.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 INPN - 1 1 +* GMI_PROD_INPN $ROOT/GMI/v2015-02/gmi.clim.INPN.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s INPN - 1 1 +* GMI_LOSS_ISN1 $ROOT/GMI/v2015-02/gmi.clim.ISN1.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ISN1 - 1 1 +* GMI_PROD_ISN1 $ROOT/GMI/v2015-02/gmi.clim.ISN1.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ISN1 - 1 1 +* GMI_LOSS_ISNP $ROOT/GMI/v2015-02/gmi.clim.ISNP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ISNP - 1 1 +* GMI_PROD_ISNP $ROOT/GMI/v2015-02/gmi.clim.ISNP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ISNP - 1 1 +* GMI_LOSS_ISOP $ROOT/GMI/v2015-02/gmi.clim.ISOP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ISOP - 1 1 +* GMI_PROD_ISOP $ROOT/GMI/v2015-02/gmi.clim.ISOP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ISOP - 1 1 +* GMI_LOSS_KO2 $ROOT/GMI/v2015-02/gmi.clim.KO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 KO2 - 1 1 +* GMI_PROD_KO2 $ROOT/GMI/v2015-02/gmi.clim.KO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s KO2 - 1 1 +* GMI_LOSS_MACR $ROOT/GMI/v2015-02/gmi.clim.MACR.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MACR - 1 1 +* GMI_PROD_MACR $ROOT/GMI/v2015-02/gmi.clim.MACR.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MACR - 1 1 +* GMI_LOSS_MAN2 $ROOT/GMI/v2015-02/gmi.clim.MAN2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MAN2 - 1 1 +* GMI_PROD_MAN2 $ROOT/GMI/v2015-02/gmi.clim.MAN2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MAN2 - 1 1 +* GMI_LOSS_MAO3 $ROOT/GMI/v2015-02/gmi.clim.MAO3.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MAO3 - 1 1 +* GMI_PROD_MAO3 $ROOT/GMI/v2015-02/gmi.clim.MAO3.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MAO3 - 1 1 +* GMI_LOSS_MAOP $ROOT/GMI/v2015-02/gmi.clim.MAOP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MAOP - 1 1 +* GMI_PROD_MAOP $ROOT/GMI/v2015-02/gmi.clim.MAOP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MAOP - 1 1 +* GMI_LOSS_MAP $ROOT/GMI/v2015-02/gmi.clim.MAP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MAP - 1 1 +* GMI_PROD_MAP $ROOT/GMI/v2015-02/gmi.clim.MAP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MAP - 1 1 +* GMI_LOSS_MCO3 $ROOT/GMI/v2015-02/gmi.clim.MCO3.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MCO3 - 1 1 +* GMI_PROD_MCO3 $ROOT/GMI/v2015-02/gmi.clim.MCO3.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MCO3 - 1 1 +* GMI_LOSS_MEK $ROOT/GMI/v2015-02/gmi.clim.MEK.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MEK - 1 1 +* GMI_PROD_MEK $ROOT/GMI/v2015-02/gmi.clim.MEK.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MEK - 1 1 +* GMI_LOSS_MGLY $ROOT/GMI/v2015-02/gmi.clim.MGLY.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MGLY - 1 1 +* GMI_PROD_MGLY $ROOT/GMI/v2015-02/gmi.clim.MGLY.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MGLY - 1 1 +* GMI_LOSS_MO2 $ROOT/GMI/v2015-02/gmi.clim.MO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MO2 - 1 1 +* GMI_PROD_MO2 $ROOT/GMI/v2015-02/gmi.clim.MO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MO2 - 1 1 +* GMI_LOSS_MOH $ROOT/GMI/v2015-02/gmi.clim.MOH.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MOH - 1 1 +* GMI_PROD_MOH $ROOT/GMI/v2015-02/gmi.clim.MOH.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MOH - 1 1 +* GMI_LOSS_MP $ROOT/GMI/v2015-02/gmi.clim.MP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MP - 1 1 +* GMI_PROD_MP $ROOT/GMI/v2015-02/gmi.clim.MP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MP - 1 1 +* GMI_LOSS_MRO2 $ROOT/GMI/v2015-02/gmi.clim.MRO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MRO2 - 1 1 +* GMI_PROD_MRO2 $ROOT/GMI/v2015-02/gmi.clim.MRO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MRO2 - 1 1 +* GMI_LOSS_MRP $ROOT/GMI/v2015-02/gmi.clim.MRP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MRP - 1 1 +* GMI_PROD_MRP $ROOT/GMI/v2015-02/gmi.clim.MRP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MRP - 1 1 +* GMI_LOSS_MVK $ROOT/GMI/v2015-02/gmi.clim.MVK.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MVK - 1 1 +* GMI_PROD_MVK $ROOT/GMI/v2015-02/gmi.clim.MVK.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MVK - 1 1 +* GMI_LOSS_MVN2 $ROOT/GMI/v2015-02/gmi.clim.MVN2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 MVN2 - 1 1 +* GMI_PROD_MVN2 $ROOT/GMI/v2015-02/gmi.clim.MVN2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s MVN2 - 1 1 +* GMI_LOSS_N $ROOT/GMI/v2015-02/gmi.clim.N.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 N - 1 1 +* GMI_PROD_N $ROOT/GMI/v2015-02/gmi.clim.N.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s N - 1 1 +* GMI_LOSS_N2O $ROOT/GMI/v2015-02/gmi.clim.N2O.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 N2O - 1 1 +* GMI_PROD_N2O $ROOT/GMI/v2015-02/gmi.clim.N2O.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s N2O - 1 1 +* GMI_LOSS_N2O5 $ROOT/GMI/v2015-02/gmi.clim.N2O5.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 N2O5 - 1 1 +* GMI_PROD_N2O5 $ROOT/GMI/v2015-02/gmi.clim.N2O5.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s N2O5 - 1 1 +* GMI_LOSS_NO $ROOT/GMI/v2015-02/gmi.clim.NO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 NO - 1 1 +* GMI_PROD_NO $ROOT/GMI/v2015-02/gmi.clim.NO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s NO - 1 1 +* GMI_LOSS_NO2 $ROOT/GMI/v2015-02/gmi.clim.NO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 NO2 - 1 1 +* GMI_PROD_NO2 $ROOT/GMI/v2015-02/gmi.clim.NO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s NO2 - 1 1 +* GMI_LOSS_NO3 $ROOT/GMI/v2015-02/gmi.clim.NO3.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 NO3 - 1 1 +* GMI_PROD_NO3 $ROOT/GMI/v2015-02/gmi.clim.NO3.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s NO3 - 1 1 +* GMI_LOSS_NOx $ROOT/GMI/v2015-02/gmi.clim.NOx.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 NOx - 1 1 +* GMI_PROD_NOx $ROOT/GMI/v2015-02/gmi.clim.NOx.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s NOx - 1 1 +* GMI_LOSS_O $ROOT/GMI/v2015-02/gmi.clim.O.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 O - 1 1 +* GMI_PROD_O $ROOT/GMI/v2015-02/gmi.clim.O.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s O - 1 1 +* GMI_LOSS_O1D $ROOT/GMI/v2015-02/gmi.clim.O1D.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 O1D - 1 1 +* GMI_PROD_O1D $ROOT/GMI/v2015-02/gmi.clim.O1D.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s O1D - 1 1 +* GMI_LOSS_O3 $ROOT/GMI/v2015-02/gmi.clim.O3.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 O3 - 1 1 +* GMI_PROD_O3 $ROOT/GMI/v2015-02/gmi.clim.O3.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s O3 - 1 1 +* GMI_LOSS_OClO $ROOT/GMI/v2015-02/gmi.clim.OClO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 OClO - 1 1 +* GMI_PROD_OClO $ROOT/GMI/v2015-02/gmi.clim.OClO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s OClO - 1 1 +* GMI_LOSS_OH $ROOT/GMI/v2015-02/gmi.clim.OH.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 OH - 1 1 +* GMI_PROD_OH $ROOT/GMI/v2015-02/gmi.clim.OH.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s OH - 1 1 +* GMI_LOSS_Ox $ROOT/GMI/v2015-02/gmi.clim.Ox.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 Ox - 1 1 +* GMI_PROD_Ox $ROOT/GMI/v2015-02/gmi.clim.Ox.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s Ox - 1 1 +* GMI_LOSS_PAN $ROOT/GMI/v2015-02/gmi.clim.PAN.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 PAN - 1 1 +* GMI_PROD_PAN $ROOT/GMI/v2015-02/gmi.clim.PAN.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s PAN - 1 1 +* GMI_LOSS_NPMN $ROOT/GMI/v2015-02/gmi.clim.NPMN.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 NPMN - 1 1 +* GMI_PROD_NPMN $ROOT/GMI/v2015-02/gmi.clim.NPMN.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s NPMN - 1 1 +* GMI_LOSS_IPMN $ROOT/GMI/v2015-02/gmi.clim.IPMN.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 IPMN - 1 1 +* GMI_PROD_IPMN $ROOT/GMI/v2015-02/gmi.clim.IPMN.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s IPMN - 1 1 +* GMI_LOSS_PO2 $ROOT/GMI/v2015-02/gmi.clim.PO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 PO2 - 1 1 +* GMI_PROD_PO2 $ROOT/GMI/v2015-02/gmi.clim.PO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s PO2 - 1 1 +* GMI_LOSS_PP $ROOT/GMI/v2015-02/gmi.clim.PP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 PP - 1 1 +* GMI_PROD_PP $ROOT/GMI/v2015-02/gmi.clim.PP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s PP - 1 1 +* GMI_LOSS_PPN $ROOT/GMI/v2015-02/gmi.clim.PPN.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 PPN - 1 1 +* GMI_PROD_PPN $ROOT/GMI/v2015-02/gmi.clim.PPN.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s PPN - 1 1 +* GMI_LOSS_PRN1 $ROOT/GMI/v2015-02/gmi.clim.PRN1.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 PRN1 - 1 1 +* GMI_PROD_PRN1 $ROOT/GMI/v2015-02/gmi.clim.PRN1.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s PRN1 - 1 1 +* GMI_LOSS_PRPE $ROOT/GMI/v2015-02/gmi.clim.PRPE.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 PRPE - 1 1 +* GMI_PROD_PRPE $ROOT/GMI/v2015-02/gmi.clim.PRPE.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s PRPE - 1 1 +* GMI_LOSS_PRPN $ROOT/GMI/v2015-02/gmi.clim.PRPN.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 PRPN - 1 1 +* GMI_PROD_PRPN $ROOT/GMI/v2015-02/gmi.clim.PRPN.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s PRPN - 1 1 +* GMI_LOSS_R4N1 $ROOT/GMI/v2015-02/gmi.clim.R4N1.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 R4N1 - 1 1 +* GMI_PROD_R4N1 $ROOT/GMI/v2015-02/gmi.clim.R4N1.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s R4N1 - 1 1 +* GMI_LOSS_R4N2 $ROOT/GMI/v2015-02/gmi.clim.R4N2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 R4N2 - 1 1 +* GMI_PROD_R4N2 $ROOT/GMI/v2015-02/gmi.clim.R4N2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s R4N2 - 1 1 +* GMI_LOSS_R4O2 $ROOT/GMI/v2015-02/gmi.clim.R4O2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 R4O2 - 1 1 +* GMI_PROD_R4O2 $ROOT/GMI/v2015-02/gmi.clim.R4O2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s R4O2 - 1 1 +* GMI_LOSS_R4P $ROOT/GMI/v2015-02/gmi.clim.R4P.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 R4P - 1 1 +* GMI_PROD_R4P $ROOT/GMI/v2015-02/gmi.clim.R4P.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s R4P - 1 1 +* GMI_LOSS_RA3P $ROOT/GMI/v2015-02/gmi.clim.RA3P.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RA3P - 1 1 +* GMI_PROD_RA3P $ROOT/GMI/v2015-02/gmi.clim.RA3P.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RA3P - 1 1 +* GMI_LOSS_RB3P $ROOT/GMI/v2015-02/gmi.clim.RB3P.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RB3P - 1 1 +* GMI_PROD_RB3P $ROOT/GMI/v2015-02/gmi.clim.RB3P.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RB3P - 1 1 +* GMI_LOSS_RCHO $ROOT/GMI/v2015-02/gmi.clim.RCHO.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RCHO - 1 1 +* GMI_PROD_RCHO $ROOT/GMI/v2015-02/gmi.clim.RCHO.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RCHO - 1 1 +* GMI_LOSS_RCO3 $ROOT/GMI/v2015-02/gmi.clim.RCO3.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RCO3 - 1 1 +* GMI_PROD_RCO3 $ROOT/GMI/v2015-02/gmi.clim.RCO3.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RCO3 - 1 1 +* GMI_LOSS_RCOOH $ROOT/GMI/v2015-02/gmi.clim.RCOOH.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RCOOH - 1 1 +* GMI_PROD_RCOOH $ROOT/GMI/v2015-02/gmi.clim.RCOOH.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RCOOH - 1 1 +* GMI_LOSS_RIO1 $ROOT/GMI/v2015-02/gmi.clim.RIO1.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RIO1 - 1 1 +* GMI_PROD_RIO1 $ROOT/GMI/v2015-02/gmi.clim.RIO1.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RIO1 - 1 1 +* GMI_LOSS_RIPA $ROOT/GMI/v2015-02/gmi.clim.RIPA.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RIPA - 1 1 +* GMI_PROD_RIPA $ROOT/GMI/v2015-02/gmi.clim.RIPA.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RIPA - 1 1 +* GMI_LOSS_RIPB $ROOT/GMI/v2015-02/gmi.clim.RIPB.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RIPB - 1 1 +* GMI_PROD_RIPB $ROOT/GMI/v2015-02/gmi.clim.RIPB.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RIPB - 1 1 +* GMI_LOSS_RIPD $ROOT/GMI/v2015-02/gmi.clim.RIPD.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RIPD - 1 1 +* GMI_PROD_RIPD $ROOT/GMI/v2015-02/gmi.clim.RIPD.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RIPD - 1 1 +* GMI_LOSS_ROH $ROOT/GMI/v2015-02/gmi.clim.ROH.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 ROH - 1 1 +* GMI_PROD_ROH $ROOT/GMI/v2015-02/gmi.clim.ROH.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s ROH - 1 1 +* GMI_LOSS_RP $ROOT/GMI/v2015-02/gmi.clim.RP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 RP - 1 1 +* GMI_PROD_RP $ROOT/GMI/v2015-02/gmi.clim.RP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s RP - 1 1 +* GMI_LOSS_VRO2 $ROOT/GMI/v2015-02/gmi.clim.VRO2.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 VRO2 - 1 1 +* GMI_PROD_VRO2 $ROOT/GMI/v2015-02/gmi.clim.VRO2.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s VRO2 - 1 1 +* GMI_LOSS_VRP $ROOT/GMI/v2015-02/gmi.clim.VRP.geos5.2x25.nc loss 2005/1-12/1/0 C xyz s-1 VRP - 1 1 +* GMI_PROD_VRP $ROOT/GMI/v2015-02/gmi.clim.VRP.geos5.2x25.nc prod 2005/1-12/1/0 C xyz v/v/s VRP - 1 1 +)))GMI_PROD_LOSS + +#============================================================================== +# --- Spatially varying OM/OC --- +#============================================================================== +(((OMOC_RATIO +* OMOC_DJF $ROOT/OMOC/v2018-01/OMOC.DJF.01x01.nc OMOC 2010/1/1/0 C xy 1 * - 1 1 +* OMOC_MAM $ROOT/OMOC/v2018-01/OMOC.MAM.01x01.nc OMOC 2010/1/1/0 C xy 1 * - 1 1 +* OMOC_JJA $ROOT/OMOC/v2018-01/OMOC.JJA.01x01.nc OMOC 2010/1/1/0 C xy 1 * - 1 1 +* OMOC_SON $ROOT/OMOC/v2018-01/OMOC.SON.01x01.nc OMOC 2010/1/1/0 C xy 1 * - 1 1 +)))OMOC_RATIO + +)))CHEMISTRY_INPUT + +#============================================================================== +# --- NOAA GMD monthly mean surface CH4 --- +#============================================================================== +(((GMD_SFC_CH4 +* NOAA_GMD_CH4 $ROOT/NOAA_GMD/v2018-01/monthly.gridded.surface.methane.1979-2020.1x1.nc SFC_CH4 1979-2020/1-12/1/0 RY xy ppbv * - 1 1 +)))GMD_SFC_CH4 + +#============================================================================== +# --- CMIP6 monthly mean surface CH4 --- +# NOTE: This is only used if NOAA data is unavailable (pre 1979) +#============================================================================== +(((CMIP6_SFC_CH4 +* CMIP6_Sfc_CH4 $ROOT/CMIP6/v2020-03/2x2.5/CMIP6_GHG_surface_VMR_$YYYY.2x25.nc CH4 1750-1978/1-12/1/0 EY xy ppbv * - 1 1 +)))CMIP6_SFC_CH4 + +#============================================================================== +# --- Olson land map masks --- +#============================================================================== +(((OLSON_LANDMAP +* LANDTYPE00 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE00 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE01 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE01 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE02 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE02 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE03 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE03 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE04 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE04 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE05 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE05 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE06 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE06 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE07 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE07 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE08 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE08 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE09 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE09 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE10 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE10 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE11 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE11 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE12 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE12 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE13 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE13 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE14 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE14 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE15 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE15 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE16 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE16 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE17 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE17 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE18 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE18 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE19 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE19 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE20 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE20 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE21 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE21 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE22 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE22 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE23 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE23 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE24 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE24 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE25 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE25 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE26 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE26 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE27 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE27 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE28 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE28 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE29 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE29 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE30 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE30 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE31 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE31 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE32 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE32 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE33 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE33 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE34 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE34 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE35 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE35 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE36 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE36 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE37 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE37 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE38 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE38 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE39 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE39 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE40 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE40 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE41 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE41 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE42 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE42 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE43 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE43 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE44 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE44 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE45 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE45 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE46 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE46 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE47 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE47 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE48 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE48 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE49 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE49 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE50 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE50 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE51 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE51 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE52 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE52 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE53 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE53 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE54 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE54 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE55 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE55 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE56 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE56 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE57 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE57 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE58 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE58 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE59 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE59 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE60 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE60 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE61 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE61 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE62 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE62 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE63 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE63 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE64 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE64 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE65 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE65 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE66 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE66 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE67 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE67 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE68 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE68 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE69 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE69 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE70 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE70 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE71 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE71 1985/1/1/0 C xy 1 * - 1 1 +* LANDTYPE72 $ROOT/OLSON_MAP/v2019-02/Olson_2001_Land_Type_Masks.025x025.generic.nc LANDTYPE72 1985/1/1/0 C xy 1 * - 1 1 +)))OLSON_LANDMAP + +#============================================================================== +# --- Yuan processed MODIS leaf area index data --- +# +# Source: Yuan et al 2011, doi:10.1016/j.rse.2011.01.001 +# http://globalchange.bnu.edu.cn/research/lai +# +# NOTES: +# (1) LAI data corresponding to each Olson land type is stored in +# separate netCDF variables (XLAI00, XLAI01, ... XLAI72). +# The "XLAI" denotes that the files are prepared in this way. +# (2) Units are "cm2 leaf/cm2 grid box". +# (3) Data is timestamped every 8 days, starting from the 2nd of the month. +#============================================================================== +(((YUAN_MODIS_LAI +* XLAI00 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI00 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI01 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI01 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI02 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI02 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI03 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI03 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI04 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI04 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI05 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI05 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI06 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI06 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI07 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI07 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI08 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI08 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI09 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI09 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI10 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI10 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI11 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI11 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI12 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI12 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI13 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI13 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI14 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI14 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI15 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI15 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI16 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI16 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI17 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI17 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI18 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI18 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI19 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI19 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI20 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI20 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI21 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI21 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI22 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI22 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI23 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI23 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI24 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI24 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI25 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI25 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI26 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI26 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI27 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI27 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI28 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI28 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI29 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI29 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI30 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI30 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI31 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI31 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI32 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI32 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI33 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI33 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI34 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI34 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI35 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI35 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI36 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI36 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI37 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI37 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI38 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI38 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI39 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI39 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI40 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI40 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI41 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI41 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI42 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI42 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI43 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI43 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI44 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI44 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI45 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI45 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI46 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI46 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI47 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI47 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI48 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI48 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI49 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI49 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI50 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI50 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI51 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI51 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI52 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI52 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI53 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI53 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI54 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI54 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI55 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI55 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI56 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI56 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI57 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI57 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI58 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI58 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI59 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI59 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI60 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI60 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI61 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI61 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI62 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI62 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI63 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI63 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI64 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI64 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI65 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI65 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI66 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI66 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI67 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI67 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI68 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI68 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI69 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI69 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI70 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI70 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI71 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI71 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +* XLAI72 $ROOT/Yuan_XLAI/v2021-06/Yuan_proc_MODIS_XLAI.025x025.$YYYY.nc XLAI72 2000-2020/1-12/1-31/0 I xy cm2/cm2 * - 1 1 +)))YUAN_MODIS_LAI + +#============================================================================== +# --- Inputs for the RRTMG radiative transfer model --- +# +# NOTE: The 2 x 2.5 albedo fields and emissivity fields will produce +# differences at the level of numerical noise when comparing output to +# simulations from prior versions (esp. when running at 4 x 5 resolution). +# You might see larger differences w/r/t prior verisons for a few grid boxes +# along the coastline of Antarctica, where the difference in resolution +# and regridding will be more apparent in the sharp transition from ice to +# ocean. If this is a problem, you can use the data files at 4x5 resolution +# for 4x5 RRTMG simulations. +# +# ALSO NOTE: The algorithm that HEMCO uses to select each time slice is +# likely different than what was implemented when reading the old bpch +# data from disk. This can also cause differences when comparing to +# prior versions. +#============================================================================== +(((RRTMG +* MODIS_ALBDFNIR $ROOT/RRTMG/v2018-11/modis_surf_albedo.2x25.nc ALBDFNIR 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_ALBDFVIS $ROOT/RRTMG/v2018-11/modis_surf_albedo.2x25.nc ALBDFVIS 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_ALBDRNIR $ROOT/RRTMG/v2018-11/modis_surf_albedo.2x25.nc ALBDRNIR 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_ALBDRVIS $ROOT/RRTMG/v2018-11/modis_surf_albedo.2x25.nc ALBDRVIS 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_01 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band01 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_02 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band02 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_03 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band03 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_04 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band04 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_05 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band05 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_06 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band06 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_07 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band07 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_08 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band08 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_09 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band09 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_10 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band10 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_11 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band11 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_12 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band12 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_13 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band13 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_14 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band14 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_15 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band15 2002/1-12/1-31/0 C xy 1 * - 1 1 +* MODIS_EMISSIVITY_16 $ROOT/RRTMG/v2018-11/modis_emissivity.2x25.nc RTEMISS_band16 2002/1-12/1-31/0 C xy 1 * - 1 1 +* TES_CLIM_CCL4 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CCl4 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_CFC11 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CFC11 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_CFC12 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CFC12 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_CFC22 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CFC22 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_CH4 $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc CH4 2000/1/1/0 C xyz ppbv * - 1 1 +* TES_CLIM_N2O $ROOT/RRTMG/v2018-11/species_clim_profiles.2x25.nc N2O 2000/1/1/0 C xyz ppbv * - 1 1 +)))RRTMG + +(((SfcVMR +#============================================================================== +# --- CMIP6 files --- +# +# Use core CMIP6 observationally constrained data from Meinshausen et al. (2017) GMD +#============================================================================== +* SfcVMR_CH3Cl $ROOT/CMIP6/v2020-03/2x2.5/CMIP6_GHG_surface_VMR_$YYYY.2x25.nc CH3Cl 1750-2014/1-12/1/0 C xy ppbv * 801 1 1 +* SfcVMR_CH2Cl2 $ROOT/CMIP6/v2020-03/2x2.5/CMIP6_GHG_surface_VMR_$YYYY.2x25.nc CH2Cl2 1750-2014/1-12/1/0 C xy ppbv * 801 1 1 +* SfcVMR_CHCl3 $ROOT/CMIP6/v2020-03/2x2.5/CMIP6_GHG_surface_VMR_$YYYY.2x25.nc CHCl3 1750-2014/1-12/1/0 C xy ppbv * 801 1 1 +* SfcVMR_CH3Br $ROOT/CMIP6/v2020-03/2x2.5/CMIP6_GHG_surface_VMR_$YYYY.2x25.nc CH3Br 1750-2014/1-12/1/0 C xy ppbv * 801 1 1 + +#============================================================================== +# --- WMO-2018 files (GMI) --- +#============================================================================== +* SfcVMR_CCl4 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CCl4 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC113 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC113 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC114 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC114 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC115 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC115 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC11 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC11 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC12 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC12 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +#* SfcVMR_CH3Br $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CH3Br 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CH3CCl3 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CH3CCl3 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +#* SfcVMR_CH3Cl $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CH3Cl 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +#* SfcVMR_CH4 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CH4 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_H1211 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc H1211 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_H1301 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc H1301 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_H2402 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc C2BR2F4 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_HCFC141b $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc HCFC141b 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_HCFC142b $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc HCFC142b 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_HCFC22 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc HCFC22 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_N2O $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc N2O 1960-2100/1-12/1/0 C xy v/v * 802 1 1 + +#============================================================================== +# --- Dummy files with a single surface concentration (for OCS and H2) --- +#============================================================================== +* SfcVMR_OCS $ROOT/SfcFix/v2019-12/surface_VMR_OCS.2x25.nc OCS 1985/1/1/0 C xy ppbv * - 1 1 +* SfcVMR_H2 $ROOT/SfcFix/v2019-12/surface_VMR_H2.2x25.nc H2 1985/1/1/0 C xy ppbv * - 1 1 +)))SfcVMR + +(((CMIP6_SFC_BC + +#============================================================================== +# --- CMIP6 surface boundary conditions for 1750-2100 --- +#============================================================================== + +# Commented-out tracers do not exist in GEOS-Chem yet +# * SfcVMR_C2F6 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C2F6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C3F8 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C3F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C4F10 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C4F10 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C5F12 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C5F12 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C6F14 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C6F14 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C7F16 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C7F16 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_C8F18 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 C8F18 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_CC4F8 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CC4F8 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_CCl4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CCl4 1750-2100/1-12/1/0 RY xy v/v CCl4 802 1 1 +# * SfcVMR_CF4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CF4 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_CFC11 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC11 1750-2100/1-12/1/0 RY xy v/v CFC11 802 1 1 +* SfcVMR_CFC113 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC113 1750-2100/1-12/1/0 RY xy v/v CFC113 802 1 1 +* SfcVMR_CFC114 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC114 1750-2100/1-12/1/0 RY xy v/v CFC114 802 1 1 +* SfcVMR_CFC115 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC115 1750-2100/1-12/1/0 RY xy v/v CFC115 802 1 1 +* SfcVMR_CFC12 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CFC12 1750-2100/1-12/1/0 RY xy v/v CFC12 802 1 1 +* SfcVMR_CH2Cl2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH2Cl2 1750-2100/1-12/1/0 RY xy v/v CH2Cl2 802 1 1 +* SfcVMR_CH3Br $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH3Br 1750-2100/1-12/1/0 RY xy v/v CH3Br 802 1 1 +* SfcVMR_CH3CCl3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH3CCl3 1750-2100/1-12/1/0 RY xy v/v CH3CCl3 802 1 1 +* SfcVMR_CH3Cl $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH3Cl 1750-2100/1-12/1/0 RY xy v/v CH3Cl 802 1 1 +* SfcVMR_CH4 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CH4 1750-2100/1-12/1/0 RY xy v/v CH4 802 1 1 +* SfcVMR_CHCl3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CHCl3 1750-2100/1-12/1/0 RY xy v/v CHCl3 802 1 1 +# * SfcVMR_CO2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 CO2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_H1211 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 H1211 1750-2100/1-12/1/0 RY xy v/v H1211 802 1 1 +* SfcVMR_H1301 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 H1301 1750-2100/1-12/1/0 RY xy v/v H1301 802 1 1 +* SfcVMR_H2402 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 H2402 1750-2100/1-12/1/0 RY xy v/v H2402 802 1 1 +# SFC_BC_HCFC123 <- exists in UCX with lifetime of 2 years but has no surface boundary conditions; 200-600 pptv in https://doi.org/10.1021/es802308m +* SfcVMR_HCFC141b $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HCFC141b 1750-2100/1-12/1/0 RY xy v/v HCFC141b 802 1 1 +* SfcVMR_HCFC142b $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HCFC142b 1750-2100/1-12/1/0 RY xy v/v HCFC142b 802 1 1 +* SfcVMR_HCFC22 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HCFC22 1750-2100/1-12/1/0 RY xy v/v HCFC22 802 1 1 +# * SfcVMR_HFC125 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC125 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC134a $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC134a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC143a $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC143a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC152a $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC152a 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC227ea $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC227ea 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC23 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC23 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC236fa $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC236fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC245fa $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC245fa 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC32 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC32 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC365mfc $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC365mfc 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_HFC4310mee $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 HFC4310mee 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +* SfcVMR_N2O $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 N2O 1750-2100/1-12/1/0 RY xy v/v N2O 802 1 1 +# * SfcVMR_NF3 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 NF3 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_SF6 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 SF6 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 +# * SfcVMR_SO2F2 $ROOT/CMIP6/v2021-01/$GCAPSCENARIO/$GCAPSCENARIO_BC_$YYYY.nc4 SO2F2 1750-2100/1-12/1/0 RY xy v/v * 802 1 1 + +#============================================================================== +# -- Not part of CMIP6 experimental design; use GEOS-Chem defaults +#============================================================================== +* SfcVMR_OCS $ROOT/SfcFix/v2019-12/surface_VMR_OCS.2x25.nc OCS 1985/1/1/0 C xy ppbv * - 1 1 +* SfcVMR_H2 $ROOT/SfcFix/v2019-12/surface_VMR_H2.2x25.nc H2 1985/1/1/0 C xy ppbv * - 1 1 + +)))CMIP6_SFC_BC + +#============================================================================== +# --- Oceanic ozone deposition --- +# +# Sea surface iodide concentration and salinity to be read in for the +# new calculations for ozone deposition to the ocean +#============================================================================== +(((OCEAN_O3_DRYDEP +* surf_salinity $ROOT/OCEAN_O3_DRYDEP/v2020-02/WOA_2013_salinity.nc s_mn 1985/1/1/0 C xy 1 * - 1 1 +* surf_iodide $ROOT/OCEAN_O3_DRYDEP/v2020-02/Oi_prj_predicted_iodide_0.125x0.125_No_Skagerrak_Just_Ensemble.nc Ensemble_Monthly_mean 1970/1-12/1/0 C xy 1 * - 1 1 +)))OCEAN_O3_DRYDEP + +### END SECTION BASE EMISSIONS ### + +############################################################################### +### BEGIN SECTION SCALE FACTORS +############################################################################### + +# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper + +(((EMISSIONS + +#============================================================================== +# --- Annual scale factors --- +#============================================================================== +(((XIAO_C3H8 +1 TOTFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc NOxscalar 1985-2010/1/1/0 C xy 1 1 +5 TOTFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc NOxscalar 2002/1/1/0 C xy 1 -1 +27 TOTFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc NOxscalar 2008-2010/1/1/0 C xy 1 -1 +6 LIQFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985-2010/1/1/0 C xy 1 1 +7 LIQFUEL_1985 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 1985/1/1/0 C xy 1 -1 +9 LIQFUEL_2006 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2006/1/1/0 C xy 1 -1 +10 LIQFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2002/1/1/0 C xy 1 -1 +28 LIQFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc COscalar 2008-2010/1/1/0 C xy 1 -1 +11 SOLFUEL_THISYR $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc SO2scalar 1985-2010/1/1/0 C xy 1 1 +15 SOLFUEL_2002 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc SO2scalar 2002/1/1/0 C xy 1 -1 +19 SOLFUEL_2008 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc SO2scalar 2008/1/1/0 C xy 1 -1 +29 SOLFUEL_2008_2010 $ROOT/AnnualScalar/v2014-07/AnnualScalar.geos.1x1.nc SO2scalar 2008-2010/1/1/0 C xy 1 -1 +)))XIAO_C3H8 + +#============================================================================== +# --- Diurnal scale factors --- +#============================================================================== +25 EDGAR_TODNOX $ROOT/EDGARv42/v2015-02/NO/EDGAR_hourly_NOxScal.nc NOXscale 2000/1/1/* C xy unitless 1 +26 GEIA_TOD_FOSSIL 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy unitless 1 + +#============================================================================== +# Diurnal variablity of Chinese power plants from Liu et al. (EST, 2019) +#============================================================================== +33 PKU_pow_NOx 0.94/0.93/0.93/0.92/0.93/0.96/0.98/0.99/0.98/1.00/1.05/1.03/1.01/1.04/1.05/1.05/1.07/1.06/1.05/1.05/1.03/1.01/0.99/0.96 - - - xy unitless 1 1009 +34 PKU_pow_SO2 0.92/0.91/0.90/0.89/0.90/0.93/0.97/0.98/0.99/1.02/1.07/1.04/1.03/1.06/1.06/1.07/1.10/1.10/1.06/1.05/1.03/1.01/0.99/0.93 - - - xy unitless 1 1009 +35 PKU_pow_PM_BC_POC_VOC_CO 0.95/0.93/0.92/0.91/0.90/0.93/0.97/0.97/0.99/1.03/1.04/1.03/1.02/1.03/1.05/1.07/1.07/1.07/1.06/1.04/1.03/1.02/1.00/0.97 - - - xy unitless 1 1009 + +# These scale factors undo (Oper=-1) the global diurnal scale factors over China (Mask=1009) +36 EDGAR_TODNOX_UNDO $ROOT/EDGARv42/v2015-02/NO/EDGAR_hourly_NOxScal.nc NOXscale 2000/1/1/* C xy unitless -1 1009 +37 GEIA_TOD_FOSSIL_UNDO 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy unitless -1 1009 + +#============================================================================== +# --- Day-of-week scale factors --- +# ==> data is Sun/Mon/.../Sat +#============================================================================== +(((XIAO_C3H8 +22 GEIA_DOW_HC 0.671/1.1102/1.1102/1.1102/1.1102/1.1102/0.768 - - - xy unitless 1 +)))XIAO_C3H8 + +#============================================================================== +# --- Seasonal scale factors --- +#============================================================================== +(((DICE_Africa +# from GEIA: +30 GEIA_SEASON_NOX $ROOT/GEIA/v2014-07/GEIA_monthscal.generic.1x1.nc NOXrat 1985/1-12/1/0 C xy unitless 1 +31 GEIA_SEASON_SO2 $ROOT/GEIA/v2014-07/GEIA_monthscal.generic.1x1.nc SO2rat 1985/1-12/1/0 C xy unitless 1 +)))DICE_Africa + +#============================================================================== +# --- For Bromocarbons --- +#============================================================================== +(((LIANG_BROMOCARB +39 BROMOCARB_SEASON $ROOT/BROMINE/v2015-02/BromoCarb_Season.nc CHXBRY_scale 2000/1-12/1/0 C xy unitless 1 +)))LIANG_BROMOCARB + +#============================================================================== +# --- Scale factors used for species conversions --- +#============================================================================== + +# Units carbon to species conversions +# Factor = # carbon atoms * MW carbon) / MW species +40 CtoACET MATH:58.09/(3.0*12.0) - - - xy unitless 1 +41 CtoALD2 MATH:44.06/(2.0*12.0) - - - xy unitless 1 +42 CtoALK4 MATH:58.12/(4.3*12.0) - - - xy unitless 1 +43 CtoBENZ MATH:78.12/(6.0*12.0) - - - xy unitless 1 +44 CtoC2H4 MATH:28.05/(2.0*12.0) - - - xy unitless 1 +45 CtoC2H6 MATH:30.08/(2.0*12.0) - - - xy unitless 1 +46 CtoC3H8 MATH:44.11/(3.0*12.0) - - - xy unitless 1 +47 CtoEOH MATH:46.07/(2.0*12.0) - - - xy unitless 1 +48 CtoMEK MATH:72.11/(4.0*12.0) - - - xy unitless 1 +49 CtoPRPE MATH:42.09/(3.0*12.0) - - - xy unitless 1 +55 CtoTOLU MATH:92.15/(7.0*12.0) - - - xy unitless 1 +56 CtoXYLE MATH:106.18/(8.0*12.0) - - - xy unitless 1 +59 CtoC2H2 MATH:26.04/(2.0*12.0) - - - xy unitless 1 +61 CtoISOP MATH:68.13/(5.0*12.0) - - - xy unitless 1 +62 CtoMTPA MATH:136.26/(10.0*12.0) - - - xy unitless 1 +64 CtoMBOX MATH:86.13/(5.0*12.0) - - - xy unitless 1 +67 CtoSESQ MATH:204.4/(15.0*12.0) - - - xy unitless 1 +83 CtoMACR MATH:70.10/(4.0*12.0) - - - xy unitless 1 +84 CtoRCHO MATH:58.09/(3.0*12.0) - - - xy unitless 1 + +# VOC speciations +(((RCP_3PD.or.RCP_45.or.RCP_60.or.RCP_85 +50 KET2MEK 0.25 - - - xy unitless 1 +51 KET2ACET 0.75 - - - xy unitless 1 +)))RCP_3PD.or.RCP_45.or.RCP_60.or.RCP_85 + +(((APEI.or.EDGARv43.or.DICE_Africa.or.QFED2 +52 COPROD_FOSSIL 1.02 - - - xy unitless 1 +54 COPROD_BIOMASS 1.05 - - - xy unitless 1 +)))APEI.or.EDGARv43.or.DICE_Africa.or.QFED2 + +# RCP acids to HCOOH conversion +(((RCP_3PD.or.RCP_45.or.RCP_60.or.RCP_85 +57 RCP_HCOOHfraction 0.25 - - - xy unitless 1 +58 RCP_ACIDStoHCOOH 0.779661 - - - xy unitless 1 +)))RCP_3PD.or.RCP_45.or.RCP_60.or.RCP_85 + +# SOx to SO2 conversion (Chin et al., 2000) +60 SOX2SO2_GLOBAL 0.986 - - - xy unitless 1 +63 SO2toSO4 0.031 - - - xy unitless 1 +65 SO2toSO4_APEI 0.014 - - - xy unitless 1 +66 SO2toPFe 1.0e-3 - - - xy unitless 1 +68 SO2toPFe_APEI 4.7e-4 - - - xy unitless 1 +69 SO2toPFe_NEI 1.0e-3 - - - xy unitless 1 +78 SO2FRAC 0.969 - - - xy unitless 1 + +# Carbon aerosols: speciation of hydrophilic and hydrophobic fractions +# (Fractions applied to the biomass burning extensions (GFED or FINN) are +# specified separately in the extensions section.) +70 BC2BCPI 0.2 - - - xy unitless 1 +71 BC2BCPO 0.8 - - - xy unitless 1 +72 OC2OCPI 0.5 - - - xy unitless 1 +73 OC2OCPO 0.5 - - - xy unitless 1 +74 POGSCAL 1.27 - - - xy unitless 1 +76 SV2POG1 0.49 - - - xy unitless 1 +77 SV2POG2 0.51 - - - xy unitless 1 + +(((BB4MIPS +# Convert MOH to ACET emissions for CMIP6 Scenarios +79 MOH2ACET 0.2094649 - - - xy unitless 1 +)))BB4MIPS + +# Convert CEDS total alchohols to methanol, ethanol, and other alcohols following Chen et al. (2019, ACP) +90 VOC1toMOH 0.5 - - - xy 1 1 +91 VOC1toEOH 0.375 - - - xy 1 1 +92 VOC1toROH 0.125 - - - xy 1 1 + +# NOx/NO2 to NO conversion +115 NO2toNO 6.521739e-1 - - - xy unitless 1 + +# SOA-Precursor scale factors +# +# From Kim, P.S., et. al. 2015 "Sources, seasonality, and trends +# of southeast US aerosol: ..." +# AVOCs and BBVOCs are emitted in proportion to CO, with an emission ratio of +# 0.069 g AVOC (g CO)−1 (Hayes et al., 2015) and +# 0.013 g BBVOC (g CO)−1 (Cubison et al., 2011). +# They are both oxidized by OH in the model ... to generate SOA. +280 COtoSOAP_anth 0.069 - - - xy 1 1 +281 COtoSOAP_burn 0.013 - - - xy 1 1 + +#============================================================================== +# --- QFED2 diurnal scale factors --- +# +# Fire diurnal scaling factors (% per hour) from WRAP Report to Project +# No. 178-6, July 2005 +#============================================================================== +(((QFED2.or.GFAS.or.BB4MIPS +75 QFED2_TOD 0.1392/0.1392/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.48/0.96/1.68/2.4/3.12/3.84/4.08/2.88/1.68/0.96/0.1368/0.1368/0.1368/0.1368/0.1368 - - - xy unitless 1 +)))QFED2.or.GFAS.or.BB4MIPS + +#============================================================================== +# --- NAP scale factors --- +# +# Get anthropogenic (FF) NAP emissions by scaling BENZ emissions with the +# following factor. Factor is ratio of TgC NAP to TgC BENZ emissions +# or equivalently, molec C NAP to molec C BENZ. Scaling should produce +# about 0.09 TgC NAP/year, consistent with non-BB,BF emissions predicted +# by Zhang and Tao 2009 Atm Env +# Based on year 2000 1x1 inv (hotp 11/14/09) +#REAL*8, PARAMETER :: NAPTOBENZSCALE = 0.06861d0 + +# NAPTOTSCAL: factor to scale total NAP emissions to POA (hotp 7/24/09) +#REAL*8, PARAMETER :: NAPTOTALSCALE = 66.09027d0 + +# = CO emissions * emissions ratio of mol NAP / mol CO +# * kg C / mol NAP * mol CO / kg CO +# mmol NAP / mol CO = 0.025 g NAP/ kg DM / +# ( 78 g CO/ kg DM ) * 28 g CO / mol CO +# / ( 128 g NAP / mol NAP ) *1000 mmol/mol +# scale emissions down if appropriate to remove the +# effect of VOC ox on CO emission +# EF for NAP from Andreae and Merlet 2001 Glob Biog Cyc +# EF for CO from Andreae and Merlet 2001 Glob Biog Cyc +#BIOFUEL_KG(N,:,:) = BIOFUEL_KG(IDBFCO,:,:) * 0.0701d-3 +# * 120d0 / 28d0 * COSCALEDOWN +#============================================================================== +(((EDGARv43 +80 NAPEMISS 1.0 - - - xy unitless 1 +81 NAPTOTSCAL 66.09 - - - xy unitless 1 +82 BENZTONAP 6.86e-2 - - - xy unitless 1 +)))EDGARv43 + +#============================================================================== +# --- BIOGENIC EMISSIONS FROM DRY LEAF MATTER --- +# +# Use yield of 40ug/dDW. +# Assume organic matter has molecular formula CH2O (MW 30.03), which +# means 0.4 gC / g plant +# ALD2 MW = 44.05 g/mole ==> 0.55 gC/g ALD2 +# Therefore 40ug (ALD2) / g (plant) ==> 55 ug C in ALD2 / gC plant +# EOH MW = 46 g/mole ==> 0.52 gC/g EOH +# Therefore 40ug (EOH) / g (plant) ==> 52 ug C in EOH / gC plant +#============================================================================== +(((DECAYING_PLANTS +85 YIELD_RESP_ALD2 55.0e-6 - - - xy unitless 1 +86 YIELD_RESP_EOH 52.0e-6 - - - xy unitless 1 +)))DECAYING_PLANTS + +#============================================================================== +# --- AEIC2019 aircraft emissions scale factors --- +# +# See http://geoschemdata.wustl.edu/ExtData/HEMCO/AEIC2019/v2022-03/AEIC_2019_technical_note.pdf +#============================================================================== +(((AEIC2019_DAILY.or.AEIC2019_MONMEAN +# Conversions from AEIC2019 inventory quantities to individual species +101 AEICACET 3.693477e-3 - - - xy unitless 1 +102 AEICALD2 4.271822e-2 - - - xy unitless 1 +103 AEICALK4 2.137911e-1 - - - xy unitless 1 +104 AEICC2H6 5.214505e-3 - - - xy unitless 1 +105 AEICC3H8 7.808710e-4 - - - xy unitless 1 +106 AEICCH2O 1.230811e-1 - - - xy unitless 1 +107 AEICPRPE 1.780418e-1 - - - xy unitless 1 +108 AEICMACR 5.362609e-2 - - - xy unitless 1 +109 AEICRCHO 3.676944e-2 - - - xy unitless 1 +111 AEICSO2 1.176000e-3 - - - xy unitless 1 +112 AEICSO4 3.600000e-5 - - - xy unitless 1 +113 AEICBC 3.000000e-5 - - - xy unitless 1 +114 AEICHC 1.160000e+0 - - - xy unitless 1 +120 FB2H2O 1.231000e+0 - - - xy unitless 1 + +#------------------------------------------------------------------------------ +# Scaling factors for 1990-2019 derived from Lee et al. (2021). Increase +# from 2018 to 2019 is estimated based on the growth from 2017 to 2018. +# Lee et al. (2021) only covers 1990 to 2018, so to get to 2019 it is +# assumed that the growth from 2017 to 2018 is the same as that from 2018 +# to 2019. So the formula is something like: +# +# Emissions of CO in 2009 = AEIC 2019 emissions of CO +# * (Lee 2017 CO / Lee 2018 fuel burn) +# * (Lee 2009 fuel burn / Lee 2018 fuel burn) +# +# So in this case, we use the Lee 2017/Lee 2018 value to scale AEIC’s +# emissions to the “2018” values, and then scale directly using the Lee et al +# fuel burn. This ensures that, when running with year 2019, you get an +# unadjusted version of the AEIC2019 inventory, and all previous years are +# scaled down. For NOx, the same procedure is applied but with an additional +# factor to account for changes in NOx EI: +# +# Emissions of NOx in 2009 = [ AEIC 2019 emissions of NOx +# * (Lee 2017 CO / Lee 2018 fuel burn) +# * (Lee 2009 fuel burn / Lee 2018 fuel burn) ] +# * [ (Lee 2017 NOx EI / Lee 2018 NOx EI) +# * (Lee 2009 NOx EI / Lee 2018 NOx EI) ] +# +# In this case though the Lee et al 2018 and 2017 NOx EIs are identical. +# All scaling factors are included in here in HEMCO_Config.rc. +#------------------------------------------------------------------------------ +(((AEIC_SCALE_1990_2019 +240 AC_EINOX 0.852/0.852/0.852/0.859/0.866/0.873/0.881/0.888/0.896/0.903/0.911/0.916/0.922/0.927/0.932/0.937/0.950/0.962/0.974/0.987/1.000/1.000/1.000/1.000/1.000/1.000/1.000/1.000/1.000/1.000 - 1990-2019/1/1/0 C xy 1 1 +241 AC_FBMULT 0.506/0.489/0.490/0.493/0.517/0.529/0.553/0.570/0.581/0.600/0.631/0.607/0.608/0.608/0.646/0.678/0.686/0.706/0.703/0.666/0.700/0.721/0.728/0.749/0.773/0.815/0.854/0.905/0.952/1.000 - 1990-2019/1/1/0 C xy 1 1 +)))AEIC_SCALE_1990_2019 + +# If not applying 1990-2019 scale factors, use 1.0 +(((.not.AEIC_SCALE_1990_2019 +240 AC_EINOX 1.000000e+0 - - - xy 1 1 +241 AC_FBMULT 1.000000e+0 - - - xy 1 1 +))).not.AEIC_SCALE_1990_2019 +)))AEIC2019_DAILY.or.AEIC2019_MONMEAN + +(((CMIP6_AIRCRAFT +# Conversions for SO2 to HCs taken from AEIC +601 CMIP6_SO2_TO_ACET 3.140712 - - - xy unitless 1 +602 CMIP6_SO2_TO_ALD2 36.32502 - - - xy unitless 1 +603 CMIP6_SO2_TO_ALK4 181.7952 - - - xy unitless 1 +604 CMIP6_SO2_TO_C2H6 4.434103 - - - xy unitless 1 +605 CMIP6_SO2_TO_C3H8 0.664006 - - - xy unitless 1 +606 CMIP6_SO2_TO_CH2O 104.6608 - - - xy unitless 1 +607 CMIP6_SO2_TO_PRPE 151.3961 - - - xy unitless 1 +608 CMIP6_SO2_TO_MACR 45.60042 - - - xy unitless 1 +609 CMIP6_SO2_TO_RCHO 31.26653 - - - xy unitless 1 +)))CMIP6_AIRCRAFT + +#============================================================================== +# --- EPA NEI day-of-week scale factors --- +#============================================================================== +(((NEI2016_MONMEAN +210 NEI99_DOW_NOX $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc NOX 1999/1-12/WD/0 C xy 1 1 +211 NEI99_DOW_CO $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc CO 1999/1-12/WD/0 C xy 1 1 +212 NEI99_DOW_ALK4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ALK4 1999/1-12/WD/0 C xy 1 1 +213 NEI99_DOW_ACET $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc ACET 1999/1-12/WD/0 C xy 1 1 +214 NEI99_DOW_MEK $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MEK 1999/1-12/WD/0 C xy 1 1 +215 NEI99_DOW_PRPE $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc PRPE 1999/1-12/WD/0 C xy 1 1 +216 NEI99_DOW_C3H8 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C3H8 1999/1-12/WD/0 C xy 1 1 +217 NEI99_DOW_C2H6 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc C2H6 1999/1-12/WD/0 C xy 1 1 +218 NEI99_DOW_SO2 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO2 1999/1-12/WD/0 C xy 1 1 +219 NEI99_DOW_SO4 $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc SO4 1999/1-12/WD/0 C xy 1 1 +220 NEI99_DOW_MSA $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc MSA 1999/1-12/WD/0 C xy 1 1 +221 NEI99_DOW_BCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc BCPI 1999/1-12/WD/0 C xy 1 1 +222 NEI99_DOW_OCPI $ROOT/NEI2005/v2023-02/NEI99.dow.geos.1x1.corrected.012023.nc OCPI 1999/1-12/WD/0 C xy 1 1 +)))NEI2016_MONMEAN + +#============================================================================== +# --- EPA NEI2016 annual scale factors --- +# +# Annual scale factors were computed from the EPA Trends Report for Tier 1 CAPS +# (obtained 21 Sep 2021) using the "Total without wildfires" field. NH3 and +# PM2.5 only had values for 2002-2020, while the remaining species had yearly +# values for 1990-2020 (we include only 2002-2020 here). +# +# See NEI2016/v2021-06/national_tier1_caps+HEMCOscaling.xlsx for details. +#============================================================================== +(((NEI2016_MONMEAN +251 NEI2016_NOx_YRSCALE 2.341/2.213/2.083/1.989/1.879/1.768/1.651/1.539/1.448/1.407/1.345/1.282/1.224/1.135/1.000/0.943/0.895/0.840/0.785 - 2002-2020/1/1/0 C xy 1 1 +252 NEI2016_CO_YRSCALE 1.817/1.767/1.716/1.666/1.610/1.554/1.393/1.251/1.272/1.261/1.220/1.178/1.137/1.095/1.000/0.973/0.950/0.927/0.904 - 2002-2020/1/1/0 C xy 1 1 +253 NEI2016_NH3_YRSCALE 0.996/0.999/1.002/1.005/1.043/1.082/1.100/1.088/1.077/1.012/0.957/0.954/0.899/0.950/1.000/1.052/1.051/1.050/1.049 - 2002-2020/1/1/0 C xy 1 1 +254 NEI2016_VOC_YRSCALE 1.314/1.285/1.255/1.223/1.234/1.246/1.148/1.135/1.154/1.175/1.153/1.131/1.110/1.067/1.000/0.970/0.956/0.941/0.926 - 2002-2020/1/1/0 C xy 1 1 +255 NEI2016_SO2_YRSCALE 4.773/4.701/4.626/4.625/4.171/3.717/3.273/2.879/2.446/2.038/1.591/1.525/1.469/1.237/1.000/0.767/0.735/0.641/0.583 - 2002-2020/1/1/0 C xy 1 1 +256 NEI2016_PM25_YRSCALE 1.120/1.140/1.159/1.178/1.213/1.248/1.202/1.195/1.190/1.192/1.153/1.115/1.077/1.040/1.000/0.964/0.961/0.958/0.955 - 2002-2020/1/1/0 C xy 1 1 +)))NEI2016_MONMEAN + +#============================================================================== +# --- GFAS scale factors --- +#============================================================================== +(((GFAS +300 GFAS_EMITL $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$MM.nc mami 2003-2021/1-12/1-31/0 C xy m 1 +)))GFAS + +#============================================================================== +# --- QFED vertical partitioning --- +# Following Fischer et al. (2014) and Travis et al. (2016), emit 35% of QFED +# emissions above the PBL. +#============================================================================== +(((QFED2 +311 QFED_PBL_FRAC 0.65 - - - xy 1 1 +312 QFED_FT_FRAC 0.35 - - - xy 1 1 +)))QFED2 + +#============================================================================== +# --- CEDS vertical partitioning --- +#============================================================================== +(((CEDSv2.or.CEDS_GBDMAPS +315 ENERGY_LEVS $ROOT/VerticalScaleFactors/v2021-05/gc_layers.nc g_energy 2017/1/1/0 C xyz 1 1 +316 INDUSTRY_LEVS $ROOT/VerticalScaleFactors/v2021-05/gc_layers.nc g_industry 2017/1/1/0 C xyz 1 1 +317 SHIP_LEVS $ROOT/VerticalScaleFactors/v2021-05/gc_layers.nc cmv_c3 2017/1/1/0 C xyz 1 1 +)))CEDSv2.or.CEDS_GBDMAPS + +#============================================================================== +# --- DICE-Africa --- +#============================================================================== +(((DICE_Africa +# Charcoal production scale factor to reduce charcoal production +# by a factor of 5 after finding error in implementation of emission factors. +320 DICE_CP_SF 0.20 - - - xy 1 1 + +# Car emissions of OCPI and OCPO scale factor to address a factor of 7 overestimate +# in car OC emissions that results from incorrect emission factors used in the original inventory +330 DICE_CAR_OC_SF 0.14 - - - xy 1 1 +)))DICE_Africa + +#============================================================================== +# --- Offline biogenic VOC scale factors --- +# +# Isoprene : 1.5% mass yield SOAP, 1.5% mass yield SOAS +# Monoterpenes : 5.0% mass yield SOAP, 5.0% mass yield SOAS +# Other terpenes: 5.0% mass yield SOAP, 5.0% mass yield SOAS +# --> Need to multiply by 1.133 to convert from carbon basis to mass basis +#============================================================================== +(((OFFLINE_BIOGENICVOC +610 ISOPtoSOA 0.0170 - - - xy 1 1 +611 MONOtoSOA 0.0567 - - - xy 1 1 +612 OTHRtoSOA 0.0567 - - - xy 1 1 +)))OFFLINE_BIOGENICVOC + +#============================================================================== +# --- Offline sea salt scale factors --- +# +# NOTES: +# - Sea salt alkalinity and chloride values obtained from hcox_seasalt_mod.F90 +# - BrContent obtained from '--> Br- mass ratio' in SeaSalt extension above +#============================================================================== +(((OFFLINE_SEASALT +615 SSAlkalinity 1.0 - - - xy 1 1 +616 SSChloride 0.5504 - - - xy 1 1 +617 BrContent 2.11e-3 - - - xy 1 1 +)))OFFLINE_SEASALT + +)))EMISSIONS + +#============================================================================== +# Scale the CMIP6 values in pptv to ppbv +#============================================================================== +801 pptv2ppbv 0.001 - - - xy 1 1 +802 vv2ppbv 1000000000 - - - xy 1 1 + +#============================================================================== +# --- EDGAR 4.3.1 --- +# Using data of 2010, the calculated seasonal ratio for different species in the +# same sector are nearly identical, possibly due to consistent activity data used. +# Therefore we use the seasonal scale factors of CO in 2010 for most sectors, +# except for AGR, AWB and SOL. +# For AGR, the NH3 AGR seasonal scale factors are used. +# For AWB, the CO AGR seasonal scale factors are used. +# For SOL, the NOx AGR seasonal scale factors are used. +#============================================================================== +(((EDGARv43.or.DICE_Africa +1201 POW $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc POW 2010/1-12/1/0 C xy unitless 1 +1202 ENG $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc ENG 2010/1-12/1/0 C xy unitless 1 +1203 IND $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc IND 2010/1-12/1/0 C xy unitless 1 +1204 TRO $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc TRO 2010/1-12/1/0 C xy unitless 1 +1205 TNG $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc TNG 2010/1-12/1/0 C xy unitless 1 +1206 RCO $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc RCO 2010/1-12/1/0 C xy unitless 1 +1207 PPA $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc PPA 2010/1-12/1/0 C xy unitless 1 +1208 AGR $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc AGR 2010/1-12/1/0 C xy unitless 1 +1209 AWB $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc AWB 2010/1-12/1/0 C xy unitless 1 +1210 SOL $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc SOL 2010/1-12/1/0 C xy unitless 1 +1211 SWD $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc SWD 2010/1-12/1/0 C xy unitless 1 +1212 FFF $ROOT/EDGARv43/v2016-11/EDGAR_v43.Seasonal.1x1.nc FFF 2010/1-12/1/0 C xy unitless 1 +)))EDGARv43.or.DICE_Africa + +### END SECTION SCALE FACTORS ### + +############################################################################### +### BEGIN SECTION MASKS +############################################################################### + +# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper Lon1/Lat1/Lon2/Lat2 + +(((EMISSIONS + +#============================================================================== +# Country/region masks +#============================================================================== +(((APEI +1002 CANADA_MASK $ROOT/MASKS/v2018-09/Canada_mask.geos.1x1.nc MASK 2000/1/1/0 C xy 1 1 -141/40/-52/85 +)))APEI + +(((NEI2016_MONMEAN +1007 CONUS_MASK $ROOT/MASKS/v2018-09/CONUS_Mask.01x01.nc MASK 2000/1/1/0 C xy 1 1 -140/20/-50/60 +)))NEI2016_MONMEAN + +(((DICE_Africa +1008 AFRICA_MASK $ROOT/MASKS/v2018-09/AF_LANDMASK.geos.05x0666.global.nc LANDMASK 1985/1/1/0 C xy 1 1 -20/-37/54/40 +)))DICE_Africa + +1009 CHINA_MASK $ROOT/MASKS/v2018-09/China_mask.generic.1x1.nc MASK 2000/1/1/0 C xy 1 1 70/10/150/60 + +(((AFCID +1010 INDIA_MASK $ROOT/MASKS/v2019-05/India_mask.generic.1x1.nc MASK 2000/1/1/0 C xy 1 1 67/7/99/39 +)))AFCID + +)))EMISSIONS + +### END SECTION MASKS ### + +### END OF HEMCO INPUT FILE ### +#EOC diff --git a/run/WRF/fullchem/HEMCO_Diagn.rc b/run/WRF/fullchem/HEMCO_Diagn.rc new file mode 100644 index 000000000..99129e884 --- /dev/null +++ b/run/WRF/fullchem/HEMCO_Diagn.rc @@ -0,0 +1,722 @@ +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: HEMCO_Diagn.rc +# +# !DESCRIPTION: Configuration file for netCDF diagnostic output from HEMCO. +#\\ +#\\ +# !REMARKS: +# For more information about scheduling HEMCO diagnostics, see: +# http://wiki.geos-chem.org/The_HEMCO_User%27s_Guide#Diagnostics +# +# For a list of species by inventory, please see: +# http://wiki.geos-chem.org/HEMCO_data_directories#Default_GEOS-Chem_emissions_configurations +# +# All diagnostics will now be saved out in units of kg/m2/s. If necessary, +# you can convert hydrocarbon species to e.g. kg C/m2/s in post-processing. +# +# The INVENTORY DIAGNOSTICS (starting with "Inv") are only needed for +# benchmark simulations, and can be left commented out for production runs. +# +# !REVISION HISTORY: +# 13 Feb 2018 - E. Lundgren - Initial version +# See https://github.com/geoschem/geos-chem for complete history +#EOP +#------------------------------------------------------------------------------ +#BOC +# Name Spec ExtNr Cat Hier Dim OutUnit LongName + +############################################################################### +##### ACET emissions ##### +############################################################################### +EmisACET_Total ACET -1 -1 -1 3 kg/m2/s ACET_emission_flux_from_all_sectors +EmisACET_BioBurn ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_biomass_burning +EmisACET_Biogenic ACET 0 4 -1 2 kg/m2/s ACET_emission_flux_from_biogenic_sources +EmisACET_Ocean ACET 101 -1 -1 2 kg/m2/s ACET_emission_flux_from_ocean + +############################################################################### +##### ALD2 emissions ##### +############################################################################### +EmisALD2_Total ALD2 -1 -1 -1 3 kg/m2/s ALD2_emission_flux_from_all_sectors +EmisALD2_Anthro ALD2 0 1 -1 3 kg/m2/s ALD2_emission_flux_from_anthropogenic +EmisALD2_BioBurn ALD2 111 -1 -1 2 kg/m2/s ALD2_emission_flux_from_biomass_burning +EmisALD2_Biogenic ALD2 0 4 -1 2 kg/m2/s ALD2_emission_flux_from_biogenic_sources +EmisALD2_Ocean ALD2 101 -1 -1 2 kg/m2/s ALD2_emission_flux_from_ocean +EmisALD2_PlantDecay ALD2 0 3 -1 2 kg/m2/s ALD2_emission_flux_from_decaying_plants +EmisALD2_Ship ALD2 0 10 -1 2 kg/m2/s ALD2_emission_flux_from_ships + +############################################################################### +##### ALK4 emissions ##### +############################################################################### +EmisALK4_Total ALK4 -1 -1 -1 3 kg/m2/s ALK4_emission_flux_from_all_sectors +EmisALK4_Aircraft ALK4 0 20 -1 3 kg/m2/s ALK4_emission_flux_from_aircraft +EmisALK4_Anthro ALK4 0 1 -1 3 kg/m2/s ALK4_emission_flux_from_anthropogenic +EmisALK4_BioBurn ALK4 111 -1 -1 2 kg/m2/s ALK4_emission_flux_from_biomass_burning +EmisALK4_Ship ALK4 0 10 -1 2 kg/m2/s ALK4_emission_flux_from_ships + +############################################################################### +##### BCPI and BCPO emissions ##### +############################################################################### +EmisBCPI_Total BCPI -1 -1 -1 3 kg/m2/s BCPI_emission_flux_from_all_sectors +EmisBCPI_Aircraft BCPI 0 20 -1 3 kg/m2/s BCPI_emission_flux_from_aircraft +EmisBCPI_Anthro BCPI 0 1 -1 3 kg/m2/s BCPI_emission_flux_from_anthropogenic +EmisBCPI_BioBurn BCPI 111 -1 -1 2 kg/m2/s BCPI_emission_flux_from_biomass_burning +EmisBCPI_Ship BCPI 0 10 -1 2 kg/m2/s BCPI_emission_flux_from_ships +EmisBCPO_Total BCPO -1 -1 -1 3 kg/m2/s BCPO_emission_flux_from_all_sectors +EmisBCPO_Anthro BCPO 0 1 -1 3 kg/m2/s BCPO_emission_flux_from_anthropogenic +EmisBCPO_BioBurn BCPO 111 -1 -1 2 kg/m2/s BCPO_emission_flux_from_biomass_burning +EmisBCPO_Ship BCPO 0 10 -1 2 kg/m2/s BCPO_emission_flux_from_ships + +############################################################################### +##### BENZ emissions ##### +############################################################################### +EmisBENZ_Total BENZ -1 -1 -1 3 kg/m2/s BENZ_emission_flux_from_all_sectors +EmisBENZ_Anthro BENZ 0 1 -1 3 kg/m2/s BENZ_emission_flux_from_anthropogenic +EmisBENZ_BioBurn BENZ 111 -1 -1 2 kg/m2/s BENZ_emission_flux_from_biomass_burning +EmisBENZ_Ship BENZ 0 10 -1 2 kg/m2/s BENZ_emission_flux_from_ships + +############################################################################### +##### C2H2 emissions ###### +############################################################################### +EmisC2H2_Total C2H2 -1 -1 -1 3 kg/m2/s C2H2_emission_flux_from_all_sectors +EmisC2H2_Anthro C2H2 0 1 -1 3 kg/m2/s C2H2_emission_flux_from_anthropogenic +EmisC2H2_BioBurn C2H2 111 -1 -1 2 kg/m2/s C2H2_emission_flux_from_biomass_burning +EmisC2H2_Ship C2H2 0 10 -1 2 kg/m2/s C2H2_emission_flux_from_ships + +############################################################################### +##### C2H4 emissions ###### +############################################################################### +EmisC2H4_Total C2H4 -1 -1 -1 3 kg/m2/s C2H4_emission_flux_from_all_sectors +EmisC2H4_Anthro C2H4 0 1 -1 3 kg/m2/s C2H4_emission_flux_from_anthropogenic +EmisC2H4_BioBurn C2H4 111 -1 -1 2 kg/m2/s C2H4_emission_flux_from_biomass_burning +EmisC2H4_Biogenic C2H4 0 4 -1 2 kg/m2/s C2H4_emission_flux_from_biogenic_sources +EmisC2H4_Ship C2H4 0 10 -1 2 kg/m2/s C2H4_emission_flux_from_ships + +############################################################################### +##### C2H6 emissions ###### +############################################################################### +EmisC2H6_Total C2H6 -1 -1 -1 3 kg/m2/s C2H6_emission_flux_from_all_sectors +EmisC2H6_Aircraft C2H6 0 20 -1 3 kg/m2/s C2H6_emission_flux_from_aircraft +EmisC2H6_Anthro C2H6 0 1 -1 3 kg/m2/s C2H6_emission_flux_from_anthropogenic +EmisC2H6_BioBurn C2H6 111 -1 -1 2 kg/m2/s C2H6_emission_flux_from_biomass_burning +EmisC2H6_Ship C2H6 0 10 -1 2 kg/m2/s C2H6_emission_flux_from_ships + +############################################################################### +##### C3H8 emissions ##### +############################################################################### +EmisC3H8_Total C3H8 -1 -1 -1 3 kg/m2/s C3H8_emission_flux_from_all_sectors +EmisC3H8_Aircraft C3H8 0 20 -1 3 kg/m2/s C3H8_emission_flux_from_aircraft +EmisC3H8_Anthro C3H8 0 1 -1 3 kg/m2/s C3H8_emission_flux_from_anthropogenic +EmisC3H8_BioBurn C3H8 111 -1 -1 2 kg/m2/s C3H8_emission_flux_from_biomass_burning +EmisC3H8_Ship C3H8 0 10 -1 2 kg/m2/s C3H8_emission_flux_from_ships + +############################################################################### +##### CH2Br2 emissions ##### +############################################################################### +EmisCH2Br2_Ocean CH2Br2 0 1 -1 2 kg/m2/s CH2Br2_emission_flux_from_ocean + +############################################################################### +##### CH2I2 emissions ##### +############################################################################### +EmisCH2I2_Ocean CH2I2 0 1 -1 2 kg/m2/s CH2I2_emission_flux_from_ocean + +############################################################################### +##### CH2ICl emissions ##### +############################################################################### +EmisCH2ICl_Ocean CH2ICl 0 1 -1 2 kg/m2/s CH2ICl_emission_flux_from_ocean + +############################################################################### +##### CH2IBr emissions ##### +############################################################################### +EmisCH2IBr_Ocean CH2IBr 0 1 -1 2 kg/m2/s CH2IBr_emission_flux_from_ocean + +############################################################################### +##### CH2O emissions ##### +############################################################################### +EmisCH2O_Total CH2O -1 -1 -1 3 kg/m2/s CH2O_emission_flux_from_all_sectors +EmisCH2O_Aircraft CH2O 0 20 -1 3 kg/m2/s CH2O_emission_flux_from_aircraft +EmisCH2O_Anthro CH2O 0 1 -1 3 kg/m2/s CH2O_emission_flux_from_anthropogenic +EmisCH2O_BioBurn CH2O 111 -1 -1 2 kg/m2/s CH2O_emission_flux_from_biomass_burning +EmisCH2O_Ship CH2O 0 10 -1 2 kg/m2/s CH2O_emission_flux_from_ships + +############################################################################### +##### CH3I emissions ##### +############################################################################### +EmisCH3I_Ocean CH3I 0 1 -1 2 kg/m2/s CH3I_emission_flux_from_ocean + +############################################################################### +##### CH4 emissions ##### +############################################################################### +# Zero for now, so comment out +#EmisCH4_Total CH4 -1 -1 -1 3 kg/m2/s CH4_emission_flux_from_all_sectors +#EmisCH4_Anthro CH4 0 1 -1 3 kg/m2/s CH4_emission_flux_from_anthropogenic +#EmisCH4_BioBurn CH4 0 5 -1 2 kg/m2/s CH4_emission_flux_from_biomass_burning +#EmisCH4_Ship CH4 0 10 -1 2 kg/m2/s CH4_emission_flux_from_ships + +############################################################################### +##### CHBr3 emissions ##### +############################################################################### +EmisCHBr3_Ocean CHBr3 0 1 -1 2 kg/m2/s CHBr3_emission_flux_from_ocean + +############################################################################### +##### CO emissions ##### +############################################################################### +EmisCO_Total CO -1 -1 -1 3 kg/m2/s CO_emission_flux_from_all_sectors +EmisCO_Aircraft CO 0 20 -1 3 kg/m2/s CO_emission_flux_from_aircraft +EmisCO_Anthro CO 0 1 -1 3 kg/m2/s CO_emission_flux_from_anthropogenic +EmisCO_BioBurn CO 111 -1 -1 2 kg/m2/s CO_emission_flux_from_biomass_burning +EmisCO_Ship CO 0 10 -1 2 kg/m2/s CO_emission_flux_from_ships + +############################################################################### +##### CO2 emissions ##### +############################################################################### +EmisCO2_Total CO2 -1 -1 -1 3 kg/m2/s CO2_emission_flux_from_all_sectors +EmisCO2_Anthro CO2 0 1 -1 3 kg/m2/s CO2_emission_flux_from_anthropogenic +EmisCO2_BioBurn CO2 0 5 -1 2 kg/m2/s CO2_emission_flux_from_biomass_burning +EmisCO2_Ship CO2 0 10 -1 2 kg/m2/s CO2_emission_flux_from_ships + +############################################################################### +##### DMS emissions ##### +############################################################################### +EmisDMS_Ocean DMS 101 -1 -1 2 kg/m2/s DMS_emission_flux_from_ocean + +############################################################################### +##### Dust emissions ##### +############################################################################### +EmisDST1_Total DST1 -1 -1 -1 2 kg/m2/s DST1_emission_flux_from_all_sectors +EmisDST1_Anthro DST1 0 1 -1 2 kg/m2/s DST1_emission_flux_from_anthropogenic +EmisDST1_Natural DST1 0 3 -1 2 kg/m2/s DST1_emission_flux_from_natural_sources +EmisDST2_Natural DST2 0 3 -1 2 kg/m2/s DST2_emission_flux_from_natural_sources +EmisDST3_Natural DST3 0 3 -1 2 kg/m2/s DST3_emission_flux_from_natural_sources +EmisDST4_Natural DST4 0 3 -1 2 kg/m2/s DST4_emission_flux_from_natural_sources + +############################################################################### +##### EOH emissions ##### +############################################################################### +EmisEOH_Total EOH -1 -1 -1 3 kg/m2/s EOH_emission_flux_from_all_sectors +EmisEOH_Anthro EOH 0 1 -1 3 kg/m2/s EOH_emission_flux_from_anthropogenic +EmisEOH_BioBurn EOH 111 -1 -1 2 kg/m2/s EOH_emission_flux_from_biomass_burning +EmisEOH_Biogenic EOH 0 4 -1 2 kg/m2/s EOH_emission_flux_from_biogenic_sources +EmisEOH_PlantDecay EOH 0 3 -1 2 kg/m2/s EOH_emission_flux_from_decaying_plants +EmisEOH_Ship EOH 0 10 -1 2 kg/m2/s EOH_emission_flux_from_ships + +############################################################################### +##### ETNO3 emissions ##### +############################################################################### +EmisETNO3_Ocean ETNO3 101 -1 -1 2 kg/m2/s ETNO3_emission_flux_from_ocean + +############################################################################### +##### H2O emissions ##### +############################################################################### +EmisH2O_Aircraft H2O 0 20 -1 3 kg/m2/s H2O_emission_flux_from_aircraft + +############################################################################### +##### HCOOH sources ##### +############################################################################### +EmisHCOOH_Total HCOOH -1 -1 -1 3 kg/m2/s HCOOH_emission_flux_from_all_sectors +EmisHCOOH_Anthro HCOOH 0 1 -1 3 kg/m2/s HCOOH_emission_flux_from_anthropogenic +EmisHCOOH_Ship HCOOH 0 10 -1 2 kg/m2/s HCOOH_emission_flux_from_ship + +############################################################################### +##### HNO3 emissions ##### +############################################################################### +EmisHNO3_Ship HNO3 102 -1 -1 2 kg/m2/s HNO3_emission_flux_from_ships + +############################################################################### +##### HONO emissions ##### +############################################################################### +EmisHONO_Aircraft HONO 0 20 -1 3 kg/m2/s HONO_emission_flux_from_aircraft + +############################################################################### +##### ISOP emissions ##### +############################################################################### +EmisISOP_Total ISOP -1 -1 -1 3 kg/m2/s ISOP_emission_flux_from_all_sectors +EmisISOP_Biogenic ISOP 0 4 -1 2 kg/m2/s ISOP_emission_flux_from_biogenic_sources + +############################################################################### +##### LIMO emissions ##### +############################################################################### +EmisLIMO_Biogenic LIMO 0 4 -1 2 kg/m2/s LIMO_emission_flux_from_biogenic_sources + +############################################################################### +##### MACR emissions ##### +############################################################################### +EmisMACR_Total MACR -1 -1 -1 3 kg/m2/s MACR_emission_flux_from_all_sectors +EmisMACR_Aircraft MACR 0 20 -1 3 kg/m2/s MACR_emission_flux_from_anthropogenic + +############################################################################### +##### MEK emissions ##### +############################################################################### +EmisMEK_Total MEK -1 -1 -1 3 kg/m2/s MEK_emission_flux_from_all_sectors +EmisMEK_Anthro MEK 0 1 -1 3 kg/m2/s MEK_emission_flux_from_anthropogenic +EmisMEK_BioBurn MEK 111 -1 -1 2 kg/m2/s MEK_emission_flux_from_biomass_burning +EmisMEK_Ship MEK 0 10 -1 2 kg/m2/s MEK_emission_flux_from_ships + +############################################################################### +##### MENO3 emissions ##### +############################################################################### +EmisMENO3_Ocean MENO3 101 -1 -1 2 kg/m2/s MENO3_emission_flux_from_ocean + +############################################################################### +##### MGLY emissions ##### +############################################################################### +# Zero for now, so comment out +#EmisMGLY_Total MGLY -1 -1 -1 3 kg/m2/s MGLY_emission_flux_from_all_sectors +#EmisMGLY_Anthro MGLY 0 1 -1 3 kg/m2/s MGLY_emission_flux_from_anthropogenic + +############################################################################### +##### MOH emissions ##### +############################################################################### +EmisMOH_Total MOH -1 -1 -1 3 kg/m2/s MOH_emission_flux_from_all_sectors +EmisMOH_Anthro MOH 0 1 -1 3 kg/m2/s MOH_emission_flux_from_anthropogenic +EmisMOH_BioBurn MOH 111 -1 -1 2 kg/m2/s MOH_emission_flux_from_biomass_burning +EmisMOH_Biogenic MOH 108 -1 -1 2 kg/m2/s MOH_emission_flux_from_biogenic_sources +EmisMOH_Ocean MOH 101 -1 -1 2 kg/m2/s MOH_emission_flux_from_ocean +EmisMOH_Ship MOH 0 10 -1 2 kg/m2/s MOH_emission_flux_from_ships + +############################################################################### +##### MTPA emissions ##### +############################################################################### +EmisMTPA_Total MTPA -1 -1 -1 3 kg/m2/s MTPA_emission_flux_from_all_sectors +EmisMTPA_BioBurn MTPA 111 -1 -1 2 kg/m2/s MTPA_emission_flux_from_biomass_burning +EmisMTPA_Biogenic MTPA 0 4 -1 2 kg/m2/s MTPA_emission_flux_from_biogenic_sources + +############################################################################### +##### MTPO emissions ##### +############################################################################### +EmisMTPO_Biogenic MTPO 0 4 -1 2 kg/m2/s MTPO_emission_flux_from_biogenic_sources + +############################################################################### +##### NAP emissions ##### +############################################################################### +EmisNAP_Total NAP -1 -1 -1 3 kg/m2/s NAP_emission_flux_from_all_sectors +EmisNAP_Anthro NAP 0 1 -1 3 kg/m2/s NAP_emission_flux_from_anthropogenic +EmisNAP_BioBurn NAP 111 -1 -1 2 kg/m2/s NAP_emission_flux_from_biomass_burning + +############################################################################### +##### NH3 emissions ##### +############################################################################### +EmisNH3_Total NH3 -1 -1 -1 3 kg/m2/s NH3_emission_flux_from_all_sectors +EmisNH3_Anthro NH3 0 1 -1 3 kg/m2/s NH3_emission_flux_from_anthropogenic +EmisNH3_BioBurn NH3 111 -1 -1 2 kg/m2/s NH3_emission_flux_from_biomass_burning +EmisNH3_Natural NH3 0 3 -1 2 kg/m2/s NH3_emission_flux_from_natural_sources +EmisNH3_Seabirds NH3 0 30 -1 2 kg/m2/s NH3_emission_flux_from_seabirds +EmisNH3_Ship NH3 0 10 -1 2 kg/m2/s NH3_emission_flux_from_ships + +############################################################################### +##### NO emissions ##### +##### ##### +##### - Separate fertilizer NOx emissions are only available when the ##### +##### SoilNOx extension is enabled ##### +############################################################################### +EmisNO_Total NO -1 -1 -1 3 kg/m2/s NO_emission_flux_from_all_sectors +EmisNO_Aircraft NO 0 20 -1 3 kg/m2/s NO_emission_flux_from_aircraft +EmisNO_Anthro NO 0 1 -1 3 kg/m2/s NO_emission_flux_from_anthropogenic +EmisNO_BioBurn NO 111 -1 -1 2 kg/m2/s NO_emission_flux_from_biomass_burning +EmisNO_Lightning NO 103 -1 -1 3 kg/m2/s NO_emission_flux_from_lightning +EmisNO_Ship NO 102 -1 -1 2 kg/m2/s NO_emission_flux_from_ships +EmisNO_Soil NO 0 3 -1 2 kg/m2/s NO_emission_flux_from_soil_including_fertilizer +#EmisNO_Fert -1 104 -1 -1 2 kg/m2/s NO_emission_flux_from_fertilizer_only + +############################################################################### +##### NO2 emissions ##### +############################################################################### +EmisNO2_Total NO2 -1 -1 -1 3 kg/m2/s NO2_emission_flux_from_all_sectors +EmisNO2_Aircraft NO2 0 20 -1 3 kg/m2/s NO2_emission_flux_from_aircraft +EmisNO2_Ship NO2 102 -1 -1 2 kg/m2/s NO2_emission_flux_from_ships + +############################################################################### +##### O3 emissions ##### +############################################################################### +EmisO3_Ship O3 102 -1 -1 2 kg/m2/s O3_emission_flux_from_ships + +############################################################################### +##### OCPI and OCPO emissions ##### +############################################################################### +EmisOCPI_Total OCPI -1 -1 -1 3 kg/m2/s OCPI_emission_flux_from_all_sectors +EmisOCPI_Aircraft OCPI 0 20 -1 3 kg/m2/s OCPI_emission_flux_from_aircraft +EmisOCPI_Anthro OCPI 0 1 -1 3 kg/m2/s OCPI_emission_flux_from_anthropogenic +EmisOCPI_BioBurn OCPI 111 -1 -1 2 kg/m2/s OCPI_emission_flux_from_biomass_burning +EmisOCPI_Ship OCPI 0 10 -1 2 kg/m2/s OCPI_emission_flux_from_ships +EmisOCPO_Total OCPO -1 -1 -1 3 kg/m2/s OCPO_emission_flux_from_all_sectors +EmisOCPO_Anthro OCPO 0 1 -1 3 kg/m2/s OCPO_emission_flux_from_anthropogenic +EmisOCPO_BioBurn OCPO 111 -1 -1 2 kg/m2/s OCPO_emission_flux_from_biomass_burning +EmisOCPO_Ship OCPO 0 10 -1 2 kg/m2/s OCPO_emission_flux_from_ships + +############################################################################### +##### pFe emissions ##### +############################################################################### +EmispFe_Total pFe -1 -1 -1 3 kg/m2/s pFe_emission_flux_from_all_sectors +EmispFe_Anthro pFe 0 1 -1 3 kg/m2/s pFe_emission_flux_from_anthropogenic +EmispFe_Ship pFe 0 10 -1 2 kg/m2/s pFe_emission_flux_from_ships + +############################################################################### +##### POG1 and POG2 emissions ##### +############################################################################### +EmisPOG1_Total POG1 -1 -1 -1 3 kg/m2/s POG1_emission_flux_from_all_sectors +EmisPOG1_Anthro POG1 0 1 -1 3 kg/m2/s POG1_emission_flux_from_anthropogenic +EmisPOG1_BioBurn POG1 111 -1 -1 2 kg/m2/s POG1_emission_flux_from_GFED_inventory +EmisPOG2_Total POG2 -1 -1 -1 3 kg/m2/s POG2_emission_flux_from_all_sectors +EmisPOG2_Anthro POG2 0 1 -1 3 kg/m2/s POG2_emission_flux_from_anthropogenic +EmisPOG2_BioBurn POG2 111 -1 -1 2 kg/m2/s POG2_emission_flux_from_GFED_inventory + +############################################################################### +##### PRPE emissions ##### +############################################################################### +EmisPRPE_Total PRPE -1 -1 -1 3 kg/m2/s PRPE_emission_flux_from_all_sectors +EmisPRPE_Aircraft PRPE 0 20 -1 3 kg/m2/s PRPE_emission_flux_from_aircraft +EmisPRPE_Anthro PRPE 0 1 -1 3 kg/m2/s PRPE_emission_flux_from_anthropogenic +EmisPRPE_BioBurn PRPE 111 -1 -1 2 kg/m2/s PRPE_emission_flux_from_biomass_burning +EmisPRPE_Biogenic PRPE 0 4 -1 2 kg/m2/s PRPE_emission_flux_from_biogenic_sources +EmisPRPE_Ship PRPE 0 10 -1 2 kg/m2/s PRPE_emission_flux_from_ships + +############################################################################### +##### RCHO emissions ##### +############################################################################### +EmisRCHO_Total RCHO -1 -1 -1 3 kg/m2/s RCHO_emission_flux_from_all_sectors +EmisRCHO_Aircraft RCHO 0 20 -1 3 kg/m2/s RCHO_emission_flux_from_aircraft + +############################################################################### +##### SESQ emissions ##### +############################################################################### +# SESQ is not an active species in GEOS-Chem; disable for now +#EmisSESQ_Biogenic SESQ 0 4 -1 2 kg/m2/s SESQ_emission_flux_from_biogenic_sources + +############################################################################### +##### Sea salt emissions ##### +############################################################################### +EmisSALA_Natural SALA 0 3 -1 2 kg/m2/s SALA_emission_flux_from_natural_sources +EmisBrSALA_Natural BrSALA 0 3 -1 2 kg/m2/s BrSALA_emission_flux_from_natural_sources +EmisSALAAL_Natural SALAAL 0 3 -1 2 kg/m2/s SALAAL_emission_flux_from_natural_sources +EmisSALACL_Natural SALACL 0 3 -1 2 kg/m2/s SALACL_emission_flux_from_natural_sources +EmisSALC_Natural SALC 0 3 -1 2 kg/m2/s SALC_emission_flux_from_natural_sources +EmisBrSALC_Natural BrSALC 0 3 -1 2 kg/m2/s BrSALC_emission_flux_from_natural_sources +EmisSALCAL_Natural SALCAL 0 3 -1 2 kg/m2/s SALCAL_emission_flux_from_natural_sources +EmisSALCCL_Natural SALCCL 0 3 -1 2 kg/m2/s SALCCL_emission_flux_from_natural_sources + +############################################################################### +##### SO2 emissions ##### +############################################################################### +EmisSO2_Total SO2 -1 -1 -1 3 kg/m2/s SO2_emission_flux_from_all_sectors +EmisSO2_Aircraft SO2 0 20 -1 3 kg/m2/s SO2_emission_flux_from_aircraft +EmisSO2_Anthro SO2 0 1 -1 3 kg/m2/s SO2_emission_flux_from_anthropogenic +EmisSO2_BioBurn SO2 111 -1 -1 2 kg/m2/s SO2_emission_flux_from_biomass_burning +EmisSO2_VolcErupt SO2 117 51 -1 3 kg/m2/s SO2_emission_flux_from_eruptive_volcano +EmisSO2_VolcDegas SO2 117 52 -1 3 kg/m2/s SO2_emission_flux_from_noneruptive_volcano +EmisSO2_Ship SO2 0 10 -1 2 kg/m2/s SO2_emission_flux_from_ships + +############################################################################### +##### SO4 emissions ##### +############################################################################### +EmisSO4_Total SO4 -1 -1 -1 3 kg/m2/s SO4_emission_flux_from_all_sectors +EmisSO4_Aircraft SO4 0 20 -1 3 kg/m2/s SO4_emission_flux_from_aircraft +EmisSO4_Anthro SO4 0 1 -1 3 kg/m2/s SO4_emission_flux_from_anthropogenic +EmisSO4_Ship SO4 0 10 -1 2 kg/m2/s SO4_emission_flux_from_ship + +############################################################################### +##### SOAP sources ##### +############################################################################### +EmisSOAP_Total SOAP -1 -1 -1 3 kg/m2/s SOAP_emission_flux_from_all_sectors +EmisSOAP_Aircraft SOAP 0 20 -1 3 kg/m2/s SOAP_emission_flux_from_aircraft +EmisSOAP_Anthro SOAP 0 1 -1 3 kg/m2/s SOAP_emission_flux_from_anthropogenic +EmisSOAP_Biogenic SOAP 0 4 -1 2 kg/m2/s SOAP_emission_flux_from_biogenic_sources +EmisSOAP_BioBurn SOAP 111 -1 -1 2 kg/m2/s SOAP_emission_flux_from_biomass_burning +EmisSOAP_Ship SOAP 0 10 -1 2 kg/m2/s SOAP_emission_flux_from_ships + +############################################################################### +##### SOAS sources ##### +############################################################################### +EmisSOAS_Biogenic SOAS 0 4 -1 2 kg/m2/s SOAS_emission_flux_from_biogenic_sources + +############################################################################### +##### TOLU emissions ##### +############################################################################### +EmisTOLU_Total TOLU -1 -1 -1 3 kg/m2/s TOLU_emission_flux_from_all_sectors +EmisTOLU_Anthro TOLU 0 1 -1 3 kg/m2/s TOLU_emission_flux_from_anthropogenic +EmisTOLU_BioBurn TOLU 111 -1 -1 2 kg/m2/s TOLU_emission_flux_from_biomass_burning +EmisTOLU_Ship TOLU 0 10 -1 2 kg/m2/s TOLU_emission_flux_from_ships + +############################################################################### +##### XYLE emissions ##### +############################################################################### +EmisXYLE_Total XYLE -1 -1 -1 3 kg/m2/s XYLE_emission_flux_from_all_sectors +EmisXYLE_Anthro XYLE 0 1 -1 3 kg/m2/s XYLE_emission_flux_from_anthropogenic +EmisXYLE_BioBurn XYLE 111 -1 -1 2 kg/m2/s XYLE_emission_flux_from_biomass_burning +EmisXYLE_Ship XYLE 0 10 -1 2 kg/m2/s XYLE_emission_flux_from_ships + +############################################################################### +##### Additional diagnostics saved out via HEMCO extensions ##### +############################################################################### + +#============================= +# LIGHTNOX extension +#============================= +HcoLightningFlashRate_Total -1 103 -1 -1 2 flashes/min/km2 Total_lightning_flash_rate +HcoLightningFlashRate_IntraCld -1 103 -1 -1 2 flashes/min/km2 Intra-cloud_lightning_flash_rate +HcoLightningFlashRate_CldGround -1 103 -1 -1 2 flashes/min/km2 Cloud-ground_lightning_flash_rate +HcoConvectiveCloudTopHeight -1 103 -1 -1 2 level Convective_cloud_top_height + +############################################################################### +##### INVENTORY DIAGNOSTICS, needed for benchmarking simulations only ##### +##### Listed in same order as HEMCO_Config.rc ##### +##### (You can comment these out for production runs, to save memory) ##### +############################################################################### + +#============================= +# CEDS +#============================= +#InvCEDS_ALD2 ALD2 0 1 5 3 kg/m2/s ALD2_emission_flux_from_CEDS_inventory +#InvCEDS_ALK4 ALK4 0 1 5 3 kg/m2/s ALK4_emission_flux_from_CEDS_inventory +#InvCEDS_BCPI BCPI 0 1 5 3 kg/m2/s BCPI_emission_flux_from_CEDS_inventory +#InvCEDS_BCPO BCPO 0 1 5 3 kg/m2/s BCPO_emission_flux_from_CEDS_inventory +#InvCEDS_BENZ BENZ 0 1 5 3 kg/m2/s BENZ_emission_flux_from_CEDS_inventory +#InvCEDS_C2H2 C2H2 0 1 5 3 kg/m2/s C2H2_emission_flux_from_CEDS_inventory +#InvCEDS_C2H4 C2H4 0 1 5 3 kg/m2/s C2H4_emission_flux_from_CEDS_inventory +#InvCEDS_C2H6 C2H6 0 1 5 3 kg/m2/s C2H6_emission_flux_from_CEDS_inventory +#InvCEDS_C3H8 C3H8 0 1 5 3 kg/m2/s C3H8_emission_flux_from_CEDS_inventory +#InvCEDS_CH2O CH2O 0 1 5 3 kg/m2/s CH2O_emission_flux_from_CEDS_inventory +#InvCEDS_CO CO 0 1 5 3 kg/m2/s CO_emission_flux_from_CEDS_inventory +#InvCEDS_MOH MOH 0 1 5 3 kg/m2/s MOH_emission_flux_from_CEDS_inventory +#InvCEDS_EOH EOH 0 1 5 3 kg/m2/s EOH_emission_flux_from_CEDS_inventory +#InvCEDS_ROH ROH 0 1 5 3 kg/m2/s ROH_emission_flux_from_CEDS_inventory +#InvCEDS_HCOOH HCOOH 0 1 5 3 kg/m2/s HCOOH_emission_flux_from_CEDS_inventory +#InvCEDS_MEK MEK 0 1 5 3 kg/m2/s MEK_emission_flux_from_CEDS_inventory +#InvCEDS_NH3 NH3 0 1 5 3 kg/m2/s NH3_emission_flux_from_CEDS_inventory +#InvCEDS_NO NO 0 1 5 3 kg/m2/s NO_emission_flux_from_CEDS_inventory +#InvCEDS_OCPI OCPI 0 1 5 3 kg/m2/s OCPI_emission_flux_from_CEDS_inventory +#InvCEDS_OCPO OCPO 0 1 5 3 kg/m2/s OCPO_emission_flux_from_CEDS_inventory +#InvCEDS_pFe pFe 0 1 5 3 kg/m2/s pFe_emission_flux_from_CEDS_inventory +#InvCEDS_POG1 POG1 0 1 5 3 kg/m2/s POG1_emission_flux_from_CEDS_inventory +#InvCEDS_POG2 POG2 0 1 5 3 kg/m2/s POG2_emission_flux_from_CEDS_inventory +#InvCEDS_PRPE PRPE 0 1 5 3 kg/m2/s PRPE_emission_flux_from_CEDS_inventory +#InvCEDS_SO2 SO2 0 1 5 3 kg/m2/s SO2_emission_flux_from_CEDS_inventory +#InvCEDS_SO4 SO4 0 1 5 3 kg/m2/s SO4_emission_flux_from_CEDS_inventory +#InvCEDS_SOAP SOAP 0 1 5 3 kg/m2/s SOAP_emission_flux_from_CEDS_inventory +#InvCEDS_TOLU TOLU 0 1 5 3 kg/m2/s TOLU_emission_flux_from_CEDS_inventory +#InvCEDS_XYLE XYLE 0 1 5 3 kg/m2/s XYLE_emission_flux_from_CEDS_inventory + +#============================= +# GEIA_NH3 +#============================= +#InvGEIAnatural_NH3 NH3 0 3 1 2 kg/m2/s NH3_emission_flux_from_GEIA_natural_source + +#============================= +# Seabirds +#============================= +#InvSEABIRDS_NH3 NH3 0 30 1 2 kg/m2/s NH3_emission_flux_from_arctic_seabirds + +#============================= +# C2H62010 +#============================= +#InvC2H62010_C2H6 C2H6 0 1 100 2 kg/m2/s C2H6_from_C2H62010_anthropogenic_inventory + +#============================= +# XIAO_C3H8 +#============================= +#InvXIAO_C3H8 C3H8 0 1 10 2 kg/m2/s C3H8_from_XIAO_anthropogenic_inventory + +#============================= +# LIANG_BROMOCARB +#============================= +#InvLIANG_CH2Br2 CH2Br2 0 1 1 2 kg/m2/s CH2Br2_emission_flux_from_LIANG_BROMOCARB_inventory +#InvLIANG_CHBr3 CHBr3 0 1 1 2 kg/m2/s CHBr3_emission_flux_from_LIANG_BROMOCARB_inventory + +#============================= +# ORDONEZ_IODOCARB +#============================= +#InvORDONEZ_CH2I2 CH2I2 0 1 1 2 kg/m2/s CH2I2_emission_flux_from_ORDONEZ_IODOCARB_inventory +#InvORDONEZ_CH2ICl CH2ICl 0 1 1 2 kg/m2/s CH2ICl_emission_flux_from_ORDONEZ_IODOCARB_inventory +#InvORDONEZ_CH2IBr CH2IBr 0 1 1 2 kg/m2/s CH2IBr_emission_flux_from_ORDONEZ_IODOCARB_inventory +#InvORDONEZ_CH3I CH3I 0 1 1 2 kg/m2/s CH3I_emission_flux_from_ORDONEZ_IODOCARB_inventory + +#============================= +# CEDS_SHIP +#============================= +#InvCEDSship_ALD2 ALD2 0 10 5 2 kg/m2/s ALD2_emission_flux_from_CEDSship_inventory +#InvCEDSship_ALK4 ALK4 0 10 5 2 kg/m2/s ALK4_emission_flux_from_CEDSship_inventory +#InvCEDSship_BCPI BCPI 0 10 5 2 kg/m2/s BCPI_emission_flux_from_CEDSship_inventory +#InvCEDSship_BCPO BCPO 0 10 5 2 kg/m2/s BCPO_emission_flux_from_CEDSship_inventory +#InvCEDSship_BENZ BENZ 0 10 5 2 kg/m2/s BENZ_emission_flux_from_CEDSship_inventory +#InvCEDSship_C2H2 C2H2 0 10 5 2 kg/m2/s C2H2_emission_flux_from_CEDSship_inventory +#InvCEDSship_C2H4 C2H4 0 10 5 2 kg/m2/s C2H4_emission_flux_from_CEDSship_inventory +#InvCEDSship_C2H6 C2H6 0 10 5 2 kg/m2/s C2H6_emission_flux_from_CEDSship_inventory +#InvCEDSship_C3H8 C3H8 0 10 5 2 kg/m2/s C3H8_emission_flux_from_CEDSship_inventory +#InvCEDSship_CH2O CH2O 0 10 5 2 kg/m2/s CH2O_emission_flux_from_CEDSship_inventory +#InvCEDSship_CO CO 0 10 5 2 kg/m2/s CO_emission_flux_from_CEDSship_inventory +#InvCEDSship_EOH EOH 0 10 5 2 kg/m2/s EOH_emission_flux_from_CEDSship_inventory +#InvCEDSship_HCOOH HCOOH 0 10 5 2 kg/m2/s HCOOH_emission_flux_from_CEDSship_inventory +#InvCEDSship_MEK MEK 0 10 5 2 kg/m2/s MEK_emission_flux_from_CEDSship_inventory +#InvCEDSship_NH3 NH3 0 10 5 2 kg/m2/s NH3_emission_flux_from_CEDSship_inventory +#InvCEDSship_pFe pFe 0 10 5 2 kg/m2/s pFe_emission_flux_from_CEDSship_inventory +#InvCEDSship_PRPE PRPE 0 10 5 2 kg/m2/s PRPE_emission_flux_from_CEDSship_inventory +#InvCEDSship_OCPI OCPI 0 10 5 2 kg/m2/s OCPI_emission_flux_from_CEDSship_inventory +#InvCEDSship_OCPO OCPO 0 10 5 2 kg/m2/s OCPO_emission_flux_from_CEDSship_inventory +#InvCEDSship_SO2 SO2 0 10 5 2 kg/m2/s SO2_emission_flux_from_CEDSship_inventory +#InvCEDSship_SO4 SO4 0 10 5 2 kg/m2/s SO4_emission_flux_from_CEDSship_inventory +#InvCEDSship_SOAP SOAP 0 10 5 2 kg/m2/s SOAP_emission_flux_from_CEDSship_inventory +#InvCEDSship_TOLU TOLU 0 10 5 2 kg/m2/s TOLU_emission_flux_from_CEDSship_inventory +#InvCEDSship_XYLE XYLE 0 10 5 2 kg/m2/s XYLE_emission_flux_from_CEDSship_inventory + +#============================= +# AEIC +#============================= +#InvAEIC_ACET ACET 0 20 1 3 kg/m2/s ACET_emission_flux_from_AEIC_inventory +#InvAEIC_ALD2 ALD2 0 20 1 3 kg/m2/s ALD2_emission_flux_from_AEIC_inventory +#InvAEIC_ALK4 ALK4 0 20 1 3 kg/m2/s ALK4_emission_flux_from_AEIC_inventory +#InvAEIC_BCPI BCPI 0 20 1 3 kg/m2/s BCPI_emission_flux_from_AEIC_inventory +#InvAEIC_C2H6 C2H6 0 20 1 3 kg/m2/s C2H6_emission_flux_from_AEIC_inventory +#InvAEIC_C3H8 C3H8 0 20 1 3 kg/m2/s C3H8_emission_flux_from_AEIC_inventory +#InvAEIC_CH2O CH2O 0 20 1 3 kg/m2/s CH2O_emission_flux_from_AEIC_inventory +#InvAEIC_CO CO 0 20 1 3 kg/m2/s CO_emission_flux_from_AEIC_inventory +#InvAEIC_HONO HONO 0 20 1 3 kg/m2/s HONO_emission_flux_from_AEIC_inventory +#InvAEIC_MACR MACR 0 20 1 3 kg/m2/s MACR_emission_flux_from_AEIC_inventory +#InvAEIC_NO NO 0 20 1 3 kg/m2/s NO_emission_flux_from_AEIC_inventory +#InvAEIC_NO2 NO2 0 20 1 3 kg/m2/s NO2_emission_flux_from_AEIC_inventory +#InvAEIC_OCPI OCPI 0 20 1 3 kg/m2/s OCPI_emission_flux_from_AEIC_inventory +#InvAEIC_PRPE PRPE 0 20 1 3 kg/m2/s PRPE_emission_flux_from_AEIC_inventory +#InvAEIC_RCHO RCHO 0 20 1 3 kg/m2/s RCHO_emission_flux_from_AEIC_inventory +#InvAEIC_SO2 SO2 0 20 1 3 kg/m2/s SO2_emission_flux_from_AEIC_inventory +#InvAEIC_SO4 SO4 0 20 1 3 kg/m2/s SO4_emission_flux_from_AEIC_inventory +#InvAEIC_SOAP SOAP 0 20 1 3 kg/m2/s SOAP_emission_flux_from_AEIC_inventory + +#============================= +# Decaying plants +#============================= +#InvPLANTDECAY_ALD2 ALD2 0 3 1 2 kg/m2/s ALD2_emission_flux_from_PLANTDECAY_inventory +#InvPLANTDECAY_EOH EOH 0 3 1 2 kg/m2/s EOH_emission_flux_from_PLANTDECAY_inventory + +#============================= +# AFCID emissions +#============================= +#InvAFCID_DST1 DST1 0 1 -1 2 kg/m2/s DST1_emission_flux_from_AFCID_inventory + +#============================= +# Seaflux extension +#============================= +#InvSeaFlux_ACET ACET 101 -1 -1 2 kg/m2/s ACET_emission_flux_from_SeaFlux_extension +#InvSeaFlux_ALD2 ALD2 101 -1 -1 2 kg/m2/s ALD2_emission_flux_from_SeaFlux_extension +#InvSeaFlux_DMS DMS 101 -1 -1 2 kg/m2/s DMS_emission_flux_from_SeaFlux_extension +#InvSeaFlux_ETNO3 ETNO3 101 -1 -1 2 kg/m2/s ETNO3_emission_flux_from_SeaFlux_extension +#InvSeaFlux_MENO3 MENO3 101 -1 -1 2 kg/m2/s MENO3_emission_flux_from_SeaFlux_extension +#InvSeaFlux_MOH MOH 101 -1 -1 2 kg/m2/s MOH_emission_flux_from_SeaFlux_extension + +#============================= +# PARANOX extension +#============================= +#InvPARANOX_HNO3 HNO3 102 -1 -1 2 kg/m2/s HNO3_emission_flux_from_PARANOX_extension +#InvPARANOX_NO NO 102 -1 -1 2 kg/m2/s NO_emission_flux_from_PARANOX_extension +#InvPARANOX_NO2 NO2 102 -1 -1 2 kg/m2/s NO2_emission_flux_from_PARANOX_extension +#InvPARANOX_O3 O3 102 -1 -1 2 kg/m2/s O3_emission_flux_from_PARANOX_extension + +#============================= +# LIGHTNOX extension +#============================= +#InvLIGHTNOX_NO NO 103 -1 -1 3 kg/m2/s NO_emission_flux_from_lightning_extension + +#============================= +# SOILNOX extension +#============================= +#InvSOILNOX_NO NO 104 -1 -1 2 kg/m2/s NO_emission_flux_from_SOINOX_extension_including_soil_and_fertilizer_emissions + +#============================= +# DEAD (dust) Extension +#============================= +#InvDEAD_DST1 DST1 105 -1 -1 2 kg/m2/s DST1_emission_flux_from_DEAD_extension +#InvDEAD_DST2 DST2 105 -1 -1 2 kg/m2/s DST2_emission_flux_from_DEAD_extension +#InvDEAD_DST3 DST3 105 -1 -1 2 kg/m2/s DST3_emission_flux_from_DEAD_extension +#InvDEAD_DST4 DST4 105 -1 -1 2 kg/m2/s DST4_emission_flux_from_DEAD_extension + +#============================= +# SeaSalt extension +#============================= +#InvSeaSalt_BrSALA BrSALA 107 -1 -1 2 kg/m2/s BrSALA_emission_flux_from_SeaSalt_extension +#InvSeaSalt_BrSALC BrSALC 107 -1 -1 2 kg/m2/s BrSALC_emission_flux_from_SeaSalt_extension +#InvSeaSalt_SALA SALA 107 -1 -1 2 kg/m2/s SALA_emission_flux_from_SeaSalt_extension +#InvSeaSalt_SALC SALC 107 -1 -1 2 kg/m2/s SALC_emission_flux_from_SeaSalt_extension +#InvSeaSalt_SALAAL SALAAL 107 -1 -1 2 kg/m2/s SALAAL_emission_flux_from_SeaSalt_extension +#InvSeaSalt_SALACL SALACL 107 -1 -1 2 kg/m2/s SALACL_emission_flux_from_SeaSalt_extension +#InvSeaSalt_SALCAL SALCAL 107 -1 -1 2 kg/m2/s SALAAL_emission_flux_from_SeaSalt_extension +#InvSeaSalt_SALCCL SALCCL 107 -1 -1 2 kg/m2/s SALCCL_emission_flux_from_SeaSalt_extension + +#============================= +# MEGAN Extension +#============================= +#InvMEGAN_ALD2 ALD2 108 -1 -1 2 kg/m2/s ALD2_biogenic_emission_flux_from_MEGAN_extension +# C2H4 is not an active species in GEOS-Chem; disable for now +##InvMEGAN_C2H4 C2H4 108 -1 -1 2 kg/m2/s C2H4_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_EOH EOH 108 -1 -1 2 kg/m2/s EOH_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_ISOP ISOP 108 -1 -1 2 kg/m2/s ISOP_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_LIMO LIMO 108 -1 -1 2 kg/m2/s LIMO_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_MTPA MTPA 108 -1 -1 2 kg/m2/s MTPA_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_MTPO MTPO 108 -1 -1 2 kg/m2/s MTPO_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_PRPE PRPE 108 -1 -1 2 kg/m2/s PRPE_biogenic_emission_flux_from_MEGAN_extension +# SESQ is not an active species in GEOS-Chem; disable for now +##InvMEGAN_SESQ SESQ 108 -1 -1 2 kg/m2/s SESQ_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_SOAP SOAP 108 -1 -1 2 kg/m2/s SOAP_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_SOAS SOAS 108 -1 -1 2 kg/m2/s SOAS_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_ACET ACET 108 -1 -1 2 kg/m2/s ACET_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_ACET_MONO -1 108 -1 -1 2 kg/m2/s Acetone_from_monoterpenes_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_ACET_MBOX -1 108 -1 -1 2 kg/m2/s Acetone_from_methyl_butenol_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_ACET_DIRECT -1 108 -1 -1 2 kg/m2/s Direct_acetone_biogenic_emission_flux_from_MEGAN_extension +#InvMEGAN_MOH MOH 108 -1 -1 2 kg/m2/s Methanol_emission_flux_from_MEGAN_extension +#InvMEGAN_APIN -1 108 -1 -1 2 kg/m2/s Alpha_pinene_emission_flux_from_MEGAN_extension +#InvMEGAN_BPIN -1 108 -1 -1 2 kg/m2/s Beta_pinene_acid_emission_flux_from_MEGAN_extension +#InvMEGAN_SABI -1 108 -1 -1 2 kg/m2/s Sabinene_emission_flux_from_MEGAN_extension +#InvMEGAN_MYRC -1 108 -1 -1 2 kg/m2/s Mycrene_emission_flux_from_MEGAN_extension +#InvMEGAN_CARE -1 108 -1 -1 2 kg/m2/s 3_Carene_emission_flux_from_MEGAN_extension +#InvMEGAN_OCIM -1 108 -1 -1 2 kg/m2/s Ocimene_emission_flux_from_MEGAN_extension +#InvMEGAN_OMON -1 108 -1 -1 2 kg/m2/s Other_monoterpene_emission_flux_from_MEGAN_extension +#InvMEGAN_MONX -1 108 -1 -1 2 kg/m2/s Total_monoterpene_emission_flux_from_MEGAN_extension +#InvMEGAN_FARN -1 108 -1 -1 2 kg/m2/s alpha_Farnesene_emission_flux_from_MEGAN_extension +#InvMEGAN_BCAR -1 108 -1 -1 2 kg/m2/s beta_caryophyllene_emission_flux_from_MEGAN_extension +#InvMEGAN_OSQT -1 108 -1 -1 2 kg/m2/s Other_sesquiterpenes_emission_flux_from_MEGAN_extension +#InvMEGAN_MBOX -1 108 -1 -1 2 kg/m2/s Methyl_butenol_emission_flux_from_MEGAN_extension +#InvMEGAN_FAXX -1 108 -1 -1 2 kg/m2/s Formic_acid_emission_flux_from_MEGAN_extension +#InvMEGAN_AAXX -1 108 -1 -1 2 kg/m2/s Acetic_acid_emission_flux_from_MEGAN_extension + +#============================= +# GFED Extension +#============================= +#InvGFED_ACET ACET 111 -1 -1 2 kg/m2/s ACET_emission_flux_from_GFED_extension +#InvGFED_ALD2 ALD2 111 -1 -1 2 kg/m2/s ALD2_emission_flux_from_GFED_extension +#InvGFED_ALK4 ALK4 111 -1 -1 2 kg/m2/s ALK4_emission_flux_from_GFED_extension +#InvGFED_BCPI BCPI 111 -1 -1 2 kg/m2/s BCPI_emission_flux_from_GFED_extension +#InvGFED_BCPO BCPO 111 -1 -1 2 kg/m2/s BCPO_emission_flux_from_GFED_extension +#InvGFED_BENZ BENZ 111 -1 -1 2 kg/m2/s BENZ_emission_flux_from_GFED_extension +#InvGFED_C2H6 C2H6 111 -1 -1 2 kg/m2/s C2H6_emission_flux_from_GFED_extension +#InvGFED_C3H8 C3H8 111 -1 -1 2 kg/m2/s C3H8_emission_flux_from_GFED_extension +#InvGFED_CH2O CH2O 111 -1 -1 2 kg/m2/s CH2O_emission_flux_from_GFED_extension +#InvGFED_CO CO 111 -1 -1 2 kg/m2/s CO_emission_flux_from_GFED_extension +#InvGFED_EOH EOH 111 -1 -1 2 kg/m2/s EOH_emission_flux_from_GFED_extension +#InvGFED_MEK MEK 111 -1 -1 2 kg/m2/s MEK_emission_flux_from_GFED_extension +#InvGFED_MOH MOH 111 -1 -1 2 kg/m2/s MOH_emission_flux_from_GFED_extension +#InvGFED_MTPA MTP 111 -1 -1 2 kg/m2/s MTPA_emission_flux_from_GFED_extension +#InvGFED_NAP NAP 111 -1 -1 2 kg/m2/s NAP_emission_flux_from_GFED_extension +#InvGFED_NH3 NH3 111 -1 -1 2 kg/m2/s NH3_emission_flux_from_GFED_extension +#InvGFED_NO NO 111 -1 -1 2 kg/m2/s NO_emission_flux_from_GFED_extension +#InvGFED_OCPI OCPI 111 -1 -1 2 kg/m2/s OCPI_emission_flux_from_GFED_extension +#InvGFED_OCPO OCPO 111 -1 -1 2 kg/m2/s OCPO_emission_flux_from_GFED_extension +#InvGFED_POG1 POG1 111 -1 -1 2 kg/m2/s POG1_emission_flux_from_GFED_extension +#InvGFED_POG2 POG2 111 -1 -1 2 kg/m2/s POG2_emission_flux_from_GFED_extension +#InvGFED_PRPE PRPE 111 -1 -1 2 kg/m2/s PRPE_emission_flux_from_GFED_extension +#InvGFED_SO2 SO2 111 -1 -1 2 kg/m2/s SO2_emission_flux_from_GFED_extension +#InvGFED_SOAP SOAP 111 -1 -1 2 kg/m2/s SOAP_emission_flux_from_GFED_extension +#InvGFED_TOLU TOLU 111 -1 -1 2 kg/m2/s TOLU_emission_flux_from_GFED_extension +#InvGFED_XYLE ACET 111 -1 -1 2 kg/m2/s XYLE_emission_flux_from_GFED_extension + +#============================= +# Volcano extension +#============================= +#InvVOLCANOerupt_SO2 SO2 117 51 -1 3 kg/m2/s SO2_eruptive_emission_flux_from_Volcano_extension +#InvVOLCANOdegas_SO2 SO2 117 52 -1 3 kg/m2/s SO2_degassing_emission_flux_from_Volcano_extension + +#============================= +# INORG_IODINE Extension +#============================= +#InvIODINE_HOI HOI 120 -1 -1 2 kg/m2/s HOI_emission_flux_from_INORG_IODINE_extension +#InvIODINE_I2 I2 120 -1 -1 2 kg/m2/s I2_emission_flux_from_INORG_IODINE_extension + +#EOC diff --git a/run/WRF/fullchem/HISTORY.rc b/run/WRF/fullchem/HISTORY.rc new file mode 100644 index 000000000..e1b2f21cf --- /dev/null +++ b/run/WRF/fullchem/HISTORY.rc @@ -0,0 +1,419 @@ +############################################################################### +### HISTORY.rc file for WRF-GC simulations ### +### Contact: WRF-GC Developer, Haipeng Lin (linhaipeng@pku.edu.cn) ### +### ### +### This file is based upon GEOS-Chem Support Team's original work. ### +############################################################################### + +#============================================================================ +# EXPID allows you to specify the beginning of the file path corresponding +# to each diagnostic collection. For example: +# +# EXPID: ./GEOSChem +# Will create netCDF files whose names begin "GEOSChem", +# in this run directory. +# +# EXPID: ./OutputDir/GEOSChem +# Will create netCDF files whose names begin with "GEOSChem" +# in the OutputDir sub-folder of this run directory. +# +#============================================================================ +EXPID: ./WRFGC + +#============================================================================== +# %%%%% COLLECTION NAME DECLARATIONS %%%%% +# +# To disable a collection, place a "#" character in front of its name +# +# NOTE: These are the "default" collections for GEOS-Chem, but you can create +# your own customized diagnostic collections as well. +#============================================================================== +COLLECTIONS: 'SpeciesConc', + 'Budget', + #'AerosolMass', + #'Aerosols', + 'CloudConvFlux', + #'ConcAfterChem', + #'DryDep', + #'JValues', + 'KppDiags', + #'LevelEdgeDiags', + #'ProdLoss', + #'StateChm', + #'StateMet', + #'WetLossConv', + #'WetLossLS', +:: +############################################################################### +### The rest of this file consists of collection definitions. ### +### Above collections whose declarations are commented out will be ignored. ### +### Make sure that each collection definition, as well as the list of ### +### collections above, ends with a double-colon ("::"). ### +############################################################################### + +#============================================================================== +# %%%%% THE SpeciesConc COLLECTION %%%%% +# +# GEOS-Chem species concentrations (default = advected species) +# +# Available for all simulations +#============================================================================== + SpeciesConc.template: '%y4%m2%d2_%h2%n2z.nc4', + SpeciesConc.format: 'CFIO', + SpeciesConc.frequency: 00000000 010000, + SpeciesConc.duration: 00000000 120000, + SpeciesConc.mode: 'instantaneous' + SpeciesConc.fields: 'SpeciesConc_?ADV? ', +:: +#============================================================================== +# %%%%% THE Budget COLLECTION %%%%% +# +# GEOS-Chem budget diagnostics defined as species kg/s in the column +# (full, troposphere, or PBL) due to a single component (e.g. chemistry) +# (default = advected species) +# +# Available for all simulations +#============================================================================== + Budget.template: '%y4%m2%d2_%h2%n2z.nc4', + Budget.frequency: 00000000 010000, + Budget.duration: 00000000 120000, + Budget.mode: 'instantaneous' + Budget.fields: 'BudgetEmisDryDepFull_?ADV? ', + 'BudgetEmisDryDepTrop_?ADV? ', + 'BudgetEmisDryDepPBL_?ADV? ', + 'BudgetEmisDryDepLevs1to35_?ADV? ', + 'BudgetChemistryFull_?ADV? ', + 'BudgetChemistryTrop_?ADV? ', + 'BudgetChemistryPBL_?ADV? ', + 'BudgetChemistryLevs1to35_?ADV? ', + 'BudgetMixingFull_?ADV? ', + 'BudgetMixingTrop_?ADV? ', + 'BudgetMixingPBL_?ADV? ', + 'BudgetMixingLevs1to35_?ADV? ', + 'BudgetConvectionFull_?ADV? ', + 'BudgetConvectionTrop_?ADV? ', + 'BudgetConvectionPBL_?ADV? ', + 'BudgetConvectionLevs1to35_?ADV? ', + 'BudgetWetDepFull_?WET? ', + 'BudgetWetDepTrop_?WET? ', + 'BudgetWetDepPBL_?WET? ', + 'BudgetWetDepLevs1to35_?WET? ', +:: +#============================================================================== +# %%%%% THE AerosolMass COLLECTION %%%%% +# +# Aerosol and PM2.5 mass +# +# Available for full-chemistry and aerosol-only simulations +#============================================================================== + AerosolMass.template: '%y4%m2%d2_%h2%n2z.nc4', + AerosolMass.format: 'CFIO', + AerosolMass.frequency: 00000000 010000, + AerosolMass.duration: 00000000 120000, + AerosolMass.mode: 'instantaneous' + AerosolMass.fields: 'AerMassBC ', + 'AerMassNH4 ', + 'AerMassNIT ', + 'AerMassPOA ', + 'AerMassSAL ', + 'AerMassSO4 ', + 'AerMassSOAGX ', + 'AerMassSOAMG ', + 'PM25 ', + 'TotalOA ', + 'TotalOC ', +:: +#============================================================================== +# %%%%% The Aerosols COLLECTION %%%%% +# +# Aerosol optical depth, surface area, number density, and hygroscopic growth +# +# Available for full-chemistry or aerosol-only simulations +#============================================================================== + Aerosols.template: '%y4%m2%d2_%h2%n2z.nc4', + Aerosols.format: 'CFIO', + Aerosols.frequency: 00000000 010000, + Aerosols.duration: 00000000 120000, + Aerosols.mode: 'instantaneous' + Aerosols.fields: 'AODDust ', + 'AODDustWL1_?DUSTBIN? ', + 'AODHygWL1_?HYG? ', + 'AODSOAfromAqIsopreneWL1 ', + 'AODStratLiquidAerWL1 ', + 'AODPolarStratCloudWL1 ', + 'AerHygroscopicGrowth_?HYG? ', + 'AerNumDensityStratLiquid ', + 'AerNumDensityStratParticulate ', + 'AerAqueousVolume ', + 'AerSurfAreaDust ', + 'AerSurfAreaHyg_?HYG? ', + 'AerSurfAreaStratLiquid ', + 'AerSurfAreaPolarStratCloud ', + 'Chem_AeroAreaMDUST1 ', + 'Chem_AeroAreaMDUST2 ', + 'Chem_AeroAreaMDUST3' ', + 'Chem_AeroAreaMDUST4 ', + 'Chem_AeroAreaMDUST5 ', + 'Chem_AeroAreaMDUST6 ', + 'Chem_AeroAreaMDUST7 ', + 'Chem_AeroAreaSULF ', + 'Chem_AeroAreaBC ', + 'Chem_AeroAreaOC ', + 'Chem_AeroAreaSSA ', + 'Chem_AeroAreaSSC ', + 'Chem_AeroAreaBGSULF ', + 'Chem_AeroAreaICEI ', + 'Chem_AeroRadiMDUST1 ', + 'Chem_AeroRadiMDUST2 ', + 'Chem_AeroRadiMDUST3 ', + 'Chem_AeroRadiMDUST4 ', + 'Chem_AeroRadiMDUST5 ', + 'Chem_AeroRadiMDUST6 ', + 'Chem_AeroRadiMDUST7 ', + 'Chem_AeroRadiSULF ', + 'Chem_AeroRadiBC ', + 'Chem_AeroRadiOC ', + 'Chem_AeroRadiSSA ', + 'Chem_AeroRadiSSC ', + 'Chem_AeroRadiBGSULF ', + 'Chem_AeroRadiICEI ', + 'Chem_WetAeroAreaMDUST1 ', + 'Chem_WetAeroAreaMDUST2 ', + 'Chem_WetAeroAreaMDUST3 ', + 'Chem_WetAeroAreaMDUST4 ', + 'Chem_WetAeroAreaMDUST5 ', + 'Chem_WetAeroAreaMDUST6 ', + 'Chem_WetAeroAreaMDUST7 ', + 'Chem_WetAeroAreaSULF ', + 'Chem_WetAeroAreaBC ', + 'Chem_WetAeroAreaOC ', + 'Chem_WetAeroAreaSSA ', + 'Chem_WetAeroAreaSSC ', + 'Chem_WetAeroAreaBGSULF ', + 'Chem_WetAeroAreaICEI ', + 'Chem_WetAeroRadiMDUST1 ', + 'Chem_WetAeroRadiMDUST2 ', + 'Chem_WetAeroRadiMDUST3 ', + 'Chem_WetAeroRadiMDUST4 ', + 'Chem_WetAeroRadiMDUST5 ', + 'Chem_WetAeroRadiMDUST6 ', + 'Chem_WetAeroRadiMDUST7 ', + 'Chem_WetAeroRadiSULF ', + 'Chem_WetAeroRadiBC ', + 'Chem_WetAeroRadiOC ', + 'Chem_WetAeroRadiSSA ', + 'Chem_WetAeroRadiSSC ', + 'Chem_WetAeroRadiBGSULF ', + 'Chem_WetAeroRadiICEI ', + 'Chem_StatePSC ', + 'Chem_KhetiSLAN2O5H2O ', + 'Chem_KhetiSLAN2O5HCl ', + 'Chem_KhetiSLAClNO3H2O ', + 'Chem_KhetiSLAClNO3HCl ', + 'Chem_KhetiSLAClNO3HBr ', + 'Chem_KhetiSLABrNO3H2O ', + 'Chem_KhetiSLABrNO3HCl ', + 'Chem_KhetiSLAHOClHCl ', + 'Chem_KhetiSLAHOClHBr ', + 'Chem_KhetiSLAHOBrHCl ', + 'Chem_KhetiSLAHOBrHBr ', +:: +#============================================================================== +# %%%%% THE CloudConvFlux COLLECTION %%%%% +# +# Cloud convective flux (default = advected species) +# +# Available for all simulations +#============================================================================== + CloudConvFlux.template: '%y4%m2%d2_%h2%n2z.nc4', + CloudConvFlux.frequency: 00000000 010000, + CloudConvFlux.duration: 00000000 120000, + CloudConvFlux.mode: 'instantaneous' + CloudConvFlux.fields: 'CloudConvFlux_?ADV? ', +:: +#============================================================================== +# %%%%% THE ConcAfterChem COLLECTION %%%%% +# +# Concentrations of OH, HO2, O1D, O3P immediately after exiting the KPP solver +# or OH after the CH4 specialty-simulation chemistry routine. +# +# OH: Available for all full-chemistry simulations and CH4 specialty sim +# HO2: Available for all full-chemistry simulations +# O1D, O3P: Availalbe for full-chemistry simulations using UCX mechanism +#============================================================================== + ConcAfterChem.template: '%y4%m2%d2_%h2%n2z.nc4', + ConcAfterChem.frequency: 00000000 010000, + ConcAfterChem.duration: 00000000 120000, + ConcAfterChem.mode: 'instantaneous' + ConcAfterChem.fields: 'OHconcAfterChem ', + 'HO2concAfterChem ', + 'O1DconcAfterChem ', + 'O3PconcAfterChem ', +:: +#============================================================================== +# %%%%% THE DryDep COLLECTION %%%%% +# +# Dry depositon fluxes and velocities (for all dry-depositing species) +# +# Available for all simuations that have dry-depositing species +#============================================================================== + DryDep.template: '%y4%m2%d2_%h2%n2z.nc4', + DryDep.frequency: 00000000 010000, + DryDep.duration: 00000000 120000, + DryDep.mode: 'instantaneous' + DryDep.fields: 'DryDepVel_?DRY? ', + 'DryDepMix_?DRY? ', + 'DryDepChm_?DRY? ', + 'DryDep_?DRY? ', +:: +#============================================================================== +# %%%%% THE JValues COLLECTION %%%%% +# +# Photolysis rates (from the FAST-JX photolysis module) +# +# Available for all full-chemistry simulations +#============================================================================== + JValues.template: '%y4%m2%d2_%h2%n2z.nc4', + JValues.frequency: 00000000 010000, + JValues.duration: 00000000 120000, + JValues.mode: 'instantaneous' + JValues.fields: 'Jval_?PHO? ', + 'JvalO3O1D ', + 'JvalO3O3P ', + 'UVFluxDiffuse_?UVFLX? ', + 'UVFluxDirect_?UVFLX? ', + 'UVFluxNet_?UVFLX? ', +:: +#============================================================================== +# %%%%% THE KppDiags COLLECTION %%%%% +# +# Diagnostics from the KPP solver. +# +# Available for full-chemistry simulations (all variations) +#============================================================================== + KppDiags.template: '%y4%m2%d2_%h2%n2z.nc4', + KppDiags.frequency: 00000000 010000, + KppDiags.duration: 00000000 010000, + KppDiags.mode: 'instantaneous' + KppDiags.fields: 'KppError ', +:: +#============================================================================== +# %%%%% THE LevelEdgeDiags COLLECTION %%%%% +# +# Diagnostics that are defined on grid box level edges +# +# Available for all simulations +#============================================================================== + LevelEdgeDiags.template: '%y4%m2%d2_%h2%n2z.nc4', + LevelEdgeDiags.frequency: 00000000 010000, + LevelEdgeDiags.duration: 00000000 120000, + LevelEdgeDiags.mode: 'instantaneous' + LevelEdgeDiags.fields: 'Met_CMFMC ', + 'Met_PEDGE ', + 'Met_PEDGEDRY ', + 'Met_PFICU ', + 'Met_PFILSAN ', + 'Met_PFLCU ', + 'Met_PFLLSAN ', +:: +#============================================================================== +# %%%%% THE ProdLoss COLLECTION %%%%% +# +# Chemical production and loss rates +# +# Available for full-chemistry, aerosol-only, tagO3, and tagCO simulations +#============================================================================== + ProdLoss.template: '%y4%m2%d2_%h2%n2z.nc4', + ProdLoss.frequency: 00000000 010000, + ProdLoss.duration: 00000000 120000, + ProdLoss.mode: 'instantaneous' + ProdLoss.fields: 'Prod_?PRD? ', + 'ProdBCPIfromBCPO ', + 'ProdOCPIfromOCPO ', + 'ProdSO4fromH2O2inCloud ', +# 'ProdSO4fromO2inCloudMetal ', + 'ProdSO4fromO3inCloud ', + 'ProdSO4fromO3inSeaSalt ', + 'ProdSO4fromHOBrInCloud ', + 'ProdSO4fromSRO3 ', + 'ProdSO4fromSRHObr ', + 'ProdSO4fromO3s ', + 'Loss_?LOS? ', + 'LossHNO3onSeaSalt ', +:: +#============================================================================== +# %%%%% THE StateChm COLLECTION %%%%% +# +# Fields of the State_Chm object (see also Aerosols collection) +# +# Available for full-chemistry and aerosols-only simulations +#============================================================================== + StateChm.template: '%y4%m2%d2_%h2%n2z.nc4', + StateChm.frequency: 00000000 010000, + StateChm.duration: 00000000 120000, + StateChm.mode: 'instantaneous' + StateChm.fields: 'Chem_IsorropAeropHAccum ', + 'Chem_IsorropAeropHCoarse ', + 'Chem_IsorropHplusAccum ', + 'Chem_IsorropHplusCoarse ', + 'Chem_IsorropAeroH2OAccum ', + 'Chem_IsorropAeroH2OCoarse ', + 'Chem_IsorropSulfate ', + 'Chem_IsorropNitrateAccum ', + 'Chem_IsorropNitrateCoarse ', + 'Chem_IsorropChlorideAccum ', + 'Chem_IsorropChlorideCoarse ', + 'Chem_IsorropBisulfate ', + 'Chem_pHCloud ', + 'Chem_isCloud ', + 'Chem_SSAlkAccumMode ', + 'Chem_SSAlkCoarseMode ', + 'Chem_HSO3AQ ', + 'Chem_SO3AQ ', + 'Chem_fupdateHOBr ', + 'Chem_GammaN2O5overall ', + 'Chem_GammaN2O5fine ', + 'Chem_YieldClNO2fine ', +:: +#============================================================================== +# %%%%% The StateMet COLLECTION %%%%% +# +# Fields of the State_Met object (also see the LevelEdgeDiags collection) +# +# Available for all simulations +#============================================================================== + StateMet.template: '%y4%m2%d2_%h2%n2z.nc4', + StateMet.frequency: 00000000 010000, + StateMet.duration: 00000000 120000, + StateMet.mode: 'instantaneous' + StateMet.fields: 'Met_AD ', +:: +#============================================================================== +# %%%%% THE WetLossConv COLLECTION %%%%% +# +# Loss of soluble species in convective updrafts +# +# Available for all simulations that have soluble species +#============================================================================== + WetLossConv.template: '%y4%m2%d2_%h2%n2z.nc4', + WetLossConv.frequency: 00000000 010000, + WetLossConv.duration: 00000000 120000, + WetLossConv.mode: 'instantaneous' + WetLossConv.fields: 'WetLossConv_?WET? ', + 'WetLossConvFrac_?WET? ', +:: +#============================================================================== +# %%%%% THE WetLossLS COLLECTION %%%%% +# +# Loss of soluble species in large-scale wetdep (i.e. rainout and washout) +# +# Available for all simulations that have soluble species +#============================================================================== +# Loss due to rainout and washout (per deposited species) + WetLossLS.template: '%y4%m2%d2_%h2%n2z.nc4', + WetLossLS.format: 'CFIO', + WetLossLS.frequency: 00000000 010000, + WetLossLS.duration: 00000000 120000, + WetLossLS.mode: 'instantaneous' + WetLossLS.fields: 'WetLossLS_?WET? ', +:: \ No newline at end of file diff --git a/run/WRF/fullchem/geoschem_config.yml b/run/WRF/fullchem/geoschem_config.yml new file mode 100644 index 000000000..50d7d7520 --- /dev/null +++ b/run/WRF/fullchem/geoschem_config.yml @@ -0,0 +1,376 @@ +--- +### geoschem_config.yml: GEOS-Chem Runtime configuration options. +### Customized for simulations using the KPP "fullchem" mechanism. +### +### NOTE: Add quotes around nitrogen oxide ('NO'), because YAML +### parsers will confuse this with a negative "no" value. +### +### Customized for WRF-GC, Haipeng Lin, August 2022 +### Note: Most of configuration options here do not need to be changed +### when running in the WRF-GC environment! + +#============================================================================ +# Simulation settings +#============================================================================ +simulation: + name: fullchem + start_date: [19970215, 031100] + end_date: [20180415, 040000] + root_data_dir: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData + chem_inputs_dir: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData/CHEM_INPUTS/ + met_field: GEOSFP + species_database_file: ./species_database.yml + species_metadata_output_file: ./geoschem_species_metadata.yml + debug_printout: false + use_gcclassic_timers: false + +#============================================================================ +# Settings for GEOS-Chem operations +#============================================================================ +operations: + + chemistry: + activate: true + linear_chemistry_aloft: + activate: true + use_linoz_for_O3: true + active_strat_H2O: + activate: true + use_static_bnd_cond: true + gamma_HO2: 0.2 + autoreduce_solver: + activate: false + use_target_threshold: + activate: true + oh_tuning_factor: 0.00005 + no2_tuning_factor: 0.0001 + use_absolute_threshold: + scale_by_pressure: true + absolute_threshold: 100.0 + keep_halogens_active: false + append_in_internal_timestep: false + + convection: + activate: true + + dry_deposition: + activate: true + CO2_effect: + activate: false + CO2_level: 600.0 + reference_CO2_level: 380.0 + diag_alt_above_sfc_in_m: 10 + + pbl_mixing: + activate: true + use_non_local_pbl: true + + photolysis: + input_dir: /n/holyscratch01/external_repos/GEOS-CHEM/gcgrid/data/ExtData/CHEM_INPUTS/FAST_JX/v2021-10/ + overhead_O3: + use_online_O3_from_model: true + use_column_O3_from_met: true + use_TOMS_SBUV_O3: false + photolyze_nitrate_aerosol: + activate: false + NITs_Jscale_JHNO3: 0.0 + NIT_Jscale_JHNO2: 0.0 + percent_channel_A_HONO: 66.667 + percent_channel_B_NO2: 33.333 + + rrtmg_rad_transfer_model: + activate: false + aod_wavelengths_in_nm: + - 550 + longwave_fluxes: false + shortwave_fluxes: false + clear_sky_flux: false + all_sky_flux: false + + transport: + activate: true + transported_species: + - ACET + - ACTA + - AERI + - ALD2 + - ALK4 + - AONITA + - AROMP4 + - AROMP5 + - ATOOH + - BALD + - BCPI + - BCPO + - BENZ + - BENZP + - Br + - Br2 + - BrCl + - BrNO2 + - BrNO3 + - BrO + - BrSALA + - BrSALC + - BZCO3H + - BZPAN + - C2H2 + - C2H4 + - C2H6 + - C3H8 + - CCl4 + - CFC11 + - CFC113 + - CFC114 + - CFC115 + - CFC12 + - CH2Br2 + - CH2Cl2 + - CH2I2 + - CH2IBr + - CH2ICl + - CH2O + - CH3Br + - CH3CCl3 + - CH3Cl + - CH3I + - CH4 + - CHBr3 + - CHCl3 + - Cl + - Cl2 + - Cl2O2 + - ClNO2 + - ClNO3 + - ClO + - ClOO + - CLOCK + - CO + - CSL + - DMS + - DST1 + - DST2 + - DST3 + - DST4 + - EOH + - ETHLN + - ETHN + - ETHP + - ETNO3 + - ETP + - GLYC + - GLYX + - H1211 + - H1301 + - H2402 + - H2O + - H2O2 + - HAC + - HBr + - HC5A + - HCFC123 + - HCFC141b + - HCFC142b + - HCFC22 + - HCl + - HCOOH + - HI + - HMHP + - HMML + - HMS + - HNO2 + - HNO3 + - HNO4 + - HOBr + - HOCl + - HOI + - HONIT + - HPALD1 + - HPALD2 + - HPALD3 + - HPALD4 + - HPETHNL + - I + - I2 + - I2O2 + - I2O3 + - I2O4 + - IBr + - ICHE + - ICl + - ICN + - ICPDH + - IDC + - IDCHP + - IDHDP + - IDHPE + - IDN + - IEPOXA + - IEPOXB + - IEPOXD + - IHN1 + - IHN2 + - IHN3 + - IHN4 + - INDIOL + - INO + - INPB + - INPD + - IO + - IONITA + - IONO + - IONO2 + - IPRNO3 + - ISALA + - ISALC + - ISOP + - ITCN + - ITHN + - LIMO + - LVOC + - LVOCOA + - MACR + - MACR1OOH + - MAP + - MCRDH + - MCRENOL + - MCRHN + - MCRHNB + - MCRHP + - MCT + - MEK + - MENO3 + - MGLY + - MOH + - MONITA + - MONITS + - MONITU + - MP + - MPAN + - MPN + - MSA + - MTPA + - MTPO + - MVK + - MVKDH + - MVKHC + - MVKHCB + - MVKHP + - MVKN + - MVKPC + - N2O + - N2O5 + - NH3 + - NH4 + - NIT + - NITs + - 'NO' + - NO2 + - NO3 + - NPHEN + - NPRNO3 + - O3 + - OClO + - OCPI + - OCPO + - OCS + - OIO + - PAN + - pFe + - PHEN + - PIP + - PP + - PPN + - PROPNN + - PRPE + - PRPN + - PYAC + - R4N2 + - R4P + - RA3P + - RB3P + - RCHO + - RIPA + - RIPB + - RIPC + - RIPD + - RP + - SALA + - SALAAL + - SALACL + - SALC + - SALCAL + - SALCCL + - SO2 + - SO4 + - SO4s + - SOAGX + - SOAIE + - SOAS + - SOAP + - TOLU + - XYLE + + wet_deposition: + activate: true + +#============================================================================ +# Settings for GEOS-Chem aerosols +#============================================================================ +aerosols: + + carbon: + activate: true + brown_carbon: false + enhance_black_carbon_absorption: + activate: true + hydrophilic: 1.5 + hydrophobic: 1.0 + + complex_SOA: + activate: false + semivolatile_POA: false + + dust: + activate: true + acid_uptake_on_dust: false + + sea_salt: + activate: true + SALA_radius_bin_in_um: [0.01, 0.5] + SALC_radius_bin_in_um: [0.5, 8.0] + marine_organic_aerosols: false + + stratosphere: + settle_strat_aerosol: true + polar_strat_clouds: + activate: true + het_chem: true + allow_homogeneous_NAT: false + NAT_supercooling_req_in_K: 3.0 + supersat_factor_req_for_ice_nucl: 1.2 + calc_strat_aod: true + + sulfate: + activate: true + metal_cat_SO2_oxidation: true + +#============================================================================ +# Settings for diagnostics (other than HISTORY and HEMCO) +#============================================================================ +extra_diagnostics: + + obspack: + activate: false + quiet_logfile_output: false + input_file: ./obspack_co2_1_OCO2MIP_2018-11-28.YYYYMMDD.nc + output_file: ./OutputDir/GEOSChem.ObsPack.YYYYMMDD_hhmmz.nc4 + output_species: + - CO + - 'NO' + - O3 + + planeflight: + activate: false + flight_track_file: Planeflight.dat.YYYYMMDD + output_file: plane.log.YYYYMMDD diff --git a/run/WRF/species_database.yml b/run/WRF/species_database.yml new file mode 120000 index 000000000..1271f53de --- /dev/null +++ b/run/WRF/species_database.yml @@ -0,0 +1 @@ +../shared/species_database.yml \ No newline at end of file diff --git a/run/shared/cleanRunDir.sh b/run/shared/cleanRunDir.sh index e33dcc035..2c2ca77e0 100755 --- a/run/shared/cleanRunDir.sh +++ b/run/shared/cleanRunDir.sh @@ -10,6 +10,7 @@ rm -fv gchp.log rm -fv gchp.*.log rm -fv HEMCO.log rm -fv PET*.log +rm -fv ESMF_LogFile rm -fv multirun.log rm -fv warnings_and_errors.log rm -fv GC*.log @@ -22,9 +23,13 @@ rm -fv core.* rm -fv PET*.ESMF_LogFile rm -fv allPEs.log -# Clean data too. Prompt user to confirm they want to do this. +# Clean data too. If an argument is passed, then prompt user to confirm # perhaps asking if they want to archive before deletion. -rm -Iv ./OutputDir/*.nc* +if [[ "x${1}" == "x" ]]; then + rm -Iv ./OutputDir/*.nc* # Get confirmation from user +else + rm -fv ./OutputDir/*.nc* # Skip confirmation from user +fi # Give instruction to reset start date if using GCHP echo "Reset simulation start date in cap_restart if using GCHP" diff --git a/run/shared/download_data.gcap2.40L.yml b/run/shared/download_data.gcap2.40L.yml index de1f03e16..e271c4135 100644 --- a/run/shared/download_data.gcap2.40L.yml +++ b/run/shared/download_data.gcap2.40L.yml @@ -11,12 +11,6 @@ mirrors: remote: s3://gcgrid command: 'aws s3 cp --request-payer=requester ' quote: "" - computecanada: - short_name: cc - s3_bucket: False - remote: http://geoschemdata.computecanada.ca/ExtData - command: 'wget -r -np -nH -R "*.html" -N -P @PATH@ ' - quote: '"' rochester: short_name: ur s3_bucket: False diff --git a/run/shared/download_data.py b/run/shared/download_data.py index 445c15cb5..5c873e02e 100755 --- a/run/shared/download_data.py +++ b/run/shared/download_data.py @@ -10,9 +10,8 @@ (1) Creates a list of unique files that are required for the GEOS-Chem or HEMCO-standalone simulation; - (2) Creates a bash script to download missing files from either - the ComputeCanada server (default) or the AWS s3://gcgrid - bucket; + (2) Creates a bash script to download missing files from the AWS + s3://gcgrid bucket or from a specified server; (3) Executes the bash script to download the necessary data; @@ -21,11 +20,8 @@ Remarks: -------- - (1) This script only requires the "os", "sys", and "subprocess" - packages, which are core Python. Therefore, this script can - be shipped with GEOS-Chem run directories. It only requires - Python 3 and not a full Anaconda/Miniconda environment (but - you can run in an Anaconda environment if you have one). + (1) This script only requires the "os", "sys", "subprocess", and + PyYaml packages. (2) Jiawei Zhuang found that it is much faster to issue aws s3 cp commands from a bash script than a Python script. Therefore, @@ -48,7 +44,39 @@ DATA_DOWNLOAD_SCRIPT = "./auto_generated_download_script.sh" -def extract_pathnames_from_log(args): +def read_config_file( + config_file, + to_str=False +): + """ + Reads configuration information from a YAML file. + + Args: + ----- + config_file : str + The configuration file in YAML format + to_str : bool + Set this to True if you wish to return the data in the YAML + file as strings, or False otherwise. + + Returns: + -------- + config : dict + Dictionary with the contents of the YAML file + """ + try: + with open(config_file, encoding="UTF-8") as stream: + if to_str: + return yaml.load(stream, Loader=yaml.loader.BaseLoader) + return yaml.load(stream, Loader=yaml.loader.SafeLoader) + except FileNotFoundError as err: + msg = f"Error reading configuration in {config_file}: {err}" + raise FileNotFoundError(msg) from err + + +def extract_pathnames_from_log( + args +): """ Returns a list of pathnames from a GEOS-Chem log file. @@ -79,78 +107,76 @@ def extract_pathnames_from_log(args): dryrun_log = args["dryrun_log"] # Open file (or die with error) - try: - f = open(dryrun_log, "r") - except FileNotFoundError: - msg = "Could not find file " + dryrun_log - raise FileNotFoundError(msg) - - # Read data from the file line by line. - # Add file paths to the data_list set. - line = f.readline() - while line: - - # Convert line to uppercase for string match - upcaseline = line.upper() - - # Search for data paths that have been found - if (": OPENING" in upcaseline) or (": READING" in upcaseline): - data_found.add(line.split()[-1]) - - # Search for data paths that are missing - elif "FILE NOT FOUND" in upcaseline: - data_missing.add(line.split()[-1]) - - # Search for certain dry-run comment strings - # (and make sure to prevent duplicates) - elif ("!!! STA" in upcaseline) or ("!!! END" in upcaseline) or \ - ("!!! SIM" in upcaseline) or ("!!! MET" in upcaseline) or \ - ("!!! GRI" in upcaseline): - if line.rstrip() not in comments: - comments.append(line.rstrip()) - - else: - pass - - # Read next line - line = f.readline() - - # Add another line to the comment list - comments.append("!"*79) - - # Convert sets to lists and sort in alphabetical order - found = sorted(list(data_found)) - missing = sorted(list(data_missing)) - - # Find the local data directory prefix (path to ExtData) - local_prefix = "" - for path in found + missing: - if "ExtData" in path: - index = path.find("ExtData") - local_prefix = path[:index] - break + with open(dryrun_log, "r", encoding="UTF-8") as ifile: - # Exit if the local path does not contain ExtData - if len(local_prefix) == 0: - msg = "Could not locate the ExtData folder in your local disk space!" - raise ValueError(msg) + # Read data from the file line by line. + # Add file paths to the data_list set. + line = ifile.readline() + while line: - # Close file and return - # The "sorted" command will return unique values - f.close() + # Convert line to uppercase for string match + upcaseline = line.upper() - paths = { - "comments": comments, - "found": found, - "missing": missing, - "local_prefix": local_prefix - } - return paths + # Search for data paths that have been found + if (": OPENING" in upcaseline) or (": READING" in upcaseline): + data_found.add(line.split()[-1]) + + # Search for data paths that are missing + elif "FILE NOT FOUND" in upcaseline: + data_missing.add(line.split()[-1]) + + # Search for certain dry-run comment strings + # (and make sure to prevent duplicates) + elif ("!!! STA" in upcaseline) or ("!!! END" in upcaseline) or \ + ("!!! SIM" in upcaseline) or ("!!! MET" in upcaseline) or \ + ("!!! GRI" in upcaseline): + if line.rstrip() not in comments: + comments.append(line.rstrip()) + + else: + pass + + # Read next line + line = ifile.readline() + + # Add another line to the comment list + comments.append("!"*79) + + # Convert sets to lists and sort in alphabetical order + found = sorted(list(data_found)) + missing = sorted(list(data_missing)) + + # Find the local data directory prefix (path to ExtData) + local_prefix = "" + for path in found + missing: + if "ExtData" in path: + index = path.find("ExtData") + local_prefix = path[:index] + break + + # Exit if the local path does not contain ExtData + if len(local_prefix) == 0: + msg = \ + "Could not locate the ExtData folder in your local disk space!" + raise ValueError(msg) + + # Close file and return + # The "sorted" command will return unique values + ifile.close() + + paths = { + "comments": comments, + "found": found, + "missing": missing, + "local_prefix": local_prefix + } + return paths def get_run_info(): """ - Searches through the geoschem_config.yml file for GEOS-Chem run parameters. + Searches through the geoschem_config.yml file for GEOS-Chem + simulation parameters. Returns: ------- @@ -158,58 +184,173 @@ def get_run_info(): Contains the GEOS-Chem run parameters: start_date, start_time, end_date, end_time, met, grid, and sim. """ + + # Read GEOS-Chem configuration file + config = read_config_file( + GEOSCHEM_INPUT_FILE, + to_str=True + ) + + # Create dictionary with GEOS-Chem simulation parameters + # NOTE: Numbers are returned as strings, and need to be converted run_info = {} run_info["nest"] = "" run_info["tomas15"] = False run_info["tomas40"] = False - - try: - with open(GEOSCHEM_INPUT_FILE, "r") as f: - for line in f: - if "start_date" in line: - substr = line.split(":")[1] - run_info["start_date"] = (substr.split(" ")[1]).strip() - run_info["start_time"] = (substr.split(" ")[2]).strip() - elif "end_date" in line: - substr = line.split(":")[1] - run_info["end_date"] = (substr.split(" ")[1]).strip() - run_info["end_time"] = (substr.split(" ")[2]).strip() - elif "met_field" in line: - run_info["met"] = (line.split(":")[1]).strip() - elif "name" in line: - run_info["sim"] = (line.split(":")[1]).strip() - elif "resolution" in line: - grid = (line.split(":")[1]).strip() - - # Adjust grid string to match file names - if "4.0x5.0" in grid: - run_info["grid"] = "4x5" - elif "2.0x2.5" in grid: - run_info["grid"] = "2x25" - elif "0.5x0.625" in grid: - run_info["grid"] = "05x0625" - elif "0.25x0.3125" in grid: - run_info["grid"] = "025x03125" - elif "Longitude" in line: - if "-130.0" in line or "-140.0" in line: - run_info["nest"] = "na" - break - elif "60.0" in line or "70.0" in line: - run_info["nest"] = "as" - elif "NK15" in line: - run_info["tomas15"] = True - elif "NK40" in line: - run_info["tomas15"] = False - run_info["tomas40"] = True - f.close() - except FileNotFoundError: - msg = "Could not open " + GEOSCHEM_INPUT_FILE - raise FileNotFoundError(msg) + run_info["start_date"] = int( + config["simulation"]["start_date"][0] + ) + run_info["start_time"] = int( + config["simulation"]["start_date"][1] + ) + run_info["end_date"] = int( + config["simulation"]["end_date"][0] + ) + run_info["end_time"] = int( + config["simulation"]["end_date"][1] + ) + run_info["met_field"] = config["simulation"]["met_field"] + run_info["sim"] = config["simulation"]["name"] + run_info["resolution"] = config["grid"]["resolution"] + run_info["grid"] = get_grid_suffix( + run_info["resolution"] + ) + run_info["nest"] = get_nest_suffix( + config["grid"]["longitude"]["range"] + ) + run_info["tomas15"] = \ + "NK15" in config["operations"]["transport"]["transported_species"] + run_info["tomas40"] = \ + "NK40" in config["operations"]["transport"]["transported_species"] return run_info -def expand_restart_file_names(paths, args, run_info): +def get_grid_suffix( + resolution +): + """ + Given a model resolution, returns the grid filename suffix. + + Args: + ----- + resolution : str + The grid resolution (read from geoschem_config.yml) + + Returns: + -------- + suffix : str + The corresponding filename suffix + """ + if "4.0x5.0" in resolution: + return "4x5" + if "2.0x2.5" in resolution: + return "2x25" + if "0.5x0.625" in resolution: + return "05x0625" + return "025x03125" + + +def get_nest_suffix( + longitude +): + """ + Given a model resolution, returns the nested-grid suffix. + + Args: + ----- + resolution : str + The grid resolution (read from geoschem_config.yml) + + Returns: + -------- + suffix : str + The corresponding nested-grid suffix + """ + if "-130" in longitude or "-140" in longitude: + return "na" + if "60" in longitude or "70" in longitude: + return "as" + return "" + + +def get_remote_restart_filename( + local_prefix, + run_info, + rst_info +): + """ + Returns the remote restart file name for a given + GEOS-Chem Classic simulation type. + + Args: + ----- + local_prefix : str + The root data folder. ExtData is a subfolder of this folder. + run_info : dict + Information read from geoschem_config.yml + rst_info : dict + Restart file paths (local and remote), as read from the + download_data.yml configuration file. + + Returns: + -------- + remote_rst : str + Path to the remote restart file + """ + + # Simulation type + simulation = run_info["sim"].lower() + + # Remote restart file directory + root = os.path.join(local_prefix, "ExtData", rst_info["root"]) + + # Special handling for fullchem + if "fullchem" in simulation: + if run_info["tomas15"] is True: + return os.path.join(root, rst_info["tomas15"]["remote"]) + if run_info["tomas40"] is True: + return os.path.join(root, rst_info["tomas40"]["remote"]) + return os.path.join(root, rst_info["fullchem"]["remote"]) + + # Special handling for mercury + if "mercury" in simulation or "hg" in simulation: + return os.path.join(root, rst_info["mercury"]["remote"]) + + # All other simulations use the lowercase simulation name + return os.path.join(root, rst_info[simulation]["remote"]) + + +def replace_entry_in_list( + the_list, + old_entry, + new_entry +): + """ + Replaces a string entry in a list with a new entry. + + Args: + ----- + the_list : list of str + The list + old_entry : (str + Entry to replace + new_entry : str + Replacement text + + Returns: + -------- + the_list : list of str + The modified list + """ + return list(map(lambda x: x.replace(old_entry, new_entry), the_list)) + + +def expand_restart_file_names( + paths, + args, + run_info +): """ Tests if the GEOS-Chem restart file is a symbolic link to ExtData. If so, will append the link to the remote file @@ -224,70 +365,51 @@ def expand_restart_file_names(paths, args, run_info): run_info : dict Contains output from function get_run_info. """ - remote_rst = "" - rst = args["config"]["restarts"] - - # ------------------------------------------------------------------ - # Get the full name of the restart file in ExtData - # ------------------------------------------------------------------ - for path in paths["found"] + paths["missing"]: - if "ExtData" in path: - index = path.find("ExtData")+8 - root = path[0:index] + rst["root"] - - if "aerosol" in run_info["sim"]: - remote_rst = root + rst["aerosol"]["remote"] - - elif "fullchem" in run_info["sim"]: - if run_info["tomas15"] is True: - remote_rst = root + rst["tomas15"]["remote"] - elif run_info["tomas40"] is True: - remote_rst = root + rst["tomas40"]["remote"] - else: - remote_rst = root + rst["fullchem"]["remote"] - - elif "mercury" in run_info["sim"]: - remote_rst = root + rst["mercury"]["remote"] - - elif "TransportTracers" in run_info["sim"]: - remote_rst = root + rst["transporttracers"]["remote"] - else: - remote_rst = root + rst["other"]["remote"] - - # Append a suffix string (e.g. for nested grids) if necessary - if run_info["nest"] == "": - suffix = "{}.nc".format(run_info["sim"]) - else: - suffix = "{}_{}.nc".format(run_info["sim"], run_info["nest"]) - remote_rst = remote_rst.replace("@SUFFIX@", suffix) - - # ------------------------------------------------------------------ - # Search for the restart file name in the found files - # ------------------------------------------------------------------ - new_list = [] + # Get the name of the remote restart file for this simulation + remote_rst = get_remote_restart_filename( + paths["local_prefix"], + run_info, + args["config"]["restarts"] + ) + + # First, look for the restart file name in the found files + do_exit = False for path in paths["found"]: if "GEOSChem.Restart" in path: - path = path + " --> " + remote_rst - - new_list.append(path) - paths["found"] = sorted(new_list) + new_path = path + " --> " + remote_rst + do_exit = True + paths["found"] = replace_entry_in_list( + paths["found"], + path, + new_path + ) + break + paths["found"] = sorted(paths["found"]) + if do_exit: + return paths - # ------------------------------------------------------------------ - # Search for the restart file name in the missing files - # ------------------------------------------------------------------ - new_list = [] + # Then, look for the restart file name in the missing files for path in paths["missing"]: if "GEOSChem.Restart" in path: - path = path + " --> " + remote_rst - new_list.append(path) - paths["missing"] = sorted(new_list) + new_path = path + " --> " + remote_rst + do_exit = True + paths["missing"] = replace_entry_in_list( + paths["missing"], + path, + new_path + ) + break + paths["missing"] = sorted(paths["missing"]) # Return the updated data paths return paths -def write_unique_paths(paths, unique_log): +def write_unique_paths( + paths, + unique_log +): """ Writes unique data paths from dry-run output to a file. @@ -303,24 +425,27 @@ def write_unique_paths(paths, unique_log): combined_paths.sort() try: - with open(unique_log, "w") as f: + with open(unique_log, "w", encoding="UTF-8") as ofile: for comment in paths["comments"]: - print(comment, file=f) + print(comment, file=ofile) for path in combined_paths: - print(path, file=f) + print(path, file=ofile) for comment in paths["comments"]: - print(comment, file=f) - f.close() - print("Log with unique file paths written to: {}".format(unique_log)) - except FileNotFoundError: - raise FileNotFoundError("Could not write {}".format(unique_log)) + print(comment, file=ofile) + ofile.close() + print(f"Log with unique file paths written to: {unique_log}") + except RuntimeError as exc: + raise RuntimeError(f"Could not write {unique_log}") from exc -def create_download_script(paths, args): +def create_download_script( + paths, + args +): """ Creates a data download script to obtain missing files - from the ComputeCanada data archive (default), or the - GEOS-Chem s3://gcgrid bucket on the AWS cloud, + from the s3://gcgrid bucket on the AWS cloud or from a + specified server. Args: ----- @@ -341,11 +466,11 @@ def create_download_script(paths, args): cmd_prefix = cmd_prefix.replace("@PATH@", paths["local_prefix"]) # Create the data download script - with open(DATA_DOWNLOAD_SCRIPT, "w") as f: + with open(DATA_DOWNLOAD_SCRIPT, "w", encoding="UTF-8") as ofile: # Write shebang line to script - print("#!/bin/bash\n", file=f) - print("# This script was generated by download_data.py\n", file=f) + print("#!/bin/bash\n", file=ofile) + print("# This script was generated by download_data.py\n", file=ofile) # Write download commands for only the missing data files for path in paths["missing"]: @@ -359,7 +484,6 @@ def create_download_script(paths, args): # First copy the restart file to local ExtData remote_rst = (path.split("-->")[1]).strip() local_rst = (path.split("-->")[0]).strip() - index1 = remote_rst.find("initial") index2 = remote_rst.find("ExtData") + 7 prefix = local_rst extdata = remote_rst[:index2] @@ -367,8 +491,8 @@ def create_download_script(paths, args): cmd = cmd_prefix + quote + remote_rst + quote if is_s3_bucket: cmd += " " + prefix - print(cmd, file=f) - print(file=f) + print(cmd, file=ofile) + print(file=ofile) # If the file does not exist in the run directory, # then copy it from the restart folder. @@ -378,8 +502,8 @@ def create_download_script(paths, args): index3 = remote_rst.find("GEOSCHEM_RESTARTS") rst = os.path.join(extdata, remote_rst[index3:]) cmd = "cp -f " + rst + " " + local_rst - print(cmd, file=f) - print(file=f) + print(cmd, file=ofile) + print(file=ofile) elif "gmi.clim.IPMN.geos5.2x25.nc" in path: @@ -395,12 +519,12 @@ def create_download_script(paths, args): cmd = cmd_prefix + quote + remote_path + quote if is_s3_bucket: cmd += " " + local_dir + "/" - print(cmd, file=f) + print(cmd, file=ofile) # Rename it to IPMN cmd = "mv " + local_dir + "/gmi.clim.PMN.geos5.2x25.nc " + \ local_dir + "/gmi.clim.IPMN.geos5.2x25.nc" - print(cmd, file=f) + print(cmd, file=ofile) elif "gmi.clim.NPMN.geos5.2x25.nc" in path: @@ -416,13 +540,13 @@ def create_download_script(paths, args): cmd = cmd_prefix + quote + remote_path + quote if is_s3_bucket: cmd += " " + local_dir + "/" - print(cmd, file=f) + print(cmd, file=ofile) # Rename it to NPMN cmd = "mv " + local_dir + "/gmi.clim.PMN.geos5.2x25.nc " + \ local_dir + "/gmi.clim.NPMN.geos5.2x25.nc" - print(cmd, file=f) - print(file=f) + print(cmd, file=ofile) + print(file=ofile) elif "gmi.clim.RIPA.geos5.2x25.nc" in path: @@ -438,13 +562,13 @@ def create_download_script(paths, args): cmd = cmd_prefix + quote + remote_path + quote if is_s3_bucket: cmd += " " + local_dir + "/" - print(cmd, file=f) + print(cmd, file=ofile) # Rename it to NPMN cmd = "mv " + local_dir + "/gmi.clim.RIP.geos5.2x25.nc " + \ local_dir + "/gmi.clim.RIPA.geos5.2x25.nc" - print(cmd, file=f) - print(file=f) + print(cmd, file=ofile) + print(file=ofile) elif "gmi.clim.RIPB.geos5.2x25.nc" in path: @@ -460,13 +584,13 @@ def create_download_script(paths, args): cmd = cmd_prefix + quote + remote_path + quote if is_s3_bucket: cmd += " " + local_dir + "/" - print(cmd, file=f) + print(cmd, file=ofile) # Rename it to RIPB cmd = "mv " + local_dir + "/gmi.clim.RIP.geos5.2x25.nc " + \ local_dir + "/gmi.clim.RIPB.geos5.2x25.nc" - print(cmd, file=f) - print(file=f) + print(cmd, file=ofile) + print(file=ofile) elif "gmi.clim.RIPD.geos5.2x25.nc" in path: @@ -482,13 +606,13 @@ def create_download_script(paths, args): cmd = cmd_prefix + quote + remote_path + quote if is_s3_bucket: cmd += " " + local_dir + "/" - print(cmd, file=f) + print(cmd, file=ofile) # Rename it to RIPD cmd = "mv " + local_dir + "/gmi.clim.RIP.geos5.2x25.nc " + \ local_dir + "/gmi.clim.RIPD.geos5.2x25.nc" - print(cmd, file=f) - print(file=f) + print(cmd, file=ofile) + print(file=ofile) elif "ExtData" in path: @@ -501,26 +625,27 @@ def create_download_script(paths, args): cmd = cmd_prefix + quote + remote_path + quote if is_s3_bucket: cmd += " " + local_dir + "/" - print(cmd, file=f) - print(file=f) + print(cmd, file=ofile) + print(file=ofile) # Kludge: Create a ExtData/CHEM_INPUTS folder if it # does not exist. This will prevent abnormal exits. - chem_inputs_dir = paths["local_prefix"] + 'ExtData/CHEM_INPUTS' - cmd = "if [[ ! -d {} ]]; then mkdir {}; fi".format( - chem_inputs_dir, chem_inputs_dir) - print(cmd, file=f) - print(file=f) + chem_dir = paths["local_prefix"] + 'ExtData/CHEM_INPUTS' + cmd = f"if [[ ! -d {chem_dir} ]]; then mkdir {chem_dir}; fi" + print(cmd, file=ofile) + print(file=ofile) # Close file and make it executable - f.close() + ofile.close() os.chmod(DATA_DOWNLOAD_SCRIPT, 0o755) -def download_the_data(args): +def download_the_data( + args +): """ - Downloads GEOS-Chem data files from the ComputeCanada server - or the AWS s3://gcgrid bucket. + Downloads GEOS-Chem data files from the AWS s3://gcgrid bucket + or from a specified server. Args: ----- @@ -539,18 +664,18 @@ def download_the_data(args): # Write a list of unique file paths write_unique_paths(paths, args["dryrun_log"] + ".unique") - # Exit without downloading if skip-download lag was specified + # Exit without downloading if skip-download flag was specified if args["skip_download"]: return # Print a message if len(args["mirror"]) > 0: - print("Downloading data from " + args["mirror"]) + print(f"Downloading data from {args['mirror']}") # Create script to download missing files from AWS S3 create_download_script(paths, args) - #### DEBUG: Uncomment this if you want to see the download script + #### DEBUG: Uncomment this if you wish to see the download script #if args["skip_download"]: # return @@ -561,8 +686,8 @@ def download_the_data(args): # Raise an exception if the data was not successfully downloaded if status != 0: - err_msg = "Error downloading data from " + args["mirror"] - raise Exception(err_msg) + msg = f"Error downloading data from {args['mirror']}" + raise RuntimeError(msg) def parse_args(): @@ -587,17 +712,13 @@ def parse_args(): skip_found = False # Read the YAML configuration file - try: - config = yaml.load(open("download_data.yml"), Loader=yaml.FullLoader) - except FileNotFoundError: - msg = "Could not find configuration file 'download_data.yml'!" - raise FileNotFoundError(msg) + config = read_config_file("download_data.yml") # Get a list of mirror names + short names mirror_list = list(config["mirrors"].keys()) short_name_list = [] - for m in mirror_list: - short_name_list.append(config["mirrors"][m]["short_name"]) + for mir in mirror_list: + short_name_list.append(config["mirrors"][mir]["short_name"]) # Parse command-line arguments (argument 0 is the program name) for i in range(1, len(sys.argv)): @@ -610,9 +731,9 @@ def parse_args(): continue if not mirror_found: - for m in mirror_list: - mirror = m.lower() - short_name = config["mirrors"][m]["short_name"].lower() + for mir in mirror_list: + mirror = mir.lower() + short_name = config["mirrors"][mir]["short_name"].lower() if arg in mirror or arg in short_name: mirror_remote = mirror mirror_found = True diff --git a/run/shared/download_data.yml b/run/shared/download_data.yml index e5422f82e..add6476a0 100644 --- a/run/shared/download_data.yml +++ b/run/shared/download_data.yml @@ -9,14 +9,8 @@ mirrors: short_name: aws s3_bucket: True remote: s3://gcgrid - command: 'aws s3 cp --request-payer=requester ' + command: 'aws s3 cp ' quote: "" - computecanada: - short_name: cc - s3_bucket: False - remote: http://geoschemdata.computecanada.ca/ExtData - command: 'wget -r -np -nH -R "*.html" -N -P @PATH@ ' - quote: '"' rochester: short_name: ur s3_bucket: False @@ -31,25 +25,44 @@ mirrors: quote: '"' restarts: - root: GEOSCHEM_RESTARTS/ + root: GEOSCHEM_RESTARTS aerosol: - remote: v2021-09/GEOSChem.Restart.fullchem.20190101_0000z.nc4 - local: GEOSChem.Restart.20190101_0000z.nc4 + remote: GC_14.3.0/GEOSChem.Restart.fullchem.20190701_0000z.nc4 + local: GEOSChem.Restart.20190701_0000z.nc4 + carbon: + remote: v2023-01/GEOSChem.Restart.carbon.20190101_0000z.nc4 + local: GEOSChem.Restart.20190101_0000z.nc4 + ch4: + remote: v2020-02/GEOSChem.Restart.CH4.20190101_0000z.nc4 + local: GEOSChem.Restart.20190101_0000z.nc4 + co2: + remote: v2020-02/GEOSChem.Restart.CO2.20190701_0000z.nc4 + local: GEOSChem.Restart.20190701_0000z.nc4 fullchem: - remote: GC_14.0.0/GEOSChem.Restart.fullchem.20190701_0000z.nc4 - local: GEOSChem.Restart.20190701_0000z.nc4 + remote: GC_14.3.0/GEOSChem.Restart.fullchem.20190701_0000z.nc4 + local: GEOSChem.Restart.20190701_0000z.nc4 + metals: + remote: v2021-06/GEOSChem.Restart.metals.20110101_0000z.nc4 + local: GEOSChem.Restart.20110101_0000z.nc4 mercury: - remote: v2021-12/GEOSChem.Restart.Hg.20190101_0000z.nc4 - local: GEOSChem.Restart.20190101_0000z.nc4 + remote: v2023-12/GEOSChem.Restart.Hg.20190101_0000z.nc4 + local: GEOSChem.Restart.20190101_0000z.nc4 + pops: + remote: v2020-02/GEOSChem.Restart.POPs_BaP.20190701_0000z.nc4 + local: GEOSChem.Restart.20190701_0000z.nc4 + tagco: + remote: v2020-02/GEOSChem.Restart.tagCO.20190701_0000z.nc4 + local: GEOSChem.Restart.20190701_0000z.nc4 + tago3: + remote: GC_14.3.0/GEOSChem.Restart.fullchem.20190701_0000z.nc4 + local: GEOSChem.Restart.20190701_0000z.nc4 tomas15: remote: v2021-12/GEOSChem.Restart.TOMAS15.20190701_0000z.nc4 - local: GEOSChem.Restart.20190701_0000z.nc4 + local: GEOSChem.Restart.20190701_0000z.nc4 tomas40: remote: v2021-12/GEOSChem.Restart.TOMAS40.20190701_0000z.nc4 - local: GEOSChem.Restart.20190701_0000z.nc4 + local: GEOSChem.Restart.20190701_0000z.nc4 transporttracers: - remote: GC_14.0.0/GEOSChem.Restart.TransportTracers.20190101_0000z.nc4 - local: GEOSChem.Restart.20190101_0000z.nc4 - other: - remote: v2020-02/initial_GEOSChem_rst.2x25_@SUFFIX@ - local: GEOSChem.Restart.20190701_0000z.nc4 + remote: GC_14.2.0/GEOSChem.Restart.TransportTracers.20190101_0000z.nc4 + local: GEOSChem.Restart.20190101_0000z.nc4 + diff --git a/run/shared/newUserRegistration.sh b/run/shared/newUserRegistration.sh new file mode 100755 index 000000000..9a6105c7b --- /dev/null +++ b/run/shared/newUserRegistration.sh @@ -0,0 +1,119 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: newUserRegistration.sh +# +# !DESCRIPTION: Defines utility functions for first-time GEOS-Chem +# user registration. This code has been been abstracted out of +# run/GCClassic/createRunDir.sh and run/GCHP/createRundir.sh. +#\\ +#\\ +# !REVISION HISTORY: +# See the subsequent Git history with the gitk browser! +#EOP +#------------------------------------------------------------------------------ +#BOC + +####========================================================================= +#### Common variables +####========================================================================== + +# User prompt for reading in data +USER_PROMPT=">>> " + +####========================================================================= +#### Send registration details to AWS database via curl +####========================================================================== +function postRegistration() { + #### Sends registration details to API #### + curl --location --request POST "https://gc-dashboard.org/registration" \ + --header "Content-Type: text/plain" \ + -d "{ + \"email\": \"${1}\", + \"name\": \"${2}\", + \"affiliation\": \"${3}\", + \"name_of_pi\": \"${4}\", + \"site\": \"${5}\", + \"git_username\": \"${6/\@/}\", + \"research_interest\": \"${7}\", + \"model_type\": \"${8}\", + \"env_type\": \"${9}\" + }" +} + +####========================================================================= +#### Read an entry from the command line +####========================================================================== +function userInput() { + + # Keep asking for the input until user enters a non-blank input + while [[ -z "${val}" ]]; do + IFS='\n' read -r -p "${USER_PROMPT}" val + done + + # Return the answer + printf "${val}" +} + +####========================================================================= +#### Query user to provide registration information +#### +#### NOTE: See https://www.baeldung.com/linux/ifs-shell-variable +#### for a description of what the IFS variable below does +####========================================================================== +function registerNewUser() { + + # Pass the model type from the GCClassic or GCHP createRunDir.sh script + model_type="${1}" + + # Ask user several questions + printf "\nInitiating User Registration:\n" + printf "You will only need to fill this information out once.\n" + printf "Please respond to all questions. Registration is required \n" + printf "in order to receive GEOS-Chem support.\n" + + printf "${thinline}What is your name (first and last)?${thinline}" + name=$(userInput) + + # Ask for email + printf "${thinline}What is your email address?${thinline}" + email=$(userInput) + + printf "${thinline}What is the name of your research institution?${thinline}" + institution=$(userInput) + + printf "${thinline}What is the name of your principal invesigator?\n" + printf "(Enter 'self' if you are the principal investigator.)${thinline}" + name_of_pi=$(userInput) + + printf "${thinline}Please provide the web site for your institution\n" + printf "(group website, company website, etc.)?${thinline}" + site=$(userInput) + + printf "${thinline}Please provide your github username (if any) so that we\n" + printf "can recognize you in submitted issues and pull requests.${thinline}" + git_username=$(userInput) + + printf "${thinline}Where do you plan to run GEOS-Chem?\n" + printf "(e.g. local compute cluster, AWS, other supercomputer)?${thinline}" + env_type=$(userInput) + + printf "${thinline}Please briefly describe how you plan on using GEOS-Chem\n" + printf "so that we can add you to 'GEOS-Chem People and Projects'\n" + printf "(https://geoschem.github.io/geos-chem-people-projects-map/)" + printf "${thinline}" + research_interest=$(userInput) + + # Send information to database on AWS + postRegistration "${email}" "${name}" "${institution}" \ + "${name_of_pi}" "${site}" "${git_username}" \ + "${research_interest}" "${model_type}" "${env_type}" + + # Update the .geoschem/config file and apply settings + echo "export GC_USER_REGISTERED=true" >> "${HOME}/.geoschem/config" + . ${HOME}/.geoschem/config +} diff --git a/run/shared/settings/gcap2_hemco.txt b/run/shared/settings/gcap2_hemco.txt index 182b99f25..123d40d96 100644 --- a/run/shared/settings/gcap2_hemco.txt +++ b/run/shared/settings/gcap2_hemco.txt @@ -118,7 +118,7 @@ RUNDIR_Hg_GLOBAL_NO2='* GLOBAL_NO2 $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_ RUNDIR_Hg_GLOBAL_O3='* GLOBAL_O3 $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 O3 2016/1-12/1/0 C xyz 1 * - 1 1' RUNDIR_Hg_GLOBAL_OH='* GLOBAL_OH $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 OH 2016/1-12/1/0 C xyz 1 * - 1 1' RUNDIR_Hg_GLOBAL_fOA='* GLOBAL_fOA $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 fOA 2016/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_Hg_GLOBAL_OCEAN='* GLOBAL_OCEAN $ROOT/MERCURY/v2018-04/ocean_fixed.nc ocean_conc 2007/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_Hg_GLOBAL_OCEAN='* GLOBAL_OCEAN $ROOT/MERCURY/v2018-04/ocean_fixed.nc ocean_conc 2007/1-12/1/0 C xy 1 * - 1 1' RUNDIR_Hg_GLOBAL_PM25='* GLOBAL_PM25 $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 PM25 2016/1-12/1/0 C xyz 1 * - 1 1' RUNDIR_Hg_GLOBAL_RH='* GLOBAL_RH $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 RH 2016/1-12/1/0 C xyz 1 * - 1 1' RUNDIR_Hg_GLOBAL_AOD_BC='* AOD_BC $ROOT/MERCURY/v2022-04/Aerosols_for_Hg_sim_2016.nc4 AOD_BC 2016/1-12/1/0 C xyz 1 * - 1 1' diff --git a/run/shared/settings/geosfp/geosfp.derived_1hr_wind_cs.txt b/run/shared/settings/geosfp/geosfp.derived_1hr_wind_cs.txt new file mode 100644 index 000000000..5ab188862 --- /dev/null +++ b/run/shared/settings/geosfp/geosfp.derived_1hr_wind_cs.txt @@ -0,0 +1,10 @@ +RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" +UA;VA m_s-1 N Y F0;003000 none none UA;VA ./MetDir/../../GEOS_C720/GEOS_FP_DerivedWind/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg_1hr_ctmwind_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:30:00P01:00 +PS1 Pa N Y 0 none 0.01 PS ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-20T00:00:00P01:00 +PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-20T00:00:00P01:00 +SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-20T00:00:00P01:00 +SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-20T00:00:00P01:00 +""" diff --git a/run/shared/settings/geosfp.txt b/run/shared/settings/geosfp/geosfp.preprocessed_ll.txt similarity index 87% rename from run/shared/settings/geosfp.txt rename to run/shared/settings/geosfp/geosfp.preprocessed_ll.txt index df663bac7..170fdb484 100644 --- a/run/shared/settings/geosfp.txt +++ b/run/shared/settings/geosfp/geosfp.preprocessed_ll.txt @@ -1,22 +1,30 @@ RUNDIR_MET='GEOSFP' RUNDIR_MET_LOWERCASE='geosfp' RUNDIR_MET_DIR="${RUNDIR_DATA_ROOT}/GEOS_${RUNDIR_GRID_DIR}/GEOS_FP" -RUNDIR_MET_DIR_NATIVE="${RUNDIR_DATA_ROOT}/GEOS_0.25x0.3125/GEOS_FP" +RUNDIR_MET_DIR_RAW="${RUNDIR_DATA_ROOT}/GEOS_0.25x0.3125/GEOS_FP" +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 RUNDIR_METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN=.false. RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. RUNDIR_MET_RES='025x03125' -RUNDIR_MET_NATIVE_RES='0.25x0.3125' -RUNDIR_MET_LAT_RES='025' -RUNDIR_MET_LON_RES='03125' RUNDIR_MET_EXT='nc' RUNDIR_MET_CN_YR=2011 RUNDIR_MET_PRES_UNIT='hPa' RUNDIR_MET_PRES_SCALE='1.0' +RUNDIR_OFFLINE_EMIS_RES='0.25x0.3125' +RUNDIR_OFFLINE_EMIS_LAT_RES='025' + +RUNDIR_METLIGHTNING='GEOSFP' +RUNDIR_METLIGHTNING_DIR="${RUNDIR_DATA_ROOT}/GEOS_0.25x0.3125/GEOS_FP" +RUNDIR_METLIGHTNING_RES='0.25x0.3125' +RUNDIR_LIGHTNOX_CLIM=false +RUNDIR_MET_LCLIM='2014-2019' + RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS=""" -# +${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION} + # --- 2D variables, 1-hr averaged --- ALBD 1 N Y F0;003000 none none ALBEDO ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc CLDFRC 1 N Y F0;003000 none none CLDTOT ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc @@ -29,7 +37,6 @@ GWETROOT 1 N Y F0;003000 none none GWETROOT ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1 GWETTOP 1 N Y F0;003000 none none GWETTOP ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc HFLUX 1 N Y F0;003000 none none HFLUX ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc LAI 1 N Y F0;003000 none none LAI ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc -RADLWG 1 N Y F0;003000 none none LWGNT ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc PARDF 1 N Y F0;003000 none none PARDF ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc PARDR 1 N Y F0;003000 none none PARDR ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc PBLH 1 N Y F0;003000 none none PBLH ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc @@ -49,37 +56,37 @@ SEAICE60 1 N Y F0;003000 none none SEAICE60 ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1 SEAICE70 1 N Y F0;003000 none none SEAICE70 ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc SEAICE80 1 N Y F0;003000 none none SEAICE80 ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc SEAICE90 1 N Y F0;003000 none none SEAICE90 ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc -# -SLP hPa N Y F0;003000 none 1.0 SLP ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc -# + +SLP hPa N Y F0;003000 none none SLP ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc + SNODP 1 N Y F0;003000 none none SNODP ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc SNOMAS 1 N Y F0;003000 none none SNOMAS ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc RADSWG 1 N Y F0;003000 none none SWGDN ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc -# + TO3 dobson N Y F0;003000 none none TO3 ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc -# -TROPP hPa N Y F0;003000 none 1.0 TROPPT ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc -# + +TROPP hPa N Y F0;003000 none none TROPPT ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc + TSKIN 1 N Y F0;003000 none none TS ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc TS 1 N Y F0;003000 none none T2M ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc USTAR 1 N Y F0;003000 none none USTAR ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc -# + U10M m_s-1 N Y F0;003000 none none U10M ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc V10M m_s-1 N Y F0;003000 none none V10M ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc -# + Z0 1 N Y F0;003000 none none Z0M ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A1.025x03125.nc -# + # --- Surface pressure, 3-hr instantaneous --- -PS1 hPa N Y 0 none 1.0 PS ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.I3.025x03125.nc -PS2 hPa N Y 0;001000 none 1.0 PS ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.I3.025x03125.nc -# +PS1 hPa N Y 0 none none PS ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.I3.025x03125.nc +PS2 hPa N Y 0;001000 none none PS ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.I3.025x03125.nc + # --- 3D variables, 3-hr instantaneous --- SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.I3.025x03125.nc SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.I3.025x03125.nc -# + TMPU1 K N Y 0 none none T ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.I3.025x03125.nc TMPU2 K N Y 0;001000 none none T ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.I3.025x03125.nc -# + # --- 3D variables, 3-hr averaged --- QI 1 N Y F0;013000 none none QI ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3cld.025x03125.nc QL 1 N Y F0;013000 none none QL ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3cld.025x03125.nc @@ -88,13 +95,13 @@ TAUCLW 1 N Y F0;013000 none none TAUCLW ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3cl OPTDEP 1 N Y F0;013000 none none OPTDEPTH ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3cld.025x03125.nc CLDF 1 N Y F0;013000 none none CLOUD ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3cld.025x03125.nc DTRAIN 1 N Y F0;013000 none none DTRAIN ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3dyn.025x03125.nc -# + OMEGA Pa_s-1 N Y F0;013000 none none OMEGA ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3dyn.025x03125.nc -# + RH - N Y F0;013000 none none RH ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3dyn.025x03125.nc -# + UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3dyn.025x03125.nc -# + DQRCU 1 N Y F0;013000 none none DQRCU ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3mstC.025x03125.nc DQRLSAN 1 N Y F0;013000 none none DQRLSAN ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3mstC.025x03125.nc REEVAPCN 1 N Y F0;013000 none none REEVAPCN ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3mstC.025x03125.nc @@ -104,7 +111,7 @@ PFICU 1 N Y F0;013000 none none PFICU ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3 PFILSAN 1 N Y F0;013000 none none PFILSAN ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3mstE.025x03125.nc PFLCU 1 N Y F0;013000 none none PFLCU ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3mstE.025x03125.nc PFLLSAN 1 N Y F0;013000 none none PFLLSAN ./MetDir/%y4/%m2/GEOSFP.%y4%m2%d2.A3mstE.025x03125.nc -# + # --- Fixed variables, from constants file --- FRLAKE 1 N Y - none none FRLAKE ./MetDir/2011/01/GEOSFP.20110101.CN.025x03125.nc FRLAND 1 N Y - none none FRLAND ./MetDir/2011/01/GEOSFP.20110101.CN.025x03125.nc @@ -112,6 +119,9 @@ FRLANDIC 1 N Y - none none FRLANDIC ./MetDir/2011/01/GEOSFP.20110101.CN.025x0312 FROCEAN 1 N Y - none none FROCEAN ./MetDir/2011/01/GEOSFP.20110101.CN.025x03125.nc # PHIS m2_s-2 N Y - none none PHIS ./MetDir/2011/01/GEOSFP.20110101.CN.025x03125.nc + +# Also include FROCEAN with name OCEAN_MASK to match HEMCO container name for ocean mask +OCEAN_MASK 1 N Y - none none FROCEAN ./MetDir/2011/01/GEOSFP.20110101.CN.025x03125.nc """ RUNDIR_MET_EXTDATA_DERIVED_EXPORTS=""" diff --git a/run/shared/settings/geosfp/geosfp.raw_1hr_mass_flux_cs.txt b/run/shared/settings/geosfp/geosfp.raw_1hr_mass_flux_cs.txt new file mode 100644 index 000000000..c29e4eddd --- /dev/null +++ b/run/shared/settings/geosfp/geosfp.raw_1hr_mass_flux_cs.txt @@ -0,0 +1,12 @@ +RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.true. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" +MFXC;MFYC Pa_m+2_s-1 N H F0;003000 none 0.6666666 MFXC;MFYC ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:30:00P01:00 +CXC;CYC 1 N H F0;003000 none none CX;CY ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:30:00P01:00 +PS1 Pa N Y 0 none 0.01 PS ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:00:00P01:00 +PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:00:00P01:00 +SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:00:00P01:00 +SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/../../GEOS_C720/GEOS_FP_Raw/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:00:00P01:00 +UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg3_3d_asm_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-11T01:30:00P03:00 +""" diff --git a/run/shared/settings/native_geosfp_normal_wind.txt b/run/shared/settings/geosfp/geosfp.raw_3hr_wind_ll.txt similarity index 95% rename from run/shared/settings/native_geosfp_normal_wind.txt rename to run/shared/settings/geosfp/geosfp.raw_3hr_wind_ll.txt index 8631b046a..b1b90a209 100644 --- a/run/shared/settings/native_geosfp_normal_wind.txt +++ b/run/shared/settings/geosfp/geosfp.raw_3hr_wind_ll.txt @@ -1,4 +1,5 @@ RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg3_3d_asm_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-11T01:30:00P03:00 diff --git a/run/shared/settings/native_geosfp.txt b/run/shared/settings/geosfp/geosfp.raw_ll.txt similarity index 95% rename from run/shared/settings/native_geosfp.txt rename to run/shared/settings/geosfp/geosfp.raw_ll.txt index 21e22fad2..1c6c0bca9 100644 --- a/run/shared/settings/native_geosfp.txt +++ b/run/shared/settings/geosfp/geosfp.raw_ll.txt @@ -1,20 +1,27 @@ RUNDIR_MET='GEOSFP' RUNDIR_MET_LOWERCASE='geosfp' RUNDIR_MET_DIR="${RUNDIR_DATA_ROOT}/GEOS_${RUNDIR_GRID_DIR}/GEOS_FP" -RUNDIR_MET_DIR_NATIVE="${RUNDIR_DATA_ROOT}/GEOS_0.25x0.3125/GEOS_FP_Native" +RUNDIR_MET_DIR_RAW="${RUNDIR_DATA_ROOT}/GEOS_0.25x0.3125/GEOS_FP_Raw" RUNDIR_METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN=.true. RUNDIR_MET_RES='025x03125' -RUNDIR_MET_NATIVE_RES='0.25x0.3125' -RUNDIR_MET_LAT_RES='025' -RUNDIR_MET_LON_RES='03125' RUNDIR_MET_EXT='nc' RUNDIR_MET_CN_YR=2011 RUNDIR_MET_PRES_UNIT='hPa' RUNDIR_MET_PRES_SCALE='1.0' +RUNDIR_OFFLINE_EMIS_RES='0.25x0.3125' +RUNDIR_OFFLINE_EMIS_LAT_RES='025' + +RUNDIR_METLIGHTNING='GEOSFP' +RUNDIR_METLIGHTNING_DIR="${RUNDIR_DATA_ROOT}/GEOS_0.25x0.3125/GEOS_FP_Raw" +RUNDIR_METLIGHTNING_RES='0.25x0.3125' +RUNDIR_LIGHTNOX_CLIM=false +RUNDIR_MET_LCLIM='2014-2019' + RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS=""" + ${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION} TMPU1 K N Y 0 none none T ./MetDir/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_asm_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-11T00:00:00P03:00 @@ -48,7 +55,6 @@ SNOMAS kg_m-2 N Y F0;003000 none none SNOMAS ./MetDir/Y%y4/M%m2/D # tavg1_2d_rad_Nx ALBD 1 N Y F0;003000 none none ALBEDO ./MetDir/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg1_2d_rad_Nx.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-11T00:30:00P01:00 CLDFRC 1 N Y F0;003000 none none CLDTOT ./MetDir/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg1_2d_rad_Nx.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-11T00:30:00P01:00 -RADLWG W_m-2 N Y F0;003000 none none LWGNT ./MetDir/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg1_2d_rad_Nx.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-11T00:30:00P01:00 RADSWG W_m-2 N Y F0;003000 none none SWGDN ./MetDir/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg1_2d_rad_Nx.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-11T00:30:00P01:00 # tavg1_2d_slv_Nx @@ -106,6 +112,9 @@ FRLAND 1 N Y - none none FRLAND ./MetDir/GEOS.fp.asm.const_2d_asm_Nx.00000 FRLANDIC 1 N Y - none none FRLANDICE ./MetDir/GEOS.fp.asm.const_2d_asm_Nx.00000000_0000.V01.nc4 FROCEAN 1 N Y - none none FROCEAN ./MetDir/GEOS.fp.asm.const_2d_asm_Nx.00000000_0000.V01.nc4 PHIS m2_s-2 N Y - none none PHIS ./MetDir/GEOS.fp.asm.const_2d_asm_Nx.00000000_0000.V01.nc4 + +# Also include FROCEAN with name OCEAN_MASK to match HEMCO container name for ocean mask +OCEAN_MASK 1 N Y - none none FROCEAN ./MetDir/GEOS.fp.asm.const_2d_asm_Nx.00000000_0000.V01.nc4 """ RUNDIR_MET_EXTDATA_DERIVED_EXPORTS=""" diff --git a/run/shared/settings/geosit/discover/geosit.raw_cs.discover.txt b/run/shared/settings/geosit/discover/geosit.raw_cs.discover.txt new file mode 100644 index 000000000..9d509181f --- /dev/null +++ b/run/shared/settings/geosit/discover/geosit.raw_cs.discover.txt @@ -0,0 +1,128 @@ +RUNDIR_MET='GEOSIT' +RUNDIR_MET_LOWERCASE='geosit' +RUNDIR_MET_DIR="${RUNDIR_DATA_ROOT}/GEOS_${RUNDIR_GRID_DIR}/GEOS_IT" +RUNDIR_MET_DIR_RAW="${RUNDIR_DATA_ROOT}/GEOS_C180/GEOS_IT_Raw" + +RUNDIR_METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN=.true. +RUNDIR_MET_RES='C180' +RUNDIR_MET_EXT='nc4' + +RUNDIR_MET_CN_YR=Y2018 +RUNDIR_MET_CN_MO=M01 +RUNDIR_MET_PRES_UNIT='hPa' +RUNDIR_MET_PRES_SCALE='1.0' + +RUNDIR_OFFLINE_EMIS_RES='0.5x0.625' +RUNDIR_OFFLINE_EMIS_LAT_RES='05' + +RUNDIR_METLIGHTNING='MERRA2' +RUNDIR_METLIGHTNING_DIR="${RUNDIR_DATA_ROOT}/0.5x0.625/MERRA2" +RUNDIR_METLIGHTNING_RES='0.5x0.625' +RUNDIR_LIGHTNOX_CLIM=true +RUNDIR_MET_LCLIM='1980-2019' + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS=""" + +${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION} + +#------------------------------------------------------- +# --- 1-hr time-averaged, 2D --- +#------------------------------------------------------- + +EFLUX W_m-2 N Y F0;003000 none none EFLUX ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +EVAP kg_m-2_s-1 N Y F0;003000 none none EVAP ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +FRSEAICE 1 N Y F0;003000 none none FRSEAICE ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +HFLUX W_m-2 N Y F0;003000 none none HFLUX ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PBLH m N Y F0;003000 none none PBLH ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECANV kg_m-2_s-1 N Y F0;003000 none none PRECANV ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECCON kg_m-2_s-1 N Y F0;003000 none none PRECCON ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECLSC kg_m-2_s-1 N Y F0;003000 none none PRECLSC ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECSNO kg_m-2_s-1 N Y F0;003000 none none PRECSNO ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECTOT kg_m-2_s-1 N Y F0;003000 none none PRECTOT ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +USTAR m_s-1 N Y F0;003000 none none USTAR ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +Z0 m N Y F0;003000 none none Z0M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 + +FRSNO 1 N Y F0;003000 none none FRSNO ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +GRN 1 N Y F0;003000 none none GRN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +GWETROOT 1 N Y F0;003000 none none GWETROOT ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +GWETTOP 1 N Y F0;003000 none none GWETTOP ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +LAI 1 N Y F0;003000 none none LAI ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PARDF W_m-2 N Y F0;003000 none none PARDF ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PARDR W_m-2 N Y F0;003000 none none PARDR ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +SNODP m N Y F0;003000 none none SNODP ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +SNOMAS kg_m-2 N Y F0;003000 none none SNOMAS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 + +ALBD 1 N Y F0;003000 none none ALBEDO ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.rad_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +CLDFRC 1 N Y F0;003000 none none CLDTOT ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.rad_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +RADSWG W_m-2 N Y F0;003000 none none SWGDN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.rad_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 + +QV2M kg_kg-1 N Y F0;003000 none none QV2M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +SLP Pa N Y F0;003000 none 0.01 SLP ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +TS K N Y F0;003000 none none T2M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +TO3 Dobsons N Y F0;003000 none none TO3 ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +TROPP Pa N Y F0;003000 none 0.01 TROPPT ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +TSKIN K N Y F0;003000 none none TS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +U10M m_s-1 N Y F0;003000 none none U10M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +V10M m_s-1 N Y F0;003000 none none V10M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_C180x180x6_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 + +# SEAICE[0-9]0 bins not used except in Hg simulation + +SEAICE00 1 N Y F0;003000 none none SEAICE00 /dev/null +SEAICE10 1 N Y F0;003000 none none SEAICE10 /dev/null +SEAICE20 1 N Y F0;003000 none none SEAICE20 /dev/null +SEAICE30 1 N Y F0;003000 none none SEAICE30 /dev/null +SEAICE40 1 N Y F0;003000 none none SEAICE40 /dev/null +SEAICE50 1 N Y F0;003000 none none SEAICE50 /dev/null +SEAICE60 1 N Y F0;003000 none none SEAICE60 /dev/null +SEAICE70 1 N Y F0;003000 none none SEAICE70 /dev/null +SEAICE80 1 N Y F0;003000 none none SEAICE80 /dev/null +SEAICE90 1 N Y F0;003000 none none SEAICE90 /dev/null + +#------------------------------------------------------- +# --- 3-hr instantaneous (all 3D) --- +#------------------------------------------------------- + +TMPU1 K N Y 0 none none T ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 +TMPU2 K N Y 0;001000 none none T ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 + +#------------------------------------------------------- +# --- 3-hr time-averaged (all 3D) --- +#------------------------------------------------------- + +CLDF 1 N Y F0;013000 none none CLOUD ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.rad_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +DTRAIN kg_m-2_s-1 N Y F0;013000 none none DTRAIN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.cld_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +TAUCLI 1 N Y F0;013000 none none TAUCLI ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.cld_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +TAUCLW 1 N Y F0;013000 none none TAUCLW ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.cld_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +OMEGA Pa_s-1 N Y F0;013000 none none OMEGA ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +QI kg_kg-1 N Y F0;013000 none none QI ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +QL kg_kg-1 N Y F0;013000 none none QL ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +RH 1 N Y F0;013000 none none RH ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +DQRCU kg_kg-1_s-1 N Y F0;013000 none none DQRCU ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +DQRLSAN kg_kg-1_s-1 N Y F0;013000 none none DQRLSAN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +REEVAPCN kg_kg-1_s-1 N Y F0;013000 none none REEVAPCN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +REEVAPLS kg_kg-1_s-1 N Y F0;013000 none none REEVAPLSAN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +CMFMC kg_m-2_s-1 N Y F0;013000 none none CMFMC ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_C180x180x6_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PFICU kg_m-2_s-1 N Y F0;013000 none none PFICU ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_C180x180x6_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PFILSAN kg_m-2_s-1 N Y F0;013000 none none PFILSAN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_C180x180x6_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PFLCU kg_m-2_s-1 N Y F0;013000 none none PFLCU ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_C180x180x6_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PFLLSAN kg_m-2_s-1 N Y F0;013000 none none PFLLSAN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_C180x180x6_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +#------------------------------------------------------- +# --- Fixed variables, from constants file --- +#------------------------------------------------------- + +FRLAKE 1 N Y - none none FRLAKE ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_C180x180x6_slv.2018-01-01T0300Z.nc4 +FRLAND 1 N Y - none none FRLAND ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_C180x180x6_slv.2018-01-01T0300Z.nc4 +FRLANDIC 1 N Y - none none FRLANDICE ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_C180x180x6_slv.2018-01-01T0300Z.nc4 +FROCEAN 1 N Y - none none FROCEAN ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_C180x180x6_slv.2018-01-01T0300Z.nc4 +PHIS m2_s-2 N Y - none none PHIS ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_C180x180x6_slv.2018-01-01T0300Z.nc4 +OCEAN_MASK 1 N Y - none none FROCEAN ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_C180x180x6_slv.2018-01-01T0300Z.nc4 +""" + +RUNDIR_MET_EXTDATA_DERIVED_EXPORTS=""" +OPTDEP TAUCLI+TAUCLW 0 +""" diff --git a/run/shared/settings/geosit/discover/geosit.raw_ll.discover.txt b/run/shared/settings/geosit/discover/geosit.raw_ll.discover.txt new file mode 100644 index 000000000..c124080b4 --- /dev/null +++ b/run/shared/settings/geosit/discover/geosit.raw_ll.discover.txt @@ -0,0 +1,129 @@ +RUNDIR_MET='GEOSIT' +RUNDIR_MET_LOWERCASE='geosit' +RUNDIR_MET_DIR="${RUNDIR_DATA_ROOT}/GEOS_${RUNDIR_GRID_DIR}/GEOS_IT" +RUNDIR_MET_DIR_RAW="${RUNDIR_DATA_ROOT}/GEOS_${RUNDIR_GRID_DIR}/GEOS_IT" + +RUNDIR_METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN=.true. +RUNDIR_MET_RES='05x0625' +RUNDIR_MET_EXT='nc4' + +RUNDIR_MET_CN_YR=Y2018 +RUNDIR_MET_CN_MO=M01 +RUNDIR_MET_PRES_UNIT='hPa' +RUNDIR_MET_PRES_SCALE='1.0' + +RUNDIR_OFFLINE_EMIS_RES='0.5x0.625' +RUNDIR_OFFLINE_EMIS_LAT_RES='05' + +RUNDIR_METLIGHTNING='MERRA2' +RUNDIR_METLIGHTNING_DIR="${RUNDIR_DATA_ROOT}/0.5x0.625/MERRA2" +RUNDIR_METLIGHTNING_RES='0.5x0.625' +RUNDIR_LIGHTNOX_CLIM=true +RUNDIR_MET_LCLIM='1980-2019' + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS=""" + +${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION} + +#------------------------------------------------------- +# --- 1-hr time-averaged, 2D --- +#------------------------------------------------------- + +EFLUX W_m-2 N Y F0;003000 none none EFLUX ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +EVAP kg_m-2_s-1 N Y F0;003000 none none EVAP ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +FRSEAICE 1 N Y F0;003000 none none FRSEAICE ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +HFLUX W_m-2 N Y F0;003000 none none HFLUX ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PBLH m N Y F0;003000 none none PBLH ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECANV kg_m-2_s-1 N Y F0;003000 none none PRECANV ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECCON kg_m-2_s-1 N Y F0;003000 none none PRECCON ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECLSC kg_m-2_s-1 N Y F0;003000 none none PRECLSC ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECSNO kg_m-2_s-1 N Y F0;003000 none none PRECSNO ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PRECTOT kg_m-2_s-1 N Y F0;003000 none none PRECTOT ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +USTAR m_s-1 N Y F0;003000 none none USTAR ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +Z0 m N Y F0;003000 none none Z0M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.flx_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 + +FRSNO 1 N Y F0;003000 none none FRSNO ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +GRN 1 N Y F0;003000 none none GRN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +GWETROOT 1 N Y F0;003000 none none GWETROOT ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +GWETTOP 1 N Y F0;003000 none none GWETTOP ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +LAI 1 N Y F0;003000 none none LAI ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PARDF W_m-2 N Y F0;003000 none none PARDF ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PARDR W_m-2 N Y F0;003000 none none PARDR ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +SNODP m N Y F0;003000 none none SNODP ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +SNOMAS kg_m-2 N Y F0;003000 none none SNOMAS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.lnd_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 + +ALBD 1 N Y F0;003000 none none ALBEDO ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.rad_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +CLDFRC 1 N Y F0;003000 none none CLDTOT ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.rad_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +RADSWG W_m-2 N Y F0;003000 none none SWGDN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.rad_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 + +QV2M kg_kg-1 N Y F0;003000 none none QV2M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +SLP Pa N Y F0;003000 none 0.01 SLP ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +TS K N Y F0;003000 none none T2M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +TO3 Dobsons N Y F0;003000 none none TO3 ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +TROPP Pa N Y F0;003000 none 0.01 TROPPT ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +TSKIN K N Y F0;003000 none none TS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +U10M m_s-1 N Y F0;003000 none none U10M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +V10M m_s-1 N Y F0;003000 none none V10M ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.slv_tavg_1hr_glo_L576x361_slv.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 + +# SEAICE[0-9]0 bins not used except in Hg simulation + +SEAICE00 1 N Y F0;003000 none none SEAICE00 /dev/null +SEAICE10 1 N Y F0;003000 none none SEAICE10 /dev/null +SEAICE20 1 N Y F0;003000 none none SEAICE20 /dev/null +SEAICE30 1 N Y F0;003000 none none SEAICE30 /dev/null +SEAICE40 1 N Y F0;003000 none none SEAICE40 /dev/null +SEAICE50 1 N Y F0;003000 none none SEAICE50 /dev/null +SEAICE60 1 N Y F0;003000 none none SEAICE60 /dev/null +SEAICE70 1 N Y F0;003000 none none SEAICE70 /dev/null +SEAICE80 1 N Y F0;003000 none none SEAICE80 /dev/null +SEAICE90 1 N Y F0;003000 none none SEAICE90 /dev/null + +#------------------------------------------------------- +# --- 3-hr instantaneous (all 3D) --- +#------------------------------------------------------- + +TMPU1 K N Y 0 none none T ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 +TMPU2 K N Y 0;001000 none none T ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 + +#------------------------------------------------------- +# --- 3-hr time-averaged (all 3D) --- +#------------------------------------------------------- + +CLDF 1 N Y F0;013000 none none CLOUD ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.rad_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +DTRAIN kg_m-2_s-1 N Y F0;013000 none none DTRAIN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.cld_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +TAUCLI 1 N Y F0;013000 none none TAUCLI ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.cld_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +TAUCLW 1 N Y F0;013000 none none TAUCLW ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.cld_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +OMEGA Pa_s-1 N Y F0;013000 none none OMEGA ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +QI kg_kg-1 N Y F0;013000 none none QI ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +QL kg_kg-1 N Y F0;013000 none none QL ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +RH 1 N Y F0;013000 none none RH ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +DQRCU kg_kg-1_s-1 N Y F0;013000 none none DQRCU ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +DQRLSAN kg_kg-1_s-1 N Y F0;013000 none none DQRLSAN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +REEVAPCN kg_kg-1_s-1 N Y F0;013000 none none REEVAPCN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +REEVAPLS kg_kg-1_s-1 N Y F0;013000 none none REEVAPLSAN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +CMFMC kg_m-2_s-1 N Y F0;013000 none none CMFMC ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_L576x361_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PFICU kg_m-2_s-1 N Y F0;013000 none none PFICU ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_L576x361_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PFILSAN kg_m-2_s-1 N Y F0;013000 none none PFILSAN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_L576x361_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PFLCU kg_m-2_s-1 N Y F0;013000 none none PFLCU ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_L576x361_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PFLLSAN kg_m-2_s-1 N Y F0;013000 none none PFLLSAN ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.mst_tavg_3hr_glo_L576x361_v73.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 + +#------------------------------------------------------- +# --- Fixed variables, from constants file --- +#------------------------------------------------------- + +FRLAKE 1 N Y - none none FRLAKE ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_L576x361_slv.2018-01-01T0300Z.nc4 +FRLAND 1 N Y - none none FRLAND ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_L576x361_slv.2018-01-01T0300Z.nc4 +FRLANDIC 1 N Y - none none FRLANDICE ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_L576x361_slv.2018-01-01T0300Z.nc4 +FROCEAN 1 N Y - none none FROCEAN ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_L576x361_slv.2018-01-01T0300Z.nc4 +PHIS m2_s-2 N Y - none none PHIS ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_L576x361_slv.2018-01-01T0300Z.nc4 +OCEAN_MASK 1 N Y - none none FROCEAN ./MetDir/Y2018/M01/d5294_geosit_jan18.asm_const_0hr_glo_L576x361_slv.2018-01-01T0300Z.nc4 + +""" + +RUNDIR_MET_EXTDATA_DERIVED_EXPORTS=""" +OPTDEP TAUCLI+TAUCLW 0 +""" diff --git a/run/shared/settings/geosit/discover/geosit.raw_mass_flux.discover.txt b/run/shared/settings/geosit/discover/geosit.raw_mass_flux.discover.txt new file mode 100644 index 000000000..609e67684 --- /dev/null +++ b/run/shared/settings/geosit/discover/geosit.raw_mass_flux.discover.txt @@ -0,0 +1,19 @@ +RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.true. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" + +#-------------------------------------- +# --- Meteorology used in advection --- +#-------------------------------------- + +# Raw cubed-sphere 1-hourly mass fluxes +UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +MFXC;MFYC Pa_m+2_s-1 N H F0;003000 none 0.6666666 MFXC;MFYC ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.ctm_tavg_1hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +CXC;CYC 1 N H F0;003000 none none CX;CY ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.ctm_tavg_1hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:30:00P01:00 +PS1 Pa N Y 0 none 0.01 PS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.ctm_inst_1hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P01:00 +PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.ctm_inst_1hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P01:00 +SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.ctm_inst_1hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P01:00 +SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.ctm_inst_1hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P01:00 + +""" diff --git a/run/shared/settings/geosit/discover/geosit.raw_wind_cs.discover.txt b/run/shared/settings/geosit/discover/geosit.raw_wind_cs.discover.txt new file mode 100644 index 000000000..778fcc089 --- /dev/null +++ b/run/shared/settings/geosit/discover/geosit.raw_wind_cs.discover.txt @@ -0,0 +1,17 @@ +RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" + +#-------------------------------------- +# --- Meteorology used in advection --- +#-------------------------------------- + +# Cubed-sphere 3-hourly winds +UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PS1 Pa N Y 0 none 0.01 PS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 +PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 +SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 +SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_C180x180x6_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 + +""" diff --git a/run/shared/settings/geosit/discover/geosit.raw_wind_ll.discover.txt b/run/shared/settings/geosit/discover/geosit.raw_wind_ll.discover.txt new file mode 100644 index 000000000..19b493a92 --- /dev/null +++ b/run/shared/settings/geosit/discover/geosit.raw_wind_ll.discover.txt @@ -0,0 +1,17 @@ +RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" + +#-------------------------------------- +# --- Meteorology used in advection --- +#-------------------------------------- + +# Cubed-sphere 3-hourly winds +UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_tavg_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T01:30:00P03:00 +PS1 Pa N Y 0 none 0.01 PS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 +PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 +SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 +SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/Y%y4/M%m2/d5294_geosit_jan18.asm_inst_3hr_glo_L576x361_v72.%y4-%m2-%d2T%h2%n2Z.nc4 1995-01-01T00:00:00P03:00 + +""" diff --git a/run/shared/settings/geosit/geosit.preprocessed_ll.txt b/run/shared/settings/geosit/geosit.preprocessed_ll.txt new file mode 100644 index 000000000..aa0722de9 --- /dev/null +++ b/run/shared/settings/geosit/geosit.preprocessed_ll.txt @@ -0,0 +1,129 @@ +RUNDIR_MET='GEOSIT' +RUNDIR_MET_LOWERCASE='geosit' +RUNDIR_MET_DIR="${RUNDIR_DATA_ROOT}/GEOS_${RUNDIR_GRID_DIR}/GEOS_IT" +RUNDIR_MET_DIR_RAW="${RUNDIR_DATA_ROOT}/GEOS_0.5x0.625/GEOS_IT" + +RUNDIR_METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN=.false. +RUNDIR_MET_RES='05x0625' +RUNDIR_MET_EXT='nc4' + +RUNDIR_MET_CN_YR=1998 +RUNDIR_MET_PRES_UNIT='Pa ' +RUNDIR_MET_PRES_SCALE='0.01' + +RUNDIR_OFFLINE_EMIS_RES='0.5x0.625' +RUNDIR_OFFLINE_EMIS_LAT_RES='05' + +RUNDIR_METLIGHTNING='MERRA2' +RUNDIR_METLIGHTNING_DIR="${RUNDIR_DATA_ROOT}/GEOS_0.5x0.625/MERRA2" +RUNDIR_METLIGHTNING_RES='0.5x0.625' +RUNDIR_LIGHTNOX_CLIM=true +RUNDIR_MET_LCLIM='1980-2019' + +RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS=""" + +#------------------------------------------------------- +# --- Meteorology used in advection --- +#------------------------------------------------------- + +UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3dyn.05x0625.nc +PS1 hPa N Y 0 none none PS ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.I3.05x0625.nc +PS2 hPa N Y 0;001000 none none PS ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.I3.05x0625.nc +SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.I3.05x0625.nc +SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.I3.05x0625.nc + +#------------------------------------------------------- +# --- 1-hr time-averaged, 2D --- +#------------------------------------------------------- + +ALBD 1 N Y F0;003000 none none ALBEDO ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +CLDFRC 1 N Y F0;003000 none none CLDTOT ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +EFLUX 1 N Y F0;003000 none none EFLUX ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +EVAP 1 N Y F0;003000 none none EVAP ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +FRSEAICE 1 N Y F0;003000 none none FRSEAICE ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +FRSNO 1 N Y F0;003000 none none FRSNO ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +GRN 1 N Y F0;003000 none none GRN ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +GWETROOT 1 N Y F0;003000 none none GWETROOT ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +GWETTOP 1 N Y F0;003000 none none GWETTOP ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +HFLUX 1 N Y F0;003000 none none HFLUX ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +LAI 1 N Y F0;003000 none none LAI ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +PARDF 1 N Y F0;003000 none none PARDF ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +PARDR 1 N Y F0;003000 none none PARDR ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +PBLH 1 N Y F0;003000 none none PBLH ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +PRECANV 1 N Y F0;003000 none none PRECANV ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +PRECCON 1 N Y F0;003000 none none PRECCON ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +PRECLSC 1 N Y F0;003000 none none PRECLSC ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +PRECSNO 1 N Y F0;003000 none none PRECSNO ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +PRECTOT 1 N Y F0;003000 none none PRECTOT ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +QV2M 1 N Y F0;003000 none none QV2M ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE00 1 N Y F0;003000 none none SEAICE00 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE10 1 N Y F0;003000 none none SEAICE10 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE20 1 N Y F0;003000 none none SEAICE20 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE30 1 N Y F0;003000 none none SEAICE30 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE40 1 N Y F0;003000 none none SEAICE40 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE50 1 N Y F0;003000 none none SEAICE50 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE60 1 N Y F0;003000 none none SEAICE60 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE70 1 N Y F0;003000 none none SEAICE70 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE80 1 N Y F0;003000 none none SEAICE80 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SEAICE90 1 N Y F0;003000 none none SEAICE90 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SLP hPa N Y F0;003000 none none SLP ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SNODP 1 N Y F0;003000 none none SNODP ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +SNOMAS 1 N Y F0;003000 none none SNOMAS ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +RADSWG 1 N Y F0;003000 none none SWGDN ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +TO3 dobson N Y F0;003000 none none TO3 ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +TROPP hPa N Y F0;003000 none none TROPPT ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +TSKIN 1 N Y F0;003000 none none TS ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +TS 1 N Y F0;003000 none none T2M ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +USTAR 1 N Y F0;003000 none none USTAR ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +U10M m_s-1 N Y F0;003000 none none U10M ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +V10M m_s-1 N Y F0;003000 none none V10M ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc +Z0 1 N Y F0;003000 none none Z0M ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A1.05x0625.nc + +#------------------------------------------------------- +# --- 3-hr instantaneous (all 3D) --- +#------------------------------------------------------- + +TMPU1 K N Y 0 none none T ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.I3.05x0625.nc +TMPU2 K N Y 0;001000 none none T ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.I3.05x0625.nc + +#------------------------------------------------------- +# --- 3-hr time-averaged (all 3D) --- +#------------------------------------------------------- + +QI 1 N Y F0;013000 none none QI ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3cld.05x0625.nc +QL 1 N Y F0;013000 none none QL ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3cld.05x0625.nc +TAUCLI 1 N Y F0;013000 none none TAUCLI ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3cld.05x0625.nc +TAUCLW 1 N Y F0;013000 none none TAUCLW ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3cld.05x0625.nc +OPTDEP 1 N Y F0;013000 none none OPTDEPTH ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3cld.05x0625.nc +CLDF 1 N Y F0;013000 none none CLOUD ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3cld.05x0625.nc +DTRAIN 1 N Y F0;013000 none none DTRAIN ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3dyn.05x0625.nc +OMEGA Pa_s-1 N Y F0;013000 none none OMEGA ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3dyn.05x0625.nc +RH - N Y F0;013000 none none RH ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3dyn.05x0625.nc +DQRCU 1 N Y F0;013000 none none DQRCU ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3mstC.05x0625.nc +DQRLSAN 1 N Y F0;013000 none none DQRLSAN ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3mstC.05x0625.nc +REEVAPCN 1 N Y F0;013000 none none REEVAPCN ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3mstC.05x0625.nc +REEVAPLS 1 N Y F0;013000 none none REEVAPLS ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3mstC.05x0625.nc +CMFMC 1 N Y F0;013000 none none CMFMC ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3mstE.05x0625.nc +PFICU 1 N Y F0;013000 none none PFICU ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3mstE.05x0625.nc +PFILSAN 1 N Y F0;013000 none none PFILSAN ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3mstE.05x0625.nc +PFLCU 1 N Y F0;013000 none none PFLCU ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3mstE.05x0625.nc +PFLLSAN 1 N Y F0;013000 none none PFLLSAN ./MetDir/%y4/%m2/GEOSIT.%y4%m2%d2.A3mstE.05x0625.nc + +#------------------------------------------------------- +# --- Fixed variables, from constants file --- +#------------------------------------------------------- + +FRLAKE 1 N Y - none none FRLAKE ./MetDir/1998/01/GEOSIT.19980101.CN.05x0625.nc +FRLAND 1 N Y - none none FRLAND ./MetDir/1998/01/GEOSIT.19980101.CN.05x0625.nc +FRLANDIC 1 N Y - none none FRLANDIC ./MetDir/1998/01/GEOSIT.19980101.CN.05x0625.nc +FROCEAN 1 N Y - none none FROCEAN ./MetDir/1998/01/GEOSIT.19980101.CN.05x0625.nc +PHIS m2_s-2 N Y - none none PHIS ./MetDir/1998/01/GEOSIT.19980101.CN.05x0625.nc +OCEAN_MASK 1 N Y - none none FROCEAN ./MetDir/1998/01/GEOSIT.19980101.CN.05x0625.nc + +""" + +RUNDIR_MET_EXTDATA_DERIVED_EXPORTS=""" +""" diff --git a/run/shared/settings/geosit/geosit.raw_cs.txt b/run/shared/settings/geosit/geosit.raw_cs.txt new file mode 100644 index 000000000..1c0b86bc1 --- /dev/null +++ b/run/shared/settings/geosit/geosit.raw_cs.txt @@ -0,0 +1,129 @@ +RUNDIR_MET='GEOSIT' +RUNDIR_MET_LOWERCASE='geosit' +RUNDIR_MET_DIR="${RUNDIR_DATA_ROOT}/GEOS_${RUNDIR_GRID_DIR}/GEOS_IT" +RUNDIR_MET_DIR_RAW="${RUNDIR_DATA_ROOT}/GEOS_C180/GEOS_IT_Raw" + +RUNDIR_METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN=.true. +RUNDIR_MET_RES='C180' +RUNDIR_MET_EXT='nc4' + +RUNDIR_MET_CN_YR=Y1998 +RUNDIR_MET_CN_MO=M01 +RUNDIR_MET_PRES_UNIT='hPa' +RUNDIR_MET_PRES_SCALE='1.0' + +RUNDIR_OFFLINE_EMIS_RES='0.5x0.625' +RUNDIR_OFFLINE_EMIS_LAT_RES='05' + +RUNDIR_METLIGHTNING='MERRA2' +RUNDIR_METLIGHTNING_DIR="${RUNDIR_DATA_ROOT}/0.5x0.625/MERRA2" +RUNDIR_METLIGHTNING_RES='0.5x0.625' +RUNDIR_LIGHTNOX_CLIM=true +RUNDIR_MET_LCLIM='1980-2019' + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS=""" + +${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION} + +#------------------------------------------------------- +# --- 1-hr time-averaged, 2D --- +#------------------------------------------------------- + +EFLUX W_m-2 N Y F0;003000 none none EFLUX ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +EVAP kg_m-2_s-1 N Y F0;003000 none none EVAP ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +FRSEAICE 1 N Y F0;003000 none none FRSEAICE ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +HFLUX W_m-2 N Y F0;003000 none none HFLUX ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PBLH m N Y F0;003000 none none PBLH ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECANV kg_m-2_s-1 N Y F0;003000 none none PRECANV ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECCON kg_m-2_s-1 N Y F0;003000 none none PRECCON ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECLSC kg_m-2_s-1 N Y F0;003000 none none PRECLSC ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECSNO kg_m-2_s-1 N Y F0;003000 none none PRECSNO ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECTOT kg_m-2_s-1 N Y F0;003000 none none PRECTOT ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +USTAR m_s-1 N Y F0;003000 none none USTAR ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +Z0 m N Y F0;003000 none none Z0M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 + +FRSNO 1 N Y F0;003000 none none FRSNO ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +GRN 1 N Y F0;003000 none none GRN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +GWETROOT 1 N Y F0;003000 none none GWETROOT ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +GWETTOP 1 N Y F0;003000 none none GWETTOP ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +LAI 1 N Y F0;003000 none none LAI ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PARDF W_m-2 N Y F0;003000 none none PARDF ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PARDR W_m-2 N Y F0;003000 none none PARDR ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +SNODP m N Y F0;003000 none none SNODP ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +SNOMAS kg_m-2 N Y F0;003000 none none SNOMAS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 + +ALBD 1 N Y F0;003000 none none ALBEDO ./MetDir/%y4/%m2/%d2/GEOS.it.asm.rad_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +CLDFRC 1 N Y F0;003000 none none CLDTOT ./MetDir/%y4/%m2/%d2/GEOS.it.asm.rad_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +RADSWG W_m-2 N Y F0;003000 none none SWGDN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.rad_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 + +QV2M kg_kg-1 N Y F0;003000 none none QV2M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +SLP Pa N Y F0;003000 none 0.01 SLP ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +TS K N Y F0;003000 none none T2M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +TO3 Dobsons N Y F0;003000 none none TO3 ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +TROPP Pa N Y F0;003000 none 0.01 TROPPT ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +TSKIN K N Y F0;003000 none none TS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +U10M m_s-1 N Y F0;003000 none none U10M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +V10M m_s-1 N Y F0;003000 none none V10M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_C180x180x6_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 + +# SEAICE[0-9]0 bins not used except in Hg simulation + +SEAICE00 1 N Y F0;003000 none none SEAICE00 /dev/null +SEAICE10 1 N Y F0;003000 none none SEAICE10 /dev/null +SEAICE20 1 N Y F0;003000 none none SEAICE20 /dev/null +SEAICE30 1 N Y F0;003000 none none SEAICE30 /dev/null +SEAICE40 1 N Y F0;003000 none none SEAICE40 /dev/null +SEAICE50 1 N Y F0;003000 none none SEAICE50 /dev/null +SEAICE60 1 N Y F0;003000 none none SEAICE60 /dev/null +SEAICE70 1 N Y F0;003000 none none SEAICE70 /dev/null +SEAICE80 1 N Y F0;003000 none none SEAICE80 /dev/null +SEAICE90 1 N Y F0;003000 none none SEAICE90 /dev/null + +#------------------------------------------------------- +# --- 3-hr instantaneous (all 3D) --- +#------------------------------------------------------- + +TMPU1 K N Y 0 none none T ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 +TMPU2 K N Y 0;001000 none none T ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 + +#------------------------------------------------------- +# --- 3-hr time-averaged (all 3D) --- +#------------------------------------------------------- + +CLDF 1 N Y F0;013000 none none CLOUD ./MetDir/%y4/%m2/%d2/GEOS.it.asm.rad_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +DTRAIN kg_m-2_s-1 N Y F0;013000 none none DTRAIN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.cld_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +TAUCLI 1 N Y F0;013000 none none TAUCLI ./MetDir/%y4/%m2/%d2/GEOS.it.asm.cld_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +TAUCLW 1 N Y F0;013000 none none TAUCLW ./MetDir/%y4/%m2/%d2/GEOS.it.asm.cld_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +OMEGA Pa_s-1 N Y F0;013000 none none OMEGA ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +QI kg_kg-1 N Y F0;013000 none none QI ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +QL kg_kg-1 N Y F0;013000 none none QL ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +RH 1 N Y F0;013000 none none RH ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +DQRCU kg_kg-1_s-1 N Y F0;013000 none none DQRCU ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +DQRLSAN kg_kg-1_s-1 N Y F0;013000 none none DQRLSAN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +REEVAPCN kg_kg-1_s-1 N Y F0;013000 none none REEVAPCN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +REEVAPLS kg_kg-1_s-1 N Y F0;013000 none none REEVAPLSAN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +CMFMC kg_m-2_s-1 N Y F0;013000 none none CMFMC ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_C180x180x6_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PFICU kg_m-2_s-1 N Y F0;013000 none none PFICU ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_C180x180x6_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PFILSAN kg_m-2_s-1 N Y F0;013000 none none PFILSAN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_C180x180x6_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PFLCU kg_m-2_s-1 N Y F0;013000 none none PFLCU ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_C180x180x6_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PFLLSAN kg_m-2_s-1 N Y F0;013000 none none PFLLSAN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_C180x180x6_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +#------------------------------------------------------- +# --- Fixed variables, from constants file --- +#------------------------------------------------------- + +FRLAKE 1 N Y - none none FRLAKE ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_C180x180x6_slv.GEOS5294.1998-01-01T0000.V01.nc4 +FRLAND 1 N Y - none none FRLAND ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_C180x180x6_slv.GEOS5294.1998-01-01T0000.V01.nc4 +FRLANDIC 1 N Y - none none FRLANDICE ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_C180x180x6_slv.GEOS5294.1998-01-01T0000.V01.nc4 +FROCEAN 1 N Y - none none FROCEAN ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_C180x180x6_slv.GEOS5294.1998-01-01T0000.V01.nc4 +PHIS m2_s-2 N Y - none none PHIS ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_C180x180x6_slv.GEOS5294.1998-01-01T0000.V01.nc4 +OCEAN_MASK 1 N Y - none none FROCEAN ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_C180x180x6_slv.GEOS5294.1998-01-01T0000.V01.nc4 + +""" + +RUNDIR_MET_EXTDATA_DERIVED_EXPORTS=""" +OPTDEP TAUCLI+TAUCLW 0 +""" diff --git a/run/shared/settings/geosit/geosit.raw_ll.txt b/run/shared/settings/geosit/geosit.raw_ll.txt new file mode 100644 index 000000000..1458f80e2 --- /dev/null +++ b/run/shared/settings/geosit/geosit.raw_ll.txt @@ -0,0 +1,129 @@ +RUNDIR_MET='GEOSIT' +RUNDIR_MET_LOWERCASE='geosit' +RUNDIR_MET_DIR="${RUNDIR_DATA_ROOT}/GEOS_${RUNDIR_GRID_DIR}/GEOS_IT" +RUNDIR_MET_DIR_RAW="${RUNDIR_DATA_ROOT}/GEOS_0.5x0.625/GEOS_IT_Raw" + +RUNDIR_METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN=.true. +RUNDIR_MET_RES='05x0625' +RUNDIR_MET_EXT='nc4' + +RUNDIR_MET_CN_YR=Y1998 +RUNDIR_MET_CN_MO=M01 +RUNDIR_MET_PRES_UNIT='hPa' +RUNDIR_MET_PRES_SCALE='1.0' + +RUNDIR_OFFLINE_EMIS_RES='0.5x0.625' +RUNDIR_OFFLINE_EMIS_LAT_RES='05' + +RUNDIR_METLIGHTNING='MERRA2' +RUNDIR_METLIGHTNING_DIR="${RUNDIR_DATA_ROOT}/0.5x0.625/MERRA2" +RUNDIR_METLIGHTNING_RES='0.5x0.625' +RUNDIR_LIGHTNOX_CLIM=true +RUNDIR_MET_LCLIM='1980-2019' + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS=""" + +${RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION} + +#------------------------------------------------------- +# --- 1-hr time-averaged, 2D --- +#------------------------------------------------------- + +EFLUX W_m-2 N Y F0;003000 none none EFLUX ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +EVAP kg_m-2_s-1 N Y F0;003000 none none EVAP ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +FRSEAICE 1 N Y F0;003000 none none FRSEAICE ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +HFLUX W_m-2 N Y F0;003000 none none HFLUX ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PBLH m N Y F0;003000 none none PBLH ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECANV kg_m-2_s-1 N Y F0;003000 none none PRECANV ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECCON kg_m-2_s-1 N Y F0;003000 none none PRECCON ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECLSC kg_m-2_s-1 N Y F0;003000 none none PRECLSC ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECSNO kg_m-2_s-1 N Y F0;003000 none none PRECSNO ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PRECTOT kg_m-2_s-1 N Y F0;003000 none none PRECTOT ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +USTAR m_s-1 N Y F0;003000 none none USTAR ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +Z0 m N Y F0;003000 none none Z0M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.flx_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 + +FRSNO 1 N Y F0;003000 none none FRSNO ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +GRN 1 N Y F0;003000 none none GRN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +GWETROOT 1 N Y F0;003000 none none GWETROOT ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +GWETTOP 1 N Y F0;003000 none none GWETTOP ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +LAI 1 N Y F0;003000 none none LAI ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PARDF W_m-2 N Y F0;003000 none none PARDF ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PARDR W_m-2 N Y F0;003000 none none PARDR ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +SNODP m N Y F0;003000 none none SNODP ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +SNOMAS kg_m-2 N Y F0;003000 none none SNOMAS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.lnd_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 + +ALBD 1 N Y F0;003000 none none ALBEDO ./MetDir/%y4/%m2/%d2/GEOS.it.asm.rad_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +CLDFRC 1 N Y F0;003000 none none CLDTOT ./MetDir/%y4/%m2/%d2/GEOS.it.asm.rad_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +RADSWG W_m-2 N Y F0;003000 none none SWGDN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.rad_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 + +QV2M kg_kg-1 N Y F0;003000 none none QV2M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +SLP Pa N Y F0;003000 none 0.01 SLP ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +TS K N Y F0;003000 none none T2M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +TO3 Dobsons N Y F0;003000 none none TO3 ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +TROPP Pa N Y F0;003000 none 0.01 TROPPT ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +TSKIN K N Y F0;003000 none none TS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +U10M m_s-1 N Y F0;003000 none none U10M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +V10M m_s-1 N Y F0;003000 none none V10M ./MetDir/%y4/%m2/%d2/GEOS.it.asm.slv_tavg_1hr_glo_L576x361_slv.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 + +# SEAICE[0-9]0 bins not used except in Hg simulation + +SEAICE00 1 N Y F0;003000 none none SEAICE00 /dev/null +SEAICE10 1 N Y F0;003000 none none SEAICE10 /dev/null +SEAICE20 1 N Y F0;003000 none none SEAICE20 /dev/null +SEAICE30 1 N Y F0;003000 none none SEAICE30 /dev/null +SEAICE40 1 N Y F0;003000 none none SEAICE40 /dev/null +SEAICE50 1 N Y F0;003000 none none SEAICE50 /dev/null +SEAICE60 1 N Y F0;003000 none none SEAICE60 /dev/null +SEAICE70 1 N Y F0;003000 none none SEAICE70 /dev/null +SEAICE80 1 N Y F0;003000 none none SEAICE80 /dev/null +SEAICE90 1 N Y F0;003000 none none SEAICE90 /dev/null + +#------------------------------------------------------- +# --- 3-hr instantaneous (all 3D) --- +#------------------------------------------------------- + +TMPU1 K N Y 0 none none T ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 +TMPU2 K N Y 0;001000 none none T ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 + +#------------------------------------------------------- +# --- 3-hr time-averaged (all 3D) --- +#------------------------------------------------------- + +CLDF 1 N Y F0;013000 none none CLOUD ./MetDir/%y4/%m2/%d2/GEOS.it.asm.rad_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +DTRAIN kg_m-2_s-1 N Y F0;013000 none none DTRAIN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.cld_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +TAUCLI 1 N Y F0;013000 none none TAUCLI ./MetDir/%y4/%m2/%d2/GEOS.it.asm.cld_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +TAUCLW 1 N Y F0;013000 none none TAUCLW ./MetDir/%y4/%m2/%d2/GEOS.it.asm.cld_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +OMEGA Pa_s-1 N Y F0;013000 none none OMEGA ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +QI kg_kg-1 N Y F0;013000 none none QI ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +QL kg_kg-1 N Y F0;013000 none none QL ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +RH 1 N Y F0;013000 none none RH ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +DQRCU kg_kg-1_s-1 N Y F0;013000 none none DQRCU ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +DQRLSAN kg_kg-1_s-1 N Y F0;013000 none none DQRLSAN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +REEVAPCN kg_kg-1_s-1 N Y F0;013000 none none REEVAPCN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +REEVAPLS kg_kg-1_s-1 N Y F0;013000 none none REEVAPLSAN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +CMFMC kg_m-2_s-1 N Y F0;013000 none none CMFMC ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_L576x361_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PFICU kg_m-2_s-1 N Y F0;013000 none none PFICU ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_L576x361_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PFILSAN kg_m-2_s-1 N Y F0;013000 none none PFILSAN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_L576x361_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PFLCU kg_m-2_s-1 N Y F0;013000 none none PFLCU ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_L576x361_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PFLLSAN kg_m-2_s-1 N Y F0;013000 none none PFLLSAN ./MetDir/%y4/%m2/%d2/GEOS.it.asm.mst_tavg_3hr_glo_L576x361_v73.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 + +#------------------------------------------------------- +# --- Fixed variables, from constants file --- +#------------------------------------------------------- + +FRLAKE 1 N Y - none none FRLAKE ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_L576x361_slv.GEOS5294.1998-01-01T0000.V01.nc4 +FRLAND 1 N Y - none none FRLAND ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_L576x361_slv.GEOS5294.1998-01-01T0000.V01.nc4 +FRLANDIC 1 N Y - none none FRLANDICE ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_L576x361_slv.GEOS5294.1998-01-01T0000.V01.nc4 +FROCEAN 1 N Y - none none FROCEAN ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_L576x361_slv.GEOS5294.1998-01-01T0000.V01.nc4 +PHIS m2_s-2 N Y - none none PHIS ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_L576x361_slv.GEOS5294.1998-01-01T0000.V01.nc4 +OCEAN_MASK 1 N Y - none none FROCEAN ./MetDir/1998/01/01/GEOS.it.asm.asm_const_0hr_glo_L576x361_slv.GEOS5294.1998-01-01T0000.V01.nc4 + +""" + +RUNDIR_MET_EXTDATA_DERIVED_EXPORTS=""" +OPTDEP TAUCLI+TAUCLW 0 +""" diff --git a/run/shared/settings/geosit/geosit.raw_mass_flux.txt b/run/shared/settings/geosit/geosit.raw_mass_flux.txt new file mode 100644 index 000000000..50beb22a9 --- /dev/null +++ b/run/shared/settings/geosit/geosit.raw_mass_flux.txt @@ -0,0 +1,19 @@ +RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.true. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" + +#-------------------------------------- +# --- Meteorology used in advection --- +#-------------------------------------- + +# Cubed-sphere 1-hourly mass fluxes +UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +MFXC;MFYC Pa_m+2_s-1 N H F0;003000 none 0.6666666 MFXC;MFYC ./MetDir/%y4/%m2/%d2/GEOS.it.asm.ctm_tavg_1hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +CXC;CYC 1 N H F0;003000 none none CX;CY ./MetDir/%y4/%m2/%d2/GEOS.it.asm.ctm_tavg_1hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:30:00P01:00 +PS1 Pa N Y 0 none 0.01 PS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.ctm_inst_1hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P01:00 +PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.ctm_inst_1hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P01:00 +SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/%y4/%m2/%d2/GEOS.it.asm.ctm_inst_1hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P01:00 +SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/%y4/%m2/%d2/GEOS.it.asm.ctm_inst_1hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P01:00 + +""" diff --git a/run/shared/settings/geosit/geosit.raw_wind_cs.txt b/run/shared/settings/geosit/geosit.raw_wind_cs.txt new file mode 100644 index 000000000..72b63563d --- /dev/null +++ b/run/shared/settings/geosit/geosit.raw_wind_cs.txt @@ -0,0 +1,17 @@ +RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" + +#-------------------------------------- +# --- Meteorology used in advection --- +#-------------------------------------- + +# Cubed-sphere 3-hourly winds +UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PS1 Pa N Y 0 none 0.01 PS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 +PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 +SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 +SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_C180x180x6_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 + +""" diff --git a/run/shared/settings/geosit/geosit.raw_wind_ll.txt b/run/shared/settings/geosit/geosit.raw_wind_ll.txt new file mode 100644 index 000000000..07794c41a --- /dev/null +++ b/run/shared/settings/geosit/geosit.raw_wind_ll.txt @@ -0,0 +1,17 @@ +RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 + +RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" + +#-------------------------------------- +# --- Meteorology used in advection --- +#-------------------------------------- + +# Cubed-sphere 3-hourly winds +UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_tavg_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T01:30:00P03:00 +PS1 Pa N Y 0 none 0.01 PS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 +PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 +SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 +SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/%y4/%m2/%d2/GEOS.it.asm.asm_inst_3hr_glo_L576x361_v72.GEOS5294.%y4-%m2-%d2T%h2%n2.V01.nc4 1995-01-01T00:00:00P03:00 + +""" diff --git a/run/shared/settings/gmao_hemco.txt b/run/shared/settings/gmao_hemco.txt index 6dbd268cb..80c598f92 100644 --- a/run/shared/settings/gmao_hemco.txt +++ b/run/shared/settings/gmao_hemco.txt @@ -11,45 +11,45 @@ RUNDIR_GCAP2_VERTRES='47' RUNDIR_Bry_DIR='STRAT/v2015-01/Bry' RUNDIR_GMI_DIR='GMI/v2015-02' RUNDIR_UCX_DIR='UCX/v2018-02' -RUNDIR_GLOBAL_ACTA='* GLOBAL_ACTA $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_ACTA 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_Br_GC='* Br_GC $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_Br 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_BrO_GC='* BrO_GC $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_BrO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_ACTA='* GLOBAL_ACTA $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_ACTA 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_Br_GC='* Br_GC $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_Br 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_BrO_GC='* BrO_GC $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_BrO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_CH4='* GLOBAL_CH4 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_CH4 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_Cl='* GLOBAL_Cl $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_Cl 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_ClO='* GLOBAL_ClO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_ClO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_CO='* GLOBAL_CO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_CO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_HCl='* GLOBAL_HCl $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_HCl 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_HCOOH='* GLOBAL_HCOOH $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_HCOOH 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_HNO3='* GLOBAL_HNO3 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_HNO3 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_HO2='* GLOBAL_HO2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_HO2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_HOCl='* GLOBAL_HOCl $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_HOCl 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_NIT='* GLOBAL_NIT $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_NIT 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_NO='* GLOBAL_NO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_NO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_NO2='* GLOBAL_NO2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_NO2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_NO3='* GLOBAL_NO3 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_NO3 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_O3='* GLOBAL_O3 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_O3 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_OH='* GLOBAL_OH $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_OH 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_PM25='* GLOBAL_PM25 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.AerosolMass.$YYYY$MM$DD_0000z.nc4 PM25 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_AERO_SO4='* AERO_SO4 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_SO4 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_AERO_NH4='* AERO_NH4 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_NH4 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_AERO_NIT='* AERO_NIT $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_NIT 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_AERO_BCPI='* AERO_BCPI $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_BCPI 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_AERO_BCPO='* AERO_BCPO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_BCPO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_AERO_OCPI='* AERO_OCPI $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_OCPI 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_AERO_OCPO='* AERO_OCPO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_OCPO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_AERO_DST1='* AERO_DST1 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM$DD_0000z.nc4 SpeciesConc_DST1 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_GLOBAL_OA='* GLOBAL_OA $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.AerosolMass.$YYYY$MM$DD_0000z.nc4 TotalOA 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_PCO_CH4='* PCO_CH4 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.ProdLoss.$YYYY$MM$DD_0000z.nc4 ProdCOfromCH4 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_PCO_NMVOC='* PCO_NMVOC $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.ProdLoss.$YYYY$MM$DD_0000z.nc4 ProdCOfromNMVOC 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_PH2O2='* PH2O2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.ProdLoss.$YYYY$MM$DD_0000z.nc4 Prod_H2O2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_O3_PROD='* O3_PROD $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.ProdLoss.$YYYY$MM$DD_0000z.nc4 Prod_Ox 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_O3_LOSS='* O3_LOSS $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.ProdLoss.$YYYY$MM$DD_0000z.nc4 Loss_Ox 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_JBrO='* JBrO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.JValues.$YYYY$MM$DD_0000z.nc4 Jval_BrO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_JH2O2='* JH2O2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.JValues.$YYYY$MM$DD_0000z.nc4 Jval_H2O2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_JNO2='* JNO2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.JValues.$YYYY$MM$DD_0000z.nc4 Jval_NO2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_CH4_LOSS='* CH4_LOSS $ROOT/CH4/v2022-11/4x5/gmi.ch4loss.geos5_47L.4x5.nc CH4loss 1985/1-12/1/0 C xyz s-1 * - 1 1' -RUNDIR_CO2_COPROD='* CO2_COPROD $ROOT/CO2/v2022-11/CHEM/CO2_prod_rates.GEOS5.2x25.47L.nc LCO 2004-2009/1-12/1/0 C xyz kgC/m3/s * - 1 1' +RUNDIR_GLOBAL_CH4='* GLOBAL_CH4 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_CH4 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_Cl='* GLOBAL_Cl $ROOT/CH4/v2024-01/GCC_14_Output/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_Cl 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_ClO='* GLOBAL_ClO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_ClO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_CO='* GLOBAL_CO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_CO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_HCl='* GLOBAL_HCl $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_HCl 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_HCOOH='* GLOBAL_HCOOH $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_HCOOH 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_HNO3='* GLOBAL_HNO3 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_HNO3 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_HO2='* GLOBAL_HO2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_HO2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_HOCl='* GLOBAL_HOCl $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_HOCl 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_NIT='* GLOBAL_NIT $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_NIT 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_NO='* GLOBAL_NO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_NO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_NO2='* GLOBAL_NO2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_NO2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_NO3='* GLOBAL_NO3 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_NO3 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_O3='* GLOBAL_O3 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_O3 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_OH='* GLOBAL_OH $ROOT/CH4/v2024-01/GCC_14_Output/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_OH 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_PM25='* GLOBAL_PM25 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.AerosolMass.$YYYY$MM01_0000z.nc4 PM25 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_AERO_SO4='* AERO_SO4 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_SO4 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_AERO_NH4='* AERO_NH4 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_NH4 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_AERO_NIT='* AERO_NIT $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_NIT 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_AERO_BCPI='* AERO_BCPI $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_BCPI 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_AERO_BCPO='* AERO_BCPO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_BCPO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_AERO_OCPI='* AERO_OCPI $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_OCPI 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_AERO_OCPO='* AERO_OCPO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_OCPO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_AERO_DST1='* AERO_DST1 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.SpeciesConc.$YYYY$MM01_0000z.nc4 SpeciesConc_DST1 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_GLOBAL_OA='* GLOBAL_OA $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.AerosolMass.$YYYY$MM01_0000z.nc4 TotalOA 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_PCO_CH4='* PCO_CH4 $ROOT/CH4/v2024-01/GCC_14_Output/$YYYY/GEOSChem.ProdLoss.$YYYY$MM01_0000z.nc4 ProdCOfromCH4 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_PCO_NMVOC='* PCO_NMVOC $ROOT/CH4/v2024-01/GCC_14_Output/$YYYY/GEOSChem.ProdLoss.$YYYY$MM01_0000z.nc4 ProdCOfromNMVOC 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_PH2O2='* PH2O2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.ProdLoss.$YYYY$MM01_0000z.nc4 Prod_H2O2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_O3_PROD='* O3_PROD $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.ProdLoss.$YYYY$MM01_0000z.nc4 Prod_Ox 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_O3_LOSS='* O3_LOSS $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.ProdLoss.$YYYY$MM01_0000z.nc4 Loss_Ox 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_JBrO='* JBrO $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.JValues.$YYYY$MM01_0000z.nc4 Jval_BrO 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_JH2O2='* JH2O2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.JValues.$YYYY$MM01_0000z.nc4 Jval_H2O2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_JNO2='* JNO2 $ROOT/GCClassic_Output/14.0.0/$YYYY/GEOSChem.JValues.$YYYY$MM01_0000z.nc4 Jval_NO2 2010-2019/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_CH4_LOSS='* CH4_LOSS $ROOT/CH4/v2024-01/GC_CH4_LOSS/GCC14_72LM.ch4loss.4x5.nc4 CH4loss 1985/1-12/1/0 C xyz s-1 * - 1 1' +RUNDIR_CO2_COPROD='* CO2_COPROD $ROOT/CO2/v2024-01/CHEM/CO2_prod_rates.GEOS5.2x25.72L.nc LCO 2004-2009/1-12/1/0 C xyz kgC/m3/s * - 1 1' RUNDIR_Br_TOMCAT='* Br_TOMCAT $ROOT/MERCURY/v2014-09/BrOx/BrOx.GMI.geos5.2x25.nc LBRO2N 1985/1-12/1/0 C xyz pptv * - 1 1' RUNDIR_BrO_TOMCAT='* BrO_TOMCAT $ROOT/MERCURY/v2014-09/BrOx/BrOx.GMI.geos5.2x25.nc LBRO2H 1985/1-12/1/0 C xyz pptv * - 1 1' RUNDIR_GLOBAL_OC='1002 GLOBAL_OC $ROOT/POPs/v2015-08/OCPO.$met.$RES.nc OCPO 2005-2009/1-12/1/0 C xyz 1 * - 1 1' @@ -77,7 +77,7 @@ RUNDIR_Hg_GLOBAL_NO2='* GLOBAL_NO2 $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_ RUNDIR_Hg_GLOBAL_O3='* GLOBAL_O3 $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 O3 2016/1-12/1/0 C xyz 1 * - 1 1' RUNDIR_Hg_GLOBAL_OH='* GLOBAL_OH $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 OH 2016/1-12/1/0 C xyz 1 * - 1 1' RUNDIR_Hg_GLOBAL_fOA='* GLOBAL_fOA $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 fOA 2016/1-12/1/0 C xyz 1 * - 1 1' -RUNDIR_Hg_GLOBAL_OCEAN='* GLOBAL_OCEAN $ROOT/MERCURY/v2018-04/ocean_fixed.nc ocean_conc 2007/1-12/1/0 C xyz 1 * - 1 1' +RUNDIR_Hg_GLOBAL_OCEAN='* GLOBAL_OCEAN $ROOT/MERCURY/v2018-04/ocean_fixed.nc ocean_conc 2007/1-12/1/0 C xy 1 * - 1 1' RUNDIR_Hg_GLOBAL_PM25='* GLOBAL_PM25 $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 PM25 2016/1-12/1/0 C xyz 1 * - 1 1' RUNDIR_Hg_GLOBAL_RH='* GLOBAL_RH $ROOT/MERCURY/v2022-04/Oxidants_for_Hg_sim_2016.nc4 RH 2016/1-12/1/0 C xyz 1 * - 1 1' RUNDIR_Hg_GLOBAL_AOD_BC='* AOD_BC $ROOT/MERCURY/v2022-04/Aerosols_for_Hg_sim_2016.nc4 AOD_BC 2016/1-12/1/0 C xyz 1 * - 1 1' diff --git a/run/shared/settings/merra2.txt b/run/shared/settings/merra2.txt index 7bd22e404..5625aa0df 100644 --- a/run/shared/settings/merra2.txt +++ b/run/shared/settings/merra2.txt @@ -1,12 +1,13 @@ RUNDIR_MET='MERRA2' RUNDIR_MET_LOWERCASE='merra2' RUNDIR_MET_DIR="${RUNDIR_DATA_ROOT}/GEOS_${RUNDIR_GRID_DIR}/MERRA2" -RUNDIR_MET_DIR_NATIVE="${RUNDIR_DATA_ROOT}/GEOS_0.5x0.625/MERRA2" +RUNDIR_MET_DIR_RAW="${RUNDIR_DATA_ROOT}/GEOS_0.5x0.625/MERRA2" +RUNDIR_USE_TOTAL_AIR_PRESSURE_IN_ADVECTION=0 RUNDIR_METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN=.false. RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. RUNDIR_MET_RES='05x0625' -RUNDIR_MET_NATIVE_RES='0.5x0.625' +RUNDIR_MET_RAW_RES='0.5x0.625' RUNDIR_MET_LAT_RES='05' RUNDIR_MET_LON_RES='0625' RUNDIR_MET_EXT='nc4' @@ -15,8 +16,17 @@ RUNDIR_MET_CN_YR=2015 RUNDIR_MET_PRES_UNIT='Pa ' RUNDIR_MET_PRES_SCALE='0.01' +RUNDIR_METLIGHTNING='MERRA2' +RUNDIR_METLIGHTNING_DIR="${RUNDIR_DATA_ROOT}/GEOS_0.5x0.625/MERRA2" +RUNDIR_METLIGHTNING_RES='0.5x0.625' +RUNDIR_LIGHTNOX_CLIM=false +RUNDIR_MET_LCLIM='1980-2019' + +RUNDIR_OFFLINE_EMIS_RES='0.5x0.625' +RUNDIR_OFFLINE_EMIS_LAT_RES='05' + RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS=""" -# + # --- 2D variables, 1-hr averaged --- ALBD 1 N Y F0;003000 none none ALBEDO ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 CLDFRC 1 N Y F0;003000 none none CLDTOT ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 @@ -29,7 +39,6 @@ GWETROOT 1 N Y F0;003000 none none GWETROOT ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1 GWETTOP 1 N Y F0;003000 none none GWETTOP ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 HFLUX 1 N Y F0;003000 none none HFLUX ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 LAI 1 N Y F0;003000 none none LAI ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 -RADLWG 1 N Y F0;003000 none none LWGNT ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 PARDF 1 N Y F0;003000 none none PARDF ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 PARDR 1 N Y F0;003000 none none PARDR ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 PBLH 1 N Y F0;003000 none none PBLH ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 @@ -49,37 +58,37 @@ SEAICE60 1 N Y F0;003000 none none SEAICE60 ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1 SEAICE70 1 N Y F0;003000 none none SEAICE70 ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 SEAICE80 1 N Y F0;003000 none none SEAICE80 ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 SEAICE90 1 N Y F0;003000 none none SEAICE90 ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 -# + SLP Pa N Y F0;003000 none 0.01 SLP ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 -# + SNODP 1 N Y F0;003000 none none SNODP ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 SNOMAS 1 N Y F0;003000 none none SNOMAS ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 RADSWG 1 N Y F0;003000 none none SWGDN ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 -# + TO3 dobson N Y F0;003000 none none TO3 ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 -# + TROPP Pa N Y F0;003000 none 0.01 TROPPT ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 -# + TSKIN 1 N Y F0;003000 none none TS ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 TS 1 N Y F0;003000 none none T2M ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 USTAR 1 N Y F0;003000 none none USTAR ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 -# + U10M m_s-1 N Y F0;003000 none none U10M ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 V10M m_s-1 N Y F0;003000 none none V10M ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 -# + Z0 1 N Y F0;003000 none none Z0M ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A1.05x0625.nc4 -# + # --- Surface pressure, 3-hr instantaneous --- PS1 Pa N Y 0 none 0.01 PS ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.I3.05x0625.nc4 PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.I3.05x0625.nc4 -# + # --- 3D variables, 3-hr instantaneous --- SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.I3.05x0625.nc4 SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.I3.05x0625.nc4 -# + TMPU1 K N Y 0 none none T ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.I3.05x0625.nc4 TMPU2 K N Y 0;001000 none none T ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.I3.05x0625.nc4 -# + # --- 3D variables, 3-hr averaged --- QI 1 N Y F0;013000 none none QI ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3cld.05x0625.nc4 QL 1 N Y F0;013000 none none QL ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3cld.05x0625.nc4 @@ -88,13 +97,13 @@ TAUCLW 1 N Y F0;013000 none none TAUCLW ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3cl OPTDEP 1 N Y F0;013000 none none OPTDEPTH ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3cld.05x0625.nc4 CLDF 1 N Y F0;013000 none none CLOUD ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3cld.05x0625.nc4 DTRAIN 1 N Y F0;013000 none none DTRAIN ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3dyn.05x0625.nc4 -# + OMEGA Pa_s-1 N Y F0;013000 none none OMEGA ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3dyn.05x0625.nc4 -# + RH - N Y F0;013000 none none RH ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3dyn.05x0625.nc4 -# + UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3dyn.05x0625.nc4 -# + DQRCU 1 N Y F0;013000 none none DQRCU ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3mstC.05x0625.nc4 DQRLSAN 1 N Y F0;013000 none none DQRLSAN ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3mstC.05x0625.nc4 REEVAPCN 1 N Y F0;013000 none none REEVAPCN ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3mstC.05x0625.nc4 @@ -104,7 +113,7 @@ PFICU 1 N Y F0;013000 none none PFICU ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3 PFILSAN 1 N Y F0;013000 none none PFILSAN ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3mstE.05x0625.nc4 PFLCU 1 N Y F0;013000 none none PFLCU ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3mstE.05x0625.nc4 PFLLSAN 1 N Y F0;013000 none none PFLLSAN ./MetDir/%y4/%m2/MERRA2.%y4%m2%d2.A3mstE.05x0625.nc4 -# + # --- Fixed variables, from constants file --- FRLAKE 1 N Y - none none FRLAKE ./MetDir/2015/01/MERRA2.20150101.CN.05x0625.nc4 FRLAND 1 N Y - none none FRLAND ./MetDir/2015/01/MERRA2.20150101.CN.05x0625.nc4 @@ -112,6 +121,9 @@ FRLANDIC 1 N Y - none none FRLANDIC ./MetDir/2015/01/MERRA2.20150101.CN.05x0625. FROCEAN 1 N Y - none none FROCEAN ./MetDir/2015/01/MERRA2.20150101.CN.05x0625.nc4 # PHIS m2_s-2 N Y - none none PHIS ./MetDir/2015/01/MERRA2.20150101.CN.05x0625.nc4 + +# Also include FROCEAN with name OCEAN_MASK to match HEMCO container name for ocean mask +OCEAN_MASK 1 N Y - none none FROCEAN ./MetDir/2015/01/MERRA2.20150101.CN.05x0625.nc4 """ RUNDIR_MET_EXTDATA_DERIVED_EXPORTS=""" diff --git a/run/shared/settings/native_geosfp_mass_flux.txt b/run/shared/settings/native_geosfp_mass_flux.txt deleted file mode 100644 index 8745d013d..000000000 --- a/run/shared/settings/native_geosfp_mass_flux.txt +++ /dev/null @@ -1,11 +0,0 @@ -RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.true. - -RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" -MFXC;MFYC Pa_m+2_s-1 N H F0;003000 none 0.6666666 MFXC;MFYC ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:30:00P01:00 -CXC;CYC 1 N H F0;003000 none none CX;CY ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:30:00P01:00 -PS1 Pa N Y 0 none 0.01 PS ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:00:00P01:00 -PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:00:00P01:00 -SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:00:00P01:00 -SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:00:00P01:00 -UA;VA m_s-1 N Y F0;013000 none none U;V ./MetDir/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg3_3d_asm_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-11T01:30:00P03:00 -""" diff --git a/run/shared/settings/native_geosfp_mass_flux_derived_wind.txt b/run/shared/settings/native_geosfp_mass_flux_derived_wind.txt deleted file mode 100644 index 217341239..000000000 --- a/run/shared/settings/native_geosfp_mass_flux_derived_wind.txt +++ /dev/null @@ -1,9 +0,0 @@ -RUNDIR_IMPORT_MASS_FLUX_FROM_EXTDATA=.false. - -RUNDIR_MET_EXTDATA_PRIMARY_EXPORTS_FOR_ADVECTION=""" -UA;VA m_s-1 N Y F0;003000 none none UA;VA ./MetDir/../../GEOS_C720/GEOS_FP_DerivedWind/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg_1hr_ctmwind_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2021-03-11T00:30:00P01:00 -PS1 Pa N Y 0 none 0.01 PS ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-20T00:00:00P01:00 -PS2 Pa N Y 0;001000 none 0.01 PS ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-20T00:00:00P01:00 -SPHU1 kg_kg-1 N Y 0 none none QV ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-20T00:00:00P01:00 -SPHU2 kg_kg-1 N Y 0;001000 none none QV ./MetDir/../../GEOS_C720/GEOS_FP_Native/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst_1hr_ctm_c0720_v72.%y4%m2%d2_%h2%n2.V01.nc4 2014-02-20T00:00:00P01:00 -""" diff --git a/run/shared/setupConfigFiles.sh b/run/shared/setupConfigFiles.sh index 6c08f8e27..1db10b6f1 100755 --- a/run/shared/setupConfigFiles.sh +++ b/run/shared/setupConfigFiles.sh @@ -91,10 +91,11 @@ ${NEW_LINE}" function set_common_settings() { # Check that simulation option is passed - if [[ $# == 1 ]]; then - sim_extra_option=${1} + if [[ $# == 2 ]]; then + sim_extra_option="${1}" + model="${2}" else - echo 'Usage: ./setupConfigFiles.sh {sim_extra_option}' + echo 'Usage: ./setupConfigFiles.sh {sim_extra_option} {model}' exit 1 fi @@ -111,6 +112,11 @@ function set_common_settings() { #------------------------------------------------------------------------ if [[ "x${sim_extra_option}" == "xbenchmark" ]]; then + # Change time cycle flag to allow missing species (GCClassic only) + if [[ "x${model}" == "xGCClassic" ]]; then + sed_ie 's|EFYO|CYS|' HEMCO_Config.rc + fi + sed_ie 's|NO 0 3 |NO 104 -1|' HEMCO_Diagn.rc # Use online soil NOx (ExtNr=104) sed_ie 's|SALA 0 3 |SALA 107 -1|' HEMCO_Diagn.rc # Use online sea salt (ExtNr=107) sed_ie 's|SALC 0 3 |SALC 107 -1|' HEMCO_Diagn.rc # " " @@ -150,8 +156,8 @@ function set_common_settings() { [[ ${sim_extra_option} =~ "complexSOA" ]] || \ [[ "x${sim_extra_option}" == "xAPM" ]]; then - # Add complex SOA species ASOA* and ASOG* following ALK4 - prev_line=' - ALK4' + # Add complex SOA species ASOA* and ASOG* following AROMP5 + prev_line=' - AROMP5' new_line='\ - ASOA1\ - ASOA2\ - ASOA3\ @@ -282,7 +288,8 @@ function set_common_settings() { # Remove @ from HISTORY diagnostic fields & uncomment RRTMG collection sed_ie 's|@||' HISTORY.rc sed_ie "s|##'RRTMG'|'RRTMG'|" HISTORY.rc - + sed_ie "s|#'Default|'Default|" HISTORY.rc + # Issue a warning printf "\nWARNING: All RRTMG run options are enabled which will significantly slow down the model!" printf "\nEdit geoschem_config.yml and HISTORY.rc in your new run directory to customize options to only" @@ -294,6 +301,11 @@ function set_common_settings() { #------------------------------------------------------------------------ if [[ ${sim_extra_option} =~ "TOMAS" ]]; then + # Change time cycle flag to allow missing species (GCClassic only) + if [[ "x${model}" == "xGCClassic" ]]; then + sed_ie 's|EFYO|CYS|' HEMCO_Config.rc + fi + # Remove extra species in extension settings for TOMAS15 simulations if [[ "x${sim_extra_option}" == "xTOMAS15" ]]; then sed_ie 's|\/SS16\/SS17\/SS18\/SS19\/SS20\/SS21\/SS22\/SS23\/SS24\/SS25\/SS26\/SS27\/SS28\/SS29\/SS30\/SS31\/SS32\/SS33\/SS34\/SS35\/SS36\/SS37\/SS38\/SS39\/SS40||' HEMCO_Config.rc @@ -303,135 +315,135 @@ function set_common_settings() { # Add TOMAS species for the first 15 bins following XYLE prev_line=' - XYLE' new_line='\ - H2SO4\ - - NK1\ - - NK2\ - - NK3\ - - NK4\ - - NK5\ - - NK6\ - - NK7\ - - NK8\ - - NK9\ + - NK01\ + - NK02\ + - NK03\ + - NK04\ + - NK05\ + - NK06\ + - NK07\ + - NK08\ + - NK09\ - NK10\ - NK11\ - NK12\ - NK13\ - NK14\ - NK15\ - - SF1\ - - SF2\ - - SF3\ - - SF4\ - - SF5\ - - SF6\ - - SF7\ - - SF8\ - - SF9\ + - SF01\ + - SF02\ + - SF03\ + - SF04\ + - SF05\ + - SF06\ + - SF07\ + - SF08\ + - SF09\ - SF10\ - SF11\ - SF12\ - SF13\ - SF14\ - SF15\ - - SS1\ - - SS2\ - - SS3\ - - SS4\ - - SS5\ - - SS6\ - - SS7\ - - SS8\ - - SS9\ + - SS01\ + - SS02\ + - SS03\ + - SS04\ + - SS05\ + - SS06\ + - SS07\ + - SS08\ + - SS09\ - SS10\ - SS11\ - SS12\ - SS13\ - SS14\ - SS15\ - - ECOB1\ - - ECOB2\ - - ECOB3\ - - ECOB4\ - - ECOB5\ - - ECOB6\ - - ECOB7\ - - ECOB8\ - - ECOB9\ + - ECOB01\ + - ECOB02\ + - ECOB03\ + - ECOB04\ + - ECOB05\ + - ECOB06\ + - ECOB07\ + - ECOB08\ + - ECOB09\ - ECOB10\ - ECOB11\ - ECOB12\ - ECOB13\ - ECOB14\ - ECOB15\ - - ECIL1\ - - ECIL2\ - - ECIL3\ - - ECIL4\ - - ECIL5\ - - ECIL6\ - - ECIL7\ - - ECIL8\ - - ECIL9\ + - ECIL01\ + - ECIL02\ + - ECIL03\ + - ECIL04\ + - ECIL05\ + - ECIL06\ + - ECIL07\ + - ECIL08\ + - ECIL09\ - ECIL10\ - ECIL11\ - ECIL12\ - ECIL13\ - ECIL14\ - ECIL15\ - - OCOB1\ - - OCOB2\ - - OCOB3\ - - OCOB4\ - - OCOB5\ - - OCOB6\ - - OCOB7\ - - OCOB8\ - - OCOB9\ + - OCOB01\ + - OCOB02\ + - OCOB03\ + - OCOB04\ + - OCOB05\ + - OCOB06\ + - OCOB07\ + - OCOB08\ + - OCOB09\ - OCOB10\ - OCOB11\ - OCOB12\ - OCOB13\ - OCOB14\ - OCOB15\ - - OCIL1\ - - OCIL2\ - - OCIL3\ - - OCIL4\ - - OCIL5\ - - OCIL6\ - - OCIL7\ - - OCIL8\ - - OCIL9\ + - OCIL01\ + - OCIL02\ + - OCIL03\ + - OCIL04\ + - OCIL05\ + - OCIL06\ + - OCIL07\ + - OCIL08\ + - OCIL09\ - OCIL10\ - OCIL11\ - OCIL12\ - OCIL13\ - OCIL14\ - OCIL15\ - - DUST1\ - - DUST2\ - - DUST3\ - - DUST4\ - - DUST5\ - - DUST6\ - - DUST7\ - - DUST8\ - - DUST9\ + - DUST01\ + - DUST02\ + - DUST03\ + - DUST04\ + - DUST05\ + - DUST06\ + - DUST07\ + - DUST08\ + - DUST09\ - DUST10\ - DUST11\ - DUST12\ - DUST13\ - DUST14\ - DUST15\ - - AW1\ - - AW2\ - - AW3\ - - AW4\ - - AW5\ - - AW6\ - - AW7\ - - AW8\ - - AW9\ + - AW01\ + - AW02\ + - AW03\ + - AW04\ + - AW05\ + - AW06\ + - AW07\ + - AW08\ + - AW09\ - AW10\ - AW11\ - AW12\ @@ -715,8 +727,151 @@ function set_common_settings() { insert_text "${prev_line}" "${new_line}" geoschem_config.yml fi - # Remove the @ from HISTORY.rc diagnostic fields - sed_ie 's/@//' HISTORY.rc + # Remove @ from HISTORY diagnostic fields & uncomment TOMAS collection + sed_ie 's|@||' HISTORY.rc + sed_ie "s|##'Tomas'|'Tomas'|" HISTORY.rc + sed_ie "s|#'Default|'Default|" HISTORY.rc + + # Add TOMAS species + prev_line="'SpeciesConcVV_ACET ', 'GCHPchem'," + new_line=" 'SpeciesConcVV_NK01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW15 ', 'GCHPchem'," + + insert_text "${prev_line}" "${new_line}" HISTORY.rc + fi #------------------------------------------------------------------------ diff --git a/run/shared/singleCarbonSpecies.sh b/run/shared/singleCarbonSpecies.sh new file mode 100755 index 000000000..0e46e3637 --- /dev/null +++ b/run/shared/singleCarbonSpecies.sh @@ -0,0 +1,373 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !IROUTINE: singleCarbonSpecies.sh +# +# !DESCRIPTION: Updates carbon simulation configuration files so that +# a simulation with a single species can be performed. +# +# !CALLING SEQUENCE: +# ./singleCarbonSpecies.sh +# +# !REVISION HISTORY: +# 14 Sep 2023 - R. Yantosca - Initial version +# See the subsequent Git history with the gitk browser! +#EOP +#------------------------------------------------------------------------------ +#BOC + +# List of all advected species in the carbon simulation +ALL_SPECIES=(CO2 CO CH4 OCS) + + +function isItemInList() { + + #========================================================================= + # Test if an item is in a list. + # + # Arguments: + # ${1}: The item + # ${2}: Thie list + # + # Returns (via $?) + # 0 if item is in the list + # 1 if item is not in the list + # + # See stackoverflow.com/questions/8063228/check-if-a-variable-exists-in-a-list-in-bash + #========================================================================= + echo "${2}" | tr ' ' '\n' | grep -F -x -q "${1}" +} + + +function keyValueUpdate() { + + #========================================================================= + # Runs an sed command to update a "key: value" pair in a file + # + # Arguments: + # ${1} : Key + # ${2} : Value + # ${3} : Replacement value + # ${4) : File in which the text is found + #========================================================================= + cmd="s/${1}: ${2}/${1}: ${3}/" + sed -i -e "$cmd" "${4}" +} + + +function speciesToExclude() { + + #======================================================================== + # Returns the list of species to exclude + # + # Arguments: + # ${1} : Species to retain + # + # Returns: + # List of species to exclude + #======================================================================== + + # All species + list=("${ALL_SPECIES[@]}") + + # Keep all species except for the 1st argument + for i in "${!list[@]}"; do + if [[ "x${list[i]}" == "x${1}" ]]; then + unset 'list[i]' + fi + done + + # Print the result (that's how we return strings) + result="" + for spc in "${list[@]}"; do + result+="${spc} " + done + echo $result +} + + +function updateGeosChemConfig() { + + #======================================================================== + # Removes advected species from geoschem_config.yml + # + # Arguments: + # ${1} : List of species to exclude + # ${2} : Path to the run directory + #======================================================================== + + # File to modify + file="${2}/geoschem_config.yml" + + # Remove advected species (use \< and \> for exact match in order + # to prevent inadvertently removing CO2 with when spc is CO. + for spc in ${1}; do + cmd="/\s*\-\s*\<${spc}\>/d" + sed -i -e "${cmd}" "${file}" + done + + # NOTE: CH4 options are already deactivated + # in the out-of-the-box geoschem_config.yml + + # If CO2 is in the exclude list, turn off CO2 options + isItemInList "CO2" "${1}" + if [[ $? == 0 ]]; then + keys=("3D_chemical_oxidation_source" \ + "tag_bio_and_ocean_CO2" \ + "tag_land_fossil_fuel_CO2" ) + for key in ${keys[@]}; do + keyValueUpdate "${key}" "true" "false" "${file}" + done + fi +} + + +function updateHemcoConfig() { + + #======================================================================== + # Removes advected species from geoschem_config.yml + # + # Arguments: + # ${1} : List of species to exclude + # ${2} : Path to the run directory + #======================================================================== + + # File to be modified + file="${2}/HEMCO_Config.rc" + + # True/False values in the HEMCO extension switches section + true=" true" + false=" false" + + # If CO2 is in the exclude list, turn off CO2 options + # NOTE: This must precede CO to avoid unintended deletions + isItemInList "CO2" "${1}" + if [[ $? == 0 ]]; then + key="--> USE_CO2_DATA " + keyValueUpdate "${key}" "${true}" "${false}" "${file}" + fi + + # If CO is in the exclude list, turn off CO options + isItemInList "CO" "${1}" + if [[ $? == 0 ]]; then + key="--> USE_CO_DATA " + keyValueUpdate "${key}" "${true}" "${false}" "${file}" + fi + + # If CH4 is in the exclude list, turn off CH4 options + isItemInList "CH4" "${1}" + if [[ $? == 0 ]]; then + key="--> USE_CH4_DATA " + keyValueUpdate "${key}" "${true}" "${false}" "${file}" + fi + + # If OCS is in the exclude list, turn off OCS options + isItemInList "OCS" "${1}" + if [[ $? == 0 ]]; then + key="--> USE_OCS_DATA " + keyValueUpdate "${key}" "${true}" "${false}" "${file}" + fi +} + + +function updateHemcoDiagn() { + + #======================================================================== + # Comments out lines for unused species in HEMCO_Diagn.rc + # + # Arguments: + # ${1} : List of species to exclude + # ${2} : Path to the run directory + #======================================================================== + + # File to modify + file="${2}/HEMCO_Diagn.rc" + + # Remove entries for excluded species + exclude=("${1}") + for spc in ${exclude[@]}; do + sed -i "/Emis${spc}_/d" "${file}" + done + sed -i "/#####/d" "${file}" +} + + +function updateHistory() { + + #======================================================================== + # Removes entries in HISTORY.rc for unused species + # + # Arguments: + # ${1} : List of species to exclude + # ${2} : Path to the run directory + # ${3} : List of species to include + #======================================================================== + + # File to be modified + file="${2}/HISTORY.rc" + + # For GCHP: remove entries for species to be excluded + exclude=("${1}") + for spc in ${exclude[@]}; do + sed -i "/\_${spc} /d" "${file}" # trailing space required + sed -i "/Emis${spc}_/d" "${file}" + done + + # Restore Collection.fields line + if [[ ! ${3} =~ "CH4" ]]; then + oldline=" 'Emis${3}_Total" + newline="Emissions.fields: 'Emis${3}_Total" + sed -i "s|$oldline|$newline|g" "${file}" + + oldline=" 'SpeciesConcVV_${3}" + newline="SpeciesConc.fields: 'SpeciesConcVV_${3}" + sed -i "s|$oldline|$newline|g" "${file}" + + oldline=" 'BudgetEmisDryDepFull_${3}" + newline="Budget.fields: 'BudgetEmisDryDepFull_${3}" + sed -i "s|$oldline|$newline|g" "${file}" + + oldline=" 'CloudConvFlux_${3}" + newline="CloudConvFlux.fields: 'CloudConvFlux_${3}" + sed -i "s|$oldline|$newline|g" "${file}" + fi + + # Also disable emissions for OCS-only simulations + # (as we currently do not have any) + isItemInList "OCS" "${1}" + if [[ $? == 1 ]]; then + sed -i -e "s/'Emissions/#'Emissions/" "${file}" + fi +} + + +function updateExtData() { + + #======================================================================== + # Removes entries in ExtData.rc for unused species (GCHP only) + # + # Arguments: + # ${1} : List of species to exclude + # ${2} : Path to the run directory + #======================================================================== + + # File to be modified + file="${2}/ExtData.rc" + + # Skip if there is no ExtData.rc file (e.g. for GCClassic) + [[ ! -f "${file}" ]] && return 0 + + # If CH4 is in the exclude list, remove CH4 entries. + isItemInList "CH4" "${1}" + if [[ $? == 0 ]]; then + sed -i "/^GHGI_/d" "${file}" + sed -i "/^MEX_/d" "${file}" + sed -i "/^CAN_/d" "${file}" + sed -i "/^GFEI_/d" "${file}" + sed -i "/^EDGAR8_CH4_/d" "${file}" + sed -i "/CMIP6_CH4_/d" "${file}" + sed -i "/CMIP6_BB_CH4/d" "${file}" + sed -i "/^UPDATED_GFED4_CH4/d" "${file}" + sed -i "/^JPLW_CH4/d" "${file}" + sed -i "/^CH4_SEEPS/d" "${file}" + sed -i "/^CH4_RES_DAM/d" "${file}" + sed -i "/^CH4_RES_SFC/d" "${file}" + sed -i "/^CH4_TERMITES/d" "${file}" + sed -i "/^CH4_SOILABSORB/d" "${file}" + sed -i "/^\#CH4_/d" "${file}" + sed -i "/RCP3PD_CH4/d" "${file}" + sed -i "/RCP45_CH4/d" "${file}" + sed -i "/RCP60_CH4/d" "${file}" + sed -i "/RCP85_CH4/d" "${file}" + sed -i "/^EMIS_SF/d" "${file}" + sed -i "/^OH_SF/d" "${file}" + sed -i "/^MANURE_SF/d" "${file}" + sed -i "/^RICE_SF/d" "${file}" + sed -i "/^EDGAR_SEASONAL_SF/d" "${file}" + sed -i "/^CONUS_/d" "${file}" + fi + + # If CO2 is in the exclude list, remove CO2 entries. + # NOTE: CO2 deletions must prececde CO deletions. + isItemInList "CO2" "${1}" + if [[ $? == 0 ]]; then + sed -i "/AEIC19_DAILY_CO2 /d" "${file}" # trailing space required + sed -i "/AEIC19_MONMEAN_CO2 /d" "${file}" # trailing space required + sed -i "/BBIOCO2_/d" "${file}" + sed -i "/^CEDS_CO2_/d" "${file}" + sed -i "/^CO2_/d" "${file}" + sed -i "/COPROD/d" "${file}" + sed -i "/FOSSILCO2_/d" "${file}" + sed -i "/ICOADS_CO2_/d" "${file}" + sed -i "/OCEANCO2_/d" "${file}" + sed -i "/SIB_BBIO_CO2/d" "${file}" + sed -i "/AVIATION_SURF_CORR/d" "${file}" + fi + + # If CO is in the exclude list, remove CO entries + isItemInList "CO" "${1}" + if [[ $? == 0 ]]; then + sed -i "/AEIC19_DAILY_CO /d" "${file}" # trailing space required + sed -i "/AEIC19_MONMEAN_CO /d" "${file}" # trailing space required + sed -i "/APEI_CO/d" "${file}" + sed -i "/^CEDS_CO/d" "${file}" + sed -i "/CMIP6_CO/d" "${file}" + sed -i "/\#DICE_/d" "${file}" + sed -i "/EDGAR_CO/d" "${file}" + sed -i "/EPA16_CO_/d" "${file}" + sed -i "/HTAP_CO_/d" "${file}" + sed -i "/RCP3PD_CO/d" "${file}" + sed -i "/RCP45_CO/d" "${file}" + sed -i "/RCP60_CO/d" "${file}" + sed -i "/RCP85_CO/d" "${file}" + sed -i "/NEI99_DOW_CO/d" "${file}" + sed -i "/LIQFUEL_/d" "${file}" + fi + + # If OSC is in the exclude list, remove OCS entries + isItemInList "OCS" "${1}" + if [[ $? == 0 ]]; then + sed -i "/^OCS_/d" "${file}" + sed -i "/^StoOCS_/d" "${file}" + fi +} + + +function singleCarbonSpecies() { + + #======================================================================== + # Main function + # + # Arguments: + # ${1} : Species that you wish to retain + # ${2} : Path to the run directory + #======================================================================== + + # Error check arguments + if [[ "x${1}" == "x" ]]; then + echo "Need to pass the species to retain!" + exit 1 + fi + + # Path to the run directory + if [[ "x${2}" == "x" ]]; then + rundir="." + else + rundir="${2}" + fi + + # Get species to include/exclude + exclude=$(speciesToExclude "${1}") + include=${1} + + # Update configuration files + updateGeosChemConfig "${exclude}" "${rundir}" + updateHemcoConfig "${exclude}" "${rundir}" + updateHemcoDiagn "${exclude}" "${rundir}" + updateHistory "${exclude}" "${rundir}" "${include}" + updateExtData "${exclude}" "${rundir}" +} diff --git a/run/shared/species_database.yml b/run/shared/species_database.yml index 1d0ed703a..1c12122c3 100644 --- a/run/shared/species_database.yml +++ b/run/shared/species_database.yml @@ -174,6 +174,36 @@ ALK4P: Is_WetDep: true MW_g: 90.14 WD_RetFactor: 2.0e-2 +aoa_PROP: &aoaproperties + Is_Advected: true + Is_Gas: true + Is_Tracer: true + MW_g: 1.0 # Use value of 1.0 to get past checks for missing MW_g + Snk_Mode: constant + Snk_Value: 0 + Src_Add: true + Src_Horiz: all + Src_Mode: constant + Src_Units: timestep + Src_Value: 1 + Src_Vert: all + Units: days +aoa: + << : *aoaproperties + FullName: Age of air uniform source tracer + Snk_Horiz: all + Snk_Vert: surface +aoa_bl: + << : *aoaproperties + FullName: Age of air uniform source tracer with sink restricted to the boundary layer + Snk_Horiz: all + Snk_Vert: boundary_layer +aoa_nh: + << : *aoaproperties + FullName: Age of air uniform source tracer with surface sink restricted to a zone in the northern hemisphere + Snk_Horiz: lat_zone + Snk_Lats: [30.0, 50.0] + Snk_Vert: surface AONITA: DD_F0: 1.0 DD_Hstar: 2.9e+3 @@ -352,7 +382,14 @@ Be_PROP: &Beproperties Is_Aerosol: true Is_DryDep: true Is_RadioNuclide: true - Is_WetDep: true + Is_Tracer: true + Is_WetDep: true +# Comment out tracer-specific code for now and use RnPbBe_mod.F90 +# Snk_Horiz: all +# Snk_Mode: halflife +# Snk_Vert: all +# Src_Add: true +# Src_Mode: HEMCO WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] @@ -362,21 +399,29 @@ Be10: Formula: Be10 FullName: Beryllium-10 isotope MW_g: 10.0 -Be10Strat: +# Snk_Period: 5.84e8 +# Src_Vert: all +Be10s: << : *Beproperties Formula: Be10 - FullName: Beryllium-10 isotope in stratosphere + FullName: Beryllium-10 isotope stratospheric-source tracer MW_g: 10.0 +# Snk_Period: 5.84e8 +# Src_Vert: stratosphere Be7: << : *Beproperties Formula: Be7 FullName: Beryllium-7 isotope MW_g: 7.0 -Be7Strat: +# Snk_Period: 53.3 +# Src_Vert: all +Be7s: << : *Beproperties Formula: Be7 - FullName: Beryllium-7 isotope in stratosphere + FullName: Beryllium-7 isotope stratospheric-source tracer MW_g: 7.0 +# Snk_Period: 53.3 +# Src_Vert: stratosphere BENZ: Formula: C6H6 FullName: Benzene @@ -491,6 +536,12 @@ BrSALA: FullName: Fine sea salt bromine Is_HygroGrowth: false MW_g: 79.90 +BUTDI: + Formula: C4H4O2 + FullName: Butenedial + Is_Advected: true + Is_Gas: true + MW_g: 84.07 BZCO3: Formula: C7H5O3 FullName: Acyl peroxy radical from benzaldehyde @@ -746,6 +797,7 @@ CH3Cl: Is_Photolysis: true MW_g: 50.45 CH3I: + Background_VV: 1.0e-20 Formula: CH3I FullName: Methyl iodide Henry_CR: 3.6e+3 @@ -753,11 +805,13 @@ CH3I: Is_Advected: true Is_Gas: true Is_Photolysis: true - MW_g: 141.94 -CH3ITracer: - FullName: Methyl_iodide - Is_Advected: true - Is_Gas: true + Is_Tracer: true + Snk_Horiz: all + Snk_Mode: efolding + Snk_Period: 5 + Snk_Vert: all + Src_Add: true + Src_Mode: HEMCO MW_g: 141.94 CH4_PROP: &CH4properties Formula: CH4 @@ -800,6 +854,10 @@ CH4_OTA: << : *CH4properties Background_VV: 1.0e-20 FullName: Methane from other anthropogenic emissions +CH4_RES: + << : *CH4properties + Background_VV: 1.0e-20 + FullName: Methane from hydroelectric reservoir emissions CH4_RIC: << : *CH4properties Background_VV: 1.0e-20 @@ -915,7 +973,7 @@ CLOCK: FullName: Clock tracer for diagnosing age of air Is_Advected: true Is_Gas: true - MW_g: 1.0 + MW_g: 1.0 # Use value of 1.0 to get past checks for missing MW_g CO2_PROP: &CO2properties Formula: CO2 Is_Gas: true @@ -981,14 +1039,28 @@ COacet: << : *COproperties Background_VV: 1.0e-20 FullName: CO produced from acetone oxidation -COAnthroEmis25dayTracer: +CO_25: << : *COproperties Background_VV: 1.0e-20 - FullName: Anthropogenic_CO_with_25day_lifetime -COAnthroEmis50dayTracer: + FullName: Anthropogenic CO 25 day tracer + Is_Tracer: true + Snk_Horiz: all + Snk_Mode: efolding + Snk_Period: 25 + Snk_Vert: all + Src_Add: true + Src_Mode: HEMCO +CO_50: << : *COproperties Background_VV: 1.0e-20 - FullName: Anthropogenic_CO_with_50day_lifetime + FullName: Anthropogenic CO 50 day tracer + Is_Tracer: true + Snk_Horiz: all + Snk_Mode: efolding + Snk_Period: 50 + Snk_Vert: all + Src_Add: true + Src_Mode: HEMCO COasia: << : *COproperties Background_VV: 1.0e-20 @@ -1121,7 +1193,7 @@ DSTAL4: Dummy: FullName: Dummy species (carbon mechanism) Is_Gas: true - MW_g: 1.0 + MW_g: 1.0 # Use value of 1.0 to get past checks for missing MW_g DummyCH4: << : *CH4properties Background_VV: 1.8e-6 @@ -1130,6 +1202,35 @@ DummyNMVOC: << : *COproperties Background_VV: 1.0e-20 FullName: CO produced from NMVOC oxidation (external input for carbon mechanism) +e90_PROP: &e90properties + Background_VV: 1.0e-20 + Is_Advected: true + Is_Gas: true + Is_Tracer: true + MW_g: 1.0 # Use value of 1.0 to get past checks for missing MW_g + Snk_Horiz: all + Snk_Mode: efolding + Snk_Period: 90 + Snk_Vert: all + Src_Add: true + Src_Mode: maintain_mixing_ratio + Src_Units: ppbv + Src_Value: 100 + Src_Vert: surface +e90: + << : *e90properties + FullName: Constant burden 90 day tracer + Src_Horiz: all +e90_n: + << : *e90properties + FullName: Constant burden Northern Hemisphere 90 day tracer + Src_Horiz: lat_zone + Src_Lats: [ 40.0, 91.0] +e90_s: + << : *e90properties + FullName: Constant burden Southern Hemisphere 90 day tracer + Src_Horiz: lat_zone + Src_Lats: [ -91.0, -40.0 ] EOH: DD_F0: 0.0 DD_Hstar: 1.9e+2 @@ -1248,11 +1349,20 @@ FixedOH: FullName: Hydroxyl radical (external input for carbon mechanism) Is_Gas: true MW_g: 17.01 -GlobEmis90dayTracer: - FullName: Globally_emitted_tracer_with_90day_lifetime_and_100ppbv_maintained_mixing_ratio +FURA: + DD_F0: 1.0 + DD_Hstar: 1.80e-1 + Formula: C4H4O + FullName: Furan + Henry_CR: 6100.0 + Henry_K0: 1.80e-1 Is_Advected: true + Is_DryDep: true Is_Gas: true - MW_g: 1.0 + Is_Photolysis: false + Is_WetDep: true + MW_g: 68.07 + WD_RetFactor: 2.0e-2 GLYC: DD_F0: 1.0 DD_Hstar: 4.1e+4 @@ -1739,14 +1849,14 @@ Hg_OTHER_PROP: &HgChemProperties Is_Photolysis: true Is_WetDep: true WD_RetFactor: 1.0 -HgBr: +HgBr: Fullname: HgBr Formula: HgBr Is_Advected: true Is_Gas: true Is_Photolysis: true MW_g: 280.49 -HgBrNO2: +HgBrNO2: Fullname: syn-HgBrONO Formula: BrHgONO Is_Advected: true @@ -1754,7 +1864,7 @@ HgBrNO2: Is_Gas: true Is_Photolysis: true MW_g: 326.50 -HgBrHO2: +HgBrHO2: << : *HgChemProperties Fullname: HgBrHO2 Formula: BrHgOOH @@ -1764,7 +1874,7 @@ HgBrBrO: Fullname: HgBrBrO Formula: BrHgOBr MW_g: 376.40 -HgBrClO: +HgBrClO: << : *HgChemProperties Fullname: HgBrClO Formula: BrHgOCl @@ -1774,12 +1884,12 @@ HgBrOH: Fullname: HgBrOH Formula: BrHgOH MW_g: 297.50 -HgBr2: +HgBr2: << : *HgChemProperties Fullname: HgBr2 Formula: HgBr2 MW_g: 360.40 -HgCl: +HgCl: Fullname: HgCl Formula: HgCl Is_Advected: true @@ -1799,64 +1909,64 @@ HgClHO2: Formula: ClHgOOH MW_g: 269.00 WD_RetFactor: 1.0 -HgClClO: +HgClClO: << : *HgChemProperties Fullname: HgClClO Formula: ClHgOCl MW_g: 287.50 -HgClBrO: +HgClBrO: << : *HgChemProperties Fullname: HgClBrO Formula: ClHgOBr MW_g: 332.00 -HgClBr: +HgClBr: << : *HgChemProperties Fullname: HgClBr Formula: HgBrCl MW_g: 316.00 -HgClOH: +HgClOH: << : *HgChemProperties Fullname: HgClOH Formula: ClHgOH MW_g: 253.00 -HgOH: +HgOH: Fullname: HgOH Formula: HgOH Is_Advected: true Is_Gas: true Is_Photolysis: true MW_g: 201.00 -HgOHNO2: +HgOHNO2: << : *HgChemProperties Fullname: syn-HgOHONO Formula: HOHgONO MW_g: 263.60 -HgOHHO2: +HgOHHO2: << : *HgChemProperties Fullname: HgOHHO2 Formula: HOHgOOH MW_g: 250.60 -HgOHClO: +HgOHClO: << : *HgChemProperties Fullname: HgBrClO Formula: HOHgOCl MW_g: 269.0000 -HgOHBrO: +HgOHBrO: << : *HgChemProperties Fullname: HgOHBrO Formula: HOHgOBr MW_g: 313.5000 -HgOHOH: +HgOHOH: << : *HgChemProperties Fullname: HgOH2 Formula: HOHgOH MW_g: 234.60 -HgCl2: +HgCl2: << : *HgChemProperties Fullname: HgCl2 Formula: HgCl2 MW_g: 271.5000 -Hg2ClP: +Hg2ClP: Fullname: Hg(II) chloride salts on sea-salt aerosols Formula: HgCln Is_Aerosol: true @@ -1867,7 +1977,7 @@ Hg2ClP: WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 1.0, 1.0] -Hg2ORGP: +Hg2ORGP: Fullname: Hg(II) organic complex in aerosols Formula: R-Hg Is_Advected: true @@ -1879,7 +1989,7 @@ Hg2ORGP: WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 1.0, 1.0] -Hg2STRP: +Hg2STRP: Fullname: Hg(II) in stratospheric aerosols Formula: Hg2+ Is_Advected: true @@ -2688,18 +2798,22 @@ LBRO2H: FullName: Dummy species to track oxidation of BRO2 by HO2 Is_Gas: true MW_g: 159.13 + KPP_AbsTol: 1.0e+25 LBRO2N: FullName: Dummy species to track oxidation of BRO2 by NO Is_Gas: true MW_g: 159.13 + KPP_AbsTol: 1.0e+25 LCH4: FullName: Dummy species to track loss rate of CH4 Is_Gas: true MW_g: 16.04 + KPP_AbsTol: 1.0e+25 LCO: FullName: Dummy species to track loss rate of CO Is_Gas: true MW_g: 28.01 + KPP_AbsTol: 1.0e+25 LIMO: DD_F0: 0.0 DD_Hstar: 7.0e-2 @@ -2722,14 +2836,17 @@ LISOPNO3: FullName: Dummy species to track oxidation of ISOP by NO3 Is_Gas: true MW_g: 68.13 + KPP_AbsTol: 1.0e+25 LISOPOH: FullName: Dummy species to track oxidation of ISOP by OH Is_Gas: true MW_g: 68.13 + KPP_AbsTol: 1.0e+25 LNRO2H: FullName: Dummy species to track oxidation of NRO2 by HO2 Is_Gas: true MW_g: 159.17 + KPP_AbsTol: 1.0e+25 LNRO2N: FullName: Dummy species to track oxidation of NRO2 by NO Is_Gas: true @@ -2738,14 +2855,17 @@ LOx: FullName: Dummy species to track loss rate of Ox Is_Gas: true MW_g: 48.00 + KPP_AbsTol: 1.0e+25 LTRO2H: FullName: Dummy species to track oxidation of TRO2 by HO2 Is_Gas: true MW_g: 173.16 + KPP_AbsTol: 1.0e+25 LTRO2N: FullName: Dummy species to track oxidation of TRO2 by NO Is_Gas: true MW_g: 173.16 + KPP_AbsTol: 1.0e+25 LVOC: DD_F0: 1.0 DD_Hstar: 1.0e+8 @@ -2778,10 +2898,12 @@ LXRO2H: FullName: Dummy species to track oxidation of XRO2 by HO2 Is_Gas: true MW_g: 187.19 + KPP_AbsTol: 1.0e+25 LXRO2N: FullName: Dummy species to track oxidation of XRO2 by NO Is_Gas: true MW_g: 187.19 + KPP_AbsTol: 1.0e+25 MACR: DD_F0: 1.0 DD_Hstar: 6.5 @@ -3301,6 +3423,29 @@ NAP: Is_Advected: true Is_Gas: true MW_g: 128.18 +nh_PROP: &nhproperties + Is_Advected: true + Is_Gas: true + Is_Tracer: true + MW_g: 1.0 # Use value of 1.0 to get past checks for missing MW_g + Snk_Horiz: all + Snk_Mode: efolding + Snk_Vert: all + Src_Add: false + Src_Mode: constant + Src_Horiz: lat_zone + Src_Lats: [30.0, 50.0] + Src_Units: ppbv + Src_Value: 100 + Src_Vert: all +nh_5: + << : *nhproperties + FullName: Northern Hemisphere 5 day tracer + Snk_Period: 5 +nh_50: + << : *nhproperties + FullName: Northern Hemisphere 50 day tracer + Snk_Period: 50 NH3: DD_DvzAerSnow: 0.03 DD_DvzMinVal: [0.2, 0.3] @@ -3337,11 +3482,6 @@ NH4: WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] WD_RainoutEff_Luo: [0.4, 0.0, 1.0] -NHEmis90dayTracer: - FullName: Northern_hemisphere_emitted_tracer_with_90day_lifetime_and_100ppbv_maintained_mi - Is_Advected: true - Is_Gas: true - MW_g: 1.0 NiF1: << : *DST1properties Formula: Ni @@ -3672,10 +3812,14 @@ PAN: MW_g: 121.06 WD_RetFactor: 2.0e-2 PassiveTracer: + Background_VV: 1.0e-7 FullName: Passive tracer for mass conservation evaluation Is_Advected: true Is_Gas: true - MW_g: 1.0 + Is_Tracer: true + MW_g: 1.0 # Use value of 1.0 to get past checks for missing MW_g + Snk_Mode: none + Src_Mode: none Pb210_PROP: &Pbproperties DD_DvzAerSnow: 0.03 DD_F0: 0.0 @@ -3685,8 +3829,18 @@ Pb210_PROP: &Pbproperties Is_Aerosol: true Is_DryDep: true Is_RadioNuclide: true + Is_Tracer: true Is_WetDep: true MW_g: 210.0 +# Comment out tracer-specific code for now and use RnPbBe_mod.F90 +# Snk_Horiz: all +# Snk_Mode: efolding +# Snk_Period: 11742.8 +# Snk_Vert: all +# Src_Add: true +# Src_Mode: HEMCO +# Src_Mode: decay_of_another_species +# Src_Species: Rn222 WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] @@ -3694,9 +3848,11 @@ Pb210_PROP: &Pbproperties Pb210: << : *Pbproperties FullName: Lead-210 isotope -Pb210Strat: +# Src_Vert: all +Pb210s: << : *Pbproperties - FullName: Lead-210 isotope in stratosphere + FullName: Lead-210 isotope stratospheric-source tracer +# Src_Vert: stratosphere PbF1: << : *DST1properties Formula: Pb @@ -3712,6 +3868,7 @@ PCO: FullName: Dummy species to track production rate of CO Is_Gas: true MW_g: 28.01 + KPP_AbsTol: 1.0e+25 pFe: DD_F0: 0.0 DD_Hstar: 0.0 @@ -3730,6 +3887,11 @@ PH2O2: FullName: Dummy species to track production rate of H2O2 Is_Gas: true MW_g: 34.02 + KPP_AbsTol: 1.0e+25 +PH2SO4: + FullName: SO4 from gas-phase chemistry + Is_Gas: true + MW_g: 96.06 PHEN: DD_F0: 1.0 DD_Hstar: 2.8e+3 @@ -4026,6 +4188,7 @@ POx: FullName: Dummy species to track production rate of Ox Is_Gas: true MW_g: 48.00 + KPP_AbsTol: 1.0e+25 PP: DD_F0: 1.0 DD_Hstar: 2.94e+2 @@ -4100,6 +4263,11 @@ PSO4: FullName: Dummy species to track production of SO4 Is_Gas: true MW_g: 96.06 + KPP_AbsTol: 1.0e+25 +PSO4AQ: + FullName: SO4 from cloud chemistry + Is_Gas: true + MW_g: 96.06 PYAC: DD_F0: 1.0 DD_Hstar: 3.14e+5 @@ -4262,7 +4430,17 @@ Rn222: Is_Advected: true Is_Aerosol: true Is_RadioNuclide: true + Is_Tracer: true MW_g: 222.0 +# Comment out tracer-specific code for now and use RnPbBe_mod.F90 +# Snk_Horiz: all +# Snk_Mode: efolding +# Snk_Period: 5.5 +# Snk_Vert: all +# Src_Add: true +# Src_Mode: HEMCO +# Src_Mode: decay_of_another_species +# Src_Species: Rn222 ROH: Formula: C3H7OH FullName: '> C2 alcohols' @@ -4319,17 +4497,17 @@ SALCCL: Is_HygroGrowth: false MW_g: 35.45 WD_CoarseAer: true -SF6Tracer: +SF6: + Background_VV: 1.0e-20 Formula: SF6 - FullName: Sulfur_hexafluoride + FullName: Sulfur hexafluoride Is_Advected: true Is_Gas: true + Is_Tracer: true MW_g: 146.06 -SHEmis90dayTracer: - FullName: Southern_hemisphere_emitted_tracer_with_90day_lifetime_and_100ppbv_maintained_mi - Is_Advected: true - Is_Gas: true - MW_g: 1.0 + Snk_Mode: none + Src_Add: true + Src_Mode: HEMCO SiF1: << : *DST1properties Fullname: Silicon on dust, Reff = 0.7 microns @@ -4476,6 +4654,37 @@ SOAS: WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [0.8, 0.0, 0.8] WD_RainoutEff_Luo: [0.4, 0.0, 0.8] +st80_25: + FullName: Stratosphere source 25 day tracer + Is_Advected: true + Is_Gas: true + Is_Tracer: true + MW_g: 1.0 # Use value of 1.0 to get past checks for missing MW_g + Snk_Horiz: all + Snk_Mode: efolding + Snk_Period: 25 + Snk_Vert: troposphere + Src_Add: false + Src_Horiz: all + Src_Mode: constant + Src_Pressures: [0, 80] + Src_Units: ppbv + Src_Value: 200 + Src_Vert: pressures +stOX: + FullName: Tracer with O3 values in stratosphere and O3 loss applied in troposphere + Is_Advected: true + Is_Gas: true + Is_Tracer: true + MW_g: 1.0 # Use value of 1.0 to get past checks for missing MW_g + Loss_Species: O3 + Snk_Horiz: all + Snk_Mode: chemical_loss + Snk_Vert: troposphere + Src_Add: false + Src_Horiz: all + Src_Mode: model_field + Src_Vert: stratosphere TiF1: << : *DST1properties Formula: Ti diff --git a/run/shared/species_database_hg.yml b/run/shared/species_database_hg.yml index 13be81844..c69094c72 100644 --- a/run/shared/species_database_hg.yml +++ b/run/shared/species_database_hg.yml @@ -54,14 +54,14 @@ Hg_CHEM_PROP: &HgChemProperties Is_WetDep: true Is_Hg2: true WD_RetFactor: 1.0 - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg HgBr: Fullname: HgBr Formula: HgBr Is_Advected: true Is_Gas: true Is_Photolysis: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg HgBrNO2: << : *HgChemProperties Fullname: syn-HgBrONO @@ -86,11 +86,13 @@ HgBrO: FullName: HgBrO Formula: HgBrO Is_Gas: true + MW_g: 200.59 # Use mol wt of atomic Hg HgBrOH: << : *HgChemProperties Fullname: HgBrOH Formula: BrHgOH Is_Photolysis: true + MW_g: HgBr2: << : *HgChemProperties Fullname: HgBr2 @@ -103,7 +105,7 @@ HgCl: Is_Gas: true Is_Photolysis: true Is_WetDep: false - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg HgClNO2: << : *HgChemProperties Fullname: syn-HgClONO @@ -133,24 +135,25 @@ HgClO: Fullname: HgClO Formula: ClHgO Is_Gas: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg HgClOH: << : *HgChemProperties Fullname: HgClOH Formula: ClHgOH Is_Photolysis: true + MW_g: HgOH: Fullname: HgOH Formula: HgOH Is_Advected: true Is_Gas: true Is_Photolysis: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg HgOHO: Fullname: HgOHO Formula: HgOHO Is_Gas: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg HgOHNO2: << : *HgChemProperties Fullname: syn-HgOHONO @@ -166,6 +169,7 @@ HgOHClO: Fullname: HgBrClO Formula: HOHgOCl Is_Photolysis: true + MW_g: HgOHBrO: << : *HgChemProperties Fullname: HgOHBrO @@ -188,7 +192,7 @@ Hg2ClP: Is_DryDep: true Is_WetDep: true Is_HgP: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] @@ -201,7 +205,7 @@ Hg2ORGP: Is_Photolysis: true Is_WetDep: true Is_HgP: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg WD_AerScavEff: 0.8 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] @@ -211,7 +215,7 @@ Hg2STRP: Is_Advected: true Is_Aerosol: true Is_HgP: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg HO2: Background_VV: 4.0e-15 Formula: HO2 @@ -246,20 +250,25 @@ OH: PHg2: FullName: Gross production of gaseous oxidized Hg Is_Gas: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg + KPP_AbsTol: 1.0e+25 PHg0: FullName: Gross production of Hg2 Is_Gas: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg + KPP_AbsTol: 1.0e+25 PHg2Br: FullName: Gaseous oxidized Hg production from Br Is_Gas: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg + KPP_AbsTol: 1.0e+25 PHg2OH: FullName: Gaseous oxidized Hg production from OH Is_Gas: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg + KPP_AbsTol: 1.0e+25 PHg2Cl: FullName: Gaseous oxidized Hg production from Cl Is_Gas: true - MW_g: 200.59 + MW_g: 200.59 # Use mol wt of atomic Hg + KPP_AbsTol: 1.0e25 diff --git a/run/shared/species_database_tomas.yml b/run/shared/species_database_tomas.yml index b7eac37bc..a08811e12 100644 --- a/run/shared/species_database_tomas.yml +++ b/run/shared/species_database_tomas.yml @@ -12,31 +12,31 @@ AW_PROP: &AWproperties WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] -AW1: +AW01: << : *AWproperties FullName: Aerosol water, size bin = 1 -AW2: +AW02: << : *AWproperties FullName: Aerosol water, size bin = 2 -AW3: +AW03: << : *AWproperties FullName: Aerosol water, size bin = 3 -AW4: +AW04: << : *AWproperties FullName: Aerosol water, size bin = 4 -AW5: +AW05: << : *AWproperties FullName: Aerosol water, size bin = 5 -AW6: +AW06: << : *AWproperties FullName: Aerosol water, size bin = 6 -AW7: +AW07: << : *AWproperties FullName: Aerosol water, size bin = 7 -AW8: +AW08: << : *AWproperties FullName: Aerosol water, size bin = 8 -AW9: +AW09: << : *AWproperties FullName: Aerosol water, size bin = 9 AW10: @@ -144,31 +144,31 @@ DUST_PROP: &DUSTproperties WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] -DUST1: +DUST01: << : *DUSTproperties FullName: Mineral dust, size bin = 1 -DUST2: +DUST02: << : *DUSTproperties FullName: Mineral dust, size bin = 2 -DUST3: +DUST03: << : *DUSTproperties FullName: Mineral dust, size bin = 3 -DUST4: +DUST04: << : *DUSTproperties FullName: Mineral dust, size bin = 4 -DUST5: +DUST05: << : *DUSTproperties FullName: Mineral dust, size bin = 5 -DUST6: +DUST06: << : *DUSTproperties FullName: Mineral dust, size bin = 6 -DUST7: +DUST07: << : *DUSTproperties FullName: Mineral dust, size bin = 7 -DUST8: +DUST08: << : *DUSTproperties FullName: Mineral dust, size bin = 8 -DUST9: +DUST09: << : *DUSTproperties FullName: Mineral dust, size bin = 9 DUST10: @@ -276,31 +276,31 @@ ECIL_PROP: &ECILproperties WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] -ECIL1: +ECIL01: << : *ECILproperties FullName: Hydrophilic elemental carbon, size bin = 1 -ECIL2: +ECIL02: << : *ECILproperties FullName: Hydrophilic elemental carbon, size bin = 2 -ECIL3: +ECIL03: << : *ECILproperties FullName: Hydrophilic elemental carbon, size bin = 3 -ECIL4: +ECIL04: << : *ECILproperties FullName: Hydrophilic elemental carbon, size bin = 4 -ECIL5: +ECIL05: << : *ECILproperties FullName: Hydrophilic elemental carbon, size bin = 5 -ECIL6: +ECIL06: << : *ECILproperties FullName: Hydrophilic elemental carbon, size bin = 6 -ECIL7: +ECIL07: << : *ECILproperties FullName: Hydrophilic elemental carbon, size bin = 7 -ECIL8: +ECIL08: << : *ECILproperties FullName: Hydrophilic elemental carbon, size bin = 8 -ECIL9: +ECIL09: << : *ECILproperties FullName: Hydrophilic elemental carbon, size bin = 9 ECIL10: @@ -407,31 +407,31 @@ ECOB_PROP: &ECOBproperties WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] -ECOB1: +ECOB01: << : *ECOBproperties FullName: Hydrophobic elemental carbon, size bin = 1 -ECOB2: +ECOB02: << : *ECOBproperties FullName: Hydrophobic elemental carbon, size bin = 2 -ECOB3: +ECOB03: << : *ECOBproperties FullName: Hydrophobic elemental carbon, size bin = 3 -ECOB4: +ECOB04: << : *ECOBproperties FullName: Hydrophobic elemental carbon, size bin = 4 -ECOB5: +ECOB05: << : *ECOBproperties FullName: Hydrophobic elemental carbon, size bin = 5 -ECOB6: +ECOB06: << : *ECOBproperties FullName: Hydrophobic elemental carbon, size bin = 6 -ECOB7: +ECOB07: << : *ECOBproperties FullName: Hydrophobic elemental carbon, size bin = 7 -ECOB8: +ECOB08: << : *ECOBproperties FullName: Hydrophobic elemental carbon, size bin = 8 -ECOB9: +ECOB09: << : *ECOBproperties FullName: Hydrophobic elemental carbon, size bin = 9 ECOB10: @@ -557,31 +557,31 @@ NK_PROP: &NKproperties WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] -NK1: +NK01: << : *NKproperties FullName: Aerosol number, size bin = 1 -NK2: +NK02: << : *NKproperties FullName: Aerosol number, size bin = 2 -NK3: +NK03: << : *NKproperties FullName: Aerosol number, size bin = 3 -NK4: +NK04: << : *NKproperties FullName: Aerosol number, size bin = 4 -NK5: +NK05: << : *NKproperties FullName: Aerosol number, size bin = 5 -NK6: +NK06: << : *NKproperties FullName: Aerosol number, size bin = 6 -NK7: +NK07: << : *NKproperties FullName: Aerosol number, size bin = 7 -NK8: +NK08: << : *NKproperties FullName: Aerosol number, size bin = 8 -NK9: +NK09: << : *NKproperties FullName: Aerosol number, size bin = 9 NK10: @@ -689,31 +689,31 @@ OCIL_PROP: &OCILproperties WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] -OCIL1: +OCIL01: << : *OCILproperties FullName: Hydrophilic organic carbon, size bin = 1 -OCIL2: +OCIL02: << : *OCILproperties FullName: Hydrophilic organic carbon, size bin = 2 -OCIL3: +OCIL03: << : *OCILproperties FullName: Hydrophilic organic carbon, size bin = 3 -OCIL4: +OCIL04: << : *OCILproperties FullName: Hydrophilic organic carbon, size bin = 4 -OCIL5: +OCIL05: << : *OCILproperties FullName: Hydrophilic organic carbon, size bin = 5 -OCIL6: +OCIL06: << : *OCILproperties FullName: Hydrophilic organic carbon, size bin = 6 -OCIL7: +OCIL07: << : *OCILproperties FullName: Hydrophilic organic carbon, size bin = 7 -OCIL8: +OCIL08: << : *OCILproperties FullName: Hydrophilic organic carbon, size bin = 8 -OCIL9: +OCIL09: << : *OCILproperties FullName: Hydrophilic organic carbon, size bin = 9 OCIL10: @@ -821,31 +821,31 @@ OCOB_PROP: &OCOBproperties WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] -OCOB1: +OCOB01: << : *OCOBproperties FullName: Hydrophobic organic carbon, size bin = 1 -OCOB2: +OCOB02: << : *OCOBproperties FullName: Hydrophobic organic carbon, size bin = 2 -OCOB3: +OCOB03: << : *OCOBproperties FullName: Hydrophobic organic carbon, size bin = 3 -OCOB4: +OCOB04: << : *OCOBproperties FullName: Hydrophobic organic carbon, size bin = 4 -OCOB5: +OCOB05: << : *OCOBproperties FullName: Hydrophobic organic carbon, size bin = 5 -OCOB6: +OCOB06: << : *OCOBproperties FullName: Hydrophobic organic carbon, size bin = 6 -OCOB7: +OCOB07: << : *OCOBproperties FullName: Hydrophobic organic carbon, size bin = 7 -OCOB8: +OCOB08: << : *OCOBproperties FullName: Hydrophobic organic carbon, size bin = 8 -OCOB9: +OCOB09: << : *OCOBproperties FullName: Hydrophobic organic carbon, size bin = 9 OCOB10: @@ -953,31 +953,31 @@ SF_PROP: &SFproperties WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] -SF1: +SF01: << : *SFproperties FullName: Sulfate aerosol, size bin = 1 -SF2: +SF02: << : *SFproperties FullName: Sulfate aerosol, size bin = 2 -SF3: +SF03: << : *SFproperties FullName: Sulfate aerosol, size bin = 3 -SF4: +SF04: << : *SFproperties FullName: Sulfate aerosol, size bin = 4 -SF5: +SF05: << : *SFproperties FullName: Sulfate aerosol, size bin = 5 -SF6: +SF06: << : *SFproperties FullName: Sulfate aerosol, size bin = 6 -SF7: +SF07: << : *SFproperties FullName: Sulfate aerosol, size bin = 7 -SF8: +SF08: << : *SFproperties FullName: Sulfate aerosol, size bin = 8 -SF9: +SF09: << : *SFproperties FullName: Sulfate aerosol, size bin = 9 SF10: @@ -1085,31 +1085,31 @@ SS_PROP: &SSproperties WD_AerScavEff: 1.0 WD_KcScaleFac: [1.0, 0.5, 1.0] WD_RainoutEff: [1.0, 0.0, 1.0] -SS1: +SS01: << : *SSproperties FullName: Sea salt aerosol, size bin = 1 -SS2: +SS02: << : *SSproperties FullName: Sea salt aerosol, size bin = 2 -SS3: +SS03: << : *SSproperties FullName: Sea salt aerosol, size bin = 3 -SS4: +SS04: << : *SSproperties FullName: Sea salt aerosol, size bin = 4 -SS5: +SS05: << : *SSproperties FullName: Sea salt aerosol, size bin = 5 -SS6: +SS06: << : *SSproperties FullName: Sea salt aerosol, size bin = 6 -SS7: +SS07: << : *SSproperties FullName: Sea salt aerosol, size bin = 7 -SS8: +SS08: << : *SSproperties FullName: Sea salt aerosol, size bin = 8 -SS9: +SS09: << : *SSproperties FullName: Sea salt aerosol, size bin = 9 SS10: diff --git a/test/GCClassic/.gitignore b/test/GCClassic/.gitignore deleted file mode 100644 index 6cb577a2c..000000000 --- a/test/GCClassic/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -*.[oax] -*.mod -*.MOD -*~* -*.swp -*.bak -*.patch -*.diff -diffs -bak -misc -*.pp.* -*.pdb -*.inst.* -*.continue.* -*.ppk -*.log -bin/* -build/ -build_*/ -*___.h -*___.rc -core.* \ No newline at end of file diff --git a/test/GCClassic/README b/test/GCClassic/README deleted file mode 100644 index f7868572b..000000000 --- a/test/GCClassic/README +++ /dev/null @@ -1,62 +0,0 @@ -README for test/GCClassic (GEOS-Chem integration test directory) -10 Nov 2020 -GEOS-Chem Support Team -geos-chem-support@g.harvard.edu -=============================================================================== - -Overview: ---------- - -This directory contains scripts to submit automated GCClassic integration -tests, which will test the following process: - -1. GCClassic run directory creation -2. GCClassic code configuration and compilation -3. GCClassic execution - -Integration tests are mostly intended to be run by GEOS-Chem developers, -rather than end users. - - -Files: ------- - -# For LSF scheduler -intTest_lsf.sh : Driver script to run GCClassic integration test -intTestCompile_lsf.sh : Script to compile GCClassic -intTestExecute_lsf.sh : Script to run GCClassic - -# For SLURM scheduler -intTest_slurm.sh : Driver script to run GCClassic integration test -intTestCompile_slurm.sh : Script to compile GCClassic -intTestExecute_slurm.sh : Script to run GCClassic - -# For both LSF and SLURM schedulers -commonFunctionsForTests.sh : Bash script with reusable functions -intTestCreate.sh : Script to create GCClassic run directories - -# For interactive sessions: -intTest_interactive.sh : Driver script to run GCClassic integration test - -Running integration tests: --------------------------- -Execute the following commands at the Unix prompt: - - With the SLURM scheduler: - ------------------------- - cd test/GCClassic - ./intTest_slurm.sh /path/to/int/test/dir GCCLASSIC-ENV-FILE - - With the LSF scheduler: - ----------------------- - cd test/GCClassic - ./intTest_lsf.sh /path/to/int/test/dir GCCLASSIC-ENV-FILE - - -where GCCLASSIC-ENV-FILE is the shell script that loads relevant software -modules and sets OpenMP parameters (like OMP_NUM_THREADS, OMP_STACKSIZE, -etc.) - -NOTE: For debugging you can add an optional third parameter debug=1, -which will run integration tests for 2 run directories. This is useful -for development & debugging. diff --git a/test/GCClassic/commonFunctionsForTests.sh b/test/GCClassic/commonFunctionsForTests.sh deleted file mode 120000 index a3316e13c..000000000 --- a/test/GCClassic/commonFunctionsForTests.sh +++ /dev/null @@ -1 +0,0 @@ -../shared/commonFunctionsForTests.sh \ No newline at end of file diff --git a/test/GCClassic/intTestCompile_interactive.sh b/test/GCClassic/intTestCompile_interactive.sh deleted file mode 100755 index 638caf366..000000000 --- a/test/GCClassic/intTestCompile_interactive.sh +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/bash - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestCompile_interactive.sh -# -# !DESCRIPTION: Runs compilation tests on various GEOS-Chem Classic -# run directories (using the SLURM scheduler). -#\\ -#\\ -# !CALLING SEQUENCE: -# sbatch intTestCompile_interactive.sh -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================ -# Global variable and function definitions -#============================================================================ - -# Get the long path of this folder -root=$(pwd -P) - - -# Load computational environment and settings) -. ~/.bashrc -. ${root}/gcclassic_env.sh -export OMP_STACKSIZE=500m - -# For AWS, set $OMP_NUM_THREADS to the available cores -kernel=$(uname -r) -[[ "x${kernel}" == "xaws" ]] && export OMP_NUM_THREADS=$(nproc) - -# Load common functions for tests -. ${root}/commonFunctionsForTests.sh - -# Count the number of tests to be done = number of run directories -numTests=$(ls -1 "${root}/build" | wc -l) - -# All integration tests will use debugging features -baseOptions="-DCMAKE_BUILD_TYPE=Debug -DRUNDIR='' -DINSTALLCOPY=${root}/exe_files" - -#============================================================================ -# Initialize results logfile -#============================================================================ - -# Results logfile name -results="${root}/logs/results.compile.log" -rm -f ${results} - -# Print header to results log file -print_to_log "${SEP_MAJOR}" ${results} -print_to_log "GEOS-Chem Classic: Compilation Test Results" ${results} -print_to_log "" ${results} -print_to_log "Using ${OMP_NUM_THREADS} OpenMP threads" ${results} -print_to_log "Number of compilation tests: ${numTests}" ${results} -print_to_log "${SEP_MAJOR}" ${results} - -#============================================================================ -# Configure and compile code in each GEOS_Chem run directory -#============================================================================ -print_to_log " " ${results} -print_to_log "Compiliation tests:" ${results} -print_to_log "${SEP_MINOR}" ${results} - -# Change to the top-level build directory -cd ${root} - -# Keep track of the number of tests that passed & failed -let passed=0 -let failed=0 -let remain=${numTests} - -# Loop over build directories -for dir in ${EXE_BUILD_LIST[@]}; do - - # Define build directory - buildDir="${root}/build/${dir}" - - # Define log file - log="${root}/logs/compile.${dir}.log" - rm -f ${log} - - # Configure and build GEOS-Chem source code - # and increment pass/fail/remain counters - build_gcclassic ${root} ${buildDir} ${log} ${results} "${baseOptions}" - if [[ $? -eq 0 ]]; then - let passed++ - else - let failed++ - fi - let remain-- - -done - -#============================================================================ -# Check the number of simulations that have passed -#============================================================================ - -# Print summary to log -print_to_log " " ${results} -print_to_log "Summary of compilation test results:" ${results} -print_to_log "${SEP_MINOR}" ${results} -print_to_log "Complilation tests passed: ${passed}" ${results} -print_to_log "Complilation tests failed: ${failed}" ${results} -print_to_log "Complilation tests not completed: ${remain}" ${results} - -# Check if all tests passed -if [[ "x${passed}" == "x${numTests}" ]]; then - print_to_log "" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} - print_to_log "%%% All compilation tests passed! %%%" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} -fi - -#============================================================================ -# Cleanup and quit -#============================================================================ - -# Free local variables -unset baseOptions -unset failed -unset dir -unset log -unset numTests -unset passed -unset remain -unset results -unset root - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCClassic/intTestCompile_lsf.sh b/test/GCClassic/intTestCompile_lsf.sh deleted file mode 100755 index dd2363aa1..000000000 --- a/test/GCClassic/intTestCompile_lsf.sh +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/bash - -#### Liam: Add LSF tags here! - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestCompile_lsf.sh -# -# !DESCRIPTION: Runs compilation tests on various GEOS-Chem Classic -# run directories (using the LSF scheduler). -#\\ -#\\ -# !CALLING SEQUENCE: -# bsub intTestCompile_lsf.sh -# -# !REVISION HISTORY: -# 03 Nov 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================ -# Global variable and function definitions -#============================================================================ - -# Get the long path of this folder -root=`pwd -P` - -# Load computational environment and OpenMP settings -. ~/.bashrc -. ${root}/gcclassic_env.sh - -# Load common functions for tests -. ${root}/commonFunctionsForTests.sh - -# Count the number of tests to be done = number of run directories -numTests=$(ls -1 "${root}/build" | wc -l) - -# All integration tests will use debugging features -baseOptions="-DCMAKE_BUILD_TYPE=Debug -DRUNDIR="" -DINSTALLCOPY=${root}/exe_files" - -#============================================================================ -# Initialize results logfile -#============================================================================ - -# Results logfile name -results="${root}/logs/results.compile.log" -rm -f ${results} - -# Print header to results log file -print_to_log "${SEP_MAJOR}" ${results} -print_to_log "GEOS-Chem Classic: Compilation Test Results" ${results} -print_to_log "" ${results} -print_to_log "Using ${OMP_NUM_THREADS} OpenMP threads" ${results} -print_to_log "Number of compilation tests: ${numTests}" ${results} -print_to_log "${SEP_MAJOR}" ${results} - -#============================================================================ -# Configure and compile code in each GEOS_Chem run directory -#============================================================================ -print_to_log " " ${results} -print_to_log "Compiliation tests:" ${results} -print_to_log "${SEP_MINOR}" ${results} - -# Change to the top-level build directory -cd ${root} - -# Keep track of the number of tests that passed & failed -let passed=0 -let failed=0 -let remain=${numTests} - -# Loop over build directories -for dir in ${EXE_BUILD_LIST[@]}; do - - # Define build directory - buildDir="${root}/build/${dir}" - - # Define log file - log="${root}/logs/compile.${dir}.log" - rm -f ${log} - - # Configure and build GEOS-Chem source code - # and increment pass/fail/remain counters - build_gcclassic ${root} ${buildDir} ${log} ${results} ${baseOptions} - if [[ $? -eq 0 ]]; then - let passed++ - else - let failed++ - fi - let remain-- - -done - -#============================================================================ -# Check the number of simulations that have passed -#============================================================================ - -# Print summary to log -print_to_log " " ${results} -print_to_log "Summary of compilation test results:" ${results} -print_to_log "${SEP_MINOR}" ${results} -print_to_log "Complilation tests passed: ${passed}" ${results} -print_to_log "Complilation tests failed: ${failed}" ${results} -print_to_log "Complilation tests not completed: ${remain}" ${results} - -# Check if all tests passed -if [[ "x${passed}" == "x${numTests}" ]]; then - print_to_log "" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} - print_to_log "%%% All compilation tests passed! %%%" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} -fi - -#============================================================================ -# Cleanup and quit -#============================================================================ - -# Free local variables -unset baseOptions -unset failed -unset dir -unset log -unset numTests -unset passed -unset remain -unset results -unset root - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCClassic/intTestCompile_slurm.sh b/test/GCClassic/intTestCompile_slurm.sh deleted file mode 100755 index 2906d8c9f..000000000 --- a/test/GCClassic/intTestCompile_slurm.sh +++ /dev/null @@ -1,152 +0,0 @@ -#!/bin/bash - -#SBATCH -c 8 -#SBATCH -N 1 -#SBATCH -t 0-00:30 -#SBATCH -p REQUESTED_PARTITION -#SBATCH --mem=8000 -#SBATCH --mail-type=END - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestCompile_slurm.sh -# -# !DESCRIPTION: Runs compilation tests on various GEOS-Chem Classic -# run directories (using the SLURM scheduler). -#\\ -#\\ -# !CALLING SEQUENCE: -# sbatch intTestCompile_slurm.sh -# -# !REVISION HISTORY: -# 03 Nov 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================ -# Global variable and function definitions -#============================================================================ - -# Get the long path of this folder -root=$(pwd -P) - -# In SLURM: Load computational environment and OpenMP settings -# Otherwise (e.g. for testing) use a small number of OpenMP threads -if [[ "x${SLURM_JOBID}" == "x" ]]; then - export OMP_NUM_THREADS=6 -else - . ~/.bashrc - . ${root}/gcclassic_env.sh -fi - -# Load common functions for tests -. ${root}/commonFunctionsForTests.sh - -# Count the number of tests to be done -numTests=${#EXE_BUILD_LIST[@]} - -# All integration tests will use debugging features -baseOptions="-DCMAKE_BUILD_TYPE=Debug -DRUNDIR='' -DINSTALLCOPY=${root}/exe_files" - -#============================================================================ -# Initialize results logfile -#============================================================================ - -# Results logfile name -results="${root}/logs/results.compile.log" -rm -f ${results} - -# Print header to results log file -print_to_log "${SEP_MAJOR}" ${results} -print_to_log "GEOS-Chem Classic: Compilation Test Results" ${results} -print_to_log "" ${results} -print_to_log "Using ${OMP_NUM_THREADS} OpenMP threads" ${results} -print_to_log "Number of compilation tests: ${numTests}" ${results} -print_to_log "${SEP_MAJOR}" ${results} - -#============================================================================ -# Configure and compile code in each GEOS_Chem run directory -#============================================================================ -print_to_log " " ${results} -print_to_log "Compiliation tests:" ${results} -print_to_log "${SEP_MINOR}" ${results} - -# Change to the top-level build directory -cd ${root} - -# Keep track of the number of tests that passed & failed -let passed=0 -let failed=0 -let remain=${numTests} - -# Loop over build directories -for dir in ${EXE_BUILD_LIST[@]}; do - - # Define build directory - buildDir="${root}/build/${dir}" - - # Define log file - log="${root}/logs/compile.${dir}.log" - rm -f ${log} - - # Configure and build GEOS-Chem source code - # and increment pass/fail/remain counters - build_gcclassic ${root} ${buildDir} ${log} ${results} "${baseOptions}" - if [[ $? -eq 0 ]]; then - let passed++ - else - let failed++ - fi - let remain-- - -done - -#============================================================================ -# Check the number of simulations that have passed -#============================================================================ - -# Print summary to log -print_to_log " " ${results} -print_to_log "Summary of compilation test results:" ${results} -print_to_log "${SEP_MINOR}" ${results} -print_to_log "Complilation tests passed: ${passed}" ${results} -print_to_log "Complilation tests failed: ${failed}" ${results} -print_to_log "Complilation tests not completed: ${remain}" ${results} - -# Check if all tests passed -if [[ "x${passed}" == "x${numTests}" ]]; then - print_to_log "" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} - print_to_log "%%% All compilation tests passed! %%%" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} -fi - -#============================================================================ -# Cleanup and quit -#============================================================================ - -# Free local variables -unset baseOptions -unset failed -unset dir -unset log -unset numTests -unset passed -unset remain -unset results -unset root - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCClassic/intTestCreate.sh b/test/GCClassic/intTestCreate.sh deleted file mode 100755 index 81ac92f72..000000000 --- a/test/GCClassic/intTestCreate.sh +++ /dev/null @@ -1,481 +0,0 @@ -#!/bin/bash - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestCreate.sh -# -# !DESCRIPTION: Creates integration test run directories in a user-specified -# root folder, and copies a run script there. -#\\ -#\\ -# !CALLING SEQUENCE: -# ./intTestCreate.sh /path/to/int/test/root ENV-FILE or -# ./intTestCreate.sh /path/to/int/test/root ENV-FILE short=1 -# -# !REMARKS: -# Right now we pass values to the existing ./createRunDir.sh, -# but will implement a more elegant solution later. -# -# !REVISION HISTORY: -# 09 Oct 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================= -# Arguments -#============================================================================= - -# Integration test root folder -root=${1} -if [[ "x${root}" == "x" ]]; then - echo "ERROR: The root-level directory for tests has not been specified!" - exit 1 -fi - -# Environment file -envFile=${2} -if [[ "x${envFile}" == "x" ]]; then - echo "ERROR: The enviroment file (w/ module loads) has not been specified!" - exit 1 -fi -if [[ ! -f ${envFile} ]]; then - - echo "ERROR: The enviroment file is not a valid file!" - exit 1 -fi - -# Run a short integration test? -short=${3} - -#============================================================================= -# Global variable and function definitions -#============================================================================= - -# Current directory -testDir=$(pwd -P) -cd ${testDir} - -# Top-level GEOS-Chem directory -cd ../.. -geosChemDir=$(pwd -P) - -# GCClassic superproject directory -cd ../../ -superProjectDir=$(pwd -P) -cd ${superProjectDir} - -# Directory where the run creation scripts are found -runDir=${geosChemDir}/run/GCClassic - -# Load file with utility functions to setup configuration files -. ${geosChemDir}/test/shared/commonFunctionsForTests.sh - -# Get the absolute path of the root folder -root=$(absolute_path ${root}) - -# Log file -log=${root}/logs/createIntTests.log - -# Echo header -printf "${SEP_MAJOR}\n" -printf "Creating GCClassic Integration Tests\n" -printf "${SEP_MAJOR}\n" - -#============================================================================= -# Initial setup of integration test directory -#============================================================================= - -# Create integration test root folder if it doesn't exist -if [[ ! -d ${root} ]]; then - mkdir -p ${root} -fi - -# Get the absolute path of the root folder again; -# now that the folder exists -root=$(absolute_path ${root}) - -# Remove everything in the test folder -cleanup_files ${root} - -# Make the directory for the executables -printf "\nCreating new build and executable directories:\n" -echo " ... ${root}/exe_files" -mkdir -p ${root}/exe_files - -# Make the build directories -if [[ ! -d ${root}/build ]]; then - for dir in ${EXE_BUILD_LIST[@]}; do - echo " ... ${root}/build/${dir}" - mkdir -p ${root}/build/${dir} - done -fi - -# Copying the run scripts to the Integration Test root folder -printf "\nCopying run scripts to: ${root}\n" -cp -f ${envFile} ${root}/gcclassic_env.sh -cp -f ${testDir}/intTest*.sh ${root} -cp -f ${testDir}/commonFunctionsForTests.sh ${root} - -# Create a symbolic link to the code from the Integration Test root folder -ln -s ${superProjectDir} ${root}/CodeDir - -# Create log directory -if [[ !(-d ${root}/logs) ]]; then - printf "\nCreating log directory: ${root}/logs\n" - mkdir ${root}/logs -fi - -# Change to the directory where we will create the rundirs -printf "\nCreating new run directories:\n" - -# Switch to folder where rundir creation scripts live -cd ${runDir} - -#============================================================================= -# Create individual run directories: 2x25 - MERRA2 - 72L -#============================================================================= - -dir="gc_2x25_CH4_merra2" -create_rundir "3\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_CO2_merra2" -create_rundir "4\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_aerosol_merra2" -create_rundir "2\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_fullchem_merra2" -create_rundir "1\n1\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -# DEBUG: Exit after creating a couple of rundirs -# if the 2nd argument is passed and not a null string -if [[ "x${short}" != "x" ]]; then - cd ${testDir} - exit 0 -fi - -#---------------------------------------------------------------------------- -# NOTE: Disable most 2x25 fullchem rundirs to reduce execution time -# (bmy, 05 Jan 2020) -# -#dir="gc_2x25_fullchem_aciduptake_merra2" -#create_rundir "1\n5\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_APM_merra2" -#create_rundir "1\n7\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -# NOTE: Benchmark @ 2 x 2.5 will fail due to no available mass tuning factor -#dir="gc_2x25_fullchem_benchmark_merra2" -#create_rundir "1\n1\n2\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_complexSOA_merra2" -#create_rundir "1\n3\n1\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_complexSOA_SVPOA_merra2" -#create_rundir "1\n3\n2\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_marinePOA_merra2" -#create_rundir "1\n4\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -#---------------------------------------------------------------------------- - -dir="gc_2x25_Hg_merra2" -create_rundir "5\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_POPs_BaP_merra2" -create_rundir "6\n1\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_tagCH4_merra2" -create_rundir "7\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_tagCO_merra2" -create_rundir "8\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_tagO3_merra2" -create_rundir "9\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_TransportTracers_merra2" -create_rundir "10\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_TransportTracers_merra2_LuoWd" -create_rundir "10\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_metals_merra2" -create_rundir "11\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_2x25_carbon_merra2" -create_rundir "12\n1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -#============================================================================= -# Create individual run directories: 2x25 - GEOSFP - 72L -#============================================================================= - -#----------------------------------------------------------------------------- -# NOTE: Disable 2x25 tests w/ GEOS-FP to reduce testing time (bmy, 05 Jan 2022) -# -#dir="gc_2x25_CH4_geosfp" -#create_rundir "3\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_CO2_geosfp" -#create_rundir "4\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_aerosol_geosfp" -#create_rundir "2\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_geosfp" -#create_rundir "1\n1\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_aciduptake_geosfp" -#create_rundir "1\n5\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_APM_geosfp" -#create_rundir "1\n7\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -## NOTE: Benchmark @ 2 x 2.5 will fail due to no available tuning factor -##dir="gc_2x25_fullchem_benchmark_geosfp" -##create_rundir "1\n1\n2\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_complexSOA_geosfp" -#create_rundir "1\n3\n1\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_complexSOA_SVPOA_geosfp" -#create_rundir "1\n3\n2\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_fullchem_marinePOA_geosfp" -#create_rundir "1\n4\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_Hg_geosfp" -#create_rundir "5\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_POPs_BaP.geosfp" -#create_rundir "6\n1\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_tagCH4_geosfp" -#create_rundir "7\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_tagCO_geosfp" -#create_rundir "8\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_tagO3_geosfp" -#create_rundir "9\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_TransportTracers_geosfp" -#create_rundir "10\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -# NOTE: The metals simulation runs from 2011-2013, the earlier part of -# which is out of the range of the GEOS-FP met fields. Disable -# the metals simulation with GEOS-FP met for now (bmy, 07 Jul 2021) -#dir="gc_2x25_metals_geosfp" -#create_rundir "11\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_2x25_TransportTracers_geosfp_LuoWd" -#create_rundir "10\n2\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -#----------------------------------------------------------------------------- - -#============================================================================= -# Create individual run directories: 4x5 - MERRA2 - 72L -#============================================================================= - -dir="gc_4x5_CH4_merra2" -create_rundir "3\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_aerosol_merra2" -create_rundir "2\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_merra2" -create_rundir "1\n1\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_merra2_LuoWd" -create_rundir "1\n1\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_aciduptake_merra2" -create_rundir "1\n5\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_APM_merra2" -create_rundir "1\n7\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_benchmark_merra2" -create_rundir "1\n2\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_complexSOA_merra2" -create_rundir "1\n3\n1\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_complexSOA_SVPOA_merra2" -create_rundir "1\n3\n2\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_marinePOA_merra2" -create_rundir "1\n4\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_RRTMG_merra2" -create_rundir "1\n8\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_TOMAS15_merra2_47L" -create_rundir "1\n6\n1\n1\n1\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_TOMAS40_merra2_47L" -create_rundir "1\n6\n2\n1\n1\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_Hg_merra2" -create_rundir "5\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_POPs_BaP_merra2" -create_rundir "6\n1\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_tagCH4_merra2" -create_rundir "7\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_tagCO_merra2" -create_rundir "8\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_tagO3_merra2" -create_rundir "9\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_TransportTracers_merra2" -create_rundir "10\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_TransportTracers_merra2_LuoWd" -create_rundir "10\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_metals_merra2" -create_rundir "11\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_carbon_merra2" -create_rundir "12\n1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -#============================================================================= -# Create individual run directories: 4x5 - GEOSFP - 72L -#============================================================================= - -dir="gc_4x5_CH4_geosfp" -create_rundir "3\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_aerosol_geosfp" -create_rundir "2\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_fullchem_geosfp" -create_rundir "1\n1\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -#----------------------------------------------------------------------------- -# Disable most GEOS-Chem fullchem tests w/ GEOS-FP to decrease run time -# (bmy, 05 Jan 2021) -# -#dir="gc_4x5_fullchem_geosfp_LuoWd" -#create_rundir "1\n1\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_4x5_fullchem_aciduptake_geosfp" -#create_rundir "1\n5\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_4x5_fullchem_APM_geosfp" -#create_rundir "1\n7\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_4x5_fullchem_benchmark_geosfp" -#create_rundir "1\n2\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_4x5_fullchem_complexSOA_geosfp" -#create_rundir "1\n3\n1\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_4x5_fullchem_complexSOA_SVPOA_geosfp" -#create_rundir "1\n3\n2\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_4x5_fullchem_marinePOA_geosfp" -#create_rundir "1\n4\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_4x5_fullchem_RRTMG_geosfp" -#create_rundir "1\n8\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_4x5_fullchem_TOMAS15_geosfp_47L" -#create_rundir "1\n6\n1\n2\n1\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -# -#dir="gc_4x5_fullchem_TOMAS40_geosfp_47L" -#create_rundir "1\n6\n2\n2\n1\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -#----------------------------------------------------------------------------- - -dir="gc_4x5_Hg_geosfp" -create_rundir "5\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_POPs_BaP_geosfp" -create_rundir "6\n1\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_tagCH4_geosfp" -create_rundir "7\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_tagCO_geosfp" -create_rundir "8\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_tagO3_geosfp" -create_rundir "9\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_TransportTracers_geosfp" -create_rundir "10\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_TransportTracers_geosfp_LuoWd" -create_rundir "10\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -# NOTE: The metals simulation runs from 2011-2013, the earlier part of -# which is out of the range of the GEOS-FP met fields. Disable -# the metals simulation with GEOS-FP met for now (bmy, 07 Jul 2021) -#dir="gc_4x5_metals_geosfp" -#create_rundir "11\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_4x5_carbon_geosfp" -create_rundir "12\n2\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -#============================================================================= -# Create individual run directories: 4x5 and 47L (both MERRA2 and GEOSFP) -#============================================================================= - -dir="gc_4x5_fullchem_merra2_47L" -create_rundir "1\n1\n1\n1\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -#----------------------------------------------------------------------------- -# Disable most GEOS-Chem fullchem_47L tests w/ GEOS-FP to decrease run time -# (bmy, 05 Jan 2021) -#dir="gc_4x5_fullchem_geosfp_47L" -#create_rundir "1\n1\n2\n1\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -#----------------------------------------------------------------------------- - -#============================================================================= -# Nested-grid simulations -#============================================================================= - -dir="gc_05x0625_CH4_merra2_47L_na" -create_rundir "3\n1\n3\n4\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_025x03125_CH4_geosfp_47L_na" -create_rundir "3\n2\n4\n4\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_05x0625_fullchem_merra2_47L_na" -create_rundir "1\n1\n1\n3\n4\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -dir="gc_025x03125_fullchem_geosfp_47L_na" -create_rundir "1\n1\n2\n4\n4\n2\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} - -#============================================================================= -# Cleanup and quit -#============================================================================= - -# Switch back to the present directory -cd ${testDir} - -# Free local variables -unset root -unset testDir -unset geosChemDir -unset superProjectDir -unset runDir -unset log -unset dir - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCClassic/intTestExecute_interactive.sh b/test/GCClassic/intTestExecute_interactive.sh deleted file mode 100755 index 33056b3e6..000000000 --- a/test/GCClassic/intTestExecute_interactive.sh +++ /dev/null @@ -1,180 +0,0 @@ -#!/bin/bash - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestExecute_interactive.sh -# -# !DESCRIPTION: Runs execution tests on various GEOS-Chem Classic -# run directories (in an interactive session such as on AWS). -#\\ -#\\ -# !CALLING SEQUENCE: -# ./intTestExecute_interactive.sh -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================ -# Global variable and function definitions -#============================================================================ - -# Get the long path of this folder -root=`pwd -P` - -# Load computational environment and settings) -. ~/.bashrc -. ${root}/gcclassic_env.sh -export OMP_STACKSIZE=500m - -# For AWS, set $OMP_NUM_THREADS to the available cores -kernel=$(uname -r) -[[ "x${kernel}" == "xaws" ]] && export OMP_NUM_THREADS=$(nproc) - -# Load common functions for tests -. ${root}/commonFunctionsForTests.sh - -# Count the number of tests to be done = number of run directories -numTests=$(count_rundirs ${root}) - -#============================================================================ -# Initialize results logfile -#============================================================================ - -# Results logfile name -results="${root}/logs/results.execute.log" -rm -f ${results} - -# Print header to results log file -print_to_log "${SEP_MAJOR}" ${results} -print_to_log "GEOS-Chem Classic: Execution Test Results" ${results} -print_to_log "" ${results} -print_to_log "Using ${OMP_NUM_THREADS} OpenMP threads" ${results} -print_to_log "Number of execution tests: ${numTests}" ${results} -print_to_log "${SEP_MAJOR}" ${results} - -#============================================================================ -# Run the GEOS-Chem executable in each GEOS-Chem run directory -#============================================================================ -print_to_log " " ${results} -print_to_log "Execution tests:" ${results} -print_to_log "${SEP_MINOR}" ${results} - -# Keep track of the number of tests that passed & failed -let passed=0 -let failed=0 -let remain=${numTests} - -# Loop over rundirs and run GEOS-Chem -for runDir in *; do - - # Do the following if for only valid GEOS-Chem run dirs - expr=$(is_valid_rundir "${root}/${runDir}") - if [[ "x${expr}" == "xTRUE" ]]; then - - # Define log file - log="${root}/logs/execute.${runDir}.log" - rm -f ${LOG} - - # Messages for execution pass & fail - passMsg="$runDir${FILL:${#runDir}}.....${EXE_PASS_STR}" - failMsg="$runDir${FILL:${#runDir}}.....${EXE_FAIL_STR}" - - # Get the executable file corresponding to this run directory - exeFile=$(gcclassic_exe_name ${runDir}) - - # Test if the executable exists - if [[ -f ${root}/exe_files/${exeFile} ]]; then - - #---------------------------------------------------------------- - # If the executable file exists, we can do the test - #---------------------------------------------------------------- - - # Change to this run directory; remove leftover log file - cd ${root}/${runDir} - - # Copy the executable file here - cp -f ${root}/exe_files/${exeFile} . - - # Run the code if the executable is present. Then update the - # pass/fail counters and write a message to the results log file. - ./${exeFile} >> ${log} 2>&1 - if [[ $? -eq 0 ]]; then - let passed++ - if [[ "x${results}" != "x" ]]; then - print_to_log "${passMsg}" ${results} - fi - else - let failed++ - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - fi - - # Change to root directory for next iteration - cd ${root} - - else - - #---------------------------------------------------------------- - # If the executable is missing, update the "fail" counter - # and write the "failed" message to the results log file. - #---------------------------------------------------------------- - let failed++ - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - fi - - # Decrement the count of remaining tests - let remain-- - fi -done - -#============================================================================ -# Check the number of simulations that have passed -#============================================================================ - -# Print summary to log -print_to_log " " ${results} -print_to_log "Summary of test results:" ${results} -print_to_log "${SEP_MINOR}" ${results} -print_to_log "Execution tests passed: ${passed}" ${results} -print_to_log "Execution tests failed: ${failed}" ${results} -print_to_log "Execution tests not yet completed: ${remain}" ${results} - -# Check if all tests passed -if [[ "x${passed}" == "x${numTests}" ]]; then - print_to_log "" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} - print_to_log "%%% All execution tests passed! %%%" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} -fi - -#============================================================================ -# Cleanup and quit -#============================================================================ - -# Free local variables -unset exeFile -unset failed -unset failmsg -unset log -unset numTests -unset passed -unset passMsg -unset remain -unset results -unset root - -# Free imported global variables -unset FILL -unset LINE -unset LINELC -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCClassic/intTestExecute_lsf.sh b/test/GCClassic/intTestExecute_lsf.sh deleted file mode 100755 index 6ed051408..000000000 --- a/test/GCClassic/intTestExecute_lsf.sh +++ /dev/null @@ -1,186 +0,0 @@ -#!/bin/bash - -#### Liam: Add LSF tags here! - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestExecute_lsf.sh -# -# !DESCRIPTION: Runs execution tests on various GEOS-Chem Classic -# run directories (using the LSF scheduler). -#\\ -#\\ -# !CALLING SEQUENCE: -# sbatch intTestExecute_lsf.sh -# -# !REVISION HISTORY: -# 03 Nov 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================ -# Global variable and function definitions -#============================================================================ - -# Get the long path of this folder -root=`pwd -P` - -# In SLURM: Load software environment and OpenMP settings -# Otherwise (e.g. for testing) use a small number of OpenMP threads -if [[ "x${SLURM_JOBID}" == "x" ]]; then - export OMP_NUM_THREADS=6 -else - . ~/.bashrc - . ${root}/gcclassic_env.sh -fi - -# Load common functions for tests -. ${root}/commonFunctionsForTests.sh - -# Count the number of tests to be done = number of run directories -numTests=$(count_rundirs ${root}) - -#============================================================================ -# Initialize results logfile -#============================================================================ - -# Results logfile name -results="${root}/logs/results.execute.log" -rm -f ${results} - -# Print header to results log file -print_to_log "${SEP_MAJOR}" ${results} -print_to_log "GEOS-Chem Classic: Execution Test Results" ${results} -print_to_log "" ${results} -print_to_log "Using ${OMP_NUM_THREADS} OpenMP threads" ${results} -print_to_log "Number of execution tests: ${numTests}" ${results} -print_to_log "${SEP_MAJOR}" ${results} - -#============================================================================ -# Run the GEOS-Chem executable in each GEOS-Chem run directory -#============================================================================ -print_to_log " " ${results} -print_to_log "Execution tests:" ${results} -print_to_log "${SEP_MINOR}" ${results} - -# Keep track of the number of tests that passed & failed -let passed=0 -let failed=0 -let remain=${numTests} - -# Loop over rundirs and run GEOS-Chem -for runDir in *; do - - # Do the following if for only valid GEOS-Chem run dirs - expr=$(is_valid_rundir "${root}/${runDir}") - if [[ "x${expr}" == "xTRUE" ]]; then - - # Define log file - log="${root}/logs/execute.${runDir}.log" - rm -f ${LOG} - - # Messages for execution pass & fail - passMsg="$runDir${FILL:${#runDir}}.....${EXE_PASS_STR}" - failMsg="$runDir${FILL:${#runDir}}.....${EXE_FAIL_STR}" - - # Get the executable file corresponding to this run directory - exeFile=$(gcclassic_exe_name ${runDir}) - - # Test if the executable exists - if [[ -f ${root}/exe_files/${exeFile} ]]; then - - #---------------------------------------------------------------- - # If the executable file exists, we can do the test - #---------------------------------------------------------------- - - # Change to this run directory; remove leftover log file - cd ${root}/${runDir} - - # Copy the executable file here - cp -f ${root}/exe_files/${exeFile} . - - # Run the code if the executable is present. Then update the - # pass/fail counters and write a message to the results log file. - ./${exeFile} >> ${log} 2>&1 - if [[ $? -eq 0 ]]; then - let passed++ - if [[ "x${results}" != "x" ]]; then - print_to_log "${passMsg}" ${results} - fi - else - let failed++ - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - fi - - # Change to root directory for next iteration - cd ${root} - - else - - #---------------------------------------------------------------- - # If the executable is missing, update the "fail" counter - # and write the "failed" message to the results log file. - #---------------------------------------------------------------- - let failed++ - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - fi - - # Decrement the count of remaining tests - let remain-- - fi -done - -#============================================================================ -# Check the number of simulations that have passed -#============================================================================ - -# Print summary to log -print_to_log " " ${results} -print_to_log "Summary of test results:" ${results} -print_to_log "${SEP_MINOR}" ${results} -print_to_log "Execution tests passed: ${passed}" ${results} -print_to_log "Execution tests failed: ${failed}" ${results} -print_to_log "Execution tests not yet completed: ${remain}" ${results} - -# Check if all tests passed -if [[ "x${passed}" == "x${numTests}" ]]; then - print_to_log "" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} - print_to_log "%%% All execution tests passed! %%%" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} -fi - -#============================================================================ -# Cleanup and quit -#============================================================================ - -# Free local variables -unset exeFile -unset failed -unset failmsg -unset log -unset numTests -unset passed -unset passMsg -unset remain -unset results -unset root - -# Free imported global variables -unset FILL -unset LINE -unset LINELC -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCClassic/intTestExecute_slurm.sh b/test/GCClassic/intTestExecute_slurm.sh deleted file mode 100755 index c3bcdda21..000000000 --- a/test/GCClassic/intTestExecute_slurm.sh +++ /dev/null @@ -1,188 +0,0 @@ -#!/bin/bash - -#SBATCH -c 24 -#SBATCH -N 1 -#SBATCH -t 0-03:00 -#SBATCH -p REQUESTED_PARTITION -#SBATCH --mem=90000 -#SBATCH --mail-type=END - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestExecute_slurm.sh -# -# !DESCRIPTION: Runs execution tests on various GEOS-Chem Classic -# run directories (using the SLURM scheduler). -#\\ -#\\ -# !CALLING SEQUENCE: -# sbatch intTestExecute_slurm.sh -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================ -# Global variable and function definitions -#============================================================================ - -# Get the long path of this folder -root=`pwd -P` - -# In SLURM: Load software environment and OpenMP settings -# Otherwise (e.g. for testing) use a small number of OpenMP threads -if [[ "x${SLURM_JOBID}" == "x" ]]; then - export OMP_NUM_THREADS=6 -else - . ~/.bashrc - . ${root}/gcclassic_env.sh - export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK -fi - -# Load common functions for tests -. ${root}/commonFunctionsForTests.sh - -# Count the number of tests to be done = number of run directories -numTests=$(count_rundirs ${root}) - -#============================================================================ -# Initialize results logfile -#============================================================================ - -# Results logfile name -results="${root}/logs/results.execute.log" -rm -f ${results} - -# Print header to results log file -print_to_log "${SEP_MAJOR}" ${results} -print_to_log "GEOS-Chem Classic: Execution Test Results" ${results} -print_to_log "" ${results} -print_to_log "Using ${OMP_NUM_THREADS} OpenMP threads" ${results} -print_to_log "Number of execution tests: ${numTests}" ${results} -print_to_log "${SEP_MAJOR}" ${results} - -#============================================================================ -# Run the GEOS-Chem executable in each GEOS-Chem run directory -#============================================================================ -print_to_log " " ${results} -print_to_log "Execution tests:" ${results} -print_to_log "${SEP_MINOR}" ${results} - -# Keep track of the number of tests that passed & failed -let passed=0 -let failed=0 -let remain=${numTests} - -# Loop over rundirs and run GEOS-Chem -for runDir in *; do - - # Do the following if for only valid GEOS-Chem run dirs - expr=$(is_valid_rundir "${root}/${runDir}") - if [[ "x${expr}" == "xTRUE" ]]; then - - # Define log file - log="${root}/logs/execute.${runDir}.log" - rm -f ${LOG} - - # Messages for execution pass & fail - passMsg="$runDir${FILL:${#runDir}}.....${EXE_PASS_STR}" - failMsg="$runDir${FILL:${#runDir}}.....${EXE_FAIL_STR}" - - # Get the executable file corresponding to this run directory - exeFile=$(gcclassic_exe_name ${runDir}) - - # Test if the executable exists - if [[ -f ${root}/exe_files/${exeFile} ]]; then - - #---------------------------------------------------------------- - # If the executable file exists, we can do the test - #---------------------------------------------------------------- - - # Change to this run directory; remove leftover log file - cd ${root}/${runDir} - - # Copy the executable file here - cp -f ${root}/exe_files/${exeFile} . - - # Run the code if the executable is present. Then update the - # pass/fail counters and write a message to the results log file. - srun -c ${OMP_NUM_THREADS} ./${exeFile} >> ${log} 2>&1 - if [[ $? -eq 0 ]]; then - let passed++ - if [[ "x${results}" != "x" ]]; then - print_to_log "${passMsg}" ${results} - fi - else - let failed++ - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - fi - - # Change to root directory for next iteration - cd ${root} - - else - - #---------------------------------------------------------------- - # If the executable is missing, update the "fail" counter - # and write the "failed" message to the results log file. - #---------------------------------------------------------------- - let failed++ - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - fi - - # Decrement the count of remaining tests - let remain-- - fi -done - -#============================================================================ -# Check the number of simulations that have passed -#============================================================================ - -# Print summary to log -print_to_log " " ${results} -print_to_log "Summary of test results:" ${results} -print_to_log "${SEP_MINOR}" ${results} -print_to_log "Execution tests passed: ${passed}" ${results} -print_to_log "Execution tests failed: ${failed}" ${results} -print_to_log "Execution tests not yet completed: ${remain}" ${results} - -# Check if all tests passed -if [[ "x${passed}" == "x${numTests}" ]]; then - print_to_log "" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} - print_to_log "%%% All execution tests passed! %%%" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} -fi - -#============================================================================ -# Cleanup and quit -#============================================================================ - -# Free local variables -unset exeFile -unset failed -unset failmsg -unset log -unset numTests -unset passed -unset passMsg -unset remain -unset results -unset root - -# Free imported global variables -unset FILL -unset LINE -unset LINELC -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCClassic/intTest_interactive.sh b/test/GCClassic/intTest_interactive.sh deleted file mode 100755 index f4986809b..000000000 --- a/test/GCClassic/intTest_interactive.sh +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTests_interactive.sh -# -# !DESCRIPTION: Runs integration tests on the various GEOS-Chem Classic -# run directories interactively. -#\\ -#\\ -# !CALLING SEQUENCE: -# ./intTests_interactive.sh /integration/test/root/folder ENV-FILE or -# ./intTests_interactive.sh /integration/test/root/folder ENV-FILE short=1 -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================= -# Check arguments and define variables -#============================================================================= - -# 1st argument: Root directory for integration tests -INT_TEST_ROOT=${1} -if [[ "x${INT_TEST_ROOT}" == "x" ]]; then - echo "ERROR: The root-level directory for tests has not been specified!" - exit -fi - -# 2nd argument: Environment file -ENV_FILE=${2} -if [[ "x${ENV_FILE}" == "x" ]]; then - echo "ERROR: The enviroment file (w/ module loads) has not been specified!" - exit -fi - -# 3rd argument: Run a short integration test (for development)? -SHORT=${3} - -#============================================================================= -# Load file with utility functions to setup configuration files -#============================================================================= - -# Current directory -THIS_DIR=$(pwd -P) - -# Load common functions -. ${THIS_DIR}/commonFunctionsForTests.sh - -#============================================================================= -# Create integration test directories in the root folder -#============================================================================= - -# Convert integration test root folder to an absolute path -INT_TEST_ROOT=$(absolute_path ${INT_TEST_ROOT}) - -# Create GEOS-Chem run directories in the integration test root folder -./intTestCreate.sh ${INT_TEST_ROOT} ${ENV_FILE} ${SHORT} -if [[ $? -ne 0 ]]; then - exit 0 -fi - -# Change to the integration test root folder -if [[ -d ${INT_TEST_ROOT} ]]; then - cd ${INT_TEST_ROOT} -else - echo "ERROR: ${INT_TEST_ROOT} is not a valid directory! Exiting..." - exit 1 -fi - -#============================================================================= -# run compilation tests script -#============================================================================= -./intTestCompile_interactive.sh -if [[ $? != 0 ]]; then - echo "" - echo "Compilation tests failed! Exiting..." - cd ${THIS_DIR} - exit 1 -fi -echo "" -echo "Compilation tests finished!" - -#============================================================================= -# run execution tests script as a job dependency -#============================================================================= -./intTestExecute_interactive.sh -if [[ $? != 0 ]]; then - echo "" - echo "Execution tests failed! Exiting..." - cd ${THIS_DIR} - exit 1 -fi -echo "" -echo "Execution tests finished!" - -# Change back to this directory -cd ${THIS_DIR} - -#============================================================================= -# Cleanup and quit -#============================================================================= -# Free local variables -unset ENV_FILE -unset INT_TEST_ROOT -unset JOBID -unset OUTPUT -unset SHORT -unset THIS_DIR - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCClassic/intTest_lsf.sh b/test/GCClassic/intTest_lsf.sh deleted file mode 100755 index ab54128bf..000000000 --- a/test/GCClassic/intTest_lsf.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/bash - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTests_lsf.sh -# -# !DESCRIPTION: Runs integration tests on the various GEOS-Chem Classic -# run directories (using the LSF scheduler). Compilation tests and -# execution tests are submitted as separate SLURM jobs, using dependencies. -#\\ -#\\ -# !CALLING SEQUENCE: -# ./intTests_lsf.sh /integration/test/root/folder ENV-FILE or -# ./intTests_lsf.sh /integration/test/root/folder ENV-FILE short=1 -# -# !REVISION HISTORY: -# 03 Nov 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================= -# Check arguments and define variables -#============================================================================= - -# 1st argument: Root directory for integration tests -INT_TEST_ROOT=${1} -if [[ "x${INT_TEST_ROOT}" == "x" ]]; then - echo "ERROR: The root-level directory for tests has not been specified!" - exit -fi - -# 2nd argument: Environment file -ENV_FILE=${2} -if [[ "x${ENV_FILE}" == "x" ]]; then - echo "ERROR: The enviroment file (w/ module loads) has not been specified!" - exit -fi - -# 3rd argument: Run a short integration test (for development)? -SHORT=${3} - -#============================================================================= -# Load file with utility functions to setup configuration files -#============================================================================= - -# Current directory -THIS_DIR=$(pwd -P) - -# Load common functions -. ${THIS_DIR}/commonFunctionsForTests.sh - -#============================================================================= -# Create integration test directories in the root folder -#============================================================================= - -# Convert integration test root folder to an absolute path -INT_TEST_ROOT=$(absolute_path ${INT_TEST_ROOT}) - -# Create GEOS-Chem run directories in the integration test root folder -./intTestCreate.sh ${INT_TEST_ROOT} ${ENV_FILE} ${SHORT} -if [[ $? -ne 0 ]]; then - exit 0 -fi - -# Change to the integration test root folder -if [[ -d ${INT_TEST_ROOT} ]]; then - cd ${INT_TEST_ROOT} -else - echo "ERROR: ${INT_TEST_ROOT} is not a valid directory! Exiting..." - exit 1 -fi - -#============================================================================= -# Submit compilation tests script -# -#### Liam: Modify code to return job id - -#============================================================================= -OUTPUT=$(bsub intTestCompile_slurm.sh) -OUTPUT=($OUTPUT) -CMP_ID=${OUTPUT[3]} - -#============================================================================= -# Submit execution tests script as a job dependency -# -#### Liam: Modify code to submit LSF job depending on prior job -#============================================================================= -OUTPUT=$(bsub --dependency... intTestExecute_slurm.sh) -OUTPUT=($OUTPUT) -EXE_ID=${OUTPUT[3]} - -# Change back to this directory -cd ${THIS_DIR} - -#============================================================================= -# Cleanup and quit -#============================================================================= -echo "" -echo "Compilation tests submitted as LSF job ${CMP_ID}" -echo "Execution tests submitted as LSF job ${EXE_ID}" - -# Free local variables -unset ENV_FILE -unset INT_TEST_ROOT -unset JOBID -unset OUTPUT -unset SHORT -unset THIS_DIR - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCClassic/intTest_slurm.sh b/test/GCClassic/intTest_slurm.sh deleted file mode 100755 index 16a591fc3..000000000 --- a/test/GCClassic/intTest_slurm.sh +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/bash - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTests_slurm.sh -# -# !DESCRIPTION: Runs integration tests on the various GEOS-Chem Classic -# run directories (using the SLURM scheduler). Compilation tests and -# execution tests are submitted as separate SLURM jobs, using dependencies. -#\\ -#\\ -# !CALLING SEQUENCE: -# ./intTests_slurm.sh /integration/test/root/folder ENV-FILE or -# ./intTests_slurm.sh /integration/test/root/folder ENV-FILE short=1 -# -# !REVISION HISTORY: -# 03 Nov 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================= -# Check arguments and define variables -#============================================================================= - -# 1st argument: Root directory for integration tests -INT_TEST_ROOT=${1} -if [[ "x${INT_TEST_ROOT}" == "x" ]]; then - echo "ERROR: The root-level directory for tests has not been specified!" - exit -fi - -# 2nd argument: Environment file -ENV_FILE=${2} -if [[ "x${ENV_FILE}" == "x" ]]; then - echo "ERROR: The enviroment file (w/ module loads) has not been specified!" - exit -fi - -# 3rd argument: partition -PARTITION=${3} -if [[ "x${PARTITION}" == "x" ]]; then - PARTITION=huce_intel -fi - -# 4th argument: Run a short integration test (for development)? -SHORT=${4} - -#============================================================================= -# Load file with utility functions to setup configuration files -#============================================================================= - -# Current directory -THIS_DIR=$(pwd -P) - -# Load common functions -. ${THIS_DIR}/commonFunctionsForTests.sh - -#============================================================================= -# Create integration test directories in the root folder -#============================================================================= - -# Convert integration test root folder to an absolute path -INT_TEST_ROOT=$(absolute_path ${INT_TEST_ROOT}) - -# Create GEOS-Chem run directories in the integration test root folder -./intTestCreate.sh ${INT_TEST_ROOT} ${ENV_FILE} ${SHORT} -if [[ $? -ne 0 ]]; then - exit 0 -fi - -# Change to the integration test root folder -if [[ -d ${INT_TEST_ROOT} ]]; then - cd ${INT_TEST_ROOT} -else - echo "ERROR: ${INT_TEST_ROOT} is not a valid directory! Exiting..." - exit 1 -fi - -#============================================================================= -# Replace the "REQUESTED_PARTITION" string with the specified partition -# in the intTestCompile_slurm.sh and intTestExecute_slurm.sh scripts -#============================================================================= -sed_ie s/REQUESTED_PARTITION/${PARTITION}/ intTestCompile_slurm.sh -sed_ie s/REQUESTED_PARTITION/${PARTITION}/ intTestExecute_slurm.sh - -#============================================================================= -# Submit compilation tests script -#============================================================================= -OUTPUT=$(sbatch intTestCompile_slurm.sh) -OUTPUT=($OUTPUT) -CMP_ID=${OUTPUT[3]} - -#============================================================================= -# Submit execution tests script as a job dependency -#============================================================================= -OUTPUT=$(sbatch --dependency=afterok:${CMP_ID} intTestExecute_slurm.sh) -OUTPUT=($OUTPUT) -EXE_ID=${OUTPUT[3]} - -# Change back to this directory -cd ${THIS_DIR} - -#============================================================================= -# Cleanup and quit -#============================================================================= -echo "" -echo "Compilation tests submitted as SLURM job ${CMP_ID}" -echo "Execution tests submitted as SLURM job ${EXE_ID}" - -# Free local variables -unset ENV_FILE -unset INT_TEST_ROOT -unset JOBID -unset OUTPUT -unset SHORT -unset THIS_DIR - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCHP/.gitignore b/test/GCHP/.gitignore deleted file mode 100644 index 6cb577a2c..000000000 --- a/test/GCHP/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -*.[oax] -*.mod -*.MOD -*~* -*.swp -*.bak -*.patch -*.diff -diffs -bak -misc -*.pp.* -*.pdb -*.inst.* -*.continue.* -*.ppk -*.log -bin/* -build/ -build_*/ -*___.h -*___.rc -core.* \ No newline at end of file diff --git a/test/GCHP/README b/test/GCHP/README deleted file mode 100644 index c4e50de4d..000000000 --- a/test/GCHP/README +++ /dev/null @@ -1,49 +0,0 @@ -README for test/GCHPctm (GEOS-Chem integration test directory) -10 Nov 2020 -GEOS-Chem Support Team -geos-chem-support@g.harvard.edu -=============================================================================== - -Overview: ---------- - -This directory contains scripts to submit automated GCHP integration -tests, which will test the following process: - -1. GCHP run directory creation -2. GCHP code configuration and compilation -3. GCHP execution - -Integration tests are mostly intended to be run by GEOS-Chem developers, -rather than end users. Driver scripts in this directory are customized -for use on the Harvard Cannon cluster. - - -Files: ------- - -# Driver script to run GCHP integration tests (compiles and executes GCHP) -intTest_slurm.sh - -# Supporting scripts -intTestCompile_slurm.sh : Script to only compile GCHP -intTestExecute_slurm.sh : Script to only run GCHP -commonFunctionsForTests.sh : Bash script with reusable functions -intTestCreate.sh : Script to create GCHP run directories to test - -Instructions to run integration tests: --------------------------- -Execute the following commands at the Unix prompt from within the GCHP code: - - On Harvard Cannon cluster: - ------------------------- - cd test - ./intTest_slurm.sh /path/to/integration/test/dir /path/to/gchp/env/file - -NOTES: -- The first argument is the directory where you want all GCHP - integration test directories and files to be stored. -- The second argument is a GCHP environment file that loads libraries. -- For debugging you can add an optional third parameter debug=1, - which will run integration tests for two run directories. This is useful - for development & debugging. diff --git a/test/GCHP/commonFunctionsForTests.sh b/test/GCHP/commonFunctionsForTests.sh deleted file mode 120000 index a3316e13c..000000000 --- a/test/GCHP/commonFunctionsForTests.sh +++ /dev/null @@ -1 +0,0 @@ -../shared/commonFunctionsForTests.sh \ No newline at end of file diff --git a/test/GCHP/gchp.slurm.sh b/test/GCHP/gchp.slurm.sh deleted file mode 100755 index bb1524934..000000000 --- a/test/GCHP/gchp.slurm.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash - -#SBATCH -n 24 -#SBATCH -N 1 -#SBATCH -t 0-1:00 -#SBATCH -p huce_cascade -#SBATCH --mem=110000 -#SBATCH --mail-type=END - -# Resource request tips: -# (1) Use #SBATCH -n 6 to request 6 cores total across all nodes -# (2) Use #SBATCH --exclusive to prevent other users from sharing nodes in use -# (ability to use --exclusive may be disabled on some clusters) -# (3) Use --mem=50G to request 50 Gigabytes per node -# (4) Performance is enhanced by requesting entire nodes and all memory -# even if GCHP is run on fewer cores per node than available. -# -# See SLURM documentation for descriptions of all possible settings. -# Type 'man sbatch' at the command prompt to browse documentation. - -# Exit if an error is encountered, and log commands of this script -set -xe - -# Define GEOS-Chem log file (and remove any prior log file) -thisDir=$(pwd -P) -root=$(dirname ${thisDir}) -runDir=$(basename ${thisDir}) -log="${root}/logs/execute.${runDir}.log" -rm -f ${log} - -# Save start date string from cap_restart -start_str=$(sed 's/ /_/g' cap_restart) - -# Update config files, set restart symlink, load run env, and do sanity checks -source setCommonRunSettings.sh > ${log} -source setRestartLink.sh >> ${log} -source gchp.env >> ${log} -source checkRunSettings.sh >> ${log} - -# Harvard Cannon-specific setting to avoid connection issues at high # cores -export OMPI_MCL_btl=openib - -# Use SLURM to distribute tasks across nodes -NX=$( grep NX GCHP.rc | awk '{print $2}' ) -NY=$( grep NY GCHP.rc | awk '{print $2}' ) -coreCount=$(( ${NX} * ${NY} )) -planeCount=$(( ${coreCount} / ${SLURM_NNODES} )) -if [[ $(( ${coreCount} % ${SLURM_NNODES} )) > 0 ]]; then - ${planeCount}=$(( ${planeCount} + 1 )) -fi -time srun -n ${coreCount} -N ${SLURM_NNODES} -m plane=${planeCount} --mpi=pmix ./gchp >> ${log} - -# Rename and move restart file and update restart symlink if new start time ok -new_start_str=$(sed 's/ /_/g' cap_restart) -if [[ "${new_start_str}" = "${start_str}" || "${new_start_str}" = "" ]]; then - echo "ERROR: cap_restart either did not change or is empty." - exit 1 -else - N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) - mv gcchem_internal_checkpoint Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 - source setRestartLink.sh -fi - -# Update the results log -cd .. -./intTestResults.sh -cd ${thisDir} - -exit 0 - diff --git a/test/GCHP/intTestCompile_slurm.sh b/test/GCHP/intTestCompile_slurm.sh deleted file mode 100755 index 2e2776e99..000000000 --- a/test/GCHP/intTestCompile_slurm.sh +++ /dev/null @@ -1,156 +0,0 @@ -#!/bin/bash - -#SBATCH -c 6 -#SBATCH -N 1 -#SBATCH -t 0-01:00 -#SBATCH -p huce_cascade -#SBATCH --mem=6000 -#SBATCH --mail-type=END - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestCompile_slurm.sh -# -# !DESCRIPTION: Runs compilation tests on various GCHP -# run directories (using the SLURM scheduler). -#\\ -#\\ -# !CALLING SEQUENCE: -# sbatch intTestCompile_slurm.sh -# -# !REVISION HISTORY: -# 03 Nov 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================ -# Variable and function definitions -#============================================================================ - -# Get the long path of this folder -root=$(pwd -P) - -# Load computational environment and OpenMP settings -# if we are in a SLURM environment -if [[ "x${SLURM_JOBID}" != "x" ]]; then - . ~/.bashrc - . ${root}/gchp.env -fi - -# Load common functions for tests -. ${root}/commonFunctionsForTests.sh - -# Count the number of tests to be done = 1 -# (We don't have to recompile GCHP to change resolutions) -numTests=1 - -# Logfile for compilation output -log="${root}/logs/compile.GCHP.log" -rm -f ${log} - -# Results logfile name -results="${root}/logs/results.compile.log" -rm -f ${results} - -# Build and installation directory for CMake -buildDir="${root}/build" -installDir="${root}/exe_files" - -# CMake configuration options for GCHP -options="-DCMAKE_BUILD_TYPE=Debug" - -#============================================================================ -# Initialize results logfile -#============================================================================ - -# Print header to results log file -print_to_log "${SEP_MAJOR}" ${results} -print_to_log "GCHP: Compilation Test Results" ${results} -print_to_log "" ${results} -print_to_log "Number of compilation tests: ${numTests}" ${results} -print_to_log "${SEP_MAJOR}" ${results} - -#============================================================================ -# Configure and compile code in each GEOS_Chem run directory -#============================================================================ -print_to_log " " ${results} -print_to_log "Compiliation tests:" ${results} -print_to_log "${SEP_MINOR}" ${results} - -# Change to the top-level build directory -cd ${root} - -# Keep track of the number of tests that passed & failed -let passed=0 -let failed=0 -let remain=${numTests} - -# Build GCHP -build_gchp ${root} ${buildDir} ${log} ${results} "${options}" -if [[ $? -eq 0 ]]; then - let passed++ -else - let failed++ -fi -let remain-- - -#============================================================================ -# Check the number of simulations that have passed -#============================================================================ - -# Print summary to log -print_to_log " " ${results} -print_to_log "Summary of compilation test results:" ${results} -print_to_log "${SEP_MINOR}" ${results} -print_to_log "Complilation tests passed: ${passed}" ${results} -print_to_log "Complilation tests failed: ${failed}" ${results} -print_to_log "Complilation tests not completed: ${remain}" ${results} - -# Check if all tests passed -if [[ "x${passed}" == "x${numTests}" ]]; then - print_to_log "" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} - print_to_log "%%% All compilation tests passed! %%%" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} - - # If the compilation was successful, then submit - # the GCHP run script with SLURM job dependencies - jobId="none" - for runDir in *; do - expr=$(is_gchp_rundir "${root}/${runDir}") - if [[ "x${expr}" == "xTRUE" ]]; then - jobId=$(submit_gchp_slurm_job ${root} ${runDir} ${jobId}) - print_to_log "${runDir} submitted as job ${jobId}" ${log} - fi - done -fi - -#============================================================================ -# Cleanup and quit -#============================================================================ - -# Free local variables -unset failed -unset dir -unset log -unset numTests -unset options -unset passed -unset remain -unset results -unset root - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCHP/intTestCreate.sh b/test/GCHP/intTestCreate.sh deleted file mode 100755 index 9873933e8..000000000 --- a/test/GCHP/intTestCreate.sh +++ /dev/null @@ -1,210 +0,0 @@ -#!/bin/bash - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestCreate.sh -# -# !DESCRIPTION: Creates GCHP integration test run directories in a -# user-specified root folder, and copies a run script there. -#\\ -#\\ -# !CALLING SEQUENCE: -# ./intTestCreate.sh /path/to/int/test/root ENV-FILE or -# ./intTestCreate.sh /path/to/int/test/root ENV-FILE short=1 -# -# !REMARKS: -# Right now we pass values to the existing ./createRunDir.sh, -# but will implement a more elegant solution later. -# -# !REVISION HISTORY: -# 09 Oct 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================= -# Arguments -#============================================================================= - -# Integration test root folder -root=${1} -if [[ "x${root}" == "x" ]]; then - echo "ERROR: The root-level directory for tests has not been specified!" - exit 1 -fi - -# Environment file -envFile=${2} -if [[ "x${envFile}" == "x" ]]; then - echo "ERROR: The enviroment file (w/ module loads) has not been specified!" - exit 1 -fi -if [[ ! -f ${envFile} ]]; then - echo "ERROR: The enviroment file is not a valid file!" - exit 1 -fi - -# Run a short integration test? -short=${3} - -#============================================================================= -# Global variable and function definitions -#============================================================================= - -# Current directory -testDir=$(pwd -P) -cd ${testDir} - -# Top-level GEOS-Chem directory -cd ../.. -geosChemDir=$(pwd -P) - -# GCClassic superproject directory -cd ../../../.. -superProjectDir=$(pwd -P) -cd ${superProjectDir} - -# Directory where the run creation scripts are found -runDir=${geosChemDir}/run/GCHP - -# Load file with utility functions to setup configuration files -. ${geosChemDir}/test/shared/commonFunctionsForTests.sh - -# Get the absolute path of the root folder -root=$(absolute_path ${root}) - -# Log file -log=${root}/logs/createIntTests.log - -# Echo header -printf "${SEP_MAJOR}\n" -printf "Creating GCHP Integration Tests\n" -printf "${SEP_MAJOR}\n" - -#============================================================================= -# Initial setup of integration test directory -#============================================================================= - -# Create integration test root folder if it doesn't exist -if [[ ! -d ${root} ]]; then - mkdir -p ${root} -fi - -# Get the absolute path of the root folder again; -# now that the folder exists -root=$(absolute_path ${root}) - -# Remove run directories in the test folder -cleanup_files ${root} - -# Make the build directory -printf "\nCreating new build and directories:\n" -if [[ ! -d ${root}/build ]]; then - echo " ... ${root}/build/" - mkdir -p ${root}/build/ -fi - -# Copying the run scripts to the root test folder -printf "\nCopying run scripts to: ${root}\n" -cp -f ${envFile} ${root}/gchp.env -cp -f ${testDir}/intTest*.sh ${root} -cp -f ${testDir}/commonFunctionsForTests.sh ${root} - -# Create a symbolic link to the code from the Integration Test root folder -ln -s ${superProjectDir} ${root}/CodeDir - -# Create log directory -if [[ !(-d ${root}/logs) ]]; then - printf "\nCreating log directory: ${root}/logs\n" - mkdir ${root}/logs -fi - -# Change to the directory where we will create the rundirs -printf "\nCreating new run directories:\n" - -# Switch to folder where rundir creation scripts live -cd ${runDir} - -#============================================================================= -# TransportTracers run directories -#============================================================================= - -# TODO: this section and the next for other run directories should -# be combined in a loop to avoid duplicate code. - -dir="gchp_TransportTracers_geosfp_c24" -create_rundir "2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -ln -s ${root}/gchp.env ${root}/${dir}/gchp.env -cp ${testDir}/gchp.slurm.sh ${root}/${dir}/gchp.slurm.sh -sed -i -e "s/CS_RES=.*/CS_RES=24/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/AutoUpdate_Diagnostics=.*/AutoUpdate_Diagnostics=ON/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/Diag_Monthly=\"1\".*/Diag_Monthly=\"0\"/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/Diag_Frequency=\".*/Diag_Frequency=\"010000\"/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/Diag_Duration=\".*/Diag_Duration=\"010000\"/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/TOTAL_CORES=.*/TOTAL_CORES=24/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/NUM_NODES=.*/NUM_NODES=1/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/NUM_CORES_PER_NODE=.*/NUM_CORES_PER_NODE=24/" ${root}/${dir}/setCommonRunSettings.sh - -#============================================================================= -# Standard run directories -#============================================================================= - -dir="gchp_fullchem_standard_merra2_c24" -create_rundir "1\n1\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -ln -s ${root}/gchp.env ${root}/${dir}/gchp.env -cp ${testDir}/gchp.slurm.sh ${root}/${dir}/gchp.slurm.sh -sed -i -e "s/AutoUpdate_Diagnostics=.*/AutoUpdate_Diagnostics=ON/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/CS_RES=.*/CS_RES=24/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/Diag_Monthly=\"1\".*/Diag_Monthly=\"0\"/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/Diag_Frequency=\".*/Diag_Frequency=\"010000\"/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/Diag_Duration=\".*/Diag_Duration=\"010000\"/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/TOTAL_CORES=.*/TOTAL_CORES=24/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/NUM_NODES=.*/NUM_NODES=1/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/NUM_CORES_PER_NODE=.*/NUM_CORES_PER_NODE=24/" ${root}/${dir}/setCommonRunSettings.sh - -#============================================================================= -# Benchmark run directories -#============================================================================= - -dir="gchp_fullchem_benchmark_merra2_c48" -create_rundir "1\n2\n1\n${root}\n${dir}\nn\n" ${root} ${dir} ${log} -ln -s ${root}/gchp.env ${root}/${dir}/gchp.env -cp ${testDir}/gchp.slurm.sh ${root}/${dir}/gchp.slurm.sh -sed -i -e "s/CS_RES=.*/CS_RES=48/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/AutoUpdate_Diagnostics=.*/AutoUpdate_Diagnostics=ON/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/Diag_Monthly=\"1\".*/Diag_Monthly=\"0\"/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/Diag_Frequency=\".*/Diag_Frequency=\"010000\"/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/Diag_Duration=\".*/Diag_Duration=\"010000\"/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/TOTAL_CORES=.*/TOTAL_CORES=24/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/NUM_NODES=.*/NUM_NODES=1/" ${root}/${dir}/setCommonRunSettings.sh -sed -i -e "s/NUM_CORES_PER_NODE=.*/NUM_CORES_PER_NODE=24/" ${root}/${dir}/setCommonRunSettings.sh - -#============================================================================= -# Cleanup and quit -#============================================================================= - -# Switch back to the present directory -cd ${testDir} - -# Free local variables -unset root -unset testDir -unset geosChemDir -unset superProjectDir -unset runDir -unset log -unset dir - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCHP/intTestResults.sh b/test/GCHP/intTestResults.sh deleted file mode 100755 index 21702a724..000000000 --- a/test/GCHP/intTestResults.sh +++ /dev/null @@ -1,155 +0,0 @@ -#!/bin/bash - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTestResults.sh -# -# !DESCRIPTION: Displays results from the execution phase of the -# GCHP integration tests. -#\\ -#\\ -# !CALLING SEQUENCE: -# sbatch intTestResults.sh -# -# !REVISION HISTORY: -# 03 Nov 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================ -# Variable and function definitions -#============================================================================ - -# Get the long path of this folder -root=$(pwd -P) - -# Load common functions for tests -. ${root}/commonFunctionsForTests.sh - -# Number of execution tests = number of run directories -numTests=$(count_rundirs ${root}) - -# Results logfile name -results="${root}/logs/results.execute.log" -rm -f ${results} - -#============================================================================ -# Initialize results logfile -#============================================================================ - -# Print header to results log file -print_to_log "${SEP_MAJOR}" ${results} -print_to_log "GCHP: Execution Test Results" ${results} -print_to_log "" ${results} -print_to_log "Number of execution tests: ${numTests}" ${results} -print_to_log "${SEP_MAJOR}" ${results} - -#============================================================================ -# Configure and compile code in each GEOS_Chem run directory -#============================================================================ -print_to_log " " ${results} -print_to_log "Execution tests:" ${results} -print_to_log "${SEP_MINOR}" ${results} - -# Change to the top-level build directory -cd ${root} - -# Keep track of the number of tests that passed & failed -let passed=0 -let failed=0 -let remain=${numTests} - -# Get a list of GCHP run directories -dirlist=$(ls -1 | grep gchp_) - -# Loop over all of the execution logs -for dir in ${dirlist}; do - - # Log file path - path="logs/execute.${dir}.log" - - # If the log file path exists, then get the filename part - file=$(basename ${path}) - runDir="${file%.*}" - runDir="${runDir#*.}" - - # Create sucess and failure messages - passMsg="$runDir${FILL:${#runDir}}.....${EXE_PASS_STR}" - failMsg="$runDir${FILL:${#runDir}}.....${EXE_FAIL_STR}" - tbdMsg="$runDir${FILL:${#runDir}}.....${EXE_TBD_STR}" - - # Test if the log file exists - if [[ -f ${path} ]]; then - - # Look for the text ----EXTDATA, which shows up - # at the end of a successful GCHP job - grep -e ----EXTDATA ${path} > /dev/null - if [[ $? -eq 0 ]]; then - let passed++ - print_to_log "${passMsg}" ${results} - else - let failed++ - print_to_log "${failMsg}" ${results} - fi - let remain-- - - else - - # If the log file path does not exist, - # then indicate the test is still to be done - print_to_log "${tbdMsg}" ${results} - - fi -done - -#============================================================================ -# Check the number of simulations that have passed -#============================================================================ - -# Print summary to log -print_to_log " " ${results} -print_to_log "Summary of execution test results:" ${results} -print_to_log "${SEP_MINOR}" ${results} -print_to_log "Execution tests passed: ${passed}" ${results} -print_to_log "Execution tests failed: ${failed}" ${results} -print_to_log "Execution tests not completed: ${remain}" ${results} - -# Check if all tests passed -if [[ "x${passed}" == "x${numTests}" ]]; then - print_to_log "" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} - print_to_log "%%% All execution tests passed! %%%" ${results} - print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} -fi - -#============================================================================ -# Cleanup and quit -#============================================================================ - -# Free local variables -unset failed -unset file -unset runDir -unset log -unset numTests -unset options -unset passed -unset path -unset remain -unset results -unset root - -# Free imported variables -unset FILL -unset SEP_MAJOR -unset SEP_MINOR -unset CMP_PASS_STR -unset CMP_FAIL_STR -unset EXE_PASS_STR -unset EXE_FAIL_STR -#EOC diff --git a/test/GCHP/intTest_slurm.sh b/test/GCHP/intTest_slurm.sh deleted file mode 100755 index 9420ba3f5..000000000 --- a/test/GCHP/intTest_slurm.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash - -#------------------------------------------------------------------------------ -# GEOS-Chem Global Chemical Transport Model ! -#------------------------------------------------------------------------------ -#BOP -# -# !MODULE: intTest_slurm.sh -# -# !DESCRIPTION: Runs integration tests on the various GCHP -# run directories (using the SLURM scheduler). Compilation tests and -# execution tests are submitted as separate SLURM jobs, using dependencies. -#\\ -#\\ -# !CALLING SEQUENCE: -# ./intTests_slurm.sh -# -# !REVISION HISTORY: -# 03 Nov 2020 - R. Yantosca - Initial version -# See the subsequent Git history with the gitk browser! -#EOP -#------------------------------------------------------------------------------ -#BOC - -#============================================================================= -# Check arguments and define variables -#============================================================================= - -# 1st argument: Root directory for integration tests -INT_TEST_ROOT=${1} -if [[ "x${INT_TEST_ROOT}" == "x" ]]; then - echo "ERROR: The root-level directory for tests has not been specified!" - exit -fi - -# 2nd argument: Environment file -ENV_FILE=${2} -if [[ "x${ENV_FILE}" == "x" ]]; then - echo "ERROR: The enviroment file (w/ module loads) has not been specified!" - exit -fi - -# 3rd argument: Run a short integration test (for development)? -SHORT=${3} - -#============================================================================= -# Load file with utility functions to setup configuration files -#============================================================================= - -# Current directory -THIS_DIR=$(pwd -P) - -# Load common functions -. ${THIS_DIR}/commonFunctionsForTests.sh - -#============================================================================= -# Create integration test directories in the root folder -#============================================================================= - -# Convert integration test root folder to an absolute path -INT_TEST_ROOT=$(absolute_path ${INT_TEST_ROOT}) -if [[ $? -ne 0 ]]; then - exit 0 -fi - -# Create GEOS-Chem run directories in the integration test root folder -./intTestCreate.sh ${INT_TEST_ROOT} ${ENV_FILE} ${SHORT} - -# Change to the integration test root folder -if [[ -d ${INT_TEST_ROOT} ]]; then - cd ${INT_TEST_ROOT} -else - echo "ERROR: ${INT_TEST_ROOT} is not a valid directory! Exiting..." - exit 1 -fi - -#============================================================================= -# Submit compilation tests script -#============================================================================= -OUTPUT=$(sbatch intTestCompile_slurm.sh) -OUTPUT=($OUTPUT) -CMP_ID=${OUTPUT[3]} - -# Change back to this directory -cd ${THIS_DIR} - -#============================================================================= -# Cleanup and quit -#============================================================================= -echo "" -echo "Compilation tests submitted as SLURM job ${CMP_ID}" - -# Free local variables -unset DEBUG -unset INT_TEST_ROOT -unset JOBID -unset OUTPUT -unset THIS_DIR -#EOC diff --git a/test/README.md b/test/README.md new file mode 100644 index 000000000..950c8b4a4 --- /dev/null +++ b/test/README.md @@ -0,0 +1,19 @@ +# README: The `src/GEOS-Chem/test` directory + +## Contents + +`difference/` +- Directory containing scripts for performing a **difference test**. +- A difference test compares the output of two different integration tests for identicality. +- TODO (Jun 2023): Add capability to compare the output of two **parallel tests** for identicality. + +`integration/` +- Directory containing scripts for performing **integration tests** for both GEOS-Chem Classic and GCHP. +- Integration tests compile and run several different "out-of-the-box" GEOS-Chem Classic and GCHP configurations in order to identify errors caused by source code updates. + +`parallel/` +- Directory contianing scripts for performing **parallel tests** for GEOS-Chem Classic. +- Parallel tests compile and run several different "out-of-the-box" GEOS-Chem Classic configurations with different numbers of OpenMP threads in order to identify parallelization errors caused by source code updates. + +`shared/` +- Directory containing scripts with common settings and functions that are used by the difference test, integration test, and parallel test scripts. diff --git a/test/difference/README.md b/test/difference/README.md new file mode 100644 index 000000000..1a2336508 --- /dev/null +++ b/test/difference/README.md @@ -0,0 +1,41 @@ +# README for Difference Tests + +## Contents + +`diffTest.sh` +- Script that looks for differences in two different integration test or parallel test directories. +- Checks both diagnostic files and restart files in each integration test run directory for identicality. +- TODO (as of June 2023): Add capability to check outputs from two different GEOS-Chem Classic parallel test directories. As of now `difftest.sh` can only be used with integration tests. + +## Performing a difference test + +Run the `difftest.sh` script as follows: + +```console +$ cd test/difference +$ ./diffTest.sh /path/to/ /path/to/ +``` +where `` and `` indicate the names of the integration tests that are being compared. + +The script will compare diagnostic and restart files within each integration test run directory. If no differences are found, you will see ouptut such as: + +```console +Checking gc_4x5_merra2_fullchem_ + -> No differences in OutputDir + -> No differences in Restarts +``` +for each type of simulation `` (e.g. `fullchem`, `fullchem_benchmark`, `CH4`, etc.) that was included in the `` and `` integration tests. + +If differences are found, you will see output such as: + +```console +Checking gc_4x5_merra2_ + -> 2 differences found in OutputDir + * /rundirs/gc_4x5_merra2_/OutputDir/GEOSChem.Metrics.20190701_0000z.nc4 + /rundirs/gc_4x5_merra2_/OutputDir/GEOSChem.Metrics.20190701_0000z.nc4 + * /rundirs/gc_4x5_merra2_/OutputDir/GEOSChem.SpeciesConc.20190701_0000z.nc4 + /rundirs/gc_4x5_merra2_/OutputDir/GEOSChem.SpeciesConc.20190701_0000z.nc4 + -> 1 difference found in Restarts + * /rundirs/gc_4x5_merra2_/Restarts/GEOSChem.Restart.20190701_0100z.nc4 + /rundirs/gc_4x5_merra2_/Restarts/GEOSChem.Restart.20190701_0100z.nc4 +``` diff --git a/test/difference/diffTest.sh b/test/difference/diffTest.sh new file mode 100755 index 000000000..b3e50bd0b --- /dev/null +++ b/test/difference/diffTest.sh @@ -0,0 +1,141 @@ +#!/bin/bash + +#EOC +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: diffTest.sh +# +# !DESCRIPTION: Looks for differences in two integration test or parallel +# test directories. Checks both diagnostic files (in the OutputDir/ folder +# of each run directory) and restart files (in the Restarts/ folder of +# each run directory). +#\\ +#\\ +# !CALLING SEQUENCE +# ./diffTest.sh +# +# where is the path to the "Ref" integration test root folder +# and is the path to the "Dev" integration test root folder +# +# !REMARKS: +# TODO: Add capability to check parallel tests for identicality +# +# !AUTHORS +# Lizzie Lundgren (@lizziel) +# Bob Yantosca (@yantosca) +#EOP +#------------------------------------------------------------------------------ +#BOC + + +function check_for_diffs() { + + #======================================================================== + # Compares netCDF files (GEOS-Chem diagnostics or restart files) + # in two different integration test folders. Prints informational + # messages denoting if differences are found, and in which files. + #======================================================================== + + # Directories to compare + refRoot="${1}" + devRoot="${2}" + refRunDir="${3}" + devRunDir="${4}" + + # Dir where files are found ("OutputDir" or "Restarts") + refBase=$(basename "${refRunDir}") + devBase=$(basename "${devRunDir}") + + # Compare files in data directories + result=$(diff -r "${refRunDir}" "${devRunDir}") + + # No differences found! Print and exit. + if [[ "x${result}" == "x" ]]; then + printf " -> No differences in ${refBase}\n" + return 0 + fi + + # Get number of differences + nDiffs=$(printf "$result\n" | wc -l) + if [[ "x${nDiffs}" == "x1" ]]; then + printf " -> ${nDiffs} difference found in ${refBase}\n" + else + printf " -> ${nDiffs} differences found in ${refBase}\n" + fi + + # Format the result to remove extraneous characters + for (( i=1; i<=$nDiffs; i++ )) do + result=${result/"${refRoot}/"} + result=${result/"${refRoot}/"} + result=${result/"${devRoot}/"} + result=${result/"${devRoot}/"} + if (( $i == 1 )); then + result=${result/'Binary files '/'* '} + else + result=${result/'Binary files '/' * '} + fi + result=${result/'and'/'\n '} + result=${result/'differ'} + done + printf " $result\n" + return 0 +} + + +function main() { + + #======================================================================== + # Main program. Loops over all run directories in the + # and paths, and checks diagnostic & restart files + # for differences. + #======================================================================== + + # Error check # of arguments + if [[ $# -ne 2 ]]; then + echo "Usage: ./diffTest.sh " + exit 1 + fi + + # Paths to Ref & Def root directories + refRoot=$(dirname "${1}") + devRoot=$(dirname "${2}") + + # Paths to Ref/rundirs and Dev/rundirs directories + refRunDirs="${1}/rundirs" + devRunDirs="${2}/rundirs" + + # Get a list of all the run directories + runDirs=$(ls "${refRunDirs}") + + # Loop over run directories + for dir in ${runDirs[@]}; do + printf "Checking ${dir}\n" + + # Check diagnostic files for differences + ref="${refRunDirs}/${dir}/OutputDir" + dev="${devRunDirs}/${dir}/OutputDir" + check_for_diffs "${refRoot}" "${devRoot}" "${ref}" "${dev}" + + # Check restart files for differences + ref="${refRunDirs}/${dir}/Restarts" + dev="${devRunDirs}/${dir}/Restarts" + check_for_diffs "${refRoot}" "${devRoot}" "${ref}" "${dev}" + + # Print a space between rundirs + ref="" + dev="" + printf "\n" + done + + # Return with success + return 0 +} + +#======================================================================== +# Call main with command-line arguments +#======================================================================== +main $@ + diff --git a/test/integration/GCClassic/README.md b/test/integration/GCClassic/README.md new file mode 100644 index 000000000..c52a401f4 --- /dev/null +++ b/test/integration/GCClassic/README.md @@ -0,0 +1,92 @@ +# README for GEOS-Chem Classic Integration Tests + +## Overview: + +This directory contains: + +1. Scripts to submit automated GEOS-Chem Classic integration tests, which will test the following processes: + + - GEOS-Chem Classic run directory creation + - GEOS-Chem Classic code configuration and compilation + - GEOS-Chem Classic execution + +Integration tests are short GEOS-Chem Classic simulations. Executables are compiled with all debugging options. This should reveal any coding errors or run-directory configuration errors. + +## Files + +### Integration Test Scripts + +- `integrationTest.sh` + - Driver script to run GEOS-Chem Classic integration tests +- `integrationTestCreate.sh` + - Script to create GEOS-Chem Classic run directories for integration tests +- `integrationTestCompile.sh` + - Script to compile GEOS-Chem Classic executables +- `integrationTestExecute.sh` + - Script to run GEOS-Chem Classic integration test simulations + +### Shared Scripts + +- `commonFunctionsForTests.sh` + - Link to `../../shared/commonFunctionsForTests.sh`, which contains global variables and functions for the integration and parallelization tests. + +## Before you begin + +Please take a moment to: + +1. Verify that the `GCClassic` superproject is checked out to the correct branch and commit. +2. Run `git submodule update --init --recursive` in order to update all submodules. +3. Verify that the `HEAD` commit of the `GEOS-Chem` submodule contains the code that you wish to test. (If not, then check out the proper branch.) +4. Verify that the `HEAD` commit of the `HEMCO` submodule contains the code that you wish to test. (If not, then check out the proper branch.) + +## Command-line Arguments + +The integration test scripts accept the following command-line arguments: + +### Required arguments + +`-d /path/to/test/dir` specifies the root directory where integration test subdirectories and scripts will be placed. + +`-t compile|all` specifies the type of test to be run: + - `compile` will run compilation-only tests. + - `all` will run compilation and execution tests. + +### Optional arguments + +`-e /path/to/env-file` Specifies the file that is used to initialize the software environment on the Harvard Cannon cluster. If omitted, a default file will be selected. + +`-h` displays a help screeen. + +`-q` will run only a couple of integration tests instead of the full suite. This is intended for development and debugging. You will normally not need to use this option. + +You can also use long names for the option switches: +- `--directory` instead of `-d` +- `--env-file` instead of `-e` +- `--help` instead of `h` +- `--no-bootstrap` instead of `n` +- `--tests-to-run` instead of `-t` + +## Examples + +### Request compile-only tests on Cannon or Compute1 +```console +$ cd /path/to/GCClassic # Path to GCClassic superproject directory +$ cd test/integration/GCClassic +$ ./integrationTest.sh -d /path/to/test/dir -t compile +``` + +### Request compile and execution tests (Harvard Cannon) +```console +$ cd /path/to/GCClassic # Path to GCClassic superproject directory +$ cd test/integration/GCClassic +$ ./integrationTest.sh -d /path/to/test/dir -t all -e /path/to/env-file +``` +NOTE: If you omit the `-e /path/to/env/file` a default environment file will be used to load GNU Compiler Collection 10 and related libraries. + +### Request compile & execution tests (WashU compute1) +```console +$ cd /path/to/GCClassic # Path to GCClassic superproject directory +$ cd test/integration/GCClassic +$ ./integrationTest.sh -d /path/to/test/dir -t all +``` +NOTE: No environment file is needed. On Compute1 the tests will run inside a software container with all necessary libraries included. diff --git a/test/integration/GCClassic/README.testroot.md b/test/integration/GCClassic/README.testroot.md new file mode 100644 index 000000000..443082473 --- /dev/null +++ b/test/integration/GCClassic/README.testroot.md @@ -0,0 +1,44 @@ +# README for GEOS-Chem Classic Integration Tests + +## Directories + +Components of GEOS-Chem Classic integration tests have been separated into these directories: + +`bin` + + - Contains GEOS-Chem Classic executable files. + +`build` + + - Directories for building GEOS-Chem Classic executables. + +`CodeDir` + + - Symbolic link to the `GCClassic` superproject directory. + +`env` + + - Contains an environment file that loads the software libraries needed to run GEOS-Chem Classic. + +`logs` + + - Contains log files from the integration tests. + + - `results.compile.log`: Results of GEOS-Chem Classic compilation tests. + - `results.execute.log`: Results of GEOS-Chem Classic execution tests. + - `compile.*.log`: Output of individual compilation tests + - `execute.*.log`: Output of individual execution tests + - `lsf-*.txt`: LSF scheduler job logs + - `slurm*.out`: SLURM scheduler job logs + +`rundirs` + + - Contains individual GEOS-Chem Classic run directories. + +`scripts` + + - Contains the scripts that are used for running the GEOS-Chem Classic integration tests. These are copied from the `test/GCClassic/integration` folder of the GEOS-Chem "science codebase" repository. + +## For more information + +Please see the `scripts/README.md` file for detailed instructions on running GEOS-Chem Classic integration tests. diff --git a/test/integration/GCClassic/integrationTest.sh b/test/integration/GCClassic/integrationTest.sh new file mode 100755 index 000000000..bc276d911 --- /dev/null +++ b/test/integration/GCClassic/integrationTest.sh @@ -0,0 +1,337 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: integrationTest.sh +# +# !DESCRIPTION: Runs integration tests on the various GEOS-Chem Classic +# run directories (interactively, or with a scheduler). +#\\ +#\\ +# !CALLING SEQUENCE: +# ./integrationTest.sh -d root-dir -t compile|all [-e env-file] [-h] [-q] +# +# Required arguments +# -d root-dir : Specify the root folder for integration tests +# -t compile|all : Specify the tests to run (compile-only or all) +# +# Optional arguments +# -e env-file : Software environment file for Harvard Cannon +# -h : Display a help message +# -n : Do not bootstrap missing restart file variables +# -q : Run a quick set of integration tests (for testing) +# +# NOTE: you can also use the following long name options: +# +# --directory (instead of -d) +# --env-file (instead of -e) +# --help (instead of -h) +# --no-bootstrap (instead of -n) +# --quick (instead of -q) +# --tests-to-run (instead of -t) +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================= +# Initialize +#============================================================================= +this="$(basename ${0})" +usage="Usage: ${this} -d root-dir -t compile|all [-e env-file] [-h] [-n] [-q]" +quick="NO" +bootStrap="YES" + +# Current directory +thisDir=$(pwd -P) +cd "${thisDir}" + +# Load common functions +. "${thisDir}/../../shared/commonFunctionsForTests.sh" + +#============================================================================= +# Parse command-line arguments +# See https://www.baeldung.com/linux/bash-parse-command-line-arguments +#============================================================================= + +# Call Linux getopt function to specify short & long input options +# (e.g. -d or --directory, etc). Exit if not succesful +validArgs=$(getopt --options d:e:hnqs:t: \ + --long directory:,env-file:,help,no-bootstrap,quick,tests-to-run: -- "$@") +if [[ $? -ne 0 ]]; then + exit 1; +fi + +# Parse arguments and set variables accordingly +# NOTE: Convert some inputs to uppercase to facilitate comparisons +eval set -- "${validArgs}" +while [ : ]; do + case "${1}" in + + # -d or --directory specifies the root folder for tests + -d | --directory) + itRoot="${2}" + shift 2 + ;; + + # -e or --env-file specifies the environment file + -e | --env-file) + envFile="${2}" + shift 2 + ;; + + # -h or --help prints a help message + -h | --help) + echo "$usage" + exit 1 + ;; + + # -n or --no-bootstrap prevents bootstrapping missing variables in + # restart files (i.e. do not change EFYO -> CYS in HEMCO_Config.rc) + -n | --no-bootstrap) + bootStrap="NO" + shift + ;; + + # -q or --quick runs a quick set of integration tests (for testing) + -q | --quick) + quick="YES" + shift + ;; + + # -t or --tests-to-run specifies the type of tests to run + -t | --tests-to-run) + testsToRun="${2^^}" + shift 2 + ;; + + --) shift; + break + ;; + esac +done + +#============================================================================= +# Sanity-check user input +#============================================================================= + +# Get the site name from the node name +site=$(get_site_name) + +# Error check integration tests root path +if [[ "X${itRoot}" == "X" ]]; then + echo "ERROR: The integration test root directory has not been specified!" + echo "${usage}" + exit 1 +fi + +# Error check the type of tests to run +if [[ "X${testsToRun}" == "X" ]]; then + echo "ERROR: You must specify the test type: compile|all" + echo "${usage}" + exit 1 +fi +if [[ "X${testsToRun}" != "XCOMPILE" && "X${testsToRun}" != "XALL" ]]; then + echo "ERROR: Invalid selction for tests-to-run, must be: compile|all" + echo "${usage}" + exit 1 +fi + +# Error checks for tests that include compile & run phases +if [[ "X${testsToRun}" == "XALL" ]]; then + + # Use the default environment file for Cannon if not specified + if [[ "X${site}" == "XCANNON" && "X${envFile}" == "X" ]]; then + envFile=$(get_default_gcc_env_file) + fi + + # Get the sed command that will replace the partition name + sedPartitionCmd=$(get_sed_partition_cmd_from_site "${site}") +fi + +#============================================================================= +# Create integration test directories in the root folder +#============================================================================= + +# Convert integration test root folder to an absolute path +itRoot=$(absolute_path "${itRoot}") + +# Prevent running integration tests in the source code directory tree +if [[ "$(absolute_path ${thisDir})" =~ "${itRoot}" ]]; then + echo "ERROR: You cannot run integration tests in the source code directory!" + exit 1 +fi + +# Create GEOS-Chem run directories in the integration test root folder +./integrationTestCreate.sh "${itRoot}" "${envFile}" "${testsToRun}" "${quick}" +if [[ $? -ne 0 ]]; then + echo "ERROR: Could not create integration test run directories!" + exit 1 +fi + +# Navigate to the root test folder +if [[ -d "${itRoot}" ]]; then + cd "${itRoot}" +else + echo "ERROR: ${itRoot} is not a valid directory! Exiting..." + exit 1 +fi + +# Define local convenience variables +logsDir="${itRoot}/${LOGS_DIR}" +scriptsDir="${itRoot}/${SCRIPTS_DIR}" +rundirsDir="${itRoot}/${RUNDIRS_DIR}" + +# Edit HEMCO_Config.rc files to enable or disable bootstrapping +# (i.e. to allow missing species in restart files or not) +if [[ "X${testsToRun}" == "XALL" ]]; then + gcc_enable_or_disable_bootstrap "${bootStrap}" "${rundirsDir}" +fi + +# Navigate to the logs directory (so all output will be placed there) +cd "${logsDir}" + +#============================================================================= +# Run the tests +#============================================================================= +if [[ "X${testsToRun}" == "XCOMPILE" ]]; then + + #------------------------------------------------------------------------- + # Compilation-only tests (scheduler is not used) + #------------------------------------------------------------------------- + echo "" + echo "Compiliation tests are running..." + ${scriptsDir}/integrationTestCompile.sh "${quick}" + +elif [[ "X${testsToRun}" == "XALL" && "X${site}" == "XCANNON" ]]; then + + #------------------------------------------------------------------------- + # Compilation & execution tests on Harvard Cannon (via SLURM) + #------------------------------------------------------------------------- + + # Remove LSF #BSUB tags + sed_ie '/#BSUB -q REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#BSUB -n 8/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#BSUB -W 0:30/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#BSUB -o lsf-%J.txt/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie \ + '/#BSUB -R "rusage\[mem=8GB\] span\[ptile=1\] select\[mem < 1TB\]"/d' \ + "${scriptsDir}/integrationTestCompile.sh" + sed_ie \ + "/#BSUB -a 'docker(registry\.gsc\.wustl\.edu\/sleong\/esm\:intel\-2021\.1\.2)'/d" \ + "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#BSUB -q REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#BSUB -n 24/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#BSUB -W 6:00/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#BSUB -o lsf-%J.txt/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie \ + '/#BSUB -R "rusage\[mem=90GB\] span\[ptile=1\] select\[mem < 2TB\]"/d' \ + "${scriptsDir}/integrationTestExecute.sh" + sed_ie \ + "/#BSUB -a 'docker(registry\.gsc\.wustl\.edu\/sleong\/esm\:intel\-2021\.1\.2)'/d" \ + "${scriptsDir}/integrationTestExecute.sh" + + # Replace "REQUESTED_PARTITION" with the partition name + sed_ie "${sedPartitionCmd}" "${scriptsDir}/integrationTestCompile.sh" + sed_ie "${sedPartitionCmd}" "${scriptsDir}/integrationTestExecute.sh" + + # Submit compilation tests script + output=$(sbatch ${scriptsDir}/integrationTestCompile.sh "${quick}") + output=($output) + cmpId=${output[3]} + + # Submit execution tests script as a job dependency + output=$(sbatch --dependency=afterok:${cmpId} ${scriptsDir}/integrationTestExecute.sh) + output=($output) + exeId=${output[3]} + + # Echo SLURM jobIDs + echo "" + echo "Compilation tests submitted as SLURM job ${cmpId}" + echo "Execution tests submitted as SLURM job ${exeId}" + +elif [[ "X${testsToRun}" == "XALL" && "X${site}" == "XCOMPUTE1" ]]; then + + #------------------------------------------------------------------------- + # Compilation and execution tests on WashU Compute1 (via LSF) + #------------------------------------------------------------------------- + + # Remove SLURM #SBATCH tags + sed_ie '/#SBATCH -c 8/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -N 1/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -t 0-0:30/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -p REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH --mem=8000/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -p REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH --mail-type=END/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -c 24/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH -N 1/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH -t 0-6:00/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH -p REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH --mem=90000/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH --mail-type=END/d' "${scriptsDir}/integrationTestExecute.sh" + + # Replace "REQUESTED_PARTITION" with the partition name + sed_ie "${sedPartitionCmd}" "${scriptsDir}/integrationTestCompile.sh" + sed_ie "${sedPartitionCmd}" "${scriptsDir}/integrationTestExecute.sh" + + # Submit compilation tests script + output=$(bsub ${scriptsDir}/integrationTestCompile.sh "${quick}") + output=($output) + cmpId=${output[1]} + cmpId=${cmpId/<} + cmpId=${cmpId/>} + + # Submit execution tests script as a job dependency + output=$(bsub -w "exit(${cmpId},0)" ${scriptsDir}/integrationTestExecute.sh) + output=($output) + exeId=${output[1]} + exeId=${exeId/<} + exeId=${exeId/>} + + echo "" + echo "Compilation tests submitted as LSF job ${cmpId}" + echo "Execution tests submitted as LSF job ${exeId}" + +else + + #------------------------------------------------------------------------- + # Exit with error + #------------------------------------------------------------------------- + echo "" + echo "ERROR! Invalid choice of arguments!" + echo "${usage}" + exit 1 + +fi + +# Change back to this directory +cd "${thisDir}" + +#============================================================================= +# Cleanup and quit +#============================================================================= + +# Free local variables +unset cmpId +unset envFile +unset exeId +unset itRoot +unset logsDir +unset quick +unset output +unset scheduler +unset scriptsDir +unset thisDir + +# Free imported variables +unset FILL +unset SEP_MAJOR +unset SEP_MINOR +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/integration/GCClassic/integrationTestCompile.sh b/test/integration/GCClassic/integrationTestCompile.sh new file mode 100755 index 000000000..5fa7ca434 --- /dev/null +++ b/test/integration/GCClassic/integrationTestCompile.sh @@ -0,0 +1,264 @@ +#!/bin/bash + +#SBATCH -c 8 +#SBATCH -N 1 +#SBATCH -t 0-0:30 +#SBATCH -p REQUESTED_PARTITION +#SBATCH --mem=8000 +#SBATCH --mail-type=END +#BSUB -q REQUESTED_PARTITION +#BSUB -n 8 +#BSUB -W 0:30 +#BSUB -R "rusage[mem=8GB] span[ptile=1] select[mem < 1TB]" +#BSUB -a 'docker(registry.gsc.wustl.edu/sleong/esm:intel-2021.1.2)' +#BSUB -o lsf-%J.txt + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: integrationTestCompile.sh +# +# !DESCRIPTION: Runs compilation tests on various GEOS-Chem Classic +# run directories (interactively or using a scheduler). +#\\ +#\\ +# !CALLING SEQUENCE: +# ./integrationTestCompile.sh # Interactive command-line execution +# bsub integrationTestCompile.sh # Execution via LSF +# sbatch integrationTestCompile.sh # Execution via SLURM +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================= +# Arguments +#============================================================================= + +# Run a short integration test? +quick="${1}" + +#============================================================================ +# Global variable and function definitions +#============================================================================ + +# This script starts executing 1 level lower than $itRoot +itRoot=$(cd ..; pwd) + +# Include global variables & functions +. "${itRoot}/scripts/commonFunctionsForTests.sh" + +# Create local convenience variables +binDir="${itRoot}/${BIN_DIR}" +buildDir="${itRoot}/${BUILD_DIR}" +envDir="${itRoot}/${ENV_DIR}" +codeDir="${itRoot}/CodeDir" +logsDir="${itRoot}/${LOGS_DIR}" +scriptsDir="${itRoot}/${SCRIPTS_DIR}" +site=$(get_site_name) + +# Load the user-environment and the software environment +. ~/.bashrc > /dev/null 2>&1 +[[ "X${site}" == "XCANNON" ]] && . ${envDir}/gcclassic.env > /dev/null 2>&1 + +# All integration tests will use debugging features +baseOptions="-DCMAKE_BUILD_TYPE=Debug -DRUNDIR='' -DINSTALLCOPY=${binDir}" + +# Get the Git commit of the superproject and submodules +head_gcc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}" log --oneline --no-decorate -1) +head_gc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/GEOS-Chem" log --oneline --no-decorate -1) +head_hco=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/HEMCO" log --oneline --no-decorate -1) + +# Site-specific settings +if [[ "X${site}" == "XCANNON" && "X${SLURM_JOBID}" != "X" ]]; then + + #---------------------------------- + # SLURM settings (Harvard Cannon) + #---------------------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #SBATCH -c + export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} + +elif [[ "X${site}" == "XCOMPUTE1" && "X${LSB_JOBID}" != "X" ]]; then + + #---------------------------------- + # LSF settings (WashU Compute1) + #---------------------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #BSUB -n + export OMP_NUM_THREADS=${LSB_DJOB_NUMPROC} + +else + + #---------------------------------- + # Interactive settings + #---------------------------------- + + # For AWS, set $OMP_NUM_THREADS to the available cores + kernel=$(uname -r) + [[ "X${kernel}" == "Xaws" ]] && export OMP_NUM_THREADS=$(nproc) + +fi + +# Sanity check: Set OMP_NUM_THREADS to 6 if it is not set +# (this may happen when running interactively) +[[ "X${OMP_NUM_THREADS}" == "X" ]] && export OMP_NUM_THREADS=6 + +# Sanity check: Max out the OMP_STACKSIZE if it is not set +[[ "X${OMP_STACKSIZE}" == "X" ]] && export OMP_STACKSIZE=500m + +# Only create necessary executables if $quick is "yes" +if [[ "X${quick}" == "XYES" ]]; then + EXE_LIST=("default" "carbon") +else + EXE_LIST=("${EXE_GCC_BUILD_LIST[@]}") +fi + +# Count the number of tests to be done +numTests=${#EXE_LIST[@]} + +#============================================================================ +# Initialize results logfile +#============================================================================ + +# Results logfile name +results="${logsDir}/results.compile.log" +rm -f ${results} + +# Print header to results log file +print_to_log "${SEP_MAJOR}" "${results}" +print_to_log "GEOS-Chem Classic: Compilation Test Results" "${results}" +print_to_log "" "${results}" +print_to_log "GCClassic #${head_gcc}" "${results}" +print_to_log "GEOS-Chem #${head_gc}" "${results}" +print_to_log "HEMCO #${head_hco}" "${results}" +print_to_log "" "${results}" +print_to_log "Using ${OMP_NUM_THREADS} OpenMP threads" "${results}" +print_to_log "Number of compilation tests: ${numTests}" "${results}" +print_to_log "" "${results}" +if [[ "X${SLURM_JOBID}" != "X" ]]; then + print_to_log "Submitted as SLURM job: ${SLURM_JOBID}" "${results}" +elif [[ "X${LSB_JOBID}" != "X" ]]; then + print_to_log "Submitted as LSF job: ${LSB_JOBID}" "${results}" +else + print_to_log "Submitted as interactive job" "${results}" +fi +print_to_log "${SEP_MAJOR}" "${results}" + +#============================================================================ +# Configure and compile code in each GEOS_Chem run directory +#============================================================================ +print_to_log " " "${results}" +print_to_log "Compiliation tests:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" + +# Change to the top-level build directory +cd "${itRoot}" + +# Keep track of the number of tests that passed & failed +let passed=0 +let failed=0 +let remain=${numTests} + +# Loop over build directories +for dir in ${EXE_LIST[@]}; do + + # Define build directory + thisBuildDir="${buildDir}/${dir}" + + # Define log file + log="${logsDir}/compile.${dir}.log" + rm -f "${log}" + + # Configure and build GEOS-Chem Classic source code + # and increment pass/fail/remain counters + build_model "gcclassic" "${itRoot}" "${thisBuildDir}" \ + "${baseOptions}" "${log}" "${results}" + if [[ $? -eq 0 ]]; then + let passed++ + else + let failed++ + fi + let remain-- +done + +#============================================================================ +# Check the number of simulations that have passed +#============================================================================ + +# Print summary to log +print_to_log " " "${results}" +print_to_log "Summary of compilation test results:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" +print_to_log "Complilation tests passed: ${passed}" "${results}" +print_to_log "Complilation tests failed: ${failed}" "${results}" +print_to_log "Complilation tests not completed: ${remain}" "${results}" + +# Check for success +if [[ "X${passed}" == "X${numTests}" ]]; then + + #-------------------------- + # Successful compilation + #-------------------------- + print_to_log "" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + print_to_log "%%% All compilation tests passed! %%%" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + + # Start the interactive execution test script upon successful finish + if [[ "X${SLURM_JOBID}" == "X" && "x${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Compilation tests finished!" + ${scriptsDir}/integrationTestExecute.sh & + fi + +else + + #--------------------------- + # Unsuccessful compilation + #--------------------------- + if [[ "X${SLURM_JOBID}" == "X" && "x${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Compilation tests failed! Exiting..." + fi +fi + +#============================================================================ +# Cleanup and quit +#============================================================================ + +# Free local variables +unset baseOptions +unset binDir +unset buildDir +unset codeDir +unset failed +unset dir +unset envDir +unset head_gcc +unset head_gc +unset head_hco +unset itRoot +unset kernel +unset log +unset logsDir +unset numTests +unset passed +unset remain +unset results +unset scriptsDir +unset scheduler + +# Free imported variables +unset FILL +unset SEP_MAJOR +unset SEP_MINOR +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/integration/GCClassic/integrationTestCreate.sh b/test/integration/GCClassic/integrationTestCreate.sh new file mode 100755 index 000000000..48ccd518a --- /dev/null +++ b/test/integration/GCClassic/integrationTestCreate.sh @@ -0,0 +1,331 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: integrationTestCreate.sh +# +# !DESCRIPTION: Creates integration test run directories in a user-specified +# root folder, and copies a run script there. +#\\ +#\\ +# !CALLING SEQUENCE: +# ./integrationTestCreate.sh /path/to/int/test/root /path/to/env-file [yes|no] +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================= +# Load common functions +#============================================================================= + +# Current directory +thisDir=$(pwd -P) +cd "${thisDir}" + +# Path to the test/shared folder in source code +sharedDir=$(realpath "${thisDir}/../../shared") + +# Source the script containing utility functions and variables +commonFuncs="${sharedDir}/commonFunctionsForTests.sh" +. "${commonFuncs}" + +#============================================================================= +# Parse input arguments +#============================================================================= + +# Integration test root folder +itRoot="${1}" +if [[ "X${itRoot}" == "X" ]]; then + echo "ERROR: The root-level directory for tests has not been specified!" + exit 1 +fi + +# Environment file (for Harvard Cannon only) +site=$(get_site_name) +envFile="${2}" +if [[ "X${site}" == "XCANNON" ]]; then + [[ "X${envFile}" == "X" ]] && envFile=$(get_default_gcc_env_file) + if [[ ! -f ${envFile} ]]; then + echo "ERROR: The enviroment file is not a valid file!" + exit 1 + fi +fi + +# Run a compile-only integration test? +testsToRun="${3}" + +# Run a short integration test? +quick="${4}" + +#============================================================================= +# Global variable and function definitions +#============================================================================= + +# GCClassic superproject directory (absolute paths) +cd ../../../../../ +superProjectDir=$(pwd -P) +cd ${superProjectDir} + +# GEOS-Chem and HEMCO submodule directories +geosChemDir="${superProjectDir}/src/GEOS-Chem" +hemcoDir="${superProjectDir}/src/HEMCO" + +# Get the Git commit of the superproject and submodules +head_gcc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${superProjectDir}" log --oneline --no-decorate -1) +head_gc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${geosChemDir}" log --oneline --no-decorate -1) +head_hco=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${hemcoDir}" log --oneline --no-decorate -1) + +# Echo header +printf "${SEP_MAJOR}\n" +printf "Creating GEOS-Chem Classic Integration Tests\n\n" +printf "GCClassic #${head_gcc}\n" +printf "GEOS-Chem #${head_gc}\n" +printf "HEMCO #${head_hco}\n" +printf "${SEP_MAJOR}\n" + +#============================================================================= +# Create integration test folder and subdirectories +#============================================================================= + +# Create integration test root folder if it doesn't exist +itRoot=$(absolute_path "${itRoot}") +[[ ! -d "${itRoot}" ]] && mkdir -p "${itRoot}" + +# Create local convenience variables +binDir="${itRoot}/${BIN_DIR}" +buildDir="${itRoot}/${BUILD_DIR}" +envDir="${itRoot}/${ENV_DIR}" +execDir="${itRoot}/${EXEC_DIR}" +logsDir="${itRoot}/${LOGS_DIR}" +scriptsDir="${itRoot}/${SCRIPTS_DIR}" +rundirsDir="${itRoot}/${RUNDIRS_DIR}" +utilsDir="${itRoot}/${UTILS_DIR}" + +# Get absolute path of the environment file +envFile=$(absolute_path "${envFile}") + +# Remove run directories in the test folder +cleanup_files "${itRoot}" + +# Subdir for CMake builds (note: will create ${itRoot} +printf "\nCreating CMake build directories:\n" +for dir in ${EXE_GCC_BUILD_LIST[@]}; do + printf " ... ${buildDir}/${dir}\n" + mkdir -p "${buildDir}/${dir}" +done + +# Subdir for executables +printf "\nCreating exe files directory ${binDir}\n" +mkdir -p "${binDir}" + +# Subdir for env files (for Harvard Cannon only) +if [[ "X${site}" == "XCANNON" ]]; then + printf "Creating env files directory ${envDir}\n" + mkdir -p "${envDir}" +fi + +# Subdir for log files +printf "Creating logs directory ${logsDir}\n" +mkdir -p "${logsDir}" + +# Subdir for scripts +printf "Creating scripts directory ${scriptsDir}\n" +mkdir -p "${scriptsDir}" + +# Subdir for run directories +if [[ "x${testsToRun}" == "xALL" ]]; then + printf "Creating rundirs directory ${rundirsDir}\n" + mkdir -p "${rundirsDir}" +fi + +# Create a symbolic link to the code from the Integration Test root folder +printf "Linking to superproject ${itRoot}/CodeDir\n" +ln -s "${superProjectDir}" ${itRoot}/CodeDir + +#============================================================================= +# Copy files to the proper folders +#============================================================================= + +printf "\nCopying run scripts to: ${scriptsDir}\n" +cp -f ${thisDir}/integration*.sh ${scriptsDir} +cp -f ${commonFuncs} ${scriptsDir} +cp -f ${thisDir}/README.md ${scriptsDir} +cp -f ${thisDir}/README.testroot.md ${itRoot}/README.md + +if [[ "X${site}" == "XCANNON" ]]; then + + # Copy Cannon environment file + cp -f ${envFile} ${envDir}/gcclassic.env + + # Copy Cannon utility scripts + printf "Copying utility scripts to ${utilsDir}\n" + cp -fR ${sharedDir}/utils/cannon/integrationTest ${utilsDir} + +elif [[ "X${site}" == "XCOMPUTE1" ]]; then + + # Copy Compute1 utility scripts + printf "Copying utility scripts to ${utilsDir}\n" + cp -fR ${sharedDir}/utils/compute1/integrationTest ${utilsDir} + + # Force scripts to be executable (Compute1 resets permissions) + chmod 755 -R ${scriptsDir} + chmod 755 -R ${utilsDir} + +fi + +# Log file with echoback from rundir creation +log="${logsDir}/createIntegrationTests.log" + +#============================================================================= +# Don't create run directories for compile-only tests. +#============================================================================= +if [[ "X${testsToRun}" == "XALL" ]]; then + + # Switch to folder where rundir creation scripts live + cd "${geosChemDir}/run/GCClassic" + + #========================================================================= + # Create individual run directories: 4x5 - MERRA2 - 72L + #========================================================================= + printf "\nCreating new run directories:\n" + + # 4x5 merra2 aerosol + create_rundir "2\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 carbon + create_rundir "3\n1\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 carbon CH4 only + create_rundir "3\n2\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 carbon CO2 only + create_rundir "3\n3\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 carbon CO only + create_rundir "3\n4\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 carbon OCS only + create_rundir "3\n5\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem + create_rundir "1\n1\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # Exit after creating a couple of rundirsDirs if $quick is "yes" + if [[ "X${quick}" == "XYES" ]]; then + cd ${thisDir} + exit 0 + fi + + # 4x5 merra2 fullchem_LuoWd + dir="gc_4x5_merra2_fullchem_LuoWd" + create_rundir "1\n1\n1\n1\n1\n${rundirsDir}\n${dir}\nn\n" "${log}" + + # 4x5 merra2 fullchem_aciduptake + create_rundir "1\n5\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_APM + create_rundir "1\n7\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_benchmark + create_rundir "1\n2\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_complexSOA + create_rundir "1\n3\n1\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_complexSOA_SVPOA + create_rundir "1\n3\n2\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_marinePOA + create_rundir "1\n4\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_RRTMG + create_rundir "1\n8\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_TOMAS15_47L + create_rundir "1\n6\n1\n1\n1\n2\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 Hg + create_rundir "4\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 POPs_BaP + create_rundir "5\n1\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 tagO3 + create_rundir "6\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 TransportTracers + create_rundir "7\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 TransportTracers_LuoWd + dir="gc_4x5_merra2_TransportTracers_LuoWd" + create_rundir "7\n1\n1\n1\n${rundirsDir}\n${dir}\nn\n" "${log}" + + # 4x5 merra2 metals + create_rundir "8\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 CH4 + create_rundir "9\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 CO2 + create_rundir "10\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 tagCO + create_rundir "11\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + #========================================================================= + # Create individual run directories: 4x5 and 47L (MERRA2) + #========================================================================= + + # 4x5 merra2 fullchem_47L + create_rundir "1\n1\n1\n1\n2\n${rundirsDir}\n\nn\n" "${log}" + + #========================================================================= + # Nested-grid simulations + #========================================================================= + + # 05x0625 merra2 CH4_47L_na + create_rundir "9\n1\n3\n4\n2\n${rundirsDir}\n\nn\n" "${log}" + + # 05x0625 merra2 fullchem_47L_na + create_rundir "1\n1\n1\n3\n4\n2\n${rundirsDir}\n\nn\n" "${log}" + + # Switch back to the present directory + cd "${thisDir}" +fi + +#============================================================================= +# Cleanup and quit +#============================================================================= + +# Free local variables +unset binDir +unset buildDir +unset commonFuncs +unset dir +unset envDir +unset geosChemDir +unset itRoot +unset log +unset logsDir +unset rundirsDir +unset superProjectDir +unset scriptsDir +unset sharedDir +unset thisDir +unset utilsDir + +# Free imported variables +unset FILL +unset SEP_MAJOR +unset SEP_MINOR +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/integration/GCClassic/integrationTestExecute.sh b/test/integration/GCClassic/integrationTestExecute.sh new file mode 100755 index 000000000..8ef6260d3 --- /dev/null +++ b/test/integration/GCClassic/integrationTestExecute.sh @@ -0,0 +1,303 @@ +#!/bin/bash + +#SBATCH -c 24 +#SBATCH -N 1 +#SBATCH -t 0-6:00 +#SBATCH -p REQUESTED_PARTITION +#SBATCH --mem=90000 +#SBATCH --mail-type=END +#BSUB -q REQUESTED_PARTITION +#BSUB -n 24 +#BSUB -W 6:00 +#BSUB -R "rusage[mem=90GB] span[ptile=1] select[mem < 2TB]" +#BSUB -a 'docker(registry.gsc.wustl.edu/sleong/esm:intel-2021.1.2)' +#BSUB -o lsf-%J.txt + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: integrationTestExecute.sh +# +# !DESCRIPTION: Runs execution tests on various GEOS-Chem Classic +# run directories (using the SLURM scheduler). +#\\ +#\\ +# !CALLING SEQUENCE: +# ./integrationTestExecute.sh # Interactive command-line execution +# bsub integrationTestExecute.sh # Execution via LSF +# sbatch integrationTestExecute.sh # Execution via SLURM +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================ +# Global variable and function definitions +#============================================================================ + +# This script starts executing 1 level lower than $itRoot +itRoot=$(cd ..; pwd) + +# Include global variables & functions +. "${itRoot}/scripts/commonFunctionsForTests.sh" + +# Create local convenience variables +binDir="${itRoot}/${BIN_DIR}" +envDir="${itRoot}/${ENV_DIR}" +codeDir="${itRoot}/CodeDir" +logsDir="${itRoot}/${LOGS_DIR}" +rundirsDir="${itRoot}/${RUNDIRS_DIR}" +site=$(get_site_name) + +# Load the environment and the software environment +. ~/.bashrc > /dev/null 2>&1 +[[ "X${site}" == "XCANNON" ]] && . ${envDir}/gcclassic.env > /dev/null 2>&1 + +# Get the Git commit of the superproject and submodules +head_gcc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}" log --oneline --no-decorate -1) +head_gc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/GEOS-Chem" log --oneline --no-decorate -1) +head_hco=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/HEMCO" log --oneline --no-decorate -1) + +# Site-specific settings +if [[ "X${site}" == "XCANNON" && "X${SLURM_JOBID}" != "X" ]]; then + + #---------------------------------- + # SLURM settings (Harvard Cannon) + #---------------------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #SBATCH -c + export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} + +elif [[ "X${site}" == "XCOMPUTE1" && "X${LSB_JOBID}" != "X" ]]; then + + #--------------------------------- + # LSF settings (WashU Compute1) + #--------------------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #BSUB -n + export OMP_NUM_THREADS=${LSB_DJOB_NUMPROC} + +else + + #--------------------------------- + # Interactive settings + #--------------------------------- + echo "" + echo "Execution tests running..." + + # For AWS, set $OMP_NUM_THREADS to the available cores + kernel=$(uname -r) + [[ "X${kernel}" == "Xaws" ]] && export OMP_NUM_THREADS=$(nproc) + +fi + +# Sanity check: Set OMP_NUM_THREADS to 8 if it is not set +# (this may happen when running interactively) +[[ "X${OMP_NUM_THREADS}" == "X" ]] && export OMP_NUM_THREADS=8 + +# Sanity check: Max out the OMP_STACKSIZE if it is not set +[[ "X${OMP_STACKSIZE}" == "X" ]] && export OMP_STACKSIZE=500m + +# Count the number of tests to be run (same as the # of run directories) +numTests=$(count_rundirs "${rundirsDir}") + +#============================================================================ +# Initialize results logfile +#============================================================================ + +# Results logfile name +results="${logsDir}/results.execute.log" +rm -f "${results}" + +# Print header to results log file +print_to_log "${SEP_MAJOR}" "${results}" +print_to_log "GEOS-Chem Classic: Execution Test Results" "${results}" +print_to_log "" "${results}" +print_to_log "GCClassic #${head_gcc}" "${results}" +print_to_log "GEOS-Chem #${head_gc}" "${results}" +print_to_log "HEMCO #${head_hco}" "${results}" +print_to_log "" "${results}" +print_to_log "Using ${OMP_NUM_THREADS} OpenMP threads" "${results}" +print_to_log "Number of execution tests: ${numTests}" "${results}" +print_to_log "" "${results}" +if [[ "X${SLURM_JOBID}" != "X" ]]; then + print_to_log "Submitted as SLURM job: ${SLURM_JOBID}" "${results}" +elif [[ "X${LSB_JOBID}" == "XCOMPUTE1" ]]; then + print_to_log "Submitted as LSF job: ${LSB_JOBID}" "${results}" +else + print_to_log "Submitted as interactive job" "${results}" +fi +print_to_log "${SEP_MAJOR}" "${results}" + +#============================================================================ +# Run the GEOS-Chem executable in each GEOS-Chem run directory +#============================================================================ +print_to_log " " "${results}" +print_to_log "Execution tests:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" + +# Keep track of the number of tests that passed & failed +let passed=0 +let failed=0 +let remain=${numTests} + +# Navigate to the directory containing individiual run directories +cd "${rundirsDir}" + +# Loop over rundirs and run GEOS-Chem +for runDir in *; do + + # Expand rundir to absolute path + runAbsPath="${rundirsDir}/${runDir}" + + # Do the following if for only valid GEOS-Chem run dirs + expr=$(is_valid_rundir "${runAbsPath}") + if [[ "X${expr}" == "XTRUE" ]]; then + + # Define log file + log="${logsDir}/execute.${runDir}.log" + rm -f "${log}" + + # Messages for execution pass & fail + passMsg="$runDir${FILL:${#runDir}}.....${EXE_PASS_STR}" + failMsg="$runDir${FILL:${#runDir}}.....${EXE_FAIL_STR}" + + # Get the executable file corresponding to this run directory + exeFile=$(exe_name "gcclassic" "${runDir}") + + # Test if the executable exists + if [[ -f "${binDir}/${exeFile}" ]]; then + + #---------------------------------------------------------------- + # If the executable file exists, we can do the test + #---------------------------------------------------------------- + + # Change to this run directory + cd "${runAbsPath}" + + # Copy the executable file here + cp -f "${binDir}/${exeFile}" . + + # Update to make sure the run directory is executable on Compute1 + if [[ "X${site}" == "XCOMPUTE1" ]]; then + chmod 755 -R "${runAbsPath}" + fi + + # Remove any leftover files in the run dir + ./cleanRunDir.sh --no-interactive >> "${log}" 2>&1 + + # Run the code if the executable is present. Then update the + # pass/fail counters and write a message to the results log file. + if [[ "X${site}" == "XCANNON" && "X${SLURM_JOBID}" != "X" ]]; then + srun -c ${OMP_NUM_THREADS} ./${exeFile} >> "${log}" 2>&1 + else + ./${exeFile} >> "${log}" 2>&1 + fi + + # Determine if the job succeeded or failed + if [[ $? -eq 0 ]]; then + let passed++ + print_to_log "${passMsg}" "${results}" + else + let failed++ + print_to_log "${failMsg}" "${results}" + fi + + # Navigate back to the folder containing run directories + cd "${rundirsDir}" + + else + + #---------------------------------------------------------------- + # If the executable is missing, update the "fail" counter + # and write the "failed" message to the results log file. + #---------------------------------------------------------------- + let failed++ + if [[ "x${results}" != "x" ]]; then + print_to_log "${failMsg}" "${results}" + fi + fi + + # Decrement the count of remaining tests + let remain-- + fi +done + +#============================================================================ +# Check the number of simulations that have passed +#============================================================================ + +# Print summary to log +print_to_log " " "${results}" +print_to_log "Summary of test results:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" +print_to_log "Execution tests passed: ${passed}" "${results}" +print_to_log "Execution tests failed: ${failed}" "${results}" +print_to_log "Execution tests not yet completed: ${remain}" "${results}" + +# Check for success +if [[ "X${passed}" == "X${numTests}" ]]; then + + #-------------------------- + # Successful execution + #-------------------------- + print_to_log "" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + print_to_log "%%% All execution tests passed! %%%" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + + # Print success (if interactive) + if [[ "X${SLURM_JOBID}" == "X" && "x${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Execution tests finished!" + fi + +else + + #-------------------------- + # Unsuccessful execution + #-------------------------- + if [[ "X${SLURM_JOBID}" == "X" && "X${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Execution tests failed! Exiting ..." + fi +fi + +#============================================================================ +# Cleanup and quit +#============================================================================ + +# Free local variables +unset absRunPath +unset binDir +unset codeDir +unset envDir +unset exeFile +unset failed +unset failmsg +unset head_gcc +unset head_gc +unset head_hco +unset itRoot +unset log +unset logsDir +unset numTests +unset passed +unset passMsg +unset remain +unset results +unset rundirsDir +unset scheduler + +# Free imported global variables +unset FILL +unset LINE +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/integration/GCHP/README.md b/test/integration/GCHP/README.md new file mode 100644 index 000000000..0864e969e --- /dev/null +++ b/test/integration/GCHP/README.md @@ -0,0 +1,92 @@ +# README for GCHP Integration Tests + +## Overview: + +This directory contains: + +1. Scripts to submit automated GCHP integration tests, which will test the following processes: + + - GCHP run directory creation + - GCHP code configuration and compilation + - GCHP execution + +Integration tests are short GCHP simulations. Executables are compiled with all debugging options. This should reveal any coding errors or run-directory configuration errors. + +## Files + +### Integration Test Scripts + +- `integrationTest.sh` + - Driver script to run GCHP integration tests +- `integrationTestCreate.sh` + - Script to create GCHP run directories for integration tests +- `integrationTestCompile.sh` + - Script to compile GCHP executables +- `integrationTestExecute.sh` + - Script to run GCHP integration test simulations + +### Shared Scripts + +- `commonFunctionsForTests.sh` + - Link to `../../shared/commonFunctionsForTests.sh`, which contains global variables and functions for the integration and parallelization tests. + +## Before you begin + +Please take a moment to: + +1. Verify that the `GCHP` superproject is checked out to the correct branch and commit. +2. Run `git submodule update --init --recursive` in order to update all submodules. +3. Verify that the `HEAD` commit of the `GEOS-Chem` submodule contains the code that you wish to test. (If not, then check out the proper branch.) +4. Verify that the `HEAD` commit of the `HEMCO` submodule contains the code that you wish to test. (If not, then check out the proper branch.) + +## Command-line Arguments + +The integration test scripts accept the following command-line arguments: + +### Required arguments + +`-d /path/to/test/dir` specifies the root directory where integration test subdirectories and scripts will be placed. + +`-t compile|all` specifies the type of test to be run: + - `compile` will run compilation-only tests. + - `all` will run compilation and execution tests. + +### Optional arguments + +`-e /path/to/env-file` Specifies the file that is used to initialize the software environment on the Harvard Cannon cluster. If omitted, a default file will be selected. + +`-h` displays a help screeen. + +`-q` will run only a couple of integration tests instead of the full suite. This is intended for development and debugging. You will normally not need to use this option. + +You can also use long names for the option switches: +- `--directory` instead of `-d` +- `--env-file` instead of `-e` +- `--help` instead of `h` +- `--no-bootstrap` instead of `n` +- `--tests-to-run` instead of `-t` + +## Examples + +### Request compile-only tests on Cannon or Compute1 +```console +$ cd /path/to/GCHP # Path to GCClassic superproject directory +$ cd test/integration/GCHP +$ ./integrationTest.sh -d /path/to/test/dir -t compile +``` + +### Request compile and execution tests (Harvard Cannon) +```console +$ cd /path/to/GCHP # Path to GCClassic superproject directory +$ cd test/integration/GCHP +$ ./integrationTest.sh -d /path/to/test/dir -t all -e /path/to/env-file +``` +NOTE: If you omit the `-e /path/to/env/file` a default environment file will be used to load GNU Compiler Collection 10 and related libraries. + +### Request compile & execution tests (WashU compute1) +```console +$ cd /path/to/GCHP # Path to GCClassic superproject directory +$ cd test/integration/GCHP +$ ./integrationTest.sh -d /path/to/test/dir -t all +``` +NOTE: No environment file is needed. On Compute1 the tests will run inside a software container with all necessary libraries included. diff --git a/test/integration/GCHP/README.testroot.md b/test/integration/GCHP/README.testroot.md new file mode 100644 index 000000000..5e0778378 --- /dev/null +++ b/test/integration/GCHP/README.testroot.md @@ -0,0 +1,44 @@ +# README for GCHP Integration Tests + +## Directories + +Components of GCHP integration tests have been separated into these directories: + +`bin` + + - Contains GCHP executable files. + +`build` + + - Directories for building GCHP executables. + +`CodeDir` + + - Symbolic link to the GCHP superproject directory. + +`env` + + - Contains an environment file that loads the software libraries needed to run GCHP. + +`logs` + + - Contains log files from the integration tests. + + - `results.compile.log`: Results of GCHP compilation tests. + - `results.execute.log`: Results of GCHP Classic execution tests. + - `compile.*.log`: Output of individual compilation tests + - `execute.*.log`: Output of individual execution tests + - `lsf-*.txt`: LSF scheduler job logs + - `slurm*.out`: SLURM scheduler job logs + +`rundirs` + + - Contains individual GCHP run directories. + +`scripts` + + - Contains the scripts that are used for running the GCHP integration tests. These are copied from the `test/GCHP/integration` folder of the GEOS-Chem "science codebase" repository. + +## For more information + +Please see the `scripts/README.md` file for detailed instructions on running GCHP integration tests. diff --git a/test/integration/GCHP/integrationTest.sh b/test/integration/GCHP/integrationTest.sh new file mode 100755 index 000000000..f19666be5 --- /dev/null +++ b/test/integration/GCHP/integrationTest.sh @@ -0,0 +1,335 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: integrationTest.sh +# +# !DESCRIPTION: Runs integration tests on the various GCHP run directories +# (interactively, or with a scheduler). +#\\ +#\\ +# !CALLING SEQUENCE: +# ./integrationTest.sh -d root-dir -t compile|all [-e env-file] [-h] [-q] +# +# Required arguments +# -d root-dir : Specify the root folder for integration tests +# -t compile|all : Specify the tests to run (compile-only or all) +# +# Optional arguments +# -e env-file : Software environment file for Harvard Cannon +# -h : Display a help message +# -n : Do not bootstrap missing restart file variables +# -q : Run a quick set of integration tests (for testing) +# +# NOTE: you can also use the following long name options: +# +# --directory (instead of -d) +# --env-file (instead of -e) +# --help (instead of -h) +# --no-bootstrap (instead of -n) +# --quick (instead of -q) +# --tests-to-run (instead of -t) +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================= +# Initialize +#============================================================================= +this="$(basename ${0})" +usage="Usage: ${this} -d root-dir -t compile|all [-e env-file] [-h] [-n] [-q]" +quick="NO" +bootStrap="YES" + +# Current directory +thisDir=$(pwd -P) +cd "${thisDir}" + +# Load common functions +. "${thisDir}/../../shared/commonFunctionsForTests.sh" + +#============================================================================= +# Parse command-line arguments +# See https://www.baeldung.com/linux/bash-parse-command-line-arguments +#============================================================================= + +# Call Linux getopt function to specify short & long input options +# (e.g. -d or --directory, etc). Exit if not succesful +validArgs=$(getopt --options d:e:hnqt: \ + --long directory:,env-file:,help,no-bootstrap,quick,tests-to-run: -- "$@") +if [[ $? -ne 0 ]]; then + exit 1; +fi + +# Parse arguments and set variables accordingly +# NOTE: Convert some inputs to uppercase to facilitate comparisons +eval set -- "${validArgs}" +while [ : ]; do + case "${1}" in + + # -d or --directory specifies the root folder for tests + -d | --directory) + itRoot="${2}" + shift 2 + ;; + + # -e or --env-file specifies the environment file + -e | --env-file) + envFile="${2}" + shift 2 + ;; + + # -h or --help prints a help message + -h | --help) + echo "$usage" + exit 1 + ;; + + # -n or --no-bootstrap prevents bootstrapping missing variables in + # restart files (i.e. do not change EFYO -> CYS in HEMCO_Config.rc) + -n | --no-bootstrap) + bootStrap="NO" + shift + ;; + + # -q or --quick runs a quick set of integration tests (for testing) + -q | --quick) + quick="YES" + shift + ;; + + # -t or --tests-to-run specifies the type of tests to run + -t | --tests-to-run) + testsToRun="${2^^}" + shift 2 + ;; + + --) shift; + break + ;; + esac +done +#============================================================================= +# Sanity-check user input +#============================================================================= + +# Get the site name from the node name +site=$(get_site_name) + +# Error check integration tests root path +if [[ "X${itRoot}" == "X" ]]; then + echo "ERROR: The integration test root directory has not been specified!" + echo "${usage}" + exit 1 +fi + +# Error check the type of tests to run +if [[ "X${testsToRun}" == "X" ]]; then + echo "ERROR: You must specify the test type: compile|all" + echo "${usage}" + exit 1 +fi +if [[ "X${testsToRun}" != "XCOMPILE" && "X${testsToRun}" != "XALL" ]]; then + echo "ERROR: Invalid selction for tests-to-run, must be: compile|all" + echo "${usage}" + exit 1 +fi + +# Error checks for tests that include compile & run phases +if [[ "X${testsToRun}" == "XALL" ]]; then + + # Use the default environment file for Cannon if not specified + if [[ "X${site}" == "XCANNON" && "X${envFile}" == "X" ]]; then + envFile=$(get_default_gchp_env_file) + fi + + # Get the sed command that will replace the partition name + sedPartitionCmd=$(get_sed_partition_cmd_from_site "${site}") +fi + +#============================================================================= +# Create integration test directories in the root folder +#============================================================================= + +# Convert integration test root folder to an absolute path +itRoot=$(absolute_path "${itRoot}") + +# Prevent running integration tests in the source code directory tree +if [[ "$(absolute_path ${thisDir})" =~ "${itRoot}" ]]; then + echo "ERROR: You cannot run integration tests in the source code directory!" + exit 1 +fi +# Create GEOS-Chem run directories in the integration test root folder +./integrationTestCreate.sh "${itRoot}" "${envFile}" "${testsToRun}" "${quick}" +if [[ $? -ne 0 ]]; then + echo "ERROR: Could not create integration test run directories!" + exit 1 +fi + +# Navigate to the root test folder +if [[ -d "${itRoot}" ]]; then + cd "${itRoot}" +else + echo "ERROR: ${itRoot} is not a valid directory! Exiting..." + exit 1 +fi + +# Define local convenience variables +logsDir="${itRoot}/${LOGS_DIR}" +scriptsDir="${itRoot}/${SCRIPTS_DIR}" +rundirsDir="${itRoot}/${RUNDIRS_DIR}" + +# Edit setCommonRunSettings.sh scripts to enable or disable bootstrapping +# (i.e. to allow missing species in restart files or not) +if [[ "x${testsToRun}" == "xALL" ]]; then + gchp_enable_or_disable_bootstrap "${bootStrap}" "${rundirsDir}" +fi + +# Navigate to the logs directory (so all output will be placed there) +cd "${logsDir}" + +#============================================================================= +# Run the tests +#============================================================================= +if [[ "x${testsToRun}" == "xCOMPILE" ]]; then + + #------------------------------------------------------------------------- + # Compilation-only tests (scheduler is not used) + #------------------------------------------------------------------------- + echo "" + echo "Compiliation tests are running..." + ${scriptsDir}/integrationTestCompile.sh "${quick}" + +elif [[ "x${testsToRun}" == "xALL" && "x${site}" == "xCANNON" ]]; then + + #------------------------------------------------------------------------- + # Compilation & execution tests on Harvard Cannon (via SLURM) + #------------------------------------------------------------------------- + + # Remove LSF #BSUB tags + sed_ie '/#BSUB -q REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#BSUB -n 8/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#BSUB -W 2:30/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#BSUB -o lsf-%J.txt/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie \ + '/#BSUB -R "rusage\[mem=8GB\] span\[ptile=1\] select\[mem < 1TB\]"/d' \ + "${scriptsDir}/integrationTestCompile.sh" + sed_ie \ + "/#BSUB -a 'docker(registry\.gsc\.wustl\.edu\/sleong\/esm\:intel\-2021\.1\.2)'/d" \ + "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#BSUB -q REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#BSUB -n 24/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#BSUB -W 5:00/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#BSUB -o lsf-%J.txt/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie \ + '/#BSUB -R "rusage\[mem=90GB\] span\[ptile=1\] select\[mem < 2TB\]"/d' \ + "${scriptsDir}/integrationTestExecute.sh" + sed_ie \ + "/#BSUB -a 'docker(registry\.gsc\.wustl\.edu\/sleong\/esm\:intel\-2021\.1\.2)'/d" \ + "${scriptsDir}/integrationTestExecute.sh" + + # Replace "REQUESTED_PARTITION" with the partition name + sed_ie "${sedPartitionCmd}" "${scriptsDir}/integrationTestCompile.sh" + sed_ie "${sedPartitionCmd}" "${scriptsDir}/integrationTestExecute.sh" + + # Submit compilation tests script + output=$(sbatch ${scriptsDir}/integrationTestCompile.sh "${quick}") + output=($output) + cmpId=${output[3]} + + # Submit execution tests script as a job dependency + output=$(sbatch --dependency=afterok:${cmpId} ${scriptsDir}/integrationTestExecute.sh) + output=($output) + exeId=${output[3]} + + echo "" + echo "Compilation tests submitted as SLURM job ${cmpId}" + echo "Execution tests submitted as SLURM job ${exeId}" + +elif [[ "x${testsToRun}" == "xALL" && "x${site}" == "xCOMPUTE1" ]]; then + + #------------------------------------------------------------------------- + # Compilation and execution tests on WashU Compute1 (via LSF) + #------------------------------------------------------------------------- + + # Remove SLURM #SBATCH tags + sed_ie '/#SBATCH -c 8/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -N 1/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -t 0-2:30/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -p REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH --mem=8000/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -p REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH --mail-type=END/d' "${scriptsDir}/integrationTestCompile.sh" + sed_ie '/#SBATCH -n 24/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH -N 1/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH -c 1/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH -t 0-5:00/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH -p REQUESTED_PARTITION/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH --mem=90000/d' "${scriptsDir}/integrationTestExecute.sh" + sed_ie '/#SBATCH --mail-type=END/d' "${scriptsDir}/integrationTestExecute.sh" + + # Replace "REQUESTED_PARTITION" with the partition name + sed_ie "${sedPartitionCmd}" "${scriptsDir}/integrationTestCompile.sh" + sed_ie "${sedPartitionCmd}" "${scriptsDir}/integrationTestExecute.sh" + + # Submit compilation tests script + output=$(bsub ${scriptsDir}/integrationTestCompile.sh "${quick}") + output=($output) + cmpId=${output[1]} + cmpId=${cmpId/<} + cmpId=${cmpId/>} + + # Submit execution tests script as a job dependency + output=$(bsub -w "exit(${cmpId},0)" ${scriptsDir}/integrationTestExecute.sh) + output=($output) + exeId=${output[1]} + exeId=${exeId/<} + exeId=${exeId/>} + + echo "" + echo "Compilation tests submitted as LSF job ${cmpId}" + echo "Execution tests submitted as LSF job ${exeId}" + +else + + #------------------------------------------------------------------------- + # Exit with error + #------------------------------------------------------------------------- + echo "" + echo "ERROR! Invalid choice of arguments!" + echo "${usage}" + exit 1 + +fi + +# Change back to this directory +cd "${thisDir}" + +#============================================================================= +# Cleanup and quit +#============================================================================= + +# Free local variables +unset cmpId +unset envFile +unset exeId +unset itRoot +unset logsDir +unset quick +unset output +unset scheduler +unset scriptsDir +unset thisDir + +# Free imported variables +unset FILL +unset SEP_MAJOR +unset SEP_MINOR +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/integration/GCHP/integrationTestCompile.sh b/test/integration/GCHP/integrationTestCompile.sh new file mode 100755 index 000000000..b0bf58406 --- /dev/null +++ b/test/integration/GCHP/integrationTestCompile.sh @@ -0,0 +1,269 @@ +#!/bin/bash + +#SBATCH -c 8 +#SBATCH -N 1 +#SBATCH -t 0-2:30 +#SBATCH -p REQUESTED_PARTITION +#SBATCH --mem=6000 +#SBATCH --mail-type=END +#BSUB -q REQUESTED_PARTITION +#BSUB -n 8 +#BSUB -W 2:30 +#BSUB -R "rusage[mem=8GB] span[ptile=1] select[mem < 1TB]" +#BSUB -a 'docker(registry.gsc.wustl.edu/sleong/esm:intel-2021.1.2)' +#BSUB -o lsf-%J.txt + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: integrationTestCompile.sh +# +# !DESCRIPTION: Runs compilation tests on various GCHP +# run directories (using the SLURM scheduler). +#\\ +#\\ +# !CALLING SEQUENCE: +# ./integrationTestCompile.sh # Interactive command-line execution +# bsub integrationTestCompile.sh # Execution via LSF +# sbatch integrationTestCompile.sh # Execution via SLURM +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================= +# Arguments +#============================================================================= + +# Run a short integration test? +quick="${1}" + +#============================================================================ +# Global variable and function definitions +#============================================================================ + +# This script starts executing 1 level lower than $itRoot +itRoot=$(cd ..; pwd) + +# Include global variables & functions +. "${itRoot}/scripts/commonFunctionsForTests.sh" + +# Create local convenience variables +binDir="${itRoot}/${BIN_DIR}" +buildDir="${itRoot}/${BUILD_DIR}" +envDir="${itRoot}/${ENV_DIR}" +codeDir="${itRoot}/CodeDir" +logsDir="${itRoot}/${LOGS_DIR}" +scriptsDir="${itRoot}/${SCRIPTS_DIR}" +site=$(get_site_name) + +# Load the user-environment and the software environment +. ~/.bashrc > /dev/null 2>&1 +[[ "X${site}" == "XCANNON" ]] && . ${envDir}/gchp.env > /dev/null 2>&1 + +# All integration tests will use debugging features +baseOptions="-DCMAKE_BUILD_TYPE=Debug -DRUNDIR='' -DINSTALLCOPY=${binDir}" + +# Get the Git commit of the superproject and submodules +head_gchp=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}" log --oneline --no-decorate -1) +head_gc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem" \ + log --oneline --no-decorate -1) +head_hco=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/GCHP_GridComp/HEMCO_GridComp/HEMCO" \ + log --oneline --no-decorate -1) + +# Site-specific settings +if [[ "X${site}" == "XCANNON" && "X${SLURM_JOBID}" != "X" ]]; then + + #---------------------------------- + # SLURM settings (Harvard Cannon) + #---------------------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #SBATCH -c + export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} + +elif [[ "X${site}" == "XCOMPUTE1" && "X${LSB_JOBID}" != "X" ]]; then + + #---------------------------------- + # LSF settings (WashU Compute1) + #---------------------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #BSUB -n + export OMP_NUM_THREADS=${LSB_DJOB_NUMPROC} + +else + + #---------------------------------- + # Interactive settings + #---------------------------------- + + # For AWS, set $OMP_NUM_THREADS to the available cores + kernel=$(uname -r) + [[ "X${kernel}" == "Xaws" ]] && export OMP_NUM_THREADS=$(nproc) + +fi + +# Sanity check: Set OMP_NUM_THREADS to 6 if it is not set +# (this may happen when running interactively) +[[ "x${OMP_NUM_THREADS}" == "x" ]] && export OMP_NUM_THREADS=6 + +# Sanity check: Max out the OMP_STACKSIZE if it is not set +[[ "x${OMP_STACKSIZE}" == "x" ]] && export OMP_STACKSIZE=500m + +# Only create necessary executables if $quick is "yes" +if [[ "X${quick}" == "XYES" ]]; then + EXE_LIST=("default" "carbon") +else + EXE_LIST=("${EXE_GCHP_BUILD_LIST[@]}") +fi + +# Count the number of tests to be done +numTests=${#EXE_LIST[@]} + +#============================================================================ +# Initialize results logfile +#============================================================================ + +# Results logfile name +results="${logsDir}/results.compile.log" +rm -f "${results}" + +# Print header to results log file +print_to_log "${SEP_MAJOR}" "${results}" +print_to_log "GCHP: Compilation Test Results" "${results}" +print_to_log "" "${results}" +print_to_log "GCHP #${head_gchp}" "${results}" +print_to_log "GEOS-Chem #${head_gc}" "${results}" +print_to_log "HEMCO #${head_hco}" "${results}" +print_to_log "" "${results}" +print_to_log "Number of compilation tests: ${numTests}" "${results}" +print_to_log "" "${results}" +if [[ "X${SLURM_JOBID}" != "X" ]]; then + print_to_log "Submitted as SLURM job: ${SLURM_JOBID}" "${results}" +elif [[ "X${LSB_JOBID}" != "X" ]]; then + print_to_log "Submitted as LSF job: ${LSB_JOBID}" "${results}" +else + print_to_log "Submitted as interactive job" "${results}" +fi +print_to_log "${SEP_MAJOR}" "${results}" + +#============================================================================ +# Configure and compile code in each GEOS_Chem run directory +#============================================================================ +print_to_log " " "${results}" +print_to_log "Compiliation tests:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" + +# Change to the top-level build directory +cd "${itRoot}" + +# Keep track of the number of tests that passed & failed +let passed=0 +let failed=0 +let remain=${numTests} + + + +# Loop over build directories +for dir in ${EXE_LIST[@]}; do + + # Define build directory + thisBuildDir="${buildDir}/${dir}" + + # Define log file + log="${logsDir}/compile.${dir}.log" + rm -f "${log}" + + # Configure and build GEOS-Chem source code + # and increment pass/fail/remain counters + build_model "gchp" "${itRoot}" "${thisBuildDir}" \ + "${baseOptions}" "${log}" "${results}" + if [[ $? -eq 0 ]]; then + let passed++ + else + let failed++ + fi + let remain-- + +done + +#============================================================================ +# Check the number of simulations that have passed +#============================================================================ + +# Print summary to log +print_to_log " " "${results}" +print_to_log "Summary of compilation test results:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" +print_to_log "Complilation tests passed: ${passed}" "${results}" +print_to_log "Complilation tests failed: ${failed}" "${results}" +print_to_log "Complilation tests not completed: ${remain}" "${results}" + +# Check if all tests passed +if [[ "x${passed}" == "x${numTests}" ]]; then + + #--------------------------- + # Successful compilation + #--------------------------- + print_to_log "" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + print_to_log "%%% All compilation tests passed! %%%" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + + # Run execution tests interactively + # (This job has already been submitted as a dependency in SLURM/LSF) + if [[ "X${SLURM_JOBID}" == "X" && "x${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Compilation tests finished!" + ${scriptsDir}/integrationTestExecute.sh & + fi + +else + + #--------------------------- + # Unsuccessful compilation + #--------------------------- + if [[ "X${SLURM_JOBID}" == "X" && "x${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Compilation tests failed! Exiting..." + fi +fi + +#============================================================================ +# Cleanup and quit +#============================================================================ + +# Free local variables +unset baseOptions +unset binDir +unset buildDir +unset codeDir +unset failed +unset dir +unset envDir +unset head_gcc +unset head_gc +unset head_hco +unset itRoot +unset kernel +unset log +unset logsDir +unset numTests +unset passed +unset remain +unset results +unset scriptsDir +unset scheduler + +# Free imported variables +unset FILL +unset SEP_MAJOR +unset SEP_MINOR +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/integration/GCHP/integrationTestCreate.sh b/test/integration/GCHP/integrationTestCreate.sh new file mode 100755 index 000000000..b5609f8de --- /dev/null +++ b/test/integration/GCHP/integrationTestCreate.sh @@ -0,0 +1,271 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: integrationTestCreate.sh +# +# !DESCRIPTION: Creates GCHP integration test run directories in a +# user-specified root folder, and copies a run script there. +#\\ +#\\ +# !CALLING SEQUENCE: +# ./integrationTestCreate.sh /path/to/root /path/to/env-file tests-to-run +# ./integrationTestCreate.sh /path/to/root /path/to/env-file tests-to-run quick=1 +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================= +# Load common functions +#============================================================================= + +# Current directory +thisDir=$(pwd -P) +cd "${thisDir}" + +# Path to the test/shared folder in source code +sharedDir=$(realpath "${thisDir}/../../shared") + +# Source the script containing utility functions and variables +commonFuncs="${sharedDir}/commonFunctionsForTests.sh" +. "${commonFuncs}" + +#============================================================================= +# Parse input arguments +#============================================================================= + +# Integration test root folder +itRoot="${1}" +if [[ "x${itRoot}" == "x" ]]; then + echo "ERROR: The root-level directory for tests has not been specified!" + exit 1 +fi + +# Environment file (for Harvard Cannon only) +site=$(get_site_name) +envFile="${2}" +if [[ "X${site}" == "XCANNON" ]]; then + [[ "X${envFile}" == "X" ]] && envFile=$(get_default_gchp_env_file) + if [[ ! -f ${envFile} ]]; then + echo "ERROR: The enviroment file is not a valid file!" + exit 1 + fi +fi + +# Type of tests to run? +testsToRun="${3}" + +# Run a short integration test? +quick="${4}" + +#============================================================================= +# Global variable and function definitions +#============================================================================= + +# GCClassic superproject directory +cd ../../../../../../../ +superProjectDir=$(pwd -P) +cd "${superProjectDir}" + +# GEOS-Chem and HEMCO submodule directories +geosChemDir="${superProjectDir}/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem" +hemcoDir="${superProjectDir}/src/GCHP_GridComp/HEMCO_GridComp/HEMCO" + +# Get the Git commit of the superproject and submodules +head_gchp=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${superProjectDir}" log --oneline --no-decorate -1) +head_gc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${geosChemDir}" log --oneline --no-decorate -1) +head_hco=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${hemcoDir}" log --oneline --no-decorate -1) + +# Echo header +printf "${SEP_MAJOR}\n" +printf "Creating GCHP Integration Tests\n\n" +printf "GCHP #${head_gchp}\n" +printf "GEOS_Chem #${head_gc}\n" +printf "HEMCO #${head_hco}\n" +printf "${SEP_MAJOR}\n" + +#============================================================================= +# Create integration test folder and subdirectories +#============================================================================= + +# Create integration test root folder if it doesn't exist +itRoot=$(absolute_path "${itRoot}") +[[ ! -d "${itRoot}" ]] && mkdir -p "${itRoot}" + +# Create local convenience variables +binDir="${itRoot}/${BIN_DIR}" +buildDir="${itRoot}/${BUILD_DIR}" +envDir="${itRoot}/${ENV_DIR}" +execDir="${itRoot}/${EXEC_DIR}" +logsDir="${itRoot}/${LOGS_DIR}" +scriptsDir="${itRoot}/${SCRIPTS_DIR}" +rundirsDir="${itRoot}/${RUNDIRS_DIR}" +utilsDir="${itRoot}/${UTILS_DIR}" + +# Get absolute path of the environment file +envFile=$(absolute_path "${envFile}") + +# Remove run directories in the test folder +cleanup_files "${itRoot}" + +# Subdir for CMake builds (note: will create ${itRoot} +printf "\nCreating CMake build directories:\n" +for dir in ${EXE_GCC_BUILD_LIST[@]}; do + printf " ... ${buildDir}/${dir}\n" + mkdir -p "${buildDir}/${dir}" +done + +# Subdir for executables +printf "\nCreating exe files directory ${binDir}\n" +mkdir -p "${binDir}" + +# Subdir for env files (for Harvard Cannon only) +if [[ "X${site}" == "XCANNON" ]]; then + printf "Creating env files directory ${envDir}\n" + mkdir -p "${envDir}" +fi + +# Subdir for log files +printf "Creating logs directory ${logsDir}\n" +mkdir -p "${logsDir}" + +# Subdir for scripts +printf "Creating scripts directory ${scriptsDir}\n" +mkdir -p "${scriptsDir}" + +# Subdir for run directories +if [[ "x${testsToRun}" == "xALL" ]]; then + printf "Creating rundirs directory ${rundirsDir}\n" + mkdir -p "${rundirsDir}" +fi + +# Create a symbolic link to the code from the Integration Test root folder +printf "Linking to superproject ${itRoot}/CodeDir\n" +ln -s "${superProjectDir}" ${itRoot}/CodeDir + +#============================================================================= +# Copy files to the proper folders +#============================================================================= + +printf "\nCopying run scripts to ${scriptsDir}\n" +cp -f ${thisDir}/integration*.sh ${scriptsDir} +cp -f ${commonFuncs} ${scriptsDir} +cp -f ${thisDir}/README.md ${scriptsDir} +cp -f ${thisDir}/README.testroot.md ${itRoot}/README.md + +if [[ "X${site}" == "XCANNON" ]]; then + + # Copy Cannon environment file + cp -f ${envFile} ${envDir}/gchp.env + + # Copy Cannon utility scripts + printf "Copying utility scripts to ${utilsDir}\n" + cp -fR ${sharedDir}/utils/cannon/integrationTest ${utilsDir} + +elif [[ "X${site}" == "XCOMPUTE1" ]]; then + + # Copy Compute1 utility scripts + printf "Copying utility scripts to ${utilsDir}\n" + cp -fR ${sharedDir}/utils/compute1/integrationTest ${utilsDir} + + # Force scripts to be executable (Compute1 resets permissions) + chmod 755 -R ${scriptsDir} + chmod 755 -R ${utilsDir} + +fi + +# Log file with echoback from rundir creation +log="${logsDir}/createIntegrationTests.log" + +#============================================================================= +# Don't create run directories for compile-only tests. +#============================================================================= +if [[ "X${testsToRun}" == "XALL" ]]; then + + # Switch to folder where rundir creation scripts live + cd "${geosChemDir}/run/GCHP" + + #========================================================================= + # Create the GCHP run directories + #========================================================================= + printf "\nCreating new run directories:\n" + + # c24 geosfp TransportTracers + create_rundir "2\n1\n${rundirsDir}\n\nn\n" "${log}" + + # c24 merra2 tagO3 + create_rundir "4\n1\n${rundirsDir}\n\nn\n" "${log}" + + # c24 merra2 carbon + create_rundir "5\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # c24 merra2 carbon CH4 only + create_rundir "5\n2\n1\n${rundirsDir}\n\nn\n" "${log}" + + # c24 merra2 carbon CO2 only + create_rundir "5\n3\n1\n${rundirsDir}\n\nn\n" "${log}" + + # c24 merra2 carbon CO only + create_rundir "5\n4\n1\n${rundirsDir}\n\nn\n" "${log}" + + # c24 merra2 carbon OCS only + create_rundir "5\n5\n1\n${rundirsDir}\n\nn\n" "${log}" + + # Exit after creating a couple of rundirs if $quick is "yes" + if [[ "X${quick}" == "XYES" ]]; then + cd ${thisDir} + exit 0 + fi + + # c24 merra2 fullchem_standard + create_rundir "1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # c24 merra2 fullchem_benchmark + create_rundir "1\n2\n1\n${rundirsDir}\n\nn\n" "${log}" + + # c24 merra2 fullchem_RRTMG + create_rundir "1\n8\n1\n${rundirsDir}\n\nn\n" "${log}" + + # c24 merra2 fullchem_TOMAS15 + create_rundir "1\n6\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # Switch back to the present directory + cd "${thisDir}" +fi + +#============================================================================= +# Cleanup and quit +#============================================================================= + +# Free local variables +unset binDir +unset buildDir +unset commonFuncs +unset dir +unset envDir +unset geosChemDir +unset itRoot +unset log +unset logsDir +unset rundirsDir +unset superProjectDir +unset scriptsDir +unset sharedDir +unset thisDir +unset utilsDir + +# Free imported variables +unset FILL +unset SEP_MAJOR +unset SEP_MINOR +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/integration/GCHP/integrationTestExecute.sh b/test/integration/GCHP/integrationTestExecute.sh new file mode 100755 index 000000000..b105d217b --- /dev/null +++ b/test/integration/GCHP/integrationTestExecute.sh @@ -0,0 +1,370 @@ +#!/bin/bash + +#SBATCH -n 24 +#SBATCH -N 1 +#SBATCH -c 1 +#SBATCH -t 0-5:00 +#SBATCH -p REQUESTED_PARTITION +#SBATCH --mem=150000 +#SBATCH --mail-type=END +#BSUB -q REQUESTED_PARTITION +#BSUB -n 24 +#BSUB -W 5:00 +#BSUB -R "rusage[mem=90GB] span[ptile=1] select[mem < 2TB]" +#BSUB -a 'docker(registry.gsc.wustl.edu/sleong/esm:intel-2021.1.2)' +#BSUB -o lsf-%J.txt + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: integrationTestExecute.sh +# +# !DESCRIPTION: Runs execution tests on various GEOS-Chem Classic +# run directories (interactively or using a scheduler) +#\\ +#\\ +# !CALLING SEQUENCE: +# ./integrationTestExecute.sh # Interactive command-line execution +# bsub integrationTestExecute.sh # Execution via LSF +# sbatch integrationTestExecute.sh # Execution via SLURM +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================ +# Global variable and function definitions +#============================================================================ + +# This script starts executing 1 level lower than $itRoot +itRoot=$(cd ..; pwd) + +# Include global variables & functions +. "${itRoot}/scripts/commonFunctionsForTests.sh" + +# Create local convenience variables +binDir="${itRoot}/${BIN_DIR}" +envDir="${itRoot}/${ENV_DIR}" +codeDir="${itRoot}/CodeDir" +logsDir="${itRoot}/${LOGS_DIR}" +rundirsDir="${itRoot}/${RUNDIRS_DIR}" +site=$(get_site_name) + +# Load the environment and the software environment +. ~/.bashrc > /dev/null 2>&1 +[[ "X${site}" == "XCANNON" ]] && . ${envDir}/gchp.env > /dev/null 2>&1 + +# Get the Git commit of the superproject and submodules +head_gchp=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}" log --oneline --no-decorate -1) +head_gc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem" \ + log --oneline --no-decorate -1) +head_hco=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/GCHP_GridComp/HEMCO_GridComp/HEMCO" \ + log --oneline --no-decorate -1) + +# Site-specific settings +if [[ "X${site}" == "XCANNON" && "X${SLURM_JOBID}" != "X" ]]; then + + #---------------------------------- + # SLURM settings (Harvard Cannon) + #---------------------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #SBATCH -c + export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} + +elif [[ "X${site}" == "XCOMPUTE1" && "X${LSB_JOBID}" != "X" ]]; then + + #--------------------------------- + # LSF settings (WashU Compute1) + #--------------------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #BSUB -n + export OMP_NUM_THREADS=${LSB_DJOB_NUMPROC} + + # Unlimit resources to prevent OS killing GCHP due to resource usage/ + # Alternatively you can put this in your environment file. + ulimit -c 0 # coredumpsize + ulimit -l unlimited # memorylocked + ulimit -u 50000 # maxproc + ulimit -v unlimited # vmemoryuse + ulimit -s unlimited # stacksize + +else + + #--------------------------------- + # Interactive settings + #--------------------------------- + echo "" + echo "Execution tests running..." + + # For AWS, set $OMP_NUM_THREADS to the available cores + kernel=$(uname -r) + [[ "X${kernel}" == "Xaws" ]] && export OMP_NUM_THREADS=$(nproc) + +fi + +# Sanity check: Set OMP_NUM_THREADS to 6 if it is not set +# (this may happen when running interactively) +[[ "x${OMP_NUM_THREADS}" == "x" ]] && export OMP_NUM_THREADS=6 + +# Sanity check: Max out the OMP_STACKSIZE if it is not set +[[ "x${OMP_STACKSIZE}" == "x" ]] && export OMP_STACKSIZE=500m + +# Count the number of tests to be run (same as the # of run directories) +numTests=$(count_rundirs "${rundirsDir}") + +#============================================================================ +# Initialize results logfile +#============================================================================ + +# Results logfile name +results="${logsDir}/results.execute.log" +rm -f "${results}" + +# Print header to results log file +print_to_log "${SEP_MAJOR}" "${results}" +print_to_log "GCHP: Execution Test Results" "${results}" +print_to_log "" "${results}" +print_to_log "GCHP #${head_gchp}" "${results}" +print_to_log "GEOS-Chem #${head_gc}" "${results}" +print_to_log "HEMCO #${head_hco}" "${results}" +print_to_log "" "${results}" +print_to_log "Number of execution tests: ${numTests}" "${results}" +print_to_log "" "${results}" +if [[ "X${SLURM_JOBID}" != "X" ]]; then + print_to_log "Submitted as SLURM job: ${SLURM_JOBID}" "${results}" +elif [[ "X${LSB_JOBID}" == "XCOMPUTE1" ]]; then + print_to_log "Submitted as LSF job: ${LSB_JOBID}" "${results}" +else + print_to_log "Submitted as interactive job" "${results}" +fi +print_to_log "${SEP_MAJOR}" "${results}" + +#============================================================================ +# Run the GEOS-Chem executable in each GEOS-Chem run directory +#============================================================================ +print_to_log " " "${results}" +print_to_log "Execution tests:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" + +# Keep track of the number of tests that passed & failed +let passed=0 +let failed=0 +let remain=${numTests} + +# Navigate to the directory containing individiual run directories +cd "${rundirsDir}" + +# Loop over rundirs and run GEOS-Chem +for runDir in *; do + + # Expand rundir to absolute path + runAbsPath="${rundirsDir}/${runDir}" + + # Do the following if for only valid GCHP run dirs + expr=$(is_gchp_rundir "${runAbsPath}") + if [[ "x${expr}" == "xTRUE" ]]; then + + # Define log file + log="${logsDir}/execute.${runDir}.log" + rm -f "${log}" + + # Messages for execution pass & fail + passMsg="$runDir${FILL:${#runDir}}.....${EXE_PASS_STR}" + failMsg="$runDir${FILL:${#runDir}}.....${EXE_FAIL_STR}" + + # Get the executable file corresponding to this run directory + exeFile=$(exe_name "gchp" "${runDir}") + + # Test if the executable exists + if [[ -f "${binDir}/${exeFile}" ]]; then + + #---------------------------------------------------------------- + # If the executable file exists, we can do the test + #---------------------------------------------------------------- + + # Change to the run directory + cd "${runAbsPath}" + + # Copy the executable file here + cp "${binDir}/${exeFile}" . + + # Update to make sure the run directory is executable + # on Compute1. We will later replace this test with + # a test on the site name instead of on the scheduler. + # TODO: Test on name rather than scheduler + if [[ "X${site}" == "XCOMPUTE1" ]]; then + chmod 755 -R "${runAbsPath}" + fi + + # Remove any leftover files in the run dir + ./cleanRunDir.sh --no-interactive >> "${log}" 2>&1 + + # Link to the environment file + ./setEnvironmentLink.sh "${envDir}/gchp.env" + + # Update config files, set links, load environment, sanity checks + . setCommonRunSettings.sh >> "${log}" 2>&1 + . setRestartLink.sh >> "${log}" 2>&1 + . gchp.env >> "${log}" 2>&1 + . checkRunSettings.sh >> "${log}" 2>&1 + + # For safety's sake, remove restarts that weren't renamed + for rst in Restarts; do + if [[ "${rst}" =~ "gcchem_internal_checkpoint" ]]; then + rm -f "${rst}" + fi + done + + # Run GCHP and evenly distribute tasks across nodes + if [[ "X${site}" == "XCANNON" && "X${SLURM_JOBID}" != "X" ]]; then + + #--------------------------------------------- + # Executing GCHP on SLURM (Harvard Cannon) + #--------------------------------------------- + + # Compute parameters for srun + # See the gchp.run script in the folder: + # runScriptSamples/operational_examples/harvard_cannon + NX=$(grep NX GCHP.rc | awk '{print $2}') + NY=$(grep NY GCHP.rc | awk '{print $2}') + coreCt=$(( ${NX} * ${NY} )) + planeCt=$(( ${coreCt} / ${SLURM_NNODES} )) + if [[ $(( ${coreCt} % ${SLURM_NNODES} )) > 0 ]]; then + planeCt=$(( ${planeCt} + 1 )) + fi + + # Execute GCHP with srun + srun -n ${coreCt} -N ${SLURM_NNODES} -m plane=${planeCt} \ + --mpi=pmix ./${exeFile} >> "${log}" 2>&1 + + elif [[ "X${scheduler}" == "xLSF" && "X${LSB_JOBID}" != "X" ]]; then + + #--------------------------------------------- + # Executing GCHP on LSF (WashU Compute1) + #--------------------------------------------- + mpiexec -n 24 ./${exeFile} > "${log}" 2>&1 + + else + + #--------------------------------------------- + # Executing GCHP interactively + #--------------------------------------------- + mpirun -n 24 ./${exeFile} >> "${log}" 2>&1 + fi + + # Update pass/failed counts and write to results.log + if [[ $? -eq 0 ]]; then + + # The run passed ... + let passed++ + print_to_log "${passMsg}" "${results}" + + # ... so also rename the end-of-run restart file + new_start_str=$(sed 's/ /_/g' cap_restart) + N=$(grep "CS_RES=" setCommonRunSettings.sh | cut -c 8- | xargs ) + mv Restarts/gcchem_internal_checkpoint \ + Restarts/GEOSChem.Restart.${new_start_str:0:13}z.c${N}.nc4 + else + + # The run failed + let failed++ + print_to_log "${failMsg}" "${results}" + + fi + + # Change to root directory for next iteration + cd "${rundirsDir}" + + else + + #---------------------------------------------------------------- + # If the executable is missing, update the "fail" counter + # and write the "failed" message to the results log file. + #---------------------------------------------------------------- + let failed++ + print_to_log "${failMsg}" "${results}" + fi + + # Decrement the count of remaining tests + let remain-- + fi +done + +#============================================================================ +# Check the number of simulations that have passed +#============================================================================ + +# Print summary to log +print_to_log " " ${results} +print_to_log "Summary of test results:" ${results} +print_to_log "${SEP_MINOR}" ${results} +print_to_log "Execution tests passed: ${passed}" ${results} +print_to_log "Execution tests failed: ${failed}" ${results} +print_to_log "Execution tests not yet completed: ${remain}" ${results} + +# Check if all tests passed +if [[ "X${passed}" == "X${numTests}" ]]; then + print_to_log "" ${results} + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} + print_to_log "%%% All execution tests passed! %%%" ${results} + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ${results} + + # Print success (if interactive) + if [[ "X${SLURM_JOBID}" == "X" && "X${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Execution tests finished!" + fi + +else + + #-------------------------- + # Unsuccessful execution + #-------------------------- + if [[ "X${SLURM_JOBID}" == "X" && "X${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Execution tests failed! Exiting ..." + fi +fi + +#============================================================================ +# Cleanup and quit +#============================================================================ + +# Free local variables +unset absRunPath +unset binDir +unset codeDir +unset envDir +unset coreCt +unset exeFile +unset failed +unset failmsg +unset head_gchp +unset head_gc +unset head_hco +unset itRoot +unset log +unset logsDir +unset numTests +unset NX +unset NY +unset passed +unset passMsg +unset planeCt +unset remain +unset results +unset rundirsDir +unset scheduler + +# Free imported global variables +unset FILL +unset LINE +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/integration/README.md b/test/integration/README.md new file mode 100644 index 000000000..e15425765 --- /dev/null +++ b/test/integration/README.md @@ -0,0 +1,9 @@ +# README for Integration Tests + +## Contents + +`GCClassic/` +- Directory containing scripts for running GEOS-Chem Classic integration tests. + +`GCHP/` +- Directory containing scripts for running GCHP integration tests. diff --git a/test/parallel/GCClassic/README.md b/test/parallel/GCClassic/README.md new file mode 100644 index 000000000..4dbab4102 --- /dev/null +++ b/test/parallel/GCClassic/README.md @@ -0,0 +1,91 @@ +# README for GEOS-Chem Classic Parallelization Tests + +## Overview: + +This directory contains: + +1. Scripts to submit automated GEOS-Chem Classic parallelization tests, which will test the following processes: + + - GEOS-Chem Classic run directory creation + - GEOS-Chem Classic code configuration and compilation + - GEOS-Chem Classic execution + +Parallelization tests are short GEOS-Chem Classic simulations. Executables are compiled with all debugging options. This should reveal any coding errors or run-directory configuration errors. + +## Files + +### Parallelization Test Scripts + +- `parallelTest.sh` + - Driver script to run GEOS-Chem Classic parallelization tests +- `parallelTestCreate.sh` + - Script to create GEOS-Chem Classic run directories for parallelization tests +- `parallelTestCompile.sh` + - Script to compile GEOS-Chem Classic executables +- `parallelTestExecute.sh` + - Script to run GEOS-Chem Classic parallelization test simulations + +### Shared Scripts + +- `commonFunctionsForTests.sh` + - Link to `../../shared/commonFunctionsForTests.sh`, which contains global variables and functions for the parallelization and parallelization tests. + +## Before you begin + +Please take a moment to: + +1. Verify that the `GCClassic` superproject is checked out to the correct branch and commit. +2. Run `git submodule update --init --recursive` in order to update all submodules. +3. Verify that the `HEAD` commit of the `GEOS-Chem` submodule contains the code that you wish to test. (If not, then check out the proper branch.) +4. Verify that the `HEAD` commit of the `HEMCO` submodule contains the code that you wish to test. (If not, then check out the proper branch.) + +## Command-line Arguments + +The parallelization test scripts accept the following command-line arguments: + +### Required arguments + +`-d /path/to/test/dir` specifies the root directory where parallelization test subdirectories and scripts will be placed. + +`-t compile|all` specifies the type of test to be run: + - `compile` will run compilation-only tests. + - `all` will run compilation and execution tests. + +### Optional arguments + +`-e /path/to/env-file` Specifies the file that is used to initialize the software environment on the Harvard Cannon cluster. If omitted, a default file will be selected. + +`-h` displays a help screeen. + +`-q` will run only a couple of parallelization tests instead of the full suite. This is intended for development and debugging. You will normally not need to use this option. + +You can also use long names for the option switches: +- `--directory` instead of `-d` +- `--env-file` instead of `-e` +- `--help` instead of `h` +- `--tests-to-run` instead of `-t` + +## Examples + +### Request compile-only tests on Cannon or Compute1 +```console +$ cd /path/to/GCClassic # Path to GCClassic superproject directory +$ cd test/parallel/GCClassic +$ ./parallelTest.sh -d /path/to/test/dir -t compile +``` + +### Request compile and execution tests (Harvard Cannon) +```console +$ cd /path/to/GCClassic # Path to GCClassic superproject directory +$ cd test/parallel/GCClassic +$ ./parallelTest.sh -d /path/to/test/dir -t all -e /path/to/env-file +``` +NOTE: If you omit the `-e /path/to/env/file` a default environment file will be used to load GNU Compiler Collection 10 and related libraries. + +### Request compile & execution tests (WashU compute1) +```console +$ cd /path/to/GCClassic # Path to GCClassic superproject directory +$ cd test/parallel/GCClassic +$ ./parallelTest.sh -d /path/to/test/dir -t all +``` +NOTE: No environment file is needed. On Compute1 the tests will run inside a software container with all necessary libraries included. diff --git a/test/parallel/GCClassic/README.testroot.md b/test/parallel/GCClassic/README.testroot.md new file mode 100644 index 000000000..109403539 --- /dev/null +++ b/test/parallel/GCClassic/README.testroot.md @@ -0,0 +1,44 @@ +# README for GEOS-Chem Classic Parallelization Tests + +## Directories + +Components of GEOS-Chem Classic parallelization tests have been separated into these directories: + +`bin` + + - Contains GEOS-Chem Classic executable files + +`build` + + - Directories for building GEOS-Chem Classic executables + +`CodeDir` + + - Symbolic link to the `GCClassic` superproject directory + +`env` + + - Contains an environment file that loads the required libraries needed to run GEOS-Chem Classic. + +`logs` + + - Contains log files from the parallelization tests. + + - `results.compile.log`: Results of GEOS-Chem Classic compilation tests. + - `results.parallel.log`: Results of GEOS-Chem Classic parallel tests. + - `compile.*.log`: Output of individual compilation tests + - `parallel.*.log`: Output of individual parallel tests + - `lsf-*.txt`: LSF scheduler job logs + - `slurm*.out`: SLURM scheduler job logs + +`rundirs` + + - Contains individual GEOS-Chem Classic run directories. + +`scripts` + + - Contains scripts that are used for running the GEOS-Chem Classic parallelization tests. These are copied from the `test/GCClassic/parallel` folder of the GEOS-Chem "science codebase" repository. + +## For more information + +Please see the `scripts/README.md` file for detailed instructions on running GEOS-Chem Classic parallelization tests. diff --git a/test/parallel/GCClassic/parallelTest.sh b/test/parallel/GCClassic/parallelTest.sh new file mode 100755 index 000000000..158e9c917 --- /dev/null +++ b/test/parallel/GCClassic/parallelTest.sh @@ -0,0 +1,317 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: parallelTest.sh +# +# !DESCRIPTION: Runs parallelization tests on the various GEOS-Chem Classic +# run directories (interactively, or with a scheduler). +#\\ +#\\ +# !CALLING SEQUENCE: +# ./parallelTest.sh -d root-dir -t compile|all [-e env-file] [-h] [-q] +# +# Required arguments +# -d root-dir : Specify the root folder for integration tests +# -t compile|all : Specify the tests to run (compile-only or all) +# +# Optional arguments +# -e env-file : Software environment file for Harvard Cannon +# -h : Display a help message +# -n : Do not bootstrap missing restart file variables +# -q : Run a quick set of integration tests (for testing) +# +# NOTE: you can also use the following long name options: +# +# --directory (instead of -d) +# --env-file (instead of -e) +# --help (instead of -h) +# --no-bootstrap (instead of -n) +# --quick (instead of -q) +# --tests-to-run (instead of -t) +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================= +# Initialize +#============================================================================= +this="$(basename ${0})" +usage="Usage: ${this} -d root-dir -t compile|all [-e env-file] [-h] [-q]" +quick="NO" + +# Current directory +thisDir=$(pwd -P) +cd "${thisDir}" + +# Load common functions +. "${thisDir}/../../shared/commonFunctionsForTests.sh" + +#============================================================================= +# Parse command-line arguments +# See https://www.baeldung.com/linux/bash-parse-command-line-arguments +#============================================================================= + +# Call Linux getopt function to specify short & long input options +# (e.g. -d or --directory, etc). Exit if not succesful +validArgs=$(getopt --options d:e:hqt: \ + --long directory:,env-file:,help,quick,tests-to-run: -- "$@") +if [[ $? -ne 0 ]]; then + exit 1; +fi + +# Parse arguments and set variables accordingly +# NOTE: Convert some inputs to uppercase to facilitate comparisons +eval set -- "${validArgs}" +while [ : ]; do + case "${1}" in + + # -d or --directory specifies the root folder for tests + -d | --directory) + ptRoot="${2}" + shift 2 + ;; + + # -e or --env-file specifies the environment file + -e | --env-file) + envFile="${2}" + shift 2 + ;; + + # -h or --help prints a help message + -h | --help) + echo "$usage" + exit 1 + ;; + + # -q or --quick runs a quick set of parallelization tests (for testing) + -q | --quick) + quick="YES" + shift + ;; + + # -t or --tests-to-run specifies the type of tests to run + -t | --tests-to-run) + testsToRun="${2^^}" + shift 2 + ;; + + --) shift; + break + ;; + esac +done + +#============================================================================= +# Sanity-check user input +#============================================================================= + +# Get the site name from the node name +site=$(get_site_name) + +# Error check integration tests root path +if [[ "X${ptRoot}" == "X" ]]; then + echo "ERROR: The parallelization test root directory has not been specified!" + echo "${usage}" + exit 1 +fi + +# Error check the type of tests to run +if [[ "X${testsToRun}" == "X" ]]; then + echo "ERROR: You must specify the test type: compile|all" + echo "${usage}" + exit 1 +fi +if [[ "X${testsToRun}" != "XCOMPILE" && "X${testsToRun}" != "XALL" ]]; then + echo "ERROR: Invalid selction for tests-to-run, must be: compile|all" + echo "${usage}" + exit 1 +fi + +# Error checks for tests that include compile & run phases +if [[ "X${testsToRun}" == "XALL" ]]; then + + # Use the default environment file for Cannon if not specified + if [[ "X${site}" == "XCANNON" && "X${envFile}" == "X" ]]; then + envFile=$(get_default_gcc_env_file) + fi + + # Get the sed command that will replace the partition name + sedPartitionCmd=$(get_sed_partition_cmd_from_site "${site}") +fi + +#============================================================================= +# Create parallelization test directories in the root folder +#============================================================================= + +# Convert parallelization test root folder to an absolute path +ptRoot=$(absolute_path "${ptRoot}") + +# Prevent running integration tests in the source code directory tree +if [[ "$(absolute_path ${thisDir})" =~ "${ptRoot}" ]]; then + echo "ERROR: You cannot run parallel tests in the source code directory!" + exit 1 +fi + +# Create GEOS-Chem run directories in the parallelization test root folder +./parallelTestCreate.sh "${ptRoot}" "${envFile}" "${testsToRun}" "${quick}" +if [[ $? -ne 0 ]]; then + echo "ERROR: Could not create parallelization test run directories!" + exit 1 +fi + +# Change to the parallelization test root folder +if [[ -d ${ptRoot} ]]; then + cd "${ptRoot}" +else + echo "ERROR: ${ptRoot} is not a valid directory! Exiting..." + exit 1 +fi + +# Define local convenience variables +logsDir="${ptRoot}/${LOGS_DIR}" +scriptsDir="${ptRoot}/${SCRIPTS_DIR}" + +# Navigate to the logs directory (so all output will be placed there) +cd "${logsDir}" + +#============================================================================= +# Run the tests +#============================================================================= +if [[ "X${testsToRun}" == "XCOMPILE" ]]; then + + #------------------------------------------------------------------------- + # Compilation-only tests (scheduler is not used) + #------------------------------------------------------------------------- + echo "" + echo "Compiliation tests are running..." + ${scriptsDir}/parallelTestCompile.sh & + +elif [[ "X${testsToRun}" == "XALL" && "X${site}" == "XCANNON" ]]; then + + #------------------------------------------------------------------------- + # Compilation and execution tests on Harvard Cannon (via SLURM) + #------------------------------------------------------------------------- + + # Remove LSF #BSUB tags + sed_ie '/#BSUB -q REQUESTED_PARTITION/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#BSUB -n 8/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#BSUB -W 0:30/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#BSUB -o lsf-%J.txt/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie \ + '/#BSUB -R "rusage\[mem=8GB\] span\[ptile=1\] select\[mem < 1TB\]"/d' \ + "${scriptsDir}/parallelTestCompile.sh" + sed_ie \ + "/#BSUB -a 'docker(registry\.gsc\.wustl\.edu\/sleong\/esm\:intel\-2021\.1\.2)'/d" \ + "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#BSUB -q REQUESTED_PARTITION/d' "${scriptsDir}/parallelTestExecute.sh" + sed_ie '/#BSUB -n 24/d' "${scriptsDir}/parallelTestExecute.sh" + sed_ie '/#BSUB -W 6:00/d' "${scriptsDir}/parallelTestExecute.sh" + sed_ie '/#BSUB -o lsf-%J.txt/d' "${scriptsDir}/parallelTestExecute.sh" + sed_ie \ + '/#BSUB -R "rusage\[mem=90GB\] span\[ptile=1\] select\[mem < 2TB\]"/d' \ + "${scriptsDir}/parallelTestExecute.sh" + sed_ie \ + "/#BSUB -a 'docker(registry\.gsc\.wustl\.edu\/sleong\/esm\:intel\-2021\.1\.2)'/d" \ + "${scriptsDir}/parallelTestExecute.sh" + + # Replace "REQUESTED_PARTITION" with the partition name + sed_ie "${sedPartitionCmd}" "${scriptsDir}/parallelTestCompile.sh" + sed_ie "${sedPartitionCmd}" "${scriptsDir}/parallelTestExecute.sh" + + # Submit compilation tests script + output=$(sbatch ${scriptsDir}/parallelTestCompile.sh) + output=($output) + cmpId=${output[3]} + + # Submit execution tests script as a job dependency + output=$(sbatch --dependency=afterok:${cmpId} ${scriptsDir}/parallelTestExecute.sh) + output=($output) + exeId=${output[3]} + + echo "" + echo "Compilation tests submitted as SLURM job ${cmpId}" + echo "Execution tests submitted as SLURM job ${exeId}" + +elif [[ "X${testsToRun}" == "XALL" && "X${site}" == "XCOMPUTE1" ]]; then + + #------------------------------------------------------------------------- + # Compilation and execution tests on WashU Compute1 (via LSF) + #------------------------------------------------------------------------- + + # Remove SLURM #SBATCH tags + sed_ie '/#SBATCH -c 8/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#SBATCH -N 1/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#SBATCH -t 0-0:30/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#SBATCH -p REQUESTED_PARTITION/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#SBATCH --mem=8000/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#SBATCH -p REQUESTED_PARTITION/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#SBATCH --mail-type=END/d' "${scriptsDir}/parallelTestCompile.sh" + sed_ie '/#SBATCH -c 24/d' "${scriptsDir}/parallelTestExecute.sh" + sed_ie '/#SBATCH -N 1/d' "${scriptsDir}/parallelTestExecute.sh" + sed_ie '/#SBATCH -t 0-6:00/d' "${scriptsDir}/parallelTestExecute.sh" + sed_ie '/#SBATCH -p REQUESTED_PARTITION/d' "${scriptsDir}/parallelTestExecute.sh" + sed_ie '/#SBATCH --mem=90000/d' "${scriptsDir}/parallelTestExecute.sh" + sed_ie '/#SBATCH --mail-type=END/d' "${scriptsDir}/parallelTestExecute.sh" + + # Replace "REQUESTED_PARTITION" with the partition name + sed_ie "${sedPartitionCmd}" "${scriptsDir}/parallelTestCompile.sh" + sed_ie "${sedPartitionCmd}" "${scriptsDir}/parallelTestExecute.sh" + + # Submit compilation tests script + output=$(bsub $scriptsDir}/parallelTestCompile.sh) + output=($output) + cmpId=${output[1]} + cmpId=${cmpId/<} + cmpId=${cmpId/>} + + # Submit execution tests script as a job dependency + output=$(bsub -w "exit(${cmpId},0)" ${scriptsDir}/parallelTestExecute.sh) + output=($output) + exeId=${output[1]} + exeId=${exeId/<} + exeId=${exeId/>} + +else + + #------------------------------------------------------------------------- + # Exit with error + #------------------------------------------------------------------------- + echo "" + echo "ERROR! Invalid choice of arguments!" + echo "${usage}" + exit 1 + +fi + +# Change back to this directory +cd "${thisDir}" + +#============================================================================= +# Cleanup and quit +#============================================================================= + +# Free local variables +unset cmpId +unset envFile +unset exeId +unset logsDir +unset ptRoot +unset quick +unset output +unset scheduler +unset scriptsDir +unset thisDir + +# Free imported variables +unset FILL +unset SEP_MAJOR +unset SEP_MINOR +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/parallel/GCClassic/parallelTestCompile.sh b/test/parallel/GCClassic/parallelTestCompile.sh new file mode 100755 index 000000000..351ceb5ce --- /dev/null +++ b/test/parallel/GCClassic/parallelTestCompile.sh @@ -0,0 +1,254 @@ +#!/bin/bash + +#SBATCH -c 8 +#SBATCH -N 1 +#SBATCH -t 0-0:30 +#SBATCH -p REQUESTED_PARTITION +#SBATCH --mem=8000 +#SBATCH --mail-type=END +#BSUB -q REQUESTED_PARTITION +#BSUB -n 8 +#BSUB -W 0:30 +#BSUB -R "rusage[mem=8GB] span[ptile=1] select[mem < 1TB]" +#BSUB -a 'docker(registry.gsc.wustl.edu/sleong/esm:intel-2021.1.2)' +#BSUB -o lsf-%J.txt + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: parallelTestCompile.sh +# +# !DESCRIPTION: Runs compilation tests on various GEOS-Chem Classic +# run directories (interactively or using a scheduler). +#\\ +#\\ +# !CALLING SEQUENCE: +# ./parallelTestCompile.sh # Interactive command-line execution +# bsub parallelTestCompile.sh # Execution via LSF +# sbatch parallelTestCompile.sh # Execution via SLURM +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================ +# Global variable and function definitions +#============================================================================ + +# This script starts executing 1 level lower than $itRoot +ptRoot=$(cd ..; pwd) + +# Include global variables & functions +. "${ptRoot}/scripts/commonFunctionsForTests.sh" + +# Create local convenience variables +binDir="${ptRoot}/${BIN_DIR}" +buildDir="${ptRoot}/${BUILD_DIR}" +envDir="${ptRoot}/${ENV_DIR}" +codeDir="${ptRoot}/CodeDir" +logsDir="${ptRoot}/${LOGS_DIR}" +scriptsDir="${ptRoot}/${SCRIPTS_DIR}" +site=$(get_site_name) + +# Load the user-environment and the software environment +. ~/.bashrc > /dev/null 2>&1 +[[ "X${site}" == "XCANNON" ]] && . ${envDir}/gcclassic.env > /dev/null 2>&1 + +# All parallelization tests will use debugging features +baseOptions="-DCMAKE_BUILD_TYPE=Debug -DRUNDIR='' -DINSTALLCOPY=${binDir}" + +# Get the Git commit of the superproject and submodules +head_gcc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}" log --oneline --no-decorate -1) +head_gc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/GEOS-Chem" log --oneline --no-decorate -1) +head_hco=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/HEMCO" log --oneline --no-decorate -1) + +# Scheduler-specific settings +if [[ "X${SLURM_JOBID}" != "X" ]]; then + + #----------------------- + # SLURM settings + #----------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #SBATCH -c + export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} + +elif [[ "X${LSB_JOBID}" != "X" ]]; then + + #----------------------- + # LSF settings + #----------------------- + + # Set OMP_NUM_THREADS to the same # of cores requested with #BSUB -n + export OMP_NUM_THREADS=${$LSB_DJOB_NUMPROC} + +else + + #----------------------- + # Interactive settings + #----------------------- + + # For AWS, set $OMP_NUM_THREADS to the available cores + kernel=$(uname -r) + [[ "x${kernel}" == "xaws" ]] && export OMP_NUM_THREADS=$(nproc) + +fi + +# Sanity check: Set OMP_NUM_THREADS to 6 if it is not set +# (this may happen when running interactively) +[[ "x${OMP_NUM_THREADS}" == "x" ]] && export OMP_NUM_THREADS=6 + +# Sanity check: Max out the OMP_STACKSIZE if it is not set +[[ "x${OMP_STACKSIZE}" == "x" ]] && export OMP_STACKSIZE=500m + +#============================================================================ +# Load common variables and functions for tesets +#============================================================================ + +# Count the number of tests to be done +parallelTests=("${EXE_GCC_BUILD_LIST[@]}") +numTests=${#parallelTests[@]} + +#============================================================================ +# Initialize results logfile +#============================================================================ + +# Results logfile name +results="${logsDir}/results.compile.log" +rm -f ${results} + +# Print header to results log file +print_to_log "${SEP_MAJOR}" "${results}" +print_to_log "GEOS-Chem Classic: Compilation Test Results" "${results}" +print_to_log "" "${results}" +print_to_log "GCClassic #${head_gcc}" "${results}" +print_to_log "GEOS-Chem #${head_gc}" "${results}" +print_to_log "HEMCO #${head_hco}" "${results}" +print_to_log "" "${results}" +print_to_log "Using ${OMP_NUM_THREADS} OpenMP threads" "${results}" +print_to_log "Number of compilation tests: ${numTests}" "${results}" +print_to_log "" "${results}" +if [[ "X${SLURM_JOBID}" != "X" ]]; then + print_to_log "Submitted as SLURM job: ${SLURM_JOBID}" "${results}" +elif [[ "X${LSB_JOBID}" != "X" ]]; then + print_to_log "Submitted as LSF job: ${LSB_JOBID}" "${results}" +else + print_to_log "Submitted as interactive job" "${results}" +fi +print_to_log "${SEP_MAJOR}" "${results}" + +#============================================================================ +# Configure and compile code in each GEOS_Chem run directory +#============================================================================ +print_to_log " " "${results}" +print_to_log "Compiliation tests:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" + +# Change to the top-level build directory +cd "${ptRoot}" + +# Keep track of the number of tests that passed & failed +let passed=0 +let failed=0 +let remain=${numTests} + +# Loop over build directories +for dir in ${parallelTests[@]}; do + + # Define build directory + thisBuildDir="${buildDir}/${dir}" + + # Define log file + log="${logsDir}/compile.${dir}.log" + rm -f "${log}" + + # Configure and build GEOS-Chem Classic source code + # and increment pass/fail/remain counters + build_model "gcclassic" "${ptRoot}" "${thisBuildDir}" \ + "${baseOptions}" "${log}" "${results}" + if [[ $? -eq 0 ]]; then + let passed++ + else + let failed++ + fi + let remain-- +done + +#============================================================================ +# Check the number of simulations that have passed +#============================================================================ + +# Print summary to log +print_to_log " " "${results}" +print_to_log "Summary of compilation test results:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" +print_to_log "Complilation tests passed: ${passed}" "${results}" +print_to_log "Complilation tests failed: ${failed}" "${results}" +print_to_log "Complilation tests not completed: ${remain}" "${results}" + +# Check for success +if [[ "x${passed}" == "x${numTests}" ]]; then + + #-------------------------- + # Successful compilation + #-------------------------- + print_to_log "" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + print_to_log "%%% All compilation tests passed! %%%" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + + # Start the interactive execution test script upon successful finish + if [[ "X${SLURM_JOBID}" == "X" && "x${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Compilation tests finished!" + ${scriptsDir}/parallelTestExecute.sh & + fi + +else + + #--------------------------- + # Unsuccessful compilation + #--------------------------- + if [[ "X${SLURM_JOBID}" == "X" && "x${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Compilation tests failed! Exiting..." + fi +fi + +#============================================================================ +# Cleanup and quit +#============================================================================ + +# Free local variables +unset baseOptions +unset binDir +unset buildDir +unset codeDir +unset failed +unset dir +unset envDir +unset head_gcc +unset head_gc +unset head_hco +unset kernel +unset log +unset numTests +unset passed +unset ptRoot +unset remain +unset results +unset scriptsDir +unset scheduler + +# Free imported variables +unset FILL +unset SEP_MAJOR +unset SEP_MINOR +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/parallel/GCClassic/parallelTestCreate.sh b/test/parallel/GCClassic/parallelTestCreate.sh new file mode 100755 index 000000000..c5112558c --- /dev/null +++ b/test/parallel/GCClassic/parallelTestCreate.sh @@ -0,0 +1,315 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: paralleltestCreate.sh +# +# !DESCRIPTION: Creates parallelization test run directories in a +# user-specified root folder, and copies a run script there. +#\\ +#\\ +# !CALLING SEQUENCE: +# ./paralleltestCreate.sh /path/to/int/test/root /path/to/env-file +# ./paralleltestCreate.sh /path/to/int/test/root /path/to/env-file quick=1 +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================= +# Load common functions +#============================================================================= + +# Current directory +thisDir=$(pwd -P) +cd "${thisDir}" + +# Path to the test/shared folder in source code +sharedDir=$(realpath "${thisDir}/../../shared") + +# Source the script containing utility functions and variables +commonFuncs="${sharedDir}/commonFunctionsForTests.sh" +. "${commonFuncs}" + +#============================================================================= +# Arguments +#============================================================================= + +# Parallelization test root folder +ptRoot="${1}" +if [[ "X${ptRoot}" == "X" ]]; then + echo "ERROR: The root-level directory for tests has not been specified!" + exit 1 +fi + +# Environment file (for Harvard Cannon only) +site=$(get_site_name) +envFile="${2}" +if [[ "X${site}" == "XCANNON" ]]; then + [[ "X${envFile}" == "X" ]] && envFile=$(get_default_gcc_env_file) + if [[ ! -f ${envFile} ]]; then + echo "ERROR: The enviroment file is not a valid file!" + exit 1 + fi +fi + +# Type of tests to run? +testsToRun="${3}" + +# Run a short parallelization test? +quick="${4}" + +#============================================================================= +# Global variable and function definitions +#============================================================================= + +# GCClassic superproject directory +cd ../../../../../ +superProjectDir=$(pwd -P) +cd ${superProjectDir} + +# GEOS-Chem and HEMCO submodule directories +geosChemDir="${superProjectDir}/src/GEOS-Chem" +hemcoDir="${superProjectDir}/src/HEMCO" + +# Get the Git commit of the superproject and submodules +head_gcc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${superProjectDir}" log --oneline --no-decorate -1) +head_gc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${geosChemDir}" log --oneline --no-decorate -1) +head_hco=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${hemcoDir}" log --oneline --no-decorate -1) + +# Echo header +printf "${SEP_MAJOR}\n" +printf "Creating GEOS-Chem Classic Parallelization Tests\n\n" +printf "GCClassic #${head_gcc}\n" +printf "GEOS_Chem #${head_gc}\n" +printf "HEMCO #${head_hco}\n" +printf "${SEP_MAJOR}\n" + +#============================================================================= +# Create integration test folder and subdirectories +#============================================================================= + +# Create parallelization test root folder if it doesn't exist +ptRoot=$(absolute_path "${ptRoot}") +[[ ! -d "${ptRoot}" ]] && mkdir -p "${ptRoot}" + +# Create local convenience variables +binDir="${ptRoot}/${BIN_DIR}" +buildDir="${ptRoot}/${BUILD_DIR}" +envDir="${ptRoot}/${ENV_DIR}" +execDir="${ptRoot}/${EXEC_DIR}" +logsDir="${ptRoot}/${LOGS_DIR}" +scriptsDir="${ptRoot}/${SCRIPTS_DIR}" +rundirsDir="${ptRoot}/${RUNDIRS_DIR}" +utilsDir="${ptRoot}/${UTILS_DIR}" + +# Remove everything in the parallelization test root folder +cleanup_files "${ptRoot}" + +# Subdir for CMake builds (note: will create ${itRoot} +printf "\nCreating CMake build directories:\n" +for dir in ${EXE_GCC_BUILD_LIST[@]}; do + printf " ... ${buildDir}/${dir}\n" + mkdir -p "${buildDir}/${dir}" +done + +# Subdir for executables +printf "\nCreating exe files directory ${binDir}\n" +mkdir -p "${binDir}" + +# Subdir for env files (for Harvard Cannon only) +if [[ "X${site}" == "XCANNON" ]]; then + printf "Creating env files directory ${envDir}\n" + mkdir -p "${envDir}" +fi + +# Subdir for log files +printf "Creating logs directory ${logsDir}\n" +mkdir -p "${logsDir}" + +# Subdir for scripts +printf "Creating scripts directory ${scriptsDir}\n" +mkdir -p "${scriptsDir}" + +# Subdir for run directories +if [[ "x${testsToRun}" == "xALL" ]]; then + printf "Creating rundirs directory ${rundirsDir}\n" + mkdir -p "${rundirsDir}" +fi + +# Create a symbolic link to the code from the Integration Test root folder +printf "Linking to superproject ${ptRoot}/CodeDir\n" +ln -s "${superProjectDir}" ${ptRoot}/CodeDir + +#============================================================================= +# Copy files to the proper folders +#============================================================================= + +printf "\nCopying run scripts to ${ptRoot}\n" +cp -f ${thisDir}/parallelTest*.sh ${scriptsDir} +cp -f ${commonFuncs} ${scriptsDir} +cp -f ${thisDir}/README.md ${scriptsDir} +cp -f ${thisDir}/README.testroot.md ${ptRoot}/README.md + +if [[ "X${site}" == "XCANNON" ]]; then + + # Copy Cannon environment file + cp -f ${envFile} ${envDir}/gcclassic.env + + # Copy Cannon utility scripts + printf "Copying utility scripts to ${utilsDir}\n" + cp -fR ${sharedDir}/utils/cannon/parallelTest ${utilsDir} + +elif [[ "X${site}" == "XCOMPUTE1" ]]; then + + # Copy Compute1 utility scripts + printf "Copying utility scripts to ${utilsDir}\n" + cp -fR ${sharedDir}/utils/compute1/parallelTest ${utilsDir} + + # Force scripts to be executable (Compute1 resets permissions) + chmod 755 -R ${scriptsDir} + chmod 755 -R ${utilsDir} + +fi + +# Log file with echoback from rundir creation +log="${logsDir}/createParallelTests.log" + +#============================================================================= +# Don't create run directories for compile-only tests. +#============================================================================= +if [[ "X${testsToRun}" == "XALL" ]]; then + + # Switch to folder where rundir creation scripts live + cd "${geosChemDir}/run/GCClassic" + + #========================================================================= + # Create individual run directories: 4x5 - MERRA2 - 72L + #========================================================================= + printf "\nCreating new run directories:\n" + + # 4x5 merra2 aerosol + create_rundir "2\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + #4x5 merra2 carbon + create_rundir "3\n1\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem + create_rundir "1\n1\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # DEBUG: Exit after creating a couple of rundirs if $quick is "yes" + if [[ "X${quick}" == "XYES" ]]; then + cd ${thisDir} + exit 0 + fi + + # 4x5 merra2 fullchem_LuoWd + dir="gc_4x5_merra2_fullchem_LuoWd" + create_rundir "1\n1\n1\n1\n1\n${rundirsDir}\n${dir}\nn\n" "${log}" + + # 4x5 merra2 fullchem_aciduptake + create_rundir "1\n5\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_APM + create_rundir "1\n7\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_benchmark + create_rundir "1\n2\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_complexSOA + create_rundir "1\n3\n1\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_complexSOA_SVPOA + create_rundir "1\n3\n2\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_marinePOA + create_rundir "1\n4\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_RRTMG + create_rundir "1\n8\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 fullchem_TOMAS15_47L + create_rundir "1\n6\n1\n1\n1\n2\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 Hg + create_rundir "4\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 POPs_BaP + create_rundir "5\n1\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 tagO3 + create_rundir "6\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 TransportTracers + create_rundir "7\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 TransportTracers_LuoWd + dir="gc_4x5_merra2_TransportTracers_LuoWd" + create_rundir "7\n1\n1\n1\n${rundirsDir}\n${dir}\nn\n" "${log}" + + # 4x5 merra2 metals" + create_rundir "8\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 CH4 + create_rundir "9\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 CO2 + create_rundir "10\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + # 4x5 merra2 tagCO + create_rundir "11\n1\n1\n1\n${rundirsDir}\n\nn\n" "${log}" + + #========================================================================= + # Create individual run directories: 4x5 and 47L (MERRA2) + #========================================================================= + + # 4x5 merra2 fullchem_47L" + create_rundir "1\n1\n1\n1\n2\n${rundirsDir}\n\nn\n" "${log}" + + #========================================================================= + # Nested-grid simulations + #========================================================================= + + # 05x0625 merra2 CH4_47L_na" + create_rundir "9\n1\n3\n4\n2\n${rundirsDir}\n\nn\n" "${log}" + +fi + +# Switch back to the present directory +cd "${thisDir}" + +#============================================================================= +# Cleanup and quit +#============================================================================= + +# Free local variables +unset binDir +unset buildDir +unset commonFuncs +unset dir +unset envDir +unset geosChemDir +unset log +unset logsDir +unset ptRoot +unset rundirsDir +unset scriptsDir +unset sharedDir +unset superProjectDir +unset thisDir +unset utilsDir + +# Free imported variables +unset FILL +unset SEP_MAJOR +unset SEP_MINOR +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/parallel/GCClassic/parallelTestExecute.sh b/test/parallel/GCClassic/parallelTestExecute.sh new file mode 100755 index 000000000..cb93532b5 --- /dev/null +++ b/test/parallel/GCClassic/parallelTestExecute.sh @@ -0,0 +1,321 @@ +#!/bin/bash + +#SBATCH -c 24 +#SBATCH -N 1 +#SBATCH -t 0-6:00 +#SBATCH -p REQUESTED_PARTITION +#SBATCH --mem=90000 +#SBATCH --mail-type=END +#BSUB -q REQUESTED_PARTITION +#BSUB -n 24 +#BSUB -W 6:00 +#BSUB -R "rusage[mem=90GB] span[ptile=1] select[mem < 2TB]" +#BSUB -a 'docker(registry.gsc.wustl.edu/sleong/esm:intel-2021.1.2)' +#BSUB -o lsf-%J.txt + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: parallelTestExecute.sh +# +# !DESCRIPTION: Runs execution tests on various GEOS-Chem Classic +# run directories (using the SLURM scheduler). +#\\ +#\\ +# !CALLING SEQUENCE: +# ./parallelTestExecute.sh # Interactive command-line execution +# bsub parallelTestExecute.sh # Execution via LSF +# sbatch parallelTestExecute.sh # Execution via SLURM +#EOP +#------------------------------------------------------------------------------ +#BOC + +#============================================================================ +# Global variable and function definitions +#============================================================================ + +# This script starts executing 1 level lower than $itRoot +ptRoot=$(cd ..; pwd) + +# Include global variables & functions +. "${ptRoot}/scripts/commonFunctionsForTests.sh" + +# Create local convenience variables +binDir="${ptRoot}/${BIN_DIR}" +envDir="${ptRoot}/${ENV_DIR}" +codeDir="${ptRoot}/CodeDir" +logsDir="${ptRoot}/${LOGS_DIR}" +rundirsDir="${ptRoot}/${RUNDIRS_DIR}" +numTests=$(count_rundirs "${rundirsDir}") +site=$(get_site_name) + +# Load the environment and the software environment +. ~/.bashrc > /dev/null 2>&1 +[[ "X${site}" == "XCANNON" ]] && . ${envDir}/gcclassic.env > /dev/null 2>&1 + +# Get the Git commit of the superproject and submodules +head_gcc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}" log --oneline --no-decorate -1) +head_gc=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/GEOS-Chem" log --oneline --no-decorate -1) +head_hco=$(export GIT_DISCOVERY_ACROSS_FILESYSTEM=1; \ + git -C "${codeDir}/src/HEMCO" log --oneline --no-decorate -1) + +# Site-specific settings +if [[ "X${site}" == "XCANNON" && "X${SLURM_JOBID}" != "X" ]]; then + + # SLURM + export allThreads=${SLURM_CPUS_PER_TASK} + +elif [[ "X${site}" == "XCOMPUTE1" && "X${LSB_JOBID}" != "X" ]]; then + + # LSF + export allThreads=${LSB_DJOB_NUMPROC} + +else + + # Interactive + echo "" + echo "Parallelization tests running..." + allThreads=8 + + # For AWS, set $OMP_NUM_THREADS to the available cores + kernel=$(uname -r) + [[ "x${kernel}" == "xaws" ]] && export allThreads=$(nproc) +fi + +# Number of cores fore the 2nd run (cannot be a divisor of ALL_CORES) +fewerThreads=$(( ${allThreads} / 2 )) +[[ $(( ${fewerThreads} % 2 )) -eq 0 ]] && let fewerThreads+=1 + +# Sanity check: Max out the OMP_STACKSIZE if it is not set +[[ "x${OMP_STACKSIZE}" == "x" ]] && export OMP_STACKSIZE=500m + +#============================================================================ +# Initialize results logfile +#============================================================================ + +# Results logfile name +results="${logsDir}/results.parallel.log" +rm -f "${results}" + +# Print header to results log file +print_to_log "${SEP_MAJOR}" "${results}" +print_to_log "GEOS-Chem Classic: Parallelization Test Results" "${results}" +print_to_log "" "${results}" +print_to_log "GCClassic #${head_gcc}" "${results}" +print_to_log "GEOS-Chem #${head_gc}" "${results}" +print_to_log "HEMCO #${head_hco}" "${results}" +print_to_log "" "${results}" +print_to_log "1st run uses ${allThreads} OpenMP threads" "${results}" +print_to_log "2nd run uses ${fewerThreads} OpenMP threads" "${results}" +print_to_log "Number of parallelization tests: ${numTests}" "${results}" +print_to_log "" "${results}" +if [[ "X${SLURM_JOBID}" != "X" ]]; then + print_to_log "Submitted as SLURM job: ${SLURM_JOBID}" "${results}" +elif [[ "X${LSB_JOBID}" != "X" ]]; then + print_to_log "Submitted as LSF job: ${LSB_JOBID}" "${results}" +else + print_to_log "Submitted as interactive job" "${results}" +fi +print_to_log "${SEP_MAJOR}" "${results}" + +#============================================================================ +# Run the GEOS-Chem executable in each GEOS-Chem run directory +#============================================================================ +print_to_log " " "${results}" +print_to_log "Parallelization tests:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" + +# Keep track of the number of tests that passed & failed +let passed=0 +let failed=0 +let remain=${numTests} + +# Navigate to the directory containing individiual run directories +cd "${rundirsDir}" + +# Loop over rundirs and run GEOS-Chem +for runDir in *; do + + # Expand to absolute path + runAbsPath="${rundirsDir}/${runDir}" + + # Do the following if for only valid GEOS-Chem run dirs + expr=$(is_valid_rundir "${runAbsPath}") + if [[ "X${expr}" == "XTRUE" ]]; then + + # Define log file + log="${logsDir}/parallel.${runDir}.log" + rm -f "${log}" + + # Messages for execution pass & fail + passMsg="$runDir${FILL:${#runDir}}.....${EXE_PASS_STR}" + failMsg="$runDir${FILL:${#runDir}}.....${EXE_FAIL_STR}" + + # Get the executable file corresponding to this run directory + exeFile=$(exe_name "gcclassic" "${runDir}") + + # Test if the executable exists + if [[ -f "${binDir}/${exeFile}" ]]; then + + #---------------------------------------------------------------- + # If the executable file exists, we can do the tests + #---------------------------------------------------------------- + + # Change to this run directory + cd "${runAbsPath}" + + # Copy the executable file here + cp -f "${binDir}/${exeFile}" . + + # Remove any leftover files in the run dir + ./cleanRunDir.sh --no-interactive >> "${log}" 2>&1 + + # Change time cycle flag in HEMCO_Config.rc from EFYO to CYS, + # to allow missing species to be set a default value. + sed_ie "s/EFYO/CYS/" HEMCO_Config.rc # GC_RESTART + sed_ie "s/EFY xyz 1/CYS xyz 1/" HEMCO_Config.rc # GC_BCs + + #---------------------------------------------------------------- + # First test: Use all available threads + #---------------------------------------------------------------- + + # Run GEOS-Chem Classic + export OMP_NUM_THREADS=${allThreads} + echo "Now using ${OMP_NUM_THREADS}" >> "${log}" 2>&1 + if [[ "X${site}" == "XCANNON" && "X${SLURM_JOBID}" != "X" ]]; then + srun -c ${allThreads} ./${exeFile} >> "${log}" 2>&1 + else + ./${exeFile} >> "${log}" 2>&1 + fi + + # Rename the end-of-run restart file + rename_end_restart_file "${allThreads}" + + # Clean the run directory + ./cleanRunDir.sh --no-interactive >> "${log}" 2>&1 + + #---------------------------------------------------------------- + # Second test: Use fewer cores + #---------------------------------------------------------------- + + # Run GEOS-Chem Classic + export OMP_NUM_THREADS=${fewerThreads} + echo "Now using ${OMP_NUM_THREADS}" >> "${log}" 2>&1 + if [[ "X${site}" == "XCANNON" && "X${SLURM_JOBID}" != "X" ]]; then + srun -c ${fewerThreads} ./${exeFile} >> "${log}" 2>&1 + else + ./${exeFile} >> "${log}" 2>&1 + fi + + # Rename the end-of-run restart file + rename_end_restart_file "${fewerThreads}" + + #---------------------------------------------------------------- + # Score the test + #---------------------------------------------------------------- + score_parallelization_test "${allThreads}" "${fewerThreads}" + if [[ $? -eq 0 ]]; then + let passed++ + print_to_log "${passMsg}" "${results}" + else + let failed++ + print_to_log "${failMsg}" "${results}" + fi + + # Navigate back to the folder containing run directories + cd "${rundirsDir}" + + else + + #---------------------------------------------------------------- + # If the executable is missing, update the "fail" counter + # and write the "failed" message to the results log file. + #---------------------------------------------------------------- + let failed++ + if [[ "x${results}" != "x" ]]; then + print_to_log "${failMsg}" "${results}" + fi + fi + + # Decrement the count of remaining tests + let remain-- + fi +done + +#============================================================================ +# Check the number of simulations that have passed +#============================================================================ + +# Print summary to log +print_to_log " " "${results}" +print_to_log "Summary of test results:" "${results}" +print_to_log "${SEP_MINOR}" "${results}" +print_to_log "Parallelization tests passed: ${passed}" "${results}" +print_to_log "Parallelization tests failed: ${failed}" "${results}" +print_to_log "Parallelization tests not yet completed: ${remain}" "${results}" + +# Check for success +if [[ "X${passed}" == "X${numTests}" ]]; then + + #-------------------------- + # Successful execution + #-------------------------- + print_to_log "" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + print_to_log "%%% All parallelization tests passed! %%%" "${results}" + print_to_log "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "${results}" + + # Print success (if interactive) + if [[ "X${SLURM_JOBID}" == "X" && "X${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Parallelization tests finished!" + fi + +else + + #-------------------------- + # Unsuccessful execution + #-------------------------- + if [[ "X${SLURM_JOBID}" == "x" && "x${LSB_JOBID}" == "X" ]]; then + echo "" + echo "Parallelization tests failed! Exiting ..." + fi +fi + +#============================================================================ +# Cleanup and quit +#============================================================================ + +# Free local variables +unset binDir +unset codeDir +unset envDir +unset exeFile +unset failed +unset failmsg +unset head_gcc +unset head_gc +unset head_hco +unset log +unset logsDir +unset numTests +unset passed +unset passMsg +unset ptRoot +unset remain +unset results +unset rundirsDir +unset scheduler + +# Free imported global variables +unset FILL +unset LINE +unset CMP_PASS_STR +unset CMP_FAIL_STR +unset EXE_PASS_STR +unset EXE_FAIL_STR +#EOC diff --git a/test/parallel/README.md b/test/parallel/README.md new file mode 100644 index 000000000..f037f9d40 --- /dev/null +++ b/test/parallel/README.md @@ -0,0 +1,6 @@ +# README for Parallelization Tests + +## Contents + +`GCClassic` +- Contains scripts for running parallelization tests for GEOS-Chem Classic. diff --git a/test/shared/README.md b/test/shared/README.md new file mode 100644 index 000000000..90a8ec55e --- /dev/null +++ b/test/shared/README.md @@ -0,0 +1,11 @@ +# README: Shared settings and functions for tests + +## Contents + +`commonFunctionsForTests.sh` +- Script with common settings and functions that are used by the difference test, integration test, and parallel test scripts located in `../difference`, `../integration`, and `../parallel`, respectively. +- The functions and settings in `commonFunctionsForTests.sh` are made available to the various scripts by the command: + ```bash + . commonFunctionsForTests.sh + ``` + diff --git a/test/shared/commonFunctionsForTests.sh b/test/shared/commonFunctionsForTests.sh index d194cb85f..6e28a9c41 100755 --- a/test/shared/commonFunctionsForTests.sh +++ b/test/shared/commonFunctionsForTests.sh @@ -13,6 +13,11 @@ # !REVISION HISTORY: # 03 Nov 2020 - R. Yantosca - Initial version # See the subsequent Git history with the gitk browser! +# +# !REMARKS: +# NOTE: Integration tests and parallelization tests run for 1 hour. +# The exceptions are the nested-grid simulation tests, which run for 20 +# minutes due to the smaller dynamic timestep. #EOP #------------------------------------------------------------------------------ #BOC @@ -27,26 +32,33 @@ SED_CONFIG_3='s/end_date: \[20160201, 000000\]/end_date: \[20190101, 010000\]/' SED_CONFIG_4='s/end_date: \[20160101, 000000\]/end_date: \[20190101, 010000\]/' SED_CONFIG_5='s/end_date: \[20190201, 000000\]/end_date: \[20190101, 010000\]/' SED_CONFIG_6='s/end_date: \[20190801, 000000\]/end_date: \[20190701, 010000\]/' -SED_CONFIG_N='s/end_date: \[20190801, 000000\]/end_date: \[20190701, 002000\]/' +SED_CONFIG_N1='s/end_date: \[20190201, 000000\]/end_date: \[20190101, 002000\]/' +SED_CONFIG_N2='s/end_date: \[20190801, 000000\]/end_date: \[20190701, 002000\]/' SED_HEMCO_CONF_1='s/GEOS_0.25x0.3125/GEOS_0.25x0.3125_NA/' SED_HEMCO_CONF_2='s/GEOS_0.5x0.625/GEOS_0.5x0.625_NA/' +SED_HEMCO_CONF_3='s/DiagnFreq: Monthly/DiagnFreq: 00000000 010000/' +SED_HEMCO_CONF_4='s/DiagnFreq: Monthly/DiagnFreq: 00000000 002000/' SED_HEMCO_CONF_N='s/\$RES.\$NC/\$RES.NA.\$NC/' SED_HISTORY_RC_1='s/00000100 000000/00000000 010000/' -SED_HISTORY_RC_2='s/7440000/010000/' SED_HISTORY_RC_N='s/00000100 000000/00000000 002000/' -SED_RUN_CONFIG_1='s/20160101 000000/20190101 000000/' -SED_RUN_CONFIG_2='s/20160201 000000/20190101 010000/' -SED_RUN_CONFIG_3='s/20190201 000000/20190101 010000/' -SED_RUN_CONFIG_4='s/00000100 000000/00000000 010000/' -SED_RUN_CONFIG_5='s/7440000/010000/' -SED_RUN_CONFIG_6='s/1680000/010000/' CMP_PASS_STR='Configure & Build.....PASS' CMP_FAIL_STR='Configure & Build.....FAIL' EXE_PASS_STR='Execute Simulation....PASS' EXE_FAIL_STR='Execute Simulation....FAIL' EXE_TBD_STR='Execute Simulation....TBD' -EXE_BUILD_LIST=("default" "apm" "carbon" "hg" \ - "luowd" "rrtmg" "tomas15" "tomas40" ) +EXE_GCC_BUILD_LIST=("default" "apm" "carbon" "hg" \ + "luowd" "rrtmg" "tomas15" ) +EXE_GCHP_BUILD_LIST=("default" "carbon" "rrtmg" "tomas15") +END_hhmm_1h="0100z.nc4" +END_hhmm_20m="0020z.nc4" +PAR_TEST_SUFFIX="threads" +BIN_DIR="bin" +BUILD_DIR="build" +ENV_DIR="env" +LOGS_DIR="logs" +RUNDIRS_DIR="rundirs" +SCRIPTS_DIR="scripts" +UTILS_DIR="utils" function sed_ie() { @@ -56,26 +68,43 @@ function sed_ie() { # 1st argument = regular expression # 2nd argument = file to be edited #======================================================================== - REGEX=${1} - FILE=${2} - if [[ "x$(uname -s)" == "xDarwin" ]]; then - sed -i '' -e "${REGEX}" "${FILE}" # MacOS/Darwin + regex="${1}" + file="${2}" + if [[ "X$(uname -s)" == "XDarwin" ]]; then + sed -i '' -e "${regex}" "${file}" # MacOS/Darwin else - sed -i -e "${REGEX}" "${FILE}" # GNU/Linux + sed -i -e "${regex}" "${file}" # GNU/Linux fi } +function sed_string() { + #======================================================================== + # Returns a sed command string to replace a substring in a line of text. + # + # 1st argument = String of text + # 2nd argument = Substring + # 3rd argument = Replacement substring + #======================================================================== + text=${1//\//\\\/} # Replace '/' with '\/' + text=${text//\*/\\\*} # Replace '*' with '\*' + text=${text//\./\\\.} # Replace '.' with '\.' + text=${text//\$/\\\$} # Replace '$' with '\$' + newText=${text/"${2}"/"${3}"} # Repace substr w/ replacement str + echo "s/${text}/${newText}/" # Create sed command +} + + function absolute_path() { #======================================================================== # Returns the absolute path from a relative path # # 1st argument = relative path #======================================================================== - if [[ -d ${1} ]]; then - absPath=$(readlink -f "${1}") # If directory exists, use readlink + if [[ -d "${1}" ]]; then + absPath=$(readlink -f "${1}") # If directory exists, use readlink else - absPath="${1/#\~/$HOME}" # Otherwise, replace ~ with $HOME + absPath="${1/#\~/$HOME}" # Otherwise, replace ~ with $HOME fi echo "${absPath}" } @@ -87,11 +116,12 @@ function is_valid_rundir() { # # 1st argument: File or directory to be tested #======================================================================== - if [[ -d ${1} ]]; then - if [[ -f ${1}/geoschem_config.yml && -f ${1}/HEMCO_Config.rc ]]; then - echo "TRUE" - return - fi + if [[ -d "${1}" ]]; then + if [[ -f "${1}/geoschem_config.yml" && \ + -f "${1}/HEMCO_Config.rc" ]]; then + echo "TRUE" + return + fi fi echo "FALSE" } @@ -103,12 +133,12 @@ function is_gchp_rundir() { # # 1st argument: Directory to be tested #======================================================================== - expr=$(is_valid_rundir ${1}) - if [[ "x${expr}" == "xTRUE" ]]; then - if [[ -f ${1}/CAP.rc ]]; then - echo "TRUE" - return - fi + expr=$(is_valid_rundir "${1}") + if [[ "X${expr}" == "XTRUE" ]]; then + if [[ -f "${1}/CAP.rc" ]]; then + echo "TRUE" + return + fi fi echo "FALSE" } @@ -118,27 +148,60 @@ function count_rundirs() { #======================================================================== # Returns the number of run directories in the root folder. # - # 1st argument: Root directory containing several GC run directories + # 1st argument: Top-level folder where run directories are created #======================================================================== - root=${1} + rundirsDir="${1}" thisDir=$(pwd -P) # Count run directories - cd ${root} + cd "${rundirsDir}" declare -i x=0 - for rundir in *; do - expr=$(is_valid_rundir ${rundir}) - if [[ "x${expr}" == "xTRUE" ]]; then - let x++ - fi + for runDir in *; do + expr=$(is_valid_rundir "${runDir}") + if [[ "X${expr}" == "XTRUE" ]]; then + let x++ + fi done - cd ${thisDir} + cd "${thisDir}" # Cleanup and quit echo $x } +function update_gchp_config_files() { + #======================================================================== + # Returns the number of run directories in the root folder. + # + # 1st argument: Root directory containing several GC run directories + # 2nd argument: Integration test root directory + #======================================================================== + runPath=$(absolute_path "${1}") # GCHP run dir (abs path) + + # Edit config file setCommonRunSettings.sh + file="${runPath}/setCommonRunSettings.sh" + + # 24 cores on 1 node + sed_ie "s/TOTAL_CORES=.*/TOTAL_CORES=24/" "${file}" + sed_ie "s/NUM_NODES=.*/NUM_NODES=1/" "${file}" + sed_ie "s/NUM_CORES_PER_NODE=.*/NUM_CORES_PER_NODE=24/" "${file}" + + # C24 grid resolution + sed_ie "s/CS_RES=.*/CS_RES=24/" "${file}" + + # 1-hr duration + sed_ie "s/Run_Duration=\".*/Run_Duration=\"00000000 010000\"/" "${file}" + + # 1-hr diagnostics + sed_ie "s/AutoUpdate_Diagnostics=.*/AutoUpdate_Diagnostics=ON/" "${file}" + sed_ie "s/Diag_Monthly=\"1\".*/Diag_Monthly=\"0\"/" "${file}" + sed_ie "s/Diag_Frequency=\".*/Diag_Frequency=\"010000\"/" "${file}" + sed_ie "s/Diag_Duration=\".*/Diag_Duration=\"010000\"/" "${file}" + + # Do not require species in restart file + sed_ie "s/Require_Species_in_Restart=.*/Require_Species_in_Restart=0/" "${file}" +} + function update_config_files() { #======================================================================== # Function to replace text in rundir config files @@ -146,8 +209,7 @@ function update_config_files() { # 1st argument = Integration tests root path # 2nd argument = GEOS-Chem run directory name #======================================================================== - root=${1} - runDir=${2} + runPath=$(absolute_path "${1}") # GEOS-Chem rundir (abs path) #------------------------------------------------------------------------ # Replace text in geoschem_config.yml @@ -155,53 +217,50 @@ function update_config_files() { # For nested-grid fullchem runs, change simulation time to 20 minutes # in order to reduce the run time of the whole set of integration tests. - if grep -q "025x03125_fullchem" <<< "${runDir}"; then - sed_ie "${SED_CONFIG_N}" "${root}/${runDir}/geoschem_config.yml" - fi - if grep -q "05x0625_fullchem" <<< "${runDir}"; then - sed_ie "${SED_CONFIG_N}" "${root}/${runDir}/geoschem_config.yml" + if grep -q "05x0625" <<< "${runPath}"; then + sed_ie "${SED_CONFIG_N1}" "${runPath}/geoschem_config.yml" + sed_ie "${SED_CONFIG_N2}" "${runPath}/geoschem_config.yml" fi # Other text replacements - sed_ie "${SED_CONFIG_1}" "${root}/${runDir}/geoschem_config.yml" - sed_ie "${SED_CONFIG_2}" "${root}/${runDir}/geoschem_config.yml" - sed_ie "${SED_CONFIG_3}" "${root}/${runDir}/geoschem_config.yml" - sed_ie "${SED_CONFIG_4}" "${root}/${runDir}/geoschem_config.yml" - sed_ie "${SED_CONFIG_5}" "${root}/${runDir}/geoschem_config.yml" - sed_ie "${SED_CONFIG_6}" "${root}/${runDir}/geoschem_config.yml" + sed_ie "${SED_CONFIG_1}" "${runPath}/geoschem_config.yml" + sed_ie "${SED_CONFIG_2}" "${runPath}/geoschem_config.yml" + sed_ie "${SED_CONFIG_3}" "${runPath}/geoschem_config.yml" + sed_ie "${SED_CONFIG_4}" "${runPath}/geoschem_config.yml" + sed_ie "${SED_CONFIG_5}" "${runPath}/geoschem_config.yml" + sed_ie "${SED_CONFIG_6}" "${runPath}/geoschem_config.yml" #------------------------------------------------------------------------ # Replace text in HEMCO_Config.rc #------------------------------------------------------------------------ # For all nested-grid rundirs, add a NA into the entries for met fields - if grep -q "025x03125" <<< "${runDir}"; then - sed_ie "${SED_HEMCO_CONF_N}" "${root}/${runDir}/HEMCO_Config.rc" - fi - if grep -q "05x0625" <<< "${runDir}"; then - sed_ie "${SED_HEMCO_CONF_N}" "${root}/${runDir}/HEMCO_Config.rc" + # Also update the DiagnFreq for nested or global simulations + if grep -q "05x0625" <<< "${runPath}"; then + sed_ie "${SED_HEMCO_CONF_N}" "${runPath}/HEMCO_Config.rc" + sed_ie "${SED_HEMCO_CONF_4}" "${runPath}/HEMCO_Config.rc" + else + sed_ie "${SED_HEMCO_CONF_3}" "${runPath}/HEMCO_Config.rc" fi # Other text replacements - sed_ie "${SED_HEMCO_CONF_1}" "${root}/${runDir}/HEMCO_Config.rc" - sed_ie "${SED_HEMCO_CONF_2}" "${root}/${runDir}/HEMCO_Config.rc" + sed_ie "${SED_HEMCO_CONF_1}" "${runPath}/HEMCO_Config.rc" + sed_ie "${SED_HEMCO_CONF_2}" "${runPath}/HEMCO_Config.rc" #------------------------------------------------------------------------ # Replace text in HEMCO_Config.rc.gmao_metfields (GCClassic only) #------------------------------------------------------------------------ - if [[ -f ${root}/${runDir}/HEMCO_Config.rc.gmao_metfields ]]; then - # For all nested-grid rundirs, add a NA into the entries for met fields - if grep -q "025x03125" <<< "${runDir}"; then - sed_ie "${SED_HEMCO_CONF_N}" "${root}/${runDir}/HEMCO_Config.rc.gmao_metfields" - fi - if grep -q "05x0625" <<< "${runDir}"; then - sed_ie "${SED_HEMCO_CONF_N}" "${root}/${runDir}/HEMCO_Config.rc.gmao_metfields" - fi - - # Other text replacements - sed_ie "${SED_HEMCO_CONF_1}" "${root}/${runDir}/HEMCO_Config.rc.gmao_metfields" - sed_ie "${SED_HEMCO_CONF_2}" "${root}/${runDir}/HEMCO_Config.rc.gmao_metfields" + if [[ -f "${runPath}/HEMCO_Config.rc.gmao_metfields" ]]; then + # For all nested-grid rundirs, add a NA into the entries for met fields + if grep -q "05x0625" <<< "${runPath}"; then + sed_ie "${SED_HEMCO_CONF_N}" \ + "${runPath}/HEMCO_Config.rc.gmao_metfields" + fi + + # Other text replacements + sed_ie "${SED_HEMCO_CONF_1}" "${runPath}/HEMCO_Config.rc.gmao_metfields" + sed_ie "${SED_HEMCO_CONF_2}" "${runPath}/HEMCO_Config.rc.gmao_metfields" fi #------------------------------------------------------------------------ @@ -210,29 +269,12 @@ function update_config_files() { # For nested-grid fullchem runs, change frequency and duration to 20 mins # in order to reduce the run time of the whole set of integration tests. - if grep -q "025x03125_fullchem" <<< "${runDir}"; then - sed_ie "${SED_HISTORY_RC_N}" "${root}/${runDir}/HISTORY.rc" - fi - if grep -q "05x0625_fullchem" <<< "${runDir}"; then - sed_ie "${SED_HISTORY_RC_N}" "${root}/${runDir}/HISTORY.rc" + if grep -q "05x0625" <<< "${runPath}"; then + sed_ie "${SED_HISTORY_RC_N}" "${runPath}/HISTORY.rc" fi # Other text replacements - sed_ie "${SED_HISTORY_RC_1}" "${root}/${runDir}/HISTORY.rc" - sed_ie "${SED_HISTORY_RC_2}" "${root}/${runDir}/HISTORY.rc" - - #------------------------------------------------------------------------ - # Replace text in setCommonRunSettings.sh (GCHP_only) - #------------------------------------------------------------------------ - expr=$(is_gchp_rundir "${root}/${runDir}") - if [[ "x${expr}" == "xTRUE" ]]; then - sed_ie "${SED_RUN_CONFIG_1}" ${root}/${runDir}/setCommonRunSettings.sh - sed_ie "${SED_RUN_CONFIG_2}" ${root}/${runDir}/setCommonRunSettings.sh - sed_ie "${SED_RUN_CONFIG_3}" ${root}/${runDir}/setCommonRunSettings.sh - sed_ie "${SED_RUN_CONFIG_4}" ${root}/${runDir}/setCommonRunSettings.sh - sed_ie "${SED_RUN_CONFIG_5}" ${root}/${runDir}/setCommonRunSettings.sh - sed_ie "${SED_RUN_CONFIG_6}" ${root}/${runDir}/setCommonRunSettings.sh - fi + sed_ie "${SED_HISTORY_RC_1}" "${runPath}/HISTORY.rc" } @@ -241,19 +283,47 @@ function create_rundir() { # Calls createRunDir.sh with appropriate arguments # # 1st argument: Commands to forcefeed into createRunDir.sh - # 2nd argument: Integration test root folder - # 3rd argument: GEOS-Chem rundir to be created - # 4th argument: Log file where stdout & stderr will be redirected + # 2nd argument: Log file where stdout & stderr will be redirected + # 3rd argument: Integration test root directory + # + # NOTE: Run directories will be created with default names. #======================================================================== - cmd=${1} - root=$(absolute_path ${2}) - runDir=${3} - log=${4} + cmd="${1}" # Command for createRunDir.sh + log=$(absolute_path "${2}") # Log file for output of createRunDir.sh + logTmp="${log}.tmp" # Temporary log file + logTmp2="${log}.tmp.tmp" # Temporary log file + runPath="" # Path to run directory (abs path) # Create run dir for a short simulation - printf " ... ${root}/${runDir}\n" - printf ${cmd} | ./createRunDir.sh >> ${log} 2>&1 - update_config_files ${root} ${runDir} + printf "${cmd}" | ./createRunDir.sh > "${logTmp}" 2>&1 + + # Get the absolute rundir path from the output of createRunDir.sh + runPath=$(grep -E "Created" "${logTmp}") + runPath=${runPath/Created /} + printf " ... ${runPath}\n" + + # Now concatenate the temporary log into the log file + # (Or create the log file if it doesn't yet exist) + if [[ -f "${log}" ]]; then + cat "${log}" "${logTmp}" >> "${logTmp2}" + mv -f "${logTmp2}" "${log}" + rm -f "${logTmp}" + else + mv "${logTmp}" "${log}" + fi + + # Change start & end dates etc. in rundir configuration files + update_config_files "${runPath}" + + # If this is a GCHP run directory, then also replace text in + # GCHP-specific rundir configuration files etc. + expr=$(is_gchp_rundir "${runPath}") + if [[ "X${expr}" == "XTRUE" ]]; then + update_gchp_config_files "${runPath}" + fi + + # Remove temporary logs + rm -rf "${logTmp} ${logTmp2}" } @@ -263,37 +333,31 @@ function cleanup_files() { # # 1st argument = root folder for tests (w/ many rundirs etc) #======================================================================== - if [[ "x${1}" != "x" ]]; then - - # Exit if directory is already empty - if [[ ! $(ls -A ${1}) ]]; then - echo "${1} is empty... nothing to clean up!" - return 0 - fi - - # Give user a chance to avoid removing files - printf "\nRemoving files and directories in ${1}:\n" - printf "If this is OK, type 'yes to proceed or 'no' to quit:\n" - read answer - if [[ ! ${answer} =~ [Yy][Ee][Ss] ]]; then - printf "Exiting..." - return 1 - fi - - # Remove files and unlink links - printf "Removing ...\n" - for file in ${1}/*; do - if [[ -h ${file} ]]; then - unlink ${file} - else - path=$(absolute_path ${file}) - if [[ -e ${path} ]]; then - printf " ... ${path}\n"; - rm -rf ${path} - fi - unset path - fi - done + itRoot="${1}" + if [[ "X${itRoot}" != "X" ]]; then + + # Exit if directory is already empty + if [[ ! $(ls -A "${itRoot}") ]]; then + echo "${itRoot} is empty... nothing to clean up!" + return 0 + fi + + # Give user a chance to avoid removing files + printf "\nRemoving files and directories in ${itRoot}:\n" + printf "If this is OK, type 'yes to proceed or 'no' to quit:\n" + read answer + if [[ ! "${answer}" =~ [Yy][Ee][Ss] ]]; then + printf "Exiting...\n" + exit 1 + fi + + # Remove files and unlink links + printf "Removing ...\n" + for entry in ${itRoot}/*; do + printf " ... ${entry}\n"; + [[ -L ${entry} ]] && unlink ${entry} + [[ -e ${entry} ]] && rm -rf ${entry} + done fi } @@ -305,30 +369,44 @@ function print_to_log() { # 1st argument: Message to be printed # 2nd argument: Log file where message will be sent #======================================================================== - printf "%s\n" "${1}" >> ${2} 2>&1 + printf "%s\n" "${1}" >> "${2}" 2>&1 } -function gcclassic_exe_name() { +function exe_name() { #======================================================================== # Returns the executable name given a directory name # - # 1st argument: Directory name + # 1st argument: Model (GCClassic or GCHP) + # 2nd argument: Build directory name #======================================================================== + model="${1}" + buildDir="${2}" # Turn on case-insensitivity shopt -s nocasematch # Default executable name - exeFileName="gcclassic" + exeFileName="none" + [[ "X${model}" == "Xgcclassic" ]] && exeFileName="${model}" + [[ "X${model}" == "Xgchp" ]] && exeFileName="${model}" # Append a suffix to the executable file name for specific directories - for suffix in ${EXE_BUILD_LIST[@]}; do - if [[ ${1} =~ ${suffix} ]]; then - exeFileName+=".${suffix}" - break - fi + if [[ "X${model}" == "Xgcclassic" ]]; then + for suffix in ${EXE_GCC_BUILD_LIST[@]}; do + if [[ "${buildDir}" =~ "${suffix}" ]]; then + exeFileName+=".${suffix}" + break + fi done + elif [[ "X${model}" == "Xgchp" ]]; then + for suffix in ${EXE_GCHP_BUILD_LIST[@]}; do + if [[ "${buildDir}" =~ "${suffix}" ]]; then + exeFileName+=".${suffix}" + break + fi + done + fi # Turn off case-insensitivity shopt -u nocasematch @@ -338,40 +416,41 @@ function gcclassic_exe_name() { } -function gcclassic_config_options() { +function config_options() { #======================================================================== - # Returns the GCClassic configuration options given a directory name + # Returns the configuration options given a directory name # - # 1st argument: Directory name + # 1st argument: Model type ("gcclassic" or "gchp") + # 2nd argument: Directory name + # 3rd argument: Base compilation options #======================================================================== # Arguments - dir=$(basename ${1}) # Only take last part of path - baseOptions=${2} + model="${1}" + dir=$(basename "${2}") # Only take last part of path + baseOptions="${3}" # Local variables - exeFileName=$(gcclassic_exe_name ${dir}) + exeFileName=$(exe_name "${model}" "${dir}" ) # Turn on case-insensitivity shopt -s nocasematch # Pick the proper build options if [[ ${dir} =~ "apm" ]]; then - options="${baseOptions} -DAPM=y -DEXE_FILE_NAME=${exeFileName}" + options="${baseOptions} -DAPM=y -DEXE_FILE_NAME=${exeFileName}" elif [[ ${dir} =~ "carbon" ]]; then - options="${baseOptions} -DMECH=carbon -DEXE_FILE_NAME=${exeFileName}" + options="${baseOptions} -DMECH=carbon -DEXE_FILE_NAME=${exeFileName}" elif [[ ${dir} =~ "hg" ]]; then - options="${baseOptions} -DMECH=Hg -DEXE_FILE_NAME=${exeFileName}" + options="${baseOptions} -DMECH=Hg -DFASTJX=y -DEXE_FILE_NAME=${exeFileName}" elif [[ ${dir} =~ "luowd" ]]; then - options="${baseOptions} -DLUO_WETDEP=y -DEXE_FILE_NAME=${exeFileName}" + options="${baseOptions} -DLUO_WETDEP=y -DEXE_FILE_NAME=${exeFileName}" elif [[ ${dir} =~ "rrtmg" ]]; then - options="${baseOptions} -DRRTMG=y -DEXE_FILE_NAME=${exeFileName}" + options="${baseOptions} -DRRTMG=y -DEXE_FILE_NAME=${exeFileName}" elif [[ ${dir} =~ "tomas15" ]]; then - options="${baseOptions} -DTOMAS=y -DTOMAS_BINS=15 -DBPCH_DIAG=y -DEXE_FILE_NAME=${exeFileName}" - elif [[ ${dir} =~ "tomas40" ]]; then - options="${baseOptions} -DTOMAS=y -DTOMAS_BINS=40 -DBPCH_DIAG=y -DEXE_FILE_NAME=${exeFileName}" + options="${baseOptions} -DTOMAS=y -DTOMAS_BINS=15 -DEXE_FILE_NAME=${exeFileName}" else - options="${baseOptions}" + options="${baseOptions}" fi # Turn off case-insensitivity @@ -382,36 +461,38 @@ function gcclassic_config_options() { } -function gcclassic_compiletest_name() { +function compiletest_name() { #======================================================================== # Returns the GCClassic configuration options given a directory name # - # 1st argument: Directory name + # 1st argument: Model name ('gcclassic' or 'gchp') + # 2nd argument: Build directory name #======================================================================== + model="${1}" + buildDir=$(basename "${2}") # Only take last part of path - # Arguments - dir=$(basename ${1}) # Only take last part of path + # Display the proper model name + [[ "X${model}" == "Xgcclassic" ]] && displayName="GCClassic" + [[ "X${model}" == "Xgchp" ]] && displayName="GCHP" # Turn on case-insensitivity shopt -s nocasematch # Pick the proper build options - if [[ ${dir} =~ "apm" ]]; then - result="GCClassic with APM" - elif [[ ${dir} =~ "carbon" ]]; then - result="GCClassic with carbon (as a KPP mechanism)" - elif [[ ${dir} =~ "luowd" ]]; then - result="GCClassic with Luo et al wetdep" - elif [[ ${dir} =~ "hg" ]]; then - result="GCClassic with Hg (as a KPP mechanism)" - elif [[ ${dir} =~ "rrtmg" ]]; then - result="GCClassic with RRTMG" - elif [[ ${dir} =~ "tomas15" ]]; then - result="GCClassic with TOMAS15" - elif [[ ${dir} =~ "tomas40" ]]; then - result="GCClassic with TOMAS40" + if [[ "${buildDir}" =~ "apm" ]]; then + result="${displayName} with APM" + elif [[ "${buildDir}" =~ "carbon" ]]; then + result="${displayName} w/ carbon gases (as a KPP mechanism)" + elif [[ "${buildDir}" =~ "luowd" ]]; then + result="${displayName} with Luo et al wetdep" + elif [[ "${buildDir}" =~ "hg" ]]; then + result="${displayName} with Hg (as a KPP mechanism)" + elif [[ "${buildDir}" =~ "rrtmg" ]]; then + result="${displayName} with RRTMG" + elif [[ "${buildDir}" =~ "tomas15" ]]; then + result="${displayName} with TOMAS15" else - result="GCClassic" + result="${displayName}" fi # Turn off case-insensitivity @@ -422,52 +503,66 @@ function gcclassic_compiletest_name() { } -function build_gcclassic() { +function build_model() { #======================================================================== # Configures and compiles GEOS-Chem (Classic or GCHP) for # CMAKE_BUILD_TYPE=Debug. # - # 1st argument = Root folder for tests (w/ many rundirs etc) - # 2nd argument = GEOS_Chem Classic build directory - # 3rd argument = Log file where stderr and stdout will be redirected - # 4th argument = (OPTIONAL) Log file where results will be printed + # 1st argument = Model name ('gcclassic' or 'gchp') + # 2nd argument = Root folder for tests (w/ many rundirs etc) + # 3rd argument = CMake build directory + # 4th argument = Base compilation options + # 5th argument = Log file where stderr and stdout will be redirected + # 6th argument = Log file where results will be printed #======================================================================== # Arguments - root=$(absolute_path ${1}) - buildDir=${2} - log=${3} - results=${4} - baseOptions=${5} + model="${1}" + itRoot=$(absolute_path "${2}") + thisBuildDir="${3}" + baseOptions="${4}" + log="${5}" + results="${6}" + + # Stop with error if the model name is invalid + if [[ "X${model}" != "Xgcclassic" && "X${model}" != "Xgchp" ]]; then + echo "ERROR: '${model}' is an invalid model name!" + echo "Exiting in 'build_model' (in 'commonFunctionsForTests.sh')" + exit 1 + fi # Local variables - codeDir=${root}/CodeDir - configOptions=$(gcclassic_config_options ${buildDir} "${baseOptions}") - message=$(gcclassic_compiletest_name "${buildDir}") + codeDir="${itRoot}/CodeDir" + configOptions=$(config_options "${model}" "${thisBuildDir}" "${baseOptions}") + message=$(compiletest_name "${model}" "${thisBuildDir}") passMsg="$message${FILL:${#message}}.....${CMP_PASS_STR}" failMsg="$message${FILL:${#message}}.....${CMP_FAIL_STR}" + # Change to the build directory + cd "${thisBuildDir}" + #--------------------------------------- # Code configuration #--------------------------------------- - cd ${buildDir} - cmake ${codeDir} ${configOptions} >> ${log} 2>&1 + # Note: do not put quotes around configOptions, as bash will treat + # it as a single string rather than individual options. + cmake "${codeDir}" ${configOptions} >> "${log}" 2>&1 if [[ $? -ne 0 ]]; then - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - return 1 + if [[ "x${results}" != "x" ]]; then + print_to_log "${failMsg}" "${results}" + fi + return 1 fi #---------------------------------------- # Code compilation and installation #---------------------------------------- - make -j install >> ${log} 2>&1 + make -j install >> "${log}" 2>&1 if [[ $? -ne 0 ]]; then - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - return 1 + if [[ "x${results}" != "x" ]]; then + print_to_log "${failMsg}" "${results}" + fi + return 1 fi #---------------------------------------- @@ -476,125 +571,213 @@ function build_gcclassic() { # If we have gotten this far, the run passed, # so update the results log file accordingly - print_to_log "${passMsg}" ${results} + print_to_log "${passMsg}" "${results}" +} - # Switch back to the root directory - cd ${root} + +function rename_end_restart_file() { + #======================================================================== + # Appends a suffix to the ending restart file in order to denote + # the number of cores that were used. + # + # 1st argument: Number of OpenMP threads + #======================================================================== + suffix="${1}${PAR_TEST_SUFFIX}" + + # Rename the ending restart file + for r in Restarts/*.nc4; do + if [[ "${r}" =~ "${END_hhmm_1h}" || "${r}" =~ "${END_hhmm_20m}" ]]; then + newRstFile="${r}.${suffix}" + mv -f "${r}" "${newRstFile}" + [[ -f "${newRstFile}" ]] && return 0 + fi + done + return 1 } -function build_gchp() { +function score_parallelization_test() { #======================================================================== - # Configures and compiles GCHP. + # Determines if the parallelization test was successful by checking + # that the restart files from both runs are bitwise identical. # - # 1st argument = Root folder for tests (w/ many rundirs etc) - # 2nd argument = GEOS_Chem Classic build directory - # 3rd argument = Log file where stderr and stdout will be redirected - # 4th argument = Log file where results will be printed - # 5th argument = Compilation options + # 1st argument: Number of OpenMP threads used in 1st parallel test run + # 2nd argument: Number of OpenMP threads used in 2nd parallel test run #======================================================================== - # Arguments - root=$(absolute_path ${1}) - buildDir=${2} - log=${3} - results=${4} - options=${5} + # Restart file names from both parallel test runs + rstFile1=$(ls -1 Restarts/*.nc4* | grep "${1}${PAR_TEST_SUFFIX}") + rstFile2=$(ls -1 Restarts/*.nc4* | grep "${2}${PAR_TEST_SUFFIX}") - # Local variables - codeDir=${root}/CodeDir - message="GCHP" - passMsg="$message${FILL:${#message}}.....${CMP_PASS_STR}" - failMsg="$message${FILL:${#message}}.....${CMP_FAIL_STR}" + # Exit if eiher restart file does not exist + [[ ! -f "$rstFile1" ]] && return 1 + [[ ! -f "$rstFile2" ]] && return 1 - #--------------------------------------- - # Code configuration - #--------------------------------------- - cd ${buildDir} - cmake ${codeDir} ${options} >> ${log} 2>&1 - if [[ $? -ne 0 ]]; then - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - return 1 + # If the files are bitwise identical then the parallel test is successful + diff "$rstFile1" "$rstFile2" + return $? +} + + +function print_bootstrap_info_message() { + #======================================================================== + # Prints a message to indicate if species bootstrapping is enabled. + # + # 1st argument: Enable ("yes") or disable ("no") bootstrapping + #======================================================================== + if [[ "X${1}" == "XYES" ]]; then + echo "" + echo "%%%%% Species not found in the restart file will %%%%%" + echo "%%%%% be bootstrapped (i.e. set to default values) %%%%%" + else + echo "" + echo "%%%%% Integration tests will fail unless all %%%%%" + echo "%%%%% species are found in the restart file! %%%%%" fi +} - #---------------------------------------- - # Code compilation and installation - #---------------------------------------- - make -j install >> ${log} 2>&1 - if [[ $? -ne 0 ]]; then - if [[ "x${results}" != "x" ]]; then - print_to_log "${failMsg}" ${results} - fi - return 1 + +function change_time_cycle_flags() { + #======================================================================== + # Changes the HEMCO time cycle flag for a given HEMCO container. + # + # 1st argument = HEMCO configuration file + # 2nd argument = HEMCO container + # 3rd argument = Old time cycle flag + # 4th argument = New time cycle flag + #======================================================================== + hcoCfg="${1}" + hcoCont="${2}" + oldFlag="${3}" + newFlag="${4}" + + # Search for the container in HEMCO configuration file + # The set -f prevents * from being expanded to a file listing + set -f + text=$(grep "${hcoCont}" "${hcoCfg}") + unset -f + + # Replace the time cycle flag for the container + if [[ "X${text}" != "X" ]]; then + sedCmd=$(sed_string "${text}" "${oldFlag}" "${newFlag}") + sed_ie "${sedCmd}" "${hcoCfg}" fi +} - #---------------------------------------- - # Cleanup & quit - #---------------------------------------- - # If we have gotten this far, the run passed, - # so update the results log file accordingly - print_to_log "${passMsg}" ${results} +function gcc_enable_or_disable_bootstrap() { + #======================================================================== + # Edits HEMCO_Config.rc files to enable or disable "bootstrapping", + # which is setting missing restart file variables to default values. + # + # 1st argument: Enable ("yes") or disable ("no") bootstrapping + # 2nd argument: Directory containing integration test rundirs + #======================================================================== + bootStrap="${1}" + rundirsDir="${2}" + + print_bootstrap_info_message "${bootStrap}" + + # Loop over rundirs + for runDir in ${rundirsDir}/*; do + + # Do the following if for only valid GEOS-Chem run dirs + expr=$(is_valid_rundir "${runDir}") + if [[ "X${expr}" == "XTRUE" ]]; then + + # Specify path HEMCO_Config.rc + hcoCfg="${runDir}/HEMCO_Config.rc" + + if [[ "X${bootStrap}" == "XYES" ]]; then + # Set missing species in restarts & BC files to defaults + change_time_cycle_flags "${hcoCfg}" "SPC_ " "EFYO" "CYS" + change_time_cycle_flags "${hcoCfg}" "SPC_ " "EY" "CYS" + change_time_cycle_flags "${hcoCfg}" "BC_ " "EFY" "CYS" + else + # Halt run if species are missing from restarts & BC files + change_time_cycle_flags "${hcoCfg}" "SPC_ " "CYS" "EFYO" + change_time_cycle_flags "${hcoCfg}" "SPC_ " "EY" "EFYO" + change_time_cycle_flags "${hcoCfg}" "BC_ " "CYS" "EFY" + fi + fi + done +} + + +function gchp_enable_or_disable_bootstrap() { + #======================================================================== + # Edits HEMCO_Config.rc files to enable or disable "bootstrapping", + # which is setting missing restart file variables to default values. + # + # 1st argument: Enable ("yes") or disable ("no") bootstrapping + # 2nd argument: Directory containing integration test rundirs + #======================================================================== + bootStrap="${1}" + rundirsDir="${2}" + + print_bootstrap_info_message "${bootStrap}" + + # Loop over rundirs + for runDir in ${rundirsDir}/*; do + + # Do the following if for only valid GEOS-Chem run dirs + expr=$(is_gchp_rundir "${runDir}") + if [[ "X${expr}" == "XTRUE" ]]; then + + # Specify path HEMCO_Config.rc + script="${runDir}/setCommonRunSettings.sh" + + if [[ "X${bootStrap}" == "XYES" ]]; then + # Set missing restart file variables to defaults + sed_ie "s/Require_Species_in_Restart=./Require_Species_in_Restart=0/" "${script}" + else + # Don't set missing restart file variables to defaults + sed_ie "s/Require_Species_in_Restart=./Require_Species_in_Restart=1/" "${script}" + fi + fi + done +} - # Switch back to the root directory - cd ${root} + +function get_site_name() { + #======================================================================== + # Returns the site name based on the node name (i.e. uname -n) + #======================================================================== + nodeName=$(uname -n) + [[ "${nodeName}" =~ 'harvard.edu' ]] && echo "CANNON" + [[ "${nodeName}" =~ 'wustl.edu' ]] && echo "COMPUTE1" + return 0 } -function submit_gchp_slurm_job() { +function get_sed_partition_cmd_from_site() { #======================================================================== - # Submits a GCHP SLURM job script for the execution test phase. - # Subsequent jobs are submitted as SLURM job dependencies. + # Returns the sed command to replace the partition name in scripts # - # 1st argument = Root folder for tests (w/ many rundirs etc) - # 2nd argument = GCHP run directory name - # 3rd argument = Id from the previous SLURM job + # 1st argument: Site name (cannon|compute1) #======================================================================== + [[ "X${1}" == "XCANNON" ]] && p="sapphire,huce_cascade,seas_compute,shared" + [[ "X${1}" == "XCOMPUTE1" ]] && p="rvmartin" + echo "s/REQUESTED_PARTITION/${p}/" + return 0 +} - # Arguments - root=${1} - runDir=${2} - jobId=${3} - - # Change to the run directory - cd ${root}/${runDir} - - # Remove any leftover files in the run dir - # (similar to createRunDir.sh, but do not ask user to confirm) - rm -f gcchem* - rm -f *.rcx - rm -f *~ - rm -f *.log - rm -f log.dryrun* - rm -f logfile.000000.out - rm -f slurm-* - rm -f 1 - rm -f EGRESS - rm -f core.* - rm -f ./OutputDir/*.nc* - - # Copy the executable here - cp ${root}/build/bin/gchp . - - # Redirect the log file - log="${root}/logs/execute.${runDir}.log" - - # Submit jobs (except the first) as a SLURM dependency - if [[ "x${jobId}" == "xnone" ]]; then - output=$(sbatch --export=ALL gchp.slurm.sh) - output=($output) - jobId=${output[3]} - else - output=$(sbatch --export=ALL --dependency=afterany:${jobId} gchp.slurm.sh) - output=(${output}) - jobId=${output[3]} - fi - # Change to the root folder - cd ${root} +function get_default_gcc_env_file() { + #======================================================================== + # Returns the default environment file for GEOS-Chem Classic + #======================================================================== + envFile=$(realpath "../../../run/GCClassic/runScriptSamples/operational_examples/harvard_cannon/gcclassic.gcc10_cannon_rocky.env") + echo "$envFile" + return 0 +} - # Return the jobId for the next iteration - echo "${jobId}" + +function get_default_gchp_env_file() { + #======================================================================== + # Returns the default environment file for GCHP + #======================================================================== + envFile=$(realpath "../../../run/GCHP/runScriptSamples/operational_examples/harvard_cannon/gchp.gcc10_openmpi4_cannon_rocky.env") + echo "$envFile" + return 0 } diff --git a/test/shared/utils/cannon/integrationTest/README.md b/test/shared/utils/cannon/integrationTest/README.md new file mode 100644 index 000000000..e123f4185 --- /dev/null +++ b/test/shared/utils/cannon/integrationTest/README.md @@ -0,0 +1,32 @@ +# Integration test utility scripts + +This folder contains utility scripts that allow you to manually resubmit integration test jobs. This can be useful, for example, if an integration test job fails but you don't want to re-create the entire directory structure or recompile the code. + +## Scripts + +`redoIntegrationTestCompile.sh` + + - Script to manually resubmit the integration test compilation job + + +`redoIntegrationTestExecute.sh` + + - Script to manually resubmit the integration test execution job + + +## Examples + +1. Resubmit an integration test compilation job. + + ```console + $ cd /path/to/integration/test/root/utils + $ ./redoIntegrationTestCompile.sh + ``` + +2. Resubmit an integration test execution job. + + ```console + $ cd /path/to/integration/test/root/utils + $ ./redoIntegrationTestExecute.sh + ``` + diff --git a/test/shared/utils/cannon/integrationTest/redoIntegrationTestCompile.sh b/test/shared/utils/cannon/integrationTest/redoIntegrationTestCompile.sh new file mode 100755 index 000000000..bee328112 --- /dev/null +++ b/test/shared/utils/cannon/integrationTest/redoIntegrationTestCompile.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: redoIntegrationTestCompile.sh +# +# !DESCRIPTION: Manually resubmits an integration test compilation job. +# Useful in case the original job died due to cluster issues, etc. +#\\ +#\\ +# !CALLING SEQUENCE: +# cd /path/to/int/test/root/utils +# ./redoIntegrationTestCompile.sh +#EOP +#------------------------------------------------------------------------------ +#BOC + +# Current directory +thisDir=$(realpath .) + +# Integration test root dir is one dir higher +itRoot=$(realpath "${thisDir}/..") + +# Change to the logs folder +cd "$itRoot/logs" + +# Script to execute +script="${itRoot}/scripts/integrationTestCompile.sh" + +# Make sure the script is found +if [[ ! -f "${script}" ]]; then + echo "${script} was not found! Exiting..." + exit 1 +fi + +# Resubmit the compilation job to the scheduler +sbatch "${script}" diff --git a/test/shared/utils/cannon/integrationTest/redoIntegrationTestExecute.sh b/test/shared/utils/cannon/integrationTest/redoIntegrationTestExecute.sh new file mode 100755 index 000000000..8f331bb69 --- /dev/null +++ b/test/shared/utils/cannon/integrationTest/redoIntegrationTestExecute.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: redoIntegrationTestExecute.sh +# +# !DESCRIPTION: Manually resubmits an integration test execution job. +# Useful in case the original job died due to cluster issues, etc. +#\\ +#\\ +# !CALLING SEQUENCE: +# cd /path/to/int/test/root/utils +# ./redoIntegrationTestCompile.sh +#EOP +#------------------------------------------------------------------------------ +#BOC + +# Current directory +thisDir=$(realpath .) + +# Integration test root dir is one dir higher +itRoot=$(realpath "${thisDir}/..") + +# Change to the logs folder +cd "$itRoot/logs" + +# Script to execute +script="${itRoot}/scripts/integrationTestExecute.sh" + +# Make sure the script is found +if [[ ! -f "${script}" ]]; then + echo "${script} was not found! Exiting..." + exit 1 +fi + +# Resubmit the compilation job to the scheduler +sbatch "${script}" diff --git a/test/shared/utils/cannon/parallelTest/README.md b/test/shared/utils/cannon/parallelTest/README.md new file mode 100644 index 000000000..c4c564874 --- /dev/null +++ b/test/shared/utils/cannon/parallelTest/README.md @@ -0,0 +1,32 @@ +# Parallel test utility scripts + +This folder contains utility scripts that allow you to manually resubmit parallel test jobs. This can be useful, for example, if an parallel test job fails but you don't want to re-create the entire directory structure or recompile the code. + +## Scripts + +`redoParallelTestCompile.sh` + + - Script to manually resubmit the parallel test compilation job + + +`redoParallelTestExecute.sh` + + - Script to manually resubmit the parallel test execution job + + +## Examples + +1. Resubmit an parallel test compilation job. + + ```console + $ cd /path/to/parallel/test/root/utils + $ ./redoParallelTestCompile.sh + ``` + +2. Resubmit an parallel test execution job. + + ```console + $ cd /path/to/parallel/test/root/utils + $ ./redoParallelTestExecute.sh + ``` + diff --git a/test/shared/utils/cannon/parallelTest/redoParallelTestCompile.sh b/test/shared/utils/cannon/parallelTest/redoParallelTestCompile.sh new file mode 100755 index 000000000..19cc49f07 --- /dev/null +++ b/test/shared/utils/cannon/parallelTest/redoParallelTestCompile.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: redoParallelTestCompile.sh +# +# !DESCRIPTION: Manually resubmits an parallel test compilation job. +# Useful in case the original job died due to cluster issues, etc. +#\\ +#\\ +# !CALLING SEQUENCE: +# cd /path/to/int/test/root/utils +# ./redoIntegrationTestCompile.sh +#EOP +#------------------------------------------------------------------------------ +#BOC + +# Current directory +thisDir=$(realpath .) + +# Integration test root dir is one dir higher +ptRoot=$(realpath "${thisDir}/..") + +# Change to the logs folder +cd "$itRoot/logs" + +# Script to execute +script="${ptRoot}/scripts/parallelTestCompile.sh" + +# Make sure the script is found +if [[ ! -f "${script}" ]]; then + echo "${script} was not found! Exiting..." + exit 1 +fi + +# Resubmit the compilation job to the scheduler +sbatch "${script}" diff --git a/test/shared/utils/cannon/parallelTest/redoParallelTestExecute.sh b/test/shared/utils/cannon/parallelTest/redoParallelTestExecute.sh new file mode 100755 index 000000000..ac8e455d5 --- /dev/null +++ b/test/shared/utils/cannon/parallelTest/redoParallelTestExecute.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# GEOS-Chem Global Chemical Transport Model ! +#------------------------------------------------------------------------------ +#BOP +# +# !MODULE: redoParallelTestExecute.sh +# +# !DESCRIPTION: Manually resubmits an parallel test execution job. +# Useful in case the original job died due to cluster issues, etc. +#\\ +#\\ +# !CALLING SEQUENCE: +# cd /path/to/int/test/root/utils +# ./redoIntegrationTestCompile.sh +#EOP +#------------------------------------------------------------------------------ +#BOC + +# Current directory +thisDir=$(realpath .) + +# Integration test root dir is one dir higher +ptRoot=$(realpath "${thisDir}/..") + +# Change to the logs folder +cd "$ptRoot/logs" + +# Script to execute +script="${ptRoot}/scripts/parallelTestExecute.sh" + +# Make sure the script is found +if [[ ! -f "${script}" ]]; then + echo "${script} was not found! Exiting..." + exit 1 +fi + +# Resubmit the compilation job to the scheduler +sbatch "${script}"